From xen-devel-bounces@lists.xenproject.org Sun Mar 01 05:05:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 01 Mar 2026 05:05:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243670.1543291 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwYzX-0000tu-QZ; Sun, 01 Mar 2026 05:05:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243670.1543291; Sun, 01 Mar 2026 05:05:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwYzX-0000ti-L1; Sun, 01 Mar 2026 05:05:19 +0000
Received: by outflank-mailman (input) for mailman id 1243670;
 Sun, 01 Mar 2026 05:05: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=4UQC=BB=antgroup.com=houwenlong.hwl@srs-se1.protection.inumbo.net>)
 id 1vwYzV-0000ta-67
 for xen-devel@lists.xenproject.org; Sun, 01 Mar 2026 05:05:18 +0000
Received: from out28-170.mail.aliyun.com (out28-170.mail.aliyun.com
 [115.124.28.170]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 355011fc-152c-11f1-b164-2bf370ae4941;
 Sun, 01 Mar 2026 06:05:08 +0100 (CET)
Received: from localhost(mailfrom:houwenlong.hwl@antgroup.com
 fp:SMTPD_---.ghnzBIM_1772341500 cluster:ay29) by smtp.aliyun-inc.com;
 Sun, 01 Mar 2026 13:05: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: 355011fc-152c-11f1-b164-2bf370ae4941
DKIM-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=antgroup.com; s=default;
	t=1772341503; h=From:To:Subject:Date:Message-Id:MIME-Version;
	bh=sdX+g4xfWUksNlVfdbgGXJ5fc68UgBRbz+En866aoYQ=;
	b=OrxFPWtB1uoOs3ftFfEAAKSQQe0ftc1to0gMiiOzN+bvR6wC+G/uIePYFORNpXNXseYXaT/zs++N3YHFCnMC/5xMvfMDllO/sm81JPby+yH7EKxkTLkKnbZYNls6jU2AlflOWGQZaWBsfPGMtr4/oZVg5/hxB6QgrnZbMAErM7g=
From: Hou Wenlong <houwenlong.hwl@antgroup.com>
To: linux-kernel@vger.kernel.org
Cc: Hou Wenlong <houwenlong.hwl@antgroup.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH 1/2] x86/PVH: Use boot params to pass RSDP address in start_info page
Date: Sun,  1 Mar 2026 13:04:52 +0800
Message-Id: <76675c4d49d3a8f72252076812ef8f22276230c2.1772282441.git.houwenlong.hwl@antgroup.com>
X-Mailer: git-send-email 2.31.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

After commit e6e094e053af75 ("x86/acpi, x86/boot: Take RSDP address from
boot params if available"), the RSDP address can be passed in boot
params. Therefore, store the RSDP address in start_info page into boot
params in the PVH entry instead of registering a different callback.
This removes an absolute reference during the PVH entry and is more
standardized.

Signed-off-by: Hou Wenlong <houwenlong.hwl@antgroup.com>
---
 arch/x86/platform/pvh/enlighten.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/arch/x86/platform/pvh/enlighten.c b/arch/x86/platform/pvh/enlighten.c
index 2263885d16ba..f2053cbe9b0c 100644
--- a/arch/x86/platform/pvh/enlighten.c
+++ b/arch/x86/platform/pvh/enlighten.c
@@ -25,11 +25,6 @@ struct hvm_start_info __initdata pvh_start_info;
 
 const unsigned int __initconst pvh_start_info_sz = sizeof(pvh_start_info);
 
-static u64 __init pvh_get_root_pointer(void)
-{
-	return pvh_start_info.rsdp_paddr;
-}
-
 /*
  * Xen guests are able to obtain the memory map from the hypervisor via the
  * HYPERVISOR_memory_op hypercall.
@@ -95,7 +90,7 @@ static void __init init_pvh_bootparams(bool xen_guest)
 	pvh_bootparams.hdr.version = (2 << 8) | 12;
 	pvh_bootparams.hdr.type_of_loader = ((xen_guest ? 0x9 : 0xb) << 4) | 0;
 
-	x86_init.acpi.get_root_pointer = pvh_get_root_pointer;
+	pvh_bootparams.acpi_rsdp_addr = pvh_start_info.rsdp_paddr;
 }
 
 /*
-- 
2.31.1



From xen-devel-bounces@lists.xenproject.org Sun Mar 01 08:37:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 01 Mar 2026 08:37:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243703.1543307 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwcJ9-0000tu-SH; Sun, 01 Mar 2026 08:37:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243703.1543307; Sun, 01 Mar 2026 08:37: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 1vwcJ9-0000tm-Na; Sun, 01 Mar 2026 08:37:47 +0000
Received: by outflank-mailman (input) for mailman id 1243703;
 Sun, 01 Mar 2026 08:36: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=QSs9=BB=oss.qualcomm.com=vijayanand.jitta@srs-se1.protection.inumbo.net>)
 id 1vwcHe-0000nw-9N
 for xen-devel@lists.xenproject.org; Sun, 01 Mar 2026 08:36:14 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b09d3183-1549-11f1-9ccf-f158ae23cfc8;
 Sun, 01 Mar 2026 09:36:07 +0100 (CET)
Received: from pps.filterd (m0279869.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 6212HKN61732630
 for <xen-devel@lists.xenproject.org>; Sun, 1 Mar 2026 08:36:06 GMT
Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com
 [209.85.215.198])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cksf6jcqj-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Sun, 01 Mar 2026 08:36:05 +0000 (GMT)
Received: by mail-pg1-f198.google.com with SMTP id
 41be03b00d2f7-c70f19f0f37so1923129a12.0
 for <xen-devel@lists.xenproject.org>; Sun, 01 Mar 2026 00:36:05 -0800 (PST)
Received: from hu-vjitta-hyd.qualcomm.com ([202.46.23.25])
 by smtp.gmail.com with ESMTPSA id
 41be03b00d2f7-c70fa82dd09sm9177300a12.28.2026.03.01.00.35.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 01 Mar 2026 00:36:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b09d3183-1549-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:message-id
	:mime-version:subject:to; s=qcppdkim1; bh=h/J87S3x56AlWUvhsWA468
	cx/T1N6JOg3YVREGRvJqA=; b=Soibzn4N/ZkM5J3qoqIornB47kjVSoW4OSYFdA
	JxHI+jCEFG5AvcKA6uqJnh2JesMWopy+nx3HDqBpTUvNGDuFejcPfcLe9Wzv31dL
	lZmPlWfTua+C1ln4pDhPH3wO0uF/KAKlbaurOU0Lyvb/HT3LlRYDU5RicRjeIINR
	QpXTC9yyk0HMnRkljCIyNpxDx3575VsDL+yiy4jgj2xHmPPD5HbYk9UXvz0mnraL
	sorBjyjDTyJXLHZLUZX9b2mC5nbJ0Wy1mT6ghkzAsD2FR+BQU64qTD44WcqMK0f9
	o5vQEB9V06sSulMdm2F48Z6RTI7ze1Qmdf4VUiOntKatRtgg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1772354165; x=1772958965; darn=lists.xenproject.org;
        h=cc:to:content-transfer-encoding:mime-version:message-id:date
         :subject:from:from:to:cc:subject:date:message-id:reply-to;
        bh=h/J87S3x56AlWUvhsWA468cx/T1N6JOg3YVREGRvJqA=;
        b=F4VZ85rA7fmi9WGqjNz1ccAfUAcZWrC9ni7s6cRAVejT1OSWmKj0Ooc/OwdCmQu2g9
         9yvz12LRB7VSSu2ft/sx0UD2jJ01Grbiq59w9T0wWtMtW/kL3gYxFUt1ZXlBfHN+0nLR
         LFJ9GqRbAmT3MSj0O0zmK4SS/Y48rpL33rzAa5SGK6Duv2lCLPKWoJMsiYug3q6MqKh7
         k874+hzsLllyOj899AkRG2VCBc6MpXbvsFvLO0b3hU4GZlvMCBFVYbOdHmoE618RgxeU
         FlxKh+ve0JH7+YIZSAaEfEWq1qsdXseI8EsCbwc0IMMVfLU99CnyqCvpSqW8Y1FoXNrw
         ok9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772354165; x=1772958965;
        h=cc:to:content-transfer-encoding:mime-version:message-id:date
         :subject:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=h/J87S3x56AlWUvhsWA468cx/T1N6JOg3YVREGRvJqA=;
        b=NjJ3U2xUvTJQO3svDjSIftyXuTNv2qEuhZcpiZrxQ6GJrnWbedetaiUeapY+Rvyl+w
         LK3TYabscE5an/ai75JdPXbghF+nCJDrZpGMTQq2/pibQh3MLDFauTu1rIf1KzQPmpCt
         Yrsq4RucpmplbZJBfiCu4lJ/FI/ET87uGU+c5XMtZyNikkC4jQ1oXQXAat2x9FkuFlbA
         dYEPLwItqxVJm8QBTY7/tyI6ezCjR+2J222EsVruWMNqPGoc20L3xRL80cXb/lYe+L3T
         sWpfLOeZr2Tn6RsMOTtShSnrP4mZ2mXOAStUQPgmf0xYQ3A4U+Dwo849DsvpxYBQTC2A
         jf1Q==
X-Forwarded-Encrypted: i=1; AJvYcCUPXez4GCPPPG/Tc92DpodlOoKm/sa03R5Z+TlPDqr3D8OhQGC0h+knxZoHQjOYqlUMuVRnZFtSNb4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyMrsuu2juaqP8B8qw4K0XbZKpItTahCsnoSZH/aoN7BfreWpSF
	RsamAK6ElijoIgWZKOXhoETyfGdo3zXgG0kkxSyFQhGvHzQqm3tQxZbFXOfh5aKrkeSmXjCrVCB
	7FSFd4mz+2QJSS866Ww4yMh1vqr0eeBx7frcfxAmeJVHv6NVKNEoJGl4fx0IPS0AXeXRt5A==
X-Gm-Gg: ATEYQzxDb/ikAbAqPuYdZ6EQ8xMJamHHLMBNX9gTNjtIKP+GK+x3J06IZTuR2Mqe3cX
	aYfGkQkDr6FBBO46O8cQBjRXIxElrIVaWl3Gs62xaiukTMFsTzb1pPadzts4L28/yk4IQpTSjDB
	YpdVISdM065vFpPvvUPPgwGokCFrTTIfkYhvR6BdqofgYLgm6LEIVG8GmMRbLMiFtn/cwcyqkeo
	mj1zG28CERnfFGG8nBqsZOSRFXSuNUNn2AJgsxn79xCflRwg2Py6nojhQF0aPa5yF3tOPznFqZW
	i5TvBo7bSST1I6lY7OGr6dwW6d71c7Ju6ojbw0xxzbLsEfGYVSU/RPtGxE5TojwQlHH5HSc2qqf
	yu2dAdsNY6yoJ6y5b7iGan1pw5SHMnS522qWCzCIrrVH1q3SlLbP0DC8F
X-Received: by 2002:a05:6a00:1d14:b0:823:1444:7873 with SMTP id d2e1a72fcca58-827398630afmr9488137b3a.32.1772354164639;
        Sun, 01 Mar 2026 00:36:04 -0800 (PST)
X-Received: by 2002:a05:6a00:1d14:b0:823:1444:7873 with SMTP id d2e1a72fcca58-827398630afmr9488110b3a.32.1772354164035;
        Sun, 01 Mar 2026 00:36:04 -0800 (PST)
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Subject: [PATCH v9 0/3] of: parsing of multi #{iommu,msi}-cells in maps
Date: Sun, 01 Mar 2026 14:04:18 +0530
Message-Id: <20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
X-B4-Tracking: v=1; b=H4sIAAr6o2kC/x3MTQqAIBBA4avErBM0ob+rRIjZVANq4VAE0d2Tl
 t/ivQcYEyFDXzyQ8CKmPWZ0ZQFus3FFQXM2VLKqpZZKHDYxGtpDOI1D71kop3VTtxanyULujoQ
 L3f9zGN/3A61zjrxjAAAA
To: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>, Rob Herring <robh@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org,
        Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>,
        linux-arm-msm@vger.kernel.org,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
X-Mailer: b4 0.12.3
X-Developer-Signature: v=1; a=ed25519-sha256; t=1772354153; l=4172;
 i=vijayanand.jitta@oss.qualcomm.com; s=20260301; h=from:subject:message-id;
 bh=H6nPK0TK5n+SrUMyTi0tJArgcayT5+iAOxNLWT6jD+I=;
 b=0138PH3DyBpH6CTf5Gshrd2F5CdUzVc0F0MxX4wX0mhvTjGvGhC4k9OE5ekOV5Mibl6bnxqrt
 Gf0jdcWnaG7Anf+I2c3nVSolMIhssmbuOeaTts0urN2JZSagf5VqNQT
X-Developer-Key: i=vijayanand.jitta@oss.qualcomm.com; a=ed25519;
 pk=Lpi7Cs3wHe8KZtqvyci7FTOLzsKpEHKGCaPNZw+1zRI=
X-Proofpoint-ORIG-GUID: nC_k3CF1wKFDaDdcuCNCuxK_XTihnHsl
X-Authority-Analysis: v=2.4 cv=JoL8bc4C c=1 sm=1 tr=0 ts=69a3fa75 cx=c_pps
 a=Qgeoaf8Lrialg5Z894R3/Q==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22
 a=VwQbUJbxAAAA:8 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=NEAV23lmAAAA:8
 a=hUMMoPFcHhpVZiwYRzIA:9 a=QEXdDO2ut3YA:10 a=x9snwWr2DeNwDh03kgHS:22
 a=TjNXssC_j7lpFel5tvFf:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzAxMDA3NiBTYWx0ZWRfX4DRfWh8eFQGq
 qf/ONY1xYk9oZK3EdbvgJ8IplpOSpLyOsb8ka2msMNBZ3hAS7wV0f0d9QGb+XrI9A1R2zMEs0UZ
 EY/zz34HfzwyVA/yiu0SRVrApIAlY9J2scsUPWXNz9GSRjU7iHfa/R08E2fv5KVsdsCSiOokGtZ
 wzAlCeEyETCHaLtU5YSUUHA1QN7g+L3ozN7NuhfdbDlMEIFzmtmzwA5BPhCPCrAb7en3PCGY7of
 UyKsHlOG9IUotxYX4sC7rS94x+1vdgtrjvBGZsibDlc0273qxPFoUNejmV9laS4Iend1WY1kpvC
 TLvcsND3m6VPXfh4QCRLh0ow5NPxY6sxsjLlWOjL2wKum3ixP22odrQPCRwGeVlWbZT22+3SNRI
 +pNJmCJXJp3edb4aRnXqn50nsl5ORQgVhKPOenx7VUz8SDSQJJr3vAGNiVetbJKKplIWz5JCJnn
 OpjoYaPmmiooP9igLjQ==
X-Proofpoint-GUID: nC_k3CF1wKFDaDdcuCNCuxK_XTihnHsl
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-01_01,2026-02-27_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 lowpriorityscore=0 suspectscore=0 malwarescore=0 priorityscore=1501
 adultscore=0 bulkscore=0 clxscore=1011 impostorscore=0 spamscore=0
 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000
 definitions=main-2603010076

So far our parsing of {iommu,msi}-map properites has always blindly
assumed that the output specifiers will always have exactly 1 cell.
This typically does happen to be the case, but is not actually enforced
(and the PCI msi-map binding even explicitly states support for 0 or 1
cells) - as a result we've now ended up with dodgy DTs out in the field
which depend on this behaviour to map a 1-cell specifier for a 2-cell
provider, despite that being bogus per the bindings themselves.

Since there is some potential use[1] in being able to map at least
single input IDs to multi-cell output specifiers (and properly support
0-cell outputs as well), add support for properly parsing and using the
target nodes' #cells values, albeit with the unfortunate complication of
still having to work around expectations of the old behaviour too.
							-- Robin.

Unlike single #{}-cell, it is complex to establish a linear relation
between input 'id' and output specifier for multi-cell properties, thus
it is always expected that len never going to be > 1. 

These changes have been tested on QEMU for the arm64 architecture.

[1] https://lore.kernel.org/all/20250627-video_cb-v3-0-51e18c0ffbce@quicinc.com/

V9:
  - Updated TO/CC list based on feedback to include all relevant
    maintainers.
  - No functional changes to the patches themselves.

  Link to V8:
  https://lore.kernel.org/all/20260226074245.3098486-1-vijayanand.jitta@oss.qualcomm.com/

V8:
  - Removed mentions of of_map_args from commit message to match code.

  Link to V7:
  https://lore.kernel.org/all/20260210101157.2145113-1-vijayanand.jitta@oss.qualcomm.com/

V7:
  - Removed of_map_id_args structure and replaced it with
    of_phandle_args as suggested by Dmitry.

  Link to V6:
  https://lore.kernel.org/all/20260121055400.937856-1-vijayanand.jitta@oss.qualcomm.com/

V6:
  - Fixed build error reported by kernel test bot.

  Link to V5:
  https://lore.kernel.org/all/20260118181125.1436036-1-vijayanand.jitta@oss.qualcomm.com/

V5:
  - Fixed Build Warnings.
  - Raised PR for iommu-map dtschema: https://github.com/devicetree-org/dt-schema/pull/184

  Link to V4:
  https://lore.kernel.org/all/20251231114257.2382820-1-vijayanand.jitta@oss.qualcomm.com/

V4:
  - Added Reviewed-by tag.
  - Resolved warnings reported by kernel test bot, minor code
    reorganization.

  Link to V3:
  https://lore.kernel.org/all/20251221213602.2413124-1-vijayanand.jitta@oss.qualcomm.com/

V3:
  - Added Reviewed-by tag.
  - Updated of_map_id_args struct as a wrapper to of_phandle_args and
    added comment description as suggested by Rob Herring.

  Link to V2:
  https://lore.kernel.org/all/20251204095530.8627-1-vijayanand.jitta@oss.qualcomm.com/

V2:
  - Incorporated the patches from Robin that does the clean implementation.
  - Dropped the patches the were adding multi-map support from this series
    as suggested.

V1:
 https://lore.kernel.org/all/cover.1762235099.git.charan.kalla@oss.qualcomm.com/

RFC:
 https://lore.kernel.org/all/20250928171718.436440-1-charan.kalla@oss.qualcomm.com/#r

Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
---
Charan Teja Kalla (1):
      of: factor arguments passed to of_map_id() into a struct

Robin Murphy (2):
      of: Add convenience wrappers for of_map_id()
      of: Respect #{iommu,msi}-cells in maps

 drivers/cdx/cdx_msi.c                    |   3 +-
 drivers/iommu/of_iommu.c                 |   6 +-
 drivers/irqchip/irq-gic-its-msi-parent.c |   2 +-
 drivers/of/base.c                        | 148 ++++++++++++++++++++++---------
 drivers/of/irq.c                         |   3 +-
 drivers/pci/controller/dwc/pci-imx6.c    |  12 ++-
 drivers/pci/controller/pcie-apple.c      |   5 +-
 drivers/xen/grant-dma-ops.c              |   3 +-
 include/linux/of.h                       |  33 +++++--
 9 files changed, 152 insertions(+), 63 deletions(-)
---
base-commit: 3fa5e5702a82d259897bd7e209469bc06368bf31
change-id: 20260301-parse_iommu_cells-1c33768aebba

Best regards,
-- 
Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>



From xen-devel-bounces@lists.xenproject.org Sun Mar 01 08:37:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 01 Mar 2026 08:37:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243707.1543322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwcJA-00017u-Ih; Sun, 01 Mar 2026 08:37:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243707.1543322; Sun, 01 Mar 2026 08: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 1vwcJA-00014K-8w; Sun, 01 Mar 2026 08:37:48 +0000
Received: by outflank-mailman (input) for mailman id 1243707;
 Sun, 01 Mar 2026 08:36: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=QSs9=BB=oss.qualcomm.com=vijayanand.jitta@srs-se1.protection.inumbo.net>)
 id 1vwcHv-0000nw-9A
 for xen-devel@lists.xenproject.org; Sun, 01 Mar 2026 08:36:31 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bda8582b-1549-11f1-9ccf-f158ae23cfc8;
 Sun, 01 Mar 2026 09:36:29 +0100 (CET)
Received: from pps.filterd (m0279873.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 6214Ea3A3978903
 for <xen-devel@lists.xenproject.org>; Sun, 1 Mar 2026 08:36:28 GMT
Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com
 [209.85.215.199])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ckshktbv4-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Sun, 01 Mar 2026 08:36:27 +0000 (GMT)
Received: by mail-pg1-f199.google.com with SMTP id
 41be03b00d2f7-b630753cc38so18467743a12.1
 for <xen-devel@lists.xenproject.org>; Sun, 01 Mar 2026 00:36:27 -0800 (PST)
Received: from hu-vjitta-hyd.qualcomm.com ([202.46.23.25])
 by smtp.gmail.com with ESMTPSA id
 41be03b00d2f7-c70fa82dd09sm9177300a12.28.2026.03.01.00.36.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 01 Mar 2026 00: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: bda8582b-1549-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	JWC4EWZ3YtPp4HbcYOknKtzY08XiWmMw2Q79Uzh+F0E=; b=WPZzCqUyGxdnLn2y
	pdgl6gf2J0urmQmnaJ/KOhuTlNLijdzlWjYEXvefXkcYImP7A9IEOnDlJgmDZ5vc
	yrqJnITXucUqL0TJZxVarZyKZBt/E7hQEi79M1bc9IAsRHhBGB+QUKuvXaJPdqvR
	l4ghcOtQUy6P88fH0JbkRNM1C1Taqr82HdyX/YnPo+C+hQTxrcceQqcXp16Owyjf
	xPIDTgjnEwBubkLLyqwxP+sH0M1Pq+RMJ/TdLSAJP5xVJT+LCdVB40myHCln8MJh
	A15mlyNS7NccWEFHCTMbVb/1DJhvhjvP0JyIE2KI7LUAGFJ8Zrjlnz2JezK+PoUc
	QEkgOg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1772354187; x=1772958987; darn=lists.xenproject.org;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:from:to:cc:subject:date:message-id
         :reply-to;
        bh=JWC4EWZ3YtPp4HbcYOknKtzY08XiWmMw2Q79Uzh+F0E=;
        b=Y0/tJur/kXgm1xVEM3i0X1hpjpIKJZTt0LtmRVKeqva5RSTi3mlZ/dtt4mVbPP/COO
         5AVKOORDNV39UsObL3ZvLtDp6ms8YBsSMCZaf5w4+xhwr6TNH6dok2SqmltLgTciBqxH
         3OZ1K4NbLJFeaWb15JauMzZXFEFhLSQDxR3Lfm5rfgJmA0Rkv6zshJIbvr2tzJbC4+TM
         IzPIZSTWbK0QUwoSt4BvcQg5p1w2lXMOiX24g94sB82E18eC/1w0YBRpqTbwc++Mcs0h
         61dccNjtN8F0NydZu3fiKfUROSg85NwF3PmDMiJtGeWt/dYzVCIpVMW2CBAd1dHTmriS
         8Ckw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772354187; x=1772958987;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=JWC4EWZ3YtPp4HbcYOknKtzY08XiWmMw2Q79Uzh+F0E=;
        b=tXP6INAOU4XIdKHea2/TAnId2IUHgLFGVNVOgREIaaoNCkzCrr7sfGXOJ6vaB7ZxEw
         JtIan5p1c0X9SSKZVNAFOeDILwCtjMxxtftE+yABy45i8VeU7oHdtEW+fXhmCraD01mQ
         xndgAs8BigNXamU/88OcDMV/vI0Nvydhdzr7xylnQviw2SvKUTYoBOcQHSrkVi/4TttR
         kT3A/MnVKoQhusW+YuSwA8SomEbwut3XuCwVrX40Qtmg6xuPTTd0TfdNueogKvATlChI
         T/Rq2sc+600lFX2EuMCdfh2iWXGMG+0TfdRGItDefsHMR65Azf2ceFHNbqxbYr2ZzMtz
         bDuw==
X-Forwarded-Encrypted: i=1; AJvYcCVENAoF5TtPiEAMdi3eufCk+pzew+3werCGlSxT3XIC8Vm5bsMbbpSkmowu/PAz/UVAhJDqCltsflY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxslB5ZVVIbzp/3TA4JGUi+zKYmeUmGXVSOiyrrxUdibhft0XjQ
	novjHK+8wQv9ZmAETEvC7LXkPAk9NP3c6mtNWvJZWxla/0ma+7rInaIobk++UYohLTBAohGdndk
	MNjnzw3hTpVB8FUeo7wNWzFDS7IpB3avCtpmW9Lp4ZS85jjYQiVkwRe6S3/MlfeIL1xIWug==
X-Gm-Gg: ATEYQzxogJBWS1cDZzH1TXRDh9KOR1t/v2tclhpfW7sU9fTreIhTMuBQr4YDd7J8E/B
	4WfbGH6LR2RVudHLI7oFDtkp1dPKbVyD4eAk9QxQWW1hf3F+PlbrPt193TdB6okU96WBPxNV+fq
	GDsnGj7/FVCbb7oStRsuCt1T10lhGAQ3ktAqonboX5Mh8kok1ysRxbEKQMTuPBWu1z8UQW6wejD
	+zYAd+Remq3dxZ8j/LxTB3SG0ch1jnNvlipZ+JJEYorjnSF6NfX3oiOqiEkVsSbrfxlVdgkZmPP
	C5oIKe6HBLQ3P0myNDFI2mrXD+P4uC/r3tMNd9KJ8TOIHRAI7pIDrsUKWDcCF0iimf8UvGbLszq
	v6x3WdV42njqfqNnoHX4hydSE3rOmuKT3bQrLE9bJ0vbI9gsGDxiMnxyo
X-Received: by 2002:a05:6a21:610e:b0:38e:9e81:d403 with SMTP id adf61e73a8af0-395c3a1b597mr8708792637.13.1772354186649;
        Sun, 01 Mar 2026 00:36:26 -0800 (PST)
X-Received: by 2002:a05:6a21:610e:b0:38e:9e81:d403 with SMTP id adf61e73a8af0-395c3a1b597mr8708760637.13.1772354186052;
        Sun, 01 Mar 2026 00:36:26 -0800 (PST)
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Date: Sun, 01 Mar 2026 14:04:20 +0530
Subject: [PATCH v9 2/3] of: factor arguments passed to of_map_id() into a
 struct
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260301-parse_iommu_cells-v9-2-4d1bceecc5e1@oss.qualcomm.com>
References: <20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com>
In-Reply-To: <20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com>
To: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>, Rob Herring <robh@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org,
        Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>,
        linux-arm-msm@vger.kernel.org,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
X-Mailer: b4 0.12.3
X-Developer-Signature: v=1; a=ed25519-sha256; t=1772354153; l=8142;
 i=vijayanand.jitta@oss.qualcomm.com; s=20260301; h=from:subject:message-id;
 bh=r2qfSqiqIjEbj4wTPrMkzeKvLvtgLnSihSwqEGZhuYg=;
 b=r/dhHroymMbLBDFlYf1GFDusEMnB4gD+ozyYy/V79x+uvbreXh9f3EYvZPK8M1Yk14K7fnxjU
 EevL6+OwaOGAPeTwTrmt9IjrFVaa9IWd9FQFUl0AWbT8tn7Gmzj0smi
X-Developer-Key: i=vijayanand.jitta@oss.qualcomm.com; a=ed25519;
 pk=Lpi7Cs3wHe8KZtqvyci7FTOLzsKpEHKGCaPNZw+1zRI=
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzAxMDA3NiBTYWx0ZWRfX9qJspae3QzIX
 83WtFJ111fV3dZM2yP4ReBnD/CsTCrStOSx2vfWL6vg7Lyb9B3IPgNsQ5MtLxZRMEVKmPd5+EVz
 HepboVDXr2s7xUmcmZToKfB1ruZQ929vOIFXrJ7QxwyYUqt5rhc81zyRbq2WPQsArclEAyvzgcD
 TMll3Ewsm+1nMdP0QPxQnh8jCztmlfN4mxVKdHgvVWkWhyjQhBkrQdcFlw48ciDwSZoxAbV/wiO
 Uga/DSC15kAm6IWAHAOCoFiilLBIkMZ1cO2eVsBE2ODvk1N8+ZU3+wvrfieTGlY45ZYyerIspzA
 KWaR154XSrBAzmMQrBjB+GIFTpTlhijI3LMEUocpLnnOH/ZlOzWRksUaQJv8nC7N6Lrhdo8KNtC
 GKG8PMTdG88yHjVruVIkbdfEqtuMltwlaNaRCGdst39NSMQMxkBCWR3ONV+UH9A+SPPJmpfCbJG
 FVWIbjARVe+vdAQXb+w==
X-Proofpoint-ORIG-GUID: -2QVLZLOOf3_RztYv_oeuvJYyNrglmHR
X-Authority-Analysis: v=2.4 cv=EvbfbCcA c=1 sm=1 tr=0 ts=69a3fa8b cx=c_pps
 a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22
 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=I3pr03k2-ahTGQre_g8A:9 a=QEXdDO2ut3YA:10
 a=_Vgx9l1VpLgwpw_dHYaR:22
X-Proofpoint-GUID: -2QVLZLOOf3_RztYv_oeuvJYyNrglmHR
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-01_01,2026-02-27_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 phishscore=0 bulkscore=0 spamscore=0 lowpriorityscore=0 priorityscore=1501
 malwarescore=0 adultscore=0 impostorscore=0 clxscore=1015 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603010076

From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>

Change of_map_id() to take a pointer to struct of_phandle_args
instead of passing target device node and translated IDs separately.
Update all callers accordingly.

Subsequent patch will make use of the args_count field in
struct of_phandle_args.

Suggested-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
---
 drivers/iommu/of_iommu.c              |  2 +-
 drivers/of/base.c                     | 37 +++++++++++++++++------------------
 drivers/pci/controller/dwc/pci-imx6.c |  8 +++++++-
 drivers/pci/controller/pcie-apple.c   |  4 +++-
 drivers/xen/grant-dma-ops.c           |  2 +-
 include/linux/of.h                    | 21 +++++++++++++-------
 6 files changed, 44 insertions(+), 30 deletions(-)

diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
index a511ecf21fcd..d255d0f58e8c 100644
--- a/drivers/iommu/of_iommu.c
+++ b/drivers/iommu/of_iommu.c
@@ -48,7 +48,7 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
 	struct of_phandle_args iommu_spec = { .args_count = 1 };
 	int err;
 
-	err = of_map_iommu_id(master_np, *id, &iommu_spec.np, iommu_spec.args);
+	err = of_map_iommu_id(master_np, *id, &iommu_spec);
 	if (err)
 		return err;
 
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 57420806c1a2..6c3628255908 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -2102,8 +2102,11 @@ int of_find_last_cache_level(unsigned int cpu)
  * @id: device ID to map.
  * @map_name: property name of the map to use.
  * @map_mask_name: optional property name of the mask to use.
- * @target: optional pointer to a target device node.
- * @id_out: optional pointer to receive the translated ID.
+ * @arg: of_phandle_args structure,
+ *	which includes:
+ *	np: pointer to the target device node
+ *	args_count: number of arguments
+ *	args[]: array to receive the translated ID(s).
  *
  * Given a device ID, look up the appropriate implementation-defined
  * platform ID and/or the target device which receives transactions on that
@@ -2117,21 +2120,21 @@ int of_find_last_cache_level(unsigned int cpu)
  */
 int of_map_id(const struct device_node *np, u32 id,
 	       const char *map_name, const char *map_mask_name,
-	       struct device_node **target, u32 *id_out)
+	       struct of_phandle_args *arg)
 {
 	u32 map_mask, masked_id;
 	int map_len;
 	const __be32 *map = NULL;
 
-	if (!np || !map_name || (!target && !id_out))
+	if (!np || !map_name || !arg)
 		return -EINVAL;
 
 	map = of_get_property(np, map_name, &map_len);
 	if (!map) {
-		if (target)
+		if (arg->np)
 			return -ENODEV;
 		/* Otherwise, no map implies no translation */
-		*id_out = id;
+		arg->args[0] = id;
 		return 0;
 	}
 
@@ -2173,18 +2176,15 @@ int of_map_id(const struct device_node *np, u32 id,
 		if (!phandle_node)
 			return -ENODEV;
 
-		if (target) {
-			if (*target)
-				of_node_put(phandle_node);
-			else
-				*target = phandle_node;
+		if (arg->np)
+			of_node_put(phandle_node);
+		else
+			arg->np = phandle_node;
 
-			if (*target != phandle_node)
-				continue;
-		}
+		if (arg->np != phandle_node)
+			continue;
 
-		if (id_out)
-			*id_out = masked_id - id_base + out_base;
+		arg->args[0] = masked_id - id_base + out_base;
 
 		pr_debug("%pOF: %s, using mask %08x, id-base: %08x, out-base: %08x, length: %08x, id: %08x -> %08x\n",
 			np, map_name, map_mask, id_base, out_base,
@@ -2193,11 +2193,10 @@ int of_map_id(const struct device_node *np, u32 id,
 	}
 
 	pr_info("%pOF: no %s translation for id 0x%x on %pOF\n", np, map_name,
-		id, target && *target ? *target : NULL);
+		id, arg->np ? arg->np : NULL);
 
 	/* Bypasses translation */
-	if (id_out)
-		*id_out = id;
+	arg->args[0] = id;
 	return 0;
 }
 EXPORT_SYMBOL_GPL(of_map_id);
diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
index bff8289f804a..74fc603b3f84 100644
--- a/drivers/pci/controller/dwc/pci-imx6.c
+++ b/drivers/pci/controller/dwc/pci-imx6.c
@@ -1139,12 +1139,18 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
 {
 	struct device *dev = imx_pcie->pci->dev;
 	struct device_node *target;
+	struct of_phandle_args iommu_spec = { .args_count = 1 };
 	u32 sid_i, sid_m;
 	int err_i, err_m;
 	u32 sid = 0;
 
 	target = NULL;
-	err_i = of_map_iommu_id(dev->of_node, rid, &target, &sid_i);
+	err_i = of_map_iommu_id(dev->of_node, rid, &iommu_spec);
+	if (!err_i) {
+		target = iommu_spec.np;
+		sid_i = iommu_spec.args[0];
+	}
+
 	if (target) {
 		of_node_put(target);
 	} else {
diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
index a0937b7b3c4d..e1d4b37d200d 100644
--- a/drivers/pci/controller/pcie-apple.c
+++ b/drivers/pci/controller/pcie-apple.c
@@ -755,6 +755,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
 {
 	u32 sid, rid = pci_dev_id(pdev);
 	struct apple_pcie_port *port;
+	struct of_phandle_args iommu_spec = { .args_count = 1 };
 	int idx, err;
 
 	port = apple_pcie_get_port(pdev);
@@ -764,10 +765,11 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
 	dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
 		pci_name(pdev->bus->self), port->idx);
 
-	err = of_map_iommu_id(port->pcie->dev->of_node, rid, NULL, &sid);
+	err = of_map_iommu_id(port->pcie->dev->of_node, rid, &iommu_spec);
 	if (err)
 		return err;
 
+	sid = iommu_spec.args[0];
 	mutex_lock(&port->pcie->lock);
 
 	idx = bitmap_find_free_region(port->sid_map, port->sid_map_sz, 0);
diff --git a/drivers/xen/grant-dma-ops.c b/drivers/xen/grant-dma-ops.c
index 1b7696b2d762..5f1d6540049a 100644
--- a/drivers/xen/grant-dma-ops.c
+++ b/drivers/xen/grant-dma-ops.c
@@ -325,7 +325,7 @@ static int xen_dt_grant_init_backend_domid(struct device *dev,
 		struct pci_dev *pdev = to_pci_dev(dev);
 		u32 rid = PCI_DEVID(pdev->bus->number, pdev->devfn);
 
-		if (of_map_iommu_id(np, rid, &iommu_spec.np, iommu_spec.args)) {
+		if (of_map_iommu_id(np, rid, &iommu_spec)) {
 			dev_dbg(dev, "Cannot translate ID\n");
 			return -ESRCH;
 		}
diff --git a/include/linux/of.h b/include/linux/of.h
index 824649867810..9d72d76f909d 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -463,7 +463,7 @@ bool of_console_check(const struct device_node *dn, char *name, int index);
 
 int of_map_id(const struct device_node *np, u32 id,
 	       const char *map_name, const char *map_mask_name,
-	       struct device_node **target, u32 *id_out);
+	       struct of_phandle_args *arg);
 
 phys_addr_t of_dma_get_max_cpu_address(struct device_node *np);
 
@@ -929,7 +929,7 @@ static inline void of_property_clear_flag(struct property *p, unsigned long flag
 
 static inline int of_map_id(const struct device_node *np, u32 id,
 			     const char *map_name, const char *map_mask_name,
-			     struct device_node **target, u32 *id_out)
+			     struct of_phandle_args *arg)
 {
 	return -EINVAL;
 }
@@ -1458,17 +1458,24 @@ static inline int of_property_read_s32(const struct device_node *np,
 }
 
 static inline int of_map_iommu_id(const struct device_node *np, u32 id,
-				  struct device_node **target, u32 *id_out)
+				  struct of_phandle_args *arg)
 {
-	return of_map_id(np, id, "iommu-map", "iommu-map-mask",
-			 target, id_out);
+	return of_map_id(np, id, "iommu-map", "iommu-map-mask", arg);
 }
 
 static inline int of_map_msi_id(const struct device_node *np, u32 id,
 				struct device_node **target, u32 *id_out)
 {
-	return of_map_id(np, id, "msi-map", "msi-map-mask",
-			 target, id_out);
+	struct of_phandle_args msi_spec = { .np = *target, .args_count = 1 };
+	int ret;
+
+	ret = of_map_id(np, id, "msi-map", "msi-map-mask", &msi_spec);
+	if (!ret) {
+		*target = msi_spec.np;
+		*id_out = msi_spec.args[0];
+	}
+
+	return ret;
 }
 
 #define of_for_each_phandle(it, err, np, ln, cn, cc)			\

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Mar 01 08:37:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 01 Mar 2026 08:37:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243637.1543302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwcJ9-0000qk-Jr; Sun, 01 Mar 2026 08:37:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243637.1543302; Sun, 01 Mar 2026 08:37: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 1vwcJ9-0000qd-Fq; Sun, 01 Mar 2026 08:37:47 +0000
Received: by outflank-mailman (input) for mailman id 1243637;
 Sun, 01 Mar 2026 00:38: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=n4Re=BB=gmail.com=hlcj1234567@srs-se1.protection.inumbo.net>)
 id 1vwUpl-0005e6-4G
 for xen-devel@lists.xenproject.org; Sun, 01 Mar 2026 00:38:57 +0000
Received: from mail-qt1-x829.google.com (mail-qt1-x829.google.com
 [2607:f8b0:4864:20::829])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 06e01d70-1507-11f1-b164-2bf370ae4941;
 Sun, 01 Mar 2026 01:38:55 +0100 (CET)
Received: by mail-qt1-x829.google.com with SMTP id
 d75a77b69052e-5069ad750b7so28839321cf.2
 for <xen-devel@lists.xenproject.org>; Sat, 28 Feb 2026 16:38:55 -0800 (PST)
Received: from instance-20260207-1316.vcn12250046.oraclevcn.com
 ([150.136.248.187]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-507451cda23sm82758741cf.18.2026.02.28.16.38.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 28 Feb 2026 16:38:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 06e01d70-1507-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772325534; x=1772930334; 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=8GnZ6scY9RatwDOdF0bnkSG216StlRqp+YcA3P3cM/E=;
        b=cud8h2MIiL85D3gkQgS4kA0uBidWAwcpccqfgZwBMPzUW9OGUZpOMTSP5sxSY7Vn8f
         mL0ROhtCqWE3vrFOlzHIRgSCO0gU5fWx6WFdmPvlcZGvRe9l3Jk3hG1ymv0Mpk/xYLM6
         jE1u9z/27PS8vXQB5wcztcI1GzCzIqI6T8EcGOo9Ym9f3hi9XPmpN5eJTpJI9q0UNApa
         3tRN1rG6SU911YT+rCN1BsISyBYqpc0L5c807xTq/3TwrSvhk7vdWUbvpaqkXr/rah9B
         M+ta+lUQa3XCbqzr1vRCwOxDJXNFCqFQG3cFp+F67y4+MYnUWBipMfinEzTGea7GoZfV
         Wnfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772325534; x=1772930334;
        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=8GnZ6scY9RatwDOdF0bnkSG216StlRqp+YcA3P3cM/E=;
        b=QT+akXLquTiJ2wAWhmQLh7HzANemW0WMkIuv89GvCNZ5OmpmO7WM1Uist8fg9vEL8+
         iZooAalETdz4G+fhV4r3oW7OkT4cPGJt3HSjeV2wzNcCa/IDCsSAw5YmisyqYkx3kIK0
         ZiKFsAQcSnPWUogk3GldVchDr1YYiE4oMgn0zwWXQWQ5KbSsaKhOBhBf8vClMlCnCuPF
         wfcYFaShTRU9MGOlixLSgArjJVoaVkqeO812d6kdPtGEfGStLfA6nNH+DyN/n1O17+jG
         lglH1GV34PJHh0vPMAP+5dLH5528guB0aC+IwkOVzodZSHL5vHRHnE4qDpq1o6Ae00Tr
         OHaA==
X-Gm-Message-State: AOJu0Yw4884BXrbp/e7lWZAM2bAHrukWARmatYgVR+XHO9bxRcrP0hWE
	ajVz7hlSfqKebgO47rR2/i5kMi+RjatafypwoBDMwo/cEFOtIlTGHAZ2
X-Gm-Gg: ATEYQzwxT/X+e8EaHcqK6DZ0kCSnnOckxZRrc4aS69j5QBtX/DzH0B/60UCai9TyCyj
	hAsmC+N3tFsFrVux5UUEW1jMVwZbcSUNxC8L1+YW3xKlX0vhIhuw27gGgzkya2SyV2QFibTACC/
	FLGpjEd8j8mzYRbUC82qBcKtKESydqyk2gqT9eaA5GKpX9oVxwtUuno4+8yVYlhfuut8AskXssr
	MUdLvX6P2dozEB6JnnXtKCbbDsrfhm4XA5S3+ln+NWYW0qWzKsUquIeaXzMzzWpRybcDIyN+jWP
	PZHjJGV8Oaf9C3CcIXzqtygQJ59/OFN/dnQ3RETyToaxnn1IFaOh/7obhojw0Qa/g6tD6Nskvdf
	Fe7ZcKbJALdqEgeheX+bg1vCO38G20Htr0DOboC/AKOooV1YAJuu7j4bNki9C2cHzJMWZyqjf3n
	zj+58z+ewZYOmCyMn6BiEeBh5gcGJgCz53RdwF4sNQBndmlOQRHG203H+xQ/kWFNSsdHAQEnRhP
	qvvh9iJgcs/Zww=
X-Received: by 2002:ac8:7d41:0:b0:4ee:5fc:43e5 with SMTP id d75a77b69052e-50752714416mr109988071cf.12.1772325534323;
        Sat, 28 Feb 2026 16:38:54 -0800 (PST)
From: Josh Law <hlcj1234567@gmail.com>
X-Google-Original-From: Josh Law <objecting@objecting.org>
To: Stefano Stabellini <sstabellini@kernel.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>
Cc: xen-devel@lists.xenproject.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	Josh Law <objecting@objecting.org>
Subject: [PATCH 1/4] arm64: xen: add missing SPDX-License-Identifier
Date: Sun,  1 Mar 2026 00:38:53 +0000
Message-ID: <20260301003853.2504449-1-objecting@objecting.org>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Josh Law <objecting@objecting.org>
---
 arch/arm64/xen/hypercall.S | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm64/xen/hypercall.S b/arch/arm64/xen/hypercall.S
index ae551b857137..19c99e6bab7a 100644
--- a/arch/arm64/xen/hypercall.S
+++ b/arch/arm64/xen/hypercall.S
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 /******************************************************************************
  * hypercall.S
  *
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun Mar 01 08:37:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 01 Mar 2026 08:37:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243709.1543325 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwcJA-0001Dm-OP; Sun, 01 Mar 2026 08:37:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243709.1543325; Sun, 01 Mar 2026 08: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 1vwcJA-0001Bh-KS; Sun, 01 Mar 2026 08:37:48 +0000
Received: by outflank-mailman (input) for mailman id 1243709;
 Sun, 01 Mar 2026 08:36: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=QSs9=BB=oss.qualcomm.com=vijayanand.jitta@srs-se1.protection.inumbo.net>)
 id 1vwcI7-0000pY-2f
 for xen-devel@lists.xenproject.org; Sun, 01 Mar 2026 08:36:43 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c46778b4-1549-11f1-b164-2bf370ae4941;
 Sun, 01 Mar 2026 09:36:41 +0100 (CET)
Received: from pps.filterd (m0279868.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 6217jVT7511531
 for <xen-devel@lists.xenproject.org>; Sun, 1 Mar 2026 08:36:39 GMT
Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com
 [209.85.216.69])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cksg72bv8-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Sun, 01 Mar 2026 08:36:39 +0000 (GMT)
Received: by mail-pj1-f69.google.com with SMTP id
 98e67ed59e1d1-35983ee9f3bso500102a91.1
 for <xen-devel@lists.xenproject.org>; Sun, 01 Mar 2026 00:36:38 -0800 (PST)
Received: from hu-vjitta-hyd.qualcomm.com ([202.46.23.25])
 by smtp.gmail.com with ESMTPSA id
 41be03b00d2f7-c70fa82dd09sm9177300a12.28.2026.03.01.00.36.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 01 Mar 2026 00:36: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: c46778b4-1549-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	Mbns5ViOe94sVRFpbuwhgj3c35clcURMMrJnuCno/wA=; b=fTkYFz6CiVqazCX2
	HTXagNtEtcQRIN6wvUVsLdCw07hKyjPEewUZRvCwa8dDai/5kVaxSvtL8RKefS+T
	gQWEc4/o7mm6EGM1OSBic7RRsSrE6yPDZnZOXIG21FB0RUWI4o7S460/jm0zcLqN
	SPTr19hsIvyM6Dd8+CT9kv8I1NHPPhC/hnmDV8rG34uIDV7vKYv+yl2pIzs3WGDr
	bvjjEoQ22tDCxT9GWSjMqvRnQ2oFi84m6HLbMMm82jnxb21SDTuSQclkO+aB96a4
	JJADZsd994wcfFx2VQb0uneydrRhfFZr7EMD0/wnDmjhxtDew0TMThwOoOCZhRbH
	CaB1SA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1772354198; x=1772958998; darn=lists.xenproject.org;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Mbns5ViOe94sVRFpbuwhgj3c35clcURMMrJnuCno/wA=;
        b=DpWrap2oC4+fmtY0gqmK4CzpSfRE4gWZqXW5yowfJHBdnm5JpWX1Y5X00guJkVpMn7
         qKzXsZRz4MxqNuwu3qbiy48RYb6MjHid9W1ptx4fgNV/hL9Sdx4NBpNBMDMELhvkiGk2
         7e4IU6LAhissEVlpokIne0sr+FDHVBNN3dEgDzCATgv7zUbtqNszhjn7nQLhxOMFwgG3
         xjLoxPsDSZrWHIsDZ0pYIuefHHUxajnOgAyv+E8AKekH3e6/lDCXRe2F9UvlmSE6wFjC
         Rq2O69ZJKobUVeXL9aoFz0lHOT+DEKsJL8+2QOqoTGzVfoyhchLnTWIcz/TiTNhbUt5U
         BDGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772354198; x=1772958998;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=Mbns5ViOe94sVRFpbuwhgj3c35clcURMMrJnuCno/wA=;
        b=ONsIYmGyrmY28nRPL+8jq/gi1cagpWTlusMOp5jSlJQeEOV9YWEz/45L0PHPYIctbN
         iXKgioSqdxADuKCEQQ7AbUXwayOGzAXodOoywh4x6d7NcZD9Odj3XPEnUaakP9/hsoNf
         xgv9cUfHVFqbd6WJqkrT3BQ5aPS03MoJ2aO0rJTosd3FCqdaID0q7eJgIs0tGfSgNsaL
         YnyN+0lADKGMuJV/m5YVE6ZDS+drgSoF36TQETc0bNul0v/848NvouzxVswuUeRSHn3E
         83P6V4v8RTKbg+TufV8fBcvpukKnh+InKmQstHxVv9XnXR12St0ze+yDKgEN+4yI8M0R
         /+iA==
X-Forwarded-Encrypted: i=1; AJvYcCUvMVFQK0efLBEwauutG/FNPybkJIFQGQi5pNvZJpK42SLW/6tVdqSmH4NXZHw6V4IXchX4F89WVeY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwyL4489oTLFPSf1B6FpJp4nIKF00VlQX6dgVGRD/XznPvgMA2y
	Ud62mFg1IgbDCUzFy7mJ0SPFbuBaV52ybphaMgbKYlYnzeGu9wJNeCrKaz0E/WKrhLD3KMx6TRb
	SgfIawQNAOxMAoRWMRPmlMR/GYoQNK2HJmWlUAeT+w32mWgcAxp91q0kfdPCiS9Dgwfl5UQ==
X-Gm-Gg: ATEYQzxNy2KFjKqI/w1gIHg9u+1T+1vWR5gHwekZUlAwskxBAA8yWh3OR6D+m8Zbcqc
	1AC49xtDXnYVzQGaNi7gQzDsONlRqqCpSNLcu/bYpKjfVXuk6fBL+4zJZqucleVAGT8h4n9q8GO
	qbKS4oD1Blae3Ibt+p5qiet2PnE6Ui7I2YzGYSJ1aoSRRJlsKJ7fJjpS51VEL+O28TJ+FU8SJ/N
	y08uAYc8XE/hKuC7fjXqdpcAefI554EMon4SFp30WKNcMGAPyETlfUNq3EC8YNCAL8NuzPUMouZ
	Pb5WvIJgoxb6gUCM2WVc5t2SaPtmZS2VYeyflvxjL9oKrL+tnwGMdizbjalwcfQhrFz127EHU4d
	AnLPNFjtXr7OgnbnL2FskPEoD0tBh3StUMfWW9O1/beeABFMJucaR5MEg
X-Received: by 2002:a17:90a:fc4d:b0:359:1cbd:5495 with SMTP id 98e67ed59e1d1-35965c27e66mr7272877a91.6.1772354197990;
        Sun, 01 Mar 2026 00:36:37 -0800 (PST)
X-Received: by 2002:a17:90a:fc4d:b0:359:1cbd:5495 with SMTP id 98e67ed59e1d1-35965c27e66mr7272861a91.6.1772354197416;
        Sun, 01 Mar 2026 00:36:37 -0800 (PST)
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Date: Sun, 01 Mar 2026 14:04:21 +0530
Subject: [PATCH v9 3/3] of: Respect #{iommu,msi}-cells in maps
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260301-parse_iommu_cells-v9-3-4d1bceecc5e1@oss.qualcomm.com>
References: <20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com>
In-Reply-To: <20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com>
To: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>, Rob Herring <robh@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org,
        Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>,
        linux-arm-msm@vger.kernel.org,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
X-Mailer: b4 0.12.3
X-Developer-Signature: v=1; a=ed25519-sha256; t=1772354153; l=9839;
 i=vijayanand.jitta@oss.qualcomm.com; s=20260301; h=from:subject:message-id;
 bh=rMn0oPM33QyWz+pe9qSYvRaJ0TXg29twIWDnLRGtMmg=;
 b=2gF3YAzuiCPKTO4QehGinqQzgmCnP6QEz+si20I/lunzZCq8Cuhj6wMkXGjkBYmw7DwgsA73Z
 YR8Sh/N7qN1BvB2nlbfl7LdbKSKjVZ5LyP7xBrBDdJgMrAY97DdwrpT
X-Developer-Key: i=vijayanand.jitta@oss.qualcomm.com; a=ed25519;
 pk=Lpi7Cs3wHe8KZtqvyci7FTOLzsKpEHKGCaPNZw+1zRI=
X-Proofpoint-ORIG-GUID: RyVGWCipcaSHCDEjLqxTz0mRwfTr76V5
X-Proofpoint-GUID: RyVGWCipcaSHCDEjLqxTz0mRwfTr76V5
X-Authority-Analysis: v=2.4 cv=FaA6BZ+6 c=1 sm=1 tr=0 ts=69a3fa97 cx=c_pps
 a=vVfyC5vLCtgYJKYeQD43oA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22
 a=7CQSdrXTAAAA:8 a=EUspDBNiAAAA:8 a=wJGdY9mNwEi-N7fqGJcA:9 a=QEXdDO2ut3YA:10
 a=rl5im9kqc5Lf4LNbBjHf:22 a=a-qgeE7W1pNrGK8U0ZQC:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzAxMDA3NiBTYWx0ZWRfX5fnSW2XiW5+U
 Kql5IxXfu1pZAXCHeVyR/bz7TKRSeYhdTuYzPMeO6ugI8JItG0ANdKEx+KhYwuaIwNr20VPlAe3
 2Q9R7VhqmhNJyfCP4pF+YwGagz6yaUP5R3miW1b+3spH3mYWJOfhN2HDUBmAz6aHvnFhgQX0giM
 FGZ0j+8QFnDp37afFtu7qf0fNP/VblIMiE2BQe0dORN9hA4HQszXKWvMtp9LocTDJy0SLS4aThG
 Gt/HGf2yOWlVsWd51finXkWrlnNqJeWuOREQKd5qM3JH4MXdk8XYqqYJJhneYL2QqgkyeA0ET49
 pITnmr6fEIloM2teqxN18Jbf0jSkN9lNX0iJ4mSwOQVz997q71jLV0cp7DURr1bL7dosesEurwb
 7iBjRtUzVE9qIyXysFNeS5JBx/jQrCQtm++rq6hGw2jqZIALVPUizuKGSda21P0etUJ6nvdAOun
 5850feApPdkcDREFvrg==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-01_01,2026-02-27_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 impostorscore=0 clxscore=1011 phishscore=0 lowpriorityscore=0
 priorityscore=1501 spamscore=0 bulkscore=0 adultscore=0 malwarescore=0
 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000
 definitions=main-2603010076

From: Robin Murphy <robin.murphy@arm.com>

So far our parsing of {iommu,msi}-map properites has always blindly
assumed that the output specifiers will always have exactly 1 cell.
This typically does happen to be the case, but is not actually enforced
(and the PCI msi-map binding even explicitly states support for 0 or 1
cells) - as a result we've now ended up with dodgy DTs out in the field
which depend on this behaviour to map a 1-cell specifier for a 2-cell
provider, despite that being bogus per the bindings themselves.

Since there is some potential use in being able to map at least single
input IDs to multi-cell output specifiers (and properly support 0-cell
outputs as well), add support for properly parsing and using the target
nodes' #cells values, albeit with the unfortunate complication of still
having to work around expectations of the old behaviour too.

Since there are multi-cell output specifiers, the callers of of_map_id()
may need to get the exact cell output value for further processing.
Added support for that part --charan

Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
---
 drivers/iommu/of_iommu.c |   2 +-
 drivers/of/base.c        | 117 +++++++++++++++++++++++++++++++++++++----------
 include/linux/of.h       |  16 +++----
 3 files changed, 102 insertions(+), 33 deletions(-)

diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
index d255d0f58e8c..a18bb60f6f3d 100644
--- a/drivers/iommu/of_iommu.c
+++ b/drivers/iommu/of_iommu.c
@@ -45,7 +45,7 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
 				     struct device *dev,
 				     const u32 *id)
 {
-	struct of_phandle_args iommu_spec = { .args_count = 1 };
+	struct of_phandle_args iommu_spec = {};
 	int err;
 
 	err = of_map_iommu_id(master_np, *id, &iommu_spec);
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 6c3628255908..596bcf993dcb 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -2096,11 +2096,38 @@ int of_find_last_cache_level(unsigned int cpu)
 	return cache_level;
 }
 
+/*
+ * Some DTs have an iommu-map targeting a 2-cell IOMMU node while
+ * specifying only 1 cell. Fortunately they all consist of value '1'
+ * as the 2nd cell entry with the same target, so check for that pattern.
+ *
+ * Example:
+ *	IOMMU node:
+ *		#iommu-cells = <2>;
+ *
+ *	Device node:
+ *		iommu-map = <0x0000 &smmu 0x0000 0x1>,
+ *			    <0x0100 &smmu 0x0100 0x1>;
+ */
+static bool of_check_bad_map(const __be32 *map, int len)
+{
+	__be32 phandle = map[1];
+
+	if (len % 4)
+		return false;
+	for (int i = 0; i < len; i += 4) {
+		if (map[i + 1] != phandle || map[i + 3] != cpu_to_be32(1))
+			return false;
+	}
+	return true;
+}
+
 /**
  * of_map_id - Translate an ID through a downstream mapping.
  * @np: root complex device node.
  * @id: device ID to map.
  * @map_name: property name of the map to use.
+ * @cells_name: property name of target specifier cells.
  * @map_mask_name: optional property name of the mask to use.
  * @arg: of_phandle_args structure,
  *	which includes:
@@ -2118,18 +2145,19 @@ int of_find_last_cache_level(unsigned int cpu)
  *
  * Return: 0 on success or a standard error code on failure.
  */
-int of_map_id(const struct device_node *np, u32 id,
-	       const char *map_name, const char *map_mask_name,
-	       struct of_phandle_args *arg)
+int of_map_id(const struct device_node *np, u32 id, const char *map_name,
+	      const char *cells_name, const char *map_mask_name,
+	      struct of_phandle_args *arg)
 {
 	u32 map_mask, masked_id;
-	int map_len;
+	int map_bytes, map_len, offset = 0;
+	bool bad_map = false;
 	const __be32 *map = NULL;
 
 	if (!np || !map_name || !arg)
 		return -EINVAL;
 
-	map = of_get_property(np, map_name, &map_len);
+	map = of_get_property(np, map_name, &map_bytes);
 	if (!map) {
 		if (arg->np)
 			return -ENODEV;
@@ -2138,11 +2166,9 @@ int of_map_id(const struct device_node *np, u32 id,
 		return 0;
 	}
 
-	if (!map_len || map_len % (4 * sizeof(*map))) {
-		pr_err("%pOF: Error: Bad %s length: %d\n", np,
-			map_name, map_len);
-		return -EINVAL;
-	}
+	if (map_bytes % sizeof(*map))
+		goto err_map_len;
+	map_len = map_bytes / sizeof(*map);
 
 	/* The default is to select all bits. */
 	map_mask = 0xffffffff;
@@ -2155,27 +2181,63 @@ int of_map_id(const struct device_node *np, u32 id,
 		of_property_read_u32(np, map_mask_name, &map_mask);
 
 	masked_id = map_mask & id;
-	for ( ; map_len > 0; map_len -= 4 * sizeof(*map), map += 4) {
+
+	while (offset < map_len) {
 		struct device_node *phandle_node;
-		u32 id_base = be32_to_cpup(map + 0);
-		u32 phandle = be32_to_cpup(map + 1);
-		u32 out_base = be32_to_cpup(map + 2);
-		u32 id_len = be32_to_cpup(map + 3);
+		u32 id_base, phandle, id_len, id_off, cells = 0;
+		const __be32 *out_base;
+
+		if (map_len - offset < 2)
+			goto err_map_len;
+
+		id_base = be32_to_cpup(map + offset);
 
 		if (id_base & ~map_mask) {
-			pr_err("%pOF: Invalid %s translation - %s-mask (0x%x) ignores id-base (0x%x)\n",
-				np, map_name, map_name,
-				map_mask, id_base);
+			pr_err("%pOF: Invalid %s translation - %s (0x%x) ignores id-base (0x%x)\n",
+			       np, map_name, map_mask_name, map_mask, id_base);
 			return -EFAULT;
 		}
 
-		if (masked_id < id_base || masked_id >= id_base + id_len)
-			continue;
-
+		phandle = be32_to_cpup(map + offset + 1);
 		phandle_node = of_find_node_by_phandle(phandle);
 		if (!phandle_node)
 			return -ENODEV;
 
+		if (!bad_map && of_property_read_u32(phandle_node, cells_name, &cells)) {
+			pr_err("%pOF: missing %s property\n", phandle_node, cells_name);
+			return -EINVAL;
+		}
+
+		if (map_len - offset < 3 + cells)
+			goto err_map_len;
+
+		if (offset == 0 && cells == 2) {
+			bad_map = of_check_bad_map(map, map_len);
+			if (bad_map) {
+				pr_warn_once("%pOF: %s mismatches target %s, assuming extra cell of 0\n",
+					     np, map_name, cells_name);
+				cells = 1;
+			}
+		}
+
+		out_base = map + offset + 2;
+		offset += 3 + cells;
+
+		id_len = be32_to_cpup(map + offset - 1);
+		if (id_len > 1 && cells > 1) {
+			/*
+			 * With 1 output cell we reasonably assume its value
+			 * has a linear relationship to the input; with more,
+			 * we'd need help from the provider to know what to do.
+			 */
+			pr_err("%pOF: Unsupported %s - cannot handle %d-ID range with %d-cell output specifier\n",
+			       np, map_name, id_len, cells);
+			return -EINVAL;
+		}
+		id_off = masked_id - id_base;
+		if (masked_id < id_base || id_off >= id_len)
+			continue;
+
 		if (arg->np)
 			of_node_put(phandle_node);
 		else
@@ -2184,11 +2246,14 @@ int of_map_id(const struct device_node *np, u32 id,
 		if (arg->np != phandle_node)
 			continue;
 
-		arg->args[0] = masked_id - id_base + out_base;
+		for (int i = 0; i < cells; i++)
+			arg->args[i] = (id_off + be32_to_cpu(out_base[i]));
+
+		arg->args_count = cells;
 
 		pr_debug("%pOF: %s, using mask %08x, id-base: %08x, out-base: %08x, length: %08x, id: %08x -> %08x\n",
-			np, map_name, map_mask, id_base, out_base,
-			id_len, id, masked_id - id_base + out_base);
+			 np, map_name, map_mask, id_base, be32_to_cpup(out_base),
+			 id_len, id, id_off + be32_to_cpup(out_base));
 		return 0;
 	}
 
@@ -2198,5 +2263,9 @@ int of_map_id(const struct device_node *np, u32 id,
 	/* Bypasses translation */
 	arg->args[0] = id;
 	return 0;
+
+err_map_len:
+	pr_err("%pOF: Error: Bad %s length: %d\n", np, map_name, map_bytes);
+	return -EINVAL;
 }
 EXPORT_SYMBOL_GPL(of_map_id);
diff --git a/include/linux/of.h b/include/linux/of.h
index 9d72d76f909d..5b5b5dc2d3f3 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -461,9 +461,9 @@ const char *of_prop_next_string(const struct property *prop, const char *cur);
 
 bool of_console_check(const struct device_node *dn, char *name, int index);
 
-int of_map_id(const struct device_node *np, u32 id,
-	       const char *map_name, const char *map_mask_name,
-	       struct of_phandle_args *arg);
+int of_map_id(const struct device_node *np, u32 id, const char *map_name,
+	      const char *cells_name, const char *map_mask_name,
+	      struct of_phandle_args *arg);
 
 phys_addr_t of_dma_get_max_cpu_address(struct device_node *np);
 
@@ -927,9 +927,9 @@ static inline void of_property_clear_flag(struct property *p, unsigned long flag
 {
 }
 
-static inline int of_map_id(const struct device_node *np, u32 id,
-			     const char *map_name, const char *map_mask_name,
-			     struct of_phandle_args *arg)
+static inline int of_map_id(const struct device_node *np, u32 id, const char *map_name,
+			    const char *cells_name, const char *map_mask_name,
+			    struct of_phandle_args *arg)
 {
 	return -EINVAL;
 }
@@ -1460,7 +1460,7 @@ static inline int of_property_read_s32(const struct device_node *np,
 static inline int of_map_iommu_id(const struct device_node *np, u32 id,
 				  struct of_phandle_args *arg)
 {
-	return of_map_id(np, id, "iommu-map", "iommu-map-mask", arg);
+	return of_map_id(np, id, "iommu-map", "#iommu-cells", "iommu-map-mask", arg);
 }
 
 static inline int of_map_msi_id(const struct device_node *np, u32 id,
@@ -1469,7 +1469,7 @@ static inline int of_map_msi_id(const struct device_node *np, u32 id,
 	struct of_phandle_args msi_spec = { .np = *target, .args_count = 1 };
 	int ret;
 
-	ret = of_map_id(np, id, "msi-map", "msi-map-mask", &msi_spec);
+	ret = of_map_id(np, id, "msi-map", "#msi-cells", "msi-map-mask", &msi_spec);
 	if (!ret) {
 		*target = msi_spec.np;
 		*id_out = msi_spec.args[0];

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Mar 01 08:37:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 01 Mar 2026 08:37:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243705.1543312 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwcJA-0000zB-4T; Sun, 01 Mar 2026 08:37:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243705.1543312; Sun, 01 Mar 2026 08: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 1vwcJA-0000yn-0Y; Sun, 01 Mar 2026 08:37:48 +0000
Received: by outflank-mailman (input) for mailman id 1243705;
 Sun, 01 Mar 2026 08:36: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=QSs9=BB=oss.qualcomm.com=vijayanand.jitta@srs-se1.protection.inumbo.net>)
 id 1vwcHl-0000nw-1f
 for xen-devel@lists.xenproject.org; Sun, 01 Mar 2026 08:36:21 +0000
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com
 [205.220.168.131]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b6e7c6a2-1549-11f1-9ccf-f158ae23cfc8;
 Sun, 01 Mar 2026 09:36:18 +0100 (CET)
Received: from pps.filterd (m0279867.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 61SH01KC3052043
 for <xen-devel@lists.xenproject.org>; Sun, 1 Mar 2026 08:36:16 GMT
Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com
 [209.85.216.70])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cksgrtf77-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Sun, 01 Mar 2026 08:36:16 +0000 (GMT)
Received: by mail-pj1-f70.google.com with SMTP id
 98e67ed59e1d1-3597baf976dso4735197a91.3
 for <xen-devel@lists.xenproject.org>; Sun, 01 Mar 2026 00:36:15 -0800 (PST)
Received: from hu-vjitta-hyd.qualcomm.com ([202.46.23.25])
 by smtp.gmail.com with ESMTPSA id
 41be03b00d2f7-c70fa82dd09sm9177300a12.28.2026.03.01.00.36.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 01 Mar 2026 00:36: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: b6e7c6a2-1549-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	DPGZ2f1FRPz5cKw/lYBC8NifEzRRofLwMqRkmKqE50Y=; b=C7NeJH8K06j+LTBZ
	7LR40EB36WJwpFFTzjB9ZDJlkwJWGu6HWZfLkqId4jdSEhuWDuFKcdICoy0ocOiJ
	A5O+R76J5rU7eK49upDs8N+bAXhwYPO+K+Zu4fDztMUqzEMVc/ItxhxLDrLnEs4I
	1Frzbmk+s/Mfva7mpn0o8E4o3de83z4D/Steqx6aMT3tMA1brrCd/6pp+pIgtkjr
	6GR90Jt4VwP0f9bkobEW3+SR2iy6xaiZI9vm52ZpeIfFgZnyZVQTB7wh1u2SMpiE
	/68FnB1FN+LACGaR+iqaWkRegihbEOYZpU/0iSXl1UIC+SQ2pdu1qNRhE66ZlaSu
	2S3QHw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1772354175; x=1772958975; darn=lists.xenproject.org;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:from:to:cc:subject:date:message-id
         :reply-to;
        bh=DPGZ2f1FRPz5cKw/lYBC8NifEzRRofLwMqRkmKqE50Y=;
        b=F8NfpKtZKYse0hYZV0b+cWP/HiCo6KtCdioDc2dGCXNDXickYJuOpFLGmDjR6gBwce
         adVZj2hfk2bL/XAar3HctFLNE3obQ9SrO63JYvteKz3qHEqAK6Rl1I45L3rfNcEwyKuE
         eFvlJi0lgOnjLQTxwjOwBYlExhWYc2n3EBTl0VXfGUKfIJsCRcjdCby9y0wgvspD7RXP
         BwiHYWA/M0jU5oKUqT8okxPZIkQpl4ku7ujqUpw1JGsVFK3CTLQQLouqAl+1JoJJ0vEH
         8gPaLiwgqClfaJcpJklKySvxHdleFvdH7KxUO1GMKg4PLEuz20nCUamqq4dV0Zn9Lbjg
         d24Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772354175; x=1772958975;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=DPGZ2f1FRPz5cKw/lYBC8NifEzRRofLwMqRkmKqE50Y=;
        b=Ao04ZDCLfVhMqj8o2T4is0e9vxmtDxcftJC0flJKzTC+FyXwdJcqydodfcRgTbN/pp
         lxX7fMBFw2l5Wd3IXt0hCUAiSQuWRFnBkuWwc02o1FsJ28SRGTfPYrEasEfiuiLzsawp
         VuqDSS8Oa+Pr40kisCvoQgcAr1XS/hD+KZPm82TnCTqv/p7WAsUwRIm2jWW6pzeA/gAZ
         MGpGfVmxRGPRn8fBEuBJYlF/S0mubxaHImy9JzlUfcBxxgqthyLyKbw1TvlskwgW7nqN
         caXNKfdTPG4MIACf4QRnmAcp4VBToh+NEhPttMg7qtPprYXI5HFEPACKF2cWUO7jG/e3
         pnQA==
X-Forwarded-Encrypted: i=1; AJvYcCXE/i5fTNUA9hDVGAh1vIKea+p97EZeifmWrmVX4qvo5O6hYXTfPn9eYvd8rRYEJmnQwW2/25r4GZc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzoHfbpZKzJKbu6e3vvVpBRNrr3ujbVZ/krFIG9KP3Wso4NrNPK
	4gwFFWOoVi7vAeIoNNXpvoiDWvyYxWrRlLM6aaYYZDjqwJqapg+kgU4jU0NyVTicoiQg2mm7KbX
	DOytuGc81cxunPx1lxUCM8Wcxv81WuoL5Kydh/LkfuBv/82V9lrjxuCjEgXIFrVILnay27g==
X-Gm-Gg: ATEYQzwy3ym8RvdeVwqzWtl3M8ldYaBTHxthiz6b/WF5yTfAN7XXHRCCBhEomfU0OYf
	pyyj8If2BOGGo7wSoGpMdWqHiOr2xs2X4H9ztUm+yztVheDDdMJXTfUdWV2wRKLSnfkP6UTVlsc
	NijzgmAo+VMLm+6X91mlEsqje9A9/a+yTNOrLKZNn6qRcoTjuST1LoW9hjqSqD7s3hl7UE8StE4
	cXTMxPgj+yZeBhPfqvQiuruE7v7HOAQxVEjymMSMzJu1MqD+sMAqfLSzi3uVUKDIto6sBL6iGXY
	rKmc/fyGawCXYcGaabUIHKdRDtorvwV9x07Kz8RkhCjRRgGq0/U8dujQFUsL4wPQ83n2BWAhv1A
	y9K2U7b7WxkXXorlcY/ex5kxxeSzvVK+XSS54Ay1vAewr3lZr4FMcRh/c
X-Received: by 2002:a17:90b:3c45:b0:356:3cfd:3ed5 with SMTP id 98e67ed59e1d1-35965ccf206mr7771060a91.18.1772354175275;
        Sun, 01 Mar 2026 00:36:15 -0800 (PST)
X-Received: by 2002:a17:90b:3c45:b0:356:3cfd:3ed5 with SMTP id 98e67ed59e1d1-35965ccf206mr7771004a91.18.1772354174764;
        Sun, 01 Mar 2026 00:36:14 -0800 (PST)
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Date: Sun, 01 Mar 2026 14:04:19 +0530
Subject: [PATCH v9 1/3] of: Add convenience wrappers for of_map_id()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260301-parse_iommu_cells-v9-1-4d1bceecc5e1@oss.qualcomm.com>
References: <20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com>
In-Reply-To: <20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com>
To: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>, Rob Herring <robh@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org,
        Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>,
        linux-arm-msm@vger.kernel.org
X-Mailer: b4 0.12.3
X-Developer-Signature: v=1; a=ed25519-sha256; t=1772354153; l=6405;
 i=vijayanand.jitta@oss.qualcomm.com; s=20260301; h=from:subject:message-id;
 bh=34KJIw1PW/qCZqrDovFnZs5F7MkA8lH3ZSq6PGA9s7o=;
 b=iPrFA0Mla+rfvrsVCBVpRZ9RWdwdgwTS89Lg21ZBrY5kmaFRHUg823viwJAJk6c1NGz4OkqG0
 bmC5iBdpD+FCSrT5S1eAy2UKywWw/UDcFmwwy35h1w6fxW83D7WiEy1
X-Developer-Key: i=vijayanand.jitta@oss.qualcomm.com; a=ed25519;
 pk=Lpi7Cs3wHe8KZtqvyci7FTOLzsKpEHKGCaPNZw+1zRI=
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzAxMDA3NiBTYWx0ZWRfXwJirRxuoCnK8
 bC/XtLNEZ7a9y8yxuYfdeEQ8ZQjOvHAOUbPL8v4bQWkT8IR5PO/bJt6dvOIb/FyOLj5cBU7Al1p
 tC9r3OXdPG4Ef6ZexvuAmyjiEtZsbkftz87VOLcv37emAKEQDKs5AbhDeT8i3J5PReQfirbft1A
 XLxAYOj7vJ6wLJiMq06GF/5RVVw/X2RVUorICX+eckzTQnGUctIOVs3EhK/xO3LCk4lv/0CVv1Y
 XWoThfRm1bmmjZ0l/grsVbXPL+doGFxYpFg/qSDGHQfS0b1xTm2BLplgVlM+jJ0VMOX2Dm1zDtq
 vNEbJTTsbd7Kvv5oa0UyMp675QLySb1ztug85XDsIwLQoWIbK1gZL3eRdWUS9oOYibHvWe7yzyj
 bbMrkdrIYp6LYVnS0fccnyHAHd1q5CYbAa295pRQhoCBzKbfGCP/9qGmtk1E2jx4q9eN5vcQ8b3
 NOy8f0I4NQ38sj3xYfg==
X-Proofpoint-GUID: DKqK8fsKXMjivrrvPM0JTL54-8fLFN6d
X-Proofpoint-ORIG-GUID: DKqK8fsKXMjivrrvPM0JTL54-8fLFN6d
X-Authority-Analysis: v=2.4 cv=Zqzg6t7G c=1 sm=1 tr=0 ts=69a3fa80 cx=c_pps
 a=0uOsjrqzRL749jD1oC5vDA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22
 a=7CQSdrXTAAAA:8 a=VwQbUJbxAAAA:8 a=8AirrxEcAAAA:8 a=EUspDBNiAAAA:8
 a=wrOk0Nx1w3hKWqktZycA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22
 a=a-qgeE7W1pNrGK8U0ZQC:22 a=ST-jHhOKWsTCqRlWije3:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-01_01,2026-02-27_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 clxscore=1011 lowpriorityscore=0 spamscore=0 priorityscore=1501 phishscore=0
 suspectscore=0 impostorscore=0 malwarescore=0 bulkscore=0 adultscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603010076

From: Robin Murphy <robin.murphy@arm.com>

Since we now have quite a few users parsing "iommu-map" and "msi-map"
properties, give them some wrappers to conveniently encapsulate the
appropriate sets of property names. This will also make it easier to
then change of_map_id() to correctly account for specifier cells.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
---
 drivers/cdx/cdx_msi.c                    |  3 +--
 drivers/iommu/of_iommu.c                 |  4 +---
 drivers/irqchip/irq-gic-its-msi-parent.c |  2 +-
 drivers/of/irq.c                         |  3 +--
 drivers/pci/controller/dwc/pci-imx6.c    |  6 ++----
 drivers/pci/controller/pcie-apple.c      |  3 +--
 drivers/xen/grant-dma-ops.c              |  3 +--
 include/linux/of.h                       | 14 ++++++++++++++
 8 files changed, 22 insertions(+), 16 deletions(-)

diff --git a/drivers/cdx/cdx_msi.c b/drivers/cdx/cdx_msi.c
index 91b95422b263..63b3544ec997 100644
--- a/drivers/cdx/cdx_msi.c
+++ b/drivers/cdx/cdx_msi.c
@@ -128,8 +128,7 @@ static int cdx_msi_prepare(struct irq_domain *msi_domain,
 	int ret;
 
 	/* Retrieve device ID from requestor ID using parent device */
-	ret = of_map_id(parent->of_node, cdx_dev->msi_dev_id, "msi-map", "msi-map-mask",
-			NULL, &dev_id);
+	ret = of_map_msi_id(parent->of_node, cdx_dev->msi_dev_id, NULL, &dev_id);
 	if (ret) {
 		dev_err(dev, "of_map_id failed for MSI: %d\n", ret);
 		return ret;
diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
index 6b989a62def2..a511ecf21fcd 100644
--- a/drivers/iommu/of_iommu.c
+++ b/drivers/iommu/of_iommu.c
@@ -48,9 +48,7 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
 	struct of_phandle_args iommu_spec = { .args_count = 1 };
 	int err;
 
-	err = of_map_id(master_np, *id, "iommu-map",
-			 "iommu-map-mask", &iommu_spec.np,
-			 iommu_spec.args);
+	err = of_map_iommu_id(master_np, *id, &iommu_spec.np, iommu_spec.args);
 	if (err)
 		return err;
 
diff --git a/drivers/irqchip/irq-gic-its-msi-parent.c b/drivers/irqchip/irq-gic-its-msi-parent.c
index d36b278ae66c..b63343a227a9 100644
--- a/drivers/irqchip/irq-gic-its-msi-parent.c
+++ b/drivers/irqchip/irq-gic-its-msi-parent.c
@@ -180,7 +180,7 @@ static int of_pmsi_get_msi_info(struct irq_domain *domain, struct device *dev, u
 
 	struct device_node *msi_ctrl __free(device_node) = NULL;
 
-	return of_map_id(dev->of_node, dev->id, "msi-map", "msi-map-mask", &msi_ctrl, dev_id);
+	return of_map_msi_id(dev->of_node, dev->id, &msi_ctrl, dev_id);
 }
 
 static int its_pmsi_prepare(struct irq_domain *domain, struct device *dev,
diff --git a/drivers/of/irq.c b/drivers/of/irq.c
index 6367c67732d2..e37c1b3f8736 100644
--- a/drivers/of/irq.c
+++ b/drivers/of/irq.c
@@ -817,8 +817,7 @@ u32 of_msi_xlate(struct device *dev, struct device_node **msi_np, u32 id_in)
 	 * "msi-map" or an "msi-parent" property.
 	 */
 	for (parent_dev = dev; parent_dev; parent_dev = parent_dev->parent) {
-		if (!of_map_id(parent_dev->of_node, id_in, "msi-map",
-				"msi-map-mask", msi_np, &id_out))
+		if (!of_map_msi_id(parent_dev->of_node, id_in, msi_np, &id_out))
 			break;
 		if (!of_check_msi_parent(parent_dev->of_node, msi_np))
 			break;
diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
index a5b8d0b71677..bff8289f804a 100644
--- a/drivers/pci/controller/dwc/pci-imx6.c
+++ b/drivers/pci/controller/dwc/pci-imx6.c
@@ -1144,8 +1144,7 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
 	u32 sid = 0;
 
 	target = NULL;
-	err_i = of_map_id(dev->of_node, rid, "iommu-map", "iommu-map-mask",
-			  &target, &sid_i);
+	err_i = of_map_iommu_id(dev->of_node, rid, &target, &sid_i);
 	if (target) {
 		of_node_put(target);
 	} else {
@@ -1158,8 +1157,7 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
 	}
 
 	target = NULL;
-	err_m = of_map_id(dev->of_node, rid, "msi-map", "msi-map-mask",
-			  &target, &sid_m);
+	err_m = of_map_msi_id(dev->of_node, rid, &target, &sid_m);
 
 	/*
 	 *   err_m      target
diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
index 2d92fc79f6dd..a0937b7b3c4d 100644
--- a/drivers/pci/controller/pcie-apple.c
+++ b/drivers/pci/controller/pcie-apple.c
@@ -764,8 +764,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
 	dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
 		pci_name(pdev->bus->self), port->idx);
 
-	err = of_map_id(port->pcie->dev->of_node, rid, "iommu-map",
-			"iommu-map-mask", NULL, &sid);
+	err = of_map_iommu_id(port->pcie->dev->of_node, rid, NULL, &sid);
 	if (err)
 		return err;
 
diff --git a/drivers/xen/grant-dma-ops.c b/drivers/xen/grant-dma-ops.c
index c2603e700178..1b7696b2d762 100644
--- a/drivers/xen/grant-dma-ops.c
+++ b/drivers/xen/grant-dma-ops.c
@@ -325,8 +325,7 @@ static int xen_dt_grant_init_backend_domid(struct device *dev,
 		struct pci_dev *pdev = to_pci_dev(dev);
 		u32 rid = PCI_DEVID(pdev->bus->number, pdev->devfn);
 
-		if (of_map_id(np, rid, "iommu-map", "iommu-map-mask", &iommu_spec.np,
-				iommu_spec.args)) {
+		if (of_map_iommu_id(np, rid, &iommu_spec.np, iommu_spec.args)) {
 			dev_dbg(dev, "Cannot translate ID\n");
 			return -ESRCH;
 		}
diff --git a/include/linux/of.h b/include/linux/of.h
index be6ec4916adf..824649867810 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -1457,6 +1457,20 @@ static inline int of_property_read_s32(const struct device_node *np,
 	return of_property_read_u32(np, propname, (u32*) out_value);
 }
 
+static inline int of_map_iommu_id(const struct device_node *np, u32 id,
+				  struct device_node **target, u32 *id_out)
+{
+	return of_map_id(np, id, "iommu-map", "iommu-map-mask",
+			 target, id_out);
+}
+
+static inline int of_map_msi_id(const struct device_node *np, u32 id,
+				struct device_node **target, u32 *id_out)
+{
+	return of_map_id(np, id, "msi-map", "msi-map-mask",
+			 target, id_out);
+}
+
 #define of_for_each_phandle(it, err, np, ln, cn, cc)			\
 	for (of_phandle_iterator_init((it), (np), (ln), (cn), (cc)),	\
 	     err = of_phandle_iterator_next(it);			\

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Mar 01 09:47:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 01 Mar 2026 09:47:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243764.1543351 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwdNw-0003fY-VO; Sun, 01 Mar 2026 09:46:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243764.1543351; Sun, 01 Mar 2026 09: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 1vwdNw-0003fR-SK; Sun, 01 Mar 2026 09:46:48 +0000
Received: by outflank-mailman (input) for mailman id 1243764;
 Sun, 01 Mar 2026 09: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=1Kch=BB=kernel.org=maz@srs-se1.protection.inumbo.net>)
 id 1vwdNv-0003fL-9k
 for xen-devel@lists.xenproject.org; Sun, 01 Mar 2026 09:46:47 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8b67bb5e-1553-11f1-9ccf-f158ae23cfc8;
 Sun, 01 Mar 2026 10:46: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 46D61402BE;
 Sun,  1 Mar 2026 09:46:38 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id AC8E1C116C6;
 Sun,  1 Mar 2026 09:46:37 +0000 (UTC)
Received: from sofa.misterjones.org ([185.219.108.64]
 helo=goblin-girl.misterjones.org)
 by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2)
 (envelope-from <maz@kernel.org>) id 1vwdNi-0000000Eusy-3vXA;
 Sun, 01 Mar 2026 09:46:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8b67bb5e-1553-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1772358398;
	bh=ah8m82Urr9ZVdbuAaL7dhveEEkY6qwHNCon+PPeoyBY=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=Z0KHJpNunNcjXEqJWgt/2aE9/sPgUgk19iKbhLZyj5sIoyncIPiC5DtoCtdNTI5rN
	 ae0CchWvin1ZNSonWM/xcQgjOh45AZVjjLAorbihnBcMIFCKtMS24eSaPw8HZnnVNh
	 5m4IkmnaB7evNsc6rbzVP0cRVentf+1TS247vJ3/0N8jlZzcWLmBhtl2BAJGolpc3K
	 SnBcnBqiqxfnfBMAkYqzWAVYsHCE+jWgxpQKRt5AkvNqeOi+fCiSa9vUa65yy7weLX
	 yKjk6CJMJJlg4upoVm/xuuaj7cVFmtysK8UpS29DujEG5BWbnmwsyrINgwPMuAJ4Ye
	 0ngrTpp3uzY1g==
Date: Sun, 01 Mar 2026 09:46:34 +0000
Message-ID: <86342janlx.wl-maz@kernel.org>
From: Marc Zyngier <maz@kernel.org>
To: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Cc: Nipun Gupta <nipun.gupta@amd.com>,	Nikhil Agarwal
 <nikhil.agarwal@amd.com>,	Joerg Roedel <joro@8bytes.org>,	Will Deacon
 <will@kernel.org>,	Robin Murphy <robin.murphy@arm.com>,	Lorenzo Pieralisi
 <lpieralisi@kernel.org>,	Thomas Gleixner <tglx@kernel.org>,	Rob Herring
 <robh@kernel.org>,	Saravana Kannan <saravanak@kernel.org>,	Richard Zhu
 <hongxing.zhu@nxp.com>,	Lucas Stach <l.stach@pengutronix.de>,	Krzysztof
 =?UTF-8?B?V2lsY3p5xYRza2k=?= <kwilczynski@kernel.org>,	Manivannan
 Sadhasivam <mani@kernel.org>,	Bjorn Helgaas <bhelgaas@google.com>,	Frank Li
 <Frank.Li@nxp.com>,	Sascha Hauer <s.hauer@pengutronix.de>,	Pengutronix
 Kernel Team <kernel@pengutronix.de>,	Fabio Estevam <festevam@gmail.com>,
	Juergen Gross <jgross@suse.com>,	Stefano Stabellini
 <sstabellini@kernel.org>,	Oleksandr Tyshchenko
 <oleksandr_tyshchenko@epam.com>,	Dmitry Baryshkov
 <dmitry.baryshkov@oss.qualcomm.com>,	Konrad Dybcio
 <konrad.dybcio@oss.qualcomm.com>,	Bjorn Andersson
 <bjorn.andersson@oss.qualcomm.com>,	Conor Dooley <conor+dt@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,	Prakash Gupta
 <prakash.gupta@oss.qualcomm.com>,	Vikash Garodia
 <vikash.garodia@oss.qualcomm.com>,	linux-kernel@vger.kernel.org,
	iommu@lists.linux.dev,	linux-arm-kernel@lists.infradead.org,
	devicetree@vger.kernel.org,	linux-pci@vger.kernel.org,	imx@lists.linux.dev,
	xen-devel@lists.xenproject.org,	linux-arm-msm@vger.kernel.org
Subject: Re: [PATCH v9 1/3] of: Add convenience wrappers for of_map_id()
In-Reply-To: <20260301-parse_iommu_cells-v9-1-4d1bceecc5e1@oss.qualcomm.com>
References: <20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com>
	<20260301-parse_iommu_cells-v9-1-4d1bceecc5e1@oss.qualcomm.com>
User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue)
 FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.1
 (aarch64-unknown-linux-gnu) MULE/6.0 (HANACHIRUSATO)
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: text/plain; charset=US-ASCII
X-SA-Exim-Connect-IP: 185.219.108.64
X-SA-Exim-Rcpt-To: vijayanand.jitta@oss.qualcomm.com, nipun.gupta@amd.com, nikhil.agarwal@amd.com, joro@8bytes.org, will@kernel.org, robin.murphy@arm.com, lpieralisi@kernel.org, tglx@kernel.org, robh@kernel.org, saravanak@kernel.org, hongxing.zhu@nxp.com, l.stach@pengutronix.de, kwilczynski@kernel.org, mani@kernel.org, bhelgaas@google.com, Frank.Li@nxp.com, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, jgross@suse.com, sstabellini@kernel.org, oleksandr_tyshchenko@epam.com, dmitry.baryshkov@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com, bjorn.andersson@oss.qualcomm.com, conor+dt@kernel.org, krzk+dt@kernel.org, prakash.gupta@oss.qualcomm.com, vikash.garodia@oss.qualcomm.com, linux-kernel@vger.kernel.org, iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, imx@lists.linux.dev, xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org
X-SA-Exim-Mail-From: maz@kernel.org
X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false

On Sun, 01 Mar 2026 08:34:19 +0000,
Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com> wrote:
> 
> From: Robin Murphy <robin.murphy@arm.com>
> 
> Since we now have quite a few users parsing "iommu-map" and "msi-map"
> properties, give them some wrappers to conveniently encapsulate the
> appropriate sets of property names. This will also make it easier to
> then change of_map_id() to correctly account for specifier cells.
> 
> Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
> Reviewed-by: Frank Li <Frank.Li@nxp.com>
> Signed-off-by: Robin Murphy <robin.murphy@arm.com>
> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
> ---
>  drivers/cdx/cdx_msi.c                    |  3 +--
>  drivers/iommu/of_iommu.c                 |  4 +---
>  drivers/irqchip/irq-gic-its-msi-parent.c |  2 +-
>  drivers/of/irq.c                         |  3 +--
>  drivers/pci/controller/dwc/pci-imx6.c    |  6 ++----
>  drivers/pci/controller/pcie-apple.c      |  3 +--
>  drivers/xen/grant-dma-ops.c              |  3 +--
>  include/linux/of.h                       | 14 ++++++++++++++
>  8 files changed, 22 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/cdx/cdx_msi.c b/drivers/cdx/cdx_msi.c
> index 91b95422b263..63b3544ec997 100644
> --- a/drivers/cdx/cdx_msi.c
> +++ b/drivers/cdx/cdx_msi.c
> @@ -128,8 +128,7 @@ static int cdx_msi_prepare(struct irq_domain *msi_domain,
>  	int ret;
>  
>  	/* Retrieve device ID from requestor ID using parent device */
> -	ret = of_map_id(parent->of_node, cdx_dev->msi_dev_id, "msi-map", "msi-map-mask",
> -			NULL, &dev_id);
> +	ret = of_map_msi_id(parent->of_node, cdx_dev->msi_dev_id, NULL, &dev_id);
>  	if (ret) {
>  		dev_err(dev, "of_map_id failed for MSI: %d\n", ret);
>  		return ret;
> diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
> index 6b989a62def2..a511ecf21fcd 100644
> --- a/drivers/iommu/of_iommu.c
> +++ b/drivers/iommu/of_iommu.c
> @@ -48,9 +48,7 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
>  	struct of_phandle_args iommu_spec = { .args_count = 1 };
>  	int err;
>  
> -	err = of_map_id(master_np, *id, "iommu-map",
> -			 "iommu-map-mask", &iommu_spec.np,
> -			 iommu_spec.args);
> +	err = of_map_iommu_id(master_np, *id, &iommu_spec.np, iommu_spec.args);
>  	if (err)
>  		return err;
>  
> diff --git a/drivers/irqchip/irq-gic-its-msi-parent.c b/drivers/irqchip/irq-gic-its-msi-parent.c
> index d36b278ae66c..b63343a227a9 100644
> --- a/drivers/irqchip/irq-gic-its-msi-parent.c
> +++ b/drivers/irqchip/irq-gic-its-msi-parent.c
> @@ -180,7 +180,7 @@ static int of_pmsi_get_msi_info(struct irq_domain *domain, struct device *dev, u
>  
>  	struct device_node *msi_ctrl __free(device_node) = NULL;
>  
> -	return of_map_id(dev->of_node, dev->id, "msi-map", "msi-map-mask", &msi_ctrl, dev_id);
> +	return of_map_msi_id(dev->of_node, dev->id, &msi_ctrl, dev_id);
>  }
>  
>  static int its_pmsi_prepare(struct irq_domain *domain, struct device *dev,
> diff --git a/drivers/of/irq.c b/drivers/of/irq.c
> index 6367c67732d2..e37c1b3f8736 100644
> --- a/drivers/of/irq.c
> +++ b/drivers/of/irq.c
> @@ -817,8 +817,7 @@ u32 of_msi_xlate(struct device *dev, struct device_node **msi_np, u32 id_in)
>  	 * "msi-map" or an "msi-parent" property.
>  	 */
>  	for (parent_dev = dev; parent_dev; parent_dev = parent_dev->parent) {
> -		if (!of_map_id(parent_dev->of_node, id_in, "msi-map",
> -				"msi-map-mask", msi_np, &id_out))
> +		if (!of_map_msi_id(parent_dev->of_node, id_in, msi_np, &id_out))
>  			break;
>  		if (!of_check_msi_parent(parent_dev->of_node, msi_np))
>  			break;
> diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
> index a5b8d0b71677..bff8289f804a 100644
> --- a/drivers/pci/controller/dwc/pci-imx6.c
> +++ b/drivers/pci/controller/dwc/pci-imx6.c
> @@ -1144,8 +1144,7 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
>  	u32 sid = 0;
>  
>  	target = NULL;
> -	err_i = of_map_id(dev->of_node, rid, "iommu-map", "iommu-map-mask",
> -			  &target, &sid_i);
> +	err_i = of_map_iommu_id(dev->of_node, rid, &target, &sid_i);
>  	if (target) {
>  		of_node_put(target);
>  	} else {
> @@ -1158,8 +1157,7 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
>  	}
>  
>  	target = NULL;
> -	err_m = of_map_id(dev->of_node, rid, "msi-map", "msi-map-mask",
> -			  &target, &sid_m);
> +	err_m = of_map_msi_id(dev->of_node, rid, &target, &sid_m);
>  
>  	/*
>  	 *   err_m      target
> diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
> index 2d92fc79f6dd..a0937b7b3c4d 100644
> --- a/drivers/pci/controller/pcie-apple.c
> +++ b/drivers/pci/controller/pcie-apple.c
> @@ -764,8 +764,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
>  	dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
>  		pci_name(pdev->bus->self), port->idx);
>  
> -	err = of_map_id(port->pcie->dev->of_node, rid, "iommu-map",
> -			"iommu-map-mask", NULL, &sid);
> +	err = of_map_iommu_id(port->pcie->dev->of_node, rid, NULL, &sid);
>  	if (err)
>  		return err;
>  
> diff --git a/drivers/xen/grant-dma-ops.c b/drivers/xen/grant-dma-ops.c
> index c2603e700178..1b7696b2d762 100644
> --- a/drivers/xen/grant-dma-ops.c
> +++ b/drivers/xen/grant-dma-ops.c
> @@ -325,8 +325,7 @@ static int xen_dt_grant_init_backend_domid(struct device *dev,
>  		struct pci_dev *pdev = to_pci_dev(dev);
>  		u32 rid = PCI_DEVID(pdev->bus->number, pdev->devfn);
>  
> -		if (of_map_id(np, rid, "iommu-map", "iommu-map-mask", &iommu_spec.np,
> -				iommu_spec.args)) {
> +		if (of_map_iommu_id(np, rid, &iommu_spec.np, iommu_spec.args)) {
>  			dev_dbg(dev, "Cannot translate ID\n");
>  			return -ESRCH;
>  		}
> diff --git a/include/linux/of.h b/include/linux/of.h
> index be6ec4916adf..824649867810 100644
> --- a/include/linux/of.h
> +++ b/include/linux/of.h
> @@ -1457,6 +1457,20 @@ static inline int of_property_read_s32(const struct device_node *np,
>  	return of_property_read_u32(np, propname, (u32*) out_value);
>  }
>  
> +static inline int of_map_iommu_id(const struct device_node *np, u32 id,
> +				  struct device_node **target, u32 *id_out)
> +{
> +	return of_map_id(np, id, "iommu-map", "iommu-map-mask",
> +			 target, id_out);
> +}
> +
> +static inline int of_map_msi_id(const struct device_node *np, u32 id,
> +				struct device_node **target, u32 *id_out)
> +{
> +	return of_map_id(np, id, "msi-map", "msi-map-mask",
> +			 target, id_out);
> +}
> +

Any particular reason why this is made inline instead of out of line
in of/base.c? Also, some documentation would be helpful for the
aspiring hackers dipping into this.

Other than that,

Acked-by: Marc Zyngier <maz@kernel.org>

	M.

-- 
Without deviation from the norm, progress is not possible.


From xen-devel-bounces@lists.xenproject.org Sun Mar 01 10:02:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 01 Mar 2026 10:02:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243774.1543361 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwddG-0006Zp-9h; Sun, 01 Mar 2026 10:02:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243774.1543361; Sun, 01 Mar 2026 10: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 1vwddG-0006Zi-5U; Sun, 01 Mar 2026 10:02:38 +0000
Received: by outflank-mailman (input) for mailman id 1243774;
 Sun, 01 Mar 2026 10:02: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=kDVR=BB=oss.qualcomm.com=dmitry.baryshkov@srs-se1.protection.inumbo.net>)
 id 1vwddF-0006ZZ-5p
 for xen-devel@lists.xenproject.org; Sun, 01 Mar 2026 10:02:37 +0000
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com
 [205.220.168.131]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c23cc130-1555-11f1-9ccf-f158ae23cfc8;
 Sun, 01 Mar 2026 11:02:31 +0100 (CET)
Received: from pps.filterd (m0279863.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 6216kFTu530173
 for <xen-devel@lists.xenproject.org>; Sun, 1 Mar 2026 10:02:29 GMT
Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com
 [209.85.222.200])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cksgq2j29-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Sun, 01 Mar 2026 10:02:29 +0000 (GMT)
Received: by mail-qk1-f200.google.com with SMTP id
 af79cd13be357-8cb37db8b79so2689801985a.3
 for <xen-devel@lists.xenproject.org>; Sun, 01 Mar 2026 02:02:29 -0800 (PST)
Received: from umbar.lan
 (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi.
 [2001:14ba:a073:af00:264b:feff:fe8b:be8a])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-389f302285fsm22929771fa.44.2026.03.01.02.02.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 01 Mar 2026 02:02: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: c23cc130-1555-11f1-9ccf-f158ae23cfc8
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=0xpqoMV9nCv7588O/2lb3+Dy
	gEwHNzZq2QKo2gKrDEI=; b=MFDwcsRMUoLALjslv9VY/VdAydAxc3/eD8jPp+b0
	3dbJ7aTibd/9b6GV9IF2gWn6gSpe/I3btoHNAVjlHAbEwxC6eHSVdnwqOitswsKK
	BFmc5ona0teu2h6YmGm5UzCmJDzSNJQeil3gsT4tu2E/DuMyeeU2M4A9oTkvAzIU
	6Nj7aXpW3vgAMvolk/oLAysN+VfAUn/SXHBScRSfZ3wrgr7md5skbPHMUU+5C7cg
	PDWi6o6khIMR296Rtf2LMqviKvYVMgehPnRNL1VGGCDd7pD1khwDOQnaVh1y70D6
	5NTfRB58X2oh3kZa0pAyMmBzeNyGrUi6kb5A/jodMBBWgw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1772359348; x=1772964148; 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=0xpqoMV9nCv7588O/2lb3+DygEwHNzZq2QKo2gKrDEI=;
        b=OOMuRFdYKywRNM5hVzYRAOhkRg2Ana2174wer/K75BaWKaztBxjyDQuDm85wqxrVyQ
         WQx5wA5Z1KKIDSqK/h+5crLr4NtIKUEErpcuSKlGOBYrOwRKkjMV3Bj/JDUGABvPpLVp
         zF7vcdLGVcFYuXo9R2cGJ3A6+lUG9PFecs+4bknvsXtA2VbfGZzRQbnAthznEPnmtDnQ
         saiZz36U/YPNPh1GkCLj7FUS+s8qzhuKmzV3WdLf04jOiYzGZxBWXB/3nSeBthQGZR/o
         kO8BkTAUaFW6gljuZuAUF64pwO5/hr6zb6Ef1qFFplEL/TQwl5wDtnF0tpLnrIP2UfFU
         XOIA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772359348; x=1772964148;
        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=0xpqoMV9nCv7588O/2lb3+DygEwHNzZq2QKo2gKrDEI=;
        b=GZrHrvrxKA+UtjRIK96u5n1sT0Oj37qQdDj+K1foneb0Mq6LNrZuptH/soqLk6ooOp
         gZv0s7DftCLi+mOgjj94XiPWhrzEZOEYlb5F63fmZy25RCAxg1NJG1UTsprLZLIms0xZ
         gXeXpgK5stICYkSXqVdrICvRwwCnu9hzSZKnIpU2QZXNo05vzXRlLNLpgWIZEC/IdyqD
         sQKNaDZeQjVnTyXOcUyQqETiNLuIlQYBnEWeor80e3/jebtxrMqKIFEfSfXyXRI8dwTB
         AAjvFOuUvfLL1U0KeA0o/k2CICCIKmrKXJ67KaSl6PySp3VN7B9n/Jjm5d4SM1mWPdsu
         sYmA==
X-Forwarded-Encrypted: i=1; AJvYcCVBRX3v574EoCMgxR6Z6XdfzZybrTnGdBurMt/MYtLL1j3TTECOpjccxT6cNtWcdCH7i6jJm66jZv8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxCB5iDc6TPJQbX1TOLdMpy+1s/Fv5ZMwcVo+9bWa1podVdavXV
	Cm+C8DaTuXZuPijQC4JfO/5T85qh3B8g47JY+GvWPxD2FG9Hk91LYXNzPZnBf9ViLdxtiCPZ6RG
	fkdcCxy7ShjWFGFjzNNkGdnXKGy/28d8dmJS4iahD+3WbtkwH6pMDAiQoHo6mya0B0JqAlg==
X-Gm-Gg: ATEYQzznfABLmkTTiWRckAqw4xIPOAtx60+OKZhlIoyrYEYqy1NNJWfQeyfmE2LNN64
	yk8h/F1YDku8pC9Eh5IBq+vh6AqL5Z3ilzzXsbU36iQXgH573NzcdBZ2dptBv/qnMhmymvatzSI
	e+KVoJhkP9TDPbIH7pqwZW8ubxhLZsixdsYcNBJ8Xwqk0e71uES9WT+hnNWVEAXGgqIOclqcEiQ
	eZ3gKpmKzIAIF2tk7adAyKhr6SqztVja839m1VcU5HXBw9FBk9wuMWO1ZTjg88yQ1Yw4zuZT76n
	QzHjOJAX6HkaCqG2BNZZP4idezBXT+2G11c53g798rGM9fpCgDaVjzwEgUScQPB5HmW26kk+/PT
	/0Vjvv7Sm4O6z83FJ0GluJWWzwI3jpO+FCWkNO8q0FgT8JwKp9Z25XpN7TcELIgpvfFgGFxclY0
	fyehleNCJ7fNJXeSCHHTh3lwmFJwfdGGkfT8E=
X-Received: by 2002:a05:620a:2904:b0:8b2:e17a:37 with SMTP id af79cd13be357-8cbc8df0942mr1244110785a.43.1772359348315;
        Sun, 01 Mar 2026 02:02:28 -0800 (PST)
X-Received: by 2002:a05:620a:2904:b0:8b2:e17a:37 with SMTP id af79cd13be357-8cbc8df0942mr1244105085a.43.1772359347812;
        Sun, 01 Mar 2026 02:02:27 -0800 (PST)
Date: Sun, 1 Mar 2026 12:02:23 +0200
From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Cc: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>, Rob Herring <robh@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Subject: Re: [PATCH v9 2/3] of: factor arguments passed to of_map_id() into a
 struct
Message-ID: <grcqbs42seqxmes7lm527kwhqf6osherykg6pc3w5voubd72rn@hncfl3oforza>
References: <20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com>
 <20260301-parse_iommu_cells-v9-2-4d1bceecc5e1@oss.qualcomm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260301-parse_iommu_cells-v9-2-4d1bceecc5e1@oss.qualcomm.com>
X-Proofpoint-GUID: 6vKIxRpvDIiK-n-eqLiIHq-LFRBGMIST
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzAxMDA4OSBTYWx0ZWRfXyyBsmJawSHj1
 sYSf4u+EOjOK9onJiixHjYgXU9WWo/INWtnmtbSQl5DuGr2014dixxsb5O8c036OdPI3u6XNv4V
 +W41n+eZ2ojejtqzUUghDT6z0o+TAesU6erciSOljaFXflDnyitsX4CJijSYe3NA/e+cv0uN09D
 NZqqoR1BZA0Mz58GtRIxIDAQB12v2E4mrCnMnyOv5vRdSUSZ6hHggE+g98HELA85MBB7R3bcKYA
 0Y74kwlML0URQgIwvYfDgZ/pUzutYXrJaMc2/0lWqmgW+b8de7HFgqqLeiqc9o6kOnC/suRW7rZ
 vPBqaaE1BVM/jHpjEHGF0/og8oVHyedc3Wvzqom8Dfc9Ois5foGPLPFMCI/Y/X1l5YBbtfyRPdX
 Oz021a8X/BRLYsdZLAtEDXA2QuUrZAr3L5l8RWwPM96GpWHFJ3vq50YesCzSFDUX/Rglgl+kcQz
 fhbcPfmVFbogplVdL8A==
X-Authority-Analysis: v=2.4 cv=bdRmkePB c=1 sm=1 tr=0 ts=69a40eb5 cx=c_pps
 a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10
 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8
 a=VwQbUJbxAAAA:8 a=ZF1vm7_Oee5k7ESqZ6kA:9 a=CjuIK1q_8ugA:10
 a=PEH46H7Ffwr30OY-TuGO:22
X-Proofpoint-ORIG-GUID: 6vKIxRpvDIiK-n-eqLiIHq-LFRBGMIST
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-01_01,2026-02-27_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 lowpriorityscore=0 bulkscore=0 priorityscore=1501 clxscore=1011
 malwarescore=0 impostorscore=0 suspectscore=0 adultscore=0 spamscore=0
 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000
 definitions=main-2603010089

On Sun, Mar 01, 2026 at 02:04:20PM +0530, Vijayanand Jitta wrote:
> From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> 
> Change of_map_id() to take a pointer to struct of_phandle_args
> instead of passing target device node and translated IDs separately.
> Update all callers accordingly.
> 
> Subsequent patch will make use of the args_count field in
> struct of_phandle_args.
> 
> Suggested-by: Rob Herring (Arm) <robh@kernel.org>
> Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
> ---
>  drivers/iommu/of_iommu.c              |  2 +-
>  drivers/of/base.c                     | 37 +++++++++++++++++------------------
>  drivers/pci/controller/dwc/pci-imx6.c |  8 +++++++-
>  drivers/pci/controller/pcie-apple.c   |  4 +++-
>  drivers/xen/grant-dma-ops.c           |  2 +-
>  include/linux/of.h                    | 21 +++++++++++++-------
>  6 files changed, 44 insertions(+), 30 deletions(-)
> 

> @@ -2193,11 +2193,10 @@ int of_map_id(const struct device_node *np, u32 id,
>  	}
>  
>  	pr_info("%pOF: no %s translation for id 0x%x on %pOF\n", np, map_name,
> -		id, target && *target ? *target : NULL);
> +		id, arg->np ? arg->np : NULL);

Is it just 'args->np' then? If it's NULL, it's NULL anyway.

>  
>  	/* Bypasses translation */
> -	if (id_out)
> -		*id_out = id;
> +	arg->args[0] = id;
>  	return 0;
>  }
>  EXPORT_SYMBOL_GPL(of_map_id);
> diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
> index bff8289f804a..74fc603b3f84 100644
> --- a/drivers/pci/controller/dwc/pci-imx6.c
> +++ b/drivers/pci/controller/dwc/pci-imx6.c
> @@ -1139,12 +1139,18 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
>  {
>  	struct device *dev = imx_pcie->pci->dev;
>  	struct device_node *target;
> +	struct of_phandle_args iommu_spec = { .args_count = 1 };
>  	u32 sid_i, sid_m;
>  	int err_i, err_m;
>  	u32 sid = 0;
>  
>  	target = NULL;
> -	err_i = of_map_iommu_id(dev->of_node, rid, &target, &sid_i);
> +	err_i = of_map_iommu_id(dev->of_node, rid, &iommu_spec);
> +	if (!err_i) {
> +		target = iommu_spec.np;
> +		sid_i = iommu_spec.args[0];
> +	}
> +
>  	if (target) {
>  		of_node_put(target);
>  	} else {
> diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
> index a0937b7b3c4d..e1d4b37d200d 100644
> --- a/drivers/pci/controller/pcie-apple.c
> +++ b/drivers/pci/controller/pcie-apple.c
> @@ -755,6 +755,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
>  {
>  	u32 sid, rid = pci_dev_id(pdev);
>  	struct apple_pcie_port *port;
> +	struct of_phandle_args iommu_spec = { .args_count = 1 };
>  	int idx, err;
>  
>  	port = apple_pcie_get_port(pdev);
> @@ -764,10 +765,11 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
>  	dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
>  		pci_name(pdev->bus->self), port->idx);
>  
> -	err = of_map_iommu_id(port->pcie->dev->of_node, rid, NULL, &sid);
> +	err = of_map_iommu_id(port->pcie->dev->of_node, rid, &iommu_spec);
>  	if (err)
>  		return err;

of_node_put(iommu_spec.np);

>  
> +	sid = iommu_spec.args[0];
>  	mutex_lock(&port->pcie->lock);
>  
>  	idx = bitmap_find_free_region(port->sid_map, port->sid_map_sz, 0);
> diff --git a/drivers/xen/grant-dma-ops.c b/drivers/xen/grant-dma-ops.c
> index 1b7696b2d762..5f1d6540049a 100644
> --- a/drivers/xen/grant-dma-ops.c
> +++ b/drivers/xen/grant-dma-ops.c
> @@ -325,7 +325,7 @@ static int xen_dt_grant_init_backend_domid(struct device *dev,
>  		struct pci_dev *pdev = to_pci_dev(dev);
>  		u32 rid = PCI_DEVID(pdev->bus->number, pdev->devfn);
>  
> -		if (of_map_iommu_id(np, rid, &iommu_spec.np, iommu_spec.args)) {
> +		if (of_map_iommu_id(np, rid, &iommu_spec)) {
>  			dev_dbg(dev, "Cannot translate ID\n");
>  			return -ESRCH;
>  		}
> diff --git a/include/linux/of.h b/include/linux/of.h
> index 824649867810..9d72d76f909d 100644
> --- a/include/linux/of.h
> +++ b/include/linux/of.h
> @@ -463,7 +463,7 @@ bool of_console_check(const struct device_node *dn, char *name, int index);
>  
>  int of_map_id(const struct device_node *np, u32 id,
>  	       const char *map_name, const char *map_mask_name,
> -	       struct device_node **target, u32 *id_out);
> +	       struct of_phandle_args *arg);
>  
>  phys_addr_t of_dma_get_max_cpu_address(struct device_node *np);
>  
> @@ -929,7 +929,7 @@ static inline void of_property_clear_flag(struct property *p, unsigned long flag
>  
>  static inline int of_map_id(const struct device_node *np, u32 id,
>  			     const char *map_name, const char *map_mask_name,
> -			     struct device_node **target, u32 *id_out)
> +			     struct of_phandle_args *arg)
>  {
>  	return -EINVAL;
>  }
> @@ -1458,17 +1458,24 @@ static inline int of_property_read_s32(const struct device_node *np,
>  }
>  
>  static inline int of_map_iommu_id(const struct device_node *np, u32 id,
> -				  struct device_node **target, u32 *id_out)
> +				  struct of_phandle_args *arg)

Document that it's the caller's responsibility to of_node_put() returned
node. As it can be seen from the previous comment, it's not obvious.

>  {
> -	return of_map_id(np, id, "iommu-map", "iommu-map-mask",
> -			 target, id_out);
> +	return of_map_id(np, id, "iommu-map", "iommu-map-mask", arg);
>  }
>  
>  static inline int of_map_msi_id(const struct device_node *np, u32 id,
>  				struct device_node **target, u32 *id_out)

Is there a reason for chaning the of_map_iommu_id() args but not
of_map_msi_id() args?

>  {
> -	return of_map_id(np, id, "msi-map", "msi-map-mask",
> -			 target, id_out);
> +	struct of_phandle_args msi_spec = { .np = *target, .args_count = 1 };

Which driver passes something being worth of storing in .np?

> +	int ret;
> +
> +	ret = of_map_id(np, id, "msi-map", "msi-map-mask", &msi_spec);
> +	if (!ret) {
> +		*target = msi_spec.np;
> +		*id_out = msi_spec.args[0];
> +	}
> +
> +	return ret;
>  }
>  
>  #define of_for_each_phandle(it, err, np, ln, cn, cc)			\
> 
> -- 
> 2.34.1
> 

-- 
With best wishes
Dmitry


From xen-devel-bounces@lists.xenproject.org Sun Mar 01 10:02:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 01 Mar 2026 10:02:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243776.1543371 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwddZ-0006rm-F9; Sun, 01 Mar 2026 10:02:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243776.1543371; Sun, 01 Mar 2026 10:02:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwddZ-0006rf-CY; Sun, 01 Mar 2026 10:02:57 +0000
Received: by outflank-mailman (input) for mailman id 1243776;
 Sun, 01 Mar 2026 10:02: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=1Kch=BB=kernel.org=maz@srs-se1.protection.inumbo.net>)
 id 1vwddY-0006q8-Kk
 for xen-devel@lists.xenproject.org; Sun, 01 Mar 2026 10:02:56 +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 d0a82a7e-1555-11f1-b164-2bf370ae4941;
 Sun, 01 Mar 2026 11:02:55 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 8051941B57;
 Sun,  1 Mar 2026 10:02:53 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E6B71C116C6;
 Sun,  1 Mar 2026 10:02:52 +0000 (UTC)
Received: from sofa.misterjones.org ([185.219.108.64]
 helo=goblin-girl.misterjones.org)
 by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2)
 (envelope-from <maz@kernel.org>) id 1vwddS-0000000Ev2N-1H9X;
 Sun, 01 Mar 2026 10:02:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d0a82a7e-1555-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1772359373;
	bh=vtpZN1m1i7JB60bMgpFDRckohYAe2rTfHOUBY7CPkt8=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=IiiSrQMxEXvnAmwK9OX3matQowi1OfBQGfa4wsnqZv0VCq9h4hi+Zz6eWNcJvyp/v
	 NKNEiJfQkOpipGT7qicIxsVx6iBqj9gkjCFVtdAyeuy4KsPdv7YgEPy/0IUfd+Ky6T
	 FCIvl841AaG7hzOLpmL6YDHKu58OOkeozdhjL/90dmjbHUQMOOhRvblZPdRLY9Ht+m
	 0UTfWVjWsewWXaC4++PUlDwCrawhx8s8fCQGvLTqMuOFiahVk0+ZI2X+c5Au/hCvwb
	 EQlrFqjagExB54Zt8V/LeB5iU4ngXho+Wv2XfBowHcX8X6MjHXzRljnh73mzuLFo8+
	 j55rBYk5pnByQ==
Date: Sun, 01 Mar 2026 10:02:49 +0000
Message-ID: <861pi3amuu.wl-maz@kernel.org>
From: Marc Zyngier <maz@kernel.org>
To: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Cc: Nipun Gupta <nipun.gupta@amd.com>,	Nikhil Agarwal
 <nikhil.agarwal@amd.com>,	Joerg Roedel <joro@8bytes.org>,	Will Deacon
 <will@kernel.org>,	Robin Murphy <robin.murphy@arm.com>,	Lorenzo Pieralisi
 <lpieralisi@kernel.org>,	Thomas Gleixner <tglx@kernel.org>,	Rob Herring
 <robh@kernel.org>,	Saravana Kannan <saravanak@kernel.org>,	Richard Zhu
 <hongxing.zhu@nxp.com>,	Lucas Stach <l.stach@pengutronix.de>,	Krzysztof
 =?UTF-8?B?V2lsY3p5xYRza2k=?= <kwilczynski@kernel.org>,	Manivannan
 Sadhasivam <mani@kernel.org>,	Bjorn Helgaas <bhelgaas@google.com>,	Frank Li
 <Frank.Li@nxp.com>,	Sascha Hauer <s.hauer@pengutronix.de>,	Pengutronix
 Kernel Team <kernel@pengutronix.de>,	Fabio Estevam <festevam@gmail.com>,
	Juergen Gross <jgross@suse.com>,	Stefano Stabellini
 <sstabellini@kernel.org>,	Oleksandr Tyshchenko
 <oleksandr_tyshchenko@epam.com>,	Dmitry Baryshkov
 <dmitry.baryshkov@oss.qualcomm.com>,	Konrad Dybcio
 <konrad.dybcio@oss.qualcomm.com>,	Bjorn Andersson
 <bjorn.andersson@oss.qualcomm.com>,	Conor Dooley <conor+dt@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,	Prakash Gupta
 <prakash.gupta@oss.qualcomm.com>,	Vikash Garodia
 <vikash.garodia@oss.qualcomm.com>,	linux-kernel@vger.kernel.org,
	iommu@lists.linux.dev,	linux-arm-kernel@lists.infradead.org,
	devicetree@vger.kernel.org,	linux-pci@vger.kernel.org,	imx@lists.linux.dev,
	xen-devel@lists.xenproject.org,	linux-arm-msm@vger.kernel.org,	Charan Teja
 Kalla <charan.kalla@oss.qualcomm.com>
Subject: Re: [PATCH v9 2/3] of: factor arguments passed to of_map_id() into a struct
In-Reply-To: <20260301-parse_iommu_cells-v9-2-4d1bceecc5e1@oss.qualcomm.com>
References: <20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com>
	<20260301-parse_iommu_cells-v9-2-4d1bceecc5e1@oss.qualcomm.com>
User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue)
 FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.1
 (aarch64-unknown-linux-gnu) MULE/6.0 (HANACHIRUSATO)
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: text/plain; charset=US-ASCII
X-SA-Exim-Connect-IP: 185.219.108.64
X-SA-Exim-Rcpt-To: vijayanand.jitta@oss.qualcomm.com, nipun.gupta@amd.com, nikhil.agarwal@amd.com, joro@8bytes.org, will@kernel.org, robin.murphy@arm.com, lpieralisi@kernel.org, tglx@kernel.org, robh@kernel.org, saravanak@kernel.org, hongxing.zhu@nxp.com, l.stach@pengutronix.de, kwilczynski@kernel.org, mani@kernel.org, bhelgaas@google.com, Frank.Li@nxp.com, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, jgross@suse.com, sstabellini@kernel.org, oleksandr_tyshchenko@epam.com, dmitry.baryshkov@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com, bjorn.andersson@oss.qualcomm.com, conor+dt@kernel.org, krzk+dt@kernel.org, prakash.gupta@oss.qualcomm.com, vikash.garodia@oss.qualcomm.com, linux-kernel@vger.kernel.org, iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, imx@lists.linux.dev, xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org, charan.kalla@oss.qualcomm.com
X-SA-Exim-Mail-From: maz@kernel.org
X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false

On Sun, 01 Mar 2026 08:34:20 +0000,
Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com> wrote:
> 
> From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> 
> Change of_map_id() to take a pointer to struct of_phandle_args
> instead of passing target device node and translated IDs separately.
> Update all callers accordingly.
> 
> Subsequent patch will make use of the args_count field in
> struct of_phandle_args.
> 
> Suggested-by: Rob Herring (Arm) <robh@kernel.org>
> Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
> ---
>  drivers/iommu/of_iommu.c              |  2 +-
>  drivers/of/base.c                     | 37 +++++++++++++++++------------------
>  drivers/pci/controller/dwc/pci-imx6.c |  8 +++++++-
>  drivers/pci/controller/pcie-apple.c   |  4 +++-
>  drivers/xen/grant-dma-ops.c           |  2 +-
>  include/linux/of.h                    | 21 +++++++++++++-------
>  6 files changed, 44 insertions(+), 30 deletions(-)
> 
> diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
> index a511ecf21fcd..d255d0f58e8c 100644
> --- a/drivers/iommu/of_iommu.c
> +++ b/drivers/iommu/of_iommu.c
> @@ -48,7 +48,7 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
>  	struct of_phandle_args iommu_spec = { .args_count = 1 };
>  	int err;
>  
> -	err = of_map_iommu_id(master_np, *id, &iommu_spec.np, iommu_spec.args);
> +	err = of_map_iommu_id(master_np, *id, &iommu_spec);
>  	if (err)
>  		return err;
>  
> diff --git a/drivers/of/base.c b/drivers/of/base.c
> index 57420806c1a2..6c3628255908 100644
> --- a/drivers/of/base.c
> +++ b/drivers/of/base.c
> @@ -2102,8 +2102,11 @@ int of_find_last_cache_level(unsigned int cpu)
>   * @id: device ID to map.
>   * @map_name: property name of the map to use.
>   * @map_mask_name: optional property name of the mask to use.
> - * @target: optional pointer to a target device node.
> - * @id_out: optional pointer to receive the translated ID.
> + * @arg: of_phandle_args structure,
> + *	which includes:
> + *	np: pointer to the target device node
> + *	args_count: number of arguments

Number of arguments *to what*? Isn't that the size of args[] instead?

> + *	args[]: array to receive the translated ID(s).
>   *
>   * Given a device ID, look up the appropriate implementation-defined
>   * platform ID and/or the target device which receives transactions on that
> @@ -2117,21 +2120,21 @@ int of_find_last_cache_level(unsigned int cpu)
>   */
>  int of_map_id(const struct device_node *np, u32 id,
>  	       const char *map_name, const char *map_mask_name,
> -	       struct device_node **target, u32 *id_out)
> +	       struct of_phandle_args *arg)
>  {
>  	u32 map_mask, masked_id;
>  	int map_len;
>  	const __be32 *map = NULL;
>  
> -	if (!np || !map_name || (!target && !id_out))
> +	if (!np || !map_name || !arg)
>  		return -EINVAL;
>  
>  	map = of_get_property(np, map_name, &map_len);
>  	if (!map) {
> -		if (target)
> +		if (arg->np)
>  			return -ENODEV;
>  		/* Otherwise, no map implies no translation */
> -		*id_out = id;
> +		arg->args[0] = id;

What if args_count is 0? Given that you place no restriction on the
way this can be called, that'd be entirely legitimate, and you'd
corrupt something you're not supposed to touch.

>  		return 0;
>  	}
>  
> @@ -2173,18 +2176,15 @@ int of_map_id(const struct device_node *np, u32 id,
>  		if (!phandle_node)
>  			return -ENODEV;
>  
> -		if (target) {
> -			if (*target)
> -				of_node_put(phandle_node);
> -			else
> -				*target = phandle_node;
> +		if (arg->np)
> +			of_node_put(phandle_node);
> +		else
> +			arg->np = phandle_node;
>  
> -			if (*target != phandle_node)
> -				continue;
> -		}
> +		if (arg->np != phandle_node)
> +			continue;
>  
> -		if (id_out)
> -			*id_out = masked_id - id_base + out_base;
> +		arg->args[0] = masked_id - id_base + out_base;
>  
>  		pr_debug("%pOF: %s, using mask %08x, id-base: %08x, out-base: %08x, length: %08x, id: %08x -> %08x\n",
>  			np, map_name, map_mask, id_base, out_base,
> @@ -2193,11 +2193,10 @@ int of_map_id(const struct device_node *np, u32 id,
>  	}
>  
>  	pr_info("%pOF: no %s translation for id 0x%x on %pOF\n", np, map_name,
> -		id, target && *target ? *target : NULL);
> +		id, arg->np ? arg->np : NULL);
>  
>  	/* Bypasses translation */
> -	if (id_out)
> -		*id_out = id;
> +	arg->args[0] = id;
>  	return 0;
>  }
>  EXPORT_SYMBOL_GPL(of_map_id);
> diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
> index bff8289f804a..74fc603b3f84 100644
> --- a/drivers/pci/controller/dwc/pci-imx6.c
> +++ b/drivers/pci/controller/dwc/pci-imx6.c
> @@ -1139,12 +1139,18 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
>  {
>  	struct device *dev = imx_pcie->pci->dev;
>  	struct device_node *target;
> +	struct of_phandle_args iommu_spec = { .args_count = 1 };
>  	u32 sid_i, sid_m;
>  	int err_i, err_m;
>  	u32 sid = 0;
>  
>  	target = NULL;
> -	err_i = of_map_iommu_id(dev->of_node, rid, &target, &sid_i);
> +	err_i = of_map_iommu_id(dev->of_node, rid, &iommu_spec);
> +	if (!err_i) {
> +		target = iommu_spec.np;
> +		sid_i = iommu_spec.args[0];
> +	}
> +
>  	if (target) {
>  		of_node_put(target);
>  	} else {
> diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
> index a0937b7b3c4d..e1d4b37d200d 100644
> --- a/drivers/pci/controller/pcie-apple.c
> +++ b/drivers/pci/controller/pcie-apple.c
> @@ -755,6 +755,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
>  {
>  	u32 sid, rid = pci_dev_id(pdev);
>  	struct apple_pcie_port *port;
> +	struct of_phandle_args iommu_spec = { .args_count = 1 };
>  	int idx, err;
>  
>  	port = apple_pcie_get_port(pdev);
> @@ -764,10 +765,11 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
>  	dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
>  		pci_name(pdev->bus->self), port->idx);
>  
> -	err = of_map_iommu_id(port->pcie->dev->of_node, rid, NULL, &sid);
> +	err = of_map_iommu_id(port->pcie->dev->of_node, rid, &iommu_spec);
>  	if (err)
>  		return err;
>  
> +	sid = iommu_spec.args[0];

I find this stuff absolutely unreadable. You're fishing the SID in a
random position of a random structure, without any documentation of
how this is supposed to work. This really needs a wrapper that hides
this implementation detail.

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.


From xen-devel-bounces@lists.xenproject.org Sun Mar 01 10:14:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 01 Mar 2026 10:14:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243794.1543382 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwdop-0000Sw-KF; Sun, 01 Mar 2026 10:14:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243794.1543382; Sun, 01 Mar 2026 10: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 1vwdop-0000Sp-GH; Sun, 01 Mar 2026 10:14:35 +0000
Received: by outflank-mailman (input) for mailman id 1243794;
 Sun, 01 Mar 2026 10: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=kDVR=BB=oss.qualcomm.com=dmitry.baryshkov@srs-se1.protection.inumbo.net>)
 id 1vwdoo-0000Sj-6h
 for xen-devel@lists.xenproject.org; Sun, 01 Mar 2026 10:14:34 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6f05364b-1557-11f1-9ccf-f158ae23cfc8;
 Sun, 01 Mar 2026 11:14:30 +0100 (CET)
Received: from pps.filterd (m0279871.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 61SH08QQ2942023
 for <xen-devel@lists.xenproject.org>; Sun, 1 Mar 2026 10:14:29 GMT
Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com
 [209.85.222.198])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cksfd2fnq-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Sun, 01 Mar 2026 10:14:28 +0000 (GMT)
Received: by mail-qk1-f198.google.com with SMTP id
 af79cd13be357-8cb52a9c0eeso2611176785a.2
 for <xen-devel@lists.xenproject.org>; Sun, 01 Mar 2026 02:14:28 -0800 (PST)
Received: from umbar.lan
 (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi.
 [2001:14ba:a073:af00:264b:feff:fe8b:be8a])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-5a115bce377sm961212e87.15.2026.03.01.02.14.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 01 Mar 2026 02:14: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: 6f05364b-1557-11f1-9ccf-f158ae23cfc8
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=AaYtDY7i19JC+kgo6Aub+wpd
	CRyygwATCwFfvf7SeLs=; b=hppjOok7n3kZEvdpFxy+oGrOFaOPC7WA6YKIHC/P
	RLEYZxYbkUwgyYloRukhuv54XIuvwPWWpkPINmqgr0ipcG19c+mBC/unxCISJ5r8
	zv7oYZVSJSJYmp55jiMff6vOdPdxkh2HD9IUTL9/EGMSQq7cxEt5ifcUcnLdvyPQ
	CC0CKVFN4N93C/eKDl3lfXTKt14GvBGu6SOZqNz1kipYOf05iepCsnG0pQWfv/Tj
	WFKOcpyXYTiGyABliGv3BCzT079+WL77nYdK0AQqkVT1B1nEmAl3yQKyr4QgxvnL
	0GB6owfy1UPawDPjWgbesksP+P/Io90JOQoe94KPSYHL8w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1772360068; x=1772964868; 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=AaYtDY7i19JC+kgo6Aub+wpdCRyygwATCwFfvf7SeLs=;
        b=UJDpvag+7m3v0iJCv/61JOCJp+AH5V9lobHW76VtdlLaU2HYFK0DjHV6hn/86sDaDf
         Bamgdo8LQYE+QQK96Rg4uOSO2IkPXsRxgJdAzZkhco1r0yYRbVbsbW4t3M6A6/z4vQ0X
         GIlMNjjY8+RCVNxlJzqAZ/VZyYAz3rBbYdYqWiiA1+dDKOOUXgafK6DeVSiTD56m3Opm
         O4TBphQcJYZayj6MxzKw6xCs+2jmdsCxqGVu0sivClhGmkwOT2RzOYqxSckgdf1R/ILZ
         l15skYj7JVtagYq5Mbka9L3TEHgDjX5WQl6xWL35jl9Wfaqe+YqYoKQvCK2gfKs0A07z
         w3zA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772360068; x=1772964868;
        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=AaYtDY7i19JC+kgo6Aub+wpdCRyygwATCwFfvf7SeLs=;
        b=WKacjeKdGsozyUcbM6opk/JWVMi7xuwCiGsdg73Assk4n9m2VQ281P3gwU23tO25ZH
         iiSKMr6nR+ksaAF+tNI0haDeqL+pnV7HLrrLbJtF1q2keMA5eCCf8fxykkRseuSY6Bf4
         wkhzTrg6d1l/rYbe0/D5XEdZ1Kylx4+WyxgA+0ry9VGxBYbToUhRLQQVBVvdZKr2tmzZ
         c7bJt01TrjWErb1BTCJHwFRRWi2EyX3E1CRJudOimqCirtXVEfd+51fhBdcXw2tUqqe3
         Igkn5d8vWZmy/nME987f8P6RQIdThJKpbm1+V4gZdRVGAVvFMQwPfPBoLIXbS3+c2IOo
         82mA==
X-Forwarded-Encrypted: i=1; AJvYcCUrdUvyEPCpgJvVYYfxBFhB3zbVHLS1t+SHj4wa1Q6TZB7LL62Tzc9cve6z7RotnPxaPl0vokBXxXw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxGUfzR/RCY2La22aK9F3k21MvXMfkJKAHPeTci//oKEY+NMpYU
	pUPfCrmZAoeaZGt4rhjvq5xvgkuDjmGevWoEEHhqwmHEZYG3OJk7DwOe4P869EDOa9Ivt/mbwaJ
	1bLcCm8KHDlSGe2hPxmgrf8jJhMDp2yki8y2L8dfxoQxrYgfoV32G96gtPVbRFSYvTsPOoQ==
X-Gm-Gg: ATEYQzyF1B5S2R2nkC2u1f0Qq46wkEu+OEBZwUPzL6bOIXH06g8pLcGd9T/xAkjdT4U
	0MzrLVSpLOusedgVS7ikinZkAx9jaOxuHZHsOhpKuGWgPVMUBoP2lkqNrXcbqcuJrXer8eca6fR
	zeQu0n3q9A9BpKSNbOUp/IXuQ0lQtuqK34w9S1WKKmqvGEoGkoijbxs7GgFwKNpQucJNZEj+bHI
	40bMoB4k9/vuHEkUtwcpLQMZ3ZZFkGA2jLaNMCqqbM97vKvpJmthhAIdtusrZrfkzRZ9fHohad1
	IqIB8ryHGy+4gvJbA0Dt+5qxGnmh0Iw+4Y3WCTpF2vZO4vvX77fExEBPNRqDAyR0PVWVh4ossUY
	6Py+bixsnxiNqvnMVzzavrLmt8jcCUWZLMWw9G3cQ1y+CLNiD7KW83MWhrv64O1joltl313jXWt
	vhuAu3hxeUStXfmlogjTrdwAHVvp2Uo4TrFCE=
X-Received: by 2002:a05:620a:c4a:b0:8b6:1877:3689 with SMTP id af79cd13be357-8cbc8d9f7f5mr1039716085a.35.1772360067923;
        Sun, 01 Mar 2026 02:14:27 -0800 (PST)
X-Received: by 2002:a05:620a:c4a:b0:8b6:1877:3689 with SMTP id af79cd13be357-8cbc8d9f7f5mr1039712785a.35.1772360067368;
        Sun, 01 Mar 2026 02:14:27 -0800 (PST)
Date: Sun, 1 Mar 2026 12:14:23 +0200
From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Cc: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>, Rob Herring <robh@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Subject: Re: [PATCH v9 3/3] of: Respect #{iommu,msi}-cells in maps
Message-ID: <laif6gacqyacvchnfuyhu4w3f4746xlrlxrr23klrgtkbn7dn3@rracfqemavwd>
References: <20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com>
 <20260301-parse_iommu_cells-v9-3-4d1bceecc5e1@oss.qualcomm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260301-parse_iommu_cells-v9-3-4d1bceecc5e1@oss.qualcomm.com>
X-Proofpoint-ORIG-GUID: bHA-iXZAqDUafR2HJbsBttLMiP8UykgI
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzAxMDA5MSBTYWx0ZWRfXxX1VBNKYWRVU
 UpQ+V9K0LjgExjP19NlU3QtaP3RLg9caJPTZ5X0WdpR82xhuaPoBnEeExowKuw26nvHMgxaT3x4
 nKywnDH8GEa0a726lcypLeLpPOhsqp20WVJqWtclaZbPTE1Xioz2U9Td/Jpdfqxh+QaNJErzOc5
 14Eb7dT9miDa32YLyS/rHeqzZwKSs6WjnNb7yJwVcW5qGbF127Cngn2pyrEsBzt83A75ITK+he9
 8rFKUEUGMCt5d5rwd+dbidM1wSLjK5JZ8sVZ+LgHPqTJHiv4mfxsMxPLXQ2ivEnI8sZ0BolaqIH
 0phaThc0fLUKiq4tEePzz00l5EXK73r9wkdzSezKwfwl/hRQVdf+rsCpj8VXklzeDDORp6Eoz24
 oPmSSKYoQPLPGFhc19hsARPWeAS/ljr8d2C4/bIy0I+XtmuTufqzz9YiphtLWtNhNdumu3XPwpj
 Z/DJL0pRffgqhXhSxaw==
X-Authority-Analysis: v=2.4 cv=HKDO14tv c=1 sm=1 tr=0 ts=69a41184 cx=c_pps
 a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10
 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=7CQSdrXTAAAA:8
 a=EUspDBNiAAAA:8 a=7GgscoS1Nejt2LJ9sp4A:9 a=CjuIK1q_8ugA:10
 a=NFOGd7dJGGMPyQGDc5-O:22 a=a-qgeE7W1pNrGK8U0ZQC:22
X-Proofpoint-GUID: bHA-iXZAqDUafR2HJbsBttLMiP8UykgI
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-01_01,2026-02-27_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 lowpriorityscore=0 clxscore=1015 phishscore=0 impostorscore=0 adultscore=0
 spamscore=0 bulkscore=0 suspectscore=0 priorityscore=1501 malwarescore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603010091

On Sun, Mar 01, 2026 at 02:04:21PM +0530, Vijayanand Jitta wrote:
> From: Robin Murphy <robin.murphy@arm.com>
> 
> So far our parsing of {iommu,msi}-map properites has always blindly
> assumed that the output specifiers will always have exactly 1 cell.
> This typically does happen to be the case, but is not actually enforced
> (and the PCI msi-map binding even explicitly states support for 0 or 1
> cells) - as a result we've now ended up with dodgy DTs out in the field
> which depend on this behaviour to map a 1-cell specifier for a 2-cell
> provider, despite that being bogus per the bindings themselves.
> 
> Since there is some potential use in being able to map at least single
> input IDs to multi-cell output specifiers (and properly support 0-cell
> outputs as well), add support for properly parsing and using the target
> nodes' #cells values, albeit with the unfortunate complication of still
> having to work around expectations of the old behaviour too.
> 
> Since there are multi-cell output specifiers, the callers of of_map_id()
> may need to get the exact cell output value for further processing.
> Added support for that part --charan
> 
> Signed-off-by: Robin Murphy <robin.murphy@arm.com>
> Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
> ---
>  drivers/iommu/of_iommu.c |   2 +-
>  drivers/of/base.c        | 117 +++++++++++++++++++++++++++++++++++++----------
>  include/linux/of.h       |  16 +++----
>  3 files changed, 102 insertions(+), 33 deletions(-)
> 

>  /**
>   * of_map_id - Translate an ID through a downstream mapping.
>   * @np: root complex device node.
>   * @id: device ID to map.
>   * @map_name: property name of the map to use.
> + * @cells_name: property name of target specifier cells.
>   * @map_mask_name: optional property name of the mask to use.
>   * @arg: of_phandle_args structure,
>   *	which includes:
> @@ -2118,18 +2145,19 @@ int of_find_last_cache_level(unsigned int cpu)
>   *
>   * Return: 0 on success or a standard error code on failure.
>   */
> -int of_map_id(const struct device_node *np, u32 id,
> -	       const char *map_name, const char *map_mask_name,
> -	       struct of_phandle_args *arg)
> +int of_map_id(const struct device_node *np, u32 id, const char *map_name,
> +	      const char *cells_name, const char *map_mask_name,
> +	      struct of_phandle_args *arg)

Some extra whitespace-related noise in here. Last line wasn't changed,
so there is no need to touch it.

>  {
>  	u32 map_mask, masked_id;
> -	int map_len;
> +	int map_bytes, map_len, offset = 0;
> +	bool bad_map = false;
>  	const __be32 *map = NULL;
>  
>  	if (!np || !map_name || !arg)
>  		return -EINVAL;
>  
> -	map = of_get_property(np, map_name, &map_len);
> +	map = of_get_property(np, map_name, &map_bytes);
>  	if (!map) {
>  		if (arg->np)
>  			return -ENODEV;
> @@ -2138,11 +2166,9 @@ int of_map_id(const struct device_node *np, u32 id,
>  		return 0;
>  	}
>  
> -	if (!map_len || map_len % (4 * sizeof(*map))) {
> -		pr_err("%pOF: Error: Bad %s length: %d\n", np,
> -			map_name, map_len);
> -		return -EINVAL;
> -	}
> +	if (map_bytes % sizeof(*map))
> +		goto err_map_len;
> +	map_len = map_bytes / sizeof(*map);
>  
>  	/* The default is to select all bits. */
>  	map_mask = 0xffffffff;
> @@ -2155,27 +2181,63 @@ int of_map_id(const struct device_node *np, u32 id,
>  		of_property_read_u32(np, map_mask_name, &map_mask);
>  
>  	masked_id = map_mask & id;
> -	for ( ; map_len > 0; map_len -= 4 * sizeof(*map), map += 4) {
> +
> +	while (offset < map_len) {
>  		struct device_node *phandle_node;
> -		u32 id_base = be32_to_cpup(map + 0);
> -		u32 phandle = be32_to_cpup(map + 1);
> -		u32 out_base = be32_to_cpup(map + 2);
> -		u32 id_len = be32_to_cpup(map + 3);
> +		u32 id_base, phandle, id_len, id_off, cells = 0;
> +		const __be32 *out_base;
> +
> +		if (map_len - offset < 2)
> +			goto err_map_len;
> +
> +		id_base = be32_to_cpup(map + offset);
>  
>  		if (id_base & ~map_mask) {
> -			pr_err("%pOF: Invalid %s translation - %s-mask (0x%x) ignores id-base (0x%x)\n",
> -				np, map_name, map_name,
> -				map_mask, id_base);
> +			pr_err("%pOF: Invalid %s translation - %s (0x%x) ignores id-base (0x%x)\n",
> +			       np, map_name, map_mask_name, map_mask, id_base);
>  			return -EFAULT;
>  		}
>  
> -		if (masked_id < id_base || masked_id >= id_base + id_len)
> -			continue;
> -
> +		phandle = be32_to_cpup(map + offset + 1);
>  		phandle_node = of_find_node_by_phandle(phandle);
>  		if (!phandle_node)
>  			return -ENODEV;
>  
> +		if (!bad_map && of_property_read_u32(phandle_node, cells_name, &cells)) {
> +			pr_err("%pOF: missing %s property\n", phandle_node, cells_name);
> +			return -EINVAL;
> +		}

This will trigger the cells_name property check even if later we
discover that we have a "bad" map. Is it intended / required?

> +
> +		if (map_len - offset < 3 + cells)

of_node_put(phandle_node);

> +			goto err_map_len;
> +
> +		if (offset == 0 && cells == 2) {

... if it's not required, then the bad_map check can be moved before the
loop.

> +			bad_map = of_check_bad_map(map, map_len);
> +			if (bad_map) {
> +				pr_warn_once("%pOF: %s mismatches target %s, assuming extra cell of 0\n",
> +					     np, map_name, cells_name);
> +				cells = 1;
> +			}
> +		}
> +
> +		out_base = map + offset + 2;
> +		offset += 3 + cells;
> +
> +		id_len = be32_to_cpup(map + offset - 1);
> +		if (id_len > 1 && cells > 1) {
> +			/*
> +			 * With 1 output cell we reasonably assume its value
> +			 * has a linear relationship to the input; with more,
> +			 * we'd need help from the provider to know what to do.
> +			 */
> +			pr_err("%pOF: Unsupported %s - cannot handle %d-ID range with %d-cell output specifier\n",
> +			       np, map_name, id_len, cells);
> +			return -EINVAL;
> +		}
> +		id_off = masked_id - id_base;
> +		if (masked_id < id_base || id_off >= id_len)
> +			continue;
> +
>  		if (arg->np)
>  			of_node_put(phandle_node);
>  		else
> @@ -2184,11 +2246,14 @@ int of_map_id(const struct device_node *np, u32 id,
>  		if (arg->np != phandle_node)
>  			continue;
>  
> -		arg->args[0] = masked_id - id_base + out_base;
> +		for (int i = 0; i < cells; i++)
> +			arg->args[i] = (id_off + be32_to_cpu(out_base[i]));
> +
> +		arg->args_count = cells;
>  
>  		pr_debug("%pOF: %s, using mask %08x, id-base: %08x, out-base: %08x, length: %08x, id: %08x -> %08x\n",
> -			np, map_name, map_mask, id_base, out_base,
> -			id_len, id, masked_id - id_base + out_base);
> +			 np, map_name, map_mask, id_base, be32_to_cpup(out_base),
> +			 id_len, id, id_off + be32_to_cpup(out_base));

Again, having whitespace changes doesn't simplify reviewing.

>  		return 0;
>  	}
>  
> @@ -2198,5 +2263,9 @@ int of_map_id(const struct device_node *np, u32 id,
>  	/* Bypasses translation */
>  	arg->args[0] = id;
>  	return 0;
> +
> +err_map_len:
> +	pr_err("%pOF: Error: Bad %s length: %d\n", np, map_name, map_bytes);
> +	return -EINVAL;
>  }
>  EXPORT_SYMBOL_GPL(of_map_id);

-- 
With best wishes
Dmitry


From xen-devel-bounces@lists.xenproject.org Sun Mar 01 10:47:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 01 Mar 2026 10:47:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243803.1543391 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vweKL-0004Zi-W2; Sun, 01 Mar 2026 10:47:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243803.1543391; Sun, 01 Mar 2026 10:47:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vweKL-0004Zb-Rp; Sun, 01 Mar 2026 10:47:09 +0000
Received: by outflank-mailman (input) for mailman id 1243803;
 Sun, 01 Mar 2026 10:47:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kDVR=BB=oss.qualcomm.com=dmitry.baryshkov@srs-se1.protection.inumbo.net>)
 id 1vweKK-0004ZV-Ha
 for xen-devel@lists.xenproject.org; Sun, 01 Mar 2026 10:47:08 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fb96339f-155b-11f1-9ccf-f158ae23cfc8;
 Sun, 01 Mar 2026 11:47:04 +0100 (CET)
Received: from pps.filterd (m0279873.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 6214Ea7A3978903
 for <xen-devel@lists.xenproject.org>; Sun, 1 Mar 2026 10:47:02 GMT
Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com
 [209.85.222.198])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ckshktfyx-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Sun, 01 Mar 2026 10:47:02 +0000 (GMT)
Received: by mail-qk1-f198.google.com with SMTP id
 af79cd13be357-8cb37db8b79so2721104285a.3
 for <xen-devel@lists.xenproject.org>; Sun, 01 Mar 2026 02:47:02 -0800 (PST)
Received: from umbar.lan
 (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi.
 [2001:14ba:a073:af00:264b:feff:fe8b:be8a])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-5a115bce377sm971860e87.15.2026.03.01.02.46.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 01 Mar 2026 02:47: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: fb96339f-155b-11f1-9ccf-f158ae23cfc8
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=zMjjSX07o27ArEy58bafhXTf
	zgI0LtEb8dLPu9QRg6g=; b=YHzedMVvaaQRmITBFe8xlRAGp8P99EssBQY/pKU4
	5F2QJ5TRhTc6aItMbvykuefuUQIazptsv9UE9PHpvwpC1M+e1jXsUT62ohJytu/e
	RldhLQBp18YepRjUSmK6wuw5wmhrPTkxHh0nYq0lBb+4nK4Ztl0J/nvTVcQEhFmQ
	jAhvb//acoWSA3UXKpi1kdahy8aWY8gtcFTmo0MoXVHVDbZtADY+PBM2PDG5mLct
	9m7MkPMdZ843hZ+h40XdTx1WGnDLataaldhWe/qsX5StDb8rU25k1g+v6s9gPp5d
	3cg1+H4J+zKzj/uIE/BAyVD607KfK0kE+a/7LiwBCbbnSw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1772362022; x=1772966822; 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=zMjjSX07o27ArEy58bafhXTfzgI0LtEb8dLPu9QRg6g=;
        b=XC0G5Ls6bLClgeMflWtxNL0t1rdp+B3JkQc/nvk7JdtNUdV+l/YFgSoeqM4BYOmS4b
         K1jt9Nmkv+2qkcWOBw1LsrZlDU297qBw6QOM74zpUDAMVw3E3xtauI8eOXKst7M8h0Gt
         FkNsR4ehpJtN8D3q9vBkBUvJ0U25XA4aIkwHh6EmbjIrVgkqiyn2Vi3yPQbtByQiejnY
         jcCR/sre5aWJpGnluiipiK7MbcWhJHNZTdcbT9cfqsyx5zpKBLoTuX+fuWYKljgD6oV0
         KvoNxUtPJJxF+1bKNzYNUT/3J8fkFS/Pm/JwtgKncbyILBerk0HKBpLVPvXCXWhW/a8p
         3eQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772362022; x=1772966822;
        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=zMjjSX07o27ArEy58bafhXTfzgI0LtEb8dLPu9QRg6g=;
        b=pxy0NIFZ7AGmXMSA+buBr4QZ33+MN7MvDP2a9rjvIpVg9U/CInAK9RTFKnGQ9XDf76
         IOVImUWEG7mR9Rf0SIVNZ5ZaZS/szw2Aat5iWwuPWRqBnZbooyEf4W1t/9w4EGdp01St
         oAbr8MwM9EUxXwzr9D5+ZsYtlU1TAoT9gNseCaZ5TvLWu+LIDytrkEzoPloEAuLStays
         nLf0wBgrt5p1IUhS76DQbOFZ+cKAhEatOip6YnTmyYPQ9B/p/Y7uWRIfWVpvvdHECUdM
         ZAZ4WElXGwWK8SPrKbeCH2URFamu6eXMsEeQpPF785TMVUp3L7lThvMwrwcolholmomL
         KIVw==
X-Forwarded-Encrypted: i=1; AJvYcCVPj4Qrm29M8HceLD3LIzTUu5wA9oteaEDtamFIgrNPOE7XlDMonT88sqtoLQ0SmMbBKC+B8f380Ag=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwKyfJCFGMrFNxA+vgi718CXP2n6owoGtc+F/VP3t4kULese58d
	/tqoqZO/jFFsy35l7mDGp2ytiPfhbJ8K61qTq8nGv7FELT0c9cBR38xg97R2Q/Lnw9P9iPh5RMn
	OF/FZvHyBk+PXg1d0h6/qjAwBMP69BesE2Xz5iczCWJ5bKWiISrFHLbxT/TEdSfnZ67LaNQ==
X-Gm-Gg: ATEYQzzvD26fScucBUszrHZaUrH0Lri0KKnpUFoEyhPf1w8IohCuvJNmiV9hUT0aZL3
	rcfzRv2SFzPTtkNWl8t15oJCw+QnmP2jBAIODtn3m0YjF3fTJLDklemm1pZgyoKdFP6AfvdpECy
	B7WfldIThWOQgQM56VuSoijZEEurorBY4KLNALfjifKk9VJ0GQFFYpH1ChC5uKQvN8kussE1Hd2
	xw75QPq6HSGoS0Ybo2OhX/Pmh1rb0TdhoUpl2otKincY3hyEY3P0zUWBzNzzDjP+1oDEqHGUVE4
	tKMdbxuJMjbiiG8lUeQ9nmGAjOqVfq8mw03LjQ9HUyRz03KbY3RETyXSF6VEHsGpDCgsWrrxmZf
	Jjr/w0wNh2g6IddeHV4uQ+bBA89kRzWhvEMS7l35DJFkvMSp6NpnB+4/AuypNZCyAFwAnxuu7we
	hbzcvsZzf0RKybkwl2nKVt4ze1vmWqSjGXtcs=
X-Received: by 2002:a05:620a:199c:b0:8cb:50d6:18c3 with SMTP id af79cd13be357-8cbc8d6ef5bmr1217220385a.1.1772362021859;
        Sun, 01 Mar 2026 02:47:01 -0800 (PST)
X-Received: by 2002:a05:620a:199c:b0:8cb:50d6:18c3 with SMTP id af79cd13be357-8cbc8d6ef5bmr1217215585a.1.1772362021320;
        Sun, 01 Mar 2026 02:47:01 -0800 (PST)
Date: Sun, 1 Mar 2026 12:46:57 +0200
From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: Marc Zyngier <maz@kernel.org>
Cc: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>,
        Nipun Gupta <nipun.gupta@amd.com>,
        Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>, Rob Herring <robh@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Subject: Re: [PATCH v9 2/3] of: factor arguments passed to of_map_id() into a
 struct
Message-ID: <ehhnta6zvfua723llpb52hh3lwqdh4ttomzt7xqrmcjnsslbop@p4w3gjzxp4rn>
References: <20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com>
 <20260301-parse_iommu_cells-v9-2-4d1bceecc5e1@oss.qualcomm.com>
 <861pi3amuu.wl-maz@kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <861pi3amuu.wl-maz@kernel.org>
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzAxMDA5NiBTYWx0ZWRfX79fsq6WkQFxx
 /4CvNQ5ZavR3XP8yY3s7qbK4hDi2JhSeowfHc9Fjw/6Arj1toQM2qX6B+DuJFLLGuZVeyffKlEs
 yIo6v17DnBmkTZxCEKywqlTuTg+pQdyu/yHczRMt4UbSPfx3UIkcqzJ7LDjWU+NfgXqqUqihJLr
 yIwttF1z4bPv9mIReaXdFzbP8Wg+hN/mpRpvhZsGCxZmsvfRTkRW9BE/oDzMjIEEFJrg8ryilIY
 uqnHrfKOq9e+2ZKY84iF4Yp/DcbuGA/W/GZYq90LIKDzENWy8hOqoa603q8uLc5FzAEgpP4OD37
 NkOrGp/FSTg+1sPSQ+5bHHJ+P2dlmbl2W/Gr8sorxlWXivxqzhHF+wWdf1DyqNxxn21RVRt3aQT
 DeNDBiadEYNLxMhiTTi8sP21blSa/ZrRgIMD5pg3tz0jAInRT7XCqez9GjQn0FPJYKBAPnHVY2e
 fVIwIHvCr9wflRFIG8A==
X-Proofpoint-ORIG-GUID: HDdCV8scuzg9j5vqD-yrLcITck0T3K2n
X-Authority-Analysis: v=2.4 cv=EvbfbCcA c=1 sm=1 tr=0 ts=69a41926 cx=c_pps
 a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10
 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=YG64nluAAAAA:20
 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=Pq9JgrngHnaR5_AiyuMA:9 a=CjuIK1q_8ugA:10
 a=NFOGd7dJGGMPyQGDc5-O:22 a=bA3UWDv6hWIuX7UZL3qL:22
X-Proofpoint-GUID: HDdCV8scuzg9j5vqD-yrLcITck0T3K2n
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-01_01,2026-02-27_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 phishscore=0 bulkscore=0 spamscore=0 lowpriorityscore=0 priorityscore=1501
 malwarescore=0 adultscore=0 impostorscore=0 clxscore=1015 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603010096

On Sun, Mar 01, 2026 at 10:02:49AM +0000, Marc Zyngier wrote:
> On Sun, 01 Mar 2026 08:34:20 +0000,
> Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com> wrote:
> > 
> > From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> > 
> > Change of_map_id() to take a pointer to struct of_phandle_args
> > instead of passing target device node and translated IDs separately.
> > Update all callers accordingly.
> > 
> > Subsequent patch will make use of the args_count field in
> > struct of_phandle_args.
> > 
> > Suggested-by: Rob Herring (Arm) <robh@kernel.org>
> > Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> > Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
> > ---
> >  drivers/iommu/of_iommu.c              |  2 +-
> >  drivers/of/base.c                     | 37 +++++++++++++++++------------------
> >  drivers/pci/controller/dwc/pci-imx6.c |  8 +++++++-
> >  drivers/pci/controller/pcie-apple.c   |  4 +++-
> >  drivers/xen/grant-dma-ops.c           |  2 +-
> >  include/linux/of.h                    | 21 +++++++++++++-------
> >  6 files changed, 44 insertions(+), 30 deletions(-)
> > 
> > diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
> > index a511ecf21fcd..d255d0f58e8c 100644
> > --- a/drivers/iommu/of_iommu.c
> > +++ b/drivers/iommu/of_iommu.c
> > @@ -48,7 +48,7 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
> >  	struct of_phandle_args iommu_spec = { .args_count = 1 };
> >  	int err;
> >  
> > -	err = of_map_iommu_id(master_np, *id, &iommu_spec.np, iommu_spec.args);
> > +	err = of_map_iommu_id(master_np, *id, &iommu_spec);
> >  	if (err)
> >  		return err;
> >  
> > diff --git a/drivers/of/base.c b/drivers/of/base.c
> > index 57420806c1a2..6c3628255908 100644
> > --- a/drivers/of/base.c
> > +++ b/drivers/of/base.c
> > @@ -2102,8 +2102,11 @@ int of_find_last_cache_level(unsigned int cpu)
> >   * @id: device ID to map.
> >   * @map_name: property name of the map to use.
> >   * @map_mask_name: optional property name of the mask to use.
> > - * @target: optional pointer to a target device node.
> > - * @id_out: optional pointer to receive the translated ID.
> > + * @arg: of_phandle_args structure,
> > + *	which includes:
> > + *	np: pointer to the target device node
> > + *	args_count: number of arguments
> 
> Number of arguments *to what*? Isn't that the size of args[] instead?

It is a number of values corresponding to the phandle in the DT
property. It might be not obvious here for iommu-maps, but the struct is
idiomatic in OF world. Let me quote a (trimmed) example from
qcom/sm8650.dtsi (for a different property, but it explains the meaning
of the values here):

gem_noc: interconnect@24100000 {
	#interconnect-cells = <2>;
};

epss_l3: interconnect@17d90000 {
	#interconnect-cells = <1>;
};

interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
		 &gem_noc SLAVE_LLCC QCOM_ICC_TAG_ACTIVE_ONLY>,
		<&epss_l3 MASTER_EPSS_L3_APPS
		 &epss_l3 SLAVE_EPSS_L3_SHARED>;
/* I skipped the second pair, it adds nothing here */

Here the parsing function for this property (of_icc_get_by_index()) will
call of_parse_phandle_with_args() 4 times and it expects to return the
following values in the of_phandle_args:

1. { .np = gem_noc, .args_count = 2, .args = [MASTER_APPSS_PROC,
                                              QCOM_ICC_TAG_ACTIVE_ONLY] }
2. { .np = gem_noc, .args_count = 2, .args = [SLAVE_LLCC,
                                              QCOM_ICC_TAG_ACTIVE_ONLY] }
3. { .np = epss_l3, .args_count = 1, .args = [MASTER_EPSS_L3_APPS] }
4. { .np = epss_l3, .args_count = 1, .args = [SLAVE_EPSS_L3_SHARED] }

The whole of_phandle_args is then typically passed to the corresponding
xlate function, specific to the paricular .np ('provider'), which will
use #args_count values from the #args array to return the object from
the provider.

Now let's see iommu-maps (again, qcom/sm8650.dtsi):

apps_smmu: iommu@15000000 {
	#iommu-cells = <2>;
};

iommu-map = <0     &apps_smmu 0x1400 0x1>,
	    <0x100 &apps_smmu 0x1401 0x1>;

The property matches current definition at [1], however this spec
doesn't match the DT practice. It forces that the property should use 1
cell for identifying the "object" in the IOMMU provider, even if the
provider expects to use 2 cells (two args).

The correct property should look like:

iommu-map = <0     &apps_smmu 0x1400 0x0 0x1>,
	    <0x100 &apps_smmu 0x1401 0x0 0x1>;

[1] https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/pci/pci-iommu.yaml

> 
> > + *	args[]: array to receive the translated ID(s).
> >   *
> >   * Given a device ID, look up the appropriate implementation-defined
> >   * platform ID and/or the target device which receives transactions on that
> > @@ -2117,21 +2120,21 @@ int of_find_last_cache_level(unsigned int cpu)
> >   */
> >  int of_map_id(const struct device_node *np, u32 id,
> >  	       const char *map_name, const char *map_mask_name,
> > -	       struct device_node **target, u32 *id_out)
> > +	       struct of_phandle_args *arg)
> >  {
> >  	u32 map_mask, masked_id;
> >  	int map_len;
> >  	const __be32 *map = NULL;
> >  
> > -	if (!np || !map_name || (!target && !id_out))
> > +	if (!np || !map_name || !arg)
> >  		return -EINVAL;
> >  
> >  	map = of_get_property(np, map_name, &map_len);
> >  	if (!map) {
> > -		if (target)
> > +		if (arg->np)
> >  			return -ENODEV;
> >  		/* Otherwise, no map implies no translation */
> > -		*id_out = id;
> > +		arg->args[0] = id;
> 
> What if args_count is 0? Given that you place no restriction on the
> way this can be called, that'd be entirely legitimate, and you'd
> corrupt something you're not supposed to touch.

args is an array (not a pointer) in of_phandle_args. As such we know
that args[0] is legit.

> 
> >  		return 0;
> >  	}
> >  
> > @@ -2173,18 +2176,15 @@ int of_map_id(const struct device_node *np, u32 id,
> >  		if (!phandle_node)
> >  			return -ENODEV;
> >  
> > -		if (target) {
> > -			if (*target)
> > -				of_node_put(phandle_node);
> > -			else
> > -				*target = phandle_node;
> > +		if (arg->np)
> > +			of_node_put(phandle_node);
> > +		else
> > +			arg->np = phandle_node;
> >  
> > -			if (*target != phandle_node)
> > -				continue;
> > -		}
> > +		if (arg->np != phandle_node)
> > +			continue;
> >  
> > -		if (id_out)
> > -			*id_out = masked_id - id_base + out_base;
> > +		arg->args[0] = masked_id - id_base + out_base;
> >  
> >  		pr_debug("%pOF: %s, using mask %08x, id-base: %08x, out-base: %08x, length: %08x, id: %08x -> %08x\n",
> >  			np, map_name, map_mask, id_base, out_base,
> > @@ -2193,11 +2193,10 @@ int of_map_id(const struct device_node *np, u32 id,
> >  	}
> >  
> >  	pr_info("%pOF: no %s translation for id 0x%x on %pOF\n", np, map_name,
> > -		id, target && *target ? *target : NULL);
> > +		id, arg->np ? arg->np : NULL);
> >  
> >  	/* Bypasses translation */
> > -	if (id_out)
> > -		*id_out = id;
> > +	arg->args[0] = id;
> >  	return 0;
> >  }
> >  EXPORT_SYMBOL_GPL(of_map_id);
> > diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
> > index bff8289f804a..74fc603b3f84 100644
> > --- a/drivers/pci/controller/dwc/pci-imx6.c
> > +++ b/drivers/pci/controller/dwc/pci-imx6.c
> > @@ -1139,12 +1139,18 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
> >  {
> >  	struct device *dev = imx_pcie->pci->dev;
> >  	struct device_node *target;
> > +	struct of_phandle_args iommu_spec = { .args_count = 1 };
> >  	u32 sid_i, sid_m;
> >  	int err_i, err_m;
> >  	u32 sid = 0;
> >  
> >  	target = NULL;
> > -	err_i = of_map_iommu_id(dev->of_node, rid, &target, &sid_i);
> > +	err_i = of_map_iommu_id(dev->of_node, rid, &iommu_spec);
> > +	if (!err_i) {
> > +		target = iommu_spec.np;
> > +		sid_i = iommu_spec.args[0];
> > +	}
> > +
> >  	if (target) {
> >  		of_node_put(target);
> >  	} else {
> > diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
> > index a0937b7b3c4d..e1d4b37d200d 100644
> > --- a/drivers/pci/controller/pcie-apple.c
> > +++ b/drivers/pci/controller/pcie-apple.c
> > @@ -755,6 +755,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
> >  {
> >  	u32 sid, rid = pci_dev_id(pdev);
> >  	struct apple_pcie_port *port;
> > +	struct of_phandle_args iommu_spec = { .args_count = 1 };
> >  	int idx, err;
> >  
> >  	port = apple_pcie_get_port(pdev);
> > @@ -764,10 +765,11 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
> >  	dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
> >  		pci_name(pdev->bus->self), port->idx);
> >  
> > -	err = of_map_iommu_id(port->pcie->dev->of_node, rid, NULL, &sid);
> > +	err = of_map_iommu_id(port->pcie->dev->of_node, rid, &iommu_spec);
> >  	if (err)
> >  		return err;
> >  
> > +	sid = iommu_spec.args[0];
> 
> I find this stuff absolutely unreadable. You're fishing the SID in a
> random position of a random structure, without any documentation of
> how this is supposed to work. This really needs a wrapper that hides
> this implementation detail.
> 
> Thanks,
> 
> 	M.
> 
> -- 
> Without deviation from the norm, progress is not possible.

-- 
With best wishes
Dmitry


From xen-devel-bounces@lists.xenproject.org Sun Mar 01 10:59:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 01 Mar 2026 10:59:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243818.1543400 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vweWM-0006Mq-3o; Sun, 01 Mar 2026 10:59:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243818.1543400; Sun, 01 Mar 2026 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 1vweWM-0006Mj-1I; Sun, 01 Mar 2026 10:59:34 +0000
Received: by outflank-mailman (input) for mailman id 1243818;
 Sun, 01 Mar 2026 10:59:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kDVR=BB=oss.qualcomm.com=dmitry.baryshkov@srs-se1.protection.inumbo.net>)
 id 1vweWK-0006Md-TX
 for xen-devel@lists.xenproject.org; Sun, 01 Mar 2026 10:59:32 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b83a6768-155d-11f1-9ccf-f158ae23cfc8;
 Sun, 01 Mar 2026 11:59:30 +0100 (CET)
Received: from pps.filterd (m0279869.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 6216rYmt2276909
 for <xen-devel@lists.xenproject.org>; Sun, 1 Mar 2026 10:59:28 GMT
Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com
 [209.85.222.199])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cksf6jhex-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Sun, 01 Mar 2026 10:59:28 +0000 (GMT)
Received: by mail-qk1-f199.google.com with SMTP id
 af79cd13be357-8cb403842b6so3546395085a.1
 for <xen-devel@lists.xenproject.org>; Sun, 01 Mar 2026 02:59:28 -0800 (PST)
Received: from umbar.lan
 (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi.
 [2001:14ba:a073:af00:264b:feff:fe8b:be8a])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-5a116de019esm872280e87.3.2026.03.01.02.59.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 01 Mar 2026 02: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: b83a6768-155d-11f1-9ccf-f158ae23cfc8
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=tWvbzoSirp2+/mfj208EVtuC
	kSsURTVI0XL++QIzXe8=; b=ZbRtpKNVrLZlATBeln8U+o1HVMJ1NJFODQD2g1Xt
	5zqmD26FEi7oT89X6dB/3Kf0XkkF6A8sXLJiy6k2cdCfTElYXz+CjMK5FIy3AQPe
	xpwFsAEbry2aIJz+ovYfTdhNnokCCupYZNrBBmfiE6N5iXxEnaecxqJfkBq7jA6g
	atxv+7P2SKJ+CThu9PnqyE+e14r5zyxB6+fChJWyb7bmsbhO1nbIl9sdXtyQ92aF
	9NNtP7wU75FlG/y0oxLuqIE1sXvncry7ovuFrwD64sbYiUvq0bz1X2QeTCCuTyIj
	PQrXowySKFMO/mebdHFA3zvBB6060oQ2+M3ZZuPrtLkY+g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1772362768; x=1772967568; 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=tWvbzoSirp2+/mfj208EVtuCkSsURTVI0XL++QIzXe8=;
        b=Qg0SasUz6gZf4s5euvPZwSPcATKKIMaNscPyHYwyWkBXUO4DNtvlrBqdbtygHVc1yP
         zLcAnypjfrHTgWInQYPh9LlMWGAjdq5PTAt7FRTJ51G6M0DWrb7Vl1ilTs7bfBl4TdsF
         Us3WgFRfHh6fxTwlvlfr2Bgm19Q+SVHrXduE5khIkNr/JSOvrdWt08m00jFjTkiw9Tqz
         seTpcR3ZYBMObNMap8E6xDjywP6pfopQEkDHxgB+l2aI4ZiAu+HIhJfHlR3BmjmnNrAW
         IcFU79RXY7XKzOICTqP6H12YCRYDYwvdjHYZdjnOtwOzHl/rykbTqRyiAA1zbtcU3/kP
         QFKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772362768; x=1772967568;
        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=tWvbzoSirp2+/mfj208EVtuCkSsURTVI0XL++QIzXe8=;
        b=FP8eV5TnvZrtFGlu8ZvS+qFFsKSzM7COXkzqNzj6Mpr3HzyTEVy30eH/idv+WCUW1a
         X2jDzOif8P+tkQxFQYUV+oK6GYc5gOq5fkcWzFhvG8W1nJS0ZeBLJi7SpuBsSih3euY1
         4+dfxPnzI41uacGulN24RIhmL4zOmmY6ZfziIu9nr/lxcKCH3P3WjqMR0lg2U2cCxpFO
         AI6x2fXBOwN1O2QCT1a1muEb60ftET47trYp7A+Yaz1HiOdpt1iUZVlXH289lp6PRWTV
         fU8s/i113kjKJN6QXDsItWvoikwGk7taFA0MFg7oSOxgDkYZ0Za+KKdJOMPJybxscM9r
         9enQ==
X-Forwarded-Encrypted: i=1; AJvYcCVm/N++qBxd20APkQhMJR3vDnRbr53Yj2D8pph6aQsBB9f2xOhTZkmJ53eDGdgLHyqA5i9Uz4X3yGM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwvRWBXh/qbu//ZjtFR6U8fpx3FhAOifKnoauouDEDLljSRfa7b
	MbeLhAVj2zrSIWh4/odlAjkAzVHx9R0gGpDFRLTfhOT4NyNbcG9cC7fcB/8DnhPqlQ6yfHwyiKY
	yoOM7ml6kOkh8XMtT9xgjLhJX975IwAjsKm/BDe0PP2SkANMC9Azy5to/5B79yoPPPkZTWA==
X-Gm-Gg: ATEYQzxTSUdWTcLCfZg5/J1E/332WlDUIr4Hx5r1lmA2aZv456f6b9OewVMwXgy7dCq
	XP5Q13umuR2MMMYr3YOQ5phGzOpWhBq7Ww3QOmFxuiwLfYLv/zhE6eq1uGbwGFFkNqVVYkSS7Ix
	mZPLrxUAb/8P8b79UHbinaHIt8EuQXgrXEGZFezQja/H8+PI9ZWHnuKdK4ExNW/xw3f4+j49gFF
	XfX6A9VfTQnVyizRw7zwlW7KVUyMLQ+EUzfjnQ22ficO4tRQxNBNBs+Uf9dk++eeZ4KRSiMxX8J
	FjuuVdhrUP43dgKhsfThqL2vhA6GkdqyOjlXAshrEhUBn8XvIJ8fbVh0pJSz1THUzFoqvSesNMA
	aDdxNUY4IXms0+75F/M1VkFiSjGFTDtthGMD9SqDxQp7N/iyYkcabDtOBKj+mCoWi8/yp84B4Su
	PPHKA1Qgpns1+i2MuPFy7+eSTT7tJM/tCW0hI=
X-Received: by 2002:a05:620a:3949:b0:8c7:1b3f:7d0c with SMTP id af79cd13be357-8cbc8e55216mr1090398185a.16.1772362767988;
        Sun, 01 Mar 2026 02:59:27 -0800 (PST)
X-Received: by 2002:a05:620a:3949:b0:8c7:1b3f:7d0c with SMTP id af79cd13be357-8cbc8e55216mr1090393285a.16.1772362767407;
        Sun, 01 Mar 2026 02:59:27 -0800 (PST)
Date: Sun, 1 Mar 2026 12:59:23 +0200
From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Cc: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>, Rob Herring <robh@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Subject: Re: [PATCH v9 2/3] of: factor arguments passed to of_map_id() into a
 struct
Message-ID: <bo5kb53hrzvl6e5mctvnpqluobdgbpq4x3m5ca7mwtfnl53npw@7axqsph2vyqd>
References: <20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com>
 <20260301-parse_iommu_cells-v9-2-4d1bceecc5e1@oss.qualcomm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260301-parse_iommu_cells-v9-2-4d1bceecc5e1@oss.qualcomm.com>
X-Proofpoint-ORIG-GUID: AqYHgkeaIFy1I0tZBoVWJRpFOlKOp3bZ
X-Authority-Analysis: v=2.4 cv=JoL8bc4C c=1 sm=1 tr=0 ts=69a41c10 cx=c_pps
 a=HLyN3IcIa5EE8TELMZ618Q==:117 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10
 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8
 a=VwQbUJbxAAAA:8 a=Dq95N7oyZucg39lo86YA:9 a=CjuIK1q_8ugA:10
 a=bTQJ7kPSJx9SKPbeHEYW:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzAxMDA5OSBTYWx0ZWRfX1CMnxWNYOxdD
 61g6NC0A7ONFCP2KoLCXBasSdyGsWn2PEmAClqHws9s6HMAWfsMIxkduQW9XJeBoR5CkEOnmdEN
 G5Nresuh53mjd6vOAmUOWaJ3WUk6ugqUSESgZCPVzHApp7Bnzx85A2T7HU5VUf6RI5kFL/jkXn6
 Zw5bmr/Kxoen1EHiaGi3lrFGKB8uI/rDWyF5Rbwom3jx8BOsp8OuUxAf/KnoLurB+kLBUyq31x8
 uvL2igXJ5M/ZMYJN/ZgjcOROiXQddg4adFPi9uHzEb+JxgR0mN2O4v9CfpPB/e6oqAr4ttx0mI1
 WqDDUIJraNU3tdJBlWj3nysErGN9e1WgDrb9vEpvbxzC/I1Lw5XjvxfLhPkiB3C1I8iinT5tTyy
 mR7Gt1tZf0TI3VyC0q2tCLtbzeUN+yzmM+rFlUbNQXfi4zWHdusdZQmNjLxt7+wzvUqdFnp83+y
 Q6FkkJzV47vT8jFEMMw==
X-Proofpoint-GUID: AqYHgkeaIFy1I0tZBoVWJRpFOlKOp3bZ
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-01_01,2026-02-27_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 lowpriorityscore=0 suspectscore=0 malwarescore=0 priorityscore=1501
 adultscore=0 bulkscore=0 clxscore=1015 impostorscore=0 spamscore=0
 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000
 definitions=main-2603010099

On Sun, Mar 01, 2026 at 02:04:20PM +0530, Vijayanand Jitta wrote:
> From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> 
> Change of_map_id() to take a pointer to struct of_phandle_args
> instead of passing target device node and translated IDs separately.
> Update all callers accordingly.
> 
> Subsequent patch will make use of the args_count field in
> struct of_phandle_args.
> 
> Suggested-by: Rob Herring (Arm) <robh@kernel.org>
> Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
> ---
>  drivers/iommu/of_iommu.c              |  2 +-
>  drivers/of/base.c                     | 37 +++++++++++++++++------------------
>  drivers/pci/controller/dwc/pci-imx6.c |  8 +++++++-
>  drivers/pci/controller/pcie-apple.c   |  4 +++-
>  drivers/xen/grant-dma-ops.c           |  2 +-
>  include/linux/of.h                    | 21 +++++++++++++-------
>  6 files changed, 44 insertions(+), 30 deletions(-)
> 
> diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
> index a0937b7b3c4d..e1d4b37d200d 100644
> --- a/drivers/pci/controller/pcie-apple.c
> +++ b/drivers/pci/controller/pcie-apple.c
> @@ -755,6 +755,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
>  {
>  	u32 sid, rid = pci_dev_id(pdev);
>  	struct apple_pcie_port *port;
> +	struct of_phandle_args iommu_spec = { .args_count = 1 };

Hmm, I didn't notice this. Parsing functions are expected to ignore
of_phandle_args before the parsing. So passing .args_count = 1 is
strange.

>  	int idx, err;
>  
>  	port = apple_pcie_get_port(pdev);

-- 
With best wishes
Dmitry


From xen-devel-bounces@lists.xenproject.org Sun Mar 01 11:43:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 01 Mar 2026 11:43:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243834.1543410 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwfCL-00047u-22; Sun, 01 Mar 2026 11:42:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243834.1543410; Sun, 01 Mar 2026 11:42:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwfCK-00047n-VZ; Sun, 01 Mar 2026 11:42:56 +0000
Received: by outflank-mailman (input) for mailman id 1243834;
 Sun, 01 Mar 2026 11:42:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=1Kch=BB=kernel.org=maz@srs-se1.protection.inumbo.net>)
 id 1vwfCK-00047O-C7
 for xen-devel@lists.xenproject.org; Sun, 01 Mar 2026 11:42:56 +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 c7cb559a-1563-11f1-b164-2bf370ae4941;
 Sun, 01 Mar 2026 12:42:53 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 8E195409F6;
 Sun,  1 Mar 2026 11:42:51 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 113CAC116C6;
 Sun,  1 Mar 2026 11:42:51 +0000 (UTC)
Received: from sofa.misterjones.org ([185.219.108.64]
 helo=goblin-girl.misterjones.org)
 by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2)
 (envelope-from <maz@kernel.org>) id 1vwfCC-0000000EvkI-1rlx;
 Sun, 01 Mar 2026 11:42: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: c7cb559a-1563-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1772365371;
	bh=pnG7tvFrtdyv3WXvEJzx29lT5AfLh/MG9mcbrHMAO58=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=lyYXU+m2KtoMlQCaYHSTGYS7k3vPg+urdvgKLLe+VN1j5otDmcgzfqS+iLGDgFJzX
	 jCm7hWoMDFKF2Tln9kI+qBdbepd8+KQENY3/NjjjFYTz+YGvjuP7e4k7wNe3Uk2Zgu
	 Jr0bPBy+UyNWcQvmQCXzz+KPPnayGZHysd8y7IcOOuHF81+roKEctBCQTqq0NnX+4d
	 fClOtSBtYojZA6yE8Z6jdIfXQIEaNPa5QpjG5XK3H5qVbVu43by8JChZx1rOYHJHuw
	 r6L7w1bU0QM7Du1mb7FBQWrad28PDiwEwILS4hk/qRBD+Wu7VA1tNSGsNwyA07oYd8
	 XzD9ut4GML8xA==
Date: Sun, 01 Mar 2026 11:42:47 +0000
Message-ID: <86zf4r93ns.wl-maz@kernel.org>
From: Marc Zyngier <maz@kernel.org>
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>,	Nipun Gupta
 <nipun.gupta@amd.com>,	Nikhil Agarwal <nikhil.agarwal@amd.com>,	Joerg
 Roedel <joro@8bytes.org>,	Will Deacon <will@kernel.org>,	Robin Murphy
 <robin.murphy@arm.com>,	Lorenzo Pieralisi <lpieralisi@kernel.org>,	Thomas
 Gleixner <tglx@kernel.org>,	Rob Herring <robh@kernel.org>,	Saravana Kannan
 <saravanak@kernel.org>,	Richard Zhu <hongxing.zhu@nxp.com>,	Lucas Stach
 <l.stach@pengutronix.de>,	Krzysztof =?UTF-8?B?V2lsY3p5xYRza2k=?=
 <kwilczynski@kernel.org>,	Manivannan Sadhasivam <mani@kernel.org>,	Bjorn
 Helgaas <bhelgaas@google.com>,	Frank Li <Frank.Li@nxp.com>,	Sascha Hauer
 <s.hauer@pengutronix.de>,	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>,	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,	Oleksandr Tyshchenko
 <oleksandr_tyshchenko@epam.com>,	Konrad Dybcio
 <konrad.dybcio@oss.qualcomm.com>,	Bjorn Andersson
 <bjorn.andersson@oss.qualcomm.com>,	Conor Dooley <conor+dt@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,	Prakash Gupta
 <prakash.gupta@oss.qualcomm.com>,	Vikash Garodia
 <vikash.garodia@oss.qualcomm.com>,	linux-kernel@vger.kernel.org,
	iommu@lists.linux.dev,	linux-arm-kernel@lists.infradead.org,
	devicetree@vger.kernel.org,	linux-pci@vger.kernel.org,	imx@lists.linux.dev,
	xen-devel@lists.xenproject.org,	linux-arm-msm@vger.kernel.org,	Charan Teja
 Kalla <charan.kalla@oss.qualcomm.com>
Subject: Re: [PATCH v9 2/3] of: factor arguments passed to of_map_id() into a struct
In-Reply-To: <ehhnta6zvfua723llpb52hh3lwqdh4ttomzt7xqrmcjnsslbop@p4w3gjzxp4rn>
References: <20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com>
	<20260301-parse_iommu_cells-v9-2-4d1bceecc5e1@oss.qualcomm.com>
	<861pi3amuu.wl-maz@kernel.org>
	<ehhnta6zvfua723llpb52hh3lwqdh4ttomzt7xqrmcjnsslbop@p4w3gjzxp4rn>
User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue)
 FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.1
 (aarch64-unknown-linux-gnu) MULE/6.0 (HANACHIRUSATO)
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: text/plain; charset=US-ASCII
X-SA-Exim-Connect-IP: 185.219.108.64
X-SA-Exim-Rcpt-To: dmitry.baryshkov@oss.qualcomm.com, vijayanand.jitta@oss.qualcomm.com, nipun.gupta@amd.com, nikhil.agarwal@amd.com, joro@8bytes.org, will@kernel.org, robin.murphy@arm.com, lpieralisi@kernel.org, tglx@kernel.org, robh@kernel.org, saravanak@kernel.org, hongxing.zhu@nxp.com, l.stach@pengutronix.de, kwilczynski@kernel.org, mani@kernel.org, bhelgaas@google.com, Frank.Li@nxp.com, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, jgross@suse.com, sstabellini@kernel.org, oleksandr_tyshchenko@epam.com, konrad.dybcio@oss.qualcomm.com, bjorn.andersson@oss.qualcomm.com, conor+dt@kernel.org, krzk+dt@kernel.org, prakash.gupta@oss.qualcomm.com, vikash.garodia@oss.qualcomm.com, linux-kernel@vger.kernel.org, iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, imx@lists.linux.dev, xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org, charan.kalla@oss.qualcomm.com
X-SA-Exim-Mail-From: maz@kernel.org
X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false

On Sun, 01 Mar 2026 10:46:57 +0000,
Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> wrote:
> 
> On Sun, Mar 01, 2026 at 10:02:49AM +0000, Marc Zyngier wrote:
> > On Sun, 01 Mar 2026 08:34:20 +0000,
> > Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com> wrote:
> > > 
> > > From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> > > 
> > > Change of_map_id() to take a pointer to struct of_phandle_args
> > > instead of passing target device node and translated IDs separately.
> > > Update all callers accordingly.
> > > 
> > > Subsequent patch will make use of the args_count field in
> > > struct of_phandle_args.
> > > 
> > > Suggested-by: Rob Herring (Arm) <robh@kernel.org>
> > > Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> > > Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
> > > ---
> > >  drivers/iommu/of_iommu.c              |  2 +-
> > >  drivers/of/base.c                     | 37 +++++++++++++++++------------------
> > >  drivers/pci/controller/dwc/pci-imx6.c |  8 +++++++-
> > >  drivers/pci/controller/pcie-apple.c   |  4 +++-
> > >  drivers/xen/grant-dma-ops.c           |  2 +-
> > >  include/linux/of.h                    | 21 +++++++++++++-------
> > >  6 files changed, 44 insertions(+), 30 deletions(-)
> > > 
> > > diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
> > > index a511ecf21fcd..d255d0f58e8c 100644
> > > --- a/drivers/iommu/of_iommu.c
> > > +++ b/drivers/iommu/of_iommu.c
> > > @@ -48,7 +48,7 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
> > >  	struct of_phandle_args iommu_spec = { .args_count = 1 };
> > >  	int err;
> > >  
> > > -	err = of_map_iommu_id(master_np, *id, &iommu_spec.np, iommu_spec.args);
> > > +	err = of_map_iommu_id(master_np, *id, &iommu_spec);
> > >  	if (err)
> > >  		return err;
> > >  
> > > diff --git a/drivers/of/base.c b/drivers/of/base.c
> > > index 57420806c1a2..6c3628255908 100644
> > > --- a/drivers/of/base.c
> > > +++ b/drivers/of/base.c
> > > @@ -2102,8 +2102,11 @@ int of_find_last_cache_level(unsigned int cpu)
> > >   * @id: device ID to map.
> > >   * @map_name: property name of the map to use.
> > >   * @map_mask_name: optional property name of the mask to use.
> > > - * @target: optional pointer to a target device node.
> > > - * @id_out: optional pointer to receive the translated ID.
> > > + * @arg: of_phandle_args structure,
> > > + *	which includes:
> > > + *	np: pointer to the target device node
> > > + *	args_count: number of arguments
> > 
> > Number of arguments *to what*? Isn't that the size of args[] instead?
> 
> It is a number of values corresponding to the phandle in the DT
> property.

No. It is what the *caller* expects. Not what is is in the DT, which
could be (and generally is) a pile of random crap. If the two don't
match, return an error. But don't randomly overwrite data that is not
yours.

[...]

> It might be not obvious here for iommu-maps, but the struct is
> idiomatic in OF world. Let me quote a (trimmed) example from
> qcom/sm8650.dtsi (for a different property, but it explains the meaning
> of the values here):
> 
> gem_noc: interconnect@24100000 {
> 	#interconnect-cells = <2>;
> };
> 
> epss_l3: interconnect@17d90000 {
> 	#interconnect-cells = <1>;
> };
> 
> interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
> 		 &gem_noc SLAVE_LLCC QCOM_ICC_TAG_ACTIVE_ONLY>,
> 		<&epss_l3 MASTER_EPSS_L3_APPS
> 		 &epss_l3 SLAVE_EPSS_L3_SHARED>;
> /* I skipped the second pair, it adds nothing here */
> 
> Here the parsing function for this property (of_icc_get_by_index()) will
> call of_parse_phandle_with_args() 4 times and it expects to return the
> following values in the of_phandle_args:
> 
> 1. { .np = gem_noc, .args_count = 2, .args = [MASTER_APPSS_PROC,
>                                               QCOM_ICC_TAG_ACTIVE_ONLY] }
> 2. { .np = gem_noc, .args_count = 2, .args = [SLAVE_LLCC,
>                                               QCOM_ICC_TAG_ACTIVE_ONLY] }
> 3. { .np = epss_l3, .args_count = 1, .args = [MASTER_EPSS_L3_APPS] }
> 4. { .np = epss_l3, .args_count = 1, .args = [SLAVE_EPSS_L3_SHARED] }
> 
> The whole of_phandle_args is then typically passed to the corresponding
> xlate function, specific to the paricular .np ('provider'), which will
> use #args_count values from the #args array to return the object from
> the provider.
> 
> Now let's see iommu-maps (again, qcom/sm8650.dtsi):
> 
> apps_smmu: iommu@15000000 {
> 	#iommu-cells = <2>;
> };
> 
> iommu-map = <0     &apps_smmu 0x1400 0x1>,
> 	    <0x100 &apps_smmu 0x1401 0x1>;
> 
> The property matches current definition at [1], however this spec
> doesn't match the DT practice. It forces that the property should use 1
> cell for identifying the "object" in the IOMMU provider, even if the
> provider expects to use 2 cells (two args).
> 
> The correct property should look like:
> 
> iommu-map = <0     &apps_smmu 0x1400 0x0 0x1>,
> 	    <0x100 &apps_smmu 0x1401 0x0 0x1>;
> 
> [1] https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/pci/pci-iommu.yaml
> 
> > 
> > > + *	args[]: array to receive the translated ID(s).
> > >   *
> > >   * Given a device ID, look up the appropriate implementation-defined
> > >   * platform ID and/or the target device which receives transactions on that
> > > @@ -2117,21 +2120,21 @@ int of_find_last_cache_level(unsigned int cpu)
> > >   */
> > >  int of_map_id(const struct device_node *np, u32 id,
> > >  	       const char *map_name, const char *map_mask_name,
> > > -	       struct device_node **target, u32 *id_out)
> > > +	       struct of_phandle_args *arg)
> > >  {
> > >  	u32 map_mask, masked_id;
> > >  	int map_len;
> > >  	const __be32 *map = NULL;
> > >  
> > > -	if (!np || !map_name || (!target && !id_out))
> > > +	if (!np || !map_name || !arg)
> > >  		return -EINVAL;
> > >  
> > >  	map = of_get_property(np, map_name, &map_len);
> > >  	if (!map) {
> > > -		if (target)
> > > +		if (arg->np)
> > >  			return -ENODEV;
> > >  		/* Otherwise, no map implies no translation */
> > > -		*id_out = id;
> > > +		arg->args[0] = id;
> > 
> > What if args_count is 0? Given that you place no restriction on the
> > way this can be called, that'd be entirely legitimate, and you'd
> > corrupt something you're not supposed to touch.
> 
> args is an array (not a pointer) in of_phandle_args. As such we know
> that args[0] is legit.

Again, no. The caller is telling you what it expects. This is strictly
equivalent to:

	void func(void *blah[], int sz);

func() is not supposed to look beyond sz. As it stands, this change in
not acceptable.

	M.

-- 
Without deviation from the norm, progress is not possible.


From xen-devel-bounces@lists.xenproject.org Sun Mar 01 11:45:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 01 Mar 2026 11:45:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243841.1543422 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwfEd-0004cv-EV; Sun, 01 Mar 2026 11:45:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243841.1543422; Sun, 01 Mar 2026 11:45:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwfEd-0004cn-AG; Sun, 01 Mar 2026 11:45:19 +0000
Received: by outflank-mailman (input) for mailman id 1243841;
 Sun, 01 Mar 2026 11: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=1Kch=BB=kernel.org=maz@srs-se1.protection.inumbo.net>)
 id 1vwfEc-0004ch-3h
 for xen-devel@lists.xenproject.org; Sun, 01 Mar 2026 11:45: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 1d49f44d-1564-11f1-b164-2bf370ae4941;
 Sun, 01 Mar 2026 12:45: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 5687343D62;
 Sun,  1 Mar 2026 11:45:15 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1B912C2BCB2;
 Sun,  1 Mar 2026 11:45:15 +0000 (UTC)
Received: from sofa.misterjones.org ([185.219.108.64]
 helo=goblin-girl.misterjones.org)
 by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2)
 (envelope-from <maz@kernel.org>) id 1vwfEW-0000000Evlq-39lc;
 Sun, 01 Mar 2026 11:45: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: 1d49f44d-1564-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1772365515;
	bh=HO8YivHWw2NmKZjyR/AaPuMHAlumMfbukAjMxjZL6Ow=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=pyVYHmTD0THNl+QW/OMlfXylHjgGxR6zOTKcWckHv/fbwcSv/a4MGsrLSPLyTt/9c
	 m1omC4beoBiybHQqt2Onfs+8XhXwJAipyW8ze6mQXR8U8BreiItSVgmAr6NLj/ekkH
	 6fPIA4qi2F20OWSxjPIKmEBjsD8FUWhITpueJbN4ShldBizLAMPh9d4HopLuCX/Yef
	 N5YF+fLvKzeP3QZQyUcqz/8XWY/svr2zap2p4hEns8t0BcDxROrFhSdvL/pcZ6bAYB
	 oMjheTQk2V+OPqyY2/h9Po+cVyjg74hJYXwEfnN2A11MOkZAlxtC/n+7KwEhDK8gt8
	 KVA0jtHMBACAQ==
Date: Sun, 01 Mar 2026 11:45:12 +0000
Message-ID: <86y0kb93jr.wl-maz@kernel.org>
From: Marc Zyngier <maz@kernel.org>
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>,	Nipun Gupta
 <nipun.gupta@amd.com>,	Nikhil Agarwal <nikhil.agarwal@amd.com>,	Joerg
 Roedel <joro@8bytes.org>,	Will Deacon <will@kernel.org>,	Robin Murphy
 <robin.murphy@arm.com>,	Lorenzo Pieralisi <lpieralisi@kernel.org>,	Thomas
 Gleixner <tglx@kernel.org>,	Rob Herring <robh@kernel.org>,	Saravana Kannan
 <saravanak@kernel.org>,	Richard Zhu <hongxing.zhu@nxp.com>,	Lucas Stach
 <l.stach@pengutronix.de>,	Krzysztof =?UTF-8?B?V2lsY3p5xYRza2k=?=
 <kwilczynski@kernel.org>,	Manivannan Sadhasivam <mani@kernel.org>,	Bjorn
 Helgaas <bhelgaas@google.com>,	Frank Li <Frank.Li@nxp.com>,	Sascha Hauer
 <s.hauer@pengutronix.de>,	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>,	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,	Oleksandr Tyshchenko
 <oleksandr_tyshchenko@epam.com>,	Konrad Dybcio
 <konrad.dybcio@oss.qualcomm.com>,	Bjorn Andersson
 <bjorn.andersson@oss.qualcomm.com>,	Conor Dooley <conor+dt@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,	Prakash Gupta
 <prakash.gupta@oss.qualcomm.com>,	Vikash Garodia
 <vikash.garodia@oss.qualcomm.com>,	linux-kernel@vger.kernel.org,
	iommu@lists.linux.dev,	linux-arm-kernel@lists.infradead.org,
	devicetree@vger.kernel.org,	linux-pci@vger.kernel.org,	imx@lists.linux.dev,
	xen-devel@lists.xenproject.org,	linux-arm-msm@vger.kernel.org,	Charan Teja
 Kalla <charan.kalla@oss.qualcomm.com>
Subject: Re: [PATCH v9 2/3] of: factor arguments passed to of_map_id() into a struct
In-Reply-To: <bo5kb53hrzvl6e5mctvnpqluobdgbpq4x3m5ca7mwtfnl53npw@7axqsph2vyqd>
References: <20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com>
	<20260301-parse_iommu_cells-v9-2-4d1bceecc5e1@oss.qualcomm.com>
	<bo5kb53hrzvl6e5mctvnpqluobdgbpq4x3m5ca7mwtfnl53npw@7axqsph2vyqd>
User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue)
 FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.1
 (aarch64-unknown-linux-gnu) MULE/6.0 (HANACHIRUSATO)
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: text/plain; charset=US-ASCII
X-SA-Exim-Connect-IP: 185.219.108.64
X-SA-Exim-Rcpt-To: dmitry.baryshkov@oss.qualcomm.com, vijayanand.jitta@oss.qualcomm.com, nipun.gupta@amd.com, nikhil.agarwal@amd.com, joro@8bytes.org, will@kernel.org, robin.murphy@arm.com, lpieralisi@kernel.org, tglx@kernel.org, robh@kernel.org, saravanak@kernel.org, hongxing.zhu@nxp.com, l.stach@pengutronix.de, kwilczynski@kernel.org, mani@kernel.org, bhelgaas@google.com, Frank.Li@nxp.com, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, jgross@suse.com, sstabellini@kernel.org, oleksandr_tyshchenko@epam.com, konrad.dybcio@oss.qualcomm.com, bjorn.andersson@oss.qualcomm.com, conor+dt@kernel.org, krzk+dt@kernel.org, prakash.gupta@oss.qualcomm.com, vikash.garodia@oss.qualcomm.com, linux-kernel@vger.kernel.org, iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, imx@lists.linux.dev, xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org, charan.kalla@oss.qualcomm.com
X-SA-Exim-Mail-From: maz@kernel.org
X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false

On Sun, 01 Mar 2026 10:59:23 +0000,
Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> wrote:
> 
> On Sun, Mar 01, 2026 at 02:04:20PM +0530, Vijayanand Jitta wrote:
> > From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> > 
> > Change of_map_id() to take a pointer to struct of_phandle_args
> > instead of passing target device node and translated IDs separately.
> > Update all callers accordingly.
> > 
> > Subsequent patch will make use of the args_count field in
> > struct of_phandle_args.
> > 
> > Suggested-by: Rob Herring (Arm) <robh@kernel.org>
> > Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> > Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
> > ---
> >  drivers/iommu/of_iommu.c              |  2 +-
> >  drivers/of/base.c                     | 37 +++++++++++++++++------------------
> >  drivers/pci/controller/dwc/pci-imx6.c |  8 +++++++-
> >  drivers/pci/controller/pcie-apple.c   |  4 +++-
> >  drivers/xen/grant-dma-ops.c           |  2 +-
> >  include/linux/of.h                    | 21 +++++++++++++-------
> >  6 files changed, 44 insertions(+), 30 deletions(-)
> > 
> > diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
> > index a0937b7b3c4d..e1d4b37d200d 100644
> > --- a/drivers/pci/controller/pcie-apple.c
> > +++ b/drivers/pci/controller/pcie-apple.c
> > @@ -755,6 +755,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
> >  {
> >  	u32 sid, rid = pci_dev_id(pdev);
> >  	struct apple_pcie_port *port;
> > +	struct of_phandle_args iommu_spec = { .args_count = 1 };
> 
> Hmm, I didn't notice this. Parsing functions are expected to ignore
> of_phandle_args before the parsing. So passing .args_count = 1 is
> strange.

It isn't strange. It is a semantic requirement. It explicitly
indicates the boundary of what the driver is prepared to receive, just
like passing a single u32 * is perfectly clear.

Frankly, this patch makes an absolute mess of the current API.

	M.

-- 
Without deviation from the norm, progress is not possible.


From xen-devel-bounces@lists.xenproject.org Sun Mar 01 12:00:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 01 Mar 2026 12:00:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243856.1543430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwfTU-0007XT-Mh; Sun, 01 Mar 2026 12:00:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243856.1543430; Sun, 01 Mar 2026 12:00:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwfTU-0007XM-JT; Sun, 01 Mar 2026 12:00:40 +0000
Received: by outflank-mailman (input) for mailman id 1243856;
 Sun, 01 Mar 2026 12:00: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=kDVR=BB=oss.qualcomm.com=dmitry.baryshkov@srs-se1.protection.inumbo.net>)
 id 1vwfTT-0007XG-7j
 for xen-devel@lists.xenproject.org; Sun, 01 Mar 2026 12:00:39 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 422a1042-1566-11f1-b164-2bf370ae4941;
 Sun, 01 Mar 2026 13:00:37 +0100 (CET)
Received: from pps.filterd (m0279868.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 61SMU8QJ3616510
 for <xen-devel@lists.xenproject.org>; Sun, 1 Mar 2026 12:00:36 GMT
Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com
 [209.85.222.199])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cksg72jh8-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Sun, 01 Mar 2026 12:00:35 +0000 (GMT)
Received: by mail-qk1-f199.google.com with SMTP id
 af79cd13be357-8c70fadd9a3so4001143285a.0
 for <xen-devel@lists.xenproject.org>; Sun, 01 Mar 2026 04:00:35 -0800 (PST)
Received: from umbar.lan
 (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi.
 [2001:14ba:a073:af00:264b:feff:fe8b:be8a])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-5a115bd5a66sm1006367e87.34.2026.03.01.04.00.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 01 Mar 2026 04:00: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: 422a1042-1566-11f1-b164-2bf370ae4941
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=CHM6ea+T/SQTyKD6VE8gREYx
	tQS0AV0BBIY+fO3U/+Q=; b=WoP5ZbKpVdVKlkXv2aH+KEPi03kUWMTYBCJXM+o0
	bueM9nMs/bFFYl420otJKZY2dXshgOWxzxAFKqgZHYZv9Y+wfE00JUx9gc9JCh6y
	V+d7SqShjxe+e3A4/hPi/TSmO2SHHa3u4E4bpGSwPJrOw7mX9mMBDw/bmCKTBp/I
	txGW5FF5wCHDF770OacBskjkh+vvedtPD21saeukgigmMIxit4IgxQAnS+fsvhPs
	F+p68LXBy/X93NlrWUCnmXUMXNp8Iordm9wjkO/Ua6JnTSz5zG0EFCHsrsYlGufg
	Kw00/KOKaJQnpLM74TWrU6XkLJxwFn1k/m3ivgU4SjGccA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1772366435; x=1772971235; 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=CHM6ea+T/SQTyKD6VE8gREYxtQS0AV0BBIY+fO3U/+Q=;
        b=cgSJQYr+k+82bgGdMF4UCkz/hzNtYGcDGaQfve4Sm8O10z8Gjh3uwEoRJeoYv6Mc4h
         TK5HMYUDhj6ckhnS3JXeHdYt4UZC64ulhogI6vMTOyqJybZGfErNficnd2Nxcx3lefJX
         xG1JKJXrBGe0X9l0/JfE6wLdOkwXbNqMVgI4bv2ad7e3TtY04iWnpiDj3htwxJw63kc7
         8ryKYYcbKd64Q4+g0p5yicLwiljE2hA8nO0+YFuP0PnQbiNbmrVTx2ayCVQp5FSu0viJ
         ub9bKCRdOX9LkHE9oAOFblbSXtc3OjUQ5Zm7PCsPF/bN92tSzh9S3Rrj8G2reYHqviUj
         0LcQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772366435; x=1772971235;
        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=CHM6ea+T/SQTyKD6VE8gREYxtQS0AV0BBIY+fO3U/+Q=;
        b=c5bATWlC4xWj+0PwUTnR8QrsHO6y+24L1m4F0SRs5fKxytx8cSF/ZM46nTACxReQ9N
         PmbdskkDWm863T+qVOcsBAsCWNFKGPoAPjNZajdiUV/k3huxN2nA9xoqAsAtIGudbLSc
         j9Inmad4fB4fAw1bI/Plnb7vuIRL2Ct9VpLjkReTNxBJToER52xxUWT2RwvHOXbDNwX9
         FPxcCLHOKnn/wev0ukkYrjELetCzz/Xhms3DWpWk2O+NWzOhdoxuBULWNEZdAe9apu8f
         7pZPY5ACLqDyVJpmXrdkRQQe0Na3YTXXK4wGZXCjYbqedLwB7jItjG5RXpHXr76Qntmq
         Bt0Q==
X-Forwarded-Encrypted: i=1; AJvYcCVuw786dOZhhGDYTHSouIp/Ux+c+ggqyp+h/Pmz3zMmMlUS60Dvz0XvBTisnef7lly/4Uo7kUr6yFU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzDULQQxT+HdvHEiDbuAT1o2lE/LFkZ1jfNhri5Dkr3WKhAijeK
	wyDMHZWeS+fVAcM1HXyx9LhM1WdTmpHoni3D+gyM9zyYBXUcbn6tvqTqt3de9hgZ49dl/eBZp7R
	LGxhsWfpKjrm90oEph+m0HjOpiGA27x7iu+btPy76LBKzVs6/C3BdfHg+6PjOAs2vQ8d1ag==
X-Gm-Gg: ATEYQzy6M7kVN0LtFJBZwQVlIwMuoPQu1dhnwqLYto2EsyTBracF0+TKF2b5GKD0l/W
	A/aZHOK7CbekMWRDrdLmUouDSzSnRZyyarjvde3gmMoPy4MpGp8crdODLugzmSof4jDcyF0nbbj
	HEO6yqKuheJjr1rxjBSRfc9o417UHfUVE51btD8FTgcvQ/AdsQ8endiVVv2Oz4lyjZu4y8gRya/
	/pFJARNuzIj5eRPb+oIoQPLxA0OrtY6Q5jwFR6UH/StcxVtez/NEqRMKc2Xnt6lHVZylEWNN5qi
	3zlZo5Ena21oIS6ZgIYDoKLobimvSz0n6/tlq8hcXJx2YK/cmmc5kdKWV2WxACBX6PM5U0N6jFb
	AFmaYiMaFhUuUK2wPcOXgTDAnMfH+F3mgfqNoQiV4bB3bkb+t4NqX0hLPcdIOhhzsxoFEFbu/K0
	BAdvL2D+fkf6frUH/ngU/p7etB7v+1oTkXv2o=
X-Received: by 2002:a05:620a:198a:b0:8b2:7435:f5ef with SMTP id af79cd13be357-8cbc8e4f7a8mr1056040185a.41.1772366434884;
        Sun, 01 Mar 2026 04:00:34 -0800 (PST)
X-Received: by 2002:a05:620a:198a:b0:8b2:7435:f5ef with SMTP id af79cd13be357-8cbc8e4f7a8mr1056033185a.41.1772366434283;
        Sun, 01 Mar 2026 04:00:34 -0800 (PST)
Date: Sun, 1 Mar 2026 14:00:28 +0200
From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: Marc Zyngier <maz@kernel.org>
Cc: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>,
        Nipun Gupta <nipun.gupta@amd.com>,
        Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>, Rob Herring <robh@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Subject: Re: [PATCH v9 2/3] of: factor arguments passed to of_map_id() into a
 struct
Message-ID: <khlwmcip3dacnkdc55w37sxplcshfb3uahgfb3cjm4kpdlfi4y@fletnzhayazf>
References: <20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com>
 <20260301-parse_iommu_cells-v9-2-4d1bceecc5e1@oss.qualcomm.com>
 <861pi3amuu.wl-maz@kernel.org>
 <ehhnta6zvfua723llpb52hh3lwqdh4ttomzt7xqrmcjnsslbop@p4w3gjzxp4rn>
 <86zf4r93ns.wl-maz@kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <86zf4r93ns.wl-maz@kernel.org>
X-Proofpoint-ORIG-GUID: H51xz7HrqNA3PM1J_tRM-p4gZKWcB4fC
X-Proofpoint-GUID: H51xz7HrqNA3PM1J_tRM-p4gZKWcB4fC
X-Authority-Analysis: v=2.4 cv=FaA6BZ+6 c=1 sm=1 tr=0 ts=69a42a63 cx=c_pps
 a=HLyN3IcIa5EE8TELMZ618Q==:117 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10
 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=YG64nluAAAAA:20
 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=BCSTLeMbECCLQgZ0D0gA:9 a=CjuIK1q_8ugA:10
 a=bTQJ7kPSJx9SKPbeHEYW:22 a=bA3UWDv6hWIuX7UZL3qL:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzAxMDEwOCBTYWx0ZWRfX0pAeYKvU+Pfy
 tj392hXrG0VguXMbtV/3JLBIhJ1VxRWYrbUimoRtnUAWFv4ebQYhJIHZfYiA1X/2WIVlS5Gj+Gp
 SMgHtLaG1If3HT4FUu7K2KP9/EZWhtSQlKV4uGQg714o+FbnQxLVMAY+jkzppH8wBWLSiPurEN2
 kDwWU+i2gZ923ZNoIp4aWWo2qQH9zwsyN4V7e4BTw2d39/SLhkWgPpv5XNguP+rRBVOOrfA+O3u
 3Cw7kn2RRbvjpaC/tWQcoFi3GaQerQOiwz/JF9p0mMNFbBWArjXT4RuPLOMcQ8BR/LV2WZlgP/I
 HOR0KF0gBr/vaTbFuuzjBaOgJZ9VvO8/DZFOHjxi3l5f51GGG5bAIzTnLmnp4cdJAtWF8Zi1rfE
 9m9spBa6PX8Jzx6/yDxsgUM7I5yxL0c1I2coQdTWXp9APPj1sghSQeLlW781mjs+LgA4lfzgCFA
 2618DG6/DoCAH6F7/IA==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-01_01,2026-02-27_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 impostorscore=0 clxscore=1015 phishscore=0 lowpriorityscore=0
 priorityscore=1501 spamscore=0 bulkscore=0 adultscore=0 malwarescore=0
 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000
 definitions=main-2603010108

On Sun, Mar 01, 2026 at 11:42:47AM +0000, Marc Zyngier wrote:
> On Sun, 01 Mar 2026 10:46:57 +0000,
> Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> wrote:
> > 
> > On Sun, Mar 01, 2026 at 10:02:49AM +0000, Marc Zyngier wrote:
> > > On Sun, 01 Mar 2026 08:34:20 +0000,
> > > Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com> wrote:
> > > > 
> > > > From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> > > > 
> > > > Change of_map_id() to take a pointer to struct of_phandle_args
> > > > instead of passing target device node and translated IDs separately.
> > > > Update all callers accordingly.
> > > > 
> > > > Subsequent patch will make use of the args_count field in
> > > > struct of_phandle_args.
> > > > 
> > > > Suggested-by: Rob Herring (Arm) <robh@kernel.org>
> > > > Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> > > > Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
> > > > ---
> > > >  drivers/iommu/of_iommu.c              |  2 +-
> > > >  drivers/of/base.c                     | 37 +++++++++++++++++------------------
> > > >  drivers/pci/controller/dwc/pci-imx6.c |  8 +++++++-
> > > >  drivers/pci/controller/pcie-apple.c   |  4 +++-
> > > >  drivers/xen/grant-dma-ops.c           |  2 +-
> > > >  include/linux/of.h                    | 21 +++++++++++++-------
> > > >  6 files changed, 44 insertions(+), 30 deletions(-)
> > > > 
> > > > diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
> > > > index a511ecf21fcd..d255d0f58e8c 100644
> > > > --- a/drivers/iommu/of_iommu.c
> > > > +++ b/drivers/iommu/of_iommu.c
> > > > @@ -48,7 +48,7 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
> > > >  	struct of_phandle_args iommu_spec = { .args_count = 1 };
> > > >  	int err;
> > > >  
> > > > -	err = of_map_iommu_id(master_np, *id, &iommu_spec.np, iommu_spec.args);
> > > > +	err = of_map_iommu_id(master_np, *id, &iommu_spec);
> > > >  	if (err)
> > > >  		return err;
> > > >  
> > > > diff --git a/drivers/of/base.c b/drivers/of/base.c
> > > > index 57420806c1a2..6c3628255908 100644
> > > > --- a/drivers/of/base.c
> > > > +++ b/drivers/of/base.c
> > > > @@ -2102,8 +2102,11 @@ int of_find_last_cache_level(unsigned int cpu)
> > > >   * @id: device ID to map.
> > > >   * @map_name: property name of the map to use.
> > > >   * @map_mask_name: optional property name of the mask to use.
> > > > - * @target: optional pointer to a target device node.
> > > > - * @id_out: optional pointer to receive the translated ID.
> > > > + * @arg: of_phandle_args structure,
> > > > + *	which includes:
> > > > + *	np: pointer to the target device node
> > > > + *	args_count: number of arguments
> > > 
> > > Number of arguments *to what*? Isn't that the size of args[] instead?
> > 
> > It is a number of values corresponding to the phandle in the DT
> > property.
> 
> No. It is what the *caller* expects. Not what is is in the DT, which
> could be (and generally is) a pile of random crap.

Nice

> If the two don't
> match, return an error. But don't randomly overwrite data that is not
> yours.

Mark, no. The caller can't know how many cell arguments the provider
uses until:
- the provider handle is parsed
- provider node is consulted for the #foo-cells

It is not a number of arguments for the _caller_. It is how many u32
values are used by the _provider_.

In case of IOMMUs, enough IOMMU devices have #iommu-cells = <2>, which
means that it uses two u32 values to identify the SID or set of SIDs.

Following your analogy, if we force 1 cell in the iommu-map property, we
are trying to force the function which expects to take two arguments to
accept just one. But it's not the caller, it's the IOMMU's xlate
function.


> 
> [...]
> 
> > It might be not obvious here for iommu-maps, but the struct is
> > idiomatic in OF world. Let me quote a (trimmed) example from
> > qcom/sm8650.dtsi (for a different property, but it explains the meaning
> > of the values here):
> > 
> > gem_noc: interconnect@24100000 {
> > 	#interconnect-cells = <2>;
> > };
> > 
> > epss_l3: interconnect@17d90000 {
> > 	#interconnect-cells = <1>;
> > };
> > 
> > interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
> > 		 &gem_noc SLAVE_LLCC QCOM_ICC_TAG_ACTIVE_ONLY>,
> > 		<&epss_l3 MASTER_EPSS_L3_APPS
> > 		 &epss_l3 SLAVE_EPSS_L3_SHARED>;
> > /* I skipped the second pair, it adds nothing here */
> > 
> > Here the parsing function for this property (of_icc_get_by_index()) will
> > call of_parse_phandle_with_args() 4 times and it expects to return the
> > following values in the of_phandle_args:
> > 
> > 1. { .np = gem_noc, .args_count = 2, .args = [MASTER_APPSS_PROC,
> >                                               QCOM_ICC_TAG_ACTIVE_ONLY] }
> > 2. { .np = gem_noc, .args_count = 2, .args = [SLAVE_LLCC,
> >                                               QCOM_ICC_TAG_ACTIVE_ONLY] }
> > 3. { .np = epss_l3, .args_count = 1, .args = [MASTER_EPSS_L3_APPS] }
> > 4. { .np = epss_l3, .args_count = 1, .args = [SLAVE_EPSS_L3_SHARED] }
> > 
> > The whole of_phandle_args is then typically passed to the corresponding
> > xlate function, specific to the paricular .np ('provider'), which will
> > use #args_count values from the #args array to return the object from
> > the provider.
> > 
> > Now let's see iommu-maps (again, qcom/sm8650.dtsi):
> > 
> > apps_smmu: iommu@15000000 {
> > 	#iommu-cells = <2>;
> > };
> > 
> > iommu-map = <0     &apps_smmu 0x1400 0x1>,
> > 	    <0x100 &apps_smmu 0x1401 0x1>;
> > 
> > The property matches current definition at [1], however this spec
> > doesn't match the DT practice. It forces that the property should use 1
> > cell for identifying the "object" in the IOMMU provider, even if the
> > provider expects to use 2 cells (two args).
> > 
> > The correct property should look like:
> > 
> > iommu-map = <0     &apps_smmu 0x1400 0x0 0x1>,
> > 	    <0x100 &apps_smmu 0x1401 0x0 0x1>;
> > 
> > [1] https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/pci/pci-iommu.yaml
> > 
> > > 
> > > > + *	args[]: array to receive the translated ID(s).
> > > >   *
> > > >   * Given a device ID, look up the appropriate implementation-defined
> > > >   * platform ID and/or the target device which receives transactions on that
> > > > @@ -2117,21 +2120,21 @@ int of_find_last_cache_level(unsigned int cpu)
> > > >   */
> > > >  int of_map_id(const struct device_node *np, u32 id,
> > > >  	       const char *map_name, const char *map_mask_name,
> > > > -	       struct device_node **target, u32 *id_out)
> > > > +	       struct of_phandle_args *arg)
> > > >  {
> > > >  	u32 map_mask, masked_id;
> > > >  	int map_len;
> > > >  	const __be32 *map = NULL;
> > > >  
> > > > -	if (!np || !map_name || (!target && !id_out))
> > > > +	if (!np || !map_name || !arg)
> > > >  		return -EINVAL;
> > > >  
> > > >  	map = of_get_property(np, map_name, &map_len);
> > > >  	if (!map) {
> > > > -		if (target)
> > > > +		if (arg->np)
> > > >  			return -ENODEV;
> > > >  		/* Otherwise, no map implies no translation */
> > > > -		*id_out = id;
> > > > +		arg->args[0] = id;
> > > 
> > > What if args_count is 0? Given that you place no restriction on the
> > > way this can be called, that'd be entirely legitimate, and you'd
> > > corrupt something you're not supposed to touch.
> > 
> > args is an array (not a pointer) in of_phandle_args. As such we know
> > that args[0] is legit.
> 
> Again, no. The caller is telling you what it expects. This is strictly
> equivalent to:
> 
> 	void func(void *blah[], int sz);
> 
> func() is not supposed to look beyond sz. As it stands, this change in
> not acceptable.

DT parsing functions follow a different approach, because of the "random
crap". It is:

    int parse(void *phandle, u32 **args, int *sz);

So, if the caller insists that it can handle only one argument, it
should call parse(), then check that (sz == 1) and return -EINVAL
otherwise (kfreeing *args and of_node_puting phandle while it does so).

I will quote of_phandle_args here:

struct of_phandle_args {
        struct device_node *np;
        int args_count;
        uint32_t args[MAX_PHANDLE_ARGS];
};


Please take a look at how of_parse_phandle_with_args() works.

-- 
With best wishes
Dmitry


From xen-devel-bounces@lists.xenproject.org Sun Mar 01 15:04:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 01 Mar 2026 15:04:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243903.1543442 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwiLQ-0003VP-1f; Sun, 01 Mar 2026 15:04:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243903.1543442; Sun, 01 Mar 2026 15:04:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwiLP-0003VI-Tc; Sun, 01 Mar 2026 15:04:31 +0000
Received: by outflank-mailman (input) for mailman id 1243903;
 Sun, 01 Mar 2026 15:04:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5Sm6=BB=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vwiLO-0003VC-1t
 for xen-devel@lists.xenproject.org; Sun, 01 Mar 2026 15:04:30 +0000
Received: from fhigh-a1-smtp.messagingengine.com
 (fhigh-a1-smtp.messagingengine.com [103.168.172.152])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ee1dcc03-157f-11f1-9ccf-f158ae23cfc8;
 Sun, 01 Mar 2026 16:04:23 +0100 (CET)
Received: from phl-compute-11.internal (phl-compute-11.internal [10.202.2.51])
 by mailfhigh.phl.internal (Postfix) with ESMTP id EF5351400041;
 Sun,  1 Mar 2026 10:04:21 -0500 (EST)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-11.internal (MEProxy); Sun, 01 Mar 2026 10:04:21 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun,
 1 Mar 2026 10:04:20 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ee1dcc03-157f-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:message-id:mime-version:reply-to
	:subject:subject:to:to; s=fm3; t=1772377461; x=1772463861; bh=WE
	DyKPtzrdTYeQrs6sXaKHMHgxci7AQYZmlLMmwrR0c=; b=MOZckj4blRe6GpBJ9K
	mrFLHjWzhvxV6IfWrMeYsZv94I73ac4DisWR9mr4KIfWY6qe9MruhZm5BfVk8DlI
	qrGswbo6ttGYzCIYr8HJWwjj5a0XfLruQebDPGlt1JmAaLnDpu30jYeaoxzbASyz
	gpCPiho2r9CAO+QI4recP3De4mNH3V1/fg7Y3w+hORWaohNdrYQW0DfCMwENkaJN
	lqJXhPmfV7focWMPJ1MMtyw2BPU2CyAg16i+IrlNwHqRo4zB0VEstzZT88MnvUBt
	Imz8PHxQY8c8SUtSc3EfiNLlhLPeM+QJ8KlvB64JDeJSq62PpUycsdv7s0DdvuQ5
	tehA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:message-id
	:mime-version:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1772377461; x=
	1772463861; bh=WEDyKPtzrdTYeQrs6sXaKHMHgxci7AQYZmlLMmwrR0c=; b=f
	kG6+E2VoodApJN/EJ8l7DI2H1dhuidCPTWV00X9B2K4adlBSduICjvJOcD1U54mO
	JcZ1eZ6VsLEDOJinDsZihX1KIbUYIJbKzHeKbu0j0wUv+LN/gKnKObCzcW7HvXts
	wKp9SXyJ2Yp8mzUJSvFY4854RXzyJL+0rDc1Mw9szORGOpieneM4KiaZmZNGhvjX
	WlHn8xHK/IR4Yj9catvZYjrFPRfeF9xxwoHGlhuC0HEWlk5YDBPIr9Ms0osDBdkl
	z1KGPsEkTd+CvSAhv90h+MG6v9usy8QeSjqXj+tpzWx+HOOzSfnYinH+avlYPz9K
	/ozYPZPF1qroMkGmflHBw==
X-ME-Sender: <xms:dVWkaVSavsnQZ_j-wlgrwFiQ_4JmGQpT-CVbec0vx62H85R3UIOHtQ>
    <xme:dVWkaVoUbF0WOe7kFxHq_NvWe2LsaVj3toSF2DgCvr9dIt1rvcd2J9taUUfb53YsC
    ACO4bCWygZHVyF0CvNcQJmmXKew-msoJGijJjU90w1zFmxOWQ>
X-ME-Received: <xmr:dVWkaTIZWFP2IIbZUtYoFYZLZEN21UzFSmN_2VcqQnF9Y1mm77_1acX5_jL-AJ4yAtPxTDe7-4Q4uxRPjTLy1CLNJ0-zN2eTDQ0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvheehuddtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkgggtugesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcuofgr
    rhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvihhsih
    gslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhephfetuefhiefg
    tddtlefggffggeevhedtvdefffeugfeiieeiheefteefgefggeejnecuffhomhgrihhnpe
    hgihhthhhusgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgr
    ihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrd
    gtohhmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtphhtthho
    peigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtph
    htthhopehjghhrohhsshesshhushgvrdgtohhmpdhrtghpthhtohepsghorhhishdrohhs
    thhrohhvshhkhiesohhrrggtlhgvrdgtohhmpdhrtghpthhtoheprghkphhmsehlihhnuh
    igqdhfohhunhgurghtihhonhdrohhrghdprhgtphhtthhopegurghvihgusehkvghrnhgv
    lhdrohhrgh
X-ME-Proxy: <xmx:dVWkaYrQ3r5TykAOdBhm2g_PTgV9B1X0YM8dfrI0ADXEsG4owEQAnQ>
    <xmx:dVWkabyDiJTmON6uYuH-nBMykZcn2O2d0zlsU1iFzwhMkHRhwIy7qw>
    <xmx:dVWkacNYx2Gy-rkIsrojIhtXpAgsrjBuchuJdvwQS7B3pnSIsHrR_w>
    <xmx:dVWkaQ5Fnf_MKdEwIpntCQqGqiOrreCQSYjpbEmg6R8K1WN78wdOlg>
    <xmx:dVWkaVJaCnN2eY1Hxv6gpjYUVzieb1-jb0fjsSO0S4KE7CsHS-NJoFf8>
Feedback-ID: i1568416f:Fastmail
Date: Sun, 1 Mar 2026 16:04:17 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	David Hildenbrand <david@kernel.org>
Subject: Excluding init_on_free for pages for initial balloon down (Xen)
Message-ID: <aaRVcVmtv2UBD-GF@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="TuuO5D0SW37++uJS"
Content-Disposition: inline


--TuuO5D0SW37++uJS
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sun, 1 Mar 2026 16:04:17 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	David Hildenbrand <david@kernel.org>
Subject: Excluding init_on_free for pages for initial balloon down (Xen)

Hi,

Some time ago I made a change to disable scrubbing pages that are
ballooned out during system boot. I'll paste the whole commit message as
it's relevant here:

    197ecb3802c0 xen/balloon: add runtime control for scrubbing ballooned o=
ut pages

    Scrubbing pages on initial balloon down can take some time, especially
    in nested virtualization case (nested EPT is slow). When HVM/PVH guest =
is
    started with memory=3D significantly lower than maxmem=3D, all the extra
    pages will be scrubbed before returning to Xen. But since most of them
    weren't used at all at that point, Xen needs to populate them first
    (from populate-on-demand pool). In nested virt case (Xen inside KVM)
    this slows down the guest boot by 15-30s with just 1.5GB needed to be
    returned to Xen.
   =20
    Add runtime parameter to enable/disable it, to allow initially disabling
    scrubbing, then enable it back during boot (for example in initramfs).
    Such usage relies on assumption that a) most pages ballooned out during
    initial boot weren't used at all, and b) even if they were, very few
    secrets are in the guest at that time (before any serious userspace
    kicks in).
    Convert CONFIG_XEN_SCRUB_PAGES to CONFIG_XEN_SCRUB_PAGES_DEFAULT (also
    enabled by default), controlling default value for the new runtime
    switch.

Now, I face the same issue with init_on_free/init_on_alloc (not sure
which one applies here, probably the latter one), which several
distributions enable by default. The result is (see timestamps):

    [2026-02-24 01:12:55] [    7.485151] xen:balloon: Waiting for initial b=
allooning down having finished.
    [2026-02-24 01:14:14] [   86.581510] xen:balloon: Initial ballooning do=
wn finished.

But here the situation is a bit more complicated:
init_on_free/init_on_alloc applies to any pages, not just those for
balloon driver. I see two approaches to solve the issue:
1. Similar to xen_scrub_pages=3D, add a runtime switch for
   init_on_free/init_on_alloc, then force them off during boot, and
   re-enable early in initramfs.
2. Somehow adjust balloon driver to bypass init_on_alloc when ballooning
   a page out.

The first approach is likely easier to implement, but also has some
drawbacks: it may result in some kernel structures that are allocated
early to remain with garbage data in uninitialized places. While it may
not matter during early boot, such structures may survive for quite some
time, and maybe attacker can use them later on to exploit some other
bug. This wasn't really a concern with xen_scrub_pages, as those pages
were immediately ballooned out.

The second approach sounds architecturally better, and maybe
init_on_alloc could be always bypassed during balloon out? The balloon
driver can scrub the page on its own already (which is enabled by
default). That of course assumes the issue is only about init_on_alloc,
not init_on_free (or both) - which I haven't really confirmed yet...
If going this way, I see the balloon driver does basically
alloc_page(GFP_BALLOON), where GFP_BALLOON is:

    /* When ballooning out (allocating memory to return to Xen) we don't re=
ally
       want the kernel to try too hard since that can trigger the oom kille=
r. */
    #define GFP_BALLOON \
        (GFP_HIGHUSER | __GFP_NOWARN | __GFP_NORETRY | __GFP_NOMEMALLOC)

Would that be about adding some new flag here? Or maybe there is already
one for this purpose?

Any opinions?

PS issue tracked at https://github.com/QubesOS/qubes-issues/issues/10723

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

--TuuO5D0SW37++uJS
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmkVXEACgkQ24/THMrX
1ywhmgf/eZeGTjx6//+hTB2Qy9RqzuXOwOQ6AfyQquM85TNDY4pn/smySDi3d6PL
fHo5sweOijroW7tFUMeUQPO+7IewuVJo9OlE9wq09nM3J5KwiamrKDrgedaDuqP5
1Trg1sd4LV+qLNXvlHHZ49EuSoNzbz76ZBcHZQwqnGWF5L8Y9ruqQXPKpoi1MplN
5A2uOLr9QWYIrpYkMxl+8bMzlGWS+nhASDy4V/0R2ba5z6QzPS/4RMI/p65SalHI
ZfiER1PFuL+bIo+SWciATW+SJgC5XmmMXPW3NbTrKVyFW8+tcu3u31pvJKivC5qy
zvseR3nvv808lqmg/ErE6FXP7nRWWg==
=Uy3v
-----END PGP SIGNATURE-----

--TuuO5D0SW37++uJS--


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 06:37:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 06:37:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243968.1543451 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwwtd-0004eE-Ss; Mon, 02 Mar 2026 06:36:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243968.1543451; Mon, 02 Mar 2026 06: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 1vwwtd-0004e6-Nn; Mon, 02 Mar 2026 06:36:49 +0000
Received: by outflank-mailman (input) for mailman id 1243968;
 Mon, 02 Mar 2026 06:36:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=tIQT=BC=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vwwtc-0004e0-1O
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 06:36:48 +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 2b9a331f-1602-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Mar 2026 07:36:40 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b936505e7a0so2541266b.1
 for <xen-devel@lists.xenproject.org>; Sun, 01 Mar 2026 22:36:40 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b935ae93357sm432523066b.48.2026.03.01.22.36.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 01 Mar 2026 22:36:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2b9a331f-1602-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772433400; x=1773038200; 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=VFeJ+uog/nc+ErP+4beRmfPzDf5x5oIBCjw/2iilkvM=;
        b=gTXeXyGyTZvOJiYne9hZ078Icpmc8767kQeOwZ/E+zH7Oj3vgvpxPSISko7/qqio3L
         huOE6zdCd8Y0pMRUcIdZSI3bsr76TrKprG9FDvLhOObZHsMtV/CooV0vdaHEUAemrZwI
         g8FkfeUAqz8z4EQo8qKSt/zol2d6PMMeoufp8cflMe6cWnqvJEQRhcjYbspuJfwTe/CX
         6yYcsWadUv6bzEdGThE7u67yGWuic6m0wmIhsHB9iZlLbiH6BdZ9a8ExOit9SS3PYZIF
         KJOeoibbdM825APx+6kku+Ddom8ZmGSib9pOnQCIJIqyL8YPMjaTp+9wHnev9V40l1s5
         3V6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772433400; x=1773038200;
        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=VFeJ+uog/nc+ErP+4beRmfPzDf5x5oIBCjw/2iilkvM=;
        b=TH6+vTk8YF+KThDDEyR5CqLho7YWznJ5GUvSWXgHK21kkXHrKynCqHi/EkIPkZjtxF
         0ujnFzKlEKTvtLZykjAYIiIlFODOpyNmT8BVB4b3eU8Diju9HXplBxILPjS3DG4JxBNI
         o9w8/qQlGXs+9SDnZzgo1A40yUSeuJcgQ2Bcb5J4E59Dw9znGmmJv2v3y6L8IaU3qp14
         IPoZRjxW/yhcEOCHRp9DnQTOF59vYAzQpA5Zwo7v1xG2yZXFltRYvwvXpgtKmA/wG4jZ
         H1/zRPqUfYPywA3G0jvTJKh4kJ6DaWwg0hvYSTLlAQsTKeQBDaWofW0ocOtJ5vms//EH
         SbJQ==
X-Forwarded-Encrypted: i=1; AJvYcCVQTnOOOPjrXl0cjXSSd0d0uAuj7IvIyadT5SPRlF3kWGUDoxEbWgRIssOgV1ctOXJUbyHYYL050AE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyjqJDG7AVaPU6OBDSZrUQ3i5XgkigtlJW3t6gzbdM3NKcKsZrc
	rZbQHu0gbWVBRpDrIZbQX1zPDdRTJmVClEu7fKyziWcVFSe8CE/YK2hBddmlnabdZlyoecnZD8+
	0gRvZ
X-Gm-Gg: ATEYQzxAWCt5iebCQV5epe2Klgj3xZQF6ZXQab54FVNbQHKsi0xochjS8z2kj718BYN
	RADGlfzwmgcqBiS9cGz6K3eu3MMD/jjSxGEbFpcqsJvn7VprilLm52nVohhy0CCRs8GqjW1dn38
	fWUkN+djTujReVyLLhnMd6BHNgqyfHPfT0CwS4w2nItR5phR4AufLrbjs9X4dCsVv/IHw2rn9rd
	vtm1N8nvao8FwoScFDNLo/F0FaDijdGeAeVNCAm6Od9T+Yk+Hf7fhZqUHDTYgezJqIfvuDiOu0D
	TBQdnvTXOK0otLl+LGnibmKkRjZDGRrWhxbofWznnBKizJsaZU9m8OrlJan8JVmGFS3VTDVlADy
	rrmJ9uerNuOixOJWYKgopskrH7UdxoRq/Y3B6rcNrzGeqa0w7ulUq9NCzNwUOBCZNdijrbvDdkG
	WwLRgkyhpIi64JqeohoR3LYO6ZOW4NSc6BmK1Xr/edH35gmnvphEdbCB2I74MBSPN7OKndjN5Y1
	JiFyOG1CwrzzrxV2XBMNHQMIpIe56W4JeSqfgw1C/MJCmv0jxa/Pg==
X-Received: by 2002:a17:906:abc7:b0:b93:6360:9072 with SMTP id a640c23a62f3a-b936360a883mr727897966b.6.1772433399602;
        Sun, 01 Mar 2026 22:36:39 -0800 (PST)
Message-ID: <513e624f-35c1-4d43-ba3f-c96af613d400@suse.com>
Date: Mon, 2 Mar 2026 07:36:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Excluding init_on_free for pages for initial balloon down (Xen)
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel <xen-devel@lists.xenproject.org>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 David Hildenbrand <david@kernel.org>
References: <aaRVcVmtv2UBD-GF@mail-itl>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <aaRVcVmtv2UBD-GF@mail-itl>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------qOpJCOcuQxIXdDyr1Z4W58Du"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------qOpJCOcuQxIXdDyr1Z4W58Du
Content-Type: multipart/mixed; boundary="------------K1a5M0y8ZSsiDXJ2z5xwGIzT";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel <xen-devel@lists.xenproject.org>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 David Hildenbrand <david@kernel.org>
Message-ID: <513e624f-35c1-4d43-ba3f-c96af613d400@suse.com>
Subject: Re: Excluding init_on_free for pages for initial balloon down (Xen)
References: <aaRVcVmtv2UBD-GF@mail-itl>
In-Reply-To: <aaRVcVmtv2UBD-GF@mail-itl>

--------------K1a5M0y8ZSsiDXJ2z5xwGIzT
Content-Type: multipart/mixed; boundary="------------VJ240JE505tAHMm1IzpxKJeu"

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

T24gMDEuMDMuMjYgMTY6MDQsIE1hcmVrIE1hcmN6eWtvd3NraS1Hw7NyZWNraSB3cm90ZToN
Cj4gSGksDQo+IA0KPiBTb21lIHRpbWUgYWdvIEkgbWFkZSBhIGNoYW5nZSB0byBkaXNhYmxl
IHNjcnViYmluZyBwYWdlcyB0aGF0IGFyZQ0KPiBiYWxsb29uZWQgb3V0IGR1cmluZyBzeXN0
ZW0gYm9vdC4gSSdsbCBwYXN0ZSB0aGUgd2hvbGUgY29tbWl0IG1lc3NhZ2UgYXMNCj4gaXQn
cyByZWxldmFudCBoZXJlOg0KPiANCj4gICAgICAxOTdlY2IzODAyYzAgeGVuL2JhbGxvb246
IGFkZCBydW50aW1lIGNvbnRyb2wgZm9yIHNjcnViYmluZyBiYWxsb29uZWQgb3V0IHBhZ2Vz
DQo+IA0KPiAgICAgIFNjcnViYmluZyBwYWdlcyBvbiBpbml0aWFsIGJhbGxvb24gZG93biBj
YW4gdGFrZSBzb21lIHRpbWUsIGVzcGVjaWFsbHkNCj4gICAgICBpbiBuZXN0ZWQgdmlydHVh
bGl6YXRpb24gY2FzZSAobmVzdGVkIEVQVCBpcyBzbG93KS4gV2hlbiBIVk0vUFZIIGd1ZXN0
IGlzDQo+ICAgICAgc3RhcnRlZCB3aXRoIG1lbW9yeT0gc2lnbmlmaWNhbnRseSBsb3dlciB0
aGFuIG1heG1lbT0sIGFsbCB0aGUgZXh0cmENCj4gICAgICBwYWdlcyB3aWxsIGJlIHNjcnVi
YmVkIGJlZm9yZSByZXR1cm5pbmcgdG8gWGVuLiBCdXQgc2luY2UgbW9zdCBvZiB0aGVtDQo+
ICAgICAgd2VyZW4ndCB1c2VkIGF0IGFsbCBhdCB0aGF0IHBvaW50LCBYZW4gbmVlZHMgdG8g
cG9wdWxhdGUgdGhlbSBmaXJzdA0KPiAgICAgIChmcm9tIHBvcHVsYXRlLW9uLWRlbWFuZCBw
b29sKS4gSW4gbmVzdGVkIHZpcnQgY2FzZSAoWGVuIGluc2lkZSBLVk0pDQo+ICAgICAgdGhp
cyBzbG93cyBkb3duIHRoZSBndWVzdCBib290IGJ5IDE1LTMwcyB3aXRoIGp1c3QgMS41R0Ig
bmVlZGVkIHRvIGJlDQo+ICAgICAgcmV0dXJuZWQgdG8gWGVuLg0KPiAgICAgIA0KPiAgICAg
IEFkZCBydW50aW1lIHBhcmFtZXRlciB0byBlbmFibGUvZGlzYWJsZSBpdCwgdG8gYWxsb3cg
aW5pdGlhbGx5IGRpc2FibGluZw0KPiAgICAgIHNjcnViYmluZywgdGhlbiBlbmFibGUgaXQg
YmFjayBkdXJpbmcgYm9vdCAoZm9yIGV4YW1wbGUgaW4gaW5pdHJhbWZzKS4NCj4gICAgICBT
dWNoIHVzYWdlIHJlbGllcyBvbiBhc3N1bXB0aW9uIHRoYXQgYSkgbW9zdCBwYWdlcyBiYWxs
b29uZWQgb3V0IGR1cmluZw0KPiAgICAgIGluaXRpYWwgYm9vdCB3ZXJlbid0IHVzZWQgYXQg
YWxsLCBhbmQgYikgZXZlbiBpZiB0aGV5IHdlcmUsIHZlcnkgZmV3DQo+ICAgICAgc2VjcmV0
cyBhcmUgaW4gdGhlIGd1ZXN0IGF0IHRoYXQgdGltZSAoYmVmb3JlIGFueSBzZXJpb3VzIHVz
ZXJzcGFjZQ0KPiAgICAgIGtpY2tzIGluKS4NCj4gICAgICBDb252ZXJ0IENPTkZJR19YRU5f
U0NSVUJfUEFHRVMgdG8gQ09ORklHX1hFTl9TQ1JVQl9QQUdFU19ERUZBVUxUIChhbHNvDQo+
ICAgICAgZW5hYmxlZCBieSBkZWZhdWx0KSwgY29udHJvbGxpbmcgZGVmYXVsdCB2YWx1ZSBm
b3IgdGhlIG5ldyBydW50aW1lDQo+ICAgICAgc3dpdGNoLg0KPiANCj4gTm93LCBJIGZhY2Ug
dGhlIHNhbWUgaXNzdWUgd2l0aCBpbml0X29uX2ZyZWUvaW5pdF9vbl9hbGxvYyAobm90IHN1
cmUNCj4gd2hpY2ggb25lIGFwcGxpZXMgaGVyZSwgcHJvYmFibHkgdGhlIGxhdHRlciBvbmUp
LCB3aGljaCBzZXZlcmFsDQo+IGRpc3RyaWJ1dGlvbnMgZW5hYmxlIGJ5IGRlZmF1bHQuIFRo
ZSByZXN1bHQgaXMgKHNlZSB0aW1lc3RhbXBzKToNCj4gDQo+ICAgICAgWzIwMjYtMDItMjQg
MDE6MTI6NTVdIFsgICAgNy40ODUxNTFdIHhlbjpiYWxsb29uOiBXYWl0aW5nIGZvciBpbml0
aWFsIGJhbGxvb25pbmcgZG93biBoYXZpbmcgZmluaXNoZWQuDQo+ICAgICAgWzIwMjYtMDIt
MjQgMDE6MTQ6MTRdIFsgICA4Ni41ODE1MTBdIHhlbjpiYWxsb29uOiBJbml0aWFsIGJhbGxv
b25pbmcgZG93biBmaW5pc2hlZC4NCj4gDQo+IEJ1dCBoZXJlIHRoZSBzaXR1YXRpb24gaXMg
YSBiaXQgbW9yZSBjb21wbGljYXRlZDoNCj4gaW5pdF9vbl9mcmVlL2luaXRfb25fYWxsb2Mg
YXBwbGllcyB0byBhbnkgcGFnZXMsIG5vdCBqdXN0IHRob3NlIGZvcg0KPiBiYWxsb29uIGRy
aXZlci4gSSBzZWUgdHdvIGFwcHJvYWNoZXMgdG8gc29sdmUgdGhlIGlzc3VlOg0KPiAxLiBT
aW1pbGFyIHRvIHhlbl9zY3J1Yl9wYWdlcz0sIGFkZCBhIHJ1bnRpbWUgc3dpdGNoIGZvcg0K
PiAgICAgaW5pdF9vbl9mcmVlL2luaXRfb25fYWxsb2MsIHRoZW4gZm9yY2UgdGhlbSBvZmYg
ZHVyaW5nIGJvb3QsIGFuZA0KPiAgICAgcmUtZW5hYmxlIGVhcmx5IGluIGluaXRyYW1mcy4N
Cj4gMi4gU29tZWhvdyBhZGp1c3QgYmFsbG9vbiBkcml2ZXIgdG8gYnlwYXNzIGluaXRfb25f
YWxsb2Mgd2hlbiBiYWxsb29uaW5nDQo+ICAgICBhIHBhZ2Ugb3V0Lg0KPiANCj4gVGhlIGZp
cnN0IGFwcHJvYWNoIGlzIGxpa2VseSBlYXNpZXIgdG8gaW1wbGVtZW50LCBidXQgYWxzbyBo
YXMgc29tZQ0KPiBkcmF3YmFja3M6IGl0IG1heSByZXN1bHQgaW4gc29tZSBrZXJuZWwgc3Ry
dWN0dXJlcyB0aGF0IGFyZSBhbGxvY2F0ZWQNCj4gZWFybHkgdG8gcmVtYWluIHdpdGggZ2Fy
YmFnZSBkYXRhIGluIHVuaW5pdGlhbGl6ZWQgcGxhY2VzLiBXaGlsZSBpdCBtYXkNCj4gbm90
IG1hdHRlciBkdXJpbmcgZWFybHkgYm9vdCwgc3VjaCBzdHJ1Y3R1cmVzIG1heSBzdXJ2aXZl
IGZvciBxdWl0ZSBzb21lDQo+IHRpbWUsIGFuZCBtYXliZSBhdHRhY2tlciBjYW4gdXNlIHRo
ZW0gbGF0ZXIgb24gdG8gZXhwbG9pdCBzb21lIG90aGVyDQo+IGJ1Zy4gVGhpcyB3YXNuJ3Qg
cmVhbGx5IGEgY29uY2VybiB3aXRoIHhlbl9zY3J1Yl9wYWdlcywgYXMgdGhvc2UgcGFnZXMN
Cj4gd2VyZSBpbW1lZGlhdGVseSBiYWxsb29uZWQgb3V0Lg0KPiANCj4gVGhlIHNlY29uZCBh
cHByb2FjaCBzb3VuZHMgYXJjaGl0ZWN0dXJhbGx5IGJldHRlciwgYW5kIG1heWJlDQo+IGlu
aXRfb25fYWxsb2MgY291bGQgYmUgYWx3YXlzIGJ5cGFzc2VkIGR1cmluZyBiYWxsb29uIG91
dD8gVGhlIGJhbGxvb24NCj4gZHJpdmVyIGNhbiBzY3J1YiB0aGUgcGFnZSBvbiBpdHMgb3du
IGFscmVhZHkgKHdoaWNoIGlzIGVuYWJsZWQgYnkNCj4gZGVmYXVsdCkuIFRoYXQgb2YgY291
cnNlIGFzc3VtZXMgdGhlIGlzc3VlIGlzIG9ubHkgYWJvdXQgaW5pdF9vbl9hbGxvYywNCj4g
bm90IGluaXRfb25fZnJlZSAob3IgYm90aCkgLSB3aGljaCBJIGhhdmVuJ3QgcmVhbGx5IGNv
bmZpcm1lZCB5ZXQuLi4NCj4gSWYgZ29pbmcgdGhpcyB3YXksIEkgc2VlIHRoZSBiYWxsb29u
IGRyaXZlciBkb2VzIGJhc2ljYWxseQ0KPiBhbGxvY19wYWdlKEdGUF9CQUxMT09OKSwgd2hl
cmUgR0ZQX0JBTExPT04gaXM6DQo+IA0KPiAgICAgIC8qIFdoZW4gYmFsbG9vbmluZyBvdXQg
KGFsbG9jYXRpbmcgbWVtb3J5IHRvIHJldHVybiB0byBYZW4pIHdlIGRvbid0IHJlYWxseQ0K
PiAgICAgICAgIHdhbnQgdGhlIGtlcm5lbCB0byB0cnkgdG9vIGhhcmQgc2luY2UgdGhhdCBj
YW4gdHJpZ2dlciB0aGUgb29tIGtpbGxlci4gKi8NCj4gICAgICAjZGVmaW5lIEdGUF9CQUxM
T09OIFwNCj4gICAgICAgICAgKEdGUF9ISUdIVVNFUiB8IF9fR0ZQX05PV0FSTiB8IF9fR0ZQ
X05PUkVUUlkgfCBfX0dGUF9OT01FTUFMTE9DKQ0KPiANCj4gV291bGQgdGhhdCBiZSBhYm91
dCBhZGRpbmcgc29tZSBuZXcgZmxhZyBoZXJlPyBPciBtYXliZSB0aGVyZSBpcyBhbHJlYWR5
DQo+IG9uZSBmb3IgdGhpcyBwdXJwb3NlPw0KDQpUaGVyZSBkb2Vzbid0IHNlZW0gdG8gYmUg
YSBmbGFnIGZvciB0aGF0Lg0KDQpCdXQgSSB0aGluayBhZGRpbmcgYSBuZXcgZmxhZyBfX0dG
UF9OT19JTklUIGFuZCB0ZXN0aW5nIHRoYXQgaW4NCndhbnRfaW5pdF9vbl9hbGxvYygpIF9i
ZWZvcmVfIGNoZWNraW5nIENPTkZJR19JTklUX09OX0FMTE9DX0RFRkFVTFRfT04NCndvdWxk
IGJlIGEgc2Vuc2libGUgYXBwcm9hY2guDQoNCj4gQW55IG9waW5pb25zPw0KDQpZb3UgYXJl
IGF3YXJlIG9mIHRoZSAiaW5pdF9vbl9hbGxvYyIgYm9vdCBwYXJhbWV0ZXI/IFNvIGlmIHRo
aXMgaXMgZmluZQ0KZm9yIHlvdSwgeW91IGNvdWxkIGp1c3QgdXNlIGFwcHJvYWNoIDEgYWJv
dmUgd2l0aG91dCBhbnkga2VybmVsIHBhdGNoZXMNCm5lZWRlZC4NCg0KDQpKdWVyZ2VuDQo=

--------------VJ240JE505tAHMm1IzpxKJeu
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-----

--------------VJ240JE505tAHMm1IzpxKJeu--

--------------K1a5M0y8ZSsiDXJ2z5xwGIzT--

--------------qOpJCOcuQxIXdDyr1Z4W58Du
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/Ey8FAmmlL/YFAwAAAAAACgkQsN6d1ii/Ey81
qQf+PTMsI7Hq7JSUHhpmr/vwbm8btfqjtmwua2OO13bo7WqKkmuLDhXULaUgxZK+XYeFSKD+AcDM
COd+7jWlsXc2qAIZVI5G/T2eKS0ffRDeAogYTHIa4DtCkiNophXREE/vzVq1/BP+66StkE9FBC9U
JL0T/rjZtlsIgR1VmoGwp3BaRDnw/7/nNeth/LO1v42SrYZZqgusREzUpnrdS8qHM/84aAPc4cmI
Qe7KY0q50wjAufDu5UyolUsnIarLDtg6OExXUpMPGyyg8fLV8bXmHueaDgyomGwpz86PE2THkXDM
ldb/CetwNror1xjYQdVWQBc5zQGcKBqvcNFjqUyVyQ==
=4j19
-----END PGP SIGNATURE-----

--------------qOpJCOcuQxIXdDyr1Z4W58Du--


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 08:34:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 08:34:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243989.1543462 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwyiw-0002PX-3r; Mon, 02 Mar 2026 08:33:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243989.1543462; Mon, 02 Mar 2026 08:33:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwyiv-0002PQ-WE; Mon, 02 Mar 2026 08:33:54 +0000
Received: by outflank-mailman (input) for mailman id 1243989;
 Mon, 02 Mar 2026 08:33: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=xkMV=BC=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vwyiu-0002PF-H6
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 08:33:52 +0000
Received: from mail-ot1-x335.google.com (mail-ot1-x335.google.com
 [2607:f8b0:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 84d7210a-1612-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 09:33:42 +0100 (CET)
Received: by mail-ot1-x335.google.com with SMTP id
 46e09a7af769-7d598f4b6fdso937832a34.1
 for <xen-devel@lists.xenproject.org>; Mon, 02 Mar 2026 00:33: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: 84d7210a-1612-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1772440421; cv=none;
        d=google.com; s=arc-20240605;
        b=IGzZ8CKTkRroaLTcKSe5z7N46teAIoQhXY8Q1tC4AmVB6idYF5E26rjMRNzC8yLOW3
         v6gq10iudB9746fneQqS+a9+6NabPMCLolPCRalecIEKxFhwgC7nMyWuFLXFGUKZgw6w
         tiiA4F4KgkF5Ztq/EtcHa6aCsb1yWKek5goFGyiUTKIZKL3safc+DDTdY3E10X9Z5EUg
         FQDfom2aiCMtT0DTEamZb4Hj0c/xSPRy2PV0NRFzplZD4807mie3gkqDowf6LTAfS0vy
         lsA80FeImQ+StySOEAFOjqZhzDmDF0wyMNTR5Rq4i44XGZvSyXWopYnleIWkhvN4upAu
         fF8Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=UONVnuEsnDlLi6dga+MRvTcYSIUJ9EuC23412FVLdvc=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=Am1702s3E9WxxRxR0Y78H3fvbBhXMDyXFGZf77fia6fqg6WAjF+wM1JBN4i4QnZmB2
         2Pz6fRb9E5jzCYwfLI2BP0lfacm4LgaUIi4BWFKm0K2724BA+1M1Ga6k1g6bK6ju9sSM
         LZFfe+pOzG2/S6lwK2MCgpAmC4zJt5t44u2WjlZmIsOAR7BzOAg0bPYjeAbyo10X6+jV
         wZPpvn1ATXpU+SGGxPmZ9DPQ7Y9H8YYvYwiBCONmwm1pj6cvnEU8YiS87H8pKjzMQwY6
         gVlNg+K87xuMoj7fIEtinSQNu8JCEKwKlusmQf1+/HXaUAyGJBK4+paX7JRtVrJnI6S7
         o8OA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1772440421; x=1773045221; 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=UONVnuEsnDlLi6dga+MRvTcYSIUJ9EuC23412FVLdvc=;
        b=ATP4SJ0UPiiC0N2KCTKqbgUI+qORlPPAYwAsXTPGHfh99mWMG7/xycWTE5cu0mysUx
         SBdp/upDAeN+SYVoDvbrtvYF7/j3/8OgjRNG5YodcP/HGwMyIBVktg8CX9q3oi4R8YUk
         iZPg7udZxogg7Pu0kWrmrRvptpY4Q+nXJEAw67i7yjG27kZToQEAIyi1QL8hbdjk/uuc
         gSGN1YlOCx07dYYX2jsdqILM65Z95Pgb+Qqck8lV374KMglyjWwPr4KE9+gf0qRIVwO2
         rlfuQ8CL7xinYAcWN0ZtT6NACwcDBJ5gtVGtGM/wBl6Ij8BiTBRzb4x1xh1X/sJtYlZu
         lA7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772440421; x=1773045221;
        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=UONVnuEsnDlLi6dga+MRvTcYSIUJ9EuC23412FVLdvc=;
        b=DlVIfgrrdo6ThVDAay3c/QRJnkGp8SdW46peG12P4xy2K16nISK49bmscowIo5prXC
         YsMT6EFI3zdnwvNSHO6BMIqkaVBXv+HRM4lg/6NxfYdKa1ENpf8Pit/BJ28ynGwGVof8
         civHG9VSqYaA22bzElyyXMG3bIPbT4nFbutx8jQk2/Ie4qe38zy+T21kzoOqgul8aL+L
         KwghlUJpQklN+wvIYjsXgnjrVpUeb7UJYWOIr3OQxiNUhiKgBUK1ySAkZtT1Wmi5rTFW
         bv2i4DekAF48HMhfqKBI6XDXhZW9YCnwdrOgrIQBy9EyhqFhd7q6qPQRbKsQ9+bViILo
         xw+g==
X-Gm-Message-State: AOJu0YxkIR7BMHKpOZZO3BmtBHrxMvOh+F6hNzmclw24BA6UtCWRcdQf
	XsO5SKPietJtfDT+lq2Y5gG7RhPRNSrW47StZ4gRw1ym8n4ib+4Z8dnmnvtrLsGgRnGqMAsmYge
	RcCwzb2esn4scE7dguXXj6rhDvwKVhRngjsKGawcpfw==
X-Gm-Gg: ATEYQzyihKuD15GrHHfc0GCIrtLwyebamP1ZP3fKUa0YiiTGp49WmhvUTPRMsM/epkR
	zpuebkyauQpa1koOPKt1WB/jKWVbF7YlVIPgUYB+2d21m1VivqP+Z9capYPQ71Ay51r5aTWswMl
	XIr3WrIxA/7ESEk5a2h7F0vVBSOTCKSrM3XEPK2diy3GohTKohv9PvLrk0quMjP+iM3Dgm9spNm
	SzL076FLfFt/2/K9dHqQ9SQA0tnyiKJPEy79VhjMYlEtjQdK8rZRXkuUsV2ROk9L4n5AIUI5Z4i
	/laFxk1kIFDWwhd/rdwN1l2J6ACw8cnC/uduBQ==
X-Received: by 2002:a05:6830:380b:b0:7c7:55e3:9117 with SMTP id
 46e09a7af769-7d591bc1e3cmr7564349a34.22.1772440421101; Mon, 02 Mar 2026
 00:33:41 -0800 (PST)
MIME-Version: 1.0
References: <cover.1772013062.git.bertrand.marquis@arm.com> <826eae4c8346e79a227c8cf418cd5f42ee3420a1.1772013062.git.bertrand.marquis@arm.com>
In-Reply-To: <826eae4c8346e79a227c8cf418cd5f42ee3420a1.1772013062.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Mon, 2 Mar 2026 09:33:27 +0100
X-Gm-Features: AaiRm52sezAPYUFnC9jbgganbpPHAChpELXuYx8Z6l0QpwXx8DuJbaT50EKHJOw
Message-ID: <CAHUa44HRt5JqQcr-yNVmJwT7Ot=AoCfjqghh7+eDgujusiqhFQ@mail.gmail.com>
Subject: Re: [PATCH 1/4] xen/arm: ffa: Add start_index to VM partinfo helper
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Wed, Feb 25, 2026 at 11:02=E2=80=AFAM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Windowed GET_REGS retrieval needs to emit VM entries starting from an
> arbitrary index, but ffa_get_vm_partinfo() always starts from index 0.
>
> Add a start_index parameter to ffa_get_vm_partinfo() and skip entries
> until the local index reaches start_index. Update
> ffa_handle_partition_info_get() to pass start_index=3D0 to preserve
> existing behavior.
>
> No functional changes.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa_partinfo.c | 61 +++++++++++++++++++--------------
>  1 file changed, 35 insertions(+), 26 deletions(-)

Looks good:
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_parti=
nfo.c
> index fdb03dae9a0c..6a6f3ffb822e 100644
> --- a/xen/arch/arm/tee/ffa_partinfo.c
> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> @@ -167,14 +167,15 @@ out:
>      return ret;
>  }
>
> -static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t *vm_co=
unt,
> -                                   void **dst_buf, void *end_buf,
> -                                   uint32_t dst_size)
> +static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t start_=
index,
> +                                   uint32_t *vm_count, void **dst_buf,
> +                                   void *end_buf, uint32_t dst_size)
>  {
>      struct domain *d =3D current->domain;
>      struct ffa_ctx *curr_ctx =3D d->arch.tee;
>      struct ffa_ctx *dest_ctx;
>      uint32_t count =3D 0;
> +    uint32_t idx =3D 0;
>      int32_t ret =3D FFA_RET_OK;
>      /*
>       * We do not have UUID info for VMs so use the 1.0 structure so that=
 we set
> @@ -202,17 +203,21 @@ static int32_t ffa_get_vm_partinfo(struct ffa_uuid =
uuid, uint32_t *vm_count,
>      if ( ACCESS_ONCE(curr_ctx->guest_vers) >=3D FFA_VERSION_1_2 )
>      {
>          /* Add caller VM information */
> -        info.id =3D curr_ctx->ffa_id;
> -        info.execution_context =3D curr_ctx->num_vcpus;
> -        info.partition_properties =3D FFA_PART_VM_PROP;
> -        if ( is_64bit_domain(d) )
> -            info.partition_properties |=3D FFA_PART_PROP_AARCH64_STATE;
> -
> -        ret =3D ffa_copy_info(dst_buf, end_buf, &info, dst_size, sizeof(=
info));
> -        if ( ret )
> -            return ret;
> +        if ( start_index =3D=3D 0)
> +        {
> +            info.id =3D curr_ctx->ffa_id;
> +            info.execution_context =3D curr_ctx->num_vcpus;
> +            info.partition_properties =3D FFA_PART_VM_PROP;
> +            if ( is_64bit_domain(d) )
> +                info.partition_properties |=3D FFA_PART_PROP_AARCH64_STA=
TE;
>
> -        count++;
> +            ret =3D ffa_copy_info(dst_buf, end_buf, &info, dst_size,
> +                                sizeof(info));
> +            if ( ret )
> +                return ret;
> +            count++;
> +        }
> +        idx++;
>      }
>
>      if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> @@ -231,21 +236,25 @@ static int32_t ffa_get_vm_partinfo(struct ffa_uuid =
uuid, uint32_t *vm_count,
>              if ( dest_ctx =3D=3D curr_ctx )
>                  continue;
>
> -            info.id =3D dest_ctx->ffa_id;
> -            info.execution_context =3D dest_ctx->num_vcpus;
> -            info.partition_properties =3D FFA_PART_VM_PROP;
> -            if ( dest_ctx->is_64bit )
> -                info.partition_properties |=3D FFA_PART_PROP_AARCH64_STA=
TE;
> -
> -            ret =3D ffa_copy_info(dst_buf, end_buf, &info, dst_size,
> -                                sizeof(info));
> -            if ( ret )
> +            if ( idx >=3D start_index )
>              {
> -                read_unlock(&ffa_ctx_list_rwlock);
> -                return ret;
> +                info.id =3D dest_ctx->ffa_id;
> +                info.execution_context =3D dest_ctx->num_vcpus;
> +                info.partition_properties =3D FFA_PART_VM_PROP;
> +                if ( dest_ctx->is_64bit )
> +                    info.partition_properties |=3D FFA_PART_PROP_AARCH64=
_STATE;
> +
> +                ret =3D ffa_copy_info(dst_buf, end_buf, &info, dst_size,
> +                                    sizeof(info));
> +                if ( ret )
> +                {
> +                    read_unlock(&ffa_ctx_list_rwlock);
> +                    return ret;
> +                }
> +                count++;
>              }
>
> -            count++;
> +            idx++;
>          }
>          read_unlock(&ffa_ctx_list_rwlock);
>      }
> @@ -355,7 +364,7 @@ void ffa_handle_partition_info_get(struct cpu_user_re=
gs *regs)
>              goto out_rx_release;
>      }
>
> -    ret =3D ffa_get_vm_partinfo(uuid, &ffa_vm_count, &dst_buf, end_buf,
> +    ret =3D ffa_get_vm_partinfo(uuid, 0, &ffa_vm_count, &dst_buf, end_bu=
f,
>                                dst_size);
>
>  out_rx_release:
> --
> 2.52.0
>


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 08:40:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 08:40:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243999.1543471 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwypR-00042g-Ny; Mon, 02 Mar 2026 08:40:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243999.1543471; Mon, 02 Mar 2026 08:40: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 1vwypR-00042Z-Ki; Mon, 02 Mar 2026 08:40:37 +0000
Received: by outflank-mailman (input) for mailman id 1243999;
 Mon, 02 Mar 2026 08: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=xYbC=BC=kernel.org=david@srs-se1.protection.inumbo.net>)
 id 1vwypQ-00042T-MI
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 08:40:36 +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 7ab7dbb8-1613-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 09:40:35 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id B1BAF60008;
 Mon,  2 Mar 2026 08:40:33 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0849CC19423;
 Mon,  2 Mar 2026 08:40:31 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7ab7dbb8-1613-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1772440833;
	bh=/Q5zfmMQXbJWAqYkNWhUOcCTSWBqGiUqOPv9rbR/Ibc=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=LuNm/tc3l7URqrTm6aEeseGI5PkQjzDhdAG0uL0yX6cNXmpBpCwdEGe7tlz2yXwHW
	 8fCZGkALcGj99mrBh8SRXYu2X2oRtO5clHc9cziOhiqTPhBjpPcThmjIEn532CLxDU
	 xVWrXAAHfZDZ6IpFcq/qENqO++4VQCh+9HzOxopPi4OZ7jGO5RjYkR8+gHF6epDya9
	 aouQuXwyUNK0JvXgsEvptUnouQMcTPpenddZK7OxW+oyMHCz+Q3HRWqD1Np2OSTLan
	 or4k9EAZoJtaB/mTm+9Kf/luKGsV8cVo3rCR3EhUM9cPJg8U1WC57a24krPaZJsc7r
	 H7fUOJ4ywkOIQ==
Message-ID: <224968e6-7236-4efe-bcc0-ab39ac0c6c45@kernel.org>
Date: Mon, 2 Mar 2026 09:40:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Excluding init_on_free for pages for initial balloon down (Xen)
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel <xen-devel@lists.xenproject.org>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Andrew Morton <akpm@linux-foundation.org>
References: <aaRVcVmtv2UBD-GF@mail-itl>
 <513e624f-35c1-4d43-ba3f-c96af613d400@suse.com>
From: "David Hildenbrand (Arm)" <david@kernel.org>
Content-Language: en-US
Autocrypt: addr=david@kernel.org; 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
 B3JfpUqcWwE7vUaYrHG1nw54pLUoPG6sAA7Mehl3nd4pZUALHwARAQABzS5EYXZpZCBIaWxk
 ZW5icmFuZCAoQ3VycmVudCkgPGRhdmlkQGtlcm5lbC5vcmc+wsGQBBMBCAA6AhsDBQkmWAik
 AgsJBBUKCQgCFgICHgUCF4AWIQQb2cqtc1xMOkYN/MpN3hD3AP+DWgUCaYJt/AIZAQAKCRBN
 3hD3AP+DWriiD/9BLGEKG+N8L2AXhikJg6YmXom9ytRwPqDgpHpVg2xdhopoWdMRXjzOrIKD
 g4LSnFaKneQD0hZhoArEeamG5tyo32xoRsPwkbpIzL0OKSZ8G6mVbFGpjmyDLQCAxteXCLXz
 ZI0VbsuJKelYnKcXWOIndOrNRvE5eoOfTt2XfBnAapxMYY2IsV+qaUXlO63GgfIOg8RBaj7x
 3NxkI3rV0SHhI4GU9K6jCvGghxeS1QX6L/XI9mfAYaIwGy5B68kF26piAVYv/QZDEVIpo3t7
 /fjSpxKT8plJH6rhhR0epy8dWRHk3qT5tk2P85twasdloWtkMZ7FsCJRKWscm1BLpsDn6EQ4
 jeMHECiY9kGKKi8dQpv3FRyo2QApZ49NNDbwcR0ZndK0XFo15iH708H5Qja/8TuXCwnPWAcJ
 DQoNIDFyaxe26Rx3ZwUkRALa3iPcVjE0//TrQ4KnFf+lMBSrS33xDDBfevW9+Dk6IISmDH1R
 HFq2jpkN+FX/PE8eVhV68B2DsAPZ5rUwyCKUXPTJ/irrCCmAAb5Jpv11S7hUSpqtM/6oVESC
 3z/7CzrVtRODzLtNgV4r5EI+wAv/3PgJLlMwgJM90Fb3CB2IgbxhjvmB1WNdvXACVydx55V7
 LPPKodSTF29rlnQAf9HLgCphuuSrrPn5VQDaYZl4N/7zc2wcWM7BTQRVy5+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: <513e624f-35c1-4d43-ba3f-c96af613d400@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 3/2/26 07:36, Jürgen Groß wrote:
> On 01.03.26 16:04, Marek Marczykowski-Górecki wrote:
>> Hi,
>>
>> Some time ago I made a change to disable scrubbing pages that are
>> ballooned out during system boot. I'll paste the whole commit message as
>> it's relevant here:
>>
>>      197ecb3802c0 xen/balloon: add runtime control for scrubbing
>> ballooned out pages
>>
>>      Scrubbing pages on initial balloon down can take some time,
>> especially
>>      in nested virtualization case (nested EPT is slow). When HVM/PVH
>> guest is
>>      started with memory= significantly lower than maxmem=, all the extra
>>      pages will be scrubbed before returning to Xen. But since most of
>> them
>>      weren't used at all at that point, Xen needs to populate them first
>>      (from populate-on-demand pool). In nested virt case (Xen inside KVM)
>>      this slows down the guest boot by 15-30s with just 1.5GB needed
>> to be
>>      returned to Xen.
>>           Add runtime parameter to enable/disable it, to allow
>> initially disabling
>>      scrubbing, then enable it back during boot (for example in
>> initramfs).
>>      Such usage relies on assumption that a) most pages ballooned out
>> during
>>      initial boot weren't used at all, and b) even if they were, very few
>>      secrets are in the guest at that time (before any serious userspace
>>      kicks in).
>>      Convert CONFIG_XEN_SCRUB_PAGES to CONFIG_XEN_SCRUB_PAGES_DEFAULT
>> (also
>>      enabled by default), controlling default value for the new runtime
>>      switch.
>>
>> Now, I face the same issue with init_on_free/init_on_alloc (not sure
>> which one applies here, probably the latter one), which several
>> distributions enable by default. The result is (see timestamps):
>>
>>      [2026-02-24 01:12:55] [    7.485151] xen:balloon: Waiting for
>> initial ballooning down having finished.
>>      [2026-02-24 01:14:14] [   86.581510] xen:balloon: Initial
>> ballooning down finished.
>>
>> But here the situation is a bit more complicated:
>> init_on_free/init_on_alloc applies to any pages, not just those for
>> balloon driver. I see two approaches to solve the issue:
>> 1. Similar to xen_scrub_pages=, add a runtime switch for
>>     init_on_free/init_on_alloc, then force them off during boot, and
>>     re-enable early in initramfs.
>> 2. Somehow adjust balloon driver to bypass init_on_alloc when ballooning
>>     a page out.
>>
>> The first approach is likely easier to implement, but also has some
>> drawbacks: it may result in some kernel structures that are allocated
>> early to remain with garbage data in uninitialized places. While it may
>> not matter during early boot, such structures may survive for quite some
>> time, and maybe attacker can use them later on to exploit some other
>> bug. This wasn't really a concern with xen_scrub_pages, as those pages
>> were immediately ballooned out.
>>
>> The second approach sounds architecturally better, and maybe
>> init_on_alloc could be always bypassed during balloon out? The balloon
>> driver can scrub the page on its own already (which is enabled by
>> default). That of course assumes the issue is only about init_on_alloc,
>> not init_on_free (or both) - which I haven't really confirmed yet...
>> If going this way, I see the balloon driver does basically
>> alloc_page(GFP_BALLOON), where GFP_BALLOON is:
>>
>>      /* When ballooning out (allocating memory to return to Xen) we
>> don't really
>>         want the kernel to try too hard since that can trigger the oom
>> killer. */
>>      #define GFP_BALLOON \
>>          (GFP_HIGHUSER | __GFP_NOWARN | __GFP_NORETRY | __GFP_NOMEMALLOC)
>>
>> Would that be about adding some new flag here? Or maybe there is already
>> one for this purpose?
> 
> There doesn't seem to be a flag for that.
> 
> But I think adding a new flag __GFP_NO_INIT and testing that in
> want_init_on_alloc() _before_ checking CONFIG_INIT_ON_ALLOC_DEFAULT_ON
> would be a sensible approach.

People argued against such flags in the past, because it will simply get
abused by arbitrary drivers that want to be smart.

Whatever leaves the buddy shall be zeroed out. If there is a
double-zeroing happen, the latter could get optimized out by checking
something like user_alloc_needs_zeroing().

See mm/huge_memory.c:vma_alloc_anon_folio_pmd() as an example where we
avoid double-zeroing.

> 
>> Any opinions?
> 
> You are aware of the "init_on_alloc" boot parameter? So if this is fine
> for you, you could just use approach 1 above without any kernel patches
> needed.

I don't think init_on_alloc can be enabled after boot. IIUC, 1) would
require a runtime switch.

-- 
Cheers,

David


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 08:51:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 08:51:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244008.1543481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwz05-0005ji-Lq; Mon, 02 Mar 2026 08:51:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244008.1543481; Mon, 02 Mar 2026 08: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 1vwz05-0005jb-IJ; Mon, 02 Mar 2026 08:51:37 +0000
Received: by outflank-mailman (input) for mailman id 1244008;
 Mon, 02 Mar 2026 08: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=f7KG=BC=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vwz03-0005jV-UH
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 08:51:36 +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 013bfcd5-1615-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Mar 2026 09:51:29 +0100 (CET)
Received: from DB3PR08CA0004.eurprd08.prod.outlook.com (2603:10a6:8::17) by
 DBBPR08MB5930.eurprd08.prod.outlook.com (2603:10a6:10:200::10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9654.20; Mon, 2 Mar 2026 08:51:26 +0000
Received: from DB1PEPF000509F6.eurprd02.prod.outlook.com
 (2603:10a6:8:0:cafe::64) by DB3PR08CA0004.outlook.office365.com
 (2603:10a6:8::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.19 via Frontend Transport; Mon,
 2 Mar 2026 08:51:27 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509F6.mail.protection.outlook.com (10.167.242.152) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.16
 via Frontend Transport; Mon, 2 Mar 2026 08:51:26 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DU2PR08MB9989.eurprd08.prod.outlook.com (2603:10a6:10:497::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.20; Mon, 2 Mar
 2026 08:50:21 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9654.020; Mon, 2 Mar 2026
 08:50: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: 013bfcd5-1615-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=q3F/FRKFyyNJflldeGfEUw6sxxnBUF2JbnMBqtxbvBjnrk9g6IqRi1ffKOxJhq2EuXz2ZXFG7t+71os2BPeKBOFjoolTMy7UXGh/RaT4G7Wnj8RaQEGfEbV3osQG2ibLBwe6N+kllbxqX2nHfN2LaaSrZmYAAu5EFhc0cXLQSCxfA2nrciDsx5jhVi+RVaQDYbOsFalVh4eQDlFyi6ioeT5E6hmQ2qPjY4RfgsvHHialSpstK1UWr+i7zRIf7rBRaUfRldIc5oGrpVqeY4cyLb5CaB9jRPC+jhKCy2zJtvB+KPFGXBC58nxQV+edAfZY7XnDaqVGcZShzXCyMrH05A==
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=9mffT2Wougc0FFTmnAYzzng6GGh6ZOAwfWhbALZNV4s=;
 b=DyxjjcTCcKMJDYVGPhhLy6TcC0iq3fX5EcaTVODbGP7E6GI1xyPI7waRikqSyS9deg4MeICjg4EQi7t23SldocRvpJG02viz7MltuaL8/m1p/zDeJ1wH1/oSxVXIbckcvQX6B6HEeyrwzbZog4zjQRm9CXijVi07yBHfbfjM+U8ZRiXm/mpxMJVJlk33d8qELGiVuOAwznK/T3LQi1Qck2jllb9wyDk7xHgHJTmc7m68G4j39snAcy27JE+/bCH1N9HbVxvH9JzI1ug64LiVIBwLVbanvPJ4Ae6J6ihi8YWNFVZcUqbv55tDj9dOn9bV/+bliSrr9p24ue+ySJ2nBA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9mffT2Wougc0FFTmnAYzzng6GGh6ZOAwfWhbALZNV4s=;
 b=VbHs5mMI5u4S/9dIJn0RLsqnLRTgoVOees8I3MY8EGTjfkYyKAvw/x1ajNhjMDpsMA6DCljRcJGbjozdmlbcPTsIq+dw/pKUu/uZ1tHfEeatHMto2Md6G6PqQcp0yCIVr6jk+rmpy+21ciPPBZVeU9fD0R+SCqcDnst14XJyDgE=
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=lKXX2cYboYUaqaURIg2UFnUmWWgZ2L77kjDd1XJa+hyWF1pyb5g0IQn8g7fwFmiE6MMQKc4d0osW1tGCaF0EBR5oSu0ZPPkUzpTK9SYwAWsjUZwufFloZ/X/xUJ5jAv3XyoPfOB6MUP9vNUWtverh2uRRes2qU4W7svEqG1ZPqWb9p59wFTDjxDlL2AEMgYbTCV3SVG9cPPodLB6qk/YXSM+ejy77BxB5tCjoOHmrZddFkr3oEeT/MME7a1k1XlgS9rSRnzHs21jhNszW9qf451hmIskDahS968Lh8vkbvS/0qe/T859D17alSX+17xe381h9nJ5dPl2DJVAMbTZJw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9mffT2Wougc0FFTmnAYzzng6GGh6ZOAwfWhbALZNV4s=;
 b=fBkhBUS0dZ+9aPj6JJ2R+ElCTIMDEyPEATe1z+RDOV64EbC+76N8Nf8o26T77Pi+a7iJgXxleuadmyh1te7tsVht9+QE7bPIXaGUTHeVzc38kqXBLIQCuPkyB+PVNNc4xpupxQ0SPBcBPHvqp+hn7NLjkTi5MZHevn0GvIE+mnFOtiHlIpmKmkoYIiEsM8K9XH9DNbwiKBy9EYo4O/OrG9Kuj7iNOTAZqCExjTsQ6bGLgbVtyYJNpD4rxnDZFqDkTgRuNCQmtyJ8FKTt2WJFoRI20SS9dhwgE9S33BBvpBpv2kvMUK0r5AtBNSTCIE/PjAbGmPyhub5BElJvQmDz2g==
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=9mffT2Wougc0FFTmnAYzzng6GGh6ZOAwfWhbALZNV4s=;
 b=VbHs5mMI5u4S/9dIJn0RLsqnLRTgoVOees8I3MY8EGTjfkYyKAvw/x1ajNhjMDpsMA6DCljRcJGbjozdmlbcPTsIq+dw/pKUu/uZ1tHfEeatHMto2Md6G6PqQcp0yCIVr6jk+rmpy+21ciPPBZVeU9fD0R+SCqcDnst14XJyDgE=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 2/4] xen/arm: ffa: Cache SP partition info at init
Thread-Topic: [PATCH 2/4] xen/arm: ffa: Cache SP partition info at init
Thread-Index: AQHcpj3iktrazLk1t0mCBnzOLulDCLWWXkkAgASYY4A=
Date: Mon, 2 Mar 2026 08:50:21 +0000
Message-ID: <9B608F0B-E564-42C6-9F85-E1701F707554@arm.com>
References: <cover.1772013062.git.bertrand.marquis@arm.com>
 <0a5f66eaa16f262d4ffad6a8ec4b1b02461f96c1.1772013062.git.bertrand.marquis@arm.com>
 <CAHUa44FSq6aHTO=HWNOB1Qa5keuEfmhwpSW4hRjVgQdUX0fjmA@mail.gmail.com>
In-Reply-To:
 <CAHUa44FSq6aHTO=HWNOB1Qa5keuEfmhwpSW4hRjVgQdUX0fjmA@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DU2PR08MB9989:EE_|DB1PEPF000509F6:EE_|DBBPR08MB5930:EE_
X-MS-Office365-Filtering-Correlation-Id: 5ca40bef-f924-44dc-3e53-08de7838e3b1
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|10070799003|1800799024|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 juGlxVbqBK5/7n+7eAC4yku+sTOa1SY421b8TU20UOHzdA2VXhtRDazT98VicX6Q6KcGoHKM/ynRSkyKmSqdY0KlyAATMDknU5kIuLe/fYb+v68UrdSnI+tzoZ9kbMjKAwy5C2u2PrNnHNBDwU+SUUjt5LG3FMfsTPz2oy81aHPDmbO1km9T0Tz4xzmHWqvx+Oozz2eLNGHgwUr1+hMpP5sEEd1muahOzSSEzyMgvVUreaCh94Ll0JVuJ8TebDwPUWDgexkqEI8xzdeczEAxll9qQ7myrMvqVh6Zc6IFxhRPidsyDqH+FquCV+iznMfBtOaMMwGfyEF9ty5gCyoLVr5eByF5WDHKv42KiZ8NRhPE2KQDE2MnpUSrSM1hygxR4FJEGzs0qb9B2r0gh0iRSsN8D7EOCpf/qWgHXOI5DA4qi5ET6438mi02dWUbIZSEc+X71b+GE0FFH+QRf0lxjYWQY665QzhwZWd6OwyzXI5pdG0ETcF31KIkoLGmaEBSHbecXHutCDzaXNmYhjWmjLHQ8ZpmECBC7gANeKEq2I0jpq3V0l6xKgS2iCpxXwyvHqNaqFMiD8LyGBwNx6GR4MPBb2n8de6cS9DR8mGlWXPpb1Ejzxa2Cmj2qX4BuKKThxLKfDnxKFChc3JOPsXFRBgDIEKpiFHmyvTfEL7mWcKBmL+pUD1b3+I+QXNBL5YIMwHsU3TNFqes6atlAOYf1z5QGF7pkoh2kOo/SeoojLDnUtQlSK6KljDvDZ50a4fGR/snHbOnzQiw7/hsXx00AplNKKt218Mc7UHvd2/Yu3k=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <C50DAC76DA0F0346911DAEB9799A9F70@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR08MB9989
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509F6.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	0ac0d8be-8952-42a1-2c9f-08de7838bccb
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|35042699022|14060799003|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	rtIxUWNR4dRTCYxIRWFlgzgB1BIj5nFmB9uVOXp8rzqgeoIoBOSomt+dkbXB2HKhAdhr2gNCPptfjt4jFiSKP/BCuZTLBZNDZ+lqGUnX5zMTQgxTjrqCRPNcwwNt4ayzbxtj/RMA7MXcSEBCu918aj0mTCGaCxx7Ob1LWQW/vgnnsQlDwwP5nE170eWLRHZMXqEfkZ/CLxRNrrdFPqUD/MBT6Fyn10+W0WGgbhXj8Mdp/GiUohIUZ1ShzYxvt4dXtgMWu6YImrsti3y5+kVNnq7tB0N6BtEwa+Ut98pRmJmggXrx7WoBKNmofDv7VSxqFEy+xspMWXJkjxN3PPFD/SDGqTXaar+/5qrMRYtTUSsng3dwMw8WK4AdAyxWZGOOEhBIyhOw59teDSxpjZ0R/swDWgftJPDyO9MyTSKgZRyx8ef6ZnA+iZOdN2Gjo1eQ7iv9N5wVf85lvjVmt17Hd/TP5l58dw2oCne/ir2nCye762JZ8j6EhFnDahmJHY+FoFXY1iNP0fmsOTzVAaMVBhfQmLO8bkfyi0gBNueZiZDAjUZ9qmli/J2REmNFPzyNn5v1j0pen3oCkG1RhIhbJGard59LZRhNYBoTk5bAxPSLcmj/hAw8jjpWahIRzHL8dkJkbdjxsYbeZdTibrYI640N1EGth/CznKYRpOgt3wMMM0iUAknOskR0btmoZ29Lk4n1I3ru3np7zUTwM9v/i6OfuWE1OBKJdzl0GIsbqmXKFXz1Lw1qhP0zBTOaA6K1El0CPjyXJonin+2Nc0a5Vu1649oXfLmMHtou29M4LQNrOizd8EJZK9mk4pOAV3Ys7X9eXQ+uVC5x7NbQLQE/Qg==
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(35042699022)(14060799003)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	proBU3f02ZHiCGixd7kfXbTnAf1TtS3CjVgClPnWzF3KnE/8Dgkk9f+KTXsjFAYRmdW0PvJ518ZoF8ruoc6nSJeTPa9J7OeaDC9ifZtO54ZyFEIOsvK3pFyA9F8L5Tgm4JRXiOYA2QPDPySwR3ogDJEkEbpFv9iZk+9jtx20rr6FIqEZ6LkItEPzToWWHOMW4J8rOJ2dR+8KVbU67O7wRbDSR3+mnIPWmUMv1KmB5BM/9JFjzlHwNFhTlF5Q87XCZ5JhOk1QO/4NN8ZDat8JhssaccP68xD2tKG7MAPDTDc+k+d7+OstWMSAiZY1c/o53UYr+lD5S21DpxbbdNwnXoVWsQKmZpyaQmzsGdQL9Qh7HDnj9HJlfM0a6z7zamJkVVLxO+7xXmbo/EE6+Qbxd8rVpoCI5UwZwBaxozrR8atMy0v9Gz3bR0PhFQKskGVL
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Mar 2026 08:51:26.5584
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5ca40bef-f924-44dc-3e53-08de7838e3b1
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB1PEPF000509F6.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB5930

SGkgSmVucywNCg0KPiBPbiAyNyBGZWIgMjAyNiwgYXQgMTE6MzksIEplbnMgV2lrbGFuZGVyIDxq
ZW5zLndpa2xhbmRlckBsaW5hcm8ub3JnPiB3cm90ZToNCj4gDQo+IEhpIEJlcnRyYW5kLA0KPiAN
Cj4gT24gV2VkLCBGZWIgMjUsIDIwMjYgYXQgMTE6MDLigK9BTSBCZXJ0cmFuZCBNYXJxdWlzDQo+
IDxiZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+IHdyb3RlOg0KPj4gDQo+PiBGRkFfUEFSVElUSU9O
X0lORk9fR0VUIGN1cnJlbnRseSBxdWVyaWVzIHRoZSBTUE1DIG9uIGVhY2ggY2FsbCBhbmQgd2Fs
a3MgdGhlDQo+PiBSWCBidWZmZXIgZXZlcnkgdGltZS4gVGhlIFNQIGxpc3QgaXMgZXhwZWN0ZWQg
dG8gYmUgc3RhdGljLCBzbyByZXBlYXRlZA0KPj4gZmlybXdhcmUgY2FsbHMgYW5kIHZhbGlkYXRp
b24gYXJlIHVubmVjZXNzYXJ5Lg0KPj4gDQo+PiBDYWNoZSB0aGUgU1BNQyBwYXJ0aXRpb24taW5m
byBsaXN0IGF0IGluaXQgdGltZSwga2VlcGluZyBvbmx5IHNlY3VyZQ0KPj4gZW5kcG9pbnRzLCBh
bmQgcmV1c2UgdGhlIGNhY2hlZCBlbnRyaWVzIGZvciBTUCBjb3VudCBhbmQgcGFydGl0aW9uLWlu
Zm8NCj4+IHJlc3BvbnNlcy4gSW5pdGlhbGl6ZSB0aGUgVk0gY3JlYXRlL2Rlc3Ryb3kgc3Vic2Ny
aWJlciBsaXN0cyBmcm9tIHRoZSBjYWNoZWQNCj4+IGxpc3QgYW5kIGZyZWUgdGhlIGNhY2hlIG9u
IGluaXQgZmFpbHVyZS4NCj4+IA0KPj4gU1AgcGFydGl0aW9uIGluZm8gbm93IHJlZmxlY3RzIHRo
ZSBpbml0LXRpbWUgc25hcHNob3QgYW5kIHdpbGwgbm90IGNoYW5nZS4NCj4+IA0KPj4gU2lnbmVk
LW9mZi1ieTogQmVydHJhbmQgTWFycXVpcyA8YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPg0KPj4g
LS0tDQo+PiB4ZW4vYXJjaC9hcm0vdGVlL2ZmYV9wYXJ0aW5mby5jIHwgMjA1ICsrKysrKysrKysr
KysrKysrKysrKy0tLS0tLS0tLS0tDQo+PiAxIGZpbGUgY2hhbmdlZCwgMTM4IGluc2VydGlvbnMo
KyksIDY3IGRlbGV0aW9ucygtKQ0KPj4gDQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3Rl
ZS9mZmFfcGFydGluZm8uYyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhX3BhcnRpbmZvLmMNCj4+IGlu
ZGV4IDZhNmYzZmZiODIyZS4uOGEzZWFjMjVmOTlmIDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gv
YXJtL3RlZS9mZmFfcGFydGluZm8uYw0KPj4gKysrIGIveGVuL2FyY2gvYXJtL3RlZS9mZmFfcGFy
dGluZm8uYw0KPj4gQEAgLTYsNiArNiw3IEBADQo+PiAjaW5jbHVkZSA8eGVuL2NvbnN0Lmg+DQo+
PiAjaW5jbHVkZSA8eGVuL3NpemVzLmg+DQo+PiAjaW5jbHVkZSA8eGVuL3R5cGVzLmg+DQo+PiAr
I2luY2x1ZGUgPHhlbi94bWFsbG9jLmg+DQo+PiANCj4+ICNpbmNsdWRlIDxhc20vc21jY2MuaD4N
Cj4+ICNpbmNsdWRlIDxhc20vcmVncy5oPg0KPj4gQEAgLTMzLDYgKzM0LDEwIEBAIHN0YXRpYyB1
aW50MTZfdCBzdWJzY3Jfdm1fY3JlYXRlZF9jb3VudCBfX3JlYWRfbW9zdGx5Ow0KPj4gc3RhdGlj
IHVpbnQxNl90ICpzdWJzY3Jfdm1fZGVzdHJveWVkIF9fcmVhZF9tb3N0bHk7DQo+PiBzdGF0aWMg
dWludDE2X3Qgc3Vic2NyX3ZtX2Rlc3Ryb3llZF9jb3VudCBfX3JlYWRfbW9zdGx5Ow0KPj4gDQo+
PiArLyogU1AgbGlzdCBjYWNoZSAoc2VjdXJlIGVuZHBvaW50cyBvbmx5KTsgcG9wdWxhdGVkIGF0
IGluaXQuICovDQo+PiArc3RhdGljIHZvaWQgKnNwX2xpc3QgX19yZWFkX21vc3RseTsNCj4+ICtz
dGF0aWMgdWludDMyX3Qgc3BfbGlzdF9jb3VudCBfX3JlYWRfbW9zdGx5Ow0KPj4gK3N0YXRpYyB1
aW50MzJfdCBzcF9saXN0X2VudHJ5X3NpemUgX19yZWFkX21vc3RseTsNCj4+IHN0YXRpYyBpbnQz
Ml90IGZmYV9wYXJ0aXRpb25faW5mb19nZXQoc3RydWN0IGZmYV91dWlkIHV1aWQsIHVpbnQzMl90
IGZsYWdzLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJf
dCAqY291bnQsIHVpbnQzMl90ICpmcGlfc2l6ZSkNCj4+IHsNCj4+IEBAIC03OSw5MiArODQsNzgg
QEAgc3RhdGljIGludDMyX3QgZmZhX2NvcHlfaW5mbyh2b2lkICoqZHN0LCB2b2lkICpkc3RfZW5k
LCBjb25zdCB2b2lkICpzcmMsDQo+PiAgICAgcmV0dXJuIEZGQV9SRVRfT0s7DQo+PiB9DQo+PiAN
Cj4+IC1zdGF0aWMgaW50MzJfdCBmZmFfZ2V0X3NwX2NvdW50KHN0cnVjdCBmZmFfdXVpZCB1dWlk
LCB1aW50MzJfdCAqc3BfY291bnQpDQo+PiArc3RhdGljIGJvb2wgZmZhX3NwX2VudHJ5X21hdGNo
ZXNfdXVpZChjb25zdCB2b2lkICplbnRyeSwgc3RydWN0IGZmYV91dWlkIHV1aWQpDQo+PiB7DQo+
PiAtICAgIHVpbnQzMl90IHNyY19zaXplOw0KPj4gKyAgICBjb25zdCBzdHJ1Y3QgZmZhX3BhcnRp
dGlvbl9pbmZvXzFfMSAqZnBpID0gZW50cnk7DQo+PiArICAgIHN0cnVjdCBmZmFfdXVpZCBzcF91
dWlkOw0KPj4gKw0KPj4gKyAgICBpZiAoIGZmYV91dWlkX2lzX25pbCh1dWlkKSApDQo+PiArICAg
ICAgICByZXR1cm4gdHJ1ZTsNCj4+IA0KPj4gLSAgICByZXR1cm4gZmZhX3BhcnRpdGlvbl9pbmZv
X2dldCh1dWlkLCBGRkFfUEFSVElUSU9OX0lORk9fR0VUX0NPVU5UX0ZMQUcsDQo+PiAtICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwX2NvdW50LCAmc3JjX3NpemUpOw0KPj4gKyAg
ICBpZiAoIHNwX2xpc3RfZW50cnlfc2l6ZSA8IHNpemVvZigqZnBpKSApDQo+PiArICAgICAgICBy
ZXR1cm4gZmFsc2U7DQo+IA0KPiBUaGlzIGNhbiBuZXZlciBoYXBwZW4gc2luY2Ugd2UgZG9uJ3Qg
YWNjZXB0IFNQTUMgYmVsb3cgdmVyc2lvbiAxLjEuIFdlDQo+IGV2ZW4gaGF2ZSBhIGNoZWNrIHRv
IGVuc3VyZSB0aGUgU1BNQyBkb2Vzbid0IHJldHVybiBhIHRvby1zbWFsbA0KPiBzcGlfc2l6ZS4N
Cg0KSSB0cmllZCB0byBtYWtlIHRoZSBjb2RlIGZvcndhcmQgY29tcGF0aWJsZS4gSXQgaXMgbm90
IHJlYWxseSBhIHBvc3NpYmxlIGNhc2UgcmlnaHQgbm93IA0KYnV0IHdlIGNvdWxkIGZhbGwgaW50
byB0aGlzIGluIHRoZSBmdXR1cmUuDQoNCj4gDQo+PiArDQo+PiArICAgIG1lbWNweSgmc3BfdXVp
ZCwgZnBpLT51dWlkLCBzaXplb2Yoc3BfdXVpZCkpOw0KPj4gKyAgICByZXR1cm4gZmZhX3V1aWRf
ZXF1YWwodXVpZCwgc3BfdXVpZCk7DQo+PiB9DQo+PiANCj4+IC1zdGF0aWMgaW50MzJfdCBmZmFf
Z2V0X3NwX3BhcnRpbmZvKHN0cnVjdCBmZmFfdXVpZCB1dWlkLCB1aW50MzJfdCAqc3BfY291bnQs
DQo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoqZHN0X2J1Ziwg
dm9pZCAqZW5kX2J1ZiwNCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp
bnQzMl90IGRzdF9zaXplKQ0KPj4gK3N0YXRpYyBpbnQzMl90IGZmYV9nZXRfc3BfY291bnQoc3Ry
dWN0IGZmYV91dWlkIHV1aWQsIHVpbnQzMl90ICpzcF9jb3VudCkNCj4+IHsNCj4+IC0gICAgaW50
MzJfdCByZXQ7DQo+PiAtICAgIGludDMyX3QgcmVsZWFzZV9yZXQ7DQo+PiAtICAgIHVpbnQzMl90
IHNyY19zaXplLCByZWFsX3NwX2NvdW50Ow0KPj4gLSAgICB2b2lkICpzcmNfYnVmOw0KPj4gICAg
IHVpbnQzMl90IGNvdW50ID0gMDsNCj4+IC0gICAgYm9vbCBub3RpZnlfZncgPSBmYWxzZTsNCj4+
IC0NCj4+IC0gICAgLyogV2UgbmVlZCB0byB1c2UgdGhlIFJYIGJ1ZmZlciB0byByZWNlaXZlIHRo
ZSBsaXN0ICovDQo+PiAtICAgIHNyY19idWYgPSBmZmFfcnh0eF9zcG1jX3J4X2FjcXVpcmUoKTsN
Cj4+IC0gICAgaWYgKCAhc3JjX2J1ZiApDQo+PiAtICAgICAgICByZXR1cm4gRkZBX1JFVF9ERU5J
RUQ7DQo+PiAtDQo+PiAtICAgIHJldCA9IGZmYV9wYXJ0aXRpb25faW5mb19nZXQodXVpZCwgMCwg
JnJlYWxfc3BfY291bnQsICZzcmNfc2l6ZSk7DQo+PiAtICAgIGlmICggcmV0ICkNCj4+IC0gICAg
ICAgIGdvdG8gb3V0Ow0KPj4gLSAgICBub3RpZnlfZncgPSB0cnVlOw0KPj4gKyAgICB1aW50MzJf
dCBuOw0KPj4gDQo+PiAtICAgIC8qIFZhbGlkYXRlIHRoZSBzcmNfc2l6ZSB3ZSBnb3QgKi8NCj4+
IC0gICAgaWYgKCBzcmNfc2l6ZSA8IHNpemVvZihzdHJ1Y3QgZmZhX3BhcnRpdGlvbl9pbmZvXzFf
MCkgfHwNCj4+IC0gICAgICAgICBzcmNfc2l6ZSA+PSBGRkFfUEFHRV9TSVpFICkNCj4+ICsgICAg
Zm9yICggbiA9IDA7IG4gPCBzcF9saXN0X2NvdW50OyBuKysgKQ0KPj4gICAgIHsNCj4+IC0gICAg
ICAgIHJldCA9IEZGQV9SRVRfTk9UX1NVUFBPUlRFRDsNCj4+IC0gICAgICAgIGdvdG8gb3V0Ow0K
Pj4gKyAgICAgICAgdm9pZCAqZW50cnkgPSBzcF9saXN0ICsgbiAqIHNwX2xpc3RfZW50cnlfc2l6
ZTsNCj4+ICsNCj4+ICsgICAgICAgIGlmICggZmZhX3NwX2VudHJ5X21hdGNoZXNfdXVpZChlbnRy
eSwgdXVpZCkgKQ0KPj4gKyAgICAgICAgICAgIGNvdW50Kys7DQo+PiAgICAgfQ0KPj4gDQo+PiAt
ICAgIC8qDQo+PiAtICAgICAqIExpbWl0IHRoZSBtYXhpbXVtIHRpbWUgd2UgaG9sZCB0aGUgQ1BV
IGJ5IGxpbWl0aW5nIHRoZSBudW1iZXIgb2YgU1BzLg0KPj4gLSAgICAgKiBXZSBqdXN0IGlnbm9y
ZSB0aGUgZXh0cmEgb25lcyBhcyB0aGlzIGlzIHRlc3RlZCBkdXJpbmcgaW5pdCBpbg0KPj4gLSAg
ICAgKiBmZmFfcGFydGluZm9faW5pdCBzbyB0aGUgb25seSBwb3NzaWJsZSByZWFzb24gaXMgU1Ag
aGF2ZSBiZWVuIGFkZGVkDQo+PiAtICAgICAqIHNpbmNlIGJvb3QuDQo+PiAtICAgICAqLw0KPj4g
LSAgICBpZiAoIHJlYWxfc3BfY291bnQgPiBGRkFfTUFYX05VTV9TUCApDQo+PiAtICAgICAgICBy
ZWFsX3NwX2NvdW50ID0gRkZBX01BWF9OVU1fU1A7DQo+PiArICAgICpzcF9jb3VudCA9IGNvdW50
Ow0KPj4gDQo+PiAtICAgIC8qIE1ha2Ugc3VyZSB0aGUgZGF0YSBmaXRzIGluIG91ciBidWZmZXIg
Ki8NCj4+IC0gICAgaWYgKCByZWFsX3NwX2NvdW50ID4gKEZGQV9SWFRYX1BBR0VfQ09VTlQgKiBG
RkFfUEFHRV9TSVpFKSAvIHNyY19zaXplICkNCj4+IC0gICAgew0KPj4gLSAgICAgICAgcmV0ID0g
RkZBX1JFVF9OT1RfU1VQUE9SVEVEOw0KPj4gLSAgICAgICAgZ290byBvdXQ7DQo+PiAtICAgIH0N
Cj4+ICsgICAgaWYgKCAhZmZhX3V1aWRfaXNfbmlsKHV1aWQpICYmICFjb3VudCApDQo+PiArICAg
ICAgICByZXR1cm4gRkZBX1JFVF9JTlZBTElEX1BBUkFNRVRFUlM7DQo+PiANCj4+IC0gICAgZm9y
ICggdWludDMyX3Qgc3BfbnVtID0gMDsgc3BfbnVtIDwgcmVhbF9zcF9jb3VudDsgc3BfbnVtKysg
KQ0KPj4gLSAgICB7DQo+PiAtICAgICAgICBzdHJ1Y3QgZmZhX3BhcnRpdGlvbl9pbmZvXzFfMSAq
ZnBpID0gc3JjX2J1ZjsNCj4+ICsgICAgcmV0dXJuIEZGQV9SRVRfT0s7DQo+PiArfQ0KPj4gDQo+
PiAtICAgICAgICAvKiBmaWx0ZXIgb3V0IFNQIG5vdCBmb2xsb3dpbmcgYml0IDE1IGNvbnZlbnRp
b24gaWYgYW55ICovDQo+PiAtICAgICAgICBpZiAoIEZGQV9JRF9JU19TRUNVUkUoZnBpLT5pZCkg
KQ0KPj4gLSAgICAgICAgew0KPj4gLSAgICAgICAgICAgIC8qDQo+PiAtICAgICAgICAgICAgICog
SWYgVk0gaXMgMS4wIGJ1dCBmaXJtd2FyZSBpcyAxLjEgd2UgY291bGQgaGF2ZSBzZXZlcmFsIGVu
dHJpZXMNCj4+IC0gICAgICAgICAgICAgKiB3aXRoIHRoZSBzYW1lIElEIGJ1dCBkaWZmZXJlbnQg
VVVJRHMuIEluIHRoaXMgY2FzZSB0aGUgVk0gd2lsbA0KPj4gLSAgICAgICAgICAgICAqIGdldCBh
IGxpc3Qgd2l0aCBzZXZlcmFsIHRpbWUgdGhlIHNhbWUgSUQuDQo+PiAtICAgICAgICAgICAgICog
VGhpcyBpcyBhIG5vbi1jb21wbGlhbmNlIHRvIHRoZSBzcGVjaWZpY2F0aW9uIGJ1dCAxLjAgVk1z
IHNob3VsZA0KPj4gLSAgICAgICAgICAgICAqIGhhbmRsZSB0aGF0IG9uIHRoZWlyIG93biB0byBz
aW1wbGlmeSBYZW4gaW1wbGVtZW50YXRpb24uDQo+PiAtICAgICAgICAgICAgICovDQo+PiArc3Rh
dGljIGludDMyX3QgZmZhX2dldF9zcF9wYXJ0aW5mbyhzdHJ1Y3QgZmZhX3V1aWQgdXVpZCwgdWlu
dDMyX3QgKnNwX2NvdW50LA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dm9pZCAqKmRzdF9idWYsIHZvaWQgKmVuZF9idWYsDQo+PiArICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1aW50MzJfdCBkc3Rfc2l6ZSkNCj4+ICt7DQo+PiArICAgIGludDMyX3Qg
cmV0Ow0KPj4gKyAgICB1aW50MzJfdCBjb3VudCA9IDA7DQo+PiArICAgIHVpbnQzMl90IG47DQo+
PiANCj4+IC0gICAgICAgICAgICByZXQgPSBmZmFfY29weV9pbmZvKGRzdF9idWYsIGVuZF9idWYs
IHNyY19idWYsIGRzdF9zaXplLCBzcmNfc2l6ZSk7DQo+PiAtICAgICAgICAgICAgaWYgKCByZXQg
KQ0KPj4gLSAgICAgICAgICAgICAgICBnb3RvIG91dDsNCj4+ICsgICAgZm9yICggbiA9IDA7IG4g
PCBzcF9saXN0X2NvdW50OyBuKysgKQ0KPj4gKyAgICB7DQo+PiArICAgICAgICB2b2lkICplbnRy
eSA9IHNwX2xpc3QgKyBuICogc3BfbGlzdF9lbnRyeV9zaXplOw0KPj4gDQo+PiAtICAgICAgICAg
ICAgY291bnQrKzsNCj4+IC0gICAgICAgIH0NCj4+ICsgICAgICAgIGlmICggIWZmYV9zcF9lbnRy
eV9tYXRjaGVzX3V1aWQoZW50cnksIHV1aWQpICkNCj4+ICsgICAgICAgICAgICBjb250aW51ZTsN
Cj4+IA0KPj4gLSAgICAgICAgc3JjX2J1ZiArPSBzcmNfc2l6ZTsNCj4+ICsgICAgICAgIC8qDQo+
PiArICAgICAgICAgKiBJZiBWTSBpcyAxLjAgYnV0IGZpcm13YXJlIGlzIDEuMSB3ZSBjb3VsZCBo
YXZlIHNldmVyYWwgZW50cmllcw0KPj4gKyAgICAgICAgICogd2l0aCB0aGUgc2FtZSBJRCBidXQg
ZGlmZmVyZW50IFVVSURzLiBJbiB0aGlzIGNhc2UgdGhlIFZNIHdpbGwNCj4+ICsgICAgICAgICAq
IGdldCBhIGxpc3Qgd2l0aCBzZXZlcmFsIHRpbWUgdGhlIHNhbWUgSUQuDQo+PiArICAgICAgICAg
KiBUaGlzIGlzIGEgbm9uLWNvbXBsaWFuY2UgdG8gdGhlIHNwZWNpZmljYXRpb24gYnV0IDEuMCBW
TXMgc2hvdWxkDQo+PiArICAgICAgICAgKiBoYW5kbGUgdGhhdCBvbiB0aGVpciBvd24gdG8gc2lt
cGxpZnkgWGVuIGltcGxlbWVudGF0aW9uLg0KPj4gKyAgICAgICAgICovDQo+PiArICAgICAgICBy
ZXQgPSBmZmFfY29weV9pbmZvKGRzdF9idWYsIGVuZF9idWYsIGVudHJ5LCBkc3Rfc2l6ZSwNCj4+
ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BfbGlzdF9lbnRyeV9zaXplKTsNCj4+ICsg
ICAgICAgIGlmICggcmV0ICkNCj4+ICsgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPj4gKw0KPj4g
KyAgICAgICAgY291bnQrKzsNCj4+ICAgICB9DQo+PiANCj4+ICAgICAqc3BfY291bnQgPSBjb3Vu
dDsNCj4+IA0KPj4gLW91dDoNCj4+IC0gICAgcmVsZWFzZV9yZXQgPSBmZmFfcnh0eF9zcG1jX3J4
X3JlbGVhc2Uobm90aWZ5X2Z3KTsNCj4+IC0gICAgaWYgKCByZWxlYXNlX3JldCApDQo+PiAtICAg
ICAgICBncHJpbnRrKFhFTkxPR19XQVJOSU5HLA0KPj4gLSAgICAgICAgICAgICAgICAiZmZhOiBF
cnJvciByZWxlYXNpbmcgU1BNQyBSWCBidWZmZXI6ICVkXG4iLCByZWxlYXNlX3JldCk7DQo+PiAt
ICAgIHJldHVybiByZXQ7DQo+PiArICAgIGlmICggIWZmYV91dWlkX2lzX25pbCh1dWlkKSAmJiAh
Y291bnQgKQ0KPj4gKyAgICAgICAgcmV0dXJuIEZGQV9SRVRfSU5WQUxJRF9QQVJBTUVURVJTOw0K
Pj4gKw0KPj4gKyAgICByZXR1cm4gRkZBX1JFVF9PSzsNCj4+IH0NCj4+IA0KPj4gc3RhdGljIGlu
dDMyX3QgZmZhX2dldF92bV9wYXJ0aW5mbyhzdHJ1Y3QgZmZhX3V1aWQgdXVpZCwgdWludDMyX3Qg
c3RhcnRfaW5kZXgsDQo+PiBAQCAtNDM1LDYgKzQyNiwxNCBAQCBzdGF0aWMgaW50MzJfdCBmZmFf
ZGlyZWN0X3JlcV9zZW5kX3ZtKHVpbnQxNl90IHNwX2lkLCB1aW50MTZfdCB2bV9pZCwNCj4+ICAg
ICByZXR1cm4gcmVzOw0KPj4gfQ0KPj4gDQo+PiArc3RhdGljIHZvaWQgZmZhX3NwX2xpc3RfY2Fj
aGVfZnJlZSh2b2lkKQ0KPj4gK3sNCj4+ICsgICAgWEZSRUUoc3BfbGlzdCk7DQo+PiArICAgIHNw
X2xpc3QgPSBOVUxMOw0KPiANCj4gWEZSRUUoKSBpcyBhbHJlYWR5IHNldHRpbmcgc3BfbGlzdCB0
byBOVUxMLg0KDQpBY2sgd2lsbCBmaXggaW4gdjINCg0KPiANCj4+ICsgICAgc3BfbGlzdF9jb3Vu
dCA9IDA7DQo+PiArICAgIHNwX2xpc3RfZW50cnlfc2l6ZSA9IDA7DQo+PiArfQ0KPj4gKw0KPj4g
c3RhdGljIHZvaWQgdW5pbml0X3N1YnNjcmliZXJzKHZvaWQpDQo+PiB7DQo+PiAgICAgICAgIHN1
YnNjcl92bV9jcmVhdGVkX2NvdW50ID0gMDsNCj4+IEBAIC00NDMsNiArNDQyLDY4IEBAIHN0YXRp
YyB2b2lkIHVuaW5pdF9zdWJzY3JpYmVycyh2b2lkKQ0KPj4gICAgICAgICBYRlJFRShzdWJzY3Jf
dm1fZGVzdHJveWVkKTsNCj4+IH0NCj4+IA0KPj4gK3N0YXRpYyBib29sIGZmYV9zcF9saXN0X2Nh
Y2hlX2luaXQoY29uc3Qgdm9pZCAqYnVmLCB1aW50MzJfdCBjb3VudCwNCj4+ICsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGZwaV9zaXplKQ0KPj4gK3sNCj4+ICsg
ICAgY29uc3QgdWludDhfdCAqc3JjID0gYnVmOw0KPj4gKyAgICB1aW50MzJfdCBzZWN1cmVfY291
bnQgPSAwOw0KPj4gKyAgICB1aW50MzJfdCBuLCBpZHggPSAwOw0KPj4gKyAgICBib29sIHdhcm5l
ZCA9IGZhbHNlOw0KPj4gKw0KPj4gKyAgICBpZiAoIGZwaV9zaXplIDwgc2l6ZW9mKHN0cnVjdCBm
ZmFfcGFydGl0aW9uX2luZm9fMV8wKSB8fA0KPj4gKyAgICAgICAgIGZwaV9zaXplID49IEZGQV9Q
QUdFX1NJWkUgKQ0KPj4gKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KPiANCj4gV291bGQgaXQgbWFr
ZSBzZW5zZSB0byBjaGVjayB0aGF0IGZwaV9zaXplIGlzIHdlbGwgYWxpZ25lZCB3aXRoIHN0cnVj
dA0KPiBmZmFfcGFydGl0aW9uX2luZm9fMV8wPyBJZiBpdCdzIGFuIG9kZCBzaXplLCB3ZSdsbCBt
YWtlIHVuYWxpZ25lZA0KPiBhY2Nlc3NlcyBiZWxvdyB3aXRoIG1lbWNweSgpLiBCdXQgcGVyaGFw
cyB0aGF0J3MgYSBiaXQgbXVjaC4gVGhlIFNQTUMNCj4gaXNuJ3Qgc3VwcG9zZWQgdG8gcHJvdmlk
ZSBnYXJiYWdlLg0KDQpNZW1jcHkgc2hvdWxkIHByZXZlbnQgaXNzdWVzIGV2ZW4gaWYgYWNjZXNz
ZXMgYXJlIG5vdCBhbGlnbmVkLg0KSWYgd2UgaGFkIHRoaXMgdGVzdCwgd2UgY2Fubm90IHJldHVy
biBhbiBlcnJvciB0byB0aGUgU1BNQyBzbyB3ZSB3b3VsZCBoYXZlIHRvDQpnZW5lcmF0ZSBvbmUg
dG8gdGhlIGNhbGxlci4gSXQgaXMgc2ltcGxlciBpIHRoaW5rIHRvIGhhbmRsZSBub24tYWxpZ25l
ZCBhcyB3ZSBkbyBub3QNCmV4cGVjdCB0aGUgU1BNQyB0byBnZW5lcmF0ZSBzdWNoIGEgY2FzZS4N
ClRlbGwgbWUgaWYgeW91IGFncmVlLg0KDQo+IA0KPj4gKw0KPj4gKyAgICBpZiAoIGNvdW50ID4g
KEZGQV9SWFRYX1BBR0VfQ09VTlQgKiBGRkFfUEFHRV9TSVpFKSAvIGZwaV9zaXplICkNCj4+ICsg
ICAgICAgIHJldHVybiBmYWxzZTsNCj4+ICsNCj4+ICsgICAgZm9yICggbiA9IDA7IG4gPCBjb3Vu
dDsgbisrICkNCj4+ICsgICAgew0KPj4gKyAgICAgICAgY29uc3Qgc3RydWN0IGZmYV9wYXJ0aXRp
b25faW5mb18xXzAgKmZwaSA9DQo+PiArICAgICAgICAgICAgKGNvbnN0IHZvaWQgKikoc3JjICsg
biAqIGZwaV9zaXplKTsNCj4+ICsNCj4+ICsgICAgICAgIGlmICggIUZGQV9JRF9JU19TRUNVUkUo
ZnBpLT5pZCkgKQ0KPj4gKyAgICAgICAgew0KPj4gKyAgICAgICAgICAgIGlmICggIXdhcm5lZCAp
DQo+IA0KPiBJcyB0aGlzIG5lZWRlZD8gRG9lc24ndCBwcmludGtfb25jZSgpIGFscmVhZHkgZW5z
dXJlIHRoaXM/IE9yIGRpZCB5b3UNCj4gaGFwcGVuIHRvIGxlYXZlIHByaW50a19vbmNlKCkgYnkg
bWlzdGFrZSBhbmQgbWVhbnQgZm9yIHRoaXMgdG8gYmUNCj4gcHJpbnRlZCBvbmNlIGVhY2ggdGlt
ZSBmZmFfc3BfbGlzdF9jYWNoZV9pbml0KCkgaXMgY2FsbGVkLCBzaW5jZQ0KPiAid2FybmVkIiBp
c24ndCBzdGF0aWMuDQoNClZlcnkgcmlnaHQsIGkgbmVlZCB0byByZW1vdmUgdGhlIHdhcm5lZCwg
cHJpbnRrX29uY2Ugc2hvdWxkIGJlIGVub3VnaCBoZXJlLg0KDQo+IA0KPj4gKyAgICAgICAgICAg
IHsNCj4+ICsgICAgICAgICAgICAgICAgcHJpbnRrX29uY2UoWEVOTE9HX0VSUg0KPj4gKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiZmZhOiBGaXJtd2FyZSBpcyBub3QgdXNpbmcgYml0IDE1
IGNvbnZlbnRpb24gZm9yIElEcyAhIVxuIik7DQo+PiArICAgICAgICAgICAgICAgIHdhcm5lZCA9
IHRydWU7DQo+PiArICAgICAgICAgICAgfQ0KPj4gKyAgICAgICAgICAgIHByaW50ayhYRU5MT0df
RVJSDQo+PiArICAgICAgICAgICAgICAgICAgICJmZmE6IFNlY3VyZSBwYXJ0aXRpb24gd2l0aCBp
ZCAweCUwNHggY2Fubm90IGJlIHVzZWRcbiIsDQo+PiArICAgICAgICAgICAgICAgICAgIGZwaS0+
aWQpOw0KPj4gKyAgICAgICAgICAgIGNvbnRpbnVlOw0KPj4gKyAgICAgICAgfQ0KPj4gKw0KPj4g
KyAgICAgICAgc2VjdXJlX2NvdW50Kys7DQo+PiArICAgIH0NCj4+ICsNCj4+ICsgICAgaWYgKCBz
ZWN1cmVfY291bnQgKQ0KPj4gKyAgICB7DQo+PiArICAgICAgICBzcF9saXN0ID0geHphbGxvY19i
eXRlcyhzZWN1cmVfY291bnQgKiBmcGlfc2l6ZSk7DQo+PiArICAgICAgICBpZiAoICFzcF9saXN0
ICkNCj4+ICsgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQo+PiArICAgIH0NCj4+ICsNCj4+ICsg
ICAgc3BfbGlzdF9jb3VudCA9IHNlY3VyZV9jb3VudDsNCj4+ICsgICAgc3BfbGlzdF9lbnRyeV9z
aXplID0gZnBpX3NpemU7DQo+PiArDQo+PiArICAgIGZvciAoIG4gPSAwOyBuIDwgY291bnQ7IG4r
KyApDQo+PiArICAgIHsNCj4+ICsgICAgICAgIGNvbnN0IHN0cnVjdCBmZmFfcGFydGl0aW9uX2lu
Zm9fMV8wICpmcGkgPQ0KPj4gKyAgICAgICAgICAgIChjb25zdCB2b2lkICopKHNyYyArIG4gKiBm
cGlfc2l6ZSk7DQo+PiArDQo+PiArICAgICAgICBpZiAoICFGRkFfSURfSVNfU0VDVVJFKGZwaS0+
aWQpICkNCj4+ICsgICAgICAgICAgICBjb250aW51ZTsNCj4+ICsNCj4+ICsgICAgICAgIG1lbWNw
eShzcF9saXN0ICsgaWR4ICogZnBpX3NpemUsIGZwaSwgZnBpX3NpemUpOw0KPj4gKyAgICAgICAg
aWR4Kys7DQo+PiArICAgIH0NCj4+ICsNCj4+ICsgICAgcmV0dXJuIHRydWU7DQo+PiArfQ0KPj4g
Kw0KPj4gc3RhdGljIGJvb2wgaW5pdF9zdWJzY3JpYmVycyh2b2lkICpidWYsIHVpbnQxNl90IGNv
dW50LCB1aW50MzJfdCBmcGlfc2l6ZSkNCj4+IHsNCj4+ICAgICB1aW50MTZfdCBuOw0KPj4gQEAg
LTU0OSwxMiArNjEwLDIyIEBAIGJvb2wgZmZhX3BhcnRpbmZvX2luaXQodm9pZCkNCj4+ICAgICAg
ICAgZ290byBvdXQ7DQo+PiAgICAgfQ0KPj4gDQo+PiAtICAgIHJldCA9IGluaXRfc3Vic2NyaWJl
cnMoc3BtY19yeCwgY291bnQsIGZwaV9zaXplKTsNCj4+ICsgICAgaWYgKCAhZmZhX3NwX2xpc3Rf
Y2FjaGVfaW5pdChzcG1jX3J4LCBjb3VudCwgZnBpX3NpemUpICkNCj4+ICsgICAgew0KPj4gKyAg
ICAgICAgcHJpbnRrKFhFTkxPR19FUlIgImZmYTogRmFpbGVkIHRvIGNhY2hlIFNQIGxpc3RcbiIp
Ow0KPj4gKyAgICAgICAgZ290byBvdXQ7DQo+PiArICAgIH0NCj4+ICsNCj4+ICsgICAgcmV0ID0g
aW5pdF9zdWJzY3JpYmVycyhzcF9saXN0LCBzcF9saXN0X2NvdW50LCBzcF9saXN0X2VudHJ5X3Np
emUpOw0KPj4gDQo+PiBvdXQ6DQo+PiAgICAgZSA9IGZmYV9yeHR4X3NwbWNfcnhfcmVsZWFzZShu
b3RpZnlfZncpOw0KPj4gICAgIGlmICggZSApDQo+PiAgICAgICAgIHByaW50ayhYRU5MT0dfV0FS
TklORyAiZmZhOiBFcnJvciByZWxlYXNpbmcgU1BNQyBSWCBidWZmZXI6ICVkXG4iLCBlKTsNCj4+
ICsgICAgaWYgKCAhcmV0ICkNCj4+ICsgICAgICAgIHVuaW5pdF9zdWJzY3JpYmVycygpOw0KPiAN
Cj4gcmV0IGlzIGluaXRpYWxseSBmYWxzZSBhbmQgY2FuIG9ubHkgYmUgc2V0IHRvIHRydWUgaWYN
Cj4gaW5pdF9zdWJzY3JpYmVycygpIHJldHVybnMgdHJ1ZS4gU28gdGhlcmUncyBuZXZlciBhbnkg
cG9pbnQgaW4gY2FsbGluZw0KPiB1bmluaXRfc3Vic2NyaWJlcnMoKS4NCg0KVHJ1ZSwgSSB3aWxs
IGZpeCB0aGF0Lg0KDQo+IA0KPj4gKyAgICBpZiAoICFyZXQgKQ0KPj4gKyAgICAgICAgZmZhX3Nw
X2xpc3RfY2FjaGVfZnJlZSgpOw0KPiANCj4gcmV0IGNhbiBiZSBmYWxzZSBldmVuIGlmIGZmYV9z
cF9saXN0X2NhY2hlX2luaXQoKSBoYXNuJ3QgYmVlbiBjYWxsZWQNCj4geWV0LiBDYWxsaW5nIGZm
YV9zcF9saXN0X2NhY2hlX2ZyZWUoKSBhbnl3YXkgaXMgaGFybWxlc3MsIGJ1dCBub3QNCj4gZWxl
Z2FudC4NCg0KeWVzLCBpIHdpbGwgcmV3b3JrIGEgYml0IHRoZSBjbGVhbnVwIGxvZ2ljIGhlcmUu
DQoNClRoYW5rcyBmb3IgdGhlIHJldmlldw0KDQpDaGVlcnMNCkJlcnRyYW5kDQoNCj4gDQo+IENo
ZWVycywNCj4gSmVucw0KPiANCj4+ICAgICByZXR1cm4gcmV0Ow0KPj4gfQ0KPj4gDQo+PiAtLQ0K
Pj4gMi41Mi4wDQoNCg0K


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 08:58:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 08:58:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244019.1543491 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwz6w-0006WM-Fu; Mon, 02 Mar 2026 08:58:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244019.1543491; Mon, 02 Mar 2026 08:58:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwz6w-0006WF-Ce; Mon, 02 Mar 2026 08:58:42 +0000
Received: by outflank-mailman (input) for mailman id 1244019;
 Mon, 02 Mar 2026 08:58: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=f7KG=BC=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vwz6v-0006W7-AC
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 08:58: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 00fdda3e-1616-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 09:58:39 +0100 (CET)
Received: from AS9PR06CA0085.eurprd06.prod.outlook.com (2603:10a6:20b:464::15)
 by DU0PR08MB8229.eurprd08.prod.outlook.com (2603:10a6:10:3a7::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.20; Mon, 2 Mar
 2026 08:58:30 +0000
Received: from AM4PEPF00027A6A.eurprd04.prod.outlook.com
 (2603:10a6:20b:464:cafe::49) by AS9PR06CA0085.outlook.office365.com
 (2603:10a6:20b:464::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.19 via Frontend Transport; Mon,
 2 Mar 2026 08:58:22 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM4PEPF00027A6A.mail.protection.outlook.com (10.167.16.88) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.16
 via Frontend Transport; Mon, 2 Mar 2026 08:58:30 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by GV2PR08MB11739.eurprd08.prod.outlook.com (2603:10a6:150:327::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.20; Mon, 2 Mar
 2026 08:57:25 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9654.020; Mon, 2 Mar 2026
 08:57: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: 00fdda3e-1616-11f1-b164-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=CfyhpZ5j1DazCsF8HfRL/j65X89ARSuuah5BMNS4pdGlTz9+sgBF/Z9ler9iy43ZEQPJb7z0NXW4hq3+XC2qcBUcoSzJTQ2qtB7a4U/xma5/mNz78UoYYqzqHRBDoOiGa1CipyB3qGqt09hD6JnuiQbD4e3hyXMLoJU5tKVo8XyW5YHJrxY6ahh2n8cUdH3AiyEG0UTzY1r6YqnNXYSNoGBQ6JSzoFJlHmldp/xzZazrYVs46HFCWRFdJ4De3fluGmYmPRRKKqzOpMJMYMiTq0iNdOPsoE0/rv7vDGc1bfCVuqr0lFBmidaRWe29VXI3oM4AggpiLBHoysmXiNOO8w==
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=F8Z8HZbsZzhztpO46+NuZQSGKMkqTxQX0Nj3JSnA3N4=;
 b=T7hQ/OlkoFrtSrIdjUorp7IcTswlI1z0uo96NQgR4CQhgRnGWCmK5ndnzpIpJl8EQmh1rIFFGN5MTK1mGKLJvRp8/4T/DcA69KMQIL35eIlbtnFaRrpxQBzcGgmNvvg6JelBMetX8wVCz2DJ7+RrxdeUkBFy/dbOBv8YQv6FuNhUEpQB3XepRPvYOhlfTlFHqB3u9uQD8tE4AZ7cvzbmkjC/hys4tH2ou+v33vlEfStdjokJScrMS5ZPL/M+Z35AVVBStyvXJRc6uJ2JyXBJrg7TOv0j6DrFQLCYXpQYdjG6Xx0GtdTiEpTgNtzCbnhA87PP3IEl1IjTmU7nk7w7gQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=F8Z8HZbsZzhztpO46+NuZQSGKMkqTxQX0Nj3JSnA3N4=;
 b=Ez57r6NwkoxgqvUaetY7u83eY8kjFIjTFqBoMpwGJo1Mgl7edFq7jfHPDaw2UL251U1pxtW33u6B1BwYZHx/riQcouU983dNoJQUKrJzPkKX0J4cGzdVU29OycdP8/41TSjVyozv+FxIUlBHdHJqWpGltqbKrEINjk+1u9Ct1ss=
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=LaMPJcpvpdRQxI/QWU0ycl/Qt26BeEjGY6o7+F0XYCZ0BCClVKI8FFBErei4B5w1IjoBmQxG2s3Gz0s3eSeN4+jcUNOHMZK3+bxhdUJ4zXNTBOsErwYoYfTf8q0TvcMOz36ao/9qgRuYRv5wQfnjMwcQdaqQHw1b/Q4fXLTnttrX7X3Cw/EsszGvdKUix6hGj82uHP1ktEmrnxnsvQ/Pdxu6vKaQj+royCDeVyCseFJGJ7190dXfALZlpCm4UVgeRZI1hgdIqttUtiEkySOKt4AHMYmPvKO1Z4sQpye6KJUqI3lHrB9YvacSIUDnSYUcK1nmEXlSTQsYOVyuSs1wPg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=F8Z8HZbsZzhztpO46+NuZQSGKMkqTxQX0Nj3JSnA3N4=;
 b=Ba3xz5Zmsl0xtZHgu7hzUC/I3CcCKZ5ms9R6d2Fdrs6jBfowp+eTa4x3uA37Bdn1dCsNCDxSUm9PQygvdDD36Gw06/+N0wIMzPdWQiP5qI4DT7U9qBSwDg3uVoLXVTQMvkYB6hy4zI6wOoz08mFvaDBqMdQEf9v76TSGW/O9gTq+FaJ0DOTxnfVenI3lxHsiikYmPP9t+mHzV3W5vBQRuYKF2iz1/Un1gEdlXE1QwWBKpKg+h299ExwbJH9pCylM75ZoUPL2QoaXzO22g+Imx77VojMibuRJSdCq5qqnMr4MxKIFz2ZLT2YFI9ewA3ZA7P27/e6Rrj9AW+vmJk2oxg==
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=F8Z8HZbsZzhztpO46+NuZQSGKMkqTxQX0Nj3JSnA3N4=;
 b=Ez57r6NwkoxgqvUaetY7u83eY8kjFIjTFqBoMpwGJo1Mgl7edFq7jfHPDaw2UL251U1pxtW33u6B1BwYZHx/riQcouU983dNoJQUKrJzPkKX0J4cGzdVU29OycdP8/41TSjVyozv+FxIUlBHdHJqWpGltqbKrEINjk+1u9Ct1ss=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 4/4] xen/arm: ffa: Add cached GET_REGS support
Thread-Topic: [PATCH 4/4] xen/arm: ffa: Add cached GET_REGS support
Thread-Index: AQHcpj3kq0uMG7qoMEmDaKexZXnDI7WWpiEAgARSgwA=
Date: Mon, 2 Mar 2026 08:57:24 +0000
Message-ID: <C0024849-8ACF-4662-B89F-E327732FA669@arm.com>
References: <cover.1772013062.git.bertrand.marquis@arm.com>
 <832ba950a53a7139b51053f6570fd9b26ba42df1.1772013062.git.bertrand.marquis@arm.com>
 <CAHUa44EjtezLGx=YNtyK-xCU9gmEvBGVLhmG=0YpRWftFxGY-Q@mail.gmail.com>
In-Reply-To:
 <CAHUa44EjtezLGx=YNtyK-xCU9gmEvBGVLhmG=0YpRWftFxGY-Q@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|GV2PR08MB11739:EE_|AM4PEPF00027A6A:EE_|DU0PR08MB8229:EE_
X-MS-Office365-Filtering-Correlation-Id: dce13dc8-eec6-4ddf-1bfc-08de7839e064
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|10070799003|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 pL6MuGIwGDMP6mLocpApm0JMxsGxBQEfoxDZrXQALbzQ4HTrU6GyznIoaDtxlpNPl2arLGVLoBlvzHAh/my4kUqNv3r8jCxJ/00tnS95SO4syMZIXWTXT3OIVmrIgKh05tVqun+3nHdKoCbcPj7koTRopDDJoGqRK0zKPZimCx0f1dYwvxfSZL59KGA0rSkN5C7AUzibpL8sNOpKpaJFGzKHfOhk1CK0AST12l6hUgg15PgW0yK5d9Vv+QGDjwhHoE8gUk8wmOcPIwtHQVrvWW0LVlhhLTiVAo7SgnzaRv3G2RQX8ybjezq9T8DqoXPglH4m+2QQgWV7EhxOcM/ELbmDks/cRiZ6pvY9E8AjEaUSp3tBS4zkvq06TsyJxcmuxoml8OgLzUtTgdf8q/cKZa4HawW/vBCTUYo/VSE1aHPrOVKDeXWWoILfY7oIYvDhSgL4VBHzEg2YsieMx4pXH0eyncotrUt/Qbk826KRg59Wh3Fzq9+7QeSlzU6qOIAmfeol+P9COjUUoilxjUo2crV6FJJd2Oka6+Ksl314hRHR6Q/d51A6hyXoPl7viZjEc5306PUIY54TWGLVT6aZG/BXnpbLUQcGya8zENQlZIZZY6o2i0g2foq9WwDGhbVhOUSzy9pymVDs8ckItvtGGubW9rsVBuJEPlcw9hy7x7bjBeZ2cM7mcWMD9lVq4aiBNoN7UPp+WHHnOJa0E1HIeJAOqfYVcMCYACBtOXaTdjSNsqxcXieeU+fM2y3rPxeViaKo66mPJxCsD0BLdfjeZKaHOiXQ2xlv8lqds5txgMk=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(10070799003)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <822CD00BF5537D41B20498A4F818918E@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB11739
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00027A6A.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	613c4d93-8f76-4569-0289-08de7839b945
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|35042699022|376014|14060799003|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	iHffDa4jfSHsyXWu/hyKlkQfel7X7Vx38PlTaqVRPonSddrTp9LS3s9TxmEd2A+AarNC80OH7BaVE278vhZDgvuy//TOksXNH11cbMtDrgSVBbPL8OeMTNVDvNjaT1Nw7SXbOaxDuMlQnWHIBuw0/XK+kPDeRj0Vh1UukfaTA3Dx435aH4LcTFVKNv8veZuB1sO2agjysuFBhPaMGJ8dEWv9PHRABH+GmbrSokFW/Fc4LaKuJ4k8Pftra8upBoG20kFQHhGYTvFMxMA/6yeUFNOW8j8+9GMMP/xShn/aD54djIryylLNJIGFb2WEMBM+fT00xsEBceajTij2RWhnZePUN1ihgcO0vr2SG8lrufuhMxoOc1H/aSPIVA7GinYpDZfAARM4+g25SobVa1M2nAUiugS+Euia8TjwbEtZ2d7VuSpH14X4kTOGu2J9ol7GYqWu78l0ET6M6WAEGFsihY9wNhcCxvgoCJQ3Qdfd6kniHxrsWpbj8Vd4KU3XfBY0cIlAAci/YmJtBbcUdBuZTcIEDjL3uCUmYlHc9Xz//h0dj1fQsFjuE7PLlIyVdPSp95jrrxDV5j6+l8Sdt+qoBmtqxzVniae59lA1i/eJqHVIQMn45kgv9uEToaD7ADzfFWM5JnUMBvNPbZP0208TwdkoSFxpML72NAYG5qTs2Sd6Gp9a1Zv0YeZU9aUomR3enLa5lC1yvGlo1vsI6pdxRB7mb5qBwVzstcyiXAHw6DKw1ICFKH3Tg7uNwZQviK1f+pVCeX6pbK8n/g6nsCLsZe7p/BnUj+l4yYlzaHgrZnzDIuVcso2kFlwX7NTf4YqPaGY5HBYNvjzY9Sy3iZfXIA==
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(35042699022)(376014)(14060799003)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	CSfW9YWhSuiCmmpaZubl56CCiEws3dBAFgtWm+Asz7XfE+CEN6jOhhnnkI5zgKWEHda8RVZEO5SkGfYLLlpsepnvNSCPAiEr57DUNvxV0+p386mfjZdfz9wZhIgm641WBr7Ll5AG6q0bdfSsC5YGngsajtoXZBm2ZgaxyhRBLErGpe+Qt7/mFARMdKL+76KSJ185KF+DuYrJ8GIK9trEkOAGu3/NIyPDmPNUvWIJ2leFtfix4RUbzIKkBBAPgXVkomyanG6CKZ3sZyHdcBrP9rrToP6PWA994GqLCJVyAYMIl9g4FFNqlpQOH5D5ceRbnJlEYxJY5Y2tlWW0u5bF2qmJPe3mYqPKQ+c7lC2oTJrupfdWc59p5T/B2WPfT/YvbqE9DqEPN4Q76X/NOhB1UEsJvVxfiVALrtkKxM4VtpwHHih6CdtwJ25li1BOgRtz
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Mar 2026 08:58:30.5163
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dce13dc8-eec6-4ddf-1bfc-08de7839e064
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:
	AM4PEPF00027A6A.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8229

SGkgSmVucywNCg0KPiBPbiAyNyBGZWIgMjAyNiwgYXQgMTU6NTYsIEplbnMgV2lrbGFuZGVyIDxq
ZW5zLndpa2xhbmRlckBsaW5hcm8ub3JnPiB3cm90ZToNCj4gDQo+IEhpIEJlcnRyYW5kLA0KPiAN
Cj4gT24gV2VkLCBGZWIgMjUsIDIwMjYgYXQgMTE6MDLigK9BTSBCZXJ0cmFuZCBNYXJxdWlzDQo+
IDxiZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+IHdyb3RlOg0KPj4gDQo+PiBGRi1BIHYxLjIgZGVm
aW5lcyBQQVJUSVRJT05fSU5GT19HRVRfUkVHUyBmb3IgcmVnaXN0ZXItYmFzZWQgcGFydGl0aW9u
DQo+PiBpbmZvIHJldHJpZXZhbCwgYnV0IFhlbiBjdXJyZW50bHkgb25seSBzdXBwb3J0cyB0aGUg
YnVmZmVyLWJhc2VkIEdFVA0KPj4gcGF0aCBmb3IgZ3Vlc3RzLg0KPj4gDQo+PiBJbXBsZW1lbnQg
R0VUX1JFR1MgdXNpbmcgdGhlIGNhY2hlZCBTUCBsaXN0IGFuZCBWTSBlbnRyaWVzLCBpbmNsdWRp
bmcNCj4+IHRoZSByZWdpc3RlciB3aW5kb3cgbGF5b3V0IGFuZCBpbnB1dCB2YWxpZGF0aW9uLiBU
cmFjayBWTSBsaXN0IGNoYW5nZXMNCj4+IHZpYSB0aGUgcGFydGluZm8gdGFnIGFuZCB1c2UgaXQg
dG8gdmFsaWRhdGUgR0VUX1JFR1MgdGFnIGlucHV0cy4gRW5zdXJlDQo+PiB0aGF0IHdoZW4gYSBu
b24tTmlsIFVVSUQgaXMgc3BlY2lmaWVkLCB0aGUgVVVJRCBmaWVsZHMgaW4gYm90aCBHRVQgYW5k
DQo+PiBHRVRfUkVHUyByZXN1bHRzIGFyZSBNQlogYXMgcmVxdWlyZWQgYnkgdGhlIHNwZWNpZmlj
YXRpb24uDQo+PiANCj4+IFBBUlRJVElPTl9JTkZPX0dFVF9SRUdTIGlzIGF2YWlsYWJsZSB0byB2
MS4yIGd1ZXN0cywgcmV0dXJuaW5nIGNhY2hlZCBTUA0KPj4gZW50cmllcyBhbmQgVk0gZW50cmll
cyB3aXRoIFVVSURzIHplcm9lZCBmb3Igbm9uLU5pbCBVVUlEIHF1ZXJpZXMuDQo+PiANCj4+IFNp
Z25lZC1vZmYtYnk6IEJlcnRyYW5kIE1hcnF1aXMgPGJlcnRyYW5kLm1hcnF1aXNAYXJtLmNvbT4N
Cj4+IC0tLQ0KPj4geGVuL2FyY2gvYXJtL3RlZS9mZmEuYyAgICAgICAgICB8ICAxNiArKysNCj4+
IHhlbi9hcmNoL2FybS90ZWUvZmZhX3BhcnRpbmZvLmMgfCAyMTEgKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysNCj4+IHhlbi9hcmNoL2FybS90ZWUvZmZhX3ByaXZhdGUuaCAgfCAgIDQg
Ky0NCj4+IDMgZmlsZXMgY2hhbmdlZCwgMjMwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkN
Cj4+IA0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90ZWUvZmZhLmMgYi94ZW4vYXJjaC9h
cm0vdGVlL2ZmYS5jDQo+PiBpbmRleCBhYTQzYWUyNTk1ZDcuLmQ1NmViMjBjMjIzOSAxMDA2NDQN
Cj4+IC0tLSBhL3hlbi9hcmNoL2FybS90ZWUvZmZhLmMNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS90
ZWUvZmZhLmMNCj4+IEBAIC00NCw2ICs0NCwxMSBAQA0KPj4gICogICAtIGRvZXNuJ3Qgc3VwcG9y
dCBzaWduYWxsaW5nIHRoZSBzZWNvbmRhcnkgc2NoZWR1bGVyIG9mIHBlbmRpbmcNCj4+ICAqICAg
ICBub3RpZmljYXRpb24gZm9yIHNlY3VyZSBwYXJ0aXRpb25zDQo+PiAgKiAgIC0gZG9lc24ndCBz
dXBwb3J0IG5vdGlmaWNhdGlvbnMgZm9yIFhlbiBpdHNlbGYNCj4+ICsgKiBvIEZGQV9QQVJUSVRJ
T05fSU5GT19HRVQvR0VUX1JFR1M6DQo+PiArICogICAtIHYxLjAgZ3Vlc3RzIG1heSBzZWUgZHVw
bGljYXRlIFNQIElEcyB3aGVuIGZpcm13YXJlIHByb3ZpZGVzIFVVSURzDQo+PiArICogICAtIFNQ
IGxpc3QgaXMgY2FjaGVkIGF0IGluaXQ7IFNQTUMgdGFnIGNoYW5nZXMgYXJlIG5vdCB0cmFja2Vk
DQo+PiArICogICAgIGJldHdlZW4gY2FsbHMNCj4+ICsgKiAgIC0gU1AgbGlzdCBpcyBjYXBwZWQg
YXQgRkZBX01BWF9OVU1fU1AgZW50cmllcw0KPj4gICoNCj4+ICAqIFRoZXJlIGFyZSBzb21lIGxh
cmdlIGxvY2tlZCBzZWN0aW9ucyB3aXRoIGZmYV9zcG1jX3R4X2xvY2sgYW5kDQo+PiAgKiBmZmFf
c3BtY19yeF9sb2NrLiBFc3BlY2lhbGx5IHRoZSBmZmFfc3BtY190eF9sb2NrIHNwaW5sb2NrIHVz
ZWQNCj4+IEBAIC0xODgsNiArMTkzLDcgQEAgc3RhdGljIGJvb2wgZmZhX25lZ290aWF0ZV92ZXJz
aW9uKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPj4gICAgICAgICAgICAgd3JpdGVfbG9j
aygmZmZhX2N0eF9saXN0X3J3bG9jayk7DQo+PiAgICAgICAgICAgICBsaXN0X2FkZF90YWlsKCZj
dHgtPmN0eF9saXN0LCAmZmZhX2N0eF9oZWFkKTsNCj4+ICAgICAgICAgICAgIHdyaXRlX3VubG9j
aygmZmZhX2N0eF9saXN0X3J3bG9jayk7DQo+PiArICAgICAgICAgICAgZmZhX3BhcnRpbmZvX2lu
Y190YWcoKTsNCj4+ICAgICAgICAgfQ0KPj4gDQo+PiAgICAgICAgIGdvdG8gb3V0X2NvbnRpbnVl
Ow0KPj4gQEAgLTM0MSw2ICszNDcsMTIgQEAgc3RhdGljIHZvaWQgaGFuZGxlX2ZlYXR1cmVzKHN0
cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPj4gICAgIGNhc2UgRkZBX0ZFQVRVUkVfU0NIRURV
TEVfUkVDVl9JTlRSOg0KPj4gICAgICAgICBmZmFfc2V0X3JlZ3Nfc3VjY2VzcyhyZWdzLCBHVUVT
VF9GRkFfU0NIRURVTEVfUkVDVl9JTlRSX0lELCAwKTsNCj4+ICAgICAgICAgYnJlYWs7DQo+PiAr
ICAgIGNhc2UgRkZBX1BBUlRJVElPTl9JTkZPX0dFVF9SRUdTOg0KPj4gKyAgICAgICAgaWYgKCBB
Q0NFU1NfT05DRShjdHgtPmd1ZXN0X3ZlcnMpID49IEZGQV9WRVJTSU9OXzFfMiApDQo+PiArICAg
ICAgICAgICAgZmZhX3NldF9yZWdzX3N1Y2Nlc3MocmVncywgMCwgMCk7DQo+PiArICAgICAgICBl
bHNlDQo+PiArICAgICAgICAgICAgZmZhX3NldF9yZWdzX2Vycm9yKHJlZ3MsIEZGQV9SRVRfTk9U
X1NVUFBPUlRFRCk7DQo+PiArICAgICAgICBicmVhazsNCj4+IA0KPj4gICAgIGNhc2UgRkZBX05P
VElGSUNBVElPTl9CSU5EOg0KPj4gICAgIGNhc2UgRkZBX05PVElGSUNBVElPTl9VTkJJTkQ6DQo+
PiBAQCAtNDAyLDYgKzQxNCw5IEBAIHN0YXRpYyBib29sIGZmYV9oYW5kbGVfY2FsbChzdHJ1Y3Qg
Y3B1X3VzZXJfcmVncyAqcmVncykNCj4+ICAgICBjYXNlIEZGQV9QQVJUSVRJT05fSU5GT19HRVQ6
DQo+PiAgICAgICAgIGZmYV9oYW5kbGVfcGFydGl0aW9uX2luZm9fZ2V0KHJlZ3MpOw0KPj4gICAg
ICAgICByZXR1cm4gdHJ1ZTsNCj4+ICsgICAgY2FzZSBGRkFfUEFSVElUSU9OX0lORk9fR0VUX1JF
R1M6DQo+PiArICAgICAgICBmZmFfaGFuZGxlX3BhcnRpdGlvbl9pbmZvX2dldF9yZWdzKHJlZ3Mp
Ow0KPj4gKyAgICAgICAgcmV0dXJuIHRydWU7DQo+PiAgICAgY2FzZSBGRkFfUlhfUkVMRUFTRToN
Cj4+ICAgICAgICAgZSA9IGZmYV9yeF9yZWxlYXNlKGN0eCk7DQo+PiAgICAgICAgIGJyZWFrOw0K
Pj4gQEAgLTYyOSw2ICs2NDQsNyBAQCBzdGF0aWMgaW50IGZmYV9kb21haW5fdGVhcmRvd24oc3Ry
dWN0IGRvbWFpbiAqZCkNCj4+ICAgICAgICAgd3JpdGVfbG9jaygmZmZhX2N0eF9saXN0X3J3bG9j
ayk7DQo+PiAgICAgICAgIGxpc3RfZGVsKCZjdHgtPmN0eF9saXN0KTsNCj4+ICAgICAgICAgd3Jp
dGVfdW5sb2NrKCZmZmFfY3R4X2xpc3Rfcndsb2NrKTsNCj4+ICsgICAgICAgIGZmYV9wYXJ0aW5m
b19pbmNfdGFnKCk7DQo+PiAgICAgfQ0KPj4gDQo+PiAgICAgZmZhX3J4dHhfZG9tYWluX2Rlc3Ry
b3koZCk7DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3RlZS9mZmFfcGFydGluZm8uYyBi
L3hlbi9hcmNoL2FybS90ZWUvZmZhX3BhcnRpbmZvLmMNCj4+IGluZGV4IGQ3ZjliOWY3MTUzYy4u
MWM3YjM1NzlmNzk4IDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL3RlZS9mZmFfcGFydGlu
Zm8uYw0KPj4gKysrIGIveGVuL2FyY2gvYXJtL3RlZS9mZmFfcGFydGluZm8uYw0KPj4gQEAgLTI4
LDEwICsyOCwzOSBAQCBzdHJ1Y3QgZmZhX3BhcnRpdGlvbl9pbmZvXzFfMSB7DQo+PiAgICAgdWlu
dDhfdCB1dWlkWzE2XTsNCj4+IH07DQo+PiANCj4+ICsvKiBSZWdpc3RlcnMgYTMuLmExNyAoMTUg
cmVncykgY2FycnkgcGFydGl0aW9uIGRlc2NyaXB0b3JzLCAzIHJlZ3MgZWFjaC4gKi8NCj4+ICsj
ZGVmaW5lIEZGQV9QQVJUSU5GT19SRUdfTUFYX0VOVFJJRVMgXA0KPj4gKyAgICAoKDE1ICogc2l6
ZW9mKHVpbnQ2NF90KSkgLyBzaXplb2Yoc3RydWN0IGZmYV9wYXJ0aXRpb25faW5mb18xXzEpKQ0K
Pj4gKw0KPj4gLyogU1AgbGlzdCBjYWNoZSAoc2VjdXJlIGVuZHBvaW50cyBvbmx5KTsgcG9wdWxh
dGVkIGF0IGluaXQuICovDQo+PiBzdGF0aWMgdm9pZCAqc3BfbGlzdCBfX3JlYWRfbW9zdGx5Ow0K
Pj4gc3RhdGljIHVpbnQzMl90IHNwX2xpc3RfY291bnQgX19yZWFkX21vc3RseTsNCj4+IHN0YXRp
YyB1aW50MzJfdCBzcF9saXN0X2VudHJ5X3NpemUgX19yZWFkX21vc3RseTsNCj4+ICsNCj4+ICsv
KiBTUCBsaXN0IGlzIHN0YXRpYzsgdGFnIG9ubHkgbW92ZXMgd2hlbiBWTXMgYXJlIGFkZGVkL3Jl
bW92ZWQuICovDQo+PiArc3RhdGljIGF0b21pY190IGZmYV9wYXJ0aW5mb190YWcgPSBBVE9NSUNf
SU5JVCgxKTsNCj4+ICsNCj4+ICt2b2lkIGZmYV9wYXJ0aW5mb19pbmNfdGFnKHZvaWQpDQo+PiAr
ew0KPj4gKyAgICBhdG9taWNfaW5jKCZmZmFfcGFydGluZm9fdGFnKTsNCj4gDQo+IERvIHdlIG5l
ZWQgdG8gd29ycnkgYWJvdXQgdGhpcyB2YWx1ZSB3cmFwcGluZz8gSXMgd3JhcHBpbmcgcGVybWl0
dGVkPw0KDQp3cmFwcGluZyBpcyBwZXJtaXR0ZWQsIGFzIHRoZSBlbmQgdGhpcyB2YWx1ZSBpcyB1
c2VkIHRvIGVuc3VyZSBjaGFuZ2VzIGluDQp0aGUgbWlkZGxlIG9mIGluZm9fZ2V0X3JlZ3MgYXJl
IGRldGVjdGVkLiBIYXZpbmcgZW5vdWdoIGNoYW5nZXMgaW4gdGhlDQptaWRkbGUgZm9yIHRoaXMg
dG8gd3JhcCBhbmQgZW5kIHVwIHVuLWRldGVjdGVkIGJ5IHRoZSBjYWxsZXIgaXMgbmVhciB0byBp
bXBvc3NpYmxlLg0KSW4gYW55IGNhc2UsIHRoZSBzdGF0dXMgd2UgcmV0dXJuIGlzIGEgc25hcHNo
b3Qgd2hpY2ggaGF2ZSBjaGFuZ2VkIGFzIHNvb24gYXMNCnRoZSByZXN1bHQgaXMgcmV0dXJuZWQg
c28gaSB3b3VsZCBjb25zaWRlciB0aGlzIGEgYmVzdCBlZmZvcnQgKGV2ZW4gaWYgdGhlIHByb2Jh
YmlsaXR5DQpmb3IgdGhpcyB0byBoYXBwZW4gaXMgdmVyeSB2ZXJ5IG5lYXIgdG8gMCkuDQoNCj4g
DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBpbmxpbmUgdWludDE2X3QgZmZhX3BhcnRpbmZvX2dl
dF90YWcodm9pZCkNCj4+ICt7DQo+PiArICAgIC8qDQo+PiArICAgICAqIFRhZyBtb3ZlcyB3aXRo
IFZNIGxpc3QgY2hhbmdlcyBvbmx5Lg0KPj4gKyAgICAgKg0KPj4gKyAgICAgKiBMaW1pdGF0aW9u
OiB3ZSBjYW5ub3QgZGV0ZWN0IGFuIFNQTUMgdGFnIGNoYW5nZSBiZXR3ZWVuIGNhbGxzIGJlY2F1
c2Ugd2UNCj4+ICsgICAgICogZG8gbm90IHJldGFpbiB0aGUgcHJldmlvdXMgU1BNQyB0YWc7IHdl
IG9ubHkgcmVmcmVzaCBpdCB2aWEgdGhlIG1hbmRhdG9yeQ0KPj4gKyAgICAgKiBzdGFydF9pbmRl
eD0wIGNhbGwgYW5kIGFzc3VtZSBpdCBzdGF5cyBzdGFibGUgd2hpbGUgY29tYmluZWRfdGFnIChv
dXINCj4+ICsgICAgICogVk0vU1AtY291bnQgdGFnKSBpcyB1c2VkIGZvciBndWVzdCB2YWxpZGF0
aW9uLiBUaGlzIG1lYW5zIFNQTUMgdGFnDQo+PiArICAgICAqIGNoYW5nZXMgYWxvbmUgd2lsbCBu
b3QgdHJpZ2dlciBSRVRSWS4NCj4+ICsgICAgICovDQo+PiArICAgIGlmICggSVNfRU5BQkxFRChD
T05GSUdfRkZBX1ZNX1RPX1ZNKSApDQo+PiArICAgICAgICByZXR1cm4gYXRvbWljX3JlYWQoJmZm
YV9wYXJ0aW5mb190YWcpICYgR0VOTUFTSygxNSwgMCk7DQo+PiArICAgIGVsc2UNCj4+ICsgICAg
ICAgIHJldHVybiAxOw0KPj4gK30NCj4+IHN0YXRpYyBpbnQzMl90IGZmYV9wYXJ0aXRpb25faW5m
b19nZXQoc3RydWN0IGZmYV91dWlkIHV1aWQsIHVpbnQzMl90IGZsYWdzLA0KPj4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqY291bnQsIHVpbnQzMl90ICpm
cGlfc2l6ZSkNCj4+IHsNCj4+IEBAIC0xMjUsNiArMTU0LDcgQEAgc3RhdGljIGludDMyX3QgZmZh
X2dldF9zcF9wYXJ0aW5mbyhzdHJ1Y3QgZmZhX3V1aWQgdXVpZCwgdWludDMyX3QgKnNwX2NvdW50
LA0KPj4gICAgIGZvciAoIG4gPSAwOyBuIDwgc3BfbGlzdF9jb3VudDsgbisrICkNCj4+ICAgICB7
DQo+PiAgICAgICAgIHZvaWQgKmVudHJ5ID0gc3BfbGlzdCArIG4gKiBzcF9saXN0X2VudHJ5X3Np
emU7DQo+PiArICAgICAgICB2b2lkICpkc3RfcG9zOw0KPj4gDQo+PiAgICAgICAgIGlmICggIWZm
YV9zcF9lbnRyeV9tYXRjaGVzX3V1aWQoZW50cnksIHV1aWQpICkNCj4+ICAgICAgICAgICAgIGNv
bnRpbnVlOw0KPj4gQEAgLTEzNiwxMSArMTY2LDIwIEBAIHN0YXRpYyBpbnQzMl90IGZmYV9nZXRf
c3BfcGFydGluZm8oc3RydWN0IGZmYV91dWlkIHV1aWQsIHVpbnQzMl90ICpzcF9jb3VudCwNCj4+
ICAgICAgICAgICogVGhpcyBpcyBhIG5vbi1jb21wbGlhbmNlIHRvIHRoZSBzcGVjaWZpY2F0aW9u
IGJ1dCAxLjAgVk1zIHNob3VsZA0KPj4gICAgICAgICAgKiBoYW5kbGUgdGhhdCBvbiB0aGVpciBv
d24gdG8gc2ltcGxpZnkgWGVuIGltcGxlbWVudGF0aW9uLg0KPj4gICAgICAgICAgKi8NCj4+ICsg
ICAgICAgIGRzdF9wb3MgPSAqZHN0X2J1ZjsNCj4+ICAgICAgICAgcmV0ID0gZmZhX2NvcHlfaW5m
byhkc3RfYnVmLCBlbmRfYnVmLCBlbnRyeSwgZHN0X3NpemUsDQo+PiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3BfbGlzdF9lbnRyeV9zaXplKTsNCj4+ICAgICAgICAgaWYgKCByZXQgKQ0K
Pj4gICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4+IA0KPj4gKyAgICAgICAgaWYgKCAhZmZhX3V1
aWRfaXNfbmlsKHV1aWQpICYmDQo+PiArICAgICAgICAgICAgIGRzdF9zaXplID49IHNpemVvZihz
dHJ1Y3QgZmZhX3BhcnRpdGlvbl9pbmZvXzFfMSkgKQ0KPj4gKyAgICAgICAgew0KPj4gKyAgICAg
ICAgICAgIHN0cnVjdCBmZmFfcGFydGl0aW9uX2luZm9fMV8xICpmcGkgPSBkc3RfcG9zOw0KPj4g
Kw0KPj4gKyAgICAgICAgICAgIG1lbXNldChmcGktPnV1aWQsIDAsIHNpemVvZihmcGktPnV1aWQp
KTsNCj4+ICsgICAgICAgIH0NCj4+ICsNCj4+ICAgICAgICAgY291bnQrKzsNCj4+ICAgICB9DQo+
PiANCj4+IEBAIC0xNTIsNiArMTkxLDM4IEBAIHN0YXRpYyBpbnQzMl90IGZmYV9nZXRfc3BfcGFy
dGluZm8oc3RydWN0IGZmYV91dWlkIHV1aWQsIHVpbnQzMl90ICpzcF9jb3VudCwNCj4+ICAgICBy
ZXR1cm4gRkZBX1JFVF9PSzsNCj4+IH0NCj4+IA0KPj4gK3N0YXRpYyB1aW50MTZfdCBmZmFfZ2V0
X3NwX3BhcnRpbmZvX3JlZ3Moc3RydWN0IGZmYV91dWlkIHV1aWQsDQo+PiArICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCBzdGFydF9pbmRleCwNCj4+ICsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90ICpvdXRfcmVn
cywNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQxNl90
IG1heF9lbnRyaWVzKQ0KPj4gK3sNCj4+ICsgICAgdWludDMyX3QgaWR4ID0gMDsNCj4+ICsgICAg
dWludDE2X3QgZmlsbGVkID0gMDsNCj4+ICsgICAgdWludDMyX3QgbjsNCj4+ICsNCj4+ICsgICAg
Zm9yICggbiA9IDA7IG4gPCBzcF9saXN0X2NvdW50ICYmIGZpbGxlZCA8IG1heF9lbnRyaWVzOyBu
KysgKQ0KPj4gKyAgICB7DQo+PiArICAgICAgICB2b2lkICplbnRyeSA9IHNwX2xpc3QgKyBuICog
c3BfbGlzdF9lbnRyeV9zaXplOw0KPj4gKw0KPj4gKyAgICAgICAgaWYgKCAhZmZhX3NwX2VudHJ5
X21hdGNoZXNfdXVpZChlbnRyeSwgdXVpZCkgKQ0KPj4gKyAgICAgICAgICAgIGNvbnRpbnVlOw0K
Pj4gKw0KPj4gKyAgICAgICAgaWYgKCBpZHgrKyA8IHN0YXJ0X2luZGV4ICkNCj4+ICsgICAgICAg
ICAgICBjb250aW51ZTsNCj4+ICsNCj4+ICsgICAgICAgIG1lbWNweSgmb3V0X3JlZ3NbZmlsbGVk
ICogM10sIGVudHJ5LA0KPj4gKyAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgZmZhX3BhcnRp
dGlvbl9pbmZvXzFfMSkpOw0KPj4gKyAgICAgICAgaWYgKCAhZmZhX3V1aWRfaXNfbmlsKHV1aWQp
ICkNCj4+ICsgICAgICAgIHsNCj4+ICsgICAgICAgICAgICBvdXRfcmVnc1tmaWxsZWQgKiAzICsg
MV0gPSAwOw0KPj4gKyAgICAgICAgICAgIG91dF9yZWdzW2ZpbGxlZCAqIDMgKyAyXSA9IDA7DQo+
PiArICAgICAgICB9DQo+PiArICAgICAgICBmaWxsZWQrKzsNCj4+ICsgICAgfQ0KPj4gKw0KPj4g
KyAgICByZXR1cm4gZmlsbGVkOw0KPj4gK30NCj4+ICsNCj4+IHN0YXRpYyBpbnQzMl90IGZmYV9n
ZXRfdm1fcGFydGluZm8oc3RydWN0IGZmYV91dWlkIHV1aWQsIHVpbnQzMl90IHN0YXJ0X2luZGV4
LA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqdm1fY291
bnQsIHZvaWQgKipkc3RfYnVmLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2b2lkICplbmRfYnVmLCB1aW50MzJfdCBkc3Rfc2l6ZSkNCj4+IEBAIC0zNjgsNiArNDM5LDE0
NiBAQCBvdXQ6DQo+PiAgICAgfQ0KPj4gfQ0KPj4gDQo+PiArdm9pZCBmZmFfaGFuZGxlX3BhcnRp
dGlvbl9pbmZvX2dldF9yZWdzKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPj4gK3sNCj4+
ICsgICAgc3RydWN0IGRvbWFpbiAqZCA9IGN1cnJlbnQtPmRvbWFpbjsNCj4+ICsgICAgc3RydWN0
IGZmYV9jdHggKmN0eCA9IGQtPmFyY2gudGVlOw0KPj4gKyAgICBzdHJ1Y3QgZmZhX3V1aWQgdXVp
ZDsNCj4+ICsgICAgdWludDMyX3Qgc3BfY291bnQgPSAwLCB2bV9jb3VudCA9IDAsIHRvdGFsX2Nv
dW50Ow0KPj4gKyAgICB1aW50MTZfdCBzdGFydF9pbmRleCwgdGFnOw0KPj4gKyAgICB1aW50MTZf
dCBudW1fZW50cmllcyA9IDA7DQo+PiArICAgIHVpbnQ2NF90IHgzID0gZ2V0X3VzZXJfcmVnKHJl
Z3MsIDMpOw0KPj4gKyAgICBpbnQzMl90IHJldCA9IEZGQV9SRVRfT0s7DQo+PiArICAgIHVpbnQ2
NF90IG91dF9yZWdzWzE4XSA9IHsgMCB9Ow0KPj4gKyAgICB1bnNpZ25lZCBpbnQgbjsNCj4+ICsg
ICAgdWludDE2X3QgdGFnX291dDsNCj4+ICsNCj4+ICsgICAgaWYgKCBBQ0NFU1NfT05DRShjdHgt
Pmd1ZXN0X3ZlcnMpIDwgRkZBX1ZFUlNJT05fMV8yICkNCj4+ICsgICAgew0KPj4gKyAgICAgICAg
cmV0ID0gRkZBX1JFVF9OT1RfU1VQUE9SVEVEOw0KPj4gKyAgICAgICAgZ290byBvdXQ7DQo+PiAr
ICAgIH0NCj4+ICsNCj4+ICsgICAgLyoNCj4+ICsgICAgICogUmVnaXN0ZXJzIGEzLi5hMTcgKDE1
IHJlZ3MpIGNhcnJ5IHBhcnRpdGlvbiBkZXNjcmlwdG9ycywgMyByZWdzIGVhY2guDQo+PiArICAg
ICAqIEZvciBGRi1BIDEuMiwgdGhhdCB5aWVsZHMgYSBtYXhpbXVtIG9mIDUgZW50cmllcyBwZXIg
R0VUX1JFR1MgY2FsbC4NCj4+ICsgICAgICogRW5mb3JjZSB0aGUgYXNzdW1lZCBsYXlvdXQgc28g
d2luZG93IHNpemluZyBzdGF5cyBjb3JyZWN0Lg0KPj4gKyAgICAgKi8NCj4+ICsgICAgQlVJTERf
QlVHX09OKEZGQV9QQVJUSU5GT19SRUdfTUFYX0VOVFJJRVMgIT0gNSk7DQo+PiArDQo+PiArICAg
IGZvciAoIG4gPSA0OyBuIDw9IDE3OyBuKysgKQ0KPj4gKyAgICB7DQo+PiArICAgICAgICBpZiAo
IGdldF91c2VyX3JlZyhyZWdzLCBuKSApDQo+PiArICAgICAgICB7DQo+IA0KPiB4NC14MTcgYXJl
IFNCWiwgc28gSSB0aGluayB3ZSBzaG91bGQgb25seSBpZ25vcmUgdGhlbS4NCg0KQWNrLCB0aGlz
IHdhcyBhZGRlZCB0byBzYXRpc2Z5IHRoZSBjb21wbGlhbmNlIHN1aXRlIGJ1dCB0aGlzDQpoYXMg
YmVlbiBzb2x2ZWQgc2luY2UuIEkgd2lsbCByZW1vdmUuDQoNCj4gDQo+PiArICAgICAgICAgICAg
cmV0ID0gRkZBX1JFVF9JTlZBTElEX1BBUkFNRVRFUlM7DQo+PiArICAgICAgICAgICAgZ290byBv
dXQ7DQo+PiArICAgICAgICB9DQo+PiArICAgIH0NCj4+ICsNCj4+ICsgICAgaWYgKCB4MyA+PiAz
MiApDQo+IA0KPiBTYW1lIGhlcmU6IEJpdHNbNjM6MzJdIGFyZSBTQlouDQoNClNhbWUgaGVyZS4N
Cg0KPiANCj4+ICsgICAgew0KPj4gKyAgICAgICAgcmV0ID0gRkZBX1JFVF9JTlZBTElEX1BBUkFN
RVRFUlM7DQo+PiArICAgICAgICBnb3RvIG91dDsNCj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAgICBz
dGFydF9pbmRleCA9IHgzICYgR0VOTUFTSygxNSwgMCk7DQo+PiArICAgIHRhZyA9ICh4MyA+PiAx
NikgJiBHRU5NQVNLKDE1LCAwKTsNCj4+ICsNCj4+ICsgICAgLyogU3RhcnQgaW5kZXggbXVzdCBh
bGxvdyByb29tIGZvciB1cCB0byA1IGVudHJpZXMgd2l0aG91dCAxNi1iaXQgb3ZlcmZsb3cuICov
DQo+PiArICAgIGlmICggc3RhcnRfaW5kZXggPiAoR0VOTUFTSygxNSwgMCkgLSAoRkZBX1BBUlRJ
TkZPX1JFR19NQVhfRU5UUklFUyAtIDEpKSApDQo+PiArICAgIHsNCj4+ICsgICAgICAgIHJldCA9
IEZGQV9SRVRfSU5WQUxJRF9QQVJBTUVURVJTOw0KPj4gKyAgICAgICAgZ290byBvdXQ7DQo+PiAr
ICAgIH0NCj4+ICsNCj4+ICsgICAgdXVpZC52YWxbMF0gPSBnZXRfdXNlcl9yZWcocmVncywgMSk7
DQo+PiArICAgIHV1aWQudmFsWzFdID0gZ2V0X3VzZXJfcmVnKHJlZ3MsIDIpOw0KPj4gKw0KPj4g
KyAgICBpZiAoIHNwX2xpc3RfY291bnQgJiYNCj4+ICsgICAgICAgICBzcF9saXN0X2VudHJ5X3Np
emUgIT0gc2l6ZW9mKHN0cnVjdCBmZmFfcGFydGl0aW9uX2luZm9fMV8xKSApDQo+PiArICAgIHsN
Cj4+ICsgICAgICAgIHJldCA9IEZGQV9SRVRfTk9UX1NVUFBPUlRFRDsNCj4gDQo+IFRoaXMgY2Fu
J3QgaGFwcGVuLiBCdXQgSSBndWVzcyBhIHNwX2xpc3RfZW50cnlfc2l6ZSA+IHNpemVvZihzdHJ1
Y3QNCj4gZmZhX3BhcnRpdGlvbl9pbmZvXzFfMSkgbWlnaHQgYmUgc3VwcG9ydGVkIHRvIGJlIGZ1
dHVyZSBwcm9vZi4NCg0KUmlnaHQgbm93IHdlIGhhdmUgRkZBX1BBUlRJTkZPX1JFR19NQVhfRU5U
UklFUyBlbmZvcmNpbmcgdGhlDQpzdHJ1Y3R1cmUgdG8gYmUgMS4xIHNpemUuIElmIHRoaXMgaXMg
bm90IHRydWUgaW4gdGhlIGZ1dHVyZSB3ZSB3aWxsIGhhdmUgdG8gbW9kaWZ5DQp0aGlzLg0KDQpU
aGlzIGlzIG5vdCByZWFsbHkgZnV0dXJlIHByb29mIGFuZCBpIHdpbGwgY2hlY2sgaWYgaSBjYW4g
cmV3b3JrIHRoaXMuDQoNCj4gDQo+PiArICAgICAgICBnb3RvIG91dDsNCj4+ICsgICAgfQ0KPj4g
Kw0KPj4gKyAgICB0YWdfb3V0ID0gZmZhX3BhcnRpbmZvX2dldF90YWcoKTsNCj4+ICsNCj4+ICsg
ICAgaWYgKCBzdGFydF9pbmRleCA9PSAwICkNCj4+ICsgICAgew0KPj4gKyAgICAgICAgaWYgKCB0
YWcgKQ0KPj4gKyAgICAgICAgew0KPj4gKyAgICAgICAgICAgIHJldCA9IEZGQV9SRVRfSU5WQUxJ
RF9QQVJBTUVURVJTOw0KPj4gKyAgICAgICAgICAgIGdvdG8gb3V0Ow0KPj4gKyAgICAgICAgfQ0K
Pj4gKyAgICB9DQo+PiArICAgIGVsc2UgaWYgKCB0YWcgIT0gdGFnX291dCApDQo+PiArICAgIHsN
Cj4+ICsgICAgICAgIHJldCA9IEZGQV9SRVRfUkVUUlk7DQo+PiArICAgICAgICBnb3RvIG91dDsN
Cj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAgICBpZiAoIGZmYV91dWlkX2lzX25pbCh1dWlkKSApDQo+
PiArICAgIHsNCj4+ICsgICAgICAgIGlmICggSVNfRU5BQkxFRChDT05GSUdfRkZBX1ZNX1RPX1ZN
KSApDQo+PiArICAgICAgICAgICAgdm1fY291bnQgPSBnZXRfZmZhX3ZtX2NvdW50KCk7DQo+PiAr
ICAgICAgICBlbHNlDQo+PiArICAgICAgICAgICAgdm1fY291bnQgPSAxOyAvKiBDYWxsZXIgVk0g
b25seSAqLw0KPj4gKyAgICB9DQo+PiArDQo+PiArICAgIHJldCA9IGZmYV9nZXRfc3BfY291bnQo
dXVpZCwgJnNwX2NvdW50KTsNCj4+ICsgICAgaWYgKCByZXQgKQ0KPj4gKyAgICAgICAgZ290byBv
dXQ7DQo+PiArDQo+PiArICAgIHRvdGFsX2NvdW50ID0gc3BfY291bnQgKyB2bV9jb3VudDsNCj4+
ICsNCj4+ICsgICAgaWYgKCB0b3RhbF9jb3VudCA9PSAwIHx8IHN0YXJ0X2luZGV4ID49IHRvdGFs
X2NvdW50ICkNCj4+ICsgICAgew0KPj4gKyAgICAgICAgcmV0ID0gRkZBX1JFVF9JTlZBTElEX1BB
UkFNRVRFUlM7DQo+PiArICAgICAgICBnb3RvIG91dDsNCj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAg
ICBpZiAoIHN0YXJ0X2luZGV4IDwgc3BfY291bnQgKQ0KPj4gKyAgICAgICAgbnVtX2VudHJpZXMg
PSBmZmFfZ2V0X3NwX3BhcnRpbmZvX3JlZ3ModXVpZCwgc3RhcnRfaW5kZXgsICZvdXRfcmVnc1sz
XSwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZG
QV9QQVJUSU5GT19SRUdfTUFYX0VOVFJJRVMpOw0KPj4gKw0KPj4gKyAgICBpZiAoIG51bV9lbnRy
aWVzIDwgRkZBX1BBUlRJTkZPX1JFR19NQVhfRU5UUklFUyApDQo+PiArICAgIHsNCj4+ICsgICAg
ICAgIHVpbnQzMl90IHZtX3N0YXJ0ID0gc3RhcnRfaW5kZXggPiBzcF9jb3VudCA/DQo+PiArICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2luZGV4IC0gc3BfY291bnQgOiAwOw0KPj4g
KyAgICAgICAgdWludDMyX3QgZmlsbGVkID0gMDsNCj4+ICsgICAgICAgIHZvaWQgKnZtX2RzdCA9
ICZvdXRfcmVnc1szICsgbnVtX2VudHJpZXMgKiAzXTsNCj4+ICsgICAgICAgIHZvaWQgKnZtX2Vu
ZCA9ICZvdXRfcmVnc1sxOF07DQo+PiArDQo+PiArICAgICAgICByZXQgPSBmZmFfZ2V0X3ZtX3Bh
cnRpbmZvKHV1aWQsIHZtX3N0YXJ0LCAmZmlsbGVkLCAmdm1fZHN0LCB2bV9lbmQsDQo+PiArICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgZmZhX3BhcnRpdGlv
bl9pbmZvXzFfMSkpOw0KPj4gKyAgICAgICAgaWYgKCByZXQgIT0gRkZBX1JFVF9PSyAmJiByZXQg
IT0gRkZBX1JFVF9OT19NRU1PUlkgKQ0KPj4gKyAgICAgICAgICAgIGdvdG8gb3V0Ow0KPj4gKw0K
Pj4gKyAgICAgICAgbnVtX2VudHJpZXMgKz0gZmlsbGVkOw0KPj4gKyAgICB9DQo+PiArDQo+PiAr
ICAgIGlmICggbnVtX2VudHJpZXMgPT0gMCApDQo+PiArICAgIHsNCj4+ICsgICAgICAgIHJldCA9
IEZGQV9SRVRfSU5WQUxJRF9QQVJBTUVURVJTOw0KPj4gKyAgICAgICAgZ290byBvdXQ7DQo+PiAr
ICAgIH0NCj4+ICsNCj4gDQo+IFdoYXQgaWYgdGhlIHRhZyByZWFkIHdpdGggZmZhX3BhcnRpbmZv
X2dldF90YWcoKSBoYXMgY2hhbmdlZD8NCg0KQXMgc2FpZCB0aGlzIGlzIGEgYmVzdCBlZmZvcnQs
IHdlIHByb3ZpZGUgYSBzbmFwc2hvdC4NCk5vdyBpIGNvdWxkIGNoZWNrIGFuZCBjb21wYXJlIHRo
ZSB0YWcgYXQgdGhlIGVuZCB0byBoYW5kbGUgdGhpcyBjYXNlLg0KDQpJIHdpbGwgY2hlY2sgaWYg
aSBjYW4gbWFrZSB0aGlzIGEgYml0IHN0cm9uZ2VyIGJ5IGNvbXBhcmluZyB0aGUgdGFnIGF0IHRo
ZQ0KYmVnaW5uaW5nIGFuZCB0aGUgZW5kIG9yIHRyeSB0byBoYW5kbGUgaXQgZGlmZmVyZW50bHkg
KGdldCBpdHMgdmFsdWUgd2hpbGUgd2UNCmhhdmUgdGhlIHJ3bG9jayBvbiB0aGUgbGlzdCBvZiBW
TXMgbWF5YmUpLg0KDQpDaGVlcnMNCkJlcnRyYW5kDQoNCj4gDQo+IENoZWVycywNCj4gSmVucw0K
PiANCj4+ICsgICAgb3V0X3JlZ3NbMF0gPSBGRkFfU1VDQ0VTU182NDsNCj4+ICsgICAgb3V0X3Jl
Z3NbMl0gPSAoKHVpbnQ2NF90KXNpemVvZihzdHJ1Y3QgZmZhX3BhcnRpdGlvbl9pbmZvXzFfMSkg
PDwgNDgpIHwNCj4+ICsgICAgICAgICAgICAgICAgICAoKHVpbnQ2NF90KXRhZ19vdXQgPDwgMzIp
IHwNCj4+ICsgICAgICAgICAgICAgICAgICAoKHVpbnQ2NF90KShzdGFydF9pbmRleCArIG51bV9l
bnRyaWVzIC0gMSkgPDwgMTYpIHwNCj4+ICsgICAgICAgICAgICAgICAgICAoKHVpbnQ2NF90KSh0
b3RhbF9jb3VudCAtIDEpICYgR0VOTUFTSygxNSwgMCkpOw0KPj4gKw0KPj4gKyAgICBmb3IgKCBu
ID0gMDsgbiA8IEFSUkFZX1NJWkUob3V0X3JlZ3MpOyBuKysgKQ0KPj4gKyAgICAgICAgc2V0X3Vz
ZXJfcmVnKHJlZ3MsIG4sIG91dF9yZWdzW25dKTsNCj4+ICsNCj4+ICsgICAgcmV0dXJuOw0KPj4g
Kw0KPj4gK291dDoNCj4+ICsgICAgaWYgKCByZXQgKQ0KPj4gKyAgICAgICAgZmZhX3NldF9yZWdz
X2Vycm9yKHJlZ3MsIHJldCk7DQo+PiArfQ0KPj4gKw0KPj4gc3RhdGljIGludDMyX3QgZmZhX2Rp
cmVjdF9yZXFfc2VuZF92bSh1aW50MTZfdCBzcF9pZCwgdWludDE2X3Qgdm1faWQsDQo+PiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgbXNnKQ0KPj4gew0KPj4g
ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90ZWUvZmZhX3ByaXZhdGUuaCBiL3hlbi9hcmNoL2Fy
bS90ZWUvZmZhX3ByaXZhdGUuaA0KPj4gaW5kZXggMWE2MzI5ODNjODYwLi5jMjkxZjMyYjU2ZmYg
MTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9wcml2YXRlLmgNCj4+ICsrKyBi
L3hlbi9hcmNoL2FybS90ZWUvZmZhX3ByaXZhdGUuaA0KPj4gQEAgLTI4OSw3ICsyODksNyBAQA0K
Pj4gI2RlZmluZSBGRkFfTVNHX1NFTkQyICAgICAgICAgICAgICAgICAgIDB4ODQwMDAwODZVDQo+
PiAjZGVmaW5lIEZGQV9DT05TT0xFX0xPR18zMiAgICAgICAgICAgICAgMHg4NDAwMDA4QVUNCj4+
ICNkZWZpbmUgRkZBX0NPTlNPTEVfTE9HXzY0ICAgICAgICAgICAgICAweEM0MDAwMDhBVQ0KPj4g
LSNkZWZpbmUgRkZBX1BBUlRJVElPTl9JTkZPX0dFVF9SRUdTICAgICAweDg0MDAwMDhCVQ0KPj4g
KyNkZWZpbmUgRkZBX1BBUlRJVElPTl9JTkZPX0dFVF9SRUdTICAgICAweEM0MDAwMDhCVQ0KPj4g
I2RlZmluZSBGRkFfTVNHX1NFTkRfRElSRUNUX1JFUTIgICAgICAgIDB4QzQwMDAwOERVDQo+PiAj
ZGVmaW5lIEZGQV9NU0dfU0VORF9ESVJFQ1RfUkVTUDIgICAgICAgMHhDNDAwMDA4RVUNCj4+IA0K
Pj4gQEAgLTQ1Miw2ICs0NTIsOCBAQCBib29sIGZmYV9wYXJ0aW5mb19pbml0KHZvaWQpOw0KPj4g
aW50MzJfdCBmZmFfcGFydGluZm9fZG9tYWluX2luaXQoc3RydWN0IGRvbWFpbiAqZCk7DQo+PiBi
b29sIGZmYV9wYXJ0aW5mb19kb21haW5fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpkKTsNCj4+IHZv
aWQgZmZhX2hhbmRsZV9wYXJ0aXRpb25faW5mb19nZXQoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJl
Z3MpOw0KPj4gK3ZvaWQgZmZhX2hhbmRsZV9wYXJ0aXRpb25faW5mb19nZXRfcmVncyhzdHJ1Y3Qg
Y3B1X3VzZXJfcmVncyAqcmVncyk7DQo+PiArdm9pZCBmZmFfcGFydGluZm9faW5jX3RhZyh2b2lk
KTsNCj4+IA0KPj4gaW50MzJfdCBmZmFfZW5kcG9pbnRfZG9tYWluX2xvb2t1cCh1aW50MTZfdCBl
bmRwb2ludF9pZCwgc3RydWN0IGRvbWFpbiAqKmRfb3V0LA0KPj4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdHJ1Y3QgZmZhX2N0eCAqKmN0eF9vdXQpOw0KPj4gLS0NCj4+IDIu
NTIuMA0KDQoNCg==


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 09:33:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 09:33:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244035.1543501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwzeB-0003Yd-51; Mon, 02 Mar 2026 09:33:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244035.1543501; Mon, 02 Mar 2026 09:33: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 1vwzeB-0003YW-1B; Mon, 02 Mar 2026 09:33:03 +0000
Received: by outflank-mailman (input) for mailman id 1244035;
 Mon, 02 Mar 2026 09:33: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=xkMV=BC=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vwze9-0003YP-B8
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 09:33:01 +0000
Received: from mail-ot1-x32e.google.com (mail-ot1-x32e.google.com
 [2607:f8b0:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cc21db40-161a-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Mar 2026 10:32:58 +0100 (CET)
Received: by mail-ot1-x32e.google.com with SMTP id
 46e09a7af769-7d598f4b6fdso963767a34.1
 for <xen-devel@lists.xenproject.org>; Mon, 02 Mar 2026 01: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: cc21db40-161a-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1772443977; cv=none;
        d=google.com; s=arc-20240605;
        b=k6IoubsQ5ytNlr1nkujopGSKne86IxTyQMSnWl625koCi1Mc5tF2VqVv35LYVtWGUG
         bQCP98NZGaoNOs/C+Otliv8Px7b6GIlHLlukaUttp6H3tIJU9vDCTDBNpJjvkGWnpshi
         opUEE5v4yQvs6l5AMCazrUufbgzkAagY0XccZ92Ji1BXQJq7FF2jP7gPgCmqyXN3cvhf
         AB2OWOKhBiUESJiB7ldIlMfQ8M16XGdJWkNCGEKYDtbGaCF5MUvC8ZDgksa0MQyUgjbV
         qT+Zx7y9pa7qAIRx0aVDGynJtU1WUtAZ8AuKlfN17XtqFMHtRkQaRB1Wsoq6nPbFs4Au
         TrgQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=Oz/jjwH9wMeY0dltDZkbDWUYQnrhBJEIc9co1u63XqY=;
        fh=wB0f5JGUSpWYejuxtnrl8SDqvqyWrEsEaWvC32LbdiU=;
        b=MNpl0bmLicJbvbRJ/aTDO3e70jaDX6O0I2gycwVk0XdaibR8oDKJOwqke3YciLanCO
         Bnx6hAhID/FoCXloYYM570kbGs0Vp7RNT58//QNi/KjHt1VotgTqiOOAOkT/jAxZoGAK
         +//xp2kaBj0UuBanvbIYJ7LjHNX+c8nHrIfiyB2pLAO1xjpnWzDL2Ma67lBAcYFzQc7u
         vfgXO6WBZEavSwQOI61pnYH6Zii56iF2iITNqri8bcjRM/VS8n50d2gTQW7uQPPKdflZ
         WUWpesveKIFmkZ2Ufv9+rKdvEwcIuh4f2yW3cOYYeX74rrKQaStVN7ZUD4qRinHw3NGx
         vW6Q==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1772443977; x=1773048777; 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=Oz/jjwH9wMeY0dltDZkbDWUYQnrhBJEIc9co1u63XqY=;
        b=FY2ooT3/fk2sDjSFNTqMgYzzUy9QGk6+YrJYc/qy6yzr18pQr7emuWWR3HXljtKvKA
         v7CDMLfvVoShcAextL61pr3yv4SZpnL7SFU4tH2aecAtqHCfkiIbY/tIyFBjZgCmYocQ
         eHdrsySMMYQz6WFxj57qv8jCLRlRXbDIo/KMZ9FBSwHNAdKbMa88x1A+fzKwxNAe8NN5
         MC9EvhT2e1aER1WnGZnrrRK9297QVfJkWJ7sFPkYwk3ydbMKFWPdF732uP/U+RX+xFLM
         Ev77QqqmNzhdZW/RtsKrkYlf5uDwMOGQrwDlfAvY9980pFaQhArKi8yTo29K7+qQeZyv
         Izhg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772443977; x=1773048777;
        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=Oz/jjwH9wMeY0dltDZkbDWUYQnrhBJEIc9co1u63XqY=;
        b=qqMZVT9++5gMG5DIWR0NJL9gBCUu5AU3YjemfMD6xyp+FCMjiokhTCpHTodHtz2r0o
         EsEyXiPdAEtG4Sqyn/UcQ2VEfTsNpe3ot6rkoHv3f6Sb/G/OFc9YGcsZBqdCO4DqL9ox
         3ipCrqVPYJXub/uCF8agRuzX1a0+mDd+3jWeCUpjHUpnZ1TGrwZ5Ib1UoKXItL+1Kkbl
         HrtCSdhsf4E3C6i3/AP4pFswvtf38EtngTOoYoLpqE/L1xvNDaz7nRTs8aPIhLu9iBdG
         EOPW+5yIXBubV5iaufLmSCoAQnAYlTgIF5qby7eHkoVWGlqN+g9KmAOMwt64m7E6zEyx
         +PIA==
X-Gm-Message-State: AOJu0Yy+9onrI+N3JHQEJRQlV1Qak71pqiplwnADNTE6y2CqX+hasA3J
	fchK+ztNlGze7MyiI6kJo+sL31g5yhcl0wYsYQ7+qo4/xgzpYr1r7EHjsk38nSQ6HNZ6s0MEEkf
	kshPISv6lybIEdy0zB6EjtPEp9S1kgvVpeWZkttLI3g==
X-Gm-Gg: ATEYQzwCQsy3avJvCATKI3TYFdTIfbtR9HuxVrUXbz8ytH8yVB6k96jgToI0lK81ji8
	GBkuZzXWGPPKWepFERgH+cKDAlD0acRcnUQDq1tm9SPpumN+bb7IvENPGYlYj8vo/VQTDiL9w04
	RTvT0W1/w/et0yAdKENbXpn5NnG/unx3Vj0OpmRZurhFG8mCNb6YQ3aAOwWTefMbsjgcp9Tordb
	ICjfn9dki7XgKO4wzn5pHdJFRUE4DpKGRLXcxXafI0nWkRGDca4mTOYc32LJpbcIECHrydZqP6R
	G1TlltGJVe6anzqSfuYKhLu2zVwSgNf4+sVPTw==
X-Received: by 2002:a05:6870:1cf:b0:409:40bb:6b5d with SMTP id
 586e51a60fabf-41627037555mr7000189fac.32.1772443976705; Mon, 02 Mar 2026
 01:32:56 -0800 (PST)
MIME-Version: 1.0
References: <cover.1772013062.git.bertrand.marquis@arm.com>
 <0a5f66eaa16f262d4ffad6a8ec4b1b02461f96c1.1772013062.git.bertrand.marquis@arm.com>
 <CAHUa44FSq6aHTO=HWNOB1Qa5keuEfmhwpSW4hRjVgQdUX0fjmA@mail.gmail.com> <9B608F0B-E564-42C6-9F85-E1701F707554@arm.com>
In-Reply-To: <9B608F0B-E564-42C6-9F85-E1701F707554@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Mon, 2 Mar 2026 10:32:45 +0100
X-Gm-Features: AaiRm53AaLLoqVe-OrkO3fZ6xPo3jnbDhrINV8JkLnXp54HlRI9BlXX3wdssV5k
Message-ID: <CAHUa44Fv9LuYED_jjW3UeEDZLjL==s0Myw2vD7PSHPUgn-OC3Q@mail.gmail.com>
Subject: Re: [PATCH 2/4] xen/arm: ffa: Cache SP partition info at init
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Mon, Mar 2, 2026 at 9:51=E2=80=AFAM Bertrand Marquis
<Bertrand.Marquis@arm.com> wrote:
>
> Hi Jens,
>
> > On 27 Feb 2026, at 11:39, Jens Wiklander <jens.wiklander@linaro.org> wr=
ote:
> >
> > Hi Bertrand,
> >
> > On Wed, Feb 25, 2026 at 11:02=E2=80=AFAM Bertrand Marquis
> > <bertrand.marquis@arm.com> wrote:
> >>
> >> FFA_PARTITION_INFO_GET currently queries the SPMC on each call and wal=
ks the
> >> RX buffer every time. The SP list is expected to be static, so repeate=
d
> >> firmware calls and validation are unnecessary.
> >>
> >> Cache the SPMC partition-info list at init time, keeping only secure
> >> endpoints, and reuse the cached entries for SP count and partition-inf=
o
> >> responses. Initialize the VM create/destroy subscriber lists from the =
cached
> >> list and free the cache on init failure.
> >>
> >> SP partition info now reflects the init-time snapshot and will not cha=
nge.
> >>
> >> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> >> ---
> >> xen/arch/arm/tee/ffa_partinfo.c | 205 +++++++++++++++++++++-----------
> >> 1 file changed, 138 insertions(+), 67 deletions(-)
> >>
> >> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_pa=
rtinfo.c
> >> index 6a6f3ffb822e..8a3eac25f99f 100644
> >> --- a/xen/arch/arm/tee/ffa_partinfo.c
> >> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> >> @@ -6,6 +6,7 @@
> >> #include <xen/const.h>
> >> #include <xen/sizes.h>
> >> #include <xen/types.h>
> >> +#include <xen/xmalloc.h>
> >>
> >> #include <asm/smccc.h>
> >> #include <asm/regs.h>
> >> @@ -33,6 +34,10 @@ static uint16_t subscr_vm_created_count __read_most=
ly;
> >> static uint16_t *subscr_vm_destroyed __read_mostly;
> >> static uint16_t subscr_vm_destroyed_count __read_mostly;
> >>
> >> +/* SP list cache (secure endpoints only); populated at init. */
> >> +static void *sp_list __read_mostly;
> >> +static uint32_t sp_list_count __read_mostly;
> >> +static uint32_t sp_list_entry_size __read_mostly;
> >> static int32_t ffa_partition_info_get(struct ffa_uuid uuid, uint32_t f=
lags,
> >>                                       uint32_t *count, uint32_t *fpi_s=
ize)
> >> {
> >> @@ -79,92 +84,78 @@ static int32_t ffa_copy_info(void **dst, void *dst=
_end, const void *src,
> >>     return FFA_RET_OK;
> >> }
> >>
> >> -static int32_t ffa_get_sp_count(struct ffa_uuid uuid, uint32_t *sp_co=
unt)
> >> +static bool ffa_sp_entry_matches_uuid(const void *entry, struct ffa_u=
uid uuid)
> >> {
> >> -    uint32_t src_size;
> >> +    const struct ffa_partition_info_1_1 *fpi =3D entry;
> >> +    struct ffa_uuid sp_uuid;
> >> +
> >> +    if ( ffa_uuid_is_nil(uuid) )
> >> +        return true;
> >>
> >> -    return ffa_partition_info_get(uuid, FFA_PARTITION_INFO_GET_COUNT_=
FLAG,
> >> -                                  sp_count, &src_size);
> >> +    if ( sp_list_entry_size < sizeof(*fpi) )
> >> +        return false;
> >
> > This can never happen since we don't accept SPMC below version 1.1. We
> > even have a check to ensure the SPMC doesn't return a too-small
> > spi_size.
>
> I tried to make the code forward compatible. It is not really a possible =
case right now
> but we could fall into this in the future.

At the moment, it's only ffa_sp_list_cache_init(), which initializes
and puts things in the SP. So as long as ffa_sp_list_cache_init() and
this function are in sync, there should be no problem. It simplifies
things if we can trust the SP cache to be usable.

>
> >
> >> +
> >> +    memcpy(&sp_uuid, fpi->uuid, sizeof(sp_uuid));
> >> +    return ffa_uuid_equal(uuid, sp_uuid);
> >> }
> >>
> >> -static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp=
_count,
> >> -                                   void **dst_buf, void *end_buf,
> >> -                                   uint32_t dst_size)
> >> +static int32_t ffa_get_sp_count(struct ffa_uuid uuid, uint32_t *sp_co=
unt)
> >> {
> >> -    int32_t ret;
> >> -    int32_t release_ret;
> >> -    uint32_t src_size, real_sp_count;
> >> -    void *src_buf;
> >>     uint32_t count =3D 0;
> >> -    bool notify_fw =3D false;
> >> -
> >> -    /* We need to use the RX buffer to receive the list */
> >> -    src_buf =3D ffa_rxtx_spmc_rx_acquire();
> >> -    if ( !src_buf )
> >> -        return FFA_RET_DENIED;
> >> -
> >> -    ret =3D ffa_partition_info_get(uuid, 0, &real_sp_count, &src_size=
);
> >> -    if ( ret )
> >> -        goto out;
> >> -    notify_fw =3D true;
> >> +    uint32_t n;
> >>
> >> -    /* Validate the src_size we got */
> >> -    if ( src_size < sizeof(struct ffa_partition_info_1_0) ||
> >> -         src_size >=3D FFA_PAGE_SIZE )
> >> +    for ( n =3D 0; n < sp_list_count; n++ )
> >>     {
> >> -        ret =3D FFA_RET_NOT_SUPPORTED;
> >> -        goto out;
> >> +        void *entry =3D sp_list + n * sp_list_entry_size;
> >> +
> >> +        if ( ffa_sp_entry_matches_uuid(entry, uuid) )
> >> +            count++;
> >>     }
> >>
> >> -    /*
> >> -     * Limit the maximum time we hold the CPU by limiting the number =
of SPs.
> >> -     * We just ignore the extra ones as this is tested during init in
> >> -     * ffa_partinfo_init so the only possible reason is SP have been =
added
> >> -     * since boot.
> >> -     */
> >> -    if ( real_sp_count > FFA_MAX_NUM_SP )
> >> -        real_sp_count =3D FFA_MAX_NUM_SP;
> >> +    *sp_count =3D count;
> >>
> >> -    /* Make sure the data fits in our buffer */
> >> -    if ( real_sp_count > (FFA_RXTX_PAGE_COUNT * FFA_PAGE_SIZE) / src_=
size )
> >> -    {
> >> -        ret =3D FFA_RET_NOT_SUPPORTED;
> >> -        goto out;
> >> -    }
> >> +    if ( !ffa_uuid_is_nil(uuid) && !count )
> >> +        return FFA_RET_INVALID_PARAMETERS;
> >>
> >> -    for ( uint32_t sp_num =3D 0; sp_num < real_sp_count; sp_num++ )
> >> -    {
> >> -        struct ffa_partition_info_1_1 *fpi =3D src_buf;
> >> +    return FFA_RET_OK;
> >> +}
> >>
> >> -        /* filter out SP not following bit 15 convention if any */
> >> -        if ( FFA_ID_IS_SECURE(fpi->id) )
> >> -        {
> >> -            /*
> >> -             * If VM is 1.0 but firmware is 1.1 we could have several=
 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 implementatio=
n.
> >> -             */
> >> +static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp=
_count,
> >> +                                   void **dst_buf, void *end_buf,
> >> +                                   uint32_t dst_size)
> >> +{
> >> +    int32_t ret;
> >> +    uint32_t count =3D 0;
> >> +    uint32_t n;
> >>
> >> -            ret =3D ffa_copy_info(dst_buf, end_buf, src_buf, dst_size=
, src_size);
> >> -            if ( ret )
> >> -                goto out;
> >> +    for ( n =3D 0; n < sp_list_count; n++ )
> >> +    {
> >> +        void *entry =3D sp_list + n * sp_list_entry_size;
> >>
> >> -            count++;
> >> -        }
> >> +        if ( !ffa_sp_entry_matches_uuid(entry, uuid) )
> >> +            continue;
> >>
> >> -        src_buf +=3D src_size;
> >> +        /*
> >> +         * If VM is 1.0 but firmware is 1.1 we could have several ent=
ries
> >> +         * with the same ID but different UUIDs. In this case the VM =
will
> >> +         * get a list with several time the same ID.
> >> +         * This is a non-compliance to the specification but 1.0 VMs =
should
> >> +         * handle that on their own to simplify Xen implementation.
> >> +         */
> >> +        ret =3D ffa_copy_info(dst_buf, end_buf, entry, dst_size,
> >> +                            sp_list_entry_size);
> >> +        if ( ret )
> >> +            return ret;
> >> +
> >> +        count++;
> >>     }
> >>
> >>     *sp_count =3D count;
> >>
> >> -out:
> >> -    release_ret =3D ffa_rxtx_spmc_rx_release(notify_fw);
> >> -    if ( release_ret )
> >> -        gprintk(XENLOG_WARNING,
> >> -                "ffa: Error releasing SPMC RX buffer: %d\n", release_=
ret);
> >> -    return ret;
> >> +    if ( !ffa_uuid_is_nil(uuid) && !count )
> >> +        return FFA_RET_INVALID_PARAMETERS;
> >> +
> >> +    return FFA_RET_OK;
> >> }
> >>
> >> static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t star=
t_index,
> >> @@ -435,6 +426,14 @@ static int32_t ffa_direct_req_send_vm(uint16_t sp=
_id, uint16_t vm_id,
> >>     return res;
> >> }
> >>
> >> +static void ffa_sp_list_cache_free(void)
> >> +{
> >> +    XFREE(sp_list);
> >> +    sp_list =3D NULL;
> >
> > XFREE() is already setting sp_list to NULL.
>
> Ack will fix in v2
>
> >
> >> +    sp_list_count =3D 0;
> >> +    sp_list_entry_size =3D 0;
> >> +}
> >> +
> >> static void uninit_subscribers(void)
> >> {
> >>         subscr_vm_created_count =3D 0;
> >> @@ -443,6 +442,68 @@ static void uninit_subscribers(void)
> >>         XFREE(subscr_vm_destroyed);
> >> }
> >>
> >> +static bool ffa_sp_list_cache_init(const void *buf, uint32_t count,
> >> +                                   uint32_t fpi_size)
> >> +{
> >> +    const uint8_t *src =3D buf;
> >> +    uint32_t secure_count =3D 0;
> >> +    uint32_t n, idx =3D 0;
> >> +    bool warned =3D false;
> >> +
> >> +    if ( fpi_size < sizeof(struct ffa_partition_info_1_0) ||
> >> +         fpi_size >=3D FFA_PAGE_SIZE )
> >> +        return false;
> >
> > Would it make sense to check that fpi_size is well aligned with struct
> > ffa_partition_info_1_0? If it's an odd size, we'll make unaligned
> > accesses below with memcpy(). But perhaps that's a bit much. The SPMC
> > isn't supposed to provide garbage.
>
> Memcpy should prevent issues even if accesses are not aligned.
> If we had this test, we cannot return an error to the SPMC so we would ha=
ve to
> generate one to the caller. It is simpler i think to handle non-aligned a=
s we do not
> expect the SPMC to generate such a case.
> Tell me if you agree.

We dereference fpi below, and depending on compiler flags and pointer
types, memcpy() might not be safe with unaligned pointers.
>From 6.3.2.3 Pointers, paragraph 7, in the C standard:
"A pointer to an object type may be converted to a pointer to a
different object type. If the
resulting pointer is not correctly aligned for the referenced type,
the behavior is
unde=EF=AC=81ned."

I've seen past examples where the compiler optimized memcpy() in a way
that breaks with unaligned pointers.

We don't expect the test above to fail, but if it does we will not use
the secure firmware. I think refusing unexpected sizes is even
simpler. It should make finding eventual errors much easier.

So my question above is whether it's worth checking that fpi_size is
well-aligned, or if it's so unlikely that we don't need to consider
it.

Cheers,
Jens

>
> >
> >> +
> >> +    if ( count > (FFA_RXTX_PAGE_COUNT * FFA_PAGE_SIZE) / fpi_size )
> >> +        return false;
> >> +
> >> +    for ( n =3D 0; n < count; n++ )
> >> +    {
> >> +        const struct ffa_partition_info_1_0 *fpi =3D
> >> +            (const void *)(src + n * fpi_size);
> >> +
> >> +        if ( !FFA_ID_IS_SECURE(fpi->id) )
> >> +        {
> >> +            if ( !warned )
> >
> > Is this needed? Doesn't printk_once() already ensure this? Or did you
> > happen to leave printk_once() by mistake and meant for this to be
> > printed once each time ffa_sp_list_cache_init() is called, since
> > "warned" isn't static.
>
> Very right, i need to remove the warned, printk_once should be enough her=
e.
>
> >
> >> +            {
> >> +                printk_once(XENLOG_ERR
> >> +                            "ffa: Firmware is not using bit 15 conven=
tion for IDs !!\n");
> >> +                warned =3D true;
> >> +            }
> >> +            printk(XENLOG_ERR
> >> +                   "ffa: Secure partition with id 0x%04x cannot be us=
ed\n",
> >> +                   fpi->id);
> >> +            continue;
> >> +        }
> >> +
> >> +        secure_count++;
> >> +    }
> >> +
> >> +    if ( secure_count )
> >> +    {
> >> +        sp_list =3D xzalloc_bytes(secure_count * fpi_size);
> >> +        if ( !sp_list )
> >> +            return false;
> >> +    }
> >> +
> >> +    sp_list_count =3D secure_count;
> >> +    sp_list_entry_size =3D fpi_size;
> >> +
> >> +    for ( n =3D 0; n < count; n++ )
> >> +    {
> >> +        const struct ffa_partition_info_1_0 *fpi =3D
> >> +            (const void *)(src + n * fpi_size);
> >> +
> >> +        if ( !FFA_ID_IS_SECURE(fpi->id) )
> >> +            continue;
> >> +
> >> +        memcpy(sp_list + idx * fpi_size, fpi, fpi_size);
> >> +        idx++;
> >> +    }
> >> +
> >> +    return true;
> >> +}
> >> +
> >> static bool init_subscribers(void *buf, uint16_t count, uint32_t fpi_s=
ize)
> >> {
> >>     uint16_t n;
> >> @@ -549,12 +610,22 @@ bool ffa_partinfo_init(void)
> >>         goto out;
> >>     }
> >>
> >> -    ret =3D init_subscribers(spmc_rx, count, fpi_size);
> >> +    if ( !ffa_sp_list_cache_init(spmc_rx, count, fpi_size) )
> >> +    {
> >> +        printk(XENLOG_ERR "ffa: Failed to cache SP list\n");
> >> +        goto out;
> >> +    }
> >> +
> >> +    ret =3D init_subscribers(sp_list, sp_list_count, sp_list_entry_si=
ze);
> >>
> >> out:
> >>     e =3D ffa_rxtx_spmc_rx_release(notify_fw);
> >>     if ( e )
> >>         printk(XENLOG_WARNING "ffa: Error releasing SPMC RX buffer: %d=
\n", e);
> >> +    if ( !ret )
> >> +        uninit_subscribers();
> >
> > ret is initially false and can only be set to true if
> > init_subscribers() returns true. So there's never any point in calling
> > uninit_subscribers().
>
> True, I will fix that.
>
> >
> >> +    if ( !ret )
> >> +        ffa_sp_list_cache_free();
> >
> > ret can be false even if ffa_sp_list_cache_init() hasn't been called
> > yet. Calling ffa_sp_list_cache_free() anyway is harmless, but not
> > elegant.
>
> yes, i will rework a bit the cleanup logic here.
>
> Thanks for the review
>
> Cheers
> Bertrand
>
> >
> > Cheers,
> > Jens
> >
> >>     return ret;
> >> }
> >>
> >> --
> >> 2.52.0
>
>


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 09:46:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 09:46:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244045.1543510 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vwzrD-0005JF-78; Mon, 02 Mar 2026 09:46:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244045.1543510; Mon, 02 Mar 2026 09: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 1vwzrD-0005J8-4b; Mon, 02 Mar 2026 09:46:31 +0000
Received: by outflank-mailman (input) for mailman id 1244045;
 Mon, 02 Mar 2026 09: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=9kJt=BC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vwzrB-0005J1-Jj
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 09:46:29 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id af1c8e77-161c-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 10:46:27 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-439a89b6fd0so1516515f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 02 Mar 2026 01:46:27 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439ae0e7abasm12693544f8f.23.2026.03.02.01.46.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Mar 2026 01:46: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: af1c8e77-161c-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772444787; x=1773049587; 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=A4uQD7zUtyHXk1WG+956ZToLtgs8GZrFVfxV6u16ylE=;
        b=JMmOVTiJEcNeUPnr0Uvrnxh0ZrZpIBHVpCI+9Q5/jAlcYuCi5QGwT/Tb29+gvMAi0F
         HjnoAV32SedDpQPeHIt1zgDzsJVSJ/qqis+swGj6woYqo45Wl8fHruzix0DQZ29irRIq
         vY0Czf4vhZgrrbLy4Fe0wNJ2bImwa4DYu5pqNwJeC2XoqIDQiwLi9sHboFjOtdYbpAkw
         +q5TdAthiKoMpVuo78lBi9N/4QsTdJhq+uAFWo8T0ZHjMsfMAeV5bxKlbrAbxxzkYtzk
         5nvyqB8Q8AvHfq4myUTk5ehnPx/hmKlCUJgFw7uYEK303LGYgy+5gi4QkHp4Wb0/8HTG
         r3XQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772444787; x=1773049587;
        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=A4uQD7zUtyHXk1WG+956ZToLtgs8GZrFVfxV6u16ylE=;
        b=e+f/NXuNZcak5Pxj12FhK3FFIS462XlnGNCfKPjQdJaBWW6gsqbXJM1LQ4fQ6mL1mr
         3oqsv9klaUBtQ5t4VmCcdhgGJteUCWcSoBs44MSinO08IDDNipHkkuuOzM39Mk6J5+j+
         43RsrpBcbc332VHFy56/fvIp9JC52YLhWdVp2csyufRK2OdcZdSpvi9VGNJBt1TOdDbQ
         We4WCLPeJiq7tsBQX/EL+jp3ueyd4QZkcxGPJGpgWr5GA0CB11y88ZnfZUpiAeuj+oPe
         60fVPy1rwXdHoIkzCr+LSuwIOYRjt4DV57LKSBp9K5ZXqmQXsfXIROdFSxm7FYq3PPtc
         ZbZg==
X-Gm-Message-State: AOJu0YwC+dJt16xeBOSYK1UG3YmdzbVOiJQwC2RBBJxyhnw+CpuidbmV
	6R3Im6QTT4hi76pgo2tZLoXsOf9zxnNgaCCtXEin/iw6DAkAnI9o4WCwn1m81nbtGw==
X-Gm-Gg: ATEYQzwCXwOPMy/+oWjAypgbZi5KrlIz9GHJymYDtJ1HMkXu36PegqsHbzVYTB7L4n7
	hOPX0bb+yZz+gDBRr3/j7JOAelRNDI3SunXItcnh1DpocyXAfCk6+qPKVX4oJQk3MXT2xbwScP6
	58Ohpuok2c6N96V0XkEGkcJnSDYPkWRhJi80KoLgTm52VzpiG1/7eoYbDG4aEek8MR9pS25Yokv
	s9oGwg/ec3SJcaMwWOeweXn1GL2R4JmatMNwynxc0C05bdRdVhhDW85W0uKch764T41QUt/XP+y
	isILAWaJxvG+w/bxTyt0QhvxwtlRaLpJscf9tj/uX6qIUy1JCLyTQh6/3Ou7MWihAgIEuxYph+a
	4f8QmxKV2ZlsIeBHnL9wsQ3LOYQA/2QNwuQ44uV9usCF/D7mu7Q31+WtmbnYzAPc0aHdcoaRaRc
	D40iMpHnyxn/drRLeUVViLn3uzAqJptDI00kvwQIdhfYcV0f9eQ1nTy1Gg3ttuBJZEgsyE+1+tN
	0zW9FC2Mgfc/Uk=
X-Received: by 2002:a5d:584f:0:b0:439:5c75:dc08 with SMTP id ffacd0b85a97d-4399de0b8c0mr21267342f8f.10.1772444787163;
        Mon, 02 Mar 2026 01:46:27 -0800 (PST)
Message-ID: <8a8d0a11-2b19-4fb8-bc0f-9397c0db8ed9@suse.com>
Date: Mon, 2 Mar 2026 10:46:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen/cpufreq: fix adjusting of sampling window on
 early exit
To: Roger Pau Monne <roger.pau@citrix.com>
References: <20260227073259.1200-1-roger.pau@citrix.com>
 <20260227073259.1200-2-roger.pau@citrix.com>
Content-Language: en-US
Cc: xen-devel@lists.xenproject.org
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260227073259.1200-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 27.02.2026 08:32, Roger Pau Monne wrote:
> The logic in dbs_check_cpu() resets the sampling window even when the
> sampling period is considered too small.  This leads to further calls
> finding an imbalance between the total window time and the idle time, as
> the total window time is possibly shorter than the idle time.
> 
> Fix by resetting the sampling window start time in the same block where the
> current idle time is stored.  While there also prevent a duplicated call to
> NOW() and instead re-use the previously fetched value.
> 
> Fixes: d6f001cb91ac ("x86: Implement cpufreq ondemand policy")
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Mar 02 09:57:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 09:57:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244055.1543521 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx024-00077b-6G; Mon, 02 Mar 2026 09:57:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244055.1543521; Mon, 02 Mar 2026 09:57:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx024-00077U-2e; Mon, 02 Mar 2026 09:57:44 +0000
Received: by outflank-mailman (input) for mailman id 1244055;
 Mon, 02 Mar 2026 09:57:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9kJt=BC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vx01t-00071G-TK
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 09:57:41 +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 3510c92a-161e-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 10:57:22 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4807068eacbso34804125e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 02 Mar 2026 01:57: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-483bfcb4f8bsm309877465e9.4.2026.03.02.01.57.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Mar 2026 01:57: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: 3510c92a-161e-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772445441; x=1773050241; 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=rlfLkU5zFNa46IcsgJeGs4KnjPnmVvVatz5QByV8OIc=;
        b=DdL/M6RSrkeQRB5UDcFFprbWzaojCzKUlcDNVPz2MUv18rAS5P3w9PFHjHMxSEQcHo
         MbNP9ERyVCUcKpM3aHB1E+HWnjmgq/fFKMpng6rukG3W8xQYwWJc7lzRkaxlSfaf2zHB
         29S6bAvPi/bm+d5D00frTsiG5gGjZJ70wxO5UmdpEjGl3vQRs6eBDK4Dz7c4M2e9FJYs
         RmZq7xEli9R4cTxh0ykWu3uyqvxdCqYJDpUGG+fgE9szl+9F+UfwgdMmk+INik04O3a/
         MTPt9YgJczvkuaJTVane/lfgS4JQ4L1PkVjOJ+6Ip1MOZe68aHDbZgw4c93ipBpVBoPV
         2bzA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772445441; x=1773050241;
        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=rlfLkU5zFNa46IcsgJeGs4KnjPnmVvVatz5QByV8OIc=;
        b=jpI5ecgr7yoXP7VIavVI9xzIuqxeJOG09xVlt/WjAnK4fRBD3wCmiBg60fdG5V42dN
         /JMrcWOg9rM6SXG0Eon5YEBguIhUQAhhQcjK9/sYvtpE0hcVKXLB36s8LyhI4MowcD3I
         +Tmp/tR/g1gdid/o5MjAW+nIONsQK/3Srz0x6tKCNLLer+pbGzeliAgDfzipJJqtEZRz
         0JEkbChir24uhDFDCJEKKiCIUuRJfyUkpWDWNdQAsONRLfE4+hdw5mReb405bNdqtz4x
         TPICkjZVj8qHUD88UT6kxz8JbqlLIIslIkdZkYulpK7qQD8/fdBAJvJRGr46txQlYF5I
         DGoA==
X-Gm-Message-State: AOJu0Yz3PtZSdxBsiYu+X7+g91cvke/gvpNe2I9z03gju+zNJ7Ddho3d
	nXATPFDYTv5vnM7r8yXTn23upxbbhFbKBUFw5BnRlO8zc9++P1cAmd9Js6zaQb765A==
X-Gm-Gg: ATEYQzxLqdtt0SwuETbJRzMSsW9RlC/0dvzTT1zJM41QLJPGXx+SlVfkots6mSry6yF
	ZV2U6WySX2ZI0iGXiyWlkqphyuzQlw+ObIffdzRyHZYxOSEass7kh1O7iWytGJqDxd/qXwIIeBu
	8R0OhQBNI8aIXChJ7EzLQLlK4QCk5FBsmZrF8M2r96ihsc/kK86E2N/j0oXfr0wjV15sYCm+Alg
	VgVjgmCxds2XoDDzFuOqflqeRryx3l/syVYGzZSD7HADWsMWmmV00OUZIqasRYeckqVAZ4o0ext
	HI/DxywzPIXMULDZ5aWYEfR2R5qwQVLxC4+GSwKdiMHN907N6yjYpnvtyjF46uuz28lYtjMI7iV
	Q3CoGvAW7YEqNMO3hJzfaSJ1COU4f+Gbboun4yZ5LokVoki4PgBAt2RwuV/9WnQ9WToCTwoyWzp
	v2dOnkwN1BtUJZydoysykj5oAxNCMgZTkGGVVQTSxmLszNPX+oDNzxFSQFN8IptQPFxBBJTNnXo
	Y2+574WjhbXqz0=
X-Received: by 2002:a05:600c:5394:b0:483:8e43:6def with SMTP id 5b1f17b1804b1-483c9bf46b7mr199465045e9.28.1772445441451;
        Mon, 02 Mar 2026 01:57:21 -0800 (PST)
Message-ID: <ee815d76-1178-4620-9376-5a0533cbfcc6@suse.com>
Date: Mon, 2 Mar 2026 10:57:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xen/cpufreq: fix usages of align_timer() in the
 on-demand governor
To: Roger Pau Monne <roger.pau@citrix.com>
References: <20260227073259.1200-1-roger.pau@citrix.com>
 <20260227073259.1200-3-roger.pau@citrix.com>
Content-Language: en-US
Cc: xen-devel@lists.xenproject.org
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260227073259.1200-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 27.02.2026 08:32, Roger Pau Monne wrote:
> The first parameter passed to align_timer() is the timer expiration, not
> the current time.  Adjust the calls to align_timer() in the on-demand
> governor to pass the expected timer expiration as the first parameter.
> 
> Fixes: af74e3a15a83 ("cpufreq: align dbs timer for better package C state residency")
> Fixes: 382b95f627a9 ("Fix cpufreq HW-ALL coordination handle")
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Mar 02 10:01:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 10:01:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244066.1543531 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx05s-0000Mj-PP; Mon, 02 Mar 2026 10:01:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244066.1543531; Mon, 02 Mar 2026 10: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 1vx05s-0000Mc-MR; Mon, 02 Mar 2026 10:01:40 +0000
Received: by outflank-mailman (input) for mailman id 1244066;
 Mon, 02 Mar 2026 10:01:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f7KG=BC=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vx03Z-0007hB-Kz
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 10:01:39 +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 6f0a2727-161e-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 10:58:59 +0100 (CET)
Received: from AS9PR07CA0031.eurprd07.prod.outlook.com (2603:10a6:20b:46b::33)
 by AM8PR08MB5745.eurprd08.prod.outlook.com (2603:10a6:20b:1c5::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.20; Mon, 2 Mar
 2026 09:58:49 +0000
Received: from AM3PEPF0000A793.eurprd04.prod.outlook.com
 (2603:10a6:20b:46b:cafe::c0) by AS9PR07CA0031.outlook.office365.com
 (2603:10a6:20b:46b::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.18 via Frontend Transport; Mon,
 2 Mar 2026 09:58:46 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM3PEPF0000A793.mail.protection.outlook.com (10.167.16.122) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.16
 via Frontend Transport; Mon, 2 Mar 2026 09:58:49 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by VI0PR08MB11170.eurprd08.prod.outlook.com (2603:10a6:800:251::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.21; Mon, 2 Mar
 2026 09:57:46 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9654.020; Mon, 2 Mar 2026
 09:57: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: 6f0a2727-161e-11f1-b164-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=aUiwWNEbeEr0+eof9Wmp9/+UWCyaVA+ryXioSJYHy2OOq+UHjmEh778XP15eOFF7DTHxB2WF/Epfw4Qv+IxWVeXC8XDwVuIDFjXZCIC7Sw3XZ/FG01eCllEPesNM+r3ngmj0R9jqKsoNxLNdAFgAI5VzpOKWII7dMm0Wd5niZC4rPEMyGAWJCG3LlBLPbuDVgS8QqM+J1GzhsHSzGcyRY95DkitzYONIvO4is/B416dA4YNQTL3SGZ5F3wvityL9Gp9JZLXnavaZ+2PbwYkt4l1ZUlGNoxdPbKoTPjS0CW2BTnTZsRuwF6Y5L9sr9Qe1fZUsUIZIg8/Qa8+2wiTYKQ==
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=D+9imK5XawmDQe7P0Xr+MoPnLE1iv7IUk7n8ZiKvx7E=;
 b=hACBAFkC/Oklxg3+xyMhHSGpC1d2s8QkZgV97uOlilku7Ndymve1WhwNsSaghyrX7a7AxdoxDrL9K5KVQCGYSMuM/AuK6/pX6zrbcTZWfvk+KqGzplRsEx+g6kwnRvp1R+VC9h/kVLu8A7NiQsxNJBSZ4vddNFdsSPY7TGhEmfdb2OaZSHz24mW6m8CD9QokScUicNa7CenI9te9oANqO1o4VQGIBOUJ6cMny4Ou1LO/rmkgbq+tU5Ud+j/ivNbLcbYGDuhUL1XORzRsLhh/Kz3FPCe8BfBjUns1nt3UIt5ODOVPrvspw7gzk8IEyzzR6OVj2z1lpXydIadt+U/Ksg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=D+9imK5XawmDQe7P0Xr+MoPnLE1iv7IUk7n8ZiKvx7E=;
 b=A5vO+nDVMryJcY0G1ei4lJZ4xGl2VMjgVJ2dgrZOS4QXVm2FeL9OQI4SJUffK1DCVMb2zhJOd8kkVV4v5cLHXKiozL4KRev3uQZxOOcOBx6plIpA6UPuFwm620mPerqxHFDb2Rt2M0jQwKlPsfaDY+2EyfabJBdn9+DuQBz1iBA=
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=kUdTZkh9r0OLqFvfuq980byy77bKKS7HHS/Chad2+kVWXkYq+Xa8yBEEGjlgonV8B1HdTVmXH3KSalE5pvYchTGOdj6qgHp00nYwHJHuQKhWDzc1LIHGkJxZFLS8m8H8IyhDuccmDJfWVMzwwE+/I+uZPkymVGxYKYoOx5rV+yUcBhSiU51dpOxZUXQzCzwbuIE9/Qw5kLcp5P0grUGKVaq8PMfqPNGUacgdvmgCiktPGLoh24SxZLK7OEQCEG7TmMlgCUSWh8tTl0gAoKgY6YKjD5+iYTPS9TeNamXCTtMbgDw+7gTkIlhv9Dvbk3Z1qru5jWNNb8vOWdHlKWFBwA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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+9imK5XawmDQe7P0Xr+MoPnLE1iv7IUk7n8ZiKvx7E=;
 b=Frk3cOjmCZuihE138yHY7rvpAoa26e5tIDpwZ0hhHdOFpTifEvmQVqDiN7duNzEVrvNbOKfXQ06OyG6ZX7PUSPNO3HhCT6g3NKWMsWsAIUNgaJbmELDtByqgLGNCmSAG7Vy6qYoT95rdtiBLjFXLSjzAtwdEuL3+tvprBzyo8cfOdygMSM0+TaZdKFDC3LbeMxsl2BqhsEohut/FYnxg5zDw/I/d3Cq47UUifY+uEf+mcK+TPjQnY+P0RofDfz9gwvlpklmUFQg3QtzCVtGJ92Ewf7g8VQoCuUX71dgceKznkDoTBSezsu/os87IsCF0+wE+9g76UvmQrlPRSzFuBg==
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=D+9imK5XawmDQe7P0Xr+MoPnLE1iv7IUk7n8ZiKvx7E=;
 b=A5vO+nDVMryJcY0G1ei4lJZ4xGl2VMjgVJ2dgrZOS4QXVm2FeL9OQI4SJUffK1DCVMb2zhJOd8kkVV4v5cLHXKiozL4KRev3uQZxOOcOBx6plIpA6UPuFwm620mPerqxHFDb2Rt2M0jQwKlPsfaDY+2EyfabJBdn9+DuQBz1iBA=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 2/4] xen/arm: ffa: Cache SP partition info at init
Thread-Topic: [PATCH 2/4] xen/arm: ffa: Cache SP partition info at init
Thread-Index: AQHcpj3iktrazLk1t0mCBnzOLulDCLWWXkkAgASYY4CAAAvlgIAABvEA
Date: Mon, 2 Mar 2026 09:57:46 +0000
Message-ID: <6A629240-E2E4-48E4-A79A-031D7258D676@arm.com>
References: <cover.1772013062.git.bertrand.marquis@arm.com>
 <0a5f66eaa16f262d4ffad6a8ec4b1b02461f96c1.1772013062.git.bertrand.marquis@arm.com>
 <CAHUa44FSq6aHTO=HWNOB1Qa5keuEfmhwpSW4hRjVgQdUX0fjmA@mail.gmail.com>
 <9B608F0B-E564-42C6-9F85-E1701F707554@arm.com>
 <CAHUa44Fv9LuYED_jjW3UeEDZLjL==s0Myw2vD7PSHPUgn-OC3Q@mail.gmail.com>
In-Reply-To:
 <CAHUa44Fv9LuYED_jjW3UeEDZLjL==s0Myw2vD7PSHPUgn-OC3Q@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|VI0PR08MB11170:EE_|AM3PEPF0000A793:EE_|AM8PR08MB5745:EE_
X-MS-Office365-Filtering-Correlation-Id: 82d979ab-744a-4dd6-a455-08de78424d72
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|10070799003|1800799024|376014|366016|18132099003|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 /e6Urx3Feo1bUwzfUDDaL0JnrG58PqP0pXxmoRY+IbFKHM8MmuEjbozUmYVZ6xBdtUxBNRJ5m6PjFBl5y1VmonmApqhCF9ZC1TYtGq4dwN1WgEAwthjdgE2acwytP6/jXpPRmTNLd0H2nu2BE25SV3sdbY6+RimqgalehW6PuINlDjBZWImMgLvmTuGKmTjnoths0BI0BiNNiT7CKM404Mf/QF4K/51yuKENEw5rwRa58gXClLakNr+6zqcStPB0gH5VI+lV6n0ETrJenH9j9MAtGzVBGNfPc2QyAElH2JxuWKlYriXK+dVig2YujGosCyenBjqlz2tGJ+Ux/kV4jXxOfjgwD8e3uqCYtLJ0bhQ6uJ2eKmk1czugymyeDB3RFOj9cZYAjDq8lQqpb/Ab+wAxVfl1tkas847W5EiFj7ydZDurdMs+a6bYuIVR6uZaecPtCQJPFMOT/EuRTeDAz+AdBqCpEteK16y/uyPJdLjxZYyYIahhyho5TRNjHc0+bWak+K6GibQZHF6itofRSA651uBoO6/CbxBI45eYLaxRZAqKn8LJ0aDSzbl5sjfp5Oasr/Y6IA2DyYesjKr1gwhnqM5JIAKYf7EemddRvnsYaQ3693IFQdw8xbf153IwM/a02o1pjxSu/E21VUhJD7cdIQulRlm/hk5ed3TsHE7Sd6twOjmTECMK4CEtxyA5baPa7TeI441HGg+6LVxrWDW8KjaHpRhwMvp+q/SZUeQpvzQ9YVq5toOXdEJXUddcZzgot8QzQVqyGbo5LDCoyNIVHWk5VWZWELbWV8xZW0o=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(376014)(366016)(18132099003)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <93165EC342A39C4F8519B3F7AA46840E@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 bHmNC6MPdXnMsxUInEL6fDQW89MbwLD8PmR1wdTR/sKGrMKGm6vZNohAToiKiuZgW5X0H39p0STZAfMBZFf9Us+98WUzmeKpdMxJFupd+qXR+XOaablQ/lG/iVIfCmJH47uid3oLXDakwePfWY3k12xT1e1PEJRPWSNjrCHrz3wjf6A6KMc7kdlcjcfdOxkHgzaYoyQazcQfzGNecIX21DCjTbgq2vwXYFkpOt2bUgksQbKjjBnC+Fj7s0jCLzWtPWneL+1sl8V+4PrwJGeCiRb0CSSWxvYHtPchRILN4X8zqRBMiSyDfc4XGb4hjTKXVnVdbUZYNh5kC12lTfeNZw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB11170
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF0000A793.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	85b4d72d-b0ee-4bb0-0b3d-08de784227d8
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|35042699022|36860700013|376014|14060799003|18132099003|7053199007;
X-Microsoft-Antispam-Message-Info:
	w4XST4S2sBHQ2oFMjvQgX/+FqKPvFqG6OAks9wr7CbKcvu+RROUzfitmddoAWCERS8dKt1nVvmlnu7NRImv63HAaSV8dmACGxXp6Ujy+vzwm74+KZRyZ0H4h3Bgb/fSzKlY9h4+vxDxKBM2yKpZkvZ1OYU5ijpJfJtwCllfJCUm5xWrU1F4zbxC2mqUhUEN5/3SsXZCcBR1RYd8+AgPhiGWsIWSYWDrQBkMOdsEtGh9AphdW1MsZdalh25+fqjbmRSHewvHgE+zphs747YTKYi9SZi8FCtZrGqHXs1Xfef1nNY/dpI3eF3iHOQuv+uHId91YPpFxHId0fIUVX4BT+zzP0+KIaL/eb5sLbOF9ycuTwqvKo9Dv0xnBzdcTY+dA3OUIi0gf9TK1q8PBlBfP5NvO/ff+lg+Kecv+TqvaeTd2ZemyVoOtua7sJagXg3g5TQIFNDPUXaw/N28/LDXl6UDHtwtycL4YXM7UOZtj/ZnIuWCcR7heLaKDrIUg7i2AqWqWY2efbJmrkcYA89cZ/qBWSKMwo08nkOkjp28TsdlpIMr7vZAX3PfIEDc2ehfsdXN5J87tg0fgSBRIXmZ1WWKkGg9VK5CtioV+MxKjgsKC6doBfa9URAvOhjCR/x87C4SLu17s8VC08T9VwrYolmz964ryr8CqMAgEzh/k0JFWUhWP5avQqc9tbF47oiPhMiMKb1AZW80hVdc98bXVmNc/OWimXK7fgrS4yUvLQGJMkd8CtvJRNmBzXFUKjMescbSbo3pmEIkmBKF0K1GueLy62oiiV0miH+aB+e44QQIASxCoP76odvLbexiI3sUpolaAhMbNGPuPKdaHNMpEOg==
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(35042699022)(36860700013)(376014)(14060799003)(18132099003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	j+xB3eKcX697FNvIhqXr5PzBvMlSmubRZo35nyw3h7KMeZCmWheRoeNRC/tElX1SYRGWqqJNP44zY+Hyf4AM7yGGaGr9gRx1rnii2S7JfnTZByxw/VmGEtxCFrWQFlRtPJnxKGi829T83E7jwOfNgyZDiQT6R2Jl0uiTW6ErkkmWc1C9+6iV5Ysa98e4an7lyGns1WSM0xZ5GAhDWP/kdBCregC7sDi4X3kzCfGJ6xPBvMxuL2EEH0sektFjz51VQU3gzvhYgrTrqliFksLPcQWZS4USRqB1TttpwkIOoMrV/b/UqFahznfmEVB5R91UzuBwq3axjYJRJ3+Wb+VWkcwXzgkTOTXbyo90RzWbu41USr+/pGz+FG7hCOs/RZUZ9ILisbBwWP9GlbDV+2l+KKUYa2ldt246oE+K9A2FhEhAh5RAQBZehAZNktJoMXiE
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Mar 2026 09:58:49.4674
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 82d979ab-744a-4dd6-a455-08de78424d72
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:
	AM3PEPF0000A793.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5745

SGkgSmVucywNCg0KPiBPbiAyIE1hciAyMDI2LCBhdCAxMDozMiwgSmVucyBXaWtsYW5kZXIgPGpl
bnMud2lrbGFuZGVyQGxpbmFyby5vcmc+IHdyb3RlOg0KPiANCj4gSGkgQmVydHJhbmQsDQo+IA0K
PiBPbiBNb24sIE1hciAyLCAyMDI2IGF0IDk6NTHigK9BTSBCZXJ0cmFuZCBNYXJxdWlzDQo+IDxC
ZXJ0cmFuZC5NYXJxdWlzQGFybS5jb20+IHdyb3RlOg0KPj4gDQo+PiBIaSBKZW5zLA0KPj4gDQo+
Pj4gT24gMjcgRmViIDIwMjYsIGF0IDExOjM5LCBKZW5zIFdpa2xhbmRlciA8amVucy53aWtsYW5k
ZXJAbGluYXJvLm9yZz4gd3JvdGU6DQo+Pj4gDQo+Pj4gSGkgQmVydHJhbmQsDQo+Pj4gDQo+Pj4g
T24gV2VkLCBGZWIgMjUsIDIwMjYgYXQgMTE6MDLigK9BTSBCZXJ0cmFuZCBNYXJxdWlzDQo+Pj4g
PGJlcnRyYW5kLm1hcnF1aXNAYXJtLmNvbT4gd3JvdGU6DQo+Pj4+IA0KPj4+PiBGRkFfUEFSVElU
SU9OX0lORk9fR0VUIGN1cnJlbnRseSBxdWVyaWVzIHRoZSBTUE1DIG9uIGVhY2ggY2FsbCBhbmQg
d2Fsa3MgdGhlDQo+Pj4+IFJYIGJ1ZmZlciBldmVyeSB0aW1lLiBUaGUgU1AgbGlzdCBpcyBleHBl
Y3RlZCB0byBiZSBzdGF0aWMsIHNvIHJlcGVhdGVkDQo+Pj4+IGZpcm13YXJlIGNhbGxzIGFuZCB2
YWxpZGF0aW9uIGFyZSB1bm5lY2Vzc2FyeS4NCj4+Pj4gDQo+Pj4+IENhY2hlIHRoZSBTUE1DIHBh
cnRpdGlvbi1pbmZvIGxpc3QgYXQgaW5pdCB0aW1lLCBrZWVwaW5nIG9ubHkgc2VjdXJlDQo+Pj4+
IGVuZHBvaW50cywgYW5kIHJldXNlIHRoZSBjYWNoZWQgZW50cmllcyBmb3IgU1AgY291bnQgYW5k
IHBhcnRpdGlvbi1pbmZvDQo+Pj4+IHJlc3BvbnNlcy4gSW5pdGlhbGl6ZSB0aGUgVk0gY3JlYXRl
L2Rlc3Ryb3kgc3Vic2NyaWJlciBsaXN0cyBmcm9tIHRoZSBjYWNoZWQNCj4+Pj4gbGlzdCBhbmQg
ZnJlZSB0aGUgY2FjaGUgb24gaW5pdCBmYWlsdXJlLg0KPj4+PiANCj4+Pj4gU1AgcGFydGl0aW9u
IGluZm8gbm93IHJlZmxlY3RzIHRoZSBpbml0LXRpbWUgc25hcHNob3QgYW5kIHdpbGwgbm90IGNo
YW5nZS4NCj4+Pj4gDQo+Pj4+IFNpZ25lZC1vZmYtYnk6IEJlcnRyYW5kIE1hcnF1aXMgPGJlcnRy
YW5kLm1hcnF1aXNAYXJtLmNvbT4NCj4+Pj4gLS0tDQo+Pj4+IHhlbi9hcmNoL2FybS90ZWUvZmZh
X3BhcnRpbmZvLmMgfCAyMDUgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0NCj4+Pj4g
MSBmaWxlIGNoYW5nZWQsIDEzOCBpbnNlcnRpb25zKCspLCA2NyBkZWxldGlvbnMoLSkNCj4+Pj4g
DQo+Pj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9wYXJ0aW5mby5jIGIveGVu
L2FyY2gvYXJtL3RlZS9mZmFfcGFydGluZm8uYw0KPj4+PiBpbmRleCA2YTZmM2ZmYjgyMmUuLjhh
M2VhYzI1Zjk5ZiAxMDA2NDQNCj4+Pj4gLS0tIGEveGVuL2FyY2gvYXJtL3RlZS9mZmFfcGFydGlu
Zm8uYw0KPj4+PiArKysgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9wYXJ0aW5mby5jDQo+Pj4+IEBA
IC02LDYgKzYsNyBAQA0KPj4+PiAjaW5jbHVkZSA8eGVuL2NvbnN0Lmg+DQo+Pj4+ICNpbmNsdWRl
IDx4ZW4vc2l6ZXMuaD4NCj4+Pj4gI2luY2x1ZGUgPHhlbi90eXBlcy5oPg0KPj4+PiArI2luY2x1
ZGUgPHhlbi94bWFsbG9jLmg+DQo+Pj4+IA0KPj4+PiAjaW5jbHVkZSA8YXNtL3NtY2NjLmg+DQo+
Pj4+ICNpbmNsdWRlIDxhc20vcmVncy5oPg0KPj4+PiBAQCAtMzMsNiArMzQsMTAgQEAgc3RhdGlj
IHVpbnQxNl90IHN1YnNjcl92bV9jcmVhdGVkX2NvdW50IF9fcmVhZF9tb3N0bHk7DQo+Pj4+IHN0
YXRpYyB1aW50MTZfdCAqc3Vic2NyX3ZtX2Rlc3Ryb3llZCBfX3JlYWRfbW9zdGx5Ow0KPj4+PiBz
dGF0aWMgdWludDE2X3Qgc3Vic2NyX3ZtX2Rlc3Ryb3llZF9jb3VudCBfX3JlYWRfbW9zdGx5Ow0K
Pj4+PiANCj4+Pj4gKy8qIFNQIGxpc3QgY2FjaGUgKHNlY3VyZSBlbmRwb2ludHMgb25seSk7IHBv
cHVsYXRlZCBhdCBpbml0LiAqLw0KPj4+PiArc3RhdGljIHZvaWQgKnNwX2xpc3QgX19yZWFkX21v
c3RseTsNCj4+Pj4gK3N0YXRpYyB1aW50MzJfdCBzcF9saXN0X2NvdW50IF9fcmVhZF9tb3N0bHk7
DQo+Pj4+ICtzdGF0aWMgdWludDMyX3Qgc3BfbGlzdF9lbnRyeV9zaXplIF9fcmVhZF9tb3N0bHk7
DQo+Pj4+IHN0YXRpYyBpbnQzMl90IGZmYV9wYXJ0aXRpb25faW5mb19nZXQoc3RydWN0IGZmYV91
dWlkIHV1aWQsIHVpbnQzMl90IGZsYWdzLA0KPj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdWludDMyX3QgKmNvdW50LCB1aW50MzJfdCAqZnBpX3NpemUpDQo+Pj4+IHsN
Cj4+Pj4gQEAgLTc5LDkyICs4NCw3OCBAQCBzdGF0aWMgaW50MzJfdCBmZmFfY29weV9pbmZvKHZv
aWQgKipkc3QsIHZvaWQgKmRzdF9lbmQsIGNvbnN0IHZvaWQgKnNyYywNCj4+Pj4gICAgcmV0dXJu
IEZGQV9SRVRfT0s7DQo+Pj4+IH0NCj4+Pj4gDQo+Pj4+IC1zdGF0aWMgaW50MzJfdCBmZmFfZ2V0
X3NwX2NvdW50KHN0cnVjdCBmZmFfdXVpZCB1dWlkLCB1aW50MzJfdCAqc3BfY291bnQpDQo+Pj4+
ICtzdGF0aWMgYm9vbCBmZmFfc3BfZW50cnlfbWF0Y2hlc191dWlkKGNvbnN0IHZvaWQgKmVudHJ5
LCBzdHJ1Y3QgZmZhX3V1aWQgdXVpZCkNCj4+Pj4gew0KPj4+PiAtICAgIHVpbnQzMl90IHNyY19z
aXplOw0KPj4+PiArICAgIGNvbnN0IHN0cnVjdCBmZmFfcGFydGl0aW9uX2luZm9fMV8xICpmcGkg
PSBlbnRyeTsNCj4+Pj4gKyAgICBzdHJ1Y3QgZmZhX3V1aWQgc3BfdXVpZDsNCj4+Pj4gKw0KPj4+
PiArICAgIGlmICggZmZhX3V1aWRfaXNfbmlsKHV1aWQpICkNCj4+Pj4gKyAgICAgICAgcmV0dXJu
IHRydWU7DQo+Pj4+IA0KPj4+PiAtICAgIHJldHVybiBmZmFfcGFydGl0aW9uX2luZm9fZ2V0KHV1
aWQsIEZGQV9QQVJUSVRJT05fSU5GT19HRVRfQ09VTlRfRkxBRywNCj4+Pj4gLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzcF9jb3VudCwgJnNyY19zaXplKTsNCj4+Pj4gKyAgICBp
ZiAoIHNwX2xpc3RfZW50cnlfc2l6ZSA8IHNpemVvZigqZnBpKSApDQo+Pj4+ICsgICAgICAgIHJl
dHVybiBmYWxzZTsNCj4+PiANCj4+PiBUaGlzIGNhbiBuZXZlciBoYXBwZW4gc2luY2Ugd2UgZG9u
J3QgYWNjZXB0IFNQTUMgYmVsb3cgdmVyc2lvbiAxLjEuIFdlDQo+Pj4gZXZlbiBoYXZlIGEgY2hl
Y2sgdG8gZW5zdXJlIHRoZSBTUE1DIGRvZXNuJ3QgcmV0dXJuIGEgdG9vLXNtYWxsDQo+Pj4gc3Bp
X3NpemUuDQo+PiANCj4+IEkgdHJpZWQgdG8gbWFrZSB0aGUgY29kZSBmb3J3YXJkIGNvbXBhdGli
bGUuIEl0IGlzIG5vdCByZWFsbHkgYSBwb3NzaWJsZSBjYXNlIHJpZ2h0IG5vdw0KPj4gYnV0IHdl
IGNvdWxkIGZhbGwgaW50byB0aGlzIGluIHRoZSBmdXR1cmUuDQo+IA0KPiBBdCB0aGUgbW9tZW50
LCBpdCdzIG9ubHkgZmZhX3NwX2xpc3RfY2FjaGVfaW5pdCgpLCB3aGljaCBpbml0aWFsaXplcw0K
PiBhbmQgcHV0cyB0aGluZ3MgaW4gdGhlIFNQLiBTbyBhcyBsb25nIGFzIGZmYV9zcF9saXN0X2Nh
Y2hlX2luaXQoKSBhbmQNCj4gdGhpcyBmdW5jdGlvbiBhcmUgaW4gc3luYywgdGhlcmUgc2hvdWxk
IGJlIG5vIHByb2JsZW0uIEl0IHNpbXBsaWZpZXMNCj4gdGhpbmdzIGlmIHdlIGNhbiB0cnVzdCB0
aGUgU1AgY2FjaGUgdG8gYmUgdXNhYmxlLg0KDQpBZ3JlZSwgd2Ugc2hvdWxkIG5vdCBjb21lIGlu
dG8gYSBzaXR1YXRpb24gd2hlcmUgdGhlIFNQIGNhY2hlIGNvbnRlbnQgY2Fubm90IGJlIHVzZWQu
DQpBbnl0aGluZyB0byBiZSBjaGVjayBtdXN0IGhhdmUgYmVlbiBjaGVja2VkIG9yIGNvbnZlcnRl
ZCB3aGVuIGNyZWF0aW5nIHRoZSBjYWNoZSBub3QNCndoZW4gdXNpbmcgaXQuDQoNCj4gDQo+PiAN
Cj4+PiANCj4+Pj4gKw0KPj4+PiArICAgIG1lbWNweSgmc3BfdXVpZCwgZnBpLT51dWlkLCBzaXpl
b2Yoc3BfdXVpZCkpOw0KPj4+PiArICAgIHJldHVybiBmZmFfdXVpZF9lcXVhbCh1dWlkLCBzcF91
dWlkKTsNCj4+Pj4gfQ0KPj4+PiANCj4+Pj4gLXN0YXRpYyBpbnQzMl90IGZmYV9nZXRfc3BfcGFy
dGluZm8oc3RydWN0IGZmYV91dWlkIHV1aWQsIHVpbnQzMl90ICpzcF9jb3VudCwNCj4+Pj4gLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqKmRzdF9idWYsIHZvaWQgKmVu
ZF9idWYsDQo+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90
IGRzdF9zaXplKQ0KPj4+PiArc3RhdGljIGludDMyX3QgZmZhX2dldF9zcF9jb3VudChzdHJ1Y3Qg
ZmZhX3V1aWQgdXVpZCwgdWludDMyX3QgKnNwX2NvdW50KQ0KPj4+PiB7DQo+Pj4+IC0gICAgaW50
MzJfdCByZXQ7DQo+Pj4+IC0gICAgaW50MzJfdCByZWxlYXNlX3JldDsNCj4+Pj4gLSAgICB1aW50
MzJfdCBzcmNfc2l6ZSwgcmVhbF9zcF9jb3VudDsNCj4+Pj4gLSAgICB2b2lkICpzcmNfYnVmOw0K
Pj4+PiAgICB1aW50MzJfdCBjb3VudCA9IDA7DQo+Pj4+IC0gICAgYm9vbCBub3RpZnlfZncgPSBm
YWxzZTsNCj4+Pj4gLQ0KPj4+PiAtICAgIC8qIFdlIG5lZWQgdG8gdXNlIHRoZSBSWCBidWZmZXIg
dG8gcmVjZWl2ZSB0aGUgbGlzdCAqLw0KPj4+PiAtICAgIHNyY19idWYgPSBmZmFfcnh0eF9zcG1j
X3J4X2FjcXVpcmUoKTsNCj4+Pj4gLSAgICBpZiAoICFzcmNfYnVmICkNCj4+Pj4gLSAgICAgICAg
cmV0dXJuIEZGQV9SRVRfREVOSUVEOw0KPj4+PiAtDQo+Pj4+IC0gICAgcmV0ID0gZmZhX3BhcnRp
dGlvbl9pbmZvX2dldCh1dWlkLCAwLCAmcmVhbF9zcF9jb3VudCwgJnNyY19zaXplKTsNCj4+Pj4g
LSAgICBpZiAoIHJldCApDQo+Pj4+IC0gICAgICAgIGdvdG8gb3V0Ow0KPj4+PiAtICAgIG5vdGlm
eV9mdyA9IHRydWU7DQo+Pj4+ICsgICAgdWludDMyX3QgbjsNCj4+Pj4gDQo+Pj4+IC0gICAgLyog
VmFsaWRhdGUgdGhlIHNyY19zaXplIHdlIGdvdCAqLw0KPj4+PiAtICAgIGlmICggc3JjX3NpemUg
PCBzaXplb2Yoc3RydWN0IGZmYV9wYXJ0aXRpb25faW5mb18xXzApIHx8DQo+Pj4+IC0gICAgICAg
ICBzcmNfc2l6ZSA+PSBGRkFfUEFHRV9TSVpFICkNCj4+Pj4gKyAgICBmb3IgKCBuID0gMDsgbiA8
IHNwX2xpc3RfY291bnQ7IG4rKyApDQo+Pj4+ICAgIHsNCj4+Pj4gLSAgICAgICAgcmV0ID0gRkZB
X1JFVF9OT1RfU1VQUE9SVEVEOw0KPj4+PiAtICAgICAgICBnb3RvIG91dDsNCj4+Pj4gKyAgICAg
ICAgdm9pZCAqZW50cnkgPSBzcF9saXN0ICsgbiAqIHNwX2xpc3RfZW50cnlfc2l6ZTsNCj4+Pj4g
Kw0KPj4+PiArICAgICAgICBpZiAoIGZmYV9zcF9lbnRyeV9tYXRjaGVzX3V1aWQoZW50cnksIHV1
aWQpICkNCj4+Pj4gKyAgICAgICAgICAgIGNvdW50Kys7DQo+Pj4+ICAgIH0NCj4+Pj4gDQo+Pj4+
IC0gICAgLyoNCj4+Pj4gLSAgICAgKiBMaW1pdCB0aGUgbWF4aW11bSB0aW1lIHdlIGhvbGQgdGhl
IENQVSBieSBsaW1pdGluZyB0aGUgbnVtYmVyIG9mIFNQcy4NCj4+Pj4gLSAgICAgKiBXZSBqdXN0
IGlnbm9yZSB0aGUgZXh0cmEgb25lcyBhcyB0aGlzIGlzIHRlc3RlZCBkdXJpbmcgaW5pdCBpbg0K
Pj4+PiAtICAgICAqIGZmYV9wYXJ0aW5mb19pbml0IHNvIHRoZSBvbmx5IHBvc3NpYmxlIHJlYXNv
biBpcyBTUCBoYXZlIGJlZW4gYWRkZWQNCj4+Pj4gLSAgICAgKiBzaW5jZSBib290Lg0KPj4+PiAt
ICAgICAqLw0KPj4+PiAtICAgIGlmICggcmVhbF9zcF9jb3VudCA+IEZGQV9NQVhfTlVNX1NQICkN
Cj4+Pj4gLSAgICAgICAgcmVhbF9zcF9jb3VudCA9IEZGQV9NQVhfTlVNX1NQOw0KPj4+PiArICAg
ICpzcF9jb3VudCA9IGNvdW50Ow0KPj4+PiANCj4+Pj4gLSAgICAvKiBNYWtlIHN1cmUgdGhlIGRh
dGEgZml0cyBpbiBvdXIgYnVmZmVyICovDQo+Pj4+IC0gICAgaWYgKCByZWFsX3NwX2NvdW50ID4g
KEZGQV9SWFRYX1BBR0VfQ09VTlQgKiBGRkFfUEFHRV9TSVpFKSAvIHNyY19zaXplICkNCj4+Pj4g
LSAgICB7DQo+Pj4+IC0gICAgICAgIHJldCA9IEZGQV9SRVRfTk9UX1NVUFBPUlRFRDsNCj4+Pj4g
LSAgICAgICAgZ290byBvdXQ7DQo+Pj4+IC0gICAgfQ0KPj4+PiArICAgIGlmICggIWZmYV91dWlk
X2lzX25pbCh1dWlkKSAmJiAhY291bnQgKQ0KPj4+PiArICAgICAgICByZXR1cm4gRkZBX1JFVF9J
TlZBTElEX1BBUkFNRVRFUlM7DQo+Pj4+IA0KPj4+PiAtICAgIGZvciAoIHVpbnQzMl90IHNwX251
bSA9IDA7IHNwX251bSA8IHJlYWxfc3BfY291bnQ7IHNwX251bSsrICkNCj4+Pj4gLSAgICB7DQo+
Pj4+IC0gICAgICAgIHN0cnVjdCBmZmFfcGFydGl0aW9uX2luZm9fMV8xICpmcGkgPSBzcmNfYnVm
Ow0KPj4+PiArICAgIHJldHVybiBGRkFfUkVUX09LOw0KPj4+PiArfQ0KPj4+PiANCj4+Pj4gLSAg
ICAgICAgLyogZmlsdGVyIG91dCBTUCBub3QgZm9sbG93aW5nIGJpdCAxNSBjb252ZW50aW9uIGlm
IGFueSAqLw0KPj4+PiAtICAgICAgICBpZiAoIEZGQV9JRF9JU19TRUNVUkUoZnBpLT5pZCkgKQ0K
Pj4+PiAtICAgICAgICB7DQo+Pj4+IC0gICAgICAgICAgICAvKg0KPj4+PiAtICAgICAgICAgICAg
ICogSWYgVk0gaXMgMS4wIGJ1dCBmaXJtd2FyZSBpcyAxLjEgd2UgY291bGQgaGF2ZSBzZXZlcmFs
IGVudHJpZXMNCj4+Pj4gLSAgICAgICAgICAgICAqIHdpdGggdGhlIHNhbWUgSUQgYnV0IGRpZmZl
cmVudCBVVUlEcy4gSW4gdGhpcyBjYXNlIHRoZSBWTSB3aWxsDQo+Pj4+IC0gICAgICAgICAgICAg
KiBnZXQgYSBsaXN0IHdpdGggc2V2ZXJhbCB0aW1lIHRoZSBzYW1lIElELg0KPj4+PiAtICAgICAg
ICAgICAgICogVGhpcyBpcyBhIG5vbi1jb21wbGlhbmNlIHRvIHRoZSBzcGVjaWZpY2F0aW9uIGJ1
dCAxLjAgVk1zIHNob3VsZA0KPj4+PiAtICAgICAgICAgICAgICogaGFuZGxlIHRoYXQgb24gdGhl
aXIgb3duIHRvIHNpbXBsaWZ5IFhlbiBpbXBsZW1lbnRhdGlvbi4NCj4+Pj4gLSAgICAgICAgICAg
ICAqLw0KPj4+PiArc3RhdGljIGludDMyX3QgZmZhX2dldF9zcF9wYXJ0aW5mbyhzdHJ1Y3QgZmZh
X3V1aWQgdXVpZCwgdWludDMyX3QgKnNwX2NvdW50LA0KPj4+PiArICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2b2lkICoqZHN0X2J1Ziwgdm9pZCAqZW5kX2J1ZiwNCj4+Pj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZHN0X3NpemUpDQo+Pj4+
ICt7DQo+Pj4+ICsgICAgaW50MzJfdCByZXQ7DQo+Pj4+ICsgICAgdWludDMyX3QgY291bnQgPSAw
Ow0KPj4+PiArICAgIHVpbnQzMl90IG47DQo+Pj4+IA0KPj4+PiAtICAgICAgICAgICAgcmV0ID0g
ZmZhX2NvcHlfaW5mbyhkc3RfYnVmLCBlbmRfYnVmLCBzcmNfYnVmLCBkc3Rfc2l6ZSwgc3JjX3Np
emUpOw0KPj4+PiAtICAgICAgICAgICAgaWYgKCByZXQgKQ0KPj4+PiAtICAgICAgICAgICAgICAg
IGdvdG8gb3V0Ow0KPj4+PiArICAgIGZvciAoIG4gPSAwOyBuIDwgc3BfbGlzdF9jb3VudDsgbisr
ICkNCj4+Pj4gKyAgICB7DQo+Pj4+ICsgICAgICAgIHZvaWQgKmVudHJ5ID0gc3BfbGlzdCArIG4g
KiBzcF9saXN0X2VudHJ5X3NpemU7DQo+Pj4+IA0KPj4+PiAtICAgICAgICAgICAgY291bnQrKzsN
Cj4+Pj4gLSAgICAgICAgfQ0KPj4+PiArICAgICAgICBpZiAoICFmZmFfc3BfZW50cnlfbWF0Y2hl
c191dWlkKGVudHJ5LCB1dWlkKSApDQo+Pj4+ICsgICAgICAgICAgICBjb250aW51ZTsNCj4+Pj4g
DQo+Pj4+IC0gICAgICAgIHNyY19idWYgKz0gc3JjX3NpemU7DQo+Pj4+ICsgICAgICAgIC8qDQo+
Pj4+ICsgICAgICAgICAqIElmIFZNIGlzIDEuMCBidXQgZmlybXdhcmUgaXMgMS4xIHdlIGNvdWxk
IGhhdmUgc2V2ZXJhbCBlbnRyaWVzDQo+Pj4+ICsgICAgICAgICAqIHdpdGggdGhlIHNhbWUgSUQg
YnV0IGRpZmZlcmVudCBVVUlEcy4gSW4gdGhpcyBjYXNlIHRoZSBWTSB3aWxsDQo+Pj4+ICsgICAg
ICAgICAqIGdldCBhIGxpc3Qgd2l0aCBzZXZlcmFsIHRpbWUgdGhlIHNhbWUgSUQuDQo+Pj4+ICsg
ICAgICAgICAqIFRoaXMgaXMgYSBub24tY29tcGxpYW5jZSB0byB0aGUgc3BlY2lmaWNhdGlvbiBi
dXQgMS4wIFZNcyBzaG91bGQNCj4+Pj4gKyAgICAgICAgICogaGFuZGxlIHRoYXQgb24gdGhlaXIg
b3duIHRvIHNpbXBsaWZ5IFhlbiBpbXBsZW1lbnRhdGlvbi4NCj4+Pj4gKyAgICAgICAgICovDQo+
Pj4+ICsgICAgICAgIHJldCA9IGZmYV9jb3B5X2luZm8oZHN0X2J1ZiwgZW5kX2J1ZiwgZW50cnks
IGRzdF9zaXplLA0KPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwX2xpc3RfZW50
cnlfc2l6ZSk7DQo+Pj4+ICsgICAgICAgIGlmICggcmV0ICkNCj4+Pj4gKyAgICAgICAgICAgIHJl
dHVybiByZXQ7DQo+Pj4+ICsNCj4+Pj4gKyAgICAgICAgY291bnQrKzsNCj4+Pj4gICAgfQ0KPj4+
PiANCj4+Pj4gICAgKnNwX2NvdW50ID0gY291bnQ7DQo+Pj4+IA0KPj4+PiAtb3V0Og0KPj4+PiAt
ICAgIHJlbGVhc2VfcmV0ID0gZmZhX3J4dHhfc3BtY19yeF9yZWxlYXNlKG5vdGlmeV9mdyk7DQo+
Pj4+IC0gICAgaWYgKCByZWxlYXNlX3JldCApDQo+Pj4+IC0gICAgICAgIGdwcmludGsoWEVOTE9H
X1dBUk5JTkcsDQo+Pj4+IC0gICAgICAgICAgICAgICAgImZmYTogRXJyb3IgcmVsZWFzaW5nIFNQ
TUMgUlggYnVmZmVyOiAlZFxuIiwgcmVsZWFzZV9yZXQpOw0KPj4+PiAtICAgIHJldHVybiByZXQ7
DQo+Pj4+ICsgICAgaWYgKCAhZmZhX3V1aWRfaXNfbmlsKHV1aWQpICYmICFjb3VudCApDQo+Pj4+
ICsgICAgICAgIHJldHVybiBGRkFfUkVUX0lOVkFMSURfUEFSQU1FVEVSUzsNCj4+Pj4gKw0KPj4+
PiArICAgIHJldHVybiBGRkFfUkVUX09LOw0KPj4+PiB9DQo+Pj4+IA0KPj4+PiBzdGF0aWMgaW50
MzJfdCBmZmFfZ2V0X3ZtX3BhcnRpbmZvKHN0cnVjdCBmZmFfdXVpZCB1dWlkLCB1aW50MzJfdCBz
dGFydF9pbmRleCwNCj4+Pj4gQEAgLTQzNSw2ICs0MjYsMTQgQEAgc3RhdGljIGludDMyX3QgZmZh
X2RpcmVjdF9yZXFfc2VuZF92bSh1aW50MTZfdCBzcF9pZCwgdWludDE2X3Qgdm1faWQsDQo+Pj4+
ICAgIHJldHVybiByZXM7DQo+Pj4+IH0NCj4+Pj4gDQo+Pj4+ICtzdGF0aWMgdm9pZCBmZmFfc3Bf
bGlzdF9jYWNoZV9mcmVlKHZvaWQpDQo+Pj4+ICt7DQo+Pj4+ICsgICAgWEZSRUUoc3BfbGlzdCk7
DQo+Pj4+ICsgICAgc3BfbGlzdCA9IE5VTEw7DQo+Pj4gDQo+Pj4gWEZSRUUoKSBpcyBhbHJlYWR5
IHNldHRpbmcgc3BfbGlzdCB0byBOVUxMLg0KPj4gDQo+PiBBY2sgd2lsbCBmaXggaW4gdjINCj4+
IA0KPj4+IA0KPj4+PiArICAgIHNwX2xpc3RfY291bnQgPSAwOw0KPj4+PiArICAgIHNwX2xpc3Rf
ZW50cnlfc2l6ZSA9IDA7DQo+Pj4+ICt9DQo+Pj4+ICsNCj4+Pj4gc3RhdGljIHZvaWQgdW5pbml0
X3N1YnNjcmliZXJzKHZvaWQpDQo+Pj4+IHsNCj4+Pj4gICAgICAgIHN1YnNjcl92bV9jcmVhdGVk
X2NvdW50ID0gMDsNCj4+Pj4gQEAgLTQ0Myw2ICs0NDIsNjggQEAgc3RhdGljIHZvaWQgdW5pbml0
X3N1YnNjcmliZXJzKHZvaWQpDQo+Pj4+ICAgICAgICBYRlJFRShzdWJzY3Jfdm1fZGVzdHJveWVk
KTsNCj4+Pj4gfQ0KPj4+PiANCj4+Pj4gK3N0YXRpYyBib29sIGZmYV9zcF9saXN0X2NhY2hlX2lu
aXQoY29uc3Qgdm9pZCAqYnVmLCB1aW50MzJfdCBjb3VudCwNCj4+Pj4gKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZnBpX3NpemUpDQo+Pj4+ICt7DQo+Pj4+ICsg
ICAgY29uc3QgdWludDhfdCAqc3JjID0gYnVmOw0KPj4+PiArICAgIHVpbnQzMl90IHNlY3VyZV9j
b3VudCA9IDA7DQo+Pj4+ICsgICAgdWludDMyX3QgbiwgaWR4ID0gMDsNCj4+Pj4gKyAgICBib29s
IHdhcm5lZCA9IGZhbHNlOw0KPj4+PiArDQo+Pj4+ICsgICAgaWYgKCBmcGlfc2l6ZSA8IHNpemVv
ZihzdHJ1Y3QgZmZhX3BhcnRpdGlvbl9pbmZvXzFfMCkgfHwNCj4+Pj4gKyAgICAgICAgIGZwaV9z
aXplID49IEZGQV9QQUdFX1NJWkUgKQ0KPj4+PiArICAgICAgICByZXR1cm4gZmFsc2U7DQo+Pj4g
DQo+Pj4gV291bGQgaXQgbWFrZSBzZW5zZSB0byBjaGVjayB0aGF0IGZwaV9zaXplIGlzIHdlbGwg
YWxpZ25lZCB3aXRoIHN0cnVjdA0KPj4+IGZmYV9wYXJ0aXRpb25faW5mb18xXzA/IElmIGl0J3Mg
YW4gb2RkIHNpemUsIHdlJ2xsIG1ha2UgdW5hbGlnbmVkDQo+Pj4gYWNjZXNzZXMgYmVsb3cgd2l0
aCBtZW1jcHkoKS4gQnV0IHBlcmhhcHMgdGhhdCdzIGEgYml0IG11Y2guIFRoZSBTUE1DDQo+Pj4g
aXNuJ3Qgc3VwcG9zZWQgdG8gcHJvdmlkZSBnYXJiYWdlLg0KPj4gDQo+PiBNZW1jcHkgc2hvdWxk
IHByZXZlbnQgaXNzdWVzIGV2ZW4gaWYgYWNjZXNzZXMgYXJlIG5vdCBhbGlnbmVkLg0KPj4gSWYg
d2UgaGFkIHRoaXMgdGVzdCwgd2UgY2Fubm90IHJldHVybiBhbiBlcnJvciB0byB0aGUgU1BNQyBz
byB3ZSB3b3VsZCBoYXZlIHRvDQo+PiBnZW5lcmF0ZSBvbmUgdG8gdGhlIGNhbGxlci4gSXQgaXMg
c2ltcGxlciBpIHRoaW5rIHRvIGhhbmRsZSBub24tYWxpZ25lZCBhcyB3ZSBkbyBub3QNCj4+IGV4
cGVjdCB0aGUgU1BNQyB0byBnZW5lcmF0ZSBzdWNoIGEgY2FzZS4NCj4+IFRlbGwgbWUgaWYgeW91
IGFncmVlLg0KPiANCj4gV2UgZGVyZWZlcmVuY2UgZnBpIGJlbG93LCBhbmQgZGVwZW5kaW5nIG9u
IGNvbXBpbGVyIGZsYWdzIGFuZCBwb2ludGVyDQo+IHR5cGVzLCBtZW1jcHkoKSBtaWdodCBub3Qg
YmUgc2FmZSB3aXRoIHVuYWxpZ25lZCBwb2ludGVycy4NCj4gRnJvbSA2LjMuMi4zIFBvaW50ZXJz
LCBwYXJhZ3JhcGggNywgaW4gdGhlIEMgc3RhbmRhcmQ6DQo+ICJBIHBvaW50ZXIgdG8gYW4gb2Jq
ZWN0IHR5cGUgbWF5IGJlIGNvbnZlcnRlZCB0byBhIHBvaW50ZXIgdG8gYQ0KPiBkaWZmZXJlbnQg
b2JqZWN0IHR5cGUuIElmIHRoZQ0KPiByZXN1bHRpbmcgcG9pbnRlciBpcyBub3QgY29ycmVjdGx5
IGFsaWduZWQgZm9yIHRoZSByZWZlcmVuY2VkIHR5cGUsDQo+IHRoZSBiZWhhdmlvciBpcw0KPiB1
bmRl76yBbmVkLiINCj4gDQo+IEkndmUgc2VlbiBwYXN0IGV4YW1wbGVzIHdoZXJlIHRoZSBjb21w
aWxlciBvcHRpbWl6ZWQgbWVtY3B5KCkgaW4gYSB3YXkNCj4gdGhhdCBicmVha3Mgd2l0aCB1bmFs
aWduZWQgcG9pbnRlcnMuDQo+IA0KPiBXZSBkb24ndCBleHBlY3QgdGhlIHRlc3QgYWJvdmUgdG8g
ZmFpbCwgYnV0IGlmIGl0IGRvZXMgd2Ugd2lsbCBub3QgdXNlDQo+IHRoZSBzZWN1cmUgZmlybXdh
cmUuIEkgdGhpbmsgcmVmdXNpbmcgdW5leHBlY3RlZCBzaXplcyBpcyBldmVuDQo+IHNpbXBsZXIu
IEl0IHNob3VsZCBtYWtlIGZpbmRpbmcgZXZlbnR1YWwgZXJyb3JzIG11Y2ggZWFzaWVyLg0KDQpJ
biB0aGUgZmZhIHNwZWMsIHRoZSBzaXplIGNhbiBncm93IGFuZCB0aGlzIGlzIHdoeSB0aGVyZSBp
cyBhIHNpemUgZmllbGQuDQpGRi1BIGV4cGVjdCB0aGF0IHdlIGVpdGhlciBpZ25vcmUgb3IgY29w
eSB3aXRob3V0IGxvb2tpbmcgdGhlIGV4dHJhDQpjb250ZW50Lg0KSSB0aGluayB3ZSBzaG91bGQg
bm90IGJlIGRlcGVuZGVudCBvbiBhbnkgYWxpZ25tZW50IHNvIHdlIG5lZWQgdG8NCm1ha2Ugc3Vy
ZSB3ZSBkbyB0aGUgY29weSBpbiBhIHdheSB0aGF0IGlzIHJvYnVzdCB0byBub24gYWxpZ25tZW50
cy4NCg0KPiANCj4gU28gbXkgcXVlc3Rpb24gYWJvdmUgaXMgd2hldGhlciBpdCdzIHdvcnRoIGNo
ZWNraW5nIHRoYXQgZnBpX3NpemUgaXMNCj4gd2VsbC1hbGlnbmVkLCBvciBpZiBpdCdzIHNvIHVu
bGlrZWx5IHRoYXQgd2UgZG9uJ3QgbmVlZCB0byBjb25zaWRlcg0KPiBpdC4NCg0KSSB0aGluayB3
ZSBuZWVkIHRvIGZpbmQgYSBzb2x1dGlvbiB3aGVyZSB3ZSBoYW5kbGUgcHJvcGVybHkgdGhpbmdz
IGV2ZW4NCmlmIHRoZSBzaXplIGlzIG5vdCBhbGlnbmVkLiBJIHRob3VnaCB1c2luZyBtZW1jcHkg
d291bGQgcHJvdGVjdCBhZ2FpbnN0DQp0aGF0IGJ1dCBtYXliZSB3ZSBuZWVkIHRvIHVzZSBhIHN0
cm9uZ2VyIHNvbHV0aW9uIHRvIGVuc3VyZSB0aGF0IHdvcmtzDQpldmVuIGlmIGRhdGEgaXMgdW5h
bGlnbmVkLg0KDQpDaGVlcnMNCkJlcnRyYW5kDQoNCj4gDQo+IENoZWVycywNCj4gSmVucw0KPiAN
Cj4+IA0KPj4+IA0KPj4+PiArDQo+Pj4+ICsgICAgaWYgKCBjb3VudCA+IChGRkFfUlhUWF9QQUdF
X0NPVU5UICogRkZBX1BBR0VfU0laRSkgLyBmcGlfc2l6ZSApDQo+Pj4+ICsgICAgICAgIHJldHVy
biBmYWxzZTsNCj4+Pj4gKw0KPj4+PiArICAgIGZvciAoIG4gPSAwOyBuIDwgY291bnQ7IG4rKyAp
DQo+Pj4+ICsgICAgew0KPj4+PiArICAgICAgICBjb25zdCBzdHJ1Y3QgZmZhX3BhcnRpdGlvbl9p
bmZvXzFfMCAqZnBpID0NCj4+Pj4gKyAgICAgICAgICAgIChjb25zdCB2b2lkICopKHNyYyArIG4g
KiBmcGlfc2l6ZSk7DQo+Pj4+ICsNCj4+Pj4gKyAgICAgICAgaWYgKCAhRkZBX0lEX0lTX1NFQ1VS
RShmcGktPmlkKSApDQo+Pj4+ICsgICAgICAgIHsNCj4+Pj4gKyAgICAgICAgICAgIGlmICggIXdh
cm5lZCApDQo+Pj4gDQo+Pj4gSXMgdGhpcyBuZWVkZWQ/IERvZXNuJ3QgcHJpbnRrX29uY2UoKSBh
bHJlYWR5IGVuc3VyZSB0aGlzPyBPciBkaWQgeW91DQo+Pj4gaGFwcGVuIHRvIGxlYXZlIHByaW50
a19vbmNlKCkgYnkgbWlzdGFrZSBhbmQgbWVhbnQgZm9yIHRoaXMgdG8gYmUNCj4+PiBwcmludGVk
IG9uY2UgZWFjaCB0aW1lIGZmYV9zcF9saXN0X2NhY2hlX2luaXQoKSBpcyBjYWxsZWQsIHNpbmNl
DQo+Pj4gIndhcm5lZCIgaXNuJ3Qgc3RhdGljLg0KPj4gDQo+PiBWZXJ5IHJpZ2h0LCBpIG5lZWQg
dG8gcmVtb3ZlIHRoZSB3YXJuZWQsIHByaW50a19vbmNlIHNob3VsZCBiZSBlbm91Z2ggaGVyZS4N
Cj4+IA0KPj4+IA0KPj4+PiArICAgICAgICAgICAgew0KPj4+PiArICAgICAgICAgICAgICAgIHBy
aW50a19vbmNlKFhFTkxPR19FUlINCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZmZhOiBGaXJtd2FyZSBpcyBub3QgdXNpbmcgYml0IDE1IGNvbnZlbnRpb24gZm9yIElEcyAhIVxu
Iik7DQo+Pj4+ICsgICAgICAgICAgICAgICAgd2FybmVkID0gdHJ1ZTsNCj4+Pj4gKyAgICAgICAg
ICAgIH0NCj4+Pj4gKyAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSDQo+Pj4+ICsgICAgICAg
ICAgICAgICAgICAgImZmYTogU2VjdXJlIHBhcnRpdGlvbiB3aXRoIGlkIDB4JTA0eCBjYW5ub3Qg
YmUgdXNlZFxuIiwNCj4+Pj4gKyAgICAgICAgICAgICAgICAgICBmcGktPmlkKTsNCj4+Pj4gKyAg
ICAgICAgICAgIGNvbnRpbnVlOw0KPj4+PiArICAgICAgICB9DQo+Pj4+ICsNCj4+Pj4gKyAgICAg
ICAgc2VjdXJlX2NvdW50Kys7DQo+Pj4+ICsgICAgfQ0KPj4+PiArDQo+Pj4+ICsgICAgaWYgKCBz
ZWN1cmVfY291bnQgKQ0KPj4+PiArICAgIHsNCj4+Pj4gKyAgICAgICAgc3BfbGlzdCA9IHh6YWxs
b2NfYnl0ZXMoc2VjdXJlX2NvdW50ICogZnBpX3NpemUpOw0KPj4+PiArICAgICAgICBpZiAoICFz
cF9saXN0ICkNCj4+Pj4gKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCj4+Pj4gKyAgICB9DQo+
Pj4+ICsNCj4+Pj4gKyAgICBzcF9saXN0X2NvdW50ID0gc2VjdXJlX2NvdW50Ow0KPj4+PiArICAg
IHNwX2xpc3RfZW50cnlfc2l6ZSA9IGZwaV9zaXplOw0KPj4+PiArDQo+Pj4+ICsgICAgZm9yICgg
biA9IDA7IG4gPCBjb3VudDsgbisrICkNCj4+Pj4gKyAgICB7DQo+Pj4+ICsgICAgICAgIGNvbnN0
IHN0cnVjdCBmZmFfcGFydGl0aW9uX2luZm9fMV8wICpmcGkgPQ0KPj4+PiArICAgICAgICAgICAg
KGNvbnN0IHZvaWQgKikoc3JjICsgbiAqIGZwaV9zaXplKTsNCj4+Pj4gKw0KPj4+PiArICAgICAg
ICBpZiAoICFGRkFfSURfSVNfU0VDVVJFKGZwaS0+aWQpICkNCj4+Pj4gKyAgICAgICAgICAgIGNv
bnRpbnVlOw0KPj4+PiArDQo+Pj4+ICsgICAgICAgIG1lbWNweShzcF9saXN0ICsgaWR4ICogZnBp
X3NpemUsIGZwaSwgZnBpX3NpemUpOw0KPj4+PiArICAgICAgICBpZHgrKzsNCj4+Pj4gKyAgICB9
DQo+Pj4+ICsNCj4+Pj4gKyAgICByZXR1cm4gdHJ1ZTsNCj4+Pj4gK30NCj4+Pj4gKw0KPj4+PiBz
dGF0aWMgYm9vbCBpbml0X3N1YnNjcmliZXJzKHZvaWQgKmJ1ZiwgdWludDE2X3QgY291bnQsIHVp
bnQzMl90IGZwaV9zaXplKQ0KPj4+PiB7DQo+Pj4+ICAgIHVpbnQxNl90IG47DQo+Pj4+IEBAIC01
NDksMTIgKzYxMCwyMiBAQCBib29sIGZmYV9wYXJ0aW5mb19pbml0KHZvaWQpDQo+Pj4+ICAgICAg
ICBnb3RvIG91dDsNCj4+Pj4gICAgfQ0KPj4+PiANCj4+Pj4gLSAgICByZXQgPSBpbml0X3N1YnNj
cmliZXJzKHNwbWNfcngsIGNvdW50LCBmcGlfc2l6ZSk7DQo+Pj4+ICsgICAgaWYgKCAhZmZhX3Nw
X2xpc3RfY2FjaGVfaW5pdChzcG1jX3J4LCBjb3VudCwgZnBpX3NpemUpICkNCj4+Pj4gKyAgICB7
DQo+Pj4+ICsgICAgICAgIHByaW50ayhYRU5MT0dfRVJSICJmZmE6IEZhaWxlZCB0byBjYWNoZSBT
UCBsaXN0XG4iKTsNCj4+Pj4gKyAgICAgICAgZ290byBvdXQ7DQo+Pj4+ICsgICAgfQ0KPj4+PiAr
DQo+Pj4+ICsgICAgcmV0ID0gaW5pdF9zdWJzY3JpYmVycyhzcF9saXN0LCBzcF9saXN0X2NvdW50
LCBzcF9saXN0X2VudHJ5X3NpemUpOw0KPj4+PiANCj4+Pj4gb3V0Og0KPj4+PiAgICBlID0gZmZh
X3J4dHhfc3BtY19yeF9yZWxlYXNlKG5vdGlmeV9mdyk7DQo+Pj4+ICAgIGlmICggZSApDQo+Pj4+
ICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcgImZmYTogRXJyb3IgcmVsZWFzaW5nIFNQTUMg
UlggYnVmZmVyOiAlZFxuIiwgZSk7DQo+Pj4+ICsgICAgaWYgKCAhcmV0ICkNCj4+Pj4gKyAgICAg
ICAgdW5pbml0X3N1YnNjcmliZXJzKCk7DQo+Pj4gDQo+Pj4gcmV0IGlzIGluaXRpYWxseSBmYWxz
ZSBhbmQgY2FuIG9ubHkgYmUgc2V0IHRvIHRydWUgaWYNCj4+PiBpbml0X3N1YnNjcmliZXJzKCkg
cmV0dXJucyB0cnVlLiBTbyB0aGVyZSdzIG5ldmVyIGFueSBwb2ludCBpbiBjYWxsaW5nDQo+Pj4g
dW5pbml0X3N1YnNjcmliZXJzKCkuDQo+PiANCj4+IFRydWUsIEkgd2lsbCBmaXggdGhhdC4NCj4+
IA0KPj4+IA0KPj4+PiArICAgIGlmICggIXJldCApDQo+Pj4+ICsgICAgICAgIGZmYV9zcF9saXN0
X2NhY2hlX2ZyZWUoKTsNCj4+PiANCj4+PiByZXQgY2FuIGJlIGZhbHNlIGV2ZW4gaWYgZmZhX3Nw
X2xpc3RfY2FjaGVfaW5pdCgpIGhhc24ndCBiZWVuIGNhbGxlZA0KPj4+IHlldC4gQ2FsbGluZyBm
ZmFfc3BfbGlzdF9jYWNoZV9mcmVlKCkgYW55d2F5IGlzIGhhcm1sZXNzLCBidXQgbm90DQo+Pj4g
ZWxlZ2FudC4NCj4+IA0KPj4geWVzLCBpIHdpbGwgcmV3b3JrIGEgYml0IHRoZSBjbGVhbnVwIGxv
Z2ljIGhlcmUuDQo+PiANCj4+IFRoYW5rcyBmb3IgdGhlIHJldmlldw0KPj4gDQo+PiBDaGVlcnMN
Cj4+IEJlcnRyYW5kDQo+PiANCj4+PiANCj4+PiBDaGVlcnMsDQo+Pj4gSmVucw0KPj4+IA0KPj4+
PiAgICByZXR1cm4gcmV0Ow0KPj4+PiB9DQo+Pj4+IA0KPj4+PiAtLQ0KPj4+PiAyLjUyLjANCg0K
DQo=


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 10:07:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 10:07:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244078.1543541 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx0B4-00010q-FL; Mon, 02 Mar 2026 10:07:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244078.1543541; Mon, 02 Mar 2026 10:07:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx0B4-00010j-CE; Mon, 02 Mar 2026 10:07:02 +0000
Received: by outflank-mailman (input) for mailman id 1244078;
 Mon, 02 Mar 2026 10:07:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xkMV=BC=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vx0B3-00010d-AL
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 10:07:01 +0000
Received: from mail-ot1-x32a.google.com (mail-ot1-x32a.google.com
 [2607:f8b0:4864:20::32a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8a59ea01-161f-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Mar 2026 11:06:55 +0100 (CET)
Received: by mail-ot1-x32a.google.com with SMTP id
 46e09a7af769-7d1872504cbso1855805a34.0
 for <xen-devel@lists.xenproject.org>; Mon, 02 Mar 2026 02:06: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: 8a59ea01-161f-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1772446014; cv=none;
        d=google.com; s=arc-20240605;
        b=TpCwPOVjn3owzxUMtGbylauYIrmTtbo9AeBeJwfT0uXdupYL/E06gqI4pfGamhPJ+F
         RNhehsvRgg9AFdbRerb9BYDvg6yGygQfkM6i0qcqmKjSXUResmrH6dL7pkpD6BniibQf
         1wbsnF2mjXL2ZEyalataTfYa1PB27dYB/6mfYV+KpF+Aba5aj04/JgP1c28VQJ0vLyA9
         c6m5/AA798+JozkIdELGRiQR1ZRXuaU+lE6psX3A79KyZekUthhCEMfwkJ0ryKcQt9eB
         hX417r8URpSTfBAyp7U0hUjmaS3qblLIibq6suKAunqWgvaE7aixvk/v+HImBbyk334I
         u7Gw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=ne+Ffqddt+jp/TSNBA9XZK1oaixSm2EvzlC0rKoP8EA=;
        fh=wB0f5JGUSpWYejuxtnrl8SDqvqyWrEsEaWvC32LbdiU=;
        b=kbIF8In98CP/aTAOJ5M59WujFW3ZL7gn5pb0h737FLWo4EBr30PsfK4s5XYIT9I05N
         FxgiOnxBcfHhM88/PGd87t9XRVXtnbIbhKmZO5rw3gKiwRX68tzLJzCegBf8p4iMpODe
         xn3ByHqkXz0RhC09T83lcuZXb4VggsWD/XZVtjMjXhhSezS5W2Z88rt/phYLZNSw8O82
         oN5gdHDA+zaNTdSHHQx6pfC2UMEYa5bLdI7L+usPp12zc0sMjda2b+cQkNhEiY71ZzYX
         hnMJfq9vr8GnPnE/iur+zN7RFTMXPBFE730c72OvH8rlCplBY+UHvpI5oTF6uzELRvMN
         heRA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1772446014; x=1773050814; 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=ne+Ffqddt+jp/TSNBA9XZK1oaixSm2EvzlC0rKoP8EA=;
        b=pOWmrQQu9AeKdr+truA3zbs9zdioliKT/kOFsrJ+/UScRKI/YcpeCT6y8U68m9pxQT
         sVUb8txa1B90VV8weIDVxF3tp9rj7EXP41BQw93GqN9cUSGqZ+/ZVkXIM5OV/0364Anu
         tefuPUVTRhRTlaqyOBARokTsiggBLEoBB2TWPFtb1qhSuY3yuKvdfMePzUDhBhcvebtn
         UuLjJuRbkN78+/1ezTDSygx/5GGW/VYq+yCxxmTdN5zX1Y4VVGoIIOt+0ERatUOtiT7Z
         PXzka8aeV+RVLSJDGTCsEeYKKrqHiITYuAbXQ7E327qt5YLEqYGHJ82BtmGLKsn+C9gf
         e72g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772446014; x=1773050814;
        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=ne+Ffqddt+jp/TSNBA9XZK1oaixSm2EvzlC0rKoP8EA=;
        b=I0nNbrcvdcB8VJ1f95X6uAyjrUXl7UbPZPJh0PLZcEm/gi0CIYSe+RemB8wIfAnbNN
         6rxuDWcbANRh9gjchs1G9nQzEv2TALQLrhDiVws6tzQ2lVGMWCaL/deme6ffubwX2k0s
         RK1hzLN6ulXswDKB9TWxGpILurqMeLPArMCdu04keVGulfOM/GPTPHdgQan+5RAb9oaG
         u8hQWIEX2zx2Qb7AjWKUUfqrqFFmReGtVRfQEIckLLdq0YrAqE8E+JDtnxGvb2G7AIli
         EfS+2LVB44ZFxhPjthcZnaVTEHm8e3VJvSv904+1qjtJkC8WvZUMlntksiYOWCbQla2/
         o8WQ==
X-Gm-Message-State: AOJu0YyD6mRJGRwSqmsrOzVBM3k9401JrExlJLPa17FduYngGS8D04np
	8wRwSbNnBla9H5C/fYsh4QtdBBP3y9B5HgsqUIJFE+njJqztn1Hh+5tKUdQRKyZkXgmwwKybvh4
	Qs79qtFWlbX5rl7nwwStCDpqnWHJMoQI4b14ZrJ1cbA==
X-Gm-Gg: ATEYQzwrRvcyAev/Uk7+1iDc1smXuDAS9DaiJI4861EwH9ZH5Yw0u9nDSOWHJGmk539
	k8NUUn0Pu3WEdBoODMGFBRjsmt8A49Iwbgu+0T8gEaSwsFPT7kim3ELSdxVPRNRxpnpDLkUky+x
	sH350vykt8Q8n5IwEbbN6r7qNhQsAjKx2l3kqcBLleVXwJc1RqUnrcictXBPpTbmLMKigPXpZxi
	DiWx20uIzOXrrlHHcm+nt/pAiLnklNTJfswiV8MdosBBLPG+Zh6xoOMepClmTYblpFlNtTNwki2
	tvlnf9O0+5De8hcCCvDDivm0nYW6qUXjL9uNmw==
X-Received: by 2002:a05:6830:44a1:b0:7d1:9574:db9a with SMTP id
 46e09a7af769-7d591eb98aamr7466286a34.12.1772446013904; Mon, 02 Mar 2026
 02:06:53 -0800 (PST)
MIME-Version: 1.0
References: <cover.1772013062.git.bertrand.marquis@arm.com>
 <832ba950a53a7139b51053f6570fd9b26ba42df1.1772013062.git.bertrand.marquis@arm.com>
 <CAHUa44EjtezLGx=YNtyK-xCU9gmEvBGVLhmG=0YpRWftFxGY-Q@mail.gmail.com> <C0024849-8ACF-4662-B89F-E327732FA669@arm.com>
In-Reply-To: <C0024849-8ACF-4662-B89F-E327732FA669@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Mon, 2 Mar 2026 11:06:41 +0100
X-Gm-Features: AaiRm52wVBFJ97Qaqhh96KG9ybloh1x00cBNCQR_oUSruRLIKe7BQMlZOyXHPUA
Message-ID: <CAHUa44H3p5SMFiK3AXrUYWjsxSfa=AQs4PUTJ552AiRNCi3aQQ@mail.gmail.com>
Subject: Re: [PATCH 4/4] xen/arm: ffa: Add cached GET_REGS support
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Mon, Mar 2, 2026 at 9:58=E2=80=AFAM Bertrand Marquis
<Bertrand.Marquis@arm.com> wrote:
>
> Hi Jens,
>
> > On 27 Feb 2026, at 15:56, Jens Wiklander <jens.wiklander@linaro.org> wr=
ote:
> >
> > Hi Bertrand,
> >
> > On Wed, Feb 25, 2026 at 11:02=E2=80=AFAM Bertrand Marquis
> > <bertrand.marquis@arm.com> wrote:
> >>
> >> FF-A v1.2 defines PARTITION_INFO_GET_REGS for register-based partition
> >> info retrieval, but Xen currently only supports the buffer-based GET
> >> path for guests.
> >>
> >> Implement GET_REGS using the cached SP list and VM entries, including
> >> the register window layout and input validation. Track VM list changes
> >> via the partinfo tag and use it to validate GET_REGS tag inputs. Ensur=
e
> >> that when a non-Nil UUID is specified, the UUID fields in both GET and
> >> GET_REGS results are MBZ as required by the specification.
> >>
> >> PARTITION_INFO_GET_REGS is available to v1.2 guests, returning cached =
SP
> >> entries and VM entries with UUIDs zeroed for non-Nil UUID queries.
> >>
> >> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> >> ---
> >> xen/arch/arm/tee/ffa.c          |  16 +++
> >> xen/arch/arm/tee/ffa_partinfo.c | 211 ++++++++++++++++++++++++++++++++
> >> xen/arch/arm/tee/ffa_private.h  |   4 +-
> >> 3 files changed, 230 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> >> index aa43ae2595d7..d56eb20c2239 100644
> >> --- a/xen/arch/arm/tee/ffa.c
> >> +++ b/xen/arch/arm/tee/ffa.c
> >> @@ -44,6 +44,11 @@
> >>  *   - doesn't support signalling the secondary scheduler of pending
> >>  *     notification for secure partitions
> >>  *   - doesn't support notifications for Xen itself
> >> + * o FFA_PARTITION_INFO_GET/GET_REGS:
> >> + *   - v1.0 guests may see duplicate SP IDs when firmware provides UU=
IDs
> >> + *   - SP list is cached at init; SPMC tag changes are not tracked
> >> + *     between calls
> >> + *   - SP list is capped at FFA_MAX_NUM_SP entries
> >>  *
> >>  * There are some large locked sections with ffa_spmc_tx_lock and
> >>  * ffa_spmc_rx_lock. Especially the ffa_spmc_tx_lock spinlock used
> >> @@ -188,6 +193,7 @@ static bool ffa_negotiate_version(struct cpu_user_=
regs *regs)
> >>             write_lock(&ffa_ctx_list_rwlock);
> >>             list_add_tail(&ctx->ctx_list, &ffa_ctx_head);
> >>             write_unlock(&ffa_ctx_list_rwlock);
> >> +            ffa_partinfo_inc_tag();
> >>         }
> >>
> >>         goto out_continue;
> >> @@ -341,6 +347,12 @@ static void handle_features(struct cpu_user_regs =
*regs)
> >>     case FFA_FEATURE_SCHEDULE_RECV_INTR:
> >>         ffa_set_regs_success(regs, GUEST_FFA_SCHEDULE_RECV_INTR_ID, 0)=
;
> >>         break;
> >> +    case FFA_PARTITION_INFO_GET_REGS:
> >> +        if ( ACCESS_ONCE(ctx->guest_vers) >=3D FFA_VERSION_1_2 )
> >> +            ffa_set_regs_success(regs, 0, 0);
> >> +        else
> >> +            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> >> +        break;
> >>
> >>     case FFA_NOTIFICATION_BIND:
> >>     case FFA_NOTIFICATION_UNBIND:
> >> @@ -402,6 +414,9 @@ static bool ffa_handle_call(struct cpu_user_regs *=
regs)
> >>     case FFA_PARTITION_INFO_GET:
> >>         ffa_handle_partition_info_get(regs);
> >>         return true;
> >> +    case FFA_PARTITION_INFO_GET_REGS:
> >> +        ffa_handle_partition_info_get_regs(regs);
> >> +        return true;
> >>     case FFA_RX_RELEASE:
> >>         e =3D ffa_rx_release(ctx);
> >>         break;
> >> @@ -629,6 +644,7 @@ static int ffa_domain_teardown(struct domain *d)
> >>         write_lock(&ffa_ctx_list_rwlock);
> >>         list_del(&ctx->ctx_list);
> >>         write_unlock(&ffa_ctx_list_rwlock);
> >> +        ffa_partinfo_inc_tag();
> >>     }
> >>
> >>     ffa_rxtx_domain_destroy(d);
> >> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_pa=
rtinfo.c
> >> index d7f9b9f7153c..1c7b3579f798 100644
> >> --- a/xen/arch/arm/tee/ffa_partinfo.c
> >> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> >> @@ -28,10 +28,39 @@ struct ffa_partition_info_1_1 {
> >>     uint8_t uuid[16];
> >> };
> >>
> >> +/* Registers a3..a17 (15 regs) carry partition descriptors, 3 regs ea=
ch. */
> >> +#define FFA_PARTINFO_REG_MAX_ENTRIES \
> >> +    ((15 * sizeof(uint64_t)) / sizeof(struct ffa_partition_info_1_1))
> >> +
> >> /* SP list cache (secure endpoints only); populated at init. */
> >> static void *sp_list __read_mostly;
> >> static uint32_t sp_list_count __read_mostly;
> >> static uint32_t sp_list_entry_size __read_mostly;
> >> +
> >> +/* SP list is static; tag only moves when VMs are added/removed. */
> >> +static atomic_t ffa_partinfo_tag =3D ATOMIC_INIT(1);
> >> +
> >> +void ffa_partinfo_inc_tag(void)
> >> +{
> >> +    atomic_inc(&ffa_partinfo_tag);
> >
> > Do we need to worry about this value wrapping? Is wrapping permitted?
>
> wrapping is permitted, as the end this value is used to ensure changes in
> the middle of info_get_regs are detected. Having enough changes in the
> middle for this to wrap and end up un-detected by the caller is near to i=
mpossible.
> In any case, the status we return is a snapshot which have changed as soo=
n as
> the result is returned so i would consider this a best effort (even if th=
e probability
> for this to happen is very very near to 0).

I'm sorry for being unclear. atomic_t is implemented as struct { int
counter; }, wrapping the counter element is undefined behaviour. But
it will take quite some time before we get there and perhaps the
assembly implementation of atomic_inc() is expected to mitigate the
undefined behaviour part.

>
> >
> >> +}
> >> +
> >> +static inline uint16_t ffa_partinfo_get_tag(void)
> >> +{
> >> +    /*
> >> +     * Tag moves with VM list changes only.
> >> +     *
> >> +     * Limitation: we cannot detect an SPMC tag change between calls =
because we
> >> +     * do not retain the previous SPMC tag; we only refresh it via th=
e mandatory
> >> +     * start_index=3D0 call and assume it stays stable while combined=
_tag (our
> >> +     * VM/SP-count tag) is used for guest validation. This means SPMC=
 tag
> >> +     * changes alone will not trigger RETRY.
> >> +     */
> >> +    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> >> +        return atomic_read(&ffa_partinfo_tag) & GENMASK(15, 0);
> >> +    else
> >> +        return 1;
> >> +}
> >> static int32_t ffa_partition_info_get(struct ffa_uuid uuid, uint32_t f=
lags,
> >>                                       uint32_t *count, uint32_t *fpi_s=
ize)
> >> {
> >> @@ -125,6 +154,7 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uuid=
 uuid, uint32_t *sp_count,
> >>     for ( n =3D 0; n < sp_list_count; n++ )
> >>     {
> >>         void *entry =3D sp_list + n * sp_list_entry_size;
> >> +        void *dst_pos;
> >>
> >>         if ( !ffa_sp_entry_matches_uuid(entry, uuid) )
> >>             continue;
> >> @@ -136,11 +166,20 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uu=
id uuid, uint32_t *sp_count,
> >>          * This is a non-compliance to the specification but 1.0 VMs s=
hould
> >>          * handle that on their own to simplify Xen implementation.
> >>          */
> >> +        dst_pos =3D *dst_buf;
> >>         ret =3D ffa_copy_info(dst_buf, end_buf, entry, dst_size,
> >>                             sp_list_entry_size);
> >>         if ( ret )
> >>             return ret;
> >>
> >> +        if ( !ffa_uuid_is_nil(uuid) &&
> >> +             dst_size >=3D sizeof(struct ffa_partition_info_1_1) )
> >> +        {
> >> +            struct ffa_partition_info_1_1 *fpi =3D dst_pos;
> >> +
> >> +            memset(fpi->uuid, 0, sizeof(fpi->uuid));
> >> +        }
> >> +
> >>         count++;
> >>     }
> >>
> >> @@ -152,6 +191,38 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uui=
d uuid, uint32_t *sp_count,
> >>     return FFA_RET_OK;
> >> }
> >>
> >> +static uint16_t ffa_get_sp_partinfo_regs(struct ffa_uuid uuid,
> >> +                                         uint16_t start_index,
> >> +                                         uint64_t *out_regs,
> >> +                                         uint16_t max_entries)
> >> +{
> >> +    uint32_t idx =3D 0;
> >> +    uint16_t filled =3D 0;
> >> +    uint32_t n;
> >> +
> >> +    for ( n =3D 0; n < sp_list_count && filled < max_entries; n++ )
> >> +    {
> >> +        void *entry =3D sp_list + n * sp_list_entry_size;
> >> +
> >> +        if ( !ffa_sp_entry_matches_uuid(entry, uuid) )
> >> +            continue;
> >> +
> >> +        if ( idx++ < start_index )
> >> +            continue;
> >> +
> >> +        memcpy(&out_regs[filled * 3], entry,
> >> +               sizeof(struct ffa_partition_info_1_1));
> >> +        if ( !ffa_uuid_is_nil(uuid) )
> >> +        {
> >> +            out_regs[filled * 3 + 1] =3D 0;
> >> +            out_regs[filled * 3 + 2] =3D 0;
> >> +        }
> >> +        filled++;
> >> +    }
> >> +
> >> +    return filled;
> >> +}
> >> +
> >> static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t star=
t_index,
> >>                                    uint32_t *vm_count, void **dst_buf,
> >>                                    void *end_buf, uint32_t dst_size)
> >> @@ -368,6 +439,146 @@ out:
> >>     }
> >> }
> >>
> >> +void ffa_handle_partition_info_get_regs(struct cpu_user_regs *regs)
> >> +{
> >> +    struct domain *d =3D current->domain;
> >> +    struct ffa_ctx *ctx =3D d->arch.tee;
> >> +    struct ffa_uuid uuid;
> >> +    uint32_t sp_count =3D 0, vm_count =3D 0, total_count;
> >> +    uint16_t start_index, tag;
> >> +    uint16_t num_entries =3D 0;
> >> +    uint64_t x3 =3D get_user_reg(regs, 3);
> >> +    int32_t ret =3D FFA_RET_OK;
> >> +    uint64_t out_regs[18] =3D { 0 };
> >> +    unsigned int n;
> >> +    uint16_t tag_out;
> >> +
> >> +    if ( ACCESS_ONCE(ctx->guest_vers) < FFA_VERSION_1_2 )
> >> +    {
> >> +        ret =3D FFA_RET_NOT_SUPPORTED;
> >> +        goto out;
> >> +    }
> >> +
> >> +    /*
> >> +     * Registers a3..a17 (15 regs) carry partition descriptors, 3 reg=
s each.
> >> +     * For FF-A 1.2, that yields a maximum of 5 entries per GET_REGS =
call.
> >> +     * Enforce the assumed layout so window sizing stays correct.
> >> +     */
> >> +    BUILD_BUG_ON(FFA_PARTINFO_REG_MAX_ENTRIES !=3D 5);
> >> +
> >> +    for ( n =3D 4; n <=3D 17; n++ )
> >> +    {
> >> +        if ( get_user_reg(regs, n) )
> >> +        {
> >
> > x4-x17 are SBZ, so I think we should only ignore them.
>
> Ack, this was added to satisfy the compliance suite but this
> has been solved since. I will remove.
>
> >
> >> +            ret =3D FFA_RET_INVALID_PARAMETERS;
> >> +            goto out;
> >> +        }
> >> +    }
> >> +
> >> +    if ( x3 >> 32 )
> >
> > Same here: Bits[63:32] are SBZ.
>
> Same here.
>
> >
> >> +    {
> >> +        ret =3D FFA_RET_INVALID_PARAMETERS;
> >> +        goto out;
> >> +    }
> >> +
> >> +    start_index =3D x3 & GENMASK(15, 0);
> >> +    tag =3D (x3 >> 16) & GENMASK(15, 0);
> >> +
> >> +    /* Start index must allow room for up to 5 entries without 16-bit=
 overflow. */
> >> +    if ( start_index > (GENMASK(15, 0) - (FFA_PARTINFO_REG_MAX_ENTRIE=
S - 1)) )
> >> +    {
> >> +        ret =3D FFA_RET_INVALID_PARAMETERS;
> >> +        goto out;
> >> +    }
> >> +
> >> +    uuid.val[0] =3D get_user_reg(regs, 1);
> >> +    uuid.val[1] =3D get_user_reg(regs, 2);
> >> +
> >> +    if ( sp_list_count &&
> >> +         sp_list_entry_size !=3D sizeof(struct ffa_partition_info_1_1=
) )
> >> +    {
> >> +        ret =3D FFA_RET_NOT_SUPPORTED;
> >
> > This can't happen. But I guess a sp_list_entry_size > sizeof(struct
> > ffa_partition_info_1_1) might be supported to be future proof.
>
> Right now we have FFA_PARTINFO_REG_MAX_ENTRIES enforcing the
> structure to be 1.1 size. If this is not true in the future we will have =
to modify
> this.
>
> This is not really future proof and i will check if i can rework this.
>
> >
> >> +        goto out;
> >> +    }
> >> +
> >> +    tag_out =3D ffa_partinfo_get_tag();
> >> +
> >> +    if ( start_index =3D=3D 0 )
> >> +    {
> >> +        if ( tag )
> >> +        {
> >> +            ret =3D FFA_RET_INVALID_PARAMETERS;
> >> +            goto out;
> >> +        }
> >> +    }
> >> +    else if ( tag !=3D tag_out )
> >> +    {
> >> +        ret =3D FFA_RET_RETRY;
> >> +        goto out;
> >> +    }
> >> +
> >> +    if ( ffa_uuid_is_nil(uuid) )
> >> +    {
> >> +        if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> >> +            vm_count =3D get_ffa_vm_count();
> >> +        else
> >> +            vm_count =3D 1; /* Caller VM only */
> >> +    }
> >> +
> >> +    ret =3D ffa_get_sp_count(uuid, &sp_count);
> >> +    if ( ret )
> >> +        goto out;
> >> +
> >> +    total_count =3D sp_count + vm_count;
> >> +
> >> +    if ( total_count =3D=3D 0 || start_index >=3D total_count )
> >> +    {
> >> +        ret =3D FFA_RET_INVALID_PARAMETERS;
> >> +        goto out;
> >> +    }
> >> +
> >> +    if ( start_index < sp_count )
> >> +        num_entries =3D ffa_get_sp_partinfo_regs(uuid, start_index, &=
out_regs[3],
> >> +                                               FFA_PARTINFO_REG_MAX_E=
NTRIES);
> >> +
> >> +    if ( num_entries < FFA_PARTINFO_REG_MAX_ENTRIES )
> >> +    {
> >> +        uint32_t vm_start =3D start_index > sp_count ?
> >> +                            start_index - sp_count : 0;
> >> +        uint32_t filled =3D 0;
> >> +        void *vm_dst =3D &out_regs[3 + num_entries * 3];
> >> +        void *vm_end =3D &out_regs[18];
> >> +
> >> +        ret =3D ffa_get_vm_partinfo(uuid, vm_start, &filled, &vm_dst,=
 vm_end,
> >> +                                  sizeof(struct ffa_partition_info_1_=
1));
> >> +        if ( ret !=3D FFA_RET_OK && ret !=3D FFA_RET_NO_MEMORY )
> >> +            goto out;
> >> +
> >> +        num_entries +=3D filled;
> >> +    }
> >> +
> >> +    if ( num_entries =3D=3D 0 )
> >> +    {
> >> +        ret =3D FFA_RET_INVALID_PARAMETERS;
> >> +        goto out;
> >> +    }
> >> +
> >
> > What if the tag read with ffa_partinfo_get_tag() has changed?
>
> As said this is a best effort, we provide a snapshot.
> Now i could check and compare the tag at the end to handle this case.
>
> I will check if i can make this a bit stronger by comparing the tag at th=
e
> beginning and the end or try to handle it differently (get its value whil=
e we
> have the rwlock on the list of VMs maybe).

Checking the tag at the end to let the caller retry might be enough.

Cheers,
Jens

>
> Cheers
> Bertrand
>
> >
> > Cheers,
> > Jens
> >
> >> +    out_regs[0] =3D FFA_SUCCESS_64;
> >> +    out_regs[2] =3D ((uint64_t)sizeof(struct ffa_partition_info_1_1) =
<< 48) |
> >> +                  ((uint64_t)tag_out << 32) |
> >> +                  ((uint64_t)(start_index + num_entries - 1) << 16) |
> >> +                  ((uint64_t)(total_count - 1) & GENMASK(15, 0));
> >> +
> >> +    for ( n =3D 0; n < ARRAY_SIZE(out_regs); n++ )
> >> +        set_user_reg(regs, n, out_regs[n]);
> >> +
> >> +    return;
> >> +
> >> +out:
> >> +    if ( ret )
> >> +        ffa_set_regs_error(regs, ret);
> >> +}
> >> +
> >> static int32_t ffa_direct_req_send_vm(uint16_t sp_id, uint16_t vm_id,
> >>                                       uint8_t msg)
> >> {
> >> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_pri=
vate.h
> >> index 1a632983c860..c291f32b56ff 100644
> >> --- a/xen/arch/arm/tee/ffa_private.h
> >> +++ b/xen/arch/arm/tee/ffa_private.h
> >> @@ -289,7 +289,7 @@
> >> #define FFA_MSG_SEND2                   0x84000086U
> >> #define FFA_CONSOLE_LOG_32              0x8400008AU
> >> #define FFA_CONSOLE_LOG_64              0xC400008AU
> >> -#define FFA_PARTITION_INFO_GET_REGS     0x8400008BU
> >> +#define FFA_PARTITION_INFO_GET_REGS     0xC400008BU
> >> #define FFA_MSG_SEND_DIRECT_REQ2        0xC400008DU
> >> #define FFA_MSG_SEND_DIRECT_RESP2       0xC400008EU
> >>
> >> @@ -452,6 +452,8 @@ bool ffa_partinfo_init(void);
> >> int32_t ffa_partinfo_domain_init(struct domain *d);
> >> bool ffa_partinfo_domain_destroy(struct domain *d);
> >> void ffa_handle_partition_info_get(struct cpu_user_regs *regs);
> >> +void ffa_handle_partition_info_get_regs(struct cpu_user_regs *regs);
> >> +void ffa_partinfo_inc_tag(void);
> >>
> >> int32_t ffa_endpoint_domain_lookup(uint16_t endpoint_id, struct domain=
 **d_out,
> >>                                    struct ffa_ctx **ctx_out);
> >> --
> >> 2.52.0
>
>


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 10:17:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 10:17:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244088.1543551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx0LU-0002ws-D7; Mon, 02 Mar 2026 10:17:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244088.1543551; Mon, 02 Mar 2026 10:17: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 1vx0LU-0002wl-A0; Mon, 02 Mar 2026 10:17:48 +0000
Received: by outflank-mailman (input) for mailman id 1244088;
 Mon, 02 Mar 2026 10:17:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xkMV=BC=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vx0LS-0002wd-B2
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 10:17:46 +0000
Received: from mail-ot1-x330.google.com (mail-ot1-x330.google.com
 [2607:f8b0:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0d9397df-1621-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 11:17:45 +0100 (CET)
Received: by mail-ot1-x330.google.com with SMTP id
 46e09a7af769-7d4cb7e10efso5239468a34.0
 for <xen-devel@lists.xenproject.org>; Mon, 02 Mar 2026 02:17: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: 0d9397df-1621-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1772446663; cv=none;
        d=google.com; s=arc-20240605;
        b=W8lZJoN7fumb+K6RhBFj3W1fsrAHBwAJYzbFj/SHjPfn9BOE7Jo3wY+wpd/Hv6G6iS
         gzKbvMqKT7PxEPQWFP08FbejfWJFUL7czHBjTyGBfbrybE6xZOus/irFTcFC7tGxnwHI
         GykVDQ7Xmnv+YN5YX6ju+SEeI9WTXIs72IAhjt7QrMULMOgP7pEy5aDZkeR+XfNqCLhg
         WJblEazbG3RVk2oAkzbcb3zWdCUN/6Cc9V3Kes51yRZSvbUXAdiUqX6Q+9dRtYKV2TyM
         GMl7wshLUn62bjEk84VoxYdyy/FN/uKvEHGu+AwdH6SF5pD+dZ8aAHmjilHCvcFk+Uqm
         poBg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=/3ZO1uASJ+Co5Rgal8hutKQ00YGgsluww0BnDoaGtWs=;
        fh=wB0f5JGUSpWYejuxtnrl8SDqvqyWrEsEaWvC32LbdiU=;
        b=CL6/LXg0QBeM4zrz9hYsJ6BZlJhQOpC5PWDceVfATUAZ6G6BAhXd/rTha1fcdzMyJT
         1OcuCiIOOPgCyXpJBFYCdcAttiJQuIKUJeBO1knJTpTfjf7/kM3Pb5wI17QJn10k8LOq
         x48JBHcDvP9fLOm8z4/81rEc4Oo+aR90jFefYEjmxhQUIQbmdy+SjTLiAGKX3XPf7W/H
         IdrufOGs+dZ1ucSFMHGiFmN0rtKkgHt24O4K4Bk3dWSzP4FBaNSXVJIQCTpivBXpvnJT
         aT6F4V4iBuuf6I4wHWsTIjxJ/eP/2DEmglBWGtXHlk5rFlS7ShQqxyeu0bBh1EXRpaK8
         Va6Q==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1772446663; x=1773051463; 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=/3ZO1uASJ+Co5Rgal8hutKQ00YGgsluww0BnDoaGtWs=;
        b=SYhaTRd5yYfJ5Ffgh8aUxolekQMRwizWk9Q2ig/GkCEer46yxt4cVRHnJWFAIV8XiY
         3+nz6/QBbL5ceAFzakfaJ7PoYB9skMHWrzJZhmXCTjuLW2JJg8I0ApZ6Y+fFKsPDj8U7
         Ln1ZJM1GFruW5gNp2dksoVael+2LcSmSwrhsh2u2i9FqjP4Hvi/ghK+VC+kysguFfJ/S
         V+toeFxGnNoxBozAX2qUYXY51a9ww9CPWmDzptA2nL7rF+sTtRSq6d+ePIyvYdCB3eF6
         4Fzhq+87eZbcT+p675O+uRbq6DlygjEDvo6surCN+/JD90UJChs+VvoiEmSEcd3btBqo
         uJmg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772446663; x=1773051463;
        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=/3ZO1uASJ+Co5Rgal8hutKQ00YGgsluww0BnDoaGtWs=;
        b=rXH/qo7gtgoqR7YXqU/qTS2dqKlErgK7scrmBovA6dVl8IA7PHMfu9QZYt/PEaqpC7
         Ua+2xRdcfxXyxYHNjMrqPPH/xyjNLy8KkHKfTf+ZM2usCXlORjUrmLEHwuvT4ae0DKeN
         LVY38AcFvq083L4MxO26ojVtAqTma9PTy43tLrz4vCNCPUC7Kks/Qw2Ob25J9iIHEKna
         yoTnvdZ2prwfqQfLxhwFP/gwegw9DvNM0aK/PrMO7zOny2mKJ++Ut3EwSRKxanj3uPkS
         9kRoFCDCuN4SoME7Sen6joW5YpL+a6LU046njlg9L5i13JXoj2//GIrAa3DtDZPx6ZKA
         ipTQ==
X-Gm-Message-State: AOJu0YzTEVE+ywDbTBMI1SrQzOgAmCkdLAIchFjgTiqFChLfai4sZjB/
	M6rd9hC1m+zDzu0lVwHLyjofnWlY0wwG1jMgW1Vepbuwy86HOpglQBYT12WXpUh+saVxFrMtBCI
	6jcgBPfKbNdiiFdUjPhupmAWc8+7NeZRzufVZVmfeGg==
X-Gm-Gg: ATEYQzxs+G/Iph/smhv96b6jzQM85FnXnLbgRkAN0tzFPJlDA7MjoY8S2uZZuHdDqZi
	OczxMDjxGhloHF734uOOkVDdOaQkiN6as1oDMnoZQcbRdOtXTsEjBjQhKVYChKCwfUdH1Mr35C+
	uCgwXvGr7xyh4ajKfq/PHVraMR202jvhUTdimVicrXyuPNunhTCU5eY4AH86DLI8aQs3LQsJHUo
	cjy564yv32nNF3vk4zQXVdnoAyeqA6ETlTPwlt34Ebu4RGGyd4tIGY56/qw070yMSjrnD27KBWz
	Vsf/1m6lE4WuijIB0xNGeRW/FwYzT5A50HIrpA==
X-Received: by 2002:a05:6830:3885:b0:7cf:d0f4:125c with SMTP id
 46e09a7af769-7d591b39d2emr7633324a34.8.1772446663588; Mon, 02 Mar 2026
 02:17:43 -0800 (PST)
MIME-Version: 1.0
References: <cover.1772013062.git.bertrand.marquis@arm.com>
 <0a5f66eaa16f262d4ffad6a8ec4b1b02461f96c1.1772013062.git.bertrand.marquis@arm.com>
 <CAHUa44FSq6aHTO=HWNOB1Qa5keuEfmhwpSW4hRjVgQdUX0fjmA@mail.gmail.com>
 <9B608F0B-E564-42C6-9F85-E1701F707554@arm.com> <CAHUa44Fv9LuYED_jjW3UeEDZLjL==s0Myw2vD7PSHPUgn-OC3Q@mail.gmail.com>
 <6A629240-E2E4-48E4-A79A-031D7258D676@arm.com>
In-Reply-To: <6A629240-E2E4-48E4-A79A-031D7258D676@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Mon, 2 Mar 2026 11:17:31 +0100
X-Gm-Features: AaiRm50zOMA5LIWMWegHhrVX_S7JC_m-Q-BKdfJNBhLq6IREC8sVwrB1NYlxYgw
Message-ID: <CAHUa44GhYCGpWXryo3SEBnB_6iFLAZesbsv8H1xENF3P=+Dn+g@mail.gmail.com>
Subject: Re: [PATCH 2/4] xen/arm: ffa: Cache SP partition info at init
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Mon, Mar 2, 2026 at 10:58=E2=80=AFAM Bertrand Marquis
<Bertrand.Marquis@arm.com> wrote:
>
> Hi Jens,
>
> > On 2 Mar 2026, at 10:32, Jens Wiklander <jens.wiklander@linaro.org> wro=
te:
> >
> > Hi Bertrand,
> >
> > On Mon, Mar 2, 2026 at 9:51=E2=80=AFAM Bertrand Marquis
> > <Bertrand.Marquis@arm.com> wrote:
> >>
> >> Hi Jens,
> >>
> >>> On 27 Feb 2026, at 11:39, Jens Wiklander <jens.wiklander@linaro.org> =
wrote:
> >>>
> >>> Hi Bertrand,
> >>>
> >>> On Wed, Feb 25, 2026 at 11:02=E2=80=AFAM Bertrand Marquis
> >>> <bertrand.marquis@arm.com> wrote:
> >>>>
> >>>> FFA_PARTITION_INFO_GET currently queries the SPMC on each call and w=
alks the
> >>>> RX buffer every time. The SP list is expected to be static, so repea=
ted
> >>>> firmware calls and validation are unnecessary.
> >>>>
> >>>> Cache the SPMC partition-info list at init time, keeping only secure
> >>>> endpoints, and reuse the cached entries for SP count and partition-i=
nfo
> >>>> responses. Initialize the VM create/destroy subscriber lists from th=
e cached
> >>>> list and free the cache on init failure.
> >>>>
> >>>> SP partition info now reflects the init-time snapshot and will not c=
hange.
> >>>>
> >>>> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> >>>> ---
> >>>> xen/arch/arm/tee/ffa_partinfo.c | 205 +++++++++++++++++++++---------=
--
> >>>> 1 file changed, 138 insertions(+), 67 deletions(-)
> >>>>
[snip]
> >>>> +static bool ffa_sp_list_cache_init(const void *buf, uint32_t count,
> >>>> +                                   uint32_t fpi_size)
> >>>> +{
> >>>> +    const uint8_t *src =3D buf;
> >>>> +    uint32_t secure_count =3D 0;
> >>>> +    uint32_t n, idx =3D 0;
> >>>> +    bool warned =3D false;
> >>>> +
> >>>> +    if ( fpi_size < sizeof(struct ffa_partition_info_1_0) ||
> >>>> +         fpi_size >=3D FFA_PAGE_SIZE )
> >>>> +        return false;
> >>>
> >>> Would it make sense to check that fpi_size is well aligned with struc=
t
> >>> ffa_partition_info_1_0? If it's an odd size, we'll make unaligned
> >>> accesses below with memcpy(). But perhaps that's a bit much. The SPMC
> >>> isn't supposed to provide garbage.
> >>
> >> Memcpy should prevent issues even if accesses are not aligned.
> >> If we had this test, we cannot return an error to the SPMC so we would=
 have to
> >> generate one to the caller. It is simpler i think to handle non-aligne=
d as we do not
> >> expect the SPMC to generate such a case.
> >> Tell me if you agree.
> >
> > We dereference fpi below, and depending on compiler flags and pointer
> > types, memcpy() might not be safe with unaligned pointers.
> > From 6.3.2.3 Pointers, paragraph 7, in the C standard:
> > "A pointer to an object type may be converted to a pointer to a
> > different object type. If the
> > resulting pointer is not correctly aligned for the referenced type,
> > the behavior is
> > unde=EF=AC=81ned."
> >
> > I've seen past examples where the compiler optimized memcpy() in a way
> > that breaks with unaligned pointers.
> >
> > We don't expect the test above to fail, but if it does we will not use
> > the secure firmware. I think refusing unexpected sizes is even
> > simpler. It should make finding eventual errors much easier.
>
> In the ffa spec, the size can grow and this is why there is a size field.
> FF-A expect that we either ignore or copy without looking the extra
> content.
> I think we should not be dependent on any alignment so we need to
> make sure we do the copy in a way that is robust to non alignments.
>
> >
> > So my question above is whether it's worth checking that fpi_size is
> > well-aligned, or if it's so unlikely that we don't need to consider
> > it.
>
> I think we need to find a solution where we handle properly things even
> if the size is not aligned.

I agree, that's the most robust.

> I though using memcpy would protect against
> that but maybe we need to use a stronger solution to ensure that works
> even if data is unaligned.

memcpy() can be used, but the pointer values must not pass through a struct
ffa_partition_info_1_0 pointer or such.

Cheers,
Jens


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 10:19:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 10:19:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244098.1543561 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx0NF-0003Xi-Pn; Mon, 02 Mar 2026 10:19:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244098.1543561; Mon, 02 Mar 2026 10:19:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx0NF-0003Xb-N2; Mon, 02 Mar 2026 10:19:37 +0000
Received: by outflank-mailman (input) for mailman id 1244098;
 Mon, 02 Mar 2026 10: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=9kJt=BC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vx0NF-0003XV-8T
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 10:19:37 +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 4da1324d-1621-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Mar 2026 11:19:31 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-48370174e18so23711335e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 02 Mar 2026 02: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
 5b1f17b1804b1-483bd75df9fsm466930745e9.13.2026.03.02.02.19.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Mar 2026 02: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: 4da1324d-1621-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772446771; x=1773051571; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BakMZ5RFd9MhIZpYeFUPwVKqIOkHWDTdjwc32yW0zaw=;
        b=WIct12XFJjlVdXtAAAH6S9+H6E7thOIoc9auz+DrRwAIeiXKig+zBoChTC3zwVYVnO
         EQ0V0Gkq6iaS3+vgL9xDOFoihrVqcggualP/p5NxAA/HkAaOm8UPqJMVuI/JYplvZnxU
         Lk79cI+SIdwCAbqsgVCrjJLrt4jFtzteWKcxgQffNQHC3R/CvTAoIFuBtMVPsE1hM/Vu
         REWVsLnP5XzCq+z+/YTwrzKRcFbUQl8AsLIfGJT4sSx20mszLDsrMFQaReVvyShaaNQ/
         dYxPP8AlIpvLZ/v8cSW97DKThbZGhhrA05Gj9+rdPVaN9W0J3wfAjXbl8mdts6ZLQ5pM
         fa4A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772446771; x=1773051571;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BakMZ5RFd9MhIZpYeFUPwVKqIOkHWDTdjwc32yW0zaw=;
        b=CIe4SP41lLKiv+8Enl6CsqNGhpXOh3DBKHZLI9YM5m/FHgstSf52MFMG8hyToqQjrA
         OYQGrW1z+iCQpvBBzpbWRlohraoAyBxp9OcTelIlhCm7podWwwPseFVM5oy/16tzZ6hD
         7y4VNsQHlp11HbeEhik9HVwjhT91nGKDNxBhQMBqSVIha9AiRms437hFlM/+pn3Lnd0D
         2ntrKfOMhHo6W5iKz67FrxLOw7ojfuLrT1XEJfOL1ZspA2KUa1HdwEaKozRMeNK6WZlH
         VoiM2VHNbhG0eZY2vUN5yLuux5mXR1vY4Mg0dRWUHPtFJaddreSuC0hWqYEpAh8T9560
         N5Lg==
X-Gm-Message-State: AOJu0Ywqn8FzqPVLmtF7HCOhDCWBp3QUsw0140y3tprqxZT285gYFYwL
	5EZ+N8G4wOGaCfJOglQbp89YGh1xEEUFjWxaii+S6ab9Z358KxLFh0nVe3WI3+0hCw==
X-Gm-Gg: ATEYQzyxXE3XE5UglvPZ7dCeo5PN48Kmny4WjDzvUPkFEcSgzL977Rqn0FwcextAU/B
	0qxUMA9GJ/oEFp77lfgq593gonm0ZdBDo5HOgyJQJgcZYjwSpdpQ3EbUAqsvo5tg2X+FfsH/9hD
	lymwh4fu6Mlu5lfWAvPrzkB4Isk7QgKMR9Ana/1I/bTvNCmgKsTMJ5llTeFoMSKCzxXld533lXQ
	mg18SIfLdx1ue7hyPwswezhulDfy6Ydrvdyuppah9ukuNyxhYbppCZh5vuHvduNkQcLydqAXet7
	8Cawj3wRazdDjRtiZYJ+WTKF4gmvLbBj8r+PmgM2L8MTO7zknlABazJTsMWDeSVWAYU88VaID1E
	Tvjy2rwEX4APxjH9j2Ae+XgbOUi2ZPwzpKLVD0MfZF6uyA/NB249Vqhr1Av4fI2DMQvoYaUgGzI
	l2eHf3sdUG9ec1Fic/+OdEJg5Pa+R1+N1uHW8O+gaoTvj96CZxb+G/7DhSl7ogpDWzhQ5CswJqe
	/b0oAbHkbmAeXw=
X-Received: by 2002:a05:600c:6217:b0:476:d494:41d2 with SMTP id 5b1f17b1804b1-483c9bc5c06mr198013635e9.29.1772446771154;
        Mon, 02 Mar 2026 02:19:31 -0800 (PST)
Message-ID: <c244113f-50ad-4b8d-8176-50d140ef1e4d@suse.com>
Date: Mon, 2 Mar 2026 11:19:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: (auto-)ballooning issue
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <a8a61b98-0798-44c1-8426-0fb18a77a6ca@suse.com>
 <aXnvl46pk_Wnd9bi@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: <aXnvl46pk_Wnd9bi@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28.01.2026 12:14, Roger Pau Monné wrote:
> On Tue, Aug 26, 2025 at 05:28:29PM +0200, Jan Beulich wrote:
>> Hello,
>>
>> the other day I observed a strange issue with XTF's selftest failing to
>> have its VMs created, when running all flavors in a group. (Other tests
>> look to be similarly affected, it's just the selftest that I run most
>> frequently.) Originally I suspected a PVH-specific issue, but the
>> problem surfacing only there is because with PVH Dom0 I have less free
>> memory left after boot than with PV Dom0. Beyond that, both
>> configurations use the same hypervisor, with built-in DOM0_MEM="-255M".
>>
>> The issue looks to be further affected (but not caused) by domain
>> cleanup being quite a bit slower under PVH Dom0, compared to PV. I.e.
>> by the time the 2nd test is started, memory from the 1st one still
>> wasn't completely freed. The result is that randomly one of the latter
>> (batched) tests fails at domain creation ("failed to free memory for
>> the domain").
>>
>> xl's freemem() calls libxl_set_memory_target() followed by
>> libxl_wait_for_memory_target(). The latter function expects the domain
>> to balloon down enough for its ->tot_pages (in the hypervisor) to be
>> at or below the previously set target. However, already immediately
>> after boot "xl list -l" and "xs ls /" show target values which are 1
>> page below the hypervisor's record. With libxl_set_memory_target()
>> requesting relative adjustment, the Dom0 kernel will balloon out the
>> requested number of pages, but ->tot_pages going down by as many pages
>> isn't enough to please libxl_wait_for_memory_target().
>>
>> I'm not even close to having an opinion as to where the problem is: It
>> could be that the kernel's balloon driver is off by a page. I'm more
>> inclined though to think that it is entirely unrealistic to expect the
>> kernel's balloon driver and Xen to have an exactly matching view of
>> the memory owned by the domain. Yet then it is simply invalid to
>> compare values taken from Xenstore against values taken from Xen. While
>> problematic for absolute requests, for relative ones it should be
>> possible apply the decrement to the source later used to compare
>> against while waiting.
> 
> Little late, sorry.  I think:
> 
> xen/balloon: improve accuracy of initial balloon target for dom0
> https://lore.kernel.org/xen-devel/20260128110510.46425-3-roger.pau@citrix.com/
> 
> Might improve the situation here, as it should make the dom0 initial
> balloon target match what the toolstack expects, and then
> (auto-)ballooning targets should also be accurate w.r.t. the memory
> freed by dom0.

Just to confirm (finally got around to it) - both patches together indeed
eliminate the observed anomaly.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 11:01:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 11:01:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244114.1543574 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx11s-0001U4-Lu; Mon, 02 Mar 2026 11:01:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244114.1543574; Mon, 02 Mar 2026 11:01: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 1vx11s-0001Tx-I2; Mon, 02 Mar 2026 11:01:36 +0000
Received: by outflank-mailman (input) for mailman id 1244114;
 Mon, 02 Mar 2026 11:01:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cp9A=BC=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vx11q-0001Tr-IU
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 11:01:34 +0000
Received: from fhigh-a6-smtp.messagingengine.com
 (fhigh-a6-smtp.messagingengine.com [103.168.172.157])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2b77b212-1627-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 12:01:32 +0100 (CET)
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfhigh.phl.internal (Postfix) with ESMTP id C30871400023;
 Mon,  2 Mar 2026 06:01:30 -0500 (EST)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-01.internal (MEProxy); Mon, 02 Mar 2026 06:01:30 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 2 Mar 2026 06:01:29 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2b77b212-1627-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm3; t=1772449290;
	 x=1772535690; bh=gAnUHTIVsOphxH3jyKd6jjpZxGBmcBzWVjjSXF5mb/8=; b=
	D12sCPCo9Jyzk/9pz+hZCOZyyy91Re0fRXsuhdPa2ghP0/IqgoW34U4z574+llbX
	Yj5hzl0WGL9A6aejGHFlbthF5obxHFB55HFjtCGPWpWP1onKrlDtJrC5ffg9vypP
	jUI5NFa1TgCgHtCAWGzzNIi5pqe8LIV9gHbLkNApnBVFkVrZ8+5SiXck7+ct1Wrm
	pScNRqIEy3MdwiTFLKfb6nouCroKL7e9svJPHv4XIE1xR3ZK5OoFeU1uBAlWfWIA
	my1tlkQT4LvhNRrqfnsYxksfd+NOY41eDiEG7O+YnztYQjpxTrbm072BGESAmV2h
	hs3C9LvPx/N1gmrmzd+FFg==
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=
	1772449290; x=1772535690; bh=gAnUHTIVsOphxH3jyKd6jjpZxGBmcBzWVjj
	SXF5mb/8=; b=ILiMlA6p/wrbsSR+73ZIT/kTIAp8djEWaHUKYgWD0+6B2jt0vw1
	70ejSC6W8UHG4Gw7bmIXYXNxeT782DcdezTRQOvasCYiWboERj4kL1A0xqBV8ODG
	3mVv9BV00EMRn5LiTMoIEOpiZTmN5ltXQexW0+qevbsqZj48ulSTF+tz+JWFGijU
	8KIEnQK0p29RR6S+xM8xi2F1ssz9Yhk9/oXH5DTab4K02JYUGx0pE8ep73zH1kqX
	lQCTjM/xQOnXyGvmrdttukzJYWPFvahTEvoSQepVU5UgD71JP6rjf9btodiAjNwA
	NemKJbTWN2xqVNE6QWohm7wl9F+Qd4QVB8w==
X-ME-Sender: <xms:Cm6ladzIH2JVDwbgwGO_iZPv-5akMvI05oBd-Fxq4LVn75xfNQqnRg>
    <xme:Cm6laUIU-2M5ixi6S60dMj6w19ag24PDrwV_6gJLIrqSF28miw3c2KKcAF0WgQb-z
    Fpw3N-PNron37e8M20vm8W4DqtVEEllBA0CMmAymcriLXKr>
X-ME-Received: <xmr:Cm6lafp-BbKhnLyPEnJ3cv0nv5C91im9Y0DcUou2zL2IF8sJf4iAJH2ByUqLAGXmXrx-jSD2BEsE1FFVmI8eMNVC4dMeD4GOd7o>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvheejhedtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohephedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepuggrvhhiugeskhgvrhhnvghlrdhorhhg
    pdhrtghpthhtohepjhhgrhhoshhssehsuhhsvgdrtghomhdprhgtphhtthhopeigvghnqd
    guvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegs
    ohhrihhsrdhoshhtrhhovhhskhihsehorhgrtghlvgdrtghomhdprhgtphhtthhopegrkh
    hpmheslhhinhhugidqfhhouhhnuggrthhiohhnrdhorhhg
X-ME-Proxy: <xmx:Cm6labLWhBycmDJTF3c7ZZUdXVSGaFQuwYMPMtvYz9gRHtShtmhaDA>
    <xmx:Cm6lacQSofoZb_bFr_TcbirR9lpa1BKnhSaeTU0el1Majjzmenb6MQ>
    <xmx:Cm6laStvHbZRpkecAnon90u0b80LV_xcJ5EUlINbvOxhydi4oosT6w>
    <xmx:Cm6laVY_RhjiVOXlUUG8FEQqQtTlyUY_hx4qM5R5zlzaot7Z-OsIpA>
    <xmx:Cm6laXowxVF9k1p7ZvLc79dsSm8K2dy5Rn-GopL6GSMrNcx-1YsNkO4D>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 2 Mar 2026 12:01:27 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: "David Hildenbrand (Arm)" <david@kernel.org>
Cc: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
	xen-devel <xen-devel@lists.xenproject.org>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: Re: Excluding init_on_free for pages for initial balloon down (Xen)
Message-ID: <aaVuB3x3y4ROr5XA@mail-itl>
References: <aaRVcVmtv2UBD-GF@mail-itl>
 <513e624f-35c1-4d43-ba3f-c96af613d400@suse.com>
 <224968e6-7236-4efe-bcc0-ab39ac0c6c45@kernel.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="3fNdNAge+ez4rrPi"
Content-Disposition: inline
In-Reply-To: <224968e6-7236-4efe-bcc0-ab39ac0c6c45@kernel.org>


--3fNdNAge+ez4rrPi
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 2 Mar 2026 12:01:27 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: "David Hildenbrand (Arm)" <david@kernel.org>
Cc: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
	xen-devel <xen-devel@lists.xenproject.org>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: Re: Excluding init_on_free for pages for initial balloon down (Xen)

On Mon, Mar 02, 2026 at 09:40:29AM +0100, David Hildenbrand (Arm) wrote:
> On 3/2/26 07:36, J=C3=BCrgen Gro=C3=9F wrote:
> > On 01.03.26 16:04, Marek Marczykowski-G=C3=B3recki wrote:
> >> Hi,
> >>
> >> Some time ago I made a change to disable scrubbing pages that are
> >> ballooned out during system boot. I'll paste the whole commit message =
as
> >> it's relevant here:
> >>
> >> =C2=A0=C2=A0=C2=A0=C2=A0 197ecb3802c0 xen/balloon: add runtime control=
 for scrubbing
> >> ballooned out pages
> >>
> >> =C2=A0=C2=A0=C2=A0=C2=A0 Scrubbing pages on initial balloon down can t=
ake some time,
> >> especially
> >> =C2=A0=C2=A0=C2=A0=C2=A0 in nested virtualization case (nested EPT is =
slow). When HVM/PVH
> >> guest is
> >> =C2=A0=C2=A0=C2=A0=C2=A0 started with memory=3D significantly lower th=
an maxmem=3D, all the extra
> >> =C2=A0=C2=A0=C2=A0=C2=A0 pages will be scrubbed before returning to Xe=
n. But since most of
> >> them
> >> =C2=A0=C2=A0=C2=A0=C2=A0 weren't used at all at that point, Xen needs =
to populate them first
> >> =C2=A0=C2=A0=C2=A0=C2=A0 (from populate-on-demand pool). In nested vir=
t case (Xen inside KVM)
> >> =C2=A0=C2=A0=C2=A0=C2=A0 this slows down the guest boot by 15-30s with=
 just 1.5GB needed
> >> to be
> >> =C2=A0=C2=A0=C2=A0=C2=A0 returned to Xen.
> >> =C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0 Add runtime paramete=
r to enable/disable it, to allow
> >> initially disabling
> >> =C2=A0=C2=A0=C2=A0=C2=A0 scrubbing, then enable it back during boot (f=
or example in
> >> initramfs).
> >> =C2=A0=C2=A0=C2=A0=C2=A0 Such usage relies on assumption that a) most =
pages ballooned out
> >> during
> >> =C2=A0=C2=A0=C2=A0=C2=A0 initial boot weren't used at all, and b) even=
 if they were, very few
> >> =C2=A0=C2=A0=C2=A0=C2=A0 secrets are in the guest at that time (before=
 any serious userspace
> >> =C2=A0=C2=A0=C2=A0=C2=A0 kicks in).
> >> =C2=A0=C2=A0=C2=A0=C2=A0 Convert CONFIG_XEN_SCRUB_PAGES to CONFIG_XEN_=
SCRUB_PAGES_DEFAULT
> >> (also
> >> =C2=A0=C2=A0=C2=A0=C2=A0 enabled by default), controlling default valu=
e for the new runtime
> >> =C2=A0=C2=A0=C2=A0=C2=A0 switch.
> >>
> >> Now, I face the same issue with init_on_free/init_on_alloc (not sure
> >> which one applies here, probably the latter one), which several
> >> distributions enable by default. The result is (see timestamps):
> >>
> >> =C2=A0=C2=A0=C2=A0=C2=A0 [2026-02-24 01:12:55] [=C2=A0=C2=A0=C2=A0 7.4=
85151] xen:balloon: Waiting for
> >> initial ballooning down having finished.
> >> =C2=A0=C2=A0=C2=A0=C2=A0 [2026-02-24 01:14:14] [=C2=A0=C2=A0 86.581510=
] xen:balloon: Initial
> >> ballooning down finished.
> >>
> >> But here the situation is a bit more complicated:
> >> init_on_free/init_on_alloc applies to any pages, not just those for
> >> balloon driver. I see two approaches to solve the issue:
> >> 1. Similar to xen_scrub_pages=3D, add a runtime switch for
> >> =C2=A0=C2=A0=C2=A0 init_on_free/init_on_alloc, then force them off dur=
ing boot, and
> >> =C2=A0=C2=A0=C2=A0 re-enable early in initramfs.
> >> 2. Somehow adjust balloon driver to bypass init_on_alloc when ballooni=
ng
> >> =C2=A0=C2=A0=C2=A0 a page out.
> >>
> >> The first approach is likely easier to implement, but also has some
> >> drawbacks: it may result in some kernel structures that are allocated
> >> early to remain with garbage data in uninitialized places. While it may
> >> not matter during early boot, such structures may survive for quite so=
me
> >> time, and maybe attacker can use them later on to exploit some other
> >> bug. This wasn't really a concern with xen_scrub_pages, as those pages
> >> were immediately ballooned out.
> >>
> >> The second approach sounds architecturally better, and maybe
> >> init_on_alloc could be always bypassed during balloon out? The balloon
> >> driver can scrub the page on its own already (which is enabled by
> >> default). That of course assumes the issue is only about init_on_alloc,
> >> not init_on_free (or both) - which I haven't really confirmed yet...
> >> If going this way, I see the balloon driver does basically
> >> alloc_page(GFP_BALLOON), where GFP_BALLOON is:
> >>
> >> =C2=A0=C2=A0=C2=A0=C2=A0 /* When ballooning out (allocating memory to =
return to Xen) we
> >> don't really
> >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 want the kernel to try too =
hard since that can trigger the oom
> >> killer. */
> >> =C2=A0=C2=A0=C2=A0=C2=A0 #define GFP_BALLOON \
> >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (GFP_HIGHUSER | __GFP=
_NOWARN | __GFP_NORETRY | __GFP_NOMEMALLOC)
> >>
> >> Would that be about adding some new flag here? Or maybe there is alrea=
dy
> >> one for this purpose?
> >=20
> > There doesn't seem to be a flag for that.
> >=20
> > But I think adding a new flag __GFP_NO_INIT and testing that in
> > want_init_on_alloc() _before_ checking CONFIG_INIT_ON_ALLOC_DEFAULT_ON
> > would be a sensible approach.
>=20
> People argued against such flags in the past, because it will simply get
> abused by arbitrary drivers that want to be smart.

Could it be named differently to discourage such usage? Maybe
__GFP_BALLOON_OUT ?

> Whatever leaves the buddy shall be zeroed out. If there is a
> double-zeroing happen, the latter could get optimized out by checking
> something like user_alloc_needs_zeroing().
>=20
> See mm/huge_memory.c:vma_alloc_anon_folio_pmd() as an example where we
> avoid double-zeroing.

It isn't just reducing double-zeroing to single zeroing. It's about
avoiding zeroing such pages at all. If a domU is started with
populate-on-demand, many (sometimes most) of its pages are populated in
EPT. The idea of PoD is to start guest with high static memory size, but
low actual allocation and fake it until balloon driver kicks in and make
the domU really not use more pages than it has. When balloon driver try
to return those pages to the hypervisor, normally it would just take
unallocated page one by one and made Linux not use them. But if _any_
zeroing is happening, each page first needs to be mapped to the guest by
the hypervisor (one trip through EPT), just to be removed from them a
moment later...

> >> Any opinions?
> >=20
> > You are aware of the "init_on_alloc" boot parameter? So if this is fine
> > for you, you could just use approach 1 above without any kernel patches
> > needed.
>=20
> I don't think init_on_alloc can be enabled after boot. IIUC, 1) would
> require a runtime switch.

Indeed.

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

--3fNdNAge+ez4rrPi
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmlbgcACgkQ24/THMrX
1yxLgwf+K1N8BeW0SQO59+jFd9tMVnt8D5VFKACsD0lsn6Bzv/iR2EcZ78lOtwoa
LZupAST9CXhgWxCCBRtZUN9RHmg8ZcAT/sa61SBWhk/zCSabDFvYswhooU4kjJcR
yWoOpX6VNRMwnVRQCmssKYNV+JDfPCUT/YXZWsSqIkBg+VsQRBnUKJnQn44+dtTV
1vgNH8FdeMdX9l1/94Fpgj97l5mYEV/qxf+3+T4GbF+oY0KU7rSin+wvlFmLyzWa
t2AtjsGJRrCdRrvC1IzKds8vYeR0MJxNCBWDvJcKREoNcLsv6gGpuH5QZKEwR1rc
p+PPymMOfFFucm6OP1ArTYLpNM+hTw==
=PItR
-----END PGP SIGNATURE-----

--3fNdNAge+ez4rrPi--


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 11:04:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 11:04:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244123.1543584 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx14C-0001zg-0n; Mon, 02 Mar 2026 11:04:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244123.1543584; Mon, 02 Mar 2026 11:03:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx14B-0001zZ-U2; Mon, 02 Mar 2026 11:03:59 +0000
Received: by outflank-mailman (input) for mailman id 1244123;
 Mon, 02 Mar 2026 11:03:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9kJt=BC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vx14A-0001yX-J9
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 11:03:58 +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 81dd1ba5-1627-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Mar 2026 12:03:56 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4834826e5a0so49519735e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 02 Mar 2026 03:03: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-483bfbb465bsm291529605e9.3.2026.03.02.03.03.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Mar 2026 03:03: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: 81dd1ba5-1627-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772449436; x=1773054236; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AsZqZNlgR1am8i9fi1SsyDpNwO6zvCv9IgvoGIR0Bf8=;
        b=bYkTKKyMOLXMuLVz1HJT8FplfjFAz/KjcSvD8knpS/1s9hAe4RDEvkCkkEHN/ltt0R
         Dz2WK2PLUpvXV8t/794itLrc0XyX2/cE3oZyQ/XFYD0qwqKgIHPHpiZ6Lp9trthSUFgX
         +NQp7NUSL+6Y2S+XPl7rA/P2kjrmBEMfchvfRXA9Z0EahGErwNTZiE2y8cTl8cILEezG
         F/9JA1C1TUWQDmfpoygzHuxHCnj9v7cG50kIKl6ErZHwlzhu20h5Er4r08mlemAQP/1r
         8QcVf8Szg0nacW8kgnPmFNlnuIT+oeh7um2Hz3Ey16VJnoMXZPwjvRyt+VhFzaCeqOxp
         sCyg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772449436; x=1773054236;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AsZqZNlgR1am8i9fi1SsyDpNwO6zvCv9IgvoGIR0Bf8=;
        b=KThG4pKC4U5fgzVzBcabK3pYA8t8Lao24vvyWODovCca+Krl35EfJThjVaUKEY+xr1
         N140U5NtZFP2r5kT/gftDEaogoOw+vctZ7GR320Rb8Sw4/OfO5InMil+1jS4+OAKtQh9
         jwIO9KSb9MyoGBFEgr+hAmWwEh3FyKx2Yw9LVYf7sNQF7qqjWMsDZtwj4XbcL0UhiBD0
         huCH3DEU1CPK9yTWXH+3Wrelpy8wcPH4cGel4HHUbJmWiMcrb5M5AHqoxGL2Id1cMPDa
         qjf4ubXJc9S5nU6vrkPgvvDUE+6Euu1W/Vps74slKYhAJsQWfch9uR8GV83YZ/dHiVKZ
         /qgQ==
X-Forwarded-Encrypted: i=1; AJvYcCX41d8/9RO6rcWaSCIu2RII11n8bi9X6fWaqWkL+2W4vS9wOlK69g2UMppRZ8uFkXDMzqKQt/fu084=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywd10h4Jp4uy35xL5cuw6ok4o21FoHxtWNLdcbcyuI1cLjdqlH1
	IzUSR9g8/g3PnbRchpzr6ZSGUguSp9ph0FvUZcxSlDN/nOtGR+jzSdeVtdSc1HjRHw==
X-Gm-Gg: ATEYQzwfW6z5Q3ds+KkW1F11Ys1pXcw/HzDaPZYbme4S2OWGWbrGVS76j6Z/Xm0Xoc7
	QCBhrU9z7UxXgw4HBtqqHl1rJIB0TPMr0/qBrsvqA9AIPRNjHk3Ah+359FkrSFMnsVCSfZeOl0L
	+ME80C9SSLkL24nDW9fq1Rw5D1TAZLUC9N2pKXMivCOzuPryBdE45d4Q11Q2dSgp+MqfF/T2ZJ8
	G5myCIwIayHhsEOKqH2PiG86GoDX943bgV21bvp97YuiRq0Ki4b6+fSGJr4MgBbV5+e2oXus3b+
	UEMHdx+33y5FUNAfZM+L9YZ9KI9qJBxx4XvdCJjp2EzXlABEBCxxDQJtasXXyrv8efG5jaHlXmf
	ME6p0VPNoMrdJCKWr7KyWC2ZZxyActFiCRDkV1oILokeKILqkHO6LXyOs01zow9wzMW9eC53WxC
	dgoY7aacwcUhSKkRpUSHl/Tnk1XpDv1QIIalhaIlyy5SdpGJg0b4dnDSnlO1rfBH5spnxWVLMpA
	c2mOF2v5WShe9BTOP5Qz/NUVQ==
X-Received: by 2002:a05:600c:548a:b0:483:6e32:50d4 with SMTP id 5b1f17b1804b1-483c9bed9bbmr210520015e9.18.1772449435801;
        Mon, 02 Mar 2026 03:03:55 -0800 (PST)
Message-ID: <bf83838a-8401-4eb7-aea8-25ce59c9d492@suse.com>
Date: Mon, 2 Mar 2026 12:03:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 01/14] x86/pv: Don't assume that INT $imm8 instructions
 are two bytes long
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: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
 <20260227231636.3955109-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: <20260227231636.3955109-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.02.2026 00:16, Andrew Cooper wrote:
> For INT $N instructions (besides $0x80 for which there is a dedicated fast
> path), handling is mostly fault-based because of DPL0 gates in the IDT.  This
> means that when the guest kernel allows the instruction too, Xen must
> increment %rip to the end of the instruction before passing a trap to the
> guest kernel.
> 
> When an INT $N instruction has a prefix, it's longer than two bytes, and Xen
> will deliver the "trap" with %rip pointing into the middle of the instruction.
> 
> Introduce a new pv_emulate_sw_interrupt() which uses x86_insn_length() to
> determine the instruction length, rather than assuming two.
> 
> This is a change in behaviour for PV guests, but the prior behaviour cannot
> reasonably be said to be intentional.
> 
> This change does not affect the INT $0x80 fastpath.  Prefixed INT $N
> instructions occur almost exclusively in test code or exploits, and INT $0x80
> appears to be the only user-usable interrupt gate in contemporary PV guests.

Whereas for the slow path, while the subtracting of 2 from %rip there isn't
quite right either, the insn size determination here would then simply yield
2 as well, so all is good for that case as well.

> @@ -1401,6 +1402,53 @@ int pv_emulate_privileged_op(struct cpu_user_regs *regs)
>      return 0;
>  }
>  
> +/*
> + * Hardware already decoded the INT $N instruction and determinted that there
> + * was a DPL issue, hence the #GP.  Xen has already determined that the guest
> + * kernel has permitted this software interrupt.
> + *
> + * All that is needed is the instruction length, to turn the fault into a
> + * trap.  All errors are turned back into the original #GP, as that's the
> + * action that really happened.
> + */
> +void pv_emulate_sw_interrupt(struct cpu_user_regs *regs)
> +{
> +    struct vcpu *curr = current;
> +    struct domain *currd = curr->domain;
> +    struct priv_op_ctxt ctxt = {
> +        .ctxt.regs = regs,
> +        .ctxt.lma = !is_pv_32bit_domain(currd),

The difference may not be overly significant here, but 64-bit guests can run
32-bit code, so setting .lma seems wrong in that case. As it ought to be
largely benign, perhaps to code could even be left as is, just with a comment
to clarify things?

> +    };
> +    struct x86_emulate_state *state;
> +    uint8_t vector = regs->error_code >> 3;
> +    unsigned int len, ar;
> +
> +    if ( !pv_emul_read_descriptor(regs->cs, curr, &ctxt.cs.base,
> +                                  &ctxt.cs.limit, &ar, 1) ||
> +         !(ar & _SEGMENT_S) ||
> +         !(ar & _SEGMENT_P) ||
> +         !(ar & _SEGMENT_CODE) )
> +        goto error;
> +
> +    state = x86_decode_insn(&ctxt.ctxt, insn_fetch);
> +    if ( IS_ERR_OR_NULL(state) )
> +        goto error;
> +
> +    len = x86_insn_length(state, &ctxt.ctxt);
> +    x86_emulate_free_state(state);
> +
> +    /* Note: Checked slightly late to simplify 'state' handling. */
> +    if ( ctxt.ctxt.opcode != 0xcd /* INT $imm8 */ )
> +        goto error;
> +
> +    regs->rip += len;
> +    pv_inject_sw_interrupt(vector);
> +    return;
> +
> + error:
> +    pv_inject_hw_exception(X86_EXC_GP, regs->entry_vector);

DYM regs->error_code here? Might it alternatively make sense to return a
boolean here, for ...

> --- a/xen/arch/x86/traps.c
> +++ b/xen/arch/x86/traps.c
> @@ -1379,8 +1379,7 @@ void do_general_protection(struct cpu_user_regs *regs)
>  
>          if ( permit_softint(TI_GET_DPL(ti), v, regs) )
>          {
> -            regs->rip += 2;
> -            pv_inject_sw_interrupt(vector);
> +            pv_emulate_sw_interrupt(regs);
>              return;

... the return here to become conditional, leveraging the #GP injection at
the bottom of this function?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 11:05:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 11:05:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244134.1543594 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx166-0002c0-De; Mon, 02 Mar 2026 11:05:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244134.1543594; Mon, 02 Mar 2026 11:05: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 1vx166-0002bt-Au; Mon, 02 Mar 2026 11:05:58 +0000
Received: by outflank-mailman (input) for mailman id 1244134;
 Mon, 02 Mar 2026 11:05:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9kJt=BC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vx165-0002bn-G2
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 11:05:57 +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 c90b2bd6-1627-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 12:05:56 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-4398d9a12c6so3296550f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 02 Mar 2026 03:05: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-483bfb776dfsm233971295e9.1.2026.03.02.03.05.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Mar 2026 03:05: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: c90b2bd6-1627-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772449555; x=1773054355; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=synUOoO4di3izuTF0VsHWZ83ix9ypOvwSIO3snD+w7c=;
        b=YK9Fr3UTvK3Eq+KrSo09OJA2FbW7QpIvqZZnzksIOkbpSww/t4QZa28V+xDN7z5eDx
         4yIG7gyGMq1vjgZi4RzyhMaERNKHQxfgJfdSlF+CQ/Sn11yJtAMdFdd920s5w6ZNXAMy
         uX3vVQX4brzgwGda2PGy5p5YEKue3mGZEOdBnG15vM8TARX5roo8bQ+blhK8I5TrEv0m
         YoORjJ6fz1ymuO75/NkkWSP+4oAr0KuMIGKn0FQ7kkgH3GfzFxrD8cr1WSWDgMeQ03W1
         HBU+6QP8yD34Da2C/W5ZDvCaEHpyiSSCyd32BCOq7CLWSixKXpU8FPu5qjK8CdvDz5EM
         st8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772449555; x=1773054355;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=synUOoO4di3izuTF0VsHWZ83ix9ypOvwSIO3snD+w7c=;
        b=UPh2A0a2re3lyU6uHNa7tdnSCOZ1+9191LNOruElQo4rgIzAX6459OdcTyf/8Tbyqk
         ga6ycVqd8HjlPk2Zf2ZjKiPA+DenriVapd/wsRXmqICNKAYnv31a1PRva/han/Gs4Le5
         RZ0NmDJT0Uu+cBJFUGo9lSCqYnyAuk+hyYmf5j78OjGT6Jx40k5f9OEE6Q4lLApA7Jdo
         D9ACd5evY3yYYwjxkzQRl8VcehkgOa3xFQvGiGsEVHY2fbjD2qEdwBg425cbztj3gUpG
         npHhTGx/z4nehUWYEutp/ifgVn9hck1XhOpr8NkNekTPPbqL6LiYN8+D1FKr2o0pD79K
         dH0g==
X-Forwarded-Encrypted: i=1; AJvYcCVR7G5w7JGcBu/8Cza6gGiMFuT0ltIdPSa9aCQfzd1481W/DiP+15JzSKIf10SLf20aaYBwK/dPQx0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy2CCdkMcm4hsaIepgutNLPro/kibWd1nYMmsvLESEX7AiFr4v5
	JEZAqepkc/LqZU40Q8d1VyEjbZpKeJX8uWANbL6jAs6rJ0M1wTxurPzOY6Pq9SQZFw==
X-Gm-Gg: ATEYQzxY3IPuW0Gn8cDH8vBFwCQNgD89q0B8sQIqeFatcYStngJpgSUFMLnknMzY+fR
	ojSncAeHC26TOOwexT/rUy2bflWCdDK61km1HRASa4v5GDqmG5/xKDVvXiUNV+TBiT1rm6OtTip
	jTY/nVVKUBNYjnxLZJgWvMXcxBPnnQh89QlWc9Ri1EegrweAkEI5sY4gSz4pmtKr3akSV6RNKvG
	pI/64P4Fpy1QXDnO9xsWN7zZr7v+vcbbkcXCn2Er9KCAf/+TyjDxkrToRWYiB31QNvL5BGEwlyY
	VPVSkZ69hi9c15bHkfv7CmhEazQnc48fcSkttSW3nL2B4ozWlBzAqAnVD5cebJvO1YBJvhHMymw
	rkx9T2HIBHHbWJaHkrFT/TQjWJZngP/nKdyrGO4rnjjtHGwQtR/PbNh2tWRGOSVAo1mIvWQwrx/
	/MhNMIWVfaC3ec5U/9BQYvc0uhQ+yMyh2XG527NHNw33uAf6CrLsGN/FQdiunD06Glc6I6NV8rX
	TmscqQEu/7EALI=
X-Received: by 2002:a05:600c:8718:b0:480:1b1a:5526 with SMTP id 5b1f17b1804b1-483c9bde838mr208233985e9.16.1772449555158;
        Mon, 02 Mar 2026 03:05:55 -0800 (PST)
Message-ID: <b7fd4685-1c46-428b-8f5d-b6eb447f0ee7@suse.com>
Date: Mon, 2 Mar 2026 12:05:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Excluding init_on_free for pages for initial balloon down (Xen)
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 xen-devel <xen-devel@lists.xenproject.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 "David Hildenbrand (Arm)" <david@kernel.org>
References: <aaRVcVmtv2UBD-GF@mail-itl>
 <513e624f-35c1-4d43-ba3f-c96af613d400@suse.com>
 <224968e6-7236-4efe-bcc0-ab39ac0c6c45@kernel.org> <aaVuB3x3y4ROr5XA@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: <aaVuB3x3y4ROr5XA@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02.03.2026 12:01, Marek Marczykowski-Górecki wrote:
> On Mon, Mar 02, 2026 at 09:40:29AM +0100, David Hildenbrand (Arm) wrote:
>> On 3/2/26 07:36, Jürgen Groß wrote:
>>> On 01.03.26 16:04, Marek Marczykowski-Górecki wrote:
>>>> Hi,
>>>>
>>>> Some time ago I made a change to disable scrubbing pages that are
>>>> ballooned out during system boot. I'll paste the whole commit message as
>>>> it's relevant here:
>>>>
>>>>      197ecb3802c0 xen/balloon: add runtime control for scrubbing
>>>> ballooned out pages
>>>>
>>>>      Scrubbing pages on initial balloon down can take some time,
>>>> especially
>>>>      in nested virtualization case (nested EPT is slow). When HVM/PVH
>>>> guest is
>>>>      started with memory= significantly lower than maxmem=, all the extra
>>>>      pages will be scrubbed before returning to Xen. But since most of
>>>> them
>>>>      weren't used at all at that point, Xen needs to populate them first
>>>>      (from populate-on-demand pool). In nested virt case (Xen inside KVM)
>>>>      this slows down the guest boot by 15-30s with just 1.5GB needed
>>>> to be
>>>>      returned to Xen.
>>>>           Add runtime parameter to enable/disable it, to allow
>>>> initially disabling
>>>>      scrubbing, then enable it back during boot (for example in
>>>> initramfs).
>>>>      Such usage relies on assumption that a) most pages ballooned out
>>>> during
>>>>      initial boot weren't used at all, and b) even if they were, very few
>>>>      secrets are in the guest at that time (before any serious userspace
>>>>      kicks in).
>>>>      Convert CONFIG_XEN_SCRUB_PAGES to CONFIG_XEN_SCRUB_PAGES_DEFAULT
>>>> (also
>>>>      enabled by default), controlling default value for the new runtime
>>>>      switch.
>>>>
>>>> Now, I face the same issue with init_on_free/init_on_alloc (not sure
>>>> which one applies here, probably the latter one), which several
>>>> distributions enable by default. The result is (see timestamps):
>>>>
>>>>      [2026-02-24 01:12:55] [    7.485151] xen:balloon: Waiting for
>>>> initial ballooning down having finished.
>>>>      [2026-02-24 01:14:14] [   86.581510] xen:balloon: Initial
>>>> ballooning down finished.
>>>>
>>>> But here the situation is a bit more complicated:
>>>> init_on_free/init_on_alloc applies to any pages, not just those for
>>>> balloon driver. I see two approaches to solve the issue:
>>>> 1. Similar to xen_scrub_pages=, add a runtime switch for
>>>>     init_on_free/init_on_alloc, then force them off during boot, and
>>>>     re-enable early in initramfs.
>>>> 2. Somehow adjust balloon driver to bypass init_on_alloc when ballooning
>>>>     a page out.
>>>>
>>>> The first approach is likely easier to implement, but also has some
>>>> drawbacks: it may result in some kernel structures that are allocated
>>>> early to remain with garbage data in uninitialized places. While it may
>>>> not matter during early boot, such structures may survive for quite some
>>>> time, and maybe attacker can use them later on to exploit some other
>>>> bug. This wasn't really a concern with xen_scrub_pages, as those pages
>>>> were immediately ballooned out.
>>>>
>>>> The second approach sounds architecturally better, and maybe
>>>> init_on_alloc could be always bypassed during balloon out? The balloon
>>>> driver can scrub the page on its own already (which is enabled by
>>>> default). That of course assumes the issue is only about init_on_alloc,
>>>> not init_on_free (or both) - which I haven't really confirmed yet...
>>>> If going this way, I see the balloon driver does basically
>>>> alloc_page(GFP_BALLOON), where GFP_BALLOON is:
>>>>
>>>>      /* When ballooning out (allocating memory to return to Xen) we
>>>> don't really
>>>>         want the kernel to try too hard since that can trigger the oom
>>>> killer. */
>>>>      #define GFP_BALLOON \
>>>>          (GFP_HIGHUSER | __GFP_NOWARN | __GFP_NORETRY | __GFP_NOMEMALLOC)
>>>>
>>>> Would that be about adding some new flag here? Or maybe there is already
>>>> one for this purpose?
>>>
>>> There doesn't seem to be a flag for that.
>>>
>>> But I think adding a new flag __GFP_NO_INIT and testing that in
>>> want_init_on_alloc() _before_ checking CONFIG_INIT_ON_ALLOC_DEFAULT_ON
>>> would be a sensible approach.
>>
>> People argued against such flags in the past, because it will simply get
>> abused by arbitrary drivers that want to be smart.
> 
> Could it be named differently to discourage such usage? Maybe
> __GFP_BALLOON_OUT ?
> 
>> Whatever leaves the buddy shall be zeroed out. If there is a
>> double-zeroing happen, the latter could get optimized out by checking
>> something like user_alloc_needs_zeroing().
>>
>> See mm/huge_memory.c:vma_alloc_anon_folio_pmd() as an example where we
>> avoid double-zeroing.
> 
> It isn't just reducing double-zeroing to single zeroing. It's about
> avoiding zeroing such pages at all. If a domU is started with
> populate-on-demand, many (sometimes most) of its pages are populated in
> EPT.

ITYM "unpopulated in EPT"?

Jan

> The idea of PoD is to start guest with high static memory size, but
> low actual allocation and fake it until balloon driver kicks in and make
> the domU really not use more pages than it has. When balloon driver try
> to return those pages to the hypervisor, normally it would just take
> unallocated page one by one and made Linux not use them. But if _any_
> zeroing is happening, each page first needs to be mapped to the guest by
> the hypervisor (one trip through EPT), just to be removed from them a
> moment later...
> 
>>>> Any opinions?
>>>
>>> You are aware of the "init_on_alloc" boot parameter? So if this is fine
>>> for you, you could just use approach 1 above without any kernel patches
>>> needed.
>>
>> I don't think init_on_alloc can be enabled after boot. IIUC, 1) would
>> require a runtime switch.
> 
> Indeed.
> 



From xen-devel-bounces@lists.xenproject.org Mon Mar 02 11:11:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 11:11:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244144.1543604 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx1BT-0004K1-W4; Mon, 02 Mar 2026 11:11:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244144.1543604; Mon, 02 Mar 2026 11:11:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx1BT-0004Ju-T9; Mon, 02 Mar 2026 11:11:31 +0000
Received: by outflank-mailman (input) for mailman id 1244144;
 Mon, 02 Mar 2026 11:11: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=cp9A=BC=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vx1BS-0004Jl-Nh
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 11:11:30 +0000
Received: from fout-a3-smtp.messagingengine.com
 (fout-a3-smtp.messagingengine.com [103.168.172.146])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8f42d6dc-1628-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 12:11:29 +0100 (CET)
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfout.phl.internal (Postfix) with ESMTP id E9B89EC0075;
 Mon,  2 Mar 2026 06:11:27 -0500 (EST)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-06.internal (MEProxy); Mon, 02 Mar 2026 06:11:27 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 2 Mar 2026 06:11:26 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8f42d6dc-1628-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm3; t=1772449887;
	 x=1772536287; bh=hAz78vtNmEKyYQy005oWsW/ppkghVlAM7QfBZhwbysc=; b=
	Z3j2U+05gRModrwbwn5SUEm7sD77bVZ2im1lmeUlbD0BMOChBdq4rRkW0jfFD3+v
	tqCBgZbwEJIi0w+D4ygk6/m4bPXk9E6QJKaWVEd4AZKaME0b4rRl2wLq8i4D0klM
	6l71c4RWlFUCTUtXKZDFhxMwzXJ2dE2LJNLd6qufSOsdoMC+N/ncW5gMyVHbsv/V
	4nTxIcTsgfRJTnMxd5rM8PBWE0BixHchema/LUdcYmnSSwsuluQ27gu/KasdvLtX
	j2iHCWwHNkV0iThrnLCLaVUEUm84HmohNdAtK+w2LzgLPyP6c1DZ7k/6JYojxJwl
	VQMcMiHdlj3tQdjwOveRFg==
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=
	1772449887; x=1772536287; bh=hAz78vtNmEKyYQy005oWsW/ppkghVlAM7Qf
	BZhwbysc=; b=6KJj+AvK1TgeuAaY9kw+fJ9IVjsVn2+1biod24oci+PJMZlOhnT
	ucAc6iOzdwts74HmIRQGTKpBbhFNwv0+kqH3stsnOp+Rf1LiJ1qZE4u2DPloFh73
	tuaIaK0YoidrkAeNdQJ1eTsRyMO4LZ9VA20dk+OHJJe+sG+ZyeGSd1FddCPOmWie
	HKl2037gxyIrGMzgPmWRassBQuUoUYmhHcCwqbdfDngTRjZ9fZ2VxxJq0gWm78fT
	7J23HC45rYs0IjEHcl+vn06fIGPXM0PDs8SptjqAIsUPl6XqKSNpHLQxXi/8xJ5w
	TZGSHpGe8N0tLXoJ5iJkDzjp+O0c51kjaJA==
X-ME-Sender: <xms:X3ClaYKlxm_s1rTzgwnsrs5iPmn9ZtuK6XzspmJD0tJsR7yuTkOVzQ>
    <xme:X3Clab2FkFdGDLzzMKOMJovnflFG2_vLcVmJvNUAHZm6dc6xgr9gk_tcEVF7t0PSM
    OToKqRphBekQHBbljkLZO7VWlUnWNvO8e3bU09Oy4zIP_hM>
X-ME-Received: <xmr:X3ClaSgasJkXQodAen6oAh1dYoxM8K8ku_khJJ5W4voizSbQUb2KMFCYilkiSt6BidUikkR3RcbS7ZJdOkgOQhqL5ReW79tYxRQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvheejhedvucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepiedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtgho
    mhdprhgtphhtthhopehjghhrohhsshesshhushgvrdgtohhmpdhrtghpthhtohepgigvnh
    dquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtohep
    sghorhhishdrohhsthhrohhvshhkhiesohhrrggtlhgvrdgtohhmpdhrtghpthhtoheprg
    hkphhmsehlihhnuhigqdhfohhunhgurghtihhonhdrohhrghdprhgtphhtthhopegurghv
    ihgusehkvghrnhgvlhdrohhrgh
X-ME-Proxy: <xmx:X3ClacWCSFhp3S0yMwxZaHuA3AEBoKsMi1x4jvEXnnz8WeCm8octug>
    <xmx:X3ClaRV7boaCcYF6M7vqYEwzXubTC4EU4eWeAiwSnWw9QyA__mN3Uw>
    <xmx:X3ClachkK7zs_WBLJiumbqvslf9zpjstUBaRoX7ziC355UK8wnp4kg>
    <xmx:X3ClacYPboHxpA8UgWTk_RSsyUYyTldHxcy-5yrKsigEXOX22dSbfQ>
    <xmx:X3Clafl-14sHa5K3I6ErKakxPH3bi8NYMVAIQR5vLA_17tpkx5zM4GLU>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 2 Mar 2026 12:11:23 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
	xen-devel <xen-devel@lists.xenproject.org>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	"David Hildenbrand (Arm)" <david@kernel.org>
Subject: Re: Excluding init_on_free for pages for initial balloon down (Xen)
Message-ID: <aaVwXPBV-09yItPM@mail-itl>
References: <aaRVcVmtv2UBD-GF@mail-itl>
 <513e624f-35c1-4d43-ba3f-c96af613d400@suse.com>
 <224968e6-7236-4efe-bcc0-ab39ac0c6c45@kernel.org>
 <aaVuB3x3y4ROr5XA@mail-itl>
 <b7fd4685-1c46-428b-8f5d-b6eb447f0ee7@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="HjLfbADq9Cg4aQs8"
Content-Disposition: inline
In-Reply-To: <b7fd4685-1c46-428b-8f5d-b6eb447f0ee7@suse.com>


--HjLfbADq9Cg4aQs8
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 2 Mar 2026 12:11:23 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
	xen-devel <xen-devel@lists.xenproject.org>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	"David Hildenbrand (Arm)" <david@kernel.org>
Subject: Re: Excluding init_on_free for pages for initial balloon down (Xen)

On Mon, Mar 02, 2026 at 12:05:57PM +0100, Jan Beulich wrote:
> On 02.03.2026 12:01, Marek Marczykowski-G=C3=B3recki wrote:
> > It isn't just reducing double-zeroing to single zeroing. It's about
> > avoiding zeroing such pages at all. If a domU is started with
> > populate-on-demand, many (sometimes most) of its pages are populated in
> > EPT.
>=20
> ITYM "unpopulated in EPT"?

Yes...


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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmlcFwACgkQ24/THMrX
1yzqNQf/TDwbpTaA2dHntBbwtaFb8BD+V+ciJ4Bn9CsM4jA/bjqWVqOEYDdFvW+8
ZxOxWonelMsJWD6jOAVNzjV63CXrxuKC0aQ80VBC717XO2JwvVjHcGSoEY839BxM
bWOY48dSNAwG3xZT8S9H8OUgG5oc9e/UXg0nwiSugHDZaWL0mnzZyfwmQbYfxsp4
4st6ObeKWMvx8UvRI/KnN7oM1DxF1A1pUnLKrVVJEPzL/doCo7FvBFGIki0zv0vY
yLepZGyLqDaA+nwDa5OnQDPJI8t4DasiIbxznhU8g0o+HKnRjzs+q9WMSzAOh6In
l5rIM+BA7s/E8evluHaYs/oVgK+bsQ==
=lnOg
-----END PGP SIGNATURE-----

--HjLfbADq9Cg4aQs8--


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 11:18:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 11:18:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244154.1543614 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx1Hs-00056m-KI; Mon, 02 Mar 2026 11:18:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244154.1543614; Mon, 02 Mar 2026 11:18: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 1vx1Hs-00056f-H8; Mon, 02 Mar 2026 11:18:08 +0000
Received: by outflank-mailman (input) for mailman id 1244154;
 Mon, 02 Mar 2026 11:18: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=f7KG=BC=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vx1Hq-00056V-G3
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 11:18:06 +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 7b3d9aba-1629-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 12:18:04 +0100 (CET)
Received: from AS4P190CA0039.EURP190.PROD.OUTLOOK.COM (2603:10a6:20b:5d1::12)
 by DBBPR08MB6171.eurprd08.prod.outlook.com (2603:10a6:10:20f::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.20; Mon, 2 Mar
 2026 11:18:00 +0000
Received: from AM4PEPF00027A66.eurprd04.prod.outlook.com
 (2603:10a6:20b:5d1:cafe::eb) by AS4P190CA0039.outlook.office365.com
 (2603:10a6:20b:5d1::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.21 via Frontend Transport; Mon,
 2 Mar 2026 11:17:55 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM4PEPF00027A66.mail.protection.outlook.com (10.167.16.91) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.16
 via Frontend Transport; Mon, 2 Mar 2026 11:17:59 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AS2PR08MB9272.eurprd08.prod.outlook.com (2603:10a6:20b:59b::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.20; Mon, 2 Mar
 2026 11:16:47 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9654.020; Mon, 2 Mar 2026
 11:16: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: 7b3d9aba-1629-11f1-b164-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=HcXeBakT3JnuY/iljMA0FC+7pjuc1UvU04zf/RVGCjOEQPpHrNYKvr8SG4PQjlq1v7tvi6AKXcI7hBCecwKEEXMuTbav9MgM32N5gRm/tSEJ/ZxN8X2KBo26WSWNoRUFJZxLHg+NhEnFxSXtUxsVCUItF/uSu3DE2+U74W3pv1e0BiudT/2Qe/cDMD7+cEa39srY7bn0bBKFlnJOzrI0odZx2fORdYEaCELAhnRjBPHsvlxHzWy5AeP+eIC6PZ5BGYxx4NT6aGB5bkkHlGUtIyU8/MGIoUgzv9ZGVMIebAhva+p3tGPmINwbOqAmj/A8PyIzPeY4vqJMnWkRKvx0Mw==
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=jbRy5X+4oLy43mMeGVkNcSr4TSLmMrjqmePb0iJ3KEo=;
 b=kQHS1P9ZnO9h+Bo+DblatYLDussQnf0+e/xtJ3EPVj8C9TBdbz0RagxJ6DPOevhzZK9AEXEseAvL04KLaNyu8TMP/9CAG8rj7AmeZlrLd7Q7LBJWhfw9yhpKwDSkyvEvuEzaqzQX3hf43FnEEkJoxjKiG9X4LAs2Ag611CPwfpNRavEgmlZ1XJUl0MLBJyveYIb/zPvt44FmdqcFjasMFYThIRoGcr/ZYhTwAGImOk3CNYtoMhcao8IoDZfCjkoHCvKOwxPxL9pD9eLmo18x6tEuTQB+f+g+81wZG+ziM+zRlb/O0BellYFzDhX7l48N7KTsEnoNGSoqpaehbeUmJw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jbRy5X+4oLy43mMeGVkNcSr4TSLmMrjqmePb0iJ3KEo=;
 b=JayCXiuVhQpRrVhWQXT21KbLXXgLh8rVfZXAMAFYrERybatN+ey5z0UJXJgDmzyHo+TWcaFFdiTqEgAn6umiXdoCljt792Xk8kkpRTN5XdwFcEb4u6rp52yyoVN9czkU3S/MMCO02KuGTXtKo7g4VjRyZHJ6YHkQRYEaves+8eg=
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=BYeNg1CVEsbM++D2ElxafFfb5Hwb/eS5uNTqi9PnPEcjhrJanGN6w2mtjiiGa0kjVx0KkVQa9HQJWX75dG3UZ7nWjFg5FOGgVt7Ad6nLeSEHyf2f5TGFPvOI2FptK+vd6HZiU/Z8oVsMgxaPpDIZlXOubYLwZpfai/RY9PhkSlbG8zET1uuUcmff6UAb1pcJN20lZ2E2FDzFspowXabb4j59a0/ESMs5eo9ARZA4LsbZC9LwXySfWgo+wyorCBS/P9sPq/+6HCVsc20xBYlf7e28AoBvUmzSQJlcK/uI0Qj2uxkat4MMNzzyqXSoQX00jvjQ+xIFyfveDnJUDmJ5ow==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jbRy5X+4oLy43mMeGVkNcSr4TSLmMrjqmePb0iJ3KEo=;
 b=g5ApEarKm4udOMN7AUPLDGv6JF+8VK8moyRGZxzA6hW+i5LM07zqdBetu9X2u79D/2SjyMpnEh1WHUe0GL63nqULcN3vgfzeDDtT3tXhFR//BFlSI2cLLV43wTBxGfNRtzUwWOFsYi1m9tFl3gsbIoJ8ox0hig4B9cY6HoG5TlE7sSL8AP3GTrW33jJmVh7KrmnDPwMHK/Q/E+NxN/RsDWSG/XJU1TTkrURR89PhL0LA3ETxW6dCApOSmUdHc97Dd83rxbCh1iI/UR0nj+yQLzjkL4U0URPySCacyM5O/C6ZeJXWkEBxw7mKIwaucpe+48/4MkEr/TKRtzw/P6804w==
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=jbRy5X+4oLy43mMeGVkNcSr4TSLmMrjqmePb0iJ3KEo=;
 b=JayCXiuVhQpRrVhWQXT21KbLXXgLh8rVfZXAMAFYrERybatN+ey5z0UJXJgDmzyHo+TWcaFFdiTqEgAn6umiXdoCljt792Xk8kkpRTN5XdwFcEb4u6rp52yyoVN9czkU3S/MMCO02KuGTXtKo7g4VjRyZHJ6YHkQRYEaves+8eg=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 4/4] xen/arm: ffa: Add cached GET_REGS support
Thread-Topic: [PATCH 4/4] xen/arm: ffa: Add cached GET_REGS support
Thread-Index: AQHcpj3kq0uMG7qoMEmDaKexZXnDI7WWpiEAgARSgwCAABNogIAAE4kA
Date: Mon, 2 Mar 2026 11:16:46 +0000
Message-ID: <4FDDC57C-79AA-44F5-98CF-6DD085F3D7C7@arm.com>
References: <cover.1772013062.git.bertrand.marquis@arm.com>
 <832ba950a53a7139b51053f6570fd9b26ba42df1.1772013062.git.bertrand.marquis@arm.com>
 <CAHUa44EjtezLGx=YNtyK-xCU9gmEvBGVLhmG=0YpRWftFxGY-Q@mail.gmail.com>
 <C0024849-8ACF-4662-B89F-E327732FA669@arm.com>
 <CAHUa44H3p5SMFiK3AXrUYWjsxSfa=AQs4PUTJ552AiRNCi3aQQ@mail.gmail.com>
In-Reply-To:
 <CAHUa44H3p5SMFiK3AXrUYWjsxSfa=AQs4PUTJ552AiRNCi3aQQ@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AS2PR08MB9272:EE_|AM4PEPF00027A66:EE_|DBBPR08MB6171:EE_
X-MS-Office365-Filtering-Correlation-Id: 57419717-1c9f-40e3-570f-08de784d5cec
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:
 kQ/wYGpXK/ZxkstWuhBnUL3R/AQWp9J9u9wNiMQ8vM7QWA/vekTtAQOZ87CUThZByIGTjOVnxoYlvGb9bU7X5PVTpWrU6bwA9atPKbZlf4H3G5uiopoYryRpmu22JwKTwuVTYQ5Ade45zl+d4mpawxYRoLpDrMCwy7fq+Kyz26sSjXf1am3VcNsKjMCx3zWU2lbg0PlfEbvKZfRX5BFNNtSSM2BJ4EkvFPUmjVakwFStle4qZNhUbLqVcGSld/7z01+saR2x5jEx4CKC/Ors36/3IIVwvT2nGoA4KFwF2dscchmBjxWxWDTXspUQKiaOwslN3yHSk7qtfVZX1e4nl4ujKXwfelmyA0kfq01Cxz43SoAhc0UltHMschdy67/ZX/qCm5vBsMET9xHjcpUTs0b6HPYq0EsIbTyx5AL8MrG6DXz2rKDMZj+TAIk6sgtgThx1cJf+Tb1rKoEn1dMAorpLNbi9EyO+EoHXe8l4Yxg4nxb6LfLK6k0gxOXwrOWUOBmkenashfbk1Xe7z749zMXLifixWD1qoZ6xpV9dREQZvNc81KrD+ZSqA8i6ZbylbD5WiQxoQeRTb1mwzms5iYdtOkA/WyGc2XVYVBNtCukeGtDadlXor216dU3PBhTMzl+JyNKIgQIfvxHOqH2VBTnGEMVYpGTdVwXE/WFmdtA9PyAwwSTtSeTSWZ1OWHk0Hmon/Jg/aLzd7NLbZ6cYMvOdKJgg7Th3Fxskw2hRVfcYuyd/B3o0PZYPKQsf6swVELaf/s+5YL5HTvCl7MYWiIlbUEXqU6LUSrUkPu6ikjw=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <395F3A11FA324E4D88D99FF9C0C831C0@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9272
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00027A66.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	3e434d8c-3d0f-4b38-2a32-08de784d3149
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|35042699022|36860700013|376014|14060799003|7053199007;
X-Microsoft-Antispam-Message-Info:
	J9g1aSnvFqLMQ21avAj0v01V8uPH79Txm/oU9G8WxMfs3pDMriQP15uqnWJpoVf1VhcG5LfelbWqVxVkRWKvJV2CCimymx3338Vk2wwxop26PZ0FMp8wi49v51sLJbziY7dX5w3vpxACpdc+lIr6VHL9WjTbIbujQ9z2zvOBqrc8J5UreRPXC6ELf2SuYfn1m8JPKhpD/2yN5Y67jSvpxPWFsOyOgvCXgpXKVh7Wv62mOXKq41/3wn0Sd2YaJCBMCzt6x5mBV0x5SeSBKa5UiH10z7UA9+Cg+/AHIKxmXukOagYr56j6zGG4z5geCfT0M2Dvwad/3S6Yr4+bCRZ+U1ElEZONlyR/SNEKu33YsZuCOqMZBFZXG5CikEKadad28LD2+h8cgI6pBMX6xqpBvfzrnkioDtdhKKKCSTsva5crspp3ibZu2YF1LjmYMYR6lfB80Ker47v6ML0X73pDleZePIiRUwKmWQBxgrKPfxLEPa/ibC3R6CpBnEzmpRAXT2llMf74l5FN3yGXPohH0S6xBJfXtfyJIn7cNcwJrYGdbytezhLiJgoeiWp17UfXxZQE/1oUPeJ/Qz3YqPAwxtSfH6ZOyO+rnF+slEAZOaBSzuQfcZNRrVEYKyIup3V6bNI9Yb17yT4XF20OgfKTK7T9AWlEKDRQo53tCvfaIKMPOH8bDLiBqfpvjCOXoRaFIv9N8L+4QTflQyhO2V0aWDa3fN8g4Ots6c3kNZ3hqCSDQRALe90RlKzBvk4LWbby2KdOcMhEmlU392oSfV4+hCvfmertGtg2DycGwG/QHJndr99PBU6ow6IANvCyXAiMhCau3I+ku9S7s944ZUQn5Q==
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(35042699022)(36860700013)(376014)(14060799003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	yz1f+12odURr9PCc6do9da+6LoSLAAWfdA449d4uLMSFuTWW/z+n/ECxvchXTec6c+ofsJ0nETiJe5KAL8nQyPlMn1MXBsJtGaOWEEte8MSOVuFhnJ4Rw59wPmEufYgioLoG/USMuCMXyyu2wH6DxlOcGU5dtwmq/lyc6G/ZUA0+hWK/IjUzPu1UZmeXviZdp3bncKmjWNS0RllMxuzP9gN5OPR4GdtaHm0OxKTmF59+g93NRv7c5BkYnO44LCFtd5o74mMj/lkbSJUTObFKrpEo1lS5XQ18A0Zezlb9yJwakv0ZjNodtKigIGdVQF/kGto3qRGepKpJYl1YC4DEkuiJTgphFzU7NbbFSlkRXqbTDVDQUranMoZ66qBCwBeSi8W7fmyCAO356MxEP/P4khSXu+4DM7TxaMchA7MejmCOWcNrfxyz5FscJBSE79rA
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Mar 2026 11:17:59.8912
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 57419717-1c9f-40e3-570f-08de784d5cec
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:
	AM4PEPF00027A66.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6171

SGkgSmVucywNCg0KPiBPbiAyIE1hciAyMDI2LCBhdCAxMTowNiwgSmVucyBXaWtsYW5kZXIgPGpl
bnMud2lrbGFuZGVyQGxpbmFyby5vcmc+IHdyb3RlOg0KPiANCj4gSGkgQmVydHJhbmQsDQo+IA0K
PiBPbiBNb24sIE1hciAyLCAyMDI2IGF0IDk6NTjigK9BTSBCZXJ0cmFuZCBNYXJxdWlzDQo+IDxC
ZXJ0cmFuZC5NYXJxdWlzQGFybS5jb20+IHdyb3RlOg0KPj4gDQo+PiBIaSBKZW5zLA0KPj4gDQo+
Pj4gT24gMjcgRmViIDIwMjYsIGF0IDE1OjU2LCBKZW5zIFdpa2xhbmRlciA8amVucy53aWtsYW5k
ZXJAbGluYXJvLm9yZz4gd3JvdGU6DQo+Pj4gDQo+Pj4gSGkgQmVydHJhbmQsDQo+Pj4gDQo+Pj4g
T24gV2VkLCBGZWIgMjUsIDIwMjYgYXQgMTE6MDLigK9BTSBCZXJ0cmFuZCBNYXJxdWlzDQo+Pj4g
PGJlcnRyYW5kLm1hcnF1aXNAYXJtLmNvbT4gd3JvdGU6DQo+Pj4+IA0KPj4+PiBGRi1BIHYxLjIg
ZGVmaW5lcyBQQVJUSVRJT05fSU5GT19HRVRfUkVHUyBmb3IgcmVnaXN0ZXItYmFzZWQgcGFydGl0
aW9uDQo+Pj4+IGluZm8gcmV0cmlldmFsLCBidXQgWGVuIGN1cnJlbnRseSBvbmx5IHN1cHBvcnRz
IHRoZSBidWZmZXItYmFzZWQgR0VUDQo+Pj4+IHBhdGggZm9yIGd1ZXN0cy4NCj4+Pj4gDQo+Pj4+
IEltcGxlbWVudCBHRVRfUkVHUyB1c2luZyB0aGUgY2FjaGVkIFNQIGxpc3QgYW5kIFZNIGVudHJp
ZXMsIGluY2x1ZGluZw0KPj4+PiB0aGUgcmVnaXN0ZXIgd2luZG93IGxheW91dCBhbmQgaW5wdXQg
dmFsaWRhdGlvbi4gVHJhY2sgVk0gbGlzdCBjaGFuZ2VzDQo+Pj4+IHZpYSB0aGUgcGFydGluZm8g
dGFnIGFuZCB1c2UgaXQgdG8gdmFsaWRhdGUgR0VUX1JFR1MgdGFnIGlucHV0cy4gRW5zdXJlDQo+
Pj4+IHRoYXQgd2hlbiBhIG5vbi1OaWwgVVVJRCBpcyBzcGVjaWZpZWQsIHRoZSBVVUlEIGZpZWxk
cyBpbiBib3RoIEdFVCBhbmQNCj4+Pj4gR0VUX1JFR1MgcmVzdWx0cyBhcmUgTUJaIGFzIHJlcXVp
cmVkIGJ5IHRoZSBzcGVjaWZpY2F0aW9uLg0KPj4+PiANCj4+Pj4gUEFSVElUSU9OX0lORk9fR0VU
X1JFR1MgaXMgYXZhaWxhYmxlIHRvIHYxLjIgZ3Vlc3RzLCByZXR1cm5pbmcgY2FjaGVkIFNQDQo+
Pj4+IGVudHJpZXMgYW5kIFZNIGVudHJpZXMgd2l0aCBVVUlEcyB6ZXJvZWQgZm9yIG5vbi1OaWwg
VVVJRCBxdWVyaWVzLg0KPj4+PiANCj4+Pj4gU2lnbmVkLW9mZi1ieTogQmVydHJhbmQgTWFycXVp
cyA8YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPg0KPj4+PiAtLS0NCj4+Pj4geGVuL2FyY2gvYXJt
L3RlZS9mZmEuYyAgICAgICAgICB8ICAxNiArKysNCj4+Pj4geGVuL2FyY2gvYXJtL3RlZS9mZmFf
cGFydGluZm8uYyB8IDIxMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPj4+PiB4
ZW4vYXJjaC9hcm0vdGVlL2ZmYV9wcml2YXRlLmggIHwgICA0ICstDQo+Pj4+IDMgZmlsZXMgY2hh
bmdlZCwgMjMwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4+Pj4gDQo+Pj4+IGRpZmYg
LS1naXQgYS94ZW4vYXJjaC9hcm0vdGVlL2ZmYS5jIGIveGVuL2FyY2gvYXJtL3RlZS9mZmEuYw0K
Pj4+PiBpbmRleCBhYTQzYWUyNTk1ZDcuLmQ1NmViMjBjMjIzOSAxMDA2NDQNCj4+Pj4gLS0tIGEv
eGVuL2FyY2gvYXJtL3RlZS9mZmEuYw0KPj4+PiArKysgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYS5j
DQo+Pj4+IEBAIC00NCw2ICs0NCwxMSBAQA0KPj4+PiAqICAgLSBkb2Vzbid0IHN1cHBvcnQgc2ln
bmFsbGluZyB0aGUgc2Vjb25kYXJ5IHNjaGVkdWxlciBvZiBwZW5kaW5nDQo+Pj4+ICogICAgIG5v
dGlmaWNhdGlvbiBmb3Igc2VjdXJlIHBhcnRpdGlvbnMNCj4+Pj4gKiAgIC0gZG9lc24ndCBzdXBw
b3J0IG5vdGlmaWNhdGlvbnMgZm9yIFhlbiBpdHNlbGYNCj4+Pj4gKyAqIG8gRkZBX1BBUlRJVElP
Tl9JTkZPX0dFVC9HRVRfUkVHUzoNCj4+Pj4gKyAqICAgLSB2MS4wIGd1ZXN0cyBtYXkgc2VlIGR1
cGxpY2F0ZSBTUCBJRHMgd2hlbiBmaXJtd2FyZSBwcm92aWRlcyBVVUlEcw0KPj4+PiArICogICAt
IFNQIGxpc3QgaXMgY2FjaGVkIGF0IGluaXQ7IFNQTUMgdGFnIGNoYW5nZXMgYXJlIG5vdCB0cmFj
a2VkDQo+Pj4+ICsgKiAgICAgYmV0d2VlbiBjYWxscw0KPj4+PiArICogICAtIFNQIGxpc3QgaXMg
Y2FwcGVkIGF0IEZGQV9NQVhfTlVNX1NQIGVudHJpZXMNCj4+Pj4gKg0KPj4+PiAqIFRoZXJlIGFy
ZSBzb21lIGxhcmdlIGxvY2tlZCBzZWN0aW9ucyB3aXRoIGZmYV9zcG1jX3R4X2xvY2sgYW5kDQo+
Pj4+ICogZmZhX3NwbWNfcnhfbG9jay4gRXNwZWNpYWxseSB0aGUgZmZhX3NwbWNfdHhfbG9jayBz
cGlubG9jayB1c2VkDQo+Pj4+IEBAIC0xODgsNiArMTkzLDcgQEAgc3RhdGljIGJvb2wgZmZhX25l
Z290aWF0ZV92ZXJzaW9uKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPj4+PiAgICAgICAg
ICAgIHdyaXRlX2xvY2soJmZmYV9jdHhfbGlzdF9yd2xvY2spOw0KPj4+PiAgICAgICAgICAgIGxp
c3RfYWRkX3RhaWwoJmN0eC0+Y3R4X2xpc3QsICZmZmFfY3R4X2hlYWQpOw0KPj4+PiAgICAgICAg
ICAgIHdyaXRlX3VubG9jaygmZmZhX2N0eF9saXN0X3J3bG9jayk7DQo+Pj4+ICsgICAgICAgICAg
ICBmZmFfcGFydGluZm9faW5jX3RhZygpOw0KPj4+PiAgICAgICAgfQ0KPj4+PiANCj4+Pj4gICAg
ICAgIGdvdG8gb3V0X2NvbnRpbnVlOw0KPj4+PiBAQCAtMzQxLDYgKzM0NywxMiBAQCBzdGF0aWMg
dm9pZCBoYW5kbGVfZmVhdHVyZXMoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpDQo+Pj4+ICAg
IGNhc2UgRkZBX0ZFQVRVUkVfU0NIRURVTEVfUkVDVl9JTlRSOg0KPj4+PiAgICAgICAgZmZhX3Nl
dF9yZWdzX3N1Y2Nlc3MocmVncywgR1VFU1RfRkZBX1NDSEVEVUxFX1JFQ1ZfSU5UUl9JRCwgMCk7
DQo+Pj4+ICAgICAgICBicmVhazsNCj4+Pj4gKyAgICBjYXNlIEZGQV9QQVJUSVRJT05fSU5GT19H
RVRfUkVHUzoNCj4+Pj4gKyAgICAgICAgaWYgKCBBQ0NFU1NfT05DRShjdHgtPmd1ZXN0X3ZlcnMp
ID49IEZGQV9WRVJTSU9OXzFfMiApDQo+Pj4+ICsgICAgICAgICAgICBmZmFfc2V0X3JlZ3Nfc3Vj
Y2VzcyhyZWdzLCAwLCAwKTsNCj4+Pj4gKyAgICAgICAgZWxzZQ0KPj4+PiArICAgICAgICAgICAg
ZmZhX3NldF9yZWdzX2Vycm9yKHJlZ3MsIEZGQV9SRVRfTk9UX1NVUFBPUlRFRCk7DQo+Pj4+ICsg
ICAgICAgIGJyZWFrOw0KPj4+PiANCj4+Pj4gICAgY2FzZSBGRkFfTk9USUZJQ0FUSU9OX0JJTkQ6
DQo+Pj4+ICAgIGNhc2UgRkZBX05PVElGSUNBVElPTl9VTkJJTkQ6DQo+Pj4+IEBAIC00MDIsNiAr
NDE0LDkgQEAgc3RhdGljIGJvb2wgZmZhX2hhbmRsZV9jYWxsKHN0cnVjdCBjcHVfdXNlcl9yZWdz
ICpyZWdzKQ0KPj4+PiAgICBjYXNlIEZGQV9QQVJUSVRJT05fSU5GT19HRVQ6DQo+Pj4+ICAgICAg
ICBmZmFfaGFuZGxlX3BhcnRpdGlvbl9pbmZvX2dldChyZWdzKTsNCj4+Pj4gICAgICAgIHJldHVy
biB0cnVlOw0KPj4+PiArICAgIGNhc2UgRkZBX1BBUlRJVElPTl9JTkZPX0dFVF9SRUdTOg0KPj4+
PiArICAgICAgICBmZmFfaGFuZGxlX3BhcnRpdGlvbl9pbmZvX2dldF9yZWdzKHJlZ3MpOw0KPj4+
PiArICAgICAgICByZXR1cm4gdHJ1ZTsNCj4+Pj4gICAgY2FzZSBGRkFfUlhfUkVMRUFTRToNCj4+
Pj4gICAgICAgIGUgPSBmZmFfcnhfcmVsZWFzZShjdHgpOw0KPj4+PiAgICAgICAgYnJlYWs7DQo+
Pj4+IEBAIC02MjksNiArNjQ0LDcgQEAgc3RhdGljIGludCBmZmFfZG9tYWluX3RlYXJkb3duKHN0
cnVjdCBkb21haW4gKmQpDQo+Pj4+ICAgICAgICB3cml0ZV9sb2NrKCZmZmFfY3R4X2xpc3Rfcnds
b2NrKTsNCj4+Pj4gICAgICAgIGxpc3RfZGVsKCZjdHgtPmN0eF9saXN0KTsNCj4+Pj4gICAgICAg
IHdyaXRlX3VubG9jaygmZmZhX2N0eF9saXN0X3J3bG9jayk7DQo+Pj4+ICsgICAgICAgIGZmYV9w
YXJ0aW5mb19pbmNfdGFnKCk7DQo+Pj4+ICAgIH0NCj4+Pj4gDQo+Pj4+ICAgIGZmYV9yeHR4X2Rv
bWFpbl9kZXN0cm95KGQpOw0KPj4+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3RlZS9mZmFf
cGFydGluZm8uYyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhX3BhcnRpbmZvLmMNCj4+Pj4gaW5kZXgg
ZDdmOWI5ZjcxNTNjLi4xYzdiMzU3OWY3OTggMTAwNjQ0DQo+Pj4+IC0tLSBhL3hlbi9hcmNoL2Fy
bS90ZWUvZmZhX3BhcnRpbmZvLmMNCj4+Pj4gKysrIGIveGVuL2FyY2gvYXJtL3RlZS9mZmFfcGFy
dGluZm8uYw0KPj4+PiBAQCAtMjgsMTAgKzI4LDM5IEBAIHN0cnVjdCBmZmFfcGFydGl0aW9uX2lu
Zm9fMV8xIHsNCj4+Pj4gICAgdWludDhfdCB1dWlkWzE2XTsNCj4+Pj4gfTsNCj4+Pj4gDQo+Pj4+
ICsvKiBSZWdpc3RlcnMgYTMuLmExNyAoMTUgcmVncykgY2FycnkgcGFydGl0aW9uIGRlc2NyaXB0
b3JzLCAzIHJlZ3MgZWFjaC4gKi8NCj4+Pj4gKyNkZWZpbmUgRkZBX1BBUlRJTkZPX1JFR19NQVhf
RU5UUklFUyBcDQo+Pj4+ICsgICAgKCgxNSAqIHNpemVvZih1aW50NjRfdCkpIC8gc2l6ZW9mKHN0
cnVjdCBmZmFfcGFydGl0aW9uX2luZm9fMV8xKSkNCj4+Pj4gKw0KPj4+PiAvKiBTUCBsaXN0IGNh
Y2hlIChzZWN1cmUgZW5kcG9pbnRzIG9ubHkpOyBwb3B1bGF0ZWQgYXQgaW5pdC4gKi8NCj4+Pj4g
c3RhdGljIHZvaWQgKnNwX2xpc3QgX19yZWFkX21vc3RseTsNCj4+Pj4gc3RhdGljIHVpbnQzMl90
IHNwX2xpc3RfY291bnQgX19yZWFkX21vc3RseTsNCj4+Pj4gc3RhdGljIHVpbnQzMl90IHNwX2xp
c3RfZW50cnlfc2l6ZSBfX3JlYWRfbW9zdGx5Ow0KPj4+PiArDQo+Pj4+ICsvKiBTUCBsaXN0IGlz
IHN0YXRpYzsgdGFnIG9ubHkgbW92ZXMgd2hlbiBWTXMgYXJlIGFkZGVkL3JlbW92ZWQuICovDQo+
Pj4+ICtzdGF0aWMgYXRvbWljX3QgZmZhX3BhcnRpbmZvX3RhZyA9IEFUT01JQ19JTklUKDEpOw0K
Pj4+PiArDQo+Pj4+ICt2b2lkIGZmYV9wYXJ0aW5mb19pbmNfdGFnKHZvaWQpDQo+Pj4+ICt7DQo+
Pj4+ICsgICAgYXRvbWljX2luYygmZmZhX3BhcnRpbmZvX3RhZyk7DQo+Pj4gDQo+Pj4gRG8gd2Ug
bmVlZCB0byB3b3JyeSBhYm91dCB0aGlzIHZhbHVlIHdyYXBwaW5nPyBJcyB3cmFwcGluZyBwZXJt
aXR0ZWQ/DQo+PiANCj4+IHdyYXBwaW5nIGlzIHBlcm1pdHRlZCwgYXMgdGhlIGVuZCB0aGlzIHZh
bHVlIGlzIHVzZWQgdG8gZW5zdXJlIGNoYW5nZXMgaW4NCj4+IHRoZSBtaWRkbGUgb2YgaW5mb19n
ZXRfcmVncyBhcmUgZGV0ZWN0ZWQuIEhhdmluZyBlbm91Z2ggY2hhbmdlcyBpbiB0aGUNCj4+IG1p
ZGRsZSBmb3IgdGhpcyB0byB3cmFwIGFuZCBlbmQgdXAgdW4tZGV0ZWN0ZWQgYnkgdGhlIGNhbGxl
ciBpcyBuZWFyIHRvIGltcG9zc2libGUuDQo+PiBJbiBhbnkgY2FzZSwgdGhlIHN0YXR1cyB3ZSBy
ZXR1cm4gaXMgYSBzbmFwc2hvdCB3aGljaCBoYXZlIGNoYW5nZWQgYXMgc29vbiBhcw0KPj4gdGhl
IHJlc3VsdCBpcyByZXR1cm5lZCBzbyBpIHdvdWxkIGNvbnNpZGVyIHRoaXMgYSBiZXN0IGVmZm9y
dCAoZXZlbiBpZiB0aGUgcHJvYmFiaWxpdHkNCj4+IGZvciB0aGlzIHRvIGhhcHBlbiBpcyB2ZXJ5
IHZlcnkgbmVhciB0byAwKS4NCj4gDQo+IEknbSBzb3JyeSBmb3IgYmVpbmcgdW5jbGVhci4gYXRv
bWljX3QgaXMgaW1wbGVtZW50ZWQgYXMgc3RydWN0IHsgaW50DQo+IGNvdW50ZXI7IH0sIHdyYXBw
aW5nIHRoZSBjb3VudGVyIGVsZW1lbnQgaXMgdW5kZWZpbmVkIGJlaGF2aW91ci4gQnV0DQo+IGl0
IHdpbGwgdGFrZSBxdWl0ZSBzb21lIHRpbWUgYmVmb3JlIHdlIGdldCB0aGVyZSBhbmQgcGVyaGFw
cyB0aGUNCj4gYXNzZW1ibHkgaW1wbGVtZW50YXRpb24gb2YgYXRvbWljX2luYygpIGlzIGV4cGVj
dGVkIHRvIG1pdGlnYXRlIHRoZQ0KPiB1bmRlZmluZWQgYmVoYXZpb3VyIHBhcnQuDQoNCk9uIGFy
bSB0aGUgYXRvbWljIG9wZXJhdGlvbnMgYXJlIGltcGxlbWVudGVkIHVzaW5nIGFuZCBhc3NlbWJs
ZXIgYWRkIHdoaWNoDQppcyBub3QgdHlwZWQuDQpBdCB0aGUgZW5kIHdlIG1hc2sgdGhlIHZhbHVl
IHRvIHVzZSBvbmx5IDE1IGJpdHMgc28gd2Ugd2lsbCB3cmFwIGFyb3VuZCBtb3JlIG9mdGVuDQp0
aGFuIHRoZSBjb3VudGVyIGl0c2VsZi4NClNvIGkgZG8gbm90IHRoaW5rIHdlIGhhdmUgYW4gdW5k
ZWZpbmVkIGJlaGF2aW9yIGhlcmUuDQoNCj4gDQo+PiANCj4+PiANCj4+Pj4gK30NCj4+Pj4gKw0K
Pj4+PiArc3RhdGljIGlubGluZSB1aW50MTZfdCBmZmFfcGFydGluZm9fZ2V0X3RhZyh2b2lkKQ0K
Pj4+PiArew0KPj4+PiArICAgIC8qDQo+Pj4+ICsgICAgICogVGFnIG1vdmVzIHdpdGggVk0gbGlz
dCBjaGFuZ2VzIG9ubHkuDQo+Pj4+ICsgICAgICoNCj4+Pj4gKyAgICAgKiBMaW1pdGF0aW9uOiB3
ZSBjYW5ub3QgZGV0ZWN0IGFuIFNQTUMgdGFnIGNoYW5nZSBiZXR3ZWVuIGNhbGxzIGJlY2F1c2Ug
d2UNCj4+Pj4gKyAgICAgKiBkbyBub3QgcmV0YWluIHRoZSBwcmV2aW91cyBTUE1DIHRhZzsgd2Ug
b25seSByZWZyZXNoIGl0IHZpYSB0aGUgbWFuZGF0b3J5DQo+Pj4+ICsgICAgICogc3RhcnRfaW5k
ZXg9MCBjYWxsIGFuZCBhc3N1bWUgaXQgc3RheXMgc3RhYmxlIHdoaWxlIGNvbWJpbmVkX3RhZyAo
b3VyDQo+Pj4+ICsgICAgICogVk0vU1AtY291bnQgdGFnKSBpcyB1c2VkIGZvciBndWVzdCB2YWxp
ZGF0aW9uLiBUaGlzIG1lYW5zIFNQTUMgdGFnDQo+Pj4+ICsgICAgICogY2hhbmdlcyBhbG9uZSB3
aWxsIG5vdCB0cmlnZ2VyIFJFVFJZLg0KPj4+PiArICAgICAqLw0KPj4+PiArICAgIGlmICggSVNf
RU5BQkxFRChDT05GSUdfRkZBX1ZNX1RPX1ZNKSApDQo+Pj4+ICsgICAgICAgIHJldHVybiBhdG9t
aWNfcmVhZCgmZmZhX3BhcnRpbmZvX3RhZykgJiBHRU5NQVNLKDE1LCAwKTsNCj4+Pj4gKyAgICBl
bHNlDQo+Pj4+ICsgICAgICAgIHJldHVybiAxOw0KPj4+PiArfQ0KPj4+PiBzdGF0aWMgaW50MzJf
dCBmZmFfcGFydGl0aW9uX2luZm9fZ2V0KHN0cnVjdCBmZmFfdXVpZCB1dWlkLCB1aW50MzJfdCBm
bGFncywNCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90
ICpjb3VudCwgdWludDMyX3QgKmZwaV9zaXplKQ0KPj4+PiB7DQo+Pj4+IEBAIC0xMjUsNiArMTU0
LDcgQEAgc3RhdGljIGludDMyX3QgZmZhX2dldF9zcF9wYXJ0aW5mbyhzdHJ1Y3QgZmZhX3V1aWQg
dXVpZCwgdWludDMyX3QgKnNwX2NvdW50LA0KPj4+PiAgICBmb3IgKCBuID0gMDsgbiA8IHNwX2xp
c3RfY291bnQ7IG4rKyApDQo+Pj4+ICAgIHsNCj4+Pj4gICAgICAgIHZvaWQgKmVudHJ5ID0gc3Bf
bGlzdCArIG4gKiBzcF9saXN0X2VudHJ5X3NpemU7DQo+Pj4+ICsgICAgICAgIHZvaWQgKmRzdF9w
b3M7DQo+Pj4+IA0KPj4+PiAgICAgICAgaWYgKCAhZmZhX3NwX2VudHJ5X21hdGNoZXNfdXVpZChl
bnRyeSwgdXVpZCkgKQ0KPj4+PiAgICAgICAgICAgIGNvbnRpbnVlOw0KPj4+PiBAQCAtMTM2LDEx
ICsxNjYsMjAgQEAgc3RhdGljIGludDMyX3QgZmZhX2dldF9zcF9wYXJ0aW5mbyhzdHJ1Y3QgZmZh
X3V1aWQgdXVpZCwgdWludDMyX3QgKnNwX2NvdW50LA0KPj4+PiAgICAgICAgICogVGhpcyBpcyBh
IG5vbi1jb21wbGlhbmNlIHRvIHRoZSBzcGVjaWZpY2F0aW9uIGJ1dCAxLjAgVk1zIHNob3VsZA0K
Pj4+PiAgICAgICAgICogaGFuZGxlIHRoYXQgb24gdGhlaXIgb3duIHRvIHNpbXBsaWZ5IFhlbiBp
bXBsZW1lbnRhdGlvbi4NCj4+Pj4gICAgICAgICAqLw0KPj4+PiArICAgICAgICBkc3RfcG9zID0g
KmRzdF9idWY7DQo+Pj4+ICAgICAgICByZXQgPSBmZmFfY29weV9pbmZvKGRzdF9idWYsIGVuZF9i
dWYsIGVudHJ5LCBkc3Rfc2l6ZSwNCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Bf
bGlzdF9lbnRyeV9zaXplKTsNCj4+Pj4gICAgICAgIGlmICggcmV0ICkNCj4+Pj4gICAgICAgICAg
ICByZXR1cm4gcmV0Ow0KPj4+PiANCj4+Pj4gKyAgICAgICAgaWYgKCAhZmZhX3V1aWRfaXNfbmls
KHV1aWQpICYmDQo+Pj4+ICsgICAgICAgICAgICAgZHN0X3NpemUgPj0gc2l6ZW9mKHN0cnVjdCBm
ZmFfcGFydGl0aW9uX2luZm9fMV8xKSApDQo+Pj4+ICsgICAgICAgIHsNCj4+Pj4gKyAgICAgICAg
ICAgIHN0cnVjdCBmZmFfcGFydGl0aW9uX2luZm9fMV8xICpmcGkgPSBkc3RfcG9zOw0KPj4+PiAr
DQo+Pj4+ICsgICAgICAgICAgICBtZW1zZXQoZnBpLT51dWlkLCAwLCBzaXplb2YoZnBpLT51dWlk
KSk7DQo+Pj4+ICsgICAgICAgIH0NCj4+Pj4gKw0KPj4+PiAgICAgICAgY291bnQrKzsNCj4+Pj4g
ICAgfQ0KPj4+PiANCj4+Pj4gQEAgLTE1Miw2ICsxOTEsMzggQEAgc3RhdGljIGludDMyX3QgZmZh
X2dldF9zcF9wYXJ0aW5mbyhzdHJ1Y3QgZmZhX3V1aWQgdXVpZCwgdWludDMyX3QgKnNwX2NvdW50
LA0KPj4+PiAgICByZXR1cm4gRkZBX1JFVF9PSzsNCj4+Pj4gfQ0KPj4+PiANCj4+Pj4gK3N0YXRp
YyB1aW50MTZfdCBmZmFfZ2V0X3NwX3BhcnRpbmZvX3JlZ3Moc3RydWN0IGZmYV91dWlkIHV1aWQs
DQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQxNl90
IHN0YXJ0X2luZGV4LA0KPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1aW50NjRfdCAqb3V0X3JlZ3MsDQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVpbnQxNl90IG1heF9lbnRyaWVzKQ0KPj4+PiArew0KPj4+PiArICAg
IHVpbnQzMl90IGlkeCA9IDA7DQo+Pj4+ICsgICAgdWludDE2X3QgZmlsbGVkID0gMDsNCj4+Pj4g
KyAgICB1aW50MzJfdCBuOw0KPj4+PiArDQo+Pj4+ICsgICAgZm9yICggbiA9IDA7IG4gPCBzcF9s
aXN0X2NvdW50ICYmIGZpbGxlZCA8IG1heF9lbnRyaWVzOyBuKysgKQ0KPj4+PiArICAgIHsNCj4+
Pj4gKyAgICAgICAgdm9pZCAqZW50cnkgPSBzcF9saXN0ICsgbiAqIHNwX2xpc3RfZW50cnlfc2l6
ZTsNCj4+Pj4gKw0KPj4+PiArICAgICAgICBpZiAoICFmZmFfc3BfZW50cnlfbWF0Y2hlc191dWlk
KGVudHJ5LCB1dWlkKSApDQo+Pj4+ICsgICAgICAgICAgICBjb250aW51ZTsNCj4+Pj4gKw0KPj4+
PiArICAgICAgICBpZiAoIGlkeCsrIDwgc3RhcnRfaW5kZXggKQ0KPj4+PiArICAgICAgICAgICAg
Y29udGludWU7DQo+Pj4+ICsNCj4+Pj4gKyAgICAgICAgbWVtY3B5KCZvdXRfcmVnc1tmaWxsZWQg
KiAzXSwgZW50cnksDQo+Pj4+ICsgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IGZmYV9wYXJ0
aXRpb25faW5mb18xXzEpKTsNCj4+Pj4gKyAgICAgICAgaWYgKCAhZmZhX3V1aWRfaXNfbmlsKHV1
aWQpICkNCj4+Pj4gKyAgICAgICAgew0KPj4+PiArICAgICAgICAgICAgb3V0X3JlZ3NbZmlsbGVk
ICogMyArIDFdID0gMDsNCj4+Pj4gKyAgICAgICAgICAgIG91dF9yZWdzW2ZpbGxlZCAqIDMgKyAy
XSA9IDA7DQo+Pj4+ICsgICAgICAgIH0NCj4+Pj4gKyAgICAgICAgZmlsbGVkKys7DQo+Pj4+ICsg
ICAgfQ0KPj4+PiArDQo+Pj4+ICsgICAgcmV0dXJuIGZpbGxlZDsNCj4+Pj4gK30NCj4+Pj4gKw0K
Pj4+PiBzdGF0aWMgaW50MzJfdCBmZmFfZ2V0X3ZtX3BhcnRpbmZvKHN0cnVjdCBmZmFfdXVpZCB1
dWlkLCB1aW50MzJfdCBzdGFydF9pbmRleCwNCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVpbnQzMl90ICp2bV9jb3VudCwgdm9pZCAqKmRzdF9idWYsDQo+Pj4+ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICplbmRfYnVmLCB1aW50MzJfdCBkc3Rf
c2l6ZSkNCj4+Pj4gQEAgLTM2OCw2ICs0MzksMTQ2IEBAIG91dDoNCj4+Pj4gICAgfQ0KPj4+PiB9
DQo+Pj4+IA0KPj4+PiArdm9pZCBmZmFfaGFuZGxlX3BhcnRpdGlvbl9pbmZvX2dldF9yZWdzKHN0
cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPj4+PiArew0KPj4+PiArICAgIHN0cnVjdCBkb21h
aW4gKmQgPSBjdXJyZW50LT5kb21haW47DQo+Pj4+ICsgICAgc3RydWN0IGZmYV9jdHggKmN0eCA9
IGQtPmFyY2gudGVlOw0KPj4+PiArICAgIHN0cnVjdCBmZmFfdXVpZCB1dWlkOw0KPj4+PiArICAg
IHVpbnQzMl90IHNwX2NvdW50ID0gMCwgdm1fY291bnQgPSAwLCB0b3RhbF9jb3VudDsNCj4+Pj4g
KyAgICB1aW50MTZfdCBzdGFydF9pbmRleCwgdGFnOw0KPj4+PiArICAgIHVpbnQxNl90IG51bV9l
bnRyaWVzID0gMDsNCj4+Pj4gKyAgICB1aW50NjRfdCB4MyA9IGdldF91c2VyX3JlZyhyZWdzLCAz
KTsNCj4+Pj4gKyAgICBpbnQzMl90IHJldCA9IEZGQV9SRVRfT0s7DQo+Pj4+ICsgICAgdWludDY0
X3Qgb3V0X3JlZ3NbMThdID0geyAwIH07DQo+Pj4+ICsgICAgdW5zaWduZWQgaW50IG47DQo+Pj4+
ICsgICAgdWludDE2X3QgdGFnX291dDsNCj4+Pj4gKw0KPj4+PiArICAgIGlmICggQUNDRVNTX09O
Q0UoY3R4LT5ndWVzdF92ZXJzKSA8IEZGQV9WRVJTSU9OXzFfMiApDQo+Pj4+ICsgICAgew0KPj4+
PiArICAgICAgICByZXQgPSBGRkFfUkVUX05PVF9TVVBQT1JURUQ7DQo+Pj4+ICsgICAgICAgIGdv
dG8gb3V0Ow0KPj4+PiArICAgIH0NCj4+Pj4gKw0KPj4+PiArICAgIC8qDQo+Pj4+ICsgICAgICog
UmVnaXN0ZXJzIGEzLi5hMTcgKDE1IHJlZ3MpIGNhcnJ5IHBhcnRpdGlvbiBkZXNjcmlwdG9ycywg
MyByZWdzIGVhY2guDQo+Pj4+ICsgICAgICogRm9yIEZGLUEgMS4yLCB0aGF0IHlpZWxkcyBhIG1h
eGltdW0gb2YgNSBlbnRyaWVzIHBlciBHRVRfUkVHUyBjYWxsLg0KPj4+PiArICAgICAqIEVuZm9y
Y2UgdGhlIGFzc3VtZWQgbGF5b3V0IHNvIHdpbmRvdyBzaXppbmcgc3RheXMgY29ycmVjdC4NCj4+
Pj4gKyAgICAgKi8NCj4+Pj4gKyAgICBCVUlMRF9CVUdfT04oRkZBX1BBUlRJTkZPX1JFR19NQVhf
RU5UUklFUyAhPSA1KTsNCj4+Pj4gKw0KPj4+PiArICAgIGZvciAoIG4gPSA0OyBuIDw9IDE3OyBu
KysgKQ0KPj4+PiArICAgIHsNCj4+Pj4gKyAgICAgICAgaWYgKCBnZXRfdXNlcl9yZWcocmVncywg
bikgKQ0KPj4+PiArICAgICAgICB7DQo+Pj4gDQo+Pj4geDQteDE3IGFyZSBTQlosIHNvIEkgdGhp
bmsgd2Ugc2hvdWxkIG9ubHkgaWdub3JlIHRoZW0uDQo+PiANCj4+IEFjaywgdGhpcyB3YXMgYWRk
ZWQgdG8gc2F0aXNmeSB0aGUgY29tcGxpYW5jZSBzdWl0ZSBidXQgdGhpcw0KPj4gaGFzIGJlZW4g
c29sdmVkIHNpbmNlLiBJIHdpbGwgcmVtb3ZlLg0KPj4gDQo+Pj4gDQo+Pj4+ICsgICAgICAgICAg
ICByZXQgPSBGRkFfUkVUX0lOVkFMSURfUEFSQU1FVEVSUzsNCj4+Pj4gKyAgICAgICAgICAgIGdv
dG8gb3V0Ow0KPj4+PiArICAgICAgICB9DQo+Pj4+ICsgICAgfQ0KPj4+PiArDQo+Pj4+ICsgICAg
aWYgKCB4MyA+PiAzMiApDQo+Pj4gDQo+Pj4gU2FtZSBoZXJlOiBCaXRzWzYzOjMyXSBhcmUgU0Ja
Lg0KPj4gDQo+PiBTYW1lIGhlcmUuDQo+PiANCj4+PiANCj4+Pj4gKyAgICB7DQo+Pj4+ICsgICAg
ICAgIHJldCA9IEZGQV9SRVRfSU5WQUxJRF9QQVJBTUVURVJTOw0KPj4+PiArICAgICAgICBnb3Rv
IG91dDsNCj4+Pj4gKyAgICB9DQo+Pj4+ICsNCj4+Pj4gKyAgICBzdGFydF9pbmRleCA9IHgzICYg
R0VOTUFTSygxNSwgMCk7DQo+Pj4+ICsgICAgdGFnID0gKHgzID4+IDE2KSAmIEdFTk1BU0soMTUs
IDApOw0KPj4+PiArDQo+Pj4+ICsgICAgLyogU3RhcnQgaW5kZXggbXVzdCBhbGxvdyByb29tIGZv
ciB1cCB0byA1IGVudHJpZXMgd2l0aG91dCAxNi1iaXQgb3ZlcmZsb3cuICovDQo+Pj4+ICsgICAg
aWYgKCBzdGFydF9pbmRleCA+IChHRU5NQVNLKDE1LCAwKSAtIChGRkFfUEFSVElORk9fUkVHX01B
WF9FTlRSSUVTIC0gMSkpICkNCj4+Pj4gKyAgICB7DQo+Pj4+ICsgICAgICAgIHJldCA9IEZGQV9S
RVRfSU5WQUxJRF9QQVJBTUVURVJTOw0KPj4+PiArICAgICAgICBnb3RvIG91dDsNCj4+Pj4gKyAg
ICB9DQo+Pj4+ICsNCj4+Pj4gKyAgICB1dWlkLnZhbFswXSA9IGdldF91c2VyX3JlZyhyZWdzLCAx
KTsNCj4+Pj4gKyAgICB1dWlkLnZhbFsxXSA9IGdldF91c2VyX3JlZyhyZWdzLCAyKTsNCj4+Pj4g
Kw0KPj4+PiArICAgIGlmICggc3BfbGlzdF9jb3VudCAmJg0KPj4+PiArICAgICAgICAgc3BfbGlz
dF9lbnRyeV9zaXplICE9IHNpemVvZihzdHJ1Y3QgZmZhX3BhcnRpdGlvbl9pbmZvXzFfMSkgKQ0K
Pj4+PiArICAgIHsNCj4+Pj4gKyAgICAgICAgcmV0ID0gRkZBX1JFVF9OT1RfU1VQUE9SVEVEOw0K
Pj4+IA0KPj4+IFRoaXMgY2FuJ3QgaGFwcGVuLiBCdXQgSSBndWVzcyBhIHNwX2xpc3RfZW50cnlf
c2l6ZSA+IHNpemVvZihzdHJ1Y3QNCj4+PiBmZmFfcGFydGl0aW9uX2luZm9fMV8xKSBtaWdodCBi
ZSBzdXBwb3J0ZWQgdG8gYmUgZnV0dXJlIHByb29mLg0KPj4gDQo+PiBSaWdodCBub3cgd2UgaGF2
ZSBGRkFfUEFSVElORk9fUkVHX01BWF9FTlRSSUVTIGVuZm9yY2luZyB0aGUNCj4+IHN0cnVjdHVy
ZSB0byBiZSAxLjEgc2l6ZS4gSWYgdGhpcyBpcyBub3QgdHJ1ZSBpbiB0aGUgZnV0dXJlIHdlIHdp
bGwgaGF2ZSB0byBtb2RpZnkNCj4+IHRoaXMuDQo+PiANCj4+IFRoaXMgaXMgbm90IHJlYWxseSBm
dXR1cmUgcHJvb2YgYW5kIGkgd2lsbCBjaGVjayBpZiBpIGNhbiByZXdvcmsgdGhpcy4NCj4+IA0K
Pj4+IA0KPj4+PiArICAgICAgICBnb3RvIG91dDsNCj4+Pj4gKyAgICB9DQo+Pj4+ICsNCj4+Pj4g
KyAgICB0YWdfb3V0ID0gZmZhX3BhcnRpbmZvX2dldF90YWcoKTsNCj4+Pj4gKw0KPj4+PiArICAg
IGlmICggc3RhcnRfaW5kZXggPT0gMCApDQo+Pj4+ICsgICAgew0KPj4+PiArICAgICAgICBpZiAo
IHRhZyApDQo+Pj4+ICsgICAgICAgIHsNCj4+Pj4gKyAgICAgICAgICAgIHJldCA9IEZGQV9SRVRf
SU5WQUxJRF9QQVJBTUVURVJTOw0KPj4+PiArICAgICAgICAgICAgZ290byBvdXQ7DQo+Pj4+ICsg
ICAgICAgIH0NCj4+Pj4gKyAgICB9DQo+Pj4+ICsgICAgZWxzZSBpZiAoIHRhZyAhPSB0YWdfb3V0
ICkNCj4+Pj4gKyAgICB7DQo+Pj4+ICsgICAgICAgIHJldCA9IEZGQV9SRVRfUkVUUlk7DQo+Pj4+
ICsgICAgICAgIGdvdG8gb3V0Ow0KPj4+PiArICAgIH0NCj4+Pj4gKw0KPj4+PiArICAgIGlmICgg
ZmZhX3V1aWRfaXNfbmlsKHV1aWQpICkNCj4+Pj4gKyAgICB7DQo+Pj4+ICsgICAgICAgIGlmICgg
SVNfRU5BQkxFRChDT05GSUdfRkZBX1ZNX1RPX1ZNKSApDQo+Pj4+ICsgICAgICAgICAgICB2bV9j
b3VudCA9IGdldF9mZmFfdm1fY291bnQoKTsNCj4+Pj4gKyAgICAgICAgZWxzZQ0KPj4+PiArICAg
ICAgICAgICAgdm1fY291bnQgPSAxOyAvKiBDYWxsZXIgVk0gb25seSAqLw0KPj4+PiArICAgIH0N
Cj4+Pj4gKw0KPj4+PiArICAgIHJldCA9IGZmYV9nZXRfc3BfY291bnQodXVpZCwgJnNwX2NvdW50
KTsNCj4+Pj4gKyAgICBpZiAoIHJldCApDQo+Pj4+ICsgICAgICAgIGdvdG8gb3V0Ow0KPj4+PiAr
DQo+Pj4+ICsgICAgdG90YWxfY291bnQgPSBzcF9jb3VudCArIHZtX2NvdW50Ow0KPj4+PiArDQo+
Pj4+ICsgICAgaWYgKCB0b3RhbF9jb3VudCA9PSAwIHx8IHN0YXJ0X2luZGV4ID49IHRvdGFsX2Nv
dW50ICkNCj4+Pj4gKyAgICB7DQo+Pj4+ICsgICAgICAgIHJldCA9IEZGQV9SRVRfSU5WQUxJRF9Q
QVJBTUVURVJTOw0KPj4+PiArICAgICAgICBnb3RvIG91dDsNCj4+Pj4gKyAgICB9DQo+Pj4+ICsN
Cj4+Pj4gKyAgICBpZiAoIHN0YXJ0X2luZGV4IDwgc3BfY291bnQgKQ0KPj4+PiArICAgICAgICBu
dW1fZW50cmllcyA9IGZmYV9nZXRfc3BfcGFydGluZm9fcmVncyh1dWlkLCBzdGFydF9pbmRleCwg
Jm91dF9yZWdzWzNdLA0KPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBGRkFfUEFSVElORk9fUkVHX01BWF9FTlRSSUVTKTsNCj4+Pj4gKw0KPj4+PiAr
ICAgIGlmICggbnVtX2VudHJpZXMgPCBGRkFfUEFSVElORk9fUkVHX01BWF9FTlRSSUVTICkNCj4+
Pj4gKyAgICB7DQo+Pj4+ICsgICAgICAgIHVpbnQzMl90IHZtX3N0YXJ0ID0gc3RhcnRfaW5kZXgg
PiBzcF9jb3VudCA/DQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfaW5k
ZXggLSBzcF9jb3VudCA6IDA7DQo+Pj4+ICsgICAgICAgIHVpbnQzMl90IGZpbGxlZCA9IDA7DQo+
Pj4+ICsgICAgICAgIHZvaWQgKnZtX2RzdCA9ICZvdXRfcmVnc1szICsgbnVtX2VudHJpZXMgKiAz
XTsNCj4+Pj4gKyAgICAgICAgdm9pZCAqdm1fZW5kID0gJm91dF9yZWdzWzE4XTsNCj4+Pj4gKw0K
Pj4+PiArICAgICAgICByZXQgPSBmZmFfZ2V0X3ZtX3BhcnRpbmZvKHV1aWQsIHZtX3N0YXJ0LCAm
ZmlsbGVkLCAmdm1fZHN0LCB2bV9lbmQsDQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2l6ZW9mKHN0cnVjdCBmZmFfcGFydGl0aW9uX2luZm9fMV8xKSk7DQo+Pj4+ICsg
ICAgICAgIGlmICggcmV0ICE9IEZGQV9SRVRfT0sgJiYgcmV0ICE9IEZGQV9SRVRfTk9fTUVNT1JZ
ICkNCj4+Pj4gKyAgICAgICAgICAgIGdvdG8gb3V0Ow0KPj4+PiArDQo+Pj4+ICsgICAgICAgIG51
bV9lbnRyaWVzICs9IGZpbGxlZDsNCj4+Pj4gKyAgICB9DQo+Pj4+ICsNCj4+Pj4gKyAgICBpZiAo
IG51bV9lbnRyaWVzID09IDAgKQ0KPj4+PiArICAgIHsNCj4+Pj4gKyAgICAgICAgcmV0ID0gRkZB
X1JFVF9JTlZBTElEX1BBUkFNRVRFUlM7DQo+Pj4+ICsgICAgICAgIGdvdG8gb3V0Ow0KPj4+PiAr
ICAgIH0NCj4+Pj4gKw0KPj4+IA0KPj4+IFdoYXQgaWYgdGhlIHRhZyByZWFkIHdpdGggZmZhX3Bh
cnRpbmZvX2dldF90YWcoKSBoYXMgY2hhbmdlZD8NCj4+IA0KPj4gQXMgc2FpZCB0aGlzIGlzIGEg
YmVzdCBlZmZvcnQsIHdlIHByb3ZpZGUgYSBzbmFwc2hvdC4NCj4+IE5vdyBpIGNvdWxkIGNoZWNr
IGFuZCBjb21wYXJlIHRoZSB0YWcgYXQgdGhlIGVuZCB0byBoYW5kbGUgdGhpcyBjYXNlLg0KPj4g
DQo+PiBJIHdpbGwgY2hlY2sgaWYgaSBjYW4gbWFrZSB0aGlzIGEgYml0IHN0cm9uZ2VyIGJ5IGNv
bXBhcmluZyB0aGUgdGFnIGF0IHRoZQ0KPj4gYmVnaW5uaW5nIGFuZCB0aGUgZW5kIG9yIHRyeSB0
byBoYW5kbGUgaXQgZGlmZmVyZW50bHkgKGdldCBpdHMgdmFsdWUgd2hpbGUgd2UNCj4+IGhhdmUg
dGhlIHJ3bG9jayBvbiB0aGUgbGlzdCBvZiBWTXMgbWF5YmUpLg0KPiANCj4gQ2hlY2tpbmcgdGhl
IHRhZyBhdCB0aGUgZW5kIHRvIGxldCB0aGUgY2FsbGVyIHJldHJ5IG1pZ2h0IGJlIGVub3VnaC4N
Cg0KaSB3aWxsIGdpdmUgdGhhdCBhIHRyeSBpbiB2Mi4NCg0KVGhhbmtzIGEgbG90IGZvciB0aGUg
cmV2aWV3Lg0KSSB3aWxsIHRyeSB0byBwdXNoIHYyIGJlZm9yZSB0aGUgZW5kIG9mIHRoZSB3ZWVr
IGlmIG5vdCBzb29uZXIuDQoNCkNoZWVycw0KQmVydHJhbmQNCg0KPiANCj4gQ2hlZXJzLA0KPiBK
ZW5zDQo+IA0KPj4gDQo+PiBDaGVlcnMNCj4+IEJlcnRyYW5kDQo+PiANCj4+PiANCj4+PiBDaGVl
cnMsDQo+Pj4gSmVucw0KPj4+IA0KPj4+PiArICAgIG91dF9yZWdzWzBdID0gRkZBX1NVQ0NFU1Nf
NjQ7DQo+Pj4+ICsgICAgb3V0X3JlZ3NbMl0gPSAoKHVpbnQ2NF90KXNpemVvZihzdHJ1Y3QgZmZh
X3BhcnRpdGlvbl9pbmZvXzFfMSkgPDwgNDgpIHwNCj4+Pj4gKyAgICAgICAgICAgICAgICAgICgo
dWludDY0X3QpdGFnX291dCA8PCAzMikgfA0KPj4+PiArICAgICAgICAgICAgICAgICAgKCh1aW50
NjRfdCkoc3RhcnRfaW5kZXggKyBudW1fZW50cmllcyAtIDEpIDw8IDE2KSB8DQo+Pj4+ICsgICAg
ICAgICAgICAgICAgICAoKHVpbnQ2NF90KSh0b3RhbF9jb3VudCAtIDEpICYgR0VOTUFTSygxNSwg
MCkpOw0KPj4+PiArDQo+Pj4+ICsgICAgZm9yICggbiA9IDA7IG4gPCBBUlJBWV9TSVpFKG91dF9y
ZWdzKTsgbisrICkNCj4+Pj4gKyAgICAgICAgc2V0X3VzZXJfcmVnKHJlZ3MsIG4sIG91dF9yZWdz
W25dKTsNCj4+Pj4gKw0KPj4+PiArICAgIHJldHVybjsNCj4+Pj4gKw0KPj4+PiArb3V0Og0KPj4+
PiArICAgIGlmICggcmV0ICkNCj4+Pj4gKyAgICAgICAgZmZhX3NldF9yZWdzX2Vycm9yKHJlZ3Ms
IHJldCk7DQo+Pj4+ICt9DQo+Pj4+ICsNCj4+Pj4gc3RhdGljIGludDMyX3QgZmZhX2RpcmVjdF9y
ZXFfc2VuZF92bSh1aW50MTZfdCBzcF9pZCwgdWludDE2X3Qgdm1faWQsDQo+Pj4+ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IG1zZykNCj4+Pj4gew0KPj4+PiBk
aWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3RlZS9mZmFfcHJpdmF0ZS5oIGIveGVuL2FyY2gvYXJt
L3RlZS9mZmFfcHJpdmF0ZS5oDQo+Pj4+IGluZGV4IDFhNjMyOTgzYzg2MC4uYzI5MWYzMmI1NmZm
IDEwMDY0NA0KPj4+PiAtLS0gYS94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9wcml2YXRlLmgNCj4+Pj4g
KysrIGIveGVuL2FyY2gvYXJtL3RlZS9mZmFfcHJpdmF0ZS5oDQo+Pj4+IEBAIC0yODksNyArMjg5
LDcgQEANCj4+Pj4gI2RlZmluZSBGRkFfTVNHX1NFTkQyICAgICAgICAgICAgICAgICAgIDB4ODQw
MDAwODZVDQo+Pj4+ICNkZWZpbmUgRkZBX0NPTlNPTEVfTE9HXzMyICAgICAgICAgICAgICAweDg0
MDAwMDhBVQ0KPj4+PiAjZGVmaW5lIEZGQV9DT05TT0xFX0xPR182NCAgICAgICAgICAgICAgMHhD
NDAwMDA4QVUNCj4+Pj4gLSNkZWZpbmUgRkZBX1BBUlRJVElPTl9JTkZPX0dFVF9SRUdTICAgICAw
eDg0MDAwMDhCVQ0KPj4+PiArI2RlZmluZSBGRkFfUEFSVElUSU9OX0lORk9fR0VUX1JFR1MgICAg
IDB4QzQwMDAwOEJVDQo+Pj4+ICNkZWZpbmUgRkZBX01TR19TRU5EX0RJUkVDVF9SRVEyICAgICAg
ICAweEM0MDAwMDhEVQ0KPj4+PiAjZGVmaW5lIEZGQV9NU0dfU0VORF9ESVJFQ1RfUkVTUDIgICAg
ICAgMHhDNDAwMDA4RVUNCj4+Pj4gDQo+Pj4+IEBAIC00NTIsNiArNDUyLDggQEAgYm9vbCBmZmFf
cGFydGluZm9faW5pdCh2b2lkKTsNCj4+Pj4gaW50MzJfdCBmZmFfcGFydGluZm9fZG9tYWluX2lu
aXQoc3RydWN0IGRvbWFpbiAqZCk7DQo+Pj4+IGJvb2wgZmZhX3BhcnRpbmZvX2RvbWFpbl9kZXN0
cm95KHN0cnVjdCBkb21haW4gKmQpOw0KPj4+PiB2b2lkIGZmYV9oYW5kbGVfcGFydGl0aW9uX2lu
Zm9fZ2V0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKTsNCj4+Pj4gK3ZvaWQgZmZhX2hhbmRs
ZV9wYXJ0aXRpb25faW5mb19nZXRfcmVncyhzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncyk7DQo+
Pj4+ICt2b2lkIGZmYV9wYXJ0aW5mb19pbmNfdGFnKHZvaWQpOw0KPj4+PiANCj4+Pj4gaW50MzJf
dCBmZmFfZW5kcG9pbnRfZG9tYWluX2xvb2t1cCh1aW50MTZfdCBlbmRwb2ludF9pZCwgc3RydWN0
IGRvbWFpbiAqKmRfb3V0LA0KPj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RydWN0IGZmYV9jdHggKipjdHhfb3V0KTsNCj4+Pj4gLS0NCj4+Pj4gMi41Mi4wDQoNCg0K


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 11:19:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 11:19:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244163.1543623 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx1It-0005dj-0F; Mon, 02 Mar 2026 11:19:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244163.1543623; Mon, 02 Mar 2026 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 1vx1Is-0005da-Td; Mon, 02 Mar 2026 11:19:10 +0000
Received: by outflank-mailman (input) for mailman id 1244163;
 Mon, 02 Mar 2026 11:19: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=cp9A=BC=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vx1Is-00056V-2K
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 11:19:10 +0000
Received: from fout-a3-smtp.messagingengine.com
 (fout-a3-smtp.messagingengine.com [103.168.172.146])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a181654d-1629-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 12:19:09 +0100 (CET)
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
 by mailfout.phl.internal (Postfix) with ESMTP id D07FEEC0572;
 Mon,  2 Mar 2026 06:19:07 -0500 (EST)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-03.internal (MEProxy); Mon, 02 Mar 2026 06:19:07 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 2 Mar 2026 06:19:06 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a181654d-1629-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm3; t=1772450347;
	 x=1772536747; bh=bY05i/GjZaw5/I4RKcGeiDPQv4mupjxmU/TsxnBo4pg=; b=
	FAViYZk7P8cQ5QKQj5oTiJqlHbUBrgabRd2dqSXJWnGT+3G6sm23c8bZBmB4FUoZ
	5NJaPVUZ4lBZERUFgbS0Qw9/xhEASUEpaR2eUtOtkyrlc9BsaDU9aXN91OoLQFXU
	0ZUPFM+2gEGHJ6L/YhhhieLTIEFyCw6XYmBZeCj43/D6UlpwhKsq4wDfNL6n1ugT
	MMWTGVkD6D4pcJRn/lJUdIvHnG83OFkmcMcPS/JtLEmUJfcrXjiU1bjbzmU+bCqE
	Ql7gRUiSJL/qBSL+offf65xVdDgqtyPN5X8g+AAss9gUhBhkfF4m+ao+XPTBNvYN
	hy46qXtzdk/EwI41jznchw==
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=
	1772450347; x=1772536747; bh=bY05i/GjZaw5/I4RKcGeiDPQv4mupjxmU/T
	sxnBo4pg=; b=zROQEehHXc0vtPL8x5aYaOHzP2+SbHMvp3iLw3IvbcwvMTViksk
	BqRjwJgp6SXgVVqcRC1LK9LNpK8/GcbalaSXWZQeZi7J/Pg5Ge481kb7HH6k0Otb
	ee6lwETcmzT8tuFi9EBBr6lKE1+b4CmW0AZYUjQpZ/6ldlrVh6QNdGw5rhlWhzNG
	MBbmt2fHFSTBLIa7MABh1Xux7nNunTJ6/JdKb62m1IzQYPIxdCLi1bhFhZDpjcwb
	4Tcf0uCwr9wV49+63wuN2Yz7FafZRl2tUSWYQgIvaFnjDidjDmOq2Z21M1OlHhXd
	JF296+BxBQmeKn/YVvCoyYZUurKkQFC637Q==
X-ME-Sender: <xms:K3KlaRND_q9jjg7rxcn822HnhgzVR2BeWb4fLcy_FmWPrQ4DKqnTrw>
    <xme:K3Klabsk1Jfu5fAg9Z3pMUoqxosmkIUO1BXJfz54YztplX_EbAp2SFCza9tigs_hk
    I1rCetCtUEc3rJ6WB74u3jCT042NMMRRtwiK8tEMxzwPfrIjw>
X-ME-Received: <xmr:K3KlaTUhGa-8Vjp4u_Ch5NGQIx3VYJs0U8BKvyrIOQOytxbfXWj0tZ_oXw_6ohBJid3Em1HBk-l_Zit9ztC20__mgmCTc43XfgI>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvheejheefucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnheptdehvedt
    ffeggeffgeetieevfeelvdfhjeekvdfhgfffvedvuedviedugefguedvnecuffhomhgrih
    hnpehgihhthhhusgdrtghomhdpqhhusggvshdqohhsrdhorhhgnecuvehluhhsthgvrhfu
    ihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepfedpmhhouggv
    pehsmhhtphhouhhtpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtoh
    hmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtght
    rdhorhhgpdhrtghpthhtohepihhnthgvlhdqgigvsehlihhsthhsrdhfrhgvvgguvghskh
    htohhprdhorhhg
X-ME-Proxy: <xmx:K3KlabtC9r6FGdQFhTcKbTOFE3Ce7o4HgUvWiojRMl9F4QzQ1OhxXg>
    <xmx:K3KlaXV1Bavo4iOEeUPVy9mj3pe7DkrLBU_1p9DKc4wAp0fmQ5ZbLw>
    <xmx:K3KlaWnh5NmCo_jhLAS1P2slfTKRkNFz0pxKBpF9aqju2SsV62iq8A>
    <xmx:K3KlaYZdrrEBGIaYSvM5dXmTjbFLYMj3U2-nZjBV7Mm6AAN2Vs9MdQ>
    <xmx:K3Klabz6ExESttmkQasThpbzfLp3hC3w0cZUz65ScP6V4LezttAf-y85>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 2 Mar 2026 12:19:04 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	intel-xe@lists.freedesktop.org
Subject: Re: Graphical glitches (not refreshing?) with Linux's xe driver +
 Xen 4.19
Message-ID: <aaVyKFaCSuhJufW2@mail-itl>
References: <aYtznP_tT6xNPwf-@mail-itl>
 <aY3ttvtxGCPTNgsj@Mac.lan>
 <aY58-gyarcVoBS2a@mail-itl>
 <aZ3KoSlIzru0Uumu@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="zu0C4HM+umfEjDpa"
Content-Disposition: inline
In-Reply-To: <aZ3KoSlIzru0Uumu@mail-itl>


--zu0C4HM+umfEjDpa
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 2 Mar 2026 12:19:04 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	intel-xe@lists.freedesktop.org
Subject: Re: Graphical glitches (not refreshing?) with Linux's xe driver +
 Xen 4.19

On Tue, Feb 24, 2026 at 04:58:25PM +0100, Marek Marczykowski-G=C3=B3recki w=
rote:
> On Fri, Feb 13, 2026 at 02:23:06AM +0100, Marek Marczykowski-G=C3=B3recki=
 wrote:
> > On Thu, Feb 12, 2026 at 04:11:50PM +0100, Roger Pau Monn=C3=A9 wrote:
> > > On Tue, Feb 10, 2026 at 07:06:20PM +0100, Marek Marczykowski-G=C3=B3r=
ecki wrote:
> > > > Hi,
> > > >=20
> > > > Recently I started testing compatibility with Intel Lunar Lake. Thi=
s is
> > > > the first one that uses "xe" instead of "i915" Linux driver for iGP=
U.
> > > > I test it with Qubes OS 4.3, which uses Xen 4.19.4 and PV dom0 runn=
ing
> > > > Linux 6.17.9 in this test.
> > >=20
> > > Not sure it's going to help a lot, but does using a PVH dom0 make any
> > > difference?
> >=20
> > Ok, now with the correct Xen version, it's better with PVH dom0. At
> > least on the login screen and few applications (from both dom0 and domU)
> > I don't see the glitches anymore. I can't do a full test, because PCI
> > passthrough doesn't seem to work with PVH dom0 on Xen 4.19 - and I need
> > it to start most VMs.
> >=20
> > So, if the above test is representative, it's only about PV dom0.
>=20
> Some further observations:
>=20
> 1. My initial impression that Xen 4.17.6 is not affected is false.
> Apparently I got lucky and didn't waited long enough for glitches to
> appear. Unfortunately this means I have no way to bisect this...
>=20
> 1a. Updated test procedure - either:
>   - start Qubes OS in full (including default system domUs) and try to
>     open an app in one of them (for example file manager or pdf viewer)
>   - start Linux up to lightdm login page, log in, log out, click on a
>     few lightdm menus (session type selector, poewroff menu etc)
>=20
> The second version works even if toolstack version in dom0 doesn't match
> Xen version. If no glitches are observed after doing either of those
> procedures, assume it's good.
>=20
> 2. Xen staging is affected too. As well as Xen staging-4.19 without
> any qubes patches.
>=20
> 3. After enabling CONFIG_DEBUG in Xen, the xe.ko fails to load firmware:
>=20
>     xe 0000:00:02.0: [drm] Tile0: GT0: Using GuC firmware from xe/lnl_guc=
_70.bin version 70.53.0
>     xe 0000:00:02.0: [drm] *ERROR* Tile0: GT0: load failed: status =3D 0x=
40000056, time =3D 0ms, freq =3D 1850MHz (req 1850MHz), done =3D -1
>     xe 0000:00:02.0: [drm] *ERROR* Tile0: GT0: load failed: status: Reset=
 =3D 0, BootROM =3D 0x2B, UKernel =3D 0x00, MIA =3D 0x00, Auth =3D 0x01
>     xe 0000:00:02.0: [drm] *ERROR* Tile0: GT0: firmware production part c=
heck failure
>     xe 0000:00:02.0: [drm] *ERROR* Tile0: GT0: Failed to initialize uC (-=
EPROTO)
>     xe 0000:00:02.0: probe with driver xe failed with error -71
>=20
> CONFIG_DEBUG is the only change between "xe.ko loads fine but there are
> glitches later on" and "xe.ko fails to load at all". Full console logs:
> https://gist.github.com/marmarek/47b5e62a2cdbae6678c2aecc5283cd3f, there
> are 3 files:
>   - CONFIG_DEBUG=3Dn
>   - CONFIG_DEBUG=3Dy
>   - CONFIG_DEBUG=3Dy + iommu=3Ddebug
>=20
> 4. Updating to Linux 7.0-rc1 doesn't help, for example:
> https://openqa.qubes-os.org/tests/168119#step/desktop_linux_manager_creat=
e_qube/11
>=20
> Generally, it does feel like a bug in xe.ko, but I can't exclude some iss=
ue
> on Xen side too (especially given point 3 above).

After waiting some time (Linux 6.19.5 this time), Xen CONFIG_DEBUG=3Dn, I g=
et some timeout messages:

    [    8.122120] xe 0000:00:02.0: [drm] [ENCODER:204:DDI A/PHY A] failed =
to retrieve link info, disabling eDP
    [    8.148476] xe 0000:00:02.0: [drm] Tile0: GT0: Using GuC firmware fr=
om xe/lnl_guc_70.bin version 70.53.0
    [    8.803845] xe 0000:00:02.0: [drm] Tile0: GT0: ccs1 fused off
    [    8.804208] xe 0000:00:02.0: [drm] Tile0: GT0: ccs2 fused off
    [    8.804556] xe 0000:00:02.0: [drm] Tile0: GT0: ccs3 fused off
    [    8.822426] xe 0000:00:02.0: [drm] Tile0: GT1: Using GuC firmware fr=
om xe/lnl_guc_70.bin version 70.53.0
    [    8.827140] xe 0000:00:02.0: [drm] Tile0: GT1: Using HuC firmware fr=
om xe/lnl_huc.bin version 9.4.13
    [    8.829478] xe 0000:00:02.0: [drm] Tile0: GT1: Using GSC firmware fr=
om xe/lnl_gsc_1.bin version 104.0.5.1429
    [    8.852923] xe 0000:00:02.0: [drm] Tile0: GT1: vcs1 fused off
    [    8.853513] xe 0000:00:02.0: [drm] Tile0: GT1: vcs2 fused off
    [    8.854090] xe 0000:00:02.0: [drm] Tile0: GT1: vcs3 fused off
    [    8.854706] xe 0000:00:02.0: [drm] Tile0: GT1: vcs4 fused off
    [    8.855310] xe 0000:00:02.0: [drm] Tile0: GT1: vcs5 fused off
    [    8.855904] xe 0000:00:02.0: [drm] Tile0: GT1: vcs6 fused off
    [    8.856495] xe 0000:00:02.0: [drm] Tile0: GT1: vcs7 fused off
    [    8.857079] xe 0000:00:02.0: [drm] Tile0: GT1: vecs1 fused off
    [    8.857675] xe 0000:00:02.0: [drm] Tile0: GT1: vecs2 fused off
    [    8.858272] xe 0000:00:02.0: [drm] Tile0: GT1: vecs3 fused off
    [    8.975881] xe 0000:00:02.0: [drm] Registered 3 planes with drm panic
    [    8.976586] [drm] Initialized xe 1.1.0 for 0000:00:02.0 on minor 0
    [    8.980882] ACPI: video: Video Device [GFX0] (multi-head: yes  rom: =
no  post: no)
    [    9.033754] xe 0000:00:02.0: [drm] Tile0: GT1: found GSC cv104.1.0
    ...
    [ 1218.319232] xe 0000:00:02.0: [drm] Tile0: GT0: Engine reset: engine_=
class=3Drcs, logical_mask: 0x1, guc_id=3D3
    [ 1218.319890] xe 0000:00:02.0: [drm] Tile0: GT0: Timedout job: seqno=
=3D9883, lrc_seqno=3D9883, guc_id=3D3, flags=3D0x0 in Xorg [3245]
    [ 1218.320736] xe 0000:00:02.0: [drm] Xe device coredump has been creat=
ed
    [ 1218.321140] xe 0000:00:02.0: [drm] Check your /sys/class/drm/card0/d=
evice/devcoredump/data
    [ 1222.285626] xe 0000:00:02.0: [drm] *ERROR* [CRTC:88:pipe A] flip_don=
e timed out
    [ 1232.525685] xe 0000:00:02.0: [drm] *ERROR* flip_done timed out
    [ 1232.526280] xe 0000:00:02.0: [drm] *ERROR* [CRTC:88:pipe A] commit w=
ait timed out
    [ 1242.765717] xe 0000:00:02.0: [drm] *ERROR* [CRTC:88:pipe A] flip_don=
e timed out
    [ 1253.005696] xe 0000:00:02.0: [drm] *ERROR* flip_done timed out
    [ 1253.006248] xe 0000:00:02.0: [drm] *ERROR* [CRTC:88:pipe A] commit w=
ait timed out
    [ 1263.245599] xe 0000:00:02.0: [drm] *ERROR* [CRTC:88:pipe A] flip_don=
e timed out

The glitches appear much earlier, though.
Would content of /sys/class/drm/card0/device/devcoredump/data be useful
for debugging this?

Full log at https://openqa.qubes-os.org/tests/168813/file/serial0.txt
(warning, almost 200MB of those errors...)


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

--zu0C4HM+umfEjDpa
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmlcigACgkQ24/THMrX
1yxbnAf8CLqovdVUHy5Z9g4mb1xXRlYtk5W3BzX2l8m7XATXQU50WCZ70jFB3IVI
731vgifDlcnRiY1/bHU851bc1fHHKKq1KeqL+jmSYEVlxixO9N7Et/o1VDVJdsql
wq6sWj2BByyyFvbhOxfUmIfPG/aOqJrBNxMH2QVhTnyUrnWEyX6oUI9jXiA8FX7h
a836dOQOkY+zTaypRg85iXbHBjxjj7Kyj8qPFGfyFj5TRw/vgtiMfU1yzPxOo7QT
/t47KCoDCwcz4g99iacx3Ly60/x18oyvebrov4KGvAHW75VVlJSG9Zob2as4GH+X
wySLcUiG8BkWOu9O57PwH3xGv04dww==
=pqlU
-----END PGP SIGNATURE-----

--zu0C4HM+umfEjDpa--


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 11:19:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 11:19:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244172.1543634 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx1JX-00069X-8s; Mon, 02 Mar 2026 11:19:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244172.1543634; Mon, 02 Mar 2026 11:19:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx1JX-00069Q-5V; Mon, 02 Mar 2026 11:19:51 +0000
Received: by outflank-mailman (input) for mailman id 1244172;
 Mon, 02 Mar 2026 11:19: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=9kJt=BC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vx1JV-00056V-TD
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 11:19:49 +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 b9930178-1629-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 12:19:49 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-439b78b638eso830408f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 02 Mar 2026 03:19: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-439b0549600sm12199623f8f.35.2026.03.02.03.19.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Mar 2026 03:19: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: b9930178-1629-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772450388; x=1773055188; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GU9opBkaf7BDbY884PlXLT1seZFwGlMBcHTY2nf6ZP0=;
        b=ViJ6Ieu48uJDqEfzAagSZW1AJK3GjBK/ivleYWHHSv/G5skdxquc8ZS0tAJW3LVlNK
         a0hffAz4pGlgGnduU7f/3jVjICeOCb6iqQlryMCcqg3NI3IQrmC645ZrCxNxCqFiZ7Ca
         MSLUBtfbq36UyfJ9FRdOKLIkDKva2CaRX0hMGrFAoXHWOq7CCLIVlNaLdesdamrrXsm8
         gOf6Q4ZXrUTqDn4buIKfP0ynHpvx/DtLoD+ubnJMp9ajM+pd3QP0kE+FFikiNdhUc/dN
         3U8lZjfBDWtZJXgrVhPDGbs+XOmlSTix1JFRr4v4mhxJ4wOQ3G7toQ0n/3xMhn8zwMiX
         I/HA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772450388; x=1773055188;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GU9opBkaf7BDbY884PlXLT1seZFwGlMBcHTY2nf6ZP0=;
        b=Fhl46YiIbmAJcC7eFzD3T+8V0S9tBFZ6oh+6yuDh5m60oOU9UVb0URultPSuXyXSxu
         bty8globTDMefi0mGj8sfKkUAg1rLdTxd/aLzkbLgD5ARwENHRPzJ3Jf5+ufxNssmpRA
         PiaYGgc5mkP2KlYeDKFzz2qwZ4PuM+2Kka/z5LuDSRtlsFhv6QGMq4x//LIvbSzopxz5
         jIEKqDqI/QEQE5RcVoa726bGpXlEilnsYO6sSsg3vOjMaFaM/cT68JIutllpIBRv/ysN
         aNAVBKHgCC3hwN55vYNbj4eTGFWUOFlaHG/vfXpbIqLe98nd3CFIFjoJIvkFuieXiZHi
         3m7w==
X-Forwarded-Encrypted: i=1; AJvYcCWYMUrMCESVwRXEZCkcrM/tpwij/oHRAcUYXBumUu26n+FgxU6KudjulFT2f+5b7URvODq3rzgWwOg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YykayCwSfYBo0j2XBzEP/VXHRymLu+1o1nm+Xa4kCTrppi8tIdL
	cliqCS+34gzxCMX7D6xq0Q10/JjqmsDLlAZ2of3n/o9OAmAHewTALiGTAZe+JEAcSA==
X-Gm-Gg: ATEYQzynzCUND3LsAOUxJM4WaAeIQ8PEXNMrC+4RlUd3cwGimsZEvq7xVjaStCGdjCL
	ALFGGTtK/MUpm5xrSr8SsO6wCvwFF1GbRJWGFOwfLFT9Vqs8U8uGbLeONM9CNkUG3eGRuji54JX
	25QlW15vYfyjGYTMMV0KZ0zEoq8V5vnWhJpUfzmwEMDrN6sIAIiVLoegkSO0nw31MpTNRxmZ9MC
	su/NFJoujNkA4qgbu5MLJDZpH0Qq1n6VnXZwwQoce5ZwV3EPhLUv+3+w4C0Yc7DaGZTLAQZX3r0
	BCvnmLeKqXgfW1gKPTyf/EtFgMoAh0WguWHQR2Il5s8F+ApE8hv3V0ou8m5xPXAuimDUzOOB/IN
	HL3mFCTXgRzYCojau77qwiJMJSLAer8HL4jrK0A1ZJvTthW3Z+HuPWAbSmrdYQSFF2sLR7PCMW1
	AIrkGnZWvqqMuiBr7GbX7D30tajT2nK3zAl4URub5IfxkR12VU7jS5GyYEQxyBlwwlFG1lhJTA8
	m0ICewPCFQ+4k4=
X-Received: by 2002:a5d:588c:0:b0:439:b60a:b403 with SMTP id ffacd0b85a97d-439b60ab61emr6796477f8f.34.1772450388099;
        Mon, 02 Mar 2026 03:19:48 -0800 (PST)
Message-ID: <4052793e-094d-449b-af97-e2d068836366@suse.com>
Date: Mon, 2 Mar 2026 12:19:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 02/14] docs/guest-guide: Describe the PV traps and
 entrypoints ABI
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: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
 <20260227231636.3955109-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: <20260227231636.3955109-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.02.2026 00:16, Andrew Cooper wrote:
> ... seeing as I've had to thoroughly reverse engineer it for FRED and make
> tweaks in places.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> --- /dev/null
> +++ b/docs/guest-guide/x86/pv-traps.rst
> @@ -0,0 +1,123 @@
> +.. SPDX-License-Identifier: CC-BY-4.0
> +
> +PV Traps and Entrypoints
> +========================
> +
> +.. note::
> +
> +   The details here are specific to 64bit builds of Xen.  Details for 32bit
> +   builds of Xen, are different and not discussed further.

Nit: Stray comma?

> +PV guests are subject to Xen's linkage setup for events (interrupts,
> +exceptions and system calls).  x86's IDT architecture and limitations are the
> +majority influence on the PV ABI.
> +
> +All external interrupts are routed to PV guests via the :term:`Event Channel`
> +interface, and not discussed further here.
> +
> +What remain are exceptions, and the instructions which cause a control
> +transfers.  In the x86 architecture, the instructions relevant for PV guests
> +are:
> +
> + * ``INT3``, which generates ``#BP``.
> +
> + * ``INTO``, which generates ``#OF`` only if the overflow flag is set.  It is
> +   only usable in compatibility mode, and will ``#UD`` in 64bit mode.
> +
> + * ``CALL (far)`` referencing a gate in the GDT.
> +
> + * ``INT $N``, which invokes an arbitrary IDT gate.  These four instructions
> +   so far all check the gate DPL and will ``#GP`` otherwise.
> +
> + * ``INT1``, also known as ``ICEBP``, which generates ``#DB``.  This
> +   instruction does *not* check DPL, and can be used unconditionally by
> +   userspace.
> +
> + * ``SYSCALL``, which enters CPL0 as configured by the ``{C,L,}STAR`` MSRs.
> +   It is usable if enabled by ``MSR_EFER.SCE``, and will ``#UD`` otherwise.
> +   On Intel parts, ``SYSCALL`` is unusable outside of 64bit mode.
> +
> + * ``SYSENTER``, which enters CPL0 as configured by the ``SEP`` MSRs.  It is
> +   usable if enabled by ``MSR_SYSENTER_CS`` having a non-NUL selector, and
> +   will ``#GP`` otherwise.  On AMD parts, ``SYSENTER`` is unusable in Long
> +   mode.

The UD<n> family of insns is kind of a hybrid: They explicitly generate #UD,
and hence do a control transfer. Same for at least BOUND. It's not quite clear
whether they should be enumerated here as well.

> +Xen's configuration
> +-------------------
> +
> +Xen maintains a complete IDT, with most gates configured with DPL0.  This
> +causes most ``INT $N`` instructions to ``#GP``.  This allows Xen to emulate
> +the instruction, referring to the guest kernels vDPL choice.
> +
> + * Vectors 3 ``#BP`` and 4 ``#OF`` are DPL3, in order to allow the ``INT3``
> +   and ``INTO`` instructions to function in userspace.
> +
> + * Vector 0x80 is DPL3 in order to implement the legacy system call fastpath
> +   commonly found in UNIXes.

Much like we make this DPL0 when PV=n, should we perhaps make vectors 3 and 4
DPL0 as well in that case (just for formality's sake)? Maybe 4, like 9, would
even want to be an autogen entry point then?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 11:33:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 11:33:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244190.1543647 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx1Wg-0000oY-E7; Mon, 02 Mar 2026 11:33:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244190.1543647; Mon, 02 Mar 2026 11: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 1vx1Wg-0000oR-Af; Mon, 02 Mar 2026 11:33:26 +0000
Received: by outflank-mailman (input) for mailman id 1244190;
 Mon, 02 Mar 2026 11: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=9kJt=BC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vx1We-0000oL-Md
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 11:33:24 +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 9f0ea1fb-162b-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 12:33:23 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4836e3288cdso29871385e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 02 Mar 2026 03:33: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-483c3b4a121sm274266195e9.8.2026.03.02.03.33.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Mar 2026 03:33: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: 9f0ea1fb-162b-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772451203; x=1773056003; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=aqoJzViB893XGgdMEvONv6B6m5eJ+Ze2n/2VeDTpwkc=;
        b=Ub3P1ExU3YLDRBUzbZOoTKEPER+hntdjEceP22IAydNwwxD49R+KZ+N8XwIX/lg1we
         bmZT4fjl+5td5+bfLVmf9goz1Mm0NsCANRHbJnApFOpDWbfAejFNeqi+0xxkOpO4U9nR
         2m4RQicc+00bx8xI/c2Rg93q7tdb0T0Y2/UGRVRGXipfDMylZ7LuzZGVYyuhGo8HVzum
         koH/pV7OP7lHsy7rQgpj/czkF2bdOYj/9MmCbw2rMP36KKBCQoXXhp7FUtSu0HLXlAdM
         7yGGO2redKVUJ+mKVN/npuGAT/LF1vitFAeYIC4A8qQYFZVvrSxzpgq7k2VSM9sYTQbB
         GPdw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772451203; x=1773056003;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aqoJzViB893XGgdMEvONv6B6m5eJ+Ze2n/2VeDTpwkc=;
        b=QER9yZyNe6QSb8csfJjnVdRao8TKEPSDgXHRtoFzI/zvu6GDhOUZCgEHiKbw1QEfaw
         UswbjvzORKGHDvPmE7LnX1VZ6RiUwRtxjuM96tGyExPkVO0A3AKsZlxhJxbuf97k3trB
         j8+2X7tvRVm2XVXgZ1TSOqmq96X0Tdwt5Roz0sRyLlnm6et3dvIbDqVtSxirgKQpuQF3
         d9uD3t1cf84/BRJnGa7tPqXIUw2wdvCDKpX/FX91yI8jGpOBI1+gU41y2SQmvjbmKmhL
         /ikhfyFQXupfH452FaV1D1pnYLKfwg7dt7bl1vPjHJsw4anyvIIbtQJrg7lDZetGCLF3
         Tf5Q==
X-Forwarded-Encrypted: i=1; AJvYcCVqQOE0Dl8aFIgVr4LfdU+kBaGkb8ePueAnWVns2/WkRRzoDkeGPzOCzUIKIOumQn1TsdX8jY+A6qU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzNiiXeg9sSG3FOqfKq+0zmy99Uf3zKZR43Yhkkf9xO0DkCDBqX
	5rM3WiHU4M5vB4a5BHiOEF6HuKSIBfTTsQZbR9aO+Ie2k2kwG4aUNpw4X9cYONM31w==
X-Gm-Gg: ATEYQzzW/pDOUzFQvH/ttKbOojSgoJQSkizrmHM8KxyLLZirqwmhEzikcTRLrvzmydI
	u8BTO1ObJ8mQqp3xjf9nODvR2Tyu261lNiZt3fSIpiw0bMQAnkGSKLEyib1v45DKcRpbdDdMmXG
	r4Y80hG1IGlwrjrBxdHQwOCiuD2Ksf+UkZ6FvdwlRj5MWM7M19C0GosSIC+6J/+cKTkGoWHa+PM
	M9CcN2KcWRUEUv+QObvjlMKRcYnpHLukV990wucJjKsDbEsHMObaZ/uKa536P7Rr/bqJT/XZLNE
	9AMTGJZYGtnxJlNpuaBerfnTGwlNT8aQbwp/u/ZqbtsOnlnQtfYE4DJf+U4l9txFUWgfPkSbPNM
	xd0DacFdFuagH39fcZBdqmm0sRBovozQEZeAq9rfSCnlkqw5YAxo3ik8AD74uu4lFshe9sZqstM
	2O6xLMeWrIe9T+YKwL2muN1bPq5f6AkeKEAVy1wg4kxpgbXD3C3nZgTWNOG6GzvGjJ6tvZaqia2
	nXwoZhiepaV2sM=
X-Received: by 2002:a05:600c:8509:b0:483:6d9e:e4f5 with SMTP id 5b1f17b1804b1-483c990bddfmr215547965e9.5.1772451202745;
        Mon, 02 Mar 2026 03:33:22 -0800 (PST)
Message-ID: <fb3d6869-5d9f-4a9d-a31e-29ef7049de35@suse.com>
Date: Mon, 2 Mar 2026 12:33:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 03/14] x86/boot: Move gdt_l1e caching out of
 traps_init()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
 <20260227231636.3955109-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: <20260227231636.3955109-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.02.2026 00:16, Andrew Cooper wrote:
> Commit 564d261687c0 ("x86/ctxt-switch: Document and improve GDT handling") put
> the initialisation of {,compat_}gdt_l1e into traps_init() but this wasn't a
> great choice.  Instead, put it in smp_prepare_cpus() which performs the BSP
> preparation of variables normally set up by cpu_smpboot_alloc() for APs.
> 
> This removes an implicit dependency that prevents traps_init() moving earlier
> than move_xen() in the boot sequence.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> I'm on the fence about the ASSERT(), but I'm getting rather tired of unstated
> dependencies.  For a PV64 guest using SYSEXIT to enter the guest, it's the
> first interrupt/exception which references the GDT, which could be after the
> guest is running.

I think that's okay to have there. "Unstated dependencies" is of course a wide
field, and going too far with assertions is also a risk.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 11:35:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 11:35:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244198.1543656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx1Ya-0001LW-ON; Mon, 02 Mar 2026 11:35:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244198.1543656; Mon, 02 Mar 2026 11:35:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx1Ya-0001LP-Ln; Mon, 02 Mar 2026 11:35:24 +0000
Received: by outflank-mailman (input) for mailman id 1244198;
 Mon, 02 Mar 2026 11:35: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=9kJt=BC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vx1YZ-0001LH-PT
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 11:35: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 e614f806-162b-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 12:35:22 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-439b6d9c981so618980f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 02 Mar 2026 03:35: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-4399c75a523sm26519437f8f.19.2026.03.02.03.35.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Mar 2026 03:35: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: e614f806-162b-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772451322; x=1773056122; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=WJyBeGqzIMoxG7CgU0XCO3cXTmKg85QI+6wcIlFdMno=;
        b=MLgvt1pB/4Z6oENcuLNw/dE7XK00txv+LKUj5jmX5bTvoWKKl+qVWQlEinegov32gr
         l6VCSYKx5v6giV+OFwRdWLlih954vqs659U91XLHkFEbVAO0rp5uD2vzn7nXjVE8O1pJ
         OBxNm1oz32AA/s8tVMzMVBEesgKkh5Sji81OhtEbMkqo7Ibd5lmJpTsW2+Qw3z/2xIHr
         2J7KRXwPe73Qgq6wWOIAs7Z0M5TLzNZKqm3M0solLoTpFbjCUfhV3KJg7WVhGEliTqyN
         Asgi8YemWeFUn9R8geOm4OQmL+J66fXohC7u1JytKsIRdIg1+frNt6JYgyIvQn0Ruish
         XVYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772451322; x=1773056122;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WJyBeGqzIMoxG7CgU0XCO3cXTmKg85QI+6wcIlFdMno=;
        b=rjhsKBG9NiaJZRj4dPnlsjmTmGLGaT6ttNQnV6I+HXFpUoGt8cVE2rCjdgS2k+6bIN
         ox+xRoOV6ZMgs5hQj3C9ccqzbSF3rka2l3QGUIzXt3MCoFGfPwQmEf2ebNzxlxjDWSli
         HVXe46lvT3YqK6m3FNWaZWqn6mN1Pc0hcP+5B/w0ntZp4m2PtDKHGO+aymCSseP2s0D5
         TdWTqfkJNKNFK/k0BKuFMqX/KHyOXncO+CPl9ntK5F1zdMBVrsH0t/n0+62v+Xayo+5e
         L4Vxx+rqOrWVr8fJseLF7+dG0QXmpsbKYxV9huDxuyIPxbS1nGFP5jqfHAruRFK7ObtG
         sgMg==
X-Forwarded-Encrypted: i=1; AJvYcCWHpgmmDK/pgg55HiPAoTga1f32NFBaeHtf0HtJXoQIS3zAvnsSB/RYGDNU1zXjt3wVf0ww2OCPN8k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwRGIPGZJ/NGXKowiwTug4JESjTLUzJtlv3iVWpbWLGu8BQZoVf
	DaBJU8P2/YDeUlxBbE/QiVnTjmupEdQkPsZ6GRAN0iwtPlOktqHFAOOzPxLh2/A53OB3acW3z2a
	KVnI=
X-Gm-Gg: ATEYQzz602DVUf+vkioD7IgLqq9Mm9EiJeQANrd0oJwe2el02aZ6XI7u2GgDGU5NJOf
	rjUTbIW1fcH0AxFkCGN/wFy5fzokOYVlreHnMDcBH6y1CIPEGccsC2xgmgcQQSReuC7Jp56sY0u
	L8IUpAWm2zE6/wQBQzDxvk9ajhJgQnAqO7ECtXobAyf7zo6WQMXfSFSJXqJ6bbeplB+Qxx/m6EC
	Fs6wyCph0R0ym+rIb0gfMiNKm2Hw1upuBe1U2ArbaG2XDfxK4nGkdWVaYxq4mrr04lgFYfTReKz
	vHkzWraG2kvEDE0QMOFwruMwfdIDgkyDfst3ttN/ouBL+BxJhb6SdrDiQq7Cg7DZH3533mzCd9/
	Kk++04fPwiDuOTGAQFcK2M6QGi5BVQClF2sfDjzmGl0xYKyVXkBlX/7asncUsjMy8iEHVRu4cCl
	nI4xHWxwTe9qoxe77OZhb52pCLM1sD9/JZeQUO9Dvrgx0kjoq6yfqC6nNt8DU/0glDr1WRjsN4D
	hxt1UL1Xa0sE9M=
X-Received: by 2002:a05:6000:2903:b0:439:b5d4:249b with SMTP id ffacd0b85a97d-439b5d42936mr6785019f8f.21.1772451321845;
        Mon, 02 Mar 2026 03:35:21 -0800 (PST)
Message-ID: <75710720-f2f1-4b2a-99e1-b5e3ff0191fe@suse.com>
Date: Mon, 2 Mar 2026 12:35:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 04/14] x86/boot: Document the ordering dependency of
 _svm_cpu_up()
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: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
 <20260227231636.3955109-5-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260227231636.3955109-5-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.02.2026 00:16, Andrew Cooper wrote:
> Lets just say this took an unreasoanble amount of time and effort to track
> down, when trying to move traps_init() earlier during boot.
> 
> When the SYSCALL linkage MSRs are not configured ahead of _svm_cpu_up() on the
> BSP, the first context switch into PV uses svm_load_segs() and clobbers the
> later-set-up linkage with the 0's cached here, causing hypercalls issues by
> the PV guest to enter at 0 in supervisor mode on the user stack.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Mar 02 11:39:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 11:39:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244210.1543666 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx1cK-0002HA-9p; Mon, 02 Mar 2026 11:39:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244210.1543666; Mon, 02 Mar 2026 11:39:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx1cK-0002Gy-7G; Mon, 02 Mar 2026 11:39:16 +0000
Received: by outflank-mailman (input) for mailman id 1244210;
 Mon, 02 Mar 2026 11:39:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9kJt=BC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vx1cI-0002GE-9R
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 11:39:14 +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 6ec09583-162c-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Mar 2026 12:39:11 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-48373a4bca3so25727855e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 02 Mar 2026 03:39: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-439b4175fd2sm10883937f8f.14.2026.03.02.03.39.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Mar 2026 03:39: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: 6ec09583-162c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772451551; x=1773056351; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KSkLSaaf6zn/E68TTmUwv+2Blx8aX8BKatFDwkdS8FA=;
        b=FviktDeUu3S5aZ2N6dtSrkpAkOcDf6Sk1b+oIoZsPfMBYbiQUDyrYv/r9G3WewQnHF
         AHeH6LtTVI9HTJjwxBKfKWynum8iHMS5D2mc1Zc1SugTQkF7cKjM5vs+CTX4UQjM49uF
         M8oidgNZhKdjK+1KQB5KMgHKtYkNpc1ZSYzYG1yHE9fkj7dpKF9AMom6MB1Im2QQBQNI
         Dpsf/WQAjI1Wy/NQJzJGOiFy16QCZSUe6J4gEJDmlFhk3W9Lu5M/ENhcH/fBSZ1TwKFj
         3Z/XhVx6ad+dFobDqe4qY90f4nUvynlQlh2/IQRWSrPg31yV3SNbV1MACoMC55Up+5B+
         hSpw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772451551; x=1773056351;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KSkLSaaf6zn/E68TTmUwv+2Blx8aX8BKatFDwkdS8FA=;
        b=MzMFw0fKLRJsbyD3pqetZFBH3R713lRg1T8nZOwuVxoSHp9EdgmFzDuDVpemKoej6l
         uNk7Da+uezQx4OvKKGTOn9uWIOrvLVJWFAoY2vd9grK9izQy8g+yCHs/VApjbz8ohaIF
         I0szL/FGG6/nfiNm/HzJ1xBlibBeNOMpYgH3NjMBRP2SmDxSQx2n1/U/l+xm349dX1aQ
         AGFTuND/Dp9ujKK9NHjrvUVaDpZi997XPxaFKb86hMBosmx4DVU9N4L0Q3bYOTfxjUzl
         rlWDy3xXq7TM4mbMjMbpK1FoD+glR+rxQdYM3thn0ebvDA6lhRwxMVlx9HUsfZMQWfKB
         JVuA==
X-Forwarded-Encrypted: i=1; AJvYcCXy+xdWZUmHsbEHePlNe08rvBC8lyxwr3L8bBY/ufj0JjT3hFF0xuiudRagS15XuIx6CjE8UwnoBNU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyLY+W/kAWfTpqWVNMulNXLdfUakRPOG52+pgut/dbR04Aaq+Ec
	EiqiTdr6fv7KzQGOR7C+IjPdi8O3DKAw4SNY6oGlS7EsE6MA5kWrl9GNoMU1LVfCKw==
X-Gm-Gg: ATEYQzzxU9Y71cqAC+fNwwm5efDV1wyoP6yPuMFAP05eDKO3mG5+NAMiw001m3hNlo8
	1KjQhMHTVCEVlDtH7WxUYhhHGmeS+V0yuLLy2fklQMtUIQcNJTk+gxv9PTF1yq+mV9onvFqDDrG
	Vg89nfEKqwDkSiYMoHXPJCHLsGAshgKFukvRiCYx3CJbxBI4WQL8bnuSnarE/Nge/uiZkk7d+55
	toSrdYqj0pG+LK1ExrVoZhHNi7aqiSewJlblRkac3cjzN8+47LbCgoX40VQXjWrdSxf8xmXEob2
	E56KvN8DWSTOXUXX8+/me0pfvo63W2eU66IoR0geROmtL5fHJOokeOxJfZJCfomiq54rXIiKnjU
	xdgyuZLNUxMmp5v8dvh46PwLfnvPJJk+a3LV2waeIflNOhdyepbRhnrYADYSV/xHyD0540pg/ZB
	Mdm4me7ug3go6IfkriXONVQHF7PgJkwaYeysk8Kn3soFJQ9Eg2WNbNNYSJynbkLXo5VB/fnaGQw
	QHhg9knpkZqkiLeKkrSdq8dng==
X-Received: by 2002:a05:600c:6385:b0:477:54f9:6ac2 with SMTP id 5b1f17b1804b1-483c9b53c9cmr228004325e9.0.1772451551256;
        Mon, 02 Mar 2026 03:39:11 -0800 (PST)
Message-ID: <b54f129c-71dd-45e9-8f31-4df322e30af2@suse.com>
Date: Mon, 2 Mar 2026 12:39:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 05/14] x86/traps: Move traps_init() earlier on boot
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: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
 <20260227231636.3955109-6-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260227231636.3955109-6-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.02.2026 00:16, Andrew Cooper wrote:
> We wish to make use of opt_fred earlier on boot, which involves moving
> traps_init() earlier, but this comes with several ordering complications.
> 
> The feature word containing FRED needs collecting in early_cpu_init(), and
> legacy_syscall_init() cannot be called that early because it relies on the
> stubs being allocated, yet must be called ahead of cpu_init() so the SYSCALL
> linkage MSRs are set up before being cached.
> 
> Delaying legacy_syscall_init() is easy enough based on a system_state check.
> Reuse bsp_traps_reinit() to cause a call to legacy_syscall_init() to occur at
> the same point as previously.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

Irrespective ...

> @@ -359,7 +363,13 @@ void __init bsp_traps_reinit(void)
>   */
>  void percpu_traps_init(void)
>  {
> -    legacy_syscall_init();
> +    /*
> +     * Skip legacy_syscall_init() at early boot.  It requires the stubs being
> +     * allocated, limiting the placement of the traps_init() call, and gets
> +     * re-done anyway by bsp_traps_reinit().
> +     */
> +    if ( system_state > SYS_STATE_early_boot )
> +        legacy_syscall_init();

... I wonder if simply pulling this out of this function wouldn't be slightly
neater. To me at least, syscall/sysenter are only a remote from of "trap".

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 11:44:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 11:44:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244219.1543677 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx1gw-0003mE-SF; Mon, 02 Mar 2026 11:44:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244219.1543677; Mon, 02 Mar 2026 11: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 1vx1gw-0003m7-Om; Mon, 02 Mar 2026 11:44:02 +0000
Received: by outflank-mailman (input) for mailman id 1244219;
 Mon, 02 Mar 2026 11:44:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OlTG=BC=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vx1gv-0003m1-UU
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 11:44:01 +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 1a8ab18d-162d-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 12:44:00 +0100 (CET)
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by PH0PR03MB6463.namprd03.prod.outlook.com (2603:10b6:510:bb::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.16; Mon, 2 Mar
 2026 11:43:54 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%6]) with mapi id 15.20.9654.020; Mon, 2 Mar 2026
 11:43: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: 1a8ab18d-162d-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XMBDs639lkP+09vycFAWTBFVcfFSnuUofY4Af+mSBv7ziicDbkl+voCcz1nbgLCGgOWpgAZphhZGZIm54GlZIqmKrUsgtetVczwxBkrQW8XpSCBd36HvuJxZZX0GHoVLGrTMs+LrKZLbEt6tMJhuuUGA4bkjJP0g6yh63hrWfdcb0NYY06R8HpRwa0hYGpysgTupmaqN3ZRrDoDfwSxWu6C0YLcOxAVZY2dvN6MDTTt8O9fjsdc0V+x7Aax4/c6uZ762yT8azGn2qA1jRyHp5ilLQa40Te47+QsiI40SJxxz9/HfWmZL7vLn8V3H4UgHf4w+ntwqizCQqP9doHROSg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AdKqbfApDT1CGXFK/RBEqtP1Ct6LWFNhZV5lNBvvAYw=;
 b=bDWWY+OMkgvuKkdiXfs9q58q/T+RvDFT2g/vcqteT957+myjBU3wtjjkuoscXDZQvxj/XjZK6765Lb530FU47W3qrPyCtLZ20Ly2jXkW+GOyt9LlfaJKStHATjLtqNJ2FSdGpzuROiOmnkSmoPffh/6CYjY2W4+mFjgFWDYJ9tW42qqE9w4ZWe5ewbNGnr8JLhTalV7ncum5l0jeikFChDgBdzspzQG2a7sNiAydDnwJ3bGutUBXbLDsHT6aS1sOVRiNsGhVWzY4wYLg6oiL6eFkdcL2I/0wHawl8UgL8glT4qKVbQSjg9BvH9racQx5OZXPsXVmNM5TRGxMfRvhFA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AdKqbfApDT1CGXFK/RBEqtP1Ct6LWFNhZV5lNBvvAYw=;
 b=PwCNMQo/qQvtPdY1LmqA+asq9P8xQn4PFV88BTTFDMQSYvldTDslxrILs8iIAvkMPJoRfTcm4zjtWtEkhDhNAub59qdgejoQLuD9TnNyS+5beckEm35xd5TgkOIOEM3CNBebv6ZPEnEmi0qP+vgpBoQgXweYudbAs8nFhOMXbKY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <c8013b73-de27-4354-9e45-da7d47c8b190@citrix.com>
Date: Mon, 2 Mar 2026 11:43:31 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 01/14] x86/pv: Don't assume that INT $imm8 instructions
 are two bytes long
To: Jan Beulich <jbeulich@suse.com>
References: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
 <20260227231636.3955109-2-andrew.cooper3@citrix.com>
 <bf83838a-8401-4eb7-aea8-25ce59c9d492@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <bf83838a-8401-4eb7-aea8-25ce59c9d492@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0423.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18b::14) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|PH0PR03MB6463:EE_
X-MS-Office365-Filtering-Correlation-Id: 6f3976f2-ae79-4d83-e478-08de7850f551
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:
	sylWef5OMXMuWyo4wZoZT++iQemLLiJt2t3kjihcpXl0099qIBKEwRzmuzd4q/7YWIfJbS63mBMDZntSW978osqLhFmbyD9QMkjhYrUO40O+A18NyXzHaaYqNGHtjTKN1WMf8GIslNUqkKxgYFxusToRgRrn4MNhrHqHlEv/esRg4RfUeoV6yfyRksbNsCxEfvGtT3cZmgWckbi+pwRshVre4gvH9HNvC/GFfv2EhzrlTCAVIK02nGGp7PRk4RYaXnw8lNuCdArT+aMxSd/uYoIIp89lGzbO0hlTJLMK72xpbAOnZbYfXh16G/OnEo9F6qxjmcmDFCi/YkwHm6KJsFrg+6PT1Y9OTkE+rNbPqLl+zlMNy726glBiE0ZT/VBXIX1Lny3JCmA/+SDHIQYrqQNpqiHZUF8a5z/Fb8iI4BU9mLbBi2LaAFcStpPfaCQnJR1PtHf7js3QZOjMSZPU/klxl8bTgomEvpATUnakgpbPtFxdBQfb71myATGKlSh6cf5Cms+03pe+HI5PGRbs+3tj/u+A3og8wtdkbdQ3yIKfWUAlMF6PwnRoqb6i2wpWAJ+KrKzPP+k6yz5vv2nXkvc1kBIL5KY5d6BiAwTUdG4z4l3wDjpNl9DlRn3fOuiIY1SoedYIBW+OI8SxokPVGXl5rBXj5HGcvYVdUt5NzZVh77KLDs2qZVFBPhCcxDhNlB8HJXU2S+jt6Ov7DiF7nOVls+MsQruw66iyq6GfDrw=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OVI2bGdyREU4bjJJeUpTQTRScG43emRaUE9qcmlCN3JUNzhOVkl2dVNwMFMz?=
 =?utf-8?B?WmMyKy90aXAwaUN5VFFYZHBGNkNBQ0hPU3RmaXF5K1JzS0g1UjQ4TDZkQ2kz?=
 =?utf-8?B?TWsxejV3aTFMSkZ4UjNzQWtQMUY3VWJQeHg2a21HRVlKeDFVTkNJcEI2VFha?=
 =?utf-8?B?VmQ2aTFucGFUWkNNemdqTFBKSFFQc1pCTVlGclZuZzF1aGtqSzUzM2E2NFBx?=
 =?utf-8?B?T0JiSVdIM1dJTm8vZFZ5VVVrT3NINVcrR0pkVGE5OXhOd1RBODlYZTI4SzAr?=
 =?utf-8?B?cTZpUld5MjhQaGIvejZwUkp1Ym9ESXI0ZXJoeWxYZkVWZ2ZUN2w2bkpCRE1h?=
 =?utf-8?B?Y2twb1lZVVJ0dFZRK3NhRG10eXFSS0tiZ0tkbDBEYklseG5QL0c4d1owZzdr?=
 =?utf-8?B?MkF0aEd2K0Z2RkpkZGV2WTRTaitZWEFRTDQ4RWJtTVh2aldWUDdSZC9CZnN2?=
 =?utf-8?B?MnVtQlV0N2xFVHZnZGs0azRZUjNqSFVtWUF1VENqQm11MTZ5ajRuUHhyTzFi?=
 =?utf-8?B?d29mS1hEYzVyay9TWFFRSXcrK2JOYy9HVGpJc3l1VGcySU9KY2J2V0ZZdmpD?=
 =?utf-8?B?R2doK3BYTVRLODBuSEkwK2I3MG1NbC8rN1dyV2k4UDRYbHpubVFJMXZNNnVH?=
 =?utf-8?B?YVVTYUNMeW9RS1h0T1E4L3JqMVVLRHNMRE5NdTNxRXhTODhORk12a2hpNGtK?=
 =?utf-8?B?RXRNN214TW5SeEFUWklCQmtBZzBFeUhiUUpkNU9GcFpwUTB1dFdWcWdObFpC?=
 =?utf-8?B?ajk1aFBrbWxqN2dsNmNPMFlEczMzaGNlQVlpNGJhRTQwWm1jNXZ1RFBja3Fi?=
 =?utf-8?B?N2t0UVNYd1d1VDBsbTZpU0NRNWZpMUwzd1h4Q1M0aDM2YzZKZ0dvVk5OTUhH?=
 =?utf-8?B?MzdsSStUb2NzVzU4NTdLSGNEbFliYmxBeDZ5a3NScDZjNlNaYTNiU1J4enRz?=
 =?utf-8?B?Mll3VVMvTWI0U0g0RVFVNmQ1a3R0dUlaNURkRU9WMGV6ZUg3aEFEWEdsUC9i?=
 =?utf-8?B?SkI3UDVIcGFhYXZCRDA4UG9uVlJUbEVraHJVZ3ZzZzdhUzk4VzlJZldtUVpK?=
 =?utf-8?B?a3c3VGdPbUp2MHhHSU1GM01lSXRTV1hzYnBzakw5Ti9mcXVOTjRXSjFhK3pL?=
 =?utf-8?B?VFdWbTl1Z3gzdENGc0ZBRnNMZ3hUQ3dNM3RrK0xybXFhTEhJRUx3Tko4VTNk?=
 =?utf-8?B?KzJIL29wM0xsaWFkNlNzS1FWUS9RZVo3Zm1zTy9EVjR0MnByZUhXMitqSFpU?=
 =?utf-8?B?bEw4ZWhuWlZOd28xaURKamV6SmUrL0Z5a1RiVE85ZS9yNGtBNGNCNklRcVFQ?=
 =?utf-8?B?QTQ4TlZHdXpJNXN4UWpWdXk1cGlBV0VwWHpsMk9BRGczL3FFdFl6SVBhUlM4?=
 =?utf-8?B?bmRZckNCamc5T0pvakZrN0gvQTNVNC94bWxrcjBtSmoza1VCR3lHcjdrbnZr?=
 =?utf-8?B?OUYvVGVLV0VUdTJ0ZGF3dWFMZHNuLzhtU3h5LzFoK1dYTUZWYzBjMWJmMFAx?=
 =?utf-8?B?UlJEMVZFdVJpL09QbGpSTVVVcWw1dlNCYXQwelJvNEgxWGQzTDVzWjllOFZx?=
 =?utf-8?B?azhZakJNZTdUQ2JDRnZmQ0pkcXdORmswY3ZpS3A1bzhsbEJ5aFMvck1JS1ZL?=
 =?utf-8?B?a3g4V0FBTlZjY2h2b3hiYStRVVV0R0x6ZG5ZT3o1ejZuNkNhaldTY1hGNWFn?=
 =?utf-8?B?Tm80SXRyeEV2UWc2cTFCLzBTMld2T09CWXp4YlNTSzNjdmxzOThDNWZJNVlB?=
 =?utf-8?B?Sy9BbU5YcnpVeEZCMDRFT1NrY1pRa3lXcTJxeGtGV0UwSGlsTThGZ2Q1Vjdh?=
 =?utf-8?B?ckRWOENWUjF1MEM5OWUzTWMxdlJOdlZ5cTNndHllbmFEdFlIdTRJeitNSGpw?=
 =?utf-8?B?VEpQZDcxejhodFFsTDBOaHduTE9mSEcyb1daNnJOTEdUNllxTVVBS1BJYll0?=
 =?utf-8?B?MnpqYXZZQU5VTXgzM2tWMFFYZkw4aEE4cUpNZWl0U0JsRW5UYU1HNWdQb3c4?=
 =?utf-8?B?UHRpdUk4S2JaZG8zWEg0RWk2TytKa3RYVm53Wi9ibTVvem5KVEI4RGhBQWxi?=
 =?utf-8?B?VytVN042UDBER3ZEdVlKeDh2K3dOdkNzcElhQUN6aWIwQUJnaGJJK1RNQ1V2?=
 =?utf-8?B?dkpUYlprSlJsS3o5QUNPVGlieVpOTHZwYllDSGtIZGRXRzV1dXdIMXZUTVlG?=
 =?utf-8?B?eHJaemxrMlhwMEgvV24xR3p4MjdzR2dtcENJeVNBNHYzL0J5cU1UQnY1c09s?=
 =?utf-8?B?SUU0S2t1N3AzanhJdU50K1ZKdk9HNDREVkxCaGxJT0FnTG1NSERnVktSOHE5?=
 =?utf-8?B?ZGpHVGcwTjAxaUlvM0hzNnFlMXl4ZXJhTnlpOEliTnlmY2hSemlzZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6f3976f2-ae79-4d83-e478-08de7850f551
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Mar 2026 11:43:53.8145
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 4EDIXpIhP5YvU4SHWNMNBwuX8hvfYf4nu9il/0BoW6juFdfGCzJ/Y6SS7D+6Ic1vtbeFTKWoU8ya+EhzChh3FvVsoIWF0VV802r6wx2mFTw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6463

On 02/03/2026 11:03 am, Jan Beulich wrote:
> On 28.02.2026 00:16, Andrew Cooper wrote:
>> For INT $N instructions (besides $0x80 for which there is a dedicated fast
>> path), handling is mostly fault-based because of DPL0 gates in the IDT.  This
>> means that when the guest kernel allows the instruction too, Xen must
>> increment %rip to the end of the instruction before passing a trap to the
>> guest kernel.
>>
>> When an INT $N instruction has a prefix, it's longer than two bytes, and Xen
>> will deliver the "trap" with %rip pointing into the middle of the instruction.
>>
>> Introduce a new pv_emulate_sw_interrupt() which uses x86_insn_length() to
>> determine the instruction length, rather than assuming two.
>>
>> This is a change in behaviour for PV guests, but the prior behaviour cannot
>> reasonably be said to be intentional.
>>
>> This change does not affect the INT $0x80 fastpath.  Prefixed INT $N
>> instructions occur almost exclusively in test code or exploits, and INT $0x80
>> appears to be the only user-usable interrupt gate in contemporary PV guests.
> Whereas for the slow path, while the subtracting of 2 from %rip there isn't
> quite right either, the insn size determination here would then simply yield
> 2 as well, so all is good for that case as well.

I've covered that in the docs patch (patch 2).  Because INT $0x80 is
DPL3 and therefore traps, this is the best we can do.

>
>> @@ -1401,6 +1402,53 @@ int pv_emulate_privileged_op(struct cpu_user_regs *regs)
>>      return 0;
>>  }
>>  
>> +/*
>> + * Hardware already decoded the INT $N instruction and determinted that there
>> + * was a DPL issue, hence the #GP.  Xen has already determined that the guest
>> + * kernel has permitted this software interrupt.
>> + *
>> + * All that is needed is the instruction length, to turn the fault into a
>> + * trap.  All errors are turned back into the original #GP, as that's the
>> + * action that really happened.
>> + */
>> +void pv_emulate_sw_interrupt(struct cpu_user_regs *regs)
>> +{
>> +    struct vcpu *curr = current;
>> +    struct domain *currd = curr->domain;
>> +    struct priv_op_ctxt ctxt = {
>> +        .ctxt.regs = regs,
>> +        .ctxt.lma = !is_pv_32bit_domain(currd),
> The difference may not be overly significant here, but 64-bit guests can run
> 32-bit code, so setting .lma seems wrong in that case. As it ought to be
> largely benign, perhaps to code could even be left as is, just with a comment
> to clarify things?

LMA must be set for a 64bit guest.  Are you confusing it with %cs.l ?

What's potentially wrong is having LMA clear for a 32bit guest, but this
is how pv_emulate_privileged_op() behaves.  LMA is active in real
hardware when running in a compatibility mode segment.

I don't think anything actually cares about LMA. 
pv_emul_read_descriptor() doesn't audit L and instead relies on us not
permitting a PV32 guest to write a 64bit code segment.

>
>> +    };
>> +    struct x86_emulate_state *state;
>> +    uint8_t vector = regs->error_code >> 3;
>> +    unsigned int len, ar;
>> +
>> +    if ( !pv_emul_read_descriptor(regs->cs, curr, &ctxt.cs.base,
>> +                                  &ctxt.cs.limit, &ar, 1) ||
>> +         !(ar & _SEGMENT_S) ||
>> +         !(ar & _SEGMENT_P) ||
>> +         !(ar & _SEGMENT_CODE) )
>> +        goto error;
>> +
>> +    state = x86_decode_insn(&ctxt.ctxt, insn_fetch);
>> +    if ( IS_ERR_OR_NULL(state) )
>> +        goto error;
>> +
>> +    len = x86_insn_length(state, &ctxt.ctxt);
>> +    x86_emulate_free_state(state);
>> +
>> +    /* Note: Checked slightly late to simplify 'state' handling. */
>> +    if ( ctxt.ctxt.opcode != 0xcd /* INT $imm8 */ )
>> +        goto error;
>> +
>> +    regs->rip += len;
>> +    pv_inject_sw_interrupt(vector);
>> +    return;
>> +
>> + error:
>> +    pv_inject_hw_exception(X86_EXC_GP, regs->entry_vector);
> DYM regs->error_code here?

Oh.  I'm sure I fixed this bug already.  I wonder where the fix got lost.

Yes, it should be regs->error_code.

>  Might it alternatively make sense to return a
> boolean here, for ...
>
>> --- a/xen/arch/x86/traps.c
>> +++ b/xen/arch/x86/traps.c
>> @@ -1379,8 +1379,7 @@ void do_general_protection(struct cpu_user_regs *regs)
>>  
>>          if ( permit_softint(TI_GET_DPL(ti), v, regs) )
>>          {
>> -            regs->rip += 2;
>> -            pv_inject_sw_interrupt(vector);
>> +            pv_emulate_sw_interrupt(regs);
>>              return;
> ... the return here to become conditional, leveraging the #GP injection at
> the bottom of this function?

To make this bool, I need to insert a new label into the function.  I
considered that, but delayed it.  do_general_protection() wants a lot
more cleaning up than just this, and proportionability is a concern.

What I was actually considering was splitting out a new pv_handle_GP()
function to remove the ifdef-ary, and doing a wholesale rework at that
point.

~Andrew

P.S. Something I'm still trying to figure out is how to make
guest_mode() able to DCE based on the caller being
entry_from_{xen,pv}(), because the function can be bifurcated for FRED. 
It doesn't appear that the assume() constructs work, probably because
do_general_protection() can't be inlined due to IDT mode.


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 12:57:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 12:57:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244243.1543687 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx2q3-0004qB-20; Mon, 02 Mar 2026 12:57:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244243.1543687; Mon, 02 Mar 2026 12:57: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 1vx2q2-0004q4-VM; Mon, 02 Mar 2026 12:57:30 +0000
Received: by outflank-mailman (input) for mailman id 1244243;
 Mon, 02 Mar 2026 12:57: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=9kJt=BC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vx2q1-0004py-UV
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 12:57:29 +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 5dbe07b9-1637-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 13:57:27 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-439b6d9c981so686029f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 02 Mar 2026 04:57:27 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439b4175fd2sm11373336f8f.14.2026.03.02.04.57.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Mar 2026 04:57: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: 5dbe07b9-1637-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772456247; x=1773061047; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=A4sw1FqBMT7nXxPURsGhVu+Kxp3Tqh0F1/FVVl4vg/s=;
        b=R8wr9T6qkWH35/X6Ret9N3t8KCWDW0CPwmZpTtyCnsIs3VmaPjJLbkiWOvUCnVh6Js
         fwLVqFFx8025POlCn5jkJhDXrmEThRuO4eUMfFEPQDb+UER12pl4csmPD84g/mqPRDkP
         MaB/zKQ8qLirIyK6P4chXDe5DUJl2JvXzhYemzgUh4ThgGC3cnLP0RqqefU4renniRnT
         WHpWBTcymfo+fpuyv5tD/V6T8Nv7MKU/m2la5Kmqz3aqJVUy9ST9Fd6rkRhQ0pMhTzoj
         rpFadWEA8Ocj2GscdNmOZEakuUNxc/ENqbJXt1vkMtOqkzS0vuPRiRzVkX8JLJnhCtFL
         AlcQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772456247; x=1773061047;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=A4sw1FqBMT7nXxPURsGhVu+Kxp3Tqh0F1/FVVl4vg/s=;
        b=PPYRD90DAgmxvTYWfld7do+dCZYafzgSPlRo0Jynfxf31bJlmR2DNNo2g/m5tGyKQN
         jSSeXbJ7pnfdtGnGfkO5jW5vWLxazKQDelXEs7l5kgzA7GwfYXpas2x4Mg+KiH4ScfIL
         RxeRLrFxaaHzfsx0pCcAJUzKJFs3ODtt+Tb4C+fpgumOms4VH5Lrl0VPyAw9fpwfiSRY
         PLCNBCbNYDmWcJnENXKXHoYpV4VapIIXBXDMGxsCz6GTZCfXmUfj747T2jMlz/R+VIY+
         +XfKB1eVI0Jqwjbdg7mYMU5s84bmQMDd/lEb8KKdHYNsB1ekF2Xq/m4KPPp904t3eNBo
         eHhA==
X-Forwarded-Encrypted: i=1; AJvYcCX5j4TX29SjS6G2OjY03Bbnzwo3hifndnoZjQRtbLC9TGvdEyVgK86z3Gov2C6s2/QJnC4mGA47vJY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyI1ho3wq6tz+8/Z6bOzLUuabXjXeD17O9el6uPZ3/p//RRcsyg
	bYc0mnST+KgR7XdQOnVcZ1B5N45pmc050WV7o675qeTUMqJY15Qp4ERflwQCjVN+SbT1wkaLAh6
	18v0=
X-Gm-Gg: ATEYQzxPDbpzJVi2ur8ZCaI2QucdBXmAf/akQ1lKj0m021Lw68PcQIS9EjkZxLbjNXG
	MeAwHF0N4PAiNo3lcu7DWO/lyhJ7BwMlLdkFpSDnkL+wzmTevP1DUtMg2PHd8w7RpeFG0rDDs+/
	YFtZu5Did6TtuBn+HngBJsoW6kEDe5l0cQfJ/QAA08Xr4ZHRHnEHwnSyuofWqoBW6USdZN6zZdL
	5UXTTwuBBaT0EOntaAPXNuqzPF3oUi5lwpZWFIuuFpMNxjY3BUx4uCszwawN6xKj+M3Rmvdyzpc
	O3gRc0+kmMUy0/O5bL1Olr2O4fjqzZTqeAo3FKFKDBYKAiAiJD+1kP10j1PFyb5hjDDy27KMdxF
	Wln/9qaRw0rEWo3NP90N9/5mDXk8hqLF2shRKRowxRDaV+1/4HiRmOLXuJMwFODpMSxybIj6IYU
	Q8K7hslajRRaHvp3pQEsoJb4Tpu7UKqwiX0a02pC41TFC9fAjjmC8+5hvtDzmSO0cHNWsQgUUGd
	NRBcix6HR5TtWc=
X-Received: by 2002:a05:6000:2c06:b0:439:8559:98b with SMTP id ffacd0b85a97d-4399d97f826mr19942122f8f.9.1772456247038;
        Mon, 02 Mar 2026 04:57:27 -0800 (PST)
Message-ID: <f11e7bbc-3bb4-497a-a189-5e4d27e5aeb9@suse.com>
Date: Mon, 2 Mar 2026 13:57:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 01/14] x86/pv: Don't assume that INT $imm8 instructions
 are two bytes long
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: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
 <20260227231636.3955109-2-andrew.cooper3@citrix.com>
 <bf83838a-8401-4eb7-aea8-25ce59c9d492@suse.com>
 <c8013b73-de27-4354-9e45-da7d47c8b190@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <c8013b73-de27-4354-9e45-da7d47c8b190@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02.03.2026 12:43, Andrew Cooper wrote:
> On 02/03/2026 11:03 am, Jan Beulich wrote:
>> On 28.02.2026 00:16, Andrew Cooper wrote:
>>> @@ -1401,6 +1402,53 @@ int pv_emulate_privileged_op(struct cpu_user_regs *regs)
>>>      return 0;
>>>  }
>>>  
>>> +/*
>>> + * Hardware already decoded the INT $N instruction and determinted that there
>>> + * was a DPL issue, hence the #GP.  Xen has already determined that the guest
>>> + * kernel has permitted this software interrupt.
>>> + *
>>> + * All that is needed is the instruction length, to turn the fault into a
>>> + * trap.  All errors are turned back into the original #GP, as that's the
>>> + * action that really happened.
>>> + */
>>> +void pv_emulate_sw_interrupt(struct cpu_user_regs *regs)
>>> +{
>>> +    struct vcpu *curr = current;
>>> +    struct domain *currd = curr->domain;
>>> +    struct priv_op_ctxt ctxt = {
>>> +        .ctxt.regs = regs,
>>> +        .ctxt.lma = !is_pv_32bit_domain(currd),
>> The difference may not be overly significant here, but 64-bit guests can run
>> 32-bit code, so setting .lma seems wrong in that case. As it ought to be
>> largely benign, perhaps to code could even be left as is, just with a comment
>> to clarify things?
> 
> LMA must be set for a 64bit guest.  Are you confusing it with %cs.l ?

Indeed I am, sorry.

>>> +    struct x86_emulate_state *state;
>>> +    uint8_t vector = regs->error_code >> 3;
>>> +    unsigned int len, ar;
>>> +
>>> +    if ( !pv_emul_read_descriptor(regs->cs, curr, &ctxt.cs.base,
>>> +                                  &ctxt.cs.limit, &ar, 1) ||
>>> +         !(ar & _SEGMENT_S) ||
>>> +         !(ar & _SEGMENT_P) ||
>>> +         !(ar & _SEGMENT_CODE) )
>>> +        goto error;
>>> +
>>> +    state = x86_decode_insn(&ctxt.ctxt, insn_fetch);
>>> +    if ( IS_ERR_OR_NULL(state) )
>>> +        goto error;
>>> +
>>> +    len = x86_insn_length(state, &ctxt.ctxt);
>>> +    x86_emulate_free_state(state);
>>> +
>>> +    /* Note: Checked slightly late to simplify 'state' handling. */
>>> +    if ( ctxt.ctxt.opcode != 0xcd /* INT $imm8 */ )
>>> +        goto error;
>>> +
>>> +    regs->rip += len;
>>> +    pv_inject_sw_interrupt(vector);
>>> +    return;
>>> +
>>> + error:
>>> +    pv_inject_hw_exception(X86_EXC_GP, regs->entry_vector);
>> DYM regs->error_code here?
> 
> Oh.  I'm sure I fixed this bug already.  I wonder where the fix got lost.
> 
> Yes, it should be regs->error_code.

Then (plus with my confusion above sorted)
Reviewed-by: Jan Beulich <jbeulich@suse.com>

>>  Might it alternatively make sense to return a
>> boolean here, for ...
>>
>>> --- a/xen/arch/x86/traps.c
>>> +++ b/xen/arch/x86/traps.c
>>> @@ -1379,8 +1379,7 @@ void do_general_protection(struct cpu_user_regs *regs)
>>>  
>>>          if ( permit_softint(TI_GET_DPL(ti), v, regs) )
>>>          {
>>> -            regs->rip += 2;
>>> -            pv_inject_sw_interrupt(vector);
>>> +            pv_emulate_sw_interrupt(regs);
>>>              return;
>> ... the return here to become conditional, leveraging the #GP injection at
>> the bottom of this function?
> 
> To make this bool, I need to insert a new label into the function.

Why would that be? Simply skipping the return and falling through will do,
afaics.

>  I
> considered that, but delayed it.  do_general_protection() wants a lot
> more cleaning up than just this, and proportionability is a concern.

Whatever you exactly mean with this.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 14:26:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 14:26:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244261.1543698 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx4DV-0007bH-3F; Mon, 02 Mar 2026 14:25:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244261.1543698; Mon, 02 Mar 2026 14:25:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx4DU-0007b9-Vi; Mon, 02 Mar 2026 14:25:48 +0000
Received: by outflank-mailman (input) for mailman id 1244261;
 Mon, 02 Mar 2026 14:25: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=k0sz=BC=bounce.vates.tech=bounce-md_30504962.69a59ddd.v1-60e17a7ffa8142d7a53ab178543b7c2f@srs-se1.protection.inumbo.net>)
 id 1vx4DT-0007b2-TI
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 14:25:47 +0000
Received: from mail178-23.suw51.mandrillapp.com
 (mail178-23.suw51.mandrillapp.com [198.2.178.23])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id acc85e85-1643-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Mar 2026 15:25:35 +0100 (CET)
Received: from pmta13.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail178-23.suw51.mandrillapp.com (Mailchimp) with ESMTP id
 4fPh6j3NX6z35hTTc
 for <xen-devel@lists.xenproject.org>; Mon,  2 Mar 2026 14:25:33 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 60e17a7ffa8142d7a53ab178543b7c2f; Mon, 02 Mar 2026 14:25: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: acc85e85-1643-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1772461533; x=1772731533;
	bh=mdLDX9eD5d+3ZMlNItmrm+QdS3R/t0XHGWI+EnCSP1g=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=KaI7wtHnMo0ypLIdipwCjPKvaGtNo7KC8Pmw/PWpfbZGtBPjXZDvRg2FKB9Cg9tKY
	 hWoEjNl6gOeWqnFRJIJ3V2SukkmHkxdpkEob3AQej4JG6QYD/QlPxUZiw2WJ2aVLa2
	 tFTxT/Qe3Aq0Gc9hgOnt1nWZMkia7FK1kpEbpFCLU2u37SUu5fmI1tKINFZLMBd/6I
	 0cceDis5dJ/gfpHU7Y36TbFLok0BbqSI+rGhFcD1FTvptciM6gHcna6yAIDGBUQnDu
	 UGIvvJSgj6u8ls8MXL61YN67aRFNg/s3vb718rR5/QIiQsjbFUv9tRn/uNAjDQuziC
	 uNIDoaNkqrFnQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1772461533; x=1772722033; i=anthony.perard@vates.tech;
	bh=mdLDX9eD5d+3ZMlNItmrm+QdS3R/t0XHGWI+EnCSP1g=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=iqAz9FYIDqvVI/1HAeahqPtHW5joc7hlpMAF4WfxQ+b5PbpXh1fTe2pH2rt3GaMcd
	 wJaGV49sotUgpkeJUIkU6m47e6ni0KkixhZUj+FwKMJbD8e/qoM6wDgIxF8ebWhKDm
	 a8S1z/GXMRrtR8/G3dxWiXxnNmQ37HNx/YgER2nItm50dHVVZkNQhOvQ9mr9zSLZ/x
	 oKJtv/2+ShOpo2bbIquUzNkUaFhAwiew0hIa75UdtiQ5U1ZPfMhrQjl5lFQ1jpgWrO
	 z/nN4wCgebzq5vblBO4MyOhDUfficquj523J68FtktIDhmoHv2etLUKjQRBpQ/8vgD
	 GD3D93oAK4B7A==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v5]=20xen/domain:=20introduce=20DOMID=5FANY?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1772461531919
To: dmukhin@ford.com
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org
Message-Id: <aaWd2d8yzU-mQ6Ub@l14>
References: <20260205235126.3764953-1-dmukhin@ford.com>
In-Reply-To: <20260205235126.3764953-1-dmukhin@ford.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.60e17a7ffa8142d7a53ab178543b7c2f?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260302:md
Date: Mon, 02 Mar 2026 14:25:33 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Feb 05, 2026 at 03:51:26PM -0800, dmukhin@ford.com wrote:
> diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_create.c
> index bfc9149096a3..714e71441498 100644
> --- a/tools/libs/light/libxl_create.c
> +++ b/tools/libs/light/libxl_create.c
> @@ -676,15 +676,14 @@ int libxl__domain_make(libxl__gc *gc, libxl_domain_config *d_config,
>                  if (ret < 0)
>                      break;
>  
> -                v &= DOMID_MASK;
> -                if (!libxl_domid_valid_guest(v))
> -                    continue;
> -
> -                local_domid = v;
> +                local_domid = v & DOMID_MASK;
>              } else {
>                  local_domid = info->domid; /* May not be valid */
>              }
>  
> +            if (!libxl_domid_valid_guest(local_domid))
> +                local_domid = DOMID_ANY;

Well, that make it possible to have DOMID_ANY selected when a "random"
domid was asked for, and this value is more likely than any other domid.
I don't think it's wise to change that. The domid generated in the
random case was already valid, no need to check again.

Coud you move the new validity check into the case where domid isn't
"random" or introduce a new case in the if/else chain ?
(something like that for the second option: if (domid==random) elif
(domid.is_valid) else (use domid))

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 02 14:48:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 14:48:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244271.1543707 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx4Yt-00022A-Of; Mon, 02 Mar 2026 14:47:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244271.1543707; Mon, 02 Mar 2026 14: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 1vx4Yt-000223-Lu; Mon, 02 Mar 2026 14:47:55 +0000
Received: by outflank-mailman (input) for mailman id 1244271;
 Mon, 02 Mar 2026 14:47: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=OlTG=BC=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vx4Ys-00021v-BQ
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 14:47:54 +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 c718f7ea-1646-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Mar 2026 15:47:48 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV4PR03MB8283.namprd03.prod.outlook.com (2603:10b6:408:2da::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.21; Mon, 2 Mar
 2026 14:47:44 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9654.020; Mon, 2 Mar 2026
 14:47: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: c718f7ea-1646-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Lk0l+qY9hr2oIpYOWZtB/razWGAC6pzilt7De7ajta4Z80TIy9AZd+AVmgUVWzzWL/Cys8ijVnZe0FBhWYPRq9CjAXN0JckWfG/y/GlrVOW9v6jE8S4rl0qcVtBGL3ikDMuqyn6mpe+0vkl+vKVM+G+vLq9GTsQxclH5CPnphwLYklgd2XSC5Wf5zwNYwKDveMhtfytZ2FFkNa2Qyl/bC7RJv4BSXOIOb8jRp2STvEcvntxnbSLqDL0PXjQHUBOJcdobe/8MPTGeOcFyl5FiV9W6uJeBHjFkUNC8GCe3E6AGSIQoORO5mLKpXr8zWPd5ftwzrNZ5nf4fjIU3KVEOkQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YUgR0VA1hI3ReBjqil9zWhw2fV2myELZil2IMNxGz2E=;
 b=yzn6VaV6KTfI6fWEoL52IvgTGuEtyxPfqYAOJ0KKPHSGBpK+LMQh5GMnFztkglDv/Pe1C9e/jWgKuj95LrIUS1tqnTESkwSMjwpJ+ZqIt6ob3sGodfsZrw3YdbBuoo81ew574au/de4d9tW/92scbbs4M3Iwt52Lvf8oSuiQx06iqL4DqVgCCOGlkj6avo0DLKoUlWXwR5/Ae5mdycL0Qua1JkVRVG5mw2TWHwGVFDd7WP11V3s3qGVL/GQxlOCwocekcrKxuEdoadjElRgBc4rgzaT7nti8Y77TgKHBecEHbX+S9EwP/gMf+uUgJbQVujGSvCk9uEG6l45EzYoSNA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YUgR0VA1hI3ReBjqil9zWhw2fV2myELZil2IMNxGz2E=;
 b=xY8vP6H4UO3YYzhqMeZfkOFJmvx/5viIohabCsZ/alC9ai549wlvfgnwvvPXmgE/KaHYbARBQ6485NQuiVItFtHNT4h2ZQmlOyA9so/ozy9dv839viHZNwVwIajxuZ9/Edv6hbrBjd1NvyO9uSnyECuam6Sb33G2FhALOoFtCuM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <ba50a431-db37-4314-baad-e03edb84b396@citrix.com>
Date: Mon, 2 Mar 2026 14:47:41 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 02/14] docs/guest-guide: Describe the PV traps and
 entrypoints ABI
To: Jan Beulich <jbeulich@suse.com>
References: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
 <20260227231636.3955109-3-andrew.cooper3@citrix.com>
 <4052793e-094d-449b-af97-e2d068836366@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <4052793e-094d-449b-af97-e2d068836366@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO6P123CA0034.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:2fe::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_|LV4PR03MB8283:EE_
X-MS-Office365-Filtering-Correlation-Id: 0c6b6e7f-a237-4a7b-79c6-08de786aa9d2
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:
	NkfcPSBy+VfHocfs0hOs2xkLYhC1+UlE8MRuvNqDBMZ6B3bc6A4j7i/l4r/86sjfcXrZMakbN8era7bztwJDrgojrWGB9UkCg4/eQTBX78awXzNf5r7buZhIcmwBxJan+eknLaLtCQmbJeUm7IXeFs0gGX8wkMEyl2KqJVEIo6JQupsWk8l5mcF5dhEslzmuzvYeH4BQow6P12J9hOZCBn+2ChiVlZr6RafVALn5I78zoFfrcJBr2gz/4M2XcGKJsaHJsDt4X2C27HJAvu+gY08+SqLHWQSdmk1eFB6TjKFqiYokOMsctysq6osJUT3N0WaJ63ex2/jzAefwFpt0saus3LtNfwjbCPSjALeFVs17lL6kYEOezrwPje0RNuuVjjWlDzJKOH5+WHIhf+Uy3QWMQtBRbEKI1l0cSIq7f4k4oJ5bJpRi51rVNrjK+fN58maKSiClp6VkiJyELYRhVfANrXQx6nMJPEdc5JpsauFi7MQ7GThSycLeOw9490ru/dW5Ck1iHH6vpW3rWA5sjL4XkYUoMaqVZamDqLVoetlNj875YONGkYvpQMAPXsysDck7r8yq3szD9WRFwRuHPx4FrZvBB8mFbnK9JFJ8MZT95aKZ/0da/5FM9MLui0OcQMQGeOl7T+cBvh3vVLxYhNO6y9ItO3oxmRxkWM9Iad78HCvk2/PlHKMweUkJv1BPVuu550CfQeI0KhO4AjtJ3cNQQeX5rsMgtKGPqNSgzM0=
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?eDJneXAvRDZZRWNKOTYzSURPaStvTUI2UE5rRlVoZEIrSG1QUjU3ZFMrYmll?=
 =?utf-8?B?bXRZOUJoRXBWVHlQUjJncVB4c2c1b0pJeDBJWU14d3F2cHZJZzQ3N1ZzL0w0?=
 =?utf-8?B?VmNORnpYZm03VS8vUVMzTXd4b0xDSWtzd1VGaVU0QlptcFpacXQ3bGdBdXdn?=
 =?utf-8?B?ZVo2elhWeW5iS1laRE9EanFMbkMwMS9zOEFPQVlCdHZLM2dsM3NYaEJ0TzhU?=
 =?utf-8?B?RjJZenRrVnhPcGhwVjRuUHJjOWZJczhTRXJTbldCUTNBcUV5WEV1b1JEcUpE?=
 =?utf-8?B?UGlFVmxVU3dOcmhyVVJVTHdqL2RGL244L3Rla09ISTRNNGxETnZRTWVIcjdv?=
 =?utf-8?B?eGpZRzJ6MHgxUXZGaFNNaFBXVGxlT0h1SjJ2NDZtVGgzaWZ2Qnp2aFN6RVRH?=
 =?utf-8?B?ZGxVMDErSEdVOHFjZ0YzWTdTWkxQOVVxUk15MlB0OEFSdSsyYXVMUktXZnJw?=
 =?utf-8?B?QXYzaE9iVDk3cFNVOUpia1QzcWpYSitnd3VQQmZ6MEFsKzNXVHhhV2JmSWkw?=
 =?utf-8?B?OG1iNTFnbW1pZ2dDTmVFKzNYTVhYQjZEZ3Z5RjNzdGlNMFVSNUZQZVdvMVly?=
 =?utf-8?B?MnRCYWx5YjZiNExEaGVnZjZybVFDbkQ3VnNVRTFiZVI4cVNYQURyMUY2WXdq?=
 =?utf-8?B?clZrUzhCUTZSenhmQzFxb3Rybno1NnE3MnAwS2k4UkV4K3ZiTFp5My9KREtE?=
 =?utf-8?B?cUVPZ2RqUXhoODk4QUNUVElxOHQ0SHNOemIzL1lIRjY5SjVkTjliM0JDVWZy?=
 =?utf-8?B?WEVycmN5MElqSjZaekZOM1hQY1RkMks4dUk1R1pPSnFqbHB1QU1LV28xdVpk?=
 =?utf-8?B?VWRYZUx3Z3hCb2VGeGRuSkt5TjRaSnRObS9FNjkrV2tJalI3UDEyM3QwdGdp?=
 =?utf-8?B?blZnRFJzRmtMM0l5Uis2M1RsbXBmV2xEdUIxMm9XMVZlQnRibVpKZHVERU1y?=
 =?utf-8?B?K3NORFdxcnBteEUvSWsyb2lKcjg4S1Z5WjYvK21OOHE5ZWJOaUQxVlJaejA0?=
 =?utf-8?B?djJDRnl6OUMyZkMrTVFiTCtkMTRIYUU5UmthN0gzblg2VFdZY3djT0puYVp2?=
 =?utf-8?B?TGdDdkNkWkVGcGhSS3lQQ3c0RTVzVDMxaURYTHFLRnY0K2tPYkdTRy9uWG4y?=
 =?utf-8?B?KzE1U0VVSDRiMUR4U1hOb3ZXeWdFWVhCN1B2ZG9mSW4xZnJFUFVqdWF0aTI5?=
 =?utf-8?B?L0xOcDZkcno1RmVXMERIUWxaYXlTV0Viamw5aTdaUlZ4a0Z6bitkMzBCdWJX?=
 =?utf-8?B?TTVrOXFpM0owNWpNSDF0ZTZUSm0zRDdBMnpZdWhMQUcvL0cwdnlodzB0cVE2?=
 =?utf-8?B?MnpYbjBNUW5oYVJ5UlB6VGFodlRQVEpXek5sb200bWVhQ3pHazZoQ0lCcTlQ?=
 =?utf-8?B?QlprQVBaZVI0dE5GNVBJeWt6VjFvNzJMQithVmdZRm9lcmlUUW90c21EMW9W?=
 =?utf-8?B?eTlqbVA3SlRFbmxzNGpPTnBkVkVVaDllSjdkV3VVQ2w1Z3ErQ0tKNmxYK3VJ?=
 =?utf-8?B?NFJudnVRS2FrMkRwNGZ5MEcrdXNsZGZBYk0vQWxyVWVnK2d2RlI0Qm0xVVBi?=
 =?utf-8?B?dVRKaFVidjNmeTVlam9KRUdLaGxqR2VXWGdBbjVmT1hUVkErWEtsc0tNYUZr?=
 =?utf-8?B?YVNyeFUzUDhkdEFWcWxLWWkzclZURUxnTUZzUjIrSEZhOVRIQVFpNnZEZ1ky?=
 =?utf-8?B?OHp2M2RZdjZVaXlmVml1RzFpRTJuTlh1OVJPSTNhdDJYR0FtclhFdGRlaXJy?=
 =?utf-8?B?clo1bis3RzNlUVJGSG5iK0ZlSkh1akFzcnBkakREK050VllQc0VORlNKRmVC?=
 =?utf-8?B?TUlJOUs2SlNxMHlCS3p0LzFVMUhJNGUzenZCa3hQOHRvaTVsYllTUGNZaWxU?=
 =?utf-8?B?dUQ3V1ZvZ295UzFPVGVjOGVPTGtPcHVISTN1MDhtNUdzM25HWVN3NzdHVkV1?=
 =?utf-8?B?bGlOYzBmWGRmV0FTNWVwNkN0elJrdGh3aDV0WHoraU42U20wclFVMHBwMTZz?=
 =?utf-8?B?a0lLN3RoSlk0aVhybS8yZDdNV0M0OGtvMkdackZ4YkxacVd5YUNMdENsaDE4?=
 =?utf-8?B?NjZuMjczeHZEWVJ1NThtZWxYUktKbExUZ211MXpHbUR4aGdUdTFhRmd2M1Uy?=
 =?utf-8?B?RFdZeFFZc09VcWJkMnQvS2ZUWGlCWWJ6NzFpcloxYTF1Z0xDTFRGK1VOZFJX?=
 =?utf-8?B?Y1h0OTRUOWlLL1ZZQnpRK0xSQ2F4K2RuUDI2dmd6dTJydmkrb2lRYzJMaG45?=
 =?utf-8?B?RFZ5Qy9qV0tOTDZnTUw4eEVnY1F5ODQwYU1zdEpneWl0S1FHZy85bkh4SFFi?=
 =?utf-8?B?ZnplemVFNlFRc1BTQk4wUHRWRjZiQzhZdGN4RFFSUW9BZEs4MkVaQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0c6b6e7f-a237-4a7b-79c6-08de786aa9d2
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Mar 2026 14:47:44.5098
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 591JOMu4Pbp/HGz4uWZmX/m5eN4upOhJs0W9drrdR2FGZ6lUB3Hy9fGqnNdOXNOpIk5qHBS/X2yqwPiBiwVrI9Paokh+ierGIS5OhsZU6XI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV4PR03MB8283

On 02/03/2026 11:19 am, Jan Beulich wrote:
> On 28.02.2026 00:16, Andrew Cooper wrote:
>> ... seeing as I've had to thoroughly reverse engineer it for FRED and make
>> tweaks in places.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks.

>
>> --- /dev/null
>> +++ b/docs/guest-guide/x86/pv-traps.rst
>> @@ -0,0 +1,123 @@
>> +.. SPDX-License-Identifier: CC-BY-4.0
>> +
>> +PV Traps and Entrypoints
>> +========================
>> +
>> +.. note::
>> +
>> +   The details here are specific to 64bit builds of Xen.  Details for 32bit
>> +   builds of Xen, are different and not discussed further.
> Nit: Stray comma?

Yes.  From a sentence refactor.  Will drop.

>
>> +PV guests are subject to Xen's linkage setup for events (interrupts,
>> +exceptions and system calls).  x86's IDT architecture and limitations are the
>> +majority influence on the PV ABI.
>> +
>> +All external interrupts are routed to PV guests via the :term:`Event Channel`
>> +interface, and not discussed further here.
>> +
>> +What remain are exceptions, and the instructions which cause a control
>> +transfers.  In the x86 architecture, the instructions relevant for PV guests
>> +are:
>> +
>> + * ``INT3``, which generates ``#BP``.
>> +
>> + * ``INTO``, which generates ``#OF`` only if the overflow flag is set.  It is
>> +   only usable in compatibility mode, and will ``#UD`` in 64bit mode.
>> +
>> + * ``CALL (far)`` referencing a gate in the GDT.
>> +
>> + * ``INT $N``, which invokes an arbitrary IDT gate.  These four instructions
>> +   so far all check the gate DPL and will ``#GP`` otherwise.
>> +
>> + * ``INT1``, also known as ``ICEBP``, which generates ``#DB``.  This
>> +   instruction does *not* check DPL, and can be used unconditionally by
>> +   userspace.
>> +
>> + * ``SYSCALL``, which enters CPL0 as configured by the ``{C,L,}STAR`` MSRs.
>> +   It is usable if enabled by ``MSR_EFER.SCE``, and will ``#UD`` otherwise.
>> +   On Intel parts, ``SYSCALL`` is unusable outside of 64bit mode.
>> +
>> + * ``SYSENTER``, which enters CPL0 as configured by the ``SEP`` MSRs.  It is
>> +   usable if enabled by ``MSR_SYSENTER_CS`` having a non-NUL selector, and
>> +   will ``#GP`` otherwise.  On AMD parts, ``SYSENTER`` is unusable in Long
>> +   mode.
> The UD<n> family of insns is kind of a hybrid: They explicitly generate #UD,
> and hence do a control transfer. Same for at least BOUND. It's not quite clear
> whether they should be enumerated here as well.

UDn and BOUND are strictly faults, not traps.  They're type 3 (hardware
exception) and provide no instruction length.

The simplest implementation of UDn is nothing.  The decoder already
needs a signal for "not an instruction I know" which is wired into #UD. 
All the manual does by defining these "instructions" is promise that
nothing else will be allocated in that opcode space.

BOUND is weird.  I'm not sure what more can be said about it.

Either way, #UD and #BR are not interestingly different from e.g. #PF
from a PV guest's point of view.

>
>> +Xen's configuration
>> +-------------------
>> +
>> +Xen maintains a complete IDT, with most gates configured with DPL0.  This
>> +causes most ``INT $N`` instructions to ``#GP``.  This allows Xen to emulate
>> +the instruction, referring to the guest kernels vDPL choice.
>> +
>> + * Vectors 3 ``#BP`` and 4 ``#OF`` are DPL3, in order to allow the ``INT3``
>> +   and ``INTO`` instructions to function in userspace.
>> +
>> + * Vector 0x80 is DPL3 in order to implement the legacy system call fastpath
>> +   commonly found in UNIXes.
> Much like we make this DPL0 when PV=n, should we perhaps make vectors 3 and 4
> DPL0 as well in that case (just for formality's sake)? Maybe 4, like 9, would
> even want to be an autogen entry point then?

We could, but does that gain us anything?

For 0x80, we get another vector to use for regular interrupts, but that
doesn't work for the vectors below 0x10.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 14:50:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 14:50:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244279.1543717 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx4bg-0003Wo-4g; Mon, 02 Mar 2026 14:50:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244279.1543717; Mon, 02 Mar 2026 14:50:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx4bg-0003Wh-1U; Mon, 02 Mar 2026 14:50:48 +0000
Received: by outflank-mailman (input) for mailman id 1244279;
 Mon, 02 Mar 2026 14:50: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=9kJt=BC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vx4bf-0003Wb-8X
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 14:50:47 +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 2f40d36c-1647-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Mar 2026 15:50:41 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-439b7a87fb5so640404f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 02 Mar 2026 06:50:41 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439b503424fsm11376873f8f.22.2026.03.02.06.50.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Mar 2026 06:50: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: 2f40d36c-1647-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772463041; x=1773067841; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=olwvB+jj70z4Qp6+y38rWMh4PGJTz8qqZg+5vvB8Bi4=;
        b=bj+t/u+heQkUWn8jBSONrdWeVm2YBqQ3T0ZD5zAqWwi6gMXksX/64ftHwqHFNd3vmK
         1Y+EZV4OBZWWYZclU63Fo1kH87SdoktvDc/nh67PyrhqvKCMGAcHTWn8bGibndAKg92d
         ufkaPR2ySZv6a4mUCYJdu8qVQks9j4dD8eujZ4Mwiqm4GTQZ+aoOJiB9VD6iLb0uacz3
         4ABs70grZfaB52Bc5B9KzKkJOMyh/JpDaF5h4GmGgO4vLOtT35ijLMD2ZwUKGieUQ/sj
         Ji2vzcBtNEMXCGgAOLxCU1UO7FziL6sPTUgSoOsVqj+lGpVqh+5WklwDnDAAZQdInF7x
         nMFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772463041; x=1773067841;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=olwvB+jj70z4Qp6+y38rWMh4PGJTz8qqZg+5vvB8Bi4=;
        b=PQMvGBE8QWgMQjaZ7EtoaSdAhtCRh65Ek3prNtX7gLag1qGI+t6WqoAKSf4mfcUm6F
         RBxV6pEV5fsISDVG1Bt6FQ8I9YE7zot6BjY8qRGC9vK+siR6MoR/emUdA/91vX6Bt1e3
         uuUzMgLpV9/sIQdRt1m/ya0Bam2ZGgtHYnF2g7J8BFfyTwTDCCU5QW6rKv5uM4n3Kxzk
         5e4LkAvbGsez3775G/MdNYMRUD3+1TAQLDDrKzZGBP08pLW0wKzS5Ky0s/8uPW71P6KQ
         0EEycPG2q6nbOWuduqJj3R4wc5TLBeZhyDNWZUzQ5IxOy3Ft9oEnNYzHrznGqy/VR5E8
         xayw==
X-Forwarded-Encrypted: i=1; AJvYcCUV9xMabRSrkTWd3B4ilbrUHgUP8GJviADTRfVHFqTjw0Ug6UdJX/l1YXga7egc+oUpZopaqq/lInQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw9c/5pwv+9Z9//fkd4zvlgnYBisaR1XfRqVSNCT4p398K+rU+A
	GUS4Zhee7ltbqCO4Dnd46YWkgsD/9yAarIWdkKn1rZWJI/Huy1XPnVhQRq8rIU3FLw==
X-Gm-Gg: ATEYQzwsxVErkoLhcIGMcUuDugB++4PG0C7RwMMqKR5pG0eq5bM56EKjaseMZIuqTAR
	hK4zsSKExUWyPe20+j/YcdT68Od1d8Tx6yHNMrsImBfL6HjKJtwnZnRkAOgJT2aUfMj8CHTnc9o
	ATUxMbXirPzSwu0dwdsZImt9vGIkR+P7qWMMoKlNBcS2pArcOYrT81fFzBwLlNxupKl+Ct2MjiN
	VLZgroLAMNAZioJHwLQ3kRGx/N6VUMelR78pfLOAkJuM2/xCr36cVtBvT4+zvnhrU6wSu49pAoD
	9K2ht38VVsCTPL9uzyyA7CTmFBgJDfSuhaeLWiBBBF5RBkIpl/McXfs4VHOYgWb7vddOOUurohQ
	3tGAwlZeQlK5SvnElUd1wPI6vQGNPxGloGhxorsgnkLfyJMCE0Zgeu2JnZA8WGVqVt1Sa96LO3C
	S++R/0jfuexFvfMHSAWrWY17A+d5k4IRb06Kun8mG4wIX6Bad37BMjdn0r80dkrU00/RoQ8jUZJ
	KNrSDAX+ce+pa0=
X-Received: by 2002:a05:6000:2001:b0:439:b4c9:9061 with SMTP id ffacd0b85a97d-439b4c99198mr8946651f8f.5.1772463041130;
        Mon, 02 Mar 2026 06:50:41 -0800 (PST)
Message-ID: <f3e84e41-438f-4a28-a2e6-863f818e948b@suse.com>
Date: Mon, 2 Mar 2026 15:50:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 06/14] x86/traps: Don't configure Supervisor Shadow
 Stack tokens in FRED mode
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
 <20260227231636.3955109-7-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260227231636.3955109-7-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.02.2026 00:16, Andrew Cooper wrote:
> FRED doesn't use Supervisor Shadow Stack tokens.  This means that:
> 
>  1) memguard_guard_stack() should not write Supervisor Shadow Stack Tokens.
>  2) cpu_has_bug_shstk_fracture is no longer relevant when deciding whether or
>     not to enable Shadow Stacks in the first place.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> The SDM explicitly points out the shstk fracture vs FRED case, yet PTL
> enumerates CET-SSS (immunity to shstk fracture).  I can only assume that there
> are other Intel CPUs with FRED but without CET-SSS.

Isn't CET-SSS still relevant to OSes not using FRED (much like you do for
the fred=no case)?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 14:54:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 14:54:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244291.1543728 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx4fA-00048b-No; Mon, 02 Mar 2026 14:54:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244291.1543728; Mon, 02 Mar 2026 14:54:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx4fA-00048U-Jw; Mon, 02 Mar 2026 14:54:24 +0000
Received: by outflank-mailman (input) for mailman id 1244291;
 Mon, 02 Mar 2026 14:54:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xYbC=BC=kernel.org=david@srs-se1.protection.inumbo.net>)
 id 1vx4f9-00048O-KI
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 14:54:23 +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 afbeb498-1647-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Mar 2026 15:54:17 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id A22D760008;
 Mon,  2 Mar 2026 14:54:16 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D656BC19423;
 Mon,  2 Mar 2026 14:54:14 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: afbeb498-1647-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1772463256;
	bh=xdku5nig+Gpe25ps3dCqYirfeqxPb+5bKOKhCRkUJYg=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=UPpsNxCTCH2blvH4w0w/jJ1uNxzlymqn7amt368g6EWM8QvGvID3bObS60ccOpyND
	 HAIkiYw4t2sxYLmPVF+fHrlSfknoUysycFnsYeg2bwQNQ75N07g9A2072I8QKx1a81
	 gVJg1SzyUdP2vkCKMC1exl2KjMgBLttDCBDqICh0qCoFV251Ad2TpvLANGUlbvQzqY
	 jilHRz6FHN7uCWt2iHKsuYftP8aVE9eMDcdEldNQpdBQSQ3aHnLKRckGzN+kixQ/rG
	 mVfbKvteJbqXhTZv1DelJq2Edh3ST8tmhSv4X8cncYmcfdELLBhEAglEtkzeNNhARn
	 ha6UbtSzTkLwA==
Message-ID: <663cff60-8181-4a47-beff-204bfe01bb06@kernel.org>
Date: Mon, 2 Mar 2026 15:54:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Excluding init_on_free for pages for initial balloon down (Xen)
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 xen-devel <xen-devel@lists.xenproject.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Andrew Morton <akpm@linux-foundation.org>, Vlastimil Babka <vbabka@suse.cz>
References: <aaRVcVmtv2UBD-GF@mail-itl>
 <513e624f-35c1-4d43-ba3f-c96af613d400@suse.com>
 <224968e6-7236-4efe-bcc0-ab39ac0c6c45@kernel.org> <aaVuB3x3y4ROr5XA@mail-itl>
From: "David Hildenbrand (Arm)" <david@kernel.org>
Content-Language: en-US
Autocrypt: addr=david@kernel.org; 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
 B3JfpUqcWwE7vUaYrHG1nw54pLUoPG6sAA7Mehl3nd4pZUALHwARAQABzS5EYXZpZCBIaWxk
 ZW5icmFuZCAoQ3VycmVudCkgPGRhdmlkQGtlcm5lbC5vcmc+wsGQBBMBCAA6AhsDBQkmWAik
 AgsJBBUKCQgCFgICHgUCF4AWIQQb2cqtc1xMOkYN/MpN3hD3AP+DWgUCaYJt/AIZAQAKCRBN
 3hD3AP+DWriiD/9BLGEKG+N8L2AXhikJg6YmXom9ytRwPqDgpHpVg2xdhopoWdMRXjzOrIKD
 g4LSnFaKneQD0hZhoArEeamG5tyo32xoRsPwkbpIzL0OKSZ8G6mVbFGpjmyDLQCAxteXCLXz
 ZI0VbsuJKelYnKcXWOIndOrNRvE5eoOfTt2XfBnAapxMYY2IsV+qaUXlO63GgfIOg8RBaj7x
 3NxkI3rV0SHhI4GU9K6jCvGghxeS1QX6L/XI9mfAYaIwGy5B68kF26piAVYv/QZDEVIpo3t7
 /fjSpxKT8plJH6rhhR0epy8dWRHk3qT5tk2P85twasdloWtkMZ7FsCJRKWscm1BLpsDn6EQ4
 jeMHECiY9kGKKi8dQpv3FRyo2QApZ49NNDbwcR0ZndK0XFo15iH708H5Qja/8TuXCwnPWAcJ
 DQoNIDFyaxe26Rx3ZwUkRALa3iPcVjE0//TrQ4KnFf+lMBSrS33xDDBfevW9+Dk6IISmDH1R
 HFq2jpkN+FX/PE8eVhV68B2DsAPZ5rUwyCKUXPTJ/irrCCmAAb5Jpv11S7hUSpqtM/6oVESC
 3z/7CzrVtRODzLtNgV4r5EI+wAv/3PgJLlMwgJM90Fb3CB2IgbxhjvmB1WNdvXACVydx55V7
 LPPKodSTF29rlnQAf9HLgCphuuSrrPn5VQDaYZl4N/7zc2wcWM7BTQRVy5+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: <aaVuB3x3y4ROr5XA@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

> 
>> Whatever leaves the buddy shall be zeroed out. If there is a
>> double-zeroing happen, the latter could get optimized out by checking
>> something like user_alloc_needs_zeroing().
>>
>> See mm/huge_memory.c:vma_alloc_anon_folio_pmd() as an example where we
>> avoid double-zeroing.
> 
> It isn't just reducing double-zeroing to single zeroing. It's about
> avoiding zeroing such pages at all. If a domU is started with
> populate-on-demand, many (sometimes most) of its pages are populated in
> EPT. The idea of PoD is to start guest with high static memory size, but
> low actual allocation and fake it until balloon driver kicks in and make
> the domU really not use more pages than it has. When balloon driver try
> to return those pages to the hypervisor, normally it would just take
> unallocated page one by one and made Linux not use them. But if _any_
> zeroing is happening, each page first needs to be mapped to the guest by
> the hypervisor (one trip through EPT), just to be removed from them a
> moment later...

The same is true for most balloon drivers, including virtio-balloon.

So far nobody really cared about that, though, as init_on_free usually
comes with such a high performance price tag that people in cheap VMs
(where you overcommit etc) don't enable it.

__GFP_BALLOON_OUT is just nasty.

We could probably have a special allocation interface (not exposed to
arbitrary kernel modules) and have things like mm/balloon.c consume that.


IIUC, xen balloon does not use the memory balloon infrastructure,
though. So we'd need some EXPORT_SYMBOL_FOR_MODULES() magic.


Like an

	struct page *alloc_balloon_pages(gfp_t gfp, unsigned int order);

Where we only support a subset of gfp flags, for example, to now having
to deal with mempolicy.

But it needs a bit of code to make it fly, so I am not sure if the page
allocator wants to support that.

-- 
Cheers,

David


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 15:11:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 15:11:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244302.1543737 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx4vQ-00071a-Tm; Mon, 02 Mar 2026 15:11:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244302.1543737; Mon, 02 Mar 2026 15: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 1vx4vQ-00071T-Qu; Mon, 02 Mar 2026 15:11:12 +0000
Received: by outflank-mailman (input) for mailman id 1244302;
 Mon, 02 Mar 2026 15:11:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cp9A=BC=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vx4vQ-00071N-0N
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 15:11:12 +0000
Received: from fout-b6-smtp.messagingengine.com
 (fout-b6-smtp.messagingengine.com [202.12.124.149])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 09dfad83-164a-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 16:11:08 +0100 (CET)
Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])
 by mailfout.stl.internal (Postfix) with ESMTP id 4C57C1D00231;
 Mon,  2 Mar 2026 10:11:06 -0500 (EST)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-05.internal (MEProxy); Mon, 02 Mar 2026 10:11:06 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 2 Mar 2026 10:11:04 -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: 09dfad83-164a-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm3; t=1772464266;
	 x=1772550666; bh=G24RGZBjHPFOcShGwGjtJ8caC1FzHlA/t0hF5wZgn9c=; b=
	bv1cihPJhnbx3v8DhHB79R5TJpJVuiU8OxBRgcisWXPnWAzwq7uBh/hdDfN4Ae3X
	C2seMVC7kxmEO9BbMEQu80P/Dnj+NttxSLMlNdBGypCOpAmedaXG6N0lUUUpB+Cj
	q43QNt1hnX7nkxtns4wkWVjc7C+VGAj3Wgz896nEM5xoHflPY5hspRRKBxDLAVXG
	z3hyGypHxksDyYAQO2lSRnaqluqgHGoQysr/2HZuS4S7UrCuNYpchPT3IYYd15rW
	GfK++/ZJrCa/B1N/aEaIc9+Cb92iIFeLKhqviT+TPYj91s8JkXL7XeOH64thER+H
	xEebQpaFpIhU/6yJCZu8Pg==
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=
	1772464266; x=1772550666; bh=G24RGZBjHPFOcShGwGjtJ8caC1FzHlA/t0h
	F5wZgn9c=; b=RzaYC7Vh/wmZhzD40BszbqWPqEsg6FNcOJ3gDqILrdiCUd3De62
	oBk0QpWJFrhJfBQRWs3GywP8gYLaLD0EFuoLv2bm/To7bthv6/vIrdPB6AypB7ga
	jy5gXdHL9D7R9uMtaS3ZCjvV8vTHbPb5KXT0icjeGMGu9bc5Msp5Xq3i/K0AEc25
	UiBIFdICkA4FkWPjbM0naS5AnHHVhlR0giMSohwJKG0dcWDYsEqaRonnvXvk6Y/j
	UbYwGtzcWfMDB+3iT6tn+0nwQHUfd+BQSgfg1hzijj4AEeAfxKB8HSYNZVKCDiQj
	8YhRUZjAOXZ1oZGxLREmdSJT3b0yXD1if9g==
X-ME-Sender: <xms:iailaeDZpghtf44tYRwCqGWLaodyWbf0EqSgh1ziUadKBZETYPOJxg>
    <xme:iailaawIGLDLCQMf2Ogvf4tEZx66Bz2AoMLz39YyoqYdHw4wBAut7UqKAMUs1rhCs
    VWxtM3zoTkpTwxFyx5Qso4vCGC-EPTrsKPadIvEugq-LlZgKA>
X-ME-Received: <xmr:iailaT0V2qNAShIpa2T78FrSl4oThmckKSJbVUG_zo-6lDeure62MdJXAprRZ4ztMQVJheMdF6TTb2yqzW70MfS5P40iKSHdI08>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvheektddtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepjedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepuggrvhhiugeskhgvrhhnvghlrdhorhhg
    pdhrtghpthhtohepjhhgrhhoshhssehsuhhsvgdrtghomhdprhgtphhtthhopeigvghnqd
    guvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegs
    ohhrihhsrdhoshhtrhhovhhskhihsehorhgrtghlvgdrtghomhdprhgtphhtthhopegrkh
    hpmheslhhinhhugidqfhhouhhnuggrthhiohhnrdhorhhgpdhrtghpthhtohepvhgsrggs
    khgrsehsuhhsvgdrtgiipdhrtghpthhtoheplhhinhhugidqmhhmsehkvhgrtghkrdhorh
    hg
X-ME-Proxy: <xmx:iailaSxH27vpVDLkqdCVspOgFPwiPOpM4qNXirK0raRbIqF2uMIusw>
    <xmx:iailaSGqkwoKZ1RmBj433ikmczZCAUHBNAh3887YfgivKuw__GrQIw>
    <xmx:iailadZ1cvLoKdtL8fvkm7dSCh4A9DVKEgYEwbkEfVPw0sVzS6Lt3w>
    <xmx:iailacDLvLk-EPzP9Gw_sa0I_ZHT2y9ellDxAdphOKSSnBObA-4ZXg>
    <xmx:iqilaY0HnQb33ioVr7cH80GymHby5IbQVsy_teNrOWas96u321-31s9f>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 2 Mar 2026 16:11:02 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: "David Hildenbrand (Arm)" <david@kernel.org>
Cc: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
	xen-devel <xen-devel@lists.xenproject.org>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Vlastimil Babka <vbabka@suse.cz>, linux-mm@kvack.org
Subject: Re: Excluding init_on_free for pages for initial balloon down (Xen)
Message-ID: <aaWohimzb5P8n0YU@mail-itl>
References: <aaRVcVmtv2UBD-GF@mail-itl>
 <513e624f-35c1-4d43-ba3f-c96af613d400@suse.com>
 <224968e6-7236-4efe-bcc0-ab39ac0c6c45@kernel.org>
 <aaVuB3x3y4ROr5XA@mail-itl>
 <663cff60-8181-4a47-beff-204bfe01bb06@kernel.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="MpPnWTvKkkn2ESlm"
Content-Disposition: inline
In-Reply-To: <663cff60-8181-4a47-beff-204bfe01bb06@kernel.org>


--MpPnWTvKkkn2ESlm
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 2 Mar 2026 16:11:02 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: "David Hildenbrand (Arm)" <david@kernel.org>
Cc: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
	xen-devel <xen-devel@lists.xenproject.org>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Vlastimil Babka <vbabka@suse.cz>, linux-mm@kvack.org
Subject: Re: Excluding init_on_free for pages for initial balloon down (Xen)

On Mon, Mar 02, 2026 at 03:54:12PM +0100, David Hildenbrand (Arm) wrote:
> >=20
> >> Whatever leaves the buddy shall be zeroed out. If there is a
> >> double-zeroing happen, the latter could get optimized out by checking
> >> something like user_alloc_needs_zeroing().
> >>
> >> See mm/huge_memory.c:vma_alloc_anon_folio_pmd() as an example where we
> >> avoid double-zeroing.
> >=20
> > It isn't just reducing double-zeroing to single zeroing. It's about
> > avoiding zeroing such pages at all. If a domU is started with
> > populate-on-demand, many (sometimes most) of its pages are populated in
> > EPT. The idea of PoD is to start guest with high static memory size, but
> > low actual allocation and fake it until balloon driver kicks in and make
> > the domU really not use more pages than it has. When balloon driver try
> > to return those pages to the hypervisor, normally it would just take
> > unallocated page one by one and made Linux not use them. But if _any_
> > zeroing is happening, each page first needs to be mapped to the guest by
> > the hypervisor (one trip through EPT), just to be removed from them a
> > moment later...
>=20
> The same is true for most balloon drivers, including virtio-balloon.
>=20
> So far nobody really cared about that, though, as init_on_free usually
> comes with such a high performance price tag that people in cheap VMs
> (where you overcommit etc) don't enable it.
>=20
> __GFP_BALLOON_OUT is just nasty.
>=20
> We could probably have a special allocation interface (not exposed to
> arbitrary kernel modules) and have things like mm/balloon.c consume that.
>=20
>=20
> IIUC, xen balloon does not use the memory balloon infrastructure,
> though.

Is there some fundamental reason for that? By looking at the code, the
migration to use mm/balloon.c shouldn't be that hard (famous last
words...).

> So we'd need some EXPORT_SYMBOL_FOR_MODULES() magic.

Then this wouldn't be necessary.

> Like an
>=20
> 	struct page *alloc_balloon_pages(gfp_t gfp, unsigned int order);
>=20
> Where we only support a subset of gfp flags, for example, to now having
> to deal with mempolicy.
>=20
> But it needs a bit of code to make it fly, so I am not sure if the page
> allocator wants to support that.


PS adding linux-mm, which I forgot initially...

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmlqIYACgkQ24/THMrX
1yzgLAf/ZIEUT6k9z5/fgbuUUNXHUz/cYZVPQQ7+FxWEUSulVLSDU11knsr8AE8V
KxL6265ebqfUlsCxJC/wi4zFN29L+Dy9JHUy5hMAPUSoQF2DPjKjG6JKvFYixjiA
pT/r6IV65IORZtyKlkkhrcoXI/hKSWclI05axyUwS1xvtEtEmoS1Mb8bZy3jlOue
N9tMSkq7MECf8cTg6CXK+koIG3A3WZDS1ZN3jZy7sF9/tKhQILstDQnsBsm8unfb
+vOUYUGxftpEGYeJLBHcq/ExwQS9E6FX4aaDF/ISzt8Z06KWRxyROBQYFXvPkftN
zhM67qb2vVV2kFIVpKHV6mat3UONCg==
=sXTT
-----END PGP SIGNATURE-----

--MpPnWTvKkkn2ESlm--


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 15:12:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 15:12:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244310.1543747 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx4x8-0007Vj-7f; Mon, 02 Mar 2026 15:12:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244310.1543747; Mon, 02 Mar 2026 15:12: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 1vx4x8-0007Vc-47; Mon, 02 Mar 2026 15:12:58 +0000
Received: by outflank-mailman (input) for mailman id 1244310;
 Mon, 02 Mar 2026 15:12: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=Z8ZE=BC=bounce.vates.tech=bounce-md_30504962.69a5a8f5.v1-fb2ad6a223ec4fbc99e8451c1e815e95@srs-se1.protection.inumbo.net>)
 id 1vx4x7-0007VU-0G
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 15:12:57 +0000
Received: from mail178-23.suw51.mandrillapp.com
 (mail178-23.suw51.mandrillapp.com [198.2.178.23])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 49e04c48-164a-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 16:12:55 +0100 (CET)
Received: from pmta13.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail178-23.suw51.mandrillapp.com (Mailchimp) with ESMTP id
 4fPj9K6ZQHz35hTRY
 for <xen-devel@lists.xenproject.org>; Mon,  2 Mar 2026 15:12:53 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 fb2ad6a223ec4fbc99e8451c1e815e95; Mon, 02 Mar 2026 15:12: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: 49e04c48-164a-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1772464373; x=1772734373;
	bh=RTaZqS3PvGkavhrM8JFJRLxcqXxTqAdbTc8WRXPL040=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=eFAB9KXU6usOD9CQKV3G68e0fgqxb1OWyn7ybo1vFX8TIkvOMBSEHux/JcHVpXAOc
	 rqiI3+Oi7N/B7d6V4qfsEdlTGjyP90jVJ12DYu+UZcCOBDlfcpccoNnOqUMVM7ZNTH
	 F2isDDKQziO0QVMyK45Y7oPZqK66klboYL8JIwg1pRjx+ZX5VPT78ZWuaWfx/VTFcw
	 oJkdMSlt+T+k2I/bcaivm19TRmPUValhahmwXvJNhPcLo4VmcebsWFJBJJBj54stZ2
	 VMWF/lUqHK6wKRxFo+AXA3rTa1xAA1ci5BriHx4LFTZxuq9quw7kZ/LjtRkYrUJcQ+
	 4WjWXG1uQ8RbQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1772464373; x=1772724873; i=anthony.perard@vates.tech;
	bh=RTaZqS3PvGkavhrM8JFJRLxcqXxTqAdbTc8WRXPL040=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=W3YmwKPyca4ki2flYBzM934IYBPtdaS87ix0hAGyHZ0rZfJkyTforXi0cLHcnNNCO
	 wFdl2Ch8EfQ9HNOpZO6c+tpu7w66xmLtYrg2ME1mPJbK0tcMDyZvh+HIdNY5LTI5Yl
	 f/Oxm2FWHeyUJNq6d+HsG6alvrjDJ4W2qPc/9VqD6z5pbEZvdKawTuIRWoEKaOJdEz
	 uNwjnI1KIL6YpEGYiyZOmMqjTom9BSGJv4iLmKUnZOgjGLdW7dWbMdRMJD4fgJfyAE
	 E1xTQ9GmS97jpKiEwITvq7PzZavd94rEJDD4grBv+P3rnrZ+1Rapk3LuxpBP87COLY
	 uAuYpfLwwL1Wg==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v8=201/2]=20libxc:=20Report=20consistent=20errors=20in=20xc=5Fresource=5Fop?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1772464373342
To: "Teddy Astie" <teddy.astie@vates.tech>
Cc: xen-devel@lists.xenproject.org, "Juergen Gross" <jgross@suse.com>
Message-Id: <aaWo9FfgQMYvy_2I@l14>
References: <ec92e54a493a16f5bc085738e943b3778c3a0231.1772211384.git.teddy.astie@vates.tech>
In-Reply-To: <ec92e54a493a16f5bc085738e943b3778c3a0231.1772211384.git.teddy.astie@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.fb2ad6a223ec4fbc99e8451c1e815e95?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260302:md
Date: Mon, 02 Mar 2026 15:12:53 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Fri, Feb 27, 2026 at 05:00:05PM +0000, Teddy Astie wrote:
> xc_report_op doesn't update errno in some error conditions.
> Make sure it reports -ENOMEM in out of memory errors and -EINVAL
> in invalid usages errors.
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
> v7: Introduced
> v8: Use errno to report errors
> 
>  tools/libs/ctrl/xc_resource.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/tools/libs/ctrl/xc_resource.c b/tools/libs/ctrl/xc_resource.c
> index cb6a97202b..ac1524d1bd 100644
> --- a/tools/libs/ctrl/xc_resource.c
> +++ b/tools/libs/ctrl/xc_resource.c
> @@ -28,7 +28,10 @@ static int xc_resource_op_one(xc_interface *xch, xc_resource_op_t *op)
>                                  XC_HYPERCALL_BUFFER_BOUNCE_BOTH);
>  
>      if ( xc_hypercall_bounce_pre(xch, entries) )
> +    {
> +        errno = ENOMEM;

Looking at xc_hypercall_bounce_pre(), it's looks like `errno` should
already be set. On Linux, that would be `mmap()` or `madvise()` updating
it.

>          return -1;
> +    }
>  
>      platform_op.cmd = XENPF_resource_op;
>      platform_op.u.resource_op.nr_entries = op->nr_entries;
> @@ -54,11 +57,15 @@ static int xc_resource_op_multi(xc_interface *xch, uint32_t nr_ops, xc_resource_
>      call_list = xc_hypercall_buffer_alloc(xch, call_list,
>                                            sizeof(*call_list) * nr_ops);
>      if ( !call_list )
> +    {
> +        errno = ENOMEM;

Here, xc_hypercall_buffer_alloc() should already have updated `errno`.
(It's a function called by xc_hypercall_bounce_pre(), so we've got the
same culprit updating `errno`.)

>          return -1;
> +    }
>  
>      platform_ops = xc_hypercall_buffer_array_create(xch, nr_ops);
>      if ( !platform_ops )
>      {
> +        errno = ENOMEM;

Here, xc_hypercall_buffer_array_create() calls `calloc()` and `malloc()`
which will update `errno`.

>          rc = -1;
>          goto out;
>      }
> @@ -66,6 +73,7 @@ static int xc_resource_op_multi(xc_interface *xch, uint32_t nr_ops, xc_resource_
>      entries_list = xc_hypercall_buffer_array_create(xch, nr_ops);
>      if ( !entries_list )
>      {
> +        errno = ENOMEM;

Same as above.

>          rc = -1;
>          goto out;
>      }
> @@ -81,6 +89,7 @@ static int xc_resource_op_multi(xc_interface *xch, uint32_t nr_ops, xc_resource_
>                          platform_op, sizeof(xen_platform_op_t));
>          if ( !platform_op )
>          {
> +            errno = ENOMEM;

With xc_hypercall_buffer_array_alloc(), `errno` is updated by `mmap` or
`madvise`, like the first case.

>              rc = -1;
>              goto out;
>          }
> @@ -90,6 +99,7 @@ static int xc_resource_op_multi(xc_interface *xch, uint32_t nr_ops, xc_resource_
>                     entries, entries_size);
>          if ( !entries)
>          {
> +            errno = ENOMEM;

Same as above.

>              rc = -1;
>              goto out;
>          }
> @@ -137,6 +147,7 @@ int xc_resource_op(xc_interface *xch, uint32_t nr_ops, xc_resource_op_t *ops)
>      if ( nr_ops > 1 )
>          return xc_resource_op_multi(xch, nr_ops, ops);
>  
> +    errno = EINVAL;

Ha! This one was missing indeed.

The patch description will need to be updated with all the chunk be one
been dropped.

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 02 15:20:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 15:20:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244320.1543757 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx54L-0000ld-UE; Mon, 02 Mar 2026 15:20:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244320.1543757; Mon, 02 Mar 2026 15:20:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx54L-0000lW-Rd; Mon, 02 Mar 2026 15:20:25 +0000
Received: by outflank-mailman (input) for mailman id 1244320;
 Mon, 02 Mar 2026 15:20: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=OlTG=BC=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vx54K-0000lQ-Lz
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 15:20:24 +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 5413e994-164b-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 16:20:22 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH7PR03MB7836.namprd03.prod.outlook.com (2603:10b6:610:24d::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.16; Mon, 2 Mar
 2026 15:20:18 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9654.020; Mon, 2 Mar 2026
 15:20: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: 5413e994-164b-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GCVQmWzyHfIo486Eu4WQRMNKDu5qqMMeQ+ZVVwHMCnmQKSnRq79yZ/+SEPGakf5ZPm6AySOzmO0eIB+P90EBBGHgEmD/yQGtY37zb0PYKadHEzfF9Rg79SmASWfN6qAq9ReE8PEseXYgOOhNCuEa+/z0UT7kwjkv4dKBuChlK1scjBCwBmRAjQkoUQbh44dL7KU1IDvB3rwtlfzG3QMIRvUCLLTxhpSsnguEtm1yWteDpojgX9dp1mdHgMzVym6N+tlq+sTE6jv8BctcETW6kSE0/hUvuDYUeL2fb/oQNX7cF5lf1IE8OAWAovAL0j1e52JTnUB+JLWlcTFM6kkiFA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5wOCTqxj/1SxmDnjiqGn6uc06WnJkoCDJt/Ihes/upw=;
 b=B/9uMl39sSPTd1MU4LsmrUdaevR7VYFC+70+49uJco2w2gvsXH8v0LpVkys9pQadPYa5164eDU6xHzZXX6RAPkk9sldujPCK8Xd+mZqsjmrUyWWd5ca9vu5NqDYmjohE6/atlLKfap6CxxCZJm6UYjuUXgG0pQvav5X3kB+qYqHFIWbCrPEuJolWZO+AILPK7QgpKiCafkf6vJMihqBWt+o5iOsFiKToEHwOet/dk3v4NnHGw7BUgegNUMYtLq0aX7Ru5VVxCz9mf3c3LdgAQXZGakcvPbLgSx529LUxrpJKqy8XtGcD71eU3vvPmxbYVBue3kK6rtxJgbEpT2roVg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5wOCTqxj/1SxmDnjiqGn6uc06WnJkoCDJt/Ihes/upw=;
 b=RKLtHFfQNDyTN2XEjE4N38Xl9skIAWHIQbGRcbcglcNBj07EHuSHREye/Lt3U8VmQmEBcFRVdO42NcsRW+1ALd+izMq4Wdgb2Ib50cwW9y+mJKulMP6l9E/6wt4DgHh/uXKl3R6SyXQAhPQRftN3H8K2PqmvEfU5PV/UJqP7nTM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <c0455659-b160-4e34-adda-cbaafb942f51@citrix.com>
Date: Mon, 2 Mar 2026 15:20:14 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v4 04/14] x86/boot: Document the ordering dependency of
 _svm_cpu_up()
To: Xen-devel <xen-devel@lists.xenproject.org>
References: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
 <20260227231636.3955109-5-andrew.cooper3@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260227231636.3955109-5-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0080.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:190::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_|CH7PR03MB7836:EE_
X-MS-Office365-Filtering-Correlation-Id: 0c6592c5-3487-47c5-a4ce-08de786f360d
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:
	ztzEAuidVpFfrBHAGuausN+x0kxBNuWrnt45ncDMpWKPiO9tFUdruwESCNndEMs3enRLzwaj05X0NUSVrnsSREcPfCBDlT5dPSdTgsKQMccBDENPS91V+tpQWv54Hc0YbkoIoynvdw7uRkXGXa/I1NwBxC2KL5t6sxYHboA+G9IprMpMxNbRbBbUZnygxSJV4O5I8Bik2xsBsfboBCyqZuwFme8W9aBlPdUHk460Z7L7M3N786/uXugryHB1wdbTQtHu0P0eL2QhwPk4LGYNXeALAQQEA37V7Wu4uVCYbQXnjvN1ZuLmd8PqcGLIBCihpLUGQiz9++ETosAXZ1Gh1wBNpjW028ytCMbpMQ2+u1RJVnVdfFYpx2YDr5nzCcr5zzf8Pirv7g3YaMKoY1GL7cbRQtH50OtRqHqh5v4lx2g+z4OLqgeUwMwGAm/UID5fWoVKCFUSMQCkt35q9mSUoKjNmfVDJoB46xCiLHdogULt5fRTplEdEYFp+aqlxXAWsn54KoT7pddkAPmy0bFAILJHa2X6FFkuDp692Dt4u3DEznD4QuDKcBuQqeP8mRa5FThm8I9HdtVnSjnK/MlVqp3f+OuLNcaNvcaw3YRbrEj+T1WfJFHUZVdSnmTwo3s0fMRcKnAOGBIJCVFqa4le5LS6oiLnohfZkMHSTTsJJsMbj/+TD2dLR4v2nI6dOb+xvOKDviSL+xpDaJv3dvRBs5+gTnqhk3/5bquJh6zx6Fc=
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?ZS9lUGxzd0w5VjQybkNYQWJuWHhMWUhXa1BXR05ydHJLNHdYQnVyaUwzdDEw?=
 =?utf-8?B?WkZrSHRhc3dabGt3NXFVY1h0ZHNXMUdnaWRpV2MvNW4vblVXaCtmZDJJS2RI?=
 =?utf-8?B?L29jNGw1d1gxZm5VekRiL1Y3ZDlYYmJWSUYxd05SNjVKS2lmeXB1MVg3Um9w?=
 =?utf-8?B?NmxjeitRUmcwMlBnczNqN01BbWt6N0lBK1lEcDNIMnRSL1dPT2l5bWZIay9r?=
 =?utf-8?B?Yms1cTVrNE12bVhOTjRvZ2N6bDhWMlNtWWxXVFZSUHE5UnRFTEY2QUJVK1l3?=
 =?utf-8?B?RWdxbnd1MGhrbGhncGxZRWFHYU9yTVA1NVBTZ0paZGNRMnI4QjNtdFZJWlZR?=
 =?utf-8?B?SG4rWUxEd251cEpxTnRhOFZCdHZ0OHJOdVdTRTU4Ymc2N2RXNjVQb1h2Tkk1?=
 =?utf-8?B?L1RuQ2UyeVNpU3NCZzZ4NXhlN2hWQW5tWTkxNFFyTTVUQWZnT21HREdNbWRQ?=
 =?utf-8?B?S3VZdWxRTFY4d2dkb0tZK3lTc3BSanFWN01qQ29zbVNUSytmSjE4NzU0SXVN?=
 =?utf-8?B?ZVA1QXIwZTdld2VPQ1ByWWNkdjdVMGxKQlVvcFN6UGNwQXZleW82ajdZZGMx?=
 =?utf-8?B?Q0NDTGJVVGd4RkQxNEZjRFMrbm5mcHNTbWVva3ZUV2pFSWcxK08rd2txQmg5?=
 =?utf-8?B?L0liTFY5VUc5Ump4dWNCVWh5L2Q1KzlOY252WmNpb1lWdXJvL3VCYjJKWDJK?=
 =?utf-8?B?ZURTcVMwdXRUZjdRVWpNQWhYUjJqUzkxZ3oyMk9yeE9FamUyM1dKOFo2WGds?=
 =?utf-8?B?WWFwUnhKM0FvTnpDdlVPZ25BRVpzbDVsdmo2L0d0Ukd4MUhlZUhnNjd2aUZi?=
 =?utf-8?B?d1JtYWUrR0x0Y1hUWm42ZHk0NzF4MmlyU3JsUXJ3SWw5WXd5S1YvcUEzMVI0?=
 =?utf-8?B?bnRVbDVtMXA5cHp4RFBHZGNURW93c0doUzA5QXVLZzcxZnlZMTBUd1g0T0ZL?=
 =?utf-8?B?cGVaajBrRHlvMlR4L2R0R1YvQjZQMlhkVDJLU2IxV0RNVnp5RWZtTmJ0WlZC?=
 =?utf-8?B?R2JOdWhxUG80TmJQVHNjRldtRC9xRG5mNTFvOWZka1FFTndVbVFxWmNkZEw0?=
 =?utf-8?B?ZmQzcGRCbUdVODhGcXFNRy9ZWU9SdGt4ZWNVTU1JT1AwRHhNOXBBRE5wR20v?=
 =?utf-8?B?VnJJY1NSSmtsaVFtTmpvMDZ0eHMxck1BcUVsT0p3R3ptZGttR1JacXp1K2ZZ?=
 =?utf-8?B?ZndlOXJYZkJhS0htS0FkNVJ5bkEwMjNXbFVvMEhiaVpOK2NsZmZnWGprRU5V?=
 =?utf-8?B?dkVGRG9uNFhmWjV6dnpDUGk0bEpXak9NNEtpcG56ckcyVjg4bVdqVHVaejFY?=
 =?utf-8?B?dVZwT0s0RlB1M2JJR1F6NFBPaFZDcVBHT0hXOTlXQmFTeTJWM0ZwV1VhUXh0?=
 =?utf-8?B?OHlFeFowN3hKRlZVZmlhcTRxZE1tQm5WcE54MWxieTdxSlFINnlwTnlxSVYy?=
 =?utf-8?B?bFhscjhrWWlQS0JERTR0R3Rkc0VaQWg4T1J6RnNxWUcvTkgrNmNCS0xrU0Na?=
 =?utf-8?B?TUhLVUNtUEdwQXRqNEl2Tm5wajNwYXBGZEVkWXB0ekFCeGN3ZGNxUktrL3dl?=
 =?utf-8?B?aW4vQXUzZUh6QnNQaU13bEVYRllsaEtEN3B3ZE1IY3R0OWdxbnEvbFRMS1pV?=
 =?utf-8?B?Um5zbU8vMVcwWGJSdUFoNWxJRW1tK0kwOFg4ZURrL2R0c2NxRGhLanlyWDhF?=
 =?utf-8?B?TVlGSVZqVUFZVkFodXFyTHFjcklFdDlvbFFXU25KZFhUeFFWc3FwL2ZYeWVh?=
 =?utf-8?B?cXBNL2xyNW0zZjZObVlBbE9NYWtVT21LcUplMmxHVnNvKzNsWnRZeCtIWUVt?=
 =?utf-8?B?QXRDUVJRSk1NakRKWnExMmp2b1Y5b2FvRHR4c2ozZnFCSXFRblhKb3VneXpR?=
 =?utf-8?B?dDJJYkFZV2NVSXVWNnhzVUc0M1ZuT3dKblpLUEFXSVQ5aVlReEVicFE5Y09E?=
 =?utf-8?B?MzIzTXhIUEFsVDdHemFqTVRqOVF4cFVuWHZXbkVtZDYxc0NJNGtzNk91dG00?=
 =?utf-8?B?VFoza0gyUms1bW12M3N6ZmlHY2dMZ2pINU84dmFJbzZzZU41Szl0MWZFL2VX?=
 =?utf-8?B?MEI2OFFiL0g1Sm1naVNTTENtaVlDbStJaDk5aHNDd3Y1VUM0MGcxNVRwaWEx?=
 =?utf-8?B?VkhuWENPdG5UemhnamRncHgreFFOT09VQis1MkowaTRpbTZOcnFCMmVneTAy?=
 =?utf-8?B?aEs4RkljYUdGeGt0N1c1c2xwazExb2ZhdjMrblh0Q0ZPWUdqSWdzekQ5MnBF?=
 =?utf-8?B?NW9OTGZHZFBXZlhsZFBLVDdBV1dKWWFsUVl6cXAzd0x3K2N2RnVlblhLNFVz?=
 =?utf-8?B?VmNjN1htNkJMNGlvY1NyOWFNNFpYL3hWU2I0VkQ1c3VNYWx5UGY5QT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0c6592c5-3487-47c5-a4ce-08de786f360d
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Mar 2026 15:20:17.8348
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: FG6QsstMdgRmenaFGgdANWvJy4G/9rq5uR4l2SZNIrZ4RBg+0DHo3gadY5wy2jWtmEhUdhEfvl7hjvmT6oiMQyJatU5/XRgW7ImWS0/DygI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH7PR03MB7836

On 27/02/2026 11:16 pm, Andrew Cooper wrote:
> Lets just say this took an unreasoanble amount of time and effort to track
> down, when trying to move traps_init() earlier during boot.
>
> When the SYSCALL linkage MSRs are not configured ahead of _svm_cpu_up() on the
> BSP, the first context switch into PV uses svm_load_segs() and clobbers the
> later-set-up linkage with the 0's cached here, causing hypercalls issues by
> the PV guest to enter at 0 in supervisor mode on the user stack.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
>
> v4:
>  * New
>
> It occurs to me that it's not actually 0's we cache here.  It's whatever
> context was left from prior to Xen.  We still don't reliably clean unused
> MSRs.
> ---
>  xen/arch/x86/hvm/svm/svm.c | 16 ++++++++++++++++
>  xen/arch/x86/setup.c       |  2 +-
>  2 files changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
> index 18ba837738c6..f1e02d919cae 100644
> --- a/xen/arch/x86/hvm/svm/svm.c
> +++ b/xen/arch/x86/hvm/svm/svm.c
> @@ -35,6 +35,7 @@
>  #include <asm/p2m.h>
>  #include <asm/paging.h>
>  #include <asm/processor.h>
> +#include <asm/traps.h>
>  #include <asm/vm_event.h>
>  #include <asm/x86_emulate.h>
>  
> @@ -1581,6 +1582,21 @@ static int _svm_cpu_up(bool bsp)
>      /* Initialize OSVW bits to be used by guests */
>      svm_host_osvw_init();
>  
> +    /*
> +     * VMSAVE writes out the current full FS, GS, LDTR and TR segments, and
> +     * the GS_SHADOW, SYSENTER and SYSCALL linkage MSRs.
> +     *
> +     * The segment data gets modified by the svm_load_segs() optimisation for
> +     * PV context switches, but all values get reloaded at that point, as well
> +     * as during context switch from SVM.
> +     *
> +     * If PV guests are available (and FRED is not in use), it is critical
> +     * that the SYSCALL linkage MSRs been configured at this juncture.
> +     */
> +    ASSERT(opt_fred >= 0); /* Confirm that FRED-ness has been resolved */
> +    if ( IS_ENABLED(CONFIG_PV) && !opt_fred )
> +        ASSERT(rdmsr(MSR_LSTAR));

It has occurred to me that this is subtly wrong.  While FRED doesn't use
LSTAR/SFMASK, it does reuse STAR.

So this needs to be:

    if ( IS_ENABLED(CONFIG_PV) )
        ASSERT(rdmsr(MSR_STAR));

with the include dropped, as the final sentence adjusted to say "even
with FRED".

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 15:21:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 15:21:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244328.1543767 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx55i-0001J9-Az; Mon, 02 Mar 2026 15:21:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244328.1543767; Mon, 02 Mar 2026 15: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 1vx55i-0001J2-78; Mon, 02 Mar 2026 15:21:50 +0000
Received: by outflank-mailman (input) for mailman id 1244328;
 Mon, 02 Mar 2026 15:21:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=tIQT=BC=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vx55g-0001Is-OQ
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 15:21:48 +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 87279418-164b-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 16:21:47 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4837584120eso33136355e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 02 Mar 2026 07:21:47 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd75df9fsm491001415e9.13.2026.03.02.07.21.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Mar 2026 07:21: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: 87279418-164b-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772464907; x=1773069707; 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=ETlvC185db5TbfgIdZN3woKwjLCVJdZ9mMDN+oYJ5tI=;
        b=OsEeR0/UnBedT/WH4A/AZFgpZeOKUA/viGv0q/jMAh91XZORd5vBs/8swBe75PklDK
         nURCX/IUMTuwilWq0+ZKduj+YHo+aULzjFal7nVZcv+I4D4qonxqy0ip89i/7HmuLp5N
         DR9EcN3G4rnZhSeMxoBjm9H6YPavOQIDsHTu2+cTKRSRCA/1QEsUPRaDR6oTgyRyxXRg
         mt8MD4al4HKI2R6aVc+0sDgXVffg2/QB2j1xn1g3OXdhcqZVnk0OPK/BogTeGQz0bg+z
         bbUPN7K8Ig6A0bdbZpn7BIfJ89FWWjIvgvcSX7IFZ6WXM7qPsVnL5gywq9Iefl22Mvsh
         yCIA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772464907; x=1773069707;
        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=ETlvC185db5TbfgIdZN3woKwjLCVJdZ9mMDN+oYJ5tI=;
        b=DcdJUtgIPhhgeui6FSpe3Hbg7fHRjGlV1KAJMDs0iJBwtu9yeYNfJEYXd+kGSo9v3W
         iY0aV41ffFgRY2pTqGF+ibOETAy+W38XeU6/tf6+ThpbTC4oGau4YKQ3mO9d9R1u/pqY
         YfCZS4XQGBHtgNNVcjirhWbuAZkOERv2JsPL2zxOEpmaz0D2Jv9KpndQT61jcNvJeLBd
         3UIXErQX+XcipQ8nTVMhNRXp84nPN3yg0xGUjs8ttPqiEU0GmyDaFPmsMLe+Cx5f6gJH
         KGxITmcXph9RYw2350l+TRw6idtErPSVuwWiYd/JF65Vm62teWMKUEYjqOstL46C4EQE
         T+SQ==
X-Gm-Message-State: AOJu0Yx9EyhDIp7Oi0gUaW5Np4ZO9R1/mtPwaFWBnLTchhZVW73uayZt
	NU7pfevhhAfqezy9FHcnmUZDK8JdKYoOPV38XMExMZ1OsxQwH+UiFcMDAqaZm78rRn8=
X-Gm-Gg: ATEYQzztJTcavlUNdJmKi1SIKrjGhhFUGk4XQCpCoU3orei8TAbYhJ9HES9vrkm6SGo
	itjlFiLcT7gnGuFlPwvJhXGL1a1LKcBx99IbQZgI4cfn4PtAZfA8i95GPedCX5YCjAeWq7/ypFY
	i5HXj694J7HHEOgwActyVtFRa+G6ItUVpnt049vK3snIqLfCB2YRnhCh6eCME8rwC5hWPiE71UN
	ptv8X54ejOp86sZT5L/Snf2LTs6qFaUXM39GBfzCjQHYGPJuxC/d4PmUyDOmpUNVd1i3H1akc37
	It0tm/BkaCf0t3DQqAa0qKJUi+5jwQ+U5+Fp+xyx6hw7CkGrZ/4YWMSWkiQPGefrTBxqbe4Ps7Y
	b+HsYirZdDLuUNnNsvGw/7mFhL/aoW9wtW1z94I355rHCb3C9h7Lx5cid2cXbkLnKB/wRZsfwZe
	JSxaZ8CJG4IicZ3xnhWPTPlSBdSATB8rdLJQgOVvBId1D5h7y4typJ1/R/5lvyOtCPl8VUgrF1j
	19Pd1gsjDSdNrijJFTGwpk0cztbMirjgYldjBTi5dhdHvHVhG+EiowxK7q0gbWn
X-Received: by 2002:a05:600c:1e89:b0:483:badb:618b with SMTP id 5b1f17b1804b1-483c9bc55e1mr209049255e9.24.1772464906439;
        Mon, 02 Mar 2026 07:21:46 -0800 (PST)
Message-ID: <9d30d9ea-c080-45ff-a77d-30f79d4e800e@suse.com>
Date: Mon, 2 Mar 2026 16:21:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Excluding init_on_free for pages for initial balloon down (Xen)
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, "David Hildenbrand (Arm)"
 <david@kernel.org>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Andrew Morton <akpm@linux-foundation.org>, Vlastimil Babka <vbabka@suse.cz>,
 linux-mm@kvack.org
References: <aaRVcVmtv2UBD-GF@mail-itl>
 <513e624f-35c1-4d43-ba3f-c96af613d400@suse.com>
 <224968e6-7236-4efe-bcc0-ab39ac0c6c45@kernel.org> <aaVuB3x3y4ROr5XA@mail-itl>
 <663cff60-8181-4a47-beff-204bfe01bb06@kernel.org> <aaWohimzb5P8n0YU@mail-itl>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <aaWohimzb5P8n0YU@mail-itl>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------y09wBeURikoDRh6YDGjmJ4El"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------y09wBeURikoDRh6YDGjmJ4El
Content-Type: multipart/mixed; boundary="------------e1DxIpki1MRw3sNDu0gCKGiO";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, "David Hildenbrand (Arm)"
 <david@kernel.org>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Andrew Morton <akpm@linux-foundation.org>, Vlastimil Babka <vbabka@suse.cz>,
 linux-mm@kvack.org
Message-ID: <9d30d9ea-c080-45ff-a77d-30f79d4e800e@suse.com>
Subject: Re: Excluding init_on_free for pages for initial balloon down (Xen)
References: <aaRVcVmtv2UBD-GF@mail-itl>
 <513e624f-35c1-4d43-ba3f-c96af613d400@suse.com>
 <224968e6-7236-4efe-bcc0-ab39ac0c6c45@kernel.org> <aaVuB3x3y4ROr5XA@mail-itl>
 <663cff60-8181-4a47-beff-204bfe01bb06@kernel.org> <aaWohimzb5P8n0YU@mail-itl>
In-Reply-To: <aaWohimzb5P8n0YU@mail-itl>

--------------e1DxIpki1MRw3sNDu0gCKGiO
Content-Type: multipart/mixed; boundary="------------v5nbIR44GMrnBS70Yhw0f5mu"

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

T24gMDIuMDMuMjYgMTY6MTEsIE1hcmVrIE1hcmN6eWtvd3NraS1Hw7NyZWNraSB3cm90ZToN
Cj4gT24gTW9uLCBNYXIgMDIsIDIwMjYgYXQgMDM6NTQ6MTJQTSArMDEwMCwgRGF2aWQgSGls
ZGVuYnJhbmQgKEFybSkgd3JvdGU6DQo+Pj4NCj4+Pj4gV2hhdGV2ZXIgbGVhdmVzIHRoZSBi
dWRkeSBzaGFsbCBiZSB6ZXJvZWQgb3V0LiBJZiB0aGVyZSBpcyBhDQo+Pj4+IGRvdWJsZS16
ZXJvaW5nIGhhcHBlbiwgdGhlIGxhdHRlciBjb3VsZCBnZXQgb3B0aW1pemVkIG91dCBieSBj
aGVja2luZw0KPj4+PiBzb21ldGhpbmcgbGlrZSB1c2VyX2FsbG9jX25lZWRzX3plcm9pbmco
KS4NCj4+Pj4NCj4+Pj4gU2VlIG1tL2h1Z2VfbWVtb3J5LmM6dm1hX2FsbG9jX2Fub25fZm9s
aW9fcG1kKCkgYXMgYW4gZXhhbXBsZSB3aGVyZSB3ZQ0KPj4+PiBhdm9pZCBkb3VibGUtemVy
b2luZy4NCj4+Pg0KPj4+IEl0IGlzbid0IGp1c3QgcmVkdWNpbmcgZG91YmxlLXplcm9pbmcg
dG8gc2luZ2xlIHplcm9pbmcuIEl0J3MgYWJvdXQNCj4+PiBhdm9pZGluZyB6ZXJvaW5nIHN1
Y2ggcGFnZXMgYXQgYWxsLiBJZiBhIGRvbVUgaXMgc3RhcnRlZCB3aXRoDQo+Pj4gcG9wdWxh
dGUtb24tZGVtYW5kLCBtYW55IChzb21ldGltZXMgbW9zdCkgb2YgaXRzIHBhZ2VzIGFyZSBw
b3B1bGF0ZWQgaW4NCj4+PiBFUFQuIFRoZSBpZGVhIG9mIFBvRCBpcyB0byBzdGFydCBndWVz
dCB3aXRoIGhpZ2ggc3RhdGljIG1lbW9yeSBzaXplLCBidXQNCj4+PiBsb3cgYWN0dWFsIGFs
bG9jYXRpb24gYW5kIGZha2UgaXQgdW50aWwgYmFsbG9vbiBkcml2ZXIga2lja3MgaW4gYW5k
IG1ha2UNCj4+PiB0aGUgZG9tVSByZWFsbHkgbm90IHVzZSBtb3JlIHBhZ2VzIHRoYW4gaXQg
aGFzLiBXaGVuIGJhbGxvb24gZHJpdmVyIHRyeQ0KPj4+IHRvIHJldHVybiB0aG9zZSBwYWdl
cyB0byB0aGUgaHlwZXJ2aXNvciwgbm9ybWFsbHkgaXQgd291bGQganVzdCB0YWtlDQo+Pj4g
dW5hbGxvY2F0ZWQgcGFnZSBvbmUgYnkgb25lIGFuZCBtYWRlIExpbnV4IG5vdCB1c2UgdGhl
bS4gQnV0IGlmIF9hbnlfDQo+Pj4gemVyb2luZyBpcyBoYXBwZW5pbmcsIGVhY2ggcGFnZSBm
aXJzdCBuZWVkcyB0byBiZSBtYXBwZWQgdG8gdGhlIGd1ZXN0IGJ5DQo+Pj4gdGhlIGh5cGVy
dmlzb3IgKG9uZSB0cmlwIHRocm91Z2ggRVBUKSwganVzdCB0byBiZSByZW1vdmVkIGZyb20g
dGhlbSBhDQo+Pj4gbW9tZW50IGxhdGVyLi4uDQo+Pg0KPj4gVGhlIHNhbWUgaXMgdHJ1ZSBm
b3IgbW9zdCBiYWxsb29uIGRyaXZlcnMsIGluY2x1ZGluZyB2aXJ0aW8tYmFsbG9vbi4NCj4+
DQo+PiBTbyBmYXIgbm9ib2R5IHJlYWxseSBjYXJlZCBhYm91dCB0aGF0LCB0aG91Z2gsIGFz
IGluaXRfb25fZnJlZSB1c3VhbGx5DQo+PiBjb21lcyB3aXRoIHN1Y2ggYSBoaWdoIHBlcmZv
cm1hbmNlIHByaWNlIHRhZyB0aGF0IHBlb3BsZSBpbiBjaGVhcCBWTXMNCj4+ICh3aGVyZSB5
b3Ugb3ZlcmNvbW1pdCBldGMpIGRvbid0IGVuYWJsZSBpdC4NCj4+DQo+PiBfX0dGUF9CQUxM
T09OX09VVCBpcyBqdXN0IG5hc3R5Lg0KPj4NCj4+IFdlIGNvdWxkIHByb2JhYmx5IGhhdmUg
YSBzcGVjaWFsIGFsbG9jYXRpb24gaW50ZXJmYWNlIChub3QgZXhwb3NlZCB0bw0KPj4gYXJi
aXRyYXJ5IGtlcm5lbCBtb2R1bGVzKSBhbmQgaGF2ZSB0aGluZ3MgbGlrZSBtbS9iYWxsb29u
LmMgY29uc3VtZSB0aGF0Lg0KPj4NCj4+DQo+PiBJSVVDLCB4ZW4gYmFsbG9vbiBkb2VzIG5v
dCB1c2UgdGhlIG1lbW9yeSBiYWxsb29uIGluZnJhc3RydWN0dXJlLA0KPj4gdGhvdWdoLg0K
PiANCj4gSXMgdGhlcmUgc29tZSBmdW5kYW1lbnRhbCByZWFzb24gZm9yIHRoYXQ/IEJ5IGxv
b2tpbmcgYXQgdGhlIGNvZGUsIHRoZQ0KPiBtaWdyYXRpb24gdG8gdXNlIG1tL2JhbGxvb24u
YyBzaG91bGRuJ3QgYmUgdGhhdCBoYXJkIChmYW1vdXMgbGFzdA0KPiB3b3Jkcy4uLikuDQoN
Ckkgd2FudGVkIHRvIGRvIHRoYXQgZm9yIHllYXJzLCBidXQgLUVOT1RJTUUuDQoNClBhdGNo
ZXMgd2VsY29tZS4gOi0pDQoNCg0KSnVlcmdlbg0K
--------------v5nbIR44GMrnBS70Yhw0f5mu
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-----

--------------v5nbIR44GMrnBS70Yhw0f5mu--

--------------e1DxIpki1MRw3sNDu0gCKGiO--

--------------y09wBeURikoDRh6YDGjmJ4El
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/Ey8FAmmlqwkFAwAAAAAACgkQsN6d1ii/Ey9f
Fwf9EH3eVCcUPnLhmeZGvJl5wVYuyA8jurNChwHN0evqFezznfHweMatiP8h6+gtF0Xv0q9O8DzQ
WuEtAbBogZYxsRMqyRrqBhxLPZ5V9BxPF9/Vbw72Sgjm7s5R9jzXfqTKW5MkHnuvtdwTNZ8DKB0T
t8rRMZeJfoQgQ3BJ0g8kQemPWTjXTxdg+fI6xZTPtzfZBAzUoIIKG1NjPLC+j9UgBk3XdH6SnKXW
Oc1XcKeNQhLkkKUqSBN79tWoWtXU6o6t5rJEHHAAWFVadPuo0ihfTm+67VICHzVrogByCjsZsfEO
elF53pC3zyxFRXizLgr1tbyn+o5Jr+Piip8iCw1Z/g==
=Qr2j
-----END PGP SIGNATURE-----

--------------y09wBeURikoDRh6YDGjmJ4El--


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 15:32:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 15:32:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244343.1543780 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx5G8-000392-96; Mon, 02 Mar 2026 15:32:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244343.1543780; Mon, 02 Mar 2026 15: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 1vx5G8-00038v-5d; Mon, 02 Mar 2026 15:32:36 +0000
Received: by outflank-mailman (input) for mailman id 1244343;
 Mon, 02 Mar 2026 15: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=OlTG=BC=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vx5G7-00038p-3u
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 15:32:35 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 053da25b-164d-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Mar 2026 16:32:29 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM4PR03MB6910.namprd03.prod.outlook.com (2603:10b6:8:45::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9654.21; Mon, 2 Mar 2026 15:32:23 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9654.020; Mon, 2 Mar 2026
 15:32: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: 053da25b-164d-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ygBhNx6CZ0JUoXJHLOOj5oSdWIskgbL2/921NrTywXf28Jw5QO25znUzUJ8b5nj4OsfNAmIM6MzQ2myA83Jq5iKhfQPIRqvo6teA1LdWJcmWV+16h/0veX4WW2A5UEkCAzLNziyiEzTBoBTnrD/Ew6iN41uXwqbp2x+ssl5IumKfsPYdDvKI1I6KOpVR9lB5evCMKjVZqJK/8w18HGA8lSyxnLEJes8YZ9iMiZHLdda6LIKCwUnFzMT2dmpFZelosqdUxshHZaMfhm6Fj/zdfDE2hjMxfEQlyyoaSPHu+GhHwlXHK5euPlp/R5ReOk4Z41Ma+Syu5RCMQtTxTRGYaA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fxurID/PMQliVdMIOqTPv+iWoH0RGormiilKlBtxqpo=;
 b=ss3N2kApwRRv9mBiOQ966o0zTdNDv2sh1KWXAgDbWUEEh5J5i8z0UNo6VwQZjMC2Q+84HVdvFhbdJXYDYKxLDoFpTPALkCCnCzGSm2Vh3AaFazzMiB5Whl81Wyuwn2N/2p6brnSUBST3dE7/FiJDZzzHAJznFVpx6BsWVtkRNmQnz2wxnPI1ClG266b0N8cn+aGmu/ubX4e4PdcMkkys/6/xKdGIABslaKNoo6dMawOv203rbIYAlOncj4F+6J7h3zA6G3eC7SFT7gVDG2kYMOXaI5wzxu5vKLkxy5Qp2Mdf99S6QKBpN0FzloT7FUjzrqeRAIkupxAImvhN4T1dNg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fxurID/PMQliVdMIOqTPv+iWoH0RGormiilKlBtxqpo=;
 b=LCMjJa7ILc2+AJnMD5jzW4dse+dppLuEsXgWBAUZvc54cbpPKylqLBUJ3sC1BHNh6zIerXMG6qz0jVrpwnXUz09cJb9QwF9dpQaCT2wC72DLu+NnT9EXjPqmGy7q/YS0ZZ11HiaD93fvGaw7V91N+wvySOXo3/fqdWL2aNdSpTg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d4708f47-836c-466c-93d9-2e7f4ae22608@citrix.com>
Date: Mon, 2 Mar 2026 15:32:19 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 05/14] x86/traps: Move traps_init() earlier on boot
To: Jan Beulich <jbeulich@suse.com>
References: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
 <20260227231636.3955109-6-andrew.cooper3@citrix.com>
 <b54f129c-71dd-45e9-8f31-4df322e30af2@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <b54f129c-71dd-45e9-8f31-4df322e30af2@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0184.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:311::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_|DM4PR03MB6910:EE_
X-MS-Office365-Filtering-Correlation-Id: 8837b078-b654-4121-76e8-08de7870e618
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:
	WQx+d1V6XwWtur+xZY5/vaJ4+iOIH/c2DB4Vs6Uzv1J5T8CG+MrJpli1DKpqrvRM9JY82XtTv9OBF6uyvHZZ+Gl+pMjdJNrfW3DvVRs5ksM7uVlnXACGZxpk4oBamwYlrD1oVehqTadrQwhxxEmrRNV898NvoRaLGcJpFHR9QF7V3BlSxYt3qi1nq2C3c7XmygAIVYhsP62VX5IA/q+G4CF32QQFdMi9q6EP+LYnQLPvpSBackOW2N5friyCHXIvyFopDXVTIFcAC8VNeCI+8gNBaQyXJQ6KsZTivVpEJLLpCUjOHX1MGET8EOvnrFb8kpaLACx/QwRjneNHqkhpLJv0mz9aT6d4yaw8f/56Nw+3UAxmVT6fmk1kz/ZzU/bdpaPIHTxchx5aFX47/Vx2e7kvXUxr67yKrMt72yfAZ5GaX4MwtHLW2uN25KgTjTbuWtcEXbb0oDhjHhbBc/o0wXaQV8rdhazUCHedZsQyAO8S16wHsZMrME4KeGpz9pjN1T9qrbpoaXtN/khGf/kWMFTb70FbLIj0XUhOnDHo6qjA0Mt+Wf8QOjgPtHzFhAY8MQh0e4jUujEwcgWKEkzrfLhvRI4kKMTegJQuJEVPMO89E/60HW4vIV9jnDoBtwvrJe62OPofTGmVmiiZ3fc8sDs5lM2y+RD/Lk8y5Fr8MuhQhC77P56JwD8btjfQODVj2SP7e/MZtYtAHiZPr7o+wDlxDVo4dX7OIOzxL1wrgIM=
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?SE9DbDVtM0tObHJMRUtEaUpNdXRqeHJseUZ4WE0zL3FQNGtJL2tjamtjWG82?=
 =?utf-8?B?MExXTXl1Q0ZKaWJ6VXIxbVdDcHdvUzlFdzMvVkFlYzRVYnBwa3JWZm9pRFdZ?=
 =?utf-8?B?a2JLUWVTRkVUZG9rVytSajNwRmJTekRhbWVnazRiQTg5Yjh1L3U0MllPejdm?=
 =?utf-8?B?eFIwNTRZVkl6S3Q2a0cySkMxSVg4OWQxTDEzQlVRR3Y1dzNTa1NncFdFdnJR?=
 =?utf-8?B?M21hamc2dGMwVXp2S2w1YUt5SGZVUnBpQ21DWGQyd21PYWowekhPK2ZyOE5C?=
 =?utf-8?B?Nkl5ZFNjQkVLenU0ZjNBRmR0N2ZhQ0w3SW5hVXp6b25rdjNEdzJPamltVHhD?=
 =?utf-8?B?ZHFFdDVISE5OSE0wcXpYWDNaOHFML05Pd0sxcVdnOHdrSjZzaE1MYVFrekFt?=
 =?utf-8?B?ajhvc3lMYlZKREF2TzNJbHNoL1pMZEZ5L0lSV2tBWm8rb3FQUVR4VkluU0NT?=
 =?utf-8?B?QmprR0EwQW43Qll3TGg1b2ZSaEp1RW5Pdk1WeFlHSTlyS1RUOFJxRm5aTHlR?=
 =?utf-8?B?SXpHT2krYUxOWUN4QVlzK0FoNjl4K0lCVUlkdXRTV0RyN3dLbEU4eHgrS3ZD?=
 =?utf-8?B?Y2k4bksvQmxJSmR4V2U5bGd4QU56VXEwYTQvSGUxQ3JxTFZQV1BpaTZhSmdE?=
 =?utf-8?B?SGNvQnU5b1V3c1k2VmxuZWplV3Zsb21yTnZvUW9TNkpJdGNuWE02TkxpUlBz?=
 =?utf-8?B?VzVwM0RibjRLcWEyQURmUW4raGE4aGJ5WlVlNGpIeWgzckw4MUJOeWQwSlQx?=
 =?utf-8?B?TnNOSEsvd2pzQm1iZFpGeTQ5WjBCTVhlcVRvLzlyOXhqZkNtNTcwM1hBTWdH?=
 =?utf-8?B?MlA5T01rQ3o3NmlrR1FZb1dVVGlJSGRMa0hSNFc1TVExNm5pdlNlUGxCcm55?=
 =?utf-8?B?N1ZTT1lUWUFjNklHQ1ZZYUhpMTIrekdJaFlKZk1nLyt6TWFrenVtR1ZnSWl2?=
 =?utf-8?B?cEZ1RXl3c1B2bUhYZEl3TXNDMTd2R3ZOTmsxaDluN2VpbDNqRVNEbXhIM3dS?=
 =?utf-8?B?UTluOGZJVTRlZDdNOURyL2dZbDVOZWZBSFgwUS9HN3JLbTEyYWNoN1l0UTVQ?=
 =?utf-8?B?NnpGc3VYYnVxMjlCdkdBSWw2clIvNjUrSGgyUXlxTGRWYVpvMmZlWUlUZHFU?=
 =?utf-8?B?SmRQS0pUSmxxclltMzZocHJnZnNIK1dQcEllM05EdGkzQkFxdkRwQ0FkYkJz?=
 =?utf-8?B?N3dYczJ4R1BZV2JvQ25sakU0UzZ3OTdCdHB0dE1Xa3MxSGdlQUZPSi9TNUJi?=
 =?utf-8?B?VlNRQkY0amZ5dWpNbWErampaQ2VnZFdZK0xJMlBteHBhenh4RGszWkUybDhu?=
 =?utf-8?B?SFRPWTNhQWlaNkhqRmNlY1IzWU52cXZwbXZ1NjM3TlU3SldTNzlBazNWaGFC?=
 =?utf-8?B?N3BYQU5XZWNBajlrcWlWQUNzdlB5b2orZE43aEI4VkM0T1hsVlcrazRVbzJ0?=
 =?utf-8?B?cllJcU5TK2RWeUdvbUFkL29VM2FtWFcwT2UrQ1BoTHJLczBVR3BoUTNlZ0pv?=
 =?utf-8?B?d2NLKzhsSmhhbjVOMnViQlR1UTZJV0gzcGhWNVFSOUVmb0Q1ZnZNbUUvMkNn?=
 =?utf-8?B?VStiem1CNGl4c05ta29QeEJWQm1DY1JnNW0vNWR3cTVFc05xZWhFaXc3eW85?=
 =?utf-8?B?YnNvcElQMHpvUzdDZEZYWFpJKytKNnVjcWpOVnA5bFJwVzg0czJKYWNsbjNv?=
 =?utf-8?B?aTdzN1MrYlZlalhuVHdlODVDNW1ycWNROTJUc2VkV2FvQjJzVDNXTHBQZVFQ?=
 =?utf-8?B?bmtJNk93WGdWU0pTS1I5a2NRMWYwRnhPU2l3ZHVUMkF0bWdVdksxempOdXVV?=
 =?utf-8?B?dHVRbnN3bjNpTUJkT01malpCMlpJUThkSUlkMGZNaHRwS2hwNWZPSk9ncXNF?=
 =?utf-8?B?ZFVPUzBOZ1BNdFVxdkdTeVhqTnlzSlpDWjJiU1FSOUxNODAybDJJZVZKb2xi?=
 =?utf-8?B?eCtOV081SDNMZmFCNEFJQ3IxMVhsNTBnR1kvZEc3YTljc2NMRlhrS1NiZDBG?=
 =?utf-8?B?dU9kRUhOSTdJS1JTTHQxd1RLcUJIZEdqcVE1aFZZWGk5ZTk4cDBXTkdhZkNW?=
 =?utf-8?B?Z0J0Tm95R0Jtckw2VkhJa0FLSjgwL3lpRHlmbmZrWWM5MDdzOE9xQStGb1R5?=
 =?utf-8?B?NmYvMVBBYlRtdktESkRsV2tWWk0yeWhtelhqTU1Od0Q5M01SYU9mWG5pSzdY?=
 =?utf-8?B?NEJzRHpNbWRLSnp2YkpKMlFWeENuN3VOR2FHb3hqNjhUeEs1RmcxanlRbHA3?=
 =?utf-8?B?cWVaaUVLbTB0dWFlU0Z6cTUxNmxFQlJpQjJoRTRQMzhGT3VjaGpkSGlCbFNB?=
 =?utf-8?B?dnZRNjVJa2xBbnpWZHVFUU1kU3Q3SG9JdUFUQ2hJOTlFbm9RMlRaQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8837b078-b654-4121-76e8-08de7870e618
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Mar 2026 15:32:22.6725
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: OsRFWt1ww3ZVKhB/kRsRJW+dkYbAEe1S6jrAnw5f89J8/sjsbYdrBvqqcOyuB1bgUVuXB34snxKJ01JZ0L9jWqwXwm9++UTsJ+HHOwQPIhw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6910

On 02/03/2026 11:39 am, Jan Beulich wrote:
> On 28.02.2026 00:16, Andrew Cooper wrote:
>> We wish to make use of opt_fred earlier on boot, which involves moving
>> traps_init() earlier, but this comes with several ordering complications.
>>
>> The feature word containing FRED needs collecting in early_cpu_init(), and
>> legacy_syscall_init() cannot be called that early because it relies on the
>> stubs being allocated, yet must be called ahead of cpu_init() so the SYSCALL
>> linkage MSRs are set up before being cached.
>>
>> Delaying legacy_syscall_init() is easy enough based on a system_state check.
>> Reuse bsp_traps_reinit() to cause a call to legacy_syscall_init() to occur at
>> the same point as previously.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

>
> Irrespective ...
>
>> @@ -359,7 +363,13 @@ void __init bsp_traps_reinit(void)
>>   */
>>  void percpu_traps_init(void)
>>  {
>> -    legacy_syscall_init();
>> +    /*
>> +     * Skip legacy_syscall_init() at early boot.  It requires the stubs being
>> +     * allocated, limiting the placement of the traps_init() call, and gets
>> +     * re-done anyway by bsp_traps_reinit().
>> +     */
>> +    if ( system_state > SYS_STATE_early_boot )
>> +        legacy_syscall_init();
> ... I wonder if simply pulling this out of this function wouldn't be slightly
> neater. To me at least, syscall/sysenter are only a remote from of "trap".

I'm not a massive fan of how we (well, Linux) uses "traps" when it's
different from x86 term of the same name.

But, setting up the syscall stub has always been part of traps_init(),
and for FRED it's combined.


As noted, this changes again as FRED gets plumbed in, so really you need
to look at patch 8.  I'm not a massive fan of how it's ended up, but I
can't think of anything simpler.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 15:34:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 15:34:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244351.1543790 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx5He-0003cn-KZ; Mon, 02 Mar 2026 15:34:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244351.1543790; Mon, 02 Mar 2026 15: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 1vx5He-0003cg-GI; Mon, 02 Mar 2026 15:34:10 +0000
Received: by outflank-mailman (input) for mailman id 1244351;
 Mon, 02 Mar 2026 15:34: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=9kJt=BC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vx5Hd-0003au-2r
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 15:34:09 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 40a3549d-164d-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 16:34:08 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-48373a4bca3so27780255e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 02 Mar 2026 07:34: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-483bfb29715sm306502245e9.0.2026.03.02.07.34.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Mar 2026 07:34: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: 40a3549d-164d-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772465647; x=1773070447; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7kKsKmbJttVyNPHZQ95jKceOmtc2K70BiJyvN/p2Qls=;
        b=anEZcGAGNSq9/KkjiQhj8RVRMj45QJT3jxpg5u32e5xXnJuMRbeGijxf6ZE6h7aSx4
         qvAXqGISK47Yw119ZN4J95BixX9lthPRiqC0gVRAgr1nSFiI1C/ayeiGh5B5E6q22xvj
         WQGJMsovZMncq03guvJtPLbwK2S021tclulXGbAVDgSJgupbnm1zpWIzKIyDzw6nOM1a
         gEjLY8XOlvyCyzg3UpY31h+pz6ooAAkw6y4GvTa3GYn8elEzlEsm1U1m7YZTOTepHkk1
         W9Kbo4vW7ITlfgy6a6ylbBFrVe+S+SlvtBlpALz4rHjMjGDTFqTgnPcK3lClA5FHUiCW
         B8HQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772465647; x=1773070447;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7kKsKmbJttVyNPHZQ95jKceOmtc2K70BiJyvN/p2Qls=;
        b=WEgJtQBR3aQ3+C9uXn2zr9S39RWCCODnB+85pFFbA7y+o8bW0x/qH0EnADpVwvYM69
         348FMYJOAK0oNesNs7oskWZ+GnkZ9o63FX+y80ehnTe0D/RxuafGLq03W7waqDEHwGQ/
         +lt1RVB2Phaa7jMDebVM6dTkfXOmP0P9LWZbBPJRwDO6QoZdW4yM57WQ6srTo2tZFP5p
         9Hnjm8Gppbx2GDnLIvMgG+zXJl36tZhDlfRxzGN3933I5xzIddXU83+aITUWCq5H9IQg
         t/Uk+BfhMb0xHCPG3BZ17CagDJ1LroOFngNbJpG//PzjublRkx7ZwCAZa8OuOJ5Fqcyb
         YuaQ==
X-Forwarded-Encrypted: i=1; AJvYcCWjWLC8+zgxkovejNfTt+1bocgy7AaljeTkKC5/j75a4GfNsPEIvTGHmTXDo0uTPhZzD+HhSgrmv+8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxBXxhI4hvP8YET3o/SaSgEbD+mtZbogbAW6DTZjcfRBDI3i7qE
	zyJH0wsQcRzf9S3dskc1yf50D1IKlgKsmefxcGqFz/e99bWDBHoL6omARiKhY6L0BA==
X-Gm-Gg: ATEYQzwfLHfLlUxo3xBVOxy9juDGVGDoL6rIJR1Bexa4arK01p5hUBViIyzERbo+8+R
	t5z1o98Oyh+JlFkpVaiNYQ0T+Nit2dL4B1SU8YujTqMfvQG66Ig2Ad//x84rrJ1JvKsADANJJgs
	8SCKti5rjQHrLAvLiEYJTVaREJl1gRFz+WW5xZBmyHxxs4Mztmy1LyUg1pMd2/7sJCNyirYZy28
	8CV8DZORjxO52RVLxTkBxNd1sHikymRnc0bqglFHmpHumvKzyIwYcR645QZ0R5m4o8G0OtISwCo
	/bfndPWxpS6S6nVdBLV+Z29gCII5LzbLeYaICPP48jdPJPcgy0oLO4BNCN24eJqOGLCXB8dPbuo
	FHa0oypygPIvR5FdMclgFKHzZ/7NFBl/WR04/UOOm7xlp5bbrHc2dx7JvY8ZIXXUawGCxkUgGec
	WCumIMoWS+ulKAMhcQk4BloROJIeg3D/XwfMsVGNQQwGjxMKYSeJc5lWXc1xVNk2FpWqUYSauMp
	vg2z3Bwk6uSEzvKDQYN0EUBPw==
X-Received: by 2002:a05:600c:5289:b0:480:1c53:2085 with SMTP id 5b1f17b1804b1-483c9bbbf1amr228767935e9.19.1772465647418;
        Mon, 02 Mar 2026 07:34:07 -0800 (PST)
Message-ID: <a99ff4bf-1519-4b93-a11e-dd8c2b5c44d6@suse.com>
Date: Mon, 2 Mar 2026 16:34:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 04/14] x86/boot: Document the ordering dependency of
 _svm_cpu_up()
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: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
 <20260227231636.3955109-5-andrew.cooper3@citrix.com>
 <c0455659-b160-4e34-adda-cbaafb942f51@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <c0455659-b160-4e34-adda-cbaafb942f51@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02.03.2026 16:20, Andrew Cooper wrote:
> On 27/02/2026 11:16 pm, Andrew Cooper wrote:
>> Lets just say this took an unreasoanble amount of time and effort to track
>> down, when trying to move traps_init() earlier during boot.
>>
>> When the SYSCALL linkage MSRs are not configured ahead of _svm_cpu_up() on the
>> BSP, the first context switch into PV uses svm_load_segs() and clobbers the
>> later-set-up linkage with the 0's cached here, causing hypercalls issues by
>> the PV guest to enter at 0 in supervisor mode on the user stack.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>>
>> v4:
>>  * New
>>
>> It occurs to me that it's not actually 0's we cache here.  It's whatever
>> context was left from prior to Xen.  We still don't reliably clean unused
>> MSRs.

Actually, with this, ...

>> --- a/xen/arch/x86/hvm/svm/svm.c
>> +++ b/xen/arch/x86/hvm/svm/svm.c
>> @@ -35,6 +35,7 @@
>>  #include <asm/p2m.h>
>>  #include <asm/paging.h>
>>  #include <asm/processor.h>
>> +#include <asm/traps.h>
>>  #include <asm/vm_event.h>
>>  #include <asm/x86_emulate.h>
>>  
>> @@ -1581,6 +1582,21 @@ static int _svm_cpu_up(bool bsp)
>>      /* Initialize OSVW bits to be used by guests */
>>      svm_host_osvw_init();
>>  
>> +    /*
>> +     * VMSAVE writes out the current full FS, GS, LDTR and TR segments, and
>> +     * the GS_SHADOW, SYSENTER and SYSCALL linkage MSRs.
>> +     *
>> +     * The segment data gets modified by the svm_load_segs() optimisation for
>> +     * PV context switches, but all values get reloaded at that point, as well
>> +     * as during context switch from SVM.
>> +     *
>> +     * If PV guests are available (and FRED is not in use), it is critical
>> +     * that the SYSCALL linkage MSRs been configured at this juncture.
>> +     */
>> +    ASSERT(opt_fred >= 0); /* Confirm that FRED-ness has been resolved */
>> +    if ( IS_ENABLED(CONFIG_PV) && !opt_fred )
>> +        ASSERT(rdmsr(MSR_LSTAR));
> 
> It has occurred to me that this is subtly wrong.  While FRED doesn't use
> LSTAR/SFMASK, it does reuse STAR.
> 
> So this needs to be:
> 
>     if ( IS_ENABLED(CONFIG_PV) )
>         ASSERT(rdmsr(MSR_STAR));
> 
> with the include dropped, as the final sentence adjusted to say "even
> with FRED".

... if we inherit a non-zero value, is the assertion of much use this way?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 15:42:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 15:42:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244363.1543799 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx5Pc-0005Tl-EG; Mon, 02 Mar 2026 15:42:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244363.1543799; Mon, 02 Mar 2026 15:42: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 1vx5Pc-0005Te-BQ; Mon, 02 Mar 2026 15:42:24 +0000
Received: by outflank-mailman (input) for mailman id 1244363;
 Mon, 02 Mar 2026 15:42: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=OlTG=BC=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vx5Pa-0005TY-Ug
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 15:42: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 65b50bb5-164e-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Mar 2026 16:42:20 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MW4PR03MB6444.namprd03.prod.outlook.com (2603:10b6:303:123::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.16; Mon, 2 Mar
 2026 15:42:17 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9654.020; Mon, 2 Mar 2026
 15:42: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: 65b50bb5-164e-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZOaPUdh38CXQ1x7ZBEHcLzXhef70LUDoF6s9cLxv0os8Bik8nSFYNenRLy3eK35UdXF9JVFAjwZUjp2oGJ4kT494/Mp9XTyzj5BB5gF/clMxvShaewYnwXK7DHDWAR4B2K4+ZOGfuNT3E07ksvgyC6yH02ifPSqeu9AkoWo18pbvq2yEbLlDKYuwW5Sp26iSaVYU1d93vtO0Nlcq4H7Og5dYU3Bar1SLJGzpI2Wtb3mfFtVJVIE7KYpgDzQ6YbajI7b4KDVCORjTxovtv32UrTE30g+/k4R7ICgHUGx0Iss0EM/4Wl0Md0NIJInKoUJM0qxY9Xuwu5zz6BpECouq6A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FC0BCsAPTshr1gVjROEcLDusm8ZgdIqf4RmZra6rNVk=;
 b=D51mFj5WxBh42BWcRXh0dbSp3SYg4AQvzmHoCRAoiv0ma/h1ETafLu+ixnOkNWyz4/TU1PPBJd77qDNQmNpTCegTqzUoFL5KhLQ3rb4LgjxyzJTF1YFyVuNxNK7YWd33SpoZE//7yvuyxy4UiYR5w1dmW8WZ9St9f2BuJVfT2b6RKTLeab5uuIiK1t29lmAyBoH2kZlekDsZPDyHzj+x5C1KlAa1dZXiZgp2xnjeLMZliUeuEdnxSuNcvWxS8TsSjroW5Ox6MeO03n7nJhhhHnpM0GJwMDhanOISxgKmrQdFNgBvDNyd4zC6pBat2WCVEw7KJ330Y7LbWX93aB/1jQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=FC0BCsAPTshr1gVjROEcLDusm8ZgdIqf4RmZra6rNVk=;
 b=ximfNIolbqjotQfW8gDpB4nsOgR2zGF4ewuXLPSU8iw4/xOVUq43/INjTmUV+WTtPfVN8tOZA5HYNRubzrhO4vYwH6JPcmV/D0JFlm1ePbpiL9GU8XujgbYb9dybQqkbqOPkrj6RM8OBTa0ZkDJh8ZOHXmuOWdyjMZTckW/rjko=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <3e460f2c-9118-4cd1-9d60-bdfa1f502cd2@citrix.com>
Date: Mon, 2 Mar 2026 15:42:14 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 04/14] x86/boot: Document the ordering dependency of
 _svm_cpu_up()
To: Jan Beulich <jbeulich@suse.com>
References: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
 <20260227231636.3955109-5-andrew.cooper3@citrix.com>
 <c0455659-b160-4e34-adda-cbaafb942f51@citrix.com>
 <a99ff4bf-1519-4b93-a11e-dd8c2b5c44d6@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <a99ff4bf-1519-4b93-a11e-dd8c2b5c44d6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0260.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:194::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_|MW4PR03MB6444:EE_
X-MS-Office365-Filtering-Correlation-Id: bb1f0834-b01e-4789-e60a-08de7872486d
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:
	22ZNkBCv+6mGi+ejb0g8wP/2FiORBL9+igbMN9kc8DpVJvDk+eijfWqCv+mytN4FD/4x9GdO+j84FmBlrUTfcUZAqP3HTNE+1J3sLF1LlN+5FbyJLDCgY78NADmQ1xYnlzo0arxkgTMPbkp1CamE4E4VfBDaMCpeaGMpvQlhzTlhEOlzhpz96QwO1qZZ0E0xx0G8Jdp1g9KbvF/bE7i3D6wOBsb+xbE5QVat5TPbIrDVnCu9cne6XnT3JFXQVDoA+2VtpIBb6TTLnduG+UiyBXKtPkoIsB+pY2XVpHMb7XA8Ea9J1/2pWagPmiN6ZGREl/J8pZwN/8RvVoAktKSq4cq/Aal1ZghcfaCeyvqEP3pHc08O5fslBUtRH01EL4mouIcOvqtIzQsweplqYV0t+AHXIkb6WDgQGUk8hdNCKd0iE2MWZrvnmID6YgAPiXSocens8w0hEecSgxoPa5XUGgwzAL1ZUQOude8iTnC8aBOGVB8WKDMh0+6X2CN73vVnfyHUcHF8hg5/Vs2GlZk3mbau8lHga5mviK3q9whSqU2DaFdE3J/Gaj+4dx8/jCDD3OxJuDJeYSuxBh8hI0s+zbTmptB+fyJJuKOTN7TvadYhxLYqQCdUymUBzqcJu/5Y7OuuofmcnhMkrda67k/oj1DylkCqrLLOT3OsHk58+UMK+lTqh5R5LVWqeOROISpeGlWBG4djIMbWW13dMoaUZ1QUtio0ocxas6nH+o8XCfA=
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?b09DUTBzMWpmOTVROWtjdWd5NTRxdVRUM1hBMUFKQXJDelpFWFRodFZYRks2?=
 =?utf-8?B?bVlVdDJSTmFlS1JMaFlvd0hXK2twWnVQL0Rud0VBZkpwZm43TmJubUdrZEZ2?=
 =?utf-8?B?SnY4L0poM2dBcUF6NFhiTlB5L0N5d0pVUENkMjV5YllCaFQwU0dJRGhrellW?=
 =?utf-8?B?ZFkxeFhDQlRSN2JBMWxIK3BGLzZEaTRQTHY0QTk0ci9BeHd3TUkvNXhtMXY2?=
 =?utf-8?B?Rm1iV0lvYnQxNGpabm9vV3pncTFzbE9TMVl5STdXemVlUGMxOWs1WHBPS1dP?=
 =?utf-8?B?cUtvdUNFUkYwclZJeGpMWUtLbjNMSitNMUZCdFN2VE85NjdNWGQ1cGtDTXFV?=
 =?utf-8?B?Tm9VQzF4WU9XMzhOUENWd1dwNEo0dUpCTEhVMkJVQWJ2emNCWmR3RVpvdmJB?=
 =?utf-8?B?OFlxcHpxZGY3Ry9nUjhPOXNidmlVS2QrempWQk1mS0RiWFRhdGlIU1Y0V1hX?=
 =?utf-8?B?MkpOSGdDMlhmWVhpSU45Nk9nMXE0Z2xnYTZEOVo4VXMxaXQzSG9jaUY2RXMz?=
 =?utf-8?B?czh6c1IvSlBvOHhKR2dZdklEVFdla2wzZ2U0YVdtTElZaHBVYm9DbDRzK0hB?=
 =?utf-8?B?QzgxWXRZbjlwV2JML0JLQ1dBK3dqUXVyaTlpb2w4VTh2QWFKb1luQ3QxSmdB?=
 =?utf-8?B?aWtJK2tIVDdzNk0reUlTTkIzclJSWXd3R0IvQUFHMVlqaVVRQmt0cmNWWlZR?=
 =?utf-8?B?eDNXa3lRSnY2dHZrdzd5ODVVQ2pVLzY2dTdLY1FxbDFMSzV3dVN3b2JxYUU3?=
 =?utf-8?B?UE9VejV0M2x3TEovSndUQVNFQzZsbjRzaDZmMjFhNHF4cmpPZHZrRkpVbi9Z?=
 =?utf-8?B?UUhkSmpXbkVHRkY1bDJXRkh3N2hTOE1VUGNGQjM2TkdxRHZKSzZMcUw1eGJG?=
 =?utf-8?B?MHMwQi84VXNzbTNEaDNsK0FjSVdxM1RrcTk2dWczUXpBQXdQY1NsNmJWYVNN?=
 =?utf-8?B?NUtTWloyTkl3L3Fic1Y4Z20rcUlZMWZJTEo4UGdxd1hmSWlIakhnV08vOE85?=
 =?utf-8?B?TERZU0RZR0huSlQrLzZiTHpjSm9MU1ZwNWZYQzZycm9HMC8yUHFIOTkrZ3VS?=
 =?utf-8?B?YXBkUGtIQmJMeEhDRTRUOHRkcjZ0RlNuZGFKalZBT0gxeXUwbEdMam5lWHZB?=
 =?utf-8?B?azRDZmROY2VBS3JGT2lXbnRKYVpLQ2lCNXd6dExKZkg1bFFUUml3ait1aE5B?=
 =?utf-8?B?QXpGeWpBUFkxaHB5VWoxdTZKYWV5NndaZDM3b1g0RE9sZFIwbXB1TjY2Q1VF?=
 =?utf-8?B?bWZFL3BCR21GN1V5YUVTNzhvd3dnWjBvRHpLbnp6VVVFRWQrcG03UmhqS2ZS?=
 =?utf-8?B?NnpPNlMrTGxtVHd3S3RPWGdkckhIc3J2bU0vUGFjV1hocXpyM1lXTVNSSFRz?=
 =?utf-8?B?N0VWYXUwS1ZXeVhHTGxmZ1dsZjBQZVZURGJabDMzaXFPWFE3K1NCMm5TSWFJ?=
 =?utf-8?B?S1hPUzROYlVUdHVWeTNTK2cwWVZhb25BWGZ4ZXdQcFRiTEJzdlhSOGZMbGVG?=
 =?utf-8?B?V3NHRTlRa0htLzgxd0pNTWVFcSsrNGhaNFVRQXVpSTIvZnpoekVMVGtzV2Vi?=
 =?utf-8?B?NElwZSt1S256MHNSc21zY2EveHRQbEd4d0Vyc1NIaTl1Umt6dGpPU3Jaa1Yr?=
 =?utf-8?B?Mk9xeVVFQzF2cjgrcmN4eGdtZlplQk84N0toUURXaWxuNk9aVDh6YnZOc0kr?=
 =?utf-8?B?RURveEZiMVZkS2xSQ2N2WkEwZjV5OWNpWEM3ZjZPajF5S2xwUkpCVlI3NEU4?=
 =?utf-8?B?NFNaL2s4c0pUVXV1bjFicFFYK1VaaXkxOENPVXd6K0RHY3B2WEVoMlN1aHZG?=
 =?utf-8?B?RFE2SSsxRVA0QUVqTFUydStib0FUTkd1MWNjRjdNL3hpdFIxNlFOZmZYODha?=
 =?utf-8?B?MVdPMElKdDZ2WHYyT0VJWGcxZnNqM0Z4Y0VQUkZXVWI5eHcyYStzSmlOUnBR?=
 =?utf-8?B?czZtRi9xTE1nd2RYR2NmQVlrZ1pkVXBXU29xWk55QjVkN2kxYkdpdUg1Sytp?=
 =?utf-8?B?MjBSVk1GeU85RXltWHdrKzRkamc2ZEowV2ZMcCtJRU5WbjhRYnBKbmVMTHpH?=
 =?utf-8?B?a21HYTE0b0wraGRSSkQvS2RrdnlUVXZiM2JYc1hWRU5kSHVhdkorUFNTaUVo?=
 =?utf-8?B?MkF2bnBrQTU2bTJGSU9GYlNjaE5JVlo3dkVxK2NGYk91dEQyMVVjbFhUY0E5?=
 =?utf-8?B?THFzeityRFBLazZUcEpicWtxMlJWRllnNnhWZmZYM1JyVmJUV2hoQ002T3hB?=
 =?utf-8?B?ZUNqY2I5cnlvQnBZcmNOM1VZWTN6Rk43RkY0cmQ1dTZhTzBxcXpWYmlReUhj?=
 =?utf-8?B?cCtuVzFDUTRSRlpBbXRlT01hNU8rd3Vmd1V4Z0F6eURubUxVY05GQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bb1f0834-b01e-4789-e60a-08de7872486d
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Mar 2026 15:42:17.0544
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: IJi2odPro5FbZwHmujlsUlT/sz5QBOCm6nARHlCithWVxPA5g5UCrgGlv/C87g81kmQFzy9fcl1KiP52ZokY+UQZ+bARjYt25NhDbQLaFVk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6444

On 02/03/2026 3:34 pm, Jan Beulich wrote:
> On 02.03.2026 16:20, Andrew Cooper wrote:
>> On 27/02/2026 11:16 pm, Andrew Cooper wrote:
>>> Lets just say this took an unreasoanble amount of time and effort to track
>>> down, when trying to move traps_init() earlier during boot.
>>>
>>> When the SYSCALL linkage MSRs are not configured ahead of _svm_cpu_up() on the
>>> BSP, the first context switch into PV uses svm_load_segs() and clobbers the
>>> later-set-up linkage with the 0's cached here, causing hypercalls issues by
>>> the PV guest to enter at 0 in supervisor mode on the user stack.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> ---
>>> CC: Jan Beulich <JBeulich@suse.com>
>>> CC: Roger Pau Monné <roger.pau@citrix.com>
>>>
>>> v4:
>>>  * New
>>>
>>> It occurs to me that it's not actually 0's we cache here.  It's whatever
>>> context was left from prior to Xen.  We still don't reliably clean unused
>>> MSRs.
> Actually, with this, ...
>
>>> --- a/xen/arch/x86/hvm/svm/svm.c
>>> +++ b/xen/arch/x86/hvm/svm/svm.c
>>> @@ -35,6 +35,7 @@
>>>  #include <asm/p2m.h>
>>>  #include <asm/paging.h>
>>>  #include <asm/processor.h>
>>> +#include <asm/traps.h>
>>>  #include <asm/vm_event.h>
>>>  #include <asm/x86_emulate.h>
>>>  
>>> @@ -1581,6 +1582,21 @@ static int _svm_cpu_up(bool bsp)
>>>      /* Initialize OSVW bits to be used by guests */
>>>      svm_host_osvw_init();
>>>  
>>> +    /*
>>> +     * VMSAVE writes out the current full FS, GS, LDTR and TR segments, and
>>> +     * the GS_SHADOW, SYSENTER and SYSCALL linkage MSRs.
>>> +     *
>>> +     * The segment data gets modified by the svm_load_segs() optimisation for
>>> +     * PV context switches, but all values get reloaded at that point, as well
>>> +     * as during context switch from SVM.
>>> +     *
>>> +     * If PV guests are available (and FRED is not in use), it is critical
>>> +     * that the SYSCALL linkage MSRs been configured at this juncture.
>>> +     */
>>> +    ASSERT(opt_fred >= 0); /* Confirm that FRED-ness has been resolved */
>>> +    if ( IS_ENABLED(CONFIG_PV) && !opt_fred )
>>> +        ASSERT(rdmsr(MSR_LSTAR));
>> It has occurred to me that this is subtly wrong.  While FRED doesn't use
>> LSTAR/SFMASK, it does reuse STAR.
>>
>> So this needs to be:
>>
>>     if ( IS_ENABLED(CONFIG_PV) )
>>         ASSERT(rdmsr(MSR_STAR));
>>
>> with the include dropped, as the final sentence adjusted to say "even
>> with FRED".
> ... if we inherit a non-zero value, is the assertion of much use this way?

The inherited case is normally when we're KEXEC'd into.  That doesn't
happen very much with Xen, and is more of a concern with Linux.

But yes, IMO the assertion is still useful.  CI boots from clean, so the
ASSERT() will catch accidental code movement which violates the dependency.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 15:44:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 15:44:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244371.1543810 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx5Rc-00060R-OW; Mon, 02 Mar 2026 15:44:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244371.1543810; Mon, 02 Mar 2026 15:44:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx5Rc-00060K-Lt; Mon, 02 Mar 2026 15:44:28 +0000
Received: by outflank-mailman (input) for mailman id 1244371;
 Mon, 02 Mar 2026 15:44: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=f7KG=BC=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vx5Ra-00060E-RI
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 15:44:26 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id ae257be3-164e-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Mar 2026 16:44: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 4091514BF;
 Mon,  2 Mar 2026 07:44:14 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.82.225])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 3BAC23F73B;
 Mon,  2 Mar 2026 07:44: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: ae257be3-164e-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 0/4] xen/arm: ffa: Add PARTITION_INFO_GET_REGS support
Date: Mon,  2 Mar 2026 16:44:09 +0100
Message-ID: <cover.1772464956.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This series implements FF-A 1.2 PARTITION_INFO_GET_REGS support,
providing register-based partition info retrieval as an efficient
alternative to the RX buffer-based PARTITION_INFO_GET.

The serie is also introducing a caching system for the list of secure
partitions to prevent retrieving it on each VM call as we expect it to
be static and not changing over time.

The patches are organized as follows:
- patch 1 is modifying existing code to prepare for GET_REGS support by
  adding a start_index in the existing internal function
- patch 2 is introducing the secure partition list caching
- patch 3 is removing the existing suscribers list to directly use the
  cached secure partition list
- patch 4 is adding GET_REGS support

Changes since v1 (Jens comments):
- rework SP cache handling to enforce 1.1+ structure size
- ensure unaligned-safe reads
- remove checks for SBZ fields
- tighten tag handling

Bertrand Marquis (4):
  xen/arm: ffa: Add start_index to VM partinfo helper
  xen/arm: ffa: Cache SP partition info at init
  xen/arm: ffa: Drop SP subscriber lists
  xen/arm: ffa: Add cached GET_REGS support

 xen/arch/arm/tee/ffa.c          |  23 +-
 xen/arch/arm/tee/ffa_partinfo.c | 565 ++++++++++++++++++++++----------
 xen/arch/arm/tee/ffa_private.h  |   4 +-
 3 files changed, 410 insertions(+), 182 deletions(-)

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 02 15:44:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 15:44:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244372.1543820 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx5Ro-0006Hm-VX; Mon, 02 Mar 2026 15:44:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244372.1543820; Mon, 02 Mar 2026 15: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 1vx5Ro-0006He-Rp; Mon, 02 Mar 2026 15:44:40 +0000
Received: by outflank-mailman (input) for mailman id 1244372;
 Mon, 02 Mar 2026 15:44:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f7KG=BC=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vx5Rn-0006Gr-6s
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 15:44:39 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id b8194af2-164e-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 16:44: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 21967152B;
 Mon,  2 Mar 2026 07:44:31 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.82.225])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 10B3F3F73B;
 Mon,  2 Mar 2026 07: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: b8194af2-164e-11f1-b164-2bf370ae4941
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 2/4] xen/arm: ffa: Cache SP partition info at init
Date: Mon,  2 Mar 2026 16:44:11 +0100
Message-ID: <e05fcde563e09dc63fbe4e3299049f6d6ebf903e.1772464956.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1772464956.git.bertrand.marquis@arm.com>
References: <cover.1772464956.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

FFA_PARTITION_INFO_GET currently queries the SPMC on each call and walks the
RX buffer every time. The SP list is expected to be static, so repeated
firmware calls and validation are unnecessary.

Cache the SPMC partition-info list at init time, keeping only secure
endpoints, and reuse the cached entries for SP count and partition-info
responses. Initialize the VM create/destroy subscriber lists from the cached
list and free the cache on init failure.

SP partition info now reflects the init-time snapshot and will not change.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes since v1:
- removed unneeded NULL assignment after XFREE
- remove warned usage and only rely on printk_once to warn on the 15-bit
  convention
- rework ffa_partinfo_init cleanup
- ensure we do not do unaligned accesses when building the SP cache
- enforce SPMC partinfo size to be at least 1.1 structure size when
  creating and remove tests when using the cache
---
 xen/arch/arm/tee/ffa_partinfo.c | 216 +++++++++++++++++++++-----------
 1 file changed, 146 insertions(+), 70 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index 6a6f3ffb822e..b933becaa55a 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -6,6 +6,8 @@
 #include <xen/const.h>
 #include <xen/sizes.h>
 #include <xen/types.h>
+#include <xen/unaligned.h>
+#include <xen/xmalloc.h>
 
 #include <asm/smccc.h>
 #include <asm/regs.h>
@@ -33,6 +35,10 @@ static uint16_t subscr_vm_created_count __read_mostly;
 static uint16_t *subscr_vm_destroyed __read_mostly;
 static uint16_t subscr_vm_destroyed_count __read_mostly;
 
+/* SP list cache (secure endpoints only); populated at init. */
+static void *sp_list __read_mostly;
+static uint32_t sp_list_count __read_mostly;
+static uint32_t sp_list_entry_size __read_mostly;
 static int32_t ffa_partition_info_get(struct ffa_uuid uuid, uint32_t flags,
                                       uint32_t *count, uint32_t *fpi_size)
 {
@@ -79,92 +85,84 @@ static int32_t ffa_copy_info(void **dst, void *dst_end, const void *src,
     return FFA_RET_OK;
 }
 
-static int32_t ffa_get_sp_count(struct ffa_uuid uuid, uint32_t *sp_count)
+static uint16_t ffa_sp_entry_read_id(const void *entry)
 {
-    uint32_t src_size;
-
-    return ffa_partition_info_get(uuid, FFA_PARTITION_INFO_GET_COUNT_FLAG,
-                                  sp_count, &src_size);
+    return get_unaligned_t(uint16_t,
+                           (const uint8_t *)entry +
+                           offsetof(struct ffa_partition_info_1_0, id));
 }
 
-static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_count,
-                                   void **dst_buf, void *end_buf,
-                                   uint32_t dst_size)
+static bool ffa_sp_entry_matches_uuid(const void *entry, struct ffa_uuid uuid)
 {
-    int32_t ret;
-    int32_t release_ret;
-    uint32_t src_size, real_sp_count;
-    void *src_buf;
-    uint32_t count = 0;
-    bool notify_fw = false;
+    struct ffa_uuid sp_uuid;
 
-    /* We need to use the RX buffer to receive the list */
-    src_buf = ffa_rxtx_spmc_rx_acquire();
-    if ( !src_buf )
-        return FFA_RET_DENIED;
+    if ( ffa_uuid_is_nil(uuid) )
+        return true;
 
-    ret = ffa_partition_info_get(uuid, 0, &real_sp_count, &src_size);
-    if ( ret )
-        goto out;
-    notify_fw = true;
+    memcpy(&sp_uuid,
+           (const uint8_t *)entry +
+           offsetof(struct ffa_partition_info_1_1, uuid),
+           sizeof(sp_uuid));
+    return ffa_uuid_equal(uuid, sp_uuid);
+}
 
-    /* Validate the src_size we got */
-    if ( src_size < sizeof(struct ffa_partition_info_1_0) ||
-         src_size >= FFA_PAGE_SIZE )
+static int32_t ffa_get_sp_count(struct ffa_uuid uuid, uint32_t *sp_count)
+{
+    uint32_t count = 0;
+    uint32_t n;
+
+    for ( n = 0; n < sp_list_count; n++ )
     {
-        ret = FFA_RET_NOT_SUPPORTED;
-        goto out;
+        void *entry = sp_list + n * sp_list_entry_size;
+
+        if ( ffa_sp_entry_matches_uuid(entry, uuid) )
+            count++;
     }
 
-    /*
-     * Limit the maximum time we hold the CPU by limiting the number of SPs.
-     * We just ignore the extra ones as this is tested during init in
-     * ffa_partinfo_init so the only possible reason is SP have been added
-     * since boot.
-     */
-    if ( real_sp_count > FFA_MAX_NUM_SP )
-        real_sp_count = FFA_MAX_NUM_SP;
+    *sp_count = count;
 
-    /* Make sure the data fits in our buffer */
-    if ( real_sp_count > (FFA_RXTX_PAGE_COUNT * FFA_PAGE_SIZE) / src_size )
-    {
-        ret = FFA_RET_NOT_SUPPORTED;
-        goto out;
-    }
+    if ( !ffa_uuid_is_nil(uuid) && !count )
+        return FFA_RET_INVALID_PARAMETERS;
 
-    for ( uint32_t sp_num = 0; sp_num < real_sp_count; sp_num++ )
-    {
-        struct ffa_partition_info_1_1 *fpi = src_buf;
+    return FFA_RET_OK;
+}
 
-        /* filter out SP not following bit 15 convention if any */
-        if ( FFA_ID_IS_SECURE(fpi->id) )
-        {
-            /*
-             * If VM is 1.0 but firmware is 1.1 we could have several entries
-             * with the same ID but different UUIDs. In this case the VM will
-             * get a list with several time the same ID.
-             * This is a non-compliance to the specification but 1.0 VMs should
-             * handle that on their own to simplify Xen implementation.
-             */
+static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_count,
+                                   void **dst_buf, void *end_buf,
+                                   uint32_t dst_size)
+{
+    int32_t ret;
+    uint32_t count = 0;
+    uint32_t n;
 
-            ret = ffa_copy_info(dst_buf, end_buf, src_buf, dst_size, src_size);
-            if ( ret )
-                goto out;
+    for ( n = 0; n < sp_list_count; n++ )
+    {
+        void *entry = sp_list + n * sp_list_entry_size;
 
-            count++;
-        }
+        if ( !ffa_sp_entry_matches_uuid(entry, uuid) )
+            continue;
+
+        /*
+         * If VM is 1.0 but firmware is 1.1 we could have several entries
+         * with the same ID but different UUIDs. In this case the VM will
+         * get a list with several time the same ID.
+         * This is a non-compliance to the specification but 1.0 VMs should
+         * handle that on their own to simplify Xen implementation.
+         */
+        ret = ffa_copy_info(dst_buf, end_buf, entry, dst_size,
+                            sp_list_entry_size);
+        if ( ret )
+            return ret;
 
-        src_buf += src_size;
+        count++;
     }
 
     *sp_count = count;
 
-out:
-    release_ret = ffa_rxtx_spmc_rx_release(notify_fw);
-    if ( release_ret )
-        gprintk(XENLOG_WARNING,
-                "ffa: Error releasing SPMC RX buffer: %d\n", release_ret);
-    return ret;
+    if ( !ffa_uuid_is_nil(uuid) && !count )
+        return FFA_RET_INVALID_PARAMETERS;
+
+    return FFA_RET_OK;
 }
 
 static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t start_index,
@@ -435,6 +433,13 @@ static int32_t ffa_direct_req_send_vm(uint16_t sp_id, uint16_t vm_id,
     return res;
 }
 
+static void ffa_sp_list_cache_free(void)
+{
+    XFREE(sp_list);
+    sp_list_count = 0;
+    sp_list_entry_size = 0;
+}
+
 static void uninit_subscribers(void)
 {
         subscr_vm_created_count = 0;
@@ -443,6 +448,63 @@ static void uninit_subscribers(void)
         XFREE(subscr_vm_destroyed);
 }
 
+static bool ffa_sp_list_cache_init(const void *buf, uint32_t count,
+                                   uint32_t fpi_size)
+{
+    const uint8_t *src = buf;
+    uint32_t secure_count = 0;
+    uint32_t n, idx = 0;
+
+    if ( fpi_size < sizeof(struct ffa_partition_info_1_1) ||
+         fpi_size >= FFA_PAGE_SIZE )
+        return false;
+
+    if ( count > (FFA_RXTX_PAGE_COUNT * FFA_PAGE_SIZE) / fpi_size )
+        return false;
+
+    for ( n = 0; n < count; n++ )
+    {
+        const uint8_t *entry = src + n * fpi_size;
+        uint16_t id = ffa_sp_entry_read_id(entry);
+
+        if ( !FFA_ID_IS_SECURE(id) )
+        {
+            printk_once(XENLOG_ERR
+                        "ffa: Firmware is not using bit 15 convention for IDs !!\n");
+            printk(XENLOG_ERR
+                   "ffa: Secure partition with id 0x%04x cannot be used\n",
+                   id);
+            continue;
+        }
+
+        secure_count++;
+    }
+
+    if ( secure_count )
+    {
+        sp_list = xzalloc_bytes(secure_count * fpi_size);
+        if ( !sp_list )
+            return false;
+    }
+
+    sp_list_count = secure_count;
+    sp_list_entry_size = fpi_size;
+
+    for ( n = 0; n < count; n++ )
+    {
+        const uint8_t *entry = src + n * fpi_size;
+        uint16_t id = ffa_sp_entry_read_id(entry);
+
+        if ( !FFA_ID_IS_SECURE(id) )
+            continue;
+
+        memcpy(sp_list + idx * fpi_size, entry, fpi_size);
+        idx++;
+    }
+
+    return true;
+}
+
 static bool init_subscribers(void *buf, uint16_t count, uint32_t fpi_size)
 {
     uint16_t n;
@@ -538,7 +600,7 @@ bool ffa_partinfo_init(void)
     if ( e )
     {
         printk(XENLOG_ERR "ffa: Failed to get list of SPs: %d\n", e);
-        goto out;
+        goto out_release_rx;
     }
     notify_fw = true;
 
@@ -546,15 +608,29 @@ bool ffa_partinfo_init(void)
     {
         printk(XENLOG_ERR "ffa: More SPs than the maximum supported: %u - %u\n",
                count, FFA_MAX_NUM_SP);
-        goto out;
+        goto out_release_rx;
+    }
+
+    if ( !ffa_sp_list_cache_init(spmc_rx, count, fpi_size) )
+    {
+        printk(XENLOG_ERR "ffa: Failed to cache SP list\n");
+        goto out_release_rx;
     }
 
-    ret = init_subscribers(spmc_rx, count, fpi_size);
+    if ( !init_subscribers(sp_list, sp_list_count, sp_list_entry_size) )
+        goto out_free_sp_cache;
 
-out:
+    ret = true;
+    goto out_release_rx;
+
+out_free_sp_cache:
+    ffa_sp_list_cache_free();
+
+out_release_rx:
     e = ffa_rxtx_spmc_rx_release(notify_fw);
     if ( e )
         printk(XENLOG_WARNING "ffa: Error releasing SPMC RX buffer: %d\n", e);
+
     return ret;
 }
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 02 15:44:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 15:44:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244373.1543824 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx5Rp-0006Jp-84; Mon, 02 Mar 2026 15:44:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244373.1543824; Mon, 02 Mar 2026 15:44:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx5Rp-0006JG-3P; Mon, 02 Mar 2026 15:44:41 +0000
Received: by outflank-mailman (input) for mailman id 1244373;
 Mon, 02 Mar 2026 15:44:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f7KG=BC=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vx5Rn-0006Gr-Ro
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 15:44:39 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id b6f7fd03-164e-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 16:44: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 4E77F14BF;
 Mon,  2 Mar 2026 07:44:29 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.82.225])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 5DC4A3F73B;
 Mon,  2 Mar 2026 07: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: b6f7fd03-164e-11f1-b164-2bf370ae4941
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 1/4] xen/arm: ffa: Add start_index to VM partinfo helper
Date: Mon,  2 Mar 2026 16:44:10 +0100
Message-ID: <59113d382b0f31ae51152887a0afaeb10dcf8420.1772464956.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1772464956.git.bertrand.marquis@arm.com>
References: <cover.1772464956.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Windowed GET_REGS retrieval needs to emit VM entries starting from an
arbitrary index, but ffa_get_vm_partinfo() always starts from index 0.

Add a start_index parameter to ffa_get_vm_partinfo() and skip entries
until the local index reaches start_index. Update
ffa_handle_partition_info_get() to pass start_index=0 to preserve
existing behavior.

No functional changes.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
---
Changes since v1:
- Add Jens R-b
---
 xen/arch/arm/tee/ffa_partinfo.c | 61 +++++++++++++++++++--------------
 1 file changed, 35 insertions(+), 26 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index fdb03dae9a0c..6a6f3ffb822e 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -167,14 +167,15 @@ out:
     return ret;
 }
 
-static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t *vm_count,
-                                   void **dst_buf, void *end_buf,
-                                   uint32_t dst_size)
+static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t start_index,
+                                   uint32_t *vm_count, void **dst_buf,
+                                   void *end_buf, uint32_t dst_size)
 {
     struct domain *d = current->domain;
     struct ffa_ctx *curr_ctx = d->arch.tee;
     struct ffa_ctx *dest_ctx;
     uint32_t count = 0;
+    uint32_t idx = 0;
     int32_t ret = FFA_RET_OK;
     /*
      * We do not have UUID info for VMs so use the 1.0 structure so that we set
@@ -202,17 +203,21 @@ static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t *vm_count,
     if ( ACCESS_ONCE(curr_ctx->guest_vers) >= FFA_VERSION_1_2 )
     {
         /* Add caller VM information */
-        info.id = curr_ctx->ffa_id;
-        info.execution_context = curr_ctx->num_vcpus;
-        info.partition_properties = FFA_PART_VM_PROP;
-        if ( is_64bit_domain(d) )
-            info.partition_properties |= FFA_PART_PROP_AARCH64_STATE;
-
-        ret = ffa_copy_info(dst_buf, end_buf, &info, dst_size, sizeof(info));
-        if ( ret )
-            return ret;
+        if ( start_index == 0)
+        {
+            info.id = curr_ctx->ffa_id;
+            info.execution_context = curr_ctx->num_vcpus;
+            info.partition_properties = FFA_PART_VM_PROP;
+            if ( is_64bit_domain(d) )
+                info.partition_properties |= FFA_PART_PROP_AARCH64_STATE;
 
-        count++;
+            ret = ffa_copy_info(dst_buf, end_buf, &info, dst_size,
+                                sizeof(info));
+            if ( ret )
+                return ret;
+            count++;
+        }
+        idx++;
     }
 
     if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
@@ -231,21 +236,25 @@ static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t *vm_count,
             if ( dest_ctx == curr_ctx )
                 continue;
 
-            info.id = dest_ctx->ffa_id;
-            info.execution_context = dest_ctx->num_vcpus;
-            info.partition_properties = FFA_PART_VM_PROP;
-            if ( dest_ctx->is_64bit )
-                info.partition_properties |= FFA_PART_PROP_AARCH64_STATE;
-
-            ret = ffa_copy_info(dst_buf, end_buf, &info, dst_size,
-                                sizeof(info));
-            if ( ret )
+            if ( idx >= start_index )
             {
-                read_unlock(&ffa_ctx_list_rwlock);
-                return ret;
+                info.id = dest_ctx->ffa_id;
+                info.execution_context = dest_ctx->num_vcpus;
+                info.partition_properties = FFA_PART_VM_PROP;
+                if ( dest_ctx->is_64bit )
+                    info.partition_properties |= FFA_PART_PROP_AARCH64_STATE;
+
+                ret = ffa_copy_info(dst_buf, end_buf, &info, dst_size,
+                                    sizeof(info));
+                if ( ret )
+                {
+                    read_unlock(&ffa_ctx_list_rwlock);
+                    return ret;
+                }
+                count++;
             }
 
-            count++;
+            idx++;
         }
         read_unlock(&ffa_ctx_list_rwlock);
     }
@@ -355,7 +364,7 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
             goto out_rx_release;
     }
 
-    ret = ffa_get_vm_partinfo(uuid, &ffa_vm_count, &dst_buf, end_buf,
+    ret = ffa_get_vm_partinfo(uuid, 0, &ffa_vm_count, &dst_buf, end_buf,
                               dst_size);
 
 out_rx_release:
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 02 15:44:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 15:44:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244375.1543840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx5Rr-0006n4-Ip; Mon, 02 Mar 2026 15:44:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244375.1543840; Mon, 02 Mar 2026 15:44:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx5Rr-0006mx-Fx; Mon, 02 Mar 2026 15:44:43 +0000
Received: by outflank-mailman (input) for mailman id 1244375;
 Mon, 02 Mar 2026 15:44:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f7KG=BC=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vx5Rq-00060E-2A
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 15:44:42 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id b949a518-164e-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Mar 2026 16:44:39 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id F17D21570;
 Mon,  2 Mar 2026 07:44:32 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.82.225])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E32103F73B;
 Mon,  2 Mar 2026 07:44: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: b949a518-164e-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 3/4] xen/arm: ffa: Drop SP subscriber lists
Date: Mon,  2 Mar 2026 16:44:12 +0100
Message-ID: <055bed7c55f298a0916518fb61929bfc7dac6ef2.1772464956.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1772464956.git.bertrand.marquis@arm.com>
References: <cover.1772464956.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The init-time SP cache already contains partition properties, but the
code still builds separate subscriber arrays for VM created/destroyed
notifications. That duplicates state and allocation.

Use the cached SP list directly to:
- decide which SPs receive created/destroyed notifications
- build the per-domain destroy bitmap
- skip destroy notifications for SPs not notified on create

Also switch cached SP entry field reads in VM create/destroy
notification paths to unaligned-safe helpers, as cache entries are
variable-size and should not be dereferenced via struct pointers.

No functional changes.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes since v1:
- use unaligned-safe reads for cached SP entry fields
  (id/partition_properties) in VM create/destroy notification paths
---
 xen/arch/arm/tee/ffa_partinfo.c | 170 +++++++++-----------------------
 1 file changed, 47 insertions(+), 123 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index b933becaa55a..419e19510f6f 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -29,12 +29,6 @@ struct ffa_partition_info_1_1 {
     uint8_t uuid[16];
 };
 
-/* SPs subscribing to VM_CREATE and VM_DESTROYED events */
-static uint16_t *subscr_vm_created __read_mostly;
-static uint16_t subscr_vm_created_count __read_mostly;
-static uint16_t *subscr_vm_destroyed __read_mostly;
-static uint16_t subscr_vm_destroyed_count __read_mostly;
-
 /* SP list cache (secure endpoints only); populated at init. */
 static void *sp_list __read_mostly;
 static uint32_t sp_list_count __read_mostly;
@@ -92,6 +86,14 @@ static uint16_t ffa_sp_entry_read_id(const void *entry)
                            offsetof(struct ffa_partition_info_1_0, id));
 }
 
+static uint32_t ffa_sp_entry_read_partition_properties(const void *entry)
+{
+    return get_unaligned_t(uint32_t,
+                           (const uint8_t *)entry +
+                           offsetof(struct ffa_partition_info_1_0,
+                                    partition_properties));
+}
+
 static bool ffa_sp_entry_matches_uuid(const void *entry, struct ffa_uuid uuid)
 {
     struct ffa_uuid sp_uuid;
@@ -440,14 +442,6 @@ static void ffa_sp_list_cache_free(void)
     sp_list_entry_size = 0;
 }
 
-static void uninit_subscribers(void)
-{
-        subscr_vm_created_count = 0;
-        subscr_vm_destroyed_count = 0;
-        XFREE(subscr_vm_created);
-        XFREE(subscr_vm_destroyed);
-}
-
 static bool ffa_sp_list_cache_init(const void *buf, uint32_t count,
                                    uint32_t fpi_size)
 {
@@ -505,79 +499,6 @@ static bool ffa_sp_list_cache_init(const void *buf, uint32_t count,
     return true;
 }
 
-static bool init_subscribers(void *buf, uint16_t count, uint32_t fpi_size)
-{
-    uint16_t n;
-    uint16_t c_pos;
-    uint16_t d_pos;
-    struct ffa_partition_info_1_1 *fpi;
-
-    if ( fpi_size < sizeof(struct ffa_partition_info_1_1) )
-    {
-        printk(XENLOG_ERR "ffa: partition info size invalid: %u\n", fpi_size);
-        return false;
-    }
-
-    subscr_vm_created_count = 0;
-    subscr_vm_destroyed_count = 0;
-    for ( n = 0; n < count; n++ )
-    {
-        fpi = buf + n * fpi_size;
-
-        /*
-         * We need to have secure partitions using bit 15 set convention for
-         * secure partition IDs.
-         * Inform the user with a log and discard giving created or destroy
-         * event to those IDs.
-         */
-        if ( !FFA_ID_IS_SECURE(fpi->id) )
-        {
-            printk_once(XENLOG_ERR
-                        "ffa: Firmware is not using bit 15 convention for IDs !!\n");
-            printk(XENLOG_ERR
-                   "ffa: Secure partition with id 0x%04x cannot be used\n",
-                   fpi->id);
-        }
-        else
-        {
-            if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_CREATED )
-                subscr_vm_created_count++;
-            if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_DESTROYED )
-                subscr_vm_destroyed_count++;
-        }
-    }
-
-    if ( subscr_vm_created_count )
-        subscr_vm_created = xzalloc_array(uint16_t, subscr_vm_created_count);
-    if ( subscr_vm_destroyed_count )
-        subscr_vm_destroyed = xzalloc_array(uint16_t,
-                                            subscr_vm_destroyed_count);
-    if ( (subscr_vm_created_count && !subscr_vm_created) ||
-         (subscr_vm_destroyed_count && !subscr_vm_destroyed) )
-    {
-        printk(XENLOG_ERR "ffa: Failed to allocate subscription lists\n");
-        uninit_subscribers();
-        return false;
-    }
-
-    for ( c_pos = 0, d_pos = 0, n = 0; n < count; n++ )
-    {
-        fpi = buf + n * fpi_size;
-
-        if ( FFA_ID_IS_SECURE(fpi->id) )
-        {
-            if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_CREATED )
-                subscr_vm_created[c_pos++] = fpi->id;
-            if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_DESTROYED )
-                subscr_vm_destroyed[d_pos++] = fpi->id;
-        }
-    }
-
-    return true;
-}
-
-
-
 bool ffa_partinfo_init(void)
 {
     bool ret = false;
@@ -617,52 +538,39 @@ bool ffa_partinfo_init(void)
         goto out_release_rx;
     }
 
-    if ( !init_subscribers(sp_list, sp_list_count, sp_list_entry_size) )
-        goto out_free_sp_cache;
-
     ret = true;
     goto out_release_rx;
 
-out_free_sp_cache:
-    ffa_sp_list_cache_free();
-
 out_release_rx:
     e = ffa_rxtx_spmc_rx_release(notify_fw);
     if ( e )
         printk(XENLOG_WARNING "ffa: Error releasing SPMC RX buffer: %d\n", e);
-
+    if ( !ret )
+        ffa_sp_list_cache_free();
     return ret;
 }
 
-static bool is_in_subscr_list(const uint16_t *subscr, uint16_t start,
-                              uint16_t end, uint16_t sp_id)
+static void vm_destroy_bitmap_init(struct ffa_ctx *ctx,
+                                   unsigned int first_unnotified)
 {
     unsigned int n;
 
-    for ( n = start; n < end; n++ )
+    for ( n = 0; n < sp_list_count; n++ )
     {
-        if ( subscr[n] == sp_id )
-            return true;
-    }
-
-    return false;
-}
+        const void *entry = sp_list + n * sp_list_entry_size;
+        uint32_t partition_props =
+            ffa_sp_entry_read_partition_properties(entry);
 
-static void vm_destroy_bitmap_init(struct ffa_ctx *ctx,
-                                   unsigned int create_signal_count)
-{
-    unsigned int n;
+        if ( !(partition_props & FFA_PART_PROP_NOTIF_DESTROYED) )
+            continue;
 
-    for ( n = 0; n < subscr_vm_destroyed_count; n++ )
-    {
         /*
          * Skip SPs subscribed to the VM created event that never was
          * notified of the VM creation due to an error during
          * ffa_domain_init().
          */
-        if ( is_in_subscr_list(subscr_vm_created, create_signal_count,
-                               subscr_vm_created_count,
-                               subscr_vm_destroyed[n]) )
+        if ( (partition_props & FFA_PART_PROP_NOTIF_CREATED) &&
+             n >= first_unnotified )
             continue;
 
         set_bit(n, ctx->vm_destroy_bitmap);
@@ -671,32 +579,42 @@ static void vm_destroy_bitmap_init(struct ffa_ctx *ctx,
 
 int32_t ffa_partinfo_domain_init(struct domain *d)
 {
-    unsigned int count = BITS_TO_LONGS(subscr_vm_destroyed_count);
+    unsigned int count = BITS_TO_LONGS(sp_list_count);
     struct ffa_ctx *ctx = d->arch.tee;
     unsigned int n;
+    unsigned int first_unnotified = sp_list_count;
     int32_t res;
 
-    if ( !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32) )
+    if ( !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32) || !sp_list_count )
         return 0;
 
     ctx->vm_destroy_bitmap = xzalloc_array(unsigned long, count);
     if ( !ctx->vm_destroy_bitmap )
         return -ENOMEM;
 
-    for ( n = 0; n < subscr_vm_created_count; n++ )
+    for ( n = 0; n < sp_list_count; n++ )
     {
-        res = ffa_direct_req_send_vm(subscr_vm_created[n], ffa_get_vm_id(d),
+        const void *entry = sp_list + n * sp_list_entry_size;
+        uint32_t partition_props =
+            ffa_sp_entry_read_partition_properties(entry);
+        uint16_t id = ffa_sp_entry_read_id(entry);
+
+        if ( !(partition_props & FFA_PART_PROP_NOTIF_CREATED) )
+            continue;
+
+        res = ffa_direct_req_send_vm(id, ffa_get_vm_id(d),
                                      FFA_MSG_SEND_VM_CREATED);
         if ( res )
         {
             printk(XENLOG_ERR "ffa: Failed to report creation of vm_id %u to  %u: res %d\n",
-                   ffa_get_vm_id(d), subscr_vm_created[n], res);
+                   ffa_get_vm_id(d), id, res);
+            first_unnotified = n;
             break;
         }
     }
-    vm_destroy_bitmap_init(ctx, n);
+    vm_destroy_bitmap_init(ctx, first_unnotified);
 
-    if ( n != subscr_vm_created_count )
+    if ( first_unnotified != sp_list_count )
         return -EIO;
 
     return 0;
@@ -711,18 +629,24 @@ bool ffa_partinfo_domain_destroy(struct domain *d)
     if ( !ctx->vm_destroy_bitmap )
         return true;
 
-    for ( n = 0; n < subscr_vm_destroyed_count; n++ )
+    for ( n = 0; n < sp_list_count; n++ )
     {
+        const void *entry;
+        uint16_t id;
+
         if ( !test_bit(n, ctx->vm_destroy_bitmap) )
             continue;
 
-        res = ffa_direct_req_send_vm(subscr_vm_destroyed[n], ffa_get_vm_id(d),
+        entry = sp_list + n * sp_list_entry_size;
+        id = ffa_sp_entry_read_id(entry);
+
+        res = ffa_direct_req_send_vm(id, ffa_get_vm_id(d),
                                      FFA_MSG_SEND_VM_DESTROYED);
 
         if ( res && printk_ratelimit() )
             printk(XENLOG_WARNING
                    "%pd: ffa: Failed to report destruction of vm_id %u to %u: res %d\n",
-                   d, ffa_get_vm_id(d), subscr_vm_destroyed[n], res);
+                   d, ffa_get_vm_id(d), id, res);
 
         /*
          * For these two error codes the hypervisor is expected to resend
@@ -734,7 +658,7 @@ bool ffa_partinfo_domain_destroy(struct domain *d)
             clear_bit(n, ctx->vm_destroy_bitmap);
     }
 
-    if ( bitmap_empty(ctx->vm_destroy_bitmap, subscr_vm_destroyed_count) )
+    if ( bitmap_empty(ctx->vm_destroy_bitmap, sp_list_count) )
         XFREE(ctx->vm_destroy_bitmap);
 
     return !ctx->vm_destroy_bitmap;
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 02 15:44:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 15:44:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244378.1543849 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx5Rt-00073Y-R2; Mon, 02 Mar 2026 15:44:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244378.1543849; Mon, 02 Mar 2026 15: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 1vx5Rt-00073O-Nr; Mon, 02 Mar 2026 15:44:45 +0000
Received: by outflank-mailman (input) for mailman id 1244378;
 Mon, 02 Mar 2026 15: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=f7KG=BC=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vx5Rr-00060E-UU
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 15:44:44 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id ba4f9867-164e-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Mar 2026 16:44: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 AECAA152B;
 Mon,  2 Mar 2026 07:44:34 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.82.225])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A35133F73B;
 Mon,  2 Mar 2026 07:44: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: ba4f9867-164e-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 4/4] xen/arm: ffa: Add cached GET_REGS support
Date: Mon,  2 Mar 2026 16:44:13 +0100
Message-ID: <a7a2ba28c75241c1f1340482ed31d521ef38d218.1772464956.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1772464956.git.bertrand.marquis@arm.com>
References: <cover.1772464956.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

FF-A v1.2 defines PARTITION_INFO_GET_REGS for register-based partition
info retrieval, but Xen currently only supports the buffer-based GET
path for guests.

Implement GET_REGS using the cached SP list and VM entries, including
the register window layout and input validation. Track VM list changes
via the partinfo tag and use it to validate GET_REGS tag inputs. Ensure
that when a non-Nil UUID is specified, the UUID fields in both GET and
GET_REGS results are MBZ as required by the specification.

PARTITION_INFO_GET_REGS is available to v1.2 guests, returning cached SP
entries and VM entries with UUIDs zeroed for non-Nil UUID queries.

Also publish VM membership updates (VM count, ctx list, and partinfo
tag) under the same write-locked section so GET_REGS sees coherent state
and concurrent changes are reliably reported via RETRY.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes since v1:
- ignore x4-x17 not being zero and x3 bits 63-32 not being zero (defined
  as SBZ in the spec)
- detect tag changes during GET_REGS handling and return RETRY
- remove strict check of sp_list_entry_size, larger cache entry sizes
  will now be accepted
- publish VM count, ctx list, and partinfo tag updates under
  ffa_ctx_list_rwlock for coherent visibility
---
 xen/arch/arm/tee/ffa.c          |  23 +++-
 xen/arch/arm/tee/ffa_partinfo.c | 200 ++++++++++++++++++++++++++++++++
 xen/arch/arm/tee/ffa_private.h  |   4 +-
 3 files changed, 223 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index aa43ae2595d7..d6cae67e1a48 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -44,6 +44,11 @@
  *   - doesn't support signalling the secondary scheduler of pending
  *     notification for secure partitions
  *   - doesn't support notifications for Xen itself
+ * o FFA_PARTITION_INFO_GET/GET_REGS:
+ *   - v1.0 guests may see duplicate SP IDs when firmware provides UUIDs
+ *   - SP list is cached at init; SPMC tag changes are not tracked
+ *     between calls
+ *   - SP list is capped at FFA_MAX_NUM_SP entries
  *
  * There are some large locked sections with ffa_spmc_tx_lock and
  * ffa_spmc_rx_lock. Especially the ffa_spmc_tx_lock spinlock used
@@ -183,10 +188,11 @@ static bool ffa_negotiate_version(struct cpu_user_regs *regs)
 
         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);
+            /* Publish VM membership changes atomically with tag updates. */
+            inc_ffa_vm_count();
             list_add_tail(&ctx->ctx_list, &ffa_ctx_head);
+            ffa_partinfo_inc_tag();
             write_unlock(&ffa_ctx_list_rwlock);
         }
 
@@ -341,6 +347,12 @@ static void handle_features(struct cpu_user_regs *regs)
     case FFA_FEATURE_SCHEDULE_RECV_INTR:
         ffa_set_regs_success(regs, GUEST_FFA_SCHEDULE_RECV_INTR_ID, 0);
         break;
+    case FFA_PARTITION_INFO_GET_REGS:
+        if ( ACCESS_ONCE(ctx->guest_vers) >= FFA_VERSION_1_2 )
+            ffa_set_regs_success(regs, 0, 0);
+        else
+            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
+        break;
 
     case FFA_NOTIFICATION_BIND:
     case FFA_NOTIFICATION_UNBIND:
@@ -402,6 +414,9 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
     case FFA_PARTITION_INFO_GET:
         ffa_handle_partition_info_get(regs);
         return true;
+    case FFA_PARTITION_INFO_GET_REGS:
+        ffa_handle_partition_info_get_regs(regs);
+        return true;
     case FFA_RX_RELEASE:
         e = ffa_rx_release(ctx);
         break;
@@ -625,9 +640,11 @@ static int ffa_domain_teardown(struct domain *d)
 
     if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && ACCESS_ONCE(ctx->guest_vers) )
     {
-        dec_ffa_vm_count();
         write_lock(&ffa_ctx_list_rwlock);
+        /* Publish VM membership changes atomically with tag updates. */
+        dec_ffa_vm_count();
         list_del(&ctx->ctx_list);
+        ffa_partinfo_inc_tag();
         write_unlock(&ffa_ctx_list_rwlock);
     }
 
diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index 419e19510f6f..16da5ee567db 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -29,10 +29,39 @@ struct ffa_partition_info_1_1 {
     uint8_t uuid[16];
 };
 
+/* Registers a3..a17 (15 regs) carry partition descriptors, 3 regs each. */
+#define FFA_PARTINFO_REG_MAX_ENTRIES \
+    ((15 * sizeof(uint64_t)) / sizeof(struct ffa_partition_info_1_1))
+
 /* SP list cache (secure endpoints only); populated at init. */
 static void *sp_list __read_mostly;
 static uint32_t sp_list_count __read_mostly;
 static uint32_t sp_list_entry_size __read_mostly;
+
+/* SP list is static; tag only moves when VMs are added/removed. */
+static atomic_t ffa_partinfo_tag = ATOMIC_INIT(1);
+
+void ffa_partinfo_inc_tag(void)
+{
+    atomic_inc(&ffa_partinfo_tag);
+}
+
+static inline uint16_t ffa_partinfo_get_tag(void)
+{
+    /*
+     * Tag moves with VM list changes only.
+     *
+     * Limitation: we cannot detect an SPMC tag change between calls because we
+     * do not retain the previous SPMC tag; we only refresh it via the mandatory
+     * start_index=0 call and assume it stays stable while combined_tag (our
+     * VM/SP-count tag) is used for guest validation. This means SPMC tag
+     * changes alone will not trigger RETRY.
+     */
+    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
+        return atomic_read(&ffa_partinfo_tag) & GENMASK(15, 0);
+    else
+        return 1;
+}
 static int32_t ffa_partition_info_get(struct ffa_uuid uuid, uint32_t flags,
                                       uint32_t *count, uint32_t *fpi_size)
 {
@@ -140,6 +169,7 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_count,
     for ( n = 0; n < sp_list_count; n++ )
     {
         void *entry = sp_list + n * sp_list_entry_size;
+        void *dst_pos;
 
         if ( !ffa_sp_entry_matches_uuid(entry, uuid) )
             continue;
@@ -151,11 +181,20 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_count,
          * This is a non-compliance to the specification but 1.0 VMs should
          * handle that on their own to simplify Xen implementation.
          */
+        dst_pos = *dst_buf;
         ret = ffa_copy_info(dst_buf, end_buf, entry, dst_size,
                             sp_list_entry_size);
         if ( ret )
             return ret;
 
+        if ( !ffa_uuid_is_nil(uuid) &&
+             dst_size >= sizeof(struct ffa_partition_info_1_1) )
+        {
+            struct ffa_partition_info_1_1 *fpi = dst_pos;
+
+            memset(fpi->uuid, 0, sizeof(fpi->uuid));
+        }
+
         count++;
     }
 
@@ -167,6 +206,38 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_count,
     return FFA_RET_OK;
 }
 
+static uint16_t ffa_get_sp_partinfo_regs(struct ffa_uuid uuid,
+                                         uint16_t start_index,
+                                         uint64_t *out_regs,
+                                         uint16_t max_entries)
+{
+    uint32_t idx = 0;
+    uint16_t filled = 0;
+    uint32_t n;
+
+    for ( n = 0; n < sp_list_count && filled < max_entries; n++ )
+    {
+        void *entry = sp_list + n * sp_list_entry_size;
+
+        if ( !ffa_sp_entry_matches_uuid(entry, uuid) )
+            continue;
+
+        if ( idx++ < start_index )
+            continue;
+
+        memcpy(&out_regs[filled * 3], entry,
+               sizeof(struct ffa_partition_info_1_1));
+        if ( !ffa_uuid_is_nil(uuid) )
+        {
+            out_regs[filled * 3 + 1] = 0;
+            out_regs[filled * 3 + 2] = 0;
+        }
+        filled++;
+    }
+
+    return filled;
+}
+
 static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t start_index,
                                    uint32_t *vm_count, void **dst_buf,
                                    void *end_buf, uint32_t dst_size)
@@ -383,6 +454,135 @@ out:
     }
 }
 
+void ffa_handle_partition_info_get_regs(struct cpu_user_regs *regs)
+{
+    struct domain *d = current->domain;
+    struct ffa_ctx *ctx = d->arch.tee;
+    struct ffa_uuid uuid;
+    uint32_t sp_count = 0, vm_count = 0, total_count;
+    uint16_t start_index, tag;
+    uint16_t num_entries = 0;
+    uint64_t x3 = get_user_reg(regs, 3);
+    int32_t ret = FFA_RET_OK;
+    uint64_t out_regs[18] = { 0 };
+    unsigned int n;
+    uint16_t tag_out, tag_end;
+
+    if ( ACCESS_ONCE(ctx->guest_vers) < FFA_VERSION_1_2 )
+    {
+        ret = FFA_RET_NOT_SUPPORTED;
+        goto out;
+    }
+
+    /*
+     * Registers a3..a17 (15 regs) carry partition descriptors, 3 regs each.
+     * For FF-A 1.2, that yields a maximum of 5 entries per GET_REGS call.
+     * Enforce the assumed layout so window sizing stays correct.
+     */
+    BUILD_BUG_ON(FFA_PARTINFO_REG_MAX_ENTRIES != 5);
+
+    start_index = x3 & GENMASK(15, 0);
+    tag = (x3 >> 16) & GENMASK(15, 0);
+
+    /* Start index must allow room for up to 5 entries without 16-bit overflow. */
+    if ( start_index > (GENMASK(15, 0) - (FFA_PARTINFO_REG_MAX_ENTRIES - 1)) )
+    {
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto out;
+    }
+
+    uuid.val[0] = get_user_reg(regs, 1);
+    uuid.val[1] = get_user_reg(regs, 2);
+
+    tag_out = ffa_partinfo_get_tag();
+
+    if ( start_index == 0 )
+    {
+        if ( tag )
+        {
+            ret = FFA_RET_INVALID_PARAMETERS;
+            goto out;
+        }
+    }
+    else if ( tag != tag_out )
+    {
+        ret = FFA_RET_RETRY;
+        goto out;
+    }
+
+    if ( ffa_uuid_is_nil(uuid) )
+    {
+        if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
+            vm_count = get_ffa_vm_count();
+        else
+            vm_count = 1; /* Caller VM only */
+    }
+
+    ret = ffa_get_sp_count(uuid, &sp_count);
+    if ( ret )
+        goto out;
+
+    total_count = sp_count + vm_count;
+
+    if ( total_count == 0 || start_index >= total_count )
+    {
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto out;
+    }
+
+    if ( start_index < sp_count )
+        num_entries = ffa_get_sp_partinfo_regs(uuid, start_index, &out_regs[3],
+                                               FFA_PARTINFO_REG_MAX_ENTRIES);
+
+    if ( num_entries < FFA_PARTINFO_REG_MAX_ENTRIES )
+    {
+        uint32_t vm_start = start_index > sp_count ?
+                            start_index - sp_count : 0;
+        uint32_t filled = 0;
+        void *vm_dst = &out_regs[3 + num_entries * 3];
+        void *vm_end = &out_regs[18];
+
+        ret = ffa_get_vm_partinfo(uuid, vm_start, &filled, &vm_dst, vm_end,
+                                  sizeof(struct ffa_partition_info_1_1));
+        if ( ret != FFA_RET_OK && ret != FFA_RET_NO_MEMORY )
+            goto out;
+
+        num_entries += filled;
+    }
+
+    if ( num_entries == 0 )
+    {
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto out;
+    }
+
+    /*
+     * Detect list changes while building the response so the caller can retry
+     * with a coherent snapshot tag.
+     */
+    tag_end = ffa_partinfo_get_tag();
+    if ( tag_end != tag_out )
+    {
+        ret = FFA_RET_RETRY;
+        goto out;
+    }
+
+    out_regs[0] = FFA_SUCCESS_64;
+    out_regs[2] = ((uint64_t)sizeof(struct ffa_partition_info_1_1) << 48) |
+                  ((uint64_t)tag_end << 32) |
+                  ((uint64_t)(start_index + num_entries - 1) << 16) |
+                  ((uint64_t)(total_count - 1) & GENMASK(15, 0));
+
+    for ( n = 0; n < ARRAY_SIZE(out_regs); n++ )
+        set_user_reg(regs, n, out_regs[n]);
+
+    return;
+
+out:
+    if ( ret )
+        ffa_set_regs_error(regs, ret);
+}
+
 static int32_t ffa_direct_req_send_vm(uint16_t sp_id, uint16_t vm_id,
                                       uint8_t msg)
 {
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 1a632983c860..c291f32b56ff 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -289,7 +289,7 @@
 #define FFA_MSG_SEND2                   0x84000086U
 #define FFA_CONSOLE_LOG_32              0x8400008AU
 #define FFA_CONSOLE_LOG_64              0xC400008AU
-#define FFA_PARTITION_INFO_GET_REGS     0x8400008BU
+#define FFA_PARTITION_INFO_GET_REGS     0xC400008BU
 #define FFA_MSG_SEND_DIRECT_REQ2        0xC400008DU
 #define FFA_MSG_SEND_DIRECT_RESP2       0xC400008EU
 
@@ -452,6 +452,8 @@ bool ffa_partinfo_init(void);
 int32_t ffa_partinfo_domain_init(struct domain *d);
 bool ffa_partinfo_domain_destroy(struct domain *d);
 void ffa_handle_partition_info_get(struct cpu_user_regs *regs);
+void ffa_handle_partition_info_get_regs(struct cpu_user_regs *regs);
+void ffa_partinfo_inc_tag(void);
 
 int32_t ffa_endpoint_domain_lookup(uint16_t endpoint_id, struct domain **d_out,
                                    struct ffa_ctx **ctx_out);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 02 15:47:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 15:47:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244416.1543860 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx5UK-00007b-6o; Mon, 02 Mar 2026 15:47:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244416.1543860; Mon, 02 Mar 2026 15: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 1vx5UK-00007U-47; Mon, 02 Mar 2026 15:47:16 +0000
Received: by outflank-mailman (input) for mailman id 1244416;
 Mon, 02 Mar 2026 15:47: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=OlTG=BC=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vx5UI-000072-KU
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 15:47:14 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c105::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1423503b-164f-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 16:47:13 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA2PR03MB5817.namprd03.prod.outlook.com (2603:10b6:806:11d::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.20; Mon, 2 Mar
 2026 15:47:08 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9654.020; Mon, 2 Mar 2026
 15:47: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: 1423503b-164f-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Nf38qlXtLyPOEiEubE01tKmOKd0kIKb9Zv8DRjQ6qzVwbs9/dMAIfM5LzH6ypn2t///yRCR+0fcc1rk448WbM6T9piRe1VFLXnMSovqiUHke1fVbGrVKS/XvJCnvJnnVkRQrS3SY7CuL2hsBGr1WgtZzMfTJhsOeiud6P2HkS8bfkNod2WW/FTPIL3sZnpGBlD00L6hYHmczY0JFPkFEWrCt1nPiLW0HtRtpyV5K4Rn36ZjYcuXzP3FRhXttiWi225IYnfFoCCWkQO1d/Q+z64Q3LEo4QmhD4x55DJa4ZLP8oU38rgSxHgkUTn/C5oDicF/LKycBn9ZSYz/8FDm6MQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0y+S1Kp3BTitawanS0oApxEXRRZN8x8ryHCgv2OtqCM=;
 b=pR3seyYgfYPkrTtj0xaTP6KeGNhTIKGW83PDnjbV5H7FjFY/LkxjdgtIuHyafAMKPk41fhUkeq02ExbrwYpFj8QrasI0GW8eXTWqpeQH4G4Ihm86t7TuCSvL3QAANHtlUrokgBra7oIJIyMUCKMnbLHJE9Vj1/h8du4k8Kf4IxMt0o9cPAPUNVmaDRgJqrvHSzKD1NbBjAiXDzWm8tOAv6BBlY19nS5Kq5wjN+chxD4Lb0arsx17pA+NIhN5wY2L/vOjGYne9LjkboeXtF2hflrc+ffCkzU3IMszUOlS7OKqYgdYQZrAJfD7dXCDmMaCQiRblCZTx/nSmSfB3M0srg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0y+S1Kp3BTitawanS0oApxEXRRZN8x8ryHCgv2OtqCM=;
 b=PwHvx90EBzzlAbcnFQ2jwejxtkceZw9p6Jn7u7kccL0qcxPzQEicsXQK5C9axBWSEBvgTJ9JGGcTWac8QNapftqye8ATA6clAs4CP9NK9YZ8t5HzPev5frz8CHNog09wTm1i1lM6m3rmTWC2hn5QzvH59WWWgy2OFufYcnRZ1ss=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <2df919aa-5eac-44d7-a707-4a658b78d1af@citrix.com>
Date: Mon, 2 Mar 2026 15:47:04 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 06/14] x86/traps: Don't configure Supervisor Shadow
 Stack tokens in FRED mode
To: Jan Beulich <jbeulich@suse.com>
References: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
 <20260227231636.3955109-7-andrew.cooper3@citrix.com>
 <f3e84e41-438f-4a28-a2e6-863f818e948b@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <f3e84e41-438f-4a28-a2e6-863f818e948b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO6P265CA0003.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:339::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_|SA2PR03MB5817:EE_
X-MS-Office365-Filtering-Correlation-Id: 019f0179-7437-4303-91fe-08de7872f5d3
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:
	KVNE6wzj9kePr4xlARLKst+owzVWjrxICFHHZvwIAr34E7OA6eJBQZmpqeqIgvB5HlECkkzHJYug0KsaFN1b8Z3zKoJRtk1W8C18yaMmX41CW9TvCiFLmEaUTpOi2pm5ACRSY+nyY+e+nA+QhDU3Z5TG+Lq2IhJbsWIw5MCznw7YuAvjjIJ1mUm7YWqwTVB1n23Y04cTLcH3zUTPBTSwjfnApPpy0p7cY7OFn2h96HduJg30BwaECy1U9g/p2hxu2DwYDN5oI53FBCLsD2iwN0f0Ced7ivbsFWdu7QekPmJ3hGdaH19l6W/7v/43chnd6lGoZgLSD3Op6cxrIW+uvTdoNUljaAT/I6AH6G+xnpX83msOPQLu4YIUklI/UHnUYhtV6ulJVfrZGtc/xGjCT43WmvuLz+6/ujMUS6gatnQdDhnPJQgkzCJ2Mrar7YkzzCiSluso5vaAcySahlphXEzFz3+zq1P04r797s8u6SwJ4cgTMKcEmLjp1jKEGFF6FNfRU013FntPhc00klhqIkm+0ptTKnSBj4Upc4Q1Xu5riUsYHdhTgIud2282LgB3h7yctW/uJbbaOPSrRsNaQYq/1xeXQWlDo5+R+xnJTGx06roJr14gptRSpm7eiUDoAE+4ijz/DGXpeCs0DDRTjRCxyxyRvOi1WAV4DGyOtCpnCBpjNyjCGN+jxakavA1VFse7AmoHxvb+iBC9THCb6HgfJEtvYmQulJUG7MFX+Dg=
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?bzM4QkpVbU5XRWxnUUI1ZWdkSGR5bDlYWkp0ckcxNG1pNndXUVJldnpFeG9y?=
 =?utf-8?B?Z3lsQnRaVDNkMVBERVdLOExueURRTUJwcHpuUS94Z0JKMFZsOEFVenVJMlFU?=
 =?utf-8?B?WEE4b2tpcmpJMFNyS05QMWxKNGxMeHE1V1lPY0g5QnpiODhFNktKM1F1VUd3?=
 =?utf-8?B?L1dyMUdSalZuaXZUWGFod1pUbzNaeDZvVUtRYUFJcFVZSVlYUFJXWEZwVHZt?=
 =?utf-8?B?dTRzakV0NjFWY1Q5ZnBWWUo0cm1ERVgwYktvTzNMNittTUE5K2d3OC9LYVhn?=
 =?utf-8?B?L2JnU3ZpYmNLbFE4NXRoRzNSUDQ1QW5CZktqMDg1S2kwTDFoT3lpZ3AweW5a?=
 =?utf-8?B?M1Z2MGI2SEhTc05qWTd4N294enM2SXFyRHBrUnF0NGxmd1ppd05CTkozZnc2?=
 =?utf-8?B?RmZXeHQrdVdaTDJ0bmV0MVBqOUdxL0FQdmlpbitILyt1Vnp5cG9aWGpLakxJ?=
 =?utf-8?B?ZVpkcnp0ZXRPb05JSk9zRyt4RGNEcUY3Q2Q3WSswUmlvUytwSVZYdGJVV2JK?=
 =?utf-8?B?Ykx3ZFZuYnpJaDNWRGgrbmc3RWNaczVPZWRZcGdicTlNTHZsdlNwSlNQRXFO?=
 =?utf-8?B?SXZXdW53YWFWWDhkbUlrSERPRzluL0xScHBockd0MlFHeFY1V0dNcFVsa0Iv?=
 =?utf-8?B?VTBueEJhbkZ1T2FvbmVJaTRGZVBiaU1kWXptOXNoWVR4NGJCS3NnbS92emJl?=
 =?utf-8?B?M01UQ3VLOXRpcGhlRmEvMmNVTjRFOTFVTjdhRkkxNEMxc1lWclg2WDhJUTNz?=
 =?utf-8?B?U0tHVXVmWXJsYjZSVlErMFFnazhBSmZnb2I4NG5EWHBxQmpITEs0SGx3VXdx?=
 =?utf-8?B?dHAraTdsRmZjcWdCNjlybkd0UlFpNHhoaDl2YVhmeW40R0tIVVZRaDhibzc0?=
 =?utf-8?B?UEloaW5kTCsyQUhTMzFTZXhKSnpoY0xGVzcranpNa1UxZTExcnRWV3pJUEtL?=
 =?utf-8?B?bGMvcGlvd1NCWFJNM244bXNDR3B2a0pXTFMrYkZISlJaQ0YwdkcyWFU4ekVS?=
 =?utf-8?B?d2ZaR1ZUeEZCSjVnQk5JZWZnbTNTL1NXWlVRUWZPUTZhbzVNQ0h4cGw2a3N0?=
 =?utf-8?B?MkpCdnk0WU9XUW9RekhIT2lmQUJpMlFLOThSbE9nSzNsMUF5bFFhT21aNnRN?=
 =?utf-8?B?UXd1VkNydllNWmlDS2ExZDluZkRFZ3R2K1dRVzFzRU83RkxabFJCVWU4UGUy?=
 =?utf-8?B?TnRqbWtWMEdsZVB4QXY5TTcyam5scmgyVERielErUXRzVUtFYXh0UUYrYTZ0?=
 =?utf-8?B?dmFXTkdqN2FtWUU1QXBHSTFRd3ZFbFRqUDZLeWFTT0NNM3I0b3llMzdkMXRs?=
 =?utf-8?B?M28rRU5KQW9Wc2xESWxnMzZHbTdaQTRFWjIvakZXcWIzbFpjeVVoUzNtT0l6?=
 =?utf-8?B?eC9pRHplRWFiTzlEbFkwbng0VUJrQnZwVTN0Ukg3YlhvSlZ5WVBUVlNuSW5E?=
 =?utf-8?B?RExhVUhnUFJ5bk94UGZ2Rk9tdEN5V24vK2RYTURzc3MvUHBpOVptS3lBb2Vq?=
 =?utf-8?B?aG5FaksvcXh0Ump5Um9Cc1dNR3JMYTJETDROcjlyNTNidlhrL1JpYkgzZkhx?=
 =?utf-8?B?NFlzWjBYQTdOL2NhYjExZW9iTVJ4Zjd3dWJiT2hrWnFkQnZPSU9vdFRWVm45?=
 =?utf-8?B?eXAwZ2paV0lwRlZKU1ZjSzFQWVBFNjhXN1Vka24wM3U1Q1JQTnc5VFZvRDVF?=
 =?utf-8?B?VjljKytWd0s4QnNDbm9mZldMTHNTSzUxRGZ6Ym9aRFo3aFhiWElYU1I0NGtj?=
 =?utf-8?B?blZYUmg3NUFzV3BPeVdZUTdFbUx2YU4zZnRLeWxnWUpnRUR0VG1LTHIvSVRE?=
 =?utf-8?B?aW1RZ1lwTzFSZ0FDTDE5ZFliMG50RS9ITmRrUkhDSXl2TnpmLytRa2FwYzZM?=
 =?utf-8?B?M1F6SWI3aDNaSFJqVlgvUStyQkVYQjA1c2tEUVNwNjJlME95a05tN3NCVDRR?=
 =?utf-8?B?NU9jVXF1TXJvaU5kMDJ3UHl5OXVmOWJDYTVNOEl1bS9MN0RnWjJkSXE3UUtj?=
 =?utf-8?B?N00rbkFYd2xtMnZqa3F0c2tib2dzN094aFRXcVU2cE9YKzdBb0xoVVZBS3Yv?=
 =?utf-8?B?eE1wYVNBODVWYUVJQ0lycFJDYjE0WVVXZ3gyUmJVZkRWQXlwdHBNdVJKY25t?=
 =?utf-8?B?TjEwbjdFQWVQOWRNMDdhL1RXT0JHR3RUSGFTSXlabkIyZG4xOHF3T0FRcklP?=
 =?utf-8?B?blBrdmJsaEpuWXR3RldndzNUajlqcTlENHBUMllvZVgrVm5pMVZHWDZwcjRW?=
 =?utf-8?B?RVV3YnhkT2ZXN2xybC9jWEZkZklMM05vRUl1NDVzK1FURi93c2Z4T0QwVmpj?=
 =?utf-8?B?a1Frbi9RUVNIZlhsV1Z2OHV0clhjTzFUYlBBZ0cvUnpEWS82UVV0dz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 019f0179-7437-4303-91fe-08de7872f5d3
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Mar 2026 15:47:08.0594
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: A51T/NibxaCcuhB5KrMPSc5PXJoguXH/F2Xe8T99zxVAEFWUUbl6bRnv5t/ChyER6jXnoDMiZdFbnBtypUz+Mfe48Odrdob9wQCKbRnwwIo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5817

On 02/03/2026 2:50 pm, Jan Beulich wrote:
> On 28.02.2026 00:16, Andrew Cooper wrote:
>> FRED doesn't use Supervisor Shadow Stack tokens.  This means that:
>>
>>  1) memguard_guard_stack() should not write Supervisor Shadow Stack Tokens.
>>  2) cpu_has_bug_shstk_fracture is no longer relevant when deciding whether or
>>     not to enable Shadow Stacks in the first place.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

>> The SDM explicitly points out the shstk fracture vs FRED case, yet PTL
>> enumerates CET-SSS (immunity to shstk fracture).  I can only assume that there
>> are other Intel CPUs with FRED but without CET-SSS.
> Isn't CET-SSS still relevant to OSes not using FRED (much like you do for
> the fred=no case)?

Yes, CET-SSS is relevant outside of FRED mode.

I just don't see the point of the note if all FRED systems will
enumerate CET-SSS.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 15:54:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 15:54:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244430.1543869 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx5b3-0001um-VH; Mon, 02 Mar 2026 15:54:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244430.1543869; Mon, 02 Mar 2026 15:54:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx5b3-0001uf-Si; Mon, 02 Mar 2026 15:54:13 +0000
Received: by outflank-mailman (input) for mailman id 1244430;
 Mon, 02 Mar 2026 15:54: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=cp9A=BC=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vx5b2-0001uW-R0
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 15:54:12 +0000
Received: from fhigh-b8-smtp.messagingengine.com
 (fhigh-b8-smtp.messagingengine.com [202.12.124.159])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0cbe06f4-1650-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 16:54:10 +0100 (CET)
Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 506227A013F;
 Mon,  2 Mar 2026 10:54:08 -0500 (EST)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-05.internal (MEProxy); Mon, 02 Mar 2026 10:54:08 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 2 Mar 2026 10:54:05 -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: 0cbe06f4-1650-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm3; t=1772466848;
	 x=1772553248; bh=o9cpGhld9lKXfSpgy3pgdi3vK+UFWbk2cVYvl3BrPTE=; b=
	qoujYvowuv0hlW6ILJCddnCZk39UxGyVdesGfyKns062zK89BtQWw13lINoXjF9A
	oiS5ZgBVGsGxSESKilaajAP2x8WOo9ATJRDKOCe7mtx9mAMrOWY0wTFKoFV3v55e
	K1tQh5/GyWZ2RaL1TW4oJNmNRao7549DDI2g1RgHAcdZ1M2I7rWLcALLx4ekByhR
	aoxz3jsBlwvJKgmS9kcnNQlnDb6KX7gyQZPhAJPYN1VflMHvW8S8GvmGWUk5w5G5
	rq9jn19ipNvwls5dfNn/NflHVpFA+VYSAVu0ZmpGsO1g+0N0fKiK+ZZGGMOzHWMa
	Mojhceauqp9e2mXvsVlWCQ==
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=
	1772466848; x=1772553248; bh=o9cpGhld9lKXfSpgy3pgdi3vK+UFWbk2cVY
	vl3BrPTE=; b=f1Ya3sPAczrvg7ue54hXKyb+bNEgut0Gs2BemEz4JipZDHJrES9
	9fL/afWtsSU0iLQadwUhoaXkHP3CiH1ny4LWzE6+xJHkjC1VarCuusNjBTGOIbTA
	Klh5gc647k0928ZDAB67BmcS38zCciBY9+RJCEXXKb/lDelco43+wW7u4DXGHEKw
	O4LbgF4/Ly8ONwWym8NJzPliDYn8XTd0T6hPH3iq/Rx7aSlkixsHsyLGhEZhzTi1
	U5acSQ/jSYy1NnuSN6OoPynEiISOZgxTbvwFOMNZ1pel9BSd3I7S/ORrXYX+QSHc
	Z4jKHMtakqUAYf3Kbn9JNbacD+SIEr1F9gA==
X-ME-Sender: <xms:n7KlaZ3FspZV3KNRW8DCHWN2647vIhXJuPyrXCVqpESrqFuamvn7TA>
    <xme:n7KlacoYMZL_v4D0PRiOwP9Nw54_dOScRgeFT8sPCPbhFIuwI_q_nirRm-yRtOE-P
    nbRNJFJ9f2esJQplGfN70pL_paZW4Hp8Do5YrL13Q_K_3qa1g>
X-ME-Received: <xmr:n7KlaeVCC9UXKSFekSR-S2Un06MQ4vHL1NpIaM6wq8DekM1Zfr4YAhDfZ8OB_VfAcbvrRD5hbRPVgOrWDVi0OmTlgmJ204eSfQE>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvheektdekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepuddtpd
    hmohguvgepshhmthhpohhuthdprhgtphhtthhopehjrghsohhnrdgrnhgurhihuhhksegr
    mhgurdgtohhmpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpd
    hrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdho
    rhhgpdhrtghpthhtohepughpshhmihhthhesrghpvghrthhushhsohhluhhtihhonhhsrd
    gtohhmpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtghomhdprhgtphhtthho
    pegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtoheprg
    hnthhhohhnhidrphgvrhgrrhgusehvrghtvghsrdhtvggthhdprhgtphhtthhopehmihgt
    hhgrlhdrohhriigvlhesrghmugdrtghomhdprhgtphhtthhopehjuhhlihgvnhesgigvnh
    drohhrgh
X-ME-Proxy: <xmx:n7Klado6dkUdhUjz6yB7cTmRKM2bRB_SpREdJ6r78bzK4CzcNqZkOw>
    <xmx:n7KladDCTHUb0wFHTfJcEus0z29VMz-3tWrCvTOXB-a9GjbkcQehBA>
    <xmx:n7KlaRhKeLmpjg7ReTiW7TiNbsd2iJYU5OD6swJhOZfHLVa25xYgXQ>
    <xmx:n7KlaTaFqbyURNmgGJ8mJa553U2m-j8isg13FRjpqA9lBKUSsORCOA>
    <xmx:oLKladZDmgsj96m8_IFiNXsDLxA-Jr1CTAzipjwvmC0yY1FcbIrEz2DL>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 2 Mar 2026 16:54:03 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org,
	"Daniel P. Smith" <dpsmith@apertussolutions.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: Re: [PATCH] x86/efi: remove unreachable efi_halt_system() function
Message-ID: <aaWynPgeN3ffCekp@mail-itl>
References: <20260224200708.51120-1-roger.pau@citrix.com>
 <c0241f4d-98ba-4b35-94d0-53938b85c6ee@amd.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="r+mswVBtSV8/6BKu"
Content-Disposition: inline
In-Reply-To: <c0241f4d-98ba-4b35-94d0-53938b85c6ee@amd.com>


--r+mswVBtSV8/6BKu
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 2 Mar 2026 16:54:03 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org,
	"Daniel P. Smith" <dpsmith@apertussolutions.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: Re: [PATCH] x86/efi: remove unreachable efi_halt_system() function

On Tue, Feb 24, 2026 at 02:05:10PM -0500, Jason Andryuk wrote:
> On 2026-02-24 15:07, Roger Pau Monne wrote:
> > After e4c3755d4dd7 the function efi_halt_system() is unreachable, remov=
e it
> > from the file.
> >=20
> > No functional change expected, as the function is not called.
> >=20
> > Fixes: e4c3755d4dd7 ("x86-64/EFI: don't call EfiResetSystem() from mach=
ine_halt()")
> > Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
>=20
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Acked-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>

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

--r+mswVBtSV8/6BKu
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmlspsACgkQ24/THMrX
1yzhgAf/aH/IgRfFV9MYPW+CFSrrBrHtkIu3i4EqN1ph/3vWl8wGAlImUbcl9Z+C
ZPhTxFiUkhFXqfeuTC7H/cn/RvH7NC0rafeuuKmT8KBVDpSnhNjJxe/9giX/B6VV
g2mW+eCHnz5UaXfWWrO/wODv+lrCzoIa3Yqr/bezA5wKm8V8P4BPbIsx0mkfybvl
GcLpwa7zBjgN4P76MxsliCJ/rpIRdJ3QFA7gJ0vYSwxQCx9r81d8jUeWHGqECrY5
DF4z3nvmNVUnwwVL5ZI/2rwD6HfWmrJb55+y3FTiOsZ7/GZjDM82a1Nal4FnuRk/
6WSackBOB8xY7C+KB0KH+AEI6kBhbw==
=7DhU
-----END PGP SIGNATURE-----

--r+mswVBtSV8/6BKu--


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 16:12:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 16:12:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244443.1543887 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx5ss-0005W8-EX; Mon, 02 Mar 2026 16:12:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244443.1543887; Mon, 02 Mar 2026 16:12:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx5ss-0005W1-Bv; Mon, 02 Mar 2026 16:12:38 +0000
Received: by outflank-mailman (input) for mailman id 1244443;
 Mon, 02 Mar 2026 16:12: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=9kJt=BC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vx5sr-0005Vs-Ft
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 16:12:37 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a031208f-1652-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 17:12:35 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-439af00d33cso1529361f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 02 Mar 2026 08:12: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-439b4d06c27sm9976489f8f.17.2026.03.02.08.12.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Mar 2026 08:12: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: a031208f-1652-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772467955; x=1773072755; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=h5tijJDKgCHJT9kT5kp84WZqHGBvYnXwSlos1jRzp5w=;
        b=JVeb7wsawovWd2G+YnQEvHJcEovdhMdkvgGXSfOlzw+kEu/n5qvAaxWJpPUUXHmSdY
         gHqFhV3MC/HMDnPg3bChXgSKG5yUvU5tIDbq5kOIg1NPDWnpn4xKAIPYeXrWem8Oies6
         8eIVZMwzI+34HsIteoHI2k7P3Ie7y9+F/Vk2blwmiWpYcWcECgeKMuUcPh7JI3comYGB
         anAUsuFI9n7BIRlvQSPWyHU8q/qqlcObKnA8eDZO9gp5LTmWHrlZI6dkMuOwtKdkGUFb
         xWk/X7ua+bWRfz+iuR8RRjA/76atmHj9x+nkujB4Xa2Cn+KyO7wMGlJhSJvNa9MLOTQK
         9tdg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772467955; x=1773072755;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=h5tijJDKgCHJT9kT5kp84WZqHGBvYnXwSlos1jRzp5w=;
        b=AL6Q1YtpZvW+5bnPjakzh8r3jInk7cehQnTmZCIxtfLPFqyBb4C8gx/bffC4tGqC2v
         /avXwKp+gLvbYCS5N/XE5d7WgGpmwpOBx0p+bWLKHDnQce7jAHPg9vBPCpDFy9fPXjdh
         f8+T9Z35Pdh+x/S9CwAc3vEcX1JhvB9L7713qdzyzkPhvi8Na7tHuX5xlzO/2XvBkrJW
         CFmPmI8d5Dih3fGhzcTa6Y3/2B8mEyiGD6s7lBocRmZhJHhdGrbV0cZWGAYEj3KKYJni
         xQqH0404XTWhkqfNFs1jxQHkR1rhrzowWVL2ok4URktX0DrQzjV/7/7pZTODoNZikZ17
         Fe9Q==
X-Forwarded-Encrypted: i=1; AJvYcCUh+HkGem2wODlUqmBB4kcmaOplhjGyApjYW8C2Ds/j4y4py/AH1DeWuCn9wgmGuCe4cD2t6Axv+M4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzvobG/eXx1pmoRuccSeV0RApDgpsGtPMPaiG8Q4WyNZo64s1m+
	0dtisMPiNkitrmriT23+CdYNlkFywDqK9Gjow95mDuMmYNmxv5piYzxjHQiK1ZI1lQ==
X-Gm-Gg: ATEYQzxK6CpgymRLesbw/zV1AFXrY6rGCXt+CWYv2/MXaLztwBF+V8lo5cwGklFbyoX
	dP69U59MpagOXEf1JUOxy3RR3UP62xnDt+SB/eUKz7UkwWbKvUEfbrrao5wJ95EeqzSwcQgh/9A
	dYiqy0HnMUPxujcrX0MTeHwhtAE8vUmBqr0eLm+ddaprkb3g2/jTkGmj8p0AfcrnI1fHBX35Nkp
	29mZSOTtoWD2/H8dI10+7vBB4rdp2e9aN6OzMLkI8xPy9MLCl3hiS865WCGx46plW07hB9yzY6q
	+b536CHJMdy1MrwQp8sV8ztWChwBDjdfEyNE5hIPGK7dcm3VJ9GnemnVyIFjnFvnpumwQ6Hbwr7
	zengaWIX/dgIJ3BRE9BYJSwLooyFYe4pINhUUCARrVohL4nQG1W+iyFLdYXCswaGEJ7S7XsQ2pU
	TUO/CVx9IY/xRDB2tW+XXozSmP7Vb6cF/1qB6mVi1X1y1CO7JEuMB47YDyEGhTF5xdzWYlAB73s
	4TkPB3LTKgkRlE=
X-Received: by 2002:a5d:5850:0:b0:439:ba75:7db7 with SMTP id ffacd0b85a97d-439ba758121mr5007110f8f.7.1772467955072;
        Mon, 02 Mar 2026 08:12:35 -0800 (PST)
Message-ID: <0dbf14bc-1505-4a33-bbf8-53c1ea41c7da@suse.com>
Date: Mon, 2 Mar 2026 17:12:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 08/14] x86/traps: Enable FRED when requested
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
 <20260227231636.3955109-9-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260227231636.3955109-9-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.02.2026 00:16, Andrew Cooper wrote:
> With the shadow stack and exception handling adjustements in place, we can now
> activate FRED when appropriate.  Note that opt_fred is still disabled by
> default until more infrastructure is in place.
> 
> Introduce init_fred() to set up all the MSRs relevant for FRED.  FRED uses
> MSR_STAR (entries from Ring3 only), and MSR_FRED_SSP_SL0 aliases MSR_PL0_SSP
> when CET-SS is active.  Otherwise, they're all new MSRs.
> 
> Also introduce init_fred_tss().  At this juncture we need a TSS set up, even
> if it is mostly unused.  Reinsert the BUILD_BUG_ON() checking the size of the
> TSS against 0x67, this time with a more precise comment.
> 
> With init_fred() existing, load_system_tables() and legacy_syscall_init()
> should only be used when setting up IDT delivery.  Insert ASSERT()s to this
> effect, and adjust the various init functions to make this property true.
> 
> The FRED initialisation path still needs to write to all system table
> registers at least once, even if only to invalidate them.  Per the
> documentation, percpu_early_traps_init() is responsible for switching off the
> boot GDT, which also needs doing even in FRED mode.
> 
> Finally, set CR4.FRED in traps_init()/percpu_early_traps_init().
> 
> Xen can now boot in FRED mode and run a PVH dom0.  PV guests still need more
> work before they can be run under FRED.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> [*] PVH Dom0 on an Intel PantherLake CPU.

What other part is this remark connected to?

> @@ -353,7 +440,11 @@ void __init traps_init(void)
>   */
>  void __init bsp_traps_reinit(void)
>  {
> -    load_system_tables();
> +    if ( opt_fred )
> +        init_fred();
> +    else
> +        load_system_tables();
> +
>      percpu_traps_init();
>  }

I see now what you meant in reply to comments on an earlier patch.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 16:24:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 16:24:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244453.1543899 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx64D-0007LA-E8; Mon, 02 Mar 2026 16:24:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244453.1543899; Mon, 02 Mar 2026 16:24:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx64D-0007L3-AJ; Mon, 02 Mar 2026 16:24:21 +0000
Received: by outflank-mailman (input) for mailman id 1244453;
 Mon, 02 Mar 2026 16:24:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9kJt=BC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vx64C-0007Kx-IY
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 16:24:20 +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 433dcbae-1654-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 17:24:18 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-436e87589e8so4492287f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 02 Mar 2026 08:24: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-439b503424fsm11876479f8f.22.2026.03.02.08.24.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Mar 2026 08:24: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: 433dcbae-1654-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772468658; x=1773073458; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4sUZCTH/Q1jwHYCtk/g084ctsIEAOJE2quet31258JI=;
        b=AnoQFyVSuYcKp1u3IlnDWOGwnSO5rDJXG+t21nwauK+B2PfMgYY3g6qcOS0Ecz+Psz
         Hjmt/2bNQiTLFWFztlJrxuyc3CNIKJtZLIv2mkI3/GI9Aza8/pXZ2zN4BxB0VX69r4gD
         aLGhJLt/8NjpGOuBCRl8W2cqmryA3fVXfVxuTnlU7t4d4bDoGDvOGKnUxDQLyMGHt57t
         FonQCHosItpNRN9IUFFwRO+88FPrj8L94/Nx54haC0d96cCVjjHjCq+H+9aEg2Z2xz+V
         A6uRAF3jYeMzT5nH7Yk1WNuMsCypdoGoBMTNusDRJL7H+/5NvG4aCK8a91F7OykqL/pr
         IAlQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772468658; x=1773073458;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4sUZCTH/Q1jwHYCtk/g084ctsIEAOJE2quet31258JI=;
        b=l1QV+Weq47Bd8erp0Zhac6vxCcCKqO+3Uad+P/TWrl2UDYYuf3JdCAsva7nSU9VyTC
         tks/hIOzCU3AZkroExLQYx0r6EfA0r4MUKbJfQLjkvYaffx7zTLK4b8XI2SXSwGJd7HK
         KeFyOZGJ3K29iXxw/ynBwYRJgtmx1dYnAxVwth47gAIeeDIqkkaTRSLE58nxe9P7rk4d
         DhSmMT8Qz+oYTgC4SnK+MJ2Elwoqr3RrTCHaOUVszzd5SY5eQy7WvJc7pME2RWB5pNqC
         SxCOOmChjuIXug+A/8tQeMYQNp0jd2V/rG0nRLdEV5r8/GYYfDaMkYriVY367Cm5yJMj
         w1TQ==
X-Forwarded-Encrypted: i=1; AJvYcCUZ4kAY9egHb6/gD4qIbUOeBMTICziXvQhXy4o9eZck0X7CY6EriSV3quPh70Ha8UIvDSGAzpfhO+Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxJ//T+itYhua89WHigos60D7y2y61RWAFtFpPFzDec9EicrWEe
	cPZepwPXRFM+E8+yLg2O2xPSiOvZJLJeZS0kx3NkWwCdDaixeYbBaV4wefniKUNDUQ==
X-Gm-Gg: ATEYQzwSP4LvqfIH79YiBDLIT4JT3150a7d539802N2fWtop5/Bw3FLdmW22+CbCuDz
	uyJUAUqH8Yc4lfIL2dGEm2npeCqld2wskX1LrrQoPPhk564UtJ7yvyXlO1uhZP2uTBMDEDOSM5f
	KSUjSSSujSENDOisnSwsS5tgcdk8rIn6w2YZwGXgYEw7u4djUDQRsNiY6N/ilhYHlElIrQHQUSG
	wkrf3cfF0tIJRNxFIv/07R3lK1MjJUcqa5JDJUPQbgG9jRhGxWnZGda5H7CerZOvPyMxkmkBfbS
	Wrfso9hyWojBZcpi5l/qZqea6cjcwQeVOWjCyWh4CzjjnD+qO+RW+LgcYpMvhcjkHdDTqVzp/l+
	a5GfZjdVG0wZMJ7W1Pl2gqRJ8HxnYX53HTslngQ0Z1gI7bPz+60jqbrg0qgtT964wfYGmhXN7fm
	H0crGiJr0zEaViW8kOhJO8oiG2ZI1zJquVC2xoWe1EsH9XoHV0Yb4cia8ky1LYkZK4FegPhjEST
	4OkzBkQO33Nw3c=
X-Received: by 2002:a05:600c:1d89:b0:483:71f9:37ef with SMTP id 5b1f17b1804b1-483c9bc031cmr206487835e9.8.1772468657824;
        Mon, 02 Mar 2026 08:24:17 -0800 (PST)
Message-ID: <8d0a13b7-3387-4766-bdd5-de62c868e365@suse.com>
Date: Mon, 2 Mar 2026 17:24:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 09/14] x86/pv: Adjust GS handling for FRED mode
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
 <20260227231636.3955109-10-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260227231636.3955109-10-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28.02.2026 00:16, Andrew Cooper wrote:
> When FRED is active, hardware automatically swaps GS when changing privilege,
> and the SWAPGS instruction is disallowed.
> 
> For native OSes using GS as the thread local pointer this is a massive
> improvement on the pre-FRED architecture, but under Xen it makes handling PV
> guests more complicated.  Specifically, it means that GS_BASE and GS_SHADOW
> are the opposite way around in FRED mode, as opposed to IDT mode.
> 
> This leads to the following changes:
> 
>   * In load_segments(), we have to load both GSes.  Account for this in the
>     SWAP() condition and avoid the path with SWAGS.
> 
>   * In save_segments(), we need to read GS_SHADOW rather than GS_BASE.
> 
>   * In toggle_guest_mode(), we need to emulate SWAPGS.
> 
>   * In {read,write}_msr() which access the live registers, GS_SHADOW and
>     GS_BASE need swapping.
> 
>   * In do_set_segment_base(), merge the SEGBASE_GS_{USER,KERNEL} cases and
>     take FRED into account when choosing which base to update.
> 
>     SEGBASE_GS_USER_SEL was already an LKGS invocation (decades before FRED)
>     so under FRED needs to be just a MOV %gs.  Simply skip the SWAPGSes.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> 
> v4:
>  * Adjust GS accesses for emulated {RD,WR}MSR too.

I think this ...

> @@ -926,7 +927,7 @@ static int cf_check read_msr(
>      case MSR_GS_BASE:
>          if ( !cp->extd.lm )
>              break;
> -        *val = read_gs_base();
> +        *val = opt_fred ? rdmsr(MSR_SHADOW_GS_BASE) : read_gs_base();
>          return X86EMUL_OKAY;

... calls for a comment both here and ...

> @@ -1066,17 +1067,22 @@ static int cf_check write_msr(
>          if ( !cp->extd.lm || !is_canonical_address(val) )
>              break;
>  
> -        if ( reg == MSR_FS_BASE )
> -            write_fs_base(val);
> -        else if ( reg == MSR_GS_BASE )
> -            write_gs_base(val);
> -        else if ( reg == MSR_SHADOW_GS_BASE )
> +        switch ( reg )
>          {
> -            write_gs_shadow(val);
> +        case MSR_FS_BASE:
> +            write_fs_base(val);
> +            break;
> +
> +        case MSR_SHADOW_GS_BASE:
>              curr->arch.pv.gs_base_user = val;
> +            fallthrough;
> +        case MSR_GS_BASE:
> +            if ( (reg == MSR_GS_BASE) ^ opt_fred )
> +                write_gs_base(val);
> +            else
> +                write_gs_shadow(val);
> +            break;

... here, much like you do about everywhere else.

> @@ -192,11 +193,12 @@ long do_set_segment_base(unsigned int which, unsigned long base)
>  
>          case SEGBASE_GS_USER:
>              v->arch.pv.gs_base_user = base;
> -            write_gs_shadow(base);
> -            break;
> -
> +            fallthrough;
>          case SEGBASE_GS_KERNEL:
> -            write_gs_base(base);
> +            if ( (which == SEGBASE_GS_KERNEL) ^ opt_fred )
> +                write_gs_base(base);
> +            else
> +                write_gs_shadow(base);
>              break;
>          }
>          break;

Same perhaps here, and ...

> @@ -209,7 +211,8 @@ long do_set_segment_base(unsigned int which, unsigned long base)
>           * We wish to update the user %gs from the GDT/LDT.  Currently, the
>           * guest kernel's GS_BASE is in context.
>           */
> -        asm volatile ( "swapgs" );
> +        if ( !opt_fred )
> +            asm volatile ( "swapgs" );

... the comment in context could also do with inserting "unless using FRED"
or some such.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 16:35:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 16:35:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244465.1543919 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx6FE-0000nn-EM; Mon, 02 Mar 2026 16:35:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244465.1543919; Mon, 02 Mar 2026 16: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 1vx6FE-0000ng-BY; Mon, 02 Mar 2026 16:35:44 +0000
Received: by outflank-mailman (input) for mailman id 1244465;
 Mon, 02 Mar 2026 16: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=9kJt=BC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vx6FC-0000na-Hl
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 16:35:42 +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 d93184c1-1655-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Mar 2026 17:35:39 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4807068eacbso38784935e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 02 Mar 2026 08:35:39 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bfabb84esm424881895e9.0.2026.03.02.08.35.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Mar 2026 08:35: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: d93184c1-1655-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772469339; x=1773074139; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SkiveMPDqUa4iYvNv23soiX7FoIfSEYshF9oriBv7Kg=;
        b=EPZgkmSsvG00sSwtRjH83EYcr1ujRoPTBASm4B0BZPsZIsQpnJKUPgvkr7RXvxF2BO
         ptSB9GW+zOZ7eNSPg5ZuYUye83AC2uOsFqa3db4c0I9rZNlODjGz8TFd6BPssZgCdOtm
         LBqSOoO3uks3wJtZZkUyoSIDCR2ATkvl+79iLe+rZs+fdsUDJhv2g9N8FwNc6ePr2Tnm
         l6AOMyprc1HssVaOjocY6HLHDXgtWTCYhCn6sGh9lVLFkpe/yr+W+c/sR2QDVRO21dfU
         PqofYrw5fIVlet/5OM6dVuRhZhYCH5ofaE9hwGidbEx3czUZWY23KqOvE/Tee4EoO1Mo
         jHlw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772469339; x=1773074139;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SkiveMPDqUa4iYvNv23soiX7FoIfSEYshF9oriBv7Kg=;
        b=O9eU+souIu12us1761k4cUNtVL4HZM4gM1x5MzRR9olCD1+H+Yi0J50AFSFLB9D3tJ
         ljyTHPA9UYs5jbRBwsn0TltshNuGhA8I5Bda6nJLKxBLxsgTY/HltAzwpqLZ65FI1wZn
         iBYPpQmBohOHOymaR/ddUN+8MDuHud93zE4R+fdbZYrOQImiCbMwL8blhXuXxKmeiCTZ
         C918SanbIew8gog7U0PqUnejCYYIzsiRE5ENyd0iAmyUnSNBfivWRzXJF2IcmctiCQfR
         rd5EpuZwPYDRWcvPj0Ep4ZNLgHWuWl7vmWXAMywB5Gqza1X/JYejsH2uMPbezguwYxZH
         uiHQ==
X-Forwarded-Encrypted: i=1; AJvYcCVzCSp9BAiboPc2aL1uX+AWo/tZee6FyW798mMbrE1megn0sx28/uP1BPPvxp02rMgg4d3chQAwSTQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxDr08QLaUfa12P71Fmm3BCxYbLV72pzUvtkozPNw/bIebRP1QG
	hLUCUaA8QFNQMZsJvPdjOhb8EZ8xmgzHS5o29E5usTqUsaHk9TZBZox7IY/iMMrPbA==
X-Gm-Gg: ATEYQzxogkqTK+TYhMYzE+J4S5Kj/MzH0ztg/lGPXVcDnMTem86uK/4r4nI0CWGH6Kl
	pj1uaY6coEjpHJEgKpFAtpTRo1o1OUu7JYYo6IwJm6pDIEVMakGyv2p2nDoY4WH3TsWwJGz/Ad6
	a8e9FXUO6KdLNV1BAH4d2rqynGqAn8y4XAvjxG8+rlTUppPoILJkt4AWT/fr/flgb+WjGchs3c3
	n40VNUh6FbR5GzIoUgvOv6W2XMU8PsO/puyLvalGwMuchYTLcrciIib9dTFyTZhzvLnSP6703v9
	Z++XWx81ZUCx86AAiiaP1ob/loetULEASJUpsWxedB9ApicjI4MkOEORUufqV79ar+8K+A3mJLz
	w1sFdM3l2geob+R0CHjBBYjue7aS3+SkiXHlNAvbkwHlmUkKhh5fxHyHAfaLYJlgCKNn4sElAW3
	KwKiejxRNJrw4ira5LyJF8yEmmV4+1m+S0gTgS5GiNhNTAUny+bvFqDMKjylcroJzZ/STINGb96
	x1cHzu2h5qM7p4=
X-Received: by 2002:a05:600c:a16:b0:483:64b4:79da with SMTP id 5b1f17b1804b1-483c9bf45fcmr212700185e9.26.1772469339136;
        Mon, 02 Mar 2026 08:35:39 -0800 (PST)
Message-ID: <9d5526e7-2f82-4a9b-b622-4dc1051bb272@suse.com>
Date: Mon, 2 Mar 2026 17:35:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 13/14] x86: Clamp reserved bits in eflags more
 aggressively
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: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
 <20260227231636.3955109-14-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260227231636.3955109-14-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28.02.2026 00:16, Andrew Cooper wrote:
> ERETU, unlike IRET, requires the sticky-1 bit (bit 2) be set, and reserved
> bits to be clear.  Notably this means that dom0_construct() must set
> X86_EFLAGS_MBS in order for a PV dom0 to start.
> 
> Xen has been overly lax with reserved bit handling.  Adjust
> arch_set_info_guest*() and hypercall_iret() which consume flags to clamp the
> reserved bits for all guest types.
> 
> This is a minor ABI change, but by the same argument as commit
> 9f892f84c279 ("x86/domctl: Stop using XLAT_cpu_user_regs()"); the reserved
> bits would get clamped like this naturally by hardware when the vCPU is run.
> 
> This allows PV guests to start when Xen is using FRED mode.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> 
> Still slightly RFC.  Testing still in progress.
> 
> v3:
>  * Rewrite the commit message.
> v2:
>  * New
> 
> The handling of VM is complicated.
> 
> It turns out that it's simply ignored by IRET in Long Mode (i.e. clearing it
> commit 0e47f92b0725 ("x86: force EFLAGS.IF on when exiting to PV guests")
> wasn't actually necessary) but ERETU does care.
> 
> But, it's unclear how to handle this in in arch_set_info().  We must preserve
> it for HVM guests (which can use vm86 mode).  PV32 has special handling but
> only in hypercall_iret(), not in arch_set_info().

Any reason you don't ...

> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -1244,7 +1244,7 @@ int arch_set_info_guest(
>          v->arch.user_regs.rax               = c.nat->user_regs.rax;
>          v->arch.user_regs.rip               = c.nat->user_regs.rip;
>          v->arch.user_regs.cs                = c.nat->user_regs.cs;
> -        v->arch.user_regs.rflags            = c.nat->user_regs.rflags;
> +        v->arch.user_regs.rflags            = (c.nat->user_regs.rflags & X86_EFLAGS_ALL) | X86_EFLAGS_MBS;
>          v->arch.user_regs.rsp               = c.nat->user_regs.rsp;
>          v->arch.user_regs.ss                = c.nat->user_regs.ss;
>          v->arch.pv.es                       = c.nat->user_regs.es;
> @@ -1268,7 +1268,7 @@ int arch_set_info_guest(
>          v->arch.user_regs.eax               = c.cmp->user_regs.eax;
>          v->arch.user_regs.eip               = c.cmp->user_regs.eip;
>          v->arch.user_regs.cs                = c.cmp->user_regs.cs;
> -        v->arch.user_regs.eflags            = c.cmp->user_regs.eflags;
> +        v->arch.user_regs.eflags            = (c.cmp->user_regs.eflags & X86_EFLAGS_ALL) | X86_EFLAGS_MBS;
>          v->arch.user_regs.esp               = c.cmp->user_regs.esp;
>          v->arch.user_regs.ss                = c.cmp->user_regs.ss;
>          v->arch.pv.es                       = c.cmp->user_regs.es;

... filter it out here conditionally upon domain type?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 16:39:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 16:39:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244477.1543930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx6Iu-0001ac-VR; Mon, 02 Mar 2026 16:39:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244477.1543930; Mon, 02 Mar 2026 16:39:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx6Iu-0001aV-Sr; Mon, 02 Mar 2026 16:39:32 +0000
Received: by outflank-mailman (input) for mailman id 1244477;
 Mon, 02 Mar 2026 16:39:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OlTG=BC=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vx6It-0001aN-Ac
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 16:39:31 +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 5f070e6a-1656-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Mar 2026 17:39:25 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA5PR03MB989110.namprd03.prod.outlook.com (2603:10b6:806:4d6::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.14; Mon, 2 Mar
 2026 16:39:15 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9654.020; Mon, 2 Mar 2026
 16:39: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: 5f070e6a-1656-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aDfFntt/dFAH6wPBjAwQGqlecmvaJvIrGm/Ncgm6du8yNL4SSBWA9ASmhU7jUmOouZELxd1qVIbvaAk9sTsS8YH6czhKTPpTVomYV8KR9iipOLsY2ZkNQWNGcPs0VIdhU8rawlNGc9SbUD917g1tWb6rXuUffVfmDQTyAwiXiFnFkIJupBOfAlZ+2smwtxaV/lgUK1Iok5twHITtNiQJdNNkCwG7+6UuuOq8oqde5jnMcV9RX5ap1OLnHwCD6lzZb/ZjPMh1cKrlKBai53bYVNyNSSbY0J6DEufO0kRzDiWnw+0hmV1SsCq8LWEwMBQDq9VvHZrIcQLskKWWx53j+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=9ZAGbleNAGsLGpujOu2E+DZhVBBMKqRjOv3fR+dtsqo=;
 b=Rvef9ZITNx8HSH+ydxbm8crZi54ClOJIILXNs/eAVySMCWDJ1rthEnXajTxBlirHXM5jBOQ/7iOeVpWXtL5kB1aC6Q+w5hMb/nw27VlXbZpp7ICvror1iKp7GgL+G5bpWkWLQNXDdN1GxM5G5FvWlH4SK+2tU9TmG4AyvhExGGUFkwxu1gX/hgOqekO1eEDGx/FTUar6x39QefTPO5Ogd36OFzY3JCWkR9XXOfbu33/i3i8tDwrq3ReE3rF7p4hD6JMfnkkHXUuIHeADalwzIx4euEMkRswlCkkJ1kDeEcywJOK3S9J3bjmZmywsL+/V4wcMGHpkPbhD7BWKDVuatw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9ZAGbleNAGsLGpujOu2E+DZhVBBMKqRjOv3fR+dtsqo=;
 b=T4152G9dOEr8SJGg5wFp6d1ssrVyP9cWAsf/PdcIY5EE3M9mre4yvDqVfHjmo45e7aG9VNyCJsosu6FACEm7GNFt0E40tg68Js3nX4ZyJGDNOTdjO5JkgfbXU6FMK1dmzTYLt4TL0+dZyARO22S0uiTwr7BWHS5bQzbJNrBAm/M=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <e6f7e988-f5c4-413c-bc44-4e1949c05821@citrix.com>
Date: Mon, 2 Mar 2026 16:39:12 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 01/14] x86/pv: Don't assume that INT $imm8 instructions
 are two bytes long
To: Jan Beulich <jbeulich@suse.com>
References: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
 <20260227231636.3955109-2-andrew.cooper3@citrix.com>
 <bf83838a-8401-4eb7-aea8-25ce59c9d492@suse.com>
 <c8013b73-de27-4354-9e45-da7d47c8b190@citrix.com>
 <f11e7bbc-3bb4-497a-a189-5e4d27e5aeb9@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <f11e7bbc-3bb4-497a-a189-5e4d27e5aeb9@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0534.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:2c5::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_|SA5PR03MB989110:EE_
X-MS-Office365-Filtering-Correlation-Id: b9bf0bdc-085f-4a65-edaf-08de787a3df3
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:
	SYmyP750UB3I4uV/tt0FmMirshYbKZgX/0IV+h4cbiyOdRi3ci2RJv3Y2H9cxLsjVGFwzE50uzttEUlTCgNAD7XO/C2Phi+q1Kq5DG0wby8XyNlLDCHz0T6qMg+Zc+Wr0K6Vmj7v5XQo1p+lTGrKqLuRrXE7i+pUoGCexG8J8ZE1hZO+dssAQX2zctITY3lJZn4X6RZoi5l2z/uV90BtHvbs68ndHnPU1U1CasOkiNEGxQgEDiUdiJIY7Dz73vCBEen2uM4HG5brMg8ZIn2DO/jlxW4BbVh3z3gtd1sH9Ctllu5UTlVNUn5hiQVsZ6f7LCrahHUERHWenJx0Iv0s7K1Xv5hokhjljzLJ6+pxih10MHOQCqZ8ndsPoaEg3Wy+5hbjtup0+qVaJXF68gVn3SkRSivsmeSwWLhZRztMF04VpQwK/QbCdAhhbmMn6reyyGk7gzEHeC5HlFFNpDf/5pGGs8QMugc6n+hNONQucbOm4sAo+/TeUUh3r/PR4fI7qNbCXaZbxzOm73hnmJo8+wk+6cCR11pRDH9l1HZcqMm1pyHatg9qW+HFJEQZYV3ERi/OaaOC7WOmiwOqRnWEIBlH54mFWy2TNICDlwpgdi1Fmr5adAA9RNrwESC86KCoobN89GuLZMSLnVnue4MvdWuPRk+0Kz015HcyPdM/qesPkCmOt9WAdEBKH0crZ9XxundfXVtH8tJjKNjkuoQ5llBXyaP8qOU0U0ixCPIq1dQ=
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?MkZHeHh0dCtVc2ZITVVpZ3VtaDN4eGNyVUZNbXVaQWh3Vm9SQThMUmZvZkV0?=
 =?utf-8?B?OTJOVWpYWEhVSlFIRkl6b2wyaktoKzNnUE5wVlQrOGUwemkvVDZoK3JTdElQ?=
 =?utf-8?B?aTU0enZ6QWNCUmRRb25ndkFvZDJRdkhkYitjeHpacTZMN0NGTkhCSVk5Q05Z?=
 =?utf-8?B?MUV6K2x0akpzdmx3bzVoU3FQUWtxT2gzWWh0bjc0bmRzQlhhYzRKaXpsNzNY?=
 =?utf-8?B?bFgwRDFDeTJZNnNEVDUxYXRNdzRSL1JPRUVnU3Y5SVdna3QzU2ZwMDBZWGlS?=
 =?utf-8?B?eSs5VXdCRGtWRFI0dksreTZYRURCNkg1K1IvRjV1cHpCdnBjUTVFL1RsTk9v?=
 =?utf-8?B?SWo0VEkyQTdDaUd6U0UvZ0JRK2FnWFljYVEvQ011THE4cjFlTUVabHpiN1hm?=
 =?utf-8?B?Z09rTXFXWkwvYVFvVkpEL09weHN1eWFCNHBkWGp1TlY1STc5dmgwRFhyRk4w?=
 =?utf-8?B?Rm8yd3NHczFBZnFXajYzbzNCM2JRK1BzT0dBNkk1UTlPWTVSeVIvaGg3Q3c1?=
 =?utf-8?B?K2F0VjcvN29OaWFtQ2ZqcmNSUkNiUlZseWlzVTBteDFCY21yMjMrVHpFb1dq?=
 =?utf-8?B?RGpNekNpSTZQU1Q2cU1PVU4yQk1lb3NUV2lwZVNXR2k4V3lDZkE4T1ZzUUZI?=
 =?utf-8?B?akRPZkttcW1SYWFpUGFINUo3OXZ2Z0pwcHFRT1JsNEhjMkcxS2VuakFGb056?=
 =?utf-8?B?Z3ZEVDhaRUNpZzhNTnhuRWN3OUFuV0E3Y09xR0d3R09qQmYvWnVESkdlYkVI?=
 =?utf-8?B?YVZ2WG9aYURYZzduZEszdmdKUkdQRFhVeldBVCtTVWUrVHNNOGY2Wk5sajMz?=
 =?utf-8?B?TitManFwcm04b2NRc2h6dVFxQ0R2dXZBOFY2WGg2Yk1XTkt4UGpnemJZUTR0?=
 =?utf-8?B?MTVIWjFINHlRbDlEU25GM3gvZnB2TVl6aVhMVHhicThqdVMwd2grT2RQc2Mz?=
 =?utf-8?B?NGFOODk5aVJiSTV3MVp0c0FWTjJZWVdZcEFkQXJPQ3pOaXRkK0ZIcUNqOXVR?=
 =?utf-8?B?M2c1NzJZTGpRbEpVeVVKNWtXNDAxcWZLczlHc1VkZmVqbTRsS0ZKTHJtdDA1?=
 =?utf-8?B?aHRaN2wzR1ljMWQ0Y2Qrb0pRbExBNmFzaDVzaTh3VlQ5VkhJUGVzMWJFR3JB?=
 =?utf-8?B?RGlMVFJVd2Y0K2gwUExFbTNKcFBNMXkzOFNBbC96T3ArYXR6OElWeTREM2xI?=
 =?utf-8?B?cDNycWEvVE8wMXltSlptaStwWDdxTFp4NnpXNjNCU0FicXc2MEQ3a1ZsclQ5?=
 =?utf-8?B?YmJlejFxTjhFcmNzbXZwQ2hrcHlsTnhlNUxDL09FZS9KTnFrakI0K1FjNTdX?=
 =?utf-8?B?NGtveDd5a0xKKzE3UFduemhaV2ltT2g2MkMxS2k3K0pwcTdhOGRzcnZwNnNP?=
 =?utf-8?B?a2JCck9mQWFxTC92L0FaY3pHNUs2a1A3ei94aUZvc25YV3V1L3Bma3UyVWVN?=
 =?utf-8?B?KzYwNi90d2gvOHVtNk1jL3paUlNRdjF1SXJnWXdEQlRmRXRmWXdlN2w1dUta?=
 =?utf-8?B?T3R3T2UwSzRzRlRvenQxVi9lRDRPZk1IRFc3OTJ2eW1aN1M1K3VlRGt5em1u?=
 =?utf-8?B?bTlGajNHQ1F1d0E2WVlnc2o0QlRxMVdPbktVOG0wRjdNN0FiVnlvSm1IaVNQ?=
 =?utf-8?B?TGwwT3ZWdWpPbXFOVWtTUDJNV3Q2alBiSktqN0d2bk1qM05kVXVVQUxoUXRs?=
 =?utf-8?B?eHMzUmJ3WjF1bEpEdXFIQXV0RStmeE5kU0ZQTG9qVGpjVGw1SDhPSzVDcy9M?=
 =?utf-8?B?aGVNd0pGV3F4K3NhSkVnQ3pFeEZocGZSemNCdGZNdUxOTUpUL1NndFZzdklB?=
 =?utf-8?B?OWxPWTBpaTYwcHFjS2dwZnQrSnA2dE5UZXhpQVNQTWpSV00xTXlGdVJKTTRR?=
 =?utf-8?B?OXNaNTFhbUQyWCt0eHdoYysvOFlWQ3NQU0xaRlFXK04wNE5COTRoRDBhZW1i?=
 =?utf-8?B?YXlZQnludjBwd0Z0VnlJdU1SMjRZVnYxTW03bUhkNEtTalY4bWJPaTcyazBn?=
 =?utf-8?B?VmlDTCtMMzdJVC9SWDFHaloveFdOdWNmMFRISlNUbnJ0Wkw2YzVhbmN3dk9V?=
 =?utf-8?B?VU84bUhhM0dxdkNndmw1TmpRRkhIUndtYzFHbEYxcThBQjVHa2l3eDlKeVdF?=
 =?utf-8?B?aDQ4Y214cEg0Yk94NENJSWNBeEZLTUd6Y2UvV2Z0bXR3ZG9RWHZUQ2JXWHdO?=
 =?utf-8?B?SGM5NGE0VnJZRGhLaHFTTnQ5REQ4QXk3UlZ0TCsxS041NHZjTGM3eDBuaHIv?=
 =?utf-8?B?QW9TZjlVc0RISjQzR2pUVnBtbGd6aWhoaklHczJIajlTd202UjVxUmZrQlBR?=
 =?utf-8?B?UjNBTGhaRDJrZ29PQnVvMVlheFpyRHI5OFpzemFjZUxWRDNQVzBGdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b9bf0bdc-085f-4a65-edaf-08de787a3df3
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Mar 2026 16:39:15.4800
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: eMUzYn7lELLhxYwqwNsLnwqiyhSIhd1zlNzUAt2PacSfzrOJyIPhdJYeLzS3q71HLXfIG3YCN6BbLjMhS3CTImVwnvAqJdpXfW5zzKLD8Lg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PR03MB989110

On 02/03/2026 12:57 pm, Jan Beulich wrote:
> On 02.03.2026 12:43, Andrew Cooper wrote:
>> On 02/03/2026 11:03 am, Jan Beulich wrote:
>>> On 28.02.2026 00:16, Andrew Cooper wrote:
>>>> @@ -1401,6 +1402,53 @@ int pv_emulate_privileged_op(struct cpu_user_regs *regs)
>>>>      return 0;
>>>>  }
>>>>  
>>>> +/*
>>>> + * Hardware already decoded the INT $N instruction and determinted that there
>>>> + * was a DPL issue, hence the #GP.  Xen has already determined that the guest
>>>> + * kernel has permitted this software interrupt.
>>>> + *
>>>> + * All that is needed is the instruction length, to turn the fault into a
>>>> + * trap.  All errors are turned back into the original #GP, as that's the
>>>> + * action that really happened.
>>>> + */
>>>> +void pv_emulate_sw_interrupt(struct cpu_user_regs *regs)
>>>> +{
>>>> +    struct vcpu *curr = current;
>>>> +    struct domain *currd = curr->domain;
>>>> +    struct priv_op_ctxt ctxt = {
>>>> +        .ctxt.regs = regs,
>>>> +        .ctxt.lma = !is_pv_32bit_domain(currd),
>>> The difference may not be overly significant here, but 64-bit guests can run
>>> 32-bit code, so setting .lma seems wrong in that case. As it ought to be
>>> largely benign, perhaps to code could even be left as is, just with a comment
>>> to clarify things?
>> LMA must be set for a 64bit guest.  Are you confusing it with %cs.l ?
> Indeed I am, sorry.
>
>>>> +    struct x86_emulate_state *state;
>>>> +    uint8_t vector = regs->error_code >> 3;
>>>> +    unsigned int len, ar;
>>>> +
>>>> +    if ( !pv_emul_read_descriptor(regs->cs, curr, &ctxt.cs.base,
>>>> +                                  &ctxt.cs.limit, &ar, 1) ||
>>>> +         !(ar & _SEGMENT_S) ||
>>>> +         !(ar & _SEGMENT_P) ||
>>>> +         !(ar & _SEGMENT_CODE) )
>>>> +        goto error;
>>>> +
>>>> +    state = x86_decode_insn(&ctxt.ctxt, insn_fetch);
>>>> +    if ( IS_ERR_OR_NULL(state) )
>>>> +        goto error;
>>>> +
>>>> +    len = x86_insn_length(state, &ctxt.ctxt);
>>>> +    x86_emulate_free_state(state);
>>>> +
>>>> +    /* Note: Checked slightly late to simplify 'state' handling. */
>>>> +    if ( ctxt.ctxt.opcode != 0xcd /* INT $imm8 */ )
>>>> +        goto error;
>>>> +
>>>> +    regs->rip += len;
>>>> +    pv_inject_sw_interrupt(vector);
>>>> +    return;
>>>> +
>>>> + error:
>>>> +    pv_inject_hw_exception(X86_EXC_GP, regs->entry_vector);
>>> DYM regs->error_code here?
>> Oh.  I'm sure I fixed this bug already.  I wonder where the fix got lost.
>>
>> Yes, it should be regs->error_code.
> Then (plus with my confusion above sorted)
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

>
>>>  Might it alternatively make sense to return a
>>> boolean here, for ...
>>>
>>>> --- a/xen/arch/x86/traps.c
>>>> +++ b/xen/arch/x86/traps.c
>>>> @@ -1379,8 +1379,7 @@ void do_general_protection(struct cpu_user_regs *regs)
>>>>  
>>>>          if ( permit_softint(TI_GET_DPL(ti), v, regs) )
>>>>          {
>>>> -            regs->rip += 2;
>>>> -            pv_inject_sw_interrupt(vector);
>>>> +            pv_emulate_sw_interrupt(regs);
>>>>              return;
>>> ... the return here to become conditional, leveraging the #GP injection at
>>> the bottom of this function?
>> To make this bool, I need to insert a new label into the function.
> Why would that be? Simply skipping the return and falling through will do,
> afaics.
>
>>   I
>> considered that, but delayed it.  do_general_protection() wants a lot
>> more cleaning up than just this, and proportionability is a concern.
> Whatever you exactly mean with this.

Hmm.  That was supposed to say backportability, but I have no idea how
ended up like that.

The other advantage of being void functions is that they can be tailcalled.


Anyway, I have a plan for cleanup once FRED is settled, which looks a
little like this:

handle_GP_IDT()
    if ( guest_regs() )
        return handle_GP_guest()
    else
        return handle_GP_xen()

handle_GP_guest()
    ...

handle_GP_xen()
    ...

where the two FRED entrypoints can now call the context-specific
function rather than the generic one.

This does involve duplicating the X86_XEC_EXT check which is the only
common aspect in the #GP handler.  Next I need to figure out whether the
other handlers can be rearranged similarly.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 16:40:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 16:40:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244484.1543939 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx6Jl-00030X-81; Mon, 02 Mar 2026 16:40:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244484.1543939; Mon, 02 Mar 2026 16:40:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx6Jl-00030Q-5G; Mon, 02 Mar 2026 16:40:25 +0000
Received: by outflank-mailman (input) for mailman id 1244484;
 Mon, 02 Mar 2026 16:40:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9kJt=BC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vx6Jk-00030E-Et
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 16:40:24 +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 8175717a-1656-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Mar 2026 17:40:22 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-439baf33150so706698f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 02 Mar 2026 08:40: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-439b55d15besm11972879f8f.30.2026.03.02.08.39.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Mar 2026 08:39: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: 8175717a-1656-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772469621; x=1773074421; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AKyX3ptxeTzIuEOXF3s2i/pde3r0AGZiyoKUzK+X92c=;
        b=VQrl278QYS5d+UzW4JFpCKSa98vKq3yxKasCNwT0dMMe1+2SZSEfrP7UdcXRSjVD+6
         PQpb9K74+ZuVOrJ43d2V2TvV2qcW+jGRGAPwap3u6UiPa5Japgb0nZkULRJTCFYTjlQO
         vFkkgipyHinYIphoYuTNNJCAKgQI3S3qpVfftFQm1LD+Rkzg1PY013f/uQFfijz/VnUU
         V3FhcxBod16Czim5NV+eiJdCbKankb4h/tWvGaMPMtoXihLna3FrPtPjOvMjgYEzBYY4
         awLZwI9HEhH3wmUdrEVHw6/jkW1jwB5SDrAWMVAN7Zx0XqQH6KXgNxH4AofrS7Ep4MWI
         Se4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772469621; x=1773074421;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AKyX3ptxeTzIuEOXF3s2i/pde3r0AGZiyoKUzK+X92c=;
        b=Af6NUq8530ljyhtRPn4vttp18VZ1HtdAjxfFswVWyCPo/6Ojs00vSGjrCb3g5HABzD
         DTiwkciXwWoTFurwyykPAJ+PdgR9brlKcggWlyhfYaJx6hQwPPS25TOv9vYcod3l0xYI
         8wBRJnd88FQyLIkmGzmyHYyqtjkeWvthEB/Wc1a8YemdxeXnl9+NknBTEDLF1SKgckq4
         gT7bRZKVrNBDYyy6WMjceM3kv3xakjtyBR0Ev9/1E4Is+My/5RHpf0g3AibedbbuyZnK
         3lOzUWjMlKwMh5gK6VO1P5C6sAevzXoOM2iwnvP7t8gXQiW1/NxMwIJ+rQ3Fe/Rtq+Va
         xpEA==
X-Forwarded-Encrypted: i=1; AJvYcCU6nsXNpkRApV+66NqA1RzNI9j8SduKTJJ30l84Pn4YQruLUwqka/uq0JFUa6yZpU0gEMO+kaBtwZ4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzbpHjvpZf2I9i70GtoOwIYtBu5Fy9ozxJYetULG0clYlzTxrD1
	KKdwNx9eJcuum9PUehHqpF5wbJJIKUwWNo+lB5P2nCHEKlVJvRataGCXKbF7T7ToSQ==
X-Gm-Gg: ATEYQzx5O93aBmWyP4TXSTv0nOXxzkHowsQXatYFJzuvmMbmrRoud3V3r8Q67lVkuPj
	UZTqPSIlXxqT4TlJXPXHta8IMnOuX6DIFjMAqC4fqL07VHCvXRiB8S9Uiw2Dm3FFjn4iVu/QVYS
	NrCbSNusSsnUBXtEw8sQ2hu+qaAdsesRsVnp0g3xpu1jB+c/9KdEqlyrQjPlWusGAHirMnYVdGU
	mR+qsOwdGuPYbiPCx+OdLzq7CFGGyDZQ9Cb1mCCkBHjkzDhYBLmCnYkcQTZn2a2DxenG/uXBCQ/
	uNd+nywwdISfe9egqfA6IkCYNhQIUDKDntsgNBCN7jyY0CIQ3nH+Jj+4SXUVEcmJcUlBHanpzuv
	P+WShrSab+XaAJ3HTJLr/I5/FGeMSsQwuHrPGtG+bFsUrwg/A6HaqFK7ZRqn7x4yNu1i65oZQpr
	Xx9ebhnRSC/5+iOWuV/1bGccz2tBlEQvVCnfdjIrEDiXknt3V1Z608gFNhdfTfE6oC+J8Yp+16I
	rePa5oEmCjPL7U=
X-Received: by 2002:a05:6000:420b:b0:437:71b2:6f23 with SMTP id ffacd0b85a97d-439971a6119mr29855780f8f.5.1772469621389;
        Mon, 02 Mar 2026 08:40:21 -0800 (PST)
Message-ID: <3d7f0bfc-66f9-47f4-9a53-099c5a35df98@suse.com>
Date: Mon, 2 Mar 2026 17:39:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 14/14] x86/traps: Use fatal_trap() for #UD and #GP
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: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
 <20260227231636.3955109-15-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260227231636.3955109-15-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.02.2026 00:16, Andrew Cooper wrote:
> This renders the diagnostics in a more uniform way.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Mar 02 16:40:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 16:40:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244492.1543949 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx6K8-0003Rg-Fy; Mon, 02 Mar 2026 16:40:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244492.1543949; Mon, 02 Mar 2026 16:40:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx6K8-0003RZ-DN; Mon, 02 Mar 2026 16:40:48 +0000
Received: by outflank-mailman (input) for mailman id 1244492;
 Mon, 02 Mar 2026 16:40:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9kJt=BC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vx6K7-0003Hu-7a
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 16:40:47 +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 8fdf2a6b-1656-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 17:40:46 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-439b78b638eso1199588f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 02 Mar 2026 08:40: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-439b55d15besm11972879f8f.30.2026.03.02.08.40.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Mar 2026 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: 8fdf2a6b-1656-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772469646; x=1773074446; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AKyX3ptxeTzIuEOXF3s2i/pde3r0AGZiyoKUzK+X92c=;
        b=dqZ4RurYV2DF5tGl04rSp4W2yDKjYtcvbZhcGX9CO0kIxrEQKFVVIKVSAIVPhpwvx5
         94UOgnaBSVzCYaO1bIKXDIFVMmI47d+00vAylXXAPjZwsrVwI3+k0DKacCR7JPFxaEcx
         0Z5eKzV1YO1T0ER0ic24eq1IGdgIkmr2mzmvgCzi/k9FMSo1GcStDEmo3L2xy2jK1Th2
         aXf+HM0E+K89Ack3ZTkCCkh8OnStPiJTDEkR/CWVcON2qKdA3kKk8MqMCm6eeHTwKsuN
         5DP7GRA2P72N4h8H2bki80YHXVeBRfDJ87crlw7oLuze/Dr/asZ/R5UE8FYRGzaCU2T0
         AJfA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772469646; x=1773074446;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AKyX3ptxeTzIuEOXF3s2i/pde3r0AGZiyoKUzK+X92c=;
        b=Ivm5mJyjijrfOg6wG3dVkibUOQ1b19QJM5gf2Q66hBoI/yi1f8M0flarL3BkzQ9q9r
         /drAmy3hHk9+npirR/b+gQGSxp/d3IaEPbJWPcju/ZSojLgLgxrkleBdIXE9uhCpCW9w
         JgQwRPH69ru02ynCIMwMP5VHWSbk+qGwqVHAaPG5BTC4hIwc6oB1+P6E81lQ948qJA+Q
         Y98cE7hR2CCoDYpicg3DmryBfwDmKR4blHTs18C1c6UBjokOY0F6I9Cid6VhhoMlncye
         4ZagvAxVyvlK6TBz8n9IgoWhXuvtGYpSxgxdw/vXTJZc29QQdxoXxFvj+gvtY6YKrZUy
         NTJQ==
X-Forwarded-Encrypted: i=1; AJvYcCVNgNP33LHPGg1nyAy5IXPHbym7x2sPX36AMqzW7aZk0sHiVNGbvEawq9qapUotC1bCV/hGY95qpWA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwEWLm8eu07p2fY6HHjtNOy/pZcIdvFcP9NEDQF5v6l/bgGBRr3
	ULamb6/3sB8otJJSMwJEeIuLeEke39Ga5FSLOQQDGpvI/3UYkRBYrhHqFKfMXjlxU4ODgD5WcCH
	vm6M=
X-Gm-Gg: ATEYQzyfYY9wGvqRheYINlj/msOibsyz2KmKWMMJoNv1cYvdxYlkU1k/BeCHq0Yep+T
	dpO28OP9BCKfJMYLy2ajwW8JYMDTo+yt8yPAxGsHcccepYTG7blEzws2MC+kNwdUgna1t4DKo5V
	k5keePe5HskjeonpDZrLrORnShRxDp5AQ8LZziyyzz9HQGTxGT3gGT1wdTqILEdjHCUrZ7j2jcb
	lGRAQcIKHibP/DZS0UhpKBLO5LKSIyPXyhjb512qVE+l9Tqlb2FVddTgztGl96glBpouKg3jE1T
	Q4LPeYBmTYBKF1W8KXFNNM4L7VJqRrz8yV7u68GUe348NTDAMgx7Xn/zdNOi7yB21zAHKFVT19b
	ziXkWlKpErxC2Sns04nZT1CgS+uc2f+PQfkXZqnniomqfeL0YmeWcViYLpYPMEhD5veWOncYbda
	iM8tusy0690DG13qi7TnZ7hY0ULYOQA4MYsnwzZLvCmoiNzhXh3AhF9wyPeg1GXdU8OOiqi2fnI
	q+rrh9kYb/Dsnw=
X-Received: by 2002:a5d:5c89:0:b0:439:bc31:a056 with SMTP id ffacd0b85a97d-439bc31a2f8mr3682030f8f.51.1772469645681;
        Mon, 02 Mar 2026 08:40:45 -0800 (PST)
Message-ID: <ee77803f-8997-4f9d-9d65-1e16512af71b@suse.com>
Date: Mon, 2 Mar 2026 17:40:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 14/14] x86/traps: Use fatal_trap() for #UD and #GP
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: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
 <20260227231636.3955109-15-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260227231636.3955109-15-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.02.2026 00:16, Andrew Cooper wrote:
> This renders the diagnostics in a more uniform way.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Mar 02 16:50:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 16:50:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244504.1543959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx6Td-0005Ku-CU; Mon, 02 Mar 2026 16:50:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244504.1543959; Mon, 02 Mar 2026 16:50:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx6Td-0005Kn-9u; Mon, 02 Mar 2026 16:50:37 +0000
Received: by outflank-mailman (input) for mailman id 1244504;
 Mon, 02 Mar 2026 16:50:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9kJt=BC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vx6Tc-0005Kh-51
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 16:50:36 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id edf21837-1657-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Mar 2026 17:50:33 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-483a233819aso45432605e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 02 Mar 2026 08:50:33 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483c35910f1sm249159025e9.2.2026.03.02.08.50.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Mar 2026 08: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: edf21837-1657-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772470233; x=1773075033; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+Y8ZBfCQicOjA/MPxg4ajXuc0vJMzWClaVTSx+x8DqU=;
        b=Q+ZZcFHfJJQPvGcnOaGxW28XCyGol9KVdpOQPaBcGUDOW72ENRzQ2iO9BsyIzXyxCt
         rkF241tEIiQ0PlF+jMRw+uZzpknvT3M5VVC1fTQSINIAiqSs+WIh+t6k+ts3WmAAj9iu
         aa9v+JtfUWrNhfiH92mLGOJjYKgMRPdqMD4iOE/CwVlorPIF3odTBKv9iiY1aRGGXThG
         7Vdsd1fx8sMqyQBu3LdBSmI8KIT8jZgGlmxxI8l1PF7xxx0cxu0RuONTLoN7o+BGFZzq
         n4kkMhyoNY3WsqpsOufGUXBU1ZeNqe+/rQ1L5ulPpHC3K93WgYB2D03rtN8edKGtj87F
         BuiA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772470233; x=1773075033;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+Y8ZBfCQicOjA/MPxg4ajXuc0vJMzWClaVTSx+x8DqU=;
        b=CJKh9d6OvJ9i81yzt2Bx5QPQK8RoIMe0rMSdH2+CcXlpFY5Nx2r56paGiWrz9JLgJ/
         QCpdq/wzIw8ULURsule8YYrP/uPxaZhXUm2AJDuXvuBB3IOdkW89eoB8i6kimzd+pBQg
         U0CMAkI/Zl4gXsbJtudsM6Xj7qiBS64Fjtjz9nVgV1saUk8GEWP62PbT0n2ZHeQ7PU2z
         ET9FCckomxXei3AwjuQABnDrPk0qEsWSzr4VfCMALUqKh1Qbl+JvGBvWaexbOaWJsOG6
         RuutuuGFOHCD00LZTw5l/kyInGBe7Gs/OFmLUx8TrG8CyDyA05/EiuyWJEJm0+qGeOYU
         /mvQ==
X-Forwarded-Encrypted: i=1; AJvYcCVzpojJpMY/jRidFSLfZ3UwNdGqSKsiayQb/pOGy1LtFpsxuD6uhEJvJtBE8GB0q1WEemzcH8+K/78=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwCc0cLwLPACFdhqhoLAyJNG3dmAo2arKA0WLSOcBd7fub222tK
	SO/PrzdiIWSYutWAi1y/8DqgKiHhj0EKCXDatYTzpMDU2KyYkXMEZZc1nVwgtUh4J184rxEa0N3
	2tso=
X-Gm-Gg: ATEYQzziX/X9JDIvnbcXbiktL7TLQCOblMMp+8ZOL8+aKM3u3v1vj0Pb/9b97a8mY+f
	VoQ+TN/mb7f7UA8RxJX3a+LTM2P31eyXhr5+CPRyFx3fTAWeO6O/ke8H8OhzKrL5Eb+MF3PNDs+
	nNAvd921SbudfFZUxJ6n/qmQOnLefRgmZOH0F0NFyy47BFZethtnoHNvHkRqFiVhM9Cv0z/lgiF
	JBpuDqsdkQ68xHtpHpwwgzv7+OfNRfJEsQGZIfjQW9aWwcIx0IQGxTT5mLLhoiUiA6zH7muZQpf
	RwZhVIexo7Lb4tSgEksNibT2ITgpwV1emYlOgL801p4OLqxtNO8vfizLSq+t5JCk3AHKrCh3hOn
	z3/gq1QFxtMqA+qwPgQWYmJ9JiODDNqhSxOX3ZjGE8724MG9FiMqhtE+NUiInsfwRQr6AVKWFVF
	Vxh0I71FFQrAkWceU3RLLGQkAyLG9AxSYzKZKnpzaoeNDl9Wgy1PJny820uV/R26RcD29IURzH2
	Ft/gaSPy0uo458=
X-Received: by 2002:a05:600c:8b53:b0:47e:e91d:73c0 with SMTP id 5b1f17b1804b1-483c9c0bce5mr231103595e9.19.1772470232978;
        Mon, 02 Mar 2026 08:50:32 -0800 (PST)
Message-ID: <7380cf63-e9ac-4df9-9633-c26f9de0027a@suse.com>
Date: Mon, 2 Mar 2026 17:50:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 2/2] xenpm: Add get-core-temp subcommand
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <ec92e54a493a16f5bc085738e943b3778c3a0231.1772211384.git.teddy.astie@vates.tech>
 <aadf2e78f91f442964cc4e93c028b6b31fceb9eb.1772211384.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: <aadf2e78f91f442964cc4e93c028b6b31fceb9eb.1772211384.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 27.02.2026 18:00, Teddy Astie wrote:
> @@ -1354,6 +1358,127 @@ void enable_turbo_mode(int argc, char *argv[])
>                  errno, strerror(errno));
>  }
>  
> +static int fetch_dts_temp(xc_interface *xch, uint32_t cpu, bool package, int *temp)
> +{
> +    xc_resource_entry_t entries[] = {
> +        { .idx = package ? MSR_PACKAGE_THERM_STATUS : MSR_IA32_THERM_STATUS },
> +        { .idx = MSR_TEMPERATURE_TARGET },
> +    };
> +    struct xc_resource_op ops = {
> +        .cpu = cpu,
> +        .entries = entries,
> +        .nr_entries = ARRAY_SIZE(entries),
> +    };
> +    int tjmax;
> +
> +    int ret = xc_resource_op(xch, 1, &ops);
> +
> +    switch ( ret )
> +    {
> +    case 0:
> +        /* This CPU isn't online or can't query this MSR */
> +        return -1;

Further down at the callers of this function you assume errno is set whenever
an error indication is returned. As xc_resource_op() didn't fail, you will
need to synthesize an errno value here.

> +static void get_core_temp(int argc, char *argv[])
> +{
> +    int temp = -1, cpu = -1;
> +    unsigned int socket;
> +    bool has_data = false;
> +
> +    if ( argc > 0 )
> +        parse_cpuid(argv[0], &cpu);
> +
> +    if ( cpu != -1 )
> +    {
> +        if ( !fetch_dts_temp(xc_handle, cpu, false, &temp) )
> +            printf("CPU%d: %d°C\n", cpu, temp);
> +        else
> +        {
> +            fprintf(stderr, "Unable to fetch temperature (%d - %s)\n",
> +                    errno, strerror(errno));
> +            printf("No data\n");
> +            exit(ENODATA);

In how far is using errno values as arguments to exit() a useful thing? (I
think you had it like this before, and I merely forgot to ask.) Yes, I can
see the tool using a number of exit(EINVAL), but I don't understand those
either. This way you can't even document easily what particular exit codes
mean, as the errno values may vary across OSes.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 02 19:18:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Mar 2026 19:18:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244524.1543970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vx8mr-0005H0-7v; Mon, 02 Mar 2026 19:18:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244524.1543970; Mon, 02 Mar 2026 19:18: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 1vx8mr-0005Gs-39; Mon, 02 Mar 2026 19:18:37 +0000
Received: by outflank-mailman (input) for mailman id 1244524;
 Mon, 02 Mar 2026 19:18: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=vHUS=BC=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1vx8mp-0005Gm-U5
 for xen-devel@lists.xenproject.org; Mon, 02 Mar 2026 19:18:36 +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 9b128558-166c-11f1-b164-2bf370ae4941;
 Mon, 02 Mar 2026 20:18:34 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by SA1PR03MB7032.namprd03.prod.outlook.com (2603:10b6:806:331::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.16; Mon, 2 Mar
 2026 19:18:29 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9654.015; Mon, 2 Mar 2026
 19:18: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: 9b128558-166c-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eRxj3OWcVp167CrvWLrOkbh1urCYOkHtCGMT7NL6SmsYPvGeKsbHe6skXXdFYgtvZBO50/lgjN03hbbjy0WpQ2Y7enitoctnxu7veTvXoK8DRfuERuSNMpWvx7uKwjuiTsQCTK9F+/QRxzlBsod5cXrULv8YlTygsMkDOW3p6uSM0Ila9pO7fog7cZuDjD6WOZK4FDQWIxpYBiwc9YKyUmCUelfjOi5GELjLqO3FW3w3fshYSAh7yuSNfxgB2X3+d98ZvgqcnbuF2RdrlxPPCjYexfxkbxMzCuXLRUy5vTohs/8rdROZxR/yqaHUibD4B3BSyLg99gRCaypHSzW9Zw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LCPhyc8uZGTS+6RkMDRkq18hqcIIjgjPFEAxZTbMplM=;
 b=StCtAzpLnMibWQmsrnr6WCAQDpzGcE95jJH4gc3Ti+7AEBZlgLBDy87mEfqJuUPs1fn38L15z7ERp1QDBObLue4kqjLWCZFO7yKms2eX3KYp35I6Yp6zpmGWRYwAe1Bki4EzLqta2cG/swPCUyIc+QdNOk22yAgF4Zq7tZ1pcP6Hw1dOnr2Z+EY9N3pD7efFgNWJe6/kRJosxOXWQrBFRXgz/a1x0fTd3zHcWlNSY3VYRT5q7kMvVh/unCIHLyHiuBcAxb1m4Wrd1sxL8wrmVGoloUR8RTJyATW/NyjdFKJve3CJuWXVL+FJ2BVVqrgj6Lrko7IUcDV5r2df69Bzgg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LCPhyc8uZGTS+6RkMDRkq18hqcIIjgjPFEAxZTbMplM=;
 b=OFb6wRkLyEgJX0VM+WAwqv3FU610h6z8T1QONpBZiDZPFNPLvxRQUp9w1aMM4RQj9LUYBAnWTu+IAHJdVR5ol77MukD4ijr8RrpnZJjpL/dCXisj4M+Kj9zFMhthOVLRmGMF7yfcf5zyj2xYRbmi14u4jRd81tk7J4X/rC4FHrE=
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 mcheck code
Date: Mon,  2 Mar 2026 19:19:00 +0000
Message-ID: <20260302191900.672460-1-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0134.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:193::13) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|SA1PR03MB7032:EE_
X-MS-Office365-Filtering-Correlation-Id: 2115c1ea-82ac-49f9-7993-08de78907c2c
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:
	Ys7qrlY8M5N4bR9ZlicQWui/CePe3dyMM1BquGicMBT4Ixws7mGIH+jJQBOCcP82u94GGpCwf+ETNysZNmSbkH27VmM77ybnXoMSgpqs6qc219/ZcLeW0V7PMlH+nfGtDkrAN5e/ysfDg2SjOgRoI3uu6mykFKgBz14g8otOqpCMlGDVHaVdhJJqcsbuMisGkSMdsOH/S9bxbsLYtj7WAbjflhHB0O0dCP01bdHw3v69/aQrF9OoL8kPB/HevGbRX7PZGJeG/+LrVuC7vkbgBqqMjOnxqfzuyAIA+Vp+5YpmWDuXaswLFboIotiSt7eXKwEbUtM6PRfDZLgnXXSZ6qbTd1PreoiZTqXp9OGyIZ20Y86YX8bFFRVqE8BJrs7fHV5d7ipbZG7gvCZG4Buh5NCeyYxr89Z5XlcPM0nyffMtBwXY8FCBPL4Ol2d6t1mIpeHTCh6QBjFzCldWGVRlNmemfn7zcWHNT2CuBgbv+fQdNjYFjzb9XSgjtnLO23pajpDTK0MjRQGfuNiWjqFO8oMrJQpB9t9Wnjdavc/b4Xn1BtexazLJ0yDhudP8s9kjUIPadvXFijGTdUbXpaxptQYHzDrQZfiSrK3cUDMU3PWyJG+BgVKh7KYxa/ABPEv1FHM1fc4PlRSL5tOpul6eb8CEtNeyMOEeVRnhOKC71CglqjxKJ6QPxxDavLtKnZPNAEO4pvJD0LcZT5q1jVOWKuMCt3zM4ad7687Q+j3M+DY=
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)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?rtBIzNxURKjXDzw3zt0fKebM+RSVmVUYQuH/pYaro5Ka5XRKAdFwVEvp0RHS?=
 =?us-ascii?Q?ebQc4U/cVDAOGMvZSDcc4zJD6n9x2ZrRC0+h1PZVn1MQxG2f7IejjqX+iTMf?=
 =?us-ascii?Q?lEwzaDXUan5cmXsPjB8Hzy9dTiyVRM6kaCeknqEF0ezMbWMfO17PyXG87qS5?=
 =?us-ascii?Q?ARweUkzRgG9liHHqwUvlOSd4LqRdOqJlfQZ5QvOeSmROCHLeX/tUTzuVBt5u?=
 =?us-ascii?Q?AwvUO9RqGI4NUWaZXt6GeCEr/a4B9Dm5sAcHKshM9d0SD79Ab18tzy9h9ATI?=
 =?us-ascii?Q?jAtAtutS7DLcctGaO1NtAbRPCWIqxKuOLgW5PqB3KFMSPFDxRcRB9cMSKyfv?=
 =?us-ascii?Q?mOWfdN2UKfyBWJ3zkA4i5PRu5cBwgJILl8zxwOeCT+G82ChYywDkidf/5elC?=
 =?us-ascii?Q?AGk5jrlbA8ykfYjJEWPB2cOmmY3eQU+KB1TvxwuwNpf4ubfARyjazNlp9Hs7?=
 =?us-ascii?Q?2w8I5HuBcf33jTc8GjMiB0lobJzWDXD6jsTnVHnauwXyE2edLm4exZrANXsK?=
 =?us-ascii?Q?LJ/XBhbLwjm7DZojWDQ4Xn7pa3hMcuVTA4TxWoW5DkdeC5kiKKzVktDGu108?=
 =?us-ascii?Q?2loxVsbzdTAHaW0jBmvKp4SYQcRVCUtQt6RXzCLKU82b/7JA/kNzeQKkma/N?=
 =?us-ascii?Q?q99WczZcHFWjUUUuDt5xGU14DEGauyphzDfVCRnboU0iyH50GOqR1LZnc2hi?=
 =?us-ascii?Q?YwkGGjw4/fHVKPDivvf8x5qg05o6atf7LKILvNGuvB+UJ2U2y9noTy07fuoz?=
 =?us-ascii?Q?fmL7BH+myLdxofTz2fXUr0S+2lAPPWMe/8t7w9R8TIa0AzqjqK3I+VKxdLfN?=
 =?us-ascii?Q?8l1jfDhmbzaNwk4FJNdrLa1H4CX7CUN2WJX8q4AhB8xrQeqh/aGqO13gpIIw?=
 =?us-ascii?Q?No6CTJweivyNF9L+8oTCWkJDLhERsZcvY3pksXIwtTrrbmGBxCuYeJuA0Qyl?=
 =?us-ascii?Q?9Csnb21DzreqUJuBv7VENKCAaB0HUyalGxhbC23KfCLx0lh74q7M7Uv+DvYs?=
 =?us-ascii?Q?qJKTsQ9MARsWFhn8wc7ukcOV5MjFeinA2NdUm+lf8UZe1hj+iK0JAbClM+Eb?=
 =?us-ascii?Q?O2EyEgjiJd9pIgucl1a2LOCYDFpjDJWYVGXMWpK4ZH9Aj/N+WB+H7EHAZ2fp?=
 =?us-ascii?Q?1zBbsdoqYr4hBmXAedc6NWWRVVhPtrcImdFylaB+lBHfUDTmxyNeIH+bjqGW?=
 =?us-ascii?Q?Ga7PuQ5OJXdS7JVTbhYwfWCU5bdn5rm5S8dD0S2B5zgWdm6aAjjyPoN+bd5q?=
 =?us-ascii?Q?M0mNnWVdr8FbMF8uuruAHBP1j9BN5+s9/xPdZPO5M3vmGEWHz/wv4+GQHK1g?=
 =?us-ascii?Q?+Xa4+4zR1fU6tCCPlnBKt8xcr5SjQFnbeSpm+g+1sbLfMWPoZBt3SU8OYzp6?=
 =?us-ascii?Q?Lzy0fw/E1+pBy21jb27LvSeQOucriCkW2b5bHiycrLryb5FlhfP9RCbkU7eA?=
 =?us-ascii?Q?hMYghYyNNuYVKjNMOgGdWh/djH1wt8pAuqTSisYcOaPd40YZE4HgYyE2Iw+U?=
 =?us-ascii?Q?/fBaPwOkBfBRlfT7vsbRtCJrblcZlGUiE/ViTRalLjgSLr+b9GbXhlfj72XQ?=
 =?us-ascii?Q?RKFecXkKL6mDo9r3yAunZpp4A5xkLRSJ+90urs2x2XQfrkFC0Q99l13BTnyJ?=
 =?us-ascii?Q?GWhD9Bkg5EG8wKBK1B/4UqToIY6khLfrhejaBVEESObfiNiS8P22CxnLal9c?=
 =?us-ascii?Q?/HcjMTnC2VdZp16f3H9ylHgTC3gozfVFDEwB9iiuWGFKXmtXJ6JdvMPwQnGa?=
 =?us-ascii?Q?z6jQ+tkywQ=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2115c1ea-82ac-49f9-7993-08de78907c2c
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Mar 2026 19:18:28.8354
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: FlE2/SiN/RbdBKTniI7igoQVQ2ofys0i56xNKchH2BhCL9odwNZt4AdWhMoaaMdjt08Yofx3b+0F/4lAgUspXQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB7032

struct cpuinfo_x86
  .x86        => .family
  .x86_vendor => .vendor
  .x86_model  => .model
  .x86_mask   => .stepping

No functional change.

This work is part of making Xen safe for Intel family 18/19.

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---

In xen/arch/x86/cpu/mcheck/mce.c: mcheck_init(...)
Xen only calls `intel_mcheck_init(...)` if family is 6 or 15.

Linux only calls `mce_intel_feature_init(...)` if family != 5.

Do we need to do something like extend this switch statement in
`mcheck_init(...)` to include family 18 and 19?


In xen/arch/x86/cpu/mcheck/mce.c: mce_firstbank(...)
The check
  c->family == 6 && c->vendor == X86_VENDOR_INTEL && c->model < 0x1a

could be re-written as
  c->vfm >= INTEL_PENTIUM_PRO && c->vfm < INTEL_NEHALEM_EP

I don't know if that would be better.

---
 xen/arch/x86/cpu/mcheck/amd_nonfatal.c |  2 +-
 xen/arch/x86/cpu/mcheck/mcaction.c     |  2 +-
 xen/arch/x86/cpu/mcheck/mce.c          | 30 +++++++++++++-------------
 xen/arch/x86/cpu/mcheck/mce.h          |  2 +-
 xen/arch/x86/cpu/mcheck/mce_amd.c      | 16 +++++++-------
 xen/arch/x86/cpu/mcheck/mce_intel.c    |  5 +----
 xen/arch/x86/cpu/mcheck/non-fatal.c    |  2 +-
 xen/arch/x86/cpu/mcheck/vmce.c         |  8 +++----
 8 files changed, 32 insertions(+), 35 deletions(-)

diff --git a/xen/arch/x86/cpu/mcheck/amd_nonfatal.c b/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
index 7d48c9ab5f..fb52639e13 100644
--- a/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
+++ b/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
@@ -191,7 +191,7 @@ static void cf_check mce_amd_work_fn(void *data)
 
 void __init amd_nonfatal_mcheck_init(struct cpuinfo_x86 *c)
 {
-	if (!(c->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)))
+	if (!(c->vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)))
 		return;
 
 	/* Assume we are on K8 or newer AMD or Hygon CPU here */
diff --git a/xen/arch/x86/cpu/mcheck/mcaction.c b/xen/arch/x86/cpu/mcheck/mcaction.c
index bf7a0de965..236424569a 100644
--- a/xen/arch/x86/cpu/mcheck/mcaction.c
+++ b/xen/arch/x86/cpu/mcheck/mcaction.c
@@ -101,7 +101,7 @@ mc_memerr_dhandler(struct mca_binfo *binfo,
                       * not always precise. In that case, fallback to broadcast.
                       */
                      global->mc_domid != bank->mc_domid ||
-                     (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
+                     (boot_cpu_data.vendor == X86_VENDOR_INTEL &&
                       (!(global->mc_gstatus & MCG_STATUS_LMCE) ||
                        !(d->vcpu[mc_vcpuid]->arch.vmce.mcg_ext_ctl &
                          MCG_EXT_CTL_LMCE_EN))) )
diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
index 9a91807cfb..10e826e3a6 100644
--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -334,7 +334,7 @@ mcheck_mca_logout(enum mca_source who, struct mca_banks *bankmask,
                 mca_init_global(mc_flags, mig);
                 /* A hook here to get global extended msrs */
                 if ( IS_ENABLED(CONFIG_INTEL) &&
-                     boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+                     boot_cpu_data.vendor == X86_VENDOR_INTEL )
                     intel_get_extended_msrs(mig, mci);
             }
         }
@@ -564,8 +564,8 @@ bool mce_available(const struct cpuinfo_x86 *c)
  */
 unsigned int mce_firstbank(struct cpuinfo_x86 *c)
 {
-    return c->x86 == 6 &&
-           c->x86_vendor == X86_VENDOR_INTEL && c->x86_model < 0x1a;
+    return c->family == 6 &&
+           c->vendor == X86_VENDOR_INTEL && c->model < 0x1a;
 }
 
 static int show_mca_info(int inited, struct cpuinfo_x86 *c)
@@ -596,7 +596,7 @@ static int show_mca_info(int inited, struct cpuinfo_x86 *c)
         case mcheck_amd_famXX:
         case mcheck_hygon:
             printk("%s%s Fam%xh machine check reporting enabled\n",
-                   prefix, type_str[inited], c->x86);
+                   prefix, type_str[inited], c->family);
             break;
 
         case mcheck_none:
@@ -766,7 +766,7 @@ void mcheck_init(struct cpuinfo_x86 *c, bool bsp)
     else if ( cpu_bank_alloc(cpu) )
         panic("Insufficient memory for MCE bank allocations\n");
 
-    switch ( c->x86_vendor )
+    switch ( c->vendor )
     {
 #ifdef CONFIG_AMD
     case X86_VENDOR_AMD:
@@ -777,7 +777,7 @@ void mcheck_init(struct cpuinfo_x86 *c, bool bsp)
 
 #ifdef CONFIG_INTEL
     case X86_VENDOR_INTEL:
-        switch ( c->x86 )
+        switch ( c->family )
         {
         case 6:
         case 15:
@@ -882,7 +882,7 @@ static void x86_mcinfo_apei_save(
     memset(&m, 0, sizeof(struct mce));
 
     m.cpu = mc_global->mc_coreid;
-    m.cpuvendor = xen2linux_vendor(boot_cpu_data.x86_vendor);
+    m.cpuvendor = xen2linux_vendor(boot_cpu_data.vendor);
     m.cpuid = cpuid_eax(1);
     m.socketid = mc_global->mc_socketid;
     m.apicid = mc_global->mc_apicid;
@@ -983,10 +983,10 @@ static void cf_check __maybe_unused do_mc_get_cpu_info(void *v)
                         &xcp->mc_apicid, &xcp->mc_ncores,
                         &xcp->mc_ncores_active, &xcp->mc_nthreads);
     xcp->mc_cpuid_level = c->cpuid_level;
-    xcp->mc_family = c->x86;
-    xcp->mc_vendor = xen2linux_vendor(c->x86_vendor);
-    xcp->mc_model = c->x86_model;
-    xcp->mc_step = c->x86_mask;
+    xcp->mc_family = c->family;
+    xcp->mc_vendor = xen2linux_vendor(c->vendor);
+    xcp->mc_model = c->model;
+    xcp->mc_step = c->stepping;
     xcp->mc_cache_size = c->x86_cache_size;
     xcp->mc_cache_alignment = c->x86_cache_alignment;
     memcpy(xcp->mc_vendorid, c->x86_vendor_id, sizeof xcp->mc_vendorid);
@@ -1142,7 +1142,7 @@ static bool __maybe_unused x86_mc_msrinject_verify(struct xen_mc_msrinject *mci)
 
         if ( IS_MCA_BANKREG(reg, mci->mcinj_cpunr) )
         {
-            if ( c->x86_vendor == X86_VENDOR_AMD )
+            if ( c->vendor == X86_VENDOR_AMD )
             {
                 /*
                  * On AMD we can set MCi_STATUS_WREN in the
@@ -1177,15 +1177,15 @@ static bool __maybe_unused x86_mc_msrinject_verify(struct xen_mc_msrinject *mci)
             case MSR_F10_MC4_MISC1:
             case MSR_F10_MC4_MISC2:
             case MSR_F10_MC4_MISC3:
-                if ( c->x86_vendor != X86_VENDOR_AMD )
+                if ( c->vendor != X86_VENDOR_AMD )
                     reason = "only supported on AMD";
-                else if ( c->x86 < 0x10 )
+                else if ( c->family < 0x10 )
                     reason = "only supported on AMD Fam10h+";
                 break;
 
             /* MSRs that the HV will take care of */
             case MSR_K8_HWCR:
-                if ( c->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
+                if ( c->vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
                     reason = "HV will operate HWCR";
                 else
                     reason = "only supported on AMD or Hygon";
diff --git a/xen/arch/x86/cpu/mcheck/mce.h b/xen/arch/x86/cpu/mcheck/mce.h
index 920b075355..3b61b12487 100644
--- a/xen/arch/x86/cpu/mcheck/mce.h
+++ b/xen/arch/x86/cpu/mcheck/mce.h
@@ -137,7 +137,7 @@ void x86_mcinfo_dump(struct mc_info *mi);
 
 static inline int mce_vendor_bank_msr(const struct vcpu *v, uint32_t msr)
 {
-    switch (boot_cpu_data.x86_vendor) {
+    switch (boot_cpu_data.vendor) {
     case X86_VENDOR_INTEL:
         if (msr >= MSR_IA32_MC0_CTL2 &&
             msr < MSR_IA32_MCx_CTL2(v->arch.vmce.mcg_cap & MCG_CAP_COUNT) )
diff --git a/xen/arch/x86/cpu/mcheck/mce_amd.c b/xen/arch/x86/cpu/mcheck/mce_amd.c
index 25c29eb3d2..2d17832d9c 100644
--- a/xen/arch/x86/cpu/mcheck/mce_amd.c
+++ b/xen/arch/x86/cpu/mcheck/mce_amd.c
@@ -160,17 +160,17 @@ mcequirk_lookup_amd_quirkdata(const struct cpuinfo_x86 *c)
 {
     unsigned int i;
 
-    BUG_ON(c->x86_vendor != X86_VENDOR_AMD);
+    BUG_ON(c->vendor != X86_VENDOR_AMD);
 
     for ( i = 0; i < ARRAY_SIZE(mce_amd_quirks); i++ )
     {
-        if ( c->x86 != mce_amd_quirks[i].cpu_family )
+        if ( c->family != mce_amd_quirks[i].cpu_family )
             continue;
         if ( (mce_amd_quirks[i].cpu_model != ANY) &&
-             (mce_amd_quirks[i].cpu_model != c->x86_model) )
+             (mce_amd_quirks[i].cpu_model != c->model) )
             continue;
         if ( (mce_amd_quirks[i].cpu_stepping != ANY) &&
-             (mce_amd_quirks[i].cpu_stepping != c->x86_mask) )
+             (mce_amd_quirks[i].cpu_stepping != c->stepping) )
                 continue;
         return mce_amd_quirks[i].quirk;
     }
@@ -291,13 +291,13 @@ amd_mcheck_init(const struct cpuinfo_x86 *c, bool bsp)
     uint32_t i;
     enum mcequirk_amd_flags quirkflag = 0;
 
-    if ( c->x86_vendor != X86_VENDOR_HYGON )
+    if ( c->vendor != X86_VENDOR_HYGON )
         quirkflag = mcequirk_lookup_amd_quirkdata(c);
 
     /* Assume that machine check support is available.
      * The minimum provided support is at least the K8. */
     if ( bsp )
-        mce_handler_init(c->x86 == 0xf ? &k8_callbacks : &k10_callbacks);
+        mce_handler_init(c->family == 0xf ? &k8_callbacks : &k10_callbacks);
 
     for ( i = 0; i < this_cpu(nr_mce_banks); i++ )
     {
@@ -311,7 +311,7 @@ amd_mcheck_init(const struct cpuinfo_x86 *c, bool bsp)
         }
     }
 
-    if ( c->x86 == 0xf )
+    if ( c->family == 0xf )
         return mcheck_amd_k8;
 
     if ( quirkflag == MCEQUIRK_F10_GART )
@@ -337,6 +337,6 @@ amd_mcheck_init(const struct cpuinfo_x86 *c, bool bsp)
             ppin_msr = MSR_AMD_PPIN;
     }
 
-    return c->x86_vendor == X86_VENDOR_HYGON ?
+    return c->vendor == X86_VENDOR_HYGON ?
             mcheck_hygon : mcheck_amd_famXX;
 }
diff --git a/xen/arch/x86/cpu/mcheck/mce_intel.c b/xen/arch/x86/cpu/mcheck/mce_intel.c
index 839a0e5ba9..9100ce0f6c 100644
--- a/xen/arch/x86/cpu/mcheck/mce_intel.c
+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
@@ -711,10 +711,7 @@ static bool mce_is_broadcast(struct cpuinfo_x86 *c)
      * DisplayFamily_DisplayModel encoding of 06H_EH and above,
      * a MCA signal is broadcast to all logical processors in the system
      */
-    if ( c->x86_vendor == X86_VENDOR_INTEL && c->x86 == 6 &&
-         c->x86_model >= 0xe )
-        return true;
-    return false;
+    return c->vfm >= INTEL_CORE_YONAH;
 }
 
 static bool intel_enable_lmce(void)
diff --git a/xen/arch/x86/cpu/mcheck/non-fatal.c b/xen/arch/x86/cpu/mcheck/non-fatal.c
index a9ee9bb94f..4e7c64abef 100644
--- a/xen/arch/x86/cpu/mcheck/non-fatal.c
+++ b/xen/arch/x86/cpu/mcheck/non-fatal.c
@@ -23,7 +23,7 @@ static int __init cf_check init_nonfatal_mce_checker(void)
 	/*
 	 * Check for non-fatal errors every MCE_RATE s
 	 */
-	switch (c->x86_vendor) {
+	switch (c->vendor) {
 #ifdef CONFIG_AMD
 	case X86_VENDOR_AMD:
 	case X86_VENDOR_HYGON:
diff --git a/xen/arch/x86/cpu/mcheck/vmce.c b/xen/arch/x86/cpu/mcheck/vmce.c
index 1a7e92506a..84776aeec8 100644
--- a/xen/arch/x86/cpu/mcheck/vmce.c
+++ b/xen/arch/x86/cpu/mcheck/vmce.c
@@ -45,7 +45,7 @@ void vmce_init_vcpu(struct vcpu *v)
     int i;
 
     /* global MCA MSRs init */
-    if ( boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+    if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
         v->arch.vmce.mcg_cap = INTEL_GUEST_MCG_CAP;
     else
         v->arch.vmce.mcg_cap = AMD_GUEST_MCG_CAP;
@@ -63,7 +63,7 @@ int vmce_restore_vcpu(struct vcpu *v, const struct hvm_vmce_vcpu *ctxt)
 {
     unsigned long guest_mcg_cap;
 
-    if ( boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+    if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
         guest_mcg_cap = INTEL_GUEST_MCG_CAP | MCG_LMCE_P;
     else
         guest_mcg_cap = AMD_GUEST_MCG_CAP;
@@ -136,7 +136,7 @@ static int bank_mce_rdmsr(const struct vcpu *v, uint32_t msr, uint64_t *val)
         break;
 
     default:
-        switch ( boot_cpu_data.x86_vendor )
+        switch ( boot_cpu_data.vendor )
         {
 #ifdef CONFIG_INTEL
         case X86_VENDOR_CENTAUR:
@@ -273,7 +273,7 @@ static int bank_mce_wrmsr(struct vcpu *v, uint32_t msr, uint64_t val)
         break;
 
     default:
-        switch ( boot_cpu_data.x86_vendor )
+        switch ( boot_cpu_data.vendor )
         {
 #ifdef CONFIG_INTEL
         case X86_VENDOR_INTEL:
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Tue Mar 03 06:23:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 06:23:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244558.1544006 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxJAS-0005Ks-8R; Tue, 03 Mar 2026 06:23:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244558.1544006; Tue, 03 Mar 2026 06: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 1vxJAS-0005Kk-3Q; Tue, 03 Mar 2026 06:23:40 +0000
Received: by outflank-mailman (input) for mailman id 1244558;
 Tue, 03 Mar 2026 06: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=uw6b=BD=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1vxJAQ-0005Ke-DN
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 06:23:39 +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 804bfee5-16c9-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Mar 2026 07:23:33 +0100 (CET)
Received: from pps.filterd (m0384717.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 6234U97U3271727
 for <xen-devel@lists.xenproject.org>; Tue, 3 Mar 2026 06:23:31 GMT
Received: from ph7pr06cu001.outbound.protection.outlook.com
 (mail-westus3azon11010029.outbound.protection.outlook.com [52.101.201.29])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4cnrp1gjg9-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 06:23:31 +0000 (GMT)
Received: from BN0PR04CA0129.namprd04.prod.outlook.com (2603:10b6:408:ed::14)
 by SJ2PR16MB6249.namprd16.prod.outlook.com (2603:10b6:a03:584::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.15; Tue, 3 Mar
 2026 06:23:27 +0000
Received: from BN1PEPF00004685.namprd03.prod.outlook.com
 (2603:10b6:408:ed:cafe::9) by BN0PR04CA0129.outlook.office365.com
 (2603:10b6:408:ed::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.22 via Frontend Transport; Tue,
 3 Mar 2026 06:23:11 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 BN1PEPF00004685.mail.protection.outlook.com (10.167.243.86) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.16
 via Frontend Transport; Tue, 3 Mar 2026 06:23:26 +0000
Received: from pps.filterd (m0426315.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 6234Rh771461801
 for <xen-devel@lists.xenproject.org>; Tue, 3 Mar 2026 01:23:24 -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 4cmk4uakj9-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 01:23:24 -0500 (EST)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id xJA9vVhMbkQ6qxJAAvRcZW; Tue, 03 Mar 2026 06:23: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: 804bfee5-16c9-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=1LRWpccveiPINMTJncKdme8CBh1
	yL3XssSG6j2s783Q=; b=SEdZQOQsyKUVNdcPJiOONvdqqUSlSrnclbM0oJoX2VA
	6524D7+/Z0KrVLSki9XMas0TNigFwPlNygO5cHgkwa5hwGY3PFGs6Ce1EjbxNJ44
	kWmT+SZMoVzO2X3BC6DoPBqqoVPrUGw0t0zQdszozt7/UKkhyUcF9IODRvnNhQoH
	A4/dkI0NEzsS2AtfFkTEMfLnG/AAKqSTIu0/bXwBGWPfuvsZC6H85rJlhXlJPw9S
	3poE1BtCf2o1d6d/g2W48NYHsvp5xJ27c3W0sviorxrotT86T02afK35LT7/h21m
	S3/gfJ5PXTs367DLOBrg7b4FO073msfX4I4bHN2uABA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Q9r/3UZNnrjNbK1vbIhL2jOKK8ObjdWn0Y4IXI9ZbxPZygCEmo+6A4wt99JNUmf+JYTSwmBUuokSjhgz0mhWprV+i8uHbmPhQTHXF3wX0tbQ/8vsrZEyIxbrO0sMpESdZBWU8I+Z+QyJhNZoU8yRd3U0V4EjjchNvIHhRJxCw+hzApJxr3IFDMf4R5RkWtCqUyFWsOq5jT2gjWvAN+AX1e+Dv3ocgPYF0pGX/s/JlWmIwh8YnGqz4iGQyvlz3yHlN0lc4CojyLokMO9YlSD/yd8YRyDvs51jSJWNIG9TP4XsXDN+vXbWj+e0Ph8NKmwdMh67aXm26mPt+erZTPYzig==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1LRWpccveiPINMTJncKdme8CBh1yL3XssSG6j2s783Q=;
 b=MHZ2rHg1I4GxHocSGd/Fa7sGxGM/u6WUicJ3D+L3g03PgJXAwtS+/OA/kREQNLv577bW/NjmrDAuv7B93MgjXdDyZAo8n8YXLdtOPybFyKMkie7BVJVwFMna6xebsyUnL2T2Hpa9wPPORAWj1PwLKKJXT3ktP0u69InZ9QTxCuQfjJX/fplXkjgqNoBeo5CG0iaFbvUWEBeQd9Cf10RkP/buTDadpyi2Ypa73nB9XMwjs/Q8aRSEa0dc8PRoq0DR7ee914dK9uVZYgwXBvyUn7EvHP+JOPg6reHIjVpeSP14Q6xuk6eCd4/8Zvc9tplHgEiym/hLw28fYOy0mtDrDQ==
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=1LRWpccveiPINMTJncKdme8CBh1yL3XssSG6j2s783Q=;
 b=A1jAwvscdRgWqQRM7ycE4/sxAo9iDOTD0Z450YaVvi30hM4XRNUbePHS+r1O36ggAXbRwlDvrhIMeIbC7k0T6/BnUPBYBs6ujtjaFoe/vY7QivbJ82UUumRFu3v++udPKiDT94hMciiydvJl445JG2WL5o9KAfY/FfdJLDsyC/o=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=1LRWpccveiPINMTJncKdme8CBh1yL3XssSG6j2s783Q=; b=ozIEP8gCBNRS
	vSKtE878JtQM7SmOSoNzECeCSeAFlgC+Gb0BBTVBeuCjYgC23T4FxGqipzg2ail5
	v3ykUKZEfl5xxSudf4252d+RkPFRnsDSsPmbt2AQZjO//irb7VX1G2fJO7qYXxsy
	afk6jfe89TUeI5S9xPFKz3Fed1vuVv+Y/p59zW3VKc33FxIg2dJFyzn0zeZKbizD
	zY2h0IVWqZ8m9I4LK4QAikFL+vaAzJRtXfhoPU2B1J6y3t2wapkeECPrTuJl8Bu9
	JJkHwhXVgMGQJ+NYFrn6Inj8M9A1Aa2BmMoqYrhE07UOWLcrG9txVw8/IiYa1Swm
	LWn4Xw5PGQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=1LRWpccveiPINMTJncKd
	me8CBh1yL3XssSG6j2s783Q=; b=Ifq0aaI0q3R4qrB9y5l32amdMI7GeftkzkBg
	In92+tXXd0okEc4RyTa6tMePQxAOvOY7oLAje8utCiO4EfBXRVpQyKbCU0bsD234
	UPbWY1dpASS3y3KTfs8IaDoLPnRXZ6n8oudGJaFtS37VxoQsWsUA7XrWWNNn2R8e
	+F1DWkZX4tLtTa9VbEcE34IE6UaYKySV2hFEnJ8WqitspeBITCP1bxzetuHYNO0k
	k8uSssMSseDWuwOrAv8DwgfJxIB+69LYiOYD8WMgFuj35Zv5T0RhfjFZ2J0dReSo
	tzg3IdcYFg4B7ezVJQhg7ibBFhtSR2sTrSc8NZw8W+uoooHeJw==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: xJA9vVhMbkQ6qxJAAvRcZW
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Mon, 2 Mar 2026 22:23:21 -0800
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: dmukhin@ford.com, xen-devel@lists.xenproject.org,
        andrew.cooper3@citrix.com, jbeulich@suse.com, julien@xen.org,
        michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org
Subject: Re: [PATCH v5] xen/domain: introduce DOMID_ANY
Message-ID: <aaZ+WZq+qTYaW+Sh@kraken>
References: <20260205235126.3764953-1-dmukhin@ford.com>
 <aaWd2d8yzU-mQ6Ub@l14>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <aaWd2d8yzU-mQ6Ub@l14>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-02_05,2026-03-03_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 lowpriorityscore=0 suspectscore=0 bulkscore=0 spamscore=0 phishscore=0
 malwarescore=0 adultscore=0 classifier=typeunknown authscore=0 authtc=
 authcc= route=outbound adjust=0 reason=mlx scancount=1
 engine=8.22.0-2602130000 definitions=main-2603030041
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004685:EE_|SJ2PR16MB6249:EE_
X-MS-Office365-Filtering-Correlation-Id: 9447569c-685f-40b8-57af-08de78ed60fb
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:
	X4l1qC6068PLzAYQIZCFaJqZrHrNE3pj/ACiUyJmHFqFWxCIBW/4l+H75TeStepUTOhe5vZBgtfXw77lyePEqLlr8t/li5N13T0YiflE28ZKuxSX35dvTxt8dL6Umy7GOaFZPi8bWwlgxPKpDVn3CvkRpGOpJKEbOU1vMjaZ+8HOrCV1MbWtS2kvYr1goM4/Oj+qWlOXnm68UemFGa45ZooUc0oc69ceFitc0rM51LtC+uzBSrrcoPR1lvhi0+LEAkWvkyh7nZzx0u9N6QBBPm843dEvQLdd5mcIo0tneDRmCOUssiW2alejcgY6CpQ3pM8A0ISxWJEusQtDtkl2LZ8Q5Pm1VUfAjCxa+H7C1rKlqUzA+2sZv08PZiR5hG6G3A/8YXHUrxxMqG1oS+5meEOcp9OzOgYytZ31iiXxyM2Ijoa8YEEsb26G2z8BPwC6EeimViOsKzfm26MBXUCH37LQK/6G5cvx1DBQC98m2r8BtjfCQ5MImmnoUBlxAzFaZZT12dqx4k7VgRiyAahIeiDt9qhEUOBpNF+Pdclqt5KN8VU3rkxW7w0WycgwffzQh6VSk6StLZGlhbYoY0HGTJiCoCusTrqZ4X18HlCi3Y44Uoue/dzn/j3KSeY8xhb8lroZD7POuown/5UausC/RevS+d5zbtMsspFKMQ8gettbfKtoNPJHK5nWvjbQn2JsiznKCkJZ/zlmSibQ18yuL4v8GSn0jrx56rl/ELtHAxsIcoWQlHBa44aGoVfcot9Dt+1mZsYfv4T9syLwWz7D6AeG4J/ntXEaNf5h/H5jNC+oD1WVWyL6Rk49vNin0VmKCfPq+wnjyxkbYUKASL/VWQ==
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ZVQNJxwZXIuu84crdOq/KWVJns9hJtH63bi42/87rysQCF9HKg985Bv7E2+3n8ap8/lvC15dEtJjPhuHxH9munT8Tl7GNh0rpHGSqavnLJFJ047PoAK8a7j86HIMniOHi6dsuUlBOV1yi6IkX4F7x7z7xYruWPekOMdXYV7T8AJk0mfRRUXt58UeEbxDFfj/J1trg/JWRVOD+8ejMmJ8jF62BrW39yst6fIzcgsHyGCCQQ2ukjB1PVrCaiF5VurOcdgfAoT9tD5TQty+ycrerzr6a6kudMbcSrmcW7RB9/52+APEegDRa+/nY6FHZqkl9E7HBOfIBE94BwyPWB+e99SJ6Q6xbsHWoY23hDY7caesN7CmyYyzLiEQnqQsZ4zAtlol8vGZl/vrIYTZfZRYs6x24G8l6w26eW/0eYPjv5Jog0FuHlOBRcWLp72p3JQW
X-Exchange-RoutingPolicyChecked:
	sZnk/ysg/8r1+1QgTSr9nZSYPLgFJLhKAWiBFHtNTeMWnWhXvxuurWFUVC4JcynwpjFlRh86pWFGFF7vZ3+A5sFgR3RwxD74NjYONhcA2fGspGHqBXg6/RSqUKWRoTRHrkFDMcahOSmlZOEC7KovcHsIOXnRu0HP+KBnQwB9LMF5nUTQIh2UTc7vX8BD0/vcAdyAciJlT72SAzCN9F+R290xiOvxQ1M1eU7jtUNazsXixAgcAB82NOCeFtDsPLqlgfowwHkeIvcWi9/8GQTJE2bg0Z91SbmFMhdf2USmJkpckQs/RsbgF0yxVKyoJz5+RI1qwqjRlV/IvwpMOFUVpg==
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	Jvajp++cMlKGw2ATDwk35zlrXl3ZKePFXiukraSevjhej6uHfvOsMq4RJ6+IZvjUpip/H2tK/yzsCvbWSyLvVvGRqJt5Yd/4YF1sBFGeGcRSyORaoEnN8vs/6EwiRLTxFuMPCTQGYJX6k+nMcy4epLny/R+QjbTvRlEqJFt5I1LTZIHSbLNjo+n2KtiWHf3KkI1qO0q4p5DxVfuLbknb9hdHfP1DO+wi2jsn7mXnJJEIknBCSPGHvBWdb6emBCxSIuEvnMKLOAalZ7WVKPXif/Aq18SxtvVnWzqJ+tLE83rWHUellDsv42TUYo8eJreSufbX69K40zu4RBQ5sklDBGattD1iF+1CheX76m5dGcbjEWJnAv5obSyp3/o6Icx9+RK3JOzTpeAz8zYeTl9AC3hnBXVJez38R02lhbSd5of04vP1s7tn1ZCiMq4TOxWPP8LV9ECOYsSRvKwVuRoPaJtKBEEnAsejfiL63in+GVibDqJ39YgLkoEhGKE8UMBVHFNxQBkzmTEAZSnEJwXNMKhd14WnEUnzto2RO6VtHIIiu0yT/iAZ9UclHxbebIxhRgzz3FlVUbZg0IqC9nvvzRK5WPRhIKuvm104PCLHy8JcossCtDCyyEWBOR/OeOxL
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2026 06:23:26.1824
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9447569c-685f-40b8-57af-08de78ed60fb
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:
	BN1PEPF00004685.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR16MB6249
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzAzMDA0MiBTYWx0ZWRfX76OeBdO3cmm6
 NjsZAAkryQm9VdaA4KF3ALVd1wERrxGd241i76cmuwIZNjknlMxu//ihShWqrRirhPRR4837sQs
 RqVe9XoNopU+GmsOwGtF7q3/w8NQRB6g/ZVMnKeZQRJLPfKZVWwp8IAiGrkJorZ2mxftE/OkC/J
 6G7jiudAhaN8O0xk5bVDjfWa/GjzWzHwX1q3u6xCblm1XaVCapCOA0aEi/thY1wBQT67dsvcYPK
 vNRkrLgZNMrRtCT+NUrNOnPhhuGcbAEjm0XpdjTe7JTwwkcEqmCY5g4Qr8ALFbxI3cA+BwFn1A9
 6vKpBLD2hJoX0u2Y+3gBBkZFYi6Ob00Njdnivgt3GO8sy8yDGye6ikBWinskcgDlfemntd5spf9
 od4YbKgaHt+ZZdzWKAQHsyjtS84qA68WwuWOKlmYTsuN/cpmOHPEv4u85ZhsS46Nu2gGHhjalA0
 tlr0DX5VH9FfvnOhGWg==
X-Authority-Analysis: v=2.4 cv=abdsXBot c=1 sm=1 tr=0 ts=69a67e63 cx=c_pps
 a=FnNH6Hr+id3EzXqhVuY+iw==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=Yq5XynenixoA:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=P_n1zlmtWsCQbjROFjcg:22 a=AHe91QgOk3R4nFVtG5At:22
 a=cbNQJ9GKAAAA:8 a=CEWtYdiJhwX6ivxE-jwA:9 a=CjuIK1q_8ugA:10
 a=DqJYxgmhk6moR-_7_KoZ:22
X-Proofpoint-GUID: BRqJ5tKpvk3Aeva-YQOv7dGD4uoi9XEu
X-Proofpoint-ORIG-GUID: BRqJ5tKpvk3Aeva-YQOv7dGD4uoi9XEu
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-02_05,2026-03-03_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 clxscore=1015
 lowpriorityscore=0 spamscore=0 bulkscore=0 suspectscore=0 impostorscore=0
 malwarescore=0 adultscore=0 phishscore=0 priorityscore=1501
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603030042

On Mon, Mar 02, 2026 at 02:25:33PM +0000, Anthony PERARD wrote:
> On Thu, Feb 05, 2026 at 03:51:26PM -0800, dmukhin@ford.com wrote:
> > diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_create.c
> > index bfc9149096a3..714e71441498 100644
> > --- a/tools/libs/light/libxl_create.c
> > +++ b/tools/libs/light/libxl_create.c
> > @@ -676,15 +676,14 @@ int libxl__domain_make(libxl__gc *gc, libxl_domain_config *d_config,
> >                  if (ret < 0)
> >                      break;
> >  
> > -                v &= DOMID_MASK;
> > -                if (!libxl_domid_valid_guest(v))
> > -                    continue;
> > -
> > -                local_domid = v;
> > +                local_domid = v & DOMID_MASK;
> >              } else {
> >                  local_domid = info->domid; /* May not be valid */
> >              }
> >  
> > +            if (!libxl_domid_valid_guest(local_domid))
> > +                local_domid = DOMID_ANY;
> 
> Well, that make it possible to have DOMID_ANY selected when a "random"
> domid was asked for, and this value is more likely than any other domid.
> I don't think it's wise to change that. The domid generated in the
> random case was already valid, no need to check again.
> 
> Coud you move the new validity check into the case where domid isn't
> "random" or introduce a new case in the if/else chain ?
> (something like that for the second option: if (domid==random) elif
> (domid.is_valid) else (use domid))


Will do, thanks.

--
Denis


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 10:19:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 10:19:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244622.1544032 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxMqF-0006tg-F8; Tue, 03 Mar 2026 10:19:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244622.1544032; Tue, 03 Mar 2026 10:19:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxMqF-0006tY-BF; Tue, 03 Mar 2026 10:19:03 +0000
Received: by outflank-mailman (input) for mailman id 1244622;
 Tue, 03 Mar 2026 10:19: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=7yHR=BD=bounce.vates.tech=bounce-md_30504962.69a6b591.v1-df24cb92e8e74cd2b1688990cf33efc8@srs-se1.protection.inumbo.net>)
 id 1vxMqE-0006tS-FP
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 10:19:02 +0000
Received: from mail178-23.suw51.mandrillapp.com
 (mail178-23.suw51.mandrillapp.com [198.2.178.23])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6428ef9a-16ea-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Mar 2026 11:18:59 +0100 (CET)
Received: from pmta13.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail178-23.suw51.mandrillapp.com (Mailchimp) with ESMTP id
 4fQBbj5zSXz35hTcb
 for <xen-devel@lists.xenproject.org>; Tue,  3 Mar 2026 10:18:57 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 df24cb92e8e74cd2b1688990cf33efc8; Tue, 03 Mar 2026 10:18:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6428ef9a-16ea-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1772533137; x=1772803137;
	bh=gY7bo8n2Ji8RCSj9PuRMRRI6asnxRBgmrksWWb7Qm5M=;
	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=bLUGhutOM0yp3gtdBy0F2pyGsNrguMuxltwwlZVuRv0RJUyxjDdswWkk/44XuPaGX
	 axIPAbYtq2uQEQPNdYuCKk091q6cQ20Q6LGyYwBFxtnJRkamcXZX+ZN0ISdM/4viYS
	 ACMg859JKCpegVVewF1CC2fHb4uhGVnWhNkzpxkr2UemRmJ+PkijJt9fMxzsM9uQF4
	 nvkZINBJ3JLoWkq3ZGbUwyaNgIYAAcrt+UDuLdOK1UV6F15u3QENGEjL9II6EYEMac
	 YCZ3I5+xrVsuwnZlw6+7kj1IqzBD1bRBzsWSVEH4pt/RYNwM7qXRv5bdXqe+NvM8dk
	 eaeCVqsy0OgzA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1772533137; x=1772793637; i=teddy.astie@vates.tech;
	bh=gY7bo8n2Ji8RCSj9PuRMRRI6asnxRBgmrksWWb7Qm5M=;
	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=BqNGpWNYyPJAtaQK2hFF+Bn3Xl863tFHM8xe8jMqq1SjcHLtZmBfekDm2XF9I+E+H
	 AGuEoR6W2QElwrpKoErkbh/LQKxzHs1fJVb7JebsYeznQTkh5YmiPqUbrSU/9gD7UI
	 l/yGcxCj+dgWuDeyRL5Es4gQiHgDAMIbGq7lz049hAJHA/1O3d8GoVLTTHibyEayjr
	 +KAqXS3PI+OQDT1bVRoFBw6h+Y2SKeOEbDflAwBSIGvHklxvczTjqcfd5qOx47AZp0
	 cM2r23ZhDKBRKjX9BWKp6WUASZXWu3xAa4YBvjdJ5of/oY1iPh9kCha3syePPaAHvY
	 pUwH/gfxNg8Nw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20x86/ucode:=20Support=20discrete=20modules=20being=20CPIO=20archives?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1772533136794
Message-Id: <d1ba9d04-bba1-4c0d-be14-0201cc056aa2@vates.tech>
To: "Andrew Cooper" <andrew.cooper3@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>
Cc: "Jan Beulich" <JBeulich@suse.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
References: <20260223185054.3598305-1-andrew.cooper3@citrix.com>
In-Reply-To: <20260223185054.3598305-1-andrew.cooper3@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.df24cb92e8e74cd2b1688990cf33efc8?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260303:md
Date: Tue, 03 Mar 2026 10:18:57 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 23/02/2026 =C3=A0 19:52, Andrew Cooper a =C3=A9crit=C2=A0:
> Multiple downstream distros have tried passing discrete CPIO archives and
> tripped over this not working.  It turns out to be easy to support, so do=
 so.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Tested-by: Teddy Astie <teddy.astie@vates.tech>

> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> CC: Teddy Astie <teddy.astie@vates.tech>
> 
> v2:
>   * Docs update too.
>   * Set opt_scan in early_microcode_load() so microcode_init_cache() oper=
ates
>     properly
> ---
>   CHANGELOG.md                      |  1 +
>   docs/misc/xen-command-line.pandoc | 19 ++++++++-----------
>   xen/arch/x86/cpu/microcode/core.c | 20 +++++++++++++++++++-
>   3 files changed, 28 insertions(+), 12 deletions(-)
> 
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index 18f3d10f20d2..c191e504aba9 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -13,6 +13,7 @@ The format is based on [Keep a Changelog](https://keepa=
changelog.com/en/1.0.0/)
>      - Support for Bus Lock Threshold on AMD Zen5 and later CPUs, used by=
 Xen to
>        mitigate (by rate-limiting) the system wide impact of an HVM guest
>        misusing atomic instructions.
> +   - Support for CPIO microcode in discrete multiboot modules.
>   
>   ### Removed
>    - On x86:
> diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-li=
ne.pandoc
> index c1f2def9f99c..ebdca007d26b 100644
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -2764,23 +2764,20 @@ Controls for CPU microcode loading, available whe=
n `CONFIG_MICROCODE_LOADING`
>   is enabled.
>   
>   In order to load microcode at boot, Xen needs to find a suitable update
> -amongst the modules provided by the bootloader.  Two kinds of microcode =
update
> -are supported:
> +amongst the modules provided by the bootloader.  Two formats are support=
ed:
>   
>    1. Raw microcode containers.  The format of the container is CPU vendo=
r
>       specific.
>   
> - 2. CPIO archive.  This is Linux's preferred mechanism, and involves hav=
ing
> -    the raw containers expressed as files
> + 2. CPIO archive, which involves having the raw containers expressed as =
files
>       (e.g. `kernel/x86/microcode/{GenuineIntel,AuthenticAMD}.bin`) in a =
CPIO
> -    archive, typically prepended to the initrd.
> +    archive.  Linux commonly prepends this to the initrd.
>   
> -The `<integer>` and `scan=3D<bool>` options are mutually exclusive and s=
elect
> -between these two options.  Further restrictions exist for booting xen.e=
fi
> -(see below).
> +The `<integer>` and `scan=3D<bool>` options are mutually exclusive and w=
ork as
> +follows.  Further restrictions exist for booting xen.efi (see below).
>   
> - *  The `<integer>` option nominates a specific multiboot module as a ra=
w
> -    container (option 1 above).  Valid options start from 1 (module 0 is
> + *  The `<integer>` option nominates a specific multiboot module as cont=
aining
> +    microcode in either format.  Valid options start from 1 (module 0 is
>       always the dom0 kernel).  A negative number may be used, and will
>       back-reference from the end of the module list.  i.e. `ucode=3D-1` =
will
>       nominate the final multiboot module.
> @@ -2794,7 +2791,7 @@ When booting xen.efi natively, the concept of multi=
boot modules doesn't exist.
>   Instead:
>   
>    *  In the [EFI configuration file](efi.html), `ucode=3D<filename>` can=
 be used
> -    to identify a file as a raw container (option 1 above).  Use of this
> +    to identify a file as containing microcode in either format.  Use of=
 this
>       mechanism will disable both `<integer>` and `scan=3D`.
>   
>    *  If `ucode=3D<filename>` in the EFI configuration file is not used, =
it is
> diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microco=
de/core.c
> index ea0b35c4991d..9b8d1e09cb98 100644
> --- a/xen/arch/x86/cpu/microcode/core.c
> +++ b/xen/arch/x86/cpu/microcode/core.c
> @@ -767,6 +767,7 @@ static int __init early_microcode_load(struct boot_in=
fo *bi)
>       void *data =3D NULL;
>       size_t size;
>       const struct microcode_patch *patch;
> +    struct cpio_data cd;
>       int idx =3D opt_mod_idx;
>       int rc;
>   
> @@ -783,7 +784,6 @@ static int __init early_microcode_load(struct boot_in=
fo *bi)
>           for ( idx =3D 0; idx < bi->nr_modules; ++idx )
>           {
>               const struct boot_module *bm =3D &bi->mods[idx];
> -            struct cpio_data cd;
>   
>               /* Search anything unclaimed or likely to be a CPIO archive=
. */
>               if ( bm->kind !=3D BOOTMOD_UNKNOWN && bm->kind !=3D BOOTMOD=
_RAMDISK )
> @@ -851,6 +851,24 @@ static int __init early_microcode_load(struct boot_i=
nfo *bi)
>                      idx, size);
>               return -ENODEV;
>           }
> +
> +        /*
> +         * If this blob appears to be a CPIO archive, try interpreting i=
t as
> +         * one.  Otherwise treat it as a raw vendor blob.
> +         */
> +        cd =3D find_cpio_data(ucode_ops.cpio_path, data, size);
> +        if ( cd.data )
> +        {
> +            data =3D cd.data;
> +            size =3D cd.size;
> +
> +            /*
> +             * (Ab)use opt_scan to inform microcode_init_cache() that
> +             * early_mod_idx refers to a CPIO archive.
> +             */
> +            opt_scan =3D true;
> +        }
> +
>           goto found;
>       }
>   
> 
> base-commit: 5eb84d6c992cf4e81936872c441b649057947442



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Tue Mar 03 10:36:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 10:36:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244636.1544042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxN75-0001A5-Pf; Tue, 03 Mar 2026 10:36:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244636.1544042; Tue, 03 Mar 2026 10:36:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxN75-00019y-Mn; Tue, 03 Mar 2026 10:36:27 +0000
Received: by outflank-mailman (input) for mailman id 1244636;
 Tue, 03 Mar 2026 10: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=JRO9=BD=bounce.vates.tech=bounce-md_30504962.69a6b9a7.v1-8d3d45f8eee04d98930e521723555683@srs-se1.protection.inumbo.net>)
 id 1vxN74-00019c-PO
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 10:36:26 +0000
Received: from mail178-23.suw51.mandrillapp.com
 (mail178-23.suw51.mandrillapp.com [198.2.178.23])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d3a96872-16ec-11f1-b164-2bf370ae4941;
 Tue, 03 Mar 2026 11:36:25 +0100 (CET)
Received: from pmta13.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail178-23.suw51.mandrillapp.com (Mailchimp) with ESMTP id
 4fQBzq5d3Vz35hTbg
 for <xen-devel@lists.xenproject.org>; Tue,  3 Mar 2026 10:36:23 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 8d3d45f8eee04d98930e521723555683; Tue, 03 Mar 2026 10:36: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: d3a96872-16ec-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1772534183; x=1772804183;
	bh=d+Gf5ULgHW5IJhmRmxNvkZtOOex1lueb4vEqeJbOAEo=;
	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=0LnmLmxtqNLtQU25CztmGHzOy1A6Yvbs7ImxTsfJ3C360s/mp5hb3EpC4QHjlwwnO
	 lE0vVXOj+olkoAoM2oGjMe1qjxk793Uu1JHKvjj4UIkAEd6ZD5gc8oM9VcSDS5BWlk
	 ctTMFney1cXd5rcFr25GXHXL2y9kZN9VEeh0SFbo0dNePFRw4eKmzkNvrl9xBeThs/
	 36N4kVCIGZNeA3Am57hAUd5JcIHM7BXJ1Yg2A8E609hpctjzs7rxIwYnDHEmmyEs47
	 j+Avq3b8k+morkbr4oYoCp3IJSqrg3V9wn53kYQUY+IRPjZknitrcF8t7A3RAh8Vvk
	 EURZcwfKEB8fA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1772534183; x=1772794683; i=teddy.astie@vates.tech;
	bh=d+Gf5ULgHW5IJhmRmxNvkZtOOex1lueb4vEqeJbOAEo=;
	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=w8FX3NsIaVATAV2a/zLFRwUN5ztoAG/aLW6RxscDgWf+SFl/oBu4J/C7kfFIUD3mJ
	 UCtRKybt08TojYaEFUwb0+hFofMjB/Q98zJMlIettxtnschstLZXyAbKvv+G2UPf/n
	 NY8h+iKKMmEd6eomkxaYlceUynLYmwyxmlnplevoHEWMMBlvDbSvn06bB85l4VjXuW
	 tP5OWOjyZNmBs2/YjnpeS3ybwX0bRWpez+CBqM9+/SHQuGEHdXgx5A7py80HswL1aR
	 0cPdlSUJYx2lNA0TrXgcQ4StDKgRl2hbhmCwEDGzs2WP5F+YXnaESHlefr/2lpVp+U
	 p0FNd5jngJahw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v8=201/2]=20libxc:=20Report=20consistent=20errors=20in=20xc=5Fresource=5Fop?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1772534183074
Message-Id: <effebb3c-fc3c-4f6f-a3a5-f59e7d982ab5@vates.tech>
To: "Anthony PERARD" <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, "Juergen Gross" <jgross@suse.com>
References: <ec92e54a493a16f5bc085738e943b3778c3a0231.1772211384.git.teddy.astie@vates.tech> <aaWo9FfgQMYvy_2I@l14>
In-Reply-To: <aaWo9FfgQMYvy_2I@l14>
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.8d3d45f8eee04d98930e521723555683?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260303:md
Date: Tue, 03 Mar 2026 10:36:23 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 02/03/2026 =C3=A0 16:14, Anthony PERARD a =C3=A9crit=C2=A0:
> On Fri, Feb 27, 2026 at 05:00:05PM +0000, Teddy Astie wrote:
>> xc_report_op doesn't update errno in some error conditions.
>> Make sure it reports -ENOMEM in out of memory errors and -EINVAL
>> in invalid usages errors.
>>
>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>> ---
>> v7: Introduced
>> v8: Use errno to report errors
>>
>>   tools/libs/ctrl/xc_resource.c | 11 +++++++++++
>>   1 file changed, 11 insertions(+)
>>
>> diff --git a/tools/libs/ctrl/xc_resource.c b/tools/libs/ctrl/xc_resource=
.c
>> index cb6a97202b..ac1524d1bd 100644
>> --- a/tools/libs/ctrl/xc_resource.c
>> +++ b/tools/libs/ctrl/xc_resource.c
>> @@ -28,7 +28,10 @@ static int xc_resource_op_one(xc_interface *xch, xc_r=
esource_op_t *op)
>>                                   XC_HYPERCALL_BUFFER_BOUNCE_BOTH);
>>   
>>       if ( xc_hypercall_bounce_pre(xch, entries) )
>> +    {
>> +        errno =3D ENOMEM;
> 
> Looking at xc_hypercall_bounce_pre(), it's looks like `errno` should
> already be set. On Linux, that would be `mmap()` or `madvise()` updating
> it.
> 
>>           return -1;
>> +    }
>>   
>>       platform_op.cmd =3D XENPF_resource_op;
>>       platform_op.u.resource_op.nr_entries =3D op->nr_entries;
>> @@ -54,11 +57,15 @@ static int xc_resource_op_multi(xc_interface *xch, u=
int32_t nr_ops, xc_resource_
>>       call_list =3D xc_hypercall_buffer_alloc(xch, call_list,
>>                                             sizeof(*call_list) * nr_ops)=
;
>>       if ( !call_list )
>> +    {
>> +        errno =3D ENOMEM;
> 
> Here, xc_hypercall_buffer_alloc() should already have updated `errno`.
> (It's a function called by xc_hypercall_bounce_pre(), so we've got the
> same culprit updating `errno`.)
> 
>>           return -1;
>> +    }
>>   
>>       platform_ops =3D xc_hypercall_buffer_array_create(xch, nr_ops);
>>       if ( !platform_ops )
>>       {
>> +        errno =3D ENOMEM;
> 
> Here, xc_hypercall_buffer_array_create() calls `calloc()` and `malloc()`
> which will update `errno`.
> 
>>           rc =3D -1;
>>           goto out;
>>       }
>> @@ -66,6 +73,7 @@ static int xc_resource_op_multi(xc_interface *xch, uin=
t32_t nr_ops, xc_resource_
>>       entries_list =3D xc_hypercall_buffer_array_create(xch, nr_ops);
>>       if ( !entries_list )
>>       {
>> +        errno =3D ENOMEM;
> 
> Same as above.
> 
>>           rc =3D -1;
>>           goto out;
>>       }
>> @@ -81,6 +89,7 @@ static int xc_resource_op_multi(xc_interface *xch, uin=
t32_t nr_ops, xc_resource_
>>                           platform_op, sizeof(xen_platform_op_t));
>>           if ( !platform_op )
>>           {
>> +            errno =3D ENOMEM;
> 
> With xc_hypercall_buffer_array_alloc(), `errno` is updated by `mmap` or
> `madvise`, like the first case.
> 
>>               rc =3D -1;
>>               goto out;
>>           }
>> @@ -90,6 +99,7 @@ static int xc_resource_op_multi(xc_interface *xch, uin=
t32_t nr_ops, xc_resource_
>>                      entries, entries_size);
>>           if ( !entries)
>>           {
>> +            errno =3D ENOMEM;
> 
> Same as above.
> 

Ok for all, though good to note that malloc ones are documented as 
platform specific behaviors (at least in malloc(3)).
But in our case (POSIX platforms), it's supposed to be the case.

>>               rc =3D -1;
>>               goto out;
>>           }
>> @@ -137,6 +147,7 @@ int xc_resource_op(xc_interface *xch, uint32_t nr_op=
s, xc_resource_op_t *ops)
>>       if ( nr_ops > 1 )
>>           return xc_resource_op_multi(xch, nr_ops, ops);
>>   
>> +    errno =3D EINVAL;
> 
> Ha! This one was missing indeed.
> 
> The patch description will need to be updated with all the chunk be one
> been dropped.
> 

Overall, it's

libxc: Report EINVAL on incorrect xc_resource_op usage

When passing 0 operations to xc_resource_op, a error is reported without 
setting errno appropriately.

> Thanks,
> 
> 
> --
> Anthony Perard | Vates XCP-ng Developer
> 
> XCP-ng & Xen Orchestra - Vates solutions
> 
> web: https://vates.tech
> 
> 



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Tue Mar 03 10:51:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 10:51:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244645.1544052 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxNLE-0003rw-0R; Tue, 03 Mar 2026 10:51:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244645.1544052; Tue, 03 Mar 2026 10:51:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxNLD-0003rp-TV; Tue, 03 Mar 2026 10:51:03 +0000
Received: by outflank-mailman (input) for mailman id 1244645;
 Tue, 03 Mar 2026 10:51: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=8rqN=BD=bounce.vates.tech=bounce-md_30504962.69a6bd13.v1-ea06e0878b7b46b086ed0fd05c3267ec@srs-se1.protection.inumbo.net>)
 id 1vxNLC-0003rj-Mg
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 10:51:02 +0000
Received: from mail178-23.suw51.mandrillapp.com
 (mail178-23.suw51.mandrillapp.com [198.2.178.23])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dd9c5c03-16ee-11f1-b164-2bf370ae4941;
 Tue, 03 Mar 2026 11:51:01 +0100 (CET)
Received: from pmta13.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail178-23.suw51.mandrillapp.com (Mailchimp) with ESMTP id
 4fQCJg2r81z35hTPt
 for <xen-devel@lists.xenproject.org>; Tue,  3 Mar 2026 10:50:59 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 ea06e0878b7b46b086ed0fd05c3267ec; Tue, 03 Mar 2026 10:50:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dd9c5c03-16ee-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1772535059; x=1772805059;
	bh=do0k8s2/i826y+Ow/hLp7T1yQxJuUBshAis7wonRKd4=;
	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=cTVP2bAnarTtOKyVMrsywXgynHkNhqbofs3Xa1jDXr4pefIs0y1T2yYT6N0wl0MxZ
	 6AjEfweHLtXDPlKK/drjBc7JpYltpctWvM6Mc5AtpGoS0LM69D/xnc/HWOSBrLdaaj
	 I5ioaEEYzcSu1h3KpH2zW66nJBTJ9W7QMgQ5soougpWz6A9ygsKLtqzg/q3vq/3Obo
	 yyROVdLbSO6P0kI1Z8B6ni761uCvj8FCsUwPMtF2bKJwcJgn4OfjJBj9UZGcIDA3Kq
	 UM/nU5dV3x8J6HAHoF6NLSR7Ul85xFeePWnDH9KUyvkfXyVbQTM1auvA2M3VHlLedk
	 Sg7M+SFxyzhMQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1772535059; x=1772795559; i=teddy.astie@vates.tech;
	bh=do0k8s2/i826y+Ow/hLp7T1yQxJuUBshAis7wonRKd4=;
	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=f9HmVMI56qfEH8anX9Gs8JrLjAkmkrabnl1tC01djOJrTZhbReeruAuo40AFe0wqf
	 Ja4gIIPrbzuPq4YAFOPT9bsoWr4hPDhFuennQQfoMl4wPdI4k7CVj1XC8RmiO5ESH1
	 2UjLfeo9s7k2wtPhq4UYS4sPmJA+48rgXKDMAGdPiUNAX0C0dej3s4WFRFH3ovogjE
	 5kn2OOIVSfHd9UZoNpoZHKqrXYQApi2GHgiqmMJxcuOIFC1AEQVyjLQYETex+gHNXt
	 VVsALa9mMhkp4YDbG4pdV39d+D/nNFjkaYb4ZgdybL/rpg0ug7tu17fwGRqoout0c8
	 TKtgntzKffBXQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v8=202/2]=20xenpm:=20Add=20get-core-temp=20subcommand?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1772535058591
Message-Id: <4c18413b-6296-4a30-bbec-561f7b802cbc@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, "Community Manager" <community.manager@xenproject.org>, "Anthony PERARD" <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <ec92e54a493a16f5bc085738e943b3778c3a0231.1772211384.git.teddy.astie@vates.tech> <aadf2e78f91f442964cc4e93c028b6b31fceb9eb.1772211384.git.teddy.astie@vates.tech> <7380cf63-e9ac-4df9-9633-c26f9de0027a@suse.com>
In-Reply-To: <7380cf63-e9ac-4df9-9633-c26f9de0027a@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.ea06e0878b7b46b086ed0fd05c3267ec?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260303:md
Date: Tue, 03 Mar 2026 10:50:59 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 02/03/2026 =C3=A0 17:52, Jan Beulich a =C3=A9crit=C2=A0:
> On 27.02.2026 18:00, Teddy Astie wrote:
>> @@ -1354,6 +1358,127 @@ void enable_turbo_mode(int argc, char *argv[])
>>                   errno, strerror(errno));
>>   }
>>   
>> +static int fetch_dts_temp(xc_interface *xch, uint32_t cpu, bool package=
, int *temp)
>> +{
>> +    xc_resource_entry_t entries[] =3D {
>> +        { .idx =3D package ? MSR_PACKAGE_THERM_STATUS : MSR_IA32_THERM_=
STATUS },
>> +        { .idx =3D MSR_TEMPERATURE_TARGET },
>> +    };
>> +    struct xc_resource_op ops =3D {
>> +        .cpu =3D cpu,
>> +        .entries =3D entries,
>> +        .nr_entries =3D ARRAY_SIZE(entries),
>> +    };
>> +    int tjmax;
>> +
>> +    int ret =3D xc_resource_op(xch, 1, &ops);
>> +
>> +    switch ( ret )
>> +    {
>> +    case 0:
>> +        /* This CPU isn't online or can't query this MSR */
>> +        return -1;
> 
> Further down at the callers of this function you assume errno is set when=
ever
> an error indication is returned. As xc_resource_op() didn't fail, you wil=
l
> need to synthesize an errno value here.
> 

ah yes indeed

>> +static void get_core_temp(int argc, char *argv[])
>> +{
>> +    int temp =3D -1, cpu =3D -1;
>> +    unsigned int socket;
>> +    bool has_data =3D false;
>> +
>> +    if ( argc > 0 )
>> +        parse_cpuid(argv[0], &cpu);
>> +
>> +    if ( cpu !=3D -1 )
>> +    {
>> +        if ( !fetch_dts_temp(xc_handle, cpu, false, &temp) )
>> +            printf("CPU%d: %d=C2=B0C\n", cpu, temp);
>> +        else
>> +        {
>> +            fprintf(stderr, "Unable to fetch temperature (%d - %s)\n",
>> +                    errno, strerror(errno));
>> +            printf("No data\n");
>> +            exit(ENODATA);
> 
> In how far is using errno values as arguments to exit() a useful thing? (=
I
> think you had it like this before, and I merely forgot to ask.) Yes, I ca=
n
> see the tool using a number of exit(EINVAL), but I don't understand those
> either. This way you can't even document easily what particular exit code=
s
> mean, as the errno values may vary across OSes.
> 

I reused the exit(...) pattern used in xenpm, but I'm also fine by 
returning simpler errors (like exit(1) or exit(EXIT_FAILURE)).

diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
index 981d3ec519..7d186c4837 100644
--- a/tools/misc/xenpm.c
+++ b/tools/misc/xenpm.c
@@ -1377,6 +1377,7 @@ static int fetch_dts_temp(xc_interface *xch, 
uint32_t cpu, bool package, int *te
      {
      case 0:
          /* This CPU isn't online or can't query this MSR */
+        errno =3D ENODATA;
          return -1;

      case 1:
@@ -1434,7 +1435,7 @@ static void get_core_temp(int argc, char *argv[])
              fprintf(stderr, "Unable to fetch temperature (%d - %s)\n",
                      errno, strerror(errno));
              printf("No data\n");
-            exit(ENODATA);
+            exit(EXIT_FAILURE);
          }
          return;
      }
@@ -1475,7 +1476,7 @@ static void get_core_temp(int argc, char *argv[])
      if ( !has_data )
      {
          printf("No data\n");
-        exit(ENODATA);
+        exit(EXIT_FAILURE);
      }
  }

> Jan
> 

Teddy


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Tue Mar 03 11:55:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 11:55:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244670.1544061 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxOKs-0002rY-DG; Tue, 03 Mar 2026 11:54:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244670.1544061; Tue, 03 Mar 2026 11:54:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxOKs-0002rR-AJ; Tue, 03 Mar 2026 11:54:46 +0000
Received: by outflank-mailman (input) for mailman id 1244670;
 Tue, 03 Mar 2026 11:54: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=yKVY=BD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxOKq-0002rG-SC
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 11:54:44 +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 bcb1983b-16f7-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Mar 2026 12:54:30 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4837907f535so48750925e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 03: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
 5b1f17b1804b1-483bd750607sm471415035e9.10.2026.03.03.03.54.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Mar 2026 03: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: bcb1983b-16f7-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772538870; x=1773143670; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AVFhxFutpF3studja/ZLtYGSJGAcd6yQ/oiyg+/5vvY=;
        b=Y8AYmANMcKsf3BCJSnpMhehi+UvSU9lfS0smZHkQRXteO5bzmft0OXMOvwdVLsCnmh
         sUJkTY5QKzqbRsDkkcvkp+bEywwHx+64jg0tWMbO8Pw5Mkxo1QSgknryCPPIyPbT4cOT
         vRd/a1D6Lvs26FxqCqjaId+knPnzseFPwgiLcCVfug1J3PUgM67b3n3JnYSdeEWGJWET
         4D0DTT3QLwQOtrc23jtRcfKNdclkx8UpI3IdZsHTQ+V1nDOxmog5adOhxY6/dszWrzt/
         ijEdtA9jDTn7acHsIrZ4QR3Sd3bsyp4ZBV6Sg2tuenqsF8rBOlr4XkmdI0mPG/puJQGf
         5zyA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772538870; x=1773143670;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AVFhxFutpF3studja/ZLtYGSJGAcd6yQ/oiyg+/5vvY=;
        b=H8zkMKdXqsGs8T4kfMKevdFojHKW9EUBi2lgD0Jf5lYUl1asmLnr1TTcVwq/K5FMUK
         Qlbtjp6Pjvron7ScmC/JRl9fIH0W1EZImD+L4l9vH7J92cVkHH8NBRMO6WHIfm7bVmZK
         4IbenqXJlDZVBszwN6UnXCAVfmCJsrpErJWN8cC9NETfi2VocBulpa3bgp/or6VOd9sT
         1ynXoKvaC23sWkN+y6nzZVxzvltgKIyJWHlrWEelMcTVEDiDDXDoNivkdz7xUDaav1fz
         Ha92v1K2ORj3ICpa2p8F3B/4mR16QEihxa5g06Sugrn181Mhxynu+cTkNjmPdC7xurK2
         b9DQ==
X-Forwarded-Encrypted: i=1; AJvYcCXdI6SKpNxMaUYPTT/BA1r9K6t1V+L5Daz8lhxAMj2MhjEjEzdqXhiN7+re1At4uqFNOVd4NrVxdOg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzZDWTiL1XvDFV++WN9G5JysEyuRvnrYL/mLYVG1MUSsPIsPl8T
	nxafZtXcjsPxwKf1uMBUg50t9rWHRuocam0Y84ImAlADr3HWC+bHJ9fHPB//v7AvlQ==
X-Gm-Gg: ATEYQzyyvetK1Y7ixcIptNjKiEgQrA4KMSnTR40Daq2aqZsluI9UK6UgD/ueBFrmjbz
	mZAKvHqDb3/ri8P9gzPTh4Md55Q7aqzo0NbHGsXkStRZnSobMv7Us69f4IiNhJhSeWp39ma6dVy
	Izjh04pDQiLzltAs+a4kGnvEoHBmMm0a4mFfWTzDG4OYKViPerIoLjzt6Qtpig+5rxq56UQf7U3
	bzOtOvrmjtwMdZTvf03ZxlCDpYY9m9PiRuuRBDTAgppPzdpkoDxCXzYuyk+78aYmBGZ4ueVQflE
	f0W9S+EL3XlwsXpHvmczteSeGEzQ2/JvI4muoqibk9k41tRP0nTmboPVWznG3jHskfacQ3oR7vf
	6GLxu3lXnvQnmw5rr4BHmmBNOTMbxpw0kDmlBkYc4DPKf+kGl5JR0BBgc/WZxenSNIfiHUQ2PTh
	uj9XdPxCV66pNE0oD1x6nHJKK25X5wb7Xcyr3YEvYcAIFeiIDq2gZIMbDJJR8PsStLjAWrR47VB
	QYxZk+x48B3FV8=
X-Received: by 2002:a05:600c:818e:b0:480:1b65:b741 with SMTP id 5b1f17b1804b1-483c9ba3aadmr290397015e9.15.1772538869902;
        Tue, 03 Mar 2026 03:54:29 -0800 (PST)
Message-ID: <d7419a76-4c9a-4741-b738-9a4bdbfb0dd0@suse.com>
Date: Tue, 3 Mar 2026 12:54:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 2/2] xenpm: Add get-core-temp subcommand
To: Teddy Astie <teddy.astie@vates.tech>,
 Anthony PERARD <anthony.perard@vates.tech>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 xen-devel@lists.xenproject.org
References: <ec92e54a493a16f5bc085738e943b3778c3a0231.1772211384.git.teddy.astie@vates.tech>
 <aadf2e78f91f442964cc4e93c028b6b31fceb9eb.1772211384.git.teddy.astie@vates.tech>
 <7380cf63-e9ac-4df9-9633-c26f9de0027a@suse.com>
 <4c18413b-6296-4a30-bbec-561f7b802cbc@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: <4c18413b-6296-4a30-bbec-561f7b802cbc@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03.03.2026 11:50, Teddy Astie wrote:
> Le 02/03/2026 à 17:52, Jan Beulich a écrit :
>> On 27.02.2026 18:00, Teddy Astie wrote:
>>> @@ -1354,6 +1358,127 @@ void enable_turbo_mode(int argc, char *argv[])
>>>                   errno, strerror(errno));
>>>   }
>>>   
>>> +static int fetch_dts_temp(xc_interface *xch, uint32_t cpu, bool package, int *temp)
>>> +{
>>> +    xc_resource_entry_t entries[] = {
>>> +        { .idx = package ? MSR_PACKAGE_THERM_STATUS : MSR_IA32_THERM_STATUS },
>>> +        { .idx = MSR_TEMPERATURE_TARGET },
>>> +    };
>>> +    struct xc_resource_op ops = {
>>> +        .cpu = cpu,
>>> +        .entries = entries,
>>> +        .nr_entries = ARRAY_SIZE(entries),
>>> +    };
>>> +    int tjmax;
>>> +
>>> +    int ret = xc_resource_op(xch, 1, &ops);
>>> +
>>> +    switch ( ret )
>>> +    {
>>> +    case 0:
>>> +        /* This CPU isn't online or can't query this MSR */
>>> +        return -1;
>>
>> Further down at the callers of this function you assume errno is set whenever
>> an error indication is returned. As xc_resource_op() didn't fail, you will
>> need to synthesize an errno value here.
>>
> 
> ah yes indeed
> 
>>> +static void get_core_temp(int argc, char *argv[])
>>> +{
>>> +    int temp = -1, cpu = -1;
>>> +    unsigned int socket;
>>> +    bool has_data = false;
>>> +
>>> +    if ( argc > 0 )
>>> +        parse_cpuid(argv[0], &cpu);
>>> +
>>> +    if ( cpu != -1 )
>>> +    {
>>> +        if ( !fetch_dts_temp(xc_handle, cpu, false, &temp) )
>>> +            printf("CPU%d: %d°C\n", cpu, temp);
>>> +        else
>>> +        {
>>> +            fprintf(stderr, "Unable to fetch temperature (%d - %s)\n",
>>> +                    errno, strerror(errno));
>>> +            printf("No data\n");
>>> +            exit(ENODATA);
>>
>> In how far is using errno values as arguments to exit() a useful thing? (I
>> think you had it like this before, and I merely forgot to ask.) Yes, I can
>> see the tool using a number of exit(EINVAL), but I don't understand those
>> either. This way you can't even document easily what particular exit codes
>> mean, as the errno values may vary across OSes.
>>
> 
> I reused the exit(...) pattern used in xenpm, but I'm also fine by 
> returning simpler errors (like exit(1) or exit(EXIT_FAILURE)).

Anthony, can you please suggest which one better fits the toolstack as a
whole?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 12:23:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 12:23:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244686.1544072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxOn1-0006rR-Os; Tue, 03 Mar 2026 12:23:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244686.1544072; Tue, 03 Mar 2026 12:23:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxOn1-0006rK-Lm; Tue, 03 Mar 2026 12:23:51 +0000
Received: by outflank-mailman (input) for mailman id 1244686;
 Tue, 03 Mar 2026 12:23: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=yKVY=BD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxOn0-0006rE-FV
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 12:23:50 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d0b6dbf6-16fb-11f1-b164-2bf370ae4941;
 Tue, 03 Mar 2026 13:23:42 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4833115090dso57890925e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 04:23: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-485135d4228sm18463455e9.30.2026.03.03.04.23.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Mar 2026 04:23: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: d0b6dbf6-16fb-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772540621; x=1773145421; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wrtzYQRA1AG3GXiJ2C5lpnR+bDdEvX3UQGRRP/xfbFE=;
        b=cve/GfX2nKmwCQmwjPD0xT6E4rzR2kK48Cd1uOAMwPcDhkNa7rueZ7Sj6nqVTJ0Vkd
         wgw/aCSCz3au9CXasx2D630mWxzV7NTHNv+APgIM/dNTthkMC/CbOqpHww744y9FUMFL
         qyR3R5BrcznIQ5YqUKXPCkRw9iDvMPBMbplh9N+vfxw0H+LqWBYhIcf5pa15u+WdeSWh
         lp5K6yZ2ymAuHQmVazEHKXR8Ep1mi0dHMJSFJeaRfgufJL/sJoJ850ZM7W8QvVc4aMFP
         he2Tcy++H8Y4bexWRleWIJ0fYyCUAw9dN23FXMF8vl8f910GmXMuKdbzObCat67+AJBt
         7s9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772540621; x=1773145421;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wrtzYQRA1AG3GXiJ2C5lpnR+bDdEvX3UQGRRP/xfbFE=;
        b=OAl9Xc0NRo/ZT7XFEibMIlYZslepKFwUXl2/Mu8NERIJKyHcGJA8tl3+AKrUQmXlXi
         Lr672TPmgvIREdqinIkkVJz11U+ksnNIvWyu8M/KXF6bcu3M//lM06ZBK8imoOfDxl2M
         dfQ5S30PeYZzvGKuXonGTbTj81NTOMl2ublEfV29q3qUFCRvT75uvcBRb+hrZPfpB+Zp
         tapcuZ2V5vQvvTzosg4EIktPJjTSRGeOSB6ltSNTfEdTTpYEX/6dFzRhDGrMjVXM8YzD
         11h8q3WL8SRRKCK23cqaOwtefGW/mr+IpreA0RsR2ATi1x7k0t4mo2VESv65J4ga5tla
         NXWw==
X-Forwarded-Encrypted: i=1; AJvYcCWxxl0z6+F1OU0KMEPWJUZekLK1g7ZE0hcgVZ4KBr9zNHxqdymAcvt9Yq6vtc+Nco9Ck2nl5my/qjU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxasKUhldeKE5TPw+PcfRH77Muct1tYVaeuhLz4mhO84yDlKJo1
	trTls6w0PujCpT+fuVX75tXaq8F/rf5bVbPPFloaC1JvIdyIESVmUZY0OH0oTDH4fg==
X-Gm-Gg: ATEYQzxSKP1Vs6yHx5ZZ40L2Fq6NZhNCN0JSkQYCn7liYPrEz2Ud7/wmUwX+BW0Bpwg
	iO7PU7LCdcok8qmgu9j1eha3U/rpDBOcGzZsToZE4p1YFQG+y2b/g71Ssh9dblGXk5iHWW7OieK
	OEyS0nQA+N2rQLu8zmUi7Fg5VqFM67vxmwazv0MD/TOM2QD3SOYUDr8h4gW7We5Xh3NQ0cb/A+X
	I3kktbW4Ct2gGlK8Ex99HLmo43LansirgOMAr0OuqRJgCyK5xTOMMURekulGxeXhKv7kCho/h3a
	MjfnoRDju8/qCB9+MKASOLn7Fd3kqb+23IHEiycxCm2kBNYSmTjikBVZutub17E3v1h2qIDfj9v
	ZyM39pcjUbdzJEN5mX+VTlHSEOUpYs6X84EFHlH5EeSfj88qjNHTUk4VRNmw3sGAslfx750rn9S
	50eNc/HP/Tb0f0fkunat1l29q9i3s/3H8VE+ATnXvI42+jki0Wr0ukFTTMCT6rPBUmp48F18DIV
	rysJi1vmJNJsUE=
X-Received: by 2002:a05:600c:3486:b0:480:3a72:524a with SMTP id 5b1f17b1804b1-483c9bed89emr316225055e9.19.1772540621422;
        Tue, 03 Mar 2026 04:23:41 -0800 (PST)
Message-ID: <4b67f8cb-43d4-4f18-b2b6-156e21330887@suse.com>
Date: Tue, 3 Mar 2026 13:23:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 01/14] xen/riscv: detect and store supported hypervisor
 CSR bits at boot
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
 <a17b6a117726904a9384dc7d9cc140672d3b0453.1772016457.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: <a17b6a117726904a9384dc7d9cc140672d3b0453.1772016457.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.02.2026 12:51, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/domain.c
> +++ b/xen/arch/riscv/domain.c
> @@ -2,9 +2,56 @@
>  
>  #include <xen/init.h>
>  #include <xen/mm.h>
> +#include <xen/sections.h>
>  #include <xen/sched.h>
>  #include <xen/vmap.h>
>  
> +#include <asm/cpufeature.h>
> +#include <asm/csr.h>
> +
> +struct csr_masks {
> +    register_t hedeleg;
> +    register_t henvcfg;
> +    register_t hideleg;
> +    register_t hstateen0;
> +
> +    struct {
> +        register_t hstateen0;
> +    } ro_one;
> +};
> +
> +static struct csr_masks __ro_after_init csr_masks;
> +
> +void __init init_csr_masks(void)
> +{
> +    /*
> +     * The mask specifies the bits that may be safely modified without
> +     * causing side effects.
> +     *
> +     * For example, registers such as henvcfg or hstateen0 contain WPRI
> +     * fields that must be preserved. Any write to the full register must
> +     * therefore retain the original values of those fields.
> +     */
> +#define INIT_CSR_MASK(csr, field, mask) do { \
> +        old = csr_read(CSR_##csr); \
> +        csr_write(CSR_##csr, (old & ~(mask)) | (mask)); \

I (now) agree csr_swap() can't be used here, but isn't the above

    old = csr_read_set(CSR_##csr, mask);

?

> +        csr_masks.field = csr_swap(CSR_##csr, old); \
> +    } while (0)
> +
> +    register_t old;

Since the macro uses the variable, this decl may better move up.

> +    INIT_CSR_MASK(HEDELEG, hedeleg, ULONG_MAX);
> +    INIT_CSR_MASK(HIDELEG, hideleg, ULONG_MAX);
> +
> +    INIT_CSR_MASK(HENVCFG, henvcfg, _UL(0xE0000003000000FF));

This raw hex number (also the other one below) isn't quite nice. Can we have
a #define for this, please? It doesn't need to live in a header file if it's
not going to be used anywhere else.

> +    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
> +    {
> +        INIT_CSR_MASK(HSTATEEN0, hstateen0, _UL(0xDE00000000000007));
> +        csr_masks.ro_one.hstateen0 = old;

What guarantees that only r/o-one bits are set in the incoming hstateen0? I
can't help thinking that to determine those bits you want to use
csr_read_clear() (or csr_clear()).

> +    }

#undef INIT_CSR_MASK

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 12:25:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 12:25:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244694.1544081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxOob-0007NW-1w; Tue, 03 Mar 2026 12:25:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244694.1544081; Tue, 03 Mar 2026 12: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 1vxOoa-0007NP-Va; Tue, 03 Mar 2026 12:25:28 +0000
Received: by outflank-mailman (input) for mailman id 1244694;
 Tue, 03 Mar 2026 12:25: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=yKVY=BD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxOoZ-0007N0-SX
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 12:25:27 +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 0e521b5b-16fc-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Mar 2026 13:25:25 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-439b611274bso1447805f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 04:25: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
 ffacd0b85a97d-439b59723fesm15659360f8f.38.2026.03.03.04.25.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Mar 2026 04:25: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: 0e521b5b-16fc-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772540725; x=1773145525; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=glQI9NyYmvZoatxQQXBPml8NKmzywG1lmIdrGzxSNlo=;
        b=AXF1LHHHyKrQQ93+vKbG5+9WJNVaHl8IyGXKPKCapPpalU5mF6v09wtShr3YIMQwIA
         Kyu8r9EUhQVDKDTZ3X4Vg97QFvwa2e2hvA/whFog9mXfebg5MNt7scQvaeS+xJMhB4uN
         8F3DV8iqPLwJwldrNHzOCUyKnmc7tj5EU3aTiJSKtvBoYDwFjzFprNb5auDGmqIGyd+Z
         DnqyoQZ0fBGsCHM55g2SXNkPczabfCLiAF5WQ6IZBr0DbRRDRDk3IuUMSMFdPsWdZrt+
         0wJgnJQDA58A+X1Je07C+XsBrvrwS9rJ6i9S/hN8N3ZQaubk53Y70kwYP/nNFsOUw5qi
         UptQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772540725; x=1773145525;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=glQI9NyYmvZoatxQQXBPml8NKmzywG1lmIdrGzxSNlo=;
        b=LfCbCVamSfxc6YRXvBwpDKfxjXKtDGuii6024srlPLMuaatp1cdZ4dyzwKo0L0Seny
         YTMwmU77UYV+TIVJCOuSHwDrZdmOL1RX8kFtUIV37co7izeyzy7FOdM1pmDjbCfmCadu
         dRVkEWhAAUjy19iBF0KB97Shjj7LKSmaRYAAmkOepgd+XT9RqtahAhCXLhM3sltL6s6v
         STsah4p4bFtrQBhpqhFbLN1pD3LnNOeIZtqVx6ehf/EjqHpOtG/fjzsE2w5z72vJkJIM
         8P0RqPn6mvqk0d7C39UEocn9HIghUUKnQH+/WX9ZWYzgKkMroGBh7Po7PtEd4OlIYDFi
         WYAg==
X-Forwarded-Encrypted: i=1; AJvYcCUTaxPwKPiythX5wB9XViJxWRmVkPU/ONBIMyrhkcsfSFWFJHQrYdxyKJGNAiGuiiW0kQk1q9BdXzk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwcgB9APoC9hYYbKfQVHSWUiMGMD05iPhym/ynvZRnQkSFNx0NV
	BJGQllOVYvALfc9w2zyDljV6RI0M1ba8Cfavc7ty0GPB111UqCYio/wk+knrKAZDLw==
X-Gm-Gg: ATEYQzxGS1Novu3vD0kxa1Up/qGqqXUPDjqu8r5ZsJKS1kmEO5Y8hsZEkDsIco6QiBT
	zSKv4vzKOJq4n0px49Dktw5Zd2ZI2Au/CFxGkxqnRb0qpK0Lho+rMbT2EOuLmPdWkAzWKEpR/gZ
	xaMb4K46Ke1ubMjSVvzKJC5/kBtxnOsiNNm+b1eNwsxQLqrbVp6ZpqF6wIGlkl7kWhN3JTfs0nV
	5GOxbiHCYovaZR4zWVmDejB4FCXR5NayeK0vP7Kbaf7x47/r3duVpWaQxxR6r1lWQT5Z3tyzROs
	e6ABiJbEp/w1FrgYefFcJa95SwA0EhqkuSHyLUDICdkS/1y/pl/VIiP6GzUU6kJHhE7XUUhmczK
	OIwzrL9SPVeH49Z/62urp/AZATQbUOcr0VMjidwYHPgmDpZqIFINaAMd3KC16i6ZVlobadVZjbA
	pg4KTELal18i8OnnPBRm5kzgw2X9RF4LNkxYL0T0S99QhMvutQfW5GG05cQ7fetQ4R+8uFI1v38
	bVQN8z2yZev+8Q=
X-Received: by 2002:a05:600c:8106:b0:47e:e8de:7420 with SMTP id 5b1f17b1804b1-483c9c1d4bamr255211005e9.22.1772540724801;
        Tue, 03 Mar 2026 04:25:24 -0800 (PST)
Message-ID: <1607bd00-99a3-4601-a995-e038b4e02d4a@suse.com>
Date: Tue, 3 Mar 2026 13:25:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 02/14] xen/riscv: implement vcpu_csr_init()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
 <9694ff5787d5f162581a16f0974ac9a55c538019.1772016457.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: <9694ff5787d5f162581a16f0974ac9a55c538019.1772016457.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.02.2026 12:51, Oleksii Kurochko wrote:
> Introduce vcpu_csr_init() to initialise hypervisor CSRs that control
> vCPU execution and virtualization behaviour before the vCPU is first
> scheduled.
> The function configures trap and interrupt delegation to VS-mode by
> setting the appropriate bits in the hedeleg and hideleg registers,
> initializes hstatus so that execution enters VS-mode when control is
> passed to the guest, and restricts guest access to hardware performance
> counters by initializing hcounteren, as unrestricted access would
> require additional handling in Xen.
> When the Smstateen and SSAIA extensions are available, access to AIA
> CSRs and IMSIC guest interrupt files is enabled by setting the
> corresponding bits in hstateen0, avoiding unnecessary traps into Xen
> (note that SVSLCT(Supervisor Virtual Select) name is used intead of
> CSRIND as OpenSBI uses such name and riscv_encoding.h is mostly based
> on it).
> If the Svpbmt extension is supported, the PBMTE bit is set in
> henvcfg to allow its use for VS-stage address translation. Guest
> access to the ENVCFG CSR is also enabled by setting ENVCFG bit in
> hstateen0, as a guest may need to control certain characteristics of
> the U-mode (VU-mode when V=1) execution environment.
> 
> For CSRs that may contain read-only bits (e.g. hedeleg, hideleg,
> hstateen0), to the written value a correspondent mask is applied to
> avoid divergence between the software state and the actual CSR
> contents.
> 
> As hstatus is not part of struct arch_vcpu (it already resides in
> struct cpu_user_regs), introduce vcpu_guest_cpu_user_regs() to provide
> a uniform way to access hstatus and other guest CPU user registers.
> 
> This establishes a consistent and well-defined initial CSR state for
> vCPUs prior to their first context switch.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Mar 03 12:48:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 12:48:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244709.1544091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxPB7-0002Cz-P4; Tue, 03 Mar 2026 12:48:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244709.1544091; Tue, 03 Mar 2026 12: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 1vxPB7-0002Cs-MY; Tue, 03 Mar 2026 12:48:45 +0000
Received: by outflank-mailman (input) for mailman id 1244709;
 Tue, 03 Mar 2026 12: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=BYu4=BD=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1vxPB6-0002Ck-0z
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 12:48:44 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4d6b52c3-16ff-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Mar 2026 13:48:41 +0100 (CET)
Received: from mail.zoho.com by mx.zohomail.com
 with SMTP id 1772542104120512.1902581757903;
 Tue, 3 Mar 2026 04:48: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: 4d6b52c3-16ff-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1772542111; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=kSootYNw6kLlF3qln49RAi0hJOcu5bDganrft/zuENJwNNugvywqjtfRLt6Ux44VSnt85UAMVlKNytgGax+AfNut9/7QZiFTyry/8RTeMjmIKjPMAUUZj2Us2wVGQtrGqTSZFVhqGYuzYFZEwwP3du8H/ZanbvEanJ0+hB+UC1I=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1772542111; 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=gzfEYy7bTKSUp73SM9YS+gSsfJ+9m4GvrnOgrRT6tQU=; 
	b=MjcdfKVw1PYICKdwW2GlcC5bKoy114/M/D+efHAIwIFD7tnIlNasY9uES9igeqiOgem4QMHBWBhiDZPJTYb9VGtt+Hdaq79qOEzhJtufbKk4eirkkmvoPE9Ira5TGn4PzIMU7qCpp/OcTm3e3+MCyYWmesUWboctjTGHI8Di/Ik=
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=1772542111;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Date:Date:From:From:To:To:Cc:Cc:Message-ID:In-Reply-To:References:Subject:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=gzfEYy7bTKSUp73SM9YS+gSsfJ+9m4GvrnOgrRT6tQU=;
	b=fiVA6q5eTqjiuj9ZP/aXxooQkAhzFECrenBzXXO5OL1OdlOMdE19JEHBVMhPFwam
	EfTOXEAUQhoYBaNAThZJ5KXOwdES9DQVwB3fs/0I6BLsWs0fu4L67S4bvwLx4VJFNbS
	lnrSVbf+1ZNL/Wz0pdC+5at58RwImOW8b/ipjlu8=
Date: Tue, 03 Mar 2026 07:48:23 -0500
From: Daniel Smith <dpsmith@apertussolutions.com>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?=22Roger_Pau_Monn=C3=A9=22?= <roger.pau@citrix.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	"Julien Grall" <julien@xen.org>,
	"Volodymyr Babchuk" <Volodymyr_Babchuk@epam.com>,
	"Bertrand Marquis" <bertrand.marquis@arm.com>,
	"Michal Orzel" <michal.orzel@amd.com>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	"Nicola Vetrini" <nicola.vetrini@bugseng.com>,
	"Xen-devel" <xen-devel@lists.xenproject.org>,
	"Christopher Clark" <christopher.w.clark@gmail.com>
Message-ID: <19cb3be119e.107e51fe338081.8287475850457408935@apertussolutions.com>
In-Reply-To: <aad02d36-5b26-4a59-ac67-99757fe13679@suse.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-4-andrew.cooper3@citrix.com> <aad02d36-5b26-4a59-ac67-99757fe13679@suse.com>
Subject: Re: [PATCH 03/12] xen/argo: Fix MISRA violations around function
 parameters
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Importance: Medium
User-Agent: Zoho Mail
X-Mailer: Zoho Mail


From: Jan Beulich <jbeulich@suse.com>
To: "Andrew Cooper"<andrew.cooper3@citrix.com>
Cc: "Roger Pau Monn=C3=A9"<roger.pau@citrix.com>, "Stefano Stabellini"<ssta=
bellini@kernel.org>, "Julien Grall"<julien@xen.org>, "Volodymyr Babchuk"<Vo=
lodymyr_Babchuk@epam.com>, "Bertrand Marquis"<bertrand.marquis@arm.com>, "M=
ichal Orzel"<michal.orzel@amd.com>, "consulting @ bugseng . com"<consulting=
@bugseng.com>, "Nicola Vetrini"<nicola.vetrini@bugseng.com>, "Xen-devel"<xe=
n-devel@lists.xenproject.org>, "Christopher Clark"<christopher.w.clark@gmai=
l.com>, "Daniel P. Smith"<dpsmith@apertussolutions.com>
Date: Mon, 23 Feb 2026 04:15:55 -0500
Subject: Re: [PATCH 03/12] xen/argo: Fix MISRA violations around function p=
arameters

 > On 20.02.2026 22:46, Andrew Cooper wrote:=20
 > > For the ARM build only, Eclair reports a R8.4 violation because do_arg=
o_op()=20
 > > cannot see its declaration.  This means that x86 is picking hypercall-=
defs.h=20
 > > up transitively while ARM is not.  Include xen/hypercall.h explicitly.=
=20
 > >=20
 > > Eclair also reports a R8.3 violation because of arg3 and arg4 differin=
g in=20
 > > name with a raw_ prefix.  Because hypercall-defs.h generates both do_a=
rgo_op()=20
 > > and compat_argo_op() from a single description, it's not possible to s=
imply=20
 > > rename to raw_ in the declaration, as that would force doing the same =
rename=20
 > > in compat_argo_op().=20
 > >=20
 > > In do_argo_op(), drop the split parameter handling, and perform the 32=
bit=20
 > > range check via an explicit cast.  While adjusting the surrounding log=
ic, drop=20
 > > unnecessary casts to void * for already pointer arguments in argo_prin=
tk().=20
 > >=20
 > > No functional change.=20
 > >=20
 > > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>=20
 > =20
 > Reviewed-by: Jan Beulich <jbeulich@suse.com>=20
 > =20

Reviewed-by: Daniel P. Smith <dpsmith@apertussolutions.com>



From xen-devel-bounces@lists.xenproject.org Tue Mar 03 13:20:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 13:20:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244729.1544101 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxPfx-0007Gf-5d; Tue, 03 Mar 2026 13:20:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244729.1544101; Tue, 03 Mar 2026 13:20:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxPfx-0007GY-2S; Tue, 03 Mar 2026 13:20:37 +0000
Received: by outflank-mailman (input) for mailman id 1244729;
 Tue, 03 Mar 2026 13:20: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=SHXM=BD=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vxPfv-0007GS-QU
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 13:20:35 +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 c21ca7d7-1703-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Mar 2026 14:20:33 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-65f812e0d93so8807671a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 05:20:33 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-65fac06e3fasm4361347a12.25.2026.03.03.05.20.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Mar 2026 05:20: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: c21ca7d7-1703-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772544033; x=1773148833; 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=IyHTfy4ChAtQUQKNdGEJw0gkZCQ6Cw6CCEdl2hNEQNA=;
        b=AkE0enH2jpCGAiIezcAWlmjP1muo09Fj1gwoPaIw1o7OOGeWvbhkFFZuv7aiZGGS+H
         pRTkgz6ISQeGgc9VTH0Try/SZc1yo5BQZNYDIcdlgsstCGd1KA++mCox2Nar3Xe0u+px
         YrRk1HA31l3b0MO5ggFEBDPixO+9QUe637eAAAxAQk17c86PA5HGvFZWYFv7f+ORTked
         SDLzFKjuMVQx9vjQ8PphioWq3sOWGw+HRntnSIOPwUm73JuM4pI46KuObqVY6MZW/aiy
         CEeAN3kGrvugOs2uYCD0hZzyiJWlBT96fE6UFQ54wU51QhTJCEbp1+0bxod9s7ntbygo
         Wcug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772544033; x=1773148833;
        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=IyHTfy4ChAtQUQKNdGEJw0gkZCQ6Cw6CCEdl2hNEQNA=;
        b=pXJxAGzPiDNFGj3xpZ4SM1DmtC1xTQlHfDrSzlBdaQZTiwEpGuYoU+RKZVySN+onfb
         fspYbfhhotsPjDVIMjNjb1LUYYsm5+hdMBb71vGBcmS7hxNov7bY01e//6kDv1PFQSyb
         Q5PF3Loh6jgGVVwaZUn8budU+QXDzoioD7r7tqOWonBE6xU8LWHaOC/0zu3JyJLAKlCE
         Y847QqChPcdKrNqg4RqGZnghVznMrm1yg1Vzn5my3zG4YWD/dW2OSvRjqyjEVUsix1j3
         M5klPzoVvwQdfuLHQ4qT5HO1YD8d4OmAnVCB4UvwHZ2hTnsUGWwi8pS8/01bTN7SisUN
         /A/A==
X-Forwarded-Encrypted: i=1; AJvYcCUTi1/D0+4HXDuLn9qDIeWKq1lRUTWzj+xCZI8dHvbRqpRYaNjfcTetnbxwYZx8SrR+4QXzV+dNiho=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx5xl3+gEe4GcZHy91FZmQidDPGhCeqpLj0ON20ei+kznrVsrSR
	GBLAmUX7qhyMnvPRKsDp4bY1L7hujWF6VYrWs1v38HoyTzgtH8D8+h0iueWBlCg11KI=
X-Gm-Gg: ATEYQzzsCjaIPMLBcBUuq1rge5L5HdLGpmHMX/FutALzRvpRnyZjYiXd4GRGRExBirO
	3mZXa3qpbsSSZP+mf+GMgN8Qc7j79GNx7lhKfiSoZE38uE65rj245GOmmonNOKHZQ62l6ckyUt1
	r0jT2d+9+5ReBJstje9g06ySgTrN1YDpieQz84JH4pEF1PqcVXvaRmmwAytI/ofE9hvlNVknYM7
	UioPlRaNCHreFUhq2QlWlO5DagNcEvHQoz8hY57/d9437Sb+sksA9wBeIcRwb0AYIt1tf1uh5fC
	BlJI7Ovlsy/BA1cLhh8PEVndcEugpWoN4JOONunhSbaGtMC94UQSg7I6m3RswOCH6L6gxpCmval
	GnrNEwq1T6yY2mify31W4Gwo0yIl+hsi3/Sx6YzPJlNUPtwLSY06tPdCFZ+qiLNOKRuDP32GgO0
	usLuAouCSGC12iZv95xVPU/NtXhq8yNrpstG96Qt69knl852i8iUETSs1rTQHZtaqdiYRCOvAmD
	7w34U1AAFIh2VCTRaee7GPgM7+WDcSi+lnxpjtJu5GVxieV3SH/VdWcfwwthuRx
X-Received: by 2002:a05:6402:1441:b0:65b:93ec:597a with SMTP id 4fb4d7f45d1cf-65fddaf6c63mr10019002a12.19.1772544032837;
        Tue, 03 Mar 2026 05:20:32 -0800 (PST)
Message-ID: <f4b8dcee-3bad-4390-baed-05893c8cb01b@suse.com>
Date: Tue, 3 Mar 2026 14:20:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/xen: Build identity mapping page tables dynamically
 for XENPV
To: Hou Wenlong <houwenlong.hwl@antgroup.com>, linux-kernel@vger.kernel.org
Cc: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Ard Biesheuvel <ardb@kernel.org>, Thomas Huth <thuth@redhat.com>,
 Kiryl Shutsemau <kas@kernel.org>, Uros Bizjak <ubizjak@gmail.com>,
 Brian Gerst <brgerst@gmail.com>, xen-devel@lists.xenproject.org
References: <453981eae7e8158307f971d1632d5023adbe03c3.1769074722.git.houwenlong.hwl@antgroup.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: <453981eae7e8158307f971d1632d5023adbe03c3.1769074722.git.houwenlong.hwl@antgroup.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------dFm50epvwnn00HLquSsmw60X"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------dFm50epvwnn00HLquSsmw60X
Content-Type: multipart/mixed; boundary="------------SGsrkd5BzX8g0Fguu5dFgezN";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Hou Wenlong <houwenlong.hwl@antgroup.com>, linux-kernel@vger.kernel.org
Cc: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Ard Biesheuvel <ardb@kernel.org>, Thomas Huth <thuth@redhat.com>,
 Kiryl Shutsemau <kas@kernel.org>, Uros Bizjak <ubizjak@gmail.com>,
 Brian Gerst <brgerst@gmail.com>, xen-devel@lists.xenproject.org
Message-ID: <f4b8dcee-3bad-4390-baed-05893c8cb01b@suse.com>
Subject: Re: [PATCH] x86/xen: Build identity mapping page tables dynamically
 for XENPV
References: <453981eae7e8158307f971d1632d5023adbe03c3.1769074722.git.houwenlong.hwl@antgroup.com>
In-Reply-To: <453981eae7e8158307f971d1632d5023adbe03c3.1769074722.git.houwenlong.hwl@antgroup.com>

--------------SGsrkd5BzX8g0Fguu5dFgezN
Content-Type: multipart/mixed; boundary="------------iStjZp5Q40kns7twP9sTAhHN"

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

T24gMjIuMDEuMjYgMTE6MDYsIEhvdSBXZW5sb25nIHdyb3RlOg0KPiBBZnRlciBjb21taXQg
NDdmZmUwNTc4YWVlICgieDg2L3B2aDogQWRkIDY0Yml0IHJlbG9jYXRpb24gcGFnZSB0YWJs
ZXMiKSwNCj4gdGhlIFBWSCBlbnRyeSB1c2VzIGEgbmV3IHNldCBvZiBwYWdlIHRhYmxlcyBp
bnN0ZWFkIG9mIHRoZQ0KPiBwcmVjb25zdHJ1Y3RlZCBwYWdlIHRhYmxlcyBpbiBoZWFkNjQu
Uy4gU2luY2UgdGhvc2UgcHJlY29uc3RydWN0ZWQgcGFnZQ0KPiB0YWJsZXMgYXJlIG9ubHkg
dXNlZCBpbiBYRU5QViBub3cgYW5kIFhFTlBWIGRvZXMgbm90IGFjdHVhbGx5IG5lZWQgdGhl
DQo+IHByZWNvbnN0cnVjdGVkIGlkZW50aXR5IHBhZ2UgdGFibGVzIGRpcmVjdGx5LCB0aGV5
IGNhbiBiZSBmaWxsZWQgaW4NCj4geGVuX3NldHVwX2tlcm5lbF9wYWdldGFibGUoKS4gVGhl
cmVmb3JlLCBidWlsZCB0aGUgaWRlbnRpdHkgbWFwcGluZyBwYWdlDQo+IHRhYmxlIGR5bmFt
aWNhbGx5IHRvIHJlbW92ZSB0aGUgcHJlY29uc3RydWN0ZWQgcGFnZSB0YWJsZXMgYW5kIG1h
a2UgdGhlDQo+IGNvZGUgY2xlYW5lci4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEhvdSBXZW5s
b25nIDxob3V3ZW5sb25nLmh3bEBhbnRncm91cC5jb20+DQoNClJldmlld2VkLWJ5OiBKdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQoNCkknbGwgdGFrZSB0aGlzIG9uZSB2aWEg
dGhlIFhlbiB0cmVlLg0KDQoNCkp1ZXJnZW4NCg==
--------------iStjZp5Q40kns7twP9sTAhHN
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-----

--------------iStjZp5Q40kns7twP9sTAhHN--

--------------SGsrkd5BzX8g0Fguu5dFgezN--

--------------dFm50epvwnn00HLquSsmw60X
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/Ey8FAmmm4B8FAwAAAAAACgkQsN6d1ii/Ey9u
Fgf/Yiro9lkd7nF1IFHHgUphBmzAbgER5ArgkRnzF55OSXKc+z0T/Su7v1wlNDF3GGyMCti0FXl9
7UmNTXtUi7SBEfvtGDHVpzblInfXbTs4iluL2azKmMEwq3OlBhEGLvH3bX7+sEtDfgb700BfeWYQ
1bBcTs4r2+pDtWJnkQOZtUMQ2w8ennd3NPUjeBZb3qaUgBdCXRgt96J1XosvzhAgvhlw249RmbdN
dGJ49ebpe1YgOD8oJwnTe7v1IS+Q+V6yBEcsJxGwW9fTo4xYgf6nJSGy1kNtnZ7rSqUq50i1ahpC
twMnMLZpymY4PVZSRJ9Q5+MCR4nxzm8jAo0rfFJLRg==
=r39c
-----END PGP SIGNATURE-----

--------------dFm50epvwnn00HLquSsmw60X--


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 13:23:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 13:23:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244739.1544112 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxPjA-0007qS-OB; Tue, 03 Mar 2026 13:23:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244739.1544112; Tue, 03 Mar 2026 13:23:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxPjA-0007qL-LY; Tue, 03 Mar 2026 13:23:56 +0000
Received: by outflank-mailman (input) for mailman id 1244739;
 Tue, 03 Mar 2026 13: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=SHXM=BD=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vxPj9-0007qF-L3
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 13:23:55 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 398370cd-1704-11f1-b164-2bf370ae4941;
 Tue, 03 Mar 2026 14:23:53 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-b8fb3c4bbc4so846592266b.2
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 05:23:54 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b935ae612f7sm611611366b.36.2026.03.03.05.23.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Mar 2026 05:23:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 398370cd-1704-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772544233; x=1773149033; 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=D4jVGREkfXDvFUc3S6Y3ejso4Gwgqlhk3ArmnBljpb8=;
        b=LO0zqKw8uIZJk0tDJwxFUZLFhkyJ6PhDuUcWQtHiJsODBGQpYxH8CraiJUbfVl4ysW
         W4uxBXMIBlgM0yN/ccG1GjMdcyKwEVfrDhID4H40pXAgip6pN2hBhHh5LBeyfkMmVWfK
         vGYPyG+Jqa/APcLsa5wKTikaKSb2nukQ31IZbqGp3THZOfy0Agi4Ce65p8FPS3203bv5
         XDuYMyVctOBIKwJm03zwaSGjWLBPyI4B2TJGtdV3wA68T3MTOIXKxEQJC8/35x6b24i8
         nZwIOF5nvU4tTmDCrppAaQqyZx6oYOmSif9K9CHu0Lzw8NyWk2DFyCUWp0B/5WCI4vw8
         8qhQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772544233; x=1773149033;
        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=D4jVGREkfXDvFUc3S6Y3ejso4Gwgqlhk3ArmnBljpb8=;
        b=W3sVjtwlUXlhBCw3eSXAhDOunv+BlEDPximt9luk/vAlaKGj1UeRYREGBzsmrVpgGw
         YH5xES9bBLuqrqe6mzIIsnjyE7GaAptNg+DpyH2Whd/b5UquTAu9d6leq4j0aSr8kV39
         FelTPJRDZ2F06LtuOOMAP7cnoJtRazi/3I6Cpv5nCRDRixgfkUPhmTKMYMBlvs3djFXs
         CZW4Qa2x+5QnrOJMz9PKOXGfzf/tIgbzOJW3Ewd3kkPlRViddf9QULCP4sq3VV+SqoFF
         HimxRK+qLNJBaOLfK7jEsyuav/wrWzncADUNO0d4Mh3ZFHRhFwIhDol8FnIU/Vb0MPrQ
         9OcA==
X-Forwarded-Encrypted: i=1; AJvYcCWWXugF6iNi8yQvOIlJU6l+fAZDmHa48ST6KU/oorIYYoR7ToO44fXPsuYbQTFpqUw39LyOlB0yM4E=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz7KMW45cBCj8be5V6fhp5wQQBakPh1Ce/TVnGRF1bCB1vk1a3c
	Nitm/ic0LlcVLmeSESI/J1FbElrQpvtVos/ffvYxQkkXg8t83fhO8jRouLdzwcRUigE=
X-Gm-Gg: ATEYQzxizlXi2wSAy6qXamBvQzqGREcoRkXMvTRvAjeelN0JyERKmFR9cODABy4U/Nt
	1IQUf/7JbJglqpe9L03piWmN4Im9z0yugsn6bVr+A3odPVPWsQOL898sSlatk1Y3eR9GBrGTCq5
	svKM7HSSGig/u69xVsEq6v1X79Y8mepKitwv5G8cxkmnbzb0J8z6LRUw5lTQksAGAR2bPpp2OZ4
	ETuWJMW8rwO/zSLJ7Xj3RTOcMiEdJOJ1A1XbNh8/eeOSYCqYn3vgykr8QYdrXDZw+nCkQGf6D8q
	OT4cjXBFCmxOAYxTLMtjP/M4AsKsr35lBP5S3rj7NCh8vaFfu3eOLXx9E3HbUTbq9OgDW6vyU/c
	KYzJrYooO7HJgI2WOPWs7TMsIeWdxDUeN7w6LDyNqzqbEKja3SXKbctFM4qYxqpD8zLQNkA5ahO
	/qKFLTF6LVlFjyVMoCOPIeiuVv/yUS3dsJb4yatqaKEywJK2cn06qqQoZrDycVDIjid+EYrKGJ/
	XfHnjnXWYHf6fnYzzYG1DjaXqDmtgHGjkIdUr4aYc6X81hq0sKkhOeVzTWw2w8c
X-Received: by 2002:a17:906:6a14:b0:b88:6542:86a0 with SMTP id a640c23a62f3a-b9376594b7emr1067333866b.54.1772544233283;
        Tue, 03 Mar 2026 05:23:53 -0800 (PST)
Message-ID: <ce7f4fce-644a-48e1-9ac2-e426f2d1d42e@suse.com>
Date: Tue, 3 Mar 2026 14:23:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/xen: update outdated comment
To: kexinsun <kexinsun@smail.nju.edu.cn>
Cc: boris.ostrovsky@oracle.com, tglx@kernel.org, mingo@redhat.com,
 bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 julia.lawall@inria.fr, xutong.ma@inria.fr, yunbolyu@smu.edu.sg,
 ratnadiraw@smu.edu.sg
References: <20260224022424.1718-1-kexinsun@smail.nju.edu.cn>
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: <20260224022424.1718-1-kexinsun@smail.nju.edu.cn>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------PbxofBzZ6nVHpzmTLSw0E58S"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------PbxofBzZ6nVHpzmTLSw0E58S
Content-Type: multipart/mixed; boundary="------------jRByJlNJhbPitDNg6CPM8PKG";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: kexinsun <kexinsun@smail.nju.edu.cn>
Cc: boris.ostrovsky@oracle.com, tglx@kernel.org, mingo@redhat.com,
 bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 julia.lawall@inria.fr, xutong.ma@inria.fr, yunbolyu@smu.edu.sg,
 ratnadiraw@smu.edu.sg
Message-ID: <ce7f4fce-644a-48e1-9ac2-e426f2d1d42e@suse.com>
Subject: Re: [PATCH] x86/xen: update outdated comment
References: <20260224022424.1718-1-kexinsun@smail.nju.edu.cn>
In-Reply-To: <20260224022424.1718-1-kexinsun@smail.nju.edu.cn>

--------------jRByJlNJhbPitDNg6CPM8PKG
Content-Type: multipart/mixed; boundary="------------xV60sHF8B10z2V0QneIrwen0"

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

T24gMjQuMDIuMjYgMDM6MjQsIGtleGluc3VuIHdyb3RlOg0KPiBUaGUgZnVuY3Rpb24geGVu
X2ZsdXNoX3RsYl9vdGhlcnMoKSB3YXMgcmVuYW1lZCB4ZW5fZmx1c2hfdGxiX211bHRpKCkN
Cj4gYnkgY29tbWl0IDRjZTk0ZWFiYWMxNiAoIng4Ni9tbS90bGI6IEZsdXNoIHJlbW90ZSBh
bmQgbG9jYWwgVExCcw0KPiBjb25jdXJyZW50bHkiKS4gIFVwZGF0ZSB0aGUgY29tbWVudCBh
Y2NvcmRpbmdseS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IGtleGluc3VuIDxrZXhpbnN1bkBz
bWFpbC5uanUuZWR1LmNuPg0KDQpSZXZpZXdlZC1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3Nz
QHN1c2UuY29tPg0KDQoNCkp1ZXJnZW4NCg==
--------------xV60sHF8B10z2V0QneIrwen0
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-----

--------------xV60sHF8B10z2V0QneIrwen0--

--------------jRByJlNJhbPitDNg6CPM8PKG--

--------------PbxofBzZ6nVHpzmTLSw0E58S
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/Ey8FAmmm4OgFAwAAAAAACgkQsN6d1ii/Ey/c
RAf+PlfQCnYZcOW1+JZipL6agNuExGtzLEhA3WiWB7N2ft+O7M+y6ztNvsDm0ZRa0+9CdfrombrW
AN7P90jD4hHFcvOFVS4o9gWh4epqZ+01ybJgFCIF9MMClHYOv/idq3JhObzhhXISdehAUkJp+NZt
UwecYAUg2lDf8BEhNfenLUwyc8y3O866I/JFab0lLAI195VasPmDUPLzha5bIEZogVI4se961L3Y
S/aEUe/rSGXi+pU7ICkfqCjsgFEQ9f9DzVUb6p/t+liNYPBBlWMRtfWCyHeOLLH2X1UlPfn8ILz7
f+vTFSVZ3GcudXGZdDDilj5QNI8mzrzad/G22GhIhw==
=txub
-----END PGP SIGNATURE-----

--------------PbxofBzZ6nVHpzmTLSw0E58S--


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 13:31:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 13:31:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244752.1544122 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxPq5-00017p-E8; Tue, 03 Mar 2026 13:31:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244752.1544122; Tue, 03 Mar 2026 13:31:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxPq5-00017i-Ay; Tue, 03 Mar 2026 13:31:05 +0000
Received: by outflank-mailman (input) for mailman id 1244752;
 Tue, 03 Mar 2026 13:31: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=SHXM=BD=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vxPq4-00017a-1k
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 13:31:04 +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 3886b18c-1705-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Mar 2026 14:31:01 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-b9358dd7f79so864041366b.1
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 05:31:01 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b935ab146bdsm591186066b.6.2026.03.03.05.31.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Mar 2026 05: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: 3886b18c-1705-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772544661; x=1773149461; 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=YDqxSfaFOqi6+CSHyuKH19eODmP7e7ddf6Er21nJG6M=;
        b=B2KlLuxvwCiox0zi8uSEL7IHE8X4lKAw1dvxcET6ogp0bvdwYN3Q9jDz/DMKYuiL8u
         3ajeCR53z1VSsY8lRr8eHmXt+KlA5LFs9fKfenfQawKfhjyEfv4qMTN1+JG5YvvL81nq
         ON630Bq4X4Yu+kC7RbrNfJ9JUas+UNQjx8eSZV9XV/qZWMnCOFdWHlud4sO29r1q0lRU
         EQpXrRz5+aoXtLRbEgMDXYVGzsfWBtr0K55LYir/3JffwBqXyL0i9L14mdH4vLYeP+nq
         xXK9HVc/OFFR0O4U2fdf9Uyffnh1y6lgcYKMiMQes/JrpPEApBpgXX9fX7JmmcTXiaqJ
         X3qA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772544661; x=1773149461;
        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=YDqxSfaFOqi6+CSHyuKH19eODmP7e7ddf6Er21nJG6M=;
        b=hKcLKyapaFukvpGOo1FpA/q0uq32cegnASA9y4zIDQFf0YFeso6qAzW3vFZ4lVAhgc
         9i/LoaYb/doYvROoV+6We4L6SZcZMiDgeqkqop67QA+msgipdsSHey/dPcwcdL2Fr0Rj
         P/h6VLLe+sc6GRjNuaM8MRELZMjvumkhFg079BYCFtyvUes4lJXEODzgmB/pmgh93iLW
         RZTdPKbJlZTOxcDg9FudV4LIhS/Q3UuwHP1MEdtMh/8vGYidKnGXc3bKvchcDwpGG8sJ
         WpmO8u8nF5Hjn/PdFE5BQQOTUmq9xQRfXvYFIavMXq7RdeMbMQjLcOLdFnqZ8H9d6/mj
         tGYw==
X-Forwarded-Encrypted: i=1; AJvYcCWxkS1PVEIoH0PwI+NjH18n/PQepp4xC030nVqto6HAbhTKgS0nkfYyZeZvAKpZfN4LGOtHBDaJn4U=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyZ9Xmx/uACCKjyAxWffLM34ztfdJYKszPvpypY3weL1k2YE8wg
	8EaBtcAxo+VTWc3Ciih1/RJyqjeN8eKo45cNjMrZlzgLRITI/cfGY4CnA3FR1hdcqT0=
X-Gm-Gg: ATEYQzzSXXbzqNJ8EFh9RkbU65xIiI5xFALXhRTIgs6L22Ewz8xN8MsMhe642vJEVPp
	oZ5u/shwgEdVaGAyiY5/T3jb+QOTOD3youg6Yp28jZlMKiFwAC18ADK0xTfabQgJ3hVOSorKUDR
	/ow9PLKTmEq32lXUW1k0n5qIX8JWMp6lXspey8AVs9MwAXOoFyYnWzK2+avZslrjJQB3ycKalzq
	vOLgyr0NXRIaVnmzjqPbZXiHpKK1DkB8l7uDD+EM4n0zcpZHws3MqnTskNbvwzk27p4r5QaWVnp
	Gk90j3StSi6aVF9OFf1qfVNO50FeErHubkJm7gNOijyDDo2EMl3lI7q/lpEelJcS+rkB1Va8sxo
	nQlLHvwZWZdIUbKkQB20M2tug1tyHFokCXfniVvP+5RKMMOSAu1TaeJCweWk5La/bFl+Ltuhg2c
	5QaBVfYvY6G3Y84qersr43hskGer69faiQ8piK7zJxl3y/sGaLFFINrsXiw+xlOIWGztfuy3UVJ
	yPK5FcF+p91iW4L/nuCkzW/P0oGWMnSW1kojOmNjN7upFBAkeUmgQ==
X-Received: by 2002:a17:907:d1d:b0:b93:5297:b3a2 with SMTP id a640c23a62f3a-b93765c5b04mr1083941466b.59.1772544660983;
        Tue, 03 Mar 2026 05:31:00 -0800 (PST)
Message-ID: <b213d7b9-0d94-4c9c-a1a0-dd78abcb6426@suse.com>
Date: Tue, 3 Mar 2026 14:31:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/PVH: Use boot params to pass RSDP address in
 start_info page
To: Hou Wenlong <houwenlong.hwl@antgroup.com>, linux-kernel@vger.kernel.org
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 xen-devel@lists.xenproject.org
References: <76675c4d49d3a8f72252076812ef8f22276230c2.1772282441.git.houwenlong.hwl@antgroup.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: <76675c4d49d3a8f72252076812ef8f22276230c2.1772282441.git.houwenlong.hwl@antgroup.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------i2y75WnCP7J0ez480mRl2LPE"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------i2y75WnCP7J0ez480mRl2LPE
Content-Type: multipart/mixed; boundary="------------nT0luGH0skdzcdB98AO3VOAz";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Hou Wenlong <houwenlong.hwl@antgroup.com>, linux-kernel@vger.kernel.org
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 xen-devel@lists.xenproject.org
Message-ID: <b213d7b9-0d94-4c9c-a1a0-dd78abcb6426@suse.com>
Subject: Re: [PATCH 1/2] x86/PVH: Use boot params to pass RSDP address in
 start_info page
References: <76675c4d49d3a8f72252076812ef8f22276230c2.1772282441.git.houwenlong.hwl@antgroup.com>
In-Reply-To: <76675c4d49d3a8f72252076812ef8f22276230c2.1772282441.git.houwenlong.hwl@antgroup.com>

--------------nT0luGH0skdzcdB98AO3VOAz
Content-Type: multipart/mixed; boundary="------------orrsVUFl5m1rKOY4H1tIeSMX"

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

T24gMDEuMDMuMjYgMDY6MDQsIEhvdSBXZW5sb25nIHdyb3RlOg0KPiBBZnRlciBjb21taXQg
ZTZlMDk0ZTA1M2FmNzUgKCJ4ODYvYWNwaSwgeDg2L2Jvb3Q6IFRha2UgUlNEUCBhZGRyZXNz
IGZyb20NCj4gYm9vdCBwYXJhbXMgaWYgYXZhaWxhYmxlIiksIHRoZSBSU0RQIGFkZHJlc3Mg
Y2FuIGJlIHBhc3NlZCBpbiBib290DQo+IHBhcmFtcy4gVGhlcmVmb3JlLCBzdG9yZSB0aGUg
UlNEUCBhZGRyZXNzIGluIHN0YXJ0X2luZm8gcGFnZSBpbnRvIGJvb3QNCj4gcGFyYW1zIGlu
IHRoZSBQVkggZW50cnkgaW5zdGVhZCBvZiByZWdpc3RlcmluZyBhIGRpZmZlcmVudCBjYWxs
YmFjay4NCj4gVGhpcyByZW1vdmVzIGFuIGFic29sdXRlIHJlZmVyZW5jZSBkdXJpbmcgdGhl
IFBWSCBlbnRyeSBhbmQgaXMgbW9yZQ0KPiBzdGFuZGFyZGl6ZWQuDQo+IA0KPiBTaWduZWQt
b2ZmLWJ5OiBIb3UgV2VubG9uZyA8aG91d2VubG9uZy5od2xAYW50Z3JvdXAuY29tPg0KDQpS
ZXZpZXdlZC1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPg0KDQoNCkp1ZXJn
ZW4NCg==
--------------orrsVUFl5m1rKOY4H1tIeSMX
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-----

--------------orrsVUFl5m1rKOY4H1tIeSMX--

--------------nT0luGH0skdzcdB98AO3VOAz--

--------------i2y75WnCP7J0ez480mRl2LPE
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/Ey8FAmmm4pQFAwAAAAAACgkQsN6d1ii/Ey8k
awf/SmZxH+cZSgJr0qTp+hQqI6YFOWEweAJeNxCVDVY0ZINrR6J2UUqQKmJ8OKbmP61QyOqtXjfY
8+tQBCklIYQSwn1iLJz+PmYj9XRVPeI8FL40h10IHS7ZlFWRZC1MwRJGTA7ZhITBWurklcs0YX3V
TIGH2RKQAeG2yd0hQ62e+SigCTLwcMFsRsbltzU63b8KbmUe/vHQG8ME2Ab210gKXch/UOfjWChM
+P2eiIMh89iT+93rrm4b2FrQaeh1UNBFfDhSZxAVwIYo5zv65pfggho16AJOPQJh6ra3XKx14LxE
XWHNsQTfpSkqlb1EbwAUpKQGU6UiyFuR85dhagfZKw==
=7hZ6
-----END PGP SIGNATURE-----

--------------i2y75WnCP7J0ez480mRl2LPE--


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 13:35:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 13:35:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244765.1544132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxPty-0001h9-T4; Tue, 03 Mar 2026 13:35:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244765.1544132; Tue, 03 Mar 2026 13:35:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxPty-0001h1-QP; Tue, 03 Mar 2026 13:35:06 +0000
Received: by outflank-mailman (input) for mailman id 1244765;
 Tue, 03 Mar 2026 13:35: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=yKVY=BD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxPtx-0001gi-HZ
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 13:35:05 +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 c8ad0013-1705-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Mar 2026 14:35:03 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4837634de51so23779425e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 05:35: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-483c3b3ce8fsm352299085e9.4.2026.03.03.05.35.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Mar 2026 05:35: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: c8ad0013-1705-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772544903; x=1773149703; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BOScuocRZ/Rl9yggjOBZAfpMkRprvyewmshNYbrzw8A=;
        b=Htvyj5/QpHx2UxtK1YGz918JFsdkdO06nQBCGiMwZnpml8jdUBSq1o+qeQsUFr88DJ
         b+GAJD78GKMJKH3PYFHvUmvuMYq45LlyNcEfhYfKO+C/g+fock9qeWnD5oytxOZKQrL5
         0u95AoOHB8o/1PHqyMJINNQBGTABR48fIPUHdHZihrK6Pf73LD3rga7Mg8WTLA/XZGqV
         2fzt6cnLNtH9v7xM651Df2yQWMLFabQNKUxCIVUxBO/GvVRq/4/5wvLn6kauJVXfl+Ix
         g9uOcMdr0T2Ho7zcQn9hFzfra8khmi+wOzbsB+7Iw4+MMXfo6+/ITupaelMVS+CFW97K
         bWRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772544903; x=1773149703;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BOScuocRZ/Rl9yggjOBZAfpMkRprvyewmshNYbrzw8A=;
        b=s89rxUEOf1VGWnlDfkl8cb/4bWgabx+esxUvLfQvy6ZgmzUggwyhpXNoZ4CekWC3tW
         Ukd4KW3FLFRWp6/PI59ddf5tafuhU3S8h+cFO2n2aT30vN5yY81BdCALbRY0Popn8SVw
         fT4zgxh+oJrpnVdEfeoZF+s8dzq1inTSnvI2Yh5jqahqX4sp5938109CmFh5hum1lTVL
         Aapqt5IanzmB0c7n/CQHCIyLWsqkt1oaFxnXkRP7E6nnGKioNjh8O9fXNBefDJGbkNDz
         f4aVBS9/r7v/7j+IOGaPf6LpG6l1WgJmuI4HVGSQb7vaWe6DZlYqtbtgjfoIUArzWEqR
         ysuw==
X-Forwarded-Encrypted: i=1; AJvYcCVCfIVd6q6IBgjOpMwRUEXFWIQzsttyLCdDrwGs4XknVtC5G6amNHTn36/tQ4SxBxv429O22Xa9aIg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx4su3Aww/SugBh7qu3k/0ED5Gk4LBecuU1Jor6Qc9so7CxxXNd
	G11VvpjVWC1DZDHdQAEI7EwO01bxp72Q+oYXcoUhY1k2K+Tq2LvB/LmqkdOgxTtybA==
X-Gm-Gg: ATEYQzw2617Ab3st4wH8NUOqXYEAuYgFH6g0FKTawmqlAo/LkApSdtxRELzt43Nbr4V
	5aZsSvUoRNyB2qXJkVfw2T+2Q96XGLYhs7U7sngqNYOScC+UH6TWVcmIaCtSdg4ZHrho3DjFILB
	GXsRIaTczS8VS6jGwSFoFjGBxpulnPVbTuXpPGF8gQOE0nGIxNa7As/7kdcP1VKYMTZux2p3UMq
	M1dQgUJDnXRqIY4EbseAfVd6hHUhlrTvK/mFHkMlFSE1nZrd3+gPSlADmASCkd+vna1hGI9W+LT
	4fGdXf7bhEhDxvHoaQu62lxrRDRw1wE+coWe8NOCK+MU9fjMG57/aF+25h/Y2u8LR96b4q/spjT
	FnoXdbOp7mMc2MlOoXlFPINKUmCWcL62lsFzQTdFiurz0gAWYwFNXbemqR3iYcvd14x47vrfVA6
	04FjPFRwIoaV3CQBB1If3S1oqfdhmaJ+oqAbmkQAYVY8oULYPwhd4yOlF5wR6ilCJrCuMchfigu
	qlUSr1FmimOcnKGsP/LJ/kfjA==
X-Received: by 2002:a05:600c:4444:b0:475:de12:d3b5 with SMTP id 5b1f17b1804b1-483c9c323d8mr250859045e9.34.1772544902787;
        Tue, 03 Mar 2026 05:35:02 -0800 (PST)
Message-ID: <6357ad3f-85c8-4fe4-a2c8-8b0a0a97f1b3@suse.com>
Date: Tue, 3 Mar 2026 14:35:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 03/14] xen/riscv: introduce tracking of pending vCPU
 interrupts, part 1
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
 <a1954e9a30abace453f4604a47b43ecbcebe350a.1772016457.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: <a1954e9a30abace453f4604a47b43ecbcebe350a.1772016457.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.02.2026 12:51, Oleksii Kurochko wrote:
> Based on Linux kernel v6.16.0.
> Note that smp_wmb() is used instead of smp_mb__before_atomic() as what
> we want to guarantee that if a bit in irqs_pending_mask is obversable
> that the correspondent bit in irqs_pending is observable too.
> 
> Add lockless tracking of pending vCPU interrupts using atomic bitops.
> Two bitmaps are introduced:
>  - irqs_pending — interrupts currently pending for the vCPU
>  - irqs_pending_mask — bits that have changed in irqs_pending
> 
> The design follows a multi-producer, single-consumer model, where the
> consumer is the vCPU itself. Producers may set bits in
> irqs_pending_mask without a lock. Clearing bits in irqs_pending_mask is
> performed only by the consumer via xchg(). The consumer must not write
> to irqs_pending and must not act on bits that are not set in the mask.
> Otherwise, extra synchronization should be provided.
> 
> On RISC-V interrupts are not injected via guest registers, so pending
> interrupts must be recorded in irqs_pending (using the new
> vcpu_{un}set_interrupt() helpers) and flushed to the guest by updating
> HVIP before returning control to the guest. The consumer side is
> implemented in a follow-up patch.
> 
> A barrier between updating irqs_pending and setting the corresponding
> mask bit in vcpu_set_interrupt()/vcpu_unset_interrupt() guarantees
> that if the consumer observes a mask bit set, the corresponding pending
> bit is also visible. This prevents missed interrupts during the flush.
> 
> It is possible that a guest could have pending bit in the hardware
> register without being marked pending in irq_pending bitmap as:
>   According to the RISC-V ISA specification:
>     Bits hip.VSSIP and hie.VSSIE are the interrupt-pending and
>     interrupt-enable  bits for VS-level software interrupts. VSSIP in hip
>     is an alias (writable) of the same bit in hvip.
>   Additionally:
>     When bit 2 of hideleg is zero, vsip.SSIP and vsie.SSIE are read-only
>     zeros. Else, vsip.SSIP and vsie.SSIE are aliases of hip.VSSIP and
>     hie.VSSIE.
> This means the guest may modify vsip.SSIP, which implicitly updates
> hip.VSSIP and the bit being written with 1 would also trigger an interrupt
> as according to the RISC-V spec:
>   These conditions for an interrupt trap to occur must be evaluated in a
>   bounded   amount of time from when an interrupt becomes, or ceases to be,
>   pending in sip,  and must also be evaluated immediately following the
>   execution of an SRET  instruction or an explicit write to a CSR on which
>   these interrupt trap conditions expressly depend (including sip, sie and
>   sstatus).
> What means that IRQ_VS_SOFT must be synchronized separately, what is done
> in vcpu_sync_interrupts(). Note, also, that IRQ_PMU_OVF would want to be
> synced for the similar reason as IRQ_VS_SOFT, but isn't sync-ed now as
> PMU isn't supported now.
> 
> For the remaining VS-level interrupt types (IRQ_VS_TIMER and
> IRQ_VS_EXT), the specification states they cannot be modified by the guest
> and are read-only because of:
>   Bits hip.VSEIP and hie.VSEIE are the interrupt-pending and interrupt-enable
>   bits for VS-level external interrupts. VSEIP is read-only in hip, and is
>   the logical-OR of these interrupt sources:
>     • bit VSEIP of hvip;
>     • the bit of hgeip selected by hstatus.VGEIN; and
>     • any other platform-specific external interrupt signal directed to
>       VS-level.
>   Bits hip.VSTIP and hie.VSTIE are the interrupt-pending and interrupt-enable
>   bits for VS-level timer interrupts. VSTIP is read-only in hip, and is the
>   logical-OR of hvip.VSTIP and any other platform-specific timer interrupt
>   signal directed to VS-level.
> and
>   When bit 10 of hideleg is zero, vsip.SEIP and vsie.SEIE are read-only zeros.
>   Else, vsip.SEIP and vsie.SEIE are aliases of hip.VSEIP and hie.VSEIE.
> 
>   When bit 6 of hideleg is zero, vsip.STIP and vsie.STIE are read-only zeros.
>   Else, vsip.STIP and vsie.STIE are aliases of hip.VSTIP and hie.VSTIE.
> and also,
>   Bits sip.SEIP and sie.SEIE are the interrupt-pending and interrupt-enable
>   bits for supervisor-level external interrupts. If implemented, SEIP is
>   read-only in sip, and is set and cleared by the execution environment,
>   typically through a platform-specific interrupt controller.
> 
>   Bits sip.STIP and sie.STIE are the interrupt-pending and interrupt-enable
>   bits for supervisor-level timer interrupts. If implemented, STIP is
>   read-only in sip, and is set and cleared by the execution environment
> Thus, for these interrupt types, it is sufficient to use vcpu_set_interrupt()
> and vcpu_unset_interrupt(), and flush them during the call of
> vcpu_flush_interrupts() (which is introduced in follow up patch).
> 
> vcpu_sync_interrupts(), which is called just before entering the VM,
> slightly bends the rule that the irqs_pending bit must be written
> first, followed by updating the corresponding bit in irqs_pending_mask.
> However, it still respects the core guarantee that the producer never
> clears the mask and only writes to irqs_pending if it is the one that
> flipped the corresponding mask bit from 0 to 1.
> Moreover, since the consumer won't run concurrently because
> vcpu_sync_interrupts() and the consumer path are going to be invoked
> sequentially immediately before VM entry, it is safe to slightly relax
> this ordering rule in vcpu_sync_interrupts().
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in v6:
>  - Drop for the moment:
>        /* Read current HVIP and VSIE CSRs */
>        v->arch.vsie = csr_read(CSR_VSIE);
>    from vcpu_sync_interrupts() as it isn't used at the moment and will
>    be introduced when a usage will be more clear.

With this, shouldn't the RV32 related #ifdef in vcpu_sync_interrupts() also
go away?

> +void vcpu_sync_interrupts(struct vcpu *v)

The sole caller passes "current". Are other uses of this function planned?
If not either "current" wants directly using here, or minimally the parameter
wants renaming to "curr". In fact ...

> +{
> +    unsigned long hvip = csr_read(CSR_HVIP);

... this suggests it's unlikely for the function to be valid to call with
other than "current".

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 13:44:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 13:44:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244776.1544142 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxQ3A-0003UB-TI; Tue, 03 Mar 2026 13:44:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244776.1544142; Tue, 03 Mar 2026 13: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 1vxQ3A-0003U3-Pe; Tue, 03 Mar 2026 13:44:36 +0000
Received: by outflank-mailman (input) for mailman id 1244776;
 Tue, 03 Mar 2026 13:44: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=KsTL=BD=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vxQ39-0003Tx-Li
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 13:44:35 +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 1c25cf8d-1707-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Mar 2026 14:44:33 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA1PR03MB6516.namprd03.prod.outlook.com (2603:10b6:806:1c7::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Tue, 3 Mar
 2026 13:44:28 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9654.022; Tue, 3 Mar 2026
 13:44:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1c25cf8d-1707-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fcjxqzTDm44/i4dbYLm7dbT/1r95675K+oFP+jDFfc3tGV/BcwQorX5TsJgVV7eP243vX93Ebe6bJjRUrZlxNVlfZa8hvlvIwAl4uBtEVYpmv4h2ItKxYto9ytWqxACn34AY0AUPRlLpFQE4Cb8YK0Qx6x1nqpN2GTmSzwDfX5R+KHfGib0QyedjxhkuAA0Ff+auGB46S6QKHtO6W/+B0vZ+hROAvJ5Ev5fm7E7IKQ4CZhDkf2shpaB3cavYHKu2157p/cK3Ro0HJtkUJNXkFymUd872TjbyZwZa1wadqTv1UPwnVqedZLG0gHms0rO+Qn1VkzKplhbn+pKtfKUqYQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ktuf5dn7Bil6+PtW9UXZZgqOUX3cL1WSNTzz7iLmfZQ=;
 b=esqSLEoezPD0r0ZOHVATPpDGLADQyHM2lDyaNWdZx/z8knO0mrSMB5gOsMEg4I52pDi8frok5aDycsLNmBDdGtS8xbpyFWCL03w/OrKJMA61Dw4Pkw0+IoPFemLo4rTRuXBRt1z/ZWvmd6bHqbjfSzjR6ZsWhjqUB+oUd0hP6igF6+XtAY5zL3UAtJk64HS/wt4RL+EKJTe+3W6w3Uc9dbQrgKUmSHxdfzqE/soHj2V1gn6VEBOf5ILYdjfsGoiNNQ6HP6m4NgbI9DlxZ/McXKG5DPX8byMZklkD39uHNeiz+jLo5ANdXYLfG1eFERUbIBYhRSPgm7OIFztJX7UxLA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ktuf5dn7Bil6+PtW9UXZZgqOUX3cL1WSNTzz7iLmfZQ=;
 b=dd+zVXxJBuDe1/O1FBx7gJDxz0jBBTZYxC5rCNCTx9AP6l3hjtGOF58k6WDrferqP7UW52GfBNWOpXVOm5z2363o6t5c1TZ+OmKdFjioFuphy3NPt1j01beuuIxuQ9kxDbRl18YgOH8NMHfxli97H9QuTFUxwMOjW9Erasce+8Q=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <5593f7e9-8efa-476b-b1f8-3e77c58d8d36@citrix.com>
Date: Tue, 3 Mar 2026 13:44:18 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 08/14] x86/traps: Enable FRED when requested
To: Jan Beulich <jbeulich@suse.com>
References: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
 <20260227231636.3955109-9-andrew.cooper3@citrix.com>
 <0dbf14bc-1505-4a33-bbf8-53c1ea41c7da@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <0dbf14bc-1505-4a33-bbf8-53c1ea41c7da@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LNXP123CA0004.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:d2::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_|SA1PR03MB6516:EE_
X-MS-Office365-Filtering-Correlation-Id: 482b423f-8166-4ca1-8518-08de792af97a
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:
	7whSGGpqiDN0uQBYB9epxyPA1Q/O8TwmqU2fFKiPthOjSV5SsrCs+DJMsM0kikMJMPxqjvu5RUHApcRzyMo5RZTOSlgqRR7a6BTRbVVz+ilgX2d9WXqyL9L13Z5kTuUMk6iKnYnjU1gPKhsJZVm6a/XGpO2zQQEDDzprj9kDjOzTc2eABQCyH9Qpx0WzF0gD5lyxFqfucYUPlNfhI17MrctqSm43enmQMj7N8G9Rn+aOUxKRATfNu55EWC+djcqGg8WVanx0QfnZy/8SBTq8yaLzq+XxWH1K4KLtpeYJD6bq/kPwTtCAigPeU9wD10v6IHFOQgQRj+pUwXFrCz6cyVY7QobYsJOOX48up5Sh8RYt0/CqMhvwfcrBNO2lpU/7uhv+YD0QO6BZO5o1KwDWLL03monJ4B519TAmnh1Pds5zDSU94gc+eq5NDwlafjWsrLxhSUFZrXRVn/vJEJ15PI7TweTe9P30QAvY3RPODyv3XKf4wZD2J9SIDrH8WraMLu9zBj52MKc0JokxdBBfnoBtv/RmaYWWY4nq77a+zsxVCfeBpAMvUnTM+qcY90EZ5kNg6F6pHoXemSKLAU6GxbPG92tFqaDbeh3//OYPRhtUFU7W8Qr+bUhpizrt/xfrRvhkgaUcEUG2kx2dwUC9tzoyhbD0XekHc37bx/erggUc4UoDG/BQ/GYbUm8LGmhEIwB1ndczXT+b9o7WsxJCLt3TAQvzoYc22DoOe4ih46A=
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?SWpYWTM3ZVVzUmlHVFVGeDJ4NVRybFhhNE1KbzUzckVMS3YyR21pM3ZQbDdu?=
 =?utf-8?B?NndyL21iTTEyZ3Qrdk5MZnJWSUIvZ1dHWFB2aERqakVNMGFPdzQ1bjVubmwr?=
 =?utf-8?B?dTVrVFptUDVHNEFwL25PVUtTTkZ0cmRiejlpemx1eEY0NVJNRC94bDFaOXZr?=
 =?utf-8?B?cDA3N05ROTZGcmxqRmlaUjBUeGd2QmV2RFQwalM4bXpOaTNHT01xWkRabnk2?=
 =?utf-8?B?OE5TbnNCMUh5bVQ3a3VsZFJ6NHRybDFwRGlzQmN5WlI4SHpnM1BmYjJuMUJh?=
 =?utf-8?B?M05qbXpuMnlESjArUjd3d2NOMWxiWkJRbFE0YUpTWFVkVElaMWdPVE4yYTlT?=
 =?utf-8?B?bFhJMHphT0FZZzkvTHQzRWZrUWswUkFJN0NQY2hFSXR3VnRSZUlISEVlVEpl?=
 =?utf-8?B?QWJia0RiUU1kR2FKbTdGWitIOVhFejRBcHVJRkI1QkZ6NFFzVGxVQ0VEWFZS?=
 =?utf-8?B?YTdrTDRlKy9zWm5pVFNzcHlDb2wxVmhXRVYwT1VLbjRTL241bVkzclJmK3Mr?=
 =?utf-8?B?eTVtQ3l2Rno3K1QrMFU0V0FIZlZTWEJSUy9FT2NTVFJXZGh5TmNoN2x2cG5u?=
 =?utf-8?B?aDNMTjE1T093RGJTOFVhaS94cDJjcWdpa3pvRllueUtoMlQzWks0UlJkc1RM?=
 =?utf-8?B?bXdPVkZGY1lWQk45UnhrdlF1MGg4cTF5d29PcmFRUUdXMThMUXpCODBNZUNr?=
 =?utf-8?B?U2lyUTUzRURpZjU5NFFsSGlhb1Nmb3hSTW4rT2doc0tFWFFxQWw2b0lJUUFO?=
 =?utf-8?B?RkNmTXVQRURTM0EvMVRxZEY2ZXVZTHpHSFlBdWlsWmkrUTNNaVdKODVlVEtu?=
 =?utf-8?B?TGZqZWVCWFpWMkt5MVJReG9kNTY2eURISEtHVE5vV09LaDdwcWRLdUtXTnc5?=
 =?utf-8?B?N2ZUNGhUVWt3QU8rZzg3bXBhQnFDUEpjTEVEQnNqVVBmU29IK1UyMHQyMXNU?=
 =?utf-8?B?UnhUbkk3K2V6RytqcHZQam9vZWYrdHU0cDhKWjRnRllFbkZHZTByTFRQa21m?=
 =?utf-8?B?dHA1MzhWVXY2UkpkeDBuOE92Zmx6cHllM2R6UEZZZHpKWi9lcWFHYkY0eDB0?=
 =?utf-8?B?eWRVWGRyaTVmc1dieU9wTTdsQVRmWCt0NGg5T2pFbTRXaGFCaTBhQlJJSzFt?=
 =?utf-8?B?dmR0ZW9jTTBsTEpldnhLY1hGZlQrQnVXVzRoQk9QZXA1Z0NyWWtyckxEb1Jo?=
 =?utf-8?B?TmhNOG14TDNDNEdWdVBicHhaRXNjMERXWDFyMDAxTjZxcVZzOGZMZGhkOXpo?=
 =?utf-8?B?Q0FMWmd2eUxyZElHUTBNeExMakp6YnNJbGtHbzkxem9xM090cE5tQ0RCbkRF?=
 =?utf-8?B?bmlnbkhBUDVERTNQVkRzWFhrS3VwVlYxRldNZjJiMmdRa25ISFdjengzWm9R?=
 =?utf-8?B?eW8yVklmUEJiUmZ0R05Fb0FXZC9LSjVUbzhyc1BRSXFsR2N3TnVQU1N4UGE3?=
 =?utf-8?B?emR6RGhOekR5T3hLTUs0Nm5LWHltd25STE51Q0ZxYkVkaytqVkpEdHFJUm13?=
 =?utf-8?B?V2h2dUtJMUFZOTc5QWFLdElKUkNpWGZwK0xpZnVpcEpCV1FIZFFCZEo2S2ZQ?=
 =?utf-8?B?WHgxcVdpMko4eXA4eDJxY0pOUjlNZG4rc21PTUxnUXZHUSt4MXhUQzdTb2Zn?=
 =?utf-8?B?UkgrZ0FhU2RqTDk4L2w2cC9HeVVQdUhOcEZxek93VnNPKzh5SlhFb0REKy9z?=
 =?utf-8?B?Z0ZkRGNZM29la1IxSWE0cTgrNVR3VDg0clM0bHM1amg2ZG1Yd0JvMEtXWGJD?=
 =?utf-8?B?bm1WQ1RWVGNIUWRQWGI4c3M3K3kwemw3cUNGZm15OVIwZVlyMDBLTEZtUytx?=
 =?utf-8?B?Ui81WGpBUFJ0bGF2Y0dSQ3lCcjBBb0lyRGJycFQzMlJyNTdnOWMrMnBER2pk?=
 =?utf-8?B?VVE1bWs1ck93UFRvVlhLR0NZWHJ3SkpTeE0yL1EwYnRtSFlwa1dDZXFnbGJh?=
 =?utf-8?B?TSt6VFByL2gvZGZjdkFIZ2w2ZnFOT284NXg1ODEzSnhzZFBmSi8yVU0wMnF0?=
 =?utf-8?B?VjRsZnpncGp6T2VnWXN2VVJTTGFnL05IVDVQVjlsM0JLazVUR0ZEcjlXUDND?=
 =?utf-8?B?MkZzQ2w1NkZWT2d6eVB1ekptUktPOGkxUTJaaGhxbFQyWDRIQW4xbTJlZWdY?=
 =?utf-8?B?SVVVTGI3VGtLdUR1YzJYUk5pY0E5YUluUkg2V2JOY1FHRS9sWmpnekZjd2RD?=
 =?utf-8?B?ZTRmOWhGM1VPNUtVWFJOaHcxQlJGOTFLNldWYTI4VzZGNXE1OEw3QlcrYktx?=
 =?utf-8?B?MExpbUxkcFQvOUsrOFpXM0xjTW1KOC9UMkVCeHJBL1ErN3JIMDJlTEVCR1Ar?=
 =?utf-8?B?YURlSWlqeWFjTjRyelNWMkFHdHV4ZEZuS2k3ejlscmFSYTVhb3V6Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 482b423f-8166-4ca1-8518-08de792af97a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2026 13:44:21.5265
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Rclp8P92I1lVEqU/WK983NQRMs/XSCsg2gXz7NA1EjuDKefxNGuzBJAV/QvlAVc70d0pMprxDvfdWj85fIXkMB8YwcQuv0ElCQEkurvby58=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6516

On 02/03/2026 4:12 pm, Jan Beulich wrote:
> On 28.02.2026 00:16, Andrew Cooper wrote:
>> With the shadow stack and exception handling adjustements in place, we can now
>> activate FRED when appropriate.  Note that opt_fred is still disabled by
>> default until more infrastructure is in place.
>>
>> Introduce init_fred() to set up all the MSRs relevant for FRED.  FRED uses
>> MSR_STAR (entries from Ring3 only), and MSR_FRED_SSP_SL0 aliases MSR_PL0_SSP
>> when CET-SS is active.  Otherwise, they're all new MSRs.
>>
>> Also introduce init_fred_tss().  At this juncture we need a TSS set up, even
>> if it is mostly unused.  Reinsert the BUILD_BUG_ON() checking the size of the
>> TSS against 0x67, this time with a more precise comment.
>>
>> With init_fred() existing, load_system_tables() and legacy_syscall_init()
>> should only be used when setting up IDT delivery.  Insert ASSERT()s to this
>> effect, and adjust the various init functions to make this property true.
>>
>> The FRED initialisation path still needs to write to all system table
>> registers at least once, even if only to invalidate them.  Per the
>> documentation, percpu_early_traps_init() is responsible for switching off the
>> boot GDT, which also needs doing even in FRED mode.
>>
>> Finally, set CR4.FRED in traps_init()/percpu_early_traps_init().
>>
>> Xen can now boot in FRED mode and run a PVH dom0.  PV guests still need more
>> work before they can be run under FRED.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

>
>> [*] PVH Dom0 on an Intel PantherLake CPU.
> What other part is this remark connected to?

Ah - the commit message.  Specifically, that I've only tested VT-x, not
SVM PVH dom0.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 13:59:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 13:59:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244785.1544152 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxQHW-0005Ol-3c; Tue, 03 Mar 2026 13:59:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244785.1544152; Tue, 03 Mar 2026 13:59:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxQHW-0005Oe-0V; Tue, 03 Mar 2026 13:59:26 +0000
Received: by outflank-mailman (input) for mailman id 1244785;
 Tue, 03 Mar 2026 13:59: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=yKVY=BD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxQHU-0005OW-OF
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 13:59:24 +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 2e88407a-1709-11f1-b164-2bf370ae4941;
 Tue, 03 Mar 2026 14:59:23 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-48329eb96a7so38341925e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 05:59: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-48516f74a1dsm4328835e9.2.2026.03.03.05.59.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Mar 2026 05:59: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: 2e88407a-1709-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772546362; x=1773151162; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=eJb6jyNRbVRCqYi3utXU/8acVkjcEF4cLekP0QdSkZs=;
        b=IAVuEmyS/8HU4Zrb3A4Syn6T605vVjedC3dOnWVejj84mVcLS7cc9iBrATG5zy9T6w
         unwxmlEQvVCgvtBZvDCmgQGT/gB4uGt64ls6mIW02K5YPEDbsDHjhsc5pN3EMDisHUYM
         0rf22cJ/eg1uMBlVy9oPA+LVCFxuJo1pBEpF+px5O3ov6rp8s8CWzc/Z8qp4fXaZTJvK
         dbaCRJ1fAkg7LQbo7K8SV7n0kbkWl1rw78n0SISrh5Hi1cDDH5x9XSYtXwYp83d8rw8D
         JxHV4G33btIPN8YOwIwIXIUa+NDelWY6fERmXBsa3SkDbL3mFoKzMJqYlXIHQTn93Mr7
         ripw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772546362; x=1773151162;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eJb6jyNRbVRCqYi3utXU/8acVkjcEF4cLekP0QdSkZs=;
        b=epqO9QabfNHA0DB6owcHxJwtnbanEd5kP/bQKrao31On+Tz+HAzOlG2PtzHPCbv1tW
         OpHr9ErgCmYvSeRDeTHSCbahIf+iYJofuCaNzYRhhA40LKcDKL+WA0N3DHPplPgcKa0A
         Gg0kdAr3fBS3MrU9hvWx3RnPaaMF1jPiXTOsyH6YnFuG8qul2vBBkUHbxvSQvZrRl/ph
         vHhtapCqohPdeZGLGXGFk9T/5yCG2IxCQJ1GHf3AQQ+XL085FpioTmBiTVmOwW6d4HSA
         hL443FEqP1oCmNk54JcRfVDorvHDcxq+XnanwXEbxaC9WAvuHw2izpvL2HPXWHaCztvy
         hfRg==
X-Forwarded-Encrypted: i=1; AJvYcCU49202SRf5auPnZWS9ZzP7E1Tb41wo4GfoR5048s7jrR71dKIbcbUqHDmcA3HgbHiC4Xk+YeyJzls=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxj0v/ZvId6n9w7jxqaW6SNhjtCFpbGhUnFU6hqSrhPXi5fuLqf
	4RZtYBZJKhl/JlVsL2dS7ZguxMi259fkmIp+UWHDfyxpNFHvLZnoAQT/xtCySx4Fwg==
X-Gm-Gg: ATEYQzx7SRnchRBlmwt292kwN0oTlTNgkrZc1lXt8arG2gSdIuLXvoOTi/1gdyM9Bdh
	lXmmsZokBgDG7qdDnF34Cs0xfOyZE/rLQPY7ipTlzoRd3OuV9aNsLg9NzBmkciTOftT8GSci2Iv
	bmgJxnCRkDTy+ufMWHyl/kGn5F5v1AIu3FkmVqitulbIk+JQoKZu1mUG0wSN5dLF2Ezmy8zDvn2
	I5iv13bKkwvxEWnNw4G5Wk/9birbEyZCaHdJ1TtjPm/TfOvs2vDywsjAJjXMd0EGOItLskRgiQA
	W08SCRfiGSjh0SVQ7ogm0m6LmY6lUOM9mHQq+7Y0T7fVUNE9I11Gc4sGjckwK4glCpj/b+3P53o
	wI2mDDU381QFLt7NqLo5SspKcsmENF9srnepkOR0TiYHrynilbAjUD2NBSiwOoxNQuS2Y7e8kt2
	WFSss0oea6Ijt7gNimDuGfwJc8AagFQOWaOo/HKBX+1UmoM5lg/mre4r1COQX2RMe/11UwcuiIT
	ei7cAk8rLwma/2mjWNivaRs3Q==
X-Received: by 2002:a05:600c:3486:b0:480:1e40:3d2 with SMTP id 5b1f17b1804b1-483c9bedadcmr292926195e9.29.1772546362352;
        Tue, 03 Mar 2026 05:59:22 -0800 (PST)
Message-ID: <766824c8-2ec5-45bd-9aed-1e84ad3ff779@suse.com>
Date: Tue, 3 Mar 2026 14:59:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] tools/tests/x86_emulator: avoid duplicate symbol
 error with clang
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <cover.1772189234.git.edwin.torok@citrix.com>
 <358a87d89d50475a57f2a5d6ebea01d95a1df6d7.1772189234.git.edwin.torok@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <358a87d89d50475a57f2a5d6ebea01d95a1df6d7.1772189234.git.edwin.torok@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 27.02.2026 11:58, Edwin Török wrote:
> --- a/tools/tests/x86_emulator/test_x86_emulator.c
> +++ b/tools/tests/x86_emulator/test_x86_emulator.c
> @@ -1882,8 +1882,13 @@ int main(int argc, char **argv)
>  #define decl_insn(which) extern const unsigned char which[], \
>                           which##_end[] asm ( ".L" #which "_end" )
>  #define put_insn(which, insn) ".pushsection .test\n" \
> -                              #which ": " insn "\n"  \
> +                              ".ifndef "#which"\n" \
> +                              #which ": \n" \
> +                              ".endif\n" \
> +                              insn "\n"  \
> +                              ".ifndef .L"#which"_end\n" \
>                                ".L" #which "_end:\n"  \
> +                              ".endif\n" \
>                                ".popsection"

Nice idea, but why multiple .ifndef, and why emitting the insn even if the
labels are already there (and hence won't be emitted a 2nd time)?

Further, if the compiler unrolls a loop and instantiates such a put_insn()
twice, it could pick different inputs (where flexibility is allowed). Most
present uses (including ones I have pending) meet this requirement (i.e.
permit only a single register per operand), but vmovdqu{32,16}_to_mem,
evex_vcvtph2ps, vpcompress{d,q,w},  vpdpwssd_{vex1,vex2,evex}, and
vmovsh_to_mem don't. {,v}movsd{,_masked}_to_mem, pcmp{e,i}str{i,m} and a
few more could also end up being problematic if different addressing was
used for the memory operand(s).

None of those sit in loops, I think, so we may be safe. But the constraints
need properly writing down in a comment, I think.

> @@ -5248,7 +5253,7 @@ int main(int argc, char **argv)
>          memset(res + 3, ~0, 8);
>          regs.eax = (unsigned long)res;
>          regs.ecx = ~0;
> -        for ( i = 0; i < 2; ++i )
> +        for (i = 0; i < 2; ++i )
>          {
>              decl_insn(vmovsh_to_mem);

Excuse me?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 14:05:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 14:05:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244796.1544161 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxQNg-00071j-Or; Tue, 03 Mar 2026 14:05:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244796.1544161; Tue, 03 Mar 2026 14:05:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxQNg-00071c-Lo; Tue, 03 Mar 2026 14:05:48 +0000
Received: by outflank-mailman (input) for mailman id 1244796;
 Tue, 03 Mar 2026 14: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=yKVY=BD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxQNf-00071S-M1
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 14:05: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 128020ed-170a-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Mar 2026 15:05:45 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-482f454be5bso61561095e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 06:05:45 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485133426aesm25494955e9.3.2026.03.03.06.05.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Mar 2026 06:05: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: 128020ed-170a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772546745; x=1773151545; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8ihoPi48xkGuWHBXmjYqxnC0s+ZR+a0aSNzSbBs2yQQ=;
        b=a8VAZRkI+40KDXNSDUb3P6AXnefLn2OfQwV6qkyQvtl3ATm1CFDYCRmmkN6teDloHF
         KvDcMdV5iAvDI1h+Flk0rjbfCZrXOQzw9NUHMgSD3RHyidDqSkegBD4A4O/s94LXpdXF
         yXdRBc7OB3mPeWh2fybRGm0z55Ylv7+dINUgDAzuFKPLEE4HmcgsXnEpG8dQGik4h8mW
         x/hJlOcSrmuj87e0gu5hJzk+xe65ymMr3NabPqJFhfy+sGWtyAunsAjyG2/1HAjCsbqA
         q0E9Vdtu25yrqWNEIEr6ti29oxtzJLLkUbEyqjEt5uMbWAlaXty1+sXxqPyLExCEDMlY
         T7rw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772546745; x=1773151545;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8ihoPi48xkGuWHBXmjYqxnC0s+ZR+a0aSNzSbBs2yQQ=;
        b=QbF4fgp8DSdvJFkZjP248NFsGGDMcp07rGKmusqvPw6URAHTzduBaACufM89zvazUf
         uXdbEKUKTjBYmMW3fnsYFcG792KkFwhr6soF9QNqg4gc+QimvTBl5AqIAosD/6t91qSa
         3C3ocSTdQIVT45PB+MzZfLHaj8XYy2847saCWEoBpXlxFEmYvVPolH/UhiiWL25eBlal
         oh/PoVi6GIuA5gjxa5ZxyWFVtc9GOm/YzL0Hamo8/rz7h7+sHwNlTxQ9yzoep0XtVf9Z
         sH9JoOcDttBISGnxwUZPAtznqNHP7vNCE7IaisyJT1KdnFmW8aZteQ0aQelxzSrupLSh
         z3Ng==
X-Forwarded-Encrypted: i=1; AJvYcCWYty/LgHDabdipRI+NGykxWscROd4AX0M3ZOylmLufFqJckOMIE3k2zTsCcXZ9tcr7fv8lTvjuY0s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwfJnnQTd9TOJS8T/CQcF/wk8Ng1cvCWkgZmQ9oKDX7Iz5ZY8ZQ
	l+NS7c+geT4qVeYuIK4B9b/O8U6HnLLMex6KuS1CjUadido3Gh9mYv6ex8oYg5aMEg==
X-Gm-Gg: ATEYQzwLBgETlN/wuXZYLfFIG+DtXYaYJKTpInox3Fm6eA7naIl6w5imbCEoXkNHG58
	3ekiGx0LlXT3NjUWuglIWVAp2HuFt7NaOuYptIio8a8YJADIa+mTEKvV0pIqKJMyOxoqeKqZ06J
	DEU9qYNUo/YvNbdrI5R4PiZAc54EM0q+PQwIpas192daOKTF8Yz+wVKDVS6NC7RPXzWUNgnDaFh
	88Uown8ifwE4MhKUNlUr5O7QwgxlUyGsPEvlxX5/uyeEHYHokx/OSvg1XMTTsHBgU4TQd4nxwxh
	mTNDIubMrkIiEneDmyeWP2MU5aMvWBu9v6SRuhsHjW9S1fBsJcxSvV+r49Tqy3jokLB9ZZ1HyBC
	f+kVeeR+1tr9jgxhThaCPcN/pMAWbjSWVzKUD2J/T5FiltuseLVCb77aNC/lovBERQE0vO7J/6h
	rJDbVCWhH1q8/QWRzvw48MQuJHnPRL1dsQw6U0GqAKe1+LJKhQbhhKejaHWMSunTuc8PrCOVino
	5Sw/MBmGfpMISA=
X-Received: by 2002:a05:600c:4f95:b0:483:29f4:26b3 with SMTP id 5b1f17b1804b1-48513a5620amr38725815e9.1.1772546744457;
        Tue, 03 Mar 2026 06:05:44 -0800 (PST)
Message-ID: <5116fc4c-c002-44c0-bda8-5af60a075868@suse.com>
Date: Tue, 3 Mar 2026 15:05:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/4] tools/tests/x86_emulator: fix build on clang-21
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <cover.1772189234.git.edwin.torok@citrix.com>
 <e8bd2b2ac25bf3aa25e06a33c01511d040cc8bca.1772189234.git.edwin.torok@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <e8bd2b2ac25bf3aa25e06a33c01511d040cc8bca.1772189234.git.edwin.torok@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 27.02.2026 11:58, Edwin Török wrote:
> clang-21's built-in assembler is enabled by default, but it doesn't
> support some mnemonics:
> ```
> test_x86_emulator.c:2636:36: error: invalid instruction mnemonic 'fsaves'
>  2636 |                        "fidivs %1\n\t"
> test_x86_emulator.c:2640:24: error: invalid instruction mnemonic 'frstors'
>  2640 |         asm volatile ( "frstors %0" :: "m" (res[25]) : "memory" );
>       |                        ^
> test_x86_emulator.c:4251:24: error: invalid instruction mnemonic 'vpcmpestriq'
>  4251 |                        put_insn(vpcmpestri,
>       |                        ^
> ```

Btw, for this last one to work with gcc older than 7.x what I have in a
local "helper" patch is

# if __GNUC__ < 7//temp
                       put_insn(vpcmpestri,
                                ".byte 0xC4, 0xE3, 0xF9, 0x61, 0x16, 0x7A")
# else
                       put_insn(vpcmpestri,
                                "vpcmpestriq $0b01111010, (%1), %%xmm2")
# endif

> Use the external assembler with Clang for consistency with GCC.
> 
> Signed-off-by: Edwin Török <edwin.torok@citrix.com>

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

> --- a/tools/tests/x86_emulator/Makefile
> +++ b/tools/tests/x86_emulator/Makefile
> @@ -297,6 +297,11 @@ x86_emulate:
>  
>  HOSTCFLAGS-x86_64 := -fno-PIE
>  $(call cc-option-add,HOSTCFLAGS-x86_64,HOSTCC,-no-pie)
> +
> +# clang's integrated as does not support some mnemonics:
> +#  https://github.com/llvm/llvm-project/issues/183635

I see they already confirmed at least the {,v}pcmpestri issue.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 14:07:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 14:07:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244805.1544172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxQPb-0007fo-48; Tue, 03 Mar 2026 14:07:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244805.1544172; Tue, 03 Mar 2026 14: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 1vxQPb-0007fh-15; Tue, 03 Mar 2026 14:07:47 +0000
Received: by outflank-mailman (input) for mailman id 1244805;
 Tue, 03 Mar 2026 14:07: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=yKVY=BD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxQPZ-0007fX-MG
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 14:07: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 592ae95d-170a-11f1-b164-2bf370ae4941;
 Tue, 03 Mar 2026 15:07:44 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-48334ee0aeaso48303835e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 06:07: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-483c3b4410bsm366195305e9.6.2026.03.03.06.07.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Mar 2026 06:07: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: 592ae95d-170a-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772546863; x=1773151663; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qTpRZslKdHNhiq4x9+zdcy+FrkRxCVCvl4abBnfa+dg=;
        b=dBMcjxhNVAW6Y0UT3L22XhdOLt2dxV+ue+6X/le4pGyWpGLt+61bi19YHLTRAnxvMQ
         gE3usq/gUJgc+xQdwitQ506xBqnYcOrGkQ2X89t/Kxedg9YDL3k5CaC7WB8SWWBzByxV
         10O5IK+nRCjGxLh88gh9VF3N9a5sFEgDRqzs6fygc2hSTTini/TLDdSctle4sIBeyCQ1
         oj5Sl9QEfHdDs0RjeuGYZMY6y1KN4B8Yl+Mzn1vBr9ixZAcRZ7SEH9aMZta4UAXv0OTe
         lGdxIL8RnNnNdrGNm7oXi/tGXrJxb4tl4KpJ5oy1CpifqcZCm2agv79kdTjqMlftlmzz
         xPwQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772546863; x=1773151663;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qTpRZslKdHNhiq4x9+zdcy+FrkRxCVCvl4abBnfa+dg=;
        b=q157k6/sFkSow5HFv4VvPsIBKKx8XHLrF60Ewc6m7cDi2s6sCjB7WC+SiJYB+aqgWQ
         UR9bCfStLDMl582vOGBswMkGIH2i5klD9FYw/6KwAKRhw3QiEksXxTeQT1HP9L2o+Db5
         eN0Ahfjrx1yiBmiX4Xe+D3xGq1l11y4u49HdFhBAgQdrl7Lqfh8AfShktiShAO1KZgo5
         qdM5quPG9NGfqL5p6e/kw3PdJeG4U8X1ffbPN4pMfVdpUd+BmlBLSyqPGpv7W/xQr+y1
         7MWt9qCwGA0BU0CDkyzP6+JbMSwqNreVLAGGBS18yJqzT0AFEQePbmBbKjwTp/O8WkSU
         Vf3Q==
X-Forwarded-Encrypted: i=1; AJvYcCUrhLwWw5u4cddqVt/K4zDqV7+8pTRaKtibmXq5HohqfYEu7DBsT8Eq9fMi4Wge1EEnOflfrs1NzMc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy3mLgIdlbqayoMybFPlCgCaf0PbZ4hhu6hxbYVd4hP7CEf9u4v
	LG951jj7YnXX0GzZHfiBN7ysb7T1puHDdzbLV9yaVoz5yZOu4BRRlxaSJgPDd5ziaw==
X-Gm-Gg: ATEYQzzfpFDQ7eWL/vtdk/RE/OnxNp8rKaSU3G8k6t3QCIMdnp65SQhYPOq1zXZvbJx
	IcJQV2BZtatvut6s2qx9X5iZTJJb9esFOvSBrKUjFhVN3AUCcd68zLVDu8xgHn6sQP6bKHZyP26
	WYC25WddNNdGr8j1K2peZB8MLoU5mv7ZHMPIsp7mkxN0ugi6tckqunjymBnMDWY3dSpgoNev9UY
	y0GjeacOUQ1KqJaQ26JOpuPe+MGH96bQTtU0q2qhbBKsIKxQfOwkwMZHxo2QlhcVt/Wmdic5G/m
	nrd5P3vfTZildpOgUpc7PyXymuNxIN0s8dvm6nZitFuVqtvj1mmWKVxVLDVaoi2NEgiPkThS0f/
	m3ad+mzaMoeVAyUSNwypSj9YrSqCgKV987+OsEB3TKs10iNEVsgb2LKwfe+wNSNwTnczdoEHyFK
	kZUfNaUtylM3h18sujbdaSwgBd7+9EOfc5jE/4yHlBDyG5A0HIQM2w4TegU3Cm4LV9lXJ2u/K9p
	cEYQdp0p2x3tgk=
X-Received: by 2002:a05:600c:1c15:b0:483:6d4e:9811 with SMTP id 5b1f17b1804b1-483c9c0b6ddmr315268175e9.31.1772546862560;
        Tue, 03 Mar 2026 06:07:42 -0800 (PST)
Message-ID: <02d59353-8d59-4151-8428-dd6458f9165b@suse.com>
Date: Tue, 3 Mar 2026 15:07:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/4] tools/tests/x86_emulator: fix undefined behaviour
 in shift
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <cover.1772189234.git.edwin.torok@citrix.com>
 <cdd62288eed6b147e6c3e6d2c402de36cf3ce42a.1772189234.git.edwin.torok@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <cdd62288eed6b147e6c3e6d2c402de36cf3ce42a.1772189234.git.edwin.torok@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 27.02.2026 11:58, Edwin Török wrote:
> --- a/tools/tests/x86_emulator/test_x86_emulator.c
> +++ b/tools/tests/x86_emulator/test_x86_emulator.c
> @@ -1100,7 +1100,7 @@ int main(int argc, char **argv)
>      regs.edi    = (unsigned long)res;
>      rc = x86_emulate(&ctxt, &emulops);
>      if ( (rc != X86EMUL_OKAY) ||
> -         (*res != ((0x2233445F << 2) | 2)) ||
> +         (*res != ((0x2233445FUL << 2) | 2)) ||

Why the L when res is an array of unsigned int? With it dropped (happy
to do so while committing):
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 14:09:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 14:09:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244815.1544182 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxQRO-0008HF-HT; Tue, 03 Mar 2026 14:09:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244815.1544182; Tue, 03 Mar 2026 14:09:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxQRO-0008H8-Dq; Tue, 03 Mar 2026 14:09:38 +0000
Received: by outflank-mailman (input) for mailman id 1244815;
 Tue, 03 Mar 2026 14:09:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=yKVY=BD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxQRM-0008H0-Ni
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 14:09:36 +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 9b13f9eb-170a-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Mar 2026 15:09:34 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-480706554beso63433095e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 06:09:34 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439abdf5430sm24477539f8f.5.2026.03.03.06.09.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Mar 2026 06:09: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: 9b13f9eb-170a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772546974; x=1773151774; 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=PcPUAgrZWGvWRnkTHeShUzedQXW2PkdQLjlKa7JzF0s=;
        b=MrZto8OGBEkYEKQuulYj7i0e/kWv8bi7rVG/ipxF2+ujoXpBe5IS6/xlsq8jMetuFl
         L3i3keEFJIQ28/hG3GA5PPyGqoVs88eU6FxKcEkKVQxt0SgJyogLoayKTlqcC/yAyLYV
         brx4lJU039w1ta6BDn9N8CB0tXMmkjxo8r0RmDc7UI0wVwo2su8ZeD+V6o3kzlEfJ+lD
         DL+H2+Bn4HtOpRZQ4Af6M++GULOZtfuUZ2hAraW20q3xpQGgm43oW4fPeOCUd6gpB2HB
         QhPjSuYNlC9kjsPJATStOjW6FtOa5VCJB9tufNf1zICwVicGyrVLMWEyvw8mng1m26S7
         VPvw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772546974; x=1773151774;
        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=PcPUAgrZWGvWRnkTHeShUzedQXW2PkdQLjlKa7JzF0s=;
        b=LX+w9Us5eJfd/iN8U14sVoD1PzboDnRyu+dcpAwPSmW7HUd2DXJuOGhRnRxqZyyLP8
         tUurJeri5D1bsPWYLfrhe6YkYCYntltaY1TvFwq0haj+ZzZjTDmh/EedJdHPe4J2tzl0
         A5NHkpsznKkkxZQHf/9SkBUSi9mSzBxPUFWuXaicXvvvs5yeOpWf4oLxkUksGfr4a+tV
         DwpJxupbk5+2fRJ2dncWNSa2U6PYlnrvmsFCSUzixbqzEl88p60Fn6Vff3BtNTwLEVKS
         t4E9H8IJenaI2iopdV9m2N0a+qd4LIV3Mwd8QJexqchFURXzpmVZgysIRQWF+Q2/kQVX
         0MIg==
X-Forwarded-Encrypted: i=1; AJvYcCXKZqLH7RLo1dqcgJ1oVl3yU0414VEyf/enulEG1A0FVo3uaty+BEY3dk8a7r4jwD5RKEIUk1A2ah8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxjXGRfV9+zOCgzMdtX8/CWUINKThYQYnJ98cXDsC0DKe08Y7tw
	f1Xam1teIMnZFltJogiT8ajx1hN9RxLTac3MpCuH5oy+cBmY2e2R0Pb9SktArbYsZnUwIslt451
	5Y/w=
X-Gm-Gg: ATEYQzxRe4gvk5efVP2bEU+vn4jVDR4aaWJ8sTQaAvOy0OQ9hyZnLoAdmy8Lh3CjwGV
	EZaZJpb/g/1ChL6BfjBX/X+zHaXNfDIoGKg/uy15tKDVhJIv7EHMO7lVMVBp3NUDiHpcTIf/aow
	5sjAtGHvvd3ER3bGV7jiCR/8xiZGNH9zcYmx2BBzonRZa570TCFCF6IrRB0gue/vrvqMuUhLmjg
	YgkO5zb0DUbw/Reh4Q45g8BFedD+fQQhWZmxCJCFDu4t8ZzhPdsJTaZLlrTUXzfzoCcM305KAVS
	2NVk9GCBubxs8YR4CRkFFmqPHsruSs2nepGUzGITATuRrnKNqFUNQC/VVlwwzqBJFgbCtLGskY3
	NkFK32CNAmx5VPvEJh6DTuJcow1vAuRL/OSFTKd71Ic2ibtpKXB5qcDiFWmDhB4W97HKiKVECcY
	JPBVfgAh0EfKKafISuF2GEyAunJXpx0AmHXGH7AIGDraWfsHYOdGyrCCSJyhquEZL5/QmDxGH3V
	V1BrxRTvRpaBGs=
X-Received: by 2002:a05:600c:548a:b0:483:aa2:6bce with SMTP id 5b1f17b1804b1-483c9bdb0c2mr262897845e9.30.1772546973894;
        Tue, 03 Mar 2026 06:09:33 -0800 (PST)
Message-ID: <803004bf-ab0b-412e-9892-e22db70e918d@suse.com>
Date: Tue, 3 Mar 2026 15:09:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/4] tools/tests/x86_emulator: fix undefined behaviour
 in shift
From: Jan Beulich <jbeulich@suse.com>
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <cover.1772189234.git.edwin.torok@citrix.com>
 <cdd62288eed6b147e6c3e6d2c402de36cf3ce42a.1772189234.git.edwin.torok@citrix.com>
 <02d59353-8d59-4151-8428-dd6458f9165b@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: <02d59353-8d59-4151-8428-dd6458f9165b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03.03.2026 15:07, Jan Beulich wrote:
> On 27.02.2026 11:58, Edwin Török wrote:
>> --- a/tools/tests/x86_emulator/test_x86_emulator.c
>> +++ b/tools/tests/x86_emulator/test_x86_emulator.c
>> @@ -1100,7 +1100,7 @@ int main(int argc, char **argv)
>>      regs.edi    = (unsigned long)res;
>>      rc = x86_emulate(&ctxt, &emulops);
>>      if ( (rc != X86EMUL_OKAY) ||
>> -         (*res != ((0x2233445F << 2) | 2)) ||
>> +         (*res != ((0x2233445FUL << 2) | 2)) ||
> 
> Why the L when res is an array of unsigned int? With it dropped (happy
> to do so while committing):
> Acked-by: Jan Beulich <jbeulich@suse.com>

I should probably add that nevertheless it's not quite clear to me what use it
is to compile the harness source itself with sanitizer options. I can see that
to be useful for the core emulator files compiled into the harness binary.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 14:18:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 14:18:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244829.1544192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxQaI-0001XY-93; Tue, 03 Mar 2026 14:18:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244829.1544192; Tue, 03 Mar 2026 14:18: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 1vxQaI-0001XR-6C; Tue, 03 Mar 2026 14:18:50 +0000
Received: by outflank-mailman (input) for mailman id 1244829;
 Tue, 03 Mar 2026 14:18: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=yKVY=BD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxQaH-0001XL-HR
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 14:18:49 +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 e47a8fc0-170b-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Mar 2026 15:18:47 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-439b8a3f2bcso1707883f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 06:18:47 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439ba2a58dasm11432271f8f.27.2026.03.03.06.18.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Mar 2026 06:18: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: e47a8fc0-170b-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772547526; x=1773152326; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HuTfQgsOPgXncwtzFb0ToG36NX3pcQJjsDUuwPvdBSs=;
        b=FDD8nsUFt75xmCdQxlEkGUS/HYkaDSwlzSsKETGNQZ+IJvXMm7IAnc9B43/VgMipMU
         1FGJ49WMKMcgY/t56mr8hwoBG/9cm69UJI+AME7IT5wEImcELdLLyhmwtU+De3OR66Ag
         GQKf7Z2Gnme5IoZkKuMy74+Ame+wn2UV3FrRQ4B7L/U6iUI3IeM7C82ozkhg9ZqJtXIf
         iO3JzrPC8/ec/5MZ9VFTGOdjHblfAEEhJivcWM86WHAohBmu1DXA3ooH54W0hV0dQmAY
         yhD9paGP1LiN6Bo2Oq9HFcysEnx1jlDMP0J2KmY883M6CiSb5ZU0JbnVC8aU9P4LlXI4
         FpRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772547526; x=1773152326;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HuTfQgsOPgXncwtzFb0ToG36NX3pcQJjsDUuwPvdBSs=;
        b=MjuN7tvz6zMP6fIhtolyDvLma2LXZxKnpOlD9qdOH3tebuJ+oJ5qYW2Ovrqo0m15+7
         RxV3M+gTeWo29MxytkVnUB13mg0op6t21qK3Pw6wdYAZ3RmbeCQzxrw2jCdMkGYJV0Ua
         FhG61J3VGm3hsh2Lm/ln7PiLTvGl5XuCftdc2Zf0zjYHDc+DD+Kui+wo+tHq1pSV/UKE
         RuiPBh59BABaFG19eW8NMEouvTE7jfP1kAOyB6gC4xI8Y+8KwCbvmbMoc+TLaErL9npR
         FnZ5x9d/tZNIUKN7LkEe/OFytHspfhq7XIm+kTEXS0OAhX/npugeqWPnQjSefMmmdK3V
         HcAQ==
X-Forwarded-Encrypted: i=1; AJvYcCXlfXH6eRT00ZdM44TzZcwkDLamSzM8WjeeiKjYSH+23jDJzpydBKwrDYZyywYwqAacrYcI9y0Z5cM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxJi2/D5aseioPDLSyvWunNvgQ1HLoalLROpgJd5WQ+hM5ZFdXz
	wNPnAusJ1XdXhyG5+nJ8NTgwxzpKrDVUewYlmTpgQiUn67xUge54Uo5uUVoIAaClYg==
X-Gm-Gg: ATEYQzwAFfMjdzkZ+4tSpUDDOxguOJEIdNCZ9DXyodudJhPdsOAvTvgc5ZH9b5tX/du
	a8GPoas78pcbXDRbqsBgoc3jTGNQHtupzsd7BLWkn1Ra+wXuTvDplv/nuMX/dn+WsgPX67iU3b7
	2jOEBWXoDVxhHqAIWaPm/CqXn+KIL0XglmVEPqg2Uwm3ilgrx5d9atZVSXo2N2JmEjeL5SELaC3
	8ZnPZk1aZwVd32xCThK1SGPRk2zZKncxOcp0+4fmrak7UVc8SFUxS6F2A9xNlwCQOunsUg0wV3N
	Z8V/UkdRBUXAFOMNmbgnAJrrkRJK4pkOsSEwkgMQezoG2Kb7Nly2ryT4WQKVZScEIJYf7Cni/11
	yspFhaVefkaRn8TRJlFb7HLZUbVxR/NlWtDXNsks527KKuSM58CD8HlY3MwASD1W3XV9ZS/ZPT5
	ZbeJvv9yClvMWoaKdAQQgATlkQs0XK1stqF6DxCg2wE0/PZQF9DzjvyKwuljP3qhHLUdAqrqOsK
	0cAUGlVt2c3OM0=
X-Received: by 2002:a5d:5885:0:b0:435:9cd5:bb2a with SMTP id ffacd0b85a97d-4399de032c0mr28955619f8f.24.1772547526439;
        Tue, 03 Mar 2026 06:18:46 -0800 (PST)
Message-ID: <c1ae770f-a408-45cb-907c-dab200ef5326@suse.com>
Date: Tue, 3 Mar 2026 15:18:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/4] tools/tests/x86_emulator: avoid passing NULL to
 memcpy
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <cover.1772189234.git.edwin.torok@citrix.com>
 <340f6a9fc4fdd4216f41e4bbdb1234069322d1c8.1772189234.git.edwin.torok@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <340f6a9fc4fdd4216f41e4bbdb1234069322d1c8.1772189234.git.edwin.torok@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 27.02.2026 11:58, Edwin Török wrote:
> Fixes this `-fsanitize=undefined` error:
> ```
> test_x86_emulator.c:614:12: runtime error: null pointer passed as argument 1, which is declared to never be null
> /usr/include/string.h:44:28: note: nonnull attribute specified here
> SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior test_x86_emulator.c:614:12
> ```
> 
> Although this is more of a grey area: I don't see anything in the
> standard that'd forbid calling `memset` with NULL and 0,

There actually is. In the C99 spec clause 2 refers to section 7.1.4, where null
pointer arguments are excluded. Imo for memcpy() etc exceptions should be made
for the case where the count is also zero, but sadly nothing like that is there.

Nit: Why do you talk of memset() though when memcpy() is what you alter?

> but `glibc`
> does specify it as non-null, which allows the compiler to make
> optimizations assuming it never is NULL, so this is undefined behaviour
> only on glibc.
> Best to avoid the potential undefined behaviour though.
> 
> Signed-off-by: Edwin Török <edwin.torok@citrix.com>

Acked-by: Jan Beulich <jbeulich@suse.com>
with both nits (above and below) addressed. I can again take care of that when
committing. (Same remark applies here as to the usefulness of compiling ...

> --- a/tools/tests/x86_emulator/test_x86_emulator.c
> +++ b/tools/tests/x86_emulator/test_x86_emulator.c

... this file with sanitizer options active.)

> @@ -611,7 +611,8 @@ static int fetch(
>      if ( verbose )
>          printf("** %s(CS:%p,, %u,)\n", __func__, (void *)offset, bytes);
>  
> -    memcpy(p_data, (void *)offset, bytes);
> +    if (bytes)

Nit: Style. A well formed if() is even visible in context.

Jan

> +        memcpy(p_data, (void *)offset, bytes);
>      return X86EMUL_OKAY;
>  }
>  



From xen-devel-bounces@lists.xenproject.org Tue Mar 03 14:31:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 14:31:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244841.1544201 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxQm9-0004F4-89; Tue, 03 Mar 2026 14:31:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244841.1544201; Tue, 03 Mar 2026 14:31:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxQm9-0004Ex-5c; Tue, 03 Mar 2026 14:31:05 +0000
Received: by outflank-mailman (input) for mailman id 1244841;
 Tue, 03 Mar 2026 14:31:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dwqp=BD=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vxQm8-0004Er-4l
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 14:31:04 +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 99a01732-170d-11f1-b164-2bf370ae4941;
 Tue, 03 Mar 2026 15:31:02 +0100 (CET)
Received: from SA3PR03MB7419.namprd03.prod.outlook.com (2603:10b6:806:39c::6)
 by DM6PR03MB5162.namprd03.prod.outlook.com (2603:10b6:5:24a::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Tue, 3 Mar
 2026 14:30:57 +0000
Received: from SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc]) by SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc%6]) with mapi id 15.20.9654.022; Tue, 3 Mar 2026
 14:30: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: 99a01732-170d-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Qd6lXoyfWFhzelmtfKUR0zKnWiMAyLFvxUXm381/AjpOkqgPf/wZgybZInGNz0HRWJio1nyjNl/K81xbDva4Mxr+ialCScyx+fU4v5JkVHDOOSY8wfF8MjNTREeq/xXxq9nCuVLRB3fHUAOP4leThJCwaSAI6edjDmMLtKbVYC25lhIuBwb5bZJNz/bFnrbvNwstmmjZ4WMDlBzRQQh3itsIjaYkehsrEdS/xr0Sfj7kFBODG0CXohAC6QoIFgiNUs6EYb0qP+JqFqLouDDjElwlDsMngQ8jovqoDcXt3c9WrFwCWlF9Qvrm43Zga+K+jz5jf++RQnxvxQYxqH/PYA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CNA/W/W10RAlFstbwozHjga1br7vkdyk0F1vsAPxDBI=;
 b=ZBZZ48hGWjkuvVd3Hn1tG5vPuOJ+qM7Vogl2eKEE6cq6SCyXvELvzANOlPGhUEruJVBSTQbXoA136Cw+K9it/X8V1udzOjw9XCfJixTqmAMyrwqj+t7OurCCiYhRuSu+JkDCNDDkgRaT0l6bhWdNdwdGhMpWLCLWWlwYml37vbzwtg0qrnLQVih0ggxS0IESyxMhDkyS1AwomYc8stCqe1Ctu/zX0iBplBRhH+woPtZ4dRj9/oEJaevplbiLwOLkZ42XNU1rxOU4FdvWi0vlzDf6Q7NUEKLDhlgB7T+ONCAbLGKW5OmJUCrZHE4MY9C+NA5QwtUw8SlSMDynBSdakg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CNA/W/W10RAlFstbwozHjga1br7vkdyk0F1vsAPxDBI=;
 b=XgzCocSCK4Y6ukfRuzcdvbWOhjNs2Qdzlt8Gu0DkbjkHzgJGU0srMt75HZHESDSP1BRiEp9ffaMyenobq2PDEojhUDwsILv/QdBVzD9ncJnfTPvb0QwnKA5iY3YNy9tGsMpQIyCbFejnm80F0ORnSd3SnYSu5/cTMil52oMxtF0=
From: Edwin Torok <edwin.torok@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Roger Pau Monne
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 3/4] tools/tests/x86_emulator: fix undefined behaviour
 in shift
Thread-Topic: [PATCH v2 3/4] tools/tests/x86_emulator: fix undefined behaviour
 in shift
Thread-Index: AQHcp9gCO67+yoRhk0SyNFZDTeRIWLWc3oEAgAAAhQCAAAXugA==
Date: Tue, 3 Mar 2026 14:30:57 +0000
Message-ID: <28F6CC85-F12E-4C13-B432-EBC6A0D21CCD@citrix.com>
References: <cover.1772189234.git.edwin.torok@citrix.com>
 <cdd62288eed6b147e6c3e6d2c402de36cf3ce42a.1772189234.git.edwin.torok@citrix.com>
 <02d59353-8d59-4151-8428-dd6458f9165b@suse.com>
 <803004bf-ab0b-412e-9892-e22db70e918d@suse.com>
In-Reply-To: <803004bf-ab0b-412e-9892-e22db70e918d@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA3PR03MB7419:EE_|DM6PR03MB5162:EE_
x-ms-office365-filtering-correlation-id: bf9cca10-afad-4f09-9685-08de79317bce
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:
 6Lljb9aDSaAyyOxIMva/hhtrlSC7FTVRnjXZhXmUOVufi3J9eI73+ZkCxTt2RCCsE8YafKP60WTMlS2j2IjfNgLS/1qq20xDYGAr/Uh0XHAoMT1DJr2m2fFre7hxKcRqLqE/tf0pAue2UYcvY2eI/2FqrnH/xjfP9tvVfx9na0QoK8DBFQ9x4FrHDxxgWoQuwumXI48u3bkdYBr7eB0KYQViWl9ascVA0sQR+cu8hgx2jfq4RAm9bZdhrI7dFiVNBRbacQU48LXSs43bo0MfOlDrmERuYtiGMZ0QNiPCHY2ourmQsvhyx3X8qXYZoUN/Ble87WxWny0uTdyGyijw1Y0wBJbuqfyqzsjbAFTcqynzTZW5sRBzlvVEvugaMKiQ2+2CBII5z8cbRbsjvNja6UuR23b/k0/e1zYGfcxEvPf3pYQDkei1JnjHSBKWTLV0CQd/5lqB+MU7J/Lvf7EC3o5N/qaMnz/Y8RwqNbpTXMqXPRip9owiN+crTHP0pgKCXG+sTIsJsRIKCwtt7VLCp7gWz3Cy4fvH56X49WiuwB5e2VlvMRiaH1KhdACb5rQoiknjNJxXsJUwZqaWsb5SECAWQQgEt/qyWQLc4591MAGvc6Ac+eRJzMHlgH7DczOftXdCcK1KEs0GiCl1ynTMxwlbRacHswHgLJ/X7+v1p0z9uxbcr+16DALnlCV+iDVP7Px16/PQdFyiGfOkXKm20h+02ZiZlDMVHtprW+OE99zjLZ38Ta4dkJZ70YI9gMRfSyr0NOCYLZTs8G4ijpfvMSXTWuRxJ5Lq3JUzh2D2rIk=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA3PR03MB7419.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?NFhPNUdpa2FkWWNMREYyVWZzbnA4UEgwU0FKTVRwaXZMMStGTFE1WGpDTDVU?=
 =?utf-8?B?UUFRNUZGOWcyTlVwK0ZrZjVvdnUrTnF4Zm9XRmVhQzY3UXN1SUZibHJHclpt?=
 =?utf-8?B?S2dXMHNFeVZGcThyVGNUengyTkNWWFlwU3gyZ2UxTTA1ZVN2WnlRVzM2SnNF?=
 =?utf-8?B?cEQ0VjQzKzB4Tm9YM3FuSFZCRGRYaXFLTHQydEFYbVBlMVBONS9pdi9nK2Vx?=
 =?utf-8?B?OWhSRTZXVmtwUG9hekc1Yi8xUGU0NVRxMm5VYTZrazlRcWplZ3l6SXRlRzZR?=
 =?utf-8?B?OVpEVGlmU2RJN1J0ZUJRcjJZL3EzdlJMbGt5dkNrTTh5UUlRTkN2YnIyWDRV?=
 =?utf-8?B?NUllS1duM3NsOU5BS3Z2NU1ucGVZeHRNNnFwRFFibCttWTc5cTE5MDFMRmRj?=
 =?utf-8?B?VDRMTzVYVDdPZ1B3WkVkT0h4UkpOOU1BbmFwY3g2bWFWMXBsdkcvemhrRit3?=
 =?utf-8?B?Z2hGT202UVJvME1WTFMxZFNmSjlRUFBZVE54MmIyUHJGVEE4TmVFRlZYSGY2?=
 =?utf-8?B?WU1lZWdubytQblhjODBtVkpjMFJ1eUlmYnZDM25TdjJIQUVKaGRjRFUvSnpL?=
 =?utf-8?B?L1U0L2VYV0ZUczhNTko0TldLMkNNTUlnbFpqQWxIeGNWajFUSTJGLzhnVC85?=
 =?utf-8?B?a3RsaDR0cjdqd20rR0hPbk5tVzA3b2lLekZWM1NLUC9mRGNGWWpZdFZPTmdZ?=
 =?utf-8?B?bzNJZS9WM0ZxU2cyTjVtRmhNZnQvbVpXSWRGK3l1a0NsODZteE94VFlIUlc2?=
 =?utf-8?B?cFFJdE05eWNMR0JGOVZReEc5NEhmWWhMS0dJMjZndGM4b2V0b0dlUHVkc2hp?=
 =?utf-8?B?dXRMbm91REdFenZxc0dlbDlYZGFGVXNSMmFoN1dhZzJhSk1CS1pkYytzeDB3?=
 =?utf-8?B?UXlsK0dvVkswSWZ0eE9CL0N5dDVOL3FkcFZZWllvS0pFUkI0VkRZTzFYTFR2?=
 =?utf-8?B?cmsxaTZTTzNQd2lNbzIrTzk1djB5QnBUbS9DNEpRdTBSWWtNUmpnNzhLRlpT?=
 =?utf-8?B?LzA1aTJkRy9jN3QxbkNWQUlyN3FpNkZDL2Q1YjZoK3hkY1dadHdwY2FKRVpw?=
 =?utf-8?B?U0gxQy9oMGFJaXhsVUVpSTZCYStod0tNR1lSdXlnZ2lpOU54bTY1RDhkeEk5?=
 =?utf-8?B?aGxheWlQQndFc3BTcHMzRmIwdFd3bkFSclF1dXV2c3VEbW5vSXBiaHU3NXNr?=
 =?utf-8?B?N1YwOHJ5UlVvWENsaGs3aW9MZFYyWndHYXBIYnNEV1F5ck5aY0pYWkRRaGR3?=
 =?utf-8?B?b0J0YUc4UjBDaDl2UlhINzBMUFM3czd2SnJQdEtubGZRVWs0QjZIV0dhb090?=
 =?utf-8?B?a2d4dFRyeTR3M1FwUDEyd0FzemxHQXQzU0E1ZjdFTFlYYkFRU2tRSDkvY1Zr?=
 =?utf-8?B?MUw5N283eU1RZ0JQYWxmTlZiWlc3ZVAra1IzeEhzc055aGRZVUd4akgybXFs?=
 =?utf-8?B?QlJjZWppTTFJUHJDcnU3NE5Gd0htTlNrL0JZd0ZpOGxVZWYwQWorNVdEZGk1?=
 =?utf-8?B?TGladzU1djl2eHpkUUlWcGRWTldKRzBwTGZrd3FvWkNTaVhvQ1hNcFdGZFQ1?=
 =?utf-8?B?MGE2LzZvU0R2Z2NabmlMWG4rakYvQ1ZaZzViNkdOaTM0bkdra0xHSWIwencz?=
 =?utf-8?B?ZFNWVldIaHBra1hQVm1kLytSY1N0VStFYXVjTlMydThWSjVtRit1aE5pRmxh?=
 =?utf-8?B?a2NrNjNGeUlvY291T2tYVWQ0UWpGZXIvTisxSzlhQjYrdjBwNkxXbHExNGhv?=
 =?utf-8?B?cFN6ckNxTkdVNzBhY3BISENYN2VON1AxOHdjN3Nad09ITlhLYk1VNXIxRHR2?=
 =?utf-8?B?bGtQRkJ6MmpWblhTTWRZRHJFTXc3VG1pcE52S0tvaG82RUk5ZC9qUmdKVnE0?=
 =?utf-8?B?SU16TUxUWkJENlJmVlZJRmwva1I2R1FmdjFXNW5iUERPZHQvY1BHUzlnQnl2?=
 =?utf-8?B?NW5PMWZ5K3djK1dXNmZmK3hMM2ltVHdhS001TDRCaW1UWlhuWUovblkybjdJ?=
 =?utf-8?B?Wlp2cXNBRk9FVFJNNENHUzhyQzFjOXlnRnl3V2J4VTdyY2VlVUxnbzE2Nk0y?=
 =?utf-8?B?TUZpR1hpWnlTbTd5VVQ4TUkzWGJNYTlqT2J1RmkxQmptSnNCZ1AzL3BOUk5D?=
 =?utf-8?B?TmlkM052SnpXU1U5SmJtd2d2NGFFTCtvb0FyZ2dlWUdITUtuRGlURGdCelZI?=
 =?utf-8?B?d25INWFFY2h0OWk3SDVDUVJMVmdQN2hNRlZQWkR6N25sU0dJbWl6OHpkcVIy?=
 =?utf-8?B?ODY4VnVWSGpIOWs1L0lKc0YyK3pCOVd4bWhsSlIyM1VOK2J3L1FkYVhtV1ZN?=
 =?utf-8?B?R2xORGFwRytsMXZFY1ZwWEFUZlFNUFoyREZSeHRtNlh5aTVTQ2M1OXpwK0pD?=
 =?utf-8?Q?/aGDlEfxhsd8Ejmo=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <497A62DE0D27BE4DABB223FE2F2B30BB@namprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA3PR03MB7419.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bf9cca10-afad-4f09-9685-08de79317bce
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Mar 2026 14:30:57.0647
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: TXsf9+v0p3RIxAabjCWvq1yNc2eRUUcETu0pLvHtrSuX0tAmDnqSa3cHtdDCw+I1MKk1pVhweFlCELWpHRBXXA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5162

DQoNCj4gT24gMyBNYXIgMjAyNiwgYXQgMTQ6MDksIEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl
LmNvbT4gd3JvdGU6DQo+IA0KPiBPbiAwMy4wMy4yMDI2IDE1OjA3LCBKYW4gQmV1bGljaCB3cm90
ZToNCj4+IE9uIDI3LjAyLjIwMjYgMTE6NTgsIEVkd2luIFTDtnLDtmsgd3JvdGU6DQo+Pj4gLS0t
IGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3Rlc3RfeDg2X2VtdWxhdG9yLmMNCj4+PiArKysg
Yi90b29scy90ZXN0cy94ODZfZW11bGF0b3IvdGVzdF94ODZfZW11bGF0b3IuYw0KPj4+IEBAIC0x
MTAwLDcgKzExMDAsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQo+Pj4gICAg
IHJlZ3MuZWRpICAgID0gKHVuc2lnbmVkIGxvbmcpcmVzOw0KPj4+ICAgICByYyA9IHg4Nl9lbXVs
YXRlKCZjdHh0LCAmZW11bG9wcyk7DQo+Pj4gICAgIGlmICggKHJjICE9IFg4NkVNVUxfT0tBWSkg
fHwNCj4+PiAtICAgICAgICAgKCpyZXMgIT0gKCgweDIyMzM0NDVGIDw8IDIpIHwgMikpIHx8DQo+
Pj4gKyAgICAgICAgICgqcmVzICE9ICgoMHgyMjMzNDQ1RlVMIDw8IDIpIHwgMikpIHx8DQo+PiAN
Cj4+IFdoeSB0aGUgTCB3aGVuIHJlcyBpcyBhbiBhcnJheSBvZiB1bnNpZ25lZCBpbnQ/IFdpdGgg
aXQgZHJvcHBlZCAoaGFwcHkNCj4+IHRvIGRvIHNvIHdoaWxlIGNvbW1pdHRpbmcpOg0KPj4gQWNr
ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCj4gDQo+IEkgc2hvdWxkIHBy
b2JhYmx5IGFkZCB0aGF0IG5ldmVydGhlbGVzcyBpdCdzIG5vdCBxdWl0ZSBjbGVhciB0byBtZSB3
aGF0IHVzZSBpdA0KPiBpcyB0byBjb21waWxlIHRoZSBoYXJuZXNzIHNvdXJjZSBpdHNlbGYgd2l0
aCBzYW5pdGl6ZXIgb3B0aW9ucy4NCg0KDQpJIHdhcyB0cnlpbmcgdG8gc2VlIHdoeSB0aGUgdGVz
dHMgd2VyZSBmYWlsaW5nIHdpdGggY2xhbmcsIGJ1dCBub3QgR0NDLg0KVGhhdCBjb3VsZCBhbHNv
IGJlIGJlY2F1c2UgY2xhbmcgdGFrZXMgZGlmZmVyZW50IChvcHRpbWlzYXRpb24pIGRlY2lzaW9u
cyBvbiBob3cgdG8gaGFuZGxlIHVuZGVmaW5lZCBiZWhhdmlvdXIuDQpJdCB0dXJuZWQgb3V0IHRo
YXQgdW5kZWZpbmVkIGJlaGF2aW91ciB3YXNu4oCZdCB0aGUgcmVhc29uIHRoZSByZXN1bHRzIHdl
cmUgZGlmZmVyZW50LCBidXQgSSBzZW50IHNvbWUgcGF0Y2hlcyB0byBmaXgNCnNvbWUgb2YgdGhl
IChjdXJyZW50bHkgbGF0ZW50KSBidWdzIGl0IHVuY292ZXJlZC4NCg0KPiBJIGNhbiBzZWUgdGhh
dA0KPiB0byBiZSB1c2VmdWwgZm9yIHRoZSBjb3JlIGVtdWxhdG9yIGZpbGVzIGNvbXBpbGVkIGlu
dG8gdGhlIGhhcm5lc3MgYmluYXJ5Lg0KPiANCg0KRm9yIHNhbml0aXNlcnMgbGlrZSB0aGUgbWVt
b3J5IHNhbml0aXNlcnMgKHdoaWNoIGRldGVjdHMgcmVhZHMgZnJvbSB1bmluaXRpYWxpemVkIHZh
bHVlcykgSSB0aGluayBpdCBpcyBiZXN0IHRvIGhhdmUgdGhlIHdob2xlIHByb2dyYW0gY29tcGls
ZWQgd2l0aCBpdA0KKHRoZSB1bmluaXRpYWxpc2VkIHZhbHVlIGNvdWxkIG9yaWdpbmF0ZSBpbiBh
IGRpZmZlcmVudCBmaWxlKS4gT3IgYXQgbGVhc3QgYXMgZmFyIGFzIHJlYXNvbmFibGUgKEnigJlt
IG5vdCByZWJ1aWxkaW5nIGxpYmMpLg0KQnV0IGV2ZW4gZm9yIHRoZSBhZGRyZXNzIHNhbml0aXNl
ciBhIGJ1ZmZlciBjb3VsZCBiZSBhbGxvY2F0ZWQgKGUuZy4gb24gdGhlIHN0YWNrKSBpbiBhIGRp
ZmZlcmVudCBmaWxlIHRoYW4gd2hlcmUgdGhlIGJ1ZyBpcy4NCg0KDQpCZXN0IHJlZ2FyZHMsDQri
gJRFZHdpbg0KDQo=


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 14:49:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 14:49:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244852.1544211 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxR3u-0006Cc-Ma; Tue, 03 Mar 2026 14:49:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244852.1544211; Tue, 03 Mar 2026 14:49:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxR3u-0006CV-K2; Tue, 03 Mar 2026 14:49:26 +0000
Received: by outflank-mailman (input) for mailman id 1244852;
 Tue, 03 Mar 2026 14:49: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=Dwqp=BD=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vxR3t-0006CP-Nn
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 14:49:25 +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 2a4010ec-1710-11f1-b164-2bf370ae4941;
 Tue, 03 Mar 2026 15:49:24 +0100 (CET)
Received: from SA3PR03MB7419.namprd03.prod.outlook.com (2603:10b6:806:39c::6)
 by CH5PR03MB7791.namprd03.prod.outlook.com (2603:10b6:610:211::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Tue, 3 Mar
 2026 14:49:16 +0000
Received: from SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc]) by SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc%6]) with mapi id 15.20.9654.022; Tue, 3 Mar 2026
 14:49:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2a4010ec-1710-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AdO9+cI2B0BjfDgxxvEEK7fM4i2A9Y23YKBUJ0dEh3Q9inltu/LQmmfyqxuGsX6VZLmtjd0CRSg6KYsNi3ahsdmpfsZnJRM1p1V5Avhm2RrHr0JjTTx3BWMKDXQ+hnYGwFBaL0tcWvgFG+4QhHCgxutqEx2ijixu/RDwDNO4HD+9NHr3/PBk61AJ68GFgzQVoTTAdkpwxFBdW9RvKADA/C1n1M2DpC4JLYoYeW7wkyvhBkrAl70Zzd+8rKUSbrLSx9ZVAFltQZWlbtGCkKGpSuX9UeOygg4tYSU9cadbNmozgDDzOFyji/WY2rdj0KrlFe0ppnUeG4RfcexuWz3x0Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ayOsLpThfJqd4rC0u7zujKcy9FTm8kkwUbInuB/ThCg=;
 b=QT+yClo5Q/Erah1DagfVXhsV/+nR9I/kGM/jZBugJH4wq5YCBuovCAaQLyxwBovMTvry9rm95zmhYSGbCx0xU/2W6PyLbNzF3LzFzvIKO7C8RUK6oAmb0n+MDMSOOiErFCjwfi8I+9nH+n2oTJMYdtXfhviCsb6I6JpD75lw43qiTzVelkhx4sroEoHElTCnKF0u9ht4kvZyT7IIkdAg1/yh8Grv5of24ah4ClpW944/8+ToRBDPrfxEI/m+EHYUzGV1ZDKqXQPFrzm7ZAZ2+qptm2diG8aR3tsCtdg3hrGs7jKoveKtd8ZUhdSAWIxSJucIDRhQeO43xVJmYUHaxA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ayOsLpThfJqd4rC0u7zujKcy9FTm8kkwUbInuB/ThCg=;
 b=b6aydSQ/jDyBx+I1Yk18kHP3I8Axm/83M8AlIn/CUS+D8CLga6iasQfzyvwx2geIMnIL6kRwuDl91kP3Auih7/2ghLyMEPtFfYPH+fWTWYX5lBTI4CckfkPdkPDgNf6e+eH6gXy6AHkKIC/dIWSHGBKwG9KlbzMKOkmrBhEYF3I=
From: Edwin Torok <edwin.torok@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Roger Pau Monne
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 3/4] tools/tests/x86_emulator: fix undefined behaviour
 in shift
Thread-Topic: [PATCH v2 3/4] tools/tests/x86_emulator: fix undefined behaviour
 in shift
Thread-Index: AQHcp9gCO67+yoRhk0SyNFZDTeRIWLWc3oEAgAALkwA=
Date: Tue, 3 Mar 2026 14:49:16 +0000
Message-ID: <7A6049F4-8AAE-4074-97E5-65070E25A165@citrix.com>
References: <cover.1772189234.git.edwin.torok@citrix.com>
 <cdd62288eed6b147e6c3e6d2c402de36cf3ce42a.1772189234.git.edwin.torok@citrix.com>
 <02d59353-8d59-4151-8428-dd6458f9165b@suse.com>
In-Reply-To: <02d59353-8d59-4151-8428-dd6458f9165b@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA3PR03MB7419:EE_|CH5PR03MB7791:EE_
x-ms-office365-filtering-correlation-id: 11caad99-8ad4-4b87-c972-08de79340b49
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:
 dX+Ti14VDSuKYVfS2yePiB6gUudBtNReOlY8QxyCo2dVWPP2RI2onzFWVmx+QFMqwMpv1/j2p4PCZHHCD1EZrxiqL3SxpMxR68rQEI5PlPhWG9gwazsWQkjlGzYOXanNPTfnIfsyAneK7yshrws4eLR0nLGozDdw5lA3DBwim3ErrPcPw7MG4/ZdkJM/TNHIsn4Q/fqCwKSUnfMJJ/gh39hosGUr6HKpucZsIL39FD9r8A1ukoR29OnG4e1W7u4VS+A/YuzoTrJRCd16lTs5xeBkPqRPXXkkFbzs1vAyOd/6UVvMDs5MnQpD/alWZfKHGeCSfI91apX6AxxgqSYAREmz0K59b/mWjnR2gX1i95dGAjr7UtmJGml2/6cSA7qrc+Vwx1wC65cSF9SRUIAOuXrqs2bsLLhz20/vW3bQv0ChCxDbKUJK45mm1Jx5Ysg2USM37Pmu4aTxMhZ88+tEqoMlDjLh3PcJC0ew4D2lY+SM3yKuKPjV4Ua4zKDlovmrFbVfzGPNJMuWbiNxLweqpiA2/GIFqRcqBZjuSfk9RfGwH2fsuFxWn4L1R+I1lMsXbMh7iC6ZhYRNFvGQhsWkQzyVg+kLyau+uw09JO+dwmIEh7ZqIz5lO7dbq/1UL/tgbDV+9r7GZaVYarhDOnk1QXEF8a2MFRa5RxOSyUVKNaBvmWCsMAAfkax+9KdC1KX6VXa2aWyMUVPqzu+uzvNxr6vBFsu4Y+QIS4+IprZCVPzBTxh8tZb7LMZBlAxRsExJLcDHBSziEo0gyjtYv8VwqfPIGTuFMNJSHLlLmfW7AbE=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA3PR03MB7419.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?RXc2czRvSXpLeitiZnA1TGtwQWFIUTAzTVBFc2dLOVY1OVRaN25zWG5GVGJv?=
 =?utf-8?B?ZHJuZGFXSWNCbGUwR0tyanJOck9lR3NkdkUzbTFhWHd6ejZPaHZwb2s3NzIv?=
 =?utf-8?B?VW1vMFhaQXNMRHRiNk1tWksvTnNpb05IVm9tRW9mRXFoV25FUWh2VEhXcy9D?=
 =?utf-8?B?ZndvWVJMNlczaHJSaGpJcWUwczEwTXN6NzFHOU13KzJGRG50c01mU2hVQjJj?=
 =?utf-8?B?cWUyend4RmZacXFuNkZUb0x3YnEweUdYQkpUS2NxaDdsL1UzV2hFN2VpWERV?=
 =?utf-8?B?c0ZWQjFqeVYyaEQyL2FTUE90cktKcW40SFIwcnRIWHRNZklOTEdqV1lqMWNl?=
 =?utf-8?B?RWpWTXR4NzRSa2FkYkNjSGY1WTBJazBSYS9pZ1Q1MWlTdjBWdVB2TVBhZnR3?=
 =?utf-8?B?QTl4dTg2NU44TnEwVmZTR1BlZHprdkthb2V1WWF6MXppOEpIWFBtMDVrdFd4?=
 =?utf-8?B?Zk9GbFdyNnplNEZFR2QxSzhhSFlkTWUvQ2pOVzROTDVRY2h4aGpBTFkzZU1M?=
 =?utf-8?B?REFVL2k4eENnQVk0MDI1QVlMSEJNbHdkVitOR2Y5bW5kUGx3YjhlTmtFTGFr?=
 =?utf-8?B?UUZwdGVsa3N0QkFpU25mL21qSFpNT1NiYldsWmN3MVNCeGZDZDBVZDl0L3FO?=
 =?utf-8?B?cmgrbFdsaTUyeTVZaVdsUkNQZnlYZGJZOVRPNmsxS203bHJaYUZoTFlhWVpi?=
 =?utf-8?B?YkxOQVpkaVpxckU3cXhOMm05MXBDeVoyNXhwL3VTYXZQT05JUWtMU1ZQbVRZ?=
 =?utf-8?B?VWxVOTB6c1hTZVVpQWt4OTRSdnlGeS9wWTh4dmpUWWtFMUh6aUw2Y0hjZzFW?=
 =?utf-8?B?ODBMNFNQa2NOdXUvcWVLeU82eSs1U0JPYytQUW5BZ3V3R2tKN2t5dGs3ZWV5?=
 =?utf-8?B?M0xtNDZLTFloRTVaQ3JhNXJHa1VRbTlHOXFuemJJRnpRM0YrQVFpZE5qdEJ0?=
 =?utf-8?B?ZVQyRm4xY1Z4akdrdDZWeS9ncjVCNU1tanliWGNDWDByMkFRbUZzVTk3S3Ry?=
 =?utf-8?B?SUFmNDZTdFAwUUZ0dks3M0ZwZTZaRVFQaGJuSG9ieFg4TzQ3bGZuVUJPRTNC?=
 =?utf-8?B?SWwxdWMrV3ptbmRUM2FjTjdNRXAvRkQwUzdzNklSYXNBTnFKRUJUbUlJdU9j?=
 =?utf-8?B?dWYrd0tSS1hhVWJWeUw4VlFjZXl4RHVBeVZQby9ubTJsTVVsZUpSUUN1M2xj?=
 =?utf-8?B?Qjl3cnB1RGtnMmJXY2xtMFRQbHdEREdxZ2ZmbXpFVGZhQVNYb0s0WnR4aXo5?=
 =?utf-8?B?SjNyN1dEZkF3Q3dCMFc2eGFzUU1scjBuQ29PSGpTODhKTDBoMkU4bWhaVkMy?=
 =?utf-8?B?SG5MeUo0aUZkM0V3NTRUeWc1Rm5MV1gvTjEzSXhJVm42RVZtNGQ0dlIva1Fr?=
 =?utf-8?B?VDE3bVYrUXVzblBJbEZzUVhQM00vcncveW9nYWZoczRjdytVYWVHaU9rejY1?=
 =?utf-8?B?T1RCelJJTkZiZk01NmFRTGF4OGUyUk1aSktOaEV6dXF5aFV3R1Q1VVlGdi9Q?=
 =?utf-8?B?Q1dHMlFEaTdvQ3Y3RHI3Tm41M3NXUnFPQmFNZlEwMCtreDBWRW9VM0Y5eVZP?=
 =?utf-8?B?b2tvaFptdFZzeWlqRUFQWk55dEoraFd5STk4T0tHNXQ0UUc0aWc2cVNEZHVl?=
 =?utf-8?B?bk5aandzd1NGeEhCRnAyU0ljMWVjTndnYXRhenoxRy9oZnZzSzYxdVRMMVBY?=
 =?utf-8?B?L204cFBtVHRTbTY5UFppYWRhMXcwUk04dVVGRXA0dkxFN29Zd3dGMkNDa21T?=
 =?utf-8?B?aUJqQXVna1oyWWV6VW4xK2U0dnFPQ3pQa1p4RnZoTVNOTmxOcEh3N3NwUGNZ?=
 =?utf-8?B?djhMUm1sdTZnYkZMQ0loY0xLbndyQUNZbjM2Wk9JNnVQVHRMT0oyWUc1cnZn?=
 =?utf-8?B?eGtGSFhuL3BldVFUR2JuODZlNnQycXVWZE9uYkhMRjdlZ1I1b1ZMNnlyZmxz?=
 =?utf-8?B?Sk1sdTRNem5VWWVkNm9QeWNjUmNsSTE2T2dwbldQc2xPY3hkcjhoUFBpdWc4?=
 =?utf-8?B?aVFXWUhVRHkza2FMVk5FbGVDN0pqazBaZXdmTnRhaC9tNkxNR2dSU0hIQU1P?=
 =?utf-8?B?clFYb0Y4d3hma3cwRkFFM0Rkd290VkxiWU55Z0orUHVXVGRsa2xlQ1BMaWRi?=
 =?utf-8?B?N3RDMEJ3c1lmOWVxMzIyNHF2cmFocFdsYWR1VzJEYVJvRTgxaDJMbWg1S0xH?=
 =?utf-8?B?QkgxTEJ2UHBHUlh1dWxoMmV4cDJhb1VsNkorcjZlbTFjWmI0bHhxUWZhbFIy?=
 =?utf-8?B?SG9pVnRtN1B0SEI5M2tsTk9OTEVnaUh2UnYrdnB1UUl4cWluSDJ1SnViWkRU?=
 =?utf-8?B?dTRMNTMwcGd4YWlmd3d1cDdZNzVkcEMzY3J6NEYxWXhhSHFsdTRhWHN0Szdj?=
 =?utf-8?Q?cUZmL6R+PMXOinQk=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <E7F3E5D82933534AA8B84FF1271B97CC@namprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA3PR03MB7419.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 11caad99-8ad4-4b87-c972-08de79340b49
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Mar 2026 14:49:16.7481
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: CHCKyeVhfCrKKY/99ob4ha/9I1Cr9Z9Ka5702NFNqFucGLaj4mh/Y56vA6WKvVsHVXD0fuAehmGInz8MzsQr5g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH5PR03MB7791

DQoNCj4gT24gMyBNYXIgMjAyNiwgYXQgMTQ6MDcsIEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl
LmNvbT4gd3JvdGU6DQo+IA0KPiBPbiAyNy4wMi4yMDI2IDExOjU4LCBFZHdpbiBUw7Zyw7ZrIHdy
b3RlOg0KPj4gLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3Rlc3RfeDg2X2VtdWxhdG9y
LmMNCj4+ICsrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci90ZXN0X3g4Nl9lbXVsYXRvci5j
DQo+PiBAQCAtMTEwMCw3ICsxMTAwLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2
KQ0KPj4gICAgIHJlZ3MuZWRpICAgID0gKHVuc2lnbmVkIGxvbmcpcmVzOw0KPj4gICAgIHJjID0g
eDg2X2VtdWxhdGUoJmN0eHQsICZlbXVsb3BzKTsNCj4+ICAgICBpZiAoIChyYyAhPSBYODZFTVVM
X09LQVkpIHx8DQo+PiAtICAgICAgICAgKCpyZXMgIT0gKCgweDIyMzM0NDVGIDw8IDIpIHwgMikp
IHx8DQo+PiArICAgICAgICAgKCpyZXMgIT0gKCgweDIyMzM0NDVGVUwgPDwgMikgfCAyKSkgfHwN
Cj4gDQo+IFdoeSB0aGUgTCB3aGVuIHJlcyBpcyBhbiBhcnJheSBvZiB1bnNpZ25lZCBpbnQ/IFdp
dGggaXQgZHJvcHBlZCAoaGFwcHkNCj4gdG8gZG8gc28gd2hpbGUgY29tbWl0dGluZyk6DQoNCllv
dSBhcmUgcmlnaHQsIGl0IGlzbuKAmXQgbmVlZGVkLCBtYWtpbmcgaXQgdW5zaWduZWQgaXMgZW5v
dWdoIHRvIGF2b2lkIHVuZGVmaW5lZCBiZWhhdmlvdXIuDQoNCkJlc3QgcmVnYXJkcywNCuKAlEVk
d2luDQoNCg==


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 14:58:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 14:58:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244866.1544222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxRCE-0007vp-Hg; Tue, 03 Mar 2026 14:58:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244866.1544222; Tue, 03 Mar 2026 14:58:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxRCE-0007vi-Em; Tue, 03 Mar 2026 14:58:02 +0000
Received: by outflank-mailman (input) for mailman id 1244866;
 Tue, 03 Mar 2026 14:58: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=wwL6=BD=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vxRCD-0007vb-BB
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 14:58:01 +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 5e77f4cd-1711-11f1-b164-2bf370ae4941;
 Tue, 03 Mar 2026 15:57:59 +0100 (CET)
Received: from DB9PR05CA0004.eurprd05.prod.outlook.com (2603:10a6:10:1da::9)
 by VI1PR08MB10005.eurprd08.prod.outlook.com (2603:10a6:800:1bf::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Tue, 3 Mar
 2026 14:57:54 +0000
Received: from DB1PEPF000509E5.eurprd03.prod.outlook.com
 (2603:10a6:10:1da:cafe::56) by DB9PR05CA0004.outlook.office365.com
 (2603:10a6:10:1da::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.19 via Frontend Transport; Tue,
 3 Mar 2026 14:57:50 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509E5.mail.protection.outlook.com (10.167.242.55) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.16
 via Frontend Transport; Tue, 3 Mar 2026 14:57:52 +0000
Received: from DBAPR08MB5590.eurprd08.prod.outlook.com (2603:10a6:10:1aa::17)
 by AM8PR08MB5554.eurprd08.prod.outlook.com (2603:10a6:20b:1c5::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Tue, 3 Mar
 2026 14:56:50 +0000
Received: from DBAPR08MB5590.eurprd08.prod.outlook.com
 ([fe80::f68e:1311:9070:68b]) by DBAPR08MB5590.eurprd08.prod.outlook.com
 ([fe80::f68e:1311:9070:68b%4]) with mapi id 15.20.9654.022; Tue, 3 Mar 2026
 14:56: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: 5e77f4cd-1711-11f1-b164-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=QUadyBHxJzuQnJiBDFzuoTvJrwMR6HoAu3yLR3UZdiCCAvIL9vIWZOUf3Nw2Fm2qxde5QTy4O3cBQK820JY05yzmzgpQwzvXZyON+iMgxkk68/PfE0szIxJzNnn7zxPNvbpsFS5kE+Fr0YcviO4hpWRNM9aDMhW+5Tk9Gwgui7nwiTq0cgVkg31f5FWcVlFmtBxP7x+0ohrBaOn9lgx8lmCHGTqJrY9pV/wMHBPVvg8vcLemG+Eq+b7tEd4ZpZxHzziYVlrlzR9vC8YRkX17Hfnm/W8Ed3IgROjLtE09ns7F1CgPIoM+05q299UP/s+FS3lOwavbTLcN8YJBjT1GPw==
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=XZJ6unCO6hnV4jRvbsZ0yfL6SFJrbINWnvnbn3XZ/9k=;
 b=F1zyermFNIMaEh3DaCRY9DXshqLXO3t+OiQPH6DunBo4CIEsyttLX8OnffVq5/phyGBcvFRHCsoOW1h/9rQ4141ZUwQnTeXZ7Od6tw8L3fX34LjhozSYqPUYYyItkYuC8+cnUnOzL+uHGS04rQidFElSmEAyCv8EpBuHDYeuVzhux6cqabH2i8dKlVmOOGG/aGgDRZ8QJUWw/zUlGvEy0X4gIhYeJxOdoaoy2VplOZnJ+1k6EZrxcteA8UN88d++KEZvrr/WbmNz1uHwcT5D2lwnqoc35UxopK6DGj+s+RgWi/C0mKYTV7fimR9fvLpSnrjsOp8kD00gkkOtpnYhWQ==
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=XZJ6unCO6hnV4jRvbsZ0yfL6SFJrbINWnvnbn3XZ/9k=;
 b=bFUIpUVvipYOrzvUPOfYgLbaGLT995dfi7MX+NEJhDmi9sMP0hg5IXu4tapAF8ZEJxTNy0tImJjWpeN4oCT1YCR0rBz9F2Moc858ILAUhuldEj+RGh/FYoAkYnnvxtYb8WuOKb0cJ6cdpNUYeJ0B/2DuJX3HBN8bVaWLSZkGE5A=
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=ZR+ghtcmeVNLUajld7A4uQ6DlxuVrhFVhy+wGUMgpEzGyusYe07BKZu7N2E5F3PzEaKC+by1zaFHRZHe3CfeNGKp8pz8jeuM4/zr5AVF8FTK3SMEnYF3nAi49YW8vkgtzENT8TJzoSh2JprXn9hSiowb7BQWYDPaB78mbmFfrq0XGcopfxfSYpSVqwnpEvN+TUpzXMbEzftqWbbqRC61FlvV24IXcnurN13Nx3ZN6sC2Qb2r3P6WaT1jFHUdyH6K6aRBc3w1m9s1Ve4Q1kKkFUOFx34WAguVQqIen3v0qbVP7EgewBFhD5AaXMvqFLo2UN/r15u1uFPHw5KYyt3p9w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XZJ6unCO6hnV4jRvbsZ0yfL6SFJrbINWnvnbn3XZ/9k=;
 b=VMClxGhBoX2uecS0Zg+OsC00Hz4eilpHmQl107OKH0TXX4FKXJ9IzQHy5I/ttd+f9AdrFdDljY3Urj8gJiWrD4zipf3uSwvM6omrD9BGZIiNNOqaRJWAMVNqckHBJ+d5St7ZiEntZaJUwXc6BSJQdcBJsnhjVB490TyAnB3X39dnIgMqGbSEoHycMhg5oKHtaqauYE+tPNgs4B+JJ06Jm1nePeTvc0TjroWr4ho5ytJyb1uGtw1SPEO6F1kMN6f1Y6BC8b6wZ6iPnUZNND2e4lNTYBP1Mv+/wqCKjylD3cJmUUkT+kAMT2QWKEVtAkPMRq7d5kK7ZPPAxQtsnbAwBQ==
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=XZJ6unCO6hnV4jRvbsZ0yfL6SFJrbINWnvnbn3XZ/9k=;
 b=bFUIpUVvipYOrzvUPOfYgLbaGLT995dfi7MX+NEJhDmi9sMP0hg5IXu4tapAF8ZEJxTNy0tImJjWpeN4oCT1YCR0rBz9F2Moc858ILAUhuldEj+RGh/FYoAkYnnvxtYb8WuOKb0cJ6cdpNUYeJ0B/2DuJX3HBN8bVaWLSZkGE5A=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Romain
 Caritey <Romain.Caritey@microchip.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Alistair Francis
	<alistair.francis@wdc.com>, Connor Davis <connojdavis@gmail.com>
Subject: Re: [PATCH v6 05/14] xen/time: move ticks<->ns helpers to common code
Thread-Topic: [PATCH v6 05/14] xen/time: move ticks<->ns helpers to common
 code
Thread-Index: AQHcpxZBc3YdHjKklE6Q6qyeWG5VUrWc7bSA
Date: Tue, 3 Mar 2026 14:56:50 +0000
Message-ID: <2AE980D3-571A-4AB9-A01B-EAA90D3EA0B9@arm.com>
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
 <545c2af877d519b1186c79fd6108d33e7e52cd3b.1772016457.git.oleksii.kurochko@gmail.com>
In-Reply-To:
 <545c2af877d519b1186c79fd6108d33e7e52cd3b.1772016457.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.3864.400.21)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5590:EE_|AM8PR08MB5554:EE_|DB1PEPF000509E5:EE_|VI1PR08MB10005:EE_
X-MS-Office365-Filtering-Correlation-Id: fb0edb1d-175c-4498-06e9-08de79353efc
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|7416014|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 3bqowzC5bgtDxXfAxvbi98OnbXlZG7j5dMvHXCRH04JHs3Q6NFI7JoEcLytNvsrW7QTyWcEh6TmQCcWvqyeny421A34uqWinchij+rmPqKIuJuBfpqn/Mq+JxRU0u3Mx1JBUxBYTAiZUH7TnUKn97GZEFC+YmB0EKiSfeZzap2/W/QQSa/UpoWHR1OTXCm8xIbFKvDjYQoTMv29uOUanCHEqVfoMdh9xTk+xKfUJS/C+nIu2KJfEFA8Kqs4QFDBOo1JECYunplsZmtQLIV9bla+MliQM0QffFBZS7MpOfIXrV8NMOMPAHvDVCCDp6qxZJy6l7k3PLHj7OgUXbTkQhTPeaZBDSokHCX+zWuNXammm+TJFiXO66KQhVdDfJNzNW9lXR7mqtE0KmL76Ki5oGG7Q8SbBneVTh19DCIvMV8HvGJxBjDxSAV0fNAcb2xzSqyCXHBjnN4QPi5a1kLKxKAYli+0ablu+hDSc7/5eeafjomxRdjayw9MVFGaTsw4xUQxdZc3tjxvtzbjwGm+IYa45p2hbLRTqWhxdONH+/Gzh0nslvndbeOeG1tOsk/O3r8fNduSWh2v67M4qOb7TRfpM7sQ7hWrq/YfmKdIlrd0tIW/tWr/aED5fFF4idCicwHyRH08l33S825vkR62oswzSUr59fDVe/S3IPef6oMAxOdgAcKl//HWmAuMmyguqC6W+tieEbTiKrIWaAZsowVzeBE6jUSfS3I9FKAXdEo+J/FiW1SEHwx8l8zp2FGYa8GZF0sWrJfvwWYmhJU7Y0a7p7CMADPmlUdiSPwxqWJ8=
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)(366016)(1800799024)(7416014)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <D3318D397BBF154DA1554BBB66DBC85D@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5554
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509E5.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	34dde7f7-89b7-4957-5e7a-08de793519a6
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|14060799003|35042699022|376014|7416014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	oLbUm7AagHDRimb8k3+GMK2IgwRxnKCzZuTbRLKhcZcpkOZkAGf0Dy2soArGxC/xzMVUhqh3qtFlHUeS+QqK+/YnEGN1j9oMpq/Ia2/AFVhvkUNiZ+2iKs6BpTWcjyi2h4J7P1ObvLbXCVczphYPDVGCVd6m2clmuN0ZeErzr+CU+iA7BbWREB/QSRqgtDI0IPS7Q5H0ocScm8pcU1i+vTqaTtQN7ChquiwXPOjt2Ptj1w9vJpxPFw5lgJx+IUKhwNHVyqHw+WwKja9ZRL3iD01ZsW/0H3uQM4HpWdH4JqpxQSgv8jXridvNFEY7mmK+lfHQVYs1j6XO3QxVeKiQyHequdwn+HqLh2nzJza8u5faYCe9MGHQlnMkvdHhjnxbNjpou0dPU6j0Tb+dYerpGQiWX1dUlOPPPOxLorqTtNkH374L/H6Nn8IAf54GyFxF1xe+NoJ+BP2YXLS4KqhWhFQTM0yz9NVnvpukDJtLEzmjreRH16q930Lw7fChEiVGpmwhwEJ4FRYCuzl+u5Sz+NyZ68ExaHuxv96Hr71jZDZ8DilpKwnzPwnDjVmA4qEprClmy+AFaw4vCLRf3fvg2ndYjo/mR0ekHHZc+YHUzZ0Buap208c0swSjBeGnJIU9HePisY+QX7cxdjy/iPPvrnyfZ6D/lOtFrK3e558F7gh/gFEr66GJtdvOS8NqQtlzvnyGsViqtdvoW+Lq611MtYEswX2pJG3H8BuXGYygUa7FOSPUfGSxLBG6uMUiAjmNQm9XAKxJpDni9AyIxraPdM1nXE2mjIIR2f+qwb9P9jVJ4F9zABnf5UqDw/tNSwUzoYbej9O5jwPuQZzF8XSSzw==
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(14060799003)(35042699022)(376014)(7416014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	HeEW6N71CBkJ0SIQw5TJn3vGpdvm+ndQShWocCAyngjqkHPal2hTdAiVkhBmgcvq0btzfHFgo3DXF1H0z1mFmp4ac+jvNje+Z7BBu0nQKQLYxlCwuGkcn1wvnTzJMzFzt1eZkzyWufC755DokasWOdIPGqQeclG82JUx63RoKiGxYvl5In/69Tb1c49ghMLcw7MG3ohbu9UkbEzCc+WCauY/n1iLV6SLmuZIRHV99gUotGumgFX8gMdgZCDurSZHlqV2eOXF8v2nipRH9GDhDx6ggOvHqWdbQYammsNiS09oq9fvd7AG7Wn9B6HIbOFMy/i0BBw2hJGiBMG105m6XD+f57hRq9KVezpH6nKZhshiJZ+F50AUxSYjCcKgWTCNhZ0wLO0uN6YGW+nrDwQ2V49fbHCAeMV6tB2YS5g+uMvoIFW5wULOhEE1NpPzTKjP
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2026 14:57:52.8962
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fb0edb1d-175c-4498-06e9-08de79353efc
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:
	DB1PEPF000509E5.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB10005

Hi Oleksii

> On 26 Feb 2026, at 12:51, Oleksii Kurochko <oleksii.kurochko@gmail.com> w=
rote:
>=20
> ticks_to_ns() and ns_to_ticks() are not architecture-specific, so provide=
 a
> common implementation that is more resilient to overflow than the histori=
cal
> Arm version. This is not a practical issue for Arm, as the latest ARM ARM
> that timer frequency should be fixed at 1 GHz and older platforms used mu=
ch
> lower rates, which is shy of 32-bit overflow. As the helpers are declared
> as static inline, they should not affect x86, which does not use them.
>=20
> On Arm, these helpers were historically implemented as out-of-line functi=
ons
> because the counter frequency was originally defined as static and unavai=
lable
> to headers [1]. Later changes [2] removed this restriction, but the helpe=
rs
> remained unchanged. Now they can be implemented as static inline without =
any
> issues.
>=20
> Centralising the helpers avoids duplication and removes subtle difference=
s
> between architectures while keeping the implementation simple.
>=20
> Drop redundant <asm/time.h> includes where <xen/time.h> already pulls it =
in.
>=20
> No functional change is intended.
>=20
> [1] ddee56dc2994 arm: driver for the generic timer for ARMv7
> [2] 096578b4e489 xen: move XEN_SYSCTL_physinfo, XEN_SYSCTL_numainfo and
>                      XEN_SYSCTL_topologyinfo to common code
>=20
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Computation is changing a bit from MS to S removing the 1000 factor on arm
but i do not think this would have an impact so:

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

Cheers
Bertrand

> ---
> Changes in v4-v6:
> - Nothing changed. Only rebase.
> ---
> Changes in v3:
> - Add Reviewed-by: Jan Beulich <jbeulich@suse.com>.
> ---
> Changes in v2:
> - Move ns_to_ticks() and ticks_to_ns() to common code.
> ---
> xen/arch/arm/include/asm/time.h   |  3 ---
> xen/arch/arm/time.c               | 11 -----------
> xen/arch/arm/vtimer.c             |  2 +-
> xen/arch/riscv/include/asm/time.h |  5 -----
> xen/arch/riscv/time.c             |  1 +
> xen/include/xen/time.h            | 11 +++++++++++
> 6 files changed, 13 insertions(+), 20 deletions(-)
>=20
> diff --git a/xen/arch/arm/include/asm/time.h b/xen/arch/arm/include/asm/t=
ime.h
> index 49ad8c1a6d47..c194dbb9f52d 100644
> --- a/xen/arch/arm/include/asm/time.h
> +++ b/xen/arch/arm/include/asm/time.h
> @@ -101,9 +101,6 @@ extern void init_timer_interrupt(void);
> /* Counter value at boot time */
> extern uint64_t boot_count;
>=20
> -extern s_time_t ticks_to_ns(uint64_t ticks);
> -extern uint64_t ns_to_ticks(s_time_t ns);
> -
> void preinit_xen_time(void);
>=20
> void force_update_vcpu_system_time(struct vcpu *v);
> diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
> index cc3fcf47b66a..a12912a106a0 100644
> --- a/xen/arch/arm/time.c
> +++ b/xen/arch/arm/time.c
> @@ -27,7 +27,6 @@
> #include <asm/cpufeature.h>
> #include <asm/platform.h>
> #include <asm/system.h>
> -#include <asm/time.h>
> #include <asm/vgic.h>
>=20
> uint64_t __read_mostly boot_count;
> @@ -47,16 +46,6 @@ unsigned int timer_get_irq(enum timer_ppi ppi)
>     return timer_irq[ppi];
> }
>=20
> -/*static inline*/ s_time_t ticks_to_ns(uint64_t ticks)
> -{
> -    return muldiv64(ticks, SECONDS(1), 1000 * cpu_khz);
> -}
> -
> -/*static inline*/ uint64_t ns_to_ticks(s_time_t ns)
> -{
> -    return muldiv64(ns, 1000 * cpu_khz, SECONDS(1));
> -}
> -
> static __initdata struct dt_device_node *timer;
>=20
> #ifdef CONFIG_ACPI
> diff --git a/xen/arch/arm/vtimer.c b/xen/arch/arm/vtimer.c
> index d2124b175521..2e85ff2b6e62 100644
> --- a/xen/arch/arm/vtimer.c
> +++ b/xen/arch/arm/vtimer.c
> @@ -12,13 +12,13 @@
> #include <xen/lib.h>
> #include <xen/perfc.h>
> #include <xen/sched.h>
> +#include <xen/time.h>
> #include <xen/timer.h>
>=20
> #include <asm/cpregs.h>
> #include <asm/div64.h>
> #include <asm/irq.h>
> #include <asm/regs.h>
> -#include <asm/time.h>
> #include <asm/vgic.h>
> #include <asm/vreg.h>
> #include <asm/vtimer.h>
> diff --git a/xen/arch/riscv/include/asm/time.h b/xen/arch/riscv/include/a=
sm/time.h
> index 1e7801e2ea0e..be3875b9984e 100644
> --- a/xen/arch/riscv/include/asm/time.h
> +++ b/xen/arch/riscv/include/asm/time.h
> @@ -24,11 +24,6 @@ static inline cycles_t get_cycles(void)
>     return csr_read(CSR_TIME);
> }
>=20
> -static inline s_time_t ticks_to_ns(uint64_t ticks)
> -{
> -    return muldiv64(ticks, MILLISECS(1), cpu_khz);
> -}
> -
> void preinit_xen_time(void);
>=20
> #endif /* ASM__RISCV__TIME_H */
> diff --git a/xen/arch/riscv/time.c b/xen/arch/riscv/time.c
> index e962f8518d78..2c7af0a5d63b 100644
> --- a/xen/arch/riscv/time.c
> +++ b/xen/arch/riscv/time.c
> @@ -4,6 +4,7 @@
> #include <xen/init.h>
> #include <xen/lib.h>
> #include <xen/sections.h>
> +#include <xen/time.h>
> #include <xen/types.h>
>=20
> unsigned long __ro_after_init cpu_khz; /* CPU clock frequency in kHz. */
> diff --git a/xen/include/xen/time.h b/xen/include/xen/time.h
> index fe0d7a578a99..2185dd26a439 100644
> --- a/xen/include/xen/time.h
> +++ b/xen/include/xen/time.h
> @@ -8,6 +8,7 @@
> #ifndef __XEN_TIME_H__
> #define __XEN_TIME_H__
>=20
> +#include <xen/muldiv64.h>
> #include <xen/types.h>
> #include <public/xen.h>
>=20
> @@ -75,6 +76,16 @@ extern void send_timer_event(struct vcpu *v);
>=20
> void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds=
);
>=20
> +static inline s_time_t ticks_to_ns(uint64_t ticks)
> +{
> +    return muldiv64(ticks, MILLISECS(1), cpu_khz);
> +}
> +
> +static inline uint64_t ns_to_ticks(s_time_t ns)
> +{
> +    return muldiv64(ns, cpu_khz, MILLISECS(1));
> +}
> +
> #include <asm/time.h>
>=20
> #endif /* __XEN_TIME_H__ */
> --=20
> 2.53.0
>=20



From xen-devel-bounces@lists.xenproject.org Tue Mar 03 15:09:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 15:09:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244878.1544231 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxRND-0001IT-GD; Tue, 03 Mar 2026 15:09:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244878.1544231; Tue, 03 Mar 2026 15: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 1vxRND-0001IM-DT; Tue, 03 Mar 2026 15:09:23 +0000
Received: by outflank-mailman (input) for mailman id 1244878;
 Tue, 03 Mar 2026 15:09:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dwqp=BD=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vxRNB-0001GQ-RQ
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 15:09:21 +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 f3840f2e-1712-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Mar 2026 16:09:19 +0100 (CET)
Received: from SA3PR03MB7419.namprd03.prod.outlook.com (2603:10b6:806:39c::6)
 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.9654.22; Tue, 3 Mar
 2026 15:09:15 +0000
Received: from SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc]) by SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc%6]) with mapi id 15.20.9654.022; Tue, 3 Mar 2026
 15:09:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f3840f2e-1712-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oYb7psW1B0Kwq5gm/OC0OO6XcIZ0B9/48wosGeZapDERuZ7uNU6QupMs3xG9i105neJyjtBIJX9JTmmlrGXVW63xKOQ4587VjmR50XTrvmT+L1JWpJUdrwj2FGNaySXm+EJ1lBzuUji859Kx9pDFbwz4mjkj83+QBSlulBo73PyiRiWQdt3AA3xf14SBSskuJDfmPfU8XxKJcvOGkpi16ncqrRKanXALTxjCdtZdIumF+3fffnZ3PRgIddJqgwnNyas0hruQqc2zF8puttMnERA+/GbuuFgg8UVTPJsS+QMpqGYBrppKyHQXpLZr6c8uvJpqto3uWV4/bUi2IWT3dw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BgbmO7zRl+U0OFXcYkuqQLUwYhfPPxpJt2W+xf5q6pU=;
 b=AdmoaKbjRXDxmkbOvLWnvnFo1Ab9OTJhlUMprDpWkK9GZ49/PgD9tPMROfh0NXJjLPB1dh40odeCCsHESWcGahTzmY68VigQvRZ/F7S7GbjgeAvNKm8VK/uRYDqGDF5mVI8/EsSUQKeYLH8An+zeYUTv8KH2zoVPaBekSWEqs8yQ6uVlOLt+XXBv9DXkU/5EgCMzi08Lz0Pr1Y1gUCjTjHhDt3H0vdYxwwsNOOT4wZZI8XuPEV9/lB2ibPQf1q2qd5z00dIvtA70KuDVa700VECL+WttEsdoMREV3qg9dDOzAkFTFVZySdDsNHrFZlTUtlay2reTLnGvMpjyqae8gg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BgbmO7zRl+U0OFXcYkuqQLUwYhfPPxpJt2W+xf5q6pU=;
 b=tc4bA8UHyYHXh0hYpT49A+Wtvbz8z+jHOXIjiC/XJqFEbt/7/e7ciH8RiMGASCUryPPzS5ZMOOX0N6tsbu7lCqiSlJvUC8y7NepE8NgrViZvQnupt9VxLw78yVvqQ5eqmPV8i60+Jxi2ikuKmLMqNkYQgpJTIEWmpvLrUVDqDuw=
From: Edwin Torok <edwin.torok@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Roger Pau Monne
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 1/4] tools/tests/x86_emulator: avoid duplicate symbol
 error with clang
Thread-Topic: [PATCH v2 1/4] tools/tests/x86_emulator: avoid duplicate symbol
 error with clang
Thread-Index: AQHcp9gBGAcR9pePk0GnYyu6dQzUZLWc3C6AgAATegA=
Date: Tue, 3 Mar 2026 15:09:14 +0000
Message-ID: <B5EFCE28-79BA-403B-8F44-C4E7606BACE7@citrix.com>
References: <cover.1772189234.git.edwin.torok@citrix.com>
 <358a87d89d50475a57f2a5d6ebea01d95a1df6d7.1772189234.git.edwin.torok@citrix.com>
 <766824c8-2ec5-45bd-9aed-1e84ad3ff779@suse.com>
In-Reply-To: <766824c8-2ec5-45bd-9aed-1e84ad3ff779@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA3PR03MB7419:EE_|PH7PR03MB7416:EE_
x-ms-office365-filtering-correlation-id: dd98ad93-ccf4-4834-3332-08de7936d55a
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:
 tslpIczhbeZZYJFmM0VDOYkaGpfJa9m7Y7x3SPHAKWlRnmalID5mkGuCDJeYegxlSKE1Sk4P82MSDjg0EIhnviGc9fmi5W871IVqKzbOn9+zlaQ8gzQWQfmGX4bzQXW2y1d/f9MAKgdQRLtpUJBoGoY1/LVT1AeAX16+x2LlXG08LJ8lPLeD0V5nVhceYfQ8iQTrMpuJTRwwG/+ZM4L6DikJfG+tUnzAqhQo8PzyNiwVlzerqwLYvpn8baakyGcg+7Ij8iGvCbt82rBDuY8a+jeSQPExWEw8TvFQHbbbXSKuyyFjpx9jG7R2+hjdX0NK9yJnjvEXh2sqyRY2f8gshL08u8BtFXbgkH0GDOfVxmRoiPLmP0WLcN5Mw45wjituSoHfkO81B9Pk/+2PCNbIgX8kDX917gzWj9n6qwIfq+7zsExTg585PXPIEvAp8p5K7K4yfiRGgf5bnTkIYF5Tbyhcf7whEyklQV/fqt/bZt96mJTbl4MEqR3POhqN1Jj9m14F0n1lrxbpmlcXJUX7+WuJvdqdXbEP1tnEM1ovWBPgJpbEZL1qn3jRbtI7/JhFaSkuC/fDGmTyXq56k0IIubOs+mPWqHdyS6Zvq2nM6/8yIuHJpCzn0xHtykF2wTkSMzKBBVK13lusVHu9EcYoK4B+8NKq0oGyGH9ulJhXNySFZW4fwwLov9wtNHMP/BIVLBgzkU7t8Oz9Yjok6cHb00SONH9qi0u+/K6FeUQx07hHXKbByjIDrRGlPgM+1lsSoK0c+mSKLN2iGZ62zZsUiuiE/VWWoyl1KTkXvmrNbt4=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA3PR03MB7419.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?V2F4RHpDQUN0bzZQYTJoS1g0OWtpaENpUHVOUFFQL1JlNEs4QnV6QWgvb0V0?=
 =?utf-8?B?MHN6RXlJQzdINDdSbDRkdEp5eEYvaVVLWmtib1N5UzZkTTFEUVN4VnNrRE10?=
 =?utf-8?B?eldkaEk0d1FRY1pHaGVUdVkwT1VObnFaU2xLa0g2S0Nzd1d5QUZDcFJWOVY4?=
 =?utf-8?B?dzRINlJLSmRvbWhFRWhzVkRsNDBsemRQUDFTNHpXa2FwRnZ1ZDhJVXdjRWgz?=
 =?utf-8?B?eFhMWm1NVmFBa3JNRTVLQlloUnBzMEVVUDI5OHJPSkNLbDVMY0xpMndBOG44?=
 =?utf-8?B?ZncxMkZxSk1xWUJQK21yTXVvaVhuNFRrbkFOVVlNTDJVZjhrZ0xtNnNSSWxC?=
 =?utf-8?B?alV0SSt6aFU4TW1ZODNEU094Vy90WlVGY041V0FSM2pQOEpTdEtGMDkvZXo5?=
 =?utf-8?B?dnJoMFNySHZmRGpHOXhJOHA3U0lRdlhURWE0d2s1Mnd4U1J5Q1VIN3oyd0VU?=
 =?utf-8?B?eVM0RFpoMWsrL3RLSmc2Z0JDRHN2M2xHRmJrS3JOblFYZmlrNU8za0p1U2Q5?=
 =?utf-8?B?VDNjQUMreWNvTkw0Yy9TYkZrY09pYjBTNTNDWnVGN1phMzVCcXhZc0ZqbGNY?=
 =?utf-8?B?OWgxUVM4L3ozcU5YN1l4WlhlM1VkUDdoSEdaMzhPVG5NWEZkYlNCS0hWcnVL?=
 =?utf-8?B?WVNNREh6Q2lRckcyeFJ3SVNGQkV3dDZHRDlSQUxHcmM4MnF6M2x6ZUNTdHdy?=
 =?utf-8?B?dFplK3NtZ3lMcDJpekxQS0tTUGZjd0VQbU4vWEhZeWdxR0plaXNhaGNkbEVz?=
 =?utf-8?B?SjNLZi9ETitWbWVybERRTldCN1YyUHU0dExYQXdHN2ZBNjhINHg3Q0hHYmo1?=
 =?utf-8?B?WmJYT0RWTmU3RWJaSmxGOERxY0J1NjloemI1TUFvdnM1M1RmTjlQQ3kyWGxv?=
 =?utf-8?B?TDFBbk9MV0huMC90V2FvaEFHRUg5MmNBUDEwWlRGWThwRGVHNklnL3NreThj?=
 =?utf-8?B?ZjBveXp0VjNPV2JXenExZTBLbXNTQ0hRejF2R3YxdEFjdHZsTlpFSlBtM1Bs?=
 =?utf-8?B?Z2diNUgyd2pvQnU1MGVUQUlBZlZ1cTlmZ0dCVGs2RFRlbFJPN3JUc1J0VUtY?=
 =?utf-8?B?WWRyQjl5R0dXZ1NhZWZhU0dna2JYbWZDcE1ZNUNDRjVTZjRieGpsRlIwVzY4?=
 =?utf-8?B?dGorQkExaEt5bFpkMkZjNUVMZmdiYzJ6R08xTkg4Unk1MnNsRU5ob1dYVEoz?=
 =?utf-8?B?VzF1YlN6dkljcFhXOFY5VzJQTmlLdDM3MnJlekJ6a1hHdFdoQmxjamg3VTdD?=
 =?utf-8?B?WHFQYXEwS3NjdXEya21VR0w4cXh4dk92aUdtL0RDZ1Rhdk9KeVQvbFFRM1Zq?=
 =?utf-8?B?SXJITFdXZGVwWkZFRWpmMFU2bWdXMHhRamo4dC93czQ1Sk9MTnd1MDYvMWtG?=
 =?utf-8?B?a0lxNkJTWnBOaHkxcXFqWXdaSWJzUkllWnVONkpkYUFDMU8zdVhSbllKYWx4?=
 =?utf-8?B?QmlPSVVaZXVFOVBLajM3QWR4Z3V6NklESnhUMnFtQU9JK1NEM1BsckNyb3U5?=
 =?utf-8?B?QkoyUi9rcC9sek1FeHJSSVhsVnVSWTRJdUlEamk1N2NxM1pxQXNxbTFYTE5a?=
 =?utf-8?B?TzRuaUZoWExscEJFV2hhOGVkK3NRa0YvbWU2ZUFRd1l5Y2JYK0RZSVZCVjZD?=
 =?utf-8?B?UWdReCtRRzk3RWx6WldOTEl1LzJTWllYVG92L1BiRGF5RHBKMnhHWi9JSk9E?=
 =?utf-8?B?TkFTMmVoSXpZaWJnRStaSklEa1lRR0VBR0NBMG51RVk1cmJpV1cwaVdUdURV?=
 =?utf-8?B?a1BOUnRydkcyZXlHZXNsTHhxbmwxYjdPTmZZRmJPVWk4SkhucnY0YnhaMmx0?=
 =?utf-8?B?ZzVIc3RwdE84QmJ6UURnZnlWV25HN241U3lwb3c2cmZldWFDaXU4QmV2V1I3?=
 =?utf-8?B?ZS9zUkcrMWk5VjlxOHdqL2FENkFzRG80Zlh3bGdnRFk2WGdTdnFQZzRScURy?=
 =?utf-8?B?UXhsVDlyeWl2MXJvWXBMbkx2enhjWUJNbGxoQy9rRytwZ2ltRWtLWFpNenFh?=
 =?utf-8?B?ZGl6WHlBWXlXVU82S3dmZ0pGc0ZVd3BuSzFNSkNYM1ZubGk2Y1pLVjVXTlBM?=
 =?utf-8?B?Q04wZGdDYjNxSEJLSGJvWTM2OUcxRU94M0RiZkwwM3prZitnejRlZHdGSHVI?=
 =?utf-8?B?WlQwRE8wK2xER3VubWVHd3NBdmxneWdyT2ZzRG9yVnYrR2V1T3BLNkF6cnc5?=
 =?utf-8?B?ei95K0pWTzZnbEY4amtzZkJvWEVrMTl0SVFZbGRmS09mVktuMXNuSmJmS000?=
 =?utf-8?B?cVZRVVVEMWNPNHZMOC82LzVzQ2VQcW5UdDhGKzQvRnF5bWlkekZVamVFR3Zj?=
 =?utf-8?B?KzFuVmM4RmlqaGQzZDVrSG9YOVo0OEVKSlVML25yWkEyUktEVG9qMVZKQUlz?=
 =?utf-8?Q?WX+2RsApqvsjxV44=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <06488F99EFA21A4CB374663815975DE5@namprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA3PR03MB7419.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dd98ad93-ccf4-4834-3332-08de7936d55a
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Mar 2026 15:09:14.7612
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: eKx0BYjRCgffVYKd+qoOYoCgf3AySG0gsr3fCU1/VumXt275Vot9zsoWI0DWc2kIR/6FbBrW4QVhcDeLeGjbkA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR03MB7416

DQoNCj4gT24gMyBNYXIgMjAyNiwgYXQgMTM6NTksIEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl
LmNvbT4gd3JvdGU6DQo+IA0KPiBPbiAyNy4wMi4yMDI2IDExOjU4LCBFZHdpbiBUw7Zyw7ZrIHdy
b3RlOg0KPj4gLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3Rlc3RfeDg2X2VtdWxhdG9y
LmMNCj4+ICsrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci90ZXN0X3g4Nl9lbXVsYXRvci5j
DQo+PiBAQCAtMTg4Miw4ICsxODgyLDEzIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJn
dikNCj4+ICNkZWZpbmUgZGVjbF9pbnNuKHdoaWNoKSBleHRlcm4gY29uc3QgdW5zaWduZWQgY2hh
ciB3aGljaFtdLCBcDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpY2gjI19lbmRbXSBh
c20gKCAiLkwiICN3aGljaCAiX2VuZCIgKQ0KPj4gI2RlZmluZSBwdXRfaW5zbih3aGljaCwgaW5z
bikgIi5wdXNoc2VjdGlvbiAudGVzdFxuIiBcDQo+PiAtICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgI3doaWNoICI6ICIgaW5zbiAiXG4iICBcDQo+PiArICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIi5pZm5kZWYgIiN3aGljaCJcbiIgXA0KPj4gKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICN3aGljaCAiOiBcbiIgXA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIuZW5kaWZcbiIgXA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc24g
IlxuIiAgXA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIuaWZuZGVmIC5MIiN3
aGljaCJfZW5kXG4iIFwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIuTCIgI3do
aWNoICJfZW5kOlxuIiAgXA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIuZW5k
aWZcbiIgXA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi5wb3BzZWN0aW9uIg0K
PiANCj4gTmljZSBpZGVhLCBidXQgd2h5IG11bHRpcGxlIC5pZm5kZWYsIGFuZCB3aHkgZW1pdHRp
bmcgdGhlIGluc24gZXZlbiBpZiB0aGUNCj4gbGFiZWxzIGFyZSBhbHJlYWR5IHRoZXJlIChhbmQg
aGVuY2Ugd29uJ3QgYmUgZW1pdHRlZCBhIDJuZCB0aW1lKT8NCg0KSSB0aGluayB3ZSBzdGlsbCBu
ZWVkIHRvIGV4ZWN1dGUgdGhlIGluc3RydWN0aW9ucywgc28gdGhleSBjYW4gYmUgY29tcGFyZWQg
YWdhaW5zdCB0aGUgZW11bGF0b3IuDQooRXNwZWNpYWxseSB0aGF0IG9uIHRoZSAybmQgbG9vcCB0
aGUgaW5zdHJ1Y3Rpb25zIG1pZ2h0IGdldCBkaWZmZXJlbnQgaW5wdXRzLCANCiBhbmQgdGh1cyBw
b3RlbnRpYWxseSBwcm9kdWNlIGRpZmZlcmVudCBvdXRwdXRzKQ0KDQpJSVVDIHRoaXMgd2lsbCBs
b29rIGxpa2UgdGhpczoNCg0KLy8gaT0wIHVucm9sbGVkDQphc20gdm9sYXRpbGUoIC8vIC4uLiBm
aXJzdCBpbnN0YW5jZSBkZWZpbmVzIHRoZSBsYWJlbCBhbmQgaW5zdHJ1Y3Rpb25zLCBzdG9yZXMg
cmVzdWx0KQ0KeDg2X2VtdWxhdGUo4oCmKQ0K4oCmIGNvbXBhcmUgZW11bGF0aW9uIGFuZCBhY3R1
YWwgZXhlY3V0aW9uIHJlc3VsdHMNCg0KLy8gaT0xIHVucm9sbGVkDQphc20gdm9sYXRpbGUgKC8v
IOKApiBzZWNvbmQgaW5zdGFuY2UsIGRvZXNu4oCZdCBkZWZpbmUgdGhlIGxhYmVsLCBqdXN0IGV4
ZWN1dGVzIGluc3RydWN0aW9ucywgYW5kIHN0b3JlcyByZXN1bHQpDQp4ODZfZW11bGF0ZSjigKYp
DQrigKYgY29tcGFyZSBlbXVsYXRpb24gYW5kIGFjdHVhbCBleGVjdXRpb24gcmVzdWx0cw0KDQpJ
ZiB3ZSBkb27igJl0IGVtaXQgdGhlIGluc3RydWN0aW9ucyB3aGVuIHRoZSBsYWJlbCBpcyBhbHJl
YWR5IHByZXNlbnQgdGhlbiB0aGUgMm5kIHRpbWUgYXJvdW5kIHdl4oCZbGwgaGF2ZSAoc3RhbGUp
IGRhdGEgZnJvbSBpPTAuDQoNCg0KPiANCj4gRnVydGhlciwgaWYgdGhlIGNvbXBpbGVyIHVucm9s
bHMgYSBsb29wIGFuZCBpbnN0YW50aWF0ZXMgc3VjaCBhIHB1dF9pbnNuKCkNCj4gdHdpY2UsIGl0
IGNvdWxkIHBpY2sgZGlmZmVyZW50IGlucHV0cyAod2hlcmUgZmxleGliaWxpdHkgaXMgYWxsb3dl
ZCkuIE1vc3QNCj4gcHJlc2VudCB1c2VzIChpbmNsdWRpbmcgb25lcyBJIGhhdmUgcGVuZGluZykg
bWVldCB0aGlzIHJlcXVpcmVtZW50IChpLmUuDQo+IHBlcm1pdCBvbmx5IGEgc2luZ2xlIHJlZ2lz
dGVyIHBlciBvcGVyYW5kKSwgYnV0IHZtb3ZkcXV7MzIsMTZ9X3RvX21lbSwNCj4gZXZleF92Y3Z0
cGgycHMsIHZwY29tcHJlc3N7ZCxxLHd9LCAgdnBkcHdzc2Rfe3ZleDEsdmV4MixldmV4fSwgYW5k
DQo+IHZtb3ZzaF90b19tZW0gZG9uJ3QuIHssdn1tb3ZzZHssX21hc2tlZH1fdG9fbWVtLCBwY21w
e2UsaX1zdHJ7aSxtfSBhbmQgYQ0KPiBmZXcgbW9yZSBjb3VsZCBhbHNvIGVuZCB1cCBiZWluZyBw
cm9ibGVtYXRpYyBpZiBkaWZmZXJlbnQgYWRkcmVzc2luZyB3YXMNCj4gdXNlZCBmb3IgdGhlIG1l
bW9yeSBvcGVyYW5kKHMpLg0KPiANCj4gTm9uZSBvZiB0aG9zZSBzaXQgaW4gbG9vcHMsIEkgdGhp
bmssIHNvIHdlIG1heSBiZSBzYWZlLiBCdXQgdGhlIGNvbnN0cmFpbnRzDQo+IG5lZWQgcHJvcGVy
bHkgd3JpdGluZyBkb3duIGluIGEgY29tbWVudCwgSSB0aGluay4NCg0KR29vZCBwb2ludCwgdGhl
cmUgaXMgYW4gaW1wbGljaXQgYXNzdW1wdGlvbiB0aGF0IG11bHRpcGxlIHVzZXMgb2YgdGhlIHNh
bWUg4oCcd2hpY2jigJ0gYXJndW1lbnQgY29udGFpbg0KZXhhY3RseSB0aGUgc2FtZSBiaW5hcnkg
Zm9ybS4NCklmIHRoZSBmb3JtcyBhcmUgZXF1aXZhbGVudCB0aGUgdGVzdCB3b3VsZCBzdGlsbCBw
YXNzIChidXQgcGVyaGFwcyBlbXVsYXRvciB0ZXN0IGNvdmVyYWdlIHdpbGwgYmUgcmVkdWNlZCks
DQphbmQgd29yc3QgY2FzZSBpZiB0aGV5IGFyZSBkaWZmZXJlbnQgYW5kIG5vdCBlcXVpdmFsZW50
IGEgdGVzdCBjb3VsZCBmYWlsLg0KSWYgd2Ugc3RhcnQgcnVubmluZyB0aGVzZSB0ZXN0cyBpbiBh
IENJIHRoZW4gd2Ugc2hvdWxkIG5vdGljZSBpZiB0aGF0IGhhcHBlbnMgd2l0aCAoZnV0dXJlKSBw
YXRjaGVzLg0KDQpBbHNvIGlmIHNvbWVvbmUgaGFwcGVucyB0byB0eXBvIHRoZSBuYW1lIG9mIGEg
4oCYd2hpY2jigJkgaW4gYSBuZXcgdGVzdCBpbiBhIHdheSB0aGF0IGl0IHJldXNlcyBhbiBleGlz
dGluZyBvbmUgdGhlbiB0aGV54oCZbGwgbm8NCmxvbmdlciBnZXQgYSBidWlsZCBmYWlsdXJlIChv
ciAyIGluZGVwZW5kZW50IHNlcmllcywgYm90aCBhZGRpbmcgdGVzdHMgZm9yIHRoZSBzYW1lIGlu
c3RydWN0aW9uKS4NClBlcmhhcHMgdGhpcyBvbmUgY291bGQgYmUgYXZvaWRlZCBpZiBJIGV4dGVu
ZCBwdXRfaW5zbiAob3IgZGVjbF9pbnNuKSB0byBjb250YWluIHNvbWUgQyBzeW1ib2xzIHRoYXTi
gJlkIGNhdXNlIGEgY29uZmxpY3QuDQoNCldpbGwgdGhpbmsgYWJvdXQgdGhpcyBhbmQgc2VuZCBh
IG5ldyB2ZXJzaW9uIGluY2x1ZGluZyB0aGF0IGFuZCB0aGUgY29tbWVudC4NCg0KPiANCj4+IEBA
IC01MjQ4LDcgKzUyNTMsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQo+PiAg
ICAgICAgIG1lbXNldChyZXMgKyAzLCB+MCwgOCk7DQo+PiAgICAgICAgIHJlZ3MuZWF4ID0gKHVu
c2lnbmVkIGxvbmcpcmVzOw0KPj4gICAgICAgICByZWdzLmVjeCA9IH4wOw0KPj4gLSAgICAgICAg
Zm9yICggaSA9IDA7IGkgPCAyOyArK2kgKQ0KPj4gKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDI7
ICsraSApDQo+PiAgICAgICAgIHsNCj4+ICAgICAgICAgICAgIGRlY2xfaW5zbih2bW92c2hfdG9f
bWVtKTsNCj4gDQo+IEV4Y3VzZSBtZT8NCj4gDQoNClNvcnJ5LCBzaG91bGTigJl2ZSBub3RpY2Vk
IGJlZm9yZSBzZW5kaW5nIChhIHN0cmF5IGNoYW5nZSBmcm9tIHVuZG9pbmcgdGhlIHZvbGF0aWxl
LCB3YXNu4oCZdCBtZWFudCB0byBiZSB0aGVyZSkuDQoNCkJlc3QgcmVnYXJkcywNCuKAlEVkd2lu
DQoNCg==


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 15:24:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 15:24:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244889.1544242 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxRc2-00043P-SA; Tue, 03 Mar 2026 15:24:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244889.1544242; Tue, 03 Mar 2026 15:24: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 1vxRc2-00043I-Oo; Tue, 03 Mar 2026 15:24:42 +0000
Received: by outflank-mailman (input) for mailman id 1244889;
 Tue, 03 Mar 2026 15:24: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=KsTL=BD=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vxRc2-00043C-A2
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 15:24:42 +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 187acde9-1715-11f1-b164-2bf370ae4941;
 Tue, 03 Mar 2026 16:24:41 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB989099.namprd03.prod.outlook.com (2603:10b6:510:3ae::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Tue, 3 Mar
 2026 15:24:36 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9654.022; Tue, 3 Mar 2026
 15: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: 187acde9-1715-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QZp+5LTLn345tPyV0VqRmi1Xc9zCGhZ8BpqGsOESK9ns4ui18Fl1FGVF9G1XXXzRFxoa+4epxESO6fJDyZVOjY3u76edkoNq8GcFaC8Z1w/UHdZBQ/WWMSATd9ixeJVxw2ErTsW0j9Xu7sPm+LmXjwIIK8/JK0UnG+Z9AE0WTYwaB/smEfzmz76HzIDltMSoVp0v+cgzGIpZ0tpRLjU34iqnuFmj6Uov6+QShSDtioIY9R4E1CTuXsqXdrxeGTt94F70eCwMApRmSKjfhoQOUgAUlt39XNHQmZ+LSYcoDEbkjDkmf/EiFdsHEOAZowio47m0pfNBEWO10LjNZCBFTg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lKmfsrSHU2A47P2t7ur29OSgAcpnzWZ/Dz6hdWCxs3U=;
 b=lMXqvIOXHGLuMoIHOoyOGi3DoBnQw5+epFyuZ6Mnh4mKoKtG3OymYi5Vn1trT4kqfRdO7oiMFX1Ehf7J3G4kG6sVibJghC6QPtLjnZS2R2SJJVo+s5rJWSmtVYMNtnPj/gT1WyR3YQXVMzMScZYwHHAunp7MXK8bG0a4hD6tKZbq9+GjUsgsBGeOfT7G9JxK+Drv7gRuXmd+ALH/k1vop61HlZZUAF6sl4cOJ+PaQQKuGLKAbyovUzrPykmpJeom3cfQYjTfARWEPogy7siyVX9hIbVSdU5AtU/pO9juU4aGqxF2EOeUsSAbz4+9sh8jT1F+hHHWZOmsdXUt/B61Sg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lKmfsrSHU2A47P2t7ur29OSgAcpnzWZ/Dz6hdWCxs3U=;
 b=xUrN9MoTxdnC7GoU6ug4+u28T+d7LsgmO+nzVWZ+UtX1ShzS7w5VRSAGhHh8IkuW/A3j9F4OmboN6nKkAxRpbWuJqnvTltdyBhAPnKMf9b/DsV0DA3dzswv2esaG3gP1CWSOnrI8GXEB9ItWsa/ai2MI9KvP+i2f8TTWYlcGDa8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <e98a89d4-2862-4baf-90d3-7512d0423f5b@citrix.com>
Date: Tue, 3 Mar 2026 15:24:33 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 4/4] tools/tests/x86_emulator: avoid passing NULL to
 memcpy
To: Jan Beulich <jbeulich@suse.com>, =?UTF-8?B?RWR3aW4gVMO2csO2aw==?=
 <edwin.torok@citrix.com>
References: <cover.1772189234.git.edwin.torok@citrix.com>
 <340f6a9fc4fdd4216f41e4bbdb1234069322d1c8.1772189234.git.edwin.torok@citrix.com>
 <c1ae770f-a408-45cb-907c-dab200ef5326@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <c1ae770f-a408-45cb-907c-dab200ef5326@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0403.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:189::12) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH0PR03MB989099:EE_
X-MS-Office365-Filtering-Correlation-Id: 0c2c0f98-62a0-41df-58d4-08de7938fab6
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:
	g+/14XYyt2nObEwikbDp3wQ1eu8bVDgijHNjYjQvIdx7RvyhcbFG7I2EXHLBgzHnizmUtpBAIz3RY/37FraU/MShRIUQWqqRDFas2dfyZRVSmWuZehFEGCgz+CqvS7/RMizDGYegxbx7n55g2/EfvT9ZjHi25jCgyrzGYGlts0FGG7EcbRjeiLkQo78pRmQSfeC09Qi2yNXcWvMvSQN8z4tZ0Ru4WJb9uq83MaYSxc7njifOSJmmTn6A5avpappGrVJvOnev5vrjA2LSIZPyWDS6srQsvLTU10xyjluZFggzZ3EStCBX9WKezcQf9/XiiepYIV8YzzyruOT1KIL7yDnnNy1HBpRMx7KiggDMBn41aLSQR3ATRidbE9tLVqISMu/kT+/XZnK1v4xidWKydXEJmtoB/glTThHXqvHfMeJ9uDQS+3c1zNXW+96JEc7lqvvGiUlRZh5ZAtx8zHXn1OHO//6Z6RJf0kZrGhn6hxjjvxfPadasPPsxIi1HbSiEWUuTqMtVfMg1VJWW1wSzt2Sy1NE1iiHAMebXS4kNfiC7eIVr1O2R6ymg0ednA15lFm1ov06vC0hkBbVN01GXi9OZicQ9k9zQZCB3KsW7I4I4R5QcGYpy67ZJcEDuc8gLmfpDt/r934QIJg/2AW9a0XTNy/bi+QsYMrs4Cuj7vmXWJVTgrQuQc2QMku7KVNL6Hu5+vnLyjaVnO5lY5Xr0itPCcvxuxSqFtlsWw2HeW+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)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?R3hxZ2FZNlFBbFFqR1VBa0NzdlA1Yk13U1ZvdWZvV0pYSUMyelczNUVxMXJi?=
 =?utf-8?B?b0JDK1RXVllacGVVNXBZRlM5bEVMRmJBdkJ0Y3lUeS90cEV5SFpHcnVZME9F?=
 =?utf-8?B?UHIwUWhZK3N0OW5BL0VIUjRQS3gxRlh5UnVGZGwvVVVyWlV1bXFzNERLc2Iv?=
 =?utf-8?B?ZVVOdWd3MmZkMjJ0MllNT0FyTlRVWm5ITlYyRlE1bEJjczJPcnZMWnorZWkx?=
 =?utf-8?B?cHQrTXR1R1hlUEg5cy9ldURGWjVnWWprWERLK0FySGdjNkJPdktpYmIxQis1?=
 =?utf-8?B?REFGLzJXUmluWDZJd1YwQjZVd24wWVdYcG1DR2VwUEFSeUs2Yk0rdDR6L2pD?=
 =?utf-8?B?ZEVZMTZKV2ViV3o1K08yUFd3UFh3b29kU2piTXhpV281c3lIN29uUTBpZExh?=
 =?utf-8?B?OVlEaHNnQ3k4NUllcXRTYUY3OSsraHFZOVlDVTZwOStJQjFrbEt6cWNZaWlF?=
 =?utf-8?B?TW1nTWJsVndBUzk4Y0l2cUE5TndKOG5oSWhCbHQyeDdhQlpxcDVscVpUdjhX?=
 =?utf-8?B?aFQ0TjdCVnJxTnJaU01ERkl6dnhiMjFrTUtnUGhhMmViblh0K1JLV05IWDQ0?=
 =?utf-8?B?ZkJHWUFWVVEzdS93bDRzOFBUR1V1bkdDdTRwK0NERVFycCtKcHNtcmxNS2xh?=
 =?utf-8?B?WjhaV2R5U2JYckR6R2hTcGpiUkRwSHlRVXZldGhYRnZpRk1tbWdkeUxkRHox?=
 =?utf-8?B?RE1WWnRDTC9rc2RwT3lNc1dGcWFFZjZkSjBpMXF4L2poL2tNMEJUOEtGV2sr?=
 =?utf-8?B?MkFnNXpVVlBjd1p0dytrdE1mcG1nd1V5VHBEZlMrZHQ0dXE0RkJEeERLUUpH?=
 =?utf-8?B?Mjh3ZzBPdnYraEF6NXNENnh1TEFsOUtCV3FDTTFTRnJ0UlJmZkg5b3BsbVdy?=
 =?utf-8?B?RnFtNTkyRFhHT1I3Y0FQRU9WMDBLclNpbGdnYTM4Zy9KYThnS1JmUEN0d2dJ?=
 =?utf-8?B?bSt3ek14V2tDbWdJS2lUNTZGWmc4bTY5eVNOd3hIRUVzNWoxM0g3OGpuUzgx?=
 =?utf-8?B?ZllZNXdPRmVvWHVxeTR1R1hXN0dVZlZuOUVpcDlFckZGWVpDT0VtMlhvU045?=
 =?utf-8?B?REhmM1VkdlFqaWt5Qkx0YkU3U3pqdXFoMThPU00vUk1kcG9iSXBQSm9vU1pa?=
 =?utf-8?B?aEtnd2pRc0NEZXBTK2Q2R1Y3bHJnekppRzNMYUszZWZpTEF6aXZXcW95Zkgr?=
 =?utf-8?B?RStaSm9nTlltMDdhNzZCdXVLYmhoYjhuTDAzN1U4TGZzYm5rbnU5bHpWWFEz?=
 =?utf-8?B?RmQrRlJhQndxc0lGTkRzMXFiU1djUk5uUEptODZRbjZ4b0NINmlkUXYzVmVV?=
 =?utf-8?B?VlZFNUFOTlVLT1pDdGdMNzB2dU9LeWY5Y29CNmRaY2FlT0RMcnlITVN6Q1Fs?=
 =?utf-8?B?c2hYcjJldEc1cmRDUGFwQVIwM3E5and6TVA5WGRtTGEzUEY4LzNId3BEZlpY?=
 =?utf-8?B?citWTFJ5WXE1cjdnWmNybEhWYmRtNnZpVDd3N3IzVUorbVZYRGVGYWdNWGxt?=
 =?utf-8?B?bWt0WTIvRzYyekpSWHR6TGUrQnorUnIrL0d0cWhld282OVkrbzNTcHpOQzNJ?=
 =?utf-8?B?TkpFeGxUWDlhWEJHN1NaekxBVzV3d0RFUWRpN3U1ck9NTXZObHU3OWtaVkZi?=
 =?utf-8?B?U0xPbGV6Mm1JajNDM3hTdmlWcktKYUtzTXRuRGFFeEhNdE5TYXc0QWlILzNu?=
 =?utf-8?B?SStnVHdnaGxnRkVmU3NhamQ3M2s1a3RNUDVnSUNBUCt2d1kyNW9vUmkzeVFy?=
 =?utf-8?B?VVI4dUxCOXRMS2VQV2Joa1ROZmM5U2puSndTZ3BIVE9zWFhmU29UTitqZ2JJ?=
 =?utf-8?B?TmIxczRxT0IxQ1c1aUJmd3NmUHdlbnIzNS91RVlSbzNXbHJnV1Rjd1E3Z1Yx?=
 =?utf-8?B?TXFHbUpybUg3VzNqTHV2VHJDUUs2aUJTcmxweXpSWkZmT1hhMHRpNElZVFlC?=
 =?utf-8?B?WGF1cWRnaVI5Ulh2WmxXekJLd0hkL0RiM0N1Ry9VZ1VqOTVDbkR6MCtWRXdF?=
 =?utf-8?B?dE5DRklwaVNsMnpzN05ZZk9ZNzZKVlo1dVp3dTZ4dm5QeTc5RDZCNnhzQ3ZJ?=
 =?utf-8?B?NHpOWEhXKzAxbmtjVHVmaXJVaEI2NzRYQXB0OElHOHI0VHY1TlBvV2RUZEFz?=
 =?utf-8?B?WFkwUEFiVHloVmlWRlVXbHJTRmlRZCtHOVo0TUxvQk5PL25hZHF2U29ncDZT?=
 =?utf-8?B?V25qTmxubTBHdHJIdzJIT25iOVU3ckIrTUVtWGk3WVR3RStiL2txZmVZcElX?=
 =?utf-8?B?ZWJ3VEtUaTlCRGUrVlU4aFg0VitWMU5xWDVuVVVIeEhBSDRXY29tSHFwTmlu?=
 =?utf-8?B?SGpTbFV3ais5b1Q4T0FpRmZNZUkySHQ0Skc5VjFNR3UrV1F0aWoxZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0c2c0f98-62a0-41df-58d4-08de7938fab6
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2026 15:24:36.5301
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: KwL6eSWGOuoPeLZOS5FjzpycNnmkIlhJecCGpLpgrA63/KQEKY0LsLPqlYUEEffnBB1Y2lwmD8Et1qpTIWxrMb6c5XvAkLvEvjnSneOBTQE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB989099

On 03/03/2026 2:18 pm, Jan Beulich wrote:
> On 27.02.2026 11:58, Edwin Török wrote:
>> Fixes this `-fsanitize=undefined` error:
>> ```
>> test_x86_emulator.c:614:12: runtime error: null pointer passed as argument 1, which is declared to never be null
>> /usr/include/string.h:44:28: note: nonnull attribute specified here
>> SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior test_x86_emulator.c:614:12
>> ```
>>
>> Although this is more of a grey area: I don't see anything in the
>> standard that'd forbid calling `memset` with NULL and 0,
> There actually is. In the C99 spec clause 2 refers to section 7.1.4, where null
> pointer arguments are excluded. Imo for memcpy() etc exceptions should be made
> for the case where the count is also zero, but sadly nothing like that is there.

C23 does finally make NULL with a zero length be well defined behaviour
for memcpy() and friends, but it's going to be a long time before we can
rely on this properly.

GCC 15 gains __attribute__((nonzero_if_null)) too.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 15:29:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 15:29:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244898.1544252 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxRgk-0004iF-C5; Tue, 03 Mar 2026 15:29:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244898.1544252; Tue, 03 Mar 2026 15:29: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 1vxRgk-0004i8-9O; Tue, 03 Mar 2026 15:29:34 +0000
Received: by outflank-mailman (input) for mailman id 1244898;
 Tue, 03 Mar 2026 15: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=yKVY=BD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxRgj-0004i2-80
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 15:29:33 +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 c6481837-1715-11f1-b164-2bf370ae4941;
 Tue, 03 Mar 2026 16:29:31 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-439b611274bso1591876f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 07:29: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
 ffacd0b85a97d-439b55d15besm19777387f8f.30.2026.03.03.07.29.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Mar 2026 07:29: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: c6481837-1715-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772551771; x=1773156571; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zS3enskoQSQUDWPgiI10AS3enCKqjk/TCB98Gqua3pc=;
        b=S7m4xWR7HkBE4U88uW0r6z0K62mPdLIA9P8q/q3YbJWdVnNM/bV/QeAC2SqJJOI6sY
         nhCSHwulaRrPEAZayDEn8S8sgvtoR09KIaLpx3GKJ4E9JFMtvB8DsAPs6G5ZlkxrraDE
         QRjNXmImCglJevCZTkIchioGPhPvN/NTwLdIeGb+wd4vvqw7eFKlN8vYiLnh8H4rC5W5
         tp2vUxiHraDR4AXGZC4NzNI2Tz8YikAqOsvBCW9fI587iYuUChDvFzNfWaDxC3KOFUu1
         pH4jxRAmMsmhaZSl88IWGgiCYNl+1ccBIHPBM0ieTY/kXiXT4LPxsEUL8Q6jxH0QL0st
         ewUQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772551771; x=1773156571;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zS3enskoQSQUDWPgiI10AS3enCKqjk/TCB98Gqua3pc=;
        b=A9Yrf+xABGxx2yEY7b7EKt0Mde7en2caVL+wg3rdsDhRl6TF1jUEXqedVoaX8J5Umm
         IKKhBA/ij3mvXn91fGrYVszmFl9H4Ld799GfxwDsntWV2FibB3uDQcXVmOTwGLkA+amj
         YeHQYmFc5Rm+T7c0yN4aPMKYYh8xW4waKFM/nwCDjFcYbzxzYb3UdabUu1+QgniI0RfR
         GyCfe14f2nkL7APxbzU1+XFUxR3gfxCUh8vXOtXzE8p2EmHso36mOqRb3MO8O9C8blHw
         h3hHmO+YW6ak2+1t/Dn+Q/fbpRy1iBHfdra6R9x/1MsLtfiVHZy2H+G+Sp5tHvVoQsK/
         12cA==
X-Gm-Message-State: AOJu0YytnaoprUQvEiKkuwRUyzazyTxp0tDUyDLAqKc526FHjDn7IPQO
	7u9BRdNSOGrrEoq7f00qm/pi8/Ro70FDY1DAD1OePOGWJtkUayPq50+qVXmFgoIQPg==
X-Gm-Gg: ATEYQzzCNNd3UgTYyfcSCvJmcQmKr3i+LxD/FM+jv3XlOeI3uth2BG23nVMG8RUoPnQ
	rmexY6X2kijB+zfrDKp3J+GkzyUo9sy9BPA471+m1/kM2FwJ0xuvJe2+OAi9qFhFhB3uuv9tLXd
	GQlHzv8XAjFr5fLkdZPEeWUaqzIH9/St6EOysa9bUPUySmizf6GgXcpbsctVxqpWYbiPiK/DPIh
	h1vF4Bj/cBPJhnmG4e7hXb2NDvXEvZ5jUpVukS4nUWujihPBgTZ4UEGziPEEdMTDcgXGcBfo6Bc
	8pXHhMvIj5AiCiE6utww6XB1k0VtMgTJAPYKcCYHkPmVd07XZIO3euNZt2bWCuOnxL/VXgLGDUl
	QGu8IjhybZtUp3hqZ3tiybxJntityJtHl6oQLNHsx2H/SEZvBi41fKxne7zdQ+iS8/FA17ApGxV
	MzINx0+TrZbWBFl2Qk+mR0gYB27kDc7xVIy1juMRC+gmfJHTBeBMTM3V3eGhIlek3tg4rN+KCYG
	LyJjVPTqne4KRM=
X-Received: by 2002:adf:f211:0:b0:439:abcd:b312 with SMTP id ffacd0b85a97d-439abcdb6ccmr17028997f8f.7.1772551770777;
        Tue, 03 Mar 2026 07:29:30 -0800 (PST)
Message-ID: <8098518d-80c3-4e0f-9ce3-299494aa4f14@suse.com>
Date: Tue, 3 Mar 2026 16:29:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 05/14] xen/time: move ticks<->ns helpers to common code
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
 <545c2af877d519b1186c79fd6108d33e7e52cd3b.1772016457.git.oleksii.kurochko@gmail.com>
 <2AE980D3-571A-4AB9-A01B-EAA90D3EA0B9@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <2AE980D3-571A-4AB9-A01B-EAA90D3EA0B9@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

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

Well, as the description says, this removal eliminates a theoretical risk of
overflow. So there is some "impact".

Jan

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


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 15:37:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 15:37:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244908.1544263 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxRnu-0006F5-3c; Tue, 03 Mar 2026 15:36:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244908.1544263; Tue, 03 Mar 2026 15:36:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxRnt-0006Ey-W1; Tue, 03 Mar 2026 15:36:57 +0000
Received: by outflank-mailman (input) for mailman id 1244908;
 Tue, 03 Mar 2026 15:36:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=yKVY=BD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxRns-0006Es-F3
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 15:36:56 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cd9398e3-1716-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Mar 2026 16:36:53 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4834826e5a0so67078705e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 07:36: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-483c3b44207sm373396575e9.7.2026.03.03.07.36.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Mar 2026 07:36:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cd9398e3-1716-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772552213; x=1773157013; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6BgO+d69eIe8i/1P9hdXQKHfptXMFDHOVG9lzJC1iDw=;
        b=X7UXLeLhxHstlGQinAFphtSe/lCsJ0rVEYPer7tGe6IEa8s1sdXCi9/hwYS9Y1PNd9
         9nvGgXYNG7kDyt3loK4AtJoqqDHrD5w7odHLpYu4JOXmrhL8MqNm95sDZoTrzlyqbNc7
         sZwVpJFqm9OOFB+UxWBjkuGduF9my0LKPRUsEWorMz2sXVdYyrjPdROMHT4zHGEvwTYI
         xXLr9Kn90JmmPRvWaR87gK6RyKaQIStnCcFKl/dfEMwZ98+9+QMG0b4Ll3PMgAyYcVUU
         CTirwY+bPM0qf9gyBPaRQwz5ZRPmGPXvN7m8nnq1qsfqTTmKqmkT4otzzQOXq4Ft/Cbf
         Q9jg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772552213; x=1773157013;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6BgO+d69eIe8i/1P9hdXQKHfptXMFDHOVG9lzJC1iDw=;
        b=Cm5ot3/qqateMyiokiHh4xe1CQ3Lsa69ZEhpk5GEeZLz6Q1u848oUox6hT/G5zQmb4
         5S+Frlo9TEbXr0ZpNyY4qQyzUWvDfhTHBcAif+05n6Ai+iafCqcO6G+dbjGHyZFWY8SG
         mwiC4NhcB+7Oh6Nh6EZZC0S7y0Vg1tFx1jKRbyh5su23a0CdBHTHBOrsQE33jSgzHaq+
         HrjYXerorUkrC8bGAvb84JOsMfimtImqr4mwItEurKOTbKbKOBpAizvLLEZ5zXdBb5YU
         H0A4lN0ROfMm/HOwqoVKAaN8pbaJ4P5rgKnjjzP4kEAPjLTIZ8Nddor1VrK6OcICwPS/
         Eh8Q==
X-Forwarded-Encrypted: i=1; AJvYcCX0xplRgi5+oNDTSKH25pJnm026r6bafOqWIc564f/ecay3zyvAS1ANNx0xDcYyA0KTlurqnP71Wh0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxQW0y8t6id6gfMm1iKjLRtgp9u4WXwsaxdjlp4aiP0ArklScJp
	QiHb1q5oZ6gVc+5Ksor/5LgBBPFlGXxId3mhyFdjj6wN5tm+EU12lSR04a1ILCVaUg==
X-Gm-Gg: ATEYQzz3E1GDYncJYkyvkwfFbR2F1wY3QETkkgT1K7PrNsRSSggK5pRARYgr06f4jDf
	7yhxOmfG88BRtbsRBLFyPJ3Cb06Yjah4Xd89mLozPfDtQsX2GpJie7njjTNK5qXUpXoBWOM+NzY
	N3B+nrdmlyYja/F42jp4mLsCvvK6C1qeEiaT+V4sgCWvqh0/c+/4ZfAGzzpPgx6V8oNgH01hr4t
	J0Zjthfaj+pN0h3gtGvbf1Cq7kEtCwBWSE+jMfTQQE/9cbboBKtdjUDrUXryLVIhxCHzxsLFO4j
	VAdaRTlQ8/pc0maGGjJHZHxSpxEjofCXn1AIiD1rEPLzrMVxqyXcop5ZXZQhcEMWSE/bgPTMglW
	Dd3QieRu5Hk/BeIdIXrIak1Xf/VEe/4pDdBdfg/Ag3XkGiNJLJ3KjaVym8reRbv0744wUVBoB7W
	fZWpV9jjGevU+H+gpmcZCcIIaoXUIFIqNvLwXQQl8a2vUjHI2tSVVasw+1vMjeEnyG5pcwBwjOe
	Asrd/phUxjcsFygy0l5iYL//A==
X-Received: by 2002:a05:600c:3486:b0:480:3a72:524a with SMTP id 5b1f17b1804b1-483c9bed89emr329853505e9.19.1772552212536;
        Tue, 03 Mar 2026 07:36:52 -0800 (PST)
Message-ID: <d5c0e218-bfc4-4f37-901c-b622f90b7bd2@suse.com>
Date: Tue, 3 Mar 2026 16:36:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] tools/tests/x86_emulator: avoid duplicate symbol
 error with clang
To: Edwin Torok <edwin.torok@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Roger Pau Monne <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1772189234.git.edwin.torok@citrix.com>
 <358a87d89d50475a57f2a5d6ebea01d95a1df6d7.1772189234.git.edwin.torok@citrix.com>
 <766824c8-2ec5-45bd-9aed-1e84ad3ff779@suse.com>
 <B5EFCE28-79BA-403B-8F44-C4E7606BACE7@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <B5EFCE28-79BA-403B-8F44-C4E7606BACE7@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03.03.2026 16:09, Edwin Torok wrote:
>> On 3 Mar 2026, at 13:59, Jan Beulich <jbeulich@suse.com> wrote:
>> On 27.02.2026 11:58, Edwin Török wrote:
>>> --- a/tools/tests/x86_emulator/test_x86_emulator.c
>>> +++ b/tools/tests/x86_emulator/test_x86_emulator.c
>>> @@ -1882,8 +1882,13 @@ int main(int argc, char **argv)
>>> #define decl_insn(which) extern const unsigned char which[], \
>>>                          which##_end[] asm ( ".L" #which "_end" )
>>> #define put_insn(which, insn) ".pushsection .test\n" \
>>> -                              #which ": " insn "\n"  \
>>> +                              ".ifndef "#which"\n" \
>>> +                              #which ": \n" \
>>> +                              ".endif\n" \
>>> +                              insn "\n"  \
>>> +                              ".ifndef .L"#which"_end\n" \
>>>                               ".L" #which "_end:\n"  \
>>> +                              ".endif\n" \
>>>                               ".popsection"
>>
>> Nice idea, but why multiple .ifndef, and why emitting the insn even if the
>> labels are already there (and hence won't be emitted a 2nd time)?
> 
> I think we still need to execute the instructions, so they can be compared against the emulator.

Of course, but they cannot be executed without having a label. We use the
label to point the emulated IP there, and then we use the end label to
check that after emulation the emulated IP has advanced as expected.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 15:56:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 15:56:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244923.1544272 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxS6M-0000jG-J2; Tue, 03 Mar 2026 15:56:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244923.1544272; Tue, 03 Mar 2026 15: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 1vxS6M-0000j9-F3; Tue, 03 Mar 2026 15:56:02 +0000
Received: by outflank-mailman (input) for mailman id 1244923;
 Tue, 03 Mar 2026 15:56:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dwqp=BD=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vxS6K-0000j2-Tf
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 15:56: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 75b436c1-1719-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Mar 2026 16:55:55 +0100 (CET)
Received: from SA3PR03MB7419.namprd03.prod.outlook.com (2603:10b6:806:39c::6)
 by CH4PR03MB7652.namprd03.prod.outlook.com (2603:10b6:610:246::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Tue, 3 Mar
 2026 15:55:46 +0000
Received: from SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc]) by SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc%6]) with mapi id 15.20.9654.022; Tue, 3 Mar 2026
 15:55: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: 75b436c1-1719-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MZvr71TLkqMn35tu1XmSDwGBRunKPCdbqdYLOezT4FPLZs3Epco7qs8+ojt/gdCQrzkxbDA4A1LWLPioMjFp+MWJ+/LGxHWA5me2I8/b8GrugD3iuXPn+P0V05iJevxFHNXhs+HIaHXooQZ3u7vHzWoJYoDWNJ+1C9oZ1TzBwBvlcuf3wK+r/YWTN6AxkfQe+3v2BrlOWN9pD+CpqjEYCGt/J0VuVyvXmllPDvhOx8xbL9snmcRzbFyvHqAD721poRbigdYN0H6/F7z5lU5W0YZFzhoQeZ4MeALIIWXMPXsYCjwOt0QrbPXswz3ZEbdkH1CPm05ZGh1ynqvGdsKe6g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Hmuvr/6jLEHfqNNjocyGQ5zaxBM2H0QcvdisHflQEag=;
 b=RnfrULQM8R9slx81poXubOqSVEFI1yfnAo9hwU2LGMFYVBSI2OHKRNYwFdNLbQzyfCuBGOGlHg+NRYK0R3s+9wRKsV3ikFVgd81kejs2jIayGjb0la1xdGv6mtec3MeYJj6YZsZ//IesNZLNXz5OWjf4V4qmM04NeBqYo8SSVxRsFQKAFJaCpzIh8nD9x9tAEv3TE3yYylgoRoSz0gCurwHh5FKniRMstWBNmrXAZQayShGwtwCi8ya2LP/8TnoajEFV9wyjIPk+8pyuddvDxJ2Yrw6CfuPJ//2x0B64waCD5NSXF9kiprrrSpngrf3B9/ujB9I+bazfOW4P9zTj7Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Hmuvr/6jLEHfqNNjocyGQ5zaxBM2H0QcvdisHflQEag=;
 b=mAMO/TSyzm2S2aoMvWBFPqmxzU5ryQ/biWZ12Wxc8PF1oQCPJWxybANvLmrhj/NoM8kHOM//n478ZBsQTN/TjGWE2rm9V4R5rFjmlKFJAJH4JksGZ/Lfrw9gUzfkre4lg+GJj2vvQCh+LH/kK4Km1byGkZ6uKF1XIGbH6yxfnlg=
From: Edwin Torok <edwin.torok@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Roger Pau Monne
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 1/4] tools/tests/x86_emulator: avoid duplicate symbol
 error with clang
Thread-Topic: [PATCH v2 1/4] tools/tests/x86_emulator: avoid duplicate symbol
 error with clang
Thread-Index: AQHcp9gBGAcR9pePk0GnYyu6dQzUZLWc3C6AgAATegCAAAfEgIAABTyA
Date: Tue, 3 Mar 2026 15:55:46 +0000
Message-ID: <004F02CE-B8C8-40B5-8453-C754EBE92022@citrix.com>
References: <cover.1772189234.git.edwin.torok@citrix.com>
 <358a87d89d50475a57f2a5d6ebea01d95a1df6d7.1772189234.git.edwin.torok@citrix.com>
 <766824c8-2ec5-45bd-9aed-1e84ad3ff779@suse.com>
 <B5EFCE28-79BA-403B-8F44-C4E7606BACE7@citrix.com>
 <d5c0e218-bfc4-4f37-901c-b622f90b7bd2@suse.com>
In-Reply-To: <d5c0e218-bfc4-4f37-901c-b622f90b7bd2@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA3PR03MB7419:EE_|CH4PR03MB7652:EE_
x-ms-office365-filtering-correlation-id: 6014d258-a11b-47fa-a557-08de793d5546
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:
 RLOFx/23VEbJq13XeaZTNnw/FMCScNwlsvDp5W/kpnhhQTYV9Esgb0Iga2VUf5s4TjfXOJxBI69+DeusHGWQlGITuIGAA66ZFLS0JHyX+1ov5VmTfHz+ICG/reAJn8l6RjVgregCKtXxKbGWJH6zG8EeMk3VhSJJ+vT4tSpG1r1KOnj45ED1AXCTh+VOAN2Ym+rvqwVOkg5HnGW8ZQSRz5M8/KBOc6jQq3MOyTCdIQ76BL6TLDUgqKEnFti/L6/98foBaZSsmnZee9kj6W/9d61JVvRYp8Zx4XnCFB+n+yftgPADYCOLv9v8s5Usu84Kfcd+Y/9snrzynRykEb2+CSidmAMYBU4zNRbCOwgE59wp0HQPwtpqAGjiUvMYxV9J6iliPqV8utmNahy/1d3ql5ZL+mlE0nORR76LklxsWvoknNgrio7rqq5Dee4RU0aKQoyPNZgJn9gK3taX4jF/vkM26EHHBLn7oNuw9QjSxNIDtVrAzqqQn4cuaWFC5SreKMLjvobCKBHudS4wmIcs0ZT/kolFuz2BrNlK+I8Q8ym8GCYhAVdEzIoc1/LAXA8Zpxu0ChyevD83PiwD6Vey0DNGxmzPNNfo/1cTWoFjECocflW5gFlETe+zNMby96Eq5w5yweLX/x/marBaaxc//7dVptdjuM69YBqMXVtl3sMGPS2Bx6EehVMU36yVwzwihg/wu/WsBy/b/Hs6R9gthI5FqLitSrocmXhSeh/x4bczU90+lBseaOON+PfzDnXO
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA3PR03MB7419.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?WFRReHhhZjBDdEZjdEhKSjQ1RVJiTU5WSVF0U0oxTnBxNWVtZHBhY2trbVgz?=
 =?utf-8?B?Smh1M1dacUFBcktXcUFUa1pINVBIS0xHQTBQS2RDRjlxcklEOUVtNTZzWEYr?=
 =?utf-8?B?dkNnRDJ4ankwNzFEeTlCQ0NpNkpKRTVDN3JvUWpEWHlNSGFUYWgvMENJd3VO?=
 =?utf-8?B?dFcxaHYyc291L0YxRUFSWTRadDA5dEg4VUtxeld0TVVRa0dieWpUck56aVNs?=
 =?utf-8?B?RkhMRjBzakxZcWFIU1VtYk1UelcxMHAweldvQk5DR052anIwUm5qYnc1N25u?=
 =?utf-8?B?TUUwS09nbWVuOFg3T2ZGRVordThlY3NFWE04Q2dWRlhOUXlJWDZlV3hGVXc0?=
 =?utf-8?B?VWh3MmdPcTlyMDRiTHJuRnhCTlkvVFduMWZwaGRuaERyU1BIS2N2RHZtemFx?=
 =?utf-8?B?QkNucEY4b2o5bkgrakJzS3F1VEJvUmx6QmdMV0p6UE5tMEhCMjZ3ZC9RTmY0?=
 =?utf-8?B?a2ptRU1VQjB6RWl6N1Y2Z0wxR0JOTEhNTDJlMVFSc2dqcXoyTWptejFXc1RW?=
 =?utf-8?B?T1NEQ2VCWnN4NDV3TnV5TWdEWWw5cld2L3ltUDZYbnJiOHJPaml2TjFKWmwx?=
 =?utf-8?B?QmxYNE82MmtDaEZEU2hBeG1CUEhLVGRIVmh4L0JraTIwcjlDV1crcXl2Zld2?=
 =?utf-8?B?ZXhXc0hwNWtyWXFXdGdVM0lkR0JFZXZrcVRGZU1BMEozZ0p1UU1xemF2K2tW?=
 =?utf-8?B?WHJQZUo5NmNIR3pPU2pGTWs0K0tDcjA1TUZpVDQ1NzRGZXdpRjUxNldNR25Y?=
 =?utf-8?B?dkZYaEJFNTdZL3IwSFNKMWRQcVdud0FneGFZcUY4bGp2cmJVazBtOXZtSnYz?=
 =?utf-8?B?UjVTZWx2UXQrOW9YOHVrZE9Qekp6dkRQZWl2T0VITjhONFY3OERPQ051cVRG?=
 =?utf-8?B?T0ozcWo4Wlo1WDNzbFFzbzdoNGFQWFUybzBWQWFkZkdoWkdCK1l6ZTlOREs0?=
 =?utf-8?B?bXIydDZZVTY5Q0NuMVhvZFk5RVBpU2ZVSFNWWFl3QVFLS2ZPZExaYkxscS94?=
 =?utf-8?B?b2djQ1VMNHc1UjJDY1ZlMjVpbllLTHFLTSs0cmxVT2czL0lyVkN6NkZtdllp?=
 =?utf-8?B?QWFySlhWUUdCcjNKbmVKdDdOQklJejNpOE1vMmJaSG95aVpOYkpqTnpVMnAv?=
 =?utf-8?B?V1hNSVdDNVRjOTZqai80enAzcGhPSE5xL1ZLSnlVbkl3VGIrNHFOU09wRGlB?=
 =?utf-8?B?Q3I2dy83bHRvSlBOenZ5TXA4cjVqNmRmTXVEOFo3Qmh6YW5aS1dleEhpTFZt?=
 =?utf-8?B?WVVZcnNxSGl1Vkh6OGdGT2t4eTZWR1VSZUI1TWhjS212QWxIK2ZkQXFidUNL?=
 =?utf-8?B?bFhEUkdVSWpjVGtseFhTYmdGTzd5bUY4UkpDTGNxMURodS9EL0VxcFpiUGwx?=
 =?utf-8?B?YkVKeThrZjJlZU8xaHdCYVlxdUZxVGZ6emdtSVFDTE82UEprNEp6OWZzTnFm?=
 =?utf-8?B?MWc1YlBWeGdHUEloKzdUb3ZSWFJPcWNMejlvTWJoUWU1bklnREtheUNqRk0x?=
 =?utf-8?B?M1lUd3FXU1FCWkcxU3Rtd3N5Z1hsOUIvdXhjaHFHcXh5MmtJRlNvWThCN0xW?=
 =?utf-8?B?MHpNNWF4OFU4eC9hWWFPVHhYTUNQY0hIZVFZbU5BRUt1bDF4eEljcmdmN3J0?=
 =?utf-8?B?YW5XbWMveml4dGFZa1MzREVtMUdvc3JsVlcvVWVGSmhvblZJdTBQVTV4ZjFw?=
 =?utf-8?B?UTdIT3lQNkNyQlVpWGpHT3cveHNWOSs5Nk1UQ2sxd1ZadjVkVGpTNHhWcUVL?=
 =?utf-8?B?aUplREZlS2ZsMGdsenZTNmVpOTBTNXZObk5iZlRUMlpWa3VTZlcwSnRuODlN?=
 =?utf-8?B?YUxyOFAyRWkydEIzV01mbG1GMnRoSjdOd05MeDhWSkNITHF3K1poVExLTVZu?=
 =?utf-8?B?Q0ZFTTVSZHMrdkZlRkdQRnhkenF5QUgrWk5pV0l2c1IwVzIxTko2UG00Z0Ra?=
 =?utf-8?B?Z2luVGdrQ2NSVFBDQ3ZSaTV0Uk13V0Q4Q0lmRms0UmJ1a201OWJDc3pLREN5?=
 =?utf-8?B?aW0reHhyZnhIalhKZXRncTQ1aFErMFR6UTBBTmdkRlVHRWhZQjdGNHl6T0VI?=
 =?utf-8?B?a2VFc2owTlB6NHNhVDNNaFhMUnV5QlJVTUxqV1Z1cFhhZ2ZjbjhBZFdSMXhO?=
 =?utf-8?B?Y2hnd09YR1hDcGlYWTNlTlB4N3lCS0FXdzdZTWNoTVozR0RvVys5MjhVK2cy?=
 =?utf-8?B?aGFacmVHZ3NIVTJaSFBlK0MwdjZ0MUJUUi9DUjdDWk9tMjNlZEVicTFYcW1V?=
 =?utf-8?B?S3ViNHpoUlZyVUtJTWVIZDRpNHB1TmZqbG95RzYxRkl3VlVsWWZpWGJpOUJQ?=
 =?utf-8?B?aThYZ2NCVTcrNkxZTncwV2VvSm5za2RpY3VuZ2t4Um5iUXJZaVExRzRIZi80?=
 =?utf-8?Q?M7OtOIwQHQfxYzZY=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <74A4FED04D101743874A770E142AFC56@namprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA3PR03MB7419.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6014d258-a11b-47fa-a557-08de793d5546
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Mar 2026 15:55:46.3671
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: SkbNyzd17M48ZGwgnoVMyQVdH8eXgWOB1Xj5YV+2k1UHkWBaBmbfauTC/y3DcMTReDLZhyzGzZQoDCtdcwAu+Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH4PR03MB7652

DQoNCj4gT24gMyBNYXIgMjAyNiwgYXQgMTU6MzYsIEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl
LmNvbT4gd3JvdGU6DQo+IA0KPiBPbiAwMy4wMy4yMDI2IDE2OjA5LCBFZHdpbiBUb3JvayB3cm90
ZToNCj4+PiBPbiAzIE1hciAyMDI2LCBhdCAxMzo1OSwgSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1
c2UuY29tPiB3cm90ZToNCj4+PiBPbiAyNy4wMi4yMDI2IDExOjU4LCBFZHdpbiBUw7Zyw7ZrIHdy
b3RlOg0KPj4+PiAtLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3IvdGVzdF94ODZfZW11bGF0
b3IuYw0KPj4+PiArKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3IvdGVzdF94ODZfZW11bGF0
b3IuYw0KPj4+PiBAQCAtMTg4Miw4ICsxODgyLDEzIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy
ICoqYXJndikNCj4+Pj4gI2RlZmluZSBkZWNsX2luc24od2hpY2gpIGV4dGVybiBjb25zdCB1bnNp
Z25lZCBjaGFyIHdoaWNoW10sIFwNCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgd2hpY2gj
I19lbmRbXSBhc20gKCAiLkwiICN3aGljaCAiX2VuZCIgKQ0KPj4+PiAjZGVmaW5lIHB1dF9pbnNu
KHdoaWNoLCBpbnNuKSAiLnB1c2hzZWN0aW9uIC50ZXN0XG4iIFwNCj4+Pj4gLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICN3aGljaCAiOiAiIGluc24gIlxuIiAgXA0KPj4+PiArICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIi5pZm5kZWYgIiN3aGljaCJcbiIgXA0KPj4+PiArICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgI3doaWNoICI6IFxuIiBcDQo+Pj4+ICsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiLmVuZGlmXG4iIFwNCj4+Pj4gKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluc24gIlxuIiAgXA0KPj4+PiArICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIi5pZm5kZWYgLkwiI3doaWNoIl9lbmRcbiIgXA0KPj4+PiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICIuTCIgI3doaWNoICJfZW5kOlxuIiAgXA0KPj4+PiArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIi5lbmRpZlxuIiBcDQo+Pj4+ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIi5wb3BzZWN0aW9uIg0KPj4+IA0KPj4+IE5pY2UgaWRlYSwgYnV0IHdoeSBt
dWx0aXBsZSAuaWZuZGVmLCBhbmQgd2h5IGVtaXR0aW5nIHRoZSBpbnNuIGV2ZW4gaWYgdGhlDQo+
Pj4gbGFiZWxzIGFyZSBhbHJlYWR5IHRoZXJlIChhbmQgaGVuY2Ugd29uJ3QgYmUgZW1pdHRlZCBh
IDJuZCB0aW1lKT8NCj4+IA0KPj4gSSB0aGluayB3ZSBzdGlsbCBuZWVkIHRvIGV4ZWN1dGUgdGhl
IGluc3RydWN0aW9ucywgc28gdGhleSBjYW4gYmUgY29tcGFyZWQgYWdhaW5zdCB0aGUgZW11bGF0
b3IuDQo+IA0KPiBPZiBjb3Vyc2UsIGJ1dCB0aGV5IGNhbm5vdCBiZSBleGVjdXRlZCB3aXRob3V0
IGhhdmluZyBhIGxhYmVsLiBXZSB1c2UgdGhlDQo+IGxhYmVsIHRvIHBvaW50IHRoZSBlbXVsYXRl
ZCBJUCB0aGVyZSwgYW5kIHRoZW4gd2UgdXNlIHRoZSBlbmQgbGFiZWwgdG8NCj4gY2hlY2sgdGhh
dCBhZnRlciBlbXVsYXRpb24gdGhlIGVtdWxhdGVkIElQIGhhcyBhZHZhbmNlZCBhcyBleHBlY3Rl
ZC4NCg0KT2ggdGhhdCBtZWFucyB0aGF0IHdlIHdvbuKAmXQgYWN0dWFsbHkgYmUgdGVzdGluZyBh
bnl0aGluZyB1c2VmdWwgaW4gaXRlcmF0aW9ucz49MQ0KKHRoZSB0ZXN0IHBhc3NlcywgYnV0IGl0
IHJ1bnMgdGhlIHNhbWUgdGVzdCBhcyBpdCBkaWQgb24gaXRlcmF0aW9uIDApLg0KDQpJIGhhZCBh
bm90aGVyIGFwcHJvYWNoIGluIG1pbmQgKGFsd2F5cyB1c2UgYSBsb2NhbGx5IHVuaXF1ZSBsYWJl
bCB3aXRoICU9LCBhbmQgdXBkYXRlIGEgQyBwb2ludGVyIHRvIHBvaW50IHRvIGN1cnJlbnQgb25l
KSwNCmJ1dCBpdOKAmWQgYmUgdmVyeSBpbnZhc2l2ZS4gV291bGQgaGF2ZSB0byB1c2UgZXh0ZW5k
ZWQgYXNtIHN5bnRheCBpbnN0ZWFkIG9mIGJhc2ljLCBidXQgdGhhdCBpc27igJl0IGV2ZW4gdGhl
IGJpZ2dlc3QgcHJvYmxlbToNCmFsbCB0aGUgJTAsICUxIHdvdWxkIGdldCBzaGlmdGVkIGJlY2F1
c2UgSeKAmWQgbmVlZCB0byBpbnRyb2R1Y2UgYW5vdGhlciBvdXRwdXQgdmFyaWFibGUuDQpBbmQg
aWYgSSBkb27igJl0IGludHJvZHVjZSBhbiBvdXRwdXQgdmFyaWFibGUgdGhlbiBjbGFuZyBjb21w
bGV0ZWx5IG9wdGltaXNlcyBhd2F5IHRoZSBwb2ludGVyIG9uIHRoZSBDIHNpZGUsIHRoaW5raW5n
IGl0IGlzIG5ldmVyIHdyaXR0ZW4gdG8sDQp2b2xhdGlsZSBtaWdodCBoZWxwLCBidXQgdGhhdOKA
mWQgcmVxdWlyZSBldmVuIG1vcmUgY2FzdHMpLg0KUHJvYmFibHkgbm90IHdvcnRoIGdvaW5nIHRv
byBkZWVwIG9uIHRoaXMgcGFydGljdWxhciByYWJiaXQgaG9sZS4NCg0KU2luY2UgdGhpcyBpcyBq
dXN0IHRlc3QtY29kZSBtYXliZSBJIHNob3VsZCB0cnkgdXNpbmcgLU8wIGluc3RlYWQgZm9yIGNv
bXBpbGluZyB0aGUgZW11bGF0b3IgKnRlc3QgY29kZSBvbmx5KiAoaS5lLiBhZGQgTzAgdG8gdGhl
IHRlc3RzL3g4Nl9lbXVsYXRvci9NYWtlZmlsZSkNCkkgdHJpZWQgLU9zIGZyb20gaHR0cHM6Ly9s
aXN0cy54ZW4ub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMjMtMDQvbXNnMDAyODMuaHRt
bCwgYnV0IC1PcyBpcyAtTzIgd2l0aCAqZXh0cmEqIG9wdGltaXNhdGlvbnMgdG8gcmVkdWNlIGNv
ZGUgc2l6ZSBmb3IgY2xhbmcsIHNvIGl0IGRvZXNu4oCZdCByZWFsbHkgdHVybiBhbnkgb3B0aW1p
c2F0aW9ucyBvZmYgKGl0IHR1cm5zIG1vcmUgb3B0aW1pc2F0aW9ucyBvbuKApikNCmh0dHBzOi8v
Y2xhbmcubGx2bS5vcmcvZG9jcy9Db21tYW5kR3VpZGUvY2xhbmcuaHRtbCNjbWRvcHRpb24tTzAN
ClRoYXQgaXNu4oCZdCBuZWNlc3NhcmlseSB0aGUgY29ycmVjdCBzb2x1dGlvbiwgYnV0IGlmIGl0
IHdvcmtzIGl04oCZZCBhdCBsZWFzdCBhbGxvdyB1cyB0byBiZWdpbiBydW5uaW5nIGJvdGggR0ND
IGFuZCBjbGFuZyB0ZXN0cyBpbiB0aGUgQ0kuDQoNCg0KQmVzdCByZWdhcmRzLA0K4oCURWR3aW4=


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 16:43:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 16:43:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244942.1544282 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxSqC-0007VG-1k; Tue, 03 Mar 2026 16:43:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244942.1544282; Tue, 03 Mar 2026 16:43:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxSqB-0007V8-UZ; Tue, 03 Mar 2026 16:43:23 +0000
Received: by outflank-mailman (input) for mailman id 1244942;
 Tue, 03 Mar 2026 16:43: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=yKVY=BD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxSqB-0007V2-Ih
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 16:43:23 +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 173c1733-1720-11f1-b164-2bf370ae4941;
 Tue, 03 Mar 2026 17:43:22 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-439b97a8a8cso2319868f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 08:43: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-439c4489279sm2911056f8f.20.2026.03.03.08.43.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Mar 2026 08:43: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: 173c1733-1720-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772556201; x=1773161001; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fVfSyzCJ07n5V8La9UVEMBtwFP68oj3ioMWaN4GLNUw=;
        b=cKzUAoF70FDBVDKOCr8eMsmqKvwid+U6liUniSISdEDkYCiZ0VJSOQOUpFxGYPZRDG
         ymJmUAJQhg7NLdfMLFw25dPAPjOiVkFYyekjuR03E10H63kf6MPzVdSUrZNTWFlwFlst
         0zmCWprawE9oKNQEAETn2W1Yao4yinDH7gyug1y0RIhAYqSJt78mZphFnn+9RPE/Ba2y
         GwnaEDsHY/Lry1YUEnmkMZt9GOxmeXcNiGsxvBEQPbcYncCMsm/Qgy6mxM1DLEWbSEpA
         e4Mwwwo5eC2z2WdeJGuhQP7rjZxxdt/gLyhnfITywxIW95W+Jquh+Zily3Gxaz4ymsu6
         1Jxg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772556201; x=1773161001;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fVfSyzCJ07n5V8La9UVEMBtwFP68oj3ioMWaN4GLNUw=;
        b=UQbLZ9Hp436nEzpH9/OwuD2oAhIpvfuy4YfDaP3X6/xkCjQAMu9DoP6LxzlS+mwlYW
         lvtucXlC58WNz54rEiJhjbSHhN4lCzCTLoGkRJTzm/50Sn2581cw7LPJ0hfblRZddiZ3
         a1k0v4oHnXQuuw1Umw6uWrk7pOT8P+6LDeCmWcmlpOc3V6CBsCa+MVEfmF1qfDyRbYl7
         gezxdoS5/iQ5XilHdZTXmj8MY8KOAJOuFOcNFY60NYcIUIKKmBtPUN2sJY8Mj8F0NDcE
         Hsvk5CsBk4kM7KAL6x3fRp+yQNLb9/+R5Thdxn3a0U8CJtFFBE7FFckzyM7fC47WKvTv
         OGuA==
X-Forwarded-Encrypted: i=1; AJvYcCWXMSVil519MTLCm+7up2gS/6bqkquwbbRIsr4v4re9QS1YgJe0SVEp/LGcnc37J5AgMIhoFKw2whI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwVaTAampdFuBNWKJ1N2uSdrVS79KJdMt5Xj5qiNoZD6Xq0cRvd
	cWYEGvZf0vK3rw372rwQx7WKloSXwkRdZlnftZPXq6yOsKX9aSgrco5GJ1wJ7t5P/g==
X-Gm-Gg: ATEYQzzzz1PUhJ5AslJcGLkVHlz9Trz03TYvwPjxROx+LVt1/MG4AeHhkuzJMRKBFUm
	I31O1uB8jb8lDTQnmZc4X1Oyd6c4xGKQpPSQpwf8BwaYlX6BKasIL3k6BM5zL8Qe8wDW4lUft44
	lTk397SyedA4nusMXxbfMAiPFEaYssHf6mu4THZdmWwPB6jBc0sNFpEejvJ9kipFj9F97o2+rYH
	zsEM14zf9rNz/y6TX7HVEY4es/l8xLusEaSl3iZirOxgldtjuWbaFssri6stjc2Bi1FSblD0DuZ
	qIlQjPKsIO6e68lM1KAkYXLKQRlhY0rTc5VCWx6bfk9E45nT9HnNJEG2/Cu/zCrcyQXVwOBBSFm
	4ZCAX5WBwDy78Xr4I9kQG0qWfDSVNUIfhM0w/kE5aCr6CrguemYton4bvtkzwQuxnHTHi1QRM4m
	FB8JWJcMsWj4o952j/IEuW0O4hkLIn+h/5evCVPAKrrY+vDCjTvFs3w+82rzecfuBYsfsrS5bbg
	S9JE3Gvf874870=
X-Received: by 2002:a05:6000:25c3:b0:439:be67:a038 with SMTP id ffacd0b85a97d-439be67a710mr8902339f8f.41.1772556201554;
        Tue, 03 Mar 2026 08:43:21 -0800 (PST)
Message-ID: <0210cf5c-6dc3-4db5-aa2a-0e14e634b463@suse.com>
Date: Tue, 3 Mar 2026 17:43:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] tools/tests/x86_emulator: avoid duplicate symbol
 error with clang
To: Edwin Torok <edwin.torok@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Roger Pau Monne <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1772189234.git.edwin.torok@citrix.com>
 <358a87d89d50475a57f2a5d6ebea01d95a1df6d7.1772189234.git.edwin.torok@citrix.com>
 <766824c8-2ec5-45bd-9aed-1e84ad3ff779@suse.com>
 <B5EFCE28-79BA-403B-8F44-C4E7606BACE7@citrix.com>
 <d5c0e218-bfc4-4f37-901c-b622f90b7bd2@suse.com>
 <004F02CE-B8C8-40B5-8453-C754EBE92022@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <004F02CE-B8C8-40B5-8453-C754EBE92022@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03.03.2026 16:55, Edwin Torok wrote:
>> On 3 Mar 2026, at 15:36, Jan Beulich <jbeulich@suse.com> wrote:
>> On 03.03.2026 16:09, Edwin Torok wrote:
>>>> On 3 Mar 2026, at 13:59, Jan Beulich <jbeulich@suse.com> wrote:
>>>> On 27.02.2026 11:58, Edwin Török wrote:
>>>>> --- a/tools/tests/x86_emulator/test_x86_emulator.c
>>>>> +++ b/tools/tests/x86_emulator/test_x86_emulator.c
>>>>> @@ -1882,8 +1882,13 @@ int main(int argc, char **argv)
>>>>> #define decl_insn(which) extern const unsigned char which[], \
>>>>>                         which##_end[] asm ( ".L" #which "_end" )
>>>>> #define put_insn(which, insn) ".pushsection .test\n" \
>>>>> -                              #which ": " insn "\n"  \
>>>>> +                              ".ifndef "#which"\n" \
>>>>> +                              #which ": \n" \
>>>>> +                              ".endif\n" \
>>>>> +                              insn "\n"  \
>>>>> +                              ".ifndef .L"#which"_end\n" \
>>>>>                              ".L" #which "_end:\n"  \
>>>>> +                              ".endif\n" \
>>>>>                              ".popsection"
>>>>
>>>> Nice idea, but why multiple .ifndef, and why emitting the insn even if the
>>>> labels are already there (and hence won't be emitted a 2nd time)?
>>>
>>> I think we still need to execute the instructions, so they can be compared against the emulator.
>>
>> Of course, but they cannot be executed without having a label. We use the
>> label to point the emulated IP there, and then we use the end label to
>> check that after emulation the emulated IP has advanced as expected.
> 
> Oh that means that we won’t actually be testing anything useful in iterations>=1
> (the test passes, but it runs the same test as it did on iteration 0).

May I ask for a little less bold statements? Of course the 2nd iteration isn't
identical to the 1st. The insn encoding is the same, but the operands (the mask
in particular, i.e. the value %k3 holds) aren't.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 16:44:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 16:44:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244949.1544291 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxSrg-00080W-B5; Tue, 03 Mar 2026 16:44:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244949.1544291; Tue, 03 Mar 2026 16:44:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxSrg-00080P-8P; Tue, 03 Mar 2026 16:44:56 +0000
Received: by outflank-mailman (input) for mailman id 1244949;
 Tue, 03 Mar 2026 16:44: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=hWcK=BD=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vxSre-00080F-V8
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 16:44:54 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4c9d9331-1720-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Mar 2026 17:44:52 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH0PR03MB6623.namprd03.prod.outlook.com (2603:10b6:510:b3::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Tue, 3 Mar
 2026 16:44:48 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9654.022; Tue, 3 Mar 2026
 16:44:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4c9d9331-1720-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=v7UfKB3gSPFHs70Y5Jz8t6biZNAj/AEnT/F/r3yWUR9PGNbj0ESNxg4u7Q9JLoPX0DQQcwxC1VyrIJ4m7kWTNoSImLzCSCCf43eGpyds66lr3yP93hvnUhgbpLlt570tAbnI9ySPr3Fo2nCoLdLbY4WWLZ6fLiziJ0ACgJv0Il2InhQyE8PUivH8nux5uPPfvXOKjD0NzqhrSyEAT1X2ScW8dvkhqMZDA4U2qsJe7d6+5oabqDMj+vVGGmUzcdsIsUF4E3HGk8lPteEfrRv807pLZL5MCV6vYhBi9P5e1+i92TxktGDRrjPYBEWziD4EVS9tXRuTV05G4m+Yh6ijZg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0APOjVFT3cdvjaAW4vRXuCpNVGbuxVVn2TFVw9aURp8=;
 b=F9EbZVI7eTUvE8ckCClnjc3CEnCIe0hvLB5qy018iJcX30ft3ZFLpcUvrWl3hdLsjmuhDCmiNUicQq10E/KlhNvwFIHvOdWxImD39MwqC1vaKKPbpLzLDQQjhL7XUHPnMCo5uNAPlHtjz9VSjmHoNm40pHe+P45JVsu5EdP/B6DRz0Z8mcjZVKx8Z+Zs/2UOx0tJ6Ql1MC0WzEoDOoWlbSN4eoOFqci+p6LvexllCwzrO+Ler7U/GUZTr03d2X43Us3qawgezTcwUgBHFOqOsi35EzWVYgdvuHJjyRqhDiLtgK3XKaxDWtJKerYLapbOYCyVAdWa3hNyE5kAvNgh0A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0APOjVFT3cdvjaAW4vRXuCpNVGbuxVVn2TFVw9aURp8=;
 b=d8bP0TLfAiBdi1I2JNRXFsgSefk+ke1hGXi+XwHcsJOzqnSBWagVELfHEUd/wVneeyemA44XSeJaoaMhQt10qHNlHA/8KRKsZJaXZoJQWeb630hfkGjif5IQfDn0klYXEH7cgxy2mdwFBhSz5tcHl0X99/CnvY9h+JQZua/dgXc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 3 Mar 2026 17:44:44 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH v5 1/5] vPCI: introduce private header
Message-ID: <aacP_Dk6lTALXvhJ@macbook.local>
References: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@suse.com>
 <f3673515-5922-4748-a964-d4c391e937f5@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <f3673515-5922-4748-a964-d4c391e937f5@suse.com>
X-ClientProxiedBy: MA3P292CA0031.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:46::18) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|PH0PR03MB6623:EE_
X-MS-Office365-Filtering-Correlation-Id: 8a31d27f-5219-4bc0-25d9-08de79442e6a
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:
	7qHEhBRT3eeOb7lhr5eW7+ufG02dV6GMPWJP/Ggr7ZJ3+jZ4U8NtnPiyY5jyPWRx0yB8N6Z+bnAEIMad/DlqZZNINcbhmjhahpG0f67LKZnXFdEVeDzV46OS4N2HohIGsN6mZlt8+PtWDafG3Ovex4YY6aw2ZMItHiVm+qJI+kUNfvy8kWSMNhs4Jj97qvj+iMZMoV/jS4Fw1EFivBGALDrYTUs1YdD8w908PR88HzYA0wNVE6ht9n2RM7lsz5oSTgkMVRXVDMXMmRpsbjzfzNRn+qz1ZqpHBjahSdh/e8wRtywm9ifxiB0aLshrmMUqnWWm+jnpTX7j19lsCNVZn/8mW/xll1+9dr5CyxrzMFObtp9yZoHV5YZTAy0dAEoJGDjEinDdCtlw5Kdam6OQBlLR9VHvB3yR4N8GCPeVpU+VUCrJdS5vfqyXv1sBiRaw+FNAT4NdsScWrcOFW+2xD8X2eHF57PwZvb/Aa/0aft47/4oGQmohI1qgk55XrriGvVFjrj1uOIxXDuL9H6EmuksnftcloQ+KvKejok5IwttihZVusoMLIhrUjMfdON/Q+OrTBsMeXEQLgL+1AMed/ytPpx6zngqKubqXy93g13ewCBVmvJO9cJEjPLLiU2PcsIdzBZwj56TfD7VgeSRWOZ7hcI4k1mu4EZrVG/Fx/SgJ0ZzU3JdgxqCDAvgbEm4+VdpkkFlQgLs8AAEtanQrM8/CPVP/PF4jtBCWyyd6fzU=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RnFJQ2F0YTNZOVYxekRKMnZ2WDN4QjFKdy9wUjlvazFOQ0lzMUdGamRCSmJ0?=
 =?utf-8?B?eTVidmRBand3WDNqdUFsT2dXeDhJRkJnN0Jnc3B6bkhoZjF3QnVGWnJ4V0Zx?=
 =?utf-8?B?NWN2ZmVQbzUrMXd5RlF2UUVSY3liak1YU3ZhVnpoRzhnZ2FidXVCQU04Q2Jn?=
 =?utf-8?B?b3h2a1JZV3RUcFVxVlUycXh3ajJDQ3pKYVpaZ3EwYzdWbk16bGROaFJjVENu?=
 =?utf-8?B?WWxzazNTVFdzTnVRL1J1U3loZHlQZTZSVE9JSm94ZXJmMU5HLzVCMERlbVJm?=
 =?utf-8?B?QUxhZmUyODJZR0xTNzg3a1NxcWlHSitlem9KcEs2UXlCeXlsWk5KUy9EdWxx?=
 =?utf-8?B?RlR5TmVvRndIOFZyN3VpQ0plZ2R3b0pLTFZiQzVpNC82NWF5RHRRMm1rWnF6?=
 =?utf-8?B?Q2FLZlBEcCthdkE1bTk4Z3MzMDJwK0Roc0NoNzVmc0FWVFB2VngwSVdrVXZ1?=
 =?utf-8?B?Slh4aVliMCsxK3lIQ1BoSytGbGE2MnQ2WmpEbndnRkhTaHJ1OVVVNmhIQVAx?=
 =?utf-8?B?V2l1cFNlN21LbHk3QmJuc3JRRWZhMjA2SEI3YXp5aTVCMm5uOHp3ZWZBSVRs?=
 =?utf-8?B?MkpGdGZkVHlmU1UvTWNOS2w3YXY1SjIyMnhHMjRmQ01FYlY4QnEyR0wra2E5?=
 =?utf-8?B?MW9HOFI5eVI5dnNLN1dlK2dsVXVkVzdWMlVjZkFoUSttSFZ5R3JDSEZLNE9w?=
 =?utf-8?B?Qzd0ZW81Rk9YdXJ2RURLQlhZeGhMQ28yNmVObmsvaHgraUxqUTZKdzFNVkh2?=
 =?utf-8?B?c2RaVlRaTTEySnkxbXBxd3F2QkJseHJhczVFajBFQkF2OFR3QWpwZjhsU3Nq?=
 =?utf-8?B?VEFzMkJaUlBmTW55ZXc3ZFh5TUI2VGlwU3Q0QnhtOWRlcU40RE9xSktnQTdw?=
 =?utf-8?B?TExYcy9xTU42VWlqaXFoTk0vaDJ0NnhXdmJBRW40UkxhV2lReTA1R3NXcU16?=
 =?utf-8?B?T2lDeE5QZUtZRjZUNEc4YVpJNHgzc1ZOS2ZWb3BqbzRicmRzVDkvZUV3cUtV?=
 =?utf-8?B?WE1aOVA5VEUraFZBOXVuRkpnWDFhSEJhc092djIxKzgyNmxha0V5Mzd0Z04w?=
 =?utf-8?B?ZlY4QldkQ0dCdWl1L0ZLTkl0RXFnQTVrVi80UUhjdlN5Q2NobHlXbGgxVmFs?=
 =?utf-8?B?R0tqb005UEZZVWxXTGJzQzdCMnVKWUE0aEp5RzVkRU0vWEVNN0Z4T01YS01Q?=
 =?utf-8?B?Q0RuL1BwL2QvbVAzd2hNNUVmRjMzUjdvdzl2RFBnaXplcWdqZEc5VFhERUsw?=
 =?utf-8?B?WTF2S3hkYURXOVFIZlhiaGxHUjZ1aGFVVElNR1JJREUzcXNjSWJKOVVzV0FY?=
 =?utf-8?B?SThLR1lpUlJ3ViszWmROZzJ4SXkxVTN3ODhUdHdGc1NoakpkRHBIZ2FBRHhD?=
 =?utf-8?B?Ry9rOUtQcjVEZFZGeVFOTzBwNGczZzJvQnhTWitDTURxS0lVTVhiTkJ3Lzl1?=
 =?utf-8?B?THZkb0dxT2orUE9yc0wxKzM4M1dDc21GeW93eEhmQmd5T0ZsZ29ZdHZaaUZC?=
 =?utf-8?B?UjFYZEg1WkFwMHhmS28yZGNJa0ZjNnZIN1NDdTNEaThMc04wS1B6aXFLdU4w?=
 =?utf-8?B?MWEzc1RieEthUExyemlGTEdXQXpUKzUwUTNxc0NDb0NpTTFTeHk3S0hxbXVC?=
 =?utf-8?B?QWE5ZUQ3cnNJMCtxWVVrM0ZheGsxbk5VblNUeWYrZmVmL3ZYTmkwMFFWZG9B?=
 =?utf-8?B?alJzbzI2VGJIQkhWWlBZTmIrR0dZYlZYQVFCVkh1YkZEZFMzYXV0alRlS0tu?=
 =?utf-8?B?RTVEL1pqaWpNU0M2Lzc4SmR4Q0c4Um1UZ2d5TEVud3hIVFJkbGQxTCs5dlhp?=
 =?utf-8?B?L3Bab3V5ZUJMMlpsYkV2SDhncE9ZR0E1QTVFeHdDRVRKN0pQRDhNcDF5aFN1?=
 =?utf-8?B?WUxPWTFhbnYwaGttSlExNGhoWmpSR2p6aFEydkh3RSt5UTVxSyt0dnc0ek1Y?=
 =?utf-8?B?Zm4zRUZJYVN4cmVJNHJGTGE0NTZOS2M4WS9PMjRxSXNFMzQzSGJBZG1VMDBv?=
 =?utf-8?B?WURQSjd3Qm9mV1AzbUpTRDdTb3hQckhMQUJtbm1HMXMxYU9SUEdEYW8yYzZ1?=
 =?utf-8?B?OVZLemZ4SUpIYnNpVFB0OGNMb2lGVmFLbkQzbE1zS2tGRkIvQU90anRxL0tr?=
 =?utf-8?B?K2ppdjNFbG5OUW82UEJFRjVBSGJwUWZQaHJtb2JXa2doSi9ubDQyb014cjJT?=
 =?utf-8?B?RG5qUVVmOFdWQ2plZWx5YkszbUk0aXExNXRDNVFwK0dTamxzVFRTRHA5dSsz?=
 =?utf-8?B?WU0xMXVIRW50S1VOVTk3M09jSmdyWlFZLzhjNHB5Z2tCOXRuUkZocnk5aUhS?=
 =?utf-8?B?R2Z0U05uZWNnZGtrMTJYemRDZy9DejR4dFZFenJMSnU3ZkxPbnp4dz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8a31d27f-5219-4bc0-25d9-08de79442e6a
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2026 16:44:47.8926
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: bn+Co/SeESsL0ajZW9IA5CmYVtHJYpHc4QVCqQ6VkOn7vZZbQxGR+fBU1S0QjIhYiJPr8yj0M0tY70DPZNIHMw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6623

On Wed, Feb 25, 2026 at 12:43:01PM +0100, Jan Beulich wrote:
> Before adding more private stuff to xen/vpci.h, split it up. In order to
> be able to include the private header first in a CU, the per-arch struct
> decls also need to move (to new asm/vpci.h files).
> 
> While adjusting the test harness'es Makefile, also switch the pre-existing
> header symlink-ing rule to a pattern one.
> 
> Apart from in the test harness code, things only move; no functional
> change intended.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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

One comment below.  The Ack stands regardless of whether you want to
change it or not.

> ---
> Subsequently, at least on x86 more stuff may want moving into asm/vpci.h.
> ---
> v5: Add new generated header to test harness clean rule and to .gitignore.
>     Also move vpci_init_header().
> v4: New.
> 
> --- a/.gitignore
> +++ b/.gitignore
> @@ -154,6 +154,7 @@ tools/tests/x86_emulator/test_x86_emulat
>  tools/tests/x86_emulator/x86_emulate
>  tools/tests/x86_emulator/xop*.[ch]
>  tools/tests/vpci/list.h
> +tools/tests/vpci/private.h
>  tools/tests/vpci/vpci.[hc]
>  tools/tests/vpci/test_vpci
>  tools/xcutils/lsevtchn
> --- a/tools/tests/vpci/Makefile
> +++ b/tools/tests/vpci/Makefile
> @@ -14,12 +14,12 @@ else
>  	$(warning HOSTCC != CC, will not run test)
>  endif
>  
> -$(TARGET): vpci.c vpci.h list.h main.c emul.h
> -	$(CC) $(CFLAGS_xeninclude) -g -o $@ vpci.c main.c
> +$(TARGET): vpci.c vpci.h list.h private.h main.c emul.h
> +	$(CC) $(CFLAGS_xeninclude) -include emul.h -g -o $@ vpci.c main.c
>  
>  .PHONY: clean
>  clean:
> -	rm -rf $(TARGET) *.o *~ vpci.h vpci.c list.h
> +	rm -rf $(TARGET) *.o *~ vpci.h vpci.c list.h private.h
>  
>  .PHONY: distclean
>  distclean: clean
> @@ -34,10 +34,10 @@ uninstall:
>  	$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/$(TARGET)
>  
>  vpci.c: $(XEN_ROOT)/xen/drivers/vpci/vpci.c
> -	# Remove includes and add the test harness header
> -	sed -e '/#include/d' -e '1s/^/#include "emul.h"/' <$< >$@
> +	sed -e '/#include/d' <$< >$@
> +
> +private.h: %.h: $(XEN_ROOT)/xen/drivers/vpci/%.h
> +	sed -e '/#include/d' <$< >$@

Nit: if you are changing/adding those we might as well do
/^#[[:space:]]*include/d, as sometimes we add spaces if the header
inclusion is conditional.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 16:48:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 16:48:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244959.1544302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxSvH-0000AZ-Pw; Tue, 03 Mar 2026 16:48:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244959.1544302; Tue, 03 Mar 2026 16: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 1vxSvH-0000AS-N7; Tue, 03 Mar 2026 16:48:39 +0000
Received: by outflank-mailman (input) for mailman id 1244959;
 Tue, 03 Mar 2026 16:48: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=JEzs=BD=bounce.vates.tech=bounce-md_30504962.69a710df.v1-3bceb4a3bd1844479c02f3bb66892b6a@srs-se1.protection.inumbo.net>)
 id 1vxSvG-0000AK-Q6
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 16:48:38 +0000
Received: from mail177-30.suw61.mandrillapp.com
 (mail177-30.suw61.mandrillapp.com [198.2.177.30])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cfea8744-1720-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Mar 2026 17:48:32 +0100 (CET)
Received: from pmta14.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail177-30.suw61.mandrillapp.com (Mailchimp) with ESMTP id
 4fQMFC1GGQzP0K0dQ
 for <xen-devel@lists.xenproject.org>; Tue,  3 Mar 2026 16:48:31 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 3bceb4a3bd1844479c02f3bb66892b6a; Tue, 03 Mar 2026 16:48:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cfea8744-1720-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1772556511; x=1772826511;
	bh=eUNoRhcDYCL60wG3kvxrWXAIPmTJ6jPDfNoSt1z/f7I=;
	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=1S7GZ6RgiqZbcYlkph67vL4+CyQo/kNVNwLFzKuXg+lM0weV9P1h6MK0ijeLaNBd7
	 p1vAVfWQA7A/9lreNfoy/WafDEZfWsPQeyS/hKQS0ANfQqrmlVW8Ie7Cc6FpzD8jl8
	 oPuQ+oTLgo9fRpLg91FSHkZdZYOuJXx19GKmHxAePKKEtO94Lse4JSZXIroHMSQCXA
	 b5MoUyFMmzr9ip5gVjY9II10G+3CNYvM7ATrDOv7dcZ/ekyuIZh+ikthYazuR3Zp59
	 HV6HCL55qOUvRXdavoj3+J67/KoF79niXVHPKD+KgAEXO4qunEMpY0kSxZ/4WZT9v0
	 K2iEmgky2HFSA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1772556511; x=1772817011; i=julian.vetter@vates.tech;
	bh=eUNoRhcDYCL60wG3kvxrWXAIPmTJ6jPDfNoSt1z/f7I=;
	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=tI8lpF4roZ57dmZia2VEbDCLBkOrjzqw3uyE33hPglJRzOr1ZB2RFMMaIsgXVYKs4
	 SXttZhBw4lW9G1rIJ0xhRrUntSEE/wwplMkmcC6o/89Ie/5FJFjqfvtcVlDB0nYob0
	 nuFp67ufMnZsfFpSfUfSxAUQy6CzJ7fzIfHcC9M2tZ+3l81RlbjfFnT+UIoScvaVBz
	 frOKkSIYXHyofsMa5kVnNmeOISnHWjSBXLv3pSglZUIDaWFdnv+gtjDKOeaA0dy0HM
	 wkiS9BiyYDwdIBt3uNYPhoGSjOgeHmRJyQEBDxd3RyIbqPEU4tL/1KhUg5oyw/ztK1
	 gCmDZwtUNrM7w==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v3=202/2]=20x86/ioreq:=20Extend=20ioreq=20server=20to=20support=20multiple=20ioreq=20pages?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1772556509850
Message-Id: <151c64e9-a605-410a-b3b0-2c86cdf6fd2c@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20260223093831.475769-1-julian.vetter@vates.tech> <20260223093831.475769-2-julian.vetter@vates.tech> <c9126823-7c90-40bb-9fd1-c5649ffdb5cd@suse.com>
In-Reply-To: <c9126823-7c90-40bb-9fd1-c5649ffdb5cd@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.3bceb4a3bd1844479c02f3bb66892b6a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260303:md
Date: Tue, 03 Mar 2026 16:48:31 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On 2/26/26 16:54, Jan Beulich wrote:
> On 23.02.2026 10:38, Julian Vetter wrote:
>> A single shared ioreq page provides PAGE_SIZE/sizeof(ioreq_t) = 128
>> slots, limiting HVM guests to 128 vCPUs. To support more vCPUs, extend
>> the ioreq server to use xvzalloc_array() for allocating a contiguous
>> virtual array of ioreq_t slots sized to d->max_vcpus, backed by
>> potentially non-contiguous physical pages.
>>
>> For the GFN-mapped path (x86), page and writable type references are
>> obtained directly via check_get_page_from_gfn() and get_page_type() for
>> each GFN. The pages are then combined into a single contiguous VA using
>> vmap(). The number of ioreq pages is computed at runtime via
>> nr_ioreq_pages(d) = DIV_ROUND_UP(d->max_vcpus, IOREQS_PER_PAGE), so
>> small VMs only allocate one page. All existing single-page paths
>> (bufioreq, legacy clients) remain unchanged.
>>
>> Mark the now-unused shared_iopage_t in the public header as deprecated.
> 
> For this I think we need to settle on one of two options: Either it was a
> mistake that this was used in the hypervisor (and added to the public
> interface), in which case the removal of the use may want to be separate
> (without, imo, any need to mark the item deprecated in the public header,
> as the property remains). Or we deem it legitimate / useful, in which case
> you would want to continue using it (in struct ioreq_server).
> 

Thank you Jan for you feedback! It's very appreciated! You're right. But 
I'm wondering how would dropping the struct work? I looked into QEMU and 
varstored, and they both use this struct at the moment. But 
modifications to both of them would be minimal if we decide to drop the 
struct. And if they want to support multiple ioreq pages we would need 
to modify this struct anyway to not contain a single struct ioreq, but a 
pointer or [].

>> @@ -89,6 +91,39 @@ static gfn_t hvm_alloc_ioreq_gfn(struct ioreq_server *s)
>>       return hvm_alloc_legacy_ioreq_gfn(s);
>>   }
>>   
>> +static gfn_t hvm_alloc_ioreq_gfns(struct ioreq_server *s,
>> +                                  unsigned int nr_pages)
>> +{
>> +    struct domain *d = s->target;
>> +    unsigned long mask;
>> +    unsigned int i, run;
>> +
>> +    if ( nr_pages == 1 )
>> +        return hvm_alloc_ioreq_gfn(s);
>> +
>> +    /* Find nr_pages consecutive set bits */
>> +    mask = d->arch.hvm.ioreq_gfn.mask;
>> +
>> +    for ( i = 0, run = 0; i < BITS_PER_LONG; i++ )
>> +    {
>> +        if ( !test_bit(i, &mask) )
>> +            run = 0;
>> +        else if ( ++run == nr_pages )
>> +        {
>> +            /* Found a run - clear all bits and return base GFN */
>> +            unsigned int start = i - nr_pages + 1;
>> +            unsigned int j;
>> +
>> +            for ( j = start; j <= i; j++ )
>> +                clear_bit(j, &d->arch.hvm.ioreq_gfn.mask);
> 
> You using clear_bit() here doesn't make the while operation atomic. There will
> need to be synchronization (also with hvm_alloc_ioreq_gfn()), and once that's
> there (or if things are suitably synchronized already) __clear_bit() ought to
> suffice here.

Yes, sorry. I will drop the "legacy gfn multi page" part entirely. In 
your other reply you wrote: "Thinking about it - isn't this GFN based 
approach the legacy one? Can't we demand use of the resource mapping 
approach to support bigger guests?"
I didn't fully understand this path is the legacy path. So, I adapted it 
as well. Now, it's clear to me and I agree with your assement. I will 
remove the part for the legacy path, and will just check that if we take 
it, in 'hvm_map_ioreq_gfn' I will do:

if ( nr_ioreq_pages(d) > 1 )
     return -EOPNOTSUPP;

> 
>> +            return _gfn(d->arch.hvm.ioreq_gfn.base + start);
>> +        }
>> +    }
>> +
>> +    return INVALID_GFN;
>> +}
> 
> Did you consider whether fragmentation could get in the way here, as is usually
> the case when doing mixed-size allocations from a single pool? In how far is it
> necessary for the GFNs used to be consecutive?

Same as above. I will remove this part.

> 
>> @@ -134,16 +181,41 @@ static void hvm_unmap_ioreq_gfn(struct ioreq_server *s, bool buf)
>>   
>>           hvm_free_ioreq_gfn(s, iorp->gfn);
>>           iorp->gfn = INVALID_GFN;
>> +        return;
>>       }
>> +
>> +    if ( gfn_eq(s->ioreq_gfn, INVALID_GFN) )
>> +        return;
>> +
>> +    nr_pages = nr_ioreq_pages(s->target);
>> +
>> +    for ( i = 0; i < nr_pages; i++ )
>> +    {
>> +        struct page_info *pg = vmap_to_page((char *)s->ioreq +
> 
> Please can you preferably cast to const void * (or void *)? But perhaps you
> would better latch the pointer into a local variable anyway, for ...
> 
>> +                                            i * PAGE_SIZE);
>> +
>> +        put_page_and_type(pg);
>> +        put_page(pg);
> 
>> +    }
>> +    vunmap(s->ioreq);
>> +    s->ioreq = NULL;
> 
> ... this clearing to move up ahead of any teardown done.
> 
>> +    hvm_free_ioreq_gfns(s, s->ioreq_gfn, nr_pages);
>> +    s->ioreq_gfn = INVALID_GFN;
> 
> This similarly may want moving up.
> 
> As to the loop body, destroy_ring_for_helper() has put_page_and_type(), but
> no put_page(). Why is this different here?

Yes, sorry. We don't need it here. I dropped it. I now do the same as 
'destroy_ring_for_helper'.

> 
>> @@ -173,30 +245,132 @@ static int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
>>   
>>           return rc;
>>       }
>> +
>> +    /* ioreq: multi-page with contiguous VA */
>> +    if ( s->ioreq )
>> +    {
>> +        if ( gfn_eq(s->ioreq_gfn, INVALID_GFN) )
>> +            return -EPERM;
> 
> The comment on the other path at least wants referencing here.
> 
>> +        return 0;
>> +    }
>> +
>> +    if ( d->is_dying )
>> +        return -EINVAL;
>> +
>> +    nr_pages = nr_ioreq_pages(d);
>> +    base_gfn = hvm_alloc_ioreq_gfns(s, nr_pages);
>> +
>> +    if ( gfn_eq(base_gfn, INVALID_GFN) )
>> +        return -ENOMEM;
>> +
>> +    mfns = xmalloc_array(mfn_t, nr_pages);
> 
> Especially when there are only a few MFNs, this dynamic allocation would be
> nice to avoid. If there was a not overly larger upper bound, using a per-CPU
> array might also be an option.
> 
> If the dynamic allocation stays, new code wants to use xvmalloc() and
> friends.

This all goes away for the legacy path we only have a single page so no 
xmalloc_array anymore.

> 
>> +    if ( !mfns )
>> +    {
>> +        hvm_free_ioreq_gfns(s, base_gfn, nr_pages);
>> +        return -ENOMEM;
>> +    }
>> +
>> +    /*
>> +     * Obtain a page reference and writable type reference for each GFN.
>> +     * No per-page VA is needed; all pages are mapped as a single contiguous
>> +     * VA via vmap() below.
>> +     */
> 
> I think this comment wants to mention prepare_ring_for_helper(), so that if
> updates are done there, there's at least a fair chance that people might spot
> that changes need doing here as well.
> 
>> +    for ( i = 0; i < nr_pages; i++ )
>> +    {
>> +        struct page_info *pg;
>> +        p2m_type_t p2mt;
>> +
>> +        rc = check_get_page_from_gfn(d, _gfn(gfn_x(base_gfn) + i),
> 
> gfn_add() please
> 
>> +                                     false, &p2mt, &pg);
>> +        if ( rc )
>> +        {
>> +            if ( rc == -EAGAIN )
>> +                rc = -ENOENT;
>> +            goto fail;
>> +        }
>> +
>> +        if ( !get_page_type(pg, PGT_writable_page) )
>> +        {
>> +            put_page(pg);
>> +            rc = -EINVAL;
>> +            goto fail;
>> +        }
>> +
>> +        mfns[i] = page_to_mfn(pg);
>> +    }
>> +
>> +    /* Map all mfns as single contiguous VA */
>> +    s->ioreq = vmap(mfns, nr_pages);
>> +    if ( !s->ioreq )
>> +    {
>> +        rc = -ENOMEM;
>> +        goto fail;
>> +    }
>> +
>> +    s->ioreq_gfn = base_gfn;
>> +    xfree(mfns);
>> +
>> +    return 0;
>> +
>> + fail:
>> +    while ( i-- > 0 )
>> +    {
>> +        struct page_info *pg = mfn_to_page(mfns[i]);
>> +
>> +        put_page_and_type(pg);
>> +        put_page(pg);
> 
> Same issue here - I can't spot which page reference you're dropping. You
> obtained only one above.

yes, I forgot to call the alloc_domheap_page.
> 
>> @@ -208,6 +382,32 @@ static int hvm_add_ioreq_gfn(struct ioreq_server *s, bool buf)
>>   
>>           return rc;
>>       }
>> +
>> +    if ( gfn_eq(s->ioreq_gfn, INVALID_GFN) )
>> +        return 0;
>> +
>> +    nr_pages = nr_ioreq_pages(d);
>> +    memset(s->ioreq, 0, nr_pages * PAGE_SIZE);
>> +
>> +    for ( i = 0; i < nr_pages; i++ )
>> +    {
>> +        gfn_t gfn = gfn_add(s->ioreq_gfn, i);
>> +        struct page_info *pg = vmap_to_page((char *)s->ioreq +
>> +                                            i * PAGE_SIZE);
>> +
>> +        rc = p2m_add_page(d, gfn, page_to_mfn(pg), 0, p2m_ram_rw);
>> +        if ( rc )
>> +            /*
>> +             * No rollback of previously added pages: The caller
>> +             * (arch_ioreq_server_disable) has no error handling path,
>> +             * and partial failure here will be cleaned up when the
>> +             * ioreq server is eventually destroyed.
>> +             */
>> +            return rc;
> 
> Shouldn't you continue the loop, to try to add back as many pages as
> you can, so the domain encountering problems later is as unlikely as
> possible (albeit a single missing page is already bad enough)?
> 
>> @@ -260,9 +259,32 @@ bool vcpu_ioreq_handle_completion(struct vcpu *v)
>>   
>>   static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
>>   {
>> -    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
>> +    struct ioreq_page *iorp;
>>       struct page_info *page;
>>   
>> +    if ( !buf )
>> +    {
>> +        if ( s->ioreq )
>> +        {
>> +            /*
>> +             * If a guest frame has already been mapped (which may happen
>> +             * on demand if ioreq_server_get_info() is called), then
>> +             * allocating a page is not permitted.
>> +             */
>> +            if ( !gfn_eq(s->ioreq_gfn, INVALID_GFN) )
>> +                return -EPERM;
>> +
>> +            return 0;
>> +        }
>> +
>> +        s->ioreq = xvzalloc_array(ioreq_t, s->target->max_vcpus);
>> +
>> +        return s->ioreq ? 0 : -ENOMEM;
> 
> At this point you haven't fulfilled what the function is supposed to be
> doing. The pages you allocate also aren't associated with the domain,
> and you haven't obtained writable references.

yes, sorry, same as above I forgot the call to alloc_domheap_page.
> 
>> @@ -812,26 +861,30 @@ int ioreq_server_get_frame(struct domain *d, ioservid_t id,
>>       if ( rc )
>>           goto out;
>>   
>> -    switch ( idx )
>> +    if ( idx == XENMEM_resource_ioreq_server_frame_bufioreq)
>>       {
>> -    case XENMEM_resource_ioreq_server_frame_bufioreq:
>>           rc = -ENOENT;
>>           if ( !HANDLE_BUFIOREQ(s) )
>>               goto out;
>>   
>>           *mfn = page_to_mfn(s->bufioreq.page);
>>           rc = 0;
>> -        break;
>> -
>> -    case XENMEM_resource_ioreq_server_frame_ioreq(0):
>> -        *mfn = page_to_mfn(s->ioreq.page);
>> -        rc = 0;
>> -        break;
>> +    }
>> +    else if (( idx >= XENMEM_resource_ioreq_server_frame_ioreq(0) ) &&
>> +             ( idx < XENMEM_resource_ioreq_server_frame_ioreq(nr_ioreq_pages(d)) ))
>> +    {
>> +        unsigned int page_idx = idx - XENMEM_resource_ioreq_server_frame_ioreq(0);
>>   
>> -    default:
>>           rc = -EINVAL;
>> -        break;
>> +        if ( idx >= XENMEM_resource_ioreq_server_frame_ioreq(0) &&
> 
> You checked this above already, didn't you?
> 
>> +             page_idx < nr_ioreq_pages(d) && s->ioreq )
> 
> The former part of this check also looks redundant with the earlier one.
> 
>> --- a/xen/include/xen/ioreq.h
>> +++ b/xen/include/xen/ioreq.h
>> @@ -19,9 +19,19 @@
>>   #ifndef __XEN_IOREQ_H__
>>   #define __XEN_IOREQ_H__
>>   
>> +#include <xen/macros.h>
>>   #include <xen/sched.h>
>>   
>>   #include <public/hvm/dm_op.h>
>> +#include <public/hvm/ioreq.h>
>> +
>> +/* 4096 / 32 = 128 ioreq slots per page */
>> +#define IOREQS_PER_PAGE  (PAGE_SIZE / sizeof(ioreq_t))
> 
> I think the comment wants dropping, as it would end up wrong / useless for
> page size different from 4k. I'm also not quite sure the #define is overly
> useful, as ...
> 
>> +static inline unsigned int nr_ioreq_pages(const struct domain *d)
>> +{
>> +    return DIV_ROUND_UP(d->max_vcpus, IOREQS_PER_PAGE);
> 
> ... this is its only use.
> 
> Jan



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Tue Mar 03 16:49:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 16:49:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244964.1544311 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxSvd-0000WU-4D; Tue, 03 Mar 2026 16:49:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244964.1544311; Tue, 03 Mar 2026 16:49:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxSvd-0000WN-1f; Tue, 03 Mar 2026 16:49:01 +0000
Received: by outflank-mailman (input) for mailman id 1244964;
 Tue, 03 Mar 2026 16:49:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=yKVY=BD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxSvc-0000AK-2j
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 16:49:00 +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 df6fbd7b-1720-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Mar 2026 17:48:58 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-48374014a77so71472395e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 08:48: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-483c3b89c99sm359127545e9.15.2026.03.03.08.48.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Mar 2026 08:48: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: df6fbd7b-1720-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772556537; x=1773161337; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=g0mLQdApzNBJwno5estL6Zp2Cn3YSUdJlxvg63cs+l4=;
        b=R8LHNYbYbYeRARcn/HkFKmO1sHw607nma4eSm/43ashi7DTRo4+lcQU+mJljhjivrj
         oPKBpcF3xJxcTXfiJKcbzp8xgOfskYu0HpcMzIzoWqJKU4T27j2RhyEEANCuY+hb9QBW
         4R1IUN5ZUvA142m+0o4iwHNubi/lnDzhxWosS6GZmtj53KZwcaiIQ7wwFNnXPeFzQ3UV
         jM5TGyqbDSBupkUJObBCLS+x7WBCFjGvT0c+cRFdGqxZEiaopn580Gz+fb0GFDYZeCwH
         wpPMVAjtNq+IRNdt+F14vfNGkVbCO0+YBJKyfOl/UsWdRxNPJZ4nlbGCtaYRMm5dd63v
         Bg6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772556537; x=1773161337;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=g0mLQdApzNBJwno5estL6Zp2Cn3YSUdJlxvg63cs+l4=;
        b=eudSrqgL0ltrJqhfgudQCYy/ZaBQxgslUBpvBPGy1+PwBZjzrJEH7TfGWIvF9jmwia
         jZ+D/rKFCrx70ITuy2Bna7URiwZS9uOS4eSu7qMFIKUNNkm2n3K2FaxdZ5d+xONm2+//
         whHfJSN/+c5dtSJhmweTm80b88+roODG9qdaUzNaMgKNmPde8ZoDPryMljoqZnihLFMX
         sOPEGwsw6P7UeH8OLdN99j+o5UhcXKtwulFF0I6mizfi+TWJ+Kv0hplWyGH2wicU/sCc
         6ZEqSxdhPH8++tjN8BU2gcfkUxhREBklnZyguf6iTHEjFh52MVJ3aa5MYnclNPdrNr8+
         g8QA==
X-Gm-Message-State: AOJu0YxLaK8/CtPt8A8mPvZzSRKYwHsKDAKVT7VurjnxYad8r/NJB4KS
	T4dsAJBjOF7cRemDW5HZOfBg5rNrt7QbOqwCGwlgyqYG9/xQclL0rhE/8yVn9+sxnw==
X-Gm-Gg: ATEYQzweH+jwvCBVK9L3vCVecI36++hNzvgJ6VgdJYNcXhbZHhtKEVZaxZgRhDDwAnG
	b/bAQO+Mv6UNuxuYUmjtOlQ8D4M1hztuvagomliC0v5XQSPCMgWLML9EThUSg5AmjauUFCVBdDQ
	4B3765+nUvCHGc1hc4SzHhmaj8bB1B+WBln0KwPqSNtixym79PghVZWbK2PRkIqRalfXj37MwJ1
	L6C7e9d9xMSmsFUv7hYYh0IdlCjtnxxXrH/7hhtT5hleHUrI9urlyCs+V8tE2XkAufQFhRMb7jJ
	ycqIsm+ys0RMu+dMZLfmQOTMh42ndoWOUZKHRF++N66w1bfYw6OSeQh5vckalum6n+W5JKBkJ0+
	6tltj9anEFPnw/HUPBgcv2Kg9W9EgDS93VlEN2KnMMtUeL/B1ZZ/dPFK3P8s/UuYmsbwrsI5P9+
	C5KifJ+blnSJRPvw31xB9FpfMy2khMFdogiueoGpVDRrokBCK1HVJQPUXN0Twk0DeYXyli59W0D
	WXsUnAmFAxnius=
X-Received: by 2002:a05:600c:6994:b0:477:c478:46d7 with SMTP id 5b1f17b1804b1-483c9c0b88amr284908735e9.22.1772556537487;
        Tue, 03 Mar 2026 08:48:57 -0800 (PST)
Message-ID: <ad143dd5-08fd-4b28-8ee2-fc6c3181332e@suse.com>
Date: Tue, 3 Mar 2026 17:48:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/5] vPCI: introduce private header
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@suse.com>
 <f3673515-5922-4748-a964-d4c391e937f5@suse.com>
 <aacP_Dk6lTALXvhJ@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aacP_Dk6lTALXvhJ@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03.03.2026 17:44, Roger Pau Monné wrote:
> On Wed, Feb 25, 2026 at 12:43:01PM +0100, Jan Beulich wrote:
>> Before adding more private stuff to xen/vpci.h, split it up. In order to
>> be able to include the private header first in a CU, the per-arch struct
>> decls also need to move (to new asm/vpci.h files).
>>
>> While adjusting the test harness'es Makefile, also switch the pre-existing
>> header symlink-ing rule to a pattern one.
>>
>> Apart from in the test harness code, things only move; no functional
>> change intended.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks.

>> --- a/tools/tests/vpci/Makefile
>> +++ b/tools/tests/vpci/Makefile
>> @@ -14,12 +14,12 @@ else
>>  	$(warning HOSTCC != CC, will not run test)
>>  endif
>>  
>> -$(TARGET): vpci.c vpci.h list.h main.c emul.h
>> -	$(CC) $(CFLAGS_xeninclude) -g -o $@ vpci.c main.c
>> +$(TARGET): vpci.c vpci.h list.h private.h main.c emul.h
>> +	$(CC) $(CFLAGS_xeninclude) -include emul.h -g -o $@ vpci.c main.c
>>  
>>  .PHONY: clean
>>  clean:
>> -	rm -rf $(TARGET) *.o *~ vpci.h vpci.c list.h
>> +	rm -rf $(TARGET) *.o *~ vpci.h vpci.c list.h private.h
>>  
>>  .PHONY: distclean
>>  distclean: clean
>> @@ -34,10 +34,10 @@ uninstall:
>>  	$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/$(TARGET)
>>  
>>  vpci.c: $(XEN_ROOT)/xen/drivers/vpci/vpci.c
>> -	# Remove includes and add the test harness header
>> -	sed -e '/#include/d' -e '1s/^/#include "emul.h"/' <$< >$@
>> +	sed -e '/#include/d' <$< >$@
>> +
>> +private.h: %.h: $(XEN_ROOT)/xen/drivers/vpci/%.h
>> +	sed -e '/#include/d' <$< >$@
> 
> Nit: if you are changing/adding those we might as well do
> /^#[[:space:]]*include/d, as sometimes we add spaces if the header
> inclusion is conditional.

Editing these two like you say would leave an inconsistency with what's
further down (and what isn't being touched). I think I'd hence prefer
that to be a separate change. Nevertheless, I agree with the intention.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 16:57:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 16:57:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1244981.1544322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxT3Y-0002J5-TY; Tue, 03 Mar 2026 16:57:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1244981.1544322; Tue, 03 Mar 2026 16: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 1vxT3Y-0002Iy-QM; Tue, 03 Mar 2026 16:57:12 +0000
Received: by outflank-mailman (input) for mailman id 1244981;
 Tue, 03 Mar 2026 16:57: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=yKVY=BD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxT3W-0002Is-SC
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 16:57:10 +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 041fdbe4-1722-11f1-b164-2bf370ae4941;
 Tue, 03 Mar 2026 17:57:09 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-439b790af67so1442721f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 08:57: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-439c4489279sm2993564f8f.20.2026.03.03.08.57.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Mar 2026 08:57: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: 041fdbe4-1722-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772557028; x=1773161828; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xS72+haNYWCevDvohxWWznv7pyLrld8FU80bvDuP3UY=;
        b=cpwbe2R0nbSeH5TFdK0I2TqA/85llbju5UnIQYbhLuVqoMhf7Ml6SU59IA14ImDqyz
         FhyYA/+zvvGyiIYz66adL4mjr5MqIY/u6M5aXhfQewDuMQO8UwpJJ44xTICMeZ2jM9XC
         gabmD+PYcRUfCCy79G+Ys1xTQvC1p4eYzUVcoRdXxvWTXkX1/FU4cI5QwgYQQTlaz0ym
         4dsmkISk1KQjatq73KSYOrrUdXJfyx+pa+V++gPV2ME5s4cFKO2hc5pjl0ZNZtdduaWR
         qaWJL+oxBuRAtxaNSrHfd5Y6ArlnMpNr66D+bqoX2jNqX86O+jlAbEc89ybx6vNF8YjR
         ky+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772557028; x=1773161828;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xS72+haNYWCevDvohxWWznv7pyLrld8FU80bvDuP3UY=;
        b=wfV6RI8GndZ9FctSHgH19XusCVJYh8odIiODqmWLWLPRPPw35Xsti+MTvEV/fSN5I+
         fUDBz+lvzej9ERaeoBGZRVrMLyTJxgqwMLPcTlRmBamdbbwVmLqysqtMwuBk+ebfdMJA
         Pb8SrTDTt9lU+2rBQomlTfEGVzldz74XrHwNMuDmwQRkolO4yOVY8MqTchbXKMPHGSkQ
         zojW0eTz04H3Ym5WuZJNqtM2tXP2UFeOAn4tm+VtKwy1Ki4w1Nz6ZzcQJrAvuUGFSC0l
         QqPgeChNgjr2hqhtZCibPSdYa9sIfy5cYdIaS/5tUhxgA3lvdeawxchg9wfz5aYrJot7
         8mWA==
X-Forwarded-Encrypted: i=1; AJvYcCWQAWhLGXl9R5P5ozifuXRfv58yRXMLtlYMTVgX6ooZM6Z3JM1k747kum0sQmF0ncN1aLBOSB9JcfI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwOesPmfLcU1ItzYGLW2IiQIhriMklX/F82V9fQQG89jjpWIcpJ
	gncLiNdlsxkoU5jG9KY5iM15SJjFbmra1q9DNzguzVyQk6Tn4hZZmkIgLpbZguXYKg==
X-Gm-Gg: ATEYQzyrU8UZV0GdARh4mSmtIHvF9Ysb1biu8mrWCAFezA/4TaAh/NFJFvmdSUJcTDi
	LvfhtaSJMXoXn/RtJE5CTKQh6FH5CdtJrLwev2G5L1DuZRSt5v/pFmaSlkN14YRdyAk2ZDd3K3f
	slQ+pDqLG0MNe19wWFXGMvyim0U/dtmHe7p3R09w6QWtfY0mSpWHu65C8VI9GDWg/D0jghMLUhW
	9tZUPUKmdYzORi5zR2wNB+03+kTOz555HOueR3V4udiQZYw1sld3XP/B8lBUW1nBd/Fh+pE//oN
	yWUatslXe2v4gFbL9fziXZzJLioNsIu2vYOFsVsOTgcg+X1oikt9Tlq2xuMCV6GaHxyfVX8BWaH
	z1VtFX824p8dSqAS/YjZfkmVlq1jW0R4fXTyUOzHz53uEpkGMmgwujbb0V1KokR7xf+QuyB9YA6
	qJN1aSEsMn6S5yenXT2wwKRdQeScgw6v/Y67QRDDNV9hHGJ1wdvhjeDEIeWaQYPT90cBUaUbuuC
	rQ58Msq3g+kLSI=
X-Received: by 2002:adf:e788:0:b0:439:b775:fca2 with SMTP id ffacd0b85a97d-439c10dfa1amr4629127f8f.24.1772557028366;
        Tue, 03 Mar 2026 08:57:08 -0800 (PST)
Message-ID: <79729d02-65ae-4eeb-a66b-e05cdcfe9166@suse.com>
Date: Tue, 3 Mar 2026 17:57:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/2] x86/ioreq: Extend ioreq server to support multiple
 ioreq pages
To: Julian Vetter <julian.vetter@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20260223093831.475769-1-julian.vetter@vates.tech>
 <20260223093831.475769-2-julian.vetter@vates.tech>
 <c9126823-7c90-40bb-9fd1-c5649ffdb5cd@suse.com>
 <151c64e9-a605-410a-b3b0-2c86cdf6fd2c@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: <151c64e9-a605-410a-b3b0-2c86cdf6fd2c@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.03.2026 17:48, Julian Vetter wrote:
> On 2/26/26 16:54, Jan Beulich wrote:
>> On 23.02.2026 10:38, Julian Vetter wrote:
>>> A single shared ioreq page provides PAGE_SIZE/sizeof(ioreq_t) = 128
>>> slots, limiting HVM guests to 128 vCPUs. To support more vCPUs, extend
>>> the ioreq server to use xvzalloc_array() for allocating a contiguous
>>> virtual array of ioreq_t slots sized to d->max_vcpus, backed by
>>> potentially non-contiguous physical pages.
>>>
>>> For the GFN-mapped path (x86), page and writable type references are
>>> obtained directly via check_get_page_from_gfn() and get_page_type() for
>>> each GFN. The pages are then combined into a single contiguous VA using
>>> vmap(). The number of ioreq pages is computed at runtime via
>>> nr_ioreq_pages(d) = DIV_ROUND_UP(d->max_vcpus, IOREQS_PER_PAGE), so
>>> small VMs only allocate one page. All existing single-page paths
>>> (bufioreq, legacy clients) remain unchanged.
>>>
>>> Mark the now-unused shared_iopage_t in the public header as deprecated.
>>
>> For this I think we need to settle on one of two options: Either it was a
>> mistake that this was used in the hypervisor (and added to the public
>> interface), in which case the removal of the use may want to be separate
>> (without, imo, any need to mark the item deprecated in the public header,
>> as the property remains). Or we deem it legitimate / useful, in which case
>> you would want to continue using it (in struct ioreq_server).
> 
> Thank you Jan for you feedback! It's very appreciated! You're right. But 
> I'm wondering how would dropping the struct work? I looked into QEMU and 
> varstored, and they both use this struct at the moment. But 
> modifications to both of them would be minimal if we decide to drop the 
> struct. And if they want to support multiple ioreq pages we would need 
> to modify this struct anyway to not contain a single struct ioreq, but a 
> pointer or [].

There may be a misunderstanding here: I said "drop the use" (in the hypervisor,
that is), not "drop the struct". There's also no strong need for a pointer or
[], as it looks: It being [1] right now is, aiui, a poor man's flexible array.
For one, for general use the public headers need to be C89 compatible, i.e. no
flexibly arrays unconditionally. While we do have some conditional uses (see
XEN_FLEX_ARRAY_DIM), that may not be usable here, as the array is the sole
field of the struct.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 19:13:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 19:13:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245026.1544375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxVB5-0002NY-K7; Tue, 03 Mar 2026 19:13:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245026.1544375; Tue, 03 Mar 2026 19:13: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 1vxVB5-0002NR-FQ; Tue, 03 Mar 2026 19:13:07 +0000
Received: by outflank-mailman (input) for mailman id 1245026;
 Tue, 03 Mar 2026 19:13: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=KsTL=BD=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vxVB4-0002NL-0u
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 19:13:06 +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 fc11022c-1734-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Mar 2026 20:12:57 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ0PR03MB5503.namprd03.prod.outlook.com (2603:10b6:a03:288::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Tue, 3 Mar
 2026 19:12:53 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9654.022; Tue, 3 Mar 2026
 19:12: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: fc11022c-1734-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ckPV2KqLhvv0gr4XgNi6DxkH6OB3k1a1bMQddtC6JHPwVrjZEnXwJvE6rUCkJCEuo6u83R1upYugu0LITpJiHwN436c2RynaJjyybbUqDJw7jtsThQtNXwUzDJbOVIpPZqKhDtKoLJDFIrNOY8fXPJukp6Kg0kFR87QM/2DOOMCc59/sE4wywPlzHjDDyw3y5x6s1VwSKMvXBq5yHf2OcHTwKO1hfQxKwsey5i9lx0vHevBIk9XzX8hF+AX3J0HCvVvylyn8fW56Lzc9mKtjcQufAu1zDuMecYbNQsE2D0HqAfyE1WJ9Q8Qj/ezpYtoXXWIcwx6gB2Sy0rNSddsDGQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gzg/aIEl53JUjWu/8td9aBPGZTL2UamZUBY7hTm/Bio=;
 b=nRBjflV4iXkbgy8HppncOdzN4XZXuzSl2NJ6eIOu9yFzVq62mjhFixW88zZUfa5S5SMw1J/C37EDndC0bCA+Aqn/BIVGTRQF3NBkoabxrMLsxamAMtJ7MpozqHomg5qnlX/E1ayiJTOZ3L92n70c00aJqP9+v6mJex5cbCPI4XWSQkdZtSKsXvP7kE/C2Pwf/UY9kGy6bWisIr7LSECWQh5FHyf7acRl6tjrYCgPyjBQxLRrIhvo4sJS2VtMeCrXduGygU3wSuA0H/SphLC8XJQVAdblHukIj7mi3zKeAhVAh672ynrv68r0gkTbeK8nPU110oiHuPvEDKdz+uopfg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gzg/aIEl53JUjWu/8td9aBPGZTL2UamZUBY7hTm/Bio=;
 b=sdA+YwiAKtoqLtjxE0arX9atF68UBuiW4fDsqDgV3NQ2XVwhRWWY1ZcNDkYfKInLAJlfSzNZPd4Dej7pWr5TUJ5zJtqeIUD1HKgiOOV7qMvBZMCLOpFBHBXcQZwN/+iS13/MKE9W1sW2DPwmzYKlIWMdA2yidbOYQrFX4CsdSJA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <3db44102-66c2-475b-8588-960ad774ee73@citrix.com>
Date: Tue, 3 Mar 2026 19:12:49 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, jbeulich@suse.com,
 roger.pau@citrix.com
Subject: Re: [PATCH] x86: Remove x86 prefixed names from mcheck code
To: Kevin Lampis <kevin.lampis@citrix.com>, xen-devel@lists.xenproject.org
References: <20260302191900.672460-1-kevin.lampis@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260302191900.672460-1-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0412.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:189::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_|SJ0PR03MB5503:EE_
X-MS-Office365-Filtering-Correlation-Id: 074ad2d5-2e73-4cfc-3dd7-08de7958de60
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:
	INDE3bGrAXpbFRk8yEaJN3lxyfJ1PlbYTVkpSxWF8wLRggHLtgwg8eBBrjrDQy1yEeYZgPR5GINYurhiAO/02vhQTkfFAAUzrSH274didbAzDEMIZ1QVluWGtPGNbRCBYBE01WzmgjTGzEAyQyUcpIdSKkF1hAV+2Lw+GWyORcWx1TGt/HgjxIB+0M4IGYvbmqKZrKF7j/8FWpDT/NjKQgWW96cYXOb4DnoxOq90QcFuYynL/RmI4URJyGf3yYrnvGn05N/j18FHkfCvJN0ibxEFaMOeWQzBcUxha1c76rOl7enZgHJ66v3wKJ5FMdQtLAJY2UnRMBI+4jhNmG3yZc+E+INPMdif8MORs3EZUFkz3xu/Tt+e3aQ8xl30NgO2L3M1uXSg/nyJoddZa6yzsu2Uj4wIRx9Lmo3bwkngDbF/eT3uLP3BAwePpYDbfm481C4gQlrMsCnokyBIokwRNYkrUNfHaMNDfdIzURJsNBrrq8mvV4v+P2i4eZDEfQuosQu8nJp/8yzFnPYwQLoWrOLk1XSsQUjVqcSz+29WfGN+TUEWcpHhM7ri3ol4jjORJbycQdpYu2vj9qycLdX6XZFD3RHp7Ac5+2uGpOT5B8KtQ8SiollbZ4UfMnqgvUHgw07Yw68PXxD70c9/vzV6WoSo+3OnPXGHUbDUaFkGO/tqD+HQnbtDrPs07+nOpfePQw51FsncxVfLZc+8M+xqqKeFJ3gCGLj4ONg9elb1cYg=
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?TlRCMG8zNGRjYWd0RXowUUx0dGdwS21yYzdyUi8rK1VaTnI0dDRucVM4aldF?=
 =?utf-8?B?T1BmaXNvRGt1WjZMTGVDai9JV1RZL2RpN0FidXVySy80NXFDUzk1aXFWVmpk?=
 =?utf-8?B?SDEyUlo1NVlEMVRxaERsUGRxQzdGN2RnRzNJc3B2SU1DYjhOZ09CSUVqQzNW?=
 =?utf-8?B?Q3ZvSDgxTFQ4cXRGR2EwNlZiZE5VUHlTK3RqQU1wdG9ISnBnelFmVkYzdU5w?=
 =?utf-8?B?L3JMSUZNb2JQaldIYjlMVW9zRnVsbmp1VEV3VVZ0SU1JMzlJbDZ2THRjT29n?=
 =?utf-8?B?aFhMVWwrWEltQk5keWlyUGFzcWlpM3d2OXEvTUdncTBlSkFMUWYvWFNOMHlr?=
 =?utf-8?B?TWpmODdMVTN1ZldRc2lOdHphZStZT25ZaXZMTDJDd0dvQkhHUFNtQjdLZ1Fp?=
 =?utf-8?B?c0lOSlBGamhERWlYTHl6dnh3bE9QMzRZVmZ0NVJMQlI4QWxoOHY3dkRmcTJB?=
 =?utf-8?B?NmJIOXordmVqeHZyZVZQcHpmeWpSS2VqWWdleHFzY2RRZVVLbGFXQVNoQ09O?=
 =?utf-8?B?UzJ6T01kMUFTV2c1WDgxT2s0WFYyWUp5MjVhSi9iMnErdDUvWjlNNHY3NVZ5?=
 =?utf-8?B?djFIbStLQ1VhWDgyd1RaM2tBS0h2QXdVd0JQb3N4TXJpWFkwejY0VFJQWU1x?=
 =?utf-8?B?am0rYU9PNVFRbVpFUEgvTFpWMzltOWFRb2RCVWc0d1ptaUVQSmlVaERKaEJD?=
 =?utf-8?B?eUZFaVRvbDZTQU1kR3VHVXo5MUd2aXJuNjNneFZtb3dOYWRBZEpxSnNyalRI?=
 =?utf-8?B?YW9SdWZYM3pESkdoUEV4ZUllVHZyNGliSXFTUldWZEI1MngvVXNWSnpYL2Q5?=
 =?utf-8?B?VERETGRGbmJkWHZqcVd2ei8reW9XdU9rZHcyM05qU3YyMG9SWE45RXNoaFhh?=
 =?utf-8?B?THhScENZOExuRE1oMDlGVk1yWGdRam1wR3oxbGJIelo0dnd1SjZhZXkyMHpz?=
 =?utf-8?B?bWlJdXlnUVBKQWNmdm0yaHhBVnZZclA0N3lwMVI3elIxSzVWZVRveEVvbjlp?=
 =?utf-8?B?d0ZreWJUYm9DTEMxWndtOThXd1J3UzN3QkpTajFKMnplS1BtbHM4alF1Rkcv?=
 =?utf-8?B?NXh4ZjExWXU0b04vcTBxRHlaV1pPVS9tYkZwRGIxVjBFcm1ldndoQ20zcUQv?=
 =?utf-8?B?bnoxb0lETjUvSWFGUnZJeEZKMHZYdUY4Wmk4T2MvOWQ1em5Cd1VQdGJHY0VG?=
 =?utf-8?B?WVExUU9WbElzV0VYSEVleityQ1lYTGl2UlpsVG5ySUJxU3U1UXBCMXMzUmJu?=
 =?utf-8?B?M0h5clpnTFZlb3AvNys4aDREemsraXIrMWptWFBpQ1pxUGR3ekFyL1p1LzVu?=
 =?utf-8?B?ckNLaWRMREFqSFFXUVU5V3lRclBDN2M5SXJyOHVZRk5HQm5MWk1Sdk9aa0pX?=
 =?utf-8?B?MmdzSm9mYThHblZrcG5FN0pKUThsSEpjRU1MUWh4eHJEcERkV051R1ZGcUxG?=
 =?utf-8?B?dnlZbCt1SUVLdXcrd3A5TXl0amxuaWZzZ2M1T093OFczOTZUUm9LeXR6bHRO?=
 =?utf-8?B?QXJDNVhZWnVQUHQ5RGcvVGVSK2R4TzJ4SWdBSlZqaUlXYlVjNDdtSkVsSFNX?=
 =?utf-8?B?QjV0UDUyQTFwc2orYmdMMnFudEJQb3FFK3RwZ0F2b2tGV1IzVXU2VEZPNldp?=
 =?utf-8?B?RHpQdThBQm16akFqOVozRGhTNVhIaGY4UEJuNWFQbHkydVlPN1lCbXNXSXZE?=
 =?utf-8?B?WTkzZy9WMVVjakcrcmNjOXBEWkEvYzV1c0IvZ1owbTc0S1RWSnhCeERheHQ5?=
 =?utf-8?B?NmpEVFFlRXhXVFM4Zms1UzhHY0ZOSC9RWU1TT1NzTll5WnVQYnNzZUk0emEz?=
 =?utf-8?B?dFhSZVFteWdMOGYxZFg1MHpxakIvR1FwbEpKeHhMNW9EUS9PN2F0VGJJLzZO?=
 =?utf-8?B?d2g5cnI0MVJYNFJWMzV1SkNUbjF2clQ3RWc3Sk1IK3ZXK2RUUm9sTGR0Mjlz?=
 =?utf-8?B?K0Q0blZXZ1NqK2hvc25JZ0RuUEtndmI3dTYycEZaZWMyK0lKVWxkZTRKa3JS?=
 =?utf-8?B?Q2NFMmdSV2xuTDYrVElsYW9mdkI5cXVhTUVQTVpWa1BBVHIxb3NTdlZBN09L?=
 =?utf-8?B?SGhHbWhXVTE5YkZySGJTZlpCM24rTXp6Z0VQR3BUbk5iTlNjMlR0MldUYTd1?=
 =?utf-8?B?Yjd2SW5sNjBqNVRrVkZ0dWhoMExHSEJ6MDRPbGtmV2ZmNnRjZ28rNHpYTFk0?=
 =?utf-8?B?Q093dkJ4R2dkS0dtekoyWVhINGdQcUhOalROOTdxREhTdEdabThKZTd5Nms2?=
 =?utf-8?B?bFBJeE5zOEdpbXJpNWZQeWkwVWNMQkZSMDFLU1FDUkdBWlhoUVBkN1hqUkVG?=
 =?utf-8?B?OC9NSmtkUWl1ZzNzNUtFaHY1QysweW5EWlJya3NOMnVWVVI4Nm5Mdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 074ad2d5-2e73-4cfc-3dd7-08de7958de60
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2026 19:12:52.8940
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 0O1Pxxsx8xdJjkoPDmZb9sREcnWYKeWxyZUiqlyTY+tgYQ2QKGrrnvE+GNGMxahJ+WQ5Or82W+MjwdZ+G670N98eLzmqcnVy6/1sU8Kvfw4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5503

On 02/03/2026 7:19 pm, Kevin Lampis wrote:
> struct cpuinfo_x86
>   .x86        => .family
>   .x86_vendor => .vendor
>   .x86_model  => .model
>   .x86_mask   => .stepping
>
> No functional change.
>
> This work is part of making Xen safe for Intel family 18/19.
>
> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
> ---
>
> In xen/arch/x86/cpu/mcheck/mce.c: mcheck_init(...)
> Xen only calls `intel_mcheck_init(...)` if family is 6 or 15.
>
> Linux only calls `mce_intel_feature_init(...)` if family != 5.
>
> Do we need to do something like extend this switch statement in
> `mcheck_init(...)` to include family 18 and 19?

Yes, we will want to include 18/19.

The Machine Check infrastructure in the Pentium was very primitive, but
everything 6 and later should be fine.  I think we'll want to switch to
the Linux form here.

>
>
> In xen/arch/x86/cpu/mcheck/mce.c: mce_firstbank(...)
> The check
>   c->family == 6 && c->vendor == X86_VENDOR_INTEL && c->model < 0x1a
>
> could be re-written as
>   c->vfm >= INTEL_PENTIUM_PRO && c->vfm < INTEL_NEHALEM_EP
>
> I don't know if that would be better.

There's a subtlety.  This suggestion is for ...

> diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
> index 9a91807cfb..10e826e3a6 100644
> --- a/xen/arch/x86/cpu/mcheck/mce.c
> +++ b/xen/arch/x86/cpu/mcheck/mce.c
> @@ -564,8 +564,8 @@ bool mce_available(const struct cpuinfo_x86 *c)
>   */
>  unsigned int mce_firstbank(struct cpuinfo_x86 *c)
>  {
> -    return c->x86 == 6 &&
> -           c->x86_vendor == X86_VENDOR_INTEL && c->x86_model < 0x1a;
> +    return c->family == 6 &&
> +           c->vendor == X86_VENDOR_INTEL && c->model < 0x1a;

... here, but you've made a related change ...

> diff --git a/xen/arch/x86/cpu/mcheck/mce_intel.c b/xen/arch/x86/cpu/mcheck/mce_intel.c
> index 839a0e5ba9..9100ce0f6c 100644
> --- a/xen/arch/x86/cpu/mcheck/mce_intel.c
> +++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
> @@ -711,10 +711,7 @@ static bool mce_is_broadcast(struct cpuinfo_x86 *c)
>       * DisplayFamily_DisplayModel encoding of 06H_EH and above,
>       * a MCA signal is broadcast to all logical processors in the system
>       */
> -    if ( c->x86_vendor == X86_VENDOR_INTEL && c->x86 == 6 &&
> -         c->x86_model >= 0xe )
> -        return true;
> -    return false;
> +    return c->vfm >= INTEL_CORE_YONAH;

... here.

It's not safe to have a single inequality like this, unless you're
absolutely certain you're inside a c->vendor==$ME region.

In both cases here you're replacing a vendor check, suggesting that we
might not be within a suitably guarded region.  mce_firstbank() does
seem to be used from common code.  mce_is_broadcast() OTOH does look to
be fully within an Intel-only region.


Otherwise, The vendor encoding in the higher bits will make a false
positive/negative match on one side of the inequality.

It is safe to use c->vfm >= FOO && v->vfm <= BAR, because constants of
another vendor will not be captured.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Mar 03 23:55:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Mar 2026 23:55:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245059.1544420 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxZa9-0000ow-GK; Tue, 03 Mar 2026 23:55:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245059.1544420; Tue, 03 Mar 2026 23:55:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxZa9-0000op-Ck; Tue, 03 Mar 2026 23:55:17 +0000
Received: by outflank-mailman (input) for mailman id 1245059;
 Tue, 03 Mar 2026 23:55: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=fOER=BD=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vxZa7-0000oj-QX
 for xen-devel@lists.xenproject.org; Tue, 03 Mar 2026 23:55:16 +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 6a5d1fe7-175c-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 00:55:12 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 2E0756057A;
 Tue,  3 Mar 2026 23:55:11 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 07FA5C116C6;
 Tue,  3 Mar 2026 23:55:09 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a5d1fe7-175c-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1772582110;
	bh=xouWky2sw6d1G/taXa1LN4i8BoL1w/j4IygNALCKloo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Ybah0X9N1tWItjtGs5gchsKsOnAy4S5/e8M1jCvlKc789VoHQzKTmuXGUtu5LFj0W
	 4Pu2/n2+bbE303jCAdgUhjDYAPX/6NJzzZtNWBiOAFmGueXeILsVtg+VSnwLIBHmPu
	 tOlC+YKeRblxUpL/H9qRRcLU5niEgXiRt3MNMOMv51akeDAY4xUOtuiZdhaIIUjTcH
	 1L1uoh0viYpAooewYBZdVM4CFneXgzS5Ge+Jmf7tnbgIwDpfIB44r7TaFmldh1ETiu
	 nEZA0Oxn3eASC0Bh/x+CrUDsCapyEUBVunBJEI8Jjl9fwwjejlq8rCVsgknOdc5mgm
	 gAd9WCIr8rr6Q==
Date: Tue, 3 Mar 2026 15:55:09 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
cc: Mykyta Poturai <Mykyta_Poturai@epam.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v5 2/5] arm/irq: Migrate IRQs during CPU up/down
 operations
In-Reply-To: <CE531E44-2AD4-4164-8A86-1D6084A6EAE1@arm.com>
Message-ID: <alpine.DEB.2.22.394.2603031550270.3148344@ubuntu-linux-20-04-desktop>
References: <cover.1768293759.git.mykyta_poturai@epam.com> <63892f56f227fae75d78e2ef2ee63887e74c523a.1768293759.git.mykyta_poturai@epam.com> <6080438F-DB60-4A50-8264-1CD04761B196@arm.com> <48a84d44-def9-4181-ac67-5aeb31ffb529@epam.com>
 <CE531E44-2AD4-4164-8A86-1D6084A6EAE1@arm.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1743651114-1772582111=:3148344"

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

--8323329-1743651114-1772582111=:3148344
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 5 Feb 2026, Bertrand Marquis wrote:
> > On 5 Feb 2026, at 14:23, Mykyta Poturai <Mykyta_Poturai@epam.com> wrote:
> > 
> > On 04.02.26 16:20, Bertrand Marquis wrote:
> >> Hi Mykyta.
> >> 
> >>> On 13 Jan 2026, at 09:45, Mykyta Poturai <Mykyta_Poturai@epam.com> wrote:
> >>> 
> >>> Move IRQs from dying CPU to the online ones when a CPU is getting
> >>> offlined. When onlining, rebalance all IRQs in a round-robin fashion.
> >>> Guest-bound IRQs are already handled by scheduler in the process of
> >>> moving vCPUs to active pCPUs, so we only need to handle IRQs used by Xen
> >>> itself.
> >>> 
> >>> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> >>> ---
> >>> v4->v5:
> >>> * handle CPU onlining as well
> >>> * more comments
> >>> * fix crash when ESPI is disabled
> >>> * don't assume CPU 0 is a boot CPU
> >>> * use insigned int for irq number
> >>> * remove assumption that all irqs a bound to CPU 0 by default from the
> >>>  commit message
> >>> 
> >>> v3->v4:
> >>> * patch introduced
> >>> ---
> >>> xen/arch/arm/include/asm/irq.h |  2 ++
> >>> xen/arch/arm/irq.c             | 54 ++++++++++++++++++++++++++++++++++
> >>> xen/arch/arm/smpboot.c         |  6 ++++
> >>> 3 files changed, 62 insertions(+)
> >>> 
> >>> diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/irq.h
> >>> index 09788dbfeb..a0250bac85 100644
> >>> --- a/xen/arch/arm/include/asm/irq.h
> >>> +++ b/xen/arch/arm/include/asm/irq.h
> >>> @@ -126,6 +126,8 @@ bool irq_type_set_by_domain(const struct domain *d);
> >>> void irq_end_none(struct irq_desc *irq);
> >>> #define irq_end_none irq_end_none
> >>> 
> >>> +void rebalance_irqs(unsigned int from, bool up);
> >>> +
> >>> #endif /* _ASM_HW_IRQ_H */
> >>> /*
> >>>  * Local variables:
> >>> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
> >>> index 7204bc2b68..a32dc729f8 100644
> >>> --- a/xen/arch/arm/irq.c
> >>> +++ b/xen/arch/arm/irq.c
> >>> @@ -158,6 +158,58 @@ static int init_local_irq_data(unsigned int cpu)
> >>>     return 0;
> >>> }
> >>> 
> >>> +static int cpu_next;
> >>> +
> >>> +static void balance_irq(int irq, unsigned int from, bool up)
> >>> +{
> >>> +    struct irq_desc *desc = irq_to_desc(irq);
> >>> +    unsigned long flags;
> >>> +
> >>> +    ASSERT(!cpumask_empty(&cpu_online_map));
> >>> +
> >>> +    spin_lock_irqsave(&desc->lock, flags);
> >>> +    if ( likely(!desc->action) )
> >>> +        goto out;
> >>> +
> >>> +    if ( likely(test_bit(_IRQ_GUEST, &desc->status) ||
> >>> +                test_bit(_IRQ_MOVE_PENDING, &desc->status)) )
> >>> +        goto out;
> >>> +
> >>> +    /*
> >>> +     * Setting affinity to a mask of multiple CPUs causes the GIC drivers to
> >>> +     * select one CPU from that mask. If the dying CPU was included in the IRQ's
> >>> +     * affinity mask, we cannot determine exactly which CPU the interrupt is
> >>> +     * currently routed to, as GIC drivers lack a concrete get_affinity API. So
> >>> +     * to be safe we must reroute it to a new, definitely online, CPU. In the
> >>> +     * case of CPU going down, we move only the interrupt that could reside on
> >>> +     * it. Otherwise, we rearrange all interrupts in a round-robin fashion.
> >>> +     */
> >>> +    if ( !up && !cpumask_test_cpu(from, desc->affinity) )
> >>> +        goto out;
> >> 
> >> I am a bit lost here on what you are trying to do in the case where
> >> a cpu is coming up here, it feels like you are trying to change the
> >> affinity of all interrupts in this case to cycle everything.
> >> Is it really what is expected ?
> >> If affinity was set by a VM on its interrupts, I would not expect
> >> Xen to round-robin everything each time a cpu comes up.
> >> 
> > 
> > The idea is to evenly spread interrupts between CPUs when the new ones 
> > are being brought online. This is needed to prevent Xen-bound IRQs from 
> > piling up on CPU 0 when other cores are being offlined and then onlined 
> > back. It shouldn’t mess with guest affinities, as the code skips 
> > everything that is assigned to guests and leaves it to be handled by the 
> > scheduler/vgic. Performance-wise, it should also be okay, as from what 
> > I’ve seen, there are not many interrupts used by Xen, and I expect CPU 
> > hotplug operations to be fairly infrequent.
> 
> My fear here is a bit that by removing and adding a cpu we will completely
> change irq affinities. I am not so sure that those kind of random assignments
> are compatible with embedded or safety use cases and here there is no way
> to configure this.
> 
> @Julien, Stefano and Michal: What do you think here ?

I think Bertrand's concern is valid. We need to make sure that
balance_irq is not called in "normal" or safety use-cases. I am going by
the assumption that pCPU offline/online is not going to happen in safety
use-cases. So as long as balance_irq is not called unless CPU
offline/online happens, then I think we are good. It should definitely
not happen on normal boot.                                            
 
There is also the other thought that while I do not like the idea of
spreading the IRQ evenly, I also cannot suggest something better (unless
we want to keep track of which IRQ used to belong to which dead CPU, but
I think that is undesirable).
--8323329-1743651114-1772582111=:3148344--


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 01:52:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 01:52:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245075.1544460 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxbPh-0006p3-5g; Wed, 04 Mar 2026 01:52:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245075.1544460; Wed, 04 Mar 2026 01:52:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxbPh-0006oq-2Y; Wed, 04 Mar 2026 01:52:37 +0000
Received: by outflank-mailman (input) for mailman id 1245075;
 Wed, 04 Mar 2026 01:52: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=0T8J=BE=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1vxbPf-00069T-UI
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 01:52:35 +0000
Received: from mail-vs1-xe33.google.com (mail-vs1-xe33.google.com
 [2607:f8b0:4864:20::e33])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d0902bbf-176c-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 02:52:35 +0100 (CET)
Received: by mail-vs1-xe33.google.com with SMTP id
 ada2fe7eead31-5ff0f61abd7so1565773137.1
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 17:52:35 -0800 (PST)
Received: from gmail.com (ip190-5-140-138.intercom.com.sv. [190.5.140.138])
 by smtp.gmail.com with ESMTPSA id
 a1e0cc1a2514c-94df641e133sm16763221241.5.2026.03.03.17.52.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 03 Mar 2026 17:52: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: d0902bbf-176c-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772589154; x=1773193954; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fdxVAJZzyfNVW1udrhdUFVJfrw+pt2l9y2/jEQPXbUc=;
        b=Z3Wj5ZhrknfJXAYwjf/8Pg4UG03qTY63SA2f7RxeddC1UAacq5mqPz1M0ux7K8WQlh
         YP16Xf8YvXXDJL8+xpUGLMU3ygvt/VvNAaIFhSBgY5OUxiXH+AQFAHXk+gR6hW9x0sDs
         +KkCzG85kNnzJjwbo27I4mPYcImcPiNwgkerQ//MoW2h/nKGVznbnq8LtOFVPALr3sHp
         TRbSemnlsr35iAsyBvyUP5/SW4s7KLu+zNUSq1A2Ny0fI0FdFxHha0neOe/gKcOU5vYd
         NTyByVdoiPPS2TgbZve3Tb7Vfx45CSEDwN3ED2LDMSKPviwoWHQJDP3Q71Cj3H4m2oRj
         tUtw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772589154; x=1773193954;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=fdxVAJZzyfNVW1udrhdUFVJfrw+pt2l9y2/jEQPXbUc=;
        b=H26ubfGcJC6yV835Ht3oZ7AR87YGXkS5x8sVfU9jUKejmNlhw97PRvdEyofN5IxNJb
         9+nYXfUCXVqaGRTbF6QjwNl++V5MKj9fW/dl1Vz+X2JnU6mRY4iHWaFARHGmAjDO3Nd3
         2gGkrP0IKpL9iMIstmvwQi8Gx//qRhbTzXLcs9NbHbD0h/c1f1Akzl92PGLWv7YNlNZY
         I2KW/Gxndp2vbd3NWm3z9hDcrBRMrmork2LXrPWdNOFhOI8Eso6VP9REy1jhi9Il6Lps
         SU9kHQzKN/RXaj/c96FUVeIZPkTEVu5vE5R0+hDAOi2K6ryr6qB5zVZtwct0TpeXWTus
         d9kA==
X-Forwarded-Encrypted: i=1; AJvYcCWz4YywgpisIVAYvz2S47Us4Omr45P7MUnwdt93OFr1BBaIYi0NU+8zk4pavCkwKIbS0iI5hHoY6yY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzgnI/45vmTnlgDIvOA+p035S7l1SktuATXsovASLesiizXpYQZ
	l5AgNdFLefFp9Kmrc24r5l1Fbs1mkHh7Ts55lDCqkQyWugTEC8zd2GuM
X-Gm-Gg: ATEYQzxkeI4rF75m1OwuprwN9UQ1wWBKYS868370/9u8SJmCIbxUyD+sJK7P/ZT5EF8
	eif9vpjh5l1/gDTbUvlmgU7YUpxX/zdl/VwQ2fsTb/dpC5RwMXe89j5Jh63KNyrY49ZTJQMqUx2
	poJ2MJQ6Tu110biBogKMDttvmnMKVOG5OgQwoig600JFyFe3lV5EgainkG2zQHeuOk2PydUH2Jy
	L0IHNW5etPODQeYwetiFOFveQU1zQUSRgF6jRpAVOBiZm6mrXWvT46/2ITYjqNvpru11jWnVBE5
	n0/2wRIyz0UjNxNYyF5Or4AmR8TxvNzm7TsYeTg0QvNp7Xr317YI/8d/4YawvvZLh4PnzvxGtvk
	ST+YofDhBBcuz/iMjlHNSlbSgeJeu1AfN3mZAc71rXTV3VRxNtwUv94DVn3TmpOcPAIYyGr8YaC
	KL32j/eXK2w80vs50OzJEdxNGPvJVrv/+camGL9k2rraInlmqA9qedy7mEUw==
X-Received: by 2002:a05:6102:2922:b0:5fc:2b19:f7de with SMTP id ada2fe7eead31-5ffaae9984fmr215631137.25.1772589153980;
        Tue, 03 Mar 2026 17:52:33 -0800 (PST)
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: qemu-devel@nongnu.org,
	Paolo Bonzini <pbonzini@redhat.com>,
	Peter Xu <peterx@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Cc: sstabellini@kernel.org,
	anthony@xenproject.org,
	edgar.iglesias@amd.com,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 3/5] physmem: xen: Conditionalize use of the mapcache
Date: Wed,  4 Mar 2026 02:52:19 +0100
Message-ID: <20260304015222.979224-4-edgar.iglesias@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260304015222.979224-1-edgar.iglesias@gmail.com>
References: <20260304015222.979224-1-edgar.iglesias@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>

Conditionalize use of the mapcache. This is in preparation
to optionally disable the mapcache at runtime.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
---
 system/physmem.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/system/physmem.c b/system/physmem.c
index e5ff26acec..64e6d50f8f 100644
--- a/system/physmem.c
+++ b/system/physmem.c
@@ -578,7 +578,8 @@ MemoryRegion *flatview_translate(FlatView *fv, hwaddr addr, hwaddr *xlat,
                                     is_write, true, &as, attrs);
     mr = section.mr;
 
-    if (xen_enabled() && memory_access_is_direct(mr, is_write, attrs)) {
+    if (xen_map_cache_enabled() &&
+        memory_access_is_direct(mr, is_write, attrs)) {
         hwaddr page = ((addr & TARGET_PAGE_MASK) + TARGET_PAGE_SIZE) - addr;
         *plen = MIN(page, *plen);
     }
@@ -2577,7 +2578,7 @@ static void reclaim_ramblock(RAMBlock *block)
 {
     if (block->flags & RAM_PREALLOC) {
         ;
-    } else if (xen_enabled()) {
+    } else if (xen_map_cache_enabled()) {
         xen_invalidate_map_cache_entry(block->host);
 #if !defined(_WIN32) && !defined(EMSCRIPTEN)
     } else if (block->fd >= 0) {
@@ -2736,7 +2737,7 @@ static void *qemu_ram_ptr_length(RAMBlock *block, ram_addr_t addr,
         len = *size;
     }
 
-    if (xen_enabled() && block->host == NULL) {
+    if (xen_map_cache_enabled() && block->host == NULL) {
         /* We need to check if the requested address is in the RAM
          * because we don't want to map the entire memory in QEMU.
          * In that case just map the requested area.
@@ -2785,7 +2786,7 @@ RAMBlock *qemu_ram_block_from_host(void *ptr, bool round_offset,
     RAMBlock *block;
     uint8_t *host = ptr;
 
-    if (xen_enabled()) {
+    if (xen_map_cache_enabled()) {
         ram_addr_t ram_addr;
         RCU_READ_LOCK_GUARD();
         ram_addr = xen_ram_addr_from_mapcache(ptr);
@@ -3787,7 +3788,7 @@ void address_space_unmap(AddressSpace *as, void *buffer, hwaddr len,
         if (is_write) {
             invalidate_and_set_dirty(mr, addr1, access_len);
         }
-        if (xen_enabled()) {
+        if (xen_map_cache_enabled()) {
             xen_invalidate_map_cache_entry(buffer);
         }
         memory_region_unref(mr);
@@ -3898,7 +3899,7 @@ void address_space_cache_destroy(MemoryRegionCache *cache)
         return;
     }
 
-    if (xen_enabled()) {
+    if (xen_map_cache_enabled()) {
         xen_invalidate_map_cache_entry(cache->ptr);
     }
     memory_region_unref(cache->mrs.mr);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 01:52:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 01:52:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245072.1544430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxbPb-00069m-Gu; Wed, 04 Mar 2026 01:52:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245072.1544430; Wed, 04 Mar 2026 01:52: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 1vxbPb-00069e-CJ; Wed, 04 Mar 2026 01:52:31 +0000
Received: by outflank-mailman (input) for mailman id 1245072;
 Wed, 04 Mar 2026 01:52: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=0T8J=BE=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1vxbPa-00069T-2D
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 01:52:30 +0000
Received: from mail-vk1-xa2e.google.com (mail-vk1-xa2e.google.com
 [2607:f8b0:4864:20::a2e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cc37d289-176c-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 02:52:28 +0100 (CET)
Received: by mail-vk1-xa2e.google.com with SMTP id
 71dfb90a1353d-56a9402b52fso5382138e0c.0
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 17:52:27 -0800 (PST)
Received: from gmail.com (ip190-5-140-138.intercom.com.sv. [190.5.140.138])
 by smtp.gmail.com with ESMTPSA id
 ada2fe7eead31-5ffaca9c848sm303553137.10.2026.03.03.17.52.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 03 Mar 2026 17:52: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: cc37d289-176c-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772589147; x=1773193947; 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=AZ079vS7A/A4BZyc3h4DSpRr2ArVx5hvIslaT33EcVI=;
        b=BtFTWad5DkwJTTsn9YQ1I0lkM+rXW2InQx2Wa7mEo0F2eSkCeHecbgeGJ6TO57cIMq
         IFp+G48Egg51qGHS7eeXSdPoZ6dXfkN/gdYPCW5oixtMU54VsUcSA0bXOb+3wUCnD8pQ
         /It3WuzQURDfpOn9EmbkcBoz0M22P7GeH99BtR0jleSJTM6h0K+wKzOgtPzWIfpYt04K
         cRCv3dzStAePmciuDEnIyBwtNmVpl2PIts68CjNbXFGKelLph1riTFYh4cITdpoUyyxu
         0YFjZ8bQ1bYfCiWNF35LaPKy9nj7UwQdKsCceywV8KRjNMOqa6Rccw6ExjjEFkQH9LJA
         fpSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772589147; x=1773193947;
        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=AZ079vS7A/A4BZyc3h4DSpRr2ArVx5hvIslaT33EcVI=;
        b=U/hKgEZYSdJV+tj2faztW9/UFaVKgVNA7xFCp+YSHpo2pBkBhSZV+gCziIxE12xgY4
         98fMA9dxtW77OBMXE/eM5vGKexBNFCxKZUXbh69YReH8BAEs6M0dub8rCtWbSbHp2Sjz
         dDhbf0ceTV3Uz6GIPw7rv9XzBS9P9kmeL67XSx4W1tk8ZvAHP5E/a6smvGt0IMT7TdAj
         1jqKQEJL2lxjRkC0q48qLDbWVGdKHGUTUXvsltQsZ52++at8DZDNWGFCU6DmlN3HjY3M
         vlp2KpehFPKmU9k4G6sg0o08iSi1u8FYbyv3UmHyOwpNgPz7LaGCHkHvHiVy4fLL4m48
         HHcA==
X-Forwarded-Encrypted: i=1; AJvYcCWp8Ku7VL0khdf8aJ6dJxBWwLHVO+ufnxMeyXvvn6FOisqNKWfZgSxoXryN5u6VItGBuJu+mcikJq4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz3iWo59kx+F8YBwh8pPsSqhatEfjZdF4qA19XRdDX/9ZEsJi5K
	vLVbz9DeyhropXvT/Oj//C8IWRRg0GQH/daDxnhoG7XCGCd4CkKtCZ6a
X-Gm-Gg: ATEYQzy2RJNeNWvN9kOtLrLzj5d4NLQ5THl/EUcCZJVk4APZX+W0hbZaypQtnj7WB4n
	iP8Dbjz5xNbHG/tdbDoFkjSuDo0YcKoT5Jnqp3/DTHMA7qEkidDFfvSqa3GGVymjQxmCRvyfeQS
	FGaciL64U73ttePDNmJmBkvESqrSTvZ87ChBeN21ZcBZ5nO4KeHwk706L+Of6FUPsjG0BUl17Ja
	DLCHGMx3qqO7tyKMTbI81kuSivBVO1kneDB/LOG7IkTBtW/AZLGTKqCZyF8GNLj60Wa4tZ6/Xyg
	dz4p//XLasuXW+naRLPFVc7oCZd2j4/Rv9yeO3xpn0ZzWmYsqSRJX9hB8lrIyN9rM1NNK1zhNOo
	XvmfAV0KFcnDTWSDCN3nHHdRlkALjiZd3uYwa8c3ir7T7vpWFfdopme/S5fUtcBaFQJBX2kBVpi
	rs3Oym8X26iK5sWFfeXa5zgM6sdYt8jgibUUSDYzsS8e0zXm6kKd1m2SidnA==
X-Received: by 2002:a05:6102:f10:b0:5f7:307e:80d9 with SMTP id ada2fe7eead31-5ffaafc647dmr351581137.28.1772589146690;
        Tue, 03 Mar 2026 17:52:26 -0800 (PST)
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: qemu-devel@nongnu.org
Cc: sstabellini@kernel.org,
	anthony@xenproject.org,
	edgar.iglesias@amd.com,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 0/5] xen: pvh: Add machine option to disable the mapcache
Date: Wed,  4 Mar 2026 02:52:16 +0100
Message-ID: <20260304015222.979224-1-edgar.iglesias@gmail.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>

This adds a mapcache option to the PVH machines allowing users to disable the
mapcache. To remain backwards compatible, the option defaults to "on".

When disabled, all guest memory is mapped at startup rather than on demand.
Starting QEMU may take longer in this mode, but runtime overhead is reduced and
it also enables virtio vhost backends to work.

As a trade-off, grants are unavailable without the mapcache and guests with
large amounts of RAM can take quite a while to start.

Cheers,
Edgar
 
Edgar E. Iglesias (5):
  xen: mapcache: Assert mapcache existance
  xen: mapcache: Add function to check if the mapcache is enabled
  physmem: xen: Conditionalize use of the mapcache
  hw/xen-hvm: Add a mapcache arg to xen_register_ioreq()
  hw/xen: xenpvh: Add prop to enable/disable the mapcache

 hw/i386/xen/xen-hvm.c           |   2 +-
 hw/xen/xen-hvm-common.c         |  18 +++--
 hw/xen/xen-mapcache.c           |  16 ++++
 hw/xen/xen-pvh-common.c         | 134 +++++++++++++++++++++++++++++---
 hw/xen/xen_stubs.c              |   5 ++
 include/hw/xen/xen-hvm-common.h |   3 +-
 include/hw/xen/xen-pvh-common.h |   2 +
 include/system/xen-mapcache.h   |   1 +
 system/physmem.c                |  13 ++--
 9 files changed, 169 insertions(+), 25 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 01:52:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 01:52:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245074.1544449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxbPf-0006ar-Ui; Wed, 04 Mar 2026 01:52:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245074.1544449; Wed, 04 Mar 2026 01:52:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxbPf-0006ai-Qv; Wed, 04 Mar 2026 01:52:35 +0000
Received: by outflank-mailman (input) for mailman id 1245074;
 Wed, 04 Mar 2026 01:52: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=0T8J=BE=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1vxbPe-0006Zx-QV
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 01:52:34 +0000
Received: from mail-vk1-xa31.google.com (mail-vk1-xa31.google.com
 [2607:f8b0:4864:20::a31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ce8e1000-176c-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 02:52:32 +0100 (CET)
Received: by mail-vk1-xa31.google.com with SMTP id
 71dfb90a1353d-56a94923c0aso2075402e0c.3
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 17:52:32 -0800 (PST)
Received: from gmail.com (ip190-5-140-138.intercom.com.sv. [190.5.140.138])
 by smtp.gmail.com with ESMTPSA id
 71dfb90a1353d-56adfad07f5sm2726919e0c.10.2026.03.03.17.52.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 03 Mar 2026 17:52: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: ce8e1000-176c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772589151; x=1773193951; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=N0UYcKwpR4k449Oah1OUraSH63dKX72hrhhrlbQ1drM=;
        b=kiWJ6KCmTQu5frxZQkpJaNaIm7o+k+OMHly41K58/K2HWUtBNFu+MrqgeIHz5iq7uY
         RucuE9palIbk7iHreLeSTlZYMDDsgqmUCb051qmcRjwinuNGqm3Hh0QhQxLK0Dza6qmN
         1fu8fyWymUnu86tm0d8NVJnmiiyDP1i2OBf9sY5PSbH919i6ni0bGGCBEPCUino1vGZf
         duXaqwjXi2EDaqJan3XCIFQqsX/d99RroEbLNtnlvWtBbV5PECpjjD4rVyeOKbPsHsP6
         0Bix8RvTpR6swKf8eRd+1cpUmQGEVoH1mtOfLtPy1kTKOArL54HNfLCrudTfWHLy73vE
         h+rQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772589151; x=1773193951;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=N0UYcKwpR4k449Oah1OUraSH63dKX72hrhhrlbQ1drM=;
        b=Lhb+WXleCDgVJYxh+pzRXa0GS+Ms4cImq6oLOS5vnMwBxnrj4JqeKxAIskssYRWEZL
         nnTL/HrBS5lVmJCo7JzkZypYGP9W/UgPIf/6L6zkDhaS+uALc3cebcp29koV2sxBkcPF
         lWeC82rbPfLBTCq3nt/+BzjuzvSTVm370fNdROoavFMFCjblXNQxRDXb2ONVs0myyjhL
         EdmnxYcX6m+d145vtUJjAoSSNYDlqs+w4L2ILkw9Q+mFXB1YTA0omMy0zKTwUEGvCsXg
         BDrqEcVGJKz+FomTzy8xw2mCVPVywUpR1HAzxt17QzMN5q1u6Pyn7ojgQD6VA1WnA+As
         ZBCQ==
X-Forwarded-Encrypted: i=1; AJvYcCVEqpOVu4vEbA4iNDcd3QNnvvaSH3TDAkib6pMQ8Y3HkTZImXyv+RY2BA6HuaM6fT4U/pQoN+DqbgE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyVmGOzZQ1M6FQM8TERPGMWy3SeBfVEbsRRmt5kAcZ4hyaGxfr/
	fjvRU1RBn/2vWVOtGXdNW632h3Dgqtp/l1+cbINZ+adf+4kKBQ2HTpn6rbvRcw9U
X-Gm-Gg: ATEYQzzYKXsvwy0/CSXqF7bIGgM+yi77xUXuBXFYaElNvfCmaBXXZxZFjy+Xx17sz4o
	rBYBt7sQXWfrMn2VmxqTxYJHr/iTg0i50AHIwICHsXLFgA8ZLZ8V4gxLFOn1HheDja06chkkLWQ
	WD/qQzisofSzdkl0TIqASI/jLAh9K96tjyRpRjW2t4+avHJ3lTcb6l+g7QHwdqE2wcCy3RbeAiJ
	D6yckUVrqp1Vl/EeCn6ThNMRiSOdZR7YLzBJQyq1IrlIDvz/cgTZI8FOi1vHE+b1fBD89JYPgM1
	NHyFoZHVyWSPsrz+CXLlJyX3fXuQGp4xkfH76i4BsnkCaVxdjDIZaEAMwz/LhYjdOjP+xOtWn78
	LPJh6Z9tUvc8EX0zVRYAApf8hcS9Yqp+enoBXqaFNmjLpxnC9oylrqCErKXPHJQsWmf2K5mHZjG
	NymRRnU5YG8YYfXNKWaIN6aAVH/t/Um5LITa2Rt6nYMxInlqnUUOtrrflXuQ==
X-Received: by 2002:a05:6122:4b83:b0:566:453e:37ae with SMTP id 71dfb90a1353d-56ae778ca3emr237936e0c.13.1772589150849;
        Tue, 03 Mar 2026 17:52:30 -0800 (PST)
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: qemu-devel@nongnu.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	Paul Durrant <paul@xen.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Cc: edgar.iglesias@amd.com,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 2/5] xen: mapcache: Add function to check if the mapcache is enabled
Date: Wed,  4 Mar 2026 02:52:18 +0100
Message-ID: <20260304015222.979224-3-edgar.iglesias@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260304015222.979224-1-edgar.iglesias@gmail.com>
References: <20260304015222.979224-1-edgar.iglesias@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>

Add function to check if the mapcache is enabled.
No functional change.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
---
 hw/xen/xen-mapcache.c         | 6 ++++++
 hw/xen/xen_stubs.c            | 5 +++++
 include/system/xen-mapcache.h | 1 +
 3 files changed, 12 insertions(+)

diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
index 517e5171b7..a3c162cd4c 100644
--- a/hw/xen/xen-mapcache.c
+++ b/hw/xen/xen-mapcache.c
@@ -80,6 +80,12 @@ static MapCache *mapcache_grants_ro;
 static MapCache *mapcache_grants_rw;
 static xengnttab_handle *xen_region_gnttabdev;
 
+bool xen_map_cache_enabled(void)
+{
+    /* Map cache enabled implies xen_enabled().  */
+    return xen_enabled() && mapcache;
+}
+
 static inline void mapcache_lock(MapCache *mc)
 {
     qemu_mutex_lock(&mc->lock);
diff --git a/hw/xen/xen_stubs.c b/hw/xen/xen_stubs.c
index 5e565df392..a39efb5062 100644
--- a/hw/xen/xen_stubs.c
+++ b/hw/xen/xen_stubs.c
@@ -29,6 +29,11 @@ bool xen_mr_is_memory(MemoryRegion *mr)
     g_assert_not_reached();
 }
 
+bool xen_map_cache_enabled(void)
+{
+    return false;
+}
+
 void xen_invalidate_map_cache_entry(uint8_t *buffer)
 {
     g_assert_not_reached();
diff --git a/include/system/xen-mapcache.h b/include/system/xen-mapcache.h
index fa2cff38d1..c46190dd0c 100644
--- a/include/system/xen-mapcache.h
+++ b/include/system/xen-mapcache.h
@@ -13,6 +13,7 @@
 
 typedef hwaddr (*phys_offset_to_gaddr_t)(hwaddr phys_offset,
                                          ram_addr_t size);
+bool xen_map_cache_enabled(void);
 void xen_map_cache_init(phys_offset_to_gaddr_t f,
                         void *opaque);
 uint8_t *xen_map_cache(MemoryRegion *mr, hwaddr phys_addr, hwaddr size,
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 01:52:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 01:52:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245073.1544434 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxbPb-0006Bx-Pi; Wed, 04 Mar 2026 01:52:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245073.1544434; Wed, 04 Mar 2026 01:52: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 1vxbPb-0006B6-K6; Wed, 04 Mar 2026 01:52:31 +0000
Received: by outflank-mailman (input) for mailman id 1245073;
 Wed, 04 Mar 2026 01:52: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=0T8J=BE=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1vxbPa-00069T-MM
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 01:52:30 +0000
Received: from mail-ua1-x936.google.com (mail-ua1-x936.google.com
 [2607:f8b0:4864:20::936])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cd6a365f-176c-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 02:52:30 +0100 (CET)
Received: by mail-ua1-x936.google.com with SMTP id
 a1e0cc1a2514c-94dda16ff9fso1914153241.1
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 17:52:29 -0800 (PST)
Received: from gmail.com (ip190-5-140-138.intercom.com.sv. [190.5.140.138])
 by smtp.gmail.com with ESMTPSA id
 ada2fe7eead31-5ff1ea1596asm18777740137.9.2026.03.03.17.52.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 03 Mar 2026 17:52: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: cd6a365f-176c-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772589149; x=1773193949; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yxu4XRB4FitI2+AcQo8tLZ5+1Awl0R6238sOzIkA3R0=;
        b=UxSha2V/remXY709hVthtXxJCcOpZq/ReBQ9iYEzmAn2rzakakOt5TDONZQ/2AiGN+
         pS27vRc8zU4r+93xgjEw+lXoZENRu7W820wHsM7kDJSVgV1HITW/GD2hGUri912amZBE
         bsFQe22mp7UozRCcw3L9g5Uf0BOlOv4/qeFP7TxdZOC8plbwVo7PDWM2AIF0QZYdx9fA
         jKB9FXUyU0HZ2yyqHe19w75CRQ8CRoNUfiRTXi9kRlSYQBEwVbbZzoHc2iJZzSMlpRUP
         4AYXR4ufXYv5ZmPHx4sbIFosb8v+HFGBk7v7RLehpPtdYsrj4sMdJdmRMqQb8okcyF/5
         A18g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772589149; x=1773193949;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=yxu4XRB4FitI2+AcQo8tLZ5+1Awl0R6238sOzIkA3R0=;
        b=v6sXoniYP1h0o2tKZma9Yce7oj9WPPzEQ3rJUmBimBmhrDtNlg/y76k1gzIyNiOdvy
         3bHVGTiCD/xO82OIDlycmozKK38nFiJm3SqCpqv+NExn/b/Lao38AY3/DskSOmiQUwSX
         rBDYtcprDRc8qbDQQmYhoonc+fMx4vLRHVwkos7XXYAO/CLmXoVzwQu1XrxygWRVMOhc
         a5aicooYBhYfX6iqrzffkxuK3Dzp9yutA4aEP2RfFLDqLbCW8bBUaCIerrJ9vIwhg8hV
         TG+6yTzMo3BPGhgV1/HhH1tvQFZHiQ37Xzj60wKdlgdPm9k2BdqeetDw6+lgUuXOof1z
         2RJA==
X-Forwarded-Encrypted: i=1; AJvYcCW6el+t/I2GA4Ca74BzEO48h4XxTIiFzKxp4zgmzmO0V+ed1r96DjqlrldMOmFvXo8qjnRADznY7M4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzufG5bYyido0dDj/2I+IgglkqqNqL1yYWJKOxm2Kl63gSvn5EL
	DBVg3MwHcvqqHInnqPhqVRDWXnqS+F1cb2fxItBVRoPVR0xPG4WafBbe
X-Gm-Gg: ATEYQzzkhwjVkZqhDJm0NGzYle6Qhwe/0M2JN/iKxeha0026TU3x/hGcbtrjZ8E3Wim
	Q6X9yl+A0SkbvEy+jYQNeCwwnXd+TehkLU9lWLkP1pjXCcOdz/51U4ylZil7y99jISIIte1uOcy
	WwF6U9DhZsqWtzPLLzG5TD207WHRrJu4WB9Z/qvcWlu4OZzH5Wu0X/9bNEjNUGMw1c2CrR4NaOT
	60Lbz+rj0EoLxitCA2NZuVJNWsQP8JdGXJHoI9mR7WKmDecMqB3mAuq4tjRF25MLSn2UksGJEUx
	iF3dbT4shak5uZ0u+VdQF9yRx0IIf/UWLFkb258JZO5WEm9+VkwBLkCpJybvm90qKn9YHvF2XFv
	Ff583cDyTD5zXWlDb4sGExUEl37El0sODIj/tsNdCeL9Thj9Tcd+3FILE8TQAjfrlynW0enrv3g
	hnsTyTylm2Q1MGvfEGBkep2O/DvxHAAS5YgphReL/oc9HZrIW+BdPdueKfSA==
X-Received: by 2002:a05:6102:c09:b0:5dd:f9c2:551c with SMTP id ada2fe7eead31-5ffaaf1bf2fmr242963137.27.1772589148744;
        Tue, 03 Mar 2026 17:52:28 -0800 (PST)
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: qemu-devel@nongnu.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	Paul Durrant <paul@xen.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Cc: edgar.iglesias@amd.com,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 1/5] xen: mapcache: Assert mapcache existance
Date: Wed,  4 Mar 2026 02:52:17 +0100
Message-ID: <20260304015222.979224-2-edgar.iglesias@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260304015222.979224-1-edgar.iglesias@gmail.com>
References: <20260304015222.979224-1-edgar.iglesias@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>

Assert that the mapcache was created prior to being used.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
---
 hw/xen/xen-mapcache.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
index 11115f6084..517e5171b7 100644
--- a/hw/xen/xen-mapcache.c
+++ b/hw/xen/xen-mapcache.c
@@ -464,6 +464,8 @@ uint8_t *xen_map_cache(MemoryRegion *mr,
     MapCache *mc = mapcache;
     uint8_t *p;
 
+    assert(mapcache);
+
     if (grant) {
         mc = is_write ? mapcache_grants_rw : mapcache_grants_ro;
     }
@@ -530,6 +532,8 @@ ram_addr_t xen_ram_addr_from_mapcache(void *ptr)
 {
     ram_addr_t addr;
 
+    assert(mapcache);
+
     addr = xen_ram_addr_from_mapcache_single(mapcache, ptr);
     if (addr == RAM_ADDR_INVALID) {
         addr = xen_ram_addr_from_mapcache_single(mapcache_grants_ro, ptr);
@@ -652,6 +656,8 @@ static void xen_invalidate_map_cache_entry_bh(void *opaque)
 
 void coroutine_mixed_fn xen_invalidate_map_cache_entry(uint8_t *buffer)
 {
+    assert(mapcache);
+
     if (qemu_in_coroutine()) {
         XenMapCacheData data = {
             .co = qemu_coroutine_self(),
@@ -709,6 +715,8 @@ static void xen_invalidate_map_cache_single(MapCache *mc)
 
 void xen_invalidate_map_cache(void)
 {
+    assert(mapcache);
+
     /* Flush pending AIO before destroying the mapcache */
     bdrv_drain_all();
 
@@ -776,6 +784,8 @@ uint8_t *xen_replace_cache_entry(hwaddr old_phys_addr,
 {
     uint8_t *p;
 
+    assert(mapcache);
+
     mapcache_lock(mapcache);
     p = xen_replace_cache_entry_unlocked(mapcache, old_phys_addr,
                                          new_phys_addr, size);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 01:52:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 01:52:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245076.1544470 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxbPk-00076R-JS; Wed, 04 Mar 2026 01:52:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245076.1544470; Wed, 04 Mar 2026 01: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 1vxbPk-00076K-DH; Wed, 04 Mar 2026 01:52:40 +0000
Received: by outflank-mailman (input) for mailman id 1245076;
 Wed, 04 Mar 2026 01:52:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0T8J=BE=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1vxbPi-00069T-Ld
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 01:52:38 +0000
Received: from mail-vs1-xe32.google.com (mail-vs1-xe32.google.com
 [2607:f8b0:4864:20::e32])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d219c63d-176c-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 02:52:38 +0100 (CET)
Received: by mail-vs1-xe32.google.com with SMTP id
 ada2fe7eead31-5ff1703cb9eso1668728137.3
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 17:52:37 -0800 (PST)
Received: from gmail.com (ip190-5-140-138.intercom.com.sv. [190.5.140.138])
 by smtp.gmail.com with ESMTPSA id
 a1e0cc1a2514c-94df6577693sm16742382241.9.2026.03.03.17.52.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 03 Mar 2026 17:52:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d219c63d-176c-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772589157; x=1773193957; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rZOO08zLikZY030P2ehrGV6veLejKIl076oxwM9/gTs=;
        b=eXk/08fdK1Tui/DCmFmi2fHGK0ecEBAJkf9fZhkl1StlYMNMxgHBwFl5Zh3hE+5J9K
         n3Axy7FwydzUkCjGruiBggDhzTwBFnX+XydUkvdMPEbTaooYHFRrCcQeS9qoE5s1wq9n
         VcZLo5bWtuNjuv3sm/3UurFdkkVx0eGuVJj6V4nWA5hm40Li+amUkVb/xMf/HweDevf0
         T1adE0UmZsPsvl2RZMQQiKLNQ7sfMJUw/EvCbTGsbLa6TQvrHtDoRL4DS4IkTmhUPMmd
         QhEuw/N92QpYUxRKnrTBtuzcNE1eV7tsUoLffZh+RkkT2lXRhKlyH//IBf5FiPmMnhTH
         rSxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772589157; x=1773193957;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=rZOO08zLikZY030P2ehrGV6veLejKIl076oxwM9/gTs=;
        b=pzVvZ6lUx14VYhmPDknIA+rBv5qpbwaF5yg6DyVY2iPaE3v+bX8ASSvfnhsNwQDfwb
         IDP0isornjJouAwj1g1EXW5eiP3CmF4yDpxdhsfqdta7DrzS1LQG6H7BIu7BrMLEs0to
         rzvjKW3Oy5QwZlBWH0M9wp/yyVqWLAX7C78/CxNA9PRWI/h81hlc9syYf8Q043Z15xec
         l7hIo50n7zS31SQVDSasdeVr7oiH+WukaBVKqKcTG/2IuHLYzykwROZmAX91dh9ylPBx
         8g1PjV5MemLeUZACjprzz4I3w8GHlGR/O3vJUDx1eoQWFV2APpDr/Uf9gftpSK4su5uU
         YDsg==
X-Forwarded-Encrypted: i=1; AJvYcCWpCdSYjNYFtOfymWwWkoO0PRuYTEz2mXGdL9xXH/mzB6YwxiZSAxNQ0PB35gmVlL588vxvl5kKafs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz5TK0+LKbDoD07VeqXWgp5w0GxmuIkRgPB9Tk0A9MyRDjaV2Ul
	quEPzGVZ+lpD43e6o/LFP6ooNwrM65T9RUqzlcnuMEPmFSDYj3W26922
X-Gm-Gg: ATEYQzyKvPXp69wkaW+SZy9If/u3e1kyxj2Nz3PavIIxG6FycVm09ztBsinxHjDTp9p
	2eMks7a9J1YrhOHjb2MEa5j2nuD/eCkIgOYPGgLYdbj47VYTihGGivv/7jBOsu5mtrZt4VZMdEr
	4ogTgbJxMkC/ZyEuSq5ii3QGOj+Cqo7hntjTdtsCJGQlEHakUB8zV8VC7+l2Bc+BDrPwTEh5HbN
	fSKl4MjXNGM8LtZ2X1lFxxCLahJhzERHePF8HwaZMHO6JhN8nnoma1yEzuve/H1vJl1bhXGsFft
	uFT/anz47nxkKFzvZUmH7EicRJ23NI9Gg1aHMXovABZLcygwX0oNA+WNWYxR8XO+Pvu9pR65jKb
	k7vrvWnW+22CGuaKxpqGpdER2+XcihPFB1ljULBUFOPXJ8ApTnJFJHWuW5FioBJZOiTYhSmC7+2
	ip+o1ZVDro6X7kpMCUZKZ3XiF+UFG5vGK9kiMyS+t+MIRFFYciSxTQM6Z7EA==
X-Received: by 2002:a05:6102:c52:b0:5fe:13bc:f13a with SMTP id ada2fe7eead31-5ffaafb23f5mr239107137.36.1772589156590;
        Tue, 03 Mar 2026 17:52:36 -0800 (PST)
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: qemu-devel@nongnu.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	Paul Durrant <paul@xen.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>
Cc: edgar.iglesias@amd.com,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 4/5] hw/xen-hvm: Add a mapcache arg to xen_register_ioreq()
Date: Wed,  4 Mar 2026 02:52:20 +0100
Message-ID: <20260304015222.979224-5-edgar.iglesias@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260304015222.979224-1-edgar.iglesias@gmail.com>
References: <20260304015222.979224-1-edgar.iglesias@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>

Add a mapcache argument to xen_register_ioreq() allowing
the caller to optionally disable the mapcache.

All callers still call it with mapcache = true so there's no
functional change yet.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
---
 hw/i386/xen/xen-hvm.c           |  2 +-
 hw/xen/xen-hvm-common.c         | 18 ++++++++++++------
 hw/xen/xen-pvh-common.c         |  3 ++-
 include/hw/xen/xen-hvm-common.h |  3 ++-
 4 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c
index a6e1683885..c7bfcaae8e 100644
--- a/hw/i386/xen/xen-hvm.c
+++ b/hw/i386/xen/xen-hvm.c
@@ -622,7 +622,7 @@ void xen_hvm_init_pc(PCMachineState *pcms, MemoryRegion **ram_memory)
 
     xen_register_ioreq(state, max_cpus,
                        HVM_IOREQSRV_BUFIOREQ_ATOMIC,
-                       &xen_memory_listener);
+                       &xen_memory_listener, true);
 
     xen_is_stubdomain = xen_check_stubdomain(state->xenstore);
 
diff --git a/hw/xen/xen-hvm-common.c b/hw/xen/xen-hvm-common.c
index 59c73dfaeb..8c825588ae 100644
--- a/hw/xen/xen-hvm-common.c
+++ b/hw/xen/xen-hvm-common.c
@@ -473,7 +473,9 @@ static void handle_ioreq(XenIOState *state, ioreq_t *req)
         case IOREQ_TYPE_TIMEOFFSET:
             break;
         case IOREQ_TYPE_INVALIDATE:
-            xen_invalidate_map_cache();
+            if (xen_map_cache_enabled()) {
+                xen_invalidate_map_cache();
+            }
             break;
         case IOREQ_TYPE_PCI_CONFIG:
             cpu_ioreq_config(state, req);
@@ -823,7 +825,8 @@ void xen_shutdown_fatal_error(const char *fmt, ...)
 
 static void xen_do_ioreq_register(XenIOState *state,
                                   unsigned int max_cpus,
-                                  const MemoryListener *xen_memory_listener)
+                                  const MemoryListener *xen_memory_listener,
+                                  bool mapcache)
 {
     int i, rc;
 
@@ -874,11 +877,13 @@ static void xen_do_ioreq_register(XenIOState *state,
         state->bufioreq_local_port = rc;
     }
     /* Init RAM management */
+    if (mapcache) {
 #ifdef XEN_COMPAT_PHYSMAP
-    xen_map_cache_init(xen_phys_offset_to_gaddr, state);
+        xen_map_cache_init(xen_phys_offset_to_gaddr, state);
 #else
-    xen_map_cache_init(NULL, state);
+        xen_map_cache_init(NULL, state);
 #endif
+    }
 
     qemu_add_vm_change_state_handler(xen_hvm_change_state_handler, state);
 
@@ -901,7 +906,8 @@ err:
 
 void xen_register_ioreq(XenIOState *state, unsigned int max_cpus,
                         uint8_t handle_bufioreq,
-                        const MemoryListener *xen_memory_listener)
+                        const MemoryListener *xen_memory_listener,
+                        bool mapcache)
 {
     int rc;
 
@@ -922,7 +928,7 @@ void xen_register_ioreq(XenIOState *state, unsigned int max_cpus,
     state->has_bufioreq = handle_bufioreq != HVM_IOREQSRV_BUFIOREQ_OFF;
     rc = xen_create_ioreq_server(xen_domid, handle_bufioreq, &state->ioservid);
     if (!rc) {
-        xen_do_ioreq_register(state, max_cpus, xen_memory_listener);
+        xen_do_ioreq_register(state, max_cpus, xen_memory_listener, mapcache);
     } else {
         warn_report("xen: failed to create ioreq server");
     }
diff --git a/hw/xen/xen-pvh-common.c b/hw/xen/xen-pvh-common.c
index 1381310fc7..4fade017bb 100644
--- a/hw/xen/xen-pvh-common.c
+++ b/hw/xen/xen-pvh-common.c
@@ -202,7 +202,8 @@ static void xen_pvh_init(MachineState *ms)
     xen_pvh_init_ram(s, sysmem);
     xen_register_ioreq(&s->ioreq, ms->smp.max_cpus,
                        xpc->handle_bufioreq,
-                       &xen_memory_listener);
+                       &xen_memory_listener,
+                       true);
 
     if (s->cfg.virtio_mmio_num) {
         xen_create_virtio_mmio_devices(s);
diff --git a/include/hw/xen/xen-hvm-common.h b/include/hw/xen/xen-hvm-common.h
index e1beca062f..d177ff14ea 100644
--- a/include/hw/xen/xen-hvm-common.h
+++ b/include/hw/xen/xen-hvm-common.h
@@ -91,7 +91,8 @@ void xen_device_unrealize(DeviceListener *listener, DeviceState *dev);
 void xen_hvm_change_state_handler(void *opaque, bool running, RunState rstate);
 void xen_register_ioreq(XenIOState *state, unsigned int max_cpus,
                         uint8_t handle_bufioreq,
-                        const MemoryListener *xen_memory_listener);
+                        const MemoryListener *xen_memory_listener,
+                        bool mapcache);
 
 void cpu_ioreq_pio(ioreq_t *req);
 #endif /* HW_XEN_HVM_COMMON_H */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 01:52:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 01:52:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245078.1544480 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxbPn-0007OM-60; Wed, 04 Mar 2026 01:52:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245078.1544480; Wed, 04 Mar 2026 01:52:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxbPn-0007O6-1X; Wed, 04 Mar 2026 01:52:43 +0000
Received: by outflank-mailman (input) for mailman id 1245078;
 Wed, 04 Mar 2026 01: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=0T8J=BE=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1vxbPl-0006Zx-Ks
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 01:52:41 +0000
Received: from mail-vk1-xa2e.google.com (mail-vk1-xa2e.google.com
 [2607:f8b0:4864:20::a2e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d32c1eae-176c-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 02:52:39 +0100 (CET)
Received: by mail-vk1-xa2e.google.com with SMTP id
 71dfb90a1353d-567543b8989so2639712e0c.2
 for <xen-devel@lists.xenproject.org>; Tue, 03 Mar 2026 17:52:39 -0800 (PST)
Received: from gmail.com (ip190-5-140-138.intercom.com.sv. [190.5.140.138])
 by smtp.gmail.com with ESMTPSA id
 71dfb90a1353d-56ae7a29c2esm466482e0c.7.2026.03.03.17.52.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 03 Mar 2026 17:52:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d32c1eae-176c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772589159; x=1773193959; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EJHpqZ1+MwG7a9L0vy9H75K3KJbsmHXRI7gW76g6PSg=;
        b=mAYm6R8oWjRsnuWOl4DBP7sOPudwDWUMllJejwXFDBR/Q3ibHyA/eLP+XQqOciQV5T
         exjjsg+Sp6EJf7ccf0EmA6IUh1zaedmx3zqw6prfk5mJJdCXXIeG1p/I54P7gTmlB7gr
         lAeDm4W/7489uVX9c2jXDuz/Jq/C4CBQ7TiG/JhYimEc9uVFdOPXYpIpn5aFero4GSn6
         p9uNP0CSPe+SeI294jdX+5KwnD+ZmO7pvpaeuHVn6QeYpcjFXmid1WzosCV+sjKykBW9
         WTX+7S69bAY9nWhPSHOGbYwHdxyrQxGOSa1ZhTM89TY7Mr90l1krP8zXOGe2vEL0nZzY
         43lg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772589159; x=1773193959;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=EJHpqZ1+MwG7a9L0vy9H75K3KJbsmHXRI7gW76g6PSg=;
        b=qGoQ6Rzt9WG/BrT64FV4VPtaK0JF1mj1KELo9LpNTnKjwAuzhgFOIhgEiD3SqTrBwf
         HUcWgXCh544TuQVtyI91LZy6ebePkOh9rD5vNPibwnZTCZvuPlZrarURzBcmdPOjfDU+
         zOxLn5DTet6lTXCQv8w1SXo0strWIur50YlXXckbEIKxHtMxcP6KbCS83PP6G2PMpy/F
         Mjf0RnbHWYO36e/zXKBLHGNFX82CO7jnHiR67g11uFrMYBIqKqHtXH90JclOp0k3GbiQ
         Z8G4D5z8zAxhuH2sXRDqLMue+GEajSr/r6iFk8rGoy6maWQR3/POwlWDSLqlImcXytV/
         NzCg==
X-Forwarded-Encrypted: i=1; AJvYcCWxhc1pf65F2dId+gclMwMXmpzMYPZTnvtC3Al6Aezd1GO8WIbqU1uO1q4xh+TSo6VLipyys3RlS5Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzsmrDe5O1vPvXRBO+Ve8cQVd08mNUf5EOP1yJi6sl7a9SNgPoX
	cTDjDRrq1Q/3ZJ8E5u4ti+6Hy4QMHQitohig9L+1KLlyWQG95jYdrBKy
X-Gm-Gg: ATEYQzwg3aD9HPcgocmcgLFCMWd0EVktUTJvhuio5c3ldVg4Qceml4/6kUQSH8Enz8p
	cm3ig/4i5adrTzPJKRSGxgnK3VXE06Pm8+v3OhNjkYPyiRmbYvwco+X1EhP8qC0XkD/GBLaSjNA
	RI/plYwPQwQwTdAnBGQ+qPdh3n2+KbOT9r3kR+GFSbwjhHTN1j/f623d1DjYQ1K2bhk1Z7QxaV8
	dJ5fI9FEyCo9U4qghnYACgzMcJksewl+Mb1FarXRVb689Rv5LlGLXWko1t8VM8Ta3bYE4ASM/FB
	e/yYI92TKltXO9mzIHrzlWjcVwpTbWfP/qerEBD9N9VKZMifgBZePG6StjVjycz/JTmmnzR32wv
	BRk8gr9gWeW1cn7fChNT2HjLAdcMWGlX3nTCDBNbFrij2mtOIOgcdxp59YbqkxD6x0vP+tb/16e
	b4afYegtQZZSSTuNtqeBFEOMyWi/LHqlNV2tbODCbIT7nnjdib5+VixOdTJcf2SVwK60w+
X-Received: by 2002:a05:6122:2a43:b0:55b:305b:4e47 with SMTP id 71dfb90a1353d-56ae78214b9mr229902e0c.19.1772589158517;
        Tue, 03 Mar 2026 17:52:38 -0800 (PST)
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: qemu-devel@nongnu.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	Paul Durrant <paul@xen.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Cc: edgar.iglesias@amd.com,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 5/5] hw/xen: xenpvh: Add prop to enable/disable the mapcache
Date: Wed,  4 Mar 2026 02:52:21 +0100
Message-ID: <20260304015222.979224-6-edgar.iglesias@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260304015222.979224-1-edgar.iglesias@gmail.com>
References: <20260304015222.979224-1-edgar.iglesias@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>

Add a machine property to enable/disable the mapcache.
Default it to enabled for backwards compatibility.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
---
 hw/xen/xen-pvh-common.c         | 133 +++++++++++++++++++++++++++++---
 include/hw/xen/xen-pvh-common.h |   2 +
 2 files changed, 124 insertions(+), 11 deletions(-)

diff --git a/hw/xen/xen-pvh-common.c b/hw/xen/xen-pvh-common.c
index 4fade017bb..cca37202ff 100644
--- a/hw/xen/xen-pvh-common.c
+++ b/hw/xen/xen-pvh-common.c
@@ -29,6 +29,69 @@ static const MemoryListener xen_memory_listener = {
     .priority = MEMORY_LISTENER_PRIORITY_ACCEL,
 };
 
+/*
+ * Map foreign RAM in bounded chunks so we don't build a PFN array for the
+ * entire guest size (which can be huge for large guests). We reserve a VA
+ * range once and then MAP_FIXED each chunk into place.
+ */
+#define XEN_PVH_MAP_CHUNK_PAGES 65535
+
+static void *xen_map_guest_ram(XenPVHMachineState *s,
+                               uint64_t addr, uint64_t size)
+{
+    size_t total_pages = size >> XC_PAGE_SHIFT;
+    size_t chunk_pages = MIN(XEN_PVH_MAP_CHUNK_PAGES, total_pages);
+    g_autofree xen_pfn_t *pfns = NULL;
+    void *base = NULL;
+    size_t offset;
+
+    if (!total_pages) {
+        goto done;
+    }
+
+    base = mmap(NULL, size, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+    if (base == MAP_FAILED) {
+        base = NULL;
+        goto done;
+    }
+
+    pfns = g_new0(xen_pfn_t, chunk_pages);
+    if (!pfns) {
+        munmap(base, size);
+        base = NULL;
+        goto done;
+    }
+
+    for (offset = 0; offset < total_pages; offset += chunk_pages) {
+        size_t num_pages = MIN(chunk_pages, total_pages - offset);
+        void *mapped;
+        size_t i;
+
+        for (i = 0; i < num_pages; i++) {
+            pfns[i] = (addr >> XC_PAGE_SHIFT) + offset + i;
+        }
+
+        mapped = xenforeignmemory_map2(
+            xen_fmem, xen_domid,
+            (uint8_t *)base + (offset << XC_PAGE_SHIFT),
+            PROT_READ | PROT_WRITE, MAP_FIXED,
+            num_pages, pfns, NULL);
+        if (!mapped) {
+            munmap(base, size);
+            base = NULL;
+            goto done;
+        }
+    }
+done:
+    if (!base) {
+        /* We can't recover from this.  */
+        error_report("FATAL: Failed to foreign-map %" PRIx64 " - %" PRIx64,
+                     addr, addr + size);
+        exit(EXIT_FAILURE);
+    }
+    return base;
+}
+
 static void xen_pvh_init_ram(XenPVHMachineState *s,
                              MemoryRegion *sysmem)
 {
@@ -45,22 +108,42 @@ static void xen_pvh_init_ram(XenPVHMachineState *s,
         block_len = s->cfg.ram_high.base + ram_size[1];
     }
 
-    memory_region_init_ram(&xen_memory, NULL, "xen.ram", block_len,
-                           &error_fatal);
+    if (s->cfg.mapcache) {
+        memory_region_init_ram(&xen_memory, NULL, "xen.ram",
+                               block_len, &error_fatal);
+        memory_region_init_alias(&s->ram.low, NULL, "xen.ram.lo", &xen_memory,
+                                 s->cfg.ram_low.base, ram_size[0]);
+        if (ram_size[1] > 0) {
+            memory_region_init_alias(&s->ram.high, NULL, "xen.ram.hi",
+                                     &xen_memory,
+                                     s->cfg.ram_high.base, ram_size[1]);
+        }
+    } else {
+        void *p;
+
+        p = xen_map_guest_ram(s, s->cfg.ram_low.base, ram_size[0]);
+        memory_region_init_ram_ptr(&s->ram.low, NULL, "xen.ram.lo",
+                                   ram_size[0], p);
+        if (ram_size[1] > 0) {
+            p = xen_map_guest_ram(s, s->cfg.ram_high.base, ram_size[1]);
+            memory_region_init_ram_ptr(&s->ram.high, NULL, "xen.ram.hi",
+                                       ram_size[1], p);
+        }
+    }
 
-    memory_region_init_alias(&s->ram.low, NULL, "xen.ram.lo", &xen_memory,
-                             s->cfg.ram_low.base, ram_size[0]);
+    /* Map them onto QEMU's address-space.  */
     memory_region_add_subregion(sysmem, s->cfg.ram_low.base, &s->ram.low);
     if (ram_size[1] > 0) {
-        memory_region_init_alias(&s->ram.high, NULL, "xen.ram.hi", &xen_memory,
-                                 s->cfg.ram_high.base, ram_size[1]);
         memory_region_add_subregion(sysmem, s->cfg.ram_high.base, &s->ram.high);
     }
 
-    /* Setup support for grants.  */
-    memory_region_init_ram(&xen_grants, NULL, "xen.grants", block_len,
-                           &error_fatal);
-    memory_region_add_subregion(sysmem, XEN_GRANT_ADDR_OFF, &xen_grants);
+    /* Grants are only supported when the mapcache is on.  */
+    if (s->cfg.mapcache) {
+        /* Setup support for grants.  */
+        memory_region_init_ram(&xen_grants, NULL, "xen.grants", block_len,
+                &error_fatal);
+        memory_region_add_subregion(sysmem, XEN_GRANT_ADDR_OFF, &xen_grants);
+    }
 }
 
 static void xen_set_irq(void *opaque, int irq, int level)
@@ -203,7 +286,7 @@ static void xen_pvh_init(MachineState *ms)
     xen_register_ioreq(&s->ioreq, ms->smp.max_cpus,
                        xpc->handle_bufioreq,
                        &xen_memory_listener,
-                       true);
+                       s->cfg.mapcache);
 
     if (s->cfg.virtio_mmio_num) {
         xen_create_virtio_mmio_devices(s);
@@ -285,6 +368,20 @@ XEN_PVH_PROP_MEMMAP(pci_ecam)
 XEN_PVH_PROP_MEMMAP(pci_mmio)
 XEN_PVH_PROP_MEMMAP(pci_mmio_high)
 
+static void xen_pvh_set_mapcache(Object *obj, bool value, Error **errp)
+{
+    XenPVHMachineState *xp = XEN_PVH_MACHINE(obj);
+
+    xp->cfg.mapcache = value;
+}
+
+static bool xen_pvh_get_mapcache(Object *obj, Error **errp)
+{
+    XenPVHMachineState *xp = XEN_PVH_MACHINE(obj);
+
+    return xp->cfg.mapcache;
+}
+
 static void xen_pvh_set_pci_intx_irq_base(Object *obj, Visitor *v,
                                           const char *name, void *opaque,
                                           Error **errp)
@@ -338,6 +435,12 @@ do {                                                                      \
         OC_MEMMAP_PROP_SIZE(c, prop_name, name);                          \
 } while (0)
 
+    object_class_property_add_bool(oc, "mapcache", xen_pvh_get_mapcache,
+                                   xen_pvh_set_mapcache);
+    object_class_property_set_description(oc, "mapcache",
+                                      "Set on/off to enable/disable the "
+                                      "mapcache");
+
     /*
      * We provide memmap properties to allow Xen to move things to other
      * addresses for example when users need to accomodate the memory-map
@@ -377,6 +480,13 @@ do {                                                                      \
 #endif
 }
 
+static void xen_pvh_instance_init(Object *obj)
+{
+    XenPVHMachineState *xp = XEN_PVH_MACHINE(obj);
+
+    xp->cfg.mapcache = true;
+}
+
 static void xen_pvh_class_init(ObjectClass *oc, const void *data)
 {
     MachineClass *mc = MACHINE_CLASS(oc);
@@ -395,6 +505,7 @@ static const TypeInfo xen_pvh_info = {
     .parent = TYPE_MACHINE,
     .abstract = true,
     .instance_size = sizeof(XenPVHMachineState),
+    .instance_init = xen_pvh_instance_init,
     .class_size = sizeof(XenPVHMachineClass),
     .class_init = xen_pvh_class_init,
 };
diff --git a/include/hw/xen/xen-pvh-common.h b/include/hw/xen/xen-pvh-common.h
index 0ed07c5694..0209b798f3 100644
--- a/include/hw/xen/xen-pvh-common.h
+++ b/include/hw/xen/xen-pvh-common.h
@@ -84,6 +84,8 @@ struct XenPVHMachineState {
         /* PCI */
         MemMapEntry pci_ecam, pci_mmio, pci_mmio_high;
         uint32_t pci_intx_irq_base;
+
+        bool mapcache;
     } cfg;
 };
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 08:43:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 08:43:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245159.1544514 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxhpF-0001Ku-5S; Wed, 04 Mar 2026 08:43:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245159.1544514; Wed, 04 Mar 2026 08:43:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxhpF-0001Kn-2C; Wed, 04 Mar 2026 08:43:25 +0000
Received: by outflank-mailman (input) for mailman id 1245159;
 Wed, 04 Mar 2026 08:43: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=3DbP=BE=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vxhpD-0001Kd-J9
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 08:43:23 +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 332792e7-17a6-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 09:43:21 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by VI1PR03MB9967.eurprd03.prod.outlook.com
 (2603:10a6:800:1cf::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.17; Wed, 4 Mar
 2026 08:43:18 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9654.022; Wed, 4 Mar 2026
 08:43: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: 332792e7-17a6-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=C/sBq7GzQNju3brhaa+lc9en+jSOLkC3ROVAOVBBbBDBweNRTrkcs9qshkNgtrlig1+blA/KnB8sHwtH3cGXnqMQkGazdCG9pvIiquDhgYJ4ApzDuH4ZOBqOjvdoeQ5M/ZMh++4ofJ3Rlx77rb1l262pdpbksKMXefpWvNq1lXeU6xLl014iAPhU8cV6ZBFb+YN5+Iq+x/jU07VS12tmYy/vdIozvRmD1o7Uai/RKXSLSg2FqNMCTd73pnJpodTghqXauWEPQHirosJDCtIwUuBaqys35iruZZFW19cYpr9iFYY86oocQNesgIfGoE19fb356OFY01zc88BivVwXnw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yPPd+9bG9DMhsZYzJXoIamo/bE/AclPIQLCu1r+C2PY=;
 b=P0znn4PWnOvSbvqt3me/5QKQzbWVdtny9Ig/8Kacbcz7RpCnGcC/DwEAPG6k+e1uVSL+go//8jou6Mzy1pT6R2udAJC8jzFlSM6ObqFc/MR7tfPAJSVZDtbVB14DgLWgFudlqcLETqr+9YWA/uxvu5RCd6OFqXoWLYJoddlCAp42jXz65MmMBZjZpYoWv2l3XdBg1srg8fmewYIefA0Oa8r7m9h9O1RRBAmyjxzWZnJES1bnZOye/0BUF4aqIHFUBRR59FXf/59+0hS+kyTFTy6urco3bkrGXHPabxwrnas+Pi5L/90dL3X49G/drU3XUWcSHUbSmMHsfIBINRiwEQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yPPd+9bG9DMhsZYzJXoIamo/bE/AclPIQLCu1r+C2PY=;
 b=neDmCZb45Exb3XAnED4O/FfWP4lAtANNz7ANctyUqsFyOdo2zt0xtlq/FUhTC4SrwPd5Vzu5GwNlOUWRhA2YXtxNzggHEn1coYSyWOEh8YREM0gNWS+4XiVaYMxQ+kjhOw00isfwB72Ex+zs2lgnapucSKJVyGi0U+jhJmadRFmflYPyqaZLoGx86Z82ihkuxQhhgrazSTslx4OL5AqTt1/9YcoqbAPNHOYq3svSqSKNlFDG2o7qmw10lG4iH4TWxkSw5f/q9RxRoEsEyW5sum5451dMh+1FQdhdwj0NmS8dfJ0ReJMuimQE+LaL8NrMILTMoBFgklsbttOPk852mA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stewart
 Hildebrand <stewart.hildebrand@amd.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Community Manager
	<community.manager@xenproject.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v1 4/6] vpci: add SR-IOV support for PVH Dom0
Thread-Topic: [PATCH v1 4/6] vpci: add SR-IOV support for PVH Dom0
Thread-Index: AQHb/W/XkRTIlDBdSUyf2rny+l8q37RHbCEAgVf+4gA=
Date: Wed, 4 Mar 2026 08:43:17 +0000
Message-ID: <8da9f137-a897-4438-9524-85836e0170a1@epam.com>
References: <cover.1753450965.git.mykyta_poturai@epam.com>
 <c5cd0e9cd75cacee2127c45635c999bd296853a7.1753450965.git.mykyta_poturai@epam.com>
 <aIdgJPTf17M0g-8m@macbook.local>
In-Reply-To: <aIdgJPTf17M0g-8m@macbook.local>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-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_|VI1PR03MB9967:EE_
x-ms-office365-filtering-correlation-id: 2d6907d5-8bf4-405d-e2f2-08de79ca14ed
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:
 mwaq49TErWt5FJbiPJMezo3kmOtOMI+A5U7vXfOVVtVRWEfspu+n1+nUiLJmlqYybjlCpmouPFZkUiKFeIyJSdQ7qAuzGoBaNmDoSui7AQfMxkmFIDBhK/SZXAfnYpaIf4/s76/37kA97TXNTvsoFzZ7z4X+QuLZ202HkKB7mxZIQF7yAKIRYsb6+az2ZW7mqOGCqvFB9Vu4nEKxhcQMc6HZNKrNnaG5z43ClHFHgU4pY+/UdSwXqiH7MCDVewCuq8Cls5YfoIMEAxR9IVkU7DsX4kfATSMn8OKvDd+4pigwktkr76eFI2dNYGOlkyjHLAlrwoV0g0XkkJ044owzZ4Evo20S2jrgVTKAQhWMCC2OPiBLWIv+oLsL2gTpgu1bv513blXIk0YLDhAhg0GXnOSme7fyms4BAs3oVn8qi1hZ1vbaFaNqAEsm0zQ1HKmUfc6BFuse38XQKTDj8Hkr2eAXqas9TOQsW5NCOaA8tqbvltymt9PaMtuS+Z9PKLEBhCEDGDaejbxxY4+XdejRJ1n+ERzMo9o1qGGWE1GPGBuYUF2BbkrS1qU6nCeDNw1OxhcEXRmPiF8X3d0nMDdMx1E7mReGi+SxHjGSmNBSeu7Hmg1v84SpsiE0B+O0J8GniL9VaLlGz8gJflJuoDSplpJjfSJn6FcYQtUVtJNzqdL96dsLRMRR7/asatVnWFwIvThhZFMitN34nLMbbD+cih5R67MgJL60gK0kMII1VT0=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(7053199007)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?cXVZYUp5R29id2U5QVhaakhZdDRCQXdtQWhzbGJ5N0R3NnRzQ1cweTN0ZjJr?=
 =?utf-8?B?TERTQjVrZXhOQU5JNXl1SUE4MlBDbTlOUkp4eDdlKys4ak9IYzNPOVI0MHAr?=
 =?utf-8?B?QzJnWng3M3BoRzRqWHVQWnJZOG5oWTQwMmpSaVJROENrT0RFc3RBSlZLY0NG?=
 =?utf-8?B?cnY2cnk2aXZXTnRtZjVROTJOYjIwdlcwSDVEVzFCMDRFaC9RcXMwTThiVU9U?=
 =?utf-8?B?ZHhoQ3B3OHJZT3psUHZKdWdKdDJhU2dTWFdLQmxyVlpscUpPa0o4ay9PNDkw?=
 =?utf-8?B?MXdsNG1taFowelhuYkFwSFkyczJQek11SldJQTJQRElVbExSdnNsY3Vma01u?=
 =?utf-8?B?MldCNUVvVmR2VXpZYWs0bTBQL3h4czg1QVgwcG5ldlV2NWFkSTF0cEtRaUQ4?=
 =?utf-8?B?bktMZUVGcXZYNytxY2hacDJ3YkVOZ1hpc0dBWG10a2VLaEk1NXhBYnVWWFlH?=
 =?utf-8?B?WjMrYTJGc2NYY0xYc2dEK2RJbktxUXVMSFJqZkxidzhHMVF6aTJGanpaMnBi?=
 =?utf-8?B?OG4ycW9RTkpraVVCOEIrTGNVN2R0cFlUdWx1L1hVQ1czZmdmN3B1RzZybWFG?=
 =?utf-8?B?dGpPajdOTGR2Tk9zdUVsSnlKY296akY1eTliVVVKK25zSUk3c3FxZk9tOUg5?=
 =?utf-8?B?SjR6V0dQVExZZ1h0amR6ZUFxRGNXREVJMDNMZm5pTnVMWEdFNHUvMlBCL0Rx?=
 =?utf-8?B?a1U1dXpZT3h4ZStzdGFKQm54NmcrSjhUZWE3R2FMb1AxWDJYVFZvOUI4anVG?=
 =?utf-8?B?ZjJCTXZ2amUrZFpaWnhuYnB5cWNyRlo3aTZBTlYyU1FuMjFTdXhZcjF3NjBm?=
 =?utf-8?B?NVpqVlhEUlFIR1I5RDBsSVFHVEwzSzhSYitmZDQ1LzQrdHdRRGY0U1B5SldT?=
 =?utf-8?B?T0tzOHFhZTk0SzdNa1gwbnpnNUdEMG04eVlsTGRBeDVqT01aSUdIbXJNVUV2?=
 =?utf-8?B?UllMN3hFcXdJRnBINFlzTlR3SkFCMXBXL0Y1bHRhZjY5SkhHWXZJc2FJRXlY?=
 =?utf-8?B?SDY3NXFoUzVUQUpyVnR6UTNhTmFSZVZxVVhQNXh2eDBrMmlMRnZVclVGbXYw?=
 =?utf-8?B?SmliMVhrMFE0eCtlMzd0cHlIY3hyK1YvZ0czOFpXaEtVckppOXRDSk5ybTh1?=
 =?utf-8?B?eENLeWx6MUdoMy9VNXRVVVhKMXcrMXU2cWo3RHIzY2xnMnNLeWNQVi83d0Fy?=
 =?utf-8?B?S21LMFhoVEN3L0ZmQ1ZPWWp3bVYrZ3Jxak8ydGJ0N1k3amRsY1hGQUorV1oy?=
 =?utf-8?B?SG5ZcW5tdExocnkzMG1mMTFNQ2Q5WlRkOXB0MjVEKzJiUnMyRzlwVm1ZRlBs?=
 =?utf-8?B?SE5ySll5SUZjRnpqdnYzYndHQ1Zici9oMFRWQzFNUTYrdDNKYVRQZzhUYnBV?=
 =?utf-8?B?aWp0WGp5YXI5VFVzWGlERkJ0NXFXUkMrRXNYTzRYcWY2UlNxc1gvdXBtUm9i?=
 =?utf-8?B?K25BcWhieEszZ1VYbE5XR3E5TU52S0dhUnJPMDNnT0p6Q3NpWEphSVVBYXBz?=
 =?utf-8?B?NzdZTTBHMEc0eUE0Nk9PeHlDY1hVR3BWVlNjb1g4MnFSdi9CSkFjRC9Zencw?=
 =?utf-8?B?Q1lpMFB3Nmc5d0I3VTYzRWJycUsvK3pyY1hTSTkxZmp6ZjZMSlpIUnNUN2to?=
 =?utf-8?B?b1hXS3I0RFhvV3RFc2JxZUc1SmYzWFZOM0JFMGNnRHNnbUl1dmNENDNXSDJJ?=
 =?utf-8?B?T2k1Vk12YzcyZXpta01DU0hvKzFGeEFiTm5Wc3pmN2d2dThMWXluWWlWMXZm?=
 =?utf-8?B?ck1tT2psSzhOUXVjOUJiWWJrVEVHVmlDZFZUOXVjWHVBN25nc2RNT05GT0Nk?=
 =?utf-8?B?U25GUk44VUtaVGNHcWdKQVUxNVlEODVUNFFibmh6S3VJallNL2dOR1ZrTTdk?=
 =?utf-8?B?SGg4djhyc1l5cWw5bGhVWGZVcm9xUWloS2FiR0MzTFo0WmFvYXFhQVdzYml1?=
 =?utf-8?B?VDYrTnJvYmFkR3BITXBVR25DTGYrUEorb0FpNlVxa2Fqcmdoa3NpN0lzSTA5?=
 =?utf-8?B?SzZ5eVZScmRqTDN6WC9NMGxvZS9hcFdROU16b0h6MmUyZm0zMEIvRU9JMS9Z?=
 =?utf-8?B?THgyV0FYRVg4cmV3QkhqSkVVVldXbFFINFl5dVc3Vzl3a1FXZFBTZzltMW9m?=
 =?utf-8?B?VCtsK1BXaUFsN1Fnc2pUWnZxRXJPWWJQazQzaGM4bExGeE92YWN3QUNZd1Nu?=
 =?utf-8?B?UG9CWnZoeHEybS91c2R2dHo2NDQ2VUx1ODJaczRnbUQwTTl2ZG1pNC95TS9i?=
 =?utf-8?B?MFM1WkVzTGZVRCtUMWlPb2VuMWZnT0VTeUJ3TzRrWXFRNm0xSGZNYU1SQ20w?=
 =?utf-8?B?SjRUM0NMdHpHc1p6eXhzditMV2o5NnRnUERzSXkxUXNKeVRBV2VGWGZ2WURO?=
 =?utf-8?Q?lvxHlnigs4osGxrU=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <77FC0C094C3BFA40853C69866B7A0A38@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: 2d6907d5-8bf4-405d-e2f2-08de79ca14ed
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Mar 2026 08:43:17.4438
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Kakk8C64pydenQ3Ofn9HJNjo6FXg9WKWMSxZZc/LTcVQuJHk8g7/xco8FIFQAJ2VZMW4F87SRgw6PQatg5axzA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB9967

T24gNy8yOC8yNSAxNDozMywgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4gT24gRnJpLCBKdWwg
MjUsIDIwMjUgYXQgMDI6MjQ6MzNQTSArMDAwMCwgTXlreXRhIFBvdHVyYWkgd3JvdGU6DQo+PiBG
cm9tOiBTdGV3YXJ0IEhpbGRlYnJhbmQgPHN0ZXdhcnQuaGlsZGVicmFuZEBhbWQuY29tPg0KPj4N
Cj4+IFRoaXMgY29kZSBpcyBleHBlY3RlZCB0byBvbmx5IGJlIHVzZWQgYnkgcHJpdmlsZWdlZCBk
b21haW5zLA0KPj4gdW5wcml2aWxlZ2VkIGRvbWFpbnMgc2hvdWxkIG5vdCBnZXQgYWNjZXNzIHRv
IHRoZSBTUi1JT1YgY2FwYWJpbGl0eS4NCj4+DQo+PiBJbXBsZW1lbnQgUlcgaGFuZGxlcnMgZm9y
IFBDSV9TUklPVl9DVFJMIHJlZ2lzdGVyIHRvIGR5bmFtaWNhbGx5DQo+PiBtYXAvdW5tYXAgVkYg
QkFSUy4gUmVjYWxjdWxhdGUgQkFSIHNpemVzIGJlZm9yZSBtYXBwaW5nIFZGcyB0byBhY2NvdW50
DQo+PiBmb3IgcG9zc2libGUgY2hhbmdlcyBpbiB0aGUgc3lzdGVtIHBhZ2Ugc2l6ZSByZWdpc3Rl
ci4NCj4+DQo+PiBSZWxpZXMgb24gZG9tMCB0byBlbmFibGUgU1ItSU9WIGFuZCBQSFlTREVWT1Ag
dG8gaW5mb3JtIFhlbiBhYm91dA0KPj4gYWRkaXRpb24vcmVtb3ZhbCBvZiBWRnMuDQo+IA0KPiBX
aHkgSSdtIG5vdCBvcHBvc2VkIHRvIGFsbG93aW5nIHJlZ2lzdHJhdGlvbiBvZiBkZXZpY2VzIHVz
aW5nDQo+IFBIWVNERVZPUCwgY2FuJ3QgWGVuIGRldGVjdCB0aGUgYWRkaXRpb24gb2YgdGhlIFZG
cyBhbmQgYWRkIHRoZW0NCj4gaXRzZWxmPw0KPiANCj4gV2hlbiBJIHdvcmtlZCBvbiB0aGlzIGxv
bmcgdGltZSBhZ28sIHRoZSB2ZXJzaW9uIG9mIHRoZSBzZXJpZXMgdGhhdCBJDQo+IHBvc3RlZCBo
YWQgcmVnaXN0cmF0aW9uIG9mIHRoZSBWRnMgZG9uZSBieSBYZW4gYWxzbzoNCj4gDQo+IGh0dHBz
Oi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC8yMDE4MDcxNzA5NDgzMC41NDgwNi0xMi1yb2dl
ci5wYXVAY2l0cml4LmNvbS8NCj4gDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogU3Rld2FydCBIaWxk
ZWJyYW5kIDxzdGV3YXJ0LmhpbGRlYnJhbmRAYW1kLmNvbT4NCj4+IFNpZ25lZC1vZmYtYnk6IE15
a3l0YSBQb3R1cmFpIDxteWt5dGFfcG90dXJhaUBlcGFtLmNvbT4NCj4+IC0tLQ0KPj4gICBDSEFO
R0VMT0cubWQgICAgICAgICAgICAgIHwgICAzICstDQo+PiAgIFNVUFBPUlQubWQgICAgICAgICAg
ICAgICAgfCAgIDIgLQ0KPj4gICB4ZW4vZHJpdmVycy92cGNpL01ha2VmaWxlIHwgICAyICstDQo+
PiAgIHhlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMgfCAgIDMgKw0KPj4gICB4ZW4vZHJpdmVycy92
cGNpL3NyaW92LmMgIHwgMjM1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
DQo+PiAgIHhlbi9kcml2ZXJzL3ZwY2kvdnBjaS5jICAgfCAgIDEgKw0KPj4gICB4ZW4vaW5jbHVk
ZS94ZW4vdnBjaS5oICAgIHwgICA3ICstDQo+PiAgIDcgZmlsZXMgY2hhbmdlZCwgMjQ3IGluc2Vy
dGlvbnMoKyksIDYgZGVsZXRpb25zKC0pDQo+PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vZHJp
dmVycy92cGNpL3NyaW92LmMNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvQ0hBTkdFTE9HLm1kIGIvQ0hB
TkdFTE9HLm1kDQo+PiBpbmRleCA1ZjMxY2EwOGZlLi43YjBlOGJlYjc2IDEwMDY0NA0KPj4gLS0t
IGEvQ0hBTkdFTE9HLm1kDQo+PiArKysgYi9DSEFOR0VMT0cubWQNCj4+IEBAIC0yMyw4ICsyMyw3
IEBAIFRoZSBmb3JtYXQgaXMgYmFzZWQgb24gW0tlZXAgYSBDaGFuZ2Vsb2ddKGh0dHBzOi8va2Vl
cGFjaGFuZ2Vsb2cuY29tL2VuLzEuMC4wLw0KPj4gICAgLSBPbiB4ODY6DQo+PiAgICAgIC0gT3B0
aW9uIHRvIGF0dGVtcHQgdG8gZml4dXAgcDJtIHBhZ2UtZmF1bHRzIG9uIFBWSCBkb20wLg0KPj4g
ICAgICAtIFJlc2l6YWJsZSBCQVJzIGlzIHN1cHBvcnRlZCBmb3IgUFZIIGRvbTAuDQo+PiAtICAg
LSBTdXBwb3J0IFBDSSBwYXNzdGhyb3VnaCBmb3IgSFZNIGRvbVVzIHdoZW4gZG9tMCBpcyBQVkgg
KG5vdGUgU1ItSU9WDQo+PiAtICAgICBjYXBhYmlsaXR5IHVzYWdlIGlzIG5vdCB5ZXQgc3VwcG9y
dGVkIG9uIFBWSCBkb20wKS4NCj4+ICsgICAtIFN1cHBvcnQgUENJIHBhc3N0aHJvdWdoIGZvciBI
Vk0gZG9tVXMgd2hlbiBkb20wIGlzIFBWSC4NCj4gDQo+IERvbid0IHlvdSBuZWVkIHRvIG1vdmUg
dGhpcyBvdXQgb2YgdGhlIHg4NiBzcGVjaWZpYyBzZWN0aW9uPw0KPiANCj4gQWNjb3JkaW5nIHRv
IHRoZSBjb3ZlciBsZXR0ZXIgeW91IGFyZSB0ZXN0aW5nIG9uIGFuIEFSTSBib2FyZCwgc28gdGhp
cw0KPiBwcm9iYWJseSBuZWVkcyB0byBiZSBwdXQgaW4gYSBub24tYXJjaCBwYXJ0IG9mIENIQU5H
RUxPRz8NCj4gDQo+PiAgICAgIC0gU21va2UgdGVzdHMgZm9yIHRoZSBGcmVlQlNEIFhlbiBidWls
ZHMgaW4gQ2lycnVzIENJLg0KPj4gICANCj4+ICAgIC0gT24gQXJtOg0KPj4gZGlmZiAtLWdpdCBh
L1NVUFBPUlQubWQgYi9TVVBQT1JULm1kDQo+PiBpbmRleCA2YTgyYTkyMTg5Li44MzBiNTk4NzE0
IDEwMDY0NA0KPj4gLS0tIGEvU1VQUE9SVC5tZA0KPj4gKysrIGIvU1VQUE9SVC5tZA0KPj4gQEAg
LTE3MCw4ICsxNzAsNiBAQCB1bmV4cGVjdGVkIGJlaGF2aW9yIG9yIGlzc3VlcyBvbiBzb21lIGhh
cmR3YXJlLg0KPj4gICANCj4+ICAgQXQgbGVhc3QgdGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUg
bWlzc2luZyBvbiBhIFBWSCBkb20wOg0KPj4gICANCj4+IC0gICogUENJIFNSLUlPVi4NCj4+IC0N
Cj4+ICAgICAqIE5hdGl2ZSBOTUkgZm9yd2FyZGluZyAobm1pPWRvbTAgY29tbWFuZCBsaW5lIG9w
dGlvbikuDQo+PiAgIA0KPj4gICAgICogTUNFIGhhbmRsaW5nLg0KPj4gZGlmZiAtLWdpdCBhL3hl
bi9kcml2ZXJzL3ZwY2kvTWFrZWZpbGUgYi94ZW4vZHJpdmVycy92cGNpL01ha2VmaWxlDQo+PiBp
bmRleCBhN2M4YTMwYTg5Li5mZTFlNTdiNjRkIDEwMDY0NA0KPj4gLS0tIGEveGVuL2RyaXZlcnMv
dnBjaS9NYWtlZmlsZQ0KPj4gKysrIGIveGVuL2RyaXZlcnMvdnBjaS9NYWtlZmlsZQ0KPj4gQEAg
LTEsMiArMSwyIEBADQo+PiAtb2JqLXkgKz0gdnBjaS5vIGhlYWRlci5vIHJlYmFyLm8NCj4+ICtv
YmoteSArPSB2cGNpLm8gaGVhZGVyLm8gcmViYXIubyBzcmlvdi5vDQo+PiAgIG9iai0kKENPTkZJ
R19IQVNfUENJX01TSSkgKz0gbXNpLm8gbXNpeC5vDQo+PiBkaWZmIC0tZ2l0IGEveGVuL2RyaXZl
cnMvdnBjaS9oZWFkZXIuYyBiL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMNCj4+IGluZGV4IGY5
NDdmNjUyY2QuLjBhODQwYzZkY2MgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vZHJpdmVycy92cGNpL2hl
YWRlci5jDQo+PiArKysgYi94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jDQo+PiBAQCAtODM5LDYg
KzgzOSw5IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgaW5pdF9oZWFkZXIoc3RydWN0IHBjaV9kZXYg
KnBkZXYpDQo+PiAgIA0KPj4gICAgICAgQVNTRVJUKHJ3X2lzX3dyaXRlX2xvY2tlZCgmcGRldi0+
ZG9tYWluLT5wY2lfbG9jaykpOw0KPj4gICANCj4+ICsgICAgaWYgKCBwZGV2LT5pbmZvLmlzX3Zp
cnRmbiApDQo+PiArICAgICAgICByZXR1cm4gMDsNCj4+ICsNCj4+ICAgICAgIHN3aXRjaCAoIHBj
aV9jb25mX3JlYWQ4KHBkZXYtPnNiZGYsIFBDSV9IRUFERVJfVFlQRSkgJiAweDdmICkNCj4+ICAg
ICAgIHsNCj4+ICAgICAgIGNhc2UgUENJX0hFQURFUl9UWVBFX05PUk1BTDoNCj4+IGRpZmYgLS1n
aXQgYS94ZW4vZHJpdmVycy92cGNpL3NyaW92LmMgYi94ZW4vZHJpdmVycy92cGNpL3NyaW92LmMN
Cj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+PiBpbmRleCAwMDAwMDAwMDAwLi42NDA0MzBlM2U5
DQo+PiAtLS0gL2Rldi9udWxsDQo+PiArKysgYi94ZW4vZHJpdmVycy92cGNpL3NyaW92LmMNCj4+
IEBAIC0wLDAgKzEsMjM1IEBADQo+PiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0y
LjAtb25seSAqLw0KPj4gKy8qDQo+PiArICogSGFuZGxlcnMgZm9yIGFjY2Vzc2VzIHRvIHRoZSBT
Ui1JT1YgY2FwYWJpbGl0eSBzdHJ1Y3R1cmUuDQo+PiArICoNCj4+ICsgKiBDb3B5cmlnaHQgKEMp
IDIwMTggQ2l0cml4IFN5c3RlbXMgUiZEDQo+IA0KPiBJZiB0aGVyZSdzIGEgQ2l0cml4IGNvcHly
aWdodCBoZWFkZXIgaGVyZSwgc2hvdWxkbid0IHRoZXJlIGJlIGENCj4gbWF0Y2hpbmcgU2lnbmVk
LW9mZi1ieSBmcm9tIHNvbWVvbmUgYXQgQ2l0cml4IChJIHRoaW5rIHRoYXQncyBsaWtlbHkNCj4g
bWUpPw0KPiANCj4gT3RoZXJ3aXNlIGlmIHRoZXJlJ3Mgbm8gY29udGVudCBhdXRob3JlZCBieSBh
IENpdHJpeCBlbXBsb3llZSB0aGUNCj4gY29weXJpZ2h0IG5vdGljZSBtdXN0IGJlIHJlbW92ZWQu
ICBXZSBuZWVkIHRvIGJlIGNhcmVmdWwgd2l0aA0KPiBjb3B5cmlnaHQgYW5kIGF0dHJpYnV0aW9u
Lg0KPiANCj4gQW5kIGluIGFueSBjYXNlIHRoZSBkYXRlIHNob3VsZCBiZSB1cGRhdGVkLg0KPiAN
Cg0KQ2FuIEkgYWRkIHlvdXIgU09CIG9yIGlzIGl0IGJldHRlciB0byByZW1vdmUgdGhlIGNvcHly
aWdodD8gTG9va2luZyBhdCANCnRoZSBwYXRjaGVzIHlvdSBwcm92aWRlZCwgSSB0aGluayB0aGlz
IG9uZXMgd2VyZSBkZWZpbml0ZWx5IGJhc2VkIG9uIA0KdGhlbSwgYnV0IHRoZXJlIGFyZSBhbHNv
IGEgbG90IG9mIGNoYW5nZXMgc2luY2UgdGhlbi4NCg0KLS0gDQpNeWt5dGE=


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 09:34:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 09:34:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245180.1544552 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxic5-00011s-1t; Wed, 04 Mar 2026 09:33:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245180.1544552; Wed, 04 Mar 2026 09:33: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 1vxic4-00011k-VD; Wed, 04 Mar 2026 09:33:52 +0000
Received: by outflank-mailman (input) for mailman id 1245180;
 Wed, 04 Mar 2026 09:33:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3gGj=BE=oss.qualcomm.com=vijayanand.jitta@srs-se1.protection.inumbo.net>)
 id 1vxic2-00011U-Mc
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 09:33:50 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3e475509-17ad-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 10:33:48 +0100 (CET)
Received: from pps.filterd (m0279871.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 6249KdIv1455844
 for <xen-devel@lists.xenproject.org>; Wed, 4 Mar 2026 09:33:45 GMT
Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com
 [209.85.214.197])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cpj1801me-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 09:33:45 +0000 (GMT)
Received: by mail-pl1-f197.google.com with SMTP id
 d9443c01a7336-2ae65d5cc57so62979005ad.2
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 01:33:44 -0800 (PST)
Received: from [10.219.57.109] ([202.46.23.19])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2ae541358d4sm76250575ad.75.2026.03.04.01.33.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Mar 2026 01:33: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: 3e475509-17ad-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	olej/QuVyiT3XCCYbNDROqVlMJ/ZiroIS/6G24fqqXw=; b=jG7fGQ4v5uKwi+m6
	jYRS3LTZutxZaRvtn8jkQxwWB2a0rTwd5e4FuO+g0wWd5G6gGJcJF4AE1G5i+wFk
	OVKDaM+De548acZWpPzF3QrgKX7M0ybyyo9T9nH5iq1FCKDwI9itphQ7adIazLDh
	RCVUSxnyEZWmuQHAooPZDGtWaMjcWZ8Cwxhrap9wNj/tneGiKaSjMDD1SK277er9
	zx1qlz8KOShYrjRR+IbVJPOroaviNiAlxyRY0ZMUgNqTvVo0VGxfRXNQzqpcimU5
	5LEprhOHTQYA/7ocebT16KTOpnKkzt3JtoAKgir2XJgo30Zc72Ql1lf/KJbK5HwK
	TOtKHw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1772616824; x=1773221624; 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=olej/QuVyiT3XCCYbNDROqVlMJ/ZiroIS/6G24fqqXw=;
        b=PGuhz+lm2m3hsnHBlQw9ib9vrdWL7CD5Rv6Q/rlGSVnpzXQZLlXVtME4VDaiKobjHv
         VtElYb6VUdOiwGqeLHdlJynZIwDsURbo+8WN5qvVTyTAjUbcDArllaE+2a3Io45jHirb
         jRyE4dLv9LjY2U+kqj8P+cqQqZ44FFj/MGd69Wi1sL4MvXFdoJduHPGvLD5F36gKJrMz
         /lJP/yZQFFtI073Ee2H3WNB1PoAyS9sTC7ruk/aqJhUa7V7SeqGRfTzVPGiQ9Nqgr2NH
         oZRpfE/qvwT8sKt/BrJ8gviUHWeMkJkV0VwJyC3bAEx9GjDcNXBURxs4PnAJSg1q5z9R
         tUYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772616824; x=1773221624;
        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=olej/QuVyiT3XCCYbNDROqVlMJ/ZiroIS/6G24fqqXw=;
        b=Jaxt53OhTfZXBu749Fa1hR8sjCG9S1HsaKCUVz7sRxrzs+yxButdtnAIPT275k/eSe
         f1ee6KZws0pkaEvG1YGnJ79RL3Z3JUT9/5odZDZ7qAJRp/W6S2uWSIec3FC46cfxWNJ5
         xWJvg/0d3hB3CHiwBS6znaToCh+2rfdjjqHYrZOElJ+k07fxAre5Tfo7Pq1UXbavNg5P
         pEVlAtczOwV5EBWg9j55fyQWmzfO/1KWgFDb8td1SnczCQcnLAR82iFUO0mzGwQYDAAG
         a9BdZsxNZWHbgzI1U6MZS93O/RFqikOiFlKfxXaMSZ/jgQ/hPqOawNZPMK6aLGH2W/tc
         gspw==
X-Forwarded-Encrypted: i=1; AJvYcCWsTIJdfWlkQzZuNnZi/SACM1zuCJobPa3ap5pL2iY1HJ2ct9PR6QyDlCj9NbwvU6dURjXUnNQ+EjU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwCHkBQIo83NZob4ivxUtk7yEZ7srQw1nCr3tTridg14jOqdp95
	MCLW1H/yhMuyiTShjbsk7asPLvwO9tBcOuhN1d3HcCiW32ZlffH0hLVLWLJvGR2LzJPEZlBz8mZ
	v8H2H0kmqEFJDgGQEMJFTrbokN7wG554mJwCJMxBKlRkEqxGshYrZYemPTfrDqJK4CMBMqw==
X-Gm-Gg: ATEYQzwNnOkY2vJEWWGxuni3ow4OFgo/Li1tmFlfPrBc8V+wu0CZC4lHWSOavpKgAVF
	dCtfS8ovF91UW/YYkMbPQQ4cGUNEZJiD6NWo49Jk+nCZIFlaZUm6XKemNZHsfBKObmzQdM3Fbau
	ECMTISAob9LeY+K8SyWYGPzEs2JEvulgCqrJhUI2KlDd7BXZ0YrW2QlQFDNm7hakmriu3FvbplQ
	dtnfkmAtZKC74MA96/KPY5u2IAH9M3FVd6Y9mQsXQrobUve+3wFtMvwrOXGBcutFVxYAs4dgbij
	BAfqZkuCyx3ggIwDS4xn9n1VNAgxhUGZM0ts2ubBiHuafZ/UpOSrTMEZxR5heGYB3Yk+WGPWv22
	xI4pYUW2O+sYoEIMLwPnAc+7vmRkuMoDS8Cop4XY/72DjX85JIen2MGbW
X-Received: by 2002:a17:903:3586:b0:2ae:483f:b23b with SMTP id d9443c01a7336-2ae6aaae620mr19109905ad.32.1772616824005;
        Wed, 04 Mar 2026 01:33:44 -0800 (PST)
X-Received: by 2002:a17:903:3586:b0:2ae:483f:b23b with SMTP id d9443c01a7336-2ae6aaae620mr19109655ad.32.1772616823507;
        Wed, 04 Mar 2026 01:33:43 -0800 (PST)
Message-ID: <d3687764-024d-4dbc-9342-8edc9b4f1fdd@oss.qualcomm.com>
Date: Wed, 4 Mar 2026 15:02:14 +0530
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 1/3] of: Add convenience wrappers for of_map_id()
To: Marc Zyngier <maz@kernel.org>
Cc: Nipun Gupta <nipun.gupta@amd.com>,
        Nikhil Agarwal
 <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner
 <tglx@kernel.org>, Rob Herring <robh@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?UTF-8?Q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas
 <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski
 <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org
References: <20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com>
 <20260301-parse_iommu_cells-v9-1-4d1bceecc5e1@oss.qualcomm.com>
 <86342janlx.wl-maz@kernel.org>
Content-Language: en-US
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
In-Reply-To: <86342janlx.wl-maz@kernel.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Proofpoint-GUID: gPrIPuWDPDWSv3sVI6dBGPwhrJQWIOml
X-Proofpoint-ORIG-GUID: gPrIPuWDPDWSv3sVI6dBGPwhrJQWIOml
X-Authority-Analysis: v=2.4 cv=Ed7FgfmC c=1 sm=1 tr=0 ts=69a7fc79 cx=c_pps
 a=cmESyDAEBpBGqyK7t0alAg==:117 a=j4ogTh8yFefVWWEFDRgCtg==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22
 a=EUspDBNiAAAA:8 a=7CQSdrXTAAAA:8 a=VwQbUJbxAAAA:8 a=8AirrxEcAAAA:8
 a=xEgsDuFUHT4EKXnybycA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=1OuFwYUASf3TG4hYMiVC:22 a=a-qgeE7W1pNrGK8U0ZQC:22 a=ST-jHhOKWsTCqRlWije3:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA0MDA3MiBTYWx0ZWRfXww1T3Whyklwa
 ls5pvfv5Ox03jQhQiuelVVgiI9b1bg86e9xxsPgFbH9kSX6b3Sj993+bAHRVaIoqjBnVn34ZpNk
 A60OwvZYXzgj9idW1admPHNmeC3WRjL1d40jROM6yMTIEs9EHs6gpYv60KHeLbTOhYzdvIwGh2t
 RjlXD666y4q8CvElXYI2UGnwmQwbDJOuME+qP52ar2D+xXbc8FK/1vUwoZcHy/50hugIhihq7+V
 4rkS3xhdu5A3ehSR3WQMPRHnWJJ05ySf6F5V+qK7uFoQXP7VDNQHaQi1uZHc0oxk5dLOmHfemP0
 jHRv5K3HJHb72FPSgI0F7pCCBXhfkKpYlxlxsedgtV3wfas03oRw73m90n1cxfyuGd+60Y9EoMr
 SiyZ7YmEYCEFjhSz6cWLm3Kb8cdQbAeDXTLSKnmuOreNXgSmggj6EAwYXPoX46Z/eyI++h1DtNH
 tg0aHV9VgbrQxyl7uFg==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-04_05,2026-03-03_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 bulkscore=0 suspectscore=0 spamscore=0 adultscore=0 lowpriorityscore=0
 clxscore=1015 malwarescore=0 impostorscore=0 priorityscore=1501 phishscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603040072



On 3/1/2026 3:16 PM, Marc Zyngier wrote:
> On Sun, 01 Mar 2026 08:34:19 +0000,
> Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com> wrote:
>>
>> From: Robin Murphy <robin.murphy@arm.com>
>>
>> Since we now have quite a few users parsing "iommu-map" and "msi-map"
>> properties, give them some wrappers to conveniently encapsulate the
>> appropriate sets of property names. This will also make it easier to
>> then change of_map_id() to correctly account for specifier cells.
>>
>> Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
>> Reviewed-by: Frank Li <Frank.Li@nxp.com>
>> Signed-off-by: Robin Murphy <robin.murphy@arm.com>
>> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
>> ---
>>  drivers/cdx/cdx_msi.c                    |  3 +--
>>  drivers/iommu/of_iommu.c                 |  4 +---
>>  drivers/irqchip/irq-gic-its-msi-parent.c |  2 +-
>>  drivers/of/irq.c                         |  3 +--
>>  drivers/pci/controller/dwc/pci-imx6.c    |  6 ++----
>>  drivers/pci/controller/pcie-apple.c      |  3 +--
>>  drivers/xen/grant-dma-ops.c              |  3 +--
>>  include/linux/of.h                       | 14 ++++++++++++++
>>  8 files changed, 22 insertions(+), 16 deletions(-)
>>
>> diff --git a/drivers/cdx/cdx_msi.c b/drivers/cdx/cdx_msi.c
>> index 91b95422b263..63b3544ec997 100644
>> --- a/drivers/cdx/cdx_msi.c
>> +++ b/drivers/cdx/cdx_msi.c
>> @@ -128,8 +128,7 @@ static int cdx_msi_prepare(struct irq_domain *msi_domain,
>>  	int ret;
>>  
>>  	/* Retrieve device ID from requestor ID using parent device */
>> -	ret = of_map_id(parent->of_node, cdx_dev->msi_dev_id, "msi-map", "msi-map-mask",
>> -			NULL, &dev_id);
>> +	ret = of_map_msi_id(parent->of_node, cdx_dev->msi_dev_id, NULL, &dev_id);
>>  	if (ret) {
>>  		dev_err(dev, "of_map_id failed for MSI: %d\n", ret);
>>  		return ret;
>> diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
>> index 6b989a62def2..a511ecf21fcd 100644
>> --- a/drivers/iommu/of_iommu.c
>> +++ b/drivers/iommu/of_iommu.c
>> @@ -48,9 +48,7 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
>>  	struct of_phandle_args iommu_spec = { .args_count = 1 };
>>  	int err;
>>  
>> -	err = of_map_id(master_np, *id, "iommu-map",
>> -			 "iommu-map-mask", &iommu_spec.np,
>> -			 iommu_spec.args);
>> +	err = of_map_iommu_id(master_np, *id, &iommu_spec.np, iommu_spec.args);
>>  	if (err)
>>  		return err;
>>  
>> diff --git a/drivers/irqchip/irq-gic-its-msi-parent.c b/drivers/irqchip/irq-gic-its-msi-parent.c
>> index d36b278ae66c..b63343a227a9 100644
>> --- a/drivers/irqchip/irq-gic-its-msi-parent.c
>> +++ b/drivers/irqchip/irq-gic-its-msi-parent.c
>> @@ -180,7 +180,7 @@ static int of_pmsi_get_msi_info(struct irq_domain *domain, struct device *dev, u
>>  
>>  	struct device_node *msi_ctrl __free(device_node) = NULL;
>>  
>> -	return of_map_id(dev->of_node, dev->id, "msi-map", "msi-map-mask", &msi_ctrl, dev_id);
>> +	return of_map_msi_id(dev->of_node, dev->id, &msi_ctrl, dev_id);
>>  }
>>  
>>  static int its_pmsi_prepare(struct irq_domain *domain, struct device *dev,
>> diff --git a/drivers/of/irq.c b/drivers/of/irq.c
>> index 6367c67732d2..e37c1b3f8736 100644
>> --- a/drivers/of/irq.c
>> +++ b/drivers/of/irq.c
>> @@ -817,8 +817,7 @@ u32 of_msi_xlate(struct device *dev, struct device_node **msi_np, u32 id_in)
>>  	 * "msi-map" or an "msi-parent" property.
>>  	 */
>>  	for (parent_dev = dev; parent_dev; parent_dev = parent_dev->parent) {
>> -		if (!of_map_id(parent_dev->of_node, id_in, "msi-map",
>> -				"msi-map-mask", msi_np, &id_out))
>> +		if (!of_map_msi_id(parent_dev->of_node, id_in, msi_np, &id_out))
>>  			break;
>>  		if (!of_check_msi_parent(parent_dev->of_node, msi_np))
>>  			break;
>> diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
>> index a5b8d0b71677..bff8289f804a 100644
>> --- a/drivers/pci/controller/dwc/pci-imx6.c
>> +++ b/drivers/pci/controller/dwc/pci-imx6.c
>> @@ -1144,8 +1144,7 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
>>  	u32 sid = 0;
>>  
>>  	target = NULL;
>> -	err_i = of_map_id(dev->of_node, rid, "iommu-map", "iommu-map-mask",
>> -			  &target, &sid_i);
>> +	err_i = of_map_iommu_id(dev->of_node, rid, &target, &sid_i);
>>  	if (target) {
>>  		of_node_put(target);
>>  	} else {
>> @@ -1158,8 +1157,7 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
>>  	}
>>  
>>  	target = NULL;
>> -	err_m = of_map_id(dev->of_node, rid, "msi-map", "msi-map-mask",
>> -			  &target, &sid_m);
>> +	err_m = of_map_msi_id(dev->of_node, rid, &target, &sid_m);
>>  
>>  	/*
>>  	 *   err_m      target
>> diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
>> index 2d92fc79f6dd..a0937b7b3c4d 100644
>> --- a/drivers/pci/controller/pcie-apple.c
>> +++ b/drivers/pci/controller/pcie-apple.c
>> @@ -764,8 +764,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
>>  	dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
>>  		pci_name(pdev->bus->self), port->idx);
>>  
>> -	err = of_map_id(port->pcie->dev->of_node, rid, "iommu-map",
>> -			"iommu-map-mask", NULL, &sid);
>> +	err = of_map_iommu_id(port->pcie->dev->of_node, rid, NULL, &sid);
>>  	if (err)
>>  		return err;
>>  
>> diff --git a/drivers/xen/grant-dma-ops.c b/drivers/xen/grant-dma-ops.c
>> index c2603e700178..1b7696b2d762 100644
>> --- a/drivers/xen/grant-dma-ops.c
>> +++ b/drivers/xen/grant-dma-ops.c
>> @@ -325,8 +325,7 @@ static int xen_dt_grant_init_backend_domid(struct device *dev,
>>  		struct pci_dev *pdev = to_pci_dev(dev);
>>  		u32 rid = PCI_DEVID(pdev->bus->number, pdev->devfn);
>>  
>> -		if (of_map_id(np, rid, "iommu-map", "iommu-map-mask", &iommu_spec.np,
>> -				iommu_spec.args)) {
>> +		if (of_map_iommu_id(np, rid, &iommu_spec.np, iommu_spec.args)) {
>>  			dev_dbg(dev, "Cannot translate ID\n");
>>  			return -ESRCH;
>>  		}
>> diff --git a/include/linux/of.h b/include/linux/of.h
>> index be6ec4916adf..824649867810 100644
>> --- a/include/linux/of.h
>> +++ b/include/linux/of.h
>> @@ -1457,6 +1457,20 @@ static inline int of_property_read_s32(const struct device_node *np,
>>  	return of_property_read_u32(np, propname, (u32*) out_value);
>>  }
>>  
>> +static inline int of_map_iommu_id(const struct device_node *np, u32 id,
>> +				  struct device_node **target, u32 *id_out)
>> +{
>> +	return of_map_id(np, id, "iommu-map", "iommu-map-mask",
>> +			 target, id_out);
>> +}
>> +
>> +static inline int of_map_msi_id(const struct device_node *np, u32 id,
>> +				struct device_node **target, u32 *id_out)
>> +{
>> +	return of_map_id(np, id, "msi-map", "msi-map-mask",
>> +			 target, id_out);
>> +}
>> +
> 
> Any particular reason why this is made inline instead of out of line
> in of/base.c? Also, some documentation would be helpful for the
> aspiring hackers dipping into this.
> 
> Other than that,
> 
> Acked-by: Marc Zyngier <maz@kernel.org>
> 
> 	M.
> 

Thanks Marc.

I made them static inline mainly because they’re just trivial wrappers
around of_map_id(), so keeping them in include/linux/of.h avoids adding
new global symbols/exports and keeps the callsites simple (similar to
the existing of_property_read_*() inline wrappers).

That said, I don’t have a strong preference—if you’d rather have
out-of-line helpers in drivers/of/base.c, I’m happy to respin accordingly.

Re Documentation, Sure I'll add comments for of_map_iommu_id() and
of_map_msi_id() in follow up patch.

Thanks,
Vijay





From xen-devel-bounces@lists.xenproject.org Wed Mar 04 09:34:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 09:34:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245186.1544563 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxicj-0001V3-EG; Wed, 04 Mar 2026 09:34:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245186.1544563; Wed, 04 Mar 2026 09:34:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxicj-0001Uw-AF; Wed, 04 Mar 2026 09:34:33 +0000
Received: by outflank-mailman (input) for mailman id 1245186;
 Wed, 04 Mar 2026 09:34: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=3gGj=BE=oss.qualcomm.com=vijayanand.jitta@srs-se1.protection.inumbo.net>)
 id 1vxich-0001Ug-P6
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 09:34:31 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 56c78cb7-17ad-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 10:34:28 +0100 (CET)
Received: from pps.filterd (m0279869.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 6245Sf2Y2861376
 for <xen-devel@lists.xenproject.org>; Wed, 4 Mar 2026 09:34:27 GMT
Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com
 [209.85.216.70])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cp2c9kcsc-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 09:34:27 +0000 (GMT)
Received: by mail-pj1-f70.google.com with SMTP id
 98e67ed59e1d1-359918118ebso7750008a91.2
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 01:34:27 -0800 (PST)
Received: from [10.219.57.109] ([202.46.23.19])
 by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-359a8d65b31sm500720a91.0.2026.03.04.01.34.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Mar 2026 01: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: 56c78cb7-17ad-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	HgNePX7ca+FZHnkRpuhdJQZhOY6UQv+RvgcyupQpELQ=; b=JFVTiT7lxucAne5+
	vWI+HQTpVk9V3jWmx1PWUucrFvamP0yDOFY034alLz3ZBgzIEfMi0MS4uquN1hh8
	EI7aXuxp6dMz6qO68oU/aQSWUICNJo/sGcNoD0kPndEVtSWs5OCjVP5rcLH80Phg
	ky3wGQTwGMI2mB5E91AT27+H0OF6l0sY8Q3oWToivevSOK2GADQjRFKwWcBWEA11
	9S/eTjbdqGKh/aZMhmaHEf1pdgu2dgjd13zO95DicZf3Ff6fn+rEkPSwwJQABuHd
	scgJ1dbD5faRcuu9tqpogs2bthEi90+/7K8PlySiEJVEWT4ZR/QIh7aqipwVG5tU
	9sDJBA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1772616866; x=1773221666; 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=HgNePX7ca+FZHnkRpuhdJQZhOY6UQv+RvgcyupQpELQ=;
        b=Scrxj3RuAIAsTGa1+PiBWfh9OJccHtZbcPIEWh5DcpqJ+CsrqQ8xCPxAv3oXIWobFV
         olxOsS5FLy881tULhe6OarqbQW1eHKq7IHNPAxabPH9Uc3ftlSuPNm7VIfGQdp9LhTEX
         wvzQ88aPcAOVHpun/B/xLuwcqAXEVKWEwKMc7IBn/OCgJhK3G4hKl4TgeZzd9F1dAkSm
         j3ziyC29nzOqvy0zY/HF8SQnyGIMS48+SdzmOLwwDC+YqPuKRuSmPqBWVZWisvsGfhJZ
         3unf/8pzAdA2IiRaso2p8+cr4gA5GTZ51Bkty4eWWA3KWiK/CWZJ4Lo69vBq9IX38RIO
         jBiA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772616866; x=1773221666;
        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=HgNePX7ca+FZHnkRpuhdJQZhOY6UQv+RvgcyupQpELQ=;
        b=AXBWGlIkxU8qsG3Zo+M12hT5/I8wFTUjw6hU4N0tZEiIJKYHD58AxcLn9l8SSCodsi
         BB7J3xMo43RSKwWZez9+jFXwHJrz/EMOvfOYNdckD9/bLkr8Cy46Y4LYSoePRRLjd1VL
         QBgcLmkjAoDcurKlSuQ8uNpC6mt+WVcGkFtGELIjf2+SJ+8Ff+hhZXJPCxjPlJP4LiL9
         xBD0BUJe4ivZLv8JQZ8CkOyMpGkICMuux5adB//1VvOeznwqVCK0lbSUaHVD7EklbzVh
         lQcVAcUgVvH2Sa3LCBK/Ig5yqi2YUZ8x6uIVP1wTVQ1Tji2RHuMhL8oL0wysVIxZLgzw
         K+Hg==
X-Forwarded-Encrypted: i=1; AJvYcCXdfqEmXyhjMaLmFK011eHM3frTtEg8Tg1PG4u1it7syIW5JcBtMKZOlOoItS2h6TcatGdfM7iIk0A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwLQq2T7NtgxWTZgdmkHd2RmffbuNbW1pDFiEOmipeXGKDEOtx2
	VnrV94j2HJDxEOhe30R6hVojCncnEAI3QxCSGpGhU8wTVu1KUkaClZf3qnL9fJ2y73dPDy9hYWj
	+Jkddn2+Va9eKshB+cMHPbvobhgw9e6e8CW1JuwZWIdcezY3cvolVYWwzt5u8nDnNdfsSPg==
X-Gm-Gg: ATEYQzzpvzUnNV0eXqHO/pg8138364tI6B+Y0+7Xy3dMvAX1hGY5wpP7v7/E7cnRpFe
	ZsBqw29JkSZ7k3Vu6ngSygI/rwWQLBQrLxGGbqgQBG4Crpq4Fh/R2vTYgTrpgA4si0QlK5EnjAe
	mFnFbBsh+FqLbN9ju+M0zCbAD42aoAdFmTGUg7P+setE3Y+zWmysO99iDsj6mECu2Cb8mVECvPF
	bHzb096RupU4Km+/uvwHcqxZaHKowi0XkT1+n2LRRctodpGRwu1g6JKuA50zvFMBVFTwT2KvWzB
	KQWN2xG76MjHImXs2Dn3d+avedXrsyj+uvVU6UCDXTQnOKDFtmviIYc2VQi+lpFUIayyoSg85s3
	sZEafp2jyUtRW3JGsmgOkMW20pOAEt+KgVUBZDcxinL1/P5lpFelxLEyt
X-Received: by 2002:a17:90b:2691:b0:349:2154:eef4 with SMTP id 98e67ed59e1d1-359a69c0d3dmr1241348a91.5.1772616866193;
        Wed, 04 Mar 2026 01:34:26 -0800 (PST)
X-Received: by 2002:a17:90b:2691:b0:349:2154:eef4 with SMTP id 98e67ed59e1d1-359a69c0d3dmr1241312a91.5.1772616865529;
        Wed, 04 Mar 2026 01:34:25 -0800 (PST)
Message-ID: <4bc86c4d-3a4e-4ece-a01f-dce735ee9bd3@oss.qualcomm.com>
Date: Wed, 4 Mar 2026 15:04:13 +0530
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 2/3] of: factor arguments passed to of_map_id() into a
 struct
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: Nipun Gupta <nipun.gupta@amd.com>,
        Nikhil Agarwal
 <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>, Rob Herring <robh@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?UTF-8?Q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas
 <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski
 <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
References: <20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com>
 <20260301-parse_iommu_cells-v9-2-4d1bceecc5e1@oss.qualcomm.com>
 <grcqbs42seqxmes7lm527kwhqf6osherykg6pc3w5voubd72rn@hncfl3oforza>
Content-Language: en-US
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
In-Reply-To: <grcqbs42seqxmes7lm527kwhqf6osherykg6pc3w5voubd72rn@hncfl3oforza>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA0MDA3MiBTYWx0ZWRfXwOt5a71sSCNJ
 7kNpE5LkbgtC8k5WXPJjy4Q1iRJhINCvWGcbwjx+89cO+5ADR5HaDWIDX/DY4hJb44IpCj6nbtu
 +Chy01zsq7MG+PXdfRntYyT/5om3+he5pPkxP0DhzKGKDWo9bWn9O95snSnUCK3DecN5De0/Huz
 Q4HKHcY9zTckDH0dXRI8ajJWqn9QS95BhYZk8dfxdbMWHwYYBn8O9v8BOi+XnPIrEAXA/7Ko4IL
 eRrtSCbPg2dSykGXYrq/44rI0gF+jQ6bYM8ByraQLAOPLbJJtERiyKW1/SBs74E0hsx1wpieLJn
 6b1rkz7WudvyglT82YbsWEoCclH6VfZiQOzGf0QJpGjDXzOUcS2/obn5n8jTd2c/W/O8DOgrvu7
 rdhUgx6F/Q70TpuG86K7+hKYkL+dTh+7gZ/I+wDLMY5fJTxERAphyCPSUb1xYHPqzpnu80lj4jZ
 7V4C51dRclE8jJwfOPg==
X-Proofpoint-ORIG-GUID: SHv01H7QYpiVWvg2iJORcrsAdPAmGW9b
X-Proofpoint-GUID: SHv01H7QYpiVWvg2iJORcrsAdPAmGW9b
X-Authority-Analysis: v=2.4 cv=EefFgfmC c=1 sm=1 tr=0 ts=69a7fca3 cx=c_pps
 a=0uOsjrqzRL749jD1oC5vDA==:117 a=j4ogTh8yFefVWWEFDRgCtg==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22
 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=MLUpyK7X_zb698vRSG8A:9 a=3ZKOabzyN94A:10
 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-04_05,2026-03-03_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 malwarescore=0 spamscore=0 bulkscore=0 adultscore=0 impostorscore=0
 phishscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0
 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000
 definitions=main-2603040072



On 3/1/2026 3:32 PM, Dmitry Baryshkov wrote:
> On Sun, Mar 01, 2026 at 02:04:20PM +0530, Vijayanand Jitta wrote:
>> From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
>>
>> Change of_map_id() to take a pointer to struct of_phandle_args
>> instead of passing target device node and translated IDs separately.
>> Update all callers accordingly.
>>
>> Subsequent patch will make use of the args_count field in
>> struct of_phandle_args.
>>
>> Suggested-by: Rob Herring (Arm) <robh@kernel.org>
>> Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
>> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
>> ---
>>  drivers/iommu/of_iommu.c              |  2 +-
>>  drivers/of/base.c                     | 37 +++++++++++++++++------------------
>>  drivers/pci/controller/dwc/pci-imx6.c |  8 +++++++-
>>  drivers/pci/controller/pcie-apple.c   |  4 +++-
>>  drivers/xen/grant-dma-ops.c           |  2 +-
>>  include/linux/of.h                    | 21 +++++++++++++-------
>>  6 files changed, 44 insertions(+), 30 deletions(-)
>>
> 
>> @@ -2193,11 +2193,10 @@ int of_map_id(const struct device_node *np, u32 id,
>>  	}
>>  
>>  	pr_info("%pOF: no %s translation for id 0x%x on %pOF\n", np, map_name,
>> -		id, target && *target ? *target : NULL);
>> +		id, arg->np ? arg->np : NULL);
> 
> Is it just 'args->np' then? If it's NULL, it's NULL anyway.
> 
Right, will update this.

>>  
>>  	/* Bypasses translation */
>> -	if (id_out)
>> -		*id_out = id;
>> +	arg->args[0] = id;
>>  	return 0;
>>  }
>>  EXPORT_SYMBOL_GPL(of_map_id);
>> diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
>> index bff8289f804a..74fc603b3f84 100644
>> --- a/drivers/pci/controller/dwc/pci-imx6.c
>> +++ b/drivers/pci/controller/dwc/pci-imx6.c
>> @@ -1139,12 +1139,18 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
>>  {
>>  	struct device *dev = imx_pcie->pci->dev;
>>  	struct device_node *target;
>> +	struct of_phandle_args iommu_spec = { .args_count = 1 };
>>  	u32 sid_i, sid_m;
>>  	int err_i, err_m;
>>  	u32 sid = 0;
>>  
>>  	target = NULL;
>> -	err_i = of_map_iommu_id(dev->of_node, rid, &target, &sid_i);
>> +	err_i = of_map_iommu_id(dev->of_node, rid, &iommu_spec);
>> +	if (!err_i) {
>> +		target = iommu_spec.np;
>> +		sid_i = iommu_spec.args[0];
>> +	}
>> +
>>  	if (target) {
>>  		of_node_put(target);
>>  	} else {
>> diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
>> index a0937b7b3c4d..e1d4b37d200d 100644
>> --- a/drivers/pci/controller/pcie-apple.c
>> +++ b/drivers/pci/controller/pcie-apple.c
>> @@ -755,6 +755,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
>>  {
>>  	u32 sid, rid = pci_dev_id(pdev);
>>  	struct apple_pcie_port *port;
>> +	struct of_phandle_args iommu_spec = { .args_count = 1 };
>>  	int idx, err;
>>  
>>  	port = apple_pcie_get_port(pdev);
>> @@ -764,10 +765,11 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
>>  	dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
>>  		pci_name(pdev->bus->self), port->idx);
>>  
>> -	err = of_map_iommu_id(port->pcie->dev->of_node, rid, NULL, &sid);
>> +	err = of_map_iommu_id(port->pcie->dev->of_node, rid, &iommu_spec);
>>  	if (err)
>>  		return err;
> 
> of_node_put(iommu_spec.np);
> 

Sure, will add this.

>>  
>> +	sid = iommu_spec.args[0];
>>  	mutex_lock(&port->pcie->lock);
>>  
>>  	idx = bitmap_find_free_region(port->sid_map, port->sid_map_sz, 0);
>> diff --git a/drivers/xen/grant-dma-ops.c b/drivers/xen/grant-dma-ops.c
>> index 1b7696b2d762..5f1d6540049a 100644
>> --- a/drivers/xen/grant-dma-ops.c
>> +++ b/drivers/xen/grant-dma-ops.c
>> @@ -325,7 +325,7 @@ static int xen_dt_grant_init_backend_domid(struct device *dev,
>>  		struct pci_dev *pdev = to_pci_dev(dev);
>>  		u32 rid = PCI_DEVID(pdev->bus->number, pdev->devfn);
>>  
>> -		if (of_map_iommu_id(np, rid, &iommu_spec.np, iommu_spec.args)) {
>> +		if (of_map_iommu_id(np, rid, &iommu_spec)) {
>>  			dev_dbg(dev, "Cannot translate ID\n");
>>  			return -ESRCH;
>>  		}
>> diff --git a/include/linux/of.h b/include/linux/of.h
>> index 824649867810..9d72d76f909d 100644
>> --- a/include/linux/of.h
>> +++ b/include/linux/of.h
>> @@ -463,7 +463,7 @@ bool of_console_check(const struct device_node *dn, char *name, int index);
>>  
>>  int of_map_id(const struct device_node *np, u32 id,
>>  	       const char *map_name, const char *map_mask_name,
>> -	       struct device_node **target, u32 *id_out);
>> +	       struct of_phandle_args *arg);
>>  
>>  phys_addr_t of_dma_get_max_cpu_address(struct device_node *np);
>>  
>> @@ -929,7 +929,7 @@ static inline void of_property_clear_flag(struct property *p, unsigned long flag
>>  
>>  static inline int of_map_id(const struct device_node *np, u32 id,
>>  			     const char *map_name, const char *map_mask_name,
>> -			     struct device_node **target, u32 *id_out)
>> +			     struct of_phandle_args *arg)
>>  {
>>  	return -EINVAL;
>>  }
>> @@ -1458,17 +1458,24 @@ static inline int of_property_read_s32(const struct device_node *np,
>>  }
>>  
>>  static inline int of_map_iommu_id(const struct device_node *np, u32 id,
>> -				  struct device_node **target, u32 *id_out)
>> +				  struct of_phandle_args *arg)
> 
> Document that it's the caller's responsibility to of_node_put() returned
> node. As it can be seen from the previous comment, it's not obvious.
> 

Sure, will add comment regarding this.

>>  {
>> -	return of_map_id(np, id, "iommu-map", "iommu-map-mask",
>> -			 target, id_out);
>> +	return of_map_id(np, id, "iommu-map", "iommu-map-mask", arg);
>>  }
>>  
>>  static inline int of_map_msi_id(const struct device_node *np, u32 id,
>>  				struct device_node **target, u32 *id_out)
> 
> Is there a reason for chaning the of_map_iommu_id() args but not
> of_map_msi_id() args?
> 
 
Thanks for pointing this out. I’ll update the series to keep of_map_iommu_id()
and of_map_msi_id() aligned.

>>  {
>> -	return of_map_id(np, id, "msi-map", "msi-map-mask",
>> -			 target, id_out);
>> +	struct of_phandle_args msi_spec = { .np = *target, .args_count = 1 };
> 
> Which driver passes something being worth of storing in .np?
> 

You're right, There is no need to store these input args. Will remove these initializations.

Thanks,
Vijay

>> +	int ret;
>> +
>> +	ret = of_map_id(np, id, "msi-map", "msi-map-mask", &msi_spec);
>> +	if (!ret) {
>> +		*target = msi_spec.np;
>> +		*id_out = msi_spec.args[0];
>> +	}
>> +
>> +	return ret;
>>  }
>>  
>>  #define of_for_each_phandle(it, err, np, ln, cn, cc)			\
>>
>> -- 
>> 2.34.1
>>
> 


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 09:34:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 09:34:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245188.1544572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxicw-0001s0-Kw; Wed, 04 Mar 2026 09:34:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245188.1544572; Wed, 04 Mar 2026 09:34:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxicw-0001rp-HW; Wed, 04 Mar 2026 09:34:46 +0000
Received: by outflank-mailman (input) for mailman id 1245188;
 Wed, 04 Mar 2026 09:34: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=3gGj=BE=oss.qualcomm.com=vijayanand.jitta@srs-se1.protection.inumbo.net>)
 id 1vxicv-0001Ug-LK
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 09:34:45 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5fe27856-17ad-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 10:34:43 +0100 (CET)
Received: from pps.filterd (m0279871.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 6249Kun41456217
 for <xen-devel@lists.xenproject.org>; Wed, 4 Mar 2026 09:34:42 GMT
Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com
 [209.85.216.70])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cpj1801tv-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 09:34:42 +0000 (GMT)
Received: by mail-pj1-f70.google.com with SMTP id
 98e67ed59e1d1-354490889b6so23311371a91.3
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 01:34:42 -0800 (PST)
Received: from [10.219.57.109] ([202.46.23.19])
 by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-359a8d65b31sm500720a91.0.2026.03.04.01.34.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Mar 2026 01:34: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: 5fe27856-17ad-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	eL/MxpDDt/5/2ALudUSxO1nN1iy4vdaNTzKBdYqEsSk=; b=eKEnwxk08ZSuuIb5
	kLnhOzDXKxPW3zLqbJ5i4X54fIBV8ekw6WA+QDZnIeum2m6HgZKdTzX4cPzMLchr
	5neNVC9YrL0B3EGsnHNgfXT05VeYt225ETdM/AVXVP7//SkXB+1NzN8TeDk5RuFC
	27wO/Anxs1VGEBZa4acXnCLLVSO0dORMonWjSO3FqxuXk8a43Wx2H73d1BKdA4cE
	cxQQpibSkWaWAkJiWBDKtr7fW54WyW1SeY84/O6qB+m+jZ3tI0VcQa8JbqlDPGP8
	LB1IrM9dcfY+1udtjPx+AYfb3o7TgoA/Gyl6T/sV5VyaqTfN5LbziEYbwNJlrEhZ
	gV/dBg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1772616882; x=1773221682; 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=eL/MxpDDt/5/2ALudUSxO1nN1iy4vdaNTzKBdYqEsSk=;
        b=ennUz2CnSnfHhWAsZQPKMoTlyZlJOcl+ytMWVqlJCjrzijy0eFi4Ib9+ZqUdRXCmBZ
         7GMwNlgjypji+YRjUTKlVWFsyJxFA2F3Yd6J0/SW+Ztf2c4RkMSBs5bMevwFn9vw/2Zv
         6h+JavABYIyfZR9crcItTZ9Hvze2Zt2QxFNCmScU6fMHullPJzRhZPsBD881U5BW33cZ
         9p4gaRQEsJjpJdoJb1KLW3FpV0WzqeTo4cAjhKytwcjBSPRvOcvGrvc4sitO8DDFOMth
         WEohUjgdX6xv/7VRzZh7/S/D4acdRMa1ljWuO7Lfb7lVE3Jf03LcX5BqG/XGYm12RNXS
         SDtw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772616882; x=1773221682;
        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=eL/MxpDDt/5/2ALudUSxO1nN1iy4vdaNTzKBdYqEsSk=;
        b=rmzfFFcVpaPlDklLhtZUS0kuX3BTP5wrM+PQdX64WvD004x1MComuMpOluYdp151tS
         KQ2CYuKgpa1HeSHNuqI35wzVtXf95G884k7plsV1crd42Rx2BMSmaG73/Ryo6MKNIFKY
         AigvAtIIVmA/0UXQ2fi/ENICwce7K3yK3HU1pPRZ4AZBsiTaHUr0PuSOuOhoeP0ydijZ
         riVx2fwgPTJmyrmGHZO3rlh0pbPBScl8/K15RuODGWekuFB2IFWw0B+9W8TJWWsK0+EE
         W17ZpiuGl9WIbocA/JWkyPmSI2TE69kKi/OFe/5NdRhysqM9LfBbFahlhcVbQZHBaUc8
         rWKw==
X-Forwarded-Encrypted: i=1; AJvYcCWuslrIOsmXuHK1N0mfoiPbwl1+4LhmUePGqbyt+2PwKk3CnvnUA9vV1istBLK79g6io2Yv5s/xlhI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxBgtl5Qn1kKnpSmKlm+1UKG0QMqe4FJbhYBs10IvsEWUUzW+NT
	Fudz3XPpjHYAgrWaW63hWwenN4BzAwYXwz4LlZ2UFvM6ZgX6Dn3Yyxi7o7sJQ6pVgUfiFNySGn0
	r49wzYVbLbEAJQ8qPylLavS9Bru75/75WTOjzGtOR0hasLeRhAWCQLO3BZcBy5+xAJc3rxA==
X-Gm-Gg: ATEYQzzm1DsrKmEqLktGKreb0POrpKchuBNEicZkUvejojB8ywTz13yPXhMYfno6q/i
	I04VVc3SjCG3REzentz1+iZ3LELXPB5c5XC99eMVW3+KatiaBzJj4agrVfbHX6GDqYJ6FpQ+LxE
	4eaVe1MmRZhr2Cg/7XnB7WH4YmpGeXGHX0orpvaZn3jrxqB0QvctuAMvnU9DmTab1W2G0aM+/xd
	6xwPKaHRH2qOShtQkAjVc79SsS5NPBv7ISE9137EcGti2ktdsQH2aoxYAsPCjDHgE3eGYrBPrKY
	9U4wXcql8PVkod2aa6JJN96QIyrkXZpYM40FVu76LSQhror/RuhAerEmGM9BVMXPAfWIw1saz/W
	eRamQPtZ2sIfXHa5yLWdVeBfqtqJ525uWPEl6NMINyDZZRR6wKNS1c5P7
X-Received: by 2002:a17:90b:5784:b0:359:8cad:bcdc with SMTP id 98e67ed59e1d1-359a69d6372mr1471625a91.10.1772616881617;
        Wed, 04 Mar 2026 01:34:41 -0800 (PST)
X-Received: by 2002:a17:90b:5784:b0:359:8cad:bcdc with SMTP id 98e67ed59e1d1-359a69d6372mr1471607a91.10.1772616881094;
        Wed, 04 Mar 2026 01:34:41 -0800 (PST)
Message-ID: <ebeb6f4b-4195-4e9f-b211-a8e11a875b7a@oss.qualcomm.com>
Date: Wed, 4 Mar 2026 15:04:30 +0530
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 2/3] of: factor arguments passed to of_map_id() into a
 struct
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: Nipun Gupta <nipun.gupta@amd.com>,
        Nikhil Agarwal
 <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>, Rob Herring <robh@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?UTF-8?Q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas
 <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski
 <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
References: <20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com>
 <20260301-parse_iommu_cells-v9-2-4d1bceecc5e1@oss.qualcomm.com>
 <bo5kb53hrzvl6e5mctvnpqluobdgbpq4x3m5ca7mwtfnl53npw@7axqsph2vyqd>
Content-Language: en-US
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
In-Reply-To: <bo5kb53hrzvl6e5mctvnpqluobdgbpq4x3m5ca7mwtfnl53npw@7axqsph2vyqd>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Proofpoint-GUID: XspXn515PnmnapL6GL7n1AZwCDAJaH6V
X-Proofpoint-ORIG-GUID: XspXn515PnmnapL6GL7n1AZwCDAJaH6V
X-Authority-Analysis: v=2.4 cv=Ed7FgfmC c=1 sm=1 tr=0 ts=69a7fcb2 cx=c_pps
 a=0uOsjrqzRL749jD1oC5vDA==:117 a=j4ogTh8yFefVWWEFDRgCtg==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22
 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=kVzFkbBwBCoyR44kgfkA:9 a=QEXdDO2ut3YA:10
 a=mQ_c8vxmzFEMiUWkPHU9:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA0MDA3MiBTYWx0ZWRfXxxBom8ZN0eMZ
 ispw6LZFd724n/Lb2bSCbI97PalpwYGNviVBwg7V8X8l4atLFg0FwPvWFsZJloDKzV2QEVu5648
 Zy6euuaAcfJEMSPdJVoP6LQO7GVQ+fjiBBtAtmcdvFl78flzK/iNMkkzUaDkgefRmlsGLqx3/Ub
 ngTtzPCpmakoFZ8Ssh6/7RAeww2VoljqT/CUdAQBQ4Ec1293HyjbosEj7pZ8lsoOt5bSOC9mnR9
 nTRK4TDmtFvZOrWk4HP5vQO+0NPmh2q839jWIGBoHWbfHKt74N+xh81o1Lh8zUUSgz2OTdXT8H8
 GySTwTgwkP0JHDdx0ztdDmvHPdUbTaWO2KyoMJg1GWedBVEyWA67oLDDvlnssE94LCZcG1AjovK
 LxZhbCP5F+gRna1r5FrkBazyN4FuqbcK2QVt70Fq5+z4bQkeyziyRDsLuoIuD7Mk0okte1aHNiX
 OwAgJ37QruQsmGpyAzA==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-04_05,2026-03-03_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 bulkscore=0 suspectscore=0 spamscore=0 adultscore=0 lowpriorityscore=0
 clxscore=1015 malwarescore=0 impostorscore=0 priorityscore=1501 phishscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603040072



On 3/1/2026 4:29 PM, Dmitry Baryshkov wrote:
> On Sun, Mar 01, 2026 at 02:04:20PM +0530, Vijayanand Jitta wrote:
>> From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
>>
>> Change of_map_id() to take a pointer to struct of_phandle_args
>> instead of passing target device node and translated IDs separately.
>> Update all callers accordingly.
>>
>> Subsequent patch will make use of the args_count field in
>> struct of_phandle_args.
>>
>> Suggested-by: Rob Herring (Arm) <robh@kernel.org>
>> Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
>> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
>> ---
>>  drivers/iommu/of_iommu.c              |  2 +-
>>  drivers/of/base.c                     | 37 +++++++++++++++++------------------
>>  drivers/pci/controller/dwc/pci-imx6.c |  8 +++++++-
>>  drivers/pci/controller/pcie-apple.c   |  4 +++-
>>  drivers/xen/grant-dma-ops.c           |  2 +-
>>  include/linux/of.h                    | 21 +++++++++++++-------
>>  6 files changed, 44 insertions(+), 30 deletions(-)
>>
>> diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
>> index a0937b7b3c4d..e1d4b37d200d 100644
>> --- a/drivers/pci/controller/pcie-apple.c
>> +++ b/drivers/pci/controller/pcie-apple.c
>> @@ -755,6 +755,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
>>  {
>>  	u32 sid, rid = pci_dev_id(pdev);
>>  	struct apple_pcie_port *port;
>> +	struct of_phandle_args iommu_spec = { .args_count = 1 };
> 
> Hmm, I didn't notice this. Parsing functions are expected to ignore
> of_phandle_args before the parsing. So passing .args_count = 1 is
> strange.
> 

You're right, This is not required. I'll remove these initializations in next 
series.

Thanks,
Vijay

>>  	int idx, err;
>>  
>>  	port = apple_pcie_get_port(pdev);
> 



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 09:35:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 09:35:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245201.1544582 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxidR-0002WW-Rw; Wed, 04 Mar 2026 09:35:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245201.1544582; Wed, 04 Mar 2026 09:35:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxidR-0002WO-P7; Wed, 04 Mar 2026 09:35:17 +0000
Received: by outflank-mailman (input) for mailman id 1245201;
 Wed, 04 Mar 2026 09:35:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3gGj=BE=oss.qualcomm.com=vijayanand.jitta@srs-se1.protection.inumbo.net>)
 id 1vxidQ-0001p4-6i
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 09:35:16 +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 71bcb6dd-17ad-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 10:35:14 +0100 (CET)
Received: from pps.filterd (m0279865.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 6245TGeh1679276
 for <xen-devel@lists.xenproject.org>; Wed, 4 Mar 2026 09:35:12 GMT
Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com
 [209.85.215.198])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cp73ha95s-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 09:35:12 +0000 (GMT)
Received: by mail-pg1-f198.google.com with SMTP id
 41be03b00d2f7-c70f137aa4aso3935512a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 01:35:12 -0800 (PST)
Received: from [10.219.57.109] ([202.46.23.19])
 by smtp.gmail.com with ESMTPSA id
 41be03b00d2f7-c73790f881esm1186795a12.10.2026.03.04.01.35.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Mar 2026 01:35: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: 71bcb6dd-17ad-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	t80u5LhNs8dedbnLQe3vnPgp0bI1VMt5bD83HvKUNdE=; b=g1/MgbWp9GnnXzTd
	dYgjmB5pE0P9xO0EdT20U1vIXpi5wS3RFe61V/EBK+qRPr9eONuDqjb9UYV2umU/
	XCP7CoOKVrwU57sHnaAy4LUA4efHqaLUfjweLNBhhI7Q2qzZR8QazjyrvWniEyPb
	QQYK28Z1sRZka2ZE29KDYJXFNg/0EdRPi/TmeNbb4jH6w3G5fmFZKHC+H/PiUrdc
	PTgx64nHg5jzDRyyzQ51s1Le/VaT5IGp7W8hsfQ7Yb6zp3JOAUrD3gO0jK5zYDmi
	9lS2S2AOKeuSXQde+RvkHYShPDF/QlA7jTobiMPM3THAv1Ntk1wMS10nDiGYvKV5
	Hm/DGg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1772616912; x=1773221712; 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=t80u5LhNs8dedbnLQe3vnPgp0bI1VMt5bD83HvKUNdE=;
        b=BII/8yAkyBbmFkPTGyuSFcqj4pFgi9dfWM2SQ5ZmWXAFxh9vXEM9cQs9AbkvNH6BkV
         KL874RIZmQTLxh6xukjolnlazzx0xeUXbJw656UBNNRvf+D7NnhQi4PRePCIBb99vahp
         FGcTDxUxsmy494iayct4UHMfM0d0UoNaMC1XqDhWFmwvHcKABRCrHfWT0pLuBpOIUmv1
         koM2DECMdLAFfS27sF31J3pE3zuI47qOwZ8L82TKH7VsHGcjbvv0TDizf6E9ElBreu/b
         Cnm0JfjcXqvwtM2dhicwmGHKDiQSEXj+wxVMjpdfz0gofdsBoKoJFZSiKUj+1R3lsEYK
         KcOg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772616912; x=1773221712;
        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=t80u5LhNs8dedbnLQe3vnPgp0bI1VMt5bD83HvKUNdE=;
        b=rn1poLbPXeTnQGW9wAze76Vli0JZFZ/Cznk8U6unaJFTtXwun8m91aP2XWOKkuuQbL
         GkluF8C8BneNiBA5e1uQaeVGQQ4ST6B9FP/vR8Z7/Zo7ZaOnWZgGjQCcg/HO5zPLmTyI
         053D5A2Wt6HHvTVrxPMLbtys5tLZUHzLVcAXITLQAGPo/cPiFbTsPBjkcMmDO5i5psgk
         0+Ax81QwSeqlpkF82ZWz34eIoHDRILRX15yDgvmeqIsd4BQtfxf1P02DgegGpgnMqb82
         /lF7mJ+2ZceRJ+BHd7QtJJu0ipFIzY1OVsJc1T7OC+vgWwlEevRr79j84yEYE6QprZti
         sBUg==
X-Forwarded-Encrypted: i=1; AJvYcCUYvu4Kjs/7DMWVtNSnwsmhjLM6lXAlV3N3ZDfO/BbqOXTqt9JVgWvFgAbG0NhRguq98KXD9HgfqKo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy3iBvf+jB32ceqx0At695JlnoYcxnzEJyRkxXV9ZLv+YBbIrGK
	gH0qVTB85uuYnmiSvsMAMEJ37IGf/D46L814sRFRFDUGsDkXILfZcY0R2H+7mp/xpe0B0TUcP2P
	2JB3fRqXTBlczIbyQaBKbOc083T96X+peUV5/Xac+3VH3+f8k0xOyRgERGKt4QoVhFMzG0A==
X-Gm-Gg: ATEYQzzs0F4MEFCfRBLTKON1rdIwpIjmkzf96ejFNBBvfaSfoeAW0O1MRRe5c1mJn6h
	eUhVXsmwvIa9kEe8nrKbTRlEVpnu3QrmxHXX1j5SSI+thg6g8z7jDcfmwtZa2PKGmJ9asEH4Yzk
	qDlLD7GEZy9rrD7nCvExPf4/MrpxkgKKj5bip+19Yzby/hSUl/AJWtFvgPq3nQY47Pp6wied70h
	9tZfZ1UnJvITyZLOMPrfNMWUCoVuOaT3hjK2KTyFqKVWMwSc3rGlO1XbpOluS76VBK0ZO+KcOkm
	KRMFV+I06L8QjGmyxP14j8vfshbm4/65omeCYMK0M0H3YqnJ1uNxRLPpRWowLLlni/QnhAiWgIw
	T28KC7cf1N91eiKUv7qOACtWCGmR2nzbTibZw3wB5dmnGUKKpRuncrp2Q
X-Received: by 2002:a05:6a21:608a:b0:35b:9ba2:8cd5 with SMTP id adf61e73a8af0-3982e2036d4mr1560336637.56.1772616911557;
        Wed, 04 Mar 2026 01:35:11 -0800 (PST)
X-Received: by 2002:a05:6a21:608a:b0:35b:9ba2:8cd5 with SMTP id adf61e73a8af0-3982e2036d4mr1560306637.56.1772616910991;
        Wed, 04 Mar 2026 01:35:10 -0800 (PST)
Message-ID: <9aa4c1d3-713e-4137-8042-a73bea8e8f34@oss.qualcomm.com>
Date: Wed, 4 Mar 2026 15:04:59 +0530
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 3/3] of: Respect #{iommu,msi}-cells in maps
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: Nipun Gupta <nipun.gupta@amd.com>,
        Nikhil Agarwal
 <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>, Rob Herring <robh@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?UTF-8?Q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas
 <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski
 <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
References: <20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com>
 <20260301-parse_iommu_cells-v9-3-4d1bceecc5e1@oss.qualcomm.com>
 <laif6gacqyacvchnfuyhu4w3f4746xlrlxrr23klrgtkbn7dn3@rracfqemavwd>
Content-Language: en-US
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
In-Reply-To: <laif6gacqyacvchnfuyhu4w3f4746xlrlxrr23klrgtkbn7dn3@rracfqemavwd>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Proofpoint-GUID: gl-nuMCTUihnsaDRqu-7thYD4wiimU3o
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA0MDA3MiBTYWx0ZWRfX7Y/fPWeiWDGa
 IYW3syFEoAjVe2OtnCmYrrVwMdOB3HtTeamV19XnP5jQRTtiGLo0dw1tS1zxz3Kp01dXGkgQ1Ww
 2VtVf7W8zd2sjH1WXROe1npXT5FK306XWno2i6MSvJmMyxdQD9U0o3FJ2lKoZNFymGPvBrnNkkE
 k2GgfOE78hXeA7pbIQUJEJBit8k3lFivTYBdwcRuX/EUplZ4d0sM8nGbbADmJInPxqIheV+zDdn
 b14Kn6AH6AM5jV4n5vMbmhhfVxUJasusSY9QvbmPqMdn3G3EXEDo3faXwDnWfPYg+edrBgvAg47
 ec6EGz3oW1C0yls1J/UdRESo2yODBpWlQM6yoQlAzrv5ak1x5FDBNwTeSYvcaWXvzOF3bIH5hlo
 /YRFzoNeyri4v9cCBBFYfpA5txkyxjPDZv/mPmJxP/WJGU0mwyLgV2uUKQl2wJXv+2pL27SjKUE
 Ge6CFGWgeXABRORpKFg==
X-Proofpoint-ORIG-GUID: gl-nuMCTUihnsaDRqu-7thYD4wiimU3o
X-Authority-Analysis: v=2.4 cv=BpWQAIX5 c=1 sm=1 tr=0 ts=69a7fcd0 cx=c_pps
 a=Qgeoaf8Lrialg5Z894R3/Q==:117 a=j4ogTh8yFefVWWEFDRgCtg==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22
 a=7CQSdrXTAAAA:8 a=EUspDBNiAAAA:8 a=FlLgGEtdp7AnL9SkOqcA:9 a=3ZKOabzyN94A:10
 a=QEXdDO2ut3YA:10 a=x9snwWr2DeNwDh03kgHS:22 a=a-qgeE7W1pNrGK8U0ZQC:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-04_05,2026-03-03_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 clxscore=1015 suspectscore=0 bulkscore=0 adultscore=0 malwarescore=0
 lowpriorityscore=0 impostorscore=0 priorityscore=1501 phishscore=0
 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound
 adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000
 definitions=main-2603040072



On 3/1/2026 3:44 PM, Dmitry Baryshkov wrote:
> On Sun, Mar 01, 2026 at 02:04:21PM +0530, Vijayanand Jitta wrote:
>> From: Robin Murphy <robin.murphy@arm.com>
>>
>> So far our parsing of {iommu,msi}-map properites has always blindly
>> assumed that the output specifiers will always have exactly 1 cell.
>> This typically does happen to be the case, but is not actually enforced
>> (and the PCI msi-map binding even explicitly states support for 0 or 1
>> cells) - as a result we've now ended up with dodgy DTs out in the field
>> which depend on this behaviour to map a 1-cell specifier for a 2-cell
>> provider, despite that being bogus per the bindings themselves.
>>
>> Since there is some potential use in being able to map at least single
>> input IDs to multi-cell output specifiers (and properly support 0-cell
>> outputs as well), add support for properly parsing and using the target
>> nodes' #cells values, albeit with the unfortunate complication of still
>> having to work around expectations of the old behaviour too.
>>
>> Since there are multi-cell output specifiers, the callers of of_map_id()
>> may need to get the exact cell output value for further processing.
>> Added support for that part --charan
>>
>> Signed-off-by: Robin Murphy <robin.murphy@arm.com>
>> Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
>> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
>> ---
>>  drivers/iommu/of_iommu.c |   2 +-
>>  drivers/of/base.c        | 117 +++++++++++++++++++++++++++++++++++++----------
>>  include/linux/of.h       |  16 +++----
>>  3 files changed, 102 insertions(+), 33 deletions(-)
>>
> 
>>  /**
>>   * of_map_id - Translate an ID through a downstream mapping.
>>   * @np: root complex device node.
>>   * @id: device ID to map.
>>   * @map_name: property name of the map to use.
>> + * @cells_name: property name of target specifier cells.
>>   * @map_mask_name: optional property name of the mask to use.
>>   * @arg: of_phandle_args structure,
>>   *	which includes:
>> @@ -2118,18 +2145,19 @@ int of_find_last_cache_level(unsigned int cpu)
>>   *
>>   * Return: 0 on success or a standard error code on failure.
>>   */
>> -int of_map_id(const struct device_node *np, u32 id,
>> -	       const char *map_name, const char *map_mask_name,
>> -	       struct of_phandle_args *arg)
>> +int of_map_id(const struct device_node *np, u32 id, const char *map_name,
>> +	      const char *cells_name, const char *map_mask_name,
>> +	      struct of_phandle_args *arg)
> 
> Some extra whitespace-related noise in here. Last line wasn't changed,
> so there is no need to touch it.
> 

Thanks for pointing this, Will fix it in next series.

>>  {
>>  	u32 map_mask, masked_id;
>> -	int map_len;
>> +	int map_bytes, map_len, offset = 0;
>> +	bool bad_map = false;
>>  	const __be32 *map = NULL;
>>  
>>  	if (!np || !map_name || !arg)
>>  		return -EINVAL;
>>  
>> -	map = of_get_property(np, map_name, &map_len);
>> +	map = of_get_property(np, map_name, &map_bytes);
>>  	if (!map) {
>>  		if (arg->np)
>>  			return -ENODEV;
>> @@ -2138,11 +2166,9 @@ int of_map_id(const struct device_node *np, u32 id,
>>  		return 0;
>>  	}
>>  
>> -	if (!map_len || map_len % (4 * sizeof(*map))) {
>> -		pr_err("%pOF: Error: Bad %s length: %d\n", np,
>> -			map_name, map_len);
>> -		return -EINVAL;
>> -	}
>> +	if (map_bytes % sizeof(*map))
>> +		goto err_map_len;
>> +	map_len = map_bytes / sizeof(*map);
>>  
>>  	/* The default is to select all bits. */
>>  	map_mask = 0xffffffff;
>> @@ -2155,27 +2181,63 @@ int of_map_id(const struct device_node *np, u32 id,
>>  		of_property_read_u32(np, map_mask_name, &map_mask);
>>  
>>  	masked_id = map_mask & id;
>> -	for ( ; map_len > 0; map_len -= 4 * sizeof(*map), map += 4) {
>> +
>> +	while (offset < map_len) {
>>  		struct device_node *phandle_node;
>> -		u32 id_base = be32_to_cpup(map + 0);
>> -		u32 phandle = be32_to_cpup(map + 1);
>> -		u32 out_base = be32_to_cpup(map + 2);
>> -		u32 id_len = be32_to_cpup(map + 3);
>> +		u32 id_base, phandle, id_len, id_off, cells = 0;
>> +		const __be32 *out_base;
>> +
>> +		if (map_len - offset < 2)
>> +			goto err_map_len;
>> +
>> +		id_base = be32_to_cpup(map + offset);
>>  
>>  		if (id_base & ~map_mask) {
>> -			pr_err("%pOF: Invalid %s translation - %s-mask (0x%x) ignores id-base (0x%x)\n",
>> -				np, map_name, map_name,
>> -				map_mask, id_base);
>> +			pr_err("%pOF: Invalid %s translation - %s (0x%x) ignores id-base (0x%x)\n",
>> +			       np, map_name, map_mask_name, map_mask, id_base);
>>  			return -EFAULT;
>>  		}
>>  
>> -		if (masked_id < id_base || masked_id >= id_base + id_len)
>> -			continue;
>> -
>> +		phandle = be32_to_cpup(map + offset + 1);
>>  		phandle_node = of_find_node_by_phandle(phandle);
>>  		if (!phandle_node)
>>  			return -ENODEV;
>>  
>> +		if (!bad_map && of_property_read_u32(phandle_node, cells_name, &cells)) {
>> +			pr_err("%pOF: missing %s property\n", phandle_node, cells_name);
>> +			return -EINVAL;
>> +		}
> 
> This will trigger the cells_name property check even if later we
> discover that we have a "bad" map. Is it intended / required?
> 

It’s intended. We need the cells value here because determining whether
a map is “bad” depends on it, as mentioned in description of of_check_bad_map
this is specifically for the case where the DT has an iommu-map pointing to
a 2‑cell IOMMU node but only provides 1 cell in the map entry.

>> +
>> +		if (map_len - offset < 3 + cells)
> 
> of_node_put(phandle_node);
> 
>> +			goto err_map_len;
>> +
>> +		if (offset == 0 && cells == 2) {
> 
> ... if it's not required, then the bad_map check can be moved before the
> loop.
> 

Given that, the bad_map check can’t be moved before the loop, because we only
call of_check_bad_map() when cells == 2.

>> +			bad_map = of_check_bad_map(map, map_len);
>> +			if (bad_map) {
>> +				pr_warn_once("%pOF: %s mismatches target %s, assuming extra cell of 0\n",
>> +					     np, map_name, cells_name);
>> +				cells = 1;
>> +			}
>> +		}
>> +
>> +		out_base = map + offset + 2;
>> +		offset += 3 + cells;
>> +
>> +		id_len = be32_to_cpup(map + offset - 1);
>> +		if (id_len > 1 && cells > 1) {
>> +			/*
>> +			 * With 1 output cell we reasonably assume its value
>> +			 * has a linear relationship to the input; with more,
>> +			 * we'd need help from the provider to know what to do.
>> +			 */
>> +			pr_err("%pOF: Unsupported %s - cannot handle %d-ID range with %d-cell output specifier\n",
>> +			       np, map_name, id_len, cells);
>> +			return -EINVAL;
>> +		}
>> +		id_off = masked_id - id_base;
>> +		if (masked_id < id_base || id_off >= id_len)
>> +			continue;
>> +
>>  		if (arg->np)
>>  			of_node_put(phandle_node);
>>  		else
>> @@ -2184,11 +2246,14 @@ int of_map_id(const struct device_node *np, u32 id,
>>  		if (arg->np != phandle_node)
>>  			continue;
>>  
>> -		arg->args[0] = masked_id - id_base + out_base;
>> +		for (int i = 0; i < cells; i++)
>> +			arg->args[i] = (id_off + be32_to_cpu(out_base[i]));
>> +
>> +		arg->args_count = cells;
>>  
>>  		pr_debug("%pOF: %s, using mask %08x, id-base: %08x, out-base: %08x, length: %08x, id: %08x -> %08x\n",
>> -			np, map_name, map_mask, id_base, out_base,
>> -			id_len, id, masked_id - id_base + out_base);
>> +			 np, map_name, map_mask, id_base, be32_to_cpup(out_base),
>> +			 id_len, id, id_off + be32_to_cpup(out_base));
> 
> Again, having whitespace changes doesn't simplify reviewing.
> 

Will fix this in next series.

Thanks,
Vijay
>>  		return 0;
>>  	}
>>  
>> @@ -2198,5 +2263,9 @@ int of_map_id(const struct device_node *np, u32 id,
>>  	/* Bypasses translation */
>>  	arg->args[0] = id;
>>  	return 0;
>> +
>> +err_map_len:
>> +	pr_err("%pOF: Error: Bad %s length: %d\n", np, map_name, map_bytes);
>> +	return -EINVAL;
>>  }
>>  EXPORT_SYMBOL_GPL(of_map_id);
> 



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 09:39:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 09:39:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245220.1544592 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxihr-0003Yd-Fs; Wed, 04 Mar 2026 09:39:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245220.1544592; Wed, 04 Mar 2026 09: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 1vxihr-0003YW-DI; Wed, 04 Mar 2026 09:39:51 +0000
Received: by outflank-mailman (input) for mailman id 1245220;
 Wed, 04 Mar 2026 09:39: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=4HQr=BE=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vxihp-0003YK-DR
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 09:39:49 +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 142f61de-17ae-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 10:39:46 +0100 (CET)
Received: from MN2PR19CA0011.namprd19.prod.outlook.com (2603:10b6:208:178::24)
 by DS0PR12MB7701.namprd12.prod.outlook.com (2603:10b6:8:133::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Wed, 4 Mar
 2026 09:39:40 +0000
Received: from BL6PEPF0001AB4D.namprd04.prod.outlook.com
 (2603:10b6:208:178:cafe::a1) by MN2PR19CA0011.outlook.office365.com
 (2603:10b6:208:178::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.22 via Frontend Transport; Wed,
 4 Mar 2026 09:39:44 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL6PEPF0001AB4D.mail.protection.outlook.com (10.167.242.71) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Wed, 4 Mar 2026 09:39:40 +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; Wed, 4 Mar
 2026 03:39:39 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 4 Mar
 2026 01:39:39 -0800
Received: from XIR-MICHALO-L1.xilinx.com (10.180.168.240) by
 satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17
 via Frontend Transport; Wed, 4 Mar 2026 03:39:38 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 142f61de-17ae-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=L6jq/dXyVjlvypLOSHux/j2bTfTLJY6CZ/cGvdfdnEOOVeQl0q0AjECWX2S5pQ7oZk/eqwou1Gv5mOAtCCR8jTpAl80iF12dhjwr2j12YK6ohPix1mEnd2r+Jp4ImzB/+Gx1qUo5wp4VqzZ7UvD66FHMrWJX5HJepOxRc31GF0EL7uGJEj3tF61e1NTzzVHvpod/b+AxrY9Q52s6oYsXTP0KVXhPy+KNi0QJi7BfBIA/SBrpeZzT/vyhyw5o6zLlgoZGGbYFq5bYVT2XZHM5G88POKT9EzcIpQV8G13wsYgG3TN8NiJJeqYeb4qDe1szV5xZgFNFE8c7Sk3OEDNX/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=5HQu2M+0XHijYHerBIMV7/hGMJZUp9enctuOgoOndY8=;
 b=fwlVcU2ypkmmkM7ZyWR8eC/bWnoF2zMzoHktik/fHh3ItozMPAOmDCPLyPpzuZvS/LBnwKR1HOpOj4QhCFpIfnCL1HZSo3CIPTF4SwM6aTW6gq6K3Cg4EzkRtVf4lOh62UWsNerdFgR/hfpZhxHnTtwbcHy1I1VeFwpzwZVlg8QsaKrRIREwRuveh3crhOEuK7v4fk/6pKhgijUaUxxsxO25Fc1NfgNS/I8dFY/OjDwHl9n5SQ1lMZiEqTPT4NH0Qe2G505RlaMuPT3wWAh8XrwJYqSVeKi3EespII64eoBxbkkB/3ovW2JQ/bi1CfKZotXuCbXIyCeUl95WEr1sRA==
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=5HQu2M+0XHijYHerBIMV7/hGMJZUp9enctuOgoOndY8=;
 b=hmu5kVqc6g4xzKcNhm9fsb152ZocRME9SbSN2YOGMpB2FkLjLJiUOY2mPu3a50A6rS/8sYw6uKQ9Jm0ey+NSYUDMWWnfJnarELQP+VSk47vMRYycuvpYo22EszYAgF2g0E5kF8AUaK3hHG3oOCGjFwgJNGw0h8zQe/qg8sbMIbQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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] arm/mm: Fix resource handling in xenmem_add_to_physmap_one
Date: Wed, 4 Mar 2026 10:39:23 +0100
Message-ID: <20260304093923.14293-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: BL6PEPF0001AB4D:EE_|DS0PR12MB7701:EE_
X-MS-Office365-Filtering-Correlation-Id: 7fccc3d3-e1c7-47cd-6857-08de79d1f52e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700016|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	d/4vmiIJ7oH3DeVwJkwLjlekR94sGlpT90yi55KecnApcmtSaJPZbSFH2vDfHgKSwHAR6HtzrtyDTHN5zFIgw4whHFSfz/Vwetqbd2tQ6RI+ODrp8zdykY70cob1ixbQJLONS8JykPrRjFuS+vh0nxoJqBp9HCc73hqeQeD+FKuxgByQSxCESmc/MzKi4L1FLucUDAoDisj2G47lurTuP32mW+sFQGo4NabXlxzbR42m4EAJ5AE1bSPYZUdTWIHd1EjVvR+ARpa7niNJxf6/7DUJMKl+iS1rCrwoJRLAbZ+BZ8CZEM0/InmCl+QOkILYmbhyr49OGRttxNIllgVhqAjeGZnwOWatdRHYy70SQOk7iIwT9Om4q8QLksTIP0PpsYrGVUxjsmgtRIJgChPGSKYEkBtiZc/Xczc5NBscA+lM9xsFoCOJpHdpWNAJY8viKaPiGsCtLly5gsBNhfbOg1uQ6w7X3hnRBYJ0Gh8jIvaDcnu9ugggj7amZ1B/1AneRTC6bSJKpcKxmHpNI9Dbk8grnUImG6OAt9ZIS8Zb9J6AXpbPdnDR6BxNobHvkm6xJPPWhc/xrtBeUy0fbxzKO3PY5QmtkMWzdt/ow1FYdwNGeN2O7GC5TsOCL5c+ebVWsa5dmeM5GYCCebUG6YkMXIyqPTAR5V4XSA2IsuMDfwPa/sLPrd1SFbY3O76p+NlO++zia7q57abB7Wf0cVbLvcoHp5hyskEkHBL8ttyuweFQKjMUvNzcj12sc9RGq264KGq6cP8shUX8w5SlAo334A==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700016)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	AhwGVb3skTKE/FeJrQLeNpYDgXuvEnIcO4Ywy8EcQ0mtkv82jriXHS5/KabXkWLWsb6J3dWp5s22AXd7HLnWs8C0Zsv9aPyWDkRk4lquuBcUnV7XdbSyzFV5wmYv5Gv7TfabSV9MW+BkTMji+IAeGCSty0FjyJfVOco6/okWJBQnSEulmyMFpYgqa/+8/FI5EwI1A/dyQvhdsrKYzVa18Sn13fCh4vCWeHgMCACSHhWcs6IzIVFBDAnhKF5XbZlj6hgcCK9pBYm2wsmypSwfe7zdQ+MQVjsRDXopLBdMhfuM0ON0zYOPPtDJu/RV1pRNig7XPBn17fuVkN3wlUcyi8V4kalQHItPZxomvojcOdqPMhisBi08ZPjpRzbE5iqeNnDAXuTjVC4RuRnKPlHImiX6Wv1nfZVO81Nk5GdPoD3lcfvRsvvApuhJpTrYutbD
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 09:39:40.1421
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7fccc3d3-e1c7-47cd-6857-08de79d1f52e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB4D.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7701

The current implementation of xenmem_add_to_physmap_one() does not check
for or remove existing mappings at the target GFN before inserting new
mappings. This can lead to pages not being properly freed (until domain
destruction) when replaced.

Add a proper old mapping detection and cleanup:

* Check for existing mappings at the target GFN before insertion
* For special pages: unmap without freeing (not owned by domain)
* For MMIO mappings: reject with -EPERM (questionable)
* For grant mappings: reject with -EPERM (cleanup not implemented in
  p2m_put_l3_page)
* For RAM and foreign mappings: properly remove via guest_remove_page()
* Optimize same-MFN remapping: detect and return early (no-op)

Fix XENMAPSPACE_dev_mmio by inlining its permission check and logic
into the main switch statement, allowing it to go through the same cleanup
path as other mapping types. This removes the early return that bypassed
cleanup. The now-unused map_dev_mmio_page() function is removed.

Foreign mappings are allowed to be removed (matching x86 behavior) because
proper cleanup via p2m_put_foreign_page() is already implemented in
p2m_put_l3_page(). Grant mappings are rejected because cleanup is not yet
implemented.

Add new helpers p2m_is_grant() and p2m_is_mmio().

Note: There are race conditions due to multiple P2M lock/unlock cycles
during the check-remove-insert sequence. These are documented and
subject to future improvements.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
Changes in v2:
 - handle all the spaces
 - drop references
 - add a comment about races (not handled in this attempt)

guest_remove_page would work on MMIO, but for now I decided to take a conservative
approach and reject it.
---
 xen/arch/arm/include/asm/p2m.h |  9 ++++-
 xen/arch/arm/mm.c              | 73 +++++++++++++++++++++++++++++++---
 xen/arch/arm/p2m.c             | 18 ---------
 3 files changed, 74 insertions(+), 26 deletions(-)

diff --git a/xen/arch/arm/include/asm/p2m.h b/xen/arch/arm/include/asm/p2m.h
index 010ce8c9ebbd..d88f4f65c7bc 100644
--- a/xen/arch/arm/include/asm/p2m.h
+++ b/xen/arch/arm/include/asm/p2m.h
@@ -149,6 +149,11 @@ static inline p2m_type_t arch_dt_passthrough_p2m_type(void)
 #define P2M_RAM_TYPES (p2m_to_mask(p2m_ram_rw) |        \
                        p2m_to_mask(p2m_ram_ro))
 
+/* MMIO types */
+#define P2M_MMIO_TYPES (p2m_to_mask(p2m_mmio_direct_dev) | \
+                        p2m_to_mask(p2m_mmio_direct_nc) | \
+                        p2m_to_mask(p2m_mmio_direct_c))
+
 /* Grant mapping types, which map to a real frame in another VM */
 #define P2M_GRANT_TYPES (p2m_to_mask(p2m_grant_map_rw) |  \
                          p2m_to_mask(p2m_grant_map_ro))
@@ -159,6 +164,8 @@ static inline p2m_type_t arch_dt_passthrough_p2m_type(void)
 
 /* Useful predicates */
 #define p2m_is_ram(_t) (p2m_to_mask(_t) & P2M_RAM_TYPES)
+#define p2m_is_mmio(_t) (p2m_to_mask(_t) & P2M_MMIO_TYPES)
+#define p2m_is_grant(_t) (p2m_to_mask(_t) & P2M_GRANT_TYPES)
 #define p2m_is_foreign(_t) (p2m_to_mask(_t) & P2M_FOREIGN_TYPES)
 #define p2m_is_any_ram(_t) (p2m_to_mask(_t) &                   \
                             (P2M_RAM_TYPES | P2M_GRANT_TYPES |  \
@@ -318,8 +325,6 @@ int unmap_regions_p2mt(struct domain *d,
                        unsigned long nr,
                        mfn_t mfn);
 
-int map_dev_mmio_page(struct domain *d, gfn_t gfn, mfn_t mfn);
-
 int p2m_insert_mapping(struct domain *d, gfn_t start_gfn, unsigned long nr,
                        mfn_t mfn, p2m_type_t t);
 
diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
index 6df8b616e464..0cee65d5ab5a 100644
--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -11,6 +11,7 @@
 #include <xen/domain_page.h>
 #include <xen/grant_table.h>
 #include <xen/guest_access.h>
+#include <xen/iocap.h>
 #include <xen/mm.h>
 #include <xen/static-memory.h>
 #include <xen/static-shmem.h>
@@ -166,10 +167,11 @@ int xenmem_add_to_physmap_one(
     unsigned long idx,
     gfn_t gfn)
 {
-    mfn_t mfn = INVALID_MFN;
+    mfn_t mfn = INVALID_MFN, mfn_old;
     int rc;
-    p2m_type_t t;
+    p2m_type_t t, p2mt_old;
     struct page_info *page = NULL;
+    struct p2m_domain *p2m = p2m_get_hostp2m(d);
 
     switch ( space )
     {
@@ -237,13 +239,73 @@ int xenmem_add_to_physmap_one(
         break;
     }
     case XENMAPSPACE_dev_mmio:
-        rc = map_dev_mmio_page(d, gfn, _mfn(idx));
-        return rc;
+        if ( !iomem_access_permitted(d, idx, idx) )
+            return 0;
+
+        mfn = _mfn(idx);
+        t = p2m_mmio_direct_c;
+        break;
 
     default:
         return -ENOSYS;
     }
 
+    /*
+     * Release the old page reference if it was present.
+     *
+     * TODO: There are race conditions in this code due to multiple lock/unlock
+     * cycles:
+     *
+     * Race #1: Between checking the old mapping and removing it, another CPU
+     * could replace the mapping. We would then remove the wrong mapping.
+     *
+     * Race #2: Between removing the old mapping and inserting the new one,
+     * another CPU could insert a different mapping. We would then silently
+     * overwrite it.
+     *
+     * For now, we accept these races as they require concurrent
+     * xenmem_add_to_physmap_one operations on the same GFN, which is not a
+     * normal usage pattern.
+     */
+    p2m_read_lock(p2m);
+    mfn_old = p2m_get_entry(p2m, gfn, &p2mt_old, NULL, NULL, NULL);
+    p2m_read_unlock(p2m);
+
+    if ( mfn_valid(mfn_old) && !mfn_eq(mfn, mfn_old) )
+    {
+        if ( is_special_page(mfn_to_page(mfn_old)) )
+        {
+            /* Just unmap, don't free */
+            p2m_write_lock(p2m);
+            rc = p2m_set_entry(p2m, gfn, 1, INVALID_MFN,
+                               p2m_invalid, p2m->default_access);
+            p2m_write_unlock(p2m);
+            if ( rc )
+                goto out;
+        }
+        else if ( p2m_is_mmio(p2mt_old) || p2m_is_grant(p2mt_old) )
+        {
+            /* Reject MMIO and grant replacements */
+            rc = -EPERM;
+            goto out;
+        }
+        else
+        {
+            /* Allow RAM and foreign - both have proper cleanup */
+            rc = guest_remove_page(d, gfn_x(gfn));
+            if ( rc )
+                goto out;
+        }
+    }
+    else if ( mfn_valid(mfn_old) )
+    {
+        /* Mapping already exists. Drop the references taken above */
+        if ( page != NULL )
+            put_page(page);
+
+        return 0;
+    }
+
     /*
      * Map at new location. Here we need to map xenheap RAM page differently
      * because we need to store the valid GFN and make sure that nothing was
@@ -255,8 +317,6 @@ int xenmem_add_to_physmap_one(
         rc = guest_physmap_add_entry(d, gfn, mfn, 0, t);
     else
     {
-        struct p2m_domain *p2m = p2m_get_hostp2m(d);
-
         p2m_write_lock(p2m);
         if ( gfn_eq(page_get_xenheap_gfn(mfn_to_page(mfn)), INVALID_GFN) )
         {
@@ -276,6 +336,7 @@ int xenmem_add_to_physmap_one(
         p2m_write_unlock(p2m);
     }
 
+ out:
     /*
      * For XENMAPSPACE_gmfn_foreign if we failed to add the mapping, we need
      * to drop the reference we took earlier. In all other cases we need to
diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
index fb03978a19af..c91568926e4c 100644
--- a/xen/arch/arm/p2m.c
+++ b/xen/arch/arm/p2m.c
@@ -200,24 +200,6 @@ int unmap_mmio_regions(struct domain *d,
     return p2m_remove_mapping(d, start_gfn, nr, mfn);
 }
 
-int map_dev_mmio_page(struct domain *d, gfn_t gfn, mfn_t mfn)
-{
-    int res;
-
-    if ( !iomem_access_permitted(d, mfn_x(mfn), mfn_x(mfn)) )
-        return 0;
-
-    res = p2m_insert_mapping(d, gfn, 1, mfn, p2m_mmio_direct_c);
-    if ( res < 0 )
-    {
-        printk(XENLOG_G_ERR "Unable to map MFN %#"PRI_mfn" in %pd\n",
-               mfn_x(mfn), d);
-        return res;
-    }
-
-    return 0;
-}
-
 int guest_physmap_add_entry(struct domain *d,
                             gfn_t gfn,
                             mfn_t mfn,
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 09:57:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 09:57:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245241.1544630 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxiyr-0007BS-7o; Wed, 04 Mar 2026 09:57:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245241.1544630; Wed, 04 Mar 2026 09:57:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxiyr-0007BL-3o; Wed, 04 Mar 2026 09:57:25 +0000
Received: by outflank-mailman (input) for mailman id 1245241;
 Wed, 04 Mar 2026 09:57: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=JkSz=BE=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vxiyq-0007BC-7l
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 09:57:24 +0000
Received: from mail-ot1-x334.google.com (mail-ot1-x334.google.com
 [2607:f8b0:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 89773025-17b0-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 10:57:22 +0100 (CET)
Received: by mail-ot1-x334.google.com with SMTP id
 46e09a7af769-7d4c307db9aso4228262a34.3
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 01:57: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: 89773025-17b0-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1772618241; cv=none;
        d=google.com; s=arc-20240605;
        b=l1PuMxzQteA966OJCLvlfkBgRV7o6qV1ZozuZRmQnUbBKg+jDaZxeJEKM5f1I5NX3O
         SmoW3hLEpMfS5uo+GlVVy6hm7ztJ/iehmhHdbT6CSYgjpzwAkVGEGev6/1w01WgTQNEQ
         mM0oWl3xIiUygpL1eK2YegaDt+Ny/aGE8WnPp5+8uDLdUM34idAhZgejypcctj5jI46G
         8WdCh6gPkSyuxAni+osuw8d0YWJlAUz69QGmgRhyJ71TfYi0C86/RL7MpXYHgXOoQB4i
         Ur1uyHosYhSR3jMF9xaqleEoNyUSlc1LaI00lwiNJdZv5aneEMxx/XlYTCDiTBS8jPUF
         AsDA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=NJrv+HwIDbQuRAZOh72iXVEhQflBFsynWIP/XUoI34s=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=do9ni7nGjwR5h1EoJTZmLjV5VSNSN11cAA4C62E5MPMdB1cgS5I+6ImoD7/UVWdrKe
         /Jzf3x8E28VcwIJBvNTmZsQFGqJYnYMKmbkpYgE3q5k6vrh72NR0rtniC6IJkLfrMuSJ
         /kPtD8nk9D8aSfgyQJOcXb1HH/ca4S5WC6idXEfT6svFYcLO2GTkFImo897vbFE8YESJ
         iWxlkw9of0QiKF1xrIAYzvcfwTmZAGppMLKj3SM6Av6cD6J3gn0ltrFdpJ1gS3HVMxgF
         0X1Z4HsDu9EEa2FZO3a2XYjiWg14kICFowpO0xho/ETrAKpzDXA6/ROTJWzHJ4a+yOrC
         R8dQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1772618241; x=1773223041; 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=NJrv+HwIDbQuRAZOh72iXVEhQflBFsynWIP/XUoI34s=;
        b=t+Gh2fklY7L0rvrtpXWmXFwAdthgrf7J3iRVzvibznI3mUlXnqFCy53vVcwb96300R
         qEU8ZeJOGctfhJSWcrCrqLVNbQJsP317Pn97fXkcHhk6KLHK+MXjKs/dB4rq2OmSbjU7
         PYzxELUu70bqOpD4PH2BmpIuZzDuXB4TdyPALYfr9q+GKz8MphaHhTzgk5OWYDCGzzLV
         Svfc/gJYuWN8DfgoMEV3Fu9nXnP/0uOXV6WVCTef3aBVPpYR2v1Afav3ndJl3YC5+eqj
         BgcetwY6BrWgM2hZ2o1cv8kjJKR6pHI7+2Y6ClsfxNFvnpzASK1D6Ag6E6YOslUUfAy3
         fFNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772618241; x=1773223041;
        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=NJrv+HwIDbQuRAZOh72iXVEhQflBFsynWIP/XUoI34s=;
        b=niPNjRdCUnYagSKscFlGJSvazKd7REXjUtlgsiK9dpqeghaIRtEjk4emiI8/LEukIb
         6+tNe5sci4Is3W4pL6Ka93ln6csJh23AVf1BDUJoVhXSFAvzmhWTnC0crpDZZiYHFxKj
         Tfz0C23IcJJQ+M6Iu87eS1ObTBzc525T++qp3XhV9f3FJej2fBwziTfOe7z1Zpi8OZ9y
         4Q2z5KodJu5+/yK/gdTqsLqYzIQqRUINT126CZ3cx99IAkPtvwre/LYkBW/M5wTP9sWf
         sMneW7lpaXaOjUEZR69Lhfxoh6Ob3ZKvLNnLJdL7JE/8XDxu+4jFt2p5RrIvMyZZ7FAb
         MNxw==
X-Gm-Message-State: AOJu0YybnKqOqoT4RHxBT+khese2HnoVb5WsXIFgKU4vBjSXZZsbpQ8p
	ifEB3wMxR5lu31lWzal9klP5n2OjO4moj9uX2IgjuHemVPijT6NuOGqWeEKwXGqYwlr2ZNW/YK9
	qG6e8dHeFxsC97/O9/IZzmOSUwZkcu8tye+vA7PiGjA==
X-Gm-Gg: ATEYQzyxKRfCay8bG243yuhMWLfHDdGp2x89bJA+CZq3aGuam+LiQMelf6gOWVPHAeH
	NzSBn5GtvAKLMwAcxc98eKj5tz2nzDcXiwgL1JyRgJQ8CYB/o+kM5MiYfmiaMAI8+uf9DoKgijM
	AoIXN9geaW4a9l+6wlX8Ms7sutRr76emzH5rqomGkUmdwOZRcKZMiKYlCGjNMOX38ht3QFpLzkw
	1uw1b+UefUGPucGwV+p228Q/No5HwwmghNfdz9Vt1hsl9ey77M8hihKA1fcWmp64yRKp6LMDcrW
	gvOgplZXCxujepXe9/X3z3CuyRc2Vtte+iKcyw==
X-Received: by 2002:a05:6830:6004:b0:7cf:d9ba:c9a6 with SMTP id
 46e09a7af769-7d6bf9196c9mr735966a34.0.1772618240772; Wed, 04 Mar 2026
 01:57:20 -0800 (PST)
MIME-Version: 1.0
References: <cover.1772464956.git.bertrand.marquis@arm.com> <e05fcde563e09dc63fbe4e3299049f6d6ebf903e.1772464956.git.bertrand.marquis@arm.com>
In-Reply-To: <e05fcde563e09dc63fbe4e3299049f6d6ebf903e.1772464956.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 4 Mar 2026 10:57:09 +0100
X-Gm-Features: AaiRm53rXnOqjPZrccAyxOHhScQz_4AYLdc_7WKEWrK1obIrIo_QP1oyH_ODXJU
Message-ID: <CAHUa44HFaHLFucOgH2zkryDPM9zgR75xzX-VhAeCd5b_iZW=8w@mail.gmail.com>
Subject: Re: [PATCH v2 2/4] xen/arm: ffa: Cache SP partition info at init
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Mon, Mar 2, 2026 at 4:44=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> FFA_PARTITION_INFO_GET currently queries the SPMC on each call and walks =
the
> RX buffer every time. The SP list is expected to be static, so repeated
> firmware calls and validation are unnecessary.
>
> Cache the SPMC partition-info list at init time, keeping only secure
> endpoints, and reuse the cached entries for SP count and partition-info
> responses. Initialize the VM create/destroy subscriber lists from the cac=
hed
> list and free the cache on init failure.
>
> SP partition info now reflects the init-time snapshot and will not change=
.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes since v1:
> - removed unneeded NULL assignment after XFREE
> - remove warned usage and only rely on printk_once to warn on the 15-bit
>   convention
> - rework ffa_partinfo_init cleanup
> - ensure we do not do unaligned accesses when building the SP cache
> - enforce SPMC partinfo size to be at least 1.1 structure size when
>   creating and remove tests when using the cache
> ---
>  xen/arch/arm/tee/ffa_partinfo.c | 216 +++++++++++++++++++++-----------
>  1 file changed, 146 insertions(+), 70 deletions(-)
>
> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_parti=
nfo.c
> index 6a6f3ffb822e..b933becaa55a 100644
> --- a/xen/arch/arm/tee/ffa_partinfo.c
> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> @@ -6,6 +6,8 @@
>  #include <xen/const.h>
>  #include <xen/sizes.h>
>  #include <xen/types.h>
> +#include <xen/unaligned.h>
> +#include <xen/xmalloc.h>
>
>  #include <asm/smccc.h>
>  #include <asm/regs.h>
> @@ -33,6 +35,10 @@ static uint16_t subscr_vm_created_count __read_mostly;
>  static uint16_t *subscr_vm_destroyed __read_mostly;
>  static uint16_t subscr_vm_destroyed_count __read_mostly;
>
> +/* SP list cache (secure endpoints only); populated at init. */
> +static void *sp_list __read_mostly;
> +static uint32_t sp_list_count __read_mostly;
> +static uint32_t sp_list_entry_size __read_mostly;

Nit: prefer an empty line here, but it's fixed in a later patch.

Looks good:
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>  static int32_t ffa_partition_info_get(struct ffa_uuid uuid, uint32_t fla=
gs,
>                                        uint32_t *count, uint32_t *fpi_siz=
e)
>  {
> @@ -79,92 +85,84 @@ static int32_t ffa_copy_info(void **dst, void *dst_en=
d, const void *src,
>      return FFA_RET_OK;
>  }
>
> -static int32_t ffa_get_sp_count(struct ffa_uuid uuid, uint32_t *sp_count=
)
> +static uint16_t ffa_sp_entry_read_id(const void *entry)
>  {
> -    uint32_t src_size;
> -
> -    return ffa_partition_info_get(uuid, FFA_PARTITION_INFO_GET_COUNT_FLA=
G,
> -                                  sp_count, &src_size);
> +    return get_unaligned_t(uint16_t,
> +                           (const uint8_t *)entry +
> +                           offsetof(struct ffa_partition_info_1_0, id));
>  }
>
> -static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_co=
unt,
> -                                   void **dst_buf, void *end_buf,
> -                                   uint32_t dst_size)
> +static bool ffa_sp_entry_matches_uuid(const void *entry, struct ffa_uuid=
 uuid)
>  {
> -    int32_t ret;
> -    int32_t release_ret;
> -    uint32_t src_size, real_sp_count;
> -    void *src_buf;
> -    uint32_t count =3D 0;
> -    bool notify_fw =3D false;
> +    struct ffa_uuid sp_uuid;
>
> -    /* We need to use the RX buffer to receive the list */
> -    src_buf =3D ffa_rxtx_spmc_rx_acquire();
> -    if ( !src_buf )
> -        return FFA_RET_DENIED;
> +    if ( ffa_uuid_is_nil(uuid) )
> +        return true;
>
> -    ret =3D ffa_partition_info_get(uuid, 0, &real_sp_count, &src_size);
> -    if ( ret )
> -        goto out;
> -    notify_fw =3D true;
> +    memcpy(&sp_uuid,
> +           (const uint8_t *)entry +
> +           offsetof(struct ffa_partition_info_1_1, uuid),
> +           sizeof(sp_uuid));
> +    return ffa_uuid_equal(uuid, sp_uuid);
> +}
>
> -    /* Validate the src_size we got */
> -    if ( src_size < sizeof(struct ffa_partition_info_1_0) ||
> -         src_size >=3D FFA_PAGE_SIZE )
> +static int32_t ffa_get_sp_count(struct ffa_uuid uuid, uint32_t *sp_count=
)
> +{
> +    uint32_t count =3D 0;
> +    uint32_t n;
> +
> +    for ( n =3D 0; n < sp_list_count; n++ )
>      {
> -        ret =3D FFA_RET_NOT_SUPPORTED;
> -        goto out;
> +        void *entry =3D sp_list + n * sp_list_entry_size;
> +
> +        if ( ffa_sp_entry_matches_uuid(entry, uuid) )
> +            count++;
>      }
>
> -    /*
> -     * Limit the maximum time we hold the CPU by limiting the number of =
SPs.
> -     * We just ignore the extra ones as this is tested during init in
> -     * ffa_partinfo_init so the only possible reason is SP have been add=
ed
> -     * since boot.
> -     */
> -    if ( real_sp_count > FFA_MAX_NUM_SP )
> -        real_sp_count =3D FFA_MAX_NUM_SP;
> +    *sp_count =3D count;
>
> -    /* Make sure the data fits in our buffer */
> -    if ( real_sp_count > (FFA_RXTX_PAGE_COUNT * FFA_PAGE_SIZE) / src_siz=
e )
> -    {
> -        ret =3D FFA_RET_NOT_SUPPORTED;
> -        goto out;
> -    }
> +    if ( !ffa_uuid_is_nil(uuid) && !count )
> +        return FFA_RET_INVALID_PARAMETERS;
>
> -    for ( uint32_t sp_num =3D 0; sp_num < real_sp_count; sp_num++ )
> -    {
> -        struct ffa_partition_info_1_1 *fpi =3D src_buf;
> +    return FFA_RET_OK;
> +}
>
> -        /* filter out SP not following bit 15 convention if any */
> -        if ( FFA_ID_IS_SECURE(fpi->id) )
> -        {
> -            /*
> -             * If VM is 1.0 but firmware is 1.1 we could have several en=
tries
> -             * with the same ID but different UUIDs. In this case the VM=
 will
> -             * get a list with several time the same ID.
> -             * This is a non-compliance to the specification but 1.0 VMs=
 should
> -             * handle that on their own to simplify Xen implementation.
> -             */
> +static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_co=
unt,
> +                                   void **dst_buf, void *end_buf,
> +                                   uint32_t dst_size)
> +{
> +    int32_t ret;
> +    uint32_t count =3D 0;
> +    uint32_t n;
>
> -            ret =3D ffa_copy_info(dst_buf, end_buf, src_buf, dst_size, s=
rc_size);
> -            if ( ret )
> -                goto out;
> +    for ( n =3D 0; n < sp_list_count; n++ )
> +    {
> +        void *entry =3D sp_list + n * sp_list_entry_size;
>
> -            count++;
> -        }
> +        if ( !ffa_sp_entry_matches_uuid(entry, uuid) )
> +            continue;
> +
> +        /*
> +         * If VM is 1.0 but firmware is 1.1 we could have several entrie=
s
> +         * with the same ID but different UUIDs. In this case the VM wil=
l
> +         * get a list with several time the same ID.
> +         * This is a non-compliance to the specification but 1.0 VMs sho=
uld
> +         * handle that on their own to simplify Xen implementation.
> +         */
> +        ret =3D ffa_copy_info(dst_buf, end_buf, entry, dst_size,
> +                            sp_list_entry_size);
> +        if ( ret )
> +            return ret;
>
> -        src_buf +=3D src_size;
> +        count++;
>      }
>
>      *sp_count =3D count;
>
> -out:
> -    release_ret =3D ffa_rxtx_spmc_rx_release(notify_fw);
> -    if ( release_ret )
> -        gprintk(XENLOG_WARNING,
> -                "ffa: Error releasing SPMC RX buffer: %d\n", release_ret=
);
> -    return ret;
> +    if ( !ffa_uuid_is_nil(uuid) && !count )
> +        return FFA_RET_INVALID_PARAMETERS;
> +
> +    return FFA_RET_OK;
>  }
>
>  static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t start_=
index,
> @@ -435,6 +433,13 @@ static int32_t ffa_direct_req_send_vm(uint16_t sp_id=
, uint16_t vm_id,
>      return res;
>  }
>
> +static void ffa_sp_list_cache_free(void)
> +{
> +    XFREE(sp_list);
> +    sp_list_count =3D 0;
> +    sp_list_entry_size =3D 0;
> +}
> +
>  static void uninit_subscribers(void)
>  {
>          subscr_vm_created_count =3D 0;
> @@ -443,6 +448,63 @@ static void uninit_subscribers(void)
>          XFREE(subscr_vm_destroyed);
>  }
>
> +static bool ffa_sp_list_cache_init(const void *buf, uint32_t count,
> +                                   uint32_t fpi_size)
> +{
> +    const uint8_t *src =3D buf;
> +    uint32_t secure_count =3D 0;
> +    uint32_t n, idx =3D 0;
> +
> +    if ( fpi_size < sizeof(struct ffa_partition_info_1_1) ||
> +         fpi_size >=3D FFA_PAGE_SIZE )
> +        return false;
> +
> +    if ( count > (FFA_RXTX_PAGE_COUNT * FFA_PAGE_SIZE) / fpi_size )
> +        return false;
> +
> +    for ( n =3D 0; n < count; n++ )
> +    {
> +        const uint8_t *entry =3D src + n * fpi_size;
> +        uint16_t id =3D ffa_sp_entry_read_id(entry);
> +
> +        if ( !FFA_ID_IS_SECURE(id) )
> +        {
> +            printk_once(XENLOG_ERR
> +                        "ffa: Firmware is not using bit 15 convention fo=
r IDs !!\n");
> +            printk(XENLOG_ERR
> +                   "ffa: Secure partition with id 0x%04x cannot be used\=
n",
> +                   id);
> +            continue;
> +        }
> +
> +        secure_count++;
> +    }
> +
> +    if ( secure_count )
> +    {
> +        sp_list =3D xzalloc_bytes(secure_count * fpi_size);
> +        if ( !sp_list )
> +            return false;
> +    }
> +
> +    sp_list_count =3D secure_count;
> +    sp_list_entry_size =3D fpi_size;
> +
> +    for ( n =3D 0; n < count; n++ )
> +    {
> +        const uint8_t *entry =3D src + n * fpi_size;
> +        uint16_t id =3D ffa_sp_entry_read_id(entry);
> +
> +        if ( !FFA_ID_IS_SECURE(id) )
> +            continue;
> +
> +        memcpy(sp_list + idx * fpi_size, entry, fpi_size);
> +        idx++;
> +    }
> +
> +    return true;
> +}
> +
>  static bool init_subscribers(void *buf, uint16_t count, uint32_t fpi_siz=
e)
>  {
>      uint16_t n;
> @@ -538,7 +600,7 @@ bool ffa_partinfo_init(void)
>      if ( e )
>      {
>          printk(XENLOG_ERR "ffa: Failed to get list of SPs: %d\n", e);
> -        goto out;
> +        goto out_release_rx;
>      }
>      notify_fw =3D true;
>
> @@ -546,15 +608,29 @@ bool ffa_partinfo_init(void)
>      {
>          printk(XENLOG_ERR "ffa: More SPs than the maximum supported: %u =
- %u\n",
>                 count, FFA_MAX_NUM_SP);
> -        goto out;
> +        goto out_release_rx;
> +    }
> +
> +    if ( !ffa_sp_list_cache_init(spmc_rx, count, fpi_size) )
> +    {
> +        printk(XENLOG_ERR "ffa: Failed to cache SP list\n");
> +        goto out_release_rx;
>      }
>
> -    ret =3D init_subscribers(spmc_rx, count, fpi_size);
> +    if ( !init_subscribers(sp_list, sp_list_count, sp_list_entry_size) )
> +        goto out_free_sp_cache;
>
> -out:
> +    ret =3D true;
> +    goto out_release_rx;
> +
> +out_free_sp_cache:
> +    ffa_sp_list_cache_free();
> +
> +out_release_rx:
>      e =3D ffa_rxtx_spmc_rx_release(notify_fw);
>      if ( e )
>          printk(XENLOG_WARNING "ffa: Error releasing SPMC RX buffer: %d\n=
", e);
> +
>      return ret;
>  }
>
> --
> 2.52.0
>


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 10:18:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 10:18:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245255.1544639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxjJ6-0002Zk-Uy; Wed, 04 Mar 2026 10:18:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245255.1544639; Wed, 04 Mar 2026 10: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 1vxjJ6-0002Zd-SO; Wed, 04 Mar 2026 10:18:20 +0000
Received: by outflank-mailman (input) for mailman id 1245255;
 Wed, 04 Mar 2026 10:18: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=JkSz=BE=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vxjJ5-0002ZS-EK
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 10:18:19 +0000
Received: from mail-oi1-x236.google.com (mail-oi1-x236.google.com
 [2607:f8b0:4864:20::236])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 75bcb0f8-17b3-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 11:18:17 +0100 (CET)
Received: by mail-oi1-x236.google.com with SMTP id
 5614622812f47-46391f4c1f9so4357560b6e.0
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 02:18: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: 75bcb0f8-17b3-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1772619496; cv=none;
        d=google.com; s=arc-20240605;
        b=YpmkWmfUSBSbqjH0tXLDKGjPGH/4GCLal/7rNudIpJv/riqc0eV27VLStkgzMCADIs
         c1PyicM1fBM01E7JBfrWXPpsMazCJmBTN6xVTdxLwd6sG01m5B6wj0NuMPee9TrmXEf8
         B4wIqIupQ5eo7vLmC2hZKdnHaoiWp9JGrCe7WIe7Fl+cfEpTkgwf4VXVV2SeMUmXbm49
         XR7x8PLXeZRQ47oYjfdy/w1YZ6w0f52oGnuhVuYejjURS+2I915I8T1GpQhDmaTiAo2d
         rVa56IXuvSJMqtOgHmCBWAMrDlfnK2JZm3iLiaScyOWBuRntMZXYZmMOHtr6rM2pebkp
         fXJw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=JpRotDvDJ+H6v67uMsFM80otTZemd09qTEWD769DE6g=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=FxkQD7GIdEXOOUTxrR9IbWgWpAPi10PtymObVjpFAVqYzPlS7xMGyRDwiD2oovNgVD
         8icau4kgGDwc76djs8/w9sup9isUoieJzGVwVe5mH8PNxwpKV/8xVQxoxZnRJbcfrqVQ
         bqOuTqd3ihgq8Se0eGXGENiqQAlSdu32Vq/w3HhF7BSPMX8jUpP/rAmM183gREReaaSW
         sR5xU50s6qXyuczPII57bufBmgUQfy1tJQuLT+iOTl/hYiMiiHC0ZLYP1o7+/UFm4niE
         6e789IaStBrL3AtGs+eCAF3MubEL3Fca5F5k+FWiwb60QvqoAJG/sYxcXXA8D/Avt0M+
         pzCw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1772619496; x=1773224296; 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=JpRotDvDJ+H6v67uMsFM80otTZemd09qTEWD769DE6g=;
        b=wbVUYNQ4pEbSf/8MFFXMbMEVSoEsF+9HDSrEiFmji8Pog5cO2PpJ/vusYakKnYHWaO
         WmezaO8fXqrt1NH/G45HerdQKA+/DuAeoj1X+gqZt62RXkvpomQ4q/g0/4PMFLbBcVXl
         3LHy7DfCt8pGSvOUKVV4SJAxyrEfHcBRWhPFfKnwgolg5iPHqiTKDLhrDymtxayLB0zJ
         8Q2MEaLnpzLzVob4KfRkS+WDvb0ol8G9/WE2v3baPrdbZ+BjB1I1/V4q+v70FEfyUqno
         moA9QKaC1rbyhXLzXTT8CAxnBq3t8RkS5w+XM7cRJtOOfJPJ0S7zs+xlBFuljhB7cLyE
         CLYQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772619496; x=1773224296;
        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=JpRotDvDJ+H6v67uMsFM80otTZemd09qTEWD769DE6g=;
        b=YKbjydRe8YRthVr59bhYAM5GDPIdlAUwTgRShgN9HF153NVo9nYbR4vPdh8uirgBBE
         DdQqTUMoNL3k1jDd3htoAvs2EGxKC8Y4dRo3l0xSU4l7zPkdnGH46f5tcHXxEreWFfvV
         aB321Cbuo0ZIEIfIuwrOr43CQUgsIKWlQ4RpgQJuRDAKX6SNWJChkOX3Bqz12gk4G4W0
         RxNMucgQX+PvFNZz05DZ/sozGTwLJdl+LZFDCdsohl4ecEWOhUdIYjr3yJzViIhpU92D
         ntC0Lan0x6VKX2r1Vl1C3eHPkmuFVfumEaWvat3klng7LWhel02peN7HBBshp34/z7ua
         /DpA==
X-Gm-Message-State: AOJu0YxmWogP8Mq4zJBQw2qk2YBZ7t6laN96J/JyL2RcKZUacKrl4ldp
	DY1pio9/dP5W3XB9AISmRcw9ysy/mD3wT9Ypn6QlwFdvJnVs6+wcMyIbkOs5+pp72hlIfx2iQw4
	yG5Zy+V3UU+vMdghhc65l4n/1s3reeGh9rgdSZ2tBSA==
X-Gm-Gg: ATEYQzyGJlCmqO2C/llGxIEZz8dSYmV6wKYbJJjOS/wkv4nFHStK/Ghvse18leBekjE
	MopIiAkicIyQhZjxNWBen9kwjnnNCB2zsROpAqIEmuejsccIyBWybGxTorkjAlc0E2s1ALlC8xC
	Bx3TozUSuylkhhN16YttYlYztmWgNiq+FjZ8DN1JfdpmtueXyW+cKVvhvHnnxBHtzQANoufNq5Z
	HGXqL6sM5BWtJ/WGZat8W7D1R1Gl26kNgWuUMTCaE0Dit5zOyyTHCoCS4VBY6x66cgvRE7S3CxR
	EMNLJEcfu56jekyW7potLkQZ0pDnDW4YSo9Ndw==
X-Received: by 2002:a05:6808:1523:b0:45f:174a:1297 with SMTP id
 5614622812f47-4651a930c51mr840103b6e.0.1772619496138; Wed, 04 Mar 2026
 02:18:16 -0800 (PST)
MIME-Version: 1.0
References: <cover.1772464956.git.bertrand.marquis@arm.com> <055bed7c55f298a0916518fb61929bfc7dac6ef2.1772464956.git.bertrand.marquis@arm.com>
In-Reply-To: <055bed7c55f298a0916518fb61929bfc7dac6ef2.1772464956.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 4 Mar 2026 11:18:04 +0100
X-Gm-Features: AaiRm51qC8uak2_7R9TRz35VgYWwssl2010_OAlaPhSqRjGyzz2y8BEJ2whLgc0
Message-ID: <CAHUa44GD3UyXgZpQiz9LvAgcBnyL5qc2t3FDEaowjY03cvNrqA@mail.gmail.com>
Subject: Re: [PATCH v2 3/4] xen/arm: ffa: Drop SP subscriber lists
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Mon, Mar 2, 2026 at 4:44=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> The init-time SP cache already contains partition properties, but the
> code still builds separate subscriber arrays for VM created/destroyed
> notifications. That duplicates state and allocation.
>
> Use the cached SP list directly to:
> - decide which SPs receive created/destroyed notifications
> - build the per-domain destroy bitmap
> - skip destroy notifications for SPs not notified on create
>
> Also switch cached SP entry field reads in VM create/destroy
> notification paths to unaligned-safe helpers, as cache entries are
> variable-size and should not be dereferenced via struct pointers.
>
> No functional changes.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes since v1:
> - use unaligned-safe reads for cached SP entry fields
>   (id/partition_properties) in VM create/destroy notification paths
> ---
>  xen/arch/arm/tee/ffa_partinfo.c | 170 +++++++++-----------------------
>  1 file changed, 47 insertions(+), 123 deletions(-)

Looks good.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_parti=
nfo.c
> index b933becaa55a..419e19510f6f 100644
> --- a/xen/arch/arm/tee/ffa_partinfo.c
> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> @@ -29,12 +29,6 @@ struct ffa_partition_info_1_1 {
>      uint8_t uuid[16];
>  };
>
> -/* SPs subscribing to VM_CREATE and VM_DESTROYED events */
> -static uint16_t *subscr_vm_created __read_mostly;
> -static uint16_t subscr_vm_created_count __read_mostly;
> -static uint16_t *subscr_vm_destroyed __read_mostly;
> -static uint16_t subscr_vm_destroyed_count __read_mostly;
> -
>  /* SP list cache (secure endpoints only); populated at init. */
>  static void *sp_list __read_mostly;
>  static uint32_t sp_list_count __read_mostly;
> @@ -92,6 +86,14 @@ static uint16_t ffa_sp_entry_read_id(const void *entry=
)
>                             offsetof(struct ffa_partition_info_1_0, id));
>  }
>
> +static uint32_t ffa_sp_entry_read_partition_properties(const void *entry=
)
> +{
> +    return get_unaligned_t(uint32_t,
> +                           (const uint8_t *)entry +
> +                           offsetof(struct ffa_partition_info_1_0,
> +                                    partition_properties));
> +}
> +
>  static bool ffa_sp_entry_matches_uuid(const void *entry, struct ffa_uuid=
 uuid)
>  {
>      struct ffa_uuid sp_uuid;
> @@ -440,14 +442,6 @@ static void ffa_sp_list_cache_free(void)
>      sp_list_entry_size =3D 0;
>  }
>
> -static void uninit_subscribers(void)
> -{
> -        subscr_vm_created_count =3D 0;
> -        subscr_vm_destroyed_count =3D 0;
> -        XFREE(subscr_vm_created);
> -        XFREE(subscr_vm_destroyed);
> -}
> -
>  static bool ffa_sp_list_cache_init(const void *buf, uint32_t count,
>                                     uint32_t fpi_size)
>  {
> @@ -505,79 +499,6 @@ static bool ffa_sp_list_cache_init(const void *buf, =
uint32_t count,
>      return true;
>  }
>
> -static bool init_subscribers(void *buf, uint16_t count, uint32_t fpi_siz=
e)
> -{
> -    uint16_t n;
> -    uint16_t c_pos;
> -    uint16_t d_pos;
> -    struct ffa_partition_info_1_1 *fpi;
> -
> -    if ( fpi_size < sizeof(struct ffa_partition_info_1_1) )
> -    {
> -        printk(XENLOG_ERR "ffa: partition info size invalid: %u\n", fpi_=
size);
> -        return false;
> -    }
> -
> -    subscr_vm_created_count =3D 0;
> -    subscr_vm_destroyed_count =3D 0;
> -    for ( n =3D 0; n < count; n++ )
> -    {
> -        fpi =3D buf + n * fpi_size;
> -
> -        /*
> -         * We need to have secure partitions using bit 15 set convention=
 for
> -         * secure partition IDs.
> -         * Inform the user with a log and discard giving created or dest=
roy
> -         * event to those IDs.
> -         */
> -        if ( !FFA_ID_IS_SECURE(fpi->id) )
> -        {
> -            printk_once(XENLOG_ERR
> -                        "ffa: Firmware is not using bit 15 convention fo=
r IDs !!\n");
> -            printk(XENLOG_ERR
> -                   "ffa: Secure partition with id 0x%04x cannot be used\=
n",
> -                   fpi->id);
> -        }
> -        else
> -        {
> -            if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_CREATED=
 )
> -                subscr_vm_created_count++;
> -            if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_DESTROY=
ED )
> -                subscr_vm_destroyed_count++;
> -        }
> -    }
> -
> -    if ( subscr_vm_created_count )
> -        subscr_vm_created =3D xzalloc_array(uint16_t, subscr_vm_created_=
count);
> -    if ( subscr_vm_destroyed_count )
> -        subscr_vm_destroyed =3D xzalloc_array(uint16_t,
> -                                            subscr_vm_destroyed_count);
> -    if ( (subscr_vm_created_count && !subscr_vm_created) ||
> -         (subscr_vm_destroyed_count && !subscr_vm_destroyed) )
> -    {
> -        printk(XENLOG_ERR "ffa: Failed to allocate subscription lists\n"=
);
> -        uninit_subscribers();
> -        return false;
> -    }
> -
> -    for ( c_pos =3D 0, d_pos =3D 0, n =3D 0; n < count; n++ )
> -    {
> -        fpi =3D buf + n * fpi_size;
> -
> -        if ( FFA_ID_IS_SECURE(fpi->id) )
> -        {
> -            if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_CREATED=
 )
> -                subscr_vm_created[c_pos++] =3D fpi->id;
> -            if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_DESTROY=
ED )
> -                subscr_vm_destroyed[d_pos++] =3D fpi->id;
> -        }
> -    }
> -
> -    return true;
> -}
> -
> -
> -
>  bool ffa_partinfo_init(void)
>  {
>      bool ret =3D false;
> @@ -617,52 +538,39 @@ bool ffa_partinfo_init(void)
>          goto out_release_rx;
>      }
>
> -    if ( !init_subscribers(sp_list, sp_list_count, sp_list_entry_size) )
> -        goto out_free_sp_cache;
> -
>      ret =3D true;
>      goto out_release_rx;
>
> -out_free_sp_cache:
> -    ffa_sp_list_cache_free();
> -
>  out_release_rx:
>      e =3D ffa_rxtx_spmc_rx_release(notify_fw);
>      if ( e )
>          printk(XENLOG_WARNING "ffa: Error releasing SPMC RX buffer: %d\n=
", e);
> -
> +    if ( !ret )
> +        ffa_sp_list_cache_free();
>      return ret;
>  }
>
> -static bool is_in_subscr_list(const uint16_t *subscr, uint16_t start,
> -                              uint16_t end, uint16_t sp_id)
> +static void vm_destroy_bitmap_init(struct ffa_ctx *ctx,
> +                                   unsigned int first_unnotified)
>  {
>      unsigned int n;
>
> -    for ( n =3D start; n < end; n++ )
> +    for ( n =3D 0; n < sp_list_count; n++ )
>      {
> -        if ( subscr[n] =3D=3D sp_id )
> -            return true;
> -    }
> -
> -    return false;
> -}
> +        const void *entry =3D sp_list + n * sp_list_entry_size;
> +        uint32_t partition_props =3D
> +            ffa_sp_entry_read_partition_properties(entry);
>
> -static void vm_destroy_bitmap_init(struct ffa_ctx *ctx,
> -                                   unsigned int create_signal_count)
> -{
> -    unsigned int n;
> +        if ( !(partition_props & FFA_PART_PROP_NOTIF_DESTROYED) )
> +            continue;
>
> -    for ( n =3D 0; n < subscr_vm_destroyed_count; n++ )
> -    {
>          /*
>           * Skip SPs subscribed to the VM created event that never was
>           * notified of the VM creation due to an error during
>           * ffa_domain_init().
>           */
> -        if ( is_in_subscr_list(subscr_vm_created, create_signal_count,
> -                               subscr_vm_created_count,
> -                               subscr_vm_destroyed[n]) )
> +        if ( (partition_props & FFA_PART_PROP_NOTIF_CREATED) &&
> +             n >=3D first_unnotified )
>              continue;
>
>          set_bit(n, ctx->vm_destroy_bitmap);
> @@ -671,32 +579,42 @@ static void vm_destroy_bitmap_init(struct ffa_ctx *=
ctx,
>
>  int32_t ffa_partinfo_domain_init(struct domain *d)
>  {
> -    unsigned int count =3D BITS_TO_LONGS(subscr_vm_destroyed_count);
> +    unsigned int count =3D BITS_TO_LONGS(sp_list_count);
>      struct ffa_ctx *ctx =3D d->arch.tee;
>      unsigned int n;
> +    unsigned int first_unnotified =3D sp_list_count;
>      int32_t res;
>
> -    if ( !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32) )
> +    if ( !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32) || !sp_list_co=
unt )
>          return 0;
>
>      ctx->vm_destroy_bitmap =3D xzalloc_array(unsigned long, count);
>      if ( !ctx->vm_destroy_bitmap )
>          return -ENOMEM;
>
> -    for ( n =3D 0; n < subscr_vm_created_count; n++ )
> +    for ( n =3D 0; n < sp_list_count; n++ )
>      {
> -        res =3D ffa_direct_req_send_vm(subscr_vm_created[n], ffa_get_vm_=
id(d),
> +        const void *entry =3D sp_list + n * sp_list_entry_size;
> +        uint32_t partition_props =3D
> +            ffa_sp_entry_read_partition_properties(entry);
> +        uint16_t id =3D ffa_sp_entry_read_id(entry);
> +
> +        if ( !(partition_props & FFA_PART_PROP_NOTIF_CREATED) )
> +            continue;
> +
> +        res =3D ffa_direct_req_send_vm(id, ffa_get_vm_id(d),
>                                       FFA_MSG_SEND_VM_CREATED);
>          if ( res )
>          {
>              printk(XENLOG_ERR "ffa: Failed to report creation of vm_id %=
u to  %u: res %d\n",
> -                   ffa_get_vm_id(d), subscr_vm_created[n], res);
> +                   ffa_get_vm_id(d), id, res);
> +            first_unnotified =3D n;
>              break;
>          }
>      }
> -    vm_destroy_bitmap_init(ctx, n);
> +    vm_destroy_bitmap_init(ctx, first_unnotified);
>
> -    if ( n !=3D subscr_vm_created_count )
> +    if ( first_unnotified !=3D sp_list_count )
>          return -EIO;
>
>      return 0;
> @@ -711,18 +629,24 @@ bool ffa_partinfo_domain_destroy(struct domain *d)
>      if ( !ctx->vm_destroy_bitmap )
>          return true;
>
> -    for ( n =3D 0; n < subscr_vm_destroyed_count; n++ )
> +    for ( n =3D 0; n < sp_list_count; n++ )
>      {
> +        const void *entry;
> +        uint16_t id;
> +
>          if ( !test_bit(n, ctx->vm_destroy_bitmap) )
>              continue;
>
> -        res =3D ffa_direct_req_send_vm(subscr_vm_destroyed[n], ffa_get_v=
m_id(d),
> +        entry =3D sp_list + n * sp_list_entry_size;
> +        id =3D ffa_sp_entry_read_id(entry);
> +
> +        res =3D ffa_direct_req_send_vm(id, ffa_get_vm_id(d),
>                                       FFA_MSG_SEND_VM_DESTROYED);
>
>          if ( res && printk_ratelimit() )
>              printk(XENLOG_WARNING
>                     "%pd: ffa: Failed to report destruction of vm_id %u t=
o %u: res %d\n",
> -                   d, ffa_get_vm_id(d), subscr_vm_destroyed[n], res);
> +                   d, ffa_get_vm_id(d), id, res);
>
>          /*
>           * For these two error codes the hypervisor is expected to resen=
d
> @@ -734,7 +658,7 @@ bool ffa_partinfo_domain_destroy(struct domain *d)
>              clear_bit(n, ctx->vm_destroy_bitmap);
>      }
>
> -    if ( bitmap_empty(ctx->vm_destroy_bitmap, subscr_vm_destroyed_count)=
 )
> +    if ( bitmap_empty(ctx->vm_destroy_bitmap, sp_list_count) )
>          XFREE(ctx->vm_destroy_bitmap);
>
>      return !ctx->vm_destroy_bitmap;
> --
> 2.52.0
>


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 10:44:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 10:44:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245266.1544649 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxji0-0007M8-TL; Wed, 04 Mar 2026 10:44:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245266.1544649; Wed, 04 Mar 2026 10: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 1vxji0-0007M1-Qh; Wed, 04 Mar 2026 10:44:04 +0000
Received: by outflank-mailman (input) for mailman id 1245266;
 Wed, 04 Mar 2026 10: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=Xh4z=BE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxjhz-0007Lr-7u
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 10:44:03 +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 0e5674f7-17b7-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 11:44:01 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4806f3fc50bso71249335e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 02:44:01 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4851887fc54sm48841655e9.10.2026.03.04.02.44.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Mar 2026 02: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: 0e5674f7-17b7-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772621041; x=1773225841; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QYAuifAC8Um5lkP5nfFAspiUlL5BmUJFZgO7RjydX+o=;
        b=CiNOssJ1TbC8MSJmizdZ0Hur9HOqW9ImuLE8OwX3WdgRP0KhVI29jggepvrFEADLqH
         LYrpw3ljjUbkxEboqfnYc4HJ74yLe3EAyCMHxad6w+SMXDd9b9I28r0eAYZi5+4lKrhG
         E79u1Gkp1210H1WEqKj/U4Yt555gmByPNTKzcfetXd5LjL1Iie8FhTYXTQba+sknX3Hv
         z2F3VZ8hnlruMH91OUQP9fQyM6/1Dd9nO8/pNQ54Jfs/j7Lo3yAna1blB1wfrlZrRZQb
         W0r1jhD5w9ivQFptigTL7HBqAYmIgQpkxyoN0acoW+reyeV8hr2Lq/ybkL8NqeWMvANG
         G3Lw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772621041; x=1773225841;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QYAuifAC8Um5lkP5nfFAspiUlL5BmUJFZgO7RjydX+o=;
        b=u96xQG6/41fOo79wCcGIeebw2zYKrze0XxmZhUWukSMlOXDYWn+aIo6YRD0wkPurkv
         DrnEEBCYOCMGCdEosgxYHIa88NNKQO6IEPFRv7CK5Z0tDXKOkQQ5BuKshAS3Ct6Y9MK8
         FcJoeDxXjWqekdk2NzZS/6r2rm6o2XmF/L13Or0zXoKk0Z8oBDQ7yFpYUswy9v6TeQeL
         pmo2limMsDRvEjgk/SvWwF3FjevampSqYgS2/vnDT887OIknUPp+RVWdUyK4zeVS0N7l
         JFnVI7x68SKt1AiWTR6/qES7QPHyNJkuhRUmnfnK7tNppAi2sEZcq1GufqCtmL7nly7c
         QysQ==
X-Forwarded-Encrypted: i=1; AJvYcCWt5W3N2X6OCxeigJyEw26Fwcnjx9uLU0AM5xqFz2GSvoZ0t7G34xXKIDcFHFwGpWNCX13KlTro+k4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwzXY6EF8a2sh6dM0N+1KrBzWLE54zjOiKdX/dKtCzr/wmDwRJL
	UCyBefpPlDd4WujhoEtlSQE8QlIRBZL32t0Tu0b86p/Xv0ZZGD2D5IB6dpmWO6uTVA==
X-Gm-Gg: ATEYQzwZy7K3RaSVatVcy2ur+H/B9gkY9RzUTnwHN/qiUA4Z/3Bn/4vo3iOmAewIA6j
	yCQ/jZ0FraBBVrhGF6k6J7jfUXPJ8ek2usDRo48bWTzgREb346FnAtyPFeLN5wBMox50TRhZNSd
	6V7gUX0ysPOZzsBDtDoHsVt2fXg/aKIF5fHZczBQMnUjPvCumdY7+ipHh+Z2NQW8pDDQTYLj3Rr
	rcIYky3cwBaDKhfRivVr2lLkiqdAClRwyZg6Maka0iZad0zQ3li5xnrF8l9p997LTYi8AwPYEsG
	aIMW8y+hrIWPP8MuTtXC7m9a16KkXs5aLsv0bQXUnu9LLOptRrcRgX5154of/PPDXZwsnIK1rYF
	VXpEeM0oZIbekWXXzBHzIzcVJOtC6hrz6Nw35ghg6g6eDbhNAkRsHfP4SdwuFtPRaMdUuoXRFhj
	3BVwPJ6pz2RH+g5QA26fhpHAsDxStuWmuwAztvI4ssCk3jVXbCxgmc6pzuPcasXvwxafZhZaHAV
	82/xqYMaAsPhgY=
X-Received: by 2002:a05:600c:608c:b0:483:bcff:7948 with SMTP id 5b1f17b1804b1-48519847972mr24952405e9.10.1772621040831;
        Wed, 04 Mar 2026 02:44:00 -0800 (PST)
Message-ID: <639231a2-c8c4-43c8-84a2-b4797e88d9fb@suse.com>
Date: Wed, 4 Mar 2026 11:43:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] arm/mm: Fix resource handling in
 xenmem_add_to_physmap_one
To: Michal Orzel <michal.orzel@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <20260304093923.14293-1-michal.orzel@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260304093923.14293-1-michal.orzel@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.03.2026 10:39, Michal Orzel wrote:
> @@ -237,13 +239,73 @@ int xenmem_add_to_physmap_one(
>          break;
>      }
>      case XENMAPSPACE_dev_mmio:
> -        rc = map_dev_mmio_page(d, gfn, _mfn(idx));
> -        return rc;
> +        if ( !iomem_access_permitted(d, idx, idx) )
> +            return 0;
> +
> +        mfn = _mfn(idx);
> +        t = p2m_mmio_direct_c;
> +        break;
>  
>      default:
>          return -ENOSYS;
>      }
>  
> +    /*
> +     * Release the old page reference if it was present.
> +     *
> +     * TODO: There are race conditions in this code due to multiple lock/unlock
> +     * cycles:
> +     *
> +     * Race #1: Between checking the old mapping and removing it, another CPU
> +     * could replace the mapping. We would then remove the wrong mapping.
> +     *
> +     * Race #2: Between removing the old mapping and inserting the new one,
> +     * another CPU could insert a different mapping. We would then silently
> +     * overwrite it.

Can't such races be abused in a security relevant way, e.g. causing leaks of
some sort?

> +     * For now, we accept these races as they require concurrent
> +     * xenmem_add_to_physmap_one operations on the same GFN, which is not a
> +     * normal usage pattern.
> +     */
> +    p2m_read_lock(p2m);
> +    mfn_old = p2m_get_entry(p2m, gfn, &p2mt_old, NULL, NULL, NULL);
> +    p2m_read_unlock(p2m);
> +
> +    if ( mfn_valid(mfn_old) && !mfn_eq(mfn, mfn_old) )
> +    {
> +        if ( is_special_page(mfn_to_page(mfn_old)) )
> +        {
> +            /* Just unmap, don't free */
> +            p2m_write_lock(p2m);
> +            rc = p2m_set_entry(p2m, gfn, 1, INVALID_MFN,
> +                               p2m_invalid, p2m->default_access);
> +            p2m_write_unlock(p2m);
> +            if ( rc )
> +                goto out;
> +        }
> +        else if ( p2m_is_mmio(p2mt_old) || p2m_is_grant(p2mt_old) )
> +        {
> +            /* Reject MMIO and grant replacements */
> +            rc = -EPERM;
> +            goto out;
> +        }
> +        else
> +        {
> +            /* Allow RAM and foreign - both have proper cleanup */
> +            rc = guest_remove_page(d, gfn_x(gfn));
> +            if ( rc )
> +                goto out;
> +        }
> +    }
> +    else if ( mfn_valid(mfn_old) )
> +    {
> +        /* Mapping already exists. Drop the references taken above */
> +        if ( page != NULL )
> +            put_page(page);
> +
> +        return 0;

Is this correct regardless of p2mt_old?

> +    }

!mfn_valid(mfn_old) doesn't imply there was no valid mapping. It could be an
MMIO one with an MFN which simply has no associated struct page_info.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 10:44:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 10:44:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245268.1544660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxjiG-0007eX-4v; Wed, 04 Mar 2026 10:44:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245268.1544660; Wed, 04 Mar 2026 10:44:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxjiG-0007eQ-1v; Wed, 04 Mar 2026 10:44:20 +0000
Received: by outflank-mailman (input) for mailman id 1245268;
 Wed, 04 Mar 2026 10:44:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JkSz=BE=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vxjiE-0007dg-Bp
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 10:44:18 +0000
Received: from mail-oa1-x2b.google.com (mail-oa1-x2b.google.com
 [2001:4860:4864:20::2b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1655a109-17b7-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 11:44:16 +0100 (CET)
Received: by mail-oa1-x2b.google.com with SMTP id
 586e51a60fabf-4152698e745so702070fac.1
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 02:44: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: 1655a109-17b7-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1772621054; cv=none;
        d=google.com; s=arc-20240605;
        b=Y1zBp6fGmxJsW1WCuy9jCleg26qqAY2WFx4DenpauXdPPdl4vWRGfEP2iMm0haYLO6
         pbeBjsYiOk39pKbBMofbGlvA80kK/4mIyG/6b7aRe91lwDn+9uewzGQdXHFdPXou1WpC
         Zk7G/1hvEpmKjwSRulP7Qa+tWZlkjyc256+Sf3P8P4+i88ofYYnhJ493gS8Z8gQHFlgW
         FVNvuIGMq4gb+N8iWBA8E7eGaskzkybjd6nPUzdo7RHj6GKtInjJfYVhE3q+HPaV63BL
         4dfOYhhajRHaoBd3+6TJe1yC/hJZn0eutA0VetZyL9G/SJC/OURRbuOdBU27XpZI/ttw
         Ml9w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=GxCxuIeq0ZlkpJHq3FJYHVbyqA6Ag06ecfzQyA5N5dQ=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=UIYoTqjW3FNt1YPi0kDLkGDYpSnTBQD3SAOPR2LYvypyOYbboRkddku3fBn9mZXU2v
         xCRfHSqbqHqO17nw0Kfqe2Luk19BJem1ViprVYca8ouDTxv8nfIQq5DygE4wEbnbFIeS
         y8r5jVWszgvmye0spS5qQrGpFdPdL2nv53mx1jFpGHiiJyu+reKPNgYxqb1a1IRbgCTT
         JxZMIy0iGmOfdWP+pghgvoAeJl1XKaj/8WjrCl3YN0xO6iAGyc0L5iFxJZ6nLbd6ppyD
         FIvF3vXKD4Z7MD0TsXosk9esakxzv+0vGep42ABa28GSOnZzvfsynuzZfCf3M6wzRlSY
         zWIw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1772621054; x=1773225854; 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=GxCxuIeq0ZlkpJHq3FJYHVbyqA6Ag06ecfzQyA5N5dQ=;
        b=SJLINArzjfaBNxiVgVmUl8wXsZLCbblfHgg0j81x6YduThLu7PbAN6P5shw6QH21is
         xKLLZ5mOlBIwRIMPL0CBEKap8xBywxFL4SfPe9LScSH6wzZtHWMeCphuKAbHwgOqkbHd
         V6xRSkcaay03U73zMRdA1n8rs0vfwi5BjWXB0ZIjZFLDxr//HUn/b8GCP8x5jO7PANe3
         YrW34uWPzXKHk3byR7QvZAmEbIDqtQ3ILfhkS+9hqs8kfGx6zTOJNeOhpvQ1So+IYhIB
         YFI5JOD18q5QYj4omEvDBKitKWaNumWMsryqkJy7x1T2pEOmiq/uvwKuMcL1AkVKCUeq
         GwPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772621054; x=1773225854;
        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=GxCxuIeq0ZlkpJHq3FJYHVbyqA6Ag06ecfzQyA5N5dQ=;
        b=fKlCz5eZBUlS3zAMMRRpVrJUVXBG2D8ym+U64XCaUyg8/Sl6q+k96e/D7f9Y6ibX73
         vPU/cXqtitMTdGyJ0KUIlFKVomO+ehdFypI5xWtOLbCzcet7P40VNQaiU+9fX5x0i3+I
         scp4VEMsHQIgXF+XGKIzT95d+uL82+UAWY+TWqNR9SXjOHL06aK8Dl9c0H0MqwsiOec/
         yk3699s+pVoDIqmtSV1yBSVGY3Clk8BbpCedIZLKskmbIALTPIxwrsPDW0MrOKXYqN0H
         jmSxY3h1VX/O4TvB17iv07pz/F2AxCAZFK+gMaItCtOnBG4cvYpt8rrHHVLophCrjsn3
         mqpg==
X-Gm-Message-State: AOJu0Yww5ErXZ0NKoXKXaZLDgwApur7Qi1y+onsz4fyZebJpZzG1QS4c
	Ulw9aLeYy1AQWZ3D5aJX171ZQlB7ha/Hz2E1T9bDnE57YL5rs2Pld5HZzqggc5ynsc3sjtx4uM9
	DBMd/8ykOVA00+zd5sRFwm2Ebb/8pQYxiz/WYFt3FYg==
X-Gm-Gg: ATEYQzwPpmkR3CexVA1vMwCICtyyWQ6JWZpAKu5k40WV9IhbVRKvWGwXN2sC+y0jdXQ
	mYIKCTgd1hE/1VZ2V8KnE71cMzrQC8kF91lSl9mi2PD7Xuu9XU6bVY6URJF6L6fJd/2YsSwvaKU
	nUzPvw+2fjM6Ghem71W0caBZrlhvARRdZvh4v6bN75vVwt02qWBD3+x19wa82EWfXkHTM5vhXE6
	HD6qopkUhexg1JPYzz2n6Pc9NZFvhA+c669wXdgMSC9iSSQxtdqSgZ2qa4MggVdL6Q3r85QmrS3
	hdvgDn38H9rdouSHOLaGCaxib6zstm9cfJE8QQ==
X-Received: by 2002:a05:6870:f2aa:b0:40f:c84:e59b with SMTP id
 586e51a60fabf-416aba6999bmr906334fac.30.1772621053783; Wed, 04 Mar 2026
 02:44:13 -0800 (PST)
MIME-Version: 1.0
References: <cover.1772464956.git.bertrand.marquis@arm.com> <a7a2ba28c75241c1f1340482ed31d521ef38d218.1772464956.git.bertrand.marquis@arm.com>
In-Reply-To: <a7a2ba28c75241c1f1340482ed31d521ef38d218.1772464956.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 4 Mar 2026 11:44:02 +0100
X-Gm-Features: AaiRm53ynxyazzqty8FDyjUylSW0eVwQ7WkkuOEBqe5vudRypS-nm3kCiGgnB4A
Message-ID: <CAHUa44G3g+tLiViNh32ryVCmtfdWJNozmkOhVpYr_zgb7ks5Ng@mail.gmail.com>
Subject: Re: [PATCH v2 4/4] xen/arm: ffa: Add cached GET_REGS support
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Mon, Mar 2, 2026 at 4:44=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> FF-A v1.2 defines PARTITION_INFO_GET_REGS for register-based partition
> info retrieval, but Xen currently only supports the buffer-based GET
> path for guests.
>
> Implement GET_REGS using the cached SP list and VM entries, including
> the register window layout and input validation. Track VM list changes
> via the partinfo tag and use it to validate GET_REGS tag inputs. Ensure
> that when a non-Nil UUID is specified, the UUID fields in both GET and
> GET_REGS results are MBZ as required by the specification.
>
> PARTITION_INFO_GET_REGS is available to v1.2 guests, returning cached SP
> entries and VM entries with UUIDs zeroed for non-Nil UUID queries.
>
> Also publish VM membership updates (VM count, ctx list, and partinfo
> tag) under the same write-locked section so GET_REGS sees coherent state
> and concurrent changes are reliably reported via RETRY.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes since v1:
> - ignore x4-x17 not being zero and x3 bits 63-32 not being zero (defined
>   as SBZ in the spec)
> - detect tag changes during GET_REGS handling and return RETRY
> - remove strict check of sp_list_entry_size, larger cache entry sizes
>   will now be accepted
> - publish VM count, ctx list, and partinfo tag updates under
>   ffa_ctx_list_rwlock for coherent visibility
> ---
>  xen/arch/arm/tee/ffa.c          |  23 +++-
>  xen/arch/arm/tee/ffa_partinfo.c | 200 ++++++++++++++++++++++++++++++++
>  xen/arch/arm/tee/ffa_private.h  |   4 +-
>  3 files changed, 223 insertions(+), 4 deletions(-)
>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index aa43ae2595d7..d6cae67e1a48 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -44,6 +44,11 @@
>   *   - doesn't support signalling the secondary scheduler of pending
>   *     notification for secure partitions
>   *   - doesn't support notifications for Xen itself
> + * o FFA_PARTITION_INFO_GET/GET_REGS:
> + *   - v1.0 guests may see duplicate SP IDs when firmware provides UUIDs
> + *   - SP list is cached at init; SPMC tag changes are not tracked
> + *     between calls
> + *   - SP list is capped at FFA_MAX_NUM_SP entries
>   *
>   * There are some large locked sections with ffa_spmc_tx_lock and
>   * ffa_spmc_rx_lock. Especially the ffa_spmc_tx_lock spinlock used
> @@ -183,10 +188,11 @@ static bool ffa_negotiate_version(struct cpu_user_r=
egs *regs)
>
>          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);
> +            /* Publish VM membership changes atomically with tag updates=
. */
> +            inc_ffa_vm_count();
>              list_add_tail(&ctx->ctx_list, &ffa_ctx_head);
> +            ffa_partinfo_inc_tag();
>              write_unlock(&ffa_ctx_list_rwlock);
>          }
>
> @@ -341,6 +347,12 @@ static void handle_features(struct cpu_user_regs *re=
gs)
>      case FFA_FEATURE_SCHEDULE_RECV_INTR:
>          ffa_set_regs_success(regs, GUEST_FFA_SCHEDULE_RECV_INTR_ID, 0);
>          break;
> +    case FFA_PARTITION_INFO_GET_REGS:
> +        if ( ACCESS_ONCE(ctx->guest_vers) >=3D FFA_VERSION_1_2 )
> +            ffa_set_regs_success(regs, 0, 0);
> +        else
> +            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> +        break;
>
>      case FFA_NOTIFICATION_BIND:
>      case FFA_NOTIFICATION_UNBIND:
> @@ -402,6 +414,9 @@ static bool ffa_handle_call(struct cpu_user_regs *reg=
s)
>      case FFA_PARTITION_INFO_GET:
>          ffa_handle_partition_info_get(regs);
>          return true;
> +    case FFA_PARTITION_INFO_GET_REGS:
> +        ffa_handle_partition_info_get_regs(regs);
> +        return true;
>      case FFA_RX_RELEASE:
>          e =3D ffa_rx_release(ctx);
>          break;
> @@ -625,9 +640,11 @@ static int ffa_domain_teardown(struct domain *d)
>
>      if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && ACCESS_ONCE(ctx->guest_vers)=
 )
>      {
> -        dec_ffa_vm_count();
>          write_lock(&ffa_ctx_list_rwlock);
> +        /* Publish VM membership changes atomically with tag updates. */
> +        dec_ffa_vm_count();
>          list_del(&ctx->ctx_list);
> +        ffa_partinfo_inc_tag();
>          write_unlock(&ffa_ctx_list_rwlock);
>      }
>
> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_parti=
nfo.c
> index 419e19510f6f..16da5ee567db 100644
> --- a/xen/arch/arm/tee/ffa_partinfo.c
> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> @@ -29,10 +29,39 @@ struct ffa_partition_info_1_1 {
>      uint8_t uuid[16];
>  };
>
> +/* Registers a3..a17 (15 regs) carry partition descriptors, 3 regs each.=
 */
> +#define FFA_PARTINFO_REG_MAX_ENTRIES \
> +    ((15 * sizeof(uint64_t)) / sizeof(struct ffa_partition_info_1_1))
> +
>  /* SP list cache (secure endpoints only); populated at init. */
>  static void *sp_list __read_mostly;
>  static uint32_t sp_list_count __read_mostly;
>  static uint32_t sp_list_entry_size __read_mostly;
> +
> +/* SP list is static; tag only moves when VMs are added/removed. */
> +static atomic_t ffa_partinfo_tag =3D ATOMIC_INIT(1);
> +
> +void ffa_partinfo_inc_tag(void)
> +{
> +    atomic_inc(&ffa_partinfo_tag);
> +}
> +
> +static inline uint16_t ffa_partinfo_get_tag(void)
> +{
> +    /*
> +     * Tag moves with VM list changes only.
> +     *
> +     * Limitation: we cannot detect an SPMC tag change between calls bec=
ause we
> +     * do not retain the previous SPMC tag; we only refresh it via the m=
andatory
> +     * start_index=3D0 call and assume it stays stable while combined_ta=
g (our
> +     * VM/SP-count tag) is used for guest validation. This means SPMC ta=
g
> +     * changes alone will not trigger RETRY.
> +     */
> +    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> +        return atomic_read(&ffa_partinfo_tag) & GENMASK(15, 0);
> +    else
> +        return 1;
> +}

Please add an empty line here.

>  static int32_t ffa_partition_info_get(struct ffa_uuid uuid, uint32_t fla=
gs,
>                                        uint32_t *count, uint32_t *fpi_siz=
e)
>  {
> @@ -140,6 +169,7 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uuid uu=
id, uint32_t *sp_count,
>      for ( n =3D 0; n < sp_list_count; n++ )
>      {
>          void *entry =3D sp_list + n * sp_list_entry_size;
> +        void *dst_pos;
>
>          if ( !ffa_sp_entry_matches_uuid(entry, uuid) )
>              continue;
> @@ -151,11 +181,20 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uuid =
uuid, uint32_t *sp_count,
>           * This is a non-compliance to the specification but 1.0 VMs sho=
uld
>           * handle that on their own to simplify Xen implementation.
>           */
> +        dst_pos =3D *dst_buf;
>          ret =3D ffa_copy_info(dst_buf, end_buf, entry, dst_size,
>                              sp_list_entry_size);
>          if ( ret )
>              return ret;
>
> +        if ( !ffa_uuid_is_nil(uuid) &&
> +             dst_size >=3D sizeof(struct ffa_partition_info_1_1) )
> +        {
> +            struct ffa_partition_info_1_1 *fpi =3D dst_pos;
> +
> +            memset(fpi->uuid, 0, sizeof(fpi->uuid));
> +        }
> +
>          count++;
>      }
>
> @@ -167,6 +206,38 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uuid u=
uid, uint32_t *sp_count,
>      return FFA_RET_OK;
>  }
>
> +static uint16_t ffa_get_sp_partinfo_regs(struct ffa_uuid uuid,
> +                                         uint16_t start_index,
> +                                         uint64_t *out_regs,
> +                                         uint16_t max_entries)
> +{
> +    uint32_t idx =3D 0;
> +    uint16_t filled =3D 0;
> +    uint32_t n;
> +
> +    for ( n =3D 0; n < sp_list_count && filled < max_entries; n++ )
> +    {
> +        void *entry =3D sp_list + n * sp_list_entry_size;
> +
> +        if ( !ffa_sp_entry_matches_uuid(entry, uuid) )
> +            continue;
> +
> +        if ( idx++ < start_index )
> +            continue;
> +
> +        memcpy(&out_regs[filled * 3], entry,
> +               sizeof(struct ffa_partition_info_1_1));
> +        if ( !ffa_uuid_is_nil(uuid) )
> +        {
> +            out_regs[filled * 3 + 1] =3D 0;
> +            out_regs[filled * 3 + 2] =3D 0;
> +        }
> +        filled++;
> +    }
> +
> +    return filled;
> +}
> +
>  static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t start_=
index,
>                                     uint32_t *vm_count, void **dst_buf,
>                                     void *end_buf, uint32_t dst_size)
> @@ -383,6 +454,135 @@ out:
>      }
>  }
>
> +void ffa_handle_partition_info_get_regs(struct cpu_user_regs *regs)
> +{
> +    struct domain *d =3D current->domain;
> +    struct ffa_ctx *ctx =3D d->arch.tee;
> +    struct ffa_uuid uuid;
> +    uint32_t sp_count =3D 0, vm_count =3D 0, total_count;
> +    uint16_t start_index, tag;
> +    uint16_t num_entries =3D 0;
> +    uint64_t x3 =3D get_user_reg(regs, 3);
> +    int32_t ret =3D FFA_RET_OK;
> +    uint64_t out_regs[18] =3D { 0 };
> +    unsigned int n;
> +    uint16_t tag_out, tag_end;
> +
> +    if ( ACCESS_ONCE(ctx->guest_vers) < FFA_VERSION_1_2 )
> +    {
> +        ret =3D FFA_RET_NOT_SUPPORTED;
> +        goto out;
> +    }
> +
> +    /*
> +     * Registers a3..a17 (15 regs) carry partition descriptors, 3 regs e=
ach.
> +     * For FF-A 1.2, that yields a maximum of 5 entries per GET_REGS cal=
l.
> +     * Enforce the assumed layout so window sizing stays correct.
> +     */
> +    BUILD_BUG_ON(FFA_PARTINFO_REG_MAX_ENTRIES !=3D 5);
> +
> +    start_index =3D x3 & GENMASK(15, 0);
> +    tag =3D (x3 >> 16) & GENMASK(15, 0);
> +
> +    /* Start index must allow room for up to 5 entries without 16-bit ov=
erflow. */

Nit: The line above is over 80 columns.

With or without the line above fixed. Looks good.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

> +    if ( start_index > (GENMASK(15, 0) - (FFA_PARTINFO_REG_MAX_ENTRIES -=
 1)) )
> +    {
> +        ret =3D FFA_RET_INVALID_PARAMETERS;
> +        goto out;
> +    }
> +
> +    uuid.val[0] =3D get_user_reg(regs, 1);
> +    uuid.val[1] =3D get_user_reg(regs, 2);
> +
> +    tag_out =3D ffa_partinfo_get_tag();
> +
> +    if ( start_index =3D=3D 0 )
> +    {
> +        if ( tag )
> +        {
> +            ret =3D FFA_RET_INVALID_PARAMETERS;
> +            goto out;
> +        }
> +    }
> +    else if ( tag !=3D tag_out )
> +    {
> +        ret =3D FFA_RET_RETRY;
> +        goto out;
> +    }
> +
> +    if ( ffa_uuid_is_nil(uuid) )
> +    {
> +        if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> +            vm_count =3D get_ffa_vm_count();
> +        else
> +            vm_count =3D 1; /* Caller VM only */
> +    }
> +
> +    ret =3D ffa_get_sp_count(uuid, &sp_count);
> +    if ( ret )
> +        goto out;
> +
> +    total_count =3D sp_count + vm_count;
> +
> +    if ( total_count =3D=3D 0 || start_index >=3D total_count )
> +    {
> +        ret =3D FFA_RET_INVALID_PARAMETERS;
> +        goto out;
> +    }
> +
> +    if ( start_index < sp_count )
> +        num_entries =3D ffa_get_sp_partinfo_regs(uuid, start_index, &out=
_regs[3],
> +                                               FFA_PARTINFO_REG_MAX_ENTR=
IES);
> +
> +    if ( num_entries < FFA_PARTINFO_REG_MAX_ENTRIES )
> +    {
> +        uint32_t vm_start =3D start_index > sp_count ?
> +                            start_index - sp_count : 0;
> +        uint32_t filled =3D 0;
> +        void *vm_dst =3D &out_regs[3 + num_entries * 3];
> +        void *vm_end =3D &out_regs[18];
> +
> +        ret =3D ffa_get_vm_partinfo(uuid, vm_start, &filled, &vm_dst, vm=
_end,
> +                                  sizeof(struct ffa_partition_info_1_1))=
;
> +        if ( ret !=3D FFA_RET_OK && ret !=3D FFA_RET_NO_MEMORY )
> +            goto out;
> +
> +        num_entries +=3D filled;
> +    }
> +
> +    if ( num_entries =3D=3D 0 )
> +    {
> +        ret =3D FFA_RET_INVALID_PARAMETERS;
> +        goto out;
> +    }
> +
> +    /*
> +     * Detect list changes while building the response so the caller can=
 retry
> +     * with a coherent snapshot tag.
> +     */
> +    tag_end =3D ffa_partinfo_get_tag();
> +    if ( tag_end !=3D tag_out )
> +    {
> +        ret =3D FFA_RET_RETRY;
> +        goto out;
> +    }
> +
> +    out_regs[0] =3D FFA_SUCCESS_64;
> +    out_regs[2] =3D ((uint64_t)sizeof(struct ffa_partition_info_1_1) << =
48) |
> +                  ((uint64_t)tag_end << 32) |
> +                  ((uint64_t)(start_index + num_entries - 1) << 16) |
> +                  ((uint64_t)(total_count - 1) & GENMASK(15, 0));
> +
> +    for ( n =3D 0; n < ARRAY_SIZE(out_regs); n++ )
> +        set_user_reg(regs, n, out_regs[n]);
> +
> +    return;
> +
> +out:
> +    if ( ret )
> +        ffa_set_regs_error(regs, ret);
> +}
> +
>  static int32_t ffa_direct_req_send_vm(uint16_t sp_id, uint16_t vm_id,
>                                        uint8_t msg)
>  {
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index 1a632983c860..c291f32b56ff 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -289,7 +289,7 @@
>  #define FFA_MSG_SEND2                   0x84000086U
>  #define FFA_CONSOLE_LOG_32              0x8400008AU
>  #define FFA_CONSOLE_LOG_64              0xC400008AU
> -#define FFA_PARTITION_INFO_GET_REGS     0x8400008BU
> +#define FFA_PARTITION_INFO_GET_REGS     0xC400008BU
>  #define FFA_MSG_SEND_DIRECT_REQ2        0xC400008DU
>  #define FFA_MSG_SEND_DIRECT_RESP2       0xC400008EU
>
> @@ -452,6 +452,8 @@ bool ffa_partinfo_init(void);
>  int32_t ffa_partinfo_domain_init(struct domain *d);
>  bool ffa_partinfo_domain_destroy(struct domain *d);
>  void ffa_handle_partition_info_get(struct cpu_user_regs *regs);
> +void ffa_handle_partition_info_get_regs(struct cpu_user_regs *regs);
> +void ffa_partinfo_inc_tag(void);
>
>  int32_t ffa_endpoint_domain_lookup(uint16_t endpoint_id, struct domain *=
*d_out,
>                                     struct ffa_ctx **ctx_out);
> --
> 2.52.0
>


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 11:44:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 11:44:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245320.1544687 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxkei-0000l9-S9; Wed, 04 Mar 2026 11:44:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245320.1544687; Wed, 04 Mar 2026 11:44:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxkei-0000l2-Oz; Wed, 04 Mar 2026 11:44:44 +0000
Received: by outflank-mailman (input) for mailman id 1245320;
 Wed, 04 Mar 2026 11: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=6LHA=BE=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vxkeh-0000kc-C8
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 11:44:43 +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 84f93f8c-17bf-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 12:44:37 +0100 (CET)
Received: from DB8PR06CA0038.eurprd06.prod.outlook.com (2603:10a6:10:120::12)
 by VI1PR08MB5519.eurprd08.prod.outlook.com (2603:10a6:803:133::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Wed, 4 Mar
 2026 11:44:24 +0000
Received: from DU6PEPF0000A7E1.eurprd02.prod.outlook.com
 (2603:10a6:10:120:cafe::6d) by DB8PR06CA0038.outlook.office365.com
 (2603:10a6:10:120::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.22 via Frontend Transport; Wed,
 4 Mar 2026 11:43:58 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU6PEPF0000A7E1.mail.protection.outlook.com (10.167.8.40) with Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.18 via
 Frontend Transport; Wed, 4 Mar 2026 11:44:24 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PA4PR08MB6206.eurprd08.prod.outlook.com (2603:10a6:102:ea::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.17; Wed, 4 Mar
 2026 11:43:21 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9654.022; Wed, 4 Mar 2026
 11:43: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: 84f93f8c-17bf-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=x/PnP8ZejarHUbct6/iwbajkuCTwkvOtTtBgqAKrXTfz2ZxAwNVAaT2zyAoag6YadQLR6iHWhuLNYD79qrR+VWXdvSwaMGREcqntpmHYzRQA1nDRL1OaDJcHhX0VyCk1Vbv+NQWOM52+xMtymKFOhxTIk5hl4y6ZNrUf/3WUa6RpgltEyRqgBAjye3UtUjUHF4WvcoNuBzd3k60GJV0UcjxKYiX79GvhYZ0QaRtcDdSt3mL7KFiOoe4OU6Pq9fJaRCqAHRQn9RkTzgat5xgdXXAN+3UXCkkjN0WpJ/AHXdtyZ4BryK+49vjbExrzwIITsTe3kApCWupH1T0mvYPuhQ==
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=BMV26NOhbn4/xROmOocUyhrnyNxy916bRW2XhBd1/8o=;
 b=R1RIEieS8+VvgIxqS0u0Ux0MdRaYTsUdgSHEpQm7VH0nf+hA9Fh+vroncMUQzcfQvm2NmWnI4ye9xPQde7CIFBe/YHgAnQQmTuWHkgL8+K/YL2T9kETK/HWv9G4sNW4jr/Uian8nGuhdS5l3mK8+U6JHSTLxAHZAiW7cq1OoyvfZzNyRcjmVjkDO4WSNp16IwsHzbQbY7lA1gAzy4L/gTVENNGLl+xk0b71dXtni+WVOjpmTrCswFg75rHMFAtBNc95eblE5NaIulWPqRg1fkGcFLn7JtmA79zIF41fXDG87t/32WOMbQQL0fDEjsg/J1sLnnpOhmDvQ8ZkQmDLFlQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BMV26NOhbn4/xROmOocUyhrnyNxy916bRW2XhBd1/8o=;
 b=kbxWOq3u5nuQgD1L990uEo1ZCLz64+/JutDrQtEX6Km5tEes00v3D9vOVsCUCgfSjQ23SOFwU8Kh75dcssKJvXLxuDWvXZZecXmXJNswRFaS5y7mlgCUG9qWz3SvihjRvM7iqeAmb5hfeqjeIMkR6GDbx+jLDZCtqbttkyYcSJ8=
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=frbX2MzNQsk6ZinpbEwUyixUDk/2KWc7qoK6HvSqhmBi8cM7uK9gxaQSeymTZmlFzX1ABi3v2Kev7cOpktqIulV3Ie0sgt4nKEOgjxd5C2s6zm/fMvjJNbM+QaOS5F+dr6RjodLpdmiXe4fF+SWiX3x0ABNVd1bFCU4hnA+ApulYYeKdPdD3zw2tbZqnGqLqPvxT8CtmCJ2DxssqIHKQ9IkI3y+xdtEZ75nVGI/46xwNt/6dt+v7OLqwDHpKfp8o+NWZthuMW6dIpCij+nit8DZu9rTXDRps6cNUf6vmVofGhY9Bjj47J/c0116J68SXownK1ZCkh8EByfnPYiKYWQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BMV26NOhbn4/xROmOocUyhrnyNxy916bRW2XhBd1/8o=;
 b=R6i4Gl8g6ELHu4n40VCmkcL3d4ZD6MrNUf9K7mJAuZtaHr/xVtJUhoVwksk6q3lLQ2+kHMR/sHOO0LxN649UShJMxbKjHyNSiTUsWoNQP1IqbYqz44ofibhFwW8+8mSj6i0VgT/EJElvCFytXufTUQ58AlX5IVaRVIKzT7UM2usTjk1D9HghjRVFQf/glo+kDQD0ejv/GI9oiLrSMxzW3pYG3kAe8MIdfPRIy7tupop93VGAccs5J0uBRPnGaueKNClrtkI1XLdTARMq8mJ5GDqKj0WBRze7AiSQYCPupLzaHKQWLFmIKHzkiI58uyG2k4vE0cOqrKO83fKawV6STQ==
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=BMV26NOhbn4/xROmOocUyhrnyNxy916bRW2XhBd1/8o=;
 b=kbxWOq3u5nuQgD1L990uEo1ZCLz64+/JutDrQtEX6Km5tEes00v3D9vOVsCUCgfSjQ23SOFwU8Kh75dcssKJvXLxuDWvXZZecXmXJNswRFaS5y7mlgCUG9qWz3SvihjRvM7iqeAmb5hfeqjeIMkR6GDbx+jLDZCtqbttkyYcSJ8=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH v2 4/4] xen/arm: ffa: Add cached GET_REGS support
Thread-Topic: [PATCH v2 4/4] xen/arm: ffa: Add cached GET_REGS support
Thread-Index: AQHcqluMWNwuk1kC7USqgRLmbYWnX7WeMukAgAAQhgA=
Date: Wed, 4 Mar 2026 11:43:20 +0000
Message-ID: <41F57B75-742A-4EC0-9C24-BEDBB78C5A60@arm.com>
References: <cover.1772464956.git.bertrand.marquis@arm.com>
 <a7a2ba28c75241c1f1340482ed31d521ef38d218.1772464956.git.bertrand.marquis@arm.com>
 <CAHUa44G3g+tLiViNh32ryVCmtfdWJNozmkOhVpYr_zgb7ks5Ng@mail.gmail.com>
In-Reply-To:
 <CAHUa44G3g+tLiViNh32ryVCmtfdWJNozmkOhVpYr_zgb7ks5Ng@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PA4PR08MB6206:EE_|DU6PEPF0000A7E1:EE_|VI1PR08MB5519:EE_
X-MS-Office365-Filtering-Correlation-Id: 582fafde-b8b9-4314-8d1b-08de79e3625f
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:
 vA/n6LPW/ch8J/F7pfKcTajGvM2LlKDZHKv5oNZmLKCiRaoF6MugrFDX+uQT8ZgJzoPnAS244BqSsEyyyFl3mcLImr9WpR4B8D+2GVapbzNnCQy+85ZT66Ka8EHAcHgO/5VYSH60DTa6l/HoTR2YfD21cfcK3KXuUxYbFQe8DNp+MCYTcsH/006z+WRB4vC3emxDMYFlzrFtpyhGO1LibcqnQcjkAZxq4434/WDs4IXJ3xeFF0s9MyjASUhEMNH1ZQFsxOmi3WNq/Y59S8W4t+k4ducyLuXP8AVBIwuLTg7YJSU6VsXOZiZMZ09eNUDCzUOCctmbr4h3NrngmLtThETo6qCa8oiitxp41MD7iegwT2O6Ay4KTnDE/FCJe3ILSnlf+ThYoEV1CGbkmriczusMSua6bf8d8SwMEsWmUCzY+l3SgH6k+HgisiQ0aVJYVtpX8IYiyc/9DXyJVWTSwnX+bwvUwwI00t8wJPObvvnaxeg6KyMcLDCImKdML2hrxi18xSBjbtXVWPyBWT1J2+iO1FANVp0hDEGwx7cQeXCs+at1VhXX5o7jNo/iuc0tWFGd51S79KGrIE8Wp/+t8WXpl8kpsI6d7m1KS4xdQqZ/5k5jn5o/Z1f0WBGbNzdTl2k3RGY/DGLh2xjl0OUjI9RrVVeh/LI9lQ2u9PzzKARVavLbsFqBHs7TCpgUjVHryyiOEREgnMn5Zb3QsH6WvhJyHQApuTJZcxzMdq1MQ3HCChFtHnHnlSoh0PLsi28HzG5SnQ2Ufng78X6iPW5vqNeClm8gEN4g0NwsD1TurhI=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <A3FEF3B515BDE04F9001E90C042EC024@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6206
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU6PEPF0000A7E1.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	1fa8c3e6-b87d-498e-a5b9-08de79e33c5a
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|14060799003|82310400026|376014|36860700016|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	YMnGOMfHmnzLsCoE0XYdEERtwjdSv+BEvYoKF7nFBUdSaKwmbl2A3UJCNVYaeNllH1LTj3SaICs8puGDZalqapTA8MuoSb+I7xS/G1pvX+5MVMShAlJ7ftiQqphzLjDbSQ9dVUeONMAtMLKwIO9DEMR72SH9hftIjlVw8daIywKf4uEv/MamEAsJi1b5pfibuDkayUMGO0JG3ydsAtqWY6V6gHpvYO5dKq1RXhEjKvs6Cg6gMumseFkSwKuZOEOUL2V7mI/1pinct0lU4XR00v5L9sEohmJG69/yk2fQ6x0rRTpWhuiRRUZMi28nY+M58hvim+B2ddRqbdH8QjF0xj/Op+7NBCJluZkUPzGiLllpgusnmvPe+sr5MaKQsSOtSGT1x9rjl+BfbMFy254qQhEImiaaiIdFeBb5XhTWODWx6PHK0qwRqCg+BI2Wja34RXod79xrM3zqYNDZDIBfedd4NPYDhCWVt5DSl+B+Y2aPfQaw7HJA3jVHdWEPlW7/9keAls+mXUsdUzyQym4dJM/vhdLxdvJcjZVS6Fa624LN86VsrWez4Wtn9V+7fR0jCuD+8b1UkrkiGpXL+gIyIkVRUPGiTY7ZqvUw2JbRWnEOpy6CV3NpM/ZrkYzT0UKN7OVyvhRTSDN+eMxAaCJzKoE+DCawuvo9uktNbYS9e2wIySI5laqZZf0bC5FzYUEjz4/LBodlAipfgo3Jvrg/9Hgjxha34+HJveUCox3JyvT4bw66ajirHLp/L5SA0e5XS4cRcPOsOSkVhVWoAUiSiA==
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(14060799003)(82310400026)(376014)(36860700016)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	Q93ig35uGBDnqx88ZA5OP3F9f1Q0xbM1EKb9bphIYGs8oNowftT+o74oGPkcyNKQGsLz/uRzACu16h6JPx2d9fbIaKfrZGnkoJlnqBkexhkZZY5zw8SHAv8EgRRPj0TX4eg7ALwQuqm/4TeWKi2EI0uxYJOIH39GAPfBTb8JQ20rChHxXnuBBkCC123iAwgrudWesRiESG0iTg5v1CXnFjwNwxfLoU/DhQFYOaVbvvbqtWmmreP/yv09kRyoc30OYcoT+OyaH1EZZQUiT0oHWcicrWFVTsevr5q/T5XFc11KzGMJr+OoayLd7j2zIU5oaKV4lZ/uZKAr3EisFgdlF/Ne6mB4pyklx0CpTz+RY85kV2x/kIQjCb2nbbpvS7I+U/INeiNPsiyNIPpWFFrXl9pOkC0djdo/4aGK/MCv3xSaphRSizcRJi/LcqL6sNgJ
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 11:44:24.7026
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 582fafde-b8b9-4314-8d1b-08de79e3625f
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU6PEPF0000A7E1.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB5519

DQoNCj4gT24gNCBNYXIgMjAyNiwgYXQgMTE6NDQsIEplbnMgV2lrbGFuZGVyIDxqZW5zLndpa2xh
bmRlckBsaW5hcm8ub3JnPiB3cm90ZToNCj4gDQo+IEhpIEJlcnRyYW5kLA0KPiANCj4gT24gTW9u
LCBNYXIgMiwgMjAyNiBhdCA0OjQ04oCvUE0gQmVydHJhbmQgTWFycXVpcw0KPiA8YmVydHJhbmQu
bWFycXVpc0Bhcm0uY29tPiB3cm90ZToNCj4+IA0KPj4gRkYtQSB2MS4yIGRlZmluZXMgUEFSVElU
SU9OX0lORk9fR0VUX1JFR1MgZm9yIHJlZ2lzdGVyLWJhc2VkIHBhcnRpdGlvbg0KPj4gaW5mbyBy
ZXRyaWV2YWwsIGJ1dCBYZW4gY3VycmVudGx5IG9ubHkgc3VwcG9ydHMgdGhlIGJ1ZmZlci1iYXNl
ZCBHRVQNCj4+IHBhdGggZm9yIGd1ZXN0cy4NCj4+IA0KPj4gSW1wbGVtZW50IEdFVF9SRUdTIHVz
aW5nIHRoZSBjYWNoZWQgU1AgbGlzdCBhbmQgVk0gZW50cmllcywgaW5jbHVkaW5nDQo+PiB0aGUg
cmVnaXN0ZXIgd2luZG93IGxheW91dCBhbmQgaW5wdXQgdmFsaWRhdGlvbi4gVHJhY2sgVk0gbGlz
dCBjaGFuZ2VzDQo+PiB2aWEgdGhlIHBhcnRpbmZvIHRhZyBhbmQgdXNlIGl0IHRvIHZhbGlkYXRl
IEdFVF9SRUdTIHRhZyBpbnB1dHMuIEVuc3VyZQ0KPj4gdGhhdCB3aGVuIGEgbm9uLU5pbCBVVUlE
IGlzIHNwZWNpZmllZCwgdGhlIFVVSUQgZmllbGRzIGluIGJvdGggR0VUIGFuZA0KPj4gR0VUX1JF
R1MgcmVzdWx0cyBhcmUgTUJaIGFzIHJlcXVpcmVkIGJ5IHRoZSBzcGVjaWZpY2F0aW9uLg0KPj4g
DQo+PiBQQVJUSVRJT05fSU5GT19HRVRfUkVHUyBpcyBhdmFpbGFibGUgdG8gdjEuMiBndWVzdHMs
IHJldHVybmluZyBjYWNoZWQgU1ANCj4+IGVudHJpZXMgYW5kIFZNIGVudHJpZXMgd2l0aCBVVUlE
cyB6ZXJvZWQgZm9yIG5vbi1OaWwgVVVJRCBxdWVyaWVzLg0KPj4gDQo+PiBBbHNvIHB1Ymxpc2gg
Vk0gbWVtYmVyc2hpcCB1cGRhdGVzIChWTSBjb3VudCwgY3R4IGxpc3QsIGFuZCBwYXJ0aW5mbw0K
Pj4gdGFnKSB1bmRlciB0aGUgc2FtZSB3cml0ZS1sb2NrZWQgc2VjdGlvbiBzbyBHRVRfUkVHUyBz
ZWVzIGNvaGVyZW50IHN0YXRlDQo+PiBhbmQgY29uY3VycmVudCBjaGFuZ2VzIGFyZSByZWxpYWJs
eSByZXBvcnRlZCB2aWEgUkVUUlkuDQo+PiANCj4+IFNpZ25lZC1vZmYtYnk6IEJlcnRyYW5kIE1h
cnF1aXMgPGJlcnRyYW5kLm1hcnF1aXNAYXJtLmNvbT4NCj4+IC0tLQ0KPj4gQ2hhbmdlcyBzaW5j
ZSB2MToNCj4+IC0gaWdub3JlIHg0LXgxNyBub3QgYmVpbmcgemVybyBhbmQgeDMgYml0cyA2My0z
MiBub3QgYmVpbmcgemVybyAoZGVmaW5lZA0KPj4gIGFzIFNCWiBpbiB0aGUgc3BlYykNCj4+IC0g
ZGV0ZWN0IHRhZyBjaGFuZ2VzIGR1cmluZyBHRVRfUkVHUyBoYW5kbGluZyBhbmQgcmV0dXJuIFJF
VFJZDQo+PiAtIHJlbW92ZSBzdHJpY3QgY2hlY2sgb2Ygc3BfbGlzdF9lbnRyeV9zaXplLCBsYXJn
ZXIgY2FjaGUgZW50cnkgc2l6ZXMNCj4+ICB3aWxsIG5vdyBiZSBhY2NlcHRlZA0KPj4gLSBwdWJs
aXNoIFZNIGNvdW50LCBjdHggbGlzdCwgYW5kIHBhcnRpbmZvIHRhZyB1cGRhdGVzIHVuZGVyDQo+
PiAgZmZhX2N0eF9saXN0X3J3bG9jayBmb3IgY29oZXJlbnQgdmlzaWJpbGl0eQ0KPj4gLS0tDQo+
PiB4ZW4vYXJjaC9hcm0vdGVlL2ZmYS5jICAgICAgICAgIHwgIDIzICsrKy0NCj4+IHhlbi9hcmNo
L2FybS90ZWUvZmZhX3BhcnRpbmZvLmMgfCAyMDAgKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysNCj4+IHhlbi9hcmNoL2FybS90ZWUvZmZhX3ByaXZhdGUuaCAgfCAgIDQgKy0NCj4+IDMg
ZmlsZXMgY2hhbmdlZCwgMjIzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pDQo+PiANCj4+
IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdGVlL2ZmYS5jIGIveGVuL2FyY2gvYXJtL3RlZS9m
ZmEuYw0KPj4gaW5kZXggYWE0M2FlMjU5NWQ3Li5kNmNhZTY3ZTFhNDggMTAwNjQ0DQo+PiAtLS0g
YS94ZW4vYXJjaC9hcm0vdGVlL2ZmYS5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYS5j
DQo+PiBAQCAtNDQsNiArNDQsMTEgQEANCj4+ICAqICAgLSBkb2Vzbid0IHN1cHBvcnQgc2lnbmFs
bGluZyB0aGUgc2Vjb25kYXJ5IHNjaGVkdWxlciBvZiBwZW5kaW5nDQo+PiAgKiAgICAgbm90aWZp
Y2F0aW9uIGZvciBzZWN1cmUgcGFydGl0aW9ucw0KPj4gICogICAtIGRvZXNuJ3Qgc3VwcG9ydCBu
b3RpZmljYXRpb25zIGZvciBYZW4gaXRzZWxmDQo+PiArICogbyBGRkFfUEFSVElUSU9OX0lORk9f
R0VUL0dFVF9SRUdTOg0KPj4gKyAqICAgLSB2MS4wIGd1ZXN0cyBtYXkgc2VlIGR1cGxpY2F0ZSBT
UCBJRHMgd2hlbiBmaXJtd2FyZSBwcm92aWRlcyBVVUlEcw0KPj4gKyAqICAgLSBTUCBsaXN0IGlz
IGNhY2hlZCBhdCBpbml0OyBTUE1DIHRhZyBjaGFuZ2VzIGFyZSBub3QgdHJhY2tlZA0KPj4gKyAq
ICAgICBiZXR3ZWVuIGNhbGxzDQo+PiArICogICAtIFNQIGxpc3QgaXMgY2FwcGVkIGF0IEZGQV9N
QVhfTlVNX1NQIGVudHJpZXMNCj4+ICAqDQo+PiAgKiBUaGVyZSBhcmUgc29tZSBsYXJnZSBsb2Nr
ZWQgc2VjdGlvbnMgd2l0aCBmZmFfc3BtY190eF9sb2NrIGFuZA0KPj4gICogZmZhX3NwbWNfcnhf
bG9jay4gRXNwZWNpYWxseSB0aGUgZmZhX3NwbWNfdHhfbG9jayBzcGlubG9jayB1c2VkDQo+PiBA
QCAtMTgzLDEwICsxODgsMTEgQEAgc3RhdGljIGJvb2wgZmZhX25lZ290aWF0ZV92ZXJzaW9uKHN0
cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPj4gDQo+PiAgICAgICAgIGlmICggSVNfRU5BQkxF
RChDT05GSUdfRkZBX1ZNX1RPX1ZNKSApDQo+PiAgICAgICAgIHsNCj4+IC0gICAgICAgICAgICAv
KiBPbmUgbW9yZSBWTSB3aXRoIEZGLUEgc3VwcG9ydCBhdmFpbGFibGUgKi8NCj4+IC0gICAgICAg
ICAgICBpbmNfZmZhX3ZtX2NvdW50KCk7DQo+PiAgICAgICAgICAgICB3cml0ZV9sb2NrKCZmZmFf
Y3R4X2xpc3Rfcndsb2NrKTsNCj4+ICsgICAgICAgICAgICAvKiBQdWJsaXNoIFZNIG1lbWJlcnNo
aXAgY2hhbmdlcyBhdG9taWNhbGx5IHdpdGggdGFnIHVwZGF0ZXMuICovDQo+PiArICAgICAgICAg
ICAgaW5jX2ZmYV92bV9jb3VudCgpOw0KPj4gICAgICAgICAgICAgbGlzdF9hZGRfdGFpbCgmY3R4
LT5jdHhfbGlzdCwgJmZmYV9jdHhfaGVhZCk7DQo+PiArICAgICAgICAgICAgZmZhX3BhcnRpbmZv
X2luY190YWcoKTsNCj4+ICAgICAgICAgICAgIHdyaXRlX3VubG9jaygmZmZhX2N0eF9saXN0X3J3
bG9jayk7DQo+PiAgICAgICAgIH0NCj4+IA0KPj4gQEAgLTM0MSw2ICszNDcsMTIgQEAgc3RhdGlj
IHZvaWQgaGFuZGxlX2ZlYXR1cmVzKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPj4gICAg
IGNhc2UgRkZBX0ZFQVRVUkVfU0NIRURVTEVfUkVDVl9JTlRSOg0KPj4gICAgICAgICBmZmFfc2V0
X3JlZ3Nfc3VjY2VzcyhyZWdzLCBHVUVTVF9GRkFfU0NIRURVTEVfUkVDVl9JTlRSX0lELCAwKTsN
Cj4+ICAgICAgICAgYnJlYWs7DQo+PiArICAgIGNhc2UgRkZBX1BBUlRJVElPTl9JTkZPX0dFVF9S
RUdTOg0KPj4gKyAgICAgICAgaWYgKCBBQ0NFU1NfT05DRShjdHgtPmd1ZXN0X3ZlcnMpID49IEZG
QV9WRVJTSU9OXzFfMiApDQo+PiArICAgICAgICAgICAgZmZhX3NldF9yZWdzX3N1Y2Nlc3MocmVn
cywgMCwgMCk7DQo+PiArICAgICAgICBlbHNlDQo+PiArICAgICAgICAgICAgZmZhX3NldF9yZWdz
X2Vycm9yKHJlZ3MsIEZGQV9SRVRfTk9UX1NVUFBPUlRFRCk7DQo+PiArICAgICAgICBicmVhazsN
Cj4+IA0KPj4gICAgIGNhc2UgRkZBX05PVElGSUNBVElPTl9CSU5EOg0KPj4gICAgIGNhc2UgRkZB
X05PVElGSUNBVElPTl9VTkJJTkQ6DQo+PiBAQCAtNDAyLDYgKzQxNCw5IEBAIHN0YXRpYyBib29s
IGZmYV9oYW5kbGVfY2FsbChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykNCj4+ICAgICBjYXNl
IEZGQV9QQVJUSVRJT05fSU5GT19HRVQ6DQo+PiAgICAgICAgIGZmYV9oYW5kbGVfcGFydGl0aW9u
X2luZm9fZ2V0KHJlZ3MpOw0KPj4gICAgICAgICByZXR1cm4gdHJ1ZTsNCj4+ICsgICAgY2FzZSBG
RkFfUEFSVElUSU9OX0lORk9fR0VUX1JFR1M6DQo+PiArICAgICAgICBmZmFfaGFuZGxlX3BhcnRp
dGlvbl9pbmZvX2dldF9yZWdzKHJlZ3MpOw0KPj4gKyAgICAgICAgcmV0dXJuIHRydWU7DQo+PiAg
ICAgY2FzZSBGRkFfUlhfUkVMRUFTRToNCj4+ICAgICAgICAgZSA9IGZmYV9yeF9yZWxlYXNlKGN0
eCk7DQo+PiAgICAgICAgIGJyZWFrOw0KPj4gQEAgLTYyNSw5ICs2NDAsMTEgQEAgc3RhdGljIGlu
dCBmZmFfZG9tYWluX3RlYXJkb3duKHN0cnVjdCBkb21haW4gKmQpDQo+PiANCj4+ICAgICBpZiAo
IElTX0VOQUJMRUQoQ09ORklHX0ZGQV9WTV9UT19WTSkgJiYgQUNDRVNTX09OQ0UoY3R4LT5ndWVz
dF92ZXJzKSApDQo+PiAgICAgew0KPj4gLSAgICAgICAgZGVjX2ZmYV92bV9jb3VudCgpOw0KPj4g
ICAgICAgICB3cml0ZV9sb2NrKCZmZmFfY3R4X2xpc3Rfcndsb2NrKTsNCj4+ICsgICAgICAgIC8q
IFB1Ymxpc2ggVk0gbWVtYmVyc2hpcCBjaGFuZ2VzIGF0b21pY2FsbHkgd2l0aCB0YWcgdXBkYXRl
cy4gKi8NCj4+ICsgICAgICAgIGRlY19mZmFfdm1fY291bnQoKTsNCj4+ICAgICAgICAgbGlzdF9k
ZWwoJmN0eC0+Y3R4X2xpc3QpOw0KPj4gKyAgICAgICAgZmZhX3BhcnRpbmZvX2luY190YWcoKTsN
Cj4+ICAgICAgICAgd3JpdGVfdW5sb2NrKCZmZmFfY3R4X2xpc3Rfcndsb2NrKTsNCj4+ICAgICB9
DQo+PiANCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9wYXJ0aW5mby5jIGIv
eGVuL2FyY2gvYXJtL3RlZS9mZmFfcGFydGluZm8uYw0KPj4gaW5kZXggNDE5ZTE5NTEwZjZmLi4x
NmRhNWVlNTY3ZGIgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9wYXJ0aW5m
by5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9wYXJ0aW5mby5jDQo+PiBAQCAtMjks
MTAgKzI5LDM5IEBAIHN0cnVjdCBmZmFfcGFydGl0aW9uX2luZm9fMV8xIHsNCj4+ICAgICB1aW50
OF90IHV1aWRbMTZdOw0KPj4gfTsNCj4+IA0KPj4gKy8qIFJlZ2lzdGVycyBhMy4uYTE3ICgxNSBy
ZWdzKSBjYXJyeSBwYXJ0aXRpb24gZGVzY3JpcHRvcnMsIDMgcmVncyBlYWNoLiAqLw0KPj4gKyNk
ZWZpbmUgRkZBX1BBUlRJTkZPX1JFR19NQVhfRU5UUklFUyBcDQo+PiArICAgICgoMTUgKiBzaXpl
b2YodWludDY0X3QpKSAvIHNpemVvZihzdHJ1Y3QgZmZhX3BhcnRpdGlvbl9pbmZvXzFfMSkpDQo+
PiArDQo+PiAvKiBTUCBsaXN0IGNhY2hlIChzZWN1cmUgZW5kcG9pbnRzIG9ubHkpOyBwb3B1bGF0
ZWQgYXQgaW5pdC4gKi8NCj4+IHN0YXRpYyB2b2lkICpzcF9saXN0IF9fcmVhZF9tb3N0bHk7DQo+
PiBzdGF0aWMgdWludDMyX3Qgc3BfbGlzdF9jb3VudCBfX3JlYWRfbW9zdGx5Ow0KPj4gc3RhdGlj
IHVpbnQzMl90IHNwX2xpc3RfZW50cnlfc2l6ZSBfX3JlYWRfbW9zdGx5Ow0KPj4gKw0KPj4gKy8q
IFNQIGxpc3QgaXMgc3RhdGljOyB0YWcgb25seSBtb3ZlcyB3aGVuIFZNcyBhcmUgYWRkZWQvcmVt
b3ZlZC4gKi8NCj4+ICtzdGF0aWMgYXRvbWljX3QgZmZhX3BhcnRpbmZvX3RhZyA9IEFUT01JQ19J
TklUKDEpOw0KPj4gKw0KPj4gK3ZvaWQgZmZhX3BhcnRpbmZvX2luY190YWcodm9pZCkNCj4+ICt7
DQo+PiArICAgIGF0b21pY19pbmMoJmZmYV9wYXJ0aW5mb190YWcpOw0KPj4gK30NCj4+ICsNCj4+
ICtzdGF0aWMgaW5saW5lIHVpbnQxNl90IGZmYV9wYXJ0aW5mb19nZXRfdGFnKHZvaWQpDQo+PiAr
ew0KPj4gKyAgICAvKg0KPj4gKyAgICAgKiBUYWcgbW92ZXMgd2l0aCBWTSBsaXN0IGNoYW5nZXMg
b25seS4NCj4+ICsgICAgICoNCj4+ICsgICAgICogTGltaXRhdGlvbjogd2UgY2Fubm90IGRldGVj
dCBhbiBTUE1DIHRhZyBjaGFuZ2UgYmV0d2VlbiBjYWxscyBiZWNhdXNlIHdlDQo+PiArICAgICAq
IGRvIG5vdCByZXRhaW4gdGhlIHByZXZpb3VzIFNQTUMgdGFnOyB3ZSBvbmx5IHJlZnJlc2ggaXQg
dmlhIHRoZSBtYW5kYXRvcnkNCj4+ICsgICAgICogc3RhcnRfaW5kZXg9MCBjYWxsIGFuZCBhc3N1
bWUgaXQgc3RheXMgc3RhYmxlIHdoaWxlIGNvbWJpbmVkX3RhZyAob3VyDQo+PiArICAgICAqIFZN
L1NQLWNvdW50IHRhZykgaXMgdXNlZCBmb3IgZ3Vlc3QgdmFsaWRhdGlvbi4gVGhpcyBtZWFucyBT
UE1DIHRhZw0KPj4gKyAgICAgKiBjaGFuZ2VzIGFsb25lIHdpbGwgbm90IHRyaWdnZXIgUkVUUlku
DQo+PiArICAgICAqLw0KPj4gKyAgICBpZiAoIElTX0VOQUJMRUQoQ09ORklHX0ZGQV9WTV9UT19W
TSkgKQ0KPj4gKyAgICAgICAgcmV0dXJuIGF0b21pY19yZWFkKCZmZmFfcGFydGluZm9fdGFnKSAm
IEdFTk1BU0soMTUsIDApOw0KPj4gKyAgICBlbHNlDQo+PiArICAgICAgICByZXR1cm4gMTsNCj4+
ICt9DQo+IA0KPiBQbGVhc2UgYWRkIGFuIGVtcHR5IGxpbmUgaGVyZS4NCg0KYWNrDQoNCj4gDQo+
PiBzdGF0aWMgaW50MzJfdCBmZmFfcGFydGl0aW9uX2luZm9fZ2V0KHN0cnVjdCBmZmFfdXVpZCB1
dWlkLCB1aW50MzJfdCBmbGFncywNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdWludDMyX3QgKmNvdW50LCB1aW50MzJfdCAqZnBpX3NpemUpDQo+PiB7DQo+PiBAQCAt
MTQwLDYgKzE2OSw3IEBAIHN0YXRpYyBpbnQzMl90IGZmYV9nZXRfc3BfcGFydGluZm8oc3RydWN0
IGZmYV91dWlkIHV1aWQsIHVpbnQzMl90ICpzcF9jb3VudCwNCj4+ICAgICBmb3IgKCBuID0gMDsg
biA8IHNwX2xpc3RfY291bnQ7IG4rKyApDQo+PiAgICAgew0KPj4gICAgICAgICB2b2lkICplbnRy
eSA9IHNwX2xpc3QgKyBuICogc3BfbGlzdF9lbnRyeV9zaXplOw0KPj4gKyAgICAgICAgdm9pZCAq
ZHN0X3BvczsNCj4+IA0KPj4gICAgICAgICBpZiAoICFmZmFfc3BfZW50cnlfbWF0Y2hlc191dWlk
KGVudHJ5LCB1dWlkKSApDQo+PiAgICAgICAgICAgICBjb250aW51ZTsNCj4+IEBAIC0xNTEsMTEg
KzE4MSwyMCBAQCBzdGF0aWMgaW50MzJfdCBmZmFfZ2V0X3NwX3BhcnRpbmZvKHN0cnVjdCBmZmFf
dXVpZCB1dWlkLCB1aW50MzJfdCAqc3BfY291bnQsDQo+PiAgICAgICAgICAqIFRoaXMgaXMgYSBu
b24tY29tcGxpYW5jZSB0byB0aGUgc3BlY2lmaWNhdGlvbiBidXQgMS4wIFZNcyBzaG91bGQNCj4+
ICAgICAgICAgICogaGFuZGxlIHRoYXQgb24gdGhlaXIgb3duIHRvIHNpbXBsaWZ5IFhlbiBpbXBs
ZW1lbnRhdGlvbi4NCj4+ICAgICAgICAgICovDQo+PiArICAgICAgICBkc3RfcG9zID0gKmRzdF9i
dWY7DQo+PiAgICAgICAgIHJldCA9IGZmYV9jb3B5X2luZm8oZHN0X2J1ZiwgZW5kX2J1ZiwgZW50
cnksIGRzdF9zaXplLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwX2xpc3RfZW50
cnlfc2l6ZSk7DQo+PiAgICAgICAgIGlmICggcmV0ICkNCj4+ICAgICAgICAgICAgIHJldHVybiBy
ZXQ7DQo+PiANCj4+ICsgICAgICAgIGlmICggIWZmYV91dWlkX2lzX25pbCh1dWlkKSAmJg0KPj4g
KyAgICAgICAgICAgICBkc3Rfc2l6ZSA+PSBzaXplb2Yoc3RydWN0IGZmYV9wYXJ0aXRpb25faW5m
b18xXzEpICkNCj4+ICsgICAgICAgIHsNCj4+ICsgICAgICAgICAgICBzdHJ1Y3QgZmZhX3BhcnRp
dGlvbl9pbmZvXzFfMSAqZnBpID0gZHN0X3BvczsNCj4+ICsNCj4+ICsgICAgICAgICAgICBtZW1z
ZXQoZnBpLT51dWlkLCAwLCBzaXplb2YoZnBpLT51dWlkKSk7DQo+PiArICAgICAgICB9DQo+PiAr
DQo+PiAgICAgICAgIGNvdW50Kys7DQo+PiAgICAgfQ0KPj4gDQo+PiBAQCAtMTY3LDYgKzIwNiwz
OCBAQCBzdGF0aWMgaW50MzJfdCBmZmFfZ2V0X3NwX3BhcnRpbmZvKHN0cnVjdCBmZmFfdXVpZCB1
dWlkLCB1aW50MzJfdCAqc3BfY291bnQsDQo+PiAgICAgcmV0dXJuIEZGQV9SRVRfT0s7DQo+PiB9
DQo+PiANCj4+ICtzdGF0aWMgdWludDE2X3QgZmZhX2dldF9zcF9wYXJ0aW5mb19yZWdzKHN0cnVj
dCBmZmFfdXVpZCB1dWlkLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdWludDE2X3Qgc3RhcnRfaW5kZXgsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1aW50NjRfdCAqb3V0X3JlZ3MsDQo+PiArICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCBtYXhfZW50cmllcykNCj4+ICt7DQo+
PiArICAgIHVpbnQzMl90IGlkeCA9IDA7DQo+PiArICAgIHVpbnQxNl90IGZpbGxlZCA9IDA7DQo+
PiArICAgIHVpbnQzMl90IG47DQo+PiArDQo+PiArICAgIGZvciAoIG4gPSAwOyBuIDwgc3BfbGlz
dF9jb3VudCAmJiBmaWxsZWQgPCBtYXhfZW50cmllczsgbisrICkNCj4+ICsgICAgew0KPj4gKyAg
ICAgICAgdm9pZCAqZW50cnkgPSBzcF9saXN0ICsgbiAqIHNwX2xpc3RfZW50cnlfc2l6ZTsNCj4+
ICsNCj4+ICsgICAgICAgIGlmICggIWZmYV9zcF9lbnRyeV9tYXRjaGVzX3V1aWQoZW50cnksIHV1
aWQpICkNCj4+ICsgICAgICAgICAgICBjb250aW51ZTsNCj4+ICsNCj4+ICsgICAgICAgIGlmICgg
aWR4KysgPCBzdGFydF9pbmRleCApDQo+PiArICAgICAgICAgICAgY29udGludWU7DQo+PiArDQo+
PiArICAgICAgICBtZW1jcHkoJm91dF9yZWdzW2ZpbGxlZCAqIDNdLCBlbnRyeSwNCj4+ICsgICAg
ICAgICAgICAgICBzaXplb2Yoc3RydWN0IGZmYV9wYXJ0aXRpb25faW5mb18xXzEpKTsNCj4+ICsg
ICAgICAgIGlmICggIWZmYV91dWlkX2lzX25pbCh1dWlkKSApDQo+PiArICAgICAgICB7DQo+PiAr
ICAgICAgICAgICAgb3V0X3JlZ3NbZmlsbGVkICogMyArIDFdID0gMDsNCj4+ICsgICAgICAgICAg
ICBvdXRfcmVnc1tmaWxsZWQgKiAzICsgMl0gPSAwOw0KPj4gKyAgICAgICAgfQ0KPj4gKyAgICAg
ICAgZmlsbGVkKys7DQo+PiArICAgIH0NCj4+ICsNCj4+ICsgICAgcmV0dXJuIGZpbGxlZDsNCj4+
ICt9DQo+PiArDQo+PiBzdGF0aWMgaW50MzJfdCBmZmFfZ2V0X3ZtX3BhcnRpbmZvKHN0cnVjdCBm
ZmFfdXVpZCB1dWlkLCB1aW50MzJfdCBzdGFydF9pbmRleCwNCj4+ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdWludDMyX3QgKnZtX2NvdW50LCB2b2lkICoqZHN0X2J1ZiwNCj4+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqZW5kX2J1ZiwgdWludDMy
X3QgZHN0X3NpemUpDQo+PiBAQCAtMzgzLDYgKzQ1NCwxMzUgQEAgb3V0Og0KPj4gICAgIH0NCj4+
IH0NCj4+IA0KPj4gK3ZvaWQgZmZhX2hhbmRsZV9wYXJ0aXRpb25faW5mb19nZXRfcmVncyhzdHJ1
Y3QgY3B1X3VzZXJfcmVncyAqcmVncykNCj4+ICt7DQo+PiArICAgIHN0cnVjdCBkb21haW4gKmQg
PSBjdXJyZW50LT5kb21haW47DQo+PiArICAgIHN0cnVjdCBmZmFfY3R4ICpjdHggPSBkLT5hcmNo
LnRlZTsNCj4+ICsgICAgc3RydWN0IGZmYV91dWlkIHV1aWQ7DQo+PiArICAgIHVpbnQzMl90IHNw
X2NvdW50ID0gMCwgdm1fY291bnQgPSAwLCB0b3RhbF9jb3VudDsNCj4+ICsgICAgdWludDE2X3Qg
c3RhcnRfaW5kZXgsIHRhZzsNCj4+ICsgICAgdWludDE2X3QgbnVtX2VudHJpZXMgPSAwOw0KPj4g
KyAgICB1aW50NjRfdCB4MyA9IGdldF91c2VyX3JlZyhyZWdzLCAzKTsNCj4+ICsgICAgaW50MzJf
dCByZXQgPSBGRkFfUkVUX09LOw0KPj4gKyAgICB1aW50NjRfdCBvdXRfcmVnc1sxOF0gPSB7IDAg
fTsNCj4+ICsgICAgdW5zaWduZWQgaW50IG47DQo+PiArICAgIHVpbnQxNl90IHRhZ19vdXQsIHRh
Z19lbmQ7DQo+PiArDQo+PiArICAgIGlmICggQUNDRVNTX09OQ0UoY3R4LT5ndWVzdF92ZXJzKSA8
IEZGQV9WRVJTSU9OXzFfMiApDQo+PiArICAgIHsNCj4+ICsgICAgICAgIHJldCA9IEZGQV9SRVRf
Tk9UX1NVUFBPUlRFRDsNCj4+ICsgICAgICAgIGdvdG8gb3V0Ow0KPj4gKyAgICB9DQo+PiArDQo+
PiArICAgIC8qDQo+PiArICAgICAqIFJlZ2lzdGVycyBhMy4uYTE3ICgxNSByZWdzKSBjYXJyeSBw
YXJ0aXRpb24gZGVzY3JpcHRvcnMsIDMgcmVncyBlYWNoLg0KPj4gKyAgICAgKiBGb3IgRkYtQSAx
LjIsIHRoYXQgeWllbGRzIGEgbWF4aW11bSBvZiA1IGVudHJpZXMgcGVyIEdFVF9SRUdTIGNhbGwu
DQo+PiArICAgICAqIEVuZm9yY2UgdGhlIGFzc3VtZWQgbGF5b3V0IHNvIHdpbmRvdyBzaXppbmcg
c3RheXMgY29ycmVjdC4NCj4+ICsgICAgICovDQo+PiArICAgIEJVSUxEX0JVR19PTihGRkFfUEFS
VElORk9fUkVHX01BWF9FTlRSSUVTICE9IDUpOw0KPj4gKw0KPj4gKyAgICBzdGFydF9pbmRleCA9
IHgzICYgR0VOTUFTSygxNSwgMCk7DQo+PiArICAgIHRhZyA9ICh4MyA+PiAxNikgJiBHRU5NQVNL
KDE1LCAwKTsNCj4+ICsNCj4+ICsgICAgLyogU3RhcnQgaW5kZXggbXVzdCBhbGxvdyByb29tIGZv
ciB1cCB0byA1IGVudHJpZXMgd2l0aG91dCAxNi1iaXQgb3ZlcmZsb3cuICovDQo+IA0KPiBOaXQ6
IFRoZSBsaW5lIGFib3ZlIGlzIG92ZXIgODAgY29sdW1ucy4NCg0KUmlnaHQsIGhvdyBkaWQgaSBt
aXNzIHRoYXQuDQoNCj4gDQo+IFdpdGggb3Igd2l0aG91dCB0aGUgbGluZSBhYm92ZSBmaXhlZC4g
TG9va3MgZ29vZC4NCj4gUmV2aWV3ZWQtYnk6IEplbnMgV2lrbGFuZGVyIDxqZW5zLndpa2xhbmRl
ckBsaW5hcm8ub3JnPg0KDQpUaGFua3MsDQoNCkkgd2lsbCBjaGVjayBpZiB0aG9zZSBjYW4gYmUg
Zml4ZWQgb24gY29tbWl0IG90aGVyd2lzZSBpIHdpbGwgZml4IHRob3NlIDIgYW5kDQpzdWJtaXQg
YSB2MyB3aXRoIHlvdXIgUi1iIG9uIGFsbCBwYXRjaGVzIDotKQ0KDQpDaGVlcnMNCkJlcnRyYW5k
DQoNCj4gDQo+IENoZWVycywNCj4gSmVucw0KPiANCj4+ICsgICAgaWYgKCBzdGFydF9pbmRleCA+
IChHRU5NQVNLKDE1LCAwKSAtIChGRkFfUEFSVElORk9fUkVHX01BWF9FTlRSSUVTIC0gMSkpICkN
Cj4+ICsgICAgew0KPj4gKyAgICAgICAgcmV0ID0gRkZBX1JFVF9JTlZBTElEX1BBUkFNRVRFUlM7
DQo+PiArICAgICAgICBnb3RvIG91dDsNCj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAgICB1dWlkLnZh
bFswXSA9IGdldF91c2VyX3JlZyhyZWdzLCAxKTsNCj4+ICsgICAgdXVpZC52YWxbMV0gPSBnZXRf
dXNlcl9yZWcocmVncywgMik7DQo+PiArDQo+PiArICAgIHRhZ19vdXQgPSBmZmFfcGFydGluZm9f
Z2V0X3RhZygpOw0KPj4gKw0KPj4gKyAgICBpZiAoIHN0YXJ0X2luZGV4ID09IDAgKQ0KPj4gKyAg
ICB7DQo+PiArICAgICAgICBpZiAoIHRhZyApDQo+PiArICAgICAgICB7DQo+PiArICAgICAgICAg
ICAgcmV0ID0gRkZBX1JFVF9JTlZBTElEX1BBUkFNRVRFUlM7DQo+PiArICAgICAgICAgICAgZ290
byBvdXQ7DQo+PiArICAgICAgICB9DQo+PiArICAgIH0NCj4+ICsgICAgZWxzZSBpZiAoIHRhZyAh
PSB0YWdfb3V0ICkNCj4+ICsgICAgew0KPj4gKyAgICAgICAgcmV0ID0gRkZBX1JFVF9SRVRSWTsN
Cj4+ICsgICAgICAgIGdvdG8gb3V0Ow0KPj4gKyAgICB9DQo+PiArDQo+PiArICAgIGlmICggZmZh
X3V1aWRfaXNfbmlsKHV1aWQpICkNCj4+ICsgICAgew0KPj4gKyAgICAgICAgaWYgKCBJU19FTkFC
TEVEKENPTkZJR19GRkFfVk1fVE9fVk0pICkNCj4+ICsgICAgICAgICAgICB2bV9jb3VudCA9IGdl
dF9mZmFfdm1fY291bnQoKTsNCj4+ICsgICAgICAgIGVsc2UNCj4+ICsgICAgICAgICAgICB2bV9j
b3VudCA9IDE7IC8qIENhbGxlciBWTSBvbmx5ICovDQo+PiArICAgIH0NCj4+ICsNCj4+ICsgICAg
cmV0ID0gZmZhX2dldF9zcF9jb3VudCh1dWlkLCAmc3BfY291bnQpOw0KPj4gKyAgICBpZiAoIHJl
dCApDQo+PiArICAgICAgICBnb3RvIG91dDsNCj4+ICsNCj4+ICsgICAgdG90YWxfY291bnQgPSBz
cF9jb3VudCArIHZtX2NvdW50Ow0KPj4gKw0KPj4gKyAgICBpZiAoIHRvdGFsX2NvdW50ID09IDAg
fHwgc3RhcnRfaW5kZXggPj0gdG90YWxfY291bnQgKQ0KPj4gKyAgICB7DQo+PiArICAgICAgICBy
ZXQgPSBGRkFfUkVUX0lOVkFMSURfUEFSQU1FVEVSUzsNCj4+ICsgICAgICAgIGdvdG8gb3V0Ow0K
Pj4gKyAgICB9DQo+PiArDQo+PiArICAgIGlmICggc3RhcnRfaW5kZXggPCBzcF9jb3VudCApDQo+
PiArICAgICAgICBudW1fZW50cmllcyA9IGZmYV9nZXRfc3BfcGFydGluZm9fcmVncyh1dWlkLCBz
dGFydF9pbmRleCwgJm91dF9yZWdzWzNdLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRkZBX1BBUlRJTkZPX1JFR19NQVhfRU5UUklFUyk7DQo+PiAr
DQo+PiArICAgIGlmICggbnVtX2VudHJpZXMgPCBGRkFfUEFSVElORk9fUkVHX01BWF9FTlRSSUVT
ICkNCj4+ICsgICAgew0KPj4gKyAgICAgICAgdWludDMyX3Qgdm1fc3RhcnQgPSBzdGFydF9pbmRl
eCA+IHNwX2NvdW50ID8NCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfaW5k
ZXggLSBzcF9jb3VudCA6IDA7DQo+PiArICAgICAgICB1aW50MzJfdCBmaWxsZWQgPSAwOw0KPj4g
KyAgICAgICAgdm9pZCAqdm1fZHN0ID0gJm91dF9yZWdzWzMgKyBudW1fZW50cmllcyAqIDNdOw0K
Pj4gKyAgICAgICAgdm9pZCAqdm1fZW5kID0gJm91dF9yZWdzWzE4XTsNCj4+ICsNCj4+ICsgICAg
ICAgIHJldCA9IGZmYV9nZXRfdm1fcGFydGluZm8odXVpZCwgdm1fc3RhcnQsICZmaWxsZWQsICZ2
bV9kc3QsIHZtX2VuZCwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6
ZW9mKHN0cnVjdCBmZmFfcGFydGl0aW9uX2luZm9fMV8xKSk7DQo+PiArICAgICAgICBpZiAoIHJl
dCAhPSBGRkFfUkVUX09LICYmIHJldCAhPSBGRkFfUkVUX05PX01FTU9SWSApDQo+PiArICAgICAg
ICAgICAgZ290byBvdXQ7DQo+PiArDQo+PiArICAgICAgICBudW1fZW50cmllcyArPSBmaWxsZWQ7
DQo+PiArICAgIH0NCj4+ICsNCj4+ICsgICAgaWYgKCBudW1fZW50cmllcyA9PSAwICkNCj4+ICsg
ICAgew0KPj4gKyAgICAgICAgcmV0ID0gRkZBX1JFVF9JTlZBTElEX1BBUkFNRVRFUlM7DQo+PiAr
ICAgICAgICBnb3RvIG91dDsNCj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAgICAvKg0KPj4gKyAgICAg
KiBEZXRlY3QgbGlzdCBjaGFuZ2VzIHdoaWxlIGJ1aWxkaW5nIHRoZSByZXNwb25zZSBzbyB0aGUg
Y2FsbGVyIGNhbiByZXRyeQ0KPj4gKyAgICAgKiB3aXRoIGEgY29oZXJlbnQgc25hcHNob3QgdGFn
Lg0KPj4gKyAgICAgKi8NCj4+ICsgICAgdGFnX2VuZCA9IGZmYV9wYXJ0aW5mb19nZXRfdGFnKCk7
DQo+PiArICAgIGlmICggdGFnX2VuZCAhPSB0YWdfb3V0ICkNCj4+ICsgICAgew0KPj4gKyAgICAg
ICAgcmV0ID0gRkZBX1JFVF9SRVRSWTsNCj4+ICsgICAgICAgIGdvdG8gb3V0Ow0KPj4gKyAgICB9
DQo+PiArDQo+PiArICAgIG91dF9yZWdzWzBdID0gRkZBX1NVQ0NFU1NfNjQ7DQo+PiArICAgIG91
dF9yZWdzWzJdID0gKCh1aW50NjRfdClzaXplb2Yoc3RydWN0IGZmYV9wYXJ0aXRpb25faW5mb18x
XzEpIDw8IDQ4KSB8DQo+PiArICAgICAgICAgICAgICAgICAgKCh1aW50NjRfdCl0YWdfZW5kIDw8
IDMyKSB8DQo+PiArICAgICAgICAgICAgICAgICAgKCh1aW50NjRfdCkoc3RhcnRfaW5kZXggKyBu
dW1fZW50cmllcyAtIDEpIDw8IDE2KSB8DQo+PiArICAgICAgICAgICAgICAgICAgKCh1aW50NjRf
dCkodG90YWxfY291bnQgLSAxKSAmIEdFTk1BU0soMTUsIDApKTsNCj4+ICsNCj4+ICsgICAgZm9y
ICggbiA9IDA7IG4gPCBBUlJBWV9TSVpFKG91dF9yZWdzKTsgbisrICkNCj4+ICsgICAgICAgIHNl
dF91c2VyX3JlZyhyZWdzLCBuLCBvdXRfcmVnc1tuXSk7DQo+PiArDQo+PiArICAgIHJldHVybjsN
Cj4+ICsNCj4+ICtvdXQ6DQo+PiArICAgIGlmICggcmV0ICkNCj4+ICsgICAgICAgIGZmYV9zZXRf
cmVnc19lcnJvcihyZWdzLCByZXQpOw0KPj4gK30NCj4+ICsNCj4+IHN0YXRpYyBpbnQzMl90IGZm
YV9kaXJlY3RfcmVxX3NlbmRfdm0odWludDE2X3Qgc3BfaWQsIHVpbnQxNl90IHZtX2lkLA0KPj4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IG1zZykNCj4+IHsN
Cj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9wcml2YXRlLmggYi94ZW4vYXJj
aC9hcm0vdGVlL2ZmYV9wcml2YXRlLmgNCj4+IGluZGV4IDFhNjMyOTgzYzg2MC4uYzI5MWYzMmI1
NmZmIDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL3RlZS9mZmFfcHJpdmF0ZS5oDQo+PiAr
KysgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9wcml2YXRlLmgNCj4+IEBAIC0yODksNyArMjg5LDcg
QEANCj4+ICNkZWZpbmUgRkZBX01TR19TRU5EMiAgICAgICAgICAgICAgICAgICAweDg0MDAwMDg2
VQ0KPj4gI2RlZmluZSBGRkFfQ09OU09MRV9MT0dfMzIgICAgICAgICAgICAgIDB4ODQwMDAwOEFV
DQo+PiAjZGVmaW5lIEZGQV9DT05TT0xFX0xPR182NCAgICAgICAgICAgICAgMHhDNDAwMDA4QVUN
Cj4+IC0jZGVmaW5lIEZGQV9QQVJUSVRJT05fSU5GT19HRVRfUkVHUyAgICAgMHg4NDAwMDA4QlUN
Cj4+ICsjZGVmaW5lIEZGQV9QQVJUSVRJT05fSU5GT19HRVRfUkVHUyAgICAgMHhDNDAwMDA4QlUN
Cj4+ICNkZWZpbmUgRkZBX01TR19TRU5EX0RJUkVDVF9SRVEyICAgICAgICAweEM0MDAwMDhEVQ0K
Pj4gI2RlZmluZSBGRkFfTVNHX1NFTkRfRElSRUNUX1JFU1AyICAgICAgIDB4QzQwMDAwOEVVDQo+
PiANCj4+IEBAIC00NTIsNiArNDUyLDggQEAgYm9vbCBmZmFfcGFydGluZm9faW5pdCh2b2lkKTsN
Cj4+IGludDMyX3QgZmZhX3BhcnRpbmZvX2RvbWFpbl9pbml0KHN0cnVjdCBkb21haW4gKmQpOw0K
Pj4gYm9vbCBmZmFfcGFydGluZm9fZG9tYWluX2Rlc3Ryb3koc3RydWN0IGRvbWFpbiAqZCk7DQo+
PiB2b2lkIGZmYV9oYW5kbGVfcGFydGl0aW9uX2luZm9fZ2V0KHN0cnVjdCBjcHVfdXNlcl9yZWdz
ICpyZWdzKTsNCj4+ICt2b2lkIGZmYV9oYW5kbGVfcGFydGl0aW9uX2luZm9fZ2V0X3JlZ3Moc3Ry
dWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpOw0KPj4gK3ZvaWQgZmZhX3BhcnRpbmZvX2luY190YWco
dm9pZCk7DQo+PiANCj4+IGludDMyX3QgZmZhX2VuZHBvaW50X2RvbWFpbl9sb29rdXAodWludDE2
X3QgZW5kcG9pbnRfaWQsIHN0cnVjdCBkb21haW4gKipkX291dCwNCj4+ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGZmYV9jdHggKipjdHhfb3V0KTsNCj4+IC0tDQo+
PiAyLjUyLjANCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 13:39:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 13:39:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245371.1544706 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxmRP-0005vi-2D; Wed, 04 Mar 2026 13:39:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245371.1544706; Wed, 04 Mar 2026 13: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 1vxmRO-0005vb-Uo; Wed, 04 Mar 2026 13:39:06 +0000
Received: by outflank-mailman (input) for mailman id 1245371;
 Wed, 04 Mar 2026 13:39: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=Xh4z=BE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxmRO-0005vT-6r
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 13:39:06 +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 82981ee1-17cf-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 14:39:04 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-48374014a77so83354745e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 05:39:04 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48518807293sm50031755e9.11.2026.03.04.05.39.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Mar 2026 05:39:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 82981ee1-17cf-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772631544; x=1773236344; 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=X8CtSVUJuB+yYJVb/WeTxprdobFeg8yLEY1rCMe57LE=;
        b=L3t+bEsRf2k7Cm9FOtMr+P7q8Jmt4Q97e/m+I5P6Tb7wCaOvZffh6C0bjawMe+YUJl
         cGSb2c6hlU4Za7BEZUwdDjWqBbzOdzQIOU4Szu7mtsSD+5SW7R+3BZ4+7ltALEm0AiH7
         NxJuu0naz1qfA+XTkXBp8KpIxxjvZ/uaeSCTNDz4fJZ0UvHXCSnMiXNZlgZYIPQN4kYD
         TvrHmV/PuEUauVdculw8/xN3ktGJ4ezL5Z5mbpbz4T2+sxKHsy3fF24K3Twi9MM8wKQX
         LuFQi9/E7/t++cz4dBD2vljtvCB6T8q53gqCqdUoYEshO0ML9R86KwSfAz66tjGVGWzH
         YWKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772631544; x=1773236344;
        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=X8CtSVUJuB+yYJVb/WeTxprdobFeg8yLEY1rCMe57LE=;
        b=D2PB9pVAKhO5qVt7/oM8LJEHxwN23q3bddqCSCjRcAm5Zu+oWJMQcgwBydvLsvbaol
         1JgcVoGUC7I7y90uAHYY+U0LVgWox02o1xEVbmauWlGH9WOT+EsURxCvcT4rntPA6/X5
         48pcVkovc6yZqWAp7v9CLEIYfvpWJ4HiD5setLZnlCS/yxuAXylz40We2yIDGS9mPEsi
         IeIHiSb2ZLrvYIJG1Izz1uIEvpLm0HWWmo8Z/6IDevxX7lBC0oehVkuqBGcR1+90QudE
         zTG/m+HoF0vnHiA0IJ9JjDmWGYXgfATMSQ4uJr2X2g662NC/t8+AKSOcHr2zJ11ctWyh
         p4Tw==
X-Gm-Message-State: AOJu0YzqwavaZSCwbOe3wOXohI0P2emPN/vHHFbMzdJ5mPK6teqTwK4C
	Za9T7xUA4GHEfm9MySqZfxFZsPdrtiCCbd/k5lKCN6h/Fp8Lzt3PtOQpvcMuhpPtdgWlv3BAqSn
	FKus=
X-Gm-Gg: ATEYQzweliDychRUsTdH2tJEsCw80hel6T2Pk146Damin6qGWS0XA7WoOEap6Ysfhnz
	vkvmbddST1eygJWPNxq8TwTbjNVEPbEugwF3zPBQ9SitL9RmJX9FRU86IRypPHfDF3n/JPgev0w
	qPbXYOL4tOeGCuHIuoDkuq0/gDyZuxWt25fyrtNo3aSVYX+r4JYntaeFZtSryMJMpXQi46C5r9Z
	R36ztb60+qMiaF+8PdXJralyKp2OfAhQd2JmvwyFewWGxTnlOPQxOqwtkGRdhc0knfXJzONwQ01
	tEcD1EATvx1dvfVoOxU6sD8VNGvfG8AYGDYoMoaDOpPNy9XySFSlWQbbuJkk4km9jQbT0vCKOHI
	3LJsj/hsargqdgEGvY82n93OormL//B91t/3kjgEvCc++IrqsvzcMk9wE0Qd1g4SA/emgWuxCOi
	A1dcha6eVBCTUk5kVM5O7qkkh09fgy6s4VXtLTs+iSxzJU4NJC07YUm8Plo5TipPTTnI9W161Xi
	2Nb25swVdrCH7M=
X-Received: by 2002:a05:600c:4e8b:b0:480:1d0b:2d32 with SMTP id 5b1f17b1804b1-48519847bb7mr35003105e9.12.1772631543674;
        Wed, 04 Mar 2026 05:39:03 -0800 (PST)
Message-ID: <12fbad10-78ad-4679-a1db-3995e34da094@suse.com>
Date: Wed, 4 Mar 2026 14: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>,
 Marek Marczykowski <marmarek@invisiblethingslab.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86/S3: restore MCE (APs) and add MTRR (BSP) init
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

MCE init for APs was broken when CPU feature re-checking was added. MTRR
(re)init for the BSP looks to never have been there on the resume path.

Fixes: bb502a8ca592 ("x86: check feature flags after resume")
Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Sadly we need to go by CPU number (zero vs non-zero) here. See the call
site of recheck_cpu_features() in enter_state().

--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -642,16 +642,21 @@ void identify_cpu(struct cpuinfo_x86 *c)
 			       smp_processor_id());
 	}
 
-	if (system_state == SYS_STATE_resume)
-		return;
+	if (system_state == SYS_STATE_resume) {
+		unsigned int cpu = smp_processor_id();
 
+		if (cpu)
+			mcheck_init(&cpu_data[cpu], false);
+		else /* Yes, the BSP needs to use the AP function here. */
+			mtrr_ap_init();
+	}
 	/*
 	 * On SMP, boot_cpu_data holds the common feature set between
 	 * all CPUs; so make sure that we indicate which features are
 	 * common between the CPUs.  The first time this routine gets
 	 * executed, c == &boot_cpu_data.
 	 */
-	if ( c != &boot_cpu_data ) {
+	else if (c != &boot_cpu_data) {
 		/* AND the already accumulated flags with these */
 		for ( i = 0 ; i < NCAPINTS ; i++ )
 			boot_cpu_data.x86_capability[i] &= c->x86_capability[i];


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 13:47:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 13:47:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245383.1544715 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxmYx-0007Vn-QJ; Wed, 04 Mar 2026 13:46:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245383.1544715; Wed, 04 Mar 2026 13:46:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxmYx-0007Vg-NU; Wed, 04 Mar 2026 13:46:55 +0000
Received: by outflank-mailman (input) for mailman id 1245383;
 Wed, 04 Mar 2026 13:46:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=bY7Q=BE=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vxmYw-0007Ur-AI
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 13:46:54 +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 97140d81-17d0-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 14:46:49 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 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.9678.17; Wed, 4 Mar
 2026 13:46:44 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.016; Wed, 4 Mar 2026
 13:46: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: 97140d81-17d0-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VTwTDRf7O1aULMmJhJwLYyQiSK5dLU07N7Fd1VrXe82iw71RGsn/Z0U5ZYTzXcCHKIFf4JZ4gdS90GTOZBAKwVHapd0H5MG078resBQLiA3LbEAvRebHNX0oA1+qeOYAVELxT/h02rr4PIejZTI7xFoA3DIjWe9inRfKMNNY9neVGL9WOZJwTvhOY+edpbDAiU4KyihGXuuetcqETJ9B9sQlPMSnsYJ/XXu5e9boX3K/mfcRA6Fjo9Y7E4kbR8FRWfbvud3MfwIbN79RBUxG5Yoj54qxW4N4BdWYOGmTkNWJk1uzctnQgyR57s6a3hkPzqAoAaaX3K3mSfQ+Tr0C4w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Hxei7N0ZENe5GUPjpfgHtnam0kPoo4xnJveyz9Th7AI=;
 b=hlF+GGh5ZIlBlP+/Q4QUVwhjSgNQVjp/IWM5A+vT2V90SvyPhXasYe688PQojwiSk1FMnHJKy/fTnBXw7fewXbTGHaVCDq6oGcmrdJy500xwbr6JscRNp8kyMXkx6rV6ZP5pq7mIJtbsNUcDyTmbj53x3Ij+0BhgEZnEyxu6XGmjnOm967SDi3t+UZNBOWvOa1pVrs4Xx4UkIWb1u+Bp7pRY0X6Ve5jMjOJ1zPJQR5k8hhwTZA40S4mfKZFtKGLMEa/+GPtKf8cIV4qT674/5FIbl0IsWSVv3O8H1R8UrNp6ehXGSa0ABd1P4Bp66bE1MgrVk58VT0Xs97A2+ZV8yg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Hxei7N0ZENe5GUPjpfgHtnam0kPoo4xnJveyz9Th7AI=;
 b=TaZBl+7OthGxbZtDGYYbGaKnNBl6pTF5KRiHeqprhf56Id/7h8QKUcVdcg1npMGrvC0HkyO+GS7cHpR/Kg/hMWZ2I2UGSEPOChLKTb9GxtIt7R1sBFHLbCVdprtZVQ2tknfDuKLA/1KMVUYeLECVBTrIiDNgFaQb+eXha7aQ44w=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Mar 2026 14:46:41 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v5 4/5] vPCI/ReBAR: improve cleanup
Message-ID: <aag3wflbZ6k9oEvx@macbook.local>
References: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@suse.com>
 <252e527e-dcb2-4710-8a43-070c49512e00@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <252e527e-dcb2-4710-8a43-070c49512e00@suse.com>
X-ClientProxiedBy: MA3P292CA0070.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:49::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_|MN2PR03MB5101:EE_
X-MS-Office365-Filtering-Correlation-Id: 16e62419-3e62-46fb-a17e-08de79f47946
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:
	i/c60Crv33QwZevC5zmRLM9uaOFQ3UlccD6dtg74LANfuH8Qqa/eYCGRrLtI7zt7fFjFShJXhsw1tdKfm1zoyEcSZNhBwNrwf7T9mxKIZTrWoNZlqvPhHPn1Ggg8gjydD+mvfvaMiaiRtLYKk8WsGc99yFve6iB5dbeymVETxLhOhTk+qyRrMqcwj8ktwz/ZDjkh7MCN8BNtZVJldUH7Tp7Kb+YiwL/0sz85IDPDAWdg0cZCZkFLb5JE2fbzRRRFupYyCpDMn/0tZPKTXdVjGL3IvtbctZkKEzabs9K0zBZMX7JmqCIy6j601PGygNFN+jHWGBICZ2E76JSDGXIh4dG86fGQoaR2ufhNSGBJPBK9ZtKoAKV0WyQf2tG3xCurIZomxPPPrYxJ7+8TVeopfkqDyWV5HnqC3XB9iGy99Z2CbyPTgPO9Nb/fh+6rC0nCsNwBpXp22E1WoR0+65oSYfhK6hkhCJP8heWPJA8g9mveNU8tp7GfEE4ZF4WIz4I68DSWyX/cDax5hthbcAEv4Prr7hdOyLY4oTQ0uvBOdqABBHXCMLM/MVtWipYuWv9YKC2Q8ce921gF4K/deoXwW/pJR6Sqy4fybAPnL38WopsLQp/oh7yEQbShlUSvk3SId4hRZyyfeXB9Y61T+5dH1cLklOJA4/gR0pU3HyiwVnvQxML0Cer3ojkbBHqVvs310yuYP9M0X2bq3ynnof/R8khUd7FL6sWrnsBiwBxwC/0=
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?cXZQYk04T0hiMFdxcWNHNlQ3a3dhRGFwL3luSU52bXJWRWk0NHBOaEJ5Wmt1?=
 =?utf-8?B?NkpLOWxuQVFuc1dibXFCaWVocENoZjBERkFFOWRDclUrVFB4cEZ4aThmRkVx?=
 =?utf-8?B?Z0tlYjA1M3gyU25YaDJjUitqYjNaZ3pSRnJTU2hDMDRmMkZENmkzVjVId3Ez?=
 =?utf-8?B?Yk1iQU5hTFAwd3pPbGRiL0ZyKy85VUlDZ0pKbklQYVFXUmZlVGxTTFFDbVds?=
 =?utf-8?B?Y0V2eGtyOGNUVnFWSVhUc1RBbGgyVkpkRVZnOFhEVkNoQUxOSEpaVGQrdnVJ?=
 =?utf-8?B?SmJKcTFUT2ZvVFJlRUNGZkhIZlYvUjdTeFlnUE5kVUxDcXBLNDhFWktiM0Vk?=
 =?utf-8?B?Q0NYS1JkQmNXR3lmNnZDMVRyR0dJdHI0Z0c5MElSNkdidlNXWFluallwZ0Ez?=
 =?utf-8?B?OEhvWWNzbzVIM0ZPSlRtbHZRUUh6cTVwTGY3YXQ2REJ2VWMzeXNGby9mSkJD?=
 =?utf-8?B?S2I5OEdmbUVoTVNWeE5HUld3bFRDL2VhTXNZY3dDZzlEUjRRNFRnNG9wQ0pT?=
 =?utf-8?B?Ykl4UW5tV2RpaFJGMVM3bXcyek12QTh2MlQyTEo5S3ErdW5IZFJRMVFhKzgr?=
 =?utf-8?B?UW93QlgrdHJJR1lxMVV5UDJBM1hwYzJzNEFjeVpsYUVQbjNaQzN6WTByNERH?=
 =?utf-8?B?ZW1qaFpUcTUwRVgvdXBQOVhiZ1ZRNGdzR0tyTUlHc256b1hkMGdsSW5NRDVO?=
 =?utf-8?B?V1hmbjd2V2Z4OGFiQzFqM3pQeFZYaS80b2JOYVhvUVJxeldhZFM3Qi9kb211?=
 =?utf-8?B?VVE2czJsMHIwZzFqSW9qclE1ZFNSZnBKYjR5VXpYa0IxdHp1YlRpdFhHaWxm?=
 =?utf-8?B?WVZaVEI4Y1Racy9ZZ3ZySC83OWZLZ2szVXBydHRDK0E1UTVuWHZnbVNIcW9H?=
 =?utf-8?B?R3BoTEFBS1JPU1ZjdEpYdGpLQ1ZPRC9RVm8rWkk3VlgrN2Q4TG8raEtDbE5Y?=
 =?utf-8?B?SDFabUtMdWdUdi85UGg0V3hxVGdNbG1jUFhUYjZLOUNvakNucE1DaGhHTUEr?=
 =?utf-8?B?WWVpUWdreEdNNXFkWGczZVJVQmUwNWFpNXg1VmtvQjRkQ0xISUhvOGp0eWNJ?=
 =?utf-8?B?TFJCODVDd24yOFJ2RU41MXIvVm5RTWdTQlV6QmVwRlErOFBqVjd2R1VndmVo?=
 =?utf-8?B?c0daR3FHYWxrdWJ1aWNKSnFlTnNQRDluWThhK2tHVWErUjZRQU9MK3hHQ3o0?=
 =?utf-8?B?a1QxYSs5QWZLak1PeW5TNGpFdjFqM3ZVRUlnbzlpU00yaHBOQmI3d2llR2tO?=
 =?utf-8?B?V3ZYVjFKVGpTUnFVRmM3cEhGb1RvcTJTbEw3MlMraEM1a1VYWTM4b21EQUNQ?=
 =?utf-8?B?VlV1MXRpam9NYXhZSDRxblprckVQcWxSeCtsY2lHbURJWjMyczZrZ1RLMG1l?=
 =?utf-8?B?aHFOUEpCVGhnKzlORy8zOFZpZkxOc0dLRUVsekQraFN6Z3ZMZnRRNElJemt4?=
 =?utf-8?B?WVI4SjRlbEdySnZ4WklEQkRlQ1BxektuNEpmMVJ2UmlPWCtiZjhjRXE0MTIv?=
 =?utf-8?B?R09hbzN3aDc2ZVRwdGZnZXBJMVAzakV6MzJ0UVc4Vml1R0czWEhVVHhiLzJ0?=
 =?utf-8?B?KzRVSDBPN2RoQzdya3hEZnZXQUJxdWZaUlRnUzdIY2NCUjhtbnFyeWg0bElj?=
 =?utf-8?B?VGJhZHBtYVdkQlVhZE9IczlmQzljZnJwZ0M0QlZvT1M3Y0cxNkhGbEdoWm1l?=
 =?utf-8?B?T1BXL21JTWQ4blpTUVpwUkI1NkE3QXhsL3Vtci9wNlRlejhyUHlGRkJ2a3M2?=
 =?utf-8?B?QjhMV2JRaDB2QldjdWU0aC9BOTZxSFI0N09OSVpaM3VrOGt0WlFEQnlwZngx?=
 =?utf-8?B?eURkdGM2aTJJUjlhQXl1dUMxaDRGNXBrTVBHa3U1bWRkWCtoa0VKa3F0eHNY?=
 =?utf-8?B?czdVeFVMbHhVMTJxRkdqR25RdE9vWlU4UlpSL2pkTW5lTTBuRlZFUFEvbWQw?=
 =?utf-8?B?ejJkZi9LNU1jMzM4bWhreVZ2bTVybGlIaUIrSTdsdnNTb1VOOWRPMldGaE5B?=
 =?utf-8?B?UUU0MzRTQU01cUV1MGVEMzlXVU9lZ1llZzVnTG85T25Ya0NVVkVRaXRJUndn?=
 =?utf-8?B?Wk14QUxYbCsrS3B0ZUhLZzE0RUNnUWtydFRLNnRiMG4xOTczVlpma2JCeW95?=
 =?utf-8?B?ckJOSTdsZ2tDSlVsLy9IZkcvVXlmQnVOUm9JYTgrWU1uYWJOdlRDWVE5N1ZP?=
 =?utf-8?B?UFozMFpYQ3NvZUxrZHBxWEQ2U1diMS9aUVpPMmVvYUZyMmhrRDhGV1AxdWky?=
 =?utf-8?B?NERrWHVLNkRYQlNvSGp3L1pBdmVzOVNRc28zbUJsbFZLa0J5cVovWEJvWUJu?=
 =?utf-8?B?VmE4ajkzYk5oelFBR0VNdktONklCRW0zZ1NENFdObEMvYXNXQmhJUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 16e62419-3e62-46fb-a17e-08de79f47946
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 13:46:44.7768
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 2RXcfnpwwdHmp+/0L1kutZ5Q2tCOCtjH943xffEq2uI/VrGRYC47yt85AVKuLfm+wYdTQF0dOLIrGnBVcH4XTQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5101

On Wed, Feb 25, 2026 at 12:44:22PM +0100, Jan Beulich wrote:
> We cannot assume extended config space to (still) be accessible when
> cleaning up. Necessary value need caching instead. In fact, as the caller
> also cannot look up extended capabilities, the cleanup function needs to
> cope with being called when there's no ReBAR capability at all.

I see that you adjust the code in vpci_cleanup_capabilities() in the
next patch, so that it also doesn't check for extended capability
presence as part of cleanup.

> As kind of a side effect nbars being 0 (which init_rebar() doesn't
> explicitly reject) no longer results in a bogus call to
> vpci_remove_registers().
> 
> Fixes: ee459aeac096 ("vpci/rebar: Implement cleanup function for Rebar")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 14:16:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 14:16:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245441.1544808 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxn1P-0003we-Qn; Wed, 04 Mar 2026 14:16:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245441.1544808; Wed, 04 Mar 2026 14: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 1vxn1P-0003wX-Nz; Wed, 04 Mar 2026 14:16:19 +0000
Received: by outflank-mailman (input) for mailman id 1245441;
 Wed, 04 Mar 2026 14:16: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=Xh4z=BE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxn1P-0003wR-8W
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 14:16:19 +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 b5aab99d-17d4-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 15:16:17 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4806cc07ce7so78664095e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 06:16:17 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4851a8ea6c1sm12343105e9.11.2026.03.04.06.16.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Mar 2026 06: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: b5aab99d-17d4-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772633777; x=1773238577; 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=iWAMMFhGSYsl003M4aG2kfxFpIIqe0C5XbSQwJju3C0=;
        b=FAx7rUggOkD6Q2XR/zsLAHMraWORCQv1xo3G2FK5Rr1Zq+nxdGQclZ7SwAIVY5fSHz
         HXraC1VYmJR+KPeJGi3iPmlevYIjayQ9X3yYRqTOnYd0glx33/UZwPOUv2mO3JsZscU/
         sdxT1+3yyftPoXu4kzJjUmjM8lhdkQMtbGcynAVfZqhDJtlvEddlcqBBkMoGp8RWCjw3
         /rVRAmhmNjXXMjvdKHe9LZskgkQaXRTc2UhwvEe0lS0LhApuGgKxFq9kcZ1g4+Acuhce
         ba1hOnQlteQz9u23bVh+1YIcbcS8eWRWut0xt/d6YgE6OCiCwV3P0qDY/3kfWDjufqEX
         HCYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772633777; x=1773238577;
        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=iWAMMFhGSYsl003M4aG2kfxFpIIqe0C5XbSQwJju3C0=;
        b=ZyFRBY2AlXUyghiWCoONpKhjxREveDo8CGaohyOvTcIloX9GN9puM8eC07ezyUrKqj
         EZZJe60IlZyOXFbogUJ3nri2MPMe3Ih/0xPTphFk+0xlkUzn+lKq1VMZ7QRFK0FpoaDE
         KsDlVcUN8q+8s7SMT5sY+k9LbFuDHdzZAv0FoWrxBsN8kap8cFBM9zLTOUETNfM7RHME
         59jaZHB94HRCiEQvs356yfLpAdfPkzfsvOJ7JO/fRoTCwNFBL+Zrzh1lnDBdqby+v9US
         clmNBR9PC7PCSOhekTpYDpWwX4iUjgSjPB+/akPDxds3cPWjEg4JWkZS7uctt5v2+lZE
         DVdw==
X-Gm-Message-State: AOJu0Yxl/8qTOLRN+zWPXf2S/kiGPd+hyu9laOgWWuCgqoNIq7PE2q90
	LZaQ3Td8a4FM/MKHK0QOYQQqsz9S2eOPEMYHfGhr9n90M4b0Wz74gTQMa6R7U98hvroQGVFrSQV
	ZnRw=
X-Gm-Gg: ATEYQzwUL85+xSzkwp+cjTD91x5cfeokA88M1xKMlPd10OulBT9ssFqdvps0nKEDUvH
	23FDgOH7EHWOo7Mf+AoSQW1VEmPO6UtAwg9dDG8FBqL/xy/H7Pu8/FW5nRoZFHkckKXuuuF2q0n
	k7wpAPFrPFWzIq5/C3C2J//1pxig8WA6DlXoTGfan/Xbfyd4vfey6EmePYes06TjtIUhjY1TrDO
	PMfbgb3pe2Gql/YeIo7HkqSFTD96+0hveOikhHPfwpUeXrOpZFzhTdi+6hkUFt1wzEDED5s6Vr9
	QHKXyCjDYFDkKMqnc0WUHeZzNhSYcjK3ExhDu08oYKDIGJcwvJb0jfDWNA81NIUWxDKaeQhqKs/
	RB8Q9GeJvwD5/mNL9uoVWm2Lr+XiW/I/NCAeTlyt9kg0jVkBLjxuYCVmO3O/E/TH4OH62h+rJ7y
	GsA2ARnQ5iZrlf470s59Po1tjBHehMbuUB9SDY8jsttITf8h0haXp2JMP8pQvWan1o4KKcBOC10
	JA2gFwzN+2wqzr4X3+UJKnFUw==
X-Received: by 2002:a05:600c:1e2a:b0:465:a51d:d4 with SMTP id 5b1f17b1804b1-48519848388mr31960925e9.6.1772633776800;
        Wed, 04 Mar 2026 06:16:16 -0800 (PST)
Message-ID: <573bebfd-af24-48ef-934a-74142c7139ee@suse.com>
Date: Wed, 4 Mar 2026 15:16:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: preparations for 4.21.1, 4.20.3, and 4.19.5
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 releases are due in about two weeks. Please point out backport candidates
you find missing from the respective staging branches, but which you consider
relevant. Toolstack backport requests please go to
Anthony PERARD <anthony.perard@vates.tech>.

I have already queued (in addition to what went in today)
878a9cfa4518	x86/ucode: Support discrete modules being CPIO archives
a934a600c454	x86/pv: Don't assume that INT $imm8 instructions are two bytes long

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 14:21:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 14:21:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245448.1544822 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxn6e-0005ZT-I0; Wed, 04 Mar 2026 14:21:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245448.1544822; Wed, 04 Mar 2026 14:21:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxn6e-0005ZM-D7; Wed, 04 Mar 2026 14:21:44 +0000
Received: by outflank-mailman (input) for mailman id 1245448;
 Wed, 04 Mar 2026 14: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=4oGM=BE=gmail.com=chakrabortyshubham66@srs-se1.protection.inumbo.net>)
 id 1vxn2M-0004Pj-8n
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 14:17:18 +0000
Received: from mail-pg1-x52d.google.com (mail-pg1-x52d.google.com
 [2607:f8b0:4864:20::52d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d8a99161-17d4-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 15:17:17 +0100 (CET)
Received: by mail-pg1-x52d.google.com with SMTP id
 41be03b00d2f7-c70bfef17a4so4076246a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 06:17:17 -0800 (PST)
Received: from localhost.localdomain
 ([2409:40e5:116b:88d4:1c32:f854:c933:d139])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2ae3d1b2c51sm128138145ad.19.2026.03.04.06.17.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 04 Mar 2026 06:17:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d8a99161-17d4-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772633835; x=1773238635; 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=2HHesXUFzgL5YUe0UTlW0VJee6vfQ7EH/6Wc6oNHvRQ=;
        b=nMjgPhRWUKxGrzQT5Qp9yNEplTHI/0csGHlezhLeCJx0XV81ps7sWHcF1bTW+8ynWw
         ndv9spFEiIiqnNKloVkr/iKjSCbE0J4CQB4b6q9Trg8o4nZ4gNUrQ/gjiDkVhbhVj/5K
         T4WVXejGW193IJP3yPmmGe+L2Kp4b/jPzU5IKZuGN8Wz+HKdVGacRXh/lmoNZzWskE9U
         OIegLwgu1ZCYAlWqPKxUitjnZo2aVomHkvMztdzuenxzV49ze3n3eGfstdu4e5oxGVtf
         L673IEgqyTGpy9hi87jyQBsQDqIlgNfLS7pNQhCulffDaMHPEXyAaFgzvwwUtyJB46LW
         n88w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772633835; x=1773238635;
        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=2HHesXUFzgL5YUe0UTlW0VJee6vfQ7EH/6Wc6oNHvRQ=;
        b=QrhmaCSWG5X/lpUZri0y5SxLxgkiwvQ6Z+jVblwqWu/dr6k1+7Qq2Qv9rmybY1sZwu
         6Lhp//IIQSz7W2gyxaK9VdYNXTfcOBM+7dT2T8z+jG4rTWSB/XnZV1orW0uTNlj75bFk
         bo0c1I3tok2UUFsygbyD2Fdt0rK6Qwp8zMrrBiQ2TJCC9cu8yuTWUVa+wJl2PU3aBPHb
         kJ2ASKXxfako0Ia+9SiHKwLqWwphCrvTb1eKTUJx30UFnl5HV+3MMjijrdutZi7F4WDR
         ryhoih89FuDVdQ68XcD2VH3c7MS6SHUqhr8djJbDvZK24NVSy42VRyUQkKzvsjxIOLBO
         9MBQ==
X-Forwarded-Encrypted: i=1; AJvYcCUCqle0CJuIKOKa7HNFKJWjRRUwzdAkuFDZHBB4zHESekeTwDs8+IuOcy2GijCU7j8GSUZK5FrlZWM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxaL4ffy7lQohwwjImd81LzuJw51cFSjup4xJwcFvCnw/l8gMRj
	JuxNNi6/2VODHCheq8ca/Vx2VUqqkevpJVaD4bTmrVNoX1GxNJ0G1NoD
X-Gm-Gg: ATEYQzwnsl1AGSHnQaZFav+BZdUqvbFeQ6Yw029lqZHVlqBUJtxt10XLN3b9PYni0e0
	Wx7oaIeI0KzeoD/vryvjDnHIPigrTMOiMqHsOsPNAyYULp8ygXAKJoTR66anbnHpl62GFT4ezcD
	nSW1v9xUeO7haJLuUq6LTv3EORtUw322PJKG0McoRCGuVLpkqrn3wSV9uSsnGmUbz/SyCoGwMA7
	FPmwwVNmwJi9v5WosZGh3ENzkT0ZIiY9CHSj8DWawOKBxIA4god3Jp20ImZYegmo+cwLYq/zFzt
	vISBt7ScOU+9tMWAMjTQL5/8wp/HNjCeEM6X9B3YZvl6R2H/+BwzV6YHTzgv8SHQHurbSW/l8lt
	Bi0KrLFGiBPIUZDHFHmPKPGADFg8cC5LvWMFe+cv4N0kgTWFZv2zAEZeOVFYsogGLB041c+/zhU
	PKrSJtlmoVBJTSz2kV3NLMgzuxuHniW3U7mLCG2emP5WM2/ma1MZjJ
X-Received: by 2002:a17:902:e5c6:b0:2ae:50ec:fa35 with SMTP id d9443c01a7336-2ae6aa36151mr22864825ad.24.1772633835197;
        Wed, 04 Mar 2026 06:17:15 -0800 (PST)
From: Shubham Chakraborty <chakrabortyshubham66@gmail.com>
To: corbet@lwn.net,
	jgross@suse.com
Cc: sstabellini@kernel.org,
	boris.ostrovsky@oracle.com,
	linux-doc@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org,
	Shubham Chakraborty <chakrabortyshubham66@gmail.com>
Subject: [PATCH] docs: sysctl: Add documentation for /proc/sys/xen/
Date: Wed,  4 Mar 2026 19:46:44 +0530
Message-Id: <20260304141644.28777-1-chakrabortyshubham66@gmail.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add documentation for the Xen hypervisor sysctl controls in
/proc/sys/xen/balloon/.

Documents the hotplug_unpopulated tunable (available when
CONFIG_XEN_BALLOON_MEMORY_HOTPLUG is enabled) which controls
whether unpopulated memory regions are automatically hotplugged
when the Xen balloon driver needs to reclaim memory.

The documentation is based on source code analysis of
drivers/xen/balloon.c.

Signed-off-by: Shubham Chakraborty <chakrabortyshubham66@gmail.com>
---
 Documentation/admin-guide/sysctl/index.rst |  3 +-
 Documentation/admin-guide/sysctl/xen.rst   | 33 ++++++++++++++++++++++
 2 files changed, 35 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/admin-guide/sysctl/xen.rst

diff --git a/Documentation/admin-guide/sysctl/index.rst b/Documentation/admin-guide/sysctl/index.rst
index 4dd2c9b5d752..aae68373902f 100644
--- a/Documentation/admin-guide/sysctl/index.rst
+++ b/Documentation/admin-guide/sysctl/index.rst
@@ -84,7 +84,7 @@ sunrpc/		SUN Remote Procedure Call (NFS)
 user/		Per user namespace limits
 vm/		memory management tuning
 		buffer and cache management
-xen/		<undocumented>
+xen/		Xen hypervisor controls
 =============== ===============================================================
 
 These are the subdirs I have on my system or have been discovered by
@@ -102,3 +102,4 @@ it :-)
    sunrpc
    user
    vm
+   xen
diff --git a/Documentation/admin-guide/sysctl/xen.rst b/Documentation/admin-guide/sysctl/xen.rst
new file mode 100644
index 000000000000..957febd6bab9
--- /dev/null
+++ b/Documentation/admin-guide/sysctl/xen.rst
@@ -0,0 +1,33 @@
+===============
+/proc/sys/xen/
+===============
+
+These files show up in ``/proc/sys/xen/``, depending on the
+kernel configuration:
+
+.. contents:: :local:
+
+balloon/hotplug_unpopulated
+===========================
+
+This flag controls whether unpopulated memory ranges are automatically
+hotplugged as system RAM.
+
+- ``0``: Unpopulated ranges are not hotplugged (default).
+- ``1``: Unpopulated ranges are automatically hotplugged.
+
+When enabled, the Xen balloon driver will add memory regions that are
+marked as unpopulated in the Xen memory map to the system as usable RAM.
+This allows for dynamic memory expansion in Xen guest domains.
+
+This option is only available when the kernel is built with
+``CONFIG_XEN_BALLOON_MEMORY_HOTPLUG`` enabled.
+
+Copyright (c) 2026, Shubham Chakraborty <chakrabortyshubham66@gmail.com>
+
+For general info and legal blurb, please look in
+Documentation/admin-guide/sysctl/index.rst.
+
+.. See scripts/check-sysctl-docs to keep this up to date:
+.. scripts/check-sysctl-docs -vtable="xen" \
+..         $(git grep -l register_sysctl_)
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 14:27:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 14:27:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245467.1544831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxnC4-0006Dt-63; Wed, 04 Mar 2026 14:27:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245467.1544831; Wed, 04 Mar 2026 14:27:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxnC4-0006Dm-3Q; Wed, 04 Mar 2026 14:27:20 +0000
Received: by outflank-mailman (input) for mailman id 1245467;
 Wed, 04 Mar 2026 14:27:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lYqL=BE=kernel.org=broonie@srs-se1.protection.inumbo.net>)
 id 1vxnC2-0006Db-Vl
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 14:27:18 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3eb3ad6e-17d6-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 15:27:17 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 224B160097;
 Wed,  4 Mar 2026 14:27:16 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id EC9DDC4CEF7;
 Wed,  4 Mar 2026 14:27:13 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3eb3ad6e-17d6-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1772634435;
	bh=Es80wMpp1atjNoZqqiG8/9SjgOPQJW7TW/Pe4UalxUc=;
	h=Date:From:To:Cc:Subject:From;
	b=Akq6zWMimN7VrH4OZdRxecT0Lxvp/xOfecJM39rkSUx++qr4NDHCuEeJg3Srdg5D3
	 7vwz2iiLwsbTMznc66KNIdpHnMiGFxZO6aeqKN5/868rFfDWzyX81o+foR1g65W0SO
	 T+DarO/9H6bEA7gPnnrUS6bfDToMrBH3a7Xj6VAc7481Z56Kh4XtI60XN1pQY2czX5
	 twJVsqr5HEDWZMb4D9IYzLGBjPohVsHoAUoSfX/DdAzmM68iLe6YbffMySI+7GvHhd
	 /J11FwFWSy8YDj9Aoco8jHYDqE/cSBhz23K5jAaiEiTz6TjEU6cBgIcoesU7DcoVS4
	 e/T11An8Mb2ow==
Date: Wed, 4 Mar 2026 14:27:11 +0000
From: Mark Brown <broonie@kernel.org>
To: Juergen Gross <jgross@suse.com>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Xen Devel <xen-devel@lists.xenproject.org>,
	Hou Wenlong <houwenlong.hwl@antgroup.com>,
	Alex Deucher <alexdeucher@gmail.com>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux Next Mailing List <linux-next@vger.kernel.org>
Subject: linux-next: build failure after merge of the xen-tip tree
Message-ID: <aahBPzflrEJ2FPx0@sirena.org.uk>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature"; boundary="vafmZqH34VLuiaf8"
Content-Disposition: inline


--vafmZqH34VLuiaf8
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi all,

After merging the xen-tip tree, today's linux-next build (x86_64
allmodconfig) failed like this:

In file included from /tmp/next/build/drivers/gpu/drm/amd/amdgpu/../display/dc/dc_types.h:38,
                 from /tmp/next/build/drivers/gpu/drm/amd/amdgpu/../display/dc/dm_services_types.h:30,
                 from /tmp/next/build/drivers/gpu/drm/amd/amdgpu/../include/dm_pp_interface.h:26,
                 from /tmp/next/build/drivers/gpu/drm/amd/amdgpu/amdgpu.h:56,
                 from /tmp/next/build/drivers/gpu/drm/amd/amdgpu/atombios_crtc.c:29:
/tmp/next/build/drivers/gpu/drm/amd/amdgpu/../display/dc/dc_hw_types.h:221:6: error: 'pixel_format' defined as wrong kind of tag
  221 | enum pixel_format {
      |      ^~~~~~~~~~~~

Caused (I think) by commit

  4e05a08c6f3f3 (ACPI, x86/boot: Remove {set|get}_root_pointer() ACPI callbacks)

which changes the inclusions and I think triggers namespace clashes with
the unnamespaced pixel_format.  I've used the tree from next-20260303
instead but really the fix here is that amdgpu and other things defining
a pixel_format should namespace things, I'll consider if a revert is
more sensible.

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

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

iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmmoQT4ACgkQJNaLcl1U
h9BXbwf+NMgzm+EwZ+oRef+uo7RxieWsON/heDAaLQf7kj0S1+EUF48sTw++m2Xp
iS4EtFT0QNZCVTgH5JbbpxFkv7J9Z+Cycf9M6l9aZTsof8zzGWE1aYvrxXOo3Fw0
0ZXJlPOrxwmJldcQsf3F+rZEVY74BCL24XbQD5qHje5nqKKmlGA+XkjaZXW9KqHL
/icsEcg+PbZR226vH2nrrTcAUj6nX3WVcZw294QDas+N1Un/P7vDr2HOqxAiBzvO
9bzg8mUBf2fcCFQl+rNP88wa6ODwqeN0/w9twk33EVXqcJR86FfMZRvrrdcEc1gZ
Q4CM6t//I3zUfNNsrbV5tb/x3uu4zg==
=c3Fj
-----END PGP SIGNATURE-----

--vafmZqH34VLuiaf8--


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 14:29:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 14:29:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245476.1544840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxnEA-0006qk-Gw; Wed, 04 Mar 2026 14:29:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245476.1544840; Wed, 04 Mar 2026 14:29:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxnEA-0006qd-EM; Wed, 04 Mar 2026 14:29:30 +0000
Received: by outflank-mailman (input) for mailman id 1245476;
 Wed, 04 Mar 2026 14:29: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=03ok=BE=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vxnE8-0006qV-E1
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 14:29:28 +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 8c5c4384-17d6-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 15:29:27 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b935cd1c6f3so1064496066b.3
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 06:29:27 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b935afe7d28sm730129466b.67.2026.03.04.06.29.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Mar 2026 06:29:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8c5c4384-17d6-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772634566; x=1773239366; 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=2W6PqjJjkvvzM4jill6dW7owJPHBge6fWDwErSN3/M4=;
        b=C4Bu1RGaz4qxsFb8KrlB6aJBRb2lwAE+yy1i/f3FguLcqgUtUrokEVKe1vvI4Zt91H
         KoFBKMWK5zPyAfflBH2rgaDuxjIr1Vn9plml1X30JS+CTb4I7vPfi2ELQWeCzb1IhOd9
         K07loIuRQ5LIEpRLaefMmbZLGkcZ6usy92VtZefW40KPzSs6x0c0bztNQ14eaJJ5w4yE
         Yv4VS4zKV1Tsvu5+YsZpv410HVmsPxFTDHf/erKzS+ICsgRu0q29q5/pejjfank+8yLg
         S3/B0GvdRNh5EZGxkw37H1h5gXdUX6eg/6lte6ZFmocH1NXArghnc4OGRyA2V7omiaI6
         Qhhg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772634566; x=1773239366;
        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=2W6PqjJjkvvzM4jill6dW7owJPHBge6fWDwErSN3/M4=;
        b=dZ9IBbKyQLHRMAHkGKSFbp9ypDiexkE744zATe9x5nzF9t1cT9J/N6xmb2I+SFrrvw
         TgCcZb/tEvnZUhMd13w7/LwwcC6yn40lBLYtoYojRzK9vZ8dXalfOyQaEIx+ElS/gDUb
         O4Ecs8ecFVlJmaitwMFggY60Rp2tII32b9yBRvSKoMKb9JuDgOVe92XT6PjaK+PgG4hi
         Mbpv02SWzLfrtmuFwfrvoZcABquOXZOM4kzMmxqR7TSYuYsJLSI1H5YbYLxX0tEgqVHp
         yHsBFG6xhsZFWcgpegj2LH7SA80VWHdavKCd2ZQ6HcugBv0kFtzpZLYe4YG5fTB65sqK
         /mag==
X-Forwarded-Encrypted: i=1; AJvYcCW7nPBzlhi7wMurcF2MyMVKUEikGLhf3WnMpiCnFS+aZOABd90KrNRSNPNFEOjqybcQb2e+C9WjMGc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzWcqsmsMK3pF6FuDAxor89iqSpQBvnWy0hKXQsBmO9Hm2Jbm2q
	Gra2KpmsFAdqq0jaNlgToSzJvBsbKbA07Bp/zFfzmwWB31WiEyqBMRzDkralwZ3cpztkTXFnmwQ
	O939Uaxs=
X-Gm-Gg: ATEYQzxQV9GyxGHriYOM84ZkK1lzuaCsi4UVEZIJJ5RrYMh+hH6RgMVwBgr+Vgm/qZi
	otKLoP2JXSAKZolYZhlDLbwvgQh2RM6BTP9tkBohhOoibLc8SkV/apXE2KmRsRE1JGwi5rZCiwn
	hCiXyLzdcV3qdYBNCEKzWKbdsOTrHHg8FIrtjB/+IrW2pzM+rjeQiuc5Rnls16AmwWB/vzFu9Mn
	5h3l09ykLVPO+HxXW6aDcFZJtuWYtZXv67Zyqdeb6sJN7NYm0DeBMAoY5U+K/cQBcvGrTASDyEd
	7qpVn30YqUThA5qo9abNoiLJk1xViXBRHc+Pi7o2j78mlH91Oa5uyvOx2eW58eXMds8lO8vCoUi
	RlOYlxbB7lMDj4mPkzJHKuJFpHhGNlhtkHIslcgzpdY+xa+GceTZHRjydWHYVtZAu6SOljT/G3K
	IoOu+QjSXq/BBYAbWSart2xuLaDAKXfuDWt6a/2F5T73QSqtUUOGyuJvqmub2PVBkp8ZseygBRn
	HWn+CX1+pdQhXQlp0C0W8XvdkM+apngRTOpV0K+iziqRoXv1DJviA==
X-Received: by 2002:a17:907:2d94:b0:b93:8d6a:7ec8 with SMTP id a640c23a62f3a-b93f137125bmr121052566b.24.1772634566483;
        Wed, 04 Mar 2026 06:29:26 -0800 (PST)
Message-ID: <0a99e49b-ee8f-4331-9395-f5889cfe14a1@suse.com>
Date: Wed, 4 Mar 2026 15:29:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] docs: sysctl: Add documentation for /proc/sys/xen/
To: Shubham Chakraborty <chakrabortyshubham66@gmail.com>, corbet@lwn.net
Cc: sstabellini@kernel.org, boris.ostrovsky@oracle.com,
 linux-doc@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
References: <20260304141644.28777-1-chakrabortyshubham66@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: <20260304141644.28777-1-chakrabortyshubham66@gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------YsdEc1OjNF18WtOMj3B7oZX0"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------YsdEc1OjNF18WtOMj3B7oZX0
Content-Type: multipart/mixed; boundary="------------ipVnQz6wlUAsuL6nf6BAvEEV";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Shubham Chakraborty <chakrabortyshubham66@gmail.com>, corbet@lwn.net
Cc: sstabellini@kernel.org, boris.ostrovsky@oracle.com,
 linux-doc@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
Message-ID: <0a99e49b-ee8f-4331-9395-f5889cfe14a1@suse.com>
Subject: Re: [PATCH] docs: sysctl: Add documentation for /proc/sys/xen/
References: <20260304141644.28777-1-chakrabortyshubham66@gmail.com>
In-Reply-To: <20260304141644.28777-1-chakrabortyshubham66@gmail.com>

--------------ipVnQz6wlUAsuL6nf6BAvEEV
Content-Type: multipart/mixed; boundary="------------nMOGoNb04DKiVnZSjGOmOkQ9"

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

T24gMDQuMDMuMjYgMTU6MTYsIFNodWJoYW0gQ2hha3JhYm9ydHkgd3JvdGU6DQo+IEFkZCBk
b2N1bWVudGF0aW9uIGZvciB0aGUgWGVuIGh5cGVydmlzb3Igc3lzY3RsIGNvbnRyb2xzIGlu
DQo+IC9wcm9jL3N5cy94ZW4vYmFsbG9vbi8uDQo+IA0KPiBEb2N1bWVudHMgdGhlIGhvdHBs
dWdfdW5wb3B1bGF0ZWQgdHVuYWJsZSAoYXZhaWxhYmxlIHdoZW4NCj4gQ09ORklHX1hFTl9C
QUxMT09OX01FTU9SWV9IT1RQTFVHIGlzIGVuYWJsZWQpIHdoaWNoIGNvbnRyb2xzDQo+IHdo
ZXRoZXIgdW5wb3B1bGF0ZWQgbWVtb3J5IHJlZ2lvbnMgYXJlIGF1dG9tYXRpY2FsbHkgaG90
cGx1Z2dlZA0KPiB3aGVuIHRoZSBYZW4gYmFsbG9vbiBkcml2ZXIgbmVlZHMgdG8gcmVjbGFp
bSBtZW1vcnkuDQo+IA0KPiBUaGUgZG9jdW1lbnRhdGlvbiBpcyBiYXNlZCBvbiBzb3VyY2Ug
Y29kZSBhbmFseXNpcyBvZg0KPiBkcml2ZXJzL3hlbi9iYWxsb29uLmMuDQo+IA0KPiBTaWdu
ZWQtb2ZmLWJ5OiBTaHViaGFtIENoYWtyYWJvcnR5IDxjaGFrcmFib3J0eXNodWJoYW02NkBn
bWFpbC5jb20+DQo+IC0tLQ0KPiAgIERvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvc3lzY3Rs
L2luZGV4LnJzdCB8ICAzICstDQo+ICAgRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9zeXNj
dGwveGVuLnJzdCAgIHwgMzMgKysrKysrKysrKysrKysrKysrKysrKw0KPiAgIDIgZmlsZXMg
Y2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KPiAgIGNyZWF0ZSBt
b2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL3N5c2N0bC94ZW4ucnN0DQo+
IA0KPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9zeXNjdGwvaW5k
ZXgucnN0IGIvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9zeXNjdGwvaW5kZXgucnN0DQo+
IGluZGV4IDRkZDJjOWI1ZDc1Mi4uYWFlNjgzNzM5MDJmIDEwMDY0NA0KPiAtLS0gYS9Eb2N1
bWVudGF0aW9uL2FkbWluLWd1aWRlL3N5c2N0bC9pbmRleC5yc3QNCj4gKysrIGIvRG9jdW1l
bnRhdGlvbi9hZG1pbi1ndWlkZS9zeXNjdGwvaW5kZXgucnN0DQo+IEBAIC04NCw3ICs4NCw3
IEBAIHN1bnJwYy8JCVNVTiBSZW1vdGUgUHJvY2VkdXJlIENhbGwgKE5GUykNCj4gICB1c2Vy
LwkJUGVyIHVzZXIgbmFtZXNwYWNlIGxpbWl0cw0KPiAgIHZtLwkJbWVtb3J5IG1hbmFnZW1l
bnQgdHVuaW5nDQo+ICAgCQlidWZmZXIgYW5kIGNhY2hlIG1hbmFnZW1lbnQNCj4gLXhlbi8J
CTx1bmRvY3VtZW50ZWQ+DQo+ICt4ZW4vCQlYZW4gaHlwZXJ2aXNvciBjb250cm9scw0KPiAg
ID09PT09PT09PT09PT09PSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gICANCj4gICBUaGVzZSBhcmUgdGhlIHN1
YmRpcnMgSSBoYXZlIG9uIG15IHN5c3RlbSBvciBoYXZlIGJlZW4gZGlzY292ZXJlZCBieQ0K
PiBAQCAtMTAyLDMgKzEwMiw0IEBAIGl0IDotKQ0KDQpJIHRoaW5rIHlvdSBlZGl0ZWQgdGhl
IHBhdGNoIGZpbGUsIGJ1dCB0aGlzIHdhc24ndCBpbXByb3ZpbmcgaXQuIDotKQ0KDQpQbGVh
c2UgcmVzZW5kIHdpdGhvdXQgYWRkaXRpb25zIG1ha2luZyBpdCBtYWxmb3JtZWQuDQoNCj4g
ICAgICBzdW5ycGMNCj4gICAgICB1c2VyDQo+ICAgICAgdm0NCj4gKyAgIHhlbg0KPiBkaWZm
IC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9zeXNjdGwveGVuLnJzdCBiL0Rv
Y3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvc3lzY3RsL3hlbi5yc3QNCj4gbmV3IGZpbGUgbW9k
ZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi45NTdmZWJkNmJhYjkNCj4gLS0tIC9k
ZXYvbnVsbA0KPiArKysgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL3N5c2N0bC94ZW4u
cnN0DQo+IEBAIC0wLDAgKzEsMzMgQEANCj4gKz09PT09PT09PT09PT09PQ0KPiArL3Byb2Mv
c3lzL3hlbi8NCj4gKz09PT09PT09PT09PT09PQ0KPiArDQo+ICtUaGVzZSBmaWxlcyBzaG93
IHVwIGluIGBgL3Byb2Mvc3lzL3hlbi9gYCwgZGVwZW5kaW5nIG9uIHRoZQ0KPiAra2VybmVs
IGNvbmZpZ3VyYXRpb246DQo+ICsNCj4gKy4uIGNvbnRlbnRzOjogOmxvY2FsOg0KPiArDQo+
ICtiYWxsb29uL2hvdHBsdWdfdW5wb3B1bGF0ZWQNCj4gKz09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KPiArDQo+ICtUaGlzIGZsYWcgY29udHJvbHMgd2hldGhlciB1bnBvcHVsYXRl
ZCBtZW1vcnkgcmFuZ2VzIGFyZSBhdXRvbWF0aWNhbGx5DQo+ICtob3RwbHVnZ2VkIGFzIHN5
c3RlbSBSQU0uDQo+ICsNCj4gKy0gYGAwYGA6IFVucG9wdWxhdGVkIHJhbmdlcyBhcmUgbm90
IGhvdHBsdWdnZWQgKGRlZmF1bHQpLg0KPiArLSBgYDFgYDogVW5wb3B1bGF0ZWQgcmFuZ2Vz
IGFyZSBhdXRvbWF0aWNhbGx5IGhvdHBsdWdnZWQuDQo+ICsNCj4gK1doZW4gZW5hYmxlZCwg
dGhlIFhlbiBiYWxsb29uIGRyaXZlciB3aWxsIGFkZCBtZW1vcnkgcmVnaW9ucyB0aGF0IGFy
ZQ0KPiArbWFya2VkIGFzIHVucG9wdWxhdGVkIGluIHRoZSBYZW4gbWVtb3J5IG1hcCB0byB0
aGUgc3lzdGVtIGFzIHVzYWJsZSBSQU0uDQo+ICtUaGlzIGFsbG93cyBmb3IgZHluYW1pYyBt
ZW1vcnkgZXhwYW5zaW9uIGluIFhlbiBndWVzdCBkb21haW5zLg0KPiArDQo+ICtUaGlzIG9w
dGlvbiBpcyBvbmx5IGF2YWlsYWJsZSB3aGVuIHRoZSBrZXJuZWwgaXMgYnVpbHQgd2l0aA0K
PiArYGBDT05GSUdfWEVOX0JBTExPT05fTUVNT1JZX0hPVFBMVUdgYCBlbmFibGVkLg0KDQpU
aGUgc3R1ZmYgYmVsb3cgZG9lc24ndCBzZWVtIGFwcHJvcHJpYXRlIGhlcmUsIHRvby4gSSB0
aGluayBpdCBjYW4gYmUNCmVpdGhlciBkcm9wcGVkLCBvciBzaG91bGQgbW92ZSB1cCBpbiB0
aGUgZmlsZS4NCg0KPiArDQo+ICtDb3B5cmlnaHQgKGMpIDIwMjYsIFNodWJoYW0gQ2hha3Jh
Ym9ydHkgPGNoYWtyYWJvcnR5c2h1YmhhbTY2QGdtYWlsLmNvbT4NCj4gKw0KPiArRm9yIGdl
bmVyYWwgaW5mbyBhbmQgbGVnYWwgYmx1cmIsIHBsZWFzZSBsb29rIGluDQo+ICtEb2N1bWVu
dGF0aW9uL2FkbWluLWd1aWRlL3N5c2N0bC9pbmRleC5yc3QuDQo+ICsNCj4gKy4uIFNlZSBz
Y3JpcHRzL2NoZWNrLXN5c2N0bC1kb2NzIHRvIGtlZXAgdGhpcyB1cCB0byBkYXRlOg0KPiAr
Li4gc2NyaXB0cy9jaGVjay1zeXNjdGwtZG9jcyAtdnRhYmxlPSJ4ZW4iIFwNCj4gKy4uICAg
ICAgICAgJChnaXQgZ3JlcCAtbCByZWdpc3Rlcl9zeXNjdGxfKQ0KDQoNCkp1ZXJnZW4NCg==

--------------nMOGoNb04DKiVnZSjGOmOkQ9
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-----

--------------nMOGoNb04DKiVnZSjGOmOkQ9--

--------------ipVnQz6wlUAsuL6nf6BAvEEV--

--------------YsdEc1OjNF18WtOMj3B7oZX0
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/Ey8FAmmoQcUFAwAAAAAACgkQsN6d1ii/Ey8a
ZQf/XKRD+RhbXO8yP1VcD826s2hbtRV5APomaGy7gKV5MxiWYXCCSFkrTa79+5W1ksakw/opvZR1
us7FZ4o0UoDqyhg71R/1aiHOydoG9iwjfItfITC/acH6kBFn6w/ColiJVP+lOH3I15l52b3xRHBT
YSsl/hwO6BjPBS0SMiCD8kyhmVqDvs1pX5cemZOQD+YjULs4d7zIQJ3hRx76t6OyHK/SH9PvIrPt
5HvRxWgc1f3bKTUb3M2VOIaBAFcuwoIusfsxBcSOUifNoD7ae3xPfYEraYyY34ZFD6PsHnUNt0k8
UZBrYqhXYBAvuZhSzLt96FTSospy5XQFe/t5VjlzbQ==
=g24M
-----END PGP SIGNATURE-----

--------------YsdEc1OjNF18WtOMj3B7oZX0--


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 14:36:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 14:36:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245487.1544850 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxnKr-0008QM-6l; Wed, 04 Mar 2026 14:36:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245487.1544850; Wed, 04 Mar 2026 14: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 1vxnKr-0008QF-3d; Wed, 04 Mar 2026 14:36:25 +0000
Received: by outflank-mailman (input) for mailman id 1245487;
 Wed, 04 Mar 2026 14:36: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=u/nm=BE=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vxnKp-0008Q8-Ed
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 14:36:23 +0000
Received: from fhigh-b6-smtp.messagingengine.com
 (fhigh-b6-smtp.messagingengine.com [202.12.124.157])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 82af1929-17d7-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 15:36:21 +0100 (CET)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 538267A0160;
 Wed,  4 Mar 2026 09:36:19 -0500 (EST)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-04.internal (MEProxy); Wed, 04 Mar 2026 09:36:19 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 4 Mar 2026 09:36:17 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 82af1929-17d7-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm3; t=1772634979;
	 x=1772721379; bh=v1w24rbHzHrF54HJz/xGTwDUsrsyFlbqLfRT/0XgJAY=; b=
	dXQdqMylUa09SSFdONySWSh1VUXJcb2hxDdKm+rS/aqMJSEZqTcphuLeI/z+027l
	sgEwew3hYmHMbq8KfCIi49Sft8s8UUh2115n60+eVTRvoXDpMZfZXZ6nlqw91KW9
	kURoRdImSaZZyrlseXLgW+nIQvQW/1tF37PadkMaK/EE60kYeggeCf0M4gbIKXGu
	q9oI8XWRwTAkmfFsSqLV7A/y47gt0Djg/fKDThd9Aoxb5TOIIPrr3JrmcRi8IL+K
	6REbG/FdltNwQ0FlzqG5wstozhRHmwRyUv0mBCEukwO9OI+GgRi4IdJSVVJp0Pxy
	F5RZIUwg95rWV0fT1B/LjQ==
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=
	1772634979; x=1772721379; bh=v1w24rbHzHrF54HJz/xGTwDUsrsyFlbqLfR
	T/0XgJAY=; b=1M/hBxkz5F5/0nMVIE2C6IWbZhebdxbst18HAIVlqUEYyBwO5Kj
	bxfOFFktvt+ryWHSsRRzpsco/1U6Ka9cB0LhpfniLM3R8tw+TfJVVybI2BCCXEKx
	pIJSIug3mL+/fFNUIqdHPpLJPwv4qncclYoYh6KkU3PM4q5nbdUmq5ezdCk3KlhD
	u0fkh1mERSS+KfFvVAxAF4dvHL380NmLziIvdJhPC/5CjEgA+/NlJCVZNaxPnG/5
	FJTzW7PR5b4K2TxIbI7t/LAp6U75d1sObC2UaN+ysA6eP8/LYRvOI/Em9ZtfnHTr
	iR6v8AEHsfa2mntFiHQfqRymKNd2nRdb7Ig==
X-ME-Sender: <xms:YkOoaXvESsUr27CnpqRmZ57-a31j6qc27DhdV5vHpMcpgX8ialNy_Q>
    <xme:YkOoaffq7luWkHfXreEr52uAXgb3yVtWSzxL5DhGx_lXIfgcbn3xbqWAk-rikSG0n
    UoKqkt3w6Z3uyDtXg5atS3qxDXbtw3qUHNIMhWLq27QQoNv>
X-ME-Received: <xmr:YkOoafwCcgfHKwA1pBJfV6TTKpBKWekFL_jSGFdc6OFT4LmiXRvI33UPb2ph3Gfsq2zmNnIVTfHUel4iQ-swKB9GBU7eEVajv7U>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvieefjeehucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiuceomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhih
    hnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfekuddtffettefhieeuheff
    keeuffelvdffuddtteetledtveekfeekleehjefgnecuvehluhhsthgvrhfuihiivgeptd
    enucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgv
    thhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepgedpmhhouggvpehsmhhtph
    houhhtpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtghomhdprhgtphhtthho
    peigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtph
    htthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthht
    oheprhhoghgvrhdrphgruhestghithhrihigrdgtohhm
X-ME-Proxy: <xmx:YkOoaVG7qbtJLcXtX0z-R7gf5G3-0Tb4HJbpjoeFCoeblIC9pVCNjQ>
    <xmx:YkOoaTy9fP_cQB9_phLiDba71xPs70M2lBT7-tLVcsSK8I4MIyC1Eg>
    <xmx:YkOoaWvIBqQN3iR6d7LCxGRHUMdrNEbBWMnDofMLgxNtqEfF0DUwUA>
    <xmx:YkOoaQ2LggPq3W_u7qUguR2wzruGlP23Vu8_lRivwY6VSBeZhBBWPQ>
    <xmx:Y0OoaR-5b07bmnP3-QqettNpm3wuD2h9HxUQnel4FOrqnf6JXBspguQq>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 4 Mar 2026 15:36:15 +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>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH] x86/S3: restore MCE (APs) and add MTRR (BSP) init
Message-ID: <aahDX_QvrB1MTLcq@mail-itl>
References: <12fbad10-78ad-4679-a1db-3995e34da094@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="3wsJeamIeufwQU0A"
Content-Disposition: inline
In-Reply-To: <12fbad10-78ad-4679-a1db-3995e34da094@suse.com>


--3wsJeamIeufwQU0A
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 4 Mar 2026 15:36:15 +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>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH] x86/S3: restore MCE (APs) and add MTRR (BSP) init

On Wed, Mar 04, 2026 at 02:39:01PM +0100, Jan Beulich wrote:
> MCE init for APs was broken when CPU feature re-checking was added. MTRR
> (re)init for the BSP looks to never have been there on the resume path.
>=20
> Fixes: bb502a8ca592 ("x86: check feature flags after resume")
> Reported-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab=
=2Ecom>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Sadly we need to go by CPU number (zero vs non-zero) here. See the call
> site of recheck_cpu_features() in enter_state().

With this patch, I now see the "Thermal monitoring enabled" on resume
also for AP.
And then, the "Temperature above threshold" + "Running in modulated
clock mode" for AP too. But, I don't see matching "Temperature/speed
normal" for any of them...

My simple performance test says it's okay for now, though. I'll see how
it looks in a few hours...

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmoQ18ACgkQ24/THMrX
1ywLzAf/bqO07wqXpUQrXgrCBoXHfuZyqb/i/Blg+Z2GItiRrSuQq33VEKJSZPLV
sEfL9HBpM2AZZxCLn9mPbwIpf1zRnHG+bIDucJC/4cBn9YKyslZ72DxdipqL/pMn
vc5FgcYuyTKwdnpX2F4XRBRaJSXeY4XmRaNqOHQfp1o24EZHgHmGfbx8nvlyeQOt
eJyU54hvbYGes21NbRb/x2LWSewjXtUHO1ObL3D80IcJD/ZgBlf8e0ZIwo7X+w8U
WYM4zmP9WbfHMHzA2EX3lRiZP0AFMOMWgGSGJlFHgyDehI3jX2CxxGEqVmtlba/e
SpE9LqxbiHWQRypVj8taNB5FHhcxMQ==
=rsdm
-----END PGP SIGNATURE-----

--3wsJeamIeufwQU0A--


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 14:37:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 14:37:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245494.1544860 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxnLu-0000ZM-Fc; Wed, 04 Mar 2026 14:37:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245494.1544860; Wed, 04 Mar 2026 14:37: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 1vxnLu-0000ZF-Cs; Wed, 04 Mar 2026 14:37:30 +0000
Received: by outflank-mailman (input) for mailman id 1245494;
 Wed, 04 Mar 2026 14:37: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=Xh4z=BE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxnLt-0000VJ-Ir
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 14:37:29 +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 aae12be4-17d7-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 15:37:28 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-439b6d9c981so2327488f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 06:37:28 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439b503424fsm28047245f8f.22.2026.03.04.06.37.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Mar 2026 06:37: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: aae12be4-17d7-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772635047; x=1773239847; 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=ixD03YAwPbqTVrVB8LuXCa5+sDpUh7SDQBZiiZDsct4=;
        b=cyedKOU+uLOqRa9NydOM/ng1Wz2ZA9lQSU+wNpYjIb9AjNhHNkFpQmWl3VRg79U/Cg
         HHEG+jVJAOCYqGOUiABZNoNxyPdfgEJOYddBjB2Y+FMIXZ6DtK8bhXshB2aEEkfCfSkZ
         xXrW8utv90Z6+8XauaUTqmO8ztLRQe708nooxrBFZZxRLrzePpprok+0lBRbc2LuN9p7
         I+0KW+4ZsWdn6QPMShohDZVJ8aRS6cXr2cpCMCjo7h9sPyVWa8SBfd6JY/Uxpi2HvrSp
         n3wCWi7vBDwUyr4R8zDEDivP5ZJgfnz+UhMSlPYXZYofasVD0Lerbi7z35Ih9N9Ai4oU
         SGYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772635047; x=1773239847;
        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=ixD03YAwPbqTVrVB8LuXCa5+sDpUh7SDQBZiiZDsct4=;
        b=rnU+HiGK2ZyCUohpU+pw36D8oQN/XSAlxskmeM+u1ngXt1Hs36cVpoWmxPB8kRo7hm
         IPlzMsJS9LGglVE7ZZHcLgigQxSotFM7h6CLncjh7Rogr4lRObZIyCdjRX86Q5rF8Phu
         md+FDie6u74w+MRoQUgJNOMonPA8qe6YUjJwoLrdhyW6cmYrCo4jzbbkMy/nwJk6B0Hg
         aen7YWxXMLZ7i/+6JX0oRBLqbUZjr5WUgGuhxLPidzWHFJhst9e0Jlo5AYmlLZkhDdrY
         kBeDyVW7QYIWaNJ2Aavva07zg//bJErMAQFa11ZVvE84aMKXpe6jWO8ZY8UxaMegfW7s
         OBDw==
X-Gm-Message-State: AOJu0YzpLjmAYv/AHJshCQpwfQCLWtZdLw/A/0A+EFDrpzC4GDIcI0Vq
	+b5GqemYFK1wKiCBlT9bXyLQO6ZmEpjymmKPv/SU2ahe5ly7FnyJjmvnP7Y78CVIGVkbcJ1mJl2
	dn+A=
X-Gm-Gg: ATEYQzwnYtdi+4YKRgLxu4cDCUHENnLwBoFb0EAFUBZBfCTD2WCSOU7Q6Kaqa52n4vd
	MzKUdNasW+mBZjlFJYlfPICxLJgZwGOweLIGivTAOniuXXo0ClyLzWeKsRl3bShAfr2f4NkFt+/
	L4M7rn9tLu1tqNdl/GdEycMpoxnmSp+xgdzvVX5EIM7hs0ZifoLxxwFYfQg/sA8f1rXHhbYhQvA
	ndP1v/AiPU6bAj2Qx6R564QYk9JofQb6sDUquBSX+o3Ede83hK3/OpQnjK4DVP5kQikjinSWVi+
	cRSSCv71QNqWqZdLZEsh+okbk8NsazYirRuenK9kuFK73QGqKItugU0D69QhF6AkCaTjetfRL74
	P6Z3QK1E8ftqua6dO4jwgYYEE0E8vzkOIp8sg4qSOUYrGmtzBfoEREL6zy9FdAeTqmlSgVjzZID
	JGNdgAi0NQVAVQpLm4+LenJRbuRqqXysDC8SqDmt2tCX4cv/1ALnvD7FUc8436cKKaNBxhqu7Ob
	y3MSqLStOjPSnM=
X-Received: by 2002:a5d:588a:0:b0:439:b79d:b9a6 with SMTP id ffacd0b85a97d-439c10adc38mr11817885f8f.11.1772635047019;
        Wed, 04 Mar 2026 06:37:27 -0800 (PST)
Message-ID: <ca1812c2-dadf-422a-a195-9c285ce08077@suse.com>
Date: Wed, 4 Mar 2026 15:37:25 +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>,
 Jason Andryuk <jason.andryuk@amd.com>, Penny Zheng <Penny.Zheng@amd.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86/ACPI: _PDC bits vs HWP/CPPC
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The treatment of ACPI_PDC_CPPC_NATIVE_INTR should follow that of other P-
state related bits. Add the bit to ACPI_PDC_P_MASK and apply "mask" in
arch_acpi_set_pdc_bits() when setting that bit. Move this next to the
other P-state related logic.

Further apply ACPI_PDC_P_MASK also when the amd-cppc driver is in use.

Also leave a comment regarding the clearing of bits and add a couple of
blank lines.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Including XEN_PROCESSOR_PM_CPPC may need accompanying with some change to
arch_acpi_set_pdc_bits(), but it's entirely unclear to me what to do
there. I'm unaware of an AMD counterpart of Intel's "Intel® Processor
Vendor-Specific ACPI". Plus even when the powernow driver is in use, we
never set any bits, as EIST is an Intel-only feature.

acpi_set_pdc_bits() having moved to the cpufreq driver looks to have been
a mistake. It covers not only P-state related bits, but also C-state and
T-state ones. (This is only a latent issue as long as
https://lists.xen.org/archives/html/xen-devel/2026-02/msg00875.html
wouldn't land.)

--- a/xen/arch/x86/acpi/lib.c
+++ b/xen/arch/x86/acpi/lib.c
@@ -124,6 +124,9 @@ int arch_acpi_set_pdc_bits(u32 acpi_id,
 	if (cpu_has(c, X86_FEATURE_EIST))
 		pdc[2] |= ACPI_PDC_EST_CAPABILITY_SWSMP & mask;
 
+	if (hwp_active())
+		pdc[2] |= ACPI_PDC_CPPC_NATIVE_INTR & mask;
+
 	if (cpu_has(c, X86_FEATURE_ACPI))
 		pdc[2] |= ACPI_PDC_T_FFH & mask;
 
@@ -142,8 +145,5 @@ int arch_acpi_set_pdc_bits(u32 acpi_id,
 	    !(ecx & CPUID5_ECX_INTERRUPT_BREAK))
 		pdc[2] &= ~(ACPI_PDC_C_C1_FFH | ACPI_PDC_C_C2C3_FFH);
 
-	if (hwp_active())
-		pdc[2] |= ACPI_PDC_CPPC_NATIVE_INTR;
-
 	return 0;
 }
--- a/xen/drivers/cpufreq/cpufreq.c
+++ b/xen/drivers/cpufreq/cpufreq.c
@@ -694,14 +694,23 @@ int acpi_set_pdc_bits(unsigned int acpi_
     {
         uint32_t mask = 0;
 
+        /*
+         * Accumulate all the bits under Xen's control, to mask them off, for
+         * arch_acpi_set_pdc_bits() to then set those we want set.
+         */
         if ( xen_processor_pmbits & XEN_PROCESSOR_PM_CX )
             mask |= ACPI_PDC_C_MASK | ACPI_PDC_SMP_C1PT;
-        if ( xen_processor_pmbits & XEN_PROCESSOR_PM_PX )
+
+        if ( xen_processor_pmbits &
+             (XEN_PROCESSOR_PM_PX | XEN_PROCESSOR_PM_CPPC) )
             mask |= ACPI_PDC_P_MASK | ACPI_PDC_SMP_C1PT;
+
         if ( xen_processor_pmbits & XEN_PROCESSOR_PM_TX )
             mask |= ACPI_PDC_T_MASK | ACPI_PDC_SMP_C1PT;
+
         bits[2] &= (ACPI_PDC_C_MASK | ACPI_PDC_P_MASK | ACPI_PDC_T_MASK |
                     ACPI_PDC_SMP_C1PT) & ~mask;
+
         ret = arch_acpi_set_pdc_bits(acpi_id, bits, mask);
     }
     if ( !ret && __copy_to_guest_offset(pdc, 2, bits + 2, 1) )
--- a/xen/include/acpi/pdc_intel.h
+++ b/xen/include/acpi/pdc_intel.h
@@ -43,7 +43,8 @@
 
 #define ACPI_PDC_P_MASK			(ACPI_PDC_P_FFH | \
 					 ACPI_PDC_SMP_P_SWCOORD | \
-					 ACPI_PDC_SMP_P_HWCOORD)
+					 ACPI_PDC_SMP_P_HWCOORD | \
+					 ACPI_PDC_CPPC_NATIVE_INTR)
 
 #define ACPI_PDC_T_MASK			(ACPI_PDC_T_FFH | \
 					 ACPI_PDC_SMP_T_SWCOORD)


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 14:38:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 14:38:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245500.1544871 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxnMP-00015E-TI; Wed, 04 Mar 2026 14:38:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245500.1544871; Wed, 04 Mar 2026 14:38:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxnMP-000157-QR; Wed, 04 Mar 2026 14:38:01 +0000
Received: by outflank-mailman (input) for mailman id 1245500;
 Wed, 04 Mar 2026 14: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=03ok=BE=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vxnMO-0000VJ-L3
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 14:38:00 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bdd922b6-17d7-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 15:37:59 +0100 (CET)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-3870df2331aso53206541fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 06:37:59 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-5a12356fe34sm1311356e87.90.2026.03.04.06.37.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Mar 2026 06:37: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: bdd922b6-17d7-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772635079; x=1773239879; 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=SPBavIlOJuGgmLzdF/KYwcRkviDTPiwIMqjlJYlICSI=;
        b=Kc19yjP34vtkkHcjjDok4PefWeuKxZKk7yuPtph/pfizD3UNTgr7/XeHrM8V71Wd2H
         LNaH57/pxe+z6hZPuXOn8tNT43nAxils9FWTqWftYIL6QqyVhsx6sOIPi7FOg/UxFLiB
         LVSyVBD6L25t3wcIDwa6OGm+JcxRzJsDBvOkKtqqpnR3rWBCHEe9BA2jVWsr1qtwtgjq
         sAl13gx6ymGpq1miqJZbu9mmRTn0kplxwvoPI4dJ8lack12xSk0sb81W8iirRVKAVWyG
         xEfOsyshSfF27pzyNSU0cf1dTNbg5ZEyxaBp67Wnmxik810eS3BRGKxZ+Oxhfvv5ewoX
         HPKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772635079; x=1773239879;
        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=SPBavIlOJuGgmLzdF/KYwcRkviDTPiwIMqjlJYlICSI=;
        b=uH+PygF3Hb0Xl1KseNEp+DgNZumPgaJ7pOwCFsN/eIAwb5iGdFaqIiQlGN9ZX5XTgR
         o/A+aAoY/U0TIwJZN3TNlQ5H7A3MP9+oHF3eyUG0jwTsjM05B+opa1+TX+vyGy0Naczq
         Edr1ayWz7xlUchlZL+4IJ9Qz3q0jwCVc2p8ECOPbxVpQsr33MbzS88QhbjQciYeyHQqk
         4GI4be1ZELQn4FOL0JZ3D3d49PJ/+abMtbv3O7RGtuSrPGun6UNTGeXeHeTiPg1AZ1JH
         vmnxcqjxfMDXYT+mpsfjEqzCloTws3Cc7aaEP7f0Dtv+kMO8nYRdvDSJEtZnqqQ3iG4n
         jAbQ==
X-Forwarded-Encrypted: i=1; AJvYcCUqQEElXuTd7esJAbWHCXuCkvcwueJxdI25yMnJOjOm6cfuOmbIBtqmfG7L4bMRHogK7714s06G2cc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx1a1o23K2rDos4EYK8vvGsx7sI0BZm6MEUNZZMuC9/ZffnMfRx
	H8vW5xLgczCqzb8USWnGEbKEpfCnHxT64/v7aT2DoZFtruasE4VRHWLMikIeYRyW8OQ=
X-Gm-Gg: ATEYQzz/usv4E2cezLH+cWgZYIwvc8JgzgrBW6csAdCZvZFNjQ0UuiSfL+szU5/nIzX
	imuSmyyn9K/3vRiF9UXvUeuzWr550eJkFq/1JKkn/HYheurFYZyQqFkVIh28/HqQOXsaIA5IGNE
	Jwn42BLXpfXvc7HvywWyuuy6KvuqIHyn3ibCY7HfOt9OCQt+ofDQBwgj5X6sZgjsQ48yI/Fvdyo
	V+puMDLA9vlsdnogpXF2VDP3QyvoSgOG0pvzrnk6CmV63p4P8z4M3Mddmsnscz8NVhbaqjkzkFd
	RT0xIXbqaE3e39tAQJ9IuaBONM0mlDXaQHSyB2us0xszga4S89B13m5W4UIvq9Zab57aJSS+ea2
	jx6d07vTSLpfs4Viyv+p8gExMj0nxMZ3vND+oy3QHAcW6qjXkWevWJCb1wTuk783elY8KuaUn6R
	p/qU5qjSBKUUWXLcxe4S3q4sSw2Rn8EYn0Ldh3NlivlJ32vBuUX9KLWc1Ea7TcUKiCGoL/xDBCU
	ECR2DARv+XKtbbH3o8RoHM2NBgEBEITQDWYsrsWLVgVeKzsKWDTfA==
X-Received: by 2002:a05:651c:1a0e:b0:385:bb35:8e45 with SMTP id 38308e7fff4ca-38a1c396502mr54586441fa.6.1772635078965;
        Wed, 04 Mar 2026 06:37:58 -0800 (PST)
Message-ID: <ad2888d8-bfe5-4023-8345-ddd14f2b7fc8@suse.com>
Date: Wed, 4 Mar 2026 15:37:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: linux-next: build failure after merge of the xen-tip tree
To: Mark Brown <broonie@kernel.org>,
 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Xen Devel <xen-devel@lists.xenproject.org>,
 Hou Wenlong <houwenlong.hwl@antgroup.com>,
 Alex Deucher <alexdeucher@gmail.com>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
 Linux Next Mailing List <linux-next@vger.kernel.org>
References: <aahBPzflrEJ2FPx0@sirena.org.uk>
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: <aahBPzflrEJ2FPx0@sirena.org.uk>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------MR3f0SlHc2G7IOdpGbtDawDC"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------MR3f0SlHc2G7IOdpGbtDawDC
Content-Type: multipart/mixed; boundary="------------spju9nddGZXaQtmFSclTQWb0";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Mark Brown <broonie@kernel.org>,
 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Xen Devel <xen-devel@lists.xenproject.org>,
 Hou Wenlong <houwenlong.hwl@antgroup.com>,
 Alex Deucher <alexdeucher@gmail.com>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
 Linux Next Mailing List <linux-next@vger.kernel.org>
Message-ID: <ad2888d8-bfe5-4023-8345-ddd14f2b7fc8@suse.com>
Subject: Re: linux-next: build failure after merge of the xen-tip tree
References: <aahBPzflrEJ2FPx0@sirena.org.uk>
In-Reply-To: <aahBPzflrEJ2FPx0@sirena.org.uk>

--------------spju9nddGZXaQtmFSclTQWb0
Content-Type: multipart/mixed; boundary="------------uhsS8v2VuZHBS4FiEW6X2uyo"

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

T24gMDQuMDMuMjYgMTU6MjcsIE1hcmsgQnJvd24gd3JvdGU6DQo+IEhpIGFsbCwNCj4gDQo+
IEFmdGVyIG1lcmdpbmcgdGhlIHhlbi10aXAgdHJlZSwgdG9kYXkncyBsaW51eC1uZXh0IGJ1
aWxkICh4ODZfNjQNCj4gYWxsbW9kY29uZmlnKSBmYWlsZWQgbGlrZSB0aGlzOg0KPiANCj4g
SW4gZmlsZSBpbmNsdWRlZCBmcm9tIC90bXAvbmV4dC9idWlsZC9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjX3R5cGVzLmg6MzgsDQo+ICAgICAgICAgICAg
ICAgICAgIGZyb20gL3RtcC9uZXh0L2J1aWxkL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMvZG1fc2VydmljZXNfdHlwZXMuaDozMCwNCj4gICAgICAgICAgICAg
ICAgICAgZnJvbSAvdG1wL25leHQvYnVpbGQvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv
Li4vaW5jbHVkZS9kbV9wcF9pbnRlcmZhY2UuaDoyNiwNCj4gICAgICAgICAgICAgICAgICAg
ZnJvbSAvdG1wL25leHQvYnVpbGQvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1
Lmg6NTYsDQo+ICAgICAgICAgICAgICAgICAgIGZyb20gL3RtcC9uZXh0L2J1aWxkL2RyaXZl
cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2F0b21iaW9zX2NydGMuYzoyOToNCj4gL3RtcC9uZXh0
L2J1aWxkL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNfaHdf
dHlwZXMuaDoyMjE6NjogZXJyb3I6ICdwaXhlbF9mb3JtYXQnIGRlZmluZWQgYXMgd3Jvbmcg
a2luZCBvZiB0YWcNCj4gICAgMjIxIHwgZW51bSBwaXhlbF9mb3JtYXQgew0KPiAgICAgICAg
fCAgICAgIF5+fn5+fn5+fn5+fg0KPiANCj4gQ2F1c2VkIChJIHRoaW5rKSBieSBjb21taXQN
Cj4gDQo+ICAgIDRlMDVhMDhjNmYzZjMgKEFDUEksIHg4Ni9ib290OiBSZW1vdmUge3NldHxn
ZXR9X3Jvb3RfcG9pbnRlcigpIEFDUEkgY2FsbGJhY2tzKQ0KPiANCj4gd2hpY2ggY2hhbmdl
cyB0aGUgaW5jbHVzaW9ucyBhbmQgSSB0aGluayB0cmlnZ2VycyBuYW1lc3BhY2UgY2xhc2hl
cyB3aXRoDQo+IHRoZSB1bm5hbWVzcGFjZWQgcGl4ZWxfZm9ybWF0LiAgSSd2ZSB1c2VkIHRo
ZSB0cmVlIGZyb20gbmV4dC0yMDI2MDMwMw0KPiBpbnN0ZWFkIGJ1dCByZWFsbHkgdGhlIGZp
eCBoZXJlIGlzIHRoYXQgYW1kZ3B1IGFuZCBvdGhlciB0aGluZ3MgZGVmaW5pbmcNCj4gYSBw
aXhlbF9mb3JtYXQgc2hvdWxkIG5hbWVzcGFjZSB0aGluZ3MsIEknbGwgY29uc2lkZXIgaWYg
YSByZXZlcnQgaXMNCj4gbW9yZSBzZW5zaWJsZS4NCg0KRm9yIG5vdyBJIGhhdmUgcmVtb3Zl
ZCA0ZTA1YTA4YzZmM2YzIGZyb20gdGhlIFhlbiB0cmVlLg0KDQoNCkp1ZXJnZW4NCg==
--------------uhsS8v2VuZHBS4FiEW6X2uyo
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-----

--------------uhsS8v2VuZHBS4FiEW6X2uyo--

--------------spju9nddGZXaQtmFSclTQWb0--

--------------MR3f0SlHc2G7IOdpGbtDawDC
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/Ey8FAmmoQ8UFAwAAAAAACgkQsN6d1ii/Ey8j
iwf9EhHkYnpCpah7/uRgLGp3oAC4dlcgZZesNEP3m5ECqYFxJnenRr1suZlRqubQ+2Mz2v1GoIxc
kUwiAVyXVfY7TrGVYMKyxQ+fCRgE/3Rew+dRA4HCsntCjhvhs5tfAGnX79PgW8+MNOFu5PA3ybrX
lycczmMT1aQ4zztc5S23Oo+lTxrzkCzNxNN2mbrUfOxcWkjUdGlX3arhr6b/n/LXFH1+vIYXRPdl
oMQgcnPKTPVsYveeMNXgwpGw8cPvnnlH74L2of/Iqrnzn3pkl+iVVDrIbs/Tuyu3U/H40A7vTAzw
OHb7e+Q3608DDzV7QujMddqPT5k6xrFTp0uIMFxsZw==
=rAvw
-----END PGP SIGNATURE-----

--------------MR3f0SlHc2G7IOdpGbtDawDC--


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 14:47:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 14:47:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245521.1544880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxnVP-0002tF-Ny; Wed, 04 Mar 2026 14:47:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245521.1544880; Wed, 04 Mar 2026 14:47:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxnVP-0002t8-LQ; Wed, 04 Mar 2026 14:47:19 +0000
Received: by outflank-mailman (input) for mailman id 1245521;
 Wed, 04 Mar 2026 14:47: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=Xh4z=BE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxnVO-0002t0-Kx
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 14:47:18 +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 0a1c5de4-17d9-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 15:47:17 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4836f4cbe0bso58650255e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 06:47:17 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485188080edsm55771475e9.10.2026.03.04.06.47.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Mar 2026 06:47: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: 0a1c5de4-17d9-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772635636; x=1773240436; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fHFllxepf7SsU5yefoF7bkEmFMQtnjkUXCRHke/7Er4=;
        b=B/K4aEKv3Ul/uy/a3AAmZ2bg5tk4byq4NdmJDAIi27e4Bw5oKZVO1vurgWmp3U5Yop
         ldR/7WBnbdLYQB0I3kFHoRaoc54JO726HaaDrh8TFFzkfj5IeHi//nPxr5q0cMKP5FNL
         UYJIeVudmiYfGW+s270lHoQa8LQyZ3EuP3g0R4BphvrEFF+DdnckuSTY2zbzMGnahDhn
         hlJCDAH8iGZ2VDUyM1+k/IY88t1ykpNoBrNnogfc8fspDC0ENxhFq44QPb8CYjEo4QR3
         AS0pCu6pBw5K57FW5L/jB0HLtE3pKsnJcSd6CNhyE6YnSec2DS/BvntGJuIk/8dvTs9a
         cfHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772635636; x=1773240436;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fHFllxepf7SsU5yefoF7bkEmFMQtnjkUXCRHke/7Er4=;
        b=GJU35aWxFG5yQ/+4jGxSu/GCuU0DZVDRBt15Z4fAYaHLk1wPVgIArdeAkU0WzJjGg5
         +BA992UZba47vUZU4jWmNHLKEn264xtAcsxoJOrFnQRVHYchxYKCGT2orqKAcC6nmnRe
         pFTevD0fl2QFHKaaiQOr/mWf3axCUn1t9cMZwL5sN8uQmR2fvy05Hd85AZmV8B35qlcy
         W5udLm2UATo8YfFtB/yPrB+f7SWo3aLnr+cPGawgfvMyNow4dPPsJCm/RgjFHxuQDRwx
         Byt7qCsljz5g0unAPV4FZOP9lt4ZQMQeFFcqeZ1yo41+1XRNrkEIlLosSy7/m6UDCUEr
         qDMA==
X-Gm-Message-State: AOJu0YzBe10vOKoefYtZSsjuTEAalhhUBJgFQP+YPnlqPdaQZmHjCaOT
	7dHsq+YWGBT8O7e5NbqUnJDWTukianXochjlM3mb7HBHRzJ+bbUSy0RurCL0yKeNOw==
X-Gm-Gg: ATEYQzzAZpjObc95C8q18ZAvL8FZicWFHgAf71GjrL/+aWJ1hyUUcFiGHSawdiQ2TAj
	0meKhgxhdfUJRJ1YHaXGf42kr+ULGlV4cDCJbcdW06NwPsj7tigjOIxvgK41079NYzTzMVnBKSY
	MGfiqr3y1xT4WotKTGYtBmFzPVQbQzrDebCAP/7PrFF65TH7f35hLwOvHgy/VYbF1umCwmLh9Zm
	hSRVzosqfCy/BZKbC25RibAbIKUeHLdDi1fCVZxGXFmIceVW70jHLybX/Zw404xPwZ1BrCLXKCS
	iUsdyxBRvhhuJGDoH6KPpgF/BRJGso2V6gCyUusn/IVK7Kaw/N0RGs4D5WI2PJbjaQ3aWKqyBNJ
	ONsxv3G7wvk4h5A+l9glCs6Xg0LR1lhS9fU7Dsd4BMq679QcCXvvqZ/3y3xld7ctgOV67nQi6ZZ
	/nZE8BzqtiJn8mSLS1H6VNg9KnWAz+oipQH0vPzioEevvtraVZTYvpOw4W89Lx7VJb7xSftpqfe
	2VTU588iBpWra/mUIGQNnR6gQ==
X-Received: by 2002:a05:600c:c4a6:b0:483:6d4e:9811 with SMTP id 5b1f17b1804b1-485198c1c17mr36809295e9.31.1772635636490;
        Wed, 04 Mar 2026 06:47:16 -0800 (PST)
Message-ID: <0c556f7c-6567-43ec-a9cd-eb542fc970b3@suse.com>
Date: Wed, 4 Mar 2026 15:47:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/S3: restore MCE (APs) and add MTRR (BSP) init
To: Marek Marczykowski <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: <12fbad10-78ad-4679-a1db-3995e34da094@suse.com>
 <aahDX_QvrB1MTLcq@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: <aahDX_QvrB1MTLcq@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.03.2026 15:36, Marek Marczykowski wrote:
> On Wed, Mar 04, 2026 at 02:39:01PM +0100, Jan Beulich wrote:
>> MCE init for APs was broken when CPU feature re-checking was added. MTRR
>> (re)init for the BSP looks to never have been there on the resume path.
>>
>> Fixes: bb502a8ca592 ("x86: check feature flags after resume")
>> Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Sadly we need to go by CPU number (zero vs non-zero) here. See the call
>> site of recheck_cpu_features() in enter_state().
> 
> With this patch, I now see the "Thermal monitoring enabled" on resume
> also for AP.
> And then, the "Temperature above threshold" + "Running in modulated
> clock mode" for AP too. But, I don't see matching "Temperature/speed
> normal" for any of them...

Which would imply that for each CPU you see at most one such message after
resume. Can you confirm this? (Generally for every CPU they should be
alternating, but appear no more frequently than every 5 seconds. Albeit I
can't help the impression that it is possible for the current state to not
be reflected by the most recently seen message, for a potentially
indefinite period of time.)

> My simple performance test says it's okay for now, though. I'll see how
> it looks in a few hours...

I actually don't expect the change here to make a difference in that
regard. intel_thermal_interrupt() exists only for reporting purposes.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 14:55:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 14:55:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245536.1544894 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxncq-0004o9-GA; Wed, 04 Mar 2026 14:55:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245536.1544894; Wed, 04 Mar 2026 14: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 1vxncq-0004o2-Db; Wed, 04 Mar 2026 14:55:00 +0000
Received: by outflank-mailman (input) for mailman id 1245536;
 Wed, 04 Mar 2026 14: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=YDHP=BE=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vxnco-0004nu-K5
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 14:54:58 +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 1bbdc2b8-17da-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 15:54:56 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-65baa72399fso9195521a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 06:54:56 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b935ae94441sm749234866b.50.2026.03.04.06.54.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Mar 2026 06:54: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: 1bbdc2b8-17da-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772636096; x=1773240896; 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=b8TcMBZ3yGouGfj8M+MDoejSezqgCzwzBRxv90RmjcY=;
        b=lk3lKjuqUCeIqKHZpbwXj/QQaDchhRUEVaigvCR/DW0lAH5bpKOj/+b0vli3zutbLQ
         VwIWzYDL24cJcI7SmAe1ZsGcmdaytkeHFhJu15MBhqDF+KOrsk/jGF22EStLkkHXJ28P
         CFYgDlp112llOMSehRZVHe42t5tKT6pSZvGYbVY8LRFqVYr40WwSWHANd2M1LnOzIUZ5
         MjFXW41IoKusjKpak7Jd24U5W1XGWGd7SnBt46jdiv9/Wy9pcS3vOWxW8XOXTLjEekU7
         mi2AJQ3UCbH+iOVn2Z3JOFo+eN4DUmAM5ZVgnWDAm6yHfIwMmofbdjLmVIf3v9eZccr5
         +vEA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772636096; x=1773240896;
        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=b8TcMBZ3yGouGfj8M+MDoejSezqgCzwzBRxv90RmjcY=;
        b=Fwn50ocwpyMUndjsiz7AJsQtEY/sc/OzKGm1Koxf4bp8lz0KjNkBxKHgZorkSuE4jj
         X0A+ZgQBB3bxp3PHCMsnDSts+DQM9dcxe9D2N+1pfJn7R0BYwpL/OgzkNSfd3qtQniXK
         oeRj1+Dd8ud+IVnJaQGqRcn4zKGaW72+dDG8+kh2Mo6ijp+aqhM0jdahxB5QUtnje36A
         m/SMThNlEinFRlpQNt5JyVLQzroDbhnokDTnFHowDmZutiJspxdCg9kRhJUZLaco+aHf
         RBONRSF2TrLHtu5Ji7KZRJEpxTA9szk0LOhbxG64pjFMQZn3nZNLCr0T6aDdJg3MTaLN
         E5Lw==
X-Forwarded-Encrypted: i=1; AJvYcCUldcjMvR9eOMUS2Gppqdm9XYPJnrJeZ2t4tSXFihkyDAuyNjJT3HCt9+KMsILO5//U1jW1Edatd2A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxR20TmprZhnFm+hSBQ4sBKZh1iT1a8WRy0Q/J369Ra6kB6H4ha
	WIXMiCj5FFnutrS6yWmgZgOJiAkpdcVEePEwrnpMShs7/daiTIVGakAS
X-Gm-Gg: ATEYQzwXUPysakK8lmPqCuijmPWKctRjNl45LX79+qXGMs0cdBXoR9q+pXNdPYOpVQu
	6nJ+ED8uHnOFFL+5SASz/7PvWbA4hDGIVQKbMw9TBL+HNL7o2zpnRgfO74wU8Hp6Rm/S8BoLg2t
	k45Z+HuTMgmGzIqQHE7RR20LCY7fc17B+e06Iv+EairDHh1KICPa/h69IFMI3duZ9nEr85gzj20
	QtMf7bsmxtWLEJqJ51KXHXAZ0ZChb80S1xB/IclbQ+Yojil2jcmruLaL3wVF2tMmVij3b+5+c/F
	+jbpu0f5BdrSgJd7cM2s9Mm4BPOQhHk3SC/W7tdG1ZY1FZicCCW8yfWj3rFVu97EcfR92vq1oHV
	6SPymO9hLwyz90iDxEZrorfya/G+m9lfIduPH8fK4kjQPdDK9dnM4ZlYNJcqxpagVOqVRdvjBa0
	+hEVEbwUR3esN9+WFBRh0b97A3Oy6P6nrk4mmoM6aGbhQq8Tab/YKKtTMZ57sME354Fb2cPlqzb
	c9dwEPyr/XcPw==
X-Received: by 2002:a17:907:6d28:b0:b88:47b4:7626 with SMTP id a640c23a62f3a-b93f11c65e4mr135595666b.27.1772636095424;
        Wed, 04 Mar 2026 06:54:55 -0800 (PST)
Message-ID: <7e1f3962-2dd0-4843-8976-40452437a52a@gmail.com>
Date: Wed, 4 Mar 2026 15:54:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 01/14] xen/riscv: detect and store supported hypervisor
 CSR bits at boot
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
 <a17b6a117726904a9384dc7d9cc140672d3b0453.1772016457.git.oleksii.kurochko@gmail.com>
 <4b67f8cb-43d4-4f18-b2b6-156e21330887@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <4b67f8cb-43d4-4f18-b2b6-156e21330887@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 3/3/26 1:23 PM, Jan Beulich wrote:
> On 26.02.2026 12:51, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/domain.c
>> +++ b/xen/arch/riscv/domain.c
>> @@ -2,9 +2,56 @@
>>   
>>   #include <xen/init.h>
>>   #include <xen/mm.h>
>> +#include <xen/sections.h>
>>   #include <xen/sched.h>
>>   #include <xen/vmap.h>
>>   
>> +#include <asm/cpufeature.h>
>> +#include <asm/csr.h>
>> +
>> +struct csr_masks {
>> +    register_t hedeleg;
>> +    register_t henvcfg;
>> +    register_t hideleg;
>> +    register_t hstateen0;
>> +
>> +    struct {
>> +        register_t hstateen0;
>> +    } ro_one;
>> +};
>> +
>> +static struct csr_masks __ro_after_init csr_masks;
>> +
>> +void __init init_csr_masks(void)
>> +{
>> +    /*
>> +     * The mask specifies the bits that may be safely modified without
>> +     * causing side effects.
>> +     *
>> +     * For example, registers such as henvcfg or hstateen0 contain WPRI
>> +     * fields that must be preserved. Any write to the full register must
>> +     * therefore retain the original values of those fields.
>> +     */
>> +#define INIT_CSR_MASK(csr, field, mask) do { \
>> +        old = csr_read(CSR_##csr); \
>> +        csr_write(CSR_##csr, (old & ~(mask)) | (mask)); \
> I (now) agree csr_swap() can't be used here, but isn't the above
>
>      old = csr_read_set(CSR_##csr, mask);
>
> ?

Agree, csr_read_set() could be used.


>
>> +        csr_masks.field = csr_swap(CSR_##csr, old); \
>> +    } while (0)
>> +
>> +    register_t old;
> Since the macro uses the variable, this decl may better move up.
>
>> +    INIT_CSR_MASK(HEDELEG, hedeleg, ULONG_MAX);
>> +    INIT_CSR_MASK(HIDELEG, hideleg, ULONG_MAX);
>> +
>> +    INIT_CSR_MASK(HENVCFG, henvcfg, _UL(0xE0000003000000FF));
> This raw hex number (also the other one below) isn't quite nice. Can we have
> a #define for this, please? It doesn't need to live in a header file if it's
> not going to be used anywhere else.

Sure, would it be okay to define them inside this init_csr_masks() or at the top
of the file would be better?

>
>> +    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
>> +    {
>> +        INIT_CSR_MASK(HSTATEEN0, hstateen0, _UL(0xDE00000000000007));
>> +        csr_masks.ro_one.hstateen0 = old;
> What guarantees that only r/o-one bits are set in the incoming hstateen0? I
> can't help thinking that to determine those bits you want to use
> csr_read_clear() (or csr_clear()).

Good point, then after INIT_CSR_MASK() it will be needed to do:
   csr_masks.ro_one.hstateen0 = csr_read_clear(CSR_HSTATEEN0, _UL(0xDE00000000000007));
   csr_swap(CSR_HSTATEEN0, old);

Probably, csr_swap() isn't needed as it would be good to have all writable bits by
default 0. Of course, except r/o-one bits.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 15:01:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 15:01:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245550.1544905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxnig-0006jE-5x; Wed, 04 Mar 2026 15:01:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245550.1544905; Wed, 04 Mar 2026 15:01:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxnig-0006j7-39; Wed, 04 Mar 2026 15:01:02 +0000
Received: by outflank-mailman (input) for mailman id 1245550;
 Wed, 04 Mar 2026 15: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=u/nm=BE=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vxnie-0006j0-Sa
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 15:01:00 +0000
Received: from fout-b3-smtp.messagingengine.com
 (fout-b3-smtp.messagingengine.com [202.12.124.146])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f33ae674-17da-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 16:00:58 +0100 (CET)
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfout.stl.internal (Postfix) with ESMTP id B1EAE1D001ED;
 Wed,  4 Mar 2026 10:00:56 -0500 (EST)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Wed, 04 Mar 2026 10:00:56 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 4 Mar 2026 10:00:55 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f33ae674-17da-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm3; t=1772636456;
	 x=1772722856; bh=/6mPn7+MSTQcX7GlpvXaiJVSgeglXAhuRBMxkvRDAGo=; b=
	Wq6xNLYp5ttwVnmeARhr5LgJx0+UAllepmNk/ASQHg8PRE81APuaJDOI5XaAUnZj
	PxRCppxbDK79V+D70mnHUQUP90D+SRR6rJFqd8D2CsnwjXgYtswdQ7NQudGb47dx
	NRueRb72av3pBSt8mPPUi4XvCbYNKedC1CeGOmJ2SEwcRzxOy93Iot/69LSN9rxK
	1vaWtWokBpGv+jI/6lKH6y17DuD/Y7l6gc1spDL/glaFofR7opXB0iFSmfkpPzcs
	tV4CZivlGkQx9N6rzGSyWSNxDXkHIDnX+Yr1eWDIykgtv6Ec+1LsFtKfpFOvWtmf
	JcWs58EZf46TqhO0EchisQ==
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=
	1772636456; x=1772722856; bh=/6mPn7+MSTQcX7GlpvXaiJVSgeglXAhuRBM
	xkvRDAGo=; b=aWRNyu7AIUjkUzmOj03aqWQPu1ixaCzD+shJsMGX+spq4T80YGb
	pa+Ofv3XwBu7aKExRExozXCO/K6KIiWWBpiDGw3rllosy1tBKUyo4R8ROgxfgSDW
	OyVfWT66V+vTKPi6982zK4C23G8B8SpmJPqD5YapwT77UupjJ5YraaDSFqJmEzaB
	ZulLVmgz/0i/0DmfzV8QzOsLxj170zIXJLB2TNFDfAY36rnUsQ4O9VBZZFCS5/QS
	uMUkGUR4QGtzom/mIWK4jqmVMjSEpXpZDekmLolnY75CkSGbfyBs1Fu5pnaaBre3
	v8rGP8t2NVvJWuSAfxZz3uRjBN6WFmT/d1A==
X-ME-Sender: <xms:KEmoadTexLjbbNDq9RLqFWJzP4S5p_aVkLFZmzhrXK7woEvUdUrzwg>
    <xme:KEmoadwYpDKmFiy8J7XnYtUh3sqImUasYURuXnkFbOemxWP-T5WKnpN4fHWaF6X-X
    6Ok4I-lgCc2qYb7ZNlhL3_iIDz9tIFGhkJieIzAvJT0L4kRmA>
X-ME-Received: <xmr:KEmoaX1L7h4rlUqFjcqFGx-uJfqXBSAjLOTrR-PKvl3Jv_wbFLTSlr7UUB-bMPbyiiX_YM2Ye1iVUpnozMsXQ0xauLDwkGa2kWQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvieefjeelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiuceomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhih
    hnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfekuddtffettefhieeuheff
    keeuffelvdffuddtteetledtveekfeekleehjefgnecuvehluhhsthgvrhfuihiivgeptd
    enucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgv
    thhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepgedpmhhouggvpehsmhhtph
    houhhtpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtghomhdprhgtphhtthho
    peigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtph
    htthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthht
    oheprhhoghgvrhdrphgruhestghithhrihigrdgtohhm
X-ME-Proxy: <xmx:KEmoaT6ApBmTPI_ce0cY8HZjtmNK6q-yHwxAdMQWRhH3LlRpKuRC-w>
    <xmx:KEmoaSWEq2Cn5wzJ4g-sq3ii5Ey-stU6R52B4tViq3CRdAFGyNhYvA>
    <xmx:KEmoaaDPcnhYpWKbYMvncGhs2SZC3l7sRHcsb0TN3yXvl790-HPa2w>
    <xmx:KEmoaZ461x65tv4h2dlzR4iZNPXydgcnrRDFjGMx2-D2PfsgJV4k0A>
    <xmx:KEmoaYDfZhB-4zzUmsmp0yVbD9SByWNcebFPIcFEKSdgZudG1ly_gbcJ>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 4 Mar 2026 16:00:53 +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>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH] x86/S3: restore MCE (APs) and add MTRR (BSP) init
Message-ID: <aahJJdA6ftj3OucN@mail-itl>
References: <12fbad10-78ad-4679-a1db-3995e34da094@suse.com>
 <aahDX_QvrB1MTLcq@mail-itl>
 <0c556f7c-6567-43ec-a9cd-eb542fc970b3@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="fOaXe1B5sBHN0ltu"
Content-Disposition: inline
In-Reply-To: <0c556f7c-6567-43ec-a9cd-eb542fc970b3@suse.com>


--fOaXe1B5sBHN0ltu
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 4 Mar 2026 16:00:53 +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>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH] x86/S3: restore MCE (APs) and add MTRR (BSP) init

On Wed, Mar 04, 2026 at 03:47:14PM +0100, Jan Beulich wrote:
> On 04.03.2026 15:36, Marek Marczykowski wrote:
> > On Wed, Mar 04, 2026 at 02:39:01PM +0100, Jan Beulich wrote:
> >> MCE init for APs was broken when CPU feature re-checking was added. MT=
RR
> >> (re)init for the BSP looks to never have been there on the resume path.
> >>
> >> Fixes: bb502a8ca592 ("x86: check feature flags after resume")
> >> Reported-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethings=
lab.com>
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >> ---
> >> Sadly we need to go by CPU number (zero vs non-zero) here. See the call
> >> site of recheck_cpu_features() in enter_state().
> >=20
> > With this patch, I now see the "Thermal monitoring enabled" on resume
> > also for AP.
> > And then, the "Temperature above threshold" + "Running in modulated
> > clock mode" for AP too. But, I don't see matching "Temperature/speed
> > normal" for any of them...
>=20
> Which would imply that for each CPU you see at most one such message after
> resume. Can you confirm this?=20

For the current test, yes. I got the messages for CPUs 16, 6, 18, 4, 2 -
in this order. Not for 0, 8-15 or 20-21. Not sure about CPU0, but for
others it kinda looks like I got it for P cores, but not E cores? But
I'm not sure how to reliably distinguish them - I base it on the holes
in numbering due to smt=3Doff. Specifically I have online CPUs:
0,2,4,6,8-16,18,20-21 (yeah, weird ordering...).

> (Generally for every CPU they should be
> alternating, but appear no more frequently than every 5 seconds. Albeit I
> can't help the impression that it is possible for the current state to not
> be reflected by the most recently seen message, for a potentially
> indefinite period of time.)
>=20
> > My simple performance test says it's okay for now, though. I'll see how
> > it looks in a few hours...
>=20
> I actually don't expect the change here to make a difference in that
> regard. intel_thermal_interrupt() exists only for reporting purposes.

Yeah, it's too soon to say definitely, but just after resume test said
stable 6ms, and now (~30min later) later it's at 12-14ms.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmoSSUACgkQ24/THMrX
1yyUUQf9G3qyWkVM9gFdWcbsyo/0WTGqS3d2lW8xdRYF33d29PRe54WTOOFhAQXG
3vHXNfWWme5N4YeFM/P8CH0rLuO8Zj8LKZk8lEvpFmQUXreA0RzvNwPJGa67Ogp+
o4MRZbsYNWXyKkFRfZK0CV+27qmWCv2Aw2j5iIBYhCM6ylrzXUGl6Ojxzs/TrfRF
gM/FzHPDYhkoqys57qwaDKuTfbxhrd9Txlo4xEj/yoeoLZijmnDU766JI2ObIlKb
y7aNrh4GYpSM1GmNML0RoK9zIeokLCJ1E4qWSt24yIStwgcgSRDHBk9AuWKLFEsn
SrsXH6um9QmJEsIQtSIdw1e61KQMzA==
=lMYs
-----END PGP SIGNATURE-----

--fOaXe1B5sBHN0ltu--


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 15:05:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 15:05:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245560.1544914 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxnmb-0007IW-L4; Wed, 04 Mar 2026 15:05:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245560.1544914; Wed, 04 Mar 2026 15:05:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxnmb-0007IP-IT; Wed, 04 Mar 2026 15:05:05 +0000
Received: by outflank-mailman (input) for mailman id 1245560;
 Wed, 04 Mar 2026 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=4oGM=BE=gmail.com=chakrabortyshubham66@srs-se1.protection.inumbo.net>)
 id 1vxnma-0007IH-F0
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 15:05:04 +0000
Received: from mail-pj1-x1030.google.com (mail-pj1-x1030.google.com
 [2607:f8b0:4864:20::1030])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 84f786a4-17db-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 16:05:03 +0100 (CET)
Received: by mail-pj1-x1030.google.com with SMTP id
 98e67ed59e1d1-358ed696623so2866382a91.0
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 07:05:03 -0800 (PST)
Received: from localhost.localdomain ([47.30.254.178])
 by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-359aa3eb916sm516439a91.11.2026.03.04.07.04.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 04 Mar 2026 07:05: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: 84f786a4-17db-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772636701; x=1773241501; 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=fqTYOMIsNClRzqswixiS8WEm00nS5ICygdS6xEi4uwI=;
        b=VASiVr9TJfSCmlBbui+D2U8h3fGQRVLqUznS5XuKhKnVc7e1YCX149X15UkWBHz6DI
         L4sh5bQ0lMBiEQ5JLtXuTxGz/8fcvSdTmEdaoqs/215PGAlkUkdrZzyyHV1AHlX1U+/T
         n/VJX5qbrQm1y3NoXkO1DfFHrlqTYsbmkWQwdhOHMEP0VD726Bffj1e8IGVZSgMZ+8Rl
         StLS2+y8+cbJeZ/YoeJU2FM+59KQVMPrTtNTTT1nwbJJSbeRgwq3LyCylpQVsq415p1C
         ix2WAEikNCX6nHFj49+cIKYnYBFTMyFqa1JiP8M69sze7qI5Nm716UzEjIImtIdjHmrr
         SSkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772636701; x=1773241501;
        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=fqTYOMIsNClRzqswixiS8WEm00nS5ICygdS6xEi4uwI=;
        b=RnlhaKopr+ItG4uZAc+JogYxzaorAXaHwmsHb9VG1+851gebQQ4585pgB3ebfE8UnA
         FeaiyRyJE8rbgaIPBWwE6oPNrj6WHkVRinMVt3hpFHXDpD6XkiqmRpfE7j/fLR/4KL06
         qDT17z87GW7yJJ9rEJVesiO6A1P7FnwI/NOcjejaRldDAqwLpcL5700rrI0UQLi/si5Y
         bqA/JCdXJkz/5mRRmwSVkNtQKrgoDe1aLdmZPy71GEmdIh3BrCJl7i5QV9cVfjKrU8iV
         wkLGSmprPFKac/Vmf8ZxP0MX7p2pYSj5z2pATbWGNBiOtsYyFV8JggoWSeLl/BDfvKEM
         AF4g==
X-Forwarded-Encrypted: i=1; AJvYcCUvGnnzrt7xPsJdIsdDiISWKyiS45W0FjNALRQhtZ7rDPYzXi2nMlSEDnAJckAfZpTRa5t5tDiPTMA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxYyvhvmhFbqoqpVM79XbqZGs2Wfo6ukEhwCPgNlCnXF98EsZIr
	ZxU3hWYT6Yk6WVjk03+qfh4zJORiURUoH6xy+l+2ok7N3sgXrwzLENFI
X-Gm-Gg: ATEYQzzJLBiBYf6/qls/40d6Bpst28G8afoGIPXMdCwQK60I/LUjgg6XmMxLxGm8Kgu
	wqfONbSnvRHNBJn/DEJaJdydgV579LoP/fKa7z+fmN+eibjmeeL6YBoUaBNttFTFJ6GEV+24yaP
	bmw5qOkcY3lbedefe7ki0Xc+Tae6VpwTV1HTOT41jXvZ/llhYJkjYk9n4Ob6d95yWk40VWZQg1v
	hJ52C9G5P0PzTAoaVtSnf+l7AZQs2YQo7C1n97PGajd6jQ0Fm242WMzfVECoRV7nt/Pi2wiM/3G
	J1DjZMerZmp9r4V2LnW8bu1GEcIYUan8RsvO5k2/bR9azqSiUxX+xKQyU9P58U4JVafaJOvd5/L
	c3ocN8DQRGfeUuWf8ACH8KpGqRJPvCOYlpYq/i3J5PpY5d1Lye46dAjn+kD/ihFmLy/1ps7LwMD
	tGh9/Y9zj/b4IELsLR5clfeJTaH7Gj+GVrcXyPdCAKHrATx2KRl4819x7b5M1vtA==
X-Received: by 2002:a17:90b:48cd:b0:34a:8c77:d37b with SMTP id 98e67ed59e1d1-359a6a21536mr2121281a91.16.1772636701366;
        Wed, 04 Mar 2026 07:05:01 -0800 (PST)
From: Shubham Chakraborty <chakrabortyshubham66@gmail.com>
To: corbet@lwn.net,
	jgross@suse.com
Cc: sstabellini@kernel.org,
	boris.ostrovsky@oracle.com,
	linux-doc@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org,
	Shubham Chakraborty <chakrabortyshubham66@gmail.com>
Subject: [PATCH v2] docs: sysctl: Add documentation for /proc/sys/xen/
Date: Wed,  4 Mar 2026 20:34:19 +0530
Message-Id: <20260304150419.16738-1-chakrabortyshubham66@gmail.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add documentation for the Xen hypervisor sysctl controls in
/proc/sys/xen/balloon/.

Documents the hotplug_unpopulated tunable (available when
CONFIG_XEN_BALLOON_MEMORY_HOTPLUG is enabled) which controls
whether unpopulated memory regions are automatically hotplugged
when the Xen balloon driver needs to reclaim memory.

The documentation is based on source code analysis of
drivers/xen/balloon.c.

Signed-off-by: Shubham Chakraborty <chakrabortyshubham66@gmail.com>
---
 Documentation/admin-guide/sysctl/index.rst |  3 ++-
 Documentation/admin-guide/sysctl/xen.rst   | 31 ++++++++++++++++++++++
 2 files changed, 33 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/admin-guide/sysctl/xen.rst

diff --git a/Documentation/admin-guide/sysctl/index.rst b/Documentation/admin-guide/sysctl/index.rst
index 4dd2c9b5d752..aae68373902f 100644
--- a/Documentation/admin-guide/sysctl/index.rst
+++ b/Documentation/admin-guide/sysctl/index.rst
@@ -84,7 +84,7 @@ sunrpc/		SUN Remote Procedure Call (NFS)
 user/		Per user namespace limits
 vm/		memory management tuning
 		buffer and cache management
-xen/		<undocumented>
+xen/		Xen hypervisor controls
 =============== ===============================================================
 
 These are the subdirs I have on my system or have been discovered by
@@ -102,3 +102,4 @@ it :-)
    sunrpc
    user
    vm
+   xen
diff --git a/Documentation/admin-guide/sysctl/xen.rst b/Documentation/admin-guide/sysctl/xen.rst
new file mode 100644
index 000000000000..6c5edc3e5e4c
--- /dev/null
+++ b/Documentation/admin-guide/sysctl/xen.rst
@@ -0,0 +1,31 @@
+===============
+/proc/sys/xen/
+===============
+
+Copyright (c) 2026, Shubham Chakraborty <chakrabortyshubham66@gmail.com>
+
+For general info and legal blurb, please look in
+Documentation/admin-guide/sysctl/index.rst.
+
+------------------------------------------------------------------------------
+
+These files show up in ``/proc/sys/xen/``, depending on the
+kernel configuration:
+
+.. contents:: :local:
+
+balloon/hotplug_unpopulated
+===========================
+
+This flag controls whether unpopulated memory ranges are automatically
+hotplugged as system RAM.
+
+- ``0``: Unpopulated ranges are not hotplugged (default).
+- ``1``: Unpopulated ranges are automatically hotplugged.
+
+When enabled, the Xen balloon driver will add memory regions that are
+marked as unpopulated in the Xen memory map to the system as usable RAM.
+This allows for dynamic memory expansion in Xen guest domains.
+
+This option is only available when the kernel is built with
+``CONFIG_XEN_BALLOON_MEMORY_HOTPLUG`` enabled.
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 15:07:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 15:07:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245568.1544925 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxnog-0007oO-0Q; Wed, 04 Mar 2026 15:07:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245568.1544925; Wed, 04 Mar 2026 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 1vxnof-0007oH-TX; Wed, 04 Mar 2026 15:07:13 +0000
Received: by outflank-mailman (input) for mailman id 1245568;
 Wed, 04 Mar 2026 15:07: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=bY7Q=BE=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vxnof-0007oB-2g
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 15:07:13 +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 ceefa75a-17db-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 16:07:07 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CO1PR03MB5907.namprd03.prod.outlook.com (2603:10b6:303:6e::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Wed, 4 Mar
 2026 15:07:01 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.016; Wed, 4 Mar 2026
 15:07: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: ceefa75a-17db-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cTSsdKySWC6+lF+heAi56WpZltXcvfwjYCwZEWdxiUfgpbiSRlJjhh+eZzYt0USZ7h1P9CIlMxBWKmWgvzLY/IJdQULJcNPDfTn2hjlvN0r9pcevBJKrXKAsxhOW73iK0P4NVdyNMd6ugaCRbWvGaTTKTLUEJWy/MkJZz30JMqlB2iUGchkty41Hcg/M+t/BEple0DGb0cPROqrGuJHS0a8JWULmB5JG8RhB4TKGb7P35DeCYihAR/Dun/vkeM9xGab+3Fldiz0SpwceeXVvrqYFfF7RulgyI49NdsdrzYOH/gp8K9Mj9kETjK2giI/03n1i+orItgyHtsUWQ7dK6Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=maYv6YMM0hf8D0RaHXdIXUzwWjEs/blJ6dpfrYIT3xM=;
 b=hNpHLNTcr60W0kiPOhziPX0C8lQK5VVEBctY/twYHCDL3+UB5wfS+qlnmTrs4lHthJ5jRH3AH0IeH0tNTnu4FhG3oBS9LpLWCaRTOVhFDLuzS5CMd2cv7EFdMPYkHZBGJV8Kh+8U3Hh/5pV/r/JZDEBrySJ65XxJKkezmBgwZWBARsUMrEQrg9pDN8sFxM8lvvkDTT1ALLkjYZ0MdAQBWn6P3S5zPDf0E5uVL9FLIAG4f4Ac8K/y3afrzTF9xBN4gX3kmO2XySQzx6tyNERgfmq8wLodUMbiEsN3E2vVNdnqgBnv7gp8PpreVjPYZ7Th792AaVzPTdlhkKLuBtX/5A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=maYv6YMM0hf8D0RaHXdIXUzwWjEs/blJ6dpfrYIT3xM=;
 b=XWBn2QcQIxOKxDT9VD2tT2YYvordUZCBkqbt8LU2MkXtcaHg7UBHVb9ZM2pGkQ3oqEvkSAt179Ws8zK3e8QRHBD++vWdifFsPboZ+i4NPvSA/rUfKjJbJyOXcktf6bHqBcIPLTn7hGlZh2itHULVXT3rl73JxqooyWJt6XK8/TU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Mar 2026 16:06:57 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v5 5/5] vPCI: re-init extended-capabilities when MMCFG
 availability changed
Message-ID: <aahKkV2csf28Y0YC@macbook.local>
References: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@suse.com>
 <9f1fcbfc-e7b6-4ef3-8f58-c88f9667d606@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <9f1fcbfc-e7b6-4ef3-8f58-c88f9667d606@suse.com>
X-ClientProxiedBy: MR1P264CA0192.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:57::8) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CO1PR03MB5907:EE_
X-MS-Office365-Filtering-Correlation-Id: b6a9bcdc-ea74-4573-41d1-08de79ffb003
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:
	lzXGMbW3nyY85Gg2XW9D6Xq5FVh8OYdd8YPR4vtfidRBWNsiTc4/eAJtqBNk7PeLX7zcJPuJ5wLLH23AeQ8SQBQGh6WgEVQXu5PcVkeVxnv9R12TNMhmEk+Urwj5w+ytJM7nRGh1LHfMhRjUoVFdEO9dIALatn9z9Zij4CIODyYNyOB8xlRYHsRSUlkERd7ydcKwJLNzQjwR+SuT8tRwW6C0BWMxg4wFMpefRIpJboYkA5TDYAPM0bFC8W/AYmlr/bJdEzu2MicW4ePlCHS9jfKoGFm3sCZNtsXrTzN96xLahLL6QRxgMoKl/qHGyhdtYFMLV5obUt2uox3GciEMg75efeKHNQlovORxuGpwZnVcP59D1sK7eB4CU46PYM9+ff1JpVp6XoKFrKJpS3EDyY5uTCeLCj+iBrnUQ0yfbbtaJER7oFsaA9Ws9kuzI3HaFN6bNDfUw4dAzPScVnolp0UZhPqNAkdvX7Uh0UFzmLW5HWO8kiJI3+L04y3807apKizb1vIIKMRUpKGeIbv5UigwPsArZSQRwYTA4QXRwTNAtUleYfPrTmfDSI8VW0LhO0wlIMDZWNThJbEaSybKzUMXPUucPZc7aJrNKEmnVKHuk8Yshay2cSdxvVVs/Vcy5SkKW+IXD72/xQLLmOMF1g+JcvBhbTw3WuSh33wDJNvUaNa7/cGKKh/BWWS8nMpdxlweDs+glGbJOkSTrlXwOPJ0ktCMYmr9uIken+i6PTI=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Z2FHWGloTjZUQ0FGMUpMT3p6Z21kV3RqQkRrWmVibHd4Q3RpNVM1TGhqRkUy?=
 =?utf-8?B?a0ZaNVg2NlprZUN1TjVMNmF3c2g2UC9KeXRvaXhJOCs2cGpDTGMwbXNpck9m?=
 =?utf-8?B?bld4Z1JTZUpoay9ZYzZ5WEoyajl3Q011SWp6cHlrVEViYWl3UnVTcDJ0MXQv?=
 =?utf-8?B?ZGVtY3Q3eHQzNkxqVVBJS0d2czJTQ3pDTGJjYmJqdy9xQXNnMDI3Z0NtQndi?=
 =?utf-8?B?Y0d4NXBtWkdkVjJxcnJXek1VRUNwMU1pSzA4Z0NsdUFWcEh3YjN5Z0FLUHQ2?=
 =?utf-8?B?T29DSmtrTW5YRndyeDR5clhmZ000ajVCUEoyOHR6Qy9MTXFOSG5GWkxHWmdF?=
 =?utf-8?B?S2hFc0lHS0ZOdjBKa0J3Z243bVZucW9ucFZ5TDF4aTNyNWtqYkVWWjZFRjEx?=
 =?utf-8?B?aGp0Q2t4YnVKZGcrMnRHT3h4amg5eXlGZnQ4RmszejZuL3F5eVBvMVE1ZmJt?=
 =?utf-8?B?bnorUWlia2N3aGh0V010RVJrNXR3U2w2K2V2b1ZWMUJiNkZxQXRKY3ZhaVA4?=
 =?utf-8?B?a3cvbDAyMlBmS0lJQUJQQzlvd2hpM3FiYU5YUGhtcEhxY2EwRFNncG9WbVNr?=
 =?utf-8?B?WmNTb0pBbFpCU0ZFcU9Ha056cjlnU0tmRWNubWJXTzRvWkdrTjVqaExEZ0U4?=
 =?utf-8?B?OHJnS1dYSE16dEVkNUJGeVNrU0x0VDZnNDlGNXNFUHRjYThtUXlqK3pSNldv?=
 =?utf-8?B?KzdxNXNlcEVUNWRuTVZQMHBmUWVzSUh0cENyd3gwSU0yMllFS0hhSmJobnl2?=
 =?utf-8?B?QTJQTXNXMFRBYWZyNDkxRDdvQ09lZmdFMnR1ZzNLWGg1TFZna085OWdlcU5o?=
 =?utf-8?B?N0FVc1ZDeGR6NUlqS1JTU2x2VEJ5TjR0Rytxdm85MGh4bDRCMFNoUXE1dVZp?=
 =?utf-8?B?UUh4V1krSGtNd21xTVA2ZGVYVE5Yd3FkL3NiWEkxMWpMeUVOdGsvV1JEdkVZ?=
 =?utf-8?B?T3BhQWhLSGNRQ2E0TnFWZkpqN1FERHVuSUsrUDVLTXpIcmxaV21pcXR3SHJy?=
 =?utf-8?B?cTZPaWtKSUNXQWJSdUhrR2V5RVVqNzc2WkJiVmljclliZnVBZFNoZStQMHJX?=
 =?utf-8?B?RWtxNEtXcm5FbGpYaTE1am1wRFV0a0VGbXJ5QUs3aCtiRkphL0xOdnJJM3Nz?=
 =?utf-8?B?aFFNaVNwVlVIcjNERnYvTytjemlwQU9LeVR4VEtEMFE1UDQwdkQyTmpZMDdz?=
 =?utf-8?B?Q2FQSlowcUFLVnViWFFLODRPR1ZaV1grcnNqSFQva2c0Q2g4YmkrUDNyNVl2?=
 =?utf-8?B?YWhWNWxFdEZaSk1BWS9lU0xYQVF0d0J3ZTlMS2tMR1dOYnVBcytrMFViMHpw?=
 =?utf-8?B?NmNkUE8zeTdSSy8ySnlLZkNPbVQ5bExReUxXd3ZJVlQwd25mWlhUSGxDQlk4?=
 =?utf-8?B?ZFV2NEl4RmdxNDUwZ0plZjJYTkc2WGlEd3crcGpvdmdyTFo4Y1M3am5hWS9R?=
 =?utf-8?B?d3kxSGRuWGlRYXJtZnEvdGpXWHpRTzQyYTdjVUFrZkx6WGdKVFBLN1UwVW54?=
 =?utf-8?B?cXlHWDN5TkdqOGs3YWxFdXBqOFFUV1BIRitHRmlNL2tHYkFodmtHQTkrNGhq?=
 =?utf-8?B?U2FkTEpleitHZGt0bjZzaTdGaDFIMFlTUngvQzExNEx3NXNsRktvdG9lKzBu?=
 =?utf-8?B?Z1pHaHpjWiswTmxNU3lYTmpnSmpURG13Vi9jZ21VdER0eG9SQ1ZhSWthVFI2?=
 =?utf-8?B?SHBHLzRpRGJhT2dOOHdlbkRwZjNrYXhkS0tlU1Z2cG12MXUxUHVQZkxpZVV5?=
 =?utf-8?B?eFdEYldRa1k4S2YvcW42MmIzZ2p1cFY4bDNpUEs5Zi9RdDMrWk1QOTRORzhP?=
 =?utf-8?B?VHhlQTVYbEQxa3NqdFFtcHVITTVLclhsbE5aT2dtT2IwK29lNnBrZDNXd1RK?=
 =?utf-8?B?c0tYUUFzREFGcy9PSUFBNVRGbFhDQU9na2VZU3A4YmRkTjM2UHBWc1FYUUl2?=
 =?utf-8?B?M0hpZXFHTWU1a3VXVGV6Q1VHTlREYmxacjc1bUw5QnA5ZGN5ZkI4U01PL1ZZ?=
 =?utf-8?B?cnpyTmVmOEtpeEdrTldjN1VOQW1haFR5TXdQLzFITXZLNTNHUFVuZzdZUm5p?=
 =?utf-8?B?bCtpVEE4S20rQTdRQ3hxZTlVNU8zMVU1QTIrNFcrdlJONTFSUDE5TXlCeVFX?=
 =?utf-8?B?ZmhjdUplSmxvN09zNnltZXp6bTMzeUlWTkUxK0FnOEpWNFZJejRlRlZIc1dr?=
 =?utf-8?B?SGJOak5TdDlObHRseDA1QlFLZFBVOXlFcmtSSkdZMDlxMFg0ZGgrTTA1T0c1?=
 =?utf-8?B?NThiSnNxRFJLeDMrSDRHRW5FWUh1OUdCUFdFa3JyQTRHMnl4enlUTGdmaDkz?=
 =?utf-8?B?WEFaQWhwVXQyY0tGa1JLTmJScEh5QXVmWGM2WERWZ1h3dHU1ZWJBdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b6a9bcdc-ea74-4573-41d1-08de79ffb003
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 15:07:01.2455
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: RnCOOEyqtK3nwJjLN0/C0TeVODocJmMeOZe1373ye39oNVUm0KP7lh+ETkI+zaWzrI+cXAMdGMlZrTMjWdSflw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB5907

On Wed, Feb 25, 2026 at 12:44:44PM +0100, Jan Beulich wrote:
> When Dom0 informs us about MMCFG usability, this may change whether
> extended capabilities are available (accessible) for devices. Zap what
> might be on record, and re-initialize things.
> 
> No synchronization is added for the case where devices may already be in
> use. That'll need sorting when (a) DomU support was added and (b) DomU-s
> may run already while Dom0 / hwdom still boots (dom0less, Hyperlaunch).
> 
> vpci_cleanup_capabilities() also shouldn't have used
> pci_find_ext_capability(), as already when the function was introduced
> extended config space may not have been (properly) accessible anymore,
> no matter whether it was during init. Extended capability cleanup hooks
> need to cope with being called when the respective capability doesn't
> exist (and hence the corresponding ->init() hook was never called).
> 
> Fixes: 70e6dace747e ("vpci: Use cleanup to free capability resource during deassign")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> vpci_reinit_ext_capabilities()'es return value is checked only to log an
> error; it doesn't feel quite right to fail the hypercall because of this.
> Roger brought up the idea of de-assigning the device in such a case, but
> if a driver doesn't use extended capabilities the device would likely
> continue to work fine, for Dom0 this probably wouldn't be quite right
> anyway, and it's also unclear whether calling deassign_device() could be
> done from this context. Something like what pci_check_disable_device()
> does may be an option, if we really think we need to "break" the device.

We may want to add a note there, stating that we have considered all
possible options, and hiding the capability and hoping the owner
domain would continue to work as expected seems the less bad of all of
them?

> The use of is_hardware_domain() in vpci_cleanup_capabilities() was
> uncommented and hence is left so. Shouldn't there be a DomU-related TODO
> or FIXME?

Hm, yes, possibly.  I think limiting extended space availability to
the hardware domain only has been done "just" because we have no
extended capabilities to expose to domUs so far, and I don't think we
even setup the extended capability list in the domU case.

> ---
> v5: Don't use pci_find_ext_capability() in vpci_cleanup_capabilities().
>     Add assertion in vpci_reinit_ext_capabilities().
> v4: Make sure ->cleanup() and ->init() are invoked.
> v3: New.
> 
> --- a/xen/arch/x86/physdev.c
> +++ b/xen/arch/x86/physdev.c
> @@ -8,6 +8,8 @@
>  #include <xen/guest_access.h>
>  #include <xen/iocap.h>
>  #include <xen/serial.h>
> +#include <xen/vpci.h>
> +
>  #include <asm/current.h>
>  #include <asm/io_apic.h>
>  #include <asm/msi.h>
> @@ -169,8 +171,17 @@ int cf_check physdev_check_pci_extcfg(st
>  
>      ASSERT(pdev->seg == info->segment);
>      if ( pdev->bus >= info->start_bus && pdev->bus <= info->end_bus )
> +    {
> +        int rc;
> +
>          pci_check_extcfg(pdev);
>  
> +        rc = vpci_reinit_ext_capabilities(pdev);
> +        if ( rc )
> +            gprintk(XENLOG_ERR, "%pp(%pd): vPCI extcap reinit failed: %d\n",
> +                    &pdev->sbdf, pdev->domain, rc);
> +    }
> +
>      return 0;
>  }
>  #endif /* COMPAT */
> --- a/xen/drivers/vpci/cap.c
> +++ b/xen/drivers/vpci/cap.c
> @@ -285,13 +285,16 @@ static int vpci_init_ext_capability_list
>      return 0;
>  }
>  
> -int vpci_init_capabilities(struct pci_dev *pdev)
> +int vpci_init_capabilities(struct pci_dev *pdev, bool ext_only)
>  {
>      int rc;
>  
> -    rc = vpci_init_capability_list(pdev);
> -    if ( rc )
> -        return rc;
> +    if ( !ext_only )
> +    {
> +        rc = vpci_init_capability_list(pdev);
> +        if ( rc )
> +            return rc;
> +    }
>  
>      rc = vpci_init_ext_capability_list(pdev);
>      if ( rc )
> @@ -305,7 +308,7 @@ int vpci_init_capabilities(struct pci_de
>          unsigned int pos = 0;
>  
>          if ( !is_ext )
> -            pos = pci_find_cap_offset(pdev->sbdf, cap);
> +            pos = !ext_only ? pci_find_cap_offset(pdev->sbdf, cap) : 0;
>          else if ( is_hardware_domain(pdev->domain) )
>              pos = pci_find_ext_capability(pdev, cap);
>  
> @@ -349,22 +352,23 @@ int vpci_init_capabilities(struct pci_de
>      return 0;
>  }
>  
> -void vpci_cleanup_capabilities(struct pci_dev *pdev)
> +void vpci_cleanup_capabilities(struct pci_dev *pdev, bool ext_only)
>  {

You could short-circuit the function here, ie:

if ( ext_only && !is_hardware_domain(pdev->domain) )
    return;

But I'm not sure that would simplify the code of the function much?
Likewise for vpci_init_capabilities().

>      for ( unsigned int i = 0; i < NUM_VPCI_INIT; i++ )
>      {
>          const vpci_capability_t *capability = &__start_vpci_array[i];
>          const unsigned int cap = capability->id;
> -        unsigned int pos = 0;
>  
>          if ( !capability->cleanup )
>              continue;
>  
> -        if ( !capability->is_ext )
> -            pos = pci_find_cap_offset(pdev->sbdf, cap);
> -        else if ( is_hardware_domain(pdev->domain) )
> -            pos = pci_find_ext_capability(pdev, cap);
> -        if ( pos )
> +        /*
> +         * Cannot call pci_find_ext_capability() here, as extended config
> +         * space may (no longer) be accessible.
> +         */
> +        if ( capability->is_ext
> +             ? is_hardware_domain(pdev->domain)
> +             : !ext_only && pci_find_cap_offset(pdev->sbdf, cap) )

Given the changes you have done to the reBAR cleanup function, we
could even call capability->cleanup() on domUs, as the handler has to
deal with uninitialized capabilities either way?

>          {
>              int rc = capability->cleanup(pdev, false);
>  
> @@ -376,6 +380,28 @@ void vpci_cleanup_capabilities(struct pc
>      }
>  }
>  
> +int vpci_reinit_ext_capabilities(struct pci_dev *pdev)
> +{
> +    if ( !pdev->vpci )
> +        return 0;
> +
> +    /*
> +     * FIXME: DomU support is missing.  For already running domains we may
> +     * need to pause them around the entire re-evaluation of extended config
> +     * space accessibility.
> +     */
> +    if ( pdev->domain )
> +        ASSERT(pdev->domain == hardware_domain || pdev->domain == dom_io);

Is this to cope around races?  I don't think it's a valid state to
have pdev->vpci != NULL and pdev->domain == NULL?

Neither you can have pdev->domain == dom_io and pdev->vpci != NULL?

> +
> +    vpci_cleanup_capabilities(pdev, true);
> +
> +    if ( vpci_remove_registers(pdev->vpci, PCI_CFG_SPACE_SIZE,
> +                               PCI_CFG_SPACE_EXP_SIZE - PCI_CFG_SPACE_SIZE) )
> +        ASSERT_UNREACHABLE();

Ideally this would better be done the other way around.  We first
remove the handlers, and the cleanup the capabilities.  Just to ensure
no stray handler could end up having cached references to data that's
been freed by vpci_cleanup_capabilities().

And we should take the write_lock(&pdev->domain->pci_lock).

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 15:08:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 15:08:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245577.1544934 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxnpW-00005W-Ao; Wed, 04 Mar 2026 15:08:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245577.1544934; Wed, 04 Mar 2026 15:08: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 1vxnpW-00005P-8B; Wed, 04 Mar 2026 15:08:06 +0000
Received: by outflank-mailman (input) for mailman id 1245577;
 Wed, 04 Mar 2026 15:08:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YDHP=BE=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vxnpU-0007oB-N2
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 15:08:04 +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 f0975a6e-17db-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 16:08:02 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-48336a6e932so43019485e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 07:08:02 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439b0549600sm29368404f8f.35.2026.03.04.07.08.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Mar 2026 07:08: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: f0975a6e-17db-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772636882; x=1773241682; 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=n72m+QEc/gPGrAZ2170RYO1NvK3dfHMFAijzDzbtdbY=;
        b=iFXu8W6vTKrE4/Kv5A02HcHRfNzr5UafP6i/zP16o+m7Uy5DxUkQ8UXEfPnz3rkyFt
         9QHxrEokUzcHHfSBO/r0kyCHQIN1z/PCLLI+MwYtx0tbyTYhUjdknIxxFgkNeJKZM/8O
         UaoZOQOSVcqYtREZiFFWJb1xNMuuyXnoniUHGsTr0BvWgGSTAyjMDpudpw/ygvjs0tOm
         4W6IWK74S5vg8Aa027j4W3CX8kYEdK6zqgO0Z9KyDjEbxBMr8ZlNzBiDGzk/P8oGormd
         9glSoz30qNg6IOF8YFgcJHplQQgV6NmrX8rvhVeTDxMQKAdmJa0UdrD5SfRmcm9duaC9
         F0/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772636882; x=1773241682;
        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=n72m+QEc/gPGrAZ2170RYO1NvK3dfHMFAijzDzbtdbY=;
        b=bWxHaas0bjsX60TyQpeFVfc0WsXcfD2QLriHcJlHEhQxb2eTm54T/fkyYYZyXZkxMk
         1bqJCswfUnu9ZR/E+TubteQMSZx96hWxDwsOXc+d2/AddAGWfUEFAWGHt4G76yohhvCS
         XHtVZueevHkNRDdGxeg6pGW7+q63tGkWNAsKMKt7JJKwQ9fm5dTSnv+0DYEeA/IysNi7
         XoqxoJvNpd4FW+cxCQP9GWBto6p69hN514RSLoyRWv0WSW03WHqDco+YmntkbQI92c6a
         zP5IiXuf6+NdGVQIzvC3H4fYhQBKId8pzeS3UsaFugB5jhv62OSFioaEy82PXMWEoipl
         tKDw==
X-Forwarded-Encrypted: i=1; AJvYcCXe4yOnbwQfEjyjtQCkt4vB1hmfDJ9PB8hknUMv8THtpxW+rx53jE7pFDsdFI1jDNwfgujWnrBZkhw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyh8Wi1jp+PBltbgZSTaBOs59lXb4aladp2oBujuRWNvBvBwLGg
	bhv/9M83AyhW2+tAwXIv1MsfMDFqZ9cpoBVGVxNXtVUlFSFZvAacLdrY
X-Gm-Gg: ATEYQzyZC2ICB035B3ljaK2X2XaWDu6QfL2UwCjYAHGx1TPb7DRI9e/DWZ9dAkyqbye
	gJRWJXol99hH5xKJf+LqpIPJPb67huictciJrSmSFD7D9N/zS74NR+J7sSCvDiAcF5jNOdtxiIf
	vMM9MLtbnyqpXEQyk2i/vLXmVI318v2CZ30JScQq7YaGymD4hWyZdPCx7o9lHMed8Li5jwv4CK0
	+7+z2rSHnEcmr2t4K/7jOngMIFMJL+3cdN6mjdjsGZeG84r/IVB2K9RkJDqborIAdCkk259CUbp
	eUpnCGQPRQTF6VE+Wh9G15hsaDCGApU6MJkFIZud3qjiZDObZlOx0+EbrSTaAz0S2fQE20EYmBI
	/VsY/0gJHNng/4eUWPAdCjMdEhQjj6PUOkD4xuyxFU3IIraG6BqlHYozUc475Uot0qEWN+al/iL
	gYrEKCnBwn3kbElON+EObikFu82hnnlRQ74rzP9DtuGYOSC/GdyKM/Pl98wgD4SJHh1wEbeCPyh
	NM=
X-Received: by 2002:a05:600c:4e8b:b0:480:4a4f:c363 with SMTP id 5b1f17b1804b1-485198480d8mr41405255e9.9.1772636881929;
        Wed, 04 Mar 2026 07:08:01 -0800 (PST)
Message-ID: <32bd2cc9-86ee-4470-af7c-f52838e0c4e1@gmail.com>
Date: Wed, 4 Mar 2026 16:07:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 03/14] xen/riscv: introduce tracking of pending vCPU
 interrupts, part 1
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
 <a1954e9a30abace453f4604a47b43ecbcebe350a.1772016457.git.oleksii.kurochko@gmail.com>
 <6357ad3f-85c8-4fe4-a2c8-8b0a0a97f1b3@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <6357ad3f-85c8-4fe4-a2c8-8b0a0a97f1b3@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 3/3/26 2:35 PM, Jan Beulich wrote:
> On 26.02.2026 12:51, Oleksii Kurochko wrote:
>> Based on Linux kernel v6.16.0.
>> Note that smp_wmb() is used instead of smp_mb__before_atomic() as what
>> we want to guarantee that if a bit in irqs_pending_mask is obversable
>> that the correspondent bit in irqs_pending is observable too.
>>
>> Add lockless tracking of pending vCPU interrupts using atomic bitops.
>> Two bitmaps are introduced:
>>   - irqs_pending — interrupts currently pending for the vCPU
>>   - irqs_pending_mask — bits that have changed in irqs_pending
>>
>> The design follows a multi-producer, single-consumer model, where the
>> consumer is the vCPU itself. Producers may set bits in
>> irqs_pending_mask without a lock. Clearing bits in irqs_pending_mask is
>> performed only by the consumer via xchg(). The consumer must not write
>> to irqs_pending and must not act on bits that are not set in the mask.
>> Otherwise, extra synchronization should be provided.
>>
>> On RISC-V interrupts are not injected via guest registers, so pending
>> interrupts must be recorded in irqs_pending (using the new
>> vcpu_{un}set_interrupt() helpers) and flushed to the guest by updating
>> HVIP before returning control to the guest. The consumer side is
>> implemented in a follow-up patch.
>>
>> A barrier between updating irqs_pending and setting the corresponding
>> mask bit in vcpu_set_interrupt()/vcpu_unset_interrupt() guarantees
>> that if the consumer observes a mask bit set, the corresponding pending
>> bit is also visible. This prevents missed interrupts during the flush.
>>
>> It is possible that a guest could have pending bit in the hardware
>> register without being marked pending in irq_pending bitmap as:
>>    According to the RISC-V ISA specification:
>>      Bits hip.VSSIP and hie.VSSIE are the interrupt-pending and
>>      interrupt-enable  bits for VS-level software interrupts. VSSIP in hip
>>      is an alias (writable) of the same bit in hvip.
>>    Additionally:
>>      When bit 2 of hideleg is zero, vsip.SSIP and vsie.SSIE are read-only
>>      zeros. Else, vsip.SSIP and vsie.SSIE are aliases of hip.VSSIP and
>>      hie.VSSIE.
>> This means the guest may modify vsip.SSIP, which implicitly updates
>> hip.VSSIP and the bit being written with 1 would also trigger an interrupt
>> as according to the RISC-V spec:
>>    These conditions for an interrupt trap to occur must be evaluated in a
>>    bounded   amount of time from when an interrupt becomes, or ceases to be,
>>    pending in sip,  and must also be evaluated immediately following the
>>    execution of an SRET  instruction or an explicit write to a CSR on which
>>    these interrupt trap conditions expressly depend (including sip, sie and
>>    sstatus).
>> What means that IRQ_VS_SOFT must be synchronized separately, what is done
>> in vcpu_sync_interrupts(). Note, also, that IRQ_PMU_OVF would want to be
>> synced for the similar reason as IRQ_VS_SOFT, but isn't sync-ed now as
>> PMU isn't supported now.
>>
>> For the remaining VS-level interrupt types (IRQ_VS_TIMER and
>> IRQ_VS_EXT), the specification states they cannot be modified by the guest
>> and are read-only because of:
>>    Bits hip.VSEIP and hie.VSEIE are the interrupt-pending and interrupt-enable
>>    bits for VS-level external interrupts. VSEIP is read-only in hip, and is
>>    the logical-OR of these interrupt sources:
>>      • bit VSEIP of hvip;
>>      • the bit of hgeip selected by hstatus.VGEIN; and
>>      • any other platform-specific external interrupt signal directed to
>>        VS-level.
>>    Bits hip.VSTIP and hie.VSTIE are the interrupt-pending and interrupt-enable
>>    bits for VS-level timer interrupts. VSTIP is read-only in hip, and is the
>>    logical-OR of hvip.VSTIP and any other platform-specific timer interrupt
>>    signal directed to VS-level.
>> and
>>    When bit 10 of hideleg is zero, vsip.SEIP and vsie.SEIE are read-only zeros.
>>    Else, vsip.SEIP and vsie.SEIE are aliases of hip.VSEIP and hie.VSEIE.
>>
>>    When bit 6 of hideleg is zero, vsip.STIP and vsie.STIE are read-only zeros.
>>    Else, vsip.STIP and vsie.STIE are aliases of hip.VSTIP and hie.VSTIE.
>> and also,
>>    Bits sip.SEIP and sie.SEIE are the interrupt-pending and interrupt-enable
>>    bits for supervisor-level external interrupts. If implemented, SEIP is
>>    read-only in sip, and is set and cleared by the execution environment,
>>    typically through a platform-specific interrupt controller.
>>
>>    Bits sip.STIP and sie.STIE are the interrupt-pending and interrupt-enable
>>    bits for supervisor-level timer interrupts. If implemented, STIP is
>>    read-only in sip, and is set and cleared by the execution environment
>> Thus, for these interrupt types, it is sufficient to use vcpu_set_interrupt()
>> and vcpu_unset_interrupt(), and flush them during the call of
>> vcpu_flush_interrupts() (which is introduced in follow up patch).
>>
>> vcpu_sync_interrupts(), which is called just before entering the VM,
>> slightly bends the rule that the irqs_pending bit must be written
>> first, followed by updating the corresponding bit in irqs_pending_mask.
>> However, it still respects the core guarantee that the producer never
>> clears the mask and only writes to irqs_pending if it is the one that
>> flipped the corresponding mask bit from 0 to 1.
>> Moreover, since the consumer won't run concurrently because
>> vcpu_sync_interrupts() and the consumer path are going to be invoked
>> sequentially immediately before VM entry, it is safe to slightly relax
>> this ordering rule in vcpu_sync_interrupts().
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> ---
>> Changes in v6:
>>   - Drop for the moment:
>>         /* Read current HVIP and VSIE CSRs */
>>         v->arch.vsie = csr_read(CSR_VSIE);
>>     from vcpu_sync_interrupts() as it isn't used at the moment and will
>>     be introduced when a usage will be more clear.
> With this, shouldn't the RV32 related #ifdef in vcpu_sync_interrupts() also
> go away?

It could be done in this way. It's just a hint for a person who will add RV32
not to miss to update vcpu_sync_interrupts() properly. Lets drop that for now
too and deal with that during review if a person will miss to make correspondent
update of vcpu_sync_interrupts() for RV32.

>
>> +void vcpu_sync_interrupts(struct vcpu *v)
> The sole caller passes "current". Are other uses of this function planned?
> If not either "current" wants directly using here, or minimally the parameter
> wants renaming to "curr". In fact ...
>
>> +{
>> +    unsigned long hvip = csr_read(CSR_HVIP);
> ... this suggests it's unlikely for the function to be valid to call with
> other than "current".

Agree, I will drop v argument and use current inside vcpu_sync_interrupts().

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 15:15:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 15:15:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245592.1544945 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxnwS-0001jI-0w; Wed, 04 Mar 2026 15:15:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245592.1544945; Wed, 04 Mar 2026 15:15:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxnwR-0001jB-UH; Wed, 04 Mar 2026 15:15:15 +0000
Received: by outflank-mailman (input) for mailman id 1245592;
 Wed, 04 Mar 2026 15:15:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Xh4z=BE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxnwQ-0001j5-H3
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 15:15:14 +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 eebe7bf4-17dc-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 16:15:09 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4838c15e3cbso63626675e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 07:15: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-4851a82cdf7sm24196915e9.0.2026.03.04.07.15.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Mar 2026 07:15: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: eebe7bf4-17dc-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772637309; x=1773242109; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yX3yE1gNgEZzFEo3P5s6U8ni5U3DyiFcDvDdauRDwkk=;
        b=eDW2DyMwwwppWw6Zmd/bNxJNBa26id0+YSxvR8CAVX9mZuomP4uY/RY4XaEoNqbQ9d
         fFqsm6y9JCCwtyM1M0cWompjbH+FOieOnvzC5AQepHxWzmTUPOgrodB3VJkaUNkkpD9m
         zzt/07HrksGY/Uv67M0ajhdSQKJi9cphmId0KsNnxyDQiIQGJGpad3ZuJ7Tq37UkhpwS
         IwhIcOXr/Nf/U82JWL2UJuOTRapltT0zY1yg3BAlilLBnL+adwDB+6cL71SX+gbz+Fs9
         i49pluSLx0KctcGaKx5V2vDprx+ItRWp2WiU5nTpNSO9xvPqFd8k6y1I3UZIFI3zM331
         xoTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772637309; x=1773242109;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yX3yE1gNgEZzFEo3P5s6U8ni5U3DyiFcDvDdauRDwkk=;
        b=s+XUctOhz15bH/Tqam3FcMMmGPKGJy6SEM6twnPdNBUlQq0ahxO2uhrC1S4psGGBkk
         EYwa+T+ghKpPMH3kW2uVtYNFTzUdQ1tKnqdGQ2IeHHlTShAg2HZGgnALw1Czeyg5UVCV
         8go9JU3P1EE5AVoT1YR7mMuEb+tQnkhbXaA9hybKRCj4MpXBDb1DQXchEOZaPf0vjqKM
         ZUA5oIS7o8iK9NxCjBASF2nCn5YGNJTfLPSJy48W+pPKTxlneuQrNdDr6EyzBk/YRPK3
         DzyJc0A6GapAlGWinfspKNMVZRfPjn7HotWaT+ioX6u5UxB0ey5/onwkeqhvHgpk6w8c
         4aaQ==
X-Forwarded-Encrypted: i=1; AJvYcCXWjpgSat+Yak9wL92RsYFPOCI92yMclAdhKH3lGodG3uYnb4GMGz40HQWG2xNzZUYEkJ9qwPCGz3I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxPEVdSkQ6n2OyY96Za+h35yPPvj5GVv3bH+SNtcaNnihQEzwS8
	pF7c+/IHtpYXD9H/aT2GDSMnCOag2vWD/d8MkBdKuUg+2ngts4q8JUnPY+f4gTm5FA==
X-Gm-Gg: ATEYQzyHaUKe25NzBo4TEpBfOCt+PfDEovEG2b8zxNPw+Kec8xgtY644d5MaJXO62nn
	RV5XDg+upccJgWqAeMuF4lnDcUoY9qZIPk4KdHVTquWv4AWT4Mye6+kSDK1364uLxBHnvH4ruat
	vFZKEZ2J1rFUUP2VSS6F7jLxPfUG7h2ILEjYD/mYprXVF7c9XBJCqiR44rJP2NTxTQdWaEmiIfI
	3hCeOQ8ErU2oZgZfSLq6moLzn+sKehtwnrdtDhD012k6opA1VB9XvTix1E99EyhZsLd/+YqnOSE
	rdISlwd/pqJh1ijbm2mfmhYuBxgvT7BvQxqMKMaN43w77Num/n1Knrj+a5wu74u7MRUutNErxgh
	rLFYuruu2f7q9ZhHc/M5r9uwzsQKB6zzftPO/L94Xr42LSdPO28SGsCfKIP9z5MoxQ/D7UEtY5b
	lxM//ggi2MW0Xr2Ms9iKWBea+sHEGnWxePrp3jsG1CNgtS3r90UaoDU09uLt+1i2P/3xnKZfHGs
	mbuTefpBSWh2jo=
X-Received: by 2002:a05:600c:46cf:b0:475:de12:d3b5 with SMTP id 5b1f17b1804b1-485198cb8d3mr36295325e9.34.1772637308574;
        Wed, 04 Mar 2026 07:15:08 -0800 (PST)
Message-ID: <675ae59f-52fa-41a9-b15e-b889313a88ae@suse.com>
Date: Wed, 4 Mar 2026 16:15:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 01/14] xen/riscv: detect and store supported hypervisor
 CSR bits at boot
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
 <a17b6a117726904a9384dc7d9cc140672d3b0453.1772016457.git.oleksii.kurochko@gmail.com>
 <4b67f8cb-43d4-4f18-b2b6-156e21330887@suse.com>
 <7e1f3962-2dd0-4843-8976-40452437a52a@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: <7e1f3962-2dd0-4843-8976-40452437a52a@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.03.2026 15:54, Oleksii Kurochko wrote:
> On 3/3/26 1:23 PM, Jan Beulich wrote:
>> On 26.02.2026 12:51, Oleksii Kurochko wrote:
>>> +void __init init_csr_masks(void)
>>> +{
>>> +    /*
>>> +     * The mask specifies the bits that may be safely modified without
>>> +     * causing side effects.
>>> +     *
>>> +     * For example, registers such as henvcfg or hstateen0 contain WPRI
>>> +     * fields that must be preserved. Any write to the full register must
>>> +     * therefore retain the original values of those fields.
>>> +     */
>>> +#define INIT_CSR_MASK(csr, field, mask) do { \
>>> +        old = csr_read(CSR_##csr); \
>>> +        csr_write(CSR_##csr, (old & ~(mask)) | (mask)); \
>> I (now) agree csr_swap() can't be used here, but isn't the above
>>
>>      old = csr_read_set(CSR_##csr, mask);
>>
>> ?
> 
> Agree, csr_read_set() could be used.
> 
>>> +        csr_masks.field = csr_swap(CSR_##csr, old); \
>>> +    } while (0)
>>> +
>>> +    register_t old;
>> Since the macro uses the variable, this decl may better move up.
>>
>>> +    INIT_CSR_MASK(HEDELEG, hedeleg, ULONG_MAX);
>>> +    INIT_CSR_MASK(HIDELEG, hideleg, ULONG_MAX);
>>> +
>>> +    INIT_CSR_MASK(HENVCFG, henvcfg, _UL(0xE0000003000000FF));
>> This raw hex number (also the other one below) isn't quite nice. Can we have
>> a #define for this, please? It doesn't need to live in a header file if it's
>> not going to be used anywhere else.
> 
> Sure, would it be okay to define them inside this init_csr_masks() or at the top
> of the file would be better?

Either would work imo, as long as you don't expect other uses of these
constants. Personally I'd likely put them not at the top of the file, but
immediately ahead of the function.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 15:17:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 15:17:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245601.1544955 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxnyC-0002Ev-Cw; Wed, 04 Mar 2026 15:17:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245601.1544955; Wed, 04 Mar 2026 15:17:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxnyC-0002Eo-9f; Wed, 04 Mar 2026 15:17:04 +0000
Received: by outflank-mailman (input) for mailman id 1245601;
 Wed, 04 Mar 2026 15:17:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=bY7Q=BE=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vxnyB-0002Ei-5D
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 15:17:03 +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 317854a6-17dd-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 16:17:02 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DM4PR03MB5984.namprd03.prod.outlook.com (2603:10b6:5:38b::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.17; Wed, 4 Mar
 2026 15:16:57 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.016; Wed, 4 Mar 2026
 15:16: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: 317854a6-17dd-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DyL6cD1gVsx1x77O4iM6efS1qcqQcLg9FHTBEt3lnuaY4ii1+SU/LzOm/37ifSim7fJaHxzYQMqululll9xn8Yb08D5W2u2Ila4rB1/sZfp5JQtmYsqN57J0yhReO6Xqf0+eEstknp0TBuKx1KYri4YxEYKcJPBtJV/SE5eX3Sfqg5Es+iqjzEB+s5GU/1sMEmySspyq38WGdpp8dq1hSWtIbcLfGkkhZ4mv8Io2q9Pbtgmr9m93GoS0//ntcGCCfSvWUV2heVfAB6xKKjh892IvLGBcJWP0eJBNKJ1BdHZ0JubX9/l1xddv05JTXJcScT4bBxlMDZ5MY2NXTrKerQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8zWOvi79uAiRZPeyvtUEvGOvoBJzCu4sYVQ/d/Gt9Ms=;
 b=GW7pE1GLaYPBeEaKY1ft2SZqoOh/RAr/eHvAQVsoacPat5rhBQwv+V0BGIOFOAWtt38P1FBwEdP6J23V+iuZrUu36iVRFINpRl5w8kP/msWRm0P1JkVzyWad3w7zbPuixC7edffnSdTJKli6/c4ePfllhe/dlCPTPr2131zE0Hu5Xs1FoCCf66JF0qgEPMzp8UljlRgwiA4pdoKrt1TXoPhSMWLhb2vA17jlMqXsdefE+oTunPHwZ0dDaOeL2AlHm0+Jt+EWX9LbREj+1WmnvDeQJ1Qf6kxCy49uLEEiXjLnqr8g530iVEWu4idGNuFKvrcDDPfGU2QfkYan2Jrmbw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8zWOvi79uAiRZPeyvtUEvGOvoBJzCu4sYVQ/d/Gt9Ms=;
 b=p5ZeOkTHfh5Eb3JRtVm/klTBrhzRVgXKf0n8qp+UJGm4ncn21qD9R3ICjTrqOJjouXu6hY/FLZjOM2dfZ54l3x/kw5K6PG5mJRboLldg6OqLvEMyqBrUA1HgRike06nzZkY+Lg13T9iWbJPn3kus0W54eS5ru1upEOXRu7QYZG8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Mar 2026 16:16:53 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v1 4/6] vpci: add SR-IOV support for PVH Dom0
Message-ID: <aahM5QBet0Ehxxjm@macbook.local>
References: <cover.1753450965.git.mykyta_poturai@epam.com>
 <c5cd0e9cd75cacee2127c45635c999bd296853a7.1753450965.git.mykyta_poturai@epam.com>
 <aIdgJPTf17M0g-8m@macbook.local>
 <8da9f137-a897-4438-9524-85836e0170a1@epam.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <8da9f137-a897-4438-9524-85836e0170a1@epam.com>
X-ClientProxiedBy: MR1P264CA0172.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:55::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_|DM4PR03MB5984:EE_
X-MS-Office365-Filtering-Correlation-Id: 25d98dbe-6d64-421c-2959-08de7a011314
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:
	MiMhN0wxm3dEgsHMqp6hsMr0iuHx65QwoCVsJ2A+emSYPbQIjLYjHoOXEA/SYJnW1xavbAF83Aym/ADr12lHKK468cY+NIDlHRrt612GYWKae2Mw7mcIarc3awbqSh61k+qIwerj9ggma9VDlS7QHV6AQwevN5/5HZDntvGYJG/Zdk88TIdPMUNVYj7U9wVVCKaH8GLo5ya73kg3ro4xgD7xLMrg28LezgU7z7RqAw0lz1X3LJ3LAdpdE+EA6+lAUQKdsSAikO84XeCvcQLK3t/mN2Bk/FCsGsnnfTLp1XhxRkz3sGzEj5HWC6JaNInKmAPzUtnhWMWoPo6+0gqRx8f0RAiuRg5PJ8yq3cljKx6aicq8JyA8QLHtinnDQ/HUEVWBv0MpzQtjrgxDN3OD6jeZQzOrXX6KgoMiHGgqX3LRtflqfNKa9nzOjYVnqnV3khnVN04CoYmpffZrupGIf6zlz3JzPl1HwHSXMWFK3kYqE8/TTwby7y72hPHRcDfXLKubY+ke3MIuABt+3dT764nv4jsy90s35z8bpHTLzxKQyZiSHn2baXpu3fkCV2RMCbJfAhoWw89Bo6SoeqgyxBV7rPPYSbm1WFieewK2oJoYddF/hLqss7mEQ52y4wfJYMNhPu0nZ8HQAAslN8PW8lE7IDsjdkFE5TezLsZ39qMJ1uCOO8OZxZNxN/x1ZGbs
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UjBQenhtekpvQUkyWTRFbmFzL0lYbjRyZ3QxZnNKSkVUSWNLUVExL2FpcU1R?=
 =?utf-8?B?dkpsSlBzMUNIZGN1QlpVSXgwMzFQS2dQa0RyU09rTHFzQnpnb29zdEptVXlY?=
 =?utf-8?B?NS82b3VKa0s2dkYyUXB2QytPVDMraUljekg1MnlkakFJWWJRdUVsVXd3enBR?=
 =?utf-8?B?NUcvZGFYTW9HdHBMTkF3UDNrbnFScmM2aUVmNHQrYkxnR2pqQzNNc3JJVWZ0?=
 =?utf-8?B?RjYzb2RRVjBhN2hXL3o4UTZ3bkpDWDNHRldzU0xGd2MvYWFSQzZBUjJVWUQ4?=
 =?utf-8?B?amZDYktxeUNkTFlncysxRnVRNmJhSWNLaW1lcVBXb3gzMUp5SitkQVlvSGQ2?=
 =?utf-8?B?R2ZUYkZ1eWlVUzg3d0lnQ2lQdHo3SmY4UFBxRDhHVnFibWhGb3g4OGFvMWFv?=
 =?utf-8?B?N3JJTTVxbmE2dkNQeUFjeUxYdUhuMW5HcHhSaG5DOG91b3kyL3piYWxNV1dy?=
 =?utf-8?B?TDNoVWsxMXNodHdmVkIxWTlIVUdTbzVXaWkxOWxGWnRoVEJJMTNQTjRZd3ps?=
 =?utf-8?B?VWorRENZRE85SEp5cG5uU0lkcnAwcURBTXl3VlVNZjBxc1RBeWhGMlAwcTlr?=
 =?utf-8?B?YzZEWlgrb0k2SEZibk1Ga240M1VGK0tScUYvT1BCS0hUK2ZQOHY5RkdnRkUv?=
 =?utf-8?B?VThEcWw5NlZBakhKM3dLMjZuY1hlNkREdjVDV2YrSHpsMTloL0luTnd3Qk5E?=
 =?utf-8?B?Z1JuYitNRE5kTkhueG1janJZNWRqYjk0cjRZU1ZJV1c5bldNV1U5Zyt5QXdK?=
 =?utf-8?B?dUliY1EvWUpjV1pXbkV4c1d2RzVUTlZQMXpnYmZtTjNwaytIV3l2azQ1bXh5?=
 =?utf-8?B?NVNkVXFuRXVFK09DUUd5eUlMbGxkNkJZUVI0T3dGQ1g4ODgxcTkxQVhlNWs3?=
 =?utf-8?B?MzMybWdPRDhlRGExcnA5Uk40ZnFYUk9Bc0lSREI1SWpjdk4wOXp1TitUWDdo?=
 =?utf-8?B?aFhiWmVLSlVtNTJTblZmVE5BczZQQ2g3MVB5RHpiTDBVRndVdU1pMWxwem5l?=
 =?utf-8?B?akNNTGJrak5zalVHaUlpa2tBZG5XellkZXRHc2xGYlM0OFh4SDNSMlZWdEVi?=
 =?utf-8?B?cWZRRWhBcHpvdnNDcjV0QTR1Y2dWc2xOT2JXR1FKaUVySG9ERDJSWjNlRFVS?=
 =?utf-8?B?Y2lqWGQzRXRjVEt3SDZ4ZlVLeVZ2Vm1Lait6YlgwTlRSOFMzdE03TGgrSFJK?=
 =?utf-8?B?ellvOVBqakUva1VxcGZGd3N3ZHRuNXRkeElSdVpjd3cyUFU1Mkk5bFFoSlNB?=
 =?utf-8?B?NVZXRWVlemw1SmpFcWU4NU9tTndvbzJIQk1vZnFra0ZneCtEZU01am5KblRl?=
 =?utf-8?B?Vi9ZdGk5eEloUXFhZkdrSTNScS9razRsSkxWRGc4VWxjM09vN2NUbUUwWG5B?=
 =?utf-8?B?ZERLdXl4U0dMU0xaZXNUY0M5WlcwYjFKbVlQek1rNERvQUlWWnMyKzV0SXBQ?=
 =?utf-8?B?R2JCV2ZHNndLdUNCVWdwY3FZcVVEZDR0VVpWUTJkOWYzYkxyNGJzdDdSSVdZ?=
 =?utf-8?B?enVvK3VNa3hyWjhNdEswcUxFNnhvOTdpQTEwVUhpZUhuY0JTMW1TYTFDTmZl?=
 =?utf-8?B?VzJKY3Y0aVRQSXVINWc5SThmMDdvWVZLaThVQVlyeDZsa3Z2M2xYRVpiMmJs?=
 =?utf-8?B?UFppNHQyRTNhWktoaU12ZDBaMkJYNzVHWGxMTW5EQmZHZ2tnblFqZ3ZDc2Rx?=
 =?utf-8?B?Z3YxZExqSWRCb1FhMUlweHlFRG5nQVBlY2FYcTYxVjNHVXVUTUpWMFdTc1JH?=
 =?utf-8?B?VjVTczlkcysxMXBLM1NmeHdUSnQxbXl5MHJxQWFFV1VYdlZqMm0zVk9QYmJz?=
 =?utf-8?B?T3hVNlRhK1AzZ0FWRmxXTnpUV2xWejl6UW00M3Rtb0c4cXVjZ2E0R0pORmNy?=
 =?utf-8?B?TFFSMWUxOWFZLzdoOGFDeHpQL3dvaTBnZUVzWGRYbVFURmdZN2VlYmVma0pk?=
 =?utf-8?B?T05pWGI3M014czd4cTJReWJmbUFOa3FsOWRhUDlzQ2RGbDR6YXdUODE4Q2hP?=
 =?utf-8?B?MUNucURGK0E2NmxYR2N5a3RWY0N2N0JHMVV3QkVmcmlXQVhrTDdOZWlKV0FK?=
 =?utf-8?B?c0RUQ2Y0RFArbWFIa0U3VGlDMVBTcHlUQ0hPRjdLZFp4T0dldytWZ2ZVOFZh?=
 =?utf-8?B?SmNsdlJYM1ZkaEMyMEtaSlI5SGJSMVpON0tuNzZrQi9aQnRvdG4rejhWcVpD?=
 =?utf-8?B?THlYUXFyNUpCb0dpTHpvY3BjZmRUU2lVNnUvOHhYL01jdnc4MkpWcmszODlS?=
 =?utf-8?B?WVNEWGUyV3lUY3hhTjhqR29oenRUdldGTEJPUkFuWXdzeW5wNDVxTFlKZFE1?=
 =?utf-8?B?bytWMExjS0pMTVF0aHg5YUx2Tms3WkgzeGQzTXI4dm9ET2EyOVgxUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 25d98dbe-6d64-421c-2959-08de7a011314
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 15:16:56.8664
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: BbGTQJUF4LqetCMCp1BuM9x+OHJZTWv8avzxBI56UDPEUWarvZjjxm/JJnKb7BSlSEo/5BKV/KIieKv5GwBUgA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB5984

On Wed, Mar 04, 2026 at 08:43:17AM +0000, Mykyta Poturai wrote:
> On 7/28/25 14:33, Roger Pau Monné wrote:
> > On Fri, Jul 25, 2025 at 02:24:33PM +0000, Mykyta Poturai wrote:
> >> From: Stewart Hildebrand <stewart.hildebrand@amd.com>
> >>
> >> This code is expected to only be used by privileged domains,
> >> unprivileged domains should not get access to the SR-IOV capability.
> >>
> >> Implement RW handlers for PCI_SRIOV_CTRL register to dynamically
> >> map/unmap VF BARS. Recalculate BAR sizes before mapping VFs to account
> >> for possible changes in the system page size register.
> >>
> >> Relies on dom0 to enable SR-IOV and PHYSDEVOP to inform Xen about
> >> addition/removal of VFs.
> > 
> > Why I'm not opposed to allowing registration of devices using
> > PHYSDEVOP, can't Xen detect the addition of the VFs and add them
> > itself?
> > 
> > When I worked on this long time ago, the version of the series that I
> > posted had registration of the VFs done by Xen also:
> > 
> > https://lore.kernel.org/xen-devel/20180717094830.54806-12-roger.pau@citrix.com/
> > 
> >>
> >> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> >> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> >> ---
> >>   CHANGELOG.md              |   3 +-
> >>   SUPPORT.md                |   2 -
> >>   xen/drivers/vpci/Makefile |   2 +-
> >>   xen/drivers/vpci/header.c |   3 +
> >>   xen/drivers/vpci/sriov.c  | 235 ++++++++++++++++++++++++++++++++++++++
> >>   xen/drivers/vpci/vpci.c   |   1 +
> >>   xen/include/xen/vpci.h    |   7 +-
> >>   7 files changed, 247 insertions(+), 6 deletions(-)
> >>   create mode 100644 xen/drivers/vpci/sriov.c
> >>
> >> diff --git a/CHANGELOG.md b/CHANGELOG.md
> >> index 5f31ca08fe..7b0e8beb76 100644
> >> --- a/CHANGELOG.md
> >> +++ b/CHANGELOG.md
> >> @@ -23,8 +23,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/
> >>    - On x86:
> >>      - Option to attempt to fixup p2m page-faults on PVH dom0.
> >>      - Resizable BARs is supported for PVH dom0.
> >> -   - Support PCI passthrough for HVM domUs when dom0 is PVH (note SR-IOV
> >> -     capability usage is not yet supported on PVH dom0).
> >> +   - Support PCI passthrough for HVM domUs when dom0 is PVH.
> > 
> > Don't you need to move this out of the x86 specific section?
> > 
> > According to the cover letter you are testing on an ARM board, so this
> > probably needs to be put in a non-arch part of CHANGELOG?
> > 
> >>      - Smoke tests for the FreeBSD Xen builds in Cirrus CI.
> >>   
> >>    - On Arm:
> >> diff --git a/SUPPORT.md b/SUPPORT.md
> >> index 6a82a92189..830b598714 100644
> >> --- a/SUPPORT.md
> >> +++ b/SUPPORT.md
> >> @@ -170,8 +170,6 @@ unexpected behavior or issues on some hardware.
> >>   
> >>   At least the following features are missing on a PVH dom0:
> >>   
> >> -  * PCI SR-IOV.
> >> -
> >>     * Native NMI forwarding (nmi=dom0 command line option).
> >>   
> >>     * MCE handling.
> >> diff --git a/xen/drivers/vpci/Makefile b/xen/drivers/vpci/Makefile
> >> index a7c8a30a89..fe1e57b64d 100644
> >> --- a/xen/drivers/vpci/Makefile
> >> +++ b/xen/drivers/vpci/Makefile
> >> @@ -1,2 +1,2 @@
> >> -obj-y += vpci.o header.o rebar.o
> >> +obj-y += vpci.o header.o rebar.o sriov.o
> >>   obj-$(CONFIG_HAS_PCI_MSI) += msi.o msix.o
> >> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
> >> index f947f652cd..0a840c6dcc 100644
> >> --- a/xen/drivers/vpci/header.c
> >> +++ b/xen/drivers/vpci/header.c
> >> @@ -839,6 +839,9 @@ static int cf_check init_header(struct pci_dev *pdev)
> >>   
> >>       ASSERT(rw_is_write_locked(&pdev->domain->pci_lock));
> >>   
> >> +    if ( pdev->info.is_virtfn )
> >> +        return 0;
> >> +
> >>       switch ( pci_conf_read8(pdev->sbdf, PCI_HEADER_TYPE) & 0x7f )
> >>       {
> >>       case PCI_HEADER_TYPE_NORMAL:
> >> diff --git a/xen/drivers/vpci/sriov.c b/xen/drivers/vpci/sriov.c
> >> new file mode 100644
> >> index 0000000000..640430e3e9
> >> --- /dev/null
> >> +++ b/xen/drivers/vpci/sriov.c
> >> @@ -0,0 +1,235 @@
> >> +/* SPDX-License-Identifier: GPL-2.0-only */
> >> +/*
> >> + * Handlers for accesses to the SR-IOV capability structure.
> >> + *
> >> + * Copyright (C) 2018 Citrix Systems R&D
> > 
> > If there's a Citrix copyright header here, shouldn't there be a
> > matching Signed-off-by from someone at Citrix (I think that's likely
> > me)?
> > 
> > Otherwise if there's no content authored by a Citrix employee the
> > copyright notice must be removed.  We need to be careful with
> > copyright and attribution.
> > 
> > And in any case the date should be updated.
> > 
> 
> Can I add your SOB or is it better to remove the copyright? Looking at 
> the patches you provided, I think this ones were definitely based on 
> them, but there are also a lot of changes since then.

If it's based on the patches that I sent many years ago (2018),
then yes, you likely need to add my SoB.  Look like that way from the
copyright notice.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 15:23:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 15:23:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245613.1544964 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxo4m-00046T-5u; Wed, 04 Mar 2026 15:23:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245613.1544964; Wed, 04 Mar 2026 15: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 1vxo4m-00046M-34; Wed, 04 Mar 2026 15:23:52 +0000
Received: by outflank-mailman (input) for mailman id 1245613;
 Wed, 04 Mar 2026 15:23: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=bY7Q=BE=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vxo4l-00046D-DI
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 15:23:51 +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 221c5a84-17de-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 16:23:46 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH0PR03MB6576.namprd03.prod.outlook.com (2603:10b6:510:bd::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Wed, 4 Mar
 2026 15:23:41 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.016; Wed, 4 Mar 2026
 15: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>
X-Inumbo-ID: 221c5a84-17de-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VbkyTNPSRCM52UNnz/RrbYSaHcfDseT0h4UVDzqlBeLiE/jRvGIUjzi3W4AB/bej9pARRsrn85qk2yt65wUv8bNDxoxUU4BN7sRkRpb3uSSQBmjnLrHZZjibddaUw+ndnJiOrcR0fk+1L9YG/3VQ19ZV08+q//CRKOGn0lT/ifMkqeFldgYg5iCRcxpWU0g6C+Yf+A29MncbCbzvdCKG8Zk8t3Wcy0WEZ0f/Uaj0ovXllJ2EMGHz8qcgx7kMGmBMPsdJSaIK5zmbwGrzFG825u5u7IQ7WYsz7psqVmQP+sfdG4bACByn1PaNZQgnfZ5J4+SMOK6JMQ6v4+5LsHpVwQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7eDQGeM3BN14L0eXKMI26nHxKJwZ35+HWJqpeczVuNs=;
 b=F9gLIdhDtwfUT1Uzge/WVHuqwEeHmKhKOPVTI3hwF33jyNzL8sRDYS2MGyA7mY7hbIpw9Gnc+Wb1EGfHcM1XsKurKZ5jDAl+DEl3XmBjzwqZn5dYoXGj4/SRhAMwP7z7cYRgYCDgcDZbgHCptdRZ/VeyWlcf9X44OKEk9NJp9YZ+xYTFblhUzVoxalGhIE722ICPCoEg3xIhtG1u9/iMVMDA6U9UNkqs/XkeLzq0wqRDnetYQcxGSPxV5hgYuNCTwTtETIbmFDFsFdjUJQ36GbpXjpaC7rjMTuNqppoKZMEAgIXSqwsF0t/FgFkyg1wNCUyc6UMOAsmQzsl4FHHr0g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7eDQGeM3BN14L0eXKMI26nHxKJwZ35+HWJqpeczVuNs=;
 b=k+OmL9sv/Y42pP11/v3Fkzx1hmhM/oDEelTnRPN2Y8YS0rAva7+lFatbEcBhI0q3f7PznsAv9nYmwpGtf1K+tNrSr6LPGAH2CUt9N/2vuCGTRvVFOAQYnI48QBmfLmpbESFrcXy5alX76BeccttiB/mms00DeOhzQZ/TEQoQGds=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Mar 2026 16:23:37 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH v3] vpci/msix: check for BARs enabled in
 vpci_make_msix_hole
Message-ID: <aahOeefbhHq7IZZx@macbook.local>
References: <20260226025740.71673-1-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20260226025740.71673-1-stewart.hildebrand@amd.com>
X-ClientProxiedBy: MR1P264CA0018.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2e::23) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|PH0PR03MB6576:EE_
X-MS-Office365-Filtering-Correlation-Id: 4e1e8f29-b2ac-4667-ab49-08de7a020447
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:
	abt1ytA/XxOt+FKuA/79G7jI3yUXFQzuyu4/JSK8ID+FYI+bX7vGw0jhdIxiwr5vV9GXSf9nySGlKJnH04pO+IQe9revmIUqmnm/bxZsgvAIfxjCWWEZFhFUsbeqMWpMdplTEpMibIvAYhEoCtpCT2215zm06zzfUIkbL5j64ZwivtdpUKUt3jdRXSkTUGNhuXw3B7R47rKrWuqDuTWymlbagJY4HGjnHDq/dufOS793WhDccjy3AyX8xoz64A5WlRpm3xbaH/mOehzsp6WUXrkVVIUUY+1LmTKOlTv7oPieVI55xATnmt2zgx8BaS1npUxM60+YkE0y2VEI9A6BMC9hv/joE7TKgyz8hHkjqmzIlPDJHEvIwSI/eLhH5yJE5Ew93fvjwTJ33zxqoqxL5YM68+MJJp1ld0mU8JAWEN2KS1HE8yHxzmNT61sWuj1ySolVjHEwjA1tZ7NbdAuj+0TdVgx1/RvjLg2nzcduaNrDJL0GYrKTpki8vxnsbqYWfCfu4q5FEXuO7TZpuYn2WG5ioUDpLFfp4vydiGMRPpmZ/F8tOjXJq2quNkgBLfSPS7aRSqNNXY5xIOx2xt4ewWW//VZ24gQ3EgwUn5FzyGWiyzgaZ7x0g1bVYVVm/TTL58AQOGNThpS4awiIdQTdMkBLKWwWgiceR+608fpSaXP/0Hi75oR4Q0B6BJSNtNRVxl4vB/rCevZl7UOOiFh5upfcIVA0QScglnruha/m6JM=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?a3lmb2ZhOFRkRUJPMWlCTUJsS1k0YUE2K1BYajh3Vk9zVlVsRk1sYVVscWo1?=
 =?utf-8?B?ckFkWitxc3loblFmTWFEeXZNTXBHYm5SZDVMSEpkVWNET3grMFYxNHNXUWNl?=
 =?utf-8?B?S2RwQWppTW9yZGNGcmhDWTVwSUlndzdxZ1RXUUYyOWtQZGhoNi85VFBOLzIw?=
 =?utf-8?B?TENVWEhJYytYcnhVNEhSQzA5NXVVY3RkRS9yUC9jQU9PRm1TbFkvRE1kL1BH?=
 =?utf-8?B?cGxtS2Q5ZzdPdXVRNXFVTWo1ZjMwZDI4bmpFL1JxTlplRjdHV1h3VXBUcXpm?=
 =?utf-8?B?K3UwU1o5Rk8rMExGNGJLMm1POTliSUJGVWdKWG1vdFdSWDFnaytYOE5Ib0xZ?=
 =?utf-8?B?WFU3aEdnaWFobTNxeGtRSHVKRXc4MGY4emtxM2xyUUxtZlJvQngweWpIb0kw?=
 =?utf-8?B?OWpPQVh3NW4xTW5oS0Irb0doZVQ5NTFtZDFUeXFobVUwcWFnSXVjSTZuMG5v?=
 =?utf-8?B?dDAwdEhlc3dTZitKa3p3TlliZDljR1pDUVJSSlV2cFVyK2cxaUwyOEo0R1ZD?=
 =?utf-8?B?bktKWDZYRzZMSnA3NWtIZG1LMWM1LzRiK0k2UkFDSFE3YnlSaE5YWUFqbkdt?=
 =?utf-8?B?MEplUFppQS9RUUFZbjV4bk8rWndiT1JMaHEzbmhUQ3Q4RVBqM3llNmFpZkxn?=
 =?utf-8?B?MFBBeGZQK2xudTl3NVM0eTRrdC91WFNUcnl5UHN1bjBVS3IyeW1jL2g2dVFM?=
 =?utf-8?B?QThCUWRTOFhxL3BHbTRIM1prVmxwZ2FlUFRLVUVSVUMvOXNVZFc2WEQxcUFV?=
 =?utf-8?B?L0RPRG1Uck1OclU0dmVBdVUxcFlVR25RVm9NeDBwR3ErR0RCU3FORXdSd0Jh?=
 =?utf-8?B?WG00bU45ZkJ2WG5XSzVYbUZXQzZmWm1PVGRkN2FibTJUK3ZpMTJYWEpSbTkx?=
 =?utf-8?B?QUhXeXgzVHY4d0w3U2c3L0x6aHZOdXN5akx0cDJvTTAvLzdOZEhaSXBDY056?=
 =?utf-8?B?bTY3NWY4V2REN0QyYnhXOUhKRHhLZ3ZCZUJWdERORjhSMFVuZmowQXNJTG9l?=
 =?utf-8?B?ejhHNmdzZWtmL1NMV1BxSFVyVnFQaTMxMVV2QTJTcmF1ODM3NlRBaXFZMlk5?=
 =?utf-8?B?aWx0dHhWelpvcGVWU2llQkJYZU5INnJnVTBXblRYdGtyWUk1T1F4S2ZQVDhW?=
 =?utf-8?B?QkZycTR3WlpGZWRxY29JUWxsRy8xTEcrei9aREY1M0tmTXhMajB2US9meHJ1?=
 =?utf-8?B?VHoxazVWRkFNaUpZc0haREFaSFVxT0pkR2NTWVI2ckNwYXFnUlpVU0tDS0pW?=
 =?utf-8?B?SEEvM2hxT0tJbEpjeVkybmI1MEdNZnVWN0lkUTNBcUlmODh4V3NrTHQ2MlVQ?=
 =?utf-8?B?ZW1xQWJuZlV5ZFl1OTRMSHpwNFJlS1lQOE5Wa3dUYmpmT0VUNzBneUpROUNK?=
 =?utf-8?B?VG1VTzFDdFpFRkhXZDNrb1F6Zys0RjZCLzZ6SDE0TXZGOWo0QkZjK1BlQmVy?=
 =?utf-8?B?V3djWThSNnVuRm5JRksxWlFKQWFOVEhiL0JCOTloZzBhSFpnbXErNzMxT2wv?=
 =?utf-8?B?MkV1UmRsbXhQbTRCT2h3RXBZZWNBRlJlemNaS3BrRXNEbWFTSllBVU9qTDQr?=
 =?utf-8?B?UVh3SlFUYWxWT3FWR3FyTUc4bXdzNlJQOGtCVWFrYngxVll0OFh3cHgraVFh?=
 =?utf-8?B?dnlHaVJqQzVXN3dRWUR1K3QyV0Qza3N4RjVWTFVoY0NoS3VpR1YzcW1hQnhl?=
 =?utf-8?B?amZPbG8wV2F6TnM5WmdZeXlmRXJEN0lOMUtSL1RIY0Rka1l1elpZbG9iQjIr?=
 =?utf-8?B?NXJNdkI4VDNMREMwSnVQZ0Q1d3ltUi82endiblhJMnFPY2Z0ZHZwNFVpRFdM?=
 =?utf-8?B?T3Nvc0NqbXJ0aXFYV1ROUXFGcElSTUpIbGwrbkl3ZGJrZUhQazd4S1Yyem9L?=
 =?utf-8?B?OWtySkF3Tzh5b2VaZ2xDOG9jYWRDM0tjRE9tTWlQdUMyLzArQ2p0SjJEQUsr?=
 =?utf-8?B?aElKNnF2MEpoVjZCcWFqeUJwNnZPUnZ4VVpLMC9HYjZudSs3SnQ1T1RHRG9L?=
 =?utf-8?B?K1M2NE9NU2RKWEV2c2JCNjlPeHpCOTFXQU9DQXo3Z3F0Y0RBOHJrSkNqek5n?=
 =?utf-8?B?OVp2NWlPWjBuRGpOd3R2eXZKdFdkOVB3Q0x1dTdNcGVFeUdpL3VHbmxJa3J4?=
 =?utf-8?B?Ykc0Z3BuL1JiN1FEbmNGdDA1OENBWkRtOURRLzVRdHpXSzBaYjQwN0JUeDhR?=
 =?utf-8?B?cko4dzV3dzhVK0JjeW1UK2VNK0hJaEh6clQwdGhIRDc4eWlkblE5eHRYWmE4?=
 =?utf-8?B?cTZsZ3d3MkpHS0VaajZmbnQ2WXo3Mk5RZmt2SmFHcWR5dmZ3M3IwVTYwMnA4?=
 =?utf-8?B?NFkwTHltUEZmZU43WnY2QVJEblNDRWc3bGxIYXJMd21BOUdMb3RXZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4e1e8f29-b2ac-4667-ab49-08de7a020447
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 15:23:41.4612
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 7Sj5o31KoHTkf1GQQM3ipVJuuVuQr7ScFd8NIBv72ejXP+IAOeV61AJ9LvxdZXEYZMVKxnb2KI47iNkoSvfwWw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6576

On Wed, Feb 25, 2026 at 09:57:38PM -0500, Stewart Hildebrand wrote:
> A hotplugged PCI device may be added uninitialized. In particular,
> memory decoding might be disabled and the BARs might be zeroed. In this
> case, the BARs will not be mapped in p2m. However, vpci_make_msix_hole()
> unconditionally attempts to punch holes in p2m, leading to init_msix()
> failing:
> 
> (XEN) d0v0 0000:01:00.0: existing mapping (mfn: 1c1880 type: 0) at 0 clobbers MSIX MMIO area
> (XEN) d0 0000:01:00.0: init legacy cap 17 fail rc=-17, mask it
> 
> vpci_make_msix_hole() should only attempt to punch holes if the BARs
> containing the MSI-X/PBA tables are mapped in p2m. Introduce a helper
> for checking if a BAR is enabled, and add a check for the situation
> inside vpci_make_msix_hole().
> 
> As a result of the newly introduced checks in vpci_make_msix_hole(),
> move the call to vpci_make_msix_hole() within modify_decoding() to after
> setting ->enabled.
> 
> Fixes: ee2eb6849d50 ("vpci: Refactor REGISTER_VPCI_INIT")
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>

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

Thanks.


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 15:32:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 15:32:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245631.1544975 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxoD0-0005zP-3G; Wed, 04 Mar 2026 15:32:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245631.1544975; Wed, 04 Mar 2026 15:32: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 1vxoCz-0005zI-Vk; Wed, 04 Mar 2026 15:32:21 +0000
Received: by outflank-mailman (input) for mailman id 1245631;
 Wed, 04 Mar 2026 15:32: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=bY7Q=BE=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vxoCy-0005yS-8s
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 15:32:20 +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 53aca5bd-17df-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 16:32:18 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by LV8PR03MB7325.namprd03.prod.outlook.com (2603:10b6:408:188::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.17; Wed, 4 Mar
 2026 15:32:14 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.016; Wed, 4 Mar 2026
 15:32:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 53aca5bd-17df-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VWAJIsLcxWvypx2GnfaeE8md8UzmTA1ILTpWTutYwf86HGTvhyky2ehCnpUSn91mHx3v/lEX/HgzQGx2tTFVbi3k0vIw/PTX9pgwsuo5Z+HN6Ifa08W1ELFocHQXYfE9bDO3BMR0SgnG3AdlMUq0KEQJzzFTsHKIy0RT5yVLGDx3RGDaqEIlqPRTjRK7ukWtevro5hCTkkyhpzUWQAvZsTBNwp7rHUffkYPL2pdd5rqFeGk1ips2mqJFHOrPeciR7YA6KOusSsNWAmyMUXrotZ+g6xD57pyBccw2CT8x5/2D7AF2zVGJkeedM2U1fjH9uUIpjpDYJYZiyq9S9TXUgA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+vZjbpBAy9Snmo62R0tvM+zuvAYrogOKQcidS+/0Y9o=;
 b=p7gyEIdr8MIKQ9wiHC3VGSW6yuHeCakormIljCA4huyR9dFTVjrHkLOju0A3i5G7sGFkdahaLqZuuQHXeC47jm2n+AbWk84QupY0rACqgGJ4oSL0dHjzTm8rnmKELZXDGBXJbg6hq8jQ9IGY8aLmMugnsbZQ2k2xw9mosaf43kPvUO6pkmZm9spCzh80yXqZMsI4TPOQ3hWoSmv/YmeVcyjnYlDix+QakMxzelTnOt+7FSTT8TmtcRkeTo18xFJmFCHGEwsMdv2jsRwaMu/s/8ncNXZ3yr0cMUo4dHAd0bZbsqk9DAp7L5C4vjrS0tQ+GuoMRpyYC4XgiAwJ+ugOAQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+vZjbpBAy9Snmo62R0tvM+zuvAYrogOKQcidS+/0Y9o=;
 b=hIWnuMpE6s0fiXmhqF0VgFLeYgkTvWilE5DHm0I4HcEVUzI5H844GA0/Zu3wxhbymvIdyzTNndzhKbdQfFRnVSFKDJFcbc+keAxBHKpGYHAO+qy1IcG2UWCvuJLIv7lbVeU+J3vsaySjCcROsoLINMyKSqAS9BYW817OavXz99Q=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Mar 2026 16:32:11 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Ariadne Conill <ariadne@ariadne.space>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Steven Noonan <steven@edera.dev>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] xen/vpci: do not use pci_sanitize_bar_memory for domU
Message-ID: <aahQe_rQlBrjQlCh@macbook.local>
References: <20260224231235.6277-1-ariadne@ariadne.space>
 <1d832f36-d22e-42c6-996c-d09c06376b8b@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <1d832f36-d22e-42c6-996c-d09c06376b8b@suse.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_|LV8PR03MB7325:EE_
X-MS-Office365-Filtering-Correlation-Id: b4b1599a-6006-43e7-cd82-08de7a03360d
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:
	k0byp1qlmkHNUWfjfLZOtUl+qPw2n+SgFALBiMsDzp+bWS7QIKSfXVLWeLp6v4wzgPzla4UNt7khqgVEvtqqea/YIaR9Wx5uFdLRZCyT0c0uSDn3pH8vzfAB8YzXKSMSOb0CAvUs9c0hRwiLkYFm/SF18kWmqFxH0pKXKAjLgUPVGBpriXUREpeQjbsXiKPv4QmAkLydrRPUXDzTvEctY94n8wUxdcfsxAqVWdOB/gxAOOxDqxfKLOCd1lZjjmDaN+NeEWWPKfhLDxvGRF7uhCwTpGUaAtVIynj7rH83bpCGZiy/bnPDcnRsjpNvhHQvCMYuWHLbjoLRT0yosEH4KjIvROsQp7HiHyKmJp4q7xr33osF16y9ASx0QdK7wYaChtcwY/UW3RXbhKi87bG8mEykerwOk+Kz7OGVrz0hWTBRpX2b2FWlDFGUFDAvxusTUkycR5VtQ5BD3ZiXlNgl7c4KzIzOILsgpR6hYppPnUL+jXnlsk9H5sCS9wjP7p4HsIF6umS4HPuQusoppo+KnDYfSikanSWAy3BRKJxBw1ZhlRf1CuYR613Uf8wLNizbSf6iCopg25fR1Dx156q0T55YN1xrQ6iiaYcXUNKnWbID6E2fx6Ikd2BrA1qy1Nn1n9WnUXQ+P02IzleAdcV7kIZ3XMQzibCy8KrOccqczMMCHQGTyJKYz58jiJww2N1hkIc003BCUvnLz020l6+RSkBojjCVZ3Ghalx+OKMFcWU=
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?aFREcW1uQ2xiaWxrU3I4TDgzSEo2amVZbGYxbjZHK3BvSzNBUVBrK1Fzc3Uw?=
 =?utf-8?B?TWJIVjRMZGVOTmc0bStjNEdZRHUvR1doZGJIbnFrU2tGWVRDWTd6YlJUeUp1?=
 =?utf-8?B?TXRpZmhQc0hHUUJIQVhjUmlFYW9lR2xZMFFiaWhKS05qYUg5U0JWYmRIbThy?=
 =?utf-8?B?djdIbG9zaVhud0dQRkRkZGUybE9PM1pFWk5QZVF5cEJsT1NiRGJIbGJqMjJh?=
 =?utf-8?B?bUxoYmJha200OHM2cThINE4vR2dhRWpQU3pLQjVSVzR1Z1lvTUcxS3Vhdktp?=
 =?utf-8?B?Y0ZvUVJGczE0NERKZ1ppM2IwdlVUQnQrY3k5WUtwL0F4aXlaWUdBNlAya3Jm?=
 =?utf-8?B?VC9qblNLSElYU2MyQ1dGenFldTg5WUNGcllKMGVobG9wZXo1YkVJbWNKMEF1?=
 =?utf-8?B?UUJXUklCYkJkdnlhVlJVUVd1VVpwZ2VmRHQzTnNlN2ZGWDRmakFVRU80Z0dx?=
 =?utf-8?B?QnRVaGt4YnhrRnNGNlhiWlU1NGlsaG1GbnRSckNDdElRVVZuKy9sd1JRbEdw?=
 =?utf-8?B?a0lFWEtlamZpOXR5MEE4MnF2SjFCTXh5Rk5lN0dOdW5FQlJEbFRQQnhjcHlp?=
 =?utf-8?B?Nmt4MDBua0pvdEY3UEpVWDZ1bHEzQWtDNVZlaGczQWFoNGpwSStkdGZhRlNk?=
 =?utf-8?B?QWRFSmYySXlVeEJCMTNkanpld1ZhYjk3bDI4eVZlTVByV1JhWTR1RG1RYzJj?=
 =?utf-8?B?d1hwcTFqeXNJOENlcUZ1Rzd1NlJTdnEvOGZTRmNmZGF1emtjdU1RaEFGNzUr?=
 =?utf-8?B?aGk3VTZVQ0JiaVNLYmlhR0JLcDhtcDFFbzBGUEZuL1JsdkZ1K0IvWUNUTWF5?=
 =?utf-8?B?cnhyaWlnN3hOM2FXRHcwMTRhNE5vS1dHUFp3VndDMVlYM2lsci9mZFAzK3Nq?=
 =?utf-8?B?NFhyV0NSVnM5aTk2d2pOSUV6U21DY1hlbHp4ZVVXN0VVSmdmSnp3cm9NdFpD?=
 =?utf-8?B?KzJJbDFLcXlsSGwrdDF3UUo4RVJuVVAwRmw1dmJzMkgwSUF6ZFhZY0dJMkxo?=
 =?utf-8?B?MXJMNHVzRXNOWHI3NHlqbGdYdkJyQUx4UXhIUXpzTzVnQ0FlWmgvVG1TK2FZ?=
 =?utf-8?B?YlRWK2FSczd3MDMrVjNFWjFtQVdDVG5QVVFOOHZxRWpwVmI0THhZbHU5ajVM?=
 =?utf-8?B?eFZ3cGhDOFVHWXFIMU84U0tNSndDZ3A4WmNla2lWTE1MVXczZVN3QWd5cnJT?=
 =?utf-8?B?QWNWZmlhakhwWWY0Z1h4TG5lRXhxUUwvT0J5UjBLK2xEcTg5T3czd0FCWHZn?=
 =?utf-8?B?R3JjTUxOOTg5ZkVzREtxQmlqVXNzVTY4M045QmEzYVZSLzFPTHZYNW81eHJ4?=
 =?utf-8?B?d0wvNXM5d2RBZTg0ZXpPVmRvdjFrenczTzd4cHcreGE2TlZ6VXpRSjYzdG91?=
 =?utf-8?B?bEdxbTdRRnV5aVBzTDhTVW9kR3VKcTlTbHlqRU1MVERFeXFjVDJYTTQyYmFp?=
 =?utf-8?B?OFA0VnoyREN3TC9BWHI0eXpnUWw1dEMwZm1LOUllS3lqcGJtMkxMM01Cc0lV?=
 =?utf-8?B?NGRYczNiVndETkU4ZndHWnFHbFJ6bVpRR3dMOXptaHBZdDlmT0hTL0tnb3FJ?=
 =?utf-8?B?ajBXOGdKUEUzZ3k0MngzZUV3YWpnaHJuSkxDRjFoTnNJaVZiVUdXNUVBSHVP?=
 =?utf-8?B?SnBQZVNNZEdQRzhLSHJVMktEdWtjbUNwV0JXaFZrNmtsakkvQXhMQ245TkVD?=
 =?utf-8?B?cWRqNDFXMWFsWWRoNGFPUEg5SzRMTVYyZ1p2OTJSaWJYaHdhM0hBQ3N3TVdM?=
 =?utf-8?B?akV1eEdNSTVreXphZEZNNUd6S293R2NPU050eXpPRjN3V3A1N3dJaG1OZk5p?=
 =?utf-8?B?MTQwQVVPRnlkdEJ4L1h3azlCRWxjMllqMkc4dW1VdlkyNWZEYml5T2k2UEJN?=
 =?utf-8?B?dS92cGZRVzFRNTNZdVduQXExd01PWXJKMWFHWEpQckNPNU51d1Vmb2VpN3Vh?=
 =?utf-8?B?OVptNzY5T0JGaitIM3VhTHA2L3pUTWtoVXBaTmV5djUvNXhvamZFUkRBcXpG?=
 =?utf-8?B?T3c1RnFLRlRsVlQyb2xFNW11NHhwVE5keGExTFdHMEtHSmpZNDFZSElsMG1s?=
 =?utf-8?B?cFYzamx0NUlRWGdnTUh4OUFaWW1KV0UvL1NnS0RxV1kzMUNTMnYwSUs4MHBZ?=
 =?utf-8?B?dWt6UzRWN2VQbTc1MkJxZFdUN2dpLzIvUmN3YlFzRG4rcjBLK3c3c3I2NjM3?=
 =?utf-8?B?ODNQMC9TNmViN0xRMWtSS2VFNmJuMVFpYWk0RUh5cTljd2ZtTkNlTFptZzJy?=
 =?utf-8?B?WTZ5eEZpdElwRlNJQU9sdlpqdlBwZ2M3RGo3aVlQNlVWSXB0eGg5T0E1RDI5?=
 =?utf-8?B?R1Q3Ym5ESHpOWDJSOUtqcFlXQi9BZXhzK3oveUlJTXFrKzZXQ29HZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b4b1599a-6006-43e7-cd82-08de7a03360d
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 15:32:14.5856
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: hbIgkKscqeK990mSJlZPbSIL5dPH8QIO/54a65SBn1yF1pqOoEsrp0zef5aHAkRwql+ONcQLqMUtQZaXi50EsA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR03MB7325

On Wed, Feb 25, 2026 at 04:44:09PM +0100, Jan Beulich wrote:
> On 25.02.2026 00:12, Ariadne Conill wrote:
> > From: Steven Noonan <steven@edera.dev>
> > 
> > This function should only be used for the hardware domain, because it
> > compares addresses against the host e820 map.
> 
> The same is true for its sibling function, pci_check_bar(). For both the
> question is whether skipping is the right thing, or whether for DomU-s
> checking against their memory map is what is needed instead.

Well, the usage of pci_check_bar() from modify_bars() is slightly
different: it does get called with the BAR host addresses (not the
guest ones).  So the check will work as expected, albeit given a domU
cannot change the BAR host addresses the check is likely redundant,
but not strictly wrong.

Checking against the memory map for domUs would be complicated, as the
guest can play many games with that memory map.

> > --- a/xen/drivers/vpci/header.c
> > +++ b/xen/drivers/vpci/header.c
> > @@ -394,13 +394,15 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
> >              }
> >          }
> >  
> > -        rc = pci_sanitize_bar_memory(bar->mem);
> > -        if ( rc )
> > -        {
> > -            gprintk(XENLOG_WARNING,
> > -                    "%pp: failed to sanitize BAR#%u memory: %d\n",
> > -                    &pdev->sbdf, i, rc);
> > -            return rc;
> > +        if (is_hardware_domain(pdev->domain)) {
> 
> Nit: Style (see surrounding code you alter).
> 
> > +            rc = pci_sanitize_bar_memory(mem);
> > +            if ( rc )
> > +            {
> > +                gprintk(XENLOG_WARNING,
> > +                        "%pp: failed to sanitize BAR#%u memory: %d\n",
> > +                        &pdev->sbdf, i, rc);
> > +                return rc;
> > +            }
> 
> To avoid the need for re-indentation here (reducing churn) you may want
> to leverage that rc is 0 ahead of the call to pci_sanitize_bar_memory().
> I.e. you could make just the call conditional, without touching anything
> else.

You could also introduce an early continue, and leave the check(s)
below applicable to the hardware domain only.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 15:35:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 15:35:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245640.1544985 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxoFd-0006Xt-FG; Wed, 04 Mar 2026 15:35:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245640.1544985; Wed, 04 Mar 2026 15:35:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxoFd-0006Xm-C2; Wed, 04 Mar 2026 15:35:05 +0000
Received: by outflank-mailman (input) for mailman id 1245640;
 Wed, 04 Mar 2026 15:35:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hSGG=BE=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1vxoFb-0006Xd-SY
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 15:35:03 +0000
Received: from BN8PR05CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c110::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b371d114-17df-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 16:35:01 +0100 (CET)
Received: from BYAPR03CA0019.namprd03.prod.outlook.com (2603:10b6:a02:a8::32)
 by DS4PR12MB9659.namprd12.prod.outlook.com (2603:10b6:8:27f::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Wed, 4 Mar
 2026 15:34:51 +0000
Received: from SJ5PEPF000001E8.namprd05.prod.outlook.com
 (2603:10b6:a02:a8:cafe::9e) by BYAPR03CA0019.outlook.office365.com
 (2603:10b6:a02:a8::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.23 via Frontend Transport; Wed,
 4 Mar 2026 15:34:52 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ5PEPF000001E8.mail.protection.outlook.com (10.167.242.196) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Wed, 4 Mar 2026 15:34:50 +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, 4 Mar
 2026 09:34:50 -0600
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, 4 Mar
 2026 09:34:50 -0600
Received: from [172.30.142.83] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 4 Mar 2026 09:34:48 -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: b371d114-17df-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=R/7Y7+GAyHDyHGdEBQPPGKjbDif470GR7YRyk+oo2rK3aO9Ztc37t+3VcxqtEruoQKwciyrCNBEjaukdzoXWuNODooPL5FzZgiEMGjTea+ax/aKTukqoankG2zRsyUhBxV1ckiIKfXzrJxwieqN0A5TKPR0Y08w4Q3cLi/kDcUjOLs9iMh9PJfFlfCsuT4vXRWoYwGgQdfoIriPZ72OuKH87DuMeLJRAqoXo0go7RzmjyX1RFlhBQMaCoaVvkOK3qteCnbr55C8luqeePGVUC8GyIwEEJG6UoCadmiiE1ChTCjFIP/XTODuqvhtKZyCZ0CvSl7CtAe/tEnoOL9e0Vw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2qnyNU8K9XOSeW8hicrLiTi+a+m+bbxwcRWJIQliUBo=;
 b=cI6Kw/VFNvpGMJsGTL59tmEBenhbtXrcuicRGSUPePdac8ljRLj0EYHZTzTydWgdXW+V444htlPeJ/6tSSxgQElkzZdzryXx/H1yenDzH9jISl75ZXXzn5LWJ25I4G5x7xo43salDOSVMMR40YRCDmXVV/NoKdRV/gqTYIq7Q3dmYQD3M2XoZ01BRF56KcNqsDWQUg38/U5laM1Dg+cRjsmx+aTD7FF41oFPIQ9ShmJc2lyHcRvuwj+6hZd4Xb/Ux+UBkECYTTqJ89QBR+WA+ECY5kcaN3BKBjR8g0LCWqGoPY8EwoSDZYHLwPP6zn20g13a+96Gfoydrv/5oNOFsw==
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=2qnyNU8K9XOSeW8hicrLiTi+a+m+bbxwcRWJIQliUBo=;
 b=u2tW3IJMB01mjigaiarvP2rxD4QQpdxd+IbqulsROEJge2wPP3bknGikMWGd4gU2ezgCyCpEQVGS7w5cO8bnQV+qTfAalJh/ZnPPTYwjBIAkUFFjxYHTudUHxwQOfkzagIvJNP+Xc+VcrYTS3W2Txf6yM6FI1UuZQe3EgpacTZo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <726e088f-0090-4e00-a511-465d88b1e3ad@amd.com>
Date: Wed, 4 Mar 2026 10:34:55 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 4/6] vpci: add SR-IOV support for PVH Dom0
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Oleksii
 Kurochko <oleksii.kurochko@gmail.com>, Community Manager
	<community.manager@xenproject.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1753450965.git.mykyta_poturai@epam.com>
 <c5cd0e9cd75cacee2127c45635c999bd296853a7.1753450965.git.mykyta_poturai@epam.com>
 <aIdgJPTf17M0g-8m@macbook.local>
 <8da9f137-a897-4438-9524-85836e0170a1@epam.com>
 <aahM5QBet0Ehxxjm@macbook.local>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <aahM5QBet0Ehxxjm@macbook.local>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001E8:EE_|DS4PR12MB9659:EE_
X-MS-Office365-Filtering-Correlation-Id: f04a01ae-ee66-4839-d3e5-08de7a039368
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|376014|7416014|36860700016|13003099007|7053199007;
X-Microsoft-Antispam-Message-Info:
	rze3z7YJNsWKnBT93vxuR9/TVlLFAV31UcjPw9jCF0fvEDj7m4jwyFry4G+cOPxRuCZBQTZktnBBUH1sDd7IyUPaAup51ZMBwMocHqAGuuuWQPnSAay6tZD1/HPQVjjwz9aX0pO7KzY2Gw/YYYUauX4OQoCXrdDX4pTdTE7PrF+ybznHdl+wTLEEY05dhG3nskf2+EtUB2aBwnFOevSOqqXkDvPgrdQmxt5D6UJ2iBnaW5o+ygyr8xI5Jh+Dqt+ZGEZaUv1bKhuT300N/A/RiUcIfla7X8uNgmdbn/GtROHPNDmatGPFmAK+I7C4foihFsz/dYrvNS7pJTgdU8Iq3JbiLqxJf+npMHeAhbU+mI5WVRgKoqgJMF/13ceANlN3D8y/5pQPGw3NJpsbziIpbw5SouVU2SNf38SdtS7TGVE+sKgmGY7WaetHQozu7Nn0aiPFqm9WCW2i73/6jHBpz6vkGyPLe6kmJMk4dwyHsswS5lCPnkXlxKdeIe/TrAVXakKE+uIReWDWWkDMKSk4CSnralmzK1nw8Zh+IM3HNFH4sO731PRi6yQGK0PErFkE/kqy13rjLHVEeWiDPL4qbgPnX2FJEEaSDz8C5uzbo28Hux5hlsFA+bI1bnx546v9buNj0Xy9Jbt14lKuC3kkUhSUbKSOsgxxXfYxPFQkkKOA7EInUY7RhGol0M9RRCVLDOPiupnUEARXbWpY0afhqmlhSbrLa3vt6feT/EEZ94Q=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(7416014)(36860700016)(13003099007)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	8AwXFBBTsLSnPVOGA+gJ7etEJCJtXqsKYh7K4HhIxCR2YG9PfKtZab1J+8yVS2j6RL75BYNAM4GaGhTbVvo9Zu+++F1JrtlOnWXkionKWxa58NSYmNQ9jRqIuLL4qYHWP+pt6EcdnukvmC83vwHhReoOw5uAJrkO8PBUkWFXyyD0PClTE/RO6tPcd7xdAuQYRLc77zHQeRgPLcPpt5kH3wQxx8cNCKwFfzlYtLqrjt48NTNfhrFFuej49ghw2DyBl8wvnyfXFarHyfejbn3DUVxMBlAtUCj6jYDcEUp5B6+fFbiSDQeCZi5D3GUEw8/94X93XKd3gwFN+tVXldE1CSlR7tTRqdhOvtq4XEcyAn1QxqQMZ8hvq6yip7RRNoKV7BQCwqoLvMz7WxI6cM710FUGUMSPb586SVF2yVVoimM+jqt0FYE2dOasvGajVp1C
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 15:34:50.8940
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f04a01ae-ee66-4839-d3e5-08de7a039368
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF000001E8.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9659

On 3/4/26 10:16, Roger Pau Monné wrote:
> On Wed, Mar 04, 2026 at 08:43:17AM +0000, Mykyta Poturai wrote:
>> On 7/28/25 14:33, Roger Pau Monné wrote:
>>> On Fri, Jul 25, 2025 at 02:24:33PM +0000, Mykyta Poturai wrote:
>>>> From: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>>>
>>>> This code is expected to only be used by privileged domains,
>>>> unprivileged domains should not get access to the SR-IOV capability.
>>>>
>>>> Implement RW handlers for PCI_SRIOV_CTRL register to dynamically
>>>> map/unmap VF BARS. Recalculate BAR sizes before mapping VFs to account
>>>> for possible changes in the system page size register.
>>>>
>>>> Relies on dom0 to enable SR-IOV and PHYSDEVOP to inform Xen about
>>>> addition/removal of VFs.
>>>
>>> Why I'm not opposed to allowing registration of devices using
>>> PHYSDEVOP, can't Xen detect the addition of the VFs and add them
>>> itself?
>>>
>>> When I worked on this long time ago, the version of the series that I
>>> posted had registration of the VFs done by Xen also:
>>>
>>> https://lore.kernel.org/xen-devel/20180717094830.54806-12-roger.pau@citrix.com/
>>>
>>>>
>>>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>>> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
>>>> ---
>>>>   CHANGELOG.md              |   3 +-
>>>>   SUPPORT.md                |   2 -
>>>>   xen/drivers/vpci/Makefile |   2 +-
>>>>   xen/drivers/vpci/header.c |   3 +
>>>>   xen/drivers/vpci/sriov.c  | 235 ++++++++++++++++++++++++++++++++++++++
>>>>   xen/drivers/vpci/vpci.c   |   1 +
>>>>   xen/include/xen/vpci.h    |   7 +-
>>>>   7 files changed, 247 insertions(+), 6 deletions(-)
>>>>   create mode 100644 xen/drivers/vpci/sriov.c
>>>>
>>>> diff --git a/CHANGELOG.md b/CHANGELOG.md
>>>> index 5f31ca08fe..7b0e8beb76 100644
>>>> --- a/CHANGELOG.md
>>>> +++ b/CHANGELOG.md
>>>> @@ -23,8 +23,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/
>>>>    - On x86:
>>>>      - Option to attempt to fixup p2m page-faults on PVH dom0.
>>>>      - Resizable BARs is supported for PVH dom0.
>>>> -   - Support PCI passthrough for HVM domUs when dom0 is PVH (note SR-IOV
>>>> -     capability usage is not yet supported on PVH dom0).
>>>> +   - Support PCI passthrough for HVM domUs when dom0 is PVH.
>>>
>>> Don't you need to move this out of the x86 specific section?
>>>
>>> According to the cover letter you are testing on an ARM board, so this
>>> probably needs to be put in a non-arch part of CHANGELOG?
>>>
>>>>      - Smoke tests for the FreeBSD Xen builds in Cirrus CI.
>>>>   
>>>>    - On Arm:
>>>> diff --git a/SUPPORT.md b/SUPPORT.md
>>>> index 6a82a92189..830b598714 100644
>>>> --- a/SUPPORT.md
>>>> +++ b/SUPPORT.md
>>>> @@ -170,8 +170,6 @@ unexpected behavior or issues on some hardware.
>>>>   
>>>>   At least the following features are missing on a PVH dom0:
>>>>   
>>>> -  * PCI SR-IOV.
>>>> -
>>>>     * Native NMI forwarding (nmi=dom0 command line option).
>>>>   
>>>>     * MCE handling.
>>>> diff --git a/xen/drivers/vpci/Makefile b/xen/drivers/vpci/Makefile
>>>> index a7c8a30a89..fe1e57b64d 100644
>>>> --- a/xen/drivers/vpci/Makefile
>>>> +++ b/xen/drivers/vpci/Makefile
>>>> @@ -1,2 +1,2 @@
>>>> -obj-y += vpci.o header.o rebar.o
>>>> +obj-y += vpci.o header.o rebar.o sriov.o
>>>>   obj-$(CONFIG_HAS_PCI_MSI) += msi.o msix.o
>>>> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
>>>> index f947f652cd..0a840c6dcc 100644
>>>> --- a/xen/drivers/vpci/header.c
>>>> +++ b/xen/drivers/vpci/header.c
>>>> @@ -839,6 +839,9 @@ static int cf_check init_header(struct pci_dev *pdev)
>>>>   
>>>>       ASSERT(rw_is_write_locked(&pdev->domain->pci_lock));
>>>>   
>>>> +    if ( pdev->info.is_virtfn )
>>>> +        return 0;
>>>> +
>>>>       switch ( pci_conf_read8(pdev->sbdf, PCI_HEADER_TYPE) & 0x7f )
>>>>       {
>>>>       case PCI_HEADER_TYPE_NORMAL:
>>>> diff --git a/xen/drivers/vpci/sriov.c b/xen/drivers/vpci/sriov.c
>>>> new file mode 100644
>>>> index 0000000000..640430e3e9
>>>> --- /dev/null
>>>> +++ b/xen/drivers/vpci/sriov.c
>>>> @@ -0,0 +1,235 @@
>>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>>> +/*
>>>> + * Handlers for accesses to the SR-IOV capability structure.
>>>> + *
>>>> + * Copyright (C) 2018 Citrix Systems R&D
>>>
>>> If there's a Citrix copyright header here, shouldn't there be a
>>> matching Signed-off-by from someone at Citrix (I think that's likely
>>> me)?
>>>
>>> Otherwise if there's no content authored by a Citrix employee the
>>> copyright notice must be removed.  We need to be careful with
>>> copyright and attribution.
>>>
>>> And in any case the date should be updated.
>>>
>>
>> Can I add your SOB or is it better to remove the copyright? Looking at 
>> the patches you provided, I think this ones were definitely based on 
>> them, but there are also a lot of changes since then.
> 
> If it's based on the patches that I sent many years ago (2018),
> then yes, you likely need to add my SoB.  Look like that way from the
> copyright notice.
> 
> Thanks, Roger.

A bit of context here: When I worked on this, I used Roger's sriov.c from [1] as
a starting point. Unfortunately, during my haste of development, I neglected to
preserve authorship/Signed-off-by, and didn't get back to addressing it before I
shared the branch with Mykyta. So yes, at minimum Roger's S-o-b should be
re-added (likely as the first S-o-b), and potentially even make Roger author.

[1] https://lore.kernel.org/xen-devel/20180717094830.54806-12-roger.pau@citrix.com/


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 15:39:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 15:39:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245653.1544995 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxoJN-0007OI-2y; Wed, 04 Mar 2026 15:38:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245653.1544995; Wed, 04 Mar 2026 15:38:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxoJN-0007OB-05; Wed, 04 Mar 2026 15:38:57 +0000
Received: by outflank-mailman (input) for mailman id 1245653;
 Wed, 04 Mar 2026 15:38:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=bY7Q=BE=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vxoJL-0007O5-QT
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 15:38:55 +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 3fcf1a75-17e0-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 16:38:54 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA1PR03MB6354.namprd03.prod.outlook.com (2603:10b6:806:1b5::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Wed, 4 Mar
 2026 15:38:49 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.016; Wed, 4 Mar 2026
 15:38:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3fcf1a75-17e0-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lLRIeppK4R45mskrmzkA0YT9Sl6xcEXicRxy3vI/4veyc/DLgc+fccfcIHF5Fi6qTOU4gduBGNln4WhKcJNqo2saftxPBauzn7IYJrUhKan0oY8tjAx9uh8gfJzkl6PUPbxiSI+jhRfVD8P2Whof5PqoajcUqTZd78Duhe9nRnXyLxo4V0IA2WiEL+A0JSr+5E6ZAnuVtIni/6LtIy/rRLZCsArWuZJoVuFJj3Hge0y2RNDutaRQOyUHXDOeAREyF9fowgap+PjYh3D5SayqHd/eDpjAOPvu+gtdsocidZfogRW+YGT3kwhqjZwwnFPvmrbTyOO1zbAolRFjSGZgqQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9JXynPD0+Hi+BE1VZ+yaXhtAgc15KDOeqO9w/iTbPH8=;
 b=RO0oR8kkEVew0/JBy5KYFnt4c5gnubRXfDRZG+FxG/P+aDpyR1IyVNLGXu2zKg29Z0KiEucMSodeAbDQmM74FPlIysuk+xfrR5u1c3NEXTp9AUB4HsaonFKcWxGbR22y9HZbB622SQx6UXpkzfBWfw0kX3YVB9BOoTyorZ6wN49D2GwFaxtZlNZwPYAJnWuLwWGv6+tt3XLV7L+nluiQzu7a7dLwm/KhzuIEdGP19BXqdRe272ZH6c6b1JuI1mYae+s0IVff+eq3ye834FVfT4oDHZTt9Y1XQhYPvwXX5qYKIN5mEF5e9IhzJnoD6jCCwt8kEqVaiZnmrDzVPv2PlQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9JXynPD0+Hi+BE1VZ+yaXhtAgc15KDOeqO9w/iTbPH8=;
 b=lBDHPwThgt37ozDuAQvf/DejlxEq1rk68rFE/xRGhA3rq0fI2P4ZW4t/NYhlzPNyuE/E3SurRZLO9LXCrTw2/OZdBdzh7m6HC38ewbullETeIETIsC09ahBxNU+oh8uia/8Y1D406D7Z92sotFlUttDrNEEX4CO1wda58jrZasQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Mar 2026 16:38:46 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH] domain: use unsigned loop induction variable in
 complete_domain_destroy()
Message-ID: <aahSBk--J_xqEzOq@macbook.local>
References: <7af56fa6-4254-4704-9843-a0d099e6bb0b@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <7af56fa6-4254-4704-9843-a0d099e6bb0b@suse.com>
X-ClientProxiedBy: MR1P264CA0122.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:50::32) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA1PR03MB6354:EE_
X-MS-Office365-Filtering-Correlation-Id: 76d1fb2e-b4e6-4c5f-d603-08de7a042170
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:
	YL0N+R7IC9+I+ocIDRHt7jWW6icF4RrWZlD/ZnMEPFCcmYU7sc0Am0Gbsm4YG/XXqnkTodQg9jYKSRhYsfKRi3LKWIWR5KwlUzojESwipQnQ6v2eZp6g64y9DCkmA6uRaNsr8CFj1YOxF4TzUbiPpHS5aNdAOjuRxQ6Ngz7Ppq3DYk9tvN3ftHfYdJIYk3uEPqp8D2LhdwLzHeE3BoZ3kIKf/Tg2SwiVzo/0bUm+WqQl2cYCxFCQ3UHaDshAY/JPF0I06xj6mWqCdcd510QCgMV2GQeTNyA8W5IJP7K1vl/OlR2uBwxKaxKYsdmNFQvN/z8SSUE3YCIdV+kGHX3h3PsnP8b00uPIaeDZ88LukW6Nflf7utbCPOIMd5OzS4/7N1dnDapACbVZxLTYaPU6cOPQmwleyO/o60/Xk+by+KMIItAV/ev09u44Npl24LuYSKF3e7WiVX2IWIMywTickqb/tqSMxkJvLM7PkHTTOM6ATZ/kOt2kQ5ysTkqg4hGZc8BTwrh/WHcB/wNklvtuQpCUGEcKOQB+wwnVoWXIzn41EwcHmIH9Hz4KSKNBQOum03jhrTmEael1PCrQAOEBtgglPdqVTWBTldq7N92a8Vp8XULC6m33d+xV3m/73sg642Ta5782bCuI+9x9IfFDNrSUWJ3agCuLhysihoeW2FENqnxh8/Oh+6HIoXtiXkycodAVowE+gvOvwpsICxG4ed9Siaoq/TejQtkVjjopDFo=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aENDbXViYWYvQXdoQXNySHNqWHZRanM3TSsvSmltRlY3WEhudHR1aUwwVVZY?=
 =?utf-8?B?OTN5UTJGR3RCSGlrUUk3VnJ0T0luVnFZSlBGOWNvMUpYMjZ1THltZTVPOTJ3?=
 =?utf-8?B?ZHNpcEEzMkpidmh2MElJM2U4ZCttTnR6Y3puQXZEZjZ0dVlkN2RkbTdkaXQ5?=
 =?utf-8?B?VGhQSUdqTW9rZCt6OXMveTFHcGVPQmFaZCthWmdxWjBSWkhFdzVMVnNkVWlS?=
 =?utf-8?B?WlZhamk1NmhwZ0NEcThRSzBFbnNSakMvTUlxNFdzdWkrR1BVc2ZvT2YrVDVn?=
 =?utf-8?B?RXpZL05UQzZCQ1JlZTM4K2EwTTR3LytWS0tJNHZKNjlDZi9EUjlOTUg2VjVM?=
 =?utf-8?B?SXBZTld5L1JyL241NUI3VlhYV1NkTm1sRngvQ2p4NmZwdnZOSUdDanB6RW8z?=
 =?utf-8?B?Q3BJdlEvbWRlb0hHUUVvNlBsaWR5OVZHT2xxb1RMb3k0N2RyZzdGRTVqdFFF?=
 =?utf-8?B?VUJPNE41emFYOE5jSUFHZzAyQ0VzLzZkcUVTcTJXdXVXR1BJYTBPb2hCdTcr?=
 =?utf-8?B?ek1Ub081eTZIN2hyUDQvZ3RTM1hFWmNPOG4yT1dKTmNtOHdSeDhGVVV5a3dH?=
 =?utf-8?B?MG1LMlRIZ002QzluOWNzM1hZd3QrQldWTXBrMUJNcVZXQS81NkVaK2NXaGxQ?=
 =?utf-8?B?VWxHdE9LT1JQMGc2SWJ5VXlUYzRmYm9mRGlPTDFaTkswM0VUL0svckNzUVNk?=
 =?utf-8?B?V1oxWmdjK1FIbkIrYjBVTklDL1ljbzMzZzRsZDUvclVzMHJPaU40YlNSNVJZ?=
 =?utf-8?B?T2tBMWVNSkN1OXBVTzBJVE5UOXZabEVKWWl2dzZuZnN3WTZEdlVTMUZVa2ho?=
 =?utf-8?B?Y3R4MUJQYWVjdUVTVWxYWXBUeFo5OTlwTitpcmcvZWg4eEJMUWI4Sk9NNU9n?=
 =?utf-8?B?eGtWcHF4MHVjRTFIMU84NjFLWUlqdFhXbGVBVXNYZnlwb1BkemVScThIV25n?=
 =?utf-8?B?QVpUK2F4cXp1RGE3YmpKaCtCYXRzZnA4bmpRMXc1bUV5OUY5OFdmYTU5QlJN?=
 =?utf-8?B?dXgrbjZYQjQzSHU0RjhBQXRUbXpqSmlCTlJYbXdYNjZ5TmxXSXgyN3FnanR3?=
 =?utf-8?B?UVoxVFZOZDlwSzRwRlR4VkFRM3BkYUlnblJkanlrUVZoT2F3MzNIajBSTnVM?=
 =?utf-8?B?MWhQeUoyYWl2VXIyYWRBenBHWkdhbFk2bjhmUmdHemNxOWl0RXM4OEtFVWVi?=
 =?utf-8?B?T1hKL0hvODdPRlN4ZWJQdXZmc0QrZzNhc3N6d1UwcnJpbCsyL2xEUTlrV01T?=
 =?utf-8?B?S09ISitWSjNZQUlydG81aHZkdXB4NjRQMkpBWHhkNFZaVHkzRVBkRFBWbnF5?=
 =?utf-8?B?OGtVSm1GK1lZM1lSV0QzQ08wZEwxTlZMZUs5bmtWeTNub1krelJLNGtRNUNV?=
 =?utf-8?B?bGViOTlGQ0w1RkgySGwwQ0U2d0lWYWZWK0pCaGIwQ0t3MEdFQjBwVkN4a2lP?=
 =?utf-8?B?c1dhcmdRd0VwS3p4SlQxSXI0RFE4THpMOGN5eTRjeXJ6YzZtVjFPSHFjTUQr?=
 =?utf-8?B?OEFLV1pDaFVKc081UUN0Uys5emVPZXYzTjJVelp0bVZmeFhpOW1rdzhKbURR?=
 =?utf-8?B?VE13VXJJUVNYVGg2bS9pbjJIN1lPOWYvajZVdGF5UldTWXM2UThDbUord05p?=
 =?utf-8?B?ZG1zMWhDWjdDdDBreDJQTXJ1ZHcvRmM2NStlaWJzSGVxbC94SGdvWFhFbnNy?=
 =?utf-8?B?Q25OamJTSmtwMkZiV3Z4eVdKZWRxUE5taG9LTGdKRHlGRkRZTWg4dTgvMm5a?=
 =?utf-8?B?M2lUR1lVYWlyalZOcFdkdU9NQmR1L3pTTVgyTDBuRVAwYmd5U05aNVh6ZmRr?=
 =?utf-8?B?ZkU5QUpsYng3TlVjTlMrSHROcWhmOVBDcy9PeDZsSHVsTnVMYTJlSjQ3ZGFW?=
 =?utf-8?B?SnBmRktnaUthWU1DQzdMQVljMGw0ZHpyU01nZFBDZzV3OW5ySi9GSzh0bzBI?=
 =?utf-8?B?OUlpK1JIZHdVQ2F6eUVTRVNmcWFMcmFwd1pOcndaS0J2WHBoRy9MTG1XSVJw?=
 =?utf-8?B?bVdGYVd4NkMxcXFQU1RvdHZDU2VwNG10RjVZZ3pHN2pWSlk0Y2RJeGFzbkFO?=
 =?utf-8?B?amZmZTV4dFRmS1JadEFhR0VDOG1QWmxtOUtLQ2VVMVY2Q0s1aUtWOXRQUjFG?=
 =?utf-8?B?SWNBbFhNV2NDNjR3S1JSb1B5SWV5d3FCTnFHQ2xXOVZ2NHh3TEdzRXZEckpq?=
 =?utf-8?B?MnBRR1dHWUxmMkFPNk1GQlpScFZkbGtXSGc5OGx6R0NJdUV4aEgyTjhpalFJ?=
 =?utf-8?B?TFhzZW5QZEpBdlZNYlFwdnl0UTkxclN6RXhudG1xcTVnV1dSR0M1V3EzNXFa?=
 =?utf-8?B?amtBUjIzbzE3Tlg3bzhsVHV0UkF2V25KVFIybVJoKzF2anpBYU9jQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 76d1fb2e-b4e6-4c5f-d603-08de7a042170
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 15:38:49.5400
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: cuNxWUF2qlPOak7o0fUdxf3j29TJ07GxQSaXwfSZhAAyJ6Z3eaTLR6F5SUfi19M2N2p1E6ADJNh0/LMG8rtPVA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6354

On Thu, Feb 26, 2026 at 10:01:45AM +0100, Jan Beulich wrote:
> Using plain (signed) int variables as array indexes can be unhelpful on at
> least x86, where the compiler may see the need to insert sign-extension
> insns (strictly speaking it should be able to avoid that when the loop
> continuation condition says >= 0, but that's not generally the case even
> with gcc15).
> 
> Observed effects with gcc15 (will of course vary with compiler version and
> level of optimization):
> - on x86, one less preserved register in use, yet due to sub-optimal
>   choice of register variables still a small code size increase (%r12
>   isn't a good choice when it's used for base-without-index addressing, as
>   it requires a SIB byte which other registers wouldn't require),
> - on Arm64 code size decreases, albeit that's eaten up by padding which is
>   being inserted ahead of a few labels,
> - on Arm32 code size increases for a reason I didn't fully understand (my
>   ability to read Arm assembly is still somewhat limited).
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -1475,7 +1475,7 @@ static void cf_check complete_domain_des
>  {
>      struct domain *d = container_of(head, struct domain, rcu);
>      struct vcpu *v;
> -    int i;
> +    unsigned int i;
>  
>      /*
>       * Flush all state for the vCPU previously having run on the current CPU.
> @@ -1485,7 +1485,7 @@ static void cf_check complete_domain_des
>       */
>      sync_local_execstate();
>  
> -    for ( i = d->max_vcpus - 1; i >= 0; i-- )
> +    for ( i = d->max_vcpus; i-- > 0; )

Is there any reason we need to do those loops backwards?

I would rather do:

for ( i = 0; i < d->max_vcpus; i++ )

?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 15:39:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 15:39:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245654.1545005 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxoJV-0007dt-AQ; Wed, 04 Mar 2026 15:39:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245654.1545005; Wed, 04 Mar 2026 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 1vxoJV-0007dm-6J; Wed, 04 Mar 2026 15:39:05 +0000
Received: by outflank-mailman (input) for mailman id 1245654;
 Wed, 04 Mar 2026 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=Xh4z=BE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxoJU-0007O5-E0
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 15:39:04 +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 459160dc-17e0-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 16:39:03 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4837584120eso52408505e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 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
 ffacd0b85a97d-439b0549600sm29576163f8f.35.2026.03.04.07.39.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Mar 2026 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: 459160dc-17e0-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772638743; x=1773243543; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QNWsCIeGZRbprrIy/0SsmSPOdGwM07nDurlIE+0tk1o=;
        b=fIyfA2jJhaa/XRQgIiFm68b5U9n87lbihXB3gl/BYWY61YA32rTts+VyR+ipNQw6+v
         8xbwvlgOQAdUDXKW2CQbZ6I472Npq88yqvhArWT5DcPS3okF/46rbU2wMLETHG0NDEct
         UHKGHZJ8bWAAutNADu1boIbYfXoDkFdY32aGYzdQ3iSKIWinf8gUk3N7nukTuOIqRqJE
         R1vfRv+qRjvU/GRiKqgDFz6CBc6w1fn/Hx5T8+yAHMQMwJugy7Z7xE4bViZG7NqAEwoz
         pAb/GKwyNv9My0O8FKBdLcxget7Jh+omQeHpfs7g0LnJ1hLwfOuIaXlttR5JbFQDSWqX
         A7BA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772638743; x=1773243543;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QNWsCIeGZRbprrIy/0SsmSPOdGwM07nDurlIE+0tk1o=;
        b=Gvemt4bfe8jf9glHXrPa8pSQT9GF8A/lW8CKiwHkxeiYVu4yBIstlscoHfm3ZKCx6q
         CIEvMxgmoyI2jMOq5ZQ5z1ThZz13WKgyoSgbxebjfsvz3FdDbHTNnXYZ/jDgw9CECbPR
         oyI0lwyoxggqi8Ce4rWtzQPQdilFCw5SlDvRioN3D6wnjJO5hn1XeLWhT7NUwRpzf4m6
         ZM2gpQY9DGUH0YS82FlTw0YElOIWpyNvWPb5/neorR4f6wIeITZHKGa5QY6DmzCbmHNe
         EJ6Qs4AMMBU1NoltArvGSMXYm2Wi+B7Mit3Hu9SX/l7dDvUIYAWzx5AntApdc/04qpcG
         Prdg==
X-Gm-Message-State: AOJu0YyxBjARIQOk8W88YNFONOQf+yCjkMuUxsOnM9ZRegudV62HXOsQ
	na1z2D131gH6obKEbozFwt5qseORZWyEWgA8FOzuUPAbqFRanEt87BYwbnBsV4BZ0w==
X-Gm-Gg: ATEYQzz0QFNmTWu85EHqLdv0+WNR0bUN3Fs7GwKWFXdqv8v9gb6hZSbXpqNvsZWaHqQ
	gpAOphbc6yLRRadgv2x+/JzxM+bc5DCPbuH++bSnEgDiGuC5AT9fQ7M0I02DLN1P53F/eRcgG4X
	G26KWh7GjiOqvvoADHRCggcOz9x8QBXYDdobMxQpaDZOqWcsBYXf6Ik0rmRac7f2/vZ7Uusnigp
	qazkje/uks52wcFPy4+KabDlib5Fi0G3Bj/ZZsFxgV/Tu0DPQBO7sJfRG4kThPy3qxr8IYhaNWp
	upYwBYZ7gAUF9txc1wWmX6TC3XTZyqn+fnAYfN+REPo/TQjrL6rnJpkzqazpTof0UgRNMInNYyI
	3ptKlWJbuklyJvOdVsdqKH+OKyS6OwU8JdBXJ0GmjOYa38rZNoAwABs69SLFyKKY7kTjuvczbNa
	1LrX0l6eLIBWl395coRayQanfwkVhUq8EDTuWYA2/oLirggApMBt6vJtkhyf6QUm81iStkbxJHT
	Uq6C9wERSvmF8c=
X-Received: by 2002:a05:600c:1c26:b0:483:71f7:2796 with SMTP id 5b1f17b1804b1-4851982e8bcmr42106625e9.10.1772638742475;
        Wed, 04 Mar 2026 07:39:02 -0800 (PST)
Message-ID: <7d7b75b7-80c4-4c23-8678-b33f4c90132c@suse.com>
Date: Wed, 4 Mar 2026 16:39:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 5/5] vPCI: re-init extended-capabilities when MMCFG
 availability changed
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@suse.com>
 <9f1fcbfc-e7b6-4ef3-8f58-c88f9667d606@suse.com>
 <aahKkV2csf28Y0YC@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aahKkV2csf28Y0YC@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.03.2026 16:06, Roger Pau Monné wrote:
> On Wed, Feb 25, 2026 at 12:44:44PM +0100, Jan Beulich wrote:
>> When Dom0 informs us about MMCFG usability, this may change whether
>> extended capabilities are available (accessible) for devices. Zap what
>> might be on record, and re-initialize things.
>>
>> No synchronization is added for the case where devices may already be in
>> use. That'll need sorting when (a) DomU support was added and (b) DomU-s
>> may run already while Dom0 / hwdom still boots (dom0less, Hyperlaunch).
>>
>> vpci_cleanup_capabilities() also shouldn't have used
>> pci_find_ext_capability(), as already when the function was introduced
>> extended config space may not have been (properly) accessible anymore,
>> no matter whether it was during init. Extended capability cleanup hooks
>> need to cope with being called when the respective capability doesn't
>> exist (and hence the corresponding ->init() hook was never called).
>>
>> Fixes: 70e6dace747e ("vpci: Use cleanup to free capability resource during deassign")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> vpci_reinit_ext_capabilities()'es return value is checked only to log an
>> error; it doesn't feel quite right to fail the hypercall because of this.
>> Roger brought up the idea of de-assigning the device in such a case, but
>> if a driver doesn't use extended capabilities the device would likely
>> continue to work fine, for Dom0 this probably wouldn't be quite right
>> anyway, and it's also unclear whether calling deassign_device() could be
>> done from this context. Something like what pci_check_disable_device()
>> does may be an option, if we really think we need to "break" the device.
> 
> We may want to add a note there, stating that we have considered all
> possible options, and hiding the capability and hoping the owner
> domain would continue to work as expected seems the less bad of all of
> them?

I'll see what I can do.

>> The use of is_hardware_domain() in vpci_cleanup_capabilities() was
>> uncommented and hence is left so. Shouldn't there be a DomU-related TODO
>> or FIXME?
> 
> Hm, yes, possibly.  I think limiting extended space availability to
> the hardware domain only has been done "just" because we have no
> extended capabilities to expose to domUs so far, and I don't think we
> even setup the extended capability list in the domU case.

Considering how many things there are to be done for DomU support, I
think it would help if every place where e.g. is_hardware_domain() is
used only as surrogate would be properly annotated. Or perhaps properly
named predicates could be introduced right away, so one can actually go
hunt for all of them. Then again is_hardware_domain() is also something
one can go hunt for.

>> @@ -349,22 +352,23 @@ int vpci_init_capabilities(struct pci_de
>>      return 0;
>>  }
>>  
>> -void vpci_cleanup_capabilities(struct pci_dev *pdev)
>> +void vpci_cleanup_capabilities(struct pci_dev *pdev, bool ext_only)
>>  {
> 
> You could short-circuit the function here, ie:
> 
> if ( ext_only && !is_hardware_domain(pdev->domain) )
>     return;
> 
> But I'm not sure that would simplify the code of the function much?
> Likewise for vpci_init_capabilities().

Such a short-circuit would need replacing / dropping once DomU support is
added. I was hoping the chosen arrangement would make for a little less
churn at that time. I'll listen to your advice, though, just that the
question gives the impression you're not quite sure either.

>>      for ( unsigned int i = 0; i < NUM_VPCI_INIT; i++ )
>>      {
>>          const vpci_capability_t *capability = &__start_vpci_array[i];
>>          const unsigned int cap = capability->id;
>> -        unsigned int pos = 0;
>>  
>>          if ( !capability->cleanup )
>>              continue;
>>  
>> -        if ( !capability->is_ext )
>> -            pos = pci_find_cap_offset(pdev->sbdf, cap);
>> -        else if ( is_hardware_domain(pdev->domain) )
>> -            pos = pci_find_ext_capability(pdev, cap);
>> -        if ( pos )
>> +        /*
>> +         * Cannot call pci_find_ext_capability() here, as extended config
>> +         * space may (no longer) be accessible.
>> +         */
>> +        if ( capability->is_ext
>> +             ? is_hardware_domain(pdev->domain)
>> +             : !ext_only && pci_find_cap_offset(pdev->sbdf, cap) )
> 
> Given the changes you have done to the reBAR cleanup function, we
> could even call capability->cleanup() on domUs, as the handler has to
> deal with uninitialized capabilities either way?

Hmm, yes, looks like we could.

>> @@ -376,6 +380,28 @@ void vpci_cleanup_capabilities(struct pc
>>      }
>>  }
>>  
>> +int vpci_reinit_ext_capabilities(struct pci_dev *pdev)
>> +{
>> +    if ( !pdev->vpci )
>> +        return 0;
>> +
>> +    /*
>> +     * FIXME: DomU support is missing.  For already running domains we may
>> +     * need to pause them around the entire re-evaluation of extended config
>> +     * space accessibility.
>> +     */
>> +    if ( pdev->domain )
>> +        ASSERT(pdev->domain == hardware_domain || pdev->domain == dom_io);
> 
> Is this to cope around races?  I don't think it's a valid state to
> have pdev->vpci != NULL and pdev->domain == NULL?

Knowing that I had seen pdev-s with NULL domains, I'm perhaps overly cautious.
Yes, ->vpci being non-NULL ought to demand a proper owner.

> Neither you can have pdev->domain == dom_io and pdev->vpci != NULL?

Same here, looks like I went too far.

>> +
>> +    vpci_cleanup_capabilities(pdev, true);
>> +
>> +    if ( vpci_remove_registers(pdev->vpci, PCI_CFG_SPACE_SIZE,
>> +                               PCI_CFG_SPACE_EXP_SIZE - PCI_CFG_SPACE_SIZE) )
>> +        ASSERT_UNREACHABLE();
> 
> Ideally this would better be done the other way around.  We first
> remove the handlers, and the cleanup the capabilities.  Just to ensure
> no stray handler could end up having cached references to data that's
> been freed by vpci_cleanup_capabilities().

And maybe not just that: For the hwdom case cleanup_rebar() adds new handlers,
which we'd wrongly purge again right away. (Because we pass "false" for "hide",
this isn't an active issue right now.)

> And we should take the write_lock(&pdev->domain->pci_lock).

Now this is a request that I'm struggling with some. I can see that callers
of vpci_{init,cleanup}_capabilities() assert that the lock is being held, yet
it's not quite clear to me why that's needed. Shouldn't vPCI internals all
synchronize on the vPCI lock of the domain?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 15:40:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 15:40:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245666.1545014 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxoKN-0008LZ-HT; Wed, 04 Mar 2026 15:39:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245666.1545014; Wed, 04 Mar 2026 15:39:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxoKN-0008LS-Ez; Wed, 04 Mar 2026 15:39:59 +0000
Received: by outflank-mailman (input) for mailman id 1245666;
 Wed, 04 Mar 2026 15:39: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=hSGG=BE=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1vxoKM-0007O5-0L
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 15:39:58 +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 650a4211-17e0-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 16:39:57 +0100 (CET)
Received: from BN1PR13CA0012.namprd13.prod.outlook.com (2603:10b6:408:e2::17)
 by PH7PR12MB6537.namprd12.prod.outlook.com (2603:10b6:510:1f2::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Wed, 4 Mar
 2026 15:39:44 +0000
Received: from BN2PEPF000044A1.namprd02.prod.outlook.com
 (2603:10b6:408:e2:cafe::ba) by BN1PR13CA0012.outlook.office365.com
 (2603:10b6:408:e2::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.22 via Frontend Transport; Wed,
 4 Mar 2026 15:39:44 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN2PEPF000044A1.mail.protection.outlook.com (10.167.243.152) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Wed, 4 Mar 2026 15:39:44 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 4 Mar
 2026 09:39:44 -0600
Received: from [172.30.142.83] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 4 Mar 2026 09:39:43 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 650a4211-17e0-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uFdiVgCPP+aJXFZ02qJTAAqeW8c2H19VtiZJsPyI2iejWuJnVeB4LAZbOjjOBt1tk9risT2wXfw+4NXYB6K8POqueW+QYQ0DOQBeE1suhiL7SuVIsEtMdbtfM2pcip0POoZXUVWGpduaD2Gj4ebiTwr/OzRbbdPOkjgg2srJExbRRtV+EqPkVTbfxs+xuiu1aWdL0zHUfulMjvdM1H/Eh9eqMwjKK3qgc46mHJF8QcTo8NqHhwi4B3DEVDlzXpJgZvbJuLs54lDnFBwJnlLTurDbyOWbce1Uk1tDIPz5PWdcBY69bZ1h3WAQto1MGddlGVqRIsnbYKSJq0fPAoLeXA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vyhb4HtPgNTNTQK78/KCtQ5UY9dl0XWdx5R5IX5sM0k=;
 b=d+MKV2m4MoyiZ3gDmY2vQt6khSc84sFyeFt33YUbQMhff2erIxpiHao0g92hkqDJHBvsra9p7+lHvutMzkcS9/MwiEL/sAMolhUS707pIZ5jVM8SoVtDX4I3F4iPK10sd4DKv9O1saxDmKJ8GXdtE5wLMNQUI90lwcsyjbO2wUKMHpRS95NcVTDt8Cr4GKAut2oZ9bh3aFqXVU2NwjgJ3alpspJskKhDlMv7W3w3LeKWjQX+Q45ZRnRm24CGLkey1IIgf306vXv60aiR9xeoMjw7cJPyIj4B9MLvIUP9vPLkroIS2u3j2qfjrzpjurN98kjVI+Kw4IFOSHJIXwpWLg==
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=vyhb4HtPgNTNTQK78/KCtQ5UY9dl0XWdx5R5IX5sM0k=;
 b=jCH8dGSjyHX5Zcqmcl49Vf/0rVEV3y3w406+bFdOMLoTlOJJgvwbaRyqdhVHE+XPfthFSNUDRm515i03CTXC3JoCOdWSNzjOiwA2eaP1gJoC95jrb1OywchU8hT1aXzio2qHyLJ/yu/zQqVSEY53D7wIa5FByRPTKPFk9ESm3Vo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <1e62a5ad-f865-4477-a899-0182dec38901@amd.com>
Date: Wed, 4 Mar 2026 10:39:56 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] vpci/msix: check for BARs enabled in
 vpci_make_msix_hole
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
CC: <xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>
References: <20260226025740.71673-1-stewart.hildebrand@amd.com>
 <aahOeefbhHq7IZZx@macbook.local>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <aahOeefbhHq7IZZx@macbook.local>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000044A1:EE_|PH7PR12MB6537:EE_
X-MS-Office365-Filtering-Correlation-Id: e4fae744-d7c8-458e-7712-08de7a04426f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	WBTAJ5+1pojhYvufmg98sWm9Mhj5Q2MtEQETyeIszx3yuBJaUOdrq/ry1hGUwxB61lmn1msm+WxuPEOqH9a2zfgMBFxCKHwyJF3z3aswhk/wmiD68o7g7q/sgKGryZ+dF0+yhzTe5nIQBX1fuzxCrtxyNO6dHGh1S98r8ZsS8o6AT93B0e0rMLEQW+Okpn6KM2USj2oIYjLhPytCSPLvJo8tWNVvvlouWwxys5lVhOJIdVstbBd60gzFA6H3q8h+yClRtNro7s1RFU14jhvvNaLlygOhmzmc8RudxIL8TH7Kk81+pxN7Ad5hd3u6enJrKKToCf+k9/3RjVQDunMuRzjhU/ypdOss8v8Ke5HOCogSD+kLZDlfGBERCUuBnZelPrTGYC1tNy85Lzc2+Bat0/pqsR3rALYq4kGUuInoqOMT/dSOOgcV+Aqylw6Yis7PmWKwoawcMcrozrKWAlMvpeAGgw9n2+SuONgw5aWtb23QqVBaZVVn0KrjTrDER3nBpb0zi2y9n3slRYZ4MhIBRTJSmqTg1PwgUe0ik+q1wfuaHza8l8nOqKBPOTx0f2CXTUGXJKXEN7k1szUEG8nhTvg8kEtGZBx08fngWk7+LKP+vyMeSQVwKjtW7U4e1lpLriMiIZskZTCqtgLVU6W4lLF5oeQhZTlDbSQNd1sd0h75XAPqC45B5gVFbF5IwGfHfG4Dr/O9H4R9kr+uOIp1tn7nBweIvcw/Ii3c0OtjtUEraf34m0tbIRMpuX7pV7EqmEnnvQfka1houfRKs6w0eg==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	hMlB5XsJDpeXmQ7Y0emgf4yyzgUsNT7QJSjwIKv6lXJt5BnL8/BGjZytkSbaJP+IuixYg7oP9P99EoGumHwRtztasDMKkkCG9j611wTDjDWyDv+7//13dHwU33qpBCdzjjVUKWzZA6UF7z0ckYzttadS4eIFsKsKowixpXEPiZZjXh2F0nnt9Z6xDX3dGwn5hHoKLzRwwouooTpe0ytEbYfoSOMyvACXhlffJThKpRi7FPQAOrO+fhvfSBOHRYJUVUUgm7j6+++9enn01lYeAE49hox7R39phAilLvLomF9RNmO0MHlpPsFD14w/uJA8j5abbXdzn1JFjyKARQE0pIeKb0LdqfjjWWY1FXLN1keCuGRTUcqQTf76tqxrz6B0J85I3KXieMi6bS8mbzRkorbm9jWdjxYWQcNLjY3AtAXp9ReiWJGRyP0i6RZmTYoh
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 15:39:44.5827
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e4fae744-d7c8-458e-7712-08de7a04426f
X-MS-Exchange-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:
	BN2PEPF000044A1.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6537

On 3/4/26 10:23, Roger Pau Monné wrote:
> On Wed, Feb 25, 2026 at 09:57:38PM -0500, Stewart Hildebrand wrote:
>> A hotplugged PCI device may be added uninitialized. In particular,
>> memory decoding might be disabled and the BARs might be zeroed. In this
>> case, the BARs will not be mapped in p2m. However, vpci_make_msix_hole()
>> unconditionally attempts to punch holes in p2m, leading to init_msix()
>> failing:
>>
>> (XEN) d0v0 0000:01:00.0: existing mapping (mfn: 1c1880 type: 0) at 0 clobbers MSIX MMIO area
>> (XEN) d0 0000:01:00.0: init legacy cap 17 fail rc=-17, mask it
>>
>> vpci_make_msix_hole() should only attempt to punch holes if the BARs
>> containing the MSI-X/PBA tables are mapped in p2m. Introduce a helper
>> for checking if a BAR is enabled, and add a check for the situation
>> inside vpci_make_msix_hole().
>>
>> As a result of the newly introduced checks in vpci_make_msix_hole(),
>> move the call to vpci_make_msix_hole() within modify_decoding() to after
>> setting ->enabled.
>>
>> Fixes: ee2eb6849d50 ("vpci: Refactor REGISTER_VPCI_INIT")
>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> 
> Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Thanks.

Thanks!

I would like to point out that this now needs a rebase:
The helper vmsix_table_bar_valid() should be moved to the new private.h.
I'd be happy to send v4, assuming I can retain your R-b.


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 15:47:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 15:47:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245688.1545029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxoR9-0001fK-GH; Wed, 04 Mar 2026 15:46:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245688.1545029; Wed, 04 Mar 2026 15: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 1vxoR9-0001fD-DA; Wed, 04 Mar 2026 15:46:59 +0000
Received: by outflank-mailman (input) for mailman id 1245688;
 Wed, 04 Mar 2026 15:46:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=bY7Q=BE=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vxoR8-0001f5-1D
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 15:46:58 +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 5d4244d4-17e1-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 16:46:52 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH3PR03MB7341.namprd03.prod.outlook.com (2603:10b6:610:1a6::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.17; Wed, 4 Mar
 2026 15:46:48 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.016; Wed, 4 Mar 2026
 15:46: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: 5d4244d4-17e1-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HYQJ2QaT+r01EeoYFzmxo1kOSfA54ndTS+ZXsxg2WTVezoamAz4v3dp8CPLH9jPWQQkbuApTjm3nehioQyIVz7ocB31VeTLtqovxIb/nMIaTkHl+W6Ire9GML5qCJQVljzvHTZzBYTVxXjaacVSpfa5ip9xvPGaWhqGIyfyqLqBqhHYpzUIsd30Q29LKR3f+GPJ8WjrK4clFkvtz1ef7FfwxreTO7/AkHYnTuGOyKIrL+KYd2qsQ5zSqYAfADe/uE86/nJixgKwqi+0NFVqKvh//dnGwMRtvFL2eAy+TzeZqg2/s5r8rOp1I0EYX49W97U0kAbOVgsTDVX20hEN42w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cow4Ee/eldGQKE8TcB2/TyGw1p+U5zfANcUH1l9/wyE=;
 b=QR5+Xxvp3cpAOMZ9gvJM+PMI0a1Kviq2cTVsZKksjmE4N5tzPnxby9AyZiYYKRRlPOKZOAJo6RlPli4YGW0v0xTIrXdbQIASuIoB1hCV+GMQrpJD3LyA19DHl6zQ5XWxOsJQBuahVmsBk8qjo/SqYJqw7C8eVegSlJHHn0mWLr2jnyL6Wud6SVidJ3AASUoxpORX2w0U/iiGgPqmn2BWWm9Pklx0y6hEI+ZLjWyc0pGLIqqyY5h8LPqAcvzzDn7wmW9FvG9DrTUgjOMrBIFbpwn8rWgUpasGRfuSPW3CQdJq31UMN8NkA9YXMvWddqlb3Hk9KTdseFGOV3N4f794ag==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cow4Ee/eldGQKE8TcB2/TyGw1p+U5zfANcUH1l9/wyE=;
 b=HSeMfhfFdtuuw6Ex2zaNGe2AWhTSjnb4iEgpoORg4d9d6GPc50COJz8Vxdh3DeBXqC5aLfaGKYOHKk6hTTCRY71cqv2LcM5VSjkLP9/AXkDaymECdFRQmCFTWohSuZeO8kAgHDQa1D+yyhuVVSXJviVD94GsVlHSsIvHtsedbBs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Mar 2026 16:46:44 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Ariadne Conill <ariadne@ariadne.space>,
	Steven Noonan <steven@edera.dev>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] xen/vpci: zero guest-visible BAR addresses to ensure
 domU asssigns its own
Message-ID: <aahT5DCUDFV833oM@macbook.local>
References: <20260224231216.6203-1-ariadne@ariadne.space>
 <2aef1aab-f1f4-4063-8c61-d26ae335d06f@suse.com>
 <b4a839bd-78f0-4fb5-a7db-dfc2f4ab037f@amd.com>
 <c7b3174e-83af-48ca-854d-417fbc3be90e@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <c7b3174e-83af-48ca-854d-417fbc3be90e@suse.com>
X-ClientProxiedBy: MR1P264CA0066.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3e::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_|CH3PR03MB7341:EE_
X-MS-Office365-Filtering-Correlation-Id: b885b062-304b-4547-fe05-08de7a053efe
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:
	+EbYmSRsuSWaBMUmDyHGia1ChwqwMyJD7lTS51EBQRva0uMhEHaOMvUBued/GZCgM/N8FcHdc7xJaNoiK0VF85Sq6npJL8nrl6KyqiiQsXMFswX5vCTNt3nG2dBQzTY+pxuSSF79OLEpmp9e9qDXkBdvyZfUtx0zdEibElDTGr9UY4sCJkQUpdS/dhtLaVuaihq71YyBSgrSfTGr3D9k5nNPQZgIwLmWdg04v3bnYPgXgAOYV253tEXn7AbPBD6+RFbaPGMGsls0y0qEzomURyJs3mNyX8JwoE26+AuMO+hNI1TZ1nFxjM27H1f546GIMmrlOf97wf2XyvjET8DJb2hCPJFyM3vwmahwnO49DcWbu4IP75VsTAxo+irdXxSPmQmwKQIMRDH49LFhcauAR7Lf5kFZMFI6fLDc4Uo10vhLkpz1gyntIPEDuoE6DhVFecHw42J1eNurPEx8iKLQqEpxYdv6YCW+va4aTOmWg/j8p5630sNhi8EqGUzHWCh7aY8/CwYy7VXfTCOsXNpKJ4pcBpces7dUXFaj3uvpXREiQQUL0/9CuM6kbyekyypemyAzc2TI9YqbU9fC/venTlCkomrunWXlgloKaOHMMo7pGOiEQ88/bEEEZzEx0C03/gcUnDcUREBev25LBTOqfuA1UPSwQYqDhW3VYC79jh/LmsGk0vK1VENnIF/9DQmlonYQjETMseNIqwz89L1yd5QSzmLHlpegmiQglyRIdk8=
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?clRXMjBMVWYybTl3OFl4bHZsb3N5RTVnWGlCbDFNYmtCdGViTFdQVE1YTWo0?=
 =?utf-8?B?OUd1aWRBTXJyV1lqT2lvczJhZWdDTjlBTlNkNm4vZTdYb1N3clVDK1VsQ1hX?=
 =?utf-8?B?T3BIeEVXNFpDYnNEUENwblZNUXAyVDBMSXNUYTB2Zll0Z2dJYmFZeTVXUzNY?=
 =?utf-8?B?WVo2SEpKL2tuK2cxVVA4QUJQbDBkdnhmQXZFOEVYVS9INEtPd0hyZWxUUnhO?=
 =?utf-8?B?N1dhZDdjUmN6aFk1YmJyM2tDNkJ3ZlY0TnNVTE9ISFpjNGNFanRtRE10MmlX?=
 =?utf-8?B?LytvZnc3K1V4ZmlrV21LRW1wMGlVT1VlSkcremgzRmZ1bHNNWTRSRTdwSzcx?=
 =?utf-8?B?Z1U4ZytVTm9iOGd4QU5RbkZhWkV0dXpQQjlaQVl3OFVrT3kvTEhxTFNPVTIx?=
 =?utf-8?B?ZWZEYkZrd0dhdmwzY2lqaGc5R0Z0YkRXTEdickZYZEV2eWN4TElwK0JCLzIw?=
 =?utf-8?B?Zi95enEyWDgxc1RSbXFKYlNZL0xZL2h1akJBcVBwU1NSdDZqWXlpTXpycHAv?=
 =?utf-8?B?c1QyRkFxSCt4UDE1Mm8vTC9GMTk5QVpaL21KY3I0OC9iWkZDR2MzZG5pc3g5?=
 =?utf-8?B?QXVnbGdKLzhCQVpuYTh0WjJ0ZkszU3FvVTZvb2YyLzVwUjYvd0VDdTUxNmVG?=
 =?utf-8?B?c05ZY0pkcVptdVNwWmFYY0tkN01oZmk0d0hlVkdVaFdpOXp3UjhySmtrQW00?=
 =?utf-8?B?bTlqRWVWN3QyaEIrVENYMXRQUEx4aEN1T3RxSzdRbzhheGlLUFBRcTdDL3Jx?=
 =?utf-8?B?QytEWlJrSnlIMWtYTjJqSjU5U0sxd0JUWjV4bitnR0RLcWY2QXo1aGJaVlBu?=
 =?utf-8?B?YXRZN0FJcU5YRHNmSFZaelREa2JtenBLL2h5Z2NGS2xXcUJVRldwVjRmdXhG?=
 =?utf-8?B?QUdqNnREYnlESGtvRGFGQ0RJYVdOZC9QQ0tud241Y3M0UEZpa2JoSWVKdk5B?=
 =?utf-8?B?UlB4Q0lhRlpXZFk1NnpEeDRQT3ptL1NNdVFFQnduNkhIb3Roak9HOG55ejlh?=
 =?utf-8?B?TDJCMysxV3N2VzlQNkc4Mzl0dmtVaG9jTWZBazArM1RnMnlSLy9XSnBua3FL?=
 =?utf-8?B?S04xV0VOeGl0cTdWQllVcFM1RDVNZnBmRmFUZlRCWFJocEVtbG1kNG1SaHpa?=
 =?utf-8?B?dGNuVU0zaDZNR252SDNNaU9SRnNSdy9qYTVFZk1ValBsek5EMXViTFpTNk9m?=
 =?utf-8?B?bm90S25TSTRjS0ZnSDRabUxLbU5HR2UweTV2UEErdlhMMlRtUm9ldEZURHp3?=
 =?utf-8?B?bG5mQW1HNVAvdklIaFVnODFLSE0rMDFFN1BiUU5hVCt3S2hwdGFiSlVTbjJw?=
 =?utf-8?B?OWttblg1ZURZRHQ3SCtVaWtPdUNSZ0ZFZ3VudzRqdVpmb0RXUG5sNy9OYml0?=
 =?utf-8?B?Q2xlbVBPNWx3Q0t5SEhnVytNK01NT1dLUVBOVEw2Y3l5bkZKVi81ankwVHdP?=
 =?utf-8?B?YWhNQlRVRVRCZmJJWi9lcXFMNnhlVEx1NGd6cGd3QU1hTTVXL1M1QWlxZEpE?=
 =?utf-8?B?OXkyclM1STVWdUV1bG84U3RSeGNuSGpoL3VNUzlFOEpiR0pWUWo0YXhPdGE2?=
 =?utf-8?B?Yzd0M3lGczBOVWZ5Tk1LUWVPOHRIQnk0cEZzTi9Nay9jdVpxalpRU2JHK3JJ?=
 =?utf-8?B?QTNZTEE0T0FOWmFTblQ2MDBXS3IxODRUNC9oRy9TdGpoRXNpUFN4dVUrRUlp?=
 =?utf-8?B?MmErSXBndmRldXZFU3A2TEhrRlNnZkJGQ0JqQ2FsV0hsbjl1NjVqbkRkZnBY?=
 =?utf-8?B?bVRCUXlSMlRjNkEvYVc2NXJHMThqMThLK0l3YTgwcVJ3S0N5VHJqWjBzMmJN?=
 =?utf-8?B?L29YL0FWckE0Z1hlcis1dEZuMTBFR0pyVUZkY01NbWUreDZMSTNUOEgvKzd4?=
 =?utf-8?B?NnN6N2t5QUtteHc5bGFKdzVKaDA4bHNQZVhXc00xQ2M1ZFhYem5mR21wdzMw?=
 =?utf-8?B?cGRIYnNmRmIxaThtcEVJVllKNnNVNjVaQ1RjTWhVNlpFcVBjNWJLMTFXMzlJ?=
 =?utf-8?B?ZWNUZ3huNFlZNDF6am1BTVRHSDF0OFRZa1poTnNEK2FEZ2YvaHErd01LM1ZD?=
 =?utf-8?B?NHFvYUkyS0NXYUlHVUZTYkNtV0FhSjJIK0l6dG8vQ1dicFRQUWlad3R5SGcr?=
 =?utf-8?B?ZnFmUEZYYXRCTVprd1VPV3RXZGk3eks0YUF2WllLWGxQVDF3eXVSUitQKzRl?=
 =?utf-8?B?b3lnUm12VjN5NDFOWnNkOTI4WXU5eWxXSnNvWk5LZEh4MEJjYUtVdTh2b01R?=
 =?utf-8?B?MitRMzdLdjQ5WGxObmdCOXYweFc1SXRuMHZkNU1haldmc1JkVzJoZGhHRkdi?=
 =?utf-8?B?U3IwdjdLSjBBRDU1THZNOGEyREt3cEdvbng0MzRnTTVZVzNXdjBVdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b885b062-304b-4547-fe05-08de7a053efe
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 15:46:48.5781
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6hSRGCRhMH2guKCJbtJi/Tda08vliCKXCr3GYmz3lrVreQ25rVtQ5XmO5Vz8yu3vgUxLk8DcglAahI0eQeprhA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR03MB7341

On Thu, Feb 26, 2026 at 08:47:52AM +0100, Jan Beulich wrote:
> On 26.02.2026 03:50, Stewart Hildebrand wrote:
> > On 2/25/26 10:37, Jan Beulich wrote:
> >> On 25.02.2026 00:12, Ariadne Conill wrote:
> >>> From: Steven Noonan <steven@edera.dev>
> >>>
> >>> If we just use the host's BAR addresses, the domU might not attempt to
> >>> reconfigure the BAR ranges and may never try to map them with the IOMMU.
> >>> Zeroing them ensures the guest kernel knows the BARs are not configured
> >>> and needs to make its own choices about where to map the BARs.
> >>
> >> Yet for this, don't we first need to expose a full topology to the guest,
> >> i.e. at least a host bridge, and maybe further bridges?
> > While we eventually do want to expose (a) virtual bridge(s) to vPCI domUs (this
> > work is currently in development), I don't think it's pre-requisite for the code
> > change herein: clearly, leaking host BAR addresses to domUs isn't right, and
> > there's no need to wait to address that.
> > 
> > With that said, the commit title/description don't align well with the code
> > change. Assuming we want to move the code change forward, for v2 of the patch I
> > suggest dropping the 2nd half of the title, and reworking the commit description
> > to focus on describing the code change at hand and less on what the domU might
> > do.
> 
> That would indeed work for me.

+1.  The "try to map them with the IOMMU" wording is not accurate
IMO, and wants replacing.

It would also be nice to mention that zeroing unconditionally is fine,
because for domUs the memory decoding bit is also unconditionally
cleared, so there will be no attempt to map the BARs into the guest
p2m by vpci_init_header().

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 15:48:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 15:48:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245697.1545039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxoSR-0002TG-Qa; Wed, 04 Mar 2026 15:48:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245697.1545039; Wed, 04 Mar 2026 15: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 1vxoSR-0002T9-Mm; Wed, 04 Mar 2026 15:48:19 +0000
Received: by outflank-mailman (input) for mailman id 1245697;
 Wed, 04 Mar 2026 15:48: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=Xh4z=BE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxoSQ-0002Jq-Lv
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 15:48:18 +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 8b3e01f8-17e1-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 16:48:09 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-48375f10628so47190585e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 07:48:09 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4851c907a08sm2074985e9.0.2026.03.04.07.48.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Mar 2026 07:48:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8b3e01f8-17e1-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772639289; x=1773244089; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=szv7ibgFC1wfNHL1X56ycFpl6qWz9laDnmraUSEN+Jo=;
        b=WwNAHwefR03PASbf2b7rnpLaKnxsgLzx0nkm/cmKsihnHGYfnkE/xaeNfYvc8k6kjl
         VdW+3WGJGqYTbgAyoGIi2yT2nHqZn5g9yChvJE5kibNye4Z0Kaa/QVlP3qYIABA0G265
         En5exJtj3RQuNlucVdvBBL0v+RMp8KZBX1MwAsa0IB6mCNKIGZl2pO4QvG5C6vdNEvJB
         yNJiWKcima65pi0/V42Hj5v7NDPBKRJeMkwGlYH/OR9NUxjb4VijDYpyeD57vVYryyH/
         xLhw6LSmBAdyccvBSfdHSPggDJzzo+bN1SQE7jYm5MOlDUbUPqk9vDKXvu2NsRoD6iSv
         T4ig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772639289; x=1773244089;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=szv7ibgFC1wfNHL1X56ycFpl6qWz9laDnmraUSEN+Jo=;
        b=oDEJmEPfsRhgl7e2pu6CVSOhqkOkRWvR8Ov8aBqOWa+Q+OGM7kzw4IsPa4G0T8be3w
         lpmV5D0zVVV/llBb2wPTOXiaKbR5AEWgwcSf0LX8Z4CwZao7R2TOBxcTp8jysVF5Yl2B
         rq+ImPumYM8HtRRSHj7fE97IeJM2+Rr1U+/6I4hdKFKjgSlwiPCBpNge8sBK37s46JTS
         96TUAV3Guyh2l4zciAnSGoCJDDh3tuwaEjltIxmvLHrXPKM0O3o0fVMKR4SCKlr3yy0b
         PJAyB+kQ52Fv1laFNDop8pOmBn9suF/UqoAXwP7r2fm5qsmUB/pJ5pU91GQPPm6loF6q
         RLhQ==
X-Gm-Message-State: AOJu0Yxjn/+0mK8YM23rW3Po0MZLX9Fns5Ss5vcO2hbBVbhZ+twOq4wp
	BMVs8XfKc7HPVocE23cAyMb0ClITgt1DWRmE8fNlMoKmGAHrqs/0ZNnsY8bYU6n15Q==
X-Gm-Gg: ATEYQzzkg/KXM8fd5D26//D440jZ/kPec0cqa+HEXW6/x9ttCFpIt8HIFH2fa/uYuNc
	ZFjS5Hcta6GtxTPTjRCf2jpC2NjEi+iWHyrMAgpt30p9DBlMcVtgyqCsAoUmM4Lj0t0aE0zjCRC
	Ws83gLUxs3P0tW2W8pLbzqXVFpznEmQlQlzC2TWEO5lb6sXWgOFcwnINtBUP7vMPs0+HjU/sOCc
	/svxbmiAOW8DS5+Z26oLMMImS7k6gNdxfzuINgyaEPAku/J3X4TgoYUseheR9jgedKNDeYEHilU
	1KQ/iq0zxha2zTwZuMe5JoS/quJXnIwdDedf5DcnPgQOiyyZj9i7Y7RrY1527YHSI/p93WOryJy
	jADoYn+3uV9B0gpXvdJFpWPviKIs/PN1MQtpS9v3ssm8Yts8/sxMIn2B+WeWom90hwehkkc4ce1
	EAw/WeOVM35NbQg6ngCv0vbjSsaDYMDtonjlic1cvTEnC3kxMBInb9ntZCPXDSPgO5Py10Um6gm
	mtcAfss8udDSY4VyjFRovBSXQ==
X-Received: by 2002:a05:600c:4e8a:b0:480:3a71:92b2 with SMTP id 5b1f17b1804b1-4851988ade2mr36628565e9.26.1772639289007;
        Wed, 04 Mar 2026 07:48:09 -0800 (PST)
Message-ID: <80129c3a-77cb-4cb1-b3fd-128454e3db0b@suse.com>
Date: Wed, 4 Mar 2026 16:48:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] domain: use unsigned loop induction variable in
 complete_domain_destroy()
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: <7af56fa6-4254-4704-9843-a0d099e6bb0b@suse.com>
 <aahSBk--J_xqEzOq@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aahSBk--J_xqEzOq@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.03.2026 16:38, Roger Pau Monné wrote:
> On Thu, Feb 26, 2026 at 10:01:45AM +0100, Jan Beulich wrote:
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -1475,7 +1475,7 @@ static void cf_check complete_domain_des
>>  {
>>      struct domain *d = container_of(head, struct domain, rcu);
>>      struct vcpu *v;
>> -    int i;
>> +    unsigned int i;
>>  
>>      /*
>>       * Flush all state for the vCPU previously having run on the current CPU.
>> @@ -1485,7 +1485,7 @@ static void cf_check complete_domain_des
>>       */
>>      sync_local_execstate();
>>  
>> -    for ( i = d->max_vcpus - 1; i >= 0; i-- )
>> +    for ( i = d->max_vcpus; i-- > 0; )
> 
> Is there any reason we need to do those loops backwards?
> 
> I would rather do:
> 
> for ( i = 0; i < d->max_vcpus; i++ )
> 
> ?

I think it's better to keep like this. The latter of the loops would better
clear d->vcpu[i] (to not leave a dangling pointer), and there may be code
which assumes that for ordinary domains d->vcpu[] is populated contiguously.
Hardly any code should touch the vCPU-s of a domain destructed this far, but
still better safe than sorry, I guess.

In no case would I like to mix both changes.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 16:07:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 16:07:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245722.1545076 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxolO-0006Le-J4; Wed, 04 Mar 2026 16:07:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245722.1545076; Wed, 04 Mar 2026 16:07:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxolO-0006LX-GM; Wed, 04 Mar 2026 16:07:54 +0000
Received: by outflank-mailman (input) for mailman id 1245722;
 Wed, 04 Mar 2026 16:07: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=Xh4z=BE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxolN-0006LR-8U
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 16:07:53 +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 4be01a62-17e4-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 17:07:51 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4836f363ad2so82580055e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 08:07: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-439b3cc2e65sm28542085f8f.2.2026.03.04.08.07.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Mar 2026 08:07: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: 4be01a62-17e4-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772640471; x=1773245271; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lIanfJHGJrbMTqrVwQVmc0FAWMVR3HjKHqqvv6oPTxo=;
        b=dkrB8AXvUuriCg8Kkpiy2fowo77wUub/w9yr8K0csXWcwiTotG763saBxxPn6ThtJh
         PqUBE/87Pz39kLkpSlHErm46PNe+SAYvw0m28EmRl8a80muedP3RcNZkKam5J41NaGzK
         9Qhegziu1YElVYHcdi/+HvoXGRNeQ9XbfQYRglou0c7xEKdPgUz8f5PoBT3MFAK3OaGg
         4Yas/caTLiy6MFdxL234o/L7BWObNl7tnXk0saFHaamVXc8/VPAW9RcNndKa9K/3ZOvZ
         b//kZzycT8vsUGK4ghOn8eKdsxqU/U0V3fdY0rvPjVk4Mt2UyhXvc5WPhIDImC2F3vsL
         5ZFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772640471; x=1773245271;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lIanfJHGJrbMTqrVwQVmc0FAWMVR3HjKHqqvv6oPTxo=;
        b=FVz88ilwiKFUT2Lq12gfYdRwJRkarB3RMXZIsPvS5e61dWbxLyEfe2Nmcr9zVcLpNA
         RUjawgMoPsaBuTo1NdwoTaT8ZFYov3tn+NInNpQ6tYbVEmQM6ejyWMxfm2YRKR+H5HrP
         pE576BfebwhSEqHofbYfZtZxmO2oSWakEV4EksP6uazUPoHH+mDGUK9RDrN3f4o02cA3
         l3AG/chDoRe931mdIJVHrgTDGGAkG9QGb/bW014wsBd4WsEpnqtaYl9Ma2l6yoCtlE03
         lKJOHUwEED6cHAmFYbUvh60SHrMsBX+DN7kg914q2hvvJGoLW9MSrGPmmX06lg63mgRT
         UE+Q==
X-Forwarded-Encrypted: i=1; AJvYcCWdRiI3gntVKHtuImqxf8ZfLBqvW2/+hxhSqt5hgPjTnN0VPb7TfOEzCikTnXL952FbLAORyJUjtOo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwjJw13sjb9NynmvNKAEkKSWIswW9fodzVJyB/k5poHVjWwiaZu
	IIfHrDagqzzzxDuYxlzM6Skgh95/SSWeNcyDpfIMewKJyUA8lUpvvdkM+yQ03WSPzg==
X-Gm-Gg: ATEYQzzisECuOHf4KmoB4hk1kM2EYfWPQbRhOAs3fujmNmABBN00NhWFjYDRrXNUaz5
	fRgoEv6q5IrddNiPuLZzblspgg84lYR1ShK2rvh7EuU/Lc5C+T6Fxxr0UBYr2SZUdpInGgLD0cI
	Ibw+gxrfBZrmZ55NRTRdXevDGJcOkfspGTQBETsitmDDpTKGILrd1mzfAjUg5jLYY6Ojr1+luzf
	P903Z+cbsJBs9OIJz5dHShi1WXz66RgPTHz56JhF3to8TSMGX6s2LWG/nZPNpEu7RhIngHgrFxx
	MhbCepw1S4jXIm5mjPszNLbbzaRqNqEEjLznSsfKSrRfld3A6B/8ofEG5toELjs7AVBDh6XFcmd
	sHw8qduBpY/fhfEwa0gfhEACFSwW3FnRRhS0mCqHjZD605d+EvgvsCqruHsFzFGxqHlCoYEvCYl
	qviytomAF8fGJ4r5j0B3Vyy+PcqTHsjQEhRNzxikDEDWKm1ercfhfEjlGfPVophVAQCK1+A7ymU
	kVz7StztMVe6xs=
X-Received: by 2002:a05:600c:a51:b0:47e:e20e:bbbe with SMTP id 5b1f17b1804b1-48519889928mr39855335e9.25.1772640471280;
        Wed, 04 Mar 2026 08:07:51 -0800 (PST)
Message-ID: <b1e6f37e-9d77-4aef-b088-73bba27382b9@suse.com>
Date: Wed, 4 Mar 2026 17:07:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/10] xen: Add NUMA-aware memory claims for domains
To: Bernhard Kaindl <bernhard.kaindl@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Juergen Gross <jgross@suse.com>,
 Christian Lindig <christian.lindig@citrix.com>, David Scott
 <dave@recoil.org>, xen-devel@lists.xenproject.org
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <cover.1772098423.git.bernhard.kaindl@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.02.2026 15:29, Bernhard Kaindl wrote:
> Credits:
> 
> - Alejandro Vallejo developed the initial version
> - Roger Pau Monné updated the implementation and upstreamed key improvements
> - Marcus Granado contributed analysis and suggestions during development

Despite any of this, ...

> - Bernhard Kaindl developed the new domctl API, extended tests and documentation
>   and developed the refactored handler for consuming claims on allocation.
> 
> Comments and feedback welcome.
> 
> Bernhard Kaindl (10):
>   xen/page_alloc: Extract code for consuming claims into inline function
>   xen/page_alloc: Optimize getting per-NUMA-node free page counts
>   xen/page_alloc: Implement NUMA-node-specific claims
>   xen/page_alloc: Consolidate per-node counters into avail[] array
>   xen/domain: Add DOMCTL handler for claiming memory with NUMA awareness
>   xsm/flask: Add XEN_DOMCTL_claim_memory to flask
>   tools/lib/ctrl/xc: Add xc_domain_claim_memory() to libxenctrl
>   tools/ocaml/libs/xc: add OCaml domain_claim_memory binding
>   tools/tests: Update the claims test to test claim_memory hypercall
>   docs/guest-guide: document the memory claim hypercalls

... only a single patch has an S-o-b other than yours. Is this a correct
representation of authorship?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 16:08:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 16:08:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245724.1545086 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxolc-0006gN-Q8; Wed, 04 Mar 2026 16:08:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245724.1545086; Wed, 04 Mar 2026 16:08:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxolc-0006gG-NG; Wed, 04 Mar 2026 16:08:08 +0000
Received: by outflank-mailman (input) for mailman id 1245724;
 Wed, 04 Mar 2026 16:08: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=YDHP=BE=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vxola-0006LR-Rl
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 16:08:06 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 544d2007-17e4-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 17:08:06 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-439ac15f35fso3992643f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 08:08:06 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48518839ae7sm52908465e9.1.2026.03.04.08.08.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Mar 2026 08:08: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: 544d2007-17e4-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772640485; x=1773245285; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to
         :cc:subject:date:message-id:reply-to;
        bh=vqxBnM8tsYWxs4qD5MGZGFVyVPe8myeroZllsVPZb60=;
        b=cDu45fXFLSj4kw1Yk1WwEvpRpstRVcY+L5VJGyWS59R1mxgRvDZ38IzyVAxiiNHlzg
         KLHlXIjieplQUQmgGtRr/ePxNa/v8HU9yAOdW/XmrLqzp+NpgQO5iQ4feC3S/KrGFLj5
         ofbh6K4W5eAbjhURlYIxz76Edo4xSu+armymDs5qRQj2y/tg3KQY731bv2QV4tFQSp7O
         LPf3Tsx3d8LTtbQGilbypCRe+inef8pH1OT/VimmycQhpdoHh1YQCKnSS2R91xrl2IPA
         +UJ8pjFm2ceGR+VOgcOa07bFRNeZUXcasXO8kbzR86sa5XHsyDw9w6Q8E96zmdgb3Jux
         DrWw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772640485; x=1773245285;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=vqxBnM8tsYWxs4qD5MGZGFVyVPe8myeroZllsVPZb60=;
        b=Aq6zvoA1Bg3Zc4GPgkcKFTHYfIeabU6goQzGfIFzRw/gfvNVJ21wM0oavOdLTlB63y
         WkWPtqmPnPwSukD7Cu/5wcyf+CMfEf/qA4ciDGhNvVe33LXc34hjPzdKLlle81ycHHWJ
         lrSDDIAhAwyKuyntrcMi/hNvZxAsuBKmSRWGkvl1+AnpCXx4qfZqE6NLgZfcUmqKnygh
         S/dF7SIaeCCRltsXM7WxWal0FTLPn76UL58TmgOX3R8dKBpGJzSVVFLIfGGE3TTTyS1r
         gBjv/H1FjGdpvlhga/x9paU204So37B30dNIGrOk0bxsZ+ee5q6AIWknH1Vqjh3/heFs
         cfOg==
X-Forwarded-Encrypted: i=1; AJvYcCWPuAeZkCTTARU78peTxh86A+a495RB1lHemGTPdLbrY83wE8mUbznY8rn5YrM+Uk8Wge3hYU+hJVo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxozTb7SiwRyr2zcimKfaXE4K3PqrdJnYfaNM2130HwSQ4kcrqo
	3p4k+L0ZqzYSgFCnCjkUAf/VWaQ5j6cd3fxqM/AY8Sh2mciLvxgxGKnq
X-Gm-Gg: ATEYQzw64VOzZ5nT2jLRWjfM1EmBkFUyznrpU3a94kQf2Y5JIMwIghZ2sreGHPWdbL8
	A7GU9hSM8h+bRM0oroMF60znIYrLMZI0jNHvYCKB0BL1LV6Cma1vLskbRgf4q/00EIwJLOVYg6Z
	2pEYehv3qyqFIYJHhFyTP/B0LA9oodYcGM6YFyzmNysUI4nzZYscALe/VQKg6aVTLbsh5gugG+R
	+aH9lxboQjRKgySn5ulGhQePv+jAkrTfGtdpTCJcZYNjPp04Z2elYQp7Bi3D4ZGAKA4sFkjPAL/
	RyScjrMQiVKoARg+IqRVGEHs77ufueo85UyPu8680XqyIJ/hgpOHhH4BRhY8aEDMRTdulK5aeSH
	MfCRinAnRA93emBSt1NaactWINpuzTtoKUXaguHwet3CqvK1CKBnjpuqF4qsie1hobxC2r5KOqc
	Ylm2iabGzPAnkPqxjtiR7YdRg4uPjE8oJ7BDY7lq1+KqLO6Bbru+urITiv8SilpMIlrDZnxCR77
	go=
X-Received: by 2002:a05:600c:4e8a:b0:47e:e9c9:23bc with SMTP id 5b1f17b1804b1-4851989fb4cmr37601565e9.30.1772640485310;
        Wed, 04 Mar 2026 08:08:05 -0800 (PST)
Message-ID: <b022ab3f-4496-41c2-b24d-2718eae27448@gmail.com>
Date: Wed, 4 Mar 2026 17:08:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 01/14] xen/riscv: detect and store supported hypervisor
 CSR bits at boot
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
 <a17b6a117726904a9384dc7d9cc140672d3b0453.1772016457.git.oleksii.kurochko@gmail.com>
 <4b67f8cb-43d4-4f18-b2b6-156e21330887@suse.com>
 <7e1f3962-2dd0-4843-8976-40452437a52a@gmail.com>
Content-Language: en-US
In-Reply-To: <7e1f3962-2dd0-4843-8976-40452437a52a@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 3/4/26 3:54 PM, Oleksii Kurochko wrote:
>>
>>> +    if ( riscv_isa_extension_available(NULL, 
>>> RISCV_ISA_EXT_smstateen) )
>>> +    {
>>> +        INIT_CSR_MASK(HSTATEEN0, hstateen0, _UL(0xDE00000000000007));
>>> +        csr_masks.ro_one.hstateen0 = old;
>> What guarantees that only r/o-one bits are set in the incoming 
>> hstateen0? I
>> can't help thinking that to determine those bits you want to use
>> csr_read_clear() (or csr_clear()).
>
> Good point, then after INIT_CSR_MASK() it will be needed to do:
>   csr_masks.ro_one.hstateen0 = csr_read_clear(CSR_HSTATEEN0, 
> _UL(0xDE00000000000007));
>   csr_swap(CSR_HSTATEEN0, old);
>
> Probably, csr_swap() isn't needed as it would be good to have all 
> writable bits by
> default 0. Of course, except r/o-one bits.

I came up with the macros declared inside init_csr_masks():

#define INIT_RO_ONE_MASK(csr, field, mask) do { \
         old = csr_read_clear(CSR_HSTATEEN0, mask); \
         csr_masks.ro_one.field = csr_swap(CSR_##csr, old) & mask; \
     } while (0)

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 16:20:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 16:20:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245757.1545144 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxoxc-0001q6-Fl; Wed, 04 Mar 2026 16:20:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245757.1545144; Wed, 04 Mar 2026 16:20:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxoxc-0001pz-D8; Wed, 04 Mar 2026 16:20:32 +0000
Received: by outflank-mailman (input) for mailman id 1245757;
 Wed, 04 Mar 2026 16:20: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=Xh4z=BE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxoxb-0001pt-Oq
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 16:20:31 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0ef72ed2-17e6-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 17:20:29 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4806ce0f97bso60915465e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 08:20:29 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4851a8ae17csm13993845e9.6.2026.03.04.08.20.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Mar 2026 08:20: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: 0ef72ed2-17e6-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772641228; x=1773246028; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bFqecisVfpqlBVF4/cTVsR7G7jAGrW7vwDhM9nM84Ig=;
        b=ehX+R7OSO7gNeQpDiU/Alk8U/NuwtEArdyZ4QvJCdocr69fBrxJhmaZ9ZuX0F10ewb
         p3hFKUEryB6OR9OZxTgLPsq3DHA0MTXWGsS+YRWLiWWPbBfa2/mmFxbPFzsxcLU+RRck
         1zjJOUzXbPMBdENt+VBC8Mf5KYVaBu1fpdlP2gGD5u8zBINaZCWc1m7xQ2NpSTkbuup5
         oi/lhU3JQf+as8Jspr7IYL/KbrHqD0axxeb8mdHlxCAbunbOCJ6pku/RPRFYTJsSSG/M
         hQ0lQGYyGLDTPUpY/nuPM16jgSyLpsXwuD0o/Fra6jWdpH9XxnALSUNfnMPbhuvL9Exz
         pI8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772641228; x=1773246028;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bFqecisVfpqlBVF4/cTVsR7G7jAGrW7vwDhM9nM84Ig=;
        b=GSxQyy9A7dx20UQkeVciTkUOp2AxOQ8Pb60/9zhke1X3J/lxFnp4SNFD56ukTCfEqo
         hp1ObdGcL5nLInNAOOi7gf9YhEM9m0i/EiVX/acirPmNAvsxDUBYRNZUy3HXHKSWUdzt
         TeyC6JgZ5SXxW9kIeKBqoiugrdjk8YRl7CFXx7M5dMrDlmxrEryF5F49lQfBC6S3HbgQ
         vQ9HDt90514c8zxozhoBnnnC6AZIgNz8n/rVrQNCzE8g6TLU9bXBm0HvbSKmcl3l8b1H
         To68uFieJJm1pM7HxSI4RhxGeHVUOA552SKia52WS+5NYl4gFfI7zmPpCU9158KCd/nY
         79vQ==
X-Forwarded-Encrypted: i=1; AJvYcCVHcBazYyM75AjUBRSLcAgYG4BbWvp3DEBgF0ezt4QR4azx9snm2ahDUiRp4FPvWZpXaaQe7rrdEE0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwGc/vaLysWyexSHjjQRi9mxPnOjOS3dSBxYRJCbNeSwcObtbDn
	x1tnNz/fAilDn+jJAFvyGuFHIG3MI47AggLvibxyRJiojtsHeuSXBXyq4385yo9Jzw==
X-Gm-Gg: ATEYQzyXkFeQYGrrVFk8ZLwIsj/an1C2hRKW8q+G8PoYtClVgrMxKfMvlnxErZdXNph
	5JgqfPZzLRmNllDpQiMTbXDz3vcXqGJpFlIjC3eB3/U2zUpEYG17wyoM830WkD0YhbS37XmU7Nj
	eyNTZbME5Oktdl3fG89gf5x2u4d0hXW7ThnSmPML25Wq8wSCAMINTZHSWpMsLYXcGkXV2UlncM6
	R7xgERPTHKcV/1I2onXFglAXY/wbgSF8StxM0vm8FedOVB4zbkCb00Qej3QsA2+LQpE9wk+n7Hy
	hytaUpOQuQhHUsialMlcLcKZhVduyHUZyqrSsTbDASqGdQN7Myn6d9dYWVZdUQ2JNSl8+ha1Sw/
	YC0Z6fTf0dy5gWLC7kCCqZv2XpxsZAq2WlpH/a6L3UDgO91HKOziFCx4M/jgBtbeCHTIUUdxoHo
	mRnpkRS6rDL+gs7dZAdGZriGX2Qe7bEZC9lVPVmgHuTasKgkHV/7Khl4oUIHAzRoYFWinhrzbsX
	myhcMjHsX45pFQ=
X-Received: by 2002:a05:600c:1d0c:b0:483:78e1:784 with SMTP id 5b1f17b1804b1-4851984a312mr40672175e9.4.1772641228106;
        Wed, 04 Mar 2026 08:20:28 -0800 (PST)
Message-ID: <91d2bd4b-7ca8-45fe-9e60-071d2cf2d327@suse.com>
Date: Wed, 4 Mar 2026 17:20:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 01/10] xen/page_alloc: Extract code for consuming
 claims into inline function
To: Bernhard Kaindl <bernhard.kaindl@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
 <7dd887bc26830d6c50e5bc2606391963e65285a1.1772098423.git.bernhard.kaindl@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <7dd887bc26830d6c50e5bc2606391963e65285a1.1772098423.git.bernhard.kaindl@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.02.2026 15:29, Bernhard Kaindl wrote:
> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -518,6 +518,34 @@ unsigned long domain_adjust_tot_pages(struct domain *d, long pages)
>      return d->tot_pages;
>  }
>  
> +/* Release outstanding claims on the domain, host and later also node */
> +static inline

Generally we prefer to avoid "inline" in .c files. This is better left to the
compiler. Furthermore while we have a few examples of this kind of line split,
it's clearly not the preferred form. You'll find ample well-formed static
functions in this one source file alone.

> +void release_outstanding_claims(struct domain *d, unsigned long release)
> +{
> +    ASSERT(spin_is_locked(&heap_lock));
> +    BUG_ON(outstanding_claims < release);
> +    outstanding_claims -= release;
> +    d->outstanding_pages -= release;
> +}
> +
> +/*
> + * Consume outstanding claimed pages when allocating pages for a domain.
> + * NB. The alloc could (in principle) fail in assign_pages() afterwards. In that
> + * case, the consumption is not reversed, but as claims are used only during
> + * domain build and d is destroyed if the build fails, this has no significance.
> + */
> +static inline
> +void consume_outstanding_claims(struct domain *d, unsigned long allocation)
> +{
> +    if ( !d || !d->outstanding_pages )
> +        return;
> +    ASSERT(spin_is_locked(&heap_lock));

Why is this not the first thing in the function?

> @@ -1048,29 +1075,8 @@ static struct page_info *alloc_heap_pages(
>      total_avail_pages -= request;
>      ASSERT(total_avail_pages >= 0);
>  
> -    if ( d && d->outstanding_pages && !(memflags & MEMF_no_refcount) )
> -    {
> -        /*
> -         * Adjust claims in the same locked region where total_avail_pages is
> -         * adjusted, not doing so would lead to a window where the amount of
> -         * free memory (avail - claimed) would be incorrect.
> -         *
> -         * Note that by adjusting the claimed amount here it's possible for
> -         * pages to fail to be assigned to the claiming domain while already
> -         * having been subtracted from d->outstanding_pages.  Such claimed
> -         * amount is then lost, as the pages that fail to be assigned to the
> -         * domain are freed without replenishing the claim.  This is fine given
> -         * claims are only to be used during physmap population as part of
> -         * domain build, and any failure in assign_pages() there will result in
> -         * the domain being destroyed before creation is finished.  Losing part
> -         * of the claim makes no difference.
> -         */

Much of this comment is lost. Parts have been moved, but I think another part
(in particular the first paragraph) wants to be retained here. Plus in general
when rearranging code it is best to take the original commentary as is (typo
or factual corrections of course included as necessary).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 16:31:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 16:31:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245771.1545155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxp8I-0003dC-FK; Wed, 04 Mar 2026 16:31:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245771.1545155; Wed, 04 Mar 2026 16:31:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxp8I-0003d5-BY; Wed, 04 Mar 2026 16:31:34 +0000
Received: by outflank-mailman (input) for mailman id 1245771;
 Wed, 04 Mar 2026 16:31: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=Xh4z=BE=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vxp8H-0003cx-JE
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 16:31:33 +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 9773717d-17e7-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 17:31:27 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-439b2965d4bso3461439f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 08:31:27 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439b4e771basm30370129f8f.0.2026.03.04.08.31.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Mar 2026 08:31: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: 9773717d-17e7-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772641886; x=1773246686; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cho1gBbzdAzbi5aNRaJ7Aduz2iliIVIo2vn0mUgOkJo=;
        b=KW6nYc4xe+PeGitlnpLpnSAdwSg2ZuxwXKvBDCBZ4sAMjId5L52CaaXNRKiXwokwTc
         lvNR3+rXZ48Z2w3jBDCoknAFpp3APhF28PNuQQF3OBaLAoQGabWDaauqIkxkJqWOmAtL
         xJwBKz2/ZIHyseesKBimVZ3h9loz1fOU46ZOEt+B2uswn5dkkmbt/JplJximnoIEUJ10
         U3oPMYPKd0NN1Q1adFE+2XAurXH711VdI0iaZQEWo5eL51dTp9YpZoXVBrXZaRT4LCFE
         ApPPn/8dNsjlYr3jwV3b1URVYGHp7Y9ry7UvH0hVE//d96LpaYqv3pMd30UE4T2rQC5Z
         J5pw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772641886; x=1773246686;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cho1gBbzdAzbi5aNRaJ7Aduz2iliIVIo2vn0mUgOkJo=;
        b=vCv/L4dkih5zUrUSk2za+/1N+QqGwBXWN+Ll94GNxAiOng0voxLYAkDaJubL4YQif7
         e7du5KXq2S31rOGsFRBoRb912SP6BH3UsWVy/n6zwtS5+XO1mzY7kA5W3M3HNnjc43hS
         4uQ84NPDt3chrlN2nNhnOJXFrnAlxgGZdnUS2qzz1U9vUg3AjrfUP9RH7WZBTsyz8IKk
         q9s4eZh7Rv1CrJFhYiqUGw6UNvfeBoNJYXdOhwYmp9c9qUfZckZfMrA/7/29AYdhDI1I
         0Q/bCyWx/1FHiys9GPCfIygz7RkchD0WJAezlAlRYr2mI5cvPXqlvqrf4DwYD2M81i7R
         xJMw==
X-Forwarded-Encrypted: i=1; AJvYcCXBqsBwvoZOa/ezaA9PyGyzoWec+0K53lmwPZAiZ3kX3yqXtI2ltxsHhVXQc1YNWB8VsBCnug/SFO4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxPQ02Lz0DJIsO1T+/3b0Tuh44taK1nCzi1hprfz6iCuzFc5cvp
	bKYdzVxoQkMcO3vGpdOSah6g9WaNt/dOATwumsBtydGZB3VTJ79tf2Zpwd0xcKBCeg==
X-Gm-Gg: ATEYQzyqgejZUAvaC/9kZVb+HUo17XMwnyRJfwlfLBAGzG2ADZTfv7aEelFojjGpg39
	OmyT0+WZpab1U5KgbuLi1vwYAkEHXAjcy8Fej3VclNl1764hjWcpDwlSeI94gIkHzGA+PUE75US
	mGYne+WOgnbAuKBdW5kIRN5qusdEojUcYiEAKhqNSZttYzbgciGuUixVKqRkl2pU+uKdP5P9yDL
	04uB/wIKnn5REy6LqeJoueqb0ad4ONF3eagOTEi+rGzPKtXn+diLAPVTTr7ysWLY9hQ/eGf4I3D
	cuu7QDl8h2D/BFgnR/4KS95NF5qHD6KJLk+cpYK/QY7Hd8Lulioxk4Zyqm3ozX7AcCa/v16aoC1
	+8zBB3lw6cgwc96DXbGnqSt9lvO7z/UIwp/jZmA5TayYHXsC+dPRT+han2xztiAol0DPOZr0O/I
	nC89o/R/CSo07NpCc3mAQdzIj4+Gxytk0CVGekHSkXEhz8H1dr3AGHR6v41Zp0Fe3EYq3T09Djl
	FuRxHbA52UtB9g=
X-Received: by 2002:a05:6000:1373:b0:439:ca9b:1f61 with SMTP id ffacd0b85a97d-439ca9b1fe5mr2735480f8f.17.1772641886481;
        Wed, 04 Mar 2026 08:31:26 -0800 (PST)
Message-ID: <5e4d4674-1e1a-4902-bcd0-a24fbd13dc8e@suse.com>
Date: Wed, 4 Mar 2026 17:31:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 02/10] xen/page_alloc: Optimize getting per-NUMA-node
 free page counts
To: Bernhard Kaindl <bernhard.kaindl@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
 <c56658d1248660543fdba162810b0629c081bd94.1772098423.git.bernhard.kaindl@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <c56658d1248660543fdba162810b0629c081bd94.1772098423.git.bernhard.kaindl@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.02.2026 15:29, Bernhard Kaindl wrote:
> From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
> 
> Add per-node free page counters (node_avail_pages[]), protected by
> heap_lock, updated in real-time in lockstep with total_avail_pages
> as pages are allocated and freed.
> 
> This replaces the avail_heap_pages() loop over all online nodes and
> zones in avail_node_heap_pages() with a direct O(1) array lookup,
> making it efficient to get the total free pages for a given NUMA node.
> 
> The per-node counts are currently provided using sysctl for NUMA
> placement decisions of domain builders and monitoring, and for
> debugging with the debug-key 'u' to print NUMA info to the printk buffer.
> 
> They will also be used for checking if a NUMA node may be able to
> satisfy a NUMA-node-specific allocation by comparing node availability
> against node-specific claims before looking for pages in the zones
> of the node.
> 
> Also change total_avail_pages and outstanding_claims to unsigned long:
> 
> Those never become negative (we protect that with ASSERT/BUG_ON already),
> and converting them to unsigned long makes that explicit, and also
> fixes signed/unsigned comparison warnings.

This wants to be a separate commit. It hasn't got anything to do in here.

> This only needs moving the ASSERT to before the subtraction.
> See the previous commit moving the BUG_ON for outstanding_claims.

Please can you avoid such statements? You won't know in which order the
patches are committed: Patch 01 may go in weeks or months before patch
02.

> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -483,11 +483,32 @@ static heap_by_zone_and_order_t *_heap[MAX_NUMNODES];
>  
>  static unsigned long node_need_scrub[MAX_NUMNODES];
>  
> +/* avail[node][zone] is the number of free pages on that node and zone. */
>  static unsigned long *avail[MAX_NUMNODES];
> -static long total_avail_pages;
> +/* Global available pages, updated in real-time, protected by heap_lock */
> +static unsigned long total_avail_pages;
>  
> +/* The global heap lock, protecting access to the heap and related structures */
>  static DEFINE_SPINLOCK(heap_lock);
> -static long outstanding_claims; /* total outstanding claims by all domains */
> +
> +/*
> + * Per-node count of available pages, protected by heap_lock, updated in
> + * lockstep with total_avail_pages as pages are allocated and freed.
> + *
> + * Each entry holds the sum of avail[node][zone] across all zones, used for
> + * efficiently checking node-local availability for allocation requests.
> + * Also provided via sysctl for NUMA placement decisions of domain builders
> + * and monitoring, and logged with debug-key 'u' for NUMA debugging.
> + *
> + * Maintaining this under heap_lock does not reduce scalability, as the
> + * allocator is already serialized on it. The accessor macro abstracts the
> + * storage to ease future changes (e.g. moving to per-node lock granularity).
> + */
> +#define node_avail_pages(node) (node_avail_pages[node])

This isn't really needed when ...

> +static unsigned long node_avail_pages[MAX_NUMNODES];

... it's a static array anyway. Plus you may want to talk to Andrew regarding
the use of such a macro as an lvalue.

> +/* total outstanding claims by all domains */
> +static unsigned long outstanding_claims;

As you touch it, comment style wants correcting.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 16:36:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 16:36:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245780.1545164 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxpD1-0004DF-Vw; Wed, 04 Mar 2026 16:36:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245780.1545164; Wed, 04 Mar 2026 16:36:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxpD1-0004D8-St; Wed, 04 Mar 2026 16:36:27 +0000
Received: by outflank-mailman (input) for mailman id 1245780;
 Wed, 04 Mar 2026 16: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=bY7Q=BE=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vxpD0-0004D2-5e
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 16:36:26 +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 4866cd05-17e8-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 17:36:25 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SN7PR03MB7273.namprd03.prod.outlook.com (2603:10b6:806:2dd::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Wed, 4 Mar
 2026 16:36:19 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.016; Wed, 4 Mar 2026
 16:36:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4866cd05-17e8-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fKcYAA+D8JUD5AHwq7nRbGmB1s+whJBWBlhlNVSThmmzPS3bAOdj0RZhw0Zi8iG1CexOqipy1n+W4tkAD9l8FnjOBdJSxDT+qkKTssdmjJGeGBsI607C81i8gTI5jFfUD3PPwqIa/pd7MjK4tftnlgA5lcZuIIWiDgV5amuxMFAAoAO2e7kcqTs9e8IfGsgYGodNUyrgahv4wseGbs2f/pzcWW5InjyFkKHNO+qFGNY+jDc4M3LtQUqFLIPCgBQ4oWI2Dc1XTd/1JEl3KXpAqTG6Dc7kRSalHDy6cXJ1DxwC7v77v4hISizeUL5idXwNbciOROAQTCR9l3246KgQag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6SWCLNezxbk11hmU1qh7DwEJLZHtpZYGIKiOyFAD5Gw=;
 b=UQBcuycomfcIDcbli509qePiv5soibYPov6TWs5amsW5oBlIJFi5TQA0cGIfwAYRKmAhsNR77sQ3HPFGraT6l7QD9YMpKDyI4/jeQM0E0HMkYBLGSQ3lwrJblhRcE2+OtgJ6UTLKgUZFDLa06v9Fceij2H8iC3goF4yBoL+UDxaD6mhhh2CFt+PGGaNbQsrwQa4NjuEdYw7kMKgTYreaNzUYAtJ1jZUHusVqi7l8UNG3Q7+eJXZ9UpLEku5Rywx8SnXMc1Zvgu5x3NagZtV9LIRoB1Z5odykpEbrIlDoCMp/WgKHDD5KkOFziqrxxApelloAewC9vZ/kK1VhAFbYeQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6SWCLNezxbk11hmU1qh7DwEJLZHtpZYGIKiOyFAD5Gw=;
 b=ZcrnmMYh4lRQEFexwn0U+HVjkh/O66Ly6nUe2yRNNEz4OL6qcItLjSSnbWjWhkPufZjdnv+aCxySWAb2uHYU/Wdq0eMfnKXmxLw/e7+BdoMNJEkY8umHBV1iKNRoveYGw8UYEs9ip6wsaCNJtUGI5fcDpU6oXJSxz1s6UKdSGqM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Mar 2026 17:36:16 +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>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Penny Zheng <Penny.Zheng@amd.com>
Subject: Re: [PATCH] x86/ACPI: _PDC bits vs HWP/CPPC
Message-ID: <aahfgDDNVwJPa-jF@macbook.local>
References: <ca1812c2-dadf-422a-a195-9c285ce08077@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ca1812c2-dadf-422a-a195-9c285ce08077@suse.com>
X-ClientProxiedBy: MA3P292CA0069.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:49::9) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SN7PR03MB7273:EE_
X-MS-Office365-Filtering-Correlation-Id: 0e47eac8-9b1a-48a4-fef5-08de7a0c299a
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:
	jDmISeA4FiRzJq6CFzWI+1iJ0FDPtRctmyqMbv9oSh4oJ5A77pq/OsrYgiMkwQe3UQjYVZTro8M+8g7yQ66zlcYXkzhRIzK/s2cNIGfdz2vKX81Vbj6AIS/7yaEw/PyZ8zUrequSzZao+3L+HAsJ2bblnl0mI9+Ks5MDS+btO91JLgugZbbS2xYsTFjDsvKuzlQWZqq4EOUieqI8tlq+P29eayoSAeXHPq+m9kcy/yAVLqQ3JzDGP1rA9j7vh1ngjmbFu8mP3qz8axQx5oG3FqPa6YzNtgZUOJTtO7Y4TMqK4sVzHUKPNXFpXmq3y8D/mcP3uyKWOQDnQ6Iq2XjYG2N6OoBm9zGLrkOM0tCDILDdXj2qYOhFPobUrXfyWvHlucbtotoNgFc1DJeJhKiKdtSok1gUmEauk5cgfg5TH6ZVV2fM7w4gunmMTAJ4kuHFBcyK71mBtEOYdif9Rjxk22/nxP4Pm5QJ+6lJ/VhFyNctI+BLwMdByv4mJtRyJHZn5/rZ0TxQTGgZFSXHvIhC3VifDauqzhsAU+cY57G1qYE8gqmX9B0Xo5+bZ+yxgsWaNU2g0lVQhU6Uad1SHqn2YoAQ5/5nIaU11S7Zk5bA9eJ/zZinpBowdC4ucs/5P+VjWa/ertAy109P4tnLaL1kZye/4kM03+jj7NN5ASJVUTpcdE8TCh3kjRmPZ+w3nZ4eTP9S6TrPTc9aQtTxZSkYkpBLQ78h97bJXrwUXDWzqBE=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?amxUSVB3RzhxRHIyUEpRdU1nK09id21sNDBGeG1VL2NCdVluZjlGeE9QNEVL?=
 =?utf-8?B?ZUZRWWd5dHFoUVBsM2UwM29WZGFZWEZWS0loM1MyWHJYSmJVSUtkcGxjRkNO?=
 =?utf-8?B?Y2NrNFpQTENkcUUvQll2MkUxSGxYV0N6bTNEWmR0MUhTY3VvaDdRek1KQzJn?=
 =?utf-8?B?R0pXS0kxdzNwdk9UcWFFYnkwdEhaT1VpaGcwWVpac2I1a08zeHJJd2ovaUQ2?=
 =?utf-8?B?OUJyRU50dGNSOWtFeFl1NSs1MnhLd0c3YUhVanBxdmpNY2JzWC9GL1FmNGZR?=
 =?utf-8?B?bzNpeWJCbzBINnE5NTk1SnNSTVBvOTlWQXBRZEhtRVVlVi9pMHR3OVBGMnZL?=
 =?utf-8?B?eCtleTFRM0lKZ2huMWpLK3lkZVpXQnBIOWZFMzRIR0JyNUIrelRqYWJJeDdF?=
 =?utf-8?B?OE82YzUzaS9tU25vbG1jTGFZMXZhcGVTTDB0TnlQUTNGeEY2T1hySWJuWnlO?=
 =?utf-8?B?ZEtrNXp0ZWIzaFFkb25iN3owTlVTK3VTMVp2emc0cEJLR0QyZ2RqQnlZU0Ew?=
 =?utf-8?B?eVhGek4xUEZnNXhHblNFTGxqdS9iZ2YrbzE0NTdHbzltVzJFRU9TYmRFeDJ0?=
 =?utf-8?B?NzJCYm9nMTVGUEE5WmJ0MTY1VXlUL3UvWVByQ3lyS3g3c0UrSFRrMHFXRlNT?=
 =?utf-8?B?d015dWtIRWdEaFJXOUJQREhSdnRmeTVWeHN5Rmk0V0E5SmVCSnBORGorNkx6?=
 =?utf-8?B?SThvSTJ6TW5BSVNzQjZVejBhdmErNVI3RzV1ZGRXSDRvNjU3QkVhQnFJeGtN?=
 =?utf-8?B?NnkzZ3NZSTRhTCtRcGN4NW01em54Y3orYWxMZkpzTEZRc1hJbHNFQ2k0ZlZY?=
 =?utf-8?B?R29TTFBBbzVoSUhyb04zekI1RVk0SnBLL2NxaS95Qko0L2gzTklQUGE3VlJl?=
 =?utf-8?B?RTN2TXJPTlQ0dVFkSUtqN3pUV250YjdJN0IyUGpndFZpdGwzZi9UWUE5cjBF?=
 =?utf-8?B?bHY4cDVFL2xkeFQzMVhrZUtYUlBINWZXWFg3cHkxWlpCYmZITlVDK3J2NExE?=
 =?utf-8?B?M2VYY3ZoVTZTeXdUMTJxbk5CR0xjY2gyTFVmWlZyekVuamZWRXptYUhVV0N1?=
 =?utf-8?B?MFZINmNuSC8xT2xOQ1pCczNhQmFvbjZielNUTFRBZ29Ha01DaHEzMjdYRGF1?=
 =?utf-8?B?QzVIWisrMkN2N0tkZ2d5K1NBS29XR0t4TU1IQWpyR1doUGluK0ZpK2hGbEdr?=
 =?utf-8?B?SzdIcy9wRmxQK09NSEwzdmZ6Mk80T2F3ZXNPc3pWa0JrNjJ3Nm1ma2F2U2di?=
 =?utf-8?B?MTJieVFIeTMyeERKZ1F5WGdXcDJ0VmQ0Qlp2L2E2TEYwbE1GUFVrQzR3cnha?=
 =?utf-8?B?b1hhOG5odURQWGluUFAzZVE5K1F4T1FSdzk5SEJBWWg3eVNlOGkxWHArSW1k?=
 =?utf-8?B?OFRtMG81eVFOb2psWERWbmVFUkJZZHVzYWtyUnVaR0svbEtJRFBxTk5OQ1Ru?=
 =?utf-8?B?ZnNPVWNuU3NuSHdBNktaeWNDdzN5anJ6TXhic2dLMk1ueDJqREEyZjlWdjdI?=
 =?utf-8?B?OXBiMitoM05PajRSRzZTdlEzR1pUdzhuMWtBUzhHd3NMdVd3cllxZ2FidEwy?=
 =?utf-8?B?TDJDekk5SnkvdU9JTDdDN0dKZFJSMHc2WktBS2UvYmJ4dFFjUU8yRkR3Umo4?=
 =?utf-8?B?TzF2RHlLNEp2V1hndHRlMStiN0xFbjczT2V2ZVJ4ZTRzeEZQL3FwdXpWVTRn?=
 =?utf-8?B?djJsU0NWK0l4bEgrVWxycC9wUU9YanNFWXJDdmZzN0pwM0ZjZGQ5TW83MDRE?=
 =?utf-8?B?KzJ1Wk5jT2JCRll0RE9HclBmZUlYbFpGdlEzU0VTNDZBZ2orLzNVZWlzTS9O?=
 =?utf-8?B?QW9YMUNldHdQV01INitYa2piSml6UE1xaGIyd0VWMWozajJJVWhMR3I4MWNH?=
 =?utf-8?B?K3UwcEQyZnZETmcrWURSakpya0EvaGwvaGhtNitnZStyZnFDcUd2OGlqOUxn?=
 =?utf-8?B?UE9FMVU5bCtOTlJVajRKUHViNjVKZ29yMkhaRzlMSjhVRnlQeGdBTFAvTzRv?=
 =?utf-8?B?M3FSeVE5eCtDOWszbVFqemVkc2FqQlNmTkJUTXdsWHVqek1GbkRJSldlQjRI?=
 =?utf-8?B?WnpQMVV1c2g5QXR1bUFVMWtjS1pkWkdzWTcvUmJBdndpTnZDUkdWZFUrTisx?=
 =?utf-8?B?NDlMK0F5bXI3bC9aU0IzWDkwUU1NWDJ4YUlRcnZYYi9Sdm96MEhqbjdZY3Jj?=
 =?utf-8?B?NjA2RWgyVzA4Y2FQSTlpT1JLNkMyS2ZLUS9oNjkzMFFqREFmemVRZ2lhZStl?=
 =?utf-8?B?MTZ4dzg0bzAyYlRIQkJlb3QxQ3RRSXJ5eFI4MXBTeTNKckhoNmJUWitnQ0Fh?=
 =?utf-8?B?WlBHMEptakRvU3BoRmdxSEpGRWJMcFNoZHJMdGFncnpTVG5KbHBqUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0e47eac8-9b1a-48a4-fef5-08de7a0c299a
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 16:36:19.1496
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: /40Lrc5lOmIYe9Qn6kSDZcoupmzxYaAzM055FcgG+RUQubzIwAcwhEC/RgVHNkNpEt7hcni4ZuFkGP/uqACp+w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR03MB7273

On Wed, Mar 04, 2026 at 03:37:25PM +0100, Jan Beulich wrote:
> The treatment of ACPI_PDC_CPPC_NATIVE_INTR should follow that of other P-
> state related bits. Add the bit to ACPI_PDC_P_MASK and apply "mask" in
> arch_acpi_set_pdc_bits() when setting that bit. Move this next to the
> other P-state related logic.
> 
> Further apply ACPI_PDC_P_MASK also when the amd-cppc driver is in use.
> 
> Also leave a comment regarding the clearing of bits and add a couple of
> blank lines.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Including XEN_PROCESSOR_PM_CPPC may need accompanying with some change to
> arch_acpi_set_pdc_bits(), but it's entirely unclear to me what to do
> there. I'm unaware of an AMD counterpart of Intel's "Intel® Processor
> Vendor-Specific ACPI". Plus even when the powernow driver is in use, we
> never set any bits, as EIST is an Intel-only feature.

We possibly never need to set any bits there for AMD, as those _PDC
Processor bits are Intel specific?

> acpi_set_pdc_bits() having moved to the cpufreq driver looks to have been
> a mistake. It covers not only P-state related bits, but also C-state and
> T-state ones. (This is only a latent issue as long as
> https://lists.xen.org/archives/html/xen-devel/2026-02/msg00875.html
> wouldn't land.)
> 
> --- a/xen/arch/x86/acpi/lib.c
> +++ b/xen/arch/x86/acpi/lib.c
> @@ -124,6 +124,9 @@ int arch_acpi_set_pdc_bits(u32 acpi_id,
>  	if (cpu_has(c, X86_FEATURE_EIST))
>  		pdc[2] |= ACPI_PDC_EST_CAPABILITY_SWSMP & mask;
>  
> +	if (hwp_active())
> +		pdc[2] |= ACPI_PDC_CPPC_NATIVE_INTR & mask;
> +
>  	if (cpu_has(c, X86_FEATURE_ACPI))
>  		pdc[2] |= ACPI_PDC_T_FFH & mask;
>  
> @@ -142,8 +145,5 @@ int arch_acpi_set_pdc_bits(u32 acpi_id,
>  	    !(ecx & CPUID5_ECX_INTERRUPT_BREAK))
>  		pdc[2] &= ~(ACPI_PDC_C_C1_FFH | ACPI_PDC_C_C2C3_FFH);
>  
> -	if (hwp_active())
> -		pdc[2] |= ACPI_PDC_CPPC_NATIVE_INTR;
> -
>  	return 0;
>  }
> --- a/xen/drivers/cpufreq/cpufreq.c
> +++ b/xen/drivers/cpufreq/cpufreq.c
> @@ -694,14 +694,23 @@ int acpi_set_pdc_bits(unsigned int acpi_
>      {
>          uint32_t mask = 0;
>  
> +        /*
> +         * Accumulate all the bits under Xen's control, to mask them off, for
> +         * arch_acpi_set_pdc_bits() to then set those we want set.
> +         */
>          if ( xen_processor_pmbits & XEN_PROCESSOR_PM_CX )
>              mask |= ACPI_PDC_C_MASK | ACPI_PDC_SMP_C1PT;
> -        if ( xen_processor_pmbits & XEN_PROCESSOR_PM_PX )
> +
> +        if ( xen_processor_pmbits &
> +             (XEN_PROCESSOR_PM_PX | XEN_PROCESSOR_PM_CPPC) )

Currently the CPPC driver is AMD only, and hence when using it we
don't care about filtering the _PDC bits, because the ones Xen knows
about are Intel-only?

As you say, we likely need some clarification about whether there's
_PDC bits AMD care about?

Linux seems to unconditionally set bits in _PDC, so some of those
might actually be parsed by AMD.

I think we might want to split the setting of XEN_PROCESSOR_PM_CPPC
here from the addition of ACPI_PDC_CPPC_NATIVE_INTR into
ACPI_PDC_P_MASK.  The latter we can possibly untie from the questions
we have about AMD usage of _PDC.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 16:54:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 16:54:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245802.1545174 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxpU0-0007Ht-G9; Wed, 04 Mar 2026 16:54:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245802.1545174; Wed, 04 Mar 2026 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 1vxpU0-0007Hm-DK; Wed, 04 Mar 2026 16:54:00 +0000
Received: by outflank-mailman (input) for mailman id 1245802;
 Wed, 04 Mar 2026 16:53: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=bY7Q=BE=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vxpTy-0007H9-Fx
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 16:53:58 +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 bbb0e46c-17ea-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 17:53:57 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by IA3PR03MB8476.namprd03.prod.outlook.com (2603:10b6:208:546::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Wed, 4 Mar
 2026 16:53:53 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.016; Wed, 4 Mar 2026
 16:53:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bbb0e46c-17ea-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fdVBYAyJdRj31I0gjIBPhXd5LrJ8rVyrm3Ysj+KEE4bUCeRMMQsxlj2Ekp2rPEIKa0dP5OhsbHXyY4ctj3eKOHUrTj7SWUkkyJ9W0C2at0MpBy6OEzpZEhloZtEpwETHJ7fpQsjN1pbeyAmBpd7RWBjQ3IvXXmZwHIHYFQWodBSnjot7PSjyj12Cc4g+MpGqHciBTBijKz//UreDyn1nh3G/nQidve2SFdtDbXtkliRRie31EuCpTYCI+RY56xpj4byCb1pkW+klDBmoxUEW0XAGeypVMmvdqmD4i4LIyY5SLbNIhrI+y95n1YAnUoW9WYCX/UTQmYssAHP/DHH17A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MN/AJP09JF9qcdDot8V4nIdKNZMqeXmKBDo6YqcnPAg=;
 b=KSFQCF2QbrC7efb/DH1kFj+9UjooyGwD7SGXQEAdRJfFYpCbxzSf8rkbCmXtVJkYSYi/yyVEnK37m+pgLsUjwMpHrY6X/1o7hZAlygQxxaxsaRwwLZhwGxzQdZZrFQf0J9W5FG0GqB1XA7nxsDzfNAXVvKQDJj1ed5+ErgVKd9ceaTTrZImcAUBBeQrwZ9J7E+5SYyyZQqkjf0tj/CR2FGuCU5mZrnj4wIYDexpsC/H0mhxIeyU109cLUf0S3a3wmopILvAiGjKp8qDAdo8eOxn2xTPi8BpsfKlCq5Rt+G7mSXgVTynzHLStlkdK97IzFm5thHMt3w3eh/8Ls1yhfg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MN/AJP09JF9qcdDot8V4nIdKNZMqeXmKBDo6YqcnPAg=;
 b=WPc2Zb+9a7cKlyqp4Jhb/Uikym3OsE4/M2rihJr6NQqFDN5UbAbBYPK13qSbcLQ3PVgTjcmmy9UG6pJ7xX4qZ2FqFDGBTowp7UufkAb+FkZi2OlRc8c7pbkDizXbEVMfveEk3/usf1Cp17Y2WBys07nihVlNqYOE+B3NqhGxim4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Mar 2026 17:53:51 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v5 5/5] vPCI: re-init extended-capabilities when MMCFG
 availability changed
Message-ID: <aahjn-NXjmC2A-_v@macbook.local>
References: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@suse.com>
 <9f1fcbfc-e7b6-4ef3-8f58-c88f9667d606@suse.com>
 <aahKkV2csf28Y0YC@macbook.local>
 <7d7b75b7-80c4-4c23-8678-b33f4c90132c@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <7d7b75b7-80c4-4c23-8678-b33f4c90132c@suse.com>
X-ClientProxiedBy: MA3P292CA0035.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:46::14) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|IA3PR03MB8476:EE_
X-MS-Office365-Filtering-Correlation-Id: b09f8084-0e64-4739-83eb-08de7a0e9e37
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:
	wgRpl+wdmujDYp24ilGJbqJrD4NhOzrlY3k75rIhJgB+4ipBsjBt8fFiHud+nXlwlEFt0X1+pKdRIq7QPU7i8LMz+10UzUhvWE/8sAQBF+b/FfPYjwoZtkgsOHs34KWl9OdeqsyWeLwPW2PSq3SoDUXWaoBfJfCSt6Zj0/fO25FEq/QSfmm7mJhnEcIcoNoM1DCLRWEeQ4mkBveLDosKtmGrbOBQ/kpNOea4W5RXIrd67MqTXuIxZiF49mVB6jtoKRstZOnL3d2VXWPoXXvtiNEBUyNi6Ibwt5HQeHa0EkoaEWE6BlJOA98+dtGNkshu4687oJOWj3heKOh6rKvlUgE/CBlJzr+liP6w3mhIlknqyAMqD/ELbsMNyO9tWGrtIWEbbEBszWG8hVCzul4TGWgRxLAlx3w8NCR9/LVkLzz5A0frI+OquE5vVbexAAg6PyOxqu9RvOVVTS5eI/ixZqhiRHwNPpqFla5pi3CNQrpfCka0gTBZ8vl8biJPHTP5lusybmPbDqZn9Cwcpj0eYE5QHHvEC4Wj5rff3Rs20uGWXSYQBprqLhTgOkMgx29Eey+bMvgxRYsb6oEpn40RT1hWeYhXACkz9KWp95ltdDrCzUpSc1ixyogkCun4ZJ9gJ1vWAXcJXug4FD93sRUEkezhO6aZYQFf+sKAyDyLjrIx9pimxHbX8DChseKw7shL7EfWqg9XburcGLEjW/a4+l7kE85dEVES6lON2Lw7MYY=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RVZDUCtzd3VOS3duaW01MXdaaTBHVEpnQXpvSFpkY0hyU2lEUCsza01SSkZ3?=
 =?utf-8?B?eDF1bmJuR2FkQXlCbTFBRTJhRncwQ3RHNlpCdGtIUHFkSkUzektTK2plV3po?=
 =?utf-8?B?cW9DM1cxQ1B4VzA4SEwvQm03eHBBUkFuK1I1VnlzTnFUcFFqRlJmYTczcUFn?=
 =?utf-8?B?TDJvYk0wbUZSQnM5MVJzZUpNQjhzdDZzMmQ5dEd0YjRHcjBLLzZBV2FTNTFn?=
 =?utf-8?B?czdPYkpCRThiTlhSYXRjZk1ReTVhbEZwOExvUm90UGpPMnljNG5oM3pVWmZJ?=
 =?utf-8?B?UXlmYWd3ZzJENGJ1RXQ2ZUlJWXVIT2trWkVZbERPV1ZaNWVhYWM1STdrTDBK?=
 =?utf-8?B?YlYyWnFaTHFaaVl4V2tGUEtxanArdXZNRWwvR0EyK3QzM0tWbHk1YVNYWmlF?=
 =?utf-8?B?SElJQkVqTHZrREJwOVR5QkdGZUZHVEQyS3pwbHpzenBqVXJHWVRRTHdaSk5J?=
 =?utf-8?B?WjRIOXZ6RnY2bFd5dkhzSW9lTjN0K0xuYmxWMVZScDNDWWljZWRtOW4rZ0x3?=
 =?utf-8?B?RlVUczh6Ym4za0Y0Uk4rU0VNSmcvNlYwZHE3MDRUUWNjbzhpMG56akh5YWZV?=
 =?utf-8?B?MnpKd25wWjhZQjdScEN4ckQ1bTZsWFRLLzh3Q0ZTVFVkd1dEdjUvRWE0VlNR?=
 =?utf-8?B?N214RE14bXN6a1Z3Z3VpWVVPeS9ZQWV1SFl3ZkEvMjM2WjdyL3FtbWRwTVE0?=
 =?utf-8?B?ZlVxaDdsR2FZclRjQkNiOThQdm55TW5GaFdUMkswL2hESUJZcG1IeVBrOGkv?=
 =?utf-8?B?K09Sd21tZDZON1FHVFBXejNRYjFZM2lLUjAvbUl1MHhCbW5FWWV1Tk1NVTdy?=
 =?utf-8?B?MjFDRVpoYW9wRXJwK1MrS3NYN1hVeG8yQ2NnMStPS1ZzSlJlalN2TXhFcWxv?=
 =?utf-8?B?ZUEyYllKanIvK20zMjNNL1Y5RnNHYnlUWkFNQlpFZ2x5M1l6RXhSOTZ6dlZO?=
 =?utf-8?B?MlBFc0ZLUE9WR2hQZzlib3h0bnVVbkhZOVZUN3l3eXppbUFOby9SMlRxRWFt?=
 =?utf-8?B?Y0xKNlA0RUlHaEZweVVaVnhwc2FXSzZNbXZkdUdWcGdlbzhZQUxaSDY2NE1t?=
 =?utf-8?B?a1crc2hjNVVkaXBKeFBWb3hKQzgzM0QwbmtJR3E0SUk5SVdrQ0FQSEFpRGZm?=
 =?utf-8?B?Z2tKVG5HTUg1VWcveDVrSGlVWWxPb0FuRnBLc29wV1VjWDNzTnBTZGNXSGY5?=
 =?utf-8?B?S1dTWHZXdlNGcGJBOEdrRkx6dDRMRFhZMEdNOVRxWXlIT01lb3NNbERPL3Bn?=
 =?utf-8?B?dHpaQ3FBRG1TbnRmc2lGRmdPekNOVEsrZXNNakZIc1Z0eCtlZGtUSmN1RmVC?=
 =?utf-8?B?NlJENlIxWEhtYTNiN0QrLy8yMzNpbjJrRm4zTDlnS3JzNzlGelFQQTB4di85?=
 =?utf-8?B?MUczajI3UHdNYkRHM09DeXpTSSs1dSthM1ZPWnBBMGJNc1NNcHV1aDBpTE5o?=
 =?utf-8?B?cHZIK0F2SjRjMTFsMW14Nm9CN3dXS0dGU0lMZHNPUGdyVm9SS2dVY092N295?=
 =?utf-8?B?LzJmbVFac2xUWGt2SEZMYVBKOWJVWVJDMWkxMFhVelFOd1MrR0NZUFFWc2tW?=
 =?utf-8?B?em9Db2gyQjIrWUpOeXQyOFdIanRlQ3JZSHV1ZW1pK2NrMEFwdjgzVXJHNGxa?=
 =?utf-8?B?cTNrT1dQcGNhWjdvbHdrVVNiWEdhSEdwSUY4ZE81aVdJZmRGMzduTGpGdlJM?=
 =?utf-8?B?aXlnRW4vSlh1c2xOYkdXWm1MYStBamhFMDVzemlUTzJoQzBQc0ZyOGFUaGdK?=
 =?utf-8?B?MTJodVhLUEFJZlVGbFd4SnJvcklPN3hmN1JITmZwOVRiejVGTnpkRzIrYk9y?=
 =?utf-8?B?YTJwODVsUW00OEF2VHl4MWhyVDltT0NYVVB1RWpFTXg1QzBSam92Skx5Qmd3?=
 =?utf-8?B?VC83RjVYWGhzZlQ4b3J4dHA4YmZ5TmttR2Y0eUJGTG85b1loUjZlUDFqQzJp?=
 =?utf-8?B?eFBqVlJ4cUNUb2ZTV0s5bXFJeDhhT21HdWllY2xqREhEN2lMUGQ1OCsxMkJO?=
 =?utf-8?B?d0FHT1hYekxSOVNsYjZ5S3ZBNjdpaSs1L3NxM1lZWFhiU3VERm9HVk0weXYx?=
 =?utf-8?B?MkJDbW8zYk04RDhGYnljbDNaUjVDZ0pvdnAvSWkzUm9BOHhGMlp6UlJjNzJU?=
 =?utf-8?B?YmpRWVg0ZFVqelpLK2R6eGh5ODgxWkkyTUFTZXRsVkk2Q1JaRHMzaS9aRSs1?=
 =?utf-8?B?M0ZWSVVTZ3BPK1RDbzcyeHIyVjF4S3BpeXZ0VVZtTTIzOG9HRUJ0alJEUi9Y?=
 =?utf-8?B?RzAyNXJIRjVLcHU5TkF5T3h5TFdOeWFIZ3FzVno3Q29FQUcrTStnTEdhTVZF?=
 =?utf-8?B?SXhKNW1NL1Fib1hZOE1Rdzl6dnRuU3Y4akh4R3E1OHRXV2lLOHBQQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b09f8084-0e64-4739-83eb-08de7a0e9e37
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 16:53:53.7582
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: +WaU6RvYQAxe/ymTzso8hUAGTGWo9j3lnrR8HVAWGZyoW9vn1QSB6gJYc/UZGxmbQ2Qj/1yLjjFkjTdWETzlGw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR03MB8476

On Wed, Mar 04, 2026 at 04:39:00PM +0100, Jan Beulich wrote:
> On 04.03.2026 16:06, Roger Pau Monné wrote:
> > On Wed, Feb 25, 2026 at 12:44:44PM +0100, Jan Beulich wrote:
> >> When Dom0 informs us about MMCFG usability, this may change whether
> >> extended capabilities are available (accessible) for devices. Zap what
> >> might be on record, and re-initialize things.
> >>
> >> No synchronization is added for the case where devices may already be in
> >> use. That'll need sorting when (a) DomU support was added and (b) DomU-s
> >> may run already while Dom0 / hwdom still boots (dom0less, Hyperlaunch).
> >>
> >> vpci_cleanup_capabilities() also shouldn't have used
> >> pci_find_ext_capability(), as already when the function was introduced
> >> extended config space may not have been (properly) accessible anymore,
> >> no matter whether it was during init. Extended capability cleanup hooks
> >> need to cope with being called when the respective capability doesn't
> >> exist (and hence the corresponding ->init() hook was never called).
> >>
> >> Fixes: 70e6dace747e ("vpci: Use cleanup to free capability resource during deassign")
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >> ---
> >> vpci_reinit_ext_capabilities()'es return value is checked only to log an
> >> error; it doesn't feel quite right to fail the hypercall because of this.
> >> Roger brought up the idea of de-assigning the device in such a case, but
> >> if a driver doesn't use extended capabilities the device would likely
> >> continue to work fine, for Dom0 this probably wouldn't be quite right
> >> anyway, and it's also unclear whether calling deassign_device() could be
> >> done from this context. Something like what pci_check_disable_device()
> >> does may be an option, if we really think we need to "break" the device.
> > 
> > We may want to add a note there, stating that we have considered all
> > possible options, and hiding the capability and hoping the owner
> > domain would continue to work as expected seems the less bad of all of
> > them?
> 
> I'll see what I can do.
> 
> >> The use of is_hardware_domain() in vpci_cleanup_capabilities() was
> >> uncommented and hence is left so. Shouldn't there be a DomU-related TODO
> >> or FIXME?
> > 
> > Hm, yes, possibly.  I think limiting extended space availability to
> > the hardware domain only has been done "just" because we have no
> > extended capabilities to expose to domUs so far, and I don't think we
> > even setup the extended capability list in the domU case.
> 
> Considering how many things there are to be done for DomU support, I
> think it would help if every place where e.g. is_hardware_domain() is
> used only as surrogate would be properly annotated. Or perhaps properly
> named predicates could be introduced right away, so one can actually go
> hunt for all of them. Then again is_hardware_domain() is also something
> one can go hunt for.

I would mind having more concrete predicates, even if right now they
are some kind of dummy checks.  However it might be difficult to
formulate those know without having the full picture of what domU
support requires.

> >> @@ -349,22 +352,23 @@ int vpci_init_capabilities(struct pci_de
> >>      return 0;
> >>  }
> >>  
> >> -void vpci_cleanup_capabilities(struct pci_dev *pdev)
> >> +void vpci_cleanup_capabilities(struct pci_dev *pdev, bool ext_only)
> >>  {
> > 
> > You could short-circuit the function here, ie:
> > 
> > if ( ext_only && !is_hardware_domain(pdev->domain) )
> >     return;
> > 
> > But I'm not sure that would simplify the code of the function much?
> > Likewise for vpci_init_capabilities().
> 
> Such a short-circuit would need replacing / dropping once DomU support is
> added. I was hoping the chosen arrangement would make for a little less
> churn at that time. I'll listen to your advice, though, just that the
> question gives the impression you're not quite sure either.

Yeah, I wasn't fully sure.  IT would be nice if we could add those
short circuits now, and then once domU support is in place we just
remove teh shortcuts and it works for domU also.  But I fear more
changes will be needed anyway, at which point the short-circuit is
not that attractive to use.

> >> +
> >> +    vpci_cleanup_capabilities(pdev, true);
> >> +
> >> +    if ( vpci_remove_registers(pdev->vpci, PCI_CFG_SPACE_SIZE,
> >> +                               PCI_CFG_SPACE_EXP_SIZE - PCI_CFG_SPACE_SIZE) )
> >> +        ASSERT_UNREACHABLE();
> > 
> > Ideally this would better be done the other way around.  We first
> > remove the handlers, and the cleanup the capabilities.  Just to ensure
> > no stray handler could end up having cached references to data that's
> > been freed by vpci_cleanup_capabilities().
> 
> And maybe not just that: For the hwdom case cleanup_rebar() adds new handlers,
> which we'd wrongly purge again right away. (Because we pass "false" for "hide",
> this isn't an active issue right now.)
> 
> > And we should take the write_lock(&pdev->domain->pci_lock).
> 
> Now this is a request that I'm struggling with some. I can see that callers
> of vpci_{init,cleanup}_capabilities() assert that the lock is being held, yet
> it's not quite clear to me why that's needed. Shouldn't vPCI internals all
> synchronize on the vPCI lock of the domain?

Right, the callers of the handlers already hold the locks, and the
removal of the handlers should also hold the locks.  The point of
taking the d->pci_lock is to avoid the device from being removed
while there are vPCI accesses against it being done.  The vPCI lock is
fine for vPCI internals, but functions that deal with addition or
removal of devices need the d->pci_lock to avoid races with possibly
freeing pdev->vpci while in use.

I think you are right, and for the usage here (that doesn't add or
remove pdev->vpci itself), the internal vPCI lock should be enough.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 16:54:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 16:54:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245808.1545185 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxpUZ-0007hC-Oe; Wed, 04 Mar 2026 16:54:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245808.1545185; Wed, 04 Mar 2026 16:54:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxpUZ-0007h5-Lg; Wed, 04 Mar 2026 16:54:35 +0000
Received: by outflank-mailman (input) for mailman id 1245808;
 Wed, 04 Mar 2026 16:54: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=bY7Q=BE=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vxpUY-0007fV-Ba
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 16:54:34 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d08a7dca-17ea-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 17:54:32 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by IA3PR03MB8476.namprd03.prod.outlook.com (2603:10b6:208:546::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Wed, 4 Mar
 2026 16:54:29 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.016; Wed, 4 Mar 2026
 16:54:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d08a7dca-17ea-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yi1nqTE2m9zIv2CAm++COvJmPlUuCsmb38rM7nyAhjF4pB5pJZyHZTwHq17iNYEyNb26X6ZCrgJ6eXRD6bOT3YZdtEPxMEVJnpii+qehbP6EXokeYxzeNyq5IziVh7OtLoD45uoTiX7CQE4A069907dnEER6sn2vPkJoHe/kWd6RtuN5vWOvOHpgPurqLSJODDxRMraKmZkkhkUkMZmDc4ADPtIk84bWgRzoo4mRxr80z3Kg6iaZOYGJqAxsua9nzeMRxoPr7MkjKINZ7vbsZXgjIUqLDveim6vbSZ8UU1pYth1hUE9lD8KGx2kB+5KCSpfN+TW3UmYCiAxRtriaKQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uC7NLkYgKm3Arkz4reuBJQX25+4AxfjyXOCHSyXKcG8=;
 b=EcN5WfLSWybXB7sWPqWJisrTbeIAO//SRLqTaM/q+3EWGJ2SrdAH9GbweU4B5W7wkiWCbLyHT75crXpZOiXhYMPGyLStewUGfcLv+9MtLK6ZoqzOLEf70RlMdq7Ra+rrgnFMEAaug9bKfFA1DOOlqSvvR4tfcLNpRm3xz0F3FaadpXhsrgBwP+xWrnVgiJgzDYAKGC5JnqRSjRA0mKFDCUUwIeRb9YVj1IkOJMmVr2W6Wc4cBAPUgrO29/cV3qLRJh6qcComXQVnAGY68jHHodl/BkE7vzvwDLuhlRhhPwVZo1NdZkh2gYkW2xd9rvfouaz308FHJhQYA+TbFK37pQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uC7NLkYgKm3Arkz4reuBJQX25+4AxfjyXOCHSyXKcG8=;
 b=FtzaX+bU8ibBaJpo4WRPm8/LrzcIAcIYZ9+3nDk+w+Iz9wX+2lfP2aTR0Cyp7FwsxR52imyiEsCyTssxJdJSFK1awsYdVdJ8OutQd8R4RbFKH2aYKBqh+m2Fk7PkEvKW0mibq0Hx5LEPDOxNTfSa+pVdkfknt3KE5S82dp+d1oo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Mar 2026 17:54:25 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH v3] vpci/msix: check for BARs enabled in
 vpci_make_msix_hole
Message-ID: <aahjwTA0LLm7JISA@macbook.local>
References: <20260226025740.71673-1-stewart.hildebrand@amd.com>
 <aahOeefbhHq7IZZx@macbook.local>
 <1e62a5ad-f865-4477-a899-0182dec38901@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <1e62a5ad-f865-4477-a899-0182dec38901@amd.com>
X-ClientProxiedBy: MR1P264CA0182.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:58::18) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|IA3PR03MB8476:EE_
X-MS-Office365-Filtering-Correlation-Id: 634e3eea-79f0-45f3-d8ff-08de7a0eb36f
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:
	qgxvPtIPHKhv+7Qc2ZAVDcYW53NW+IjGZnTxTpt2Nw6CqxHcdJmLDr0Bv6yabOqU5uKNlqztlAgeYu9Z11mFwzIhClFxdGALpQOfOhTqd+B0METnAQK+1peIPUroa3g4p0YaY9+U4HOqQUS0lt39Rjw5k4yikNSxBEFYrAbMIBIYxVk0tWqYzgTVhuwgyeIS7Cud8Bo97sTiuOZN/xWgRhNDt+aMNIcq5Lx4ZtdcDmo9GkoJeh6l1dT1kojwLj+0o3v9gPDD+mt36Wb9ugZR9IR82MxnP5WrCfBhXROM9DbVEf+MYoc5KXANvg9BvexX/SHFM8np/vPssWU4HgYQfCO5yhjUK3yoz+1DA0U4b2yKS4MRivRIbBhPi1rggeNq/rY6CoHCJY/2XMOv3XCbOpeGIVU9DPzv7reQGBefPfVrW6O7P2qE7NTfYYBWkxJBCAm/yrE8SiCutg3JLz5aeBI9Gr36ltqEO9pq/2lbldvTk2pufVTwL2nyysjUEJKWG3KjdioTNRuOCu84VmnkGraLTmU6Z/M2Lh3v7hLyrrM81ZGxMUF8VRJSU0Q7z90xKPROGrvce0Kc1TMExQwGCdRzDA14UsNC6uxYhid5FNiGtQfhOhhXRcIsX3oRbZI8gjJ0UInXcz+Slh5gcMXLG31BM7wNh6jz07+JlSRcts0preY3uy7WIpY28ENsFx8G1vQ5cB8aEDkw29z1UB6B+EajFNtHX57s87CRrN4UwME=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ckFDZ0QwNUdMSFRrS2QzWmc0U3JYSGpvd2crcTcvVnpGS1ZsWTNCN2ZheW9G?=
 =?utf-8?B?WFd6NTRveXBaVnlmY0NsNHVzenlFQTlUVXZjMzJBdzhER2xYVTdTWWJXaTF3?=
 =?utf-8?B?WnJqQlBVRm5nK2xFKzFUclFQZXppYm02cWxTWmdvVTA5ZjMzSkVpeTBqL25w?=
 =?utf-8?B?WjZibjFRRVNUUFBKS3JscjVwQ0QwSlR1V282Sy8wNy9vVFMxQURzckFkYU55?=
 =?utf-8?B?SU43MFVjaDZSalJIenlUYk5zMXFaWmI0ZzRGNDR1VlU4R2k2SUNlVzZoWDZo?=
 =?utf-8?B?ajA1dVAzYTJWVXZaelMwNnRkRGptL2RXODZGaU5hTnpvWW1qL29RUnYzNXJW?=
 =?utf-8?B?R1lpY3lzalU0ZFBleTEvUzR2T2pDV2VYQ2RMbVlSV05iSndGYW1FMXQ0OUln?=
 =?utf-8?B?MWxSRjBUSDZNcDVZRnV0ZjVFSXhWV0JqSzlLUWNaVDkvSVFQbnVFSlN6WUQr?=
 =?utf-8?B?WG12V1JVNzNuc1dicHRkeEsvS3Y3djlFVDRoOCttNnhkMkZhVUlRV1dlQ3FQ?=
 =?utf-8?B?bHZUMG1oNE9iOE9YMEJUYisxQVRzUDdzeUdSL21vVzNZUkltQWdNK3ZpaHdu?=
 =?utf-8?B?bjJ5VU9lYy9pQkhHVUdjUE9ITGcxOGtPc01nakVXZEVOTUpXTkEwYVlmeFph?=
 =?utf-8?B?ODdjNm9UVUhCaVJQcDJNMmlwcjNVK2xhenVjcFZpUXc5d1dqNC9Lbjlja0wx?=
 =?utf-8?B?MWwzS0VVeXhucnBwdHI1Y3RnQ3VXUitvbms4NlFqZFdxTUpxNVZKZTV0czho?=
 =?utf-8?B?KzkzVTJydGo5S1k0S1NTd01vTGlXc01ZNWhMcDFRdmxPaFR6SnpGd2NWL0xn?=
 =?utf-8?B?NW9HQkk2aUZ5QUFvMTBvK3RiNm11YlFaMllxRTZKRi9VcWZDdGJhQWZmWThs?=
 =?utf-8?B?TEhCYmhTUTZteUtMZ0ZXb20xTklIazREYjJ1djg5SkRFblBwUTkwNFdLUVVU?=
 =?utf-8?B?ODFSQ1J0b3pwRU5GeEkzclRmekxqT1AxUTR0d2VGTWNqb1dlS3llTE93SzJG?=
 =?utf-8?B?VnRnWlBYRE80cXFqS2JLYzZiaXpIUnVHekV0R291bTgyaVphdlZ0MlVldkN1?=
 =?utf-8?B?RFhnYXlOc0pSYXlTVG1wNFJMa1h5NXNQQkxlaGVQVGM2aDdaUWxqcXRPdFBT?=
 =?utf-8?B?T1E5aHA5OHF5Tkp3QTg1QTdHTVM0bk5sT25rT2VqMjlvYklyWmo4RVNzN2Fu?=
 =?utf-8?B?bXEyeTdmUy9pb0V3SnlvQjdJWHl0bmgyUGIrMTFQRHlsMWlXTm1POFZDaGhv?=
 =?utf-8?B?S3NFb0QvbmtRYkJMVmJrNEJzeEtWSjB2cXdzZXZxY25ORXhUdEIrcTdzSDRL?=
 =?utf-8?B?akxONWs1V2t1UkYvUVBmUisxcVQ2WDRFTXN5aVBJR0pPNEt5OERMd0R0VVps?=
 =?utf-8?B?V3JrTmJURTkvWTNxVXhZaVNWL0FXVU5sSlA0MzlOcW5CRnZ1b0JoT1EzN1o1?=
 =?utf-8?B?NStOc0t4NmlLVXBZUjRIalFHbUEzVC85MzJJRThoYjdJMjJEblZoMmxoWlVl?=
 =?utf-8?B?THlvaVdEb3h1WUw5MUt2dWJFdW9vT2lKVkc0bXRCNWZsNFhjY0dhZkFpTVRp?=
 =?utf-8?B?K25XZk4rVlB5Wk5tRDdLaDBpUHJqbk1wNXVvS3ExR3FvMzNZbDBWSXlZYm1q?=
 =?utf-8?B?VHF2TnNnVzhqem11RXptZVdSTHU5OEI3VDlCR253MHc2NUQxMkc2QmRIbXIv?=
 =?utf-8?B?eFREbTBYSkRkbGJ4ZS9YQTZCOEZUejluR3hyNm5TdnloYWZYb05mOGhGOFZW?=
 =?utf-8?B?MzRJeW1WdURDU005dE51Y1VnZThrZDhUZzMrOVN1QW5OOXc5MGcySWMwQVkx?=
 =?utf-8?B?NDJQMTNaUndqenVFVlZ2VGFuUVdjdU90R2lrbnM0dmdNVG9rZjd4SXlJNnVF?=
 =?utf-8?B?U2xDdGlLNHdva1drMmVYZk4xT0NZSER1dHR3bGVjZEx1NHNxbEovdmZNaTFL?=
 =?utf-8?B?RzQvZ2JkSFk4NUJCazhMR0NOOW1sV2oyVVd4dDkwQXFsMXJ6K2lhd1lyY1BD?=
 =?utf-8?B?WE1vZGE1ZWp4ZkNidnd0aEhpNXhaamZaVUdybWczek9tVUV1dStoazl2ZlQv?=
 =?utf-8?B?eXdaSkIyeUEvVGI4SC9vSjF6bzhtY0E2MlVGTnMvcWVTWlpLMFg0eVJsK3Ex?=
 =?utf-8?B?OTREK2YwbHhoMzM4VWtEeit4OUVvU2ZIekQ5Rkl1NHBOUnU5VWNQK0pnL013?=
 =?utf-8?B?b3lTUzN5bDZFTnN5Nndka25oUFhzWUh5R0hDT05vYVFMc20wVklPMGFmdVNU?=
 =?utf-8?B?UERVZWdpSnNVNThtMUJwZjRhRkoySXI3SzY1WWw4NVlCRkhIOVpMSnR3SWwz?=
 =?utf-8?B?SHg0WU9LeHhCM3p0OHBuRVhlYjN2TExFV205WVBxcFVlSDRsaWVZdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 634e3eea-79f0-45f3-d8ff-08de7a0eb36f
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 16:54:29.3799
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: fN3mi5IG6Qp/ALGVF3RTaPgnReV0tJ+y6MX5hGmGzhTXAk/Zup3g0tQfyw1xDu9/sNPrL/tHZExxOImX3oKKGg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR03MB8476

On Wed, Mar 04, 2026 at 10:39:56AM -0500, Stewart Hildebrand wrote:
> On 3/4/26 10:23, Roger Pau Monné wrote:
> > On Wed, Feb 25, 2026 at 09:57:38PM -0500, Stewart Hildebrand wrote:
> >> A hotplugged PCI device may be added uninitialized. In particular,
> >> memory decoding might be disabled and the BARs might be zeroed. In this
> >> case, the BARs will not be mapped in p2m. However, vpci_make_msix_hole()
> >> unconditionally attempts to punch holes in p2m, leading to init_msix()
> >> failing:
> >>
> >> (XEN) d0v0 0000:01:00.0: existing mapping (mfn: 1c1880 type: 0) at 0 clobbers MSIX MMIO area
> >> (XEN) d0 0000:01:00.0: init legacy cap 17 fail rc=-17, mask it
> >>
> >> vpci_make_msix_hole() should only attempt to punch holes if the BARs
> >> containing the MSI-X/PBA tables are mapped in p2m. Introduce a helper
> >> for checking if a BAR is enabled, and add a check for the situation
> >> inside vpci_make_msix_hole().
> >>
> >> As a result of the newly introduced checks in vpci_make_msix_hole(),
> >> move the call to vpci_make_msix_hole() within modify_decoding() to after
> >> setting ->enabled.
> >>
> >> Fixes: ee2eb6849d50 ("vpci: Refactor REGISTER_VPCI_INIT")
> >> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> > 
> > Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
> > 
> > Thanks.
> 
> Thanks!
> 
> I would like to point out that this now needs a rebase:
> The helper vmsix_table_bar_valid() should be moved to the new private.h.
> I'd be happy to send v4, assuming I can retain your R-b.

Sure, please keep the RB.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 17:18:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 17:18:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245832.1545198 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxprp-0002cO-KS; Wed, 04 Mar 2026 17:18:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245832.1545198; Wed, 04 Mar 2026 17:18: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 1vxprp-0002cH-GV; Wed, 04 Mar 2026 17:18:37 +0000
Received: by outflank-mailman (input) for mailman id 1245832;
 Wed, 04 Mar 2026 17:18: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=8Avq=BE=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vxpro-0002cB-JA
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 17:18:36 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2a7efe51-17ee-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 18:18:30 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4837907f535so63939635e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 09:18:30 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4851881a844sm59032745e9.15.2026.03.04.09.18.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 04 Mar 2026 09:18: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: 2a7efe51-17ee-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1772644710; x=1773249510; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kLgVDDKfnR6JHrXAy+RBeThIO2uC8DuDIEkoJk6r+O8=;
        b=AOf3QJ5Ok3Qn99x4Tr86bdRFfMFzJIWS+pbUPQVm09kcyCxJIeJh99FygSzDmrZCwy
         s4Yp9nTcnxpV4dMDzzh7vj7O63IaFn0JEOLYfHeYFdgyhYRahFUuqgOGc8BQ/7XlzQ3w
         ah7kO7MRCBDQTtmURrmNUwHIqF+QZxrnOVroo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772644710; x=1773249510;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=kLgVDDKfnR6JHrXAy+RBeThIO2uC8DuDIEkoJk6r+O8=;
        b=e2XA7PovXF0dcZ1HZaQvAsq17KtTdIaeHRAHlYnNmRw+Erg7gvmMybpKRon8xow5y2
         /DkUCEnVVdjc8gLBULpzui9oeeFeqJqm20YWbvzQ9PfFRYrj9n1sQP6EGf1xPeBLuhKZ
         nz6BxHs8U2ZCf0tKNpyr1Yeo5WwoiPRC9WsExIx0+IQLCBGcnCwZ5rGzBV6XKhED5hFt
         H8whgZwmJdSc64rQswDLo806NCF8uT6EQzRmTnJGhnICdH1nvOM7WCsBFhyg4mIxqp7i
         I2O8fvf7nZOrCvWSTqMLUWo1BIHDJ94jQHxWnMzSczpyFKXD3HBnBVd9NImB3sM5gshu
         j1pQ==
X-Gm-Message-State: AOJu0YwHJQa2fEXzgJroymagCOxdyw1YCBcnicy3IGGnfzUa4HHDI68k
	ize3Uzrg7ZSJQyTNHCe4j9Z51lZFCVd/KOibuzEQYm0BGUmHW+aTQweXK7VaIF99WkBtrnGOG8U
	P0j6O
X-Gm-Gg: ATEYQzw9TeGiK3pH1pk0rU3VKbx3kJnmlG17IFs4nKnn3ygZZ8TrkC3T1GIH1Npkhkh
	a9nvUzJ1xdYrvrEWShBs6nIpq+JWno1pZQQVonsRfTgPVvTLN7kwR+pVHKLndTEAv5R9PmwQ/DS
	sMeEBNeNA/YiWLuCstQjLZ5NoiyLVsmjEB0cIj4b8wvu29Ntcc/L1RZQdQ9oswxQ59ZV26roi8y
	JuHtOjd1wJEgSIW5EbVuO5NBYGeIX0zwWJ55PRPcLDWscubczJsu9MQpL7fqxWPy5Enf1GjRneP
	h31I8OJQEmyro1SVvdDGB/cDBjg0PA5Bo+6m5R6KpViQ9PaUMB0TLhrX7GpZy9fy7QCQiL48WMg
	fND0N1Ux69KuwaPz6ErFrhvpdDYBvA98mMKIdfxZKXI9eLjslwku4MQGuA5j2WQH09QFPG1kqzU
	FZiCQW+kTK5VzMet2BfpdT51k7ET/dGN0nGvGydSYu1GbOcFulEYDzF7QaY86yrIYHxDEKZhY=
X-Received: by 2002:a05:600c:3b12:b0:47a:814c:eea1 with SMTP id 5b1f17b1804b1-485198b3304mr47230035e9.35.1772644709130;
        Wed, 04 Mar 2026 09:18: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>,
	Jan Beulich <jbeulich@suse.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v4.1 09/14] x86/pv: Adjust GS handling for FRED mode
Date: Wed,  4 Mar 2026 17:18:26 +0000
Message-Id: <20260304171826.45847-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260227231636.3955109-10-andrew.cooper3@citrix.com>
References: <20260227231636.3955109-10-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

When FRED is active, hardware automatically swaps GS when changing privilege,
and the SWAPGS instruction is disallowed.

For native OSes using GS as the thread local pointer this is a massive
improvement on the pre-FRED architecture, but under Xen it makes handling PV
guests more complicated.  Specifically, it means that GS_BASE and GS_SHADOW
are the opposite way around in FRED mode, as opposed to IDT mode.

This leads to the following changes:

  * In load_segments(), we already load both GSes.  Account for FRED in the
    SWAP() condition and avoid the path with SWAGS.

  * In save_segments(), we need to read GS_SHADOW rather than GS_BASE.

  * In toggle_guest_mode(), we need to emulate SWAPGS.

  * In {read,write}_msr() which access the live registers, GS_SHADOW and
    GS_BASE need swapping.

  * In do_set_segment_base(), merge the SEGBASE_GS_{USER,KERNEL} cases and
    take FRED into account when choosing which base to update.

    SEGBASE_GS_USER_SEL was already an LKGS invocation (decades before FRED)
    so under FRED needs to be just a MOV %gs.  Simply skip the SWAPGSes.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

v4.1:
 * Extra comments

v4:
 * Adjust GS accesses for emulated {RD,WR}MSR too.
---
 xen/arch/x86/domain.c             | 16 +++++++++++-----
 xen/arch/x86/pv/domain.c          | 22 ++++++++++++++++++++--
 xen/arch/x86/pv/emul-priv-op.c    | 26 +++++++++++++++++---------
 xen/arch/x86/pv/misc-hypercalls.c | 23 +++++++++++++++--------
 4 files changed, 63 insertions(+), 24 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index e658c2d647b7..9c1f6ef76d52 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1791,9 +1791,10 @@ static void load_segments(struct vcpu *n)
 
         /*
          * Figure out which way around gsb/gss want to be.  gsb needs to be
-         * the active context, and gss needs to be the inactive context.
+         * the active context, and gss needs to be the inactive context,
+         * unless we're in FRED mode where they're reversed.
          */
-        if ( !(n->arch.flags & TF_kernel_mode) )
+        if ( !(n->arch.flags & TF_kernel_mode) ^ opt_fred )
             SWAP(gsb, gss);
 
         if ( using_svm() && (n->arch.pv.fs | n->arch.pv.gs) <= 3 )
@@ -1814,7 +1815,9 @@ static void load_segments(struct vcpu *n)
 
     if ( !fs_gs_done && !compat )
     {
-        if ( read_cr4() & X86_CR4_FSGSBASE )
+        unsigned long cr4 = read_cr4();
+
+        if ( !(cr4 & X86_CR4_FRED) && (cr4 & X86_CR4_FSGSBASE) )
         {
             __wrgsbase(gss);
             __wrfsbase(n->arch.pv.fs_base);
@@ -1931,6 +1934,9 @@ static void load_segments(struct vcpu *n)
  * Guests however cannot use SWAPGS, so there is no mechanism to modify the
  * inactive GS base behind Xen's back.  Therefore, Xen's copy of the inactive
  * GS base is still accurate, and doesn't need reading back from hardware.
+ *
+ * Under FRED, hardware automatically swaps GS for us, so SHADOW_GS is the
+ * active GS from the guest's point of view.
  */
 static void save_segments(struct vcpu *v)
 {
@@ -1946,12 +1952,12 @@ static void save_segments(struct vcpu *v)
         if ( read_cr4() & X86_CR4_FSGSBASE )
         {
             fs_base = __rdfsbase();
-            gs_base = __rdgsbase();
+            gs_base = opt_fred ? rdmsr(MSR_SHADOW_GS_BASE) : __rdgsbase();
         }
         else
         {
             fs_base = rdmsr(MSR_FS_BASE);
-            gs_base = rdmsr(MSR_GS_BASE);
+            gs_base = opt_fred ? rdmsr(MSR_SHADOW_GS_BASE) : rdmsr(MSR_GS_BASE);
         }
 
         v->arch.pv.fs_base = fs_base;
diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index d16583a7454d..b85abb5ed903 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -14,9 +14,10 @@
 #include <asm/cpufeature.h>
 #include <asm/fsgsbase.h>
 #include <asm/invpcid.h>
-#include <asm/spec_ctrl.h>
 #include <asm/pv/domain.h>
 #include <asm/shadow.h>
+#include <asm/spec_ctrl.h>
+#include <asm/traps.h>
 
 #ifdef CONFIG_PV32
 int8_t __read_mostly opt_pv32 = -1;
@@ -514,11 +515,28 @@ void toggle_guest_mode(struct vcpu *v)
      * subsequent context switch won't bother re-reading it.
      */
     gs_base = read_gs_base();
+
+    /*
+     * In FRED mode, not only are the two GSes the other way around (i.e. we
+     * want to read GS_SHADOW here), the SWAPGS instruction is disallowed so
+     * we have to emulate it.
+     */
+    if ( opt_fred )
+    {
+        unsigned long gs_shadow = rdmsr(MSR_SHADOW_GS_BASE);
+
+        wrmsrns(MSR_SHADOW_GS_BASE, gs_base);
+        write_gs_base(gs_shadow);
+
+        gs_base = gs_shadow;
+    }
+    else
+        asm volatile ( "swapgs" );
+
     if ( v->arch.flags & TF_kernel_mode )
         v->arch.pv.gs_base_kernel = gs_base;
     else
         v->arch.pv.gs_base_user = gs_base;
-    asm volatile ( "swapgs" );
 
     _toggle_guest_pt(v);
 
diff --git a/xen/arch/x86/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c
index 64d47ab677a4..53676b30219c 100644
--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -25,6 +25,7 @@
 #include <asm/pv/traps.h>
 #include <asm/shared.h>
 #include <asm/stubs.h>
+#include <asm/traps.h>
 
 #include <xsm/xsm.h>
 
@@ -926,7 +927,8 @@ static int cf_check read_msr(
     case MSR_GS_BASE:
         if ( !cp->extd.lm )
             break;
-        *val = read_gs_base();
+        /* Under FRED, GS is automatically swapped on privilege change. */
+        *val = opt_fred ? rdmsr(MSR_SHADOW_GS_BASE) : read_gs_base();
         return X86EMUL_OKAY;
 
     case MSR_SHADOW_GS_BASE:
@@ -1066,17 +1068,23 @@ static int cf_check write_msr(
         if ( !cp->extd.lm || !is_canonical_address(val) )
             break;
 
-        if ( reg == MSR_FS_BASE )
-            write_fs_base(val);
-        else if ( reg == MSR_GS_BASE )
-            write_gs_base(val);
-        else if ( reg == MSR_SHADOW_GS_BASE )
+        switch ( reg )
         {
-            write_gs_shadow(val);
+        case MSR_FS_BASE:
+            write_fs_base(val);
+            break;
+
+        case MSR_SHADOW_GS_BASE:
             curr->arch.pv.gs_base_user = val;
+            fallthrough;
+        case MSR_GS_BASE:
+            /* Under FRED, GS is automatically swapped on privilege change. */
+            if ( (reg == MSR_GS_BASE) ^ opt_fred )
+                write_gs_base(val);
+            else
+                write_gs_shadow(val);
+            break;
         }
-        else
-            ASSERT_UNREACHABLE();
         return X86EMUL_OKAY;
 
     case MSR_EFER:
diff --git a/xen/arch/x86/pv/misc-hypercalls.c b/xen/arch/x86/pv/misc-hypercalls.c
index 4c2abeb4add8..7e915d86b724 100644
--- a/xen/arch/x86/pv/misc-hypercalls.c
+++ b/xen/arch/x86/pv/misc-hypercalls.c
@@ -11,6 +11,7 @@
 
 #include <asm/debugreg.h>
 #include <asm/fsgsbase.h>
+#include <asm/traps.h>
 
 long do_set_debugreg(int reg, unsigned long value)
 {
@@ -192,11 +193,13 @@ long do_set_segment_base(unsigned int which, unsigned long base)
 
         case SEGBASE_GS_USER:
             v->arch.pv.gs_base_user = base;
-            write_gs_shadow(base);
-            break;
-
+            fallthrough;
         case SEGBASE_GS_KERNEL:
-            write_gs_base(base);
+            /* Under FRED, GS is automatically swapped on privilege change. */
+            if ( (which == SEGBASE_GS_KERNEL) ^ opt_fred )
+                write_gs_base(base);
+            else
+                write_gs_shadow(base);
             break;
         }
         break;
@@ -206,10 +209,13 @@ long do_set_segment_base(unsigned int which, unsigned long base)
         unsigned int sel = (uint16_t)base;
 
         /*
-         * We wish to update the user %gs from the GDT/LDT.  Currently, the
-         * guest kernel's GS_BASE is in context.
+         * We wish to update the user %gs from the GDT/LDT.  Currently, we are
+         * in guest kernel context.
+         *
+         * Under IDT, this means updating GS_SHADOW.  Under FRED, plain GS.
          */
-        asm volatile ( "swapgs" );
+        if ( !opt_fred )
+            asm volatile ( "swapgs" );
 
         if ( sel > 3 )
             /* Fix up RPL for non-NUL selectors. */
@@ -247,7 +253,8 @@ long do_set_segment_base(unsigned int which, unsigned long base)
         /* Update the cache of the inactive base, as read from the GDT/LDT. */
         v->arch.pv.gs_base_user = read_gs_base();
 
-        asm volatile ( safe_swapgs );
+        if ( !opt_fred )
+            asm volatile ( safe_swapgs );
         break;
     }
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 17:28:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 17:28:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245845.1545207 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxq0z-0004Kw-Gg; Wed, 04 Mar 2026 17:28:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245845.1545207; Wed, 04 Mar 2026 17:28: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 1vxq0z-0004Kp-E2; Wed, 04 Mar 2026 17:28:05 +0000
Received: by outflank-mailman (input) for mailman id 1245845;
 Wed, 04 Mar 2026 17:28:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YYFb=BE=citrix.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1vxq0y-0004Kj-AB
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 17:28:04 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7f0305cd-17ef-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 18:28:03 +0100 (CET)
Received: from LV3PR03MB7707.namprd03.prod.outlook.com (2603:10b6:408:28b::21)
 by BLAPR03MB5556.namprd03.prod.outlook.com (2603:10b6:208:297::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Wed, 4 Mar
 2026 17:27:58 +0000
Received: from LV3PR03MB7707.namprd03.prod.outlook.com
 ([fe80::97e8:ef9c:9031:e2bf]) by LV3PR03MB7707.namprd03.prod.outlook.com
 ([fe80::97e8:ef9c:9031:e2bf%6]) with mapi id 15.20.9678.016; Wed, 4 Mar 2026
 17:27: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: 7f0305cd-17ef-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SqGkz8Tlx3yj8xQe6jMXVqHorv8q2/Lyw+Qd/wbxTFeOdusQHWGFu2tBzVIw6h6ki7B7t36CrNBze3lGwRMYjRtZw9489ntT1OuLfXnXxoD9uapniGkTRK/7xvNsOJBlIYb4VwAwLaDizXnBmaZ6L10gYRgg89DzPXBZx3vNBUahcuopjRJhjfbZJfISyImzSLE7Ao61oCrSMPzBaj+WjjVV5f1uCPoo8elFwHzTavqW77HUyvUEa7nOCLLJY6kVAwySLR4jg0rbzjpTCWgreq2G6FnleGRlxK4xYoBnbgnsmjyjQPAssO2jfczlK3TriedIWOAGuRU72SVjbQbpHA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BTW0OIApes7ucx+QNWFjxhTP/zA1bUY3ihHkrnMnzs8=;
 b=JJN4qkhPgojYIgn+lFHrCAz3VmCsaPkCRhW/42IgoPCN/S/C2x46WmFqunju05T7Xy3ORfmmovnpvE512EjbjUHhRej+qzyNoNY1fwq7KR7QfcnnfM06EDYgR8s6U01FRfvw8dDJnJntg/gzjkkB2gF2FPbe0gzDR2Dw/exbjy91/jBECW/X40p9Eb6GY5TCTuluZpkBCLgwrklXblQ6rlqUyAUWPRH2T4ACU6Oak3GO3dvfJ8G1E8T2Q7Q012xEgOs0xZjkFXtbwzX6jaTQIC7skAYkUph9eqkXf78cIuG6++pWAvhrnAewZqDqpL90dTBZ69gSppDqd5Lxk9Z8qg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BTW0OIApes7ucx+QNWFjxhTP/zA1bUY3ihHkrnMnzs8=;
 b=NOVg0tu4yXqX/1VkAvv52Rkh3I3j0a2pmfcgkkXE9jfK4wJdPPjySQYZL6nYYE3QCmVJENOB9Zy1OXtY7wtPaVaaH2XrJGqlWHJwuEro+/xs7nxzcCsFCotQ6n9li4Y+yLu426Uf7UNUDxFusT+PKsV5NpW+J0xW1Q9IHwFNvsI=
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, Roger Pau Monne <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Juergen Gross <jgross@suse.com>, Christian
 Lindig <christian.lindig@citrix.com>, David Scott <dave@recoil.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v4 0/10] xen: Add NUMA-aware memory claims for domains
Thread-Topic: [PATCH v4 0/10] xen: Add NUMA-aware memory claims for domains
Thread-Index: AQHcq/EQ7U0dGER6F0e0O8+l9l+UF7Wen7Sg
Date: Wed, 4 Mar 2026 17:27:57 +0000
Message-ID:
 <LV3PR03MB770736F52A297314CB0E0B36877CA@LV3PR03MB7707.namprd03.prod.outlook.com>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
 <b1e6f37e-9d77-4aef-b088-73bba27382b9@suse.com>
In-Reply-To: <b1e6f37e-9d77-4aef-b088-73bba27382b9@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: LV3PR03MB7707:EE_|BLAPR03MB5556:EE_
x-ms-office365-filtering-correlation-id: 8d1fe9c3-8b44-4898-4000-08de7a1360c1
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:
 DMcfUBvB7RKPIzg/pfZYC9YbI1yvGxgglnmUMzYJOJ/uMmyx/pxaaRmOg16LR8kMFhZ9xZf7p2hP8kKCiLv9wkbE3r8f3HH5PtcdSZ9X535swVD08O0M7M97yOsMvkbjz/pP6FhWUrPJXd90CNCK1Ki0EpXXs4tR8Y8ekUU2Yg/yuaKC91pbeMUQ8jqxgIuVh+J8oBn0TV9xfb0rYvxKFTQgyP7uY5ZNBFDFGVOEb8fZMbYdTLgfqDiiXWW1MOst6ZJvt2I4z/7x/Dp5p6HykWW06qlzPML6FbCezkr0Cdi9xMmZzFT5OlFwVNEWneK9GtODwC4x34WgavJXpfijn04V7dRzWlP+Q99ZUTO6TK0CmhIjHNqOql3/xRdu/iZRe+/ResjlzHB9xYkLKx96PHqOWf20wQ9Woy71InV8oQVbux29gqzyGgaM65LJzoWanIbnyKXoAf3fzEXlCh7wEuptx0cHohxpvY1UQqTALCgEW1pBO3P+iA/qFGZJZGCDJ6XjvwNCyFIi8wPXaL/Seu/1xkLNsVKS1UhSE6m0zPIfUT+Jv6UiorctWQQJMQ7HCkxGfgdwufCxEfOomyeAnAcHdSDs36j62RW8c6wSy4A8q6RzqaCaMuLieFjMIXF7RqPZ6DOci8tRSGRX+A+5W1tTgKhqJZNz1nKYgkSA2oKcUfmq6kHOE3DFsCx8xVxAgcxhIlfdCvlHLTrgWYmEyKPeL1Xbx8bsZyO51oYZIEZVtiTD7FEMObcxbH8tMtjG48stszLpq8SED6NlyuM37R+6LoIe1R8Uh+vP6tXGPPs=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR03MB7707.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?Qi9iSmR6MWo2WHZCU1FYd0NPbk5HZTVyS0JCdVJ2amtTZXZ5MlZaU2QveGNZ?=
 =?utf-8?B?RXNNVHZacGtodmduUkg3Q2ZGakkvS2phSXJDSlJDV3hOVTVITjU3eHJOKyth?=
 =?utf-8?B?UzFzMkFOckRKL0F2K214QUROWUFQcnVaNmw5Z1dOL0RBNHA5cHZ2VEZqaG5o?=
 =?utf-8?B?LzA3L2xIVFNlUXJIWlNCSnNtdFFYdTlrTXpZNmVUaWR0SktFNitncUFZZE1p?=
 =?utf-8?B?bjh2MC83Z2daQUlla09qMnVld2tkdms3c3I5YVRzV0V4OWJod2hwUWg2cGxh?=
 =?utf-8?B?U1NlMmd5bjQrWXR0ekhIRnNNN29tQUFNWmR0Ty9STkFGSUxJdC94djliRDV4?=
 =?utf-8?B?QTc3UVpnVlJEU2lLRHhucmdqYnVhNFUrRVJQTzk3N1luMHR2SVk0cmc0NFhY?=
 =?utf-8?B?K2NQUFVHaFJkbVcxajlsVFB6MmdMaFk5M3dsdWplK0RrWTJ6NlF0MzdwN3Bv?=
 =?utf-8?B?MHU5a2FkUGhMQnFVbzd3OU5LQUZYTGlsUEhpc2F4dDNUMHNydlYrVm1aVlk5?=
 =?utf-8?B?SWlyeitkckZyTmJzc0dEc2JRUVJsUkIvWVlKY1JkTEZZVVdnWUhkbFR1WVJw?=
 =?utf-8?B?LzRyN0V5eUJ0dTkrU2I1dmtRbVFrVjU2d3YzbEEzdnVIZ2Y4dy9RaU9wNUUx?=
 =?utf-8?B?d0pjbUw5Z0pDOHlJWUNGZjVpSlFhT3hwcnV4VmlaZ2Q0d1pDRFZNMWtMWUgv?=
 =?utf-8?B?dEdaNWE0MEUzdTYxTDBiMXN0eTl1b096ZjRURmZFYVJhYnFYUnpOaWJZMHY5?=
 =?utf-8?B?NWUxVUNjTWNWRmFYaG1NTWh4VmFTeEJGdGgyNHdKZS9CMkRGUkxVd2NmMEtR?=
 =?utf-8?B?QzRDRVB3SFFPaUdILzNJVjh5NCtMM3hKUEEwMDIrRGVQT21DMFJHZm1XR3px?=
 =?utf-8?B?cDA3dTlPaEkxNzYvaXV4N2hCSXREaWx4YkgxZERRZSt0L0NUaHJiUWlOUUVJ?=
 =?utf-8?B?ZjdCbGh5RFFsQkNPWlhCeGN4bEUrci8yelh4RlM3Ny9tcTBhSndCNVgvQUxm?=
 =?utf-8?B?NEE1WkpFRHE4RXZnNTNjU1RUYkhGWU5zOXVzWm5iU28wVCsvRU1CYkQxSXVS?=
 =?utf-8?B?RDFiVEJ1dnhtbk52RERjNk5DMHoxQTlCVmZMYTAxOTZLamZYRVFrRDdIN2Ez?=
 =?utf-8?B?cHk5ZFBMdHd5SFJvUUduQ0JMb2lTdExYZ2c2QnYydVluenRTOHRzQXdxRjE0?=
 =?utf-8?B?SnFjSERPWWJNdXgzMTJhNEVYQWJxcWkrcmtwdk82NnNNbFVwOWdxYVhpL3Vv?=
 =?utf-8?B?aXE5blpyZEd1UTdWM25idnFFeUpsSjZoMVNYYkJhQ1ZzeXYyN1U2WUFYeXlJ?=
 =?utf-8?B?YVJKQm9KY2tJU0FNVGs2V0c5bnF1TUkxeGNCeER1TmQ5blZkYm5qUTdha3Nx?=
 =?utf-8?B?NUxuU0t2WEszbGtZMUxBUVlnNjUwL3VXV2hHK21kaUJuaGV5L1dIWFl4czM2?=
 =?utf-8?B?TzFWYjA2d0Vvd3NiNTFwOHV6WllpczNJa0dnQXJ1ZWRqS0hhd2R6VHUwTzVi?=
 =?utf-8?B?cUhvdHFBWHhaVHlJaUhpdy9IYTF2enlDL2JaUjdZQXlvRFVkOG5rRVRZRTRu?=
 =?utf-8?B?TlJMWHpzRmVJZ25MNDBXNkJOYytFTDFsQjdYVGJIS1Y4azYwRGFjeTZxUnpN?=
 =?utf-8?B?U1FwY0MwYUhBbjc4V2dVVGo5TUhwbFdaU09oUVFNdEFWRWVSdDkvSVcvTXZ5?=
 =?utf-8?B?NnVzSnAxaTBnalN1NkpYWHVSNy92SjhaWlJHcXVXTkVia2RUZkFKa3crU2VQ?=
 =?utf-8?B?VjRielptZENtS1Y2cDE1R000ZDFrOGg1aVc0Y2t2QUJ1bTBIaXpOSXl0WlpL?=
 =?utf-8?B?RWNmNnFkQ1E2djRJeG1oUlBRazh3bTU2T0o4RTF6c2tWWERIQWRKeTVLYW15?=
 =?utf-8?B?cHA1RkRkQTQ5QklWTWVVK2VmSmdzSWJOTlhQQlFuVE9RZUZSVjNJcDV0bzdF?=
 =?utf-8?B?Y1Jlb05jTzRSZ3pZeSs5UmZ4S0tnY2JnQ2NudnBDckd4NmZKSmtrMEdNeGFq?=
 =?utf-8?B?RHY4RkIyaE40enJySndWUjdXaXZac0xFa2VPSEhJV2pQOFUveG1ZdDFYSURB?=
 =?utf-8?B?SldGQS9zYm9QcGpEcmwraWI0aStJbEpGRkQya0lzMXV2dzNxUG11RTQyRUw2?=
 =?utf-8?B?bXM1K3hWWVFyb09mMGQxZWdzYjFiQmFQNjdoZGtDUk44RTR1SXYxREdWdHJP?=
 =?utf-8?B?MXJHTzFHWnYyb0c0Q200RFpRajNnWDRGRGM1VGsyVEdzUXdGTVlhcUxOaGY1?=
 =?utf-8?B?WWVMUGFaTHZjVi9YU2NaYXBFanJ5NG9nMGJ6Y2NrNTcxd2llOWRwb0ZlTUtJ?=
 =?utf-8?B?ZklkZ0VSSGkvT25LZ2d0ZEorWU4zTmRlbDZxMHBheDZhVTJDZGVGdz09?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: LV3PR03MB7707.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8d1fe9c3-8b44-4898-4000-08de7a1360c1
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Mar 2026 17:27:57.9096
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: KWjZ+qLNuWCY0Yp10DdEmhH0pbiGpCD0MFeJezVgZm6QpuyjrwtPilwshLvdgJvgc4ZAtPGxb6eim8bxFABZLLdwCfK+S382HTDU6MWpRw8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR03MB5556

SmFuIEJldWxpY2ggd3JvdGU6DQo+ID4gLSBBbGVqYW5kcm8gVmFsbGVqbyBkZXZlbG9wZWQgdGhl
IGluaXRpYWwgdmVyc2lvbg0KPiA+IC0gUm9nZXIgUGF1IE1vbm7DqSB1cGRhdGVkIHRoZSBpbXBs
ZW1lbnRhdGlvbiBhbmQgdXBzdHJlYW1lZCBrZXkgaW1wcm92ZW1lbnRzDQo+ID4gLSBNYXJjdXMg
R3JhbmFkbyBjb250cmlidXRlZCBhbmFseXNpcyBhbmQgc3VnZ2VzdGlvbnMgZHVyaW5nIGRldmVs
b3BtZW50DQo+IA0KPiBEZXNwaXRlIGFueSBvZiB0aGlzLCAuLi4NClsuLi5dIA0KPiAuLi4gb25s
eSBhIHNpbmdsZSBwYXRjaCBoYXMgYW4gUy1vLWIgb3RoZXIgdGhhbiB5b3Vycy4gSXMgdGhpcyBh
IGNvcnJlY3QNCj4gcmVwcmVzZW50YXRpb24gb2YgYXV0aG9yc2hpcD8NCg0KUGF0Y2ggMyBzaG91
bGQgaGF2ZSBTLW8tYnMgYnkgUm9nZXIgYW5kIEFsZWphbmRybyBpbiB0aGUgY29tbWl0LCBJIHdp
bGwgZml4IGl0Lg0KDQpUaGFua3MgZm9yIHRoZSBjYXRjaCwNCkJlcm5oYXJkDQoNClBTOiBEZXRh
aWxzIG9mIHRoZSBwYXRjaGVzOg0KDQpJJ2xsIGFsc28gYWRkIFJlcXVlc3RlZC1ieTogUm9nZXIg
UGF1IE1vbm7DqSB0byB0aGUgaHlwZXJjYWxsIGhlIHJlcXVlc3RlZCB0bw0KaW1wbGVtZW50IGZv
ciB0aGlzIHNlcmllcy4NCg0KSGVyZSBpcyB0aGUgYnJlYWtkb3duIG9mIGNvbnRyaWJ1dGlvbnM6
DQoNCjEuIHhlbi9wYWdlX2FsbG9jOiBFeHRyYWN0IGNvZGUgZm9yIGNvbnN1bWluZyBjbGFpbXMg
aW50byBpbmxpbmUgZnVuY3Rpb24NCg0KICAgLSBCeSBtZSBhcyBwcmVwYXJhdGlvbiB0byBhdm9p
ZCBkdXBsaWNhdGVkIGNvZGUuDQoNCjIuIHhlbi9wYWdlX2FsbG9jOiBPcHRpbWl6ZSBnZXR0aW5n
IHBlci1OVU1BLW5vZGUgZnJlZSBwYWdlIGNvdW50cw0KDQogICAtIEhhcyBTLW8tYiBieSBBbGVq
YW5kcm8sDQogICAgIC0gRXh0cmFjdGVkIGludG8gYSBzZXBhcmF0ZSBwYXRjaCBmb3IgbW9yZSBm
b2N1c3NlZCByZXZpZXcNCiAgICAgLSBVc2Ugbm9kZV9hdmFpbF9wYWdlc1tub2RlXSBhbHNvIGZv
ciBhdmFpbF9ub2RlX2hlYXBfcGFnZXMobm9kZSkNCiAgICAgLSBVc2UgdW5zaWduZWQgKHRvIGJl
IGZhY3RvcmVkIGludG8gYSBzZXBhcmF0ZSBjb21taXQgcGVyIHlvdXIgcmV2aWV3KQ0KDQozLiB4
ZW4vcGFnZV9hbGxvYzogSW1wbGVtZW50IE5VTUEtbm9kZS1zcGVjaWZpYyBjbGFpbXMNCg0KICAg
LSBUaGFua3MgZm9yIHRoZSBjYXRjaCwgSSB3aWxsIHRoZSBmaXggU3VnZ2VzdGVkLWJ5IHRvIFMt
by1iJ3MuDQoNCjQuIHhlbi9wYWdlX2FsbG9jOiBDb25zb2xpZGF0ZSBwZXItbm9kZSBjb3VudGVy
cyBpbnRvIGF2YWlsW10gYXJyYXkNCg0KICAgLSBJJ2xsIHJlbW92ZSBpdCBmcm9tIHRoZSBzZXJp
ZXMsIHNraXAgaXRzIHJldmlldy4NCiAgICAgTm90IG5lZWRlZCwgYW5kIGl0IG1pc3NlZCBpbml0
aWFsaXppbmcgbm9kZXMgd2l0aG91dCBhbnkgbWVtb3J5Lg0KDQo1LiB4ZW4vZG9tYWluOiBBZGQg
RE9NQ1RMIGhhbmRsZXIgZm9yIGNsYWltaW5nIG1lbW9yeSB3aXRoIE5VTUEgYXdhcmVuZXNzDQo2
LiB4c20vZmxhc2s6IEFkZCBYRU5fRE9NQ1RMX2NsYWltX21lbW9yeSB0byBmbGFzaw0KNy4gdG9v
bHMvbGliL2N0cmwveGM6IEFkZCB4Y19kb21haW5fY2xhaW1fbWVtb3J5KCkgdG8gbGlieGVuY3Ry
bA0KOC4gdG9vbHMvb2NhbWwvbGlicy94YzogYWRkIE9DYW1sIGRvbWFpbl9jbGFpbV9tZW1vcnkg
YmluZGluZw0KOS4gdG9vbHMvdGVzdHM6IFVwZGF0ZSB0aGUgY2xhaW1zIHRlc3QgdG8gdGVzdCBj
bGFpbV9tZW1vcnkgaHlwZXJjYWxsDQoxMC4gZG9jcy9ndWVzdC1ndWlkZTogZG9jdW1lbnQgdGhl
IG1lbW9yeSBjbGFpbSBoeXBlcmNhbGxzDQoNCiAgIC0gVGhlc2UgYXJlIHRoZSBwYXRjaGVzIGZv
ciB0aGUgbmV3IGh5cGVyY2FsbCBpbnRlcmZhY2UgcmVxdWVzdGVkIGJ5IFJvZ2VyLA0KICAgICBJ
J2xsIGFkZCBhIFJlcXVlc3RlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSB0byB0aGUgQVBJIGludGVy
ZmFjZSBwYXRjaGVzLg0KICAgICBUaGV5IGFyZSBvZiBjb3Vyc2UgYmFzZWQgWGVuIGNvZGUsIGJ1
dCBub3Qgb24gcGF0Y2hlcyBvZiBzb21lYm9keSBlbHNlLg0KDQpCZXJuaGFyZA0K


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 17:37:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 17:37:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245860.1545217 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxq9i-0005uk-9y; Wed, 04 Mar 2026 17:37:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245860.1545217; Wed, 04 Mar 2026 17:37:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxq9i-0005ud-7F; Wed, 04 Mar 2026 17:37:06 +0000
Received: by outflank-mailman (input) for mailman id 1245860;
 Wed, 04 Mar 2026 17:37:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=bY7Q=BE=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vxq9g-0005uL-E1
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 17:37:04 +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 c1c1dffc-17f0-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 18:37:03 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CO1PR03MB7963.namprd03.prod.outlook.com (2603:10b6:303:270::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.17; Wed, 4 Mar
 2026 17:36:59 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.016; Wed, 4 Mar 2026
 17:36: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: c1c1dffc-17f0-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=L3kf0YcMg7PPQ1M4XhDPFfUO7xubTg+qUIzhFOFYiYfS6S92cnkjMET69eSnq7tZAIDYJ1ie1dyE9Cy3gxsasWkqmGhKZXW71TtUmFSLLjveXWGzd4S3PFcDZvDM39i0VsDpxhsiNvFmAlem2QwQbrLkSxfV6e5OrRlNlIfc+0JzyynJ8lglk9dURJ/MTgkPXOpnoFSd4aZxY9d7sXLnN55OXfFB7vQSd6RwQloqrsaoTRKv0zsKKPnLbm/rAWrG0kYktg02SzM+x6PDJ9r3/7rVRRX9ch8QNESv0H6mY6wTe/OHadmC1NIFZQN7WCDrzHZr1rtYdqaNgNNlSBV1DA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tYj4Aq4H/z18cpo/OR/vwiWEXB53aTYcBr5skHnHH2g=;
 b=cCGCZIDC9hCq5/uQcOHGd94PIUlE9wS9sfKGpIOJd5qvOtqdbCuxLGOwy2ce91ySukKQZFKf4AIWS0Vs63jis2NWudhQ25LWLvOAIjy3SlqJFZxuGPUl1PRYlHWbUJIiiDOuScMwJzJFcPww3cfkZZ2MYPATlnlgGDmBcHBUITbm+FOy2YQwnpXuii/GthUfA/5B7aNvmmyd7LQE62fnQEQW3QX76CMGXzRHijNAOp9HysGgiC4a3x+Ik/sI+tuoqMOYGbG75lB0PJwHggIfv+qeZRgjEqEFXL1TNvoOEBlT7OtxbPTMXPHDpPNekYRZJLX79LtRJaFvhDMy7o3q2Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tYj4Aq4H/z18cpo/OR/vwiWEXB53aTYcBr5skHnHH2g=;
 b=JOLoIB8tJtm5cbGHjKafIC+lyMdGnwiRhSDd8jbVli87sA9cwaSUVaEul76Q7tpoPYhxOqTsiHsvZuzi+JhlO91uojKwxUpA7rcg73+FQjZtHbqnvxNXAAmU1xSypJ1jO+KrsIBv3Q1GhOy4pjxUQzgrqgjCIH61J86+C3dqx3k=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Mar 2026 18:36:55 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH] domain: use unsigned loop induction variable in
 complete_domain_destroy()
Message-ID: <aahtt0zo0nCb1eSt@macbook.local>
References: <7af56fa6-4254-4704-9843-a0d099e6bb0b@suse.com>
 <aahSBk--J_xqEzOq@macbook.local>
 <80129c3a-77cb-4cb1-b3fd-128454e3db0b@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <80129c3a-77cb-4cb1-b3fd-128454e3db0b@suse.com>
X-ClientProxiedBy: MA3P292CA0053.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:48::6) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CO1PR03MB7963:EE_
X-MS-Office365-Filtering-Correlation-Id: 934d6cfd-2c7d-408e-5bb2-08de7a14a280
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:
	cSj44eIUBwT3yyjxQ8vDTTeTFmFarL2IzGYRM8+z88lE3urk5ReUmAr701BLSwOhQ/2OeE2f7b82puZ9uOM4fdWZ1lZXJ9I5lpJeXXPOGCxULsTR5HPqNMiINScbEAUZxON0TnLWmhizbEe4sqmgHo8IDXDIWVkXFHOVtkWeupy/pyZTOV0Zbh8Iozh6BBx7IVLwDn5KDFBQ0wveiHT8V/9QXZDW8wZ0J54I4UxplvQI2bk7iHrUcg1p4EMTGPpKM63kZpRzRRuRGezLulNEz7aqvvTbRM7Q1Y3qDbYIYUdcWSI/H2y/5j4uz90NVPM31RyOZ3KbkQgecxumzXIhwnBCLHZlHOJLAO+UAIImpBy4bb/DEVx+pk0lHUNyPs1a/deX+Gq63d3VA9bsWgMeFl7y3brvKvZC54TNplMMydq/6Z9udLQDKUN+I+xOYFqb4uhuDXdRL/JDgoYP8762NOyxf9cDL+LgSKJizlQxD8ESGn74T4Q/Ie03KnJEn7RDmXha/9nkavCoSxADoWdcTc9jVOexr+aBcaXME81EpPA6ywdwFuxNDGehGGP4tLBIfMkaO/bbRpVRbvo540JLGOltOaaA7DUWMHg4SdPQFkXyeH/5Pz6xUEJKkY47w3URwL0IwMFQ4sDpaF8mEChc/CXB5vtTrackZhtbFlGgiW6ye6rjGl4fhl7OrGO5BQLmD2ujjsCWwN2XXbgCfuQdP1C96z/d40EgGNvnRY7tHNs=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aGZGT2M3QTFXald1ZFRXbm1WNXFpQk5ESWJjVzA4TGpIZnZHY0NNS3BlWTZj?=
 =?utf-8?B?MitnSnVVNTR6WmZJN3ZHSzc2Qm5BSGFTOFJQTTlVSldLNWdLVldDb1MzTW0r?=
 =?utf-8?B?WHJvMXgySlV3M1QvV1ZueVFkK0JmdFQ0bmxTcEw2c0llVllGRjNKakQ2ME9Q?=
 =?utf-8?B?MG1Ud0ZkWmxzOHVvWnJmOFBhNkhhTU0yK01uQllZWmhDR01tU2ZzNGFUOEx5?=
 =?utf-8?B?K1FOd2x1OUE1dGlwQ2ZOeDNvQmxZUXgwNVhtTnhrak5aUmZRUEN0QnBKeVYw?=
 =?utf-8?B?K3pLdU1EUHRpMjV5MUxzOUxPMEhJcmtPVmFRcEJqbVVBVW0rakVrY0NWMkls?=
 =?utf-8?B?UFBKYVIrQ1BNaHVTZTlkQkhmQzV6elUzcjlPb0s5OXoyNHo0bnpEd2JrNEd5?=
 =?utf-8?B?bGpnY3BuckIrV2dGTUM3VWxlUnVDZzhJOE1rcFFlVkVwOGxVK0lWR25EVzlk?=
 =?utf-8?B?ekp0ZFVFaXg5NTZvTFhNZ2FlSGRCMWJBNlA4UWpqeU16VWM0TnFrRzV6QUJj?=
 =?utf-8?B?WDhIOU9uYUdqVElaTzB1VlR6ZENpbUxQc3pVV0pFUEhXMTR1VG00M2xQRzJl?=
 =?utf-8?B?K240UWhCL1hQRGJuK0drWUo4dDJwKzJMTHV4ZGRaTW1NbDkyNVVsRXp3NkVl?=
 =?utf-8?B?Vjg4VEU3TGIzVURaSDI1Z0EzOW1tTmd3SFJzcnhPOS90QlNKb2RHRlhTOXQ2?=
 =?utf-8?B?eGYrbmxueEYwYUM5VVR3czY5TnVuenQzanYyS0dFTlRmQlBJczRCNFNzbVhL?=
 =?utf-8?B?RUZFeWluanZSbWJHQUJOeVVJY3NxK0tiRTNqaUVITnd3MFRzdTdoYnpFYjFH?=
 =?utf-8?B?cjlIeEFEQkhjMkU4NFlYQ2w5NFJZTmxzeXQ2U2pRTnhFR0phc0w0eVVXRzZM?=
 =?utf-8?B?Z2JXN2JXZFlRajBTMFlQaDJLa0dKdHJRZFhPRGcrM1dhN1hXazF3KzB1MlhO?=
 =?utf-8?B?N0t2M1VROGQ0NVdLcEpQRFRGSkVicFRGamN2THRBcWZkbWdzTVEwUWQweEZr?=
 =?utf-8?B?eEJCNzZmOVpRZTh0YjhLM25VZ0E1c2VLekhXZ3JQYkJpaGptWkticWJPcXJZ?=
 =?utf-8?B?MU5rbGFqSVlXSFA2aThJVnd3R21EaHlPYnRvRHR3UGRaV1orMnY5WmZGYWZB?=
 =?utf-8?B?VURZUlVHWkpmSHRLN3hxd0xmTnRNKzVlMUdIL0E0TWk2aDBIcDUrZ09GbnNH?=
 =?utf-8?B?Sk1UTWgrL01POXZjYWVjM20xN2tMdHdqYmNVT01CTmRmU2F1WGFQcWRxbW92?=
 =?utf-8?B?THNEajlubi9ja29JYVBkck1SMDdldlZEeVdwYXFVbGpIWW8zZFZHWXhWUE5w?=
 =?utf-8?B?S2o0cFhGUUtqTGVMR1g4SFoxRVFIUWpEVmxvcGVKamFRQ1JnUlFRbExqYnVS?=
 =?utf-8?B?bDFPcmtzNmNwSmk3NC93WkpmdUwwSXZ0YUhPRHZWV0k3MzRWc3oyTXkvTTNQ?=
 =?utf-8?B?Nm44b3NrWVlKSE83Z1lkdjl6NVVKL3poV2QwQ1JTbnFvcFRDbmc1VjVkT2pp?=
 =?utf-8?B?WUFqaG9pdmIxZFp1NVFLNG9DcUIxc2ZDajdXTEM5UmEzMVA5MHpwdUpFcFUy?=
 =?utf-8?B?M1RnUmxUUThMeENUMkZLdnR5R1Q3a1A1RjlNRnIwN1Nucm4wc2hWQnlua1ZP?=
 =?utf-8?B?Ty9BUkp3S0toYWVpalVaR2QwWUlubEkxZWhOT2MwZlJ5Z3V5TG9KVUYwTThH?=
 =?utf-8?B?SDQ3bXRyUGZWcW8yVzk4eG5Cck93Vk9tL0R6ZCtDY0ZaOWlrSWd1WHhTS0lz?=
 =?utf-8?B?Y2lrTTlqWEkzUWl6T2U4bS9BQUdzSXBOdU51K1FyT0dyVjh1UU9tRVdVTGxy?=
 =?utf-8?B?L2NHYXFVTGFmTUw2c1dRazgvejE5RFJZUWx6TGdhRStOZUI5cTA2REp2MDUy?=
 =?utf-8?B?ekt5b09nczdxcGloRjc0S2xnZDkwZjF1VVdOd0UrTkVCR1dKcHlXNksreE0v?=
 =?utf-8?B?RGxKTFh6c2w1ZTUwSVFKK3dvRWxOcDdoSXFYUHJQUkdzbHYwUDc2Q0MxOE4x?=
 =?utf-8?B?TEI4cVluTGFla0l5NWdXMXNrYjNWZmZQRnhzaFU2R1hlSzY0b21oenJ3TnRC?=
 =?utf-8?B?bDhTdGhmd3drY3RTV3NnSW5QZXJzNFRZRjVUdVpKS3JCZXBJWEVUZWY2Mndx?=
 =?utf-8?B?dVMyWnlOeEJnRXhueTA3U2JFbW1Nd0FpSGI0UnZ4ZGVsdTk5OW5UWlZ0SmZQ?=
 =?utf-8?B?UEJTN2RVR0t3UjJiN2FoM0d2Vk9wdDZKLzdPemtNcHU2QjVRV0FKbUVLaVJv?=
 =?utf-8?B?UWhGTHlSazduMlJQa2dyckowSkg3UHlIVG1WTTNWMzVoOFY1NTE2eXZJRmlJ?=
 =?utf-8?B?azF1K3dZbWdONTVaZ1ExeFYzeDVWbVVrOHVBUGNZLzQ1emFnYmpKQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 934d6cfd-2c7d-408e-5bb2-08de7a14a280
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 17:36:57.9722
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: jjnCk8NaK9wW1h5rdOpI6MEgSspme8QVo4qOaf9Zgk6d7NxOCr5caPD3lYPwuY7W4hSLCAokkUGPpy/83ot2rg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB7963

On Wed, Mar 04, 2026 at 04:48:07PM +0100, Jan Beulich wrote:
> On 04.03.2026 16:38, Roger Pau Monné wrote:
> > On Thu, Feb 26, 2026 at 10:01:45AM +0100, Jan Beulich wrote:
> >> --- a/xen/common/domain.c
> >> +++ b/xen/common/domain.c
> >> @@ -1475,7 +1475,7 @@ static void cf_check complete_domain_des
> >>  {
> >>      struct domain *d = container_of(head, struct domain, rcu);
> >>      struct vcpu *v;
> >> -    int i;
> >> +    unsigned int i;
> >>  
> >>      /*
> >>       * Flush all state for the vCPU previously having run on the current CPU.
> >> @@ -1485,7 +1485,7 @@ static void cf_check complete_domain_des
> >>       */
> >>      sync_local_execstate();
> >>  
> >> -    for ( i = d->max_vcpus - 1; i >= 0; i-- )
> >> +    for ( i = d->max_vcpus; i-- > 0; )
> > 
> > Is there any reason we need to do those loops backwards?
> > 
> > I would rather do:
> > 
> > for ( i = 0; i < d->max_vcpus; i++ )
> > 
> > ?
> 
> I think it's better to keep like this. The latter of the loops would better
> clear d->vcpu[i] (to not leave a dangling pointer), and there may be code
> which assumes that for ordinary domains d->vcpu[] is populated contiguously.
> Hardly any code should touch the vCPU-s of a domain destructed this far, but
> still better safe than sorry, I guess.

Yes, you are right.  sched_destroy_vcpu() relies on this specific
top-down calling.

Since you are adjusting the code anyway, it might be worth writing
down that some functions (like sched_destroy_vcpu()) expect to be
called with a top-down order of vCPUs.

For the change itself:

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

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 18:04:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 18:04:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245883.1545228 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxqa6-0001a6-C0; Wed, 04 Mar 2026 18:04:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245883.1545228; Wed, 04 Mar 2026 18:04:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxqa6-0001Zz-96; Wed, 04 Mar 2026 18:04:22 +0000
Received: by outflank-mailman (input) for mailman id 1245883;
 Wed, 04 Mar 2026 18:04:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YYFb=BE=citrix.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1vxqa4-0001Zt-JW
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 18:04:20 +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 8ec204cf-17f4-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 19:04:17 +0100 (CET)
Received: from LV3PR03MB7707.namprd03.prod.outlook.com (2603:10b6:408:28b::21)
 by BY1PR03MB7309.namprd03.prod.outlook.com (2603:10b6:a03:52e::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Wed, 4 Mar
 2026 18:04:11 +0000
Received: from LV3PR03MB7707.namprd03.prod.outlook.com
 ([fe80::97e8:ef9c:9031:e2bf]) by LV3PR03MB7707.namprd03.prod.outlook.com
 ([fe80::97e8:ef9c:9031:e2bf%6]) with mapi id 15.20.9678.016; Wed, 4 Mar 2026
 18:04: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: 8ec204cf-17f4-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ymcZB7avWz+upqpYod/pq+fsiZAHbbvaCVTsEpDhT5cqoR471dzK7HLSQLP1uujj+TEXkrvwifq93ExuqTI+FEUjiHBhwVP8CxtXysxjr+HpvohW4fG1DAg3uTb9um2wQr2UuK8aehW2PHZwlOWhYaFafwyTytU3/hotGOEFPD1KCCVBkjgMphhjRjafDS9EevXpUyB1JbgAih1SOMC31t88cFRB0iC49Ren5U94oEq87K5VplOMRRfsqbCdCEyHxwCj9k4s/WKxnAwztgEUwvyVlsL4znRJsAgjRu53BGkEq8ue+GrJBUS0XQtJzsca7BqK3LjkLQ2E7rJ+K6g1WQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7dJQeHs9cvZ6btZc71IPUR3teyBS83Ug9Xkx1pLIiw8=;
 b=S2qZFIgmpWqJLigarlfN0L4nDIkuMBqrqEqwFRdnjgD28wUrDZTE0T4GZ5FGHup6DxTzvg7S4eUbHr4sEZqyrk6iGJlJdVv5W64dw/ZEtjXf5tsAQnkyamvVjNX5X+zYlz1Jm5Ikghtdof6JE7DWd2qbh1YYiXENYnNj/hipn9NCHCsEqkox9hPRbkIiiCzg8K8jWHWqvljDfORArFjoE6RXV7cwFGbSM54ZERKHyKTXziTphy7D49QyezvdNoIm7DUCGve7Bo0/Ou9ssHMLUoKzn16IaSckKEv3vdJClhMRPf+h4/Tbv3Jz0haykEItoAqWHFoTK6Xj3Iy4U/N05Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7dJQeHs9cvZ6btZc71IPUR3teyBS83Ug9Xkx1pLIiw8=;
 b=xr3I0daXpgNT/0J6/z6cm8j171ODuFaJDF9gKiWBBqaLPgkEvVVLHFSVM/PTkz/SJQ8abCZY3tzMFNFE9oYMebeOhr2VjZfq6CpnjVDziAjKrzIkKXlh9iaz13t/s5taRmfyG5BQXO7osS3kEw2UjH/Cm10esbM0Xv7G68CV6bU=
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, Roger Pau Monne <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v4 01/10] xen/page_alloc: Extract code for consuming
 claims into inline function
Thread-Topic: [PATCH v4 01/10] xen/page_alloc: Extract code for consuming
 claims into inline function
Thread-Index: AQHcq/LTrNW7h1OyYkqbdUVMe4OBY7Weji2g
Date: Wed, 4 Mar 2026 18:04:10 +0000
Message-ID:
 <LV3PR03MB77070CA8CBAD19F6DBB0E975877CA@LV3PR03MB7707.namprd03.prod.outlook.com>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
 <7dd887bc26830d6c50e5bc2606391963e65285a1.1772098423.git.bernhard.kaindl@citrix.com>
 <91d2bd4b-7ca8-45fe-9e60-071d2cf2d327@suse.com>
In-Reply-To: <91d2bd4b-7ca8-45fe-9e60-071d2cf2d327@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: LV3PR03MB7707:EE_|BY1PR03MB7309:EE_
x-ms-office365-filtering-correlation-id: 34ce544f-516d-4bb7-1cdc-08de7a186ff5
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:
 D5or6y0hpUL/bObyAQK5z815Dbb0YvWxfSwFu5vJn5gl+a4tS4un3oR3hNfEF8h1/LfYA17E71XA8aRuusdWiqGX7ehoQIF2qOdbXoPvYZK9fbllLqIcPz7+5yne6Gfu83eTbQeruccn0Q7tzWLj6ZbX6X88/oqgx9ZrDDLlJTZYhWhH6TUSilrRVTNfUs9TCNL1yi4vKWH9r5v5dI401fkxOar+JlzyZqveScfc3TjGFpzgoze0LBfCvzuEGIkI15A8mnn3HA+/wxFp1kamgKAczeCxkq8FkJ+7Gr6dmu8b0O1PKkrRXggFFFgEYP4fGksC3wcgzrq2vrlVoF9fhOkM68jTBT5eTDPlfeDH2kEAE+CKuSddkXC9JNJCBnTed6eadxlHSSgGpxkefnzpM4VnbW96Z0uQWyYa79ffsHr6Og9fGjM8Ge9baqrmS9e2S3R0UqL3RrebR7rQnXuqfD5LdUfMuO+dqg7ruHlA8bjEDlo8W8Fe571vN/ZMP8fb8uuo5EiIk0qNeApS6cBd4QiSN6lFSpjZ2SAf8wwrNaGDz55enQTdjjhTOlMq0QuE3z9sosE+CWS5fR+FmqqwPeuGoSpvNSD6uaMMiufG7VEe3BhVC5wmUJWL+Bp9igG3yaDX8zNugKkUJfgmbcxtSQpQd0YCDxitr02zuprVStYUnHjlNn6bMJL3QyQt7ui3Uf3asgH+VK/vG6Ij/LmDG7y7ZO+a0HnFfBgmEh+s6xSTJhjht2hoJ4R6Bxp9cuGwBKLVxo7NVtUULKAhYFzKIHONu2PQU5Dcmudmi9IagV0=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR03MB7707.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?NDNDditqUENmQmR4MlhlSmFyMXJNb3BORzV2RkhOWHFzRnpRTTljVWd2RUpJ?=
 =?utf-8?B?bzdncVNRSkNac3JJdEtwUGlURSsvaU5lVEs5empHY3FOeFRFQ1hheWxHdTVx?=
 =?utf-8?B?NlBWMFhBSVY3c3V5UTRJTE9IZWVFVUNycHJ2UlZwT1BsYWJjUkNiczJPZElR?=
 =?utf-8?B?akFrK2tHQmVUTzJ4MCtNRGQ2bzNFZUZMOUNmV0hlZUxwVG1DSXFaZXg0Nzhq?=
 =?utf-8?B?YW9TTjIvbUFKc0hncEZ5enp1cWQrcy9rbjRZQVVlYU9GNTZNMHY2WHViSWZu?=
 =?utf-8?B?YjBBNExWYnpVVjFWQ3VWb0FIYjZmaW9EWmkxeENLN0RsdHJxeXhGZGhqQjJU?=
 =?utf-8?B?NVlHV1dadGFCVENXUEZQTnI0bm5aeGlPWVBsV0hmcnhwTjRXYzFIQ29KQUUv?=
 =?utf-8?B?NFlvRFFMT25qMGYxUEI2R1J3cVJPUm5USFNKU2h4ckdaMFRDekYzNzltOE0r?=
 =?utf-8?B?SWJlb3IvNWY0cmhzVjkyU0F4V3ZnY3pDY0lKeDVNMS92RzNPcVRTOEtvR3Rv?=
 =?utf-8?B?emtlQ0t5anJsY1EwZlhrWEZrTzRZUnFHa2JndDFGZnNNR2V5YU5vOFlmME5V?=
 =?utf-8?B?cWhNTXZxcmQyR3YrVXpBQll4QzhTc01FMmltTEIzQkpnWEtCRG9ZVXpKQjNo?=
 =?utf-8?B?Z3VBWU4wWlhGY283NlhxRXltVHdqVGsyc2VQc044VVR4NWtPT3JyTTUybDJi?=
 =?utf-8?B?ZDJxS2VnSFpqSVRxMzF4SWoxNDZqWUh4V0FlUmJOYjFpWDVmb3IvVlBUNzFV?=
 =?utf-8?B?anN1VXdRUmd2elVucmdFeVpZdkZSRnZxdzk4MWhPMER6QUg4bGFhY2xoTFBz?=
 =?utf-8?B?S1A0V1E3QlF6SzFHVU54N2hBazBWRjJrbmhYRFpMYXQ4Y25seTJ5YW55VW8v?=
 =?utf-8?B?cUtmKy9vSGozOHRmUXJwbEFIUHpGYko3b1N6Q1JZZW4wMzE4UUJZOFlwbjgx?=
 =?utf-8?B?UmNQekdDZ2lxeTFmSTNKSHc1MTUzbzVhYkxLM0JSV1FaWmhSV2toSTBkVmw4?=
 =?utf-8?B?T1M4TTNlYVp0OFFvaUJyU1M2OEVNNDRkamNiSU1JN1gxWlJEdk96a3ltcngw?=
 =?utf-8?B?aEc1emIyNGh0ZlNLVDBtTlh2QUcwNHhMS2NZUEtETDZ0TmRKTnd0bi9JTFg3?=
 =?utf-8?B?b0M0UzR1OEJoMmJDSE5HcGxmRG5lcko4Uy8wdUFhdFFmaWRsS0I5QkMrWTlZ?=
 =?utf-8?B?cjNQRFBBZWJKTDZvTUVjS3dudndDVS92OFYwOE0zQ1YwTXZWVUk3R0lndEJ1?=
 =?utf-8?B?cVMzVU9RbW43SDdvckJ5NStlR29BV3NJRjExNUpxTjZicFBSaGRHUG8wa1Rr?=
 =?utf-8?B?c3FCalptVjNzMjg4NHlacXVBTjNkQ2lzK0k3NFhTYjZwTlljV0ptZ0NDRWND?=
 =?utf-8?B?VEdncElMMGRyZGlPTEk1Unc2RnBZUkJ2T2tKZ3ZyTDZ2cTUvTG42R1J3bmxK?=
 =?utf-8?B?eGZmTnVDV2FFdVk1SnVzdm9lQk9OWlVvUGFST1o1d0FYRzZ5Y05iZEZtbUhs?=
 =?utf-8?B?b1NIeStQWDgwOXJqWWN2RmxVL1NPSnZscVJqa3c2VjF6VC9NVXJvdlZIQzAx?=
 =?utf-8?B?YVFCUVBvalZ5cUJlb3RqTTdMbmV5dSs5bmxWMmVTWFhUV1N3bXBFQ01OVHZa?=
 =?utf-8?B?YWJJUFZxdFdMbkhZbmR3ZnZJVllaM042Nk0vSytYSVZtSEFTZ0diVUlaWU5q?=
 =?utf-8?B?bngyMkEyQmlsajc4RWlTZ3NQNzBjQUhTbnBSSXhySEtrRnlBd3J4QTVUeTdL?=
 =?utf-8?B?QkVNL3hVZW0ycCszZmY0emw3TG9lNmZxVzVWWVhuMkl4aUdKUmpmY3EyZmI2?=
 =?utf-8?B?M3VPSG51YllFVGZhRDVEeFpZaEF1UkV1RFR5eDNkZWF6MXcrRnpnZEh3U2g0?=
 =?utf-8?B?MjNEQzFNWVNEMmkvS1IrV1NHN1JhZmVocTRaVUpNOTBNOGxYY2RXaVE5cDFv?=
 =?utf-8?B?d01hNWFYNDVubkNaVmdKVy9ZODF6a2NwdUllNUM5M1o5bitMUXR4S2FVRHRQ?=
 =?utf-8?B?TE5JOFU1akxSK1VSR3hlMHhnWVJoaStGcTV6RlFrWmI5NkpHWWR1TGROekFU?=
 =?utf-8?B?VzZGT3Ftc09VckEvY3paek8rWVhNZWRZcFAralZjUWZBMW1qU3RNZ1hEczA3?=
 =?utf-8?B?TGhxcEdjRGlNWUs1OVJxSndOeE9yRGZIQi9vaVRFVmNkZklBeWJSVlp0ZGtp?=
 =?utf-8?B?MlUyVWlBTnduckhCamRXRnVzVU1wUkpOdGtwKzh0ejgvNFdiakV6SklaVldP?=
 =?utf-8?B?RElpeHVyOWZEUEVVNE0vS29ubjBJa3pTNkZabktDNWViajNEcU5wK01zbUJX?=
 =?utf-8?B?ZHJBWDFyS2ZSRFowdGp3bGF6dzNkRWswdEVWREgvTzBBZnpiaStKQT09?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: LV3PR03MB7707.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 34ce544f-516d-4bb7-1cdc-08de7a186ff5
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Mar 2026 18:04:10.8717
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: tZ3jdcgUSdYjJfxaAjYBkZZFa5KDc3HXsH8osrov1n5J0/fmh+02NHRWp9RpsaBoudC+4yyfSjvRjVqnuCXoyvyD1xJTliwusmT6RpuweCQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB7309

PiA+ICtzdGF0aWMgaW5saW5lDQo+IA0KPiBHZW5lcmFsbHkgd2UgcHJlZmVyIHRvIGF2b2lkICJp
bmxpbmUiIGluIC5jIGZpbGVzLiBUaGlzIGlzIGJldHRlciBsZWZ0IHRvIHRoZQ0KPiBjb21waWxl
ci4gRnVydGhlcm1vcmUgd2hpbGUgd2UgaGF2ZSBhIGZldyBleGFtcGxlcyBvZiB0aGlzIGtpbmQg
b2YgbGluZSBzcGxpdCwNCj4gaXQncyBjbGVhcmx5IG5vdCB0aGUgcHJlZmVycmVkIGZvcm0uIFlv
dSdsbCBmaW5kIGFtcGxlIHdlbGwtZm9ybWVkIHN0YXRpYw0KPiBmdW5jdGlvbnMgaW4gdGhpcyBv
bmUgc291cmNlIGZpbGUgYWxvbmUuDQoNCk9rLCBJIHdpbGwgbG9vayBmb3IgdGhlIHByZWZlcnJl
ZCBmb3JtLg0KDQo+ID4gK3ZvaWQgY29uc3VtZV9vdXRzdGFuZGluZ19jbGFpbXMoc3RydWN0IGRv
bWFpbiAqZCwgdW5zaWduZWQgbG9uZyBhbGxvY2F0aW9uKQ0KPiA+ICt7DQo+ID4gKyAgICBpZiAo
ICFkIHx8ICFkLT5vdXRzdGFuZGluZ19wYWdlcyApDQo+ID4gKyAgICAgICAgcmV0dXJuOw0KPiA+
ICsgICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZoZWFwX2xvY2spKTsNCj4gDQo+IFdoeSBpcyB0
aGlzIG5vdCB0aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGZ1bmN0aW9uPw0KDQpUaGFua3MsIHdpbGwg
bW92ZSBpdCB1cC4NCg0KPiA+IEBAIC0xMDQ4LDI5ICsxMDc1LDggQEAgc3RhdGljIHN0cnVjdCBw
YWdlX2luZm8gKmFsbG9jX2hlYXBfcGFnZXMoDQo+ID4gICAgICB0b3RhbF9hdmFpbF9wYWdlcyAt
PSByZXF1ZXN0Ow0KPiA+ICAgICAgQVNTRVJUKHRvdGFsX2F2YWlsX3BhZ2VzID49IDApOw0KPiA+
DQo+ID4gLSAgICBpZiAoIGQgJiYgZC0+b3V0c3RhbmRpbmdfcGFnZXMgJiYgIShtZW1mbGFncyAm
IE1FTUZfbm9fcmVmY291bnQpICkNCj4gPiAtICAgIHsNCj4gPiAtICAgICAgICAvKg0KPiA+IC0g
ICAgICAgICAqIEFkanVzdCBjbGFpbXMgaW4gdGhlIHNhbWUgbG9ja2VkIHJlZ2lvbiB3aGVyZSB0
b3RhbF9hdmFpbF9wYWdlcw0KWy4uLl0NCj4gDQo+IE11Y2ggb2YgdGhpcyBjb21tZW50IGlzIGxv
c3QuIFBhcnRzIGhhdmUgYmVlbiBtb3ZlZCwgYnV0IEkgdGhpbmsgYW5vdGhlciBwYXJ0DQo+IChp
biBwYXJ0aWN1bGFyIHRoZSBmaXJzdCBwYXJhZ3JhcGgpIHdhbnRzIHRvIGJlIHJldGFpbmVkIGhl
cmUuIFBsdXMgaW4gZ2VuZXJhbA0KPiB3aGVuIHJlYXJyYW5naW5nIGNvZGUgaXQgaXMgYmVzdCB0
byB0YWtlIHRoZSBvcmlnaW5hbCBjb21tZW50YXJ5IGFzIGlzICh0eXBvDQo+IG9yIGZhY3R1YWwg
Y29ycmVjdGlvbnMgb2YgY291cnNlIGluY2x1ZGVkIGFzIG5lY2Vzc2FyeSkuDQoNCkFjaywgdGhh
bmtzLCBpbmRlZWQsIGl0IGlzIGEgZ29vZCBpZGVhIHRvIGtlZXAgdGhpcyBpbiBwbGFjZSB0byBp
bmZvcm0gcmVhZGVycw0Kb2YgdGhlIGltcG9ydGFuY2Ugb2YgaGF2aW5nIGNsYWltcyByZWxlYXNl
IGFuZCBhdmFpbCBjb3VudGVyIHVwZGF0ZXMgaW4gdGhlDQpzYW1lIGxvY2tlZCByZWdpb24uIEkn
bGwgcmV0YWluIHRoZSBmaXN0IHBhcmFncmFwaCBoZXJlIGFuZCBtYXliZSBvbmx5IG1vdmUNCnRo
ZSAybmQgcGFydCBvZiB0aGUgY29tbWVudCBvdXQgb2YgdGhlIGFsbG9jX2hlYXBfcGFnZXMgY29k
ZSBmbG93Lg0KDQpCZXJuaGFyZA0K


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 18:21:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 18:21:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245900.1545238 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxqqy-0004Od-Qm; Wed, 04 Mar 2026 18:21:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245900.1545238; Wed, 04 Mar 2026 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 1vxqqy-0004OW-NZ; Wed, 04 Mar 2026 18:21:48 +0000
Received: by outflank-mailman (input) for mailman id 1245900;
 Wed, 04 Mar 2026 18:21:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YYFb=BE=citrix.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1vxqqy-0004O7-Ck
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 18:21: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 009cef6a-17f7-11f1-b164-2bf370ae4941;
 Wed, 04 Mar 2026 19:21:47 +0100 (CET)
Received: from LV3PR03MB7707.namprd03.prod.outlook.com (2603:10b6:408:28b::21)
 by LV3PR03MB7611.namprd03.prod.outlook.com (2603:10b6:408:290::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18; Wed, 4 Mar
 2026 18:21:42 +0000
Received: from LV3PR03MB7707.namprd03.prod.outlook.com
 ([fe80::97e8:ef9c:9031:e2bf]) by LV3PR03MB7707.namprd03.prod.outlook.com
 ([fe80::97e8:ef9c:9031:e2bf%6]) with mapi id 15.20.9678.016; Wed, 4 Mar 2026
 18:21: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: 009cef6a-17f7-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sLOxQA3bUqKpeA0RY8nfFo1TqVEPEyR/LNFQR8qYKUHSIz1FnDSnETWcEqeNLrUgAvlX3qluQE/b6w37ya8c7j/UEezT6BIgu9U9LVHzC88kEddBu6hsyYzSuT+ubFNlkVKpE8j4tSP2oeX3N8ph7gT/pQPTZf17QOTTHz98eOvC9rsPvJ3xlTpEamCBgVDmckop6mERLzWeLsSDwkhksMhRQB330v9+aqOYzWkbgA2CvM0GVV5FmLheabWUCLkwl67PPu70XKqXk2nCe4gHg8IYdW1zQxvWJavdxuFPzVSpr7F4M0rQOZMFKed/WT00AXGYYoOH/Na82oAf9flm6g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HT8S73pF0AdY20RHfdnN8wYSfqur/qUxBePSwcJeCFA=;
 b=Yx7oP7WNziXcjxkN7+1gu8n6iUtLmqjnNY5RJJVR9S0r1T6r/S+DF/jtezQggNhUfn3xKHO+efqa95qGj4tIXeAPf0T0x73zHppwgGuQkWRhdrly9zufkAkN3DIj6rcCOidq6qm3RTX0kRwMDDTKl95zMIFi2GNlw06zReJwKUtqTOahVIOzarA9rFuNlDO9ytpYmHoehnV3yeVp3s4u8Z4ud/SjsT9TdS2JVR24Yx90Ij326EOyjNbDcGDXBfOEztwf00nYrhr5cjr7V3ZywG3RxAksvoD+6qMU84IkQ0K4oYI2J58qXo1NX7JbrSzj1cr/R47d80MYp7V38DmXdw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HT8S73pF0AdY20RHfdnN8wYSfqur/qUxBePSwcJeCFA=;
 b=ibQKt7Pg1pqtfMB7xayAa/EMXFL+A4MHjxyH0VvJz8pMkTDkOdmT6ozt74SGOSX4SxVKWmx5GEmHEVHvLTq7/0iGEYw7v9CQfsGs96WQBatWKux8rq8Jgy5RLrFS+s4eCKYEuhJMZO3itX3nm2A0lJBn7bD/emeWd898o5TLOMQ=
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, Roger Pau Monne <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v4 02/10] xen/page_alloc: Optimize getting per-NUMA-node
 free page counts
Thread-Topic: [PATCH v4 02/10] xen/page_alloc: Optimize getting per-NUMA-node
 free page counts
Thread-Index: AQHcpy3M66O7r2QZuEav6YZwQwz7ULWemlMAgAAa8BA=
Date: Wed, 4 Mar 2026 18:21:42 +0000
Message-ID:
 <LV3PR03MB7707E83CF01464D69AF1E599877CA@LV3PR03MB7707.namprd03.prod.outlook.com>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
 <c56658d1248660543fdba162810b0629c081bd94.1772098423.git.bernhard.kaindl@citrix.com>
 <5e4d4674-1e1a-4902-bcd0-a24fbd13dc8e@suse.com>
In-Reply-To: <5e4d4674-1e1a-4902-bcd0-a24fbd13dc8e@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: LV3PR03MB7707:EE_|LV3PR03MB7611:EE_
x-ms-office365-filtering-correlation-id: 21b1d24b-6ffd-4fb9-aaa1-08de7a1ae2c5
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:
 eoJN6BKC1GVZw7rZfMmYCYfOQ2L9Ccp1bkjRTqOkv8KgLS4SUsUpKn1KHPDPB3XOcpr9Mvtfu5ZZnj9TY2DnX1IuAcQXJ8R1QWgwGJgZZAvRBg4lsvFEj2SusDP3JpppKZzifu8eGu09BkBmmFxYXbWHh3szcInjim7VrRGB/TUp9aOvAqIT8+OShO3CUw12BsLhiLApzAF1u0OSqFdMgE8olvwiyBDZvabbe1G7bd1AtyGYAZsyXgTOKNS9r+7vH4v00P69gsbrlv5X8lwJap3Hm58ZgvBxV0HjCK+rIJ2jERg1nn9RijRKpTzBW9aAx+/EbUG3CqjyFK5TOfydlRH/m35D35UbaanVubSOY+UHmBDWQ5so9zsQqI9FvF9yGLeJRfQPySBIlEU/nmi/hX2xQsVvk0j192Pqd4gIGumO0vmpB+M/xSLRb6ECpO3llE1G7A5jjNrm4Taa4jq9QlRJkSEYSehiwGaNZKW2V5EMtIVLZisaP1ad0K/62++zjhWyFNbS8Ibt1JoqEVzgqbE2id/XzVHH41tqL9zvCNm69pIa5o3FIVUDaoesV3Mo/2gDzBbSrbLrFwwIgDZw+eKqjIgVMd26jrwK7QGdAIRK6CkOot1Hj20qlLGnUn2Uiz21mIvLXobhsxjX6kFN/7KWr4U90A5S93p4b1sf2wWpttn0A+TY7P2yZQ4tQmKE98W+TwfXKnC5CBm3TojvAoelRbBsBTAhHNUc6bqQBy0EKGx6dZvCvi1C33A/t8zLrsnB5CSKkE3xX/qFgyKLCdM6wJEu5ckkoPFgpm1vgTg=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR03MB7707.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?dTl0RHF1MURtLzFOM3RqNTZyNE5PK0d3ajRTSFFBZFNJNjJDRWVaRFAyczg3?=
 =?utf-8?B?M1U2cVRFUE9EbG54cmZBNjFzS1k5dGh6dG0yWkFJODZHZDJsK0RlUWQxNW9w?=
 =?utf-8?B?YU5oa2J3WlcvWXU0dkNlQlY3aklXWHJqeWh0VHRwOW9SZzFDZzdsbFV6QW1T?=
 =?utf-8?B?UUhwNi9RMTQvRmMzOHQ3dTZFY1lnOU54dWJFTXdKNENTeElER1Y5SXp5L3g0?=
 =?utf-8?B?R2VTbWpuQWFPb0xXaTFEUHk2Y2dieXdNQWREVi9QcG1MYUpCQUxQYlZ4bjRr?=
 =?utf-8?B?cnFuRFdSdmdKU2NpY0IzZzh5cDVVMjdwR0pEMEd5THV3cXdPbkJCcEtZVmFx?=
 =?utf-8?B?Q1JqbTVPeU9DenFTeXpHSmRrZUxKNjJMNVU1ZDNkYlh0cXBHdkJ4SDV2dmNw?=
 =?utf-8?B?anpzNUpxc2xiQ2QxNWZCUGd3elRuSCtvUlQvaGdtRzFVQk1ZQTVxSnVWTWxQ?=
 =?utf-8?B?UXhOWm1FTGpJb3RUVDJoTnVHK1Z3dGlaMWZhazNIN2FDQ0xpb2NSNHdnTzBs?=
 =?utf-8?B?a2x5VHd2YVBuMzRqbWJKZHZiTGtSL3VRby8xd1VVVFhoSjdVc3dzdjdsTlp0?=
 =?utf-8?B?VUdMK0tmSEROTDBWTjczOVczdFNXM1dnbG1oVVR0eHE0ZzNtbXF1YVliYzRG?=
 =?utf-8?B?NEZBc3NESjZDSzIvWlFNUG5KQTRtZkxJUE5KdUN2SDdQTTc1ZnN0cUZnVlJU?=
 =?utf-8?B?RmpFck9STTZ1THY4Z0NRTUY4N3pVWTBJaURIcXozWE9RQjdTM050QkQ2WWZm?=
 =?utf-8?B?ZXpnc2ZDUjZPUHlSMG9SeG9kdVBXMWVtK09Ebk1Zd0dRRGdGWS9kTW5JR3VW?=
 =?utf-8?B?Rlp0aThmcG1yUmUrbHRZRm0yYkxRUytDTmhSaHQwc01BamJtb0Q5Y3c3UGpB?=
 =?utf-8?B?OTdnb2tzMis2dHBCeVgxMlYyQ1JnTXlJNzBwWktMZ0ZTaHpsMHMyRDdzaFBY?=
 =?utf-8?B?YjQreW1hOGdUS0FibVhhVm1xbVJzYXJOT0E4YkVFWGlOY3RhY2VPQlkyVUZy?=
 =?utf-8?B?WDR4V0d6U3ZMWkFmMkZqc2w5WHBWQkZDS0pNdmd0TmlGMzhuZ2ZXQXlGbWcv?=
 =?utf-8?B?bEtkYUFBcGFmdWVaaHVKS0hUdlN0aDdoYm9YQWNybXk0VVhQUDJDNVgwT1lI?=
 =?utf-8?B?K3U1ZUdTM3NTTkhBL0xmVUcvSjVVY2k3NnNHS3lhVVJybVJ1MDBjRzMybEVp?=
 =?utf-8?B?WnFRemZuOW0vMzVucHkyNXZvalVNaEh3SU9QZnlWY3lGNlUvdk5TSGVZbER6?=
 =?utf-8?B?Q2VXdmNUaE8rT0lIbGdiRTBZWlViM25TZG1LTjZnODBuZi80NVBlUGNRS1Zl?=
 =?utf-8?B?VjVQdWsxVWlaNk1BeXVVS3FuaVR3S2xOOForZ0FIYW5kS2Fwa2FlemJOUkJt?=
 =?utf-8?B?Q1B1dWs3aisxTmdFNFVzNTZkcUd6M0NVT1k4TVJvZVdtT3BWcXZVM2QybW5F?=
 =?utf-8?B?eDA1WmxxR3FSR2lkRStuN2JWdU9zOFFVVDdIdHhRRUtQdVk1ekpBd0VqZEht?=
 =?utf-8?B?TUZ1Z2Mxb0xFbmZUTi93cm9heU13UXVydWJVQWFkam11ck9xZVlQa2QwWUZN?=
 =?utf-8?B?MTVCTmxCY1BRSzMvOU8yR0NpZ2Q2c213NGhIcjFuSnBTY2llT0FldjlkTzhR?=
 =?utf-8?B?b0I0UC9rM2lRNHI0MzkrQzV5emFNWEdFWEtRMVZ3SjB6SUZiTjNWUmhxM1c0?=
 =?utf-8?B?TExHK1lLV20xQUMvSGlBS25qMmZ5SjBuaGtNVENwU0FmUWdqVUl4M3BMS0I3?=
 =?utf-8?B?QzN3L2dqajlYWTUzT1lTWWlYbUROWGI3SkVOdzFkSlJNOVVkU3dmLytjMkJJ?=
 =?utf-8?B?WldXeEQ2a05sdEc5NGV0YjdDQklVeTNUaHk1cmVURWxhS0hoMktsWWNVeVEx?=
 =?utf-8?B?blUrWjRoTEZFbHlDa09xZDdqWk92cm9GSE5WN2wyZzR6UzVoenRQRGYzd0tE?=
 =?utf-8?B?c2lJUVN1WEE4YXhqV2taN1RFZTl3WVh2VEYwMFB0dzVpUXdKZnFrTUQyR25s?=
 =?utf-8?B?NTR4N0xYb0xqalE3Y21WUHFpcytYaEp0YmtROFBhTU83OEFKVTdvOXh4WHhZ?=
 =?utf-8?B?ZGYyVTVISmZWTlpqcWZoTGZpVG9NazhlL0pwRk9ZQnJrdkQ5ZnJpODk0RGhD?=
 =?utf-8?B?QndheDZVTElxclEzR3hZWi9WMFJETHl0UkE2Qm9JNHZxT0s1NW9hOTVBSHdW?=
 =?utf-8?B?V0ZFSmxINTRWQkY1N0ZtcTIvdWxjSk9XRkJMR2tNNU8zU1RLTUpBckpYcHpp?=
 =?utf-8?B?SzFYOVpoY2syNlZEOEd2NTIxcE5XZ2lXeEdmdXNxZVM4NVNXZlNLYnd3NHV0?=
 =?utf-8?B?MUNwMnpNV2o2dy9RNjdleDRrTEtTVmVYVmIxNUpCNWFtNU55UXpydz09?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: LV3PR03MB7707.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 21b1d24b-6ffd-4fb9-aaa1-08de7a1ae2c5
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Mar 2026 18:21:42.4602
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: UpiDrc0kw0Qp7yMDyoB6QGo7BFY1Bzn1+V2J0eoE0uRIa3s5YoeMb3DX4x2bOCLLM6mXrLrU753gHDgqCpoy23bPuv0CJ/rZhwgr2wTa5jE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR03MB7611

SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPiB3cm90ZToNCj4gT24gMjYuMDIuMjAyNiAx
NToyOSwgQmVybmhhcmQgS2FpbmRsIHdyb3RlOg0KPiA+DQo+ID4gQWxzbyBjaGFuZ2UgdG90YWxf
YXZhaWxfcGFnZXMgYW5kIG91dHN0YW5kaW5nX2NsYWltcyB0byB1bnNpZ25lZCBsb25nOg0KPiA+
DQo+ID4gVGhvc2UgbmV2ZXIgYmVjb21lIG5lZ2F0aXZlICh3ZSBwcm90ZWN0IHRoYXQgd2l0aCBB
U1NFUlQvQlVHX09OIGFscmVhZHkpLA0KPiA+IGFuZCBjb252ZXJ0aW5nIHRoZW0gdG8gdW5zaWdu
ZWQgbG9uZyBtYWtlcyB0aGF0IGV4cGxpY2l0LCBhbmQgYWxzbw0KPiA+IGZpeGVzIHNpZ25lZC91
bnNpZ25lZCBjb21wYXJpc29uIHdhcm5pbmdzLg0KPiANCj4gVGhpcyB3YW50cyB0byBiZSBhIHNl
cGFyYXRlIGNvbW1pdC4gSXQgaGFzbid0IGdvdCBhbnl0aGluZyB0byBkbyBpbiBoZXJlLg0KDQpP
ay4NCg0KPiA+IFRoaXMgb25seSBuZWVkcyBtb3ZpbmcgdGhlIEFTU0VSVCB0byBiZWZvcmUgdGhl
IHN1YnRyYWN0aW9uLg0KPiA+IFNlZSB0aGUgcHJldmlvdXMgY29tbWl0IG1vdmluZyB0aGUgQlVH
X09OIGZvciBvdXRzdGFuZGluZ19jbGFpbXMuDQo+IA0KPiBQbGVhc2UgY2FuIHlvdSBhdm9pZCBz
dWNoIHN0YXRlbWVudHM/IFlvdSB3b24ndCBrbm93IGluIHdoaWNoIG9yZGVyIHRoZQ0KPiBwYXRj
aGVzIGFyZSBjb21taXR0ZWQ6IFBhdGNoIDAxIG1heSBnbyBpbiB3ZWVrcyBvciBtb250aHMgYmVm
b3JlIHBhdGNoDQo+IDAyLg0KDQpUaGFua3MsIG9rLCB3aWxsIHJlbW92ZS4NCg0KLSBOQi4gSSBk
byB0aGluayB0aGUgZmlyc3QgMyBjb21taXRzIHNob3VsZCBiZXN0IGJlIGFwcGxpZWQgaW4gb25l
IGdvLg0KIA0KPiA+ICsjZGVmaW5lIG5vZGVfYXZhaWxfcGFnZXMobm9kZSkgKG5vZGVfYXZhaWxf
cGFnZXNbbm9kZV0pDQo+IA0KPiBUaGlzIGlzbid0IHJlYWxseSBuZWVkZWQgd2hlbiAuLi4NCj4g
DQo+ID4gK3N0YXRpYyB1bnNpZ25lZCBsb25nIG5vZGVfYXZhaWxfcGFnZXNbTUFYX05VTU5PREVT
XTsNCj4gDQo+IC4uLiBpdCdzIGEgc3RhdGljIGFycmF5IGFueXdheS4gUGx1cyB5b3UgbWF5IHdh
bnQgdG8gdGFsayB0byBBbmRyZXcgcmVnYXJkaW5nDQo+IHRoZSB1c2Ugb2Ygc3VjaCBhIG1hY3Jv
IGFzIGFuIGx2YWx1ZS4NCg0KT2suIEl0IHdhcyBvbmx5IGEgY29udHJvbGxlZCwgbG9jYWwgYWNj
ZXNzb3IgaW4gdGhpcyBmaWxlIHRvIHN1cHBvcnQgbW92aW5nDQppdCB0byBhbm90aGVyIHN0b3Jh
Z2UgdmFyaWFibGUsIGJ1dCBJJ2xsIG9taXQgdGhlIGFjY2Vzc29yIG1hY3JvKHMpIHRoZW4uDQoN
Cj4gPiArLyogdG90YWwgb3V0c3RhbmRpbmcgY2xhaW1zIGJ5IGFsbCBkb21haW5zICovDQo+ID4g
K3N0YXRpYyB1bnNpZ25lZCBsb25nIG91dHN0YW5kaW5nX2NsYWltczsNCj4gDQo+IEFzIHlvdSB0
b3VjaCBpdCwgY29tbWVudCBzdHlsZSB3YW50cyBjb3JyZWN0aW5nLg0KDQpJIGd1ZXNzIHlvdSBt
ZWFuIHRvIHVwcGVyY2FzZSB0aGUgMXN0IGxldHRlciBvZiB0aGUgY29tbWVudC4gV2lsbCBkby4N
Cg0KQmVybmhhcmQNCg==


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 19:10:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 19:10:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245918.1545247 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxrcG-00026Y-9f; Wed, 04 Mar 2026 19:10:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245918.1545247; Wed, 04 Mar 2026 19:10: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 1vxrcG-00026R-6M; Wed, 04 Mar 2026 19:10:40 +0000
Received: by outflank-mailman (input) for mailman id 1245918;
 Wed, 04 Mar 2026 19:10: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=qNKU=BE=redhat.com=peterx@srs-se1.protection.inumbo.net>)
 id 1vxrcE-00026L-TH
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 19:10:38 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cb3245de-17fd-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 20:10:24 +0100 (CET)
Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com
 [209.85.219.71]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-457-2ohN0X8qP3CPSqcLgNxD4A-1; Wed, 04 Mar 2026 14:10:21 -0500
Received: by mail-qv1-f71.google.com with SMTP id
 6a1803df08f44-89a0013d87bso47755046d6.2
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 11:10:21 -0800 (PST)
Received: from x1.local ([174.91.117.149]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-899ff659b75sm73282246d6.34.2026.03.04.11.10.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 04 Mar 2026 11:10: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: cb3245de-17fd-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1772651422;
	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=D0fD55fcz8KZ4PtgIiEuNTP5Fw4Mwe9/ywY1K2zb/Kg=;
	b=Mcs7K6eSl8NqmMgN0kc4AFD8Xk9fogUDrFYoykk3bzwpIOTHV+HDC1OYCCFRNikQZd5FXV
	fzRdlw9YSQ/JAwncZXWrp9M1/+oPXC1gj767Qs1i0wyk8KU8c/Ujbo413qY+zRS99GIO3J
	LLgSvjEKikGhL5tgt0MiWKqS8eUtZ6A=
X-MC-Unique: 2ohN0X8qP3CPSqcLgNxD4A-1
X-Mimecast-MFC-AGG-ID: 2ohN0X8qP3CPSqcLgNxD4A_1772651421
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772651421; x=1773256221;
        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=D0fD55fcz8KZ4PtgIiEuNTP5Fw4Mwe9/ywY1K2zb/Kg=;
        b=MVmYcF3JxpEiGGf/J2EKajOkiHh1+9SI8DTRVWrLkdVGzFHhnuKJeLO0MFKGhTGmrn
         iLYowj+PviHTPso0uj0haGbxK3Y1zjBAkIcDAmL2miMg5kSgEzZjiqKz5pMFYOhuvtg3
         avEuXX/iWVb3+Wi9iangQI8dnJXrP9NEe+3J6LrL6xNpF5kc2acydsC2kt/Twr5JzuCS
         pY4AKakcjQSKs9j0q5wf8IHPcc4lZmXczevrbt1tjD6RVIHZD5ivjdVVIt7peFzcCprk
         /9N3CObBnAWbS5SaPP4GgNjQHeHtnAYJHuobRT7xW9a8+H2Lplh/tqyNvwW2b0CtIHeM
         UH8g==
X-Forwarded-Encrypted: i=1; AJvYcCXcdCCXguHsUbrDcfTvn36AMOr0AZaCk6z3gbKxM9fUYlaWSp0WvsFC7eq96wr8LjaNF2UlcGbWYP4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwHq1EW8LLHFJIB1JL4EG3A0+jiPzVCkl2lTgZLp13treCJlIld
	cYx0zgH4uWT5ku3dQgDo2Cv5Fo8h/qfuA/+nkbZrikAcouA+q/OI9RtB63mB2tLYSDDr1IW+RSe
	1dVXLhEWyGoFSa84rxhSzfA2yt0wFk6amICU20J71PUlrMwbmaNBfJo5LlRcHebtN7cOH
X-Gm-Gg: ATEYQzydTI0xZUfhf7dvNioUvyjmXTKZTchZrE810KflxDULfirqGg+PS6PuWYpu0J9
	7zDQMiicdGBHxhEWOl3uANdzsbj1C8hovrl0XbterQPPv4zbKl9D2sIEBFmGON8LZp4t3+kyiJc
	nQnL84w73vShDIP4j5I+o4vii9fwNtnS3DXPncX7t4zuDr3SMpqpWljiJ0lLfHYebHWn87Bg0nq
	uXhFGGedV+DXChVUl8fyqVC4oQpV7/pPzdtFQ0n+w30hv/PoIW3xmwLymBQRtbkH81ineilJh5T
	F5SjpeCla5yty2Q32vacD9Fge286tK8lHq5hei1eTzSHxq8Vhso0CukwRc+t83eBgOpcBPZQjtG
	Q++d8HtWmmnchFA==
X-Received: by 2002:a05:6214:dcb:b0:89a:1116:b55f with SMTP id 6a1803df08f44-89a1998b398mr41124746d6.7.1772651420624;
        Wed, 04 Mar 2026 11:10:20 -0800 (PST)
X-Received: by 2002:a05:6214:dcb:b0:89a:1116:b55f with SMTP id 6a1803df08f44-89a1998b398mr41124166d6.7.1772651419928;
        Wed, 04 Mar 2026 11:10:19 -0800 (PST)
Date: Wed, 4 Mar 2026 14:10:08 -0500
From: Peter Xu <peterx@redhat.com>
To: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Cc: qemu-devel@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>,
	Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	sstabellini@kernel.org, anthony@xenproject.org,
	edgar.iglesias@amd.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 3/5] physmem: xen: Conditionalize use of the mapcache
Message-ID: <aaiDkBwlttHoWRAR@x1.local>
References: <20260304015222.979224-1-edgar.iglesias@gmail.com>
 <20260304015222.979224-4-edgar.iglesias@gmail.com>
MIME-Version: 1.0
In-Reply-To: <20260304015222.979224-4-edgar.iglesias@gmail.com>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: uMkzWZmE2PEkuc7Si-0yoeR3GHkKaIlXRP8-1G8CuKY_1772651421
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline

On Wed, Mar 04, 2026 at 02:52:19AM +0100, Edgar E. Iglesias wrote:
> From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
> 
> Conditionalize use of the mapcache. This is in preparation
> to optionally disable the mapcache at runtime.
> 
> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>

Acked-by: Peter Xu <peterx@redhat.com>

-- 
Peter Xu



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 19:29:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 19:29:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245939.1545257 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxrur-0003ti-Ob; Wed, 04 Mar 2026 19:29:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245939.1545257; Wed, 04 Mar 2026 19: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 1vxrur-0003tb-Lv; Wed, 04 Mar 2026 19:29:53 +0000
Received: by outflank-mailman (input) for mailman id 1245939;
 Wed, 04 Mar 2026 19:29:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YDHP=BE=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vxruq-0003tT-M5
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 19:29:52 +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 82ee16b5-1800-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 20:29:50 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-48371bb515eso107980745e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 11:29:50 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439c6129017sm9129316f8f.31.2026.03.04.11.29.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Mar 2026 11:29: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: 82ee16b5-1800-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772652590; x=1773257390; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to
         :cc:subject:date:message-id:reply-to;
        bh=Br0owAO4cMjtqobqDOXI/vXhN4+464FEXKnA6CShxks=;
        b=S5m1wfypIvX+2AgjELH0YxqqVPhqQrGs10M1SP5faNctMBHjMICoON36rf2gh8Ad3S
         xbNucnj43Cv0tkXeMHktlqlE4Q0iuWZgGipNfA2dDkFnXGt2g7/t+mWavMcVa2mSFXX7
         sRxO+J+VcufczGefnNehxp/UtDxjFgLO1ec0muKBsaXRLdqOQKWkQkIUGtAmUqJOL8h/
         UVhC8FfMM5RIU8TEfbEPilzAMIwhdFZdaj84STF/LAkPRbv/E0qaRrUm+Iji4p24uqDE
         sOL0bM4f8RDSAkI9FPxEfQwdQhdafnSdlNArTj159lomMpOdf4u2Q7q0VAdW8IlEUkGr
         KTCw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772652590; x=1773257390;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Br0owAO4cMjtqobqDOXI/vXhN4+464FEXKnA6CShxks=;
        b=VQfvFjC4NDQ3J7oSEU8F+lDLkIUkyqBnIC1kJb06Y44PLK/bXmGZHw9e6RBRT7CjV0
         +JcudgtwzJ7SnuRtoUQqWJl3uMrup1e3+WfhDwTegNWcxBlgrqttqtO/YQHtxYhUCgaN
         vqoad9wz4TEPa7g0PbWRhSpD7xCkdmZqWg/WChs0cxHXJLPeP1IAYSvKb8YLJo89k6vn
         wZ/2+TKQ5a6HFXj/axnNXoFvvl0/9QKbvEsamopVGdyLC3CZwDY6i9Hz6Fwrt9CvlJVz
         UKx2y15Vu7CYl1J1kMUoeoktyR+GuuUMlfr1gvgKXn3yCcGL1frmhDI31Nl5ntncTKih
         VpMw==
X-Forwarded-Encrypted: i=1; AJvYcCWw2YbZd908UFvdkGNSYj55LgTkecU9USmtdp6JdqvJRy/QPYbIEZ/0TAp7dz3JwpvevwJpNduzpTQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwUT1DSfA2tG9NxHIxDPYuIKYoO3pBMBYE4eTCHk5gbTy17+SeQ
	6mGwZeuqpKUvcbVo86JOxB7LgPfgeDJi5vvK0qe8WeJOr9yBQeiLAAzl
X-Gm-Gg: ATEYQzwqDvAhwkU+vRw79JWwxrC7Nyc4T2SebbUDgKNOf9zVXClzgVhP7Nm+azgXY7A
	OKk1Dei3ETH7zprRfzvLzQhySdzDhw9B9Drb3ivWVFG3KLCArBPYHbdw2pAlnIqPbM/TTZNqmkB
	f8kKMPM5BpZCrDGs7E1Wt6swIOjKkUeHEneWZebdT3oYaTiiizZM63dQbx7USsXIeEFbKcS9y7k
	xyDPiZjcZwoS4J1GyxjO2iFFX15icnRiTQ+gKNcSw9dE6mdEuuM0GHdZBOD0pmuqtfhtwarrcCH
	mN3EZqjG5ZvEpmYqYzB+YtNPuitfXemiLQCFZDJzCJfR3ocEMc8TVe6ilfP2pzhS81tTZKZ3RvY
	zx29R1Re5Xb5nMwlaQ0HsPquDjdNenjqIJKzER6TwkpKr3PkUcZ2qcOVzZYt+3vDZpIVd2Ry6yq
	f1LVJ8jzMmhm9Z3d+ydzMrckomiHXF7QxgYy/mH/f1Fa4O22RYF/h+NJo15z9G/2xD1T9lY81ls
	Mwytn6dPb8bBg==
X-Received: by 2002:a05:600c:1986:b0:477:af8d:203a with SMTP id 5b1f17b1804b1-48519897aa6mr51546315e9.27.1772652589413;
        Wed, 04 Mar 2026 11:29:49 -0800 (PST)
Message-ID: <23b77208-5321-4dad-8974-f943b38ef104@gmail.com>
Date: Wed, 4 Mar 2026 20:29:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 03/14] xen/riscv: introduce tracking of pending vCPU
 interrupts, part 1
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
 <a1954e9a30abace453f4604a47b43ecbcebe350a.1772016457.git.oleksii.kurochko@gmail.com>
 <6357ad3f-85c8-4fe4-a2c8-8b0a0a97f1b3@suse.com>
 <32bd2cc9-86ee-4470-af7c-f52838e0c4e1@gmail.com>
Content-Language: en-US
In-Reply-To: <32bd2cc9-86ee-4470-af7c-f52838e0c4e1@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 3/4/26 4:07 PM, Oleksii Kurochko wrote:
>>
>>> +void vcpu_sync_interrupts(struct vcpu *v)
>> The sole caller passes "current". Are other uses of this function 
>> planned?
>> If not either "current" wants directly using here, or minimally the 
>> parameter
>> wants renaming to "curr". In fact ...
>>
>>> +{
>>> +    unsigned long hvip = csr_read(CSR_HVIP);
>> ... this suggests it's unlikely for the function to be valid to call 
>> with
>> other than "current".
>
> Agree, I will drop v argument and use current inside 
> vcpu_sync_interrupts().

Then would you be okay with using current instead of v argument inside vcpu_update_hvip()
and vcpu_flush_interrupts() introduced in the next patch?

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 19:53:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 19:53:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245950.1545278 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxsHT-0007wQ-S5; Wed, 04 Mar 2026 19:53:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245950.1545278; Wed, 04 Mar 2026 19:53:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxsHT-0007wJ-Ow; Wed, 04 Mar 2026 19:53:15 +0000
Received: by outflank-mailman (input) for mailman id 1245950;
 Wed, 04 Mar 2026 19:53:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=nfWr=BE=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1vxsHR-0007ik-Oe
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 19:53:13 +0000
Received: from BN8PR05CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c110::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c65a2e74-1803-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 20:53:11 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by DM4PR03MB6079.namprd03.prod.outlook.com (2603:10b6:5:392::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Wed, 4 Mar
 2026 19:53:09 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9678.016; Wed, 4 Mar 2026
 19:53:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c65a2e74-1803-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=G9fgIzB/esvZOYKPhZQWNtvoztOjx++wKfgZiuk+ZcatPg6UNquY1Ihx7kzv3QWbquXKQK8yPDH1ZUTFg7op9GTkmJIHJUuC/1xJ8AZ1kkzavCGEF54vv5K0z3w71YF7Ru3kr2DX5RfMDi9wgnwnHsZ4LgTvrIO5tU9DKV1MATeQ/YP/xMpZr0UtA4C+BLfO/yLZGpdYg1IAwX0f38OyOySv+HkSE6jZmnVbwAsn+KFDj6w9rrkvaF/OwKkestXDf0VZ1IQWcBi3kxR1QaKuKqt20eR91f3jOtdL0l7dQicbUPxSD0pQRIJnAFt5qU9bnNvc8drRqobevuafbKJ1AA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=73HOYRSmCsvCAcjUm4czWHv5BB3usADT9uJVL/8SOJE=;
 b=hIsh3GN7R5izIMeVwRyCVbpdTyOJeSNfN5nMsm+FqC09MwDugJHaLrc/zQANJ6VUsBCNYEOV04WvwEOjuoK/xHH0kBDp3NIh7OdMyzg9fwDcQOpYUoBicKCuMr9kzNYERERHKmkOY3AjKGV35tHEXeOJ88O/L5h0V4JIdGZpoQl+XP5N7fok3FWRp/QU0qMTlOgA802MgyzUVMs59jSi9h31xal9z/tN8i6xW5Ei9rwZEn6J+T4s8CoRcPBBmFH+GmlAo43/ktHxwDP+gtsEZdZads46RPAXL+l8JCQ/B9NcZIKcDgXE1iptlHAhHkXg23uiE9mxhzNRntlf2S72Jg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=73HOYRSmCsvCAcjUm4czWHv5BB3usADT9uJVL/8SOJE=;
 b=morUedH0F8U4pnk4+KxPwlawkoMZILwTY/vX1AyQaGaUDmD86g7jXwXaVkBffpoibwgSSd8hu1t2GgH/oaXQYuGhKayvXWZiB8MFyrEFsqpbgxFE5wD1uDicnmA4WsoIg4Ns8rUXbElJ062kjRg38ZrMcc/dQiYAeEyFiob1YDs=
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 1/6] x86: Remove x86 prefixed names from mcheck code
Date: Wed,  4 Mar 2026 19:53:45 +0000
Message-ID: <20260304195350.837593-2-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20260304195350.837593-1-kevin.lampis@citrix.com>
References: <20260304195350.837593-1-kevin.lampis@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0319.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:197::18) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|DM4PR03MB6079:EE_
X-MS-Office365-Filtering-Correlation-Id: ed0d4de5-ee03-4d7b-5808-08de7a27a8d4
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:
	grE54Vd8OFvw+XYt82Qh7eRl3EDyPMsFe9mAfNMsBg+knKNZVstr7rjs4wdKxBATqgjjj4KnxUgcLKWLXVzcGQdAFkEU7y27mlhGS69JvFqyloOS7EoEo9+Xiso2mQMtqoMnkrNyP7kuz88FijqOxcIdtpjPxxYACJErJOH5TqA7CDsJAXxMnzREmf8H/6SpRs2jhbC8QUYjhWNvR5n6UHAx135qzNkTVUK5NSWGdyHB9pJYeHbIUANFe04BCduNXS4qokKVJdqQbfZKGjwlKGKRQpYRGfJgy9CUwNNQEI5oCyQ09xw4z9Rxzrm5BUhtFReYRa352YqnmdmpgMVZ1Q9fCqMmlf47DxSY5t24Whs//DyTenFSv+p4qWLhMZBOKzYjgHmwKlSakscBZ+oQTmTK9Bs5DaGkJx0TWT5W2794s8qqeq0RYcYOxTaAnfbw24tiPVzqeFIQAbNd2dmRW4P8lwt5jm2wRbnoYIA+p5jo3gwJ63i4qlKQ1Nr/uIywXOSrZyLFH2novtpa1I7uPoU4gXau0focgzSYHcK2FWGPT6t32LKIftHr6mQc/dq29q5EokOoJEj0XpyjI5CDY9Bbb1Nx/+yKCRh0dSzeQpkmL/tDpKXo3JhuDPUOxRi6UdI4w1cf+iM6Z+s3XThrUxSPqLhQN5mY4IIuFvp42cNTssGMrEXw6old1tGknohLvi74C26YkoBPHlUtZ4yIMuZXEtH9CrO8zjBA6ZA7iIA=
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?wR482VTOFudGC0BRMmzFZcbUkpHydyCRq9a9EO3/ZERGxVVIFxVgEkTESgFB?=
 =?us-ascii?Q?ghFzuy9/78NT5poDipGtXmXy5hJVSvXh1lQs8l+7y/bIxKnv5HdjS+oJJ2A9?=
 =?us-ascii?Q?wIPnyWOBudRqUzgSxhX8QoDBMoAa+cmvD08k5OMECkwBe9MQSc3laXKnr4sj?=
 =?us-ascii?Q?hSWkulRLScfZFCGtx+vdk2YDNmqWS5iA3MjkNEFpXXWXWKugM9FTAQ9Rub4F?=
 =?us-ascii?Q?JMo0LUgkRsfrMGFUiQYNMARPa5jpRuWQ8RUj82/AzwFUgW4HTemxSvK1KCmo?=
 =?us-ascii?Q?VmesYasX4scF15OjFSgkaGYPIcivILyc689cvppyRypXoUSyUKu4oMSOutRl?=
 =?us-ascii?Q?Tx4Hyx2pkbImYfymqQAWgm0ksU/uEZsH1BRGQsgArT6WyXMHacLIrva9seLD?=
 =?us-ascii?Q?+m8z4droblB1y3V/4RdUo1GlnWEQxRsZtSWukgDlle3IUdE+W80cmSnAhQoR?=
 =?us-ascii?Q?QgjoIvj+X9cNWVvGU/j6y3noEPlrdZZ/Xjb+DFHq8JY6+9fxi4MwOCEHg7el?=
 =?us-ascii?Q?yRvxC3xhTblRl5DfVY2DzJaksm4uwdDJiBrTt6YVWs7vlqcCJvTtNRaFnpkM?=
 =?us-ascii?Q?fyWe1G7MmRJL6UAsq0xLg1WEOQid+ZNWGk++5wdyEU8Cf7u5SzERlqYDZ9rW?=
 =?us-ascii?Q?9rxdBX2pxkPykVJxTZShqmrhiERs1QLoLa958zcA8Ml2Eamo85JiJfiuutVo?=
 =?us-ascii?Q?GwrlQOkv5JZe6rA4+t7m8Rytd/mmv9B04DEMhDL+UxrtnUS1Ss7HZO26FCRY?=
 =?us-ascii?Q?/2K7I+1e46Ag+nzf/mwn1SITU1tYEfU4MbUNXNHpGfph6i2YzUoHbs/0OTBX?=
 =?us-ascii?Q?N2/+BY4JHceFKn6FpKmCIGFitS++S+IAN/4akPIt+184nn1j/dxl5QStUvgt?=
 =?us-ascii?Q?q7PTK9CpEIjx/7LclT5HI/vjsOQTogtlaZzxwHiHONa46j8IHBYcmyz+13Ip?=
 =?us-ascii?Q?PS7gyjjJyXTPCRmw1BCaPVy9MfjK4Vx3TsfUmE9m9d/1IvgmyYE6aw3Nuus2?=
 =?us-ascii?Q?jZULDMHwQM+Q+JfYqy39t6WkSZk9sSD04QsD5XFJdWs89qcraiqSgTFLC4YM?=
 =?us-ascii?Q?Agm8Qjx/60EMkb6g2d5mBTtmKlxPjWQz9wWpnvT/xT7LApODZub+fW7fGkto?=
 =?us-ascii?Q?YCMn8PQPGsHi4A2nuF6/aj/EXv5d+fI4HOtsK/OvTXiiJntZXUe+wXv3ds1x?=
 =?us-ascii?Q?X01hI02oRlh9jmS/PGg5bdFL5f526tYdRwswvskWvTZbnTko4v498KqjNroz?=
 =?us-ascii?Q?2UrJYIcqrHkfxeFeAqeMSDaFV8XDrxXiM/WfZAlnPBURFXUouv26/hBfnDry?=
 =?us-ascii?Q?rmUENwcEOKMDEA3M4iZgU5stRvpp/eJFQCBgbmNbsSgvAXxLu8Lb6ZAAF5HM?=
 =?us-ascii?Q?OX6g9Jd4pEo/o04yhvvC+DltdHZj2idPQCrUKsC53XTqd0E6ogWHyJX0PMnG?=
 =?us-ascii?Q?SNVSUxzVul7l/cZaVpuc3/o892R1NwV6qFm3gCI97pIV4X3+gvkRgEBFuyTZ?=
 =?us-ascii?Q?782Ui98qgcZFm5aoHUWzZQOk88UThJ9dkiBJTDosZWh9mvvbceLd620llLT8?=
 =?us-ascii?Q?PcOMxPVoykLjm/nVpnR90y35d5vAYOjie9K3MjRfWWNKGrG6yJbXGrNd9xwS?=
 =?us-ascii?Q?sLgZDtlYrPu9VVkLCaJrEJviRreHAmD7vsg7tgwSwxHHwaMQtb5fpM81rLmD?=
 =?us-ascii?Q?5+/50IzBinJmK8gOyzkkoEQzVTQKmGpoIfoqrB4MMSBSgYUppF9d7Xe69ePX?=
 =?us-ascii?Q?jN2raAIE/Q=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ed0d4de5-ee03-4d7b-5808-08de7a27a8d4
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 19:53:08.8986
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: X78UOGanNrXjtInCwGmhQ8SVpo1ZPn2HtSGws8z3OGxF8DxKbpVeoXwunNZ+oXUk8o1dFXv70MrFFLFiSVVKVw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6079

struct cpuinfo_x86
  .x86        => .family
  .x86_vendor => .vendor
  .x86_model  => .model
  .x86_mask   => .stepping

No functional change.

This work is part of making Xen safe for Intel family 18/19.

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
Changes since v1:
- mcheck_init() check for family != 5 instead of 6 and 15
- mce_firstbank() match vfm range
- mce_is_broadcast() add vendor check as well as >= INTEL_CORE_YONAH

This supersedes the individual posting
https://lore.kernel.org/xen-devel/20260302191900.672460-1-kevin.lampis@citrix.com/
---
 xen/arch/x86/cpu/mcheck/amd_nonfatal.c |  2 +-
 xen/arch/x86/cpu/mcheck/mcaction.c     |  2 +-
 xen/arch/x86/cpu/mcheck/mce.c          | 35 +++++++++++---------------
 xen/arch/x86/cpu/mcheck/mce.h          |  2 +-
 xen/arch/x86/cpu/mcheck/mce_amd.c      | 16 ++++++------
 xen/arch/x86/cpu/mcheck/mce_intel.c    |  5 +---
 xen/arch/x86/cpu/mcheck/non-fatal.c    |  2 +-
 xen/arch/x86/cpu/mcheck/vmce.c         |  8 +++---
 8 files changed, 32 insertions(+), 40 deletions(-)

diff --git a/xen/arch/x86/cpu/mcheck/amd_nonfatal.c b/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
index 7d48c9ab5f..fb52639e13 100644
--- a/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
+++ b/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
@@ -191,7 +191,7 @@ static void cf_check mce_amd_work_fn(void *data)
 
 void __init amd_nonfatal_mcheck_init(struct cpuinfo_x86 *c)
 {
-	if (!(c->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)))
+	if (!(c->vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)))
 		return;
 
 	/* Assume we are on K8 or newer AMD or Hygon CPU here */
diff --git a/xen/arch/x86/cpu/mcheck/mcaction.c b/xen/arch/x86/cpu/mcheck/mcaction.c
index bf7a0de965..236424569a 100644
--- a/xen/arch/x86/cpu/mcheck/mcaction.c
+++ b/xen/arch/x86/cpu/mcheck/mcaction.c
@@ -101,7 +101,7 @@ mc_memerr_dhandler(struct mca_binfo *binfo,
                       * not always precise. In that case, fallback to broadcast.
                       */
                      global->mc_domid != bank->mc_domid ||
-                     (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
+                     (boot_cpu_data.vendor == X86_VENDOR_INTEL &&
                       (!(global->mc_gstatus & MCG_STATUS_LMCE) ||
                        !(d->vcpu[mc_vcpuid]->arch.vmce.mcg_ext_ctl &
                          MCG_EXT_CTL_LMCE_EN))) )
diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
index 9a91807cfb..901a71157a 100644
--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -23,6 +23,7 @@
 #include <asm/apic.h>
 #include <asm/msr.h>
 #include <asm/p2m.h>
+#include <asm/intel-family.h>
 
 #include "mce.h"
 #include "barrier.h"
@@ -334,7 +335,7 @@ mcheck_mca_logout(enum mca_source who, struct mca_banks *bankmask,
                 mca_init_global(mc_flags, mig);
                 /* A hook here to get global extended msrs */
                 if ( IS_ENABLED(CONFIG_INTEL) &&
-                     boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+                     boot_cpu_data.vendor == X86_VENDOR_INTEL )
                     intel_get_extended_msrs(mig, mci);
             }
         }
@@ -564,8 +565,7 @@ bool mce_available(const struct cpuinfo_x86 *c)
  */
 unsigned int mce_firstbank(struct cpuinfo_x86 *c)
 {
-    return c->x86 == 6 &&
-           c->x86_vendor == X86_VENDOR_INTEL && c->x86_model < 0x1a;
+    return c->vfm >= INTEL_PENTIUM_PRO && c->vfm < INTEL_NEHALEM_EP;
 }
 
 static int show_mca_info(int inited, struct cpuinfo_x86 *c)
@@ -596,7 +596,7 @@ static int show_mca_info(int inited, struct cpuinfo_x86 *c)
         case mcheck_amd_famXX:
         case mcheck_hygon:
             printk("%s%s Fam%xh machine check reporting enabled\n",
-                   prefix, type_str[inited], c->x86);
+                   prefix, type_str[inited], c->family);
             break;
 
         case mcheck_none:
@@ -766,7 +766,7 @@ void mcheck_init(struct cpuinfo_x86 *c, bool bsp)
     else if ( cpu_bank_alloc(cpu) )
         panic("Insufficient memory for MCE bank allocations\n");
 
-    switch ( c->x86_vendor )
+    switch ( c->vendor )
     {
 #ifdef CONFIG_AMD
     case X86_VENDOR_AMD:
@@ -777,13 +777,8 @@ void mcheck_init(struct cpuinfo_x86 *c, bool bsp)
 
 #ifdef CONFIG_INTEL
     case X86_VENDOR_INTEL:
-        switch ( c->x86 )
-        {
-        case 6:
-        case 15:
+        if ( c->family != 5 )
             inited = intel_mcheck_init(c, bsp);
-            break;
-        }
         break;
 #endif
 
@@ -882,7 +877,7 @@ static void x86_mcinfo_apei_save(
     memset(&m, 0, sizeof(struct mce));
 
     m.cpu = mc_global->mc_coreid;
-    m.cpuvendor = xen2linux_vendor(boot_cpu_data.x86_vendor);
+    m.cpuvendor = xen2linux_vendor(boot_cpu_data.vendor);
     m.cpuid = cpuid_eax(1);
     m.socketid = mc_global->mc_socketid;
     m.apicid = mc_global->mc_apicid;
@@ -983,10 +978,10 @@ static void cf_check __maybe_unused do_mc_get_cpu_info(void *v)
                         &xcp->mc_apicid, &xcp->mc_ncores,
                         &xcp->mc_ncores_active, &xcp->mc_nthreads);
     xcp->mc_cpuid_level = c->cpuid_level;
-    xcp->mc_family = c->x86;
-    xcp->mc_vendor = xen2linux_vendor(c->x86_vendor);
-    xcp->mc_model = c->x86_model;
-    xcp->mc_step = c->x86_mask;
+    xcp->mc_family = c->family;
+    xcp->mc_vendor = xen2linux_vendor(c->vendor);
+    xcp->mc_model = c->model;
+    xcp->mc_step = c->stepping;
     xcp->mc_cache_size = c->x86_cache_size;
     xcp->mc_cache_alignment = c->x86_cache_alignment;
     memcpy(xcp->mc_vendorid, c->x86_vendor_id, sizeof xcp->mc_vendorid);
@@ -1142,7 +1137,7 @@ static bool __maybe_unused x86_mc_msrinject_verify(struct xen_mc_msrinject *mci)
 
         if ( IS_MCA_BANKREG(reg, mci->mcinj_cpunr) )
         {
-            if ( c->x86_vendor == X86_VENDOR_AMD )
+            if ( c->vendor == X86_VENDOR_AMD )
             {
                 /*
                  * On AMD we can set MCi_STATUS_WREN in the
@@ -1177,15 +1172,15 @@ static bool __maybe_unused x86_mc_msrinject_verify(struct xen_mc_msrinject *mci)
             case MSR_F10_MC4_MISC1:
             case MSR_F10_MC4_MISC2:
             case MSR_F10_MC4_MISC3:
-                if ( c->x86_vendor != X86_VENDOR_AMD )
+                if ( c->vendor != X86_VENDOR_AMD )
                     reason = "only supported on AMD";
-                else if ( c->x86 < 0x10 )
+                else if ( c->family < 0x10 )
                     reason = "only supported on AMD Fam10h+";
                 break;
 
             /* MSRs that the HV will take care of */
             case MSR_K8_HWCR:
-                if ( c->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
+                if ( c->vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
                     reason = "HV will operate HWCR";
                 else
                     reason = "only supported on AMD or Hygon";
diff --git a/xen/arch/x86/cpu/mcheck/mce.h b/xen/arch/x86/cpu/mcheck/mce.h
index 920b075355..3b61b12487 100644
--- a/xen/arch/x86/cpu/mcheck/mce.h
+++ b/xen/arch/x86/cpu/mcheck/mce.h
@@ -137,7 +137,7 @@ void x86_mcinfo_dump(struct mc_info *mi);
 
 static inline int mce_vendor_bank_msr(const struct vcpu *v, uint32_t msr)
 {
-    switch (boot_cpu_data.x86_vendor) {
+    switch (boot_cpu_data.vendor) {
     case X86_VENDOR_INTEL:
         if (msr >= MSR_IA32_MC0_CTL2 &&
             msr < MSR_IA32_MCx_CTL2(v->arch.vmce.mcg_cap & MCG_CAP_COUNT) )
diff --git a/xen/arch/x86/cpu/mcheck/mce_amd.c b/xen/arch/x86/cpu/mcheck/mce_amd.c
index 25c29eb3d2..2d17832d9c 100644
--- a/xen/arch/x86/cpu/mcheck/mce_amd.c
+++ b/xen/arch/x86/cpu/mcheck/mce_amd.c
@@ -160,17 +160,17 @@ mcequirk_lookup_amd_quirkdata(const struct cpuinfo_x86 *c)
 {
     unsigned int i;
 
-    BUG_ON(c->x86_vendor != X86_VENDOR_AMD);
+    BUG_ON(c->vendor != X86_VENDOR_AMD);
 
     for ( i = 0; i < ARRAY_SIZE(mce_amd_quirks); i++ )
     {
-        if ( c->x86 != mce_amd_quirks[i].cpu_family )
+        if ( c->family != mce_amd_quirks[i].cpu_family )
             continue;
         if ( (mce_amd_quirks[i].cpu_model != ANY) &&
-             (mce_amd_quirks[i].cpu_model != c->x86_model) )
+             (mce_amd_quirks[i].cpu_model != c->model) )
             continue;
         if ( (mce_amd_quirks[i].cpu_stepping != ANY) &&
-             (mce_amd_quirks[i].cpu_stepping != c->x86_mask) )
+             (mce_amd_quirks[i].cpu_stepping != c->stepping) )
                 continue;
         return mce_amd_quirks[i].quirk;
     }
@@ -291,13 +291,13 @@ amd_mcheck_init(const struct cpuinfo_x86 *c, bool bsp)
     uint32_t i;
     enum mcequirk_amd_flags quirkflag = 0;
 
-    if ( c->x86_vendor != X86_VENDOR_HYGON )
+    if ( c->vendor != X86_VENDOR_HYGON )
         quirkflag = mcequirk_lookup_amd_quirkdata(c);
 
     /* Assume that machine check support is available.
      * The minimum provided support is at least the K8. */
     if ( bsp )
-        mce_handler_init(c->x86 == 0xf ? &k8_callbacks : &k10_callbacks);
+        mce_handler_init(c->family == 0xf ? &k8_callbacks : &k10_callbacks);
 
     for ( i = 0; i < this_cpu(nr_mce_banks); i++ )
     {
@@ -311,7 +311,7 @@ amd_mcheck_init(const struct cpuinfo_x86 *c, bool bsp)
         }
     }
 
-    if ( c->x86 == 0xf )
+    if ( c->family == 0xf )
         return mcheck_amd_k8;
 
     if ( quirkflag == MCEQUIRK_F10_GART )
@@ -337,6 +337,6 @@ amd_mcheck_init(const struct cpuinfo_x86 *c, bool bsp)
             ppin_msr = MSR_AMD_PPIN;
     }
 
-    return c->x86_vendor == X86_VENDOR_HYGON ?
+    return c->vendor == X86_VENDOR_HYGON ?
             mcheck_hygon : mcheck_amd_famXX;
 }
diff --git a/xen/arch/x86/cpu/mcheck/mce_intel.c b/xen/arch/x86/cpu/mcheck/mce_intel.c
index 839a0e5ba9..4d6b7d588e 100644
--- a/xen/arch/x86/cpu/mcheck/mce_intel.c
+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
@@ -711,10 +711,7 @@ static bool mce_is_broadcast(struct cpuinfo_x86 *c)
      * DisplayFamily_DisplayModel encoding of 06H_EH and above,
      * a MCA signal is broadcast to all logical processors in the system
      */
-    if ( c->x86_vendor == X86_VENDOR_INTEL && c->x86 == 6 &&
-         c->x86_model >= 0xe )
-        return true;
-    return false;
+    return c->vendor == X86_VENDOR_INTEL && c->vfm >= INTEL_CORE_YONAH;
 }
 
 static bool intel_enable_lmce(void)
diff --git a/xen/arch/x86/cpu/mcheck/non-fatal.c b/xen/arch/x86/cpu/mcheck/non-fatal.c
index a9ee9bb94f..4e7c64abef 100644
--- a/xen/arch/x86/cpu/mcheck/non-fatal.c
+++ b/xen/arch/x86/cpu/mcheck/non-fatal.c
@@ -23,7 +23,7 @@ static int __init cf_check init_nonfatal_mce_checker(void)
 	/*
 	 * Check for non-fatal errors every MCE_RATE s
 	 */
-	switch (c->x86_vendor) {
+	switch (c->vendor) {
 #ifdef CONFIG_AMD
 	case X86_VENDOR_AMD:
 	case X86_VENDOR_HYGON:
diff --git a/xen/arch/x86/cpu/mcheck/vmce.c b/xen/arch/x86/cpu/mcheck/vmce.c
index 1a7e92506a..84776aeec8 100644
--- a/xen/arch/x86/cpu/mcheck/vmce.c
+++ b/xen/arch/x86/cpu/mcheck/vmce.c
@@ -45,7 +45,7 @@ void vmce_init_vcpu(struct vcpu *v)
     int i;
 
     /* global MCA MSRs init */
-    if ( boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+    if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
         v->arch.vmce.mcg_cap = INTEL_GUEST_MCG_CAP;
     else
         v->arch.vmce.mcg_cap = AMD_GUEST_MCG_CAP;
@@ -63,7 +63,7 @@ int vmce_restore_vcpu(struct vcpu *v, const struct hvm_vmce_vcpu *ctxt)
 {
     unsigned long guest_mcg_cap;
 
-    if ( boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+    if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
         guest_mcg_cap = INTEL_GUEST_MCG_CAP | MCG_LMCE_P;
     else
         guest_mcg_cap = AMD_GUEST_MCG_CAP;
@@ -136,7 +136,7 @@ static int bank_mce_rdmsr(const struct vcpu *v, uint32_t msr, uint64_t *val)
         break;
 
     default:
-        switch ( boot_cpu_data.x86_vendor )
+        switch ( boot_cpu_data.vendor )
         {
 #ifdef CONFIG_INTEL
         case X86_VENDOR_CENTAUR:
@@ -273,7 +273,7 @@ static int bank_mce_wrmsr(struct vcpu *v, uint32_t msr, uint64_t val)
         break;
 
     default:
-        switch ( boot_cpu_data.x86_vendor )
+        switch ( boot_cpu_data.vendor )
         {
 #ifdef CONFIG_INTEL
         case X86_VENDOR_INTEL:
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 19:53:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 19:53:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245949.1545267 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxsHR-0007ix-Gp; Wed, 04 Mar 2026 19:53:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245949.1545267; Wed, 04 Mar 2026 19:53:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxsHR-0007iq-Dw; Wed, 04 Mar 2026 19:53:13 +0000
Received: by outflank-mailman (input) for mailman id 1245949;
 Wed, 04 Mar 2026 19:53: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=nfWr=BE=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1vxsHP-0007ik-JT
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 19:53:11 +0000
Received: from BN8PR05CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c110::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c3f07a98-1803-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 20:53:08 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by DM4PR03MB6079.namprd03.prod.outlook.com (2603:10b6:5:392::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Wed, 4 Mar
 2026 19:53:03 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9678.016; Wed, 4 Mar 2026
 19: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: c3f07a98-1803-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SwlM8fkYyZc2IBVBN97fo9+Pca06are4U/czKvcFokNBd1c1LeGWSMy4bz2vzoET2B+CXcRd0uANhWP3RlkWmXt3dSEiC4zARdqUyJhOZSX1vw9LRkvTzAbP3EP7SLHSFbf5X7SQuySvUl/wdQJ0zauK4tKduNkWitlYPQL2l4iZimnZ0B7KZFN+RI6MFA5lL86VixlS1juRdLNnUsCAe/mI8xT+IReI828DP7ODoQe+FqFBqvCWYfdwmIlUDiS21fryeeRm3BfeQ8g1QtBgu8zpKZh73g8tNREEcGNZHLKdYRwywX3+Bs0WVQ90cMllxs8msZ04p6ThySLtFZZF4Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8qU7HXOlN7etxGerDCTpK0kCfqtMybHf5pJHx9bkqsw=;
 b=VDgWjVweVbZTK5fcoJHvP4M+OxzzQQYUlgkHJgb5ull/4Lzm3KkWSuSHQUAzd0vNgYlEKlgIWhEgq2Pypl92Id/cba50Lr6IGwK+9n1TLFIg4bKhpE7aEXsaeN7k9DCbHnSPbMhgCUgviMWb1A0dNu2aTmylRJYNYJ3GPx8sSCmgCIWe/MzT4j0ftqSG9Os0BZmQPfJXl6rRTSoDbJNMUNWqeOYKULryLqkIFF2JYibTujfI5Bvk2YTUkXcnndMQdFVqfKLpPGa376OmbrrvCV7y8eJtxCG/R1yWJCUxN/Xthq6lE+hIW+DLSu2urMhFQNua6pk7qB66kjF5cT8VDw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8qU7HXOlN7etxGerDCTpK0kCfqtMybHf5pJHx9bkqsw=;
 b=H13+FjIgNiqsIKug56LSbBaN4G0li3MXdY2+oTPI5UEPo3PCQ3wAGNlisZR8N6HoaeYNBopdfe0bqPp/BO3R4gEW7ZPriluXzntTMVANZEgzsPcOmrn+z3AlnEJ6mVb+WoaeNqBvziHX2YIUigXdINEhCVRJy41ll0Pfq7N0wNA=
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 0/6] Remove x86 prefixed names from cpuinfo
Date: Wed,  4 Mar 2026 19:53:44 +0000
Message-ID: <20260304195350.837593-1-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P302CA0014.GBRP302.PROD.OUTLOOK.COM
 (2603:10a6:600:2c2::15) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|DM4PR03MB6079:EE_
X-MS-Office365-Filtering-Correlation-Id: ee5b279b-923a-4dcb-8985-08de7a27a58d
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:
	it8/i0ti6jF0IMkAujxTuPyJgBdrP7kPL6npcV3fPBepm8mgy4vthNEdMdCzQHidhBK1LgUo/cMm9vn8Vz2LxHC4KQRc+iOavkx2IjFaN2rPGvYBglkOjFKTjvMC8Z8RtDzOVR5KgiWtN838TAHWGYDoIyOjXHCbuZyTn/KKrzGD2LkgKuSTlsW0/QLvB3/IKWrofc7f/PDfDMmqf2g3y2QYbNxcidv/FWtyYrhAjEHyDInCWPXe22JAxihCaLsjNezbAeBjEsWVdYvjbKDEqkFzr1DAziAS4O2LtrFOfxVnLVpI/Y0a52uAEpTzWcGbUSlfBx3etShk5UVNU/DJy3IOk9SOGGHwL2NWFf7laD8UPyLzaIAcdGkvyTI8d5yK17RtEL8iNQRr0IF10fVyx9jMq+nwzPiZ6YldM+m0akMVvNlOR6qnAw3oI3xHc25V8Ir+7NnTkqL/7uu+u4v0OGw0673f1IGWw40jUOr7/iu4H0c0GG0QtwM+jT0jQMql0hz/irYCf66X8kS9B05U1PrQJnWCQ77pblS+twUz4Js4PSotW2Bu/6wAF+GPRm3/B399WCqj2WIRa9R3RwWJdXHRGriA2P2RGNOvaQi5c2CfMCLrVTUxDTvoTg/oWp4PGQS+XCv1Z5Dix4qupo2z50tBHGgvELoQQP5BUwJ5TMfHGHq1j/N/DM3WJvzh6Qmh1Wox6D4xR/rHqnB8LWnK9Q4qHr/hfGrrpDr3xwsreSU=
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?aJzOLNC6zakfOM6cCnkVRVtrgDHEC9AOf5662YI8mmGn+mFF+CLk0a2WfyXH?=
 =?us-ascii?Q?Y2smm1s4/yCLb1R27VFdLnz49rFsQ5O6V/MaXCmF3bc4+94QXpBEMqdkULNN?=
 =?us-ascii?Q?tKIJCokFwn2hb7+Q78BzG6uCMc4h7WVZtq2PgwqdJXNdNoV05HyEx6+l1Il3?=
 =?us-ascii?Q?vXUCHwEenCvF6iU9h8580+T7OwSIqaIfcN2IHtej0eu4qoJyggzAm/N4IyUa?=
 =?us-ascii?Q?QWdIsegIwHj6L5IofikpwSJcfMSRRh00oyduUhs3MN8NMbwIDMwYxcG/7hUE?=
 =?us-ascii?Q?cgTO3tiGxd0rNG/LGx7Ug5HOls3CNRi+tWtty/dHvsc3lrz66e8lPEiuCp6Q?=
 =?us-ascii?Q?Vgq/jSX7ehzFMbTlz1NKsLYTZRQZkSFAAX95stKVm9m7YGKwDXmZglauWb7K?=
 =?us-ascii?Q?zGBZJxpzZos2PVRL4mK4nl8KpHwPqLydEEXuGSqiW5biIOstXJSKE8i9QxoR?=
 =?us-ascii?Q?91pzP3wTNmvN3ysqksEGLq3AoY/qYcTE2V9DlB9H4bcnlN3LyQpFxE3Cf8Dv?=
 =?us-ascii?Q?DbIlblgqjnLlqKVcUZ37M/qHfnD5GTmy96O0ttSegfbFOGMUxh4RNH3u/Q2Y?=
 =?us-ascii?Q?puaWyz9PsXaUTRw5OZE7aSsZhPQxks7DkMufLi6DKlFoXb4t/sRaNP5sKnEO?=
 =?us-ascii?Q?xass3kcoqX+XXULkCFr4FgFNuULDOKOmCbiqINQ8rOPyOaRqLoYBurqXwQLc?=
 =?us-ascii?Q?r/5red9ILbJUtYOvItrDy6AVv6i2Ja3iw85mzr8az8bbB/k9QjYRMLq3dI4m?=
 =?us-ascii?Q?lApIpc+be6YcWTJyK75SVso0cdIXp9pmVtvwNdP/362WJIptPXNmkKHhXgYc?=
 =?us-ascii?Q?UT68r3+tzkoBY0QUMEz/aHlhLiRvuHqrOKguG7wTlWH66ODxo72Ux4Lyx0SE?=
 =?us-ascii?Q?OXYZWCrSFrFrtoqMUQRXgBo6XHWXJZy8Up+o9JzRJuua2iQIYdFsbegCu8ee?=
 =?us-ascii?Q?ALyHRwWRkXhECxoMVKxl97OC1/TYWKlygwNkabYBus6K6245Oqkmv6pWkKIu?=
 =?us-ascii?Q?jdQqcwtyZSiYA5+76c/ABN8G+FkdkQwHJ+R3cbqOtAcf5bVMMZzcQy0XLLiA?=
 =?us-ascii?Q?UzPVJmEOY5jwZMqlbBlW8LL9p1+h4d9bWVfnhMceZ7oGUyBscoFbHM2UwyCk?=
 =?us-ascii?Q?838Ihqel+mODsd4xVbEIS6RciVwh2Zv5Tg/UF9ksNMQ+Xyr30m0ypLt8w5hg?=
 =?us-ascii?Q?h8gkSa5iU8pJh0wxJiydiuiawsJe9f1lS3n7HWdm0gVGDrp4LTQY0JDdvd9i?=
 =?us-ascii?Q?tb82VXuq/39f7Kt2kexsCJFPTIPrGTh59ORqjzWogIb+lmD5RNCfkzlQk3lJ?=
 =?us-ascii?Q?zs3RNHhnsuVMrt4pipbVFojSMG1Ttw47jsyl8wjC3d4FCF/V+SeX54EtV3f5?=
 =?us-ascii?Q?Jjgw9M+Hr6WCde4Xg1zs/YSWnhRF/O1LR//fJUk6ywnmcud98n/K+UipB09i?=
 =?us-ascii?Q?CmJIuquaH2Ly1pEDWM9HXAF/P6jI9HWvy7s6uLGlosIFZOdQ+uFNPO9LN75v?=
 =?us-ascii?Q?j6hIZRiK+h+ReaZ/jA5tuxqNYzN8hNcvPtgBFXKFCwX0BwF8wohjcNrEOKLu?=
 =?us-ascii?Q?aIL9Szsjg1Mrj62m5fm4ZOC7zchr94yIMCci9xKS8NdJB4zmzYk5gkLYuaoJ?=
 =?us-ascii?Q?lz0e9+DjeKqRoazhQNvhojQxwSzoq1c0EtLI07aoYcbh4fhoppIJV72mEcx8?=
 =?us-ascii?Q?yr71tWZDKICu908Dd/Onivepn9TuML6eNRHDySn2bP/z5KPTpHNd2W/iUOJ9?=
 =?us-ascii?Q?Xc7GCo94hA=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ee5b279b-923a-4dcb-8985-08de7a27a58d
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 19:53:03.4042
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Y4ioeZ2MOb9G5x6KgLRkIYrDZexDVz44MvVkjaFhTDHLpeQPx1foYXTOOK2/yv8y4iqCA1nb3QqQxtM2lbeCXQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6079

Remove x86 prefixed names from cpuinfo and all the places it is used.
This work is part of making Xen safe for Intel family 18/19.

Kevin Lampis (6):
  x86: Remove x86 prefixed names from mcheck code
  x86: Remove x86 prefixed names from acpi code
  x86: Remove x86 prefixed names from hvm code
  x86: Remove x86 prefixed names from x86/cpu/ files
  x86: Remove x86 prefixed names misc
  x86: Remove x86 prefixed names from cpuinfo

 xen/arch/x86/acpi/cpu_idle.c             |  20 +-
 xen/arch/x86/acpi/cpufreq/acpi.c         |   2 +-
 xen/arch/x86/acpi/cpufreq/cpufreq.c      |   4 +-
 xen/arch/x86/acpi/cpufreq/powernow.c     |   4 +-
 xen/arch/x86/alternative.c               |   8 +-
 xen/arch/x86/apic.c                      |   2 +-
 xen/arch/x86/cpu/centaur.c               |   4 +-
 xen/arch/x86/cpu/hygon.c                 |   4 +-
 xen/arch/x86/cpu/intel_cacheinfo.c       |   6 +-
 xen/arch/x86/cpu/mcheck/amd_nonfatal.c   |   2 +-
 xen/arch/x86/cpu/mcheck/mcaction.c       |   2 +-
 xen/arch/x86/cpu/mcheck/mce.c            |  35 ++-
 xen/arch/x86/cpu/mcheck/mce.h            |   2 +-
 xen/arch/x86/cpu/mcheck/mce_amd.c        |  16 +-
 xen/arch/x86/cpu/mcheck/mce_intel.c      |   5 +-
 xen/arch/x86/cpu/mcheck/non-fatal.c      |   2 +-
 xen/arch/x86/cpu/mcheck/vmce.c           |   8 +-
 xen/arch/x86/cpu/mtrr/generic.c          |   6 +-
 xen/arch/x86/cpu/mwait-idle.c            |   4 +-
 xen/arch/x86/cpu/vpmu.c                  |   4 +-
 xen/arch/x86/cpu/vpmu_amd.c              |   6 +-
 xen/arch/x86/cpu/vpmu_intel.c            |   6 +-
 xen/arch/x86/cpuid.c                     |   2 +-
 xen/arch/x86/dom0_build.c                |   4 +-
 xen/arch/x86/domain.c                    |  12 +-
 xen/arch/x86/e820.c                      |   2 +-
 xen/arch/x86/hvm/hvm.c                   |   2 +-
 xen/arch/x86/hvm/svm/svm.c               |   6 +-
 xen/arch/x86/hvm/vmx/vmcs.c              |   4 +-
 xen/arch/x86/hvm/vmx/vmx.c               | 278 +++++++++++------------
 xen/arch/x86/i8259.c                     |   2 +-
 xen/arch/x86/include/asm/cpufeature.h    |   5 -
 xen/arch/x86/irq.c                       |   4 +-
 xen/arch/x86/mpparse.c                   |   6 +-
 xen/arch/x86/msr.c                       |   4 +-
 xen/arch/x86/nmi.c                       |  12 +-
 xen/arch/x86/platform_hypercall.c        |   8 +-
 xen/arch/x86/pv/domain.c                 |   2 +-
 xen/arch/x86/setup.c                     |   6 +-
 xen/arch/x86/traps-setup.c               |   4 +-
 xen/arch/x86/tsx.c                       |   4 +-
 xen/drivers/passthrough/amd/iommu_init.c |   6 +-
 42 files changed, 256 insertions(+), 269 deletions(-)

-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 19:53:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 19:53:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245951.1545288 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxsHZ-0008Cs-42; Wed, 04 Mar 2026 19:53:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245951.1545288; Wed, 04 Mar 2026 19: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 1vxsHZ-0008Cj-1D; Wed, 04 Mar 2026 19:53:21 +0000
Received: by outflank-mailman (input) for mailman id 1245951;
 Wed, 04 Mar 2026 19:53:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=nfWr=BE=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1vxsHY-0007ik-3Z
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 19:53:20 +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 c9ac4c69-1803-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 20:53:18 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by DM4PR03MB6079.namprd03.prod.outlook.com (2603:10b6:5:392::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Wed, 4 Mar
 2026 19:53:15 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9678.016; Wed, 4 Mar 2026
 19:53:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c9ac4c69-1803-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=n38ZjhsGawuyw6lmA6lfhKxwDPGYCWpFChLhtXFi5tLqsRZJ/VYDYcblahoMbqDFmWVXgg1G4DoQdOARRE2UnE/pBxVWfgzYvnbQRa/gHUTw8aGNROMXpRtK0PNeocRs4ePWinS0ZQQ1G2U7/WziYahiLwaRMVD7cckIDri4uTvTQ6cxpObfKmU/hgZhLNWiidns5Vdr/Zu6saRrdjuZ84G560x/0ZeFEkW9y95NlemI1f7XKAk/9DwvoyOdtCL/99tVGEux+11IhIGg6NBNNYvyMev4bGsu6skWn+jfkvsbz79Ps0aB0BsqON7qWpFAhvZ+PSKdkgmRjYpiZhyDwg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=a1ZPnGi7r9oYX1eGFu1Ek0cz/C13jvr2b37l7ThSCSs=;
 b=ryYBbkpVxkYsZjxe/da3Lbaw+dxojxCxj7Kjljt8BE9sxCfdopz+1B8lsJk7P8wJKgpOqUu67PR2mf+sncsKc1s48ZovgfrwkKGtopmP/cM43DPLbOaX1tXvwhvwb3Oe5vyeRe7A8w/b/Fe5JrbBqaygi5nGlxWys9qtRSqxi8rGeKWUdJW+VnLuLFq4IBExUGEcid0SU0UMmPxv2Ci1eWwKU1blD8zLaRWolhuSbPZ+U2PwcOSqES9TGqUD7VEHEGcvtKAAKq8ewvLK8syVT2xzKz6pgimd/eQ98hjf3CQrlUO4D0YDypRx993maLUJFN8EjHg32JQnlFXMMO9ZBg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=a1ZPnGi7r9oYX1eGFu1Ek0cz/C13jvr2b37l7ThSCSs=;
 b=N3766J+zXxvQQJcF8UP6ldCK5QfxDPJv8BIFsobkkNzHTitlpKG4Ir6k9NYZed2mVAB1uK763f9lpBDNWammVSfeW/V4a9b5XAeE2OOMoozQnVPz1/uk0LvBEo1SiBJ7XhPYsfevJim7twlcPxvLW0Dlt2o+RaVHEqj/a4sGqkw=
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 2/6] x86: Remove x86 prefixed names from acpi code
Date: Wed,  4 Mar 2026 19:53:46 +0000
Message-ID: <20260304195350.837593-3-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20260304195350.837593-1-kevin.lampis@citrix.com>
References: <20260304195350.837593-1-kevin.lampis@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P265CA0260.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:37c::11) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|DM4PR03MB6079:EE_
X-MS-Office365-Filtering-Correlation-Id: b1f33329-3dc6-405c-21b9-08de7a27ac76
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:
	tWAmq6oYFRGC8VMicIQjPiqNWnle07+z7MYU2IxDJ7Igv4MZiZg7LrNPYXP65gCWWrA0SfTEdAck0mDoH9Kvxq761EeJwamKXLlcJmC5/BcvS5QyU6wENk+fTwnbKjBJTS3K2WxJTOSrjtEl/yOQWHsrdbSHeW1YT3W7Pwh2rndh4rf9qn5yiYsYhiZpcQWQA9dzz3iCCHrG75HX9aenPsQLmiCDtUKpCca/SV9mnduUySrIfmztf2JLBHnoxzbwfqHHEgjgA1Fuk6cEgPjSp+p9nSA6CYKhqR2gAT44fTGEpwUvijUh9n1uZCxZk8tywJmZbWGYLXYe1sd5YuEAVDs1jNu6hNqgZfWsJJWg9ahPDNclE+yEKSE2tpeRuPOq5TjQUjCQoZPRFS1Ju6z7PMbgIlluPplh7kL0M4iCdap2/CIVg+h80XXVhkr40cOp8QBVdnleXjnj9uMDCKiWwotWm2V1O7SYQmJnnO7llzOhiTBdF7C67azsjBXE1HwndhbDccGkkbTfKr9vI44X3bfu8SoRceizQrZNQUYkgqqG+nj480aZnt9KDjL3y9rI155E5rjlZNnqc5/xrVxCH/libj0M0GgO2vkf9pqq8pwOoG7/0JabjcVlHeNWLZhznD6yVkW6sMy241SqyrcA5VKu0dwjuoWHAGzshzeqnljpW/M//wzGP5hfF5JLh9aLBKcpKdarxRYk5pC+RMKHJB9BUYDYVDoC93zobw1vzrE=
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?05/fWnlVTEMNLaJRrjjWFa7eWJLt4vHDiFf51EBvwEk8Fc0av1kAlByywjDs?=
 =?us-ascii?Q?kDi5RpvuR8I7g31y0EbYXo3nEsKl0HFNkZiZh/OPr54myVAfRNAi8/uFx++E?=
 =?us-ascii?Q?K9RjeQFWF43AqkFHUm9wVDQ3Y0x5K7JPwrmYfa6BaCo05cPTDSabLU1Lp7tf?=
 =?us-ascii?Q?AYyB+wvTVfmMxJHNGvwJ7dr2Gqs2iAIYg3VrCGguFXSSSF5jR0VHu0bIwxB0?=
 =?us-ascii?Q?SIWvHrQGjhOaV88JledSfcjiIy/z4TUpGj3g2n4PX1W8cpJDAjnE1t2VpirX?=
 =?us-ascii?Q?iE3jcPEKZFlt/8naCaoviaOAZRfurISz72rhTiWMMvSFNQ/3r6LnqRhIThDN?=
 =?us-ascii?Q?u+tbLENKqXOwUAsqpmim+dhYsnigABhfanJ+3nMBzhoQ+rk6LBmo+WtGGE35?=
 =?us-ascii?Q?ckVcK8a1etFv2a3+kyQ0qiLEUXHEiPY97g636RAMv1EanHzGGRPwBPZTweA5?=
 =?us-ascii?Q?mlucEAoFHhhGbo4vHplHdry+heFNugJBVnKXpRyXauNUm5tSUmad6Jr5nDgA?=
 =?us-ascii?Q?A2NrZ9wJHrVq/AZ3DH61sAOeULyM9gMItVvOkrQRt7uFxCMqsN2aWpr+Amfw?=
 =?us-ascii?Q?ykSe1fbIU/NhwGknMEO67z39IPmYM6Cv9/QgK/6yCXTamKn8KB9IuO/Qm1ks?=
 =?us-ascii?Q?g6Ao+Q1cPNoKLlSF1Uh0ftCn1eC+VNL7X632fbCFaujpRB1snx2eEq3KoATK?=
 =?us-ascii?Q?OdoOBR/hnORYDDPRyd/fT0v4Ck88mOQuJpH2mxgu3EgYycNxRf2aEw70iUUN?=
 =?us-ascii?Q?odxREy0eaWUbjr75rTywBIHXnPtKElZUyxVMO+JZwReqcTZjOB/6D+7PuBiD?=
 =?us-ascii?Q?a0HsKjJmmtH0W4r8YoJKKTt7s9JpbMjzgB68pXJmy3H3SBgVOTTiJRQdDGzq?=
 =?us-ascii?Q?WofzJHYwGhcpWihlbqWoWaZ8vZMN/qFa1UXlsoO3ChSyU/FgegxzAdkR/pPr?=
 =?us-ascii?Q?LkEFvhtRO4rL7Gk3eTjwkiJTXSifzZp48H8zUgd2ZMF0r8v/OktumHxgeAwO?=
 =?us-ascii?Q?IaHsr7Ck4zEsp1G0i3M/4r1nV6Y8T0HckkXkcdIDA/yn6PxQmEJiu4vh4Nfr?=
 =?us-ascii?Q?Yy+RUKa/wJNOq2meBZIL+UpOi/dXd+4R3YZDK0x1EgH90A2GqFLApcD4OrlR?=
 =?us-ascii?Q?25Llm+pkdXZBIqycujxvRfTceadlWaeNW+WHa0BNrPiooU1R/x6fweelK0OU?=
 =?us-ascii?Q?PkCJyV8KZYLAxdrmio+pIqS3XC84GpcHiLXJmZcUpreNpFs+KUKlmdF7dkCO?=
 =?us-ascii?Q?ILHMZH/76bY6zkG0ByWNdoyOmfC1ItLStDKH0FF2eOAOSL6/P2yOHIYPw4UB?=
 =?us-ascii?Q?YhTnsKTsG5/iSFH3JMn9w2e+VT/tkxQHNCmTbTGkJYl46PC3+VFrP9T5U2gm?=
 =?us-ascii?Q?ul+V40R9E5KX66oHzDIIY3MshV+3YQ1aAcenWiis0zEWIWmZaQPz249ojiPo?=
 =?us-ascii?Q?y4UUXWIfkNP9+ADrtExq2HnY218vW3AmnCHr2RjQWQXou8Zp2kvTa9P+tBdw?=
 =?us-ascii?Q?KXZehPxks8aZyORJ26XdUkwHpHUoRYtZV83OkZlAr2DbD2WDUvESm2gY0MxN?=
 =?us-ascii?Q?+RVzpTGSsAbKRnp+zhcuss/Ccuf/8h1pM+HoTGS3mXa34uwo2gODrRXMqans?=
 =?us-ascii?Q?qsBjqY5aJutG/2i9dpgVbEvuH/QRDDHQfj+sbdb1bVnYW+9ctC2d+FDKFdzF?=
 =?us-ascii?Q?r6rkqF+6l/Pa7Ltfvanom0TyCejmnAJupO9xkXkzD5yz7VoGSORj+MybMEAW?=
 =?us-ascii?Q?EB99WmICKg=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b1f33329-3dc6-405c-21b9-08de7a27ac76
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 19:53:14.9687
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: KdOXM5OepvSdeokTNldoEk4ABtZ0Pj2ZF7RY5a+m2Qoz+e3SSBgBX6uxqs2kd++pteHU1LCF+178C8klR+Y8dw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6079

struct cpuinfo_x86
  .x86        => .family
  .x86_vendor => .vendor
  .x86_model  => .model
  .x86_mask   => .stepping

No functional change.

This work is part of making Xen safe for Intel family 18/19.

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
Inside do_get_hw_residencies()
there is an explicit check for `c->family != 6`
Do we need to add family 18/19 support here?
---
 xen/arch/x86/acpi/cpu_idle.c         | 20 ++++++++++----------
 xen/arch/x86/acpi/cpufreq/acpi.c     |  2 +-
 xen/arch/x86/acpi/cpufreq/cpufreq.c  |  4 ++--
 xen/arch/x86/acpi/cpufreq/powernow.c |  4 ++--
 4 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
index 0b3d0631dd..1d2ef776fe 100644
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -178,10 +178,11 @@ 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 )
+    /* XXX Does this need to be extented to include fam 18/19? */
+    if ( c->vendor != X86_VENDOR_INTEL || c->family != 6 )
         return;
 
-    switch ( c->x86_model )
+    switch ( c->model )
     {
     /* 4th generation Intel Core (Haswell) */
     case 0x45:
@@ -915,7 +916,7 @@ void cf_check acpi_dead_idle(void)
             mwait(cx->address, 0);
         }
     }
-    else if ( (current_cpu_data.x86_vendor &
+    else if ( (current_cpu_data.vendor &
                (X86_VENDOR_AMD | X86_VENDOR_HYGON)) &&
               cx->entry_method == ACPI_CSTATE_EM_SYSIO )
     {
@@ -1042,8 +1043,8 @@ static void acpi_processor_power_init_bm_check(struct acpi_processor_flags *flag
     flags->bm_check = 0;
     if ( num_online_cpus() == 1 )
         flags->bm_check = 1;
-    else if ( (c->x86_vendor == X86_VENDOR_INTEL) ||
-              ((c->x86_vendor == X86_VENDOR_AMD) && (c->x86 == 0x15)) )
+    else if ( (c->vendor == X86_VENDOR_INTEL) ||
+              ((c->vendor == X86_VENDOR_AMD) && (c->family == 0x15)) )
     {
         /*
          * Today all MP CPUs that support C3 share cache.
@@ -1059,8 +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 &&
-        (c->x86 > 0x6 || (c->x86 == 6 && c->x86_model >= 14)) )
+    if ( c->vendor == X86_VENDOR_INTEL && c->vfm >= INTEL_CORE_YONAH )
             flags->bm_control = 0;
 }
 
@@ -1416,12 +1416,12 @@ static void amd_cpuidle_init(struct acpi_processor_power *power)
     if ( vendor_override < 0 )
         return;
 
-    switch ( c->x86 )
+    switch ( c->family )
     {
     case 0x1a:
     case 0x19:
     case 0x18:
-        if ( boot_cpu_data.x86_vendor != X86_VENDOR_HYGON )
+        if ( boot_cpu_data.vendor != X86_VENDOR_HYGON )
         {
     default:
             vendor_override = -1;
@@ -1648,7 +1648,7 @@ static int cf_check cpu_callback(
         break;
 
     case CPU_ONLINE:
-        if ( (boot_cpu_data.x86_vendor &
+        if ( (boot_cpu_data.vendor &
               (X86_VENDOR_AMD | X86_VENDOR_HYGON)) &&
              processor_powers[cpu] )
             amd_cpuidle_init(processor_powers[cpu]);
diff --git a/xen/arch/x86/acpi/cpufreq/acpi.c b/xen/arch/x86/acpi/cpufreq/acpi.c
index d0ca660db1..de67f1aee2 100644
--- a/xen/arch/x86/acpi/cpufreq/acpi.c
+++ b/xen/arch/x86/acpi/cpufreq/acpi.c
@@ -454,7 +454,7 @@ static int cf_check acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
 
     /* Check for APERF/MPERF support in hardware
      * also check for boost support */
-    if (c->x86_vendor == X86_VENDOR_INTEL && c->cpuid_level >= 6)
+    if (c->vendor == X86_VENDOR_INTEL && c->cpuid_level >= 6)
         on_selected_cpus(cpumask_of(cpu), feature_detect, policy, 1);
 
     /*
diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/cpufreq/cpufreq.c
index 5740c0d438..9ef62b3538 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -133,7 +133,7 @@ static int __init cf_check cpufreq_driver_init(void)
 
         ret = -ENOENT;
 
-        switch ( boot_cpu_data.x86_vendor )
+        switch ( boot_cpu_data.vendor )
         {
         case X86_VENDOR_INTEL:
             for ( i = 0; i < cpufreq_xen_cnt; i++ )
@@ -252,7 +252,7 @@ __initcall(cpufreq_driver_late_init);
 int cpufreq_cpu_init(unsigned int cpu)
 {
     /* Currently we only handle Intel, AMD and Hygon processor */
-    if ( boot_cpu_data.x86_vendor &
+    if ( boot_cpu_data.vendor &
          (X86_VENDOR_INTEL | X86_VENDOR_AMD | X86_VENDOR_HYGON) )
         return cpufreq_add_cpu(cpu);
 
diff --git a/xen/arch/x86/acpi/cpufreq/powernow.c b/xen/arch/x86/acpi/cpufreq/powernow.c
index beab6cac36..55166eac72 100644
--- a/xen/arch/x86/acpi/cpufreq/powernow.c
+++ b/xen/arch/x86/acpi/cpufreq/powernow.c
@@ -143,7 +143,7 @@ static void amd_fixup_frequency(struct xen_processor_px *px)
     int index = px->control & 0x00000007;
     const struct cpuinfo_x86 *c = &current_cpu_data;
 
-    if ((c->x86 != 0x10 || c->x86_model >= 10) && c->x86 != 0x11)
+    if ((c->family != 0x10 || c->model >= 10) && c->family != 0x11)
         return;
 
     val = rdmsr(MSR_PSTATE_DEF_BASE + index);
@@ -157,7 +157,7 @@ static void amd_fixup_frequency(struct xen_processor_px *px)
 
     fid = val & 0x3f;
     did = (val >> 6) & 7;
-    if (c->x86 == 0x10)
+    if (c->family == 0x10)
         px->core_frequency = (100 * (fid + 16)) >> did;
     else
         px->core_frequency = (100 * (fid + 8)) >> did;
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 19:53:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 19:53:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245953.1545298 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxsHe-0008Vk-EC; Wed, 04 Mar 2026 19:53:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245953.1545298; Wed, 04 Mar 2026 19:53:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxsHe-0008Vb-BC; Wed, 04 Mar 2026 19:53:26 +0000
Received: by outflank-mailman (input) for mailman id 1245953;
 Wed, 04 Mar 2026 19:53: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=nfWr=BE=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1vxsHc-0007ik-Ij
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 19:53:24 +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 cbc687e3-1803-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 20:53:21 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by DM4PR03MB6079.namprd03.prod.outlook.com (2603:10b6:5:392::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Wed, 4 Mar
 2026 19:53:19 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9678.016; Wed, 4 Mar 2026
 19:53: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: cbc687e3-1803-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=s5FrXUw11Ok8BT/ZirIWInhg8jIoCMqChP+Mdj0FNLx6nVrL751YhteT3kxSwQDuGNltMj325E5Bqmb9T0ovY/MayWb5kQsF1+E6YtJW/SyDd1Nzv6JLTfim5uFoooXKzh459c+qco1qB9R6KWv2VKEKhhQKipPPQEIukRtSltrSu6mMo2ZEkuKMgHfeJhIWYAvVMCD6Rr1BDw9V2WjnaAgI6F4afyFU9NHIeGJT4LMUPqkyioMWP2wq3MzIHRpmvmbmEPeV7IXSvVzHivHMlF+K8WeSYXttqW6kFpj6X4soOJ9VOIPNhge6Zs52IvxZGKlci3SVtKdPEcJ8vbV1NA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hPANznstjJv8a9l5wYBDzqoZVdkqO/BbwSmXViXUd2M=;
 b=YyJrn3+kt4mDci4QBEH91laDIxS3iNx/MfYWBAfF24sgIWLIDAUtgrs5x8ZvbgXFV4p9FXZww5eiijiRduQdJXvixKkve+jwWRK3qSBhUMNqo2jz1QtBvINGGMa9YQ/sIPWE0zSgJ38Tkf9ePghRoLExDAZjzqtSRC9nAhJq5K1FBC7o0344i2H862E+BqlIZf1B+lx0Uq9Sl/EtYTbQoGFHqup6/5W8NaL5RrwL6TF52BmElhtmQ55iZ6J/fjauo4sFlHc4N4wdVMW5Fdt0f44j660QqwS+LI30hdhZpkh23TmvR6Mq+jNO5AkIBBuU1tRxB87R2RHMVVU+oWyTlA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hPANznstjJv8a9l5wYBDzqoZVdkqO/BbwSmXViXUd2M=;
 b=vJE1UHM+LcISvaiBLa8bM8rUKsyid+in/M49mGCISkYfndKn5S3AiQgfjr4cRlQ8LdkfdAcfr5ro3pFbST3wVnwKT7fzbdlD3nk4tBryHsSsMCcGfdKANOewpHpFnduKmknbp8Ggzm7dWf/TEK59poq8zpHvZgrEQMaVFV8kWRM=
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 3/6] x86: Remove x86 prefixed names from hvm code
Date: Wed,  4 Mar 2026 19:53:47 +0000
Message-ID: <20260304195350.837593-4-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20260304195350.837593-1-kevin.lampis@citrix.com>
References: <20260304195350.837593-1-kevin.lampis@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P265CA0253.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:37c::6) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|DM4PR03MB6079:EE_
X-MS-Office365-Filtering-Correlation-Id: b8014dc9-3350-4c69-eec3-08de7a27af22
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:
	2CAuK6Ta2xQG8FFIkVwmA1OW0T8qcdUgcDjHDkbvX7uoP1f399dDiT6rVReeFdiJv6he3HICQto3/5WjcgbLQTJDp+SiJzSJFAitAWZtRY29EuVFtwtQgbR89U0/SfcDlrwbpVASnw2QgYDWLiJWKf5xIIYlExfZxpCekEhSj+0WRMZzVpdC6eXgKHt7rD9Pz+9Ht78JldWBk5s5cIjlhkKfritxIfVXKZ/8BGTwTJYhrDtoPC2bQD0nGVkueIDu8ld/sWqax5KAU1FmWkb9QD+Dk1+BtZD14LAzptN7LU0H6P4WghuerNwBUvatf1vBQa/Z7yzqJShkz5XifpMor7Lz58JsvuokXf91gbrRMAKlT0wH4nhGDFiHWyI9g5P4Cf52kJ9LoEHNQtrpheo3VrkUwAjFOddm9wavmGhHMvMFwmLPwl5OsAemV1rr3tRv+XeXnV34qzvnnDApW4uTa8y1TCY109PUUvh38ywWuYzz2Bp8k7sb/xF4FUyRPr5tTmDRHURwbrt+PbtvREHF05L+H8imkNNDhXWx264xaK7mEUBYTfyDdUkUJ6uE2BwRMfi9EfIaQw70GaVoqhjPTBOFlEAuk7M62OxNg6opRbMmuLW1Y5YgdElQZEPuKu9vyPlw4bfZ3Z7BMAsZxAk+gE7ZENAtfwo3RhpGV8TNWQYKeMAl3yMTD/wNnxTfwLcX8tdEqacyS0UdSEhA95wuAB24YNuehuL5RbFuNnx6RlU=
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?GB/rLf23iHYAU491efqXTTjy5o7BYoMk2OTog9on5JtU4Gv/8RVpTzNQKajF?=
 =?us-ascii?Q?1d6pAm0i9PWaM4yI4ZOG4bTNXw1OexDUrXAcpsqPqBLU7fVnNzU46HaA1K1e?=
 =?us-ascii?Q?V1C3wj6odnvQ6w4uZmV0JWigUoz6AOq1n813gVmLGNNYryKYTIaB5/hAecj1?=
 =?us-ascii?Q?9k9Z2kk9zsRWjKAUP+iYscC7AF5Q3SkkdXbDprzEuBDT2camFzOilI/Q2kSj?=
 =?us-ascii?Q?bABsewMik4PvsF5oymnP46hZI1R46+8ngVYBrgqys1v8Y/YjMQzP3BbRdeY0?=
 =?us-ascii?Q?5OQJVohnCaD8SpWj9tdrcNfPXBC835CYdJhAXhA9ATYZ3jdZSwjBfYPmaspb?=
 =?us-ascii?Q?2gKR2QB9e1j1BUX+1SD+ZRqvkBWzPUwdy2kagugT93AEmPY27dGcTMXbHoVf?=
 =?us-ascii?Q?RvqmC0NuNv2W882ztxIZ/uRUuoFse87Tm2CyXvqPuehSLG+Qzjw8DU1O4djR?=
 =?us-ascii?Q?x0HGChN4txa9ddbalP2UXyurSV+kXacCyU/IAke+CAtPZBbQGrbtyfg/9nSJ?=
 =?us-ascii?Q?OsuAffG0lqI5r94gDTXdksK55H/4+sJ04csyMGGNLiNOFuFxkmWaC1ckuB3T?=
 =?us-ascii?Q?NNTvXW/XmpIENQveu4ynSrzwBzo1TGTt8aGaQYE4bkikOqQUR7g2K03vpuWG?=
 =?us-ascii?Q?gOrHDmH28CZW5nyAoJGksdFkoouZaqrNCyBt4Tvlf6YwUYF567M0OBTbWyYJ?=
 =?us-ascii?Q?0V4Bk0DqlUcz9GGBTnn3burYNXf16lvell4ncnh2acx9G3P+pnd1FRWXbDgj?=
 =?us-ascii?Q?M7DSVNsCJN4+TVL3L276cGrOfhF37jegWsHxH4iHHhDo5uZpFsVs5SHGxS8X?=
 =?us-ascii?Q?sy2L2iLLkUVLN2htcOpmRFkNFDrP3umNl6I3JcDXdE5+gPBLUH6VyaAat64b?=
 =?us-ascii?Q?Y+JiJRGpU9qKLH+1f8Nsd5oHaByWsVaSV25IezrWgGIEmgvzdjc9UIEQLTRQ?=
 =?us-ascii?Q?a0oQAO2qQKqF1yNnnTS66pIgp+gSX03R1wECn1vEtMn4Qohm309QCZp8dk1i?=
 =?us-ascii?Q?G+LTNqwo5C1DoVk+i0aZOOVORBo8M/RiO07T41+k7wM35qsFs+A++C1G1x3v?=
 =?us-ascii?Q?uDsl69k97t3GmjU3dMY1Qj+OJJxuUMm7vkZV/Xh6PEqEUvhI8t/JXthApEkD?=
 =?us-ascii?Q?BsWTefivYbCJTwiM4xVoWGSJAE4n1h/1PEgePh7XE5XDgkBfHN9H2qTMLsgL?=
 =?us-ascii?Q?+y6XOWvwoDn5+fM2XTOrMLvsjlJxuVhrd1ARnl4sqw65ME9mbVLQPKAJjclZ?=
 =?us-ascii?Q?30vTAVWoJByc9qSZHSEwiU8CL3AayxiY7zgDo8QW2QI2F8USSeUKGwU/ubd8?=
 =?us-ascii?Q?AXZVjHajuRs89YBLRnzQXiBeEBeRbuYzaLX+CyH2fW+Lnx12re+VrSFzTDM7?=
 =?us-ascii?Q?RevQwajg5Xg7es9wKfSHSZa9NENRrQD3QFMP2pfIF/OQvrgBZleaORSMJZF9?=
 =?us-ascii?Q?XWuhpIGABAP9UkmpfrQQZ9Zp0gZRWU4Ufc4HhpMTxbIQ3wAB3r5HPexklLgR?=
 =?us-ascii?Q?btbFYcR5nB+jLD8Jo44cgsHskzHulu5lSU0Jkbe12HJ6LI2dTTeWnqiEdhUt?=
 =?us-ascii?Q?uKYTO7YQpXX6hh30Li7C0QZfPKDzJSG2A4BHoQX5XuscJxeh5+ETSC4zPE3H?=
 =?us-ascii?Q?B5N+sxfiOfpU31KJcodoY1P+oEgkWfego1OMpoIcecVP33REE6aLKVKEHBNS?=
 =?us-ascii?Q?H/g8gxOS64ucS1/YqGiW50HQjj65wNcEZb3+MrzBkOUeZKaAXeX4a8pEMrl3?=
 =?us-ascii?Q?Cez9/GU0JA=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b8014dc9-3350-4c69-eec3-08de7a27af22
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 19:53:19.4529
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: O3S66BRmQPtyJSh2XTrtx4MJay7sB+zAsVyT5GJeU3hXvs5IR5NgAilpXyAPylW4jUz3lWpAeZSeFu0gduvrRw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6079

struct cpuinfo_x86
  .x86        => .family
  .x86_vendor => .vendor
  .x86_model  => .model
  .x86_mask   => .stepping

No functional change.

This work is part of making Xen safe for Intel family 18/19.

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
I couldn't find any information about these Intel family 6 processors:
  model 0x5d: /* SoFIA 3G Granite/ES2.1 */
  model 0x65: /* SoFIA LTE AOSP */
  model 0x6e: /* Cougar Mountain */
Should I add them to intel-family.h?
---
 xen/arch/x86/hvm/hvm.c      |   2 +-
 xen/arch/x86/hvm/svm/svm.c  |   6 +-
 xen/arch/x86/hvm/vmx/vmcs.c |   4 +-
 xen/arch/x86/hvm/vmx/vmx.c  | 278 ++++++++++++++++++------------------
 4 files changed, 144 insertions(+), 146 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 4d37a93c57..6ad52e1197 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3850,7 +3850,7 @@ void hvm_ud_intercept(struct cpu_user_regs *regs)
 {
     struct vcpu *cur = current;
     bool should_emulate =
-        cur->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor;
+        cur->domain->arch.cpuid->x86_vendor != boot_cpu_data.vendor;
     struct hvm_emulate_ctxt ctxt;
 
     hvm_emulate_init_once(&ctxt, opt_hvm_fep ? NULL : is_cross_vendor, regs);
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 18ba837738..1320abe392 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -590,7 +590,7 @@ static void cf_check svm_cpuid_policy_changed(struct vcpu *v)
     u32 bitmap = vmcb_get_exception_intercepts(vmcb);
 
     if ( opt_hvm_fep ||
-         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor) )
+         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.vendor) )
         bitmap |= (1U << X86_EXC_UD);
     else
         bitmap &= ~(1U << X86_EXC_UD);
@@ -1057,7 +1057,7 @@ static void svm_guest_osvw_init(struct domain *d)
      * be conservative here and therefore we tell the guest that erratum 298
      * is present (because we really don't know).
      */
-    if ( osvw_length == 0 && boot_cpu_data.x86 == 0x10 )
+    if ( osvw_length == 0 && boot_cpu_data.family == 0x10 )
         svm->osvw.status |= 1;
 
     spin_unlock(&osvw_lock);
@@ -1791,7 +1791,7 @@ static int cf_check svm_msr_read_intercept(
         if ( !rdmsr_safe(msr, msr_content) )
             break;
 
-        if ( boot_cpu_data.x86 == 0xf )
+        if ( boot_cpu_data.family == 0xf )
         {
             /*
              * Win2k8 x64 reads this MSR on revF chips, where it wasn't
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index c2e7f9aed3..d3b1730f1d 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -26,6 +26,7 @@
 #include <asm/hvm/vmx/vmx.h>
 #include <asm/hvm/vmx/vvmx.h>
 #include <asm/idt.h>
+#include <asm/intel-family.h>
 #include <asm/monitor.h>
 #include <asm/msr.h>
 #include <asm/processor.h>
@@ -2163,8 +2164,7 @@ int __init vmx_vmcs_init(void)
 
     if ( opt_ept_ad < 0 )
         /* Work around Erratum AVR41 on Avoton processors. */
-        opt_ept_ad = !(boot_cpu_data.x86 == 6 &&
-                       boot_cpu_data.x86_model == 0x4d);
+        opt_ept_ad = !(boot_cpu_data.vfm == INTEL_ATOM_SILVERMONT_D);
 
     ret = _vmx_cpu_up(true);
 
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 82c55f49ae..c332d5078d 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -34,6 +34,7 @@
 #include <asm/hvm/vmx/vmcs.h>
 #include <asm/hvm/vmx/vmx.h>
 #include <asm/hvm/vpt.h>
+#include <asm/intel-family.h>
 #include <asm/io.h>
 #include <asm/iocap.h>
 #include <asm/mce.h>
@@ -502,72 +503,75 @@ static const struct lbr_info *__ro_after_init model_specific_lbr;
 
 static const struct lbr_info *__init get_model_specific_lbr(void)
 {
-    switch ( boot_cpu_data.x86 )
+    switch ( boot_cpu_data.vfm )
     {
-    case 6:
-        switch ( boot_cpu_data.x86_model )
-        {
-        /* Core2 Duo */
-        case 0x0f:
-        /* Enhanced Core */
-        case 0x17:
-        /* Xeon 7400 */
-        case 0x1d:
-            return c2_lbr;
-        /* Nehalem */
-        case 0x1a: case 0x1e: case 0x1f: case 0x2e:
-        /* Westmere */
-        case 0x25: case 0x2c: case 0x2f:
-        /* Sandy Bridge */
-        case 0x2a: case 0x2d:
-        /* Ivy Bridge */
-        case 0x3a: case 0x3e:
-        /* Haswell */
-        case 0x3c: case 0x3f: case 0x45: case 0x46:
-        /* Broadwell */
-        case 0x3d: case 0x47: case 0x4f: case 0x56:
-            return nh_lbr;
-        /* Skylake */
-        case 0x4e: case 0x5e:
-        /* Xeon Scalable */
-        case 0x55:
-        /* Cannon Lake */
-        case 0x66:
-        /* Goldmont Plus */
-        case 0x7a:
-        /* Ice Lake */
-        case 0x6a: case 0x6c: case 0x7d: case 0x7e:
-        /* Tiger Lake */
-        case 0x8c: case 0x8d:
-        /* Tremont */
-        case 0x86:
-        /* Kaby Lake */
-        case 0x8e: case 0x9e:
-        /* Comet Lake */
-        case 0xa5: case 0xa6:
-            return sk_lbr;
-        /* Atom */
-        case 0x1c: case 0x26: case 0x27: case 0x35: case 0x36:
-            return at_lbr;
-        /* Silvermont */
-        case 0x37: case 0x4a: case 0x4d: case 0x5a: case 0x5d:
-        /* Airmont */
-        case 0x4c:
-            return sm_lbr;
-        /* Goldmont */
-        case 0x5c: case 0x5f:
-            return gm_lbr;
-        }
-        break;
-
-    case 15:
-        switch ( boot_cpu_data.x86_model )
-        {
-        /* Pentium4/Xeon with em64t */
-        case 3: case 4: case 6:
-            return p4_lbr;
-        }
-        break;
+    case INTEL_CORE2_DUNNINGTON:
+    case INTEL_CORE2_MEROM:
+    case INTEL_CORE2_PENRYN:
+        return c2_lbr;
+
+    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:
+    case INTEL_SANDYBRIDGE:
+    case INTEL_SANDYBRIDGE_X:
+    case INTEL_IVYBRIDGE:
+    case INTEL_IVYBRIDGE_X:
+    case INTEL_HASWELL:
+    case INTEL_HASWELL_G:
+    case INTEL_HASWELL_L:
+    case INTEL_HASWELL_X:
+    case INTEL_BROADWELL:
+    case INTEL_BROADWELL_D:
+    case INTEL_BROADWELL_G:
+    case INTEL_BROADWELL_X:
+        return nh_lbr;
+
+    case INTEL_SKYLAKE:
+    case INTEL_SKYLAKE_L:
+    case INTEL_SKYLAKE_X:
+    case INTEL_CANNONLAKE_L:
+    case INTEL_ATOM_GOLDMONT_PLUS:
+    case INTEL_ICELAKE:
+    case INTEL_ICELAKE_D:
+    case INTEL_ICELAKE_L:
+    case INTEL_ICELAKE_X:
+    case INTEL_TIGERLAKE:
+    case INTEL_TIGERLAKE_L:
+    case INTEL_ATOM_TREMONT_D:
+    case INTEL_KABYLAKE:
+    case INTEL_KABYLAKE_L:
+    case INTEL_COMETLAKE:
+    case INTEL_COMETLAKE_L:
+        return sk_lbr;
+
+    case INTEL_ATOM_BONNELL:
+    case INTEL_ATOM_BONNELL_MID:
+    case INTEL_ATOM_SALTWELL:
+    case INTEL_ATOM_SALTWELL_MID:
+    case INTEL_ATOM_SALTWELL_TABLET:
+        return at_lbr;
+
+    case INTEL_ATOM_SILVERMONT:
+    case INTEL_ATOM_SILVERMONT_MID:
+    case INTEL_ATOM_SILVERMONT_D:
+    case INTEL_ATOM_SILVERMONT_MID2:
+    //case 0x5d: // XXX
+    case INTEL_ATOM_AIRMONT:
+        return sm_lbr;
+
+    case INTEL_ATOM_GOLDMONT:
+    case INTEL_ATOM_GOLDMONT_D:
+        return gm_lbr;
+
+    case INTEL_P4_PRESCOTT:
+    case INTEL_P4_PRESCOTT_2M:
+    case INTEL_P4_CEDARMILL:
+        return p4_lbr;
     }
 
     return NULL;
@@ -804,7 +808,7 @@ static void cf_check vmx_cpuid_policy_changed(struct vcpu *v)
     int rc = 0;
 
     if ( opt_hvm_fep ||
-         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor) )
+         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.vendor) )
         v->arch.hvm.vmx.exception_bitmap |= (1U << X86_EXC_UD);
     else
         v->arch.hvm.vmx.exception_bitmap &= ~(1U << X86_EXC_UD);
@@ -3073,71 +3077,71 @@ static bool __init has_if_pschange_mc(void)
      * IF_PSCHANGE_MC is only known to affect Intel Family 6 processors at
      * this time.
      */
-    if ( boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
-         boot_cpu_data.x86 != 6 )
+    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
+         boot_cpu_data.family != 6 )
         return false;
 
-    switch ( boot_cpu_data.x86_model )
+    switch ( boot_cpu_data.vfm )
     {
         /*
          * Core processors since at least Nehalem are vulnerable.
          */
-    case 0x1f: /* Auburndale / Havendale */
-    case 0x1e: /* Nehalem */
-    case 0x1a: /* Nehalem EP */
-    case 0x2e: /* Nehalem EX */
-    case 0x25: /* Westmere */
-    case 0x2c: /* Westmere EP */
-    case 0x2f: /* Westmere EX */
-    case 0x2a: /* SandyBridge */
-    case 0x2d: /* SandyBridge EP/EX */
-    case 0x3a: /* IvyBridge */
-    case 0x3e: /* IvyBridge EP/EX */
-    case 0x3c: /* Haswell */
-    case 0x3f: /* Haswell EX/EP */
-    case 0x45: /* Haswell D */
-    case 0x46: /* Haswell H */
-    case 0x3d: /* Broadwell */
-    case 0x47: /* Broadwell H */
-    case 0x4f: /* Broadwell EP/EX */
-    case 0x56: /* Broadwell D */
-    case 0x4e: /* Skylake M */
-    case 0x5e: /* Skylake D */
-    case 0x55: /* Skylake-X / Cascade Lake */
-    case 0x7d: /* Ice Lake */
-    case 0x7e: /* Ice Lake */
-    case 0x8e: /* Kaby / Coffee / Whiskey Lake M */
-    case 0x9e: /* Kaby / Coffee / Whiskey Lake D */
-    case 0xa5: /* Comet Lake H/S */
-    case 0xa6: /* Comet Lake U */
+    case INTEL_NEHALEM_G:
+    case INTEL_NEHALEM:
+    case INTEL_NEHALEM_EP:
+    case INTEL_NEHALEM_EX:
+    case INTEL_WESTMERE:
+    case INTEL_WESTMERE_EP:
+    case INTEL_WESTMERE_EX:
+    case INTEL_SANDYBRIDGE:
+    case INTEL_SANDYBRIDGE_X:
+    case INTEL_IVYBRIDGE:
+    case INTEL_IVYBRIDGE_X:
+    case INTEL_HASWELL:
+    case INTEL_HASWELL_X:
+    case INTEL_HASWELL_L:
+    case INTEL_HASWELL_G:
+    case INTEL_BROADWELL:
+    case INTEL_BROADWELL_G:
+    case INTEL_BROADWELL_X:
+    case INTEL_BROADWELL_D:
+    case INTEL_SKYLAKE_L:
+    case INTEL_SKYLAKE:
+    case INTEL_SKYLAKE_X:
+    case INTEL_ICELAKE:
+    case INTEL_ICELAKE_L:
+    case INTEL_KABYLAKE_L:
+    case INTEL_KABYLAKE:
+    case INTEL_COMETLAKE:
+    case INTEL_COMETLAKE_L:
         return true;
 
         /*
          * Atom processors are not vulnerable.
          */
-    case 0x1c: /* Pineview */
-    case 0x26: /* Lincroft */
-    case 0x27: /* Penwell */
-    case 0x35: /* Cloverview */
-    case 0x36: /* Cedarview */
-    case 0x37: /* Baytrail / Valleyview (Silvermont) */
-    case 0x4d: /* Avaton / Rangely (Silvermont) */
-    case 0x4c: /* Cherrytrail / Brasswell */
-    case 0x4a: /* Merrifield */
-    case 0x5a: /* Moorefield */
-    case 0x5c: /* Goldmont */
-    case 0x5d: /* SoFIA 3G Granite/ES2.1 */
-    case 0x65: /* SoFIA LTE AOSP */
-    case 0x5f: /* Denverton */
-    case 0x6e: /* Cougar Mountain */
-    case 0x75: /* Lightning Mountain */
-    case 0x7a: /* Gemini Lake */
-    case 0x86: /* Jacobsville */
+    case INTEL_ATOM_BONNELL:
+    case INTEL_ATOM_BONNELL_MID:
+    case INTEL_ATOM_SALTWELL_MID:
+    case INTEL_ATOM_SALTWELL_TABLET:
+    case INTEL_ATOM_SALTWELL:
+    case INTEL_ATOM_SILVERMONT:
+    case INTEL_ATOM_SILVERMONT_D:
+    case INTEL_ATOM_AIRMONT:
+    case INTEL_ATOM_SILVERMONT_MID:
+    case INTEL_ATOM_SILVERMONT_MID2:
+    case INTEL_ATOM_GOLDMONT:
+    //case 0x5d: /* SoFIA 3G Granite/ES2.1 */ // XXX ???
+    //case 0x65: /* SoFIA LTE AOSP */         // XXX ???
+    case INTEL_ATOM_GOLDMONT_D:
+    //case 0x6e: /* Cougar Mountain */        // XXX ???
+    case INTEL_ATOM_AIRMONT_NP:
+    case INTEL_ATOM_GOLDMONT_PLUS:
+    case INTEL_ATOM_TREMONT_D:
         return false;
 
     default:
         printk("Unrecognised CPU model %#x - assuming vulnerable to IF_PSCHANGE_MC\n",
-               boot_cpu_data.x86_model);
+               boot_cpu_data.model);
         return true;
     }
 }
@@ -3431,23 +3435,20 @@ static void __init lbr_tsx_fixup_check(void)
      * fixed up as well.
      */
     if ( cpu_has_hle || cpu_has_rtm ||
-         boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
-         boot_cpu_data.x86 != 6 )
+         boot_cpu_data.vendor != X86_VENDOR_INTEL ||
+         boot_cpu_data.family != 6 )
         return;
 
-    switch ( boot_cpu_data.x86_model )
+    switch ( boot_cpu_data.vfm )
     {
-    case 0x3c: /* HSM182, HSD172 - 4th gen Core */
-    case 0x3f: /* HSE117 - Xeon E5 v3 */
-    case 0x45: /* HSM182 - 4th gen Core */
-    case 0x46: /* HSM182, HSD172 - 4th gen Core (GT3) */
-    case 0x3d: /* BDM127 - 5th gen Core */
-    case 0x47: /* BDD117 - 5th gen Core (GT3)
-                  BDW117 - Xeon E3-1200 v4 */
-    case 0x4f: /* BDF85  - Xeon E5-2600 v4
-                  BDH75  - Core-i7 for LGA2011-v3 Socket
-                  BDX88  - Xeon E7-x800 v4 */
-    case 0x56: /* BDE105 - Xeon D-1500 */
+    case INTEL_HASWELL:
+    case INTEL_HASWELL_X:
+    case INTEL_HASWELL_L:
+    case INTEL_HASWELL_G:
+    case INTEL_BROADWELL:
+    case INTEL_BROADWELL_G:
+    case INTEL_BROADWELL_X:
+    case INTEL_BROADWELL_D:
         break;
     default:
         return;
@@ -3476,19 +3477,16 @@ static void __init ler_to_fixup_check(void)
      * that are not equal to bit[47].  Attempting to context switch this value
      * may cause a #GP.  Software should sign extend the MSR.
      */
-    if ( boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
-         boot_cpu_data.x86 != 6 )
+    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
+         boot_cpu_data.family != 6 )
         return;
 
-    switch ( boot_cpu_data.x86_model )
+    switch ( boot_cpu_data.vfm )
     {
-    case 0x3d: /* BDM131 - 5th gen Core */
-    case 0x47: /* BDD??? - 5th gen Core (H-Processor line)
-                  BDW120 - Xeon E3-1200 v4 */
-    case 0x4f: /* BDF93  - Xeon E5-2600 v4
-                  BDH80  - Core-i7 for LGA2011-v3 Socket
-                  BDX93  - Xeon E7-x800 v4 */
-    case 0x56: /* BDE??? - Xeon D-1500 */
+    case INTEL_BROADWELL:
+    case INTEL_BROADWELL_G:
+    case INTEL_BROADWELL_X:
+    case INTEL_BROADWELL_D:
         ler_to_fixup_needed = true;
         break;
     }
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 19:53:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 19:53:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245954.1545308 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxsHh-0000MO-MT; Wed, 04 Mar 2026 19:53:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245954.1545308; Wed, 04 Mar 2026 19:53:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxsHh-0000MF-JF; Wed, 04 Mar 2026 19:53:29 +0000
Received: by outflank-mailman (input) for mailman id 1245954;
 Wed, 04 Mar 2026 19:53: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=nfWr=BE=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1vxsHf-0007ik-SJ
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 19:53:28 +0000
Received: from BN8PR05CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c110::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ce6cf8b7-1803-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 20:53:26 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by DM4PR03MB6079.namprd03.prod.outlook.com (2603:10b6:5:392::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Wed, 4 Mar
 2026 19:53:24 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9678.016; Wed, 4 Mar 2026
 19:53: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: ce6cf8b7-1803-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Z3wKQwBCJfiwGCPHf/5Hp/Hu6/AGsbeo7DlG4YonOGF9x0Me1HIgNGXL24/MoasdWjjCqUVatJrG/YoLFHwTqRMUmKl+0jxz8n8oJ60S0jIhaA+MPUSlc3EH/sI8Ov0yjgO0kD2uYj7+KmPfJPoav/NqsRxRpMHePhiRGMlZNcMqZPdMXgAJt+1Cvk4fRzw/M1SUsw3blWVog62lsdSAYo5iHWV5kmoeYVDqufxU9jjGj5eas3fHihHIPnM7SaBGKqmgmWJ6yO/lM8wDRrCyCyZJ0KCzAFfD3sRW23OAGtbW00rPPBiclLfK+omQoutxlY8rTsqDgskFpMJV6rjE8Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=C8uSxdZ9apq9RNkJQVruOhBEhgTE/HpOqrFEHfxII2M=;
 b=w/WUJ5i4Ivr5Rizdq7JFTQtSN6prGVITq/dgrM0954Ay9AhzMmB6jovP+wb37QRmJn+vpgURuaFws9PATBQdW3QktFuCAxaRakS/TcVW0QQ+usAJMiwxoGHOcYvIQlR/f+rJVnI6Oa2lVZysNVQeRn9Fa1Trr7tJzZayRgb5AT1PpxIP8wmW7RY2bJoo7BzRBCtUMDoqJsAi0Tlu/HO0TbM2W5BJ9FI5PLTLw1TmbmcuP3iFTdb89WY+falxDqKWqtfP6k7VYhzWFqbkJ7zalHjnq3GzTwE8mCH0I7mFMBzlwIqlzH/Af8sX7yMbto+SQWuRKJdLI9xWy4sptklKKA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=C8uSxdZ9apq9RNkJQVruOhBEhgTE/HpOqrFEHfxII2M=;
 b=hIn1mYMS0uXI82zAM0lJX4GC9qAr+M1xjTpQWWSQN82jrCFuaaJGsmR0GXlywAuOtuqF9RHLLWj1vgBBBw5UVwjYy+gRWS1itaaC7G7JTywnlWshs3iv7nNCTgWfSmt44f1zriaOINPWDdUz7TGec1OWJQT6P6NkK0JgdQ0qtzM=
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 4/6] x86: Remove x86 prefixed names from x86/cpu/ files
Date: Wed,  4 Mar 2026 19:53:48 +0000
Message-ID: <20260304195350.837593-5-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20260304195350.837593-1-kevin.lampis@citrix.com>
References: <20260304195350.837593-1-kevin.lampis@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P265CA0265.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:37c::17) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|DM4PR03MB6079:EE_
X-MS-Office365-Filtering-Correlation-Id: d7fe414e-9bbf-40ea-d2f2-08de7a27b1d1
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:
	qYnya3Kj/mCDXnreaAYWP+aY/XZsP0TfaeBEQ8sLrXbCNlCpoflrQj6vYtJM3vbAZY9LMP06qYcTgurgbQ2Jv7fhbPv014v9lG+xZD8FaQ2FYugEukDbxBqjIMvu2L7oYaZ2xllz6ioWrCGbkFbvtDdC1eim16+ae1H/PiO7QB/+BCn7FtEX22ylJnfmFlTHdTy8biZoNQjWdus72Tuz2nUpnoOCOYQy32zmlm8uT8W4hUxu4JlVjx9DxQGv6VcV/66dlLiLn85SU/LmAzZEoDRDOwHj+3lPS+Cbs7FaIXENDwXdN/AGBip74bmHQsD6z8DhZCjzqA40IxN/FG4RgJZFOYmj43H1lTE90Qf118oWmhOQTHMZ4DVGe52fWhCA0olPYqomO8OS73DBVnwYHk1tqwP0Qqp+XFczRS9x768PW8CFU+5KVfVGnQz+WQp3+L600vl3Wk/rnwLD5LgGOMOw6+TVnPVbp/QZeimVoTtmsISU2U0Lnfz947uc8rPHneG9EMK7XYDW2MwP9hAVN2qEq2BeixrCUID2+lbLkBB3n8mA0xoRHZj0Gpjc4A9YBlTKyvprGjxtuKEARDhuEBGE2fQlc57t/IUEV6fHAM2cEDbCfJJg1RZsTD5EJfohNvU3UZkjXh1it8rFGz6JzBaqplikHQ+gGvmNyUOgJgnOOVcpekLqiG//pWbPzLn1JIc1LVod1BEzi1JP9ygqmtR289e//W//0mMjKFC6xZU=
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?GkjGMSVOSNP9wzBJ6W7V2c6wR6b9/xijqVuvxlMcQJuWbTAS2KyJ6cspAwUQ?=
 =?us-ascii?Q?6pdXGaA+7pai1FP3qC2Kz4PHmLzYRev6DEw5nFeIVfc/YBQYotVXhlQM5dNo?=
 =?us-ascii?Q?L32x7mdBQknH2AnHQMEUvs/DvMb3KEhDyKYu2LzZVeuo60RwBpsK0Z4JkZUL?=
 =?us-ascii?Q?/3akBhtMJoFLS7SDRps6SQhSZ+72NUFGHWe0Zsni6wgr7gL13B8gCjOzapMf?=
 =?us-ascii?Q?+LYQjg7gZ4K9b5kTwIgK0TIFdrshNxoTIJ5Eb+OT1Q4EqK/oCgY2RnZlZ72Y?=
 =?us-ascii?Q?2AaB6rR7i2QAn7IO+lhsJDNQ9ruvKcUb1ion8GihF5Ye+MGZUvKgL08hU1zm?=
 =?us-ascii?Q?pDuHEAPX8wbNRTr6ts9Ln/U6+WlTzukddaDwFgFx5XBmnSudgvZYJUqsBT7e?=
 =?us-ascii?Q?cKgFbOgH8kt+36VGMNMJAP+GRD1qkWdIVRhiOP7o2GgD4bMN0pTyGB+A2I3g?=
 =?us-ascii?Q?I1t8Ik1OO90kmyJUxLgwRlrVcWeSDj8Jpj8RSioXBRbIWJW1J1K9Lbnzcngl?=
 =?us-ascii?Q?KuKcaeZPSuP6shGcs+OciFKmRfU2cUdADsIqhQaF5Bm1wN8A4JNT2Eu00/qA?=
 =?us-ascii?Q?4JFmcduI5JwNp1eikE8B9L3dOKpe2BtjDxGf68FWhh5MtC3O+ebP1aCvwZI9?=
 =?us-ascii?Q?DHPm1xcdojuDsB1YxpH54FB3ftE8l0DnzG8wvZZiLQnMfb1bK8bK333KKvRC?=
 =?us-ascii?Q?7EKm/607dZW9pfHVQLcw28x3VXLQIMub5RWr+6NNw79NDK5rOsQZegxWSbj2?=
 =?us-ascii?Q?LWwGNVmqzsg3ToPfcdumIxmuP+U8+Ma3BjN2F7hQ0z1P+NqrCgr8PwL0bOWe?=
 =?us-ascii?Q?FnhxFA806N1du3SOaHg4pg2N0dEf7rFJiigKLPx9/eYfg9UieF1Iiyd983Re?=
 =?us-ascii?Q?ZJQq6t/RH/DisAFw0cw0AUnJZ/zAiQKDBV8E4z3FOHq5JllKjeitmZl1bOWq?=
 =?us-ascii?Q?+xYA8ldrFeLY3rdegixl22wqgjYWKuVImuV2Q4oXnzm2IBD18FsRv/tCjiZ8?=
 =?us-ascii?Q?buwrpI3A41u7G5hsKNmP2KoWN45BMu49Yajmt+GosIUg+CNQBQUDc+x/ZnU0?=
 =?us-ascii?Q?+ApYjqQuQ97HGZa/zNR8C4MktmPcI/PXah1lslAOTlHQ432jvK0+679uK61V?=
 =?us-ascii?Q?0ILXh6cQq7rS0GmoABB72jsWmWxIQ9M/LHYYr8zcdvKKQyEi5EF3uU2XI/8l?=
 =?us-ascii?Q?BR5ovNU0VuQskEzPHGQQgBgdxNVB9OVPjEwJ8IqNH0ubK3M5paHc0MVP8Xmk?=
 =?us-ascii?Q?D44YE9wrn1C1Mbb1Avnsbhb2bEf7WRbwoo71RTdwZc8X1AAX0hcepJ861xp+?=
 =?us-ascii?Q?DVS/QmCUmI1w5FC68ZZw0jM4t59Z9fTwQVoVO6e7p/H8OOu6eJtwFErSSF5W?=
 =?us-ascii?Q?ZWV0X+42OKWYuEjtATdqA6QWU2dOVcsg9M9VrI0J58Dzxhz7dTAna2seIVlc?=
 =?us-ascii?Q?EfIejeg6Wsx/7TjIIS0txF6+IE3wdb/8RQfQIsQaUN1uFVoi1Mm80Ve554Ka?=
 =?us-ascii?Q?p+iyuWTUFEk5gafGecUnfiSZGoo4G1hgD1fDrSQe7VWBuGAbHVUEzHuBmFkN?=
 =?us-ascii?Q?a8I+KM855yquwU2qUjf+HGdI5pjJKFf8DXvf4Iw+FiBiJKpaqGinxS7CHoqT?=
 =?us-ascii?Q?wkC/7S//5Ln2Lfr81+SU7hrHc9r3ifTsWxNapIR6BQiem+z9u2NyetUuDpw2?=
 =?us-ascii?Q?cmQmaG0rjgLU+h3SuL1wYoRHtImoVLK40PpdbDBjdxDjoWGDgzR8J31shp79?=
 =?us-ascii?Q?0aarBUb2pQ=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d7fe414e-9bbf-40ea-d2f2-08de7a27b1d1
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 19:53:23.9622
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: dTvzmGK2/qOVhSnJF3Y2+3cFLoAqV6HcqC/qHa8hIqdMVbQhGnJNCwHwlV+NCRMNfuy9DKepL1lrIe8y7eX5uw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6079

struct cpuinfo_x86
  .x86        => .family
  .x86_vendor => .vendor
  .x86_model  => .model
  .x86_mask   => .stepping

No functional change.

This work is part of making Xen safe for Intel family 18/19.

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
Inside core2_vpmu_init() there is a check for family == 6.
Should this be extended to family 18/19?
---
 xen/arch/x86/cpu/centaur.c         | 4 ++--
 xen/arch/x86/cpu/hygon.c           | 4 ++--
 xen/arch/x86/cpu/intel_cacheinfo.c | 6 +++---
 xen/arch/x86/cpu/mtrr/generic.c    | 6 +++---
 xen/arch/x86/cpu/mwait-idle.c      | 4 ++--
 xen/arch/x86/cpu/vpmu.c            | 4 ++--
 xen/arch/x86/cpu/vpmu_amd.c        | 6 +++---
 xen/arch/x86/cpu/vpmu_intel.c      | 6 ++++--
 8 files changed, 21 insertions(+), 19 deletions(-)

diff --git a/xen/arch/x86/cpu/centaur.c b/xen/arch/x86/cpu/centaur.c
index d2e7c8ec99..9123b05dc1 100644
--- a/xen/arch/x86/cpu/centaur.c
+++ b/xen/arch/x86/cpu/centaur.c
@@ -41,7 +41,7 @@ static void init_c3(struct cpuinfo_x86 *c)
 		}
 	}
 
-	if (c->x86 == 0x6 && c->x86_model >= 0xf) {
+	if (c->family == 0x6 && c->model >= 0xf) {
 		c->x86_cache_alignment = c->x86_clflush_size * 2;
 		__set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
 	}
@@ -52,7 +52,7 @@ static void init_c3(struct cpuinfo_x86 *c)
 
 static void cf_check init_centaur(struct cpuinfo_x86 *c)
 {
-	if (c->x86 == 6)
+	if (c->family == 6)
 		init_c3(c);
 }
 
diff --git a/xen/arch/x86/cpu/hygon.c b/xen/arch/x86/cpu/hygon.c
index b99d83ed4d..7a9fc25d31 100644
--- a/xen/arch/x86/cpu/hygon.c
+++ b/xen/arch/x86/cpu/hygon.c
@@ -41,12 +41,12 @@ static void cf_check init_hygon(struct cpuinfo_x86 *c)
 
 	/* Probe for NSCB on Zen2 CPUs when not virtualised */
 	if (!cpu_has_hypervisor && !cpu_has_nscb && c == &boot_cpu_data &&
-	    c->x86 == 0x18)
+	    c->family == 0x18)
 		detect_zen2_null_seg_behaviour();
 
 	/*
 	 * TODO: Check heuristic safety with Hygon first
-	if (c->x86 == 0x18)
+	if (c->family == 0x18)
 		amd_init_spectral_chicken();
 	 */
 
diff --git a/xen/arch/x86/cpu/intel_cacheinfo.c b/xen/arch/x86/cpu/intel_cacheinfo.c
index e88faa7545..a81d0764fb 100644
--- a/xen/arch/x86/cpu/intel_cacheinfo.c
+++ b/xen/arch/x86/cpu/intel_cacheinfo.c
@@ -168,15 +168,15 @@ void init_intel_cacheinfo(struct cpuinfo_x86 *c)
 	 * Don't use cpuid2 if cpuid4 is supported. For P4, we use cpuid2 for
 	 * trace cache
 	 */
-	if ((num_cache_leaves == 0 || c->x86 == 15) && c->cpuid_level > 1 &&
-	    c->x86_vendor != X86_VENDOR_SHANGHAI)
+	if ((num_cache_leaves == 0 || c->family == 15) && c->cpuid_level > 1 &&
+	    c->vendor != X86_VENDOR_SHANGHAI)
 	{
 		/* supports eax=2  call */
 		unsigned int i, j, n, regs[4];
 		unsigned char *dp = (unsigned char *)regs;
 		int only_trace = 0;
 
-		if (num_cache_leaves != 0 && c->x86 == 15)
+		if (num_cache_leaves != 0 && c->family == 15)
 			only_trace = 1;
 
 		/* Number of times to iterate */
diff --git a/xen/arch/x86/cpu/mtrr/generic.c b/xen/arch/x86/cpu/mtrr/generic.c
index c587e9140e..190be7f1b4 100644
--- a/xen/arch/x86/cpu/mtrr/generic.c
+++ b/xen/arch/x86/cpu/mtrr/generic.c
@@ -218,9 +218,9 @@ static void __init print_mtrr_state(const char *level)
 			printk("%s  %u disabled\n", level, i);
 	}
 
-	if ((boot_cpu_data.x86_vendor == X86_VENDOR_AMD &&
-	     boot_cpu_data.x86 >= 0xf) ||
-	     boot_cpu_data.x86_vendor == X86_VENDOR_HYGON) {
+	if ((boot_cpu_data.vendor == X86_VENDOR_AMD &&
+	     boot_cpu_data.family >= 0xf) ||
+	     boot_cpu_data.vendor == X86_VENDOR_HYGON) {
 		uint64_t syscfg, tom2;
 
 		rdmsrl(MSR_K8_SYSCFG, syscfg);
diff --git a/xen/arch/x86/cpu/mwait-idle.c b/xen/arch/x86/cpu/mwait-idle.c
index 5962ec1db9..6776eeb9ac 100644
--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -1637,7 +1637,7 @@ static int __init mwait_idle_probe(void)
 		lapic_timer_reliable_states = LAPIC_TIMER_ALWAYS_RELIABLE;
 
 	pr_debug(PREFIX "v" MWAIT_IDLE_VERSION " model %#x\n",
-		 boot_cpu_data.x86_model);
+		 boot_cpu_data.model);
 
 	pr_debug(PREFIX "lapic_timer_reliable_states %#x\n",
 		 lapic_timer_reliable_states);
@@ -1816,7 +1816,7 @@ bool __init mwait_pc10_supported(void)
 {
 	unsigned int ecx, edx, dummy;
 
-	if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
+	if (boot_cpu_data.vendor != X86_VENDOR_INTEL ||
 	    !cpu_has_monitor ||
 	    boot_cpu_data.cpuid_level < CPUID_MWAIT_LEAF)
 		return false;
diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c
index c28192ea26..64328bdf3f 100644
--- a/xen/arch/x86/cpu/vpmu.c
+++ b/xen/arch/x86/cpu/vpmu.c
@@ -398,7 +398,7 @@ int vpmu_load(struct vcpu *v, bool from_guest)
 static int vpmu_arch_initialise(struct vcpu *v)
 {
     struct vpmu_struct *vpmu = vcpu_vpmu(v);
-    uint8_t vendor = current_cpu_data.x86_vendor;
+    uint8_t vendor = current_cpu_data.vendor;
     int ret;
 
     BUILD_BUG_ON(sizeof(struct xen_pmu_intel_ctxt) > XENPMU_CTXT_PAD_SZ);
@@ -815,7 +815,7 @@ static struct notifier_block cpu_nfb = {
 
 static int __init cf_check vpmu_init(void)
 {
-    int vendor = current_cpu_data.x86_vendor;
+    int vendor = current_cpu_data.vendor;
     const struct arch_vpmu_ops *ops = NULL;
 
     if ( !opt_vpmu_enabled )
diff --git a/xen/arch/x86/cpu/vpmu_amd.c b/xen/arch/x86/cpu/vpmu_amd.c
index d1f6bd5495..943a0f4ebe 100644
--- a/xen/arch/x86/cpu/vpmu_amd.c
+++ b/xen/arch/x86/cpu/vpmu_amd.c
@@ -532,7 +532,7 @@ static const struct arch_vpmu_ops *__init common_init(void)
     if ( !num_counters )
     {
         printk(XENLOG_WARNING "VPMU: Unsupported CPU family %#x\n",
-               current_cpu_data.x86);
+               current_cpu_data.family);
         return ERR_PTR(-EINVAL);
     }
 
@@ -557,7 +557,7 @@ static const struct arch_vpmu_ops *__init common_init(void)
 
 const struct arch_vpmu_ops *__init amd_vpmu_init(void)
 {
-    switch ( current_cpu_data.x86 )
+    switch ( current_cpu_data.family )
     {
     case 0x15:
     case 0x17:
@@ -585,7 +585,7 @@ const struct arch_vpmu_ops *__init amd_vpmu_init(void)
 
 const struct arch_vpmu_ops *__init hygon_vpmu_init(void)
 {
-    switch ( current_cpu_data.x86 )
+    switch ( current_cpu_data.family )
     {
     case 0x18:
         num_counters = F15H_NUM_COUNTERS;
diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c
index 1e3b06ef8e..c623554e37 100644
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -917,7 +917,9 @@ const struct arch_vpmu_ops *__init core2_vpmu_init(void)
         return ERR_PTR(-EINVAL);
     }
 
-    if ( current_cpu_data.x86 != 6 )
+    /* XXX Does this need to be changed to include family 18/19?
+     * Is the core2_ function name misleading? */
+    if ( current_cpu_data.family != 6 )
     {
         printk(XENLOG_WARNING "VPMU: only family 6 is supported\n");
         return ERR_PTR(-EINVAL);
@@ -958,7 +960,7 @@ const struct arch_vpmu_ops *__init core2_vpmu_init(void)
               sizeof(struct xen_pmu_cntr_pair) * arch_pmc_cnt;
 
     /* TODO: It's clearly incorrect for this to quirk all Intel Fam6 CPUs. */
-    pmc_quirk = current_cpu_data.x86 == 6;
+    pmc_quirk = current_cpu_data.family == 6;
 
     if ( sizeof(struct xen_pmu_data) + sizeof(uint64_t) * fixed_pmc_cnt +
          sizeof(struct xen_pmu_cntr_pair) * arch_pmc_cnt > PAGE_SIZE )
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 19:53:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 19:53:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245961.1545317 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxsHo-0000uT-2T; Wed, 04 Mar 2026 19:53:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245961.1545317; Wed, 04 Mar 2026 19:53:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxsHn-0000uM-VS; Wed, 04 Mar 2026 19:53:35 +0000
Received: by outflank-mailman (input) for mailman id 1245961;
 Wed, 04 Mar 2026 19:53:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=nfWr=BE=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1vxsHm-0007ik-2A
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 19:53:34 +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 d1f4b33e-1803-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 20:53:32 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by DM4PR03MB6079.namprd03.prod.outlook.com (2603:10b6:5:392::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Wed, 4 Mar
 2026 19:53:28 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9678.016; Wed, 4 Mar 2026
 19:53: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: d1f4b33e-1803-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UBu/gcvu514ASS/FLMZkWnmlcogcqamezZYztaRFnhx2dRj+ASBIxo5gOyWVZsjDrO+Hb+m7pOa3CGkS+s4/fBDwcSqFY7eUjDraF1S4DFgTfNS2UPhjFdVHiXSeUoyBDoFyu71Qr21NINQzkbF5MZY149fHDr2gSAPH/JPb8E32CoaXzryDNbFBhO0/+ACcrcH5Gj1BV3IwMRqOh00FV+rBVSASB5iVB/c/60s5dtEB4lM3yioH/xJo+opSOwQkaFrR/7PxFI46DgSMgDMLbdfUguvbUMk9q6mxcnFSb0a6d0etbHqVlnAzG+UFnOkRxUx7NNKNQF6H61XgqHqyFw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vihGUYdNoEcTWfXNkSEwuKOxDjEQZzvneznmn0lSWQc=;
 b=Ji1w94j17Aux3uK36xA/s3RbT8igmqKNIcbyzb1xWCucauSke6xSanasWq5NYFng+kWZwnZvIXVBVhYhS12Q+myrwAzqvTOIeWRRIG8j+D+ja39WBllxiF1fzaelUUbJppHYg+5xgxl0+V/aTme+UM4mopRGPLjEBu2bg0mSCy4WtR3gZ1BURxWq81PyU7kLf75P1DEIXES6iIQ7sohef7dRKxR5egiVRvqClbVE4weW8HOCfCMzjzThKPQ4XyCUqnILwT47vsWecMkEGSik0zmW3cSHstuz8Bxg+2YbxDIW4qScTqnGn5Xt5i6vvomPFHfEuf7XZGRPpxD3W3ueew==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vihGUYdNoEcTWfXNkSEwuKOxDjEQZzvneznmn0lSWQc=;
 b=tSKsiaI3c6eFxQ6bBFnF/B+yclwvm52O2v6dDNhFn0EZMTKjHmnninqKdXlmbKXSa9NzwqHstAU1hePe7tMrJ00ZaFc5rvTs2aB5AswHNq5RIHsBIKrdBUgvGNGN6yRx9NqEiU7hKKo+56G+oWjHhUOkHa/2VV/+uOqAN8X7b+Q=
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 5/6] x86: Remove x86 prefixed names misc
Date: Wed,  4 Mar 2026 19:53:49 +0000
Message-ID: <20260304195350.837593-6-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20260304195350.837593-1-kevin.lampis@citrix.com>
References: <20260304195350.837593-1-kevin.lampis@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO6P123CA0006.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:338::13) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|DM4PR03MB6079:EE_
X-MS-Office365-Filtering-Correlation-Id: 4f321e42-7525-474a-9432-08de7a27b470
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:
	MZ+JnYsIJBZNMv6GEZCZKn6QC9Zs67wasgC3Qr5wbD+ybRJl78bF5Z9OmiZ274iL8s57PnZ/SIkh0uvrYGoFvxz3kO7W+sHdE95jQ1dK5O8iMqs0n0SKi39wHbuBtfw3TSYE6Lu3qVGq8X7MjejxpmCebG88+lM3PM2BuKAtmmgqC5WzHlN7HjRMhKFv+CawtL8qpjfGAC4KBYrcZLw/5JsWqaxdQnNZkoJZrymAORM5HLuNziCvtTGJcxYp7VuNHqDqBJQ/F1CfMwyodFIxa1b4YAIruy7SUSLHZBJk+gugldGyHmd1aUNQqR8oq8NXhCKAl4gdfZywyFs/OP76GgVF+KUzTZhFLsaytD0d3y57Rv4RNlBnrQYRWbUEFI0TSLJwHNtYve6VrwEPcFie7KTkt1CDmFmwBe1DGhKF59+0qwxxjpOMh3wlcUN6PitJgnm/HXomsHmhMlFU3cQukoTarncsBgNaUP8THRpyR5moBolJtZqKWMHzaD+uWOj2qu3Sf0xJo8PSuzlylOI7+HcUYQ4OUhYe5YglKz7yvLeDULS6Lq5knfHj5cXzh4yu0AXpi8UxGeOyNPhYRiJ4d8yoQidEFMbPDOv06rXl6YC0FN4AYY2g/Hjadje11hAUBLpbMt3bgwPYZNFYsEGaWfIUuWgTz6rYYgmH4q9GBJo3BIOCjmoiJ0jFNjC/TXuIHjEC52OLb902qM6PomeWrvfBLEuzDjQmQF3TA1nx+I4=
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?p1WaoMyBpueLuya4zqEDf2Xk0rXsuXHgG1Oy/Iv5TlFEUswvPkzy4wUl0YRa?=
 =?us-ascii?Q?tyxeRWoAc/LaIdXSKWhky3KbcyctLwiTKsAj/7T1PAYkZAJWD4h51JoodPKB?=
 =?us-ascii?Q?tSzMTODKZO8C385oyTAvR2Hxwo9PytyAruNprRlZIfPDfswkKUDpke95o5rG?=
 =?us-ascii?Q?hqbX4adbHqvT6cmKEyDObx368Y+Z+oDjwHVCFgUwlYOL+T2ne1F1ht7PbsOH?=
 =?us-ascii?Q?IvubySTxB3zhEbXO0ebcTJDVel8287Sv86xIl0fJWpXH7E22PoM4duCxmTiD?=
 =?us-ascii?Q?npEgx5w4rbxGD9qG1TTnH+BWp+n9g8AraQ+rf6tir2HESSaHQeiHNLW0DlNx?=
 =?us-ascii?Q?asflRwSlGkCQKZ4lfmM+k50vL6wulya1v4uGEvDZmgP2m8BhKBjOcKLEdxKs?=
 =?us-ascii?Q?8xtJNIyQcp9ych20mmsL0YgC2TnoWI1EatUWTr249YXEO7n3+EwhlslMM14y?=
 =?us-ascii?Q?edeHGyX1r12VecsKwVEVQ03Xzij4Uq7haKEBXi544PtObE1Ds0xI88i0jlDH?=
 =?us-ascii?Q?BNsFe3ChT2tH+qG24I7cced99/HIcRJEEgrXIDCUm1YHp39KbhoOHSw2bNhG?=
 =?us-ascii?Q?JukGE/zV579j0+YOvkrILPgpwzgGG1qiu1ObTvId4SoXBc8DfK0CSJlSSr8f?=
 =?us-ascii?Q?2YA/9UQ+I6NfdFsQXqILvRdRkND792M+n8NT6j5o4YAkLxTo3yX9qDe4OoRX?=
 =?us-ascii?Q?Ydn0ykAlGNHhsjI3Hjs1ixYSJJ9fOiAsym4y2ssltj6J1o9QX+dTs+skPw4T?=
 =?us-ascii?Q?aN/ES06KOVAzN6QP5oYGghinfGoJ+JpYxiA17lhyCnWgldNv+W9Juf/Y6vpq?=
 =?us-ascii?Q?LVA7W6Ai1dOu+tYQR0eNWsSNTSNZLJwzFp4sRe/pJU3u1JumA6lBv+ge5rvV?=
 =?us-ascii?Q?K+XEfr3AktNDdOq4YQcPbpIwpIcbpNKovU3Ly8m/TxABFb8KpcZgv5ztUI3O?=
 =?us-ascii?Q?j0F9F9g0GlTlE4GzSpWPlhDK1DwyYOVzNqoxm4hO09tiAGr7q79woL8iEGn2?=
 =?us-ascii?Q?l/WtjRIl5b5ZsAD0dWnDmt55TcgxBOxI0+5tYlF9mnwGrW2b4AQppJvpufa9?=
 =?us-ascii?Q?eSAEUwXkziZT0w683ShfK32AfwrB9QdsrT/yWPr2LFLydadFa9Qxy3mCG6qm?=
 =?us-ascii?Q?+RgYqa8y8qFpAFxN1nabOQf0d2eg/aDo6MH3RwHrl8SWT8TocF1PHy5YzOFh?=
 =?us-ascii?Q?lhJcWzCDaf38+rpLrXhb+/qJKscvactSnoHMvY6ThHKn5hzQpbweWIYarSAH?=
 =?us-ascii?Q?2pPdugbBI4ebn9wyHSzwH8Np0atzr3Jj8qz14KnF+pE23ztxcn3PybZnzpHG?=
 =?us-ascii?Q?CV7HWMibsVL/nYnwzwKMVXnPRcu392eNsSyBxZGI03CImDSiM1H1413fJweE?=
 =?us-ascii?Q?QWavWCFKAFKyKLw+kh+Ys4gZOvUeMF910YQmF+AU2LbIkw4d0jZ+1xWVV6Ap?=
 =?us-ascii?Q?6EGiiC7NMKF59ALek3Y2dX8DgYguWe6ujfCLwpjD2Bn64erOyYK9nHMF+7LB?=
 =?us-ascii?Q?NPcGgvA9VVgTxW2JPXzojDOL+x004407BscKijpDmvXokK520norgcoaWHg1?=
 =?us-ascii?Q?pSdxmZkFDlRPDL8lOa09a3NfaW7U3oa9N5B7+aI6g/cnLmNaBesxVz1ecfnb?=
 =?us-ascii?Q?6R1cpPCH3L05zS1mc9pRi9gQPubis9hrOWNcxdHXNTaifulKfpHrXiOpv3v9?=
 =?us-ascii?Q?PvVklbwqsWapq1XzKQgqh5l/Y2++9Xe6o9Lu1jWO2M5CddwNIBC8nQidNjfp?=
 =?us-ascii?Q?s0MydMRlhA=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4f321e42-7525-474a-9432-08de7a27b470
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 19:53:28.3868
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: IjpGxxJlbP2Lx8Yhu7eMd6Yuh+rfor4nZFl+B2VrNyCGYYKXmjptSEJp9RMQzQLmF3EkF9GGxRRIbowla7KpAQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6079

struct cpuinfo_x86
  .x86        => .family
  .x86_vendor => .vendor
  .x86_model  => .model
  .x86_mask   => .stepping

No functional change.

This work is part of making Xen safe for Intel family 18/19.

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
 xen/arch/x86/alternative.c               |  8 ++++----
 xen/arch/x86/apic.c                      |  2 +-
 xen/arch/x86/cpuid.c                     |  2 +-
 xen/arch/x86/dom0_build.c                |  4 ++--
 xen/arch/x86/domain.c                    | 12 ++++++------
 xen/arch/x86/e820.c                      |  2 +-
 xen/arch/x86/i8259.c                     |  2 +-
 xen/arch/x86/irq.c                       |  4 ++--
 xen/arch/x86/mpparse.c                   |  6 +++---
 xen/arch/x86/msr.c                       |  4 ++--
 xen/arch/x86/nmi.c                       | 12 ++++++------
 xen/arch/x86/platform_hypercall.c        |  8 ++++----
 xen/arch/x86/pv/domain.c                 |  2 +-
 xen/arch/x86/setup.c                     |  6 +++---
 xen/arch/x86/traps-setup.c               |  4 ++--
 xen/arch/x86/tsx.c                       |  4 ++--
 xen/drivers/passthrough/amd/iommu_init.c |  6 +++---
 17 files changed, 44 insertions(+), 44 deletions(-)

diff --git a/xen/arch/x86/alternative.c b/xen/arch/x86/alternative.c
index 9f844241bc..5ed0c26725 100644
--- a/xen/arch/x86/alternative.c
+++ b/xen/arch/x86/alternative.c
@@ -89,7 +89,7 @@ static bool init_or_livepatch_read_mostly toolchain_nops_are_ideal;
 
 static void __init arch_init_ideal_nops(void)
 {
-    switch ( boot_cpu_data.x86_vendor )
+    switch ( boot_cpu_data.vendor )
     {
     case X86_VENDOR_INTEL:
         /*
@@ -97,10 +97,10 @@ static void __init arch_init_ideal_nops(void)
          * actually perform better with the "k8_nops" than with the SDM-
          * recommended NOPs.
          */
-        if ( boot_cpu_data.x86 != 6 )
+        if ( boot_cpu_data.family != 6 )
             break;
 
-        switch ( boot_cpu_data.x86_model )
+        switch ( boot_cpu_data.model )
         {
         case 0x0f ... 0x1b:
         case 0x1d ... 0x25:
@@ -111,7 +111,7 @@ static void __init arch_init_ideal_nops(void)
         break;
 
     case X86_VENDOR_AMD:
-        if ( boot_cpu_data.x86 <= 0xf )
+        if ( boot_cpu_data.family <= 0xf )
             ideal_nops = k8_nops;
         break;
     }
diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
index fb38be7ec3..d69ef9e16a 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 ((boot_cpu_data.vendor == X86_VENDOR_INTEL) && (boot_cpu_data.family == 15))
         value &= ~APIC_SPIV_FOCUS_DISABLED;
     else
         value |= APIC_SPIV_FOCUS_DISABLED;
diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
index 5decfad8cd..6e9b15c9c3 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 ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
              !vpmu_available(v) )
             *res = EMPTY_LEAF;
         else
diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 0b467fd4a4..864dd9e53e 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -572,10 +572,10 @@ int __init dom0_setup_permissions(struct domain *d)
             rc |= iomem_deny_access(d, mfn, mfn);
     }
     /* HyperTransport range. */
-    if ( boot_cpu_data.x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
+    if ( boot_cpu_data.vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
     {
         mfn = paddr_to_pfn(1UL <<
-                           (boot_cpu_data.x86 < 0x17 ? 40 : paddr_bits));
+                           (boot_cpu_data.family < 0x17 ? 40 : paddr_bits));
         rc |= iomem_deny_access(d, mfn - paddr_to_pfn(3UL << 32), mfn - 1);
     }
 
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 8eb1509782..b36e113724 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -319,7 +319,7 @@ void domain_cpu_policy_changed(struct domain *d)
             if ( cpu_has_htt )
                 edx |= cpufeat_mask(X86_FEATURE_HTT);
 
-            switch ( boot_cpu_data.x86_vendor )
+            switch ( boot_cpu_data.vendor )
             {
             case X86_VENDOR_INTEL:
                 /*
@@ -372,7 +372,7 @@ void domain_cpu_policy_changed(struct domain *d)
         {
             uint64_t mask = cpuidmask_defaults._6c;
 
-            if ( boot_cpu_data.x86_vendor == X86_VENDOR_AMD )
+            if ( boot_cpu_data.vendor == X86_VENDOR_AMD )
                 mask &= (~0ULL << 32) | p->basic.raw[6].c;
 
             d->arch.pv.cpuidmasks->_6c = mask;
@@ -387,7 +387,7 @@ void domain_cpu_policy_changed(struct domain *d)
              * wholesale from the policy, but clamp the features in 7[0].ebx
              * per usual.
              */
-            if ( boot_cpu_data.x86_vendor &
+            if ( boot_cpu_data.vendor &
                  (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
                 mask = (((uint64_t)p->feat.max_subleaf << 32) |
                         ((uint32_t)mask & p->feat._7b0));
@@ -400,7 +400,7 @@ void domain_cpu_policy_changed(struct domain *d)
             uint64_t mask = cpuidmask_defaults.Da1;
             uint32_t eax = p->xstate.Da1;
 
-            if ( boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+            if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
                 mask &= (~0ULL << 32) | eax;
 
             d->arch.pv.cpuidmasks->Da1 = mask;
@@ -427,7 +427,7 @@ void domain_cpu_policy_changed(struct domain *d)
             if ( !(p->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
                 edx &= ~CPUID_COMMON_1D_FEATURES;
 
-            switch ( boot_cpu_data.x86_vendor )
+            switch ( boot_cpu_data.vendor )
             {
             case X86_VENDOR_INTEL:
                 mask &= ((uint64_t)edx << 32) | ecx;
@@ -457,7 +457,7 @@ void domain_cpu_policy_changed(struct domain *d)
         cpu_policy_updated(v);
 
         /* If PMU version is zero then the guest doesn't have VPMU */
-        if ( boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
+        if ( boot_cpu_data.vendor == X86_VENDOR_INTEL &&
              p->basic.pmu_version == 0 )
             vpmu_destroy(v);
     }
diff --git a/xen/arch/x86/e820.c b/xen/arch/x86/e820.c
index ca577c0bde..872208ab37 100644
--- a/xen/arch/x86/e820.c
+++ b/xen/arch/x86/e820.c
@@ -426,7 +426,7 @@ static uint64_t __init mtrr_top_of_ram(void)
 
     /* By default we check only Intel systems. */
     if ( e820_mtrr_clip == -1 )
-        e820_mtrr_clip = boot_cpu_data.x86_vendor == X86_VENDOR_INTEL;
+        e820_mtrr_clip = boot_cpu_data.vendor == X86_VENDOR_INTEL;
 
     if ( !e820_mtrr_clip )
         return 0;
diff --git a/xen/arch/x86/i8259.c b/xen/arch/x86/i8259.c
index 5c7e21a751..d2a08661f8 100644
--- a/xen/arch/x86/i8259.c
+++ b/xen/arch/x86/i8259.c
@@ -419,7 +419,7 @@ void __init init_IRQ(void)
          * the interrupt.
          */
         cpumask_copy(desc->arch.cpu_mask,
-                     (boot_cpu_data.x86_vendor &
+                     (boot_cpu_data.vendor &
                       (X86_VENDOR_AMD | X86_VENDOR_HYGON) ? &cpumask_all
                                                           : cpumask_of(cpu)));
         desc->arch.vector = LEGACY_VECTOR(irq);
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index cc2934bfca..739fc04bd1 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -2011,8 +2011,8 @@ void do_IRQ(struct cpu_user_regs *regs)
                      * interrupts have been delivered to CPUs
                      * different than the BSP.
                      */
-                    (boot_cpu_data.x86_vendor & (X86_VENDOR_AMD |
-                                                 X86_VENDOR_HYGON))) &&
+                    (boot_cpu_data.vendor & (X86_VENDOR_AMD |
+                                             X86_VENDOR_HYGON))) &&
                    bogus_8259A_irq(vector - FIRST_LEGACY_VECTOR)) )
             {
                 printk("CPU%u: No irq handler for vector %02x (IRQ %d%s)\n",
diff --git a/xen/arch/x86/mpparse.c b/xen/arch/x86/mpparse.c
index c1171f7a3a..1b41aa573f 100644
--- a/xen/arch/x86/mpparse.c
+++ b/xen/arch/x86/mpparse.c
@@ -511,9 +511,9 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type)
 	/* Either an integrated APIC or a discrete 82489DX. */
 	processor.mpc_apicver = mpc_default_type > 4 ? 0x10 : 0x01;
 	processor.mpc_cpuflag = CPU_ENABLED;
-	processor.mpc_cpufeature = (boot_cpu_data.x86 << 8) |
-				   (boot_cpu_data.x86_model << 4) |
-				   boot_cpu_data.x86_mask;
+	processor.mpc_cpufeature = (boot_cpu_data.family << 8) |
+				   (boot_cpu_data.model << 4) |
+				   boot_cpu_data.stepping;
 	processor.mpc_featureflag =
             boot_cpu_data.x86_capability[FEATURESET_1d];
 	processor.mpc_reserved[0] = 0;
diff --git a/xen/arch/x86/msr.c b/xen/arch/x86/msr.c
index ad75a2e108..6a97be59d5 100644
--- a/xen/arch/x86/msr.c
+++ b/xen/arch/x86/msr.c
@@ -170,7 +170,7 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
 
     case MSR_IA32_PLATFORM_ID:
         if ( !(cp->x86_vendor & X86_VENDOR_INTEL) ||
-             !(boot_cpu_data.x86_vendor & X86_VENDOR_INTEL) )
+             !(boot_cpu_data.vendor & X86_VENDOR_INTEL) )
             goto gp_fault;
         rdmsrl(MSR_IA32_PLATFORM_ID, *val);
         break;
@@ -190,7 +190,7 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
          * the guest.
          */
         if ( !(cp->x86_vendor & (X86_VENDOR_INTEL | X86_VENDOR_AMD)) ||
-             !(boot_cpu_data.x86_vendor &
+             !(boot_cpu_data.vendor &
                (X86_VENDOR_INTEL | X86_VENDOR_AMD)) ||
              rdmsr_safe(MSR_AMD_PATCHLEVEL, val) )
             goto gp_fault;
diff --git a/xen/arch/x86/nmi.c b/xen/arch/x86/nmi.c
index a0c9194ff0..447fac19d3 100644
--- a/xen/arch/x86/nmi.c
+++ b/xen/arch/x86/nmi.c
@@ -216,12 +216,12 @@ void disable_lapic_nmi_watchdog(void)
 {
     if (nmi_active <= 0)
         return;
-    switch (boot_cpu_data.x86_vendor) {
+    switch (boot_cpu_data.vendor) {
     case X86_VENDOR_AMD:
         wrmsrns(MSR_K7_EVNTSEL0, 0);
         break;
     case X86_VENDOR_INTEL:
-        switch (boot_cpu_data.x86) {
+        switch (boot_cpu_data.family) {
         case 6:
             wrmsrns(MSR_P6_EVNTSEL(0), 0);
             break;
@@ -362,7 +362,7 @@ static void setup_p4_watchdog(void)
         clear_msr_range(0x3F1, 2);
     /* MSR 0x3F0 seems to have a default value of 0xFC00, but current
        docs doesn't fully define it, so leave it alone for now. */
-    if (boot_cpu_data.x86_model >= 0x3) {
+    if (boot_cpu_data.model >= 0x3) {
         /* MSR_P4_IQ_ESCR0/1 (0x3ba/0x3bb) removed */
         clear_msr_range(0x3A0, 26);
         clear_msr_range(0x3BC, 3);
@@ -387,16 +387,16 @@ void setup_apic_nmi_watchdog(void)
     if ( nmi_watchdog == NMI_NONE )
         return;
 
-    switch ( boot_cpu_data.x86_vendor )
+    switch ( boot_cpu_data.vendor )
     {
     case X86_VENDOR_AMD:
         setup_k7_watchdog();
         break;
 
     case X86_VENDOR_INTEL:
-        switch (boot_cpu_data.x86) {
+        switch (boot_cpu_data.family) {
         case 6:
-            setup_p6_watchdog((boot_cpu_data.x86_model < 14) 
+            setup_p6_watchdog((boot_cpu_data.model < 14)
                               ? P6_EVENT_CPU_CLOCKS_NOT_HALTED
                               : CORE_EVENT_CPU_CLOCKS_NOT_HALTED);
             break;
diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index cd4f0ae5e5..0431f875af 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -104,7 +104,7 @@ static bool msr_read_allowed(unsigned int msr)
      * the platform doesn't actually support this MSR.
      */
     case MSR_TEMPERATURE_TARGET:
-        return boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
+        return boot_cpu_data.vendor == X86_VENDOR_INTEL &&
                host_cpu_policy.basic.digital_temp_sensor;
 
     case MSR_PACKAGE_THERM_STATUS:
@@ -688,9 +688,9 @@ ret_t do_platform_op(
             const struct cpuinfo_x86 *c = &cpu_data[ver->xen_cpuid];
 
             memcpy(ver->vendor_id, c->x86_vendor_id, sizeof(ver->vendor_id));
-            ver->family = c->x86;
-            ver->model = c->x86_model;
-            ver->stepping = c->x86_mask;
+            ver->family = c->family;
+            ver->model = c->model;
+            ver->stepping = c->stepping;
         }
 
         ver->max_present = cpumask_last(&cpu_present_map);
diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index d16583a745..0fd05c7059 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -174,7 +174,7 @@ static int __init cf_check pge_init(void)
 {
     if ( opt_global_pages == -1 )
         opt_global_pages = !cpu_has_hypervisor ||
-                           !(boot_cpu_data.x86_vendor &
+                           !(boot_cpu_data.vendor &
                              (X86_VENDOR_AMD | X86_VENDOR_HYGON));
 
     return 0;
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 27c63d1d97..e5f1b4b787 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1407,7 +1407,7 @@ void asmlinkage __init noreturn __start_xen(void)
          * supervisor shadow stacks are now safe to use.
          */
         bool cpu_has_bug_shstk_fracture =
-            boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
+            boot_cpu_data.vendor == X86_VENDOR_INTEL &&
             !boot_cpu_has(X86_FEATURE_CET_SSS);
 
         /*
@@ -2038,10 +2038,10 @@ void asmlinkage __init noreturn __start_xen(void)
 
     /* Do not enable SMEP/SMAP in PV shim on AMD and Hygon by default */
     if ( opt_smep == -1 )
-        opt_smep = !pv_shim || !(boot_cpu_data.x86_vendor &
+        opt_smep = !pv_shim || !(boot_cpu_data.vendor &
                                  (X86_VENDOR_AMD | X86_VENDOR_HYGON));
     if ( opt_smap == -1 )
-        opt_smap = !pv_shim || !(boot_cpu_data.x86_vendor &
+        opt_smap = !pv_shim || !(boot_cpu_data.vendor &
                                  (X86_VENDOR_AMD | X86_VENDOR_HYGON));
 
     if ( !opt_smep )
diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
index d77be8f839..1aff0327dc 100644
--- a/xen/arch/x86/traps-setup.c
+++ b/xen/arch/x86/traps-setup.c
@@ -243,10 +243,10 @@ static void __init init_ler(void)
      * Intel Pentium 4 is the only known CPU to not use the architectural MSR
      * indicies.
      */
-    switch ( boot_cpu_data.x86_vendor )
+    switch ( boot_cpu_data.vendor )
     {
     case X86_VENDOR_INTEL:
-        if ( boot_cpu_data.x86 == 0xf )
+        if ( boot_cpu_data.family == 0xf )
         {
             msr = MSR_P4_LER_FROM_LIP;
             break;
diff --git a/xen/arch/x86/tsx.c b/xen/arch/x86/tsx.c
index fe9f0ab4f7..38371487b9 100644
--- a/xen/arch/x86/tsx.c
+++ b/xen/arch/x86/tsx.c
@@ -148,8 +148,8 @@ void tsx_init(void)
             {
                 printk(XENLOG_ERR
                        "FIRMWARE BUG: CPU %02x-%02x-%02x, ucode 0x%08x: RTM_ALWAYS_ABORT vs RTM mismatch\n",
-                       boot_cpu_data.x86, boot_cpu_data.x86_model,
-                       boot_cpu_data.x86_mask, this_cpu(cpu_sig).rev);
+                       boot_cpu_data.family, boot_cpu_data.model,
+                       boot_cpu_data.stepping, this_cpu(cpu_sig).rev);
 
                 setup_clear_cpu_cap(X86_FEATURE_RTM_ALWAYS_ABORT);
                 setup_clear_cpu_cap(X86_FEATURE_TSX_FORCE_ABORT);
diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index 00d2c46cbc..d77dd85112 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -840,9 +840,9 @@ static void amd_iommu_erratum_746_workaround(struct amd_iommu *iommu)
 {
     u32 value;
 
-    if ( (boot_cpu_data.x86 != 0x15) ||
-         (boot_cpu_data.x86_model < 0x10) ||
-         (boot_cpu_data.x86_model > 0x1f) )
+    if ( (boot_cpu_data.family != 0x15) ||
+         (boot_cpu_data.model < 0x10) ||
+         (boot_cpu_data.model > 0x1f) )
         return;
 
     pci_conf_write32(iommu->sbdf, 0xf0, 0x90);
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 19:53:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 19:53:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1245965.1545323 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxsHo-0000xO-Ca; Wed, 04 Mar 2026 19:53:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1245965.1545323; Wed, 04 Mar 2026 19:53:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxsHo-0000vh-71; Wed, 04 Mar 2026 19:53:36 +0000
Received: by outflank-mailman (input) for mailman id 1245965;
 Wed, 04 Mar 2026 19:53: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=nfWr=BE=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1vxsHn-0007ik-KQ
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 19:53:35 +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 d39365d0-1803-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 20:53:34 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by DM4PR03MB6079.namprd03.prod.outlook.com (2603:10b6:5:392::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Wed, 4 Mar
 2026 19:53:32 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9678.016; Wed, 4 Mar 2026
 19:53: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: d39365d0-1803-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Z+DpwdNYvCUbuEZvQetU/o2rC+YTGyy7slJFQUX8uJS93iAevtdVC3v43og9tGp0SMS0D7Hw2wDt5ILyHe8WMhOdBaIxYly6PtZ9VcjsWhE3Pce5MZ37Bd7VUL2GCjSqkZHIA0q+q6osuFel0h6bewvuofefW4A2vdnTaZ4eNW1ARbLEHw0smk6abBJnoPCbXushu64o6okvfMWSmexbhKWkB4ehMJvctqvRSX6XoEUpzQki8Qxl9xtoVLt+VGx7AxQiXMaPraqPVCVCexn5hPul7W8xgVKliRfG6vvJcAueojknb7hFZ8WxoD8HxePhTr920mDHPst4GKvzSBBK7w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nnVnsWYWKG7SVBrj/TXgZDuFUFT7AP5TCSelHpEbdVI=;
 b=W+NuaJcYpALgg+ksN8YfAKWxHeLghoxvKf4kSgFPjYqCLjeg6URo/lTpFaqrM2fT3a+FdHQuv0uYAwrm2/lLLlT5MYI/4h+k36zfvh6a/bays+3iCfpXQcJd71RKdXzlDyzx6fzYlmzpnl1zvuXXgqxWdvE7BQrP6zff9XJztl2X5pC2AWqXS0YGOB2I/3RIdFf1vvWxFm9CThze1910sBjBDZhXbBPtP9cOcMrSsL92KUjnkMYI8Bz4gMhSlZemCkjrApgG5dDwZ5fYzdS7d1rTfIN1OrSiw0EB+CKOzkvYtz0NMzkflt9at8In8qcT2a6a5HYnzTibs3n7SJF4Nw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nnVnsWYWKG7SVBrj/TXgZDuFUFT7AP5TCSelHpEbdVI=;
 b=LEBG8FLkSzNT/KVmvoYe+hqRNLdSLmiZkaiSiO9OTdMh9fH3XE1y+rfuNANmWQhh1gZIt29CtGvXb1+1xvOAaqNq9/zdQnq14y8HMv6SNA5R0AxxcZFLJjvYJHGxYyTtWUu/eSpgMtmfKioxeDNJogm3nELSI2QbunjPSU+RSE4=
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 6/6] x86: Remove x86 prefixed names from cpuinfo
Date: Wed,  4 Mar 2026 19:53:50 +0000
Message-ID: <20260304195350.837593-7-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20260304195350.837593-1-kevin.lampis@citrix.com>
References: <20260304195350.837593-1-kevin.lampis@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO6P123CA0014.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:338::17) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|DM4PR03MB6079:EE_
X-MS-Office365-Filtering-Correlation-Id: 9feeda4e-46d0-475b-0d4c-08de7a27b6f2
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:
	0BToux3SEX8HOCLeeSSk6r2QIFwTw8ptRRbrGV7CwdCDwNSnEENQtqasyhzvKERVTPKV4/d0yzp4246eLTwtyoMLHF6r4M4qBMec0Q6Neq2NwFvbaEPBunEXG3WbBT2CIg2nP4Fl9L79bXkaDjwPYa6HZWovCMYBGh8lKb3rzTELhn72/XAY3LvYxcf10s3i9OaoIzJG4tXg/tJVznXeVXjoUyjW6FMFTDE2vsC5TfEPaausPyEjO7Jimmfv9WAfDae15m/ZSRSb9h/SYifbLWp8fZz6pkHuHNrvNwLVhQzqELYCOS/LEWSzppMV0dHtQzP01XwZJKGLOYmddySv3rOwII4Tqd0usvS+opNpcSK190cQyRCyPxXdPNgqR0p5E/bwkWT1yk+g2q7PGJgbEdfRKXT7jq9lL30crbm1pQMmfdvhJUcfI7sqwIapoXYoeZYOenMDj5pFJnzmPRGgfivri1vS6e9x+uy1uJMCfg0HstuDVbrpFsKXh9G/o2RrbOkijP8L/odo8HiDuDyyWLXhAYpzjvTnCzRb3cf19MdJwsDS3Z76DQ8mccVyUYGzKeNOvKTqipqr6EXSKlRZg8Z2RlXpBCZpjxVO41KQJ33i2QT1FVQ8EiWoRCRKgPUVIvBNI/m/a4UwbmbH0vC+GluNQRnoRjBA/PsuON2EfqDAleURh8RlNXpFyHGhxjWGiLYW9YVJZ+jxUDKDXrrJwLZM14fhQihjgPWgzNNXjLA=
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?loIK/d+NJUcGvTov20LAbL4h+0pMICbvhCbwbVlIdxCoUHH9W3NZir6ndFxe?=
 =?us-ascii?Q?tac9gWMcu3d7b/YoRLDbYPzvniQTxllMfvZLtXKAsSLofr/MGlmcAw+FXa6F?=
 =?us-ascii?Q?L9JCqpgwF3cUqf0dQ2PL7kCMtLYAP64OmCFZtehKhR+sBg8M0rW8/+Em2hX4?=
 =?us-ascii?Q?CCHbwX6HaL0EUZL77zwFNIZJ4up2ucW+ldnprEXFLuiqGdhZJ9mVtf2uRtar?=
 =?us-ascii?Q?hGvpK57bGXO7BsrXxPTvlu+vN5ZfcQA9JDBtlCgypSDS2p6nGV7jj9UOC7AC?=
 =?us-ascii?Q?Nj8S6BKxX9cuADNr0OdUaZT0eNwZP/xkRGJCLpUjKkdZisjP+EjQMSWTdXZw?=
 =?us-ascii?Q?QEeoFd+6cLNCsIZDZraz0u69WZbMO+05mA0aet5x0OpWFs5CeDKDjHRYSs8H?=
 =?us-ascii?Q?+6z2TmO5DHg0WQKP1ejoSO+kDV0gmC1QsRDcvdPM5lRuX2QP332WD+Nj/muj?=
 =?us-ascii?Q?rmzOg0+aslSdCeHnvAkKiEjw5GRTazILyqJ29clfNPkTjYMERG3NKdwktu/A?=
 =?us-ascii?Q?8SSwKSX9SKW1R4TPUQ+8wxPJCbIZ/4+XQXncR7Ot2uwpfrvLBVRVCHOoLuuz?=
 =?us-ascii?Q?wH22YAu3S/5TJm5exuzKQTK2WnEiPRJV6gB64D/ZqcxeIwwL1F0fw0i7Vp6h?=
 =?us-ascii?Q?yb/yMM61AXif9eG1Tn2mIGtbKJ5LkzDnnoj5pAWTiIgq2E7GxERt9EocEoxh?=
 =?us-ascii?Q?ZTMNinw/tj78e9PLEpaNmduYJJo3njCk39i7d2chaI9Ib9EINQ0+lhuxNJqc?=
 =?us-ascii?Q?Woj/zIf290KdQWIfWbqaZffrB+6+LoExsVgFvPWrTKw9IKpnX1J73ARdOy6D?=
 =?us-ascii?Q?Y9iTI8oMBXX+cQrDt79YUZ0KhIG0tVefB7gx/pjT48SEe4/DUCcQ2AFJl53i?=
 =?us-ascii?Q?tJEkbokwHYl+s+eg0kgkxJQW9pnHQEuwPaO8fD7fXPIGlAhxyxIP3rmaw54A?=
 =?us-ascii?Q?4SBeSw17nbPQZhDsPGMIVEpv30CPJoFpZ73qb3tV0z3R81aCIFvpBpiLc6aA?=
 =?us-ascii?Q?IWt9wnYL4ze96PT8WpLJNrJ7vFDyFIMMSedLIPx6TG4xl8kISABl7D0M2YR+?=
 =?us-ascii?Q?dvRiBLPXO5bkCf3N1AJu7CHSOMDWkJWG4aAcgmRWBvA2V9nZtFa2mVbo0+9c?=
 =?us-ascii?Q?rqlxVD85t3vZVUFeCFHkNqIKyJZ0lzQidrKN/lcBLjIk3rI0G1yuPl9r8sG+?=
 =?us-ascii?Q?Ng2Uw87lmRfyEtGNQvhfQU+FLybtueZXMOCr7kpUaTqhowY37dX1t4kC4blK?=
 =?us-ascii?Q?90m7epHt56tgS6XLZjKpGYQCX0cI4QxBfG7m9A0Dhkv3e3siEQOOUyluOD3V?=
 =?us-ascii?Q?VN6rzCxKb+SOadtJ+4m6n8LJtPu+l8xlTZpn92CxQMrN8vjsyKeKEUbmebit?=
 =?us-ascii?Q?2dGliWxFgsG1VvlXltBTAkh1ScaYR+lGSCUfO2m/lkLAja8PDZmPNtQ6bqdm?=
 =?us-ascii?Q?Fk/d//IEfiU0wTqvjgka3GK39b73rJYkDQbPYj9+r+TjnWIIbFSfnOr6+VsI?=
 =?us-ascii?Q?AISJstRWlHIENo+VQCqHZS1YwdueBJyrrU2VcNSqMm5WT+6IJfw0pQiQeOVd?=
 =?us-ascii?Q?PgZXBo/xEJgsvtlVzoW5XpRUbYYNS+VL2fZm4jnu+ZaS2InAksVZr055zRHm?=
 =?us-ascii?Q?lFNYbbRJtE93LQIR3f4PZ617YNZkMb75ZqauISn07GcqqpgLkApiRqH6CX2B?=
 =?us-ascii?Q?O0E2TRSf//VPbF0ccWCucFMfHnWcuU+/eR1Rgr0JT+VyqAjkS3HYWAoBuWKB?=
 =?us-ascii?Q?nfkDkRLHmw=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9feeda4e-46d0-475b-0d4c-08de7a27b6f2
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 19:53:32.5625
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: bz+dXb/uCkyyrZNw5sh0LIA1sxMw1pFcDNUljzF4ZgKoBEimyNCTj9l1TMBTFqTtavgYueJP6SftzFr5MOed3w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6079

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
With the first patch for intel.c this now compiles.
https://lore.kernel.org/xen-devel/20251124111942.1325635-1-kevin.lampis@citrix.com/
---
 xen/arch/x86/include/asm/cpufeature.h | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/xen/arch/x86/include/asm/cpufeature.h b/xen/arch/x86/include/asm/cpufeature.h
index dcd223d84f..09b1118cea 100644
--- a/xen/arch/x86/include/asm/cpufeature.h
+++ b/xen/arch/x86/include/asm/cpufeature.h
@@ -43,19 +43,15 @@
 #ifndef __ASSEMBLER__
 
 struct cpuinfo_x86 {
-    /* TODO: Phase out the x86 prefixed names. */
     union {
         struct {
             union {
-                uint8_t x86_model;
                 uint8_t model;
             };
             union {
-                uint8_t x86;
                 uint8_t family;
             };
             union {
-                uint8_t x86_vendor;
                 uint8_t vendor;
             };
             uint8_t _rsvd;             /* Use of this needs coordinating with VFM_MAKE() */
@@ -63,7 +59,6 @@ struct cpuinfo_x86 {
         uint32_t vfm;                  /* Vendor Family Model */
     };
     union {
-        uint8_t x86_mask;
         uint8_t stepping;
     };
 
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 22:34:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 22:34:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246049.1545337 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxune-0005ow-6W; Wed, 04 Mar 2026 22:34:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246049.1545337; Wed, 04 Mar 2026 22: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 1vxune-0005op-3S; Wed, 04 Mar 2026 22:34:38 +0000
Received: by outflank-mailman (input) for mailman id 1246049;
 Wed, 04 Mar 2026 22:34: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=+6HG=BE=kernel.org=helgaas@srs-se1.protection.inumbo.net>)
 id 1vxunc-0005oh-CY
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 22:34:36 +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 50a91c7d-181a-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Mar 2026 23:34:33 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 150CA60053;
 Wed,  4 Mar 2026 22:34:32 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 93CB9C4CEF7;
 Wed,  4 Mar 2026 22:34:31 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 50a91c7d-181a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1772663671;
	bh=xtXiT6HoQdMIWu8cMUXATW0+N0I6AwrbMofSK5cScOo=;
	h=Date:From:To:Cc:Subject:In-Reply-To:From;
	b=nftlr+2Kn5zf3LbCRv8rT1Uqt20lvfH1sSG7gDi2AIWBjEkSvUXrNTSyefzr0YfX2
	 ooAr07FsoZDHZJM2vVaReF/OGfw8hxlllUyfMpX9cBuNRd3CwV6vok8tKSGSr6W9gf
	 HYH+8LicxHj+WbAflJo7llMdOe4wCHHGb0xBww6kiqSlPIZN27U2YNkR+OG7ymx2j6
	 k+ZAMh5QNlKQJOkIpmtgCPjjDZAu+Og7oc7bRm5wlpR1wIOlZTv7w0M42DyPDBIUAB
	 RLzLa+tBB1mKCCuRKudYupgp+qUGllTJQl5etZ+KJreLpoQqi2KqZvlJ9D1idV5rd6
	 fOJZ7tdyyJ6Xg==
Date: Wed, 4 Mar 2026 16:34:30 -0600
From: Bjorn Helgaas <helgaas@kernel.org>
To: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Cc: Nipun Gupta <nipun.gupta@amd.com>,
	Nikhil Agarwal <nikhil.agarwal@amd.com>,
	Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
	Lorenzo Pieralisi <lpieralisi@kernel.org>,
	Thomas Gleixner <tglx@kernel.org>, Rob Herring <robh@kernel.org>,
	Saravana Kannan <saravanak@kernel.org>,
	Richard Zhu <hongxing.zhu@nxp.com>,
	Lucas Stach <l.stach@pengutronix.de>,
	Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
	Manivannan Sadhasivam <mani@kernel.org>,
	Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
	Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
	Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
	Conor Dooley <conor+dt@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
	Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
	linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
	linux-pci@vger.kernel.org, imx@lists.linux.dev,
	xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org
Subject: Re: [PATCH v9 1/3] of: Add convenience wrappers for of_map_id()
Message-ID: <20260304223430.GA41322@bhelgaas>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260301-parse_iommu_cells-v9-1-4d1bceecc5e1@oss.qualcomm.com>

On Sun, Mar 01, 2026 at 02:04:19PM +0530, Vijayanand Jitta wrote:
> From: Robin Murphy <robin.murphy@arm.com>
> 
> Since we now have quite a few users parsing "iommu-map" and "msi-map"
> properties, give them some wrappers to conveniently encapsulate the
> appropriate sets of property names. This will also make it easier to
> then change of_map_id() to correctly account for specifier cells.
> 
> Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
> Reviewed-by: Frank Li <Frank.Li@nxp.com>
> Signed-off-by: Robin Murphy <robin.murphy@arm.com>
> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
> ---
>  drivers/cdx/cdx_msi.c                    |  3 +--
>  drivers/iommu/of_iommu.c                 |  4 +---
>  drivers/irqchip/irq-gic-its-msi-parent.c |  2 +-
>  drivers/of/irq.c                         |  3 +--
>  drivers/pci/controller/dwc/pci-imx6.c    |  6 ++----
>  drivers/pci/controller/pcie-apple.c      |  3 +--

Acked-by: Bjorn Helgaas <bhelgaas@google.com> # drivers/pci/

>  drivers/xen/grant-dma-ops.c              |  3 +--
>  include/linux/of.h                       | 14 ++++++++++++++
>  8 files changed, 22 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/cdx/cdx_msi.c b/drivers/cdx/cdx_msi.c
> index 91b95422b263..63b3544ec997 100644
> --- a/drivers/cdx/cdx_msi.c
> +++ b/drivers/cdx/cdx_msi.c
> @@ -128,8 +128,7 @@ static int cdx_msi_prepare(struct irq_domain *msi_domain,
>  	int ret;
>  
>  	/* Retrieve device ID from requestor ID using parent device */
> -	ret = of_map_id(parent->of_node, cdx_dev->msi_dev_id, "msi-map", "msi-map-mask",
> -			NULL, &dev_id);
> +	ret = of_map_msi_id(parent->of_node, cdx_dev->msi_dev_id, NULL, &dev_id);
>  	if (ret) {
>  		dev_err(dev, "of_map_id failed for MSI: %d\n", ret);
>  		return ret;
> diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
> index 6b989a62def2..a511ecf21fcd 100644
> --- a/drivers/iommu/of_iommu.c
> +++ b/drivers/iommu/of_iommu.c
> @@ -48,9 +48,7 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
>  	struct of_phandle_args iommu_spec = { .args_count = 1 };
>  	int err;
>  
> -	err = of_map_id(master_np, *id, "iommu-map",
> -			 "iommu-map-mask", &iommu_spec.np,
> -			 iommu_spec.args);
> +	err = of_map_iommu_id(master_np, *id, &iommu_spec.np, iommu_spec.args);
>  	if (err)
>  		return err;
>  
> diff --git a/drivers/irqchip/irq-gic-its-msi-parent.c b/drivers/irqchip/irq-gic-its-msi-parent.c
> index d36b278ae66c..b63343a227a9 100644
> --- a/drivers/irqchip/irq-gic-its-msi-parent.c
> +++ b/drivers/irqchip/irq-gic-its-msi-parent.c
> @@ -180,7 +180,7 @@ static int of_pmsi_get_msi_info(struct irq_domain *domain, struct device *dev, u
>  
>  	struct device_node *msi_ctrl __free(device_node) = NULL;
>  
> -	return of_map_id(dev->of_node, dev->id, "msi-map", "msi-map-mask", &msi_ctrl, dev_id);
> +	return of_map_msi_id(dev->of_node, dev->id, &msi_ctrl, dev_id);
>  }
>  
>  static int its_pmsi_prepare(struct irq_domain *domain, struct device *dev,
> diff --git a/drivers/of/irq.c b/drivers/of/irq.c
> index 6367c67732d2..e37c1b3f8736 100644
> --- a/drivers/of/irq.c
> +++ b/drivers/of/irq.c
> @@ -817,8 +817,7 @@ u32 of_msi_xlate(struct device *dev, struct device_node **msi_np, u32 id_in)
>  	 * "msi-map" or an "msi-parent" property.
>  	 */
>  	for (parent_dev = dev; parent_dev; parent_dev = parent_dev->parent) {
> -		if (!of_map_id(parent_dev->of_node, id_in, "msi-map",
> -				"msi-map-mask", msi_np, &id_out))
> +		if (!of_map_msi_id(parent_dev->of_node, id_in, msi_np, &id_out))
>  			break;
>  		if (!of_check_msi_parent(parent_dev->of_node, msi_np))
>  			break;
> diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
> index a5b8d0b71677..bff8289f804a 100644
> --- a/drivers/pci/controller/dwc/pci-imx6.c
> +++ b/drivers/pci/controller/dwc/pci-imx6.c
> @@ -1144,8 +1144,7 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
>  	u32 sid = 0;
>  
>  	target = NULL;
> -	err_i = of_map_id(dev->of_node, rid, "iommu-map", "iommu-map-mask",
> -			  &target, &sid_i);
> +	err_i = of_map_iommu_id(dev->of_node, rid, &target, &sid_i);
>  	if (target) {
>  		of_node_put(target);
>  	} else {
> @@ -1158,8 +1157,7 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
>  	}
>  
>  	target = NULL;
> -	err_m = of_map_id(dev->of_node, rid, "msi-map", "msi-map-mask",
> -			  &target, &sid_m);
> +	err_m = of_map_msi_id(dev->of_node, rid, &target, &sid_m);
>  
>  	/*
>  	 *   err_m      target
> diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
> index 2d92fc79f6dd..a0937b7b3c4d 100644
> --- a/drivers/pci/controller/pcie-apple.c
> +++ b/drivers/pci/controller/pcie-apple.c
> @@ -764,8 +764,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
>  	dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
>  		pci_name(pdev->bus->self), port->idx);
>  
> -	err = of_map_id(port->pcie->dev->of_node, rid, "iommu-map",
> -			"iommu-map-mask", NULL, &sid);
> +	err = of_map_iommu_id(port->pcie->dev->of_node, rid, NULL, &sid);
>  	if (err)
>  		return err;
>  
> diff --git a/drivers/xen/grant-dma-ops.c b/drivers/xen/grant-dma-ops.c
> index c2603e700178..1b7696b2d762 100644
> --- a/drivers/xen/grant-dma-ops.c
> +++ b/drivers/xen/grant-dma-ops.c
> @@ -325,8 +325,7 @@ static int xen_dt_grant_init_backend_domid(struct device *dev,
>  		struct pci_dev *pdev = to_pci_dev(dev);
>  		u32 rid = PCI_DEVID(pdev->bus->number, pdev->devfn);
>  
> -		if (of_map_id(np, rid, "iommu-map", "iommu-map-mask", &iommu_spec.np,
> -				iommu_spec.args)) {
> +		if (of_map_iommu_id(np, rid, &iommu_spec.np, iommu_spec.args)) {
>  			dev_dbg(dev, "Cannot translate ID\n");
>  			return -ESRCH;
>  		}
> diff --git a/include/linux/of.h b/include/linux/of.h
> index be6ec4916adf..824649867810 100644
> --- a/include/linux/of.h
> +++ b/include/linux/of.h
> @@ -1457,6 +1457,20 @@ static inline int of_property_read_s32(const struct device_node *np,
>  	return of_property_read_u32(np, propname, (u32*) out_value);
>  }
>  
> +static inline int of_map_iommu_id(const struct device_node *np, u32 id,
> +				  struct device_node **target, u32 *id_out)
> +{
> +	return of_map_id(np, id, "iommu-map", "iommu-map-mask",
> +			 target, id_out);
> +}
> +
> +static inline int of_map_msi_id(const struct device_node *np, u32 id,
> +				struct device_node **target, u32 *id_out)
> +{
> +	return of_map_id(np, id, "msi-map", "msi-map-mask",
> +			 target, id_out);
> +}
> +
>  #define of_for_each_phandle(it, err, np, ln, cn, cc)			\
>  	for (of_phandle_iterator_init((it), (np), (ln), (cn), (cc)),	\
>  	     err = of_phandle_iterator_next(it);			\
> 
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 23:48:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 23:48:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246068.1545348 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxvwv-0006zZ-7p; Wed, 04 Mar 2026 23:48:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246068.1545348; Wed, 04 Mar 2026 23:48:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxvwv-0006zS-4x; Wed, 04 Mar 2026 23:48:17 +0000
Received: by outflank-mailman (input) for mailman id 1246068;
 Wed, 04 Mar 2026 23:48:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=B9Gv=BE=oss.qualcomm.com=dmitry.baryshkov@srs-se1.protection.inumbo.net>)
 id 1vxvwt-0006zJ-5L
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 23:48:15 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 99c2c338-1824-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 00:48:11 +0100 (CET)
Received: from pps.filterd (m0279871.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 624HRnnn1455840
 for <xen-devel@lists.xenproject.org>; Wed, 4 Mar 2026 23:48:09 GMT
Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com
 [209.85.219.72])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cpj182g5j-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 23:48:09 +0000 (GMT)
Received: by mail-qv1-f72.google.com with SMTP id
 6a1803df08f44-899bef1ea49so264839706d6.1
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 15:48:09 -0800 (PST)
Received: from umbar.lan
 (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi.
 [2001:14ba:a073:af00:264b:feff:fe8b:be8a])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-5a12357fa9dsm1597108e87.33.2026.03.04.15.48.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 04 Mar 2026 15:48: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: 99c2c338-1824-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	UJZs6BbEFPW8OUhQ3kN9LgfRkepS1RZtU3P9VDciA7k=; b=aVdHPngsjbyqgrIW
	m0MJv9aGvPSOv7JHKGUvwROWy47iUsBdiQmtf8e0Vc2Bz3qNf7NAxjbYrjpXQhaX
	EKCyjBQQVy3MK7f/jU4u0nknS/GaC6/sGyDa+XlKtdvBgiyRJ0lbzrrfNrkVMuBh
	f3euURbkqHuLnHx12azkHWv8cwQiOUvW0nubrOJYqPhT8oL5TQ+VQUCQ34e+5xE5
	9M3r3YAGA6/v6aUxLAxzIZ37vMVDkG7+r5SY5xMSNg+q9Wppsol1jYxs64OOMeaL
	dhQKmoQFsQ/I5gNQKL8MQ2Os574Lbh57rptn8P8Aj4ezUttSie6dKLNuheXOOduW
	hmaQuQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1772668089; x=1773272889; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=UJZs6BbEFPW8OUhQ3kN9LgfRkepS1RZtU3P9VDciA7k=;
        b=ee6zVxboDA3lJJksKOmWstfTQfZ3i8kS6YR4IGf23H1ksPBXMp3eq6HFvKNgRO9hMX
         EIK36jZWgPD+Seoar28v+R4uPmAFU0BbVLENJtapBsIDMe3lZSLzQ03J9vswCnx1+XRM
         FHU3SS6M7KBP0Vw+ZSClrf1U1FMv8SM9/0Dna/MaORjtutqWRX45pUFeDOd6O5yGRWJg
         lXVAuIfOpJaS1b3g6cFiGTu1n51dVD2Z+oTTGG0Kfqq3ve9f0OwdB56Ajn0X9NGZYNyD
         50zO6sqUEpVIELnYvidMq/23gGEzs3Qx0O72Ow2UrxyouPH4LZCqMYQ2v+OcOe9oEMCq
         Tghg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772668089; x=1773272889;
        h=in-reply-to:content-transfer-encoding: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=UJZs6BbEFPW8OUhQ3kN9LgfRkepS1RZtU3P9VDciA7k=;
        b=pJJOdP3ERdQnU73kg8mrLQYaplxegTURWr930aslpfR58paqveGsM/GGEX4V18pPBG
         Vf021OtLuvHkW4DMI6Z3YrkLCoeTKvH2cVGGaODZlxvsoNPgUmrpd6S9E+PBZ+FAL1c1
         EVLKzALblAWlWssNVwO1kMhcrHdd7BA1ub54fCPlr32tB+NuCMyIQIVIHdaq33NcZ2op
         AHKjxC0ciBGiVGeca6TMw1E3UriWAeRlBDyhQjQ4jY9VhjS05YpT8AV+2XC7akgtMpme
         x0JZPoiCiid60M5FuCceMfE7LH39jVNm64n1XbsO1j9b5FXDdPQy02mo8jw0/jeoTaqx
         1aog==
X-Forwarded-Encrypted: i=1; AJvYcCUaH+iTABNLPwjDGtEFVlfCqLAcxj1OOhiHq7f3v3aS5X/ZyaMnL1IyDN5r/80DdPGz35nhPIlR/rI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzatv6B0ohXd4i8Wiu4PLfAg6Jov8u+fgu6ZZL61Xb9QI1dw8GF
	PI9QZfGKaBjyOAdqEQ2Gbzr9ADgEns60DcWgKYa3lr73FX14C/0pnNuLD+BQIy0kRUneiRFRYuU
	O+HIbYfdruiMP8Y9F2E8AnKtjk0OuK7vUkOHpUQZkDKdoXylQwKdVHN2QWpF4TzC/RHIQSw==
X-Gm-Gg: ATEYQzw3N3H949vLjWk86GctGyCWHaEyXem0nG0MfFIQPWwjJW0wruaz9WHELZw5sfm
	+643e2rWJOvc/6j6oAw+Fgvd5hGFhWV+jVPyvJ/8Dgy9IrLMqYKdwDNm+RiG2HPWIbzWTw1l+Me
	lP6DSm3WazxP4PM7mZ8WRBluIxNLSEm1KY6dIVjySheTEtVQ391erbacorB2axQnD6Tog6RIpVw
	2kVdR/R1VkVxQzHt55tMzVizxChbxKweyGzGL011rXpve72U0XM25pv4aI9V7ne2/4bA4p1WtXA
	WkPFDLceBBPCrthf/43Dm1NSd7AVpHmV8E52LgPzVfNreqixLwoum69HziZgu/imn9hNt/TwNKr
	nMK28EBJEpH3DFs0LOAkza7ltbVF2qd+byDLoipXHmxcvT5PdrpM2/Dt/cUUgWG7vggSjnmS68u
	MsP5CBJ4Tbt3BvLezT3O+ZUkdVGrcd6z3Lg7M=
X-Received: by 2002:a05:620a:460b:b0:8cb:7b27:9336 with SMTP id af79cd13be357-8cd5aedbea3mr527937785a.5.1772668088879;
        Wed, 04 Mar 2026 15:48:08 -0800 (PST)
X-Received: by 2002:a05:620a:460b:b0:8cb:7b27:9336 with SMTP id af79cd13be357-8cd5aedbea3mr527933085a.5.1772668088325;
        Wed, 04 Mar 2026 15:48:08 -0800 (PST)
Date: Thu, 5 Mar 2026 01:48:04 +0200
From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Cc: Marc Zyngier <maz@kernel.org>, Nipun Gupta <nipun.gupta@amd.com>,
        Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>, Rob Herring <robh@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org
Subject: Re: [PATCH v9 1/3] of: Add convenience wrappers for of_map_id()
Message-ID: <iuy4mdv4hr7qdem2zm3yg5eostdhlcta6tifqasyov3ag26yje@huragoeossqf>
References: <20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com>
 <20260301-parse_iommu_cells-v9-1-4d1bceecc5e1@oss.qualcomm.com>
 <86342janlx.wl-maz@kernel.org>
 <d3687764-024d-4dbc-9342-8edc9b4f1fdd@oss.qualcomm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <d3687764-024d-4dbc-9342-8edc9b4f1fdd@oss.qualcomm.com>
X-Proofpoint-GUID: aBp8TEo2zQjJRPCDn0cIdPVBl7Ijo2yu
X-Proofpoint-ORIG-GUID: aBp8TEo2zQjJRPCDn0cIdPVBl7Ijo2yu
X-Authority-Analysis: v=2.4 cv=Ed7FgfmC c=1 sm=1 tr=0 ts=69a8c4b9 cx=c_pps
 a=7E5Bxpl4vBhpaufnMqZlrw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10
 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8
 a=7CQSdrXTAAAA:8 a=VwQbUJbxAAAA:8 a=8AirrxEcAAAA:8 a=srtYxZOELw0pIWJIyL0A:9
 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=pJ04lnu7RYOZP9TFuWaZ:22
 a=a-qgeE7W1pNrGK8U0ZQC:22 a=ST-jHhOKWsTCqRlWije3:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA0MDE5NiBTYWx0ZWRfX2q+4Anqg7TN9
 aZyzcA9wszhNuF9SyuQO/VhQVpf4lMJT29QjPENtwia+t8nNg7ohs3dTEb+QQpvG+uX5v8BHjwZ
 uroXhcnlYMUbIuSkqGtd040dcwfSRZIDcbZNk+1Xv+cuN+kBiLLLQcBtBOQg2A1CfNUz0xUwQOK
 DxG4fV/ZHTsn8JdCX19anIZKb2R9xapcjJwXQZGXxHwIVIZsT/pSk+5G+de/TqiYyuS464tQTNa
 Le2OsHCwQ9kef6pS6bSdchI9ozzm/1gw6Y7a1ThwGUv8dNhDm62Hky6Fnqpm9OVsDzyxC/Lya6O
 rewyO/voexc8GK1VM97aYsOwF9pxxXDirIhkwNIuXdaSCh6Nd8oz21s9eJ/CsB8vQWaH5LIfXMT
 es0//ODSjAkBLLkX0pIqdp/qejwbR9TYjMzgbuzYs94/qCJrewzbPrFt6aU//9MizIBXoKSVpfN
 ruAYxHcGTKQvO22DWkg==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-04_08,2026-03-04_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 bulkscore=0 suspectscore=0 spamscore=0 adultscore=0 lowpriorityscore=0
 clxscore=1015 malwarescore=0 impostorscore=0 priorityscore=1501 phishscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603040196

On Wed, Mar 04, 2026 at 03:02:14PM +0530, Vijayanand Jitta wrote:
> 
> 
> On 3/1/2026 3:16 PM, Marc Zyngier wrote:
> > On Sun, 01 Mar 2026 08:34:19 +0000,
> > Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com> wrote:
> >>
> >> From: Robin Murphy <robin.murphy@arm.com>
> >>
> >> Since we now have quite a few users parsing "iommu-map" and "msi-map"
> >> properties, give them some wrappers to conveniently encapsulate the
> >> appropriate sets of property names. This will also make it easier to
> >> then change of_map_id() to correctly account for specifier cells.
> >>
> >> Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
> >> Reviewed-by: Frank Li <Frank.Li@nxp.com>
> >> Signed-off-by: Robin Murphy <robin.murphy@arm.com>
> >> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
> >> ---
> >>  drivers/cdx/cdx_msi.c                    |  3 +--
> >>  drivers/iommu/of_iommu.c                 |  4 +---
> >>  drivers/irqchip/irq-gic-its-msi-parent.c |  2 +-
> >>  drivers/of/irq.c                         |  3 +--
> >>  drivers/pci/controller/dwc/pci-imx6.c    |  6 ++----
> >>  drivers/pci/controller/pcie-apple.c      |  3 +--
> >>  drivers/xen/grant-dma-ops.c              |  3 +--
> >>  include/linux/of.h                       | 14 ++++++++++++++
> >>  8 files changed, 22 insertions(+), 16 deletions(-)
> >>
> >> diff --git a/drivers/cdx/cdx_msi.c b/drivers/cdx/cdx_msi.c
> >> index 91b95422b263..63b3544ec997 100644
> >> --- a/drivers/cdx/cdx_msi.c
> >> +++ b/drivers/cdx/cdx_msi.c
> >> @@ -128,8 +128,7 @@ static int cdx_msi_prepare(struct irq_domain *msi_domain,
> >>  	int ret;
> >>  
> >>  	/* Retrieve device ID from requestor ID using parent device */
> >> -	ret = of_map_id(parent->of_node, cdx_dev->msi_dev_id, "msi-map", "msi-map-mask",
> >> -			NULL, &dev_id);
> >> +	ret = of_map_msi_id(parent->of_node, cdx_dev->msi_dev_id, NULL, &dev_id);
> >>  	if (ret) {
> >>  		dev_err(dev, "of_map_id failed for MSI: %d\n", ret);
> >>  		return ret;
> >> diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
> >> index 6b989a62def2..a511ecf21fcd 100644
> >> --- a/drivers/iommu/of_iommu.c
> >> +++ b/drivers/iommu/of_iommu.c
> >> @@ -48,9 +48,7 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
> >>  	struct of_phandle_args iommu_spec = { .args_count = 1 };
> >>  	int err;
> >>  
> >> -	err = of_map_id(master_np, *id, "iommu-map",
> >> -			 "iommu-map-mask", &iommu_spec.np,
> >> -			 iommu_spec.args);
> >> +	err = of_map_iommu_id(master_np, *id, &iommu_spec.np, iommu_spec.args);
> >>  	if (err)
> >>  		return err;
> >>  
> >> diff --git a/drivers/irqchip/irq-gic-its-msi-parent.c b/drivers/irqchip/irq-gic-its-msi-parent.c
> >> index d36b278ae66c..b63343a227a9 100644
> >> --- a/drivers/irqchip/irq-gic-its-msi-parent.c
> >> +++ b/drivers/irqchip/irq-gic-its-msi-parent.c
> >> @@ -180,7 +180,7 @@ static int of_pmsi_get_msi_info(struct irq_domain *domain, struct device *dev, u
> >>  
> >>  	struct device_node *msi_ctrl __free(device_node) = NULL;
> >>  
> >> -	return of_map_id(dev->of_node, dev->id, "msi-map", "msi-map-mask", &msi_ctrl, dev_id);
> >> +	return of_map_msi_id(dev->of_node, dev->id, &msi_ctrl, dev_id);
> >>  }
> >>  
> >>  static int its_pmsi_prepare(struct irq_domain *domain, struct device *dev,
> >> diff --git a/drivers/of/irq.c b/drivers/of/irq.c
> >> index 6367c67732d2..e37c1b3f8736 100644
> >> --- a/drivers/of/irq.c
> >> +++ b/drivers/of/irq.c
> >> @@ -817,8 +817,7 @@ u32 of_msi_xlate(struct device *dev, struct device_node **msi_np, u32 id_in)
> >>  	 * "msi-map" or an "msi-parent" property.
> >>  	 */
> >>  	for (parent_dev = dev; parent_dev; parent_dev = parent_dev->parent) {
> >> -		if (!of_map_id(parent_dev->of_node, id_in, "msi-map",
> >> -				"msi-map-mask", msi_np, &id_out))
> >> +		if (!of_map_msi_id(parent_dev->of_node, id_in, msi_np, &id_out))
> >>  			break;
> >>  		if (!of_check_msi_parent(parent_dev->of_node, msi_np))
> >>  			break;
> >> diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
> >> index a5b8d0b71677..bff8289f804a 100644
> >> --- a/drivers/pci/controller/dwc/pci-imx6.c
> >> +++ b/drivers/pci/controller/dwc/pci-imx6.c
> >> @@ -1144,8 +1144,7 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
> >>  	u32 sid = 0;
> >>  
> >>  	target = NULL;
> >> -	err_i = of_map_id(dev->of_node, rid, "iommu-map", "iommu-map-mask",
> >> -			  &target, &sid_i);
> >> +	err_i = of_map_iommu_id(dev->of_node, rid, &target, &sid_i);
> >>  	if (target) {
> >>  		of_node_put(target);
> >>  	} else {
> >> @@ -1158,8 +1157,7 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
> >>  	}
> >>  
> >>  	target = NULL;
> >> -	err_m = of_map_id(dev->of_node, rid, "msi-map", "msi-map-mask",
> >> -			  &target, &sid_m);
> >> +	err_m = of_map_msi_id(dev->of_node, rid, &target, &sid_m);
> >>  
> >>  	/*
> >>  	 *   err_m      target
> >> diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
> >> index 2d92fc79f6dd..a0937b7b3c4d 100644
> >> --- a/drivers/pci/controller/pcie-apple.c
> >> +++ b/drivers/pci/controller/pcie-apple.c
> >> @@ -764,8 +764,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
> >>  	dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
> >>  		pci_name(pdev->bus->self), port->idx);
> >>  
> >> -	err = of_map_id(port->pcie->dev->of_node, rid, "iommu-map",
> >> -			"iommu-map-mask", NULL, &sid);
> >> +	err = of_map_iommu_id(port->pcie->dev->of_node, rid, NULL, &sid);
> >>  	if (err)
> >>  		return err;
> >>  
> >> diff --git a/drivers/xen/grant-dma-ops.c b/drivers/xen/grant-dma-ops.c
> >> index c2603e700178..1b7696b2d762 100644
> >> --- a/drivers/xen/grant-dma-ops.c
> >> +++ b/drivers/xen/grant-dma-ops.c
> >> @@ -325,8 +325,7 @@ static int xen_dt_grant_init_backend_domid(struct device *dev,
> >>  		struct pci_dev *pdev = to_pci_dev(dev);
> >>  		u32 rid = PCI_DEVID(pdev->bus->number, pdev->devfn);
> >>  
> >> -		if (of_map_id(np, rid, "iommu-map", "iommu-map-mask", &iommu_spec.np,
> >> -				iommu_spec.args)) {
> >> +		if (of_map_iommu_id(np, rid, &iommu_spec.np, iommu_spec.args)) {
> >>  			dev_dbg(dev, "Cannot translate ID\n");
> >>  			return -ESRCH;
> >>  		}
> >> diff --git a/include/linux/of.h b/include/linux/of.h
> >> index be6ec4916adf..824649867810 100644
> >> --- a/include/linux/of.h
> >> +++ b/include/linux/of.h
> >> @@ -1457,6 +1457,20 @@ static inline int of_property_read_s32(const struct device_node *np,
> >>  	return of_property_read_u32(np, propname, (u32*) out_value);
> >>  }
> >>  
> >> +static inline int of_map_iommu_id(const struct device_node *np, u32 id,
> >> +				  struct device_node **target, u32 *id_out)
> >> +{
> >> +	return of_map_id(np, id, "iommu-map", "iommu-map-mask",
> >> +			 target, id_out);
> >> +}
> >> +
> >> +static inline int of_map_msi_id(const struct device_node *np, u32 id,
> >> +				struct device_node **target, u32 *id_out)
> >> +{
> >> +	return of_map_id(np, id, "msi-map", "msi-map-mask",
> >> +			 target, id_out);
> >> +}
> >> +
> > 
> > Any particular reason why this is made inline instead of out of line
> > in of/base.c? Also, some documentation would be helpful for the
> > aspiring hackers dipping into this.
> > 
> > Other than that,
> > 
> > Acked-by: Marc Zyngier <maz@kernel.org>
> > 
> > 	M.
> > 
> 
> Thanks Marc.
> 
> I made them static inline mainly because they’re just trivial wrappers
> around of_map_id(), so keeping them in include/linux/of.h avoids adding
> new global symbols/exports and keeps the callsites simple (similar to
> the existing of_property_read_*() inline wrappers).
> 
> That said, I don’t have a strong preference—if you’d rather have
> out-of-line helpers in drivers/of/base.c, I’m happy to respin accordingly.
> 
> Re Documentation, Sure I'll add comments for of_map_iommu_id() and
> of_map_msi_id() in follow up patch.

... in the next iteration, please.

> 
> Thanks,
> Vijay
> 
> 
> 

-- 
With best wishes
Dmitry


From xen-devel-bounces@lists.xenproject.org Wed Mar 04 23:58:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 23:58:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246077.1545358 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxw6h-0000Mt-4r; Wed, 04 Mar 2026 23:58:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246077.1545358; Wed, 04 Mar 2026 23:58: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 1vxw6h-0000Mm-1U; Wed, 04 Mar 2026 23:58:23 +0000
Received: by outflank-mailman (input) for mailman id 1246077;
 Wed, 04 Mar 2026 23:58:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=l5iH=BE=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vxw6f-0000Md-EH
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 23:58:21 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 03e2b7d0-1826-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 00:58:18 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 2403A44100;
 Wed,  4 Mar 2026 23:58:17 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 241F4C4CEF7;
 Wed,  4 Mar 2026 23:58:16 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 03e2b7d0-1826-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1772668697;
	bh=DPt5htaOCfcgqP4MO7Lq2RngC1FbWjZzqXZYuC57Qy8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=c5S9RKS4ZjuSN0YHIAeMDXCJyy8MzdXORIQXJew3n0sUik9MbmfH9yqGvq1d4/xxz
	 PAC4Lrb69SAI8lHjtSQUCl8NgfS70S348p4d0ActpJkbWGlM92PplCAUXXk9NRBuiJ
	 zq9W2mQ2t/nVIFfq0nFcy+XyDBNdJBp2k54cN2frZt9i0JtodIxBFAN4dA+bYhj28d
	 4KLyMl+Jmcl5u0yhRzUTl628lxOWl3pOLkRnuD5dLn3dbnN6qx3vQGSH1sqQ9K33Vd
	 bApM1gpqiLc+1QHLXwtxMZXvz0wFYhiY8nxrq0MvabSeKOzPdCrQmP8TTtql++xZmn
	 BEIo81ePGzN5g==
Date: Wed, 4 Mar 2026 15:58:12 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
cc: qemu-devel@nongnu.org, Stefano Stabellini <sstabellini@kernel.org>, 
    Anthony PERARD <anthony@xenproject.org>, Paul Durrant <paul@xen.org>, 
    edgar.iglesias@amd.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 1/5] xen: mapcache: Assert mapcache existance
In-Reply-To: <20260304015222.979224-2-edgar.iglesias@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2603041558040.250016@ubuntu-linux-20-04-desktop>
References: <20260304015222.979224-1-edgar.iglesias@gmail.com> <20260304015222.979224-2-edgar.iglesias@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 4 Mar 2026, Edgar E. Iglesias wrote:
> From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
> 
> Assert that the mapcache was created prior to being used.
> 
> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>

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



From xen-devel-bounces@lists.xenproject.org Wed Mar 04 23:59:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Mar 2026 23:59:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246087.1545368 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxw8B-0000yh-HF; Wed, 04 Mar 2026 23:59:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246087.1545368; Wed, 04 Mar 2026 23:59: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 1vxw8B-0000ya-Ea; Wed, 04 Mar 2026 23:59:55 +0000
Received: by outflank-mailman (input) for mailman id 1246087;
 Wed, 04 Mar 2026 23:59: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=mFc0=BE=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1vxw8A-0000yQ-2n
 for xen-devel@lists.xenproject.org; Wed, 04 Mar 2026 23:59:54 +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 39e6047a-1826-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 00:59:49 +0100 (CET)
Received: from CH0PR04CA0105.namprd04.prod.outlook.com (2603:10b6:610:75::20)
 by LV3PR12MB9259.namprd12.prod.outlook.com (2603:10b6:408:1b0::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Wed, 4 Mar
 2026 23:59:42 +0000
Received: from DS3PEPF0000C37D.namprd04.prod.outlook.com
 (2603:10b6:610:75:cafe::9e) by CH0PR04CA0105.outlook.office365.com
 (2603:10b6:610:75::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.23 via Frontend Transport; Wed,
 4 Mar 2026 23:59:38 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 DS3PEPF0000C37D.mail.protection.outlook.com (10.167.23.7) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Wed, 4 Mar 2026 23:59: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; Wed, 4 Mar
 2026 17:59:41 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 4 Mar
 2026 17:59:41 -0600
Received: from ubuntu-20.04.2-arm64.shared (10.180.168.240) by
 satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17 via Frontend Transport; Wed, 4 Mar 2026 17:59:41 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 39e6047a-1826-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zRQVnpgc4hLT/7Ac1eUzku7lu+B9GfbNeX/oxzpcWUD7kRGtsKgg5J4UV1IRX7bap+o8YKP/9j31uBcqY3Prfk03Dms1eAzGiK5L1XADjvL9l5yNHOiXlJDpvV5UEyu+KdZC1JNOKa4N7CyHXSF1KwPKxs6mcYboOsGqbu2gNYPqDHVKXeVwPpOvQgvfwBraWzkUrgAChiD8ewfzPA0JfO6dWlCZXa+CSK2m05SVtXNUbYe2Wi+e8bwktZkF8x0FB5onqioavloKdBpwap9HCthWu6lbsjw9f62rIRZOMbaXP018PRVJKkY3NHFebXK23oFaqv/gqERUpAmR6mN92Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ch29dcSMJucCWbOaueIqD6MTsLWj7sStnHz2sZuGtI4=;
 b=TZ7cN/oMjc34/E8loK/1UnPtcCC8zh4VX3/0Ns6BsfmFTetx9+pkSWQZ0YkDkuZtK4dtWZ7ic3+m7vb1Tl+dypyfNNK5C9Bs/fNWWAL/ZIsCvuZc0Wra38exzZyR/xQmrTEKpzkEuXuwZHmN9v23biU0/VCr7UpTybq7AwBIl1juNxjDAh85VQkZodBPTALwwPVxdJUXhxuNGonHxCyuokpihKFUWntgw2WmN2a4wUR/tgIl+fJLSdCYUPsylqqlIRzXqwRoOStm2PBs1UmU3c2r4Riksts0RWi6eaVydJjct5iyfvJLLgrUWH6IOGBpVtpEO4cEjitscHhNs2+WWQ==
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=ch29dcSMJucCWbOaueIqD6MTsLWj7sStnHz2sZuGtI4=;
 b=hFcSOHIuOdBMiwj3GB5ZfWHTCxFdjjB6ubY0dJYODFxvfnSd5dDygHr+dsKD5A0REbUmD55Wt++Rvn4CCeN3sg7ZP1NqHHrZba9JT9Yr7ZQ+kwZfJG33ybQVH/nnZcMSD+VpMfR0A9maG9ki3bDtNYCGZCSHoqSTp7ZMZLIgPGI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Date: Wed, 4 Mar 2026 15:59:35 -0800
From: Stefano Stabellini <stefano.stabellini@amd.com>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
CC: <qemu-devel@nongnu.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>, Paul Durrant <paul@xen.org>,
	<edgar.iglesias@amd.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v1 2/5] xen: mapcache: Add function to check if the
 mapcache is enabled
In-Reply-To: <20260304015222.979224-3-edgar.iglesias@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2603041559280.250016@ubuntu-linux-20-04-desktop>
References: <20260304015222.979224-1-edgar.iglesias@gmail.com> <20260304015222.979224-3-edgar.iglesias@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF0000C37D:EE_|LV3PR12MB9259:EE_
X-MS-Office365-Filtering-Correlation-Id: 496567f6-e8ad-416c-ac81-08de7a4a1a5e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700016;
X-Microsoft-Antispam-Message-Info:
	sV8sZ+wqsVBoZhIsq3qxSEoqKvabd20wGRyiEOa3WQLZXGZv1khrRRmyxaIkKt0lYRhARVrvJ+4zWnAfKasw//yp6I//cDfauh+w2UdD2qW5uM++NdZIFlNlA95G31k5vpETDuNzbaaTAZ8s3s71FMwdvG4tZCSVQN69kbfqgxWWGEI2mdIEZDCxg5jwujymqT0XGTV5f5aSFi6LjDUVPKQD2AAEKM4MmOSrqIjpp7nNmlgjVIn8vk50ZpknJvRizq/21UFWLC3YN/MlA6s8T4vbr4rkIA8hxx0G9kDnU20PeBhx7WEECqOsZPTJMR5n2X6ZTpBm8PxiDP2HkKIiQznlgHEN30lPeBa0q7z4m/iFrRVdBAWZJbpkXAmgy1xaR4Jeh8N83Mh0eGj2upj0JxklMQ9yEzwfoiSKkFQinn4eIE5CiBdFC9vEpKy1Cydc4BNjq9jIcF157f8mQnmuEiT2RLs7iy+9Ytk2NHl9gOJmcMxdQNI+/qsZ9Boht/7z+7URO30/aWpvf7YJxuGTokrVD+Ek5u2cWh9i/x+oOGUCvvZgzqoOrX4Tib/vTxeN5XwoJ8EYLF97FcpeLzivw7PvPlLkWpspLQ8utze1TWGGBUyEmPnLU3fmh9kkjPJxcv1BUhi6WvLeJ9X5qCNborJ2rqNCkHpHK7kFpHy+4at4QtTIw7DHuZLvKD4qpwtiH19eqHmaSq1KAPJa2Dk3fydmf44fQW31SoVTMlaevLkZa0O7VxGrmPUpmY/kLBFvoJHxSIgGq87H6d+a0ZPaBg==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	Nict4oubIoCW7Ll+jOvGsrF9yj+lzfYC9R9PGLoBzATbHJ36Xi45aH3FB8uQf/CW7w0v0Rxmpb5eb5lgTeMCHHWv2gJAAFwMliKxVyZVjJJQYcB05rYq0FfwJqsROoCbwV5GhH1C0gvDy0G+fX3aUGudtf7HJGKtCmp7kR5ocx0LpcnjZ7zFuXVt+OIowBtd2L6h+TO7U6XYvjBf87sQl2ez2erNf2FqsjAMiKrYEONwGMRkhTYae67Loaa3TDGV/BlTCVWSmPbWfxBZID2Wg1Q0V6bIOn2dbi62d4dxF3/4hMsd5nsNkNY5Su3jE7vYiDsYQmp8wG79Zafyf9e2b5y0vVxdzH+KfdOtdJsczG343sXHX35uHHXsy8E2/4iUy6aDBH/zxHKlv5CLtqycdJXKUhNLfZ0O3Ub0FSMc70eTcamb5PBDCCIfH+IUfEQY
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 23:59:42.1138
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 496567f6-e8ad-416c-ac81-08de7a4a1a5e
X-MS-Exchange-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:
	DS3PEPF0000C37D.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9259

On Wed, 4 Mar 2026, Edgar E. Iglesias wrote:
> From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
> 
> Add function to check if the mapcache is enabled.
> No functional change.
> 
> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>

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



From xen-devel-bounces@lists.xenproject.org Thu Mar 05 00:07:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 00:07:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246100.1545377 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxwFX-0003KA-Fz; Thu, 05 Mar 2026 00:07:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246100.1545377; Thu, 05 Mar 2026 00: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 1vxwFX-0003K3-Cy; Thu, 05 Mar 2026 00:07:31 +0000
Received: by outflank-mailman (input) for mailman id 1246100;
 Thu, 05 Mar 2026 00:07:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PFhh=BF=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vxwFV-0003Ih-Aj
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 00:07:29 +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 4b1e5ad1-1827-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 01:07:27 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 1340040C29;
 Thu,  5 Mar 2026 00:07:26 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D2D85C4CEF7;
 Thu,  5 Mar 2026 00:07:24 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4b1e5ad1-1827-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1772669245;
	bh=pjv0XFNJ1B5r1groVKrNX4KoO8JMgModOOta/p4M1fk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=DHStb9EIea9qnBsSQExLEgGK0/h6CsKUQmdcrfXkCl+xgD/o7EBY3m7YaEajxoWns
	 dpxGvfQcu9QQW2UXdlQ3fWgPZcrnNYCHwO6B/MD3Z7M6JH1Cm/2/dD6ZajsdckseMS
	 jLGgjaSCFFJhk/MVNfPX9vxIz2Lu6xE4qEDcfp5S9SoEz/6cvj6K3bbPrJL5HTvkBx
	 ELZUM/JOZ2IL76JOBFGINI+6dM30VwkVWTR0tV9Ml81+PqDzAo01J9MWIYlNYk0EBQ
	 6QZR+447fwE/yG9xqR5sPAVs+A/ku8ItYvAXKDt//aBMqDqpUqXY6B/EIu1+mOxM5i
	 7P2g3Hbo+LsIw==
Date: Wed, 4 Mar 2026 16:07:23 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
cc: qemu-devel@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>, 
    Peter Xu <peterx@redhat.com>, 
    =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>, 
    sstabellini@kernel.org, anthony@xenproject.org, edgar.iglesias@amd.com, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 3/5] physmem: xen: Conditionalize use of the
 mapcache
In-Reply-To: <20260304015222.979224-4-edgar.iglesias@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2603041606480.250016@ubuntu-linux-20-04-desktop>
References: <20260304015222.979224-1-edgar.iglesias@gmail.com> <20260304015222.979224-4-edgar.iglesias@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 4 Mar 2026, Edgar E. Iglesias wrote:
> From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
> 
> Conditionalize use of the mapcache. This is in preparation
> to optionally disable the mapcache at runtime.
> 
> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
> ---
>  system/physmem.c | 13 +++++++------
>  1 file changed, 7 insertions(+), 6 deletions(-)
> 
> diff --git a/system/physmem.c b/system/physmem.c
> index e5ff26acec..64e6d50f8f 100644
> --- a/system/physmem.c
> +++ b/system/physmem.c
> @@ -578,7 +578,8 @@ MemoryRegion *flatview_translate(FlatView *fv, hwaddr addr, hwaddr *xlat,
>                                      is_write, true, &as, attrs);
>      mr = section.mr;
>  
> -    if (xen_enabled() && memory_access_is_direct(mr, is_write, attrs)) {
> +    if (xen_map_cache_enabled() &&
> +        memory_access_is_direct(mr, is_write, attrs)) {
>          hwaddr page = ((addr & TARGET_PAGE_MASK) + TARGET_PAGE_SIZE) - addr;
>          *plen = MIN(page, *plen);
>      }

All the other changes make sense. For this one, the code inside the if
check is not strictly related to the mapcache. Are you sure it should be
changed?


> @@ -2577,7 +2578,7 @@ static void reclaim_ramblock(RAMBlock *block)
>  {
>      if (block->flags & RAM_PREALLOC) {
>          ;
> -    } else if (xen_enabled()) {
> +    } else if (xen_map_cache_enabled()) {
>          xen_invalidate_map_cache_entry(block->host);
>  #if !defined(_WIN32) && !defined(EMSCRIPTEN)
>      } else if (block->fd >= 0) {
> @@ -2736,7 +2737,7 @@ static void *qemu_ram_ptr_length(RAMBlock *block, ram_addr_t addr,
>          len = *size;
>      }
>  
> -    if (xen_enabled() && block->host == NULL) {
> +    if (xen_map_cache_enabled() && block->host == NULL) {
>          /* We need to check if the requested address is in the RAM
>           * because we don't want to map the entire memory in QEMU.
>           * In that case just map the requested area.
> @@ -2785,7 +2786,7 @@ RAMBlock *qemu_ram_block_from_host(void *ptr, bool round_offset,
>      RAMBlock *block;
>      uint8_t *host = ptr;
>  
> -    if (xen_enabled()) {
> +    if (xen_map_cache_enabled()) {
>          ram_addr_t ram_addr;
>          RCU_READ_LOCK_GUARD();
>          ram_addr = xen_ram_addr_from_mapcache(ptr);
> @@ -3787,7 +3788,7 @@ void address_space_unmap(AddressSpace *as, void *buffer, hwaddr len,
>          if (is_write) {
>              invalidate_and_set_dirty(mr, addr1, access_len);
>          }
> -        if (xen_enabled()) {
> +        if (xen_map_cache_enabled()) {
>              xen_invalidate_map_cache_entry(buffer);
>          }
>          memory_region_unref(mr);
> @@ -3898,7 +3899,7 @@ void address_space_cache_destroy(MemoryRegionCache *cache)
>          return;
>      }
>  
> -    if (xen_enabled()) {
> +    if (xen_map_cache_enabled()) {
>          xen_invalidate_map_cache_entry(cache->ptr);
>      }
>      memory_region_unref(cache->mrs.mr);
> -- 
> 2.43.0
> 


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 00:26:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 00:26:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246118.1545398 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxwXZ-0006lq-2L; Thu, 05 Mar 2026 00:26:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246118.1545398; Thu, 05 Mar 2026 00:26:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxwXY-0006lj-W0; Thu, 05 Mar 2026 00:26:08 +0000
Received: by outflank-mailman (input) for mailman id 1246118;
 Thu, 05 Mar 2026 00:26:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PFhh=BF=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vxwXX-0006WK-TX
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 00:26:07 +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 e66c7057-1829-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 01:26:07 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id D149361340;
 Thu,  5 Mar 2026 00:26:05 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A6B08C4CEF7;
 Thu,  5 Mar 2026 00:26: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: e66c7057-1829-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1772670365;
	bh=UepqIuLUKCKQnNwC65D5tmrrRilTbI7Lk7HQcWTAN+4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=GX9WQERhXAUVKacd6EkeI8nb+Eudhlsnoe568bmhGvFi6Voe8M/SE7e9joocIU7Ue
	 tpds6qLTJ6kOcdokTG6vze9TUGMi6C8iRBAIuXiqJpx97XQnR6BdP/mJhbPD6p1/zc
	 tCKv+eR6PXo28O1KK2bAaE7+8e/568CXRLbKT9cSQgb9i80yDwlFMye2kdaBpMmntG
	 3+C1IH/p2yeMcgDKPKMx1i7pAQUxVvtBV6RkLJ7Ug8tR7y55hU9ERqISqYHfN51BOB
	 lapA0cqHweXRseVGeyPZBufXX2aYq1ERfUsG3gxR7ObAJEZZcoENcRjAIDOIqvvUd6
	 V5A30nL6s3F3Q==
Date: Wed, 4 Mar 2026 16:26:03 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
cc: qemu-devel@nongnu.org, Stefano Stabellini <sstabellini@kernel.org>, 
    Anthony PERARD <anthony@xenproject.org>, Paul Durrant <paul@xen.org>, 
    edgar.iglesias@amd.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 5/5] hw/xen: xenpvh: Add prop to enable/disable the
 mapcache
In-Reply-To: <20260304015222.979224-6-edgar.iglesias@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2603041625580.250016@ubuntu-linux-20-04-desktop>
References: <20260304015222.979224-1-edgar.iglesias@gmail.com> <20260304015222.979224-6-edgar.iglesias@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 4 Mar 2026, Edgar E. Iglesias wrote:
> From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
> 
> Add a machine property to enable/disable the mapcache.
> Default it to enabled for backwards compatibility.
> 
> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>

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


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 00:26:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 00:26:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246116.1545387 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxwXP-0006WY-SH; Thu, 05 Mar 2026 00:25:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246116.1545387; Thu, 05 Mar 2026 00: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 1vxwXP-0006WR-Pj; Thu, 05 Mar 2026 00:25:59 +0000
Received: by outflank-mailman (input) for mailman id 1246116;
 Thu, 05 Mar 2026 00:25: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=PFhh=BF=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vxwXP-0006WK-DU
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 00:25:59 +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 e0885a26-1829-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 01:25:57 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id BF77B408F6;
 Thu,  5 Mar 2026 00:25:55 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 34732C4CEF7;
 Thu,  5 Mar 2026 00:25:54 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e0885a26-1829-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1772670355;
	bh=T9uUSh3wGNO8C4j8rIVXQSqKyC5PcYdW03zABygi9cI=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=g3Zyr3Bx8O8NCtMEcZh2kuj7QqM+xaaeOwBUJeG9C3OsjQW93/xCj5tlVcCv4/Pzb
	 QMZI7b7AdqJofYa0EZ4IcOb6InxLsGUC6CkCRmKLeIlzsb23MOiwrDbiniHihRp7fk
	 bvq10B/elksbGnUo/pPZTqYX/nPMfpfuwSMgU3bGbJvhVNVoj3DrUqmyZjocsHwrqG
	 TauERRVsiXiRH8kguCyMMUYkfcI65w8DCc7WidD415uwG8It5rRwcoVs5aclL+ajk8
	 WmVP+lxcMGVqhdhL01l3AWuh2lFo7s7Isg+9+3vgNdxosaEwUhpQ4ksX7++ibCGLnq
	 umwnayngfMjkA==
Date: Wed, 4 Mar 2026 16:25:52 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
cc: qemu-devel@nongnu.org, Stefano Stabellini <sstabellini@kernel.org>, 
    Anthony PERARD <anthony@xenproject.org>, Paul Durrant <paul@xen.org>, 
    "Michael S. Tsirkin" <mst@redhat.com>, 
    Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, 
    Paolo Bonzini <pbonzini@redhat.com>, 
    Richard Henderson <richard.henderson@linaro.org>, 
    Eduardo Habkost <eduardo@habkost.net>, edgar.iglesias@amd.com, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 4/5] hw/xen-hvm: Add a mapcache arg to
 xen_register_ioreq()
In-Reply-To: <20260304015222.979224-5-edgar.iglesias@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2603041625430.250016@ubuntu-linux-20-04-desktop>
References: <20260304015222.979224-1-edgar.iglesias@gmail.com> <20260304015222.979224-5-edgar.iglesias@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 4 Mar 2026, Edgar E. Iglesias wrote:
> From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
> 
> Add a mapcache argument to xen_register_ioreq() allowing
> the caller to optionally disable the mapcache.
> 
> All callers still call it with mapcache = true so there's no
> functional change yet.
> 
> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>

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



From xen-devel-bounces@lists.xenproject.org Thu Mar 05 00:49:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 00:49:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246135.1545407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxwtk-00027A-Nk; Thu, 05 Mar 2026 00:49:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246135.1545407; Thu, 05 Mar 2026 00:49:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxwtk-000273-Ky; Thu, 05 Mar 2026 00:49:04 +0000
Received: by outflank-mailman (input) for mailman id 1246135;
 Thu, 05 Mar 2026 00:49: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=2CHB=BF=amd.com=Edgar.Iglesias@srs-se1.protection.inumbo.net>)
 id 1vxwtj-00026v-Ab
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 00:49:03 +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 17252ede-182d-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 01:48:57 +0100 (CET)
Received: from MW4P220CA0011.NAMP220.PROD.OUTLOOK.COM (2603:10b6:303:115::16)
 by MW4PR12MB7360.namprd12.prod.outlook.com (2603:10b6:303:21a::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.20; Thu, 5 Mar
 2026 00:48:51 +0000
Received: from CO1PEPF00012E84.namprd03.prod.outlook.com
 (2603:10b6:303:115:cafe::ab) by MW4P220CA0011.outlook.office365.com
 (2603:10b6:303:115::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.21 via Frontend Transport; Thu,
 5 Mar 2026 00:48:32 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF00012E84.mail.protection.outlook.com (10.167.249.59) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Thu, 5 Mar 2026 00:48:51 +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, 4 Mar
 2026 18:48:51 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 17252ede-182d-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vet7qkzyVwXzNX0dFVcKbHFYfbXwG4ehSYVmAcWkU+9buyuTE3Wqp2vNNvBGJSGZkF/JwCDDuCdKJ9B1pW4lbSl2LSRBTO1Vnncgj9ZXt1EazMBxF4Zba42bHEo3+FNdWfMCBqyr+iFYrZZUHS2cwt252kyLKrCIvbNOXNM6Et3SuGcfAw2Z/Gps7XZ4VECR/xsOsvwsSdAUmxMkqDPIKsS+SSqAbIu49z+mzMFO+TK1Ivk7MylHvyW5my1bZyQcDt0jhJLxLOAPpvU47fygze30UgdObDzzqiYZPrsHfTW5UvxsPZYwIZuDKHh+6AHD2TDOxjTPHZ26G8k6iB//jQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JIRQPm886RSi0wUulemYEN6mW0bQtLHWBDnqeSXByvM=;
 b=CeeKE67Y2w1tV/7VUi1/u/oW0hG0j8lufPdIXJNSrCu6vv5JYqYJqiSU+yuRflPglUtUDMi8cAKir+/IcZWpNYy+S+u3zYEGMUzvVIT8cMFEMWpJWnIL1ZsT6pVYoK9LIE00t+dH/9Q6B0/1UFatizVL3VexF6mGkr54TINvDw7xCQpZDdtLIUxMXmtJhV+spQcW2bM7LMTQZxOjJQtKdB9O07ButoT6vdLGzxaf6YRo5yww6UcCeMZ9oi0+FsAsuu/VNAwwGx+CWRNV8LXmBIAPTwT9E8w+R17xYrPEmW8Lut7e0oDTGWxBFKi0kmZvXwzEZG4WVrf3xhMqQeSgKA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JIRQPm886RSi0wUulemYEN6mW0bQtLHWBDnqeSXByvM=;
 b=DzJQBUsNCccr2eTfDj6O4Bst3yQixDU3jWTLjr5krU2jQwT8cha/1oXPHZ1fB66Pw/zby5Fd0Jqi8z0OXCXFalinKMa8SspCb/PBskSlGtcUaK+tVyMGThiptsqaRmk+Fz2DD6J7PrTmHbux7HCxOakiZZV+5C6rnjocLqcyFYo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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, 5 Mar 2026 01:48:49 +0100
From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, <qemu-devel@nongnu.org>,
	Paolo Bonzini <pbonzini@redhat.com>, Peter Xu <peterx@redhat.com>, Philippe
 =?iso-8859-1?Q?Mathieu-Daud=E9?= <philmd@linaro.org>,
	<anthony@xenproject.org>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v1 3/5] physmem: xen: Conditionalize use of the mapcache
Message-ID: <aajS8ahPOaE_g5q1@zapote>
References: <20260304015222.979224-1-edgar.iglesias@gmail.com>
 <20260304015222.979224-4-edgar.iglesias@gmail.com>
 <alpine.DEB.2.22.394.2603041606480.250016@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <alpine.DEB.2.22.394.2603041606480.250016@ubuntu-linux-20-04-desktop>
User-Agent: Mutt/2.2.14+84 (2efcabc4) (2026-01-25)
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: CO1PEPF00012E84:EE_|MW4PR12MB7360:EE_
X-MS-Office365-Filtering-Correlation-Id: 0530a134-e785-4650-3aec-08de7a50f870
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700016|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	aSrjvPGButsZ6z+3LAFs0fUt93q7c7LKl2Oqb9IfDHPbPOHPMb1/ZRa/2N/AfZtY9RNLgpfhop9RmUa75iIMZcvFuulRQJv6+XCfPC85eBVwbFC+1ZixclHldjripAAodUid9ku1mgXnIWahkQ14w/8rZ2itCTnQiX1AiV51PHTBxyXXR8yTFop5rTlV9IqF+tqpeJHRQBN7H5pTNk5Lbt96kjh6HTgp/GlNoptG5u1+9gp/5DQ7j/QNgGmssNfE6XfuEL3Y4AraHLwzZLt5WZk6t7OVyEOxTisMJA8mJlR4mM9d4DDB/Marz/mIzyREoCG5mDVdH/yjtHwT/CazaKV6r5oB6gniUprVhX2qvKX8yghNTqtsim0bQXcxwuF0TNVGVnAuI0yCxQy8RKjP9aEFFTWnhQFM0b/uJMhi/hncHzhSJJMXHgcEh3kCILANc6ItS3KCWdtPw2m/ZcxVHgYO+9wL+dxTuGnQFtF0KdBHXexchIjSyz8AoQzXRaUtB8zreNybdrsYMUMpcuvk+AnMY4vL0dQc+GDaM7X371sxiiTBXBoOmWuiE3HZW17WPrk+qyDALsTbwRNBnSRY1JrIDAS9o1R2fllWWcRpWU4qE13eUuqAUUpgUdXwO48cZF1T4z18Jxtb4J/ZpnL1WtJFeNKz72+eEeb0BysNdlOVhSYI6ZUHWc0THo4tbaJbEBX5ts5BxV0afKwNxiWo9z+kcjuEHou0czbBZX0gHUrGbJFAHLE/S+yoNJMwFvcZSf4HEaoibpH+xU2QRiLjMQ==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700016)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	txNWR7aYI+raqgKNKqS7mD7AT6urrqvmst5MvXsT6fATdPzWPCxssEkmkAPqoy3qjMWzJthY06ngIyifu/0tthYQfHEoI3pqlFL00r5dGU6rpP2vvM7F+yxqiBSckHh/MGQ1TN/n5wcL9dm0AQME55kiOcbTvL8XOt0nsakxWSHwvKE2dUaAVtk/doO4UiekFVW1ChtRN9O8JZkN3nkfnULGz8acaI6y0G269D16QwbeZv2xwco0U2nwfsIg1lfKS9kA8P4Iik8+j1tCkhJe+jOgT/eKC8+Dlh0WCg+nGgZHP6EiO9fIbQtwT0bA8vfaF0b4NcyJawLXKbox6KmI5Ng0WwAxcENDCLf5knaZXFEhFOIUoBHh94fCTTphypYDkbF6ljefH8oHPOVqzpxIsLejmB1JwrTpFOKo5oEYvZUVjvfVXkDUzhYZ1NvJfpVQ
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Mar 2026 00:48:51.6454
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0530a134-e785-4650-3aec-08de7a50f870
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF00012E84.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7360

On Wed, Mar 04, 2026 at 04:07:23PM -0800, Stefano Stabellini wrote:
> On Wed, 4 Mar 2026, Edgar E. Iglesias wrote:
> > From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
> > 
> > Conditionalize use of the mapcache. This is in preparation
> > to optionally disable the mapcache at runtime.
> > 
> > Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
> > ---
> >  system/physmem.c | 13 +++++++------
> >  1 file changed, 7 insertions(+), 6 deletions(-)
> > 
> > diff --git a/system/physmem.c b/system/physmem.c
> > index e5ff26acec..64e6d50f8f 100644
> > --- a/system/physmem.c
> > +++ b/system/physmem.c
> > @@ -578,7 +578,8 @@ MemoryRegion *flatview_translate(FlatView *fv, hwaddr addr, hwaddr *xlat,
> >                                      is_write, true, &as, attrs);
> >      mr = section.mr;
> >  
> > -    if (xen_enabled() && memory_access_is_direct(mr, is_write, attrs)) {
> > +    if (xen_map_cache_enabled() &&
> > +        memory_access_is_direct(mr, is_write, attrs)) {
> >          hwaddr page = ((addr & TARGET_PAGE_MASK) + TARGET_PAGE_SIZE) - addr;
> >          *plen = MIN(page, *plen);
> >      }
> 
> All the other changes make sense. For this one, the code inside the if
> check is not strictly related to the mapcache. Are you sure it should be
> changed?

Hi, yes, when the mapcache is on, we limit translations to the current page
because the next page might not be mapped/locked or could be in a different
mapcache bucket with a different virtual address. When mapcache is off, guest
RAM is fully mapped (same as non‑Xen), so we can skip capping plen and allow a
larger mapping.

Perhaps we should add a comment to clarify?

Cheers,
Edgar

> 
> 
> > @@ -2577,7 +2578,7 @@ static void reclaim_ramblock(RAMBlock *block)
> >  {
> >      if (block->flags & RAM_PREALLOC) {
> >          ;
> > -    } else if (xen_enabled()) {
> > +    } else if (xen_map_cache_enabled()) {
> >          xen_invalidate_map_cache_entry(block->host);
> >  #if !defined(_WIN32) && !defined(EMSCRIPTEN)
> >      } else if (block->fd >= 0) {
> > @@ -2736,7 +2737,7 @@ static void *qemu_ram_ptr_length(RAMBlock *block, ram_addr_t addr,
> >          len = *size;
> >      }
> >  
> > -    if (xen_enabled() && block->host == NULL) {
> > +    if (xen_map_cache_enabled() && block->host == NULL) {
> >          /* We need to check if the requested address is in the RAM
> >           * because we don't want to map the entire memory in QEMU.
> >           * In that case just map the requested area.
> > @@ -2785,7 +2786,7 @@ RAMBlock *qemu_ram_block_from_host(void *ptr, bool round_offset,
> >      RAMBlock *block;
> >      uint8_t *host = ptr;
> >  
> > -    if (xen_enabled()) {
> > +    if (xen_map_cache_enabled()) {
> >          ram_addr_t ram_addr;
> >          RCU_READ_LOCK_GUARD();
> >          ram_addr = xen_ram_addr_from_mapcache(ptr);
> > @@ -3787,7 +3788,7 @@ void address_space_unmap(AddressSpace *as, void *buffer, hwaddr len,
> >          if (is_write) {
> >              invalidate_and_set_dirty(mr, addr1, access_len);
> >          }
> > -        if (xen_enabled()) {
> > +        if (xen_map_cache_enabled()) {
> >              xen_invalidate_map_cache_entry(buffer);
> >          }
> >          memory_region_unref(mr);
> > @@ -3898,7 +3899,7 @@ void address_space_cache_destroy(MemoryRegionCache *cache)
> >          return;
> >      }
> >  
> > -    if (xen_enabled()) {
> > +    if (xen_map_cache_enabled()) {
> >          xen_invalidate_map_cache_entry(cache->ptr);
> >      }
> >      memory_region_unref(cache->mrs.mr);
> > -- 
> > 2.43.0
> > 


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 00:52:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 00:52:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246146.1545419 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vxwxK-0003kz-AT; Thu, 05 Mar 2026 00:52:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246146.1545419; Thu, 05 Mar 2026 00: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 1vxwxK-0003ks-62; Thu, 05 Mar 2026 00:52:46 +0000
Received: by outflank-mailman (input) for mailman id 1246146;
 Thu, 05 Mar 2026 00:52:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PFhh=BF=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vxwxJ-0003kl-Az
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 00:52:45 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9d0f3f9b-182d-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 01:52:42 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 965AC61340;
 Thu,  5 Mar 2026 00:52:40 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 39414C4CEF7;
 Thu,  5 Mar 2026 00:52: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: 9d0f3f9b-182d-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1772671960;
	bh=fwGZAvEnOWJP1q88WAtMQ66ow+06FNYeMCKKffwLsNk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=FqcfnY3P0kA97DAbjwb4HiVnesUTQqEmhtNX2YYJEgXrujXjDqjDZDquiZl0d017M
	 BVyUwf2Kx4hrvxjgVvUHiJ+pTSzRUc+Uyk4aqzdZotfyBqI9yB338+ACLBrkqUpHUK
	 IIhDkllhxR0HLN1yQ/aERVbYq13OW8+4IlBgxx1mXKUWT8UZCYed5Hxr7Fgj8jD9lW
	 UIvbjbBC4fZewgO0zPp4w2I2Vhm6DGTVAv2HY1etoD7QaysKhK7w0dnMNncjrzPzOL
	 YhN7SymeUQMuJo1arxO/0gPuIz22Y1RGKqBqTr5u2k4uSAE6LcoNXXZs5PP2YoD6pC
	 0ll/DQYEvL/WQ==
Date: Wed, 4 Mar 2026 16:52:37 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, qemu-devel@nongnu.org, 
    Paolo Bonzini <pbonzini@redhat.com>, Peter Xu <peterx@redhat.com>, 
    =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>, 
    anthony@xenproject.org, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 3/5] physmem: xen: Conditionalize use of the
 mapcache
In-Reply-To: <aajS8ahPOaE_g5q1@zapote>
Message-ID: <alpine.DEB.2.22.394.2603041652200.250016@ubuntu-linux-20-04-desktop>
References: <20260304015222.979224-1-edgar.iglesias@gmail.com> <20260304015222.979224-4-edgar.iglesias@gmail.com> <alpine.DEB.2.22.394.2603041606480.250016@ubuntu-linux-20-04-desktop> <aajS8ahPOaE_g5q1@zapote>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1595222509-1772671960=:250016"

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

--8323329-1595222509-1772671960=:250016
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 5 Mar 2026, Edgar E. Iglesias wrote:
> On Wed, Mar 04, 2026 at 04:07:23PM -0800, Stefano Stabellini wrote:
> > On Wed, 4 Mar 2026, Edgar E. Iglesias wrote:
> > > From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
> > > 
> > > Conditionalize use of the mapcache. This is in preparation
> > > to optionally disable the mapcache at runtime.
> > > 
> > > Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
> > > ---
> > >  system/physmem.c | 13 +++++++------
> > >  1 file changed, 7 insertions(+), 6 deletions(-)
> > > 
> > > diff --git a/system/physmem.c b/system/physmem.c
> > > index e5ff26acec..64e6d50f8f 100644
> > > --- a/system/physmem.c
> > > +++ b/system/physmem.c
> > > @@ -578,7 +578,8 @@ MemoryRegion *flatview_translate(FlatView *fv, hwaddr addr, hwaddr *xlat,
> > >                                      is_write, true, &as, attrs);
> > >      mr = section.mr;
> > >  
> > > -    if (xen_enabled() && memory_access_is_direct(mr, is_write, attrs)) {
> > > +    if (xen_map_cache_enabled() &&
> > > +        memory_access_is_direct(mr, is_write, attrs)) {
> > >          hwaddr page = ((addr & TARGET_PAGE_MASK) + TARGET_PAGE_SIZE) - addr;
> > >          *plen = MIN(page, *plen);
> > >      }
> > 
> > All the other changes make sense. For this one, the code inside the if
> > check is not strictly related to the mapcache. Are you sure it should be
> > changed?
> 
> Hi, yes, when the mapcache is on, we limit translations to the current page
> because the next page might not be mapped/locked or could be in a different
> mapcache bucket with a different virtual address. When mapcache is off, guest
> RAM is fully mapped (same as non‑Xen), so we can skip capping plen and allow a
> larger mapping.
> 
> Perhaps we should add a comment to clarify?

Yes please! Add a one-line in-code comment, and with that:

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
--8323329-1595222509-1772671960=:250016--


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 07:18:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 07:18:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246208.1545428 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy2yj-00035z-86; Thu, 05 Mar 2026 07:18:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246208.1545428; Thu, 05 Mar 2026 07:18: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 1vy2yj-00035s-4p; Thu, 05 Mar 2026 07:18:37 +0000
Received: by outflank-mailman (input) for mailman id 1246208;
 Thu, 05 Mar 2026 07:18: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=00Q8=BF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vy2yi-00035m-9M
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 07:18:36 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8412105d-1863-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 08:18:32 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-439a90f194bso3843852f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 23:18: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
 ffacd0b85a97d-439abdf5430sm37530903f8f.5.2026.03.04.23.18.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Mar 2026 23:18: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: 8412105d-1863-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772695112; x=1773299912; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9yv7oBYtDclcfyhKCmhWSB01nKNJwfpg+GASZYYfBMU=;
        b=DIYXmX02ocdvkhzDuvZZhz2b8CCcweRj4ruy+55PEFan9N86m2zgvbxOcVjQvE8TkI
         If/JUxuVL7ZIUjGk0eoCSSYoofQ9Tq+zr19ET8kWuFuCcRkuSNZ2bqTTLBf4hQc1QOnI
         tn6AsWmw1fhiIsYBZZhZ9iyJtjkBQbp8NBETKbNVlC6xFZ9avzn4Mp7eOxHecOgOuis1
         +I0lumeXQQS0CK1FHjHQg9g/oOsDynMfXWRCvi33s0jCuGTPKXvKsYHr45QRpxapOT53
         VMo6W4nUQs5ntCR7P+uO2p5kZ7afVJjb65cP29vOh6cky7zb54szufpl3s1cNTRXGw/K
         CQrA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772695112; x=1773299912;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9yv7oBYtDclcfyhKCmhWSB01nKNJwfpg+GASZYYfBMU=;
        b=QnfJOumtu/LIgbExyL31NsQIYdGXM2OE2mhGJC+3mxUAzLypHrwgfYbB52+GsoiliY
         EzJMrS9GeFHc757SMZUmehIY1hPW341HI5vg+W1fRYaXDVjUqyPcOM9+TKsLdJr6VUEj
         owKFIMxmcn+UIjdM2OxstfSBs6TjNdiws1BMl0vgPdVWkQpWLVLeRFFtDd3r+VuDpwGx
         2LczDE+5WaOzzIoSSLUvSr3y13xD4kKNpt2/wbYBjZs0YfY9jRdCA/sg6lzQXSrsvz3w
         bKhLdg1+z/EuLGB3Je6bdr1nBj1/qZ3Fq4ZAJb9XjYJZWetDcGnjx2ZwIsNNtEvTlx98
         btCg==
X-Forwarded-Encrypted: i=1; AJvYcCWrWUDIfzqc0U7iSgbieGE9ui6zPj4jut+wQQw/rWuP1mjORRo8RANxmWipmwgPkTh7us7FLdWEprU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy/jGfyqVx6+LChx1TkgqqnDbKGZi5COyNa86hZVJnQSyNUI7MI
	bzhnw2Xjj2aBJtWqjc6awil0XtDhf56tOreR1vLcbWpaEhfn7TEovetxDB2uimgyKvBwDkAu88K
	Giw4=
X-Gm-Gg: ATEYQzy6XxdJiET7bW42hLz8qKNpi0X2F0BfVfLmKWazyqbog7hDZ5Ln75BdXvdkb7O
	1o6+F2DGKM9os3nfkKuDLYBE9lMyVMZpYkz8kouEoFmmyEQinyiYewYQ99eQtYXhXJt9nZRgExo
	USLPuqeThnTFtH825/RBYQvaz+B+z03RMZPZptihCGDh343kPYloPtHwu5T9K+jyFxAQvcqrsdL
	gfK/24uNggZZwUVynxkvFBbVA3WqVn7fGkdWy9UO7/hJYk0ugWAoyiYjLhYHrrcNBCSvVMkyrXK
	IU4PTPIjJvsuf/4cW4/bzAZxtFPvrUHhfQWrSTQeQrRsOTpbozlrHIxzMC/HzhSPbnN9wvAtFKY
	tj5BVHcYi/rAMYb/VwQrA86GzsLftjrPotwcZgO0bb4tiU4ICFkH8RmSnD4Hmc3gGOmiHhRg7q8
	svzIUbFoi46MEDxgV99IVeI5oM3fv+n/pWnIP/jucnbT09gCPUmFDW+hLLjNJESMy0xf9qB0j+F
	sNuHXvLPF3z00Y=
X-Received: by 2002:a05:6000:24c2:b0:439:aeeb:53e2 with SMTP id ffacd0b85a97d-439c7fd304emr9063120f8f.29.1772695111648;
        Wed, 04 Mar 2026 23:18:31 -0800 (PST)
Message-ID: <6d88e3d7-3059-41ca-bf4b-6c9232e9f8c6@suse.com>
Date: Thu, 5 Mar 2026 08:18:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 03/14] xen/riscv: introduce tracking of pending vCPU
 interrupts, part 1
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
 <a1954e9a30abace453f4604a47b43ecbcebe350a.1772016457.git.oleksii.kurochko@gmail.com>
 <6357ad3f-85c8-4fe4-a2c8-8b0a0a97f1b3@suse.com>
 <32bd2cc9-86ee-4470-af7c-f52838e0c4e1@gmail.com>
 <23b77208-5321-4dad-8974-f943b38ef104@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: <23b77208-5321-4dad-8974-f943b38ef104@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.03.2026 20:29, Oleksii Kurochko wrote:
> On 3/4/26 4:07 PM, Oleksii Kurochko wrote:
>>>> +void vcpu_sync_interrupts(struct vcpu *v)
>>> The sole caller passes "current". Are other uses of this function 
>>> planned?
>>> If not either "current" wants directly using here, or minimally the 
>>> parameter
>>> wants renaming to "curr". In fact ...
>>>
>>>> +{
>>>> +    unsigned long hvip = csr_read(CSR_HVIP);
>>> ... this suggests it's unlikely for the function to be valid to call 
>>> with
>>> other than "current".
>>
>> Agree, I will drop v argument and use current inside 
>> vcpu_sync_interrupts().
> 
> Then would you be okay with using current instead of v argument inside vcpu_update_hvip()
> and vcpu_flush_interrupts() introduced in the next patch?

If they're going to be used only on current - yes, sure. Of course in the
overall picture you still want to consider whether to have every function
fetch "current", or whether to have a caller calling multiple such functions
in a row fetch it once, and pass it into the functions (possibly adding
ASSERT(curr = current) in each of them).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 07:22:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 07:22:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246215.1545439 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy32K-0004Yj-Ng; Thu, 05 Mar 2026 07:22:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246215.1545439; Thu, 05 Mar 2026 07:22: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 1vy32K-0004Yc-JT; Thu, 05 Mar 2026 07:22:20 +0000
Received: by outflank-mailman (input) for mailman id 1246215;
 Thu, 05 Mar 2026 07:22: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=00Q8=BF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vy32K-0004YW-1W
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 07:22:20 +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 0b04010a-1864-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 08:22:18 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-439ce3605ecso322610f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 04 Mar 2026 23:22: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-439ae0e7abasm35460460f8f.23.2026.03.04.23.22.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Mar 2026 23:22: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: 0b04010a-1864-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772695338; x=1773300138; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7e+isCW/I9FrRY3kOc/NnHm7ijvXSJCvzCcAYg5805Q=;
        b=bRGKWNX706lZ73geg5oZWWHAhrcu1atTyx693cuPz2N0yJ6FQN0e+rwRExEDwL185y
         KrF3PUCBfIKCxtTy6KIdwxa7VzdgoV8iyfR005mq1naoZxtF5sWQTuAxha7oIH1WCZL/
         nOORyO0BzZ4YtFQL+deyuEiJBtC5LsET0G1AhMU9w9ENDb/aaHlixo8L8K635FlMx1i0
         H+ajU+Dedl+5hCT9ckm6UctTFEdcsX8a3/W6DPi6rI1SBRNlx3H92VYsOagTZZpyN3oL
         hOfsdlJXRubY45Uzr0se/QRTYWI6+rMw/xgtftaMg5t/FWn05aUkM6862L0YERXX5S6V
         wPvQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772695338; x=1773300138;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7e+isCW/I9FrRY3kOc/NnHm7ijvXSJCvzCcAYg5805Q=;
        b=UNweELXWF/ur4geeOvEcpph1NCE/BfRzZfghwMpxQ35OzW/UkljTW/M6Qk7ZxGct4d
         VkRbIHeb4NdNF639FRSfDgG0i5trr+dFtKboXKguwzixRW7RdYY+/ropfFXGHYy0T8m1
         gNvak+cDFgJSeqHMgCL20j2cOSYi1Ps/RHIT0XGxWNJY6XxApdIFPvEHHTFubwjOSbM5
         Tww5FV1DKBrB8iRXjKBeg9c0hu8Te9s/k8zj5+2fZf+ohDPfsmHzxTTTHQM7uqy+ppOF
         z7B2lagBMVCGHc58h2v1lbKX1OLmqSSo8DifPx1D+gNo8LGG6/pafXzXrLpTl8R5kwSB
         zwrQ==
X-Forwarded-Encrypted: i=1; AJvYcCUj/ueYTsL7dGDeLPvqOUlheFPMrqzRW8bvQe0/8vUOH847lwtoEefup8FpoOQIeHxwj6HLNGF2IGE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy16TCkelDW8LlqZ2dVdwxOE2Me691RDeKfHpj1IQxPaQFjto6x
	pMr9T5uoOO5RSE1wi6oGpSb5jXD3JjrsCHGcTSlYkvr89ca/lbeinQITqGthwoWvew==
X-Gm-Gg: ATEYQzxfAhghSHerN0kv/rEfCAHanj9oWgf/H24mdo7B0QeKnZJptaslO1gb0UGhhL5
	YEZnEEiyFgm4WacT7YAHA+215bRvU2rP7xLWkix/cr0wYgxEnAtb86BDkuafmL2rNCeYnp+MTUv
	VpJt5eI3IUYlIqETLJFYZJJiOma9z5hlRbczPnMxbsvn33HhClq9O+FIe9M5RAEY+IUGVwC11zB
	kQd8NA70gYQP/6LkAscqGxyT2F2BP563Ddi9YvUpSP827cyXzyc5WXjcF0oklG37gqVaxLBH5l1
	TKY/oB+eqhbCZhNchK+N+6S6+K9Xf+taY84LBZ9Ryk26on7dz1O7WTOud+BbRGBMdT8g+2H+WH0
	1MurCPEEiS3+PDDkBmQ8REnFXw+ACQmTTZwSKt5pCJz6xG70dWlYyQQypLA5ZSD8SqQqdUIlQV3
	m3Rll7GyJm0Ke9sCK6a1haKgWFthDPojv3vGG+dAHdgMOHcMKp9uMcqJ+zdmqFrqzz9EzUnu6zw
	zo9xi/fcudP/lM=
X-Received: by 2002:a05:6000:609:b0:439:af25:e4ea with SMTP id ffacd0b85a97d-439c7fb73b9mr8778964f8f.25.1772695338085;
        Wed, 04 Mar 2026 23:22:18 -0800 (PST)
Message-ID: <63982343-6929-4ad6-9f33-61f6c1db5eb0@suse.com>
Date: Thu, 5 Mar 2026 08:22:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 02/10] xen/page_alloc: Optimize getting per-NUMA-node
 free page counts
To: Bernhard Kaindl <bernhard.kaindl@citrix.com>
Cc: Andrew Cooper <andrew.cooper@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Roger Pau Monne <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
 <c56658d1248660543fdba162810b0629c081bd94.1772098423.git.bernhard.kaindl@citrix.com>
 <5e4d4674-1e1a-4902-bcd0-a24fbd13dc8e@suse.com>
 <LV3PR03MB7707E83CF01464D69AF1E599877CA@LV3PR03MB7707.namprd03.prod.outlook.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <LV3PR03MB7707E83CF01464D69AF1E599877CA@LV3PR03MB7707.namprd03.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.03.2026 19:21, Bernhard Kaindl wrote:
> Jan Beulich <jbeulich@suse.com> wrote:
>> On 26.02.2026 15:29, Bernhard Kaindl wrote:
>>> This only needs moving the ASSERT to before the subtraction.
>>> See the previous commit moving the BUG_ON for outstanding_claims.
>>
>> Please can you avoid such statements? You won't know in which order the
>> patches are committed: Patch 01 may go in weeks or months before patch
>> 02.
> 
> Thanks, ok, will remove.
> 
> - NB. I do think the first 3 commits should best be applied in one go.

Such would want stating in the cover letter and in all affected patches
(outside of the commit message area of course). Preferably with a
reason (it's not quite clear to me, I have to admit, but then I also
haven't looked at patch 3 so far).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 08:08:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 08:08:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246243.1545449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy3ka-00024S-6g; Thu, 05 Mar 2026 08:08:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246243.1545449; Thu, 05 Mar 2026 08:08:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy3ka-00024L-31; Thu, 05 Mar 2026 08:08:04 +0000
Received: by outflank-mailman (input) for mailman id 1246243;
 Thu, 05 Mar 2026 08:08: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=00Q8=BF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vy3kY-00024F-DY
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 08:08:02 +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 6ccb5f44-186a-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 09:07:59 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4836f363ad2so90745145e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 00: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
 5b1f17b1804b1-4851fae02a8sm39359085e9.5.2026.03.05.00.07.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Mar 2026 00:07: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: 6ccb5f44-186a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772698079; x=1773302879; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ll9oBLATbnRIzMJVChV4eHyxGWZ6bdG7yEjwsKUccM4=;
        b=aZTmXXczQtfPnc7xGMybMS+9ZcZBZnx2r8PPI9uAbB+xT5JjNSPHk/gtHFH0Vi2bbz
         NzLQU4aOVzY3XaRMh6ip4Slxtgm44X6z9AS7vjc2KRp2yvTjbhFw7l43bFkxaJ41jPIa
         pi/DmKSL9jo1b8IV9+7X8bbMgol68Q95aMHonA98jbEL4dMTvXfZRGJMOkZACDvGlzoc
         AVNGFvUKhWvortwJvEv+XQo6seuqyiuKu+9Xf+yB3hj8gkouqp7UoIqEEyPjLQQDWLBU
         CSXa5XYsYK+ki0tqiDyP+54KSVCEfNAr5ITnud2jHVukCzgQaQ9jLNBFsmrOWWu2k13j
         G/PQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772698079; x=1773302879;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ll9oBLATbnRIzMJVChV4eHyxGWZ6bdG7yEjwsKUccM4=;
        b=b+VCmg9taLDnDv4nUGueuIuTuy1UYV20vKSI80VcZe+kdQLLCctJ0NcE44w6op/heQ
         vmMlKVJAOvaqDYmsu/mynGSmoDYMrw5d+f4wGga/skXFl3rNuCIiacJ08watIIjIHFM+
         0AuTHy/Ckul8mBtqogz4ic0tK7fQx3mMhDK9k0Wl5N3aKpU/tuVGigph1IoWMjZ4vpyH
         f3gL7KC7/GDsnsypN+CcWcuhCjdKlW+hywtQO97IAozAkGhv5D4DvoTl2/P4ZnANkFj5
         WWyYfMN26Z+5m2Jc4IqZ+3ts1zKmU/BjCSKaqJs0moEJKXzQFMyPmjTOpYHaBJL7mY6P
         xcmA==
X-Gm-Message-State: AOJu0YyEjXGcEDQI1sljuhm4jQvoWevadX6gUAEcU+PnOSH1/jnSQF/v
	ybP2Yu65VraQyt1qZmlypqhCa/Xjg+yUvubf11qH9DhtPhq9btceEQPvOgJ2NmO7Lg==
X-Gm-Gg: ATEYQzzFSqG53UbIuWL77udaHA1y7cZ6baDysRVuehEOr/hMbgYKBH97VK5Fmw4R8Pj
	a46+XEnx8BrJwwf9WCb1Ir3Oyrl1O8Eg5QGVoNyP0d+AQZIMKxfISS/zbkKlmPVAdaOWLSpTKww
	mwIL/loMnT5dON7nfxLIUdn5knACoHOcGUil5BggVIW6If+3eIhdSY6NusUG43apte4xU54VRnv
	FBmMx/z0jcgldjJTlIkFWh9ucJ2/HxvjUydoG+9peBVGz5HZ/9QTK/NWMtwhOPod+C5B1cUjodk
	Fd6ZZ/hX+UlSIeJTAALizaWi21s84reLfOVVw/sHYF+T2nIoAI7NHiorEX4lC6OWnjBeidywbJX
	1WGJXF0sk47+SvDj0V+PVHg/GVj3d4VrlG+Xdix4pcAbZg6+tj6D8LrskIt0zMnFBRBeebOskEU
	rn+WMrYvAaLtRfQ3u4S+ihr/yUVPmWebE/haEM/RzfU0BtIecBKc3cx7Mdah+qLFOsnPTs3jDIZ
	P5eaXFB2kzg1oA=
X-Received: by 2002:a05:600c:c4a5:b0:477:b0b9:3129 with SMTP id 5b1f17b1804b1-48519831168mr73337455e9.3.1772698079120;
        Thu, 05 Mar 2026 00:07:59 -0800 (PST)
Message-ID: <1f80f87e-8e58-45de-8785-1efec5169176@suse.com>
Date: Thu, 5 Mar 2026 09:07:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] domain: use unsigned loop induction variable in
 complete_domain_destroy()
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: <7af56fa6-4254-4704-9843-a0d099e6bb0b@suse.com>
 <aahSBk--J_xqEzOq@macbook.local>
 <80129c3a-77cb-4cb1-b3fd-128454e3db0b@suse.com>
 <aahtt0zo0nCb1eSt@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aahtt0zo0nCb1eSt@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.03.2026 18:36, Roger Pau Monné wrote:
> On Wed, Mar 04, 2026 at 04:48:07PM +0100, Jan Beulich wrote:
>> On 04.03.2026 16:38, Roger Pau Monné wrote:
>>> On Thu, Feb 26, 2026 at 10:01:45AM +0100, Jan Beulich wrote:
>>>> --- a/xen/common/domain.c
>>>> +++ b/xen/common/domain.c
>>>> @@ -1475,7 +1475,7 @@ static void cf_check complete_domain_des
>>>>  {
>>>>      struct domain *d = container_of(head, struct domain, rcu);
>>>>      struct vcpu *v;
>>>> -    int i;
>>>> +    unsigned int i;
>>>>  
>>>>      /*
>>>>       * Flush all state for the vCPU previously having run on the current CPU.
>>>> @@ -1485,7 +1485,7 @@ static void cf_check complete_domain_des
>>>>       */
>>>>      sync_local_execstate();
>>>>  
>>>> -    for ( i = d->max_vcpus - 1; i >= 0; i-- )
>>>> +    for ( i = d->max_vcpus; i-- > 0; )
>>>
>>> Is there any reason we need to do those loops backwards?
>>>
>>> I would rather do:
>>>
>>> for ( i = 0; i < d->max_vcpus; i++ )
>>>
>>> ?
>>
>> I think it's better to keep like this. The latter of the loops would better
>> clear d->vcpu[i] (to not leave a dangling pointer), and there may be code
>> which assumes that for ordinary domains d->vcpu[] is populated contiguously.
>> Hardly any code should touch the vCPU-s of a domain destructed this far, but
>> still better safe than sorry, I guess.
> 
> Yes, you are right.  sched_destroy_vcpu() relies on this specific
> top-down calling.
> 
> Since you are adjusting the code anyway, it might be worth writing
> down that some functions (like sched_destroy_vcpu()) expect to be
> called with a top-down order of vCPUs.

I've added

    /*
     * Iterating downwards is a requirement here, as e.g. sched_destroy_vcpu()
     * relies on this.
     */

ahead of the first of the two loops.

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

Thanks.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 08:16:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 08:16:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246254.1545458 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy3sP-0003db-TO; Thu, 05 Mar 2026 08:16:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246254.1545458; Thu, 05 Mar 2026 08: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 1vy3sP-0003dU-QI; Thu, 05 Mar 2026 08:16:09 +0000
Received: by outflank-mailman (input) for mailman id 1246254;
 Thu, 05 Mar 2026 08:16:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=NtvN=BF=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vy3sO-0003dO-LV
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 08:16:08 +0000
Received: from BN8PR05CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c110::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8ee91161-186b-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 09:16:07 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by MN6PR03MB7670.namprd03.prod.outlook.com (2603:10b6:208:4f6::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.17; Thu, 5 Mar
 2026 08:16:04 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.016; Thu, 5 Mar 2026
 08:16: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: 8ee91161-186b-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=C8EscSIkYhwy37DDGXCQKkzLGtK9lLCV1+hvrG/xQ4DI4sbWdSmsI5+YII3LRvnu78RloW+OXUP5MwaSnx+Ce2TmGKYuytpZd2A6JOm87IWOp+K7UvNKnOhnRGBtpRaNOIugRjEv6SNp/jH8w69mcmwURPlwp383RbfP9Ve3CdPhgtFTcmabDabQ6zsRkiR7SSlV305DkZnY5FoeuirH2Va+m+sIRILPhXVgbOpg/Qqdz2GFaqycerqLw5znbZsTZBl7/iw7XTzFccUXebgNYFjcyrLw63/17CE6Cp+BY3wey760r7OkhCQaaboTEcIHiekEzFLY3QIg0zvFJj/Mrg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tXrrTFjBnPUpxvOLmHQfRDee3fworYRtsARCth8g27o=;
 b=WDQ+r2/VagFGjOQbeNOPzEqSEd63UP4YFNjhhFJFyli2+wTvaTYb0knDqzZ9cn/0MD7D4f4AtLxI6nwaXHRI9EIwghntaXp3VoDmh5g7+frhmloTM214KXHpAZ8ujbgmsQCCyZVbSlrT9kr5BWzOFNgQ9ItBmehucM1clPh+z2j1j28QFSL+dppVplE91+l+bVLOpIVdftWt2FH/Pu3SuoDRYU8eDXRZUO1BsMDgiivgsLmKGoVEbHCTJ2AQWkJ6EcYGvu8T++k/YEOHpuvHJaa+dmzhPHaATRZl4in32ISXr2tXAnqaoVlhoEvDWMT7/iiDEDfia//7u4sa2W+yRg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tXrrTFjBnPUpxvOLmHQfRDee3fworYRtsARCth8g27o=;
 b=P2m8dd2oB7z1bI0l9M44IU+H5GMtf0pboBko8PvOUHvsncxuCZ6d2uVi8aHX8xaJxAzEQ+3VlMnm488OuOKSIt44/9U1kborbHhWjI6OpW0r3fOKKNRW8yfJv4aAjYEeyqIpHXhPCa0GrHmpeGSsB3fnlJUIHeaRZz/Ppn3pS6c=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 5 Mar 2026 09:15:59 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH] domain: use unsigned loop induction variable in
 complete_domain_destroy()
Message-ID: <aak7v6VGUcNREXAW@macbook.local>
References: <7af56fa6-4254-4704-9843-a0d099e6bb0b@suse.com>
 <aahSBk--J_xqEzOq@macbook.local>
 <80129c3a-77cb-4cb1-b3fd-128454e3db0b@suse.com>
 <aahtt0zo0nCb1eSt@macbook.local>
 <1f80f87e-8e58-45de-8785-1efec5169176@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <1f80f87e-8e58-45de-8785-1efec5169176@suse.com>
X-ClientProxiedBy: MA2P292CA0025.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::9)
 To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|MN6PR03MB7670:EE_
X-MS-Office365-Filtering-Correlation-Id: 1615daf4-4922-4e70-92cd-08de7a8f70a0
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:
	Pbowc4iC8uTzPeOIGHNUHl8mZJo43h+KS9MIKZeQNb+sfbGyvCvqaYuBjC5PtEfPE/d2euyHLyBMmle+71iiwm3PKGjgA7i+j7gAMyy4Tjqjm+7KkkeziBVfIacxKACZh1JGAP04sJttmgCry4/ii4oQvp4P1jQNlPDD/Ej2+X5i8YsxiRe3YAy3zTPkHfc6ycVc8kPgYxJlIVBGnWNmRjLJmdbqhj891SkppElVxPx22awnUzyGWjFNIXkNNirm/eLch53hrNvmhYo/sogkF8e4h5DZM/sDLHO3g4/HtdLK+3CADLJ0tDWO0XqVUC+emYKXvAPmLVs39kU7kxo3M04k0i8Knt1GowZnEPNmQ5rv27F8fEoN7U62DN3OCv8P/H6oukoXxFpjS7+YHfrfQhT9jbAX8BPpuzsIOR5rrIWxiwflwf+NkNjM8XoJbtc+pC1vN8UDa+vRsn+Lk5iMG+4kVFGBtx86ue0kMc1vyZv/WynAZPUV+4nRD01TOUE5KU15UtsidTBC18pKOfV26EFVwt04JFKDnTrvqcN3quYHuOG7QWSGHZzlJsRUkBC84DrXkrKYPekD2Uz/lkkCnSKFlWvWA5O+iJhUhp8/kJHFahgN8b4+1pS9KRTJ7eLQy8AFWlTSk/GO0e9j7MsJqd+/4NeVSUFIfuy9ug75AfgoyMrlK+3DYrNBGS7RIrtQFt57YI3snRbJY9I/95k/cbllXEEWNbRVpDAW0JhicQc=
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?TGxpSURiNWJ6NjhTaXRCSG9EaGxmaHJKTFh5NzVQSGNrSEVjZ2NQTHlLVnJP?=
 =?utf-8?B?WkY0bUxaS0Rvc0svd0JiNExVL3pUeHRwck5ncVZkQ0daSVh3UUNlRCsrOURH?=
 =?utf-8?B?STVyaitQbnI2Yy94UFhtRnAreTlvb2dkRDRtNmNSOGFyYVRVMklrNzdVWG1u?=
 =?utf-8?B?WUxxMlJSYTcwc1FDc0ZaZUZNejgrSGdkcXB6cnNYWWdhcGg4YkJxb3pyVDVM?=
 =?utf-8?B?b3c1SGhjdk95clY0bjVXTTNMTDZGUm1adWgyeTU1eTZKYWt0d2JsUkoxOFBN?=
 =?utf-8?B?WklpaDRBNnE2VVVibXc1RWlRY29FYlVxTm1kamg4ZUFGblAyWkNQdkVvSWM3?=
 =?utf-8?B?eG5qdUdlSDZ5SytHeXR5aEFIQ0FabDhPME54TkUxWlRldFYydHZaUG9QTHIz?=
 =?utf-8?B?bi8yTHh2T3lreUFPK0pLSXlQY2paUm5lWVBTVWlYRTluUHFuVlgyZFFEbTR4?=
 =?utf-8?B?N0p6eFdUUmZVbSsxbjJ6ZUpSWER5TG9PdFl4OTBaeFJiNC9EUmFpaGp5a0lH?=
 =?utf-8?B?ZlUwaDA0V0hwdzJmd1JOMWlseXBrY2xOa0ViZFpreGp0cEdTbU1DTmZHRmhO?=
 =?utf-8?B?L09ZeUdSN1l1K29zVWlCaXo1djBRMjZtN1BBalF4WXlic3NpTVNkZUUrbTI3?=
 =?utf-8?B?ZzBjMStSZVBqYjZCcHFXOER5NENXc1JNdXBXUzFQT0Z2ZkplaFZDYjBtbGxC?=
 =?utf-8?B?cFhkMnVCeE1aM1pKZEg4WGVzOHlRT2NYdGgrZVpzY2Nsd1VabWU2emMyWUM5?=
 =?utf-8?B?NnAwMXRsREw5aHFrT0cvNEJ2RUxmSy94NDkyUHlxVlE1cUFzdHNWSFdYa3ZW?=
 =?utf-8?B?QmlYTmxhK0h5S1hEL1dySXNZVnNWMU92bDBxazBXdmZpM3h6N3B2RzZJWndD?=
 =?utf-8?B?T1g4b2FwbzVQMjNsaUNpdWJqSHFKaldkZEZjbEY4TVRLemdUc3hOUXhGVzE4?=
 =?utf-8?B?Z01RUDJEZFllaHdNRHlyTWtiaXkxU005Q0pIcGMybVl4T3pYZ3JKRFFPOTJY?=
 =?utf-8?B?MG0zWGd5L1dMaWJNRUhTRmRFSGI4RTBJZ0RKeWZGQUxBd090aDRjY2paanFj?=
 =?utf-8?B?ZHpIZmZXY050WnFYaGQvNDdDQXdWMHFZcENVMzNGOTVvM3B1TmZuME13ZnZE?=
 =?utf-8?B?WWZ0UFVBUHJtMy9xY0I1b0h3RUhLT3BYMFRWZkI0WUdrdHk3WXk0UytmQkJ5?=
 =?utf-8?B?S3ZjUGp2R2lUOWhMck5SM2tHVHJsdkJLejI0eDdCMnowZHlIc3NjcDU5RzZw?=
 =?utf-8?B?bS9Sc3FVejM0dDhaUzZFSkRpR1hiQ21VNjZBcEU3TStnUVhqWHBKS1hDaDBk?=
 =?utf-8?B?aU9rcU1acnFNbnl2a2t2S2dmcjRSWGNKU1RFZlNaVUh3bUdjVWlNbTZYNEVV?=
 =?utf-8?B?NGYwbWpnSnovelIxNkkvMklDMm9tanp2ei9sdCsydURDNldwUDZNT1pkeEZq?=
 =?utf-8?B?Mk1uN3pTOE1ZeHFld21rNzliNEtsb3BLQSt4UWZlQ3dNc2U3ekFCS1d1dzN3?=
 =?utf-8?B?TTRPcDRkRG1sWWVrckRqT1ZaRExzVDlFbnBiOXlJOUlHcFllS1g1UU5nNmpm?=
 =?utf-8?B?b1lSa083U3o0N3g3LytwNzRYSEpTN1preksrbjdiSWFIanBESkdobUNuTlpK?=
 =?utf-8?B?UWRKOFh4TFhhOXExUkNmTkQrM1puSU0vaE5LVFd3UUNlUWxkdXJ2ZWEweWdN?=
 =?utf-8?B?Nkw2L2ZrTWRWbjc0U2tOYnFtaDR2MWYrYW9xWDV6OGd3a09VV1ZoY2Y0WDlR?=
 =?utf-8?B?cHVqVmNZNEZXWXo1TUZWWWtrMWxGZ1dCQzRka05PZWtaZWIxK3ZuZHB1a2pR?=
 =?utf-8?B?QjRaQU1YaWxsVy9PNG84R2dnMU1sbVpvM2dsVlFVZTA3MmUvd1NNVlNLTVpW?=
 =?utf-8?B?dFM1SktBWFh5RTNFbitYZnVPRkNiVTRBME40SFRPM3RqekZWZjBRSXkvT3h5?=
 =?utf-8?B?UmM0WWtwR1k5K3RxMW9hMHZBMnkrY0tJc3BpdkJURzM3OXcwdCsycE9TWi91?=
 =?utf-8?B?Vk9TUjRMajREWHB1a0ZWN1Jab0h5UFIwWEhPb0E3RWV3ODlqZ2tZRUhSUEQr?=
 =?utf-8?B?NXZHVEJsVUNIL2YvWE41OTRJVXlURWtDL0tVcE1XOEd6a3oyNWNGMjZzbzU2?=
 =?utf-8?B?dTRKTFBVVkh6ODlVSDFTVi9JeGI3Ykkxa2dDdFRzb1pQVmFFR0JnQythdEFw?=
 =?utf-8?B?WGpTbU5NY0YzOCt6azVZRFJHOUUvanZ3T2M4VndNVWdlUTZHTlNlL1B1QXRk?=
 =?utf-8?B?aWZyT1ExNnVpMFZJUTNBVjNOWExSdzUxRWx5ZTZwSGFHOVBLanJWNEhDQzI4?=
 =?utf-8?B?bmlMMzhqQUk0bXN5aWxrNmg5UlBpcFpKQnRpOUhDR3ZsTXRiSmY4Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1615daf4-4922-4e70-92cd-08de7a8f70a0
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Mar 2026 08:16:02.4003
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Z5HOahORdvJkpARXWbhuf+5811S69rRRgBVWRvuI/ZkQiYkb4orHoj9FzYqYpGbfXHgh2Q78QKNHUrWMf8Rgeg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN6PR03MB7670

On Thu, Mar 05, 2026 at 09:07:55AM +0100, Jan Beulich wrote:
> On 04.03.2026 18:36, Roger Pau Monné wrote:
> > On Wed, Mar 04, 2026 at 04:48:07PM +0100, Jan Beulich wrote:
> >> On 04.03.2026 16:38, Roger Pau Monné wrote:
> >>> On Thu, Feb 26, 2026 at 10:01:45AM +0100, Jan Beulich wrote:
> >>>> --- a/xen/common/domain.c
> >>>> +++ b/xen/common/domain.c
> >>>> @@ -1475,7 +1475,7 @@ static void cf_check complete_domain_des
> >>>>  {
> >>>>      struct domain *d = container_of(head, struct domain, rcu);
> >>>>      struct vcpu *v;
> >>>> -    int i;
> >>>> +    unsigned int i;
> >>>>  
> >>>>      /*
> >>>>       * Flush all state for the vCPU previously having run on the current CPU.
> >>>> @@ -1485,7 +1485,7 @@ static void cf_check complete_domain_des
> >>>>       */
> >>>>      sync_local_execstate();
> >>>>  
> >>>> -    for ( i = d->max_vcpus - 1; i >= 0; i-- )
> >>>> +    for ( i = d->max_vcpus; i-- > 0; )
> >>>
> >>> Is there any reason we need to do those loops backwards?
> >>>
> >>> I would rather do:
> >>>
> >>> for ( i = 0; i < d->max_vcpus; i++ )
> >>>
> >>> ?
> >>
> >> I think it's better to keep like this. The latter of the loops would better
> >> clear d->vcpu[i] (to not leave a dangling pointer), and there may be code
> >> which assumes that for ordinary domains d->vcpu[] is populated contiguously.
> >> Hardly any code should touch the vCPU-s of a domain destructed this far, but
> >> still better safe than sorry, I guess.
> > 
> > Yes, you are right.  sched_destroy_vcpu() relies on this specific
> > top-down calling.
> > 
> > Since you are adjusting the code anyway, it might be worth writing
> > down that some functions (like sched_destroy_vcpu()) expect to be
> > called with a top-down order of vCPUs.
> 
> I've added
> 
>     /*
>      * Iterating downwards is a requirement here, as e.g. sched_destroy_vcpu()
>      * relies on this.
>      */
> 
> ahead of the first of the two loops.

Thank you for adjusting that.

Roger.


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 08:17:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 08:17:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246267.1545468 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy3tg-0004Gv-9s; Thu, 05 Mar 2026 08:17:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246267.1545468; Thu, 05 Mar 2026 08:17:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy3tg-0004Go-6A; Thu, 05 Mar 2026 08:17:28 +0000
Received: by outflank-mailman (input) for mailman id 1246267;
 Thu, 05 Mar 2026 08:17:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=00Q8=BF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vy3tf-0004Gi-Lz
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 08:17:27 +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 be9cfc8e-186b-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 09:17:26 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4836f363ad2so90834185e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 00:17:26 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4851fae0202sm34657045e9.6.2026.03.05.00.17.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Mar 2026 00:17: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: be9cfc8e-186b-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772698646; x=1773303446; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QEjeYz6lnIlzwxWNrjsCG0up/pNF6u3rQp6W7WOXyaA=;
        b=RN+1F8fOi93FZ/Iz2PcbpI0nCJcTRweCiG+Lq3Tq72Q/72JObprmHIgRw+2XCyQj8q
         cWD87rE6SbZo7HyyH9BG3vvx8LJQmzWAuWxixTc+8LZreQU13e0ZQx/BUUbZZClYlec/
         Wf9w99JRH2IniSYnLJu40ywCxtLlihPmnt0B5Z19X/9wjBNly9/Q7FWKplWyYwZw+M2d
         kSiA6i8v5JncWk+btsZFhO8WvfSHur9EouSdkkpDa2/lh9hp4izeLSZU6aw96ucAxJVQ
         93WIHXQEShtNyULdJCzBIY9umQVNFpjeOGPXRA4YF7HMgRJm0gDwitW45qPcYaAhahoZ
         Pu/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772698646; x=1773303446;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QEjeYz6lnIlzwxWNrjsCG0up/pNF6u3rQp6W7WOXyaA=;
        b=O9FeSIBGKFykBSFMvYB/VYTr8ch2MZ636A+uoDZfxHN/tqNxYuAJ1Q/IpgEGRF0lIT
         1YpFpYvw9ivbfVe1MeZgRg8k7Z15ZeEg/3MN1I4gc8v2RnWZAAepHGWOL4KhU3EYeQpr
         k/Xy23VwS2bT3vDMvHkIJUT6ll1n1AjjtF2FPQ7+OrC86iOz0Oqvv3aOXSWzUcLZx1lz
         9Glu2L+O0Z7+czTxUOQJZSH4rRQ8NYyibQixE//7Ko0W0cNqhl5T0YW5sdLaM/e8QLpl
         VSO+8ikgTzAjU3ceJg/zeiU5bxO9bAHZ0nQHOgE5pk+q/VMWDhJZhDaZcAeHaKbUkGhU
         BhBQ==
X-Gm-Message-State: AOJu0Yy8iVV2KrjFlOWSQhQzDho2+q/NR2PF+A8FQTMts5BRHSLJY7Sz
	ZSvsDqzFACGVLLVPcPiVCKVubXfpaLMn7TnZuBsZSPw9oRZl2jwMrFiw8W5P70O0Lg==
X-Gm-Gg: ATEYQzzE6y5He/qPPWXGgeHZhyThfVU2U1Y81i6gKHV6KI+tJWgxqeonDYPxaFDS+IF
	QXjBP0nqo8h6Rvyo/G6FZZjI/xG62vPCkayBYieQ4YuOwJ3VxFejsDVKWEE+Y1Bsle+Fdu4P8Im
	iw+yt1AJs9ASzc62K8UAhFkHU4o3fo32e59FLB6i1c994871f6UFUYXXVa5gxg+P7wo1Dqj5cz+
	lVD+bVCC8vfOEPkYzWTa+SXujt+1XYBTFEyEyYnF7vJEbLN1FEtUn+V70GOBHDXBWXqwV/vUgS4
	HT/bQtpdE+H8elQLP6tN4BXra/Sgpxc6WJI0ZJDw2Oci5cDHzlSg3rxYiYY1JrA2MDjQ/0l1YoE
	z7XXBKS11f1vEaux3q+g0gMyCBw+EEgLx49eqkl/CXXfxlT7XLwv/7lLphbshG0WhZghOxfZ3V+
	U1+wTS715YYYCoBnDWAAbRQtijYjbhVI58cbgNyIqCIaQwof7+fflcBxO9kjRDMOM0YQzcUKCR0
	gn1x4Up3bo5k2Y=
X-Received: by 2002:a05:600c:8b86:b0:483:3380:ca0c with SMTP id 5b1f17b1804b1-485198bf9f7mr98613605e9.35.1772698645782;
        Thu, 05 Mar 2026 00:17:25 -0800 (PST)
Message-ID: <3449aaf7-b221-4c45-9d22-54e340167b3f@suse.com>
Date: Thu, 5 Mar 2026 09:17:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/ACPI: _PDC bits vs HWP/CPPC
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>,
 Jason Andryuk <jason.andryuk@amd.com>, Penny Zheng <Penny.Zheng@amd.com>
References: <ca1812c2-dadf-422a-a195-9c285ce08077@suse.com>
 <aahfgDDNVwJPa-jF@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aahfgDDNVwJPa-jF@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.03.2026 17:36, Roger Pau Monné wrote:
> On Wed, Mar 04, 2026 at 03:37:25PM +0100, Jan Beulich wrote:
>> The treatment of ACPI_PDC_CPPC_NATIVE_INTR should follow that of other P-
>> state related bits. Add the bit to ACPI_PDC_P_MASK and apply "mask" in
>> arch_acpi_set_pdc_bits() when setting that bit. Move this next to the
>> other P-state related logic.
>>
>> Further apply ACPI_PDC_P_MASK also when the amd-cppc driver is in use.
>>
>> Also leave a comment regarding the clearing of bits and add a couple of
>> blank lines.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Including XEN_PROCESSOR_PM_CPPC may need accompanying with some change to
>> arch_acpi_set_pdc_bits(), but it's entirely unclear to me what to do
>> there. I'm unaware of an AMD counterpart of Intel's "Intel® Processor
>> Vendor-Specific ACPI". Plus even when the powernow driver is in use, we
>> never set any bits, as EIST is an Intel-only feature.
> 
> We possibly never need to set any bits there for AMD, as those _PDC
> Processor bits are Intel specific?

Indeed, that's a possibility.

>> --- a/xen/drivers/cpufreq/cpufreq.c
>> +++ b/xen/drivers/cpufreq/cpufreq.c
>> @@ -694,14 +694,23 @@ int acpi_set_pdc_bits(unsigned int acpi_
>>      {
>>          uint32_t mask = 0;
>>  
>> +        /*
>> +         * Accumulate all the bits under Xen's control, to mask them off, for
>> +         * arch_acpi_set_pdc_bits() to then set those we want set.
>> +         */
>>          if ( xen_processor_pmbits & XEN_PROCESSOR_PM_CX )
>>              mask |= ACPI_PDC_C_MASK | ACPI_PDC_SMP_C1PT;
>> -        if ( xen_processor_pmbits & XEN_PROCESSOR_PM_PX )
>> +
>> +        if ( xen_processor_pmbits &
>> +             (XEN_PROCESSOR_PM_PX | XEN_PROCESSOR_PM_CPPC) )
> 
> Currently the CPPC driver is AMD only, and hence when using it we
> don't care about filtering the _PDC bits, because the ones Xen knows
> about are Intel-only?
> 
> As you say, we likely need some clarification about whether there's
> _PDC bits AMD care about?
> 
> Linux seems to unconditionally set bits in _PDC, so some of those
> might actually be parsed by AMD.

Or it setting whatever it wants is meaningless on AMD systems. Where I
have extracted ACPI tables readily to hand, there's no _PDC there.

> I think we might want to split the setting of XEN_PROCESSOR_PM_CPPC
> here from the addition of ACPI_PDC_CPPC_NATIVE_INTR into
> ACPI_PDC_P_MASK.  The latter we can possibly untie from the questions
> we have about AMD usage of _PDC.

Hmm, yes, I can certainly split the patch. I'm looking at it a little
differently, though: Us leaving any P-state related bits in place when
cpufreq handling is done in Xen has been a mistake anyway. What's
unclear is solely whether because of us driving things some bits need
setting (likely none if AMD systems indeed don't surface _PDC in the
first place).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 08:19:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 08:19:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246275.1545477 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy3vS-0004nB-JJ; Thu, 05 Mar 2026 08:19:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246275.1545477; Thu, 05 Mar 2026 08:19: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 1vy3vS-0004n4-Gc; Thu, 05 Mar 2026 08:19:18 +0000
Received: by outflank-mailman (input) for mailman id 1246275;
 Thu, 05 Mar 2026 08:19: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=00Q8=BF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vy3vR-0004mh-Hh
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 08:19:17 +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 001bf376-186c-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 09:19:16 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4836d4c26d3so59982355e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 00:19: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-4851faf089csm20814995e9.12.2026.03.05.00.19.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Mar 2026 00:19: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: 001bf376-186c-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772698756; x=1773303556; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RT5LRfOTjxi11ExpjXBqs4bzGkA0Zt33gMWSQGL1UJE=;
        b=Ap5k6W8xVDDj2jEkcjk9pgfnq1BJ0QZxcfx6r7awHSbBFkQqB97OHZJwKdTdvr82Tp
         S4NJlrSG0Axya114mUiZ1BKSotKvrxxw9gp+aKNP8jcUsPVqFE08H9dd1Z5VfKlL6vbh
         +FOwJemMkKp03+/lRSxTZP6bQfhvreeEOYv3yXmWsI1aKsisnTrQgYqBFM79Lgeasn4e
         5PmwTUsgcjNMmiU0HG1C12shPoZsRkqRtfaaD2TSmPEYb9TguF/9fs2yl9zA7QAEzHIn
         SUPeXbM08mrLclJ8MppEQ38C983CXE6tj2hlH2YqskWVmVICZw/DK/vCeu7zmHFIy8tz
         JQXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772698756; x=1773303556;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RT5LRfOTjxi11ExpjXBqs4bzGkA0Zt33gMWSQGL1UJE=;
        b=kHo0JRegUDpHgQG+coYfTQzQGjNGzsNEiyswA32mD79ifeuGJcelIcJTVuUX8DX0cP
         BMITnrzHYJPp0VPC8QeNbpXukDOJCcYhD1hoTx3BbjKsxgOcHuhf+yMIInWB/IU2a9yM
         9r6jbARoBDPD7bt0Y95KcUmH5KtKHgwnxD/oAYGA07RmUwvn9ZVZ1pQFLkBIwOA+sdTg
         Pzh1RBchEdY+Wj+5adMoE5yuLOzDPuYMOzwZBkDgOltwY3Q50WPtNoQkox45xuru3Y/E
         nEomBxJsFqigpqdUc5Tp1SY3fnQtRZqVDZXbLivExWM6xiM/+GPrni5xsxehgCnUxBse
         1rtg==
X-Gm-Message-State: AOJu0YzZLxfDhDUw45Pq0tgDOgwpMSCcPNDwvERKo4aE4hhDScKlh6Rr
	XWlY8tih8vnpZa4tyPsviV5FOM855Hb0zIIXmL1w+RrftkXJqWSIRAs0tcPWxhI1Pg==
X-Gm-Gg: ATEYQzwNsxivuLKNfd5yrdmuU1Sdc2k7AW1tPAKJmTZIH83R6lB5PZeQCIJVkcu3Pl7
	jjg9pnKVpjWWdaxmyGh5A8HDWbB1P7CoKTcn2yeaDzxQUQ17MOfcJl49M/G+zDQ8MRcaLKMAwHu
	O6tJP492xchwlhxH5JsdRyqWcvLGopUNteYTsfUpqFwxNJrg4K3ArzIIJ8c01BdTfXt8u/THHRB
	R55WnqTINissQ5AP2WuLZkjW30Yp5rcxoCDIyQpOMWaLe4ir8MjQVFUdHAlXqUDPbQC7PmgaT5A
	vbkhQS3sNbknSc8baWW2IrUh+acutaAm8e+RHiDipcBiM21diLfyx6pQlzuX54mvss8xwNWKmBv
	wWC09E4A2uHfVNFuoks0o8v31mZsgMizJ2st+xO2rzkwZAh0J8CPzINSBBDdCCO6JnazcEc8pyV
	nnHslC+QSkL0xbOqVlEPRMk8m5EM385Wp18lDIRWmbHIvDLzU8/8C3+eL5w8w1XFAzWPzlTVXP/
	OLMDou4VPfK3fZxpcGAGvA2BA==
X-Received: by 2002:a05:600c:6098:b0:471:1717:411 with SMTP id 5b1f17b1804b1-48519888e49mr80752505e9.24.1772698755702;
        Thu, 05 Mar 2026 00:19:15 -0800 (PST)
Message-ID: <a0d1d51a-4819-421a-8947-a8271609cc9a@suse.com>
Date: Thu, 5 Mar 2026 09:19:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] vpci/msix: check for BARs enabled in
 vpci_make_msix_hole
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: xen-devel@lists.xenproject.org
References: <20260226025740.71673-1-stewart.hildebrand@amd.com>
 <aahOeefbhHq7IZZx@macbook.local>
 <1e62a5ad-f865-4477-a899-0182dec38901@amd.com>
 <aahjwTA0LLm7JISA@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aahjwTA0LLm7JISA@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.03.2026 17:54, Roger Pau Monné wrote:
> On Wed, Mar 04, 2026 at 10:39:56AM -0500, Stewart Hildebrand wrote:
>> On 3/4/26 10:23, Roger Pau Monné wrote:
>>> On Wed, Feb 25, 2026 at 09:57:38PM -0500, Stewart Hildebrand wrote:
>>>> A hotplugged PCI device may be added uninitialized. In particular,
>>>> memory decoding might be disabled and the BARs might be zeroed. In this
>>>> case, the BARs will not be mapped in p2m. However, vpci_make_msix_hole()
>>>> unconditionally attempts to punch holes in p2m, leading to init_msix()
>>>> failing:
>>>>
>>>> (XEN) d0v0 0000:01:00.0: existing mapping (mfn: 1c1880 type: 0) at 0 clobbers MSIX MMIO area
>>>> (XEN) d0 0000:01:00.0: init legacy cap 17 fail rc=-17, mask it
>>>>
>>>> vpci_make_msix_hole() should only attempt to punch holes if the BARs
>>>> containing the MSI-X/PBA tables are mapped in p2m. Introduce a helper
>>>> for checking if a BAR is enabled, and add a check for the situation
>>>> inside vpci_make_msix_hole().
>>>>
>>>> As a result of the newly introduced checks in vpci_make_msix_hole(),
>>>> move the call to vpci_make_msix_hole() within modify_decoding() to after
>>>> setting ->enabled.
>>>>
>>>> Fixes: ee2eb6849d50 ("vpci: Refactor REGISTER_VPCI_INIT")
>>>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>>
>>> Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
>>>
>>> Thanks.
>>
>> Thanks!
>>
>> I would like to point out that this now needs a rebase:
>> The helper vmsix_table_bar_valid() should be moved to the new private.h.
>> I'd be happy to send v4, assuming I can retain your R-b.
> 
> Sure, please keep the RB.

I was actually going to see about doing the rebasing when doing my next sweep
(pretty soon, i.e. after finishing going through email).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 08:21:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 08:21:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246285.1545487 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy3xr-0006Hs-Vv; Thu, 05 Mar 2026 08:21:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246285.1545487; Thu, 05 Mar 2026 08:21:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy3xr-0006Hl-TC; Thu, 05 Mar 2026 08:21:47 +0000
Received: by outflank-mailman (input) for mailman id 1246285;
 Thu, 05 Mar 2026 08: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=NtvN=BF=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vy3xr-0006Hf-4v
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 08:21:47 +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 572b95bc-186c-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 09:21:43 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by MN6PR03MB7670.namprd03.prod.outlook.com (2603:10b6:208:4f6::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.17; Thu, 5 Mar
 2026 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%4]) with mapi id 15.20.9678.016; Thu, 5 Mar 2026
 08:21:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 572b95bc-186c-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gYNdTzTZL5EQrjiYcRRCAtPQTW+zuaD+0lQFIAZ2HpP/dtXK17WFm8P7Yh0owLnjCU2t9fMhnhFjru7UkMiNTMZAKQNgofDAhpnsmWlTu4zE5Fvo4vhO+OqWcJmDY7B5U+byFgFxHiCN0HNLmknm9KxIF+qv658cMWpoEFIuhvSizFrOB1wwp6qrMfFBka4ypyXIjaFoCHP0lmItQLvIp5YCXiUbEAfzwHpbzuFT6Q/hvG6sHZG2/6Nd8rCTWupL7BqG3QZ2/TPkb3X6wPqERyzuXcfhEaMz4con40MrURFf2Xhl2DH3T+tBVxYMaTqmz8u/OY6sZNn7sjhWn+PDuQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pbagBmizmxbYiOjp43L/459VWcp+y6LwL4g6BQXNYmU=;
 b=mOv5tPfrOav3wR696Z7G8RoiThqNSZk3MPwsW2PKyWN7N1S5SlTdw94Nwx4I07FJHA5WgzJQm5GLUAlueHpKBZ5Uoc7rqanpe+8NpHfzks7S8nxqQZK99aosY8JNaxISBQMj4W4NI3HGc+AgS6o3LwA6KZgcc+UAKt5O13Tlpls6fOvjxp/dSYzTIt2MFIf1MYRDEY7d6ye29GUa+tl4q/TC7ulqaw+Q33Mda4d8jGQAHzbyJcvFGjkS8SdMBdOI+P7FYzcKWIt0wAT/z33eWlyb8S3/AkTuOKMEblfTgHRcc2xsEGT+F7PGeiKz4iCtenVP9PQlQayMsJ/geFsHSA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pbagBmizmxbYiOjp43L/459VWcp+y6LwL4g6BQXNYmU=;
 b=Q2/nn4ewJ3f6a9N/e9NrVj7ejlf7mh89wEh3DQgkQo6zNiaim3XuVNY2DRFMomjOWpaE67Kv9nWMrxg9sH9CbZ5E/knWDBVMivHxGyp8v7Gv/8o2dpYDxAEPTwEIUEd5qpcCnHh4BBD2yKO+Yfu1kVtSrDVzHktJ9WG+iuNh9kk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 5 Mar 2026 09:21:30 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Bernhard Kaindl <bernhard.kaindl@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v4 01/10] xen/page_alloc: Extract code for consuming
 claims into inline function
Message-ID: <aak9Cr6ySfc1xEj2@macbook.local>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
 <7dd887bc26830d6c50e5bc2606391963e65285a1.1772098423.git.bernhard.kaindl@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <7dd887bc26830d6c50e5bc2606391963e65285a1.1772098423.git.bernhard.kaindl@citrix.com>
X-ClientProxiedBy: MR1P264CA0156.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:54::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_|MN6PR03MB7670:EE_
X-MS-Office365-Filtering-Correlation-Id: 83a9535c-df93-4dde-0575-08de7a90366c
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:
	yRt43RM0upJF7Sm1CJOb6/iJa0r15F07nt9XoNw2TB5wnOcy/AjJSlYd523ljW2OClFTBaAP/mlzfpoh9dlV7ElGPRtNHOOpAq10M5qNB6hf9YNKHjeTuX/tpBeL12s0GIwEAEEdxBr4PhJh4pBQHpj3UozckEcHwj69oIqVBDMCzbaPjSuPpe92xPOq54ilF7m90hJYxKJGJCa8s2OxUq00bCNsQuHqi1QcKwn6q8dYg1isRQ3LQvkg51YjSP/pAVnGH3fwbQVvXeqP0isXfyxrRIlo2QXZncEcli80dFqxTFza14eHC2ewPLSCWsGXaCGz+ipCrTDaiznndSAJKGhTy4J27a1fHLWa6FphsR11ClUlxkLEC4XGArJtlLthV1JkcKMpl8GB4kQ0pqP6ftNRmZ9LiqnNyFwAw6/jAtLhjx/xY1FusoOOn7OxXSAz0WB+V2MHjlQUv57S27lNf/+EZjl/0sUaj0ab0OY6LD6bWg5s7FUGnbi0IPdTIQlhfHZ74nlnMyHV3kd0E8MN0ng/2qqWfmWLiIsYdqbLNs+ZDQLgkyfi8tIho1iuWtLjls0BW5Ss9IaAKa6zQl1nNqOPKDPmhx083x/cexhBPvv3NMVVDlv0gqmEDkLwL46DQA2QVE0b8wvVR8yViwleZTrW3Cv02HNeUNqXcu06oroU005aTuJ9WUuU4XeD2wDLuiiK9/fVmTSMBdSRDGVjtOxOjj3d6x84A1+J3Eeibnw=
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?VjBuZkFPTk90U0MyNVhIamw4dWxNeVlMalFmSjlHMnJic21OOEorS2tiMERU?=
 =?utf-8?B?S2NYN1BTbXpHeUVMMHRHVTZTdzB3TWh5d3hqRTVGU1lIMTR0T0lXaStoa2hB?=
 =?utf-8?B?T1FvRkNmK1Yybi9EOVBDN3hzV2labGZ1MzJtRkxWZzF3RDhNUVdUMkd4dGxE?=
 =?utf-8?B?OWtGY08wTmFhZWRLQkkvL3lEWkdJaGdqRUhMS05rdGhYTDY5ZWlFK3d4dEhZ?=
 =?utf-8?B?b2o4OTZZV2lKVEhLTlVzYXBEY2plT2VYN2ZhYkFTaStqRWdPQzlyYy9vQ2ti?=
 =?utf-8?B?cTkvb21Jd20zd0kvSVZjTGRVQ3Y3a0Z1NlNCOEhFbnZFcjVJUFR5cFIrcTlO?=
 =?utf-8?B?SWNUdy9hQjhPcmhneGttcmpRTjdOMUxFOU11blVRaWVnQ1RRQXNrRFV4eVBy?=
 =?utf-8?B?K0ZJSk5uMGxsT3NweTdyTVhMOVdkV3J5aEh2RVJNTlR4VzVVOEtkMkVDeEow?=
 =?utf-8?B?cnB1aUNjODFRemh4WXJmWlVPeUJzUEltK1ora2kyN0F1dGg5MFlPa2tpTytn?=
 =?utf-8?B?ai9SWUlsNnlOaWhWVWgyREVmZGdmSXd0UlJIdld3ZjY0R000ZVJBNXE3UUd5?=
 =?utf-8?B?SVNxU2hzUUkzQTR3SUtINXl0VzBweE1GbEF3dHg1MGZkZitCZlRmSUM5V3hF?=
 =?utf-8?B?MmpCODhWemVmY2tYNFNEd1dSMVJLZjJvMWJPVFdUa0RkUWNKL3ZVOFpsRFhE?=
 =?utf-8?B?ZG8wMytkZ0E0elplZ0E1SkJ2NjByc2w0WFNiTWQ0bHFueTFCZXRsSUU0MUxz?=
 =?utf-8?B?T1NmMmNSVGphanpoSjZrODE5SkJpR25HUmFqY1A0d2hCZ0RqclQ1cWJ0UG1i?=
 =?utf-8?B?K0o1TnFPWjFqT1h3L1owQ1IyTEF1LzRueGVEQ015elNLSnFONjZGb2ROSnZz?=
 =?utf-8?B?bFdhMUJMc3FIY3Q4OUR5OGpYUVRPMFNVYWtDKzVaYUFXSWZuUjRZV0theHla?=
 =?utf-8?B?dktPaC9zR0xmUTlJYTg1VHFMVHV3UjNHeFNid2R3SERNc21mMndBa0Z1Qlpq?=
 =?utf-8?B?V2FVK1RhQmlWZWZMNmVQbTdZR2NJdmM4WHJHcnlDbzFhWlFpMnVlMGZubi92?=
 =?utf-8?B?MVdRMm9LdzE4TlVXa3lsbVJ3VkpQRkhuOFlHV0NrOWdxTFRaaGo2SmtVNTVY?=
 =?utf-8?B?cm1ueHdpaWJDbGZHQ1dxNzhFUUhubDc1d2pFeUFmOC9zYklLZ0VhbmZGZVlQ?=
 =?utf-8?B?Uno0TzJzOWVaS2JWeFQ2dCtlNUtxUzNaZDFRS2FMYnQ2LytiWEcvWGhZUWNB?=
 =?utf-8?B?akFUUVZMcEhKbmZ3ZEsxd1dwUmpMTk9SVG1zRWFjc1FXeG5PZlZ1cmpIS0kx?=
 =?utf-8?B?SzlTVG8zc3dGZmQvMTA3SkNqK0VwS3llRmExSkxsZFRLSHlyRGNPbndMVkxR?=
 =?utf-8?B?Szg0VXprRXl1K0RzTzlqUmMybng5TjVpMWFCSktRbnBGTjJaa3B6d2lINUZC?=
 =?utf-8?B?a2pZWlZwVXN1MEVpOTF5QzIwOW5jSkdiOXZ0VVZmM0t5ZlNzZGZwZmhCK002?=
 =?utf-8?B?bHRpWTRKNU9EcjVQMEZyVzEwUkZOSnU3YTIxeTdUV0lGaCtRWndnYThqNHVu?=
 =?utf-8?B?L3MveGQ0VHEzelpZWHdJRWYwNFNQNVVaTnJLdlN0Uk81Y1IzdnpQRC9jalpN?=
 =?utf-8?B?NnVBaklyVTRoelRGdVVyVnRKSVlrTklmTTZ5UGZ1RGtMTWNCK0dpYXpmM2R2?=
 =?utf-8?B?L3Q2UHFGSU9ZYXdMbmllOWx0QkZQejFrWU9XMVk0L2dYT0RQS1BNelQ1SXRJ?=
 =?utf-8?B?bnFzbHpXanBpaVRhbkI4RWNTVko2M2pLdG55Uk9tVXIzQmE5d0hBMTcrdE5j?=
 =?utf-8?B?SWViNEhZSGwyZnNPTy81V0VpZ0JsTHZ6TjV1bUhnSzhxSlYwemhqMDRCQmZx?=
 =?utf-8?B?am54ZXBjeWpoMW9ZNjNDVzRxeGZoclVzanZrczZKOGxIOWdJSHhFWFgxUFRK?=
 =?utf-8?B?MlB2WDVyR3JMV0ZyYUdPUm1nWklHSE1NVEIwRkNQTkd0VGF2eW1rY3ZnUWxW?=
 =?utf-8?B?UVlSVzcxRXB1TnNsbmY1RU04RDkzRS9rajVlNzcybW9Obm1DcGVtc3dRYk0z?=
 =?utf-8?B?RmtySzk3dmR1WUl4WHVvb1JwZHN5am81U1dFdzhrOS9YcURsUWRnb3JUL2lq?=
 =?utf-8?B?cXhxVnpYZDVYL1lUeXNGUHJGWkxUU2huNDJKTWFsSk1pRkxuUktWVFdFRjRL?=
 =?utf-8?B?aThqY1JIYkYyOGhLS0svME1ldW84MTkvci9DUklXb1h4WnNXNDM5eTlrRWk4?=
 =?utf-8?B?UGtCK3FZaU13QjY2ZmN0OUx5UmpMVW5HY1lLc0dJWWduckNnSUU4dHFxdUZh?=
 =?utf-8?B?ZFJUZS9qZW5PbkNJWkV3MXkvV3U3MDJRazRoQ3hjc0NZSlhsMS83Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 83a9535c-df93-4dde-0575-08de7a90366c
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Mar 2026 08:21:34.3633
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Kfp0dZsx5ta1uK/kYVc7/Z5RshLat8CWTnqq/Z1/XyqWOg8z0j61R/S+scUrilO/Ci5KLNqDejDrsgQeyUcL+A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN6PR03MB7670

On Thu, Feb 26, 2026 at 02:29:15PM +0000, Bernhard Kaindl wrote:
> Refactor the claims consumption code in preparation for node-claims.
> Lays the groundwork for adding the consumption of NUMA claims to it.
> 
> Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
> ---
>  xen/common/page_alloc.c | 56 +++++++++++++++++++++++------------------
>  1 file changed, 31 insertions(+), 25 deletions(-)
> 
> diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
> index 588b5b99cbc7..6f7f30c64605 100644
> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -518,6 +518,34 @@ unsigned long domain_adjust_tot_pages(struct domain *d, long pages)
>      return d->tot_pages;
>  }
>  
> +/* Release outstanding claims on the domain, host and later also node */
> +static inline
> +void release_outstanding_claims(struct domain *d, unsigned long release)
> +{
> +    ASSERT(spin_is_locked(&heap_lock));
> +    BUG_ON(outstanding_claims < release);
> +    outstanding_claims -= release;
> +    d->outstanding_pages -= release;
> +}
> +
> +/*
> + * Consume outstanding claimed pages when allocating pages for a domain.
> + * NB. The alloc could (in principle) fail in assign_pages() afterwards. In that
> + * case, the consumption is not reversed, but as claims are used only during
> + * domain build and d is destroyed if the build fails, this has no significance.
> + */
> +static inline
> +void consume_outstanding_claims(struct domain *d, unsigned long allocation)
> +{
> +    if ( !d || !d->outstanding_pages )
> +        return;
> +    ASSERT(spin_is_locked(&heap_lock));
> +
> +    /* Of course, the domain can only release up its outstanding claims */
> +    allocation = min(allocation, d->outstanding_pages + 0UL);
> +    release_outstanding_claims(d, allocation);
> +}
> +
>  int domain_set_outstanding_pages(struct domain *d, unsigned long pages)
>  {
>      int ret = -ENOMEM;
> @@ -535,8 +563,7 @@ int domain_set_outstanding_pages(struct domain *d, unsigned long pages)
>      /* pages==0 means "unset" the claim. */
>      if ( pages == 0 )
>      {
> -        outstanding_claims -= d->outstanding_pages;
> -        d->outstanding_pages = 0;
> +        release_outstanding_claims(d, d->outstanding_pages);
>          ret = 0;
>          goto out;
>      }
> @@ -1048,29 +1075,8 @@ static struct page_info *alloc_heap_pages(
>      total_avail_pages -= request;
>      ASSERT(total_avail_pages >= 0);
>  
> -    if ( d && d->outstanding_pages && !(memflags & MEMF_no_refcount) )
> -    {
> -        /*
> -         * Adjust claims in the same locked region where total_avail_pages is
> -         * adjusted, not doing so would lead to a window where the amount of
> -         * free memory (avail - claimed) would be incorrect.

As Jan mentioned, you really need to keep this part of the comment.
Claims had been broken since its introduction because the above was
not respected, and that resulted in the accounting for free pages
being transiently incorrect while an allocation was taking place.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 08:40:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 08:40:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246295.1545499 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy4G6-0000tq-Ff; Thu, 05 Mar 2026 08:40:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246295.1545499; Thu, 05 Mar 2026 08: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 1vy4G6-0000tj-B6; Thu, 05 Mar 2026 08:40:38 +0000
Received: by outflank-mailman (input) for mailman id 1246295;
 Thu, 05 Mar 2026 08:40: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=00Q8=BF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vy4G5-0000td-0G
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 08:40: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 fa5390f3-186e-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 09:40:35 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-439b9b1900bso2989290f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 00: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
 ffacd0b85a97d-439abdf5430sm38025527f8f.5.2026.03.05.00.40.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Mar 2026 00:40: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: fa5390f3-186e-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772700034; x=1773304834; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TKw83thhZwmgNZhCPSgiFZE6zAnl4nn7a0lA8g2gzBs=;
        b=DNDbI+In282ONKhXXVRLncQmRpVOAjREaCYbeYtf6dXJ2w2aXNE/99FvVF/5vkDnWJ
         ngA0sm4AMehGS3nFT4K7EAcqxGDaxKPuilgfKU9erIXH7vMA7k3e6mW8edSe2bu86Crd
         J/0VBBNveM0IGE7fXS4MHKxQn+NXdADs9aEXw5MydVtFHZxNnbOTtjKoDEE1d48rfPzD
         RRrW/VnM2H4VKvQkoPqkDsOwnRb7NCMv5loOlg6y6HHwYyf10tlQ9gOAIDvguB8j/ZkJ
         7Dm7VXzbs7PJdHm7g10khSQN/w9oaopoBomE2z1UsCKizv36vj4NnvwCVK4F5ik8Ktzz
         +YUg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772700034; x=1773304834;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TKw83thhZwmgNZhCPSgiFZE6zAnl4nn7a0lA8g2gzBs=;
        b=tJes4Wcy3uZRzz5lfyqGPcxLZKgu06Fh79PiHL74U7172bOdIPzTJB3USj0hN/JzKx
         IYhXa/NWyLNxE9qcOX6vUAN+qJtMMbHWO5FZ643RzlyoXSDIfxwLhiGbC6nSJ/+KHE/D
         Oa47OgKu0Goq8OTV+mz5nW8qdUwNDX6cR/wpjT0luCuKf8uGPlfR4yM+5tt/SIS6WaWo
         Dc7WbmnzC2gd6R0nX9ZOfFMA7PWYitPvaZeVxbQs4grQFIFXm6uAU5d03wNFwrgD6jVa
         Bslm63BrM+819PJlvqmSgrC5T/eWqj8q8y3sX7OC895ciicOJ9/TTC+0pqKSaDQFM4S2
         mdfA==
X-Gm-Message-State: AOJu0YyhAxoza5TLEWqVW80f6jBKvQnE2Ej+XQXakOnWgGbFCEb5ATnN
	4AJbMylTTkLSkH6z2F7XmeEiDGsz1udv6204peAgC9nWGvBelyFlPNGObveAYJsQDBZFR8ucTdS
	D3rk=
X-Gm-Gg: ATEYQzyBuMlNSvBy2DLhyqFR73MLiYbTi1W7k7+WJwOk1voFY6fFZR6unFDlJHhDOgl
	C+LPy1wMlbVprkq8ERTdiBYsbTbZbgP6/OOuXhavvvOrxjShudTFzEy4w08GmwpDrCk0LApplJH
	ZC0MyfsvwRxh/H5vv+kI1P7e+vt4fepcJO6hFw+iLq3i+0uaOCOUvYpbVpfBZmltZaZ33nCWfiz
	MJyDH8Tq1R8yx03Fz7MrxUtxfqT9bXT/6e8AKkOkW9ldbYymqn0Ybyg4mwQBSuPiesl7VRycVvA
	FYdLsOThTKBTRlBAPqKmrXJr9oWgIQTN2X5jxdy3Ym4Md4oLY8+Fln/HRNDBLo9yN4afyupXAZg
	1i7+5VYPcURlvLeB4/c5GFcDynXnUy75Q8Zzp9Hi/E4DwK1DGDf94Crt1s/a8pSicWYFV+sNCH1
	sFlMrl4+1MUyanqJLCmoyhOImH/c53mL7Z8n/QL2gEDS77/si6CDtZqHo87/kmLgyjsTqwg26M/
	kGhbIeeNohVRNg=
X-Received: by 2002:a05:6000:144f:b0:439:afd8:621c with SMTP id ffacd0b85a97d-439c801fb47mr8541014f8f.55.1772700034404;
        Thu, 05 Mar 2026 00:40:34 -0800 (PST)
Message-ID: <5a16e95b-25a5-477d-8445-4843d2fba576@suse.com>
Date: Thu, 5 Mar 2026 09:40:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 5/5] vPCI: re-init extended-capabilities when MMCFG
 availability changed
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@suse.com>
 <9f1fcbfc-e7b6-4ef3-8f58-c88f9667d606@suse.com>
 <aahKkV2csf28Y0YC@macbook.local>
 <7d7b75b7-80c4-4c23-8678-b33f4c90132c@suse.com>
 <aahjn-NXjmC2A-_v@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aahjn-NXjmC2A-_v@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.03.2026 17:53, Roger Pau Monné wrote:
> On Wed, Mar 04, 2026 at 04:39:00PM +0100, Jan Beulich wrote:
>> On 04.03.2026 16:06, Roger Pau Monné wrote:
>>> On Wed, Feb 25, 2026 at 12:44:44PM +0100, Jan Beulich wrote:
>>>> @@ -349,22 +352,23 @@ int vpci_init_capabilities(struct pci_de
>>>>      return 0;
>>>>  }
>>>>  
>>>> -void vpci_cleanup_capabilities(struct pci_dev *pdev)
>>>> +void vpci_cleanup_capabilities(struct pci_dev *pdev, bool ext_only)
>>>>  {
>>>
>>> You could short-circuit the function here, ie:
>>>
>>> if ( ext_only && !is_hardware_domain(pdev->domain) )
>>>     return;
>>>
>>> But I'm not sure that would simplify the code of the function much?
>>> Likewise for vpci_init_capabilities().
>>
>> Such a short-circuit would need replacing / dropping once DomU support is
>> added. I was hoping the chosen arrangement would make for a little less
>> churn at that time. I'll listen to your advice, though, just that the
>> question gives the impression you're not quite sure either.
> 
> Yeah, I wasn't fully sure.  IT would be nice if we could add those
> short circuits now, and then once domU support is in place we just
> remove teh shortcuts and it works for domU also.  But I fear more
> changes will be needed anyway, at which point the short-circuit is
> not that attractive to use.

As per your other request (calling ->cleanup() even for DomU-s) the use of
is_hardware_domain() would go away anyway, and the function would be ready
for use for DomU-s as well.

>>>> +
>>>> +    vpci_cleanup_capabilities(pdev, true);
>>>> +
>>>> +    if ( vpci_remove_registers(pdev->vpci, PCI_CFG_SPACE_SIZE,
>>>> +                               PCI_CFG_SPACE_EXP_SIZE - PCI_CFG_SPACE_SIZE) )
>>>> +        ASSERT_UNREACHABLE();
>>>
>>> Ideally this would better be done the other way around.  We first
>>> remove the handlers, and the cleanup the capabilities.  Just to ensure
>>> no stray handler could end up having cached references to data that's
>>> been freed by vpci_cleanup_capabilities().
>>
>> And maybe not just that: For the hwdom case cleanup_rebar() adds new handlers,
>> which we'd wrongly purge again right away. (Because we pass "false" for "hide",
>> this isn't an active issue right now.)
>>
>>> And we should take the write_lock(&pdev->domain->pci_lock).
>>
>> Now this is a request that I'm struggling with some. I can see that callers
>> of vpci_{init,cleanup}_capabilities() assert that the lock is being held, yet
>> it's not quite clear to me why that's needed. Shouldn't vPCI internals all
>> synchronize on the vPCI lock of the domain?
> 
> Right, the callers of the handlers already hold the locks, and the
> removal of the handlers should also hold the locks.  The point of
> taking the d->pci_lock is to avoid the device from being removed
> while there are vPCI accesses against it being done.  The vPCI lock is
> fine for vPCI internals, but functions that deal with addition or
> removal of devices need the d->pci_lock to avoid races with possibly
> freeing pdev->vpci while in use.
> 
> I think you are right, and for the usage here (that doesn't add or
> remove pdev->vpci itself), the internal vPCI lock should be enough.

Well, we could take two positions: Either we say that as we're being called
from a context where the PCI device is being operated on anyway, we can
assume it can't go away. Then no further locking would be needed here. Or
we want to explicitly guard against that, in which case (seeing that
nothing is added / removed), d->pci_lock may want read-locking?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 08:51:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 08:51:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246308.1545509 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy4Q9-0002fQ-Eu; Thu, 05 Mar 2026 08:51:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246308.1545509; Thu, 05 Mar 2026 08:51: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 1vy4Q9-0002fJ-Aq; Thu, 05 Mar 2026 08:51:01 +0000
Received: by outflank-mailman (input) for mailman id 1246308;
 Thu, 05 Mar 2026 08:51:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=NtvN=BF=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vy4Q8-0002fD-6V
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 08:51:00 +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 6acf36a0-1870-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 09:50:54 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ0PR03MB6534.namprd03.prod.outlook.com (2603:10b6:a03:38e::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18; Thu, 5 Mar
 2026 08:50:49 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.016; Thu, 5 Mar 2026
 08:50: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: 6acf36a0-1870-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SW3Cyp4l/y4VkGlcMoe2dAw9hCSGS7bcExQLMn5oXrM7X5lJlx5ND9hicEOYb6gPCYS3VdWcIBfQ5Tl1NCbUcSeJwf27zoAnbXrCPT7LwfJZl0tDn7S8XVC09OZhuipJhMhu6izKE8SOpyl0/FB36PJIbK5kJ6KX+KelB/iNBSO2pVNXdF9RxBgpgFthIG6IhMxa5rPpw/kWX2+Zfo9QOI+/xHgxOqhyesk53NUxOtsWL/lBNdkLFmOZwAVSuF2QFqVe2vvOvaypWDugYhWF/JagAtV0CKFXiWi2DR8XUfwLskjdsSTno0/ZcJvbc8OMigq654J7cdxBjGxyn740ZQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yhKML0+vEIxkGGxamiIJllZsv3zny0fmnhubU2tvKPc=;
 b=jdEO+0fDSZ6Nyr7tnUgu8sMJrvCrcDUWehl804FCCvboNfFgz1OQPEp54TEDWUyc1Q7v+usJM7bzAyAARs1g5pAvh+imMuiFsCCQjX3LgQi1ykSWu4FIPTyQLJ/Oezg9l9zV3vnLo1CDqJVW8x+EhaOHpAVrLCdXk5+vw1hJhUBanKm5AznPqDC8eq/T4f08R/sHTpggUlC6rEfgpU1eCD4SFATOgnxstJ889y1gM4KtQC2t2t9pgUfbFljeOYkZ/cbQb0OImACOVOFTbOL4eNjrXZcN5L9hmK8G2EBJTDbsGkJVWr4epFgwMKQ+mLFu6KHFpG51c8ZcEyRhHSuKFg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yhKML0+vEIxkGGxamiIJllZsv3zny0fmnhubU2tvKPc=;
 b=wSDn4kfhFtB8vJDYWBiRxvPXF6Vokkv6PtOhxr0mSUl5sxGTfRULB3HXLpOpVIjfhbbyirIsXljRoo99igD5sf7pnQ+JTfB2kIP4dJBP/R6iwPB/3Xfh1hYuh6HwCq0RPH8pElyjkw9P4L4PzjWyyiv9+H/rbZmHGoJUWRyH/vg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 5 Mar 2026 09:50:45 +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>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Penny Zheng <Penny.Zheng@amd.com>
Subject: Re: [PATCH] x86/ACPI: _PDC bits vs HWP/CPPC
Message-ID: <aalD5VRBBuM16pxN@macbook.local>
References: <ca1812c2-dadf-422a-a195-9c285ce08077@suse.com>
 <aahfgDDNVwJPa-jF@macbook.local>
 <3449aaf7-b221-4c45-9d22-54e340167b3f@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3449aaf7-b221-4c45-9d22-54e340167b3f@suse.com>
X-ClientProxiedBy: MR1P264CA0074.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3f::29) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SJ0PR03MB6534:EE_
X-MS-Office365-Filtering-Correlation-Id: 0d9e8341-a50c-4df9-b5b2-08de7a944cb4
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:
	VscHNN2wjnQezb34t5LCoUnAaRdTtmEsQwu2YrzH0fVGL9kDtyg7x8oU+l2mOtUYP9SvuHr/5VDEI+0xbsB88OdXFWfWjEH0ETyFFOsL5rdFOuzVCUiKDF6aJb4HG1KPX+8dPp0zAdgPKqoJ2CzLv9DOr8UwRMVaxEc7DN6PAZLRGtQdOGY+EiP3X1CXBzVfO9bYWTLld6KpsiPsD4m8dkHCPrcF4bt0EjGNrfrz7ziXByypJafRH+w2PYHrTZrP98VcnA6iLoHMcNBkfjpSpD2owJ5NFUqMZrGaoFVxEelK1NDEip/exkmTjyX9Sz0WAdKj5vPhYrJpCa76w9gJYbXH7YCCvJKNuZ4HjO3IReewnv2cwj/fMhhYMAa8dqtRVIhFpl4J/9h4FnW/GY24SKfuOb9V14HXlEpzGdG24HIQU4iO3vrAyF3EWN2hDh1fFxccW8H0ugDILqZMDIddAXtLLmShIoROpuBs2a7OjC0GuQuLKj3QZDzF15Lpj5xY5DpgP/qa7lvyuigWQHvRfR7DIeG1n+MKqup8WMd84phEO2y0tYnhHOdyuLvV7X+gE0OsmZe92uiUeL1JS1BCEPv2E3MOhma33Di5e6XTlGcTf5Lf/7x0HPCAcwS8GASn43LbmzGqgYVdYxdK9rZg0nGdft32EJUcpCNC9GglShvmafa80xbe580vzBh87peazNHnmsI/xf+uKRKFy4koz08uWms2CO244dDO81AtbkE=
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?TXlJY2tCNzl5ejRkbSttT3h3R2ZkOVg0U1dGcUNvREdoczBSUzV5dkV0ekhR?=
 =?utf-8?B?cTRoL25BSGZWTWc0dWx0MnFSc2FHU1Z1RHNaMHdNUUpRTHpSRDlxQ3lSSGpJ?=
 =?utf-8?B?MytHcGQzQmdMd01XU1dHbllOdWlHTGRLaS9JZkN5V29LY1RLUjdmMElKems0?=
 =?utf-8?B?RmMrTE84NWdMTkk4bWdsbzR5MmgxM3pzZUI3QzBvMlpCbTBWc1RVOHJkc21v?=
 =?utf-8?B?M0xFbEV3eVZHMnEyUjhZSmU4cHNwcVkrYlJwUUhwT1JHYm4wMEQ1SHdaSmpG?=
 =?utf-8?B?R2piSU5lQzBDL3NSQWpNOEF0cExGUVBqcUpCcTByYk0xRldmaHc0dlp3bnd4?=
 =?utf-8?B?NmxoRGJQNnZRdmRXT01TL1NUQUQ1WkIwN3VERFp6cUxDUkdlMmpRNXk0M21F?=
 =?utf-8?B?cTM1Vm5sa21rYzlsMlpOMWQ1eEdMRFJBK3puQVFTVW9GSGRGT3hHbkxybDJC?=
 =?utf-8?B?Y2xrd3QrMW1qZlJXNHZBRGU3WXpUT3EwVU5EbURZc2dlTXhiQ1FQNC8xajNU?=
 =?utf-8?B?YXFHcFRPQ0U2Y1plL0Uwb0pNc0lodXZRQmxkaUwwVlZ6RDU3NFo1ZkQ5eTNB?=
 =?utf-8?B?RVpGcS9XUTkxa1VBZEZJMHIrL3hPWi9ETkErQVQxa3dzWW40NjVDZTVPQnNv?=
 =?utf-8?B?ZTdlOWdEbC9QenVoVXhHekxwVG1VNFI4SjZoQ1NmVHAyMVdnNVd0cGp0Qnpo?=
 =?utf-8?B?QnZabUdGVlEwUVNEMDUwSWVEWGZsTVVLSjhFVnZFM3dUQW9lUFFTdTBmaEZh?=
 =?utf-8?B?RC95Y1JPMG81R2RQOVBveGdsdHZuWDYxSDRVVGZWTEdnTTd3RVNrQWNXZVVx?=
 =?utf-8?B?dXlzL2tpci96bDVaOXNJenZKcTR4OWFLcmxxVDJseUNEditTMWJNTXl5UkM3?=
 =?utf-8?B?OGROWnhoM2pkQUNNck5GRXliMWFoV2gyaVlHdjEyeS9RTzhSb3Q3R0FTeEU0?=
 =?utf-8?B?dGpiTzRLb2M4cEZDRTdCR1Uvc1l4c0ZEeExKNUY1YWFNYkZ2ZHlnTS9sa0dO?=
 =?utf-8?B?WVN2akVjVW56cHhKV1hjQlhkZW5ESENyV0dDV3BUbm5DOFFiMEhmc2k0Rk5i?=
 =?utf-8?B?V1hzV3Y2RDMzcjZIbkt5QVI4dmxFNnpYWS9VUDVyWFVvbU9sWFZkbVZFZC9K?=
 =?utf-8?B?SWZBeVFzUjh4a09VVGhMamVsYmhyR3hNQktUa1F3QVZtRWRMZXRETnYvMnFQ?=
 =?utf-8?B?OGNFRFpPWHFxZU40TkJhVWRidHdVVksxVHRZckE4NnFTdFgwK2d5VVQ4WnV3?=
 =?utf-8?B?WXppSU5PcGtWNFdKTVFvbWdWejJ1UVJCSlIwb1UwN2RnYkFSZXo4Wk05b1lV?=
 =?utf-8?B?UGhXT2t2VDMzTy8yWTNsUkN0ZmlRa08xYVdKUHh6VGt4dXdvNktpdU9KWTc3?=
 =?utf-8?B?WHh4bUowY3htQjNWaDBLQXBNZjdKQXd1L2VyZW11SVNMaUtlMW1MZFc4UUpC?=
 =?utf-8?B?NFVVNXNHMnJDUjRrVit3K1B3VjQ1aUVMU3hXQkZUMTA2VC9pNE9UZkQ2aC9y?=
 =?utf-8?B?d3A5TU5tVjVXeVA5Zkk4UjVacDZwY1RLVmJ1TW9xTldpSmNuQnNlS3hPcCtN?=
 =?utf-8?B?Y01jN0U0NUNLclFhQUNYR3laUlpMMkYzeVpzZEhyUU5CU1NQTlRqNFN2TjFH?=
 =?utf-8?B?R2F6YjMveW5CTUVnNjBscHJva29QV3JhZldjSkZNMHFTTUhSeVdTSmVhRC9R?=
 =?utf-8?B?Zm9rOVJ3SE1KbWVGb3Z4OG4zRGhBYlBPSzY4SVdWMGUySno4UE5YVXB6bjdm?=
 =?utf-8?B?MTBqSWpRUVRiTlZnMmI5N1pBYVpTbUZVSlNXS1ZlZzg4SnpPcDFiREFCYUNq?=
 =?utf-8?B?cGUrVFh0L2taSm9HRnVobU5PSWVPbnVGNzNZR0JIYjczdmNPK2dvVGZoNkRI?=
 =?utf-8?B?MzFGQzRTTmxXOWpUWXVjSS94NW10VWhja1pxU2hLZ2RFTjNvbnN4ZEZoS1ow?=
 =?utf-8?B?U1ZsUi8yZE9RblRwNnpNd1ZYZTg4YzZEbTlkY1ZmSUNwMTFBZHNnZnljTFY2?=
 =?utf-8?B?bjY5YnVVclFPWGlKQUpJbTQ4YlpVbGdleUVQdzZtRmVXQnR3TnFabjFDMDhR?=
 =?utf-8?B?dG5RNHNCdnJiOFFOWW5aVEJ6b2NINlVwczZvMkMvbXZzeU96UWk2Y3dQNTc0?=
 =?utf-8?B?WGxxMVowOEVXZkdmSldIZWdGQmpLK0dUbENNN0pZYzFGMWFuTHA4RmZIYXVH?=
 =?utf-8?B?S0xMNmh1Zk1Bbzd6MFV2MnV0N1NoUGl0Q0FxTm9rUGJaRVE1K09wbVJEL1R6?=
 =?utf-8?B?N3JXZktGNXhlUVJzc2l5b3cvdnFyREtYUEVSZWMxeEg1VzZtMEVUa2J4MXR2?=
 =?utf-8?B?WFVuVm5rMDd4alhZNzN5dy84TGpYWUdrYkgvRkVXaTRhQjh3SGV0dz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0d9e8341-a50c-4df9-b5b2-08de7a944cb4
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Mar 2026 08:50:49.5911
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: jljAOfFXE9eqxjSwqe8EhKosadhqOYhAGYK3lUjuGJXWgXqRJelEWHNltJ8Y9vwR0xHkgJMz2ZXVJ6YWvJXeUw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6534

On Thu, Mar 05, 2026 at 09:17:23AM +0100, Jan Beulich wrote:
> On 04.03.2026 17:36, Roger Pau Monné wrote:
> > On Wed, Mar 04, 2026 at 03:37:25PM +0100, Jan Beulich wrote:
> >> The treatment of ACPI_PDC_CPPC_NATIVE_INTR should follow that of other P-
> >> state related bits. Add the bit to ACPI_PDC_P_MASK and apply "mask" in
> >> arch_acpi_set_pdc_bits() when setting that bit. Move this next to the
> >> other P-state related logic.
> >>
> >> Further apply ACPI_PDC_P_MASK also when the amd-cppc driver is in use.
> >>
> >> Also leave a comment regarding the clearing of bits and add a couple of
> >> blank lines.
> >>
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >> ---
> >> Including XEN_PROCESSOR_PM_CPPC may need accompanying with some change to
> >> arch_acpi_set_pdc_bits(), but it's entirely unclear to me what to do
> >> there. I'm unaware of an AMD counterpart of Intel's "Intel® Processor
> >> Vendor-Specific ACPI". Plus even when the powernow driver is in use, we
> >> never set any bits, as EIST is an Intel-only feature.
> > 
> > We possibly never need to set any bits there for AMD, as those _PDC
> > Processor bits are Intel specific?
> 
> Indeed, that's a possibility.
> 
> >> --- a/xen/drivers/cpufreq/cpufreq.c
> >> +++ b/xen/drivers/cpufreq/cpufreq.c
> >> @@ -694,14 +694,23 @@ int acpi_set_pdc_bits(unsigned int acpi_
> >>      {
> >>          uint32_t mask = 0;
> >>  
> >> +        /*
> >> +         * Accumulate all the bits under Xen's control, to mask them off, for
> >> +         * arch_acpi_set_pdc_bits() to then set those we want set.
> >> +         */
> >>          if ( xen_processor_pmbits & XEN_PROCESSOR_PM_CX )
> >>              mask |= ACPI_PDC_C_MASK | ACPI_PDC_SMP_C1PT;
> >> -        if ( xen_processor_pmbits & XEN_PROCESSOR_PM_PX )
> >> +
> >> +        if ( xen_processor_pmbits &
> >> +             (XEN_PROCESSOR_PM_PX | XEN_PROCESSOR_PM_CPPC) )
> > 
> > Currently the CPPC driver is AMD only, and hence when using it we
> > don't care about filtering the _PDC bits, because the ones Xen knows
> > about are Intel-only?
> > 
> > As you say, we likely need some clarification about whether there's
> > _PDC bits AMD care about?
> > 
> > Linux seems to unconditionally set bits in _PDC, so some of those
> > might actually be parsed by AMD.
> 
> Or it setting whatever it wants is meaningless on AMD systems. Where I
> have extracted ACPI tables readily to hand, there's no _PDC there.

Oh, interesting, so there's no method to start with.  Is there an _OSC
method however for processor objects?  _PDC is deprecated, and maybe
AMD systems only expose the equivalent non-deprecated _OSC?

> > I think we might want to split the setting of XEN_PROCESSOR_PM_CPPC
> > here from the addition of ACPI_PDC_CPPC_NATIVE_INTR into
> > ACPI_PDC_P_MASK.  The latter we can possibly untie from the questions
> > we have about AMD usage of _PDC.
> 
> Hmm, yes, I can certainly split the patch. I'm looking at it a little
> differently, though: Us leaving any P-state related bits in place when
> cpufreq handling is done in Xen has been a mistake anyway.

Yes, TBH I even wondered whether we might just wipe whatever the OS
sets in the _PDC bits and completely fill it from Xen (unless for the
weird/broken case where dom0 is driving cpufreq?).

This is kind of what Xen already does now.  However see below.

> What's
> unclear is solely whether because of us driving things some bits need
> setting (likely none if AMD systems indeed don't surface _PDC in the
> first place).

Since we have the parsing of the ACPI related data done from dom0 it's
not only Xen that needs to support the feature, but dom0 also needs to
know how to parse it.  Or we just assume the driver in dom0 must
strictly know how to parse data from the features enabled by Xen.

Maybe Xen supported bits should be & with the dom0 ones?  So dom0
would set what it can parse, and Xen would AND that with what the
cpufreq drivers support?  However that would be an ABI change.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 09:00:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 09:00:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246318.1545517 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy4ZA-0004Ma-6Z; Thu, 05 Mar 2026 09:00:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246318.1545517; Thu, 05 Mar 2026 09:00:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy4ZA-0004MT-3z; Thu, 05 Mar 2026 09:00:20 +0000
Received: by outflank-mailman (input) for mailman id 1246318;
 Thu, 05 Mar 2026 09:00:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=00Q8=BF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vy4Z9-0004MN-7G
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 09:00:19 +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 bab1791e-1871-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 10:00:16 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-480706554beso83982945e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 01:00: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-4851fb3668csm46722955e9.13.2026.03.05.01.00.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Mar 2026 01: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: bab1791e-1871-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772701216; x=1773306016; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HMlMivLVNc4EFqEg/5TpfRMuBK0JJc1ca//jhnipcfE=;
        b=FxDcdjXb0OQVMInLpsJ8lDE+0EXa/sglTdaI0Lncl/SMqvf2MzDBcmRktJBR7ZLUMB
         ZI8wGJyLUM1vEt+qpfWtX2vok+WmIGRZZXQJSvj0TPwKdCSwKFU2bwOuKKLSON1pXrAD
         STs9hDw34rQUd1u6793zgeNFG7cxeLrTbVcZRDK8F3XPyRb3/XFCo3RqnWb0YxJIlsFP
         6ZPVSitPI2zU8c+NP68IUHhm0rVv60gNdJtHSZthu4uAuLL4QhLwakHRNDP8MEAj6wZ9
         SMJJ4gcYL0flir+xb1sEDVS8WmIZq4d9vi2Xxkp8hCJ035yyHKvpDAv68ovqTaDJtK92
         HMXQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772701216; x=1773306016;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HMlMivLVNc4EFqEg/5TpfRMuBK0JJc1ca//jhnipcfE=;
        b=eqIud5pUNBfwe7hU3PdthNG0JfDPhrwro+dYOOxtTvI7KelnFOI2BfaLAaxu9SIpcV
         unzxCMGwr6NVHfJS3Q+jqvSkoyBteYrpEb2gPPkj4QrdV+UHzAQ9HFPOAndbKRKRa5tB
         1qxoP4PCl6ZwkApoOqT2UE5YbWpS3DAufSwRu2sKm+KVpzxcqde6wUhVwZeFqdK/zK+H
         ZTJ/XWrM0are/uLWZ32kIij73ijgMGhpQBWRjhXBYtJW1rRL6g0KSQ+jAIOCEmr4qqc8
         1FbD6ZGuTXedaZAhGHkZ9dbXJQZoNU8Ka0CoAqbhAPWQnlczkCMvyEjs0LZ/iTivGe/2
         vOCQ==
X-Gm-Message-State: AOJu0Yz2bStY0WzXYhgvdA3FNjEvNciHCbaah0Y5HHAEkdxDeS5OqAB2
	mlwcY+pShtHAe2+x+z9ysXdzHUw0CeVGoz+9ZqkUbkChBEFAtp4v1TV7h5z3V0Td6Iz4iJzZa8c
	E8Hs=
X-Gm-Gg: ATEYQzwHgzb3Rzj7PZtLbF7OSCuOU/mt1js6w4MquL9QfRqa2u97Fm7WSZqE+w80KEP
	Ylb8mhBHck6JQ/0gI0Qf8j0FyRlUUIdV6fPyDA1iw1G+Tp7wEnwzspvOowQP4ipbNxmJReFVFnz
	lePbxAV445py6GjgOVh1hliUZg2OTAiB4Ye6RyO3z7MkUGdZ0rElNpeVAzCtush2ORCohhwTwW8
	7ZB8r9EcO4NuVK9pPZWALCzQF2j3zpNyVzf/e6S4jmKfPSeVs0tAGaM5Hg6PMvl1DEZyUVspzgK
	qqf4cRaDBLP22MOv4OQXJ1jfkNJq+Pugxze+BJZC3hREhTcCgnCT0h9F8NaQANTXbh4NWl8HobP
	1pAR7bOtiGcd/oDw8p6K2c08S580lOYxNUsbIvvD8Yrx785cL1lgoOfytWjc/ttouJNpQg6ZJKf
	GyI1mWLcPJ0lQ2OSDGhQkZJpRwoKP4/AZGQt5Ogl/XRby78EiCUwKficOiQqWBAewxhAWJ+X66
X-Received: by 2002:a05:600c:3b9e:b0:477:5cc6:7e44 with SMTP id 5b1f17b1804b1-4851984f5bemr91299105e9.11.1772701215671;
        Thu, 05 Mar 2026 01:00:15 -0800 (PST)
Message-ID: <2c3fdfb6-5788-4177-a264-56719e1ae804@suse.com>
Date: Thu, 5 Mar 2026 10:00:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 5/5] vPCI: re-init extended-capabilities when MMCFG
 availability changed
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@suse.com>
 <9f1fcbfc-e7b6-4ef3-8f58-c88f9667d606@suse.com>
 <aahKkV2csf28Y0YC@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aahKkV2csf28Y0YC@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.03.2026 16:06, Roger Pau Monné wrote:
> On Wed, Feb 25, 2026 at 12:44:44PM +0100, Jan Beulich wrote:
>> When Dom0 informs us about MMCFG usability, this may change whether
>> extended capabilities are available (accessible) for devices. Zap what
>> might be on record, and re-initialize things.
>>
>> No synchronization is added for the case where devices may already be in
>> use. That'll need sorting when (a) DomU support was added and (b) DomU-s
>> may run already while Dom0 / hwdom still boots (dom0less, Hyperlaunch).
>>
>> vpci_cleanup_capabilities() also shouldn't have used
>> pci_find_ext_capability(), as already when the function was introduced
>> extended config space may not have been (properly) accessible anymore,
>> no matter whether it was during init. Extended capability cleanup hooks
>> need to cope with being called when the respective capability doesn't
>> exist (and hence the corresponding ->init() hook was never called).
>>
>> Fixes: 70e6dace747e ("vpci: Use cleanup to free capability resource during deassign")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> vpci_reinit_ext_capabilities()'es return value is checked only to log an
>> error; it doesn't feel quite right to fail the hypercall because of this.
>> Roger brought up the idea of de-assigning the device in such a case, but
>> if a driver doesn't use extended capabilities the device would likely
>> continue to work fine, for Dom0 this probably wouldn't be quite right
>> anyway, and it's also unclear whether calling deassign_device() could be
>> done from this context. Something like what pci_check_disable_device()
>> does may be an option, if we really think we need to "break" the device.
> 
> We may want to add a note there, stating that we have considered all
> possible options, and hiding the capability and hoping the owner
> domain would continue to work as expected seems the less bad of all of
> them?

While adding that note it occurred to me that in order to keep the device
as functioning as possible, in the re-init case vpci_init_capabilities()
might better not bail upon encountering a failure, but accumulate the
error while continuing its loop in a best-effort manner. Thoughts? (One
of the two return-s is already guarded by !is_hardware_domain(), so that
could be left alone for the immediate purpose.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 09:20:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 09:20:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246327.1545528 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy4s0-0006FY-N6; Thu, 05 Mar 2026 09:19:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246327.1545528; Thu, 05 Mar 2026 09: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 1vy4s0-0006FR-KD; Thu, 05 Mar 2026 09:19:48 +0000
Received: by outflank-mailman (input) for mailman id 1246327;
 Thu, 05 Mar 2026 09: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=NtvN=BF=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vy4rz-0006FL-At
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 09:19:47 +0000
Received: from BN8PR05CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c110::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 723c745d-1874-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 10:19:44 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BY5PR03MB4951.namprd03.prod.outlook.com (2603:10b6:a03:1ef::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.17; Thu, 5 Mar
 2026 09:19:41 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.016; Thu, 5 Mar 2026
 09:19: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: 723c745d-1874-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kDRXGtPnAvTe0dmgmvvL+M34WbJzW9eAZaLRs0ZkfvX55W5b1N3gHxE6B/x6ZDdb2SOFoeqqsjyu/AuUvKYG3xlq2Kkdw0Jho/nfEcfOUPw8t2s3HxexCdewDfx79UHG73Cb89xXTM3Yo7IUeYBU8qQZ1fh5vrnYsl3QtvjwB8Ew3LNLGZS8hc1O2AznhDchlER6t69y0bkgYxURL8X0gQg1npJpdQXFB3El4eSrUM9omXQRNq8hbjN5148X4+tk2kOpxCYPlb8I83B89X/ULiMUlevrlPPVBfaAZOanWzCjkoTGIBKo1b9EktHvImupKlwBsAvQLvP3BBYidFWdFA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Hf9J4F468TSJFlAphny8iLQP1YTtiuyQKklzuuP/sIs=;
 b=LliZ/Ay6qcqi9jbn3dBR1hJ/i7X62VIFFEEIoKNeRS0t5i0lYfvhKQzOpJDI0FWSKaFuRDhsIgM0/tW9+l4mgHvoKzFdmV8lzFedtZycY7+UHXFOUbRG4xS+cEeMjee9KipMdcsVygzXwdcUICtS1a4FNFomcioxzBDOu2iQ1kv28RvRSBKYZAi+j6Vo9SjMkB9QnFpokGFpNG37raVWsMLnCCgwqD20es2L1rQM4EwnstpaFU//MV092KbrvhEFa42GeFcoJC0XxvqNm3W4FG5vNJtpyws3le0CH0Kla9Dv1YHXaQCIiv13veRyLHS0xBBhnZiXWBOAibooydrgNg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Hf9J4F468TSJFlAphny8iLQP1YTtiuyQKklzuuP/sIs=;
 b=azhk2Ll3CFnf7eDyUHeNSeMXdLRSd8J1UKNJgg3qQzzF04dpb07kNJOkq20sxQK6NgGZfr7FYrPwtWgkiaNXnr8k7QhgVaMpJNfKxQJq1/O24WLJmphqXelcDrrxpqvqJ8W0u3jcNQ1sNFVxomJA7t/3dh4Osr4PiVG8zDk2R9c=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 5 Mar 2026 10:19:38 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v5 5/5] vPCI: re-init extended-capabilities when MMCFG
 availability changed
Message-ID: <aalKqq0ioTcU9Mdh@macbook.local>
References: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@suse.com>
 <9f1fcbfc-e7b6-4ef3-8f58-c88f9667d606@suse.com>
 <aahKkV2csf28Y0YC@macbook.local>
 <7d7b75b7-80c4-4c23-8678-b33f4c90132c@suse.com>
 <aahjn-NXjmC2A-_v@macbook.local>
 <5a16e95b-25a5-477d-8445-4843d2fba576@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <5a16e95b-25a5-477d-8445-4843d2fba576@suse.com>
X-ClientProxiedBy: BLAPR03CA0095.namprd03.prod.outlook.com
 (2603:10b6:208:32a::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_|BY5PR03MB4951:EE_
X-MS-Office365-Filtering-Correlation-Id: 8d159ba5-78c4-4d40-c3c7-08de7a9854d0
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:
	7j2iVmoR2l9BQeeVhG3/OYhHfyBz8KSIOuCRNk4LnX0lOBqXJKX3F12T+wsYkbuNcyMthdPGPQT6KMc6Dil5tdA6ct4J1oWTy/5AOAVsG1Oq2x8zNBbSYTUqAFxb6px0Y7w7BuLiuKT31PrX4vtF2jUYJL0dRxdw1D+LRyWR/UuU2xG993Ekq3vuH/eyQr/46RC/YpYHyaOUyMzDJZKlNH1rKD51nm7eJ4mL4aZ0hveCzoDP9uhY39SBRNDpz/mzAhn9fBlLp5xkDSk7oK3m967POXv/u+7zVzRU6Ez5bP1ZFPU1a9QNpK8/vDPuEAEUR8fsnVuk6RnAqxzbQz1jVdWEQp7hzX8sg4vG457I7ikcotOp6LM1Ul+toyFKZm9TMealW5K+TvFgusJK04pHBmM+mpBmgXnOZyG1cKLpteoiym3/h0p7l91FOqvpxCRp72Oz9k8kKtxlHJPsCET5t8wLVHaW7cLOwy9EuBFXWGSynBQQteuMKug/FTKvxCwaxaoqVuaK54BBhB5qPCH76TWNx5Et08dNOvSp3NuIAQ9IAUtki6eqrLQmeXmVeOzFg0SMwpHjIt6q2bSYyLEmDrsrzuTAa6em+WbTh5ZBNhZIRonGpoafV1PbDDrOZ6PABYzUxPrM8evR76YrIlq9rUtzir7wU2TcHoSaD4ciBQKOxq+kmVwFp12Kwvx3kTDZBq8Fbmq+0VWpBKcZTXvQffRvE7vDD5mlSlvOa08QDE8=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Lyt2ZWNzWVk0YzlsR2VMK2VIajZQVnFGQm1MZk14NlFCbTdROXptVTI3L01M?=
 =?utf-8?B?VXFDWFJNSDg3MW1wMXdCTFkrRXZaeTYxc3lTcnlxd0crdS9jUjNqK1dUNzln?=
 =?utf-8?B?TWlnTFRoZmFnbHBGTkJyeDAvTTUyVUQ0WmlDaE5XcVQ5bWpBZVRDUnFQdVJ3?=
 =?utf-8?B?MVFrNzRhUEtOcFhVVjNwZHlZbDB1MG5aS3JGeTBHWElEdUVSQ09aVmJqUWV5?=
 =?utf-8?B?UzJzTFoxcHJGenVldWtmd2hpbjdJVWhHUXBwaXVsQVozS05LUkZkeGJYT1ox?=
 =?utf-8?B?NDRNNUVTdGxrVW1Fakx2SFp5Z3BhLzJtTmZkb0RVcmhwNGVTN25sU2ZvLy9y?=
 =?utf-8?B?MjlSRjJEaHBqd2s1ZlRrcXJpakl1ZjJSallTOUpiTXBWUFh4YWwzS3pHTGQ0?=
 =?utf-8?B?azBRQ2ZGeWR4Y1R6QWFUdzliWm5Oa083YzR4TFNLaWlOVExXdzg5TzZocUhs?=
 =?utf-8?B?NjY4c3dYREIxRnVxRVl6cUQ2cUNvMTdKRlAwTFNWNmVQUEV4Y1lLdHFuSEwz?=
 =?utf-8?B?TURaRFdXTjJ6Wi9kVDFLMGpFMXFwaEVLR0gyVjIyREVub080enFQMlJkQUl4?=
 =?utf-8?B?ZzBrWjR6Q1VoWkZINUhxdzZkMitZbUVqMGViOStoblU2N3ZGMytBd0lnNnM3?=
 =?utf-8?B?bGlSamFMN2t6b3c3bjZKQ3BFTEhTcm9UM2NaMmowdzB3N0dvMG9NOHNjMFBn?=
 =?utf-8?B?R0U2SkQ3NE8zUG9lZHg3bmZGQUJrUE4yZ29YR2V1aFZJZDNSdnVjQkxidjJu?=
 =?utf-8?B?Vi9jaitQRXFnV0NSdmNtaEpRem1qbldrVEhseVZqTkJWV2pCL1VtNUhXZVF6?=
 =?utf-8?B?QTFRdHdsTHFpOWtIeUdkM2w3aFhkZTBueEgweStFazc3Mnl1OTJxY3pkYVJ1?=
 =?utf-8?B?MnhxYWZOTmdPQnNkWmt3cmdjcUtLL1N2SS9jT3RzT3RvZEpiTVQ5aDZNYUQx?=
 =?utf-8?B?dFpMVmdvVERRVndVaHZwdTFpcExybU5qNFF2VGZCbUhKSTFlaGpEbEp5L1J6?=
 =?utf-8?B?aU1WMWNXKzhoaTNVZ25aMmszQzhQOGNEa1VYRG9mUmhsRFNiSzRaUGYrV1hT?=
 =?utf-8?B?Q2lmNjVLR0RaQlBxYzFGdFh4Mk5vaTBMaG9LSHFiM3gvWnY1SWRaanRDaG5Q?=
 =?utf-8?B?d1dDZm9DR05wY2FJSGFybXRjdjFYeDZWTkhTWkh2SDBkb0NKZHdNN253MlRP?=
 =?utf-8?B?V2c1OENhQTV4ZW4vbThoQllXMGVvdVpDZS83cEswdlNUZE1EZW90YVlaUTEr?=
 =?utf-8?B?RVhsWnl5TG9OOFk0QUh5Nkp0Mkl0VEZRMFVjelhmRE53VGU4UmN1L2l6encw?=
 =?utf-8?B?YUZueFp3VFhWRmp3M1VyU3pTVzhja295d3F5cEhZZk5TWVdia0JzcVV4enlJ?=
 =?utf-8?B?NUx0aFV0MGNzTS80UnlKSlhXMW90N0ZQZXY3YW1McXcrdmxoaW9PbzloaU1Z?=
 =?utf-8?B?OTFLTFVtKzNETFAxek9UWmhYTnl6SS9JcVR6NGhVZEJ0OElNTzBwdkE2dUUw?=
 =?utf-8?B?VnNQTE1ZTEwwYjdGcDdRREhqRlVpaEtyK256MlE1RnMrNGphTENLMTFmOExL?=
 =?utf-8?B?RVZMcm9IT2FzUElxUG9BZkxMa21lcXQycUFyMXBhR0QxRWZER05SOWhVb2RP?=
 =?utf-8?B?TFBGTHZiUi9Sa1FraVVmMlh4aG1kOVNqTU1weGNacW5SSWpsVUhmTHpscm1r?=
 =?utf-8?B?OUxWVkx5cDExN3V4cHZvZjBlbzdwS3B1SWRuV1NCektCdFFXNUkzS2x5Q29E?=
 =?utf-8?B?TkNCVXllZjdrWE9FblpzMkx6RC9SK3JTS1J3ajdLSzgyMGp1ZUN3SWJkc3RK?=
 =?utf-8?B?YWhUcmMzNmFKMFg5SFV0UXBNdUw1bGFlajdzcjZ3Y1hLMm9FUGp3Y3hFazNR?=
 =?utf-8?B?VTZNaFJHRExNVkFqK25uWktJMzZSbmpnMzgyZlpOZVZSeExvN0loVUpUb1N1?=
 =?utf-8?B?YVJpTUczWnRBUDZTbDhsWUowT0E4SHkwVUJqbW9DSmRsV1lycko2QWkxWk8y?=
 =?utf-8?B?NzNvclFTdk9wOEk4eHJaZlR0S0dvU0tBY3JWYk1LdndtbkdTS1pZSzd5cDRz?=
 =?utf-8?B?a094Q1dyc2dUVmdFUzUzNXJlUUs0TC8vVjJxVzZackpOeC9FRXNVUmtQVm9F?=
 =?utf-8?B?cUI5eU45NzJWWnJIK1VGSityOW5qYWo3blUvOG9PVFAyUDVUUXFGV0xDU1Bp?=
 =?utf-8?B?Y0MxMkl1bEc4cmxlRGNwY3R2czZuczNWcGtPOWRkMG1aVm5YZ3E0ZzBTSVc3?=
 =?utf-8?B?eUYwZjE2UGNicWFvRnU1M2ZJZnZ3TVBHR2xUdWFvOFpWbm5hTjJtYzBYeGps?=
 =?utf-8?B?cmVNNDNNSHBvOWVqZXN5TnZnR0JmdFpmQXlzVWVxOVR5QkFhME55UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8d159ba5-78c4-4d40-c3c7-08de7a9854d0
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Mar 2026 09:19:41.1963
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: AiRViKe+eMvfaaQo3mYuXHAafQXpxgTwyMZgHzkrLf4Gcy9L4X8W6Y9IRBHW+jvaWS21ehWKZ+nyw+8nrtK5rQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB4951

On Thu, Mar 05, 2026 at 09:40:32AM +0100, Jan Beulich wrote:
> On 04.03.2026 17:53, Roger Pau Monné wrote:
> > On Wed, Mar 04, 2026 at 04:39:00PM +0100, Jan Beulich wrote:
> >> On 04.03.2026 16:06, Roger Pau Monné wrote:
> >>> On Wed, Feb 25, 2026 at 12:44:44PM +0100, Jan Beulich wrote:
> >>>> @@ -349,22 +352,23 @@ int vpci_init_capabilities(struct pci_de
> >>>>      return 0;
> >>>>  }
> >>>>  
> >>>> -void vpci_cleanup_capabilities(struct pci_dev *pdev)
> >>>> +void vpci_cleanup_capabilities(struct pci_dev *pdev, bool ext_only)
> >>>>  {
> >>>
> >>> You could short-circuit the function here, ie:
> >>>
> >>> if ( ext_only && !is_hardware_domain(pdev->domain) )
> >>>     return;
> >>>
> >>> But I'm not sure that would simplify the code of the function much?
> >>> Likewise for vpci_init_capabilities().
> >>
> >> Such a short-circuit would need replacing / dropping once DomU support is
> >> added. I was hoping the chosen arrangement would make for a little less
> >> churn at that time. I'll listen to your advice, though, just that the
> >> question gives the impression you're not quite sure either.
> > 
> > Yeah, I wasn't fully sure.  IT would be nice if we could add those
> > short circuits now, and then once domU support is in place we just
> > remove teh shortcuts and it works for domU also.  But I fear more
> > changes will be needed anyway, at which point the short-circuit is
> > not that attractive to use.
> 
> As per your other request (calling ->cleanup() even for DomU-s) the use of
> is_hardware_domain() would go away anyway, and the function would be ready
> for use for DomU-s as well.

OK, so that one is (possibly) sorted then.

> >>>> +
> >>>> +    vpci_cleanup_capabilities(pdev, true);
> >>>> +
> >>>> +    if ( vpci_remove_registers(pdev->vpci, PCI_CFG_SPACE_SIZE,
> >>>> +                               PCI_CFG_SPACE_EXP_SIZE - PCI_CFG_SPACE_SIZE) )
> >>>> +        ASSERT_UNREACHABLE();
> >>>
> >>> Ideally this would better be done the other way around.  We first
> >>> remove the handlers, and the cleanup the capabilities.  Just to ensure
> >>> no stray handler could end up having cached references to data that's
> >>> been freed by vpci_cleanup_capabilities().
> >>
> >> And maybe not just that: For the hwdom case cleanup_rebar() adds new handlers,
> >> which we'd wrongly purge again right away. (Because we pass "false" for "hide",
> >> this isn't an active issue right now.)
> >>
> >>> And we should take the write_lock(&pdev->domain->pci_lock).
> >>
> >> Now this is a request that I'm struggling with some. I can see that callers
> >> of vpci_{init,cleanup}_capabilities() assert that the lock is being held, yet
> >> it's not quite clear to me why that's needed. Shouldn't vPCI internals all
> >> synchronize on the vPCI lock of the domain?
> > 
> > Right, the callers of the handlers already hold the locks, and the
> > removal of the handlers should also hold the locks.  The point of
> > taking the d->pci_lock is to avoid the device from being removed
> > while there are vPCI accesses against it being done.  The vPCI lock is
> > fine for vPCI internals, but functions that deal with addition or
> > removal of devices need the d->pci_lock to avoid races with possibly
> > freeing pdev->vpci while in use.
> > 
> > I think you are right, and for the usage here (that doesn't add or
> > remove pdev->vpci itself), the internal vPCI lock should be enough.
> 
> Well, we could take two positions: Either we say that as we're being called
> from a context where the PCI device is being operated on anyway, we can
> assume it can't go away. Then no further locking would be needed here. Or
> we want to explicitly guard against that, in which case (seeing that
> nothing is added / removed), d->pci_lock may want read-locking?

In this context the caller is already holding the pcidevs lock, so
there's no risk of the device being de-assigned.

My reasoning for taking the d->pci_lock in write mode was to prevent
any concurrent access to vPCI while the changes to the emulated config
space is taken place, but you are right that the vPCI lock if used
properly should prevent races.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 09:20:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 09:20:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246329.1545538 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy4sK-0007VH-1L; Thu, 05 Mar 2026 09:20:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246329.1545538; Thu, 05 Mar 2026 09: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 1vy4sJ-0007VA-Up; Thu, 05 Mar 2026 09:20:07 +0000
Received: by outflank-mailman (input) for mailman id 1246329;
 Thu, 05 Mar 2026 09: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=00Q8=BF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vy4sI-00071S-Es
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 09:20:06 +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 7f3796cb-1874-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 10:20:05 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-48375f10628so52144415e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 01:20:05 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4851a82c876sm31883335e9.0.2026.03.05.01.20.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Mar 2026 01:20: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: 7f3796cb-1874-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772702405; x=1773307205; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bRZdLSl3plZmUkZHFDVey1I7mkbthVlt1fgWI8LrAxU=;
        b=TAumixN/9mLN0GXyVcIx+8yPcjFvM0/6okb91YGR6LjPkOb5HrFTswxlS7rzDf7HzD
         kuT/raRN+3+L162qDTPMuJtKDkALKGly8y/k6J+y3Q5Edk5dNV3EkPOSo5iQS3IBXsbm
         FodcAY8wtkJzCFNsjH5eHFlt1xkMo5mdnNDT8YtioH3IMkjhpITVT8TJw8qy8DCfOUIz
         5BuiXCpKhe8QWYTjhPNK1+xqP/teFONrBUBzU+1Xd9tr2j/zdos5YTvEqB361Jo4hQvx
         bZU0+sVlW0zbv3HGlmbWO0TrH2HRHD9bHPsZYlWTf3WDUl8NtXf3ngY7h6ByYYXcxfFi
         D3Jw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772702405; x=1773307205;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bRZdLSl3plZmUkZHFDVey1I7mkbthVlt1fgWI8LrAxU=;
        b=ZOf3Elw6unU+USMdpxpZEzNvrpMxtgMNakXlduTNfrU3nr1ENBehP8v0hGN0bLSOet
         58E7MwBlEqwQFWaeMCDHr7VzKH/LXL/FdXDuwW2q8orzd4NpFoF80i1NMhUOKhINqtCb
         EbxV0oPsLLbzlf/YvhDzivi4w0R6JKLMqym1BHN8XnpXZF1/Pv8Vb7Bi1AHMd5waDQUW
         anvYk2UJuXRxIDqx2RVCRdio2nj+MfWeLEBpLknjs6qW5k1zDAWwaYNv6kQHY6NgFtuk
         FvYfQCxgQxKn1sm8Bucf0RcbPtxXqvgKswVyteN7tHClLtLPQ6P/BDB+xhFm8kdRQfGg
         ahOQ==
X-Gm-Message-State: AOJu0YxlCf6if/EDdaH5L8z20FTGvXtkgGNGvU3OT7Kwd4GNWnjWA/RL
	0hOiosa+MHNXUwXxQIoK59C2zje7lR0+eKe164X/EI85ck1k8M3WtIffFx7ke4bTag==
X-Gm-Gg: ATEYQzxs8+j7e95AFY5ziVaLycB7wcA6gbB7IekBCzPfaht97TVNE+JyD1CeBdQk+o2
	LOxalzs18oRE3wW8GgGB4qFg6YvUaBkjk/vpVYVZzwng2vsMyAjXKLM5phvzxpGgvv1gaEUt8j/
	tuEUuZIkoyQGbMInUSZ50aayl+NUgkkME1UkZB0RbnX/3zd1WaFmbbR4/KB5gxx7mhabX9rstGb
	VE2M+yBTXqAREjC+6j6VVYDEyHhjImYW5kKBXDzaFAYMOUqRoF0uRdLIDUu3YF2pjOntNGesal9
	X64Qhe97lHkFP3J1oKX67ioom0inV79ec36v426gmcuIe/J1lQWbbgVyNTBarp4cB66dTRBW7H3
	xU8JrfYyxqwedzUGfwJQHIYWSHelLHs9JRPDGcRTF61/lg201M/fcKn58YSt9GFN2a1pv8ZVhPL
	0p8UHZvMmDKV8quaeTYpdCoC4k8moCCIuXDLddtjIcH6bd4GhoFAXW7sf+kL1F6bn3T3Zwoz631
	Yzh0Bg/4RVlsYk=
X-Received: by 2002:a05:600c:470d:b0:483:c490:8ed with SMTP id 5b1f17b1804b1-485198a37c8mr82083575e9.32.1772702404884;
        Thu, 05 Mar 2026 01:20:04 -0800 (PST)
Message-ID: <73dd0000-4044-486a-915d-6381d0820cf6@suse.com>
Date: Thu, 5 Mar 2026 10:20:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/ACPI: _PDC bits vs HWP/CPPC
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>,
 Jason Andryuk <jason.andryuk@amd.com>, Penny Zheng <Penny.Zheng@amd.com>
References: <ca1812c2-dadf-422a-a195-9c285ce08077@suse.com>
 <aahfgDDNVwJPa-jF@macbook.local>
 <3449aaf7-b221-4c45-9d22-54e340167b3f@suse.com>
 <aalD5VRBBuM16pxN@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aalD5VRBBuM16pxN@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.03.2026 09:50, Roger Pau Monné wrote:
> On Thu, Mar 05, 2026 at 09:17:23AM +0100, Jan Beulich wrote:
>> On 04.03.2026 17:36, Roger Pau Monné wrote:
>>> On Wed, Mar 04, 2026 at 03:37:25PM +0100, Jan Beulich wrote:
>>>> --- a/xen/drivers/cpufreq/cpufreq.c
>>>> +++ b/xen/drivers/cpufreq/cpufreq.c
>>>> @@ -694,14 +694,23 @@ int acpi_set_pdc_bits(unsigned int acpi_
>>>>      {
>>>>          uint32_t mask = 0;
>>>>  
>>>> +        /*
>>>> +         * Accumulate all the bits under Xen's control, to mask them off, for
>>>> +         * arch_acpi_set_pdc_bits() to then set those we want set.
>>>> +         */
>>>>          if ( xen_processor_pmbits & XEN_PROCESSOR_PM_CX )
>>>>              mask |= ACPI_PDC_C_MASK | ACPI_PDC_SMP_C1PT;
>>>> -        if ( xen_processor_pmbits & XEN_PROCESSOR_PM_PX )
>>>> +
>>>> +        if ( xen_processor_pmbits &
>>>> +             (XEN_PROCESSOR_PM_PX | XEN_PROCESSOR_PM_CPPC) )
>>>
>>> Currently the CPPC driver is AMD only, and hence when using it we
>>> don't care about filtering the _PDC bits, because the ones Xen knows
>>> about are Intel-only?
>>>
>>> As you say, we likely need some clarification about whether there's
>>> _PDC bits AMD care about?
>>>
>>> Linux seems to unconditionally set bits in _PDC, so some of those
>>> might actually be parsed by AMD.
>>
>> Or it setting whatever it wants is meaningless on AMD systems. Where I
>> have extracted ACPI tables readily to hand, there's no _PDC there.
> 
> Oh, interesting, so there's no method to start with.  Is there an _OSC
> method however for processor objects?  _PDC is deprecated, and maybe
> AMD systems only expose the equivalent non-deprecated _OSC?

There is, yes.

>>> I think we might want to split the setting of XEN_PROCESSOR_PM_CPPC
>>> here from the addition of ACPI_PDC_CPPC_NATIVE_INTR into
>>> ACPI_PDC_P_MASK.  The latter we can possibly untie from the questions
>>> we have about AMD usage of _PDC.
>>
>> Hmm, yes, I can certainly split the patch. I'm looking at it a little
>> differently, though: Us leaving any P-state related bits in place when
>> cpufreq handling is done in Xen has been a mistake anyway.
> 
> Yes, TBH I even wondered whether we might just wipe whatever the OS
> sets in the _PDC bits and completely fill it from Xen (unless for the
> weird/broken case where dom0 is driving cpufreq?).
> 
> This is kind of what Xen already does now.

Indeed (except for the T-state ones, as support for that was never added
to Xen).

>  However see below.
> 
>> What's
>> unclear is solely whether because of us driving things some bits need
>> setting (likely none if AMD systems indeed don't surface _PDC in the
>> first place).
> 
> Since we have the parsing of the ACPI related data done from dom0 it's
> not only Xen that needs to support the feature, but dom0 also needs to
> know how to parse it.  Or we just assume the driver in dom0 must
> strictly know how to parse data from the features enabled by Xen.
> 
> Maybe Xen supported bits should be & with the dom0 ones?  So dom0
> would set what it can parse, and Xen would AND that with what the
> cpufreq drivers support?  However that would be an ABI change.

What cpufreq drivers are you talking about here? When Xen handles P-
state transitions, the drivers in Dom0 would preferably not even be
loaded. That's what the forward-port did. Upstream they may be loaded,
but they then can't actually do anything (and they may exit early).
Coordination is necessary only with the ACPI driver(s), and that's what
this function is about.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 09:23:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 09:23:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246345.1545549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy4vG-0008H8-G9; Thu, 05 Mar 2026 09:23:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246345.1545549; Thu, 05 Mar 2026 09:23:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy4vG-0008H1-Bw; Thu, 05 Mar 2026 09:23:10 +0000
Received: by outflank-mailman (input) for mailman id 1246345;
 Thu, 05 Mar 2026 09: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=NtvN=BF=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vy4vE-0008Gv-MS
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 09:23:08 +0000
Received: from BN8PR05CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c110::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eab49cdb-1874-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 10:23:06 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BY5PR03MB4951.namprd03.prod.outlook.com (2603:10b6:a03:1ef::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.17; Thu, 5 Mar
 2026 09:23:02 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.016; Thu, 5 Mar 2026
 09:23: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: eab49cdb-1874-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=B0IzIvXX+DUxAQsZPIuKvjE7r140VHs+vDvxCWuwHOvVGKPPRzCRMLVNkUdRx5qZZt9p975V4rS1Z6D7tCCm1IladvkRyo9uweNTln7trwmu1RRF3U8MDwOOLlYFvhiWHmdPuxL5T/NtM3dQij7+nr7Dt4yd8swFC2vtnuMoilR8JJYgJx7w/lkdUVN1d1+SXi68pbhsgRe5QIJvXsMZ3DcTT69Dz0omDrGW22A8caT3XkKusLCo/r1dtNqWNuHKyLLz8dw1Xtfys2Ho5xiu88hSmuw8rXVWDPYXydyawGRME/n7TYfh1kIiNy/7I1rdLjLOHV+XKfCZytsHOuVc1Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FnqH61YeoPBXGbVx1OCxJwj77CibYbG86rJfkhJtWt8=;
 b=MjbsPOGFWCgldrvLP1Z4lbT4AjevvzM8gKxs1rslPnQsnsg9R/JaaZ7RrBDSKvi6VVzWv3k4TqHq7K/ffTFYCdRsJm3UqX3KYlzooZmDIdWcNTIfYYB0xu3fT5VEQ0zy/jhBPSHQNsdg7g+umHb8yukDVEiU9KzkNr+12RWd5eE8EkFiScodklanEtQqvhHYxwqUjZjGNhYaudHd4QsXBDrgdwn+sKMu6rv5lsEAhl5ufSdoyhTIw90i2dBiovYwjH7rEF6TKFTXJMDZjdQh3jy9LNuMuYLLmu8wq4blyAHTa+W5mWWQvhG3kxA9r8E9ft8HaucIw7jnMm5obrM2iQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=FnqH61YeoPBXGbVx1OCxJwj77CibYbG86rJfkhJtWt8=;
 b=y/wI6g4F+dis1hycsQYBJbDXCyJyIXifbnZGNJ3Qq8mzsLB6d6r0J2670id52opaTQV7ofn7+R/AdND/z9sQLoHzN2uupsGfwOdSx7XlIZw9yahaUbQwhW15V7tN4T02DJkphpxONldThO2CPckSyj+YDolQGleGU3LdSpBBMu4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 5 Mar 2026 10:22:59 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v5 5/5] vPCI: re-init extended-capabilities when MMCFG
 availability changed
Message-ID: <aalLc4tN5ywM3c_W@macbook.local>
References: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@suse.com>
 <9f1fcbfc-e7b6-4ef3-8f58-c88f9667d606@suse.com>
 <aahKkV2csf28Y0YC@macbook.local>
 <2c3fdfb6-5788-4177-a264-56719e1ae804@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <2c3fdfb6-5788-4177-a264-56719e1ae804@suse.com>
X-ClientProxiedBy: MA3P292CA0002.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2c::17) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BY5PR03MB4951:EE_
X-MS-Office365-Filtering-Correlation-Id: 2a6815ef-1c7c-4764-632e-08de7a98cceb
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:
	jsFjfPD3z3aTWb9fu21YqVL8UvPL5bH+EjiZFYyX5F8KMxDeycg/dSIIn+pu/vTwEJW0hOE68ESGQpqCjaGiXqGjzSi6oBxvwK+pWAEHeWI95yUdFD8Sa7GyJXgmQJeWwNGMQFGX1HAF+yCKS+CXSpiSIcweP5yKxc7eiI8I57ePmCQm3r3qEasSZYUWhERykEHj6YdOiO4nfxs6u/5317IE4Gyd+6S74S6KBUs8NmJBKTH8MaaV5+ao4QrJdKUaBEW8FhBcp577dJoN1Wz+GZKj9dUseePpPYjY5hlkK5ojBztLvj3ZVJ6yncDCjC7v/NtiDY1SG7XM184hXF7Mc2FvqNbqxA+naYi86l1mQcA/uxjOGHUJGTh9JiEKVil049Uj6TgqFgnEj7GVjB8BXa08tdCA5C39pKXbVAOyVkt+o77k2zQm/11AaKHgudRNOhuqhIzWhZJevFIBQk+sofYvAKZTFDTgusXDNzobv0gcvb9u046DOvn/TwxtQCatoS1EjySiBRDfGNs/ZUnMhk9XvXYh8NFfgvMEJzreiLuvNOVQG6ZpNIQFPKlmSxKiPIAN+iguhQYv5DeCgeMddpyHJUnUPQn9fGLQUT8oxS1l4OaBBRHI5kbTuf14yLV2qkTjTco/s/WZlehje44t+mUCGBBUg/CSAivaxoQKKJPJIya4MSQSxeMVpITQfOx/TfV3kW65zk0CWShzbSXFNpySo1J5PzoJuctk8FrlK58=
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?dlZGREJKVHJPOFpzWkpKWDlvMjY4Mjd4bmZHbmd1Q1ZDMlBSaFFwNWJDM3Np?=
 =?utf-8?B?eTc4Q0NvcDV5RldBZU9uT1V0emFVVWlCdWpaOTZWWkRiN2xxUENER0xQQWtk?=
 =?utf-8?B?akVKRDJLeEtxREFQaTYyTkx0WmY5V3o3WFZpQVh5ajlWTG9OSVZ0bUt0aENp?=
 =?utf-8?B?L2Zpd2VuQmRpT0s0TSs0QURkL2E4UWkvZjN4YWxvekpZQlQ3R0xwSXd1eVow?=
 =?utf-8?B?UnQ2eTQ1OHZXT0h4eFdNQ1c4U29TN1EzcStHSnpzVHc2OEptL2dqWGQrMUZH?=
 =?utf-8?B?cTFZbkFZK1lyWTlMb0NmNndmSDYvMTVBUDZXZnVnSkR2MW9UWTUvM1BRMmc0?=
 =?utf-8?B?RHQvMU9MM0F1Y1dkdU1FU0FYaVg0c2Uyd2RjK0tNTkltdnkyQTcxV1Brc2VI?=
 =?utf-8?B?Nmp5QkQzY0RBc1BwMDY1cnJDZURWRHpMTS9Ya3Y5bHdmNEM2MTR3WUdYV3lk?=
 =?utf-8?B?TlBLQWRjYUZKeTNKL3hEU1RhQ2hyQzZ5SFdRUUNzVE9BR2xxRGppWk5US2ZJ?=
 =?utf-8?B?WWdoU0xvdnpldFVjcS82Q0cxUlpXVGxGUEc2L0pqL3BoK1k0VVNKQTdabmJ5?=
 =?utf-8?B?VmtSUDZrYUhCSjc4Zm1MeFNxckFiSEdvdjg2UWFyWmhYRjIxVjBUTC9OUURO?=
 =?utf-8?B?dERkbGJhS1B6Y3lGSzR6TzRNY3QvTTlUTVVvdFVuR05xSk1JanRUYWpVN3Jk?=
 =?utf-8?B?d05kYmdWQ2pSVy9QT1B6bWtzVDMrSENyZFF6RnFFSUFmL0ZabU45VFZtM1JF?=
 =?utf-8?B?N1pSd2RjWU9uYWRkVldBRlU3MVIyM0pGU1RkTThmelEyK29PbnczbGk4V1VN?=
 =?utf-8?B?cUE0OVdWRCtweElmMDM4a2dKYUQyeVlBS2RRQlpIOWhrUGFScXJqK1lLUkFj?=
 =?utf-8?B?QlBnMlEvSFNBd0I2Z0l3bnJ4M0V4SzJzdkxId3M0Ny80WVkvNnNYa3YyQnR4?=
 =?utf-8?B?dHNmZ3VpNnpQSUxnV1pxZG9YTzJVZlNoTkM1RXRKQm1jc1p1VDB3SVlHQlgz?=
 =?utf-8?B?UlV5WTJhNGVWU1liM2UraUViV3RYQjNhbFZDTGZMbVl5aWRQdnNXblh6OThN?=
 =?utf-8?B?QUNHcDc0dExpMzlNck56U3BhM1FGdHZTbDRWc0owZ3I3WW5oYzg2VkZIbzZo?=
 =?utf-8?B?TGhPM2lOT2dPNEdYemRZQXB3RkRYbmdFa1dPYWRrQ0R5cEswMGcrc28vWlBa?=
 =?utf-8?B?dlJNVHlmV3BmNDRGTWNXWC9WTEVaMXVBbGpZbkRoUHNraUJ1bW9xUVMrWE5N?=
 =?utf-8?B?QWtMNVhtSjQrejlUcjFtM2xaVlEyUStIUmtUZHhLdUtJb1NWK0dMOTRPQVd4?=
 =?utf-8?B?eE5PVnZZNHprRy9HQUV1VVdiTkg5Lzk3N0wvMlNsVlhZU015djl2NjdGWTBJ?=
 =?utf-8?B?eW1jaUlsdTh3RVZ1QlVHR2tTeW40aHZxUlNpbzZkL1o0UStmYlZxV00reGVs?=
 =?utf-8?B?Mmt5dWluWEJ0dVV6VGlwdyszM3VienZ5cUNWN09WZUg3eXh6NFVLa1BMTXhK?=
 =?utf-8?B?SzRzdFBlWDRBUm1xLzlaWUZpQVd1VjF6ZEhaTHZLZ0tFM21zMXlNdC9WMmkr?=
 =?utf-8?B?aXBCVTMybDd4S2N3bEFSZVFrUCs3NE1SNnZBRTFTYVVZTFdXK3NPb2NIU2Ro?=
 =?utf-8?B?OUp5SHNWbTdMNTkvS3l2eFpEV2ZHQlY1SWJXOEFMa1UrNXY5ZnlwamdvNERq?=
 =?utf-8?B?cW83eVRhZjdsczFrVFVQaStiM2Fjb0U0bm41NG01c09aWExiR1RjMUlabUg5?=
 =?utf-8?B?MndGaTZ4VUd6S01jNTlMSFp4TXE4OWdNRHFpZTBFeWFhYnFYUzQ5bGFPK0ZY?=
 =?utf-8?B?N3Z0R3lmRXp3RkUrbUsyWXh6enRIUjZ6VGszUndERFRXRDRJcU1TQUF3cVdK?=
 =?utf-8?B?Q1NUYzRJOXZuZUhpa3VXY2dNb1ZrZ1dTR3BXSURpM240VTVJZXNwYStkbnk5?=
 =?utf-8?B?RjJuRkRkNVdhQ0hvUnRvaU5CT0FuUFJScXFDUkZ1ZnBzZDdQR29yL21kbEZL?=
 =?utf-8?B?VGZpZlhnbWhGc1pxQjAvWnNjdTNpak8wTUNqQ0V1cWpnUTRWT21OSi94QjNr?=
 =?utf-8?B?V1ljVmdtaW96bkp4OEgxOFBOZUdXZnJMSzMrWUNtY2ZmQ0VsRkUvcjlPNE8w?=
 =?utf-8?B?aHlyaDk0bGF2U1Zha1A3WTFpWXdEYXNrdmNxOEQwMEZzRytIazArNTIvUEl0?=
 =?utf-8?B?cy9TaTJsV2h5TzVKV0x6RkIzVmxMdmNMNDM1djNnaHNHVnJVK3JkUVVOREhm?=
 =?utf-8?B?eHFPcldraWxKQkx4dVd3bDdIYTJtOEthaEI5QWhRbjlEMjZzeU0xU2xyZlBr?=
 =?utf-8?B?L3hKODdIUHU5OUxYcndRVVFEVnB5YTNrQmJjaGp4aXNhZFJRRTVMQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2a6815ef-1c7c-4764-632e-08de7a98cceb
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Mar 2026 09:23:02.6615
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 23m7ealdRJc4QP//JMG1raNuqnlqAjLTOa1pRDFDsRzj9zJp4IpFy3r+CBfAVPB5R+RLRxKQXerXk0CGdKkeXA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB4951

On Thu, Mar 05, 2026 at 10:00:13AM +0100, Jan Beulich wrote:
> On 04.03.2026 16:06, Roger Pau Monné wrote:
> > On Wed, Feb 25, 2026 at 12:44:44PM +0100, Jan Beulich wrote:
> >> When Dom0 informs us about MMCFG usability, this may change whether
> >> extended capabilities are available (accessible) for devices. Zap what
> >> might be on record, and re-initialize things.
> >>
> >> No synchronization is added for the case where devices may already be in
> >> use. That'll need sorting when (a) DomU support was added and (b) DomU-s
> >> may run already while Dom0 / hwdom still boots (dom0less, Hyperlaunch).
> >>
> >> vpci_cleanup_capabilities() also shouldn't have used
> >> pci_find_ext_capability(), as already when the function was introduced
> >> extended config space may not have been (properly) accessible anymore,
> >> no matter whether it was during init. Extended capability cleanup hooks
> >> need to cope with being called when the respective capability doesn't
> >> exist (and hence the corresponding ->init() hook was never called).
> >>
> >> Fixes: 70e6dace747e ("vpci: Use cleanup to free capability resource during deassign")
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >> ---
> >> vpci_reinit_ext_capabilities()'es return value is checked only to log an
> >> error; it doesn't feel quite right to fail the hypercall because of this.
> >> Roger brought up the idea of de-assigning the device in such a case, but
> >> if a driver doesn't use extended capabilities the device would likely
> >> continue to work fine, for Dom0 this probably wouldn't be quite right
> >> anyway, and it's also unclear whether calling deassign_device() could be
> >> done from this context. Something like what pci_check_disable_device()
> >> does may be an option, if we really think we need to "break" the device.
> > 
> > We may want to add a note there, stating that we have considered all
> > possible options, and hiding the capability and hoping the owner
> > domain would continue to work as expected seems the less bad of all of
> > them?
> 
> While adding that note it occurred to me that in order to keep the device
> as functioning as possible, in the re-init case vpci_init_capabilities()
> might better not bail upon encountering a failure, but accumulate the
> error while continuing its loop in a best-effort manner. Thoughts? (One
> of the two return-s is already guarded by !is_hardware_domain(), so that
> could be left alone for the immediate purpose.)

Right, yes, that would be preferable.  We already print a message for
the failed to init capabilities, so there's no need to print another
one in the caller.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 09:45:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 09:45:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246370.1545570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy5Gx-0002xo-Bj; Thu, 05 Mar 2026 09:45:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246370.1545570; Thu, 05 Mar 2026 09:45: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 1vy5Gx-0002xh-8C; Thu, 05 Mar 2026 09:45:35 +0000
Received: by outflank-mailman (input) for mailman id 1246370;
 Thu, 05 Mar 2026 09:45: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=00Q8=BF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vy5Gv-0002xb-GN
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 09:45:33 +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 0cce88f2-1878-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 10:45:31 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-48371119eacso93340205e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 01:45: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-4851fadeb5bsm43355515e9.5.2026.03.05.01.45.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Mar 2026 01:45: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: 0cce88f2-1878-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772703931; x=1773308731; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=u35ZfvqWtF9yNhv2mrL/KlcTzbQ+4dd3N9VGDV9JC/I=;
        b=c58tsw59UOIXpJE81mFE1n3muTGEhzd/zHZrsFfJiqTA9j5Zb8awomB01emgCSlMpE
         adC0Y6bkpEBVRW/HIvU8h1NoGcISXx0hH8MAG7bAahRaVM9zMyEiTGbQz0zCtWEX0mrv
         ZK0rIlbaYUNnBLh/T0OJhQaPH98Q8CoXW0K7xHiDQG5Xq+lHY/urOePWcW+CG6vFu+9V
         fSfiEQhCClA2lj2MazbvjRzgpxLgnmkIHMFa/V/RMWvSL2HYzqrE7utXKgHSfEjq/3UX
         ypNTcZPEmtkke+jJN+NAu97lpsF4mfKdkbNweoE4xAHmMPJQJiY1b5zQmyG5xRBgDtWO
         cwgw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772703931; x=1773308731;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=u35ZfvqWtF9yNhv2mrL/KlcTzbQ+4dd3N9VGDV9JC/I=;
        b=dTycBCiqiICZ1h27o4KVi/8SMHz6HwkK+8C8DC7lTIw9EbicwwAr1Fy0+XzoJ6O2wB
         +RaIcEMt+l4SDXgQp58FQd8FQnTNqyZNX0KoEyeVJ5aCm1Jmi1cz/L9CwbBLKI1jQwAH
         AipVio2QmI3djtro4h+405MJaqBfPJF85Kqbwr4buRyvCTh4ROhU9W2fiMQzRCw8pTE8
         gxQJVvXlI8MjqSsafP0tE0Bq/HT2rOulC7mTIKkHeQ52OlhoGBG8H38GeUd1QrGaPcen
         35MC6J4DJRPZFKZqyAXKVwi7frhf+evJMx2THOkbfIw3EYh0bg34nep/3kygS54fWocQ
         b9gg==
X-Gm-Message-State: AOJu0YyX1XBUa2whv08AiWNpvy765ZhvoDbuwg+F/zI3BmF6Px8YglVv
	ZCtBm8/xMlRlDgROXHZ9NGPHAQQkV9+Mzcx9tHm/DWCxlGxAIjdDo5cPUt0DA6NnZg==
X-Gm-Gg: ATEYQzz2AYzjDKqTwUdoDZ8ffUSAYYJo+uYr6hb5/u6A6cc3XD09IIl50VeYBWSOd3E
	CxmdRBnEMQdFgGvX4xizayVAKczmAKDbTGAfVlqPnUwxNbEoaZnSAh+yYFKmSH0JMI+xqpMRUmW
	4Z4iBQVdfGl0s81Hl6AeDfytVSHUJ5/gXGgKZEwk3rL7nmvSqK4oIcP6SyX7eT7oqpk5htTmS26
	z+8IgdAm4zocC5FLxdBrYb4tCPnbz1FqxbKikdih6nlFqEsFvSUWD6C/qsZfM401uC5N9u871W4
	PpgbKDZ5E0Rqesl8zfdCl6X8HVb4r/RaerokfYOALRUFkzxjcA4a4/4sA11KF4D8KShO3IHiR71
	J6cOwB3z63DGAqIYL7YYMcLlk7Y22LZj+dCpWg6hAV803k4IP+gCcYIVaEDRczOwoKD+5Vb+LYg
	bBZC/aOHMc+MWP7JaH9WMwjQ0y8dhGk2A5N/Eezhu7y2UcKgyBvcgVM9FlclBcDreCZNPgt9Sjc
	PftIRMU9M77+aE=
X-Received: by 2002:a05:600c:4f4c:b0:477:5c58:3d42 with SMTP id 5b1f17b1804b1-48519849bd4mr93711395e9.10.1772703930948;
        Thu, 05 Mar 2026 01:45:30 -0800 (PST)
Message-ID: <bb06fac8-43e7-4d9b-81b6-970066b8bb73@suse.com>
Date: Thu, 5 Mar 2026 10:45:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 5/5] vPCI: re-init extended-capabilities when MMCFG
 availability changed
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@suse.com>
 <9f1fcbfc-e7b6-4ef3-8f58-c88f9667d606@suse.com>
 <aahKkV2csf28Y0YC@macbook.local>
 <2c3fdfb6-5788-4177-a264-56719e1ae804@suse.com>
 <aalLc4tN5ywM3c_W@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aalLc4tN5ywM3c_W@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.03.2026 10:22, Roger Pau Monné wrote:
> On Thu, Mar 05, 2026 at 10:00:13AM +0100, Jan Beulich wrote:
>> On 04.03.2026 16:06, Roger Pau Monné wrote:
>>> On Wed, Feb 25, 2026 at 12:44:44PM +0100, Jan Beulich wrote:
>>>> When Dom0 informs us about MMCFG usability, this may change whether
>>>> extended capabilities are available (accessible) for devices. Zap what
>>>> might be on record, and re-initialize things.
>>>>
>>>> No synchronization is added for the case where devices may already be in
>>>> use. That'll need sorting when (a) DomU support was added and (b) DomU-s
>>>> may run already while Dom0 / hwdom still boots (dom0less, Hyperlaunch).
>>>>
>>>> vpci_cleanup_capabilities() also shouldn't have used
>>>> pci_find_ext_capability(), as already when the function was introduced
>>>> extended config space may not have been (properly) accessible anymore,
>>>> no matter whether it was during init. Extended capability cleanup hooks
>>>> need to cope with being called when the respective capability doesn't
>>>> exist (and hence the corresponding ->init() hook was never called).
>>>>
>>>> Fixes: 70e6dace747e ("vpci: Use cleanup to free capability resource during deassign")
>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>> ---
>>>> vpci_reinit_ext_capabilities()'es return value is checked only to log an
>>>> error; it doesn't feel quite right to fail the hypercall because of this.
>>>> Roger brought up the idea of de-assigning the device in such a case, but
>>>> if a driver doesn't use extended capabilities the device would likely
>>>> continue to work fine, for Dom0 this probably wouldn't be quite right
>>>> anyway, and it's also unclear whether calling deassign_device() could be
>>>> done from this context. Something like what pci_check_disable_device()
>>>> does may be an option, if we really think we need to "break" the device.
>>>
>>> We may want to add a note there, stating that we have considered all
>>> possible options, and hiding the capability and hoping the owner
>>> domain would continue to work as expected seems the less bad of all of
>>> them?
>>
>> While adding that note it occurred to me that in order to keep the device
>> as functioning as possible, in the re-init case vpci_init_capabilities()
>> might better not bail upon encountering a failure, but accumulate the
>> error while continuing its loop in a best-effort manner. Thoughts? (One
>> of the two return-s is already guarded by !is_hardware_domain(), so that
>> could be left alone for the immediate purpose.)
> 
> Right, yes, that would be preferable.  We already print a message for
> the failed to init capabilities, so there's no need to print another
> one in the caller.

Hmm, that's another aspect I didn't consider. Yes, the log message in the
caller is redundant with the present code structure. If we expect that to
remain like that, I can drop logging anything from
physdev_check_pci_extcfg(). Which then re-raises the question whether
vpci_reinit_ext_capabilities() might better return void. At which point
the comment I put in physdev_check_pci_extcfg() (upon your request) would
want to move there.

But my earlier question went in a different direction, and you didn't
comment on that at all.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 10:00:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 10:00:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246392.1545583 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy5VP-0005xH-NY; Thu, 05 Mar 2026 10:00:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246392.1545583; Thu, 05 Mar 2026 10:00:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy5VP-0005xA-KB; Thu, 05 Mar 2026 10:00:31 +0000
Received: by outflank-mailman (input) for mailman id 1246392;
 Thu, 05 Mar 2026 10:00: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=00Q8=BF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vy5VO-0005x4-9q
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 10:00:30 +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 23c27d3a-187a-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 11:00:29 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-439c5b40f60so1605059f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 02:00:29 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4851fb3666asm28701775e9.14.2026.03.05.02.00.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Mar 2026 02:00: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: 23c27d3a-187a-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772704828; x=1773309628; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jcpGEgEdNDn1d5L/htnJMQZXZeNQSDK3grLyRzw5sBw=;
        b=X5VkzwoCZsu0X7YHTHsOaCqZioLZht6XLeX7TSU0TkJdqgR9WTW5pXfuIRcTCFSF2U
         JihFogfrTIW5nrk56iQOGaY/LswEVW+ivbO4fcFRdS62fT9HcjywFXBrNh8iCVSZxan2
         3g+TqR5+AROEO5SbscyYSaVPYDG0XgDmL0KeX1ulS+L2DiTlovFGRwsIILVG46waCxVy
         2IDYz78mA0ZQ/nnrZlPrVawSF5kSiPUoqVwumFvC6L76jHkfIeP5BUITpUpUnAIJGG7a
         1fegjESRTFBvRxBprYfBz9ODiZxMlphvEr6+p6M+wKA34Fgr2IWSV+14vDuQd2weho0w
         V5lw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772704828; x=1773309628;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jcpGEgEdNDn1d5L/htnJMQZXZeNQSDK3grLyRzw5sBw=;
        b=FNt0DtiYo4mOV9RUYa03jgbOXrr4fRZSW5FaVNBshP0VvWKJ1qAF2bYYkrVtrdS3rn
         Tr1AgmFvVvFk7AG30Avs+4vg8tHuqGKhAjszFwViRl36/vSQskxs+gfDMxmlYUMrBPqd
         TiuCA5fj4qkkIA5KPaIB3wr2DUCxmPurkzpzK5ISXnFdkGF1VtOT5K9nID5lbKhsXVVw
         wEUKLCYLpJDEM8+OK/2iCzObv36SQufFpHNCAPuNJK7btVsHtjuMB0JV+u25ULD8TQvB
         KArtfnkrgEDVUNQRkmK4DJxewtDqxZvqrUJJgIxYhWOXpvsT6WEcubNDQRilLsOs308n
         IdhA==
X-Forwarded-Encrypted: i=1; AJvYcCUZ178/ne2Olyh+LyMNlBjogGqeJDqMZGdPNz1gTquO6FCbaaQVEBbCa6vuoMKxENfCtSxrywXdkIc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywrd0oFxfnoPIdEYTIplZtk8+fpR3VpEW4LGhtYkPhuynP6guRY
	o9mxv+3LBtr+UR8oU/A4OiczAXjrmag+jR7RdboUzs/K/Rp9jcIfoNpPRBmJUvAhK3J9O13V74u
	xHIo=
X-Gm-Gg: ATEYQzwXiWwLiugUcXS/hoeZ0NLx2orOhFrL21q1aEpeqpREd+aQLnxiGgUAmJpxdXx
	y/At5EvawAC+CVGWy1t8Y4p29iL/opdvtTb/tUHrQPxunbHpI6h865pLuGt5j9HTxzV92LN3NSU
	m4WUGX7wRydKYE0skJyxJU5CU5KSZqnyPnAUxEYSVXdG905tbgZsgBfJlUszVFzmMP4vrYMnLFB
	xRIc2pYsT0Y3rNHMU53+uq5ASqzvViia3unkFD9MzKd3TKTFsjDaYFTpkWX15I8POUdPhXDiKbO
	jzpUT9Bv0aiDik4sSfEZe9AGl0f0+80tOJJ8uWsU7dMME+h9ofKNUg8E3yn8dHuoPJLNTq7bcdl
	rIL28f7ADMkYStESd3y0aXt2xpZH8kyGFn6eneTD/rabgCaBhlPgKMt6IGrPk2nTFnLfc8QGUVW
	S1HxRHKrI9GFNUqti+3IecpQVqIsUGtTWbNRah3F3zFLLz+yaWRD3ClZGkMMtHadaRhMERq6yp6
	wt/TnjxyWKSFcI=
X-Received: by 2002:a05:600c:4454:b0:483:702f:4633 with SMTP id 5b1f17b1804b1-4851982700amr76787235e9.4.1772704828280;
        Thu, 05 Mar 2026 02:00:28 -0800 (PST)
Message-ID: <9e873ced-59cd-4e5a-91d9-375e7cb2798b@suse.com>
Date: Thu, 5 Mar 2026 11:00:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4.1 09/14] x86/pv: Adjust GS handling for FRED mode
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260227231636.3955109-10-andrew.cooper3@citrix.com>
 <20260304171826.45847-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: <20260304171826.45847-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.03.2026 18:18, Andrew Cooper wrote:
> When FRED is active, hardware automatically swaps GS when changing privilege,
> and the SWAPGS instruction is disallowed.
> 
> For native OSes using GS as the thread local pointer this is a massive
> improvement on the pre-FRED architecture, but under Xen it makes handling PV
> guests more complicated.  Specifically, it means that GS_BASE and GS_SHADOW
> are the opposite way around in FRED mode, as opposed to IDT mode.
> 
> This leads to the following changes:
> 
>   * In load_segments(), we already load both GSes.  Account for FRED in the
>     SWAP() condition and avoid the path with SWAGS.
> 
>   * In save_segments(), we need to read GS_SHADOW rather than GS_BASE.
> 
>   * In toggle_guest_mode(), we need to emulate SWAPGS.
> 
>   * In {read,write}_msr() which access the live registers, GS_SHADOW and
>     GS_BASE need swapping.
> 
>   * In do_set_segment_base(), merge the SEGBASE_GS_{USER,KERNEL} cases and
>     take FRED into account when choosing which base to update.
> 
>     SEGBASE_GS_USER_SEL was already an LKGS invocation (decades before FRED)
>     so under FRED needs to be just a MOV %gs.  Simply skip the SWAPGSes.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> 
> v4.1:
>  * Extra comments

Thanks.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 10:18:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 10:18:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246407.1545594 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy5mG-0007pX-3F; Thu, 05 Mar 2026 10:17:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246407.1545594; Thu, 05 Mar 2026 10: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 1vy5mF-0007pQ-Va; Thu, 05 Mar 2026 10:17:55 +0000
Received: by outflank-mailman (input) for mailman id 1246407;
 Thu, 05 Mar 2026 10:17:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=NtvN=BF=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vy5mE-0007pJ-SO
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 10:17:54 +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 92715f5a-187c-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 11:17:53 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH0PR03MB5751.namprd03.prod.outlook.com (2603:10b6:510:37::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18; Thu, 5 Mar
 2026 10:17:49 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.016; Thu, 5 Mar 2026
 10:17: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: 92715f5a-187c-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iveqgx+reBQU8LR3yWdSYQnB2SpR9n8WxyYXrahwyCvxlfs0cGdrg1Gx+m90QF5FiQz9gbsO6QHflHIWklyjxUFIhJM7REDLdzKLdOmSRFEVlAiiUzhLRyXVBTezoKeI47pvfSNBy8SXXQZdHJbmqwgglQDqHbPhrOUThB+ulC8UpSMoJQFBgpAemMI13uQhFXwV/X4Nk/U9kcN4Gw31fjg+FH350nvQylH0T1vBuM4KAiFTp3Iy/91ssQ9NiK+kdbpbxXTAUp6jbzl+KX1/rTFCCmketMVpSiyi4rA/vecUItoPSMPoBqd6QR8FzL0OMZ1EEkDwnExCaFDWyOUpng==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yb2AtnC2c0l2A3eDXawoWOYwxLc4Uvk1WfvhikYEUXo=;
 b=KGXDRPwTyMjS7dlG4eWoPyvPZhbgUCGSh5w/naL+o3cx7jNS9Fq/KflVPiCwiF1OHXAXk9954YZIWZ8sseFPE6O+hVVBxv1fXS/EjNjVwyPNnUa01AZeKjBI6XH2OR2p/RSUSQLUS1+edjhCHTH6hCfXy63bSoWgfdf0hhCIQBYVWzeJnFAtuYcUFM0AKQR1MuWUHeeNhxx5+dJYWYjaPRXt+1rcCn7Q239lx4q7w12EE7DgZDVhwzceNlJPwXFLQl3HqXS3bYSHAeY6Ji1UZh8n2ylo5FmDs8fobCyMlNkjYItvOInjW/r2FUBJBsjl75Bztie7IpJblwqViAsz6Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yb2AtnC2c0l2A3eDXawoWOYwxLc4Uvk1WfvhikYEUXo=;
 b=QGQB2LL8i0/2EmQceE+7jNcWPdlF5yCJvOBRiIEIjO8zuB66EoNCx31Ax6uudd3qPwVvap9SQgBMgcOG3wtJUuTwxfbij+hZTbyG+Bom2TpLLTfOrsPwc4peFrrouc2BhGO6tHwBH4Z2ltOj96lJTSERRNVy4UO6Bw2451jLMuA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 5 Mar 2026 11:17:45 +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>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Penny Zheng <Penny.Zheng@amd.com>
Subject: Re: [PATCH] x86/ACPI: _PDC bits vs HWP/CPPC
Message-ID: <aalYScWQQx_vMqII@macbook.local>
References: <ca1812c2-dadf-422a-a195-9c285ce08077@suse.com>
 <aahfgDDNVwJPa-jF@macbook.local>
 <3449aaf7-b221-4c45-9d22-54e340167b3f@suse.com>
 <aalD5VRBBuM16pxN@macbook.local>
 <73dd0000-4044-486a-915d-6381d0820cf6@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <73dd0000-4044-486a-915d-6381d0820cf6@suse.com>
X-ClientProxiedBy: MR1P264CA0009.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2e::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_|PH0PR03MB5751:EE_
X-MS-Office365-Filtering-Correlation-Id: 0c12a01f-bc69-4f46-2548-08de7aa07428
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:
	3sLo5tt0lGLeeVvqk+Qb2ULjuR1bj/tDFURXEi+EsYd6AOxmVLNXA6vEa6XLIDF0Gv+NctcjB/+yV62lH086ZPzDl+sTs/6gvohyvv0iOkuYkU+D2/QJrjM0GwFzCl2IM0PFprRXrRsm6CxcfOnPJwrODqthRQQZ1v42K5N1Qr/j4hrwepKkppMvt2ZuPEA5x3UOcCk2FjF9G+4GNBFTV0BUTlizovhyC1tuBpAEoTjuzeXYQkVMTtSOjEc7CkQUW30SABfGthfwFfsgBtTEKUvbBQEKfYhxgQYRg6wHG5H/dkmBXtkgrGxLgUGrVju98H1F9xU2uzFJ6OkTRhdUotv8zi1Jaarr2XrX6H0ZY81QCgQ4G7VFMYXj2jsEJtmYzaWjFTKfN5KAK3HT0PrlntNf6AwOH4xmPeg1lGF043nVJo2Y4Daz5vRh4RTiiZxNgpf27xY8Di+/tytrxIrlUKxNwzkkV7eYsKBf13XF0MeVF5dmto7D1dY6lhHyVQKX/1k4bRwmDqZMUjlgYsRr7QPTwX0q3di/MOxblz0A2XTloYG2xtQJqoGfWE9LoNQwbrZ+NdL/yC0yK3CpengAjrC3wfkPnoPAB5vXp6E/DlmWAyRFSjevIcgTp3b7XrB657mk4gxMgCO3WBmHfHKx9zp5/5qwpxXyB0d44Ey0xUQT3vNaq7Ox5uFuKhP0TRF+D1GiwvkVWws3zf3IW/60uEQT9cvgPN3ac423RbVCmwA=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WllROHRWeSt0Yy9QdnJZN1R0MEwxK2NzTmdlUERjMEt0VXI0bzVaZElPNk1q?=
 =?utf-8?B?dFVuelJZSzh0VDF5VTBXQ29FZjM5WU9rVVpLUUg2VGtKOUFaVzA4NzhxS0lV?=
 =?utf-8?B?UTNHdFRjaTh0V2ZicFNtMDRHN21QTHdXRVpmL0szZzlwQ3JyVUw0VDFWL05Q?=
 =?utf-8?B?TzBFcllnV2tVanR1RFQ3Nms4SXBvNU0ySGpRMG05eURXRWhOWFJqV1VkdWox?=
 =?utf-8?B?Y1pKc0FVR29DL2dUcE9leHVvbVArYXhPbUlaSlhpYjNzajBLUU5QQjNmQlRY?=
 =?utf-8?B?dThjM212WW4xYzJhUEhsb0JWVHU0aUlDV09lczZ4T1VTaFZpeXFjaUUweStR?=
 =?utf-8?B?bGw1M3JuVjRRbTRZc2hvZE1mK0k0bXlnaUl1Ykp3a2xUdGh3WXlTTEdwekFV?=
 =?utf-8?B?clpqWkxBdk5nRWVZU3dpem5yQWtZMS9oeXliUUtnZEFOS3lGNXFQZzhhOGNF?=
 =?utf-8?B?QmV3VjZ0Q0hGWVB4NFdtMy9NbGVuRnNXeGJqUmlNbWVTNTF0cUNUa3BMOXBn?=
 =?utf-8?B?K0dndjUvcWEyUzFrK0xxNTRqZ05SaHlIRVkxUUp3ZjhTZm5waG5OZjNDWDYz?=
 =?utf-8?B?KzIyV0lwcHZzU0l3NmJjdC9DM1U3anh0eGZUcjBRTHozVFU4MVVPanZ0ZzNK?=
 =?utf-8?B?RTlxR20yME5GOTNJQysrdEhIem4xRzJQa3RKVlMxN0t6by9TMW5aalF5MmNJ?=
 =?utf-8?B?eDNkMityaXZxZzMrcEQ0VHMvdVVZMm1XS2c1NWxZQ2xscFVRdzZoM2pob0Fq?=
 =?utf-8?B?MVRKQkRXSmJITTlJZ1FxZENSbnZKZ2RoM1BuWi9VSWJTTTBKVWdXVlRzMlhy?=
 =?utf-8?B?TGhNZGdUK2lSYWRYb215NzBrZ2lyU2Q2T2o1OUVwWGgvUjlyRWZyVWRpV1JL?=
 =?utf-8?B?TXhBUnphb21DTDBxVnl0ZW40Zko0VHU3di95eWJuZ3ZjK0d6R2lod29EMXhp?=
 =?utf-8?B?WUVGSEErUlRadExYKytPR2xvZkRhandOVFRVNWU1UEtiaUJLQ2ZSdlhRRTA0?=
 =?utf-8?B?V0tXM3gzaWEzR2JnN1BlMHBGd2xWdWtYNHdhbnFHekJ3ZkMxNEdFelBRYUN3?=
 =?utf-8?B?aWs5UUNabGYrbktsNjJHcEk4SkUvN1Nqd0JoYWV1OW9mQXlzbWNLb3VyR3lU?=
 =?utf-8?B?azdzODAxbGd6RDFIczV5a0VCUGR4T3lXQVhaSDhveVpKeEdJWlhSZ2F2ZEJs?=
 =?utf-8?B?M0xjOVp6UW10ZUY4QWFUV0FQSVhUVnMzMUphK1BTcWVCTktVMHFxZnlIdmZO?=
 =?utf-8?B?S0pSRkZ5RUtkT1RIMllJcUN3U2QrOER1Y01rcEFaemVQK3poTWY5UzR5djZv?=
 =?utf-8?B?QmYxMGhHZ3BZQUxDRFBreGZMcmxJVFFJd0VUdUZITXQxSHNwVGc5RFpERkF4?=
 =?utf-8?B?di9nYzdJUmdlQnpSSldKSTNERWNBZ0wxblNJYXFMeUdmYnZJU1JPb0Z6K1dk?=
 =?utf-8?B?ajB2cnFMUmRvMHo2ZGpHUG1sVlowbEhnRUU0eGpxbWVYRVE2RTErVDVVWXBD?=
 =?utf-8?B?NTRKU25lN2tHdkdsbUoySmZqZnovTExhZ2xmVnAzNmdhN29HREJ6NW1pS3ZG?=
 =?utf-8?B?L0ZmT0d2NFdSclRvS1djd1A1N2dWM05ZRGJJU28wN0U0Ym1abHhPdVh2M3pz?=
 =?utf-8?B?N2JMSnRvWGVna2tLcm1heVdCQncrbU9valYwZm5WbnN5R3RmYiszZld4VzZk?=
 =?utf-8?B?UHYwQlFsSFQzL3JiRjFYRTlwZ1gxd0I1WWNtSnVza0hnTVBMajRhVW5weFlL?=
 =?utf-8?B?TVV3KzZNTDNxU2hyNVZkUVhsNzUyOGZtczlZSFJINGhBaEhWd1dYMnpvWWJW?=
 =?utf-8?B?NUZHck9IM1RCN1EzUkg0SmVyNlE2MC85UjNZUjBmWmNIeHNTRUNUR25iZXQx?=
 =?utf-8?B?OVJuWmU1c00ySGpLbURXV3FHMlorck5rUGkveCtpYlF4cXFlZHloNW1EUytG?=
 =?utf-8?B?MG9DbmsrVFNzWDJSRFpIWEgrVlVoejdjZjd3Z0w0SkY5eFNBcVc3RkVqVlNn?=
 =?utf-8?B?SW5GTUN3NEQyTlczUkRrWDBacmhpZHh2UnUrUWZCb2dEVVpidUNaUnYwbVlv?=
 =?utf-8?B?elUxK3NLd1ZZdXJBYWhDWjF4ZXdKa2dFUUhNbW9jeWx6VlBJbjQ2Z041a3Fl?=
 =?utf-8?B?NDBoQzBBOUlsUjU4TVRuWEpQZzFJb3JITFI1bUQ2RVF6UDM1ZzE5UGJYbFE1?=
 =?utf-8?B?SHV2bzVHby9wTHJSRy9STWt4dzg0Tzc4cWt1NXFWb3hmQnJlbWtWanVUZjBs?=
 =?utf-8?B?WTJXVHYwUXpKS3h6TTlSeDZnYTRjdTFsV3UyNStYVVY4TXJNZDJhOEJYZFhG?=
 =?utf-8?B?R3QvK29RbzJyOVFaL1lrbkV0b3VBOE5GZDRuMy80QmxHOU03SW9Jdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0c12a01f-bc69-4f46-2548-08de7aa07428
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Mar 2026 10:17:49.7798
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wFpvwPipZipAkb0uwRquqQOv0l/S4C8+PlR4tPkq6rwjJARH9F4OmU68gXFOOQHsygpklOdlFbBPnXAS54yL9g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB5751

On Thu, Mar 05, 2026 at 10:20:02AM +0100, Jan Beulich wrote:
> On 05.03.2026 09:50, Roger Pau Monné wrote:
> > On Thu, Mar 05, 2026 at 09:17:23AM +0100, Jan Beulich wrote:
> >> On 04.03.2026 17:36, Roger Pau Monné wrote:
> >>> On Wed, Mar 04, 2026 at 03:37:25PM +0100, Jan Beulich wrote:
> >>>> --- a/xen/drivers/cpufreq/cpufreq.c
> >>>> +++ b/xen/drivers/cpufreq/cpufreq.c
> >>>> @@ -694,14 +694,23 @@ int acpi_set_pdc_bits(unsigned int acpi_
> >>>>      {
> >>>>          uint32_t mask = 0;
> >>>>  
> >>>> +        /*
> >>>> +         * Accumulate all the bits under Xen's control, to mask them off, for
> >>>> +         * arch_acpi_set_pdc_bits() to then set those we want set.
> >>>> +         */
> >>>>          if ( xen_processor_pmbits & XEN_PROCESSOR_PM_CX )
> >>>>              mask |= ACPI_PDC_C_MASK | ACPI_PDC_SMP_C1PT;
> >>>> -        if ( xen_processor_pmbits & XEN_PROCESSOR_PM_PX )
> >>>> +
> >>>> +        if ( xen_processor_pmbits &
> >>>> +             (XEN_PROCESSOR_PM_PX | XEN_PROCESSOR_PM_CPPC) )
> >>>
> >>> Currently the CPPC driver is AMD only, and hence when using it we
> >>> don't care about filtering the _PDC bits, because the ones Xen knows
> >>> about are Intel-only?
> >>>
> >>> As you say, we likely need some clarification about whether there's
> >>> _PDC bits AMD care about?
> >>>
> >>> Linux seems to unconditionally set bits in _PDC, so some of those
> >>> might actually be parsed by AMD.
> >>
> >> Or it setting whatever it wants is meaningless on AMD systems. Where I
> >> have extracted ACPI tables readily to hand, there's no _PDC there.
> > 
> > Oh, interesting, so there's no method to start with.  Is there an _OSC
> > method however for processor objects?  _PDC is deprecated, and maybe
> > AMD systems only expose the equivalent non-deprecated _OSC?
> 
> There is, yes.

Hm, then an OS would use the Xen _PDC adjusted buffer with the _OSC
Processor object method I think, and we are back to the position of
not having an AMD specification for those bits.

> 
> >>> I think we might want to split the setting of XEN_PROCESSOR_PM_CPPC
> >>> here from the addition of ACPI_PDC_CPPC_NATIVE_INTR into
> >>> ACPI_PDC_P_MASK.  The latter we can possibly untie from the questions
> >>> we have about AMD usage of _PDC.
> >>
> >> Hmm, yes, I can certainly split the patch. I'm looking at it a little
> >> differently, though: Us leaving any P-state related bits in place when
> >> cpufreq handling is done in Xen has been a mistake anyway.
> > 
> > Yes, TBH I even wondered whether we might just wipe whatever the OS
> > sets in the _PDC bits and completely fill it from Xen (unless for the
> > weird/broken case where dom0 is driving cpufreq?).
> > 
> > This is kind of what Xen already does now.
> 
> Indeed (except for the T-state ones, as support for that was never added
> to Xen).
> 
> >  However see below.
> > 
> >> What's
> >> unclear is solely whether because of us driving things some bits need
> >> setting (likely none if AMD systems indeed don't surface _PDC in the
> >> first place).
> > 
> > Since we have the parsing of the ACPI related data done from dom0 it's
> > not only Xen that needs to support the feature, but dom0 also needs to
> > know how to parse it.  Or we just assume the driver in dom0 must
> > strictly know how to parse data from the features enabled by Xen.
> > 
> > Maybe Xen supported bits should be & with the dom0 ones?  So dom0
> > would set what it can parse, and Xen would AND that with what the
> > cpufreq drivers support?  However that would be an ABI change.
> 
> What cpufreq drivers are you talking about here?

I was talking about the Xen cpufreq driver, sorry the context was
confusing.

> When Xen handles P-
> state transitions, the drivers in Dom0 would preferably not even be
> loaded. That's what the forward-port did. Upstream they may be loaded,
> but they then can't actually do anything (and they may exit early).

Well, yes, on FreeBSD I simply overtake the native ACPI Processor
driver with a Xen specific one that has higher priority.  So the
native ACPI Processor driver doesn't even attach.  I think Linux is
slightly different in that it allows the native driver to do the
fetching of the information, and then the Xen driver only does the
uploading.

> Coordination is necessary only with the ACPI driver(s), and that's what
> this function is about.

I think Xen also needs coordination with the driver in dom0 that
fetches the information from ACPI?  It's not only Xen that needs to
report what the cpufreq driver support, but also dom0 would need to
expose what it can correctly parse.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 10:20:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 10:20:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246415.1545603 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy5oz-0000u1-EW; Thu, 05 Mar 2026 10:20:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246415.1545603; Thu, 05 Mar 2026 10:20:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy5oz-0000tu-Bj; Thu, 05 Mar 2026 10:20:45 +0000
Received: by outflank-mailman (input) for mailman id 1246415;
 Thu, 05 Mar 2026 10:20: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=NtvN=BF=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vy5ox-0000to-O8
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 10:20:43 +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 f657f35a-187c-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 11:20:42 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BN8PR03MB4979.namprd03.prod.outlook.com (2603:10b6:408:db::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18; Thu, 5 Mar
 2026 10:20:38 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.016; Thu, 5 Mar 2026
 10:20: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: f657f35a-187c-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AUNes5knhiUinrJgSmL2Z6XhQ+i2C/e+mt0gphyLoii3wIwIoMAEZrLl8Uxkip2DqXCReb6kNkJ0fE7l78+1Xdm8w4cCVtCIQyMb9NZgjgOks/JEAt8Cxc1Tp0GwlaL58eZPQP6jbzMlmiDB1V+nxbEEBrXatwHLiO8GvU2lmvEzLpRftWKxM2h1pMFQa0LuQuJxNxnCf+3Nr9ZmitKoADoivgz5CTaXPOkxsakjGRAl2RFuMBtcHFrjh7GLiR67q9VaQ/pJJV4VW10a2NBAGSfHLJ5dZz8kvPrDTnXY4K7rc0ztzJh/fLrMm1UDQb9C3XEiqKNkR3Gc1A2AVAtuWg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4RJYvuNY00CmLT6r8wK/D8hHjvTR3SciKVM+OrZZ6UI=;
 b=iWmeUhMCAB2yPyKdE8m4Gr7H0baYycxl1EB7SmmKhDJ9HUVA//ObPVVB9aNrNRj/iSlUs0UNzX34tb5PGBIMUtJ0wPo+xIeb2Mdy4IQtDeuTVarrWuWu5HtgyZ+x9eURBLaP9RyDOjwEw6UaKZIgWLtZz4bPaaKGA54+4/aB2CrMSO2jrh7Xvdg4tBnFR2bd6ltK+WITHSrDcnV7EelPzD7h3oNS9h5DoYSIBOhjzCforxFoF58d8tPRIWGl9EDumWkD6e2h9wVaBfVn/5CgJcXhxLT0Xw7mpvdQsvGMIuixRDShRtYAC7jBDPxBDRIlvksmLEt9cjNPAYvCjAaPhg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4RJYvuNY00CmLT6r8wK/D8hHjvTR3SciKVM+OrZZ6UI=;
 b=boY9qpJ4tNJDdpzEG/Tr2cBrM46UafOw+Ko5TP9nmD9/ZdORPSNmWS8X+5Un4dR3C0AG3ZuO9MBCXkAm6qZionQV9sZbfDe/I47zd6cWennnnlgOvZW4jgQVs5vDxgZLIM9XmMmob5sqSdYZf3FdjjJI4w6x89P8/mmPAdPlaSo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 5 Mar 2026 11:20:34 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v5 5/5] vPCI: re-init extended-capabilities when MMCFG
 availability changed
Message-ID: <aalY8t_2F0Pt5i3j@macbook.local>
References: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@suse.com>
 <9f1fcbfc-e7b6-4ef3-8f58-c88f9667d606@suse.com>
 <aahKkV2csf28Y0YC@macbook.local>
 <2c3fdfb6-5788-4177-a264-56719e1ae804@suse.com>
 <aalLc4tN5ywM3c_W@macbook.local>
 <bb06fac8-43e7-4d9b-81b6-970066b8bb73@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <bb06fac8-43e7-4d9b-81b6-970066b8bb73@suse.com>
X-ClientProxiedBy: MR1P264CA0004.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2e::9) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BN8PR03MB4979:EE_
X-MS-Office365-Filtering-Correlation-Id: 6196aa5e-6b2e-423a-e6c0-08de7aa0d8b3
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:
	QmTejN0EZvpzt4x/LFFrQaahJV5D/ntGN8l7OuJP9ImNhoJRWgnbVGcEOK3Laj0RT5RCLEEIPw+u80vRFlndTESTE48OrSE8bVoUhDLjIZYZQrCeUPBddsf1n/p5qqNuOVPzMuxgzWi6r3n59nYgttasGk1Fm3wv5cv7qBW//h4YyT7h6DwCCsIXzr+YjIX+kQkW4TeS86ZwuZzNkViHLGeCmjhXKL41I9vbD+7SFlIJ9MvuCUQsXWpB2BowNxcqqOGN13gJPaSzy2gvbyC6p2uGo6E5D850r7kqVZfi/4LCtSGKUPARZ+6M4CVzV53Nvj78tL0zFsqzJbYJGaHM8aknw0hkRphxFOy8Iw9NwHvkZFtnv1mt5kM5YCt3gNZNq0Pk5ax1KbxUq1xZIhw7ZisibulPNBD6m9jqVGkvrpctOsdGS3KX5JRZs/oM1ZGZHFtHhJDxM1jV1XaJkeaTOEvC8wPhamN0RPtNy0cWg9hVK1SPwuxn8acRrZOB2cYtqFgbl0TtmCCq6+8iLz5B+JRqoyxx3XQzwItGB9GJa1kKxiNXzLWK3CX6j/N20j0g3ownH3juZIfG0XgEJJZN6ni5SesiJYkNa+zNbcI8eeEWI3mNVC2JxeMp55/eL9JCrnRld0Mw2anomKbJCxN8NjtHfnOyHwCF2E4FJtYQnBwb2Y6eK4PixiDxalvq00tgpR8or+2m9zdPxxrcuJXpJAhRBEz+lEjQXp8Ei7RJtZA=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?czVUaHRxaGpPVkZRNzA2QVgwcmNVODFBWkRDK21vYzZHdUlKbG12dTNkYTlR?=
 =?utf-8?B?eVhzVEtZbFFEeDVJK3lkZUZqT05XbmpKSGh3ckx3Tkkzd2N0ak9CRkFsTFdm?=
 =?utf-8?B?RWpkeU1YUnN0TlB3TDhFaHZCbkY5MWx2OEpQNmpxMDZQWEY2RncvdmpUZVor?=
 =?utf-8?B?Y3FhdjlZUmI3Z0VnNk1HN3pPQkY3YjJnSDlEYUhJME1lNFR3SHp1ZmRyRFNq?=
 =?utf-8?B?THVGOFIrM2Q0MjQrR3F4elZkVkYzM2ZKZCtYZVJJQnFURjZFUGlrTFNDTU9m?=
 =?utf-8?B?eDhydElXQXFwYk9wRkdZWE9PY0VLK2UwZ05CVG81VTZncEM5L2NNWTFabWlH?=
 =?utf-8?B?Uk11bkRvTWI1aUxya2VGb3NMeVRzTTRZTDc2aURnNkRiYTZUa0ozSW5XMVh5?=
 =?utf-8?B?YWppV296WEJzaU00Yko3TXFwcTZMSXlIcEZuWUxkSEhqbnYwUncwdlQ4VkRY?=
 =?utf-8?B?a3FzRm5URjNoRisxUHJHWEVPbGNzems1YW8yZUFHSWNweFQ1UHJiT2w0ZS9W?=
 =?utf-8?B?dDlRNWFuZUFHbEpOeVZBRy9UYzVnY2dNNDF5WGN4VmxNMi85Z2laa1l2cE5Q?=
 =?utf-8?B?ZnhyRk5wNlFTTHNVbkkwcCtoL0pLN1AyRTJHR0g5SFJPME53M21lYnFHZzBh?=
 =?utf-8?B?ZmpoMTVLand3NExVTWZqK1ZpZFI0Yk9SdFM3amZrVGpxWndmMTYzQWxJRDQw?=
 =?utf-8?B?clBJTjBzM1dDTXZaMjh2Wk9ScEM3WnQxL2N2MTFxSWhFdnVNd1NuZ0huMXN3?=
 =?utf-8?B?eitQYmYvVVovT3RlT1BETVpCZ3Jud0ZyTkNrNlBXNWJNTC8xdEFqenEyazMy?=
 =?utf-8?B?cEdVRWRtTG56VXdQa29QejZVb0RRRUNRWlZnRUdnTllIc2Y0eGhFQjNVeTVU?=
 =?utf-8?B?Q29YMzB5YWdnTGFoR3k2K0YwTjFKOWVLRlY2eHJlZjVyODd6dDJNUnA4YVI4?=
 =?utf-8?B?RVFnclNrT245VVpCYWR1eHJaVFBqZjdnL3lSQmYzNEgrMUtFUVhRTHM4NThN?=
 =?utf-8?B?NXJBcmFBOEUwQ0dIc0JQZzhUbWpXcWRFMFAyQXdFWm5sSm9UNmd5VGE3SWFJ?=
 =?utf-8?B?S0w0bzdnbmNscmJpSVpiRlFBb1hLTm5ISW1ibkRSSXRMQlNFcWpJclo2K0R5?=
 =?utf-8?B?Y0VlZytBV2UycGRaNFA1R3VqeXNVMFhKRS9UdTZKY3FPMi9XMVd6dXBOdTZL?=
 =?utf-8?B?Q1JlNkxqUzNCcE9xL3pIbTVyRFpzcEFCcEFaZG5LcmNjVEdWUnAxak9ES0pk?=
 =?utf-8?B?Mk5aMGc4MzdqM3Qwb2M4NTlicWhManpRbXlQQ3lXQVlaT0FRWTdSVzNSZFoz?=
 =?utf-8?B?blg4dUNPQ1hCckdRSmRScUM4UDhCTzRiRytMeFVXNmg2ZWkrYlZXbGdIbzk0?=
 =?utf-8?B?MElRRk9iTC85ekNzUld2NXR5MmxramcwcWNpV053QVhnY3JaRU9ITFZiTzVJ?=
 =?utf-8?B?bWI3Z0JIenZjc1dZSk1WQkIwRTc5ay93RFM2S0pybDJXMmhJc2RkSU0wbXBC?=
 =?utf-8?B?cXpEeWNnelhtanJzUlRjME1ZbDFsODhqSktrSWRzSFg3NnpKU2xGN2lIME9M?=
 =?utf-8?B?Q05uSllsdU1BMk9mSEMrR09ndTNsZndCUy81UUc0Z0FtdmZxYm5ZOUtWZjYy?=
 =?utf-8?B?QnF6U2w2UFltSEdoNTZUeXhUWXp2U1g3S3hkMnp0Zy8xRENiMWVmanRzVThn?=
 =?utf-8?B?cW8zL0VIMFYxbDltUngyQVhSNFhiYXI5ZGhIQ2lGOURJWlVZTVpVejFTQ1Q5?=
 =?utf-8?B?NmQ2RHU4Y1FRL1VFRmVUTW90dmcvdnh0YkZGalNUdlBDZlVqa2o5MUN6NlRZ?=
 =?utf-8?B?SFNmR2ZNb0c2bEZZalVaZnNKMFVzUTd2alJZZEVxV0ZvVHBrNHZXMmFBRk1x?=
 =?utf-8?B?cU5hMjI2TXROZlk5eE82c0doeVFVdkx6MG5QeTcrUnFlbU9DYmJFZ1g1ejM3?=
 =?utf-8?B?VDdlSk9kQTR4TU8rYkN4eXdvOUdTREZZM0Z4ZXpWWk91K0hKYTBtVGlwUTFt?=
 =?utf-8?B?Mm5CZDJyTzE2N0pvOUFDUUJSbHIzclliYXBGNG9FN3N0TW4xOVRVSHVuSDFD?=
 =?utf-8?B?RDJVN0NhUWlESUFvYnVWK3QreVFZSDc4bWdHL3RLMnAxRy9iWDZrK1BOM2R4?=
 =?utf-8?B?bXVOYis5RlNubkZnL255TFRwZUV1YktSTzF0ZnlyeHBrOWI5R3d2V1huNlN2?=
 =?utf-8?B?b3NBZmYyWnQ1YlkrWDhxb21yQy9STlk2UEJOaEVnMlJ0N0FEaEVEK3QxeDRE?=
 =?utf-8?B?TDU1YURLMDYzaFhHRHVqT3h6NkVZaVZYanlRTVppZFR4RnZMVUFmQXN6MEc1?=
 =?utf-8?B?MUFKWTMzaFg2WWZZYjdPTXJ6dlo5dUFpa0ZDYnFLOTk2MXlBNy9Tdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6196aa5e-6b2e-423a-e6c0-08de7aa0d8b3
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Mar 2026 10:20:38.4398
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: YFIwK7bSSCIAO2HjS/M4kzbhyDBzay9cnz+qyLz8CS6YlF/y4BmGojPJW5BGzuJtG4GpLFwDsm6IXYHrlky1fA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR03MB4979

On Thu, Mar 05, 2026 at 10:45:29AM +0100, Jan Beulich wrote:
> On 05.03.2026 10:22, Roger Pau Monné wrote:
> > On Thu, Mar 05, 2026 at 10:00:13AM +0100, Jan Beulich wrote:
> >> On 04.03.2026 16:06, Roger Pau Monné wrote:
> >>> On Wed, Feb 25, 2026 at 12:44:44PM +0100, Jan Beulich wrote:
> >>>> When Dom0 informs us about MMCFG usability, this may change whether
> >>>> extended capabilities are available (accessible) for devices. Zap what
> >>>> might be on record, and re-initialize things.
> >>>>
> >>>> No synchronization is added for the case where devices may already be in
> >>>> use. That'll need sorting when (a) DomU support was added and (b) DomU-s
> >>>> may run already while Dom0 / hwdom still boots (dom0less, Hyperlaunch).
> >>>>
> >>>> vpci_cleanup_capabilities() also shouldn't have used
> >>>> pci_find_ext_capability(), as already when the function was introduced
> >>>> extended config space may not have been (properly) accessible anymore,
> >>>> no matter whether it was during init. Extended capability cleanup hooks
> >>>> need to cope with being called when the respective capability doesn't
> >>>> exist (and hence the corresponding ->init() hook was never called).
> >>>>
> >>>> Fixes: 70e6dace747e ("vpci: Use cleanup to free capability resource during deassign")
> >>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >>>> ---
> >>>> vpci_reinit_ext_capabilities()'es return value is checked only to log an
> >>>> error; it doesn't feel quite right to fail the hypercall because of this.
> >>>> Roger brought up the idea of de-assigning the device in such a case, but
> >>>> if a driver doesn't use extended capabilities the device would likely
> >>>> continue to work fine, for Dom0 this probably wouldn't be quite right
> >>>> anyway, and it's also unclear whether calling deassign_device() could be
> >>>> done from this context. Something like what pci_check_disable_device()
> >>>> does may be an option, if we really think we need to "break" the device.
> >>>
> >>> We may want to add a note there, stating that we have considered all
> >>> possible options, and hiding the capability and hoping the owner
> >>> domain would continue to work as expected seems the less bad of all of
> >>> them?
> >>
> >> While adding that note it occurred to me that in order to keep the device
> >> as functioning as possible, in the re-init case vpci_init_capabilities()
> >> might better not bail upon encountering a failure, but accumulate the
> >> error while continuing its loop in a best-effort manner. Thoughts? (One
> >> of the two return-s is already guarded by !is_hardware_domain(), so that
> >> could be left alone for the immediate purpose.)
> > 
> > Right, yes, that would be preferable.  We already print a message for
> > the failed to init capabilities, so there's no need to print another
> > one in the caller.
> 
> Hmm, that's another aspect I didn't consider. Yes, the log message in the
> caller is redundant with the present code structure. If we expect that to
> remain like that, I can drop logging anything from
> physdev_check_pci_extcfg(). Which then re-raises the question whether
> vpci_reinit_ext_capabilities() might better return void. At which point
> the comment I put in physdev_check_pci_extcfg() (upon your request) would
> want to move there.
> 
> But my earlier question went in a different direction, and you didn't
> comment on that at all.

Yes, I think we should accumulate errors.  One device failing doesn't
mean the rest will also fail.  We should continue the loop.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 10:53:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 10:53:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246438.1545613 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy6Km-00053p-Rz; Thu, 05 Mar 2026 10:53:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246438.1545613; Thu, 05 Mar 2026 10:53:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy6Km-00053i-Om; Thu, 05 Mar 2026 10:53:36 +0000
Received: by outflank-mailman (input) for mailman id 1246438;
 Thu, 05 Mar 2026 10:53: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=00Q8=BF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vy6Kl-00053c-Im
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 10:53:35 +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 8e0e3322-1881-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 11:53:34 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4836f4cbe0bso66974715e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 02:53:34 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439abded86esm39427342f8f.6.2026.03.05.02.53.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Mar 2026 02:53: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: 8e0e3322-1881-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772708013; x=1773312813; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+/0CQKkeqc2XR5r4TdFszbCjUpD29tLEnzlXyjTUqUo=;
        b=EXCcvy52QPb0Cm3nfQMZBq3WMLy+R0w1E7/8cB/wPpfo1VWKojGewieKIkpxnYjW2p
         UuTAFZeWhS2k1ju79lERzISjjsay9kR6OxOUFdd74WW2D3g/dzhh5KnQwM4vPGzTR6CC
         39n0dDFWTXtC+kZfnJAAw7GWm0rRfILKZhNye4HMSLrqNsqZ6J6CAiEzActrB7HNkjtw
         PKWc72lwCiFqGBrG//nZY/mEhdq/4dwXpFg/Xa5Wi0xioDo+0Fpu59OdNThZuulpHaD3
         oG76ZVd6zUbwdFpaJ1z4mkPr83R1XpK/NyVFfHGVlqPl2irvc3p3lUzSNPEcTOjR6k3n
         XwwA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772708013; x=1773312813;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+/0CQKkeqc2XR5r4TdFszbCjUpD29tLEnzlXyjTUqUo=;
        b=DprOFZ5XnYh5NOI0wexFDvYWLw3Uq76zF1ZrroSthzN0TwpP9Yw+kDSm2IVTtWfgy6
         cw9zYU37cGK0ZbVH7VtoCpBZZdOvkKnzuTG9HWL9W9G371eZhkWe3xaKMUIYTGtPSvF4
         vLMlr1ilnLFuA7lhSCunqhcutdWuAtgAyWnxXKd5FpYMI+64/ndRwbvAknMc7yyUuLWI
         MNRH42aLaKn8VL8bvroSa9NHCfvkMIOf7a1WPf/cp0w2gvKRIqAxuy3lNpjj7eJIQI0X
         U256QYCVFoNBM+t/ob44lLfIHcSMFenMRPqnD9Hgd2Eq4h3CS1MlD6YomGXfpWvf3mPP
         vMpg==
X-Forwarded-Encrypted: i=1; AJvYcCUrjVGFwfkV/14C9b/daDLgMG2VQDUIu22J5cUfeLV0K1IL4fpYtATGlaVy68z97wI8r3/MbgEbnBc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YweWEeRsFYulLNqw+vTPGnZIttAaFXiYjQ9qHUE0TL1WgFYrnj6
	Z9Y6iGARHD8MWqVf7FoIm+MlBGl7y+J+iZYa1MO+SMTTc63iXPuM0vVX4FvfkA5bOQ==
X-Gm-Gg: ATEYQzxYvUtW9X29rAUthP8KIZRQdwdcbsu1S/qYfCy7rgeLI2hf5MWlqmF2rNWKhWt
	Qjel9YxtIlpS1oB9e23S2gPp2KTVxgAo1vnTR3UGrXvqWL/Q55EpRMFraqJWOICUialfV7UPrvE
	jyn5VeaCmweZSrGMJ2qrN4EKC8Er4AQQnLfTMRRMSBvpVG1BILyIeBL83ImEoK83Djf0t6MmmqB
	2hq+1nBkBMT/5O9EnQ+kLfasuoWzc0iwf/8SX70jCqZMe/RCuba/PxYZ9Jz+o5jBST/LAMfvOV1
	8rjBctuWPbO9uE35y6kgCHTuho/wIRX1wKT72U+enuIGXJ1VFH4PZfkIiolRDDoUfyYpQS9wVIa
	SBeRxmIQn0ZmkwiFa5ulp3D3m4l/5GOss9ornZzfmeC3Lgqo9KDjF4Fz320alIiV4IJ+0GX2AT6
	F0hzcHKcuDHFHxxkFr+xZImI9L/DukSrCxzBAY9peKyzhj1hwUrJPrkUg5Hi6ohiJxgOeQ43OHr
	8soPDuXylmoRrc=
X-Received: by 2002:a05:600c:3e8f:b0:477:73e9:dc17 with SMTP id 5b1f17b1804b1-485198d8b81mr91267535e9.35.1772708013257;
        Thu, 05 Mar 2026 02:53:33 -0800 (PST)
Message-ID: <1497b37d-f47a-41c6-8037-a00a555d13a0@suse.com>
Date: Thu, 5 Mar 2026 11:53:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 03/10] xen/page_alloc: Implement NUMA-node-specific
 claims
To: Bernhard Kaindl <bernhard.kaindl@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Marcus Granado <marcus.granado@citrix.com>, xen-devel@lists.xenproject.org,
 Alejandro Vallejo <Alejandro.GarciaVallejo@amd.com>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
 <6927e45bf7c2ce56b8849c16a2024edb86034358.1772098423.git.bernhard.kaindl@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <6927e45bf7c2ce56b8849c16a2024edb86034358.1772098423.git.bernhard.kaindl@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.02.2026 15:29, Bernhard Kaindl wrote:
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -944,6 +944,7 @@ struct domain *domain_create(domid_t domid,
>      spin_lock_init(&d->node_affinity_lock);
>      d->node_affinity = NODE_MASK_ALL;
>      d->auto_node_affinity = 1;
> +    d->claim_node = NUMA_NO_NODE;

If, as the cover letter says, the new domctl is going to allow claiming from
multiple nodes in one go, why would this new field still be necessary?

> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -488,7 +488,10 @@ static unsigned long *avail[MAX_NUMNODES];
>  /* Global available pages, updated in real-time, protected by heap_lock */
>  static unsigned long total_avail_pages;
>  
> -/* The global heap lock, protecting access to the heap and related structures */
> +/*
> + * The global heap lock, protecting access to the heap and related structures
> + * It protects the heap and claims, d->outstanding_pages and d->claim_node
> + */
>  static DEFINE_SPINLOCK(heap_lock);

Nit: Comment style.

> @@ -510,6 +513,71 @@ static unsigned long node_avail_pages[MAX_NUMNODES];
>  /* total outstanding claims by all domains */
>  static unsigned long outstanding_claims;
>  
> +/*
> + * Per-node accessor for outstanding claims, protected by heap_lock, updated
> + * in lockstep with the global outstanding_claims and d->outstanding_pages
> + * in domain_set_outstanding_pages() and release_outstanding_claims().
> + *
> + * node_outstanding_claims(node) is used to determine the outstanding claims on
> + * a node, which are subtracted from the node's available pages to determine if
> + * a request can be satisfied without violating the node's memory availability.
> + */
> +#define node_outstanding_claims(node) (node_outstanding_claims[node])

See the comment on the earlier patch regarding such a wrapper.

> +/* total outstanding claims by all domains on node */
> +static unsigned long node_outstanding_claims[MAX_NUMNODES];

How come this is being added, rather than it replacing outstanding_claims?

> +/* Return available pages after subtracting claimed pages */
> +static inline unsigned long available_after_claims(unsigned long avail_pages,
> +                                                   unsigned long claims)
> +{
> +    BUG_ON(claims > avail_pages);
> +    return avail_pages - claims; /* Due to the BUG_ON, it cannot be negative */
> +}

A helper for a simple subtraction?

> +/* Answer if host-level memory and claims permit this request to proceed */
> +static inline bool host_allocatable_request(const struct domain *d,
> +                                            unsigned int memflags,
> +                                            unsigned long request)
> +{
> +    unsigned long allocatable_pages;
> +
> +    ASSERT(spin_is_locked(&heap_lock));
> +
> +    allocatable_pages = available_after_claims(total_avail_pages,
> +                                               outstanding_claims);
> +    if ( allocatable_pages >= request )
> +        return true; /* The not claimed pages are enough to proceed */
> +
> +    if ( !d || (memflags & MEMF_no_refcount) )
> +        return false; /* Claims are not available for this allocation */
> +
> +    /* The domain's claims are available, return true if sufficient */
> +    return request <= allocatable_pages + d->outstanding_pages;
> +}

This only uses variables which existed before, i.e. there's nothing NUMA-ish
in here. What's the deal?

> +/* Answer if node-level memory and claims permit this request to proceed */
> +static inline bool node_allocatable_request(const struct domain *d,
> +                                            unsigned int memflags,
> +                                            unsigned long request,
> +                                            nodeid_t node)
> +{
> +    unsigned long allocatable_pages;
> +
> +    ASSERT(spin_is_locked(&heap_lock));
> +    ASSERT(node < MAX_NUMNODES);
> +
> +    allocatable_pages = available_after_claims(node_avail_pages(node),
> +                                               node_outstanding_claims(node));
> +    if ( allocatable_pages >= request )
> +        return true; /* The not claimed pages are enough to proceed */
> +
> +    if ( !d || (memflags & MEMF_no_refcount) || (node != d->claim_node) )
> +        return false; /* Claims are not available for this allocation */
> +
> +    /* The domain's claims are available, return true if sufficient */
> +    return request <= allocatable_pages + d->outstanding_pages;
> +}

And this is the NUMA counterpart, almost identical in the basic logic. If
(for whatever reason) both are really needed, I think it should at least be
considered to fold them (with NUMA_NO_NODE indicating the non-NUMA intent).

In fact the node != d->claim_node would probably also apply to the non-NUMA
variant (as d->claim_node != NUMA_NO_NODE).

As to the comments in both functions, personally I think
s/not claimed/unclaimed/ would be slightly more logical to follow.

In any event, the first of these function looks like it could be split out
in a separate, earlier patch. Then (as per above) ideally here that function
would simply be extended to become NUMA-capable.

> @@ -539,14 +607,23 @@ unsigned long domain_adjust_tot_pages(struct domain *d, long pages)
>      return d->tot_pages;
>  }
>  
> -/* Release outstanding claims on the domain, host and later also node */
> +/* Release outstanding claims on the domain, host and node */
>  static inline
>  void release_outstanding_claims(struct domain *d, unsigned long release)
>  {
>      ASSERT(spin_is_locked(&heap_lock));
>      BUG_ON(outstanding_claims < release);
>      outstanding_claims -= release;
> +
> +    if ( d->claim_node != NUMA_NO_NODE )
> +    {
> +        BUG_ON(node_outstanding_claims(d->claim_node) < release);
> +        node_outstanding_claims(d->claim_node) -= release;
> +    }
>      d->outstanding_pages -= release;
> +
> +    if ( d->outstanding_pages == 0 )
> +        d->claim_node = NUMA_NO_NODE; /* Clear if no outstanding pages left */

I fear I don't understand this. If the domain has claims on other nodes,
why would would it be switched back to non-NUMA claims?

> @@ -564,14 +642,41 @@ void consume_outstanding_claims(struct domain *d, unsigned long allocation)
>  
>      /* Of course, the domain can only release up its outstanding claims */
>      allocation = min(allocation, d->outstanding_pages + 0UL);
> +
> +    if ( d->claim_node != NUMA_NO_NODE && d->claim_node != alloc_node )
> +    {
> +        /*
> +         * The domain has a claim on a node, but the alloc is on a different
> +         * node. If it would exceed the domain's max_pages, reduce the claim
> +         * up to the excess over max_pages so we don't reduce the claim more
> +         * than we have to to honor the max_pages limit.
> +         */
> +        unsigned long booked_pages = domain_tot_pages(d) + allocation +
> +                                     d->outstanding_pages;
> +        if ( booked_pages <= d->max_pages )
> +            return; /* booked is within max_pages, no excess, keep the claim */
> +
> +        /* Excess detected, release the exceeding pages from the claimed node */
> +        allocation = min(allocation, booked_pages - d->max_pages);
> +    }
>      release_outstanding_claims(d, allocation);

Please can there be another blank line above this one?

Why is the adjustment made excluded for the NUMA_NO_NODE case? That's odd in
itself, but particularly with release_outstanding_claims() possibly switching a
domain to NUMA_NO_NODE. Plus the caller looks to be passing in the actual node
memory was taken from, not what the original request said (which is specifically
relevant when the request named no particular node).

>  }
>  
> -int domain_set_outstanding_pages(struct domain *d, unsigned long pages)
> +/*
> + * Update outstanding claims for the domain. Note: The node is passed as an
> + * unsigned int to allow checking for overflow above the uint8_t nodeid_t limit.
> + */
> +int domain_set_outstanding_pages(struct domain *d, unsigned long pages,
> +                                 unsigned int node)
>  {
>      int ret = -ENOMEM;
>      unsigned long claim, avail_pages;
>  
> +    /* When releasing a claim, the node must be NUMA_NO_NODE (it is not used) */

Why would this be?

> +    if ( pages == 0 && node != NUMA_NO_NODE )
> +        return -EINVAL;
> +    if ( node != NUMA_NO_NODE && (node >= MAX_NUMNODES || !node_online(node)) )
> +        return -ENOENT;
>      /*

Again, can there please be a blank line after each of the if()s?

> @@ -982,6 +1102,8 @@ static struct page_info *get_free_buddy(unsigned int zone_lo,
>              }
>          } while ( zone-- > zone_lo ); /* careful: unsigned zone may wrap */
>  
> + try_next_node:
> +        /* If MEMF_exact_node was passed, we may not skip to a different node */
>          if ( (memflags & MEMF_exact_node) && req_node != NUMA_NO_NODE )
>              return NULL;

As per this, ...

> @@ -1042,13 +1164,8 @@ static struct page_info *alloc_heap_pages(
>  
>      spin_lock(&heap_lock);
>  
> -    /*
> -     * Claimed memory is considered unavailable unless the request
> -     * is made by a domain with sufficient unclaimed pages.
> -     */
> -    if ( (outstanding_claims + request > total_avail_pages) &&
> -          ((memflags & MEMF_no_refcount) ||
> -           !d || d->outstanding_pages < request) )
> +    /* Proceed if host-level memory and claims permit this request to proceed */
> +    if ( !host_allocatable_request(d, memflags, request) )

... in the MEMF_exact_node case I see little reason to check the global value
here.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 11:31:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 11:31:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246468.1545636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy6v5-0001qK-Pn; Thu, 05 Mar 2026 11:31:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246468.1545636; Thu, 05 Mar 2026 11:31: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 1vy6v5-0001qD-Li; Thu, 05 Mar 2026 11:31:07 +0000
Received: by outflank-mailman (input) for mailman id 1246468;
 Thu, 05 Mar 2026 11:31: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=00Q8=BF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vy6v4-0001q7-BP
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 11:31:06 +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 cba7f88b-1886-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 12:31:04 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-439afc58ac7so4942997f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 03:31: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-439b4e771basm36774706f8f.0.2026.03.05.03.31.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Mar 2026 03:31: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: cba7f88b-1886-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772710264; x=1773315064; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TZ+NLsEYwzCJxX04okPUm0W0QsmwdELejdWtO4TODvY=;
        b=XHhNBf+iqR+dSl/FCv0TmJUCHGH9ikPxaUYanU8lWDlxR0Bn67rGtwRefdOTihw+sc
         FjmTWfDR2HAreGfSn/D+Wh/tbEvABrbNS4iqmffRiq3uXdnHzO/dOolDC5yGuz701UKh
         ZLIqodgzUaHi3wbGdpcu/4fp5bfV+tgEkk1Jf85IXtXeI/PXR7G0N2LLwXZznZyzJZDH
         1fyRIWHHWo5/nIRgxxLOJbYO1qzvKJeFFfd6XkgM9plpk6pzPH+yJ7HFhqEZzduynOUV
         JAaNHr1n0CIZfdMrovnFUtuwnEmeUwvfIK6IxkCLV8XVqP1W1tdS9ik9ARHRDGkqrBc8
         j97g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772710264; x=1773315064;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TZ+NLsEYwzCJxX04okPUm0W0QsmwdELejdWtO4TODvY=;
        b=gXPUu0vZTDcUUhm0vLFRmHuIi3AHSWkwZwSAPlS/hmHtrXY4HktR3QXSQni9yuTHPl
         apPTfe9SDzHY+b+OdLfCcTThQwUv83MP7jcGxNBd2oTh4YHJZRk3lR2L6kleou1wRhIt
         yrStrfskKFWO6IT6rQ997P4LL5Sv5w4Hv6Im6+ERTK6lHO0nkSkExX2E7GetzCfjPB1W
         3sTaWVEcVSA6aWyCPUy7bNLLhWp9/LCVCzOw3OC6TEstxWsec+1b2zeCK6xavKTC6k1E
         zJngk6pTaIpUYaYy1PDAwdXKWcMrQ7Q5B3ug6TNcMvlStZtmviMKkIhqNf7h/KIA6VyH
         /RpQ==
X-Forwarded-Encrypted: i=1; AJvYcCUJhh/5AcJwedbibVVaYoAmVD3Eff/drxsTtxzyY0BDa6dxrI+goaM0bHXjYwEsa3TFenqr/FFZBOU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyc0n+2sX3WYgqsGay23ktw8faF9o7qEjVHV9gbaRWBtjnqCVn1
	wSk7jw4aja46Nacu2uyRt628j5DmeqMxE58407jybbfg58aOZUcevQB9N2X0IKO+4w==
X-Gm-Gg: ATEYQzy/FlcVpiDuBmYB86AyNzoCFY91oD60wtJrfEcmo2WiiazQlVX2rRvYKg1Dbc9
	qFDcdNCQYvTiFQl8GFgj7WZ4q/0MIBOEPPDH8wi6hZqgd3h7gLss8g4MUvYgE3o2O8eYi4noNGi
	AoGkTYSJL2SoC99zUXSAE5K+5CL1rUPM2/ypBH79XxbJkxAKZ9N8EiFsn/tmcfDjzKhLwn9IqLO
	GjX9bGHXxCpfXScVkRYvx9F6cRcbwRWrxWyiXxxMhgH2VADSzqLydfDadlSzo2p29Qmxa74ewL+
	LLfEhaTpPFFDJmh7a9Og5cIQz+eENZcr3Wz81VhAnL0myjGiCTH+KQKb4HRu9iYHprLtS2umMuP
	1l3KxBiJ4VLfWqscjfHCA8mj7xr0RPSIvBaTJMruMTtnqWzpDFyO6Isc9uD5i/HjVxRUeWzJ75f
	uKJ8R5zW82ovS/WR+glURPOa5HYgn3hhXTzn+Nqq9ZsPli0y9fRJVScoHfzqUuPK54DJeWDD5IR
	Xxj13j7b/PFttZkjPnCRn87fg==
X-Received: by 2002:a05:6000:26c1:b0:439:b7c9:2ef1 with SMTP id ffacd0b85a97d-439c7fafb66mr9551409f8f.20.1772710263950;
        Thu, 05 Mar 2026 03:31:03 -0800 (PST)
Message-ID: <7d439bb1-7381-4fa4-af79-423e8c7fafb1@suse.com>
Date: Thu, 5 Mar 2026 12:31:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 05/10] xen/domain: Add DOMCTL handler for claiming
 memory with NUMA awareness
To: Bernhard Kaindl <bernhard.kaindl@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
 <b2c94f0c3b41976b2691ce15b9f9a2589370e65a.1772098423.git.bernhard.kaindl@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <b2c94f0c3b41976b2691ce15b9f9a2589370e65a.1772098423.git.bernhard.kaindl@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.02.2026 15:29, Bernhard Kaindl wrote:
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -268,6 +268,35 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>      return rc;
>  }
>  
> +/* Claim memory for a domain or reset the claim */
> +int claim_memory(struct domain *d, const struct xen_domctl_claim_memory *uinfo)

static in domctl.c? Otherwise with Penny's work to make domctl optional this
would be unreachable code.

> +{
> +    memory_claim_t claim;
> +
> +    /* alloc_color_heap_page() does not handle claims, so reject LLC coloring */
> +    if ( llc_coloring_enabled )
> +        return -EOPNOTSUPP;
> +    /*
> +     * We only support single claims at the moment, and if the domain is
> +     * dying (d->is_dying is set), its claims have already been released
> +     */
> +    if ( uinfo->pad || uinfo->nr_claims != 1 || d->is_dying )
> +        return -EINVAL;

As already alluded to in reply to patch 03, I can't help the impression that
usage of this sub-op with multiple entries would we quite different (i.e. it
would be not only the implementation in Xen that changes). I'm therefore
pretty uncertain whether taking it with this restriction is going to make
much sense.

> +    if ( copy_from_guest(&claim, uinfo->claims, 1) )
> +        return -EFAULT;
> +
> +    if ( claim.pad )
> +        return -EINVAL;
> +
> +    /* Convert the API tag for a host-wide claim to the NUMA_NO_NODE constant */
> +    if ( claim.node == XEN_DOMCTL_CLAIM_MEMORY_NO_NODE )
> +        claim.node = NUMA_NO_NODE;

What about the incoming claim.node being NUMA_NO_NODE? Imo the range checking
the previous patch adds to domain_set_outstanding_pages() wants to move here,
at which point the function's new parameter could be properly nodeid_t.

> +    /* NB. domain_set_outstanding_pages() has the checks to validate its args */
> +    return domain_set_outstanding_pages(d, claim.pages, claim.node);
> +}

There's no copying back of the result. When this is extended to allow more
than one entry, what's the plan towards dealing with partial success? Needing
to roll back may be unwieldy.

> --- a/xen/include/public/domctl.h
> +++ b/xen/include/public/domctl.h
> @@ -1276,6 +1276,42 @@ struct xen_domctl_get_domain_state {
>      uint64_t unique_id;      /* Unique domain identifier. */
>  };
>  
> +/*
> + * XEN_DOMCTL_claim_memory
> + *
> + * Claim memory for a guest domain. The claimed memory is converted into actual
> + * memory pages by allocating it. Except for the option to pass claims for
> + * multiple NUMA nodes, the semantics are based on host-wide claims as
> + * provided by XENMEM_claim_pages, and are identical for host-wide claims.
> + *
> + * The initial implementation supports a claim for the host or a NUMA node, but
> + * using an array, the API is designed to be extensible to support more claims.
> + */
> +struct xen_memory_claim {
> +    uint64_aligned_t pages;   /* Amount of pages to be allotted to the domain */
> +    uint32_t node;  /* NUMA node, or XEN_DOMCTL_CLAIM_MEMORY_NO_NODE for host */
> +    uint32_t pad;                 /* padding for alignment, set to 0 on input */

This isn't for alignment; it's there to make the padding explicit.

> +};
> +typedef struct xen_memory_claim memory_claim_t;
> +#define XEN_DOMCTL_CLAIM_MEMORY_NO_NODE    0xFFFFFFFF  /* No node: host claim */

Misra demands a U suffix here.

"host claim" (in the comment) also is ambiguous. Per-node claims also affect
the host. Maybe "host wide" or "global"?

> +/* Use XEN_NODE_CLAIM_INIT to initialize a memory_claim_t structure */
> +#define XEN_NODE_CLAIM_INIT(_pages, _node) { \
> +    .pages = (_pages),                  \
> +    .node = (_node),                    \
> +    .pad = 0                            \
> +}

While only a macro, it's still not C89, and hence may wants offering only as
an extension. Also .pad doesn't need explicitly specifying, does it? If you
provide such a macro, identifiers used also need to strictly conform to the
C spec (IOW leading underscores aren't permitted).

> +DEFINE_XEN_GUEST_HANDLE(memory_claim_t);

This wants to move up next to the typedef.

> +struct xen_domctl_claim_memory {
> +    /* IN: array of struct xen_memory_claim */
> +    XEN_GUEST_HANDLE_64(memory_claim_t) claims;
> +    /* IN: number of claims in the claims array handle. See the claims field. */
> +    uint32_t nr_claims;

Is repeating the word "claim" necessary / useful here?

> +#define XEN_DOMCTL_MAX_CLAIMS UINT8_MAX /* More claims require changes in Xen */
> +    uint32_t pad;                       /* padding for alignment, set it to 0 */

Same comment as on the other pad field.

> @@ -1368,6 +1404,7 @@ struct xen_domctl {
>  #define XEN_DOMCTL_gsi_permission                88
>  #define XEN_DOMCTL_set_llc_colors                89
>  #define XEN_DOMCTL_get_domain_state              90 /* stable interface */
> +#define XEN_DOMCTL_claim_memory                  91

Seeing the adjacent comment, did you consider making this new sub-op a stable one
as well?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 11:38:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 11:38:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246479.1545644 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy724-0002T0-C5; Thu, 05 Mar 2026 11:38:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246479.1545644; Thu, 05 Mar 2026 11: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 1vy724-0002St-9Q; Thu, 05 Mar 2026 11:38:20 +0000
Received: by outflank-mailman (input) for mailman id 1246479;
 Thu, 05 Mar 2026 11:38:19 +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 1vy723-0002Sn-PB
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 11:38:19 +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 1vy723-006XQq-2L
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 11:38:19 +0000
Received: from mail-lj1-f174.google.com ([209.85.208.174])
 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 1vy723-00097C-2A
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 11:38:19 +0000
Received: by mail-lj1-f174.google.com with SMTP id
 38308e7fff4ca-389fa352b0eso127392171fa.1
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 03:38:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=t5++F147kVljeJObCX+Hq7bCYgIw+fILQWtbrnZag0Q=; b=gdBDpOp
	+/HNelwB9DULGKC0VDWHopHTUEqC7xaeGdhtbuwAFUjyEx18lfLYXT2I7Yif+jnXtiiTtAeIGUdVV
	ekrXUR0yeBfpmvdQ237HlyaW0RaIJk9HkW4hTig6ED3CyssyVvTUlhrvkRrp2YlVUqaBctor0mFGn
	IPK0bqLmMA=;
X-Gm-Message-State: AOJu0YxylZTqmGGC/SGURoY008UCeovjmvdrpKVqIuaNoQPtjdgxjexi
	CEnxeNwkRcweeTLDszfXl4O3r9neDZ4TJE6UVq4sl1VHUPVhNn1VP3pzwE/wUbtRpYUgQRvYBFe
	ZAJiNwZgS9nc0AYDPt0ZT1MhHo5egowM=
X-Received: by 2002:a2e:3c04:0:b0:385:f0ce:e222 with SMTP id
 38308e7fff4ca-38a2c7eb260mr23074891fa.41.1772710698530; Thu, 05 Mar 2026
 03:38:18 -0800 (PST)
MIME-Version: 1.0
From: Cody Zuschlag <cody.zuschlag@xenproject.org>
Date: Thu, 5 Mar 2026 12:38:07 +0100
X-Gmail-Original-Message-ID: <CAJbE=Ky4_S4ystqVhDj99=H8hQWn87bZP3nVoFQ3wVUkwFJydg@mail.gmail.com>
X-Gm-Features: AaiRm50KtKPF8U5Z6NytGmpHt15Pvsj5P0bMZnuY4uijKlnaCJq19i5vkW2lcuU
Message-ID: <CAJbE=Ky4_S4ystqVhDj99=H8hQWn87bZP3nVoFQ3wVUkwFJydg@mail.gmail.com>
Subject: [ANNOUNCE] Call for agenda items for March 5 (Today!) Xen Community
 Call @ 16:00 UTC
To: xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="00000000000079bc3b064c455f85"

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

Hi everyone,

My apologies for the late notice this month, the short February month (with
some personal PTO) made this one sneak up on me. Today is March's Xen
Project Community Call (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/R-D-3LsJGJeZY8o2H9qpoFD5/
   - If any action items have been resolved or are no longer relevant, feel
   free to remove them from the doc. I attempted to clean up the doc, so fe=
el
   free to make any adjustments.



*Call Details:*

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


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

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

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

See you today!


Cody Zuschlag
Xen Project - Community Manager

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

<div dir=3D"ltr"><div><div>Hi everyone,<br><br>My apologies for the late no=
tice this=C2=A0month, the short February month (with some personal PTO) mad=
e this one sneak up on me. Today is March&#39;s Xen Project=C2=A0<span clas=
s=3D"gmail-il">Community</span>=C2=A0Call (4 pm UK time).<br><br>We=E2=80=
=99d love for you to join. Feel free to participate or just observe. This c=
all is a great opportunity to see what the=C2=A0<span class=3D"gmail-il">co=
mmunity</span>=C2=A0is working on, align our various efforts, and share upd=
ates. Everyone is welcome!<br><br><b>Preparation:</b><br><ul><li style=3D"m=
argin-left:15px">Add any proposed agenda items or missing action items:=C2=
=A0<a href=3D"https://cryptpad.fr/pad/#/2/pad/edit/R-D-3LsJGJeZY8o2H9qpoFD5=
/" target=3D"_blank">https://cryptpad.fr/pad/#/2/pad/edit/R-D-3LsJGJeZY8o2H=
9qpoFD5/</a></li><li style=3D"margin-left:15px">If any action items have be=
en resolved or are no longer relevant, feel free to remove them from the do=
c. I attempted to clean up the doc, so feel free to make any adjustments.</=
li></ul><br><b>Call Details:<br></b><ul><li style=3D"margin-left:15px">Date=
: Thursday, 5 March 2026</li><li style=3D"margin-left:15px">Time: 16:00 UTC=
 (agenda begins at 16:05 UTC)</li><li style=3D"margin-left:15px"><a href=3D=
"https://www.worldtimebuddy.com/?qm=3D1&amp;lid=3D5368361,2988507,5128581,2=
643743,100,1850147,6&amp;h=3D2988507&amp;date=3D2026-3-5&amp;sln=3D17-18&am=
p;hf=3Dundefined&amp;c=3D1189" target=3D"_blank">Find your local timezone h=
ere</a></li><li style=3D"margin-left:15px">Link to Join the Call:=C2=A0<a h=
ref=3D"https://meet.jit.si/XenProjectCommunityCall" target=3D"_blank">https=
://meet.jit.si/XenProjectCommunityCall</a></li></ul><br></div><div>We plan =
to open the meeting room at 16:00 UTC, but to allow time for switching betw=
een meetings and handling any technical issues, we=E2=80=99ll officially st=
art discussing the agenda at 16:05 UTC.<br><br>Want to be CC=E2=80=99d on f=
uture calls?<br><br>Add or remove yourself from our=C2=A0<a href=3D"https:/=
/cryptpad.fr/pad/#/2/pad/edit/D9vGzihPxxAOe6RFPz0sRCf+/" target=3D"_blank">=
Sign-up Sheet</a>.<br><br>See you today!</div></div><div><br></div><div><di=
v 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/AIo=
rK4x5nkRDCOFJDJAv9aMXdZ0mghItsp3D36JrwBCQtitBSW_0NeDS6mBmJ2F4vZVE2oBOqnY6Ia=
JUrl12"><br><div>Cody Zuschlag</div><div>Xen Project - Community Manager</d=
iv></div></div></div></div>

--00000000000079bc3b064c455f85--


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 11:39:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 11:39:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246490.1545654 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy73d-00033B-Op; Thu, 05 Mar 2026 11:39:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246490.1545654; Thu, 05 Mar 2026 11:39:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy73d-000334-Lk; Thu, 05 Mar 2026 11:39:57 +0000
Received: by outflank-mailman (input) for mailman id 1246490;
 Thu, 05 Mar 2026 11:39: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=00Q8=BF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vy73c-00032w-3L
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 11:39:56 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 074ddb87-1888-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 12:39:54 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-48371119eacso94730885e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 03:39: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-4851fb33815sm70708765e9.12.2026.03.05.03.39.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Mar 2026 03:39: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: 074ddb87-1888-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772710794; x=1773315594; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bUMNP0bb2H2lV5/sen2uEfAJ3WmTTIBJ029R1MIX8T4=;
        b=EH+RyDYAUSow31ERwF+WorG76syF0F0Sq0w2jFPsu9wyoKQVhvsHr9Pead5pMa0dgy
         +1Ts65AYaKC0smvPyEpMYkQbYrQDdvPd8w/FhkbARcG6Tb9l1silrW5ceovBYk87U9uD
         5Yv7udmwRicls+o5LLNm2xONg5ysvtzAATxd2IGUDkMKc8IqHP+64BAA5um3pS4ruYLa
         ACjmo/cjVZqipPq/z8aE8HmB7qeSbAj8U2Mqa5cfhHxSzQwr5XF/wOcEDqakPhKWOTvb
         0Yt5xHQGwixwBLZqAJNWi+S6Mp/5K5Ivqxai8Rp3Z/yZJb11XpFaAIdAW8Wc2iHdk7bB
         xJjg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772710794; x=1773315594;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bUMNP0bb2H2lV5/sen2uEfAJ3WmTTIBJ029R1MIX8T4=;
        b=T7nyd5dtMzgGz1mTGVgiobOoR/7YhAG6VLLGIfIqQajiqp+0uIYrw0H5psuRi8u2jT
         T8DcmFHaDwlRoCciQEpOgQaQTgexDSb8ba5JRTGOh4jrNfT0XPEDjzIBYEC4e72NynxR
         G2JdCzVESao297VfRLpmAlcUnfVIrnHQGcAoHaasxJHQpsHuuqVGVl+TFlTtjKT0I9Qw
         Ws9DBfC2ImmXoFMhD3MPtHC8oODLo8JeAmAe6XThkDYwStEG4fAog6MFg7gVC5XPkp7l
         bL5p1PtbHw79lgQt2Zm0BpTKtp3NV+LM2hUNCF1LObcZTASGhOomjRYFd13g/gobOTL9
         bJmg==
X-Gm-Message-State: AOJu0YxttKZmlFqYgaZOvOrklnutgxqnX78CILAvoyH6M4BhvNW4wFMq
	+lIVvbjgyXZKuPbV0XwhuwouAC68PBcx3KLd1Bq0QAMGVDDzFhBVNPzEwnuKO/UHjw==
X-Gm-Gg: ATEYQzzDPqWfqFCMDntA6/b3xqy3ZuYB2Jg6vir+jfSbP1S/mbg8aYngw0gegfnyDXx
	8QPmZwkeSdw6k0SAE8n5875SjAFDn7WUkAQu8/L5hUJJBRL6vTveQQ1pd1pO9+uNSWBra9jOZye
	w4FbIsR4ewLosoWTdQmE7aoCjdjlg6Zs55+jBrGz7mq3/619fxrUTEEhUA6xJxKfpn8Sjv6ev1j
	e5BVDecEiO57qqxQKrTd47763ERlQya4PV/GzYOHfjFw5tLRbxVkDYLexNfsoXkL8RtfYFi2pD+
	4dpNSpUNHFiooA1zCD2XWpAnM1MHN+RmOrcW1tIa1KqURC579LXjWdVc/63G6VeVM9O9umhXF+c
	yPvFKzk1/ITefqU0GMcGgSGwkUoEiBdt5bEovI+cRUdaDFyOFjGSUFxLvvOTn+P6I1oW/+m9Cb0
	6aQy3PmcUCsXkIq0SLXuBerqwrhaEz2SkCp6h2wuS3I9ll0p4QUrrAEUOE8BT17NtbevB+FE5Nj
	SJDAYZY4bWy+7dT2b0PgP71NA==
X-Received: by 2002:a05:600c:c8a:b0:477:79c7:8994 with SMTP id 5b1f17b1804b1-4851989f6e3mr88198745e9.30.1772710793790;
        Thu, 05 Mar 2026 03:39:53 -0800 (PST)
Message-ID: <cf959649-139b-4e9a-84ef-f7548edd7f42@suse.com>
Date: Thu, 5 Mar 2026 12:39:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/ACPI: _PDC bits vs HWP/CPPC
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>,
 Jason Andryuk <jason.andryuk@amd.com>, Penny Zheng <Penny.Zheng@amd.com>
References: <ca1812c2-dadf-422a-a195-9c285ce08077@suse.com>
 <aahfgDDNVwJPa-jF@macbook.local>
 <3449aaf7-b221-4c45-9d22-54e340167b3f@suse.com>
 <aalD5VRBBuM16pxN@macbook.local>
 <73dd0000-4044-486a-915d-6381d0820cf6@suse.com>
 <aalYScWQQx_vMqII@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aalYScWQQx_vMqII@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.03.2026 11:17, Roger Pau Monné wrote:
> On Thu, Mar 05, 2026 at 10:20:02AM +0100, Jan Beulich wrote:
>> On 05.03.2026 09:50, Roger Pau Monné wrote:
>>> Since we have the parsing of the ACPI related data done from dom0 it's
>>> not only Xen that needs to support the feature, but dom0 also needs to
>>> know how to parse it.  Or we just assume the driver in dom0 must
>>> strictly know how to parse data from the features enabled by Xen.
>>>
>>> Maybe Xen supported bits should be & with the dom0 ones?  So dom0
>>> would set what it can parse, and Xen would AND that with what the
>>> cpufreq drivers support?  However that would be an ABI change.
>>
>> What cpufreq drivers are you talking about here?
> 
> I was talking about the Xen cpufreq driver, sorry the context was
> confusing.
> 
>> When Xen handles P-
>> state transitions, the drivers in Dom0 would preferably not even be
>> loaded. That's what the forward-port did. Upstream they may be loaded,
>> but they then can't actually do anything (and they may exit early).
> 
> Well, yes, on FreeBSD I simply overtake the native ACPI Processor
> driver with a Xen specific one that has higher priority.  So the
> native ACPI Processor driver doesn't even attach.  I think Linux is
> slightly different in that it allows the native driver to do the
> fetching of the information, and then the Xen driver only does the
> uploading.
> 
>> Coordination is necessary only with the ACPI driver(s), and that's what
>> this function is about.
> 
> I think Xen also needs coordination with the driver in dom0 that
> fetches the information from ACPI?

That's what I meant with "ACPI driver(s)".

>  It's not only Xen that needs to
> report what the cpufreq driver support, but also dom0 would need to
> expose what it can correctly parse.

Hmm, yes, strictly speaking we should tie setting of respective bits to
Dom0 having uploaded corresponding data. The order of these operations
may, however, be at best undefined (and possibly be well defined in the
unhelpful - for us - order). I don't think I see anything we can do
about this.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 12:31:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 12:31:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246528.1545665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy7r2-0001yj-Hx; Thu, 05 Mar 2026 12:31:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246528.1545665; Thu, 05 Mar 2026 12:31:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy7r2-0001yc-EE; Thu, 05 Mar 2026 12:31:00 +0000
Received: by outflank-mailman (input) for mailman id 1246528;
 Thu, 05 Mar 2026 12: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=NtvN=BF=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vy7r1-0001yG-06
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 12:30:59 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 28650ce5-188f-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 13:30:57 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH0PR03MB6574.namprd03.prod.outlook.com (2603:10b6:510:b9::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.17; Thu, 5 Mar
 2026 12:30:48 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.016; Thu, 5 Mar 2026
 12:30: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: 28650ce5-188f-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gnPka8K5FSteA72ZHnOsZm+EXKf0l7weB1vSJXD7uKYs5y22j7s9i9luTe/lzGfM+0wVimMu1WjGrZxaBPylgOSwFlkXQk3jz5HVIBOd+xsAVQzEa9Gd/s4i4o1zVxRmjo/+Ul/0Pa+Rswbpkxug0v92gG+flMsFDLNoJsnjkbNtUNfvI5FaEqyU428zhRDhg98PBrpCxvGyZWQROOSfi4pa3Uy6wlm2dgGEs8xB14GjKiUf5wyWx/NQq3NxDHwikVvl6XDDuo/QGs3sQgspeFdQmtv/MXMtL8yyf/yLVFKcTcew5h3KVk7AGWMgqKyySzDnxFQGJlDwyo/gVDyNIg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3ltwjFMFfeRmyH6Gs179sHmeC8jGqbOZYAFzKBCMILY=;
 b=HeEn90tI3L7Uol/r4jPJCytfAfDlfJ0KL1GQAmobf/QxAksuDzqgaA7xiSMxicDwvN8WAYIMzndaDRDxx51lU8MI6AeMkSMHzhEN1yOg14mJRpRAKkr2Yg4RocKuVmn10nP+PCKJParZmHJ3mB5xmDpHZNU/7McM9Bb/f6HDMWprkuBRI9DUfZTlXNUw8s4uwQvHkzcjsZQQFXJMyfPL60jmIZ4FRBCoiXxAphLK9s+qTLajo9QPOoMypk313uMlIHY5YqNXGFDdT7RF3bRP2At9aBKKdX8grbIXYmjLUs0Y07NClh6W2n4PrSrncTjoC0uHWxAX7d8yHR1Cl1TrlA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3ltwjFMFfeRmyH6Gs179sHmeC8jGqbOZYAFzKBCMILY=;
 b=bVtA6fof+xZEj4QKQyj216pzPc66/CRN0UKi4sUKhgA7WWRFDb3Df0mzjWXJvOFftCLibwBmcKRnA9T40gVNwwUEAojkL4+s+ZlmMtZbmhTPt+mSDOeDs39HsSDfEfbjMB5FrLDQ1glbpvgKghGmuLOGpYlT73167XXYofFN/DA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 5 Mar 2026 13:30:45 +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>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Penny Zheng <Penny.Zheng@amd.com>
Subject: Re: [PATCH] x86/ACPI: _PDC bits vs HWP/CPPC
Message-ID: <aal3dVPUyh2_4g4z@macbook.local>
References: <ca1812c2-dadf-422a-a195-9c285ce08077@suse.com>
 <aahfgDDNVwJPa-jF@macbook.local>
 <3449aaf7-b221-4c45-9d22-54e340167b3f@suse.com>
 <aalD5VRBBuM16pxN@macbook.local>
 <73dd0000-4044-486a-915d-6381d0820cf6@suse.com>
 <aalYScWQQx_vMqII@macbook.local>
 <cf959649-139b-4e9a-84ef-f7548edd7f42@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <cf959649-139b-4e9a-84ef-f7548edd7f42@suse.com>
X-ClientProxiedBy: MA4P292CA0004.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2d::10) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|PH0PR03MB6574:EE_
X-MS-Office365-Filtering-Correlation-Id: ea84c95d-8a93-4776-3b9b-08de7ab30800
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:
	tVc0M3iSaqBNgX8iJyqMrOJWWI8xIWv9+IhUuiNNDibv+oAw6HoemaZDuGimtPpC26cNCYvf7yLrStzeNpn+Q8IZ8A4SHmqejYiLHoFVVdcQ8RNO3QGdoyqRKx+UMNswstrzuAIPG0Yon8o79dXJFG/xgg07OiDYl90wlh0XD/va7ouf3VnahJolyEEHRqF7aXmmutCOg2ILVbzrnjVrLLXabD9h5eM2+qFLfsN5t6q8WCEbtiZ16FlAWmjbo7rbrH+sVaE8GwMNA305K2YfnnWgR9lt8RB6CaP7gla5o+Na9Dlqg2aNWvCdoH1BPom84SXIHgqV++Sk9RpGBe0B8ycq29yILrSTY1d/+ykomA58NcW3QrPa9S7uW23xnBNI6ZeMzDF8ZkNOavfNvky/dSwLHc0UMLNh7LgBVhtTYyofHTRGQOobd468PrDMxvK3iE3j33ZgqDf2MSsfEWKuToxWddGyv/E7thmaDkt12X2D8egSGfhyrZpusAQ0k6n6pE8GNRo9eKChP0bdTSX6p0tmGdc0A1GwgBYM9U2K5kHtqYNSt1FrMuBTPp9Xxa+lnfBDm2rNVYNSpX7LZ9JYKsmgwNWAWfxrcwp2cabrSeNRdkHXXzx1k4I5N4U5tuIOrjGeZGbpbuSlVHBdzFhQb+5TFupd2Oz3k9zD0u8ey880QJU5I6c0JApoK8TBfHSwrw3az+hpQyHQKWqgt38Oxv0uOjKXVMtnuaNlBWAWCsM=
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?QWgyUFJKUDRIZGdoaFJPQnVmZ2kwZFFWVkliZ1FFMHRoZG56VkRDUVFhUEVI?=
 =?utf-8?B?OUxTZFFGWEUrczZtaFRHKy83c2RRamhoeFRWZGY2eTB3M24zS2NoZXlML1pH?=
 =?utf-8?B?UzJjQzFla1Fxb0RTcVZZK3dlRjh6NmRRWjlad05hc092dEI5NGpoYkVWTFBu?=
 =?utf-8?B?cUhocmtsZHBUVHVrcllDR2RVbE40czM3OTRSMy9sMndzcUgzR0YrMUQ0aDNI?=
 =?utf-8?B?eXM0MkFEcVRuQ0R3VVBaS1hLb25pT09aQklTRk0vOU9SVzFZbjMxbFVmODVP?=
 =?utf-8?B?d0Frd0NjQUMvVW43M2JrSk96ZGZiUmE3ZDNCTFZzZlJ6blN6OExUVGNZOEhn?=
 =?utf-8?B?NHhDVVo5Z2hJblZTbDlITjJxMEZzbk1MRm8vUWFpRnQ1QzFJSzNtUjlxYnBL?=
 =?utf-8?B?U3UrY1FtV2E4RDkxeU1aTDJXdTYyZHFvN3I0MWdrVTRheUtHVE1aOUFkN2Vk?=
 =?utf-8?B?NTVWSWVnYzFGa2pwQ3g1NGdZZ2M0VmhWdGRjeTRYOWJtQ2tPQnZPL0xDMmsv?=
 =?utf-8?B?cjVvU0dGU3N4NEtHUDVvQmlIVWt3aEJKRmNFWmZrNlZYdkRZM3p6TG5IeTd4?=
 =?utf-8?B?M3liUDlkblI4cHdZMjkyTnc0VERWYjQxcXhNMm9DNTdScmVFUjJML3hhdldV?=
 =?utf-8?B?eDYvaC9GZ1V3SmxiYkExNVAvRUM1MzM3Z0h2Uk5VaWF0Y0NxdGRtc1ZkYndP?=
 =?utf-8?B?d2ZmcnUxMEtJaDJKU0tpZ3UxMVFWZjNhM1MyeFdqTzJpbzVYM0Jaak1USm5p?=
 =?utf-8?B?dGRRMXp1VVh1R1g5c05qM1VxVEVINEdJZHNxaUV4QXNNd1kzWVMwSG1qdXMv?=
 =?utf-8?B?a0xxcnlCT1Njc1BWNC85a1F4UDBZZmdSQkc3d1pxK25JTjhIL0xGeWtkK0ls?=
 =?utf-8?B?bkJhcFN3WUM4QTN2ODhkdnpmYjQ3eDZJbDlhWEZQQVRxandPQ0JkRHVWTnAx?=
 =?utf-8?B?Y1lXdGlzVkhWSll3OHNyWHF2eUZjTVJidlVWdEV3MTZYcWN4UzJVSGlwNnp1?=
 =?utf-8?B?djdFOEtaYzdhNWlReEVpUnlQbmFFR1VoWjljRTFYQjNYYVdQbEZJM3RoUDlG?=
 =?utf-8?B?Tyt4WGpwS0RuRUdTWEJNM0lpN3QwNTdRdUhMMjhIWFhNd2dXN0hoZDV2UDlt?=
 =?utf-8?B?QVVHMThZTUFUQzFqRGlUZzRKRU5CMG1rSElCNXhUcGJyT1FKRC9DSm1URklR?=
 =?utf-8?B?NEVyQnNXVlB5MG5xUkc5eGhKeGZ0aXhPa1pWQkdBMFNMVTRBUVk4alFpUFlR?=
 =?utf-8?B?ZjVVNC8rbjNGTCtSVUwyZ2EyYk53U0lUZUpiNjdWTThLR0hVV3J5SXN5endU?=
 =?utf-8?B?K2dOMkNpK0pLdkhKVGxtYXdraURWcm1VM252UGZSMEhRVUFPS1ZFZXY1K0pF?=
 =?utf-8?B?ajUxOTV4T1BjbnVkejZVbythTzdWMFhydUdYdUtoQm0ybUtnRGhwbUpmNStI?=
 =?utf-8?B?OE1hV21LNTcxYzhJRUhnOE1Rb2RUaFpuRVFNZEtZbVVXeFovczdvbm52Tnp3?=
 =?utf-8?B?MUFZMnp4R1FScjliSWRsRVY5SDBMQmpqQVNDL3lEMVFTNzVMa3VBRFFBUlA4?=
 =?utf-8?B?cS9FQ3RiTzMwZmY4RloyWUtFOEVNUjRNaVo1NWVOY3kxbzFibXZwT2xiaTU1?=
 =?utf-8?B?bGdSTTBJM1hzYVBWNmNkV0tMTXhtMi92L0hSZVRNcjg2Zmw3bHM0RnpLbFNk?=
 =?utf-8?B?UGtUWHQwblFKcXdiUWtydHMrOVRINkhjTFIwMXFOd1BJNW9JQVN5MG5nLzRG?=
 =?utf-8?B?MWdXK3MvV0hTdGNybFJEcEViY2ZoM09aaURwK0wyV21qd252VXc4OXpkeFJL?=
 =?utf-8?B?TzJxeGM5emxmcU5JSThwaEJOakNlc1cvcC9kODExSW9ySWt0ME9mWUpob1Rk?=
 =?utf-8?B?NzA0QjVpOGRjS0htam1MWXVDZGg4SDBoVUxSVmUzdVQyTDZHMnlDOHpQcFhn?=
 =?utf-8?B?aDd4QkpZM1JRMkwwb3M4Wm5PWVlUdTBwcDY4QUpmc2RjVTM3eUJ4ZkptaGpo?=
 =?utf-8?B?WTRnUzBWeWw0eGk4YlV4cFpWTXhiOGZuajFrUEhKUTlBeVpOR0FpN0NFZnJq?=
 =?utf-8?B?ZU14R05QS3FpQXV2ZVZ1NmMrd2Yyc0p2RXcwbHZXcXMzYnNHamN3WWlaMEI4?=
 =?utf-8?B?LzJJNUdRUks4VHJ1VWMzaGhPS25XZmJlMytyNEpnVjlNNjdHNkY3T3p3Uldt?=
 =?utf-8?B?ZEIzSnFsKzJBOW1FdWZMc0ZFK1I1Zm1RUkRRRWNGVW1ZTExuNDJScVhVQzBp?=
 =?utf-8?B?WGxscCtFUXFrcXNhdGU2S1JnUUZiazJyUHFST0NKWEFxUTNORjNtTUdhY1Za?=
 =?utf-8?B?TDduVWJtcHc0WW9WSnRMdnA2bmxlTnovdmhta1pSTzNtNUJiNVBGUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ea84c95d-8a93-4776-3b9b-08de7ab30800
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Mar 2026 12:30:48.6796
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: glhJorzCVFZVBm3OFdnfGtal2Y3RohcVBIE8z0DLN6jv3d8JtqBTKseZWMdNXw9Dl9CoNg6dCzh6YDSAeuvGjg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6574

On Thu, Mar 05, 2026 at 12:39:51PM +0100, Jan Beulich wrote:
> On 05.03.2026 11:17, Roger Pau Monné wrote:
> > On Thu, Mar 05, 2026 at 10:20:02AM +0100, Jan Beulich wrote:
> >> On 05.03.2026 09:50, Roger Pau Monné wrote:
> >>> Since we have the parsing of the ACPI related data done from dom0 it's
> >>> not only Xen that needs to support the feature, but dom0 also needs to
> >>> know how to parse it.  Or we just assume the driver in dom0 must
> >>> strictly know how to parse data from the features enabled by Xen.
> >>>
> >>> Maybe Xen supported bits should be & with the dom0 ones?  So dom0
> >>> would set what it can parse, and Xen would AND that with what the
> >>> cpufreq drivers support?  However that would be an ABI change.
> >>
> >> What cpufreq drivers are you talking about here?
> > 
> > I was talking about the Xen cpufreq driver, sorry the context was
> > confusing.
> > 
> >> When Xen handles P-
> >> state transitions, the drivers in Dom0 would preferably not even be
> >> loaded. That's what the forward-port did. Upstream they may be loaded,
> >> but they then can't actually do anything (and they may exit early).
> > 
> > Well, yes, on FreeBSD I simply overtake the native ACPI Processor
> > driver with a Xen specific one that has higher priority.  So the
> > native ACPI Processor driver doesn't even attach.  I think Linux is
> > slightly different in that it allows the native driver to do the
> > fetching of the information, and then the Xen driver only does the
> > uploading.
> > 
> >> Coordination is necessary only with the ACPI driver(s), and that's what
> >> this function is about.
> > 
> > I think Xen also needs coordination with the driver in dom0 that
> > fetches the information from ACPI?
> 
> That's what I meant with "ACPI driver(s)".
> 
> >  It's not only Xen that needs to
> > report what the cpufreq driver support, but also dom0 would need to
> > expose what it can correctly parse.
> 
> Hmm, yes, strictly speaking we should tie setting of respective bits to
> Dom0 having uploaded corresponding data. The order of these operations
> may, however, be at best undefined (and possibly be well defined in the
> unhelpful - for us - order). I don't think I see anything we can do
> about this.

I'm afraid it's the other way around, you need to first call _PDC, and
then fetch the data.  As I've learned the hard way while doing the
FreeBSD driver: you must call _PDC before attempting to fetch the
data, as ACPI will modulate what gets returned/is present on the
Processor objects based on what support the OSPM has specified in the
_PDC bits.

Anyway, not sure there's much we can do now about any of this, it's
too late to change the interface, and what we have seems to kind of
work on for the purpose.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 12:38:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 12:38:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246547.1545674 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy7y8-0002cC-6m; Thu, 05 Mar 2026 12:38:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246547.1545674; Thu, 05 Mar 2026 12: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 1vy7y8-0002c5-3y; Thu, 05 Mar 2026 12:38:20 +0000
Received: by outflank-mailman (input) for mailman id 1246547;
 Thu, 05 Mar 2026 12:38: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=NtvN=BF=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vy7y6-0002bN-QS
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 12:38:18 +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 2e0851d5-1890-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 13:38:16 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH0PR03MB6574.namprd03.prod.outlook.com (2603:10b6:510:b9::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.17; Thu, 5 Mar
 2026 12:38:11 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.016; Thu, 5 Mar 2026
 12:38: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: 2e0851d5-1890-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=D8ob6+f2u5XpFae7c/Cxv8/zwV2ejGccWY+IlERYNGyiMnrVN6wW10pc1wQrFRLA27W3Ot73LbnNh3Hi+yC5p2X67sQnXKw4W6MERiLPeOCR7Ulgh1TWUvJuwa0fuPoVMXObyMgYENPkEIxa8XQ4jhtmqtLPM61U1NqTXA9V1D/C21jkKJbVDVKlgnNN0C6bBwlQZk8L7IMUDnygEEWyrQF05gfmzkyT8vi1iLk34mRiNyny8GnS8K7Ac0FZh+x6OmcGN3bj28J0aGBajju/x/1V6oo3Bqh+6J50lFfsFmOSXZIv0PHyeAGN+7Xq8KJeK9cZAXXobHmxneZ9OlOr4Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SOFugAuHG0luGWTzvb5EmgIacu3CrP0wwFuP+xzGE2g=;
 b=cHajjt4sjGC1LleYljOZOyTzbNN/GV4P7GoIyO3DHajO9pUXwhc4TQJHewo2CZ18zfaOx6WO0JggF2xRoiV1AI8Xg0zAXnczjiTi4EzrpK1y3CKfgostma/ds5zgjufAtolyaHm5yPD4tH13rw9m3aN1rGmiolzn5fIf1NO0WyH0VOKxKGYH7P3SbfTWJ7iCw7YiG/CJ2k4oKTpnaeGkXjQP8zhOGmv3IKhGIjn7N7m7X8vB+4yWq3wAibLUNgxkMKhB+X38cu6YKN+XtbLv9PnV6GNdApd57awRbzIGcTiU/aqOISYwK9XTb3+yuz8koDGc22wnoeLG2ixJDgBvHA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SOFugAuHG0luGWTzvb5EmgIacu3CrP0wwFuP+xzGE2g=;
 b=0rquEotU4sucWHjl9Ahox8LbLBIgPeU75mkuwqSxgzk1V3SgahznKYPUIxR2aC9PxHuypp+kYTQjfTENncxztS5YNmWC9spqBGyVZXnQQnVFily0UzPX+sq2PBR8JjUiwthJNS1l3b3EPWB3iuV0IpOMX80g22c2l94V5Xy3lpI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 5 Mar 2026 13:38:07 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Bernhard Kaindl <bernhard.kaindl@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v4 05/10] xen/domain: Add DOMCTL handler for claiming
 memory with NUMA awareness
Message-ID: <aal5L6uuFNW2A5NR@macbook.local>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
 <b2c94f0c3b41976b2691ce15b9f9a2589370e65a.1772098423.git.bernhard.kaindl@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <b2c94f0c3b41976b2691ce15b9f9a2589370e65a.1772098423.git.bernhard.kaindl@citrix.com>
X-ClientProxiedBy: MR1P264CA0207.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:56::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_|PH0PR03MB6574:EE_
X-MS-Office365-Filtering-Correlation-Id: 9651cf4c-e254-438b-9165-08de7ab40f95
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:
	a634TpC0mRkF7vIq3XAqkK77Ws8xZCmmsXOx7aAMx2tO3BoFiaGNTZ/YDSWcRwsZ7sbb4E9KtKjpH4/pYhHi5Mtj3Nk+EV2ozcBUKMy05Gc/rnd4Ue5IRb5/3AQQNuy6QBjv+yFADuPlEzmcyHw+Hl763AgLEhexpd9YRhxiwPOyx0QFUBqAVHLxkQjZ7WEb1Jn0Wijl1szsLtnqP4zOFu4Zgh2QpyAx8mZ6OHVO1aLofu9qIzYZw2wXsLEBwufiIWCM5nTT70/m03FKViCU5SeJfomRXnrjWfMF5wd8FYM7iBntQOKKWOUv/K3+qH1egRlg3A0Ti3NGgEbLSI6lgay4QSkO4Knw+KaNp6LvXQLJoBnKJ3HSMXZFfMdcWsAZevtXUaifIS9BW//9B7zw2AOlZoSviQUB5FsheBtX4uwfUYX5a30CxN3sVH4wUj8QpzTemrxSS8Pxsueq0bgn6lS29oGgUfRjpOSKKCA3rv8XdCA/b2M9cRN7HmzBq5setr7pEC9Zw8ZufstB1Fc9O07cFR6ETwKEgkgbOnbhTtsvCd/h1f8ThHCqBVMzlkZD+GVDNc6cn/lmisM9984q0Z+T0sYuNq3otlEbIfHEEodBlykQJr26dKO5iVPGfHVyEvWJv6IdMN69NvOB0Ga1mGPZC49AQtM3xpMTBiAzDC2kaHJCiCNV/AaLaQzr0HcA094uaeERBFRHLGOoYU3ohea/ydW5lCQXkWDtewfHOFc=
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?dVNvTXd2UHQwWVRaU3FXYldtcWtXUmh6aFAyMlE2aDRWZnFSR2tjbm1sMWNn?=
 =?utf-8?B?alg2R0NzbFhLYnJuRjlxdzJFcmRYcmFCemdrR3dCN01NVTZHM3F4THQyNm9V?=
 =?utf-8?B?allVemhUSGRzMW9IeDJ5WmZ3NWFQS25BdmtsUUVkckhJbDJaSS9RTEh6L2NL?=
 =?utf-8?B?RzhlSkZPbXErZjVZeGY5K0Q2NFBJeVBnWGNUelNoMzBSZUNyNmJNZTZxaVYx?=
 =?utf-8?B?NkU0RmlPUjMvYXR1b3lTamtCeE9LRjd5cGV0b1RsM3h5K3NmbHByNVhJRnNt?=
 =?utf-8?B?b2xqd0U5SDBFU0locWZNNVZGbkVMREV4NlpXZFUxODdFeFNhTk9HSXBQTXFZ?=
 =?utf-8?B?K2RKcURDQmNEUHhKSDBWTXE4UHNXUjEzdy81eVJhUVViS0ozaWlqdWlIYWlh?=
 =?utf-8?B?Z2ttem5kazJqTEdTUVFyZTIvKzBpd2N2eXZRWUEzZ2xzZEFVd2ZRbjMxd3ZI?=
 =?utf-8?B?RTNLYmxPQjdXZzMxUGZBYXpMT0FGdUxZOWxTR2s3K2k1TE5YR1loMHJyVDA0?=
 =?utf-8?B?UE9rL01JNjNGRjcxbUh2Snk0ZTM3bVhpeEhOZE1WcElSMk14MDE0Vm1DRE12?=
 =?utf-8?B?aHE4NCt1T2U2K2puQURhTHoyM0dxZlFJRjY2MHl6WGZ5Y05mbnJXeW0wUEoz?=
 =?utf-8?B?NzJ6bWRvazJLRkpCOURJNDY4Wll1QVIxOXhnb3lSa1Bha1JxMVNZT3BFMzJi?=
 =?utf-8?B?SWx6OU9HRFNwSEFTVExpWGJ1OFF1bnBFY1NadTJtUU1od05VdEJXbU0rTnBw?=
 =?utf-8?B?K0ZvR1dFNkppRFBFd3NJU0Y2TGpuZDJDbjJRUHArcC94Q005SkI4WUpWdjQ4?=
 =?utf-8?B?M2tSVndwRzlTbGYvQ1ZxaDljZlF3WTgrUDFESi9rbi9iQkVIN3lmN3VQU3pG?=
 =?utf-8?B?QmFLL2JxaGJpOFY0K25pMk1ZM3M0d20rVk9mWFM2TlFvUFgzcGc2UklnSm80?=
 =?utf-8?B?MjhWVFFaVzJyRDNCL0VLZWVxY3NLM3FrTjlwNUFiQVZleEZ4MW54NUtWNGFJ?=
 =?utf-8?B?U1hmaHc2dWhzUWpEeDE0U0JSc1RBajFTTjRTUjljcnYzR05KY3FpOUNGTFJj?=
 =?utf-8?B?YzI1dmp3eHhCT0FTYjRrYjFvR3g1MUpPdFB4YXFYY1c4MFdObUQ4SFZzRnRo?=
 =?utf-8?B?Mys4Ym1yUmg5dHJxUXppMVM0czlJRVdISGJHMWxYaUJheUVCOE41ditVTGdJ?=
 =?utf-8?B?M2NFRE9MdU56cmNubkU2QXVEN2JXaFVXbm8xbytEK2EyUDhSZWtjeVQvbXph?=
 =?utf-8?B?U2lGL3B6WkhEK3lwMU5hdUVGZUxmMys4Z25HcGFrcmx4UDJsQzIwTW5UV2Zx?=
 =?utf-8?B?U2Z2Z05xQVQ0R3Y0ZHIyTGFJNmhMbXZZQ2pkS0hGbUVmUzg0bkZEZ0JQcDQ2?=
 =?utf-8?B?RnNMVFFpOE10bERSOGJBbzNFOStKdk9hcEZCU20wQjQ0SXd1dzk3ZURiK3hM?=
 =?utf-8?B?TDdoN1hMMVRTMktueFpSLytqTkszNUJldm9mYndSaUtnTmpDV3NsUGo3bmV4?=
 =?utf-8?B?LzNmaE5WK29LM2pWaXpKMUthZUFYNnlYajZrL0JEdGtGNTY4cERmNHFYQ3lt?=
 =?utf-8?B?bVo5U2lkK3ArdWt3em9PcUhoV01GR3NPa1pqZTQyUFlQd3BNWFBtamUyRkI5?=
 =?utf-8?B?NTRRSnFEYUF4aHd0UzhZSGg1bG1RQnlSUHdnODlpK2M4a1RkTlMrWWhKMnF3?=
 =?utf-8?B?Rk4zbnhmN3ZyaG1FSlNkR2JuL04xT3V6MTZYR2VtZXA1dXl0bTZWMkNJa3VH?=
 =?utf-8?B?VGZEM2FjN29lbFV6R3F1cTRscW53VzArZk9CR2MyMi9oY2JyUjNGVDdzZ3VZ?=
 =?utf-8?B?eGRVRHZTNlk4a0l1SEZRUWFBUHpZcFNweWU4dHA5U3VLSlRTM2FIN0hCSkp5?=
 =?utf-8?B?UnArOGo1Z1BZYkY1L1NTRHc1S0ZqN1U0ZzZYcHNTTVVTS0tFSE1JR0FHbmxR?=
 =?utf-8?B?YXVabjFvaFJkcDF4a2d3MnFHNUNEcUR5Tm1ZcTBxYWhIRDVBZWVIN1kramxs?=
 =?utf-8?B?ZDYrVk5JU0liWE5xa1pOZ2xBZ0xJeFhQeFJ1NUFZUlFsbXphNjhBUGxwdUV2?=
 =?utf-8?B?ZnZ0T0dwUVdSUkp3K0VDdzQ4Z0Vhd1kwcDJHTXBXdHBzUGh3SjNUcjVFc0dZ?=
 =?utf-8?B?YmJ0WlVlWUhyYVkyNkNITU93Z0F4dHJ3SmdORFFwM0pDQ1RyZG9SUkNVQnVi?=
 =?utf-8?B?U3VTWG1OeHZ0bDV2VU9XTGhUS0ROMEc5andCdVVtSW1oRlp3UnZobjcwQS9x?=
 =?utf-8?B?Qm1YLzA3ZWE1dGFudmJObVExQlY0S1NnME5xSndETDRRQThzR1VTb2l0TExS?=
 =?utf-8?B?U0RqQ1dmd0wvNmpvVmlPOWttWnFnalA0ekFiaWtmUHZNanFZYzBuUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9651cf4c-e254-438b-9165-08de7ab40f95
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Mar 2026 12:38:10.9313
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: GFafqZjd5Biz66yYg1r1SqRQcNdALqGXuDjLCE2X4Y8EMWUCpMNu9tBwzYgqlRWaMXYIEazxa83Dmi3G+esjhQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6574

On Thu, Feb 26, 2026 at 02:29:19PM +0000, Bernhard Kaindl wrote:
> Add a DOMCTL handler for claiming memory with NUMA awareness. It
> rejects claims when LLC coloring (does not support claims) is enabled
> and translates the public constant to the internal NUMA_NO_NODE.
> 
> The request is forwarded to domain_set_outstanding_pages() for the
> actual claim processing. The handler uses the same XSM hook as the
> legacy XENMEM_claim_pages hypercall.
> 
> While the underlying infrastructure currently supports only a single
> claim, the public hypercall interface is designed to be extensible for
> multiple claims in the future without breaking the API.
> 
> Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
> ---
>  xen/common/domain.c         | 29 ++++++++++++++++++++++++++++
>  xen/common/domctl.c         |  9 +++++++++
>  xen/include/public/domctl.h | 38 +++++++++++++++++++++++++++++++++++++
>  xen/include/xen/domain.h    |  2 ++
>  4 files changed, 78 insertions(+)
> 
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index e7861259a2b3..ac1b091f5574 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -268,6 +268,35 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>      return rc;
>  }
>  
> +/* Claim memory for a domain or reset the claim */
> +int claim_memory(struct domain *d, const struct xen_domctl_claim_memory *uinfo)
> +{
> +    memory_claim_t claim;
> +
> +    /* alloc_color_heap_page() does not handle claims, so reject LLC coloring */
> +    if ( llc_coloring_enabled )
> +        return -EOPNOTSUPP;
> +    /*
> +     * We only support single claims at the moment, and if the domain is
> +     * dying (d->is_dying is set), its claims have already been released
> +     */
> +    if ( uinfo->pad || uinfo->nr_claims != 1 || d->is_dying )

Iff we can move forward with this single node claim implementation,
the return code for uinfo->nr_claims != 1 needs to be -EOPNOTSUPP, to
differentiate the hypervisor doesn't support the operation vs there's
an error in the input parameters.  That check needs to moved into
the previous if condition.

If the domain is dying we could also return -ESRCH, so that we can
differentiate the different error paths from the return code of the
hypercall.


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 12:40:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 12:40:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246555.1545686 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy80C-00045R-JU; Thu, 05 Mar 2026 12:40:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246555.1545686; Thu, 05 Mar 2026 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 1vy80C-00045K-Fe; Thu, 05 Mar 2026 12:40:28 +0000
Received: by outflank-mailman (input) for mailman id 1246555;
 Thu, 05 Mar 2026 12: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=00Q8=BF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vy80B-00044P-M1
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 12:40:27 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7bbb9e62-1890-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 13:40:25 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4834826e5a0so91034215e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 04:40:25 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4851fad27e6sm57013955e9.3.2026.03.05.04.40.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Mar 2026 04:40: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: 7bbb9e62-1890-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772714425; x=1773319225; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fjpoR/vQ/5VemNieu/EoTnYqrKHY2G7PuqHzs+F3a8c=;
        b=OniBUicpuSc9L1JdWXYYqYsq6Fq/OCNN8Mfa11EXD1WwuVL1DfynbtVfg8e+rbCI78
         zlS2/yoS2jO78K4mwNNW5eX7D6XzErI6Wucg5d1v8ly5IaUJxMaO6ppZKzu8kYD/Iy3W
         b3QSLpttNI4FG2XduHlCyhsmcud6Fhc5DrE7wMVVFMm0FLrvgTTe2skoe1EfPPYm7pJX
         /k7Yv+4kFR/wyLSTfmGW5S6PUdG5gUhrTDR3VOR7LiMlsedZfMrdTivUW3Z+a9OE6Vgi
         R2oWXMu27g33hjW8qBexVwIVMHc4NEpxUHZJ96VELeDjW88Pzur4EWO2OXyG+OzQ7/KI
         fImQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772714425; x=1773319225;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fjpoR/vQ/5VemNieu/EoTnYqrKHY2G7PuqHzs+F3a8c=;
        b=A0mfbAWv66tzwgZ5XyEyZ7AMCSknFGmK2sSZiCSSyaTMu9mT3lpwmCJWgvil3reHFT
         e1BJUAjcJzO60P8TXW1zLDo8gk6jmTSWpBUtqJ8dyElUAZebGK9KNbIa6eOEaFfX0foF
         mnBy7y7lJlXVv/BuaP0aMjP8QHjqWOzLDATfZGkVpYkmeFzqVWhXUyw+8yBH5+p4TjA0
         iROKWzvRB0cI/hOnBzCqz13p6lOv5WuGykIwtFl4iV7P4L24NubpJlDH8d2OpEZ0Rdvh
         oVKtmb9o1zjo7i1s5gdAMTUvMQAiN0qAK4ZMw1meFjGdmZqLFQBQkx2vdbvxzx5zIr+j
         +8wg==
X-Gm-Message-State: AOJu0YxuTyLBBHJ3iPPKfHHUCVIys4s4dJu8zhoqG1w2LC2qHovGvh5C
	clVOO2aVgU4u3KsdWsjdoo7wbDXExJKxfrsDDepWMznOS1ZZsMN/MdzajEaRgv1pJg==
X-Gm-Gg: ATEYQzwXteTI/1xHvIWkcRy7eevieDib6HyeV7bz/4dhAswzB6HtHvZhpGBd8iRRJxx
	JLsh+mAuB31zwEvQXC95Sf2LiXchVKFaOROjxcAiKNGjygKVeBqd/ZQfBr1Wpoh8GfeP2RZy9No
	gzfXtJ5o5qpHBfztRltKpAzgtwB1AwIeZJG0bX0fl8mEw93Tm8CP1EdbuBx0ti0Q5tYN6SEj99T
	eksh2B2gOpT3uKpfagaszhC9GPqi8ASyP2atc8ceUqJhfFgemn/ycZF3HoZvgmyppsxTI4H9iEH
	+sYDMUUNdRxjdzLhKaUkoHnaxb0eYUKGCvHcUJRSeZuc9tL35b4nEm1B2I/3k40SYk6g8GCQdIk
	Pb6ZmsGqyLJKjvf8Mu8KNPKi9HjcFxGSoLp5C/1IE0Wf0/MU0ATreFScq3Ni8H1UBAQkLHVo903
	4yeY0uSnKpRZ/crjse56k7Et7KfR1+46qSd7IL8lszks+blir8l/pFqoIB0tKxHch0E+juMmTVu
	DYcDfRCqVuDNmo=
X-Received: by 2002:a05:600c:621b:b0:476:4efc:8ed4 with SMTP id 5b1f17b1804b1-48519854b2emr98746975e9.11.1772714425058;
        Thu, 05 Mar 2026 04:40:25 -0800 (PST)
Message-ID: <4264cd39-00f3-4114-af90-baa29f9a00b9@suse.com>
Date: Thu, 5 Mar 2026 13:40:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/ACPI: _PDC bits vs HWP/CPPC
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>,
 Jason Andryuk <jason.andryuk@amd.com>, Penny Zheng <Penny.Zheng@amd.com>
References: <ca1812c2-dadf-422a-a195-9c285ce08077@suse.com>
 <aahfgDDNVwJPa-jF@macbook.local>
 <3449aaf7-b221-4c45-9d22-54e340167b3f@suse.com>
 <aalD5VRBBuM16pxN@macbook.local>
 <73dd0000-4044-486a-915d-6381d0820cf6@suse.com>
 <aalYScWQQx_vMqII@macbook.local>
 <cf959649-139b-4e9a-84ef-f7548edd7f42@suse.com>
 <aal3dVPUyh2_4g4z@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aal3dVPUyh2_4g4z@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.03.2026 13:30, Roger Pau Monné wrote:
> On Thu, Mar 05, 2026 at 12:39:51PM +0100, Jan Beulich wrote:
>> On 05.03.2026 11:17, Roger Pau Monné wrote:
>>> On Thu, Mar 05, 2026 at 10:20:02AM +0100, Jan Beulich wrote:
>>>> On 05.03.2026 09:50, Roger Pau Monné wrote:
>>>>> Since we have the parsing of the ACPI related data done from dom0 it's
>>>>> not only Xen that needs to support the feature, but dom0 also needs to
>>>>> know how to parse it.  Or we just assume the driver in dom0 must
>>>>> strictly know how to parse data from the features enabled by Xen.
>>>>>
>>>>> Maybe Xen supported bits should be & with the dom0 ones?  So dom0
>>>>> would set what it can parse, and Xen would AND that with what the
>>>>> cpufreq drivers support?  However that would be an ABI change.
>>>>
>>>> What cpufreq drivers are you talking about here?
>>>
>>> I was talking about the Xen cpufreq driver, sorry the context was
>>> confusing.
>>>
>>>> When Xen handles P-
>>>> state transitions, the drivers in Dom0 would preferably not even be
>>>> loaded. That's what the forward-port did. Upstream they may be loaded,
>>>> but they then can't actually do anything (and they may exit early).
>>>
>>> Well, yes, on FreeBSD I simply overtake the native ACPI Processor
>>> driver with a Xen specific one that has higher priority.  So the
>>> native ACPI Processor driver doesn't even attach.  I think Linux is
>>> slightly different in that it allows the native driver to do the
>>> fetching of the information, and then the Xen driver only does the
>>> uploading.
>>>
>>>> Coordination is necessary only with the ACPI driver(s), and that's what
>>>> this function is about.
>>>
>>> I think Xen also needs coordination with the driver in dom0 that
>>> fetches the information from ACPI?
>>
>> That's what I meant with "ACPI driver(s)".
>>
>>>  It's not only Xen that needs to
>>> report what the cpufreq driver support, but also dom0 would need to
>>> expose what it can correctly parse.
>>
>> Hmm, yes, strictly speaking we should tie setting of respective bits to
>> Dom0 having uploaded corresponding data. The order of these operations
>> may, however, be at best undefined (and possibly be well defined in the
>> unhelpful - for us - order). I don't think I see anything we can do
>> about this.
> 
> I'm afraid it's the other way around, you need to first call _PDC, and
> then fetch the data.  As I've learned the hard way while doing the
> FreeBSD driver: you must call _PDC before attempting to fetch the
> data, as ACPI will modulate what gets returned/is present on the
> Processor objects based on what support the OSPM has specified in the
> _PDC bits.

In which case at least for Linux we're okay, as what we need it has always
been capable of parsing.

> Anyway, not sure there's much we can do now about any of this, it's
> too late to change the interface, and what we have seems to kind of
> work on for the purpose.

Which reads almost(?) like an ack-in-disguise to me ...

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 12:44:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 12:44:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246567.1545696 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy84L-0004hy-7F; Thu, 05 Mar 2026 12:44:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246567.1545696; Thu, 05 Mar 2026 12:44:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy84L-0004hr-2f; Thu, 05 Mar 2026 12:44:45 +0000
Received: by outflank-mailman (input) for mailman id 1246567;
 Thu, 05 Mar 2026 12: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=00Q8=BF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vy84K-0004hl-EN
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 12:44:44 +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 14c654f1-1891-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 13:44:42 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-482f454be5bso82579515e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 04: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-4851fafbf9bsm38275965e9.14.2026.03.05.04.44.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Mar 2026 04: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: 14c654f1-1891-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772714682; x=1773319482; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ps30MAUb6AEgAzijJvCP0wKyGWFcZbak+cdz0xP/K4g=;
        b=ACkfBDjRwVH2Ry7PD9NRwuz2ONkBuxi4SfyQ3wqg9CIXqnHxMZDZue3aGosHsQz0mS
         TcP5TYjjIlH53io0hWUHbAb1R+yKOyXIA1c23EeP2EX3JZ2C9q/7qiDolQzzJWiIQ80S
         LS8yb7yr9bXrAGXLJDhZbAdbYDsXsX47qrAB24QYeivD6ogLSrMuVCkJodsK3dkk+MwY
         fwjhgN6ciVfkYKxPfWr/RbLKBZFcsfyfDFIWREusTGCBmEi6Q4MEyX9v1+ViqdvgXgNw
         8ZAl4LP2CrAHJRf5K1DBJK3ZvPgGsH4rCko2QFse8QjO2xx3ucT9McsuH/0Bfj0Sm+19
         2s5g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772714682; x=1773319482;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ps30MAUb6AEgAzijJvCP0wKyGWFcZbak+cdz0xP/K4g=;
        b=t1R/ZLlVoqtwsD9ltfMtWHPfTO9wK0jwCTXjHdazPVC7MBu6uULZrpzL6D8i6yJOTY
         79Ej+5I/bmGonjYS2DuKPVWkfq91Vw7Mf7hREC7tork2Hipz3kjFwuehSyj3/MdDB1/K
         /Rdg2yyVHwgWPTWMIYis6Im3NDV698LNZ3gdjIA6oYZ9YOsNdCrSpWSWjk3xno2fUL6U
         PwlPW5bGSp9iCd4/kBsa7sQaJYVkgLC39ke4H9WwcnFna6g/9oZyyMCDsirVka1zVMK6
         8cZvz23amzlztT0z78or9VEuDFjbAIJyywyryF43/bbsMUVYgBaNpC3rqjf/KzvYcPUH
         OOVQ==
X-Forwarded-Encrypted: i=1; AJvYcCVgwY08hmhFRmn9TlRETQhXl/f33wULi8W03GxRajdqLO/RiQCsAT+VmEox9UxtvCRYgLpZeBAr7fQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyxC7cIuQ8aX54llJC5llwBzIn3aa85W90kRM0atRTGe+0jAT7l
	5kEBH/uAlN1l7VAzeXOIOlJHHobwyjpX4DVC0kjWUR27Y9fv8YpoyHuGrLD26hRYrPPu75T0niF
	ZIpA=
X-Gm-Gg: ATEYQzwSMjcEbgSLybzurdAviaVTHR0wug01GX+hBTNGENtAXtAddNDPJYZK6g7XnZS
	fizU38z/JnWKB7ANAdhuzdcnrmKet3RX2bp019Y+n8KjUWWyBETCS9Z0+vRRxGzegAzCNbG4KCt
	NJU1UEDkiQ4sXDqLq24FYWY+d0poI1WY0AZptB/4NBNr9MW5W6uevXrybWEpVYdJkj5VeVw9/M6
	FUpSVXAXNtCPecf7gnjHr0f8kxjsW1fI6RwP80weYQ8Ab5dCHpmBCTvveYSsnlWrmOUsUeXkeJK
	GQRtvAqxTKFJ7iHCB3ythZ4L9WMKNp9nw3hMk7By8bSlVEI5tFlKhdcYJ00yPY337h4LBJGvIG2
	f7Zu59OhIppkLvDKvrPrr22/770WAD8d68nUxWWUh8pBSBNW4XlE8roJMdz21Lpb2f1IXnJR35U
	Y+PfEtR97C29OGihKlnfaGlX01I4nsKSj5omF29O7NyfTmVp9CYFPkLsn1sMnyouKpvZ2fO+cpn
	VcmJKac3biRGBA=
X-Received: by 2002:a05:600c:3f0d:b0:481:a662:b3f3 with SMTP id 5b1f17b1804b1-4851ee854b6mr40429935e9.7.1772714681842;
        Thu, 05 Mar 2026 04:44:41 -0800 (PST)
Message-ID: <79b2e448-fdba-46dc-8b94-b0128cf0f492@suse.com>
Date: Thu, 5 Mar 2026 13:44:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 05/10] xen/domain: Add DOMCTL handler for claiming
 memory with NUMA awareness
To: Bernhard Kaindl <bernhard.kaindl@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
 <b2c94f0c3b41976b2691ce15b9f9a2589370e65a.1772098423.git.bernhard.kaindl@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <b2c94f0c3b41976b2691ce15b9f9a2589370e65a.1772098423.git.bernhard.kaindl@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.02.2026 15:29, Bernhard Kaindl wrote:
> --- a/xen/common/domctl.c
> +++ b/xen/common/domctl.c
> @@ -868,6 +868,15 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
>          ret = get_domain_state(&op->u.get_domain_state, d, &op->domain);
>          break;
>  
> +    case XEN_DOMCTL_claim_memory:
> +        /* Use the same XSM hook as XENMEM_claim_pages */
> +        ret = xsm_claim_pages(XSM_PRIV, d);
> +        if ( ret )
> +            break;
> +
> +        ret = claim_memory(d, &op->u.claim_memory);
> +        break;

This needs accompanying by a change to xsm/flask/hooks.c:flask_domctl().

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 13:04:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 13:04:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246591.1545705 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy8Nk-0007hC-Na; Thu, 05 Mar 2026 13:04:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246591.1545705; Thu, 05 Mar 2026 13: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 1vy8Nk-0007h5-K5; Thu, 05 Mar 2026 13:04:48 +0000
Received: by outflank-mailman (input) for mailman id 1246591;
 Thu, 05 Mar 2026 13:04:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Q3zb=BF=bounce.vates.tech=bounce-md_30504962.69a97f6b.v1-95b08eaea145431cae23f4ba27e0cbb9@srs-se1.protection.inumbo.net>)
 id 1vy8Ni-0007gz-PC
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 13:04:46 +0000
Received: from mail177-30.suw61.mandrillapp.com
 (mail177-30.suw61.mandrillapp.com [198.2.177.30])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e114a926-1893-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 14:04:45 +0100 (CET)
Received: from pmta14.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail177-30.suw61.mandrillapp.com (Mailchimp) with ESMTP id
 4fRVB30MgxzP0Jwss
 for <xen-devel@lists.xenproject.org>; Thu,  5 Mar 2026 13:04:43 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 95b08eaea145431cae23f4ba27e0cbb9; Thu, 05 Mar 2026 13:04: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: e114a926-1893-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1772715883; x=1772985883;
	bh=TrtrGEbMvZfgbcOGMyLdlPsgcFAr6G1EiZiAEmMYYP4=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=Re3g7yp+cFZrYZBzRlxp952Ijf8uZiBvW7E96kl/ktpWgng/+b1R2gZGp6eCYK5hO
	 HPMhEIqiZDV3pkd1Hi1x3qU59qkwisQgLEEZhGNbiityaIYouF+UdVdSFHHxH/pJS5
	 IvdVJzYopZ6lG0KNRyGaL/2FaS8z8WatA6zns7pg88gXqrCvGauiMnRMKGVU5G6h8V
	 bHCtt1aHsv3TxohmfJ2MXc894Oc0CUakU8mQIb5Hq1SsH7CIE7iCPBuPZXUUPZovZM
	 t3QtUJXLV/6AuqfsqUXn+I1tf4V9ZXLcS4LnH0bYRbd3jP8Jxhr3yqRJkMVXF7oI9N
	 02W4dvQa0yeZg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1772715883; x=1772976383; i=julian.vetter@vates.tech;
	bh=TrtrGEbMvZfgbcOGMyLdlPsgcFAr6G1EiZiAEmMYYP4=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=a0MpJmTCtW+3kw6qc0uZdcYTAMxHkvxZ7UMZ6Z/3e82tKyz+0fv2GAspLYwMjN4c9
	 LefVaYywEW1DfFisK9f88ZMtwKJF+yQd8OmjvotbaW1wTWJy3V1RA/+Y5rnRI9lpzj
	 crxf1XIZ0aRKXMLXvipzvHTUAhoAfnK1XwYpdR2XJFbuX7UP1pNhscoNqQCwzUV7DL
	 LdiGTRfi47NR5PpfN5uvlkI+23VAQd9ANlnkUqdqcR3Bab7+6IQStGmK9mKaBMFIVw
	 G44wSv3AxZWDACjTRf7nLAUVErFzN6I5T9B4ZXoMCgOpbgTJLZu30C5js2tdsmMtE0
	 fdR+0XOeZW7xg==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v4=201/2]=20This=20patch=20just=20changes=20indentation,=20to=20make=20the=20next=20patch=20easier=20to=20review.?=
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: 1772715881758
To: xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20260305130434.635276-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.95b08eaea145431cae23f4ba27e0cbb9?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260305:md
Date: Thu, 05 Mar 2026 13:04:43 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
---
Changes in v4:
- No changes to this patch
---
 xen/arch/x86/hvm/ioreq.c | 58 ++++++++++++++++---------------
 xen/common/ioreq.c       | 74 +++++++++++++++++++++-------------------
 2 files changed, 70 insertions(+), 62 deletions(-)

diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c
index a5fa97e149..355b2ba12c 100644
--- a/xen/arch/x86/hvm/ioreq.c
+++ b/xen/arch/x86/hvm/ioreq.c
@@ -125,14 +125,16 @@ static void hvm_unmap_ioreq_gfn(struct ioreq_server *s, bool buf)
 {
     struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
 
-    if ( gfn_eq(iorp->gfn, INVALID_GFN) )
-        return;
+    {
+        if ( gfn_eq(iorp->gfn, INVALID_GFN) )
+            return;
 
-    destroy_ring_for_helper(&iorp->va, iorp->page);
-    iorp->page = NULL;
+        destroy_ring_for_helper(&iorp->va, iorp->page);
+        iorp->page = NULL;
 
-    hvm_free_ioreq_gfn(s, iorp->gfn);
-    iorp->gfn = INVALID_GFN;
+        hvm_free_ioreq_gfn(s, iorp->gfn);
+        iorp->gfn = INVALID_GFN;
+    }
 }
 
 static int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
@@ -141,34 +143,36 @@ static int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
     struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
     int rc;
 
-    if ( iorp->page )
     {
-        /*
-         * If a page has already been allocated (which will happen on
-         * demand if ioreq_server_get_frame() is called), then
-         * mapping a guest frame is not permitted.
-         */
-        if ( gfn_eq(iorp->gfn, INVALID_GFN) )
-            return -EPERM;
-
-        return 0;
-    }
+        if ( iorp->page )
+        {
+            /*
+             * If a page has already been allocated (which will happen on
+             * demand if ioreq_server_get_frame() is called), then
+             * mapping a guest frame is not permitted.
+             */
+            if ( gfn_eq(iorp->gfn, INVALID_GFN) )
+                return -EPERM;
+
+            return 0;
+        }
 
-    if ( d->is_dying )
-        return -EINVAL;
+        if ( d->is_dying )
+            return -EINVAL;
 
-    iorp->gfn = hvm_alloc_ioreq_gfn(s);
+        iorp->gfn = hvm_alloc_ioreq_gfn(s);
 
-    if ( gfn_eq(iorp->gfn, INVALID_GFN) )
-        return -ENOMEM;
+        if ( gfn_eq(iorp->gfn, INVALID_GFN) )
+            return -ENOMEM;
 
-    rc = prepare_ring_for_helper(d, gfn_x(iorp->gfn), &iorp->page,
-                                 &iorp->va);
+        rc = prepare_ring_for_helper(d, gfn_x(iorp->gfn), &iorp->page,
+                                     &iorp->va);
 
-    if ( rc )
-        hvm_unmap_ioreq_gfn(s, buf);
+        if ( rc )
+            hvm_unmap_ioreq_gfn(s, buf);
 
-    return rc;
+        return rc;
+    }
 }
 
 static void hvm_remove_ioreq_gfn(struct ioreq_server *s, bool buf)
diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
index f5fd30ce12..2e284ad26c 100644
--- a/xen/common/ioreq.c
+++ b/xen/common/ioreq.c
@@ -263,41 +263,43 @@ static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
     struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
     struct page_info *page;
 
-    if ( iorp->page )
     {
-        /*
-         * If a guest frame has already been mapped (which may happen
-         * on demand if ioreq_server_get_info() is called), then
-         * allocating a page is not permitted.
-         */
-        if ( !gfn_eq(iorp->gfn, INVALID_GFN) )
-            return -EPERM;
+        if ( iorp->page )
+        {
+            /*
+             * If a guest frame has already been mapped (which may happen
+             * on demand if ioreq_server_get_info() is called), then
+             * allocating a page is not permitted.
+             */
+            if ( !gfn_eq(iorp->gfn, INVALID_GFN) )
+                return -EPERM;
 
-        return 0;
-    }
+            return 0;
+        }
 
-    page = alloc_domheap_page(s->target, MEMF_no_refcount);
+        page = alloc_domheap_page(s->target, MEMF_no_refcount);
 
-    if ( !page )
-        return -ENOMEM;
+        if ( !page )
+            return -ENOMEM;
 
-    if ( !get_page_and_type(page, s->target, PGT_writable_page) )
-    {
-        /*
-         * The domain can't possibly know about this page yet, so failure
-         * here is a clear indication of something fishy going on.
-         */
-        domain_crash(s->emulator);
-        return -ENODATA;
-    }
+        if ( !get_page_and_type(page, s->target, PGT_writable_page) )
+        {
+            /*
+             * The domain can't possibly know about this page yet, so failure
+             * here is a clear indication of something fishy going on.
+             */
+            domain_crash(s->emulator);
+            return -ENODATA;
+        }
 
-    iorp->va = __map_domain_page_global(page);
-    if ( !iorp->va )
-        goto fail;
+        iorp->va = __map_domain_page_global(page);
+        if ( !iorp->va )
+            goto fail;
 
-    iorp->page = page;
-    clear_page(iorp->va);
-    return 0;
+        iorp->page = page;
+        clear_page(iorp->va);
+        return 0;
+    }
 
  fail:
     put_page_alloc_ref(page);
@@ -311,16 +313,18 @@ static void ioreq_server_free_mfn(struct ioreq_server *s, bool buf)
     struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
     struct page_info *page = iorp->page;
 
-    if ( !page )
-        return;
+    {
+        if ( !page )
+            return;
 
-    iorp->page = NULL;
+        iorp->page = NULL;
 
-    unmap_domain_page_global(iorp->va);
-    iorp->va = NULL;
+        unmap_domain_page_global(iorp->va);
+        iorp->va = NULL;
 
-    put_page_alloc_ref(page);
-    put_page_and_type(page);
+        put_page_alloc_ref(page);
+        put_page_and_type(page);
+    }
 }
 
 bool is_ioreq_server_page(struct domain *d, const struct page_info *page)
-- 
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 Mar 05 13:04:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 13:04:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246592.1545715 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy8No-0007uf-Te; Thu, 05 Mar 2026 13:04:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246592.1545715; Thu, 05 Mar 2026 13: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 1vy8No-0007uY-QA; Thu, 05 Mar 2026 13:04:52 +0000
Received: by outflank-mailman (input) for mailman id 1246592;
 Thu, 05 Mar 2026 13:04: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=p/64=BF=bounce.vates.tech=bounce-md_30504962.69a97f6b.v1-0d585d8382c04640a12e640d66f54b56@srs-se1.protection.inumbo.net>)
 id 1vy8Nm-0007uB-S4
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 13:04:50 +0000
Received: from mail177-30.suw61.mandrillapp.com
 (mail177-30.suw61.mandrillapp.com [198.2.177.30])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e11a26bd-1893-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 14:04:44 +0100 (CET)
Received: from pmta14.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail177-30.suw61.mandrillapp.com (Mailchimp) with ESMTP id
 4fRVB33T3RzP0K0df
 for <xen-devel@lists.xenproject.org>; Thu,  5 Mar 2026 13:04:43 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 0d585d8382c04640a12e640d66f54b56; Thu, 05 Mar 2026 13:04: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: e11a26bd-1893-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1772715883; x=1772985883;
	bh=IXlDfmTfGN+c9jtpxObZGu4U9n4TAcmm6nuDw2iup0I=;
	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=sE/UypS4ZvLj32q1KgN6IBCl0wUTzmRCErAD631xwGm4u8t/L4bEhFl+c6YMSGFjd
	 ZTPFv7j8PTbkg+88dnjkwZEGcl0m9c3XwFw3US8CheP9D032F4T485n0hwOUNiOMsU
	 31upG5UPYuyxU7wF921okC+yx+ABjQ9ojojCGPY/SJplWlTz/q+vWo7+izmYDaZcVb
	 WS1bU6dw55VJLWkDC4d9gFcgEdlKb2IGJo9ea1TD7QTZrXlP1IIceK11MAvZ+DTKqT
	 oUuBEHALTOVdpB0cpHAY2gkd//8xGtrcHXt11L1s8DlR/URCy+ehDjvI6bmLwy9R1D
	 f8ZZAOnitmK9g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1772715883; x=1772976383; i=julian.vetter@vates.tech;
	bh=IXlDfmTfGN+c9jtpxObZGu4U9n4TAcmm6nuDw2iup0I=;
	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=GDpNyJVM0XSqh7QcDOzZFZxIAG4G/BvTQuDUiHEySjChLAGA+P7QohBXdb0OMyAB5
	 jaae4rwTBEQ3U722yufpNB28Qln3UEwoTViO1bwBySbDODCgfo4qopZXKq0A4H/W8P
	 d8uA76ThPWff4M6wAmXEb+opvzFA/DBmF+ert7CU0dVAgnU45+6M3eW2YyakpyH2Fi
	 frvdU4iBV/GZT2nAopQIURYyqgCTqJjw013/OuW6dJlr4bqzfNmHysSkC0q8BD9/k3
	 Vr76scOhHRjEga/RvkWay8bHzUkXLsp0tJKZuXSz1ciY57UcJ9mn3uqlBDCB7xCmXw
	 8iIJsjDEHTMUQ==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v4=202/2]=20x86/ioreq:=20Extend=20ioreq=20server=20to=20support=20multiple=20ioreq=20pages?=
X-Mailer: git-send-email 2.51.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1772715882225
To: xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20260305130434.635276-2-julian.vetter@vates.tech>
In-Reply-To: <20260305130434.635276-1-julian.vetter@vates.tech>
References: <20260305130434.635276-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.0d585d8382c04640a12e640d66f54b56?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260305:md
Date: Thu, 05 Mar 2026 13:04:43 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

A single shared ioreq page provides PAGE_SIZE/sizeof(ioreq_t) = 128
slots, limiting HVM guests to 128 vCPUs. To support more vCPUs, the
single struct ioreq_page in the ioreq_server is replaced with an ioreq_t
pointer backed by a dynamically sized allocation.
For the resource mapping path (XENMEM_acquire_resource), the common
ioreq_server_alloc_mfn() allocates nr_ioreq_pages(d) domain heap pages
with MEMF_no_refcount and writable type references, then maps them as a
single contiguous VA via vmap(). Teardown recovers the pages from the
vmap address via vmap_size() and vmap_to_page().
The legacy GFN-mapped path continues to support only a single ioreq
page. For domains whose vCPU count exceeds PAGE_SIZE/sizeof(ioreq_t),
hvm_map_ioreq_gfn() returns -EOPNOTSUPP. Those domains need to use the
resource mapping interface. This also avoids fragmentation when
allocating multiple slots from the GFN pool. The GFN path uses vmap()
for the Xen-side mapping, consistent with ioreq_server_alloc_mfn(),
allowing vmap_to_page() to recover the page during teardown.

Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
---
Changes in v4:
- Dropped the multi-page support for the legacy GFN-mapped path
  - When 'nr_ioreq_pages(d) > 1' -> -EOPNOTSUPP
  - But now also use vmap(), same as in resource mapping path, so new
    s->ioreq pointer is used in either case
  - Mirror exactly what prepare_ring_for_helper/destroy_ring_for_helper
    is doing except the __map_domain_page_global (replaced by
    vmap/vunmap)
- Replaced xvzalloc_array() by xvmalloc_array() -> No need to have mfns
  array zero'ed
- Inverted logic in ioreq_server_alloc_mfn() and ioreq_server_free_mfn()
  to check for 'if (buf)' (same as in the GFN-mapped path)
- Fixed ioreq_server_alloc_mfn -> Correctly call alloc_domheap_page +
  get_page_and_type
- Fixed error handling and teardown path to correctly call
  put_page_alloc_ref + put_page_and_type just like for the bufioreq
- Kept shared_iopage_t so QEMU, varstored, etc. can just reference into
  it via p->ioreq[cpu_id] -> No modification needed
---
 xen/arch/x86/hvm/ioreq.c | 153 ++++++++++++++++++++++++++++++++----
 xen/common/ioreq.c       | 166 ++++++++++++++++++++++++++++++++-------
 xen/include/xen/ioreq.h  |  10 ++-
 3 files changed, 286 insertions(+), 43 deletions(-)

diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c
index 355b2ba12c..ec4f210768 100644
--- a/xen/arch/x86/hvm/ioreq.c
+++ b/xen/arch/x86/hvm/ioreq.c
@@ -15,6 +15,7 @@
 #include <xen/sched.h>
 #include <xen/softirq.h>
 #include <xen/trace.h>
+#include <xen/vmap.h>
 #include <xen/vpci.h>
 
 #include <asm/hvm/emulate.h>
@@ -123,9 +124,10 @@ static void hvm_free_ioreq_gfn(struct ioreq_server *s, gfn_t gfn)
 
 static void hvm_unmap_ioreq_gfn(struct ioreq_server *s, bool buf)
 {
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
-
+    if ( buf )
     {
+        struct ioreq_page *iorp = &s->bufioreq;
+
         if ( gfn_eq(iorp->gfn, INVALID_GFN) )
             return;
 
@@ -134,16 +136,33 @@ static void hvm_unmap_ioreq_gfn(struct ioreq_server *s, bool buf)
 
         hvm_free_ioreq_gfn(s, iorp->gfn);
         iorp->gfn = INVALID_GFN;
+        return;
     }
+
+    if ( gfn_eq(s->ioreq_gfn, INVALID_GFN) )
+        return;
+
+    put_page_and_type(vmap_to_page((void *)s->ioreq));
+    vunmap(s->ioreq);
+    s->ioreq = NULL;
+
+    hvm_free_ioreq_gfn(s, s->ioreq_gfn);
+    s->ioreq_gfn = INVALID_GFN;
 }
 
 static int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
 {
     struct domain *d = s->target;
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
+    gfn_t base_gfn;
+    struct page_info *pg;
+    p2m_type_t p2mt;
+    mfn_t mfn;
     int rc;
 
+    if ( buf )
     {
+        struct ioreq_page *iorp = &s->bufioreq;
+
         if ( iorp->page )
         {
             /*
@@ -173,35 +192,141 @@ static int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
 
         return rc;
     }
+
+    if ( s->ioreq )
+    {
+        /*
+         * If pages have already been allocated (which will happen on
+         * demand if ioreq_server_get_frame() is called), then
+         * mapping a guest frame is not permitted.
+         */
+        if ( gfn_eq(s->ioreq_gfn, INVALID_GFN) )
+            return -EPERM;
+        return 0;
+    }
+
+    /*
+     * The legacy GFN path supports only a single ioreq page. Guests requiring
+     * more ioreq slots must use the resource mapping interface
+     * (XENMEM_acquire_resource).
+     */
+    if ( nr_ioreq_pages(d) > 1 )
+        return -EOPNOTSUPP;
+
+    if ( d->is_dying )
+        return -EINVAL;
+
+    base_gfn = hvm_alloc_ioreq_gfn(s);
+
+    if ( gfn_eq(base_gfn, INVALID_GFN) )
+        return -ENOMEM;
+
+    /*
+     * The page management is the same as prepare_ring_for_helper(), but vmap()
+     * is used instead of __map_domain_page_global() to be consistent with
+     * ioreq_server_alloc_mfn(), which uses vmap() to map potentially multiple
+     * pages. This also allows vmap_to_page() to recover the struct page_info *
+     * from s->ioreq during teardown.
+     */
+    rc = check_get_page_from_gfn(d, base_gfn, false, &p2mt, &pg);
+    if ( rc )
+    {
+        if ( rc == -EAGAIN )
+            rc = -ENOENT;
+        goto fail;
+    }
+
+    if ( !get_page_type(pg, PGT_writable_page) )
+    {
+        put_page(pg);
+        rc = -EINVAL;
+        goto fail;
+    }
+
+    mfn = page_to_mfn(pg);
+    s->ioreq = vmap(&mfn, 1);
+    if ( !s->ioreq )
+    {
+        put_page_and_type(pg);
+        rc = -ENOMEM;
+        goto fail;
+    }
+
+    s->ioreq_gfn = base_gfn;
+    return 0;
+
+ fail:
+    hvm_free_ioreq_gfn(s, base_gfn);
+    return rc;
 }
 
 static void hvm_remove_ioreq_gfn(struct ioreq_server *s, bool buf)
 {
     struct domain *d = s->target;
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
+    struct page_info *pg;
+    void *va;
+    gfn_t gfn;
 
-    if ( gfn_eq(iorp->gfn, INVALID_GFN) )
-        return;
+    if ( buf )
+    {
+        struct ioreq_page *iorp = &s->bufioreq;
+
+        if ( gfn_eq(iorp->gfn, INVALID_GFN) )
+            return;
+
+        gfn = iorp->gfn;
+        pg = iorp->page;
+        va = iorp->va;
+    }
+    else
+    {
+        if ( gfn_eq(s->ioreq_gfn, INVALID_GFN) )
+            return;
 
-    if ( p2m_remove_page(d, iorp->gfn, page_to_mfn(iorp->page), 0) )
+        gfn = s->ioreq_gfn;
+        pg = vmap_to_page(s->ioreq);
+        va = s->ioreq;
+    }
+
+    if ( p2m_remove_page(d, gfn, page_to_mfn(pg), 0) )
         domain_crash(d);
-    clear_page(iorp->va);
+    clear_page(va);
 }
 
 static int hvm_add_ioreq_gfn(struct ioreq_server *s, bool buf)
 {
     struct domain *d = s->target;
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
+    struct page_info *pg;
+    void *va;
+    gfn_t gfn;
     int rc;
 
-    if ( gfn_eq(iorp->gfn, INVALID_GFN) )
-        return 0;
+    if ( buf )
+    {
+        struct ioreq_page *iorp = &s->bufioreq;
+
+        if ( gfn_eq(iorp->gfn, INVALID_GFN) )
+            return 0;
+
+        gfn = iorp->gfn;
+        pg = iorp->page;
+        va = iorp->va;
+    }
+    else
+    {
+        if ( gfn_eq(s->ioreq_gfn, INVALID_GFN) )
+            return 0;
+
+        gfn = s->ioreq_gfn;
+        pg = vmap_to_page(s->ioreq);
+        va = s->ioreq;
+    }
 
-    clear_page(iorp->va);
+    clear_page(va);
 
-    rc = p2m_add_page(d, iorp->gfn, page_to_mfn(iorp->page), 0, p2m_ram_rw);
+    rc = p2m_add_page(d, gfn, page_to_mfn(pg), 0, p2m_ram_rw);
     if ( rc == 0 )
-        paging_mark_pfn_dirty(d, _pfn(gfn_x(iorp->gfn)));
+        paging_mark_pfn_dirty(d, _pfn(gfn_x(gfn)));
 
     return rc;
 }
diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
index 2e284ad26c..5a09e2ba36 100644
--- a/xen/common/ioreq.c
+++ b/xen/common/ioreq.c
@@ -26,6 +26,8 @@
 #include <xen/paging.h>
 #include <xen/sched.h>
 #include <xen/trace.h>
+#include <xen/vmap.h>
+#include <xen/xvmalloc.h>
 
 #include <asm/guest_atomics.h>
 #include <asm/ioreq.h>
@@ -95,12 +97,10 @@ static struct ioreq_server *get_ioreq_server(const struct domain *d,
 
 static ioreq_t *get_ioreq(struct ioreq_server *s, struct vcpu *v)
 {
-    shared_iopage_t *p = s->ioreq.va;
-
     ASSERT((v == current) || !vcpu_runnable(v));
-    ASSERT(p != NULL);
+    ASSERT(s->ioreq != NULL);
 
-    return &p->vcpu_ioreq[v->vcpu_id];
+    return &s->ioreq[v->vcpu_id];
 }
 
 /*
@@ -260,10 +260,16 @@ bool vcpu_ioreq_handle_completion(struct vcpu *v)
 
 static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
 {
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
-    struct page_info *page;
+    unsigned int i, nr_pages;
+    mfn_t *mfns;
+    int rc;
 
+    /* bufioreq: single page allocation */
+    if ( buf )
     {
+        struct ioreq_page *iorp = &s->bufioreq;
+        struct page_info *page;
+
         if ( iorp->page )
         {
             /*
@@ -294,26 +300,92 @@ static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
 
         iorp->va = __map_domain_page_global(page);
         if ( !iorp->va )
-            goto fail;
+        {
+            put_page_alloc_ref(page);
+            put_page_and_type(page);
+            return -ENOMEM;
+        }
 
         iorp->page = page;
         clear_page(iorp->va);
         return 0;
     }
 
- fail:
-    put_page_alloc_ref(page);
-    put_page_and_type(page);
+    /* ioreq: multi-page allocation */
+    if ( s->ioreq )
+    {
+        /*
+         * If a guest frame has already been mapped (which may happen
+         * on demand if ioreq_server_get_info() is called), then
+         * allocating a page is not permitted.
+         */
+        if ( !gfn_eq(s->ioreq_gfn, INVALID_GFN) )
+            return -EPERM;
+
+        return 0;
+    }
+
+    nr_pages = nr_ioreq_pages(s->target);
+    mfns = xvmalloc_array(mfn_t, nr_pages);
+
+    if ( !mfns )
+        return -ENOMEM;
+
+    for ( i = 0; i < nr_pages; i++ )
+    {
+        struct page_info *pg = alloc_domheap_page(s->target,
+                                                  MEMF_no_refcount);
+
+        rc = -ENOMEM;
+        if ( !pg )
+            goto fail_pages;
+
+        if ( !get_page_and_type(pg, s->target, PGT_writable_page) )
+        {
+            /*
+             * The domain can't possibly know about this page yet, so
+             * failure here is a clear indication of something fishy
+             * going on.
+             */
+            domain_crash(s->emulator);
+            rc = -ENODATA;
+            goto fail_pages;
+        }
+
+        mfns[i] = page_to_mfn(pg);
+    }
+
+    s->ioreq = vmap(mfns, nr_pages);
+    if ( !s->ioreq )
+    {
+        rc = -ENOMEM;
+        i = nr_pages;
+        goto fail_pages;
+    }
+
+    memset(s->ioreq, 0, nr_pages * PAGE_SIZE);
+    xvfree(mfns);
+    return 0;
 
-    return -ENOMEM;
+ fail_pages:
+    while ( i-- > 0 )
+    {
+        struct page_info *pg = mfn_to_page(mfns[i]);
+
+        put_page_alloc_ref(pg);
+        put_page_and_type(pg);
+    }
+    xvfree(mfns);
+    return rc;
 }
 
 static void ioreq_server_free_mfn(struct ioreq_server *s, bool buf)
 {
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
-    struct page_info *page = iorp->page;
-
+    if ( buf )
     {
+        struct ioreq_page *iorp = &s->bufioreq;
+        struct page_info *page = iorp->page;
+
         if ( !page )
             return;
 
@@ -324,6 +396,23 @@ static void ioreq_server_free_mfn(struct ioreq_server *s, bool buf)
 
         put_page_alloc_ref(page);
         put_page_and_type(page);
+        return;
+    }
+
+    if ( s->ioreq )
+    {
+        unsigned int i, nr_pages = vmap_size(s->ioreq);
+
+        for ( i = 0; i < nr_pages; i++ )
+        {
+            struct page_info *pg = vmap_to_page((void *)s->ioreq +
+                                                i * PAGE_SIZE);
+
+            put_page_alloc_ref(pg);
+            put_page_and_type(pg);
+        }
+        vunmap(s->ioreq);
+        s->ioreq = NULL;
     }
 }
 
@@ -337,11 +426,29 @@ bool is_ioreq_server_page(struct domain *d, const struct page_info *page)
 
     FOR_EACH_IOREQ_SERVER(d, id, s)
     {
-        if ( (s->ioreq.page == page) || (s->bufioreq.page == page) )
+        if ( s->bufioreq.page == page )
         {
             found = true;
             break;
         }
+
+        if ( s->ioreq )
+        {
+            unsigned int i;
+
+            for ( i = 0; i < nr_ioreq_pages(d); i++ )
+            {
+                if ( vmap_to_page((char *)s->ioreq +
+                                  i * PAGE_SIZE) == page )
+                {
+                    found = true;
+                    break;
+                }
+            }
+
+            if ( found )
+                break;
+        }
     }
 
     rspin_unlock(&d->ioreq_server.lock);
@@ -354,7 +461,7 @@ static void ioreq_server_update_evtchn(struct ioreq_server *s,
 {
     ASSERT(spin_is_locked(&s->lock));
 
-    if ( s->ioreq.va != NULL )
+    if ( s->ioreq != NULL )
     {
         ioreq_t *p = get_ioreq(s, sv->vcpu);
 
@@ -594,7 +701,7 @@ static int ioreq_server_init(struct ioreq_server *s,
     INIT_LIST_HEAD(&s->ioreq_vcpu_list);
     spin_lock_init(&s->bufioreq_lock);
 
-    s->ioreq.gfn = INVALID_GFN;
+    s->ioreq_gfn = INVALID_GFN;
     s->bufioreq.gfn = INVALID_GFN;
 
     rc = ioreq_server_alloc_rangesets(s, id);
@@ -773,7 +880,7 @@ static int ioreq_server_get_info(struct domain *d, ioservid_t id,
     }
 
     if ( ioreq_gfn )
-        *ioreq_gfn = gfn_x(s->ioreq.gfn);
+        *ioreq_gfn = gfn_x(s->ioreq_gfn);
 
     if ( HANDLE_BUFIOREQ(s) )
     {
@@ -816,26 +923,29 @@ int ioreq_server_get_frame(struct domain *d, ioservid_t id,
     if ( rc )
         goto out;
 
-    switch ( idx )
+    if ( idx == XENMEM_resource_ioreq_server_frame_bufioreq )
     {
-    case XENMEM_resource_ioreq_server_frame_bufioreq:
         rc = -ENOENT;
         if ( !HANDLE_BUFIOREQ(s) )
             goto out;
 
         *mfn = page_to_mfn(s->bufioreq.page);
         rc = 0;
-        break;
-
-    case XENMEM_resource_ioreq_server_frame_ioreq(0):
-        *mfn = page_to_mfn(s->ioreq.page);
-        rc = 0;
-        break;
+    }
+    else if ( idx >= XENMEM_resource_ioreq_server_frame_ioreq(0) &&
+              idx < XENMEM_resource_ioreq_server_frame_ioreq(nr_ioreq_pages(d)) )
+    {
+        unsigned int page_idx = idx - XENMEM_resource_ioreq_server_frame_ioreq(0);
 
-    default:
         rc = -EINVAL;
-        break;
+        if ( s->ioreq )
+        {
+            *mfn = vmap_to_mfn((void *)s->ioreq + page_idx * PAGE_SIZE);
+            rc = 0;
+        }
     }
+    else
+        rc = -EINVAL;
 
  out:
     rspin_unlock(&d->ioreq_server.lock);
diff --git a/xen/include/xen/ioreq.h b/xen/include/xen/ioreq.h
index e86f0869fa..41650a59ca 100644
--- a/xen/include/xen/ioreq.h
+++ b/xen/include/xen/ioreq.h
@@ -19,9 +19,16 @@
 #ifndef __XEN_IOREQ_H__
 #define __XEN_IOREQ_H__
 
+#include <xen/macros.h>
 #include <xen/sched.h>
 
 #include <public/hvm/dm_op.h>
+#include <public/hvm/ioreq.h>
+
+static inline unsigned int nr_ioreq_pages(const struct domain *d)
+{
+    return DIV_ROUND_UP(d->max_vcpus, PAGE_SIZE / sizeof(ioreq_t));
+}
 
 struct ioreq_page {
     gfn_t gfn;
@@ -45,7 +52,8 @@ struct ioreq_server {
     /* Lock to serialize toolstack modifications */
     spinlock_t             lock;
 
-    struct ioreq_page      ioreq;
+    ioreq_t                *ioreq;
+    gfn_t                  ioreq_gfn;
     struct list_head       ioreq_vcpu_list;
     struct ioreq_page      bufioreq;
 
-- 
2.51.0



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Mar 05 13:12:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 13:12:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246612.1545725 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy8VZ-0001Wq-Pu; Thu, 05 Mar 2026 13:12:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246612.1545725; Thu, 05 Mar 2026 13: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 1vy8VZ-0001Wj-Lw; Thu, 05 Mar 2026 13:12:53 +0000
Received: by outflank-mailman (input) for mailman id 1246612;
 Thu, 05 Mar 2026 13:12: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=nfX/=BF=citrix.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1vy8VZ-0001Wd-3a
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 13:12:53 +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 009e4412-1895-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 14:12:47 +0100 (CET)
Received: from LV3PR03MB7707.namprd03.prod.outlook.com (2603:10b6:408:28b::21)
 by LV3PR03MB7431.namprd03.prod.outlook.com (2603:10b6:408:194::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18; Thu, 5 Mar
 2026 13:12:42 +0000
Received: from LV3PR03MB7707.namprd03.prod.outlook.com
 ([fe80::97e8:ef9c:9031:e2bf]) by LV3PR03MB7707.namprd03.prod.outlook.com
 ([fe80::97e8:ef9c:9031:e2bf%6]) with mapi id 15.20.9678.017; Thu, 5 Mar 2026
 13:12:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 009e4412-1895-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=h+4q2ul463yB1r+jp0ZXnDCmKvIjfDlBKiYjDv87G7l3ZWesiPatJhMUvLLj/chVb+YHnBjkNIdzIyDztE9tP0KJOGpyxRKYIbJyCHO8PFsVmITdrRgXQmApEZE+NTQWMNzSCIMEY/VaDwQTwI8mC75PBxafkXeCfyWF3yi/X+c0+yJ0o1f08OZb+eldakNkz/JcHePu6y7jbPaLBQjE2fmllyyZnXRGTMnfJbli0U185nlMzrzUEk9xGuoqDCNlSW1aM4jiOfHeiCGAp4a9Yba9jINXBGdj5QPr6DGw4qzt5rQxZ/VyqwRqpd34Rg4jprXjMRs41AtjDbJCAcULFg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YDr9PlBIUI66HZ5WEV0DH5b5E12lb28oTqCBCMj4qtQ=;
 b=r/ZLF6fcI90ySUjJB5s3kbyiOsisOSaAlR6iYG0/gRwsx3PJg4LNCSoMRPhkxhAyVWMzn6L964Evi4GELpJ+0HqzFVNka/vs7XieKvIRxdqegarMw06+Vs6af/FKbCKpUK5xlc/qFuvwBBbLM7bNt+Db7D/d164kW5TgqVo1QvmMInYvj+NSIGjAnKj3Oj9NfRgh9FQJT3Kubxqwjgx4WCNIuWaUU/c8Rxtj07KKzfNCMZkrL6Qat32liWZN6IqR2N791IAInZJwlvNlnbBOXmr0n6OUmd6I6jpjL22hzaSgXasLOgm8eOe3APHLggpj8q4pgptUma75lGQcEEX94A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YDr9PlBIUI66HZ5WEV0DH5b5E12lb28oTqCBCMj4qtQ=;
 b=lDFq55BsdHnXO5QoVJhSgGQoTlfLrZVaOwU256S1Kt4ninUrMdF9RwL5wgwSKTxLNqvq5yfCD79G0b+yPNuSYCmegah0HvcR47fo19NTJkXY1AY9vyybTO53xTaSHMbVbuhej5jwAGlZ7sO1r7BSIhxEFfbomvYjjGjBRX8zP+A=
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, Roger Pau Monne <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Marcus Granado
	<Marcus.Granado@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Alejandro Vallejo
	<Alejandro.GarciaVallejo@amd.com>
Subject: RE: [PATCH v4 03/10] xen/page_alloc: Implement NUMA-node-specific
 claims
Thread-Topic: [PATCH v4 03/10] xen/page_alloc: Implement NUMA-node-specific
 claims
Thread-Index: AQHcpy5A2UpiyJQ97kePD66zF1miC7Wfzj4AgAAAi7A=
Date: Thu, 5 Mar 2026 13:12:42 +0000
Message-ID:
 <LV3PR03MB7707BD13DBB8516C60B06927877DA@LV3PR03MB7707.namprd03.prod.outlook.com>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
 <6927e45bf7c2ce56b8849c16a2024edb86034358.1772098423.git.bernhard.kaindl@citrix.com>
 <1497b37d-f47a-41c6-8037-a00a555d13a0@suse.com>
In-Reply-To: <1497b37d-f47a-41c6-8037-a00a555d13a0@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: LV3PR03MB7707:EE_|LV3PR03MB7431:EE_
x-ms-office365-filtering-correlation-id: 28054244-f50a-40b3-f13d-08de7ab8e28a
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:
 IFoWmQ86kvPNLsr53Co5myGvumCPIDJJ/nVsIAYvPlErrVHxEzd8Y1eNhP6rWCLe9gVOjaSRXH6jf40IRdjy2uZEPUrBw06UhKX5UQpYJg6rDUhzhzPEw1tYOJRepR4NJuDmcOyTNW2ajXWtGxFwg67HP1eFiPo6+T7WDCiSN4vHr0dKupAvX8cgGWI2j4UZ+peh0pnhlAX6kC51t3aTZjFFukUre2DXzw3hqzEHDcVBWpIw0/xr6dygJmUhOfqaGHK1h71aUcOY3OwZVZm1NTagNGVIEoekJSLTDN76U+d67+W5iNwdNNIn9nkVkQHWCeXrta+71tDeARSQcRMVmbBzf+rpFnCw9zuII7SLbrZVeZ8oMGcEHd+HYC4KRMF2k4Gn4TuojWUQaIJGlf/gjXE9/yj21a4ANoj4MIHLRmJ3rOpdZMfKPNHu02nHVixrGVNPkNKbTeUkE7JTn9WNpE6wZBFJSYToBfBp4+TaGGG+Eek6eOykZpTm3qS9iAG1LaiG+QOdNDbN/JQYt7yzCXhQhNZUltgyy1fceAl9AKOelEJduSZnYCczPKeC6ZFpgP9LK29bjduqBS+ntJAK7SK0ROugg4RoiSsI84365cAVHB2crvEc3zGW0swDSsy+BJgiWQ+X90KTQb4rtXJi+7agDeVMdo3fKpz6uUDUd4GKmzhst+7T6qfYQwRqJanGE6rrtLuiC+etkYjmOPOxmXAAKvKPeo6u/9dc6dlLGUjiFoLHEKhQaGw14KKS4mLE
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR03MB7707.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?Q29MRlVPWVkycUIwejRlSElJd1RwNW9tNmF1dW94V2RmOGtKbDAzSDdQM080?=
 =?utf-8?B?UTNGQ2hIT3JNVkk0dVFlUkJLQm51YSt2UjFJWE5oUDBOUFVKVGpDbWRtdWdK?=
 =?utf-8?B?MllITnVCTldSMHlLSnM0ekk5dE5wMFYvYmtVSkViTWUxYThKSUpyaVRzdEY3?=
 =?utf-8?B?RXcwaFFwVWlqUW4vcEVSbVBnQ2M4R0krOVB3TnlzMWVaVk9sSTVTUzB2MWc5?=
 =?utf-8?B?b1h4SThZTHN6clRmRVoxV0VPZUt5T0hVT2hUQ3BaQWVKZEFBUUcxVi9XOWp4?=
 =?utf-8?B?L04xTmFCMVlFN2Vib3lJZ1pwaHlUczY5MEQ2bEZoTTlRQXMwSGdMbENTU0tL?=
 =?utf-8?B?eGxwOXNUK3dLUG5CS0NMeHcyMzM3MWVHeThScENaTEVDSmhzVU9EcmVaQnor?=
 =?utf-8?B?NW8ya2pxb3VOVitlWFVwd1ZjSnpvSnBCbkRsL3VZV1FMczNpc2FJeEFrVWgr?=
 =?utf-8?B?bE1BdTM3WDhzOEM3eFlaMGd6d3JvTlJhUHlyZm41SitPcHA2cEtVQ2xpS3hw?=
 =?utf-8?B?dk1zNndHdVhKUlhKbjZlK29TOWdibU9LUW9OOG1UQm1tOFpNRWd6cHpRWUM0?=
 =?utf-8?B?ME0za3ZRVXUzYm95emw1MXlrS0poNlFhbVkzZTJVVjhGSGkrYk5BSjNKbEtV?=
 =?utf-8?B?bXBCRHZ5SWJtUjZoUUhmR05sWmJzOFE0dmpHaFA5MjNFdDc5dXU4bU5FY05V?=
 =?utf-8?B?WklLRGw5cFpveUM2R29VM3loOWd1dktlYUZaQSs2WTNhMmdyNUZQeTFFaFBT?=
 =?utf-8?B?d2hMY1lwLy83NkViYVRaQ1p4R3d2VGZHY211WmR0UlVmaTQxM1FSZFN5WGE1?=
 =?utf-8?B?VXRvdExENXhCbmZrUjFTd053NXZzWXh1azlDaFkvTVpCMWozcWVscHpFVlVU?=
 =?utf-8?B?UXVqL2VBQU1oZURQSzNrZG1RYTNvWXRSbU40RFYwVnN2aWUyeTNvYzF1QmY1?=
 =?utf-8?B?VkNsVjdtVjFjLzRLdnVlSUkvL3ZJQUFyZ0hYdks5QXdFVnFIT1p6YzBCRjF4?=
 =?utf-8?B?LzlGYkgwWURicFlRWmdGQjdscGZhOVN1cFpiRHBiV0h1dWZobjEySnN6K0NT?=
 =?utf-8?B?YlE2dkJQNXV4eXZkQkZqcitHaW90SGVKZnZGY1FCdTJpaFlKaEhkNmUyZFly?=
 =?utf-8?B?dlNWNk9ONXZBODZEN1pEU1ZmVWQ1VkE1MTJ0Wk5DRXozZ0h5Y2hjK2pCQ0x1?=
 =?utf-8?B?NGlNZUtVa0hJeFd6UDlla1YxenpCR21QZDEzejZXcG5pelhyRmRncmRpdk9x?=
 =?utf-8?B?REkwZ0RBcWRoSHZ4Q1pIRy9DbUwyNGEzQnBaVENQb1M1Z2EvV2xvV05ZVnlH?=
 =?utf-8?B?UCszOHJJNWw4Y2ZhT2hKc2RiR0R3cGFpSHZaYUZvS0orSUNjNGxLT2liWHox?=
 =?utf-8?B?ZWFwcldYLzR4L3NDOTFvUVFWZUdPZHNMcXNOMnBFTHZacndMNE56SlBRcWZi?=
 =?utf-8?B?djFpRkpzaVYxSlR4UWJuK0ZBY0hEb2I1NDlsMjd6UWlyc0VqTE9tdGNSeXZH?=
 =?utf-8?B?TnB3d20venhVaTdkQ1JnUEwzSlU1U3JnZWtoMzQ2UkxwNTV4S3BHaHE1N2sw?=
 =?utf-8?B?Ly9jY2VVR3M1OXlVUk9CQmE4TVlBdkNFOGdxekpTTndySHdiTmFwRlNrcUI2?=
 =?utf-8?B?SEZveEhjOUJFbkk4bDNONzhvZ1U5Q2hZS3RlWnZBcExxMWZ3bzRMdjJrUzF4?=
 =?utf-8?B?M3NGTkhtai8xdW5kS3ZWRWtDZTdSd0Vua1UwUWs0NWIzL3B4ODRMdDcrcXdp?=
 =?utf-8?B?bnFZZ2RwRVhwc29mZDZUaTdybEZaOUdsaFBYa2RodHJVdE9HNTRaM3ROZW5m?=
 =?utf-8?B?cldjbzV6ZEExNzNHV3pqdDhGVVk5YnRSY3k1UUlXc0NJRkZxUytlK0g0WEF5?=
 =?utf-8?B?ZTczVjlSdGRmdHBtTDVyYjhjdVAwKy9kYlNtRStyUnE0TUY2ZWM3Z01xYzc4?=
 =?utf-8?B?TWxsYUhLV0NGby9hdWFpb2x2TW5HdjdSY2tscGYra2N0OGRPUmg2dE15cTM3?=
 =?utf-8?B?ZzJLaVZmbk12aFJrMnFNa3BOdlNna0NWYW55QkdZNGNrZGNsMnNhY2N0RU5P?=
 =?utf-8?B?dVQ4QjhaZ0tPRzJDNHU2UzZyRjZDWGY2d3JKN0dNaVRBNDZyY3BzQyt1REdi?=
 =?utf-8?B?eWpmN1hDU1ZSZjBEMStOK2VHUE1JWWNkZzVUT1ZSZFFoVC9sb3pzcHMxaFRi?=
 =?utf-8?B?QWpOWmY2cDFITEduRGhHbUlhVXVhRXFxYkgwZHZHRVZUZ3hwTTJydFZZOTQx?=
 =?utf-8?B?TEx6bzN5eW5CZ01vQmE4Tm9xQmJlU1dERndXZ1ljaTFCNmtWc2wxTk5ObnNr?=
 =?utf-8?B?OG94VEk5WTNNa29mVkMydE5UK09uN2xHYTluRjdMYjdUQlpVUkJYdz09?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: LV3PR03MB7707.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 28054244-f50a-40b3-f13d-08de7ab8e28a
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Mar 2026 13:12:42.5947
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: sBbeDQRxhrljUYdWnjGDRb9I+ky2luITdQLWh5lSm1bvtGhpS4i/JHyzxh/uPMY7CWZ4PZKL+oFmAtEOQ2kFYVownT60yPoJUUsX2/yApxs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR03MB7431

SmFuIEJldWxpY2ggd3JvdGU6DQo+ID4gKyAgICBkLT5jbGFpbV9ub2RlID0gTlVNQV9OT19OT0RF
Ow0KPiANCj4gSWYsIGFzIHRoZSBjb3ZlciBsZXR0ZXIgc2F5cywgdGhlIG5ldyBkb21jdGwgaXMg
Z29pbmcgdG8gYWxsb3cgY2xhaW1pbmcgZnJvbQ0KPiBtdWx0aXBsZSBub2RlcyBpbiBvbmUgZ28s
IHdoeSB3b3VsZCB0aGlzIG5ldyBmaWVsZCBzdGlsbCBiZSBuZWNlc3Nhcnk/DQoNClJvZ2VyIHJl
cXVlc3RlZCB0aGUgZG9tY3RsIEFQSSB0byBhbGxvdyBjbGFpbWluZyBmcm9tIG11bHRpcGxlIG5v
ZGVzIGluIG9uZSBnbw0KYW5kIGhlIHNwZWNpZmllZCB0aGF0IHdlIHNob3VsZCBmb2N1cyBvbiBn
ZXR0aW5nIHRoZSBpbXBsZW1lbnRhdGlvbiBmb3Igb25lDQpub2RlLXNwZWNpZmljIGNsYWltIGRv
bmUgZmlyc3QgYmVmb3JlIHdlIGRpdmUgaW50byBtdWx0aS1ub2RlIGNsYWltcyBjb2RlLg0KDQot
IEluc3RlYWQgb2YgYWRkaW5nL2xpbmtpbmcgYW4gYXJyYXkgb2YgY2xhaW1zIHRvIHN0cnVjdCBk
b21haW4sIHdlIGNhbiBrZWVwDQogIHVzaW5nIGQtPm91dHN0YW5kaW5nX3BhZ2VzIGZvciB0aGUg
c2luZ2xlLW5vZGUgY2xhaW0uDQoNCi0gVGhlcmUgYXJlIG51bWVyb3VzIGNvbW1lbnRzIGFuZCBx
dWVzdGlvbnMgZm9yIHRoaXMgbWluaW1hbCBpbXBsZW1lbnRhdGlvbi4NCiAgSWYgd2UnZCBhZGQg
bXVsdGktbm9kZSBjbGFpbXMgdG8gaXQsIHRoaXMgcmV2aWV3IG1heSBiZWNvbWUgZXZlbiBtb3Jl
IGNvbXBsZXguDQoNCi0gVGhlIHNpbmdsZS1ub2RlIGNsYWltcyBiYWNrZW5kIGNvbnRhaW5zIHRo
ZSBpbmZyYXN0cnVjdHVyZSBhbmQgbXVsdGktbm9kZQ0KICBjbGFpbXMgd291bGQgYmUgYW4gZXh0
ZW5zaW9uIG9uIHRvcCBvZiB0aGF0IGluZnJhc3RydWN0dXJlLg0KICANCldlJ3ZlIGEgdGhyZWFk
IHdoZXJlIEkgYWRkZWQgdGhlIGxpbmtzIHRvIHRoZSBwYXN0IGRpc2N1c3Npb24gaGVyZToNCmh0
dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAyNi0w
Mi9tc2cwMTQwMy5odG1sDQoNCj4gPiArc3RhdGljIHVuc2lnbmVkIGxvbmcgbm9kZV9vdXRzdGFu
ZGluZ19jbGFpbXNbTUFYX05VTU5PREVTXTsNCj4gDQo+IEhvdyBjb21lIHRoaXMgaXMgYmVpbmcg
YWRkZWQsIHJhdGhlciB0aGFuIGl0IHJlcGxhY2luZyBvdXRzdGFuZGluZ19jbGFpbXM/DQoNClRo
ZSBnbG9iYWwgb3V0c3RhbmRpbmdfY2xhaW1zIHZhcmlhYmxlIGNvdW50cyB0aGUgaG9zdC1sZXZl
bCBjbGFpbWVkIHBhZ2VzLg0KDQpJdCBoYXMgdGhlIHN1bSBvZiBhbGwgaG9zdC1sZXZlbCBjbGFp
bXMgdGhhdCBhcmUgbm90IHNwZWNpZmljIHRvIGEgTlVNQSBub2RlDQphbmQgYWxzbyB0aGUgc3Vt
IG9mIGFsbCBub2RlLXNwZWNpZmljIGNsYWltcyAoc2VlIG1vcmUgb24gdGhhdCBpbiBhbiBhbnN3
ZXINCnRvIGFub3RoZXIgcXVlc3Rpb24gZnVydGhlciBiZWxvdykuDQoNCklmIHdlIHdlcmUgdG8g
cmVwbGFjZSBpdCwgd2UnZCBub3QgaGF2ZSB0aGUgb3V0c3RhbmRpbmdfY2xhaW1zIGNvdW50ZXIs
DQp3aGljaCB3b3VsZCByZXN1bHQgaW4gbm90IHN1cHBvcnRpbmcgZ2xvYmFsIGNsYWltcyBhbnlt
b3JlIGluIFhlbi4NCg0KSWYgYSB0b29sc3RhY2sgd291bGQgd2FudCB0byBjbGFpbSBtb3JlIG1l
bW9yeSB0aGFuIGEgc2luZ2xlIE5VTUEgbm9kZQ0KaGFzLCBzb21lb25lIHdvdWxkIGhhdmUgdG8g
Z28gbG9vcCBvdmVyIGFsbCBOVU1BIG5vZGVzIHdpdGggZW5vdWdoIG1lbW9yeQ0KYW5kIHNwbGl0
IHRoZSBjbGFpbSBhY3Jvc3MgYSBudW1iZXIgb3IgcGVyLU5VTUEtbm9kZSBjbGFpbXMuDQoNCi0g
VGhpcyB3b3VsZCBiZSBsZXNzIGZsZXhpYmxlIHRoYW4gd2hhdCB3ZSBoYXZlIHdpdGggaXQ6IFdp
dGggaXQsIHdlIGNhbg0KICBzdGlsbCBzdXBwb3J0IGhvc3QtbGV2ZWwgY2xhaW1zIHdpdGhvdXQg
dGhvc2UgY2xhaW1zIGJlIHBsYWNlZCBvbg0KICBzcGVjaWZpYyBOVU1BIG5vZGVzLg0KDQotIFRo
aXMgYWxsb3dzIGZvciBtYW55IGRvbWFpbnMgdG8gYmUgYnVpbHQgaW4gcGFyYWxsZWwgd2hlcmUg
c29tZQ0KICBkb21haW5zIGFyZSBidWlsdCB3aXRoIGNsYWltcyBzcGVjaWZpYyB0byBzcGVjaWZp
YyBOVU1BIG5vZGVzLCB3aGlsZQ0KICBhbGxvd2luZyB0aGUgb3RoZXIgZG9tYWlucyBhcmUgYnVp
bHQgZHluYW1pY2FsbHkgYXQgYWxsb2NhdGlvbiB0aW1lDQogIGZyb20gYW55IHJlbWFpbmluZyBt
ZW1vcnkgd2hlcmV2ZXIgdGhhdCBtZW1vcnkgcmVtYWlucyB0byBiZSBhdmFpbGFibGUuDQogIA0K
LSBUaGVyZSBhcmUgdXNlIGNhc2VzIHdoZXJlIHRoZSBtZW1vcnkgb2Ygc29tZSBkb21haW5zIHNo
YWxsIGJlIHNwcmVhZA0KICBhY3Jvc3MgTlVNQSBub2RlcyB0byBoYXZlIHRoZSBtZW1vcnkgYmFu
ZHdpZHRoIG9mIHRob3NlIE5VTUEgbm9kZXMNCiAgYXZhaWxhYmxlIHRvIHRoZSBpbmRpdmlkdWFs
IHByb2Nlc3NlcyBpbiB0aGUgZ3Vlc3QgZG9tYWluIGJ1dCBzdGlsbA0KICB3YW50IHRoZSBhc3N1
cmFuY2Ugb2YgaG9zdC1sZXZlbCBjbGFpbXMgZm9yIGNsYWltZWQgbWVtb3J5IHdoZW4NCiAgY29u
c3RydWN0aW5nIG9mIG1hbnkgZG9tYWlucyBpbiBwYXJhbGxlbCBvbiBhIGhvc3QuDQoNCj4gPiAr
LyogUmV0dXJuIGF2YWlsYWJsZSBwYWdlcyBhZnRlciBzdWJ0cmFjdGluZyBjbGFpbWVkIHBhZ2Vz
ICovDQo+ID4gK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBhdmFpbGFibGVfYWZ0ZXJfY2xh
aW1zKHVuc2lnbmVkIGxvbmcNCj4gYXZhaWxfcGFnZXMsDQo+ID4gKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgY2xhaW1zKQ0K
PiA+ICt7DQo+ID4gKyAgICBCVUdfT04oY2xhaW1zID4gYXZhaWxfcGFnZXMpOw0KPiA+ICsgICAg
cmV0dXJuIGF2YWlsX3BhZ2VzIC0gY2xhaW1zOyAvKiBEdWUgdG8gdGhlIEJVR19PTiwgaXQgY2Fu
bm90IGJlIG5lZ2F0aXZlDQo+ICovDQo+ID4gK30NCj4gDQo+IEEgaGVscGVyIGZvciBhIHNpbXBs
ZSBzdWJ0cmFjdGlvbj8NCg0KSXQgaXMgYWJvdXQgbm90IGhhdmluZyB0byByZXBlYXQgdGhlIEJV
R19PTihjbGFpbXMgPiBhdmFpbF9wYWdlcykgZXZlcnl3aGVyZS4NCg0KQWxzbywgdGhlIG5hbWUg
b2YgdGhlIGhlbHBlciBtYWtlcyBjbGVhciB3aGF0IHRoZSByZXN1bHQgb2YgdGhlIGV4cHJlc3Np
b24gaXMsDQpTbyB3aGVuIHVzaW5nIGl0LCB0aGUgZmxvdyBvZiB0aGUgY29kZSBpcyBtb3JlIG5h
dHVyYWwgdG8gdW5kZXJzdGFuZC4NCg0KSGF2aW5nIHRvIHJlcGVhdCB0aGUgQlVHX09OKCkgZXZl
cnl3aGVyZSB3b3VsZCBtYWtlIHRoZSBjb2RlIGxlc3MgcmVhZGFibGUuDQpUaGUgQlVHX09OKCkg
aXMgZ29vZCB3aGVuIHJlZmFjdG9yaW5nIGFzIGEgZ3VhcmRyYWlsIHdoZW4geW91IGJyb2tlIHRo
ZSBjb2RlLg0KDQo+ID4gKy8qIEFuc3dlciBpZiBob3N0LWxldmVsIG1lbW9yeSBhbmQgY2xhaW1z
IHBlcm1pdCB0aGlzIHJlcXVlc3QgdG8gcHJvY2VlZCAqLw0KPiA+ICtzdGF0aWMgaW5saW5lIGJv
b2wgaG9zdF9hbGxvY2F0YWJsZV9yZXF1ZXN0KGNvbnN0IHN0cnVjdCBkb21haW4gKmQsDQo+ID4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50
IG1lbWZsYWdzLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGxvbmcgcmVxdWVzdCkNCj4gPiArew0KPiA+ICsgICAgdW5zaWduZWQgbG9u
ZyBhbGxvY2F0YWJsZV9wYWdlczsNCj4gPiArDQo+ID4gKyAgICBBU1NFUlQoc3Bpbl9pc19sb2Nr
ZWQoJmhlYXBfbG9jaykpOw0KPiA+ICsNCj4gPiArICAgIGFsbG9jYXRhYmxlX3BhZ2VzID0gYXZh
aWxhYmxlX2FmdGVyX2NsYWltcyh0b3RhbF9hdmFpbF9wYWdlcywNCj4gPiArICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRzdGFuZGluZ19jbGFpbXMpOw0K
PiA+ICsgICAgaWYgKCBhbGxvY2F0YWJsZV9wYWdlcyA+PSByZXF1ZXN0ICkNCj4gPiArICAgICAg
ICByZXR1cm4gdHJ1ZTsgLyogVGhlIG5vdCBjbGFpbWVkIHBhZ2VzIGFyZSBlbm91Z2ggdG8gcHJv
Y2VlZCAqLw0KPiA+ICsNCj4gPiArICAgIGlmICggIWQgfHwgKG1lbWZsYWdzICYgTUVNRl9ub19y
ZWZjb3VudCkgKQ0KPiA+ICsgICAgICAgIHJldHVybiBmYWxzZTsgLyogQ2xhaW1zIGFyZSBub3Qg
YXZhaWxhYmxlIGZvciB0aGlzIGFsbG9jYXRpb24gKi8NCj4gPiArDQo+ID4gKyAgICAvKiBUaGUg
ZG9tYWluJ3MgY2xhaW1zIGFyZSBhdmFpbGFibGUsIHJldHVybiB0cnVlIGlmIHN1ZmZpY2llbnQg
Ki8NCj4gPiArICAgIHJldHVybiByZXF1ZXN0IDw9IGFsbG9jYXRhYmxlX3BhZ2VzICsgZC0+b3V0
c3RhbmRpbmdfcGFnZXM7DQo+ID4gK30NCj4gDQo+IFRoaXMgb25seSB1c2VzIHZhcmlhYmxlcyB3
aGljaCBleGlzdGVkIGJlZm9yZSwgaS5lLiB0aGVyZSdzIG5vdGhpbmcgTlVNQS1pc2gNCj4gaW4g
aGVyZS4gV2hhdCdzIHRoZSBkZWFsPw0KDQpUaGUgZGVhbCBpcyB0aGF0IGZvciB0YWtpbmcgdW5j
bGFpbWVkIG1lbW9yeSBiZXlvbmQgdGhlIHJlbWFpbmluZyBjbGFpbXMNCkludG8gYWNjb3VudCBm
b3IgZGVjaWRpbmcgdGhhdCB0aGUgaG9zdCBoYXMgdXNhYmxlIG1lbW9yeSBmb3IgYSBkb21haW4g
d2l0aA0KYSBjbGFpbSwgdGhlIG5lZWRlZCBpZi1leHByZXNzaW9uIHdvdWxkIGJlIHF1aXRlIGNv
bXBsaWNhdGVkIHRvIHVuZGVyc3RhbmQuDQpXaGVuIGZhY3RvcmluZyB0aGlzIGxvZ2ljIGludG8g
YW4gaWYgZXhwcmVzc2lvbiB3aXRob3V0IGV4dHJhY3RpbmcgaXQgaW50bw0KYSBmdW5jdGlvbiwg
aXQgd291bGQgYmxvYXQgZmxvdyBhbGxvY19oZWFwX3BhZ2VzKCksIGVzcGVjaWFsbHkgaWYgb25l
IHdvdWxkDQp3YW50IHRvIGhhdmUgdGhlIGNvbW1lbnRzLiBJJ20gbm90IHN1cmUgaWYgdGhpcyBp
cyBhIGdvb2QgaWRlYS4NCg0KPiA+ICsvKiBBbnN3ZXIgaWYgbm9kZS1sZXZlbCBtZW1vcnkgYW5k
IGNsYWltcyBwZXJtaXQgdGhpcyByZXF1ZXN0IHRvIHByb2NlZWQgKi8NCj4gPiArc3RhdGljIGlu
bGluZSBib29sIG5vZGVfYWxsb2NhdGFibGVfcmVxdWVzdChjb25zdCBzdHJ1Y3QgZG9tYWluICpk
LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGludCBtZW1mbGFncywNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBsb25nIHJlcXVlc3QsDQo+ID4gKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZWlkX3Qgbm9kZSkNCj4gPiArew0KPiA+ICsg
ICAgdW5zaWduZWQgbG9uZyBhbGxvY2F0YWJsZV9wYWdlczsNCj4gPiArDQo+ID4gKyAgICBBU1NF
UlQoc3Bpbl9pc19sb2NrZWQoJmhlYXBfbG9jaykpOw0KPiA+ICsgICAgQVNTRVJUKG5vZGUgPCBN
QVhfTlVNTk9ERVMpOw0KPiA+ICsNCj4gPiArICAgIGFsbG9jYXRhYmxlX3BhZ2VzID0gYXZhaWxh
YmxlX2FmdGVyX2NsYWltcyhub2RlX2F2YWlsX3BhZ2VzKG5vZGUpLA0KPiA+ICsNCj4gbm9kZV9v
dXRzdGFuZGluZ19jbGFpbXMobm9kZSkpOw0KPiA+ICsgICAgaWYgKCBhbGxvY2F0YWJsZV9wYWdl
cyA+PSByZXF1ZXN0ICkNCj4gPiArICAgICAgICByZXR1cm4gdHJ1ZTsgLyogVGhlIG5vdCBjbGFp
bWVkIHBhZ2VzIGFyZSBlbm91Z2ggdG8gcHJvY2VlZCAqLw0KPiA+ICsNCj4gPiArICAgIGlmICgg
IWQgfHwgKG1lbWZsYWdzICYgTUVNRl9ub19yZWZjb3VudCkgfHwgKG5vZGUgIT0gZC0+Y2xhaW1f
bm9kZSkgKQ0KPiA+ICsgICAgICAgIHJldHVybiBmYWxzZTsgLyogQ2xhaW1zIGFyZSBub3QgYXZh
aWxhYmxlIGZvciB0aGlzIGFsbG9jYXRpb24gKi8NCj4gPiArDQo+ID4gKyAgICAvKiBUaGUgZG9t
YWluJ3MgY2xhaW1zIGFyZSBhdmFpbGFibGUsIHJldHVybiB0cnVlIGlmIHN1ZmZpY2llbnQgKi8N
Cj4gPiArICAgIHJldHVybiByZXF1ZXN0IDw9IGFsbG9jYXRhYmxlX3BhZ2VzICsgZC0+b3V0c3Rh
bmRpbmdfcGFnZXM7DQo+ID4gK30NCj4gDQo+IEFuZCB0aGlzIGlzIHRoZSBOVU1BIGNvdW50ZXJw
YXJ0LCBhbG1vc3QgaWRlbnRpY2FsIGluIHRoZSBiYXNpYyBsb2dpYy4gSWYNCg0KWWVzLCBhbmQg
dGhpcyBpcyBpbnRlbnRpb25hbDogVGhlIHNhbWUgc2ltcGxlIGNoZWNrIGp1c3Qgd2l0aCBwZXIt
bm9kZSBjbGFpbXMuDQoNCj4gKGZvciB3aGF0ZXZlciByZWFzb24pIGJvdGggYXJlIHJlYWxseSBu
ZWVkZWQsIEkgdGhpbmsgaXQgc2hvdWxkIGF0IGxlYXN0IGJlDQoNClRoZSByZWFzb24gaXMgdGhh
dCBzdGFraW5nIGNsYWltcyBpcyB0aGUgZWFzeSBwYXJ0LiBQcm90ZWN0aW5nIGNsYWltcyBpcyB0
aGUNCihhIGJpdCkgdHJpY2t5IHBhcnQsIHdoaWNoIGlzIHdoYXQgc3VjaCBmdW5jdGlvbnMgYXJl
IGhlbHBpbmcgd2l0aC4NCg0KPiBjb25zaWRlcmVkIHRvIGZvbGQgdGhlbSAod2l0aCBOVU1BX05P
X05PREUgaW5kaWNhdGluZyB0aGUgbm9uLU5VTUEgaW50ZW50KS4NCj4gSW4gZmFjdCB0aGUgbm9k
ZSAhPSBkLT5jbGFpbV9ub2RlIHdvdWxkIHByb2JhYmx5IGFsc28gYXBwbHkgdG8gdGhlIG5vbi1O
VU1BDQo+IHZhcmlhbnQgKGFzIGQtPmNsYWltX25vZGUgIT0gTlVNQV9OT19OT0RFKS4NCiANClRo
YXQncyBub3QgdHJ1ZTogVGhlIHN1bSBvZiBhbGwgbm9kZS1zcGVjaWZpYyBjbGFpbXMgc2hvdWxk
IGFsc28gYmUgcGFydA0Kb2YgdGhlIGdsb2JhbCBob3N0LWxldmVsIG91dHN0YW5kaW5nX2NsYWlt
cyBjb3VudGVyIHNvIHRoZSBob3N0LWxldmVsIGNoZWNrDQpvZiBhbiBhbGxvY2F0aW9uIG1heSBw
cm9jZWVkIHJlZ2FyZGluZyBjbGFpbXMgaW5jb3Jwb3JhdGVzIHRoZSBjaGVjayBpZg0Kbm9kZS1z
cGVjaWZpYyBjbGFpbXMgd291bGQgKGluIHRoZW9yeSkgYWxsb3cgYSBob3N0LWxldmVsIGFsbG9j
IHRvIHByb2NlZWQuDQoNClRoYXQgbWVhbnMgdGhhdCBmb3IgdGhlIGhvc3QtbGV2ZWwgY2xhaW1z
IHByb3RlY3Rpb24gY2hlY2sgZm9yIGEgZG9tYWluLA0KdGhlIGNsYWltcyBvZiB0aGUgZG9tYWlu
IG11c3QgYmUgYWNjb3VudGVkLCBldmVuIGlmIHRoZXkgYXJlIG5vZGUtc3BlY2lmaWMuDQoNClRo
dXMsIGBub2RlICE9IGQtPmNsYWltX25vZGVgIGRvZXMgbm90IGFwcGx5IGlmIGBub2RlICE9IE5V
TUFfTk9fTk9ERWAsDQpZZXMsIEkgc2hvdWxkIG1lcmdlIHRoZSBmdW5jdGlvbnMsIGJ1dCB0aGlz
IGNoZWNrIGlzIG9ubHkgZm9yIG5vZGUtY2xhaW1zLg0KDQo+IEFzIHRvIHRoZSBjb21tZW50cyBp
biBib3RoIGZ1bmN0aW9ucywgcGVyc29uYWxseSBJIHRoaW5rDQo+IHMvbm90IGNsYWltZWQvdW5j
bGFpbWVkLyB3b3VsZCBiZSBzbGlnaHRseSBtb3JlIGxvZ2ljYWwgdG8gZm9sbG93Lg0KPiANCj4g
SW4gYW55IGV2ZW50LCB0aGUgZmlyc3Qgb2YgdGhlc2UgZnVuY3Rpb24gbG9va3MgbGlrZSBpdCBj
b3VsZCBiZSBzcGxpdCBvdXQNCj4gaW4gYSBzZXBhcmF0ZSwgZWFybGllciBwYXRjaC4gVGhlbiAo
YXMgcGVyIGFib3ZlKSBpZGVhbGx5IGhlcmUgdGhhdCBmdW5jdGlvbg0KPiB3b3VsZCBzaW1wbHkg
YmUgZXh0ZW5kZWQgdG8gYmVjb21lIE5VTUEtY2FwYWJsZS4NCg0KWWVzIGluZGVlZCwgR29vZC4N
Cg0KPiA+ICsgICAgaWYgKCBkLT5vdXRzdGFuZGluZ19wYWdlcyA9PSAwICkNCj4gPiArICAgICAg
ICBkLT5jbGFpbV9ub2RlID0gTlVNQV9OT19OT0RFOyAvKiBDbGVhciBpZiBubyBvdXRzdGFuZGlu
ZyBwYWdlcyBsZWZ0DQo+IA0KPiBJIGZlYXIgSSBkb24ndCB1bmRlcnN0YW5kIHRoaXMuIElmIHRo
ZSBkb21haW4gaGFzIGNsYWltcyBvbiBvdGhlciBub2RlcywNCj4gd2h5IHdvdWxkIHdvdWxkIGl0
IGJlIHN3aXRjaGVkIGJhY2sgdG8gbm9uLU5VTUEgY2xhaW1zPw0KDQooIGQtPm91dHN0YW5kaW5n
X3BhZ2VzID09IDAgKSBtZWFucyBkIGhhcyBubyBjbGFpbSBsZWZ0OiBOb25lLWF0LWFsbC4NCkFz
IHRoZXJlIGlzIG5vbmUgbGVmdCwgbm90aW5nIGlzIHN3aXRjaGVkLCBjbGFpbXMgYXJlIHJlc2V0
IHRvIHRoZSBuby1jbGFpbSBzdGF0ZS4NCg0KPiA+IEBAIC01NjQsMTQgKzY0Miw0MSBAQCB2b2lk
IGNvbnN1bWVfb3V0c3RhbmRpbmdfY2xhaW1zKHN0cnVjdCBkb21haW4gKmQsDQo+IHVuc2lnbmVk
IGxvbmcgYWxsb2NhdGlvbikNCj4gPg0KPiA+ICAgICAgLyogT2YgY291cnNlLCB0aGUgZG9tYWlu
IGNhbiBvbmx5IHJlbGVhc2UgdXAgaXRzIG91dHN0YW5kaW5nIGNsYWltcyAqLw0KPiA+ICAgICAg
YWxsb2NhdGlvbiA9IG1pbihhbGxvY2F0aW9uLCBkLT5vdXRzdGFuZGluZ19wYWdlcyArIDBVTCk7
DQo+ID4gKw0KPiA+ICsgICAgaWYgKCBkLT5jbGFpbV9ub2RlICE9IE5VTUFfTk9fTk9ERSAmJiBk
LT5jbGFpbV9ub2RlICE9IGFsbG9jX25vZGUgKQ0KPiA+ICsgICAgew0KPiA+ICsgICAgICAgIC8q
DQo+ID4gKyAgICAgICAgICogVGhlIGRvbWFpbiBoYXMgYSBjbGFpbSBvbiBhIG5vZGUsIGJ1dCB0
aGUgYWxsb2MgaXMgb24gYSBkaWZmZXJlbnQNCj4gPiArICAgICAgICAgKiBub2RlLiBJZiBpdCB3
b3VsZCBleGNlZWQgdGhlIGRvbWFpbidzIG1heF9wYWdlcywgcmVkdWNlIHRoZSBjbGFpbQ0KPiA+
ICsgICAgICAgICAqIHVwIHRvIHRoZSBleGNlc3Mgb3ZlciBtYXhfcGFnZXMgc28gd2UgZG9uJ3Qg
cmVkdWNlIHRoZSBjbGFpbSBtb3JlDQo+ID4gKyAgICAgICAgICogdGhhbiB3ZSBoYXZlIHRvIHRv
IGhvbm9yIHRoZSBtYXhfcGFnZXMgbGltaXQuDQo+ID4gKyAgICAgICAgICovDQo+ID4gKyAgICAg
ICAgdW5zaWduZWQgbG9uZyBib29rZWRfcGFnZXMgPSBkb21haW5fdG90X3BhZ2VzKGQpICsgYWxs
b2NhdGlvbiArDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkLT5v
dXRzdGFuZGluZ19wYWdlczsNCj4gPiArICAgICAgICBpZiAoIGJvb2tlZF9wYWdlcyA8PSBkLT5t
YXhfcGFnZXMgKQ0KPiA+ICsgICAgICAgICAgICByZXR1cm47IC8qIGJvb2tlZCBpcyB3aXRoaW4g
bWF4X3BhZ2VzLCBubyBleGNlc3MsIGtlZXAgdGhlIGNsYWltDQo+ICovDQo+ID4gKw0KPiA+ICsg
ICAgICAgIC8qIEV4Y2VzcyBkZXRlY3RlZCwgcmVsZWFzZSB0aGUgZXhjZWVkaW5nIHBhZ2VzIGZy
b20gdGhlIGNsYWltZWQNCj4gbm9kZSAqLw0KPiA+ICsgICAgICAgIGFsbG9jYXRpb24gPSBtaW4o
YWxsb2NhdGlvbiwgYm9va2VkX3BhZ2VzIC0gZC0+bWF4X3BhZ2VzKTsNCj4gPiArICAgIH0NCj4g
PiAgICAgIHJlbGVhc2Vfb3V0c3RhbmRpbmdfY2xhaW1zKGQsIGFsbG9jYXRpb24pOw0KPiANCj4g
UGxlYXNlIGNhbiB0aGVyZSBiZSBhbm90aGVyIGJsYW5rIGxpbmUgYWJvdmUgdGhpcyBvbmU/DQo+
IA0KPiBXaHkgaXMgdGhlIGFkanVzdG1lbnQgbWFkZSBleGNsdWRlZCBmb3IgdGhlIE5VTUFfTk9f
Tk9ERSBjYXNlPyBUaGF0J3Mgb2RkIGluDQoNCldoZW4gdGhlIGRvbWFpbidzIGNsYWltIGlzIGds
b2JhbCwgdGhlIGFsbG9jYXRpb24ganVzdCBjb25zdW1lIGZyb20gdGhpcyBjbGFpbS4NCg0KPiBp
dHNlbGYsIGJ1dCBwYXJ0aWN1bGFybHkgd2l0aCByZWxlYXNlX291dHN0YW5kaW5nX2NsYWltcygp
IHBvc3NpYmx5IHN3aXRjaGluZyBhDQo+IGRvbWFpbiB0byBOVU1BX05PX05PREUuDQogDQpDb21t
ZW50ZWQgYWJvdmUsIGl0cyBub3Qgc3dpdGNoaW5nIHdpdGggemVybyBjbGFpbXMsIGl0IGp1c3Qg
cmVzZXRzIHRoZSBzdGF0ZS4NCg0KPiAgICAgICAgICAgICAgICAgICAgICAgICBQbHVzIHRoZSBj
YWxsZXIgbG9va3MgdG8gYmUgcGFzc2luZyBpbiB0aGUgYWN0dWFsIG5vZGUNCj4gbWVtb3J5IHdh
cyB0YWtlbiBmcm9tLCBub3Qgd2hhdCB0aGUgb3JpZ2luYWwgcmVxdWVzdCBzYWlkICh3aGljaCBp
cw0KPiBzcGVjaWZpY2FsbHkgcmVsZXZhbnQgd2hlbiB0aGUgcmVxdWVzdCBuYW1lZCBubyBwYXJ0
aWN1bGFyIG5vZGUpLg0KDQpGb3IgdGhpcyBjaGVjaywgdGhlIHRhcmdldCBvZiB0aGUgaW5pdGlh
bCBhbGxvY2F0aW9uIHJlcXVlc3QgZG9lcyBub3QgbWF0dGVyLg0KV2hhdCBtYXR0ZXJzIGhlcmUg
aXMgdGhhdCBmb3Igd2hhdGV2ZXIgcmVhc29uIHdoZW4gYW4gYWxsb2NhdGlvbiBlbmRzIHVwIG5v
dA0KYmVpbmcgbWFkZSBvbiBhIE5VTUEgbm9kZSB0aGUgZG9tYWluIGhhcyBhIG5vZGUtc3BlY2lm
aWMgY2xhaW0gb24sIGFuZCB0aGlzDQphbGxvY2F0aW9uIHdvdWxkIGV4Y2VlZCB0aGUgY2xhaW1l
ZCArIGFsbG9jYXRlZCBtZW1vcnkgYmV5b25kIGQtPm1heF9wYWdlcywgd2UNCnNob3VsZCByZWxl
YXNlIGFuZCBjb25zdW1lIHRoZSBzaXplIG9mIGNsYWltcyB0aGF0IHdvdWxkIGV4Y2VlZCBkLT5t
YXhfcGFnZXMuDQoNClRoZXJlIGlzIGEgYnVnIGhlcmUgdGhhdCBJIGFscmVhZHkgZml4IGluIG15
IGRyYWZ0IGZvciBhIHY1IHNlcmllczogSXQgbmVlZHMgdG8NClVzZSB0aGUgc2l6ZSBvZiB0aGUg
ZnVsbCBhbGxvY2F0aW9uIHRvIGNhbGN1bGF0ZSB0aGUgZXhjZXNzIGJleW9uZCBkLT5tYXhfcGFn
ZXMsDQpub3QgdGhlIG1pbigpIG9mIHRoZSBhbGxvY2F0aW9uIHNpemUgYW5kIGQtPm91dHN0YW5k
aW5nX2NsYWltcy4gV2lsbCBiZSBmaXhlZC4NCg0KPiA+ICsgLyogV2hlbiByZWxlYXNpbmcgYSBj
bGFpbSwgdGhlIG5vZGUgbXVzdCBiZSBOVU1BX05PX05PREUgKGl0IGlzIG5vdCB1c2VkKSAqLw0K
PiANCj4gV2h5IHdvdWxkIHRoaXMgYmU/DQoNCkkgbmVlZCB0byBmaXggdGhlIGNvbW1lbnQ6IEl0
IHNob3VsZCBzYXkgInJlc2V0dGluZyIuIFdoZW4gcmVzZXR0aW5nIGNsYWltcyB0byAwLA0Kd2hp
Y2ggaXMgZG9uZSBieSBsaWJ4ZW5ndWVzdCBhZnRlciBpdCBoYXMgY29tcGxldGVkIHBvcHVsYXRp
bmcgdGhlIGd1ZXN0IG1lbW9yeSwNCndlIGFyZSBub3QgcGFzc2luZyBhIE5VTUEgbm9kZSBhbmQg
YXMgdGhpcyBmdW5jdGlvbiByZWplY3RzIGFueSB1cGRhdGVzIG9mIGFuDQpleGlzdGluZyBjbGFp
bSBiZXNpZGVzIHJlc2V0dGluZyBpdCB1c2luZyAwLCB0aGUgcmVzZXQgc2hhbGwgYWx3YXlzIGFw
cGx5IHRvIGFsbA0KY2xhaW1zIG9mIHRoZSBkb21haW4sIGluZGVwZW5kZW50IHdoaWNoIGNsYWlt
cyBpdCBoYXMgKGV2ZW4gbXVsdGktbm9kZSBjbGFpbXMpLg0KUm9nZXIgYWRkZWQgdGhpcyBjaGVj
ayB0byBtYWtlIGl0IGNsZWFyIHRoYXQgd2UgZXhwZWN0IE5VTUFfTk9fTk9ERSB3aXRoIHRoaXMg
Y2FsbC4NCg0KPiA+ICAgICAgICAgIGlmICggKG1lbWZsYWdzICYgTUVNRl9leGFjdF9ub2RlKSAm
JiByZXFfbm9kZSAhPSBOVU1BX05PX05PREUgKQ0KPiA+ICAgICAgICAgICAgICByZXR1cm4gTlVM
TDsNCj4gDQo+IEFzIHBlciB0aGlzLCAuLi4NCj4gDQo+ID4gQEAgLTEwNDIsMTMgKzExNjQsOCBA
QCBzdGF0aWMgc3RydWN0IHBhZ2VfaW5mbyAqYWxsb2NfaGVhcF9wYWdlcygNCj4gPg0KPiA+ICAg
ICAgc3Bpbl9sb2NrKCZoZWFwX2xvY2spOw0KPiA+DQo+ID4gLSAgICAvKg0KPiA+IC0gICAgICog
Q2xhaW1lZCBtZW1vcnkgaXMgY29uc2lkZXJlZCB1bmF2YWlsYWJsZSB1bmxlc3MgdGhlIHJlcXVl
c3QNCj4gPiAtICAgICAqIGlzIG1hZGUgYnkgYSBkb21haW4gd2l0aCBzdWZmaWNpZW50IHVuY2xh
aW1lZCBwYWdlcy4NCj4gPiAtICAgICAqLw0KPiA+IC0gICAgaWYgKCAob3V0c3RhbmRpbmdfY2xh
aW1zICsgcmVxdWVzdCA+IHRvdGFsX2F2YWlsX3BhZ2VzKSAmJg0KPiA+IC0gICAgICAgICAgKCht
ZW1mbGFncyAmIE1FTUZfbm9fcmVmY291bnQpIHx8DQo+ID4gLSAgICAgICAgICAgIWQgfHwgZC0+
b3V0c3RhbmRpbmdfcGFnZXMgPCByZXF1ZXN0KSApDQo+ID4gKyAgICAvKiBQcm9jZWVkIGlmIGhv
c3QtbGV2ZWwgbWVtb3J5IGFuZCBjbGFpbXMgcGVybWl0IHRoaXMgcmVxdWVzdCB0bw0KPiBwcm9j
ZWVkICovDQo+ID4gKyAgICBpZiAoICFob3N0X2FsbG9jYXRhYmxlX3JlcXVlc3QoZCwgbWVtZmxh
Z3MsIHJlcXVlc3QpICkNCj4gDQo+IC4uLiBpbiB0aGUgTUVNRl9leGFjdF9ub2RlIGNhc2UgSSBz
ZWUgbGl0dGxlIHJlYXNvbiB0byBjaGVjayB0aGUgZ2xvYmFsIHZhbHVlIGhlcmUuDQoNCkFjaywg
aWYgKG1lbWZsYWdzICYgTUVNRl9leGFjdF9ub2RlKSwgd2UgY2FuIHNraXAgdGhlIGhvc3Qtd2lk
ZSBjaGVjayBpbmRlZWQsDQp3aGljaCB3b3VsZCBiZSBhbiBvcHRpbWlzYXRpb24gYXMgd2UnZCBu
b3QgaGF2ZSB0byBsb29rIGF0IHRoZSBob3N0LWxldmVsIGNvdW50ZXJzLg0KDQo+IEphbg0KDQpU
aGFua3MgZm9yIHRoaXMgcmV2aWV3LCBJJ2xsIGFwcGx5IHRob3NlIGNoYW5nZXMhDQpCZXJuaGFy
ZA0K


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 13:17:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 13:17:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246622.1545735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy8Zs-000254-88; Thu, 05 Mar 2026 13:17:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246622.1545735; Thu, 05 Mar 2026 13: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 1vy8Zs-00024x-5N; Thu, 05 Mar 2026 13:17:20 +0000
Received: by outflank-mailman (input) for mailman id 1246622;
 Thu, 05 Mar 2026 13: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=00Q8=BF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vy8Zr-00024r-4Y
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 13:17:19 +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 a1c965f1-1895-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 14:17:17 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4837907f535so73166405e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 05:17:17 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4851ad02eeesm31850625e9.19.2026.03.05.05.17.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Mar 2026 05:17: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: a1c965f1-1895-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772716636; x=1773321436; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qK3hnvp7XcWP7iJlZoXczRJnMIQA61rlvrgs0O3Qjro=;
        b=gKKqwp+mOabgy4sSe+9qrU1Hbao1myN/FSO2a0dOGXI9e5oxy/kPsvNRX7UvYsq2jW
         /WbSCqv42WD8j7B190uLbKvKy/KQnYJqj9E4Rtfcu8iAcZo7mockcUNVgdbqjN/e+Hu6
         sX1kU6vtoS/pKjrYPW7SFNDR6DxGD/IrnDcOibdL4OGqPywefhlMz/7WluMK0sXJcMOv
         04Ob0Vv/dUpmweeZii5WD18fSJy7a7/58zRZA5Wh3HFDmLpphuhr4lpSSum7zyElB37C
         SquYnH6st+JwPVrG3YulAjiVPs7mp7V/Vv43Wx+VbZvD5V5nFkdZ3CCIO+jeaQzgsL+9
         Ppjg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772716636; x=1773321436;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qK3hnvp7XcWP7iJlZoXczRJnMIQA61rlvrgs0O3Qjro=;
        b=oIy14jx2G2dGL7eGjGXdNDYCqNuMQBCNGTFFNFqrZfi7SiwhIWfMqthLIXk5rnE2ce
         tsNrx/r/+05bhXf8+iDHof0DzRV/v3FXS2l+wTzW2hxB9KyqtTN6tYqqagdUtiw28Ae7
         omd0SfoVKF2XGxW6/iJdzmSd10myXiUoZ3UZFirDpkVbVjuRLkaZNG/dhDiEtT6J8faq
         U558MtmEjaEGKx9gUAValHS+YpWQ/W8gVbcC63JcUXVLxX7XPKu0M+tDuy11aU8OMcLb
         Po4uHTbDfLkwkbEqmjpOXHcStq12U0VoNLhoUCqmriBlHY3VvD1Sky64mmjr4jzu7/Nz
         vi9g==
X-Forwarded-Encrypted: i=1; AJvYcCUFYxTghbtCH1bWZlZ7AZSFTKrgt0XSQPQLEpSIvtGydSwS1uiEjPW8L9e1cXB19BurTbSzfIhxvi8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyVO8glfxs5xlJ22JHo6RYj5qzUdP7nwchNJ7+X2lL2uq8SUVnK
	2Rl3A7z9vdbuDDK1Xn/kvIswJQ1ArgF7HbmhvlMUtEvjy791MBTb1Hx1l/yEi40PGg==
X-Gm-Gg: ATEYQzx+lZTdcVh5R05ibQT1E+Khbn0bSJe4Yuq0f7jwZRhsueIb5LKkvclOrTKKqg4
	UYMXrg64NT5FDKkiW92qhNeRXglBRBUuCrnFrgwvORuKIfdBGvXSRzzNm5Tp7BKkqHW5Gm12ijx
	y7SjqquMu5mODulT5lZyJNRx27b0XjcWhTlkq1uuesvONnNUBc7UWZvLRwygRjOxqc15sbBjju6
	ioBltWTRVrO6QAQH3g7od956RWBFAqXmBFXc3oxRRlJSmGYkoTaHCCEuh/Pyp1Uo2KZdBX+Ttvb
	WKswct5iWmuP0GFGU11QK5G23ippuEDR3im7L1YTzdUxAfvEOjQccX8NAkRbYGNZVe/ZxLzdoot
	hTK5bkttnJeBkF27Q5AdottaxfBchA8lK9jsW/IwCL8RSznE17mg4oR9AmYlakGcPwX4Y5FduaQ
	gpU+VMPAeJXWGcQXzLCTj24WxB1k3Jx2eEgsuPFIedolejVWcK+epKs0ikq3Hb++NBp6ID7h+jN
	CujDyazZVT7ydUySbSMcnozCw==
X-Received: by 2002:a05:600c:6098:b0:483:7f4e:fef6 with SMTP id 5b1f17b1804b1-485198899f3mr92595195e9.26.1772716636352;
        Thu, 05 Mar 2026 05:17:16 -0800 (PST)
Message-ID: <6db8d016-974e-4772-b0b5-ff5dd24ba6ba@suse.com>
Date: Thu, 5 Mar 2026 14:17:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/2] This patch just changes indentation, to make the
 next patch easier to review.
To: Julian Vetter <julian.vetter@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20260305130434.635276-1-julian.vetter@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260305130434.635276-1-julian.vetter@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.03.2026 14:04, Julian Vetter wrote:
> Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
> ---
> Changes in v4:
> - No changes to this patch

Not quite. The original subject (which already wasn't great) has disappeared,
and what previously was the description is now the title.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 13:36:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 13:36:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246640.1545748 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy8sE-00055a-RP; Thu, 05 Mar 2026 13:36:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246640.1545748; Thu, 05 Mar 2026 13:36:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy8sE-00055T-Ni; Thu, 05 Mar 2026 13:36:18 +0000
Received: by outflank-mailman (input) for mailman id 1246640;
 Thu, 05 Mar 2026 13:36: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=00Q8=BF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vy8sD-00055N-7Y
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 13:36:17 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 475ac266-1898-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 14:36:13 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-48374014a77so97281095e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 05:36: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-4851fae5dbdsm41110415e9.8.2026.03.05.05.36.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Mar 2026 05:36: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: 475ac266-1898-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772717773; x=1773322573; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TeN15VvfRLf2TeAbtoLUEDpP2YthgE2+O/U8siRzkGs=;
        b=H3m7VAItWJzBeTRQthVOiVkZ2Vxq8uRJDYtcEmGDwR0eJekc++kzpzlLRkBPPQ1KcT
         mrV366aYhWmU3ttLQ2rrAd9SAnkfMqVDGuD1qwhP/vOqa1ur5+L8D6fwwCmDH2uY92kk
         Xov/yJ6aCKNUDyBgUkgthnA+lnkWQKIFD2PeRXjmIiqLVpaMrKArs2Kd5lfeXCnD8nJg
         EnLK5Svv+b6/93xhaqfPB8y0OK1BDMLBdkxewJCaxdS2B7t/leH/IzkAx+2TWiFeOMzO
         Qp1NyVUfquwgvSV8AeVNRu45LJhKseMAAFpdMAN01BEbnmo3zIJ3beeLSQvz1w5w3I7J
         GFPA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772717773; x=1773322573;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TeN15VvfRLf2TeAbtoLUEDpP2YthgE2+O/U8siRzkGs=;
        b=vxEjIuD/eNyw+bYUIIznloyv10hLsfFvPjyrk5PBSqQyfZQ1HJtqCSfaCa8sFBotl8
         q8Mq5Vl4sy3rdOLzRSeUiDMqlp8DhWMsGgRkhgNEffTeSpyNx6/Og+78ugzXE3kLQtSv
         fMCxD9mKDA25U/9h1lJl5ymmy7zh++9WpEvCIqjBb3h6OjaoobLf7ouETj7ksnje58w4
         1DVsJYoOq1xwkuvVAZy2H5lkmK2QxJqMK5uZgOo06fnF9gqKIWXIaKyfsXQ/baq6r8Il
         ghTFaDyZbmQtzjAQ/TKQwFwKrsNSLGooShvk8GsjUmPbZscgs2cemnd1Z9gqvin5Tt/W
         kceg==
X-Forwarded-Encrypted: i=1; AJvYcCVN+g/AQXjeZ32leUNBGsdbGJ2k8hP1lVwkj75XI2hec3vSI3jSZ8I/aWsSiHOK2oJ9hToH3cUqLUY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzUf2JWpI3OF7mwzbZ2E0og5KCWAtjKO2HZvFtBdYRP+sFub1pA
	p8eV30v8UiqtrFsZwXLCrOKMWVWajuhUyYgI1ijWwe/juL9bkCcDXXgmmNjrOwhstw==
X-Gm-Gg: ATEYQzxWktgOvytHlS7OLSmlUMnk1OBzMwjMm1AwAIXSCpIntK93QDoYYV6EXi8eNQR
	V+jIRqWORb7VtJYSabDPlnx1Ul9sP80WsVQaM8J/v3xSZDvPqov2pJ+vSxLAGoIxByZ0sfanidd
	Zs1xMoilKYM6eS6xR9140uWRO/9OAiPjo2YsaKBD6+4P5rXNol0XQGHWcOGRk9EbWqFTDD5swzi
	UPtyHAjdkP+Kl6VuMFx3kl1fmkq96Q4ZHoMXepiqZxF2PYedNmwEW41YsWUGs6LsPl+PQb+m+Ru
	XbKSgfqsQhvo9I3X0XRPOEFvQZpO+C2GmLfyKfmUIjzdKrtFhwlDmN028Wtkq0nnXGj2e61w9xN
	4lWr8QtzTchbxfqhpc201oFnd2zpLqrB1WeGLc/0NtHXYUoEVL10jkaXHN3TFVSk9PUi1coNmvp
	RxKrXMVBr1A48LNd+X2eYwZm9pgIqMGFieq/FcwDZVjdy5NlZVIUlAlOH0yPTtYeBnMu/mg3ZAp
	M2QBgaVThPvvfd2Y5YeOgA5+w==
X-Received: by 2002:a05:600c:8b01:b0:477:7bca:8b2b with SMTP id 5b1f17b1804b1-485198554c3mr102428345e9.15.1772717773045;
        Thu, 05 Mar 2026 05:36:13 -0800 (PST)
Message-ID: <cea8125a-e111-4dd7-a314-4d04c7270b70@suse.com>
Date: Thu, 5 Mar 2026 14:36:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 03/10] xen/page_alloc: Implement NUMA-node-specific
 claims
To: Bernhard Kaindl <bernhard.kaindl@citrix.com>
Cc: Andrew Cooper <andrew.cooper@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Roger Pau Monne <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Marcus Granado <Marcus.Granado@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Alejandro Vallejo <Alejandro.GarciaVallejo@amd.com>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
 <6927e45bf7c2ce56b8849c16a2024edb86034358.1772098423.git.bernhard.kaindl@citrix.com>
 <1497b37d-f47a-41c6-8037-a00a555d13a0@suse.com>
 <LV3PR03MB7707BD13DBB8516C60B06927877DA@LV3PR03MB7707.namprd03.prod.outlook.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <LV3PR03MB7707BD13DBB8516C60B06927877DA@LV3PR03MB7707.namprd03.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.03.2026 14:12, Bernhard Kaindl wrote:
> Jan Beulich wrote:
>>> +    d->claim_node = NUMA_NO_NODE;
>>
>> If, as the cover letter says, the new domctl is going to allow claiming from
>> multiple nodes in one go, why would this new field still be necessary?
> 
> Roger requested the domctl API to allow claiming from multiple nodes in one go
> and he specified that we should focus on getting the implementation for one
> node-specific claim done first before we dive into multi-node claims code.
> 
> - Instead of adding/linking an array of claims to struct domain, we can keep
>   using d->outstanding_pages for the single-node claim.
> 
> - There are numerous comments and questions for this minimal implementation.
>   If we'd add multi-node claims to it, this review may become even more complex.
> 
> - The single-node claims backend contains the infrastructure and multi-node
>   claims would be an extension on top of that infrastructure.

What is at the very least needed is an outline of how multi-node claims are
intended to work. This is because what you do here needs to fit that scheme.
Which in turn I think is going to be difficult when for a domain more memory
is needed than any single node can supply. Hence why I think that you may
not be able to get away with just single-node claims, no matter that this
of course complicates things.

It's also not quite clear to me how multiple successive claims against
distinct nodes would work (which isn't all that different from a multi-node
claim).

Thinking of it, interaction with the existing mem-op also wants clarifying.
Imo only one of the two ought to be usable on a single domain.

>>> +static unsigned long node_outstanding_claims[MAX_NUMNODES];
>>
>> How come this is being added, rather than it replacing outstanding_claims?
> 
> The global outstanding_claims variable counts the host-level claimed pages.
> 
> It has the sum of all host-level claims that are not specific to a NUMA node
> and also the sum of all node-specific claims (see more on that in an answer
> to another question further below).
> 
> If we were to replace it, we'd not have the outstanding_claims counter,
> which would result in not supporting global claims anymore in Xen.
> 
> If a toolstack would want to claim more memory than a single NUMA node
> has, someone would have to go loop over all NUMA nodes with enough memory
> and split the claim across a number or per-NUMA-node claims.
> 
> - This would be less flexible than what we have with it: With it, we can
>   still support host-level claims without those claims be placed on
>   specific NUMA nodes.
> 
> - This allows for many domains to be built in parallel where some
>   domains are built with claims specific to specific NUMA nodes, while
>   allowing the other domains are built dynamically at allocation time
>   from any remaining memory wherever that memory remains to be available.
>   
> - There are use cases where the memory of some domains shall be spread
>   across NUMA nodes to have the memory bandwidth of those NUMA nodes
>   available to the individual processes in the guest domain but still
>   want the assurance of host-level claims for claimed memory when
>   constructing of many domains in parallel on a host.

All fine, but why is this written down only in a reply to review comments,
rather than right in the patch description?

>>> +/* Return available pages after subtracting claimed pages */
>>> +static inline unsigned long available_after_claims(unsigned long
>> avail_pages,
>>> +                                                   unsigned long claims)
>>> +{
>>> +    BUG_ON(claims > avail_pages);
>>> +    return avail_pages - claims; /* Due to the BUG_ON, it cannot be negative
>> */
>>> +}
>>
>> A helper for a simple subtraction?
> 
> It is about not having to repeat the BUG_ON(claims > avail_pages) everywhere.

Which in turn I should have said I question. Imo this is supposed to be an
ASSERT(), not a BUG_ON().

> Also, the name of the helper makes clear what the result of the expression is,
> So when using it, the flow of the code is more natural to understand.
> 
> Having to repeat the BUG_ON() everywhere would make the code less readable.
> The BUG_ON() is good when refactoring as a guardrail when you broke the code.

I'm not quite sure there.

>>> +/* Answer if host-level memory and claims permit this request to proceed */
>>> +static inline bool host_allocatable_request(const struct domain *d,
>>> +                                            unsigned int memflags,
>>> +                                            unsigned long request)
>>> +{
>>> +    unsigned long allocatable_pages;
>>> +
>>> +    ASSERT(spin_is_locked(&heap_lock));
>>> +
>>> +    allocatable_pages = available_after_claims(total_avail_pages,
>>> +                                               outstanding_claims);
>>> +    if ( allocatable_pages >= request )
>>> +        return true; /* The not claimed pages are enough to proceed */
>>> +
>>> +    if ( !d || (memflags & MEMF_no_refcount) )
>>> +        return false; /* Claims are not available for this allocation */
>>> +
>>> +    /* The domain's claims are available, return true if sufficient */
>>> +    return request <= allocatable_pages + d->outstanding_pages;
>>> +}
>>
>> This only uses variables which existed before, i.e. there's nothing NUMA-ish
>> in here. What's the deal?
> 
> The deal is that for taking unclaimed memory beyond the remaining claims
> Into account for deciding that the host has usable memory for a domain with
> a claim, the needed if-expression would be quite complicated to understand.
> When factoring this logic into an if expression without extracting it into
> a function, it would bloat flow alloc_heap_pages(), especially if one would
> want to have the comments. I'm not sure if this is a good idea.

I guess I don't really follow: Right here all you do is transform a complex
if() into one that calls this function, with no functional difference. This
function isn't changed by subsequent patches. Hence what's the concern?

That said, I don't mind breaking it out, but as said - as a separate change,
and then with its NUMA counterpart preferably folded in.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 13:42:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 13:42:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246653.1545759 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy8xz-0006hC-E3; Thu, 05 Mar 2026 13:42:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246653.1545759; Thu, 05 Mar 2026 13:42: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 1vy8xz-0006h5-AO; Thu, 05 Mar 2026 13:42:15 +0000
Received: by outflank-mailman (input) for mailman id 1246653;
 Thu, 05 Mar 2026 13:42:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=00Q8=BF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vy8xx-0006gz-Rh
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 13:42:13 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1d1ff0f1-1899-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 14:42:12 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-439b9cf8cb5so3993530f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 05:42:12 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439af926c53sm44193969f8f.8.2026.03.05.05.42.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Mar 2026 05:42: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: 1d1ff0f1-1899-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772718132; x=1773322932; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MGPu7Ut75IVW+faT5wPACbbODt9XdGXp1pSw46SMeG4=;
        b=A6UdqnmGGsrZP8Ukug9IqyIT80cZFxi2Rcqo9u+HCFFopA4swdpwkJrIZYsgwaJ2wd
         g3XY+t4mvzB84yHKyQMSyLfmsm3hgK/h6fWAnwpSvzHSjc9061bECG+vIhKA4AxoENkx
         j4nJYo+gkdnY2l/zFTfapCkq6mzkU9eDwPyCjY/dCVDImXYxw6Mrxb6NZkxyA+jiLGfQ
         F6ZttSsXzvZBuVmU2KVkA97IKnyOPq023gFdb5xywirPBN2nLzes8Sgs+BD0cxY0MzRq
         pbqzmi3uXxKOkNydAJpL8ZNprhBS7Ooai+AF1bQPyaiPBYAcFwRnJ4aqG2uJTCGmzur7
         /Cuw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772718132; x=1773322932;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MGPu7Ut75IVW+faT5wPACbbODt9XdGXp1pSw46SMeG4=;
        b=tFXNXe1LRqMg/Qba4dC6qwGpBXTivkwB5ycaGQts0FgFLyCXEtoQsNt7BHsh67peyU
         sKvtuqJgUTuvGCoPl2s03ZQFm3aJMPCRCU49irGs92acl0AwN3rAQNxFYgdLYJizPgRq
         N2ipJR35CPWEs6Kc3ijIONN8vklYs2p5N4XjBHVr7jpmLsoWlDBKgw4WxfjsMEAVzfY+
         I9PSDjbUGT2/ReooB4iZ1aK3xtRvMhH89fsWC4jz2fmdErbZWTqXa7BDDraxsx7vd9LS
         z8ZIbF+VtBuxoLihwf0F1J+OM3+It9+EMfiONpV1nmQKlc2bneB3ZXdRp5uNj5dowCJt
         sopA==
X-Forwarded-Encrypted: i=1; AJvYcCW2zXtoVmRESbqmjQYN29IPATzAOaRy+9zK3cHdQyMO0Qq0ApE3qm6klI2tLqcRh013obRA7o33zV0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzDz7ustER49mZ7i6nNUMHJ5+Iim5WBEs9d0B0w9Tx2jrsh8esn
	LObhRgLzbq1F1osJxXXRyuKJt8QlkLqRVJ1bU15wrhJn5RAP9TZXnSd+JiyqERW6EA==
X-Gm-Gg: ATEYQzwH/ENbnLPY9zkBlpEYdZrpLFMMepnzCRiUWUqilK7TfLTM5CwUsskWAZZUAEB
	4mAEBBK/wZ+ofbsKheSoz1VpTPFCb0WF0TvFIelAmVzNi9knJSQEn45nEi0sSgqppQG3YYcxuFb
	k/voTOYoErazuH6Gx/oycum8UTxRUh8GN0Gq6Ls9BJaCdWMsQLZp9eMIVKmL65EasMsUritm2lJ
	L/y3fKpy7LypKnDlWDmsl2jsRKV0UyFvNgwFvf5NmM597gT/1IHIbWHAjt8spQx/dqpGVehzvyY
	EvqSwYQoPckyMTtKl9S6tLGzJ70bvIsfUrTyaQzfWsXQlk5lMlGAYag2ktGzT9u1bX2TxyEmdQC
	v8JhyIbiMuj6YLb2NCXzZXXDnCvw+IL+GvMG9oEu78ijvgbnXhyW6AbMJMqIITrz8FMn/bSjN6C
	COW/YKvjju5eXQ4VIAq0ZzAevnVInMdEkBFZlW0k0O2bZtcBkD7xjfeRHxK4g4zjRGUI1Pfp7+f
	RAvzcQ9KwA/+4w=
X-Received: by 2002:a05:6000:2404:b0:439:bce5:64fb with SMTP id ffacd0b85a97d-439c7fae131mr10442482f8f.23.1772718131557;
        Thu, 05 Mar 2026 05:42:11 -0800 (PST)
Message-ID: <2662bcd2-2403-4e43-92c9-a51b17c938f2@suse.com>
Date: Thu, 5 Mar 2026 14:42:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 06/10] xsm/flask: Add XEN_DOMCTL_claim_memory to flask
To: Bernhard Kaindl <bernhard.kaindl@citrix.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
 <8e5680575f37ce67a81a4c712e5409ccb3f6f612.1772098423.git.bernhard.kaindl@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <8e5680575f37ce67a81a4c712e5409ccb3f6f612.1772098423.git.bernhard.kaindl@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.02.2026 15:29, Bernhard Kaindl wrote:
> Add a Flask security policy for the new XEN_DOMCTL_claim_memory hypercall
> introduced in the previous commit. When Flask is enabled, this permission
> controls whether a domain can stake memory claims for another domain.
> 
> The permission is granted to:
> - dom0_t: Dom0 needs this to claim memory for guest domains
> - create_domain_common: Domain builders need this during domain creation
> 
> Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
> ---
>  tools/flask/policy/modules/dom0.te  | 1 +
>  tools/flask/policy/modules/xen.if   | 1 +
>  xen/xsm/flask/hooks.c               | 3 +++
>  xen/xsm/flask/policy/access_vectors | 2 ++
>  4 files changed, 7 insertions(+)

Oh, here's the missing XSM/Flask change. First - this cannot come after the
introduction of the sub-op. If it can be split and come first, fine. Else it
needs to be folded in.

> --- a/xen/xsm/flask/hooks.c
> +++ b/xen/xsm/flask/hooks.c
> @@ -820,6 +820,9 @@ static int cf_check flask_domctl(struct domain *d, unsigned int cmd,
>      case XEN_DOMCTL_set_llc_colors:
>          return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__SET_LLC_COLORS);
>  
> +    case XEN_DOMCTL_claim_memory:
> +        return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__CLAIM_MEMORY);

You don't need two XSM checks, I don't think. As you use xsm_claim_pages(),
all you need to do here should be to add a case label to the "These have
individual XSM hooks (common/domctl.c)" block.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 13:52:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 13:52:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246664.1545768 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy97f-0008N3-7s; Thu, 05 Mar 2026 13:52:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246664.1545768; Thu, 05 Mar 2026 13: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 1vy97f-0008Mw-4f; Thu, 05 Mar 2026 13:52:15 +0000
Received: by outflank-mailman (input) for mailman id 1246664;
 Thu, 05 Mar 2026 13:52: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=y0Pc=BF=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vy97c-0008Mq-W3
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 13:52:13 +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 820ae696-189a-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 14:52:11 +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 6414C3F904;
 Thu,  5 Mar 2026 13:52: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 3A6DC3EA68;
 Thu,  5 Mar 2026 13:52: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 pHcFDYqKqWlKTgAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 05 Mar 2026 13:52: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: 820ae696-189a-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1772718730; 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=x/tKo6sO/yEl7rIclC8Ou/RxLmCoSVX2S0UQLahfY5Y=;
	b=W8Njhtr8phGTTkrM/iWOk5nQ1OdpnM8IfavIGp92qr8ObGu4rpQJ/w6Ox0t7RK/Nkdl+Ku
	OjOsm8qme8KAc81wZk3rG5EkzEVOK36uO0X+Ar41yoDvxHVqR9BF0BsPERcLRkrLUtCZMK
	RhaB1iGTPJS1VAsnFa5jaLFPPTJilvU=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1772718730; 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=x/tKo6sO/yEl7rIclC8Ou/RxLmCoSVX2S0UQLahfY5Y=;
	b=W8Njhtr8phGTTkrM/iWOk5nQ1OdpnM8IfavIGp92qr8ObGu4rpQJ/w6Ox0t7RK/Nkdl+Ku
	OjOsm8qme8KAc81wZk3rG5EkzEVOK36uO0X+Ar41yoDvxHVqR9BF0BsPERcLRkrLUtCZMK
	RhaB1iGTPJS1VAsnFa5jaLFPPTJilvU=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Nick Rosbrook <enr0n@ubuntu.com>,
	George Dunlap <gwd@xenproject.org>
Subject: [PATCH 00/11] tools: add support for per-domain xenstore quota
Date: Thu,  5 Mar 2026 14:51:57 +0100
Message-ID: <20260305135208.2208663-1-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-2.79 / 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.19)[-0.974];
	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,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_FIVE(0.00)[6];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -2.79
X-Spam-Level: 

This series is adding support for per-domain Xenstore quota to:

- xenstored
- libxenstore
- libxl
- xl

With this it is possible to e.g. allow larger limits for driver
domains.

Juergen Gross (11):
  tools/libs/store: add get- and set-quota related functions
  tools/xenstored: add central quota check functions
  tools/xenstored: rework hard_quotas and soft_quotas arrays
  tools/xenstored: add GLOBAL_QUOTA_DATA record for live update
  tools/xenstored: split acc[] array in struct domain
  tools/xenstored: add infrastructure for per-domain quotas
  tools/xenstored: implement the GET/SET_QUOTA commands
  tools/libxl: add functions for retrieving and setting xenstore quota
  tools/libxl: add support for xenstore quota in domain_config
  tools/xl: add xl commands for xenstore quota operations
  tools/xl: add support for xenstore quota setting via domain config

 docs/man/xl.cfg.5.pod.in             |  13 +
 tools/golang/xenlight/helpers.gen.go |  84 +++++
 tools/golang/xenlight/types.gen.go   |  10 +
 tools/include/libxl.h                |  20 ++
 tools/include/xenstore.h             |  19 ++
 tools/libs/light/Makefile            |   1 +
 tools/libs/light/libxl_dom.c         |   8 +
 tools/libs/light/libxl_domain.c      |  10 +
 tools/libs/light/libxl_types.idl     |  10 +
 tools/libs/light/libxl_xsquota.c     | 102 ++++++
 tools/libs/store/Makefile            |   2 +-
 tools/libs/store/libxenstore.map     |   8 +
 tools/libs/store/xs.c                | 111 +++++++
 tools/xenstored/control.c            |  24 +-
 tools/xenstored/core.c               |  41 ++-
 tools/xenstored/domain.c             | 457 +++++++++++++++++++++------
 tools/xenstored/domain.h             |  32 +-
 tools/xenstored/lu.c                 |   6 +
 tools/xenstored/transaction.c        |   2 +-
 tools/xenstored/watch.c              |   4 +-
 tools/xl/Makefile                    |   1 +
 tools/xl/xl.h                        |   2 +
 tools/xl/xl_cmdtable.c               |  10 +
 tools/xl/xl_parse.c                  |  48 ++-
 tools/xl/xl_parse.h                  |   1 +
 tools/xl/xl_xsquota.c                |  88 ++++++
 26 files changed, 972 insertions(+), 142 deletions(-)
 create mode 100644 tools/libs/light/libxl_xsquota.c
 create mode 100644 tools/xl/xl_xsquota.c

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 05 13:52:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 13:52:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246665.1545777 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy97j-00009H-E3; Thu, 05 Mar 2026 13:52:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246665.1545777; Thu, 05 Mar 2026 13: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 1vy97j-00009A-BL; Thu, 05 Mar 2026 13:52:19 +0000
Received: by outflank-mailman (input) for mailman id 1246665;
 Thu, 05 Mar 2026 13:52:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=y0Pc=BF=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vy97i-00008m-DD
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 13:52:18 +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 85022a56-189a-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 14:52:16 +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 D1AC93F8EE;
 Thu,  5 Mar 2026 13:52:15 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id B19693EA68;
 Thu,  5 Mar 2026 13:52:15 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id bx85Ko+KqWlTTgAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 05 Mar 2026 13:52: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: 85022a56-189a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1772718735; 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=naD83YlbZGL27ewgtMQ3AW6P3o75RusmiaznD0RxnhM=;
	b=VygA5v6MXLuua+lePOlwuediEZc3tkLnBhqqXs+sgQuVO8Bg2/VeOUKNjocjGp+y9+ZaDj
	5D4XhXoAMIOz535DM0Q58UpbWbl1AHxlXSzNfaDG0NvLVJQfN3v5HwGBwrHLpqmGWpNGjv
	vnQzk2Xt1G6ZoyZ0B6ZV/s1xsZLJD4s=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1772718735; 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=naD83YlbZGL27ewgtMQ3AW6P3o75RusmiaznD0RxnhM=;
	b=VygA5v6MXLuua+lePOlwuediEZc3tkLnBhqqXs+sgQuVO8Bg2/VeOUKNjocjGp+y9+ZaDj
	5D4XhXoAMIOz535DM0Q58UpbWbl1AHxlXSzNfaDG0NvLVJQfN3v5HwGBwrHLpqmGWpNGjv
	vnQzk2Xt1G6ZoyZ0B6ZV/s1xsZLJD4s=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 01/11] tools/libs/store: add get- and set-quota related functions
Date: Thu,  5 Mar 2026 14:51:58 +0100
Message-ID: <20260305135208.2208663-2-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260305135208.2208663-1-jgross@suse.com>
References: <20260305135208.2208663-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -6.78
X-Spam-Level: 
X-Spamd-Result: default: False [-6.78 / 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.18)[-0.884];
	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)[4];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO

Add functions for getting and setting Xenstore quota to libxenstore:

xs_get_quota_names(): get the names of the supported quota.

xs_get_global_quota(): get the value of one global quota.

xs_set_global_quota(): set the value of one global quota.

xs_get_domain_quota(): get the value of one quota of a domain.

xs_set_domain_quota(): set the value of one quota of a domain.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/include/xenstore.h         |  19 ++++++
 tools/libs/store/Makefile        |   2 +-
 tools/libs/store/libxenstore.map |   8 +++
 tools/libs/store/xs.c            | 111 +++++++++++++++++++++++++++++++
 4 files changed, 139 insertions(+), 1 deletion(-)

diff --git a/tools/include/xenstore.h b/tools/include/xenstore.h
index 423422dc50..6b661e5895 100644
--- a/tools/include/xenstore.h
+++ b/tools/include/xenstore.h
@@ -277,6 +277,25 @@ bool xs_get_features_domain(struct xs_handle *h, unsigned int domid,
 bool xs_set_features_domain(struct xs_handle *h, unsigned int domid,
 			    unsigned int features);
 
+/* Get names of supported quota. */
+char **xs_get_quota_names(struct xs_handle *h, unsigned int *num);
+
+/* Get the value of one global quota. */
+bool xs_get_global_quota(struct xs_handle *h, char *quota,
+			 unsigned int *value);
+
+/* Set the value of one global quota. */
+bool xs_set_global_quota(struct xs_handle *h, char *quota,
+			 unsigned int value);
+
+/* Get the value of one domain quota. */
+bool xs_get_domain_quota(struct xs_handle *h, unsigned int domid,
+			 char *quota, unsigned int *value);
+
+/* Set the value of one domain quota. */
+bool xs_set_domain_quota(struct xs_handle *h, unsigned int domid,
+			 char *quota, unsigned int value);
+
 char *xs_control_command(struct xs_handle *h, const char *cmd,
 			 void *data, unsigned int len);
 /* Deprecated: use xs_control_command() instead. */
diff --git a/tools/libs/store/Makefile b/tools/libs/store/Makefile
index fed43b0008..b52d1f35ad 100644
--- a/tools/libs/store/Makefile
+++ b/tools/libs/store/Makefile
@@ -2,7 +2,7 @@ XEN_ROOT=$(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 MAJOR = 4
-MINOR = 1
+MINOR = 2
 version-script := libxenstore.map
 
 ifeq ($(CONFIG_Linux),y)
diff --git a/tools/libs/store/libxenstore.map b/tools/libs/store/libxenstore.map
index cd9df86749..a08ddd549f 100644
--- a/tools/libs/store/libxenstore.map
+++ b/tools/libs/store/libxenstore.map
@@ -45,3 +45,11 @@ VERS_4.1 {
 		xs_get_features_domain;
 		xs_set_features_domain;
 } VERS_4.0;
+VERS_4.2 {
+	global:
+		xs_get_quota_names;
+		xs_get_global_quota;
+		xs_set_global_quota;
+		xs_get_domain_quota;
+		xs_set_domain_quota;
+} VERS_4.1;
diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
index 8f4b90a3cf..dda37f7526 100644
--- a/tools/libs/store/xs.c
+++ b/tools/libs/store/xs.c
@@ -1456,6 +1456,117 @@ bool xs_set_features_domain(struct xs_handle *h, unsigned int domid,
 	return xs_bool(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL));
 }
 
+char **xs_get_quota_names(struct xs_handle *h, unsigned int *num)
+{
+	struct xsd_sockmsg msg = { .type = XS_GET_QUOTA };
+	struct iovec iov[1];
+	char **quota;
+	char *reply;
+	char *c;
+	unsigned int i;
+
+	iov[0].iov_base = &msg;
+	iov[0].iov_len  = sizeof(msg);
+
+	reply = xs_talkv(h, iov, ARRAY_SIZE(iov), NULL);
+	if (!reply)
+		return NULL;
+
+	*num = 1;
+	for (c = reply; *c; c++)
+		if (*c == ' ')
+			(*num)++;
+
+	quota = malloc(*num * sizeof(char *) + strlen(reply) + 1);
+	c = (char *)(quota + *num);
+	strcpy(c, reply);
+	for (i = 0; i < *num; i++) {
+		quota[i] = c;
+		c = strchr(c, ' ');
+		if (c) {
+			*c = 0;
+			c++;
+		}
+	}
+
+	return quota;
+}
+
+bool xs_get_global_quota(struct xs_handle *h, char *quota,
+			 unsigned int *value)
+{
+	struct xsd_sockmsg msg = { .type = XS_GET_QUOTA };
+	struct iovec iov[2];
+
+	iov[0].iov_base = &msg;
+	iov[0].iov_len  = sizeof(msg);
+	iov[1].iov_base = quota;
+	iov[1].iov_len  = strlen(quota) + 1;
+
+	return xs_uint(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL), value);
+}
+
+bool xs_set_global_quota(struct xs_handle *h, char *quota,
+			 unsigned int value)
+{
+	struct xsd_sockmsg msg = { .type = XS_SET_QUOTA };
+	char val_str[MAX_STRLEN(value)];
+	struct iovec iov[3];
+
+	snprintf(val_str, sizeof(val_str), "%u", value);
+
+	iov[0].iov_base = &msg;
+	iov[0].iov_len  = sizeof(msg);
+	iov[1].iov_base = quota;
+	iov[1].iov_len  = strlen(quota) + 1;
+	iov[2].iov_base = val_str;
+	iov[2].iov_len  = strlen(val_str) + 1;
+
+	return xs_bool(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL));
+}
+
+bool xs_get_domain_quota(struct xs_handle *h, unsigned int domid,
+			 char *quota, unsigned int *value)
+{
+	struct xsd_sockmsg msg = { .type = XS_GET_QUOTA };
+	char domid_str[MAX_STRLEN(domid)];
+	struct iovec iov[3];
+
+	snprintf(domid_str, sizeof(domid_str), "%u", domid);
+
+	iov[0].iov_base = &msg;
+	iov[0].iov_len  = sizeof(msg);
+	iov[1].iov_base = domid_str;
+	iov[1].iov_len  = strlen(domid_str) + 1;
+	iov[2].iov_base = quota;
+	iov[2].iov_len  = strlen(quota) + 1;
+
+	return xs_uint(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL), value);
+}
+
+bool xs_set_domain_quota(struct xs_handle *h, unsigned int domid,
+			 char *quota, unsigned int value)
+{
+	struct xsd_sockmsg msg = { .type = XS_SET_QUOTA };
+	char domid_str[MAX_STRLEN(domid)];
+	char val_str[MAX_STRLEN(value)];
+	struct iovec iov[4];
+
+	snprintf(domid_str, sizeof(domid_str), "%u", domid);
+	snprintf(val_str, sizeof(val_str), "%u", value);
+
+	iov[0].iov_base = &msg;
+	iov[0].iov_len  = sizeof(msg);
+	iov[1].iov_base = domid_str;
+	iov[1].iov_len  = strlen(domid_str) + 1;
+	iov[2].iov_base = quota;
+	iov[2].iov_len  = strlen(quota) + 1;
+	iov[3].iov_base = val_str;
+	iov[3].iov_len  = strlen(val_str) + 1;
+
+	return xs_bool(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL));
+}
+
 char *xs_control_command(struct xs_handle *h, const char *cmd,
 			 void *data, unsigned int len)
 {
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 05 13:52:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 13:52:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246666.1545788 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy97o-0000Rd-Q1; Thu, 05 Mar 2026 13:52:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246666.1545788; Thu, 05 Mar 2026 13:52: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 1vy97o-0000RL-Lp; Thu, 05 Mar 2026 13:52:24 +0000
Received: by outflank-mailman (input) for mailman id 1246666;
 Thu, 05 Mar 2026 13:52: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=y0Pc=BF=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vy97n-00008m-IK
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 13:52:23 +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 8833b762-189a-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 14:52: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-out2.suse.de (Postfix) with ESMTPS id 48E335BD8E;
 Thu,  5 Mar 2026 13:52:21 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 25A873EA68;
 Thu,  5 Mar 2026 13:52:21 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id qiwdCJWKqWlYTgAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 05 Mar 2026 13:52: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: 8833b762-189a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1772718741; 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=g9IGAHWgEG6DCdCIzvkRdi4JDcDDT2+/4tidv+QAPpw=;
	b=GXk2ra0R2l0UyNGcqR1QsOjJOSvLHndSoaFtUNeNGDQVuPbluI6ANqX3N3c9hQzNG5kzxq
	LIn/mbbxy4VQlEJmnG49TBOry1E5/gw8tSYRUugBK4J9I1hi5Lwj2y8oubOzQ9JsIkFWsx
	OB0k8MKFzhWhcFoOGsmDu1HRbxcmqyg=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1772718741; 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=g9IGAHWgEG6DCdCIzvkRdi4JDcDDT2+/4tidv+QAPpw=;
	b=GXk2ra0R2l0UyNGcqR1QsOjJOSvLHndSoaFtUNeNGDQVuPbluI6ANqX3N3c9hQzNG5kzxq
	LIn/mbbxy4VQlEJmnG49TBOry1E5/gw8tSYRUugBK4J9I1hi5Lwj2y8oubOzQ9JsIkFWsx
	OB0k8MKFzhWhcFoOGsmDu1HRbxcmqyg=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 02/11] tools/xenstored: add central quota check functions
Date: Thu,  5 Mar 2026 14:51:59 +0100
Message-ID: <20260305135208.2208663-3-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260305135208.2208663-1-jgross@suse.com>
References: <20260305135208.2208663-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-6.79 / 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.19)[-0.962];
	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)[4];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -6.79
X-Spam-Level: 

Add central functions for checking a value (either an absolute one or
the current domain value plus an offset) against a specific quota.

This is in preparation of introducing per-domain quota.

The required changes allow to drop the "update" parameter from
domain_nbentry_fix().

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/xenstored/core.c        |  4 +-
 tools/xenstored/domain.c      | 74 +++++++++++++++++------------------
 tools/xenstored/domain.h      |  7 ++--
 tools/xenstored/transaction.c |  2 +-
 tools/xenstored/watch.c       |  4 +-
 5 files changed, 43 insertions(+), 48 deletions(-)

diff --git a/tools/xenstored/core.c b/tools/xenstored/core.c
index d509736c32..5a4bf3e302 100644
--- a/tools/xenstored/core.c
+++ b/tools/xenstored/core.c
@@ -1538,7 +1538,7 @@ static struct node *create_node(struct connection *conn, const void *ctx,
 	for (i = node; i; i = i->parent) {
 		/* i->parent is set for each new node, so check quota. */
 		if (i->parent &&
-		    domain_nbentry(conn) >= hard_quotas[ACC_NODES].val) {
+		    domain_check_quota_add(conn->domain, ACC_NODES, 1)) {
 			ret = ENOSPC;
 			goto err;
 		}
@@ -2320,7 +2320,7 @@ void setup_structure(bool live_update)
 		manual_node("/tool/xenstored", NULL);
 		manual_node("@releaseDomain", NULL);
 		manual_node("@introduceDomain", NULL);
-		domain_nbentry_fix(priv_domid, 5, true);
+		domain_nbentry_fix(priv_domid, 5);
 	}
 }
 
diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index e453b3061f..1df9265ad5 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -389,6 +389,25 @@ void wrl_apply_debit_trans_commit(struct connection *conn)
 	wrl_apply_debit_actual(conn->domain);
 }
 
+static bool domain_check_quota_val(struct domain *d, enum accitem what,
+				   unsigned int val)
+{
+	unsigned int quota = hard_quotas[what].val;
+
+	if (!quota || !domid_is_unprivileged(d->domid))
+		return false;
+
+	return val >= quota;
+}
+
+bool domain_check_quota_add(struct domain *d, enum accitem what, int add)
+{
+	if (add < 0 || !d)
+		return false;
+
+	return domain_check_quota_val(d, what, d->acc[what].val + add);
+}
+
 static bool check_indexes(XENSTORE_RING_IDX cons, XENSTORE_RING_IDX prod)
 {
 	return ((prod - cons) <= XENSTORE_RING_SIZE);
@@ -490,10 +509,9 @@ static bool domain_can_read(struct connection *conn)
 	if (domain_is_unprivileged(conn)) {
 		if (domain->wrl_credit < 0)
 			return false;
-		if (domain->acc[ACC_OUTST].val >= hard_quotas[ACC_OUTST].val)
+		if (domain_check_quota_add(domain, ACC_OUTST, 0))
 			return false;
-		if (domain->acc[ACC_MEM].val >= hard_quotas[ACC_MEM].val &&
-		    hard_quotas[ACC_MEM].val)
+		if (domain_check_quota_add(domain, ACC_MEM, 0))
 			return false;
 	}
 
@@ -904,16 +922,20 @@ do {						\
 
 int acc_fix_domains(struct list_head *head, bool chk_quota, bool update)
 {
+	struct domain *d;
 	struct changed_domain *cd;
-	int cnt;
 
 	list_for_each_entry(cd, head, list) {
-		cnt = domain_nbentry_fix(cd->domid, cd->acc[ACC_NODES], update);
-		if (!update) {
-			if (chk_quota && cnt >= hard_quotas[ACC_NODES].val)
-				return ENOSPC;
-			if (cnt < 0)
+		if (update) {
+			domain_nbentry_fix(cd->domid, cd->acc[ACC_NODES]);
+		} else if (chk_quota) {
+			d = find_or_alloc_existing_domain(cd->domid);
+
+			if (!d)
 				return ENOMEM;
+			if (domain_check_quota_add(d, ACC_NODES,
+						   cd->acc[ACC_NODES]))
+				return ENOSPC;
 		}
 	}
 
@@ -1732,7 +1754,7 @@ bool domain_max_chk(const struct connection *conn, enum accitem what,
 	if (!conn || !conn->domain)
 		return false;
 
-	if (domain_is_unprivileged(conn) && val > hard_quotas[what].val)
+	if (domain_check_quota_val(conn->domain, what, val))
 		return true;
 
 	domain_acc_valid_max(conn->domain, what, val);
@@ -1752,21 +1774,9 @@ int domain_nbentry_dec(struct connection *conn, unsigned int domid)
 	       ? errno : 0;
 }
 
-int domain_nbentry_fix(unsigned int domid, int num, bool update)
-{
-	int ret;
-
-	ret = domain_acc_add(NULL, domid, ACC_NODES, update ? num : 0, update);
-	if (ret < 0 || update)
-		return ret;
-
-	return domid_is_unprivileged(domid) ? ret + num : 0;
-}
-
-unsigned int domain_nbentry(struct connection *conn)
+int domain_nbentry_fix(unsigned int domid, int num)
 {
-	return domain_is_unprivileged(conn)
-	       ? domain_acc_add(conn, conn->id, ACC_NODES, 0, true) : 0;
+	return domain_acc_add(NULL, domid, ACC_NODES, num, true);
 }
 
 static bool domain_chk_quota(struct connection *conn, unsigned int mem)
@@ -1781,7 +1791,7 @@ static bool domain_chk_quota(struct connection *conn, unsigned int mem)
 	domain = conn->domain;
 	now = time(NULL);
 
-	if (mem >= hard_quotas[ACC_MEM].val && hard_quotas[ACC_MEM].val) {
+	if (domain_check_quota_val(domain, ACC_MEM, mem)) {
 		if (domain->hard_quota_reported)
 			return true;
 		syslog(LOG_ERR, "Domain %u exceeds hard memory quota, Xenstore interface to domain stalled\n",
@@ -1857,13 +1867,6 @@ void domain_watch_dec(struct connection *conn)
 	domain_acc_add(conn, conn->id, ACC_WATCH, -1, true);
 }
 
-int domain_watch(struct connection *conn)
-{
-	return (domain_is_unprivileged(conn))
-		? domain_acc_add(conn, conn->id, ACC_WATCH, 0, true)
-		: 0;
-}
-
 void domain_outstanding_inc(struct connection *conn)
 {
 	domain_acc_add(conn, conn->id, ACC_OUTST, 1, true);
@@ -1884,13 +1887,6 @@ void domain_transaction_dec(struct connection *conn)
 	domain_acc_add(conn, conn->id, ACC_TRANS, -1, true);
 }
 
-unsigned int domain_transaction_get(struct connection *conn)
-{
-	return (domain_is_unprivileged(conn))
-		? domain_acc_add(conn, conn->id, ACC_TRANS, 0, true)
-		: 0;
-}
-
 const char *dump_state_connections(FILE *fp)
 {
 	const char *ret = NULL;
diff --git a/tools/xenstored/domain.h b/tools/xenstored/domain.h
index 28186ccac0..b229f6f4e0 100644
--- a/tools/xenstored/domain.h
+++ b/tools/xenstored/domain.h
@@ -113,8 +113,7 @@ int domain_alloc_permrefs(struct node_perms *perms);
 /* Quota manipulation */
 int domain_nbentry_inc(struct connection *conn, unsigned int domid);
 int domain_nbentry_dec(struct connection *conn, unsigned int domid);
-int domain_nbentry_fix(unsigned int domid, int num, bool update);
-unsigned int domain_nbentry(struct connection *conn);
+int domain_nbentry_fix(unsigned int domid, int num);
 int domain_memory_add(struct connection *conn, unsigned int domid, int mem,
 		      bool no_quota_check);
 
@@ -141,12 +140,10 @@ static inline void domain_memory_add_nochk(struct connection *conn,
 }
 void domain_watch_inc(struct connection *conn);
 void domain_watch_dec(struct connection *conn);
-int domain_watch(struct connection *conn);
 void domain_outstanding_inc(struct connection *conn);
 void domain_outstanding_dec(struct connection *conn, unsigned int domid);
 void domain_transaction_inc(struct connection *conn);
 void domain_transaction_dec(struct connection *conn);
-unsigned int domain_transaction_get(struct connection *conn);
 int domain_get_quota(const void *ctx, struct connection *conn,
 		     unsigned int domid);
 
@@ -161,6 +158,8 @@ int domain_max_global_acc(const void *ctx, struct connection *conn);
 void domain_reset_global_acc(void);
 bool domain_max_chk(const struct connection *conn, enum accitem what,
 		    unsigned int val);
+bool domain_check_quota_add(struct domain *d, enum accitem what,
+			    int add);
 
 extern long wrl_ntransactions;
 
diff --git a/tools/xenstored/transaction.c b/tools/xenstored/transaction.c
index 167cd597fd..ccf93a1132 100644
--- a/tools/xenstored/transaction.c
+++ b/tools/xenstored/transaction.c
@@ -470,7 +470,7 @@ int do_transaction_start(const void *ctx, struct connection *conn,
 	if (conn->transaction)
 		return EBUSY;
 
-	if (domain_transaction_get(conn) > hard_quotas[ACC_TRANS].val)
+	if (domain_check_quota_add(conn->domain, ACC_TRANS, 1))
 		return ENOSPC;
 
 	/* Attach transaction to ctx for autofree until it's complete */
diff --git a/tools/xenstored/watch.c b/tools/xenstored/watch.c
index b66a9f1a39..36e4d33f22 100644
--- a/tools/xenstored/watch.c
+++ b/tools/xenstored/watch.c
@@ -220,8 +220,8 @@ int do_watch(const void *ctx, struct connection *conn, struct buffered_data *in)
 			return EEXIST;
 	}
 
-	if (domain_watch(conn) > hard_quotas[ACC_WATCH].val)
-		return E2BIG;
+	if (domain_check_quota_add(conn->domain, ACC_WATCH, 1))
+		return ENOSPC;
 
 	watch = add_watch(conn, vec[0], vec[1], relative, false);
 	if (!watch)
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 05 13:52:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 13:52:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246668.1545797 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy97t-0000kL-VL; Thu, 05 Mar 2026 13:52:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246668.1545797; Thu, 05 Mar 2026 13:52:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy97t-0000kE-ST; Thu, 05 Mar 2026 13:52:29 +0000
Received: by outflank-mailman (input) for mailman id 1246668;
 Thu, 05 Mar 2026 13:52:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=y0Pc=BF=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vy97s-0008Mq-Hu
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 13:52:28 +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 8bc0ae45-189a-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 14:52:27 +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 B596E3F81C;
 Thu,  5 Mar 2026 13:52: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 942643EA76;
 Thu,  5 Mar 2026 13:52: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 ihr/IpqKqWlwTgAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 05 Mar 2026 13:52:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8bc0ae45-189a-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1772718747; 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=jjwrLXJ76lcdkEfVRZ/NYlU2XuS/dX5LsghDgLcjKFI=;
	b=WW5hCUJF2RbKUTrdp2XBfBvlZD2C+g7/HirdVoXWthwOXuyv9WRF2c0ZO+YVwGifjsDPVT
	5mBsCYIb5uwbWelmDYzTAPfzD1VkZqy+shM/tHsvnR6Hupo6vVATSYH/M465w6D4CXwyDH
	V+8bWa+x2Q1pmi/UwGQwy/blGQOV7BU=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1772718746; 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=jjwrLXJ76lcdkEfVRZ/NYlU2XuS/dX5LsghDgLcjKFI=;
	b=B/fb8AgINJwxqJ7DX8HAqVCjEjPowW5GiuHwhbxHf+bquF1jQH/3f1ueHNLfAWzmcGorTk
	b5KT17AsBdPluqaprR5WtwUOc7xtm5ek93qAawrFXgbFM9dWhqVq+c0Uh71toYkLQ0bGis
	YrTJcvbQfFebmrUS+R/HN8He2QK27Ss=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 03/11] tools/xenstored: rework hard_quotas and soft_quotas arrays
Date: Thu,  5 Mar 2026 14:52:00 +0100
Message-ID: <20260305135208.2208663-4-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260305135208.2208663-1-jgross@suse.com>
References: <20260305135208.2208663-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-6.79 / 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.19)[-0.963];
	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)[4];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.com:mid,suse.com:email];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -6.79
X-Spam-Level: 

Instead of having one array for hard quotas and one for soft quotas,
split them differently: have one array with the quota names and
descriptions, and one with the quota values (soft and hard) and the
maximum value so far.

This is in preparation of supporting per-domain quotas, as the layout
of the second array elements will be reused in the domain data.

While at it add an accessor for getting a soft quota value, as this
will be needed for per-domain quotas, too.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/xenstored/control.c | 24 ++++++++-------
 tools/xenstored/core.c    | 33 +++++++++++---------
 tools/xenstored/domain.c  | 65 +++++++++++++++++++++------------------
 tools/xenstored/domain.h  | 15 +++++----
 4 files changed, 76 insertions(+), 61 deletions(-)

diff --git a/tools/xenstored/control.c b/tools/xenstored/control.c
index 2611a6fade..ca59d30d05 100644
--- a/tools/xenstored/control.c
+++ b/tools/xenstored/control.c
@@ -101,7 +101,7 @@ static int do_control_log(const void *ctx, struct connection *conn,
 }
 
 static int quota_show_current(const void *ctx, struct connection *conn,
-			      const struct quota *quotas)
+			      unsigned int idx)
 {
 	char *resp;
 	unsigned int i;
@@ -111,11 +111,12 @@ static int quota_show_current(const void *ctx, struct connection *conn,
 		return ENOMEM;
 
 	for (i = 0; i < ACC_N; i++) {
-		if (!quotas[i].name)
+		if (!quota_adm[i].name || quotas[i].val[idx] == Q_VAL_DISABLED)
 			continue;
 		resp = talloc_asprintf_append(resp, "%-17s: %8d %s\n",
-					      quotas[i].name, quotas[i].val,
-					      quotas[i].descr);
+					      quota_adm[i].name,
+					      quotas[i].val[idx],
+					      quota_adm[i].descr);
 		if (!resp)
 			return ENOMEM;
 	}
@@ -126,7 +127,7 @@ static int quota_show_current(const void *ctx, struct connection *conn,
 }
 
 static int quota_set(const void *ctx, struct connection *conn,
-		     const char **vec, int num, struct quota *quotas)
+		     const char **vec, int num, unsigned int idx)
 {
 	unsigned int i;
 	int val;
@@ -139,8 +140,9 @@ static int quota_set(const void *ctx, struct connection *conn,
 		return EINVAL;
 
 	for (i = 0; i < ACC_N; i++) {
-		if (quotas[i].name && !strcmp(vec[0], quotas[i].name)) {
-			quotas[i].val = val;
+		if (quota_adm[i].name && !strcmp(vec[0], quota_adm[i].name) &&
+		    quotas[i].val[idx] != Q_VAL_DISABLED) {
+			quotas[i].val[idx] = val;
 			send_ack(conn, XS_CONTROL);
 			return 0;
 		}
@@ -178,10 +180,10 @@ static int do_control_quota(const void *ctx, struct connection *conn,
 			    const char **vec, int num)
 {
 	if (num == 0)
-		return quota_show_current(ctx, conn, hard_quotas);
+		return quota_show_current(ctx, conn, Q_IDX_HARD);
 
 	if (!strcmp(vec[0], "set"))
-		return quota_set(ctx, conn, vec + 1, num - 1, hard_quotas);
+		return quota_set(ctx, conn, vec + 1, num - 1, Q_IDX_HARD);
 
 	if (!strcmp(vec[0], "max"))
 		return quota_max(ctx, conn, vec + 1, num - 1);
@@ -193,10 +195,10 @@ static int do_control_quota_s(const void *ctx, struct connection *conn,
 			      const char **vec, int num)
 {
 	if (num == 0)
-		return quota_show_current(ctx, conn, soft_quotas);
+		return quota_show_current(ctx, conn, Q_IDX_SOFT);
 
 	if (!strcmp(vec[0], "set"))
-		return quota_set(ctx, conn, vec + 1, num - 1, soft_quotas);
+		return quota_set(ctx, conn, vec + 1, num - 1, Q_IDX_SOFT);
 
 	return EINVAL;
 }
diff --git a/tools/xenstored/core.c b/tools/xenstored/core.c
index 5a4bf3e302..8a06b35808 100644
--- a/tools/xenstored/core.c
+++ b/tools/xenstored/core.c
@@ -2613,10 +2613,9 @@ static void set_timeout(const char *arg)
 		barf("unknown timeout \"%s\"\n", arg);
 }
 
-static void set_quota(const char *arg, bool soft)
+static void set_quota(const char *arg, unsigned int idx)
 {
 	const char *eq = strchr(arg, '=');
-	struct quota *q = soft ? soft_quotas : hard_quotas;
 	unsigned int val;
 	unsigned int i;
 
@@ -2625,8 +2624,9 @@ static void set_quota(const char *arg, bool soft)
 	val = get_optval_uint(eq + 1);
 
 	for (i = 0; i < ACC_N; i++) {
-		if (what_matches(arg, q[i].name)) {
-			q[i].val = val;
+		if (what_matches(arg, quota_adm[i].name) &&
+		    quotas[i].val[idx] != Q_VAL_DISABLED) {
+			quotas[i].val[idx] = val;
 			return;
 		}
 	}
@@ -2634,6 +2634,11 @@ static void set_quota(const char *arg, bool soft)
 	barf("unknown quota \"%s\"\n", arg);
 }
 
+static void set_one_quota(const char *arg, unsigned int idx, enum accitem what)
+{
+	quotas[what].val[idx] = get_optval_uint(arg);
+}
+
 /* Sorted by bit values of TRACE_* flags. Flag is (1u << index). */
 const char *const trace_switches[] = {
 	"obj", "io", "wrl", "acc", "tdb",
@@ -2687,7 +2692,7 @@ int main(int argc, char *argv[])
 				  options, NULL)) != -1) {
 		switch (opt) {
 		case 'E':
-			hard_quotas[ACC_NODES].val = get_optval_uint(optarg);
+			set_one_quota(optarg, Q_IDX_HARD, ACC_NODES);
 			break;
 		case 'F':
 			pidfile = optarg;
@@ -2699,10 +2704,10 @@ int main(int argc, char *argv[])
 			dofork = false;
 			break;
 		case 'S':
-			hard_quotas[ACC_NODESZ].val = get_optval_uint(optarg);
+			set_one_quota(optarg, Q_IDX_HARD, ACC_NODESZ);
 			break;
 		case 't':
-			hard_quotas[ACC_TRANS].val = get_optval_uint(optarg);
+			set_one_quota(optarg, Q_IDX_HARD, ACC_TRANS);
 			break;
 		case 'T':
 			tracefile = optarg;
@@ -2715,22 +2720,22 @@ int main(int argc, char *argv[])
 			keep_orphans = true;
 			break;
 		case 'W':
-			hard_quotas[ACC_WATCH].val = get_optval_uint(optarg);
+			set_one_quota(optarg, Q_IDX_HARD, ACC_WATCH);
 			break;
 		case 'A':
-			hard_quotas[ACC_NPERM].val = get_optval_uint(optarg);
+			set_one_quota(optarg, Q_IDX_HARD, ACC_NPERM);
 			break;
 		case 'M':
-			hard_quotas[ACC_PATHLEN].val = get_optval_uint(optarg);
-			hard_quotas[ACC_PATHLEN].val =
+			set_one_quota(optarg, Q_IDX_HARD, ACC_PATHLEN);
+			quotas[ACC_PATHLEN].val[Q_IDX_HARD] =
 				 min((unsigned int)XENSTORE_REL_PATH_MAX,
-				     hard_quotas[ACC_PATHLEN].val);
+				     quotas[ACC_PATHLEN].val[Q_IDX_HARD]);
 			break;
 		case 'Q':
-			set_quota(optarg, false);
+			set_quota(optarg, Q_IDX_HARD);
 			break;
 		case 'q':
-			set_quota(optarg, true);
+			set_quota(optarg, Q_IDX_SOFT);
 			break;
 		case 'w':
 			set_timeout(optarg);
diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index 1df9265ad5..acdcaa769e 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -51,60 +51,60 @@ static evtchn_port_t virq_port;
 
 xenevtchn_handle *xce_handle = NULL;
 
-struct quota hard_quotas[ACC_N] = {
+struct quotaadm quota_adm[ACC_N] = {
 	[ACC_NODES] = {
 		.name = "nodes",
 		.descr = "Nodes per domain",
-		.val = 1000,
 	},
 	[ACC_WATCH] = {
 		.name = "watches",
 		.descr = "Watches per domain",
-		.val = 128,
 	},
 	[ACC_OUTST] = {
 		.name = "outstanding",
 		.descr = "Outstanding requests per domain",
-		.val = 20,
 	},
 	[ACC_MEM] = {
 		.name = "memory",
-		.descr = "Total Xenstore memory per domain (error level)",
-		.val = 2 * 1024 * 1024 + 512 * 1024,	/* 2.5 MB */
+		.descr = "Total Xenstore memory per domain",
 	},
 	[ACC_TRANS] = {
 		.name = "transactions",
 		.descr = "Active transactions per domain",
-		.val = 10,
 	},
 	[ACC_TRANSNODES] = {
 		.name = "transaction-nodes",
 		.descr = "Max. number of accessed nodes per transaction",
-		.val = 1024,
 	},
 	[ACC_NPERM] = {
 		.name = "node-permissions",
 		.descr = "Max. number of permissions per node",
-		.val = 5,
 	},
 	[ACC_PATHLEN] = {
 		.name = "path-max",
 		.descr = "Max. length of a node path",
-		.val = XENSTORE_REL_PATH_MAX,
 	},
 	[ACC_NODESZ] = {
 		.name = "node-size",
 		.descr = "Max. size of a node",
-		.val = 2048,
 	},
 };
 
-struct quota soft_quotas[ACC_N] = {
-	[ACC_MEM] = {
-		.name = "memory",
-		.descr = "Total Xenstore memory per domain (warning level)",
-		.val = 2 * 1024 * 1024,			/* 2.0 MB */
+struct quota quotas[ACC_N] = {
+	[ACC_NODES] =      { .val = { 1000, Q_VAL_DISABLED }, },
+	[ACC_WATCH] =      { .val = {  128, Q_VAL_DISABLED }, },
+	[ACC_OUTST] =      { .val = {   20, Q_VAL_DISABLED }, },
+	[ACC_MEM] =        {
+		.val = { 2 * 1024 * 1024 + 512 * 1024,	/* 2.5 MB */
+			 2 * 1024 * 1024		/* 2.0 MB */ },
 	},
+	[ACC_TRANS] =      { .val = {   10, Q_VAL_DISABLED }, },
+	[ACC_TRANSNODES] = { .val = { 1024, Q_VAL_DISABLED }, },
+	[ACC_NPERM] =      { .val = {    5, Q_VAL_DISABLED }, },
+	[ACC_PATHLEN] =    {
+		.val = { XENSTORE_REL_PATH_MAX, Q_VAL_DISABLED },
+	},
+	[ACC_NODESZ] =     { .val = { 2048, Q_VAL_DISABLED }, },
 };
 
 typedef int32_t wrl_creditt;
@@ -389,10 +389,15 @@ void wrl_apply_debit_trans_commit(struct connection *conn)
 	wrl_apply_debit_actual(conn->domain);
 }
 
+static unsigned int domain_get_soft_quota(struct domain *d, enum accitem what)
+{
+	return quotas[what].val[Q_IDX_SOFT];
+}
+
 static bool domain_check_quota_val(struct domain *d, enum accitem what,
 				   unsigned int val)
 {
-	unsigned int quota = hard_quotas[what].val;
+	unsigned int quota = quotas[what].val[Q_IDX_HARD];
 
 	if (!quota || !domid_is_unprivileged(d->domid))
 		return false;
@@ -765,10 +770,10 @@ int domain_get_quota(const void *ctx, struct connection *conn,
 		return ENOMEM;
 
 	for (i = 0; i < ACC_N; i++) {
-		if (!hard_quotas[i].name)
+		if (!quota_adm[i].name)
 			continue;
 		resp = talloc_asprintf_append(resp, "%-17s: %8u (max %8u)\n",
-					      hard_quotas[i].name,
+					      quota_adm[i].name,
 					      d->acc[i].val, d->acc[i].max);
 		if (!resp)
 			return ENOMEM;
@@ -789,11 +794,10 @@ int domain_max_global_acc(const void *ctx, struct connection *conn)
 		return ENOMEM;
 
 	for (i = 0; i < ACC_N; i++) {
-		if (!hard_quotas[i].name)
+		if (!quota_adm[i].name)
 			continue;
 		resp = talloc_asprintf_append(resp, "%-17s: %8u\n",
-					      hard_quotas[i].name,
-					      hard_quotas[i].max);
+					      quota_adm[i].name, quotas[i].max);
 		if (!resp)
 			return ENOMEM;
 	}
@@ -1600,12 +1604,12 @@ static void domain_acc_valid_max(struct domain *d, enum accitem what,
 				 unsigned int val)
 {
 	assert(what < ARRAY_SIZE(d->acc));
-	assert(what < ARRAY_SIZE(hard_quotas));
+	assert(what < ARRAY_SIZE(quotas));
 
 	if (val > d->acc[what].max)
 		d->acc[what].max = val;
-	if (val > hard_quotas[what].max && domid_is_unprivileged(d->domid))
-		hard_quotas[what].max = val;
+	if (val > quotas[what].max && domid_is_unprivileged(d->domid))
+		quotas[what].max = val;
 }
 
 static int domain_acc_add_valid(struct domain *d, enum accitem what, int add)
@@ -1742,7 +1746,7 @@ void domain_reset_global_acc(void)
 	unsigned int i;
 
 	for (i = 0; i < ACC_N; i++)
-		hard_quotas[i].max = 0;
+		quotas[i].max = 0;
 
 	/* Set current max values seen. */
 	hashtable_iterate(domhash, domain_reset_global_acc_sub, NULL);
@@ -1802,21 +1806,22 @@ static bool domain_chk_quota(struct connection *conn, unsigned int mem)
 	}
 
 	if (now - domain->mem_last_msg >= MEM_WARN_MINTIME_SEC) {
+		unsigned int soft_mem = domain_get_soft_quota(domain, ACC_MEM);
+
 		if (domain->hard_quota_reported) {
 			domain->mem_last_msg = now;
 			domain->hard_quota_reported = false;
 			syslog(LOG_INFO, "Domain %u below hard memory quota again\n",
 			       domain->domid);
 		}
-		if (mem >= soft_quotas[ACC_MEM].val &&
-		    soft_quotas[ACC_MEM].val && !domain->soft_quota_reported) {
+		if (mem >= soft_mem && soft_mem &&
+		    !domain->soft_quota_reported) {
 			domain->mem_last_msg = now;
 			domain->soft_quota_reported = true;
 			syslog(LOG_WARNING, "Domain %u exceeds soft memory quota\n",
 			       domain->domid);
 		}
-		if (mem < soft_quotas[ACC_MEM].val &&
-		    domain->soft_quota_reported) {
+		if (mem < soft_mem && domain->soft_quota_reported) {
 			domain->mem_last_msg = now;
 			domain->soft_quota_reported = false;
 			syslog(LOG_INFO, "Domain %u below soft memory quota again\n",
diff --git a/tools/xenstored/domain.h b/tools/xenstored/domain.h
index b229f6f4e0..a6db358fdc 100644
--- a/tools/xenstored/domain.h
+++ b/tools/xenstored/domain.h
@@ -40,15 +40,18 @@ enum accitem {
 	ACC_N,			/* Number of elements per domain. */
 };
 
-struct quota {
+extern struct quotaadm {
 	const char *name;
 	const char *descr;
-	unsigned int val;
-	unsigned int max;
-};
+} quota_adm[ACC_N];
 
-extern struct quota hard_quotas[ACC_N];
-extern struct quota soft_quotas[ACC_N];
+extern struct quota {
+	unsigned int val[2];
+#define Q_IDX_HARD      0
+#define Q_IDX_SOFT      1
+#define Q_VAL_DISABLED  UINT_MAX
+	unsigned int max;
+} quotas[ACC_N];
 
 void handle_event(void);
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 05 13:52:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 13:52:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246672.1545808 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy97z-00016n-7f; Thu, 05 Mar 2026 13:52:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246672.1545808; Thu, 05 Mar 2026 13:52:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy97z-00016c-2d; Thu, 05 Mar 2026 13:52:35 +0000
Received: by outflank-mailman (input) for mailman id 1246672;
 Thu, 05 Mar 2026 13:52:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=y0Pc=BF=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vy97x-0008Mq-Di
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 13:52: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 8eb9b55a-189a-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 14:52:32 +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 2D7F03ED7C;
 Thu,  5 Mar 2026 13:52:32 +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 0D11D3EA68;
 Thu,  5 Mar 2026 13:52:32 +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 UhAgAqCKqWl0TgAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 05 Mar 2026 13:52: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: 8eb9b55a-189a-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1772718752; 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=Qd6amYjyhOJLEFPf+RpsHO3ExuRDdjesrhezg6H1Mlk=;
	b=BUNgof1yRMbXZPLtFr0mlbJ4W+odssS1nSsOsSdr9HWD54zQjx/twYgJACUW7C+J9NVv0/
	3tpZNRqR/+w/2Z+FEV5BJRlOtpE/zXiDzsPYVHAmyeFAUefpxyqOAgZbnMRiawMlWoevD0
	phu2C9hM4VCXPdPQ3bM0ocuE5763JCo=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1772718752; 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=Qd6amYjyhOJLEFPf+RpsHO3ExuRDdjesrhezg6H1Mlk=;
	b=BUNgof1yRMbXZPLtFr0mlbJ4W+odssS1nSsOsSdr9HWD54zQjx/twYgJACUW7C+J9NVv0/
	3tpZNRqR/+w/2Z+FEV5BJRlOtpE/zXiDzsPYVHAmyeFAUefpxyqOAgZbnMRiawMlWoevD0
	phu2C9hM4VCXPdPQ3bM0ocuE5763JCo=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 04/11] tools/xenstored: add GLOBAL_QUOTA_DATA record for live update
Date: Thu,  5 Mar 2026 14:52:01 +0100
Message-ID: <20260305135208.2208663-5-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260305135208.2208663-1-jgross@suse.com>
References: <20260305135208.2208663-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -6.79
X-Spam-Level: 
X-Spamd-Result: default: False [-6.79 / 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.19)[-0.963];
	MIME_GOOD(-0.10)[text/plain];
	MIME_TRACE(0.00)[0:+];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	ARC_NA(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo]
X-Spam-Flag: NO

Communicate the global quota settings via the GLOBAL_QUOTA_DATA
record to the new Xenstore instance.

This avoids to lose global quota settings done via xenstore-control.

In theory it would be possible to drop any quota related command line
parameters in the live update case, but they don't do any harm, as
the record data is applied on top of the command line data.

For soft-quota just prepend "soft-" to the quota name.

Use sub-functions for building and analyzing the quota part of the
migration stream, as they will be reused for per-domain quotas.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/xenstored/domain.c | 123 +++++++++++++++++++++++++++++++++++++++
 tools/xenstored/domain.h |   2 +
 tools/xenstored/lu.c     |   6 ++
 3 files changed, 131 insertions(+)

diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index acdcaa769e..694ae58973 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -1332,6 +1332,27 @@ int do_set_feature(const void *ctx, struct connection *conn,
 	return 0;
 }
 
+static bool parse_quota_name(const char *name, unsigned int *qidx,
+			     unsigned int *idx)
+{
+	unsigned int q;
+
+	if (strncmp(name, "soft-", 5)) {
+		*idx = Q_IDX_HARD;
+	} else {
+		*idx = Q_IDX_SOFT;
+		name += 5;
+	}
+	for (q = 0; q < ACC_N; q++) {
+		if (quota_adm[q].name && !strcmp(quota_adm[q].name, name)) {
+			*qidx = q;
+			return false;
+		}
+	}
+
+	return true;
+}
+
 static int close_xgt_handle(void *_handle)
 {
 	xengnttab_close(*(xengnttab_handle **)_handle);
@@ -2001,6 +2022,61 @@ void read_state_connection(const void *ctx, const void *state)
 	}
 }
 
+static unsigned int get_quota_size(struct quota *quota, unsigned int *len)
+{
+	unsigned int q;
+	unsigned int n = 0;
+
+	for (q = 0; q < ACC_N; q++) {
+		if (!quota_adm[q].name)
+			continue;
+		if (quota[q].val[Q_IDX_HARD] != Q_VAL_DISABLED) {
+			n++;
+			*len += strlen(quota_adm[q].name) + 1;
+		}
+		if (quota[q].val[Q_IDX_SOFT] != Q_VAL_DISABLED) {
+			n++;
+			*len += strlen(quota_adm[q].name) + 5 + 1;
+		}
+	}
+
+	return n;
+}
+
+static void build_quota_data(struct quota *quota, uint32_t *val, char *name)
+{
+	unsigned int q;
+	unsigned int n = 0;
+
+	for (q = 0; q < ACC_N; q++) {
+		if (!quota_adm[q].name)
+			continue;
+		if (quota[q].val[Q_IDX_HARD] != Q_VAL_DISABLED) {
+			val[n++] = quota[q].val[Q_IDX_HARD];
+			strcpy(name, quota_adm[q].name);
+			name += strlen(name) + 1;
+		}
+		if (quota[q].val[Q_IDX_SOFT] != Q_VAL_DISABLED) {
+			val[n++] = quota[q].val[Q_IDX_SOFT];
+			strcpy(name, "soft-");
+			strcpy(name + 5, quota_adm[q].name);
+			name += strlen(name) + 1;
+		}
+	}
+}
+
+static void parse_quota_data(const uint32_t *val, const char *name,
+			     unsigned int n, struct quota *quota)
+{
+	unsigned int i, q, idx;
+
+	for (i = 0; i < n; i++) {
+		if (!parse_quota_name(name, &q, &idx))
+			quota[q].val[idx] = val[i];
+		name += strlen(name) + 1;
+	}
+}
+
 static int dump_state_domain(const void *k, void *v, void *arg)
 {
 	struct domain *domain = v;
@@ -2049,6 +2125,53 @@ void read_state_domain(const void *ctx, const void *state, unsigned int version)
 		domain->features = sd->features;
 }
 
+const char *dump_state_glb_quota(FILE *fp)
+{
+	struct xs_state_record_header *head;
+	struct xs_state_glb_quota *glb;
+	void *record;
+	unsigned int n_quota;
+	unsigned int len = sizeof(*glb);
+	size_t ret;
+
+	n_quota = get_quota_size(quotas, &len);
+	len += n_quota * sizeof(glb->quota_val[0]);
+	len = ROUNDUP(len, 3);
+
+	record = talloc_size(NULL, len + sizeof(*head));
+	if (!record)
+		return "Dump global quota allocation error";
+
+	head = record;
+	head->type = XS_STATE_TYPE_GLB_QUOTA;
+	head->length = len;
+
+	glb = (struct xs_state_glb_quota *)(head + 1);
+	glb->n_dom_quota = n_quota;
+	glb->n_glob_quota = 0;
+
+	build_quota_data(quotas, glb->quota_val,
+			 (char *)(glb->quota_val + n_quota));
+
+	ret = fwrite(record, len + sizeof(*head), 1, fp);
+
+	talloc_free(record);
+
+	if (ret != 1 || dump_state_align(fp))
+		return "Dump global quota error";
+
+	return NULL;
+}
+
+void read_state_glb_quota(const void *ctx, const void *state)
+{
+	const struct xs_state_glb_quota *glb = state;
+	unsigned int n_quota = glb->n_dom_quota + glb->n_glob_quota;
+	const char *name = (const char *)(glb->quota_val + n_quota);
+
+	parse_quota_data(glb->quota_val, name, n_quota, quotas);
+}
+
 struct domain_acc {
 	unsigned int domid;
 	int nodes;
diff --git a/tools/xenstored/domain.h b/tools/xenstored/domain.h
index a6db358fdc..62ce3b3166 100644
--- a/tools/xenstored/domain.h
+++ b/tools/xenstored/domain.h
@@ -173,10 +173,12 @@ void wrl_apply_debit_trans_commit(struct connection *conn);
 
 const char *dump_state_connections(FILE *fp);
 const char *dump_state_domains(FILE *fp);
+const char *dump_state_glb_quota(FILE *fp);
 
 void read_state_connection(const void *ctx, const void *state);
 void read_state_domain(const void *ctx, const void *state,
 		       unsigned int version);
+void read_state_glb_quota(const void *ctx, const void *state);
 
 struct hashtable *domain_check_acc_init(void);
 void domain_check_acc_add(const struct node *node, struct hashtable *domains);
diff --git a/tools/xenstored/lu.c b/tools/xenstored/lu.c
index fa8395eb1e..eaffdbc69e 100644
--- a/tools/xenstored/lu.c
+++ b/tools/xenstored/lu.c
@@ -192,6 +192,9 @@ void lu_read_state(void)
 		case XS_STATE_TYPE_DOMAIN:
 			read_state_domain(ctx, state.buf, version);
 			break;
+		case XS_STATE_TYPE_GLB_QUOTA:
+			read_state_glb_quota(ctx, state.buf);
+			break;
 		default:
 			xprintf("live-update: unknown state record %08x\n",
 				head.type);
@@ -319,6 +322,9 @@ static const char *lu_dump_state(const void *ctx, struct connection *conn)
 	}
 
 	ret = dump_state_global(fp);
+	if (ret)
+		goto out;
+	ret = dump_state_glb_quota(fp);
 	if (ret)
 		goto out;
 	ret = dump_state_connections(fp);
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 05 13:52:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 13:52:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246681.1545818 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy984-0001aH-KE; Thu, 05 Mar 2026 13:52:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246681.1545818; Thu, 05 Mar 2026 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 1vy984-0001ZW-Fu; Thu, 05 Mar 2026 13:52:40 +0000
Received: by outflank-mailman (input) for mailman id 1246681;
 Thu, 05 Mar 2026 13:52: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=y0Pc=BF=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vy983-00008m-Dt
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 13:52:39 +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 91e25457-189a-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 14:52: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 958FC3ED7C;
 Thu,  5 Mar 2026 13:52: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 756F13EA68;
 Thu,  5 Mar 2026 13:52:37 +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 TT6VG6WKqWmETgAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 05 Mar 2026 13:52: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: 91e25457-189a-11f1-9ccf-f158ae23cfc8
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>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 05/11] tools/xenstored: split acc[] array in struct domain
Date: Thu,  5 Mar 2026 14:52:02 +0100
Message-ID: <20260305135208.2208663-6-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260305135208.2208663-1-jgross@suse.com>
References: <20260305135208.2208663-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: 958FC3ED7C
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Rspamd-Action: no action
X-Spam-Score: -4.00
X-Spam-Level: 
X-Spam-Flag: NO
X-Spamd-Result: default: False [-4.00 / 50.00];
	REPLY(-4.00)[]
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org

Prepare using per-domain quota by splitting the acc[] array in struct
domain into an array with the current accounting data, and an array
of type struct quota for the per-domain quota and the seen max value
of the domain.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/xenstored/domain.c | 34 ++++++++++++++++------------------
 1 file changed, 16 insertions(+), 18 deletions(-)

diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index 694ae58973..9bd3ac7aca 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -140,10 +140,8 @@ struct domain
 	bool introduced;
 
 	/* Accounting data for this domain. */
-	struct acc {
-		unsigned int val;
-		unsigned int max;
-	} acc[ACC_N];
+	unsigned int acc_val[ACC_N];
+	struct quota acc[ACC_N];
 
 	/* Memory quota data for this domain. */
 	bool soft_quota_reported;
@@ -410,7 +408,7 @@ bool domain_check_quota_add(struct domain *d, enum accitem what, int add)
 	if (add < 0 || !d)
 		return false;
 
-	return domain_check_quota_val(d, what, d->acc[what].val + add);
+	return domain_check_quota_val(d, what, d->acc_val[what] + add);
 }
 
 static bool check_indexes(XENSTORE_RING_IDX cons, XENSTORE_RING_IDX prod)
@@ -582,7 +580,7 @@ static int domain_tree_remove_sub(const void *ctx, struct connection *conn,
 		ret = WALK_TREE_SKIP_CHILDREN;
 	}
 
-	return domain->acc[ACC_NODES].val ? ret : WALK_TREE_SUCCESS_STOP;
+	return domain->acc_val[ACC_NODES] ? ret : WALK_TREE_SUCCESS_STOP;
 }
 
 static void domain_tree_remove(struct domain *domain)
@@ -590,7 +588,7 @@ static void domain_tree_remove(struct domain *domain)
 	int ret;
 	struct walk_funcs walkfuncs = { .enter = domain_tree_remove_sub };
 
-	if (domain->acc[ACC_NODES].val) {
+	if (domain->acc_val[ACC_NODES]) {
 		ret = walk_node_tree(domain, NULL, "/", &walkfuncs, domain);
 		if (ret == WALK_TREE_ERROR_STOP)
 			syslog(LOG_ERR,
@@ -774,7 +772,7 @@ int domain_get_quota(const void *ctx, struct connection *conn,
 			continue;
 		resp = talloc_asprintf_append(resp, "%-17s: %8u (max %8u)\n",
 					      quota_adm[i].name,
-					      d->acc[i].val, d->acc[i].max);
+					      d->acc_val[i], d->acc[i].max);
 		if (!resp)
 			return ENOMEM;
 	}
@@ -1637,10 +1635,10 @@ static int domain_acc_add_valid(struct domain *d, enum accitem what, int add)
 {
 	unsigned int val;
 
-	assert(what < ARRAY_SIZE(d->acc));
+	assert(what < ARRAY_SIZE(d->acc_val));
 
-	if ((add < 0 && -add > d->acc[what].val) ||
-	    (add > 0 && (INT_MAX - d->acc[what].val) < add)) {
+	if ((add < 0 && -add > d->acc_val[what]) ||
+	    (add > 0 && (INT_MAX - d->acc_val[what]) < add)) {
 		/*
 		 * In a transaction when a node is being added/removed AND the
 		 * same node has been added/removed outside the transaction in
@@ -1651,7 +1649,7 @@ static int domain_acc_add_valid(struct domain *d, enum accitem what, int add)
 		return (add < 0) ? 0 : INT_MAX;
 	}
 
-	val = d->acc[what].val + add;
+	val = d->acc_val[what] + add;
 	domain_acc_valid_max(d, what, val);
 
 	return val;
@@ -1710,10 +1708,10 @@ static int domain_acc_add(struct connection *conn, unsigned int domid,
 	}
 
 	trace_acc("global change domid %u: what=%u %u add %d\n", domid, what,
-		  d->acc[what].val, add);
-	d->acc[what].val = domain_acc_add_valid(d, what, add);
+		  d->acc_val[what], add);
+	d->acc_val[what] = domain_acc_add_valid(d, what, add);
 
-	return d->acc[what].val;
+	return d->acc_val[what];
 }
 
 void acc_drop(struct connection *conn)
@@ -1757,7 +1755,7 @@ static int domain_reset_global_acc_sub(const void *k, void *v, void *arg)
 	unsigned int i;
 
 	for (i = 0; i < ACC_N; i++)
-		d->acc[i].max = d->acc[i].val;
+		d->acc[i].max = d->acc_val[i];
 
 	return 0;
 }
@@ -2193,7 +2191,7 @@ static int domain_check_acc_init_sub(const void *k, void *v, void *arg)
 	 * If everything is correct incrementing the value for each node will
 	 * result in dom->nodes being 0 at the end.
 	 */
-	dom->nodes = -d->acc[ACC_NODES].val;
+	dom->nodes = -d->acc_val[ACC_NODES];
 
 	if (hashtable_add(domains, &dom->domid, dom)) {
 		talloc_free(dom);
@@ -2248,7 +2246,7 @@ static int domain_check_acc_cb(const void *k, void *v, void *arg)
 	if (!d)
 		return 0;
 
-	d->acc[ACC_NODES].val += dom->nodes;
+	d->acc_val[ACC_NODES] += dom->nodes;
 
 	return 0;
 }
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 05 13:52:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 13:52:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246687.1545827 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy988-00023M-R6; Thu, 05 Mar 2026 13:52:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246687.1545827; Thu, 05 Mar 2026 13:52:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy988-00023B-Nh; Thu, 05 Mar 2026 13:52:44 +0000
Received: by outflank-mailman (input) for mailman id 1246687;
 Thu, 05 Mar 2026 13:52: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=y0Pc=BF=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vy988-0008Mq-1F
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 13:52:44 +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 95177d18-189a-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 14:52:43 +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 0C8B83F925;
 Thu,  5 Mar 2026 13:52:43 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id DF2243EA68;
 Thu,  5 Mar 2026 13:52:42 +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 QQRMNaqKqWkITwAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 05 Mar 2026 13:52:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 95177d18-189a-11f1-b164-2bf370ae4941
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>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 06/11] tools/xenstored: add infrastructure for per-domain quotas
Date: Thu,  5 Mar 2026 14:52:03 +0100
Message-ID: <20260305135208.2208663-7-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260305135208.2208663-1-jgross@suse.com>
References: <20260305135208.2208663-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: 0C8B83F925
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Rspamd-Action: no action
X-Spam-Score: -4.00
X-Spam-Level: 
X-Spam-Flag: NO
X-Spamd-Result: default: False [-4.00 / 50.00];
	REPLY(-4.00)[]
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org

Add the needed structures and helper functions for supporting quotas
per domain.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/xenstored/domain.c | 59 ++++++++++++++++++++++++++++++----------
 1 file changed, 44 insertions(+), 15 deletions(-)

diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index 9bd3ac7aca..8e52351695 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -389,6 +389,9 @@ void wrl_apply_debit_trans_commit(struct connection *conn)
 
 static unsigned int domain_get_soft_quota(struct domain *d, enum accitem what)
 {
+	if (d && d->acc[what].val[Q_IDX_SOFT] != Q_VAL_DISABLED)
+		return d->acc[what].val[Q_IDX_SOFT];
+
 	return quotas[what].val[Q_IDX_SOFT];
 }
 
@@ -397,6 +400,9 @@ static bool domain_check_quota_val(struct domain *d, enum accitem what,
 {
 	unsigned int quota = quotas[what].val[Q_IDX_HARD];
 
+	if (d->acc[what].val[Q_IDX_HARD] != Q_VAL_DISABLED)
+		quota = d->acc[what].val[Q_IDX_HARD];
+
 	if (!quota || !domid_is_unprivileged(d->domid))
 		return false;
 
@@ -809,6 +815,7 @@ static struct domain *alloc_domain(const void *context, unsigned int domid,
 				   uint64_t unique_id)
 {
 	struct domain *domain;
+	unsigned int q;
 
 	domain = talloc_zero(context, struct domain);
 	if (!domain) {
@@ -822,6 +829,11 @@ static struct domain *alloc_domain(const void *context, unsigned int domid,
 	domain->introduced = false;
 	domain->features = XENSTORE_FEATURES;
 
+	for (q = 0; q < ACC_N; q++) {
+		domain->acc[q].val[Q_IDX_HARD] = quotas[q].val[Q_IDX_HARD];
+		domain->acc[q].val[Q_IDX_SOFT] = quotas[q].val[Q_IDX_SOFT];
+	}
+
 	if (hashtable_add(domhash, &domain->domid, domain)) {
 		talloc_free(domain);
 		errno = ENOMEM;
@@ -2079,25 +2091,38 @@ static int dump_state_domain(const void *k, void *v, void *arg)
 {
 	struct domain *domain = v;
 	FILE *fp = arg;
-	struct xs_state_domain sd;
-	struct xs_state_record_header head;
-
-	head.type = XS_STATE_TYPE_DOMAIN;
-	head.length = sizeof(sd);
-	memset(&sd, 0, sizeof(sd));
-	sd.domain_id = domain->domid;
+	struct xs_state_domain *sd;
+	struct xs_state_record_header *head;
+	void *record;
+	unsigned int n_quota;
+	unsigned int len = sizeof(*sd);
+	size_t ret;
 
-	if (lu_status->version > 1)
-		sd.features = domain->features;
+	n_quota = get_quota_size(domain->acc, &len);
+	len += n_quota * sizeof(sd->quota_val[0]);
+	len = ROUNDUP(len, 3);
 
-	if (fwrite(&head, sizeof(head), 1, fp) != 1)
-		return 1;
-	if (fwrite(&sd, sizeof(sd), 1, fp) != 1)
-		return 1;
-	if (dump_state_align(fp))
+	record = talloc_size(NULL, len + sizeof(*head));
+	if (!record)
 		return 1;
 
-	return 0;
+	head = record;
+	head->type = XS_STATE_TYPE_DOMAIN;
+	head->length = len;
+
+	sd = (struct xs_state_domain *)(head + 1);
+	sd->domain_id = domain->domid;
+	sd->n_quota = n_quota;
+	sd->features = (lu_status->version > 1) ? domain->features : 0;
+
+	build_quota_data(domain->acc, sd->quota_val,
+			 (char *)(sd->quota_val + n_quota));
+
+	ret = fwrite(record, len + sizeof(*head), 1, fp);
+
+	talloc_free(record);
+
+	return (ret != 1 || dump_state_align(fp)) ? 1 : 0;
 }
 
 const char *dump_state_domains(FILE *fp)
@@ -2114,6 +2139,8 @@ void read_state_domain(const void *ctx, const void *state, unsigned int version)
 {
 	const struct xs_state_domain *sd = state;
 	struct domain *domain;
+	unsigned int n_quota = sd->n_quota;
+	const char *name = (const char *)(sd->quota_val + n_quota);
 
 	domain = find_domain_struct(sd->domain_id);
 	if (!domain)
@@ -2121,6 +2148,8 @@ void read_state_domain(const void *ctx, const void *state, unsigned int version)
 
 	if (version > 1)
 		domain->features = sd->features;
+
+	parse_quota_data(sd->quota_val, name, n_quota, domain->acc);
 }
 
 const char *dump_state_glb_quota(FILE *fp)
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 05 13:56:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 13:56:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246722.1545839 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy9Bv-0003Yi-Cx; Thu, 05 Mar 2026 13:56:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246722.1545839; Thu, 05 Mar 2026 13:56:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy9Bv-0003Yb-8Q; Thu, 05 Mar 2026 13:56:39 +0000
Received: by outflank-mailman (input) for mailman id 1246722;
 Thu, 05 Mar 2026 13:56:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=00Q8=BF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vy9Bt-0003YV-Sw
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 13:56:37 +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 1f99a60b-189b-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 14:56:35 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-439c56e822eso2346811f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 05:56: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-439b34b6252sm34182860f8f.10.2026.03.05.05.56.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Mar 2026 05:56: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: 1f99a60b-189b-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772718995; x=1773323795; 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=FendGPAIk98VHbhLv0gYNMJLU5gwi51eXUlXYQkH8iQ=;
        b=ASEqV2L22YaEDPXUJDkhx/3EU1EckgsISGb+B9H3YZhUQZxStpf8pY2RtQf7V0J3zD
         lso5rL74oh2VXaJjQfABpx/tkCazG3Gt7/ERkg2tSw1R2bbWtdHaXnAQYicMKkiloh5j
         wqIadoyQVYJ0oZZ1O8RS6s3PsYpo9SsdGtqUlRMhg/JJIi5Pol/cQ86HUx/V9ZvRAK9y
         htVJ5Sy/wxfF39ZKDmsjl+wB2YZpssksiRChs9rhBTBKYq0XUxR0vPowJ1l5l5dUJwkA
         4EBYPAKYzsUPV0oWPdscfzkRCtijtdxWiC2lwvr2/zbmKvpoay9Sude4gCrJJ0GXBzny
         NoQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772718995; x=1773323795;
        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=FendGPAIk98VHbhLv0gYNMJLU5gwi51eXUlXYQkH8iQ=;
        b=sjETGAjL1Fh37Emc99rgjW5dJuT1N2Irq+bdyp41MYXjoHm7Y6Kucx5OZ0OXhNedDo
         tGz1VcFx8vJanBjd6pFpVfZk5Wls5sDNLj3fZ/plfmMbbl20cBc3Q67K24hucsqGFZmK
         NPyBMKg5DEjlUOo+KQnTkwgU0vwSy6/boOdvGYOnEguZMfstfwtbzMQZsYn8kwU0fjDi
         5mfnZcQxorHkqu8GXm1gmza1nfxvwGh46pZmEutMzUzYYwi3Rc6OqwxdRI5640GoHCgV
         vST561ZW0Bi6Z++5/U0VlVJGrMvIE4VS0MV0WFkICjxB0TzkdOSnMfwexYDCV2ko48cj
         Fg8w==
X-Gm-Message-State: AOJu0YwvBbgnMcwCfRE7r1GyGKwmyBA+DrxcsG8piXQLRUeLnxE+TQTP
	RM3YJVBT3yyQ+TrymW78Ga4/vkOhJkvurXa/xIVmDJ+z5XhdW8w671Cj9zG8ywMp9hPRlGB5+72
	h+1M=
X-Gm-Gg: ATEYQzxrj+oH6bpePzWc1UzZbJUdY31ZoEg0H1sJz8X23Jx8/emFcTRhXf8ZxbwJB9/
	4DOrj9NXAwg8Y9jfqvFaradE/onkInLsBkCpx86QpaQyappvl+z8DHbCGnyFzMTzuX83SP9/jlH
	WU8IzOzYHTkogUv1HUkQo1p8pll5XkCtgnf8xqbD+MXWz4RVYK/MDSD9/tCrqmMZNCc8aZEPRQq
	YORsLgEkgQR2fe2TabJqOxiaEzyRDAjt+uegVCvFWqYfgeTX6I2dxHC+0Cnyqp6OLtGtphjfELA
	xBhgnp8wzTOPZHd7ZCUzwEcNlifHbgsSFcuXUZPJ6IGIFLGRscx2YoRN+xQSvTETwgZhfM031PI
	9KWuHNiWWtfWlvi60tReASbAbij3YPgCeZjw+M/qdOrXdcInfPQnn/QNtZeB9FZl0hFeluu0svr
	tCpd20utDZBLIn/vec4AtBPE3noEZIIrUz/q3M/L0CDHTx/mWq/wLMFDAcfVACaa7MsyQbJUtZD
	N+86u4yKFKd/Xo=
X-Received: by 2002:a5d:5f83:0:b0:439:be78:e1e9 with SMTP id ffacd0b85a97d-439c7fadc99mr10784072f8f.14.1772718994779;
        Thu, 05 Mar 2026 05:56:34 -0800 (PST)
Message-ID: <689dae19-f83d-463f-95d9-c39c15a4e45c@suse.com>
Date: Thu, 5 Mar 2026 14:56:32 +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: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v6] vPCI: re-init extended-capabilities when MMCFG
 availability changed
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

When Dom0 informs us about MMCFG usability, this may change whether
extended capabilities are available (accessible) for devices. Zap what
might be on record, and re-initialize things.

No synchronization is added for the case where devices may already be in
use. That'll need sorting when (a) DomU support was added and (b) DomU-s
may run already while Dom0 / hwdom still boots (dom0less, Hyperlaunch).

vpci_cleanup_capabilities() also shouldn't have used
pci_find_ext_capability(), as already when the function was introduced
extended config space may not have been (properly) accessible anymore,
no matter whether it was during init. Extended capability cleanup hooks
need to cope with being called when the respective capability doesn't
exist (and hence the corresponding ->init() hook was never called).

Fixes: 70e6dace747e ("vpci: Use cleanup to free capability resource during deassign")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v6: Add comment in physdev_check_pci_extcfg(), while dropping the logging
    of a(nother) message there. Drop hwdom restriction from
    vpci_cleanup_capabilities(). In the re-init case don't bail early from
    vpci_init_capabilities(). Simplify assertion and re-order actions in
    vpci_reinit_ext_capabilities().
v5: Don't use pci_find_ext_capability() in vpci_cleanup_capabilities().
    Add assertion in vpci_reinit_ext_capabilities().
v4: Make sure ->cleanup() and ->init() are invoked.
v3: New.

--- a/xen/arch/x86/physdev.c
+++ b/xen/arch/x86/physdev.c
@@ -8,6 +8,8 @@
 #include <xen/guest_access.h>
 #include <xen/iocap.h>
 #include <xen/serial.h>
+#include <xen/vpci.h>
+
 #include <asm/current.h>
 #include <asm/io_apic.h>
 #include <asm/msi.h>
@@ -169,8 +171,19 @@ int cf_check physdev_check_pci_extcfg(st
 
     ASSERT(pdev->seg == info->segment);
     if ( pdev->bus >= info->start_bus && pdev->bus <= info->end_bus )
+    {
         pci_check_extcfg(pdev);
 
+        /*
+         * The re-init failing doesn't mean the device becomes entirely non-
+         * functional.  In case of failure, a message was already logged.
+         * Hence don't otherwise act upon failure.
+         *
+         * FIXME: Re-visit when DomU support is added to vPCI.
+         */
+        vpci_reinit_ext_capabilities(pdev);
+    }
+
     return 0;
 }
 #endif /* COMPAT */
--- a/xen/drivers/vpci/cap.c
+++ b/xen/drivers/vpci/cap.c
@@ -285,13 +285,16 @@ static int vpci_init_ext_capability_list
     return 0;
 }
 
-int vpci_init_capabilities(struct pci_dev *pdev)
+int vpci_init_capabilities(struct pci_dev *pdev, bool ext_only)
 {
-    int rc;
+    int rc, accum_rc = 0;
 
-    rc = vpci_init_capability_list(pdev);
-    if ( rc )
-        return rc;
+    if ( !ext_only )
+    {
+        rc = vpci_init_capability_list(pdev);
+        if ( rc )
+            return rc;
+    }
 
     rc = vpci_init_ext_capability_list(pdev);
     if ( rc )
@@ -305,7 +308,7 @@ int vpci_init_capabilities(struct pci_de
         unsigned int pos = 0;
 
         if ( !is_ext )
-            pos = pci_find_cap_offset(pdev->sbdf, cap);
+            pos = !ext_only ? pci_find_cap_offset(pdev->sbdf, cap) : 0;
         else if ( is_hardware_domain(pdev->domain) )
             pos = pci_find_ext_capability(pdev, cap);
 
@@ -341,30 +344,40 @@ int vpci_init_capabilities(struct pci_de
             {
                 printk(XENLOG_ERR "%pd %pp: hide %s cap %u fail rc=%d\n",
                        pdev->domain, &pdev->sbdf, type, cap, rc);
-                return rc;
+
+                /* Best effort for the re-init case. */
+                if ( !ext_only )
+                    return rc;
+
+                if ( !accum_rc )
+                    accum_rc = rc;
             }
         }
     }
 
-    return 0;
+    return accum_rc;
 }
 
-void vpci_cleanup_capabilities(struct pci_dev *pdev)
+void vpci_cleanup_capabilities(struct pci_dev *pdev, bool ext_only)
 {
     for ( unsigned int i = 0; i < NUM_VPCI_INIT; i++ )
     {
         const vpci_capability_t *capability = &__start_vpci_array[i];
         const unsigned int cap = capability->id;
-        unsigned int pos = 0;
 
         if ( !capability->cleanup )
             continue;
 
-        if ( !capability->is_ext )
-            pos = pci_find_cap_offset(pdev->sbdf, cap);
-        else if ( is_hardware_domain(pdev->domain) )
-            pos = pci_find_ext_capability(pdev, cap);
-        if ( pos )
+        /*
+         * Cannot call pci_find_ext_capability() here, as extended config space
+         * may (no longer) be accessible.  As a result, extended capability
+         * ->cleanup() handlers need to cope with being called despite ->init()
+         * never having been called.  Which in turn allows calling them even
+         * for DomU-s, no matter that vpci_init_capabilities() excludes them
+         * there for now.
+         */
+        if ( capability->is_ext
+             || (!ext_only && pci_find_cap_offset(pdev->sbdf, cap)) )
         {
             int rc = capability->cleanup(pdev, false);
 
@@ -376,6 +389,27 @@ void vpci_cleanup_capabilities(struct pc
     }
 }
 
+int vpci_reinit_ext_capabilities(struct pci_dev *pdev)
+{
+    if ( !pdev->vpci )
+        return 0;
+
+    /*
+     * FIXME: DomU support is missing.  For already running domains we may
+     * need to pause them around the entire re-evaluation of extended config
+     * space accessibility.
+     */
+    ASSERT(pdev->domain == hardware_domain);
+
+    if ( vpci_remove_registers(pdev->vpci, PCI_CFG_SPACE_SIZE,
+                               PCI_CFG_SPACE_EXP_SIZE - PCI_CFG_SPACE_SIZE) )
+        ASSERT_UNREACHABLE();
+
+    vpci_cleanup_capabilities(pdev, true);
+
+    return vpci_init_capabilities(pdev, true);
+}
+
 /*
  * Local variables:
  * mode: C
--- a/xen/drivers/vpci/private.h
+++ b/xen/drivers/vpci/private.h
@@ -46,8 +46,8 @@ typedef struct {
 
 int __must_check vpci_init_header(struct pci_dev *pdev);
 
-int vpci_init_capabilities(struct pci_dev *pdev);
-void vpci_cleanup_capabilities(struct pci_dev *pdev);
+int vpci_init_capabilities(struct pci_dev *pdev, bool ext_only);
+void vpci_cleanup_capabilities(struct pci_dev *pdev, bool ext_only);
 
 /* Add/remove a register handler. */
 int __must_check vpci_add_register_mask(struct vpci *vpci,
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -102,7 +102,7 @@ void vpci_deassign_device(struct pci_dev
                     &pdev->domain->vpci_dev_assigned_map);
 #endif
 
-    vpci_cleanup_capabilities(pdev);
+    vpci_cleanup_capabilities(pdev, false);
 
     spin_lock(&pdev->vpci->lock);
     while ( !list_empty(&pdev->vpci->handlers) )
@@ -159,7 +159,7 @@ int vpci_assign_device(struct pci_dev *p
     if ( rc )
         goto out;
 
-    rc = vpci_init_capabilities(pdev);
+    rc = vpci_init_capabilities(pdev, false);
 
  out:
     if ( rc )
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -25,6 +25,8 @@ int __must_check vpci_assign_device(stru
 /* Remove all handlers and free vpci related structures. */
 void vpci_deassign_device(struct pci_dev *pdev);
 
+int vpci_reinit_ext_capabilities(struct pci_dev *pdev);
+
 /* Generic read/write handlers for the PCI config space. */
 uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size);
 void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int size,
@@ -202,6 +204,11 @@ bool vpci_ecam_read(pci_sbdf_t sbdf, uns
 #else /* !CONFIG_HAS_VPCI */
 struct vpci_vcpu {};
 
+static inline int vpci_reinit_ext_capabilities(struct pci_dev *pdev)
+{
+    return 0;
+}
+
 static inline int vpci_assign_device(struct pci_dev *pdev)
 {
     return 0;


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 13:57:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 13:57:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246734.1545847 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy9Cs-00049t-LP; Thu, 05 Mar 2026 13:57:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246734.1545847; Thu, 05 Mar 2026 13:57:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy9Cs-00049m-I7; Thu, 05 Mar 2026 13:57:38 +0000
Received: by outflank-mailman (input) for mailman id 1246734;
 Thu, 05 Mar 2026 13:57: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=y0Pc=BF=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vy98F-00008m-5J
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 13:52:51 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 98646d41-189a-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 14:52:48 +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 748E75BEC7;
 Thu,  5 Mar 2026 13:52: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 54D0A3EA76;
 Thu,  5 Mar 2026 13:52:48 +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 n8KnE7CKqWkMTwAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 05 Mar 2026 13:52: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: 98646d41-189a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1772718768; 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=r+4ZO/KspblmGGLhGlNMkeWiLuNQLDCEDNiLJzLmjPY=;
	b=foug50Oxl/72LzeH5fthq6evZ/egSmCWIwtKH48ES5xxykx8PW6vFp7YvV9Mk5NBiS9sHD
	F5t+nvvLv8VTVuuis5HKMRGA1ne++NR0kV7fF4xsW49Erk9v25T3ITR9kxMCy/FKdwT1PN
	hJ0HsStVaIIJo4y2pRJUcrQrHmg4Wd4=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1772718768; 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=r+4ZO/KspblmGGLhGlNMkeWiLuNQLDCEDNiLJzLmjPY=;
	b=foug50Oxl/72LzeH5fthq6evZ/egSmCWIwtKH48ES5xxykx8PW6vFp7YvV9Mk5NBiS9sHD
	F5t+nvvLv8VTVuuis5HKMRGA1ne++NR0kV7fF4xsW49Erk9v25T3ITR9kxMCy/FKdwT1PN
	hJ0HsStVaIIJo4y2pRJUcrQrHmg4Wd4=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 07/11] tools/xenstored: implement the GET/SET_QUOTA commands
Date: Thu,  5 Mar 2026 14:52:04 +0100
Message-ID: <20260305135208.2208663-8-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260305135208.2208663-1-jgross@suse.com>
References: <20260305135208.2208663-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-6.79 / 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.19)[-0.964];
	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)[4];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -6.79
X-Spam-Level: 

Add the implementation of the GET_QUOTA and SET_QUOTA wire commands.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/xenstored/core.c   |   4 ++
 tools/xenstored/domain.c | 106 +++++++++++++++++++++++++++++++++++++++
 tools/xenstored/domain.h |   8 +++
 3 files changed, 118 insertions(+)

diff --git a/tools/xenstored/core.c b/tools/xenstored/core.c
index 8a06b35808..e283d47184 100644
--- a/tools/xenstored/core.c
+++ b/tools/xenstored/core.c
@@ -2034,6 +2034,10 @@ static struct {
 	    { "GET_FEATURE",   do_get_feature,  XS_FLAG_PRIV },
 	[XS_SET_FEATURE]       =
 	    { "SET_FEATURE",   do_set_feature,  XS_FLAG_PRIV },
+	[XS_GET_QUOTA]         =
+	    { "GET_QUOTA",     do_get_quota,    XS_FLAG_PRIV },
+	[XS_SET_QUOTA]         =
+	    { "SET_QUOTA",     do_set_quota,    XS_FLAG_PRIV },
 };
 
 static const char *sockmsg_string(enum xsd_sockmsg_type type)
diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index 8e52351695..c0bc8a3eb7 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -1363,6 +1363,112 @@ static bool parse_quota_name(const char *name, unsigned int *qidx,
 	return true;
 }
 
+int do_get_quota(const void *ctx, struct connection *conn,
+		 struct buffered_data *in)
+{
+	const char *vec[2];
+	unsigned int n_pars;
+	unsigned int domid;
+	unsigned int q;
+	unsigned int idx;
+	char *resp;
+	const char *name;
+	const struct quota *quota;
+	const struct domain *domain;
+
+	n_pars = get_strings(in, vec, ARRAY_SIZE(vec));
+
+	if (n_pars > 2)
+		return EINVAL;
+
+	if (n_pars == 0) {
+		resp = talloc_asprintf(ctx, "%s", "");
+		if (!resp)
+			return ENOMEM;
+		for (q = 0; q < ACC_N; q++) {
+			if (!quota_adm[q].name)
+				continue;
+			if (quotas[q].val[Q_IDX_HARD] != Q_VAL_DISABLED) {
+				resp = talloc_asprintf_append(resp, "%s%s",
+					*resp ? " " : "", quota_adm[q].name);
+				if (!resp)
+					return ENOMEM;
+			}
+			if (quotas[q].val[Q_IDX_SOFT] != Q_VAL_DISABLED) {
+				resp = talloc_asprintf_append(resp, "%ssoft-%s",
+					*resp ? " " : "", quota_adm[q].name);
+				if (!resp)
+					return ENOMEM;
+			}
+		}
+	} else {
+		if (n_pars == 1) {
+			quota = quotas;
+			name = vec[0];
+		} else {
+			domid = atoi(vec[0]);
+			domain = find_or_alloc_existing_domain(domid);
+			if (!domain)
+				return ENOENT;
+			quota = domain->acc;
+			name = vec[1];
+		}
+
+		if (parse_quota_name(name, &q, &idx))
+			return EINVAL;
+
+		resp = talloc_asprintf(ctx, "%u", quota[q].val[idx]);
+		if (!resp)
+			return ENOMEM;
+	}
+
+	send_reply(conn, XS_GET_QUOTA, resp, strlen(resp) + 1);
+
+	return 0;
+}
+
+int do_set_quota(const void *ctx, struct connection *conn,
+		 struct buffered_data *in)
+{
+	const char *vec[3];
+	unsigned int n_pars;
+	unsigned int domid;
+	unsigned int q;
+	unsigned int idx;
+	const char *name;
+	unsigned int val;
+	struct quota *quota;
+	struct domain *domain;
+
+	n_pars = get_strings(in, vec, ARRAY_SIZE(vec));
+
+	if (n_pars < 2 || n_pars > 3)
+		return EINVAL;
+
+	if (n_pars == 2) {
+		quota = quotas;
+		name = vec[0];
+		val = atoi(vec[1]);
+	} else {
+		domid = atoi(vec[0]);
+		domain = find_or_alloc_existing_domain(domid);
+		if (!domain)
+			return ENOENT;
+		quota = domain->acc;
+		name = vec[1];
+		val = atoi(vec[2]);
+	}
+
+	if (parse_quota_name(name, &q, &idx))
+		return EINVAL;
+
+	quota[q].val[idx] = val;
+
+	send_ack(conn, XS_SET_QUOTA);
+
+	return 0;
+}
+
 static int close_xgt_handle(void *_handle)
 {
 	xengnttab_close(*(xengnttab_handle **)_handle);
diff --git a/tools/xenstored/domain.h b/tools/xenstored/domain.h
index 62ce3b3166..6a06b0d1af 100644
--- a/tools/xenstored/domain.h
+++ b/tools/xenstored/domain.h
@@ -93,6 +93,14 @@ int do_get_feature(const void *ctx, struct connection *conn,
 int do_set_feature(const void *ctx, struct connection *conn,
 		   struct buffered_data *in);
 
+/* Get quota names or value */
+int do_get_quota(const void *ctx, struct connection *conn,
+		 struct buffered_data *in);
+
+/* Set quota value */
+int do_set_quota(const void *ctx, struct connection *conn,
+		 struct buffered_data *in);
+
 void domain_early_init(void);
 void domain_init(int evtfd);
 void init_domains(bool live_update);
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 05 13:58:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 13:58:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246746.1545858 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy9DJ-0004l1-Vv; Thu, 05 Mar 2026 13:58:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246746.1545858; Thu, 05 Mar 2026 13:58:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy9DJ-0004ks-TD; Thu, 05 Mar 2026 13:58:05 +0000
Received: by outflank-mailman (input) for mailman id 1246746;
 Thu, 05 Mar 2026 13:58: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=y0Pc=BF=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vy98P-0008Mq-P5
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 13:53:01 +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 9f7a8dd3-189a-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 14:53: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-out2.suse.de (Postfix) with ESMTPS id 5CC845BDE2;
 Thu,  5 Mar 2026 13:52:59 +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 3790B3EA68;
 Thu,  5 Mar 2026 13:52: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 AX2ADLuKqWkdTwAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 05 Mar 2026 13:52:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9f7a8dd3-189a-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1772718779; 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=+0vTnaLiNIbBDWIqxe6qxu0BI40b3mH2UzHvF/8/7sk=;
	b=klfusZ5eK/BCbJuwI8jkcOy1FBZfH3lLFFtXZ5cbMAIDCTV/fZ+HaE4DXwFtf6rfrk7mSW
	tY86rV0uUs+vbKeXv9rwhwHnlQn8kK6cIzwH+RjPXqK0Ar3Isc/qmA11M47kNVxMExrjeo
	cOfQPCSdK0HTgKIcZBzhYfrUi/Jnj4s=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1772718779; 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=+0vTnaLiNIbBDWIqxe6qxu0BI40b3mH2UzHvF/8/7sk=;
	b=klfusZ5eK/BCbJuwI8jkcOy1FBZfH3lLFFtXZ5cbMAIDCTV/fZ+HaE4DXwFtf6rfrk7mSW
	tY86rV0uUs+vbKeXv9rwhwHnlQn8kK6cIzwH+RjPXqK0Ar3Isc/qmA11M47kNVxMExrjeo
	cOfQPCSdK0HTgKIcZBzhYfrUi/Jnj4s=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Nick Rosbrook <enr0n@ubuntu.com>,
	George Dunlap <gwd@xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 09/11] tools/libxl: add support for xenstore quota in domain_config
Date: Thu,  5 Mar 2026 14:52:06 +0100
Message-ID: <20260305135208.2208663-10-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260305135208.2208663-1-jgross@suse.com>
References: <20260305135208.2208663-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-6.79 / 50.00];
	REPLY(-4.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.19)[-0.967];
	MIME_GOOD(-0.10)[text/plain];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_HAS_DN(0.00)[];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	TO_DN_SOME(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCPT_COUNT_FIVE(0.00)[5];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -6.79
X-Spam-Level: 

Add support for xenstore quota in the struct domain_config. Initially
it will be used only for migration of a domain.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/golang/xenlight/helpers.gen.go |  6 ++++++
 tools/golang/xenlight/types.gen.go   |  1 +
 tools/libs/light/libxl_dom.c         |  8 ++++++++
 tools/libs/light/libxl_domain.c      | 10 ++++++++++
 tools/libs/light/libxl_types.idl     |  1 +
 5 files changed, 26 insertions(+)

diff --git a/tools/golang/xenlight/helpers.gen.go b/tools/golang/xenlight/helpers.gen.go
index 6c9af904c5..416c2d3e07 100644
--- a/tools/golang/xenlight/helpers.gen.go
+++ b/tools/golang/xenlight/helpers.gen.go
@@ -1286,6 +1286,9 @@ if err := x.TrapUnmappedAccesses.fromC(&xc.trap_unmapped_accesses);err != nil {
 return fmt.Errorf("converting field TrapUnmappedAccesses: %v", err)
 }
 x.XenstoreFeatureMask = uint32(xc.xenstore_feature_mask)
+if err := x.XenstoreQuota.fromC(&xc.xenstore_quota);err != nil {
+return fmt.Errorf("converting field XenstoreQuota: %v", err)
+}
 
  return nil}
 
@@ -1825,6 +1828,9 @@ if err := x.TrapUnmappedAccesses.toC(&xc.trap_unmapped_accesses); err != nil {
 return fmt.Errorf("converting field TrapUnmappedAccesses: %v", err)
 }
 xc.xenstore_feature_mask = C.uint32_t(x.XenstoreFeatureMask)
+if err := x.XenstoreQuota.toC(&xc.xenstore_quota); err != nil {
+return fmt.Errorf("converting field XenstoreQuota: %v", err)
+}
 
  return nil
  }
diff --git a/tools/golang/xenlight/types.gen.go b/tools/golang/xenlight/types.gen.go
index 5393277190..7e7292cf70 100644
--- a/tools/golang/xenlight/types.gen.go
+++ b/tools/golang/xenlight/types.gen.go
@@ -629,6 +629,7 @@ VmtraceBufKb int
 Vpmu Defbool
 TrapUnmappedAccesses Defbool
 XenstoreFeatureMask uint32
+XenstoreQuota XsQuotaSet
 }
 
 type DomainBuildInfoTypeUnion interface {
diff --git a/tools/libs/light/libxl_dom.c b/tools/libs/light/libxl_dom.c
index 05ebc69534..1c0689d7ff 100644
--- a/tools/libs/light/libxl_dom.c
+++ b/tools/libs/light/libxl_dom.c
@@ -509,6 +509,14 @@ retry_transaction:
 
     xs_introduce_domain(ctx->xsh, domid, state->store_mfn, state->store_port);
 
+    if (info->xenstore_quota.num_quota) {
+        rc = libxl_xsquota_domain_set(ctx, domid, &info->xenstore_quota);
+        if (rc) {
+            LOGED(ERROR, domid, "Failed to set Xenstore quota");
+            goto out;
+        }
+    }
+
  out:
     free(vm_path);
     return rc;
diff --git a/tools/libs/light/libxl_domain.c b/tools/libs/light/libxl_domain.c
index 5be47f687f..86e43e7133 100644
--- a/tools/libs/light/libxl_domain.c
+++ b/tools/libs/light/libxl_domain.c
@@ -2533,6 +2533,16 @@ static void retrieve_domain_configuration_end(libxl__egc *egc,
         }
     }
 
+    /* Xenstore quota */
+    {
+        libxl_xs_quota_set_dispose(&d_config->b_info.xenstore_quota);
+        rc = libxl_xsquota_domain_get(CTX, domid, &d_config->b_info.xenstore_quota);
+        if (rc) {
+            LOGD(ERROR, domid, "Fail to get xenstore quota");
+            goto out;
+        }
+    }
+
     /* Devices: disk, nic, vtpm, pcidev etc. */
 
     /* The MERGE macro implements following logic:
diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
index c5ddc40f35..ee8f89e462 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -760,6 +760,7 @@ libxl_domain_build_info = Struct("domain_build_info",[
     ("vpmu", libxl_defbool),
     ("trap_unmapped_accesses", libxl_defbool),
     ("xenstore_feature_mask", uint32, {'init_val': '~0U'}),
+    ("xenstore_quota", libxl_xs_quota_set),
 
     ], dir=DIR_IN,
        copy_deprecated_fn="libxl__domain_build_info_copy_deprecated",
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 05 13:58:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 13:58:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246747.1545863 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy9DK-0004mk-9N; Thu, 05 Mar 2026 13:58:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246747.1545863; Thu, 05 Mar 2026 13:58:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy9DK-0004ln-3X; Thu, 05 Mar 2026 13:58:06 +0000
Received: by outflank-mailman (input) for mailman id 1246747;
 Thu, 05 Mar 2026 13:58: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=y0Pc=BF=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vy98K-00008m-OP
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 13:52:57 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de
 [2a07:de40:b251:101:10:150:64:1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9bbd47c8-189a-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 14:52: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-out1.suse.de (Postfix) with ESMTPS id E26253F8B7;
 Thu,  5 Mar 2026 13:52: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 BD3CA3EA68;
 Thu,  5 Mar 2026 13:52: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 jhIiLbWKqWkWTwAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 05 Mar 2026 13:52:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9bbd47c8-189a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1772718774; 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=OVzJ3vkzk9Kd/2UKnmB2k8cly65avjJkTaC6JZd+bg8=;
	b=iKGXaH4Yp+kB1FiF6PRKGT2+/U1JBirZdLjmovQ8VwqOXgUSAPvePz1hqJ/UmwX53A0wfo
	cc8MYRfeXMocMiiSMH6DQNZnpNKAQr3eH/UXAtKe5Bz+sklgRvztjHfxqVlYcmiHz6MHAf
	xXkvIen6QoIVh2dIVwiGWgKWkoWAjAs=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1772718773; 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=OVzJ3vkzk9Kd/2UKnmB2k8cly65avjJkTaC6JZd+bg8=;
	b=U+3yZC/uzXKjWhzK8thLKyTThh9gbe3VUgm/crOtHn49WnU6SlfsqSuXs4zWhbdI4d5Bkg
	5E7mTdTRdJBAMHxM/sESqw/kvWlT5NGPcKq6bfLxKiM82/x+SIiGLawDUL1hXJCtG6mjwG
	RfX7PD9+RxFFkgh7YFXc8RRLry9O1L4=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Nick Rosbrook <enr0n@ubuntu.com>,
	George Dunlap <gwd@xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 08/11] tools/libxl: add functions for retrieving and setting xenstore quota
Date: Thu,  5 Mar 2026 14:52:05 +0100
Message-ID: <20260305135208.2208663-9-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260305135208.2208663-1-jgross@suse.com>
References: <20260305135208.2208663-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-6.79 / 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.19)[-0.940];
	MIME_GOOD(-0.10)[text/plain];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_HAS_DN(0.00)[];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	TO_DN_SOME(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCPT_COUNT_FIVE(0.00)[5];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -6.79
X-Spam-Level: 

Add some functions allowing to retrieve and set Xenstore quota (either
global or domain specific).

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/golang/xenlight/helpers.gen.go |  78 ++++++++++++++++++++
 tools/golang/xenlight/types.gen.go   |   9 +++
 tools/include/libxl.h                |  20 ++++++
 tools/libs/light/Makefile            |   1 +
 tools/libs/light/libxl_types.idl     |   9 +++
 tools/libs/light/libxl_xsquota.c     | 102 +++++++++++++++++++++++++++
 6 files changed, 219 insertions(+)
 create mode 100644 tools/libs/light/libxl_xsquota.c

diff --git a/tools/golang/xenlight/helpers.gen.go b/tools/golang/xenlight/helpers.gen.go
index 8909fe8a1b..6c9af904c5 100644
--- a/tools/golang/xenlight/helpers.gen.go
+++ b/tools/golang/xenlight/helpers.gen.go
@@ -998,6 +998,84 @@ xc.policy = C.libxl_rdm_reserve_policy(x.Policy)
  return nil
  }
 
+// NewXsQuotaItem returns an instance of XsQuotaItem initialized with defaults.
+func NewXsQuotaItem() (*XsQuotaItem, error) {
+var (
+x XsQuotaItem
+xc C.libxl_xs_quota_item)
+
+C.libxl_xs_quota_item_init(&xc)
+defer C.libxl_xs_quota_item_dispose(&xc)
+
+if err := x.fromC(&xc); err != nil {
+return nil, err }
+
+return &x, nil}
+
+func (x *XsQuotaItem) fromC(xc *C.libxl_xs_quota_item) error {
+ x.Name = C.GoString(xc.name)
+x.Val = uint32(xc.val)
+
+ return nil}
+
+func (x *XsQuotaItem) toC(xc *C.libxl_xs_quota_item) (err error){defer func(){
+if err != nil{
+C.libxl_xs_quota_item_dispose(xc)}
+}()
+
+if x.Name != "" {
+xc.name = C.CString(x.Name)}
+xc.val = C.uint32_t(x.Val)
+
+ return nil
+ }
+
+// NewXsQuotaSet returns an instance of XsQuotaSet initialized with defaults.
+func NewXsQuotaSet() (*XsQuotaSet, error) {
+var (
+x XsQuotaSet
+xc C.libxl_xs_quota_set)
+
+C.libxl_xs_quota_set_init(&xc)
+defer C.libxl_xs_quota_set_dispose(&xc)
+
+if err := x.fromC(&xc); err != nil {
+return nil, err }
+
+return &x, nil}
+
+func (x *XsQuotaSet) fromC(xc *C.libxl_xs_quota_set) error {
+ x.Quota = nil
+if n := int(xc.num_quota); n > 0 {
+cQuota := (*[1<<28]C.libxl_xs_quota_item)(unsafe.Pointer(xc.quota))[:n:n]
+x.Quota = make([]XsQuotaItem, n)
+for i, v := range cQuota {
+if err := x.Quota[i].fromC(&v); err != nil {
+return fmt.Errorf("converting field Quota: %v", err) }
+}
+}
+
+ return nil}
+
+func (x *XsQuotaSet) toC(xc *C.libxl_xs_quota_set) (err error){defer func(){
+if err != nil{
+C.libxl_xs_quota_set_dispose(xc)}
+}()
+
+if numQuota := len(x.Quota); numQuota > 0 {
+xc.quota = (*C.libxl_xs_quota_item)(C.malloc(C.ulong(numQuota)*C.sizeof_libxl_xs_quota_item))
+xc.num_quota = C.int(numQuota)
+cQuota := (*[1<<28]C.libxl_xs_quota_item)(unsafe.Pointer(xc.quota))[:numQuota:numQuota]
+for i,v := range x.Quota {
+if err := v.toC(&cQuota[i]); err != nil {
+return fmt.Errorf("converting field Quota: %v", err)
+}
+}
+}
+
+ return nil
+ }
+
 // NewDomainBuildInfo returns an instance of DomainBuildInfo initialized with defaults.
 func NewDomainBuildInfo(dtype DomainType) (*DomainBuildInfo, error) {
 var (
diff --git a/tools/golang/xenlight/types.gen.go b/tools/golang/xenlight/types.gen.go
index ab9d4ca7b4..5393277190 100644
--- a/tools/golang/xenlight/types.gen.go
+++ b/tools/golang/xenlight/types.gen.go
@@ -543,6 +543,15 @@ Altp2MModeExternal Altp2MMode = 2
 Altp2MModeLimited Altp2MMode = 3
 )
 
+type XsQuotaItem struct {
+Name string
+Val uint32
+}
+
+type XsQuotaSet struct {
+Quota []XsQuotaItem
+}
+
 type DomainBuildInfo struct {
 MaxVcpus int
 AvailVcpus Bitmap
diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index bc35e412da..a70d9d347f 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -1537,6 +1537,18 @@ void libxl_mac_copy(libxl_ctx *ctx, libxl_mac *dst, const libxl_mac *src);
  */
 #define LIBXL_HAVE_XEN_PLATFORM_PCI_BAR_UC
 
+/*
+ * LIBXL_HAVE_XENSTORE_QUOTA
+ *
+ * If this is defined the Xenstore quota related functions
+ * libxl_xsquota_global_get()
+ * libxl_xsquota_global_set()
+ * libxl_xsquota_domain_get()
+ * libxl_xsquota_domain_set()
+ * are available.
+ */
+#define LIBXL_HAVE_XENSTORE_QUOTA
+
 typedef char **libxl_string_list;
 void libxl_string_list_dispose(libxl_string_list *sl);
 int libxl_string_list_length(const libxl_string_list *sl);
@@ -3011,6 +3023,14 @@ static inline int libxl_qemu_monitor_command_0x041200(libxl_ctx *ctx,
 #define libxl_qemu_monitor_command libxl_qemu_monitor_command_0x041200
 #endif
 
+/* Get/set global and per-domain Xenstore quota. */
+int libxl_xsquota_global_get(libxl_ctx *ctx, libxl_xs_quota_set *q);
+int libxl_xsquota_global_set(libxl_ctx *ctx, libxl_xs_quota_set *q);
+int libxl_xsquota_domain_get(libxl_ctx *ctx, uint32_t domid,
+                             libxl_xs_quota_set *q);
+int libxl_xsquota_domain_set(libxl_ctx *ctx, uint32_t domid,
+                             libxl_xs_quota_set *q);
+
 #include <libxl_event.h>
 
 /*
diff --git a/tools/libs/light/Makefile b/tools/libs/light/Makefile
index bc60c46558..ca22a40c6c 100644
--- a/tools/libs/light/Makefile
+++ b/tools/libs/light/Makefile
@@ -106,6 +106,7 @@ OBJS-y += libxl_pvcalls.o
 OBJS-y += libxl_vsnd.o
 OBJS-y += libxl_vkb.o
 OBJS-y += libxl_virtio.o
+OBJS-y += libxl_xsquota.o
 OBJS-y += libxl_genid.o
 OBJS-y += _libxl_types.o
 OBJS-y += libxl_flask.o
diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
index d64a573ff3..c5ddc40f35 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -574,6 +574,15 @@ libxl_altp2m_mode = Enumeration("altp2m_mode", [
     (3, "limited"),
     ], init_val = "LIBXL_ALTP2M_MODE_DISABLED")
 
+libxl_xs_quota_item = Struct("xs_quota_item", [
+    ("name", string),
+    ("val",  uint32),
+    ])
+
+libxl_xs_quota_set = Struct("xs_quota_set", [
+    ("quota", Array(libxl_xs_quota_item, "num_quota"))
+    ])
+
 libxl_domain_build_info = Struct("domain_build_info",[
     ("max_vcpus",       integer),
     ("avail_vcpus",     libxl_bitmap),
diff --git a/tools/libs/light/libxl_xsquota.c b/tools/libs/light/libxl_xsquota.c
new file mode 100644
index 0000000000..b9afa1c914
--- /dev/null
+++ b/tools/libs/light/libxl_xsquota.c
@@ -0,0 +1,102 @@
+/* SPDX-License-Identifier: LGPL-2.1-only */
+
+/* Xenstore quota handling functions. */
+
+#include "libxl_internal.h"
+
+static int get_quota(libxl_ctx *ctx, unsigned int domid, libxl_xs_quota_set *q,
+                     bool (func)(struct xs_handle *h, unsigned int domid,
+                                 char *quota, unsigned int *value))
+{
+    char **names;
+    unsigned int num, i;
+    int rc = 0;
+    GC_INIT(ctx);
+
+    names = xs_get_quota_names(ctx->xsh, &num);
+    if (!names) {
+        /* Xenstore quota support is optional! */
+        if (errno != ENOSYS)
+            rc = ERROR_FAIL;
+        q->num_quota = 0;
+        goto out;
+    }
+
+    q->num_quota = num;
+    q->quota = libxl__calloc(NOGC, num, sizeof(*q->quota));
+    for (i = 0; i < num; i++) {
+        q->quota[i].name = libxl__strdup(NOGC, names[i]);
+        if (!func(ctx->xsh, domid, q->quota[i].name, &q->quota[i].val)) {
+            libxl_xs_quota_set_dispose(q);
+            rc = ERROR_FAIL;
+            break;
+        }
+    }
+
+    free(names);
+
+ out:
+    GC_FREE;
+    return rc;
+}
+
+static int set_quota(libxl_ctx *ctx, unsigned int domid, libxl_xs_quota_set *q,
+                     bool (func)(struct xs_handle *h, unsigned int domid,
+                                 char *quota, unsigned int value))
+{
+    unsigned int i;
+    int rc = 0;
+    GC_INIT(ctx);
+
+    for (i = 0; i < q->num_quota; i++) {
+        if (!func(ctx->xsh, domid, q->quota[i].name, q->quota[i].val)) {
+            rc = ERROR_FAIL;
+            break;
+        }
+    }
+
+    GC_FREE;
+    return rc;
+}
+
+static bool get_global_quota(struct xs_handle *h, unsigned int domid,
+                             char *quota, unsigned int *value)
+{
+    return xs_get_global_quota(h, quota, value);
+}
+
+int libxl_xsquota_global_get(libxl_ctx *ctx, libxl_xs_quota_set *q)
+{
+    return get_quota(ctx, 0, q, get_global_quota);
+}
+
+static bool set_global_quota(struct xs_handle *h, unsigned int domid,
+                             char *quota, unsigned int value)
+{
+    return xs_set_global_quota(h, quota, value);
+}
+
+int libxl_xsquota_global_set(libxl_ctx *ctx, libxl_xs_quota_set *q)
+{
+    return set_quota(ctx, 0, q, set_global_quota);;
+}
+
+int libxl_xsquota_domain_get(libxl_ctx *ctx, uint32_t domid,
+                             libxl_xs_quota_set *q)
+{
+    return get_quota(ctx, domid, q, xs_get_domain_quota);
+}
+
+int libxl_xsquota_domain_set(libxl_ctx *ctx, uint32_t domid,
+                             libxl_xs_quota_set *q)
+{
+    return set_quota(ctx, domid, q, xs_set_domain_quota);
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 05 13:58:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 13:58:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246748.1545868 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy9DK-0004t4-Hw; Thu, 05 Mar 2026 13:58:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246748.1545868; Thu, 05 Mar 2026 13:58:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy9DK-0004rp-Cg; Thu, 05 Mar 2026 13:58:06 +0000
Received: by outflank-mailman (input) for mailman id 1246748;
 Thu, 05 Mar 2026 13:58: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=y0Pc=BF=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vy98U-00008m-Nz
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 13:53:06 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a217b1b9-189a-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 14:53: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-out2.suse.de (Postfix) with ESMTPS id C4B155BDE2;
 Thu,  5 Mar 2026 13:53: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 A8D5B3EA68;
 Thu,  5 Mar 2026 13:53:04 +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 Dg0lKMCKqWkmTwAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 05 Mar 2026 13:53:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a217b1b9-189a-11f1-9ccf-f158ae23cfc8
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 10/11] tools/xl: add xl commands for xenstore quota operations
Date: Thu,  5 Mar 2026 14:52:07 +0100
Message-ID: <20260305135208.2208663-11-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260305135208.2208663-1-jgross@suse.com>
References: <20260305135208.2208663-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-4.00 / 50.00];
	REPLY(-4.00)[]
X-Rspamd-Queue-Id: C4B155BDE2
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: 

Add "xl xenstore-quota-get" and "xl xenstore-quota-set" commands for
retrieving and setting global and per-domain Xenstore quota.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/xl/Makefile      |  1 +
 tools/xl/xl.h          |  2 +
 tools/xl/xl_cmdtable.c | 10 +++++
 tools/xl/xl_parse.c    | 25 ++++++++++++
 tools/xl/xl_parse.h    |  1 +
 tools/xl/xl_xsquota.c  | 88 ++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 127 insertions(+)
 create mode 100644 tools/xl/xl_xsquota.c

diff --git a/tools/xl/Makefile b/tools/xl/Makefile
index 973ff0e1a2..e4eed8be13 100644
--- a/tools/xl/Makefile
+++ b/tools/xl/Makefile
@@ -24,6 +24,7 @@ XL_OBJS += xl_sched.o xl_pci.o xl_vcpu.o xl_cdrom.o xl_mem.o
 XL_OBJS += xl_info.o xl_console.o xl_misc.o
 XL_OBJS += xl_vmcontrol.o xl_saverestore.o xl_migrate.o
 XL_OBJS += xl_vdispl.o xl_vsnd.o xl_vkb.o
+XL_OBJS += xl_xsquota.o
 
 $(XL_OBJS): CFLAGS += $(CFLAGS_libxentoollog)
 $(XL_OBJS): CFLAGS += $(CFLAGS_XL)
diff --git a/tools/xl/xl.h b/tools/xl/xl.h
index 9000df00de..0efc07a6ba 100644
--- a/tools/xl/xl.h
+++ b/tools/xl/xl.h
@@ -217,6 +217,8 @@ int main_psr_mba_set(int argc, char **argv);
 int main_psr_mba_show(int argc, char **argv);
 #endif
 int main_qemu_monitor_command(int argc, char **argv);
+int main_xsquota_get(int argc, char **argv);
+int main_xsquota_set(int argc, char **argv);
 
 void help(const char *command);
 
diff --git a/tools/xl/xl_cmdtable.c b/tools/xl/xl_cmdtable.c
index 06a0039718..3de12b12ae 100644
--- a/tools/xl/xl_cmdtable.c
+++ b/tools/xl/xl_cmdtable.c
@@ -649,6 +649,16 @@ const struct cmd_spec cmd_table[] = {
       "-h print this help\n"
     },
 #endif
+    { "xenstore-quota-get",
+      &main_xsquota_get, 0, 0,
+      "List global or domain specific Xenstore quota data",
+      "<Domain>|-g",
+    },
+    { "xenstore-quota-set",
+      &main_xsquota_set, 0, 1,
+      "Set global or domain specific Xenstore quota data",
+      "<Domain>|-g <quota>=<val>...",
+    },
 };
 
 const int cmdtable_len = ARRAY_SIZE(cmd_table);
diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index 1a2ea8b5d5..934ad4eeef 100644
--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -1314,6 +1314,31 @@ out:
     return ret;
 }
 
+int parse_xsquota_item(const char *buf, struct libxl_xs_quota_item *item)
+{
+    const char *eq;
+    char *endptr;
+
+    eq = strchr(buf, '=');
+    if (!eq) {
+        fprintf(stderr, "Quota specification \"%s\" lacks \"=\".\n", buf);
+        return ERROR_INVAL;
+    }
+    errno = 0;
+    item->name = strndup(buf, eq - buf);
+    if (!item->name)
+        return ERROR_NOMEM;
+    item->val = strtoul(eq + 1, &endptr, 0);
+    if (errno || !eq[1] || *endptr) {
+        fprintf(stderr,
+                "Quota specification \"%s\" uses illegal value \"%s\".\n",
+                buf, eq);
+        return ERROR_INVAL;
+    }
+
+    return 0;
+}
+
 void parse_config_data(const char *config_source,
                        const char *config_data,
                        int config_len,
diff --git a/tools/xl/xl_parse.h b/tools/xl/xl_parse.h
index fe0d586cdd..57bb43a067 100644
--- a/tools/xl/xl_parse.h
+++ b/tools/xl/xl_parse.h
@@ -36,6 +36,7 @@ int parse_nic_config(libxl_device_nic *nic, XLU_Config **config, char *token);
 int parse_vdispl_config(libxl_device_vdispl *vdispl, char *token);
 int parse_vsnd_item(libxl_device_vsnd *vsnd, const char *spec);
 int parse_vkb_config(libxl_device_vkb *vkb, char *token);
+int parse_xsquota_item(const char *buf, struct libxl_xs_quota_item *item);
 
 int match_option_size(const char *prefix, size_t len,
                       char *arg, char **argopt);
diff --git a/tools/xl/xl_xsquota.c b/tools/xl/xl_xsquota.c
new file mode 100644
index 0000000000..eaf19feac8
--- /dev/null
+++ b/tools/xl/xl_xsquota.c
@@ -0,0 +1,88 @@
+/* SPDX-License-Identifier: LGPL-2.1-only */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <libxl.h>
+#include <libxlutil.h>
+
+#include "xl.h"
+#include "xl_utils.h"
+#include "xl_parse.h"
+
+int main_xsquota_get(int argc, char **argv)
+{
+    libxl_xs_quota_set q;
+    unsigned int i;
+    int rc;
+
+    if (argc != 2) {
+        fprintf(stderr, "Domain or \"-g\" must be specified.\n");
+        return EXIT_FAILURE;
+    }
+
+    if (!strcmp(argv[1], "-g")) {
+        rc = libxl_xsquota_global_get(ctx, &q);
+    } else {
+        uint32_t domid = find_domain(argv[1]);
+
+        rc = libxl_xsquota_domain_get(ctx, domid, &q);
+    }
+
+    if (rc) {
+        fprintf(stderr, "Quota could not be obtained.\n");
+        return EXIT_FAILURE;
+    }
+
+    printf("Quota name           Quota value\n");
+    printf("--------------------------------\n");
+    for (i = 0; i < q.num_quota; i++)
+        printf("%-20s %8u\n", q.quota[i].name, q.quota[i].val);
+
+    libxl_xs_quota_set_dispose(&q);
+
+    return EXIT_SUCCESS;
+}
+
+int main_xsquota_set(int argc, char **argv)
+{
+    unsigned int i;
+    libxl_xs_quota_set q;
+    int rc = EXIT_FAILURE;
+
+    if (argc < 3) {
+        fprintf(stderr, "Not enough parameters.\n");
+        return EXIT_FAILURE;
+    }
+
+    q.num_quota = argc - 2;
+    q.quota = calloc(q.num_quota, sizeof(*q.quota));
+    if (!q.quota) {
+        fprintf(stderr, "Memory allocation failure!\n");
+        goto err;
+    }
+
+    for (i = 2; i < argc; i++) {
+        if (parse_xsquota_item(argv[i], q.quota + i - 2))
+            goto err;
+    }
+
+    if (!strcmp(argv[1], "-g")) {
+         rc = libxl_xsquota_global_set(ctx, &q);
+    } else {
+        uint32_t domid = find_domain(argv[1]);
+
+        rc = libxl_xsquota_domain_set(ctx, domid, &q);
+    }
+
+    if (rc) {
+        fprintf(stderr, "Quota could not be set.\n");
+        rc = EXIT_FAILURE;
+    } else {
+        rc = EXIT_SUCCESS;
+    }
+
+ err:
+    libxl_xs_quota_set_dispose(&q);
+
+    return rc;
+}
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 05 13:58:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 13:58:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246751.1545888 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy9DL-0005QS-VK; Thu, 05 Mar 2026 13:58:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246751.1545888; Thu, 05 Mar 2026 13: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 1vy9DL-0005PX-Pz; Thu, 05 Mar 2026 13:58:07 +0000
Received: by outflank-mailman (input) for mailman id 1246751;
 Thu, 05 Mar 2026 13:58: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=y0Pc=BF=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vy98a-00008m-2A
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 13:53:12 +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 a554fb30-189a-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 14:53:10 +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 37CAA5BD98;
 Thu,  5 Mar 2026 13:53: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 1BB9B3EA68;
 Thu,  5 Mar 2026 13:53: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 qQ2hBcaKqWktTwAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 05 Mar 2026 13:53: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: a554fb30-189a-11f1-9ccf-f158ae23cfc8
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 11/11] tools/xl: add support for xenstore quota setting via domain config
Date: Thu,  5 Mar 2026 14:52:08 +0100
Message-ID: <20260305135208.2208663-12-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260305135208.2208663-1-jgross@suse.com>
References: <20260305135208.2208663-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: 37CAA5BD98
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Rspamd-Action: no action
X-Spam-Score: -4.00
X-Spam-Level: 
X-Spam-Flag: NO
X-Spamd-Result: default: False [-4.00 / 50.00];
	REPLY(-4.00)[]
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org

Add a new "xenstore-quota" domain config parameter for setting the
Xenstore quota of a new domain via a list of <quota>=<val> items.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 docs/man/xl.cfg.5.pod.in | 13 +++++++++++++
 tools/xl/xl_parse.c      | 23 ++++++++++++++++++++++-
 2 files changed, 35 insertions(+), 1 deletion(-)

diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index 27c455210b..3aac0bc4fb 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -748,6 +748,19 @@ via the B<xl info -x> command in dom0.
 The default value is B<0xffffffff>, meaning that all possible Xenstore
 features are visible by the guest.
 
+=item B<xenstore_quota=[ QUOTA_SPEC, QUOTA_SPEC, ...]>
+
+Specifies Xenstore quota values of the domain, overriding the default
+values of Xenstore.
+
+Each B<QUOTA_SPEC> is a B<quota-name>=B<value> specification. The supported
+B<quota-name> identifiers can be obtained by the B<xl xenstore-quota-get -g>
+command. B<value> is a non-negative integer.
+
+As per-domain Xenstore quota are an optional Xenstore feature, the
+B<xenstore_quota> config parameter may not be supported by all Xenstore
+implementations.
+
 =back
 
 =head2 Devices
diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index 934ad4eeef..06a5b60736 100644
--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -1351,7 +1351,7 @@ void parse_config_data(const char *config_source,
     XLU_ConfigList *cpus, *vbds, *nics, *pcis, *cvfbs, *cpuids, *vtpms,
                    *usbctrls, *usbdevs, *p9devs, *vdispls, *pvcallsifs_devs;
     XLU_ConfigList *channels, *ioports, *irqs, *iomem, *viridian, *dtdevs,
-                   *mca_caps, *smbios, *llc_colors;
+                   *mca_caps, *smbios, *llc_colors, *xs_quota;
     int num_ioports, num_irqs, num_iomem, num_cpus, num_viridian, num_mca_caps;
     int num_smbios;
     int pci_power_mgmt = 0;
@@ -1360,6 +1360,7 @@ void parse_config_data(const char *config_source,
     int pci_seize = 0;
     int i, e;
     int num_llc_colors;
+    int num_xs_quota;
     char *kernel_basename;
 
     libxl_domain_create_info *c_info = &d_config->c_info;
@@ -1467,6 +1468,26 @@ void parse_config_data(const char *config_source,
     if (!xlu_cfg_get_long (config, "xenstore_feature_mask", &l, 0))
         b_info->xenstore_feature_mask = l;
 
+    if (!xlu_cfg_get_list(config, "xenstore_quota", &xs_quota, &num_xs_quota, 0)) {
+        b_info->xenstore_quota.num_quota = num_xs_quota;
+        b_info->xenstore_quota.quota = calloc(num_xs_quota, sizeof(* b_info->xenstore_quota.quota));
+        if (b_info->xenstore_quota.quota == NULL) {
+            fprintf(stderr, "unable to allocate memory for xenstore_quota\n");
+            exit(-1);
+        }
+
+        for (i = 0; i < num_xs_quota; i++) {
+           buf = xlu_cfg_get_listitem(xs_quota, i);
+           if (!buf) {
+                fprintf(stderr,
+                        "xl: Can't get element %d in Xenstore quota list\n", i);
+                exit(1);
+            }
+            if (parse_xsquota_item(buf, b_info->xenstore_quota.quota + i))
+                exit(1);
+        }
+    }
+
     libxl_domain_build_info_init_type(b_info, c_info->type);
 
     if (b_info->type == LIBXL_DOMAIN_TYPE_PVH) {
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 05 14:35:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 14:35:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246831.1545898 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy9nd-0003eW-N8; Thu, 05 Mar 2026 14:35:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246831.1545898; Thu, 05 Mar 2026 14:35:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vy9nd-0003eP-KE; Thu, 05 Mar 2026 14:35:37 +0000
Received: by outflank-mailman (input) for mailman id 1246831;
 Thu, 05 Mar 2026 14:35:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Giqy=BF=bounce.vates.tech=bounce-md_30504962.69a994b4.v1-13efca2423ce456a8fffcf306fd88959@srs-se1.protection.inumbo.net>)
 id 1vy9nc-0003eJ-TM
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 14:35:37 +0000
Received: from mail133-21.atl131.mandrillapp.com
 (mail133-21.atl131.mandrillapp.com [198.2.133.21])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 912783aa-18a0-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 15:35:34 +0100 (CET)
Received: from pmta13.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail133-21.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fRXBr2gGDz1XLMvF
 for <xen-devel@lists.xenproject.org>; Thu,  5 Mar 2026 14:35:32 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 13efca2423ce456a8fffcf306fd88959; Thu, 05 Mar 2026 14:35: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: 912783aa-18a0-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1772721332; x=1772991332;
	bh=bjjglNVu4C0tfbhCkLt2PLAJ8HDOll2Ntt8/ixuBhH0=;
	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=zXfHRxp+TrxQO5hhELYzBehD2iWfAkQ0DIPxDo7h8rzlod5nABEUdCh0SeP0z2TDg
	 7qX6G8LE5KCue0U9Is4AveKsLmNpHc8+Ym8544m4kgy6uC+FaxgD90awHbUsnrqkBB
	 r0XUw/L2RSyA1E1eCYzl8JyaSvsrRbJJadA/Yd7dGNzDQ13jTSLU+tnDx97sjUyR7x
	 1bK02eVxhdg87/ZvtHKo57D8Dfl3gntmYs8JwLfEzDv02jB6Xi0obTO3mI73xq79Du
	 YLIrMAy1BbuxlixnpZZ0BpvcUksAHrHpcFbmOsEGQGGFgdMTDUmlL/8X5Za+3IfeJ6
	 E4/2ufMoXj7Tw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1772721332; x=1772981832; i=teddy.astie@vates.tech;
	bh=bjjglNVu4C0tfbhCkLt2PLAJ8HDOll2Ntt8/ixuBhH0=;
	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=ThKiC8+JBioN8O+ChwxU+6Ucuj2UmP1MslB9Jj+uNp64bB4CXCOSV9M6yH2KghWvB
	 qWx1PpoN/efiNH3VT0rmZvRrhllZ8Lm5bEYS/xberN8w3Xzsv+3vV/wW07axvlQBDh
	 z6U/UKAA5+RzX1CCpF9g9U1XsiOkmAIpsT2EN6t5nyqCbj8YUAto0ONrnAoMr3hgWg
	 oL3WLyFP/uR1LrdolNM8dMv91DA+Xf/BsT0PVADXjJcEHmFQp4MhXfGG+deTMAKM61
	 ZnPeg32WoaKT14kqpI7kbELQLDTqMnUJYAFtUnD2tK6Tj5hPLBp1C/SBXPfaOs8+qr
	 LTytyFv3ub6yg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20RFC:=20unmap=5Fpage=5Frange=20optimisation=20(avoiding=20emulation=20faults=20during=20VM=20migration)?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1772721331310
Message-Id: <42bc5972-ecd0-4a3c-9ff7-0a5246f4bd6b@vates.tech>
To: "Edwin Torok" <edwin.torok@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>
Cc: "Ross Lagerwall" <ross.lagerwall@citrix.com>, "Juergen Gross" <jgross@suse.com>
References: <16133EFF-88FF-467F-B78F-E96EB148C3A5@citrix.com>
In-Reply-To: <16133EFF-88FF-467F-B78F-E96EB148C3A5@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.13efca2423ce456a8fffcf306fd88959?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260305:md
Date: Thu, 05 Mar 2026 14:35:32 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Adding Juergen

Le 12/02/2026 =C3=A0 18:50, Edwin Torok a =C3=A9crit=C2=A0:
> Hi,
> 
> When profiling a VM migration I noticed that on the sender side a signifi=
cant (~45%) time is spent in PV Dom0 Linux taking an emulation fault in unm=
ap_page_range [1]:
> 
> The call comes from zap_pte_range (pgtable_64.h, inlined):
>   ptent =3D ptep_get_and_clear_full(mm, addr, pte, tlb->fullmm);
> 
> This has 2 implementations: native and a generic one where pte_clear is i=
mplemented using set_pte_at with a Xen pvop.
> 
> As a proof of concept I=E2=80=99ve deleted the native implementation [2],=
 which makes it fall back to the generic implementation [3].
> This is not necessarily safe on SMP (it reads and clears as 2 separate st=
eps), but shows that a paravirt op is faster than emulation.
> 
> To fix this we may need to partially revert  https://git.kernel.org/pub/s=
cm/linux/kernel/git/torvalds/linux.git/commit/?id=3D4cdd9c8931767e1c56a51a1=
078d33a8c340f4405
> 
> To test this more easily I=E2=80=99ve written a small test program that m=
aps/unmaps pages from a domain in Dom0 [4].
> Before: 3.26932 +- 0.00503 seconds time elapsed  ( +-  0.15% )
> After: 0.75642 +- 0.00202 seconds time elapsed  ( +-  0.27% )
> 
> It is more than 4x faster to use the paravirt ops than trapping and emula=
ting.
>  From a functional point of view the above commit is correct, Xen doesn=
=E2=80=99t need a dedicated PV operation: trap and emulation works.
> But from a performance point of view I=E2=80=99d say that Xen does need i=
t. This is a hot-path during migration, and it=E2=80=99d be worthwhile to o=
ptimise it.
> 
> Just deleting the native implementation is probably not the solution, sin=
ce we also want a value returned, and the existing PV operation is void.
> It probably needs a new PV operation (re)introduced with the desired sema=
ntics?
> 

I can't find a MMUEXT hypercall which does roughly xchg on the 
pagetable. You can write a entry through MMU_NORMAL_PT_UPDATE, but not 
reading it before writing it atomically (xchg).

Maybe there is a way to achieve it, but otherwise, it would need a new 
dedicated hypercall and related code for Linux.

> Best regards,
> --Edwin
> 
> [1]: https://cdn.jsdelivr.net/gh/edwintorok/xen@pmustack-coverletter/docs=
/tmp/migrate-send.svg?x=3D950.6&y=3D2197
> 
> [2]:
> diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtabl=
e.h
> index 690c0307afed..ab6318bb5676 100644
> --- a/arch/x86/include/asm/pgtable.h
> +++ b/arch/x86/include/asm/pgtable.h
> @@ -1097,13 +1097,9 @@ extern int ptep_test_and_clear_young(struct vm_are=
a_struct *vma,
>   extern int ptep_clear_flush_young(struct vm_area_struct *vma,
>                                    unsigned long address, pte_t *ptep);
> 
> -#define __HAVE_ARCH_PTEP_GET_AND_CLEAR
> -static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned lo=
ng addr,
> -                                      pte_t *ptep)
> -{
> -       pte_t pte =3D native_ptep_get_and_clear(ptep);
> -       return pte;
> -}
> +static inline pte_t ptep_get_and_clear(struct mm_struct *mm,
> +                                      unsigned long address,
> +                                      pte_t *ptep);
> 
>   #define __HAVE_ARCH_PTEP_GET_AND_CLEAR_FULL
>   static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm,
> 
> [3]:
> #ifndef __HAVE_ARCH_PTEP_GET_AND_CLEAR
> static inline pte_t ptep_get_and_clear(struct mm_struct *mm,
>                                         unsigned long address,
>                                         pte_t *ptep)
> {
>          pte_t pte =3D *ptep;
>          pte_clear(mm, address, ptep);
>          return pte;
> }
> #endif
> static inline void pte_clear(struct mm_struct *mm, unsigned long addr, pt=
e_t *ptep) { set_pte_at(mm, addr, ptep, __pte(0)); }
> 
> [4]:
> $ cat >main.c <<EOF
> #include <assert.h>
> #include <stdio.h>
> #include <stdlib.h>
> #include <sys/mman.h>
> #include <xenctrl.h>
> #include <xenforeignmemory.h>
> 
> int main(int argc, char *argv[]) {
>    if (argc !=3D 3) {
>      fprintf(stderr, "Usage: %s <domid> <batchsize>\n", argv[0]);
>      return 1;
>    }
>    uint32_t domid =3D atoi(argv[1]);
>    uint32_t batch_size =3D atoi(argv[2]);
> 
>    if (!domid || !batch_size) {
>      fprintf(stderr, "Invalid arguments, expected 2 integers");
>      return 2;
>    }
> 
>    xenforeignmemory_handle *handle =3D xenforeignmemory_open(NULL, 0);
>    if (!handle)
>      return 3;
> 
>    xc_interface *xc =3D xc_interface_open(NULL, NULL, 0);
>    if (!xc)
>      return 4;
> 
>    xen_pfn_t nr_pfns;
>    if (xc_domain_nr_gpfns(xc, domid, &nr_pfns) < 0)
>      return 5;
> 
>    unsigned mappings_size =3D nr_pfns / batch_size + 1;
>    void **mappings =3D calloc(mappings_size, sizeof(void *));
>    if (!mappings) {
>      perror("calloc");
>      return 6;
>    }
> 
>    for (xen_pfn_t i =3D 0; i < nr_pfns; i +=3D batch_size) {
>      xen_pfn_t arr[batch_size];
>      int err[batch_size];
> 
>      for (unsigned j =3D 0; j < batch_size; j++)
>        arr[j] =3D i + j;
> 
>      unsigned long idx =3D i / batch_size;
>      assert(idx < mappings_size);
>      mappings[idx] =3D xenforeignmemory_map(
>          handle, domid, PROT_READ, sizeof(arr) / sizeof(arr[0]), arr, err=
);
>      if (!mappings[idx])
>        return 7;
>    }
> 
>    for (xen_pfn_t i =3D 0; i < nr_pfns; i +=3D batch_size) {
>      unsigned long idx =3D i / batch_size;
>      assert(idx < mappings_size);
>      if (xenforeignmemory_unmap(handle, mappings[idx], batch_size))
>        return 8;
>    }
> 
>    free(mappings);
>    xc_interface_close(xc);
>    xenforeignmemory_close(handle);
> 
>    return EXIT_SUCCESS;
> }
> EOF
> 
> $ cat >meson.build <<EOF
> project('xfm_scale', 'c', default_options:['c_std=3Dgnu11'])
> xfm =3D dependency('xenforeignmemory')
> xc =3D dependency('xencontrol=E2=80=99)
> executable('xfm_scale', 'main.c', dependencies: [xfm, xc])
> EOF

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 Mar 05 14:54:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 14:54:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246857.1545908 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyA5d-0006Xr-6a; Thu, 05 Mar 2026 14:54:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246857.1545908; Thu, 05 Mar 2026 14:54:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyA5d-0006Xk-3b; Thu, 05 Mar 2026 14:54:13 +0000
Received: by outflank-mailman (input) for mailman id 1246857;
 Thu, 05 Mar 2026 14:54: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=nfX/=BF=citrix.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1vyA5b-0006Xe-SZ
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 14:54:12 +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 275b65d6-18a3-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 15:54:05 +0100 (CET)
Received: from LV3PR03MB7707.namprd03.prod.outlook.com (2603:10b6:408:28b::21)
 by SA2PR03MB5705.namprd03.prod.outlook.com (2603:10b6:806:11a::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18; Thu, 5 Mar
 2026 14:54:00 +0000
Received: from LV3PR03MB7707.namprd03.prod.outlook.com
 ([fe80::97e8:ef9c:9031:e2bf]) by LV3PR03MB7707.namprd03.prod.outlook.com
 ([fe80::97e8:ef9c:9031:e2bf%6]) with mapi id 15.20.9678.017; Thu, 5 Mar 2026
 14:54: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: 275b65d6-18a3-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QLGYOTuPxTXNjoHvjehz8eGfFds28qDl1YkIeh4Ve2ifJ1TDFk1BwsUyojsbokAg57GobS0XFNkVJeoPLlP4puS8QWLbH0OBK4fOmlGbWnUX23VXM+dge8tE0qkjSPpYz7dOYfTD61Yd9dMbEurDt5dwOB+wr1CL5scD6SPs0Xf81lYx/HFdNCgnw3pO1RAg8fedBMTWpMkNzhnmAcQXuvigL7PyfaEloc7d1Rq4MIMkDdgNCthvmNe29Moq3zBnOGtnMsEqk3HH+UymtslkI1AAb/Vp6yoseLjinerqpDkX0yEMw0TqoadvBCPVaHSW+iJx/V3b18QO2mAFMUmnww==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Cs5pfM9ZmzxU3q409GwwHFrbDnNPoBv2RjcPlMzcoNk=;
 b=mqlNifuFfUG00+lRtrV4WJ3EtGnAdnAdHfH4xZyzgoLcU6vtb8qOGBL1zfBOr0206Ad5PP7jnt3UDQP7d095Clds2LGZkSH1o5cR1VA9zd4T0Z7/vioXs5Hd8ybZfXyX+3o84ZShpLv4MD/gPLC0jF8+zDOmKYnMwxxaAn1NrKAWk+BquHIEQBeO5bYWTF8Pd8XtzQQYaFl02gDrDnYuO4FFeZtmRFbrDB/y75kOGaHJM+GsAGaXawsAOko00SZIBvIktw4KKgShs6eneGgtW5xA9WDWRTfLdBzCBbqzF2IhDBOlb/uHm9TljQGq0WPk1L0J0Hprj/RkMGESL3C4Ug==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Cs5pfM9ZmzxU3q409GwwHFrbDnNPoBv2RjcPlMzcoNk=;
 b=mw9jJsF9eRhwZDJhvAE0+LV4FbIKESpEE/GJkK1z0938FF7RV+tnaHNFHW1zhUfgErrV2fwz8o1ovvAjxnW2JuCRFXKjNgXT8tQo5v4/x1vZMfPZOeWoZ/LbsGb9O/lYcDUSKrd5N0EGk8QlxA5RwrgdLEBZN6qgxYohLVbBxCY=
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, Roger Pau Monne <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Marcus Granado
	<Marcus.Granado@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Alejandro Vallejo
	<Alejandro.GarciaVallejo@amd.com>
Subject: RE: [PATCH v4 03/10] xen/page_alloc: Implement NUMA-node-specific
 claims
Thread-Topic: [PATCH v4 03/10] xen/page_alloc: Implement NUMA-node-specific
 claims
Thread-Index: AQHcpy5A2UpiyJQ97kePD66zF1miC7Wfzj4AgAAAi7CAACzoAIAAAbjQ
Date: Thu, 5 Mar 2026 14:54:00 +0000
Message-ID:
 <LV3PR03MB7707B0093DEBA939361156FD877DA@LV3PR03MB7707.namprd03.prod.outlook.com>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
 <6927e45bf7c2ce56b8849c16a2024edb86034358.1772098423.git.bernhard.kaindl@citrix.com>
 <1497b37d-f47a-41c6-8037-a00a555d13a0@suse.com>
 <LV3PR03MB7707BD13DBB8516C60B06927877DA@LV3PR03MB7707.namprd03.prod.outlook.com>
 <cea8125a-e111-4dd7-a314-4d04c7270b70@suse.com>
In-Reply-To: <cea8125a-e111-4dd7-a314-4d04c7270b70@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: LV3PR03MB7707:EE_|SA2PR03MB5705:EE_
x-ms-office365-filtering-correlation-id: 744287d1-963e-4688-844b-08de7ac708fd
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:
 xwJWhFjslBkDv2fehZpBWb5WVuUa85sXLww5jUov19SXaLrBtggvQstxwEtGIWb6rzo250g+bEyyD1yyU63XiSk2DlscY0FqZv0lR7a1sI92D0ojHrofBIRrSuQwAX/xUtY9vVW3XDU0wwoxsQeR/lvv7dfPYsraVMg4ZMoDHxtqoKhe7hf9Mn2TOFHPRrYjMiSr+VPvK4ciGcj961rBBBBBUs4ZoiUBGGfYmLQnmry06MUHAViYX361GgLSgI8/xXh9P81t5g6iURP+Ah98H+XvKLB+tZlctfE53paSo9D6Hc71O/Uo1FGBY+muzz+bBdnRdarfnQWjLOw2jqKDZVHeL1O4oBy5YPRFifVv4HTeJOAEyC+iJJmkHXlYbA492yao3TPV/ncE416ihV3DJeUOHp7WMCXTAvmL6ktsQCfMzSd7L0Mcbbh4v23ZGLi/5/UT1Y2lTztE42lhc42e2oD/2KUtuzt20caPDv/HD23yeyKageA1t/a3A9kS7sdf+1cnxx8XmSmCXa1UlYPdEYCqG/1q2vtiUCMidu6H//fnE8iGpUTlKXYnNU5R8RCyshs8UHy1oMJJzvMmZvn6YAzLx6tOx0FxAme/funfc2ICAYJ0pK940x5fKc0fsYLPAvZBTfR7BeheeRfl5qXeRzWIdIaq/7KZGe88R83DHZGacacmhchkzlbX+00UMNTGMD3j62fK8zSYw18OEhsQ5zm6BeznOq4znov8sEzPoYs=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR03MB7707.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ZjNxTm5OR0JQWXMvVVhkMWY4VTBKaGpPcDdRb2pXaGRnMFdOT1FjS0pSVWZC?=
 =?utf-8?B?d3k0dTVCSFo4Q2Q1RWhMTzZXN2MxWmlvMEpJTzFYek82NzJ6azhRMU5aMUlS?=
 =?utf-8?B?azF3MzduTzBQTmhxc3loRFBaNExMb0dERFpqKzlkYUFGVGxDRmlMSG9lVmhn?=
 =?utf-8?B?N1BEeDE2aUNEM0JaYXVqZ3hLeHB2WHZQNWlnaytaU2l2ME56L3VDZ3ZiWnRn?=
 =?utf-8?B?TFp0Rkw5L1NWNnFIckgyK1lsWHpSMXBremNKNWk1M0RSa0EybUpIUExjdm1L?=
 =?utf-8?B?VkNRZkVXcHlWU0ZIMHhFRVhkSlpkY1h5Rlo4NTVxcHBpRGMwK3FNakluRkQ0?=
 =?utf-8?B?RCtub1lOcUZOQ244SVlQUnZGT0R6SERQRkcxaERZb0M4SlI0Y3Jra1B4QUpK?=
 =?utf-8?B?ejFBODZmV3VYK1RpSitWODRHci9hSy9FaTB0L3VqYWdIQnAyNjRSemhVN05J?=
 =?utf-8?B?OGJ2T0drUTdqRnIyVG14ZGVMQUIvSEc1aGRzUC8zcVZLczY1bDFUaEgwSkNw?=
 =?utf-8?B?TXhacmtNT3N1T1U3OFhEV2NDTkg4Y0J0UVdsVGJ6Q1R1N202dVYrSHJRSHRi?=
 =?utf-8?B?NTJrLzRXdm1NM0FjSjdLQ0VjNjlCYmd2cUI4RkxJejM5NDBpWTJ3djdRTlpZ?=
 =?utf-8?B?SzQxLzA4Sk1tTXRkUUFiTnFYYkQ3aWxpT1dBaElGbmtWNGV3L1dWWEI2MENP?=
 =?utf-8?B?ZUVzOUc4UTYzTVBydSsyeVJ4SCtpTExWMExxUTRxaFBVVlE4bWhpb0tMd2VN?=
 =?utf-8?B?N2s0dDMxZEd1OHhDM0F6RlBDOGhERC92RmpjbzlETXkxaDdXLzFLOHJQMXl3?=
 =?utf-8?B?Vmt2ZmRQazMvUk1oSkQ3azRLYmNDNmNVQ2xQSkxOb3IvUitvU3JCZHJHT01N?=
 =?utf-8?B?Sk5oKzJHVGhlVTlMMy9LbFFTVDNmcFdyQmVsY1JhRG9KT2ZPRzlZc3lZeXRI?=
 =?utf-8?B?cUllTkQwNlZkcHR1bmVaZmVtWHhlL3p0T3lwODRMaEptZmVGT1FrTzZqY0tl?=
 =?utf-8?B?YnF2UmpHL0tQejhCc0pReDh3eFNHRUcyZElJRXZRRnBNeVNFbDc1TjAvcFJp?=
 =?utf-8?B?dzVKeHFTYllxSHRrd3QwVWd1V2x0YmFNSTFOcENwd1dab1ltK3FGcmFZMDEw?=
 =?utf-8?B?R0NRMmIzNWx6b3lPUHQ5MkN6S1lzTXlnWHVVWXp1THFkUVhlTWpqUnlXaGNa?=
 =?utf-8?B?TFg1SXMzZWZUWmFXUzVQRGVDZThRajJIaW4vQWVKSWoyeDFaTUpvTEdkY3hK?=
 =?utf-8?B?YVkvK1Y4Rk4yVEFCUm44VmpFNkIxQlRuN3c4ZjlYVWZ3Vy9YWHgvTFJGelli?=
 =?utf-8?B?RzFMVTRYVkZMK1VCK3JFM25ucVNjaFVNYmFGS1FpMmpzRm52YjRkaUVNL0Z6?=
 =?utf-8?B?QXpFUzIxYmNMQlJWUWNlZDBpZ2NHYnBjVDZ6YlkwTVJQeVhTK1Y4MEF2NzlJ?=
 =?utf-8?B?N0hESTd3SEMwV1kxaVlhdjFmd296bVJKME45bllGemYvci85WUxFdkZXTEF4?=
 =?utf-8?B?VXYwVHpWTHI4L2tpYlBXTnVjSWRuWEpHekZodWF2enZlZS9PUkE2SUlUbGdn?=
 =?utf-8?B?MC9DeG50NlgyZGpHTDl6a2xqaW92UVI5UVVXeFRVMzFBaWVrSlM0Zm5BaTE1?=
 =?utf-8?B?UmVwYVVzellTT3JNenJwMnh2YWxTSnhNWUhxbW91YVFpQmxDTjJ5ZVB0RHNy?=
 =?utf-8?B?M245dkQxLzBUeldCZGZsKzhyMitDQTMvWkVvd1NMTDV6ZS8wcUVlQkk3NWI4?=
 =?utf-8?B?VllSY21zaTZYa3JkRDEvSW1GVVBXTWNVVGNDRFFEalVZbTczRGhkZlp4RDht?=
 =?utf-8?B?U0ZIYzI5MDg5SWxNeUlEM1QrZG8yVXJ4R2dUUkNZR0FCL00xbmdqK0JxRmxN?=
 =?utf-8?B?YjFXa3JDbXJuTldNZXA3RERPY3NUUFh4SWFRMXFKbnZBZjhPNWIvVmtKMnlI?=
 =?utf-8?B?d2RGbFFKNksrdFo3bnFJNGx4bWVyc0pSMU94ODU1T2ViT2ZVL0hTQjI1Z1Ev?=
 =?utf-8?B?dHJZVEdhWFdoSktlKzZiWUFIcE1lQnhJVk16SEhXZ0szQkhpRzI4dCs2REpy?=
 =?utf-8?B?OUxYYTc3NGVjcmpxUlhmV012TStFOTI2bXBkRkp5K2kxcy9Sa3R0cFZZT2Ix?=
 =?utf-8?B?YXdtOUVoSG01RktUclpwL3ZSYjhqYzlHV29rWWRzMHd2UUkrbjMxbzBsMHVz?=
 =?utf-8?B?eWYrRDdwNTZldzNuallXUzNJZTE2a0FYN3d4alh6ck1ENER6QXR4WDkwbjgy?=
 =?utf-8?B?K3lMbHl2MFdleXNkSVVTVktlMExOMEZJbFRRVUVQYnh1WFZpRzBUQ2NvUS8r?=
 =?utf-8?B?RDZ4d0xQYnczK1EraXE1SkhkVlU3QTk5dXlmbXh0L2lxajRtaUlXUT09?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: LV3PR03MB7707.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 744287d1-963e-4688-844b-08de7ac708fd
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Mar 2026 14:54:00.0689
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ZkKpPBDWRV8OTQA9iEBs1wZ/Y6neb0RHVFZIAJWAAJ2wW98Ynm79CGMXzLljmxHR7EQaEwnvG6Bdigl9UhnSZ01pSJ+3sXpd7HWbQwNA7qI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5705

SmFuIEJldWxpY2ggd3JvdGU6DQo+IE9uIDA1LjAzLjIwMjYgMTQ6MTIsIEJlcm5oYXJkIEthaW5k
bCB3cm90ZToNCj4gPg0KPiA+IFJvZ2VyIHJlcXVlc3RlZCB0aGUgZG9tY3RsIEFQSSB0byBhbGxv
dyBjbGFpbWluZyBmcm9tIG11bHRpcGxlIG5vZGVzIGluIG9uZSBnbw0KPiA+IGFuZCBoZSBzcGVj
aWZpZWQgdGhhdCB3ZSBzaG91bGQgZm9jdXMgb24gZ2V0dGluZyB0aGUgaW1wbGVtZW50YXRpb24g
Zm9yIG9uZQ0KPiA+IG5vZGUtc3BlY2lmaWMgY2xhaW0gZG9uZSBmaXJzdCBiZWZvcmUgd2UgZGl2
ZSBpbnRvIG11bHRpLW5vZGUgY2xhaW1zIGNvZGUuDQo+ID4NCj4gPiAtIEluc3RlYWQgb2YgYWRk
aW5nL2xpbmtpbmcgYW4gYXJyYXkgb2YgY2xhaW1zIHRvIHN0cnVjdCBkb21haW4sIHdlIGNhbiBr
ZWVwDQo+ID4gICB1c2luZyBkLT5vdXRzdGFuZGluZ19wYWdlcyBmb3IgdGhlIHNpbmdsZS1ub2Rl
IGNsYWltLg0KPiA+DQo+ID4gLSBUaGVyZSBhcmUgbnVtZXJvdXMgY29tbWVudHMgYW5kIHF1ZXN0
aW9ucyBmb3IgdGhpcyBtaW5pbWFsIGltcGxlbWVudGF0aW9uLg0KPiA+ICAgSWYgd2UnZCBhZGQg
bXVsdGktbm9kZSBjbGFpbXMgdG8gaXQsIHRoaXMgcmV2aWV3IG1heSBiZWNvbWUgZXZlbiBtb3Jl
IGNvbXBsZXguDQo+ID4NCj4gPiAtIFRoZSBzaW5nbGUtbm9kZSBjbGFpbXMgYmFja2VuZCBjb250
YWlucyB0aGUgaW5mcmFzdHJ1Y3R1cmUgYW5kIG11bHRpLW5vZGUNCj4gPiAgIGNsYWltcyB3b3Vs
ZCBiZSBhbiBleHRlbnNpb24gb24gdG9wIG9mIHRoYXQgaW5mcmFzdHJ1Y3R1cmUuDQo+IA0KPiBX
aGF0IGlzIGF0IHRoZSB2ZXJ5IGxlYXN0IG5lZWRlZCBpcyBhbiBvdXRsaW5lIG9mIGhvdyBtdWx0
aS1ub2RlIGNsYWltcyBhcmUNCj4gaW50ZW5kZWQgdG8gd29yay4gVGhpcyBpcyBiZWNhdXNlIHdo
YXQgeW91IGRvIGhlcmUgbmVlZHMgdG8gZml0IHRoYXQgc2NoZW1lLg0KPiBXaGljaCBpbiB0dXJu
IEkgdGhpbmsgaXMgZ29pbmcgdG8gYmUgZGlmZmljdWx0IHdoZW4gZm9yIGEgZG9tYWluIG1vcmUg
bWVtb3J5DQo+IGlzIG5lZWRlZCB0aGFuIGFueSBzaW5nbGUgbm9kZSBjYW4gc3VwcGx5LiBIZW5j
ZSB3aHkgSSB0aGluayB0aGF0IHlvdSBtYXkNCj4gbm90IGJlIGFibGUgdG8gZ2V0IGF3YXkgd2l0
aCBqdXN0IHNpbmdsZS1ub2RlIGNsYWltcywgbm8gbWF0dGVyIHRoYXQgdGhpcw0KPiBvZiBjb3Vy
c2UgY29tcGxpY2F0ZXMgdGhpbmdzLg0KPiANCj4gSXQncyBhbHNvIG5vdCBxdWl0ZSBjbGVhciB0
byBtZSBob3cgbXVsdGlwbGUgc3VjY2Vzc2l2ZSBjbGFpbXMgYWdhaW5zdA0KPiBkaXN0aW5jdCBu
b2RlcyB3b3VsZCB3b3JrICh3aGljaCBpc24ndCBhbGwgdGhhdCBkaWZmZXJlbnQgZnJvbSBhIG11
bHRpLW5vZGUNCj4gY2xhaW0pLg0KPiANCj4gVGhpbmtpbmcgb2YgaXQsIGludGVyYWN0aW9uIHdp
dGggdGhlIGV4aXN0aW5nIG1lbS1vcCBhbHNvIHdhbnRzIGNsYXJpZnlpbmcuDQo+IEltbyBvbmx5
IG9uZSBvZiB0aGUgdHdvIG91Z2h0IHRvIGJlIHVzYWJsZSBvbiBhIHNpbmdsZSBkb21haW4uDQoN
ClllcywgY29ycmVjdC4gQXMgaW1wbGVtZW50ZWQgYnkgWGVuIGluIGRvbWFpbl9zZXRfb3V0c3Rh
bmRpbmdfY2xhaW1zKCksDQpYZW4gY2xhaW1zIHdvcmsgdmVyeSBkaWZmZXJlbnQgZnJvbSBzb21l
dGhpbmcgbGlrZSBhbiBhbGxvY2F0aW9uOg0KDQpGb3IgZXhhbXBsZSwgd2hlbiB5b3UgYWxsb2Nh
dGUsIHlvdSBnZXQgbWVtb3J5LCBhbmQgd2hlbiB5b3UgcmVwZWF0LA0KeW91IGhhdmUgYSBiaWdn
ZXIgYWxsb2NhdGlvbi4NCg0KQnV0IFhlbiBjbGFpbXMgaW4gZG9tYWluX3NldF9vdXRzdGFuZGlu
Z19jbGFpbXMoKSBkb24ndCB3b3JrIGxpa2UgdGhhdDoNCg0KLSBXaGVuIGEgZG9tYWluIGhhcyBh
IGNsYWltLCBkb21haW5fc2V0X291dHN0YW5kaW5nX2NsYWltcygpIG9ubHkgYWxsb3dzDQogIHRv
IHJlc2V0IHRoZSBjbGFpbSB0byAwLCBub3RoaW5nIGVsc2UuIEEgc2Vjb25kLCBvciBjaGFuZ2Vk
IGNsYWltIGlzIG5vdA0KICBwb3NzaWJsZS4gSSB0aGluayB0aGlzIHdhcyBpbnRlbnRpb25hbDoN
Cg0KICAtIGRvbWFpbl9zZXRfb3V0c3RhbmRpbmdfY2xhaW1zKCkgcmVqZWN0cyBpbmNyZWFzaW5n
L3JlZHVjaW5nIGEgY2xhaW06DQoNCiAgICBBIGNsYWltIGlzIGRlc2lnbmVkIHRvIGJlIG1hZGUg
YnkgZG9tYWluIGJ1aWxkIHdoZW4gdGhlIHNpemUgb2YgdGhlDQogICAgZG9tYWluIGlzIGtub3du
LiBUaGVyZSBpcyBubyB0d2Vha2luZyBpdCBhZnRlcndhcmRzOiBUaGUgbmVlZGVkIHBhZ2VzDQog
ICAgc2hhbGwgYmUgY2xhaW1lZCBieSB0aGUgZG9tYWluIGJ1aWxkZXIgYmVmb3JlIHRoZSBkb21h
aW4gaXMgYnVpbHQuDQogICAgDQogICAgTm90ZTogVGhlIGNsYWltcyBhcmUgbm90IG9ubHkgY29u
c3VtZWQgd2hlbiBwb3B1bGF0aW5nIGd1ZXN0IG1lbW9yeToNCiAgICBDbGFpbXMgYXJlIGFsc28g
KGF0IGxlYXN0IGF0dGVtcHRlZCB0byBiZSkgY29uc3VtZWQgd2hlbiBYZW4gbmVlZHMgdG8NCiAg
ICBhbGxvY2F0ZSBtZW1vcnkgZm9yIG90aGVyIHJlc291cmNlcyBvZiB0aGUgZG9tYWluLiBGb3Ig
dGhpcyByZWFzb24sDQogICAgdGhlIGRvbWFpbiBidWlsZGVyIG5lZWRzIHRvIGFkZCBzb21lIGhl
YWRyb29tIGZvciBhbGxvY2F0aW9ucyBkb25lIGJ5DQogICAgWGVuIGZvciBjcmVhdGluZyB0aGUg
ZG9tYWluLg0KDQogICAgV2hlbiB0aGUgZG9tYWluIGJ1aWxkZXIgaGFzIGZpbmlzaGVkIGJ1aWxk
aW5nIHRoZSBkb21haW4sIGl0IGlzIGV4cGVjdGVkDQogICAgdG8gcmVzZXQgdGhlIGNsYWltIHRv
IHJlbGVhc2UgYW55IG5vdCBjb25zdW1lZCBoZWFkcm9vbSBpdCBhZGRlZC4NCg0KICAtIElmIGEg
ZG9tYWluIGFscmVhZHkgaGFzIG1lbW9yeSB3aGVuIHRoZSBkb21haW4gYnVpbGRlciBzdGFrZXMg
YSBjbGFpbQ0KICAgIGZvciBjb21wbGV0aW5nIHRoZSBidWlsZCBvZiB0aGUgZG9tYWluLCB0aGUg
b3V0c3RhbmRpbmdfY2xhaW1zIGFyZSBzZXQNCiAgICB0byB0aGUgdGFyZ2V0IHZhbHVlIG9mIHRo
ZSBjbGFpbSBjYWxsLCBtaW51cyBkb21haW5fdG90X3BhZ2VzKGQpLCBzbw0KICAgIGFscmVhZHkg
YWxsb2NhdGVkIG1lbW9yeSBkb2VzIG5vdCBjb250cmlidXRlIHRvIGEgYmlnZ2VyIHRvdGFsIGJv
b2tpbmcuDQoNCkZvciBOVU1BIGNsYWltcyBhbmQgZ2xvYmFsIGhvc3QtbGV2ZWwgY2xhaW1zLCBp
dCBpcyBzaW1pbGFyOg0KDQpBIE5VTUEgbm9kZS1zcGVjaWZpYyBjbGFpbSBpcyBpbXBsaWNpdGx5
IGFsc28gYWRkZWQgdG8gdGhlIGdsb2JhbA0KaG9zdC1sZXZlbCBvdXRzdGFuZGluZ19jbGFpbXMg
b2YgdGhlIGhvc3QsIGFzIGEgTm9kZS1zcGVjaWZpYyBtZW1vcnkNCmlzIGFsc28gcGFydCBvZiB0
aGUgaG9zdCdzIG1lbW9yeSwgc28gdGhlIGhvc3QtbGV2ZWwgY2xhaW1zIHByb3RlY3Rpb24NCmRv
ZXMgbm90IGhhdmUgdG8gYWxzbyBjaGVjayBmb3Igbm9kZS1zcGVjaWZpYyBjbGFpbXM6DQoNClRo
ZSBlZmZlY3Qgb2YgaG9zdC1sZXZlbCBjbGFpbSBpcyBhbHNvIGdpdmVuIHdoZW4geW91IG1ha2Ug
YSBub2RlLWxldmVsIGNsYWltLg0KDQpXaGVuIGEgZG9tYWluIG9uZSBraW5kIG9mIGNsYWltLCBp
dCBkb2VzIG5vdCBtYWtlIGEgbG90IG9mIHNlbnNlIHRvIHRoZW4NCmxhdGVyIGFkZCBhIGRpZmZl
cmVudGx5IHNpemVkIGNsYWltIGZvciBhbm90aGVyIHRhcmdldC4gTGlrZSBkZXNjcmliZWQgaW4N
CmhvdyBkb21haW5fc2V0X291dHN0YW5kaW5nX2NsYWltcygpIGlzIGltcGxlbWVudGVkLCBhIGRv
bWFpbiBidWlsZGVyIHN0YWtlcw0KYSBjbGFpbSBvbmNlLCB0aGVuIGJ1aWxkcyB0aGUgZG9tYWlu
LCB0aGVuIHJlc2V0cyBpdCwgYW5kIHRoYXQncyBhbGwgdG8gaXQuDQoNCkZvciBleGFtcGxlLCBY
YXBpIHRvb2xzdGFjayBhbmQgbGlieGVuZ3Vlc3QgaGF2ZSBjYWxscyB0byBjbGFpbSBtZW1vcnks
DQpidXQgaW4gYW55IGdpdmVuIGNvbmZpZ3VyYXRpb24sIG9ubHkgdGhlIGZpcnN0IGFjdG9yIHRv
IGNsYWltIG1lbW9yeSBmb3INCmEgZG9tYWluIGlzIHRoZSBvbmUgd2hvIGRlZmluZXMgdGhlIGNs
YWltOiBObyBtaXhpbmcsIGNoYW5naW5nLCB1cGRhdGluZy4NCkl0IG1ha2VzIHRoaW5ncyBjbGVh
ciB0aGF0IHRoZSBpbml0aWFsIGNyZWF0b3IgZGlkIG1ha2UgdGhlIGNsYWltLg0KDQpTaW1pbGFy
IGZvciBtdWx0aS1ub2RlIGNsYWltczoNCg0KUm9nZXIgZGVzY3JpYmVkIGhvdyBoZSB3YW50cyB0
aGlzIEFQSSBkbyB3b3JrIGhlcmU6DQpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2FyY2hp
dmVzL2h0bWwveGVuLWRldmVsLzIwMjUtMDYvbXNnMDA0ODQuaHRtbA0KDQooQmVmb3JlLCBoZSBz
YWlkIHRoYXQgd2l0aCBtdWx0aXBsZSBjYWxscywgaXQgd291bGQgYmUgYXdrd2FyZCwgd2l0aCBw
YXJ0aWFsDQogY2xhaW1zIGFuZCByb2xsYmFjaywgYW5kIEkgd2FudCB0byBhZGQgdGhhdCB3b3Vs
ZCBiZSBkaWFtZXRyaWNhbGx5IGNvdW50ZXINCiB0aGUgb3JpZ2luYWwgY2xhaW1zIGRlc2lnbiBv
ZiBub3QgYWxsb3dpbmcgbXVsdGlwbGUgY2FsbHMpDQogDQo+IElkZWFsbHksIHdlIHdvdWxkIG5l
ZWQgdG8gaW50cm9kdWNlIGEgbmV3IGh5cGVyY2FsbCB0aGF0IGFsbG93cyBtYWtpbmcNCj4gY2xh
aW1zIGZyb20gbXVsdGlwbGUgbm9kZXMgaW4gYSBzaW5nbGUgbG9ja2VkIHJlZ2lvbiwgYXMgdG8g
ZW5zdXJlDQo+IHN1Y2Nlc3Mgb3IgZmFpbHVyZSBpbiBhbiBhdG9taWMgd2F5Lg0KDQpJbiB0aGUg
bG9ja2VkIHJlZ2lvbiAoaW5zaWRlIGhlYXBfbG9jayksIHdlIGNhbiBjaGVjayB0aGUgY2xhaW1z
IHJlcXVlc3RzDQphZ2FpbnN0IGV4aXN0aW5nIGNsYWltcyBhbmQgbWVtb3J5IG9mIHRoZSBhZmZl
Y3RlZCBub2RlcyBhbmQgZGV0ZXJtaW5lIGlmDQp0aGUgY2xhaW0gY2FsbCBpcyBhIGdvIG9yIGEg
bm8tZ28uIElmIGl0IGlzIGEgZ28sIHdlIHVwZGF0ZSBhbGwgY291bnRlcnMNCndoaWNoIGFyZSBh
bGwgcHJvdGVjdGVkIGJ5IHRoZSBoZWFwX2xvY2sgYW5kIGFyZSBkb25lLg0KDQpUaGVyZSBpcyBu
byBwYXJ0aWFsIHN1Y2Nlc3Mgb3IgZmFpbHVyZS4gSXQgd2lsbCBiZSBhdG9taWMsIGxpa2UgUm9n
ZXIgYXNrZWQuDQoNCldpdGggdGhpcywgYXMgSSB1bmRlcnN0YW5kIHRoaW5rIEkgc2hvdWxkIGNy
ZWF0ZSBhIGRlc2lnbiBzcGVjaWZpY2F0aW9uDQpmb3IgaG93IGNsYWltcyBhcmUgZGVzaWduZWQg
aW4gWGVuIGFuZCBob3cgdGhlIGNsYWltcyBkZXNpZ24gY2FuIGJlDQpleHRlbmRlZCB0byBzdXBw
b3J0IGF0b21pYyBtdWx0aS1ub2RlIGNsYWltcyAod2l0aG91dCByb2xsYmFja3MvY29uY3VycmVu
Y3kNCmlzc3VlcykuDQoNCkkgc3RhcnRlZCBkZXNjcmliaW5nIGhvdyBYZW4gaW1wbGVtZW50cyBj
bGFpbXMgaW4gL2RvY3MvaHlwZXJ2aXNvci1ndWlkZSBoZXJlOg0KaHR0cHM6Ly9iZXJuaGFyZGst
eGVuLXJldmlldy5yZWFkdGhlZG9jcy5pby9ub2RlLWNsYWltcy9oeXBlcnZpc29yLWd1aWRlL21t
L2NsYWltcy5odG1sDQoNCkknZCBhZGQgdGhlc2UgbmV3IGNsYXJpZmljYXRpb25zIHRvIHRoaXMg
ZGVzY3JpcHRpb24gdGhlbiwgSSB0aGluay4NCg0KVG8gY29tbXVuaWNhdGUgdGhlIHBsYW4gb2Yg
aG93IG11bHRpLW5vZGUgY2xhaW1zIHdvdWxkIHdvcmssDQphcyBkZXNjcmliZWQgYnkgUm9nZXIs
IEknZCBzdWdnZXN0IEknZCBhZGQgYSBkZXNpZ24gZG9jdW1lbnQNCmZvciBtdWx0aS1ub2RlIGNs
YWltcywgbW9kZWxsZWQgYWZ0ZXIgdGhlIEh5cGVybGF1bmNoIGRlc2lnbg0KZG9jdW1lbnQgZm91
bmQgaW4gdGhlIGRvY3MuDQoNCk9uY2UgdGhhdCBkZXNpZ24gaXMgYXBwcm92ZWQsIHdlIHNob3Vs
ZCBoYXZlIGEgY2xlYXIgc2hhcmVkDQp1bmRlcnN0YW5kaW5nIG9mIHRoZW0gYmVmb3JlIHdlJ2Qg
YmUgbG9va2luZyBhdCBpbXBsZW1lbnRhdGlvbi4NCiANCiAgIEJlcm5oYXJkDQo=


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 17:00:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 17:00:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1246953.1545922 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyC3m-0005Xl-60; Thu, 05 Mar 2026 17:00:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1246953.1545922; Thu, 05 Mar 2026 17: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 1vyC3m-0005Xe-2D; Thu, 05 Mar 2026 17:00:26 +0000
Received: by outflank-mailman (input) for mailman id 1246953;
 Thu, 05 Mar 2026 17:00:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=00Q8=BF=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vyC3l-0005XY-0g
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 17:00:25 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cc32c4f5-18b4-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 18:00:22 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-48371119eacso98317175e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 09:00:22 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4851ad09c92sm37214925e9.23.2026.03.05.09.00.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Mar 2026 09: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: cc32c4f5-18b4-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772730022; x=1773334822; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ESjQyTkxKE/5heZSTnPhxduSDIvNR2PSNgyuNvp6b3w=;
        b=XSPzmspQ4UFB9nzWSKYoj0sLNGioeN3kDzggHj6Waadt4ja3X25IcD/fs4ONmuKy2u
         4eZEB3ldK7dXmo+q7vR5kEtwiRP2DedZBYhr3MORgO3DwuIW00c8Ytm6shrpKzSG/Jx2
         HsKSbk7IwGzsKXuYeYXu6rBfWaXfnv/xTHQ/Xk6h8t2r4g2jT/FPJJzoBY38hj4UKK+K
         tJ1rZAYzW1kdt8+32hdtPk5DfgIomzxt5HYOPFvbG4v9GAPqQK/j4R/4zfpUtO51aqG8
         U9tr1s93WOCtQ6yUPgpYIAEMc6XC6pWRVuouGNBawdqcVnAyDii5i+iGImoIc81rtLT5
         KdyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772730022; x=1773334822;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ESjQyTkxKE/5heZSTnPhxduSDIvNR2PSNgyuNvp6b3w=;
        b=wFqwDaMhTrBwtTWlDmCpEy+ie36KS0x4hc6MB5BKQ0QTLcPjGjWNgumY4gnYB51Z9u
         pvdTgG/2jvcQVit7JRgj7hdBUyOpSjomHWSK6VbSRVVNQvmyT766tAnKeRjgejW8ka8r
         uwg9QT1/SdfQ26Fzq01TehtTF+N3NaQkSBYEbabfv7Evo8ZLiquTwdB4Rvw0+BB+BtSZ
         fr6kF6zAwnem5+Ceow/CxaLOTZ6I+Hj4igGd4XxwP/wTm45dU/K5BXGHNMQCioc9GN4U
         a/Jpo7VqLtLoYA9lTe83i2pQKq6KI24BYHqgxNa38KVFuMd5TMsR3MLrzz6cmkR7m5So
         wOFA==
X-Forwarded-Encrypted: i=1; AJvYcCXbieC3hPa/BMLvRA+Jo8neWvXeVZm2a6ggPzDnRcWelvKMQTiBMUKr+UE1z/L7okYnoF6IjP0pEIY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzh7Hx2KAqEWVWeNZKv5A0B3/r7Z2pwUe3VG/9JcsMmqtfOGC6j
	GtZRJ2D2JUSsEONlKaqFI3MkAt+poyxUJvg9J2c+FT3BWfkQTBexaF6j58hRQojTkg==
X-Gm-Gg: ATEYQzwJZEIeF0EsDUaY4WvmLc/sIk5Syct7CxarYLh5+kDgUJ4iTJkQy1Jk1xUmPAP
	O27HGlByHX6YSdFgquQcKli1oSmB4HkxFnnvEehgsLeeOwq8q6eE4gwHcCQkOW0N84wctdyWZrs
	oR7Ez2d8eaEC71QlGqVs/JCo2LyWcncrXU5m5ZHDlfDxJNNoyQC/SIAcPVpoZYg83Wc9ZooyMWL
	9tcoXhzU/nxPvuWqcp3yAr5twfkJE6EJ1zBM0ghzCLJZWBcnMYKakvtrjQirZeayrd1nEP+YUyk
	S+yO4n92Kj7D53q+E4nI3Ly5qUiul0mkhaWMpxN/NaTmPsy0Pj5nCBRLACX8H2G1pwVofBoT0Q9
	nkGEbRQLWMXF4RdYTkl3IMG4Z+yIJNrog7wcluY4Gb32poND2kqKAO5mpC6S1uiTMrKP8gHpoXs
	Nuact3unCsqacb00GHM0Ka2K5XH/utBt2NxKfWsVgxumvJoMaTSXGmwjqPaAv0IeiKMp41Vj3YH
	rgZ+e2UAIFUJpU=
X-Received: by 2002:a05:600c:828d:b0:483:c35d:367f with SMTP id 5b1f17b1804b1-485235f13dbmr2364115e9.21.1772730021839;
        Thu, 05 Mar 2026 09:00:21 -0800 (PST)
Message-ID: <e3bf2c4a-0a67-499a-9b19-b70357d44925@suse.com>
Date: Thu, 5 Mar 2026 18:00:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 03/10] xen/page_alloc: Implement NUMA-node-specific
 claims
To: Bernhard Kaindl <bernhard.kaindl@citrix.com>
Cc: Andrew Cooper <andrew.cooper@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Roger Pau Monne <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Marcus Granado <Marcus.Granado@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Alejandro Vallejo <Alejandro.GarciaVallejo@amd.com>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
 <6927e45bf7c2ce56b8849c16a2024edb86034358.1772098423.git.bernhard.kaindl@citrix.com>
 <1497b37d-f47a-41c6-8037-a00a555d13a0@suse.com>
 <LV3PR03MB7707BD13DBB8516C60B06927877DA@LV3PR03MB7707.namprd03.prod.outlook.com>
 <cea8125a-e111-4dd7-a314-4d04c7270b70@suse.com>
 <LV3PR03MB7707B0093DEBA939361156FD877DA@LV3PR03MB7707.namprd03.prod.outlook.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <LV3PR03MB7707B0093DEBA939361156FD877DA@LV3PR03MB7707.namprd03.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.03.2026 15:54, Bernhard Kaindl wrote:
> Jan Beulich wrote:
>> On 05.03.2026 14:12, Bernhard Kaindl wrote:
>>>
>>> Roger requested the domctl API to allow claiming from multiple nodes in one go
>>> and he specified that we should focus on getting the implementation for one
>>> node-specific claim done first before we dive into multi-node claims code.
>>>
>>> - Instead of adding/linking an array of claims to struct domain, we can keep
>>>   using d->outstanding_pages for the single-node claim.
>>>
>>> - There are numerous comments and questions for this minimal implementation.
>>>   If we'd add multi-node claims to it, this review may become even more complex.
>>>
>>> - The single-node claims backend contains the infrastructure and multi-node
>>>   claims would be an extension on top of that infrastructure.
>>
>> What is at the very least needed is an outline of how multi-node claims are
>> intended to work. This is because what you do here needs to fit that scheme.
>> Which in turn I think is going to be difficult when for a domain more memory
>> is needed than any single node can supply. Hence why I think that you may
>> not be able to get away with just single-node claims, no matter that this
>> of course complicates things.
>>
>> It's also not quite clear to me how multiple successive claims against
>> distinct nodes would work (which isn't all that different from a multi-node
>> claim).
>>
>> Thinking of it, interaction with the existing mem-op also wants clarifying.
>> Imo only one of the two ought to be usable on a single domain.
> 
> Yes, correct. As implemented by Xen in domain_set_outstanding_claims(),
> Xen claims work very different from something like an allocation:
> 
> For example, when you allocate, you get memory, and when you repeat,
> you have a bigger allocation.
> 
> But Xen claims in domain_set_outstanding_claims() don't work like that:
> 
> - When a domain has a claim, domain_set_outstanding_claims() only allows
>   to reset the claim to 0, nothing else. A second, or changed claim is not
>   possible. I think this was intentional:
> 
>   - domain_set_outstanding_claims() rejects increasing/reducing a claim:
> 
>     A claim is designed to be made by domain build when the size of the
>     domain is known. There is no tweaking it afterwards: The needed pages
>     shall be claimed by the domain builder before the domain is built.
>     
>     Note: The claims are not only consumed when populating guest memory:
>     Claims are also (at least attempted to be) consumed when Xen needs to
>     allocate memory for other resources of the domain. For this reason,
>     the domain builder needs to add some headroom for allocations done by
>     Xen for creating the domain.
> 
>     When the domain builder has finished building the domain, it is expected
>     to reset the claim to release any not consumed headroom it added.
> 
>   - If a domain already has memory when the domain builder stakes a claim
>     for completing the build of the domain, the outstanding_claims are set
>     to the target value of the claim call, minus domain_tot_pages(d), so
>     already allocated memory does not contribute to a bigger total booking.
> 
> For NUMA claims and global host-level claims, it is similar:
> 
> A NUMA node-specific claim is implicitly also added to the global
> host-level outstanding_claims of the host, as a Node-specific memory
> is also part of the host's memory, so the host-level claims protection
> does not have to also check for node-specific claims:
> 
> The effect of host-level claim is also given when you make a node-level claim.
> 
> When a domain one kind of claim, it does not make a lot of sense to then
> later add a differently sized claim for another target. Like described in
> how domain_set_outstanding_claims() is implemented, a domain builder stakes
> a claim once, then builds the domain, then resets it, and that's all to it.
> 
> For example, Xapi toolstack and libxenguest have calls to claim memory,
> but in any given configuration, only the first actor to claim memory for
> a domain is the one who defines the claim: No mixing, changing, updating.
> It makes things clear that the initial creator did make the claim.
> 
> Similar for multi-node claims:
> 
> Roger described how he wants this API do work here:
> https://lists.xenproject.org/archives/html/xen-devel/2025-06/msg00484.html

Fits my understanding, but doesn't fit you limiting the new sub-op to a
single node. As said, if you introduce the new sub-op this way, I'd still
expect for a single domain to have claims across multiple nodes, and
that (preferably) whatever the caller does to achieve that will continue
to work once the restriction is lifted.

Yet I can't see you describe such claims-on-multiple-nodes use case in
of your reply above. And indeed to achieve that you'd need data layout
changes, in particular there then couldn't be any single d->claim_node.

>> Ideally, we would need to introduce a new hypercall that allows making
>> claims from multiple nodes in a single locked region, as to ensure
>> success or failure in an atomic way.
> 
> In the locked region (inside heap_lock), we can check the claims requests
> against existing claims and memory of the affected nodes and determine if
> the claim call is a go or a no-go. If it is a go, we update all counters
> which are all protected by the heap_lock and are done.

Yet as per above, afaics you don't even have the needed data layout to
record two (or more) claims against distinct nodes.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 19:18:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 19:18:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247048.1545952 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyEDM-0004Nf-W8; Thu, 05 Mar 2026 19:18:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247048.1545952; Thu, 05 Mar 2026 19:18:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyEDM-0004NW-Si; Thu, 05 Mar 2026 19:18:28 +0000
Received: by outflank-mailman (input) for mailman id 1247048;
 Thu, 05 Mar 2026 19:18:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RBnC=BF=gmail.com=soumyajyotisarkar23@srs-se1.protection.inumbo.net>)
 id 1vyEDM-00048o-5F
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 19:18:28 +0000
Received: from mail-pl1-x644.google.com (mail-pl1-x644.google.com
 [2607:f8b0:4864:20::644])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 160136eb-18c8-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 20:18:27 +0100 (CET)
Received: by mail-pl1-x644.google.com with SMTP id
 d9443c01a7336-2ad617d5b80so55057095ad.1
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 11:18:27 -0800 (PST)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2ae4d3113e0sm142965715ad.79.2026.03.05.11.18.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 05 Mar 2026 11: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: 160136eb-18c8-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772738305; x=1773343105; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=R1/nQgfr9Bh0trNj7y8yRO+57dFcCvGHPGgpaYkXq6U=;
        b=HJdbkhe1wjVAeM7agCKt8K8Dyt6hz6N2q5WGlfh5ra09qoRDIW532Exl+npy6NlsSy
         PyYqlrN1XXbtGY0G/PsQMKsNbKU3ZyCftNP7o8+iCRBd6Sj//dvzBTjF5ChO3Xs36YVs
         J5nDmtiYpY2tE2tkoWtnOHEFnkAa+MGcA1HkpEKZOmrAeGEcXG+6FMwZVtQT3Z0I8lCt
         MTGQrDGYUx2CqTtY51aIhvjDORvabOfVk27ltHR9dikLVfPgeYTJhOtJ2oHuo7vRCTA5
         VkF4nsSNJfv9OhWBwuYb3nSQls5U5CZAv6jEWH0HQeMhnUX85mLo3JzcpkXTAEpBOmaA
         TA4A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772738305; x=1773343105;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=R1/nQgfr9Bh0trNj7y8yRO+57dFcCvGHPGgpaYkXq6U=;
        b=fAnY12wsSfKh+enJ66gCkxL0nCvs3qZhJjFv0wGbZShv6eUQI+yJymCjmHjiXCycSe
         B0f71Zy3sIruTGlk8xeL6tk4o1O8u3/9HgLaqTk2xBw7HN037f6sHWQ6WToHlCiqCBDO
         FHiVQ2qKK3lDRS536sf19mB5GObptcdOhRgBIxFp15F3126Wz4KQw28ekyGkIREevHvT
         mkGRJBZUq6jeIqwRIxK5gexbq+n04kdXc+cy+KRTbhc9s5tMO/pCoT3g6ORhYjER7C5y
         QWwvONerZAJXWLv5CesD9JshsPW0cNOhhd1IQPuCa2qWX5IOR9+yJKcNSxhSSS2t/0BN
         W07Q==
X-Gm-Message-State: AOJu0YwIGdFrpCGaPkOwAmHyOxIKtAtfS69U9yP/dzcubGCh6sby/3/0
	nEMOe5tUbAdeePqD1vq2HETCZOIL0w5ibK2KTs2mCaRiYmPnOgHatAhEss5jFQ4/
X-Gm-Gg: ATEYQzwOXqemoK7gp5t3NNtiZCDxzl0UQxczI0HI/X+i57+MNUgqdDDliDJI47tN2zR
	yu/h4x59zpszsACObBP5IoNPidc/pnS2UfVLe+KVkimf4TDrsM/Sdxn0SZIC0/3BGGt8HkCploQ
	PWaXymf1d/9WtM58qg/T1iHwXv0p8dmC8ad0YXdgC4Ks8yzzQEpoT+qR0iW6zj4JQxCDEHbP0HH
	9y64Ee5Y5FMDUA3Y2PJI4Ibgv6zb4kI2GGEkFxhCSI3q+sC1jU53Yl/cuVwmw8ZEXQNdSr6z6oD
	sCpcJPQVBqbTL0fOqsWKxYTFNc3NKgO7I6KYKgLWnsGgSKRgLAO3fULn/JX2CL3jUNY6RwIAiJi
	sEfrVEiuZnli/g7kIDVn5P1fD9Q0u55/RT0g1GIRAwBbk9tPlOBUnvww24eKcJ7h2oEnAEcsyI+
	PxflHBJfp0FO9/SEyN3zx7GXmJiuuQor/3v7a8/Y/l6w9NgPWupzLaJbyRLkfhbRi814BqLQB3V
	0C9JzMmygcnVGQ3fMBFJC9frphY+nUrBFxuNPICOlbLmCfbbEotqVdb/nDQRCVsuMj0qahddA==
X-Received: by 2002:a17:903:2a86:b0:2ae:6887:5c13 with SMTP id d9443c01a7336-2ae6ab408dfmr64671365ad.48.1772738305562;
        Thu, 05 Mar 2026 11:18:25 -0800 (PST)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: xen-devel@lists.xenproject.org,
	sarkarsoumyajyoti23@gmail.com
Cc: Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [PATCH 2/3] x86/acpi: Remove BGRT invalidation code
Date: Fri,  6 Mar 2026 00:48:09 +0530
Message-ID: <20260305191810.31033-3-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260305191810.31033-1-soumyajyotisarkar23@gmail.com>
References: <20260305191810.31033-1-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Now that BGRT images are preserved during EFI boot (via
EfiACPIReclaimMemory allocation), the invalidation code in
acpi_parse_bgrt() is no longer needed. The BGRT table remains
valid throughout boot.

This removes the code that was marking BGRT invalid when the
image memory was detected as unavailable, which was causing
ACPI warnings in Linux dom0.

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
---
 xen/arch/x86/acpi/boot.c | 23 -----------------------
 1 file changed, 23 deletions(-)

diff --git a/xen/arch/x86/acpi/boot.c b/xen/arch/x86/acpi/boot.c
index 1ca2360e00..fc88b559e6 100644
--- a/xen/arch/x86/acpi/boot.c
+++ b/xen/arch/x86/acpi/boot.c
@@ -327,27 +327,6 @@ static int __init cf_check acpi_parse_hpet(struct acpi_table_header *table)
 	return 0;
 }

-static int __init cf_check acpi_invalidate_bgrt(struct acpi_table_header *table)
-{
-	struct acpi_table_bgrt *bgrt_tbl =
-		container_of(table, struct acpi_table_bgrt, header);
-
-	if (table->length < sizeof(*bgrt_tbl))
-		return -1;
-
-	if (bgrt_tbl->version == 1 && bgrt_tbl->image_address
-	    && !page_is_ram_type(PFN_DOWN(bgrt_tbl->image_address),
-				 RAM_TYPE_CONVENTIONAL))
-		return 0;
-
-	printk(KERN_INFO PREFIX "BGRT: invalidating v%d image at %#"PRIx64"\n",
-	       bgrt_tbl->version, bgrt_tbl->image_address);
-	bgrt_tbl->image_address = 0;
-	bgrt_tbl->status &= ~1;
-
-	return 0;
-}
-
 #define acpi_fadt_copy_address(dst, src, len) do {			\
 	if (fadt->header.revision >= FADT2_REVISION_ID &&		\
 	    fadt->header.length >= ACPI_FADT_V2_SIZE)			\
@@ -752,7 +731,5 @@ int __init acpi_boot_init(void)

 	acpi_hest_init();

-	acpi_table_parse(ACPI_SIG_BGRT, acpi_invalidate_bgrt);
-
 	return 0;
 }
--
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 05 19:18:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 19:18:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247046.1545932 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyEDH-0003wC-EM; Thu, 05 Mar 2026 19:18:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247046.1545932; Thu, 05 Mar 2026 19:18:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyEDH-0003w5-BC; Thu, 05 Mar 2026 19:18:23 +0000
Received: by outflank-mailman (input) for mailman id 1247046;
 Thu, 05 Mar 2026 19:18:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RBnC=BF=gmail.com=soumyajyotisarkar23@srs-se1.protection.inumbo.net>)
 id 1vyEDF-0003vz-WC
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 19:18:22 +0000
Received: from mail-pl1-x644.google.com (mail-pl1-x644.google.com
 [2607:f8b0:4864:20::644])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 114163f7-18c8-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 20:18:19 +0100 (CET)
Received: by mail-pl1-x644.google.com with SMTP id
 d9443c01a7336-2ab232cc803so39855035ad.3
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 11:18:19 -0800 (PST)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2ae4d3113e0sm142965715ad.79.2026.03.05.11.18.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 05 Mar 2026 11:18: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: 114163f7-18c8-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772738298; x=1773343098; 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=SMJgdGHu5uiPPqH6dZaegUtOqViHvmyYFz9sYq0PX0M=;
        b=m0PHjkOQTPmUTaTHrokGZRS/IlQwA58nJ5wc0wLkmToMCa1HURjYIfTERJZaB6OzyM
         az6wfZgVFw1U5Q1jBeQ7RP7qpMu8zBqRvTZCFKfuOhbe/1mBI+tK7LMwjexLxEvHGSFN
         erS99jmMgcmwg2qP2hB/ctXQHTL3vWkQIvArA6XpsqIB1/V6lW4NrLosmsshpqixLEIF
         7HPlp3o2UGmr/1oGJ9VXQD7L+Yp0BsDEyfetwaCB4K7GsvALTWYUjj/cDEEUjF4PvWru
         JtRFHd4INTzQJ67AfD21uqhfmUPU0JcWMAx+btOyqRMEed/kEcpQt5Hay22fEECu8Cf8
         n1Zw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772738298; x=1773343098;
        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=SMJgdGHu5uiPPqH6dZaegUtOqViHvmyYFz9sYq0PX0M=;
        b=FK567KuwmZflvFbqd89jEjABq/G1SSMoQafwaLVxZHh1VM7eDK/Sp579TIMz5HsUQE
         gMg0yn/2Q1CoqaclWopmA3NZVf4/mytCcaVH9urC0qrH3UL9pzWD5gYjTIK455QayLge
         oteF3flQ3raVMDvEGkYGccoFogfGD4DA1Wv/bURz4yvxF2CxHHbNW5kS8kUbbTOHwihy
         mVpva7VS4wQ0sPM7SsuHaGvm81yUfTgfph5SXUT+GYviZXhieBQrlq02GXpWGC5nHgyD
         xpW/2tJpyeWbR6GkoK0bRDfGnDcMFNVQ5vrvTtfJ8w2u6XnF2l+7+sSpgjTY6LL/0Say
         k4RQ==
X-Gm-Message-State: AOJu0Yyn4BFw3qRjOJgTL0f/RMbwQtM9ejzow9IyJrqp7126UP11GtJO
	pGfLUX5QSYNLymx9nqw2Am3Aw7kN5RpjFAJXCzOCNfNXRgQzDD1PYzASE8ntZDfK
X-Gm-Gg: ATEYQzwvzKiLdtOofJ+Ss+y6KtRR+AM5Bi6IBfJyL89G/dX4gn1HfJe+vFK50ZiD+qs
	KNrl8cPwdX5RcbzB6PxVJdhCmCRkc6AyeNBonPXFTiwwGr/+Folhzs6igWCWRZTj8iNh/TZDNIw
	qW/yr6DXb+YDhONUMvdzWKMDEwf2tfIIr5oaQ54nrr3Y1gEn8yELX2jWRBKQbVDxwQd2sozoLXG
	d/ZW6mpZYGLe0prTHwYkI4HHs7i02NRAzsJkUwaTw53WTsR9gQlc9g3O+bEPYRXxR72FLwSXDmR
	AZr2nmgINv3EM9IJqONdojbzYm2dWf3RQFDQRWhhrIHgzc+qEtCQt5zK1Suzi66WkaA+sQsxhvM
	QwQ3cSfbkLB0mMsvKktuxIzHg24l2E/zbaB5u/Oscje5/hDO6pNBzs7/tWDa1BH/fQXDvBI0RsR
	u9SyznWY2/yQNTePLqj8W2IhKHomJ6X1j5Y5kXg7bJMuOovb/ooc9wSP9wIraP5C8mdI+XMoZDV
	WvA2BZINvBu1BZbY7srOnCeVA/JWixL69nrVrtWEJqRQQXqJZvwFdT+8SuibFnwvlWBfh7/Ig==
X-Received: by 2002:a17:902:e88c:b0:2ae:59a9:639d with SMTP id d9443c01a7336-2ae6a9cc515mr71087265ad.4.1772738297481;
        Thu, 05 Mar 2026 11:18:17 -0800 (PST)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: xen-devel@lists.xenproject.org,
	sarkarsoumyajyoti23@gmail.com
Cc: Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [PATCH 0/3] Fixing ACPI BGRT (Boot Graphics Resource Table) corruption
Date: Fri,  6 Mar 2026 00:48:07 +0530
Message-ID: <20260305191810.31033-1-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This series fixes ACPI BGRT (Boot Graphics Resource Table) corruption,
that occured when Xen reuses the memory containing the boot logo
image before dom0 is able to parse ACPI tables.

The BGRT table contains a pointer to a BMP image stored in
BootServicesData memory. When Xen reclaims this memory early in boot,
the pointer becomes invalid, causing Linux dom0 to report:
Xen: `(XEN) ACPI: BGRT: invalidating v1 image at 0x47cc2018`
Linux (dom0): `ACPI BIOS Warning (bug): Incorrect checksum
in table [BGRT] - 0xF9, should be 0xB4 (20250807/utcksum-58)`

This series:
1. Adds BGRT image preservation during EFI boot (similar to ESRT)
2. Removes the now-unnecessary invalidation code
3. Provides an opt-out mechanism (efi=no-bgrt) for servers

The preservation is enabled by default to fix the corruption for all
users, with minimal overhead (~1MB). Also, servers that don't need boot
graphics can disable it using the "efi=no-bgrt" option.

Testing:
- Verified on Intel UEFI system with Fedora 43 dom0
- Before: ACPI checksum errors in dom0
- After: Clean boot, no ACPI warnings
- Memory overhead: ~972 KB (preserved image size)

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>

Soumyajyotii Ssarkar (3):
  x86/efi: Add BGRT image preservation during boot
  x86/acpi: Remove BGRT invalidation code
  x86/efi: Add opt-out mechanism for BGRT preservation

 xen/arch/x86/acpi/boot.c    |  23 -----
 xen/arch/x86/efi/efi-boot.h |   2 +
 xen/common/efi/boot.c       | 199 ++++++++++++++++++++++++++++++++++++
 3 files changed, 201 insertions(+), 23 deletions(-)

--
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 05 19:18:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 19:18:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247049.1545962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyEDR-0004eY-7M; Thu, 05 Mar 2026 19:18:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247049.1545962; Thu, 05 Mar 2026 19:18: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 1vyEDR-0004eK-3y; Thu, 05 Mar 2026 19:18:33 +0000
Received: by outflank-mailman (input) for mailman id 1247049;
 Thu, 05 Mar 2026 19:18: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=RBnC=BF=gmail.com=soumyajyotisarkar23@srs-se1.protection.inumbo.net>)
 id 1vyEDQ-00048o-7N
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 19:18:32 +0000
Received: from mail-pl1-x642.google.com (mail-pl1-x642.google.com
 [2607:f8b0:4864:20::642])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 18753e3d-18c8-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 20:18:31 +0100 (CET)
Received: by mail-pl1-x642.google.com with SMTP id
 d9443c01a7336-2ad21f437eeso59682495ad.0
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 11:18:31 -0800 (PST)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2ae4d3113e0sm142965715ad.79.2026.03.05.11.18.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 05 Mar 2026 11:18: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: 18753e3d-18c8-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772738310; x=1773343110; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=++GELJavQDbG9JYk0zJHLyDpXIOV9aBooWUi6D+W/MA=;
        b=ZywURYfyu9jtd0HY/U+AMVN1oYScCM8ieiP9SoBXhR3jUC8XZQqqrwbrZe48NQvahw
         meuprx9ZWNPE+nAD8CHiw2voqFWrs4PRd5sUIW8R+w2iuUsIF+F8+xEoQobzx+MMkkcb
         5alIDhKYqfTZoDM/NRb1J6+VxGbAD4z8meHijbS8zJoWyTvvTJglF6taF2DUb5sytTon
         5BsmMNm11Vh9sKgijWgdcvcCiSjB0F/BaxTvyjZm4sDyDnELAZhf+x4htYJSCDWyvKrI
         /zcbzpc6kBZfxu+5h7b1DKbVUWCYn1jTItSNSWXNWBdobc1+hbVAy7fvY+FStNBYrR+K
         apag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772738310; x=1773343110;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=++GELJavQDbG9JYk0zJHLyDpXIOV9aBooWUi6D+W/MA=;
        b=hdl893RlzgGeMycWDwNGmRQPOAMYIE3T+V/WgHRhbvWZ2YOlRu4BAzwLm6DrNC1ym8
         ff6SvrZDqc7yyh5Oe5IytA+Fo0L8u2ZmTfW/jQOvnv2FPw+sLxK5HXVvNGPNpRoKsPix
         do5ab84VQms3St+dfJlIvCojaJwgX5+sT20yGOHB+6QYlzwqOkrz9PRoaeJRgsFVFpn1
         WbfpVX4RIunRnF8is8m8yrCFSEE25FOyKo5Uodwm1ujVch+5lozBxM7jGYSrh6E9C71B
         mxraFRdtgnvJOqfY0BihQ97RzR1WIJWFKnDSTPjroAAhXUZbBQdX4RzOVBsZBEp4J7mB
         zwCQ==
X-Gm-Message-State: AOJu0YwD86CtXyJlFlEoUI/tbz3CGuX9KyLFJzVKghdPcgdefqcI99hr
	ZMHiXADhHQbGnhyQyfXwKX7dlYrtFzHdnqZ+1qGEaDxfu677qT41RrUq0BL3k4TI
X-Gm-Gg: ATEYQzzcZoXd9vNLL/CCU2MHf5XiF9YleQ2WGmnH8ek2DfrLC57yuKzMF+omyQo1fPw
	I6tr8TCUq3KIFpHI/oZIrCyyKWA7gbDJxy13VQhYCkUZso6628tc+XFkFFYO2VqSPkpV54v50W3
	XIkB3SG7n9Ebvp+XBYRDj1eEnvraGkbRiS5HPgQkGJeWhCcDdTIJ0NbAWfi5z7gMkwM9nf+plJI
	iOBne8t0aLDRTZk/i3BRbGyC8TDC0UaQ5dfeO4TmVDeYC2M+QNfl0yS0KfvTB7qCQtKx+79BJvp
	TFC+Y+NPTA6UjZyHFe27JBjj9+VfTpAimMl25vfj4+oymUG5w7t9L8vpdbd6htzhN/BvMtazGgG
	eEbgjvcj8tKWcwtgh3AKumIJ0OMrhNvEI+MtWQU7662zaCWykfJLCUcYi73mrgSxWdTibUzqU4e
	uhVD4aG/u7LuErxW4QJZ0b1QsQ7kJHTlv/tmLGl/s0IC0221/ow8jbJmQPdxsXtBPobkdPll3eq
	aeVHbgSVNoXcgYW86t/WOnRlVPQuRicGd5PQZPLpCraS+Cq61L0Txi6brfo7YLq5AU3Q4sgkFXN
	sCcvQcun
X-Received: by 2002:a17:903:1b6f:b0:2ae:7f15:7a4c with SMTP id d9443c01a7336-2ae7f157a85mr12680975ad.18.1772738309652;
        Thu, 05 Mar 2026 11:18:29 -0800 (PST)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: xen-devel@lists.xenproject.org,
	sarkarsoumyajyoti23@gmail.com
Cc: Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [PATCH 3/3] x86/efi: Add opt-out mechanism for BGRT preservation
Date: Fri,  6 Mar 2026 00:48:10 +0530
Message-ID: <20260305191810.31033-4-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260305191810.31033-1-soumyajyotisarkar23@gmail.com>
References: <20260305191810.31033-1-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As described in the task, BGRT preservation is now enabled by default to fix ACPI corruption
for desktop/workstation systems (similar to ESRT).

Add an opt-out parameter 'efi=no-bgrt' to allow disabling BGRT
preservation on systems where the ~1MB memory overhead is not
desired.

The parameter is parsed during normal Xen boot (not during EFI
phase), so it only affects diagnostic logging. The opt-out flag
is checked at the start of efi_preserve_bgrt_img().

Usage:
  Default: BGRT preserved automatically
  Opt-out: Add 'efi=no-bgrt' in Xen command line

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
---
 xen/common/efi/boot.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 1e3489e902..b735eac6b2 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -167,6 +167,7 @@ static SIMPLE_TEXT_OUTPUT_INTERFACE *__initdata StdErr;

 static UINT32 __initdata mdesc_ver;
 static bool __initdata map_bs;
+static bool __initdata opt_bgrt_disabled = false;

 static struct file __initdata cfg;
 static struct file __initdata kernel;
@@ -868,6 +869,9 @@ static void __init efi_preserve_bgrt_img(EFI_SYSTEM_TABLE *SystemTable)
     bgrt_debug_info.preserved = false;
     bgrt_debug_info.failure_reason = NULL;

+    if ( opt_bgrt_disabled )
+        return;
+
     bgrt = find_bgrt_table(SystemTable);
     if ( !bgrt )
     {
@@ -1873,6 +1877,10 @@ static int __init cf_check parse_efi_param(const char *s)
             else
                 __clear_bit(EFI_RS, &efi_flags);
         }
+        else if ( (ss - s) == 7 && !memcmp(s, "no-bgrt", 7) )
+        {
+            opt_bgrt_disabled = true;
+        }
         else if ( (ss - s) > 5 && !memcmp(s, "attr=", 5) )
         {
             if ( !cmdline_strcmp(s + 5, "uc") )
@@ -1968,7 +1976,11 @@ void __init efi_init_memory(void)
     if ( !efi_enabled(EFI_BOOT) )
         return;

-    if ( bgrt_debug_info.preserved )
+    if ( opt_bgrt_disabled )
+    {
+        printk(XENLOG_INFO "EFI: BGRT preservation disabled\n");
+    }
+    else if ( bgrt_debug_info.preserved )
     {
         printk(XENLOG_INFO "EFI: BGRT image preserved: %u KB\n",
                bgrt_debug_info.size / 1024);
--
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 05 19:18:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 19:18:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247047.1545941 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyEDJ-00049O-LQ; Thu, 05 Mar 2026 19:18:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247047.1545941; Thu, 05 Mar 2026 19:18: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 1vyEDJ-00049H-Ic; Thu, 05 Mar 2026 19:18:25 +0000
Received: by outflank-mailman (input) for mailman id 1247047;
 Thu, 05 Mar 2026 19:18:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RBnC=BF=gmail.com=soumyajyotisarkar23@srs-se1.protection.inumbo.net>)
 id 1vyEDI-00048o-Ks
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 19:18:24 +0000
Received: from mail-pl1-x641.google.com (mail-pl1-x641.google.com
 [2607:f8b0:4864:20::641])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 13a29844-18c8-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 20:18:23 +0100 (CET)
Received: by mail-pl1-x641.google.com with SMTP id
 d9443c01a7336-2addb31945aso61081585ad.1
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 11:18:23 -0800 (PST)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2ae4d3113e0sm142965715ad.79.2026.03.05.11.18.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 05 Mar 2026 11:18: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: 13a29844-18c8-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772738301; x=1773343101; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OwGP8ee4LidY7BRMCtYUVmJPzJVamR1lF04CTiEUcS8=;
        b=mVj/HPLH59ySa0qeybCGo8aweuZ9xWgK7HiIqoTHs93KCxnD/2VkGlS8lvHcxLk7Jq
         MvAim8d3kAKxrDDEM8oS703uzFhNrO3S6zJ+hYENZJTMvtHUm6yrbiBcKJ7ybzTrl+rf
         fDtkaAiNJMrtxtQzRMI0YQ9VhSgKQ6UZE8uGlzumoYjiQX1SXeeRcM3IjrA1nc8sTkB7
         P6NZMbEPQTNG+6BbysgdfyhS2NEltH1KSGL2EhWQRaX6VU+nLRQsJgyUibDNWDKpZm12
         O7FrexFPwr2vAaseBoHsQsn0NDyIpHa+qJSUmOH742te63LIa93+X71cPKLkg2Z5oQ++
         BAsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772738301; x=1773343101;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=OwGP8ee4LidY7BRMCtYUVmJPzJVamR1lF04CTiEUcS8=;
        b=K6FSGe94V8qADGoMhrOFMAKHRZEN9qwjqwgpisG1vNRQIgDFiODRCRbIZXTAE73ghr
         vqxN3XsJAqCj5NfBL2Zxky1c2uFMwHAimMFwQBnjd66BQG/rPqOznd7Zau96/gGJ0Gjf
         qdb3qVRRTOfCXu//LPZq8zsitV6OXGOGmu94qQa3bUH8lif3s4MQ0NufWxKXjI3ysrnY
         QPYPQccvy6r/fSjgE2ejBIl12FwgDZmeSQKsuSy5mj8VyRYs4uafBaUEY1pZNVAbTSaT
         ofeEVnnwyBgZ1Z2gyuoeqdjpu/CyBtIesslQS/WFLC4ddgtoQTNrPUeByCrM4i2T8tSg
         0rTw==
X-Gm-Message-State: AOJu0Yz3VEP/emR705QWaDHelpsjbbDwYlm97xYud3HzC+I+0i7y4kDz
	ON1yXoW88rMy3FB0V8JITM9jK3EkRVshWBtuB0eHFliwqb+ttDlCBwaCH1Vn845y
X-Gm-Gg: ATEYQzztpCTLf0LcoIHOLgJbCn3B+iJrStgzicq/A8wY6oq4xXHN00b1kST5hD0zOCf
	mZLh3x8nrar7Rn8Wd14+eRKrJPx8JMMm4hHFdG5PgjOGB3fCvCpcUrBMNJx9ydjdez0Y0n14AnF
	cMbXUNu1TV8Kv+WJ0dPfmgd9w6S/DSqmDZjPudw/klt2F+zvab/Yoqt0ABhMG9TUZr/dY1GtKeG
	jKNF2LrXHtrOCoD/9d4SSjPviwM+rQIayMgXVKUIQgvPJybu7hSU/oi5OPbCRRYCUBm+Qs/BBXx
	MlT+oK04aF1YDbcq5KmzrkqJY8gxssbE0hWfu2Gk3nTrpouBocgBznxZH30KPNuE1iyu1zQo0Lv
	vN+QOIE47+W4wRJj87h7K51UuVul7UUmeon2gg0UqcLppbbQAULYGNe+Nhkr16Inz14UfGQljVp
	3S8DJhVzJtvfG5+CkGlTnwRs4PF7z7u6h6q/qci/IrVEGbgCxRBksS7FzmR1QuHzhy6L9w+vvLs
	HL7DactnZfDDbOgk38lzFAAt/LHmb3ioZzm8NDjTa8MJ8a678grpX0zUlJi+c1C1NCX9wTHMw==
X-Received: by 2002:a17:903:2445:b0:2ae:588a:f3e5 with SMTP id d9443c01a7336-2ae6aaae636mr70140825ad.30.1772738301473;
        Thu, 05 Mar 2026 11:18:21 -0800 (PST)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: xen-devel@lists.xenproject.org,
	sarkarsoumyajyoti23@gmail.com
Cc: Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [PATCH 1/3] x86/efi: Add BGRT image preservation during boot
Date: Fri,  6 Mar 2026 00:48:08 +0530
Message-ID: <20260305191810.31033-2-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260305191810.31033-1-soumyajyotisarkar23@gmail.com>
References: <20260305191810.31033-1-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The ACPI BGRT (Boot Graphics Resource Table) contains a pointer to a
boot logo image stored in BootServicesData memory. When Xen reclaims
this memory during boot, the image is lost and the BGRT table becomes
invalid, causing Linux dom0 to report ACPI checksum errors.

Add preservation logic similar to ESRT table handling:
- Locate BGRT table via XSDT during EFI boot services phase
- Validate BMP image signature and size (max 16 MB)
- Copy image to EfiACPIReclaimMemory (safe from reclamation)
- Update BGRT table with new image address
- Recalculate ACPI table checksum

The preservation runs automatically during efi_exit_boot() before
Boot Services are terminated. This ensures the image remains
accessible to dom0.

Open coded ACPI parsing is used because Xen's ACPI subsystem is not
available during the EFI boot phase. The RSDP is obtained from the
EFI System Table, and the XSDT is walked manually to find BGRT.

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
---
 xen/arch/x86/efi/efi-boot.h |   2 +
 xen/common/efi/boot.c       | 187 ++++++++++++++++++++++++++++++++++++
 2 files changed, 189 insertions(+)

diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 42a2c46b5e..27792a56ff 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -910,6 +910,8 @@ void __init efi_multiboot2(EFI_HANDLE ImageHandle,

     efi_relocate_esrt(SystemTable);

+    efi_preserve_bgrt_img(SystemTable);
+
     efi_exit_boot(ImageHandle, SystemTable);
 }

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 967094994d..1e3489e902 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -7,6 +7,7 @@
 #include <xen/ctype.h>
 #include <xen/dmi.h>
 #include <xen/domain_page.h>
+#include <xen/errno.h>
 #include <xen/init.h>
 #include <xen/keyhandler.h>
 #include <xen/lib.h>
@@ -173,6 +174,14 @@ static struct file __initdata ramdisk;
 static struct file __initdata xsm;
 static const CHAR16 __initconst newline[] = L"\r\n";

+static __initdata struct {
+    bool preserved;
+    uint64_t old_addr;
+    uint64_t new_addr;
+    uint32_t size;
+    const char *failure_reason;
+} bgrt_debug_info;
+
 static void __init PrintStr(const CHAR16 *s)
 {
     StdOut->OutputString(StdOut, (CHAR16 *)s );
@@ -747,6 +756,171 @@ static void __init efi_relocate_esrt(EFI_SYSTEM_TABLE *SystemTable)
     efi_bs->FreePool(memory_map);
 }

+struct bmp_header {
+    uint16_t signature;
+    uint32_t file_size;
+    uint16_t reserved_1;
+    uint16_t reserved_2;
+    uint32_t data_offset;
+} __attribute__((packed));
+
+/*
+ * ACPI Structures - defined locally,
+ * since we cannot include acpi headers
+ * in EFI Context.
+ */
+
+struct acpi_rsdp {
+    char signature[8];
+    uint8_t checksum;
+    char oem_id[6];
+    uint8_t revision;
+    uint32_t rsdt_physical_address;
+    uint32_t length;
+    uint64_t xsdt_physical_address;
+    uint8_t extended_checksum;
+    uint8_t reserved[3];
+} __attribute__((packed));
+
+struct acpi_table_header {
+    char signature[4];
+    uint32_t length;
+    uint8_t revision;
+    uint8_t checksum;
+    char oem_id[6];
+    char oem_table_id[8];
+    uint32_t oem_revision;
+    uint32_t asl_compiler_id;
+    uint32_t asl_compiler_revision;
+} __attribute__((packed));
+
+struct acpi_xsdt {
+    struct acpi_table_header header;
+    uint64_t table_offset_entry[1]; /* Variable array length */
+} __attribute__((packed));
+
+struct acpi_bgrt {
+    struct acpi_table_header header;
+    uint16_t version;
+    uint8_t status;
+    uint8_t image_type;
+    uint64_t image_address;
+    uint32_t image_offset_x;
+    uint32_t image_offset_y;
+} __attribute__((packed));
+
+static struct acpi_bgrt* __init find_bgrt_table(EFI_SYSTEM_TABLE *SystemTable)
+{
+    EFI_GUID acpi2_guid = ACPI_20_TABLE_GUID;
+    struct acpi_rsdp *rsdp = NULL;
+    struct acpi_xsdt *xsdt;
+    struct acpi_bgrt *bgrt;
+    uint32_t entry_count, actual_size;
+    unsigned int i;
+
+    for ( i = 0; i < SystemTable->NumberOfTableEntries; i++ )
+    {
+        if ( match_guid(&acpi2_guid, &SystemTable->ConfigurationTable[i].VendorGuid) )
+        {
+            rsdp = SystemTable->ConfigurationTable[i].VendorTable;
+            break;
+        }
+    }
+
+    if ( !rsdp || !rsdp->xsdt_physical_address )
+        return NULL;
+
+    xsdt = (struct acpi_xsdt *)rsdp->xsdt_physical_address;
+    if ( !xsdt )
+        return NULL;
+
+    actual_size = (xsdt->header.length - sizeof(struct acpi_table_header));
+    entry_count = (actual_size / sizeof(uint64_t));
+
+    for ( i = 0; i < entry_count; i++ )
+    {
+        struct acpi_table_header *header = (struct acpi_table_header *)xsdt->table_offset_entry[i];
+
+        if (   header->signature[0] == 'B'
+            && header->signature[1] == 'G'
+            && header->signature[2] == 'R'
+            && header->signature[3] == 'T' )
+        {
+            bgrt = (struct acpi_bgrt *)header;
+            return bgrt;
+        }
+    }
+    return NULL;
+}
+
+#define MAX_IMAGE_SIZE  (16 * 1024 * 1024)    /* Sanity check: reject if bigger */
+
+static void __init efi_preserve_bgrt_img(EFI_SYSTEM_TABLE *SystemTable)
+{
+    struct acpi_bgrt *bgrt;
+    struct bmp_header *bmp;
+    void *old_image, *new_image;
+    uint32_t image_size;
+    EFI_STATUS status;
+    uint8_t checksum;
+    unsigned int i;
+
+    bgrt_debug_info.preserved = false;
+    bgrt_debug_info.failure_reason = NULL;
+
+    bgrt = find_bgrt_table(SystemTable);
+    if ( !bgrt )
+    {
+        bgrt_debug_info.failure_reason = "BGRT table not found in XSDT";
+        return;
+    }
+
+    if ( !bgrt->image_address )
+    {
+        bgrt_debug_info.failure_reason = "BGRT image_address is NULL";
+        return;
+    }
+
+    old_image = (void *)bgrt->image_address;
+    bmp = (struct bmp_header *)old_image;
+
+    if ( bmp->signature != 0x4D42 )
+    {
+        bgrt_debug_info.failure_reason = "Invalid BMP signature";
+        return;
+    }
+
+    image_size = bmp->file_size;
+    if ( !image_size || image_size > MAX_IMAGE_SIZE )
+    {
+        bgrt_debug_info.failure_reason = "Invalid image size";
+        return;
+    }
+
+    status = efi_bs->AllocatePool(EfiACPIReclaimMemory, image_size, &new_image);
+    if ( status != EFI_SUCCESS || !new_image )
+    {
+        bgrt_debug_info.failure_reason = "Memory allocation failed";
+        return;
+    }
+
+    memcpy(new_image, old_image, image_size);
+
+    bgrt->image_address = (uint64_t)new_image;
+    bgrt->status |= 0x01;
+
+    bgrt->header.checksum = 0;
+    checksum = 0;
+    for ( i = 0; i < bgrt->header.length; i++ )
+        checksum += ((uint8_t *)bgrt)[i];
+    bgrt->header.checksum = (uint8_t)(0 - checksum);
+
+    bgrt_debug_info.preserved = true;
+    bgrt_debug_info.old_addr = (uint64_t)old_image;
+    bgrt_debug_info.new_addr = (uint64_t)new_image;
+    bgrt_debug_info.size = image_size;
+}
+
 /*
  * Include architecture specific implementation here, which references the
  * static globals defined above.
@@ -1794,6 +1968,19 @@ void __init efi_init_memory(void)
     if ( !efi_enabled(EFI_BOOT) )
         return;

+    if ( bgrt_debug_info.preserved )
+    {
+        printk(XENLOG_INFO "EFI: BGRT image preserved: %u KB\n",
+               bgrt_debug_info.size / 1024);
+        printk(XENLOG_INFO "EFI: BGRT relocated from %#" PRIx64 " to %#" PRIx64 "\n",
+               bgrt_debug_info.old_addr, bgrt_debug_info.new_addr);
+    }
+    else if ( bgrt_debug_info.failure_reason )
+    {
+        printk(XENLOG_WARNING "EFI: BGRT preservation failed: %s\n",
+               bgrt_debug_info.failure_reason);
+    }
+
     printk(XENLOG_DEBUG "EFI memory map:%s\n",
            map_bs ? " (mapping BootServices)" : "");
     for ( i = 0; i < efi_memmap_size; i += efi_mdesc_size )
--
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 05 19:44:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 19:44:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247091.1545972 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyEcN-00012h-5p; Thu, 05 Mar 2026 19:44:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247091.1545972; Thu, 05 Mar 2026 19:44:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyEcN-00012a-36; Thu, 05 Mar 2026 19:44:19 +0000
Received: by outflank-mailman (input) for mailman id 1247091;
 Thu, 05 Mar 2026 19:44: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=a8fi=BF=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1vyEcK-00011h-RZ
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 19:44:17 +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 b09bb82f-18cb-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 20:44:14 +0100 (CET)
Received: from BL1P223CA0036.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:5b6::18)
 by DM4PR12MB6325.namprd12.prod.outlook.com (2603:10b6:8:a4::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18; Thu, 5 Mar
 2026 19:44:08 +0000
Received: from BL02EPF0001A0F9.namprd03.prod.outlook.com
 (2603:10b6:208:5b6:cafe::ea) by BL1P223CA0036.outlook.office365.com
 (2603:10b6:208:5b6::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Thu,
 5 Mar 2026 19:44:08 +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.9678.18 via Frontend Transport; Thu, 5 Mar 2026 19:44:07 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 5 Mar
 2026 13:44:07 -0600
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via
 Frontend Transport; Thu, 5 Mar 2026 13:44: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: b09bb82f-18cb-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ygCc+P3S/NQ8T9z9+hCwE2uKUx3hn5jKjxKFvdYq6iTfY0towwtHDSreh7F4lpAJAAsDCpspD007DQoPgRlr/EyttubNIToF08a9kV5iosQimxLckj1mAnDarZNrGVoKeIiMXXTopXMuol5jn5KVwPTA7qB48YE+KsQWmrh7c5VMOVgx2q81Nq+TezUCaRLEz+XhcKVsOLWiBPfpUrAKSr1/PeCPOPQKHOPAgSOJx+HQaUHWhnw2TeYHpjeV0is+1ZbRx8lJhFdz2YYHAjvYetL+hmXRYH0ja87yjc/g8ROCaEmlXfebt+3RWxFs6zq8/r50sp7ZLSzLwAoAcwKIUg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1C9rMu+hKSXbM2T3s0AbPGeJ1AJKoa1R2N+QJToS5B0=;
 b=ThNWkQSksf/62DdSHd4HUD6M5cvLDIDTcdmobqM/lbOIoG4PwkaTWD1qrcvD8td/KAUBXjp3q4shQkmP9I5qr8dX10n6DoWug2clY5K4JhnIxUNW0whnM4wDEh8SV24W1zwtUY/sMl5nUiTgeEGMlZbgSMTqqveLVwsXwNpWlJUm/ER/0EvWeQfzGOglFQwTx0qOKlIeEGcGovhbyHgI7Dsc2dxkSLFvoSk80Gt64tlRL/g6I+uXRRq4xyJyBg8A9g3h1HvrXLbc3ZDMTN6+bs7mpYng3VkITZzCroitgQw0N/mgj2nFpiplD/9T+0CCeHReTawQXM94BJ8ESxJtmA==
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=1C9rMu+hKSXbM2T3s0AbPGeJ1AJKoa1R2N+QJToS5B0=;
 b=3ZhRcLQUz29S1pDn0dxfAHqeU8NX9rGdJm41Z8xKIVS+ZrlQWQ2hoD6RhrTy8cdREVgqmxRAUvd/Ro6MXbU53LZl9NT3BdkKZ1XBfeCsm15St15Cshqxg6Nz4FzIS1XcKsS2PrG8CBmw5lUGJmkeWL6O3PCykNZnNzZHBNHd7hc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH] xen: gic-v3: Introduce CONFIG_GICV3_NR_LRS
Date: Thu, 5 Mar 2026 19:43:58 +0000
Message-ID: <20260305194358.2564387-1-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A0F9:EE_|DM4PR12MB6325:EE_
X-MS-Office365-Filtering-Correlation-Id: d367120a-247b-43e1-17bd-08de7aef90c2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700016|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	KvIAc8BL5NLRh6k07DYrPE9Hr656zkG29PwS2b9Ie8x1TgzxHGiuuUh7jyGAe2waBkiUssYhJQTU+H3+lJxobKc4Wd6pSS1ZLgDveTRDNftS9mWVjZmSkX5MZl7ELNL0dDcrckIEKnlAlw8F+e7BTZK5kncTx2JkzXf7whoALhlaYPoTh+5lGV4x8fB3lILteAzPqVdhkpePWUTxjVRV6oyp0U5pBa6oxkHAxMlPKdnPsAfyc9e1mIOkVrppeHFZ1qKq3JHwubWE8UaMLrL4NkknKeLJM2AT7jyNC2ofSxC0itLMSo0qIoGVBkCFAUV5/Y9fCcfRXhYcByGK2Jjb4XKk5beO3I+cIHmtm9rlIr2QcvabJQJqSe+J3mjyEDX++kjQrykDhFiZ0r6gbsB/JfAYP/IGOEHWgdZl6bc86bZPfZr01u2semcZONGQo15KGw2nqp0CrYtuKKl6TQiUB++wfvtMqN8HL2ShZG/KU7R8bU/LrVOiuFcIPqcWG3Gc1Y/czw3r7TBGNohg44a92qAJE4BsfLOKJt5FY4OvkwLfIPdPpuY3KABVirG7ugH7iEgEzksEjXcemWWHzXeh7kbv/P5DFwMM6l3ZYBKGmZHEXtxYZ08ydiG6qMquzEEZOkrn9fAVnSX3prnSxeWq9THt9wJRAPHpZD2LI84BU7WHMcohFRIar5D2iKHb3EbLZTeko20obSNA7gta1XO16PTfhUgXp0JnhUgXF3oM0saIHOK84gzYebkSIhrMKRtyp/PuNYKrlX/zJd3dq8h/ww==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(376014)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ottV+oYcwRT4Fb9fh5IfNOXPqFpsJyWRpe+TS1KoxCFNaxeJhDbwzY2lYsjskRzCKuE13RLk10AGGY9iDjB6E5jNKGr6F+/zpPuLNOtu/3QZl3BAa0J9lKLOA9PXemvhXlIaNao9Ie7uCKUbqTdf/s9M09hr8w0/7ovUzMqvcs6YBPpc2NHz+6SR7mS/3kk8K1p446SGf566sQRr2a9QBH7grDPTJCuS4bVZMc/+CPDCQ/E2xLC9Uw9HbQ0KxXj9J1iXfMJyzWfVRJkUnBfmW5lHZ/TSJd1LaT10qYS5X+/mNaFoNbdqLX4JY4R6cOpUH0vMpvAmxb4MdM+l4kdB/oic3A2RrxEUnIALIf6GZLI6tw94ulNX/1lRwTBM/xCtDaIrFc90JKQcrt3LHqxUZF9xCXjZLuM1jIzwWf7DmZk/DQt8K5kPqrax0RdURj3+
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Mar 2026 19:44:07.7164
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d367120a-247b-43e1-17bd-08de7aef90c2
X-MS-Exchange-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: DM4PR12MB6325

Set GICV3_NR_LRS as per the number of list registers in the supported
hardware. This ensures:

1. In gicv3_save_lrs()/gicv3_restore_lrs(), use the number of list
registers from GICV3_NR_LRS (if defined) instead of gicv3_info.nr_lrs.
This ensures that if the hardware does not support more than 4 LRs
(for example), the code accessing LR 4-15 is never reached. The
compiler can eliminate the unsupported cases as the switch case uses a
constant conditional.

2. Similarly In gicv3_ich_read_lr()/gicv3_ich_write_lr() , we can
justify that the unsupported LRs (4-15) will never be reached as Xen
will panic if the runtime value (lr) exceeds GICV3_NR_LRS. Some
compiler can eliminate the code accessing LR 4-15.
In this situation, using panic() is better than accessing a list
register which is not present in the hardware

3. Whenever GICV3_NR_LRS is defined, the default condition and the
related BUG() cannot be reached at all.

As part of functional safety effort, we are trying to enable system
integrator to configure Xen for a specific platform with a predefind
set of GICv3 list registers. So that we can minimize the chance of
runtime issues and reduce the codesize that will execute.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
 xen/arch/arm/Kconfig  |  9 +++++++++
 xen/arch/arm/gic-v3.c | 12 ++++++++++--
 2 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 2f2b501fda..6540013f97 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -276,6 +276,15 @@ config PCI_PASSTHROUGH
 
 endmenu
 
+config GICV3_NR_LRS
+	int "Number of GICv3 Link Registers supported" if EXPERT
+	depends on GICV3
+	range 0 16
+	default 0
+	help
+	  Controls the number of Link registers to be accessed.
+	  Keep it set to 0 to use a value obtained from a hardware register.
+
 menu "ARM errata workaround via the alternative framework"
 	depends on HAS_ALTERNATIVE
 
diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index bc07f97c16..fb2985fd52 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -51,6 +51,8 @@ static DEFINE_PER_CPU(void __iomem*, rbase);
 #define GICD                   (gicv3.map_dbase)
 #define GICD_RDIST_BASE        (this_cpu(rbase))
 #define GICD_RDIST_SGI_BASE    (GICD_RDIST_BASE + SZ_64K)
+#define lrs                    (CONFIG_GICV3_NR_LRS ?: \
+                                gicv3_info.nr_lrs)
 
 /*
  * Saves all 16(Max) LR registers. Though number of LRs implemented
@@ -59,7 +61,7 @@ static DEFINE_PER_CPU(void __iomem*, rbase);
 static inline void gicv3_save_lrs(struct vcpu *v)
 {
     /* Fall through for all the cases */
-    switch ( gicv3_info.nr_lrs )
+    switch ( lrs )
     {
     case 16:
         v->arch.gic.v3.lr[15] = READ_SYSREG_LR(15);
@@ -121,7 +123,7 @@ static inline void gicv3_save_lrs(struct vcpu *v)
 static inline void gicv3_restore_lrs(const struct vcpu *v)
 {
     /* Fall through for all the cases */
-    switch ( gicv3_info.nr_lrs )
+    switch ( lrs )
     {
     case 16:
         WRITE_SYSREG_LR(v->arch.gic.v3.lr[15], 15);
@@ -178,6 +180,9 @@ static inline void gicv3_restore_lrs(const struct vcpu *v)
 
 static uint64_t gicv3_ich_read_lr(int lr)
 {
+    if ( lr >= lrs )
+        panic("Unsupported number of LRs\n");
+
     switch ( lr )
     {
     case 0: return READ_SYSREG_LR(0);
@@ -203,6 +208,9 @@ static uint64_t gicv3_ich_read_lr(int lr)
 
 static void gicv3_ich_write_lr(int lr, uint64_t val)
 {
+    if ( lr >= lrs )
+        panic("Unsupported number of LRs\n");
+
     switch ( lr )
     {
     case 0:
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 05 19:58:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 19:58:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247109.1545982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyEpg-0002rb-BP; Thu, 05 Mar 2026 19:58:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247109.1545982; Thu, 05 Mar 2026 19:58:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyEpg-0002rU-8M; Thu, 05 Mar 2026 19:58:04 +0000
Received: by outflank-mailman (input) for mailman id 1247109;
 Thu, 05 Mar 2026 19:58: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=a8fi=BF=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1vyEpf-0002rO-1a
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 19:58:03 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9c9bec9c-18cd-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 20:58:01 +0100 (CET)
Received: from CH0PR03CA0250.namprd03.prod.outlook.com (2603:10b6:610:e5::15)
 by CY8PR12MB7147.namprd12.prod.outlook.com (2603:10b6:930:5d::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18; Thu, 5 Mar
 2026 19:57:55 +0000
Received: from DS2PEPF000061C2.namprd02.prod.outlook.com
 (2603:10b6:610:e5:cafe::97) by CH0PR03CA0250.outlook.office365.com
 (2603:10b6:610:e5::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Thu,
 5 Mar 2026 19:57:52 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 DS2PEPF000061C2.mail.protection.outlook.com (10.167.23.69) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Thu, 5 Mar 2026 19:57:54 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 5 Mar
 2026 13:57:53 -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; Thu, 5 Mar
 2026 11:57:53 -0800
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via
 Frontend Transport; Thu, 5 Mar 2026 13:57:52 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9c9bec9c-18cd-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nolg8v7daoe5QcxkD66iNmJAbVR4nYekC6JxGpPXvNKp5hjSFrCQlMwOLQYA569GcI/dTI8034BelXlXVqhzMThXjpAK8NCj9vnvLGpOzqfKbBv5j4yQjQ7FUGsW4JQZf8gbmzp7MUoz2n43QX3wg67eCiphsHHFmUEpQBpmCcv3Xtt5p3XtjqKi+CBM4NAgpyDeHkFif44qHJevHLXGjsKRmyrh500kmTKy/rGL0Efn46yTm/YWkxVJeiHrxHcNh50YFVpuwvrhMqoMc3cxiee9LEiVU67ygS4vGhYq9mL/kT4CytT4OzIhnvqxHkW2P/ZlYAGTQG3pSLjaPRVuYQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uKWjP4xtpZIn1PAPpYWKkBRR1vEVbVaqpTc5je+0qvs=;
 b=mcocFVi/mYZZfIkWE6fTrn6SKPOxhRhDu5fuSSO7K8dMdwjPPxjj5ajqhCKxikQ2g05Wxl9Swu82kzaCFn4wb12d8J12m3qLTdRqretT0qkPisngc6/GuGlG0SxXEl3iNH2cJLjTq3sAFAVehufFdFkagDGQEIbqCN37P3ZxCP61woYa4FQ3+ogT1bv4xCJbVIqgFDdWfFqLqCVWMkn9EfmUJAqyBdLZTgXn6Gg+VDIt/N59q9HpB+8Q0diiNaqXvYwVeFotw8jU81tHYapFrI6Vx0H3rT5jRlE9qNyp4YXq30618xSnchiq+UC09OjHSZXm20456sS3CKYL+1OQ1Q==
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=uKWjP4xtpZIn1PAPpYWKkBRR1vEVbVaqpTc5je+0qvs=;
 b=453Tf1evMXzHcqDvXsoyYKnxIdPOaCQTxU9kiabn3GrCL+coUGa6+oUmBuZ2PRq0ePw+sXvoLeS6buBnLQdkvWviGmskoexvIZL4BY3drW8ZWp0zdmgbo8QbHTkJju+4+B9l/4lpPyFv8riDUhjg2EiKSJFYBMTZjrJjBjuiogc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH] arm/gic: Optimize lr_mask type based on GIC version
Date: Thu, 5 Mar 2026 19:57:45 +0000
Message-ID: <20260305195745.2595017-1-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF000061C2:EE_|CY8PR12MB7147:EE_
X-MS-Office365-Filtering-Correlation-Id: bb110e49-fcda-40f9-6829-08de7af17d72
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700016|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	v3UqDZJi1M8iJOFUpmwfwZzXXIxdPnZ6CeuBmCk/8VZCpxZ8gwaDpnN+SQtTBvlY3JmkaHhuku+aq6palZ5ZDlv/75k6xhgKVVZ3cefgoJKrGdL0bizwwhWLXQ/Y18ZkxbpuUEGeW9ACaw47PhEii8ywGJSIoFe8hIAIK9rBi8ypTA0/bio3y+bLmHWeGW21Je5+dYLzuY/trPSorMe6liVV8rI6Ma26x2nlL0qMsH9H1wGvHVHifUQcAAmj5btM/AsuCshkOm9fhaP/iqMiAypr2htL0d0N8e6FYPvt4iXN106EHij16PHEhmKfO6baxI3g1BEJLK3BdZb1/eZMajL8vl3tXPJwFCeIDO476bdxCsptiT36NYEysUY7ZBGK7/j4T1+EFLvUzkCWqlThhPiFEdBH9iL8aD33QKU8H6e0qYYQebWJ7SNbnrSiVMIepfoC37z5cVSwNIxr+fm1aUGK2NHMZ7VKjD/oAHKchqjAhcLDpg3o3krwsk/ac4EJ04sAqmr6jvHs+5eOmNAq2RVm+kgWsCeHKCuRZN2YCEB4r9KQA5d0hD0mdvAdRoXnL1adHQ/mqq9cQ15pnPgOXBI5O1ebbkA9bk4+ogpSPY8zf+VCz2gK2V3FytNg3cA5fUhagVI6FDWP98CACGlvrh2OV8HVTwi9Hxf6QRMgSVaKsv+Mxn4VZmSPgSncXqZgT2liW+8Wbz63YG9OTCZGBIQsG7iwqUljj+mPY9MiXZU1gXF7JxPQ3XF0Ruc4+oK3/B5zYSSqWCgS6u7/Myp9bQ==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	zyGQvV2s029w33hLtBvqWeJrKPFl4gdF75idS15b+b6kUMmMZbPEf73yHaXJkF0000KFg0ig/864Bkpy04wl2ixt+YjgZW5biAVRIi+p0cD7CSY/T3R5w/yjI0JgA5ANBXZJaAAGDhnkyevPMvDxcye8hLMbpHeoTy0FyNDZKyBNypdatUwGo9ZCCPFJ3BeIa0OtFX1yk4yEkWbAIHWUAzeqcz9cYWC0r/6sK45MZEhvluAVSUDtcPhY2+AF7nkdDsbwJtwG/Q6mqY9DiRfJ7xc+UNmJai6b3n7BBjHKCBMpIHeoxgV8gm9BKejmEwKppOMIt+bjO+owYrUr6mN8tRFblLOOx7wWWRpVOKzG4yl9dLynf9/jkFRVqRqiQwDiTDT1lOWKx+QMLzDm1BLkegWPfZeFN30EKnBWC+RzYsrBEKvEokK+dneU4ZM0mCkS
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Mar 2026 19:57:54.2826
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bb110e49-fcda-40f9-6829-08de7af17d72
X-MS-Exchange-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:
	DS2PEPF000061C2.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7147

The lr_mask bitmap tracks which List Registers (LRs) are in use for
virtual interrupt injection. Previously, lr_mask always used uint64_t
(8 bytes) to support the maximum number of LRs across both GIC versions.

However, GICv2 and GICv3 have different hardware limits:
- GICv3: ICH_VTR_EL2[3:0] encodes LR count -> max 16 LRs (4 bits)
- GICv2: GICH_VTR[5:0] encodes LR count -> max 64 LRs (6 bits)

This patch introduces conditional compilation to optimize lr_mask size:
- CONFIG_GICV3=y: Use uint16_t (2 bytes) - sufficient for 16 LRs
- CONFIG_GICV3=n: Use uint64_t (8 bytes) - required for 64 LRs

With this, parameter 'lr' in gicv3_ich_read_lr(), gicv3_ich_write_lr()
cannot have a value > 15. Thus, it should not possible to hit the
BUG() in the default case.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
 xen/arch/arm/gic-vgic.c           | 11 ++++++++++-
 xen/arch/arm/gic.c                | 10 +++++++++-
 xen/arch/arm/include/asm/domain.h |  4 ++++
 xen/arch/arm/include/asm/gic.h    |  8 ++++++++
 4 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/gic-vgic.c b/xen/arch/arm/gic-vgic.c
index ea48c5375a..80d3beb225 100644
--- a/xen/arch/arm/gic-vgic.c
+++ b/xen/arch/arm/gic-vgic.c
@@ -16,8 +16,13 @@
 #include <asm/gic.h>
 #include <asm/vgic.h>
 
+#ifdef CONFIG_GICV3
 #define lr_all_full()                                           \
-    (this_cpu(lr_mask) == (-1ULL >> (64 - gic_get_nr_lrs())))
+    (this_cpu(lr_mask) == ((uint16_t)-1 >> (16 - gic_get_nr_lrs())))
+#else
+#define lr_all_full()                                           \
+    (this_cpu(lr_mask) == ((uint64_t)-1 >> (64 - gic_get_nr_lrs())))
+#endif
 
 #undef GIC_DEBUG
 
@@ -102,7 +107,11 @@ static unsigned int gic_find_unused_lr(struct vcpu *v,
                                        struct pending_irq *p,
                                        unsigned int lr)
 {
+#ifdef CONFIG_GICV3
+    uint16_t *lr_mask = &this_cpu(lr_mask);
+#else
     uint64_t *lr_mask = &this_cpu(lr_mask);
+#endif
 
     ASSERT(spin_is_locked(&v->arch.vgic.lock));
 
diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index ee75258fc3..e1121a5bb3 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -29,7 +29,11 @@
 #include <asm/vgic.h>
 #include <asm/acpi.h>
 
+#ifdef CONFIG_GICV3
+DEFINE_PER_CPU(uint16_t, lr_mask);
+#else
 DEFINE_PER_CPU(uint64_t, lr_mask);
+#endif
 
 #undef GIC_DEBUG
 
@@ -48,7 +52,7 @@ void register_gic_ops(const struct gic_hw_operations *ops)
 
 static void clear_cpu_lr_mask(void)
 {
-    this_cpu(lr_mask) = 0ULL;
+    this_cpu(lr_mask) = 0;
 }
 
 enum gic_version gic_hw_version(void)
@@ -382,7 +386,11 @@ static void maintenance_interrupt(int irq, void *dev_id)
 
 void gic_dump_info(struct vcpu *v)
 {
+#ifdef CONFIG_GICV3
+    printk("GICH_LRs (vcpu %d) mask=%"PRIx16"\n", v->vcpu_id, v->arch.lr_mask);
+#else
     printk("GICH_LRs (vcpu %d) mask=%"PRIx64"\n", v->vcpu_id, v->arch.lr_mask);
+#endif
     gic_hw_ops->dump_state(v);
 }
 
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index 758ad807e4..8654ef89ef 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -228,7 +228,11 @@ struct arch_vcpu
 
     /* Holds gic context data */
     union gic_state_data gic;
+#ifdef CONFIG_GICV3
+    uint16_t lr_mask;
+#else
     uint64_t lr_mask;
+#endif
 
     struct vgic_cpu vgic;
 
diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gic.h
index 8e713aa477..e1559ec98c 100644
--- a/xen/arch/arm/include/asm/gic.h
+++ b/xen/arch/arm/include/asm/gic.h
@@ -237,7 +237,15 @@ enum gic_version {
     GIC_V3,
 };
 
+/*
+ * GICv3 supports up to 16 LRs (4 bits in ICH_VTR_EL2), can use uint16_t
+ * GICv2 supports up to 64 LRs (6 bits in GICH_VTR), requires uint64_t
+ */
+#ifdef CONFIG_GICV3
+DECLARE_PER_CPU(uint16_t, lr_mask);
+#else
 DECLARE_PER_CPU(uint64_t, lr_mask);
+#endif
 
 extern enum gic_version gic_hw_version(void);
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 05 20:25:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 20:25:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247123.1545993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyFFv-0006t3-Eq; Thu, 05 Mar 2026 20:25:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247123.1545993; Thu, 05 Mar 2026 20: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 1vyFFv-0006sv-An; Thu, 05 Mar 2026 20:25:11 +0000
Received: by outflank-mailman (input) for mailman id 1247123;
 Thu, 05 Mar 2026 20: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=NtvN=BF=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vyFFt-0006sp-Rx
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 20:25:09 +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 66adbf56-18d1-11f1-b164-2bf370ae4941;
 Thu, 05 Mar 2026 21:25:08 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ0PR03MB6470.namprd03.prod.outlook.com (2603:10b6:a03:396::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18; Thu, 5 Mar
 2026 20:25:03 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.016; Thu, 5 Mar 2026
 20:25: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: 66adbf56-18d1-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aWOg0cpRru4auTsFsubdKbZ/UDipjtWMwjKLeXEQuG5w3IataLrAeH8jSj4uJcALW9Qyj+QtFUkZ0RW+sRBXQGbZBR/cvhgX4Yg7r/PrJ593lxP0eEa2ZfCS5ivskpBNr72RK0H98/q6dkfz7eLeyKNa5IcwfA84Iw3CQf2k6jr2u1j2mzQfz0EnJCf14oHL+JssnqZj/E6wNz52N0rGcUVqvotsqW2eq7AqZWWO0ZT5ZlUmySLIXN/fVGarEDzlnXHaZbYkq//ywUxPPcyxpQ671EZQZRo0GBGxrfqIoQSKWxPMI1B4QHx6EAalabHyedY31arT/L+W6YLIPXAULQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EwSb0AQsqbBm3g9wEJyMQTvkXvqq3aGJzRJL7F+bE04=;
 b=hNXwzqCBL1w+lHHiwntXhsJB9K3648m6b21nNbHCEvzA0A18lxy/ouGMBuAbgdkoxGZjQSzLyF+hd1CrFj3pHRzF5YExRFB1P0xgW6qptQzsX/gEB4tf3sURQ9vv3Y+bCeZTAbBJETz8mLMGfKVh3IHGq0AIA/qdcgfWL8Pb2oUCRyDmkoKME5PUMiqPwkW/uDFs0xdm2Feavn7mKU6lBK2kU2ovNSTNB7fJbo/dZzcrXW9WEtLfhwdqlGuUdo2DXbaqH4tu1NVyKg/DfbFkwzKcXEVCSDBKh3DwJ8BJuoVmRsFFEyCb8geAGGgKsSo+RZmFNRGsULBDjOawF0+8Iw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=EwSb0AQsqbBm3g9wEJyMQTvkXvqq3aGJzRJL7F+bE04=;
 b=MI+vAFbIFmO5WNuXZsaRGVpunwuSUPgIQq0j/ZIJ1oJnxeajnsRe5Q13abM/2fvVdEmrOnlgKVKpEe1i1J9O3YD4ayMmjUSazM7nitBQDYMoirPGYHaUCwAb0FUcvNCNYwWIMeh0dmc1Xxt4NpGOMLpREfvC7LQVLXAYxTGSYKc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 5 Mar 2026 21:25:00 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>, Jason Andryuk <jason.andryuk@amd.com>,
	Penny Zheng <Penny.Zheng@amd.com>,
	Alejandro Vallejo <Alejandro.GarciaVallejo@amd.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] x86/ACPI: _PDC bits vs HWP/CPPC
Message-ID: <aanmnEiwbmXoEkKr@macbook.local>
References: <ca1812c2-dadf-422a-a195-9c285ce08077@suse.com>
 <aahfgDDNVwJPa-jF@macbook.local>
 <3449aaf7-b221-4c45-9d22-54e340167b3f@suse.com>
 <aalD5VRBBuM16pxN@macbook.local>
 <73dd0000-4044-486a-915d-6381d0820cf6@suse.com>
 <aalYScWQQx_vMqII@macbook.local>
 <cf959649-139b-4e9a-84ef-f7548edd7f42@suse.com>
 <aal3dVPUyh2_4g4z@macbook.local>
 <4264cd39-00f3-4114-af90-baa29f9a00b9@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <4264cd39-00f3-4114-af90-baa29f9a00b9@suse.com>
X-ClientProxiedBy: MA2P292CA0020.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::10)
 To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SJ0PR03MB6470:EE_
X-MS-Office365-Filtering-Correlation-Id: 5794cf8f-3437-422a-c7a5-08de7af5486f
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:
	DKYWa59wWJPK6pycVf1rKDA8YqIyjTlY8FKe+PC6LoXKwzgzao6VCWN9Vk4y+8iF1+IkEcwHGfPOL7JO9+ITa3B4G0NYaIvO/WfQAUNyj6SMBnb55CXLOFHWBrQpKUh97c8JD1PTvoKLBHx3LYQIxCZuJSpv4angpV9Ef99NMRzz3aXtv43W+NEciS3bHCE1e3Cz2tfaarnU3HQHhyqlO7AmQYGQUcdgUYJyGr2niFNTAuOZljgJic6309/1hZwtXsg9XHkp9B90Nzg52mI+UGWIDP5NRIUMImXGE76oTvZod5hed1gwwabqTc2iAwwvoB2YqML7SSVu2qxpdWJqQz833CB2L/7se/Q7mU3bgoZzDO6wZc/zjLAB6dpetRgTgXDD/9jOANcxMPYWwc1cXiwNH7ntg26/n+8UqH0E+IYUzaeHWeOdWV3/uh//H/5erf6OBgI9CzMISHi3phH3phGKNTiNMOMWB9pFn6ZiiGnhQ9wKIhuU3ofJhrXSZvAv5jly8gxc7+oRTU4MmIIZ3nazmA8Km2TsLV3N9pgDGM8309dtuS6Q4UqVFGEMI9GhiykayPjAsaPE/oJriQCmeOB/kzxZwLW+mstghnibQjWfGZ/aRPqKbx6VSEeG9Dwaw54xyxNg3oLoxBFBKyLEnYioFll+yLsEuoXR6sobyA6iziqOKPGCylIgr1yBroaNKi57/psKzgLhtMi8uutKqOFDHT5UhJXw3bjL5sTDL/8=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZnhITUFLQWloTFJERUJQL25WQmNQT0dhMXZFWmhQemxKNzlFUEVJdE9PZWlj?=
 =?utf-8?B?U3J1cHlmSUl6L1VldWxnb2ZDZTZxeXVKbXhxcjRQbEJCZFdwZWF6MUdDYnZ5?=
 =?utf-8?B?L0RNYmh6U200Z2ZzWDdhcW9JM3EyUUYvV1lIYU1aNnhLSlZHUVIzQXdTNFpv?=
 =?utf-8?B?elJMWWhwTER2dnRuM3NsdFpOcTJxZnhESkZBeDcrRjNtTjF6b1RQTlNsZnNI?=
 =?utf-8?B?eUJwWklXVVdRSlFDVXVzZmZ6UkFoSlZnUkNnQ1Nua1RBQ0Z3T2RzcnlFTHpN?=
 =?utf-8?B?b2lPWHFJWFQydFdrL3dlUW1hbGg3UllRYVRZWEowOXV4Vlp0SGZPMzZjQVVj?=
 =?utf-8?B?MGt6MlQ0cWJERjE1NFBaUzhneXNaaFJvNThucit4L0pBdG54YzFxeGJzaktK?=
 =?utf-8?B?TXl6R3hqSTNBNzFWY2t0akJmeVY1V3RHa3IyRXZxRzVqVFJUdUJyeDB5UlYw?=
 =?utf-8?B?cjFNdVBOR0tkVVdId3Zuc25rR3BOOSswYlkvdTBkRjMvLzloaU1mNTZGTkRj?=
 =?utf-8?B?a3UrbjNYaDRGNzF2TG9aNjBFK215SWpoZEp4U0YwM2R5ZnpGNFIraStSZUhJ?=
 =?utf-8?B?WmNFQzVCL0NWZncxVGtzRHFJd3h2REVySXhSaUYvOFdDQ1M1WUZZRmJoSWpK?=
 =?utf-8?B?RlFVL0hlQ2pMdCs5MllLbEw2Y3MyQ0w2OHV4aVhmL0FUVWFqZ3hjcnUwQkVn?=
 =?utf-8?B?RHB1R0duYllnTEVla0c1QUM4Z1BjV2p5UnRDeXh2TGZCNzdZdkZXOWhBcFNM?=
 =?utf-8?B?bEc4U0ZRbnQ2dytEV1NZWmU5aTlKeE5XeVlIOVowVlliU0R4Yy9YanZUMkhY?=
 =?utf-8?B?UmVkbkw5STZDMnQvL1hBWlE1THNLTkhNRkNjc25MNWwxQ2RJYTFyOHMxd2Yr?=
 =?utf-8?B?RTRBNFpOZjNmQWVwakh2L1EvRXl3bnFla1J0bXlVVEY0cjV4dXFGb2xmakVX?=
 =?utf-8?B?OWIzN2ZLVnR5SjdNRlNvU2o3WHFxM2toV0pJMEw3TUc1OUxiam13MDh1WXl6?=
 =?utf-8?B?cFNHbC8zS3k1aEZNcnByNXc5QXlLeHhhU0FWNDdFdDROZjFuUHNNN085cnNK?=
 =?utf-8?B?QWN6cmRyaGxnU2ZkeUZHN2Nvd2l5RFAya09HOFBMNHdTcDhHVHY4RENVNWoz?=
 =?utf-8?B?YmJqZHgvNVdVaDFCdjdxMUczQVg2a2lib1NXRDgvZUw1L05vR0pzYzVXT09N?=
 =?utf-8?B?Y05yQ3BRc3hHbENOTDlLbEJlUHIzY1J6b3pXc0kvbDcybTIwWk5LL3VJeVcr?=
 =?utf-8?B?TWNxTVlUS3F3ZWFPcXExdGVvWGVwdURQQXAyVXIxQk9CYWp4d0VpUHF5Qjh4?=
 =?utf-8?B?TEwyVXlocWtaN09iREttdGI5aDFjMGlDZncwandJMEJ5Sk9ldHh6QytpZ0VF?=
 =?utf-8?B?aE5qU0RPWkMvcEoxZG8vUGNpT2k4RU9lWEhjb0QwMkp4UkhYMURQdHpNdkZq?=
 =?utf-8?B?dVhicWRlRWR2SDNQQW1CWTg5QlFmVnVRK3RkcUozUE5ucUZVUnM3cVF3U0hV?=
 =?utf-8?B?YXhWcE8wUjYzMk9icGFmQlAxMHMzY2FxajNkbHlKVk1Wd1pyN3RkUTRGRDMw?=
 =?utf-8?B?a1RCRDk3VnNYeW1kY2tUbE93clNnNkxCWlZ0bm9FeTBESVl3WGEvbllLMDZP?=
 =?utf-8?B?OWE2MG9UUFpSQ3N1U1NzaGp0dDhiM0k1WE9TdElzM01FekQzM1NzVFZOZmZo?=
 =?utf-8?B?aWIyVzFISFc2bXl6bC9QYklnOGxDSEhCdUtFTE1va2hENzVMWGVORFNoajZP?=
 =?utf-8?B?RFVpSnc4VFNPNW1lMzBMYVNuTWI1b3RyQnNEdFZveHQ2MUtZcXZiWE1oOUlw?=
 =?utf-8?B?Nnk5Rjk3MWsvVmJpRzA5c0V6NjRuRlRWRThQdUg5Q0tpWXNVUEMxNStjY3lJ?=
 =?utf-8?B?QktTRSthSkE5UCtMck44QStWWnNtWWh4VzUyRmFra2pWa21qUzBNRHRycHlx?=
 =?utf-8?B?bVZLUGxiaVlBOHg1UzNLQThKVVdCYjFnN3BxZVNMVkxwZ2laNVNjaThkZEdD?=
 =?utf-8?B?UXpqdTJyQmdIb2FKdGJNOTQ2c1NTbnU2ZUs2bVpjbHlmemk1bm00eldLc25C?=
 =?utf-8?B?Qlk2a0ExN3lKS2t3UmtFenpUWUd4U0kwcHFybVhMTTR3eGFyRG9JMHJhMS8w?=
 =?utf-8?B?ZjBNU1RqTEpJWDRSWG1IeXlOekJFSHJ5aytmTDNlaDVJUkNKbVkwMnJKU3RE?=
 =?utf-8?B?S0drdjl6bm1mRmdVNWtoOUhOOWFCblhBTnh1Vld3bVJGQVp2ZmgwK2pnUng5?=
 =?utf-8?B?c2ZhQTNtd1NCYWNCdk5YYVhYRmtWVVpoZElOSm9PQktyc0NiSmNaOFZURnJq?=
 =?utf-8?B?NnIzM1BicUoxeDRXWTkrR3g5b1poU1hjT0w1dUdLMnBucWxTS0dxZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5794cf8f-3437-422a-c7a5-08de7af5486f
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Mar 2026 20:25:03.6566
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: iqP5gh6I5jxvVCCudR4+OLPcGzRQJatEf5HtWVsHB7R51rGBRn7s2dNnWBQhQOzHdOWCb26escayWG8KwcGLXQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6470

On Thu, Mar 05, 2026 at 01:40:23PM +0100, Jan Beulich wrote:
> On 05.03.2026 13:30, Roger Pau Monné wrote:
> > On Thu, Mar 05, 2026 at 12:39:51PM +0100, Jan Beulich wrote:
> >> On 05.03.2026 11:17, Roger Pau Monné wrote:
> >>> On Thu, Mar 05, 2026 at 10:20:02AM +0100, Jan Beulich wrote:
> >>>> On 05.03.2026 09:50, Roger Pau Monné wrote:
> >>>>> Since we have the parsing of the ACPI related data done from dom0 it's
> >>>>> not only Xen that needs to support the feature, but dom0 also needs to
> >>>>> know how to parse it.  Or we just assume the driver in dom0 must
> >>>>> strictly know how to parse data from the features enabled by Xen.
> >>>>>
> >>>>> Maybe Xen supported bits should be & with the dom0 ones?  So dom0
> >>>>> would set what it can parse, and Xen would AND that with what the
> >>>>> cpufreq drivers support?  However that would be an ABI change.
> >>>>
> >>>> What cpufreq drivers are you talking about here?
> >>>
> >>> I was talking about the Xen cpufreq driver, sorry the context was
> >>> confusing.
> >>>
> >>>> When Xen handles P-
> >>>> state transitions, the drivers in Dom0 would preferably not even be
> >>>> loaded. That's what the forward-port did. Upstream they may be loaded,
> >>>> but they then can't actually do anything (and they may exit early).
> >>>
> >>> Well, yes, on FreeBSD I simply overtake the native ACPI Processor
> >>> driver with a Xen specific one that has higher priority.  So the
> >>> native ACPI Processor driver doesn't even attach.  I think Linux is
> >>> slightly different in that it allows the native driver to do the
> >>> fetching of the information, and then the Xen driver only does the
> >>> uploading.
> >>>
> >>>> Coordination is necessary only with the ACPI driver(s), and that's what
> >>>> this function is about.
> >>>
> >>> I think Xen also needs coordination with the driver in dom0 that
> >>> fetches the information from ACPI?
> >>
> >> That's what I meant with "ACPI driver(s)".
> >>
> >>>  It's not only Xen that needs to
> >>> report what the cpufreq driver support, but also dom0 would need to
> >>> expose what it can correctly parse.
> >>
> >> Hmm, yes, strictly speaking we should tie setting of respective bits to
> >> Dom0 having uploaded corresponding data. The order of these operations
> >> may, however, be at best undefined (and possibly be well defined in the
> >> unhelpful - for us - order). I don't think I see anything we can do
> >> about this.
> > 
> > I'm afraid it's the other way around, you need to first call _PDC, and
> > then fetch the data.  As I've learned the hard way while doing the
> > FreeBSD driver: you must call _PDC before attempting to fetch the
> > data, as ACPI will modulate what gets returned/is present on the
> > Processor objects based on what support the OSPM has specified in the
> > _PDC bits.
> 
> In which case at least for Linux we're okay, as what we need it has always
> been capable of parsing.
> 
> > Anyway, not sure there's much we can do now about any of this, it's
> > too late to change the interface, and what we have seems to kind of
> > work on for the purpose.
> 
> Which reads almost(?) like an ack-in-disguise to me ...

Possibly, I'm just a bit hesitant because I'm unsure about what CPPC
requires to be set in the _PDC.  Right now we would allow any
P-related bits set by dom0 to be propagated into _PDC when using CPPC
driver.  With this change we would mask any P-related bits from _PDC
when using CPPC.

I think this is likely fine, but would like to get confirmation from
AMD.  Maybe I'm overthinking it.

Penny, Jason, Alejandro, Stefano: do you know which/if there's any
_PDC/_OSC bits defined on AMD Processor Objects, or is it just
supposed to be always empty?  It would be good to get some
clarification there about which bits if any are supposed to be
meaningful when using CPPC.

Also, on a related tangent, \_SB._OSC seems to also define some
vendor-agnostic bits related to CPPC [0].  Should the CPPC cpufreq
driver force any of those to be set?  "CPPC {2} Support" bits seem
like they should be set when Xen is using the CPPC cpufreq driver?

Thanks, Roger.

[0] https://uefi.org/htmlspecs/ACPI_Spec_6_4_html/06_Device_Configuration/Device_Configuration.html#osc-operating-system-capabilities


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 21:47:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 21:47:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247176.1546003 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyGXX-00086U-4g; Thu, 05 Mar 2026 21:47:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247176.1546003; Thu, 05 Mar 2026 21:47:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyGXW-00086M-VE; Thu, 05 Mar 2026 21:47:26 +0000
Received: by outflank-mailman (input) for mailman id 1247176;
 Thu, 05 Mar 2026 21:47:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=yoVW=BF=kernel.org=robh@srs-se1.protection.inumbo.net>)
 id 1vyGXV-00086G-U9
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 21:47:26 +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 e43a4258-18dc-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Mar 2026 22:47:23 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id CD1896011F;
 Thu,  5 Mar 2026 21:47:21 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4DA1CC116C6;
 Thu,  5 Mar 2026 21:47:21 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e43a4258-18dc-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1772747241;
	bh=u0gj4H2h3Emn6PHCQ3NTJ6S3USkiCu4juy7VLJs6MK8=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=oyoG2yF5B15y9Q5opzbe48/xqw/zEN/T6mwkbwIrHuNF/42yYeHMyAjl5ywJZXbgG
	 4EZUKXvDRtMKjoAtHPGx3L9Nr8Y/rTzM4wJT9MldC7zoNLCst4XHv4NJZsp2DNZFyZ
	 D1MHbqJG+BL/VExFOdNCTK9uSAKtDVz7abBLO/rDR8lLv/3iismgy95mI6m6DeSpyo
	 oxDbb99Ib4gNDkpEsMj6AWSHxilPpBZpBooEQiWSUGxSs5K1fzA9OYoGp57sAr5dU5
	 fmzFvUyNtrpdK8gfpJzTO7otOCU7TtXcPqH/6btO+MCDk18AjGmYBjF/CPzxr/Wt4W
	 o0AY+HjRydIXA==
Date: Thu, 5 Mar 2026 15:47:20 -0600
From: Rob Herring <robh@kernel.org>
To: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Cc: Marc Zyngier <maz@kernel.org>, Nipun Gupta <nipun.gupta@amd.com>,
	Nikhil Agarwal <nikhil.agarwal@amd.com>,
	Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	Lorenzo Pieralisi <lpieralisi@kernel.org>,
	Thomas Gleixner <tglx@kernel.org>,
	Saravana Kannan <saravanak@kernel.org>,
	Richard Zhu <hongxing.zhu@nxp.com>,
	Lucas Stach <l.stach@pengutronix.de>,
	Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
	Manivannan Sadhasivam <mani@kernel.org>,
	Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
	Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
	Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
	Conor Dooley <conor+dt@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
	Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
	linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
	linux-pci@vger.kernel.org, imx@lists.linux.dev,
	xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org
Subject: Re: [PATCH v9 1/3] of: Add convenience wrappers for of_map_id()
Message-ID: <20260305214720.GA317432-robh@kernel.org>
References: <20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com>
 <20260301-parse_iommu_cells-v9-1-4d1bceecc5e1@oss.qualcomm.com>
 <86342janlx.wl-maz@kernel.org>
 <d3687764-024d-4dbc-9342-8edc9b4f1fdd@oss.qualcomm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <d3687764-024d-4dbc-9342-8edc9b4f1fdd@oss.qualcomm.com>

On Wed, Mar 04, 2026 at 03:02:14PM +0530, Vijayanand Jitta wrote:
> 
> 
> On 3/1/2026 3:16 PM, Marc Zyngier wrote:
> > On Sun, 01 Mar 2026 08:34:19 +0000,
> > Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com> wrote:
> >>
> >> From: Robin Murphy <robin.murphy@arm.com>
> >>
> >> Since we now have quite a few users parsing "iommu-map" and "msi-map"
> >> properties, give them some wrappers to conveniently encapsulate the
> >> appropriate sets of property names. This will also make it easier to
> >> then change of_map_id() to correctly account for specifier cells.
> >>
> >> Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
> >> Reviewed-by: Frank Li <Frank.Li@nxp.com>
> >> Signed-off-by: Robin Murphy <robin.murphy@arm.com>
> >> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
> >> ---
> >>  drivers/cdx/cdx_msi.c                    |  3 +--
> >>  drivers/iommu/of_iommu.c                 |  4 +---
> >>  drivers/irqchip/irq-gic-its-msi-parent.c |  2 +-
> >>  drivers/of/irq.c                         |  3 +--
> >>  drivers/pci/controller/dwc/pci-imx6.c    |  6 ++----
> >>  drivers/pci/controller/pcie-apple.c      |  3 +--
> >>  drivers/xen/grant-dma-ops.c              |  3 +--
> >>  include/linux/of.h                       | 14 ++++++++++++++
> >>  8 files changed, 22 insertions(+), 16 deletions(-)
> >>
> >> diff --git a/drivers/cdx/cdx_msi.c b/drivers/cdx/cdx_msi.c
> >> index 91b95422b263..63b3544ec997 100644
> >> --- a/drivers/cdx/cdx_msi.c
> >> +++ b/drivers/cdx/cdx_msi.c
> >> @@ -128,8 +128,7 @@ static int cdx_msi_prepare(struct irq_domain *msi_domain,
> >>  	int ret;
> >>  
> >>  	/* Retrieve device ID from requestor ID using parent device */
> >> -	ret = of_map_id(parent->of_node, cdx_dev->msi_dev_id, "msi-map", "msi-map-mask",
> >> -			NULL, &dev_id);
> >> +	ret = of_map_msi_id(parent->of_node, cdx_dev->msi_dev_id, NULL, &dev_id);
> >>  	if (ret) {
> >>  		dev_err(dev, "of_map_id failed for MSI: %d\n", ret);
> >>  		return ret;
> >> diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
> >> index 6b989a62def2..a511ecf21fcd 100644
> >> --- a/drivers/iommu/of_iommu.c
> >> +++ b/drivers/iommu/of_iommu.c
> >> @@ -48,9 +48,7 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
> >>  	struct of_phandle_args iommu_spec = { .args_count = 1 };
> >>  	int err;
> >>  
> >> -	err = of_map_id(master_np, *id, "iommu-map",
> >> -			 "iommu-map-mask", &iommu_spec.np,
> >> -			 iommu_spec.args);
> >> +	err = of_map_iommu_id(master_np, *id, &iommu_spec.np, iommu_spec.args);
> >>  	if (err)
> >>  		return err;
> >>  
> >> diff --git a/drivers/irqchip/irq-gic-its-msi-parent.c b/drivers/irqchip/irq-gic-its-msi-parent.c
> >> index d36b278ae66c..b63343a227a9 100644
> >> --- a/drivers/irqchip/irq-gic-its-msi-parent.c
> >> +++ b/drivers/irqchip/irq-gic-its-msi-parent.c
> >> @@ -180,7 +180,7 @@ static int of_pmsi_get_msi_info(struct irq_domain *domain, struct device *dev, u
> >>  
> >>  	struct device_node *msi_ctrl __free(device_node) = NULL;
> >>  
> >> -	return of_map_id(dev->of_node, dev->id, "msi-map", "msi-map-mask", &msi_ctrl, dev_id);
> >> +	return of_map_msi_id(dev->of_node, dev->id, &msi_ctrl, dev_id);
> >>  }
> >>  
> >>  static int its_pmsi_prepare(struct irq_domain *domain, struct device *dev,
> >> diff --git a/drivers/of/irq.c b/drivers/of/irq.c
> >> index 6367c67732d2..e37c1b3f8736 100644
> >> --- a/drivers/of/irq.c
> >> +++ b/drivers/of/irq.c
> >> @@ -817,8 +817,7 @@ u32 of_msi_xlate(struct device *dev, struct device_node **msi_np, u32 id_in)
> >>  	 * "msi-map" or an "msi-parent" property.
> >>  	 */
> >>  	for (parent_dev = dev; parent_dev; parent_dev = parent_dev->parent) {
> >> -		if (!of_map_id(parent_dev->of_node, id_in, "msi-map",
> >> -				"msi-map-mask", msi_np, &id_out))
> >> +		if (!of_map_msi_id(parent_dev->of_node, id_in, msi_np, &id_out))
> >>  			break;
> >>  		if (!of_check_msi_parent(parent_dev->of_node, msi_np))
> >>  			break;
> >> diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
> >> index a5b8d0b71677..bff8289f804a 100644
> >> --- a/drivers/pci/controller/dwc/pci-imx6.c
> >> +++ b/drivers/pci/controller/dwc/pci-imx6.c
> >> @@ -1144,8 +1144,7 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
> >>  	u32 sid = 0;
> >>  
> >>  	target = NULL;
> >> -	err_i = of_map_id(dev->of_node, rid, "iommu-map", "iommu-map-mask",
> >> -			  &target, &sid_i);
> >> +	err_i = of_map_iommu_id(dev->of_node, rid, &target, &sid_i);
> >>  	if (target) {
> >>  		of_node_put(target);
> >>  	} else {
> >> @@ -1158,8 +1157,7 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
> >>  	}
> >>  
> >>  	target = NULL;
> >> -	err_m = of_map_id(dev->of_node, rid, "msi-map", "msi-map-mask",
> >> -			  &target, &sid_m);
> >> +	err_m = of_map_msi_id(dev->of_node, rid, &target, &sid_m);
> >>  
> >>  	/*
> >>  	 *   err_m      target
> >> diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
> >> index 2d92fc79f6dd..a0937b7b3c4d 100644
> >> --- a/drivers/pci/controller/pcie-apple.c
> >> +++ b/drivers/pci/controller/pcie-apple.c
> >> @@ -764,8 +764,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
> >>  	dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
> >>  		pci_name(pdev->bus->self), port->idx);
> >>  
> >> -	err = of_map_id(port->pcie->dev->of_node, rid, "iommu-map",
> >> -			"iommu-map-mask", NULL, &sid);
> >> +	err = of_map_iommu_id(port->pcie->dev->of_node, rid, NULL, &sid);
> >>  	if (err)
> >>  		return err;
> >>  
> >> diff --git a/drivers/xen/grant-dma-ops.c b/drivers/xen/grant-dma-ops.c
> >> index c2603e700178..1b7696b2d762 100644
> >> --- a/drivers/xen/grant-dma-ops.c
> >> +++ b/drivers/xen/grant-dma-ops.c
> >> @@ -325,8 +325,7 @@ static int xen_dt_grant_init_backend_domid(struct device *dev,
> >>  		struct pci_dev *pdev = to_pci_dev(dev);
> >>  		u32 rid = PCI_DEVID(pdev->bus->number, pdev->devfn);
> >>  
> >> -		if (of_map_id(np, rid, "iommu-map", "iommu-map-mask", &iommu_spec.np,
> >> -				iommu_spec.args)) {
> >> +		if (of_map_iommu_id(np, rid, &iommu_spec.np, iommu_spec.args)) {
> >>  			dev_dbg(dev, "Cannot translate ID\n");
> >>  			return -ESRCH;
> >>  		}
> >> diff --git a/include/linux/of.h b/include/linux/of.h
> >> index be6ec4916adf..824649867810 100644
> >> --- a/include/linux/of.h
> >> +++ b/include/linux/of.h
> >> @@ -1457,6 +1457,20 @@ static inline int of_property_read_s32(const struct device_node *np,
> >>  	return of_property_read_u32(np, propname, (u32*) out_value);
> >>  }
> >>  
> >> +static inline int of_map_iommu_id(const struct device_node *np, u32 id,
> >> +				  struct device_node **target, u32 *id_out)
> >> +{
> >> +	return of_map_id(np, id, "iommu-map", "iommu-map-mask",
> >> +			 target, id_out);
> >> +}
> >> +
> >> +static inline int of_map_msi_id(const struct device_node *np, u32 id,
> >> +				struct device_node **target, u32 *id_out)
> >> +{
> >> +	return of_map_id(np, id, "msi-map", "msi-map-mask",
> >> +			 target, id_out);
> >> +}
> >> +
> > 
> > Any particular reason why this is made inline instead of out of line
> > in of/base.c? Also, some documentation would be helpful for the
> > aspiring hackers dipping into this.
> > 
> > Other than that,
> > 
> > Acked-by: Marc Zyngier <maz@kernel.org>
> > 
> > 	M.
> > 
> 
> Thanks Marc.
> 
> I made them static inline mainly because they’re just trivial wrappers
> around of_map_id(), so keeping them in include/linux/of.h avoids adding
> new global symbols/exports and keeps the callsites simple (similar to
> the existing of_property_read_*() inline wrappers).
> 
> That said, I don’t have a strong preference—if you’d rather have
> out-of-line helpers in drivers/of/base.c, I’m happy to respin accordingly.

The downside is we get N copies of the string args for N callers 
assuming the callers are in different compilation units. It's not 
performance critical either.

Rob


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 23:01:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 23:01:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247219.1546013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyHhD-0000tN-4R; Thu, 05 Mar 2026 23:01:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247219.1546013; Thu, 05 Mar 2026 23: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 1vyHhD-0000tG-0L; Thu, 05 Mar 2026 23:01:31 +0000
Received: by outflank-mailman (input) for mailman id 1247219;
 Thu, 05 Mar 2026 23: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=k4Bm=BF=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vyHhB-0000t9-Ne
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 23:01:29 +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 3d60c875-18e7-11f1-b164-2bf370ae4941;
 Fri, 06 Mar 2026 00:01:28 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BY1PR03MB7993.namprd03.prod.outlook.com (2603:10b6:a03:5b4::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18; Thu, 5 Mar
 2026 23:01:24 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9678.016; Thu, 5 Mar 2026
 23:01: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: 3d60c875-18e7-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Htp9lVvbe6xRNsKER0lw1KeL5eaVXlxsSolh+Cac9O/1DntTYwPjlMZ2uVFxS+l6IDFgK6wrR/DFODiSYKOOnLuHRqLHrcbpi9EG69qMCeSGzCfBN3oGJFSc/WnwZW5q6U0QZQRKYw3yLbXuB8Dqb2bPMhTi+BXCBOqMobyExvrcilFzbwCVQd9fBzaqS8zHjo5jDlJ0ks2h3f7XoL7fZKAvs1S+MIAE3H+fJCjDubgmpRpXHavODe0T+fOVEXHwhLdW/N0yKemK8L/wWI7f5zNpj5ANBp5KXV5agTFxqsr+/TDG2XzKeckckmChUOjVp3ZeC5XOKvBtaOz7S29vww==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tdB1xUBS8xTu12mJFI7HIru34MteWtqhpTTfhnCbXiE=;
 b=hbpQJliuMFeKqG0tho+mLbtFpPa6gcXMPlozG12XEnBP4yhfr3fDIDELVmV2puMxL0sfOWsy7fa835IKxyzupStZUag1RhBtxmzJ1hHimVnRFzQAz9Dusa6xB3LLoyi3O+mFYXQy2GZxlFUxbUm0oCQcfjQwfkEfVWjtLMsvZ+9zBy6bXEpyP/tNJcOH528TqSLdR9NWikVrowup/AxXM5Ak+QTjd02kQ8uUCFt5hRAaJHKIyQwxamfdJuy5L5GH+jBIv5qHQpJ2WxKBq6ejMuVEKL2CMCFLMWEUA0gi5aquQMHKO3CaH/EImG7B1Q3C6wK+obaHeUKA2y58EMXG/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=tdB1xUBS8xTu12mJFI7HIru34MteWtqhpTTfhnCbXiE=;
 b=IRdQTwzVNW+B1tX/xcZALeHdP/HMZt8bGbj4joQNw+9B6QRniWPPQkdrSfigP13uvgnyZGObFMmtCsitYbC1f5TEYLL+ait/22VlAFaW1qP8ZyJAqoR6MQ9Ddjb+JU0g6/kmFmrV6s1pCMLyFcSRkLONq2l4g5zQDl2eLjPCwyA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <4d81d177-f1ce-49e6-8a40-fd16c0b4e0b9@citrix.com>
Date: Thu, 5 Mar 2026 23:01:20 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [RFC PATCH] arm/gic: Optimize lr_mask type based on GIC version
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
 xen-devel@lists.xenproject.org
References: <20260305195745.2595017-1-ayan.kumar.halder@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260305195745.2595017-1-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0503.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:13b::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_|BY1PR03MB7993:EE_
X-MS-Office365-Filtering-Correlation-Id: 0ce1defe-1ca3-4e3f-ba95-08de7b0b1f95
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:
	JK2bv818fgjsnkDwYNOELaC3TxvoMgzD7QnEhKgvbJ1Yj8DHbLP21kdtJ0hgpibwwiSaXB0HWa8D3kGQdNpelIfi7UuCeZS4KQ1aRMSVJz27mXn9KXHmKKbt+5GpWAbjh4vQ5fqgWWTKn8O81yTqGbYlipc0ApsshFAmKa2xYGAGKl/dOyfODPJSQSqAjycZQDXv9M34s7L4ETwOVOb1aRkzPtRHeebgXjc5G0K7Eu0Zu2PTGVNM5fOBBDwVoOcF4q27aDtoZ3mhYdx8G3J2S0GYrIVERkY35MWkOM3+Z8Y/3XwR2asVEqGmiV+JGUSMJzQYYNNPTE0B+9Ni8df+1OvB7uD1WG4hhNC4muZZ9v322G/1hHG5M/WvF5xc3/q0Kjr2KWkPsruggJawB/Mvv2h6/Tvkhtk7wseFstug9IOgGRcReeTYFg0UjWHKWb1hqN1F7Lx9WlM67XCzVcDqRjlHCiDNiCxzZXxIzY41eVtJ1bjKTMSztm+xJsJ+PvKzQr20jDArpj6urutfjqjNfpkm8iRA+qRXXMf0HYcdOhLJPQI3YUA+5zKCYzWnQk/YkGn9XUPZHFHm89PRcVHtAl/5di6zhmYZEeIqj27w6inya5QrlfxZpO9D8TkfYhh2+ttxR5N6PeUQU02d1CkwSShec6dB4LnvK+LmAlWSMx2qsTg/gx+fcmxUCnwaxE9oaKqb/GM1mFGel3/M1Tgtb5p0RSB30Q0y+mN+kl8lqw4=
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?Q3NQSjhNeWg1S296Q3VEZ2FTVitkZFQ4cTdiK0NPVVZGSHp3N293c0xuSjI1?=
 =?utf-8?B?NldMVW5OVi8ya0hLMVo5eWNNSlhYb2o3Q2srY25pMVBCSXZ2UlZWeVp6MlEr?=
 =?utf-8?B?d1o0TGt6TlJ0ZnE2Y2RFSlZRVjBEZDJDTjJ2dXAvbUZPeHJMOC9MaDZlSzFS?=
 =?utf-8?B?R1NUcXRiYklOZVBOUG5VM0dqNjhXWnVSa01rTjRMaEJMYlhheHcxTHQ2UWY3?=
 =?utf-8?B?UlBCSzVhU291LzJVNFlsVkdwendkRCtCeHJwa0VyR0NlZlZGcHVGY29wZUVN?=
 =?utf-8?B?SDhMMG5FQ3Y0d2JxOFhJRHB4SXpZbXErK0JTRTBqZHovYmF1T081UjRsWnRl?=
 =?utf-8?B?ZEI3VnpXd3JqcHc2Zjh3V2NmMFVYVkovSXBYejFsVzVSYW5iRWU3eUhhcG93?=
 =?utf-8?B?TWFvbFBGVmtMcEVmYUZmSkVKQ2hHOGFIU0gzOHpVV1J2VDh5SXE2WXZCajdF?=
 =?utf-8?B?Z3RBY1poTGdzTTR1WmdLbGo4VEdBN2pJbmgzamJxYjJaSDcxRTVLZy9OZWF5?=
 =?utf-8?B?cXBlWDRXdHR2VStOaGhEM2tMTnRGMnl0bGN0SDh5dm5TdXNRakc4djJacjdu?=
 =?utf-8?B?dUpIN3JBajBBUDBEdmluWG1IUEUyNm4ySGFjMFcwNENHUm1TV0pOZFBNVWo3?=
 =?utf-8?B?eXlSUSsxOGpsLzdOUWZiejg5Z1pZVFRVMFpIa0JDVXdUUTlTY1h5NmluMU9S?=
 =?utf-8?B?NXNBem54USt1RmpkS3M5SFcwU1l4S3M1aytaRGZEU3lFUlZneEtFYTRYaFlS?=
 =?utf-8?B?SWhzd003a0ZDNTFMOW9aakpBQlBxOTRGVUFhOXJVWkRMK3F3NnJ6UXJPYWhm?=
 =?utf-8?B?ZkR4V0x0ZFdZVktwdXlvd1p6SU9vaXcrMjd2RE0wSTM0TlF5TWRVMFdLZmlO?=
 =?utf-8?B?V0NCNi9tOWt6cG5oL3dVUk9WOTBMQVR0OHRhbTNUTFVlK0czYmdEZ3FGSWdY?=
 =?utf-8?B?NDZhcEd4N1hyWlhhUnJQV1NMalV2d3U3ZE8zc294SlMzM0FRRG5NL0NkNkdo?=
 =?utf-8?B?WFZNQjdId0VpQVBmUDFLN0VpWDhXSkQ5c0tTYkRJRno5cyswdDRiUnVZWGxE?=
 =?utf-8?B?ajViQkhYYTFmVjVEazFHZ3RUL3BidWhMSjdmZStjQ1M3RlBQQ2JwS2tzaEdD?=
 =?utf-8?B?clQ1MzFWRmZpaUxzVzk0VDlmeDRsRWpMY3RRajNnNDZiMTFsRUZTeitmVUlm?=
 =?utf-8?B?WGxDdXkrUFNwRkJZS3N4amFiOFJ4ckNzU1N6b1hISS9NK2w3VEsrSkZwZ3Uv?=
 =?utf-8?B?QVlLMjhmYXpFUmJZNGNoTHQ2bUJmM3pwMzVEWG5UTDB0VnQ5aXQ1WVNGTzA0?=
 =?utf-8?B?YU1qQ1IzK1F5RUNsaVhXcEtJM2UzRVlqZlFTOWxYSTRzMmFlYldaZ2JmbFNR?=
 =?utf-8?B?RnRjY3c2dGxsZUl6b3Y4K2FDU3lxOFEwWFl5SG5oc0N2VklSVFRua2lDaURL?=
 =?utf-8?B?VlVac012QjdIOWkrelFWQmZwUGtlQWpCajFZT1padnd2ajhYalNxMkVjRWxh?=
 =?utf-8?B?VlBCSmhEUkpodTU4WUFEOHRORnZ0RkJGT29zS04rQU4rZ1BiMzRRV0YwMDhY?=
 =?utf-8?B?Mk9oeW4va3AwMXRkRVkwS2pPMzFST2FKZlpEWjYwRkVmSnJ4akVpa0tZWDVp?=
 =?utf-8?B?S0xObGkvdlpDVGlYWC9kVGNYSFl6TThqRGh0SHM0MGxIUlY0aE81QUttUmV5?=
 =?utf-8?B?aVU5R2Y2RkJGQys4eFQwSUoxajlnMkg0WmV4TUtpSGtiTW1ITUZtRUxEU21J?=
 =?utf-8?B?WGNZWXp2TEZaMzUxd1JvT2JWUGdWRzk1ckNnWmJ4Q3NLNEE3ek9NTThwdTF2?=
 =?utf-8?B?c1FnK3VHNVBMbWdiL2NIbkpwdklrUXpYcSsyYTV6bUYzSFJoQXhWTytGQ2Jq?=
 =?utf-8?B?T3g5S1BwekIydldVbGhFNkRlVk41MnU2TnpEWWxhNjU3YjRFUWhnZlI0TzB1?=
 =?utf-8?B?MThFU0YwampOakpCVFlDQzU4NDNWTUFHMjRIUk5LTzRSUmtVOG40aXIrR3Bj?=
 =?utf-8?B?b0FITU1SUitUUmtRNUgwUXVqZTRMaUtpRmR2RDZCTjVEUUVhTHlJa3VObE5r?=
 =?utf-8?B?bnU3N1NQZHVSVUVES1MxQTBlVDBZMCt1cEkvV1J1S1dNSHYvZjlsUmFtcHJa?=
 =?utf-8?B?UndtTVA1b0Q3TDNVUzQ1SExBbjlXZGFxUGw3U0dBRlNEaHh0bXBabVRHUW1Y?=
 =?utf-8?B?aStuODJqdTlxR2RYRGRkRjlaNXk1R0dFSkgrbkRhTlBqUTFIcDhqaGsxWE9H?=
 =?utf-8?B?TVZlaFdIZnh2ZzNtbmdlZEVyTnF1bXJZTVdHaWVhMkpBeng5NVJaTnM2QkIr?=
 =?utf-8?B?T0ZtN3kzV3lHZTliemIvN0tJeEN3RGs1T3pmOFQxcGVuS0lxenRwZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0ce1defe-1ca3-4e3f-ba95-08de7b0b1f95
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Mar 2026 23:01:23.8690
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: T+gayrsQIH+ZBD+ojrZh+9SUV9f3xDYMHHrS9g2q5t8DYk9T1toAiErm8oARg5mLzY6DNVZ4o8FObnUNjevRIrWRw3DiaMq4m10fmwsbF4s=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB7993

On 05/03/2026 7:57 pm, Ayan Kumar Halder wrote:
> The lr_mask bitmap tracks which List Registers (LRs) are in use for
> virtual interrupt injection. Previously, lr_mask always used uint64_t
> (8 bytes) to support the maximum number of LRs across both GIC versions.
>
> However, GICv2 and GICv3 have different hardware limits:
> - GICv3: ICH_VTR_EL2[3:0] encodes LR count -> max 16 LRs (4 bits)
> - GICv2: GICH_VTR[5:0] encodes LR count -> max 64 LRs (6 bits)
>
> This patch introduces conditional compilation to optimize lr_mask size:
> - CONFIG_GICV3=y: Use uint16_t (2 bytes) - sufficient for 16 LRs
> - CONFIG_GICV3=n: Use uint64_t (8 bytes) - required for 64 LRs
>
> With this, parameter 'lr' in gicv3_ich_read_lr(), gicv3_ich_write_lr()
> cannot have a value > 15. Thus, it should not possible to hit the
> BUG() in the default case.
>
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>

What does this actually get you?

Because it doesn't actually eliminate the BUG()s you reference.

If you really want to go ahead with this patch, then make a  lr_mask_t
or the right type and don't double-code everything.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 23:12:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 23:12:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247238.1546022 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyHrl-0002cP-5m; Thu, 05 Mar 2026 23:12:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247238.1546022; Thu, 05 Mar 2026 23:12: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 1vyHrl-0002cI-2o; Thu, 05 Mar 2026 23:12:25 +0000
Received: by outflank-mailman (input) for mailman id 1247238;
 Thu, 05 Mar 2026 23:12: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=k4Bm=BF=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vyHrj-0002cC-SD
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 23:12:23 +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 c0e089a6-18e8-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Mar 2026 00:12:18 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM4PR03MB6190.namprd03.prod.outlook.com (2603:10b6:5:399::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.17; Thu, 5 Mar
 2026 23:12:14 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9678.016; Thu, 5 Mar 2026
 23:12:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c0e089a6-18e8-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Jz8aPoOD9fw1Xwk4j0GLg8YyM2EcL/2Dz9F04eHcDA4rkT7hUz4a0FuBpt1VsqAaTDP2+UzEjBnJUTtKcS7jmDcoNw22RvpEmvxi5PNeH6XFVKFfRcsUnIkTulal0RGFCEMMvK9nfCVXyKJzZt+t4m6vpkqZAEjAVvYC8+ySDmJ6/y7t5iZ+vZa3oXbuuMj4FAQgwIW1IUNhsQTvsHfbHqXPzqUPmjt9zTZQBjHLSmO4tdC0JsyfPvuZblf0BbKEfe7PJW3UvRHrGKVq9n/Igb2RFkAzx5UOzauRlIcq9zc6T3V6AGjm1VTuRw8QBE9GVwd07iRHU2kFaJWtJVWQjw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=G5pjx4bf+wJbVOTCBWJI7I9V55TuDqo6aQNSqfapI5E=;
 b=qBluRLUiqQRskuHo4pF/ev73Na+mSNpblZcujBwOoT9IHdMI6nYnTLQ5kQj7hRWFlCEsV8Ep0JTnx8o6il6mxssR0MwM408voywOgJjprvPrbKXBb1pYuj+iaFEtSxX3q7o0k3kN+fPfL8BiQApfU9VRt/a0XUgSic1/165TOsSZtwTtfwpAk9G63Lirov/CqiVuBhNoMLE4HU9p8sVXWBPuiE/mlD1zl93Fr+RTqWSHJI5olxJUkEbtjDm7lSoblLOG3471KVlGAA5/QhXhxWgvpIhPQOQdPGSjshIa40ljCXOKN/RsEe1OKaBoC/erHyRcYGw+1N9x1DpIiW0HRw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=G5pjx4bf+wJbVOTCBWJI7I9V55TuDqo6aQNSqfapI5E=;
 b=JwQrZOT6F1CkgzrEPNIUHHs6gmqNqtiODw9e6CocLNYUK/3HF0xsKCXdZjKpxdhWLacBBDke4dwmeJFNvHeGbZin+QBUgC6Bu9Nd9WMeeAg0bqGcbw3WMTDJit7HWpiYzPVxDz/YYv8TT0CoDYQzQ4Zi+ycbjSbvyDpjTzzj0Cw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <0644e951-2200-4b24-8e01-ba178aab8136@citrix.com>
Date: Thu, 5 Mar 2026 23:12:10 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [RFC PATCH] arm/gic: Optimize lr_mask type based on GIC version
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
 xen-devel@lists.xenproject.org
References: <20260305195745.2595017-1-ayan.kumar.halder@amd.com>
 <4d81d177-f1ce-49e6-8a40-fd16c0b4e0b9@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <4d81d177-f1ce-49e6-8a40-fd16c0b4e0b9@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0109.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:192::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_|DM4PR03MB6190:EE_
X-MS-Office365-Filtering-Correlation-Id: 3953ffde-2624-4b33-8a53-08de7b0ca33c
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:
	51O+X3x6KjgtfDZEQ4cudvlMdazSy7BgoN6stQnI2WvtS6f0i216VN+/LMhW5UzMw8Ym6IrotQDJG7gObveFg+rCjgnr1fe6dB7u69yoSWyO2f7NV+ijLca/MVpBl4Vx/6ovRHZe5LMcbCLwWKeLixRNSJdFwqQSYF0eMnsSfFVYY5ovbgkRJ7/eNcbWe5oMjPC924ui9hunaBIeItn3eSLe8HcJj+ISA3PbVL7fPy0McrogHhjedfiRNpZoU2lRS1FMbl30wO1kfY6jY+wOfNapJ2rTozwEHHWyK2ORndyqd6J5XGH8wLbbi1ow+zUWr00yK+RwdcF+RDK0Xo/sQEHOoxxge6ZWeFlQvP+p/995fYWUbdzuStZim+D7f5sjX9ozyR2m7iaZdTC62kzsFRnX82hn1D/Rml44GnZpI1HU4UAsISNZp9Ai/HFIPnxPha8frxkmacF12p97xofLCDd6Uuosaop5VuKb3m5bkAX7qPQfkQZeSILCu+uxuzc6aoa5nsiTulzoazDmS/sJQkESSO/4hTB//0T/PBcZXZ8PrJWAbSsO2pU+XaNogaPwZEXSL+fzF7GNQjmqqN1SMQAKc48PTYPGFUerb/ecSWfCN0beEhB+APLWOQywsK0oduPqgve62xylGMs4DXXNP6pkpMUhNhfDt8Ick8bM34Gc8keazNi1PE8ZRHmhMVjgIyJCDi/AcXAcixbEacLBsiWBUzAWOnzTcbAG2N6mxqs=
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?aVJndlRPRTJCSzlDYStWVEJ0Y1krN0hITE0rYk9Sd3NUNG5uYXFFOXpaRUlG?=
 =?utf-8?B?NnMxU0VGL1FKcWpuR2pDUUlVQUYwMkd5a0N3V1J5MitFTHYyQ1RlS0poTWQx?=
 =?utf-8?B?TjFrU1FudUxqU1YwTWxCWTlBK1prRWx0MzNIcTBoZFp3aFRqbXYwYUlXQW9l?=
 =?utf-8?B?SGZGUGd2ODFnVG4zTUFoZnVrRVkyZXRrZVRQL3V3QlVib2Y3M043ZHBHcjJB?=
 =?utf-8?B?UE9PbmE0dXBQdWhXNkU4UVNWSE5ySHN5dGtxWDVmN0w4NGxVUTFWN3NlMjR6?=
 =?utf-8?B?eTVtOG9RZ0VpSjJ6dXZ1aURKc0dPQ01DRkdtMS9hUVhRUzRvelJud3NRVk56?=
 =?utf-8?B?MndrUlNMRmM5Zisyd3p6WVhhM01wVkh5VHZrNlhUYmxzWmFpVzdRZ0FxQk1L?=
 =?utf-8?B?Kzg5SWIwNWMyMXVaYUY2NXJjcmtVL25VY1g4N1Z0QTNnOGhHL1E5NlduVWQ2?=
 =?utf-8?B?WWFJUmx4dFZjcU1XN2NjZ1ZjK3FHTkovUGxYb2NFSkplMUVZQUVZbkpPT20v?=
 =?utf-8?B?S2kycW9sL0FRSlRvNG1hT2x2VzdiSGx6N3lDVnhvQXR1MGR3dDhhbWFWOUdQ?=
 =?utf-8?B?aTdTV0FraEMrQS83cnpESnFXdkYxR1JKdVZsZHhxUEd5V0NrOWM4WTM4em8r?=
 =?utf-8?B?WC9MNEl2OFozVTYwdkFSRDJ4cnc5UW9yUUloaFU5MnEvVUZlWHM0NTBDd2ZH?=
 =?utf-8?B?UnRQc1k3ZUZHYm55aE9DTVNXbGNVdElJNW13OG9meGpURk8veERQK09ZSGF4?=
 =?utf-8?B?ZktJdSttR3hFcHAyZzYzYVZTSzRsZTgyY0N6WERoVnVzNHc5SWd3MWtXVHEr?=
 =?utf-8?B?ay9YRS9SdThJZE9nMytFTjlxOCt6K1lVQTV3L2JWY1hqSEdIcWp0MHpZVmZi?=
 =?utf-8?B?T3g1bUlZS0RPSHB2SnRoSllYek82UzNkWm1HeUlzZGZjT2U0NHNmdmRrZ29v?=
 =?utf-8?B?Q0dtcDdnOEUwOVlIb2w5Wmh0VXNpc20zOUNDQ01aTzVLMjA5RGh1NHI0L05s?=
 =?utf-8?B?bnZFRGd2R3ZtbVpTVXJWdTVlMWIzemVlQXJkM0xvT3R0Mldab2dyM0xPTXlX?=
 =?utf-8?B?M0VoMkxYanp5cGthdlU2dUJub2d4Y1NhWkRXNXVQSFJLOVNtRGhTcVVzYlJO?=
 =?utf-8?B?ZFdJWEMxOHNMeVJMK0JlWm9nemV6VnRjdlhnVElJUFNkaElXNEdnTHZRUzUr?=
 =?utf-8?B?R1RrSmVXdEtlSWFtbmhWY2FETjlSYUY3NDN2ZllhMHdZbDFPNGEwRU5QYXlC?=
 =?utf-8?B?aDBYSzd2NG1ObHV1ODlPc0Izd2puUDVCelJ0WmFzUm5ieVRNVzRiSm5HOXZp?=
 =?utf-8?B?WjJyYnRiWFB3TG5aeEFuQloySkhvNEFFVHloUlpiT2JrWlhEcFE3aXJaeEVC?=
 =?utf-8?B?YkdEQkpoWk84UVEzNFNiSE52UXZnTzFFOCtQOWdSN0NJeDVtWGpCZG9saEJJ?=
 =?utf-8?B?OGlEZUpKcUtHbjVweWRQN2dkTTFmOXQ4VmVHZnVGeDRIMjl3VFllNy90Qko0?=
 =?utf-8?B?UEZiZVpsTGZHYWx1c0xINGZaT0JKMnFlOUJMSjF5WGJqa3duS3N2K1liSXVF?=
 =?utf-8?B?b2xOb09xSS96bExWTS92ZVZLRGwwSng4T3pYSnhmbVNCcUxEM2J0aGxpYk4y?=
 =?utf-8?B?cmNpeWc5VmNyRDc5SHpxZ21sRnhRemZtMXAwRkVaUldzNVZLR0o1b0NyUE1u?=
 =?utf-8?B?eTduT0x4L3VIajRnYTc4YlVQYmJOMVYzeU9CdW1DV3RQSmlDUFhuRVdwVTds?=
 =?utf-8?B?QVB0U0JrRHNqbWpmRjM2VUxOYTVlbkdwNENXKzFEQjZlVkZDRmVqTnh6N3Z2?=
 =?utf-8?B?Z01ZSWRmcDdnU0NlR2M3TnhnVFdYR0R2SmJXam1LMzMwVjUxZVFVUDRFQzVx?=
 =?utf-8?B?WFRFNUtOWURVRWd4Z05FaTRVTkVuT2VtMkxtdFBma2VER3hMVGVpd3dGaURE?=
 =?utf-8?B?UU9ieXJwcTBhQUM2dlh1UTViMjJaanhLSWtaOXNHOE8xLzhhZW9EVUFtbWpW?=
 =?utf-8?B?dFNaNFg2R2N6UWNnMVdqZTErZ3E5bVkyZy9Ldng3SU5vYmxsYkJPUEtsNUYy?=
 =?utf-8?B?VUtOT0FTbXhld2t5OEx4ODBwM0F4ckpVWkVYdFZPdkp4UzlJL0tDT2Q2VkZV?=
 =?utf-8?B?SmNjTkVlUjhlY05jZjdrdkdxQ3JEWXN1TkFvQjJMaWdJMWlEOUgyT2YramJ5?=
 =?utf-8?B?NU5IV2x0Y2NSNnVDRzgyQUxMbDBsN0VzUU91UUVZbnJRNit0K1gvdy9PTGxa?=
 =?utf-8?B?eDgySXBEYlhWaTF5M1ZvUkdrRmZEdGZCTlZBUTBYUUpRNmJuS0Jmc2FRN2ZR?=
 =?utf-8?B?MWJLM3VLWVpkaTlCWFE3N0pUTzhhRk1raG5GM2VUejUxd0k3WWpBZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3953ffde-2624-4b33-8a53-08de7b0ca33c
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Mar 2026 23:12:14.2316
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: mnCejbTdqU2SsGNhfkOvgV6jqPWgFO76Lbn7dzqwdCQttWQlFUQ3sLjsq/tW7aogdq2DX/9LnRsWxpbybaLBGJ/PKRf1zYaIrnQWRUGcNBE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6190

On 05/03/2026 11:01 pm, Andrew Cooper wrote:
> On 05/03/2026 7:57 pm, Ayan Kumar Halder wrote:
>> The lr_mask bitmap tracks which List Registers (LRs) are in use for
>> virtual interrupt injection. Previously, lr_mask always used uint64_t
>> (8 bytes) to support the maximum number of LRs across both GIC versions.
>>
>> However, GICv2 and GICv3 have different hardware limits:
>> - GICv3: ICH_VTR_EL2[3:0] encodes LR count -> max 16 LRs (4 bits)
>> - GICv2: GICH_VTR[5:0] encodes LR count -> max 64 LRs (6 bits)
>>
>> This patch introduces conditional compilation to optimize lr_mask size:
>> - CONFIG_GICV3=y: Use uint16_t (2 bytes) - sufficient for 16 LRs
>> - CONFIG_GICV3=n: Use uint64_t (8 bytes) - required for 64 LRs
>>
>> With this, parameter 'lr' in gicv3_ich_read_lr(), gicv3_ich_write_lr()
>> cannot have a value > 15. Thus, it should not possible to hit the
>> BUG() in the default case.
>>
>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> What does this actually get you?
>
> Because it doesn't actually eliminate the BUG()s you reference.
>
> If you really want to go ahead with this patch, then make a  lr_mask_t
> or the right type and don't double-code everything.

Also, this creates an Out-of-Bounds read in vgic_sync_from_lrs() amongst
others.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Mar 05 23:28:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Mar 2026 23:28:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247247.1546033 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyI7f-0004Nn-Gi; Thu, 05 Mar 2026 23:28:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247247.1546033; Thu, 05 Mar 2026 23: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 1vyI7f-0004Ng-Cf; Thu, 05 Mar 2026 23:28:51 +0000
Received: by outflank-mailman (input) for mailman id 1247247;
 Thu, 05 Mar 2026 23: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=v+y1=BF=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vyI7e-0004Na-MH
 for xen-devel@lists.xenproject.org; Thu, 05 Mar 2026 23:28:50 +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 102f392a-18eb-11f1-b164-2bf370ae4941;
 Fri, 06 Mar 2026 00:28:49 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-48336a6e932so54311685e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 15:28:49 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485268859f1sm743165e9.2.2026.03.05.15.28.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 05 Mar 2026 15: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: 102f392a-18eb-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1772753328; x=1773358128; 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=4vF9oHZvcy9raonXFUwX0+3Jx8cqQFifTNwFvrPALvY=;
        b=rnYxs1W+0C0cJAv7EsqchVOGrK2ziULp0JeZwBMXUqu67tTfSeXtwMKWOuYF12dHCy
         Of4T4+ESXcWR+TX1KvvsVOnbAGmKWPR95v9iRArydxUCU98ik0qVr+8/GMwjUDhD6adH
         qlOyQfePib5eDoHwN/lD5d8pGt/4cq5N9xck8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772753328; x=1773358128;
        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=4vF9oHZvcy9raonXFUwX0+3Jx8cqQFifTNwFvrPALvY=;
        b=fx55aDh/dueL76CzoIIp/Uhmx56qh3yc67l9AALL6xySg1V4R72F1QCgoP1G1vyx3H
         CTz2fw6uW87RuROcy65kk+1QMwCq4w+0KKctHL5N9uOjBehCFbzewqXWqf9H8Q3C4GH8
         BjuNv15F3Q62/PuzTnbWgxo9pc0GKSwzg/YNiqI3lXDH6jVNP82BfTNmymkMu2JGwJOQ
         /ie6/b1xDGuaKfbx0DA/OmxEq61YOz4gq5njQ6TSPIMWfXRhMYNcuSftJlVVvJ+0XPwU
         HfPvJXJbXXBPQV4dqMj/TLDJSs8Cj2dk588nAUN/7Ouo84+iHRGwFjYP5ZuyNHTQWF+l
         pAKQ==
X-Gm-Message-State: AOJu0YxEhkhdLicd8TD3+rge2vBwfmGLlDIbOkU+1sGa8ou8eRt4x48e
	5rt18TjJnJhsAXQDH1lS88aU7wx0aMEakAqnjT8vr+yF7/owBtxxu5Os/fGjEImC6NV/ObKv5WD
	5sNaD
X-Gm-Gg: ATEYQzwGl/LO9TlhCO/lH08jV/hdP7n5VFVWXmM0yH01NTrrwm/xhr5FzsGWJ4zCgDL
	yEOJuZf54+SwrxD5RY7HDwcLdxAO2hERQRrGt0elrgSKyFaQrl8aLOhN99Ky9KecDHcyo2e7TvU
	TjZiUnL8Bxlh/fl8PIas6nJMKm9HbUxe4EMOiUIRrArCsmrHgRMjITPjGHD8ELbhhMBgYNdb9km
	+mTtYykFq99iVlAQMHiNR4aMXBGEkGNRbAPm7zV28kTQSOZk8blRMWZz1Vl9m2vB5Y9tggw3GcO
	r9F1SLcBLzlDak+eOPC0iJc9d6PYEgerFdphWgLj8OAJezgMCdpMXp4GpvceH7tSwnCElvxTma9
	gmwjZkEJ7dNQuS+Vi+ZjqdbR5eKY+XcbUE4trUMYYBMK8IWVQS6MkMMuynJnBlAo6OCVcBHIIsW
	38awS84V0oAjNQxkUjQYDbGNdca4WS7AyzzbWxwaYxKzmWXxNVMP+fDPu11mrHjmd7PrXjwY4=
X-Received: by 2002:a05:600c:3b07:b0:483:43da:6c87 with SMTP id 5b1f17b1804b1-4852697965dmr80705e9.33.1772753328227;
        Thu, 05 Mar 2026 15:28:48 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Subject: [PATCH] ARM/vgic: Use for_each_set_bit() in vgic_sync_from_lrs()
Date: Thu,  5 Mar 2026 23:28:45 +0000
Message-Id: <20260305232845.62024-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

lr_mask doesn't have bits set beyond the hardware limit, with the upper bits
remaining zero.  Therefore, for_each_set_bit() is a better option.

For ARM64, bloat-o-meter reports:

  Function                                     old     new   delta
  vgic_sync_from_lrs                           208     168     -40

but this doesn't highlight that it also removes a call to find_next_bit() from
each loop iteration.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Ayan Kumar Halder <ayan.kumar.halder@amd.com>

RFC.  This form also doesn't suffer an OoB read when lr_mask changes type.
---
 xen/arch/arm/gic-vgic.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/xen/arch/arm/gic-vgic.c b/xen/arch/arm/gic-vgic.c
index ea48c5375a91..fae80e6cd293 100644
--- a/xen/arch/arm/gic-vgic.c
+++ b/xen/arch/arm/gic-vgic.c
@@ -241,9 +241,7 @@ static void gic_update_one_lr(struct vcpu *v, int i)
 
 void vgic_sync_from_lrs(struct vcpu *v)
 {
-    int i = 0;
     unsigned long flags;
-    unsigned int nr_lrs = gic_get_nr_lrs();
 
     /* The idle domain has no LRs to be cleared. Since gic_restore_state
      * doesn't write any LR registers for the idle domain they could be
@@ -255,11 +253,8 @@ void vgic_sync_from_lrs(struct vcpu *v)
 
     spin_lock_irqsave(&v->arch.vgic.lock, flags);
 
-    while ((i = find_next_bit((const unsigned long *) &this_cpu(lr_mask),
-                              nr_lrs, i)) < nr_lrs ) {
+    for_each_set_bit ( i, this_cpu(lr_mask) )
         gic_update_one_lr(v, i);
-        i++;
-    }
 
     spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
 }

base-commit: bdd49cc2f61510797a47ad81486be653633ab3ee
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 01:53:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 01:53:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247305.1546042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyKNp-0004q6-8s; Fri, 06 Mar 2026 01:53:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247305.1546042; Fri, 06 Mar 2026 01:53:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyKNp-0004py-4K; Fri, 06 Mar 2026 01:53:41 +0000
Received: by outflank-mailman (input) for mailman id 1247305;
 Fri, 06 Mar 2026 01:53: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=FCob=BG=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vyKNo-0004ps-2n
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 01:53:40 +0000
Received: from fout-a4-smtp.messagingengine.com
 (fout-a4-smtp.messagingengine.com [103.168.172.147])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4a275681-18ff-11f1-b164-2bf370ae4941;
 Fri, 06 Mar 2026 02:53:37 +0100 (CET)
Received: from phl-compute-07.internal (phl-compute-07.internal [10.202.2.47])
 by mailfout.phl.internal (Postfix) with ESMTP id C9BDAEC053E;
 Thu,  5 Mar 2026 20:53:35 -0500 (EST)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-07.internal (MEProxy); Thu, 05 Mar 2026 20:53:35 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 5 Mar 2026 20:53:34 -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: 4a275681-18ff-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm3; t=1772762015;
	 x=1772848415; bh=6U8fQSkuzzGHsgVG0KV2VvXbd2zo1NyGpnENVNDSsbc=; b=
	JhtL3HQ22nMVwDNjR3CQvnkuSN1tkQ49+2VHFFjUJlsOxRtHWrBunnT5F9YaMufV
	D4fx5sg8eN7fzVPHW9AQwiwv1PMfwuJe47H9lZJEgxqCiCrwo27WuyIpUk/qWeDF
	ZumNeSeyPTxVicrnwGhWzkNQ2QkK/yNVQCJd2g6ji8WsMehrxZIiRSAu97wgn9tF
	MqMcP/1vd0OLJFQut0EB/9QKnaDPZgK4dWcYE1+Rq2X0DCnp35VAscyifD1mwUcg
	08VHm7AxXT+7PJ8RpHHp5yDWjlGeCzeg1RZ9psI2Mv8UUZt99oG1GDWYkpE/SVts
	YyoVC2XpAOmWRgQIqzCUtQ==
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=
	1772762015; x=1772848415; bh=6U8fQSkuzzGHsgVG0KV2VvXbd2zo1NyGpnE
	NVNDSsbc=; b=NfoWcLYKXi0VFuPamyhexjlj3Td2ngWOhPy5Y18c58OaWvRKypX
	kVRe9didpmFCLua3EgBBNy6WCTJzOir5d2DU5yTouCXf/t3krDdpltPLTrUFUgH4
	Zo8YE44mKwz7maf30bsyk4/4pVh23hVbLgOTAas0S9c0c47VW2y4PPpJQI2FPHEK
	10lEZK7CbuRC0l3201tvbvLwc8kQkjaV8Znp0+cvvGKfDeHqHfwooZhd98FijFSg
	aW7XlNvispkG8WCmtBr3sUQDeJoe6IRa6eKa1s/9WMn0vI8DYnUSCz+517xY34tt
	BJvXDAuPgR9AG1dYxmrrFZ9TVEnClX/26Hw==
X-ME-Sender: <xms:nzOqaTPsvZt_rE1bRb-hug4Mql_cPZmfIPshOfq5bd7TVUpuxUE4-w>
    <xme:nzOqaQNo5elvx2C6BZJONdvBjn0JWmngeoGh6ErJ-h7UnKUtiGifrOOJWzRiX_9u4
    lhSu_1Nip1bvRxU8t17QLE1ycwAKy6nUSZXvHt9X8ofje7RuQ>
X-ME-Received: <xmr:nzOqaUjXJxpQTgHO6fsbdKujx7RawIe6IRdSRyyQzaKmtSNA6NZPXgNH>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvieektdduucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtroertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnheptdetvdfh
    kedutedvleffgeeutdektefhtefhfffhfeetgefhieegledvtddtkedtnecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepjedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepshhouhhmhigrjhihohhtihhsrghrkhgr
    rhdvfeesghhmrghilhdrtghomhdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsth
    hsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehsrghrkhgrrhhsohhumhih
    rghjhihothhivdefsehgmhgrihhlrdgtohhmpdhrtghpthhtohepjhgsvghulhhitghhse
    hsuhhsvgdrtghomhdprhgtphhtthhopeguphhsmhhithhhsegrphgvrhhtuhhsshholhhu
    thhiohhnshdrtghomhdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtg
    homhdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhm
X-ME-Proxy: <xmx:nzOqadvHcGNxg-3w1cAqAKfxBqF52Krn7DgonNrj4XW8HEDnAGRgHQ>
    <xmx:nzOqaaSuLBolOisjhGocy4aVbC51wWqnE34F9LhJV_Y5vWpnev23sg>
    <xmx:nzOqaZ0Ta9P8V2yQMF6feax9sxPkKetYJus94038dWmtUyi0W9INDg>
    <xmx:nzOqaXvDzOYWnP6r6Yj4nTB2AJ8vYecj4TVCQWycqgAkkeUl2_SYEg>
    <xmx:nzOqafaT8QaTwHvZC6qlWPhbgmWP4r436AxjmF3Dbk23Cc65yb5ZduSQ>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 6 Mar 2026 02:53:33 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com,
	Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 2/3] x86/acpi: Remove BGRT invalidation code
Message-ID: <aaoznRwdCKzRvKlD@mail-itl>
References: <20260305191810.31033-1-soumyajyotisarkar23@gmail.com>
 <20260305191810.31033-3-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="/16QqovfCfoBuKIR"
Content-Disposition: inline
In-Reply-To: <20260305191810.31033-3-soumyajyotisarkar23@gmail.com>


--/16QqovfCfoBuKIR
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 6 Mar 2026 02:53:33 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com,
	Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 2/3] x86/acpi: Remove BGRT invalidation code

On Fri, Mar 06, 2026 at 12:48:09AM +0530, Soumyajyotii Ssarkar wrote:
> Now that BGRT images are preserved during EFI boot (via
> EfiACPIReclaimMemory allocation), the invalidation code in
> acpi_parse_bgrt() is no longer needed. The BGRT table remains
> valid throughout boot.
>=20
> This removes the code that was marking BGRT invalid when the
> image memory was detected as unavailable, which was causing
> ACPI warnings in Linux dom0.

When preserving failed for any reason, or when it was disabled (the next
patch), the entry still should be invalidated. In fact, the check here
for RAM_TYPE_CONVENTIONAL may already disable invalidation when it got
preserved?

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmqM50ACgkQ24/THMrX
1ywwKAf+K4Aypn1nnlz362E4k9FyryWFI1RwnfOBEbwvG47RUlxe1D+QawoMxTln
ZdvCvxl6c9n5dlHNhAjauGYGvohFBadcpE1imodxulmEnj3u7GjnrgJbS9E4cYQW
uOf6L7WV52/crMsfhNTfqbTRwD+zN694FvcXYWOX9599KFzJ+tmV07aIZjc5y0Ik
x0Pyo9v0FZYUfxo/LMO954LhT15+N/VO6XzIkAxFcybDG98SXwnyYTetAAwqp6f5
bG0wwae24leJPy0r1jQyUSdec4tawJ4lCokfCT94Jp7mt7Lfktq3jUAq3WRkRuXk
d8BpllFrZGpqUA0gisvSaeFCPtQ2iQ==
=gxAI
-----END PGP SIGNATURE-----

--/16QqovfCfoBuKIR--


From xen-devel-bounces@lists.xenproject.org Fri Mar 06 03:29:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 03:29:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247359.1546051 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyLsQ-0007eQ-Pv; Fri, 06 Mar 2026 03:29:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247359.1546051; Fri, 06 Mar 2026 03:29:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyLsQ-0007eJ-NL; Fri, 06 Mar 2026 03:29:22 +0000
Received: by outflank-mailman (input) for mailman id 1247359;
 Fri, 06 Mar 2026 03:29:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GgqK=BG=gmail.com=soumyajyotisarkar23@srs-se1.protection.inumbo.net>)
 id 1vyLsP-0007eD-2m
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 03:29:21 +0000
Received: from mail-ej1-x642.google.com (mail-ej1-x642.google.com
 [2a00:1450:4864:20::642])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a8e61b36-190c-11f1-b164-2bf370ae4941;
 Fri, 06 Mar 2026 04:29:19 +0100 (CET)
Received: by mail-ej1-x642.google.com with SMTP id
 a640c23a62f3a-b935cd1c6f3so1350864066b.3
 for <xen-devel@lists.xenproject.org>; Thu, 05 Mar 2026 19:29:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8e61b36-190c-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1772767758; cv=none;
        d=google.com; s=arc-20240605;
        b=dj314FPANkDIr3AMmNX9dEGmdKHbtns2FBWiu+5U3aIZ3utiG5t/BfBQRFjisJeBk+
         yVxiLJpvva0CVyyRhk/X9UVOSTMB1qTP2NddJiRrPu4RPYgEL3GDlTcBHadgseumZEGf
         YD9/B1Bk0UsIr2HnCcUbiV+7Kdd3R0k+RodWrEKAXHsRYasAc/pzAV5g1x6gvc5o5e5U
         /NfPXM+ycMNEqrJ9tJD4DcCn1XTvqniow2OnqHvcsHn8yGQPQ5yvBheZJub9lRduYm1G
         +nlY5vrE2KRmQ/PWJGP3k3hb5NOBt2vJRfxM7nIObrkeGYPdqDUESAN7bwh273cyo+3J
         N89g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:dkim-signature;
        bh=XoxbFDZsmQse7pjbVYXTdtM53ZFTNHC86YvKyQzdLDY=;
        fh=5FPMNlxonDnoIoIMaWMAzT+Br+bG5xkQLfcZfXfS980=;
        b=byc4hknhqyA7q/WNZBiICPGJTA8N6/AWfY/PAU1jgksb0y5KVuvZp/LyHBo8g+tEzb
         tM2xtjkFvwsoALDDOVWsQ/51lxwc8qH1C5g3HKJvDesj+Ot1wIYw7Iu37LnhDSxkewrM
         /BDtN92/ZR2i/kmTIBwq9PjaxOlybt3rqlsfclXFg+7Q7a2MjyWKukb4nF7JO+9yjonn
         ROji4OZzkTygRNo3SZ0NpClBBqJUoRPAZZuegCBX+tcGE8uNdg2IGx5vTqbj/2y22Hqn
         FbSYUI4sjNuJP6xSXIqKW2esf7gt8J1goPBETfjzMTZESaG3lGWBI5g/HysqZ52JOMRH
         WD4A==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772767758; x=1773372558; 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=XoxbFDZsmQse7pjbVYXTdtM53ZFTNHC86YvKyQzdLDY=;
        b=JBRbVXZIrIZB4gvESd1FL5xUggFlaRBkhzx9MmdzoJUJ9d86kv40fs6PI9ud723J38
         ePu3Oj08XeRmfLp5QGQJPOvhDkpCwrVqpV5NJ5y1nauehRbK5mMLxBaD4B2ZMKD2OxDE
         Nv+EBri29Ik0Fr+zca7yW+/KU7uLliQ1zDxUfbFaAaLQ+TfXTsMtwukg59kUCoGj3lmD
         MrjDLZsyVuM9lE3Cra9gzz5MKEdAdhDNzUV9AI5Mkq+WgwEnmrxqxP9H7kNYpCgUZugQ
         9VW7Y2taVqgkidzwRMQPws3zawm2Q0t8AsMULpi/W84rRwKn+JpuftVjOja9Qg0HYYDZ
         zopw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772767758; x=1773372558;
        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=XoxbFDZsmQse7pjbVYXTdtM53ZFTNHC86YvKyQzdLDY=;
        b=rD8/sgeDtxyrAGKmz34hd+xJyqJaCxAZueRw4ThzdPs+lzsy/derOhR//WBtgNfZ0G
         1ecACbmYTeDTxgC0tjrRSPuxxYeVENCToU1c8xv2oLseFvM/N7B0N4lxRm2WAgeL6uJT
         Ym/8ltPCr379wgMsavUd8GZTzR9kV9H9QqkcKhp7n+4yYw8TjZx9NcIq/CDo26AcIA3N
         TeLM5hnCEe0MEunzNBY19z4xM/jJZrhLcY/WTz7ciYrpn8ZqlJPKLub9MQVUQy5Gy/YX
         LdCBims62XiDwnzKB8i9fWIhvMIdeoXPzp/MKX5bIiXxBeKd4tUq0fGo7kzlLw3z42x7
         n+hw==
X-Gm-Message-State: AOJu0YzaMYg0g5BRQTRCvIYKYvuZn9St7rtGHFrctICV1pTntnMYrMTW
	QASB3IDlZlz8S/Ul+5mBQAjhVifCd4yEbjLBFRxTlBW5OMFoZ8xnDoyWxLlyRHJ6eOurp8Ku/4b
	OraKw6YtI3Mkugui9/Ce1pObZbLWwp24=
X-Gm-Gg: ATEYQzz6uKBFGQ0kgdICjiKpXSDytAgfHaOR5w3hcFSqZuUewUVflsakxY5xKO9tATo
	27MJCk+2nA6CxZ+0jM9UvPGTDlTndwzR6HFR4oi6GX/8W+7bLzWDY9DY76AahslqCWq49ykDnn9
	SF0zCZuctYcqa2hwPra2vSE1i5MAl+D+3DUy8/HWsOtWNHOjTTAO/dqkf6SIhS4aMB3ZFt4CE4i
	Lie8SxiHmoNzD3rDPrKkIHP7YoqAeMDzpCAkGz7sJGTQRMkvvWHpcb0VeLAsoSj7zqYGZUvE8Xz
	lLOzRyzLJ04GpZ2J1v6azSJFILn+VQ6bjPG+PPed1uxbfo9IdkaGgjvcRG4MBQG3+OYZcY/4TeI
	nUqfFfuO/ukxvjQkkzL0mruDPB1YGjrVc23AfqtnAByj5JOTO
X-Received: by 2002:a17:907:9723:b0:b90:e278:a09a with SMTP id
 a640c23a62f3a-b942e0260a7mr28817066b.55.1772767758275; Thu, 05 Mar 2026
 19:29:18 -0800 (PST)
MIME-Version: 1.0
References: <20260305191810.31033-1-soumyajyotisarkar23@gmail.com>
 <20260305191810.31033-3-soumyajyotisarkar23@gmail.com> <aaoznRwdCKzRvKlD@mail-itl>
In-Reply-To: <aaoznRwdCKzRvKlD@mail-itl>
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Date: Fri, 6 Mar 2026 08:59:07 +0530
X-Gm-Features: AaiRm501VytSKcWIeZ-pqT47TTKnIOV6BYY3Ufp6EbWr56GD6d41Jw1euOFh5Ck
Message-ID: <CAGkZZ+tjOGskPuSipkkOBjussxy5h_fDhNOMt-6Q9cqWJQi4kw@mail.gmail.com>
Subject: Re: [PATCH 2/3] x86/acpi: Remove BGRT invalidation code
To: =?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com, 
	Jan Beulich <jbeulich@suse.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>
Content-Type: multipart/alternative; boundary="000000000000805590064c52a809"

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

On Fri, Mar 6, 2026 at 7:23=E2=80=AFAM Marek Marczykowski-G=C3=B3recki <
marmarek@invisiblethingslab.com> wrote:

> On Fri, Mar 06, 2026 at 12:48:09AM +0530, Soumyajyotii Ssarkar wrote:
> > Now that BGRT images are preserved during EFI boot (via
> > EfiACPIReclaimMemory allocation), the invalidation code in
> > acpi_parse_bgrt() is no longer needed. The BGRT table remains
> > valid throughout boot.
> >
> > This removes the code that was marking BGRT invalid when the
> > image memory was detected as unavailable, which was causing
> > ACPI warnings in Linux dom0.
>
> When preserving failed for any reason, or when it was disabled (the next
> patch), the entry still should be invalidated. In fact, the check here
> for RAM_TYPE_CONVENTIONAL may already disable invalidation when it got
> preserved?
>
> --
> Best Regards,
> Marek Marczykowski-G=C3=B3recki
> Invisible Things Lab
>


I could move forward with dropping the [PATCH 2/3]. And adapt the other
patches accordingly.
This would serve as a safety net in case the preservation fails for any
reason. Would that be a valid approach?

Thank You,
Soumyajyotii Ssarkar

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

<div dir=3D"ltr"><div dir=3D"ltr">On Fri, Mar 6, 2026 at 7:23=E2=80=AFAM Ma=
rek Marczykowski-G=C3=B3recki &lt;<a href=3D"mailto:marmarek@invisiblething=
slab.com">marmarek@invisiblethingslab.com</a>&gt; wrote:</div><div class=3D=
"gmail_quote gmail_quote_container"><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex">On Fri, Mar 06, 2026 at 12:48:09AM +0530, Soumyajyotii Ssarkar w=
rote:<br>
&gt; Now that BGRT images are preserved during EFI boot (via<br>
&gt; EfiACPIReclaimMemory allocation), the invalidation code in<br>
&gt; acpi_parse_bgrt() is no longer needed. The BGRT table remains<br>
&gt; valid throughout boot.<br>
&gt; <br>
&gt; This removes the code that was marking BGRT invalid when the<br>
&gt; image memory was detected as unavailable, which was causing<br>
&gt; ACPI warnings in Linux dom0.<br>
<br>
When preserving failed for any reason, or when it was disabled (the next<br=
>
patch), the entry still should be invalidated. In fact, the check here<br>
for RAM_TYPE_CONVENTIONAL may already disable invalidation when it got<br>
preserved?<br>
<br>
-- <br>
Best Regards,<br>
Marek Marczykowski-G=C3=B3recki<br>
Invisible Things Lab<br></blockquote><div><br></div><div><br></div><div>I c=
ould move forward with dropping the [PATCH 2/3]. And adapt the other patche=
s accordingly.</div><div>This would serve as a safety=C2=A0net in case the =
preservation fails for any reason. Would that be a valid approach?</div><di=
v><br></div><div>Thank You,</div><div>Soumyajyotii Ssarkar</div></div></div=
>

--000000000000805590064c52a809--


From xen-devel-bounces@lists.xenproject.org Fri Mar 06 08:49:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 08:49:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247450.1546061 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyQsB-00038y-Ji; Fri, 06 Mar 2026 08:49:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247450.1546061; Fri, 06 Mar 2026 08:49:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyQsB-00038r-Gp; Fri, 06 Mar 2026 08:49:27 +0000
Received: by outflank-mailman (input) for mailman id 1247450;
 Fri, 06 Mar 2026 08:49:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xfpx=BG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vyQsA-00038l-2n
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 08:49:26 +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 602ce972-1939-11f1-b164-2bf370ae4941;
 Fri, 06 Mar 2026 09:49:24 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4837f27cf2dso83242355e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 06 Mar 2026 00:49:24 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4851fae0202sm128773545e9.6.2026.03.06.00.49.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 06 Mar 2026 00:49: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: 602ce972-1939-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772786964; x=1773391764; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=U02JrJpD6n7i++ALGsisq3tquoiP2+K1GuxNuju8wx8=;
        b=Lp6kWuRTU+ebKDuNqj43t6RxE3k5iqtA3M7cGMTvx/4uDauwVkq18WaRXNBiOcF+hl
         IROlDVaVjIYEl2anvq+hY7xYS85MZ+hbeFMyh0G1eH2qvqSBuyoZDfWZOC0KcVkNKJY/
         CBdCoQ3A//8wtaAlMzuRxA34YgS3i4w8B6iAYHCT3kcuW+vKpo2MzOzaWIvyKUL4JRld
         9aGFi6dLQT0wY/xibTkHePzNiiNDiPK5yIS1xAKlmuzE+Exm3CUsUOxStb+WzjYdL6Ui
         GeOASneuQpJ39XgmoD1BGHOiiYtSeoJh76QNnm3Jd3/2+Htutg2YayDyc4bvLzU1eECG
         wZyA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772786964; x=1773391764;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=U02JrJpD6n7i++ALGsisq3tquoiP2+K1GuxNuju8wx8=;
        b=pqyLght4ZWxbLwaeWLsgt2Xd0t0K503kQlnuqEPZJMud8loReSnXZiu/cFF9po68kw
         gx6lOvWJtwjqij7n0D6qrqhcjVj2AgQpwWmItbWZw0qHRi6OshONOhsh/k+QG/kGdwTR
         EOwcO8y6iIi8Sysv9I4MdAMX3s27JMwDrDYJ0ZlQ8Bw2VL47OwQeTaEibJ4uCH+iUkoU
         h3XxSIzN+u5HYsDtZP4+axF6CZAqQhWQBrJKE9iJBv5F5ru/9LtWv/l6rTTcYWtkmg9p
         KsdMwyxdf5FoGKUZYKR5VJ0fYwB7ocNSP+3FQj03wWhjURdApj23GtVCzATzrwBzGjcn
         ODMg==
X-Forwarded-Encrypted: i=1; AJvYcCUeesnuJ8rvADh43rKPhqiDFMC7jvtuIMcG050OfDlWABehM5R0iX9/ZGIAuQyuVtoUzoqaboRa2O0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyaoTMt30ZbaqCNcNQrxXtNVEf6s5Ko7IxOxmx95sOE73fzg+pX
	VrmhJyhM6ovhihdJ/tYi8KvZppNpT2IC35xh+rf8OG13yaqZ05Fd7PmKPa1rgY3Y3g==
X-Gm-Gg: ATEYQzxsQgcJhLfYYU9WazAAPKj2tJTjS5RmCvYlYOAz3BX23z+Yewwo8Q5/XZSi9TM
	HnDfELWFnhVg+dhzwB8Dd6HYnhQqDriZ6c88LCZAmuL2Ntj33yAWQVJq+XlKl4X9SGHDWjPJ6gs
	lAikv//G76EPyYH7AaSiLNML+qJuTuwd8+/dYILjzmQtfdHnnEMcX5Bga8vADjC6dhNntvjuM/n
	wshGLSSpBUMqCR/xU/xk9ctY6gHa8wh3GkE8tKMHMeXDLpVb2RI9lmAhxR9p2UmIacNwr0BTJ2/
	1LQaNtm4rZgAATI3F0trgLZI/iS4uK2g39P8nhZYjIIAvfaXBag6HYfO61ZGaNEqchlXN//WA6D
	fUNWJKO5zLaNGc9LW50NgD6pGxVzhO/CR0xh1wz4FjxwFJtxEuA5bvJ5HKk28qyxt0YD+JCKsUB
	rmSJ4x7SZi+XpA6xzENtI9Du3/JyZL5LuZgnpmIBIuYQLBU8mQYU1VOvYafaid8j9lgarAeFhhS
	jaoH6jW3Ghlnt4=
X-Received: by 2002:a05:600c:1e2a:b0:483:c771:10e with SMTP id 5b1f17b1804b1-48526957d6cmr16921425e9.20.1772786963764;
        Fri, 06 Mar 2026 00:49:23 -0800 (PST)
Message-ID: <9e222b10-f63a-4a5a-981c-36c438e3071c@suse.com>
Date: Fri, 6 Mar 2026 09:49:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] arm/gic: Optimize lr_mask type based on GIC version
To: Ayan Kumar Halder <ayan.kumar.halder@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>,
 xen-devel@lists.xenproject.org
References: <20260305195745.2595017-1-ayan.kumar.halder@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: <20260305195745.2595017-1-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.03.2026 20:57, Ayan Kumar Halder wrote:
> --- a/xen/arch/arm/include/asm/gic.h
> +++ b/xen/arch/arm/include/asm/gic.h
> @@ -237,7 +237,15 @@ enum gic_version {
>      GIC_V3,
>  };
>  
> +/*
> + * GICv3 supports up to 16 LRs (4 bits in ICH_VTR_EL2), can use uint16_t
> + * GICv2 supports up to 64 LRs (6 bits in GICH_VTR), requires uint64_t
> + */
> +#ifdef CONFIG_GICV3
> +DECLARE_PER_CPU(uint16_t, lr_mask);
> +#else
>  DECLARE_PER_CPU(uint64_t, lr_mask);
> +#endif

But GICV2 and GICV3 can be enabled at the same time, at which point you'd still
need 64 bits, I suppose.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Mar 06 09:21:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 09:21:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247468.1546071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyRNV-0007zS-Qx; Fri, 06 Mar 2026 09:21:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247468.1546071; Fri, 06 Mar 2026 09: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 1vyRNV-0007zL-ND; Fri, 06 Mar 2026 09:21:49 +0000
Received: by outflank-mailman (input) for mailman id 1247468;
 Fri, 06 Mar 2026 09:21:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pqZA=BG=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vyRNU-0007zF-G7
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 09:21:48 +0000
Received: from BN8PR05CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c110::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e54e4bf1-193d-11f1-b164-2bf370ae4941;
 Fri, 06 Mar 2026 10:21:46 +0100 (CET)
Received: from BN9PR03CA0641.namprd03.prod.outlook.com (2603:10b6:408:13b::16)
 by MW3PR12MB4474.namprd12.prod.outlook.com (2603:10b6:303:2e::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.5; Fri, 6 Mar
 2026 09:21:42 +0000
Received: from BN2PEPF0000449F.namprd02.prod.outlook.com
 (2603:10b6:408:13b:cafe::ad) by BN9PR03CA0641.outlook.office365.com
 (2603:10b6:408:13b::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.23 via Frontend Transport; Fri,
 6 Mar 2026 09:21:41 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN2PEPF0000449F.mail.protection.outlook.com (10.167.243.150) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Fri, 6 Mar 2026 09:21:41 +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, 6 Mar
 2026 03:21:40 -0600
Received: from [10.71.194.215] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 6 Mar 2026 03:21:39 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e54e4bf1-193d-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wHpMflHJfgEYjP+XdcU6CaLPD3xG4Qgq7bffqEvV1AEqT/q4j3HNzkdFiM9Y8pIRrxChbkrsPCN9hntGuk7faT7pLJhf9vSlcYR/wjuRqsjj+mwsE2wihZfHTmrKFpXRsplAYfM9GrSCSVE6a5IA/kZPsFDuPyUirqml4mi3zH/umoIq3BA2UwVUSyOQCSiZNj0Zs8HaK48j4XQrfAxe+7ESAnrhkCZUBBDe2vjbFXEnsDbT0Eg+KUY+9Bio3EhHd2hxXOlun/NSXJgkJikplETMTIXFlZ1J5l+2/G0Oprg26vzrO8QquNQfg5Ch/7J8TP8pyv7sAa6KCkHDd6/bSg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sFRT5nAckARuk4H+S4Yw9VmrAdvcJew+SYc7fWR7jhg=;
 b=vBlHjDlXw+2mpaSVtVWOZO3AND1D6C3kWbnbg6z5YQHaDsYTEzJMiipYTSyUNhJA4PrqpgCBSqJf2uDeoFuOnLnextfYY3JEDafxMRpSfLnFygXxf3ukgWDozZL0CrKXfPLxyiAjuLvseU/nYQWfcOvgcjpaJOK41xutGIYOy4DLXQ/FbrSKOrhBfTJ+z8N5sT4j8elWpxvGS0ffukCPrwWRtOCoCGFvmX9piCY6DCO/Mql53naF7pSuEQHO0J48z9UJ+MQmV6Mrc8sFjjV6Z0HpoA/BZ4ZxSU+oCh6x1FHVUtZ/CVT6/svgHS9eHOj4IkGEXZkd44m/SWl52sxUMQ==
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=sFRT5nAckARuk4H+S4Yw9VmrAdvcJew+SYc7fWR7jhg=;
 b=G1SADx0hf1PWuQX4ryh2I0srk87SLw0rt5pU6j6IzFdew2B+QQY11DuVtBKUOeu7eHpNXLT/HJeF6SpqIzAamI7ou/7u9mv7u+s7wvdKo3eklHwOJKIUQigWBnf574M9LmvdEEy8bl6ijjPgOV5hFWZIeRE+Dzrl7l2ily2mJkM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <16fc8fd8-9256-4c95-bce7-b7e696a27601@amd.com>
Date: Fri, 6 Mar 2026 10:21:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] ARM/vgic: Use for_each_set_bit() in vgic_sync_from_lrs()
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, "Bertrand
 Marquis" <bertrand.marquis@arm.com>, Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Ayan Kumar Halder
	<ayan.kumar.halder@amd.com>
References: <20260305232845.62024-1-andrew.cooper3@citrix.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260305232845.62024-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF0000449F:EE_|MW3PR12MB4474:EE_
X-MS-Office365-Filtering-Correlation-Id: be7253f7-077a-4971-75bd-08de7b61c720
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	8txPSpvFdhEuDIgiTJq6xDQiOpaqBdy0S7TCp5Lb8Z/fEDQKMVSCDutv6u+ZsQWWX01oNYgsgAW3minjRRcgaIzCHdzZk5HbksQM3GAxxtr9nu8ZB7k27fvlGMSJ8e9cWyMnJOgxWcy/APNP127QeB4sPZcTfGN5pP/3QkLbEsvyam8AO1LxyhQqasJhIacbuLT/0l0oyY7gvpMNE/bze+6zr1ueT0iwWGojc8QTxX/XPKHhDKHPm0Pi1VDGg2SPfdGyBBpRMWEELcF+6N6P2HWSvZ6T2THbc1HUFtz4ZMPqDamGzYBk5hlk75UlV4G+QAvaT164kZaia5FaV06T3UzoXan8CDr+Gbwz2a3bdLe0AnH2HrIpq8YoTKRqQNVPIxKmiaxN5bBEqfi9f1CIHfsr/oEZK4XYH7cUPkBimJwBwadjEjAB4hcBasl+nGdnV0owiux7JkJFh1uPBXwIosVvffQTN8gJpys8U47N+DpbyUrogE6hKx7kk4hqKqvg5/zAL3pQco9fktBc++uwD2h5l7wxNpqiDxp1p5iPV7AJwHwozt1PZkXjN4sSpVqQwNa6qqIjO9AkDme4/m6mgsnzZKseRi1Io2idGMc+EDpGidSh7ppnpYuxWOZGua8JzoRlPL7gs4yzf4hGiBD4XDgxfp62BmG6jZ7rmW+60frumocYqFH540o0uSFP4q8XdXFcEfkXXOOnClCNhb9Dg52ealFuf/nDwbAJcPOwlLdIDW+oQCOjTEesi/WxB5OMtHVTOg+ElfTiIp06KriQUg==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	TAJY06CRTF1zFWkjTjraiDMweFeVwcP6ddOScB/337qmEthorD3IDdUNjSj3rFaA6NxbJvlPb7dLo2cHcDJQ+A2TBsioEXWHGNm8svGyhNyHlbDpsdvc8h5ZfXk8CrybzChx3qEAaJMUj1I3NNSN+l3L+v3p5WjPEATjUiytKtQnv6CJINA1SsCKlB09dDZ7jUR9jJ4PsPoXtiX3MO2N3nmEPXKAe+sqZAxl9SZ32FIf6AftcKs+98EAPg8Y38Qi6VdGnLLyuPHj97fh+JbFGa5Ir1u4CGq/yR/zzKFUUjWIPJeLw+M/l10XSHLRKoQrk/XT+xaFMNl3WDGGf5IEIddnJh01hsu+Vty/j/ugyi9YHU4VO11b0K8LBh88bFN/DLXeEfU3++3COBoC/JspF8BI4xPQXKMX4Qcv1A+k5dQWeIEd3956lXKmuXYozQZ5
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2026 09:21:41.5590
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: be7253f7-077a-4971-75bd-08de7b61c720
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF0000449F.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR12MB4474



On 06/03/2026 00:28, Andrew Cooper wrote:
> lr_mask doesn't have bits set beyond the hardware limit, with the upper bits
> remaining zero.  Therefore, for_each_set_bit() is a better option.
> 
> For ARM64, bloat-o-meter reports:
> 
>   Function                                     old     new   delta
>   vgic_sync_from_lrs                           208     168     -40
> 
> but this doesn't highlight that it also removes a call to find_next_bit() from
> each loop iteration.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 09:24:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 09:24:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247485.1546079 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyRPr-0008Ut-5a; Fri, 06 Mar 2026 09:24:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247485.1546079; Fri, 06 Mar 2026 09:24:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyRPr-0008Um-2a; Fri, 06 Mar 2026 09:24:15 +0000
Received: by outflank-mailman (input) for mailman id 1247485;
 Fri, 06 Mar 2026 09:24:13 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vyRPp-0008UN-PH
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 09:24:13 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vyRPp-008BQo-17;
 Fri, 06 Mar 2026 09:24:13 +0000
Received: from [2a02:8012:3a1:0:f0b8:207:419e:3d8a]
 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 1vyRPp-001fEE-0R;
 Fri, 06 Mar 2026 09:24: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=cdn80RzxzOqsgPuCqGcvDiArU6Lg0jBJMFIuE9EfUvg=; b=nrmELLSb1WF/XtIyDxwA41SMQy
	r2TNJ3JtBbj1Bd6QUTH9+hihAEsTEUEFp+Wx1y076g2ledpAV4s4Vyd+atBfCQImZSdzb48XGttvh
	Y/WAym3kcrgfYfVSIeP4zept/JpCHPkowdmSktbQGqS939LRuoatKRBe/g+RSHLhyXYw=;
Message-ID: <f1a5a509-bc6d-4616-872c-c5bb1ecf9da7@xen.org>
Date: Fri, 6 Mar 2026 09:24:09 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen: gic-v3: Introduce CONFIG_GICV3_NR_LRS
Content-Language: en-GB
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
 xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20260305194358.2564387-1-ayan.kumar.halder@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20260305194358.2564387-1-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Ayan,

On 05/03/2026 19:43, Ayan Kumar Halder wrote:
> Set GICV3_NR_LRS as per the number of list registers in the supported
> hardware. This ensures:
> 
> 1. In gicv3_save_lrs()/gicv3_restore_lrs(), use the number of list
> registers from GICV3_NR_LRS (if defined) instead of gicv3_info.nr_lrs.
> This ensures that if the hardware does not support more than 4 LRs
> (for example), the code accessing LR 4-15 is never reached. The
> compiler can eliminate the unsupported cases as the switch case uses a
> constant conditional.
> 
> 2. Similarly In gicv3_ich_read_lr()/gicv3_ich_write_lr() , we can
> justify that the unsupported LRs (4-15) will never be reached as Xen
> will panic if the runtime value (lr) exceeds GICV3_NR_LRS. Some
> compiler can eliminate the code accessing LR 4-15.
> In this situation, using panic() is better than accessing a list
> register which is not present in the hardware
> 
> 3. Whenever GICV3_NR_LRS is defined, the default condition and the
> related BUG() cannot be reached at all.

I am not sure how this is better. You will still crash Xen is 'lr' >= 
GICV3_NR_LRS. Can you provide some details?

 > > As part of functional safety effort, we are trying to enable system
> integrator to configure Xen for a specific platform with a predefind
> set of GICv3 list registers. So that we can minimize the chance of
> runtime issues and reduce the codesize that will execute.
> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> ---
>   xen/arch/arm/Kconfig  |  9 +++++++++
>   xen/arch/arm/gic-v3.c | 12 ++++++++++--
>   2 files changed, 19 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index 2f2b501fda..6540013f97 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -276,6 +276,15 @@ config PCI_PASSTHROUGH
>   
>   endmenu
>   
> +config GICV3_NR_LRS
> +	int "Number of GICv3 Link Registers supported" if EXPERT
> +	depends on GICV3
> +	range 0 16
> +	default 0
> +	help
> +	  Controls the number of Link registers to be accessed.
> +	  Keep it set to 0 to use a value obtained from a hardware register.
> +
>   menu "ARM errata workaround via the alternative framework"
>   	depends on HAS_ALTERNATIVE
>   
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index bc07f97c16..fb2985fd52 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -51,6 +51,8 @@ static DEFINE_PER_CPU(void __iomem*, rbase);
>   #define GICD                   (gicv3.map_dbase)
>   #define GICD_RDIST_BASE        (this_cpu(rbase))
>   #define GICD_RDIST_SGI_BASE    (GICD_RDIST_BASE + SZ_64K)
> +#define lrs                    (CONFIG_GICV3_NR_LRS ?: \
> +                                gicv3_info.nr_lrs)

We should avoid lowercase define, in particular with generic names like 
'lrs'. I think in this case, I would rather update gicv3_info.nr_lrs:

gicv3_info.nr_lrs = min(gv3_info.nr_lrs, CONFIG_GICV3_NR_LRS);

This would solve another problem where you don't sanity check that the 
system effectively support CONFIG_GICV3_NR_LRS.

> @@ -121,7 +123,7 @@ static inline void gicv3_save_lrs(struct vcpu *v)
>   static inline void gicv3_restore_lrs(const struct vcpu *v)
>   {
>       /* Fall through for all the cases */
> -    switch ( gicv3_info.nr_lrs )
> +    switch ( lrs )
>       {
>       case 16:
>           WRITE_SYSREG_LR(v->arch.gic.v3.lr[15], 15);
> @@ -178,6 +180,9 @@ static inline void gicv3_restore_lrs(const struct vcpu *v)
>   
>   static uint64_t gicv3_ich_read_lr(int lr)
>   {
> +    if ( lr >= lrs )
> +        panic("Unsupported number of LRs\n");

Do we really have to panic in production build? Wouldn't it be better to 
return '0' and maybe use ASSERT for a crash in debug build? Same below.

> +
>       switch ( lr )
>       {
>       case 0: return READ_SYSREG_LR(0);
> @@ -203,6 +208,9 @@ static uint64_t gicv3_ich_read_lr(int lr)
>   
>   static void gicv3_ich_write_lr(int lr, uint64_t val)
>   {
> +    if ( lr >= lrs )
> +        panic("Unsupported number of LRs\n");
> +
>       switch ( lr )
>       {
>       case 0:

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 09:26:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 09:26:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247500.1546088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyRRs-0000cS-GY; Fri, 06 Mar 2026 09:26:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247500.1546088; Fri, 06 Mar 2026 09: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 1vyRRs-0000cL-De; Fri, 06 Mar 2026 09:26:20 +0000
Received: by outflank-mailman (input) for mailman id 1247500;
 Fri, 06 Mar 2026 09:26:18 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vyRRq-0000cE-Pk
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 09:26:18 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vyRRq-008BSr-0s;
 Fri, 06 Mar 2026 09:26:18 +0000
Received: from [2a02:8012:3a1:0:f0b8:207:419e:3d8a]
 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 1vyRRq-001fKK-0I;
 Fri, 06 Mar 2026 09:26:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=XSI1KRPvWn+IVr2eqEcVZv3jMwf0CKUKByCZYDfU0Qg=; b=XphBMuGNZk6E9Gbv0QspeobMMl
	EKv4qUMmlz0XTWAiemhsO2OBJmeSj6yfRKYAsKR07jiwGxB8v71DoDzuSx1cq4fqKrXk73WOyUiLt
	fzBbJt7A3/p1wXQBYe6N2WfEMDpFTa7og980Kv7G5RB2WT9xGIEhgD8tK7pbT54ml3m4=;
Message-ID: <8eb6322f-ba2d-427b-8da7-c8df3288096d@xen.org>
Date: Fri, 6 Mar 2026 09:26:16 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] ARM/vgic: Use for_each_set_bit() in vgic_sync_from_lrs()
Content-Language: en-GB
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <JBeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>
References: <20260305232845.62024-1-andrew.cooper3@citrix.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20260305232845.62024-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 05/03/2026 23:28, Andrew Cooper wrote:
> lr_mask doesn't have bits set beyond the hardware limit, with the upper bits
> remaining zero.  Therefore, for_each_set_bit() is a better option.
> 
> For ARM64, bloat-o-meter reports:
> 
>    Function                                     old     new   delta
>    vgic_sync_from_lrs                           208     168     -40
> 
> but this doesn't highlight that it also removes a call to find_next_bit() from
> each loop iteration.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Julien Grall <julien@xen.org>

> ---
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
> CC: Bertrand Marquis <bertrand.marquis@arm.com>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> 
> RFC.  This form also doesn't suffer an OoB read when lr_mask changes type.

And potentially unaligned as well. On Arm 32, this would result to a 
crash because for forbid unaligned access.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 09:52:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 09:52:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247519.1546097 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyRqU-0004rP-Ci; Fri, 06 Mar 2026 09:51:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247519.1546097; Fri, 06 Mar 2026 09:51:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyRqU-0004rI-9H; Fri, 06 Mar 2026 09:51:46 +0000
Received: by outflank-mailman (input) for mailman id 1247519;
 Fri, 06 Mar 2026 09:51:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kfUi=BG=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1vyRqS-0004rC-NE
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 09:51: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 116daccf-1942-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Mar 2026 10:51:38 +0100 (CET)
Received: from SJ0PR05CA0164.namprd05.prod.outlook.com (2603:10b6:a03:339::19)
 by CY5PR12MB9053.namprd12.prod.outlook.com (2603:10b6:930:37::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18; Fri, 6 Mar
 2026 09:51:33 +0000
Received: from MWH0EPF000C6187.namprd02.prod.outlook.com
 (2603:10b6:a03:339:cafe::1a) by SJ0PR05CA0164.outlook.office365.com
 (2603:10b6:a03:339::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Fri,
 6 Mar 2026 09:51:30 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MWH0EPF000C6187.mail.protection.outlook.com (10.167.249.119) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Fri, 6 Mar 2026 09:51:31 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 6 Mar
 2026 03:51:31 -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; Fri, 6 Mar
 2026 03:51:31 -0600
Received: from [10.71.193.38] (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, 6 Mar 2026 03:51:30 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 116daccf-1942-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bdY6W02NzBT6Ytc9SZmxr3tMC8fDCZfhekFpbTYelh5BIUoaC+UJvSX4Zztp8AaZJJWpCNUb6UIjXlZ5B6kOX3gGItItRo1dtHIbY5DQZ7fei8UMwyCgEjMpARE8+UYW7nVh6li4JThm1ux8i73Gb5OIi/NreBpOwS7oipXVTPCbK6stYeVN4JXkNFAzjFxv6gTmGyXH6+bi5Vg438j2tzvZTGwvDB+Ilh/WY0pFlxPdn7WJYZ7/KYnTsrp6PVsG6BpzeSyaTQyzZJPmSRxhj/Ie2N5702iVqPZ5LnL/e+nSDI8ozcqNmWbpUyZXVnaKfp9Ix5QiF/r8OVByYpLDGA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TGZFDK9QIGeO2suqIMiWdlWd1ku7OPxRvj593QqKcbA=;
 b=k6wtJNyOO4V9gC5a/GWMxok4WJKxRT+i6/nIlyLWaJKPCaKIVcfr1ZC6pCjVzHmmC+ggPbMyAvp8eEXzWzLb9jngMlTX9uKx5qcHOYcQXBkzh8RaFIBvorjhKf3j1PHZYI09EdcYwadYRG2KbSYzZqxtU9B1Bv6Z7Tyt5gjmLx24ahvU4jwx54CnK8dA+jdohvz7vh40JT9dNYfDwOTAnkUEcKyzgaUBxwqJuPl6B2ROMXYo0sz8nwGMiltEIx1BUirG+BEXOwn+yIJl/N7gym0Y1U47S36J5n+JEFFA2FfMtWIR1fk80g5Z8vmdTrJm2etpO5NLRFhd55Z/L3VO7w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=xen.org smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TGZFDK9QIGeO2suqIMiWdlWd1ku7OPxRvj593QqKcbA=;
 b=xP2mrHBDcQF/AwqU1aYgfjhJwfu+honXdYg2F2visyeAp56coAup/wxfs5+HsmfnMvqtB1R5j2HLSsnvdKpM7AjADq5GjPp0h1pHkVODJZFdvbo8Eomj46FnYgvTigrGLezN3Up1LCwZSipGVXmHKyQ5vWNP7zR/usxvKlThdFw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <f10e2a5e-446c-42f2-b9ce-44498acbfb1e@amd.com>
Date: Fri, 6 Mar 2026 09:51:29 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen: gic-v3: Introduce CONFIG_GICV3_NR_LRS
To: Julien Grall <julien@xen.org>, Ayan Kumar Halder
	<ayan.kumar.halder@amd.com>, <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>
References: <20260305194358.2564387-1-ayan.kumar.halder@amd.com>
 <f1a5a509-bc6d-4616-872c-c5bb1ecf9da7@xen.org>
Content-Language: en-US
From: "Halder, Ayan Kumar" <ayankuma@amd.com>
In-Reply-To: <f1a5a509-bc6d-4616-872c-c5bb1ecf9da7@xen.org>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000C6187:EE_|CY5PR12MB9053:EE_
X-MS-Office365-Filtering-Correlation-Id: d3e4801b-0ef3-4e58-14ec-08de7b65f240
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|30052699003|82310400026|36860700016;
X-Microsoft-Antispam-Message-Info:
	yYnKyjQjRFIOeip+FDQOm2o6LvPgXoNk2ZBgfV7XW9RrPEU6WGOzJ64tSxK8inMOHAYZ/up0d3s6YGEf8owbiEfxoSABbQpZop9cxnWaLrHJ7X4y6eIp7xrFTAMMPfYyW0g3VX2ocwiIBW+68zf8uAXIYJGCmBxXzO4SyITM29qjLBWyNVVCjkutqmqChc4vaMT+qiSwzB8IZSZmJO4rc3TYYnfi0ic0CFm2VQSCZID/EHpHFg8PEWcQAeXotKowi//Ro0SlBqTI+7bfCbsOlOb36u3dkrB0qobICZS2pKjoIeOF8OIuxrC21xCK20OPbQpFnIJgTPqrcAvZ0XiMog/G0Av7OjSFa0r/oa5/FBZLb4RCG0PB93UXlBNS5hboOxBADLPBL0eKYuCQfa1Q97oyxzPxM7B9aYU/AhqXLikgCdQd+9haRhLjHKS9s3o7btXhMzMIZlzdLJBLtR6VAd69jG8uptU6UT6QzYTBSm8b4K11g6RgjPno8KW9TfFdxz8UQ+3wfpd56/dEtpaUWQEqJLJGzX53OGX8LVryFetngGqVcnBM0cEHXUqsjO+QywIIxY32wCsghSXhdIjlnaScyO714Laa5vogpwCpCwVoi6+sFAsBR4riuk0qtQ44igtnVELuaY+aYqBBe3O27sAa/1JCDBBmIg3ds2kr1NfZnvaRlG5nMW86FOas4WD2dLyKgMdll0o5kcd/YUyQzpdovOVcIgCK+jw4npw9f3nNOilgcY92jSZ2nNY13ZGsjYLawI0EfYK/rwK+JOGk2Q==
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)(30052699003)(82310400026)(36860700016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	3RUc/GLAZ8hKe0yYnEndv4/IOJSFNiSXTBDCxNycPuzj3VJ74pIaSS82X8Cy8Co2Sf9ltbIR+Y1bX8E6jllfVOoYZvb/2Ts4CvtEdnINN/e3FbznUtyh/WdCLjl0lc9AoQywLqK4YYFgWG7c94khK7NQ4Esc4ZxVmNYKRHUCHGW8OE3HYuWF80Anqdkeq+r4M1QQDmjoXxJRQTlRrAkKwDTNjFagZkkvJJVP2WDpmEyRiezKl4El/XVOJJFiq8QoW432D0zAsJpLLlk+1uJYgnvbPt2NHG5BeWAwArOw8Yk1aPPz7dq/lO53pebqP/BZIr5DBy8j5sjc1EREiwHIiOtgMFHmp7JHN/7zxdGRuqrJ0G8VG4SoejaSV15Ulz+CL6l72nwRWxfZm6K/HzAaW3ahrxde7wiChi5RQRNdkgwymxDLyRcFUDy1BdzxiJXq
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2026 09:51:31.8054
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d3e4801b-0ef3-4e58-14ec-08de7b65f240
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000C6187.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB9053


On 06/03/2026 09:24, Julien Grall wrote:
> Hi Ayan,
Hi Julien,
>
> On 05/03/2026 19:43, Ayan Kumar Halder wrote:
>> Set GICV3_NR_LRS as per the number of list registers in the supported
>> hardware. This ensures:
>>
>> 1. In gicv3_save_lrs()/gicv3_restore_lrs(), use the number of list
>> registers from GICV3_NR_LRS (if defined) instead of gicv3_info.nr_lrs.
>> This ensures that if the hardware does not support more than 4 LRs
>> (for example), the code accessing LR 4-15 is never reached. The
>> compiler can eliminate the unsupported cases as the switch case uses a
>> constant conditional.
>>
>> 2. Similarly In gicv3_ich_read_lr()/gicv3_ich_write_lr() , we can
>> justify that the unsupported LRs (4-15) will never be reached as Xen
>> will panic if the runtime value (lr) exceeds GICV3_NR_LRS. Some
>> compiler can eliminate the code accessing LR 4-15.
>> In this situation, using panic() is better than accessing a list
>> register which is not present in the hardware
>>
>> 3. Whenever GICV3_NR_LRS is defined, the default condition and the
>> related BUG() cannot be reached at all.
>
> I am not sure how this is better. You will still crash Xen is 'lr' >= 
> GICV3_NR_LRS. Can you provide some details?
>
> > > As part of functional safety effort, we are trying to enable system
>> integrator to configure Xen for a specific platform with a predefind
>> set of GICv3 list registers. So that we can minimize the chance of
>> runtime issues and reduce the codesize that will execute.
>>
>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>> ---
>>   xen/arch/arm/Kconfig  |  9 +++++++++
>>   xen/arch/arm/gic-v3.c | 12 ++++++++++--
>>   2 files changed, 19 insertions(+), 2 deletions(-)
>>
>> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
>> index 2f2b501fda..6540013f97 100644
>> --- a/xen/arch/arm/Kconfig
>> +++ b/xen/arch/arm/Kconfig
>> @@ -276,6 +276,15 @@ config PCI_PASSTHROUGH
>>     endmenu
>>   +config GICV3_NR_LRS
>> +    int "Number of GICv3 Link Registers supported" if EXPERT
>> +    depends on GICV3
>> +    range 0 16
>> +    default 0
>> +    help
>> +      Controls the number of Link registers to be accessed.
>> +      Keep it set to 0 to use a value obtained from a hardware 
>> register.
>> +
>>   menu "ARM errata workaround via the alternative framework"
>>       depends on HAS_ALTERNATIVE
>>   diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
>> index bc07f97c16..fb2985fd52 100644
>> --- a/xen/arch/arm/gic-v3.c
>> +++ b/xen/arch/arm/gic-v3.c
>> @@ -51,6 +51,8 @@ static DEFINE_PER_CPU(void __iomem*, rbase);
>>   #define GICD                   (gicv3.map_dbase)
>>   #define GICD_RDIST_BASE        (this_cpu(rbase))
>>   #define GICD_RDIST_SGI_BASE    (GICD_RDIST_BASE + SZ_64K)
>> +#define lrs                    (CONFIG_GICV3_NR_LRS ?: \
>> +                                gicv3_info.nr_lrs)
>
> We should avoid lowercase define, in particular with generic names 
> like 'lrs'. I think in this case, I would rather update 
> gicv3_info.nr_lrs:
>
> gicv3_info.nr_lrs = min(gv3_info.nr_lrs, CONFIG_GICV3_NR_LRS);

But we want to enforce the user to set CONFIG_GICV3_NR_LRS , so that we 
don't have to rely on gicv3_info.nr_lrs.

The only reason to use gicv3_info.nr_lrs is for backward compatibility 
i.e. when the user forgot to set the config and as a result it used the 
default value as 0. We don't want to allow this for the safety use cases.

>
> This would solve another problem where you don't sanity check that the 
> system effectively support CONFIG_GICV3_NR_LRS.
>
>> @@ -121,7 +123,7 @@ static inline void gicv3_save_lrs(struct vcpu *v)
>>   static inline void gicv3_restore_lrs(const struct vcpu *v)
>>   {
>>       /* Fall through for all the cases */
>> -    switch ( gicv3_info.nr_lrs )
>> +    switch ( lrs )
>>       {
>>       case 16:
>>           WRITE_SYSREG_LR(v->arch.gic.v3.lr[15], 15);
>> @@ -178,6 +180,9 @@ static inline void gicv3_restore_lrs(const struct 
>> vcpu *v)
>>     static uint64_t gicv3_ich_read_lr(int lr)
>>   {
>> +    if ( lr >= lrs )
>> +        panic("Unsupported number of LRs\n");
>
> Do we really have to panic in production build? Wouldn't it be better 
> to return '0' and maybe use ASSERT for a crash in debug build? Same 
> below.
You are right, we may not need this. One option I am thinking is ...
>
>> +
>>       switch ( lr )

switch ( lr & (lrs - 1) )

This ensures that we do not hit the unsupported cases.

- Ayan



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 10:00:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 10:00:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247534.1546106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyRyP-0005ew-8g; Fri, 06 Mar 2026 09:59:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247534.1546106; Fri, 06 Mar 2026 09:59: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 1vyRyP-0005ep-5R; Fri, 06 Mar 2026 09:59:57 +0000
Received: by outflank-mailman (input) for mailman id 1247534;
 Fri, 06 Mar 2026 09:59: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=kfUi=BG=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1vyRyO-0005ej-IV
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 09:59:56 +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 37f04371-1943-11f1-b164-2bf370ae4941;
 Fri, 06 Mar 2026 10:59:54 +0100 (CET)
Received: from BN9PR03CA0433.namprd03.prod.outlook.com (2603:10b6:408:113::18)
 by MW6PR12MB7088.namprd12.prod.outlook.com (2603:10b6:303:238::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18; Fri, 6 Mar
 2026 09:59:47 +0000
Received: from BN2PEPF0000449F.namprd02.prod.outlook.com
 (2603:10b6:408:113:cafe::17) by BN9PR03CA0433.outlook.office365.com
 (2603:10b6:408:113::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Fri,
 6 Mar 2026 09:59:47 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN2PEPF0000449F.mail.protection.outlook.com (10.167.243.150) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Fri, 6 Mar 2026 09:59:46 +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, 6 Mar
 2026 03:59:46 -0600
Received: from [10.71.193.38] (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, 6 Mar 2026 03:59: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: 37f04371-1943-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qFIRSb8dOb6VtGdXUpOdD7jrgdiAyBPknFGz/gpKUW7+Xg613+WPw2DdLQNdAYOidBUnkS2prE0r4tj/pDnxd5/M8dBqCY7lbnz6V41H7zmOZ6OOuAuINACrJKB+NMXA3QyAAAV5OFJELVrdx2nTVO93NYkbS6dok1SJJatnoZFv7+PZ/+O07sqiyTH8M/dycEN9yiWKH5Ri7AIPxDpSXwSP+KmLPmbAniRObK5b2ZqS10bSqr8r80M9CxLyVLDwcMmJsk4mJ6hKNOfBMSzwjjHR3/oO6Og8Taj23uO6uPBz6GPOua9T36kik2KE37Gzowwax1KHjeLDMoB3pQq2JQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YV9g7yqxFPl36v3hNmUDn+Q7GAWHyxK5zVvi2luVp54=;
 b=jw44Osxk92Ee1Vg7zbFpnnOkcc3+Z99TVvSPs22zjUaZ68/8cQYruN4ypL+elDiL5O+xxYDaD7poc+dQpzy7vDkmpMUZS0VcxYmaeXXgSHGqCdwOeLqsp/bp+YW7BbKBGsSXsrWoZ7y9vB9xz6vbGmv4XJK9RvQFMYkvigs6scKSHzZrk+h6wgWoYS88ctpJdXIrrpE3vwWg6gd4s5PQ4lP/RNQzfRwCP7Mo3xesaugFL8ePkYhH7ff6eXpo1xUAo2QjH2Au6+5ESimBwHxr1tYZXV4FzIGJ9bnwVSJ7wvEKOk6veXQi8NHacssCkj1vY2QtfHsRsY2Gz90En5bGSw==
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=YV9g7yqxFPl36v3hNmUDn+Q7GAWHyxK5zVvi2luVp54=;
 b=amF+t4T1YeiEIX2xKPkxeI77IoKsCO1BWGt6dytJRdlLudi7kaxfqGIyXop4Ga9fQmrFCXbn2SJXbU1FbObPIAb6vHsiJOJb4zp9HrJGkf9lOW3U+JYHjXLFxUYdwop7+S5mNXRHpFqdDoBmVCYcZrP4aACtbjZOy4x0aj2tBwU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <a28b7631-f760-44d1-ae66-3f957e9b04b5@amd.com>
Date: Fri, 6 Mar 2026 09:59:45 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] arm/gic: Optimize lr_mask type based on GIC version
To: Andrew Cooper <andrew.cooper3@citrix.com>, Ayan Kumar Halder
	<ayan.kumar.halder@amd.com>, <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20260305195745.2595017-1-ayan.kumar.halder@amd.com>
 <4d81d177-f1ce-49e6-8a40-fd16c0b4e0b9@citrix.com>
Content-Language: en-US
From: "Halder, Ayan Kumar" <ayankuma@amd.com>
In-Reply-To: <4d81d177-f1ce-49e6-8a40-fd16c0b4e0b9@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: BN2PEPF0000449F:EE_|MW6PR12MB7088:EE_
X-MS-Office365-Filtering-Correlation-Id: 904d0655-39d5-4101-3659-08de7b671950
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|1800799024|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	UOZEYcZvcHZJkq1Cj+5RkdSldx9NvVcb+0f16/ZJZMpUyWNWFqyAxCjfN3iY+vOyoaiXvg7ooZ51CJrExJ03GDVSZOs3m61I1P/ArLnz9KBFlmU94i7x3190S5HD9YhZwjJJTGWdOOnLNsIY1OVJxdc+FWx78PJoJ/y4L1KB3L2bwSyuMKpqDS5UmUlwuCwT8vNDRW3IDQBK1ivI/01nkKdl8cEIpa+Xx9IhNLqufxsfZur7suarSiytzTJ1DpftpTg99muJo4m3BGf1vjeQwaBAiD9BtX76MaWLpfrdrF06oj9lRTop2Ggr+ipj31IgQ5+GXI/hu+GI6D1Jv+NFArQ5c0cVE89sx5nr48qUeqVr/B31kwR9auTsXQ0IM631mAVuUa/7CxRVlbAhnotKXmWn+c1mQ1LoVSXKRlF/Hw5q36JX9fqizTTR3RB8IJOomUcAvjdqgoxqB62IHjJWkQSWskTCjPeC9dg5yvGnH4Z9E8kOa+jX0USO+k8OW5P031lkatI6EFHPqut4KINkcm3aGyQOlLR2s+BGUCwF3zC2xbAoA5RCew0RYuchoNVIc2uzXA91yvD3iiKGiD93mRNCQDPEsUN956jINdBQyAZb6AZqqKpxBY9dwKfIicnpdG9808ZClKsFcLECAVMxSaNlkJ/ze2gXfn5PbT8ALLoAPpbwQasrfJlUg8qQjXNddJ/qEI1Zjqd8ENZdrSMbcrHw14/MUtMWJbvxl6Dj0vHhN+9bha0eGkC2eN1HAnFKeqdBVQ4fRGyVJq424MPEOw==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	uh65oRktFDWH0LCBwlAYQTiWWG1VXDU3L7Ik9hxztVnrD6QLgsnvlFUH/E0eYLsJMhfedFLz5JjOazGwcEt/IbpONAt1ejhiBgrcy++k1eKC+a+duLl6LSLsIwQy5I2XWMvyazdQiBvkE5XzYk3Ei3T2QT+bhu4JwH4Du2I5Vo7Ml9NsQ2I62nwHOgeJ24C93RjthdxWh0tjxKSeeho3OD3IfnU7Z0NbUeipSlvgUGu8didc4l3ltR+Vl7Gk31lWNLyiQwdEJxIV68wTY4ADPvz170TE9mIXXgGE5TzECFphx5w53tBxY6HJ8V9TFTVWXcBevcmGCtORjY+LE4004OEtdoxn9rFZObVCA15h9qG1bYXARRC/SM9hIhs4yXFZU6R7G/fugPM6X0UwdU2MM1qT0kGd+VoMPY9Az9cerP78SoRh0KekgVvu8LbTlIlJ
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2026 09:59:46.9301
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 904d0655-39d5-4101-3659-08de7b671950
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF0000449F.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB7088

Hi Andrew,

On 05/03/2026 23:01, Andrew Cooper wrote:
> On 05/03/2026 7:57 pm, Ayan Kumar Halder wrote:
>> The lr_mask bitmap tracks which List Registers (LRs) are in use for
>> virtual interrupt injection. Previously, lr_mask always used uint64_t
>> (8 bytes) to support the maximum number of LRs across both GIC versions.
>>
>> However, GICv2 and GICv3 have different hardware limits:
>> - GICv3: ICH_VTR_EL2[3:0] encodes LR count -> max 16 LRs (4 bits)
>> - GICv2: GICH_VTR[5:0] encodes LR count -> max 64 LRs (6 bits)
>>
>> This patch introduces conditional compilation to optimize lr_mask size:
>> - CONFIG_GICV3=y: Use uint16_t (2 bytes) - sufficient for 16 LRs
>> - CONFIG_GICV3=n: Use uint64_t (8 bytes) - required for 64 LRs
>>
>> With this, parameter 'lr' in gicv3_ich_read_lr(), gicv3_ich_write_lr()
>> cannot have a value > 15. Thus, it should not possible to hit the
>> BUG() in the default case.
>>
>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> What does this actually get you?
>
> Because it doesn't actually eliminate the BUG()s you reference.

As lr is obtained from lr_mask, see the snippet from gic_find_unused_lr()

         for_each_set_bit ( used_lr, *lr_mask )
         {
             struct gic_lr lr_val;

             gic_hw_ops->read_lr(used_lr, &lr_val);
             if ( lr_val.virq == p->irq )
                 return used_lr;
         }

If lr_mask is 16 bits, then used_lr should not exceed 15. That is my 
thinking.

>
> If you really want to go ahead with this patch, then make a  lr_mask_t
> or the right type and don't double-code everything.

Ack

- Ayan



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 10:02:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 10:02:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247543.1546115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyS0v-0007D1-K7; Fri, 06 Mar 2026 10:02:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247543.1546115; Fri, 06 Mar 2026 10:02: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 1vyS0v-0007Cu-HG; Fri, 06 Mar 2026 10:02:33 +0000
Received: by outflank-mailman (input) for mailman id 1247543;
 Fri, 06 Mar 2026 10:02: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=aOhc=BG=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vyS0u-0007Co-Cg
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 10:02:32 +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 9591fa2a-1943-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Mar 2026 11:02:30 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV9PR03MB8440.namprd03.prod.outlook.com (2603:10b6:408:377::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Fri, 6 Mar
 2026 10:02:26 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9678.017; Fri, 6 Mar 2026
 10:02: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: 9591fa2a-1943-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UHRB4tOHW8NkU8SE62QanmkqP14nmWvWPwhtYJo9PYcBWmrP/WBPen2G8OiE9NCMsadBBrMskVWsohTVjGE4eeRCSl+IJvl7Mox+76635D06frJmXILETd+VCxbG67Q5NFUT7N6R4QzBp7h7K8wkHs8QBaiAx6GoF4PN3KO8Q/Uxu5c4JCkcLTbBx/IctBXuKj1bP8h+Gay2qb8b7QEXKdRHc0Isqmie///IU6/tNHe9epuAYr8WVL0/jalkc5u/yeJ7A88QwJvcIemsuock4jv9KuI6xEW0ar1VC7AQULMIUqz9z2kg4sN9eE3eU0FY+eMSYgJSnHSA5av6t9iemA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=D5hzusVCfC0hMW+mRZ01vIshdf1XTGt3KIlNr3V9kfM=;
 b=Mpt85slZvWSkbZdrm/zE6NTLI8h06TgORQkLwSgBrXd+xQKDLet/oiL9xI08sASUzF+VAtV7sR4uLdlj2VpY7aJUL08fg4QOL7Am251nbKIWr9E1/a623r+33Za4jStaAF4bqYQWm7w5k8+u3HIJMGWVvHNxjvU6/+nFQeWQ+o5xZOmdRWFrxbSkTbJMRMb6p4mGQmhcJ546P27FPKfQTmJrGDAiA18wlP8l8t8Cj7P49zG6Xy//KVtgHPS2ty9X1KeTBcXvSNutLe6P0+6pcRD1KOe6Rs7rRZglEgjEkXBq897GrEwNhxL0Iq+VaLwxNrrYvhR7FUDfk8OoZPrfNA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=D5hzusVCfC0hMW+mRZ01vIshdf1XTGt3KIlNr3V9kfM=;
 b=T+ElyaP8PcqFI08SQIyRJwEt5nDVvJ38yDzB+SJeMKuJxnEKaVQA8kmSP1c70nGegUcSCPsUGagELJ6Z+aiuVDb+LSlkUB7M4RFCx5TaFXZcriqWqjB5ViygtsfjAwv01APnL0NSJxiYSOszNOE11pTc+xpFkWpZFGq3i6LHeSE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <03c91d39-86af-43c4-a14f-c6514b778344@citrix.com>
Date: Fri, 6 Mar 2026 10:02:22 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [RFC PATCH] arm/gic: Optimize lr_mask type based on GIC version
To: "Halder, Ayan Kumar" <ayankuma@amd.com>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>, xen-devel@lists.xenproject.org
References: <20260305195745.2595017-1-ayan.kumar.halder@amd.com>
 <4d81d177-f1ce-49e6-8a40-fd16c0b4e0b9@citrix.com>
 <a28b7631-f760-44d1-ae66-3f957e9b04b5@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <a28b7631-f760-44d1-ae66-3f957e9b04b5@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P123CA0075.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:138::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_|LV9PR03MB8440:EE_
X-MS-Office365-Filtering-Correlation-Id: 3c9f36b1-7463-4df6-9000-08de7b677843
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:
	aPXok5+vfju6rsWsidpcO989lkNYcwJ6dXSJTAY+bkTujqFj7sTrvTZyqed9sSWE78NLQJ37xoLPReD4Jptnm0NTXac5GRm5zQz9URdDf2iNXr7MsqvIF7QiS0Jw9OvkuBrvepr0nSjZhJQrm1h4JdmAFvkaZVa/EWGnr1DkZXYrK/SQbzRuLHccvZax71l0EVCiYt/jC6z954Lru4ovR9cq/ec64THCCbVI1lUEQire70/Bzajdx3cEv6/Du9VOYL19otNupBADKbw61B7XgoyaIq5qLy6o8yZE0s8C+KIEVeG3hr8K7sVz+Jc5FmsmPDg44CI+bUDuZCzKXJvMpExFFr/l5O1tOYO27hiBfwl+eda4QVLUcJdAXlOYrLW02+SSGYvi16gDIaYXEVxORQYuM/7dVpDbjEpBxtUMmk6dZu60XPYGJnovmri676o++jtk2A35vjXcbJlvpZ7DORM4HwlzYe4qiR4hCaQgCvqFexSmavLmfEyc0YmVyseEqob7DC1Vv/3RRxp48p/GErAPRGYVriBy9SbyU8Oc4grsGb0GsEFm7qaFXo6rtNVLhXFIupoKTheFBPNhIkB165nSuGe9I/7EjcZYtQHT0XL7B5QfKEZNg4SE+HISr0ZnuA8hg/5hvnev4DP1Zk8RLjseQSE5pSBiwo5IjMONd/06gUPu7JZfpdABjZKK/YsyeIIMcdO/nvCHbDhdoEWA4V8oKAt9uUAAgfaPHL95MgA=
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?aWlaSERWall5MCt3Qmo5WnZQTHVCeUc4Njg0MGNMenpUREJPTFpxNURFeVFr?=
 =?utf-8?B?WWY4V3hyN0doek4xcGxjZ2R1cG1BVGVQV2xudmp4NlBQeVpzOVpxMDg0NzM5?=
 =?utf-8?B?Y0QrTkQwdUVoUWVLOGJVOFNkYzFhN2ZuOWE5ZDhpai9vTnFyNlpZZTMwZGpH?=
 =?utf-8?B?b3lJZHNjZUNGcmg1Zit6TG94Z0hzOFMwbEQ2djZnY3FtbUJ1dzZ5aHI0NVFi?=
 =?utf-8?B?b3hYbWdOOGZ1UWlqTnZFQlVWSEovS3JiSTV1VkVYVUdvdGwrK2xZd0JLaXZ5?=
 =?utf-8?B?dHhLcm5SYlliZTNLR3pLNTg3UVRWL1Z3aE9jdmVoTWZOT0lqbkxZUm9mMUVp?=
 =?utf-8?B?d2Zmdm9QRVRzbFpFN1hjRk4vdngvVTRSNFJxekJVSkMzcjUyTjlGMmdKTUdm?=
 =?utf-8?B?Z1lWUnM3bUJlVlRFL2luVXB6ZG4zNVZ3bGE1VUgrQWtOY1Azem1XaTdENDh4?=
 =?utf-8?B?eXVZeUNWTytLRUp2UDVIaXpGZGtGV0RKcFZkQ0hHRWZPUk9HR3VkWFZMaWJi?=
 =?utf-8?B?bHlCQjU3NVZsVmFuM1RlMytMbTZ0cDNycE5ka0k2SG5Uc0NIYVNnYmVWVko1?=
 =?utf-8?B?Q0VUc2NiSGVxalk0MTZ1eDU1S1F0bFlNSkJ2QXM2K3M0MDJ1ckw4b0VWM2E2?=
 =?utf-8?B?VEZNWFFmSFNaVlJwUnJXNG9aUng3T2xqMUsvY2o1ME5hTS9zRU5sQnRNNncw?=
 =?utf-8?B?ZWVwaWRuUFhRUk1nZjFJWlNpanVOTmVhQUZXeFNZY3JpRnlFY0RjQkZtSUF6?=
 =?utf-8?B?dCtjamdhQkJXbmZmTEx0TmJnbzlRZWhZamRPcDRLSmY4Q3REMjBHZm9NQ2Ro?=
 =?utf-8?B?ajk3Y0kwR0F1d21HSDdsbGQ3OVZxTk9UcWlqNVAzSldYOHJiQXU4Y2UwNG8r?=
 =?utf-8?B?TFhodGplazVFN2hCMUxQcXRlU1pkSkRJaERPTVJpY04rOGhQTXo4TVNyS0dH?=
 =?utf-8?B?UzR6R3dvM0xKVGZYbzNYZktyeWlRS09TYzVjMko5dFRMczZVNXhkM0F5aXg0?=
 =?utf-8?B?M3hqeFgwdExtQXhZZVhSUDJ5anE4aGhXSTRucDF1UDR3N0cwNnc5UlN2dlF5?=
 =?utf-8?B?dUJCWnp2V0RmOGcwY1NIbTNONHliQXVsQUZiQXczYi9oVXpIR2lRczE3T1FR?=
 =?utf-8?B?Z3J6TTJZNGdUSmxBbklLc1hPdHVMY0xlNWs1RGFNa3JOME9ETXNsUm05RnFi?=
 =?utf-8?B?SFhWTFhrK3orUGQ5S0JLR3lMTnBtcEVPdFNvSnJBTUpnSHFmZDg0K1lXcm5K?=
 =?utf-8?B?aGVXeXZBN2Rza1FtY2xHNlFTa2FqY2MrSWdDZ3lHYkFKUmQ1a2hGZHUvSnVm?=
 =?utf-8?B?TFk2cFlIdXQ0UEpyejVWOUxPOGdiMVd5SnJST1l5YXllclB3dks1M2RHSHVU?=
 =?utf-8?B?NHJNRlUxZlBXZ29zWlplQ0ozb3F6TFpIMDRXSDBLanpaNFBoYWRzeDlVZVBE?=
 =?utf-8?B?RmdpMmJZUlZDVlZJL3c2R0ZuMGNVSEZQSCthRURxNkQyL0JJdDNkRi9IYURG?=
 =?utf-8?B?UVBnV3ArZnpjZ3hhSWNqYUMwL2tqWWRLNVNTVzJwbFVUVldxejUwUkZIUGF4?=
 =?utf-8?B?UjV5RmNmcGdERzNTbUNtS29tSGhFUElLZytHODAwY3J0ckhKc1hOdHNvUkN5?=
 =?utf-8?B?TVBBdzVrSGZrUEdRT2licTNYQ3hKaEloM2VHSzNCUnorVlI0SW9QY3NaVzZw?=
 =?utf-8?B?UE41WkhaelJQQkJCOUkzSnA4QUMvSjFSMjJOMEMvOFA0c0hobEtvbE53a05z?=
 =?utf-8?B?T0NQa2RLOU9tdWJYUzYrdjJZS0FOblp2UEJ6eTA5TXZET1R3UUZvWk1nY3g0?=
 =?utf-8?B?L3U1V2t5WnRUSVAxTHB4dWhFckVuME9aelBwMDR5dk5HZGhNS3VHakk2Ykc1?=
 =?utf-8?B?ZGVsbU82ZmRLL3pjT2pGdFVxdXVPVm0ySmtQdjFUeVhzK2xxckM5K21SZUFK?=
 =?utf-8?B?ODdCZHZIRHpzTm9NaTJYRUt5NStPNm5vdFpkckdkUzV2czNPbVd3amUrRUlv?=
 =?utf-8?B?dWlpR0VoQXNtMEFqRkRzaGFMUzFJSDFmR0RDU3A1aHZzUk9EOHEyc2l6emxC?=
 =?utf-8?B?TTh3bjRZS3RyWGl3dmJ1Tnc2VFNYcXdTR1dNbFBuK21Ub2lNbi9UNXpIRGFB?=
 =?utf-8?B?M1dkeFRHTEtnUWliYitKN0FaZFdpdXlhS25oRGtXUmVobDVPR21PY1BZeStu?=
 =?utf-8?B?WFErMVhQSTNQZUhnZ1RQK1lGUHNkb0pOVHgvT01rWlJLalFINWpyY3NRYlQz?=
 =?utf-8?B?NU1xcGFwalNjcVNObDhmWDNqSTNGS0lsNXR6TFJtTVJ0MHRJYjBtMXFaYnRB?=
 =?utf-8?B?U21iMVg2TmJ0YkFJY0lwQ2VIYkRrLzJLUXdFMkFHS1VCWjNrU1Mwdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3c9f36b1-7463-4df6-9000-08de7b677843
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2026 10:02:26.3661
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 0HPPeqjwUpsb930aQ/lxv95JigdMnuihVkqegyRmRX7mHL89K87uXI6bSEGMc25SY2uwc70JBqrzVAmr4wh/C+bdnN4BOx3bt5VdCljlH3A=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV9PR03MB8440

On 06/03/2026 9:59 am, Halder, Ayan Kumar wrote:
> Hi Andrew,
>
> On 05/03/2026 23:01, Andrew Cooper wrote:
>> On 05/03/2026 7:57 pm, Ayan Kumar Halder wrote:
>>> The lr_mask bitmap tracks which List Registers (LRs) are in use for
>>> virtual interrupt injection. Previously, lr_mask always used uint64_t
>>> (8 bytes) to support the maximum number of LRs across both GIC
>>> versions.
>>>
>>> However, GICv2 and GICv3 have different hardware limits:
>>> - GICv3: ICH_VTR_EL2[3:0] encodes LR count -> max 16 LRs (4 bits)
>>> - GICv2: GICH_VTR[5:0] encodes LR count -> max 64 LRs (6 bits)
>>>
>>> This patch introduces conditional compilation to optimize lr_mask size:
>>> - CONFIG_GICV3=y: Use uint16_t (2 bytes) - sufficient for 16 LRs
>>> - CONFIG_GICV3=n: Use uint64_t (8 bytes) - required for 64 LRs
>>>
>>> With this, parameter 'lr' in gicv3_ich_read_lr(), gicv3_ich_write_lr()
>>> cannot have a value > 15. Thus, it should not possible to hit the
>>> BUG() in the default case.
>>>
>>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>> What does this actually get you?
>>
>> Because it doesn't actually eliminate the BUG()s you reference.
>
> As lr is obtained from lr_mask, see the snippet from gic_find_unused_lr()
>
>         for_each_set_bit ( used_lr, *lr_mask )
>         {
>             struct gic_lr lr_val;
>
>             gic_hw_ops->read_lr(used_lr, &lr_val);
>             if ( lr_val.virq == p->irq )
>                 return used_lr;
>         }
>
> If lr_mask is 16 bits, then used_lr should not exceed 15. That is my
> thinking.

Sure, but what does that actually get you?

It doesn't get you a compiled difference.  It can't DCE the boundary checks.

So right now, it looks like it's complexity for no gain.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Mar 06 10:09:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 10:09:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247553.1546124 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyS7g-0007z1-AG; Fri, 06 Mar 2026 10:09:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247553.1546124; Fri, 06 Mar 2026 10:09:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyS7g-0007yu-6X; Fri, 06 Mar 2026 10:09:32 +0000
Received: by outflank-mailman (input) for mailman id 1247553;
 Fri, 06 Mar 2026 10:09: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=kfUi=BG=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1vyS7e-0007yo-Q4
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 10:09:30 +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 8f73b3a2-1944-11f1-b164-2bf370ae4941;
 Fri, 06 Mar 2026 11:09:28 +0100 (CET)
Received: from SJ0PR03CA0150.namprd03.prod.outlook.com (2603:10b6:a03:33c::35)
 by MN0PR12MB5713.namprd12.prod.outlook.com (2603:10b6:208:370::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.5; Fri, 6 Mar
 2026 10:09:25 +0000
Received: from SJ5PEPF000001F7.namprd05.prod.outlook.com
 (2603:10b6:a03:33c:cafe::37) by SJ0PR03CA0150.outlook.office365.com
 (2603:10b6:a03:33c::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.19 via Frontend Transport; Fri,
 6 Mar 2026 10:09:24 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ5PEPF000001F7.mail.protection.outlook.com (10.167.242.75) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Fri, 6 Mar 2026 10:09: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; Fri, 6 Mar
 2026 04:09:24 -0600
Received: from [10.71.193.38] (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, 6 Mar 2026 04:09:23 -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: 8f73b3a2-1944-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=q2ANtsmAhGm5saNCVHZhxaIZAha0vB0Iza8vb455VHPsvnQw0vupi0tJp3fkRMmiikjcIayxErN2PQTH2tG/DPik4xG9XPVJKJmZHDl42sSKA1skYdi4e2JnCKm8NWyVwHH50c+yoMcugB8kbFmPt6F1rAOdeCs6KCympEEZvXetlAbrrLzZgldQc26HKyRkCpqc0vPDgPOCvA5Tas4sq0FGPPKE7Z2EO1OvuK8v/4ZBFjAUu5dFkUr1M58EQQUOmRQ4zTVr091EVtkHKFs4yXxwCEUL74/jFoavD+muuzvNHgtkXXo41ANQGWYsHJKkrSyQDuUIGQnoHnQxcX8vnQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BTl/AVZ79RDhARblpBSb1gPaxCHhIt1OecVzUzfMbPY=;
 b=gBlRBtmkMnwMLMA3BcrvrlzDWZlb3ofSZtwXSCS56cjiRjrPvuhHGQJH4kujXFOcBQjwLwN826NE++oQJKCfGLyrvyJm/BRoxgv+SOwrZYUx5eXcBWLuxSHIc9CsHx/IiINp1fUDhOmz8PQpCspExlqSPTUPnTm7FiqA4cZwlCI+UNj8h0oRJaJF+9jc1+9CsmP+C7CnsMGUofJAAjMemPFvu5tDoLK875HYKJA+yf9HBJxI8A1hBW1OtrksNPWE6PSJe7Kf1BwpkWNp3/T7JmHmYmilRMCO2Xi0mDQ2Yi4uh/OdroK8ySdYVIipMDPuWxj17sZ5iVkq0r2b1Om7Lg==
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=BTl/AVZ79RDhARblpBSb1gPaxCHhIt1OecVzUzfMbPY=;
 b=B7wvYOki1jkH0FFBkCmK3idhygdwzME+0YEQc/P4/Wni1GSQApgXT3VbgmnKV86jYnPzPHjC4IvdQ/sH5SR4sK/W7wZ5rh5Ywm8sihBQssjkJQQLjcQAYJ6h3jGj9AoNLqTPauoFn88mYLsEOKw9kYYsPgi51/v4XLIy3qmkT/I=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <0f775788-2637-4cfa-8ab0-a1e60d4d470b@amd.com>
Date: Fri, 6 Mar 2026 10:09:22 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] arm/gic: Optimize lr_mask type based on GIC version
To: Jan Beulich <jbeulich@suse.com>, Ayan Kumar Halder
	<ayan.kumar.halder@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>,
	<xen-devel@lists.xenproject.org>
References: <20260305195745.2595017-1-ayan.kumar.halder@amd.com>
 <9e222b10-f63a-4a5a-981c-36c438e3071c@suse.com>
Content-Language: en-US
From: "Halder, Ayan Kumar" <ayankuma@amd.com>
In-Reply-To: <9e222b10-f63a-4a5a-981c-36c438e3071c@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001F7:EE_|MN0PR12MB5713:EE_
X-MS-Office365-Filtering-Correlation-Id: 0f4d6043-b437-40b8-7879-08de7b6871a8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700016|1800799024;
X-Microsoft-Antispam-Message-Info:
	DS+jI1d7Ji7u6WqtxCicV/VRsvlXPBte6TlhInjE97FCFlWUzWjZXP6BGyJz/4965fMK/MwVNJjsvaifZH86Fgc1qbPGXc2Yn1gEURODOClR87MJq4L/3ki20yk/MbbqbjV02IcAoz7WZXAjHmXO+/Rs4avxTwsGICVFgV5xXblXEt76d++oouTcsVMrbWjC2qUjzw9TyW5atBcF0FKMtOBbPkvGeYrBZmHl/pSIAjYGNm2X7Pn8J2J+A1AaM0MKxK42vi/wLIlcqr3sE8FMxd0EDnswtN1W/j3H5zZHq8v/nIuDXo6hhzUV3Oj6ug02pNTIW3JxYz0Xwyk7tg8ws4r793OmEmugS9MJIfi+SKPw/D7QVqeBC6onRD28JuIK3eUhZFKzztQAgz8/wV4A2M432dSCPZ70EUZ2SQbWyJZlq2LaBvqQWRNI6psRZ56V0x2WP/FckpEPX/XgPb/N65XZEKjdeRvazU+b/u2+bYHcT1bXgAp88TJPjzqmzecH4OL75mFWVhiqlkDzUwLA5pgkBM3LHHpXYEOEoIahfKuCqVYwYbI23/P8bxSZihbF1Nj5v88UWU0yT/Wg5LV16M6sZGebZLYe8zjPjMmJ7F6b4Gvq3JA4Rmcs8oR4yzAjyGBTE8bxAQOTfInxajLTIUZ9IxD4FPZUEuE+WsZf3+QDs0tj3H9lN//TZUBBVzzLz3Na5/e7QEKmudLu78I172vA6qL4hy9jw/4LDGNiKIFka0prPORLZft245aJHPZb/56sMSEF7Xyx4OuH5UXt1A==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	EvgVA6yRrkWj8X1mFE6dQZvWxQ+JgOTlASpKKC/TN6rrkgvYaEmKdD3zNHI+MWwZTb36NeiZZCdwhPAm8ky759BLW1WojZ9Y0RcQLYPATiFJA6b3MXIeX+klhV6Hs+Ni83gASdk2e6KU2yOurhMEl0eJ6NnZ9tacOuSddaVsIn/Cap/M81zRMEsutqHbXXoUjF/lJCOEJgHM1Q3Nj/uOHbHXSRGS7HPEG/xy1j2qeWq/DpWsCI3EkBCJt8/eqlBqZjwhF9NJa1+ieKK9eFbs1ZCdi8YDGSLnmju5+E12j6IybORLCe2J7Bnx+TH5jnrDlQ//XQJDye3cg6nAPTx8AeA1DZ24slU58BVazChtTm5xz+IGfbHkNhKHnF6b4zcBXtXzEfg9AeEy4BlWm8j+SD5jGGceymDF5LBSNqQ7OH/ME3P3D+ksOI4gbthxSGc7
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2026 10:09:24.5774
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0f4d6043-b437-40b8-7879-08de7b6871a8
X-MS-Exchange-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:
	SJ5PEPF000001F7.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5713

Hi Jan,

On 06/03/2026 08:49, Jan Beulich wrote:
> On 05.03.2026 20:57, Ayan Kumar Halder wrote:
>> --- a/xen/arch/arm/include/asm/gic.h
>> +++ b/xen/arch/arm/include/asm/gic.h
>> @@ -237,7 +237,15 @@ enum gic_version {
>>       GIC_V3,
>>   };
>>   
>> +/*
>> + * GICv3 supports up to 16 LRs (4 bits in ICH_VTR_EL2), can use uint16_t
>> + * GICv2 supports up to 64 LRs (6 bits in GICH_VTR), requires uint64_t
>> + */
>> +#ifdef CONFIG_GICV3
>> +DECLARE_PER_CPU(uint16_t, lr_mask);
>> +#else
>>   DECLARE_PER_CPU(uint64_t, lr_mask);
>> +#endif
> But GICV2 and GICV3 can be enabled at the same time, at which point you'd still
> need 64 bits, I suppose.

I see. However, a safety certified Xen which is meant to support GICv3 
hardware, will only have GICv3 enabled.

IOW having both GICV2 =y && GICV2 = y is out of scope for the safety use 
cases.

- Ayan



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 10:18:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 10:18:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247566.1546132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vySGO-0001JP-6v; Fri, 06 Mar 2026 10:18:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247566.1546132; Fri, 06 Mar 2026 10:18: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 1vySGO-0001JI-3y; Fri, 06 Mar 2026 10:18:32 +0000
Received: by outflank-mailman (input) for mailman id 1247566;
 Fri, 06 Mar 2026 10:18: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=kfUi=BG=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1vySGM-0001JC-Dz
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 10:18: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 d13999ba-1945-11f1-b164-2bf370ae4941;
 Fri, 06 Mar 2026 11:18:28 +0100 (CET)
Received: from BN9PR03CA0610.namprd03.prod.outlook.com (2603:10b6:408:106::15)
 by IA1PR12MB8312.namprd12.prod.outlook.com (2603:10b6:208:3fc::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18; Fri, 6 Mar
 2026 10:18:24 +0000
Received: from BN2PEPF000044A4.namprd02.prod.outlook.com
 (2603:10b6:408:106:cafe::87) by BN9PR03CA0610.outlook.office365.com
 (2603:10b6:408:106::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.23 via Frontend Transport; Fri,
 6 Mar 2026 10:18:24 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN2PEPF000044A4.mail.protection.outlook.com (10.167.243.155) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Fri, 6 Mar 2026 10:18: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; Fri, 6 Mar
 2026 04:18:23 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 6 Mar
 2026 04:18:23 -0600
Received: from [10.71.193.38] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 6 Mar 2026 04:18:22 -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: d13999ba-1945-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JsMPAvc714BoDP31KokAY6Hchxukt089s6vIp/SqO/DqMWGuVKwIiH1eQqxcUMp+I5LTQw4MTZ64LKhhIF88p4AlGdNN3mHt/UxC4FEZvcTJMWZXQT060MSFu1i030MlR9rfmUkRhig3iPoRKkEwRApmxyA/CFq+22iH4Y9hvOmcwCamqEMy4ygbhJCGQGEfNbClkIMdAe1smXpLxMC8YpuM85G4WnDuxjzpMSNp4vue4GSxmMVD2gz1irHBIwSOlN3d6C8TKoSeYqOJrhIdRzNxwkPMpIbbhzyDZCk2xARJJjcfAgMsyVajMTM9GuGrm79N0y/udnOuI17rl3qBOQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JHJpJPaHeMHdAig7u/9nZjXOciwLCEHjlAbgze5OIEU=;
 b=E2bmtWgfoGARZLv+97nr56GW0YPLKXWOWWErD2ewoVsyVEblMyjh5YKOu5DNsUVwM3iPVep+ESEWnPOSOIfVpL1sodZBjc70VtbMTJHzvh4GLmEorPlA2qdiWC/p9zeXB/iSyX0oieOaNMDJIf0pRQRUuLg3q4Z+HkKiVjXQ4m89rzmObEpu6LS2oawS6yDXhhG1bkNlIvBYzlwTApoexAlnrqU/Bl/fKlmAayOua/aA8QMRZZhotciE5Y5Rb1aALENMIoeAqD2OLWGiIbEitcj+PbuNTgDyp3i9kzljQI5435nSreu+6poN2xmP0VNBaUTWlhZYc3F+NA8wcC5Jcw==
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=JHJpJPaHeMHdAig7u/9nZjXOciwLCEHjlAbgze5OIEU=;
 b=J+PwdjOBGUE9TcMCntrvBzGUNQlucsW3rZwMgwhIuMeGjn2yiE7ttG/pfBCnojFbzi7wnTXNT6Nsn7QIrODDxCbEbnnSV+ojZOcS2J1d8uN0mSm+4DzckkgXeE/x39Ka1X3uhX7GtP75fy0HDyaTWSPq4DdCzcTlq1Mpgu4Uui0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <35c87e08-9b4b-4d1b-841b-17273aca4ace@amd.com>
Date: Fri, 6 Mar 2026 10:18:22 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] arm/gic: Optimize lr_mask type based on GIC version
To: Andrew Cooper <andrew.cooper3@citrix.com>, Ayan Kumar Halder
	<ayan.kumar.halder@amd.com>, <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20260305195745.2595017-1-ayan.kumar.halder@amd.com>
 <4d81d177-f1ce-49e6-8a40-fd16c0b4e0b9@citrix.com>
 <a28b7631-f760-44d1-ae66-3f957e9b04b5@amd.com>
 <03c91d39-86af-43c4-a14f-c6514b778344@citrix.com>
Content-Language: en-US
From: "Halder, Ayan Kumar" <ayankuma@amd.com>
In-Reply-To: <03c91d39-86af-43c4-a14f-c6514b778344@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: BN2PEPF000044A4:EE_|IA1PR12MB8312:EE_
X-MS-Office365-Filtering-Correlation-Id: 339dfdcf-e850-4260-1065-08de7b69b339
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700016|376014|30052699003;
X-Microsoft-Antispam-Message-Info:
	DaXK4007siBxVnfx6k/XgrbTGfuN6teBRp51osLVNEdu3mCVQaj3axOUuD1qRb0D1mIs0hY/yBAyq+tfk/b1oREcD0y9qCFlsKXn+OTYKcMHxtvS2PGYCImK3de2ogOJQ1KnbRYxaKd6RGpzS/npa2YO6cT3GjveWQNojKgLNYETPxkS8LWxvcBD5idwasmRwRQsN/qHpT9obWNf0Ye4kV+AUgGuuWztqvP8LPQZFv+Ql+4bJnq72qAp2G50P32rDHTXk2pu4YRlMmXOSolj4RavYWPxZnv46m7Y5Ju3Cs9xIcTKWAQwJ6jOz8l4myShufiUsvssJ9oxUbI36wBOXaA+ZXGajzzQ+co6aBK93TWDjcTU9KNm59CAeotExWSY1WYXXgYSEyzGh4aESPx8D8hPvbrFNtq8DHITkKSyUSaeRli9SYco1TUqTyu3RvbBv/hxP4qdQkkl2PYhACSaHGomVeTJB/UeZkdWehaG+kbS9nOh9Qm8DGSJbuk39hc7e8UH1k5OZgbJKdsuGWK9rngYqt5ColdJCXsd0KdBr25BHZACb3FrSLQC3mzZ2LJdbw2zT9xudUIpI69rBaKDfbvbMTf3lt08YeROrYDmW+2QkkRxsh8Li25rnjeLXkzvVKfHhomoUjrvvtWGBTHx72vQmrrL+PyjCArlF8Uf3huYWpFNULDRKJq/TXyS69QR3SGqdb0MI5CA7BjtQVYWcLnldgpy2Xfi/1JmsMR9g/lmpL3V8beSFmDhmxLHbeBlhiAST33Gkbc8Qr1zHlVieA==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(376014)(30052699003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	NElyCCOjy9YVKapH6Kov+1jW3eb6JrYRm74fUikaVLKFcb6P2Ji9L4YaOgV3sFh6Bv6+tRF3Gx/ARz7oKyxo7BiG0UZizmARdkMoBTws9RZ1MJ/fyN9riPGWVwSDhha8YmoU80FGHdS5UmTK5k1tGB/CejRVyB7CVlsZuh/TpvoDylhAqN7VAKBJw6s/1HQPmiYIsgtWJAVFYDBihQ4oyPEcNh8W96BeJ1rFC11h6hxx2SmDhgvMG5bRqOIG3x9eKRclT8fMpT7QK+nJyLKSkZv/OKvORD2aVi640kiwXkf/5l9EEbdEVC5jDfB8S8KfAtNgrWJLDmNklidbZ0odA5/aelWkyI79qwCRFrqRBkjZzLJxdqWL92JEWNey/+ICSq6AFaXK9aan4le7o3sovwdhcJ8uavm3RrhP0mIFzzb81mnle0fhuHF0vxkwyVz0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2026 10:18:24.1402
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 339dfdcf-e850-4260-1065-08de7b69b339
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF000044A4.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8312

Hi Andrew,

On 06/03/2026 10:02, Andrew Cooper wrote:
> On 06/03/2026 9:59 am, Halder, Ayan Kumar wrote:
>> Hi Andrew,
>>
>> On 05/03/2026 23:01, Andrew Cooper wrote:
>>> On 05/03/2026 7:57 pm, Ayan Kumar Halder wrote:
>>>> The lr_mask bitmap tracks which List Registers (LRs) are in use for
>>>> virtual interrupt injection. Previously, lr_mask always used uint64_t
>>>> (8 bytes) to support the maximum number of LRs across both GIC
>>>> versions.
>>>>
>>>> However, GICv2 and GICv3 have different hardware limits:
>>>> - GICv3: ICH_VTR_EL2[3:0] encodes LR count -> max 16 LRs (4 bits)
>>>> - GICv2: GICH_VTR[5:0] encodes LR count -> max 64 LRs (6 bits)
>>>>
>>>> This patch introduces conditional compilation to optimize lr_mask size:
>>>> - CONFIG_GICV3=y: Use uint16_t (2 bytes) - sufficient for 16 LRs
>>>> - CONFIG_GICV3=n: Use uint64_t (8 bytes) - required for 64 LRs
>>>>
>>>> With this, parameter 'lr' in gicv3_ich_read_lr(), gicv3_ich_write_lr()
>>>> cannot have a value > 15. Thus, it should not possible to hit the
>>>> BUG() in the default case.
>>>>
>>>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>>> What does this actually get you?
>>>
>>> Because it doesn't actually eliminate the BUG()s you reference.
>> As lr is obtained from lr_mask, see the snippet from gic_find_unused_lr()
>>
>>          for_each_set_bit ( used_lr, *lr_mask )
>>          {
>>              struct gic_lr lr_val;
>>
>>              gic_hw_ops->read_lr(used_lr, &lr_val);
>>              if ( lr_val.virq == p->irq )
>>                  return used_lr;
>>          }
>>
>> If lr_mask is 16 bits, then used_lr should not exceed 15. That is my
>> thinking.
> Sure, but what does that actually get you?
Right now, it just gives me a justification why a certain code path 
(invoking BUG()) will never be executed. My aim here is to reduce the 
chances hitting this runtime BUG(). However ...
>
> It doesn't get you a compiled difference.  It can't DCE the boundary checks.

if there can be a better approach, I am open for it.

- Ayan



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 10:32:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 10:32:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247583.1546143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vySTj-00042P-At; Fri, 06 Mar 2026 10:32:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247583.1546143; Fri, 06 Mar 2026 10:32: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 1vySTj-00042I-71; Fri, 06 Mar 2026 10:32:19 +0000
Received: by outflank-mailman (input) for mailman id 1247583;
 Fri, 06 Mar 2026 10:32: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 1vySTh-00042A-Mj
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 10:32: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 1vySTd-008Cpu-2G;
 Fri, 06 Mar 2026 10:32:13 +0000
Received: from [2a02:8012:3a1:0:f0b8:207:419e:3d8a]
 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 1vySTd-001jf1-1V;
 Fri, 06 Mar 2026 10:32: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=n2AQlK3H/NFh5jofcWFAoU3IfOBmTD8L1HI07DoC2Lg=; b=rgh54blBDGiLEWYwioO3k4AFbF
	BjNOpd2hSzOraBZHZdYU59MTgiPfX+E4Dueu5z5fcCMJMrPZf8CcBF+uXjQuzKwLmNVQO4BBfehXQ
	OwH+DMTj+JYyncaDUZ+O5bJbC+FDQFU03tjQazMvcmzh9/HHLaxXJzfyA+9aqSs24juI=;
Message-ID: <c360674d-2776-4c0e-9d65-7d70d593e23f@xen.org>
Date: Fri, 6 Mar 2026 10:32:10 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] arm/gic: Optimize lr_mask type based on GIC version
Content-Language: en-GB
To: "Halder, Ayan Kumar" <ayankuma@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <20260305195745.2595017-1-ayan.kumar.halder@amd.com>
 <9e222b10-f63a-4a5a-981c-36c438e3071c@suse.com>
 <0f775788-2637-4cfa-8ab0-a1e60d4d470b@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <0f775788-2637-4cfa-8ab0-a1e60d4d470b@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 06/03/2026 10:09, Halder, Ayan Kumar wrote:
> Hi Jan,
> 
> On 06/03/2026 08:49, Jan Beulich wrote:
>> On 05.03.2026 20:57, Ayan Kumar Halder wrote:
>>> --- a/xen/arch/arm/include/asm/gic.h
>>> +++ b/xen/arch/arm/include/asm/gic.h
>>> @@ -237,7 +237,15 @@ enum gic_version {
>>>       GIC_V3,
>>>   };
>>> +/*
>>> + * GICv3 supports up to 16 LRs (4 bits in ICH_VTR_EL2), can use 
>>> uint16_t
>>> + * GICv2 supports up to 64 LRs (6 bits in GICH_VTR), requires uint64_t
>>> + */
>>> +#ifdef CONFIG_GICV3
>>> +DECLARE_PER_CPU(uint16_t, lr_mask);
>>> +#else
>>>   DECLARE_PER_CPU(uint64_t, lr_mask);
>>> +#endif
>> But GICV2 and GICV3 can be enabled at the same time, at which point 
>> you'd still
>> need 64 bits, I suppose.
> 
> I see. However, a safety certified Xen which is meant to support GICv3 
> hardware, will only have GICv3 enabled.
> 
> IOW having both GICV2 =y && GICV2 = y is out of scope for the safety use 
> cases.

If the patch is indented to be merged in mainline Xen, then you need to 
support the case where both GICV2 = y && GICV3 = y.

If the patch is not intended to be merged in mainline then it should 
have been marked as such so we can adjust our review.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 10:35:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 10:35:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247593.1546150 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vySWS-0004by-NU; Fri, 06 Mar 2026 10:35:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247593.1546150; Fri, 06 Mar 2026 10:35: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 1vySWS-0004br-Kc; Fri, 06 Mar 2026 10:35:08 +0000
Received: by outflank-mailman (input) for mailman id 1247593;
 Fri, 06 Mar 2026 10: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=1WzZ=BG=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vySWR-0004aY-38
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 10:35:07 +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 210814a9-1948-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Mar 2026 11:35:02 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BLAPR03MB5587.namprd03.prod.outlook.com (2603:10b6:208:286::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Fri, 6 Mar
 2026 10:34:58 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.017; Fri, 6 Mar 2026
 10:34: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: 210814a9-1948-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qqp6VyCrefGK5gIKZgPwOzkRUP0zKSM6+oMlQtWtiW4sckfn5WcD5M0wpU9moYLOSMdOLyANrZcwf32FxAO0a1iFrENsZv3mPx2/s9A8tvkdx92XL5iPPoGlqVnqeespN0e6n1fqhzdFRW3072Yf6G/aK5Y4bkPMGF+aDFE37jXHB/8Ji8h9ynw6d4Bxn4tC+IGCLY32Y5ZDoleEMBj+ywf37bBTlkFEEsUxizpTmvq5c4tEbi3gguaO7Wf/n0T3CzeF64SEr3kLtqGaDkNYVNKfY/5uFCtedxUoDCoE1kWIInorEVcxBfhJdYh0ONT+AI9XT7kDrK+ualGXV2QTmg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7Tci2VgEwyEMN52AZpLCVUTxgEFw2cVuPR8ixW2m7yk=;
 b=BmEwWNX0ypULMy1HH7O6EpKJM9AtLo4KpsEOh439hcVpHjr/U0W2Yxlb5hiT6gAZviURaT0MCy7E35/0WpflJaAVvpuKNjsTCRekVZo+Q/CrqvFlqzBeEMfd2+Eov98NUx7LsvvU4IQWr106ReffkHq31ScyKP4VrUq4/qADlJJcBPQQuGJvU7cf3HG37/40E9r4czR/iAoRH17n6u1FVHbzpOS2lu9cmY0zdnsYwip0X3R0RdF5zC8hXmc3ESW+vrgd7vublj3M/tp4B/I0WAT+ZAGZStaC2Bsqw33RqccYic7DESXceydjWLUcH6tyfYMMC6Gz1Tjdx1PZKUKg5A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7Tci2VgEwyEMN52AZpLCVUTxgEFw2cVuPR8ixW2m7yk=;
 b=naEOYMlAuT7Hf8SYvLLnYZ3/OYO/W2wjW1+S1AHCaqgef1T78V2bNeDZ0xL0i1BNgmc+12cBawGnqXZvsR7IUJfP5RWzEPUKsfVx5ZShEObio8fgWvbynKDrFwg7ezIj5cL35yJd4mNlMUvKFnSFwgjpgNTqtnfD+55hWYKZbrg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 6 Mar 2026 11:34:55 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v6] vPCI: re-init extended-capabilities when MMCFG
 availability changed
Message-ID: <aaqtz-fL3bl1wS8P@macbook.local>
References: <689dae19-f83d-463f-95d9-c39c15a4e45c@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <689dae19-f83d-463f-95d9-c39c15a4e45c@suse.com>
X-ClientProxiedBy: MN2PR03CA0029.namprd03.prod.outlook.com
 (2603:10b6:208:23a::34) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BLAPR03MB5587:EE_
X-MS-Office365-Filtering-Correlation-Id: 6106dc19-98d6-4955-55c4-08de7b6c0397
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:
	Lin1PyZLksNR6wA6NTU0WuFy4XXA3/zpZKQF2EEv/4fd4h93GYvvEoO7BSdg6uNBQXW0rdTSFRBY1M6HplEmtDJ0errh0rPbOc9s3H9tGJFVcMz4tAMHjaa4tdUYLs5h5Rj5Tb5fSKFj/ehWQ2nctDcDl/RAMf5AtDxC25qqligR8hzfgSdDu6m4KfbixI5ykFtz/ty7IxQczcpFsZrAMFTfYWPICPJ5M6oVWjF1h+moKeHO3AfOqfySfZXO6Dmv864N4bjVwNxu6TmR7sGesJ/c/cOK3KOLKfF+kMzRI7UTved47enW3jl6QLJkqAvPfHLgx5FwUfXmlPc3pjpHVQvE3uMGM8d8EW0YHEtSlbPR9ip9p49pOad5o1/3ClHQikXHvUJWvGPP3afJyHaxEchPwNjahlqskvtIfDxT4mnXxP6Lvp6BGlnmBjXtSP9keAIFDqibprkUmXt4UcfVlkyxFVmvfPTfhdOqzhPfyvRAr6UzotkkVpQWhDHIRhhWHrnaE4omBFph/C0KppwbWG6qSUfa6EF7O7iDPkg8sx/acmQBjFGX6sB23ldGxbVsVSGn+aor9zE3O49JAC0Ln33xkGJXJ+5+8TSLBBJyzzn07a6w18ahrumoD29BYf/UNbbmzMZ9tto+BQ94XBIKc8ykQY5yWVBj1EaQl2MRmuAWCYw/62t2GUQvxrWi9rDdP5DMf9WHcErg57SadWnnVAJ2/w9N/5vNb1mkjQ+klIs=
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?V3MwNDFVVVFPQ1h6YXNmbnNSQTlkWU1TQ21MbnlGeFBka25zalN4SzRVY0Rz?=
 =?utf-8?B?TjltcGh1Kys5RnZ2ZitVNnI3anFMa3BxZ1VvQ2tCb1prNmpxTVFWb3cwa1Ri?=
 =?utf-8?B?UXZZL2ZaUklmQWpGWFg1c0ozWjQxa01PSGJzOVQvZEVzYjlkQXk3KzdVZU5s?=
 =?utf-8?B?U1JROXR3QzB2Nm1HWXVLQ2RuK254QWNpUjNjbXdCMUg0ZXNPeE1UVjN6NkF1?=
 =?utf-8?B?dU01NGJoTFA5aGJTcjl6WTRQd1FWSWhOL3hRTFArTnlTYmFHckNXaWduSEZN?=
 =?utf-8?B?UTlrZnA2YlU5dzJHUCttSzNpRGVHaExqTGI3SXdhRFJ5L2RuZG5CUU13c1pV?=
 =?utf-8?B?OEtmMlFMd2pCalRVRUtoY0l2dDZZK1IwcGhIcTAyZFYya2lXMi90RWwxcHd2?=
 =?utf-8?B?dEV3bHBtSVdYNy92Y1VZVkFVY2dMTE9lZEkyWkJyYk9xTVRsNU5lcDlIWENT?=
 =?utf-8?B?RGJVbW8vbXplVGpqa3dkOCtEVnlSNFFscHVtMUJXM3BrMmQ5eDFGWUVKNi83?=
 =?utf-8?B?a3lVdzJMQXArVmwrQzd3aHlPbEZiRzcvOWM0cW9QbHBmZVFKemlXSzIvVldZ?=
 =?utf-8?B?c05DMWRob1d4STBxazFqT00yeW1RTkRyL2lobk95SThDUDFxbmErVGFMTjF1?=
 =?utf-8?B?ODVSbExEeTdVUG4rUmpCQjdtT1c3T2FsTjIxeUdOSTNUMmpSc0dIS0xseXFE?=
 =?utf-8?B?NjBuaHFpWjExWlFWQWk3ajQ0QkV4MERJcjVNTTcxOTF3S2VReGxKZXhqMlpr?=
 =?utf-8?B?Z0pPR0hpRFVZRCtlamJGTndENHhreWY2eElxbUNrNERaMlM5TWVMdjF3YVpJ?=
 =?utf-8?B?Qis4TEQ4QUk0ak9IMFBVUUV2Q3NWcWdPM1dHYkRHRlNQcHpXYUozNVZvUGI3?=
 =?utf-8?B?SUliZ0plU1NqckliY1M2RWJPQnR3dS9mZ2E4SklIQnN3NExQN0hQWjFiUHh3?=
 =?utf-8?B?QUZoT1VRMXJjZGcxTFAyZzJTTjIzMG5YSHIyaGVpZHZLU3ZvdTRhRFBaR0E2?=
 =?utf-8?B?RGdNY05QN2dvQXB4MFBlY3RmRVIyZzEvNUhRT2ttZ3pEN2tUajFPeVVZV0NE?=
 =?utf-8?B?NzlKTDZNbVk3S1diV1ZPbEhUY1crSE5nL3N2SkN5WFdlOU1pd3d0T29vNmx5?=
 =?utf-8?B?WkYrYy9CNEVINDJadWFibHBneXA2Z0xHQXAvTHJySkJFbzdoNldPTVQ5MjRx?=
 =?utf-8?B?OTlKNzd4ZlN2cUZWazZLbjFGRnFyekl6ZWdFTXA4WXpDdUN2Y2RpT1VicGgx?=
 =?utf-8?B?aXRyNmVpb2xHUDJscDBzakNOMENuMkVXb0ZkSVhSa3RBYWVOR0JFZklheW1n?=
 =?utf-8?B?aDFiZGNFRGRob3RLR0hRbG1nR0RXVG85TEVWTE5UVzdjUFNZei9uL3RuMTly?=
 =?utf-8?B?dnErTnRWL2ZEbGg0aVZyU3dtSitxT2JUWkgzalg3RmViekx0MnpCZktzaUUy?=
 =?utf-8?B?cHp0SmpqSFF4L1AzRE1uT1dhc0xKSUFibWJXbGkrNGFscW50Q1E5MXAyWVFs?=
 =?utf-8?B?N3pXSGhzQ1grU29MRk1SdXpYNHVEbkk0TlZwTzQvUlgvOVg0eTIyKzU0c2VS?=
 =?utf-8?B?K1A3bEJ1WUdsaTJOYWF1eFkwbmFsMDRMTnRCZWQ2cVpFRk9Mbkk0TGJqT3ky?=
 =?utf-8?B?dTJaK3lOTnU3Y2k2Vlp1eFVkYjBhdlNtbTZtT1ZJYzNjNzZnTWJNcE53ZjEr?=
 =?utf-8?B?TTFXaGE3Yi9lWVpIQTBzT29GQmREeTR2NFgwcE5jVTZQdDgvQ2p2MDVMOEc5?=
 =?utf-8?B?aGU4UUlwSkljMzd2REN1Y3FJakFQUVFBbTBNdDlHU2RTdmVTZ1hRMys5em5I?=
 =?utf-8?B?WU5KYlFxQkw2TU9zYnZlVkxMcGVjTUdxMzZHaUtWTXU4bDhtdXRjL211ak1t?=
 =?utf-8?B?K0VBV1gvRlJHV3NMRis5RDFOeVJxZWJmSnZPYm5tOFZLbjNhaTNMU3FvOXJO?=
 =?utf-8?B?NXR6dTNRQlZCcGtmTUcra0lHR1F6OEFxV25UM0tKNEFhQzJndWlCMWRVY0Zx?=
 =?utf-8?B?ck5FWFJQaFVYek12UlRSNlpxenBaODNlZS91UHJPdTU0akVEcmw0SEl5TGlC?=
 =?utf-8?B?bEM3SVZ2aW1WL282QXF4WVdFQUNnUENzbk9IY3RONzljYmJReWRsVXp5eVR3?=
 =?utf-8?B?cW5VSysrKzJPemdxb2FsV2lPWHkraHZqZ21TK05ra3hWenZZalZDMzgyb3hP?=
 =?utf-8?B?K3hQM2p2U1ZIS2JyanJIZk1vNDAzaUM2NTQzc0ptQm5HUE5CL0NsOTJ1ZHU2?=
 =?utf-8?B?WUVSaWZ6ZWlJclJkVCs1NzdBL2tmL0hxTEJaRjBnQ1Nrc1Q3NmQ5MjR6SlBN?=
 =?utf-8?B?Z2x5Ti9XNUhpQjNBallyQzZCdUdXNlhvU012TE0vRXhtSTIxS2FKUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6106dc19-98d6-4955-55c4-08de7b6c0397
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2026 10:34:58.2933
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: AQqQ2aGXdbeBBWhqNxh5oEkKZf/QVHoypM+3FzvEXIW62C82lKH4DY7teFkS1dgDxzRh0U7ZyD62PN/NQ57omQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR03MB5587

On Thu, Mar 05, 2026 at 02:56:32PM +0100, Jan Beulich wrote:
> When Dom0 informs us about MMCFG usability, this may change whether
> extended capabilities are available (accessible) for devices. Zap what
> might be on record, and re-initialize things.
> 
> No synchronization is added for the case where devices may already be in
> use. That'll need sorting when (a) DomU support was added and (b) DomU-s
> may run already while Dom0 / hwdom still boots (dom0less, Hyperlaunch).
> 
> vpci_cleanup_capabilities() also shouldn't have used
> pci_find_ext_capability(), as already when the function was introduced
> extended config space may not have been (properly) accessible anymore,
> no matter whether it was during init. Extended capability cleanup hooks
> need to cope with being called when the respective capability doesn't
> exist (and hence the corresponding ->init() hook was never called).
> 
> Fixes: 70e6dace747e ("vpci: Use cleanup to free capability resource during deassign")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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

One comment below.

> ---
> v6: Add comment in physdev_check_pci_extcfg(), while dropping the logging
>     of a(nother) message there. Drop hwdom restriction from
>     vpci_cleanup_capabilities(). In the re-init case don't bail early from
>     vpci_init_capabilities(). Simplify assertion and re-order actions in
>     vpci_reinit_ext_capabilities().
> v5: Don't use pci_find_ext_capability() in vpci_cleanup_capabilities().
>     Add assertion in vpci_reinit_ext_capabilities().
> v4: Make sure ->cleanup() and ->init() are invoked.
> v3: New.
> 
> --- a/xen/arch/x86/physdev.c
> +++ b/xen/arch/x86/physdev.c
> @@ -8,6 +8,8 @@
>  #include <xen/guest_access.h>
>  #include <xen/iocap.h>
>  #include <xen/serial.h>
> +#include <xen/vpci.h>
> +
>  #include <asm/current.h>
>  #include <asm/io_apic.h>
>  #include <asm/msi.h>
> @@ -169,8 +171,19 @@ int cf_check physdev_check_pci_extcfg(st
>  
>      ASSERT(pdev->seg == info->segment);
>      if ( pdev->bus >= info->start_bus && pdev->bus <= info->end_bus )
> +    {
>          pci_check_extcfg(pdev);
>  
> +        /*
> +         * The re-init failing doesn't mean the device becomes entirely non-
> +         * functional.  In case of failure, a message was already logged.
> +         * Hence don't otherwise act upon failure.
> +         *
> +         * FIXME: Re-visit when DomU support is added to vPCI.
> +         */
> +        vpci_reinit_ext_capabilities(pdev);
> +    }
> +
>      return 0;
>  }
>  #endif /* COMPAT */
> --- a/xen/drivers/vpci/cap.c
> +++ b/xen/drivers/vpci/cap.c
> @@ -285,13 +285,16 @@ static int vpci_init_ext_capability_list
>      return 0;
>  }
>  
> -int vpci_init_capabilities(struct pci_dev *pdev)
> +int vpci_init_capabilities(struct pci_dev *pdev, bool ext_only)
>  {
> -    int rc;
> +    int rc, accum_rc = 0;
>  
> -    rc = vpci_init_capability_list(pdev);
> -    if ( rc )
> -        return rc;
> +    if ( !ext_only )
> +    {
> +        rc = vpci_init_capability_list(pdev);
> +        if ( rc )
> +            return rc;
> +    }
>  
>      rc = vpci_init_ext_capability_list(pdev);
>      if ( rc )
> @@ -305,7 +308,7 @@ int vpci_init_capabilities(struct pci_de
>          unsigned int pos = 0;
>  
>          if ( !is_ext )
> -            pos = pci_find_cap_offset(pdev->sbdf, cap);
> +            pos = !ext_only ? pci_find_cap_offset(pdev->sbdf, cap) : 0;
>          else if ( is_hardware_domain(pdev->domain) )
>              pos = pci_find_ext_capability(pdev, cap);
>  
> @@ -341,30 +344,40 @@ int vpci_init_capabilities(struct pci_de
>              {
>                  printk(XENLOG_ERR "%pd %pp: hide %s cap %u fail rc=%d\n",
>                         pdev->domain, &pdev->sbdf, type, cap, rc);
> -                return rc;
> +
> +                /* Best effort for the re-init case. */
> +                if ( !ext_only )
> +                    return rc;
> +
> +                if ( !accum_rc )
> +                    accum_rc = rc;

I've been wondering about this, for the hardware domain case we might
as well do best effort for the init case also.  The other option for
the hardware domain is to allow unmediated access to the device, which
is likely worse than allowing it to work in a possibly degraded
mediated mode.  We already special-case the hardware domain for
failures of capability->cleanup(), and we should likely do the same
here.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Mar 06 10:40:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 10:40:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247605.1546159 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vySbI-0006En-8m; Fri, 06 Mar 2026 10:40:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247605.1546159; Fri, 06 Mar 2026 10:40:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vySbI-0006Eg-6H; Fri, 06 Mar 2026 10:40:08 +0000
Received: by outflank-mailman (input) for mailman id 1247605;
 Fri, 06 Mar 2026 10:40:07 +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 1vySbH-0006Ea-87
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 10:40:07 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vySbG-008D0L-2l;
 Fri, 06 Mar 2026 10:40:06 +0000
Received: from [2a02:8012:3a1:0:f0b8:207:419e:3d8a]
 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 1vySbG-001kA1-1y;
 Fri, 06 Mar 2026 10:40:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=W0OhQJULL61N9iDqMbX1ksT7S5t5/3mGGFgX1NczVE8=; b=6j1tiyj7l7GuAUdQvYALMJrsds
	K+3lNYE+tEsWV6zfSGIQ8HFnyUWDq8ZHyWYQmwBYyMnL3HxjRr+ll6BKrAcLTM9ktpQ4lxDk7ZBN6
	Pm31iYm9yZf95YPjZzDOQ+/F/mzICmbUFGDIIo//QuPO+8k4OizgdE56k13Gbeeh8EHE=;
Message-ID: <c075f47f-09f1-443b-949f-936534f75ded@xen.org>
Date: Fri, 6 Mar 2026 10:40:03 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen: gic-v3: Introduce CONFIG_GICV3_NR_LRS
Content-Language: en-GB
To: "Halder, Ayan Kumar" <ayankuma@amd.com>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20260305194358.2564387-1-ayan.kumar.halder@amd.com>
 <f1a5a509-bc6d-4616-872c-c5bb1ecf9da7@xen.org>
 <f10e2a5e-446c-42f2-b9ce-44498acbfb1e@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <f10e2a5e-446c-42f2-b9ce-44498acbfb1e@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Ayan,

On 06/03/2026 09:51, Halder, Ayan Kumar wrote:
> 
> On 06/03/2026 09:24, Julien Grall wrote:
>> Hi Ayan,
> Hi Julien,
>>
>> On 05/03/2026 19:43, Ayan Kumar Halder wrote:
>>> Set GICV3_NR_LRS as per the number of list registers in the supported
>>> hardware. This ensures:
>>>
>>> 1. In gicv3_save_lrs()/gicv3_restore_lrs(), use the number of list
>>> registers from GICV3_NR_LRS (if defined) instead of gicv3_info.nr_lrs.
>>> This ensures that if the hardware does not support more than 4 LRs
>>> (for example), the code accessing LR 4-15 is never reached. The
>>> compiler can eliminate the unsupported cases as the switch case uses a
>>> constant conditional.
>>>
>>> 2. Similarly In gicv3_ich_read_lr()/gicv3_ich_write_lr() , we can
>>> justify that the unsupported LRs (4-15) will never be reached as Xen
>>> will panic if the runtime value (lr) exceeds GICV3_NR_LRS. Some
>>> compiler can eliminate the code accessing LR 4-15.
>>> In this situation, using panic() is better than accessing a list
>>> register which is not present in the hardware
>>>
>>> 3. Whenever GICV3_NR_LRS is defined, the default condition and the
>>> related BUG() cannot be reached at all.
>>
>> I am not sure how this is better. You will still crash Xen is 'lr' >= 
>> GICV3_NR_LRS. Can you provide some details?
>>
>> > > As part of functional safety effort, we are trying to enable system
>>> integrator to configure Xen for a specific platform with a predefind
>>> set of GICv3 list registers. So that we can minimize the chance of
>>> runtime issues and reduce the codesize that will execute.
>>>
>>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>>> ---
>>>   xen/arch/arm/Kconfig  |  9 +++++++++
>>>   xen/arch/arm/gic-v3.c | 12 ++++++++++--
>>>   2 files changed, 19 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
>>> index 2f2b501fda..6540013f97 100644
>>> --- a/xen/arch/arm/Kconfig
>>> +++ b/xen/arch/arm/Kconfig
>>> @@ -276,6 +276,15 @@ config PCI_PASSTHROUGH
>>>     endmenu
>>>   +config GICV3_NR_LRS
>>> +    int "Number of GICv3 Link Registers supported" if EXPERT
>>> +    depends on GICV3
>>> +    range 0 16
>>> +    default 0
>>> +    help
>>> +      Controls the number of Link registers to be accessed.
>>> +      Keep it set to 0 to use a value obtained from a hardware 
>>> register.
>>> +
>>>   menu "ARM errata workaround via the alternative framework"
>>>       depends on HAS_ALTERNATIVE
>>>   diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
>>> index bc07f97c16..fb2985fd52 100644
>>> --- a/xen/arch/arm/gic-v3.c
>>> +++ b/xen/arch/arm/gic-v3.c
>>> @@ -51,6 +51,8 @@ static DEFINE_PER_CPU(void __iomem*, rbase);
>>>   #define GICD                   (gicv3.map_dbase)
>>>   #define GICD_RDIST_BASE        (this_cpu(rbase))
>>>   #define GICD_RDIST_SGI_BASE    (GICD_RDIST_BASE + SZ_64K)
>>> +#define lrs                    (CONFIG_GICV3_NR_LRS ?: \
>>> +                                gicv3_info.nr_lrs)
>>
>> We should avoid lowercase define, in particular with generic names 
>> like 'lrs'. I think in this case, I would rather update 
>> gicv3_info.nr_lrs:
>>
>> gicv3_info.nr_lrs = min(gv3_info.nr_lrs, CONFIG_GICV3_NR_LRS);
> 
> But we want to enforce the user to set CONFIG_GICV3_NR_LRS , so that we 
> don't have to rely on gicv3_info.nr_lrs.
> > The only reason to use gicv3_info.nr_lrs is for backward compatibility
> i.e. when the user forgot to set the config and as a result it used the 
> default value as 0. We don't want to allow this for the safety use cases.

Xen upstream has to support various use cases. One of the use-case is 
Linux distributions where they want one Xen binary booting on multiple 
HW. So "gicv3_info.nr_lrs" will have to stay forever.

Now with CONFIG_GICV3_NR_LRS in place, I am concerned that someone will 
try to configure the value to let say 16 but their HW support only 4. I 
can't find any check at boot, so any problem will still occur at runtime.

> 
>>
>> This would solve another problem where you don't sanity check that the 
>> system effectively support CONFIG_GICV3_NR_LRS.
>>
>>> @@ -121,7 +123,7 @@ static inline void gicv3_save_lrs(struct vcpu *v)
>>>   static inline void gicv3_restore_lrs(const struct vcpu *v)
>>>   {
>>>       /* Fall through for all the cases */
>>> -    switch ( gicv3_info.nr_lrs )
>>> +    switch ( lrs )
>>>       {
>>>       case 16:
>>>           WRITE_SYSREG_LR(v->arch.gic.v3.lr[15], 15);
>>> @@ -178,6 +180,9 @@ static inline void gicv3_restore_lrs(const struct 
>>> vcpu *v)
>>>     static uint64_t gicv3_ich_read_lr(int lr)
>>>   {
>>> +    if ( lr >= lrs )
>>> +        panic("Unsupported number of LRs\n");
>>
>> Do we really have to panic in production build? Wouldn't it be better 
>> to return '0' and maybe use ASSERT for a crash in debug build? Same 
>> below.
> You are right, we may not need this. One option I am thinking is ...
>>
>>> +
>>>       switch ( lr )
> 
> switch ( lr & (lrs - 1) )
> 
> This ensures that we do not hit the unsupported cases.

What about implementing it as RAZ-WI? This would make any issue more 
reliable/obvious (if you have multiple index accessing the same LR, then 
you could end up overwriting an existing virtual interrupt).

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 12:57:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 12:57:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247684.1546176 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyUjn-00059n-JM; Fri, 06 Mar 2026 12:57:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247684.1546176; Fri, 06 Mar 2026 12: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 1vyUjn-00059g-Gc; Fri, 06 Mar 2026 12:57:03 +0000
Received: by outflank-mailman (input) for mailman id 1247684;
 Fri, 06 Mar 2026 12:57: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=xfpx=BG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vyUjl-00059a-PA
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 12:57:01 +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 f6eb36c7-195b-11f1-b164-2bf370ae4941;
 Fri, 06 Mar 2026 13:57:00 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4806cc07ce7so105879015e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 06 Mar 2026 04:57: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-485276bc6bbsm32271435e9.15.2026.03.06.04.56.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 06 Mar 2026 04:56: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: f6eb36c7-195b-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772801820; x=1773406620; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6Cem6Ib2c8SgDHkY2mk+9rgqu9lS6u/qe58rl1Cpduk=;
        b=Ab0kMmuhluwc/TeFe1++pt1IJZZ8BDDveb+7N3Gbd2O0VCO4NAJ5e8MlqxF0cTfzZP
         /QjkqGp6YtCEB6lEAxKMFF3eZJRockk3DkTSRD8kD6rfV2WCBNWFf4Mmg9E9lsb1UUDR
         EO52m/pKmwELcK5HZRqUDNCbSKLIFqCD9KwLv8Od67vI/4bxP994K8Zz0D/FN9oNJfwh
         nurQ9UmAhaMIWDnAOTLYEElHmbE5tz76qWq22sD4jGXFLJQK4oCgrPB/nsumqlZMF8Cw
         eXbyIiNgBt1tHP63M7P6m1oNNvSQRigtSnQ3QodjNxg2oxawR++kRvde+K4BIWbLXDt1
         2b9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772801820; x=1773406620;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6Cem6Ib2c8SgDHkY2mk+9rgqu9lS6u/qe58rl1Cpduk=;
        b=hXsFqqcMVZ2L127n5VVzVB3SUHkINzR9c9In6tI75s1lYCr5HkGkW/Qua8pP4I1wlR
         gOx/u+2sG2BgpaBXIoEMJPJbqT+sLwiogQ00/oZ2oRGo93SrBktE9BAqgMM8wof5zaah
         rUbn/afXqQu8f9F4a/lw6DxaptgdhPhCAH1F29ewuHYJRV6Yn9bNpgwCCAmERhod2UYs
         O8ubBLtbeMgFLx/6XxqmGQiO9+E11Bz/y2mnPjOlII/MANQfxiHW9RF7UKQawrLi7Cul
         08bYKQ7m7EZwGiDmoPDgMV7bUOGmVbh7wPFmX7IRkVfKWxeMPeRB1I3lyqa2eVvsNeSa
         2HJg==
X-Gm-Message-State: AOJu0YxqkqVYR+yjGUuvs9nsdlpzcm7/qgybD896gbzWWDCsoeJSA9Rk
	lOdM0TdKpZLdaucUdZpG4cc/9bxeNzu1PTocg8qIljWenQJoeU30x5nnR5ZkSTL1DQ==
X-Gm-Gg: ATEYQzygj3toMQlU9/wtcS8VvNKEbK3DNj2T/L1p4RtqPQRWrJ0f323PT1WVlQuLYYk
	i6UThycMpza/xK9tC7LO8dNDjOdgF+9rTPBkb1EhQdRSZrOGTs7cnMvsf0+ppOW2AbDxnJsU4oB
	8qEcrzMH+lDUrLB/pH/HrCkzEQPExrYQ98nNiTF9Kh8CXlVPLjIekFti+jvDP/VuyaVrLUf0STi
	FNrhS90JG97SnNW5BdEwgM+bbVTa/xIrnaQe6GBHnkDnHvtu9f31Oo9JtkniYLswy4FC592MFlI
	vI7siv+LpKtULCghi5RqM/+FbXnkZzkGC+T7cpl0CodO+BJmTTJ3PCFbn+r5Lpz018OqQEfFcFE
	TGaYWWCIzjUEojoSmTXJGIQe3rpfm0ITj7uUDlFkfPAF8/06gpWv0P6+jws27fsVrMOU9CH9cUy
	oDrtN3a+4s65WzfNELCoO4Z/l5e8vuqFmaCGyXjHjf+1hYS+8T3zq5UlmgkeRZ+NsdiKbdUOWas
	fWCkIKMlQPEAko=
X-Received: by 2002:a05:600c:64c7:b0:47a:935f:61a0 with SMTP id 5b1f17b1804b1-485268bd694mr33118745e9.0.1772801819606;
        Fri, 06 Mar 2026 04:56:59 -0800 (PST)
Message-ID: <dddcc58d-1c78-4f90-ac2d-1f22c04808ec@suse.com>
Date: Fri, 6 Mar 2026 13:56:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6] vPCI: re-init extended-capabilities when MMCFG
 availability changed
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <689dae19-f83d-463f-95d9-c39c15a4e45c@suse.com>
 <aaqtz-fL3bl1wS8P@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aaqtz-fL3bl1wS8P@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.03.2026 11:34, Roger Pau Monné wrote:
> On Thu, Mar 05, 2026 at 02:56:32PM +0100, Jan Beulich wrote:
>> When Dom0 informs us about MMCFG usability, this may change whether
>> extended capabilities are available (accessible) for devices. Zap what
>> might be on record, and re-initialize things.
>>
>> No synchronization is added for the case where devices may already be in
>> use. That'll need sorting when (a) DomU support was added and (b) DomU-s
>> may run already while Dom0 / hwdom still boots (dom0less, Hyperlaunch).
>>
>> vpci_cleanup_capabilities() also shouldn't have used
>> pci_find_ext_capability(), as already when the function was introduced
>> extended config space may not have been (properly) accessible anymore,
>> no matter whether it was during init. Extended capability cleanup hooks
>> need to cope with being called when the respective capability doesn't
>> exist (and hence the corresponding ->init() hook was never called).
>>
>> Fixes: 70e6dace747e ("vpci: Use cleanup to free capability resource during deassign")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks.

>> @@ -341,30 +344,40 @@ int vpci_init_capabilities(struct pci_de
>>              {
>>                  printk(XENLOG_ERR "%pd %pp: hide %s cap %u fail rc=%d\n",
>>                         pdev->domain, &pdev->sbdf, type, cap, rc);
>> -                return rc;
>> +
>> +                /* Best effort for the re-init case. */
>> +                if ( !ext_only )
>> +                    return rc;
>> +
>> +                if ( !accum_rc )
>> +                    accum_rc = rc;
> 
> I've been wondering about this, for the hardware domain case we might
> as well do best effort for the init case also.  The other option for
> the hardware domain is to allow unmediated access to the device, which
> is likely worse than allowing it to work in a possibly degraded
> mediated mode.  We already special-case the hardware domain for
> failures of capability->cleanup(), and we should likely do the same
> here.

When making the change, I was asking myself the same. I just didn't want to
mix re-init with a change to how we do init. The earlier of the two if()s
could be dropped in a subsequent change, or (less desirable from my pov, as
then I'll need yet another iteration for this change) make that adjustment
first.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Mar 06 13:29:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 13:29:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247723.1546194 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyVFX-00011e-5z; Fri, 06 Mar 2026 13:29:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247723.1546194; Fri, 06 Mar 2026 13:29: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 1vyVFX-00011V-3M; Fri, 06 Mar 2026 13:29:51 +0000
Received: by outflank-mailman (input) for mailman id 1247723;
 Fri, 06 Mar 2026 13:29: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=GgqK=BG=gmail.com=soumyajyotisarkar23@srs-se1.protection.inumbo.net>)
 id 1vyVFW-00011B-6d
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 13:29:50 +0000
Received: from mail-pl1-x644.google.com (mail-pl1-x644.google.com
 [2607:f8b0:4864:20::644])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8bca8102-1960-11f1-b164-2bf370ae4941;
 Fri, 06 Mar 2026 14:29:48 +0100 (CET)
Received: by mail-pl1-x644.google.com with SMTP id
 d9443c01a7336-2aae146b604so69863395ad.3
 for <xen-devel@lists.xenproject.org>; Fri, 06 Mar 2026 05:29:48 -0800 (PST)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2ae840ad92fsm34784815ad.77.2026.03.06.05.29.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 06 Mar 2026 05:29: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: 8bca8102-1960-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772803787; x=1773408587; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kC4SJGNXCr1rdhgZ8HB/0dsT03+rkfzmTNu95O6q6TM=;
        b=J6sVUthoAemQwei/GjkRWcKzmkBYijZOvCC1DOaLbubTqF/4FYd9JO0Uu+6qlbqul5
         wgewO9doJbV3qYILqx3PlTgWXKJXMF5SDIf6REladQIWLpvVU2be3vU5DY6dip0RSDbu
         imbz0JMr+BSax5ShR8k7s4YlpxMudhJo1/e9LGQkZzFnn0BdpHpv3ZHeKpAe1bik7C3U
         4DCj2G7A/1Amz4H/TX7tbt8nzD/7/qNubZMwZ+M/vd3Dwnc99k/iygS2bBfhMn3VPxXh
         PxYRapYPaDir08Ce+uTUgXjI2C7hwkidXCptSyL2vPGhXnvTSUdw27n2kxizK1fvRDg0
         0RPQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772803787; x=1773408587;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=kC4SJGNXCr1rdhgZ8HB/0dsT03+rkfzmTNu95O6q6TM=;
        b=NAd7/iFBuLDQj+H8aTBy10IIY9VB0Km8YolxD6CcqqZPPggDpQmf7fzL0UiWlmTDWy
         InVy9dCE/nCZbb0vkzdzz4n5VCPfKfAk1z8MD6B0LBT5cjeXdcVrqpwoQ2xqaG4GLkGa
         q4cJq+XPIdzfJPXEkspyo4K9HPPnVFIMtHo1TrLXs/g4vm6k9sWGW/CELBQjtjg4gjz4
         LYWaYBHR5r5/4HvZWBklSAvvo14kdeeeoT3ikZXRb+AbR1mwIilcPqxLOFCi5yyhCLFk
         uQLAquXodn784ADABHp7gNDfpiLYlpi86gGIAX+m/nhDQ9GVyYqVClREzKBbJth8lhaS
         tXEQ==
X-Gm-Message-State: AOJu0YzfZSuq1ENxOwHJwQFRgpAvwpwvlIwwGL5CJHElIi5lPtpAE2BZ
	s0vtNsMYYc44pl2XfqqSiq1Kgk59LMKAXsLF3ZsijjyOfdJeDw6loZ8t0FXCBtqn
X-Gm-Gg: ATEYQzyGcgrJZ5ZYMsSV55OrslopxURtLiusty09ldvtxc22ZTeiQQmAj55lqziB4ZR
	atUq+dJ1BI5vEaW+SL9B88bcxaBREOG7ZtTx4YY5S3fN6ko3FD4jNimFF3MiVomCES0zeAN8EdO
	sVixpod5MHw96XSMtAYd/OrgkuzBrZECBI5aB8fxFyC/PUGbclKGGS0Wa6GgCJ3MEcVmVvf4vbc
	wqh+/1uuOdpNITVvyblqZVglLusRa95eGYza6sMHEDffD9bMjy/zaP8ZEbE/OmPqBkAHNcMGyOS
	ohs7AFeL9+7CIx7+AXgz/THARlzxFTzryBqbTMcIsBcwMqMgOhig+qnYIWsPCP+ulXyyug8g8aI
	l2fjKATZWckFRdNZTpWHlpNpH51cZLKJEPtHftq0vu/nw+yZu0AL9AtBLRs+LPzDG4aEDx92sVv
	2iuq+zEj+aE98gFrFyJQDFmbnV0i2QKtTese/6/MFdBAj9Gosn/Q7EcFrRKJHlVX9C2rQI0jmq6
	vxGZaEjN6Nfg1KIKDfAcVmtWt5LQh6isJ1x81Ltw0Hh0UsGU8hugZaWu8lcgeADIm/l0PP/Qa9W
	HgeZS96J
X-Received: by 2002:a17:903:3808:b0:2ab:3cba:42fa with SMTP id d9443c01a7336-2ae82478619mr24900085ad.46.1772803786754;
        Fri, 06 Mar 2026 05:29:46 -0800 (PST)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: xen-devel@lists.xenproject.org,
	sarkarsoumyajyoti23@gmail.com
Cc: Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [PATCH v2 1/3] x86/efi: Add BGRT image preservation during boot
Date: Fri,  6 Mar 2026 18:59:33 +0530
Message-ID: <20260306132935.13727-2-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260306132935.13727-1-soumyajyotisarkar23@gmail.com>
References: <20260306132935.13727-1-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The ACPI BGRT (Boot Graphics Resource Table) contains a pointer to a
boot logo image stored in BootServicesData memory. When Xen reclaims
this memory during boot, the image is lost and the BGRT table becomes
invalid, causing Linux dom0 to report ACPI checksum errors.

Add preservation logic similar to ESRT table handling:
- Locate BGRT table via XSDT during EFI boot services phase
- Validate BMP image signature and size (max 16 MB)
- Copy image to EfiACPIReclaimMemory (safe from reclamation)
- Update BGRT table with new image address
- Recalculate ACPI table checksum

The preservation runs automatically during efi_exit_boot() before
Boot Services are terminated. This ensures the image remains
accessible to dom0.

Open-coded ACPI parsing is used because Xen's ACPI subsystem is not
available during the EFI boot phase. The RSDP is obtained from the
EFI System Table, and the XSDT is walked manually to find BGRT.

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
---
 xen/arch/x86/efi/efi-boot.h |   2 +
 xen/common/efi/boot.c       | 187 ++++++++++++++++++++++++++++++++++++
 2 files changed, 189 insertions(+)

diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 42a2c46b5e..27792a56ff 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -910,6 +910,8 @@ void __init efi_multiboot2(EFI_HANDLE ImageHandle,

     efi_relocate_esrt(SystemTable);

+    efi_preserve_bgrt_img(SystemTable);
+
     efi_exit_boot(ImageHandle, SystemTable);
 }

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 967094994d..1e3489e902 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -7,6 +7,7 @@
 #include <xen/ctype.h>
 #include <xen/dmi.h>
 #include <xen/domain_page.h>
+#include <xen/errno.h>
 #include <xen/init.h>
 #include <xen/keyhandler.h>
 #include <xen/lib.h>
@@ -173,6 +174,14 @@ static struct file __initdata ramdisk;
 static struct file __initdata xsm;
 static const CHAR16 __initconst newline[] = L"\r\n";

+static __initdata struct {
+    bool preserved;
+    uint64_t old_addr;
+    uint64_t new_addr;
+    uint32_t size;
+    const char *failure_reason;
+} bgrt_debug_info;
+
 static void __init PrintStr(const CHAR16 *s)
 {
     StdOut->OutputString(StdOut, (CHAR16 *)s );
@@ -747,6 +756,171 @@ static void __init efi_relocate_esrt(EFI_SYSTEM_TABLE *SystemTable)
     efi_bs->FreePool(memory_map);
 }

+struct bmp_header {
+    uint16_t signature;
+    uint32_t file_size;
+    uint16_t reserved_1;
+    uint16_t reserved_2;
+    uint32_t data_offset;
+} __attribute__((packed));
+
+/*
+ * ACPI Structures - defined locally,
+ * since we cannot include acpi headers
+ * in EFI Context.
+ */
+
+struct acpi_rsdp {
+    char signature[8];
+    uint8_t checksum;
+    char oem_id[6];
+    uint8_t revision;
+    uint32_t rsdt_physical_address;
+    uint32_t length;
+    uint64_t xsdt_physical_address;
+    uint8_t extended_checksum;
+    uint8_t reserved[3];
+} __attribute__((packed));
+
+struct acpi_table_header {
+    char signature[4];
+    uint32_t length;
+    uint8_t revision;
+    uint8_t checksum;
+    char oem_id[6];
+    char oem_table_id[8];
+    uint32_t oem_revision;
+    uint32_t asl_compiler_id;
+    uint32_t asl_compiler_revision;
+} __attribute__((packed));
+
+struct acpi_xsdt {
+    struct acpi_table_header header;
+    uint64_t table_offset_entry[1]; /* Variable array length */
+} __attribute__((packed));
+
+struct acpi_bgrt {
+    struct acpi_table_header header;
+    uint16_t version;
+    uint8_t status;
+    uint8_t image_type;
+    uint64_t image_address;
+    uint32_t image_offset_x;
+    uint32_t image_offset_y;
+} __attribute__((packed));
+
+static struct acpi_bgrt* __init find_bgrt_table(EFI_SYSTEM_TABLE *SystemTable)
+{
+    EFI_GUID acpi2_guid = ACPI_20_TABLE_GUID;
+    struct acpi_rsdp *rsdp = NULL;
+    struct acpi_xsdt *xsdt;
+    struct acpi_bgrt *bgrt;
+    uint32_t entry_count, actual_size;
+    unsigned int i;
+
+    for ( i = 0; i < SystemTable->NumberOfTableEntries; i++ )
+    {
+        if ( match_guid(&acpi2_guid, &SystemTable->ConfigurationTable[i].VendorGuid) )
+        {
+            rsdp = SystemTable->ConfigurationTable[i].VendorTable;
+            break;
+        }
+    }
+
+    if ( !rsdp || !rsdp->xsdt_physical_address )
+        return NULL;
+
+    xsdt = (struct acpi_xsdt *)rsdp->xsdt_physical_address;
+    if ( !xsdt )
+        return NULL;
+
+    actual_size = (xsdt->header.length - sizeof(struct acpi_table_header));
+    entry_count = (actual_size / sizeof(uint64_t));
+
+    for ( i = 0; i < entry_count; i++ )
+    {
+        struct acpi_table_header *header = (struct acpi_table_header *)xsdt->table_offset_entry[i];
+
+        if (   header->signature[0] == 'B'
+            && header->signature[1] == 'G'
+            && header->signature[2] == 'R'
+            && header->signature[3] == 'T' )
+        {
+            bgrt = (struct acpi_bgrt *)header;
+            return bgrt;
+        }
+    }
+    return NULL;
+}
+
+#define MAX_IMAGE_SIZE  (16 * 1024 * 1024)    /* Sanity check: reject if bigger */
+
+static void __init efi_preserve_bgrt_img(EFI_SYSTEM_TABLE *SystemTable)
+{
+    struct acpi_bgrt *bgrt;
+    struct bmp_header *bmp;
+    void *old_image, *new_image;
+    uint32_t image_size;
+    EFI_STATUS status;
+    uint8_t checksum;
+    unsigned int i;
+
+    bgrt_debug_info.preserved = false;
+    bgrt_debug_info.failure_reason = NULL;
+
+    bgrt = find_bgrt_table(SystemTable);
+    if ( !bgrt )
+    {
+        bgrt_debug_info.failure_reason = "BGRT table not found in XSDT";
+        return;
+    }
+
+    if ( !bgrt->image_address )
+    {
+        bgrt_debug_info.failure_reason = "BGRT image_address is NULL";
+        return;
+    }
+
+    old_image = (void *)bgrt->image_address;
+    bmp = (struct bmp_header *)old_image;
+
+    if ( bmp->signature != 0x4D42 )
+    {
+        bgrt_debug_info.failure_reason = "Invalid BMP signature";
+        return;
+    }
+
+    image_size = bmp->file_size;
+    if ( !image_size || image_size > MAX_IMAGE_SIZE )
+    {
+        bgrt_debug_info.failure_reason = "Invalid image size";
+        return;
+    }
+
+    status = efi_bs->AllocatePool(EfiACPIReclaimMemory, image_size, &new_image);
+    if ( status != EFI_SUCCESS || !new_image )
+    {
+        bgrt_debug_info.failure_reason = "Memory allocation failed";
+        return;
+    }
+
+    memcpy(new_image, old_image, image_size);
+
+    bgrt->image_address = (uint64_t)new_image;
+    bgrt->status |= 0x01;
+
+    bgrt->header.checksum = 0;
+    checksum = 0;
+    for ( i = 0; i < bgrt->header.length; i++ )
+        checksum += ((uint8_t *)bgrt)[i];
+    bgrt->header.checksum = (uint8_t)(0 - checksum);
+
+    bgrt_debug_info.preserved = true;
+    bgrt_debug_info.old_addr = (uint64_t)old_image;
+    bgrt_debug_info.new_addr = (uint64_t)new_image;
+    bgrt_debug_info.size = image_size;
+}
+
 /*
  * Include architecture specific implementation here, which references the
  * static globals defined above.
@@ -1794,6 +1968,19 @@ void __init efi_init_memory(void)
     if ( !efi_enabled(EFI_BOOT) )
         return;

+    if ( bgrt_debug_info.preserved )
+    {
+        printk(XENLOG_INFO "EFI: BGRT image preserved: %u KB\n",
+               bgrt_debug_info.size / 1024);
+        printk(XENLOG_INFO "EFI: BGRT relocated from %#" PRIx64 " to %#" PRIx64 "\n",
+               bgrt_debug_info.old_addr, bgrt_debug_info.new_addr);
+    }
+    else if ( bgrt_debug_info.failure_reason )
+    {
+        printk(XENLOG_WARNING "EFI: BGRT preservation failed: %s\n",
+               bgrt_debug_info.failure_reason);
+    }
+
     printk(XENLOG_DEBUG "EFI memory map:%s\n",
            map_bs ? " (mapping BootServices)" : "");
     for ( i = 0; i < efi_memmap_size; i += efi_mdesc_size )
--
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 13:29:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 13:29:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247722.1546185 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyVFU-0000oH-0j; Fri, 06 Mar 2026 13:29:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247722.1546185; Fri, 06 Mar 2026 13:29:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyVFT-0000oA-Tp; Fri, 06 Mar 2026 13:29:47 +0000
Received: by outflank-mailman (input) for mailman id 1247722;
 Fri, 06 Mar 2026 13:29:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GgqK=BG=gmail.com=soumyajyotisarkar23@srs-se1.protection.inumbo.net>)
 id 1vyVFT-0000o4-2d
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 13:29:47 +0000
Received: from mail-pl1-x641.google.com (mail-pl1-x641.google.com
 [2607:f8b0:4864:20::641])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 896481cc-1960-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Mar 2026 14:29:44 +0100 (CET)
Received: by mail-pl1-x641.google.com with SMTP id
 d9443c01a7336-2addb31945aso66594665ad.1
 for <xen-devel@lists.xenproject.org>; Fri, 06 Mar 2026 05:29:44 -0800 (PST)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2ae840ad92fsm34784815ad.77.2026.03.06.05.29.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 06 Mar 2026 05:29: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: 896481cc-1960-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772803783; x=1773408583; 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=hXltUrIM8u+3vchXEmdzSSxxFAB0jLJSYsohu1ixvuk=;
        b=RNjtSRraoWqEQFqaG7D5BJf21dpt1o9n2fGDsf9GolO0TeClBKEPQPqHaaIupzRKig
         +qNgRg+JWJSK2rn+6oO/atirVuRJgzJi6PJT3peSYfcsLxWwkkGjD68vrZa0SQ8JWJ64
         SLaYvCUGIZjqKTdkIBxKhmhlCoG4cxCO436J7T3I52SaboURaElTKTDKt7UtcrmXOGC3
         LNRHjUzb6qI3iGHvW67pj5xBMa2RJx8oAQbCj/AAiQNkqmdi38vl50aeEtIozSC0ouUG
         65K93JL+9vFOkZlY0uKhwUDCFdfZh3rvptG8xNxHYUfUhkkhf5OeMYOesvdMHrGUzAJp
         Tfpw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772803783; x=1773408583;
        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=hXltUrIM8u+3vchXEmdzSSxxFAB0jLJSYsohu1ixvuk=;
        b=qpMAJ+Iq0cNBjlvH3VIHZaLhF2fPDczcV0DUPgGDMMgI3GFHJooQxtyC3ja/Tuzk8n
         vsqhUtW4fmrstdAS1tjCbNJaHlCw0m83C77Coj7WTkyE2WsQF1fpeqKpPgUBrbfACDRF
         tKldb3zscupxr8Gq/oRad446Q6IwX9u7QZm37jsl+O4dt5o16ObkU0r6gX7Lv/KPd8yj
         ynLzWj4FIOE5KCgABeu3pdgErbN2nhGk44Z2y29/yf6JBRU3OHQWTYwCCmnR2JQC1pTQ
         CgBLUbIEEDEwlDPHhLpa166DyYPn/EWSRLsJn6ZKr1io7mDPPfBv7I5r29W7tScp/FdP
         U7aw==
X-Gm-Message-State: AOJu0Yw2voE6YpEGr/0Jo3mMIFmZGRwrvAYpvYL3bpKxHlR2dlC1Sdri
	u8Eq178ljKUe8VaKdMJxU33NIKQ3c34a2cry3QNJGq6egPslbszf0NPikoCdD2vC
X-Gm-Gg: ATEYQzxYjsDDO31tqBO6nRbIbxNdm6ZI6MgztrcubkjtJXIGP8nDjhuhTbAPjtdr5Y8
	hficIwJCYzPPNW8tRSAw3SVgIgDMILRpvz/DI3JqDqPNuqa/1J6IFuTReMtEeo13SgDNXlMx7aA
	wAh/y3PjcXog5SJLi94Y5Eiu2E0s5EO9CIOjxYWCeUfVK/i7jhIx0RKIPdLHYNky7iVw335tATT
	dSv93Vvg7lNUfFvN8XG0gz8Duz8N68iYcp36O9iiCspsX6hkuy3eNCcB8RDVdfzyrb3ZOEgVaYv
	wy9UBfs5eYKzdRB60ZTr99nWefi++06tCeqN89DqBevVNqMUe0FxUJ5i+RdZr4+RRWPAlVRaa9v
	MiRvC2eK3c2YkeWjKGfk08YC9BrH7AKvanwtglNjwd8+9+7DbBgqja2gL+eRiihjcCHzHjOJx9y
	g2z4HhK5aHxvBJkxU3r60X3vVVOVssxGXd1YZJsw+dCYnI8Xnd31KRvxO01pVfG4aChgAzmIKcq
	/AgmlflRXeH8eH85vo2u8zeWfHZm2IdnY6eAM+rRJLBiTdNTKaubpR5bcPcVdT7hPQMvROS8w==
X-Received: by 2002:a17:903:2a8c:b0:2ae:8055:62c8 with SMTP id d9443c01a7336-2ae8243b575mr24922535ad.32.1772803782645;
        Fri, 06 Mar 2026 05:29:42 -0800 (PST)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: xen-devel@lists.xenproject.org,
	sarkarsoumyajyoti23@gmail.com
Cc: Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [PATCH v2 0/3] Fixing ACPI BGRT (Boot Graphics Resource Table) corruption
Date: Fri,  6 Mar 2026 18:59:32 +0530
Message-ID: <20260306132935.13727-1-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This series fixes ACPI BGRT (Boot Graphics Resource Table) corruption,
that occured when Xen reuses the memory containing the boot logo
image before dom0 is able to parse ACPI tables.

The BGRT table contains a pointer to a BMP image stored in
BootServicesData memory. When Xen reclaims this memory early in boot,
the pointer becomes invalid, causing Linux dom0 to report:
Xen: `(XEN) ACPI: BGRT: invalidating v1 image at 0x47cc2018`
Linux (dom0): `ACPI BIOS Warning (bug): Incorrect checksum
in table [BGRT] - 0xF9, should be 0xB4 (20250807/utcksum-58)`

This series:
1. Adds BGRT image preservation during EFI boot (similar to ESRT)
2. Clarify BGRT invalidation behavior with preservation.
3. Provides an opt-out mechanism (efi=no-bgrt) for servers

The preservation is enabled by default to fix the corruption for all
users, with minimal overhead (~1MB). Also, servers that don't need boot
graphics can disable it using the "efi=no-bgrt" option.

Changes since v1:
As Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>,
pointed out the BGRT invalidation behaviour should
still presist and server as a safety net when "efi=no-bgrt"
or the preservation fails for some reason thus:
Add Clarify comment for BGRT invalidation behavior
with preservation.

Testing:
- Verified on Intel UEFI system with Fedora 43 dom0
- Before: ACPI checksum errors in dom0
- After: Clean boot, no ACPI warnings
- Memory overhead: ~972 KB (preserved image size)

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>

Soumyajyotii Ssarkar (3):
  x86/efi: Add BGRT image preservation during boot
  x86/acpi: Clarify BGRT invalidation behavior with preservation
  x86/efi: Add opt-out mechanism for BGRT preservation

 xen/arch/x86/acpi/boot.c    |   5 +
 xen/arch/x86/efi/efi-boot.h |   2 +
 xen/common/efi/boot.c       | 199 ++++++++++++++++++++++++++++++++++++
 3 files changed, 206 insertions(+)

--
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 13:29:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 13:29:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247724.1546204 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyVFb-0001Gw-CE; Fri, 06 Mar 2026 13:29:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247724.1546204; Fri, 06 Mar 2026 13: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 1vyVFb-0001Gn-9T; Fri, 06 Mar 2026 13:29:55 +0000
Received: by outflank-mailman (input) for mailman id 1247724;
 Fri, 06 Mar 2026 13:29:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GgqK=BG=gmail.com=soumyajyotisarkar23@srs-se1.protection.inumbo.net>)
 id 1vyVFa-0000o4-Fl
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 13:29:54 +0000
Received: from mail-pl1-x642.google.com (mail-pl1-x642.google.com
 [2607:f8b0:4864:20::642])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8e396bc1-1960-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Mar 2026 14:29:52 +0100 (CET)
Received: by mail-pl1-x642.google.com with SMTP id
 d9443c01a7336-2ae82df847bso4383165ad.2
 for <xen-devel@lists.xenproject.org>; Fri, 06 Mar 2026 05:29:52 -0800 (PST)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2ae840ad92fsm34784815ad.77.2026.03.06.05.29.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 06 Mar 2026 05:29:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8e396bc1-1960-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772803791; x=1773408591; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vBP4BGnTbEMnu9mY2BiK5Hh8it3pJ1l1Oia2XagE9LE=;
        b=QR2XyAwgkl3/rmt8LGy/KhLdz9u3WhxmRe86ZwWs5fErT2e745jNDVbLAS8EK2bkWH
         3lPREIf0JhuEWYQZiH72vY5+IEDkahphXczZ5hKnGpxKwL7YyyPAbRUAL4XH+/L+8p5y
         BY6j06/UfCERWE+Yb50Hl6PwRzbRdSOGFoCeG7ox6UqlaozHnyN1A0Mi+aEq2zM+Erg3
         exqHJnoLxj1vI7HZtGy0UtDEz4sCEfKPHCNuiyFNglffJD9TZPEkBYN3v/hNozoHlDsZ
         Xpuac4ZHjrA7TT+PYONI4fYD7pS8tq9XFWJtapNqqZD/MLF8BYT1XmaTs+Va1NvGa2Vj
         8b1A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772803791; x=1773408591;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=vBP4BGnTbEMnu9mY2BiK5Hh8it3pJ1l1Oia2XagE9LE=;
        b=oNtMXHgrbKElQ5uJ98tvlooHGRBq8iO6hQH7oh8PYhU8tMXvpK3Xdy6Z/6r10Ma69Q
         qdNsjqi8ZWTBToXofuLjvYyOAbU6cBoCHV4jLYJDShccFAwVeXMw9XshtEKr94Goqp6t
         Pf2Uv7nAHT1bkIkGce7kw7dR/8EUt/Y79b1OJYXRwQ2iX6YrK0E1EiqI33uqtQGSVduU
         kOMcORwCEnL72ZssHANJYEEdhgljh5Nt7f7ekmIZ/DtDBqrXzA6yIVYrRonDEm6+oQin
         eOIONg1KeVMTM2FjIpP4qGVDoayo6MkHGYxfr1RNUo6asUZPHxYJiMsNSRz/OFriTGpA
         gHPg==
X-Gm-Message-State: AOJu0Yz+ncWEq+PzMTOVAxZOS0ABFYTnC7ALeiNbZrnPEHL9cTfBfkKH
	u5m1XkDBmW7y+//QrEpF/9OKRCldSi+XY+jR3LVCG2QjylZ0CtLlzBhGrWagReJQ
X-Gm-Gg: ATEYQzxfr/rmyqOERz/cNBOHhV7YUUR+F9KfQvbMU6x0Ihjh940Asq0P3VnWLAFLtZt
	J+vgHZjqQYrSQw6clo9+W98x44dO1zfIVjWEbR7ZelRRakFz3bDm7vIgX8zq0t/IxM7ouvD7Lkg
	9ceLYG/sBKgBNOGFStoYahoQ0nwgtFXtH8z27SPfnbUe94LwIuqgCazPTOvwwGjR2p4L7LBIK5k
	0kefAplgs4rnH8KE1951t+4ohqiGZwOdh5Af3WFxdq4YWwchg/Tv4kL0IJ6Z1mJ72mVmpRlKt99
	upEA1pUS3tk3uiu/ru3cu1C4eBQioq3fsPc9kN7LUTx36r6ooMiTFLm4c/nxJ6BMeMiMn2phyUh
	HUk/CWWtNpyQpuTxj65ZpvfMBtycjosLA3Fk8Lk2FwfFI9sf2l2e13650lSnpgF52LVPd4v3OPq
	1OtUt3I306tZZIUeDuGnO3yqovb2WjjColjHc83vJEXbE7tZBIBaHXsrFr1E759Olt/Eni/xDpR
	ziCLnYc5wLZuo8ibDolzRsU3De5RXryBLZGjyiMYXElHUcQHI4bCSlIBBRe6qLDtSuj/AqkLw==
X-Received: by 2002:a17:903:2a84:b0:2ae:8293:7510 with SMTP id d9443c01a7336-2ae829379eamr22642085ad.54.1772803790870;
        Fri, 06 Mar 2026 05:29:50 -0800 (PST)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: xen-devel@lists.xenproject.org,
	sarkarsoumyajyoti23@gmail.com
Cc: Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [PATCH v2 2/3] x86/acpi: Clarify BGRT invalidation behavior with preservation
Date: Fri,  6 Mar 2026 18:59:34 +0530
Message-ID: <20260306132935.13727-3-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260306132935.13727-1-soumyajyotisarkar23@gmail.com>
References: <20260306132935.13727-1-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Now that BGRT images are preserved during EFI boot (via
EfiACPIReclaimMemory allocation), the invalidation code in
acpi_parse_bgrt() is no longer needed.
However, The original invalidation code acts as a safety net for when
preservation fails or is disabled via "efi=no-bgrt".

Thus, Add comments to clarify this behavior for future reference.

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
---
 xen/arch/x86/acpi/boot.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/xen/arch/x86/acpi/boot.c b/xen/arch/x86/acpi/boot.c
index 1ca2360e00..9462cc6195 100644
--- a/xen/arch/x86/acpi/boot.c
+++ b/xen/arch/x86/acpi/boot.c
@@ -327,6 +327,11 @@ static int __init cf_check acpi_parse_hpet(struct acpi_table_header *table)
 	return 0;
 }

+/*
+ * Invalidate BGRT if image is in conventional RAM (preservation failed).
+ * If preservation succeeded, image is in EfiACPIReclaimMemory, which
+ * won't match RAM_TYPE_CONVENTIONAL check, so table remains valid.
+ */
 static int __init cf_check acpi_invalidate_bgrt(struct acpi_table_header *table)
 {
 	struct acpi_table_bgrt *bgrt_tbl =
--
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 13:29:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 13:29:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247725.1546212 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyVFf-0001YM-Mw; Fri, 06 Mar 2026 13:29:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247725.1546212; Fri, 06 Mar 2026 13: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 1vyVFf-0001YC-JN; Fri, 06 Mar 2026 13:29:59 +0000
Received: by outflank-mailman (input) for mailman id 1247725;
 Fri, 06 Mar 2026 13:29: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=GgqK=BG=gmail.com=soumyajyotisarkar23@srs-se1.protection.inumbo.net>)
 id 1vyVFe-00011B-1X
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 13:29:58 +0000
Received: from mail-pl1-x642.google.com (mail-pl1-x642.google.com
 [2607:f8b0:4864:20::642])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 90d16a4a-1960-11f1-b164-2bf370ae4941;
 Fri, 06 Mar 2026 14:29:57 +0100 (CET)
Received: by mail-pl1-x642.google.com with SMTP id
 d9443c01a7336-2aae146b604so69864045ad.3
 for <xen-devel@lists.xenproject.org>; Fri, 06 Mar 2026 05:29:57 -0800 (PST)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2ae840ad92fsm34784815ad.77.2026.03.06.05.29.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 06 Mar 2026 05:29: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: 90d16a4a-1960-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772803795; x=1773408595; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WZnA155v70+QhGSyRygUUhwtWIBU38ELU4IAn875zcw=;
        b=k5DgFYaJ1lxlx0kjYbJwsKRNnq6XiaCWN7KXA/PjWxaDW3Fgq4oKbxU8HQwsyH+0Vz
         su+z+ODqMvofyM8lEYQmJDdMeN0rTz8Pir0A1BxBoFe/GulTMxESQj+PlkMRwXkyLy4P
         185Wi0jWAfJbMHJWvqUfVYJWIGowHm88QcjO+wYATJnFlHbLWy00T0+T3ojske994ZDQ
         6PuWXLWiGOfzMqF1uQYrKyHrD9HhnFncdaHRYEmn4Nne93lRsHOh5+rAGTSTm9998D1s
         PsYPX10l0V4vp53YE7NlP45aKSa9b6BWzQ9vlSCjbMIGqwTUkmXSw0gG43aKAO7r8xRh
         XtUg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772803795; x=1773408595;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=WZnA155v70+QhGSyRygUUhwtWIBU38ELU4IAn875zcw=;
        b=KzHObskamz74iECKL1N5JfoSemkH4RO+r51FalH5YFmTxoQcXM+b3RTF0Z9iuGQCs7
         I0bq65ngwZxgJQ7jMawvqqRUpeAwELZBL2WVAz1tGg/s2lYV3xU00wUNEesvuYUdZgjN
         jowo/fbA0vLgOSSf88kkYDwIoLz/AYJZQrZT1yX9bR4PUB7ihdxuqFSzln5jlMNh3r1X
         Oq94bwT8bO7kS3i5l1Ty1Imbc7z5IliPjh8Rqksi6ZC/QjDC22ewaq3D/+8rC84NkRHE
         FD6xd8D5MdIX+aL4xBGjmeVfyJxI8pNQMP19pyujQ4gf2AtZG94I6v8ircUyW3GKMnSn
         cIvQ==
X-Gm-Message-State: AOJu0Ywtc9Oq7uk44CiwrfxujgWOzDtAQ+EVHkfc4nVA9EvbFkHPokar
	4sf+4PIO8O4DoEoZrtdgscPXliSbqJ5cIHLbGgVBIXWlXy6xLrjLIfIKNwGJTxU0
X-Gm-Gg: ATEYQzy5jZdfNdzeqdewJj7QjMeJsv+uxvOqWCwe9LKQHWjOKFZjO16I36D/Z6/JkLD
	r1IQw5sAY/gHNX9ZmPwbzEUcTJ5cQyFuSP9ErpwZV9sKddnBKd2SQbXVnEdyop3GFa7Q/4Gh5S+
	L9FV8P2CQtxW4v27TYrlraq4yujMyx5eNWSsR4rSW8qtcdktfytVQeeI2h861crExC+mWrm2TDm
	Q5P8RSfke2ZK+Ms27vS/X0SX2/Mwjl2P4nlc4IgJcYB4JEYnwWLJ9hGYpqUuWr5Tg6fGVNce0Jv
	bHRevP+uemgDXEerOlkv0ud++s17a7YnohrT+Sk9y2+HzDretOD3lPX4UqV0wQgayxy8N3IhI2h
	MjFYUbb0BWa6n121vt+dFG0K4Xb8RNc385viEt8E3ETNK4QicdAKFdO57a+vTZwMdAgfQztRL/O
	FKC83FPVgVH6s3bEDn4fdnFYZSh/hg3iXD35LDOu5RYhJ8BKVbV77SikgzFokWwlJ5r3CQwyiZz
	1mjndW64E3qfMhSUPAluW06+vQC5x/UCSVKJTRzusfenhqTh5SovYG8+wH5gvtdGd209C+LWA==
X-Received: by 2002:a17:902:e845:b0:2ad:c1e1:c286 with SMTP id d9443c01a7336-2ae823ac4camr23806925ad.24.1772803795206;
        Fri, 06 Mar 2026 05:29:55 -0800 (PST)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: xen-devel@lists.xenproject.org,
	sarkarsoumyajyoti23@gmail.com
Cc: Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [PATCH v2 3/3] x86/efi: Add opt-out mechanism for BGRT preservation
Date: Fri,  6 Mar 2026 18:59:35 +0530
Message-ID: <20260306132935.13727-4-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260306132935.13727-1-soumyajyotisarkar23@gmail.com>
References: <20260306132935.13727-1-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As described in the task, BGRT preservation is now enabled by default to fix ACPI corruption
for desktop/workstation systems (similar to ESRT).

Add an opt-out parameter 'efi=no-bgrt' to allow disabling BGRT
preservation on systems where the ~1MB memory overhead is not
desired.

The parameter is parsed during normal Xen boot (not during EFI
phase), so it only affects diagnostic logging. The opt-out flag
is checked at the start of efi_preserve_bgrt_img().

Usage:
  Default: BGRT preserved automatically
  Opt-out: Add 'efi=no-bgrt' to Xen command line

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
---
 xen/common/efi/boot.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 1e3489e902..b735eac6b2 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -167,6 +167,7 @@ static SIMPLE_TEXT_OUTPUT_INTERFACE *__initdata StdErr;

 static UINT32 __initdata mdesc_ver;
 static bool __initdata map_bs;
+static bool __initdata opt_bgrt_disabled = false;

 static struct file __initdata cfg;
 static struct file __initdata kernel;
@@ -868,6 +869,9 @@ static void __init efi_preserve_bgrt_img(EFI_SYSTEM_TABLE *SystemTable)
     bgrt_debug_info.preserved = false;
     bgrt_debug_info.failure_reason = NULL;

+    if ( opt_bgrt_disabled )
+        return;
+
     bgrt = find_bgrt_table(SystemTable);
     if ( !bgrt )
     {
@@ -1873,6 +1877,10 @@ static int __init cf_check parse_efi_param(const char *s)
             else
                 __clear_bit(EFI_RS, &efi_flags);
         }
+        else if ( (ss - s) == 7 && !memcmp(s, "no-bgrt", 7) )
+        {
+            opt_bgrt_disabled = true;
+        }
         else if ( (ss - s) > 5 && !memcmp(s, "attr=", 5) )
         {
             if ( !cmdline_strcmp(s + 5, "uc") )
@@ -1968,7 +1976,11 @@ void __init efi_init_memory(void)
     if ( !efi_enabled(EFI_BOOT) )
         return;

-    if ( bgrt_debug_info.preserved )
+    if ( opt_bgrt_disabled )
+    {
+        printk(XENLOG_INFO "EFI: BGRT preservation disabled\n");
+    }
+    else if ( bgrt_debug_info.preserved )
     {
         printk(XENLOG_INFO "EFI: BGRT image preserved: %u KB\n",
                bgrt_debug_info.size / 1024);
--
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 13:40:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 13:40:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247764.1546222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyVPv-00055c-LR; Fri, 06 Mar 2026 13:40:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247764.1546222; Fri, 06 Mar 2026 13:40:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyVPv-00055V-ID; Fri, 06 Mar 2026 13:40:35 +0000
Received: by outflank-mailman (input) for mailman id 1247764;
 Fri, 06 Mar 2026 13:40:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1WzZ=BG=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vyVPt-00055P-Kl
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 13:40:33 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0acf83d7-1962-11f1-b164-2bf370ae4941;
 Fri, 06 Mar 2026 14:40:31 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DM6PR03MB5196.namprd03.prod.outlook.com (2603:10b6:5:24a::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.20; Fri, 6 Mar
 2026 13:40:27 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.017; Fri, 6 Mar 2026
 13:40: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: 0acf83d7-1962-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=h6J/HvQrEX545xgGVxuN2GhZnMMGrAgzho9FqJF35x/IcDrmgknNIwmY0OlJjX3U8+gifIBCwrUqau8choEyvp4n/I54Oc7nxPLz6aMUXXpvuLWBHKBVLnCH0MWYEF7iptLRP5XRl5sxt17Ms3FoNnf+iX2UIiR9LOOTdr74NOufekP9/aZvrP36eZ9lL/MoTcf06rXjh3xGfn6yD1gYp3MkJOhJf4xnL9uVUn5Nso3p0zXCjE2blbXJ1Ruum3oeSKPKkUCusb8AUIgguTgqAIGMczS5639xh+f+sseMKuI/usP81TFmW+OdqilJhA+A7wRGJETVfpgUBzKcLyJ20Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ls2j1H9MEcE+FCeSzwwR0GbbmO14BTVpAOo+CYkzJ6U=;
 b=NbfAdS8m8zerWcg4gXzVQOG6K/y/S3uHf7h/o8UrP4jjT+nZ1wJQEnEoQg8FAv+JIyrfoYiNNu5olObU8QduSc9sup/S+6xatUrIwz7j/1e3lv9JLBpZX3q6UMk9sGyUb797On6kc7TR4opfXFuX2WnKXyl4JewhiY4c6XStW3fWSZfOma2nCcblMbCrY7lWPb2gkr6ON9LV+SciwzR6puL12Ub8sjPHkI6tUziiXyvpcJtgmKLsShKlD9t4yciS8JRc3cx1r7P4ltzyawLV75T6QeBhDzLmaWitxq9c6u5hfJdTsTKW81eq9asdzYz8miZTYTgRRv/w0INQlsJZew==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Ls2j1H9MEcE+FCeSzwwR0GbbmO14BTVpAOo+CYkzJ6U=;
 b=SvjjwkKBH+8fBdmgGxa6ZfgfYFFXYpP7qTJyfjXAUc7Clgq65L0raUGIPcqcqDMiZ6Vp9jEEuitZISp4lQq9uG3AW+lUb/DjImC30NCXPL2Ca/43Y0r+Ij+TS3YXQaV4syXH7m1aKLxe/qaz+gAzhDogHca/oaryB12KWXhX5go=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 6 Mar 2026 14:40:23 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Julian Vetter <julian.vetter@vates.tech>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] x86/hvm: Advertise and support extended destination IDs
 for MSI/IO-APIC
Message-ID: <aarZRxNKjhimnHgl@macbook.local>
References: <20260209113412.2603088-1-julian.vetter@vates.tech>
 <aYneEnAa-LqQt8Gm@Mac.lan>
 <993fafc6-330b-4680-8284-983efb7694f8@vates.tech>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <993fafc6-330b-4680-8284-983efb7694f8@vates.tech>
X-ClientProxiedBy: MR1P264CA0138.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:51::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_|DM6PR03MB5196:EE_
X-MS-Office365-Filtering-Correlation-Id: 7becf6c4-3fc5-41ff-48ed-08de7b85ecf4
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:
	Z0s7KWYyk0EzOXyta/69WTm38Uew7v90CEcuzJyCqSoaqxE+kRmccmlGXPdg1DDdoE/JKlg49wWNLqhpgF+UJNC3q69nwuL17r4vK4iBR6xphT8PrFyxPK5Qvgwn4bdj7yIeQbCMu7DBEsAqi8mmN0nZPdxw44wY19Isewhz6MGWG+UHkFtQEyVpNoCZ0z6etzu8f64CpSblf+3xW8Yz3GjiphQ0q4dPki6S4Anp6Ptu5QKXfut3XZH+q5RXTtxEMAsqeC8wzU/axa5o60vX+QYZ6pOV6KxMnc+biKRR7JmFP2dOsFNquP/Ah51G8ixTnMaXQE/QRR0S4rRKVtQKTQote+LcsVhwa1GfT0trLPqb+326rJnsE1QHNV3rUm9AwrUAV/T93Plx/6HmwWNU2oI2T26zWn/066zGt6ahh5h+pSmyagJBbUi65boWU0AsYwZrOosn4eCPIT3TopN47lZ08oOAdUGRF7Q6Sx6WypYbuykVt82Jp2pb8Qq74n1HKNMNG3hkbxfTF6DwHnz9zsRUz2Egmj1lgbQjPb6M/JIloyKMYTCCBY9NPEPREeiK0QBTU6RurqWQEXITuWQKKozek4yrjwIDDbJURL8FJKvv0mM0BiaC26nPXdG0UwKKXTotlY3CdAsKcAqFexmVuoYzj/ukhfKmb4rOUsQ0A77hf8NR42ay1/EES6o9xgImyifPh5+QyKLKMRyHsuK/WRGU5rhZOqXBH8IzihyVsdA=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YUNRODlMNkpTVmdOZHNjREtqbGx3eWlTaXFxWHZnU2JPZzV5UzNpeXVNUUpS?=
 =?utf-8?B?UlA5SVVxdittMld1akpQRWtuRmJTbm5DbmxwYU1Oa1RQbEVIcXRvaTI1dnZF?=
 =?utf-8?B?THh1d0hKVGxCdTVZbHZ4czdCYlZ1NVNLc3BQYlB0b0U5bFNqYTlYRUY3WG8z?=
 =?utf-8?B?SERtQVdRMmdRaVA1a0NMSlZpNWY0SWxYa2dnQmd0RjI3TTF5cUpXZ0EyeTlI?=
 =?utf-8?B?MXROSDdJaGlXbThienFGSWtkRjhjbDBqRUJBaUhjMkNnN2toMUh4bi9yWC9N?=
 =?utf-8?B?WWZhZ1RMSHZsUE9QRjVSZXNTOHZ5R2NPT2praWpYdmZYdkZ0bDdQdEFtVWtN?=
 =?utf-8?B?OGc1OE5QTTNINXJ4dmtXUis3TEkrTlEzV21jbXd3dlBvQXk4SXRjYkFCQjRo?=
 =?utf-8?B?YjhvYjNEMnFiWkVlYzJVb1ROeGYxeDNQYzB3K1BYVkJleXFYOFRhOEROd3Uz?=
 =?utf-8?B?SEdKd3MzUXNsYS9JbEdJbTNlN09GSGtNOG5RWGlRNlFsSmcyUU1kWnhyK0Mr?=
 =?utf-8?B?SE83cGU3ZHFwMEZ6a0J0ZkZKaVZKRktaaExlcGMxTjgvS1gvM0RMcTcwbXB3?=
 =?utf-8?B?NWdFcHROcHQwZ3FDQnVPQjFVTlVSd2g4WHJqSlRQMDNHRGxOcFQvL0xVZS9K?=
 =?utf-8?B?b2JHSW5URUZOV0QzMW5SYmYxUE9QOFdrWlR4MVRtRUdNa0NOckZoNzlyWXl4?=
 =?utf-8?B?MzQvZllrQjUzTEJJWEhDeUsrWWlBTngwNlF3L0EyenlIQ3h5SmtwbFNPZWhq?=
 =?utf-8?B?WGZ5S2VsR2o1c1JzVXhCc05CVEVzd2oyL05XWUFFRHJaSnhaR2w3SXMzNkp0?=
 =?utf-8?B?dkJBbVI2aUtYVkJQNzRDTHk3S2FVUGxWbTBoRGR0WmI5Y3BZdnpCRy9Wb1Ax?=
 =?utf-8?B?UC9NUnZtc3Z2WXplemxWazFXNHpkRDZoQU15WVN3cGU0Wk5yalpSNmlkanNt?=
 =?utf-8?B?UmxlTFVYb1FlODlrWEd2WnoraXM0a0V3Y3RFUTE0NE9wYzJBWlo2SnZGU2cx?=
 =?utf-8?B?dWJvU2pmMlVPQjJoSElwaFlHZDFmNUdVVytCSGNsQjlYS3ZrWFBQdWpqQ3Zt?=
 =?utf-8?B?Q3crU29BRmwzTi9tOW40Uy8vVXlia3Q5R0NMOXp3b0ljb2VsVVhZM0pHTWtC?=
 =?utf-8?B?bTlFWnd6YkFnVjNtWllyeXQ1TGZneW9hY1JBejZmMDhBOHRXRmVYd00rQkNv?=
 =?utf-8?B?aVNPUnBjZVVxb1Btbmc2SHZlaFZ3WUJ5d21FaWl4cTY5cXJpMXlGS0tIMDNk?=
 =?utf-8?B?QmxJVUtJWXZMOW5YM042T1k4M3RHbW9zT2YyS3VFeFZGOE9oMGRxcXdyb2g2?=
 =?utf-8?B?cjhBWTJNQ3V5K24yeTFSMGlveVRpazdob0JoRWRRZnhOVmcxb3BZQVZrNCtT?=
 =?utf-8?B?aHE5aWZCMTRuU0NmRTlFVEFobG1zTVRjemRLMnM3Ly9IWExpVXBZLzdTWEd6?=
 =?utf-8?B?bUZqcllqTXEvbFNsMW15UDl4dmEyNzRTd1grSkY2OVpNN2RhdnJRa1ZYVjFW?=
 =?utf-8?B?ekxMc0JhR1Ric3JZYWZHbEcwTzRqMGxiclVycm9PN0g3Rno5bFpVVVJHTkRE?=
 =?utf-8?B?dlZ4a09Eb1dVN0NMeDUvWTYyV3hIQmZDc25uV29CaitPQVhaOWdidmJGeXBy?=
 =?utf-8?B?VExydURWVUdteG9GNGZPTm02a1EwTVdqNzFuTnc5TWprNWdsQjVSNWE5eGEr?=
 =?utf-8?B?V21tWk0xd0RBNVF5WDZEVVpxaE45ek9uR21oNTVrWDY4TUkxWHhXSzEwTEJq?=
 =?utf-8?B?Z2tvUk9BbXFWeDZLTkYrbDJpUU1aczRvaU4rdFFQRUpDSlQ5bTllYkkvTXNH?=
 =?utf-8?B?N2FHbnVpZW43Q05WY0RyWSsrQm1ZellJRmtUM3FIYlZCZEJweXd2ODhsYUVp?=
 =?utf-8?B?OStVcVJDbzArbUF1azlDT3FkTSsyOEhNYUFSL0hVZlFwRFRtblUvcnhPOGU3?=
 =?utf-8?B?d0V0SVYyVXRDRElxdUJoa0x2ZVBrMEtEdTVwbjBvUnhIbUpaRUdkVTRxVzdZ?=
 =?utf-8?B?VFBIM1NCeUxQSnpvUnhhTDJ3ODlKdGdTV2ZLZ0VENHNvVUtWTitSVEF6dXRO?=
 =?utf-8?B?MFduYjR0N25ITTl4ZWRYWVArdHlqR2IzV01LMDVoN3F6cC9iMXBkaE4zRGgy?=
 =?utf-8?B?ZXlHanpxbjF6YXhWdUdnRVc3bW40R080S3piWlI5MXJ5LzZCbWd1SnFVN2RC?=
 =?utf-8?B?Z1pmVGhxeE9PempuNFlqbjRPZ2RGa2FPS0Z3cjlVc1RkcTVYaEVTR0dMQmVh?=
 =?utf-8?B?NzZqV3Z3b3RUa2VTN0ZHS3JJTmt1VVRoOW56VmdtdHNCRmN6YjVzSDNyUXQ2?=
 =?utf-8?B?TkEwbnVlT3BvdzBNSnYzZ1AzTVNheDkwSlp2SDB5d0lGakRvSlhGUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7becf6c4-3fc5-41ff-48ed-08de7b85ecf4
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2026 13:40:27.1235
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: fUdS/PfFtcuIR2jwS0AB/b0I/Tvphbi/R4H9kK5b6H4TFseRkOlWgIs0Asmx7/YmRGZb8EEq8OPt2MYW3Ij8ag==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5196

On Thu, Feb 19, 2026 at 12:44:47PM +0000, Julian Vetter wrote:
> 
> 
> On 2/9/26 14:16, Roger Pau Monné wrote:
> > On Mon, Feb 09, 2026 at 11:34:18AM +0000, Julian Vetter wrote:
> >> x2APIC guests with more than 128 vCPUs have APIC IDs above 255, but MSI
> >> addresses and IO-APIC RTEs only provide an 8-bit destination field.
> >> Without extended destination ID support, Linux limits the maximum usable
> >> APIC ID to 255, refusing to bring up vCPUs beyond that limit. So,
> >> advertise XEN_HVM_CPUID_EXT_DEST_ID in the HVM hypervisor CPUID leaf,
> >> signalling that guests may use MSI address bits 11:5 and IO-APIC RTE
> >> bits 55:49 as additional high destination ID bits. This expands the
> >> destination ID from 8 to 15 bits.
> >>
> >> Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
> >> ---
> >>   xen/arch/x86/cpuid.c                   |  9 +++++++++
> >>   xen/arch/x86/hvm/irq.c                 | 11 ++++++++++-
> >>   xen/arch/x86/hvm/vioapic.c             |  2 +-
> >>   xen/arch/x86/hvm/vmsi.c                |  4 ++--
> >>   xen/arch/x86/include/asm/hvm/hvm.h     |  4 ++--
> >>   xen/arch/x86/include/asm/hvm/vioapic.h | 13 +++++++++++++
> >>   xen/arch/x86/include/asm/msi.h         |  3 +++
> >>   7 files changed, 40 insertions(+), 6 deletions(-)
> >>
> >> diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
> >> index d85be20d86..fb17c71d74 100644
> >> --- a/xen/arch/x86/cpuid.c
> >> +++ b/xen/arch/x86/cpuid.c
> >> @@ -148,6 +148,15 @@ static void cpuid_hypervisor_leaves(const struct vcpu *v, uint32_t leaf,
> >>           res->a |= XEN_HVM_CPUID_DOMID_PRESENT;
> >>           res->c = d->domain_id;
> >>   
> >> +        /*
> >> +         * Advertise extended destination ID support. This allows guests to use
> >> +         * bits 11:5 of the MSI address and bits 55:49 of the IO-APIC RTE for
> >> +         * additional destination ID bits, expanding the addressable APIC ID
> >> +         * range from 8 to 15 bits. This is required for x2APIC guests with
> >> +         * APIC IDs > 255.
> >> +         */
> >> +        res->a |= XEN_HVM_CPUID_EXT_DEST_ID;
> > 
> > This cannot be unilaterally advertised: you need a QEMU (or in general
> > any device model that manages PCI passthrough) to understand the
> > extended destination mode.  This requires the introduction of
> > a new XEN_DOMCTL_bind_pt_irq equivalent hypercall, that can take an
> > extended destination ID not limited to 256 values:
> > 
> > struct xen_domctl_bind_pt_irq {
> > [...]
> >               uint32_t gflags;
> > #define XEN_DOMCTL_VMSI_X86_DEST_ID_MASK 0x0000ff
> > 
> > When doing PCI passthrough it's QEMU the entity that decodes the MSI
> > address and data fields, and hence would need expanding (and
> > negotiation with Xen) about whether the Extended ID feature can be
> > advertised.
> > 
> > It would be good to introduce a new XEN_DMOP_* set of hypercalls that
> > support Extended ID to do the PCI passthrough interrupt binding.
> 
> Thank you for your feedback. But wouldn't it be enough if QEMU extracts 
> the additional bits from the gflags and pass it on to XEN?

Possibly, you need to use the still unused 7 bits at the top of the
flags field AFAICT.

> In 
> pt_irq_create_bind I already extract the additional bits. In QEMU the 
> function msi_dest_id would just need to extract the additional bits 
> before calling xc_domain_update_msi_irq. The gflags argument in 
> xc_domain_update_msi_irq is 32Bits, so there is enough room to pass the 
> additional bits. What do you think?

It's possible.  However there's still a question of how does QEMU
signal Xen that it implements the extended destination logic?? QMEU
and Xen are two separate components, and Xen cannot unilaterally
advertise support for Extended IDs if QEMU doesn't actually implement
it.  You need some kind of negotiation between the device model and
Xen.

It would IMO be way better if we could simply avoid having to parse
the MSI address and data fields in QEMU, and just forward them to Xen.
Then Xen could interpret them in whatever format it wants, and there
would be no negotiation needed between QEMU and Xen.

XEN_DOMCTL_{un}bind_pt_irq hypercalls have no reason to be domctls, it
would be much better if we introduced equivalent DM ops, as that would
remove toe usage of two unstable hypercalls from QEMU and would
bring us closer to QEMU not being tied to running Xen version.  Hence
my recommendation to take this opportinity to introduce a new pair of
DM ops to replace those domctls.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Mar 06 14:22:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 14:22:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247796.1546230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyW3r-00028e-FE; Fri, 06 Mar 2026 14:21:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247796.1546230; Fri, 06 Mar 2026 14:21:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyW3r-00028X-Cg; Fri, 06 Mar 2026 14:21:51 +0000
Received: by outflank-mailman (input) for mailman id 1247796;
 Fri, 06 Mar 2026 14:21: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=1WzZ=BG=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vyW3q-00028M-ER
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 14:21:50 +0000
Received: from BN8PR05CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c110::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9537522a-1967-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Mar 2026 15:20:10 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by IA3PR03MB8456.namprd03.prod.outlook.com (2603:10b6:208:53c::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18; Fri, 6 Mar
 2026 14:20:07 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.017; Fri, 6 Mar 2026
 14: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: 9537522a-1967-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HyDyyH3UZz3LLNqtdQFrTZGfKRQSQPYdRjWToHF/2ILjBPrB4NQFkbLkuoU1UmKG7Ln4oFqDEC/ELmBXLR+n2vRsAwLhIKoSiov9U9MkzxiEfwCSUD52HmryQKCLKTKhcLuEH4xPviAS6UZltxtUWXgcotujLwmcaBofoEuSn7kV1EaeomJrnWxA/Hc8caHPvioTz8L4tf28E87gbxAVWtLVS9OrqYMOqLLBJhuFR47rgZtl2q8ApEZ08K5FfUtLuqqXbQN/maPF2xdeDHmRmQkwAqxKmJozSNmj9QjxmY/a+zI5Bvg2l1mJJ6mPFqerfCyYVkqdkYtkq0w8NFmRTQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2EU4qSkvZhAQNhEkyrOIgureEUnebpHF+nXMaNnoQdY=;
 b=VGKs6eNGrOu8ffdBin/J65Yms4uy6/d2P5NySTXzcUdrF0IgSTVqzlq24o/cjiX4i8A9Ho9Wdy4oECFUOAna+oJ2xRcBMk6vC7zRIz41Xu9Kd4cJweBUCeqQvg12GypIKn7AaakfsPUYkP4VW3o7aWmGXKZOQl8zc7sp/N0dwQCxolrFlqrC3qMR6nX2ihWQtQDXitRZ84bkWueidrMyvoUFH8j8hX1eegw8MOEZB9vrUBVvp/0zz8P3Usr+a3lmVNFTseUQqE7+UnlWYdIaI+tzTn50Cf2pJKyFZzUfSzSAs7HFi1WU4J+Ipeq32wX3weLvKcRNu6loaovkimczPw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2EU4qSkvZhAQNhEkyrOIgureEUnebpHF+nXMaNnoQdY=;
 b=MJcHjJ5+Q0vXTSUPZ1sW4Sm0I8WsWZud2Btk95KDAByUIxJZNnn9r6EidjJwy8IEADNJTyLD9plKrnkAyI55viygdfhPBLTjA3TT1lAd3QZo/OESVdyzavYHP8A4BECvSAqYk8P7mKCYckKB4luW5q8uhy/Nmikc3pNHOJtj2yA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 6 Mar 2026 15:20:03 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	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] core-parking: shrink and relocate core_parking_cpunum[]
Message-ID: <aarik2Zlgxc6-Ffp@macbook.local>
References: <af03f611-ef38-49d0-ac7b-4bad39db46c1@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <af03f611-ef38-49d0-ac7b-4bad39db46c1@suse.com>
X-ClientProxiedBy: MR1P264CA0206.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:56::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_|IA3PR03MB8456:EE_
X-MS-Office365-Filtering-Correlation-Id: b344f33b-43f2-47ab-7077-08de7b8b77a0
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:
	4yburyWBAJKpVvUzW3YByqlmoKnnWk7iUnFV6eoDajoxH9omh9x+yv4x923zNK2T4SjIBylQOt1dP4KIIp8PEvcTnoTDjK2IXQUbsy74cFRSafjWVuvtxeuleue/JXfIfP6q0lw4AxO4QF9THtrhqoW8o3tnuI/8h9vS1F7DYnMVBLOqGtX9cqYn4sImccxFYIa2Cy/eF+u7nD4Y+zznDu0ASXB9dlyHSvoBBguF7oXG1K9p7ojdIH4Vw0Eq4IytF9jXU95niBg7N42lD1B+fh3D1LXZLqIa2bmVPC5R62M0XXnqTKqgCA8FJVBJ8s40YM0HGiE+vRM5FPBQThC6+LSa5RrM+s8IO9xnmmhf6hDsvvaISGJ+dHzG7KLmBLRM7uOEiM0umrQIgEUHusEUgVAUYUyYEeltVl6mun9t3lCBZttACXdQhobR5wabbPru32H3WcDSKQjazPOKAEqPXsnUpwagjYteQcghsuorI7bgToi/vG3NcGgdircd3XVNyPDavuQxJ6/9WlQSZ498G4JMIt0Rvu7b/ZTDjnbMEOA/ZdZZisEjKs4XjVtY3ZxADGEmIRC+6kAM9QzhnTiVjSYh//M6s+6NfFKeOo1j8dQuCRsuJS7EEEF5q6xFuhwCaIQLTR/0A32lASr4SrGaeC/pCBWlVZY6asAja1tl2VNPQFuF+i9WTg2VSddgzTkWEUKc8E7C3dv/23Y/ZMU9pTq68D1kJYEAGTT3Ip7AYLY=
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?bk9sdG01OFphZEZXSzNBdWkzY3hpVlNwKzR0dWs2cnQrUUdEc3AxMTgyWEYw?=
 =?utf-8?B?dmtLYXU3VlFQVklGK1lNdEU0UUx1dmkrTEMrc2sxZmd5eFBaN3lObnZMVVdp?=
 =?utf-8?B?bGc3NmhnQ1Z4NHFqTUt0QkxSUURDWjhpdHNhZVdRK0pQeXlEZGM4MlhqNTBX?=
 =?utf-8?B?Z0ZLb1dON2JBakhCTXhPdnpiYS9KMWhjQzB4Vzc1OTE2MytlZFJCRTZQRXE2?=
 =?utf-8?B?VEEwcjg2WXZ1aExvalRlRUU4ZXozZm9lZjdLdGhwUEg4Wi83YUdpMFdrMWJw?=
 =?utf-8?B?QmFKYW5sSzJtN0pDVkpKNWJGamlHZ1ZUK1J1QnZnaE1WQnRLN0lXcGlMcWFE?=
 =?utf-8?B?TlJlTmFqWTlsSzMrQlU4Vkl3WERSYkZkVUt1WE5KNHloNWV2YlZOQmhnYlZV?=
 =?utf-8?B?NHE0NWxrVEtuM0dETXdVNEE5bSttNjVZS0lEZjBQZkdhTzJZMzd0Y2FQaDVr?=
 =?utf-8?B?aVJlcVlvRlpkZC9DN1gxOUNXZjhPM1pxTVh4d0hoS0FJOHRCUGx4V1JiSnEx?=
 =?utf-8?B?enRsZDJmaUlOSTVPZFMyT09jOXlJTXU5ODYzdGo3c3BpNHBFb3FJK25oSkJX?=
 =?utf-8?B?VVBuMlcrZGlhZkU0dzB2d3ZsbisxWUVqYVl5aWdhaEJGclNnUENUbGRzMHln?=
 =?utf-8?B?VnQybjJ1bmd6cW9KSndrVmt4Q2tBLzh4LzQwNUMrVVp6Q0ZvTlhGQWh6WlF4?=
 =?utf-8?B?c0lybGVNK01wT21YdUg5Sm1aTmhQVWJmNjFSSGU2Nkt0MytSNjljK2k1SlR6?=
 =?utf-8?B?K2hwbmJDL2xJV0I5MW1jZi9HZEltMFlQYVdSdGwrYUpQcnNqaXl3bzVOMDUx?=
 =?utf-8?B?dHp6QzlKeHlJSmMzYTgwdGp1cU4xVklldFpnbW5hR2pJVTVtRmt1YW16dHFa?=
 =?utf-8?B?MEs2Nm5mckl3b0hrOCsyMmZ1VzJTd2pBemYvbXJCSVd4VWFuN0xvaStlcnZN?=
 =?utf-8?B?Y0lMcDcydmR3ZGdlNXFaWVNxdjA5V3k4L2xGK21Nd2dFS1ZoV3BPbHB2ZlY1?=
 =?utf-8?B?dUtwMVV6MUx3ZGlJem9ZRXVkZUVWbVY3Nkt4RktOR255VFFuN3BZUi93QWp0?=
 =?utf-8?B?ZnJUVm0vTUJUeEo4WHRIbFNyM3FKSk8xS25ORW9QcDlsRDhyY0NycWVLYlNG?=
 =?utf-8?B?aDA0a3E1T05PYnRjYlRkZU5ZSm5HWUVORUFMcHNBZVFuYVptZzJKSnNGbWE5?=
 =?utf-8?B?UWFJZ0hkV3VySDEzdjl4dTl1UnEyVzJhai9pcjJ6dkJpcSsvU3R0eTc3aG5I?=
 =?utf-8?B?eEYwUjlPOE1tRmJINzVoR1gxOXhEUmpqaUtESFR6VUZjakU1NWUrVVo2SXg1?=
 =?utf-8?B?TFNpRnAzckRtelltOFM1bHhtcGRYREhPczErQmFTa1A3Zit4OHhuQmRMaXlX?=
 =?utf-8?B?Uzc4WFRIR01FbzcvNU9LUmNCRWJHVnR5dFc3cHplY2xqMDFJVzZYRFlWS2lX?=
 =?utf-8?B?Vlc3U1pzRERXRVpwc2kwaVcyVmg5OHFVdmRKWFZDMkoyOEhGMU0rSXJYVElB?=
 =?utf-8?B?dGFySGVsbkhWckV3RW9Yd3l3S3hpdUNDenl5Rzk3S0NHRTFRbE5UMnc2b214?=
 =?utf-8?B?RHJSbkRxSkFla1NXejhSRVdUdTc2SzJrTmliUXNyaFZ6Z0NNZEM4aDFyUW1i?=
 =?utf-8?B?d2lLaTRDT2JQQ1B2MjNaQnhjWmM4aFg3SnB2OVZicTNsWHpMNmE4Yk5Ia0JE?=
 =?utf-8?B?UGJvaklGdDczZ2YydHZEZmljUTR5MmorSmRCRDBnV1NkSkdkRUpvRTN6SWVX?=
 =?utf-8?B?V2p2Mk9BZ0QxSEoyQjNJZk80SUVJUGxtMmYxYkFaS0cvTjdvalY1SXJqcDlp?=
 =?utf-8?B?WDg4ZHFNUEZ2YzhKWmFBV28zQWRDamlkd09Rem40SksvU2dPa05KV3FaUDJK?=
 =?utf-8?B?eGtjV3hGQ3BPck9wWVM4TURTRXUyaXIwZjNuMllqWEZNTHU2OC9FNVVOWVNV?=
 =?utf-8?B?WENqY0g2bzFoeGRmaDVvc2NsWlJtTUNsb21VcGlzUlZiaEtFQ3E3YVZQbm9Z?=
 =?utf-8?B?QnlUVk14bTFhdXNrZUU5LzVkOFZMUFdZYWFOdDJCbG9rWGNlVkNoRkh4TUhE?=
 =?utf-8?B?M3BlNmo3WGlsMWtaWFlGWjBRQ0tpSEhtbWt3NC9lOE5yYWxrb0drV0wyTXFu?=
 =?utf-8?B?YVpMQ0VXanpISnFLeGdsVmVOUFRJWFduanZzbXFEbUFEQUxXT0ZKeUs4bVFO?=
 =?utf-8?B?YmtnN2ZwMHNLMElWNERBcXVKQjZGSEVlbEFKNml4U2NjS2VMVUlPcHVYVEo3?=
 =?utf-8?B?aEF5L1EycW9sUmhOYlVDc0o0eDlTT1ZENE45R2hzQm9QZ0xjZFRGR3A1Vk1j?=
 =?utf-8?B?UTgyRlRPcWNlQjZVTmN0TkdnOXgzQTEvUkJvQ20xSGl6Y0tLUEJEdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b344f33b-43f2-47ab-7077-08de7b8b77a0
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2026 14:20:07.6346
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: X2K3mzJpnpCQevumkBoopuWOIHKz3pdrOEJOdeKxLFI0Usqbv0caGX1A/XYmknnkWNl5xuwzOVTpoo484oqgfQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR03MB8456

On Wed, Nov 12, 2025 at 04:38:13PM +0100, Jan Beulich wrote:
> 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.

Can't we just allocate this memory using xvzalloc_array()?  If we do
care about it being too big certainly allocating only when needed, and
based on the number of possible CPUs on the system would be much
better than playing games with the array type?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Mar 06 16:26:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 16:26:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247919.1546297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyXzu-0000xD-NN; Fri, 06 Mar 2026 16:25:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247919.1546297; Fri, 06 Mar 2026 16: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 1vyXzu-0000wN-JU; Fri, 06 Mar 2026 16:25:54 +0000
Received: by outflank-mailman (input) for mailman id 1247919;
 Fri, 06 Mar 2026 16:25: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=k/aL=BG=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vyXzt-0000to-MV
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 16:25:53 +0000
Received: from na1pdmzitismtp02.tibco.com (unknown [160.101.131.9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 220ad409-1979-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Mar 2026 17:25:48 +0100 (CET)
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTPS id 093EE81CB7A9;
 Fri,  6 Mar 2026 11:25: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: 220ad409-1979-11f1-9ccf-f158ae23cfc8
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v3 0/1] avoid duplicate symbol errors with clang
Date: Fri,  6 Mar 2026 16:25:42 +0000
Message-ID: <cover.1772813802.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The previous attempt with .ifndef is not necessarily always correct,
and may lead to subtle bugs. The instructions executed from the
emulator would always come from the first (and now only) labeled block.
Although the approach worked with the existing tests, it may have broken
again when more instructions are added in the future.

Using -O0 achieves the same outcome as the .ifndef patch (being able to
compile the tests with clang), without the drawbacks.
Only added -O0 to the test runner code, which is not performance
critical.

This is a workaround, if a better solution is found then this can be
removed.

Edwin Török (1):
  tools/tests/x86_emulator: avoid duplicate symbol error with clang: use
    -O0

 tools/tests/x86_emulator/Makefile | 5 +++++
 1 file changed, 5 insertions(+)

-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 16:26:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 16:26:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247918.1546291 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyXzu-0000u6-Fd; Fri, 06 Mar 2026 16:25:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247918.1546291; Fri, 06 Mar 2026 16: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 1vyXzu-0000tz-D5; Fri, 06 Mar 2026 16:25:54 +0000
Received: by outflank-mailman (input) for mailman id 1247918;
 Fri, 06 Mar 2026 16:25: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=k/aL=BG=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vyXzt-0000to-1k
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 16:25:53 +0000
Received: from na1pdmzitismtp02.tibco.com (unknown [160.101.131.9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 23815a59-1979-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Mar 2026 17:25:51 +0100 (CET)
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTPS id 7130681CBF11;
 Fri,  6 Mar 2026 11:25:15 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 23815a59-1979-11f1-9ccf-f158ae23cfc8
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v3 1/1] tools/tests/x86_emulator: avoid duplicate symbol error with clang: use -O0
Date: Fri,  6 Mar 2026 16:25:43 +0000
Message-ID: <a4a29c95b06a0352889bb6c032c19be6e4cf8288.1772813802.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <cover.1772813802.git.edwin.torok@citrix.com>
References: <cover.1772813802.git.edwin.torok@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

clang would duplicate the loop body and end up with a double definition
of the symbol:
```
/tmp/test_x86_emulator-0f3576.s:27823: Error: symbol `vmovsh_to_mem' is already defined
/tmp/test_x86_emulator-0f3576.s:27825: Error: symbol `.Lvmovsh_to_mem_end' is already defined
```

Until a better solution is found: disable all optimizations in the test runner.

Using -Os might also work, but we can't rely on the size optimization
always avoiding the duplication of asm blocks.
This is test code, not performance critical code, and -O0 is more future
proof.

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
---
Changed since v2:
 * use -O0 instead of .ifndef (with ifndef the 2nd iteration would use code identical to first)
Changed since v1:
 * use .ifndef directive instead of volatile workaround
---
 tools/tests/x86_emulator/Makefile | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tools/tests/x86_emulator/Makefile b/tools/tests/x86_emulator/Makefile
index 5003c464f3..ba1d27177f 100644
--- a/tools/tests/x86_emulator/Makefile
+++ b/tools/tests/x86_emulator/Makefile
@@ -323,4 +323,9 @@ x86-emulate.o x86_emulate/%.o: HOSTCFLAGS += -D__XEN_TOOLS__
 $(call cc-option-add,HOSTCFLAGS-toplevel,HOSTCC,-fno-toplevel-reorder)
 test_x86_emulator.o: HOSTCFLAGS += $(HOSTCFLAGS-toplevel)
 
+# clang duplicates inline assembly when unrolling loops,
+# which causes a duplicate label error.
+# Until a better solution is found: disable all optimizations in the test runner.
+test_x86_emulator.o: HOSTCFLAGS += -O0
+
 test_x86_emulator.o: $(addsuffix .h,$(TESTCASES)) $(addsuffix -opmask.h,$(OPMASK))
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 16:33:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 16:33:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247972.1546315 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyY7U-000348-LJ; Fri, 06 Mar 2026 16:33:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247972.1546315; Fri, 06 Mar 2026 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 1vyY7U-00033o-GU; Fri, 06 Mar 2026 16:33:44 +0000
Received: by outflank-mailman (input) for mailman id 1247972;
 Fri, 06 Mar 2026 16:33:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RAjd=BG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vyY7T-00030j-Ew
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 16:33:43 +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 3c87ec6e-197a-11f1-b164-2bf370ae4941;
 Fri, 06 Mar 2026 17:33:41 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-439aa2f8ebaso4138738f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 06 Mar 2026 08:33:41 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dae57c05sm4406550f8f.39.2026.03.06.08.33.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 06 Mar 2026 08:33: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: 3c87ec6e-197a-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772814821; x=1773419621; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CmbbmA8PgeTF4OMY1R9mkMVOPj+EWhxjWMhkhMqQixw=;
        b=mt6XOoSBpqL5RjnQGdAQcigJHrRF2kgeuKl1kMY1nKq2adZ4nI4MHD8DQma9xxve3y
         Jrs4UVCdZfFBwi275d2Zq2CBhglHblYmDRQxSOMR/9WbkpYitLp1XPk2SVh93AO8btX3
         F4uCr77wt67dhNyO5oIPdmgGELQoa5xc7fqnVX9DlwdQpzuF++55gypKVMMm5VKrG8O0
         /wot/Dk6AjO8lt6Ous9KxQNuaRA53AuLxyBwsL7t+KOSSlnLgYOCCgX4nKmnnALKOroN
         rg3XpSi/pMmwnVdarLHhiEkxhRYj0phnqHvLd2H0G7hkjT5xTxEdXLUoWxLDLYhVailz
         CnNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772814821; x=1773419621;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=CmbbmA8PgeTF4OMY1R9mkMVOPj+EWhxjWMhkhMqQixw=;
        b=qv1/AGNTx+r9gmJQYBIkb8u8FYGoC/sSeCr8JCy9zd9AYku3b3Eq1/Ke+dCyxhnU6X
         jKM8u6j5MqEBcAnnhV8Qki1qGpmGbd7CTBYVIeSF0mgK6RCId1OSnJx3DXSH2Ar9tr23
         LN2k/J2qC0+XDglcdCB5RjWT9xjDFTxd9BWRaokeXj90YFADNi/rdPAGHl9wD+ZNyACW
         QRBzxjyS//L+BHD7uNaO6ezFWeIRYp/qXJZyPOgg+hOL8yukgVuCWm+5EiarlKDfJwtp
         e0qa416kuLq72jxk8SCsSBpaT0DOAk0EE6BDwr9bS+IGhXHeeBW+kjkeEvejp5581pcC
         Th8w==
X-Gm-Message-State: AOJu0YzoFswGwjb+vOJXKacpXyf0kLcoVC8Gr9gJl3uIfHTCY4ijvhdr
	laE0N0neh8AKuLhhF2kuj1A6iyC0n01qbe2yNFMBsLRByUaM57g/Ni/OHuiglQ==
X-Gm-Gg: ATEYQzxtB0P+cHXbMSF5ksOoiBkK1wU163U21kmRQw34f3MzATz34o9eAqLAqXGLDUG
	7dnfoK9M7P1vjhAHbLVCG5Us5sxRKaWHwxcfY+y4nt+4sZrT+zRaSMUVUz7JgPE3u3ZwwCqAIxo
	2FkmKonT2WabknwieQoexAwgGPboHlCKcfwnu+jBtG7w55aggSISV/2oDuN7ep1uHd1Iw29v8lx
	lr8hHA7FbNBcYeqA8HYZlZGMQjQ4Om5vlMkkAv7fNb1RFDxpZEzGmUs07KXl969vyPiMD4RW7Sh
	JwXW0wh9AnZqCYN8+el5uVjVGetheNBwd/fqpxAXNKpJiZRtjKfjo7ijrRBiXhVyEkQwxy/6MtY
	scyrWEWkqmTs//0nPuIFdbeyvfv7shbt4Pyy4zZOnoPDnytFN+CYavw5YWDt5HClWjz7aAHUmGD
	UI0/OaKFBCjYO9fR8pc5fUTX2orwDXkhUdUuHZwxuBLV0BHWBwoSbDmZsVODXwKLRMkgKF8AYrn
	6m4
X-Received: by 2002:a05:6000:2313:b0:431:808:2d58 with SMTP id ffacd0b85a97d-439da8a147bmr5202646f8f.51.1772814820844;
        Fri, 06 Mar 2026 08:33:40 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 01/14] xen/riscv: detect and store supported hypervisor CSR bits at boot
Date: Fri,  6 Mar 2026 17:33:18 +0100
Message-ID: <3201951150104f17593e16c7ba00ada51ac1e10f.1772814110.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772814110.git.oleksii.kurochko@gmail.com>
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Some hypervisor CSRs expose optional functionality and may not implement
all architectural bits. Writing unsupported bits can either be ignored
or raise an exception depending on the platform.

Detect the set of writable bits for selected hypervisor CSRs at boot and
store the resulting masks for later use. This allows safely programming
these CSRs during vCPU context switching and avoids relying on hardcoded
architectural assumptions.

Use csr_read()&csr_write() instead of csr_swap()+all ones mask as some
CSR registers have WPRI fields which should be preserved during write
operation.

Also, ro_one struct is introduced to cover the cases when a bit in CSR
register (at the momemnt, it is only hstateen0) may be r/o-one to have
hypervisor view of register seen by guest correct.

Masks are calculated at the moment only for hedeleg, henvcfg, hideleg,
hstateen0 registers as only them are going to be used in the follow up
patch.

If the Smstateen extension is not implemented, hstateen0 cannot be read
because the register is considered non-existent. Instructions that attempt
to access a CSR that is not implemented or not visible in the current mode
are reserved and will raise an illegal-instruction exception.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V7:
 - Use csr_read_set() in INIT_CSR_MASK() instead of csr_read()+csr_write().
 - Add undef of INIT_CSR_MASK().
 - Move local variable old above INIT_CSR_MASK().
 - Introduce INIT_RO_ONE_MASK() to init csr_masks.ro_one.* fields.
 - Introduce defines for masks intead of constants.
 - Move old variable inside macros INIT_CSR_MASK() and INIT_RO_ONE_MASK().
---
Changes in V6:
 - Introduce sub-struct ro_one inside csr_masks to cover the case that
   hstateen0 could have read-only-one bits.
 - Refacotr init_csr_masks() to handle hstateen0 case when a bit is r/o-one
   and handle WPRI fields properly.
 - Update the commit message.
---
Changes in V5:
 - Move everything related to csr_masks to domain.c and make it static.
 - Move declaration of old variable in init_csr_masks() inside INIT_CSR_MASK.
 - Use csr_swap() in INIT_CSR_MASK().
---
Changes in V4:
 - Move csr_masks defintion to domain.c. Make it static as at the moment
   it is going to be used only in domain.c.
 - Rename and refactor X macros inside init_csr_masks().
---
Changes in V3:
 - New patch.
---
 xen/arch/riscv/domain.c            | 57 ++++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/setup.h |  2 ++
 xen/arch/riscv/setup.c             |  2 ++
 3 files changed, 61 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index b60320b90def..32974cb48929 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -2,9 +2,66 @@
 
 #include <xen/init.h>
 #include <xen/mm.h>
+#include <xen/sections.h>
 #include <xen/sched.h>
 #include <xen/vmap.h>
 
+#include <asm/cpufeature.h>
+#include <asm/csr.h>
+
+struct csr_masks {
+    register_t hedeleg;
+    register_t henvcfg;
+    register_t hideleg;
+    register_t hstateen0;
+
+    struct {
+        register_t hstateen0;
+    } ro_one;
+};
+
+static struct csr_masks __ro_after_init csr_masks;
+
+#define HEDELEG_AVAIL_MASK ULONG_MAX
+#define HIDELEG_AVAIL_MASK ULONG_MAX
+#define HENVCFG_AVAIL_MASK _UL(0xE0000003000000FF)
+#define HSTATEEN0_AVAIL_MASK _UL(0xDE00000000000007)
+
+void __init init_csr_masks(void)
+{
+    /*
+     * The mask specifies the bits that may be safely modified without
+     * causing side effects.
+     *
+     * For example, registers such as henvcfg or hstateen0 contain WPRI
+     * fields that must be preserved. Any write to the full register must
+     * therefore retain the original values of those fields.
+     */
+#define INIT_CSR_MASK(csr, field, mask) do { \
+        register_t old = csr_read_set(CSR_##csr, mask); \
+        csr_masks.field = csr_swap(CSR_##csr, old); \
+    } while (0)
+
+#define INIT_RO_ONE_MASK(csr, field, mask) do { \
+        register_t old = csr_read_clear(CSR_HSTATEEN0, mask); \
+        csr_masks.ro_one.field = csr_swap(CSR_##csr, old) & mask; \
+    } while (0)
+
+    INIT_CSR_MASK(HEDELEG, hedeleg, HEDELEG_AVAIL_MASK);
+    INIT_CSR_MASK(HIDELEG, hideleg, HIDELEG_AVAIL_MASK);
+
+    INIT_CSR_MASK(HENVCFG, henvcfg, HENVCFG_AVAIL_MASK);
+
+    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
+    {
+        INIT_CSR_MASK(HSTATEEN0, hstateen0, HSTATEEN0_AVAIL_MASK);
+        INIT_RO_ONE_MASK(HSTATEEN0, hstateen0, HSTATEEN0_AVAIL_MASK);
+    }
+
+#undef INIT_CSR_MASK
+#undef INIT_RO_ONE_MASK
+}
+
 static void continue_new_vcpu(struct vcpu *prev)
 {
     BUG_ON("unimplemented\n");
diff --git a/xen/arch/riscv/include/asm/setup.h b/xen/arch/riscv/include/asm/setup.h
index c9d69cdf5166..2215894cfbb1 100644
--- a/xen/arch/riscv/include/asm/setup.h
+++ b/xen/arch/riscv/include/asm/setup.h
@@ -11,6 +11,8 @@ void setup_mm(void);
 
 void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len);
 
+void init_csr_masks(void);
+
 #endif /* ASM__RISCV__SETUP_H */
 
 /*
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 9b4835960d20..bca6ca09eddd 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -137,6 +137,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     riscv_fill_hwcap();
 
+    init_csr_masks();
+
     preinit_xen_time();
 
     intc_preinit();
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 16:33:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 16:33:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247971.1546309 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyY7U-000311-DF; Fri, 06 Mar 2026 16:33:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247971.1546309; Fri, 06 Mar 2026 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 1vyY7U-00030u-9x; Fri, 06 Mar 2026 16:33:44 +0000
Received: by outflank-mailman (input) for mailman id 1247971;
 Fri, 06 Mar 2026 16:33:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RAjd=BG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vyY7S-00030j-QG
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 16:33:42 +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 3bf053f2-197a-11f1-b164-2bf370ae4941;
 Fri, 06 Mar 2026 17:33:41 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-439b7a87fb5so3755447f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 06 Mar 2026 08:33:41 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dae57c05sm4406550f8f.39.2026.03.06.08.33.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 06 Mar 2026 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: 3bf053f2-197a-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772814820; x=1773419620; 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=Tk71eqXgwXytuAS2ZjjNkmU2hi0kcr9lEEqFsgwbDFA=;
        b=GJvR+FzGt/+QNcgJTeygcXgCgdsEIvUSWgpXlyMu5CqWy9F9SLTZtsVdjbiytt9WPV
         VUJ2ra4o/ViCf9ohMOAOecz5DmFT0ypx9v4KUkfft2P5XvWUixEYJA4fqgId3Exw0EmX
         sQbR1JjSztsJD1rxgrIDFxdskJxmuZZHbrbLKOPA8Dlz3rHt8flAFaUr2v5eTyzRaepP
         dosY0llyAOCx7ZEO291rsOiq7LeB6ovijlTMwU0wFDQrwe2EqS/GRk95PajncrBl6bRc
         /OOPvnTuZPPRspTF+VhT+axg2YXb8P0iJpebA2HgGtD/5yNe6F6rStHjmN35YCrAXHIC
         Cnmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772814820; x=1773419620;
        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=Tk71eqXgwXytuAS2ZjjNkmU2hi0kcr9lEEqFsgwbDFA=;
        b=FUZzyfgmQ76oJSRzLRjMkrd4gEpj3G77tM2/vqyQ16XwwWcBYfeGx1FPo7H2zFc0zK
         AEJxt7t3aOgNqcldAdF29sTvfz32SbPoNZGfTf5XMXZytpiiZq69wfalTSelYSeNtX9f
         +GDVO729MehqlDPI+lKF7yHfu3foMYKveKuoBubtXmOvQvixgipo9vzW/lIhOCB3YxYb
         IWGkn03lKS4twIa30gJbu5yKFquFOX3kZ5RvxLmfJz7mi2Ruxg3OsSiFECIyK7rddBc6
         OOzUKQTMkz4NngiR8er+wWeUyeVXg5FI3vQ2WZr9rFuR9QP9gX4XUIJ2fj6/ev2hOKXO
         Q91g==
X-Gm-Message-State: AOJu0YymLOpW/gd5hiFTr8MLOCXtRL+A/S0wTxhqkY1YSw1w7CKlqFws
	Pb2G2lfN+5sGi/9VmsJWSRAoku39r7I3p+4z9gR0F80RP3MXStN1mOd+Cn+t+g==
X-Gm-Gg: ATEYQzy0cy2XzN2GrVwRwP9rWKkZAIRPceI0LAJJbFpla1NFRTa3THB7OAqBS881SQh
	D66szOmXSkpwZiFuJpUoisc6fCsTKCHFjXCbk3VhtsQHnOJYN8duAJ5q77yAMdcO4JewB6A6x3k
	NFjICkQ8KEyw/A//17J5ktCtGcKgznThx8uncYvZnaH0AkfufTFTfoknG6OHJnRw3ZZLjoH4x97
	OEfuMyRh7v4e0E0DnsJtULfEdYvTX/Kc1J83hqbdnvIdL7IHoLXMykFlswwXTlA0fSNvDu0jMRS
	Q4JftucgOZOS8JPsHuGEGQ7LJfTlpDuOTc91a6/CuEpXyzSN5C18AseiNgMqoEpke+2CXn6Pho1
	bmK2JDtV2jVPomymU2dPWHO3SM3+7UJbEsn9e/r6vkekDr/Yg/NUW66BKw7A9fnPLwYTeHXr3Cc
	DE3JPDzSALDHT2kP6stONlIRS7Hxkj3Q1kGKJ9oh9g6crNsSG2pNDFMw0IIEqcSxFbDg==
X-Received: by 2002:a05:6000:40cb:b0:439:ba75:7db0 with SMTP id ffacd0b85a97d-439da3488f6mr5176945f8f.1.1772814819810;
        Fri, 06 Mar 2026 08:33:39 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH v7 00/14] xen/riscv: introduce vtimer related things
Date: Fri,  6 Mar 2026 17:33:17 +0100
Message-ID: <cover.1772814110.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This patch series introduces the components necessary to implement a virtual
timer (vtimer).

Since the SSTC extension is not supported by Xen, an emulated (SBI-based)
timer is required. To address this, a virtual timer built on Xen’s timer
infrastructure is introduced, with save/restore support and SBI-based
programming.

To provide full guest software–based timer support, the following components
are also introduced:
- arch_vcpu_{create,destroy}() to initialize the virtual timer and other
  vCPU-related state not directly tied to timer functionality. As part of this
  work, struct arch_vcpu is introduced to describe the internal state of a
  virtual CPU, along with vcpu_csr_init() to initialize the relevant CSR state.
- Support functions required by the virtual timer, including:
  - vcpu_kick(), and a stub implementation of smp_send_event_check_mask()
    (since SMP is not yet supported in Xen), which is used by vcpu_kick().
  - Support for guest timer programming via interception of the SBI legacy
    SET_TIMER call from guest.
  - Implement reprogram_timer() using introduced sbi_set_timer().
  - Initial lockless tracking of pending vCPU interrupts using atomic bitmaps.
- Handling of hypervisor timer interrupts and dispatch into Xen’s generic timer
  softirq.

CI tests: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2368929819
---
Changes in v7:
 - Merged to upstream/staging:
   - xen/time: move ticks<->ns helpers to common code
 - Add Acked-by for Patch 2: xen/riscv: implement vcpu_csr_init().
 - Address comments from ML for patch 1 and 3.
 - Add new patch to detect availabilty of SSTC. IMO, it is okay to have this
   patch separetely as at the moment it won't be an issue if Xen will use
   CSR_STIMECMP to setup its timer. The issue will start to occur when a guest
   will run.
---
Changes in v6:
 - Address comments from ML for patch 1 and 3, and minor update of patch 2
   because of introduced ro_one sub-struct in patch 1.
---
Changes in v5:
 - Merged to upstream/staging:
     xen/riscv: implement arch_vcpu_{create,destroy}()
     xen/riscv: build setup code as .init
 - Rebase this patch series on top of:
     https://lore.kernel.org/xen-devel/5756356294dc066d835269334d0f3347fe24cec4.1771504676.git.oleksii.kurochko@gmail.com/T/#u
   There is no logical dependency, only the potential merge conflict question.
 - Address comments from ML.
---
Changes in v4:
 - Merged to upstream/staging:
     xen/riscv: avoid reading hstateen0 when Smstateen is not implemented
 - Address other comments from ML.
---
Changes in v3:
 - Squash patch "xen/riscv: introduce struct arch_vcpu" into other
   patches of the patch series.
 - Merged to staging:
   - xen/riscv: implement stub for smp_send_event_check_mask()
 - Address other comments from ML.
---
Changes in v2:
 - Add consumer part of tracking of pending vCPU interrupts.
 - Split patch "xen/riscv: init tasklet subsystem" to two.
 - Patches were acked:
   - xen/riscv: introduce vcpu_kick() implementation
   - xen/riscv: implement SBI legacy SET_TIMER support for guests
 - All other changes are patch-specific. Please check them.
---

Oleksii Kurochko (14):
  xen/riscv: detect and store supported hypervisor CSR bits at boot
  xen/riscv: implement vcpu_csr_init()
  xen/riscv: introduce tracking of pending vCPU interrupts, part 1
  xen/riscv: introduce tracking of pending vCPU interrupts, part 2
  xen/riscv: introduce basic vtimer infrastructure for guests
  xen/riscv: introduce vcpu_kick() implementation
  xen/riscv: add vtimer context switch helpers
  xen/riscv: implement SBI legacy SET_TIMER support for guests
  xen/riscv: introduce sbi_set_timer()
  xen/riscv: implement reprogram_timer() via SBI
  xen/riscv: handle hypervisor timer interrupts
  xen/riscv: init tasklet subsystem
  xen/riscv: implement sync_vcpu_execstate()
  xen/riscv: Disable SSTC extension and add trap-based CSR probing

 automation/scripts/qemu-smoke-riscv64.sh    |   2 +-
 xen/arch/riscv/Makefile                     |   1 +
 xen/arch/riscv/cpufeature.c                 |   8 +
 xen/arch/riscv/domain.c                     | 244 +++++++++++++++++++-
 xen/arch/riscv/entry.S                      |  24 ++
 xen/arch/riscv/include/asm/Makefile         |   1 -
 xen/arch/riscv/include/asm/csr.h            |  32 +++
 xen/arch/riscv/include/asm/current.h        |   2 +
 xen/arch/riscv/include/asm/domain.h         |  32 +++
 xen/arch/riscv/include/asm/perfc_defn.h     |   3 +
 xen/arch/riscv/include/asm/riscv_encoding.h |   2 +
 xen/arch/riscv/include/asm/sbi.h            |  22 ++
 xen/arch/riscv/include/asm/setup.h          |   2 +
 xen/arch/riscv/include/asm/traps.h          |   7 +
 xen/arch/riscv/include/asm/vtimer.h         |  20 ++
 xen/arch/riscv/riscv64/asm-offsets.c        |   7 +-
 xen/arch/riscv/sbi.c                        |  40 +++-
 xen/arch/riscv/setup.c                      |   5 +
 xen/arch/riscv/stubs.c                      |  20 --
 xen/arch/riscv/time.c                       |  43 ++++
 xen/arch/riscv/traps.c                      |  20 ++
 xen/arch/riscv/vsbi/legacy-extension.c      |   6 +
 xen/arch/riscv/vtimer.c                     |  86 +++++++
 23 files changed, 603 insertions(+), 26 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/perfc_defn.h
 create mode 100644 xen/arch/riscv/include/asm/vtimer.h
 create mode 100644 xen/arch/riscv/vtimer.c

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 16:33:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 16:33:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247975.1546340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyY7X-0003eV-Il; Fri, 06 Mar 2026 16:33:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247975.1546340; Fri, 06 Mar 2026 16:33:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyY7X-0003ba-Bi; Fri, 06 Mar 2026 16:33:47 +0000
Received: by outflank-mailman (input) for mailman id 1247975;
 Fri, 06 Mar 2026 16:33: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=RAjd=BG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vyY7V-0003HN-WB
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 16:33:46 +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 3dc3ba86-197a-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Mar 2026 17:33:44 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-439b9b1900bso4299530f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 06 Mar 2026 08:33:44 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dae57c05sm4406550f8f.39.2026.03.06.08.33.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 06 Mar 2026 08:33: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: 3dc3ba86-197a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772814823; x=1773419623; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DcWp8tIlICTUgFr+LU+saMi86aGyTwCcvYFlYuFIRRk=;
        b=KRPZG7dZyCZNZGjpBS5IUC7r6ZsyRIZsyuaY7xmyq2EjeZddTAczAlZnTsrp2t2Nek
         nV1ttMciT5mwMEgjdTJAbOidGKv+m8JYqgkHXmN72rY/OugK0Omf7tZTwYCMey9gKaIz
         L9S9N4pOj4gkO6nz7C9uQgTbpLhwZmh2/Cvwh++qqrUPw3B7KqLFeoiUwW92DX4l+uRu
         coFUv2iLTG7JT64Z9KkDTmF4hQ8JSXErV1t6YFeaVW8PtUa5SP20KYUNZrsKFHJEn33N
         I31tWscGFK0mxu/Po9cBdDuSqXoqCbM4BkorOpokZbGOgdcE34BSP1DKoFOGAJkTu1Oe
         SxNA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772814823; x=1773419623;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=DcWp8tIlICTUgFr+LU+saMi86aGyTwCcvYFlYuFIRRk=;
        b=gVZquIZlFhsWifJfLM3eBPufX0BOT96Pj9LUuSAvJFlEHf3ziTiJj62H6ohGkdOPP1
         0Jgw5ZkiiXD4p+qabVi/6dwS62GArelqRa30vhnwdytkb+3eSS3+NAHCXE5k9LAuUG37
         y/khlb9pc8DW8l6ArIPdC6Kp05DrFwPG/Lq+X2Z0X2D+vrf3qJjgmIwt2sOc+fLLLDTT
         juoZAGPpEzWEPwr9y7O8q83ZQTbR+PTaGOUGKreW801ixdgivtGHo3qQPzu+pm2PE3Ll
         3QUznJ+eyuSCDpaEWQgZyvuxrmZEksn9MJqtgLP5J5c8RqK9sA1ncXk9uaIbz6zlvbrm
         0X6A==
X-Gm-Message-State: AOJu0YwfJ9J0cJmVQXGRNfGbWlQtGXIiZDXMyqkSHD5n2hYxxtexDCx7
	oZnLEUxRBEdeiQP/B+xFOP3HDtvH7raB0lLrGQf/IVtIt42jyHpS38JiDA5cSg==
X-Gm-Gg: ATEYQzya5SeRGt0u28B7xfejCZojsYNKeCSaKz7VGi1/OL/VigQze+3qhDfpmgOH4zz
	LiCyxJtpO+zFqaX2uRLz7Q0STeVqw2qMa7T3Qll+8j4vee0/X01Of+zpDHeb0kjTCBLq2bB4iOZ
	IIpUrBctPpJvIZaUQOtenxZk6tjCk3V9W4bBqIXP91VUeXWaaD4lLqeGdOz5AHzWLc85M6KGXvj
	FM5WL5i1bZsUTEGGKrhCDCNkN00ITGCmXDCXlRMI1qe4cnCk5vMtrn4lJJ7IgiAanWR75b8J13v
	c5P0fKLh5ev7qBn4sV0Q9R/OsjoOVd64RhvWJI5ph2DDzHAJkVqMo+8S3Ifa0aHBhCosuB0c3ou
	/aeMtEAFf8HB4366lCkhdlu3dWzYdWB/UXsrDTl6yK/FNO9fMsnnYRm9yrsRLO8Ig17hcNEKu5t
	v5cs+I8rt8rYigWWWXvwYWuKO01uvbN8guhEIzXvIuY/2laSN8P8feBQrk7vc3e8ppdQ==
X-Received: by 2002:a05:6000:26cc:b0:439:cb9f:d635 with SMTP id ffacd0b85a97d-439da8954e4mr4677118f8f.46.1772814823035;
        Fri, 06 Mar 2026 08:33:43 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 03/14] xen/riscv: introduce tracking of pending vCPU interrupts, part 1
Date: Fri,  6 Mar 2026 17:33:20 +0100
Message-ID: <949104bf183688fa0416845fe7e3c19c2c5b2a2d.1772814110.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772814110.git.oleksii.kurochko@gmail.com>
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Based on Linux kernel v6.16.0.
Note that smp_wmb() is used instead of smp_mb__before_atomic() as what
we want to guarantee that if a bit in irqs_pending_mask is obversable
that the correspondent bit in irqs_pending is observable too.

Add lockless tracking of pending vCPU interrupts using atomic bitops.
Two bitmaps are introduced:
 - irqs_pending — interrupts currently pending for the vCPU
 - irqs_pending_mask — bits that have changed in irqs_pending

The design follows a multi-producer, single-consumer model, where the
consumer is the vCPU itself. Producers may set bits in
irqs_pending_mask without a lock. Clearing bits in irqs_pending_mask is
performed only by the consumer via xchg(). The consumer must not write
to irqs_pending and must not act on bits that are not set in the mask.
Otherwise, extra synchronization should be provided.

On RISC-V interrupts are not injected via guest registers, so pending
interrupts must be recorded in irqs_pending (using the new
vcpu_{un}set_interrupt() helpers) and flushed to the guest by updating
HVIP before returning control to the guest. The consumer side is
implemented in a follow-up patch.

A barrier between updating irqs_pending and setting the corresponding
mask bit in vcpu_set_interrupt()/vcpu_unset_interrupt() guarantees
that if the consumer observes a mask bit set, the corresponding pending
bit is also visible. This prevents missed interrupts during the flush.

It is possible that a guest could have pending bit in the hardware
register without being marked pending in irq_pending bitmap as:
  According to the RISC-V ISA specification:
    Bits hip.VSSIP and hie.VSSIE are the interrupt-pending and
    interrupt-enable  bits for VS-level software interrupts. VSSIP in hip
    is an alias (writable) of the same bit in hvip.
  Additionally:
    When bit 2 of hideleg is zero, vsip.SSIP and vsie.SSIE are read-only
    zeros. Else, vsip.SSIP and vsie.SSIE are aliases of hip.VSSIP and
    hie.VSSIE.
This means the guest may modify vsip.SSIP, which implicitly updates
hip.VSSIP and the bit being written with 1 would also trigger an interrupt
as according to the RISC-V spec:
  These conditions for an interrupt trap to occur must be evaluated in a
  bounded   amount of time from when an interrupt becomes, or ceases to be,
  pending in sip,  and must also be evaluated immediately following the
  execution of an SRET  instruction or an explicit write to a CSR on which
  these interrupt trap conditions expressly depend (including sip, sie and
  sstatus).
What means that IRQ_VS_SOFT must be synchronized separately, what is done
in vcpu_sync_interrupts(). Note, also, that IRQ_PMU_OVF would want to be
synced for the similar reason as IRQ_VS_SOFT, but isn't sync-ed now as
PMU isn't supported now.

For the remaining VS-level interrupt types (IRQ_VS_TIMER and
IRQ_VS_EXT), the specification states they cannot be modified by the guest
and are read-only because of:
  Bits hip.VSEIP and hie.VSEIE are the interrupt-pending and interrupt-enable
  bits for VS-level external interrupts. VSEIP is read-only in hip, and is
  the logical-OR of these interrupt sources:
    • bit VSEIP of hvip;
    • the bit of hgeip selected by hstatus.VGEIN; and
    • any other platform-specific external interrupt signal directed to
      VS-level.
  Bits hip.VSTIP and hie.VSTIE are the interrupt-pending and interrupt-enable
  bits for VS-level timer interrupts. VSTIP is read-only in hip, and is the
  logical-OR of hvip.VSTIP and any other platform-specific timer interrupt
  signal directed to VS-level.
and
  When bit 10 of hideleg is zero, vsip.SEIP and vsie.SEIE are read-only zeros.
  Else, vsip.SEIP and vsie.SEIE are aliases of hip.VSEIP and hie.VSEIE.

  When bit 6 of hideleg is zero, vsip.STIP and vsie.STIE are read-only zeros.
  Else, vsip.STIP and vsie.STIE are aliases of hip.VSTIP and hie.VSTIE.
and also,
  Bits sip.SEIP and sie.SEIE are the interrupt-pending and interrupt-enable
  bits for supervisor-level external interrupts. If implemented, SEIP is
  read-only in sip, and is set and cleared by the execution environment,
  typically through a platform-specific interrupt controller.

  Bits sip.STIP and sie.STIE are the interrupt-pending and interrupt-enable
  bits for supervisor-level timer interrupts. If implemented, STIP is
  read-only in sip, and is set and cleared by the execution environment
Thus, for these interrupt types, it is sufficient to use vcpu_set_interrupt()
and vcpu_unset_interrupt(), and flush them during the call of
vcpu_flush_interrupts() (which is introduced in follow up patch).

vcpu_sync_interrupts(), which is called just before entering the VM,
slightly bends the rule that the irqs_pending bit must be written
first, followed by updating the corresponding bit in irqs_pending_mask.
However, it still respects the core guarantee that the producer never
clears the mask and only writes to irqs_pending if it is the one that
flipped the corresponding mask bit from 0 to 1.
Moreover, since the consumer won't run concurrently because
vcpu_sync_interrupts() and the consumer path are going to be invoked
sequentially immediately before VM entry, it is safe to slightly relax
this ordering rule in vcpu_sync_interrupts().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v7:
 - Drop ifdef RV32 in vcpu_sync_interrupts(). It will be introduced later when
   it will be more clear from the context why it is needed in this function.
 - Rename vcpu_sync_interrups()'s argument to curr and add
   ASSERT(curr == current).
---
Changes in v6:
 - Drop for the moment:
       /* Read current HVIP and VSIE CSRs */
       v->arch.vsie = csr_read(CSR_VSIE);
   from vcpu_sync_interrupts() as it isn't used at the moment and will
   be introduced when a usage will be more clear.
---
Changes in v5:
 - Update the commit message().
 - Rename c to curr.
 - Update vcpu_set_interrupt() to use test_and_set_bit() for irqs_pending
   bitmask too.
 - Move #ifdef CONFIG_RISCV_32 above the comment in vcpu_sync_interrupts().
---
Changes in v4:
 - Update the commit message.
 - Update the comments in vcpu_(un)set_interrupt() and add the the  comment
   above smp_wmb() barrier.
 - call vcpu_kick() only if the pending_mask bit going from 0 to 1.
 - Code style fixes.
 - Update defintion of RISCV_VCPU_NR_IRQS to cover potential RV128 case and
   the case if AIA isn't used.
 - latch current into a local variable in check_for_pcpu_work().
---
Changes in v3:
 - Use smp_wb() instead of smp_mb__before_atomic().
 - Add explanation of the change above in the commit message.
 - Move vcpu_sync_interrupts() here to producers side.
 - Introduce check_for_pcpu_work() to be clear from where vcpu_sync_interrupts()
   is called.
---
Changes in V2:
 - Move the patch before an introduction of vtimer.
 - Drop bitmap_zero() of irqs_pending and irqs_pending_mask bitmaps as
   vcpu structure starts out all zeros.
 - Drop const for irq argument of vcpu_{un}set_interrupt().
 - Drop check "irq < IRQ_LOCAL_MAX" in vcpu_{un}set_interrupt() as it
   could lead to overrun of irqs_pending and irqs_pending_mask bitmaps.
 - Drop IRQ_LOCAL_MAX as there is no usage for it now.
---
 xen/arch/riscv/domain.c             | 63 +++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/domain.h | 22 ++++++++++
 xen/arch/riscv/traps.c              |  4 ++
 3 files changed, 89 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 08b990f7b9f6..5447c17402dd 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -6,6 +6,7 @@
 #include <xen/sched.h>
 #include <xen/vmap.h>
 
+#include <asm/bitops.h>
 #include <asm/cpufeature.h>
 #include <asm/csr.h>
 #include <asm/riscv_encoding.h>
@@ -168,6 +169,68 @@ void arch_vcpu_destroy(struct vcpu *v)
     vfree((void *)&v->arch.cpu_info[1] - STACK_SIZE);
 }
 
+int vcpu_set_interrupt(struct vcpu *v, unsigned int irq)
+{
+    bool kick_vcpu;
+
+    /* We only allow VS-mode software, timer, and external interrupts */
+    if ( irq != IRQ_VS_SOFT &&
+         irq != IRQ_VS_TIMER &&
+         irq != IRQ_VS_EXT )
+        return -EINVAL;
+
+    kick_vcpu = !test_and_set_bit(irq, v->arch.irqs_pending);
+
+    /*
+     * The counterpart of this barrier is the one encoded implicitly in xchg()
+     * which is used in consumer part (vcpu_flush_interrupts()).
+     */
+    smp_wmb();
+
+    kick_vcpu |= !test_and_set_bit(irq, v->arch.irqs_pending_mask);
+
+    if ( kick_vcpu )
+        vcpu_kick(v);
+
+    return 0;
+}
+
+int vcpu_unset_interrupt(struct vcpu *v, unsigned int irq)
+{
+    /* We only allow VS-mode software, timer, external interrupts */
+    if ( irq != IRQ_VS_SOFT &&
+         irq != IRQ_VS_TIMER &&
+         irq != IRQ_VS_EXT )
+        return -EINVAL;
+
+    clear_bit(irq, v->arch.irqs_pending);
+    /*
+     * The counterpart of this barrier is the one encoded implicitly in xchg()
+     * which is used in consumer part (vcpu_flush_interrupts()).
+     */
+    smp_wmb();
+    set_bit(irq, v->arch.irqs_pending_mask);
+
+    return 0;
+}
+
+void vcpu_sync_interrupts(struct vcpu *curr)
+{
+    unsigned long hvip = csr_read(CSR_HVIP);
+
+    ASSERT(curr == current);
+
+    /* Sync-up HVIP.VSSIP bit changes done by Guest */
+    if ( ((curr->arch.hvip ^ hvip) & BIT(IRQ_VS_SOFT, UL)) &&
+         !test_and_set_bit(IRQ_VS_SOFT, &curr->arch.irqs_pending_mask) )
+    {
+        if ( hvip & BIT(IRQ_VS_SOFT, UL) )
+            set_bit(IRQ_VS_SOFT, &curr->arch.irqs_pending);
+        else
+            clear_bit(IRQ_VS_SOFT, &curr->arch.irqs_pending);
+    }
+}
+
 static void __init __maybe_unused build_assertions(void)
 {
     /*
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 17be792afe7d..1ecfe18c8519 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -54,8 +54,25 @@ struct arch_vcpu {
     register_t hideleg;
     register_t henvcfg;
     register_t hstateen0;
+    register_t hvip;
 
     register_t vsatp;
+
+    /*
+     * VCPU interrupts
+     *
+     * We have a lockless approach for tracking pending VCPU interrupts
+     * implemented using atomic bitops. The irqs_pending bitmap represent
+     * pending interrupts whereas irqs_pending_mask represent bits changed
+     * in irqs_pending. Our approach is modeled around multiple producer
+     * and single consumer problem where the consumer is the VCPU itself.
+     *
+     * DECLARE_BITMAP() is needed here to support 64 vCPU local interrupts
+     * on RV32 host.
+     */
+#define RISCV_VCPU_NR_IRQS MAX(BITS_PER_LONG, 64)
+    DECLARE_BITMAP(irqs_pending, RISCV_VCPU_NR_IRQS);
+    DECLARE_BITMAP(irqs_pending_mask, RISCV_VCPU_NR_IRQS);
 };
 
 struct paging_domain {
@@ -94,6 +111,11 @@ static inline void update_guest_memory_policy(struct vcpu *v,
 
 static inline void arch_vcpu_block(struct vcpu *v) {}
 
+int vcpu_set_interrupt(struct vcpu *v, unsigned int irq);
+int vcpu_unset_interrupt(struct vcpu *v, unsigned int irq);
+
+void vcpu_sync_interrupts(struct vcpu *curr);
+
 #endif /* ASM__RISCV__DOMAIN_H */
 
 /*
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index 9fca941526f6..551f886e3a69 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -171,6 +171,10 @@ static void do_unexpected_trap(const struct cpu_user_regs *regs)
 
 static void check_for_pcpu_work(void)
 {
+    struct vcpu *curr = current;
+
+    vcpu_sync_interrupts(curr);
+
     p2m_handle_vmenter();
 }
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 16:33:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 16:33:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247973.1546328 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyY7W-0003Rt-QB; Fri, 06 Mar 2026 16:33:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247973.1546328; Fri, 06 Mar 2026 16: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 1vyY7W-0003Rm-NR; Fri, 06 Mar 2026 16:33:46 +0000
Received: by outflank-mailman (input) for mailman id 1247973;
 Fri, 06 Mar 2026 16:33:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RAjd=BG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vyY7V-0003HN-BP
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 16:33:45 +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 3d1f88e6-197a-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Mar 2026 17:33:42 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-483703e4b08so92166675e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 06 Mar 2026 08:33:42 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dae57c05sm4406550f8f.39.2026.03.06.08.33.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 06 Mar 2026 08:33: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: 3d1f88e6-197a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772814822; x=1773419622; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CzQC2ov+xYcuBZPHbnymUYPvOXLbca5uUsTK8SmNRMc=;
        b=ZFs5by6RhXhoDd7Xfev6/OC0yC/6Q+DO+L2wRqeSNMljxn9pBcPyWZ3kaJggx/ybUN
         RGr99E2GvVJJr/IXIwB5SzjvZ2taWxTquPhNcDwgvQPwS7POJOnDF6eNx9PZvexeJMS/
         WppRZqcSgWbY08lr5kXh9jkuDYSbnOeRQ4rs3jgUQNHS6MwSS3Ao/oGc1iRLQEEBa9ry
         IRuuRKXAGLEEeNNX7/XPVAn++LVI7VtaXZjjHokf2xbR/hmdNGXP/kjBepM3Ci3R5F6L
         lzV6vw0zmYMSriHkH6+rQBWeu4UjfjJFzioHoLktjfD9fXg0ZUVTmYSZ/YBzmHWPxSJl
         avAg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772814822; x=1773419622;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=CzQC2ov+xYcuBZPHbnymUYPvOXLbca5uUsTK8SmNRMc=;
        b=P/OkvASnzkwwRbh5MeMOMZH5NPCw0bE6/WURsrXPAxsyqAy45DMdgRKUJH+Y/jaDt7
         Qj8+eiJPNG+yIDfTbiKo98qe67Hm7MccSiNQvNBjoAeSuzEZFHV26rFQBEF+Aucvjxhr
         KI7Hr7olVCgi2XGDqBGmXVtFSsA4nyDilbY5c4jaRWPba/T0uyxdHEIpkgI6SDk8YKSI
         sdPTPXjDbS84RZx8N4Ijj65tBuf2il8G40GSA6dtRLYKdnq7JM5Zcwx+U3IypQxAolYW
         78L1pN+ooddzdjE3yIBxyQaDq3m0mBTGnjPpR0epf6eEI9UZOfW3PPC4QsN9/ORdV8Gw
         Hs6w==
X-Gm-Message-State: AOJu0YwAh7Uht4yBL1xM2Za9xhnqOPZtg+IWN7XCUTe2vqZFAQB78p4Q
	IvBoteCLbkaIZFfUzruSt8yYGblSaAKPIOj2putkimAl04cewBYcKUuv3MVTTA==
X-Gm-Gg: ATEYQzwFPLwX8YOfeY7onVC4mEVA5s+T1eccOTWry15snnHsDnR7hdrwM3/poLgEwbK
	euEq0zrSQGZ3hozr/SAWW2VoYjXu4fvLGIuCmOjRPqbshkAJ6x3lsVZgF8qnLx3DfJEO+4mHYxe
	VSoe8QUvb/nkJu13j+GPnPDjSOctT2hvOE0qeB9HGUu+S43AcZjpMCzSRrlSf4JbRd4rw5Ypwev
	bbUO87XD3tuWaNmF7D5T8ayjemDaeFalmS47Z5FLbAZuwGqorodfM2DAfX4BYLhMDY/YlkXDbJB
	lf4SaZpqksgFv6TGJ5klmi4TZp8s7s9Uy5xwk9WwSZeuG/EWupsTK4aoywNY8mCAKuTsLf2xt6O
	vG+nyv60HfmXNDOjESWJQjXEol/aekRtCtDKk4yyW9QfonAkZ0Y4r5cLguAGowr/3nJQzR4VCoO
	EVunaf13fhqvbAC7mc6GF7XWrrIvuMMqhs6ZIMd6yKl0BjeWKtkuk7s5JaYsop4S07UpOnyQ==
X-Received: by 2002:a05:600c:154b:b0:47d:6c36:a125 with SMTP id 5b1f17b1804b1-4852675edf7mr40929495e9.17.1772814821883;
        Fri, 06 Mar 2026 08:33:41 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 02/14] xen/riscv: implement vcpu_csr_init()
Date: Fri,  6 Mar 2026 17:33:19 +0100
Message-ID: <91724a0d6f2d2de3979a1a7d1f92da11ffd06171.1772814110.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772814110.git.oleksii.kurochko@gmail.com>
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce vcpu_csr_init() to initialise hypervisor CSRs that control
vCPU execution and virtualization behaviour before the vCPU is first
scheduled.
The function configures trap and interrupt delegation to VS-mode by
setting the appropriate bits in the hedeleg and hideleg registers,
initializes hstatus so that execution enters VS-mode when control is
passed to the guest, and restricts guest access to hardware performance
counters by initializing hcounteren, as unrestricted access would
require additional handling in Xen.
When the Smstateen and SSAIA extensions are available, access to AIA
CSRs and IMSIC guest interrupt files is enabled by setting the
corresponding bits in hstateen0, avoiding unnecessary traps into Xen
(note that SVSLCT(Supervisor Virtual Select) name is used intead of
CSRIND as OpenSBI uses such name and riscv_encoding.h is mostly based
on it).
If the Svpbmt extension is supported, the PBMTE bit is set in
henvcfg to allow its use for VS-stage address translation. Guest
access to the ENVCFG CSR is also enabled by setting ENVCFG bit in
hstateen0, as a guest may need to control certain characteristics of
the U-mode (VU-mode when V=1) execution environment.

For CSRs that may contain read-only bits (e.g. hedeleg, hideleg,
hstateen0), to the written value a correspondent mask is applied to
avoid divergence between the software state and the actual CSR
contents.

As hstatus is not part of struct arch_vcpu (it already resides in
struct cpu_user_regs), introduce vcpu_guest_cpu_user_regs() to provide
a uniform way to access hstatus and other guest CPU user registers.

This establishes a consistent and well-defined initial CSR state for
vCPUs prior to their first context switch.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V7:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in V6:
 - Apply introduced in prev. patch csr_masks.ro_one.hstaten0 in vcpu_csr_init().
---
Changes in v5:
 - Initialize of hstateen0 with SMSTATEEN0_HSENVCFG when a variable is
   defined.
 - Use |= for a code inside if (*_ssaia) case.
 - Put declaration of the registers hedeleg and hideleg together in arch_vcpu
   structure as they are typically used together so better chances to
   be in the same cache line.
---
Changes in v4:
 - Move local variable hstateen0 into narrower scope.
 - Code style fixes.
 - Move the call of vcpu_csr_init(v) after if ( is_idle_vcpu() ) check in
   arcg_vcpu_create().
---
Changes in v3:
 - Add hypervisor register used to initalize vCPU state.
 - Apply masks introduced before instead of csr_write()/csr_read() pattern.
---
Changes in v2:
 - As hstatus isn't a part of arch_vcpu structure (as it is already a part of
   cpu_user_regs) introduce vcpu_guest_cpu_user_regs() to be able to access
   hstatus and other CPU user regs.
 - Sort hideleg bit setting by value. Drop a stray blank.
 - Drop | when the first initialization of hcounteren and hennvcfg happen.
 - Introduce HEDELEG_DEFAULT. Sort set bits by value and use BIT() macros
   instead of open-coding it.
 - Apply pattern csr_write() -> csr_read() for hedeleg and hideleg instead
   of direct bit setting in v->arch.h{i,e}deleg as it could be that for some
   reason some bits of hedeleg and hideleg are r/o.
   The similar patter is used for hstateen0 as some of the bits could be r/o.
 - Add check that SSAIA is avaialable before setting of SMSTATEEN0_AIA |
   SMSTATEEN0_IMSIC | SMSTATEEN0_SVSLCT bits.
 - Drop local variables hstatus, hideleg and hedeleg as they aren't used
   anymore.
---
 xen/arch/riscv/domain.c                     | 63 +++++++++++++++++++++
 xen/arch/riscv/include/asm/current.h        |  2 +
 xen/arch/riscv/include/asm/domain.h         |  6 ++
 xen/arch/riscv/include/asm/riscv_encoding.h |  2 +
 4 files changed, 73 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 32974cb48929..08b990f7b9f6 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -8,6 +8,7 @@
 
 #include <asm/cpufeature.h>
 #include <asm/csr.h>
+#include <asm/riscv_encoding.h>
 
 struct csr_masks {
     register_t hedeleg;
@@ -20,6 +21,21 @@ struct csr_masks {
     } ro_one;
 };
 
+#define HEDELEG_DEFAULT (BIT(CAUSE_MISALIGNED_FETCH, U) | \
+                         BIT(CAUSE_FETCH_ACCESS, U) | \
+                         BIT(CAUSE_ILLEGAL_INSTRUCTION, U) | \
+                         BIT(CAUSE_BREAKPOINT, U) | \
+                         BIT(CAUSE_MISALIGNED_LOAD, U) | \
+                         BIT(CAUSE_LOAD_ACCESS, U) | \
+                         BIT(CAUSE_MISALIGNED_STORE, U) | \
+                         BIT(CAUSE_STORE_ACCESS, U) | \
+                         BIT(CAUSE_USER_ECALL, U) | \
+                         BIT(CAUSE_FETCH_PAGE_FAULT, U) | \
+                         BIT(CAUSE_LOAD_PAGE_FAULT, U) | \
+                         BIT(CAUSE_STORE_PAGE_FAULT, U))
+
+#define HIDELEG_DEFAULT (MIP_VSSIP | MIP_VSTIP | MIP_VSEIP)
+
 static struct csr_masks __ro_after_init csr_masks;
 
 #define HEDELEG_AVAIL_MASK ULONG_MAX
@@ -62,6 +78,51 @@ void __init init_csr_masks(void)
 #undef INIT_RO_ONE_MASK
 }
 
+static void vcpu_csr_init(struct vcpu *v)
+{
+    v->arch.hedeleg = HEDELEG_DEFAULT & csr_masks.hedeleg;
+
+    vcpu_guest_cpu_user_regs(v)->hstatus = HSTATUS_SPV | HSTATUS_SPVP;
+
+    v->arch.hideleg = HIDELEG_DEFAULT & csr_masks.hideleg;
+
+    /*
+     * VS should access only the time counter directly.
+     * Everything else should trap.
+     */
+    v->arch.hcounteren = HCOUNTEREN_TM;
+
+    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_svpbmt) )
+        v->arch.henvcfg = ENVCFG_PBMTE & csr_masks.henvcfg;
+
+    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
+    {
+        /* Allow guest to access CSR_SENVCFG */
+        register_t hstateen0 = SMSTATEEN0_HSENVCFG;
+
+        if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_ssaia) )
+            /*
+             * If the hypervisor extension is implemented, the same three
+             * bits are defined also in hypervisor CSR hstateen0 but concern
+             * only the state potentially accessible to a virtual machine
+             * executing in privilege modes VS and VU:
+             *      bit 60 CSRs siselect and sireg (really vsiselect and
+             *             vsireg)
+             *      bit 59 CSRs siph and sieh (RV32 only) and stopi (really
+             *             vsiph, vsieh, and vstopi)
+             *      bit 58 all state of IMSIC guest interrupt files, including
+             *             CSR stopei (really vstopei)
+             * If one of these bits is zero in hstateen0, and the same bit is
+             * one in mstateen0, then an attempt to access the corresponding
+             * state from VS or VU-mode raises a virtual instruction exception.
+             */
+            hstateen0 |= SMSTATEEN0_AIA | SMSTATEEN0_IMSIC | SMSTATEEN0_SVSLCT;
+
+        v->arch.hstateen0 = (hstateen0 & csr_masks.hstateen0) |
+                            csr_masks.ro_one.hstateen0;
+    }
+}
+
 static void continue_new_vcpu(struct vcpu *prev)
 {
     BUG_ON("unimplemented\n");
@@ -84,6 +145,8 @@ int arch_vcpu_create(struct vcpu *v)
     if ( is_idle_vcpu(v) )
         return 0;
 
+    vcpu_csr_init(v);
+
     /*
      * As the vtimer and interrupt controller (IC) are not yet implemented,
      * return an error.
diff --git a/xen/arch/riscv/include/asm/current.h b/xen/arch/riscv/include/asm/current.h
index 58c9f1506b7c..5fbee8182caa 100644
--- a/xen/arch/riscv/include/asm/current.h
+++ b/xen/arch/riscv/include/asm/current.h
@@ -48,6 +48,8 @@ DECLARE_PER_CPU(struct vcpu *, curr_vcpu);
 #define get_cpu_current(cpu)  per_cpu(curr_vcpu, cpu)
 
 #define guest_cpu_user_regs() ({ BUG_ON("unimplemented"); NULL; })
+#define vcpu_guest_cpu_user_regs(vcpu) \
+    (&(vcpu)->arch.cpu_info->guest_cpu_user_regs)
 
 #define switch_stack_and_jump(stack, fn) do {               \
     asm volatile (                                          \
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 5aec627a7adb..17be792afe7d 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -49,6 +49,12 @@ struct arch_vcpu {
 
     struct cpu_info *cpu_info;
 
+    register_t hcounteren;
+    register_t hedeleg;
+    register_t hideleg;
+    register_t henvcfg;
+    register_t hstateen0;
+
     register_t vsatp;
 };
 
diff --git a/xen/arch/riscv/include/asm/riscv_encoding.h b/xen/arch/riscv/include/asm/riscv_encoding.h
index 1f7e612366f8..dd15731a86fa 100644
--- a/xen/arch/riscv/include/asm/riscv_encoding.h
+++ b/xen/arch/riscv/include/asm/riscv_encoding.h
@@ -228,6 +228,8 @@
 #define ENVCFG_CBIE_INV			_UL(0x3)
 #define ENVCFG_FIOM			_UL(0x1)
 
+#define HCOUNTEREN_TM BIT(1, U)
+
 /* ===== User-level CSRs ===== */
 
 /* User Trap Setup (N-extension) */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 16:33:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 16:33:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247976.1546355 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyY7Z-00048h-Ni; Fri, 06 Mar 2026 16:33:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247976.1546355; Fri, 06 Mar 2026 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 1vyY7Z-00048W-IJ; Fri, 06 Mar 2026 16:33:49 +0000
Received: by outflank-mailman (input) for mailman id 1247976;
 Fri, 06 Mar 2026 16:33:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RAjd=BG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vyY7X-00030j-P4
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 16:33:47 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f8e7791-197a-11f1-b164-2bf370ae4941;
 Fri, 06 Mar 2026 17:33:47 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-439b2965d4bso5226444f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 06 Mar 2026 08:33:46 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dae57c05sm4406550f8f.39.2026.03.06.08.33.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 06 Mar 2026 08:33: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: 3f8e7791-197a-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772814826; x=1773419626; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=e8+NHmV9aIJTBlEGWlUzdypWZU3A1Zs5nOLXPSleeHM=;
        b=Qhw2PZU2IC64OpoScHVRrZSlZ6ttFMUGpheJjgUx/3f1BCboaFvG8E7t4isPSIWN8W
         5vo/5H+trb1ekJqUP//y71RC9dWS3+2VWCUnARr74G6C2Xl2oh9cAdelZQdiBZSQvem7
         EExQ28YBKMUVaMRzkA3k+6h00nbQhSv7eS259XGSZC810/k2SNk9Pj8OcQZpJ5EmWlzS
         LlXzO62MF+cv9MbwhM4AP1yAVLmWh64jK+LawYtKG/62EIMnegmfXhyJcjXCRnT4r5Od
         /CCrnFFx1llxOQPehEHVIKT+zFrqNpGZSV1Uwa55TNhx1t5mFo/pibthtkpw4wz+KmIc
         PJ7g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772814826; x=1773419626;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=e8+NHmV9aIJTBlEGWlUzdypWZU3A1Zs5nOLXPSleeHM=;
        b=ZGt+fuHFR+Rfvg8E2bLCE/2vSv0/KEATl7k8rhbYhUrgLbbgOfayk/0ueLCUM+yOGn
         wgEoqNlhxXeHJ/oJhDC7hGQksZBtDQYLbHqbQFrKmQRLzWmICIjApfs8jjG38tB+M5za
         L9KhQ7KJCRJ+pRtfpRKvrz2SK42aq6i3OiekJrxJw8vr6gXejXCaHUdk50YEQpC/fOQ0
         aBONUK6Tf0ptl5WqiaCFVgp15GGSBT7IRtLrnRYxi9d5d9gF53ncQH3XKdrdPhI1GYVm
         DcC+iRKIN/Aa/RyonJA5Gih3XwokBAPABQq1M6d7dnyKLQhhjFI6rDG+7K9PObq5J0My
         6HZw==
X-Gm-Message-State: AOJu0Yx4ZPYSn0T9tFlrY9EFWxxALaEC43DHi50Byv0nGsNCUUpdMhQu
	DFy1cdTp8CUQC6grIdC9b5udf3JU8q0KD+jVapRyZdUtOTcFhKUM+yoeLJ/A1g==
X-Gm-Gg: ATEYQzyDsgB5HzUoLiK0HocmALJqndbGrQcUrZ7+mXrDI/7ZIt5g9GZTuyPWMgNxwX4
	0h/yw8IwnQTIfmZDMRW4mlIcFk2sl75picsSS8cmnkBoQbRPD8s56kaWZIICrolu8pG3Uo7Dnf4
	aa0LVebd+ASaZZgikXY83bCVWI05WgjDW8uApXwa2LAfgfvtkLpTAUuoxncRhU2T60oO3x2xaFl
	N2IYZdmT2G4eNRrGvby1biRLIvMn33iy0ukttB8pLIrLJfkU0liPWETMcALueSJbjlGmpA8rBp0
	U14fcrwXIpY8iyUnJpHi+dza7kucoTe9XxYTWG2EagDiUOu1olhDX42Ot5mPZX0BJS9m+8sVM2y
	vMXkb2zOJL7SSbdYRQ+uDe2i7e+krNjOBQNDwoX2iu+5xwqOkyI0pcEfAec5GPZpfAo/MU3tq1Y
	8CEMX0eqV3mIp5i1Q36eNiBX4rRiT5D8o6Ba4GiD2g8tETWdsCwSMZyi7JWPoclUH0AeYjqcS2M
	xTW
X-Received: by 2002:a05:600c:46c3:b0:480:6bef:63a0 with SMTP id 5b1f17b1804b1-48526959433mr47154465e9.21.1772814826016;
        Fri, 06 Mar 2026 08:33:46 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 06/14] xen/riscv: introduce vcpu_kick() implementation
Date: Fri,  6 Mar 2026 17:33:23 +0100
Message-ID: <21e8e22cb62498236ebe094671d80676a46d8b76.1772814110.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772814110.git.oleksii.kurochko@gmail.com>
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a RISC-V implementation of vcpu_kick(), which unblocks the target
vCPU and sends an event check IPI if the vCPU was running on another
processor. This mirrors the behavior of Arm and enables proper vCPU
wakeup handling on RISC-V.

Remove the stub implementation from stubs.c, as it is now provided by
arch/riscv/domain.c.

Since vcpu_kick() calls perfc_incr(vcpu_kick), add perfcounter for
vcpu_kick to handle the case when CONFIG_PERF_COUNTERS=y. Although
CONFIG_PERF_COUNTERS is not enabled by default, it can be enabled,
for example, by randconfig what will lead to CI build issues.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v4-v7:
 - Nothing changed. Only rebase.
---
Changes in v3:
 - Add asm/perfc_defn.h to provide vcpu_kick perfcoounter to cover
   the case when CONFIG_PERF_COUNTERS=y.
---
Changes in v2:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
 xen/arch/riscv/domain.c                 | 14 ++++++++++++++
 xen/arch/riscv/include/asm/Makefile     |  1 -
 xen/arch/riscv/include/asm/perfc_defn.h |  3 +++
 xen/arch/riscv/stubs.c                  |  5 -----
 4 files changed, 17 insertions(+), 6 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/perfc_defn.h

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index b59e026a9635..c8ce1efa884d 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -1,9 +1,11 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/cpumask.h>
 #include <xen/init.h>
 #include <xen/mm.h>
 #include <xen/sections.h>
 #include <xen/sched.h>
+#include <xen/smp.h>
 #include <xen/vmap.h>
 
 #include <asm/bitops.h>
@@ -264,6 +266,18 @@ void vcpu_flush_interrupts(struct vcpu *curr)
 #endif
 }
 
+void vcpu_kick(struct vcpu *v)
+{
+    bool running = v->is_running;
+
+    vcpu_unblock(v);
+    if ( running && v != current )
+    {
+        perfc_incr(vcpu_kick);
+        smp_send_event_check_mask(cpumask_of(v->processor));
+    }
+}
+
 static void __init __maybe_unused build_assertions(void)
 {
     /*
diff --git a/xen/arch/riscv/include/asm/Makefile b/xen/arch/riscv/include/asm/Makefile
index 3824f31c395c..86c56251d5d7 100644
--- a/xen/arch/riscv/include/asm/Makefile
+++ b/xen/arch/riscv/include/asm/Makefile
@@ -7,7 +7,6 @@ generic-y += hypercall.h
 generic-y += iocap.h
 generic-y += irq-dt.h
 generic-y += percpu.h
-generic-y += perfc_defn.h
 generic-y += random.h
 generic-y += softirq.h
 generic-y += vm_event.h
diff --git a/xen/arch/riscv/include/asm/perfc_defn.h b/xen/arch/riscv/include/asm/perfc_defn.h
new file mode 100644
index 000000000000..8a4b945df662
--- /dev/null
+++ b/xen/arch/riscv/include/asm/perfc_defn.h
@@ -0,0 +1,3 @@
+/* This file is intended to be included multiple times. */
+
+PERFCOUNTER(vcpu_kick, "vcpu: notify other vcpu")
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index daadff0138e4..eedf8bf9350a 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -203,11 +203,6 @@ void vcpu_block_unless_event_pending(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-void vcpu_kick(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 unsigned long
 hypercall_create_continuation(unsigned int op, const char *format, ...)
 {
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 16:33:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 16:33:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247974.1546333 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyY7X-0003VQ-4P; Fri, 06 Mar 2026 16:33:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247974.1546333; Fri, 06 Mar 2026 16:33:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyY7W-0003Uq-V5; Fri, 06 Mar 2026 16:33:46 +0000
Received: by outflank-mailman (input) for mailman id 1247974;
 Fri, 06 Mar 2026 16: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=RAjd=BG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vyY7V-00030j-JG
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 16:33:45 +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 3e69eeb1-197a-11f1-b164-2bf370ae4941;
 Fri, 06 Mar 2026 17:33:45 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-439b94a19fdso5418564f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 06 Mar 2026 08:33:45 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dae57c05sm4406550f8f.39.2026.03.06.08.33.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 06 Mar 2026 08: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: 3e69eeb1-197a-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772814824; x=1773419624; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TD32rUw8Jt+xF61vzNKRB9KoWMugslbXmkZ8IwQfvzs=;
        b=AcobrcEieugq1Opq15cYORGuZWYpQRlUUanh6S9bd9m7IQuTf3JBvT/A1BcS8/d0UG
         LsQ840KeUc8EH3HbxheP7Ranx1Z8ZBAcv3SVvkBuUOiHkhDfyEZpQ5MOOWHeUx467gfL
         Ssy4LnUH8FUFFTXe1kAkGF987gdkzhXSCHc9nSXIG6rdKaqgIeG89EtGa/QT0fvARKAu
         /mp+RLcaOZnZ32HLd5AWub44OmWQI0hh7KQk6Kxotsks8WP/hyLDNLv6PMQwwHRI3MrF
         0b4+Shab+PFqd8r+weFfgxuvQD1b+HJonySHMHm+xaP34nMEvCmr42h1o9F9PNYvVZSa
         QN5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772814824; x=1773419624;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=TD32rUw8Jt+xF61vzNKRB9KoWMugslbXmkZ8IwQfvzs=;
        b=t9+uvUPfJz0syFDs6yURlCt1my9su2XYm/s8lAk8bxn8aLO3FmQVZVU4pM7Jwl1qGf
         yUmCEbcEINQkZlNiFURGBOlOIt3i4usrq/iUw94WkBLHX62CkNkuRLwOn5renUW99/RI
         Sn0CPsxkMceaHUkZf3ub5Beo/Q7xbOIMD3g5lWVgMDVreC2+5hmPbMz3YWvNA0WZkbt3
         mX7VvCuNUjOBqgOHNzoKtMXLvgNEC79C/YXF4rzGojDyx8TNqFKPJHT9d2viV2xjECTJ
         tEfo3Ov0EBbIzbi/fb8mA1T/IA0ByXatxyAxdLGWmstbkvB8oXV3m+kEQFR7gtTJWxOP
         EHvg==
X-Gm-Message-State: AOJu0Yzametw9tZhZ0tfS3i8PJNe7ae/k4HNTueaxYidIfjr7tko0qMA
	992j97dDp06QKJRdt+TOcYuMGa+AoUpa+JZaDLsMrAGLcarcuTbTKDeA6L8VDw==
X-Gm-Gg: ATEYQzzC4PDOAC6sW3zUr0Q/YLY7hhMssIH4oM88K7ljfdtXUb3jk3906nrRh4auV1l
	RjfnM9HSkh52B5AYfCmumNbtvgoNzU1YXKOCF3NKfrIW7rLwwv2Tturv8NFdiLQgETxApk27mMb
	uO44lkOmk4dOXACDNMKcbDP0NKFRcF1lsUXJ5v401Z266mmWiYKQMzuclBoFX5xIm4qflrhESHz
	+EmJqF5+9pU1b45avDxQwtAtGfj4S+t8Xdf66jtEWaLz1j2N1d2MGhsDGcay5tdAbOAYTdkN1E9
	xv7IHFt8LGCiQqYeDxUhlsaNhpqbM7Yxk4KSCWgNV23NkqJvlkkXDJDZgmLJks+GOo1p8Py/6QY
	Bu3YwT1bvFAz3UISJ36n5zohXh3diKGYsd8E5zaZOYhhAVh61WSTlQJsBYdH+yWfmvrVWzxSTug
	oVMdfwWwVsbc/GUjWa0tR7va9qow1aoztWGvX2P9amqTlj5Pa4ur+DjyItBpPNa664xw==
X-Received: by 2002:a05:6000:1865:b0:439:cba2:2294 with SMTP id ffacd0b85a97d-439da88bc2dmr4437064f8f.37.1772814824070;
        Fri, 06 Mar 2026 08:33:44 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 04/14] xen/riscv: introduce tracking of pending vCPU interrupts, part 2
Date: Fri,  6 Mar 2026 17:33:21 +0100
Message-ID: <9fe4e79428719cbf49442af0ab948e398861f27f.1772814110.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772814110.git.oleksii.kurochko@gmail.com>
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch is based on Linux kernel 6.16.0.

Add the consumer side (vcpu_flush_interrupts()) of the lockless pending
interrupt tracking introduced in part 1 (for producers). According, to the
design only one consumer is possible, and it is vCPU itself.
vcpu_flush_interrupts() is expected to be ran (as guests aren't ran now due
to the lack of functionality) before the hypervisor returns control to the
guest.

Producers may set bits in irqs_pending_mask without a lock. Clearing bits in
irqs_pending_mask is performed only by the consumer via xchg() (with aquire
semantics). The consumer must not write to irqs_pending and must not act on
bits that are not set in the mask. Otherwise, extra synchronization should
be provided.
The worst thing which could happen with such approach is that a new pending
bit will be set to irqs_pending bitmap during update of hvip variable in
vcpu_flush_interrupt() but it isn't problem as the new pending bit won't
be lost and just be proceded during the next flush.

As AIA specs introduced hviph register which would want to be updated when
guest related AIA code vcpu_update_hvip() is introduced instead of just
open-code it in vcpu_flush_interrupts().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v7:
 - Rename argument v of vcpu_flush_interrupts() to curr.
 - Add ASSERT(curr == current) to be sure that this functions is called only
   for current vCPU as the whole vcpu_flush_interrupts() implemented to work 
   with current (at the moment, at least).
 - Drop vcpu_update_hvip() function and open code it in vcpu_flush_interrupt()
   as there is no more update of hvip unconditionally and hviph will be
   updated separately. (originally it was planned to update unconditionally
   both hvip and hviph inside vcpu_update_hvip() after if() conditions in
   vcpu_flush_interrupt())
---
Changes in v6:
 - Nothing changed. Only rebase.
---
Changes in v5:
 - Reorder the defintions of local variables (mask, val, hvip) in
   vcpu_flush_interrupts(). Also, drop a blank line between them.
 - Move #ifdef CONFIG_RISCV_32 above the comment in vcpu_flush_interrupts()
   and align the comment properly.
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v4:
 - Move defintion of hvip local variable to narrower space in
   vcpu_flush_interrupts().
 - Use initializers for mask and val variables.
 - Use local variable c as an argument of vcpu_flush_interrupts() in
   check_for_pcpu_work().
---
Changes in v3:
 - Update the error message in case of RV32 from "hviph" to v->arch.hviph.
 - Make const argument of vcpu_update_hvip.
 - Move local variables mask and val inside if() in vcpu_flush_interrupts().
 - Call vcpu_flush_interrupts() in check_pcpu_work().
 - Move vcpu_update_hvip() inside if() in vcpu_flush_interrupts().
---
Changes in v2:
 - New patch.
---
 xen/arch/riscv/domain.c             | 27 +++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/domain.h |  1 +
 xen/arch/riscv/traps.c              |  2 ++
 3 files changed, 30 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 5447c17402dd..f3e3ad149453 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -231,6 +231,33 @@ void vcpu_sync_interrupts(struct vcpu *curr)
     }
 }
 
+void vcpu_flush_interrupts(struct vcpu *curr)
+{
+    ASSERT(curr == current);
+
+    if ( ACCESS_ONCE(curr->arch.irqs_pending_mask[0]) )
+    {
+        unsigned long mask = xchg(&curr->arch.irqs_pending_mask[0], 0UL);
+        unsigned long val = ACCESS_ONCE(curr->arch.irqs_pending[0]) & mask;
+        register_t *hvip = &curr->arch.hvip;
+
+        *hvip &= ~mask;
+        *hvip |= val;
+
+        csr_write(CSR_HVIP, *hvip);
+    }
+
+#ifdef CONFIG_RISCV_32
+    /*
+     * Flush AIA high interrupts.
+     *
+     * It is necessary to do only for CONFIG_RISCV_32 which isn't
+     * supported now.
+     */
+#   error "Update v->arch.hviph"
+#endif
+}
+
 static void __init __maybe_unused build_assertions(void)
 {
     /*
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 1ecfe18c8519..59d23e4f9247 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -115,6 +115,7 @@ int vcpu_set_interrupt(struct vcpu *v, unsigned int irq);
 int vcpu_unset_interrupt(struct vcpu *v, unsigned int irq);
 
 void vcpu_sync_interrupts(struct vcpu *curr);
+void vcpu_flush_interrupts(struct vcpu *curr);
 
 #endif /* ASM__RISCV__DOMAIN_H */
 
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index 551f886e3a69..244264c92a79 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -175,6 +175,8 @@ static void check_for_pcpu_work(void)
 
     vcpu_sync_interrupts(curr);
 
+    vcpu_flush_interrupts(curr);
+
     p2m_handle_vmenter();
 }
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 16:33:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 16:33:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247977.1546360 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyY7a-0004CT-3q; Fri, 06 Mar 2026 16:33:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247977.1546360; Fri, 06 Mar 2026 16:33:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyY7Z-0004CF-U1; Fri, 06 Mar 2026 16:33:49 +0000
Received: by outflank-mailman (input) for mailman id 1247977;
 Fri, 06 Mar 2026 16:33: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=RAjd=BG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vyY7Y-0003HN-7G
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 16:33:48 +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 3f2fad62-197a-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Mar 2026 17:33:46 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4836f363ad2so110250565e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 06 Mar 2026 08:33:46 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dae57c05sm4406550f8f.39.2026.03.06.08.33.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 06 Mar 2026 08:33: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: 3f2fad62-197a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772814825; x=1773419625; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PUa+J5dx/g0jfCQXCa5GsS6lcARiceV/jkoJtxvsNwc=;
        b=FEJfwGK+82JNUSYtm7sbdmwEJsaLrGrJOldr4U9TjjZBc/IbW3KtDjxQdmaTA7KJU8
         NzdwaWERTvYKWp8Y8eAFlTs2ZK/fSCI3mDDGkGfgMbuCNMnd4eiSWZxMP2Kb5yZmvNNV
         8MPo89b5wZGYfl56oP0XFCTc3fDvgCEFtweCus5S1FQxkaYVtDQ8ZvG+/dQqeOU2ce1W
         28LPfEU1bcmgANBQpcPSXdT412ZPs58huHRHSbHi4mSkdhhcx0uem20gerzf9U7JlGY8
         I/7rrSbqlD755pWs+7iZHch5nGYR4xOap6tT8+JS7Us91ySAoR3a0WDe2rC2sYAR3zTG
         TNuQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772814825; x=1773419625;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=PUa+J5dx/g0jfCQXCa5GsS6lcARiceV/jkoJtxvsNwc=;
        b=Z6QOPQMsGUQfwTFVfotGfBbvJa/maJEl9Iy483ktG69nHXb1BcFXbmdsW9dGOSxyaV
         En17BBoF4U8NWOSFLo896X0AIZjNXCELcNcwJSye/Tv8ugbrT3mfQUB3T5kSbSESx2d5
         p5fw68fIX2pBkc/m5qiZrJMb+bDWkDJqopIiWHHDCZldrdX05hr266dxlq/lyc1A+qXh
         iejuX8BWDyClHdqwidf7mnjp5zZEGJBeOK7OTYWCKzI7C335uCDn/D6QmD4RZ1PNh12r
         3fe/xo7HaljEX28wHFbmEkiki/6CUhzi9dn1FGXF0394fUKSDU9t6celYuo6fK4c3Ai7
         lZmA==
X-Gm-Message-State: AOJu0YzZ6utrY3IClM0nINhNUwwmw4n1NDo1MkerSQpfIgn3IqAOHiMs
	PhpobhyEGf82VNqG+sXmtJ5S2wk4zZp2BtryX1FbXTl7QvHjQ9QyE/ckChPjAg==
X-Gm-Gg: ATEYQzxJdu0QCB87WX9mhan8E5/pgCcvpwVvZ7Zvj9NOvkSWvpIfoWZMat1FjotI5iw
	W3ohdYfbqb6mA5wluowndGS2AcPX1Bzz527a/XiJJIyjuBqaWeA8ooDUZFAfho+Niilgki31VEw
	SE2euwW2WdA7WGYWm/H5Y2Z680braq47VisRrW9s/S115mskbR2RfWGMwfvS5V3tMNY1hGSWvgO
	nBypHyVH8SR7fJ7CRPH+4885WXviRahEjpJJKGm/Q6YPctdTjaCapKIbe9+wLkkYJqf1td1ucxh
	BmHnb1TaV2+ghd0rYcGHbds1JE8/IxPDbyJGI7DVP5DO1uGUUST4oIHM/6ZufsJnu8S6kymtxJY
	ubfvV9+lTHRHl9yOn/tc6ugeEbL537EDVmjUuawCi4OmJ4Yii9m0/JZUlwTGrrcIGJ/zRTYmPnV
	JsPduwWpJgnub7LH1Ks8KmnX4FYrmeakbXXY2dmicm5HsWDVJj8kRt1LR3xbAGa6k8AxruGg==
X-Received: by 2002:a05:600c:198f:b0:483:6ff1:18b with SMTP id 5b1f17b1804b1-485268bd6cbmr46440355e9.0.1772814825032;
        Fri, 06 Mar 2026 08:33:45 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.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 v7 05/14] xen/riscv: introduce basic vtimer infrastructure for guests
Date: Fri,  6 Mar 2026 17:33:22 +0100
Message-ID: <1a5fcf53fa4a3e935b1814c129aa131fe1068168.1772814110.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772814110.git.oleksii.kurochko@gmail.com>
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Lay the groundwork for guest timer support by introducing a per-vCPU
virtual timer backed by Xen’s common timer infrastructure.

The virtual timer is programmed in response to the guest SBI
sbi_set_timer() call and injects a virtual supervisor timer interrupt
into the vCPU when it expires.

While a dedicated struct vtimer is not strictly required at present,
it is expected to become necessary once SSTC support is introduced.
In particular, it will need to carry additional state such as whether
SSTC is enabled, the next compare value (e.g. for the VSTIMECMP CSR)
to be saved and restored across context switches, and time delta state
(e.g. HTIMEDELTA) required for use cases such as migration. Introducing
struct vtimer now avoids a later refactoring.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v6-v7:
 - Nothing changed. Only rebase.
---
Changes in v5:
 - Drop copyright line from asm/vtimer.h.
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v4:
 - Add vcpu_timer_destroy() to void arch_vcpu_destroy().
---
Changes in v3:
 - use one container_of() to get vcpu instead of two container_of()s.
---
Changes in v2:
 - Drop domain_vtimer_init() as it does nothing.
 - Drop "struct vcpu *v;" from struct vtimer as it could be taken
   from arch_vcpu using container_of().
 - Drop vtimer_initialized, use t->status == TIMER_STATUS_invalid
   instead to understand if timer was or wasn't initialized.
 - Drop inclusion of xen/domain.h as xen/sched.h already includes it.
 - s/ xen/time.h/ xen.timer.h in vtimer.c.
 - Drop ULL in if-conidtion in vtimer_set_timer() as with the cast
   it isn't necessary to have suffix ULL.
 - Add migrate timer to vtimer_set_timer() to be sure that vtimer
   will occur on pCPU it was ran, so the signalling to that vCPU
   will (commonly) be cheaper.
 - Check if the timeout has already expired and just inject the event
   in vtimer_vtimer_set_timer().
 - Drop const for ticks argument of vtimer_set_timer().
 - Merge two patches to one:
   - xen/riscv: introduce vtimer
   - xen/riscv: introduce vtimer_set_timer() and vtimer_expired()
---
 xen/arch/riscv/Makefile             |  1 +
 xen/arch/riscv/domain.c             | 10 +++-
 xen/arch/riscv/include/asm/domain.h |  3 ++
 xen/arch/riscv/include/asm/vtimer.h | 17 +++++++
 xen/arch/riscv/vtimer.c             | 71 +++++++++++++++++++++++++++++
 5 files changed, 100 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/vtimer.h
 create mode 100644 xen/arch/riscv/vtimer.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index bc47e83b26d7..ffbd7062e214 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -22,6 +22,7 @@ obj-y += traps.o
 obj-y += vmid.o
 obj-y += vm_event.o
 obj-y += vsbi/
+obj-y += vtimer.o
 
 $(TARGET): $(TARGET)-syms
 	$(OBJCOPY) -O binary -S $< $@
diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index f3e3ad149453..b59e026a9635 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -10,6 +10,7 @@
 #include <asm/cpufeature.h>
 #include <asm/csr.h>
 #include <asm/riscv_encoding.h>
+#include <asm/vtimer.h>
 
 struct csr_masks {
     register_t hedeleg;
@@ -148,11 +149,14 @@ int arch_vcpu_create(struct vcpu *v)
 
     vcpu_csr_init(v);
 
+    if ( (rc = vcpu_vtimer_init(v)) )
+        goto fail;
+
     /*
-     * As the vtimer and interrupt controller (IC) are not yet implemented,
+     * As interrupt controller (IC) is not yet implemented,
      * return an error.
      *
-     * TODO: Drop this once the vtimer and IC are implemented.
+     * TODO: Drop this once IC is implemented.
      */
     rc = -EOPNOTSUPP;
     goto fail;
@@ -166,6 +170,8 @@ int arch_vcpu_create(struct vcpu *v)
 
 void arch_vcpu_destroy(struct vcpu *v)
 {
+    vcpu_timer_destroy(v);
+
     vfree((void *)&v->arch.cpu_info[1] - STACK_SIZE);
 }
 
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 59d23e4f9247..6c48bf13111d 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -8,6 +8,7 @@
 #include <public/hvm/params.h>
 
 #include <asm/p2m.h>
+#include <asm/vtimer.h>
 
 struct vcpu_vmid {
     uint64_t generation;
@@ -49,6 +50,8 @@ struct arch_vcpu {
 
     struct cpu_info *cpu_info;
 
+    struct vtimer vtimer;
+
     register_t hcounteren;
     register_t hedeleg;
     register_t hideleg;
diff --git a/xen/arch/riscv/include/asm/vtimer.h b/xen/arch/riscv/include/asm/vtimer.h
new file mode 100644
index 000000000000..111863610a92
--- /dev/null
+++ b/xen/arch/riscv/include/asm/vtimer.h
@@ -0,0 +1,17 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef ASM__RISCV__VTIMER_H
+#define ASM__RISCV__VTIMER_H
+
+#include <xen/timer.h>
+
+struct vtimer {
+    struct timer timer;
+};
+
+int vcpu_vtimer_init(struct vcpu *v);
+void vcpu_timer_destroy(struct vcpu *v);
+
+void vtimer_set_timer(struct vtimer *t, uint64_t ticks);
+
+#endif /* ASM__RISCV__VTIMER_H */
diff --git a/xen/arch/riscv/vtimer.c b/xen/arch/riscv/vtimer.c
new file mode 100644
index 000000000000..32d142bcdfcd
--- /dev/null
+++ b/xen/arch/riscv/vtimer.c
@@ -0,0 +1,71 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/sched.h>
+#include <xen/timer.h>
+
+#include <asm/vtimer.h>
+
+static void vtimer_expired(void *data)
+{
+    struct vtimer *t = data;
+    struct vcpu *v = container_of(t, struct vcpu, arch.vtimer);
+
+    vcpu_set_interrupt(v, IRQ_VS_TIMER);
+}
+
+int vcpu_vtimer_init(struct vcpu *v)
+{
+    struct vtimer *t = &v->arch.vtimer;
+
+    init_timer(&t->timer, vtimer_expired, t, v->processor);
+
+    return 0;
+}
+
+void vcpu_timer_destroy(struct vcpu *v)
+{
+    struct vtimer *t = &v->arch.vtimer;
+
+    if ( t->timer.status == TIMER_STATUS_invalid )
+        return;
+
+    kill_timer(&v->arch.vtimer.timer);
+}
+
+void vtimer_set_timer(struct vtimer *t, const uint64_t ticks)
+{
+    struct vcpu *v = container_of(t, struct vcpu, arch.vtimer);
+    s_time_t expires = ticks_to_ns(ticks - boot_clock_cycles);
+
+    vcpu_unset_interrupt(v, IRQ_VS_TIMER);
+
+    /*
+     * According to the RISC-V sbi spec:
+     *   If the supervisor wishes to clear the timer interrupt without
+     *   scheduling the next timer event, it can either request a timer
+     *   interrupt infinitely far into the future (i.e., (uint64_t)-1),
+     *   or it can instead mask the timer interrupt by clearing sie.STIE CSR
+     *   bit.
+     */
+    if ( ticks == ((uint64_t)~0) )
+    {
+        stop_timer(&t->timer);
+
+        return;
+    }
+
+    if ( expires < NOW() )
+    {
+        /*
+         * Simplify the logic if the timeout has already expired and just
+         * inject the event.
+         */
+        stop_timer(&t->timer);
+        vcpu_set_interrupt(v, IRQ_VS_TIMER);
+
+        return;
+    }
+
+    migrate_timer(&t->timer, smp_processor_id());
+    set_timer(&t->timer, expires);
+}
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 16:33:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 16:33:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247978.1546366 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyY7a-0004Ll-N6; Fri, 06 Mar 2026 16:33:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247978.1546366; Fri, 06 Mar 2026 16:33:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyY7a-0004Jq-H5; Fri, 06 Mar 2026 16:33:50 +0000
Received: by outflank-mailman (input) for mailman id 1247978;
 Fri, 06 Mar 2026 16:33: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=RAjd=BG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vyY7Y-00030j-Vv
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 16:33:48 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 40449f26-197a-11f1-b164-2bf370ae4941;
 Fri, 06 Mar 2026 17:33:48 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-480706554beso102815215e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 06 Mar 2026 08:33:48 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dae57c05sm4406550f8f.39.2026.03.06.08.33.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 06 Mar 2026 08:33: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: 40449f26-197a-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772814827; x=1773419627; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wshUHaSMY4kHHsx5qEs6V10my02G5AGEo5sXu7Wg0WM=;
        b=mt3C7V7JKPnDGNQsg1+AoxzHJc/wwFFmfD4nJmLj/VOVxUV2p67UieTLCXfEvbBFft
         MNoIl5xfno7X74Bf9k5E+ICjIVn/1T5Hgntg4lT8IdlB7gt1HqW0zm5cs4OMwbiAUPpZ
         oOvqqTffeBeraYrqg+PKHVe/70+g3hIcPGrL26LxdH92Ucw2J9TzPJYRlaH+SftNjBOD
         BV+x3jpspQ9ClJslLti0l9inZLjf5fk7eaWOqAg3RQJRz3chNbIa7WcrGVDRJqW/B1Wd
         kknaeHoi6Fn3xTJ9M37kvOH/GWCZwqNdo5QW2USpZVSz5q6fu4hcuCXN9gUR0VGnUUtZ
         aipQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772814827; x=1773419627;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=wshUHaSMY4kHHsx5qEs6V10my02G5AGEo5sXu7Wg0WM=;
        b=tAhX6FIGYWo/GG8u/R3tfrS2A6tFlyZZu/h+Q0iZ9CVO916et3wsk31EM3sDa/nC8H
         sEcNPEq5tnrl46p+ONTzPxxJ+dHnbCMH3kHyjhIqojWhbFZ0Wd+bdR0PqS1c8D8J4Mdi
         11h83Di8dqnQjB3W6TAFK/wbBy8qwH1rp4klSA1vWlK8T/NNr9NzOVUoJHJ8qPbqMfTg
         zPtbaAkbIGc6cWWmkdYTKkn8Hj9umE7bVnWrbLhrKWPP5qribxE2Z6Jv1X7BIgf9JXCB
         V5mC0gFhP+6ri4htiBM6xciTV6xETFKR2eQTTlrtmnq12W0x9nOMfHfx5y9C1vmTsL/v
         d0Ow==
X-Gm-Message-State: AOJu0YyGkp8+sX/B+qKp2A0Esh9s3zQgJfIj3TlSJAKM9kXLGa+9j/TW
	jSNo3ydku7xo5o5+Q3sW3WMwZU31CPvIHnn+BwQEiY3nbRGGok2T/viAcJprAA==
X-Gm-Gg: ATEYQzwr8GQzgIIkW8qb86HKUPrnntNpOCEco5xF9Y45YHguOi8tpK8ln7yKIaLHE6h
	i/YJJOXZlZ1KJqN3bbu6kE1V4rPLI8tSbvFMvhU6ShZs9ikzuYFIS5sVh/XPDkyxAmOk20h/KZU
	fG0ImcNMx7BSLB6Ze7JE4vk6nbtyJIaeWh0CPsEXq2qb9pDsyLsvCvwdH+tqjmN23pPFfX/30aO
	9nzYSgyPEJIpI6hraBZACXmFxhXYBaKK+UcUBmQabSW4oG0AcGghmb4dLS80h8UhxC3vqphruOz
	rLSNAR9SFIvyA+Gu6qalrVNFcPCUb11yoL7OzrANg4WfXUavl/Q6UxQ79hl+SMUWrv62c2tzdbU
	CD/Xsbnj+25jH1dUIJ2KEkmDSkC1sjeNjY+gzHg9J+Kef8rJ7Nw8TI3yTTvgOX5DxSGcjnkVHD5
	HhXHsXCLtOrQi5bHYMgpnRu7vNKdiMM4amO44bP160l4jnB0nmX5ImYlLAa+8StCq5++aO+CrcZ
	Pvq
X-Received: by 2002:a05:600c:620c:b0:47d:3ffa:5f03 with SMTP id 5b1f17b1804b1-4852695b633mr46566025e9.21.1772814827041;
        Fri, 06 Mar 2026 08:33:47 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 07/14] xen/riscv: add vtimer context switch helpers
Date: Fri,  6 Mar 2026 17:33:24 +0100
Message-ID: <cad0ef46b6decf4083b68452e6b0fa2257aea9c4.1772814110.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772814110.git.oleksii.kurochko@gmail.com>
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce vtimer_ctxt_switch_from() and vtimer_ctxt_switch_to() to handle
virtual timer state across vCPU context switches.

At present, vtimer_ctxt_switch_from() is a no-op because the RISC-V SSTC
extension, which provides a virtualization-aware timer, is not yet
supported. Xen therefore relies the virtual (SBI-based) timer.

The virtual timer uses Xen's internal timer infrastructure and must be
associated with the pCPU on which the vCPU is currently running so that
timer events can be delivered efficiently. As a result, vtimer_ctxt_switch_to()
migrates the timer to the target pCPU when a vCPU is scheduled in.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v4-v7:
 - Nothing changed. Only rebase.
---
Changes in v3:
 - s/vtimer_ctx_switch_to/vtimer_ctxt_switch_to
 - s/vtimer_ctx_switch_from/vtimer_ctxt_switch_from
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v2:
 - Align the parameters names for  vtimer_ctx_switch_from() and vtimer_ctx_switch_to() in
   declarations to match the ones in the defintions to make Misra happy.
 - s/vtimer_save/vtimer_ctx_switch_from.
 - s/vtimer_restore/vtimer_ctx_switch_to.
 - Update the commit message.
---
 xen/arch/riscv/include/asm/vtimer.h |  3 +++
 xen/arch/riscv/vtimer.c             | 15 +++++++++++++++
 2 files changed, 18 insertions(+)

diff --git a/xen/arch/riscv/include/asm/vtimer.h b/xen/arch/riscv/include/asm/vtimer.h
index 111863610a92..b4d48d1a1732 100644
--- a/xen/arch/riscv/include/asm/vtimer.h
+++ b/xen/arch/riscv/include/asm/vtimer.h
@@ -14,4 +14,7 @@ void vcpu_timer_destroy(struct vcpu *v);
 
 void vtimer_set_timer(struct vtimer *t, uint64_t ticks);
 
+void vtimer_ctxt_switch_from(struct vcpu *p);
+void vtimer_ctxt_switch_to(struct vcpu *n);
+
 #endif /* ASM__RISCV__VTIMER_H */
diff --git a/xen/arch/riscv/vtimer.c b/xen/arch/riscv/vtimer.c
index 32d142bcdfcd..afd8a53a7387 100644
--- a/xen/arch/riscv/vtimer.c
+++ b/xen/arch/riscv/vtimer.c
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/bug.h>
 #include <xen/sched.h>
 #include <xen/timer.h>
 
@@ -69,3 +70,17 @@ void vtimer_set_timer(struct vtimer *t, const uint64_t ticks)
     migrate_timer(&t->timer, smp_processor_id());
     set_timer(&t->timer, expires);
 }
+
+void vtimer_ctxt_switch_from(struct vcpu *p)
+{
+    ASSERT(!is_idle_vcpu(p));
+
+    /* Nothing to do at the moment as SSTC isn't supported now. */
+}
+
+void vtimer_ctxt_switch_to(struct vcpu *n)
+{
+    ASSERT(!is_idle_vcpu(n));
+
+    migrate_timer(&n->arch.vtimer.timer, n->processor);
+}
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 16:33:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 16:33:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247979.1546379 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyY7c-0004kV-4h; Fri, 06 Mar 2026 16:33:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247979.1546379; Fri, 06 Mar 2026 16:33: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 1vyY7b-0004jR-S3; Fri, 06 Mar 2026 16:33:51 +0000
Received: by outflank-mailman (input) for mailman id 1247979;
 Fri, 06 Mar 2026 16:33: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=RAjd=BG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vyY7a-0003HN-Ky
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 16:33:50 +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 40cb5aa9-197a-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Mar 2026 17:33:49 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-439b7c2788dso4198654f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 06 Mar 2026 08:33:49 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dae57c05sm4406550f8f.39.2026.03.06.08.33.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 06 Mar 2026 08:33: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: 40cb5aa9-197a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772814828; x=1773419628; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AFH/mmXdjfsZGFnjZSa+nYBoxFRy8PjJpaEBRZ8E9iE=;
        b=mGyH7Ltb7HzT21mf4u7CIsGbzU3dLFfqETGZxzOcmwbN2DvFbZI7Uzt8DnkzFvRoO1
         RHpCxOY3iooonWlzboWyr0uT7kj0iITxiCeS8547vuEfs6D8twvvL5+qbaWkrDKddftT
         2bymNKy6xJvAl9W+mfNDeqkXQQt4A+8yCeL7jOO4IRvsR+gRw6pcoTTidtrXQZAgXlIb
         DALyIkqcUUAxbAO2OGDVCIILCq2CElw75kvCBKj/O9UyOIVhK5BgO5INmBec5rGExDAP
         LuVveeQohkjubaJeoEkPvBkhmECuBAshwcoUJdi5bKYyR4PGb3BuP53hhLmPAKsg7CNy
         0YqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772814828; x=1773419628;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=AFH/mmXdjfsZGFnjZSa+nYBoxFRy8PjJpaEBRZ8E9iE=;
        b=sDuSD2nQ7giepTdu0VEG7zNHmwUs3OUXLvSdT1zKS1sWTfF1Tu//dupja6CAu5ME5x
         M25koQy/3uzepG4TnJinCCz0HpddNnMpFEhjsUJPgDh1/i7HSUOsmPybYOf6QMcExVVJ
         bS+iKA9fNcrC0laMN5P4o4HufIJZ0/RdlnXvSTnVrHKlsak+vh0posnWOHE0nPssfhZb
         4rX30UrggqQ3pxo5pVJVkhykgL4aOj0pqlkdqtZEvLWTs3WAE+KpBdyThB+ctqCMwR/+
         3ovFM63kG9+OY/nvOjUsBIKfd+UK94M23DKiqPVsIwch7L53B50cAC+jfhRQJZzZOpwt
         Qotg==
X-Gm-Message-State: AOJu0YwY/LMAY87g8+4+Vl33Wd21d83AOZmGISBH2XRiaEpBkjgTnAiY
	iswxGRtvSBX+EyaT6+h+wAix3p2C/Wu2/wmFSOsP1nSePh7lX3OEe8ge428FOg==
X-Gm-Gg: ATEYQzwhAeO6pTKSox6R8h4WekX8XQjzTbCNy0glT29rjqT510eInDyL00ztP0zBI5D
	R4BY9mL7OTXptc0gmwY7cGVQ1C7GTsVveGH8r2MUWDIHNq5NylL/xg48RHuEO2IRrSDlD+J8o0Y
	ebXlEv9S2b+Q3bDribKExQtGrz9AJf9AiykIwjp1GYLN9q4QZLjoP/Ggvuo8Q2rdX4nR1HmB9/Y
	3au3yzwHZIqUMq4aqbxDs/s7zk6y6gtSmFcHpFZXZJYjM2cKcFzyn4tUzDaMYBjopk0r4JJfQeD
	evJeMZyfolOKet/znotbe2m0TjadjfxJMkYgG7U1VZkZMHILUHmAkWSNLpUQ1FGM9AFU2eQm6pq
	rmCJieqdy7HfSkNMY+9EQNCN2JscCZNuKLVv5WERYj7uqIzGVzGsaRX3ytjXYAQlQj+3ZGeQHDT
	RXzlMV9MTUezFMbZUHLLGY6009rAxtWqZW2aROWeT5exdZePY+NL1ZOz4vOEHxCJEphg+13DcW6
	y+s
X-Received: by 2002:a05:6000:2506:b0:439:aef4:944b with SMTP id ffacd0b85a97d-439da351a36mr4504521f8f.19.1772814828144;
        Fri, 06 Mar 2026 08:33:48 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 08/14] xen/riscv: implement SBI legacy SET_TIMER support for guests
Date: Fri,  6 Mar 2026 17:33:25 +0100
Message-ID: <888b2d5a4a3ee9a83de4568b17253f865febaf9f.1772814110.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772814110.git.oleksii.kurochko@gmail.com>
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Add handling of the SBI_EXT_0_1_SET_TIMER function ID to the legacy
extension ecall handler. The handler now programs the vCPU’s virtual
timer via vtimer_set_timer() and returns SBI_SUCCESS.

This enables guests using the legacy SBI timer interface to schedule
timer events correctly.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v3-v7:
 - Nothing changed. Only rebase.
---
Changes in v2:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
 xen/arch/riscv/vsbi/legacy-extension.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/xen/arch/riscv/vsbi/legacy-extension.c b/xen/arch/riscv/vsbi/legacy-extension.c
index 2e8df191c295..090c23440cea 100644
--- a/xen/arch/riscv/vsbi/legacy-extension.c
+++ b/xen/arch/riscv/vsbi/legacy-extension.c
@@ -7,6 +7,7 @@
 
 #include <asm/processor.h>
 #include <asm/vsbi.h>
+#include <asm/vtimer.h>
 
 static void vsbi_print_char(char c)
 {
@@ -44,6 +45,11 @@ static int vsbi_legacy_ecall_handler(unsigned long eid, unsigned long fid,
         ret = SBI_ERR_NOT_SUPPORTED;
         break;
 
+    case SBI_EXT_0_1_SET_TIMER:
+        vtimer_set_timer(&current->arch.vtimer, regs->a0);
+        regs->a0 = SBI_SUCCESS;
+        break;
+
     default:
         /*
          * TODO: domain_crash() is acceptable here while things are still under
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 16:33:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 16:33:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247980.1546389 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyY7d-00055O-Er; Fri, 06 Mar 2026 16:33:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247980.1546389; Fri, 06 Mar 2026 16:33: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 1vyY7d-000552-8E; Fri, 06 Mar 2026 16:33:53 +0000
Received: by outflank-mailman (input) for mailman id 1247980;
 Fri, 06 Mar 2026 16:33:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RAjd=BG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vyY7a-00030j-Qb
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 16:33:50 +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 41808ec9-197a-11f1-b164-2bf370ae4941;
 Fri, 06 Mar 2026 17:33:50 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-48371bb515eso139921555e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 06 Mar 2026 08:33:50 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dae57c05sm4406550f8f.39.2026.03.06.08.33.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 06 Mar 2026 08:33: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: 41808ec9-197a-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772814829; x=1773419629; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=J/Kmt/9cTJTTmvSy1vXRcQGyNeZ//R0WlMTYDIyos0A=;
        b=k5LthWAOiDzs4QDXyz8R2RdafHEnLGbO4ltENA1atSpq9PDh7R6/bSbg3sD0+V2e0b
         c9LcV2Iifint2NBg22744OQxjbqgSRb0UhGp9orQYFIquOtGaSVJ3hOK2gjzx4EvRYAN
         PCedSRQD0HdXRXeTDIdTrlxkpiHN4Rar+TXuJLZc3r3v6QViErPnluMZ7vjjgS6gnJo/
         daeuim/GB2EAzTwWLwVffeAcrkw6rCrbVZFi6mg9tLXI5hV0LCGzShSkWal+KVv59hDv
         43la/VlB5YjEbwSZw2lUxOYyd6W/vbfDWG9hEpCR15yP2SIYtyufH30BVFwbS4OH6Xl9
         UtgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772814829; x=1773419629;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=J/Kmt/9cTJTTmvSy1vXRcQGyNeZ//R0WlMTYDIyos0A=;
        b=iAHNLl6X5g7qKW4apoygHjzG7wc/LKKU267XHxOtRGCI2HwP63Mt6m+SwYCrfB0+cC
         hNLNHhp8HJwOe/b0OeAMb7CCHjUPy06ZbeePjll4fdeB8bvwFdIVUu1VNyKNTRCMXB9p
         NAKXImQWKFRe9jwtHz46BWkdNv+N2BjVQ63b/z8qt8xlCMXfhYrUAKhknjKZ55yIe43b
         62ZVNcev/yW1NX6Bz9CLSQK/XnVowcv63xWJLT+GB45IfTO9qUzOAFbaIfkboTJBzaLd
         mnwbreYIFb++awRwRwuOAfMjQipmk6tAwM7fNMKYihWF7xTisW6rAtUcG/s6r9zyz1l+
         cN6g==
X-Gm-Message-State: AOJu0YxB0cKG/ZuSK0gOQmzncVwsb2RwWLC6yIqH2ByhKrB7eP0lPZJA
	uXEUqzrooyptRrTON9Yqcjae1b4V7vvCziErfLYE0hc+fHdP6wL2/eI9Czxt1Q==
X-Gm-Gg: ATEYQzwMGunL2mWqR/dIyeMug4sL+jX/9iSRA+9KCXPlEg3Qbjkv4PM4tDMMQxEbJGA
	p9Fu/FEoDfgc/w1iFJUL0t2po+YUh+LK7nmpjKHC3Jz7bzcyFEAdr+9zwz75D+mO4SO79XYzPgA
	FtkOwr7aSBVfWbzF3BtP+/wnzlzbisE36kynVovdu6tqkac1P1l8QtXQvD8CuSaMEfDhJvcUUFc
	MYXJRTMv7RfQjjLCGHS0s5kDq621LSKedxpy7GUUJpr7YH3xBRqcJjYLnHFYrT0q3o5j23cH9y0
	OZEW0mhk54uRHHkgmfGo1hQmBjVd9XniHqhQr7FxiXj5jhuhe8fYzac9NM7XiBLx1Npfq9bqTiP
	tY79gd06R4k2S0gOVR87RU7JrwFyOzkNLv8mg4S4txkt+njgLsdrcDN9dQTb2tv/fXkbPZB5H+R
	VBKyAaPTzYY5xH12+tyCtUSQlWem3KR2WWMNofw6Wh3HBJF82Honihsr6QHvMBVIMkIQ==
X-Received: by 2002:a05:600c:859a:b0:477:a36f:1a57 with SMTP id 5b1f17b1804b1-485269188cfmr33076975e9.3.1772814829291;
        Fri, 06 Mar 2026 08:33:49 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 09/14] xen/riscv: introduce sbi_set_timer()
Date: Fri,  6 Mar 2026 17:33:26 +0100
Message-ID: <e4c803abbc4335ccc8483d33a09687ea48e0e0b9.1772814110.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772814110.git.oleksii.kurochko@gmail.com>
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce a function pointer for sbi_set_timer(), since different OpenSBI
versions may implement the TIME extension with different extension IDs
and/or function IDs.

If the TIME extension is not available, fall back to the legacy timer
mechanism. This is useful when Xen runs as a guest under another Xen,
because the TIME extension is not currently virtualised and therefore
will not appear as available.
Despite of the fact that sbi_set_timer_v01 is introduced and used as
fall back, SBI v0.1 still isn't fully supported (with the current SBI
calls usage, sbi_rfence_v01 should be introduced too), so panic()
in sbi_init() isn't removed.

The sbi_set_timer() pointer will be used by reprogram_timer() to program
Xen’s physical timer as without SSTC extension there is no any other
option except SBI call to do that as only M-timer is available for us.

Use dprintk() for all the cases to print that a speicifc SBI extension
is available as it isn't really necessary in case of release builds.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v6-v7:
 - Nothing changed. Only rebase.
---
Changes in v5:
- Add inclusion of <xen/sections.h> to <asm/sbi.h> to deal with the compilation issue:
    ./arch/riscv/include/asm/sbi.h:156:30: error: expected ')' before 'sbi_set_timer'
    156 | extern int (* __ro_after_init sbi_set_timer)(uint64_t stime_value);
- Rephrase the first sentence of the comment above declaration of sbi_set_timer
  pointer to function.
---
Changes in v4:
 - Add "stime_value is in absolute time" to the comment above declaration
   of sbi_set_timer() function pointer.
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v3:
 - Init sbi_set_timer with sbi_set_timer_v01 as fallback value.
 - Sort SBI IDs in the same way as SBI EXT IDs are declared.
 - Add __ro_after_init for sbi_set_timer variable.
 - use dprintk instead of printk to print information if SBI ext is available.
---
Changes in v2:
 - Move up defintion of SBI_EXT_TIME_SET_TIMER and use the same padding as
   defintions around it.
 - Add an extra comment about stime_value granuality above declaration of
   sbi_set_timer function pointer.
 - Refactor implemetation of sbi_set_timer_v02().
 - Provide fallback for sbi_set_timer_v01().
 - Update the commit message.
---
 xen/arch/riscv/include/asm/sbi.h | 22 ++++++++++++++++++
 xen/arch/riscv/sbi.c             | 40 +++++++++++++++++++++++++++++++-
 2 files changed, 61 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/include/asm/sbi.h b/xen/arch/riscv/include/asm/sbi.h
index 79f7ff5c5501..ed7af200288f 100644
--- a/xen/arch/riscv/include/asm/sbi.h
+++ b/xen/arch/riscv/include/asm/sbi.h
@@ -13,6 +13,7 @@
 #define ASM__RISCV__SBI_H
 
 #include <xen/cpumask.h>
+#include <xen/sections.h>
 
 /* SBI-defined implementation ID */
 #define SBI_XEN_IMPID 7
@@ -29,6 +30,7 @@
 
 #define SBI_EXT_BASE                    0x10
 #define SBI_EXT_RFENCE                  0x52464E43
+#define SBI_EXT_TIME                    0x54494D45
 
 /* SBI function IDs for BASE extension */
 #define SBI_EXT_BASE_GET_SPEC_VERSION   0x0
@@ -48,6 +50,9 @@
 #define SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA       0x5
 #define SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID  0x6
 
+/* SBI function IDs for TIME extension */
+#define SBI_EXT_TIME_SET_TIMER          0x0
+
 #define SBI_SPEC_VERSION_MAJOR_MASK     0x7f000000
 #define SBI_SPEC_VERSION_MINOR_MASK     0x00ffffff
 
@@ -134,6 +139,23 @@ int sbi_remote_hfence_gvma(const cpumask_t *cpu_mask, vaddr_t start,
 int sbi_remote_hfence_gvma_vmid(const cpumask_t *cpu_mask, vaddr_t start,
                                 size_t size, unsigned long vmid);
 
+/*
+ * Programs the clock for next event at (or after) stime_value. stime_value is
+ * in absolute time. This function must clear the pending timer interrupt bit
+ * as well.
+ *
+ * If the supervisor wishes to clear the timer interrupt without scheduling the
+ * next timer event, it can either request a timer interrupt infinitely far
+ * into the future (i.e., (uint64_t)-1), or it can instead mask the timer
+ * interrupt by clearing sie.STIE CSR bit.
+ *
+ * The stime_value parameter represents absolute time measured in ticks.
+ *
+ * This SBI call returns 0 upon success or an implementation specific negative
+ * error code.
+ */
+extern int (* __ro_after_init sbi_set_timer)(uint64_t stime_value);
+
 /*
  * Initialize SBI library
  *
diff --git a/xen/arch/riscv/sbi.c b/xen/arch/riscv/sbi.c
index 425dce44c679..b4a7ae6940c1 100644
--- a/xen/arch/riscv/sbi.c
+++ b/xen/arch/riscv/sbi.c
@@ -249,6 +249,38 @@ static int (* __ro_after_init sbi_rfence)(unsigned long fid,
                                           unsigned long arg4,
                                           unsigned long arg5);
 
+static int cf_check sbi_set_timer_v02(uint64_t stime_value)
+{
+    struct sbiret ret;
+
+    ret = sbi_ecall(SBI_EXT_TIME, SBI_EXT_TIME_SET_TIMER, stime_value,
+#ifdef CONFIG_RISCV_32
+                    stime_value >> 32,
+#else
+                    0,
+#endif
+                    0, 0, 0, 0);
+
+    return sbi_err_map_xen_errno(ret.error);
+}
+
+static int cf_check sbi_set_timer_v01(uint64_t stime_value)
+{
+    struct sbiret ret;
+
+    ret = sbi_ecall(SBI_EXT_0_1_SET_TIMER, 0, stime_value,
+#ifdef CONFIG_RISCV_32
+                    stime_value >> 32,
+#else
+                    0,
+#endif
+                    0, 0, 0, 0);
+
+    return sbi_err_map_xen_errno(ret.error);
+}
+
+int (* __ro_after_init sbi_set_timer)(uint64_t stime_value) = sbi_set_timer_v01;
+
 int sbi_remote_sfence_vma(const cpumask_t *cpu_mask, vaddr_t start,
                           size_t size)
 {
@@ -324,7 +356,13 @@ int __init sbi_init(void)
         if ( sbi_probe_extension(SBI_EXT_RFENCE) > 0 )
         {
             sbi_rfence = sbi_rfence_v02;
-            printk("SBI v0.2 RFENCE extension detected\n");
+            dprintk(XENLOG_INFO, "SBI v0.2 RFENCE extension detected\n");
+        }
+
+        if ( sbi_probe_extension(SBI_EXT_TIME) > 0 )
+        {
+            sbi_set_timer = sbi_set_timer_v02;
+            dprintk(XENLOG_INFO, "SBI v0.2 TIME extension detected\n");
         }
     }
     else
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 16:33:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 16:33:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247981.1546396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyY7e-0005FX-D5; Fri, 06 Mar 2026 16:33:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247981.1546396; Fri, 06 Mar 2026 16:33:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyY7d-0005Cy-VY; Fri, 06 Mar 2026 16:33:53 +0000
Received: by outflank-mailman (input) for mailman id 1247981;
 Fri, 06 Mar 2026 16:33: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=RAjd=BG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vyY7c-00030j-5k
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 16:33:52 +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 420cbc5c-197a-11f1-b164-2bf370ae4941;
 Fri, 06 Mar 2026 17:33:51 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-48371119eacso112097795e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 06 Mar 2026 08:33:51 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dae57c05sm4406550f8f.39.2026.03.06.08.33.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 06 Mar 2026 08:33: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: 420cbc5c-197a-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772814830; x=1773419630; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AYl+zWkW5xPd0n05ltjvtGI8d6PS/n+RbbF8iPoiaOQ=;
        b=mdj3j8LxlURwz5uvn8CZQ4am/ZnPlQHwmX/qxgvT0MDZfFRdOO9guZmt4qc2GfGmn3
         4jjqh/8z4r5stplhNPwy5pUH0dn4LWd5Qe6Pwyjv8Im6m80wgSo85nCwVmIK7WPcRbGu
         IV4ILTUuDb3V/zTjKmveB0biwSD287taBdl2RAR7bhlIOfSowVsGIe5uRWNW5uOlikOI
         isUYGJ7Gv5zg3/njC3hmRUPcpH4wUkczQ2XC9KvP3wCyudWxOvTKVQ6mz1v2FIbkx9P0
         TR7JPF1yAFAqVR9Qr+Za+M0K6lSESD9swCVv8JhtB9gAJZNjEXkKhDNlUcKX2rU5kD+A
         wGGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772814830; x=1773419630;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=AYl+zWkW5xPd0n05ltjvtGI8d6PS/n+RbbF8iPoiaOQ=;
        b=TMTdarz0wV044aTaUOgYyMhXO5wYtGey+J2ck+q6g06xKfRfla9n7qRz0GXfhTEj2u
         jAjF90P2LWioEXNeb7FfD5O1ge9ho0qNnu8WslLwMm/jLhUfxiEV1ja5nUunE3QHr9fb
         N6ZIcq1qK4cKVh+1XOEfHpnVgoiVhpiFURg4dPv1qT1Df8o1Y7won2pi9JjdRxflmCJ0
         4RW3UP5jnLmFx+gUK0jGb0yPcT/cBmDeXbZfw+1EDIQd7Vnlm+ngW8Ycn0ftBIwTimTg
         XMQ5WqBXMlMyNdTc3r6hjSbfUWVpKZluT8f2D3+18J2gJKL3M6gtNFUicpLBi+MCWBr7
         jV7w==
X-Gm-Message-State: AOJu0Yy0E+fXhJwH8t35w8WHJOYH9hVGjNGVpeUdQtT/8XVAG/S8nJ03
	h2ZqoScUgqy/MaTuwsaUqdBxJFxpUmzT25n9CyHSENUdOy+F6xpQb7JyPfrTKw==
X-Gm-Gg: ATEYQzzX3RD6CQIKcx+J9ULCEslMYgQDHYNZulAmj1Xb4PD8SpdXThTPIhn/Qv3Cter
	lHLoPdnRWJTZgSAKv9WB6B99RKMB6mgu5TI4XaT119AeocwJYSKVKR58lPTBYCuWm+4seCJ0rsE
	177FH6Gz+G845x7OYHKZx1mUiWalY9PIc9+OVwQ3WvJzrn2lMO3LAlihyKUXiIEKPxg6YfBtnYo
	sfhdeOcQ1gs19CLcfmyIPt3F92H4PZgc+rpkTEti4eAo+OH3lH2uKBFZbbqhvwP/n5xb8le26LY
	r5BFfxG7ik8bE+wmGYggyzEAN1dWynDJ+P6HpoLNIsSjVWBEGMtQYfTNcW6DFN0OckhK0ng9v3V
	0Is1gMx7SuDkoFQj333UK0MHOkfOuRe20KPxoeHhxDO5BBmzxYpFumiojEK68PcrDMOIwDdWCUP
	GyzDu3Aj9N4pYMJk0qoV/XfdBIJLXRl+1KeVl4Si0LdTW91VA+Q6FT8iyWjmqTfkTInA==
X-Received: by 2002:a05:600c:1e2a:b0:477:b642:9dc1 with SMTP id 5b1f17b1804b1-4852695819cmr44199145e9.20.1772814830199;
        Fri, 06 Mar 2026 08:33:50 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 10/14] xen/riscv: implement reprogram_timer() via SBI
Date: Fri,  6 Mar 2026 17:33:27 +0100
Message-ID: <89884307fb74c534c0ed07afc1443aee4cab9a7b.1772814110.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772814110.git.oleksii.kurochko@gmail.com>
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement reprogram_timer() on RISC-V using the standard SBI timer call.

The privileged architecture only defines machine-mode timer interrupts
(using mtime/mtimecmp). Therefore, timer services for S/HS/VS mode must
be provided by M-mode via SBI calls. SSTC (Supervisor-mode Timer Control)
is optional and is not supported on the boards available to me, so the
only viable approach today is to program the timer through SBI.

reprogram_timer() enables/disables the supervisor timer interrupt and
programs the next timer deadline using sbi_set_timer(). If the SBI call
fails, the code panics, because sbi_set_timer() is expected to return
either 0 or -ENOSUPP (this has been stable from early OpenSBI versions to
the latest ones). The SBI spec does not define a standard negative error
code for this call, and without SSTC there is no alternative method to
program the timer, so the SBI timer call must be available.

reprogram_timer() currently returns int for compatibility with the
existing prototype. While it might be cleaner to return bool, keeping the
existing signature avoids premature changes in case sbi_set_timer() ever
needs to return other values (based on which we could try to avoid
panic-ing) in the future.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v5 - v7:
 - Nothing changed. Only rebase.
---
Changes in v4:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v3:
 - Correct the comments in reprogram_timer().
 - Move enablement of timer interrupt after sbi_set_timer() to avoid
   potentially receiving a timer interrupt between these 2 operations.
---
Changes in v2:
 - Add TODO comment above sbi_set_timer() call.
 - Update the commit message.
---
 xen/arch/riscv/stubs.c |  5 -----
 xen/arch/riscv/time.c  | 43 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+), 5 deletions(-)

diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index eedf8bf9350a..2f3a0ce76af9 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -21,11 +21,6 @@ nodemask_t __read_mostly node_online_map = { { [0] = 1UL } };
 
 /* time.c */
 
-int reprogram_timer(s_time_t timeout)
-{
-    BUG_ON("unimplemented");
-}
-
 void send_timer_event(struct vcpu *v)
 {
     BUG_ON("unimplemented");
diff --git a/xen/arch/riscv/time.c b/xen/arch/riscv/time.c
index 2c7af0a5d63b..7efa76fdbcb1 100644
--- a/xen/arch/riscv/time.c
+++ b/xen/arch/riscv/time.c
@@ -7,6 +7,9 @@
 #include <xen/time.h>
 #include <xen/types.h>
 
+#include <asm/csr.h>
+#include <asm/sbi.h>
+
 unsigned long __ro_after_init cpu_khz; /* CPU clock frequency in kHz. */
 uint64_t __ro_after_init boot_clock_cycles;
 
@@ -40,6 +43,46 @@ static void __init preinit_dt_xen_time(void)
     cpu_khz = rate / 1000;
 }
 
+int reprogram_timer(s_time_t timeout)
+{
+    uint64_t deadline, now;
+    int rc;
+
+    if ( timeout == 0 )
+    {
+        /* Disable timer interrupt */
+        csr_clear(CSR_SIE, BIT(IRQ_S_TIMER, UL));
+
+        return 1;
+    }
+
+    deadline = ns_to_ticks(timeout) + boot_clock_cycles;
+    now = get_cycles();
+    if ( deadline <= now )
+        return 0;
+
+    /*
+     * TODO: When the SSTC extension is supported, it would be preferable to
+     *       use the supervisor timer registers directly here for better
+     *       performance, since an SBI call and mode switch would no longer
+     *       be required.
+     *
+     *       This would also reduce reliance on a specific SBI implementation.
+     *       For example, it is not ideal to panic() if sbi_set_timer() returns
+     *       a non-zero value. Currently it can return 0 or -ENOSUPP, and
+     *       without SSTC we still need an implementation because only the
+     *       M-mode timer is available, and it can only be programmed in
+     *       M-mode.
+     */
+    if ( (rc = sbi_set_timer(deadline)) )
+        panic("%s: timer wasn't set because: %d\n", __func__, rc);
+
+    /* Enable timer interrupt */
+    csr_set(CSR_SIE, BIT(IRQ_S_TIMER, UL));
+
+    return 1;
+}
+
 void __init preinit_xen_time(void)
 {
     if ( acpi_disabled )
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 16:33:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 16:33:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247983.1546408 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyY7g-0005mq-H2; Fri, 06 Mar 2026 16:33:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247983.1546408; Fri, 06 Mar 2026 16:33:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyY7g-0005mX-Dd; Fri, 06 Mar 2026 16:33:56 +0000
Received: by outflank-mailman (input) for mailman id 1247983;
 Fri, 06 Mar 2026 16:33: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=RAjd=BG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vyY7d-0003HN-Uh
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 16:33:53 +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 42b2c3d4-197a-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Mar 2026 17:33:52 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-483487335c2so79746765e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 06 Mar 2026 08:33:52 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dae57c05sm4406550f8f.39.2026.03.06.08.33.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 06 Mar 2026 08:33:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 42b2c3d4-197a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772814831; x=1773419631; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sVTsKCN0wSfASIBvtQYg3brcx2aWUdWXZHC8J7YgVpo=;
        b=C5WD/ptislK0gk/27Z9QRkML3FdDH9WnR76RxuARrWdW9BkVUL1W+G496AY4PHITjV
         rGxEUSVFNJIIMV4Jj3AeXsXyFqcD3Lln91U5glcEL6bUvp+hghhmuyJK0PaV8zBs+PMx
         /hDjHyTUp27QtaxmmXxqHVFGnZjQaK6VgrgPHsEJ3HJ6G9WbSYD32FNW9L4PMnXIWTRZ
         dLYg6gfnIoxHFKTlS9lhBU5upN3cwUUq3A6Pok/Difg7yLhpB2S5afONx1gv7IExWfP1
         kyOF+b5yO893iDOSuFFZ628rd3WwfzlpWAhd3mmCAtAPeO60JJfXZZS+O4Dkny5DCqY9
         jdNA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772814831; x=1773419631;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=sVTsKCN0wSfASIBvtQYg3brcx2aWUdWXZHC8J7YgVpo=;
        b=k0cC2sfWRJRZWL7XXwIdAD9S4lbUlb3aPscNrAHJGQak21YctGp2NrCteT6QbeHFMW
         kzriRWa0i1XTIF5IJMyN93SdboD5vCwoUillyxQt2RHYNADMerTxKPRDoMuK0BrRhhB+
         Np16IRQP/KWLblHnAqQ6YfvlQ6FZBnRutDCrJcBjTovFf0Dl4CdPY8WXF70QVjUhIWDb
         lYURZs2RazVmxidNWTG+uwghYkcrdvsW8FaJtYY26qRvEkAtia1PPKP+zZeriBZjsl8P
         ZcMAr/ZjlRPC8crM/A9Kzixq/4/5WLzeqlhLbBwt0IV5dDJwiia9YJoGyBN4Va/pYtGT
         Q8xA==
X-Gm-Message-State: AOJu0Yy+y7+rX4M9ielRib1c7QeaBJ46p9ihM6jrEZY8vptkP8Lo05ln
	AaNFWy9XTyFuQtl7QOd8NpIKYgK5Un4NyjOb4C0ZNIyC3wj0R2UlAyay0rVzuw==
X-Gm-Gg: ATEYQzyyPYQqkglBhi6jlo/SuDolJ3v0RmAg5Z1dg+i/08HYUS4usGy0iIWKfy718WJ
	iNPPBl9eq5qi1xDLZiYTRNKPIMwa8F+53kG0ZSzN9t7jUiXREgdyi/nYhRK1/mjrnVxdqW7egJD
	TwcWJuYBZ45kNOIzNgVr6YB3rH7mENLqNC9sE3iKbaFjJ9t28IsdSyE8tQ+/Gb2tcqXzUcICQZU
	DUV0XBNeXCxApn/TMgQsMXO+Itg34/MvxpKHfGlycWb7kyC9beFUfruPuzgYtnh63Q4j9RtVvtQ
	S45ouGUZhwRMWyndUB10p527hcEMXGDF4lCVmV0fkMPii1Co4Pk1CJfmwt4YobUNdGZdsiFwiME
	Ti7iUMsHG5102zDseGUTkzJYlV5WTMRQih6Uml5aqsvQf8rYlAHLcX2LQB4EXMGL0Nxd1Tz47vG
	xvSDV9yicdsQ5j1u0CSeXDt4tW8WO1T/PAmFf0QDAqRo2Xg9snS8Gq8U3PxY+LTBPUIA==
X-Received: by 2002:a05:600c:138a:b0:47e:e2eb:bc22 with SMTP id 5b1f17b1804b1-4852691c5bamr48041945e9.5.1772814831354;
        Fri, 06 Mar 2026 08:33:51 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 11/14] xen/riscv: handle hypervisor timer interrupts
Date: Fri,  6 Mar 2026 17:33:28 +0100
Message-ID: <8a1b9279cf17fbe258af62c95377540c236b292e.1772814110.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772814110.git.oleksii.kurochko@gmail.com>
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce timer_interrupt() to process IRQ_S_TIMER interrupts.
The handler disables further timer interrupts by clearing
SIE.STIE and raises TIMER_SOFTIRQ so the generic timer subsystem
can perform its processing.

Update do_trap() to dispatch IRQ_S_TIMER to this new handler.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v4-v7:
 - Nothing changed. Only rebase.
---
Changes in v3:
 - add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v2:
 - Drop cause argument of timer_interrupt() as it isn't used inside
   the function and anyway it is pretty clear what is the cause inside
   timer_interrupt().
---
 xen/arch/riscv/traps.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index 244264c92a79..326f2be62823 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -10,6 +10,7 @@
 #include <xen/lib.h>
 #include <xen/nospec.h>
 #include <xen/sched.h>
+#include <xen/softirq.h>
 
 #include <asm/cpufeature.h>
 #include <asm/intc.h>
@@ -180,6 +181,15 @@ static void check_for_pcpu_work(void)
     p2m_handle_vmenter();
 }
 
+static void timer_interrupt(void)
+{
+    /* Disable the timer to avoid more interrupts */
+    csr_clear(CSR_SIE, BIT(IRQ_S_TIMER, UL));
+
+    /* Signal the generic timer code to do its work */
+    raise_softirq(TIMER_SOFTIRQ);
+}
+
 void do_trap(struct cpu_user_regs *cpu_regs)
 {
     register_t pc = cpu_regs->sepc;
@@ -221,6 +231,10 @@ void do_trap(struct cpu_user_regs *cpu_regs)
                 intc_handle_external_irqs(cpu_regs);
                 break;
 
+            case IRQ_S_TIMER:
+                timer_interrupt();
+                break;
+
             default:
                 intr_handled = false;
                 break;
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 16:33:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 16:33:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247984.1546415 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyY7h-0005qY-C6; Fri, 06 Mar 2026 16:33:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247984.1546415; Fri, 06 Mar 2026 16: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 1vyY7g-0005pU-Tz; Fri, 06 Mar 2026 16:33:56 +0000
Received: by outflank-mailman (input) for mailman id 1247984;
 Fri, 06 Mar 2026 16:33:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RAjd=BG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vyY7d-00030j-SR
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 16:33:53 +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 4341cdb7-197a-11f1-b164-2bf370ae4941;
 Fri, 06 Mar 2026 17:33:53 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-439cd6b0aedso1877979f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 06 Mar 2026 08:33:53 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dae57c05sm4406550f8f.39.2026.03.06.08.33.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 06 Mar 2026 08:33: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: 4341cdb7-197a-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772814832; x=1773419632; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CHQw0iiSnYlgicKjMQWpmEGJyBczoqjDPyy2AZz+9Fw=;
        b=EzvjXlOBt+82hkUl0YrMvdyEsVAFxquwuHIV9uIUyb45VKS3Fg5VQvyeMLOuvbwTBy
         TfIrTGh0KEaTjmwi8kbQX6XoFA63NxhpX4cqrMLRMN3XtcqttyS3hNxCc5sXFJI5kiM8
         2mMXAaMbOU4o4sQ71IjTqg159DSl9zRl1UCey9FwCW64JeJGPJipSPeCnC+ZSJcZ2YH2
         5YcKyTtuwrbhhVwwhuW5iL95gkk1cFOcNSnrfy7/Cmvtm1jS029I8CB3+BcvkipyME7P
         L5Wc6BQU00uo58LLRve4n68cvDFwKYGxNPTriRjhoG0H/B8sjnhR6J8vvdmsFxteksFi
         UZaw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772814832; x=1773419632;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=CHQw0iiSnYlgicKjMQWpmEGJyBczoqjDPyy2AZz+9Fw=;
        b=u1j9Uihsmz0p8AHQdm7qXCU+gYQu/DU7lp6TkUPKiF4mYtFVFvXsu3qGI8QBvlz/uj
         2ZId7qGQSyjTSkfJEQ+RkSiPlEIkj/bSlzxBJuQYoGaPdJLoAX1fDHu5o28/o0TSECFG
         s79zGaUo9LPQKJ5qpKmWcnY6opiqDGZrzUus5ZiP3ZPRhXmwkuDsqntiuh1ov4qrUpJ1
         6XyEJeBpzi5AQcVxkNh0Cgs0P0OoASqWKSaHI5GJ2oRyYGWmN1ywvYn0RxsINVt78oJf
         fqWGw2yMnqLN0nQHqTbmiaXpde4pWxUT98Mbsy5UUcvxmFzZTbg2jpmmVm6TzM7LSoBS
         qP4A==
X-Gm-Message-State: AOJu0YytURpBvscRr4KgKDBjv5UpP18gLDpYpNeqUHTp95Ys3ClBbM5w
	AmpAlGTXkdUlVW7F8rylpZfa6JsZaTAazDsx/HiNbXIrrUKZbcU9WAv4bO1E6w==
X-Gm-Gg: ATEYQzzDw/7qK0VVfYHQn/qwUn0Cwajn0tGtLat78vTbZdGs/yIIiZUvBYS67TKU4sS
	Fl46bi8plknDQPTA+841Hf0kmr7T4LYT9RC1LW2vOSJRj33Z2QD+wpiChWrUmci7nSP/Jf/O88L
	fmWC7fmuHI+Je4dDESVD+CanhJHz8zRutggOoC1DRNxtiFPimGeWtleIlJTFSAEUCvyh/quLzNr
	woOTVcn40ZAK9WlwdJvZQmMzMObwzSIYPt5VQsGhIVxAmRpeF+GWU9GO2BeoXeBcMnh09+JQodj
	tZHRCxM0F9lsYeXHln+N+lm8ujn0uN7+boZukI7WmLxX5k9oSc3UDRc8i5Z0EeFf002hVEZvGgc
	FBwkn1na9rRi//XOPBcSuaGETiuH+HAz+dIGNCIDro8rat1zbCXv+B9sKhzYljaPE0gp2qwQsws
	uY4arNPM8WFXx7gwBVc7L7GoyTYb5zI+Wm6IMV6f2zJbUq5eIK8BpwkBi/YGZsDqVymg==
X-Received: by 2002:a05:6000:144a:b0:439:bc31:a04d with SMTP id ffacd0b85a97d-439da8941femr4925276f8f.41.1772814832338;
        Fri, 06 Mar 2026 08:33:52 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 12/14] xen/riscv: init tasklet subsystem
Date: Fri,  6 Mar 2026 17:33:29 +0100
Message-ID: <0475cb50e04a48aedd730f2f0ab57381cc26d6ed.1772814110.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772814110.git.oleksii.kurochko@gmail.com>
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As the tasklet subsystem is now initialized, it is necessary to implement
sync_local_execstate(), since it is invoked when something calls
tasklet_softirq_action(), which is registered in tasklet_subsys_init().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v6-v7:
 - Nothing changed. Only rebase.
---
Changes in v5:
 - It was something wrong with prev. rebase. So fix that and move
   removing of sync_local_execstate() and sync_vcpu_execstate() to the
   next patch.
---
Changes in v4:
 - Nothing changed. Only rebase.
---
Changes in v3:
 - add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v2:
 - Update the commit message.
 - Move implementation of sync_vcpu_execstate() to separate commit
   as it doesn't connect to tasklet subsystem.
---
 xen/arch/riscv/setup.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index bca6ca09eddd..cae49bb29626 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -12,6 +12,7 @@
 #include <xen/serial.h>
 #include <xen/shutdown.h>
 #include <xen/smp.h>
+#include <xen/tasklet.h>
 #include <xen/timer.h>
 #include <xen/vmap.h>
 #include <xen/xvmalloc.h>
@@ -133,6 +134,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
         panic("Booting using ACPI isn't supported\n");
     }
 
+    tasklet_subsys_init();
+
     init_IRQ();
 
     riscv_fill_hwcap();
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 16:33:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 16:33:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247986.1546418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyY7i-0005zX-1J; Fri, 06 Mar 2026 16:33:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247986.1546418; Fri, 06 Mar 2026 16: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 1vyY7h-0005vK-Ij; Fri, 06 Mar 2026 16:33:57 +0000
Received: by outflank-mailman (input) for mailman id 1247986;
 Fri, 06 Mar 2026 16: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=RAjd=BG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vyY7e-00030j-Uc
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 16:33:54 +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 43d443d0-197a-11f1-b164-2bf370ae4941;
 Fri, 06 Mar 2026 17:33:54 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-439ce3605ecso1560842f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 06 Mar 2026 08:33:54 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dae57c05sm4406550f8f.39.2026.03.06.08.33.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 06 Mar 2026 08:33: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: 43d443d0-197a-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772814833; x=1773419633; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cYzV7pV3IRuCnaF6MoayYG+rthZpT+FdfN6FzWyJXSQ=;
        b=Mgr8bq7+BcKVYbV63vadXQqQXTgoOwBQ9IBlF0hMKa93o8qGy4qIji+jmtD/pdlFuH
         p2jkAGYOReA0SISIr9+1Z0ifVUGPYkRiQ41p6ixNluXCvCKOstsmtRpW8/XR+h3w1Wyh
         +1oJy6pX2V8mYNPgu3RTRnDmosxm7L4Lhp1SHINneYlk2k99ylwZ5UBRaXbt7PqlsxrU
         y75o3R9oJqQKagApicWodfk7cDaAanHQoUHbrzTCv92eleY1hJjRHiIjzFw1aTpEp7PZ
         mDG4izOm53IVbsdlRXVNsNH+0ea7QYSlE5x+YDjmwM7kxLUFWOw2BoNsiZXWJI6xfDNP
         ZYjA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772814833; x=1773419633;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=cYzV7pV3IRuCnaF6MoayYG+rthZpT+FdfN6FzWyJXSQ=;
        b=aVNUQlTM3gEckrmDFoPihEUquAU0xu8QA7hu5gg9tDRQqkc1gS3jZLJuZg/MaJSNrO
         rxmXrp0JGs43ZccrfdJ3fbrNlGYJr3zvN6EmxHxA6tGdfN7IUucVDIVyI/1mHIfKZMHo
         W9k4NUGHjfLxLv8CIkIMCo8Nap/oP3ZOnnoL2MXLNIJN17ggoa2WhUT8SAiizZyX86Wj
         2EO5ts5MPggPiZ+v32B8CdC0ky91XEeCNR2Q99ZKaSjunw+AUpNE++rKoWvS77FiqcH8
         NkcsxJGID9GhLqqRAdLmfBJo8fzqtb2blcRe8GPaLGYdtFbIqfV25nI6b03aFC2uUZU8
         SBzg==
X-Gm-Message-State: AOJu0YxItaX774536MO8Azl3Md/pkDXfr6W1elLI78KdbJXfSacFpXa/
	dCG4A4R9MgSZISlVz58Hsz+pvTniIr2IbYDS5avmo7zQE4dGgxhdkqF0TZhq8w==
X-Gm-Gg: ATEYQzwSTiay9VRfHdnqaipDf+bk3FvZiESIE5a3SncTn8suqTRPJ0wx3OxwxnlTxhR
	vtSRMN9T9LYCM9lB5HQupxpWZIDLruNf9SWyLK+U5pEwvFKsWBV7yXrNnAVWk/jK8S+XuoWS5eT
	pOdzEoA+Di6LGjcTgKc4kCiSiii/txnptSsK2Q65FzqKi7xakiewzqr6gROekdv2c9bZdFQQKX3
	NmM9x+oeyvAkSJh5Qj+5Lvt3/cxxmW0ClVi6Hgh1QqIz5sqmnsv8JM9rntT/zB+0F5H0Zsg9Gi/
	86qkieeIfvgsQl/eY7e8rbNdg927Ym/mMsRJ2dnkJTE4DkN+OudXslkf0HBIM4v81uCftKse84T
	M+QtQiCLGYQrmDV00wKUrjIKEXF8oeQynunr4S6o98IlVURlLa2I83mKQex+HFSbOiDC3L0kxH1
	lU2fhar8I+wjr9pHVa2ORRPFCtLiLa8tMi1PP1Z85o/StB5tF22+zVqa4aMp1kVDC7jw==
X-Received: by 2002:a05:6000:1846:b0:439:b7b5:b1d1 with SMTP id ffacd0b85a97d-439da65d6e4mr4835532f8f.18.1772814833266;
        Fri, 06 Mar 2026 08:33:53 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 13/14] xen/riscv: implement sync_vcpu_execstate()
Date: Fri,  6 Mar 2026 17:33:30 +0100
Message-ID: <bc83449f00f113d1b60856f4981bb1e86ec11e65.1772814110.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772814110.git.oleksii.kurochko@gmail.com>
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The scheduler may call this function to force synchronization of given
vCPU's state. RISC-V does not support lazy context switching, so nothing
is done in sync_vcpu_execstate() and sync_local_execstate().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v6-v7:
 - Nothing changed. Only rebase.
---
Changes in v5:
 - It was something wrong with prev. rebase. Drop stubs for
   sync_local_execstate() and sync_vcpu_execstate() in this patch.
---
Changes in v4:
 - Drop footer as [PATCH] sched: move vCPU exec state barriers
   is merged to upstream/staging.
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v3:
 - Align sync_vcpu_execstate() with patch:
     [PATCH] sched: move vCPU exec state barriers
---
Changes in v2:
 - New patch.
---
 xen/arch/riscv/domain.c | 10 ++++++++++
 xen/arch/riscv/stubs.c  | 10 ----------
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index c8ce1efa884d..7e3070101714 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -278,6 +278,16 @@ void vcpu_kick(struct vcpu *v)
     }
 }
 
+void sync_local_execstate(void)
+{
+    /* Nothing to do -- no lazy switching */
+}
+
+void sync_vcpu_execstate(struct vcpu *v)
+{
+    /* Nothing to do -- no lazy switching */
+}
+
 static void __init __maybe_unused build_assertions(void)
 {
     /*
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 2f3a0ce76af9..acbb5b9123ea 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -91,16 +91,6 @@ void continue_running(struct vcpu *same)
     BUG_ON("unimplemented");
 }
 
-void sync_local_execstate(void)
-{
-    BUG_ON("unimplemented");
-}
-
-void sync_vcpu_execstate(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 void startup_cpu_idle_loop(void)
 {
     BUG_ON("unimplemented");
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 16:33:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 16:33:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1247988.1546430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyY7j-0006Pb-Li; Fri, 06 Mar 2026 16:33:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1247988.1546430; Fri, 06 Mar 2026 16:33:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyY7j-0006OI-9K; Fri, 06 Mar 2026 16:33:59 +0000
Received: by outflank-mailman (input) for mailman id 1247988;
 Fri, 06 Mar 2026 16:33: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=RAjd=BG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vyY7h-0003HN-2Z
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 16:33:57 +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 44742426-197a-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Mar 2026 17:33:55 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-48371bb515eso139922685e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 06 Mar 2026 08:33:55 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dae57c05sm4406550f8f.39.2026.03.06.08.33.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 06 Mar 2026 08:33: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: 44742426-197a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772814834; x=1773419634; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qFpsHTy+iZE+ZlLI/wSoHNKAABJERus7tjJu21kZd2A=;
        b=c/VEaL7MKi7XawxZ031l/Wj7E2m8bIBAHYmP0SbEsYoR0Hjy9lr5nu57miDo+7uFJQ
         HzuZnvXQB7V7D1Ocic+fk+Ge8WGx36N8dVifHX7UAPP/xiR78fm4kEO3wkqEQbCJ2kNL
         CZThkYtnEtBe6ejK/uRtmKwnqZU5+OzAY+aTc0Q5x49qjbzkJzVoU1fbOSjStXrPvZ2C
         WAdjZjk/v17VibI6NCwzW44XABgbsi6KcY+dtyO6to3Or9Jqno47pf59t5VYybf7+K+t
         xnePYR/uPAASaOc5wDikjm6/3vWXNK39z8GTQJwglO2aIntilHPxP3GupSeOXOYBLb36
         hBvw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772814834; x=1773419634;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=qFpsHTy+iZE+ZlLI/wSoHNKAABJERus7tjJu21kZd2A=;
        b=Mqu5wf0zrvB15s2yUVhHetipNZvORV5BLfK8lBfqpmvLmGCfFkYKT84KzollCs0x85
         Z6sxYzlqbjeTsG8zeozxSn/gGIA+hBSWwaKpdrvYsPXZAh9fT6U3iJyRHDRI0rhkzp1L
         bLnP78OAjUyj7kS7uLToulsRe+eZmrHyowbZpHLBbq/3Gj5iCmisTTT54gAyj9AGi3ie
         ql7ccA6vbuAt9beDqcnNGFcjSen40q+VjIqr3msyCldDRx5LbClZ33hmSZQs3iDPLSO6
         igHWofbV8hbOuPR0KhjIh09PpIHw4x3a+70lDHoAmETuS+1HQf6YXrMN5MnXnVvXwu6/
         FQlw==
X-Gm-Message-State: AOJu0YwfDU9MULWb1m4yh3WaFMIZzYtsvvE3i4BplAj8up/ZxStE8ufZ
	kcvpFWqtC36M+qysRJDbrEP/GwjaD3a6wactLmnqyE/ZcAQ1AXhFJfPjM2Fu6w==
X-Gm-Gg: ATEYQzy3Zd5EGKrv+P2dTIPSwqOiqiWjCCFYn12EilJ7Fv+HtC0r5QA4hKCn22u58Ti
	Ye7OtGK4bvATWPIgbL1GU0U/5ZXmqLqt3AKkJXh0YkNH8AIc278I6hsZTKL4FsZsEkOuv07ECr8
	zYv6HbKj6mBTpr3a+LBUIYVXIgI0k0bES2T0mNxvxOvpuIdpHxeYHbFSUeU8IenesuLtEt5uj/V
	FXNdf0EmwG8GzMr4oegpW7SOxZy2AjEoItaNC5w0W9YbiiNh56Lsi+v/4GbspixqzJrfce6YaSF
	hceFvo854xMidHb5EO0um4z58kDEAa0bZoxPiOuLPu2tAIBfT40WknS6DNTdRBjK/pLJsdFN+mV
	99yE5iaooMqju8KQY5TYMe1IQZ/f99bAn/Ng05bWSoZB6BZDtLOpMo9qUza1RwOCX+4qiEhiOOQ
	vk+TYwhfeWVTCxUDnenkpYDjVc659rnwXvUhT4J7jhT+a+w7kIy9divUzr1VwA+1X58g==
X-Received: by 2002:a05:600c:45c6:b0:483:c35d:3662 with SMTP id 5b1f17b1804b1-48526957c37mr42964395e9.18.1772814834067;
        Fri, 06 Mar 2026 08:33:54 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v7 14/14] xen/riscv: Disable SSTC extension and add trap-based CSR probing
Date: Fri,  6 Mar 2026 17:33:31 +0100
Message-ID: <f7b30c80eabd3ba371a0d541e3be023314ec37fd.1772814110.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772814110.git.oleksii.kurochko@gmail.com>
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Some RISC-V platforms expose the SSTC extension, but its CSRs are not
properly saved and restored by Xen. Using SSTC in Xen could therefore
lead to unexpected behaviour.

To avoid this in QEMU, disable SSTC by passing "sstc=off". On real
hardware, OpenSBI does not provide a mechanism to disable SSTC via the
DTS (riscv,isa or similar property), as it does not rely on that
property to determine extension availability. Instead, it directly
probes the CSR_STIMECMP register.

Introduce struct trap_info together with the do_expected_trap() handler
to safely probe CSRs. The helper csr_read_allowed() attempts to read a
CSR while catching traps, allowing Xen to detect whether the register
is accessible. This mechanism is used at boot to verify SSTC support and
panic if the CSR is not available.

The trap handling infrastructure may also be reused for other cases
where controlled trap handling is required (e.g. probing instructions
such as HLV*).

Also reorder header inclusion in asm-offsets.c to follow Xen coding
style: <xen/types.h> should be included before <asm/*> headers as there
is no any specific reason to remain the current order.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v7:
 - new patch.
   IMO, it is okay to have this patch separetely as at the moment it won't be
   an issue if Xen will use CSR_STIMECMP to setup its timer. The issue will
   start to occur when a guest will run.
---
 automation/scripts/qemu-smoke-riscv64.sh |  2 +-
 xen/arch/riscv/cpufeature.c              |  8 ++++++
 xen/arch/riscv/entry.S                   | 24 ++++++++++++++++++
 xen/arch/riscv/include/asm/csr.h         | 32 ++++++++++++++++++++++++
 xen/arch/riscv/include/asm/traps.h       |  7 ++++++
 xen/arch/riscv/riscv64/asm-offsets.c     |  7 +++++-
 6 files changed, 78 insertions(+), 2 deletions(-)

diff --git a/automation/scripts/qemu-smoke-riscv64.sh b/automation/scripts/qemu-smoke-riscv64.sh
index c0b1082a08fd..1909abb7af32 100755
--- a/automation/scripts/qemu-smoke-riscv64.sh
+++ b/automation/scripts/qemu-smoke-riscv64.sh
@@ -7,7 +7,7 @@ rm -f smoke.serial
 
 export TEST_CMD="qemu-system-riscv64 \
     -M virt,aia=aplic-imsic \
-    -cpu rv64,svpbmt=on \
+    -cpu rv64,svpbmt=on,sstc=off \
     -smp 1 \
     -nographic \
     -m 2g \
diff --git a/xen/arch/riscv/cpufeature.c b/xen/arch/riscv/cpufeature.c
index 03e27b037be0..987d36dc7eee 100644
--- a/xen/arch/riscv/cpufeature.c
+++ b/xen/arch/riscv/cpufeature.c
@@ -17,6 +17,8 @@
 #include <xen/sections.h>
 
 #include <asm/cpufeature.h>
+#include <asm/csr.h>
+#include <asm/traps.h>
 
 #ifdef CONFIG_ACPI
 # error "cpufeature.c functions should be updated to support ACPI"
@@ -483,6 +485,7 @@ void __init riscv_fill_hwcap(void)
     unsigned int i;
     const size_t req_extns_amount = ARRAY_SIZE(required_extensions);
     bool all_extns_available = true;
+    struct trap_info trap;
 
     riscv_fill_hwcap_from_isa_string();
 
@@ -509,4 +512,9 @@ void __init riscv_fill_hwcap(void)
     if ( !all_extns_available )
         panic("Look why the extensions above are needed in "
               "https://xenbits.xenproject.org/docs/unstable/misc/riscv/booting.txt\n");
+
+    csr_read_allowed(CSR_STIMECMP, (unsigned long)&trap);
+
+    if ( !trap.scause )
+        panic("SSTC isn't supported\n");
 }
diff --git a/xen/arch/riscv/entry.S b/xen/arch/riscv/entry.S
index 202a35fb03a8..b434948da3a4 100644
--- a/xen/arch/riscv/entry.S
+++ b/xen/arch/riscv/entry.S
@@ -99,3 +99,27 @@ restore_registers:
 
         sret
 END(handle_trap)
+
+        /*
+         * We assume that the faulting instruction is 4 bytes long and blindly
+         * increment SEPC by 4.
+         *
+         * This should be safe because all places that may trigger this handler
+         * use ".option norvc" around the instruction that could cause the trap,
+         * or the instruction is not available in the RVC instruction set.
+         *
+         * do_expected_trap(a3, a4):
+         *   a3 <- pointer to struct trap_info
+         *   a4 <- temporary register
+         */
+FUNC(do_expected_trap)
+        csrr    a4, CSR_SEPC
+        REG_S   a4, RISCV_TRAP_SEPC(a3)
+        csrr    a4, CSR_SCAUSE
+        REG_S   a4, RISCV_TRAP_SCAUSE(a3)
+
+        csrr    a4, CSR_SEPC
+        addi    a4, a4, 4
+        csrw    CSR_SEPC, a4
+        sret
+END(do_expected_trap)
diff --git a/xen/arch/riscv/include/asm/csr.h b/xen/arch/riscv/include/asm/csr.h
index 01876f828981..b318cbdf35c3 100644
--- a/xen/arch/riscv/include/asm/csr.h
+++ b/xen/arch/riscv/include/asm/csr.h
@@ -9,6 +9,7 @@
 #include <asm/asm.h>
 #include <xen/const.h>
 #include <asm/riscv_encoding.h>
+#include <asm/traps.h>
 
 #ifndef __ASSEMBLER__
 
@@ -78,6 +79,37 @@
                            : "memory" );                        \
 })
 
+/*
+ * Some functions inside asm/system.h requires some of the macros above,
+ * so this header should be included after the macros above are introduced.
+ */
+#include <asm/system.h>
+
+#define csr_read_allowed(csr_num, trap) \
+({ \
+    register unsigned long tinfo asm("a3") = (unsigned long)trap; \
+    register unsigned long ttmp asm("a4"); \
+    register unsigned long stvec = (unsigned long)&do_expected_trap; \
+    register unsigned long ret = 0; \
+    unsigned long flags; \
+    ((struct trap_info *)(trap))->scause = 0; \
+    local_irq_save(flags); \
+    asm volatile ( \
+        ".option push\n" \
+        ".option norvc\n" \
+        "add %[ttmp], %[tinfo], zero\n" \
+        "csrrw %[stvec], " STR(CSR_STVEC) ", %[stvec]\n" \
+        "csrr %[ret], %[csr]\n" \
+        "csrw " STR(CSR_STVEC) ", %[stvec]\n" \
+        ".option pop" \
+        : [stvec] "+&r" (stvec), [tinfo] "+&r" (tinfo), \
+          [ttmp] "+&r" (ttmp), [ret] "=&r" (ret) \
+        : [csr] "i" (csr_num) \
+        : "memory" ); \
+    local_irq_restore(flags); \
+    ret; \
+})
+
 #endif /* __ASSEMBLER__ */
 
 #endif /* ASM__RISCV__CSR_H */
diff --git a/xen/arch/riscv/include/asm/traps.h b/xen/arch/riscv/include/asm/traps.h
index 21fa3c3259b3..194d9a72f3ed 100644
--- a/xen/arch/riscv/include/asm/traps.h
+++ b/xen/arch/riscv/include/asm/traps.h
@@ -7,10 +7,17 @@
 
 #ifndef __ASSEMBLER__
 
+struct trap_info {
+    register_t sepc;
+    register_t scause;
+};
+
 void do_trap(struct cpu_user_regs *cpu_regs);
 void handle_trap(void);
 void trap_init(void);
 
+void do_expected_trap(void);
+
 #endif /* __ASSEMBLER__ */
 
 #endif /* ASM__RISCV__TRAPS_H */
diff --git a/xen/arch/riscv/riscv64/asm-offsets.c b/xen/arch/riscv/riscv64/asm-offsets.c
index 472cced4f8af..b0e2a4d86bd3 100644
--- a/xen/arch/riscv/riscv64/asm-offsets.c
+++ b/xen/arch/riscv/riscv64/asm-offsets.c
@@ -1,8 +1,10 @@
 #define COMPILE_OFFSETS
 
+#include <xen/types.h>
+
 #include <asm/current.h>
 #include <asm/processor.h>
-#include <xen/types.h>
+#include <asm/traps.h>
 
 #define DEFINE(_sym, _val)                                                 \
     asm volatile ( "\n.ascii\"==>#define " #_sym " %0 /* " #_val " */<==\""\
@@ -54,4 +56,7 @@ void asm_offsets(void)
     BLANK();
     DEFINE(PCPU_INFO_SIZE, sizeof(struct pcpu_info));
     BLANK();
+    OFFSET(RISCV_TRAP_SEPC, struct trap_info, sepc);
+    OFFSET(RISCV_TRAP_SCAUSE, struct trap_info, scause);
+    BLANK();
 }
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 06 16:46:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 16:46:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1248115.1546445 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyYKC-0003qk-DW; Fri, 06 Mar 2026 16:46:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1248115.1546445; Fri, 06 Mar 2026 16:46: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 1vyYKC-0003qd-AN; Fri, 06 Mar 2026 16:46:52 +0000
Received: by outflank-mailman (input) for mailman id 1248115;
 Fri, 06 Mar 2026 16:46: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=k/aL=BG=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vyYKA-0003qX-Cq
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 16:46:50 +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 0eaf7dda-197c-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Mar 2026 17:46:45 +0100 (CET)
Received: from SA3PR03MB7419.namprd03.prod.outlook.com (2603:10b6:806:39c::6)
 by LV4PR03MB8235.namprd03.prod.outlook.com (2603:10b6:408:2d8::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.19; Fri, 6 Mar
 2026 16:46:41 +0000
Received: from SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc]) by SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc%6]) with mapi id 15.20.9678.017; Fri, 6 Mar 2026
 16:46: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: 0eaf7dda-197c-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UgIedQq2bEtIBoExFb+XjPZIZQHpnkLwJymO+D1SMJjzpqOpTb6XrtDTl4TQtfbg0rJMZFadCEF7uMHvqj2khucQc5E8p9UGHaimbxk7NeASqbuqcAwlGSaMYsjqAlZgC8JWTRr1agWsXG7Flu+/t/9QVg+nN5B/anI7iA3kpWSngA9ekAbBPULbvN1s2nDCXIskCgLEzBr08cAauMjl84i9KvAKZuM22j7jT7Ag7Nk2x+o7oGFIoTzU/SG7QayuAsIFZiJlNgrrJ9JnulKTZufWAEDplBhdGOj6BGz6doRCFqGqv8ehFOsZeK010sm2Ni18FuE/aBgDgTe5j/qB8w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xwr/MMETSzLgWbupWT5oQkxt+MZIlNWPAb1MSClhT14=;
 b=nU8VBkdhM25XRpHh+vENB/2C7oxg4akfwrhYiCVHc+0jTu/hra4gWjh4/np/P63/iPwZ0QZ4BqeAE0Tth9ifttFg8tzSI+utbaoC7/lHKygESS4tYNsR44I33wOBnmfqPDdWYI/7gOu4KhAtBiO9e8pFGxac9Uz5gKyjJ5otlhy62F2bXoe/PGGraYjaeTzvRbKxJHYiI5QS7eQKJR02qEz4JIAINSOUBpp5oCS2WONNbQnWhzR5QjQ/MBXwfBOzsFo3HlmzWVCf39F9IVRs9v9iz43LAW4sNGkN83H+P5cOCZNW9JtISI6ruCpG4MPNtzgk6l2RyqH213uuIxhTGg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xwr/MMETSzLgWbupWT5oQkxt+MZIlNWPAb1MSClhT14=;
 b=q9TT3W3fEI5rO7ADepXMnd7ECUU0e4bBcQa0WDNeT5Qaft+lFm3FcMIQBnAydGDn9EIu2n4ngE44v17s+2or2OWe/rOTWWwnWfbzCDKuBUzxpdb7K3EJm7WK5Yy7Xn4IqT3IyPheyTOIew7iaXfFVj0y+SL//3CQjAU9Gkaskvc=
From: Edwin Torok <edwin.torok@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Roger Pau Monne
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 1/4] tools/tests/x86_emulator: avoid duplicate symbol
 error with clang
Thread-Topic: [PATCH v2 1/4] tools/tests/x86_emulator: avoid duplicate symbol
 error with clang
Thread-Index:
 AQHcp9gBGAcR9pePk0GnYyu6dQzUZLWc3C6AgAATegCAAAfEgIAABTyAgAANVwCABLepgA==
Date: Fri, 6 Mar 2026 16:46:40 +0000
Message-ID: <63CC9001-B239-4806-B188-7C8A6BF63DF5@citrix.com>
References: <cover.1772189234.git.edwin.torok@citrix.com>
 <358a87d89d50475a57f2a5d6ebea01d95a1df6d7.1772189234.git.edwin.torok@citrix.com>
 <766824c8-2ec5-45bd-9aed-1e84ad3ff779@suse.com>
 <B5EFCE28-79BA-403B-8F44-C4E7606BACE7@citrix.com>
 <d5c0e218-bfc4-4f37-901c-b622f90b7bd2@suse.com>
 <004F02CE-B8C8-40B5-8453-C754EBE92022@citrix.com>
 <0210cf5c-6dc3-4db5-aa2a-0e14e634b463@suse.com>
In-Reply-To: <0210cf5c-6dc3-4db5-aa2a-0e14e634b463@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA3PR03MB7419:EE_|LV4PR03MB8235:EE_
x-ms-office365-filtering-correlation-id: c89b6180-dd50-48ba-aa6c-08de7b9ff113
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:
 AVpM49B1jD3JMgc3CSHcwySaI/BIsIiZUemO7jv3Fp46zqPLooH1lEAILu7rBYoi4OAJdJeXXm+6F5QSVBBtHPX8eNXgPJ/fuPClABDu+Y37DVYYd1viQzhsuJ08+9At9Jdon9IRE8YlU/UNTiqBfUFBLjZRJk6KUkz8EGoNMjymyShheadudAXiKaoyT3PEsNIS7ODh6+YKDo3wLmI2sGeUjQrDZubkWE+CeztllxY3O6ol0JKmWDiKO96ntMJ4B6dOnDrxDuqgzYu73Pyx7kntAVc1APNZzGtDq4fIZX4Je1fGN7xHruav8kVZFnRwPz8xU+UuU+LZYaKAw9kKjBlDvttUUG5WNB4BlY3PDC/mjLs08kzYKFHag/tUqCaUHiHCag9l+09T3fUFfJWqr1MzhujRUSMPCnGTHdT3Ht4q4DHU3ZVbr/QSaBDOwVUEeueds/f0zqdPhc9dBC6eVx6LKizPEBPB36voBjZeVE7bl5RzoenW8JSMwCp3rcfuN7eqE3q3Jc35eYvDQGQj/wTlnCqBEcT3jZQCV1K1l2xBgbjzsMMrgp5uen7CYvS+aaRp0DxpZ/9ccAGX0Ob299fU7GKhTFKoNWzE546QjnAk3jXdde49KLyiulqlIB6L6aGQ6p7fLYtv6lhe4HJvK0a3ROfwQxoLlI6t/o1JdhCEssgRMD2LgGsOK/ly+l9eCA+HdfNP3np3KUooPV0EzYRRmN4g/bkGkJil7ANYgXd0rQ37KpZ+RqU4p9BSm0EXUrNlG1JfVm76Al+0C0ssWk/WypwyVsY5Tc6U/YsHrkU=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA3PR03MB7419.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?Wmo2VFo4aU1jVGFxaTVqeGVNem8wdFo4YjQ1UG5lTHcyTFM1SXF4eVNwdXhm?=
 =?utf-8?B?RWphRFluMmt0bm9lS3VXUXk5U1ZDVkxrcThXN2h1KzNvM0w4TjRnUTlHR3Zx?=
 =?utf-8?B?em9sLytJTjZycGpDcTVKNUhFMndOZXpZeG5NWkN0bmdFUmVLSnZKVWhuRGE0?=
 =?utf-8?B?cEFyVVdpWDdyaDRVcStLVlovaThqS29SVEVTeWRWWVJtWkxhN3RndHBkb0VI?=
 =?utf-8?B?ZWtJbFdPWGtPZGtyRE5BbDJKNnhZOWFvUnRRQjJkbGIvN3JtRDdBZElLMERz?=
 =?utf-8?B?T2VoSDkwQTJQbTAwdmFVT2tob0ZZY0RodHVTd0VsVUFFVzRaRTA5Z1pZQWhw?=
 =?utf-8?B?SXdJY296WktzWnc4MmtmQUZ1V0x4VVp5dU4wR2M4T2FJS3VhZUQzVW9ZRWhV?=
 =?utf-8?B?azZ2ZHFCZVg4Qkc3cE05eVQ5QU1Eemx3MUNKTTk1K3p2ZnU4dDQ2OWJxZDlL?=
 =?utf-8?B?MHZka001RklONnlJaDRid1IvVXovWlhXOUVyenI2cS9QWmNObFdMY0cyY0FW?=
 =?utf-8?B?alQwc3pqamp0K0VPQmJNbDJSZktsR2VuV21WS2FmcjBycC9DRVRJMG5SNmpQ?=
 =?utf-8?B?Y2t2UytVcG9aSnM0eWNlMDVlNFV0Y1g4b1ZJNEoxZEZ1SlduVDNIL2FmMFJW?=
 =?utf-8?B?QzRmWFUyMFJNSGhJNURzZDltUGZ6NFQ5TkZhWjcxMzRZWnh1Mi9qZ2ZwZXBu?=
 =?utf-8?B?M3crWHBiL0dLTVp2UFBBM1BSNmFpY3Byb1ZYazJENFZiVGRuSDgxeEtYZ0Zj?=
 =?utf-8?B?VGZzbnB5cGI2bG5FK2QwS3l4SDVkeGhicmxnRm54Y3REb3p5ZVZPc0E4end3?=
 =?utf-8?B?eVp2N2p6SWlwd2N1SEgzdTZJbU9OVkVYMWFTbWpLb21XMHozU3ZDSVdxZXlL?=
 =?utf-8?B?ZjhBRTVMVWpSMjZDNWtOU0kwY2FyalZ6OE5KSmovVWJuVXl2OEVaR3BHMDhJ?=
 =?utf-8?B?ZlF4VlNlS1NXaTRSb2ZidGYrQlR1enl2WElmTXdXNG00ZEhsaVdPTzBsaGZ0?=
 =?utf-8?B?MmgrTWdCeDBqUmhIZ094K2ZCNE5nQlMyeER2dC8xTWozQzYxbldMRGJWRmxh?=
 =?utf-8?B?Mldub2ltTzZKLzNKczBMbzBmV3pMT21vZHdCTkVUTjhOUXBZaW1KVVFmZkwv?=
 =?utf-8?B?S1BkOThvS1lNVnJaNEl1dVQrR2MxY0FOdWlBMkNNSTVSMDNGamMwY3ZPWkhB?=
 =?utf-8?B?TjAxejJhR2dRSTZrM3JMczIvR0dPVUZselVBb2VuZUFkUTNTTktpS2YzQTlT?=
 =?utf-8?B?bi9lRzExZ21hcGVVQVdyem14Y1R1alg2YWRuOXJYaWU4SVBGMUs4RThZOHcx?=
 =?utf-8?B?a0RjWGlsTVUvTUYyVDRiZEdNNFRvWGdyeVEyaVNhT3RwMlNYVU5wUHAwaW13?=
 =?utf-8?B?YTlmVEJvaE1PalkzMDJ3b05NMHUyK0RZWGhkQjhNTFkraVk3QVVsTzVrc2NE?=
 =?utf-8?B?ZE5iZHdlNisyeDZCZnRMNWV3TC9hWlo3azR0SWJpTTl3Z0o3c1RXNGJpaFBD?=
 =?utf-8?B?OFd5emdWMGMzWGpMUjlKQVMvTkxFaktDYlk5c1dOSVpLamh4MWdhQ3pFQ1dT?=
 =?utf-8?B?b2hCTWFWaDg3ekcra3kybzk4UEdiNk1JbnRRT1NDREJsVERJMXhnekFTSmQ5?=
 =?utf-8?B?Nk9jc3JlYVBYUzhDUUo0cFljd1FUWnQ2VTV6Y0hHZjFrU08zSzFvVi9MUXJj?=
 =?utf-8?B?bHMzNUtLZzZWcitmRE5kNUNXZlduaGx3Z3owWWVlZmVoZVhBRDMvUTVCd0Fy?=
 =?utf-8?B?c3NESnJNVUdWR3RSdVFSTzZjdktON3U5QVZ6TGFwZU5nVG9Rbk9uTUc4eUpk?=
 =?utf-8?B?R0NabWdFdlRhNUVRa2dVZ0lDbkp6Y29JTGtyeHd0alNXejdvRE1tKzRzTFVD?=
 =?utf-8?B?NFEzU2owRmlNeCtvcmsxTGZmb3FPNXltMDhtdXhvQlIxUXgxRzlSZzFtM3pn?=
 =?utf-8?B?YzlIaktYRmJlNUV3Mk45NFVUQ1RsNVQ5MnoxTFdBUU9FeTY1eUNwODJBVzU1?=
 =?utf-8?B?VDBoWDlWczdFclRwUDJSNnVwdnE4QitHSkltT1pFUFBHMkxPWTdxNnVkWEYv?=
 =?utf-8?B?aUx3ck12OXI5c2hwbWF5Zks0MEhFeExkN3o4OWFvWWVKZnNUMm9NU3E3S3FI?=
 =?utf-8?B?STMyQ29iV0JRRG1lWlZDdzhQeE4vRm1mdVF3OEJwRThzdlZsb0lpQlhhSmg5?=
 =?utf-8?B?V3BybmFZS2F3dUk3Ri9jVmMrdG1ZYjdDNG5QUTlDS3RrVVI1T1F5cnJrbnUr?=
 =?utf-8?B?SEl4anJDaTZWR0JzenJRYU1yV0lHQ3EvVTdQUUpWekUxRTU0bWdQdHdaNVpk?=
 =?utf-8?B?RFZTaW8wMzZzWUU1R0dFWGU0SFNYcUkveTFTOUxNVFBlc0hSYnFkamQ2Q0VI?=
 =?utf-8?Q?WA/5C44w6pxMNt9A=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <B4CFCF684022434AB21F288AE65010F0@namprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA3PR03MB7419.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c89b6180-dd50-48ba-aa6c-08de7b9ff113
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Mar 2026 16:46:40.7585
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: AcjJVABH6L/9gy5HSGnbdOGdZxsLAQ+Ebct/RLUIrWpHFoZZcba7xNTqgjlroruIS1fei/7YPzoK08UakDItEQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV4PR03MB8235

DQoNCj4gT24gMyBNYXIgMjAyNiwgYXQgMTY6NDMsIEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl
LmNvbT4gd3JvdGU6DQo+IA0KPiBPbiAwMy4wMy4yMDI2IDE2OjU1LCBFZHdpbiBUb3JvayB3cm90
ZToNCj4+PiBPbiAzIE1hciAyMDI2LCBhdCAxNTozNiwgSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1
c2UuY29tPiB3cm90ZToNCj4+PiBPbiAwMy4wMy4yMDI2IDE2OjA5LCBFZHdpbiBUb3JvayB3cm90
ZToNCj4+Pj4+IE9uIDMgTWFyIDIwMjYsIGF0IDEzOjU5LCBKYW4gQmV1bGljaCA8amJldWxpY2hA
c3VzZS5jb20+IHdyb3RlOg0KPj4+Pj4gT24gMjcuMDIuMjAyNiAxMTo1OCwgRWR3aW4gVMO2csO2
ayB3cm90ZToNCj4+Pj4+PiAtLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3IvdGVzdF94ODZf
ZW11bGF0b3IuYw0KPj4+Pj4+ICsrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci90ZXN0X3g4
Nl9lbXVsYXRvci5jDQo+Pj4+Pj4gQEAgLTE4ODIsOCArMTg4MiwxMyBAQCBpbnQgbWFpbihpbnQg
YXJnYywgY2hhciAqKmFyZ3YpDQo+Pj4+Pj4gI2RlZmluZSBkZWNsX2luc24od2hpY2gpIGV4dGVy
biBjb25zdCB1bnNpZ25lZCBjaGFyIHdoaWNoW10sIFwNCj4+Pj4+PiAgICAgICAgICAgICAgICAg
ICAgICAgIHdoaWNoIyNfZW5kW10gYXNtICggIi5MIiAjd2hpY2ggIl9lbmQiICkNCj4+Pj4+PiAj
ZGVmaW5lIHB1dF9pbnNuKHdoaWNoLCBpbnNuKSAiLnB1c2hzZWN0aW9uIC50ZXN0XG4iIFwNCj4+
Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3doaWNoICI6ICIgaW5zbiAiXG4i
ICBcDQo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIuaWZuZGVmICIjd2hp
Y2giXG4iIFwNCj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3doaWNoICI6
IFxuIiBcDQo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIuZW5kaWZcbiIg
XA0KPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNuICJcbiIgIFwNCj4+
Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi5pZm5kZWYgLkwiI3doaWNoIl9l
bmRcbiIgXA0KPj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLkwiICN3aGljaCAi
X2VuZDpcbiIgIFwNCj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi5lbmRp
ZlxuIiBcDQo+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICIucG9wc2VjdGlvbiIN
Cj4+Pj4+IA0KPj4+Pj4gTmljZSBpZGVhLCBidXQgd2h5IG11bHRpcGxlIC5pZm5kZWYsIGFuZCB3
aHkgZW1pdHRpbmcgdGhlIGluc24gZXZlbiBpZiB0aGUNCj4+Pj4+IGxhYmVscyBhcmUgYWxyZWFk
eSB0aGVyZSAoYW5kIGhlbmNlIHdvbid0IGJlIGVtaXR0ZWQgYSAybmQgdGltZSk/DQo+Pj4+IA0K
Pj4+PiBJIHRoaW5rIHdlIHN0aWxsIG5lZWQgdG8gZXhlY3V0ZSB0aGUgaW5zdHJ1Y3Rpb25zLCBz
byB0aGV5IGNhbiBiZSBjb21wYXJlZCBhZ2FpbnN0IHRoZSBlbXVsYXRvci4NCj4+PiANCj4+PiBP
ZiBjb3Vyc2UsIGJ1dCB0aGV5IGNhbm5vdCBiZSBleGVjdXRlZCB3aXRob3V0IGhhdmluZyBhIGxh
YmVsLiBXZSB1c2UgdGhlDQo+Pj4gbGFiZWwgdG8gcG9pbnQgdGhlIGVtdWxhdGVkIElQIHRoZXJl
LCBhbmQgdGhlbiB3ZSB1c2UgdGhlIGVuZCBsYWJlbCB0bw0KPj4+IGNoZWNrIHRoYXQgYWZ0ZXIg
ZW11bGF0aW9uIHRoZSBlbXVsYXRlZCBJUCBoYXMgYWR2YW5jZWQgYXMgZXhwZWN0ZWQuDQo+PiAN
Cj4+IE9oIHRoYXQgbWVhbnMgdGhhdCB3ZSB3b27igJl0IGFjdHVhbGx5IGJlIHRlc3RpbmcgYW55
dGhpbmcgdXNlZnVsIGluIGl0ZXJhdGlvbnM+PTENCj4+ICh0aGUgdGVzdCBwYXNzZXMsIGJ1dCBp
dCBydW5zIHRoZSBzYW1lIHRlc3QgYXMgaXQgZGlkIG9uIGl0ZXJhdGlvbiAwKS4NCj4gDQo+IE1h
eSBJIGFzayBmb3IgYSBsaXR0bGUgbGVzcyBib2xkIHN0YXRlbWVudHM/DQoNCg0KRmFpciBlbm91
Z2gsIEkgcHJvYmFibHkgc3RpbGwgZG9u4oCZdCBmdWxseSB1bmRlcnN0YW5kIGhvdyB0aGlzIHdv
cmtzLCBhbmQgSSB0ZW5kIHRvIGp1bXAgdG8gY29uY2x1c2lvbnMgdG9vIHNvb24uDQoNCj4gT2Yg
Y291cnNlIHRoZSAybmQgaXRlcmF0aW9uIGlzbid0DQo+IGlkZW50aWNhbCB0byB0aGUgMXN0LiBU
aGUgaW5zbiBlbmNvZGluZyBpcyB0aGUgc2FtZSwgYnV0IHRoZSBvcGVyYW5kcyAodGhlIG1hc2sN
Cj4gaW4gcGFydGljdWxhciwgaS5lLiB0aGUgdmFsdWUgJWszIGhvbGRzKSBhcmVuJ3QuDQo+IA0K
DQoNCklmIHdl4oCZcmUgdmVyeSBjYXJlZnVsIHdpdGggaG93IHdlIHVzZSBwdXRfaW5zbigpIHRo
ZW4gaXQgbWlnaHQgd29yayAoZS5nLiB3aXRoIG1vcmUgY29tbWVudHMgYXMgeW91IHN1Z2dlc3Rl
ZCkuIA0KDQpJIHRoaW5rIGl0IGNvdWxkIGdvIHdyb25nIGlmIHRoZSBjb21waWxlciB3b3VsZCBl
bWl0IGEgY29uc3RhbnQgdGhhdCBpcyBkaWZmZXJlbnQgaW4gZWFjaCBsb29wIGl0ZXJhdGlvbjoN
CnRoZSBlbXVsYXRvciB3b3VsZCBiZSBnaXZlbiB0aGUgc2FtZSBiaW5hcnkgc2VxdWVuY2UgdG8g
ZW11bGF0ZSwgYmVjYXVzZSBpdCBhbHdheXMgcmVmZXJzIHRvIHRoZSBsYWJlbCBmcm9tIHRoZSAx
c3QgaXRlcmF0aW9uDQoodGhlIG9ubHkgbGFiZWwgdGhhdCBleGlzdHMgd2l0aCBteSBwYXRjaCks
IGFuZCB0aGVyZWZvcmUgdGhlIHZhbHVlIGlzIHRoZSBjb25zdGFudCBpcyB0aGUgb25lIGZyb20g
dGhlIGZpcnN0IGl0ZXJhdGlvbi4NCldoZXJlYXMgdGhlIGFjdHVhbCBleGVjdXRpb24gd291bGQg
dXNlIHRoZSBhY3R1YWwgdmFsdWVzIG9mIHRob3NlIGNvbnN0YW50cywgd2hpY2ggYXJlIGRpZmZl
cmVudCBpbiBlYWNoIGxvb3AgaXRlcmF0aW9uLg0KVGhpcyBtYXkgcmVzdWx0IGluIGEgZGV0ZWN0
YWJsZSBjaGFuZ2UgaW4gdGhlIHJlc3VsdCBiZXR3ZWVuIHRoZSBlbXVsYXRvciBhbmQgYWN0dWFs
IGV4ZWN1dGlvbnMuDQpJZiBpbnN0ZWFkIG9mIGEgY29uc3RhbnQsIGl0IGVtaXRzIGEgcmVmZXJl
bmNlIHRvIGEgcmVnaXN0ZXIgdGhlbiB0aGUgcHJvYmxlbSB3b3VsZG7igJl0IGV4aXN0LCBiZWNh
dXNlIHRoZSByZWdpc3RlciB3b3VsZCBjb250YWluIHRoZSBjb3JyZWN0IHZhbHVlIG9uIGVhY2gg
aXRlcmF0aW9uLg0KDQpJZiB3ZeKAmXJlIGNhcmVmdWwgdG8gdXNlIHRoZSBhcHByb3ByaWF0ZSBj
b25zdHJhaW50cyB0aGVuIHRoZSBwcm9ibGVtIGNhbiBiZSBhdm9pZGVkIChlLmcuIEkgYXNzdW1l
IGEgcmVnaXN0ZXIgY29uc3RyYWludCBtZWFucyB0aGF0IHRoZSBjb21waWxlciBtdXN0IGFsd2F5
cyBwdXQgdGhlIHZhbHVlIGludG8gYSByZWdpc3RlciBmaXJzdCBhbmQgdXNlIHRoYXQsIGV2ZW4g
d2hlbiB0aGUgdmFsdWUgd291bGQgYmUgYSBjb21waWxlLXRpbWUgY29uc3RhbnQpLiBCdXQgdGhl
IG1hY3JvIGl0c2VsZiBjYW7igJl0IGNvbnRyb2wgd2hhdCBjb25zdHJhaW50cyBhcmUgdXNlZC4N
Cg0KQWx0aG91Z2ggaXQgbWlnaHQgd29yaywgdGhpcyBhcHByb2FjaCBpcyBxdWl0ZSBicml0dGxl
LiBGb3Igbm93IEkgc2VudCBhIFYzIHdoaWNoIHVzZXMgLU8wIGZvciB0ZXN0X3g4Nl9lbXVsYXRv
ci5vLCB3aGljaCBpcyBtdWNoIHNpbXBsZXIuDQotT3Mgd291bGQgd29yayB0b28sIGlmIEkgcHV0
IGl0IGludG8gdGhlIGNvcnJlY3QgcGxhY2UgKGhhcyB0byBnbyBpbnRvIEhPU1RDRkxBR1MsIG5v
dCBDRkxBR1MpLCBidXQgdGhlbiB3ZSByZWx5IG9uIHRoZSBvcHRpbWlzZXIgdG8gYWx3YXlzIGNv
cnJlY3RseSBlc3RpbWF0ZSB0aGUgc2l6ZSBhbmQgYXZvaWQgZHVwbGljYXRpbmcgdGhlIGFzc2Vt
Ymx5IGJsb2NrLiBTaW5jZSB0aGlzIGlzbuKAmXQgcGVyZm9ybWFuY2UgY3JpdGljYWwgSSBzdWdn
ZXN0IHVzaW5nIC1PMC4NCg0KSWYgYSBiZXR0ZXIgc29sdXRpb24gaXMgZm91bmQgdGhlbiB0aGlz
IGNhbiBiZSByZXZpc2l0ZWQgYWdhaW4gKGUuZy4gb25lIGJhc2VkIG9uIC5pZm5kZWYgYXMgZGlz
Y3Vzc2VkIGhlcmUpDQoNCg0KQmVzdCByZWdhcmRzLA0K4oCURWR3aW4NCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri Mar 06 17:19:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 17:19:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1248131.1546453 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyYpW-0000zr-Jf; Fri, 06 Mar 2026 17:19:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1248131.1546453; Fri, 06 Mar 2026 17:19:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyYpW-0000zk-Gp; Fri, 06 Mar 2026 17:19:14 +0000
Received: by outflank-mailman (input) for mailman id 1248131;
 Fri, 06 Mar 2026 17:19: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=kfUi=BG=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1vyYpU-0000zb-Me
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 17:19:12 +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 966552e6-1980-11f1-b164-2bf370ae4941;
 Fri, 06 Mar 2026 18:19:10 +0100 (CET)
Received: from BL1PR13CA0005.namprd13.prod.outlook.com (2603:10b6:208:256::10)
 by MN2PR12MB4064.namprd12.prod.outlook.com (2603:10b6:208:1d3::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.6; Fri, 6 Mar
 2026 17:19:04 +0000
Received: from BL6PEPF0001AB71.namprd02.prod.outlook.com
 (2603:10b6:208:256:cafe::5) by BL1PR13CA0005.outlook.office365.com
 (2603:10b6:208:256::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Fri,
 6 Mar 2026 17:19:03 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL6PEPF0001AB71.mail.protection.outlook.com (10.167.242.164) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Fri, 6 Mar 2026 17:19:03 +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, 6 Mar
 2026 11:19:03 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 6 Mar
 2026 11:19:03 -0600
Received: from [10.71.193.38] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 6 Mar 2026 11:19:02 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 966552e6-1980-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mbsIc6QzCoX00VPpNlTIdN8ucMguHHrM2ZWAiY2Ij14i5bhAO2DEnA26fQiV9grm8Je502ct57euS/o3/a57YXBKnvGx5zPem4C5wYLKyobIrgnf0v1HzNwEBd7aOGs/Zao0zn2bHmdpyxE2ppqRw0RQhSSxJ9AQcEr4KeNT0VQ37GtFnA2fDFo4+II81qzURNHRtiUxHYs8UgE49OacQSP+c4RmpLAn6B46lrLf7n3A/IOtNZgIdN6oPb3rb8QrqKpg/VNLr+TaF7gFQJKylNlRxQobSOrNNBpEFzsatfdMgXKOMDbGqiX30pkxUDlZgeZfmn4WLM5jKerpf7llAA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9qcontLYIVWajp9z5CaJED4NI+Xo+UmR+TqAT5Xge9o=;
 b=SID23bpqHKxM3oS7z3f9Q5UCR73+And9TGgR0S3PMM94xpprAgBAtYKcdP6mRpTX1LwL2zODb/G7UZcD8yPYFXS9p88aoJRCyN78h6g09lKVduCOtImS6tnnjevCuiHFyvqiCLFypkCwiU4YlnxMr2hJFHFuN1sPh15GHIPkUEfvAvjJCP1crRAJobffMtUPxT3An6xOiAdHZWI42Saa6AH0UMXidctl0/iKPLGi7uXuTPxQaSGtJMhuGKjyo72L58PT5ouuqKt4mV5kLXXc2ydJrXwvd3BBgNja4+ZhsyooHrY5MybI8zE9QylcP6aXf9UynbNVKN1PPsmW2R+KmA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=xen.org smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9qcontLYIVWajp9z5CaJED4NI+Xo+UmR+TqAT5Xge9o=;
 b=j+/9tEA34DF49Q5ebAMudLllgxtXDvSbo3LSNzj36KQeNXwYbXBi5dWrH/wsLWqqO/5zYWCL93l3OSpb6icGP5iVhw5NphWE/D7zhaQyvr4EjrzspBa5ojjp4/qsT/WeaR1kloh2rwMHF2chEolxLiHm4vb7OJVBQMBhg7YroRs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <e577e8ab-6c90-41ab-b42c-b018d911341d@amd.com>
Date: Fri, 6 Mar 2026 17:19:01 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen: gic-v3: Introduce CONFIG_GICV3_NR_LRS
To: Julien Grall <julien@xen.org>, Ayan Kumar Halder
	<ayan.kumar.halder@amd.com>, <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>
References: <20260305194358.2564387-1-ayan.kumar.halder@amd.com>
 <f1a5a509-bc6d-4616-872c-c5bb1ecf9da7@xen.org>
 <f10e2a5e-446c-42f2-b9ce-44498acbfb1e@amd.com>
 <c075f47f-09f1-443b-949f-936534f75ded@xen.org>
Content-Language: en-US
From: "Halder, Ayan Kumar" <ayankuma@amd.com>
In-Reply-To: <c075f47f-09f1-443b-949f-936534f75ded@xen.org>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB04.amd.com: ayankuma@amd.com does not designate
 permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB71:EE_|MN2PR12MB4064:EE_
X-MS-Office365-Filtering-Correlation-Id: 99a2c7ef-e761-4f29-3e88-08de7ba4773e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700016|376014|30052699003|1800799024;
X-Microsoft-Antispam-Message-Info:
	1K3KUQYe5JRY4lH2veudExy+Fc/tBOOsd+gCd0bRU5kiP4q3PPZfl4INhpxtVRFBzPlXvybU/KYo65yyz2k4iw1V57r6Q0rss8cykdZqh0rMsJGMrDwJmHYz7m/Sc2u2tVcFBWJIRHlRwbPooodqpIkzEY+S5f1XORaAdIt0Ob5sEtI4nxYnuadefmGkzuu1er0kYo4YyTBhpEaxsYTfiqlRMdxojVZWCSPQHD3lwF1twi4C7B78QHGPO/0Ba45sz7nRDV8opsZHvxdNamv/iH3b88Uay5PQituAkcgUTD/P2dtiqMwXidLruHQq8k57gRNGeT8G4y1ET107b6Tz/S5GujQsrqoqRSrSvpCL07DneeHNYa9FRUeJAOAqBs0E9aQ6mndu9PRnuZYFE5DYdPj2d42bersEf47LbiCQc58Ol+jMltp6bpbCDbRwqPLV0LK0kd6kgKQtwlngFbigqgID+7QBoFoSxLgjWILWbbFF+KcBCDw1KrFbXHCP+Y5bPM4qDai0GbEv0nfAdzV1TpthWOzEoPOq7B3TlcpJWu+5C5iN4NbwhW9DMHMJ4/t0ZjUSIknZsq+RT73fAQDMqo5hPHGXPvN3m2s+6ki6hY4u9KHIUgM9et7/LTgb2dWjxNguWCFJOSgTPoHz6JXyNIIkbax/13Euq5KZigWCtdn2xdSwhY+kABvJIWu+llc6Wx/xDoaI4tCQ+MKEG4pVG1atGUUHE400ikUjZYDC28zMaBrVaem7CJNC3jVwc7sMFdIfVUuXGpVckrCvnRbnmg==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(376014)(30052699003)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	gXuL6kNjZnfVFp60Jc/154Um4PYptT6xIQkrXd54QkxP71hOSLJZuhXI6G+6oNvAWJdu5SbTVVXDMfzefr1eI8DHlt2+v7JE6hf0oCXnSi9AlHy2fc3+lzV8ROKnwXDufGPligAct5nOyykvaA4NgCL/UV/Rqnane1m3ui1tqgWfAESm/fTbBY2khYY9LMWOI307PN+KZy0ZpMSRiE+ceTKglvz6l3r6b/U5LUs1Z9rBaQ/Qo05HPP/udhbAIrQtiEHvtH3+CXxw4tgjvLZhoHrXVETmclOlkF9pywMSdSRL4H58YutRBbJZNqCnNTxcCMHVs2G7jVfvEjhOpq/VL+DoeDFZFSgi/OgD8mLgICXeKHUUauswwbEcelpfJfBQAGe8CIP0IzgefVLnUydxGfRj8pQIDP//YJSWyrIFQ+lnWptoiSu0Mmgax014CrGh
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2026 17:19:03.8166
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 99a2c7ef-e761-4f29-3e88-08de7ba4773e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB71.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4064


On 06/03/2026 10:40, Julien Grall wrote:
> Hi Ayan,
Hi Julien,
>
> On 06/03/2026 09:51, Halder, Ayan Kumar wrote:
>>
>> On 06/03/2026 09:24, Julien Grall wrote:
>>> Hi Ayan,
>> Hi Julien,
>>>
>>> On 05/03/2026 19:43, Ayan Kumar Halder wrote:
>>>> Set GICV3_NR_LRS as per the number of list registers in the supported
>>>> hardware. This ensures:
>>>>
>>>> 1. In gicv3_save_lrs()/gicv3_restore_lrs(), use the number of list
>>>> registers from GICV3_NR_LRS (if defined) instead of gicv3_info.nr_lrs.
>>>> This ensures that if the hardware does not support more than 4 LRs
>>>> (for example), the code accessing LR 4-15 is never reached. The
>>>> compiler can eliminate the unsupported cases as the switch case uses a
>>>> constant conditional.
>>>>
>>>> 2. Similarly In gicv3_ich_read_lr()/gicv3_ich_write_lr() , we can
>>>> justify that the unsupported LRs (4-15) will never be reached as Xen
>>>> will panic if the runtime value (lr) exceeds GICV3_NR_LRS. Some
>>>> compiler can eliminate the code accessing LR 4-15.
>>>> In this situation, using panic() is better than accessing a list
>>>> register which is not present in the hardware
>>>>
>>>> 3. Whenever GICV3_NR_LRS is defined, the default condition and the
>>>> related BUG() cannot be reached at all.
>>>
>>> I am not sure how this is better. You will still crash Xen is 'lr' 
>>> >= GICV3_NR_LRS. Can you provide some details?
>>>
>>> > > As part of functional safety effort, we are trying to enable system
>>>> integrator to configure Xen for a specific platform with a predefind
>>>> set of GICv3 list registers. So that we can minimize the chance of
>>>> runtime issues and reduce the codesize that will execute.
>>>>
>>>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>>>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>>>> ---
>>>>   xen/arch/arm/Kconfig  |  9 +++++++++
>>>>   xen/arch/arm/gic-v3.c | 12 ++++++++++--
>>>>   2 files changed, 19 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
>>>> index 2f2b501fda..6540013f97 100644
>>>> --- a/xen/arch/arm/Kconfig
>>>> +++ b/xen/arch/arm/Kconfig
>>>> @@ -276,6 +276,15 @@ config PCI_PASSTHROUGH
>>>>     endmenu
>>>>   +config GICV3_NR_LRS
>>>> +    int "Number of GICv3 Link Registers supported" if EXPERT
>>>> +    depends on GICV3
>>>> +    range 0 16
>>>> +    default 0
>>>> +    help
>>>> +      Controls the number of Link registers to be accessed.
>>>> +      Keep it set to 0 to use a value obtained from a hardware 
>>>> register.
>>>> +
>>>>   menu "ARM errata workaround via the alternative framework"
>>>>       depends on HAS_ALTERNATIVE
>>>>   diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
>>>> index bc07f97c16..fb2985fd52 100644
>>>> --- a/xen/arch/arm/gic-v3.c
>>>> +++ b/xen/arch/arm/gic-v3.c
>>>> @@ -51,6 +51,8 @@ static DEFINE_PER_CPU(void __iomem*, rbase);
>>>>   #define GICD                   (gicv3.map_dbase)
>>>>   #define GICD_RDIST_BASE        (this_cpu(rbase))
>>>>   #define GICD_RDIST_SGI_BASE    (GICD_RDIST_BASE + SZ_64K)
>>>> +#define lrs                    (CONFIG_GICV3_NR_LRS ?: \
>>>> +                                gicv3_info.nr_lrs)
>>>
>>> We should avoid lowercase define, in particular with generic names 
>>> like 'lrs'. I think in this case, I would rather update 
>>> gicv3_info.nr_lrs:
>>>
>>> gicv3_info.nr_lrs = min(gv3_info.nr_lrs, CONFIG_GICV3_NR_LRS);
>>
>> But we want to enforce the user to set CONFIG_GICV3_NR_LRS , so that 
>> we don't have to rely on gicv3_info.nr_lrs.
>> > The only reason to use gicv3_info.nr_lrs is for backward compatibility
>> i.e. when the user forgot to set the config and as a result it used 
>> the default value as 0. We don't want to allow this for the safety 
>> use cases.
>
> Xen upstream has to support various use cases. One of the use-case is 
> Linux distributions where they want one Xen binary booting on multiple 
> HW. So "gicv3_info.nr_lrs" will have to stay forever.
We can default to using gicv3_info.nr_lrs if the user does not set a 
value in GICV3_NR_LRS. This is what I am trying to do in the patch.
>
> Now with CONFIG_GICV3_NR_LRS in place, I am concerned that someone 
> will try to configure the value to let say 16 but their HW support only 4.

If the user has set it to an incorrect value, then imo Xen should trust 
the value that user has set. And then any malfunction caused will be the 
responsibility of the user.

IOW, we want to put the responsibility on the user to provide the 
correct values.

>  I can't find any check at boot, so any problem will still occur at 
> runtime.
>
>>
>>>
>>> This would solve another problem where you don't sanity check that 
>>> the system effectively support CONFIG_GICV3_NR_LRS.
>>>
>>>> @@ -121,7 +123,7 @@ static inline void gicv3_save_lrs(struct vcpu *v)
>>>>   static inline void gicv3_restore_lrs(const struct vcpu *v)
>>>>   {
>>>>       /* Fall through for all the cases */
>>>> -    switch ( gicv3_info.nr_lrs )
>>>> +    switch ( lrs )
>>>>       {
>>>>       case 16:
>>>>           WRITE_SYSREG_LR(v->arch.gic.v3.lr[15], 15);
>>>> @@ -178,6 +180,9 @@ static inline void gicv3_restore_lrs(const 
>>>> struct vcpu *v)
>>>>     static uint64_t gicv3_ich_read_lr(int lr)
>>>>   {
>>>> +    if ( lr >= lrs )
>>>> +        panic("Unsupported number of LRs\n");
>>>
>>> Do we really have to panic in production build? Wouldn't it be 
>>> better to return '0' and maybe use ASSERT for a crash in debug 
>>> build? Same below.
>> You are right, we may not need this. One option I am thinking is ...
>>>
>>>> +
>>>>       switch ( lr )
>>
>> switch ( lr & (lrs - 1) )
>>
>> This ensures that we do not hit the unsupported cases.
>
> What about implementing it as RAZ-WI? 

You mean

  case 4: (lr >= lrs) ? 0 : READ_SYSREG_LR(4); /* read */

  case 4 : (lr >= lrs) ? :  WRITE_SYSREG_LR(val, 4); /* write */

> This would make any issue more reliable/obvious (if you have multiple 
> index accessing the same LR, then you could end up overwriting an 
> existing virtual interrupt).
- Ayan


From xen-devel-bounces@lists.xenproject.org Fri Mar 06 17:54:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Mar 2026 17:54:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1248170.1546463 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyZMz-00068q-4R; Fri, 06 Mar 2026 17:53:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1248170.1546463; Fri, 06 Mar 2026 17:53:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyZMz-00068j-1F; Fri, 06 Mar 2026 17:53:49 +0000
Received: by outflank-mailman (input) for mailman id 1248170;
 Fri, 06 Mar 2026 17:53:47 +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 1vyZMx-00068d-Me
 for xen-devel@lists.xenproject.org; Fri, 06 Mar 2026 17:53:47 +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 1vyZMx-008MLU-0O;
 Fri, 06 Mar 2026 17:53:47 +0000
Received: from [2a02:8012:3a1:0:f1c8:5b15:c616:1017]
 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 1vyZMw-002MPX-2r;
 Fri, 06 Mar 2026 17:53: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>
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=Ua5JMEz670mMuf9tiFD5YBeLAm5xqtRDgqzeO0ZYiXo=; b=bocV2BWEVTW2bfOtWFrE4Rd9JT
	6/gnoZ7d0lsJ7Jbehn5cON75VNy38U7Swz1jN80+eixgw/MQtkbJvjHvPvEdnKqjXR3jz8P4vOpBM
	CTPgpuf+yrlDv2abXBjrlU1u+9lpUWlnm3AnB8iL6UE1kk4z6oAffCtuZfEw69Davg4Q=;
Message-ID: <343c868a-61ef-4c9d-b6ab-96c35aa66de6@xen.org>
Date: Fri, 6 Mar 2026 17:53:43 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen: gic-v3: Introduce CONFIG_GICV3_NR_LRS
Content-Language: en-GB
To: "Halder, Ayan Kumar" <ayankuma@amd.com>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20260305194358.2564387-1-ayan.kumar.halder@amd.com>
 <f1a5a509-bc6d-4616-872c-c5bb1ecf9da7@xen.org>
 <f10e2a5e-446c-42f2-b9ce-44498acbfb1e@amd.com>
 <c075f47f-09f1-443b-949f-936534f75ded@xen.org>
 <e577e8ab-6c90-41ab-b42c-b018d911341d@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <e577e8ab-6c90-41ab-b42c-b018d911341d@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Ayan,

On 06/03/2026 17:19, Halder, Ayan Kumar wrote:
> 
> On 06/03/2026 10:40, Julien Grall wrote:
>> Hi Ayan,
> Hi Julien,
>>
>> On 06/03/2026 09:51, Halder, Ayan Kumar wrote:
>>>
>>> On 06/03/2026 09:24, Julien Grall wrote:
>>>> Hi Ayan,
>>> Hi Julien,
>>>>
>>>> On 05/03/2026 19:43, Ayan Kumar Halder wrote:
>>>>> Set GICV3_NR_LRS as per the number of list registers in the supported
>>>>> hardware. This ensures:
>>>>>
>>>>> 1. In gicv3_save_lrs()/gicv3_restore_lrs(), use the number of list
>>>>> registers from GICV3_NR_LRS (if defined) instead of gicv3_info.nr_lrs.
>>>>> This ensures that if the hardware does not support more than 4 LRs
>>>>> (for example), the code accessing LR 4-15 is never reached. The
>>>>> compiler can eliminate the unsupported cases as the switch case uses a
>>>>> constant conditional.
>>>>>
>>>>> 2. Similarly In gicv3_ich_read_lr()/gicv3_ich_write_lr() , we can
>>>>> justify that the unsupported LRs (4-15) will never be reached as Xen
>>>>> will panic if the runtime value (lr) exceeds GICV3_NR_LRS. Some
>>>>> compiler can eliminate the code accessing LR 4-15.
>>>>> In this situation, using panic() is better than accessing a list
>>>>> register which is not present in the hardware
>>>>>
>>>>> 3. Whenever GICV3_NR_LRS is defined, the default condition and the
>>>>> related BUG() cannot be reached at all.
>>>>
>>>> I am not sure how this is better. You will still crash Xen is 'lr' 
>>>> >= GICV3_NR_LRS. Can you provide some details?
>>>>
>>>> > > As part of functional safety effort, we are trying to enable system
>>>>> integrator to configure Xen for a specific platform with a predefind
>>>>> set of GICv3 list registers. So that we can minimize the chance of
>>>>> runtime issues and reduce the codesize that will execute.
>>>>>
>>>>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>>>>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>>>>> ---
>>>>>   xen/arch/arm/Kconfig  |  9 +++++++++
>>>>>   xen/arch/arm/gic-v3.c | 12 ++++++++++--
>>>>>   2 files changed, 19 insertions(+), 2 deletions(-)
>>>>>
>>>>> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
>>>>> index 2f2b501fda..6540013f97 100644
>>>>> --- a/xen/arch/arm/Kconfig
>>>>> +++ b/xen/arch/arm/Kconfig
>>>>> @@ -276,6 +276,15 @@ config PCI_PASSTHROUGH
>>>>>     endmenu
>>>>>   +config GICV3_NR_LRS
>>>>> +    int "Number of GICv3 Link Registers supported" if EXPERT
>>>>> +    depends on GICV3
>>>>> +    range 0 16
>>>>> +    default 0
>>>>> +    help
>>>>> +      Controls the number of Link registers to be accessed.
>>>>> +      Keep it set to 0 to use a value obtained from a hardware 
>>>>> register.
>>>>> +
>>>>>   menu "ARM errata workaround via the alternative framework"
>>>>>       depends on HAS_ALTERNATIVE
>>>>>   diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
>>>>> index bc07f97c16..fb2985fd52 100644
>>>>> --- a/xen/arch/arm/gic-v3.c
>>>>> +++ b/xen/arch/arm/gic-v3.c
>>>>> @@ -51,6 +51,8 @@ static DEFINE_PER_CPU(void __iomem*, rbase);
>>>>>   #define GICD                   (gicv3.map_dbase)
>>>>>   #define GICD_RDIST_BASE        (this_cpu(rbase))
>>>>>   #define GICD_RDIST_SGI_BASE    (GICD_RDIST_BASE + SZ_64K)
>>>>> +#define lrs                    (CONFIG_GICV3_NR_LRS ?: \
>>>>> +                                gicv3_info.nr_lrs)
>>>>
>>>> We should avoid lowercase define, in particular with generic names 
>>>> like 'lrs'. I think in this case, I would rather update 
>>>> gicv3_info.nr_lrs:
>>>>
>>>> gicv3_info.nr_lrs = min(gv3_info.nr_lrs, CONFIG_GICV3_NR_LRS);
>>>
>>> But we want to enforce the user to set CONFIG_GICV3_NR_LRS , so that 
>>> we don't have to rely on gicv3_info.nr_lrs.
>>> > The only reason to use gicv3_info.nr_lrs is for backward compatibility
>>> i.e. when the user forgot to set the config and as a result it used 
>>> the default value as 0. We don't want to allow this for the safety 
>>> use cases.
>>
>> Xen upstream has to support various use cases. One of the use-case is 
>> Linux distributions where they want one Xen binary booting on multiple 
>> HW. So "gicv3_info.nr_lrs" will have to stay forever.
> We can default to using gicv3_info.nr_lrs if the user does not set a 
> value in GICV3_NR_LRS. This is what I am trying to do in the patch.

I am still missing something. Why can't we just write GICV3_NR_LRS in 
gicv3_info.nr_lrs? This would simplify the code and avoid unnecessary churn.

>>
>> Now with CONFIG_GICV3_NR_LRS in place, I am concerned that someone 
>> will try to configure the value to let say 16 but their HW support 
>> only 4.
> 
> If the user has set it to an incorrect value, then imo Xen should trust 
> the value that user has set. And then any malfunction caused will be the 
> responsibility of the user.
 > > IOW, we want to put the responsibility on the user to provide the
> correct values.

I think this is the same things as the device-tree. We could trust the 
user didn't shoot itself in the foot (e.g. asking for a feature which 
doesn't exist). But at least for Xen on Arm, we try to be nice and tell 
the user that something is wrong early.

I don't see why we should diverge here. This is defense in depth which 
would save a crash during steady state if this was missed. I am assuming 
that it is better to crash while your car is parked than while you are 
driving ;).

>>>> This would solve another problem where you don't sanity check that 
>>>> the system effectively support CONFIG_GICV3_NR_LRS.
>>>>
>>>>> @@ -121,7 +123,7 @@ static inline void gicv3_save_lrs(struct vcpu *v)
>>>>>   static inline void gicv3_restore_lrs(const struct vcpu *v)
>>>>>   {
>>>>>       /* Fall through for all the cases */
>>>>> -    switch ( gicv3_info.nr_lrs )
>>>>> +    switch ( lrs )
>>>>>       {
>>>>>       case 16:
>>>>>           WRITE_SYSREG_LR(v->arch.gic.v3.lr[15], 15);
>>>>> @@ -178,6 +180,9 @@ static inline void gicv3_restore_lrs(const 
>>>>> struct vcpu *v)
>>>>>     static uint64_t gicv3_ich_read_lr(int lr)
>>>>>   {
>>>>> +    if ( lr >= lrs )
>>>>> +        panic("Unsupported number of LRs\n");
>>>>
>>>> Do we really have to panic in production build? Wouldn't it be 
>>>> better to return '0' and maybe use ASSERT for a crash in debug 
>>>> build? Same below.
>>> You are right, we may not need this. One option I am thinking is ...
>>>>
>>>>> +
>>>>>       switch ( lr )
>>>
>>> switch ( lr & (lrs - 1) )
>>>
>>> This ensures that we do not hit the unsupported cases.
>>
>> What about implementing it as RAZ-WI? 
> 
> You mean
> 
>   case 4: (lr >= lrs) ? 0 : READ_SYSREG_LR(4); /* read */
> 
>   case 4 : (lr >= lrs) ? :  WRITE_SYSREG_LR(val, 4); /* write */

I was thinking to do the check before the 'switch' as i don't think it 
needs to be duplicated per 'case'.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sat Mar 07 02:55:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 07 Mar 2026 02:55:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1248393.1546484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyhpD-0002eL-Kt; Sat, 07 Mar 2026 02:55:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1248393.1546484; Sat, 07 Mar 2026 02:55: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 1vyhpD-0002eD-Fn; Sat, 07 Mar 2026 02:55:31 +0000
Received: by outflank-mailman (input) for mailman id 1248393;
 Sat, 07 Mar 2026 02:55:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AsXE=BH=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1vyhpA-0002e7-W3
 for xen-devel@lists.xenproject.org; Sat, 07 Mar 2026 02:55:30 +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 1302d7e0-19d1-11f1-9ccf-f158ae23cfc8;
 Sat, 07 Mar 2026 03:55:19 +0100 (CET)
Received: from pps.filterd (m0482515.ppops.net [127.0.0.1])
 by m0482515.ppops.net (8.18.1.11/8.18.1.11) with ESMTP id 626K3NYc1670247
 for <xen-devel@lists.xenproject.org>; Fri, 6 Mar 2026 18:55:17 -0800
Received: from ph0pr06cu001.outbound.protection.outlook.com
 (mail-westus3azon11011036.outbound.protection.outlook.com [40.107.208.36])
 by m0482515.ppops.net (PPS) with ESMTPS id 4cr0xundqf-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Mar 2026 18:55:17 -0800 (PST)
Received: from DS7PR03CA0221.namprd03.prod.outlook.com (2603:10b6:5:3ba::16)
 by CO6PR16MB4258.namprd16.prod.outlook.com (2603:10b6:303:ac::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18; Sat, 7 Mar
 2026 02:55:14 +0000
Received: from CH3PEPF00000018.namprd21.prod.outlook.com
 (2603:10b6:5:3ba:cafe::7c) by DS7PR03CA0221.outlook.office365.com
 (2603:10b6:5:3ba::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.19 via Frontend Transport; Sat,
 7 Mar 2026 02:55:13 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 CH3PEPF00000018.mail.protection.outlook.com (10.167.244.123) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.0
 via Frontend Transport; Sat, 7 Mar 2026 02:55:12 +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
 626MvtNs3430266
 for <xen-devel@lists.xenproject.org>; Fri, 6 Mar 2026 21:55:12 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [3.215.31.156])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4cqucss2r5-3
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Mar 2026 21:55:12 -0500 (EST)
Received: from localhost ([19.12.92.222]) by cmsmtp with ESMTPSA
 id yhosv7PVAV4jQyhotv3fSK; Sat, 07 Mar 2026 02:55: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: 1302d7e0-19d1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:message-id
	:mime-version:subject:to; s=ppford; bh=gf/yYKG8HDzbk3g9D429cY3fp
	LWeKIBrGrZW8+ZjyEU=; b=odcXM5zFiiwACXwXH12prETVwgk6hysCC85MIGuBe
	5UMdkaTZlBrO0oN8nuISaCNBXsJAXq5iscX+9XjTB06AEN4Z+y7ZXZPv0AUWAo44
	xzgRO+iZrPQgLXFw9i4oxiS+ZQslJGC+JcdYJ/axdk2IGi7aLWt0j/kyzKqbWpm9
	fV0bfmE8qmSE8EfNkiJs2g5ktHalC6EY1cHFRZ+LD5ZxB134Mu66BHds4Y3boh+9
	28ECcKUTfL1ZyUBK3E/0MBUT1E4dM4CLZcGZ98K+DomMm/8u1LEhOOjjEzm8qC9A
	K//pKm+Y8cEuVC9v9WqZTUZhBvk16BZwZR35QKaQ6kgfA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SVAg9+k+N/e8gWrUp44ZnfhOxWdqts4jww+W5VWmiAu/4M86rvsrUQ8rK9r8notiOu31hQ/pDbUzeH72OavGkAIK+s2VhlpfRGh8pDVXxNUIFMy86z1xAxzX9ee+PACxU7NNTIXeAalJf2Vx6dPhGMRaFX46asOMZNKLGIpH96PkKx1njXOSF6UOyNGiK4U2fs2bRUxmYxBoSc6qOGlaxxQC8rbO/ZlGa+DjK4Lyx+ARnVEAPGbFsYyOeWcMBED30iuwaIq6tHH3A0ocICyKXZ6szoVhdYb0qaM7C4wepqppLGY9vQQbc5i5QBRKmUFMlSnHCuKDVW0O0kZdytQN5Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gf/yYKG8HDzbk3g9D429cY3fpLWeKIBrGrZW8+ZjyEU=;
 b=k3YPTOj1Olp1Pbr32Olcy1oURJaUQ7MlkxnNgbcNrObEfzjsIu2vUtDfFwTlZBZZTyAZIzUQLqj80Pr+Oy/uagrotdP4JXz8/qrdGWXN8xwIlUgWgEl3up7bqVVenFLDPjfkpR6vyOiSGYhxmoXWHJOgnQ/MKdUE4XcG4LFLsyW+wwoZ1Tz6B3HJAczOXawtiq3Kudh3wPZjb1nlXTRQmNRWjdA/Aaph+MRBsguqq2xWbUiX4N5BAxkS0eqTn785FF09mA/B0WBXw15UHgmZk1BOucOnne+glfpxb06KWhDdemsam7OrBAgH3BjEk1upB9ATkYOYf/a2BBIF6qFvWg==
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=gf/yYKG8HDzbk3g9D429cY3fpLWeKIBrGrZW8+ZjyEU=;
 b=M42B0z9lepaRgYsLToZUyrCSeHWPdAOf+R4FzBGRUoVly0asZxOSe0rJG/c3yNfle1kmmZmxHkZVYw6sCI3i6BtP3AHAzd4akpTEJNw++Gm7tJt5Qq3BCyCsCiyn+l5kb40worHi74dmwXEoUHLc00Vt743h/I2G+vJCsrnqUXw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:message-id:mime-version:subject:to; s=ppserprodsaar; bh=gf/yYKG
	8HDzbk3g9D429cY3fpLWeKIBrGrZW8+ZjyEU=; b=Ob+vZZq642g95iKJklfTj4K
	prRtP6JWZq/3hi9VlZbUheIeTznuTZ89IZ90L40DB+M62ulMHLOSyyEQtNrE2Lrq
	Nk/2Q6aBREv8GMj2szUcv8mWXWvYggW+xh9Wzd/zZT+aPK6QA/1doU/2sfrGci5y
	FzJDfvNiv6BqTHpAwQNZ/up7q3KEOFA27XRQ3q8R/85yTnAOkKcwwwPkb9dDCkQb
	CqiA3+7peVDWqVxQH24v+d8cOz2pFUqTRsePAX7X2T3eFbxkihGASCUnZ5sxnbp4
	u93/7gwbyoGF5BheCGsdCbaTYenx7eWiIfKumAEY57uIp0I5/lI+/KZecjnvCpw=
	=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:message-id:mime-version
	:subject:to; s=ppfserpocford; bh=gf/yYKG8HDzbk3g9D429cY3fpLWeKIB
	rGrZW8+ZjyEU=; b=lNM82muanUQSi7Y1JhaLDuZkhl5N48nnptEh0Xl0kY1WFG3
	LGIfCBWQ0qvnKoygvjpJKqKGeTp6ImJ7cGjtH1Hs9Uxtd3THttnh/gFVizMI0SRQ
	JrdcQEdPtubrfs6ekTShWO+jRFcmr7sSCtmtdxB30BWSz/tzJgeFiRmte6AT/xnz
	N5qPr9GHRsg6+A19z7I8lSKv0yTBMBLBu7FtjTw322Pl/sPw2LFjbntL0f0pHga+
	VIXDkHW3fjkbn0Yj3pt+NtnLxSK7EndlFdCdVli6f/guLEQKML4b8yOZ7z8To+so
	tbR8lBfd3Sn9LUSAU+QzKlfKbiI+JQ/fxLBfCvg==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: yhosv7PVAV4jQyhotv3fSK
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v6] xen/domain: introduce DOMID_ANY
Date: Fri,  6 Mar 2026 18:54:52 -0800
Message-ID: <20260307025451.3148078-2-dmukhin@ford.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-07_01,2026-03-06_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0
 bulkscore=0 lowpriorityscore=0 phishscore=0 suspectscore=0 malwarescore=0
 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000
 definitions=main-2603070025
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PEPF00000018:EE_|CO6PR16MB4258:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: 2185a8ed-e103-434a-dc15-08de7bf4f418
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|82310400026|376014|1800799024|13003099007;
X-Microsoft-Antispam-Message-Info:
	m9nQSxcU9hoNf2TUWRWsG42EQuip0cX13uJak6eFhJQkaeiO6bx+Th3ZW2BnU3hyJ1bLRNv1ls9DP1ai7vwdhtgonACRu6eBikoJpDRPAL59MYtm6/2UQzY6wZ5b44Gn5DMD/RFE4mi2SAP9Y/C2COJ1efidDMfcmI/3jJXkUYJRkYSShq6tf6n9UDFcR7juOcIBg+bQncynBaSCThtymHiyL5GtSw6ITesc+y0V+svqnfbd0QPg5mtRvlIdla5uLJ+JF1SblJwGQGbVeNq9+eXNUtT+azHnp2jTax15CqYHPtewkjG2Btc/xWyfaplBW5Zj/E070tE9vrxT1zs+YMVYNGzCB6LIke8R2EE+HrrU/EQJUYYVj3At6mrqG+iCeu1OwIKhqrYwf4ArzECdSJtZq+KZepqsJ4G1Hmo82UjCgHR8v9HKsay9w/6wQFCWdbChbA85w0cTorjWUcEbUT8uKW4AEXBKL4aOqfrJhkZ8BpUhVVRn3qupwRCRbXZPHDQ8xJWiQ8lJpglAWUtZSdySAQckbHd2HZQHtE4/KOypCYIA/Bm9mQwv9Zfo67dk/1sPOt3lgoA2vU/zVcqa58QCxPqv3l5/BsbPuCPhDUN4ZiZ597gQ69RG1S/nZdN2nMq66DKcbEarNDNATwVGwYyiLNas63yh/QjeEV8fkAWYwriITKdZrjpJDYOKejgNX2fV9V/vVhuc+2cWf4vtc9yE9NIUEmY6IsLDTBF83dYPvEKf35O0ACKjIB+bjWxon1FhtV3GqBDYiWySEbkWmQ==
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(36860700016)(82310400026)(376014)(1800799024)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	zHoKZXZPXarKSk6Y5Iqr8aia8jWASdtzS+3Z2K9/qUuQohPt4pO5HWd8MJRN8p6O2HQw5gz9iYmCG2llxk2Iwb0Fk309zrqjsdeAXU3N5LQ1d2cjIVdLonBBDVEAf2TcRMo9ABxTgVkMVEAOGsHEfgIq2PpkSbh8o94oPCOkL6f8c/e2zyrN0AvaMhxOrABBl3y1yjQqc/g1mHqckGw9TZmiG25rlRwNAnAFQKK3CsczR+6C+ifGA741682OP5iGU84bf+aAHE7YXZP+TX1Bvl8yQama2l7DQZJzISERdCgq0I63th0C/BHY/vQqbStupVH0FbZ8kMrnM2bkjQRJm4516dy11PSwdnCYNDxzD01/nZWLtASB2QO49j9+xeaROREfgzZeBABHEeMZxrOnzvGZz0rOx+R1/J7+tE8in8Y3DorVle9xWs807BZr9x9d
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	HbqQqg8cTnHh49gnijR9Gh5n28gxpwBXbyC9aeecCEREaNfSk41G+XPjO6EUvvURm/jrQGRIkJ3gKNma3wUdBe6FL+OEa5jJkyEu5V7xGAYyolNTRISP8IzJKiQ2cEzAf2ptbTfm2nL0fBaO7kBwN+tn4nJ1fp6XbOiUG42n/DZQbcdKvtZLuUNHAiJSIHKqDzt2sJg/RaBPZpCD1C7I3DLrZSqBMsE3XFNyly0ZP97kNuQfUEPCuIyvs0JDW5D4nORUp+gBZJHnvCai7uzVfjSMzQNKTwB7LafOjJR9cvjIx8JU/qCWbVe4ui3iUCIzSyLUhAif32MINksDa5xhGgbLDWAOtFx9rupx8/twlcB1fvl3x9npKt25ppAvHHqe/la9kt5EPQhGq+MyZfcdis9RTk+V6/zJW1JGpb2gzlfgW8H1kV2URaeU9oWLNJxSqapQyajB/NW9qyvWFBDDQmEvnldDXrCVJkqE8IXpZNmj5XeAHeq3cseV/NK5JAgLLlg4Zzq7Yo/fV9Js/4b5rd46N/fqacxNyvDdvJRV7po0YOzZADE4nTecPi8hzUKVp9Aj+xNb5OKFaEDF0hQ/kty05kWbKUyBj/eIixcpvBl+kI+QN7p4j4mFdhWZQJjz
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Mar 2026 02:55:12.9244
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2185a8ed-e103-434a-dc15-08de7bf4f418
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:
	CH3PEPF00000018.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR16MB4258
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA3MDAyNSBTYWx0ZWRfX3cOFhJB9wS4K
 s2RtWCgKjnoTeUVYyKgSi0wO/ufmSYqtnXHRxlx90g5XZTi2ApOgfrGHBTA3+g+jOe0c5nal3Mw
 4Kw1BxKVVwSRGZ9czpapkeS++1edzyGbnUkoNBS8ltJeZCXFviYLXcrP2FpKVMcjKriHXOk6NOK
 VWXTQOr3SoRMjXKMIWYj4Jbc+8aO1jsaWS5fQ4P/1Kl/tAmDFm+QnioCGRyyiBYiSt4RaM7Wrr8
 GGAT+gnnVeOqm0Jt+NsWjgVj0HdImcHbdK2t+yM4lW5ox21mX+XO2b+C1pXhijahweh0tMYxp/w
 3+PPuFtRJAUpckHifvgKmuQATbIcmI9P4zXd1AE66kULVRicyJ6nHetrv8wVz/xhJ6hMDyNrVzL
 /RO3+v7mY0hduHbPQyM7oJYcOMmOkfDiACZGQUVd7qEfW9z/76CpGSuv1Z0aUnUfpakJnSb4lBu
 C9UnpQk6dqe3QB9gfUA==
X-Proofpoint-ORIG-GUID: 2DXbRu_iQEBCbSm27YYvksPWBzzxElFg
X-Proofpoint-GUID: 2DXbRu_iQEBCbSm27YYvksPWBzzxElFg
X-Authority-Analysis: v=2.4 cv=OdWVzxTY c=1 sm=1 tr=0 ts=69ab9395 cx=c_pps
 a=uJxR2RjB/d5PFa0hjvWx4w==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=Yq5XynenixoA:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=P_n1zlmtWsCQbjROFjcg:22 a=0GA0A_IKJoUHBEAzNTkD:22 a=p0WdMEafAAAA:8
 a=cbNQJ9GKAAAA:8 a=Scr0WcHX4gzoYZdgL5MA:9 a=G69WFyCBNqGPyalROSdv:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-07_01,2026-03-06_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0
 bulkscore=0 malwarescore=0 priorityscore=1501 adultscore=0 phishscore=0
 impostorscore=0 lowpriorityscore=0 spamscore=0 clxscore=1015
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603070025

Add a new symbol DOMID_ANY to improve the readability of the code.

Update all relevant domid_alloc() call sites and harden the domid_alloc()
input value check.

Also, fix problem with passing invalid domain IDs in
XEN_DOMCTL_createdomain: turns out libxl__domain_make() (toolstack)
uses 0xffff as domain ID.

Amends: 2d5065060710 ("xen/domain: unify domain ID allocation")
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v5:
- fixed domain ID validity check in libxl__domain_make() 
- CI run: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/2368290952 
---
 tools/libs/light/libxl_create.c         |  6 ++++--
 tools/tests/domid/harness.h             |  1 +
 tools/tests/domid/test-domid.c          | 12 ++++++------
 xen/common/device-tree/dom0less-build.c |  2 +-
 xen/common/domctl.c                     |  3 +--
 xen/common/domid.c                      |  5 ++++-
 xen/include/public/xen.h                |  7 +++++++
 7 files changed, 24 insertions(+), 12 deletions(-)

diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_create.c
index bfc9149096a3..79af2958d170 100644
--- a/tools/libs/light/libxl_create.c
+++ b/tools/libs/light/libxl_create.c
@@ -666,7 +666,7 @@ int libxl__domain_make(libxl__gc *gc, libxl_domain_config *d_config,
         }
 
         for (;;) {
-            uint32_t local_domid;
+            uint32_t local_domid = DOMID_INVALID;
             bool recent;
 
             if (info->domid == RANDOM_DOMID) {
@@ -681,8 +681,10 @@ int libxl__domain_make(libxl__gc *gc, libxl_domain_config *d_config,
                     continue;
 
                 local_domid = v;
+            } else if (libxl_domid_valid_guest(local_domid)) {
+                local_domid = info->domid;
             } else {
-                local_domid = info->domid; /* May not be valid */
+                local_domid = DOMID_ANY;
             }
 
             ret = xc_domain_create(ctx->xch, &local_domid, &create);
diff --git a/tools/tests/domid/harness.h b/tools/tests/domid/harness.h
index 17eb22a9a854..65da0d075a2b 100644
--- a/tools/tests/domid/harness.h
+++ b/tools/tests/domid/harness.h
@@ -41,6 +41,7 @@ extern unsigned long find_next_zero_bit(const unsigned long *addr,
 
 #define DOMID_FIRST_RESERVED            (100)
 #define DOMID_INVALID                   (101)
+#define DOMID_ANY                       (102)
 
 #endif /* _TEST_HARNESS_ */
 
diff --git a/tools/tests/domid/test-domid.c b/tools/tests/domid/test-domid.c
index 5915c4699a5c..71cc4e7fd86d 100644
--- a/tools/tests/domid/test-domid.c
+++ b/tools/tests/domid/test-domid.c
@@ -41,20 +41,20 @@ int main(int argc, char **argv)
         domid_free(expected);
 
     /*
-     * Test that that two consecutive calls of domid_alloc(DOMID_INVALID)
+     * Test that that two consecutive calls of domid_alloc(DOMID_ANY)
      * will never return the same ID.
      * NB: ID#0 is reserved and shall not be allocated by
-     * domid_alloc(DOMID_INVALID).
+     * domid_alloc(DOMID_ANY).
      */
     for ( expected = 1; expected < DOMID_FIRST_RESERVED; expected++ )
     {
-        allocated = domid_alloc(DOMID_INVALID);
+        allocated = domid_alloc(DOMID_ANY);
         verify(allocated == expected,
                "TEST 3: expected %u allocated %u\n", expected, allocated);
     }
     for ( expected = 1; expected < DOMID_FIRST_RESERVED; expected++ )
     {
-        allocated = domid_alloc(DOMID_INVALID);
+        allocated = domid_alloc(DOMID_ANY);
         verify(allocated == DOMID_INVALID,
                "TEST 4: expected %u allocated %u\n", DOMID_INVALID, allocated);
     }
@@ -64,7 +64,7 @@ int main(int argc, char **argv)
         domid_free(expected);
     for ( expected = 1; expected < DOMID_FIRST_RESERVED / 2; expected++ )
     {
-        allocated = domid_alloc(DOMID_INVALID);
+        allocated = domid_alloc(DOMID_ANY);
         verify(allocated == expected,
                "TEST 5: expected %u allocated %u\n", expected, allocated);
     }
@@ -72,7 +72,7 @@ int main(int argc, char **argv)
     /* Re-allocate last ID from [1..DOMID_FIRST_RESERVED - 1]. */
     expected = DOMID_FIRST_RESERVED - 1;
     domid_free(DOMID_FIRST_RESERVED - 1);
-    allocated = domid_alloc(DOMID_INVALID);
+    allocated = domid_alloc(DOMID_ANY);
     verify(allocated == expected,
            "TEST 6: expected %u allocated %u\n", expected, allocated);
 
diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
index 840d14419da2..3c18dae5e625 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -852,7 +852,7 @@ void __init create_domUs(void)
         if ( (max_init_domid + 1) >= DOMID_FIRST_RESERVED )
             panic("No more domain IDs available\n");
 
-        domid = domid_alloc(DOMID_INVALID);
+        domid = domid_alloc(DOMID_ANY);
         if ( domid == DOMID_INVALID )
             panic("Error allocating ID for domain %s\n", dt_node_name(node));
 
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 93738931c575..b969f5ada6cc 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -409,8 +409,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
 
     case XEN_DOMCTL_createdomain:
     {
-        /* NB: ID#0 is reserved, find the first suitable ID instead. */
-        domid_t domid = domid_alloc(op->domain ?: DOMID_INVALID);
+        domid_t domid = domid_alloc(op->domain);
 
         if ( domid == DOMID_INVALID )
         {
diff --git a/xen/common/domid.c b/xen/common/domid.c
index 2387ddb08300..b0258e477c1a 100644
--- a/xen/common/domid.c
+++ b/xen/common/domid.c
@@ -19,7 +19,7 @@ static DECLARE_BITMAP(domid_bitmap, DOMID_FIRST_RESERVED);
  * @param domid Domain ID hint:
  * - If an explicit domain ID is provided, verify its availability and use it
  *   if ID is not used;
- * - If DOMID_INVALID is provided, search [1..DOMID_FIRST_RESERVED-1] range,
+ * - If DOMID_ANY is provided, search [1..DOMID_FIRST_RESERVED-1] range,
  *   starting from the last used ID. Implementation guarantees that two
  *   consecutive calls will never return the same ID. ID#0 is reserved for
  *   the first boot domain (currently, dom0) and excluded from the allocation
@@ -31,6 +31,9 @@ domid_t domid_alloc(domid_t domid)
 {
     static domid_t domid_last;
 
+    if ( domid >= DOMID_FIRST_RESERVED && domid != DOMID_ANY )
+        return DOMID_INVALID;
+
     spin_lock(&domid_lock);
 
     /* Exact match. */
diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
index b12fd10e6315..f35a6f21f063 100644
--- a/xen/include/public/xen.h
+++ b/xen/include/public/xen.h
@@ -608,6 +608,13 @@ DEFINE_XEN_GUEST_HANDLE(mmuext_op_t);
 /* DOMID_INVALID is used to identify pages with unknown owner. */
 #define DOMID_INVALID        xen_mk_uint(0x7FF4)
 
+/*
+ * DOMID_ANY is used to signal no specific domain ID requested.
+ * Handler should pick a valid ID, or handle it as a broadcast value
+ * depending on the context.
+ */
+#define DOMID_ANY            xen_mk_uint(0x7FF5)
+
 /* Idle domain. */
 #define DOMID_IDLE           xen_mk_uint(0x7FFF)
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Sat Mar 07 10:07:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 07 Mar 2026 10:07:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1248498.1546493 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyoYa-000274-EX; Sat, 07 Mar 2026 10:06:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1248498.1546493; Sat, 07 Mar 2026 10:06:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyoYa-00026w-B0; Sat, 07 Mar 2026 10:06:48 +0000
Received: by outflank-mailman (input) for mailman id 1248498;
 Sat, 07 Mar 2026 10:06: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=2JRE=BH=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vyoYY-00026q-67
 for xen-devel@lists.xenproject.org; Sat, 07 Mar 2026 10:06:46 +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 57c5fc18-1a0d-11f1-9ccf-f158ae23cfc8;
 Sat, 07 Mar 2026 11:06:43 +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 05A9D5BD36;
 Sat,  7 Mar 2026 10:06:43 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id D0DE53EA61;
 Sat,  7 Mar 2026 10:06:42 +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 UHFnMbL4q2niYAAAD6G6ig
 (envelope-from <jgross@suse.com>); Sat, 07 Mar 2026 10:06: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: 57c5fc18-1a0d-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1772878003; 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=ktH4T/n4AWGaIdpsZn8pz8mhhflSm2yIca4kR/9/PoA=;
	b=rN2jx0JKkPIfpT0Rjv6hg1ZY0HATxO/l4WAz0hnUtdXWoXlRu/vH7rIFm/OMLeFw6lJrw2
	zOFTuu/nyrRS5LhwViM8lRf2aiRdr0G6lsjoidGdjOrWd5rXjYEV79cDCwn6eec+wDSgXl
	PcPtj3uu4Wr0JjiWVbd6DeBVtr36LG4=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1772878003; 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=ktH4T/n4AWGaIdpsZn8pz8mhhflSm2yIca4kR/9/PoA=;
	b=rN2jx0JKkPIfpT0Rjv6hg1ZY0HATxO/l4WAz0hnUtdXWoXlRu/vH7rIFm/OMLeFw6lJrw2
	zOFTuu/nyrRS5LhwViM8lRf2aiRdr0G6lsjoidGdjOrWd5rXjYEV79cDCwn6eec+wDSgXl
	PcPtj3uu4Wr0JjiWVbd6DeBVtr36LG4=
From: Juergen Gross <jgross@suse.com>
To: torvalds@linux-foundation.org
Cc: linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	sstabellini@kernel.org
Subject: [GIT PULL] xen: branch for v7.0-rc3
Date: Sat,  7 Mar 2026 11:06:42 +0100
Message-ID: <20260307100642.2365128-1-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-2.80 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MIME_TRACE(0.00)[0:+];
	ARC_NA(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	TO_DN_NONE(0.00)[];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -2.80
X-Spam-Level: 

Linus,

Please git pull the following tag:

 git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-7.0-rc3-tag

xen: branch for v7.0-rc3

It contains the following changes:

- a cleanup of arch/x86/kernel/head_64.S removing the pre-built page
  tables for Xen guests

- a small comment update

- another cleanup for Xen PVH guests mode

- a 2-patch series fixing an issue with Xen PV-devices backed by driver
  domains


Thanks.

Juergen

 arch/x86/include/asm/pgtable_64.h          |  2 --
 arch/x86/kernel/head_64.S                  | 28 --------------------
 arch/x86/platform/pvh/enlighten.c          |  7 +----
 arch/x86/xen/enlighten_pv.c                |  2 +-
 arch/x86/xen/mmu_pv.c                      |  9 +++++++
 drivers/net/xen-netfront.c                 | 34 ++++++++++++------------
 drivers/pci/xen-pcifront.c                 |  8 +++---
 drivers/scsi/xen-scsifront.c               |  2 +-
 drivers/xen/xen-acpi-processor.c           |  7 ++---
 drivers/xen/xen-pciback/xenbus.c           | 10 +++----
 drivers/xen/xenbus/xenbus_client.c         | 17 +++++++++---
 drivers/xen/xenbus/xenbus_probe.c          | 42 +++++++++++++++++++++++++++---
 drivers/xen/xenbus/xenbus_probe_frontend.c |  2 +-
 include/xen/xenbus.h                       |  4 ++-
 14 files changed, 97 insertions(+), 77 deletions(-)

David Thomson (1):
      xen/acpi-processor: fix _CST detection using undersized evaluation buffer

Hou Wenlong (2):
      x86/xen: Build identity mapping page tables dynamically for XENPV
      x86/PVH: Use boot params to pass RSDP address in start_info page

Juergen Gross (2):
      xenbus: add xenbus_device parameter to xenbus_read_driver_state()
      xen/xenbus: better handle backend crash

kexinsun (1):
      x86/xen: update outdated comment


From xen-devel-bounces@lists.xenproject.org Sat Mar 07 20:01:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 07 Mar 2026 20:01:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1248727.1546502 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vyxpO-0002aD-Ls; Sat, 07 Mar 2026 20:00:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1248727.1546502; Sat, 07 Mar 2026 20: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 1vyxpO-0002a5-H8; Sat, 07 Mar 2026 20:00:46 +0000
Received: by outflank-mailman (input) for mailman id 1248727;
 Sat, 07 Mar 2026 20: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=tvel=BH=kernel.org=pr-tracker-bot@srs-se1.protection.inumbo.net>)
 id 1vyxpN-0002Zz-0R
 for xen-devel@lists.xenproject.org; Sat, 07 Mar 2026 20:00:45 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 51e9a76d-1a60-11f1-9ccf-f158ae23cfc8;
 Sat, 07 Mar 2026 21:00:42 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 1D651600CB;
 Sat,  7 Mar 2026 20:00:41 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7E848C19422;
 Sat,  7 Mar 2026 20:00: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
 429923808200; Sat,  7 Mar 2026 20:00:40 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 51e9a76d-1a60-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1772913640;
	bh=3/whIQliEvBwqRoCU0LWrFeX/CEFqPM6G0VHiZFN/JM=;
	h=Subject:From:In-Reply-To:References:Date:To:Cc:From;
	b=UERpAbPFGb+G9G3LcClN/bxhKdbnqdAHFgh4gHufD7jDsEorUV8iuVdnKqPpDzEej
	 Alw8qlC24zJ4Da75Y4bN2r005NE0jHWSu+dkGGI5NaSO8C94pxtMMBkKiusE4kyUoL
	 MUX/ukENeSMNjp7kmVwY+hYBVn1iDx3zAjkOvttFAWJFf6qjLjwhoguG7kjPfxJ2Ku
	 u5838wDs7XsH6+g2RJPzvAyvwChe42d4rdmDeZ5VUfQnXoBkxWoBqBGsV//4c3yDFq
	 HARPWovwAmeR86akLIdPsuYuxjkgmcIaSqKJGPg4FzIq4h2QhF2pAa3ylHrZdpiOJL
	 5yt8sQzMO01vg==
Subject: Re: [GIT PULL] xen: branch for v7.0-rc3
From: pr-tracker-bot@kernel.org
In-Reply-To: <20260307100642.2365128-1-jgross@suse.com>
References: <20260307100642.2365128-1-jgross@suse.com>
X-PR-Tracked-List-Id: <linux-kernel.vger.kernel.org>
X-PR-Tracked-Message-Id: <20260307100642.2365128-1-jgross@suse.com>
X-PR-Tracked-Remote: git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-7.0-rc3-tag
X-PR-Tracked-Commit-Id: e2dcf9065536ab4a1b00828ff0d19f7d282dfecc
X-PR-Merge-Tree: torvalds/linux.git
X-PR-Merge-Refname: refs/heads/master
X-PR-Merge-Commit-Id: 0f912c8917e810a4aa81d122a8e7d0a918505ab9
Message-Id: <177291363909.308260.5169901742133218857.pr-tracker-bot@kernel.org>
Date: Sat, 07 Mar 2026 20:00:39 +0000
To: Juergen Gross <jgross@suse.com>
Cc: torvalds@linux-foundation.org, linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org, sstabellini@kernel.org

The pull request you sent on Sat,  7 Mar 2026 11:06:42 +0100:

> git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-7.0-rc3-tag

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/0f912c8917e810a4aa81d122a8e7d0a918505ab9

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html


From xen-devel-bounces@lists.xenproject.org Sun Mar 08 18:30:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 08 Mar 2026 18:30:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1248954.1546511 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzItL-0002o7-Ie; Sun, 08 Mar 2026 18:30:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1248954.1546511; Sun, 08 Mar 2026 18:30: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 1vzItL-0002ny-Dp; Sun, 08 Mar 2026 18:30:15 +0000
Received: by outflank-mailman (input) for mailman id 1248954;
 Sun, 08 Mar 2026 18:30:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PdMp=BI=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vzItJ-0002ns-TW
 for xen-devel@lists.xenproject.org; Sun, 08 Mar 2026 18:30:14 +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 d5ec386c-1b1c-11f1-9ccf-f158ae23cfc8;
 Sun, 08 Mar 2026 19:30:10 +0100 (CET)
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 31C44140019B;
 Sun,  8 Mar 2026 14:30:08 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-01.internal (MEProxy); Sun, 08 Mar 2026 14:30:08 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun,
 8 Mar 2026 14:30:06 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d5ec386c-1b1c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1772994608;
	 x=1773081008; bh=xdv9Dh7Jkliv5J+kXtIXlzuyxu1hU7sy77WHsvucif4=; b=
	UnWtiZeoD9cDAjt8LtKOXJOwW8zjr/bogpUQLNel/XlB+r6Cw2dL7uZ6zEVa07t4
	OEtiGiEqO9xbD5BfoWnWZkhK4HeX+hIB6lKB7XKPpeBhTOupTK/Pkm5CNzxiBhoy
	vKLvgarnQThdminbLHU4M9PKfOP07pZihrckqM003pxL7rlXvkbteA3EmubPD423
	RQk91KUxd9hCaOoucCKg+rLEPkj53hPei9pKs2j2N8g6OB/pxIlxaU/vW9p1mCdB
	1Po3ft4HKJ97vF4ywvBwHXmkpinOFFPSSF/jTUkhPW+YMsoNTJZLGhzUzlmHQShk
	sJN4a1ScJkQGumtiq04E9g==
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=
	1772994608; x=1773081008; bh=xdv9Dh7Jkliv5J+kXtIXlzuyxu1hU7sy77W
	Hsvucif4=; b=u+tAy0AVUmX4aNRIOP5IENeOoGZh8GG23g5QR+OjLOHMYSI3pF8
	imWOpt65G6yh4Yot8V2eCtsGVwwXiiZx7aDrxX1xE6ntZxHRfz7flwPJKEQyMR6k
	78ao3M8Jcp7uPyJhgl6gjxp9CR0bSdwjBMwDcZow4SuoRfTffiUwmSG0dWM5AuGM
	vH3YMCHDdp4u0Thg6q1jk5dG4MSRZF4Ycdx2YgOGEhBdt6qE/+R6yfdanVOJhP5c
	wPJ+DYZFbSyx5B/hkI2S+FlKzBjlvfkeQrUlFbx40DPGh+hQ3Zp1qv1gV1coCf22
	Z6QZDiEqqwjV/e9P3EaMJK+VQ3NdG+q2uWw==
X-ME-Sender: <xms:L8CtaYrbY-eZ6TcPT6wSmUYX8GxRj5lYDAEnlguiq-bTsIRYKIiP_w>
    <xme:L8CtaQ56yEq3QsIZLG9stqyWOE6Q1vvR-AdJwI8A_ZADYo9eYkdr8U0vSOmSVl1j3
    DlI1YrXIHtiA-FjTEHifpeAKfrzPwHrV20uocCsrMzPW9SoE3k>
X-ME-Received: <xmr:L8CtafdnMIkuQTX-AvQrfSBHEch_zYnBU1aX6L1PP00zPNT8KYm_hho7VfwC11nYwopxo7T_i34yYingklTHLS6CxSFjZT8ck0E>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvjeehleduucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhephffffffg
    fedvheejvddtgefhgeffgefhjeevjeekiedvfedtgeelleduueeugedunecuffhomhgrih
    hnpegvfhhirdhithenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeejpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehs
    ohhumhihrghjhihothhishgrrhhkrghrvdefsehgmhgrihhlrdgtohhmpdhrtghpthhtoh
    epgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghp
    thhtohepshgrrhhkrghrshhouhhmhigrjhihohhtihdvfeesghhmrghilhdrtghomhdprh
    gtphhtthhopehjsggvuhhlihgthhesshhushgvrdgtohhmpdhrtghpthhtohepughpshhm
    ihhthhesrghpvghrthhushhsohhluhhtihhonhhsrdgtohhmpdhrtghpthhtoheprhhogh
    gvrhdrphgruhestghithhrihigrdgtohhmpdhrtghpthhtoheprghnughrvgifrdgtohho
    phgvrhefsegtihhtrhhigidrtghomh
X-ME-Proxy: <xmx:L8CtaV6cZ38cjLD_Y6RiQOvSXHfRl3mwxD8PNpPsqcrCLnmCyQafKg>
    <xmx:L8CtaWvc9kfsj-IhgUH0E7XcmLMHfWxWxPd5IKudGEMfy9N9EiKX7Q>
    <xmx:L8CtaVhbFb1DF7hQIbwXMGvUTTpzjOdKAipwJRDn-uP-CKgDnVAFCw>
    <xmx:L8CtaRpQI6tbVxyTlj01N5ehYvR0TfVrnPRT1gxu5kFGIXK-mSYsVw>
    <xmx:MMCtaaHBdsD-sqte_XJjCyoYE8iBDxXho-VGxtugqUr0JDr8dwX7HtnC>
Feedback-ID: i1568416f:Fastmail
Date: Sun, 8 Mar 2026 19:30:01 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com,
	Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 1/3] x86/efi: Add BGRT image preservation during boot
Message-ID: <aa3AKoCFFhwD4-LX@mail-itl>
References: <20260305191810.31033-1-soumyajyotisarkar23@gmail.com>
 <20260305191810.31033-2-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="hk58erJFVw0zWvNQ"
Content-Disposition: inline
In-Reply-To: <20260305191810.31033-2-soumyajyotisarkar23@gmail.com>


--hk58erJFVw0zWvNQ
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sun, 8 Mar 2026 19:30:01 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com,
	Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 1/3] x86/efi: Add BGRT image preservation during boot

On Fri, Mar 06, 2026 at 12:48:08AM +0530, Soumyajyotii Ssarkar wrote:
> The ACPI BGRT (Boot Graphics Resource Table) contains a pointer to a
> boot logo image stored in BootServicesData memory. When Xen reclaims
> this memory during boot, the image is lost and the BGRT table becomes
> invalid, causing Linux dom0 to report ACPI checksum errors.
>=20
> Add preservation logic similar to ESRT table handling:
> - Locate BGRT table via XSDT during EFI boot services phase
> - Validate BMP image signature and size (max 16 MB)
> - Copy image to EfiACPIReclaimMemory (safe from reclamation)
> - Update BGRT table with new image address
> - Recalculate ACPI table checksum
>=20
> The preservation runs automatically during efi_exit_boot() before
> Boot Services are terminated. This ensures the image remains
> accessible to dom0.
>=20
> Open coded ACPI parsing is used because Xen's ACPI subsystem is not
> available during the EFI boot phase. The RSDP is obtained from the
> EFI System Table, and the XSDT is walked manually to find BGRT.

Thanks, this overall looks good, and it works :) See few remarks below.

> Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
> ---
>  xen/arch/x86/efi/efi-boot.h |   2 +
>  xen/common/efi/boot.c       | 187 ++++++++++++++++++++++++++++++++++++
>  2 files changed, 189 insertions(+)
>=20
> diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
> index 42a2c46b5e..27792a56ff 100644
> --- a/xen/arch/x86/efi/efi-boot.h
> +++ b/xen/arch/x86/efi/efi-boot.h
> @@ -910,6 +910,8 @@ void __init efi_multiboot2(EFI_HANDLE ImageHandle,
>=20
>      efi_relocate_esrt(SystemTable);
>=20
> +    efi_preserve_bgrt_img(SystemTable);
> +

This covers only multiboot path, but not xen.efi. It needs adding also
in efi_start().

>      efi_exit_boot(ImageHandle, SystemTable);
>  }
>=20
> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> index 967094994d..1e3489e902 100644
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -7,6 +7,7 @@
>  #include <xen/ctype.h>
>  #include <xen/dmi.h>
>  #include <xen/domain_page.h>
> +#include <xen/errno.h>
>  #include <xen/init.h>
>  #include <xen/keyhandler.h>
>  #include <xen/lib.h>
> @@ -173,6 +174,14 @@ static struct file __initdata ramdisk;
>  static struct file __initdata xsm;
>  static const CHAR16 __initconst newline[] =3D L"\r\n";
>=20
> +static __initdata struct {
> +    bool preserved;
> +    uint64_t old_addr;
> +    uint64_t new_addr;
> +    uint32_t size;
> +    const char *failure_reason;
> +} bgrt_debug_info;
> +
>  static void __init PrintStr(const CHAR16 *s)
>  {
>      StdOut->OutputString(StdOut, (CHAR16 *)s );
> @@ -747,6 +756,171 @@ static void __init efi_relocate_esrt(EFI_SYSTEM_TAB=
LE *SystemTable)
>      efi_bs->FreePool(memory_map);
>  }
>=20
> +struct bmp_header {
> +    uint16_t signature;
> +    uint32_t file_size;
> +    uint16_t reserved_1;
> +    uint16_t reserved_2;
> +    uint32_t data_offset;
> +} __attribute__((packed));
> +
> +/*
> + * ACPI Structures - defined locally,
> + * since we cannot include acpi headers
> + * in EFI Context.
> + */
> +
> +struct acpi_rsdp {
> +    char signature[8];
> +    uint8_t checksum;
> +    char oem_id[6];
> +    uint8_t revision;
> +    uint32_t rsdt_physical_address;
> +    uint32_t length;
> +    uint64_t xsdt_physical_address;
> +    uint8_t extended_checksum;
> +    uint8_t reserved[3];
> +} __attribute__((packed));
> +
> +struct acpi_table_header {
> +    char signature[4];
> +    uint32_t length;
> +    uint8_t revision;
> +    uint8_t checksum;
> +    char oem_id[6];
> +    char oem_table_id[8];
> +    uint32_t oem_revision;
> +    uint32_t asl_compiler_id;
> +    uint32_t asl_compiler_revision;
> +} __attribute__((packed));
> +
> +struct acpi_xsdt {
> +    struct acpi_table_header header;
> +    uint64_t table_offset_entry[1]; /* Variable array length */

uint64_t table_offset_entry[];

BTW, do we have some canonical place with list of files imported (and
kept in sync) with other projects? xen/include/acpi/actbl.h doesn't
exactly follow Xen coding style, but it's unclear to me if it needs to
stay this way.

> +} __attribute__((packed));
> +
> +struct acpi_bgrt {
> +    struct acpi_table_header header;
> +    uint16_t version;
> +    uint8_t status;
> +    uint8_t image_type;
> +    uint64_t image_address;
> +    uint32_t image_offset_x;
> +    uint32_t image_offset_y;
> +} __attribute__((packed));
> +
> +static struct acpi_bgrt* __init find_bgrt_table(EFI_SYSTEM_TABLE *System=
Table)
> +{
> +    EFI_GUID acpi2_guid =3D ACPI_20_TABLE_GUID;
> +    struct acpi_rsdp *rsdp =3D NULL;
> +    struct acpi_xsdt *xsdt;
> +    struct acpi_bgrt *bgrt;
> +    uint32_t entry_count, actual_size;
> +    unsigned int i;
> +
> +    for ( i =3D 0; i < SystemTable->NumberOfTableEntries; i++ )
> +    {
> +        if ( match_guid(&acpi2_guid, &SystemTable->ConfigurationTable[i]=
=2EVendorGuid) )
> +        {
> +            rsdp =3D SystemTable->ConfigurationTable[i].VendorTable;
> +            break;
> +        }
> +    }
> +
> +    if ( !rsdp || !rsdp->xsdt_physical_address )
> +        return NULL;
> +
> +    xsdt =3D (struct acpi_xsdt *)rsdp->xsdt_physical_address;
> +    if ( !xsdt )
> +        return NULL;
> +
> +    actual_size =3D (xsdt->header.length - sizeof(struct acpi_table_head=
er));
> +    entry_count =3D (actual_size / sizeof(uint64_t));
> +
> +    for ( i =3D 0; i < entry_count; i++ )
> +    {
> +        struct acpi_table_header *header =3D (struct acpi_table_header *=
)xsdt->table_offset_entry[i];
> +
> +        if (   header->signature[0] =3D=3D 'B'
> +            && header->signature[1] =3D=3D 'G'
> +            && header->signature[2] =3D=3D 'R'
> +            && header->signature[3] =3D=3D 'T' )

strncmp?

> +        {
> +            bgrt =3D (struct acpi_bgrt *)header;

You can just return it here, avoiding the extra variable.

> +            return bgrt;
> +        }
> +    }
> +    return NULL;
> +}
> +
> +#define MAX_IMAGE_SIZE  (16 * 1024 * 1024)    /* Sanity check: reject if=
 bigger */
> +
> +static void __init efi_preserve_bgrt_img(EFI_SYSTEM_TABLE *SystemTable)
> +{
> +    struct acpi_bgrt *bgrt;
> +    struct bmp_header *bmp;
> +    void *old_image, *new_image;
> +    uint32_t image_size;
> +    EFI_STATUS status;
> +    uint8_t checksum;
> +    unsigned int i;
> +
> +    bgrt_debug_info.preserved =3D false;
> +    bgrt_debug_info.failure_reason =3D NULL;
> +
> +    bgrt =3D find_bgrt_table(SystemTable);
> +    if ( !bgrt )
> +    {
> +        bgrt_debug_info.failure_reason =3D "BGRT table not found in XSDT=
";
> +        return;
> +    }
> +
> +    if ( !bgrt->image_address )
> +    {
> +        bgrt_debug_info.failure_reason =3D "BGRT image_address is NULL";
> +        return;
> +    }
> +
> +    old_image =3D (void *)bgrt->image_address;
> +    bmp =3D (struct bmp_header *)old_image;
> +
> +    if ( bmp->signature !=3D 0x4D42 )
> +    {
> +        bgrt_debug_info.failure_reason =3D "Invalid BMP signature";
> +        return;
> +    }
> +
> +    image_size =3D bmp->file_size;
> +    if ( !image_size || image_size > MAX_IMAGE_SIZE )
> +    {
> +        bgrt_debug_info.failure_reason =3D "Invalid image size";
> +        return;
> +    }
> +
> +    status =3D efi_bs->AllocatePool(EfiACPIReclaimMemory, image_size, &n=
ew_image);
> +    if ( status !=3D EFI_SUCCESS || !new_image )
> +    {
> +        bgrt_debug_info.failure_reason =3D "Memory allocation failed";
> +        return;
> +    }
> +
> +    memcpy(new_image, old_image, image_size);
> +
> +    bgrt->image_address =3D (uint64_t)new_image;
> +    bgrt->status |=3D 0x01;

Why forcing the "displayed" bit here?

> +    bgrt->header.checksum =3D 0;
> +    checksum =3D 0;
> +    for ( i =3D 0; i < bgrt->header.length; i++ )
> +        checksum +=3D ((uint8_t *)bgrt)[i];
> +    bgrt->header.checksum =3D (uint8_t)(0 - checksum);
> +
> +    bgrt_debug_info.preserved =3D true;
> +    bgrt_debug_info.old_addr =3D (uint64_t)old_image;
> +    bgrt_debug_info.new_addr =3D (uint64_t)new_image;
> +    bgrt_debug_info.size =3D image_size;
> +}
> +

This is quite a bit of code, maybe move to a separate file? But I'd like
to hear what others think.

>  /*
>   * Include architecture specific implementation here, which references t=
he
>   * static globals defined above.
> @@ -1794,6 +1968,19 @@ void __init efi_init_memory(void)
>      if ( !efi_enabled(EFI_BOOT) )
>          return;
>=20
> +    if ( bgrt_debug_info.preserved )
> +    {
> +        printk(XENLOG_INFO "EFI: BGRT image preserved: %u KB\n",
> +               bgrt_debug_info.size / 1024);
> +        printk(XENLOG_INFO "EFI: BGRT relocated from %#" PRIx64 " to %#"=
 PRIx64 "\n",
> +               bgrt_debug_info.old_addr, bgrt_debug_info.new_addr);
> +    }
> +    else if ( bgrt_debug_info.failure_reason )
> +    {
> +        printk(XENLOG_WARNING "EFI: BGRT preservation failed: %s\n",
> +               bgrt_debug_info.failure_reason);
> +    }
> +

This is a bit unfortunate place to print this info, because it happens
_after_ possibly printing the "invalidating image" message.
Maybe you can wrap it in another function and call it next to the
invalidating code?

>      printk(XENLOG_DEBUG "EFI memory map:%s\n",
>             map_bs ? " (mapping BootServices)" : "");
>      for ( i =3D 0; i < efi_memmap_size; i +=3D efi_mdesc_size )
> --
> 2.53.0
>=20

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmtwCoACgkQ24/THMrX
1ywYQwgAjlzyOTusTIwqQ/+NTXJJ6T4UiAGHGlGwG3QcqnK030p1g2t/4DWNjCsF
546AtxPHLNdsV8aAW+ZXJy6ZXwET6OtOqoNUmnw3IWJt5P6Nxgy6Paib5fl2XvVw
x62GlKk3gD62C/gV6zS7Op45gWda++9fLmPNcVh6bY0i3DKKdC87l+QWvDaXXawH
jbhYmO2xFHQZDQwqQwf6R6fRvAFPxudae+8w7usdLLMdoLThxbzpGoWgPd52Nimo
x0K4T6ba5wAnxVAidQHSVHDxDH+sy6UhvFMPk/q/VHTL1PyVCGUMLyZHADNfWq9F
PDAqkl0yOp/AvIIlO8mbJKxJv8uC9Q==
=oIJv
-----END PGP SIGNATURE-----

--hk58erJFVw0zWvNQ--


From xen-devel-bounces@lists.xenproject.org Sun Mar 08 18:30:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 08 Mar 2026 18:30:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1248956.1546520 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzIte-00034e-O3; Sun, 08 Mar 2026 18:30:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1248956.1546520; Sun, 08 Mar 2026 18:30: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 1vzIte-00034X-LG; Sun, 08 Mar 2026 18:30:34 +0000
Received: by outflank-mailman (input) for mailman id 1248956;
 Sun, 08 Mar 2026 18: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=PdMp=BI=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vzItd-0002ns-DX
 for xen-devel@lists.xenproject.org; Sun, 08 Mar 2026 18:30:33 +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 e34a7839-1b1c-11f1-9ccf-f158ae23cfc8;
 Sun, 08 Mar 2026 19:30:31 +0100 (CET)
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 04AC3140019B;
 Sun,  8 Mar 2026 14:30:31 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Sun, 08 Mar 2026 14:30:31 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun,
 8 Mar 2026 14:30:29 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e34a7839-1b1c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1772994631;
	 x=1773081031; bh=Ql0SMQHbTcL8lEgyG/ZwsaaPZIthzAzl0CqRJ9zqEow=; b=
	Urpj1lGHG7UW+0e6EMwmjQEOLqu5uzIa1Wi6ba8qweFnjBm4tZrxHiAy9y8BJstr
	JVfZpMeHeJMvbO74WK4SLk3BuaEexIIEZwX+//hEMxTkaW1bV9CMnk8NrxJiJoeX
	/rFmFxslnbLchLJLahBmc7SwppILHzTbGxbtnk3+EmCds5Bp9wyDQsltvxRXR5fl
	6il+0VPdvH2nLPlMYJkR0shn80G9KPQoHJ/3wx80TBFqwKMt3ciR7m4aDE8vAWV3
	nUjRNorJWHMVCyvApn0IduF6iwHfE+IX2PJa3WUZ0BSMOkRcFZrqHxFlbRqLPGXj
	WAOIrCaUd+RgSMip2Ox6OA==
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=
	1772994631; x=1773081031; bh=Ql0SMQHbTcL8lEgyG/ZwsaaPZIthzAzl0Cq
	RJ9zqEow=; b=rN/wb7gOwxDbpBNNImms/fEhURDtqrgNGwKbeCM5B4HLL5oJaoP
	A7squK8a+Zcp2QKzzzRmW6BM4qgEjIawZ0F4pUiW8zql8GKj3kLxtrQlJWYqQnZ0
	DauWG4wGShofMs19gKIjJvEcUJBFuwkkV98TE5fLtyoMLkgR3cFjr7ahMNvTL95C
	t0tQVbZyrZHn9c3vIziDCzw77bRa6NUhsO7OUlZA9ecUNsBJ8u9ZP6W/mVZKrEPV
	08H5jdTPpJUIS3XHttBLipK45eBtmEp6+VXJOtClMot62GpCUgr8d6NASd7GIlUd
	xhNt+n8LHvMSYCM6BaHGMM4kPmfI7JbwypA==
X-ME-Sender: <xms:RsCtadDEXfIybdA1gm0USIfPafEylq8OHbTHNUG_s49wMXXD794rig>
    <xme:RsCtadywTT9uT9q1R329fp4j8YAi1Zp5MfHBLAKOT7Mmqg-yCADYhPhBXuTa2xyjZ
    SlAa8AeDARfjN7VI5wVeF4FHk6yUhra_OzaA-Ly6pIhILKMi_U>
X-ME-Received: <xmr:RsCtaa3RDX8dsdtM5Rkk8mVy_cQKmROQJ5L5x9xcyJUiZH6CwPrNP-x-OIHM-omvwlfkIRuU0aH7areqPuVkfmtb-fYy4IcxYXM>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvjeehleduucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepjedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepshhouhhmhigrjhihohhtihhsrghrkhgr
    rhdvfeesghhmrghilhdrtghomhdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsth
    hsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehsrghrkhgrrhhsohhumhih
    rghjhihothhivdefsehgmhgrihhlrdgtohhmpdhrtghpthhtohepjhgsvghulhhitghhse
    hsuhhsvgdrtghomhdprhgtphhtthhopeguphhsmhhithhhsegrphgvrhhtuhhsshholhhu
    thhiohhnshdrtghomhdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtg
    homhdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhm
X-ME-Proxy: <xmx:RsCtadwib2OHeyBSwin7UBmgTCCO5PHRbdA-Bu5Q2tsbx54IYNN5aA>
    <xmx:RsCtaRFUKGITvkYnJG-f9Uf74zilk6103qIBKsdNaWf2cF-9FIy-ZA>
    <xmx:RsCtaQZxrJZN9GFzpRJCsUTwVxiF2ZVA9wXoJVRa5lrdmBQLoACYXA>
    <xmx:RsCtaTDfWe7Vdnsu1l0ULechysZpXuSvN7AZJpOUH24wdAhFMJgl_A>
    <xmx:R8Ctaa9gA-0x7hWDyrtSb7ZTM4NznMlho1iXxZavViQ_pAfZTnPeZhDW>
Feedback-ID: i1568416f:Fastmail
Date: Sun, 8 Mar 2026 19:30:27 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com,
	Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 2/3] x86/acpi: Remove BGRT invalidation code
Message-ID: <aa3AQ_LBdKLIBWpe@mail-itl>
References: <20260305191810.31033-1-soumyajyotisarkar23@gmail.com>
 <20260305191810.31033-3-soumyajyotisarkar23@gmail.com>
 <aaoznRwdCKzRvKlD@mail-itl>
 <CAGkZZ+tjOGskPuSipkkOBjussxy5h_fDhNOMt-6Q9cqWJQi4kw@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="VoPcmMM3v+387hzR"
Content-Disposition: inline
In-Reply-To: <CAGkZZ+tjOGskPuSipkkOBjussxy5h_fDhNOMt-6Q9cqWJQi4kw@mail.gmail.com>


--VoPcmMM3v+387hzR
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sun, 8 Mar 2026 19:30:27 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com,
	Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 2/3] x86/acpi: Remove BGRT invalidation code

On Fri, Mar 06, 2026 at 08:59:07AM +0530, Soumyajyotii Ssarkar wrote:
> On Fri, Mar 6, 2026 at 7:23=E2=80=AFAM Marek Marczykowski-G=C3=B3recki <
> marmarek@invisiblethingslab.com> wrote:
>=20
> > On Fri, Mar 06, 2026 at 12:48:09AM +0530, Soumyajyotii Ssarkar wrote:
> > > Now that BGRT images are preserved during EFI boot (via
> > > EfiACPIReclaimMemory allocation), the invalidation code in
> > > acpi_parse_bgrt() is no longer needed. The BGRT table remains
> > > valid throughout boot.
> > >
> > > This removes the code that was marking BGRT invalid when the
> > > image memory was detected as unavailable, which was causing
> > > ACPI warnings in Linux dom0.
> >
> > When preserving failed for any reason, or when it was disabled (the next
> > patch), the entry still should be invalidated. In fact, the check here
> > for RAM_TYPE_CONVENTIONAL may already disable invalidation when it got
> > preserved?
> >
> > --
> > Best Regards,
> > Marek Marczykowski-G=C3=B3recki
> > Invisible Things Lab
> >
>=20
>=20
> I could move forward with dropping the [PATCH 2/3]. And adapt the other
> patches accordingly.
> This would serve as a safety net in case the preservation fails for any
> reason. Would that be a valid approach?

Yes, exactly.

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

--VoPcmMM3v+387hzR
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmtwEMACgkQ24/THMrX
1yy8awf/XZnVSr1EAEjYnyG1v80/QTOhm0gyM9rIXthCYq/0DaX7a6+U0RaT40Iu
NT7YW406bhdVHpBj8FAr8/ZpW//e3Gm3u+GqtJOZS8tk6hfpXE8HkXpCEdNdAyYD
RPfPReAnXCdYWRACAo2mgKL0E1nHe4yF5gKzN3xfsdqU0iHlqUx9TNI6jfKxthqi
KAk3CHafxluqaUdEXvrve8DcznxHTvv53enh9wbuLfU6Q1yFHcy38nicyW/pRl3p
n+cJvtQl2Lb8agx+lVCHZcuFjMp0IXKHKByfM3qdzaQ0ZSRz7aRIDdMIhfCQcDV7
S784pDA9ztdOZVJa4kuscK0+/q9Vog==
=bYJ+
-----END PGP SIGNATURE-----

--VoPcmMM3v+387hzR--


From xen-devel-bounces@lists.xenproject.org Sun Mar 08 18:34:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 08 Mar 2026 18:34:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1248970.1546528 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzIxm-0003oi-5i; Sun, 08 Mar 2026 18:34:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1248970.1546528; Sun, 08 Mar 2026 18: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 1vzIxm-0003ob-2r; Sun, 08 Mar 2026 18:34:50 +0000
Received: by outflank-mailman (input) for mailman id 1248970;
 Sun, 08 Mar 2026 18:34:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PdMp=BI=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vzIxk-0003oV-T4
 for xen-devel@lists.xenproject.org; Sun, 08 Mar 2026 18:34:48 +0000
Received: from fhigh-a4-smtp.messagingengine.com
 (fhigh-a4-smtp.messagingengine.com [103.168.172.155])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7b02c3aa-1b1d-11f1-9ccf-f158ae23cfc8;
 Sun, 08 Mar 2026 19:34:46 +0100 (CET)
Received: from phl-compute-11.internal (phl-compute-11.internal [10.202.2.51])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 885951400127;
 Sun,  8 Mar 2026 14:34:45 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-11.internal (MEProxy); Sun, 08 Mar 2026 14:34:45 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun,
 8 Mar 2026 14:34:44 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b02c3aa-1b1d-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1772994885;
	 x=1773081285; bh=moVg4hDlKB7TLH7MW3WxwibTX6FvIIhzqiS1wz5mVQE=; b=
	CV+PHU3Easa5TKt/O0Qm6FJIL9hwDuEnYodhZmh/q+59dzo45dvXD+oIlj9RJM5W
	PPze8tqmWRV5ZCBTc44jJzMpVix36PFgOh21suz5XGe5riL30uleaj6TA51CZqbx
	roZsh5dRfpKcJnAJus9F3mQYP3UDcmpHRdY4Fdhk9llZlvvGd4/m3/k2AZyWErny
	c1fTz1Dy4Xld54/b5+tBoK+T3tI8AiexpCoGXup245ZDi4sEFHo+nDKAcJdQa1FZ
	7WiqKIdrB+UVdDigVo+uWZiYkYs/ukWpk0hZFTzCJ3caAxN5qKjwN2SfimE+ewGr
	zuCbK3OacL+nN8myt4wnxg==
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=
	1772994885; x=1773081285; bh=moVg4hDlKB7TLH7MW3WxwibTX6FvIIhzqiS
	1wz5mVQE=; b=WC8A6CIQT/R8UQyCoMBXHGy/LqoVbatnjSlH9EQ4CBHaU0Q/uaK
	zg5wXLMPby2C3AS5ADfZj6gdtfKDyogwzLGWfIqgM81r2YnuaLsj2hLb/bIPF7tk
	EKqMSzYNCjaWU6tEaEbFsgcqtcQVvWlLYxUb3KvKpYlqq2HvrlTXYDKj4MjsW8HX
	Ob5xSjGL8EhbdOL0wqrEjUssn+SsB4NMGzC1HtCSoYzrIOu6dmKKU1HWHdU+Zvch
	76H3qbDCdMo/1FNYEWW5i2SNvmCAfaH9uRer6QQQEpfLkDE3u19ZdrQa0E6Hewp1
	/os9qqvZfDkwPkSvooMrxMLZkUqwOYO+diw==
X-ME-Sender: <xms:RcGtabt2Ha8slGPp8hEscub2-salJgLsPcmfDykii9t89tK7v908oQ>
    <xme:RcGtaeuTaaU0xPzrCCugNc0Gc4tclV5NkG4UnM-StsOzt9-yHJ0RVjKmTZ34ul9c4
    VOqRkfAzlu-Tm8EC-EUynnU-e8WDErg9Qjgf2I5YZF84cqPTw>
X-ME-Received: <xmr:RcGtaRD5wFoAq_5uyERK9ym5sHRUsA31mHEbVnBnZGN6nbc8BwEDYRQ_fbZeOQegxt20-dCcV_3l8RQ8tpKpEvLQ_uJke623QUQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvjeehledvucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepjedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepshhouhhmhigrjhihohhtihhsrghrkhgr
    rhdvfeesghhmrghilhdrtghomhdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsth
    hsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehsrghrkhgrrhhsohhumhih
    rghjhihothhivdefsehgmhgrihhlrdgtohhmpdhrtghpthhtohepjhgsvghulhhitghhse
    hsuhhsvgdrtghomhdprhgtphhtthhopeguphhsmhhithhhsegrphgvrhhtuhhsshholhhu
    thhiohhnshdrtghomhdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtg
    homhdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhm
X-ME-Proxy: <xmx:RcGtaQPaXQ1OyB1OtRD3IwVw5KVXGJ4z82s2ahs9XL_xVAn2opvvvQ>
    <xmx:RcGtaaxZTd-zFrbjZnEDjezt8CX1rN6bDH5dpkRlGyJG74vIzMgIFQ>
    <xmx:RcGtaQUWXbfdfTxLWZSDVRfS63bLOt___3ACmsurFzBn8cG-In1lRA>
    <xmx:RcGtacM54cqzZqYbdfsbJP0YxMida5o0VehXqnjEhhWM8HudVTAz7g>
    <xmx:RcGtad4aP2G00beaCLuYTmHcObHmr7sA0yqr-OflupPIqLkYPWZF7ynl>
Feedback-ID: i1568416f:Fastmail
Date: Sun, 8 Mar 2026 19:34:42 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com,
	Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 3/3] x86/efi: Add opt-out mechanism for BGRT preservation
Message-ID: <aa3BQryZJYHyKJ3j@mail-itl>
References: <20260305191810.31033-1-soumyajyotisarkar23@gmail.com>
 <20260305191810.31033-4-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="2nGy8xoL0y3DCac7"
Content-Disposition: inline
In-Reply-To: <20260305191810.31033-4-soumyajyotisarkar23@gmail.com>


--2nGy8xoL0y3DCac7
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sun, 8 Mar 2026 19:34:42 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com,
	Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 3/3] x86/efi: Add opt-out mechanism for BGRT preservation

On Fri, Mar 06, 2026 at 12:48:10AM +0530, Soumyajyotii Ssarkar wrote:
> As described in the task, BGRT preservation is now enabled by default to =
fix ACPI corruption
> for desktop/workstation systems (similar to ESRT).
>=20
> Add an opt-out parameter 'efi=3Dno-bgrt' to allow disabling BGRT
> preservation on systems where the ~1MB memory overhead is not
> desired.
>=20
> The parameter is parsed during normal Xen boot (not during EFI
> phase), so it only affects diagnostic logging. The opt-out flag
> is checked at the start of efi_preserve_bgrt_img().
>=20
> Usage:
>   Default: BGRT preserved automatically
>   Opt-out: Add 'efi=3Dno-bgrt' in Xen command line
>=20
> Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
> ---
>  xen/common/efi/boot.c | 14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
>=20
> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> index 1e3489e902..b735eac6b2 100644
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -167,6 +167,7 @@ static SIMPLE_TEXT_OUTPUT_INTERFACE *__initdata StdEr=
r;
>=20
>  static UINT32 __initdata mdesc_ver;
>  static bool __initdata map_bs;
> +static bool __initdata opt_bgrt_disabled =3D false;
>=20
>  static struct file __initdata cfg;
>  static struct file __initdata kernel;
> @@ -868,6 +869,9 @@ static void __init efi_preserve_bgrt_img(EFI_SYSTEM_T=
ABLE *SystemTable)
>      bgrt_debug_info.preserved =3D false;
>      bgrt_debug_info.failure_reason =3D NULL;
>=20
> +    if ( opt_bgrt_disabled )
> +        return;
> +
>      bgrt =3D find_bgrt_table(SystemTable);
>      if ( !bgrt )
>      {
> @@ -1873,6 +1877,10 @@ static int __init cf_check parse_efi_param(const c=
har *s)
>              else
>                  __clear_bit(EFI_RS, &efi_flags);
>          }
> +        else if ( (ss - s) =3D=3D 7 && !memcmp(s, "no-bgrt", 7) )
> +        {
> +            opt_bgrt_disabled =3D true;
> +        }

This is too late - standard param parsing happens after efi_exit_boot()
already. See early cmdline parsing in efi_multiboot2() and also in
efi_start() (but note the latter is about options to xen.efi, which
isn't exactly the same as standard xen cmdline...)

>          else if ( (ss - s) > 5 && !memcmp(s, "attr=3D", 5) )
>          {
>              if ( !cmdline_strcmp(s + 5, "uc") )
> @@ -1968,7 +1976,11 @@ void __init efi_init_memory(void)
>      if ( !efi_enabled(EFI_BOOT) )
>          return;
>=20
> -    if ( bgrt_debug_info.preserved )
> +    if ( opt_bgrt_disabled )
> +    {
> +        printk(XENLOG_INFO "EFI: BGRT preservation disabled\n");
> +    }
> +    else if ( bgrt_debug_info.preserved )
>      {
>          printk(XENLOG_INFO "EFI: BGRT image preserved: %u KB\n",
>                 bgrt_debug_info.size / 1024);
> --
> 2.53.0
>=20

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmtwUIACgkQ24/THMrX
1yynqAgAj36JkBL1ZYj9BVbQgsX9pyS5O8a828DLAzSyY8y0t5+zNPVaUcFnz8zE
6bIvbCCJeRVWyrBpEApRHIoJe6q9VL1ur5GHtMPWsSRTupBKWcdwGhZpmSmP2qYN
xVSs3KuudYQiKVa66h2AGIba8QfWDPmSrYl5KeEVV6HKGeNRELGmFGz7BOxOtmVu
dbG9xHD1cuX8xufzNnEEkgs7OBiA+NcyIh0mXj2zRxUwIErj32OkAq3m47W4NYgC
uya9v+9lnhVaPMFEhsBd0P5NWjiutsWJLgSCj0gYHvr2AucxkfClGL9Cb4qK9ora
2sOLTGYIBW0uzjsU8jiaKha7unX/HA==
=+07o
-----END PGP SIGNATURE-----

--2nGy8xoL0y3DCac7--


From xen-devel-bounces@lists.xenproject.org Sun Mar 08 19:34:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 08 Mar 2026 19:34:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1248994.1546538 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzJtJ-00039j-Cr; Sun, 08 Mar 2026 19:34:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1248994.1546538; Sun, 08 Mar 2026 19: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 1vzJtJ-00039c-AK; Sun, 08 Mar 2026 19:34:17 +0000
Received: by outflank-mailman (input) for mailman id 1248994;
 Sun, 08 Mar 2026 19: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=VeQK=BI=oss.qualcomm.com=vijayanand.jitta@srs-se1.protection.inumbo.net>)
 id 1vzJtI-00037z-9C
 for xen-devel@lists.xenproject.org; Sun, 08 Mar 2026 19:34:16 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c73b53fa-1b25-11f1-b164-2bf370ae4941;
 Sun, 08 Mar 2026 20:34:11 +0100 (CET)
Received: from pps.filterd (m0279869.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 628CPhag3683510
 for <xen-devel@lists.xenproject.org>; Sun, 8 Mar 2026 19:34:09 GMT
Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com
 [209.85.215.200])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4crb14u517-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Sun, 08 Mar 2026 19:34:08 +0000 (GMT)
Received: by mail-pg1-f200.google.com with SMTP id
 41be03b00d2f7-bce224720d8so6236825a12.1
 for <xen-devel@lists.xenproject.org>; Sun, 08 Mar 2026 12:34:08 -0700 (PDT)
Received: from hu-vjitta-hyd.qualcomm.com ([202.46.23.25])
 by smtp.gmail.com with ESMTPSA id
 d2e1a72fcca58-829a4676593sm7818909b3a.28.2026.03.08.12.33.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 08 Mar 2026 12:34:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c73b53fa-1b25-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:message-id
	:mime-version:subject:to; s=qcppdkim1; bh=DNMdCDB4m/JS2Eqb4Zd/0G
	6oEd9rQSbuN+RA5pJMqjw=; b=Iz5I4QQh+5X+EdI7ZbWYkCwMd0XsXKEgZSSk7u
	fZ9Y3l6+S7LKgAOi7D3AfsdoMASdDUtGTK7RZzHvs5t01JfUzEaojPuJ6bMc9ofc
	2/bd2VGoUOQMpwJRFzwOorskgCxsdkMtTQplIHuOzWjx8AvvZ9lxxJMGtGLNxgSn
	anN7DXhtVfkGW27Ex2TmfG1rL90bMyaGXdzyW12WT3YHHeNaHtVQP07xfglcjK+U
	3Hq+dgArnD8ScoB11PW9t66PZ9SMoa2utjEkZ1vtKayFBjoNbGSTSExpPj7knnQH
	KyxIdiH5oJAi7giVdLeW41AZ3NV+Hguvx/+DxBT7wj64Xk/A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1772998448; x=1773603248; darn=lists.xenproject.org;
        h=cc:to:content-transfer-encoding:mime-version:message-id:date
         :subject:from:from:to:cc:subject:date:message-id:reply-to;
        bh=DNMdCDB4m/JS2Eqb4Zd/0G6oEd9rQSbuN+RA5pJMqjw=;
        b=YtGBGotXNbZV8VKbqs1gxm9gdjEYdtiQZMp8ieAfQwTJ1g2/iYY33u4jXe5/BvH5hO
         0rTDzpp4eoPnjOKHEnttXJkr5guvDzdGEol9g2XXvp4B/eX0w3EXMDGSOsWSCAkYUVm6
         akZFdpCQL3O7UezlQ5nvnCOiZIas5mIxZPVbWCR0rzyKAWQwWbN4Z3dnauVqLQwXB8dI
         80Kq85uZ58BxauI6ohVmLrmnc89a/AY1FcaIeeADy+CxBukFsJkCo3kILIwNXC4dTzZn
         uoKMLIYbdwLQGSe6AN5L3SaxrvQnjnefmHlyGa8BJP0qrmZJmVTA9P4ZyptUn6zObdNP
         LNgg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772998448; x=1773603248;
        h=cc:to:content-transfer-encoding:mime-version:message-id:date
         :subject:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DNMdCDB4m/JS2Eqb4Zd/0G6oEd9rQSbuN+RA5pJMqjw=;
        b=nSBypgUzLHbRG7Ga7ptw6ISp970e+9l7jTgeV6v4d203QP8a6VrWJqLGFPRlUxVEKZ
         F74kz8fNQZnwAAyNlgS5PdMBITej5ZlVt1vPslxLyb9BQtH4bTcnatq0wF9Rogmjt0Mj
         7Aau6cW8RcwCVvztjD+0ZiftZSi+n/h2YU4CmcsyGFq9HVOzBjwQ4KYw/rzh9N13lo9r
         hpFQmCoRwH0RDisKcrWWmfsz4V2sH1/VbqPdozzu+YiuqMkSrjQCnkQfBvTS+EXySHBw
         4wE4JxF+9K30m81xGujzLOBmA2bXVC4y7Dco3s/C1M2zrXadIz83APIxmnIqYq5blbs6
         BIHQ==
X-Forwarded-Encrypted: i=1; AJvYcCUjrlD+B3XU1Hul0g9sopb0Ff0ZhBWcGCLqccYenmz/a3D8YV2fXyHY0K2cG32G4LuJ3Un4U46LT0A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzqO5Wxdjz8tXQ7uHgkszGDXdIuUovtsZ5w3/hRxmkPjw/TDIwp
	ZoHOEdgdVbXMdCytypbbAEkVVvgbu+t5qbtw0zk1rIrgq507yfiKzuaiVdMZG0VfaNjTIvYGg9F
	Rf3tmokVMKF7xQt2e17lKN/RRp6pDb3meRhh6RtdoiYAR5IZGl/A3uPA7vOPdsoKssjpirw==
X-Gm-Gg: ATEYQzwtKW+b7CzNxhG9mueberngpIiupx/uF4W1Rtrdp8frFpMtIFxv1WFKdke2C1H
	LTpZvmDnEg/bieBchwNLUHNqrXtVEiGsSI24SSHpE/C+eKw6Xwt7fhlf1VRCPYVi3WQc3rTjVas
	OmVMbaKkO755W9aZPXCewq5nM/1FObRTiITJtFz4Ux3f8OzvFOoyTY4ORrX5qNqOiX1HMnmsrpg
	Q7P4yes2SjlnAGSGh7eC/hTLr2L2tyRef3hsV3D/UKCrxm6tZ4ipKtFWFUcbNYLbMqvN+jGKrWF
	fLeyBff74XL6GbqHKlqnSp+lqdoVrjlcdrAmGsMDirS1qvjdrB9tz8VfAil8z9OI7G8Ks7N5jge
	oh2iJMAuYHZP9WNSxnTFFiRe71ettpE4wJo071KZKd3LfVw4dmI4QSE7B
X-Received: by 2002:a05:6a00:4b53:b0:829:6f9f:ea3b with SMTP id d2e1a72fcca58-829a2e3d086mr8046006b3a.20.1772998447756;
        Sun, 08 Mar 2026 12:34:07 -0700 (PDT)
X-Received: by 2002:a05:6a00:4b53:b0:829:6f9f:ea3b with SMTP id d2e1a72fcca58-829a2e3d086mr8045981b3a.20.1772998447234;
        Sun, 08 Mar 2026 12:34:07 -0700 (PDT)
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Subject: [PATCH v10 0/3] of: parsing of multi #{iommu,msi}-cells in maps
Date: Mon, 09 Mar 2026 01:03:36 +0530
Message-Id: <20260309-parse_iommu_cells-v10-0-c62fcaa5a1d8@oss.qualcomm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
X-B4-Tracking: v=1; b=H4sIABDPrWkC/32NUQ6CMBBEr0L225KWKgpf3sMQUpZVNgGKXSEaw
 t2tHMCfSWYy82YFocAkUCYrBFpY2I/RGH1IADs3PkhxGwPIdJZrq42aXBCq2Q/DXCP1vSiD1p7
 zi6OmcRB3U6A7v3forYq+Y3n58Nk/luKX/qMthdLq2JoGiRBPZK5eJH3OrsfYSqNAtW3bF4mVr
 Ue6AAAA
To: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
X-Mailer: b4 0.12.3
X-Developer-Signature: v=1; a=ed25519-sha256; t=1772998436; l=4795;
 i=vijayanand.jitta@oss.qualcomm.com; s=20260301; h=from:subject:message-id;
 bh=PtTdudtjBZ/xPMrnHDRK1H9Z6n/XjfTDJSglqtupcDI=;
 b=EBb8Dk6BIlgjCH0Fqcmr+R/Zem16FjzSLlrw2KGhDvNxeYgPJwLHInLgJNWKtbmBgHLkCc5NK
 xDxh7Np2VUaB9ZsluGW3jBruuRfE5BZGHAei8UQe3BXzG9rX5bRMd84
X-Developer-Key: i=vijayanand.jitta@oss.qualcomm.com; a=ed25519;
 pk=Lpi7Cs3wHe8KZtqvyci7FTOLzsKpEHKGCaPNZw+1zRI=
X-Authority-Analysis: v=2.4 cv=IYSKmGqa c=1 sm=1 tr=0 ts=69adcf30 cx=c_pps
 a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22
 a=VwQbUJbxAAAA:8 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=NEAV23lmAAAA:8
 a=hUMMoPFcHhpVZiwYRzIA:9 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22
 a=TjNXssC_j7lpFel5tvFf:22
X-Proofpoint-GUID: C3N61NEbB5_rPmOm3kCQzkC6ijS8kSQE
X-Proofpoint-ORIG-GUID: C3N61NEbB5_rPmOm3kCQzkC6ijS8kSQE
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA4MDE4MSBTYWx0ZWRfX0zoZVdlAmNtm
 uAobE8tvezPo4o5SDvQD3bCm3FmUBZ0pnAPTypm7zD40/zclABuj1jookJAWE4doA7V3O3pXZ+W
 IebCIpDo6urdwHsTOoTCq/hSbeq09d2m+HJrLc7JZ65v/t4B28A9mD+skGrDjmWoKr7bGl9jJ++
 kVfikDUCK1lA4c1M1BxbWe+oneqew3bxfDWWBdrt6dSsrd4nkuLmeVqSTZJ4ZdErl66dJdihlD0
 VANVG5o29r6zJ+LvGx3y8IBDLSorsSvY0N13rFbZPKE/751kEQB3sMe4lk9hAgaZgas98PdB0ih
 x7TuHv8xZU+p4kYlYI9TFUB846hsCDHD3V4jUTripbDaWmJ3oIICtSceNI8ggYwdLc2nlTN0plD
 nPGhgkFto0CNvVErIy4rKsOOdABwu230EnftZNL1KngXuP6qy0+0IvBSjRlEGtTfpD6x3DGkpxG
 e0++g6ERVZKI93gcgIw==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-08_05,2026-03-06_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 adultscore=0 suspectscore=0 lowpriorityscore=0 spamscore=0 impostorscore=0
 phishscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 bulkscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603080181

So far our parsing of {iommu,msi}-map properites has always blindly
assumed that the output specifiers will always have exactly 1 cell.
This typically does happen to be the case, but is not actually enforced
(and the PCI msi-map binding even explicitly states support for 0 or 1
cells) - as a result we've now ended up with dodgy DTs out in the field
which depend on this behaviour to map a 1-cell specifier for a 2-cell
provider, despite that being bogus per the bindings themselves.

Since there is some potential use[1] in being able to map at least
single input IDs to multi-cell output specifiers (and properly support
0-cell outputs as well), add support for properly parsing and using the
target nodes' #cells values, albeit with the unfortunate complication of
still having to work around expectations of the old behaviour too.
							-- Robin.

Unlike single #{}-cell, it is complex to establish a linear relation
between input 'id' and output specifier for multi-cell properties, thus
it is always expected that len never going to be > 1. 

These changes have been tested on QEMU for the arm64 architecture.

[1] https://lore.kernel.org/all/20250627-video_cb-v3-0-51e18c0ffbce@quicinc.com/

V10:
  - Move of_map_iommu_id()/of_map_msi_id() from include/linux/of.h to
    drivers/of/base.c as out-of-line helpers per feedback from Marc Zyngier
    and Rob Herring.
  - Add kernel-doc to document both helpers for discoverability and
    usage clarity.
  - Fix of_map_msi_id() wrapper and all its callers (cdx_msi.c,
    irq-gic-its-msi-parent.c, drivers/of/irq.c) to correctly use the new
    struct of_phandle_args-based API with proper of_node_put() handling
    as per feeback from Dmitry.
  Link to v9:
  https://lore.kernel.org/r/20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com

V9:
  - Updated TO/CC list based on feedback to include all relevant
    maintainers.
  - No functional changes to the patches themselves.

  Link to V8:
  https://lore.kernel.org/all/20260226074245.3098486-1-vijayanand.jitta@oss.qualcomm.com/

V8:
  - Removed mentions of of_map_args from commit message to match code.

  Link to V7:
  https://lore.kernel.org/all/20260210101157.2145113-1-vijayanand.jitta@oss.qualcomm.com/

V7:
  - Removed of_map_id_args structure and replaced it with
    of_phandle_args as suggested by Dmitry.

  Link to V6:
  https://lore.kernel.org/all/20260121055400.937856-1-vijayanand.jitta@oss.qualcomm.com/

V6:
  - Fixed build error reported by kernel test bot.

  Link to V5:
  https://lore.kernel.org/all/20260118181125.1436036-1-vijayanand.jitta@oss.qualcomm.com/

V5:
  - Fixed Build Warnings.
  - Raised PR for iommu-map dtschema: https://github.com/devicetree-org/dt-schema/pull/184

  Link to V4:
  https://lore.kernel.org/all/20251231114257.2382820-1-vijayanand.jitta@oss.qualcomm.com/

V4:
  - Added Reviewed-by tag.
  - Resolved warnings reported by kernel test bot, minor code
    reorganization.

  Link to V3:
  https://lore.kernel.org/all/20251221213602.2413124-1-vijayanand.jitta@oss.qualcomm.com/

V3:
  - Added Reviewed-by tag.
  - Updated of_map_id_args struct as a wrapper to of_phandle_args and
    added comment description as suggested by Rob Herring.

  Link to V2:
  https://lore.kernel.org/all/20251204095530.8627-1-vijayanand.jitta@oss.qualcomm.com/

V2:
  - Incorporated the patches from Robin that does the clean implementation.
  - Dropped the patches the were adding multi-map support from this series
    as suggested.

V1:
 https://lore.kernel.org/all/cover.1762235099.git.charan.kalla@oss.qualcomm.com/

RFC:
 https://lore.kernel.org/all/20250928171718.436440-1-charan.kalla@oss.qualcomm.com/#r

Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
---

---
Charan Teja Kalla (1):
      of: factor arguments passed to of_map_id() into a struct

Robin Murphy (2):
      of: Add convenience wrappers for of_map_id()
      of: Respect #{iommu,msi}-cells in maps

 drivers/cdx/cdx_msi.c                    |   6 +-
 drivers/iommu/of_iommu.c                 |   6 +-
 drivers/irqchip/irq-gic-its-msi-parent.c |  11 +-
 drivers/of/base.c                        | 202 ++++++++++++++++++++++++-------
 drivers/of/irq.c                         |   9 +-
 drivers/pci/controller/dwc/pci-imx6.c    |  18 ++-
 drivers/pci/controller/pcie-apple.c      |   6 +-
 drivers/xen/grant-dma-ops.c              |   5 +-
 include/linux/of.h                       |  28 ++++-
 9 files changed, 222 insertions(+), 69 deletions(-)
---
base-commit: 3fa5e5702a82d259897bd7e209469bc06368bf31
change-id: 20260301-parse_iommu_cells-1c33768aebba

Best regards,
-- 
Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>



From xen-devel-bounces@lists.xenproject.org Sun Mar 08 19:34:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 08 Mar 2026 19:34:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1248995.1546547 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzJtP-0003NH-Jz; Sun, 08 Mar 2026 19:34:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1248995.1546547; Sun, 08 Mar 2026 19: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 1vzJtP-0003NA-Ge; Sun, 08 Mar 2026 19:34:23 +0000
Received: by outflank-mailman (input) for mailman id 1248995;
 Sun, 08 Mar 2026 19:34:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VeQK=BI=oss.qualcomm.com=vijayanand.jitta@srs-se1.protection.inumbo.net>)
 id 1vzJtN-00037z-IE
 for xen-devel@lists.xenproject.org; Sun, 08 Mar 2026 19:34:21 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cd654c96-1b25-11f1-b164-2bf370ae4941;
 Sun, 08 Mar 2026 20:34:20 +0100 (CET)
Received: from pps.filterd (m0279870.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 628BDj0F2986038
 for <xen-devel@lists.xenproject.org>; Sun, 8 Mar 2026 19:34:19 GMT
Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com
 [209.85.215.198])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4crc3vb072-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Sun, 08 Mar 2026 19:34:19 +0000 (GMT)
Received: by mail-pg1-f198.google.com with SMTP id
 41be03b00d2f7-c73939e0314so1740626a12.1
 for <xen-devel@lists.xenproject.org>; Sun, 08 Mar 2026 12:34:19 -0700 (PDT)
Received: from hu-vjitta-hyd.qualcomm.com ([202.46.23.25])
 by smtp.gmail.com with ESMTPSA id
 d2e1a72fcca58-829a4676593sm7818909b3a.28.2026.03.08.12.34.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 08 Mar 2026 12:34:17 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cd654c96-1b25-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	Vh58ApOUDm3FbXz3u/s00W13OYNSc/5jru8Nq3PkHFY=; b=NCiJDgtFWX7fALOI
	cYlP/SeFlV7hVz3MMfIeBj4CIRQ7aHOJrvUrZvIDdAmOU9/tq7yhusXbtHXNp8Hk
	16EIUYQa18m/Kv//TOVmYeeua7F6BBwm/Mx9+MF0hNupRWTAaVjQb2rzBHct/TDq
	tVHq0PUr2BjRX6/4RgD3Cg16ebBqEHLgJJUR96n6chJZ4fRkP1cWEt/ha508VGWU
	HI3mRNebuPtZnigCqMTAY1JrIduqeylWEC7IR12dr9dUMRe9EVupNyiqi8xkFIyD
	gTLU5WKT8ALMzi/7zlFHh/r6sdP+v355QrvVbXlXe3wgVXX2jtEc8HC5nmO5nR+V
	Dc6ieg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1772998458; x=1773603258; darn=lists.xenproject.org;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Vh58ApOUDm3FbXz3u/s00W13OYNSc/5jru8Nq3PkHFY=;
        b=ZyK3632CyQ0F9JyGhr6hLCeqkZG0jgMOuVLaC+AK2/cLx0ZNUY6Szu/oNmGmKcA/9z
         OaEu+btCRFH/UYqTnITM2iCFR7J9TWu6s0pMHRwmTN9It/t9WiwEm6cj+aGRu1GAOxYs
         oRNqthNpbC10QeqSMNeU1xH28YO12IU2UTwCXMuMVW7g8c3gCd8BpNerZ9cCcjnNU4o7
         OVOnxRpf1+iK1uQMikKCbEWAUKYwu4TUyaubSLzyMHSc352ecXwVmJxlvnqO5BU+N7kp
         2m3EcRcf6OOVJd3fjKrdem7riCfbvxEijILmr1GdYOajevS2fr6e+plh+U+ZNOHGvGr4
         XZ0Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772998458; x=1773603258;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=Vh58ApOUDm3FbXz3u/s00W13OYNSc/5jru8Nq3PkHFY=;
        b=gBWNkcEJ9cDGb0gZT4QpozjS0XeVFoprWC8q+4NG0vQuR0viYLDFokcxTYGITf7OlO
         SsVvDdxVZkYmml3f/iNqDlEOPIqw3L/a1eO75+c5/XNejB1zYEekNLcYc77pmDazSau2
         P6OyCam00VvxXxl5gLLoJ/4E73UdwDiFIE7HYsPaUgEA/Jx49ZW43oXvw5I99XvdliJ7
         LuQRoiKX6wRsApdsA/67o2pITP/xrFuRQlAlsayFGu5JBCqixNpAr3/r8tYTX4GED1tm
         Dhk3ofKd4Ypo2/kv4b2alM6puFpxLbEnNzhA/nBVNPuwZOGamskiMztzl5upijFbs1km
         t53g==
X-Forwarded-Encrypted: i=1; AJvYcCWufJYVYj2tdQLZqv1042t6GX8X4JsRQ96MpFQArbw03BOHPLDVEeP0+PQU3cWhs1L7HPfSJi/XNMs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyIhjU6GdT/1Q4J4ZAsMEMrHtNYts5AeUGCOLW10EJ3OGMN0Rbn
	uXw0J0+AtS08ivgT70ZthflX+n2Hl9ZPkWo0kWl26+R0Y63iAjupFTScOdJRmIewZaMyqAkj4bO
	FGazXk4Bhr2C0V9sPq9M1Skco2F4R4fGzvz+nGB/h0iX/ztOr1kKtO3bz2DTbCXbYmG7ARA==
X-Gm-Gg: ATEYQzzxtoVNhVguDUkSjm8Mc4THtix0pm0wgHn0B57uMB8+AXg23eB6toCDag7+PKz
	NYeXY5sOvDSzEfHrSiAzFrtuGcBjopbXGtZw4CKRRTwimZnU9C3LCYoOxrWd66yaYCr6XPV6zHg
	UBurgzZjpnSTwOasqjc1FlblDR7ZOVpxvq7+t0N5WLEpwpYwNsppo1YhO1KfCDrY6KPENeMjb99
	iENZ7oysS+MEUvlntxhBsRBciZecnG9yU9TZMRa3ktf0FXTLmj7L4QTzoVpITQpY9p3JoDZVZIM
	NkgVpoB1o69pgBXn24PDrP9GYazRMlexASZWD3yk9gbrhT7KtIKxj8tO8QAr/A+NG0icWmadSTl
	6LwXg6j3HHJryFEjYOxa35S9xd9/4hpKx8ZxvDgdWMbIUhSxK70eAq63O
X-Received: by 2002:a05:6a00:3d98:b0:7e8:43f5:bd4c with SMTP id d2e1a72fcca58-829a30b0da4mr5836486b3a.56.1772998458266;
        Sun, 08 Mar 2026 12:34:18 -0700 (PDT)
X-Received: by 2002:a05:6a00:3d98:b0:7e8:43f5:bd4c with SMTP id d2e1a72fcca58-829a30b0da4mr5836476b3a.56.1772998457759;
        Sun, 08 Mar 2026 12:34:17 -0700 (PDT)
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Date: Mon, 09 Mar 2026 01:03:37 +0530
Subject: [PATCH v10 1/3] of: Add convenience wrappers for of_map_id()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260309-parse_iommu_cells-v10-1-c62fcaa5a1d8@oss.qualcomm.com>
References: <20260309-parse_iommu_cells-v10-0-c62fcaa5a1d8@oss.qualcomm.com>
In-Reply-To: <20260309-parse_iommu_cells-v10-0-c62fcaa5a1d8@oss.qualcomm.com>
To: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
X-Mailer: b4 0.12.3
X-Developer-Signature: v=1; a=ed25519-sha256; t=1772998436; l=8304;
 i=vijayanand.jitta@oss.qualcomm.com; s=20260301; h=from:subject:message-id;
 bh=0HcqUiUmz/4eYD3bErvod4ldrniwhh4k5wTOZyawn+Q=;
 b=NIW6O7RTPmvFreddKnzjsXyJ5nMuEQ3h35YKP6uS4GabQ++O++b3BwYxmZvNyx/JcaKUBuwi5
 TReogjCXsU8DzPxev4DnCf+9kM0nkPTOxhZZFRkatpC4OluXCiVlu9/
X-Developer-Key: i=vijayanand.jitta@oss.qualcomm.com; a=ed25519;
 pk=Lpi7Cs3wHe8KZtqvyci7FTOLzsKpEHKGCaPNZw+1zRI=
X-Proofpoint-ORIG-GUID: Qyl0HIqBBTkWmziikvn5U2EgL6zChW-b
X-Proofpoint-GUID: Qyl0HIqBBTkWmziikvn5U2EgL6zChW-b
X-Authority-Analysis: v=2.4 cv=OOQqHCaB c=1 sm=1 tr=0 ts=69adcf3b cx=c_pps
 a=Qgeoaf8Lrialg5Z894R3/Q==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22
 a=7CQSdrXTAAAA:8 a=VwQbUJbxAAAA:8 a=8AirrxEcAAAA:8 a=EUspDBNiAAAA:8
 a=jVkiwcMdNzIszB0OPoYA:9 a=QEXdDO2ut3YA:10 a=x9snwWr2DeNwDh03kgHS:22
 a=a-qgeE7W1pNrGK8U0ZQC:22 a=ST-jHhOKWsTCqRlWije3:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA4MDE4MSBTYWx0ZWRfX5fqtXcDwcyHS
 xGtJ2xZKkMB8SbpU9ZQWl5aJbmh7NySK9nN+r+HvebhAHzKchT4o95Ze1ETshal0GOuVOwa8yTP
 Y1W5s0a03rI6I1t1ypu6D5roeievbGSS2ZUyraN5X90y1pJ/6OGPc5lXJmYig4fok1mTKGc6OXW
 iNp4uHKjC6w70gnmZF/8nL3k+JwiGytpqXQgOO1QEsN4sickeej9NK2HC9srQWuOMIA6eD0Xl2a
 GchjN1cVnbqL8yfSKnkzNJWB/uWsezcs5SQzEPucrDsa1fLwtbS06a6e4my+dxt3LfwF0FbL5dB
 8q9OI0JI3iVbCTN7+oTd5FLvI2lActgI/Xhx//tb4JLEScIi6kxwH4Wgr2Z6y2PVHQYYjLYnsvl
 WpmAFTs/FU6O9YCTXMftlA4xMiESMt0X5whvlYPZdhWsuCXVp4km3DhZ9tuiHYDoffGN7nIoSkQ
 VhtXQcg1RA4dsNsHKGg==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-08_05,2026-03-06_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 adultscore=0 impostorscore=0 suspectscore=0 spamscore=0 malwarescore=0
 bulkscore=0 clxscore=1015 phishscore=0 lowpriorityscore=0 priorityscore=1501
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603080181

From: Robin Murphy <robin.murphy@arm.com>

Since we now have quite a few users parsing "iommu-map" and "msi-map"
properties, give them some wrappers to conveniently encapsulate the
appropriate sets of property names. This will also make it easier to
then change of_map_id() to correctly account for specifier cells.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
---
 drivers/cdx/cdx_msi.c                    |  3 +--
 drivers/iommu/of_iommu.c                 |  4 +---
 drivers/irqchip/irq-gic-its-msi-parent.c |  2 +-
 drivers/of/base.c                        | 36 ++++++++++++++++++++++++++++++++
 drivers/of/irq.c                         |  3 +--
 drivers/pci/controller/dwc/pci-imx6.c    |  6 ++----
 drivers/pci/controller/pcie-apple.c      |  3 +--
 drivers/xen/grant-dma-ops.c              |  3 +--
 include/linux/of.h                       | 18 ++++++++++++++++
 9 files changed, 62 insertions(+), 16 deletions(-)

diff --git a/drivers/cdx/cdx_msi.c b/drivers/cdx/cdx_msi.c
index 91b95422b263..63b3544ec997 100644
--- a/drivers/cdx/cdx_msi.c
+++ b/drivers/cdx/cdx_msi.c
@@ -128,8 +128,7 @@ static int cdx_msi_prepare(struct irq_domain *msi_domain,
 	int ret;
 
 	/* Retrieve device ID from requestor ID using parent device */
-	ret = of_map_id(parent->of_node, cdx_dev->msi_dev_id, "msi-map", "msi-map-mask",
-			NULL, &dev_id);
+	ret = of_map_msi_id(parent->of_node, cdx_dev->msi_dev_id, NULL, &dev_id);
 	if (ret) {
 		dev_err(dev, "of_map_id failed for MSI: %d\n", ret);
 		return ret;
diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
index 6b989a62def2..a511ecf21fcd 100644
--- a/drivers/iommu/of_iommu.c
+++ b/drivers/iommu/of_iommu.c
@@ -48,9 +48,7 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
 	struct of_phandle_args iommu_spec = { .args_count = 1 };
 	int err;
 
-	err = of_map_id(master_np, *id, "iommu-map",
-			 "iommu-map-mask", &iommu_spec.np,
-			 iommu_spec.args);
+	err = of_map_iommu_id(master_np, *id, &iommu_spec.np, iommu_spec.args);
 	if (err)
 		return err;
 
diff --git a/drivers/irqchip/irq-gic-its-msi-parent.c b/drivers/irqchip/irq-gic-its-msi-parent.c
index d36b278ae66c..b63343a227a9 100644
--- a/drivers/irqchip/irq-gic-its-msi-parent.c
+++ b/drivers/irqchip/irq-gic-its-msi-parent.c
@@ -180,7 +180,7 @@ static int of_pmsi_get_msi_info(struct irq_domain *domain, struct device *dev, u
 
 	struct device_node *msi_ctrl __free(device_node) = NULL;
 
-	return of_map_id(dev->of_node, dev->id, "msi-map", "msi-map-mask", &msi_ctrl, dev_id);
+	return of_map_msi_id(dev->of_node, dev->id, &msi_ctrl, dev_id);
 }
 
 static int its_pmsi_prepare(struct irq_domain *domain, struct device *dev,
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 57420806c1a2..959305a84748 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -2201,3 +2201,39 @@ int of_map_id(const struct device_node *np, u32 id,
 	return 0;
 }
 EXPORT_SYMBOL_GPL(of_map_id);
+
+/**
+ * of_map_iommu_id - Translate an ID using "iommu-map" bindings.
+ * @np: root complex device node.
+ * @id: device ID to map.
+ * @target: optional pointer to a target device node.
+ * @id_out: optional pointer to receive the translated ID.
+ *
+ * Convenience wrapper around of_map_id() using "iommu-map" and "iommu-map-mask".
+ *
+ * Return: 0 on success or a standard error code on failure.
+ */
+int of_map_iommu_id(const struct device_node *np, u32 id,
+		    struct device_node **target, u32 *id_out)
+{
+	return of_map_id(np, id, "iommu-map", "iommu-map-mask", target, id_out);
+}
+EXPORT_SYMBOL_GPL(of_map_iommu_id);
+
+/**
+ * of_map_msi_id - Translate an ID using "msi-map" bindings.
+ * @np: root complex device node.
+ * @id: device ID to map.
+ * @target: optional pointer to a target device node.
+ * @id_out: optional pointer to receive the translated ID.
+ *
+ * Convenience wrapper around of_map_id() using "msi-map" and "msi-map-mask".
+ *
+ * Return: 0 on success or a standard error code on failure.
+ */
+int of_map_msi_id(const struct device_node *np, u32 id,
+		  struct device_node **target, u32 *id_out)
+{
+	return of_map_id(np, id, "msi-map", "msi-map-mask", target, id_out);
+}
+EXPORT_SYMBOL_GPL(of_map_msi_id);
diff --git a/drivers/of/irq.c b/drivers/of/irq.c
index 6367c67732d2..e37c1b3f8736 100644
--- a/drivers/of/irq.c
+++ b/drivers/of/irq.c
@@ -817,8 +817,7 @@ u32 of_msi_xlate(struct device *dev, struct device_node **msi_np, u32 id_in)
 	 * "msi-map" or an "msi-parent" property.
 	 */
 	for (parent_dev = dev; parent_dev; parent_dev = parent_dev->parent) {
-		if (!of_map_id(parent_dev->of_node, id_in, "msi-map",
-				"msi-map-mask", msi_np, &id_out))
+		if (!of_map_msi_id(parent_dev->of_node, id_in, msi_np, &id_out))
 			break;
 		if (!of_check_msi_parent(parent_dev->of_node, msi_np))
 			break;
diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
index a5b8d0b71677..bff8289f804a 100644
--- a/drivers/pci/controller/dwc/pci-imx6.c
+++ b/drivers/pci/controller/dwc/pci-imx6.c
@@ -1144,8 +1144,7 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
 	u32 sid = 0;
 
 	target = NULL;
-	err_i = of_map_id(dev->of_node, rid, "iommu-map", "iommu-map-mask",
-			  &target, &sid_i);
+	err_i = of_map_iommu_id(dev->of_node, rid, &target, &sid_i);
 	if (target) {
 		of_node_put(target);
 	} else {
@@ -1158,8 +1157,7 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
 	}
 
 	target = NULL;
-	err_m = of_map_id(dev->of_node, rid, "msi-map", "msi-map-mask",
-			  &target, &sid_m);
+	err_m = of_map_msi_id(dev->of_node, rid, &target, &sid_m);
 
 	/*
 	 *   err_m      target
diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
index 2d92fc79f6dd..a0937b7b3c4d 100644
--- a/drivers/pci/controller/pcie-apple.c
+++ b/drivers/pci/controller/pcie-apple.c
@@ -764,8 +764,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
 	dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
 		pci_name(pdev->bus->self), port->idx);
 
-	err = of_map_id(port->pcie->dev->of_node, rid, "iommu-map",
-			"iommu-map-mask", NULL, &sid);
+	err = of_map_iommu_id(port->pcie->dev->of_node, rid, NULL, &sid);
 	if (err)
 		return err;
 
diff --git a/drivers/xen/grant-dma-ops.c b/drivers/xen/grant-dma-ops.c
index c2603e700178..1b7696b2d762 100644
--- a/drivers/xen/grant-dma-ops.c
+++ b/drivers/xen/grant-dma-ops.c
@@ -325,8 +325,7 @@ static int xen_dt_grant_init_backend_domid(struct device *dev,
 		struct pci_dev *pdev = to_pci_dev(dev);
 		u32 rid = PCI_DEVID(pdev->bus->number, pdev->devfn);
 
-		if (of_map_id(np, rid, "iommu-map", "iommu-map-mask", &iommu_spec.np,
-				iommu_spec.args)) {
+		if (of_map_iommu_id(np, rid, &iommu_spec.np, iommu_spec.args)) {
 			dev_dbg(dev, "Cannot translate ID\n");
 			return -ESRCH;
 		}
diff --git a/include/linux/of.h b/include/linux/of.h
index be6ec4916adf..fe841f3cc747 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -465,6 +465,12 @@ int of_map_id(const struct device_node *np, u32 id,
 	       const char *map_name, const char *map_mask_name,
 	       struct device_node **target, u32 *id_out);
 
+int of_map_iommu_id(const struct device_node *np, u32 id,
+		    struct device_node **target, u32 *id_out);
+
+int of_map_msi_id(const struct device_node *np, u32 id,
+		  struct device_node **target, u32 *id_out);
+
 phys_addr_t of_dma_get_max_cpu_address(struct device_node *np);
 
 struct kimage;
@@ -934,6 +940,18 @@ static inline int of_map_id(const struct device_node *np, u32 id,
 	return -EINVAL;
 }
 
+static inline int of_map_iommu_id(const struct device_node *np, u32 id,
+				  struct device_node **target, u32 *id_out)
+{
+	return -EINVAL;
+}
+
+static inline int of_map_msi_id(const struct device_node *np, u32 id,
+				struct device_node **target, u32 *id_out)
+{
+	return -EINVAL;
+}
+
 static inline phys_addr_t of_dma_get_max_cpu_address(struct device_node *np)
 {
 	return PHYS_ADDR_MAX;

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Mar 08 19:34:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 08 Mar 2026 19:34:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1248997.1546556 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzJtd-0003iQ-0C; Sun, 08 Mar 2026 19:34:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1248997.1546556; Sun, 08 Mar 2026 19:34:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzJtc-0003iH-T4; Sun, 08 Mar 2026 19:34:36 +0000
Received: by outflank-mailman (input) for mailman id 1248997;
 Sun, 08 Mar 2026 19:34: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=VeQK=BI=oss.qualcomm.com=vijayanand.jitta@srs-se1.protection.inumbo.net>)
 id 1vzJtc-0003hg-Cb
 for xen-devel@lists.xenproject.org; Sun, 08 Mar 2026 19:34:36 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d4881ccf-1b25-11f1-9ccf-f158ae23cfc8;
 Sun, 08 Mar 2026 20:34:32 +0100 (CET)
Received: from pps.filterd (m0279868.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 628JXPYL2149781
 for <xen-devel@lists.xenproject.org>; Sun, 8 Mar 2026 19:34:31 GMT
Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com
 [209.85.210.199])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4crbbg330j-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Sun, 08 Mar 2026 19:34:31 +0000 (GMT)
Received: by mail-pf1-f199.google.com with SMTP id
 d2e1a72fcca58-829b20cc6faso934466b3a.1
 for <xen-devel@lists.xenproject.org>; Sun, 08 Mar 2026 12:34:31 -0700 (PDT)
Received: from hu-vjitta-hyd.qualcomm.com ([202.46.23.25])
 by smtp.gmail.com with ESMTPSA id
 d2e1a72fcca58-829a4676593sm7818909b3a.28.2026.03.08.12.34.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 08 Mar 2026 12:34:28 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d4881ccf-1b25-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	s0f+l0UZykxb7mxIoRRD4wGsukxC7Yg8uv8eg8ZQXhE=; b=W7t05n81CGCjJycM
	rB6ngvUqGgEoubTypruWnhT3yBAf+l9BKRx9nXxl8on7bN7AD7vMZvuVDbbJXBBW
	MI3sHnNc0AVDH4OkDMu+z6G79TVzjTt3NPX7d4pzD02oVyxbXEnoD1wYpNy5ad1O
	XB80ulB6gd+eCcH64Dd7KM8KMWcDfSJjAn3MxQUwF8hmevEZAVuMNFHWQs/Hb9YC
	B0KrhFsTTtLCkdfJ4I13Sr7hENc7pAk53RDSXgVwiB2Z+7B+KZ+7j/6brbNRuH5B
	G6S4wEgkOFSAXg7mxr0bDzdfl1OVaqxSKHTu21vwELL07pMtq1y07m/VLqgyZAAR
	nsVZXQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1772998470; x=1773603270; darn=lists.xenproject.org;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:from:to:cc:subject:date:message-id
         :reply-to;
        bh=s0f+l0UZykxb7mxIoRRD4wGsukxC7Yg8uv8eg8ZQXhE=;
        b=gHp9r7gZUHoA54SyfBtdC9rXLf2TqZvLFR83ZZdmVerjPf/bRj8NfNWPAldCtNsbut
         iN6yP41I91s0W/zCe+M+7WDw5rVMppO7rQGjGGXcYpX0nBpLwdIstT3EwgMhFkVaItbA
         WW+VEU4VnvqdumS2/jHle/PMvJquVUN2R0JkWJNanJyPnxqQHU7AAxFYR6lksCq8bRT6
         QKQ4PlNcMnJT1NXQqTc+7Bj60VE6x7dlBWWE0kVGsD27fG19Or8LSeTxVCZ91fAATGss
         NwQk1qloMUI5mggiDr4+zTRAfvS64Rx8nGU6ePJFFIL3H6Gw//QLBUOS7dMhSEgHJYEz
         l2Gg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772998470; x=1773603270;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=s0f+l0UZykxb7mxIoRRD4wGsukxC7Yg8uv8eg8ZQXhE=;
        b=rVcN1fBPsp3A8bliZToBC5zauQNbATzbI8vD2SOH3bddbLt5XWSJFohmvGvSWpLgaJ
         fZNpwR1nLUgcDvCrWV4krWUBwehrTB/vuB8wQZIHBi0ljfn3ABHLZstIR6aEZEQ9Ysof
         A3m6cl4//k8w4AmO0X5vhS/kA8IO5pvIQcfNB3BvDpLNAJAO4TrZozSWKX9Mm6DOSqMW
         aSD4T5cD60lZ2xGyrkkOTIe4JP4ClBiLiY+fZ9Df1/dU4+G+i6Z5htfDsl45cEUjx4hE
         xUZUY5OIAFlyDieNhQxZJpVaUgI0LLDfB8fZvTZQbFAoI23WbjBLJUrbqBvcxlsg8+ik
         g00Q==
X-Forwarded-Encrypted: i=1; AJvYcCUO8H5T5Rq7IX4hRHznHDcIKuL9wQjZJQM10FiAMbZdCporBiul7FF4hXHVMIKgLQibKGNdWEmgjiQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyhvV/iLpnBcgpYDETZ2v2rZ95flaDAeMxtWoMBbnCAh0I0Yt7M
	TM0KVFizdnF/v5tgHfj27D+8NYrNP2yGBFf3EexNpmnpCcmjb+2TXMHEHAPfQoZaEFtMxgfKyCj
	aV1GPp0WRhcYFAun7GVhTakmpA4hMvN/e9VUzGrPijWXWwRfLX2fQ31Grsm0ciSn1h9pXNw==
X-Gm-Gg: ATEYQzxMRA2o1fZmRq3g6XW6jV+IX/DnVBo/NYin5cYP0jM85bKdek1JMYQ8fvx+JYs
	cY05slPHmLUl8idF/2c6djDU5oUszeE/4zpiit6qh1c/cAEu7wa+xgqd5QSeuUGeordz7O3tkOG
	KH4gkzn9VcCVC13/UtvVdeBRpwqdaFu26DsuxqTbQdNh/0xh8IVkl/2sP//XH/bvOxf7QhUqf6c
	sEAesWHqzB6+ECIIO0m9dPrEYyQJm4nCpfgBtm7UR30unDC/RuMzkzPSDvKIFikIgEx0DJZ2KpU
	ZR547DcG8NMK7VMQVvbkf8E6mbyYTv0pitSN/rd9qm5CE6GmcMEMSpc9HTFOuTN7O1eD9GrDkKc
	ed8UelgGt6aHhDbCNJQPqvmNW7WXQHKMLwR2uw4GnLcLJv2Yw0e8WvoJS
X-Received: by 2002:a05:6a00:124f:b0:81f:c6d1:5608 with SMTP id d2e1a72fcca58-829a29d27aemr6338695b3a.1.1772998470202;
        Sun, 08 Mar 2026 12:34:30 -0700 (PDT)
X-Received: by 2002:a05:6a00:124f:b0:81f:c6d1:5608 with SMTP id d2e1a72fcca58-829a29d27aemr6338664b3a.1.1772998469631;
        Sun, 08 Mar 2026 12:34:29 -0700 (PDT)
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Date: Mon, 09 Mar 2026 01:03:38 +0530
Subject: [PATCH v10 2/3] of: factor arguments passed to of_map_id() into a
 struct
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260309-parse_iommu_cells-v10-2-c62fcaa5a1d8@oss.qualcomm.com>
References: <20260309-parse_iommu_cells-v10-0-c62fcaa5a1d8@oss.qualcomm.com>
In-Reply-To: <20260309-parse_iommu_cells-v10-0-c62fcaa5a1d8@oss.qualcomm.com>
To: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
X-Mailer: b4 0.12.3
X-Developer-Signature: v=1; a=ed25519-sha256; t=1772998436; l=14423;
 i=vijayanand.jitta@oss.qualcomm.com; s=20260301; h=from:subject:message-id;
 bh=2xxclcz292iaXTCTUUgVe5HU3Ug92HRVDDP0RH/vc/Q=;
 b=5EJAcBss+t1VSBS7dm5TC4pfRYcv/8aKwEEwlHqkx/KhRZ1Bd8rbDtR/aYN2PXiCfTlToSZB0
 p8l0VQz2qwiAABwp9J5JAJyalSiczsMQk0nyzXRX4xjBsUDyD02gAUJ
X-Developer-Key: i=vijayanand.jitta@oss.qualcomm.com; a=ed25519;
 pk=Lpi7Cs3wHe8KZtqvyci7FTOLzsKpEHKGCaPNZw+1zRI=
X-Proofpoint-GUID: 56V1J62-m_T6q-D0Cg26jGmfM1fgbrMi
X-Proofpoint-ORIG-GUID: 56V1J62-m_T6q-D0Cg26jGmfM1fgbrMi
X-Authority-Analysis: v=2.4 cv=SumdKfO0 c=1 sm=1 tr=0 ts=69adcf47 cx=c_pps
 a=WW5sKcV1LcKqjgzy2JUPuA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22
 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=fHHJEzlffGKYVby2EucA:9 a=QEXdDO2ut3YA:10
 a=OpyuDcXvxspvyRM73sMx:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA4MDE4MSBTYWx0ZWRfX/Z3/dB57wGRU
 xC73AgcqlK1hyaaFW00qgwZfBUOGaQYClU/hzLRuUX6b2YGlXxFYFb2BdpiHTu9dQz4gkJlD/ft
 Tr5b02V8UvpIJg5hHUYfCiyNnjQJnfUIs0lbj00lS+q+6ly0m94Cy4MYZWuLi8CooKxZ4aUdvru
 RA6IGQSGrngZ24LzdWHIxwQJomPvFolNwlM8JKTuMLTF4GokkRqrjYZ4VdtZ2ZM/J3+J7Qb1322
 QQe97Tj+eqHq3ZquQ5P50B9H4OZcqgt8jRmS6DPXMm5snKnFeiESbqZ1904Sx2h5BrzugH8J3N1
 jEme79jQ9W0XA1Auu2RPHEUCRNEOO4iziwFBnABKizXRsAj7YW19/0hrDdbOsdn6bEd4WD0VjVU
 nJqn19fr33pZJqnvWkMr/IW4LtNElGEvyWoCdDzuSLiUkSZV9gTQxJ2cLrDoPURjt3PFVcbigR/
 fmiBHdCm76LlnpVmTcA==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-08_05,2026-03-06_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 suspectscore=0 priorityscore=1501 impostorscore=0 spamscore=0 adultscore=0
 phishscore=0 lowpriorityscore=0 bulkscore=0 malwarescore=0 clxscore=1015
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603080181

From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>

Change of_map_id() to take a pointer to struct of_phandle_args
instead of passing target device node and translated IDs separately.
Update all callers accordingly.

Subsequent patch will make use of the args_count field in
struct of_phandle_args.

Suggested-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
---
 drivers/cdx/cdx_msi.c                    |  5 ++-
 drivers/iommu/of_iommu.c                 |  2 +-
 drivers/irqchip/irq-gic-its-msi-parent.c | 11 ++++--
 drivers/of/base.c                        | 63 ++++++++++++++++----------------
 drivers/of/irq.c                         |  8 +++-
 drivers/pci/controller/dwc/pci-imx6.c    | 16 ++++++--
 drivers/pci/controller/pcie-apple.c      |  5 ++-
 drivers/xen/grant-dma-ops.c              |  4 +-
 include/linux/of.h                       | 12 +++---
 9 files changed, 76 insertions(+), 50 deletions(-)

diff --git a/drivers/cdx/cdx_msi.c b/drivers/cdx/cdx_msi.c
index 63b3544ec997..03232b5ffbca 100644
--- a/drivers/cdx/cdx_msi.c
+++ b/drivers/cdx/cdx_msi.c
@@ -121,6 +121,7 @@ static int cdx_msi_prepare(struct irq_domain *msi_domain,
 			   struct device *dev,
 			   int nvec, msi_alloc_info_t *info)
 {
+	struct of_phandle_args msi_spec = { .np = NULL };
 	struct cdx_device *cdx_dev = to_cdx_device(dev);
 	struct device *parent = cdx_dev->cdx->dev;
 	struct msi_domain_info *msi_info;
@@ -128,11 +129,13 @@ static int cdx_msi_prepare(struct irq_domain *msi_domain,
 	int ret;
 
 	/* Retrieve device ID from requestor ID using parent device */
-	ret = of_map_msi_id(parent->of_node, cdx_dev->msi_dev_id, NULL, &dev_id);
+	ret = of_map_msi_id(parent->of_node, cdx_dev->msi_dev_id, &msi_spec);
 	if (ret) {
 		dev_err(dev, "of_map_id failed for MSI: %d\n", ret);
 		return ret;
 	}
+	of_node_put(msi_spec.np);
+	dev_id = msi_spec.args[0];
 
 #ifdef GENERIC_MSI_DOMAIN_OPS
 	/* Set the device Id to be passed to the GIC-ITS */
diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
index a511ecf21fcd..d255d0f58e8c 100644
--- a/drivers/iommu/of_iommu.c
+++ b/drivers/iommu/of_iommu.c
@@ -48,7 +48,7 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
 	struct of_phandle_args iommu_spec = { .args_count = 1 };
 	int err;
 
-	err = of_map_iommu_id(master_np, *id, &iommu_spec.np, iommu_spec.args);
+	err = of_map_iommu_id(master_np, *id, &iommu_spec);
 	if (err)
 		return err;
 
diff --git a/drivers/irqchip/irq-gic-its-msi-parent.c b/drivers/irqchip/irq-gic-its-msi-parent.c
index b63343a227a9..729fa2f9f758 100644
--- a/drivers/irqchip/irq-gic-its-msi-parent.c
+++ b/drivers/irqchip/irq-gic-its-msi-parent.c
@@ -152,6 +152,8 @@ static int its_v5_pci_msi_prepare(struct irq_domain *domain, struct device *dev,
 static int of_pmsi_get_msi_info(struct irq_domain *domain, struct device *dev, u32 *dev_id,
 				phys_addr_t *pa)
 {
+	struct device_node *msi_ctrl __free(device_node) = NULL;
+	struct of_phandle_args msi_spec = { .np = NULL };
 	struct of_phandle_iterator it;
 	int ret;
 
@@ -178,9 +180,12 @@ static int of_pmsi_get_msi_info(struct irq_domain *domain, struct device *dev, u
 		}
 	}
 
-	struct device_node *msi_ctrl __free(device_node) = NULL;
-
-	return of_map_msi_id(dev->of_node, dev->id, &msi_ctrl, dev_id);
+	ret = of_map_msi_id(dev->of_node, dev->id, &msi_spec);
+	if (!ret) {
+		msi_ctrl = msi_spec.np;
+		*dev_id = msi_spec.args[0];
+	}
+	return ret;
 }
 
 static int its_pmsi_prepare(struct irq_domain *domain, struct device *dev,
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 959305a84748..b6e07c5fe715 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -2102,36 +2102,37 @@ int of_find_last_cache_level(unsigned int cpu)
  * @id: device ID to map.
  * @map_name: property name of the map to use.
  * @map_mask_name: optional property name of the mask to use.
- * @target: optional pointer to a target device node.
- * @id_out: optional pointer to receive the translated ID.
+ * @arg: pointer to a &struct of_phandle_args. On input, @arg->np may be
+ *	set to a target device node to match, or NULL to match any. On
+ *	success, @arg->np will be set to the matched target node (with a
+ *	reference held) and @arg->args[0] will contain the translated ID.
  *
  * Given a device ID, look up the appropriate implementation-defined
  * platform ID and/or the target device which receives transactions on that
- * ID, as per the "iommu-map" and "msi-map" bindings. Either of @target or
- * @id_out may be NULL if only the other is required. If @target points to
- * a non-NULL device node pointer, only entries targeting that node will be
- * matched; if it points to a NULL value, it will receive the device node of
- * the first matching target phandle, with a reference held.
+ * ID, as per the "iommu-map" and "msi-map" bindings. If @arg->np points to
+ * a non-NULL device node, only entries targeting that node will be matched;
+ * if it is NULL, it will receive the device node of the first matching
+ * target phandle, with a reference held.
  *
  * Return: 0 on success or a standard error code on failure.
  */
 int of_map_id(const struct device_node *np, u32 id,
 	       const char *map_name, const char *map_mask_name,
-	       struct device_node **target, u32 *id_out)
+	       struct of_phandle_args *arg)
 {
 	u32 map_mask, masked_id;
 	int map_len;
 	const __be32 *map = NULL;
 
-	if (!np || !map_name || (!target && !id_out))
+	if (!np || !map_name || !arg)
 		return -EINVAL;
 
 	map = of_get_property(np, map_name, &map_len);
 	if (!map) {
-		if (target)
+		if (arg->np)
 			return -ENODEV;
 		/* Otherwise, no map implies no translation */
-		*id_out = id;
+		arg->args[0] = id;
 		return 0;
 	}
 
@@ -2173,18 +2174,15 @@ int of_map_id(const struct device_node *np, u32 id,
 		if (!phandle_node)
 			return -ENODEV;
 
-		if (target) {
-			if (*target)
-				of_node_put(phandle_node);
-			else
-				*target = phandle_node;
+		if (arg->np)
+			of_node_put(phandle_node);
+		else
+			arg->np = phandle_node;
 
-			if (*target != phandle_node)
-				continue;
-		}
+		if (arg->np != phandle_node)
+			continue;
 
-		if (id_out)
-			*id_out = masked_id - id_base + out_base;
+		arg->args[0] = masked_id - id_base + out_base;
 
 		pr_debug("%pOF: %s, using mask %08x, id-base: %08x, out-base: %08x, length: %08x, id: %08x -> %08x\n",
 			np, map_name, map_mask, id_base, out_base,
@@ -2193,11 +2191,10 @@ int of_map_id(const struct device_node *np, u32 id,
 	}
 
 	pr_info("%pOF: no %s translation for id 0x%x on %pOF\n", np, map_name,
-		id, target && *target ? *target : NULL);
+		id, arg->np);
 
 	/* Bypasses translation */
-	if (id_out)
-		*id_out = id;
+	arg->args[0] = id;
 	return 0;
 }
 EXPORT_SYMBOL_GPL(of_map_id);
@@ -2206,17 +2203,18 @@ EXPORT_SYMBOL_GPL(of_map_id);
  * of_map_iommu_id - Translate an ID using "iommu-map" bindings.
  * @np: root complex device node.
  * @id: device ID to map.
- * @target: optional pointer to a target device node.
- * @id_out: optional pointer to receive the translated ID.
+ * @arg: pointer to a &struct of_phandle_args for the result. On success,
+ *	@arg->np holds a reference to the target node that the caller must
+ *	release with of_node_put().
  *
  * Convenience wrapper around of_map_id() using "iommu-map" and "iommu-map-mask".
  *
  * Return: 0 on success or a standard error code on failure.
  */
 int of_map_iommu_id(const struct device_node *np, u32 id,
-		    struct device_node **target, u32 *id_out)
+		    struct of_phandle_args *arg)
 {
-	return of_map_id(np, id, "iommu-map", "iommu-map-mask", target, id_out);
+	return of_map_id(np, id, "iommu-map", "iommu-map-mask", arg);
 }
 EXPORT_SYMBOL_GPL(of_map_iommu_id);
 
@@ -2224,16 +2222,17 @@ EXPORT_SYMBOL_GPL(of_map_iommu_id);
  * of_map_msi_id - Translate an ID using "msi-map" bindings.
  * @np: root complex device node.
  * @id: device ID to map.
- * @target: optional pointer to a target device node.
- * @id_out: optional pointer to receive the translated ID.
+ * @arg: pointer to a &struct of_phandle_args for the result. On success,
+ *	@arg->np holds a reference to the target node that the caller must
+ *	release with of_node_put().
  *
  * Convenience wrapper around of_map_id() using "msi-map" and "msi-map-mask".
  *
  * Return: 0 on success or a standard error code on failure.
  */
 int of_map_msi_id(const struct device_node *np, u32 id,
-		  struct device_node **target, u32 *id_out)
+		  struct of_phandle_args *arg)
 {
-	return of_map_id(np, id, "msi-map", "msi-map-mask", target, id_out);
+	return of_map_id(np, id, "msi-map", "msi-map-mask", arg);
 }
 EXPORT_SYMBOL_GPL(of_map_msi_id);
diff --git a/drivers/of/irq.c b/drivers/of/irq.c
index e37c1b3f8736..18248c3d76ae 100644
--- a/drivers/of/irq.c
+++ b/drivers/of/irq.c
@@ -817,8 +817,14 @@ u32 of_msi_xlate(struct device *dev, struct device_node **msi_np, u32 id_in)
 	 * "msi-map" or an "msi-parent" property.
 	 */
 	for (parent_dev = dev; parent_dev; parent_dev = parent_dev->parent) {
-		if (!of_map_msi_id(parent_dev->of_node, id_in, msi_np, &id_out))
+		struct of_phandle_args msi_spec = { .np = *msi_np };
+
+		if (!of_map_msi_id(parent_dev->of_node, id_in, &msi_spec)) {
+			id_out = msi_spec.args[0];
+			if (!*msi_np && msi_spec.np)
+				*msi_np = msi_spec.np;
 			break;
+		}
 		if (!of_check_msi_parent(parent_dev->of_node, msi_np))
 			break;
 	}
diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
index bff8289f804a..5f8a11774eb5 100644
--- a/drivers/pci/controller/dwc/pci-imx6.c
+++ b/drivers/pci/controller/dwc/pci-imx6.c
@@ -1137,6 +1137,8 @@ static void imx_pcie_remove_lut(struct imx_pcie *imx_pcie, u16 rid)
 
 static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
 {
+	struct of_phandle_args iommu_spec = { .np = NULL };
+	struct of_phandle_args msi_spec = { .np = NULL };
 	struct device *dev = imx_pcie->pci->dev;
 	struct device_node *target;
 	u32 sid_i, sid_m;
@@ -1144,7 +1146,12 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
 	u32 sid = 0;
 
 	target = NULL;
-	err_i = of_map_iommu_id(dev->of_node, rid, &target, &sid_i);
+	err_i = of_map_iommu_id(dev->of_node, rid, &iommu_spec);
+	if (!err_i) {
+		target = iommu_spec.np;
+		sid_i = iommu_spec.args[0];
+	}
+
 	if (target) {
 		of_node_put(target);
 	} else {
@@ -1156,8 +1163,11 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
 		err_i = -EINVAL;
 	}
 
-	target = NULL;
-	err_m = of_map_msi_id(dev->of_node, rid, &target, &sid_m);
+	err_m = of_map_msi_id(dev->of_node, rid, &msi_spec);
+	if (!err_m) {
+		target = msi_spec.np;
+		sid_m = msi_spec.args[0];
+	}
 
 	/*
 	 *   err_m      target
diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
index a0937b7b3c4d..2e86f8fd300b 100644
--- a/drivers/pci/controller/pcie-apple.c
+++ b/drivers/pci/controller/pcie-apple.c
@@ -755,6 +755,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
 {
 	u32 sid, rid = pci_dev_id(pdev);
 	struct apple_pcie_port *port;
+	struct of_phandle_args iommu_spec = { .np = NULL };
 	int idx, err;
 
 	port = apple_pcie_get_port(pdev);
@@ -764,10 +765,12 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
 	dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
 		pci_name(pdev->bus->self), port->idx);
 
-	err = of_map_iommu_id(port->pcie->dev->of_node, rid, NULL, &sid);
+	err = of_map_iommu_id(port->pcie->dev->of_node, rid, &iommu_spec);
 	if (err)
 		return err;
 
+	of_node_put(iommu_spec.np);
+	sid = iommu_spec.args[0];
 	mutex_lock(&port->pcie->lock);
 
 	idx = bitmap_find_free_region(port->sid_map, port->sid_map_sz, 0);
diff --git a/drivers/xen/grant-dma-ops.c b/drivers/xen/grant-dma-ops.c
index 1b7696b2d762..36547d7cf1d6 100644
--- a/drivers/xen/grant-dma-ops.c
+++ b/drivers/xen/grant-dma-ops.c
@@ -319,13 +319,13 @@ static int xen_dt_grant_init_backend_domid(struct device *dev,
 					   struct device_node *np,
 					   domid_t *backend_domid)
 {
-	struct of_phandle_args iommu_spec = { .args_count = 1 };
+	struct of_phandle_args iommu_spec = { .np = NULL };
 
 	if (dev_is_pci(dev)) {
 		struct pci_dev *pdev = to_pci_dev(dev);
 		u32 rid = PCI_DEVID(pdev->bus->number, pdev->devfn);
 
-		if (of_map_iommu_id(np, rid, &iommu_spec.np, iommu_spec.args)) {
+		if (of_map_iommu_id(np, rid, &iommu_spec)) {
 			dev_dbg(dev, "Cannot translate ID\n");
 			return -ESRCH;
 		}
diff --git a/include/linux/of.h b/include/linux/of.h
index fe841f3cc747..f50d7a3a3b28 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -463,13 +463,13 @@ bool of_console_check(const struct device_node *dn, char *name, int index);
 
 int of_map_id(const struct device_node *np, u32 id,
 	       const char *map_name, const char *map_mask_name,
-	       struct device_node **target, u32 *id_out);
+	       struct of_phandle_args *arg);
 
 int of_map_iommu_id(const struct device_node *np, u32 id,
-		    struct device_node **target, u32 *id_out);
+		    struct of_phandle_args *arg);
 
 int of_map_msi_id(const struct device_node *np, u32 id,
-		  struct device_node **target, u32 *id_out);
+		  struct of_phandle_args *arg);
 
 phys_addr_t of_dma_get_max_cpu_address(struct device_node *np);
 
@@ -935,19 +935,19 @@ static inline void of_property_clear_flag(struct property *p, unsigned long flag
 
 static inline int of_map_id(const struct device_node *np, u32 id,
 			     const char *map_name, const char *map_mask_name,
-			     struct device_node **target, u32 *id_out)
+			     struct of_phandle_args *arg)
 {
 	return -EINVAL;
 }
 
 static inline int of_map_iommu_id(const struct device_node *np, u32 id,
-				  struct device_node **target, u32 *id_out)
+				  struct of_phandle_args *arg)
 {
 	return -EINVAL;
 }
 
 static inline int of_map_msi_id(const struct device_node *np, u32 id,
-				struct device_node **target, u32 *id_out)
+				struct of_phandle_args *arg)
 {
 	return -EINVAL;
 }

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Mar 08 19:34:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 08 Mar 2026 19:34:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249008.1546565 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzJtn-0004Es-7J; Sun, 08 Mar 2026 19:34:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249008.1546565; Sun, 08 Mar 2026 19:34:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzJtn-0004El-4M; Sun, 08 Mar 2026 19:34:47 +0000
Received: by outflank-mailman (input) for mailman id 1249008;
 Sun, 08 Mar 2026 19:34: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=VeQK=BI=oss.qualcomm.com=vijayanand.jitta@srs-se1.protection.inumbo.net>)
 id 1vzJtl-0003hg-Gz
 for xen-devel@lists.xenproject.org; Sun, 08 Mar 2026 19:34:45 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dae3d967-1b25-11f1-9ccf-f158ae23cfc8;
 Sun, 08 Mar 2026 20:34:43 +0100 (CET)
Received: from pps.filterd (m0279872.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 6286exNW1519313
 for <xen-devel@lists.xenproject.org>; Sun, 8 Mar 2026 19:34:42 GMT
Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com
 [209.85.210.198])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4crcd8axqv-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Sun, 08 Mar 2026 19:34:41 +0000 (GMT)
Received: by mail-pf1-f198.google.com with SMTP id
 d2e1a72fcca58-82983c9d78aso10365773b3a.2
 for <xen-devel@lists.xenproject.org>; Sun, 08 Mar 2026 12:34:41 -0700 (PDT)
Received: from hu-vjitta-hyd.qualcomm.com ([202.46.23.25])
 by smtp.gmail.com with ESMTPSA id
 d2e1a72fcca58-829a4676593sm7818909b3a.28.2026.03.08.12.34.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 08 Mar 2026 12:34:39 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dae3d967-1b25-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	pdnRU8Mu/D+Ngm/KfTZjC7mxZZbYL4Ii8ecgzHXdwuA=; b=Qn5FjJJTz3lhNSgk
	g+Xt+RefjAhFAGk8IMl3Nz87OMmFmqqVgGIlvCDYIYsIZ1R9wj2wP+84HY2GztvF
	F/FJSoE9BKC5iNrQxU2X1FnZiI9puYMJpYY2zNAl78Af4GzVoOgCfHARbzlpOL4Y
	tgqBoXCfvtz5rONb4E/I7j3AGf4MOeDtq/csOfsp4e3+F5hUoS5c14HkA0wJNNXK
	XL7vSzDw2uA2UJ6HwJDSJj9mYD3ZllkH8AmHZ7XJK5C+z9R9z7qeOSuv/QiNZisk
	i6ko4i8XVHP3aWdp5x21ymdYEDxk5bJUWXcNsLn/QWRrGC0NptqHrLYvkcd0LZrQ
	D1wT+w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1772998481; x=1773603281; darn=lists.xenproject.org;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:from:to:cc:subject:date:message-id
         :reply-to;
        bh=pdnRU8Mu/D+Ngm/KfTZjC7mxZZbYL4Ii8ecgzHXdwuA=;
        b=Kjgo3/TR3x11TOtVydQkDVR9BrXB5JcUr2w+HSy8uyJ+I6/sVTYEClxOeWe9evdZoH
         X1Rh3YDFzZGxGLATgJmS62xRsLsY/6SVhF/jFVsjS3eatH2C9R7bQ0YrFk2oiZ8/PDxr
         M0hznNaXw5/whVyS8oxKgDlzTxWwydBtbfBET4hSqrt7QA2c84JvzGl4hy8HwsWnSPLC
         XrWUiPYhjlZCSDSsSW10SM9wUviFb3So/VAnS64uq0wn+O9ysDcKR15NJkJTF0sdpiF8
         dsfDp3UDDgPNH3NrEiDGndVFcGi9ozZU9PWlMqE9SnfUev0b5VvKn+/sakKU8lfNYncc
         UW5w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772998481; x=1773603281;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=pdnRU8Mu/D+Ngm/KfTZjC7mxZZbYL4Ii8ecgzHXdwuA=;
        b=xRoSy9F6HEIdboqdymB1c+oVxhh1v+B40T1fAbEdzi0zE7t5PVrFIvfaFsDlCMrWdd
         5LrGj9QBaP2GV+bMddt8BEc46ECV+uEi7FzNwvoE+WRkQT+Ek5UliKars/W6dFzpbi4J
         34TO1FD+Qf46niBbMPcUgf4Ad+kIPMopcuiVkWYFuspfKFYdIKDySdqSC35AQWJG5fbk
         XsAzHBk7c79GZdiilL4twimpPtN64ANc/GFhxsCe9X73YgqOw6p5WVCeo7GBAxSzwcve
         PAUhkDUHTcfE+EjnAujL0n7r9K7IUzNq3Jv+LBSzcQlh5Uj8d9jVIe//WhPTbQeIrOiJ
         SCig==
X-Forwarded-Encrypted: i=1; AJvYcCXG7a6PBMNAK1MSLwzyTShkde6+SGStDZWcP6UrQc82MOAFMgy26SAYLAFqVqqsnWreqbhGTRQWSG4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzt6BPKjajRPkLZJ4Xrr3/nrFj5B8QXCuIzN9BNTUTPzIFo8cCP
	8DejTGGg7Y6gGLX/kMyaJ8/NB+KbWQFgJt+9rbLY0QFPavhwGjTMAT7MfAR67kIRfk5U6FGQUcE
	vTCWjAwSwDCrJHj0d1eJGpNCZ9qAQgd2zl2VSDSYGWS/oDMdBPNLJyxNi7brjrkQjSJ903w==
X-Gm-Gg: ATEYQzwx/pAPzk0cqsufRPcCqvCqTKiFyYlM+xPAfgIvF87h/UPD3NnHUoE1Kl0kq8Q
	7+cdj4nxtb6H2YMszTweYtXbsQv4nkzSPpI8NhAWosZrdWm2P2uizfjkwa7E+kq9ATmXPdkOGIM
	8Sf4B1MOFCYwAatbSe6Rbc2WMaI0T5+bNdoyOKVy4j3N7yWieBbIdKhFEWNA4Xm4oVlJTYpxL8l
	KkxtZ7IA/2OQsBsoB/K32n7+EcwVlt8AN1TV+pycMA2AZuKn7Vib/k7gpbTLMqqTj/lWw6z6+za
	7LEm+oAHG2ko/qTndbo+dKn1gVp/dOXzw8yp5U++PHeHvV8oaHmPu2bAwmKLtfUk/AkOm2zjh/R
	pjiKE1nCLTczaxHZ4Kg0zLwcJkzt0WIn3VkabJZxOhL8MQgfw3OiN3KR6
X-Received: by 2002:a05:6a00:7483:b0:829:710d:a46b with SMTP id d2e1a72fcca58-829a2f7b48emr7158305b3a.41.1772998480883;
        Sun, 08 Mar 2026 12:34:40 -0700 (PDT)
X-Received: by 2002:a05:6a00:7483:b0:829:710d:a46b with SMTP id d2e1a72fcca58-829a2f7b48emr7158286b3a.41.1772998480388;
        Sun, 08 Mar 2026 12:34:40 -0700 (PDT)
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Date: Mon, 09 Mar 2026 01:03:39 +0530
Subject: [PATCH v10 3/3] of: Respect #{iommu,msi}-cells in maps
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260309-parse_iommu_cells-v10-3-c62fcaa5a1d8@oss.qualcomm.com>
References: <20260309-parse_iommu_cells-v10-0-c62fcaa5a1d8@oss.qualcomm.com>
In-Reply-To: <20260309-parse_iommu_cells-v10-0-c62fcaa5a1d8@oss.qualcomm.com>
To: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
X-Mailer: b4 0.12.3
X-Developer-Signature: v=1; a=ed25519-sha256; t=1772998436; l=10158;
 i=vijayanand.jitta@oss.qualcomm.com; s=20260301; h=from:subject:message-id;
 bh=Y3y9pnEGS/egnRkn7PRxW9/ZOSrIlXJJq3NDQFYUkD4=;
 b=JZchFxd3ySsovmwflK1CY4cBpmFZDZuap26lOuWwIhv+ZaGNWH/gkD4Mmfup1E8EbC1OrXdH4
 VkkiDPdY1+8At/dTkuN9k5uBn4Rr7Byfuai9q397xPmXXKr22BEBwBT
X-Developer-Key: i=vijayanand.jitta@oss.qualcomm.com; a=ed25519;
 pk=Lpi7Cs3wHe8KZtqvyci7FTOLzsKpEHKGCaPNZw+1zRI=
X-Proofpoint-ORIG-GUID: rAqveGw91SEypSAsSTClqs5-1YdkwrYc
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA4MDE4MSBTYWx0ZWRfX4U33t7S8rava
 xhtu05KdxPmtfwh9t2JOMvSeEjT31Nsrv8pcnck49unloq10KcHvAtlcYuH9vQFdflV8KoFJ0+V
 F3iwuDZxMtJ3KU22IZGigrQ1j26XgiqkdBhT0CumV0pZB7gRFGFbCGVxUgRNxCnUPzT6aTGMB9z
 HEcEPdzYq2KjTjquOdiJwDl8Fm8+P+G5z+h2AVadwi+J8GzWbL5ERXNkt+a01sIdQT92x54aKBq
 vmhBdCY7PoV/OklhXLf1HkNB7SZp70UJ29jpyL7TgFTAF99Mzz/eXsd3qB0SBSC7w1jx3y5s1HB
 Bj5eyQirpCQxsfhfncvxyv8UcgXHmHCRAV1GgXq5ZKbPYPfvrgSAyszCTmdX+zhePbFJTX3Rb1T
 W5VZQvUN5+T3DOLlM0rRoIPTXmKAsA61oWcBjWycido+8nV3nbFmN4gdr1JlvoWDJ83gczsSa2v
 5sQ1JMumDw8tFEahNHw==
X-Authority-Analysis: v=2.4 cv=O/w0fR9W c=1 sm=1 tr=0 ts=69adcf51 cx=c_pps
 a=m5Vt/hrsBiPMCU0y4gIsQw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22
 a=7CQSdrXTAAAA:8 a=EUspDBNiAAAA:8 a=wJGdY9mNwEi-N7fqGJcA:9 a=QEXdDO2ut3YA:10
 a=IoOABgeZipijB_acs4fv:22 a=a-qgeE7W1pNrGK8U0ZQC:22
X-Proofpoint-GUID: rAqveGw91SEypSAsSTClqs5-1YdkwrYc
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-08_05,2026-03-06_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 malwarescore=0 clxscore=1015 spamscore=0 phishscore=0 priorityscore=1501
 lowpriorityscore=0 adultscore=0 impostorscore=0 bulkscore=0 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603080181

From: Robin Murphy <robin.murphy@arm.com>

So far our parsing of {iommu,msi}-map properites has always blindly
assumed that the output specifiers will always have exactly 1 cell.
This typically does happen to be the case, but is not actually enforced
(and the PCI msi-map binding even explicitly states support for 0 or 1
cells) - as a result we've now ended up with dodgy DTs out in the field
which depend on this behaviour to map a 1-cell specifier for a 2-cell
provider, despite that being bogus per the bindings themselves.

Since there is some potential use in being able to map at least single
input IDs to multi-cell output specifiers (and properly support 0-cell
outputs as well), add support for properly parsing and using the target
nodes' #cells values, albeit with the unfortunate complication of still
having to work around expectations of the old behaviour too.

Since there are multi-cell output specifiers, the callers of of_map_id()
may need to get the exact cell output value for further processing.
Added support for that part --charan

Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
---
 drivers/iommu/of_iommu.c |   2 +-
 drivers/of/base.c        | 129 ++++++++++++++++++++++++++++++++++++++---------
 include/linux/of.h       |   6 ++-
 3 files changed, 109 insertions(+), 28 deletions(-)

diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
index d255d0f58e8c..a18bb60f6f3d 100644
--- a/drivers/iommu/of_iommu.c
+++ b/drivers/iommu/of_iommu.c
@@ -45,7 +45,7 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
 				     struct device *dev,
 				     const u32 *id)
 {
-	struct of_phandle_args iommu_spec = { .args_count = 1 };
+	struct of_phandle_args iommu_spec = {};
 	int err;
 
 	err = of_map_iommu_id(master_np, *id, &iommu_spec);
diff --git a/drivers/of/base.c b/drivers/of/base.c
index b6e07c5fe715..9c44eb6d445d 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -2096,16 +2096,46 @@ int of_find_last_cache_level(unsigned int cpu)
 	return cache_level;
 }
 
+/*
+ * Some DTs have an iommu-map targeting a 2-cell IOMMU node while
+ * specifying only 1 cell. Fortunately they all consist of value '1'
+ * as the 2nd cell entry with the same target, so check for that pattern.
+ *
+ * Example:
+ *	IOMMU node:
+ *		#iommu-cells = <2>;
+ *
+ *	Device node:
+ *		iommu-map = <0x0000 &smmu 0x0000 0x1>,
+ *			    <0x0100 &smmu 0x0100 0x1>;
+ */
+static bool of_check_bad_map(const __be32 *map, int len)
+{
+	__be32 phandle = map[1];
+
+	if (len % 4)
+		return false;
+	for (int i = 0; i < len; i += 4) {
+		if (map[i + 1] != phandle || map[i + 3] != cpu_to_be32(1))
+			return false;
+	}
+	return true;
+}
+
 /**
  * of_map_id - Translate an ID through a downstream mapping.
  * @np: root complex device node.
  * @id: device ID to map.
  * @map_name: property name of the map to use.
+ * @cells_name: property name of target specifier cells.
  * @map_mask_name: optional property name of the mask to use.
  * @arg: pointer to a &struct of_phandle_args. On input, @arg->np may be
  *	set to a target device node to match, or NULL to match any. On
  *	success, @arg->np will be set to the matched target node (with a
- *	reference held) and @arg->args[0] will contain the translated ID.
+ *	reference held), @arg->args_count will be set to the number of
+ *	output specifier cells as defined by @cells_name in the target node,
+ *	and @arg->args[0..args_count-1] will contain the translated output
+ *	specifier values.
  *
  * Given a device ID, look up the appropriate implementation-defined
  * platform ID and/or the target device which receives transactions on that
@@ -2117,17 +2147,19 @@ int of_find_last_cache_level(unsigned int cpu)
  * Return: 0 on success or a standard error code on failure.
  */
 int of_map_id(const struct device_node *np, u32 id,
-	       const char *map_name, const char *map_mask_name,
+	       const char *map_name, const char *cells_name,
+	       const char *map_mask_name,
 	       struct of_phandle_args *arg)
 {
 	u32 map_mask, masked_id;
-	int map_len;
+	int map_bytes, map_len, offset = 0;
+	bool bad_map = false;
 	const __be32 *map = NULL;
 
 	if (!np || !map_name || !arg)
 		return -EINVAL;
 
-	map = of_get_property(np, map_name, &map_len);
+	map = of_get_property(np, map_name, &map_bytes);
 	if (!map) {
 		if (arg->np)
 			return -ENODEV;
@@ -2136,11 +2168,9 @@ int of_map_id(const struct device_node *np, u32 id,
 		return 0;
 	}
 
-	if (!map_len || map_len % (4 * sizeof(*map))) {
-		pr_err("%pOF: Error: Bad %s length: %d\n", np,
-			map_name, map_len);
-		return -EINVAL;
-	}
+	if (map_bytes % sizeof(*map))
+		goto err_map_len;
+	map_len = map_bytes / sizeof(*map);
 
 	/* The default is to select all bits. */
 	map_mask = 0xffffffff;
@@ -2153,27 +2183,69 @@ int of_map_id(const struct device_node *np, u32 id,
 		of_property_read_u32(np, map_mask_name, &map_mask);
 
 	masked_id = map_mask & id;
-	for ( ; map_len > 0; map_len -= 4 * sizeof(*map), map += 4) {
+
+	while (offset < map_len) {
 		struct device_node *phandle_node;
-		u32 id_base = be32_to_cpup(map + 0);
-		u32 phandle = be32_to_cpup(map + 1);
-		u32 out_base = be32_to_cpup(map + 2);
-		u32 id_len = be32_to_cpup(map + 3);
+		u32 id_base, phandle, id_len, id_off, cells = 0;
+		const __be32 *out_base;
+
+		if (map_len - offset < 2)
+			goto err_map_len;
+
+		id_base = be32_to_cpup(map + offset);
 
 		if (id_base & ~map_mask) {
-			pr_err("%pOF: Invalid %s translation - %s-mask (0x%x) ignores id-base (0x%x)\n",
-				np, map_name, map_name,
-				map_mask, id_base);
+			pr_err("%pOF: Invalid %s translation - %s (0x%x) ignores id-base (0x%x)\n",
+			       np, map_name, map_mask_name, map_mask, id_base);
 			return -EFAULT;
 		}
 
-		if (masked_id < id_base || masked_id >= id_base + id_len)
-			continue;
-
+		phandle = be32_to_cpup(map + offset + 1);
 		phandle_node = of_find_node_by_phandle(phandle);
 		if (!phandle_node)
 			return -ENODEV;
 
+		if (!bad_map && of_property_read_u32(phandle_node, cells_name, &cells)) {
+			pr_err("%pOF: missing %s property\n", phandle_node, cells_name);
+			of_node_put(phandle_node);
+			return -EINVAL;
+		}
+
+		if (map_len - offset < 3 + cells) {
+			of_node_put(phandle_node);
+			goto err_map_len;
+		}
+
+		if (offset == 0 && cells == 2) {
+			bad_map = of_check_bad_map(map, map_len);
+			if (bad_map) {
+				pr_warn_once("%pOF: %s mismatches target %s, assuming extra cell of 0\n",
+					     np, map_name, cells_name);
+				cells = 1;
+			}
+		}
+
+		out_base = map + offset + 2;
+		offset += 3 + cells;
+
+		id_len = be32_to_cpup(map + offset - 1);
+		if (id_len > 1 && cells > 1) {
+			/*
+			 * With 1 output cell we reasonably assume its value
+			 * has a linear relationship to the input; with more,
+			 * we'd need help from the provider to know what to do.
+			 */
+			pr_err("%pOF: Unsupported %s - cannot handle %d-ID range with %d-cell output specifier\n",
+			       np, map_name, id_len, cells);
+			of_node_put(phandle_node);
+			return -EINVAL;
+		}
+		id_off = masked_id - id_base;
+		if (masked_id < id_base || id_off >= id_len) {
+			of_node_put(phandle_node);
+			continue;
+		}
+
 		if (arg->np)
 			of_node_put(phandle_node);
 		else
@@ -2182,11 +2254,14 @@ int of_map_id(const struct device_node *np, u32 id,
 		if (arg->np != phandle_node)
 			continue;
 
-		arg->args[0] = masked_id - id_base + out_base;
+		for (int i = 0; i < cells; i++)
+			arg->args[i] = (id_off + be32_to_cpu(out_base[i]));
+
+		arg->args_count = cells;
 
 		pr_debug("%pOF: %s, using mask %08x, id-base: %08x, out-base: %08x, length: %08x, id: %08x -> %08x\n",
-			np, map_name, map_mask, id_base, out_base,
-			id_len, id, masked_id - id_base + out_base);
+			np, map_name, map_mask, id_base, be32_to_cpup(out_base),
+			id_len, id, id_off + be32_to_cpup(out_base));
 		return 0;
 	}
 
@@ -2196,6 +2271,10 @@ int of_map_id(const struct device_node *np, u32 id,
 	/* Bypasses translation */
 	arg->args[0] = id;
 	return 0;
+
+err_map_len:
+	pr_err("%pOF: Error: Bad %s length: %d\n", np, map_name, map_bytes);
+	return -EINVAL;
 }
 EXPORT_SYMBOL_GPL(of_map_id);
 
@@ -2214,7 +2293,7 @@ EXPORT_SYMBOL_GPL(of_map_id);
 int of_map_iommu_id(const struct device_node *np, u32 id,
 		    struct of_phandle_args *arg)
 {
-	return of_map_id(np, id, "iommu-map", "iommu-map-mask", arg);
+	return of_map_id(np, id, "iommu-map", "#iommu-cells", "iommu-map-mask", arg);
 }
 EXPORT_SYMBOL_GPL(of_map_iommu_id);
 
@@ -2233,6 +2312,6 @@ EXPORT_SYMBOL_GPL(of_map_iommu_id);
 int of_map_msi_id(const struct device_node *np, u32 id,
 		  struct of_phandle_args *arg)
 {
-	return of_map_id(np, id, "msi-map", "msi-map-mask", arg);
+	return of_map_id(np, id, "msi-map", "#msi-cells", "msi-map-mask", arg);
 }
 EXPORT_SYMBOL_GPL(of_map_msi_id);
diff --git a/include/linux/of.h b/include/linux/of.h
index f50d7a3a3b28..953f2dbe0e86 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -462,7 +462,8 @@ const char *of_prop_next_string(const struct property *prop, const char *cur);
 bool of_console_check(const struct device_node *dn, char *name, int index);
 
 int of_map_id(const struct device_node *np, u32 id,
-	       const char *map_name, const char *map_mask_name,
+	       const char *map_name, const char *cells_name,
+	       const char *map_mask_name,
 	       struct of_phandle_args *arg);
 
 int of_map_iommu_id(const struct device_node *np, u32 id,
@@ -934,7 +935,8 @@ static inline void of_property_clear_flag(struct property *p, unsigned long flag
 }
 
 static inline int of_map_id(const struct device_node *np, u32 id,
-			     const char *map_name, const char *map_mask_name,
+			     const char *map_name, const char *cells_name,
+			     const char *map_mask_name,
 			     struct of_phandle_args *arg)
 {
 	return -EINVAL;

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 06:44:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 06:44:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249072.1546584 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzUMB-0005Xc-4h; Mon, 09 Mar 2026 06:44:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249072.1546584; Mon, 09 Mar 2026 06: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 1vzUMB-0005XV-0x; Mon, 09 Mar 2026 06:44:47 +0000
Received: by outflank-mailman (input) for mailman id 1249072;
 Mon, 09 Mar 2026 06:44: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=UF23=BJ=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1vzUM9-0005KI-60
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 06:44:45 +0000
Received: from mail-vk1-xa2e.google.com (mail-vk1-xa2e.google.com
 [2607:f8b0:4864:20::a2e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 747b748a-1b83-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 07:44:44 +0100 (CET)
Received: by mail-vk1-xa2e.google.com with SMTP id
 71dfb90a1353d-56aff27dfebso2857451e0c.1
 for <xen-devel@lists.xenproject.org>; Sun, 08 Mar 2026 23:44:44 -0700 (PDT)
Received: from gmail.com (ip190-5-140-138.intercom.com.sv. [190.5.140.138])
 by smtp.gmail.com with ESMTPSA id
 71dfb90a1353d-56b0f889ed2sm7456162e0c.13.2026.03.08.23.44.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 08 Mar 2026 23:44:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 747b748a-1b83-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773038683; x=1773643483; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mAku/l+conV0dggG+e6fwfk6f4KYUT5yoO6o2dEMQkk=;
        b=ifaCFTUoh0bWUgGGEo59P3yNBaR0u2d9CU1x9N8zlxiBFQAyfvwmi985O6VHwJb32q
         8yxh4chSBmhgGbgGwi5GnGtI8LeDHn99VVHsUX0/jmsgPXmlKTF32OnQL2xh58G0JREX
         xYBdp4ezxsHeipxqB8usIQMK56YtoQFqTLFufREAD7Ew3mCw3qKAzxzQtsvTyxQCNsep
         NcnZ+jFrE6Szq2w4y+yEF0UERAdgCSmus7F2E0j/tGSuAYhBRWJ36jdhdqG9IJq2xSSO
         YNsfDQMUnhNUqMga14kZ4zYL3502KdiDVsIQcK9UgsKxP5eTfMzL+LiK3TdSOWdoJfZM
         n5IA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773038683; x=1773643483;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=mAku/l+conV0dggG+e6fwfk6f4KYUT5yoO6o2dEMQkk=;
        b=eQqAZ+KiuTwY1uur9OqXH3uF+KBREmOTxjdgKgyxHtS6YcndQHEteFXZ8zGq+SBxRZ
         0/7U9UaFYmQEyJeLziKP+ihQA03pC7fsDMJ1zjTSHujVYzacnTtL4beqmFTkBE79xniz
         cuYndfln8znfmGyDLLEBf2DWyAdYOtjw/4NR4E9t96hTF9D9HWtU9AiotsxSY1Qrj8I8
         Yr1rVZe2sBFkjpNJ3OfME14NggB9KlG93+HaewF7J6TW+yensbWkA+t5O0e+2GhzHxx7
         ebBs88vNaw5v6JruJ4y7TFEg9t68oqv4O/7GsRXzxc3WIA5yCgWfaxb3oeuCljTWGUFu
         jRHQ==
X-Forwarded-Encrypted: i=1; AJvYcCWHggVAHUAFGnhGl7LrR2Xy0cciFFG6AQVF41frHPh1TpgwLRkhKPtNRQ9foJeQc7XWY09LmhobwBE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywm4GAErjMy9KNsSMRtdaQeBAG+d7EXeRiwnCC3tNtE5654bDrP
	ra9g5qhDaoOnEs+J3aV8S97lKoJkAUE0HWRvOHRAaBkwuL1ayRl2ykI8
X-Gm-Gg: ATEYQzxBNhLBscHLsZ/G5eeWI9rUoaNVzbVQs+9ZkHOWGG0cfr841DZhZmXZqaznH0x
	LggYIolVBZxO/89DMZMbhmVBeNf7ovWuG4rl81clX9FOPqlOKY+tAIfTYB/WDohKC/VAXI7iqPu
	iDQqi9rljxPAQWo11w8ANIqjFtssunB/ihJgmLvmiOqWS0gA5WTIryNIRdceVVO//RREACye1z6
	VPt/OoxHmZE0ASZhaxq+D2ziaAfrrcrZJk/5ohBEELCWEu8ll/gDQ/X6UFZ1jfP03VaJzbVsQbc
	pTY0AL0EdXKuPOQbznFNlzpQOIfiGw3Bv293OJqAWpVZGXoH+PokgEhdliYEfkpADxCH0dkduqr
	41muaSpVb6Tro0Cmmb7VqCyIa2g1sQ1b26lZiizJPunHzFdI3OyhvIIa4ZzBF4UF6qVlle+vfgp
	NsFRL74B3j5sFutLXfePz8HK03SvvH27/wSzXVKg478e/bPrwvpLWmRueGAIe/6hH/t/07
X-Received: by 2002:a05:6122:e46e:b0:567:433b:e903 with SMTP id 71dfb90a1353d-56b07d79ffcmr4232283e0c.6.1773038682868;
        Sun, 08 Mar 2026 23:44:42 -0700 (PDT)
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: qemu-devel@nongnu.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Cc: edgar.iglesias@amd.com,
	xen-devel@lists.xenproject.org
Subject: [PULL v1 1/5] xen: mapcache: Assert mapcache existance
Date: Mon,  9 Mar 2026 07:44:31 +0100
Message-ID: <20260309064436.51860-2-edgar.iglesias@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260309064436.51860-1-edgar.iglesias@gmail.com>
References: <20260309064436.51860-1-edgar.iglesias@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>

Assert that the mapcache was created prior to being used.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 hw/xen/xen-mapcache.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
index 11115f6084..517e5171b7 100644
--- a/hw/xen/xen-mapcache.c
+++ b/hw/xen/xen-mapcache.c
@@ -464,6 +464,8 @@ uint8_t *xen_map_cache(MemoryRegion *mr,
     MapCache *mc = mapcache;
     uint8_t *p;
 
+    assert(mapcache);
+
     if (grant) {
         mc = is_write ? mapcache_grants_rw : mapcache_grants_ro;
     }
@@ -530,6 +532,8 @@ ram_addr_t xen_ram_addr_from_mapcache(void *ptr)
 {
     ram_addr_t addr;
 
+    assert(mapcache);
+
     addr = xen_ram_addr_from_mapcache_single(mapcache, ptr);
     if (addr == RAM_ADDR_INVALID) {
         addr = xen_ram_addr_from_mapcache_single(mapcache_grants_ro, ptr);
@@ -652,6 +656,8 @@ static void xen_invalidate_map_cache_entry_bh(void *opaque)
 
 void coroutine_mixed_fn xen_invalidate_map_cache_entry(uint8_t *buffer)
 {
+    assert(mapcache);
+
     if (qemu_in_coroutine()) {
         XenMapCacheData data = {
             .co = qemu_coroutine_self(),
@@ -709,6 +715,8 @@ static void xen_invalidate_map_cache_single(MapCache *mc)
 
 void xen_invalidate_map_cache(void)
 {
+    assert(mapcache);
+
     /* Flush pending AIO before destroying the mapcache */
     bdrv_drain_all();
 
@@ -776,6 +784,8 @@ uint8_t *xen_replace_cache_entry(hwaddr old_phys_addr,
 {
     uint8_t *p;
 
+    assert(mapcache);
+
     mapcache_lock(mapcache);
     p = xen_replace_cache_entry_unlocked(mapcache, old_phys_addr,
                                          new_phys_addr, size);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 06:45:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 06:45:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249077.1546619 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzUMM-0006XK-85; Mon, 09 Mar 2026 06:44:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249077.1546619; Mon, 09 Mar 2026 06:44:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzUMM-0006X6-39; Mon, 09 Mar 2026 06:44:58 +0000
Received: by outflank-mailman (input) for mailman id 1249077;
 Mon, 09 Mar 2026 06:44: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=UF23=BJ=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1vzUMK-0005KI-Ot
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 06:44:56 +0000
Received: from mail-vk1-xa2a.google.com (mail-vk1-xa2a.google.com
 [2607:f8b0:4864:20::a2a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7bbb3518-1b83-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 07:44:56 +0100 (CET)
Received: by mail-vk1-xa2a.google.com with SMTP id
 71dfb90a1353d-56b17c0223bso628832e0c.1
 for <xen-devel@lists.xenproject.org>; Sun, 08 Mar 2026 23:44:56 -0700 (PDT)
Received: from gmail.com (ip190-5-140-138.intercom.com.sv. [190.5.140.138])
 by smtp.gmail.com with ESMTPSA id
 71dfb90a1353d-56b0f889ed2sm7456276e0c.13.2026.03.08.23.44.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 08 Mar 2026 23:44:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7bbb3518-1b83-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773038695; x=1773643495; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OcNC0yip2XrDmFo80yDxRtX2oleYkrUeo7InlE7zv9I=;
        b=LOU2YxLCDKLnQ2zAkCvHD/pWl1L/yiN5wh/KZrOhuosRRV6Dlk06GcFyFuKxi9uY4G
         BtEd4+CCF/iCRgqR6//5255EdBWolK3+U+JefJ2xd+z1u5qAlt7kBE4BLTxzNWaXf1UR
         +aCVzd7YKJTb4dxSG0ELron77q58brXjkThM1/c6z1p7zKvlIGbjI1LP/cF8IwuZ8u1Y
         VNiFzwuYLY/MBLMjDi3SKMBoqMj17EsTVr2grb/v02t0yHOItL1NmHwHgu9tzngk/mOj
         ZaQ1mcxFxJ64rNRRPteW6vNs9igfsagsYHr6hXYhb+TEc8l6wggexPJwLzGDz04UhXAm
         LhHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773038695; x=1773643495;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=OcNC0yip2XrDmFo80yDxRtX2oleYkrUeo7InlE7zv9I=;
        b=lFycrzStSpHtu6QESel7ijcs69+6UobIFBI9FRRMrGDKIkO/2tafy/e/QqPmd4yOEA
         2KAV8okzNuZkz01SnYIdEe2xOENADMcy2EBaSIc12WSsbz5NR8HzS1Y2mrDCGnjoeNht
         0FAw3RSVenQd3gGj+HveYxM9shNDZ974bJn5W4So+aqYQ1ctntFVYG0bZEHeckhbA8aM
         TkybhhOUOn2EaHTMvt9w1kh78RVh1BRTx0PrS+OLgqhFvnNEnOmjvVUBSxOUi65FkAZD
         dddyvjNt9NOGt63Xa2PHjJxmDyQUHfbLIBmZyWpytnPJdij4E+PpHxMkedMD1eAWBGuF
         AHhA==
X-Forwarded-Encrypted: i=1; AJvYcCV5tqO9ECmP7BG5DFNlRKMP7Ewg9W9nz9kQflEVfNom8DvqjPFtDjW7sb8NkYg7ng6y7saOzbamtX0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz+GwncYEgp9VPlIxwkm10wTTP8Nz0Zn9RVaUF0sBDGje4lzcsi
	ZHt37xGSjicPiff7AjrrmKD8qJcDMyVwjNPWSxe+UOzbAQCk9cGiQtnhv63/akyJ
X-Gm-Gg: ATEYQzxZmSMI3j8BrIi3r6zbT77SuvXDGuF+teBXjYj8Pf/33t9gBQqkiiPUQ5jOuei
	omrGDh/EaLxLc3WkKYI0m8gJhyRi3MSWUIRPyjKuX4uur4zOSObeJbo+fPyGWUSRY72p4pAW9mV
	SX2jKsY/5TSU2br6d+MhjB++IIaWwYwsOlSHaXzfRl3pFzcTE2a2fbXDH+orbZ0PSAzhYCQ+KC5
	BpnYttgCBP2+3B7mk/JpMkzVcLhZzw/eGeBkV01bjLH2wmv4f/r7LwrUzl0JTRbcD4DwmCqMd0b
	ADMg4Z+o03hsUdrs1gWdma/GvWrPrhds0w7UdyAIxalExCKoWPY0R8Akft+Xz8chbIPHmHHsH6M
	rBFyqgnUHQ7Vj7CmZmQiEPnJbqsyOD8F3V8QDhApkhlVpbHL0LF2VTyHb5DJey3G96NVynVNbHO
	5BZnecX9UnvG9afU3pmIv+gq5/0iXxt/s4ixOemZVa2yyz6FUHyxPcdQrLTw==
X-Received: by 2002:a05:6122:1c0a:b0:567:4722:66a3 with SMTP id 71dfb90a1353d-56b07da5535mr3763057e0c.8.1773038695019;
        Sun, 08 Mar 2026 23:44:55 -0700 (PDT)
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: qemu-devel@nongnu.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Cc: edgar.iglesias@amd.com,
	xen-devel@lists.xenproject.org
Subject: [PULL v1 5/5] hw/xen: xenpvh: Add prop to enable/disable the mapcache
Date: Mon,  9 Mar 2026 07:44:35 +0100
Message-ID: <20260309064436.51860-6-edgar.iglesias@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260309064436.51860-1-edgar.iglesias@gmail.com>
References: <20260309064436.51860-1-edgar.iglesias@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>

Add a machine property to enable/disable the mapcache.
Default it to enabled for backwards compatibility.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 hw/xen/xen-pvh-common.c         | 133 +++++++++++++++++++++++++++++---
 include/hw/xen/xen-pvh-common.h |   2 +
 2 files changed, 124 insertions(+), 11 deletions(-)

diff --git a/hw/xen/xen-pvh-common.c b/hw/xen/xen-pvh-common.c
index 4fade017bb..cca37202ff 100644
--- a/hw/xen/xen-pvh-common.c
+++ b/hw/xen/xen-pvh-common.c
@@ -29,6 +29,69 @@ static const MemoryListener xen_memory_listener = {
     .priority = MEMORY_LISTENER_PRIORITY_ACCEL,
 };
 
+/*
+ * Map foreign RAM in bounded chunks so we don't build a PFN array for the
+ * entire guest size (which can be huge for large guests). We reserve a VA
+ * range once and then MAP_FIXED each chunk into place.
+ */
+#define XEN_PVH_MAP_CHUNK_PAGES 65535
+
+static void *xen_map_guest_ram(XenPVHMachineState *s,
+                               uint64_t addr, uint64_t size)
+{
+    size_t total_pages = size >> XC_PAGE_SHIFT;
+    size_t chunk_pages = MIN(XEN_PVH_MAP_CHUNK_PAGES, total_pages);
+    g_autofree xen_pfn_t *pfns = NULL;
+    void *base = NULL;
+    size_t offset;
+
+    if (!total_pages) {
+        goto done;
+    }
+
+    base = mmap(NULL, size, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+    if (base == MAP_FAILED) {
+        base = NULL;
+        goto done;
+    }
+
+    pfns = g_new0(xen_pfn_t, chunk_pages);
+    if (!pfns) {
+        munmap(base, size);
+        base = NULL;
+        goto done;
+    }
+
+    for (offset = 0; offset < total_pages; offset += chunk_pages) {
+        size_t num_pages = MIN(chunk_pages, total_pages - offset);
+        void *mapped;
+        size_t i;
+
+        for (i = 0; i < num_pages; i++) {
+            pfns[i] = (addr >> XC_PAGE_SHIFT) + offset + i;
+        }
+
+        mapped = xenforeignmemory_map2(
+            xen_fmem, xen_domid,
+            (uint8_t *)base + (offset << XC_PAGE_SHIFT),
+            PROT_READ | PROT_WRITE, MAP_FIXED,
+            num_pages, pfns, NULL);
+        if (!mapped) {
+            munmap(base, size);
+            base = NULL;
+            goto done;
+        }
+    }
+done:
+    if (!base) {
+        /* We can't recover from this.  */
+        error_report("FATAL: Failed to foreign-map %" PRIx64 " - %" PRIx64,
+                     addr, addr + size);
+        exit(EXIT_FAILURE);
+    }
+    return base;
+}
+
 static void xen_pvh_init_ram(XenPVHMachineState *s,
                              MemoryRegion *sysmem)
 {
@@ -45,22 +108,42 @@ static void xen_pvh_init_ram(XenPVHMachineState *s,
         block_len = s->cfg.ram_high.base + ram_size[1];
     }
 
-    memory_region_init_ram(&xen_memory, NULL, "xen.ram", block_len,
-                           &error_fatal);
+    if (s->cfg.mapcache) {
+        memory_region_init_ram(&xen_memory, NULL, "xen.ram",
+                               block_len, &error_fatal);
+        memory_region_init_alias(&s->ram.low, NULL, "xen.ram.lo", &xen_memory,
+                                 s->cfg.ram_low.base, ram_size[0]);
+        if (ram_size[1] > 0) {
+            memory_region_init_alias(&s->ram.high, NULL, "xen.ram.hi",
+                                     &xen_memory,
+                                     s->cfg.ram_high.base, ram_size[1]);
+        }
+    } else {
+        void *p;
+
+        p = xen_map_guest_ram(s, s->cfg.ram_low.base, ram_size[0]);
+        memory_region_init_ram_ptr(&s->ram.low, NULL, "xen.ram.lo",
+                                   ram_size[0], p);
+        if (ram_size[1] > 0) {
+            p = xen_map_guest_ram(s, s->cfg.ram_high.base, ram_size[1]);
+            memory_region_init_ram_ptr(&s->ram.high, NULL, "xen.ram.hi",
+                                       ram_size[1], p);
+        }
+    }
 
-    memory_region_init_alias(&s->ram.low, NULL, "xen.ram.lo", &xen_memory,
-                             s->cfg.ram_low.base, ram_size[0]);
+    /* Map them onto QEMU's address-space.  */
     memory_region_add_subregion(sysmem, s->cfg.ram_low.base, &s->ram.low);
     if (ram_size[1] > 0) {
-        memory_region_init_alias(&s->ram.high, NULL, "xen.ram.hi", &xen_memory,
-                                 s->cfg.ram_high.base, ram_size[1]);
         memory_region_add_subregion(sysmem, s->cfg.ram_high.base, &s->ram.high);
     }
 
-    /* Setup support for grants.  */
-    memory_region_init_ram(&xen_grants, NULL, "xen.grants", block_len,
-                           &error_fatal);
-    memory_region_add_subregion(sysmem, XEN_GRANT_ADDR_OFF, &xen_grants);
+    /* Grants are only supported when the mapcache is on.  */
+    if (s->cfg.mapcache) {
+        /* Setup support for grants.  */
+        memory_region_init_ram(&xen_grants, NULL, "xen.grants", block_len,
+                &error_fatal);
+        memory_region_add_subregion(sysmem, XEN_GRANT_ADDR_OFF, &xen_grants);
+    }
 }
 
 static void xen_set_irq(void *opaque, int irq, int level)
@@ -203,7 +286,7 @@ static void xen_pvh_init(MachineState *ms)
     xen_register_ioreq(&s->ioreq, ms->smp.max_cpus,
                        xpc->handle_bufioreq,
                        &xen_memory_listener,
-                       true);
+                       s->cfg.mapcache);
 
     if (s->cfg.virtio_mmio_num) {
         xen_create_virtio_mmio_devices(s);
@@ -285,6 +368,20 @@ XEN_PVH_PROP_MEMMAP(pci_ecam)
 XEN_PVH_PROP_MEMMAP(pci_mmio)
 XEN_PVH_PROP_MEMMAP(pci_mmio_high)
 
+static void xen_pvh_set_mapcache(Object *obj, bool value, Error **errp)
+{
+    XenPVHMachineState *xp = XEN_PVH_MACHINE(obj);
+
+    xp->cfg.mapcache = value;
+}
+
+static bool xen_pvh_get_mapcache(Object *obj, Error **errp)
+{
+    XenPVHMachineState *xp = XEN_PVH_MACHINE(obj);
+
+    return xp->cfg.mapcache;
+}
+
 static void xen_pvh_set_pci_intx_irq_base(Object *obj, Visitor *v,
                                           const char *name, void *opaque,
                                           Error **errp)
@@ -338,6 +435,12 @@ do {                                                                      \
         OC_MEMMAP_PROP_SIZE(c, prop_name, name);                          \
 } while (0)
 
+    object_class_property_add_bool(oc, "mapcache", xen_pvh_get_mapcache,
+                                   xen_pvh_set_mapcache);
+    object_class_property_set_description(oc, "mapcache",
+                                      "Set on/off to enable/disable the "
+                                      "mapcache");
+
     /*
      * We provide memmap properties to allow Xen to move things to other
      * addresses for example when users need to accomodate the memory-map
@@ -377,6 +480,13 @@ do {                                                                      \
 #endif
 }
 
+static void xen_pvh_instance_init(Object *obj)
+{
+    XenPVHMachineState *xp = XEN_PVH_MACHINE(obj);
+
+    xp->cfg.mapcache = true;
+}
+
 static void xen_pvh_class_init(ObjectClass *oc, const void *data)
 {
     MachineClass *mc = MACHINE_CLASS(oc);
@@ -395,6 +505,7 @@ static const TypeInfo xen_pvh_info = {
     .parent = TYPE_MACHINE,
     .abstract = true,
     .instance_size = sizeof(XenPVHMachineState),
+    .instance_init = xen_pvh_instance_init,
     .class_size = sizeof(XenPVHMachineClass),
     .class_init = xen_pvh_class_init,
 };
diff --git a/include/hw/xen/xen-pvh-common.h b/include/hw/xen/xen-pvh-common.h
index 0ed07c5694..0209b798f3 100644
--- a/include/hw/xen/xen-pvh-common.h
+++ b/include/hw/xen/xen-pvh-common.h
@@ -84,6 +84,8 @@ struct XenPVHMachineState {
         /* PCI */
         MemMapEntry pci_ecam, pci_mmio, pci_mmio_high;
         uint32_t pci_intx_irq_base;
+
+        bool mapcache;
     } cfg;
 };
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 06:45:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 06:45:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249074.1546601 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzUMF-0005z4-He; Mon, 09 Mar 2026 06:44:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249074.1546601; Mon, 09 Mar 2026 06:44:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzUMF-0005yt-EL; Mon, 09 Mar 2026 06:44:51 +0000
Received: by outflank-mailman (input) for mailman id 1249074;
 Mon, 09 Mar 2026 06:44: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=UF23=BJ=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1vzUME-0005KI-QK
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 06:44:50 +0000
Received: from mail-vk1-xa36.google.com (mail-vk1-xa36.google.com
 [2607:f8b0:4864:20::a36])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7811c53a-1b83-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 07:44:50 +0100 (CET)
Received: by mail-vk1-xa36.google.com with SMTP id
 71dfb90a1353d-56affe9f4c4so1330781e0c.2
 for <xen-devel@lists.xenproject.org>; Sun, 08 Mar 2026 23:44:50 -0700 (PDT)
Received: from gmail.com (ip190-5-140-138.intercom.com.sv. [190.5.140.138])
 by smtp.gmail.com with ESMTPSA id
 71dfb90a1353d-56b09a2614fsm9529782e0c.7.2026.03.08.23.44.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 08 Mar 2026 23:44:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7811c53a-1b83-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773038689; x=1773643489; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=a2tMEsPmEaiHyXknwk29SjcZVAaayzKi1p57s2lEHB0=;
        b=mW5Pe+2jWCfCSoNVatxLSZaJ4edjNDz9JE8VMdeodAgPrMiiGgrpOGwnVkBHtJfhGn
         salNlGFW3yF8gOnoJG03fXmP/n16y63jTxl5qPeQLYqoVRFlM3TblWZvCCB+owUz563E
         atgBH9HmnhY9WYHvSIwOYQlPSsXCxv1EkOIj/z14laDo2Eh7vtjXECO3hQPe0zgchsK0
         JSyxjMCEU0KPn+dDMhjvqYuywFElO68PmLnkBW6OM073Ab41mwAC+Dq6TTZtKZ5bNbrE
         xuG6vM+rFn3kbnZdxiyofHN80aQPFhTGD7qwjgMCH56CvJJ0p8Adm5tHnizITFmuIA77
         s0uQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773038689; x=1773643489;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=a2tMEsPmEaiHyXknwk29SjcZVAaayzKi1p57s2lEHB0=;
        b=D0pWStxgUu9g+wry4OsbfrP8BCaHNt+oTKB7phyWzKVeMOis0FRCgC/5H1VRiw+mjd
         ZiWlNtleV7xqXINxn3DTf+cjVbDJvVok8IROvG+gH00vRRa0HqX0Fh5hv8H8iX4yY6Rc
         KdRCUG5i2x0UJnlcdRtQnHtztSJjC41F/2EvcsHfAcHFM8wmmTHUk9sUDEL/+672ayNb
         mnJ54OdQKLk5IHr/berroeJDsq9l0pUGJtmJM1Ae/KL7R8wWs3RrIPPgNaHWk8bSIJwd
         rG7MrjTLIMFBbh8pIRTFMHQTxBT3elWQwrYgQCcK9ftL6xrv4Kho8diUEbQ4IvG0eVtr
         +syw==
X-Forwarded-Encrypted: i=1; AJvYcCXq/OYY8LNVgV8zHWXZvU01H0A0b4LvG6Tb56MDHL8bdlGQgpJI6zhjfriO6DRX96RIan3xTXzmcyk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzN8uKH6bQhTNnC1L2+ht0JXPZSm9Kq64WBemGznABQfmVUWgPz
	KgvV5a3DsuVsb7pRamhjNyFIV/XDt7smT/e8hYwRv13eG7pAD7o/Wssd
X-Gm-Gg: ATEYQzzi66KKtoVwWhmVLr9c4hDa7Bw2YM9ccz3VWtKLBcXGgnbHZDCaeBu+2Xr6nhn
	Pw/AD9WK+MFUq+arl2sfPIio3MwYECt8D+zsWNbCM8EvrIMOdmVw4og8YzYGZFGyLAyLaM+0Xp4
	ZUPOFuK8xfQKUjEPj7SWsKGxupqjjoqr+HEYXugYA1pNXdZsY9yfYJFZ+tkVEMO78BmTE+QSyGV
	5Ah638bOSOZh2X0qK07auFzXa4ekw7+NE/77s6MMbWuaf3etwTPlHbtJcBz2e6q0aiNIDUFJqAD
	7d9cF4pzGnDRrTLEDXfowfuWDFGCdDU9wk0Dm5EfaNx1/1ch7CME+kdDwiSYUVPM9IDeCwdkqoV
	GVLXQINlRsJ+d2lxSqBEGb3qXhm088WYRi8mTchBsVRstdM5K4VaH30bYG6tKwYG7GZEaiWE/3y
	AqcZpPRvgvlAiyTmTbPyP3fbU22nfpNnJoFz7ZYeX6Oqt44+uDgjbt1OXISg==
X-Received: by 2002:a05:6122:1350:b0:566:36e7:8934 with SMTP id 71dfb90a1353d-56b07e8b7dcmr3378593e0c.16.1773038688827;
        Sun, 08 Mar 2026 23:44:48 -0700 (PDT)
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: qemu-devel@nongnu.org,
	Paolo Bonzini <pbonzini@redhat.com>,
	Peter Xu <peterx@redhat.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Cc: sstabellini@kernel.org,
	anthony@xenproject.org,
	edgar.iglesias@amd.com,
	xen-devel@lists.xenproject.org
Subject: [PULL v1 3/5] physmem: xen: Conditionalize use of the mapcache
Date: Mon,  9 Mar 2026 07:44:33 +0100
Message-ID: <20260309064436.51860-4-edgar.iglesias@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260309064436.51860-1-edgar.iglesias@gmail.com>
References: <20260309064436.51860-1-edgar.iglesias@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>

Conditionalize use of the mapcache. This is in preparation
to optionally disable the mapcache at runtime.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
Acked-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 system/physmem.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/system/physmem.c b/system/physmem.c
index e5ff26acec..7eecd81877 100644
--- a/system/physmem.c
+++ b/system/physmem.c
@@ -578,7 +578,9 @@ MemoryRegion *flatview_translate(FlatView *fv, hwaddr addr, hwaddr *xlat,
                                     is_write, true, &as, attrs);
     mr = section.mr;
 
-    if (xen_enabled() && memory_access_is_direct(mr, is_write, attrs)) {
+    if (xen_map_cache_enabled() &&
+        memory_access_is_direct(mr, is_write, attrs)) {
+        /* mapcache: Next page may be unmapped or in a different bucket/VA. */
         hwaddr page = ((addr & TARGET_PAGE_MASK) + TARGET_PAGE_SIZE) - addr;
         *plen = MIN(page, *plen);
     }
@@ -2577,7 +2579,7 @@ static void reclaim_ramblock(RAMBlock *block)
 {
     if (block->flags & RAM_PREALLOC) {
         ;
-    } else if (xen_enabled()) {
+    } else if (xen_map_cache_enabled()) {
         xen_invalidate_map_cache_entry(block->host);
 #if !defined(_WIN32) && !defined(EMSCRIPTEN)
     } else if (block->fd >= 0) {
@@ -2736,7 +2738,7 @@ static void *qemu_ram_ptr_length(RAMBlock *block, ram_addr_t addr,
         len = *size;
     }
 
-    if (xen_enabled() && block->host == NULL) {
+    if (xen_map_cache_enabled() && block->host == NULL) {
         /* We need to check if the requested address is in the RAM
          * because we don't want to map the entire memory in QEMU.
          * In that case just map the requested area.
@@ -2785,7 +2787,7 @@ RAMBlock *qemu_ram_block_from_host(void *ptr, bool round_offset,
     RAMBlock *block;
     uint8_t *host = ptr;
 
-    if (xen_enabled()) {
+    if (xen_map_cache_enabled()) {
         ram_addr_t ram_addr;
         RCU_READ_LOCK_GUARD();
         ram_addr = xen_ram_addr_from_mapcache(ptr);
@@ -3787,7 +3789,7 @@ void address_space_unmap(AddressSpace *as, void *buffer, hwaddr len,
         if (is_write) {
             invalidate_and_set_dirty(mr, addr1, access_len);
         }
-        if (xen_enabled()) {
+        if (xen_map_cache_enabled()) {
             xen_invalidate_map_cache_entry(buffer);
         }
         memory_region_unref(mr);
@@ -3898,7 +3900,7 @@ void address_space_cache_destroy(MemoryRegionCache *cache)
         return;
     }
 
-    if (xen_enabled()) {
+    if (xen_map_cache_enabled()) {
         xen_invalidate_map_cache_entry(cache->ptr);
     }
     memory_region_unref(cache->mrs.mr);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 06:45:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 06:45:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249073.1546592 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzUMD-0005kp-A0; Mon, 09 Mar 2026 06:44:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249073.1546592; Mon, 09 Mar 2026 06:44: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 1vzUMD-0005ki-7K; Mon, 09 Mar 2026 06:44:49 +0000
Received: by outflank-mailman (input) for mailman id 1249073;
 Mon, 09 Mar 2026 06:44:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UF23=BJ=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1vzUMB-0005KI-SB
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 06:44:47 +0000
Received: from mail-vk1-xa2a.google.com (mail-vk1-xa2a.google.com
 [2607:f8b0:4864:20::a2a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 764f911f-1b83-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 07:44:47 +0100 (CET)
Received: by mail-vk1-xa2a.google.com with SMTP id
 71dfb90a1353d-56afafef7aeso3209087e0c.3
 for <xen-devel@lists.xenproject.org>; Sun, 08 Mar 2026 23:44:47 -0700 (PDT)
Received: from gmail.com (ip190-5-140-138.intercom.com.sv. [190.5.140.138])
 by smtp.gmail.com with ESMTPSA id
 ada2fe7eead31-5ffe8922cdfsm8333849137.5.2026.03.08.23.44.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 08 Mar 2026 23:44:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 764f911f-1b83-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773038686; x=1773643486; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xgO9zG7fMna9CoPh8ghnxcTLAQlMFEOZkqL0utLfYyE=;
        b=ENpG5V5usi1dQDsSbkonf3DtNFki4VYUf8duZcAKBOGI1W+/hpmf8RIdgKSlgUOc+I
         KHt+8MSMlTqcyJZ203F3eUaJvoJKmilORXBcZC9qHyH7ExDhM0/7k4X/TQextuc52yic
         3geaiCqD6Qh6sObjfdJ7yc4l+Cm2dzcqOJ+BEO2Na9IE5+kuZdAnkH9lXYIgp/j06u9Q
         r+IKlIpOgp1NUGjbuBuyEc9GLUn/TuOSNBpLyGpmsVC1UUWxTal2TbFz8gmvBB6uedY1
         cRPqPrWcSxrjKLSeJESxJuGJIn94BcVY5+tHhOvXjFahBX8oKrUe1Er9KE3RlPicubpb
         Bm5w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773038686; x=1773643486;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=xgO9zG7fMna9CoPh8ghnxcTLAQlMFEOZkqL0utLfYyE=;
        b=jPQKXiqiIjLK6re0Ji0NSMQ2Ev9yuIJPs8K8pV16r+HoMitIOCP5lgGNYOQo1L5yvh
         LwK46gtkBwvQi8siScsng/4/II167B7GbQck22bZ59gYEsGN7ZN45KlYQagiT161hxi7
         jKkZkBBRj9r85f+fXZI1UjclMiyH4vJc0YEd5tvCZpJGle5Vu2kae5wxwkG8cYePhjsd
         r296/z5rPpBUSbiX197iPLnTCrolnl6vKc+AG8KDCUx2m1+Gpglsx4PSwznDrGqLMOh7
         6gA9uV4PWaLbMNYp9EeNkpnZGHKgmfPcXjrg86fRjivIvvAzISeiK9kmuBFwlow9nL88
         WMbQ==
X-Forwarded-Encrypted: i=1; AJvYcCXiok5T6AQCmyMKO1x+yRDeh6IkAK8tgoZx47+Qxg+hTYeMB4J3Gzvsr05IgAg/hzlrObxIStsS8JI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyUeG6ezip/TSSlmgFThW1cNYouyAX5uvExPOJYHU27jrjnZ6C9
	Oo/aplumbPVL/RnMnxjHjuHDD8ZVPJ8ZO1BxrfU+CMjyytb7JUnWmkyU
X-Gm-Gg: ATEYQzzZLQ6kIZsrTf+KlsMgHNzNd/z8mm7INEwOxv832s4dGQZqxlFj/PEQgsbbd+P
	4fXLi3mmqyvXa68OicLK+kalCHmMkArVHjbJNeMM9K+1HuMgdmF4MJMhs4SdN2Of5ekT+VDLryS
	SsHMMhps77A95JilTM0MEgeo96sXWpAJAWAdUEVFDyFkpIa5B29jv0C5ccH8FBYv5b8buWlgX2w
	tikdx8ZpNG2ledDYgSXOfjHePgV1TQgYENnh6r/gaN3JvNw835aU++v6lSEF7N2SjhkNe+d2gxF
	029wjg6TiAGzxZ4jB4Pt+2KEBkyyH0fqys55sfg7OwmVk/wviHxlzO/SnJW/5ZE4gtYCnvYjw1u
	KSJUu2ZV7Rq/V7xCD4xjb+RWw7flY8RyKRJ7KyKlmPO/A6mMsjTsdWPw6Zc322xVFjZh/YYeiB1
	kWjQsfRVGl6LHqJApOdKurt5oYuQHvJYcJjQsNkFSF/hNHZy/iC3QaS2x5qcmWmfLFqqOR
X-Received: by 2002:a05:6102:c86:b0:5ff:a606:3cfc with SMTP id ada2fe7eead31-5ffe61248dfmr4759508137.21.1773038685979;
        Sun, 08 Mar 2026 23:44:45 -0700 (PDT)
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: qemu-devel@nongnu.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Cc: edgar.iglesias@amd.com,
	xen-devel@lists.xenproject.org
Subject: [PULL v1 2/5] xen: mapcache: Add function to check if the mapcache is enabled
Date: Mon,  9 Mar 2026 07:44:32 +0100
Message-ID: <20260309064436.51860-3-edgar.iglesias@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260309064436.51860-1-edgar.iglesias@gmail.com>
References: <20260309064436.51860-1-edgar.iglesias@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>

Add function to check if the mapcache is enabled.
No functional change.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 hw/xen/xen-mapcache.c         | 6 ++++++
 hw/xen/xen_stubs.c            | 5 +++++
 include/system/xen-mapcache.h | 1 +
 3 files changed, 12 insertions(+)

diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
index 517e5171b7..a3c162cd4c 100644
--- a/hw/xen/xen-mapcache.c
+++ b/hw/xen/xen-mapcache.c
@@ -80,6 +80,12 @@ static MapCache *mapcache_grants_ro;
 static MapCache *mapcache_grants_rw;
 static xengnttab_handle *xen_region_gnttabdev;
 
+bool xen_map_cache_enabled(void)
+{
+    /* Map cache enabled implies xen_enabled().  */
+    return xen_enabled() && mapcache;
+}
+
 static inline void mapcache_lock(MapCache *mc)
 {
     qemu_mutex_lock(&mc->lock);
diff --git a/hw/xen/xen_stubs.c b/hw/xen/xen_stubs.c
index 5e565df392..a39efb5062 100644
--- a/hw/xen/xen_stubs.c
+++ b/hw/xen/xen_stubs.c
@@ -29,6 +29,11 @@ bool xen_mr_is_memory(MemoryRegion *mr)
     g_assert_not_reached();
 }
 
+bool xen_map_cache_enabled(void)
+{
+    return false;
+}
+
 void xen_invalidate_map_cache_entry(uint8_t *buffer)
 {
     g_assert_not_reached();
diff --git a/include/system/xen-mapcache.h b/include/system/xen-mapcache.h
index fa2cff38d1..c46190dd0c 100644
--- a/include/system/xen-mapcache.h
+++ b/include/system/xen-mapcache.h
@@ -13,6 +13,7 @@
 
 typedef hwaddr (*phys_offset_to_gaddr_t)(hwaddr phys_offset,
                                          ram_addr_t size);
+bool xen_map_cache_enabled(void);
 void xen_map_cache_init(phys_offset_to_gaddr_t f,
                         void *opaque);
 uint8_t *xen_map_cache(MemoryRegion *mr, hwaddr phys_addr, hwaddr size,
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 06:45:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 06:45:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249071.1546574 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzUM9-0005KX-0M; Mon, 09 Mar 2026 06:44:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249071.1546574; Mon, 09 Mar 2026 06:44:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzUM8-0005KO-R3; Mon, 09 Mar 2026 06:44:44 +0000
Received: by outflank-mailman (input) for mailman id 1249071;
 Mon, 09 Mar 2026 06:44: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=UF23=BJ=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1vzUM7-0005KI-BW
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 06:44:43 +0000
Received: from mail-vk1-xa2c.google.com (mail-vk1-xa2c.google.com
 [2607:f8b0:4864:20::a2c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 72e510e2-1b83-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 07:44:41 +0100 (CET)
Received: by mail-vk1-xa2c.google.com with SMTP id
 71dfb90a1353d-56adf76631cso2441445e0c.1
 for <xen-devel@lists.xenproject.org>; Sun, 08 Mar 2026 23:44:41 -0700 (PDT)
Received: from gmail.com (ip190-5-140-138.intercom.com.sv. [190.5.140.138])
 by smtp.gmail.com with ESMTPSA id
 71dfb90a1353d-56b09a0881asm9247726e0c.4.2026.03.08.23.44.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 08 Mar 2026 23:44:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 72e510e2-1b83-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773038680; x=1773643480; 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=JhBJGCljjR2vWP5NBGBE3Ox/OrYcaC529yay0waARyQ=;
        b=Le8xFLVt2Ri2TNA3hEy5MQ2U1fZQXAVSgT5Pyu3AcKlHNoBCyyabt2tKpxBzQhIQic
         PpemP7vAxVaKhGaFbQA3SM46TdDoUyRu34CY7niP9Y1XNB+4pDjPxJpJYxgtaBo1WTiq
         1nsGMsZpj7SJtrfGRcpy/NkE9uRvIRvuAwhDKpbFugj5tuMJhpsMBagcHA3hpv2h8u8d
         nkh89lWqcW1wL8C+oPFnsVmEOLMIFpWqtRqkMcdgIUad3rGnMRqlHPEMD7rqySuOU3VY
         VvOzaucbpAE3mrHJlS8FybLRI5I3/NVBtJYq8LHtGIXlIgMI4vfl9uPvbkUa6gGG5C2C
         1F7g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773038680; x=1773643480;
        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=JhBJGCljjR2vWP5NBGBE3Ox/OrYcaC529yay0waARyQ=;
        b=a+hh7HJ5kKwK0AEcxmZL81XnSMNbgaSJo1FdWDFpNADsqS2CDZokLW8GqcTv6AZXmY
         fuBze8g4svNEioL06Rwi1m9lE0c5dP6ZDKn0Y++GPZ5+QhXCiPJp0KRdz5JXFR+341Fh
         o2VAmJqfDllXa65Q+pfAJkKOw8aBa2yw/U1EFfLzjHakhxil9HZpI6P/1wEJ19kRp6A6
         lKLpIYfXbgdaZiCLn+ngowMlq4DC7485v3GxYc/DXNv8OfnmSGiSJ/8zBeTIjnAsBXEL
         Qh/z+hIxD128dB6pKiQ3sWC+T+KyGFtCDYtZCe5BW9c5OBpVyBc55UlDPzU4ynPEboxH
         R8VA==
X-Forwarded-Encrypted: i=1; AJvYcCWYn5CdKftwzOmomhOfw1xqpCBFmAXOcXfRE5axVYl4XFqpybTZ/u2vNN021wZw925U7YrwXiLvgYk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy6TWXLVNpMwNfr6ZY8jH/O+L/Hi2RGASVD5OiLapNWMolcIweU
	CHe61UHNt4EERi/T7y+cvLTNy5oSdkz+YR9QX02150yB3cLB0hhPtkUX
X-Gm-Gg: ATEYQzxLAun6jkAG52GYAdfcCdBD9+H5MhNH7wuJ/X5weWW6aDGddQ04CCqmmWl9zrj
	yDf4p8/zNEHXSMZkKl/VcbWl78tJYdgBYQZZrD3PAEZsWQ1SCQOHp6s6cZPaXpUIV6duMGZya06
	/KIrhE9asHy0cRqDKwHLV89seBU0GNJjmSIMmUJHCLDLzOhDHPIPby8Il61MglL92r/zK8qAfEB
	BNVajJ3czWxjKE3WylW+QCUoxqgJbLA4DO4lYwoNzDtNWrjrBKDwqU9ItQDgNYFf40OIZruQ+ml
	+F84/+2CknEpECL7qXZ3VAX1Sx3ilZn/QBRUIvbF1zrDVEi1ce3Y847hNd8YZZ1GXkxCzKDqjTS
	9Z/ncF6Xt7h61V+vQFXxcnPRjhjj1ngYUPsAC0JkDosXQQjAzV14CQFOcu5mvgnolSHUYkKHdoj
	5z4D3MsA7As8YkMoDIOdkaL7lAXPLgHHtGTQgig7/uzhX4XMRzPT+F02ptRw==
X-Received: by 2002:a05:6123:4b:b0:55b:16ba:2854 with SMTP id 71dfb90a1353d-56b07d15b1dmr3664236e0c.5.1773038680128;
        Sun, 08 Mar 2026 23:44:40 -0700 (PDT)
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: qemu-devel@nongnu.org
Cc: sstabellini@kernel.org,
	anthony@xenproject.org,
	edgar.iglesias@amd.com,
	xen-devel@lists.xenproject.org
Subject: [PULL v1 0/5] xen: pvh: Add machine option to disable the mapcache
Date: Mon,  9 Mar 2026 07:44:30 +0100
Message-ID: <20260309064436.51860-1-edgar.iglesias@gmail.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>

  Merge tag 'pull-11.0-virtio-gpu-updates-060326-1' of https://gitlab.com/stsquad/qemu into staging (2026-03-07 11:22:16 +0000)

are available in the Git repository at:

  https://gitlab.com/edgar.iglesias/qemu.git tags/edgar/edgars-xen-queue-2026-02-09

for you to fetch changes up to 83d1d9a49e8eb970f87508ae4ce0f222084df365:

  hw/xen: xenpvh: Add prop to enable/disable the mapcache (2026-03-09 03:24:02 +0100)

----------------------------------------------------------------
Edgars Xen queue

----------------------------------------------------------------

Edgar E. Iglesias (5):
  xen: mapcache: Assert mapcache existance
  xen: mapcache: Add function to check if the mapcache is enabled
  physmem: xen: Conditionalize use of the mapcache
  hw/xen-hvm: Add a mapcache arg to xen_register_ioreq()
  hw/xen: xenpvh: Add prop to enable/disable the mapcache

 hw/i386/xen/xen-hvm.c           |   2 +-
 hw/xen/xen-hvm-common.c         |  18 +++--
 hw/xen/xen-mapcache.c           |  16 ++++
 hw/xen/xen-pvh-common.c         | 134 +++++++++++++++++++++++++++++---
 hw/xen/xen_stubs.c              |   5 ++
 include/hw/xen/xen-hvm-common.h |   3 +-
 include/hw/xen/xen-pvh-common.h |   2 +
 include/system/xen-mapcache.h   |   1 +
 system/physmem.c                |  14 ++--
 9 files changed, 170 insertions(+), 25 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 06:45:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 06:45:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249075.1546610 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzUMK-0006I3-OZ; Mon, 09 Mar 2026 06:44:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249075.1546610; Mon, 09 Mar 2026 06:44:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzUMK-0006Ho-Lb; Mon, 09 Mar 2026 06:44:56 +0000
Received: by outflank-mailman (input) for mailman id 1249075;
 Mon, 09 Mar 2026 06:44: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=UF23=BJ=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1vzUMK-0006FY-60
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 06:44:56 +0000
Received: from mail-vk1-xa2b.google.com (mail-vk1-xa2b.google.com
 [2607:f8b0:4864:20::a2b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 79d54920-1b83-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 07:44:53 +0100 (CET)
Received: by mail-vk1-xa2b.google.com with SMTP id
 71dfb90a1353d-56a9076813bso4437617e0c.3
 for <xen-devel@lists.xenproject.org>; Sun, 08 Mar 2026 23:44:53 -0700 (PDT)
Received: from gmail.com (ip190-5-140-138.intercom.com.sv. [190.5.140.138])
 by smtp.gmail.com with ESMTPSA id
 a1e0cc1a2514c-94ea681505csm1360097241.4.2026.03.08.23.44.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 08 Mar 2026 23:44: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: 79d54920-1b83-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773038692; x=1773643492; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WJrq6QMWPG9vMn/f3A1Ji6UEIjqvYTStXL9SXKLYoe4=;
        b=DMapLI2G3W9Xev1kUbEqF0oz8j/q+p9Tyhdi80uZy1cjI1I9NrzPtDu4jICJB5/kAZ
         qSGUn63UYBWM4PuIXzjwA0IlU5iI/3jwV1pHZssWripLyWJOAkB3bVH4YlP5TE55PEqU
         q+8EhpJKPGrx2sSyovdhMJFjapo/dOsqWQhBDksZJkc01Kd2ywd5uAvnTcrSp7GX94Y9
         0n5ngYOGcdsF07R+NvrvnHqAFDUfMT8SNkCpi+IKhlPxAOjMc6mHerpfXZcZqtUOd0Z+
         pvBQQlV5YhvzRpVPt2W/PfzFupOOHOLAYLqJ6ZILHp5wuVpn912FnoXWF6WHShpOKv3X
         kSUQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773038692; x=1773643492;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=WJrq6QMWPG9vMn/f3A1Ji6UEIjqvYTStXL9SXKLYoe4=;
        b=r9KZut7wqK80hgQ7BchUwbqYh853RHGyjO3nnB1tEz5ccscmYHx7DXECzIgS1RoJX3
         pLDkPvP2+hV8N4kMNi2yiqZB8LetUHGcb22dXFTs7GEVx2xGwALhtgBIfj5fEWNfo3PX
         T6Lp2UQ5IKg8LM+cA5gLvdgGbycwqk//lrInwwYpHPuRsoAZYeidZB0t1aIrUDTC7kRH
         2RFsSHfBnqO+ELgpGsqAnb6KuiNFwUuXWMirchMXlAtyR7vHfMRY5Gd4rf33rRAk3zmH
         JcfbRHkIgN+zCyrAsO2hJyF1G47D63sgqx3Y6mbAQGcXi1oImApHdRdEXoMyUougdyqe
         faKQ==
X-Forwarded-Encrypted: i=1; AJvYcCXOw8cqfqAf9G9mf+a3zuF/523x3+eRMoVxpKDBOmiEMWqHzu/VqWhMo9i0SFJpCb7PnDBF9R6pheM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwYeFKGcJJRkW0GTTLEcfSbqRhIUSsBbINE5pF1k+BssTTGkutp
	DXX/cOYzOg182VHXn8/8dC1PGTg4k/I5LiuI+d6qtnO+rHTPjYuCX0Z+
X-Gm-Gg: ATEYQzxitIfrxITDaVxrpOIihnmfZe/V27UdGwGsa6Im8OL1scMRT3XskGYCrLhecYh
	YG3p37dlUXwYS7hwLm619f1Z5B7/XWD9n6DO/pCJo6d94Vf0kAk84Hpnx3GH6KzoI4IC4Le7jfY
	6vl905a3DGF31JQGT6zf0pw67s7pF+e689kTsgoaeTabSMdFqTCYjkACzpjgavh7zIvDgWueDOS
	EJkKXCCD6NfpJXD5h124Ps1YG7x3zOO5mYUsGcVcTs1xbJ43rliHZWAWnALCBN7QvXuJEtm7fgS
	KwWkp5XM9T0wrUxVEtiWLtyPiMM/94yowEynECfR1d8Kjq4wdML5xC6dtuYbmZ9CWjmtXo7Kwh1
	6az+TCJknng/Ptcz19MSB3y32MUfspnjbluWL0GIRaJkKGdhKcaKFTyvKn5VqMp873gmw9byPvb
	D/HiaPXycZalT/NfWzqkzExs5NtwU7V5GRCXIH8X9OO0HxaSd5BbSPaclzcQ==
X-Received: by 2002:a05:6122:1d4e:b0:559:58a5:f6cc with SMTP id 71dfb90a1353d-56b07d19f27mr3622628e0c.4.1773038691781;
        Sun, 08 Mar 2026 23:44:51 -0700 (PDT)
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: qemu-devel@nongnu.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
Cc: edgar.iglesias@amd.com,
	xen-devel@lists.xenproject.org
Subject: [PULL v1 4/5] hw/xen-hvm: Add a mapcache arg to xen_register_ioreq()
Date: Mon,  9 Mar 2026 07:44:34 +0100
Message-ID: <20260309064436.51860-5-edgar.iglesias@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260309064436.51860-1-edgar.iglesias@gmail.com>
References: <20260309064436.51860-1-edgar.iglesias@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>

Add a mapcache argument to xen_register_ioreq() allowing
the caller to optionally disable the mapcache.

All callers still call it with mapcache = true so there's no
functional change yet.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 hw/i386/xen/xen-hvm.c           |  2 +-
 hw/xen/xen-hvm-common.c         | 18 ++++++++++++------
 hw/xen/xen-pvh-common.c         |  3 ++-
 include/hw/xen/xen-hvm-common.h |  3 ++-
 4 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c
index a6e1683885..c7bfcaae8e 100644
--- a/hw/i386/xen/xen-hvm.c
+++ b/hw/i386/xen/xen-hvm.c
@@ -622,7 +622,7 @@ void xen_hvm_init_pc(PCMachineState *pcms, MemoryRegion **ram_memory)
 
     xen_register_ioreq(state, max_cpus,
                        HVM_IOREQSRV_BUFIOREQ_ATOMIC,
-                       &xen_memory_listener);
+                       &xen_memory_listener, true);
 
     xen_is_stubdomain = xen_check_stubdomain(state->xenstore);
 
diff --git a/hw/xen/xen-hvm-common.c b/hw/xen/xen-hvm-common.c
index 59c73dfaeb..8c825588ae 100644
--- a/hw/xen/xen-hvm-common.c
+++ b/hw/xen/xen-hvm-common.c
@@ -473,7 +473,9 @@ static void handle_ioreq(XenIOState *state, ioreq_t *req)
         case IOREQ_TYPE_TIMEOFFSET:
             break;
         case IOREQ_TYPE_INVALIDATE:
-            xen_invalidate_map_cache();
+            if (xen_map_cache_enabled()) {
+                xen_invalidate_map_cache();
+            }
             break;
         case IOREQ_TYPE_PCI_CONFIG:
             cpu_ioreq_config(state, req);
@@ -823,7 +825,8 @@ void xen_shutdown_fatal_error(const char *fmt, ...)
 
 static void xen_do_ioreq_register(XenIOState *state,
                                   unsigned int max_cpus,
-                                  const MemoryListener *xen_memory_listener)
+                                  const MemoryListener *xen_memory_listener,
+                                  bool mapcache)
 {
     int i, rc;
 
@@ -874,11 +877,13 @@ static void xen_do_ioreq_register(XenIOState *state,
         state->bufioreq_local_port = rc;
     }
     /* Init RAM management */
+    if (mapcache) {
 #ifdef XEN_COMPAT_PHYSMAP
-    xen_map_cache_init(xen_phys_offset_to_gaddr, state);
+        xen_map_cache_init(xen_phys_offset_to_gaddr, state);
 #else
-    xen_map_cache_init(NULL, state);
+        xen_map_cache_init(NULL, state);
 #endif
+    }
 
     qemu_add_vm_change_state_handler(xen_hvm_change_state_handler, state);
 
@@ -901,7 +906,8 @@ err:
 
 void xen_register_ioreq(XenIOState *state, unsigned int max_cpus,
                         uint8_t handle_bufioreq,
-                        const MemoryListener *xen_memory_listener)
+                        const MemoryListener *xen_memory_listener,
+                        bool mapcache)
 {
     int rc;
 
@@ -922,7 +928,7 @@ void xen_register_ioreq(XenIOState *state, unsigned int max_cpus,
     state->has_bufioreq = handle_bufioreq != HVM_IOREQSRV_BUFIOREQ_OFF;
     rc = xen_create_ioreq_server(xen_domid, handle_bufioreq, &state->ioservid);
     if (!rc) {
-        xen_do_ioreq_register(state, max_cpus, xen_memory_listener);
+        xen_do_ioreq_register(state, max_cpus, xen_memory_listener, mapcache);
     } else {
         warn_report("xen: failed to create ioreq server");
     }
diff --git a/hw/xen/xen-pvh-common.c b/hw/xen/xen-pvh-common.c
index 1381310fc7..4fade017bb 100644
--- a/hw/xen/xen-pvh-common.c
+++ b/hw/xen/xen-pvh-common.c
@@ -202,7 +202,8 @@ static void xen_pvh_init(MachineState *ms)
     xen_pvh_init_ram(s, sysmem);
     xen_register_ioreq(&s->ioreq, ms->smp.max_cpus,
                        xpc->handle_bufioreq,
-                       &xen_memory_listener);
+                       &xen_memory_listener,
+                       true);
 
     if (s->cfg.virtio_mmio_num) {
         xen_create_virtio_mmio_devices(s);
diff --git a/include/hw/xen/xen-hvm-common.h b/include/hw/xen/xen-hvm-common.h
index e1beca062f..d177ff14ea 100644
--- a/include/hw/xen/xen-hvm-common.h
+++ b/include/hw/xen/xen-hvm-common.h
@@ -91,7 +91,8 @@ void xen_device_unrealize(DeviceListener *listener, DeviceState *dev);
 void xen_hvm_change_state_handler(void *opaque, bool running, RunState rstate);
 void xen_register_ioreq(XenIOState *state, unsigned int max_cpus,
                         uint8_t handle_bufioreq,
-                        const MemoryListener *xen_memory_listener);
+                        const MemoryListener *xen_memory_listener,
+                        bool mapcache);
 
 void cpu_ioreq_pio(ioreq_t *req);
 #endif /* HW_XEN_HVM_COMMON_H */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 07:31:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 07:31:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249127.1546627 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzV50-0006Hn-C5; Mon, 09 Mar 2026 07:31:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249127.1546627; Mon, 09 Mar 2026 07: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 1vzV50-0006Hg-9V; Mon, 09 Mar 2026 07:31:06 +0000
Received: by outflank-mailman (input) for mailman id 1249127;
 Mon, 09 Mar 2026 07:31: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=TKtW=BJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vzV4y-0006Ha-Mu
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 07:31:04 +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 ebf63124-1b89-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 08:31:01 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-439c9bdc1eeso1839841f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 09 Mar 2026 00:31:01 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dadb85b8sm24006574f8f.17.2026.03.09.00.30.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Mar 2026 00:30:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ebf63124-1b89-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773041460; x=1773646260; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JY1YIqMpS+svr4GEl0wS4/8/T5I/0QlYvZB1MYhrF4c=;
        b=OOMbvUgWYhafmSagm+014NoWQJQyOjP6HVgwbBLwha5fFzSwTQENkRbFEc/39Uwma6
         PtsEqr+gnAJcNjwmsrJVz6x/F4SUXj2+YTebz1E/eSbp0MqkhcSTGzqWHrilHNorSYVf
         /c9HiFfmvcpBYQUgh7nCCftuedisnpS0UnVIZXOh5lRvZ7izR6pXqKfYRWvwCum96fi3
         Wp7dTBp8PDqXQgEjAmtW45vH7qO6ZSAKLPuQn/cHy4fzGy9vcRcfXFkHesQ6w7FYgurF
         VyLL4bDqH9JXcqfhlksyWJxU3at1HF0jnvKjKZdShRTkkS1iDR7nqfnUAHv4cSx5YXeH
         P+CQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773041460; x=1773646260;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JY1YIqMpS+svr4GEl0wS4/8/T5I/0QlYvZB1MYhrF4c=;
        b=okSp3juH7hrGKSuNM1fpkLVPN+0o1CzPihJCdK9n53lREp5Ry+5FNNyaXxIFmPwUQS
         rSQKYkgSrBjpcRDU+XR41BX1rwUFefRjT34mzYGxcIwUgAC27s9mxWfASEErchErDJRR
         qvoAY60Fs/yCX1e5viEs2sJhdUxFwWTD5+CEzmY/kj8smq6e2Ld6hir2hYXQLcH5z/U3
         7WXW/f3mswMO7tPt0n1qJAK1CupTpvroYq7ibkkd0bO2zytvRrda/FPNoFhhHNkO/Z6W
         eUH6C3s77gcQyhfuNSPP0oGMjLiVVDmkyGjPgX9mvlIHoTUCwU8Jgbg0M0hF5leFKeaH
         7Zzw==
X-Gm-Message-State: AOJu0YxOCn3B48HARuFpUGQ0GOyOOsk8cwfrOIlWBC/Oj5dZaD8UFsUT
	RZeTlZfvhOZkztVp+PCUADyFUE/pb94O7mtuSfw+iikUMCl3cqHP/Sy2jLz4U0oM2Q==
X-Gm-Gg: ATEYQzy5+2uVg0Ubq14Y/KiVFlxeJw3hTf7ZRSeC7SxUtuKb3V7fYkY+6IValLGhpLC
	TFjJ4n+eO8HBllCsn1GClB/+vg6pS+m9B/i6BDOj3goDi4Oi7BH1o3ND3IhUqKoLYEfO5EvMhDy
	nkD9GXiO0SzJkJGxwaiuWT1ZoJW9B7bsXKTrXO19PHasKCfaFyKRZ9v0CBQkJ7ZkmY3CVKgs/yE
	sISOng7jm95h7VLyIPzCSQ+Tjcx9ppt2sEF0u9NJHA63GamryHRDNRXkM2utwQTWC6GQZFzkWVU
	7ViLsAZR+gLcj5yPlbHEnFOCeZQvibjHSNzj1oKxO4O1jFpgNU70Q/bOb9BtLWJfmoabbulOibG
	MLxB7xsX6HLaiOn/ebuU90cXU3risEF+ZfC7b/f7vbDZabZ5ToCCsNA2fHN34qSuHDa3BxtNljs
	fMApryQ4GMS5j0vCtkvUUabOCsjfpAhDk6dlaDJylg3NEPXSQ1cm4Tu8HKe3AVL4cpSRXiHZU3I
	f2kab2KbI722Sc=
X-Received: by 2002:a05:6000:2dca:b0:439:b046:2044 with SMTP id ffacd0b85a97d-439da354a8emr19153955f8f.12.1773041460065;
        Mon, 09 Mar 2026 00:31:00 -0700 (PDT)
Message-ID: <609060f4-d94b-4b65-a10b-5126f10307db@suse.com>
Date: Mon, 9 Mar 2026 08:31:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] x86/efi: Add BGRT image preservation during boot
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
References: <20260305191810.31033-1-soumyajyotisarkar23@gmail.com>
 <20260305191810.31033-2-soumyajyotisarkar23@gmail.com>
 <aa3AKoCFFhwD4-LX@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: <aa3AKoCFFhwD4-LX@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.03.2026 19:30, Marek Marczykowski-Górecki wrote:
> On Fri, Mar 06, 2026 at 12:48:08AM +0530, Soumyajyotii Ssarkar wrote:
>> --- a/xen/common/efi/boot.c
>> +++ b/xen/common/efi/boot.c
>> @@ -7,6 +7,7 @@
>>  #include <xen/ctype.h>
>>  #include <xen/dmi.h>
>>  #include <xen/domain_page.h>
>> +#include <xen/errno.h>
>>  #include <xen/init.h>
>>  #include <xen/keyhandler.h>
>>  #include <xen/lib.h>
>> @@ -173,6 +174,14 @@ static struct file __initdata ramdisk;
>>  static struct file __initdata xsm;
>>  static const CHAR16 __initconst newline[] = L"\r\n";
>>
>> +static __initdata struct {
>> +    bool preserved;
>> +    uint64_t old_addr;
>> +    uint64_t new_addr;
>> +    uint32_t size;
>> +    const char *failure_reason;
>> +} bgrt_debug_info;
>> +
>>  static void __init PrintStr(const CHAR16 *s)
>>  {
>>      StdOut->OutputString(StdOut, (CHAR16 *)s );
>> @@ -747,6 +756,171 @@ static void __init efi_relocate_esrt(EFI_SYSTEM_TABLE *SystemTable)
>>      efi_bs->FreePool(memory_map);
>>  }
>>
>> +struct bmp_header {
>> +    uint16_t signature;
>> +    uint32_t file_size;
>> +    uint16_t reserved_1;
>> +    uint16_t reserved_2;
>> +    uint32_t data_offset;
>> +} __attribute__((packed));
>> +
>> +/*
>> + * ACPI Structures - defined locally,
>> + * since we cannot include acpi headers
>> + * in EFI Context.
>> + */
>> +
>> +struct acpi_rsdp {
>> +    char signature[8];
>> +    uint8_t checksum;
>> +    char oem_id[6];
>> +    uint8_t revision;
>> +    uint32_t rsdt_physical_address;
>> +    uint32_t length;
>> +    uint64_t xsdt_physical_address;
>> +    uint8_t extended_checksum;
>> +    uint8_t reserved[3];
>> +} __attribute__((packed));
>> +
>> +struct acpi_table_header {
>> +    char signature[4];
>> +    uint32_t length;
>> +    uint8_t revision;
>> +    uint8_t checksum;
>> +    char oem_id[6];
>> +    char oem_table_id[8];
>> +    uint32_t oem_revision;
>> +    uint32_t asl_compiler_id;
>> +    uint32_t asl_compiler_revision;
>> +} __attribute__((packed));
>> +
>> +struct acpi_xsdt {
>> +    struct acpi_table_header header;
>> +    uint64_t table_offset_entry[1]; /* Variable array length */
> 
> uint64_t table_offset_entry[];
> 
> BTW, do we have some canonical place with list of files imported (and
> kept in sync) with other projects? xen/include/acpi/actbl.h doesn't
> exactly follow Xen coding style, but it's unclear to me if it needs to
> stay this way.

I don't really understand why the headers we've got can't be used. Even
some of the library-like code under xen/acpi/ may be usable here.

While we don't exactly keep xen/include/acpi/ in sync with Linux, when
things are added we preferably add them in the way Linux has them.

>> +} __attribute__((packed));
>> +
>> +struct acpi_bgrt {
>> +    struct acpi_table_header header;
>> +    uint16_t version;
>> +    uint8_t status;
>> +    uint8_t image_type;
>> +    uint64_t image_address;
>> +    uint32_t image_offset_x;
>> +    uint32_t image_offset_y;
>> +} __attribute__((packed));
>> +
>> +static struct acpi_bgrt* __init find_bgrt_table(EFI_SYSTEM_TABLE *SystemTable)

Nit (style): The first * is misplaced.

>> +{
>> +    EFI_GUID acpi2_guid = ACPI_20_TABLE_GUID;
>> +    struct acpi_rsdp *rsdp = NULL;
>> +    struct acpi_xsdt *xsdt;
>> +    struct acpi_bgrt *bgrt;

Here and ...

>> +    uint32_t entry_count, actual_size;
>> +    unsigned int i;
>> +
>> +    for ( i = 0; i < SystemTable->NumberOfTableEntries; i++ )
>> +    {
>> +        if ( match_guid(&acpi2_guid, &SystemTable->ConfigurationTable[i].VendorGuid) )
>> +        {
>> +            rsdp = SystemTable->ConfigurationTable[i].VendorTable;
>> +            break;
>> +        }
>> +    }
>> +
>> +    if ( !rsdp || !rsdp->xsdt_physical_address )
>> +        return NULL;
>> +
>> +    xsdt = (struct acpi_xsdt *)rsdp->xsdt_physical_address;
>> +    if ( !xsdt )
>> +        return NULL;
>> +
>> +    actual_size = (xsdt->header.length - sizeof(struct acpi_table_header));
>> +    entry_count = (actual_size / sizeof(uint64_t));
>> +
>> +    for ( i = 0; i < entry_count; i++ )
>> +    {
>> +        struct acpi_table_header *header = (struct acpi_table_header *)xsdt->table_offset_entry[i];

... here and elsewhere - please use pointer-to-const wherever possible.

>> +        if (   header->signature[0] == 'B'
>> +            && header->signature[1] == 'G'
>> +            && header->signature[2] == 'R'
>> +            && header->signature[3] == 'T' )
> 
> strncmp?

Or even memcmp() in this case. Plus there is ACPI_SIG_BGRT.

>> +        {
>> +            bgrt = (struct acpi_bgrt *)header;
> 
> You can just return it here, avoiding the extra variable.
> 
>> +            return bgrt;
>> +        }
>> +    }
>> +    return NULL;
>> +}
>> +
>> +#define MAX_IMAGE_SIZE  (16 * 1024 * 1024)    /* Sanity check: reject if bigger */
>> +
>> +static void __init efi_preserve_bgrt_img(EFI_SYSTEM_TABLE *SystemTable)
>> +{
>> +    struct acpi_bgrt *bgrt;
>> +    struct bmp_header *bmp;
>> +    void *old_image, *new_image;
>> +    uint32_t image_size;
>> +    EFI_STATUS status;
>> +    uint8_t checksum;
>> +    unsigned int i;
>> +
>> +    bgrt_debug_info.preserved = false;
>> +    bgrt_debug_info.failure_reason = NULL;
>> +
>> +    bgrt = find_bgrt_table(SystemTable);
>> +    if ( !bgrt )
>> +    {
>> +        bgrt_debug_info.failure_reason = "BGRT table not found in XSDT";
>> +        return;
>> +    }
>> +
>> +    if ( !bgrt->image_address )
>> +    {
>> +        bgrt_debug_info.failure_reason = "BGRT image_address is NULL";
>> +        return;
>> +    }
>> +
>> +    old_image = (void *)bgrt->image_address;
>> +    bmp = (struct bmp_header *)old_image;
>> +
>> +    if ( bmp->signature != 0x4D42 )
>> +    {
>> +        bgrt_debug_info.failure_reason = "Invalid BMP signature";
>> +        return;
>> +    }
>> +
>> +    image_size = bmp->file_size;
>> +    if ( !image_size || image_size > MAX_IMAGE_SIZE )
>> +    {
>> +        bgrt_debug_info.failure_reason = "Invalid image size";
>> +        return;
>> +    }
>> +
>> +    status = efi_bs->AllocatePool(EfiACPIReclaimMemory, image_size, &new_image);
>> +    if ( status != EFI_SUCCESS || !new_image )
>> +    {
>> +        bgrt_debug_info.failure_reason = "Memory allocation failed";
>> +        return;
>> +    }
>> +
>> +    memcpy(new_image, old_image, image_size);
>> +
>> +    bgrt->image_address = (uint64_t)new_image;
>> +    bgrt->status |= 0x01;
> 
> Why forcing the "displayed" bit here?

And if this is needed, why by way of a literal number rather than a suitable
#define?

>> +    bgrt->header.checksum = 0;
>> +    checksum = 0;
>> +    for ( i = 0; i < bgrt->header.length; i++ )
>> +        checksum += ((uint8_t *)bgrt)[i];
>> +    bgrt->header.checksum = (uint8_t)(0 - checksum);
>> +
>> +    bgrt_debug_info.preserved = true;
>> +    bgrt_debug_info.old_addr = (uint64_t)old_image;
>> +    bgrt_debug_info.new_addr = (uint64_t)new_image;
>> +    bgrt_debug_info.size = image_size;
>> +}
>> +
> 
> This is quite a bit of code, maybe move to a separate file? But I'd like
> to hear what others think.

Whether to put in a separate file is only the 2nd question imo. The first is
whether this much code is needed in the first place.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 07:47:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 07:47:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249136.1546637 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzVKh-00086s-MR; Mon, 09 Mar 2026 07:47:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249136.1546637; Mon, 09 Mar 2026 07:47:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzVKh-00086l-Jc; Mon, 09 Mar 2026 07:47:19 +0000
Received: by outflank-mailman (input) for mailman id 1249136;
 Mon, 09 Mar 2026 07:47:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=TKtW=BJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vzVKg-00086D-4q
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 07:47:18 +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 3085d8e2-1b8c-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 08:47:15 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-483487335c2so93925775e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 09 Mar 2026 00:47:15 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4851fae00absm319480845e9.4.2026.03.09.00.47.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Mar 2026 00:47:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3085d8e2-1b8c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773042434; x=1773647234; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qsabEXkhux99yzwsSjH5RxSJbqhPM5KtfGWU+0nIdFw=;
        b=V8R0Gc+fRw/R2eny8xsDRWTjHyX4T1/3+zjeeFbjPPO37kixGgOAD+69YlLoqJlnzZ
         Bxjqupd89cIlkpw+ekTL8cDZx62Ifv03sknR1kvCJlPDRbUZc97ccYlt/40MmwUem/Qk
         NkWPBIgOx1k+SAkTtmZ/frBxcI5ww89anf72VjEt35r3HseKBVd5FCAjwl5faFVn0occ
         n8R1rYDcAqfd8DJ6LW5iH5J/Ye/NhD0Ef0tjKO3HwLA6c8b4W8a8rAP1WEsJz7mCNigO
         I0zFwc1QkcpYKW6B778ok8hnGawaqklGsvhSvOcBgjOxbQpHVGAW5ddVmqxRiHZcGVRo
         JPpw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773042434; x=1773647234;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qsabEXkhux99yzwsSjH5RxSJbqhPM5KtfGWU+0nIdFw=;
        b=ef3kCtLcxnNsQwSiU6+UxQ2JTKBxL3jQyGCQCHD3b2ZUwfc2Imcd7iYV58HSfAinIm
         +KdrASbc3IP+7oYtVoVEPwiXJ54RPwJC7mbIrBBzo1xs9WehOwKZaWL0rjbv84NVBMyQ
         VpHHlk87JWmnhexc3wiiRL8uZYy65NaFwGAoOHIg/L+HDUvYLb2/2pRhqgRy47L63W4n
         BLtD5lyJJ1WnY4/x/YkZEfEVN6uRmX2BT76jCP9xORdAAIU/iPTQlQg29lngHhj4S24L
         vIjZF5z2PIKhEenbJdX4/Lijo8Zo5D3iC+3Y2KwnQS92MqibU220DvuAdK+/KjsyCJ6N
         4Lbg==
X-Forwarded-Encrypted: i=1; AJvYcCXV9Kk7K4HEaMY7udSOwAXJisql9T3Uu4sqRLDNqylhsSjAXFoTyxGUSMXYcf1DDEO8KNIGVvOCNuI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzMGEgXRt106PFGYg1OrGV4KZBcKN3xgSdQXXNjk7CJcKz2JuKw
	SnGQaVy8YzI+golTM2JEfPyDuYNzbaZxWPFyIbLfZvo2CPRrEdNrpo9j15yyZ7CjAA==
X-Gm-Gg: ATEYQzwLs/70U1xN9dIB8QT/k1uTfILE3nbMepGhxI7SmGk5eu8anqQU6g4W8NUoXDn
	WT555RAO4K6N812I6oZuLZnIqUKZpacobtAsje6NR5fJc+DMNXyQw7BBaFgAShZO8oiLX+uOaPM
	OITZsK8wr7HFavHNgoLHXA8bLx7o1ztKhmKV/tA6yXN4iple4VO1vYMLEpo3gRadC4rAXFBM4BR
	7FPhDK0y2yx17J9Tr4RhVzkIhhItj6105Fq7boX8C4ohsMkj2xWq5AC4CkrdObaXCZNYdRuYeX9
	0yuN4A1tK73gzhWCypimkEtFYXvkcn3PKW3uSasEddzV/H7GF2A2mi5DHNnFdW4e2vbo/Lh8a/o
	LYVAIalXHP154Tl43KcGoOX4DdqdQYcvdB18tvZuvjlRMxJk++1SehqBExaJzZH4qD4m4ajQUxm
	xmH8icKvAwGag/vuLhijwW67Jdp8G5QTSqmPK8r6vf5rYtQ67OJLuSKvr9Tr69S/bnYXgAtXDH/
	Z4ttu0QY9y/xao=
X-Received: by 2002:a05:600c:8209:b0:485:3a93:3aa3 with SMTP id 5b1f17b1804b1-4853a933e17mr42287645e9.12.1773042434345;
        Mon, 09 Mar 2026 00:47:14 -0700 (PDT)
Message-ID: <49d22b35-f5d8-4992-a32a-bb3f7c3e5ad2@suse.com>
Date: Mon, 9 Mar 2026 08:47:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/1] tools/tests/x86_emulator: avoid duplicate symbol
 error with clang: use -O0
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <cover.1772813802.git.edwin.torok@citrix.com>
 <a4a29c95b06a0352889bb6c032c19be6e4cf8288.1772813802.git.edwin.torok@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <a4a29c95b06a0352889bb6c032c19be6e4cf8288.1772813802.git.edwin.torok@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.03.2026 17:25, Edwin Török wrote:
> clang would duplicate the loop body and end up with a double definition
> of the symbol:
> ```
> /tmp/test_x86_emulator-0f3576.s:27823: Error: symbol `vmovsh_to_mem' is already defined
> /tmp/test_x86_emulator-0f3576.s:27825: Error: symbol `.Lvmovsh_to_mem_end' is already defined
> ```
> 
> Until a better solution is found: disable all optimizations in the test runner.
> 
> Using -Os might also work, but we can't rely on the size optimization
> always avoiding the duplication of asm blocks.
> This is test code, not performance critical code, and -O0 is more future
> proof.

Hmm, yes, the good thing is that this then doesn't even conflict with my
https://lists.xen.org/archives/html/xen-devel/2023-04/msg00283.html.

> --- a/tools/tests/x86_emulator/Makefile
> +++ b/tools/tests/x86_emulator/Makefile
> @@ -323,4 +323,9 @@ x86-emulate.o x86_emulate/%.o: HOSTCFLAGS += -D__XEN_TOOLS__
>  $(call cc-option-add,HOSTCFLAGS-toplevel,HOSTCC,-fno-toplevel-reorder)
>  test_x86_emulator.o: HOSTCFLAGS += $(HOSTCFLAGS-toplevel)
>  
> +# clang duplicates inline assembly when unrolling loops,
> +# which causes a duplicate label error.
> +# Until a better solution is found: disable all optimizations in the test runner.
> +test_x86_emulator.o: HOSTCFLAGS += -O0

I think the first sentence may want wording a little differently, and I
further think it absolutely needs to mention put_insn(). Maybe:

"When unrolling loops, compilers may duplicate inline assembly. put_insn()
 emits labels, which may not be emitted multiple times."

Happy to adjust while committing if you're okay with me doing so. There's
one other question though: Isn't -O0 the default? Where would any other
optimization setting come from in HOSTCFLAGS? Ah, I see ./Config.mk does
this, for an unclear to me reason. Perhaps that would want mentioning
here then as well.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 08:01:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 08:01:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249156.1546657 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzVYY-0003Or-BJ; Mon, 09 Mar 2026 08:01:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249156.1546657; Mon, 09 Mar 2026 08:01:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzVYY-0003Ok-8L; Mon, 09 Mar 2026 08:01:38 +0000
Received: by outflank-mailman (input) for mailman id 1249156;
 Mon, 09 Mar 2026 08:01: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=TKtW=BJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vzVYW-0003Oc-Vy
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 08:01:36 +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 30e47894-1b8e-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 09:01:34 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-483487335c2so94070185e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 09 Mar 2026 01:01:34 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4853a310b8fsm86052215e9.11.2026.03.09.01.01.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Mar 2026 01:01: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: 30e47894-1b8e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773043294; x=1773648094; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BZTM1bGALy2lCngF9Ee8Ep5UL3DY9PWcQzrczS1SlxE=;
        b=W/MyENh1TJVN9CjnXw9LXI8ec935qBVNix04SHyT/LjGJBJThsqP3Y4GPVVCsA/VhL
         Zj2M1Z6sTz+QYIs4KIZVc/Ff68/rJg7X3TBBfu4AGqHpaMF6+RjvClmuCll4uHrftHXe
         02SckAEla6VbQBnra+pS+Bdgoz6TmAfViM/y/L5TgOvMlCUCgSj1afMzjA9SQ5IzPpCS
         sGQXSg3241RBmsXKjogX1AK6qz3+r+6285RLzyPscWFs/az2ulvDNZA3R5fkWkJDCNZi
         ezqqTMH4w7cR8Tne9KC2MWTQR4NmAp0rU8x1hC8l58EU4uUgRlb85Ffq4DCK76QEXmQ+
         1bYA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773043294; x=1773648094;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BZTM1bGALy2lCngF9Ee8Ep5UL3DY9PWcQzrczS1SlxE=;
        b=FH8VCdrxrNwNuNOZ5BmYnz4MxtoaZkE8Uy60kYV/ftij5y9VjMA0EOjbFxwFOAV66E
         0pNDJRu3UoagR663S1HQL2m7fBwgjzWwnXdX46yvEQmGMzKpkew2arbTr+E/PorYBtM8
         MxgnIPP70V0zc+5PdONdyLw5PSAEfnD7fwU2N2yrAOP0tWjcGxU8SxUMO5+7TRiyXfv6
         4hA43bvIvdY0YkRltaE80ihk+gmrvXZ9HYkwsOeWsslHRQhFNO6lqiFGKwuNJy4b6587
         aZHsO1o24cTW6V9nigEVFs2PHU00mf86vYjpPTyP441gsy6zoWiFIB9RqelwQrZ+mhsC
         ELhw==
X-Gm-Message-State: AOJu0YzKNtx/uCIGlAqm9ONVef35Cjx5fZpqORVBV9iou5fjoBICmCaX
	sW+huxNvgEGc3dXj4OZAEPJCyliD725UTJA0LCnz5piYxKyXuqsLG3mxjTAUhGAUhw==
X-Gm-Gg: ATEYQzwmGMw7kjZJ7Y4f/PCVvLMd91cp/H79HSSKiuqODYL8WbMSz7w4fS3/kHHY34/
	5jBZpqEoQwJq+Wu3Kg9COJfEfXHiOhWZl8kDJGIRUcMYuuWss5u80XB50dBPH2Cm6uBCLkMjwgd
	/oBW1wEhDVd5mnAhya61UuemlfqTSRZaRdrJNfJTAEYdhSNbmM0nQqgnrkIogZb74DsFpcAlbTD
	iuO2kWZCPSbLSvLag8y0zMo2iuqSMAHAHQfXLkG/M8XJH6aXcsj4HOgtiLclZQylx7X+rEqZ5FI
	RjombZtdpWqsL+eNgWSu7XFRHZGYRuD/0cxAygDTsaVCY8mABBYuhWkHlPEHrd/JG9BKtYP6lid
	CkGenjfysAEus9L7IaVE5iUbK3eTODSgHQP14IdQiZwJLtVEpEGbsGo+ikyX4rK8R97vv/vpwO1
	k+Vs03JkpU5ffHZj8ef3ESYzx4vAf8yMnszEYVeMhYFEPIy/RCBMNSeCO9N7QRlleRIB2I+1v/u
	BnhYqwy/B6gWOC2UXvoa1EVYg==
X-Received: by 2002:a05:600c:81c8:b0:485:3812:36f6 with SMTP id 5b1f17b1804b1-48538123973mr63720905e9.21.1773043293760;
        Mon, 09 Mar 2026 01:01:33 -0700 (PDT)
Message-ID: <8b7e5cf6-e259-46a1-9af9-8b75242d9c7c@suse.com>
Date: Mon, 9 Mar 2026 09:01:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] core-parking: shrink and relocate core_parking_cpunum[]
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: <af03f611-ef38-49d0-ac7b-4bad39db46c1@suse.com>
 <aarik2Zlgxc6-Ffp@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aarik2Zlgxc6-Ffp@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.03.2026 15:20, Roger Pau Monné wrote:
> On Wed, Nov 12, 2025 at 04:38:13PM +0100, Jan Beulich wrote:
>> 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.
> 
> Can't we just allocate this memory using xvzalloc_array()?  If we do
> care about it being too big certainly allocating only when needed, and
> based on the number of possible CPUs on the system would be much
> better than playing games with the array type?

Hmm, yes, how did it not occur to me to dynamically allocate the array?
It can't be used ahead of core_parking_init(). (Not shrinking the array
element type will still be a little wasteful, but perhaps that's
acceptable to keep the code simple.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 08:46:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 08:46:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249170.1546671 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzWGC-0000FC-Oc; Mon, 09 Mar 2026 08:46:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249170.1546671; Mon, 09 Mar 2026 08:46:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzWGC-0000F4-LH; Mon, 09 Mar 2026 08:46:44 +0000
Received: by outflank-mailman (input) for mailman id 1249170;
 Mon, 09 Mar 2026 08:46:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=2Z2Q=BJ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vzWGB-0000Ey-1o
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 08:46:43 +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 7d70ac1d-1b94-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 09:46:40 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-6615c766e60so5888409a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 09 Mar 2026 01:46:40 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b942efb273csm332695366b.29.2026.03.09.01.46.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Mar 2026 01:46:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7d70ac1d-1b94-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773045999; x=1773650799; 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=mzARPScbwnE1dvt8UvB7LVvBx6Pl5gHYQG6LHeQwFv4=;
        b=aALRuEnk/3JpFGE5VHvjmSpns/b77vXdfLhHlEm89BYsVoEZc+bOlJ+ZGFxrueZySk
         fU1xZbwE+aqrgJdLp/+2zEQFJiFwKiE0bEzM7QfSsmOL7Q0IBbY5Ox29O3opn9qL1VlK
         pSx8OQ5mQK8rlCV/LNq7bMuNwxoqJTKl5260O11SfdpNtaVrkbOiwCu/YS1djxp1vIRW
         u98x5GKo5FlSy7fvCAhRzq6oZpJE0H6UI0FxVM9FepANIj1+C9s0JEX+dqO17H4zOz5N
         S8Cmk75c5yEd37FmO2CL6UfvE8dYxFpUbHnexzccNCBFak0/kn5QOVWHPQ5wA/t0pBRP
         FtTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773045999; x=1773650799;
        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=mzARPScbwnE1dvt8UvB7LVvBx6Pl5gHYQG6LHeQwFv4=;
        b=jNP9Uqo44hzlByRiT9XXceM62gt6Q+KV2jn9kgn5XlXR/oIDhgl6F+7zpCgJ1IXLvi
         xtxKsGbsLDSoYf6kM3QWvkqRj8chg4CCQvlm6m3F6aNrrxCIPnFyFzlNwwaFfYhi0S2E
         fGS2I9IYKvozBRDRZilUFnjrjqeeVs5F14rJSMpXoIt5F1svv8Oo/9z1HAzIKl5+J+LL
         0VUT/M8cV/kor+YDh01xd9LFJqLMb5BZbmYuw5nBlwXAzzgYhsDEAHrWvbCqZS+il7rw
         SQV0V6HCpkDFR1BEMXIu6hi5NGNUTsZGhvSKf/Az1qfLXjkW7nzNAST4kmM88tnpmPNe
         0Y5w==
X-Gm-Message-State: AOJu0YwAtlWRm+7Ad+P5hWU6dRjBFZsPqBPlXW8W0dPmqWUyTTdgKdGc
	Ot/RJVIk3c0t3TtiMwG7HR2P56aNz9gy8oQCItqvt/gZHhxG5E8tcoxIJcXLjLEN9GI=
X-Gm-Gg: ATEYQzwENIaXwxHmPTeHGrs62tzPP8w6VNZhBqvvqSaNRZHnW+KXipOhwHfgF4WGUwy
	2FxhcqNy2TQxbAUOYQ1fFwSAbUsl90bc5bnkwtdfPmDVgqaINEc3UYJKA3jbQcg6BZNtsFAnyPW
	BV2DIU4w3uN0VG2JGMwmw9lhEsRJfrJszGdzpOpdFY5ubkfHVxGYOjvIgoYrjfZwD+QirMLG+do
	/KKW5cZ2FOb+TxrF8WzlKL6X+Llba+VMgYcOwEwMskP/vWUrQr9nh913/cpWzy0wgXl/9BSakh6
	N85Ku7A1dgJMg7/9hFQKJm8+aIUqFFZGq9W6Kl6wO/yML6V9I3MBuiq0g03/qXaTlmKW/Em6fDL
	OSdN6iPc+E+EHr23d5oq0c3gu4OSBQrXmaEW2uJo6oYDWiFngZzXtfcuXV5iCh7s2/2SL985qG8
	XOhm+bl10Duty+Lf7KCG9uvPB/tbBTnQnHzkU6FyzPEujaNoWCwWDjiA/1oD4Sbd2jG4Q2rT30N
	s7+Tk01sZl38X4y991KF+iwHBcIvgowYbk+0i87+6ciEL8VRAW43A==
X-Received: by 2002:a17:906:f5a5:b0:b90:35c8:d01b with SMTP id a640c23a62f3a-b942df74781mr562384166b.36.1773045999253;
        Mon, 09 Mar 2026 01:46:39 -0700 (PDT)
Message-ID: <a5bfb790-5776-4235-a986-7fecf302b347@suse.com>
Date: Mon, 9 Mar 2026 09:46:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/grant-table: scope gnttab suspend and resume helpers
 to hibernate callbacks
To: Pengpeng Hou <pengpeng.hou@isrc.iscas.ac.cn>, sstabellini@kernel.org,
 oleksandr_tyshchenko@epam.com
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 18291782795@163.com
References: <20260309083622.717803-1-pengpeng.hou@isrc.iscas.ac.cn>
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: <20260309083622.717803-1-pengpeng.hou@isrc.iscas.ac.cn>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------4HXLkhp0pooATIYDhpvMKsoZ"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------4HXLkhp0pooATIYDhpvMKsoZ
Content-Type: multipart/mixed; boundary="------------hs29NsfQFLuM860P8kEdl2C0";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Pengpeng Hou <pengpeng.hou@isrc.iscas.ac.cn>, sstabellini@kernel.org,
 oleksandr_tyshchenko@epam.com
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 18291782795@163.com
Message-ID: <a5bfb790-5776-4235-a986-7fecf302b347@suse.com>
Subject: Re: [PATCH] xen/grant-table: scope gnttab suspend and resume helpers
 to hibernate callbacks
References: <20260309083622.717803-1-pengpeng.hou@isrc.iscas.ac.cn>
In-Reply-To: <20260309083622.717803-1-pengpeng.hou@isrc.iscas.ac.cn>

--------------hs29NsfQFLuM860P8kEdl2C0
Content-Type: multipart/mixed; boundary="------------y9t3zWFL0v0uuF0Tre27fsJl"

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

T24gMDkuMDMuMjYgMDk6MzYsIFBlbmdwZW5nIEhvdSB3cm90ZToNCj4gRnJvbTogcGVuZ3Bl
bmcuaG91QGlzcmMuaXNjYXMuYWMuY24NCj4gDQo+IEluIGN1cnJlbnQgbGludXguZ2l0ICgx
OTU0YzRmMDEyMjApLCBnbnR0YWJfc3VzcGVuZCgpIGFuZA0KPiBnbnR0YWJfcmVzdW1lKCkg
YXJlIGRlZmluZWQgYW5kIGRlY2xhcmVkIHVuY29uZGl0aW9uYWxseS4gSG93ZXZlciwNCj4g
dGhlaXIgb25seSBpbi10cmVlIGNhbGxlcnMgcmVzaWRlIGluIGRyaXZlcnMveGVuL21hbmFn
ZS5jLCB3aGljaCBhcmUNCj4gZ3VhcmRlZCBieSAjaWZkZWYgQ09ORklHX0hJQkVSTkFURV9D
QUxMQkFDS1MuDQo+IA0KPiBNYXRjaCB0aGUgaGVscGVyIHNjb3BlIHRvIHRoZWlyIGNhbGxl
cnMgYnkgd3JhcHBpbmcgdGhlIGRlZmluaXRpb25zIGluDQo+IENPTkZJR19ISUJFUk5BVEVf
Q0FMTEJBQ0tTIGFuZCBwcm92aWRpbmcgbm8tb3Agc3R1YnMgaW4gdGhlIGhlYWRlci4gVGhp
cw0KPiBmaXhlcyB0aGUgY29uZmlnLXNjb3BlIG1pc21hdGNoIGFuZCByZWR1Y2VzIHRoZSBj
b2RlIGZvb3RwcmludCB3aGVuDQo+IGhpYmVybmF0aW9uIGNhbGxiYWNrcyBhcmUgZGlzYWJs
ZWQuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBwZW5ncGVuZy5ob3VAaXNyYy5pc2Nhcy5hYy5j
bg0KPiAtLS0NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL2dyYW50LXRhYmxlLmMgYi9k
cml2ZXJzL3hlbi9ncmFudC10YWJsZS5jDQo+IC0tLSBhL2RyaXZlcnMveGVuL2dyYW50LXRh
YmxlLmMNCj4gKysrIGIvZHJpdmVycy94ZW4vZ3JhbnQtdGFibGUuYw0KPiBAQA0KPiAtaW50
IGdudHRhYl9yZXN1bWUodm9pZCkNCj4gKyNpZmRlZiBDT05GSUdfSElCRVJOQVRFX0NBTExC
QUNLUw0KPiAraW50IGdudHRhYl9yZXN1bWUodm9pZCkNCj4gICB7DQo+ICAgCWdudHRhYl9y
ZXF1ZXN0X3ZlcnNpb24oKTsNCj4gICAJcmV0dXJuIGdudHRhYl9zZXR1cCgpOw0KPiBAQA0K
PiAgIAlpZiAoeGVuX3B2X2RvbWFpbigpKQ0KPiAgIAkJZ250dGFiX2ludGVyZmFjZS0+dW5t
YXBfZnJhbWVzKCk7DQo+ICAgCXJldHVybiAwOw0KPiAgIH0NCj4gKyNlbmRpZg0KPiAgIA0K
PiAgIHN0YXRpYyBpbnQgZ250dGFiX2V4cGFuZCh1bnNpZ25lZCBpbnQgcmVxX2VudHJpZXMp
DQo+ICAgew0KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUuaCBiL2lu
Y2x1ZGUveGVuL2dyYW50X3RhYmxlLmgNCj4gLS0tIGEvaW5jbHVkZS94ZW4vZ3JhbnRfdGFi
bGUuaA0KPiArKysgYi9pbmNsdWRlL3hlbi9ncmFudF90YWJsZS5oDQo+IEBADQo+ICAgDQo+
ICAgaW50IGdudHRhYl9pbml0KHZvaWQpOw0KPiArI2lmZGVmIENPTkZJR19ISUJFUk5BVEVf
Q0FMTEJBQ0tTDQo+ICAgaW50IGdudHRhYl9zdXNwZW5kKHZvaWQpOw0KPiAgIGludCBnbnR0
YWJfcmVzdW1lKHZvaWQpOw0KPiArI2Vsc2UNCj4gK3N0YXRpYyBpbmxpbmUgaW50IGdudHRh
Yl9zdXNwZW5kKHZvaWQpDQo+ICt7DQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0
YXRpYyBpbmxpbmUgaW50IGdudHRhYl9yZXN1bWUodm9pZCkNCj4gK3sNCj4gKwlyZXR1cm4g
MDsNCj4gK30NCj4gKyNlbmRpZg0KPiAgIA0KPiAgIGludCBnbnR0YWJfZ3JhbnRfZm9yZWln
bl9hY2Nlc3MoZG9taWRfdCBkb21pZCwgdW5zaWduZWQgbG9uZyBmcmFtZSwNCj4gICAJCQkJ
aW50IHJlYWRvbmx5KTsNCj4gDQo+IA0KDQpJIGRvIGFncmVlIG9uIHRoZSBwdXJwb3NlIG9m
IHRoZSBwYXRjaCwgYnV0IHRoZSBwYXRjaCBpdHNlbGYgaXMgYSBsaXR0bGUNCmJpdCBzdHJh
bmdlLiBUaGUgaHVua3MgbGFjayBhbnkgaW5mb3JtYXRpb24gYWJvdXQgbGluZSBudW1iZXJz
IGFuZCBodW5rDQpzaXplLCBhbmQgdGhlIGNvbnRleHQgaXMgbm90IGNvbnNpc3RlbnQgKDAg
LSA0IGxpbmVzIG9mIHVubW9kaWZpZWQgY29kZQ0KYXJvdW5kIHRoZSBtb2RpZmllZCBwYXJ0
cykuDQoNClBsZWFzZSBwcm9kdWNlIHRoZSBwYXRjaCB3aXRoIGEgcHJvcGVyIHRvb2wsIGxp
a2UgImdpdCBmb3JtYXQtcGF0Y2giLg0KDQoNCkp1ZXJnZW4NCg==
--------------y9t3zWFL0v0uuF0Tre27fsJl
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-----

--------------y9t3zWFL0v0uuF0Tre27fsJl--

--------------hs29NsfQFLuM860P8kEdl2C0--

--------------4HXLkhp0pooATIYDhpvMKsoZ
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/Ey8FAmmuiO4FAwAAAAAACgkQsN6d1ii/Ey/z
Wgf/QYyREP0AsSMRRar57XwrUdlkHBBy2KQ1h82B4amy0RmHL7CQ4fiW5Gvca/4eMjjE4bK3IRn9
o6nrVU/imftyXnTEV0MFh0yocZQDknDa2C8dcYMGaMFu08+gO+CXNWNnWKTPKPCdJEiJbVY4Llj8
bAcQnYsGEXqd0LkRhXTEcJnxK2gNDQDk7F/UJxrDuXS2M2VPF8hpK/TpLI2kmmyNlLqmZt+uBRQf
OS9PM4Zcs2/niwLkNdZ4WMWliVZZtYuyiLNYpc7NIgk7ogayHVuY31NctQ3+9UvPnelHoxuB2FOg
38Pj4/wDd2wh49rPZVNrerc+a9ejlX1nNSPTyyvogg==
=wdKK
-----END PGP SIGNATURE-----

--------------4HXLkhp0pooATIYDhpvMKsoZ--


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 08:47:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 08:47:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249168.1546681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzWGS-0000W6-WE; Mon, 09 Mar 2026 08:47:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249168.1546681; Mon, 09 Mar 2026 08:47: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 1vzWGS-0000Vz-SC; Mon, 09 Mar 2026 08:47:00 +0000
Received: by outflank-mailman (input) for mailman id 1249168;
 Mon, 09 Mar 2026 08: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=HTGA=BJ=isrc.iscas.ac.cn=pengpeng.hou@srs-se1.protection.inumbo.net>)
 id 1vzW78-0007Y7-EB
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 08:37:22 +0000
Received: from cstnet.cn (smtp25.cstnet.cn [159.226.251.25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2bf5d2b0-1b93-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 09:37:17 +0100 (CET)
Received: from localhost.localdomain (unknown [210.73.43.101])
 by APP-05 (Coremail) with SMTP id zQCowABX7A+yhq5pUEjxCQ--.52456S2;
 Mon, 09 Mar 2026 16:37: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: 2bf5d2b0-1b93-11f1-b164-2bf370ae4941
From: Pengpeng Hou <pengpeng.hou@isrc.iscas.ac.cn>
To: jgross@suse.com,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com
Cc: xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org,
	18291782795@163.com,
	pengpeng.hou@isrc.iscas.ac.cn
Subject: [PATCH] xen/grant-table: scope gnttab suspend and resume helpers to hibernate callbacks
Date: Mon,  9 Mar 2026 08:36:22 +0000
Message-Id: <20260309083622.717803-1-pengpeng.hou@isrc.iscas.ac.cn>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:zQCowABX7A+yhq5pUEjxCQ--.52456S2
X-Coremail-Antispam: 1UD129KBjvJXoW7AFyfCFW7Wr4UCw1UKF1xKrg_yoW8Xw1fpF
	WDJrWjyrZ8Ga4SvFWSya4FyFy5Ca9xJayxJrs8urZxZa1xGF1xArWSqFy0vrn7GrW8JF4v
	yFsFg343Cr4UZFUanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUvv14x267AKxVW8JVW5JwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26r1j6r1xM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4j
	6F4UM28EF7xvwVC2z280aVAFwI0_Jr0_Gr1l84ACjcxK6I8E87Iv6xkF7I0E14v26r4j6r
	4UJwAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0
	I7IYx2IY67AKxVWUXVWUAwAv7VC2z280aVAFwI0_Gr0_Cr1lOx8S6xCaFVCjc4AY6r1j6r
	4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwCY1x0262kKe7AKxVWU
	AVWUtwCY02Avz4vE14v_GFyl42xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr
	1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE
	14v26r126r1DMIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7
	IYx2IY6xkF7I0E14v26r4j6F4UMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E
	87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r4j6r4UJbIYCTnIWIevJa73Uj
	IFyTuYvjfU8wIDDUUUU
X-Originating-IP: [210.73.43.101]
X-CM-SenderInfo: pshqw1hhqjhx1rx6x21ufox2xfdvhtffof0/

From: pengpeng.hou@isrc.iscas.ac.cn

In current linux.git (1954c4f01220), gnttab_suspend() and
gnttab_resume() are defined and declared unconditionally. However,
their only in-tree callers reside in drivers/xen/manage.c, which are
guarded by #ifdef CONFIG_HIBERNATE_CALLBACKS.

Match the helper scope to their callers by wrapping the definitions in
CONFIG_HIBERNATE_CALLBACKS and providing no-op stubs in the header. This
fixes the config-scope mismatch and reduces the code footprint when
hibernation callbacks are disabled.

Signed-off-by: pengpeng.hou@isrc.iscas.ac.cn
---
diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c
--- a/drivers/xen/grant-table.c
+++ b/drivers/xen/grant-table.c
@@
-int gnttab_resume(void)
+#ifdef CONFIG_HIBERNATE_CALLBACKS
+int gnttab_resume(void)
 {
 	gnttab_request_version();
 	return gnttab_setup();
@@
 	if (xen_pv_domain())
 		gnttab_interface->unmap_frames();
 	return 0;
 }
+#endif
 
 static int gnttab_expand(unsigned int req_entries)
 {
diff --git a/include/xen/grant_table.h b/include/xen/grant_table.h
--- a/include/xen/grant_table.h
+++ b/include/xen/grant_table.h
@@
 
 int gnttab_init(void);
+#ifdef CONFIG_HIBERNATE_CALLBACKS
 int gnttab_suspend(void);
 int gnttab_resume(void);
+#else
+static inline int gnttab_suspend(void)
+{
+	return 0;
+}
+
+static inline int gnttab_resume(void)
+{
+	return 0;
+}
+#endif
 
 int gnttab_grant_foreign_access(domid_t domid, unsigned long frame,
 				int readonly);



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 09:23:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 09:23:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249189.1546689 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzWp5-0005fl-Fv; Mon, 09 Mar 2026 09:22:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249189.1546689; Mon, 09 Mar 2026 09:22:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzWp5-0005fe-Cf; Mon, 09 Mar 2026 09:22:47 +0000
Received: by outflank-mailman (input) for mailman id 1249189;
 Mon, 09 Mar 2026 09:22:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mqfy=BJ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vzWp3-0005fX-A0
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 09:22:45 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 86307fa3-1b99-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 10:22:43 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by LV4PR03MB8284.namprd03.prod.outlook.com (2603:10b6:408:2e0::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Mon, 9 Mar
 2026 09:22:39 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::20d8:6571:d4aa:166c]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::20d8:6571:d4aa:166c%4]) with mapi id 15.20.9678.024; Mon, 9 Mar 2026
 09:22: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: 86307fa3-1b99-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=giDUUfhdXUGAJg5eIfqbMDYy2HuO4dejAhx6ILZONa8uTpGYvpk4DSuW5eQRnoscqqOjiL1tj1vOMJKBenwrRyJtnfb7sYRLqh+JJ/Al8MtdTCePDHo4Lv439nnclqNHNwo88iah9EubcVFTLf9j/v2d6qGjOOgHqL0tMgCeFs0+RWENvTagJrmY8zS+HuqyvMqf8p6L95mhKf1+tXPxCOVkpaJm3xmhVcg31yuhBXI0iVA0YhU5+cQ6MPDEFsZ5WqkjfpMdl8QcYFQpBIHX4XADAiMydzP39GI+noegW5ztjlwYyNTnMHbvsv6dwZlatU/eDLG8cfFKrhtmfO4q9w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DCyJRSxi8Ee2tAMTwB+64n2mYRJXbAoslZsTiGaa2TE=;
 b=JnZASNDYUeSxEiXdV+JGITpkCd3zxbualZcHhswxXaJGCN0f9tZ0c9OnIFhf3q4Up7Foutu6NbFlBPmsHqkNqio+t3JuAOViDsjexZwfk+POAfBvoxkkep7JuY3vYcoFP6CWDJVJOHsNU1rkgWL0kSFCggyb35NQhQdvmHSqLHsJYv24d771DLbXxnXaMgTmah7CTCDpATpN3XAs/Z0zNTgv1z+4YTYdmIe5jQ0vTLT3DICrV8RTeYmmM3VGAWeUEfjVaC82Cb6GFDQa1SVK5ITKUbACj+VeoglPssKPY4CUavFcjRJUKA7lOmCak9Wgi+nQ4My+XmUkwZJHr0WcQQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DCyJRSxi8Ee2tAMTwB+64n2mYRJXbAoslZsTiGaa2TE=;
 b=cPObCUnpxXDtkL78tJVsMXQW2MWx6+ypgPuqQOMDseEftr1N3LT+HnM0oJ+lBFH//uS0oxpR6/Wo79UWgpHXVKQbucYvRgyFbT57NXEnopvbSOJBL+uOD+FoszKu5G5vg0GfJB+TeGX7BZKEcOhJ1muOtSXzoBHYRSwyChKBC1Y=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 9 Mar 2026 10:21:18 +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] core-parking: shrink and relocate core_parking_cpunum[]
Message-ID: <aa6RDlOFKXyBAjFR@macbook.local>
References: <af03f611-ef38-49d0-ac7b-4bad39db46c1@suse.com>
 <aarik2Zlgxc6-Ffp@macbook.local>
 <8b7e5cf6-e259-46a1-9af9-8b75242d9c7c@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <8b7e5cf6-e259-46a1-9af9-8b75242d9c7c@suse.com>
X-ClientProxiedBy: MA3P292CA0014.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2c::15) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|LV4PR03MB8284:EE_
X-MS-Office365-Filtering-Correlation-Id: 634c1685-9318-4a57-349a-08de7dbd5b89
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:
	GPvctX4W1IzA1IgI6d8WPBsFWge7BAuPMNupBRHrROQuNR5nl3Fueta28pLkzqIIRBjq80TDsbf5wxJb2W4PpUOpRDhcFXuxNWfdYtpaqR4D3PidHNk4yE14tVoVirZVRaeASz1n32MLrMpq/2MeDdlilrWZJRRqhO5dnkzM2RDG2DveFihEiGUkUjJcxLaAM/aXxNXSSiiWa0e6szGLjt6UysF6ZOdHwucxTx48j/GEVEe7qMCMOPsak9wqRJQFDL6jpxVawm64TGfKpnaHNu37pGwSQQaX7DB+aCqsGwQ2mTPBaLG+iQc/syHiR+tYYqU8IfzwAji4ocFl0VCYkW/SA1HVU4ay6fL95qWpkoM/olGE4dsmiKW/9Xn8YX7WrsE1B+9Wp3jMjQsRC3EmMiLwi3L+Z7vihqNsDQWb336c+RbzFxoCysypQwIWOAEdyzpp7xJ3sp3n/MiqyJEROeWtMf7eoLMgzeLIDBLfH/qREifOffmUnW9Uoy7BA4Wo86roZc5ANxhHmMM3yq+x9390NAI/jccBC5uVYgBFCnAJ/EJLvp6ju0h+vvEF0X+TnbqJVamNEfdC93Rvd4eD5Ke+Myy+7lTG+tJ5KY9iXkaDZvSouHgM9qKL/1O7Oe/aIyaay5bxoCPfXXavBAumf2KUY+H6LrlFlK8Tq9uLAT2UzkaIj/ehgiMAjDYwS85ASpQkGg9+IZb+Ik2SVXYZYU96V/bSor6QfgSuBJCuxtw=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY1PR03MB7875.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ODZVWGZYeElCbWN1dEhmdFFjcUwxdTlXQXJQeE5xUnlkV1Yxc0toY1c3WnpJ?=
 =?utf-8?B?WkFQVEttSTBOeGxtSXpoSUJlVnV3NXhaTmdBbnI4bXYvcGtFSWRXSkJFOS96?=
 =?utf-8?B?UFBBUEE2MTdtMlhmdnZGMHJNbmhRckJiSldEZlhhRUpMQVpqM29heFlOeWRq?=
 =?utf-8?B?bmpJV2tSOXF4ZjhuNnhoVVkwUTBxbS9CUkNEKzBvd01zVUF0TlBGbWZQMjRy?=
 =?utf-8?B?UjRJMGxVR1FQb3c0bUNBYzJ2MGJIY1AyMGU4R3NsaXpmOEswSWY0bDZxc2tE?=
 =?utf-8?B?VnRLNm9BVXlURzBiVXNVYjYxdW03a25SbWxmTjZ5VkRDN3NFZzRMVkd4QkFw?=
 =?utf-8?B?TEZEWkRhY0M3NVdWRnFScWtUVmlCb0gremR3Q1RuRENBdFc2blcrRVBuM1Bu?=
 =?utf-8?B?cms0N3hjS2NYR1RDRUh4RThWcTZHOXpqUWVaU01sZG04YU8xWnlHd3BpdjFm?=
 =?utf-8?B?L3lRUkpaczBJRjBtMmJxdTVjcjdRU1lHc0liVmtEbUJVNVIrekJLT3plU2xQ?=
 =?utf-8?B?ZlJHekMxUjh4bWRqVUJJem1PTmR2d1lHb2pDdHVPS3pHa2djTlJKRjBvSU5s?=
 =?utf-8?B?UEl6Wi8vTnZKMkFKWUttZGliQWgvZzdFNnVWQytMYWpFK3FDL3BRNUs5WENB?=
 =?utf-8?B?L3FVMTRla1Q4UlVZSm5DUGNmUjZEdDR4SXNtUkF3dDR1Qjdxa05qQjBZYXJR?=
 =?utf-8?B?WGQ1K2xhaUk4ZGhIWnR0eFhXeWV6dWg2VVg4T1FqY0hqeitEdHpUUkp1bHNx?=
 =?utf-8?B?TGM1ZEJBTXVRaVNBQk1CNTA5RVc5UDduSlkrZllLS0ZvR0Z2TURSN2QyNGJE?=
 =?utf-8?B?OGhDTjlJOW1OY1oyZndVSXZ4ZmJlV0kxVHQybWN0YXB4Vmt1S2J6b2RUSDVF?=
 =?utf-8?B?M0lLaGw5SmRtN2lBdHlBOUxlMkkxYjkxaFdRTHJScTQxd3hhS2QxeDQ2Tlda?=
 =?utf-8?B?Qi94VStTTVJrd1pKWDJscGZncVhSaGdDR3BPZ04yd293bUN5cVRVZjYzRStM?=
 =?utf-8?B?QzYvSzNKblNhZTRQVzYybXNOV203dnNadzR4OWZPTGhpYkRFUmhVc1BJRXdB?=
 =?utf-8?B?d2ZmYjZOS3lEd0ZnS1p4TUZmd2d2ZkcrUGluWThJTEF6bnNsaWVsZ0FhSzRR?=
 =?utf-8?B?cjJsNnVkczJpVW14R2NPYXYwdHJ5OVIrMnZ1T01wTmpCa0luWFExTGwwT0xK?=
 =?utf-8?B?N0lzeG5yOFJQUGh3a2ZTbnlkanBlSmY0MnVTcTltWnRYMW1VdW5nNCs4Qml2?=
 =?utf-8?B?Ujd6bzFjOU4waDk5cVRzSktaWGZKVmI1S2VreUE1REdBYW1lVWM0OVpkb3h1?=
 =?utf-8?B?YjE3aGEvcFo0NmJkVXlUUnkwYWlYb2xCYThJV0pCU09ySnowQVI4ZDU0VCtB?=
 =?utf-8?B?TnYxcHlaR1hISDRDTkNTaTMwUVAzUnJNZGZ5aStNanFyNUo3NERYc2N5ZzBY?=
 =?utf-8?B?ejBUSmx1Yzd3ZVVaT1kzOGpmRlNrQ2ZVazhpU21RSUp0MHg4QU9GTUxUL2E2?=
 =?utf-8?B?QmlVdFU4ejRZMUx6bEJRM01YVVRDUmRzWnczVFdhaHR2cmE3YXBTZmQ2YVdP?=
 =?utf-8?B?eUpKWDM2STdTNkFZTWhGVzRnK0ZHMmZOVTl4c2h4NjhOdlE1QnRXT0lRbm9h?=
 =?utf-8?B?NUNhU0d0OEhxRjRBaGVCWmpTWURSZGhrSWNYbVcwU2pZOUZUMDNQY0E5UDI4?=
 =?utf-8?B?c1F2dVZLV3ZuYzJLSUM0K1NqQUgwNHl2enp0cHRTVWloVWdqdWY0dDlKazBM?=
 =?utf-8?B?L0xGUHFEckl6RFZJS2RYbWRjL2NmYjRnQ1pZQ3dRU3doNUt0QWtlNlRtWlpY?=
 =?utf-8?B?ajM5c2RWM3Uzd2dTR2N6UU1mOElwam9DMHFVUVUyUjBCeVhtV3Q5SGR2R1Zn?=
 =?utf-8?B?TmxISm5DN1lzS1R3NGQ2M0gwWFRTcXRxWFhzVHliTE5mbENiOGJQYU9HeXZQ?=
 =?utf-8?B?VE55RjVpNC9nRmRicnNtaVg0eGJCd0lyU3VFTkdkQUZ3L3NsUElUd2dCSDdT?=
 =?utf-8?B?Z2t6cTdqaThQSEQ1WlE3d0NIdGJxRjUrdXdNSnMyQ1VWWWtyQitTQ0l5VVRR?=
 =?utf-8?B?Y3pTREo2UlZIMkhiNU5lRXJleDhUMXhnZjVIT0RmWnV2MHJSRCtRZHJYNUh1?=
 =?utf-8?B?dHZqZXZMVkJWRUdjQXFIM25IOU1YQ2tldkRlUVlycUhyWHoybXRJRXkyVFkv?=
 =?utf-8?B?dXZqdWo2SGVTbDRVQjVZVVl2UVhNcVZoUjA5UDJLbDlFbjhOTnRaQlNDaU9L?=
 =?utf-8?B?T0UyTTJ4MUljNXpFeE5vVFl5K3ZGdEZKMkowZXRsc1o2VGxPTzdMT1V2eWYv?=
 =?utf-8?B?b2FNYlpCSHpmR25IOEI0UVI5U2tsM24zdy9HVG1rSG5OUzlHd1BTUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 634c1685-9318-4a57-349a-08de7dbd5b89
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Mar 2026 09:22:38.8217
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: vWHn68zK64jqkkAknehiL4AY3OgqEBXQGh+RZsUxAEzRVxdcOxKFtoampW+78PFH3z9odbSerBgU4Xd41NyMpg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV4PR03MB8284

On Mon, Mar 09, 2026 at 09:01:35AM +0100, Jan Beulich wrote:
> On 06.03.2026 15:20, Roger Pau Monné wrote:
> > On Wed, Nov 12, 2025 at 04:38:13PM +0100, Jan Beulich wrote:
> >> 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.
> > 
> > Can't we just allocate this memory using xvzalloc_array()?  If we do
> > care about it being too big certainly allocating only when needed, and
> > based on the number of possible CPUs on the system would be much
> > better than playing games with the array type?
> 
> Hmm, yes, how did it not occur to me to dynamically allocate the array?
> It can't be used ahead of core_parking_init(). (Not shrinking the array
> element type will still be a little wasteful, but perhaps that's
> acceptable to keep the code simple.)

We don't shrink other similar element types based on the supported CPU
count.  Iff we ever wanted to do this (which I'm not sure) we should
introduce a new typedef that generalizes the optimization rather than
open coding it (ie: cpu_id_t or similar?)

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 09:49:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 09:49:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249200.1546697 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzXF5-0000Cy-H0; Mon, 09 Mar 2026 09:49:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249200.1546697; Mon, 09 Mar 2026 09: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 1vzXF5-0000Cr-E0; Mon, 09 Mar 2026 09:49:39 +0000
Received: by outflank-mailman (input) for mailman id 1249200;
 Mon, 09 Mar 2026 09:49: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=lNRQ=BJ=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vzXF4-0000Cl-PU
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 09:49:38 +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 484bca3d-1b9d-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 10:49:37 +0100 (CET)
Received: from SA3PR03MB7419.namprd03.prod.outlook.com (2603:10b6:806:39c::6)
 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.9678.18; Mon, 9 Mar
 2026 09:49:33 +0000
Received: from SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc]) by SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc%6]) with mapi id 15.20.9678.024; Mon, 9 Mar 2026
 09:49: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: 484bca3d-1b9d-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AhKYOtCVY8fo+83hBBKnvCE1AhZml82iSrrLTtv0AZHyLkHBWtRjwhiIlFbJkLLGux53MpePhy7AnEs51D9Hdr+JRXXK6z3YdIFnvQhFNDi1AM+VM8gWJwRwiOsIm+HLfOFLhmFmv+bfuHM8M8lH8hiQxCvdQdxuNHhcHp0JTinHTv/b6ptn7mpwipdi8LrLKBVgRX9jcmS1EFD+2PNA/r+RiVtNL7+8kvotgjdlmAqEtcUVWFhR5RABvyM9DMciRloromj9j8vZ8jQzMjfCcCbYCdWLRhdexT4EKvdV/Z+X7nf6lhzwudDC0e/yVj8TDktSMekAH+i6dzgpzKnNBA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NYJxUgiPO3of0y9hfACZwYYPr9iPHgeW7LPoEkymUb4=;
 b=njuy9FN5npYlGSzIKieOmvk2B0FJEBaYetq4bHyQAIHeL9Ye+NgB1ECZH3U/ntD6O6E87DM66iC+qLuDkFqZcPFThNZmfMYZFesa9jOT6tThWFuf+WW+YHR8Cr5WyET0Ovlz54Jc6iW+fmCqM/QZv25FkKEmZgtuvOY+MrFftHSjrOJsLcfE4Su2lvPEMwUUZpoYJTpTk/+PWV/OedpKiS0stYlRKBzCZYKYkoTt38miA8/jviqyCuag+6kErqj4fOy2GJc5ssX8ey7zoC60l191iQ0bNi+pmQszf6vg/gcZNJ//aVVI5LPcyNY8v6XZ3JaMWfgaxso8tq0rw9JQ1Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NYJxUgiPO3of0y9hfACZwYYPr9iPHgeW7LPoEkymUb4=;
 b=n384mOnbU1hFJA0GPZ6K9v68VUttNafVRH7g9xS2Z/qJTN1xHDdDaA/G4DVUImwAzicwz/JWgm3PhOp5SlXKXTYSOwH11UGStOEZGC0iZBh1+UH5IDEY4P7GVvcYnNsm7Yuvuf2FvTYP+SE3j6bdznK6rAODv0usgTD7bbWmY7A=
From: Edwin Torok <edwin.torok@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Roger Pau Monne
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3 1/1] tools/tests/x86_emulator: avoid duplicate symbol
 error with clang: use -O0
Thread-Topic: [PATCH v3 1/1] tools/tests/x86_emulator: avoid duplicate symbol
 error with clang: use -O0
Thread-Index: AQHcrYXnXQSbfSYkDE2XRiS+3V/VSLWl1toAgAAhtYA=
Date: Mon, 9 Mar 2026 09:49:33 +0000
Message-ID: <5B5A0A1C-B7EA-47F2-8CF9-3000CF4414F1@citrix.com>
References: <cover.1772813802.git.edwin.torok@citrix.com>
 <a4a29c95b06a0352889bb6c032c19be6e4cf8288.1772813802.git.edwin.torok@citrix.com>
 <49d22b35-f5d8-4992-a32a-bb3f7c3e5ad2@suse.com>
In-Reply-To: <49d22b35-f5d8-4992-a32a-bb3f7c3e5ad2@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA3PR03MB7419:EE_|IA3PR03MB8454:EE_
x-ms-office365-filtering-correlation-id: fee31f6c-a740-4b55-59cc-08de7dc12abc
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:
 tZDg1XrttwgL1N99RUTF4OITvRmArSa8fx/WdaAOTPMkhmiROY8NZbtTbqmSDD+7jN+6tpucJHRyXUjkyfu6p5+02m2zO/0Jr0VujPeXEW6PvMZe/Aj95wNtmIWBUPMw9Zhoz34v6au1auoU9KCHXnSv/iQ7qZtdJrDKwSkS0ylJQQphb3FaL8c8AgAywn2e/Xx2AqRhuid85NPbc+qVuHZ/2Xpgudy+fnPOxPGFb2OR6sjs2rT3I3faltgHQhfl/T8LWF95ujPkwGTFqDEn0LojFal1mjsPlJQFF/6nGlZf/OG194JnuO21iP6pzkwsU5G/35uZKuM9CL9dLxkmnygNaZ5dejXSZzKDPG+Q5br01b0bnqMF7uF7sGk/bpmn+16hb94GZTX54dmh5KSu0h1/1MrG/mgBZYzu3VSnd3Z4vZFueb/9IqmVjlATJOV8wdT1c41TKfET1eIAYA+6bwwb27zUP7cdI/+hYqYPLr7RIT/ceDYQkThfY8qFCRw5Z4BEeSJUBDLWWeSnG49nIFeE8Z7UUbAysurvLvJItEEGlCJUamP0pfahp4don8J5C39sQPmJ/ugs2fkpdXaDEU/NHuGhqFaChqdcnt7/eZvBnbR021AxzQ5f3PMINOdKe7WlqTs79w8LyPNU1wCiaqdmT5VmxnZVXIt0G5EQNe3agglCL41cgbAWwmkYcsoxpNOwzXeTlGp1uMK7kmYdApzSXH796R1LG0+reA+s4t/f+bYqz9oGL4Ifh3r58hPni0QwecN3Hu9XS7Nq2D1fJSFLg3P4fuT/FRdRp8djji4=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA3PR03MB7419.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?VVdnWFFxUTE4K0pOT2dhaUNOR2RzNXZ2YTZXMjAvZ0hsTXNRWHdmRXUxNk84?=
 =?utf-8?B?bjRWdnhtd3FHb1gxS2V1RnBaQXhCeWtYMnlPRFg0VVpUVDRjZmFycThCTUs2?=
 =?utf-8?B?UlltZ09YWU1FK09IU3lpMENqUlNSYkdSdUVKV2M1a2UxR21XeE9kZnZkNXNR?=
 =?utf-8?B?cGVWRXlxaG9LcjRVbS9VRS9qRWN0bytOdmk3M1VSZGRsT3FiVDkzdUFzSC9i?=
 =?utf-8?B?RzdWaFd3ODhJQUJtWTRqazlLaEFUWVdxbnRWbnp0cU42R3hNaWM0SHUxands?=
 =?utf-8?B?b0VUZ202a0JnMk1uc1I4SzdoazIwTU15V25IblFiT0kwQ0FZL1lOZUlXWE5T?=
 =?utf-8?B?K1ZmUmx3bzdZQVUxWWNIeXAybGRHdENYVWJYbjFsRHNheEhnVjIzOHE0b0hV?=
 =?utf-8?B?QjlRdzBDSmlrTXY4UDkzc2JRMWJ2NWQ4bmQzZmJHbEdaQ28wU0I5Rnk5Z1FT?=
 =?utf-8?B?RlRpenFRTkI4S3JabWVmQnhET3pMYTk0dnBRc1gxOG9iY0g4M0FaYU1VcXZ4?=
 =?utf-8?B?ak9hZ1BlNnJmVGlpK3ZFMFRIUDRwbFZTRHNiVGpja2dQN1h4MjlHM2wxYktz?=
 =?utf-8?B?SDJVdXZQaEhhNS9pdjdNM3gxeUY0QmNyV3FDa1RKZzI0T2FhTHV4M3VWb3g1?=
 =?utf-8?B?NkJ3SnRiNWhnTVc4OGlMN3hZcmE1cFUyWUJJVDZCbkpjSTQwYkw2NXhoS1Vm?=
 =?utf-8?B?NUdwWHg2NG5jWWFRUGkweHBVU0huVHMzamtiLzJFMUlHL01Rczh6dXdXaGlT?=
 =?utf-8?B?Wmk4ZHZxRWdwWmh1WHZZRnZkVDk3SEhUSHBDTDZNNm1aS3VEcUwvWmVHT3N0?=
 =?utf-8?B?RmplNGxSUHRRWlBpdXNmN3pIbFliYjU3SmMyb0NBbmFsaXdndm5MeUgxSkVD?=
 =?utf-8?B?cW5NK1VMYW0xU081OXQvZDYxekRDVktzMUZFYWhLMm1jZFNsb25CdlVUMms2?=
 =?utf-8?B?K05Jd0pXY3doc25mMm4xTXFZVHBrbkplTi91MzA0Y1lyTmM4L3ZFbkdxZmNB?=
 =?utf-8?B?VmNxUzBxZFNUY3JaT0ozTVdHa1YrSUEydWZWL2MwOUhKYXJaNjFheG9VZm1z?=
 =?utf-8?B?N1JlZThSVm54YUhXK1k5Z05Edk91TGQwWTlLRmdrQWtlUkJzWFJJUk9CZFJL?=
 =?utf-8?B?ano1cWMyWkZReGQ5V3d4Rlk1UnRLV2JMNHRIbDc5aUQzOW1DUXNYNUxpOXFx?=
 =?utf-8?B?aWtGR3A4SGxRZlVjeTVPWGNzbWFTOXpFbk1zQXBLTWFLWDl2REx5MmNYU2xL?=
 =?utf-8?B?bUMzbGNmeVZOMThUTGFlUTZKSjVBK0hLb0YwMHlaSlMxMjFLYkRsZW9LeXA2?=
 =?utf-8?B?MjA3RjNzc28rNyt6d3pER1JVZVZyWXYvSi9BTk01L0YxbVN5NWp4RDNsd1NE?=
 =?utf-8?B?QnVLcGs3VkRmczVJUTEzRlZlL0FFWmw0TkEyMmxYcGg3ajlVbWhxYm5qNTNr?=
 =?utf-8?B?R3FxbitzMW14Z29SWUpQanpUK0w2aVZhbnlnUVZuTmZOL1FXbmJvQnptMVJj?=
 =?utf-8?B?L1lkaUtCcWZyTEN0MG1nTXB0NGN1TGRybjFmbzYxTnlRMGVXZmwwSTJqNHFN?=
 =?utf-8?B?ZFNXcVVnSWNjam5YTlVUbzFWN0NMenNuN1pvS3JKN3YyTUlJdFZYd1Y1QVh6?=
 =?utf-8?B?REIrbDhOZGhoMlJ5SmRyQ3pGVUdHTTM2UDJMTXhodTBoZ1BSU0o5c0V0RUhH?=
 =?utf-8?B?Z09YOTRPSm1pcThGQ0RUZytLWGE2KzNLSmlidGZWMEdkcThBTlU1TnY5V3BZ?=
 =?utf-8?B?MFUzNVpuZ3Q3ckVkZ3NxRWFwcUh5dXUxb1RFWW42bmN0V3l5REdNR1g0SzQx?=
 =?utf-8?B?QlExeXFPNG1jYU5nKzN0THlCRjQ3QjBnYnZsMmpYTERJZi82eE0rbFBGR1dm?=
 =?utf-8?B?a01KVzFIci9kUGxSa25GeG9kNjh0cXBoRGdGKzBTUWxQRUJNdlFaNzVjZ2xS?=
 =?utf-8?B?VklqYzRNLzVqZ25STi9xUVdPZENtcWlUdVBqYk8rTVllUVhqY3I4a0pqSlVp?=
 =?utf-8?B?QWVwNi90UzhLSHFYNmUyYTFjUU94Ly9oRnZMK3ZFQ3VRd1ZoMVNHSkJSSkZG?=
 =?utf-8?B?c1h5bVZLeE9sbVY3NHdiYXFJL1FodllDNkRsMFZuMlgzd0pTYjk4bHY1YU9N?=
 =?utf-8?B?ZmdNVDFCUGRabTZITEtYSWpyano2amZkd21tTHlIby80Z0RHOTV3TUJaM0k1?=
 =?utf-8?B?S3JtTFl6RGFLM1FPRU9WQWx4VGkxb0swd0V2TU5mS29QSXk3L3o0V0VPbDJp?=
 =?utf-8?B?NWdLdGUvM2RqNFRZQmZ6aUg0R3lzNTVrSmtjd25HUG9FODMyR0xHY0FjWTIy?=
 =?utf-8?B?ZExlM2U1ZWtpYzRMMGgzZW5OVXNqYmJvZk85T0R2RGtiTG1oeFdHeEJJeGdr?=
 =?utf-8?Q?NFJrgaLlpS58J7YU=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <1326BF537297954E827C06FAD71B89A8@namprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA3PR03MB7419.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fee31f6c-a740-4b55-59cc-08de7dc12abc
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Mar 2026 09:49:33.1413
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: MLiyHth4BibpM03gPcEr0JnRZwqsDFX4vYz3aG+0FmgYMteEXr4OlhWwR1SwodAHsr2hFLj+78oeTTNJ9i7s8Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR03MB8454

DQoNCj4gT24gOSBNYXIgMjAyNiwgYXQgMDc6NDcsIEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl
LmNvbT4gd3JvdGU6DQo+IA0KPiBPbiAwNi4wMy4yMDI2IDE3OjI1LCBFZHdpbiBUw7Zyw7ZrIHdy
b3RlOg0KPj4gY2xhbmcgd291bGQgZHVwbGljYXRlIHRoZSBsb29wIGJvZHkgYW5kIGVuZCB1cCB3
aXRoIGEgZG91YmxlIGRlZmluaXRpb24NCj4+IG9mIHRoZSBzeW1ib2w6DQo+PiBgYGANCj4+IC90
bXAvdGVzdF94ODZfZW11bGF0b3ItMGYzNTc2LnM6Mjc4MjM6IEVycm9yOiBzeW1ib2wgYHZtb3Zz
aF90b19tZW0nIGlzIGFscmVhZHkgZGVmaW5lZA0KPj4gL3RtcC90ZXN0X3g4Nl9lbXVsYXRvci0w
ZjM1NzYuczoyNzgyNTogRXJyb3I6IHN5bWJvbCBgLkx2bW92c2hfdG9fbWVtX2VuZCcgaXMgYWxy
ZWFkeSBkZWZpbmVkDQo+PiBgYGANCj4+IA0KPj4gVW50aWwgYSBiZXR0ZXIgc29sdXRpb24gaXMg
Zm91bmQ6IGRpc2FibGUgYWxsIG9wdGltaXphdGlvbnMgaW4gdGhlIHRlc3QgcnVubmVyLg0KPj4g
DQo+PiBVc2luZyAtT3MgbWlnaHQgYWxzbyB3b3JrLCBidXQgd2UgY2FuJ3QgcmVseSBvbiB0aGUg
c2l6ZSBvcHRpbWl6YXRpb24NCj4+IGFsd2F5cyBhdm9pZGluZyB0aGUgZHVwbGljYXRpb24gb2Yg
YXNtIGJsb2Nrcy4NCj4+IFRoaXMgaXMgdGVzdCBjb2RlLCBub3QgcGVyZm9ybWFuY2UgY3JpdGlj
YWwgY29kZSwgYW5kIC1PMCBpcyBtb3JlIGZ1dHVyZQ0KPj4gcHJvb2YuDQo+IA0KPiBIbW0sIHll
cywgdGhlIGdvb2QgdGhpbmcgaXMgdGhhdCB0aGlzIHRoZW4gZG9lc24ndCBldmVuIGNvbmZsaWN0
IHdpdGggbXkNCj4gaHR0cHM6Ly9saXN0cy54ZW4ub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVs
LzIwMjMtMDQvbXNnMDAyODMuaHRtbC4NCj4gDQo+PiAtLS0gYS90b29scy90ZXN0cy94ODZfZW11
bGF0b3IvTWFrZWZpbGUNCj4+ICsrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9NYWtlZmls
ZQ0KPj4gQEAgLTMyMyw0ICszMjMsOSBAQCB4ODYtZW11bGF0ZS5vIHg4Nl9lbXVsYXRlLyUubzog
SE9TVENGTEFHUyArPSAtRF9fWEVOX1RPT0xTX18NCj4+ICQoY2FsbCBjYy1vcHRpb24tYWRkLEhP
U1RDRkxBR1MtdG9wbGV2ZWwsSE9TVENDLC1mbm8tdG9wbGV2ZWwtcmVvcmRlcikNCj4+IHRlc3Rf
eDg2X2VtdWxhdG9yLm86IEhPU1RDRkxBR1MgKz0gJChIT1NUQ0ZMQUdTLXRvcGxldmVsKQ0KPj4g
DQo+PiArIyBjbGFuZyBkdXBsaWNhdGVzIGlubGluZSBhc3NlbWJseSB3aGVuIHVucm9sbGluZyBs
b29wcywNCj4+ICsjIHdoaWNoIGNhdXNlcyBhIGR1cGxpY2F0ZSBsYWJlbCBlcnJvci4NCj4+ICsj
IFVudGlsIGEgYmV0dGVyIHNvbHV0aW9uIGlzIGZvdW5kOiBkaXNhYmxlIGFsbCBvcHRpbWl6YXRp
b25zIGluIHRoZSB0ZXN0IHJ1bm5lci4NCj4+ICt0ZXN0X3g4Nl9lbXVsYXRvci5vOiBIT1NUQ0ZM
QUdTICs9IC1PMA0KPiANCj4gSSB0aGluayB0aGUgZmlyc3Qgc2VudGVuY2UgbWF5IHdhbnQgd29y
ZGluZyBhIGxpdHRsZSBkaWZmZXJlbnRseSwgYW5kIEkNCj4gZnVydGhlciB0aGluayBpdCBhYnNv
bHV0ZWx5IG5lZWRzIHRvIG1lbnRpb24gcHV0X2luc24oKS4gTWF5YmU6DQo+IA0KPiAiV2hlbiB1
bnJvbGxpbmcgbG9vcHMsIGNvbXBpbGVycyBtYXkgZHVwbGljYXRlIGlubGluZSBhc3NlbWJseS4g
cHV0X2luc24oKQ0KPiBlbWl0cyBsYWJlbHMsIHdoaWNoIG1heSBub3QgYmUgZW1pdHRlZCBtdWx0
aXBsZSB0aW1lcy4iDQo+IA0KPiBIYXBweSB0byBhZGp1c3Qgd2hpbGUgY29tbWl0dGluZyBpZiB5
b3UncmUgb2theSB3aXRoIG1lIGRvaW5nIHNvLg0KDQoNClN1cmUsIGdvIGFoZWFkLg0KDQoNCj4g
VGhlcmUncw0KPiBvbmUgb3RoZXIgcXVlc3Rpb24gdGhvdWdoOiBJc24ndCAtTzAgdGhlIGRlZmF1
bHQ/IFdoZXJlIHdvdWxkIGFueSBvdGhlcg0KPiBvcHRpbWl6YXRpb24gc2V0dGluZyBjb21lIGZy
b20gaW4gSE9TVENGTEFHUz8gQWgsIEkgc2VlIC4vQ29uZmlnLm1rIGRvZXMNCj4gdGhpcywgZm9y
IGFuIHVuY2xlYXIgdG8gbWUgcmVhc29uLg0KDQpPbmUgcG9zc2libGUgcmVhc29uIEnigJlkIGVu
YWJsZSBvcHRpbWlzYXRpb25zIChldmVuIGZvciBub24tcGVyZm9ybWFuY2UgY3JpdGljYWwgY29k
ZSkgaXMgdG8gZ2V0IGJldHRlciB3YXJuaW5ncy4NCkkgbG9va2VkIHRoaXMgdXAsIGFuZCBJIHNl
ZSBpdCBpcyBhY3R1YWxseSBkb2N1bWVudGVkIGluIHRoZSBHQ0MgbWFudWFsOg0KIlRoZSBlZmZl
Y3RpdmVuZXNzIG9mIHNvbWUgd2FybmluZ3MgZGVwZW5kcyBvbiBvcHRpbWl6YXRpb25zIGFsc28g
YmVpbmcgZW5hYmxlZC4NCkZvciBleGFtcGxlLCAtV3N1Z2dlc3QtZmluYWwtdHlwZXMgaXMgbW9y
ZSBlZmZlY3RpdmUgd2l0aCBsaW5rLXRpbWUgb3B0aW1pemF0aW9uLiANClNvbWUgb3RoZXIgd2Fy
bmluZ3MgbWF5IG5vdCBiZSBpc3N1ZWQgYXQgYWxsIHVubGVzcyBvcHRpbWl6YXRpb24gaXMgZW5h
YmxlZC4NCldoaWxlIG9wdGltaXphdGlvbiBpbiBnZW5lcmFsIGltcHJvdmVzIHRoZSBlZmZpY2Fj
eSBvZiB3YXJuaW5ncyBhYm91dCBjb250cm9sIGFuZCBkYXRhLWZsb3cgcHJvYmxlbXMsDQppbiBz
b21lIGNhc2VzIGl0IG1heSBhbHNvIGNhdXNlIGZhbHNlIHBvc2l0aXZlcy7igJ0NCg0KSW4gZmFj
dCB3YXJuaW5ncyByZWx5IG9uIG9wdGltaXNhdGlvbnMgZXZlbiBtb3JlIHRoYW4gSSB0aG91Z2h0
LCBkaWRu4oCZdCBrbm93IGFib3V0IGxpbmsgdGltZSBvcHRpbWlzYXRpb25zIGhhdmluZyBhbiBl
ZmZlY3QNCihmcm9tIHRoZSBleGFtcGxlIHRoYXQgd2FybmluZyBpcyBvbmx5IHJlbGV2YW50IGZv
ciBDKysgZm9yIG5vdykNCg0KSSBjYW4gc2VlIHdoeSBpbiBnZW5lcmFsIGEgY29tcGlsZXIgd291
bGQgZGVjaWRlIHRvIGltcGxlbWVudCBpdCB0aGF0IHdheSAoaWYgeW91IHJ1biBhbiBhbmFseXNp
cyB0byBnZXQgbW9yZSBhY2N1cmF0ZQ0KaW5mb3JtYXRpb24gZm9yIHNob3dpbmcgd2FybmluZ3Mg
dGhlbiB5b3UgbWlnaHQgYXMgd2VsbCB1c2UgaXQgdG8gZW1pdCBiZXR0ZXIgY29kZSksIGJ1dCBJ
IHdpc2ggdGhhdCB3YXNu4oCZdCB0aGUgY2FzZS4gDQpFLmcuIHlvdSBtYXkgd2FudCB0byB1c2Ug
YSBsb3cgb3B0aW1pc2F0aW9uIGxldmVsIHRvIGdldCBiZXR0ZXIgZGVidWdnaW5nLCB3aXRob3V0
IGdpdmluZyB1cCBvbiB0aGUgYmV0dGVyIHdhcm5pbmdzLg0KVGhlIG9ubHkgd2F5IHRvIGRvIHRo
YXQgY3VycmVudGx5IGlzIHRvIGJ1aWxkIGl0IHR3aWNlIChvciByZWx5IG9uIGEgQ0kgdGhhdCBi
dWlsZHMgd2l0aCBkaWZmZXJlbnQgZmxhZ3MpLg0KDQpJZiB5b3Ugd2FudCB0byBjaGFuZ2UgaXQg
SeKAmWQgc3VnZ2VzdCBzZXR0aW5nIGl0IGF0IGxlYXN0IHRvIC1PZywgd2hpY2ggaXMgcmVjb21t
ZW5kZWQgb3ZlciBPMDoNCiJJbiBjb250cmFzdCB0byAtTzAsIHRoaXMgZW5hYmxlcyAtZnZhci10
cmFja2luZy1hc3NpZ25tZW50cyBhbmQgLWZ2YXItdHJhY2tpbmcgd2hpY2ggaGFuZGxlIGRlYnVn
IGluZm9ybWF0aW9uIGluIHRoZSBwcm9sb2d1ZSBhbmQgZXBpbG9ndWUgb2YgZnVuY3Rpb25zIGJl
dHRlciB0aGFuIC1PMC4iDQpCdXQgSSBkb27igJl0IGtub3cgaG93IHRoaXMgYWZmZWN0cyB0aGUg
ZWZmZWN0aXZlbmVzcyBvZiB3YXJuaW5ncy4NCg0KPiBQZXJoYXBzIHRoYXQgd291bGQgd2FudCBt
ZW50aW9uaW5nDQo+IGhlcmUgdGhlbiBhcyB3ZWxsLg0KDQpIb3cgYWJvdXQ6DQoNCiMgVGhlIGRl
ZmF1bHQgSE9TVENGTEFHUyBmcm9tICQoWEVOX1JPT1QpL0NvbmZpZy5tayB3b3VsZCBzZXQNCiMg
YSBub24temVybyBvcHRpbWlzYXRpb24gbGV2ZWwNCg0KSeKAmWQgYXZvaWQgbWVudGlvbmluZyAt
TzIsIGluIGNhc2UgdGhhdCBjaGFuZ2VzLg0KDQoNCkJlc3QgcmVnYXJkcywNCuKAlEVkd2luDQo=


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 10:20:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 10:20:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249211.1546707 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzXid-0005Em-Np; Mon, 09 Mar 2026 10:20:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249211.1546707; Mon, 09 Mar 2026 10: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 1vzXid-0005Ef-KE; Mon, 09 Mar 2026 10:20:11 +0000
Received: by outflank-mailman (input) for mailman id 1249211;
 Mon, 09 Mar 2026 10:20: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=TKtW=BJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vzXic-0005EZ-Jc
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 10:20:10 +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 8b56890d-1ba1-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 11:20:06 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-439b78b638eso8627926f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 09 Mar 2026 03:20:07 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4852ad0ce60sm391471295e9.12.2026.03.09.03.20.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Mar 2026 03:20:05 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8b56890d-1ba1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773051606; x=1773656406; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=F2pCmSLQMzsaxAIlAFDiSmlwjrvfzsVeQwbG2dyIc88=;
        b=G2QtNvD/vAJkWvbDFpaOG1kQHEuoi+bzUH+NIiOwEcggn6CVazkycaznD4HWxlMM9V
         RUvV2BsSbkPmbtoz+fGZA5cMuTI3MGX0bY4NCrDk0JQx6+Xz1x4S65E/z4WaEK2v9SlD
         /jVka2fUPOHHRm8wilZR/vfhiEBf5/hsh3bNpCQBEs0Bfp3L+PyKxBG9L0TovZ90Nhi/
         R4TM6zaxfqC5TIcZLycYfG+N4kIewsYb1o5GFIEkL4COQrWHYbL9+EvyblyHeaFRSW4+
         ZXy9ErUPn9s2iSVkyFWlekFK+dAPCzhri6Kx/g46rPiNfq1HUG8vyVVUMd9Kng/TD+lf
         DwDw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773051606; x=1773656406;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=F2pCmSLQMzsaxAIlAFDiSmlwjrvfzsVeQwbG2dyIc88=;
        b=kA5nMvz+vs6AVFnVt16xSYvJ0t4nlWZXKsa04TG5w1/ivoELwF+WrOUz/8X1c54zGa
         x5TRiTEQrYGaXfg8D6225k6Yn37lchJ2mRA3FVP8wMY4wqK4pNJm7JXidkJ4CkpcfSHG
         /tz/4/+9KncPchdxlIrHFQzv5LDO6zH2lJ86dmo8BxaS5lYJGn1YwTXkf7CRkfMZWsYv
         RZCCSnwweX02u3NlG50FFPIvf0ADPUdGq1wjXGRmmp2aRBLJZ3RxBZcA9NWgnBxcMHlz
         ycGBiQSvJp9mLy9sHix3me3rIJK+/ZGdnJw8qGl4sU8bs+E4tvD3sESrYOz6HJzDqkro
         iNig==
X-Forwarded-Encrypted: i=1; AJvYcCXUH3UMnNIFc2uUGyjbA0xeDg/3u/Rz+TTRzEmiZRGhjkeSk4oBJgCUiINDxwhnamRDvHa0kj5306E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyWdQPG7nzgtGnAQvpPZOVXRB496Yw8tU0Tfdybsc9haBxrVmXt
	g8NlQd+Ws1ZPPVPCDIy8sNZEG5pY65l7f6b1TTBDz9etmm0rqS0ZXUGaLiri+/BnCA==
X-Gm-Gg: ATEYQzz3FPhhsffSt0MVTj6dcR3wKC0Wx3a3ySdDqKNqjCDhYS0tBH0fmR8IiciNb8Q
	tAIusMvfn3Yf9+BTYnbIrkQHCqvjgRlwFLhQWBFhiQ/GUPejeh2RPmASbf2NE85svkbtEcC+ncL
	ZPNrlbyBQ7yd/D4J23ewQeoAVBejhckrp1jCCoa2RJOrTAoHLuOaU6qNektAJ9ZwRSHPRgbjJdc
	HWl+JYQVnnbd+/pMXJDbHCSchaCPENyeF7NVSnRsuhd2SKbSO2EcRXsBVg+jfm7+fShD63lZOih
	xCw8T8cw493j5mX3SlZurq2Ee5EiQmnq9FNETtos41WXmjdCQtJZfuyCSYPSjUYdopy5DAO6ESP
	A5bZn+OPdevvGJr3H1iueNm/y5WEzmiikesTihX13k/NBVLANJSJbDGrmAJRpaTkpwKMNc49QaU
	0bJEGo8Z/DwZP7UQtBVWL4cbdiPLxQK9v5i6NAGQcTgTtjSJN9E6r8jdG3f1ANhsGr0P7ivhn4+
	mU0mugWYhmQPI4=
X-Received: by 2002:a05:600c:1e86:b0:483:5310:dc67 with SMTP id 5b1f17b1804b1-4852695b81cmr181327035e9.20.1773051606075;
        Mon, 09 Mar 2026 03:20:06 -0700 (PDT)
Message-ID: <39057e2b-5d1e-41ff-b5d3-0e5aa4745d15@suse.com>
Date: Mon, 9 Mar 2026 11:20:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/1] tools/tests/x86_emulator: avoid duplicate symbol
 error with clang: use -O0
To: Edwin Torok <edwin.torok@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Roger Pau Monne <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1772813802.git.edwin.torok@citrix.com>
 <a4a29c95b06a0352889bb6c032c19be6e4cf8288.1772813802.git.edwin.torok@citrix.com>
 <49d22b35-f5d8-4992-a32a-bb3f7c3e5ad2@suse.com>
 <5B5A0A1C-B7EA-47F2-8CF9-3000CF4414F1@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5B5A0A1C-B7EA-47F2-8CF9-3000CF4414F1@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.03.2026 10:49, Edwin Torok wrote:
>> On 9 Mar 2026, at 07:47, Jan Beulich <jbeulich@suse.com> wrote:
>> There's
>> one other question though: Isn't -O0 the default? Where would any other
>> optimization setting come from in HOSTCFLAGS? Ah, I see ./Config.mk does
>> this, for an unclear to me reason.
> 
> One possible reason I’d enable optimisations (even for non-performance critical code) is to get better warnings.
> I looked this up, and I see it is actually documented in the GCC manual:
> "The effectiveness of some warnings depends on optimizations also being enabled.
> For example, -Wsuggest-final-types is more effective with link-time optimization. 
> Some other warnings may not be issued at all unless optimization is enabled.
> While optimization in general improves the efficacy of warnings about control and data-flow problems,
> in some cases it may also cause false positives.”
> 
> In fact warnings rely on optimisations even more than I thought, didn’t know about link time optimisations having an effect
> (from the example that warning is only relevant for C++ for now)
> 
> I can see why in general a compiler would decide to implement it that way (if you run an analysis to get more accurate
> information for showing warnings then you might as well use it to emit better code), but I wish that wasn’t the case. 
> E.g. you may want to use a low optimisation level to get better debugging, without giving up on the better warnings.
> The only way to do that currently is to build it twice (or rely on a CI that builds with different flags).
> 
> If you want to change it I’d suggest setting it at least to -Og, which is recommended over O0:
> "In contrast to -O0, this enables -fvar-tracking-assignments and -fvar-tracking which handle debug information in the prologue and epilogue of functions better than -O0."

And did you check that -Og works for the purposes here? I'd indeed prefer to
use that, if we can.

>> Perhaps that would want mentioning
>> here then as well.
> 
> How about:
> 
> # The default HOSTCFLAGS from $(XEN_ROOT)/Config.mk would set
> # a non-zero optimisation level
> 
> I’d avoid mentioning -O2, in case that changes.

Of course.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 10:41:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 10:41:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249224.1546716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzY3S-00084l-BD; Mon, 09 Mar 2026 10:41:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249224.1546716; Mon, 09 Mar 2026 10:41:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzY3S-00084e-8U; Mon, 09 Mar 2026 10:41:42 +0000
Received: by outflank-mailman (input) for mailman id 1249224;
 Mon, 09 Mar 2026 10:41: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=lNRQ=BJ=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vzY3Q-00084Y-Im
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 10:41:40 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8d6bf574-1ba4-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 11:41:39 +0100 (CET)
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTPS id 229C84153174;
 Mon,  9 Mar 2026 06:41:13 -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: 8d6bf574-1ba4-11f1-b164-2bf370ae4941
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v4] tools/tests/x86_emulator: avoid duplicate symbol error with clang: use -O0
Date: Mon,  9 Mar 2026 10:41:35 +0000
Message-ID: <d0178858e5f3ff7a8b64e822b55c6179adc92ea6.1773052835.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

clang would duplicate the loop body and end up with a double definition
of the symbol:
```
/tmp/test_x86_emulator-0f3576.s:27823: Error: symbol `vmovsh_to_mem' is already defined
/tmp/test_x86_emulator-0f3576.s:27825: Error: symbol `.Lvmovsh_to_mem_end' is already defined
```

Until a better solution is found: reduce optimizations in the test runner.

Using -Os might also work, but we can't rely on the size optimization
always avoiding the duplication of asm blocks.
This is test code, not performance critical code, and -O0 is more future
proof.
However for debugging -Og is recommended over -O0, and this still
avoids the duplicate label problem.

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
---
Changed since v3:
 * use -Og instead of -O0, adjust comment
Changed since v2:
 * use -O0 instead of .ifndef (with ifndef the 2nd iteration would use code identical to first)
Changed since v1:
 * use .ifndef directive instead of volatile workaround
---
 tools/tests/x86_emulator/Makefile | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/tools/tests/x86_emulator/Makefile b/tools/tests/x86_emulator/Makefile
index 5003c464f3..8210e83345 100644
--- a/tools/tests/x86_emulator/Makefile
+++ b/tools/tests/x86_emulator/Makefile
@@ -323,4 +323,11 @@ x86-emulate.o x86_emulate/%.o: HOSTCFLAGS += -D__XEN_TOOLS__
 $(call cc-option-add,HOSTCFLAGS-toplevel,HOSTCC,-fno-toplevel-reorder)
 test_x86_emulator.o: HOSTCFLAGS += $(HOSTCFLAGS-toplevel)
 
+# When unrolling loops, compilers may duplicate inline assembly. put_insn()
+# emits labels, which may not be emitted multiple times.
+# The default HOSTCFLAGS from $(XEN_ROOT)/Config.mk would set a non-zero
+# optimisation level.
+# Until a better solution is found: reduce optimizations in the test runner.
+test_x86_emulator.o: HOSTCFLAGS += -Og
+
 test_x86_emulator.o: $(addsuffix .h,$(TESTCASES)) $(addsuffix -opmask.h,$(OPMASK))
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 10:46:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 10:46:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249250.1546725 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzY7x-0000Do-RK; Mon, 09 Mar 2026 10:46:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249250.1546725; Mon, 09 Mar 2026 10:46:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzY7x-0000Dh-O9; Mon, 09 Mar 2026 10:46:21 +0000
Received: by outflank-mailman (input) for mailman id 1249250;
 Mon, 09 Mar 2026 10:46: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=lNRQ=BJ=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vzY7w-0000Db-4z
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 10:46: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 30d65b15-1ba5-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 11:46:14 +0100 (CET)
Received: from SA3PR03MB7419.namprd03.prod.outlook.com (2603:10b6:806:39c::6)
 by MN2PR03MB5296.namprd03.prod.outlook.com (2603:10b6:208:1e8::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Mon, 9 Mar
 2026 10:46:10 +0000
Received: from SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc]) by SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc%6]) with mapi id 15.20.9678.024; Mon, 9 Mar 2026
 10:46: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: 30d65b15-1ba5-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TWGq8Ma3vVepB5jdjxODd//+uBbVBwQj/GMwIlLfFmCYCSeX5tD6YtwQgymPWT4FE2rWWbEEexP1fmT9rZrhwQL7RLZnIwzVYGBzMr88/GhkXEjrbEfOSiDCW0TlwU2FnrZRTSPwXCfutygZS1RRmdjf38fXl3nJqcFeMUERFwcwb6DrUEdooq8dWNWPJyS0aLnzt6rTTWSoD6BRmk7yGiALvbJdog2kB58gYZOiip+9Xq4JzMieFPxEJfKdRKvERccR7vYQOWYyezWcgaBh+SQIbDETIORsbNndAzRBdhiTWzkV0qsDRTr5BGtNzd5G+DRsb8onRcTfkumADbrm+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=pWuuO0DE7JddmloIvsWoWHqdKWz5S3CurWOhGgZGUO8=;
 b=Cd8CH1GK6WzGFLFqQ/ciNUhWyTNgUgcjmUU9uprasiegP4MBPLKJsHgg73a4qS09ZMBVGeY9a3u8u7bBk6jSO46at36HwrFqFcPgd/Z2a8KghBDL01nB8Z++4DqPmO2K1cFY5jqivwc/Gq9t0DGYIHd6Y/ppDaqoJ4BklCyb6B7ZbUJIi8bU1ID0I+PZBtYRV5TMOkd6/sO6cbQ5m41BpfuVRnwUIEAf/qNiSo145jhR58Yx3f+A1MvalB1eBRL+HDR6s3TNeLXAa08aMnqZ7ffeR2FcAUJ2ilmmT8lFxPdMvKSwHrkSfdHx3CRDZjhw1L8ibV3cQkBzbuH67/17UA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pWuuO0DE7JddmloIvsWoWHqdKWz5S3CurWOhGgZGUO8=;
 b=SRWqf0p3fWd5xA8q0IZmzMWkU97CynTmDl1dwNwphC93WxfLzTfsdH8oX7S4NYIqCL+Pkne1/zbH+P+yWAh5iU257gvmZ27pLhovF9Z6iBMa0UAKiKhDFhbdLXIIYtXElW0poFojQX2yPT29PwR0QESHSoZ5vnHw938oWhUaL04=
From: Edwin Torok <edwin.torok@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Roger Pau Monne
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3 1/1] tools/tests/x86_emulator: avoid duplicate symbol
 error with clang: use -O0
Thread-Topic: [PATCH v3 1/1] tools/tests/x86_emulator: avoid duplicate symbol
 error with clang: use -O0
Thread-Index: AQHcrYXnXQSbfSYkDE2XRiS+3V/VSLWl1toAgAAhtYCAAAj/gIAABzwA
Date: Mon, 9 Mar 2026 10:46:10 +0000
Message-ID: <D9BDF457-D228-47B6-8892-A90728FCE8A5@citrix.com>
References: <cover.1772813802.git.edwin.torok@citrix.com>
 <a4a29c95b06a0352889bb6c032c19be6e4cf8288.1772813802.git.edwin.torok@citrix.com>
 <49d22b35-f5d8-4992-a32a-bb3f7c3e5ad2@suse.com>
 <5B5A0A1C-B7EA-47F2-8CF9-3000CF4414F1@citrix.com>
 <39057e2b-5d1e-41ff-b5d3-0e5aa4745d15@suse.com>
In-Reply-To: <39057e2b-5d1e-41ff-b5d3-0e5aa4745d15@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA3PR03MB7419:EE_|MN2PR03MB5296:EE_
x-ms-office365-filtering-correlation-id: 0ba0f3d9-cb43-4985-007b-08de7dc913a0
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:
 aC4BbU9TDrM3XaNjeNjppYp/6nm/CbNx6Vg/LlZl5nG20ChHjNxR16HHLzOJs2i5Heahv/dACbcQ9/Amkt4nrXRkqbdImMpxG/BCMpUr10Zl4XMT4HzUbbZyBNSCDA2G960PKorr6ILmlSnPKCK8+3tQv7AgZb4kIuGm32OYqwxAX5+CM6BRnbBY0DDbjfWxrfK0ZenEUg1rYHnBGuPsLcoS/9nP54GjQiJz0FtHctLIA0k7eAGfogmcnid1vw6g/4RS2NkUeJ2Vkgm1e5CXb9rJZ0ql6kOZOh1DKcrIJYpzGre/n+LeY3AbL2V6BrVcs6+6UFW/1lyNlgx4km9BBwENkuqo5L7wZKf+qehMf4I8cWwyTPdV36CiHzxIP2HY6FR2GiPz8PjzcbGsqgg3l8FHqRJYmSM1PhE2j0Y1SAZggVGDj4lrvwCzT0R0z+GgUid3nB28TD5/bSDRER4dSH/PjrCELY4MjYLAA7VUUl4wkr8Hgt7gSlM9Y9ZzgJia2EuqnrkstU9JBNn1V87Iu9Naq7W4pdkGtYHss0wWPXHY/KFlmCuO7aB9khZia8TMaRCIGuCtqgifxRsV6EIahmiqS5Ah9Z7b+5fQB8HjxaF+kkh4k3JlFcNG4Ga1jvYZCGtOy/wcFo8mY4M7JycwGZeaI6d+aZLmA2/V9sYEd9T9BoOv0y8BvegIb8CjTj7a0lUgHrO1RaVFqyZl43W6TibvDRMDgqgX72mxgZdhNoQ6lijQ5FlwHqLfxxdbWy60WU8KO5Q+xUNvB8RVwFNNnfHA+1IrDynhM0SmKiw4BWU=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA3PR03MB7419.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?YTdIUnhtcm4zSFJWRU84bGI0SGNBdEFVYmxaanRjLzhlaFNBU2lCNlI2NlRS?=
 =?utf-8?B?cmVhVWpQeXdoRjVyd1BQZXpCbkFpWTRuRHU2LzZQdkJxZUpkU2t5ZXllc3dX?=
 =?utf-8?B?MnJiSHBJbVU3TzNHSlZXanJnMkxrNWQ1d01Zc1cvTitGNHlTeGRMZG9mSnNq?=
 =?utf-8?B?VWZXMXJkQUtRL3Z1TllINjFLdllaOXp5d0xkREVXTnNhMHM3U0JOdlJPT0gw?=
 =?utf-8?B?VlZFdEREaDZyUUtGc1VpWjE1cEhKb21EK0lFeURsR3F1M3VLWjZSWlJxSEhS?=
 =?utf-8?B?bzBCWHF5MndwZU5yYU8vc0ZaVFlBd1pBeFE5cHVaNjArRXg0cC9naG9mUDlG?=
 =?utf-8?B?MnNlai8xdm1BOVB3eHQwVmc1YTdzWHlJZ3U1OG1tSXBIRjJWK3hpZU81TFc4?=
 =?utf-8?B?dXJSQWNTUmU5MjRIS0oyMGRGNmlreEtTVnFaYUFIakJkeFNBS3FxSjR4cWdk?=
 =?utf-8?B?NjNHRmRWQmNBc1g2MkdIb0dLQ01mSWJyWVE1TlFwS2k1eTNKTVJiVDJaVkxv?=
 =?utf-8?B?MXpRZy9lQitNQmhBNFEzZ08yelNqamh6QmRZY1NhcjlGeFJud3AwazFoQWp4?=
 =?utf-8?B?dHY2dGxUNDVRMDFZQ1ZyK0JmVCtSVDhtV1phRmNOUmFLai9sRkNWOWtaOHNa?=
 =?utf-8?B?TTN5VGRMd1NtVmdNWlFoaDNHNmxRZVM5WHo3RHhxTUVpTFlMZjNrMlZpNXFa?=
 =?utf-8?B?NlBQa0FUbHVQckJVdGg1WlZJN2wyR0pvdEZzVnpmYmJEb2JlV0dJSzBUbUhQ?=
 =?utf-8?B?MjRUc2s2eTZZekhHa081bU9wOWY3clY0Ym9SWlBIekpsaFJTQlV2MTlYdzVz?=
 =?utf-8?B?WjY3QmpoNVZ1ZSs0Vys3TGM4M29EaEdlelNOZFBuL20zQkNucXBLQmxSR0tZ?=
 =?utf-8?B?SG1BR3c1WUtYTGFpeHo4T3hRam9TN3MzdmZqMEFRWE1NU0pKV0xQL1VkSzlo?=
 =?utf-8?B?VnJMM0cwMW00RHpMUVRyZFI0UmtmQ29Id1ZYbkFWS0htR2NGUnd0ODlrdGVk?=
 =?utf-8?B?RzREMG1EZWQ1MERBTVVRdHpBK0s1RnMwWGVrWFJHOVBoWWhpVGV6eENPbWpY?=
 =?utf-8?B?M0RoeHZqSkhhRWQ5Rk5TQm96cklhUkpOUTJra1ZiWUtrOGRCZGRzZ3pRM1dN?=
 =?utf-8?B?VGlKQUZIUW1JVDNudDNXY0ZDQkF5OHVzWVkxVnhmUnIwRFZ1QlFsZ1JNWXIy?=
 =?utf-8?B?OWVHaXFHaWJ6cWpVMnV2T1BZUDhqRTVqaWgyYmJ4UEYzQ1hnVnhPb1JmUlhF?=
 =?utf-8?B?VXB5aVljbjB6OWZ0aTdBaHUwbXJVMWhtUXhBWGU2VWdHODkvMURlSDFtRU5Q?=
 =?utf-8?B?ZldsbkJNRWtvL3dJN3RjWmVZeW1jOUw3OE1iaU1QNFZIbzhXSDg1a3RaS2sx?=
 =?utf-8?B?ZGQzdE4xSktuWkRjbUxrQmhDQVgzMWU5emRMS0M4U01lNFVqd0EwNTB4eExM?=
 =?utf-8?B?cVZYNlpTS2p1QTBJR0xjcjJpWmtwS01TMUt5S052cFFkZVVQdHhRMUFjdTFt?=
 =?utf-8?B?YjE2cXdGb3lKU0RPZkNaQUUwcFZMN0NBS3BBbVdlTnF3ak16YndrSDk3SHR5?=
 =?utf-8?B?cEM4ejVwQWVZNTNIMlcxS1R0Q25LSS9ZSXR1NnhvVnhRWGRnWEo5b2xuNkEr?=
 =?utf-8?B?Mk5jQUEwaGpBclJ3UVZqVGFkVm95R25sV2dqakoralh2Yzg3ZDdDTDRPL01s?=
 =?utf-8?B?VytqM0w0T2dxb1lMdUV4WUpUYjh4dHRZN1NFQ0svZkNxNGlyNzNGRnpuVGlt?=
 =?utf-8?B?c0FTaG5ncHBLY1FHaWlWZ3hLN0tJbGZTUWNnMlJqTnl5WkUyOEJ2OEtZdlNa?=
 =?utf-8?B?K0w1cXdxb05RZmlrZ3AwYWhOUnZRRUJaT1luWmFIMjR6amhDcGdJWE1OKzZ0?=
 =?utf-8?B?VXdQZklUS29qQnhmYUxPdHNramdSVHgyNDJFU1A0WFpzc0o1SkdiQU83WHJv?=
 =?utf-8?B?WTh3V3d4RE1BK2txWStxZzkvMlN5cFRPeWM1RmlVa2xVMmVnSHBWR3FmaW9t?=
 =?utf-8?B?amZxME1Bclc2QzVrYkNyUWFCSjFWRk5HbEtLRHhQWlg0eDBSU0ZVMkt2V1dH?=
 =?utf-8?B?Rm1MTEM5VzdSUlJxaXdlYmkwMFgrcUtialpDVGJPZHA2VUhpL1MrejRJOEtu?=
 =?utf-8?B?NVZuSGs2cTZYZFUrTUNUUDhSdXNWalRUbEZ6Y1hVVis5RVVFQWxxdlVWREZZ?=
 =?utf-8?B?UGVhTEh2aDBNTWxjV1kyYXROS0xZdXZUQUhDMUVkR1k3RTJBVWJCYmNNblNs?=
 =?utf-8?B?MGtqVnlXdEdBdTBJbU1GWWFSY2I1RU5nVVhnRmw4ZEpQM2M1QXhoNDl3NlJG?=
 =?utf-8?B?MWs3bEZHaWFld0dQUHFHRGQ5SGh5bHlsb1JrK3pLQTZDclBEK1Rzc0ZDd0Zr?=
 =?utf-8?Q?VMjxTDB38f6Dvp0I=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <4393FA9A41DAD145857FE1849610AA52@namprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA3PR03MB7419.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0ba0f3d9-cb43-4985-007b-08de7dc913a0
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Mar 2026 10:46:10.3967
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 3p9oTWOSJhRl620I7AzGwac+qUjTJZM+0mnswhGGEI2hCNqxW5zMa9Op8pYGaNCBRT/Ez5jTL1KXfUFX0QD93Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5296

DQoNCj4gT24gOSBNYXIgMjAyNiwgYXQgMTA6MjAsIEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl
LmNvbT4gd3JvdGU6DQo+IA0KPiBPbiAwOS4wMy4yMDI2IDEwOjQ5LCBFZHdpbiBUb3JvayB3cm90
ZToNCj4+PiBPbiA5IE1hciAyMDI2LCBhdCAwNzo0NywgSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1
c2UuY29tPiB3cm90ZToNCj4+PiBUaGVyZSdzDQo+Pj4gb25lIG90aGVyIHF1ZXN0aW9uIHRob3Vn
aDogSXNuJ3QgLU8wIHRoZSBkZWZhdWx0PyBXaGVyZSB3b3VsZCBhbnkgb3RoZXINCj4+PiBvcHRp
bWl6YXRpb24gc2V0dGluZyBjb21lIGZyb20gaW4gSE9TVENGTEFHUz8gQWgsIEkgc2VlIC4vQ29u
ZmlnLm1rIGRvZXMNCj4+PiB0aGlzLCBmb3IgYW4gdW5jbGVhciB0byBtZSByZWFzb24uDQo+PiAN
Cj4+IE9uZSBwb3NzaWJsZSByZWFzb24gSeKAmWQgZW5hYmxlIG9wdGltaXNhdGlvbnMgKGV2ZW4g
Zm9yIG5vbi1wZXJmb3JtYW5jZSBjcml0aWNhbCBjb2RlKSBpcyB0byBnZXQgYmV0dGVyIHdhcm5p
bmdzLg0KPj4gSSBsb29rZWQgdGhpcyB1cCwgYW5kIEkgc2VlIGl0IGlzIGFjdHVhbGx5IGRvY3Vt
ZW50ZWQgaW4gdGhlIEdDQyBtYW51YWw6DQo+PiAiVGhlIGVmZmVjdGl2ZW5lc3Mgb2Ygc29tZSB3
YXJuaW5ncyBkZXBlbmRzIG9uIG9wdGltaXphdGlvbnMgYWxzbyBiZWluZyBlbmFibGVkLg0KPj4g
Rm9yIGV4YW1wbGUsIC1Xc3VnZ2VzdC1maW5hbC10eXBlcyBpcyBtb3JlIGVmZmVjdGl2ZSB3aXRo
IGxpbmstdGltZSBvcHRpbWl6YXRpb24uIA0KPj4gU29tZSBvdGhlciB3YXJuaW5ncyBtYXkgbm90
IGJlIGlzc3VlZCBhdCBhbGwgdW5sZXNzIG9wdGltaXphdGlvbiBpcyBlbmFibGVkLg0KPj4gV2hp
bGUgb3B0aW1pemF0aW9uIGluIGdlbmVyYWwgaW1wcm92ZXMgdGhlIGVmZmljYWN5IG9mIHdhcm5p
bmdzIGFib3V0IGNvbnRyb2wgYW5kIGRhdGEtZmxvdyBwcm9ibGVtcywNCj4+IGluIHNvbWUgY2Fz
ZXMgaXQgbWF5IGFsc28gY2F1c2UgZmFsc2UgcG9zaXRpdmVzLuKAnQ0KPj4gDQo+PiBJbiBmYWN0
IHdhcm5pbmdzIHJlbHkgb24gb3B0aW1pc2F0aW9ucyBldmVuIG1vcmUgdGhhbiBJIHRob3VnaHQs
IGRpZG7igJl0IGtub3cgYWJvdXQgbGluayB0aW1lIG9wdGltaXNhdGlvbnMgaGF2aW5nIGFuIGVm
ZmVjdA0KPj4gKGZyb20gdGhlIGV4YW1wbGUgdGhhdCB3YXJuaW5nIGlzIG9ubHkgcmVsZXZhbnQg
Zm9yIEMrKyBmb3Igbm93KQ0KPj4gDQo+PiBJIGNhbiBzZWUgd2h5IGluIGdlbmVyYWwgYSBjb21w
aWxlciB3b3VsZCBkZWNpZGUgdG8gaW1wbGVtZW50IGl0IHRoYXQgd2F5IChpZiB5b3UgcnVuIGFu
IGFuYWx5c2lzIHRvIGdldCBtb3JlIGFjY3VyYXRlDQo+PiBpbmZvcm1hdGlvbiBmb3Igc2hvd2lu
ZyB3YXJuaW5ncyB0aGVuIHlvdSBtaWdodCBhcyB3ZWxsIHVzZSBpdCB0byBlbWl0IGJldHRlciBj
b2RlKSwgYnV0IEkgd2lzaCB0aGF0IHdhc27igJl0IHRoZSBjYXNlLiANCj4+IEUuZy4geW91IG1h
eSB3YW50IHRvIHVzZSBhIGxvdyBvcHRpbWlzYXRpb24gbGV2ZWwgdG8gZ2V0IGJldHRlciBkZWJ1
Z2dpbmcsIHdpdGhvdXQgZ2l2aW5nIHVwIG9uIHRoZSBiZXR0ZXIgd2FybmluZ3MuDQo+PiBUaGUg
b25seSB3YXkgdG8gZG8gdGhhdCBjdXJyZW50bHkgaXMgdG8gYnVpbGQgaXQgdHdpY2UgKG9yIHJl
bHkgb24gYSBDSSB0aGF0IGJ1aWxkcyB3aXRoIGRpZmZlcmVudCBmbGFncykuDQo+PiANCj4+IElm
IHlvdSB3YW50IHRvIGNoYW5nZSBpdCBJ4oCZZCBzdWdnZXN0IHNldHRpbmcgaXQgYXQgbGVhc3Qg
dG8gLU9nLCB3aGljaCBpcyByZWNvbW1lbmRlZCBvdmVyIE8wOg0KPj4gIkluIGNvbnRyYXN0IHRv
IC1PMCwgdGhpcyBlbmFibGVzIC1mdmFyLXRyYWNraW5nLWFzc2lnbm1lbnRzIGFuZCAtZnZhci10
cmFja2luZyB3aGljaCBoYW5kbGUgZGVidWcgaW5mb3JtYXRpb24gaW4gdGhlIHByb2xvZ3VlIGFu
ZCBlcGlsb2d1ZSBvZiBmdW5jdGlvbnMgYmV0dGVyIHRoYW4gLU8wLiINCj4gDQo+IEFuZCBkaWQg
eW91IGNoZWNrIHRoYXQgLU9nIHdvcmtzIGZvciB0aGUgcHVycG9zZXMgaGVyZT8gSSdkIGluZGVl
ZCBwcmVmZXIgdG8NCj4gdXNlIHRoYXQsIGlmIHdlIGNhbi4NCg0KDQpJdCBhdm9pZHMgdGhlIGR1
cGxpY2F0ZSBzeW1ib2wgZXJyb3Igd2l0aCB2ZXJzaW9uIG9mIENsYW5nIHRoYXQgSSBoYXZlLCBz
byBJIGhhdmUgc2VudCBhIFY0IHRoYXQgdXNlcyAtT2cgYW5kIHRoZSB1cGRhdGVkIGNvbW1lbnRz
Lg0KV2FzIGEgYml0IHdvcnJpZWQgdGhpcyBtaWdodCBub3Qgd29yayB3aXRoIG9sZCBHQ0NzLCBi
dXQgQUZBSUNUIE9nIGlzIHN1cHBvcnRlZCBzaW5jZSA0LjgsIGFuZCB0aGUgbWluaW11bSBpcyA1
LjEuDQoNCkJlc3QgcmVnYXJkcywNCuKAlEVkd2luDQoNCj4gDQo+Pj4gUGVyaGFwcyB0aGF0IHdv
dWxkIHdhbnQgbWVudGlvbmluZw0KPj4+IGhlcmUgdGhlbiBhcyB3ZWxsLg0KPj4gDQo+PiBIb3cg
YWJvdXQ6DQo+PiANCj4+ICMgVGhlIGRlZmF1bHQgSE9TVENGTEFHUyBmcm9tICQoWEVOX1JPT1Qp
L0NvbmZpZy5tayB3b3VsZCBzZXQNCj4+ICMgYSBub24temVybyBvcHRpbWlzYXRpb24gbGV2ZWwN
Cj4+IA0KPj4gSeKAmWQgYXZvaWQgbWVudGlvbmluZyAtTzIsIGluIGNhc2UgdGhhdCBjaGFuZ2Vz
Lg0KPiANCj4gT2YgY291cnNlLg0KPiANCj4gSmFuDQoNCg==


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 11:00:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 11:00:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249265.1546733 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzYLm-000327-2w; Mon, 09 Mar 2026 11:00:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249265.1546733; Mon, 09 Mar 2026 11:00:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzYLm-000320-0M; Mon, 09 Mar 2026 11:00:38 +0000
Received: by outflank-mailman (input) for mailman id 1249265;
 Mon, 09 Mar 2026 11:00:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=TKtW=BJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vzYLl-00031u-Bh
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 11:00:37 +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 333eb847-1ba7-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 12:00:36 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-48539d21b76so7931725e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 09 Mar 2026 04:00:36 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4853438017bsm197421125e9.0.2026.03.09.04.00.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Mar 2026 04:00:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 333eb847-1ba7-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773054035; x=1773658835; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cA8i4u7EhErBXPUzNIm8vTS/NqpkxaK6TrJ/JPQzfVM=;
        b=SRpJQcf7oCrXqnKUnjbAVX0zJVuYXCcRZ2GeAE5Lu1yUi+7tqfjnqH8Yh8mywzKuuk
         MFsKVATbR7TgLxozdbUTZYawspuO2T1AOByClFfrldX8TCKbngmWN5JBghcuLS3ziYX+
         nr+YHQuy98Er9HhNVubuB3uP6nW56drRjV1nP/k42CfY1y7cVHxRse5iGOJ7Tx/Cpfka
         RPmuzPVdjo85hf4V1GCYCiV3b0RhKVYpsaR28umWCaI0dyLEHw/loy74FT3y6IDhwsif
         oQ6R7DlCj5wGOmn2MpbNWucIZQtjhdBOd0aJb2xBsNLUCC2IKMtvUsqE12szLprS/vaH
         DPsg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773054035; x=1773658835;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cA8i4u7EhErBXPUzNIm8vTS/NqpkxaK6TrJ/JPQzfVM=;
        b=AVkgghhjy3YOcF8cZ9BsUtgfPpLsC4wqSlungcxzNzPCmvhlWzynSZYt3jXxRZdeNL
         Gk0mYx4JmN+Q3uF31giwKtHqkaRsN/PAtJrv+VXikI+4lhF+AEPL9aYE87OxeqnwOqUz
         2LogzIxLyJlquByh6q+ZKe9hLO0FIRvE2FMA2Xycs6bzUdX0B+CgwXpycDqCMTQjhMB4
         PEGtNiEodbY34QLXR8475knjU1wFfgkF+eyHdqpQxT/0CsrDeG7GQdNjal7HAvi9hFdv
         ZVwVYXOdt7hQ+I0p3veCRm9LwFmMcZ7OKIRsIw04fVFexBALQhPZvFsiJ5z3hhURYyQ5
         nmQg==
X-Forwarded-Encrypted: i=1; AJvYcCVz2MffjJil0lDwDxd4+84+G5x6DTzX98W/qEv3bEAVFWEh+2SwTpx5Pte0Jc/o0iPMq3NSIPFb4X4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywz5ZXn4w+EpEMeuHxOBslvztnHQpNVShn9YMPAuRtylyK0g+kD
	o1Ka9lbVQgM6yOkf/OJqs9+K0Yfr5cUTzwAm58fbV/LjZtJ/b8r/PQZhg95N00Xm9w==
X-Gm-Gg: ATEYQzz2xRKB4ep2Yi9+CihUWLPN2ZW9EjrdV+zQcZUCUV4yLAx0MIsnq0J5HxP0oRE
	BXdO9w2zWJSMVKVxsz0nK1tnFiZW1AnSwuQ/W7ufJqSrNzH37/z6pnTEvECrHiiCp26oPv8gmtI
	nBLqiW/PhIfznM7wcYJn7TEYwewCT+L0IRs6fqEkAuDM5TEfeUnJtMK0fbAK1sso8veSba0E0FB
	V1tqNigLIE2vYHzm/fbEDWCvgIupIzc+159DpQ8ersOkmwVKmMWPRVejXRLIyn528VbQU9iEVVV
	e5x6D0XgslSfcuk5oPmZfC68N86xTj8eLdJai5D/oi5Hz0KzSJBJUwMnC7pdf5MOGLbrTZam8Sl
	pcMkyWNBo0PpscKo0hMY+cPSQYUdQeenG4Iklx3qpr7bb4BbcsezExg1p/swo9IRBDktn3Xlw0p
	jBmk62dvyCOR93IfG4WOlOK+muP2OaTkrV+LCzC/YQyCBo8W6aTMIwvLqxAhOPC/X5f9q4wLSCO
	TGbC0CJY5oXGzs=
X-Received: by 2002:a05:600d:41c9:b0:485:3911:b8c7 with SMTP id 5b1f17b1804b1-4853911bb1amr57874885e9.35.1773054035081;
        Mon, 09 Mar 2026 04:00:35 -0700 (PDT)
Message-ID: <efb5bb8b-175c-4efd-8aab-668b0664795c@suse.com>
Date: Mon, 9 Mar 2026 12:00:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] tools/tests/x86_emulator: avoid duplicate symbol error
 with clang: use -O0
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <d0178858e5f3ff7a8b64e822b55c6179adc92ea6.1773052835.git.edwin.torok@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d0178858e5f3ff7a8b64e822b55c6179adc92ea6.1773052835.git.edwin.torok@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.03.2026 11:41, Edwin Török wrote:
> clang would duplicate the loop body and end up with a double definition
> of the symbol:
> ```
> /tmp/test_x86_emulator-0f3576.s:27823: Error: symbol `vmovsh_to_mem' is already defined
> /tmp/test_x86_emulator-0f3576.s:27825: Error: symbol `.Lvmovsh_to_mem_end' is already defined
> ```
> 
> Until a better solution is found: reduce optimizations in the test runner.
> 
> Using -Os might also work, but we can't rely on the size optimization
> always avoiding the duplication of asm blocks.
> This is test code, not performance critical code, and -O0 is more future
> proof.
> However for debugging -Og is recommended over -O0, and this still
> avoids the duplicate label problem.
> 
> Signed-off-by: Edwin Török <edwin.torok@citrix.com>

With the subject also switched to say -Og (will adjust while committing):
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 11:08:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 11:08:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249275.1546752 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzYTR-0003vi-3c; Mon, 09 Mar 2026 11:08:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249275.1546752; Mon, 09 Mar 2026 11:08:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzYTQ-0003vb-Ul; Mon, 09 Mar 2026 11:08:32 +0000
Received: by outflank-mailman (input) for mailman id 1249275;
 Mon, 09 Mar 2026 11:08: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=OAaF=BJ=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vzYTP-0003iR-PJ
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 11:08:31 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4e289918-1ba8-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 12:08:30 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PAVPR03MB9775.eurprd03.prod.outlook.com
 (2603:10a6:102:312::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.23; Mon, 9 Mar
 2026 11:08:26 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9678.020; Mon, 9 Mar 2026
 11: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: 4e289918-1ba8-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UNbYhsNNWLbxrbWO51Gle1Q32feoW3QMwvwGSzY4ZE3h9tzq/4VQ/hQ6P0CAaeo7FNUCMZxe90yHkdUEJ8BmFqvE7TU6ykvjZHk/oq/xCt4p+xt+5ujVUprBLsZjKPWLaKoPVgg1a3G9tWAnWCWwr78QXjDxzrWZQP7sHzQDG9bhsQ880QDjib5h7iH+9nFm+fawj3Vp2maj++bVwroZoa338/aXWqkvBOaBHlaHR2H5Nya2Vg9NIzIT1DD2tItmvtYwvG+kubHtYcs9FlFH0HZnDEm7m8vh6X9mMG2jtlodGDUBvsHe9I9mY+/Ax4+xoOcBU+x08xnPsrnU/vBASQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eKjBrBlYi81AwmoCTlVxMi0XuRHMmtnX6O2MuhzGwS8=;
 b=CtrNWDAgLUeFETsHbrhOK+MpnXKGofqk55o0mP0E7FSglvzz1pGwT3sgdDBc7m993EF188CpbPU9QCodFl50aq+AC0GMoTnDlIWxPhzIRzhWCa2siMdeMy1Tg2dlZqNxnnwgWgJEVFvlpYLGaEUgQKx9hTvkERHur0ki0EkLXZOs14MUNRQNKseOMiDlHzoeNzPBgor4qOXoCvQEFX2td2jT+D6/MHYKx7ArRboiDpyrlA/stGuUrf5EsQG7keqfyxOuof5UdnYuWz3TzsmKpoxXgN5LnjS6C6CuYeEUR5jGR8/FbsO4Ph4mbrNMf+qMNNeg6ff5Q25eTBqKT84C4A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=eKjBrBlYi81AwmoCTlVxMi0XuRHMmtnX6O2MuhzGwS8=;
 b=PTQEALWTxsHQoSAEnSmETyyHSgbGoD2+WgLhN6eApJn8vaIihQbvFeGj6ybODIGd01UrSVMFGN9sDsSW+ffq8JqDP84uYq3Z6zv4fEa9wc44KkRgcAtc18k587U/y0L7UclriuLM9BNOkbSHcH1CPSKunezzAlOXyPmCNbZk6GTaAB6bco56o6PQGK6PUuGKaMa/G5iKH72A4RCtjHEl1TAwUZTxNRoRw1el9cVGlfZwSfNXmukJfvI6v3GKCh+TxXeE6p7Wsm1CazHuMGRXPumDmlU0QDCebCyudufJC8koPBdTaKFx/2VPwmCid9CxCTwf7nMc02U6lMiRYe5kgw==
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>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v2 1/8] vpci: rename and export vpci_modify_bars
Thread-Topic: [PATCH v2 1/8] vpci: rename and export vpci_modify_bars
Thread-Index: AQHcr7UN7Q/q9Zlc+0i/1HMfYtl+WQ==
Date: Mon, 9 Mar 2026 11:08:25 +0000
Message-ID:
 <f4d48063a4091cf851eab7ad9bf53364df8d1568.1772806036.git.mykyta_poturai@epam.com>
References: <cover.1772806036.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1772806036.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_|PAVPR03MB9775:EE_
x-ms-office365-filtering-correlation-id: 59e1b0c8-4252-4867-d6f1-08de7dcc3007
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:
 O7Ti40F72MuPHn/AiK/Uqkd3Z4k2+q1D2Qr6ZtRkmezp/ADgjLgmWoLiiTkSeRmV5hZfilh2lc3Tu9zDsG6w+sQgDGzMSUQTUVkH4F+DHhXCtolo/R53R1UA4ttqzSG2koUzrx2H+41YXU9kpNOs9cmV5nrKXo5zTQY6wcOb5gysccuwnjR7DL4wRMVgBWT6V/2VHxZIcLlSzuWu6sqKQdTyAhTHK3x9B/AqhGErHHHCRKo3RMLYzpIYh7yt86bmwvOGmbprJPJz0vieiwwS+R7vxKfiLuId9TvgQijk0z/I+GorL30YK8lOPn6kaXXLItMfciBSHYwHK3XFxxY/WkiKG09KHj1p0wZMTeMSHKh5WLTTe4caqR8DQJh6HJOpVhzc5u9vyue67UW+aAmDTGnEAdP4KMS7OQN/YmH3LSaycUeQZg8ESdDiymsE9mIKsfK1XfAWBWJdD+L5T0uUGFLFTvcI1sf2hA4NrX4MIi3i5S4N6L2gDcWbOdL3XPetuHI4MBL1dESOEX9S24t+aTpgsSXi/1FlgwFmDEzKHWb3R1x3QdBpd9GtWqU/+2U1IUDmnsf0vh5zpEn03HdENqc6FVS10Mp172Eg1S0zV+Q5f2PC4OFVaupwiTb0SspPkI34ZXMlyu65m/oXptbBLQ6DzhxH2aAXM4R/V+1NdH4Li2PEWdjSA94JGc8Mehrj55bWrUzhUxUnfXSv204QoIUKUyWMJX4uk7AeB4Oh6dLKwKlzwqIPVuBRI+ZxkuUYNTRPlyp8w3ar8l4f5HpJE8w1fBPPGGM1jV3ihxf6FMI=
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:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?T10TfFxg+Q6Beh2pyBHMUu0F7TExdPD3nIAZ/L7Dundx4p71bZ6VQqJqPg?=
 =?iso-8859-1?Q?eZ33+iO4wH05/d2SQP5aW0U9D4arpYgrPj7AjYcqtNMXSL6gibqkgB6PwM?=
 =?iso-8859-1?Q?/VFXuA+UKxoifPozxKl9CF29wB0vBznYueAhUar03v5m/OXO7Um7OcwHFx?=
 =?iso-8859-1?Q?XkCR8m5/xSfiOuFRYzRP0nAHM+1cButtZvyBtK+ATCjY2qEH4VXhZTcWOm?=
 =?iso-8859-1?Q?5rkt5sfrOM3L0WG6tSBw+9frEkIQFZMQ4aeaPAdkJYAZNMiJ83MFW0lgh3?=
 =?iso-8859-1?Q?BRrf6qooSsSG3JJ9tY/Vxh2kaxJz6DiS1npGkZOtl4Mab1K+bcKbmfZYbN?=
 =?iso-8859-1?Q?2dfKulaDEW0xsqCeN7I/cOFQcJGsuOZOELc7QCI6bI4WBWyKUaKnh6DEv8?=
 =?iso-8859-1?Q?3UBs77T4UtCe+G4JzUmE2T7XE07kUThv1oaWm8SrEfVDojMKcCoo7S3uUf?=
 =?iso-8859-1?Q?zXYSU0klr3eqFlssheVKvpnREYGUlWLrUQuNxOSybMiuLn3Y5KdV4nK+3f?=
 =?iso-8859-1?Q?Dfg1PYI4wcf5kOu2AY1mL44e8/6MyAfw83/RvjzhVRyCYOOb1KgIhMGhEX?=
 =?iso-8859-1?Q?Q+Mcvs8W1u2d5mx3YxtItdhJIGnjoPqvGzlVeAKHIaAb5UQcc4qBm8aY3K?=
 =?iso-8859-1?Q?4UXFZaFKToJO6Rq/TIbU9EYHWQifUgBrmA3Y9Kz8zqnIYfHGg9SJIZlbOh?=
 =?iso-8859-1?Q?iHMLEXkCjeBXi78/g91NgjSVICSfMw3okQUOwFVv21vs5834kKuJUpzlWd?=
 =?iso-8859-1?Q?nfM5DaGXoXf55mMkBaPA3nao1Vxb85Ye/PAJe891VTfpXuqB8mZcZc8dgw?=
 =?iso-8859-1?Q?vfqx8t9mBIp/fV70/SeRMichumv7P3nlNPrKgJmgWf6GXIAXB5WA7Gc8C4?=
 =?iso-8859-1?Q?nOLMUaoULiTSr8os9s1iLS2gWY2/CJ2iK/Ti+Miq4B01/AlcPsY5SxcTsg?=
 =?iso-8859-1?Q?+nfggLf+UlVvJdi/oS5A8l7ygHCjMkJivNLPIGpPDLbh9Ydym3xFOOc4HQ?=
 =?iso-8859-1?Q?qW5kV+zF7LoKbuJ6DvEZTSpoQNJz7Gk8ypE0lk0oxMvabURYpK0jKo3KLz?=
 =?iso-8859-1?Q?JKhieJgFBbRPpL6UD04B/NK2YDNBYlxeheAq7SWvEdhxSyBIzCkyjkzP3U?=
 =?iso-8859-1?Q?+NI2CjVwMgpwY0eXF/8QshL6kA9FcIj5xh13nsiLHZz6+0EIYrlehaXjw9?=
 =?iso-8859-1?Q?BjQh6KTxFTRxfQuNA6dqLh6S9pYmpfnCdL8IERKEJYZ/2CuUeAi2CW3Bz5?=
 =?iso-8859-1?Q?sCywEehndIuTSmQ3oaYE3DQoEH0LLyAmJIVJoSfklt0UeRcLkLyJIc/uZ2?=
 =?iso-8859-1?Q?t+0x85Ll4GHPO+KXrCRLMXpbEy0MyICbO02B8wo/BPebqnsrjT9+SUQ7ck?=
 =?iso-8859-1?Q?oGbPlPgYAZUgmgZvfGP872fn8tu3sP3EZKRslAZ2qsiQvvjgNBHTrG6tfZ?=
 =?iso-8859-1?Q?x5Z81CAB82oluGkaicsUn9QIQs1brVk0d0bWBwF5PCzsrl6r+dsGBQTH0K?=
 =?iso-8859-1?Q?0AWbFb4CCkktJG0wbbkMGIKQXGIq0iE3E4rYhhL5rZzM+Z5TQ5HabD+U9Q?=
 =?iso-8859-1?Q?3FMgTQZ75+hBo1hfcixrJDcfnjHghIq/hkkRnHUdKltpg8tq9/gsiuVrSb?=
 =?iso-8859-1?Q?3zCj9hg7WeXUE3JEu4S8OeCAf61VW2Zng+8dXxhMjRW4yEpR24w4PpEVqz?=
 =?iso-8859-1?Q?3bxmLrYvMXrrsQCWVjVR7wbCwM/fYfW6dzqcabCh2aIHlHtrWZHeJH3Nmn?=
 =?iso-8859-1?Q?x+W9eL/wjIkE+1UwsqMaDcbA81EsLP5VIhUi/RQ1MiXOpjwZh5vmznSP7a?=
 =?iso-8859-1?Q?56RvvFOjWnpA5FVxX9uU0qSmxyDHhhg=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: 59e1b0c8-4252-4867-d6f1-08de7dcc3007
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Mar 2026 11:08:25.6964
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: BlPLie3bHHeOvHSRF4kOKH2ewat4OjMOV360X4SbCOCZfotcK/B+OAkQAAp0oykHdizm0DietFKYV2+dQ6IJPQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9775

From: Stewart Hildebrand <stewart.hildebrand@amd.com>

Export functions required for SR-IOV support.

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Reviewed-by: Teddy Astie <teddy.astie@vates.tech>

---
v1->v2
* Collect RBs
---
 xen/drivers/vpci/header.c | 16 +++++++++-------
 xen/include/xen/vpci.h    |  3 +++
 2 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 739a5f610e..5202518e83 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -304,7 +304,7 @@ static void defer_map(const struct pci_dev *pdev, uint1=
6_t cmd, bool rom_only)
     raise_softirq(SCHEDULE_SOFTIRQ);
 }
=20
-static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_=
only)
+int vpci_modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_on=
ly)
 {
     struct vpci_header *header =3D &pdev->vpci->header;
     struct pci_dev *tmp;
@@ -545,7 +545,7 @@ static void cf_check cmd_write(
          * memory decoding bit has not been changed, so leave everything a=
s-is,
          * hoping the guest will realize and try again.
          */
-        modify_bars(pdev, cmd, false);
+        vpci_modify_bars(pdev, cmd, false);
     else
         pci_conf_write16(pdev->sbdf, reg, cmd);
 }
@@ -713,13 +713,15 @@ static void cf_check rom_write(
      * Pass PCI_COMMAND_MEMORY or 0 to signal a map/unmap request, note th=
at
      * this fabricated command is never going to be written to the registe=
r.
      */
-    else if ( modify_bars(pdev, new_enabled ? PCI_COMMAND_MEMORY : 0, true=
) )
+    else if ( vpci_modify_bars(pdev,
+                               new_enabled ? PCI_COMMAND_MEMORY : 0,
+                               true) )
         /*
          * No memory has been added or removed from the p2m (because the a=
ctual
          * p2m changes are deferred in defer_map) and the ROM enable bit h=
as
          * not been changed, so leave everything as-is, hoping the guest w=
ill
          * realize and try again. It's important to not update rom->addr i=
n the
-         * unmap case if modify_bars has failed, or future attempts would
+         * unmap case if vpci_modify_bars has failed, or future attempts w=
ould
          * attempt to unmap the wrong address.
          */
         return;
@@ -933,8 +935,8 @@ int vpci_init_header(struct pci_dev *pdev)
     /*
      * For DomUs, clear PCI_COMMAND_{MASTER,MEMORY,IO} and other
      * DomU-controllable bits in PCI_COMMAND. Devices assigned to DomUs wi=
ll
-     * start with memory decoding disabled, and modify_bars() will not be =
called
-     * at the end of this function.
+     * start with memory decoding disabled, and vpci_modify_bars() will no=
t be
+     * called at the end of this function.
      */
     if ( !is_hwdom )
         cmd &=3D ~(PCI_COMMAND_VGA_PALETTE | PCI_COMMAND_INVALIDATE |
@@ -1059,7 +1061,7 @@ int vpci_init_header(struct pci_dev *pdev)
             goto fail;
     }
=20
-    return (cmd & PCI_COMMAND_MEMORY) ? modify_bars(pdev, cmd, false) : 0;
+    return (cmd & PCI_COMMAND_MEMORY) ? vpci_modify_bars(pdev, cmd, false)=
 : 0;
=20
  fail:
     pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index d6310104ea..a98ddbb32e 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -295,6 +295,9 @@ bool vpci_ecam_write(pci_sbdf_t sbdf, unsigned int reg,=
 unsigned int len,
 bool vpci_ecam_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int len,
                     unsigned long *data);
=20
+/* Map/unmap the BARs of a vPCI device. */
+int vpci_modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_on=
ly);
+
 #endif /* __XEN__ */
=20
 #else /* !CONFIG_HAS_VPCI */
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 11:08:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 11:08:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249274.1546744 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzYTP-0003ie-ST; Mon, 09 Mar 2026 11:08:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249274.1546744; Mon, 09 Mar 2026 11: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 1vzYTP-0003iX-Nv; Mon, 09 Mar 2026 11:08:31 +0000
Received: by outflank-mailman (input) for mailman id 1249274;
 Mon, 09 Mar 2026 11:08: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=OAaF=BJ=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vzYTP-0003iR-6e
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 11:08:31 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4d7eae7c-1ba8-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 12:08:29 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PAVPR03MB9775.eurprd03.prod.outlook.com
 (2603:10a6:102:312::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.23; Mon, 9 Mar
 2026 11:08:25 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9678.020; Mon, 9 Mar 2026
 11: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: 4d7eae7c-1ba8-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uOvZmtkZw3rwduwh2mSb8KdWHJwNlpBrMK/iYdDlDnYlHLyqMsDzx5cdCnz59SbRSfEWJecrTaJMdo4S2LTSj/CtJ+QWPhEzx++0oUR++ayKXZxlNTPINeqW64lhUTs8nQe32V8hX3sOsGjaFpQYUn6MBZE1zfK4B3X1h0ZtRspvrYs0/pPTHPAYGz3nQE990WSZV6QrI+oQAKE0W+K4Y58jIBHmf5qH16ahRTQ5yUrZGKDg7OZ5bheerl5Q/P04lgeHqA55HJ/W9lMpqxSKrfxZnLrN/F42r9ocRLZ9URIBIOZ1Nyvj+BdzJcTi/PdsUjP/Oq/ee6yvNAsFFUH9NQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ORmtUgXQjDNdy0TrDi9teNyaY6deTFrWqE/Nuuy8jbU=;
 b=D2t0GIiQCe0F9gBVDz1wFuh6V4FFchw0jIP9RSRhQrcdzPjcDzK0l6vDOm9EAALLWWK7690wBjYdiDH3K/LnINZeAIXNa9DCvAtzJKudF+IZD75ybE0nHUPcB4ddGQVTh/vuhNVz3BgnC+qPQNLcKPfvE2dom0J/qCyb0dNYRRfrABpdlPPDkOPSn9bgp63dUxZMKKb40bomw6bxb1k+BCr9pKnz0QdoaDQBxaauktYxmGFYgB1gXaHmXPvAUDeaY4l6d3axBGSWjzLcmaRh1LWwtK4DUJeP2GghpSiaAJf9GSVmtJM+ZP1Tgp2a7ThK/LtU8FwCPr6x3EGEy0dNPA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ORmtUgXQjDNdy0TrDi9teNyaY6deTFrWqE/Nuuy8jbU=;
 b=mLdF77Iiv3Dh69B7B6JBqVS3ehRzNWWifz4h/jrut9sNzrm4UwjNmqI75+wlQVApxDF4vqvPjVWkmFznvnPRcMFX3igwo/8+RfAMsGX4hvgRYPXWbvA4qH/sYeoWLeBhGy9EvGaqPB/km3wz3PtD1AlnxkjQBiEHcJmLMaRF6vHGwe2DAHDIpsLJxhi4idr6EYqcG8lMO6u2zIBo08SDaxxDnjIOiQ+S4RdkWRuJrUTTsrKNnb+3co6xjnT/xVg8VXG/RWkaM6h9Mt6AG1L3ydoV4YMLvbFMTv7h200AWPKqho4ylezOvpOWwyqtWHeU4P4HbSVqvmw2SBIM4wAYJA==
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>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stewart
 Hildebrand <stewart.hildebrand@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Daniel
 P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v2 0/8] Implement SR-IOV support for PVH
Thread-Topic: [PATCH v2 0/8] Implement SR-IOV support for PVH
Thread-Index: AQHcr7UMVee0NzcPjUC5JqPDg9DN/A==
Date: Mon, 9 Mar 2026 11:08:25 +0000
Message-ID: <cover.1772806036.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_|PAVPR03MB9775:EE_
x-ms-office365-filtering-correlation-id: 5cf795bc-6e92-4c06-21c3-08de7dcc2f48
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:
 oNd6p/lsyul6TjMoRq1/BBTIp92yn0toBKalNsVPofxTezZ3RD43jcHUM0XW+P/NPmf2IhmkGhCDnZkPpprrcBeYDX1MUOj3gjPf74za80BhTY6gdbeSPLT9VrgABtpJOJPr1KXwhbT2LMXFTspl4a/gYAyBEpjk95aKq4TepMX4qyuzzhaukh9D02S7XoyhwabpAgEhgeZ7muZMDFQHJNM6ktKYWN+2J2L97rnBJeesEcbiOUqpFtXTMwbZf00SLA50WbkjBfq3mL4imySrmApsjY2EvLJ2OT0gcegbRALwJmdnKL3Msc0ihtZd3eXAcHR1wILtyMy44aVeLkQ0bDKFpnmQw8Y0WtxbpXuBEOEHRhGACYxD2fxrE53vjFvhTdUbeY2YLoJTzL4NgTqy006w2qgmch4Iud3gBLjY7PnUFX3ueWguRd5Blo2nqt9HgPQOyuuSytvhWysputZvBXjV3ji0BdwXcAD2KAvSbE2dRM7jufmY+HeTPWCV3hIGAI0Zzc6gUPcBlI6OZzcp14kLj0KNbCCeFKtBBLEcTzXhUaXFMqjcgxj20LyLHMVJMOiKsEHGtbvYYcUqGcxJAscvxvZMtovroR3fi8dKSjOYMVjHJwJaWJ13UjH+vJWBMimKeI6+IYZJYsQCrLZdfue2cC3nflJINCC6hRNsS3x1ZYjraTtNnWxZcIPNMJG5+fJ0WvvVpCMtfdXYB1E5b29r7QCfqXIeWVdNrfEP/YVJmq9csrsOHCuYt42DACcxcLoQ9PjjVnCL1MjZI/uV5YE1DNv5Y9zCfJ9jZUl9+uQ=
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)(7416014)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?RDlveWxSVlNMZkJwOCtIRU9CejVLUmJHbjlubS9ndXVyYlk0M2VlUkpWZzZM?=
 =?utf-8?B?akpZWWE2ZVcwMWJ2aTJqQ1YwSTZJaHRaUWRMQkg2bEptc3JyUFRJYncvMCt4?=
 =?utf-8?B?QXFkclZqeC9DVnNZRUNoeUZSdDdkYVJNbWZkQnJhNE1UbnJ3OEZxQUZHNVVy?=
 =?utf-8?B?ZFQyZVAvTGM5RG1aTU55NHNTcmhWUjNoVHBuYzk2Qm9hTDlkZ3RBZlV4OEVw?=
 =?utf-8?B?UitGNHZIOVpuc2orQzM5dDBIMThTL3EyTlpsWlJsajN5RVNDbm9QeGtNZE82?=
 =?utf-8?B?VU9SdFdQemhKMzQwOXJXd2gzVGRMK0NXRXRUeGVGOVlOTW4vcUFMZ2RvcW5y?=
 =?utf-8?B?YkczZTM3d2VyRktJSWdYa1ppWkZJcW1kTlNSTmZzSktMNHlyNWpIY0Nyei9O?=
 =?utf-8?B?OEJDdGEyU1lEVGlZK09jY1lISWNrYUxvRVBaNm9zN2s1Zm8vQlUxVnFRTFhw?=
 =?utf-8?B?ajJDdXdJdjFURUdFWHREMjliaEg0N3FLQ1dZSFJFbjZqTjZTeDlzZTFDSXZ2?=
 =?utf-8?B?TXJTMDBHbWplWFRuMm1MVFZ1NFNVOU5pZ2NXakdWNTEwcjlZNGUrd282U2Zk?=
 =?utf-8?B?LzNGY0ZQTUJ3KzhCYjJIR3dhZ0hJNnRjRE41QTdXZjZjY3FhVGxTcjZPTzdL?=
 =?utf-8?B?M1V3S3dtbEpvT3c1QkpBaDVaM1RTZUVhS2t1UmxWUzdEOFJVQTgzSEtDa21G?=
 =?utf-8?B?b1I3NnhIUTFHcHM1b0p4cFpXZ2h4ZkdkdEdKTzU5cEkxbVI5QUFERTdqenpn?=
 =?utf-8?B?MHRhRWdjWXFCVEp3bHNxc2pEcmZQeVdNSmF3MWVoOFlVUy9reWlwY3NNWlAz?=
 =?utf-8?B?QWNZT1ZlU0dTQzNlL3E4VzAzdDdmaGpQcWFDN0ZqREQrMCtXNXFyNUVuOFh1?=
 =?utf-8?B?RTZSc2tidVcwV2hWOWxHUkxCMEY2WlRMYTY0Mkg4ZU1yVGRNSkw5dVVaSkpF?=
 =?utf-8?B?b3VoVEtKc3p5VzUvNU1uVXhmMWVaYVRjM3VXWUdKSHNEVTNZOUVWZjdxNnlj?=
 =?utf-8?B?Z3pKMmQzc0plSmUwZVNGNUMyRXlvMDk1alkwV3d2ODI2bjdwcEZ2cFdyTUN3?=
 =?utf-8?B?dlgxTjNBdVZNZzNxNEF0d2wyUkpKWlBZRExhVnlrUnAvY0k5MmRoMWcybFpv?=
 =?utf-8?B?KzI5SDl4aGhKM2xkVVhwdmlpaDFTekc3OXV5eGdQNTk1VEdIUm9KMzlPQzZl?=
 =?utf-8?B?NmNabVFxWkc2a1RNM2doT0xla1E2VkMzOWFKLzh2YXR3aVVGY2pSZWE4WmlH?=
 =?utf-8?B?TkJHa2syZTF6QXBUM3V6TUVPWFJIY3Q5bG1mL0pIT0VOSVRKLzM3NmdPbjNC?=
 =?utf-8?B?cXNWMG8xUndPWnlSR092ZDdEU250bVpSWjNQSkJoS0t2aStrWStza3Fxd1c2?=
 =?utf-8?B?cTJzSDNnaHY2bEVINU4xaW1SNnVsWC80empENTRtTEZnOVhKa0RDeU5rS2xI?=
 =?utf-8?B?dUlFcU01WVhSNTQrWDJFZDlpenY5WDUwN2tocEV2YkFxdGR3ZStRSi9vRE1Z?=
 =?utf-8?B?WTZ3Mm1JeW1zTUYrRWF3L2ZFdEczR1RTem5qTXFIRHg5d0thd1VELzd5amti?=
 =?utf-8?B?TGlSWW1yWEZWUWR6M05xUGxmZUNYQUJxV3M4dkNvNkJMQVdTVzhOa3VtcEhY?=
 =?utf-8?B?U0QrdGgxaXBOdk1sU2tsNjBQQWRVY0pUVndCcDhKTURZYzFzSHpNY3VWR0V2?=
 =?utf-8?B?blVJQ09SK1hWZXVGVmYvUVdkK3lYbm91dzNoVWo1ajRRMXFMWXZubUtQSFJv?=
 =?utf-8?B?NW1GVVlFQml1bVhwc2daOC9HSnQrTk91QWwrWjRhT0x2MDRDcURVZ0ZSMlA5?=
 =?utf-8?B?c2RNYU1IRTdWbHdCTXJTSDZSL0dXemFsTFhMS3lvcVg4d2tqcnNNeU9lMWpz?=
 =?utf-8?B?clh4ejZ4dEJIQnFmbzRLekQ3YWdhQ1kzSkhLTFdYc2Jkc1N6QVJraHJVOGlv?=
 =?utf-8?B?bWp1cFN2L2ZtVnd3aUJ0V2NuakdpamxzTVd4R0VsU2VNR2VhTGh4QVJGeXll?=
 =?utf-8?B?R3Q2bm84UkJyaVh6M2NmQmVHTWN6Sk5uU3BPZlBRZTVONFc1QXptcGF0dG5w?=
 =?utf-8?B?ZnUrZFArNHZyM3U2Zi9aNURZT3lIZmhlTjNNaTVpYmFpL1FiZWhtQTRFWGRq?=
 =?utf-8?B?NWVWakVodm9saFpYSXBEZlpEQU9QWkg3UXFFMVI2cktHS0tTZTBtbS9RL09k?=
 =?utf-8?B?bEs1Z3J2dnpNU3p2S09BOEhMRTZlbVJPL1h6c3BmM2grdkFYV0U3K2I0SVBx?=
 =?utf-8?B?eHZ3RTJZUDg5V2s2M0lyTXNsWURmRmdiQUZEVGErd3NOUFFhaUM1WE5ERVBa?=
 =?utf-8?B?OGY4MWROTWdjV2J3Sk9rMFZKZDlHTi83VTNCNEdsWUtlM1drcWVOakN0c0JG?=
 =?utf-8?Q?LyMr27A75TKP/H0k=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <354D3193A0109744899CF9AFFC908DB1@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: 5cf795bc-6e92-4c06-21c3-08de7dcc2f48
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Mar 2026 11:08:25.2657
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Y6nt577vE8zQeTQPWZxag4XXYexzkbFuA5ed1RAvF0UnWPocUuicf9p//vdYucy4BKy+l/UvYEtQiodd0ASELg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9775

VGhpcyBzZXJpZXMgZW5hYmxlcyBzdXBwb3J0IGZvciBQQ0kgU1ItSU9WIGNhcGFiaWx0eSBmb3Ig
UFZIIGRvbWFpbnMuDQpJdCBhbGxvd3MgRG9tMCB0byBlbmFibGUgYW5kIHVzZSBTUi1JT1Ygdmly
dHVhbCBmdW5jdGlvbnMgYW5kIGZvciB0aGlzDQpmdW5jdGlvbnMgdG8gYmUgcGFzc2VkIHRvIGd1
ZXN0cy4NCg0KVG8gYWNoaWV2ZSB0aGlzLCBoYW5kbGVycyBmb3IgU1JJT1ZfQ09OVFJPTCByZWdp
c3Rlcywgc2ltcGxpZmllZCBoYW5kbGVycw0KZm9yIFZGcyBoZWFkZXIsIGFuZCBzY2FubmluZyBm
b3IgYWRkZWQgVkZzIHdlcmUgaW1wbGVtZW50ZWQgaW4gWGVuLg0KDQpDb3JlIGZ1bmN0aW9uYWxp
dHkgaXMgYmFzZWQgb24gcHJldmlvdXMgd29ya1sxXS4NCg0KVGVzdGVkIG9uIFItQ2FyIFNwaWRl
ciBib2FyZCB3aXRoIFNhbXN1bmcgTlZNZSBTU0QgQ29udHJvbGxlciA5ODAgYW5kIEludGVsDQpY
NTUwVCBldGhlcm5ldCBjYXJkLg0KDQpbMV06IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1k
ZXZlbC8yMDE4MDcxNzA5NDgzMC41NDgwNi0xLXJvZ2VyLnBhdUBjaXRyaXguY29tLw0KDQp2MS0+
djI6DQoqIHJld29yayB0aGUgc2VyaWVzIGZvciBWRiBkaXNjb3ZlcnkgaW4gWGVuDQoqIHNlcGFy
YXRlIGRvYyBjaGFuZ2VzIGludG8gdGhlIGxhc3QgcGF0Y2gNCg0KDQpNeWt5dGEgUG90dXJhaSAo
NCk6DQogIHZwY2k6IFVzZSBwZXJ2Y3B1IHJhbmdlcyBmb3IgQkFSIG1hcHBpbmcNCiAgdnBjaTog
YWRkIGEgd2FpdCBvcGVyYXRpb24gdG8gdGhlIHZwY2kgdmNwdSBwZW5kaW5nIGFjdGlvbnMNCiAg
cGNpL2lvbW11OiBDaGVjayB0aGF0IElPTU1VIHN1cHBvcnRzIHJlbW92aW5nIGRldmljZXMNCiAg
ZG9jczogVXBkYXRlIFNSLUlPViBzdXBwb3J0IHN0YXR1cw0KDQpTdGV3YXJ0IEhpbGRlYnJhbmQg
KDQpOg0KICB2cGNpOiByZW5hbWUgYW5kIGV4cG9ydCB2cGNpX21vZGlmeV9iYXJzDQogIHZwY2k6
IHJlbmFtZSBhbmQgZXhwb3J0IHZwY2lfZ3Vlc3RfbWVtX2Jhcl97cmVhZCx3cml0ZX0NCiAgdnBj
aTogYWRkIFNSLUlPViBzdXBwb3J0IGZvciBQVkggRG9tMA0KICB2cGNpOiBhZGQgU1ItSU9WIHN1
cHBvcnQgZm9yIERvbVVzDQoNCiBTVVBQT1JULm1kICAgICAgICAgICAgICAgICAgICB8ICAgMiAt
DQogeGVuL2NvbW1vbi9kb21haW4uYyAgICAgICAgICAgfCAgMjQgKysNCiB4ZW4vZHJpdmVycy9w
YXNzdGhyb3VnaC9wY2kuYyB8ICAgNiArDQogeGVuL2RyaXZlcnMvdnBjaS9NYWtlZmlsZSAgICAg
fCAgIDIgKy0NCiB4ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jICAgICB8IDIyNiArKysrKysrKyst
LS0tLS0tLS0NCiB4ZW4vZHJpdmVycy92cGNpL3NyaW92LmMgICAgICB8IDQyMCArKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrDQogeGVuL2RyaXZlcnMvdnBjaS92cGNpLmMgICAgICAg
fCAgIDMgLQ0KIHhlbi9pbmNsdWRlL3hlbi92cGNpLmggICAgICAgIHwgIDQyICsrKy0NCiA4IGZp
bGVzIGNoYW5nZWQsIDYwOCBpbnNlcnRpb25zKCspLCAxMTcgZGVsZXRpb25zKC0pDQogY3JlYXRl
IG1vZGUgMTAwNjQ0IHhlbi9kcml2ZXJzL3ZwY2kvc3Jpb3YuYw0KDQotLSANCjIuNTEuMg0K


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 11:08:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 11:08:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249276.1546761 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzYTX-0004Di-CF; Mon, 09 Mar 2026 11:08:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249276.1546761; Mon, 09 Mar 2026 11:08:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzYTX-0004Db-8o; Mon, 09 Mar 2026 11:08:39 +0000
Received: by outflank-mailman (input) for mailman id 1249276;
 Mon, 09 Mar 2026 11:08:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OAaF=BJ=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vzYTV-0003iR-TL
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 11:08:37 +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 521c8dc5-1ba8-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 12:08:37 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AS2PR03MB9695.eurprd03.prod.outlook.com
 (2603:10a6:20b:60d::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Mon, 9 Mar
 2026 11:08:27 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9678.020; Mon, 9 Mar 2026
 11: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: 521c8dc5-1ba8-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nl8QLc9UdP4ObnHMHs2oJLNhVmBTPr7g7K/+hl+X37iwSZo8VxQXuDT8O90eGWeeO67dqMdQyQu16VlnC4z7czZ9hghgP0c7KmmAYV6OqRYZvwDbiCzEZdiB14C4uokcLH6QRS8pcc/uH9lseoX6LPkoXFED6XeY/7uaXGzN5rXpC3ZL916wDMYd8YEL+hBsJSqx1UPcbEkNwsg/tWsZO0d/bILruNZJEapkStxToql0n3FTuvV1Dw6SEsl3HSBwzgrpRMSUBxGydgadz8fgmfW9qIwRxwZc3kAXAvOObtAGmcDfqLTNbk2YByiFyCsN9IQm9BaD8UO6ZLbnlvHjSg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pWzIGDE75yh52u15Xirf0pf0J8xYC99w/7XLPD+73E4=;
 b=RutKlxD6KyV5kxYSoeghtgKLH9y+5DtP0UA2c/EICN1DbJ8PVVGXnPWiHF4zhh+RhhFdyJr3k7WP+euOM8vpEnyiHvmBJgXyC6ubHCo1bvfDHMeSAJypI5ntTQtxgMAGEGgJb0W1zy9fPQ/5IT0Xc7kPv4aYXNISqe/4hYLO0V0erg4KL2kwKoLYOMHA83fNMJAI5oTih+SKjuKAhWQZQU8XxEcMOVu4thXBTcLZDIiKt3rH5+1pTVr64e1t7YFc6slmyP9G4Ym96GKgvhwedG+pHmJF0ELLumlxJ6CsMT8Nj3xdJXVZZ8P6L3/aNraWaQH+y6w/I84vOiQbXmbyug==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pWzIGDE75yh52u15Xirf0pf0J8xYC99w/7XLPD+73E4=;
 b=PHiJLcidbNn0dDFazHvU98HdYzaVw3FIO+hxVLLyOY+i8kZOlKOk8NaJ8+xoEzqpdR9Togc9youYXVngFNTl+TBD8BFSCJouCd7gi0eUORPifGY0LLHzbERZ+deNb/8HYog+6LrPWJc71IAWCYkcr/5xKXl6Cb+2hdESYSN+MoHwSdltFOZrxk65KdRM+XjYPWT+PWGkOx2Wr4SJPJWQ/yao6DoyvFNhAecaSm3nBQlWsOqzMbpuZ3BsqT5lxQoC9s9nah5GFtF+OJLybqkW0R/9d5ivDQaPDpZmZMue6Qg0XhKQkdkKe+kNFgPg0JlEcLYg3CF3u05ex15GUAB1vA==
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>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v2 2/8] vpci: rename and export
 vpci_guest_mem_bar_{read,write}
Thread-Topic: [PATCH v2 2/8] vpci: rename and export
 vpci_guest_mem_bar_{read,write}
Thread-Index: AQHcr7UNr/GbhVrPC0iBoBGfLfVFWg==
Date: Mon, 9 Mar 2026 11:08:26 +0000
Message-ID:
 <5f364e8fddc83b9a7ae08945a91c38ae1648442a.1772806036.git.mykyta_poturai@epam.com>
References: <cover.1772806036.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1772806036.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_|AS2PR03MB9695:EE_
x-ms-office365-filtering-correlation-id: acd06d94-67d8-467e-243d-08de7dcc3047
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:
 jsAlT0GNPi0IS2NxVOWAoYpQiAmM0cDPg2eh7bUOYeRfdqOZiE24yLU2/siQ0vDErl18i/1bIPp827lFJiULUMJja9zTPEE917ec7vu9/wdinp4p6luFKLa0RBLRvIGZnz+wq4BUz9TJYW20unLgZ4s1IllDFzIVOdjOueeRG7FX2PuZbj5ujnRzuDNihlTBggpt7F3cmn0IWa3tK6MVPki7XCFV6vGEPCVs4rW+x9/bgYb7mG8p11YBY51n6kwKrDQY+cdjYotq9CJEp6JiVpcK+nMVUse5tezCE7rFAvjSMDVYkPc/1q+BTxYPVAbG2Cjem3FF/TVSYAsEOvaQB+xbtDqs4oDAIDNKDanUrmQ9fsinWaIevRi7Xl4xtlkaFw+NXCD3bRXa0eoLvwtfHdntorHGu8yrfleOW10SM+4OUXUsZzNuBZfHXL4wN5F6pkJIB7rZAUDr2Uyoe+WqKP50344TSc0d849cvTtRP98dkuXCP2U0spUCXiPlE9ErqJPIfxPzyoMyQaJXqFrgWduaSKxLFUUk/BV5+EnvJljT8Jgs+1a2AcMnYDmw7mmMUlM1G5/BaAHI55Ks8DWUeqdI8n+oXD9AtLnI4vl4Nz14V0dMostCi0/FBQOyfcxoYwze8zpqnCudvtmYg7JImb84zFKxzlu7PqmPcVE5oiFR5oidqjs29LkIp7Keiv2ImlL9ciO2Avd1oOR8y5Ovwgof3Lkfs49r/31cWcGf6/m4YmlavTTVg/DYmMHN/fwE7jiymyYRhii15lWvD5GVL2d7ALPHqMTa0k7P1qwYpHk=
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:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?auwvkiNQA2GZu4QqaB+cl/5cXA3UfuB8bj8To7PB0vkaqMTlTNkXZBok27?=
 =?iso-8859-1?Q?QNHUFEEa8DrXqOHczIp4lSVrBJY//w/tgiyRB6UPtld6zL11Kf95Pj3F6v?=
 =?iso-8859-1?Q?29Rx3LQpyGhaXUfIzyjWifCrXTC6/Sp9E7PCuJ1q5q532PGbhtg5Rj4HUc?=
 =?iso-8859-1?Q?C3UiAEVIgynCkfFKoH/JtJXftJw4cr22ynvTB23yxPP4bcJo+PxFjKSkWh?=
 =?iso-8859-1?Q?BhhpyA3I9TMRKPGLDnIKPOrlunZHtR3fWLqfhwvBW02Awif+5aMjuW+CXH?=
 =?iso-8859-1?Q?hcSGuLP2lYIJxCndVb9q14SoMYl5mQG+yirhQ5Dq4Bd820yigWBP2lCh9b?=
 =?iso-8859-1?Q?27mas/VjtjWTuqFzEVsfO+VVV39THkwSna/oiUYtHxe9Bte5dw3FYRReUQ?=
 =?iso-8859-1?Q?xU+IJ+ARY3FeDk/CGJN6pHJumqsLRFhaR3r1w69t6Lq9BDSmC5MT4ENYPe?=
 =?iso-8859-1?Q?+F62wN36nIJkLtOO4/rB7JpPTXRQE4cmLS2zqiEUd2lRI/xzlHFMHopMJL?=
 =?iso-8859-1?Q?kA8X00Y5+lNCLVxfc74YgZ1HpjC5pkRLK6s3Cdmxk2jGYKcT0HmkyV+CC4?=
 =?iso-8859-1?Q?17bQDmm0IVB99GeIoEX+zv76NtTdHmdw3VWfuFmRO8r55AK4QoV4y4X05j?=
 =?iso-8859-1?Q?B12c51r0Jz6VlrVvs3fm/XyTPDwbqF3r9AlC4x1pXswI08RGU4IIAJyjhu?=
 =?iso-8859-1?Q?u8z4nmtCPMvhEMTkP+0rCB9xAAScV+pAw/UVjWFXRoO5UIj9q1FZ1+0as/?=
 =?iso-8859-1?Q?bgiKBK50dm+g06qOHjuNgvB9paEjMfFOd09oJX9Rg2eVBfLZ2rRb64RwoN?=
 =?iso-8859-1?Q?KbfzBPRfyM2H7kV+W4KB4oI1PR/rXT7JDYGNSN1/ZPYQeBAhLWu/uPACRG?=
 =?iso-8859-1?Q?cjzPD3AzQsnHysFT0uC9VGKRj6hVNS+dUWynntMioFg0vLLqZ7wybjd7ki?=
 =?iso-8859-1?Q?IeDhANaeN1f6FY1lDlr44NoKyoH83/7dIRafhjPZxTVD6Ihwwbt9I//8Kp?=
 =?iso-8859-1?Q?rorBOjYJZu33PtwrpaLJ50cRgfIDDAoNcdNVvaQJ9tUw4Q7XmQE/AUvqC0?=
 =?iso-8859-1?Q?BBNguujleBwG/A6sYIk1KDtDcGkJbwmj2Cqp510FLoVUttWkKvVI70Y0Ql?=
 =?iso-8859-1?Q?W7y1Fs9sPID7zjoJf1EFdLfCVb2P8wVAiiHpeUn4EC0Z99xapNam7KjRCg?=
 =?iso-8859-1?Q?FsUQu5oLKZJYj5Lr4LssiY7T+SKXAbd+ntxcoagdO2ULpvurS2L494s7ez?=
 =?iso-8859-1?Q?kLnxJPECQeDZ2IadwkuSHJqkPWVdl17a4fSrnDXng82YW84BfmwevATjMf?=
 =?iso-8859-1?Q?DTqdBiMB5tT9P79T2pftUgOWPjC6w4Fb/4XPriKu65JEmD0mzWNyaWSQ7T?=
 =?iso-8859-1?Q?ITm4CSFR8oahilOd92EPPz17H1Lk34OG9mA9v/VuGNQO8NdQpUMxA5EXjs?=
 =?iso-8859-1?Q?TyMdDFfiuAQ7X8vBtkTM8rrcbbSUdRxZ25VheBk/7HoKKY3qOvuIM9BSIE?=
 =?iso-8859-1?Q?ReFGZJSNTOqnJKwbIxpkk/0STHCbTv2sEMQ9nuoX5LPMwsRPMT0bEdj9wZ?=
 =?iso-8859-1?Q?01EFDq343q7UGRJae5VpX1YfgErL+zrlYyagY+LU9IWVrSVIJrp3294m+1?=
 =?iso-8859-1?Q?N+CT9OeXDo/aD0uH0UqwjU7v9ulBHsevjUnbkYvpa8eLuBF9bWIun2fanS?=
 =?iso-8859-1?Q?7j44MNG1tVDw14wW1X+a/NB/bb3F1xs6arF1S0oBh1h1nWNoz6ltSb3iwS?=
 =?iso-8859-1?Q?gfS47j3K3RuFlthJZNKic8TwkMnOK/dS/DVeXWYiTOmn2N10MvC+75cZUZ?=
 =?iso-8859-1?Q?CpP+O+HxFHwYFVsosu768htF6eHgop8=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: acd06d94-67d8-467e-243d-08de7dcc3047
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Mar 2026 11:08:26.0310
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: e4WSfxWyCKueygyCsJC6swW/fwfuIaiKHOdObpxVS2Z2PMvVr8qZJ/MGfx5o5EGYntWyDkhnExk2sy2//qMjIw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9695

From: Stewart Hildebrand <stewart.hildebrand@amd.com>

Export functions required for SR-IOV support.

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Reviewed-by: Teddy Astie <teddy.astie@vates.tech>
---
v1->v2:
* collect RBs
---
 xen/drivers/vpci/header.c | 20 +++++++++++---------
 xen/include/xen/vpci.h    |  6 ++++++
 2 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 5202518e83..07ec991a12 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -610,9 +610,9 @@ static void cf_check bar_write(
     pci_conf_write32(pdev->sbdf, reg, val);
 }
=20
-static void cf_check guest_mem_bar_write(const struct pci_dev *pdev,
-                                         unsigned int reg, uint32_t val,
-                                         void *data)
+void cf_check vpci_guest_mem_bar_write(const struct pci_dev *pdev,
+                                       unsigned int reg, uint32_t val,
+                                       void *data)
 {
     struct vpci_bar *bar =3D data;
     bool hi =3D false;
@@ -652,8 +652,8 @@ static void cf_check guest_mem_bar_write(const struct p=
ci_dev *pdev,
     bar->guest_addr =3D guest_addr;
 }
=20
-static uint32_t cf_check guest_mem_bar_read(const struct pci_dev *pdev,
-                                            unsigned int reg, void *data)
+uint32_t cf_check vpci_guest_mem_bar_read(const struct pci_dev *pdev,
+                                          unsigned int reg, void *data)
 {
     const struct vpci_bar *bar =3D data;
     uint32_t reg_val;
@@ -959,8 +959,9 @@ 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,
+                                            : vpci_guest_mem_bar_read,
+                                   is_hwdom ? bar_write
+                                            : vpci_guest_mem_bar_write,
                                    reg, 4, &bars[i]);
             if ( rc )
                 goto fail;
@@ -1018,8 +1019,9 @@ 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_hwdom ? vpci_hw_read32
+                                        : vpci_guest_mem_bar_read,
+                               is_hwdom ? bar_write : vpci_guest_mem_bar_w=
rite,
                                reg, 4, &bars[i]);
         if ( rc )
             goto fail;
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index a98ddbb32e..dd233b8b03 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -78,6 +78,12 @@ void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsig=
ned int size,
 uint32_t cf_check vpci_read_val(
     const struct pci_dev *pdev, unsigned int reg, void *data);
=20
+void cf_check vpci_guest_mem_bar_write(const struct pci_dev *pdev,
+                                       unsigned int reg, uint32_t val,
+                                       void *data);
+uint32_t cf_check vpci_guest_mem_bar_read(const struct pci_dev *pdev,
+                                          unsigned int reg, void *data);
+
 /* Passthrough handlers. */
 uint32_t cf_check vpci_hw_read8(
     const struct pci_dev *pdev, unsigned int reg, void *data);
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 11:08:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 11:08:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249277.1546770 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzYTY-0004TG-J6; Mon, 09 Mar 2026 11:08:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249277.1546770; Mon, 09 Mar 2026 11:08:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzYTY-0004St-FQ; Mon, 09 Mar 2026 11:08:40 +0000
Received: by outflank-mailman (input) for mailman id 1249277;
 Mon, 09 Mar 2026 11:08:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OAaF=BJ=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vzYTW-0003iR-Te
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 11:08:38 +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 52878060-1ba8-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 12:08:37 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AS2PR03MB9695.eurprd03.prod.outlook.com
 (2603:10a6:20b:60d::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Mon, 9 Mar
 2026 11:08: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%5]) with mapi id 15.20.9678.020; Mon, 9 Mar 2026
 11:08: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: 52878060-1ba8-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xqd8cYj7gy2TZSBOlBkbaLMT6N1GKSlKJkUPzNqCtkbo01FLxHG6Q3uxyJ03kCj5CQBdyLE97eueuXbMdLGhp58TCU/Db5WUa4egtwHZd/tU1LZ6cwIJ0nmmbNr3dEE26d9tfRYekoOn6VVQ8A6segUyG+WjZuKCR8v2JHUI2kT8TQfzNdy9OsffZ6RT762MrE88G3CgOPQ7yBQe937oNFVAYqH+QhdrMUZFI//ULZChed0DRB/nU4tswXTVpnZyrgdJ4Otv5Kjdu1KN9Ag8p9st0gaydhIcFSLlPoZks+FFfD44UVcmR8eec2OkyA3jdF6l77EQrW9LACucgkI28g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TIjXoyluGNn9xI4dhnAjl42ZVBDPRjpiZelesPBUChw=;
 b=tWIRsOk2mLToM6/blopyO0HS0cFJh5OKhmN20RRJzSLN7EQxaO1YQJsRicwIuGMRd2o86sFbjps5qfVBPIj803vGM6DFaeLi4jCh/KQLmv2xzf28D0PHesuK8SaesgWeZmvKY3uYFfbU2EPEDfSNJF33nLs6bSJybtsWleeWeQOwGbqHDNTxp14to9kBVYZUNd+VfhgYocGAGC7VQFZS2OURF5kqmL6CWMxTYw2ORTsPX7GtY/Lq5pQ3VjJVDQ7gHMi8XCBIVa4pqAz3FEqoS+gZ0xH1v/loKFqvE8uquzBeYFrLRNUIgGMdwmwiIaPBKjxsS2ozjWwqAiuTnP2yxw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TIjXoyluGNn9xI4dhnAjl42ZVBDPRjpiZelesPBUChw=;
 b=icksVjs0RBwAZ6amoj6d06hDrO0Vm8ttxzyCLQ8vMPtDNjkTZOI4HCbAandGHlQWxoWquwz7+wCIGzVEYVWnGCVWP66444diOPJCdLRoP7uKnkfBlHLKyfA+dwBReScg7tjKnA97s7qurwF6Yvu0PpDtXH+JCQ52S3fCmlt6hlLZ3WihALk41VgiThD8zYzSV6j2mK9jzDj3oCufaWg1NG0o/Z1OIKVU1iWjVaE3e8UJwyFeqJWxOX56JjQ0nfRvZuZkVjEtD10F0nog+4yPTn4BW+sLRWM5oi52wVUXW5ZFwqK4BMVDuejkbi2ugCvjIgEwqsyvucv469QiA33YhA==
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>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>
Subject: [PATCH v2 7/8] vpci: add SR-IOV support for DomUs
Thread-Topic: [PATCH v2 7/8] vpci: add SR-IOV support for DomUs
Thread-Index: AQHcr7UO+MwgiaR8rkeSbkx2JKFNaw==
Date: Mon, 9 Mar 2026 11:08:28 +0000
Message-ID:
 <4df03dab1dc6ce3ac7524b9f06641bc90889f743.1772806036.git.mykyta_poturai@epam.com>
References: <cover.1772806036.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1772806036.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_|AS2PR03MB9695:EE_
x-ms-office365-filtering-correlation-id: c39d720f-7feb-489e-8530-08de7dcc3437
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:
 US12a8QYXxbqfc0jdD1/5pKn21z0T2D2rwo7FlXKT3EdnjTJZCMqDH+0JAvFGZ4HgxSunTdrHuAMmEnZ2lQdRqmoZjXV1thM7zTqP+0DkJkZyLwaf9NuTXH4pskfkUp24uzetDbOo/1F1D9hHaO3309t9Ci6N0ksFQzMYikrAMM5XLAVrcDvqI5aB+9drUCbkEIWJWwbd1LzdLPS8A+rJnIdHy5Kc95BC0Za5w7KYsrgEyRLjCy4kFzwnyzt3EGTUzv+/X1u3yDOeL87ZL2mwlxPrTtMSCk1PSxHk7Ge9mX3GUIoM6BBZfppLLsK4Pg7PJrS1keWL/BYbJafi4B/GxHGpNQ0RLvWU+LuSKSSrOlbRyuvvOkjOb8tyEjpN0x2evYPl2EpjGrEkMh0jir9jDYyi4zqmdGUYhvGuFvz/nQKAO1qjEwNXL4eTa0wn1dl0Z8B0TTsH1hBsVIZEkEwAwowuzxfy8sTv13xmNnYE1QjwjvY0LztSAPWRI3vujdXzeY/8Kh870Ix8GZ/4w+m36mPZRVLXTTdSiS3VJiyypTzCQDRl09w98UEzQSi1cWgeOchvcq+Woeu0HF7M28LtdcAR0p2/RW2I7gYnKkY3rudMdBClwbmZ9hALoYuJXN+PEoiHgOZSacRcqqWggM6lBEXtV5HFSZ3BbsQB5H2t7jvvsldGwQRfRKfKxNqUG3JKNfBXApPolQVFwAik6TyulJLxWlJ+foTwp7dvLkXEwI+QPA7toerZdfQntqYEBAAJj35gUaByObicO7eK3Y1lJFPa22FBTT3XYkuZcHMN5g=
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:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?KB3hOanFokbhrM5e0rg3V3DBJYCU2FKzvsTbQg+5FOCYkKS84zN3n0w0Y4?=
 =?iso-8859-1?Q?oWn3z6xqkj9i1vRpZYarCkSmSjEUcfdsgvq64vfjcZxcqDoX8Ncoc2V2ld?=
 =?iso-8859-1?Q?nw/B0eN+zr0lIKWEFdmxnRqJQt2MIc9b4r3a8CiANYtv+U1m4HlCFwEnCC?=
 =?iso-8859-1?Q?dlowIZYZEQf5gqS2RKon7mk8hqq3vcPz1DQXf0THb5ldQzIV3057lL6+gq?=
 =?iso-8859-1?Q?yZH1k+7B5iEH5cJ2wFGN6WM/YZuKsUWf2a97uCuGgU6CxbPPlGI8F7kK/s?=
 =?iso-8859-1?Q?VsfWF594DD0U4SJ8+ly5KtZpDHUDCVxEOlk7fdVOM8SvzTI54dq7mhtVFn?=
 =?iso-8859-1?Q?QWqu+SiSoEeSaN8T0WCT+pjOaAOLpH9nUm920lNaGGrdvlvfJqibh4GaVd?=
 =?iso-8859-1?Q?K6SI/OBsEbxohI1h/lhQFBMlEscLB3S7IubLII4onqirnwUnvmlYkHUa7E?=
 =?iso-8859-1?Q?eXOe8N2oA1glHLkM1uVQ9QLZj7dmDmWKfx4U7Vh6vsNpqooCMOCYShNuFw?=
 =?iso-8859-1?Q?xiDmvbwQfebkgsyvp/sMcZydEQjFxFS2IR0U8h9V7198QQ4lpZULG59IN4?=
 =?iso-8859-1?Q?n+c+lunwo70yYnWJYf1K3/9Q+Sv5YTeVqTLza3grTsYFfnYdMjzErRV5HM?=
 =?iso-8859-1?Q?OjZ7cHIfz9CnFTglcnnBOckHBpxvF64zSa/RNK6GC9FEh3NjkP4bNsu5QM?=
 =?iso-8859-1?Q?Qiu1xuM4KaTBRHfPFosLPt/cZUE7Rg7FbBGeohloV+tamF5bDI08Z45xl2?=
 =?iso-8859-1?Q?X9sXAn16lAf17bCvHo7E8XAHR3IobvU15r+KLADohicRevUnb4NUXi6YiQ?=
 =?iso-8859-1?Q?MIrUCWlJLvrkHItPouXrHW8jhteFG5cEDIdjSPg/c7AisMsyLa48l8Nt6S?=
 =?iso-8859-1?Q?BtgP7rZTso9B6SzdNloXeCMFMe29dsehmzPyPfCeEUuGMMrPoXBu+71DID?=
 =?iso-8859-1?Q?wCKL4OZvB52I1NeK0AiuLhizpsKo2QDzK02uGhHcMK9a5VYoAbLum+7wxz?=
 =?iso-8859-1?Q?PyN2ZYvqhwIcbrdkOd8FKZGiV1lpS7KRrBQIo/+5/Dhe9nVG8If+P5VXS3?=
 =?iso-8859-1?Q?rXLrWxGNthf4yQkXRht3EDJoUsUoKAjytrpQaYstt/jkdrLEQPZNzbL2Wb?=
 =?iso-8859-1?Q?StYLGT5jdutavNVvWUi3aIpIPioCmY1ppHA1C/6FH72GNxKCgIzGCHzzge?=
 =?iso-8859-1?Q?5rPyiLVHjlYVfcwOK5ztmBeXYNiAq11lXvBVlA2DUkqTVpyYcOTDBcbQjy?=
 =?iso-8859-1?Q?udRRGKg4p3RDlLGWrLvn6Uz/QNAp/ARKfevoakkMWOys2vxAzg4/2Y4E8d?=
 =?iso-8859-1?Q?XAzUbs5ANpgJmKOYK0vJgZ4zTMa6EZOD6s6LUrde2v/aNtKB4k+FhV7xYi?=
 =?iso-8859-1?Q?IEZw11YEy4RG1Xl3kLd7MjaZyfeeuM//rGhCAIsJtU1GKdzRtMMRk1tQfS?=
 =?iso-8859-1?Q?i0gQsSwyxC4ASf1lqw2c8Kwq/pBzAaJnxRpHeoQlI1kJkqjeBlQfZ7ddcv?=
 =?iso-8859-1?Q?UdZ4GkdW3HhX+Pmmgr4uaMe7t639r9UswIipVryQxat7AjhO7QbhIIemjq?=
 =?iso-8859-1?Q?A9ZAFzADlIWkRFA2uj624bFXO/Ic5SOAoIUYOeYfDZNlYnThhLxtBg1nKb?=
 =?iso-8859-1?Q?+niyNwIKhRZFza6DvQc4/5zacnjBX83P4Av5XYbEGf+s7g4qRrGaTHLq+d?=
 =?iso-8859-1?Q?neo5jl5T2qiqfyGOsrN50nvF+AQFqYWqUdeaL7od1V7KTPCXJmIyakmQbr?=
 =?iso-8859-1?Q?CJgEd7N8CLeVXvc6nfuwK/N0kLnvTdKkr8SQczhaZMZTcmz9UBm/cvwu/d?=
 =?iso-8859-1?Q?vo3UOo/8qRNr20wwF4I0WXMIGv77Pa0=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: c39d720f-7feb-489e-8530-08de7dcc3437
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Mar 2026 11:08:28.2601
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: meoYxEVlFmzSkLtlCLYWjSmiZZc//L3Tpt8twbzfGmw+BEdX8crR9YtB07/y3I+FNpb2m5sHjJZze57NBLbIlQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9695

From: Stewart Hildebrand <stewart.hildebrand@amd.com>

SR-IOV virtual functions have simplified configuration space such as
Vendor ID is derived from the physical function and Device ID comes
from SR-IOV extended capability.
Emulate those, so we can provide VID/DID pair for guests which use PCI
passthrough for SR-IOV virtual functions.

Emulate guest BAR register values based on PF BAR values for VFs.
This allows creating a guest view of the normal BAR registers and emulates
the size and properties as it is done during PCI device enumeration by
the guest.

Note, that VFs ROM BAR is read-only and is all zeros, but VF may provide
access to the PFs ROM via emulation and is not implemented.

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v1->v2:
* remove VF register handlers covered by init_header
* set guest addr unconditionally
---
 xen/drivers/vpci/sriov.c | 57 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

diff --git a/xen/drivers/vpci/sriov.c b/xen/drivers/vpci/sriov.c
index 6f691149e9..1c408d1c6b 100644
--- a/xen/drivers/vpci/sriov.c
+++ b/xen/drivers/vpci/sriov.c
@@ -303,6 +303,63 @@ int vf_init_header(struct pci_dev *vf_pdev)
     sriov_pos =3D pci_find_ext_capability(pf_pdev, PCI_EXT_CAP_ID_SRIOV);
     ctrl =3D pci_conf_read16(pf_pdev->sbdf, sriov_pos + PCI_SRIOV_CTRL);
=20
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+    if ( pf_pdev->domain !=3D vf_pdev->domain )
+    {
+        uint16_t vid =3D pci_conf_read16(pf_pdev->sbdf, PCI_VENDOR_ID);
+        uint16_t did =3D pci_conf_read16(pf_pdev->sbdf,
+                                       sriov_pos + PCI_SRIOV_VF_DID);
+        struct vpci_bar *bars =3D vf_pdev->vpci->header.bars;
+        unsigned int i;
+
+        rc =3D vpci_add_register(vf_pdev->vpci, vpci_read_val, NULL,
+                               PCI_VENDOR_ID, 2, (void *)(uintptr_t)vid);
+        if ( rc )
+            return rc;
+
+        rc =3D vpci_add_register(vf_pdev->vpci, vpci_read_val, NULL,
+                               PCI_DEVICE_ID, 2, (void *)(uintptr_t)did);
+        if ( rc )
+            return rc;
+
+        /* Hardcode multi-function device bit to 0 */
+        rc =3D vpci_add_register(vf_pdev->vpci, vpci_read_val, NULL,
+                               PCI_HEADER_TYPE, 1,
+                               (void *)PCI_HEADER_TYPE_NORMAL);
+        if ( rc )
+            return rc;
+
+        rc =3D vpci_add_register(vf_pdev->vpci, vpci_hw_read32, NULL,
+                               PCI_CLASS_REVISION, 4, NULL);
+        if ( rc )
+            return rc;
+
+        for ( i =3D 0; i < PCI_SRIOV_NUM_BARS; i++ )
+        {
+            switch ( pf_pdev->vpci->sriov->vf_bars[i].type )
+            {
+            case VPCI_BAR_MEM32:
+            case VPCI_BAR_MEM64_LO:
+            case VPCI_BAR_MEM64_HI:
+                rc =3D vpci_add_register(vf_pdev->vpci, vpci_guest_mem_bar=
_read,
+                                       vpci_guest_mem_bar_write,
+                                       PCI_BASE_ADDRESS_0 + i * 4, 4, &bar=
s[i]);
+                if ( rc )
+                    return rc;
+                break;
+            default:
+                rc =3D vpci_add_register(vf_pdev->vpci, vpci_read_val, NUL=
L,
+                                       PCI_BASE_ADDRESS_0 + i * 4, 4,
+                                       (void *)0);
+                if ( rc )
+                    return rc;
+                break;
+            }
+        }
+
+    }
+#endif /* CONFIG_HAS_VPCI_GUEST_SUPPORT */
+
     if ( (pf_pdev->domain =3D=3D vf_pdev->domain) && (ctrl & PCI_SRIOV_CTR=
L_MSE) )
     {
         rc =3D vpci_modify_bars(vf_pdev, PCI_COMMAND_MEMORY, false, false)=
;
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 11:08:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 11:08:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249278.1546779 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzYTZ-0004iM-SZ; Mon, 09 Mar 2026 11:08:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249278.1546779; Mon, 09 Mar 2026 11:08:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzYTZ-0004iD-NR; Mon, 09 Mar 2026 11:08:41 +0000
Received: by outflank-mailman (input) for mailman id 1249278;
 Mon, 09 Mar 2026 11:08: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=OAaF=BJ=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vzYTX-0003iR-Tl
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 11:08:40 +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 52cadce9-1ba8-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 12:08:38 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AS2PR03MB9695.eurprd03.prod.outlook.com
 (2603:10a6:20b:60d::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Mon, 9 Mar
 2026 11:08: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%5]) with mapi id 15.20.9678.020; Mon, 9 Mar 2026
 11:08: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: 52cadce9-1ba8-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=drDPO9QznwPw0acjwL60yGPkwYzkpG+GVxUg97cIyKdC8Alk1uuH9lIjqjP3fCVRdLsYzf+YHNXhkSPGfvF8xzE7qc1So/gbYXSvYkWTrmLgUAl13UNrYYjfSZSqeMqy1nz08kZCruUqUFTOlt8QZWyde+NLu6OsPtmEbTnwj1TE1Tw2ZRQQgf31DqFFOKGHSlzF4ayo8/J1cyMdMkzFoZhpmdefd0B3IC0UzTHIMpEX1iNBxdxIWUtdz13jD/S6Lqg8fItYBahvzjoNZqTtLatmFZ+iagPnsreqBkK6aQzlatYz4zn/yUzaqFd74FfWRIwba/8y8nCvZAG9eo6GWQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jPd7eg99vjV5lo4tppv9T3tRyoUFlgTQOLxJi+eBzBY=;
 b=EKYqFMaPdpQTh/zZ2YFaEOLR70yWeWBwNJnhgjAUgLktNpTc/94GJVYvhfqjp+Ps2z+OzciGn99Mu1qI17/uymfDKIvC6uyNWwQ9scyEZOyDsJhY++bLI1B2iJKHcB+4UJu19bVfgU9HOFNGHWPJnABi5XBSfv4K9kTy01jcDn63ilY28lDKxErLcxOk9UpA7suJCLgjnu0BsCIhuCjh2WXbZrCWQMRAFo6OZ5k4xDP5u3flf7wLtZL4WeUkhmPQ4+kazVj6wX7fjtULLQtcT2Pb84Y7zFXhp8+UwXlCpoaawhdDJpiiCjGhFtzdZC1U9Flpq9PGgm8X1Ckqk7egbA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jPd7eg99vjV5lo4tppv9T3tRyoUFlgTQOLxJi+eBzBY=;
 b=Tskh8JBL0HRr4v1du1eU5NDPUlYOzC6HBpi2nkCyI32VTBNkas3enBg/A2Xd83Bi5ZtEdloPJEAVWOEGu0z2O9PEVI1A4/suqvuHHUvB9FTYACkUIjkNlYrkTyiQgNs3MgibVQ6/yoyASTBEeAZsvF2O2GI69LamtSaTFya2dVbUsp/Y6Gf/JHkncMU44H6G+3BIBVI9o3RftDp/1yYansXhg30528W/8obQsbxXU9F7vtol4LBffdto9MQ6CEEhE5eNMemM9woLQm6jAxCpHqiukhTvo5sOqpa3Vw/rYsNdkubz033t1gQCNtwAfJiNv/ORplaMwy1uNFkM5Z+VZQ==
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>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, "Daniel P.
 Smith" <dpsmith@apertussolutions.com>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>
Subject: [PATCH v2 6/8] vpci: add SR-IOV support for PVH Dom0
Thread-Topic: [PATCH v2 6/8] vpci: add SR-IOV support for PVH Dom0
Thread-Index: AQHcr7UOJDdt9SAQzUinWXRod1IIzA==
Date: Mon, 9 Mar 2026 11:08:27 +0000
Message-ID:
 <b4c86444970a65f56d20203fd77ee368e1eebfb9.1772806036.git.mykyta_poturai@epam.com>
References: <cover.1772806036.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1772806036.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_|AS2PR03MB9695:EE_
x-ms-office365-filtering-correlation-id: a4840fa3-50ac-4db8-4211-08de7dcc33f4
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:
 XhqXnexDxH+jMPCZSI2iTGH4fAKsHP/TaJ5qdrYQEG9NxZTUt+ZizIX7OqlIGrmmQNhPcT2Q6I+zmQmDTVYB6IjrQM+hv0eUcAqAmhlRe4IFtROYQH65TBnIQSkGT7971kgTFzZKQ+haQyDjrMifzzTlkUSOY6xP0w99q6pE4gmAyka0fSkPVSNfefH2wZ2aASsJoU6R4C6mbYWl/C3B0TuCZzIXEvlIS00W/mlwgj25cY1bUOcsuBroiouS2mTHlU/jJ0DiDi9WBh+4ObCRGJJFL8HOZkjlb5nXKnZUy5k4BnODpZNHY5QaQKfpQHlR9cgPYTDZVFNUgBkc7AG5ER2aVoX+HCG/Ylr3IwhB6DBaobgg6cVIu8qm0V5vDn2ePp4GFCiD7XXDJE/PSZTT2dLwJigXELskmeZM+M48+RUxvX1YcNZtnSIJ3h7eu0M2t6Tp9tydNpHJtinaVnf9w1K3uHzFhM6jUb3R5JsoJ6yq8kjcWk6zhBioa2l/AdUlym0zP1PJCpyLKSxuWMAC+9LmDtGpxU8YWdEjCdKfAljNpPnt6g/UtU2mpDZNAWUd4Wp7FEgLdjq0Q4pBROhDsc36OCJ8hB3KZHCYaWEjN/0An8UGXpxtE9nxN2XMmFavMLSMtB78DBv4kKmcbQdcrlq8yIzhnQZSxfVYKGfviSPSLR9tsS9GfX1s30AbQsylKDp7fcyJuzxnmE69s9SKjahM4gs2U+jhTAGRo46evMA2hH9JFMIxNtaW+yj/hUmHdg2BXTOQ/jeVeq2DdQv5wAUdwu/GX+EKzuUp/ecDyAo=
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:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?QnlBUU55aEJXU1hXVlpkdlFzamtvcGVYdFFtSk02S2RVNWRPTzgwbFlkSkZI?=
 =?utf-8?B?M25tMVZGZVVITEtzbGE5dnY3RDk5K3g1VmdpN0M0ZzQ2eEZLU0dKLzJ6aHhh?=
 =?utf-8?B?eHEzcUJUYzcrQXZQa3lQSk93bDd0VG9Xa2s2V1hDcDNxMzI0SkVMekhOVEE1?=
 =?utf-8?B?M2ZHWjRuR1NkcXRXSFhmeXRTZmFlTjU4cTlvM2tzMVhhMkZZQ1ZDQjNDNzRN?=
 =?utf-8?B?TXdmS0JiMGlDazdsaTZ4alYyQytyNnF4OEFNeXNyZXNlWllWQ1ZjTUlVUmhp?=
 =?utf-8?B?R1lIYU1UaWdlZHhMV29RVjhoMk8zQjF2dTdwMzVDYXY3Wkl3V3pTTHFHOXJT?=
 =?utf-8?B?RXRMYTJZcXo0YmxKNFVxdjBzSHBqVTVzalVEcXBhWkhBOXVxd2JHY2pwMU9o?=
 =?utf-8?B?Um1VV2dHR1pUOXNCUTJnc0syTU5IR25lUjVULzhDVXkyY1cxVVd4WGhsOEEw?=
 =?utf-8?B?NkVtYjJzOWhJTkt1Yi9CR0c0ZEdDYzVINXJaWFFodjdnVlh4RkNlNkNmNlpa?=
 =?utf-8?B?YnBxeUVGcGtmbngzcFNSU2tiTmE5R09qVVlWVXFYZWY1U0pnZEtrYmRBQ0xU?=
 =?utf-8?B?QWwrL09RVnRjTDNtNjJ2L0lxb0pTZ1hkOGk3ZXF4WHFFc3NhbWY0amp4Z0dM?=
 =?utf-8?B?bklFSjBWOXRLbnhwRFFCV0ZVdUNKYXl0K1FlbHJPUFNURnlVd3FqVmtNdUl6?=
 =?utf-8?B?U0lQQks0NmRFT1pQL3dtWFZOVVYyOE5HWkdGVVV6Qmg2K1NSS0wrazdGTnhT?=
 =?utf-8?B?eVdKbkorYWpqT3lUZUxPb3dkZkJlaGFIMklndWdhSWx2NFZJZU96MlVTQXN6?=
 =?utf-8?B?eVByVDZaUmxHd1RPM2ttV1JTdExRa2NhVDc2OUl6ZGwvQTdZdWdhMm1NaWk0?=
 =?utf-8?B?Qm9zbTQwa21JTWg1clZqMEZIK00wZThoNzRxNW1qNU9Zb1U1M1g0UFMrcUYy?=
 =?utf-8?B?aDBSZDU4aUVmS3VSUEJNcGZyK1V2TWVYTVV6SWQvL3lTTksvZksxaGExMHZ0?=
 =?utf-8?B?OEU5SGdNYWVXSmJyL1Z6ZzhpUS9Wb2pvUTc1SThhSW4zNmNDR09IZitwQTc4?=
 =?utf-8?B?N3FaSzNwNjZhWnpTVGk0cWtFWEt6bllBNzllY3grMyt3SDA2eG5SUlVrdFpv?=
 =?utf-8?B?ak4vQndaODdEOFZWaHplMUNGVWgwWlRLRWwyQTFabTJzWWczcFk2QjZ6S3ky?=
 =?utf-8?B?WHNXcys4UWRiMTd3VGdhNWxaUTNYM1p4VDZnU3Fmc2lFZEJhUmY2eWQrVGVX?=
 =?utf-8?B?N0Y4OThYTlZuWUdTdHhGNHNKVTl6NUNYaGZLYkdxeHNXYStBdjRyeEMrU2lT?=
 =?utf-8?B?T3pkV1BKcUFkV0tMWm1ZRXJJNndrVG10STZ2SzArS0E2K2UyUmNtTk5sSzNz?=
 =?utf-8?B?UVc3cUp4amZUQ09tOHB4V3F2Z0hhbFUxRndMM0FuT2RkSmZ0bmVnVExEY3RP?=
 =?utf-8?B?MG5RaVJqblFzTUtxRkE5TEl3RW9KdS84Ylp0YjdVZkt6T3A1S0pKbm1WazYz?=
 =?utf-8?B?WHo1MUJXRXZ5QkRVYnk0YThJL0c0emQ2VU5ZUGVQL1EvN0dKSW1mM1hLcmd1?=
 =?utf-8?B?SnM1UkhnOXpnSlhyOFQ2ZEs2cDJjbEI3SkV5R3BTV1JFZFBlMTZpK2JNdkFo?=
 =?utf-8?B?S2VHbjRJNEpNdTNVMndFQmtFT2Q0QmtPanl5d3BpZWxWRHpwc0x0OTkxT3FS?=
 =?utf-8?B?b2RWY2h3STVTdlpFZTM2TjhuNmZVS1grSEt4RkcwTmh6RjR1RXFPMWswcUJG?=
 =?utf-8?B?RU0rQWNISXBPNWJHRVd0R2x3K2MxT3BpbkIwSER4Mi90UE5XQkRGNkVSYzFO?=
 =?utf-8?B?d09wVCthbndiR3duLzI2U2NPRkNaWjJDNHJmY2tmL0VOVS93QzRKUWlNUHB5?=
 =?utf-8?B?K3JpUU5jemJvcTNTVUlkNjNScTQ5OHo5SmNUR2lZcGJDRXZnREw5cml0TEpt?=
 =?utf-8?B?VjBQcnBrNUZ6VkZMQW41aUdJRDhWYnFZMkxVZXJ5eHRPUnpTVXlNM0R2a2Ew?=
 =?utf-8?B?TlZMRGxROWZQSGJWaXZUdlJhS1NoVlBVdmRBblVUaExHZGkwektFbDdxTExu?=
 =?utf-8?B?S1I4MXUvc0lncmVYUXZ2WEFDUWRmRzZXdndXYUI4SUZSTlJBSlVQM05TSXQy?=
 =?utf-8?B?dkw0NHppREtHeXNPVTJFSDZmQ0x1RGFwRWY1K0FYbjlObGlmQTBOWEVXb2ly?=
 =?utf-8?B?SFcrZlJuTGRRZXpoUkNYR2Q0NUV5YWd0NncweHpBTHoyb2M2YWNPT0FVMDZJ?=
 =?utf-8?B?WkpscmY5WEs4K1FEd2s0ZUh5NGFUWjBSSUVLU2Z4NTZRR3pwMHArZlZFT0hI?=
 =?utf-8?B?NUVLbG5VSVNQbUdDeEJjM3ZjeGU4Q3h5MGE2eWFhRVQveHpBOVdJUXprVUI1?=
 =?utf-8?Q?MeeManXb2lAi6PCk=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <69B3D15764319041A131EA3108B1172A@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: a4840fa3-50ac-4db8-4211-08de7dcc33f4
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Mar 2026 11:08:27.8941
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 9BASa2I4w+dmNwlYiFCzgAnqInA92UBy8aXw+UHqa35h6k0NMcuf62Ir0aP7NWyel7uBhdMAsqyHVQ7JcnFgJQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9695

RnJvbTogU3Rld2FydCBIaWxkZWJyYW5kIDxzdGV3YXJ0LmhpbGRlYnJhbmRAYW1kLmNvbT4NCg0K
VGhpcyBjb2RlIGlzIGV4cGVjdGVkIHRvIG9ubHkgYmUgdXNlZCBieSBwcml2aWxlZ2VkIGRvbWFp
bnMsDQp1bnByaXZpbGVnZWQgZG9tYWlucyBzaG91bGQgbm90IGdldCBhY2Nlc3MgdG8gdGhlIFNS
LUlPViBjYXBhYmlsaXR5Lg0KDQpJbXBsZW1lbnQgUlcgaGFuZGxlcnMgZm9yIFBDSV9TUklPVl9D
VFJMIHJlZ2lzdGVyIHRvIGR5bmFtaWNhbGx5DQptYXAvdW5tYXAgVkYgQkFSUy4gUmVjYWxjdWxh
dGUgQkFSIHNpemVzIGJlZm9yZSBtYXBwaW5nIFZGcyB0byBhY2NvdW50DQpmb3IgcG9zc2libGUg
Y2hhbmdlcyBpbiB0aGUgc3lzdGVtIHBhZ2Ugc2l6ZSByZWdpc3Rlci4NCg0KQWxsb3cgZm9yY2lu
ZyB2cGNpX21vZGlmeV9iYXJzIHRvIG5vdCBkZWZlciB0aGUgYWN0dWFsIG1hcHBpbmcgY2hhbmdl
cywNCndoaWNoIGlzIG5lZWRlZCB0byBmaXggdGhlIHNlcXVlbnRpYWwgY2FsbHMgdG8gdnBjaV9t
b2RpZnlfYmFycyB3aGVuDQplbmFibGluZyBWRnMgZnJvbSBEb20wLg0KDQpTaWduZWQtb2ZmLWJ5
OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4NClNpZ25lZC1vZmYtYnk6
IFN0ZXdhcnQgSGlsZGVicmFuZCA8c3Rld2FydC5oaWxkZWJyYW5kQGFtZC5jb20+DQpTaWduZWQt
b2ZmLWJ5OiBNeWt5dGEgUG90dXJhaSA8bXlreXRhX3BvdHVyYWlAZXBhbS5jb20+DQotLS0NCnYx
LT52MjoNCiogc3dpdGNoIHRvIFZGIGRpc2NvdmVyeSBieSBYZW4NCiogZml4IHNlcXVlbnRpYWwg
dnBjaV9tb2RpZnlfYmFycyBjYWxscw0KKiBtb3ZlIGRvY3VtZW50YXRpb24gY2hhbmdlcyB0byBh
IHNlcGFyYXRlIGNvbW1pdA0KLS0tDQogeGVuL2RyaXZlcnMvdnBjaS9NYWtlZmlsZSB8ICAgMiAr
LQ0KIHhlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMgfCAgMTcgKy0NCiB4ZW4vZHJpdmVycy92cGNp
L3NyaW92LmMgIHwgMzYzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQog
eGVuL2luY2x1ZGUveGVuL3ZwY2kuaCAgICB8ICAxMiArLQ0KIDQgZmlsZXMgY2hhbmdlZCwgMzg1
IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pDQogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9k
cml2ZXJzL3ZwY2kvc3Jpb3YuYw0KDQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvdnBjaS9NYWtl
ZmlsZSBiL3hlbi9kcml2ZXJzL3ZwY2kvTWFrZWZpbGUNCmluZGV4IGE3YzhhMzBhODkuLmZlMWU1
N2I2NGQgMTAwNjQ0DQotLS0gYS94ZW4vZHJpdmVycy92cGNpL01ha2VmaWxlDQorKysgYi94ZW4v
ZHJpdmVycy92cGNpL01ha2VmaWxlDQpAQCAtMSwyICsxLDIgQEANCi1vYmoteSArPSB2cGNpLm8g
aGVhZGVyLm8gcmViYXIubw0KK29iai15ICs9IHZwY2kubyBoZWFkZXIubyByZWJhci5vIHNyaW92
Lm8NCiBvYmotJChDT05GSUdfSEFTX1BDSV9NU0kpICs9IG1zaS5vIG1zaXgubw0KZGlmZiAtLWdp
dCBhL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMgYi94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5j
DQppbmRleCAyODQ5NjRmMGQ0Li5jNTVjMzM4MGQ0IDEwMDY0NA0KLS0tIGEveGVuL2RyaXZlcnMv
dnBjaS9oZWFkZXIuYw0KKysrIGIveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYw0KQEAgLTI2NCw3
ICsyNjQsNyBAQCBib29sIHZwY2lfcHJvY2Vzc19wZW5kaW5nKHN0cnVjdCB2Y3B1ICp2KQ0KICAg
ICByZXR1cm4gZmFsc2U7DQogfQ0KIA0KLXN0YXRpYyBpbnQgX19pbml0IGFwcGx5X21hcChzdHJ1
Y3QgZG9tYWluICpkLCBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwNCitzdGF0aWMgaW50IGFw
cGx5X21hcChzdHJ1Y3QgZG9tYWluICpkLCBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwNCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDE2X3QgY21kKQ0KIHsNCiAgICAgc3RydWN0
IHZwY2lfaGVhZGVyICpoZWFkZXIgPSAmcGRldi0+dnBjaS0+aGVhZGVyOw0KQEAgLTMyMyw3ICsz
MjMsOCBAQCBzdGF0aWMgdm9pZCBkZWZlcl9tYXAoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYs
IHVpbnQxNl90IGNtZCwgYm9vbCByb21fb25seSkNCiAgICAgcmFpc2Vfc29mdGlycShTQ0hFRFVM
RV9TT0ZUSVJRKTsNCiB9DQogDQotaW50IHZwY2lfbW9kaWZ5X2JhcnMoY29uc3Qgc3RydWN0IHBj
aV9kZXYgKnBkZXYsIHVpbnQxNl90IGNtZCwgYm9vbCByb21fb25seSkNCitpbnQgdnBjaV9tb2Rp
ZnlfYmFycyhjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdWludDE2X3QgY21kLCBib29sIHJv
bV9vbmx5LA0KKyAgICAgICAgICAgICAgICAgICAgIGJvb2wgbm9fZGVmZXIpDQogew0KICAgICBz
dHJ1Y3QgdnBjaV9oZWFkZXIgKmhlYWRlciA9ICZwZGV2LT52cGNpLT5oZWFkZXI7DQogICAgIHN0
cnVjdCBwY2lfZGV2ICp0bXA7DQpAQCAtNTE5LDcgKzUyMCw3IEBAIGludCB2cGNpX21vZGlmeV9i
YXJzKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1aW50MTZfdCBjbWQsIGJvb2wgcm9tX29u
bHkpDQogICAgICAgICBkID0gZG9tX3hlbjsNCiAgICAgfQ0KIA0KLSAgICBpZiAoIHN5c3RlbV9z
dGF0ZSA8IFNZU19TVEFURV9hY3RpdmUgKQ0KKyAgICBpZiAoIHN5c3RlbV9zdGF0ZSA8IFNZU19T
VEFURV9hY3RpdmUgfHwgbm9fZGVmZXIgKQ0KICAgICB7DQogICAgICAgICAvKg0KICAgICAgICAg
ICogTWFwcGluZ3MgbWlnaHQgYmUgY3JlYXRlZCB3aGVuIGJ1aWxkaW5nIERvbTAgaWYgdGhlIG1l
bW9yeSBkZWNvZGluZw0KQEAgLTU2Niw3ICs1NjcsNyBAQCBzdGF0aWMgdm9pZCBjZl9jaGVjayBj
bWRfd3JpdGUoDQogICAgICAgICAgKiBtZW1vcnkgZGVjb2RpbmcgYml0IGhhcyBub3QgYmVlbiBj
aGFuZ2VkLCBzbyBsZWF2ZSBldmVyeXRoaW5nIGFzLWlzLA0KICAgICAgICAgICogaG9waW5nIHRo
ZSBndWVzdCB3aWxsIHJlYWxpemUgYW5kIHRyeSBhZ2Fpbi4NCiAgICAgICAgICAqLw0KLSAgICAg
ICAgdnBjaV9tb2RpZnlfYmFycyhwZGV2LCBjbWQsIGZhbHNlKTsNCisgICAgICAgIHZwY2lfbW9k
aWZ5X2JhcnMocGRldiwgY21kLCBmYWxzZSwgZmFsc2UpOw0KICAgICBlbHNlDQogICAgICAgICBw
Y2lfY29uZl93cml0ZTE2KHBkZXYtPnNiZGYsIHJlZywgY21kKTsNCiB9DQpAQCAtNzM2LDcgKzcz
Nyw3IEBAIHN0YXRpYyB2b2lkIGNmX2NoZWNrIHJvbV93cml0ZSgNCiAgICAgICovDQogICAgIGVs
c2UgaWYgKCB2cGNpX21vZGlmeV9iYXJzKHBkZXYsDQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG5ld19lbmFibGVkID8gUENJX0NPTU1BTkRfTUVNT1JZIDogMCwNCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkgKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0cnVlLCBmYWxzZSkgKQ0KICAgICAgICAgLyoNCiAgICAgICAgICAqIE5vIG1lbW9yeSBo
YXMgYmVlbiBhZGRlZCBvciByZW1vdmVkIGZyb20gdGhlIHAybSAoYmVjYXVzZSB0aGUgYWN0dWFs
DQogICAgICAgICAgKiBwMm0gY2hhbmdlcyBhcmUgZGVmZXJyZWQgaW4gZGVmZXJfbWFwKSBhbmQg
dGhlIFJPTSBlbmFibGUgYml0IGhhcw0KQEAgLTk1NCw2ICs5NTUsOSBAQCBpbnQgdnBjaV9pbml0
X2hlYWRlcihzdHJ1Y3QgcGNpX2RldiAqcGRldikNCiANCiAgICAgaGVhZGVyLT5ndWVzdF9jbWQg
PSBjbWQ7DQogDQorICAgIGlmICggcGRldi0+aW5mby5pc192aXJ0Zm4gKQ0KKyAgICAgICAgcmV0
dXJuIHZmX2luaXRfaGVhZGVyKHBkZXYpOw0KKw0KICAgICAvKiBEaXNhYmxlIG1lbW9yeSBkZWNv
ZGluZyBiZWZvcmUgc2l6aW5nLiAqLw0KICAgICBpZiAoICFpc19od2RvbSB8fCAoY21kICYgUENJ
X0NPTU1BTkRfTUVNT1JZKSApDQogICAgICAgICBwY2lfY29uZl93cml0ZTE2KHBkZXYtPnNiZGYs
IFBDSV9DT01NQU5ELCBjbWQgJiB+UENJX0NPTU1BTkRfTUVNT1JZKTsNCkBAIC0xMDYyLDcgKzEw
NjYsOCBAQCBpbnQgdnBjaV9pbml0X2hlYWRlcihzdHJ1Y3QgcGNpX2RldiAqcGRldikNCiAgICAg
ICAgICAgICBnb3RvIGZhaWw7DQogICAgIH0NCiANCi0gICAgcmV0dXJuIChjbWQgJiBQQ0lfQ09N
TUFORF9NRU1PUlkpID8gdnBjaV9tb2RpZnlfYmFycyhwZGV2LCBjbWQsIGZhbHNlKSA6IDA7DQor
ICAgIHJldHVybiAoY21kICYgUENJX0NPTU1BTkRfTUVNT1JZKQ0KKyAgICAgICAgICAgICAgICA/
IHZwY2lfbW9kaWZ5X2JhcnMocGRldiwgY21kLCBmYWxzZSwgZmFsc2UpIDogMDsNCiANCiAgZmFp
bDoNCiAgICAgcGNpX2NvbmZfd3JpdGUxNihwZGV2LT5zYmRmLCBQQ0lfQ09NTUFORCwgY21kKTsN
CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92cGNpL3NyaW92LmMgYi94ZW4vZHJpdmVycy92cGNp
L3NyaW92LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwLi42ZjY5MTE0
OWU5DQotLS0gL2Rldi9udWxsDQorKysgYi94ZW4vZHJpdmVycy92cGNpL3NyaW92LmMNCkBAIC0w
LDAgKzEsMzYzIEBADQorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAq
Lw0KKy8qDQorICogSGFuZGxlcnMgZm9yIGFjY2Vzc2VzIHRvIHRoZSBTUi1JT1YgY2FwYWJpbGl0
eSBzdHJ1Y3R1cmUuDQorICoNCisgKiBDb3B5cmlnaHQgKEMpIDIwMjYgQ2l0cml4IFN5c3RlbXMg
UiZEDQorICovDQorDQorI2luY2x1ZGUgPHhlbi9zY2hlZC5oPg0KKyNpbmNsdWRlIDx4ZW4vdnBj
aS5oPg0KKyNpbmNsdWRlIDx4c20veHNtLmg+DQorDQorc3RhdGljIGludCB2Zl9pbml0X2JhcnMo
Y29uc3Qgc3RydWN0IHBjaV9kZXYgKnZmX3BkZXYpDQorew0KKyAgICBpbnQgdmZfaWR4Ow0KKyAg
ICB1bnNpZ25lZCBpbnQgaTsNCisgICAgY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBmX3BkZXYgPSB2
Zl9wZGV2LT5wZl9wZGV2Ow0KKyAgICBzdHJ1Y3QgdnBjaV9iYXIgKmJhcnMgPSB2Zl9wZGV2LT52
cGNpLT5oZWFkZXIuYmFyczsNCisgICAgc3RydWN0IHZwY2lfYmFyICpwaHlzZm5fdmZfYmFycyA9
IHBmX3BkZXYtPnZwY2ktPnNyaW92LT52Zl9iYXJzOw0KKyAgICB1bnNpZ25lZCBpbnQgc3Jpb3Zf
cG9zID0gcGNpX2ZpbmRfZXh0X2NhcGFiaWxpdHkocGZfcGRldiwNCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9FWFRfQ0FQX0lEX1NSSU9W
KTsNCisgICAgdWludDE2X3Qgb2Zmc2V0ID0gcGNpX2NvbmZfcmVhZDE2KHBmX3BkZXYtPnNiZGYs
DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmlvdl9wb3MgKyBQQ0lf
U1JJT1ZfVkZfT0ZGU0VUKTsNCisgICAgdWludDE2X3Qgc3RyaWRlID0gcGNpX2NvbmZfcmVhZDE2
KHBmX3BkZXYtPnNiZGYsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
cmlvdl9wb3MgKyBQQ0lfU1JJT1ZfVkZfU1RSSURFKTsNCisNCisgICAgdmZfaWR4ID0gdmZfcGRl
di0+c2JkZi5zYmRmIC0gKHBmX3BkZXYtPnNiZGYuc2JkZiArIG9mZnNldCk7DQorICAgIGlmICgg
dmZfaWR4IDwgMCApDQorICAgICAgICByZXR1cm4gLUVJTlZBTDsNCisNCisgICAgaWYgKCBzdHJp
ZGUgKQ0KKyAgICB7DQorICAgICAgICBpZiAoIHZmX2lkeCAlIHN0cmlkZSApDQorICAgICAgICAg
ICAgcmV0dXJuIC1FSU5WQUw7DQorICAgICAgICB2Zl9pZHggLz0gc3RyaWRlOw0KKyAgICB9DQor
DQorICAgIC8qDQorICAgICAqIFNldCB1cCBCQVJzIGZvciB0aGlzIFZGIG91dCBvZiBQRidzIFZG
IEJBUnMgdGFraW5nIGludG8gYWNjb3VudA0KKyAgICAgKiB0aGUgaW5kZXggb2YgdGhlIFZGLg0K
KyAgICAgKi8NCisgICAgZm9yICggaSA9IDA7IGkgPCBQQ0lfU1JJT1ZfTlVNX0JBUlM7IGkrKyAp
DQorICAgIHsNCisgICAgICAgIGJhcnNbaV0uYWRkciA9IHBoeXNmbl92Zl9iYXJzW2ldLmFkZHIg
KyB2Zl9pZHggKiBwaHlzZm5fdmZfYmFyc1tpXS5zaXplOw0KKyAgICAgICAgYmFyc1tpXS5ndWVz
dF9hZGRyID0gYmFyc1tpXS5hZGRyOw0KKyAgICAgICAgYmFyc1tpXS5zaXplID0gcGh5c2ZuX3Zm
X2JhcnNbaV0uc2l6ZTsNCisgICAgICAgIGJhcnNbaV0udHlwZSA9IHBoeXNmbl92Zl9iYXJzW2ld
LnR5cGU7DQorICAgICAgICBiYXJzW2ldLnByZWZldGNoYWJsZSA9IHBoeXNmbl92Zl9iYXJzW2ld
LnByZWZldGNoYWJsZTsNCisgICAgfQ0KKw0KKyAgICByZXR1cm4gMDsNCit9DQorDQorLyogTXVz
dCBiZSBjYWxsZWQgZm9ybSB2cGNpX3Byb2Nlc3NfcGVuZGluZyBjb250ZXh0ICovDQorc3RhdGlj
IGludCBtYXBfdmZzKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZl9wZGV2LCB1aW50MTZfdCBjbWQp
DQorew0KKyAgICBzdHJ1Y3QgcGNpX2RldiAqdmZfcGRldjsNCisgICAgaW50IHJjOw0KKw0KKyAg
ICBBU1NFUlQocndfaXNfd3JpdGVfbG9ja2VkKCZwZl9wZGV2LT5kb21haW4tPnBjaV9sb2NrKSk7
DQorDQorICAgIGxpc3RfZm9yX2VhY2hfZW50cnkodmZfcGRldiwgJnBmX3BkZXYtPnZmX2xpc3Qs
IHZmX2xpc3QpIHsNCisgICAgICAgIHJjID0gdnBjaV9tb2RpZnlfYmFycyh2Zl9wZGV2LCBjbWQs
IGZhbHNlLCB0cnVlKTsNCisgICAgICAgIGlmICggcmMgKQ0KKyAgICAgICAgew0KKyAgICAgICAg
ICAgIGdwcmludGsoWEVOTE9HX0VSUiwgImZhaWxlZCB0byAlcyBWRiAlcHA6ICVkXG4iLA0KKyAg
ICAgICAgICAgICAgICAgICAgKGNtZCAmIFBDSV9DT01NQU5EX01FTU9SWSkgPyAibWFwIiA6ICJ1
bm1hcCIsDQorICAgICAgICAgICAgICAgICAgICAmdmZfcGRldi0+c2JkZiwgcmMpOw0KKyAgICAg
ICAgICAgIHJldHVybiByYzsNCisgICAgICAgIH0NCisgICAgfQ0KKw0KKyAgICByZXR1cm4gMDsN
Cit9DQorDQorDQorc3RhdGljIGludCBzaXplX3ZmX2JhcnMoc3RydWN0IHBjaV9kZXYgKnBmX3Bk
ZXYsIHVuc2lnbmVkIGludCBzcmlvdl9wb3MpDQorew0KKyAgICAvKg0KKyAgICAgKiBOQjogYSBu
b24tY29uc3QgcGNpX2RldiBvZiB0aGUgUEYgaXMgbmVlZGVkIGluIG9yZGVyIHRvIHVwZGF0ZQ0K
KyAgICAgKiB2Zl9ybGVuLg0KKyAgICAgKi8NCisgICAgc3RydWN0IHZwY2lfYmFyICpiYXJzOw0K
KyAgICB1bnNpZ25lZCBpbnQgaTsNCisgICAgaW50IHJjID0gMDsNCisNCisgICAgQVNTRVJUKHJ3
X2lzX3dyaXRlX2xvY2tlZCgmcGZfcGRldi0+ZG9tYWluLT5wY2lfbG9jaykpOw0KKyAgICBBU1NF
UlQoIXBmX3BkZXYtPmluZm8uaXNfdmlydGZuKTsNCisgICAgQVNTRVJUKHBmX3BkZXYtPnZwY2kt
PnNyaW92KTsNCisNCisgICAgLyogUmVhZCBCQVJzIGZvciBWRnMgb3V0IG9mIFBGJ3MgU1ItSU9W
IGV4dGVuZGVkIGNhcGFiaWxpdHkuICovDQorICAgIGJhcnMgPSBwZl9wZGV2LT52cGNpLT5zcmlv
di0+dmZfYmFyczsNCisgICAgLyogU2V0IHRoZSBCQVJzIGFkZHJlc3NlcyBhbmQgc2l6ZS4gKi8N
CisgICAgZm9yICggaSA9IDA7IGkgPCBQQ0lfU1JJT1ZfTlVNX0JBUlM7IGkgKz0gcmMgKQ0KKyAg
ICB7DQorICAgICAgICB1bnNpZ25lZCBpbnQgaWR4ID0gc3Jpb3ZfcG9zICsgUENJX1NSSU9WX0JB
UiArIGkgKiA0Ow0KKyAgICAgICAgdWludDMyX3QgYmFyOw0KKyAgICAgICAgdWludDY0X3QgYWRk
ciwgc2l6ZTsNCisNCisgICAgICAgIGJhciA9IHBjaV9jb25mX3JlYWQzMihwZl9wZGV2LT5zYmRm
LCBpZHgpOw0KKw0KKyAgICAgICAgcmMgPSBwY2lfc2l6ZV9tZW1fYmFyKHBmX3BkZXYtPnNiZGYs
IGlkeCwgJmFkZHIsICZzaXplLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9C
QVJfVkYgfA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoaSA9PSBQQ0lfU1JJT1Zf
TlVNX0JBUlMgLSAxKSA/IFBDSV9CQVJfTEFTVA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IDApKTsNCisNCisgICAgICAgIC8q
DQorICAgICAgICAgKiBVcGRhdGUgdmZfcmxlbiBvbiB0aGUgUEYuIEFjY29yZGluZyB0byB0aGUg
c3BlYyB0aGUgc2l6ZSBvZg0KKyAgICAgICAgICogdGhlIEJBUnMgY2FuIGNoYW5nZSBpZiB0aGUg
c3lzdGVtIHBhZ2Ugc2l6ZSByZWdpc3RlciBpcw0KKyAgICAgICAgICogbW9kaWZpZWQsIHNvIGFs
d2F5cyB1cGRhdGUgcmxlbiB3aGVuIGVuYWJsaW5nIFZGcy4NCisgICAgICAgICAqLw0KKyAgICAg
ICAgcGZfcGRldi0+cGh5c2ZuLnZmX3JsZW5baV0gPSBzaXplOw0KKw0KKyAgICAgICAgaWYgKCAh
c2l6ZSApDQorICAgICAgICB7DQorICAgICAgICAgICAgYmFyc1tpXS50eXBlID0gVlBDSV9CQVJf
RU1QVFk7DQorICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICB9DQorDQorICAgICAgICBi
YXJzW2ldLmFkZHIgPSBhZGRyOw0KKyAgICAgICAgYmFyc1tpXS5ndWVzdF9hZGRyID0gYWRkcjsN
CisgICAgICAgIGJhcnNbaV0uc2l6ZSA9IHNpemU7DQorICAgICAgICBiYXJzW2ldLnByZWZldGNo
YWJsZSA9IGJhciAmIFBDSV9CQVNFX0FERFJFU1NfTUVNX1BSRUZFVENIOw0KKw0KKyAgICAgICAg
c3dpdGNoICggcmMgKQ0KKyAgICAgICAgew0KKyAgICAgICAgY2FzZSAxOg0KKyAgICAgICAgICAg
IGJhcnNbaV0udHlwZSA9IFZQQ0lfQkFSX01FTTMyOw0KKyAgICAgICAgICAgIGJyZWFrOw0KKw0K
KyAgICAgICAgY2FzZSAyOg0KKyAgICAgICAgICAgIGJhcnNbaV0udHlwZSA9IFZQQ0lfQkFSX01F
TTY0X0xPOw0KKyAgICAgICAgICAgIGJhcnNbaSArIDFdLnR5cGUgPSBWUENJX0JBUl9NRU02NF9I
STsNCisgICAgICAgICAgICBicmVhazsNCisNCisgICAgICAgIGRlZmF1bHQ6DQorICAgICAgICAg
ICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7DQorICAgICAgICB9DQorICAgIH0NCisNCisgICAgcmMg
PSByYyA+IDAgPyAwIDogcmM7DQorDQorICAgIHJldHVybiByYzsNCit9DQorDQorc3RydWN0IGNh
bGxiYWNrX2RhdGEgew0KKyAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldjsNCisgICAgdW5z
aWduZWQgaW50IHBvczsNCisgICAgdWludDMyX3QgdmFsdWU7DQorICAgIGJvb2wgZW5hYmxlIDog
MTsNCisgICAgYm9vbCBkaXNhYmxlIDogMTsNCisgICAgYm9vbCBtYXAgOiAxOw0KKyAgICBib29s
IHVubWFwIDogMTsNCit9Ow0KKw0KK3N0YXRpYyB2b2lkIGNmX2NoZWNrIGNvbnRyb2xfd3JpdGVf
Y2Iodm9pZCAqZGF0YSkNCit7DQorICAgIHN0cnVjdCBjYWxsYmFja19kYXRhICpjYiA9IGRhdGE7
DQorICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gY2ItPnBkZXY7DQorICAgIHVpbnQx
Nl90IG9mZnNldCA9IHBjaV9jb25mX3JlYWQxNihwZGV2LT5zYmRmLCBjYi0+cG9zICsgUENJX1NS
SU9WX1ZGX09GRlNFVCk7DQorICAgIHVpbnQxNl90IHN0cmlkZSA9IHBjaV9jb25mX3JlYWQxNihw
ZGV2LT5zYmRmLCBjYi0+cG9zICsgUENJX1NSSU9WX1ZGX1NUUklERSk7DQorICAgIHN0cnVjdCB2
cGNpX3NyaW92ICpzcmlvdiA9IHBkZXYtPnZwY2ktPnNyaW92Ow0KKyAgICBpbnQgcmMgPSAwOw0K
KyAgICB1bnNpZ25lZCBpbnQgaTsNCisNCisgICAgaWYgKCBjYi0+dW5tYXAgKQ0KKyAgICB7DQor
ICAgICAgICB3cml0ZV9sb2NrKCZwZGV2LT5kb21haW4tPnBjaV9sb2NrKTsNCisgICAgICAgIG1h
cF92ZnMocGRldiwgMCk7DQorICAgICAgICB3cml0ZV91bmxvY2soJnBkZXYtPmRvbWFpbi0+cGNp
X2xvY2spOw0KKyAgICB9DQorDQorICAgIGlmICggY2ItPmVuYWJsZSB8fCBjYi0+ZGlzYWJsZSAp
DQorICAgIHsNCisgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgc3Jpb3YtPm51bV92ZnM7IGkrKyAp
DQorICAgICAgICB7DQorICAgICAgICAgICAgY29uc3QgcGNpX3NiZGZfdCB2Zl9zYmRmID0gew0K
KyAgICAgICAgICAgICAgICAuc2JkZiA9IHBkZXYtPnNiZGYuc2JkZiArIG9mZnNldCArIHN0cmlk
ZSAqIGksDQorICAgICAgICAgICAgfTsNCisNCisgICAgICAgICAgICBpZiAoIGNiLT5lbmFibGUg
KQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZf
aW5mbyBpbmZvID0gew0KKyAgICAgICAgICAgICAgICAgICAgLmlzX3ZpcnRmbiA9IHRydWUsDQor
ICAgICAgICAgICAgICAgICAgICAuaXNfZXh0Zm4gPSBmYWxzZSwNCisgICAgICAgICAgICAgICAg
ICAgIC5waHlzZm4uYnVzID0gcGRldi0+c2JkZi5idXMsDQorICAgICAgICAgICAgICAgICAgICAu
cGh5c2ZuLmRldmZuID0gcGRldi0+c2JkZi5kZXZmbiwNCisgICAgICAgICAgICAgICAgfTsNCisg
ICAgICAgICAgICAgICAgcmMgPSBwY2lfYWRkX2RldmljZSh2Zl9zYmRmLnNlZywgdmZfc2JkZi5i
dXMsIHZmX3NiZGYuZGV2Zm4sDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JmluZm8sIHBkZXYtPm5vZGUpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBpZiAoIGNi
LT5kaXNhYmxlICkNCisgICAgICAgICAgICAgICAgcmMgPSBwY2lfcmVtb3ZlX2RldmljZSh2Zl9z
YmRmLnNlZywgdmZfc2JkZi5idXMsIHZmX3NiZGYuZGV2Zm4pOw0KKw0KKyAgICAgICAgICAgIGlm
ICggcmMgJiYgcmMgIT0gLUVOT0RFVikNCisgICAgICAgICAgICAgICAgZ3ByaW50ayhYRU5MT0df
RVJSLCAiZmFpbGVkIHRvICVzIFZGICVwcDogJWRcbiIsDQorICAgICAgICAgICAgICAgICAgICAg
ICAgY2ItPmVuYWJsZSA/ICJhZGQiIDogInJlbW92ZSIsICZ2Zl9zYmRmLCByYyk7DQorICAgICAg
ICB9DQorICAgIH0NCisNCisgICAgaWYgKCBjYi0+bWFwICkNCisgICAgew0KKyAgICAgICAgd3Jp
dGVfbG9jaygmcGRldi0+ZG9tYWluLT5wY2lfbG9jayk7DQorICAgICAgICByYyA9IG1hcF92ZnMo
cGRldiwgUENJX0NPTU1BTkRfTUVNT1JZKTsNCisNCisgICAgICAgIGlmICggcmMgKQ0KKyAgICAg
ICAgICAgIG1hcF92ZnMocGRldiwgMCk7DQorICAgICAgICB3cml0ZV91bmxvY2soJnBkZXYtPmRv
bWFpbi0+cGNpX2xvY2spOw0KKyAgICB9DQorDQorICAgIHBjaV9jb25mX3dyaXRlMTYocGRldi0+
c2JkZiwgY2ItPnBvcyArIFBDSV9TUklPVl9DVFJMLCBjYi0+dmFsdWUpOw0KKyAgICB4ZnJlZShj
Yik7DQorfQ0KKw0KK3N0YXRpYyB2b2lkIGNmX2NoZWNrIGNvbnRyb2xfd3JpdGUoY29uc3Qgc3Ry
dWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCByZWcsDQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1aW50MzJfdCB2YWwsIHZvaWQgKmRhdGEpDQorew0KKyAgICB1bnNp
Z25lZCBpbnQgc3Jpb3ZfcG9zID0gcmVnIC0gUENJX1NSSU9WX0NUUkw7DQorICAgIHN0cnVjdCB2
cGNpX3NyaW92ICpzcmlvdiA9IHBkZXYtPnZwY2ktPnNyaW92Ow0KKyAgICBzdHJ1Y3QgY2FsbGJh
Y2tfZGF0YSAqY2IgPSBOVUxMOw0KKyAgICB1aW50MTZfdCBjb250cm9sID0gcGNpX2NvbmZfcmVh
ZDE2KHBkZXYtPnNiZGYsIHJlZyk7DQorICAgIGJvb2wgbWVtX2VuYWJsZWQgPSBjb250cm9sICYg
UENJX1NSSU9WX0NUUkxfTVNFOw0KKyAgICBib29sIG5ld19tZW1fZW5hYmxlZCA9IHZhbCAmIFBD
SV9TUklPVl9DVFJMX01TRTsNCisgICAgYm9vbCBlbmFibGVkID0gY29udHJvbCAmIFBDSV9TUklP
Vl9DVFJMX1ZGRTsNCisgICAgYm9vbCBuZXdfZW5hYmxlZCA9IHZhbCAmIFBDSV9TUklPVl9DVFJM
X1ZGRTsNCisNCisgICAgQVNTRVJUKCFwZGV2LT5pbmZvLmlzX3ZpcnRmbik7DQorDQorICAgIGlm
ICggbmV3X2VuYWJsZWQgPT0gZW5hYmxlZCAmJiBuZXdfbWVtX2VuYWJsZWQgPT0gbWVtX2VuYWJs
ZWQgKQ0KKyAgICB7DQorICAgICAgICBwY2lfY29uZl93cml0ZTE2KHBkZXYtPnNiZGYsIHJlZywg
dmFsKTsNCisgICAgICAgIHJldHVybjsNCisgICAgfQ0KKw0KKyAgICBjYiA9IHh6YWxsb2Moc3Ry
dWN0IGNhbGxiYWNrX2RhdGEpOw0KKw0KKyAgICBpZiAoICFjYiApDQorICAgIHsNCisgICAgICAg
IGdwcmludGsoWEVOTE9HX0VSUiwNCisgICAgICAgICAgICAgICAgIiVwcDogVW5hYmxlIHRvIGFs
bG9jYXRlIG1lbW9yeSBmb3IgU1ItSU9WIGVuYWJsZVxuIiwNCisgICAgICAgICAgICAgICAgcGRl
dik7DQorICAgICAgICByZXR1cm47DQorICAgIH0NCisNCisgICAgY2ItPnBkZXYgPSBwZGV2Ow0K
KyAgICBjYi0+cG9zID0gc3Jpb3ZfcG9zOw0KKyAgICBjYi0+dmFsdWUgPSB2YWw7DQorICAgIGNi
LT5tYXAgPSBuZXdfbWVtX2VuYWJsZWQgJiYgIW1lbV9lbmFibGVkOw0KKyAgICBjYi0+dW5tYXAg
PSAhbmV3X21lbV9lbmFibGVkICYmIG1lbV9lbmFibGVkOw0KKyAgICBjYi0+ZW5hYmxlID0gbmV3
X2VuYWJsZWQgJiYgIWVuYWJsZWQ7DQorICAgIGNiLT5kaXNhYmxlID0gIW5ld19lbmFibGVkICYm
IGVuYWJsZWQ7DQorDQorICAgIGN1cnJlbnQtPnZwY2kudGFzayA9IFdBSVQ7DQorICAgIGN1cnJl
bnQtPnZwY2kud2FpdC5jYWxsYmFjayA9IGNvbnRyb2xfd3JpdGVfY2I7DQorICAgIGN1cnJlbnQt
PnZwY2kud2FpdC5kYXRhID0gY2I7DQorICAgIGN1cnJlbnQtPnZwY2kud2FpdC5lbmQgPSBOT1co
KTsNCisNCisgICAgaWYgKCBjYi0+ZW5hYmxlICkNCisgICAgew0KKyAgICAgICAgc2l6ZV92Zl9i
YXJzKChzdHJ1Y3QgcGNpX2RldiAqKXBkZXYsIHNyaW92X3Bvcyk7DQorDQorICAgICAgICAvKg0K
KyAgICAgICAgICogT25seSB1cGRhdGUgdGhlIG51bWJlciBvZiBhY3RpdmUgVkZzIHdoZW4gZW5h
YmxpbmcsIHdoZW4NCisgICAgICAgICAqIGRpc2FibGluZyB1c2UgdGhlIGNhY2hlZCB2YWx1ZSBp
biBvcmRlciB0byBhbHdheXMgcmVtb3ZlIHRoZSBzYW1lDQorICAgICAgICAgKiBudW1iZXIgb2Yg
VkZzIHRoYXQgd2VyZSBhY3RpdmUuDQorICAgICAgICAgKi8NCisgICAgICAgIHNyaW92LT5udW1f
dmZzID0gcGNpX2NvbmZfcmVhZDE2KHBkZXYtPnNiZGYsDQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzcmlvdl9wb3MgKyBQQ0lfU1JJT1ZfTlVNX1ZGKTsNCisgICAg
ICAgIC8qDQorICAgICAgICAgKiBOQjogVkZFIG5lZWRzIHRvIGJlIGVuYWJsZWQgYmVmb3JlIGNh
bGxpbmcgcGNpX2FkZF9kZXZpY2Ugc28gWGVuDQorICAgICAgICAgKiBjYW4gYWNjZXNzIHRoZSBj
b25maWcgc3BhY2Ugb2YgVkZzLiBGSVhNRSBjYXN0aW5nIGF3YXkgY29uc3QtbmVzcw0KKyAgICAg
ICAgICogdG8gbW9kaWZ5IHZmX3JsZW4NCisgICAgICAgICAqLw0KKyAgICAgICAgcGNpX2NvbmZf
d3JpdGUxNihwZGV2LT5zYmRmLCByZWcsIGNvbnRyb2wgfCBQQ0lfU1JJT1ZfQ1RSTF9WRkUpOw0K
KyAgICAgICAgLyoNCisgICAgICAgICAqIFRoZSBzcGVjIHN0YXRlcyB0aGF0IHRoZSBzb2Z0d2Fy
ZSBtdXN0IHdhaXQgYXQgbGVhc3QgMTAwbXMgYmVmb3JlDQorICAgICAgICAgKiBhdHRlbXB0aW5n
IHRvIGFjY2VzcyBWRiByZWdpc3RlcnMgd2hlbiBlbmFibGluZyB2aXJ0dWFsIGZ1bmN0aW9ucw0K
KyAgICAgICAgICogb24gdGhlIFBGLg0KKyAgICAgICAgICovDQorDQorICAgICAgICBjdXJyZW50
LT52cGNpLndhaXQuZW5kID0gTk9XKCkgKyBNSUxMSVNFQ1MoMTAwKTsNCisgICAgfQ0KK30NCisN
CitpbnQgdmZfaW5pdF9oZWFkZXIoc3RydWN0IHBjaV9kZXYgKnZmX3BkZXYpDQorew0KKyAgICBj
b25zdCBzdHJ1Y3QgcGNpX2RldiAqcGZfcGRldjsNCisgICAgdW5zaWduZWQgaW50IHNyaW92X3Bv
czsNCisgICAgaW50IHJjID0gMDsNCisgICAgdWludDE2X3QgY3RybDsNCisNCisgICAgQVNTRVJU
KHJ3X2lzX3dyaXRlX2xvY2tlZCgmdmZfcGRldi0+ZG9tYWluLT5wY2lfbG9jaykpOw0KKw0KKyAg
ICBpZiAoICF2Zl9wZGV2LT5pbmZvLmlzX3ZpcnRmbiApDQorICAgICAgICByZXR1cm4gMDsNCisN
CisgICAgcGZfcGRldiA9IHZmX3BkZXYtPnBmX3BkZXY7DQorICAgIEFTU0VSVChwZl9wZGV2KTsN
CisNCisgICAgcmMgPSB2Zl9pbml0X2JhcnModmZfcGRldik7DQorICAgIGlmICggcmMgKQ0KKyAg
ICAgICAgcmV0dXJuIHJjOw0KKw0KKyAgICBzcmlvdl9wb3MgPSBwY2lfZmluZF9leHRfY2FwYWJp
bGl0eShwZl9wZGV2LCBQQ0lfRVhUX0NBUF9JRF9TUklPVik7DQorICAgIGN0cmwgPSBwY2lfY29u
Zl9yZWFkMTYocGZfcGRldi0+c2JkZiwgc3Jpb3ZfcG9zICsgUENJX1NSSU9WX0NUUkwpOw0KKw0K
KyAgICBpZiAoIChwZl9wZGV2LT5kb21haW4gPT0gdmZfcGRldi0+ZG9tYWluKSAmJiAoY3RybCAm
IFBDSV9TUklPVl9DVFJMX01TRSkgKQ0KKyAgICB7DQorICAgICAgICByYyA9IHZwY2lfbW9kaWZ5
X2JhcnModmZfcGRldiwgUENJX0NPTU1BTkRfTUVNT1JZLCBmYWxzZSwgZmFsc2UpOw0KKyAgICAg
ICAgaWYgKCByYyApDQorICAgICAgICAgICAgcmV0dXJuIHJjOw0KKyAgICB9DQorDQorICAgIHJl
dHVybiByYzsNCit9DQorDQorc3RhdGljIGludCBjZl9jaGVjayBpbml0X3NyaW92KHN0cnVjdCBw
Y2lfZGV2ICpwZGV2KQ0KK3sNCisgICAgdW5zaWduZWQgaW50IHBvczsNCisNCisgICAgQVNTRVJU
KCFwZGV2LT5pbmZvLmlzX3ZpcnRmbik7DQorDQorICAgIHBvcyA9IHBjaV9maW5kX2V4dF9jYXBh
YmlsaXR5KHBkZXYsIFBDSV9FWFRfQ0FQX0lEX1NSSU9WKTsNCisNCisgICAgaWYgKCAhcG9zICkN
CisgICAgICAgIHJldHVybiAwOw0KKw0KKyAgICBpZiAoIHhzbV9yZXNvdXJjZV9zZXR1cF9wY2ko
WFNNX1BSSVYsIHBkZXYtPnNiZGYuYmRmKSApDQorICAgIHsNCisgICAgICAgIHByaW50ayhYRU5M
T0dfRVJSDQorICAgICAgICAgICAgICAgIiVwcDogU1ItSU9WIGNvbmZpZ3VyYXRpb24gdW5zdXBw
b3J0ZWQgZm9yIHVucHJpdiAlcGRcbiIsDQorICAgICAgICAgICAgICAgJnBkZXYtPnNiZGYsIHBk
ZXYtPmRvbWFpbik7DQorICAgICAgICByZXR1cm4gMDsNCisgICAgfQ0KKw0KKyAgICBwZGV2LT52
cGNpLT5zcmlvdiA9IHh6YWxsb2Moc3RydWN0IHZwY2lfc3Jpb3YpOw0KKyAgICBpZiAoICFwZGV2
LT52cGNpLT5zcmlvdiApDQorICAgICAgICByZXR1cm4gLUVOT01FTTsNCisNCisgICAgcmV0dXJu
IHZwY2lfYWRkX3JlZ2lzdGVyKHBkZXYtPnZwY2ksIHZwY2lfaHdfcmVhZDE2LCBjb250cm9sX3dy
aXRlLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zICsgUENJX1NSSU9WX0NUUkws
IDIsIE5VTEwpOw0KK30NCisNCitzdGF0aWMgaW50IGNmX2NoZWNrIGNsZWFudXBfc3Jpb3YoY29u
c3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIGJvb2wgaGlkZSkNCit7DQorICAgIGlmICggaGlkZSAp
DQorICAgICAgICByZXR1cm4gMDsNCisNCisgICAgWEZSRUUocGRldi0+dnBjaS0+c3Jpb3YpOw0K
Kw0KKyAgICByZXR1cm4gMDsNCit9DQorDQorUkVHSVNURVJfVlBDSV9FWFRDQVAoU1JJT1YsIGlu
aXRfc3Jpb3YsIGNsZWFudXBfc3Jpb3YpOw0KKw0KKy8qDQorICogTG9jYWwgdmFyaWFibGVzOg0K
KyAqIG1vZGU6IEMNCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiDQorICogYy1iYXNpYy1vZmZzZXQ6
IDQNCisgKiB0YWItd2lkdGg6IDQNCisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwNCisgKiBFbmQ6
DQorICovDQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3ZwY2kuaCBiL3hlbi9pbmNsdWRl
L3hlbi92cGNpLmgNCmluZGV4IDQ3Y2RiNTRkNDIuLmFlNWYzYjcyNzQgMTAwNjQ0DQotLS0gYS94
ZW4vaW5jbHVkZS94ZW4vdnBjaS5oDQorKysgYi94ZW4vaW5jbHVkZS94ZW4vdnBjaS5oDQpAQCAt
NDUsNiArNDUsNyBAQCB0eXBlZGVmIHN0cnVjdCB7DQogICAgIFJFR0lTVEVSX1ZQQ0lfQ0FQQUJJ
TElUWShQQ0lfRVhUX0NBUF9JRF8jI25hbWUsIG5hbWUsIGZpbml0LCBmY2xlYW4sIHRydWUpDQog
DQogaW50IF9fbXVzdF9jaGVjayB2cGNpX2luaXRfaGVhZGVyKHN0cnVjdCBwY2lfZGV2ICpwZGV2
KTsNCitpbnQgX19tdXN0X2NoZWNrIHZmX2luaXRfaGVhZGVyKHN0cnVjdCBwY2lfZGV2ICpwZGV2
KTsNCiANCiAvKiBBc3NpZ24gdlBDSSB0byBkZXZpY2UgYnkgYWRkaW5nIGhhbmRsZXJzLiAqLw0K
IGludCBfX211c3RfY2hlY2sgdnBjaV9hc3NpZ25fZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2
KTsNCkBAIC0xNDYsNyArMTQ3LDYgQEAgc3RydWN0IHZwY2kgew0KICAgICAgICAgICogdXBvbiB0
byBrbm93IHdoZXRoZXIgQkFScyBhcmUgbWFwcGVkIGludG8gdGhlIGd1ZXN0IHAybS4NCiAgICAg
ICAgICAqLw0KICAgICAgICAgYm9vbCBiYXJzX21hcHBlZCAgICAgIDogMTsNCi0gICAgICAgIC8q
IEZJWE1FOiBjdXJyZW50bHkgdGhlcmUncyBubyBzdXBwb3J0IGZvciBTUi1JT1YuICovDQogICAg
IH0gaGVhZGVyOw0KIA0KICAgICAvKiBNU0kgZGF0YS4gKi8NCkBAIC0yMDAsNiArMjAwLDEzIEBA
IHN0cnVjdCB2cGNpIHsNCiAgICAgICAgICAgICBzdHJ1Y3QgdnBjaV9hcmNoX21zaXhfZW50cnkg
YXJjaDsNCiAgICAgICAgIH0gZW50cmllc1tdOw0KICAgICB9ICptc2l4Ow0KKw0KKyAgICBzdHJ1
Y3QgdnBjaV9zcmlvdiB7DQorICAgICAgICAvKiBQRiBvbmx5ICovDQorICAgICAgICBzdHJ1Y3Qg
dnBjaV9iYXIgdmZfYmFyc1tQQ0lfU1JJT1ZfTlVNX0JBUlNdOw0KKyAgICAgICAgdWludDE2X3Qg
bnVtX3ZmczsNCisgICAgfSAqc3Jpb3Y7DQorDQogI2lmZGVmIENPTkZJR19IQVNfVlBDSV9HVUVT
VF9TVVBQT1JUDQogICAgIC8qIEd1ZXN0IFNCREYgb2YgdGhlIGRldmljZS4gKi8NCiAjZGVmaW5l
IElOVkFMSURfR1VFU1RfU0JERiAoKHBjaV9zYmRmX3QpeyAuc2JkZiA9IH4wVSB9KQ0KQEAgLTMy
Myw3ICszMzAsOCBAQCBib29sIHZwY2lfZWNhbV9yZWFkKHBjaV9zYmRmX3Qgc2JkZiwgdW5zaWdu
ZWQgaW50IHJlZywgdW5zaWduZWQgaW50IGxlbiwNCiAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGxvbmcgKmRhdGEpOw0KIA0KIC8qIE1hcC91bm1hcCB0aGUgQkFScyBvZiBhIHZQQ0kgZGV2
aWNlLiAqLw0KLWludCB2cGNpX21vZGlmeV9iYXJzKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2
LCB1aW50MTZfdCBjbWQsIGJvb2wgcm9tX29ubHkpOw0KK2ludCB2cGNpX21vZGlmeV9iYXJzKGNv
bnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1aW50MTZfdCBjbWQsIGJvb2wgcm9tX29ubHksDQor
ICAgICAgICAgICAgICAgICAgICAgYm9vbCBub19kZWZlcik7DQogDQogI2VuZGlmIC8qIF9fWEVO
X18gKi8NCiANCi0tIA0KMi41MS4yDQo=


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 11:08:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 11:08:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249279.1546784 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzYTa-0004p9-EG; Mon, 09 Mar 2026 11:08:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249279.1546784; Mon, 09 Mar 2026 11:08:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzYTa-0004nX-84; Mon, 09 Mar 2026 11:08:42 +0000
Received: by outflank-mailman (input) for mailman id 1249279;
 Mon, 09 Mar 2026 11:08: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=OAaF=BJ=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vzYTY-0003iR-Ty
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 11:08:41 +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 533635de-1ba8-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 12:08:39 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AS2PR03MB9695.eurprd03.prod.outlook.com
 (2603:10a6:20b:60d::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Mon, 9 Mar
 2026 11:08:30 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9678.020; Mon, 9 Mar 2026
 11:08:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 533635de-1ba8-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JNvNmbgqDJK2L+vIoJyA85Uf7OEmPgIqHSQjq71ibsxBxaJV/uNZzMWDWczahzoMxf9+/T54BiUq4qYALg1OgRHUlT5tR90ligM7ibKaWvxouoX5ij49BkTi9ALDbmVTOCvbEcwBSmxU1UojQ+o0Nl6ukA0/NQ4qFI193HWJqeFSzKzhR3bBa5g3DLh8x5Sd0NN+NmRZsm6m+qF4wKuoI93E8clFIsJTqffgZodd8cCi7QSauJ1fqqsU/JKE84HeKtDwhCN0QWPhyN5uoqQ+9SKL+FrkNMboqZSPI7AJ698qX2CXTC05ZHhiTy4Rv6ogswmhPPmP8vwh4RYD32geyQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=as8HXwLx1Zl9o2iQtPqGLoGRGBXmJbz5GSTKA8wbpEg=;
 b=txDinyKu++Xk3mujU58GFWCEgby8z98yN6d8TAyvbNE1DluG9ZTNoCltTH2DWv+PHcQ62LestJKNB3qdLvlMdqCptsomW54Vco0clgt3JnPZDXxU0GrgaIHSLL4NhEnm9Bzergq1d9FnAcdATILM0kEtMSXqvGVNyg4jJN3bZcXTA4IU1mf/msVWm4qoacZm5Y4b+mITmJdK+V587V7OVvkAyZUDepSQVTO/1VCzsrPrMKvUncMdtjRwuEfX3uZTKUad8LzONANuANdxd2NbATIpNbRJUzXTVCQfbj/qI6pbt6nRj38uGhbYiQeLdP6nHVF3p43zUs3AefCHwicTDQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=as8HXwLx1Zl9o2iQtPqGLoGRGBXmJbz5GSTKA8wbpEg=;
 b=YM3ClKHI1XPlEwOAyXw2zRDGkOJ5KRE+ltfnNHslT062QWDp80yk4fMtSlAsRda2PQhWrGil+5WERPFJpMLyvWEkGRnSPmsS6SXitl9mFnXovLTfyXLl5ySoynbqniR/lKqiag6MEBoVf4hULpBp79oEekvveEG4yzEuNfaADUiYf0H8K+KNKZgMiZRlnty+Z1lCZK21CKaqNjzMOIvM99CS/pe02V9AKn6LD+fnx1Jr+a261VGN03Rm3vUtwfgN8Batt4oScq31YtVHa8EdDRjPsW8pJYqTMm5yTCmuQjwbeS6gnmPZuvQ59jqpej+UPFwRQcs3WHpsZlx8qmFodQ==
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>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stewart
 Hildebrand <stewart.hildebrand@amd.com>
Subject: [PATCH v2 4/8] vpci: add a wait operation to the vpci vcpu pending
 actions
Thread-Topic: [PATCH v2 4/8] vpci: add a wait operation to the vpci vcpu
 pending actions
Thread-Index: AQHcr7UNjpbdOXJQP0qdir/zrd85oQ==
Date: Mon, 9 Mar 2026 11:08:26 +0000
Message-ID:
 <ec941fbf4f8bde23fc3867e47f5ada028f8003aa.1772806036.git.mykyta_poturai@epam.com>
References: <cover.1772806036.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1772806036.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_|AS2PR03MB9695:EE_
x-ms-office365-filtering-correlation-id: 9ba41daa-adda-4cbc-6641-08de7dcc3287
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:
 FgBkkkf5bQYCe5NIp3tiTwRBx5GxGX5OdGalTuAAIPC53cH+NHwLxFtKgRA79kB7vkr2ELmJqixBxsg/yGFosUEd/O0YwjsVUFw9H3pEAE6BeS9HwTe9l2OoUYmgpKgJMLo6AutEH36CO59lcBZJ/KOKNgSZ3vviafFTb1Pg3pDco9I0r4m7QCi1zQ22qbebJj342FvHie2uUFSQ48YMBEo+ROmNGbBsk3TzcCYdkZTu42QFA43pVIoYu+gEQzWAgLFNfZJayXbILBQ5tnH5bkeEiVPL9ZJYzDrE5yg1xDApeCkPBQbQVS7vzKeDcVMnaa3qL60c1wHLVxybZ415z/Ey4Sb/VUO+vAyUltW/Zh3Iq49+GRc5SMU38r3qZGKsb2lDKmcrCjzDybLuBZYKcd0WfDiEKIYGrvG1LGRoM4o/wv8AJi45EECRjp31MAUeL+dqRRStLhIxhhig/aAmLN6zCyc/Dq2CfmrwD59IDr6R2FlJVvve8E1jTUNjPhZ15CbHCi0l2EF+Z73XkRQlnIdnCNxvqmAFkEVqjKm638PITQaLmwpNvJGRpdmPGErWRnVVKdOyB7dqU3L80kJwfAcVj9/ZYAf//Sjj4ipRl/s8WD4eMt4XsM8/Ci7HWHeY1IK14enPg3Xgf49EOojbB8d4Pc+IwDGx3XVkG9FhmJ/iMNtdv7jWQVMcolT/XFoQSf3JGY0aoIph28l6KSy/gVbzZ4/mC2sx6mZfvQtB8nbN6m1VEtDjmyv8RT4tdtfK4LBnyKCKUeGSVUWT7mcbv7phPWvbaDWIFefp88Oz0q0=
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:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?eUxoTEtMcFJnanFUeFpxTjdsb2VoWDhMTktoRXFUZ2w2aFlMdnJvM1VoMEVv?=
 =?utf-8?B?U05MZVZHaVB1ellZWnA4L25aVGplVlpUWGdHQ3ZBbGdGRlQwYU82VlBVWHMr?=
 =?utf-8?B?NnV5Z0xzNWpwU0ZPTlRjYkhURWJqdlJjSDVIRUp0SlJ5MmFUS29FRUNjeVhq?=
 =?utf-8?B?SnhicWVtS2hrdHZEejVLY1NMdW40d3ZBS1ZzWVRqeEJyTk9DNkdNa1dWNno5?=
 =?utf-8?B?TFMyZXg0OVNpYnBvb1NuMGNORVNLZ2QxS3FuWEg5S2NUdlUyS3Ard3JVeEQy?=
 =?utf-8?B?MnBKSnVqTE9VQW9ubHR3WUlsVmRvQmRiOUVUWmRmZEtXZ3BmdkE4RjR2anpz?=
 =?utf-8?B?TTgzM3U5NGszazVrSU9XbXVXWnU4YlYyYkt6dlpHRWR5Zll0YkxhMFBPSVZR?=
 =?utf-8?B?QUlFRU1TU2M3K2I3VEJhSkVhcUpaMlJLczljVStYb0NYa2lsdGtvd013aVJj?=
 =?utf-8?B?K1VZdWlTRVVjRTROVU8rbmEyNkdKdXh4d2syTjYvcDdqWGRwR2pPalNncGJO?=
 =?utf-8?B?bmNZQ0dkVDVpZVhUZllOSUtpN09oY1VFejhvbmc3OThYUTVFTVhtcFBGMVdD?=
 =?utf-8?B?UnRSNGx2Tmw4eUN6RUxmVE5mL3ptTWRocmZYb2VoMEtOVGpzRWNmV3ppYkFY?=
 =?utf-8?B?Zi9RcFZoYmdGdEVRZk9JMTVFRERSbUZMOG5lczB0b3lPaEZDcFRvdkhHS2VZ?=
 =?utf-8?B?K0NNcmZtaEViK0xmTDhmOG1QdFdNcWhHOEF1UzBQbDFpRUZxMXMrMU53SEti?=
 =?utf-8?B?ejBOVkZGU2ovSHBleDFyVXdyeTdZU0FCWldGbC9FREdZNmtjd0hVbDdsbTNi?=
 =?utf-8?B?RmlyOGlMWHZuMXFmeXpZeHg3MkZCN1U0b25xbnM5N2pPMjg1MDN4L2NlSzAy?=
 =?utf-8?B?TkYxUEo3TXRHc3VjNEJCa242K2FuZkV5QnlKVk1TRkpXcHc4bUUrLzhRZ1p6?=
 =?utf-8?B?aENJWEZZVDJ3bEFjeW0wN1d0dXJMRnBaL1NkMC8zb0M2L1RaWlRSa2pyMmMr?=
 =?utf-8?B?dmh4MTFPcEd4ZGRzR3o2cSs3WXQxQ25YRUhMYjJqWXBqQm5jYmJlMWJGMFRs?=
 =?utf-8?B?VEJpT0s0eFNZbldGSU9nSU1YVkJyS3RFMnlKYWh4WkVuazRldnhpNmJIaHJi?=
 =?utf-8?B?TjBudUlleWdBOUh1NlpabXZaU0J6bEZRYnVPelNHREhjaEQzdElNcTNIV3hl?=
 =?utf-8?B?L0NWbHJJc3gvZlNVR0tOeWpOZjVUYnE2elNNdzdXQlZvQTdqb1VxWnp3T2hP?=
 =?utf-8?B?aG1GWVczaS9QQW13ek5NTWE0d3dIdFkvVmhUUkJweXpTS0l2V0haVGFUeHMy?=
 =?utf-8?B?ZEMzaHFhRUhDRzNDS1BnMmJyYUJJK0puQUFYWTJYT2NLdWtnTDVRa2E0Nk5p?=
 =?utf-8?B?bnRmY0FDMUh1M0E4ek9FNytFbkJLMXFDZlZLUE0xTE5hb1MvTUlQdVpRNW85?=
 =?utf-8?B?RDFKcm5NZzFFVUZYMlFWeE9BamxHa00wTEorbzRjSEZ0a25ISnlSYzFjT3h6?=
 =?utf-8?B?OTl4b3NRYXhKSVdEK2NMZzhaQ0tGdXNMYjZKVkFPWGtiQ0luSlZPdUVFb2lI?=
 =?utf-8?B?V1hUcW9qdXdHQk5QR3F4RTkveDVQbStGYzFUK2VWTy9UMmtqMmIrek5acW9M?=
 =?utf-8?B?RnFwQWlTNk1KY05WcHlpRmJMNlJmTkpxSE1DWUxhT0VhbHhxRFFFeGIvMGor?=
 =?utf-8?B?ditYMjNMeVdDRFFDT3U1ekhhZDVZUzNFN1gxbkRrU2UrMTUvVldnZjN1eUZP?=
 =?utf-8?B?TFp2T0RFSmIvZW81MlRhNTU4ZkdRQ1htSFpoVjlBMkcwdXpPR0h4UWs3OVMx?=
 =?utf-8?B?WE9rQnErSC80MmY3T2RrZ0JHM0NrT1BHajVZZzZ5UklRWHhGU1poTzBHRWtL?=
 =?utf-8?B?cjU4NlgvdHo0MlYrZExRdEpuMnBleU10WVIwODhhNnF2SUk3WElXSGJEWjhs?=
 =?utf-8?B?V0RVU1dSTThUamtkcmxzVVVWUGhLeUlUdkYwYXNTb0NUeHVsanA3NkgzVFcr?=
 =?utf-8?B?OEZPV2NralpHL3JmdTh6aHlJQkx1S3JSbjc0WjRvL2ZhRTdGT3JPU2hTVnBI?=
 =?utf-8?B?SHpJekNPcVFzRFNVb3crclJzMFV1ZTc2T3cxWTA2TGhueUZXckRWQTlJZDlV?=
 =?utf-8?B?N21saUJROG5kTGlHNVRlNGFhR3ZmL2czYmhNRW5mdXdya0JwQ2Q3d1ZVQ2Ja?=
 =?utf-8?B?M0V1TzlFOTQxZU4wbE16ak4rUkg5YWp5eVVkN1hDMHN4SXJKRkhHTkdmUGQy?=
 =?utf-8?B?ZkpINWtRL1VQdE05VzFrb29tWjBNOS9LUUdiK2xuYnIyQXFKSkhMaW41dGpG?=
 =?utf-8?B?ZnNyOTlzYjNrcklkUzNoK29GejdNdnVJZ1BGRWdDMUM1bXYydmlTczVYLzJH?=
 =?utf-8?Q?YE9MyvWmuNlzAoG4=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <32432DDDF70C5D40839E4418016DD16E@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: 9ba41daa-adda-4cbc-6641-08de7dcc3287
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Mar 2026 11:08:26.9721
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: dURlGtTLDghS1KYqIh8m0pMYhb9AQHdXq/yp2sOUZDoK+L1+rfAUoIe6S36WqqtLzt3CZjd6Xt1BmJnhhxSUrA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9695

VGhpcyBhbGxvd3Mgd2FpdGluZyBhIHNwZWNpZmllZCBudW1iZXIgb2YgY3ljbGVzIG9uIHRoZSB2
Y3B1LiBPbmNlIHRoZQ0Kd2FpdCBoYXMgZmluaXNoZWQgYSBjYWxsYmFjayBpcyBleGVjdXRlZC4N
Cg0KTm90ZSB0aGF0IHRoaXMgaXMgc3RpbGwgbm90IHVzZWQsIGJ1dCBpbnRyb2R1Y2VkIGhlcmUg
aW4gb3JkZXIgdG8NCnNpbXBsaWZ5IHRoZSBjb21wbGV4aXR5IG9mIHRoZSBwYXRjaGVzIHRoYXQg
YWN0dWFsbHkgbWFrZSB1c2Ugb2YgaXQuDQoNClNpZ25lZC1vZmYtYnk6IFJvZ2VyIFBhdSBNb25u
w6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPg0KU2lnbmVkLW9mZi1ieTogTXlreXRhIFBvdHVyYWkg
PG15a3l0YV9wb3R1cmFpQGVwYW0uY29tPg0KLS0tDQp2MS0+djI6DQoqIG5ldyBwYXRjaA0KLS0t
DQogeGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYyB8IDEyNSArKysrKysrKysrKysrKysrKysrKysr
LS0tLS0tLS0tLS0tLS0tLQ0KIHhlbi9pbmNsdWRlL3hlbi92cGNpLmggICAgfCAgMTkgKysrKysr
DQogMiBmaWxlcyBjaGFuZ2VkLCA5MCBpbnNlcnRpb25zKCspLCA1NCBkZWxldGlvbnMoLSkNCg0K
ZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMgYi94ZW4vZHJpdmVycy92cGNp
L2hlYWRlci5jDQppbmRleCBjYjY0ZDliOWZjLi4yODQ5NjRmMGQ0IDEwMDY0NA0KLS0tIGEveGVu
L2RyaXZlcnMvdnBjaS9oZWFkZXIuYw0KKysrIGIveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYw0K
QEAgLTE3NSw3NiArMTc1LDkyIEBAIHN0YXRpYyB2b2lkIG1vZGlmeV9kZWNvZGluZyhjb25zdCBz
dHJ1Y3QgcGNpX2RldiAqcGRldiwgdWludDE2X3QgY21kLA0KIA0KIGJvb2wgdnBjaV9wcm9jZXNz
X3BlbmRpbmcoc3RydWN0IHZjcHUgKnYpDQogew0KLSAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldiAq
cGRldiA9IHYtPnZwY2kucGRldjsNCi0gICAgc3RydWN0IHZwY2lfaGVhZGVyICpoZWFkZXIgPSBO
VUxMOw0KLSAgICB1bnNpZ25lZCBpbnQgaTsNCi0NCi0gICAgaWYgKCAhcGRldiApDQotICAgICAg
ICByZXR1cm4gZmFsc2U7DQotDQotICAgIHJlYWRfbG9jaygmdi0+ZG9tYWluLT5wY2lfbG9jayk7
DQotDQotICAgIGlmICggIXBkZXYtPnZwY2kgfHwgKHYtPmRvbWFpbiAhPSBwZGV2LT5kb21haW4p
ICkNCisgICAgc3dpdGNoICggdi0+dnBjaS50YXNrICkNCiAgICAgew0KLSAgICAgICAgdi0+dnBj
aS5wZGV2ID0gTlVMTDsNCi0gICAgICAgIHJlYWRfdW5sb2NrKCZ2LT5kb21haW4tPnBjaV9sb2Nr
KTsNCi0gICAgICAgIHJldHVybiBmYWxzZTsNCi0gICAgfQ0KLQ0KLSAgICBoZWFkZXIgPSAmcGRl
di0+dnBjaS0+aGVhZGVyOw0KLSAgICBmb3IgKCBpID0gMDsgaSA8IEFSUkFZX1NJWkUoaGVhZGVy
LT5iYXJzKTsgaSsrICkNCisgICAgY2FzZSBNT0RJRllfTUVNT1JZOg0KICAgICB7DQotICAgICAg
ICBzdHJ1Y3QgdnBjaV9iYXIgKmJhciA9ICZoZWFkZXItPmJhcnNbaV07DQotICAgICAgICBzdHJ1
Y3QgcmFuZ2VzZXQgKm1lbSA9IHYtPnZwY2kuYmFyX21lbVtpXTsNCi0gICAgICAgIHN0cnVjdCBt
YXBfZGF0YSBkYXRhID0gew0KLSAgICAgICAgICAgIC5kID0gdi0+ZG9tYWluLA0KLSAgICAgICAg
ICAgIC5tYXAgPSB2LT52cGNpLmNtZCAmIFBDSV9DT01NQU5EX01FTU9SWSwNCi0gICAgICAgICAg
ICAuYmFyID0gYmFyLA0KLSAgICAgICAgfTsNCi0gICAgICAgIGludCByYzsNCisgICAgICAgIGNv
bnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdi0+dnBjaS5tZW1vcnkucGRldjsNCisgICAgICAg
IHN0cnVjdCB2cGNpX2hlYWRlciAqaGVhZGVyID0gTlVMTDsNCisgICAgICAgIHVuc2lnbmVkIGlu
dCBpOw0KIA0KLSAgICAgICAgaWYgKCByYW5nZXNldF9pc19lbXB0eShtZW0pICkNCi0gICAgICAg
ICAgICBjb250aW51ZTsNCisgICAgICAgIGlmICggIXBkZXYgKQ0KKyAgICAgICAgICAgIGJyZWFr
Ow0KIA0KLSAgICAgICAgcmMgPSByYW5nZXNldF9jb25zdW1lX3JhbmdlcyhtZW0sIG1hcF9yYW5n
ZSwgJmRhdGEpOw0KKyAgICAgICAgcmVhZF9sb2NrKCZ2LT5kb21haW4tPnBjaV9sb2NrKTsNCiAN
Ci0gICAgICAgIGlmICggcmMgPT0gLUVSRVNUQVJUICkNCisgICAgICAgIGlmICggIXBkZXYtPnZw
Y2kgfHwgKHYtPmRvbWFpbiAhPSBwZGV2LT5kb21haW4pICkNCiAgICAgICAgIHsNCisgICAgICAg
ICAgICB2LT52cGNpLm1lbW9yeS5wZGV2ID0gTlVMTDsNCiAgICAgICAgICAgICByZWFkX3VubG9j
aygmdi0+ZG9tYWluLT5wY2lfbG9jayk7DQotICAgICAgICAgICAgcmV0dXJuIHRydWU7DQorICAg
ICAgICAgICAgYnJlYWs7DQogICAgICAgICB9DQogDQotICAgICAgICBpZiAoIHJjICkNCisgICAg
ICAgIGhlYWRlciA9ICZwZGV2LT52cGNpLT5oZWFkZXI7DQorICAgICAgICBmb3IgKCBpID0gMDsg
aSA8IEFSUkFZX1NJWkUoaGVhZGVyLT5iYXJzKTsgaSsrICkNCiAgICAgICAgIHsNCi0gICAgICAg
ICAgICBzcGluX2xvY2soJnBkZXYtPnZwY2ktPmxvY2spOw0KLSAgICAgICAgICAgIC8qIERpc2Fi
bGUgbWVtb3J5IGRlY29kaW5nIHVuY29uZGl0aW9uYWxseSBvbiBmYWlsdXJlLiAqLw0KLSAgICAg
ICAgICAgIG1vZGlmeV9kZWNvZGluZyhwZGV2LCB2LT52cGNpLmNtZCAmIH5QQ0lfQ09NTUFORF9N
RU1PUlksDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKTsNCi0gICAgICAgICAg
ICBzcGluX3VubG9jaygmcGRldi0+dnBjaS0+bG9jayk7DQorICAgICAgICAgICAgc3RydWN0IHZw
Y2lfYmFyICpiYXIgPSAmaGVhZGVyLT5iYXJzW2ldOw0KKyAgICAgICAgICAgIHN0cnVjdCByYW5n
ZXNldCAqbWVtID0gdi0+dnBjaS5iYXJfbWVtW2ldOw0KKyAgICAgICAgICAgIHN0cnVjdCBtYXBf
ZGF0YSBkYXRhID0gew0KKyAgICAgICAgICAgICAgICAuZCA9IHYtPmRvbWFpbiwNCisgICAgICAg
ICAgICAgICAgLm1hcCA9IHYtPnZwY2kubWVtb3J5LmNtZCAmIFBDSV9DT01NQU5EX01FTU9SWSwN
CisgICAgICAgICAgICAgICAgLmJhciA9IGJhciwNCisgICAgICAgICAgICB9Ow0KKyAgICAgICAg
ICAgIGludCByYzsNCisNCisgICAgICAgICAgICBpZiAoIHJhbmdlc2V0X2lzX2VtcHR5KG1lbSkg
KQ0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsNCiANCi0gICAgICAgICAgICAvKiBDbGVhbiBh
bGwgdGhlIHJhbmdlc2V0cyAqLw0KLSAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgQVJSQVlf
U0laRShoZWFkZXItPmJhcnMpOyBpKysgKQ0KLSAgICAgICAgICAgICAgICBpZiAoICFyYW5nZXNl
dF9pc19lbXB0eSh2LT52cGNpLmJhcl9tZW1baV0pICkNCi0gICAgICAgICAgICAgICAgICAgICBy
YW5nZXNldF9wdXJnZSh2LT52cGNpLmJhcl9tZW1baV0pOw0KKyAgICAgICAgICAgIHJjID0gcmFu
Z2VzZXRfY29uc3VtZV9yYW5nZXMobWVtLCBtYXBfcmFuZ2UsICZkYXRhKTsNCiANCi0gICAgICAg
ICAgICB2LT52cGNpLnBkZXYgPSBOVUxMOw0KKyAgICAgICAgICAgIGlmICggcmMgPT0gLUVSRVNU
QVJUICkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIHJlYWRfdW5sb2NrKCZ2LT5k
b21haW4tPnBjaV9sb2NrKTsNCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQorICAgICAg
ICAgICAgfQ0KIA0KLSAgICAgICAgICAgIHJlYWRfdW5sb2NrKCZ2LT5kb21haW4tPnBjaV9sb2Nr
KTsNCisgICAgICAgICAgICBpZiAoIHJjICkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAg
ICAgIHNwaW5fbG9jaygmcGRldi0+dnBjaS0+bG9jayk7DQorICAgICAgICAgICAgICAgIC8qIERp
c2FibGUgbWVtb3J5IGRlY29kaW5nIHVuY29uZGl0aW9uYWxseSBvbiBmYWlsdXJlLiAqLw0KKyAg
ICAgICAgICAgICAgICBtb2RpZnlfZGVjb2RpbmcocGRldiwgdi0+dnBjaS5tZW1vcnkuY21kICYg
flBDSV9DT01NQU5EX01FTU9SWSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZh
bHNlKTsNCisgICAgICAgICAgICAgICAgc3Bpbl91bmxvY2soJnBkZXYtPnZwY2ktPmxvY2spOw0K
Kw0KKyAgICAgICAgICAgICAgICAvKiBDbGVhbiBhbGwgdGhlIHJhbmdlc2V0cyAqLw0KKyAgICAg
ICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8IEFSUkFZX1NJWkUoaGVhZGVyLT5iYXJzKTsgaSsr
ICkNCisgICAgICAgICAgICAgICAgICAgIGlmICggIXJhbmdlc2V0X2lzX2VtcHR5KHYtPnZwY2ku
YmFyX21lbVtpXSkgKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlc2V0X3B1cmdlKHYt
PnZwY2kuYmFyX21lbVtpXSk7DQorDQorICAgICAgICAgICAgICAgIHYtPnZwY2kubWVtb3J5LnBk
ZXYgPSBOVUxMOw0KKw0KKyAgICAgICAgICAgICAgICByZWFkX3VubG9jaygmdi0+ZG9tYWluLT5w
Y2lfbG9jayk7DQogDQotICAgICAgICAgICAgaWYgKCAhaXNfaGFyZHdhcmVfZG9tYWluKHYtPmRv
bWFpbikgKQ0KLSAgICAgICAgICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluKTsNCisgICAg
ICAgICAgICAgICAgaWYgKCAhaXNfaGFyZHdhcmVfZG9tYWluKHYtPmRvbWFpbikgKQ0KKyAgICAg
ICAgICAgICAgICAgICAgZG9tYWluX2NyYXNoKHYtPmRvbWFpbik7DQogDQotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICAgICAgICBicmVhazsNCisgICAgICAgICAgICB9DQog
ICAgICAgICB9DQotICAgIH0NCi0gICAgdi0+dnBjaS5wZGV2ID0gTlVMTDsNCisgICAgICAgIHYt
PnZwY2kubWVtb3J5LnBkZXYgPSBOVUxMOw0KIA0KLSAgICBzcGluX2xvY2soJnBkZXYtPnZwY2kt
PmxvY2spOw0KLSAgICBtb2RpZnlfZGVjb2RpbmcocGRldiwgdi0+dnBjaS5jbWQsIHYtPnZwY2ku
cm9tX29ubHkpOw0KLSAgICBzcGluX3VubG9jaygmcGRldi0+dnBjaS0+bG9jayk7DQorICAgICAg
ICBzcGluX2xvY2soJnBkZXYtPnZwY2ktPmxvY2spOw0KKyAgICAgICAgbW9kaWZ5X2RlY29kaW5n
KHBkZXYsIHYtPnZwY2kubWVtb3J5LmNtZCwgdi0+dnBjaS5tZW1vcnkucm9tX29ubHkpOw0KKyAg
ICAgICAgc3Bpbl91bmxvY2soJnBkZXYtPnZwY2ktPmxvY2spOw0KIA0KLSAgICByZWFkX3VubG9j
aygmdi0+ZG9tYWluLT5wY2lfbG9jayk7DQorICAgICAgICByZWFkX3VubG9jaygmdi0+ZG9tYWlu
LT5wY2lfbG9jayk7DQorDQorICAgICAgICBicmVhazsNCisgICAgfQ0KKyAgICBjYXNlIFdBSVQ6
DQorICAgICAgICBpZiAoIE5PVygpIDwgdi0+dnBjaS53YWl0LmVuZCApDQorICAgICAgICAgICAg
cmV0dXJuIHRydWU7DQorICAgICAgICB2LT52cGNpLndhaXQuY2FsbGJhY2sodi0+dnBjaS53YWl0
LmRhdGEpOw0KKyAgICAgICAgYnJlYWs7DQorICAgIGNhc2UgTk9ORToNCisgICAgICAgIHJldHVy
biBmYWxzZTsNCisgICAgfQ0KIA0KKyAgICB2LT52cGNpLnRhc2sgPSBOT05FOw0KICAgICByZXR1
cm4gZmFsc2U7DQogfQ0KIA0KQEAgLTI5NSw5ICszMTEsMTAgQEAgc3RhdGljIHZvaWQgZGVmZXJf
bWFwKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1aW50MTZfdCBjbWQsIGJvb2wgcm9tX29u
bHkpDQogICAgICAqIGlzIG1hcHBlZC4gVGhpcyBjYW4gbGVhZCB0byBwYXJhbGxlbCBtYXBwaW5n
IG9wZXJhdGlvbnMgYmVpbmcNCiAgICAgICogc3RhcnRlZCBmb3IgdGhlIHNhbWUgZGV2aWNlIGlm
IHRoZSBkb21haW4gaXMgbm90IHdlbGwtYmVoYXZlZC4NCiAgICAgICovDQotICAgIGN1cnItPnZw
Y2kucGRldiA9IHBkZXY7DQotICAgIGN1cnItPnZwY2kuY21kID0gY21kOw0KLSAgICBjdXJyLT52
cGNpLnJvbV9vbmx5ID0gcm9tX29ubHk7DQorICAgIGN1cnItPnZwY2kubWVtb3J5LnBkZXYgPSBw
ZGV2Ow0KKyAgICBjdXJyLT52cGNpLm1lbW9yeS5jbWQgPSBjbWQ7DQorICAgIGN1cnItPnZwY2ku
bWVtb3J5LnJvbV9vbmx5ID0gcm9tX29ubHk7DQorICAgIGN1cnItPnZwY2kudGFzayA9IE1PRElG
WV9NRU1PUlk7DQogICAgIC8qDQogICAgICAqIFJhaXNlIGEgc2NoZWR1bGVyIHNvZnRpcnEgaW4g
b3JkZXIgdG8gcHJldmVudCB0aGUgZ3Vlc3QgZnJvbSByZXN1bWluZw0KICAgICAgKiBleGVjdXRp
b24gd2l0aCBwZW5kaW5nIG1hcHBpbmcgb3BlcmF0aW9ucywgdG8gdHJpZ2dlciB0aGUgaW52b2Nh
dGlvbg0KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi92cGNpLmggYi94ZW4vaW5jbHVkZS94
ZW4vdnBjaS5oDQppbmRleCBmYTY1NDU0NWU1Li40N2NkYjU0ZDQyIDEwMDY0NA0KLS0tIGEveGVu
L2luY2x1ZGUveGVuL3ZwY2kuaA0KKysrIGIveGVuL2luY2x1ZGUveGVuL3ZwY2kuaA0KQEAgLTIx
Miw3ICsyMTIsMjYgQEAgc3RydWN0IHZwY2lfdmNwdSB7DQogICAgIC8qIFBlci12Y3B1IHN0cnVj
dHVyZSB0byBzdG9yZSBzdGF0ZSB3aGlsZSB7dW59bWFwcGluZyBvZiBQQ0kgQkFScy4gKi8NCiAg
ICAgY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXY7DQogI2lmZGVmIF9fWEVOX18NCisgICAgZW51
bSB7DQorICAgICAgICBOT05FLA0KKyAgICAgICAgTU9ESUZZX01FTU9SWSwNCisgICAgICAgIFdB
SVQsDQorICAgIH0gdGFzazsNCiAgICAgc3RydWN0IHJhbmdlc2V0ICpiYXJfbWVtW1BDSV9IRUFE
RVJfTk9STUFMX05SX0JBUlMgKyAxXTsNCisgICAgdW5pb24gew0KKyAgICAgICAgc3RydWN0IHsN
CisgICAgICAgICAgICAvKiBTdG9yZSBzdGF0ZSB3aGlsZSB7dW59bWFwcGluZyBvZiBQQ0kgQkFS
cy4gKi8NCisgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldjsNCisgICAgICAg
ICAgICB1aW50MTZfdCBjbWQ7DQorICAgICAgICAgICAgYm9vbCByb21fb25seSA6IDE7DQorICAg
ICAgICB9IG1lbW9yeTsNCisgICAgICAgIHN0cnVjdCB7DQorICAgICAgICAgICAgLyogU3RvcmUg
d2FpdCBzdGF0ZS4gKi8NCisgICAgICAgICAgICBzX3RpbWVfdCBlbmQ7DQorICAgICAgICAgICAg
dm9pZCAoKmNhbGxiYWNrKSh2b2lkICopOw0KKyAgICAgICAgICAgIHZvaWQgKmRhdGE7DQorICAg
ICAgICB9IHdhaXQ7DQorICAgIH07DQogI2VuZGlmDQogICAgIHVpbnQxNl90IGNtZDsNCiAgICAg
Ym9vbCByb21fb25seSA6IDE7DQotLSANCjIuNTEuMg0K


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 11:08:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 11:08:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249280.1546796 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzYTb-0005BN-N0; Mon, 09 Mar 2026 11:08:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249280.1546796; Mon, 09 Mar 2026 11: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 1vzYTb-0005Aq-IG; Mon, 09 Mar 2026 11:08:43 +0000
Received: by outflank-mailman (input) for mailman id 1249280;
 Mon, 09 Mar 2026 11: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=OAaF=BJ=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vzYTZ-0003iR-UA
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 11:08:41 +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 53a1cd69-1ba8-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 12:08:39 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AS2PR03MB9695.eurprd03.prod.outlook.com
 (2603:10a6:20b:60d::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Mon, 9 Mar
 2026 11:08:31 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9678.020; Mon, 9 Mar 2026
 11:08:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 53a1cd69-1ba8-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=umqdO+OX5PucfeKcvu4wVdnZsYjWf+IqS49sNdKVg+VPg7B90AQayl2p+Hh3hB+Pvxf/ifgBaRrUEeK4R3vcn/WHuByk69QzfUA4phNjmpGDscaC53D8afyoElkTW22zPMnruz29Q4Oe8mc2mAqWVIHGAqeI4vTDBFjojoKtMz08ZuVThlq7oYokrLWvWWqG26k0FSjDjpRnwZSPEmZfsIvEIaaOnTRdC2xPOVB3OncBTRoQ1MYhj0FRhNwdHKH8wQw9f5pesRN+Y/EMk5ZGUiL4e/cWOMPddtdhcHFa5NA8TjKQcRA4UXH2lMzqM01OTx4Kj2w++i97S5pW0siGrA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YOUp/hM8Mfho1OBtuL27ZRMzjlpOJY9US27a6WY94g4=;
 b=eOF7p8Mp5YP0DvPVx71TGejxYorK5R30noHdTP8m+QukpePE/vJqHekPltSuZ9dSbaLMFq0EknZidAk5pS8vlryI/ZZsaGsnZSL9ddD7RBOAGGBqAXYpiqBW/FoaIhpR3OJv9MmP6M1QuQawXjz/wJQjy7RAlN/UwHb/eNxZQdSdshLM6UR+oeOWwromGi72KJGozZVWuslHBAEg1EPK3YiIAiE3WEFW3HVyVxuIoCgctKauqLRuTWHRd8H7YviL+g3NzXxxgziFrXaEEPEf2YtidNGLeYCABewmJxDgQTQI+TGCXM+x7GB0jeP9R+grd5h+T82BUMp5MnHcxPZdVw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YOUp/hM8Mfho1OBtuL27ZRMzjlpOJY9US27a6WY94g4=;
 b=UnWdGs2MYb/G8XrKT98/qp1aCJF2wG/fuPc75Rd6vLIy9IsyzBmI2cKQG8STI7VEcYnMKH0jZ6DAMtdWS/lsi4ktg4rrSfKkcxk8TQ3Gixheqqd85cxpYnKb1kBh8t4PnroxWgSgIzGHNfGHtdwMsRxXG8O/7iOZfRdKm8nwWqH1jNlAtI0oc+rfnpcmZI1DVO4NEbTAljTRSnqjPlZsYnK76sAAatnWeDvaVvXhwG0ykI4avvkgnY0PEQkv1w3rQMviTmvbTvqpYGTpAfmRrlEsT2DRiiCx6bLN1KY+B1gH6KOHGIrKvvt9QYsmxSg0jFD9oe2GD41t/42LnfXGcA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Jan Beulich <jbeulich@suse.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>
Subject: [PATCH v2 5/8] pci/iommu: Check that IOMMU supports removing devices
Thread-Topic: [PATCH v2 5/8] pci/iommu: Check that IOMMU supports removing
 devices
Thread-Index: AQHcr7UOnGwu40XXHUWWV8IGnIja1A==
Date: Mon, 9 Mar 2026 11:08:27 +0000
Message-ID:
 <0ba0f0a8a7db5c762fa59e2eec627199c023f8b9.1772806036.git.mykyta_poturai@epam.com>
References: <cover.1772806036.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1772806036.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_|AS2PR03MB9695:EE_
x-ms-office365-filtering-correlation-id: c684ad2a-66bb-428c-6f87-08de7dcc32c1
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:
 AXXT3QIz7oRpjcsqQ0pFqIoWteZ+eX+KlnT4L3c9V9fNfJDJTfPg0OzSIlE474qZDJmN8pD2SQFYUS5pm4hWJze3YtSmOD1+URh4sffyoRu8Qd7qPSxBnCTbsir6S6rZhrW7Fy6F3/Fh2kzWi93DM11xR+M3myXHq0gGP0UMPjT/vT+WCiPzCrYf8GfuSTGFvzUx7poM9xe+s27mTDwzYYJl2hcQCqXvJfCIwCiCSVSebq00ryyhlDsw1Bnv3wtwV5KOmG8F6WdxIAvQlqBM3lVF6jjsmsgY6xs/2RBK1/0NdsGisdycRaUxuKKgdB9QKcRkJxnHcaIhE7jap6oEm4gQikg9NCZPsIqQTAQnlD9ZREbRMpTqQ4nr3KqJyyh6f9Z0gZoyFTluM400LFzzmQGyeccFKny3MJdeVcuVOld+qHzh1fa18axj3XpvsBBeraAsDMqXVe6UT9nEHD3ZnrlOnBX1rQtSq6qdIRDoU4ov46GQIqrPznHuOVtBLqDrfpoAFzXTX9dimpwgZ8gPxTf0whyWl+vCLdM7vDOY4Yf+gHtEQddob6s98VJsnEB1Kt6X5lzDatbqxF3oVQh9E6pkG3pZ94tnRlQCUxwl71+Qr5+tU7kb01DgFvnO2UW1jup4lpGIqJXhJMy0642sEyWG25Mo6uJXHuzuBAStdxljgyb+u1mcRC9mro7vnIPG3ceCLRX0Aepw4KMK/OkWeMvomCI09sbY4+FswT4cwTYZtIoxP+L4lIxuIo0gBTRtLkt91yxo9/3W4p/f6FU7Joi22+l7sQcvqT9wYDMpz4U=
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:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Dr6A+9qrm8mFQwM5XB1Bx6nlB82GevkgQrkrChnnCWS7+0eoTKsO8VU/m0?=
 =?iso-8859-1?Q?FkdOlQ6kak+0NtS8++f18eVE3n4J4ow++SizF68QMn/9Yol2EL1YB2PPlF?=
 =?iso-8859-1?Q?TKyJpxttvTgophvM1zfwH/p66UoHLvsAV74mVP0WZ7Mw0Os2aztrNhZwqr?=
 =?iso-8859-1?Q?4YbmpWin3tbufTKrCN44IMcvpftth4/dxsC3J7EtmJVknVPt6pRzO1RFsr?=
 =?iso-8859-1?Q?BScS33HKxBOc1GK7zBuTP4iroIoLpREuM4mlSbRvbn8NV9w8tYK5tIaEw1?=
 =?iso-8859-1?Q?Sq4ko0XAfcVN9k4oYxHgHJ5Wv0ZXgZhivB3k0O66J33PZ6vHl+sFjDKvNp?=
 =?iso-8859-1?Q?eOiENj8jBbsUqOAhrGL/Uf5I94y5H7r+FoYNMb/vYLx1dXA2GXeVhj08H+?=
 =?iso-8859-1?Q?VqXR6F1Lz6hBmE48JVl1q3TOg6R2cMnFywcPhJhe1s/LdZmSdtn5vpdqXR?=
 =?iso-8859-1?Q?ni0odqy/OQAKTXhDLDtStUFBHtnE2BTa7Of877rgFPV1WFOp6JgXobDYUZ?=
 =?iso-8859-1?Q?J3mA006yd6re13VXcLdYTRhaQqtMMt27ryrPh+1WWy/Vpf06+yYYCUoP8W?=
 =?iso-8859-1?Q?ok5s5KePTnDU/gEbLGscLpUuD/5vH7H1udJVtmP8OULORV5IWhPnDkx0H7?=
 =?iso-8859-1?Q?xMrguCz5VrFtgmK2UHiF5/EK6vzBba1R0SsXgT4JLGRTcKtLzwUA1cg8mC?=
 =?iso-8859-1?Q?585PZ8aXzMvo8Ylq/MsnHyNxpASS3wP4+Mbl4bQETyS0uZ5MEaHSu5O4df?=
 =?iso-8859-1?Q?0U5TWH8t65g8g395bTRGxKbFWFGxrg1vxtvUd3D7bzzyPdWmjMvWdNqmq1?=
 =?iso-8859-1?Q?xGCEODTCSKzC62ekYOGgoTR9oEj3vauBxIyz5SyyEZPzH1qYoInMMLA3GX?=
 =?iso-8859-1?Q?sdCh+DINZ045OAZcCjJojJDItqIDwG7G6h1vFWfCiIfTSQi+43jSnNO6Va?=
 =?iso-8859-1?Q?w04bSDBB5LP69UgL7ytEiTUfEve/Mzby9hndB61viCiuyTAq5SPXAz9UxY?=
 =?iso-8859-1?Q?3WaxAIIBjpqosF7KxK9b4KqXcDCdYdDQ03vhcEYDOztooA3e2o+TJ446rA?=
 =?iso-8859-1?Q?fiGWh/yg5xfFlxo2yDozP6m7/c0FGbPXmh3YXpwk6f+KEkqFv9uVYHJi+S?=
 =?iso-8859-1?Q?8FFnHbrrK4bSRM/FnhojxY4CXr/tck/Q+PXplrLbVXAt/kTozwJArnNEi+?=
 =?iso-8859-1?Q?bbNFrI70a+pFXOvDXX8K4RBgrnSkFmbxTo/Jj1YnD1Smy3ODGK8/gOWLBe?=
 =?iso-8859-1?Q?AocqidWjgX2zL411v/Hl5lc3D1+YPZoe14m7WCzbzFWEOeH7DHHaENn3of?=
 =?iso-8859-1?Q?1js+Nph0+rvzkXZTHapoo9f1xlfoW8fpo/G157F5S2KLi24sh8rnYIHoY9?=
 =?iso-8859-1?Q?MTDTl5kaZdHrgpYtCuLQSMm3rfKFymLqUDMtSNWS4pg4XpWCagoze2X52Q?=
 =?iso-8859-1?Q?cKk8g86WgOrEpk0Rn57ntTCM4U6szcMiGQP3U6x4fda+wmDVwbHkBu946I?=
 =?iso-8859-1?Q?zLHkKm7MAJQxYfHFFP4TE7uW7hEA9tZsXCk9s0i0/Zyy9/A/tsQbPWnQV7?=
 =?iso-8859-1?Q?BfYQB0xZBDHjwX7B8xBZSSraxSEJilkvig0zuEfccYLqBNqd9z9x6z3dEz?=
 =?iso-8859-1?Q?aoVHERTU0lKzBAP+0ZOmlEouhYURkINfUOvFUaHB7C6TyItoZ7cA7fq6jT?=
 =?iso-8859-1?Q?3IPPNzW+aKLhHZgYkranl64LfH5VecrQb2qldbsN3nh8wH8fToqpPQYtTm?=
 =?iso-8859-1?Q?oYWO863cxr7rQNnzySlkbC7p50kRy4StN8KVTpXGgqSSdwTbUGSDdaKoiq?=
 =?iso-8859-1?Q?HZIpJjBQwL77H1vOJ8o5Dg0TV9lXrFQ=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: c684ad2a-66bb-428c-6f87-08de7dcc32c1
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Mar 2026 11:08:27.4268
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: JnvUHuIWekIYrnFJeUMcgMYD6aJ4ohgGw9zI3gNqMsz0vwo9XvhikNeGn28edFsBLOhfV8cGoLb81UPrD2FGMA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9695

before trying to remove them.
Some IOMMU platforms, such as SMMU-V3 and IPMMU-VMSA don't support
removing devices. Trying to call remove_device will result in a crash.
So check that platform_ops have remove_device set before calling it.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v1->v2:
* new patch
---
 xen/drivers/passthrough/pci.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 464bb0fee4..704eb6e19f 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -1545,6 +1545,12 @@ static int iommu_remove_device(struct pci_dev *pdev)
     if ( !is_iommu_enabled(pdev->domain) )
         return 0;
=20
+    if ( !hd->platform_ops->remove_device )
+    {
+        printk(XENLOG_ERR "IOMMU: remove_device not supported by platform\=
n");
+        return -EOPNOTSUPP;
+    }
+
     for ( devfn =3D pdev->devfn ; pdev->phantom_stride; )
     {
         int rc;
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 11:08:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 11:08:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249281.1546806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzYTd-0005SE-1C; Mon, 09 Mar 2026 11:08:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249281.1546806; Mon, 09 Mar 2026 11: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 1vzYTc-0005Ra-S1; Mon, 09 Mar 2026 11:08:44 +0000
Received: by outflank-mailman (input) for mailman id 1249281;
 Mon, 09 Mar 2026 11: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=OAaF=BJ=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vzYTa-0003iR-UV
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 11:08:42 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 53e0db43-1ba8-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 12:08:40 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AS2PR03MB9695.eurprd03.prod.outlook.com
 (2603:10a6:20b:60d::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Mon, 9 Mar
 2026 11:08: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%5]) with mapi id 15.20.9678.020; Mon, 9 Mar 2026
 11:08: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: 53e0db43-1ba8-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jxWOtq7Ket8+vHZ1LjOEdZw9ahGNiYEpdifGh/lgGsUS4A8LYZ6UyoUgvBfDY+nKtGDHKAaq+t74o3p6LTvwZiMZGOMXd3DHTIp7/4RlWv8a8e9a5IouEnxbBLX6d/JJJoEUCHgjuv3yRQXwNm5XUl7zOFGiFfETR6YEqMgl4w0QZZmgjuX+zoNpWw+5E6xEeEMb9C5YWSNFhwD3pF7Sr7nLSUKaJnE9Z1JmbbB8g16OnU4SWBQUtSGgs9U1UlJOhyz32wc5kknmnYpClkNQBU3YmcgLahKn+FX/g6GNiXOKdJAKmBHClZD7R5z95XCum4ShWsvLd0LFyY6vmFPXIg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IqQ9wzGtIwcLcpHstce4KsP+TKXKqpd4rz2ohRjKgNM=;
 b=vuo3GlXuAraeL20W61I3y0pWNfChfYlqv2AAyxDMJ4Dm25cc5CS5Eej3ByFoU2LiLSk4Iu79ECM113/dH82A94SFD24G4yquCWvrPMOiAybFKf3tXUuqOj0wh2JbhzCQLL9ROJuK9s/qU7uvQwsMBjfy/4sK+mn0i216YaaYBiKhB7Z/sQ9mW9f32xF5XDw7EeRsf6hv81nhOiBK0uN0loYz6CKH3WMok+AOpjLU7KzYyo8kPCNgXd9zj+KcolxrIyhSK+6Axz/RAaLyMhrnlefC9pMhwR93GOO5YSMqJsyw3eyuAbGIqqf4pInmIMhnbud16M2ckBKrXY2d52U1ag==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IqQ9wzGtIwcLcpHstce4KsP+TKXKqpd4rz2ohRjKgNM=;
 b=W57iWa9SEqPzaCtzjOuEnb6OKBC9o4weC9pzbAs12ZPhL4MF1AetZONY4T1zJGW3MG1PX2VLeIjINM9AAdS0ryoLb3nqg4wCPnXZbvEbPhUX+/vaau8Tl30OHQx8W8gd/7KdVdEQ6ge1TEpX3jWEdd9Q+SMHGcFCaM1XGCmjhshbQCMk797F/GxNmYo6S3uPDUOhbezbmP0sSrT/yXTIDmgJo7dDf23IX9rW7vKvR5yCa8LmyCuYzS/v9ewBSyZMySOe4dTwGJbeba2X1+FgDg0Tc40cr8J1hxP5ODFEthMob+j+iI3K4EaJVxIfwsqgvSdeynzEE+tRK9Z8LTSIrQ==
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 v2 8/8] docs: Update SR-IOV support status
Thread-Topic: [PATCH v2 8/8] docs: Update SR-IOV support status
Thread-Index: AQHcr7UOSOcW7ORQ4E6npAgqHkuyvg==
Date: Mon, 9 Mar 2026 11:08:28 +0000
Message-ID:
 <955759c5a770a8be54b6e7ae020915c78576005a.1772806036.git.mykyta_poturai@epam.com>
References: <cover.1772806036.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1772806036.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_|AS2PR03MB9695:EE_
x-ms-office365-filtering-correlation-id: ab6758fb-bd77-4c08-7f76-08de7dcc346d
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:
 U8BY+OVTyQQHbwJSV5kZ3zhS0KgozOBhG5hs6OoiV7pTvl8C/SL4VyXljcZlhMDHFJd8Xtly3eqirOudMscRKCLGPcnX4tOb6gM8l/A66m29DHSyJj/WYZXrSDN52aLyxCRCKKrqT0pZ8BbMLfukPU9HQovHxPzpoyLL2zs3tZMRGAL8Zcp0Es3AhJ5K5D8TSAeGE7Ngs0C/eukTJPTyQc7U+4ypgu+wIWkXYk3UdnbxI/uP6WnExvBtazZlg5o1n2FdZzqphrordaSiMPD+1aX23py7cHEcW9ncEQPprAbTgQ2c/m9c/NMBHEfdaE9Z5Y2c+j2pbOY/e12b5MnJKzB6alYTV0Bm6YI8+LxjiNS+ik/jPJFUdH6OAUucf3DD8gFb86Fce6KnJiwUdNBS4wHmJ/Ig2xswAk62JRz+xusJfwMCr5ddpGfsjQyP4UvQ3wh37t+P3tM9/62N+tF2O7dR075AKLbKaMJD/hTEsSjvceATTYavyDK21arUU7PPL+BRKYFoN1QQ3Hnjl8DWPMJxeAFR8FDXtzzxSjMm75hm82zArBgmPAxy+Q9iZho6e0m22VyeoJhCsJhs6dbTrQaIQE3z6j3bdUsMnKFIa2rzH0IFFL7iauv58Mw1xMUzWiPqveU4J+Qeb31D548jXPxDyxRcrFnsWTxC9CDGwYoGUrbrqkIxSBQWFtg4ZERre6pZWUjN4cJfxkvVUPe5TVIyw/y2GAwebgjMeIRVocOf16VOxtZG+B5Zf5PtruqIn9N707JxQ+YnAvqL5mjtIFS3KItTcTDWtmvW39W4Cl0=
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:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?HpRAy9xWLFZhyTlImjxTAzMMHIaBc80VZlvSia/5WdWvi7aokfQXm5bzbk?=
 =?iso-8859-1?Q?mX1pHzSi5qK7IYWu2/BTTLhYawBkZBQFWDUHRMmU8aubobClzC7X5DS/eU?=
 =?iso-8859-1?Q?NkrOX9wzznBwlyJv2qENWdrZSN5Q61qf9SM3kE99760RbGQi2cmMOFpTnU?=
 =?iso-8859-1?Q?OnsgGUBkB/7Cnr1sNVMRhvbdFsUrlJ34v6GB6k5K0w8TngbeTazN8pRfwC?=
 =?iso-8859-1?Q?tfktw3t4rYbdpuyrVEnh5J6RUZkHB3U56SLwRPop4qRIOkukgm/H1Rb6Qt?=
 =?iso-8859-1?Q?VfcG9Vk6+UZuzaolEfQTSlfGQNTlH3s0Z/e4+9pdTGt651ODAeObXg3pSk?=
 =?iso-8859-1?Q?b+U9aAttoOZo+ZnAN3Rz05RaNep8EPsl45BONFd8nOCurOfGbolRcwN6FE?=
 =?iso-8859-1?Q?bn7/a0YVDe4011MCX4D/CLeA6TLpuyhGX9GOQoLsMZ/hJ1QGIM55LpVvdi?=
 =?iso-8859-1?Q?i7Fnyni2XwBf4cRiRCzAZhYoI1pTxMmbv1CSp4QU4+iCsJys62NF8POrxC?=
 =?iso-8859-1?Q?/d30JZr3U3e3OWe4tCvkpdmQxXw3xtjihnoS1OD5zkEdoMXESgFtuBgoDp?=
 =?iso-8859-1?Q?PbPMvwqqY5uNOANMI5U0bYlYZOcyiWKmnvLJQimNfBegdcMaUeo35FpxDo?=
 =?iso-8859-1?Q?5DW0GnN/TxxGtpp5RCksonRZLM/khe377X9L89wdUYsemS3/8GIL4sb2jZ?=
 =?iso-8859-1?Q?eBXaeaKBUhmewrS5hKWOgBT3WgR+JTyXny+I0pQ9lN4398B8FI+4ZuszjP?=
 =?iso-8859-1?Q?d5mL1mFITlED6k/nIjaskR4dRmuIlUprzO9MVd7htz9x3LrBxiujlgM/iV?=
 =?iso-8859-1?Q?DF1GH4JtQPFj0JcpeSUM9Hg7wZSlbPLl/gtvUZMKh4r9fT3DIiSqO37Con?=
 =?iso-8859-1?Q?+wLZrdvhaV9HRWb2rRM1nosv6kJoLpMiyMroKjglxFWsJv0SkLziLq9/sX?=
 =?iso-8859-1?Q?xnmfIcPNcUN6dks3+eNBVQIpLhSXgeY2OABVI8jlp+j6rBURttTx7vdtQA?=
 =?iso-8859-1?Q?49LrPBY/hqmbQiAuhYlt1Tyd+J34AxXS3e41Wzw7YuGLcvu4ZmXRKOcRNB?=
 =?iso-8859-1?Q?i6pBhlVQEa/q88m+JhN/cauOTJHcrxdV2FDf/YdHpYjtwM6rnlaW8bpYfx?=
 =?iso-8859-1?Q?R+rN5XvDd5VmmjLTZ5q42P3FvW09nO/z0ZQt7fVY2Baa5hahVNBuX8uK8Z?=
 =?iso-8859-1?Q?Z7owXDQ0pMs89cxf2PBoV0gglbJUyyuqZsrSRCQ4edB2eLe9IdMytw+K/D?=
 =?iso-8859-1?Q?evcdepVrvGMgGt+anrlCMheBSuogwsDcIKvGjxsLUg0XVHqho8Skd8zb+C?=
 =?iso-8859-1?Q?JhSkxow8NaWiRpR5gh77MBIn67zqN2VNH0Cbjw85rmXa0LoSYxmfNeC5kP?=
 =?iso-8859-1?Q?SGMdT3DB+flWDt17koFHv0gPpIME8wTTDxosNS20mALu3zZU92OsCKtqCk?=
 =?iso-8859-1?Q?YRg7BQgfWsmeNK0X3pbe/iY/GULWMyIPSp0N6e5TEzSng8HRXNEhQNJDNE?=
 =?iso-8859-1?Q?YJ64IftVlSBEW6HX120IAwbyj9yzWSVzQOka0gpQTikiTgAVss2nBfurE+?=
 =?iso-8859-1?Q?1N9463YE+b2h+P6rgonBEO3K86+gtCOSojkINcrDwe4JJvaLSPjK7/oCZG?=
 =?iso-8859-1?Q?8QdD+r/yv6/C18LO8qKzV62s1TknsPHMkeQGqLJQkrHd2dIRgM0X86QAPW?=
 =?iso-8859-1?Q?42IFBfmiOUlhowJZ8l1d8sobbmhYxGhhJZAAb/q8dC1mx30iy5kyAxDEg+?=
 =?iso-8859-1?Q?+nxaMQvEUgo3PFYZJnDsX12cSQA//2Pugj2NLKiJyN1Y6XttYn/sVLpnsY?=
 =?iso-8859-1?Q?1nyPqHG70vv9qdIJjf+DAKK+0LbY8c0=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: ab6758fb-bd77-4c08-7f76-08de7dcc346d
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Mar 2026 11:08:28.6501
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: MwmSREvtmI4/tGJs/xbNq0uQQsHq9KAnOQHmoE5+rJon2T7bonKvu3Hduy/Wg+LE9nNH7KuT7FJRQHQ+bqFyvw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9695

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v1->v2:
* new patch
---
 SUPPORT.md | 2 --
 1 file changed, 2 deletions(-)

diff --git a/SUPPORT.md b/SUPPORT.md
index d441bccf37..c01853fe7e 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -170,8 +170,6 @@ unexpected behavior or issues on some hardware.
=20
 At least the following features are missing on a PVH dom0:
=20
-  * PCI SR-IOV.
-
   * Native NMI forwarding (nmi=3Ddom0 command line option).
=20
   * MCE handling.
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 11:08:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 11:08:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249282.1546811 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzYTd-0005Z8-ML; Mon, 09 Mar 2026 11:08:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249282.1546811; Mon, 09 Mar 2026 11: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 1vzYTd-0005Y4-EW; Mon, 09 Mar 2026 11:08:45 +0000
Received: by outflank-mailman (input) for mailman id 1249282;
 Mon, 09 Mar 2026 11: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=OAaF=BJ=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vzYTb-0003iR-Ui
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 11:08:44 +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 54167cf5-1ba8-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 12:08:40 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AS2PR03MB9695.eurprd03.prod.outlook.com
 (2603:10a6:20b:60d::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Mon, 9 Mar
 2026 11:08:30 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9678.020; Mon, 9 Mar 2026
 11:08:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54167cf5-1ba8-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ufKkM76nCFoPrt5Nn8II0vupQM7nW/336xjv7ote/dWX1jCAEb+FUlBOww6D/nRnlSP9tgza5euNjWkJy7SuCPHBC42g+hZ+rVVzaafrdSd3aXlAlR9JY2LwVSpE4jST4vo0hGZ1uCWNWQL9qqOB+hPBfcG3c4evtbG1g6TelD9k/Iy+QvRmG7cQB6eaWs0N7T5KUcuj/M0ThNe1+IIkAlg8jKN1hheOBznmnK5ONJWfUdNLW5lX4DXq9/IoVoXm0a6i0LDmSXMjlW27vmYZs2bIR+kZ/QdP86YW+0Yh35B3eaK2CQGeq3j7unaPM+mA9r480SOPc9yEv9CzUYD8Lw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lcvxHQYqTk81Exw11I8k3Jy5Hv2/V72aWoUK5BU4wB4=;
 b=mN8JHW05k2jAsw76jSA4mNSFSLtzHXVfoOrkLgaugGJipBe18LPeGUGmhazMaCP0zC9sHb4/ZY7JNldSCMDKXXGz0/UbQUb7EMTo2A1NzeZ+/qZ/UDl1Y4kVug23m7chgT0/Cbiehq0MuXsAn3g+ZNkyQ7kWZzFmHB6XZyEzPJlJbeT/yQmtj0obZA5WQds3dpQLsL84k94076O1N3s6obHNS0qpdu5FdSlyrKCi3Nu4/nstkovJRgWwxS+HpcdDXFtx+ubc47ZUSAFQGXDJRp1zPfHiJOGbp8YdvauvRwxjEimAI+wbzCrVVQlNI06Wi8w2kFZ8uyyp/YzIIUh8Zw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lcvxHQYqTk81Exw11I8k3Jy5Hv2/V72aWoUK5BU4wB4=;
 b=AclPR2nCcBzYHoAcRYSokkEwWghc+D66VDw0SrktIt1283aZ0eQT8Ii41ZfanK6NlKBrqOJIgt+i7n7s8Y/HpuI0SMRUlfIIALMFEih8kMl2lI+OLfkhaWFhcRCQimkBGYCkEoCBEnNlV2MZvOkdIxQm1o+khaLHSaz2rAfmmbXKeh+YAFBJzwUvtVW0O1NB9vrBh1Nam/HaB16jqhBDwQ3PkAH50sGp5KWtLzf5Zv40OuTcIJ8pRpWW4jLjU8zlG+3zaDpJzMpFqHGXMCjRyRazMVL2lkky2OWhEQKnVptd5JT1Ml8tqsVaX3a6FEfLOkSrOsBl9xe92EtlEohEQg==
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>, Stewart
 Hildebrand <stewart.hildebrand@amd.com>
Subject: [PATCH v2 3/8] vpci: Use pervcpu ranges for BAR mapping
Thread-Topic: [PATCH v2 3/8] vpci: Use pervcpu ranges for BAR mapping
Thread-Index: AQHcr7UNO3bwYqCdZkmfzVSjd86SfA==
Date: Mon, 9 Mar 2026 11:08:26 +0000
Message-ID:
 <43ce584a124f0bd07e641934e15e5ab56548e1ba.1772806036.git.mykyta_poturai@epam.com>
References: <cover.1772806036.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1772806036.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_|AS2PR03MB9695:EE_
x-ms-office365-filtering-correlation-id: c0ae7012-27d0-4fa2-b807-08de7dcc3252
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:
 VNTL2Y5weYB5w5gs2pnkOUmxLsZO4RZe41Or3CD8FPQYOdnQrT9c1YD88R+lbtnFX43mKxY9N2OTA66yE5HJ1KsB8MeUdwFYSRRVnSKuAYm3l3UoCgr4iQLF33HHldNqV7hOvqH7eZov+YW2LA7ZklXea/DpO0PPqHSE8UXTAOFE01JRTHJmyzP6qxcclQq6ltClMc72JQ1GmrhJlwdl6Tz1yglC2lOEcpEyxCbYUy+KLnSztlz4TI5lf3aExlZSHB01eGg70GreP76bGGAEr+KAa4HoJ1ATWetF1ppiMRBqR3KbF1SPCSKIuQY3Ck9NqlvKhOPmEjJq6+3uiAtSV56VS5eoBsf/GwA3Uy6vrjTjNQBMSMSB221+thbqKBKZ3zj1RmzDryx4RcpDSEQoEqqn7a7VXAK633FwHXnj28wPwiJknMWmaYuOtHiKk08a9+KyJV1bjt8uEKWmTIRIm3cLFsRe6JrjSDaUl9LukexVYfWizc6V5RGp8w3J64yQb5ptDP+4jjMq1gTwpO0tGODZfj9yZaDq7H79hgyG5BITA8Hbpts7dNnKNz0b9eTmb9QDC9IYhvFuCJMCe6Kq0zZ2dem2sJ50c18duICIN7pSuoFPjrsmzYjHPKub6dhlmZlKCOy/MMynFWYTraeBKCM5DL1b3lPmfZa9aG8WQ8xpRozzstDdBSWFwvrdfOlV6oraSBvOsKZLBTXFn+U98TPAX92Yo5dRa9PMZT9HAqzYiYRelCNFhhGjKeNmJbFJIED6wWS/+S8SXm1+TO9u5CQDTTofWtXblNBWn4UOvrk=
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:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?q2DbLmAQC1qUooapjiJkp0rfFBwH97vOEOJyEtZPwGq1gBvbvYdDmNi9PE?=
 =?iso-8859-1?Q?plJ99S5TfoEuejISpnhV5QdnxKcQqXGpI4cHb3MvqP9ZKnAnbc27R83x5A?=
 =?iso-8859-1?Q?7FdLNRlL2NpOuxQ4gTwnGE2VgH3+WKH63AprLfO1/lVVSDAJLd/pr7LC1W?=
 =?iso-8859-1?Q?Jrvz7d6QKuEDJOoyUsjkJf7C0qzK3f4npZgXfo0pofEvV00Z/jzCqSoulK?=
 =?iso-8859-1?Q?hDTC8yUgVYn74yLgNDpOg3XHt20qlvJKFFibfAS3BW48Z3T0jOQPfIcpRO?=
 =?iso-8859-1?Q?+/5gQQkgI/3My+84ljsDG+toI9vIXLkhzcM/X432gUOYu7q/MjnzSSsppx?=
 =?iso-8859-1?Q?WsCEV/h/BQAWXisIevHQ1ImBfWnDX2RSBSovCCsPfNEfSwNy93zwuCCTnq?=
 =?iso-8859-1?Q?2/uLEmJVk02WoCZPZ00kgI7GCEI2wAM+ne2FhY4GkOffkM0T2mIXzh1arp?=
 =?iso-8859-1?Q?IjLbr//8FZGj+B5VgWAHklR/wEghmj1xJ4vC9r76tb6pYwu7fwMN6f4GZ2?=
 =?iso-8859-1?Q?iXO01l7Jp8sODHhGPylBy12UJLRkkQbAeCYCE747y6zxabvEpMIUccIDSq?=
 =?iso-8859-1?Q?OfIIcW7h69HqqOF1CVyXWT8fFdNGknMiB1cUXFiUzMDihJWxi05p0wDkLN?=
 =?iso-8859-1?Q?SEbgYzrf3eXQj5TbQk4S8FhnTuZBoSCNgQb1wgKuiuJ1Zew+PhE0c37BqT?=
 =?iso-8859-1?Q?IuoaN9oV4Rf2z87Ly7aztX2Mst+5irxniuXWbI2wNSvL8qn0Tt+KLy+J6a?=
 =?iso-8859-1?Q?kNxV1TW/npgxeUPbFfRp7DzBfAgEwmlGSwVmakoLfX3m2X8A9Pv5N+MxXh?=
 =?iso-8859-1?Q?VZ7WNcuw3dGqX7YUYsRgnmH0VIbwa7O1XqbM7FJ8UbGfnsW+CHrikXF9kY?=
 =?iso-8859-1?Q?RxqFURv976dRhbwLSOIpeH9HOgTfRrVl4lzoNPK8NKg2XvWazDmoqMkgM9?=
 =?iso-8859-1?Q?cL+E+O1ym/WqdjKx563zIkte6UA3dM+fmKmBJvr6H+zgl5TvXVSwRXr5kt?=
 =?iso-8859-1?Q?owjotReVRy0l9EqmbHDFlVKRAL2BJQYcKw/mdQBoWJc9DNzopbJvKTIM+g?=
 =?iso-8859-1?Q?atmj3IuvITbOEf+bZj5DRbdfn/HQxqOOcV16JHJT/sJcfgF+j3ef57rSf4?=
 =?iso-8859-1?Q?VPND6G+6+xLh4Q9ytOfquQMgtPTDhLrZzJ07fNxLlThYdigpCHpVG2Cimi?=
 =?iso-8859-1?Q?0PfTVo8pHIBSjNBTsFMw2bTgUPHgE43CGVP4qbFsTI0rIv+h0RKmaPWdsq?=
 =?iso-8859-1?Q?E72GJBzDOWr8p5AyViPrCuHFGChRCNOq3AmtPDWZ/4hiAnMEvO7/52syP1?=
 =?iso-8859-1?Q?/TlwoBvaSn9N+qmbnTmJBNAptIdh55s4/pTYP4Hn0Pz4Ik167kz4AGjxFe?=
 =?iso-8859-1?Q?LVivL4uj97Sm0XKbPulbuM4R8yS3YqsIWg2L9sxxcH13blM2ZvUhlWuK7z?=
 =?iso-8859-1?Q?vtZg7wbNoQXGeNscN38eGMdKNRHIexQ7vFTjKKeub6E0WqkWI3mGpZA1zJ?=
 =?iso-8859-1?Q?pQ/bDZdB5Ystzpnumq3C5jLH/R+kja+TSyvWddR84qnOrAd9EB4t4L2+hJ?=
 =?iso-8859-1?Q?0MNQ+ZBmrrE+0mzAeJJaXDv+OCqP1xAy/Vo/q+8G2w4IZuNEExUyTEJtTZ?=
 =?iso-8859-1?Q?ZyDrZr/ZIXRzt7c7QCvLsDBFDaebAFJqMxwJ3058FHSN78m7CxcLufSIRM?=
 =?iso-8859-1?Q?X+6MS35BBDJ8lySTo3hxSbuJqN3Udc0xkG6EMb2ZImVXuP9z5tGFcHaF/Z?=
 =?iso-8859-1?Q?DPnF3uHd0/P3toJg5TfjjOVoHBjYbI/1d//7tjqVQZV8NDR+pr72AgS2Ky?=
 =?iso-8859-1?Q?EyGtafCu53X38MKgDep3Pn1p8XVBRK4=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: c0ae7012-27d0-4fa2-b807-08de7dcc3252
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Mar 2026 11:08:26.5055
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: eLbz4qPsJRc/HbrUPT1Xz/A5Ny+whi4Npp/OF4pyateOeuH6YOUVL/gICYaDdbjIINrbqlxJNDwLsmU3mBtL4A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9695

There is no need to store ranges for each PCI device, as they are only
used during the mapping/unmapping process and can be reused for each
device. This also allows to avoid the need to allocate and destroy
rangesets for each device.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v1->v2:
* new patch
---
 xen/common/domain.c       | 24 ++++++++++++++
 xen/drivers/vpci/header.c | 66 ++++++++++++++-------------------------
 xen/drivers/vpci/vpci.c   |  3 --
 xen/include/xen/vpci.h    |  4 ++-
 4 files changed, 51 insertions(+), 46 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index e06174fca7..76b0163616 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -454,6 +454,14 @@ static int vcpu_teardown(struct vcpu *v)
  */
 static void vcpu_destroy(struct vcpu *v)
 {
+#ifdef CONFIG_HAS_VPCI
+    int i;
+
+    for ( i =3D 0; i < ARRAY_SIZE(v->vpci.bar_mem); i++ )
+        if ( v->vpci.bar_mem[i] )
+            rangeset_destroy(v->vpci.bar_mem[i]);
+
+#endif
     free_vcpu_struct(v);
 }
=20
@@ -511,6 +519,22 @@ struct vcpu *vcpu_create(struct domain *d, unsigned in=
t vcpu_id)
     if ( arch_vcpu_create(v) !=3D 0 )
         goto fail_sched;
=20
+#ifdef CONFIG_HAS_VPCI
+    {
+        int i;
+
+        for ( i =3D 0; i < ARRAY_SIZE(v->vpci.bar_mem); i++ )
+        {
+            char str[32];
+
+            snprintf(str, sizeof(str), "%pv:BAR%u", v, i);
+            v->vpci.bar_mem[i] =3D rangeset_new(d, str, RANGESETF_no_print=
);
+            if ( !v->vpci.bar_mem[i] )
+                goto fail_sched;
+        }
+    }
+#endif
+
     d->vcpu[vcpu_id] =3D v;
     if ( vcpu_id !=3D 0 )
     {
diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 07ec991a12..cb64d9b9fc 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -195,6 +195,7 @@ bool vpci_process_pending(struct vcpu *v)
     for ( i =3D 0; i < ARRAY_SIZE(header->bars); i++ )
     {
         struct vpci_bar *bar =3D &header->bars[i];
+        struct rangeset *mem =3D v->vpci.bar_mem[i];
         struct map_data data =3D {
             .d =3D v->domain,
             .map =3D v->vpci.cmd & PCI_COMMAND_MEMORY,
@@ -202,10 +203,10 @@ bool vpci_process_pending(struct vcpu *v)
         };
         int rc;
=20
-        if ( rangeset_is_empty(bar->mem) )
+        if ( rangeset_is_empty(mem) )
             continue;
=20
-        rc =3D rangeset_consume_ranges(bar->mem, map_range, &data);
+        rc =3D rangeset_consume_ranges(mem, map_range, &data);
=20
         if ( rc =3D=3D -ERESTART )
         {
@@ -223,8 +224,8 @@ bool vpci_process_pending(struct vcpu *v)
=20
             /* Clean all the rangesets */
             for ( i =3D 0; i < ARRAY_SIZE(header->bars); i++ )
-                if ( !rangeset_is_empty(header->bars[i].mem) )
-                     rangeset_purge(header->bars[i].mem);
+                if ( !rangeset_is_empty(v->vpci.bar_mem[i]) )
+                     rangeset_purge(v->vpci.bar_mem[i]);
=20
             v->vpci.pdev =3D NULL;
=20
@@ -259,13 +260,14 @@ static int __init apply_map(struct domain *d, const s=
truct pci_dev *pdev,
     for ( i =3D 0; i < ARRAY_SIZE(header->bars); i++ )
     {
         struct vpci_bar *bar =3D &header->bars[i];
+        struct rangeset *mem =3D current->vpci.bar_mem[i];
         struct map_data data =3D { .d =3D d, .map =3D true, .bar =3D bar }=
;
=20
-        if ( rangeset_is_empty(bar->mem) )
+        if ( rangeset_is_empty(mem) )
             continue;
=20
-        while ( (rc =3D rangeset_consume_ranges(bar->mem, map_range,
-                                              &data)) =3D=3D -ERESTART )
+        while ( (rc =3D rangeset_consume_ranges(mem, map_range, &data)) =
=3D=3D
+                -ERESTART )
         {
             /*
              * It's safe to drop and reacquire the lock in this context
@@ -330,12 +332,13 @@ int vpci_modify_bars(const struct pci_dev *pdev, uint=
16_t cmd, bool rom_only)
     for ( i =3D 0; i < ARRAY_SIZE(header->bars); i++ )
     {
         struct vpci_bar *bar =3D &header->bars[i];
+        struct rangeset *mem =3D current->vpci.bar_mem[i];
         unsigned long start =3D PFN_DOWN(bar->addr);
         unsigned long end =3D PFN_DOWN(bar->addr + bar->size - 1);
         unsigned long start_guest =3D PFN_DOWN(bar->guest_addr);
         unsigned long end_guest =3D PFN_DOWN(bar->guest_addr + bar->size -=
 1);
=20
-        if ( !bar->mem )
+        if ( !mem )
             continue;
=20
         if ( !MAPPABLE_BAR(bar) ||
@@ -353,7 +356,7 @@ int vpci_modify_bars(const struct pci_dev *pdev, uint16=
_t cmd, bool rom_only)
             continue;
         }
=20
-        ASSERT(rangeset_is_empty(bar->mem));
+        ASSERT(rangeset_is_empty(mem));
=20
         /*
          * Make sure that the guest set address has the same page offset
@@ -368,7 +371,7 @@ int vpci_modify_bars(const struct pci_dev *pdev, uint16=
_t cmd, bool rom_only)
             return -EINVAL;
         }
=20
-        rc =3D rangeset_add_range(bar->mem, start_guest, end_guest);
+        rc =3D rangeset_add_range(mem, start_guest, end_guest);
         if ( rc )
         {
             printk(XENLOG_G_WARNING "Failed to add [%lx, %lx]: %d\n",
@@ -379,12 +382,12 @@ int vpci_modify_bars(const struct pci_dev *pdev, uint=
16_t cmd, bool rom_only)
         /* Check for overlap with the already setup BAR ranges. */
         for ( j =3D 0; j < i; j++ )
         {
-            struct vpci_bar *prev_bar =3D &header->bars[j];
+            struct rangeset *prev_mem =3D current->vpci.bar_mem[j];
=20
-            if ( rangeset_is_empty(prev_bar->mem) )
+            if ( rangeset_is_empty(prev_mem) )
                 continue;
=20
-            rc =3D rangeset_remove_range(prev_bar->mem, start_guest, end_g=
uest);
+            rc =3D rangeset_remove_range(prev_mem, start_guest, end_guest)=
;
             if ( rc )
             {
                 gprintk(XENLOG_WARNING,
@@ -394,7 +397,7 @@ int vpci_modify_bars(const struct pci_dev *pdev, uint16=
_t cmd, bool rom_only)
             }
         }
=20
-        rc =3D pci_sanitize_bar_memory(bar->mem);
+        rc =3D pci_sanitize_bar_memory(mem);
         if ( rc )
         {
             gprintk(XENLOG_WARNING,
@@ -411,14 +414,14 @@ int vpci_modify_bars(const struct pci_dev *pdev, uint=
16_t cmd, bool rom_only)
         unsigned long end =3D PFN_DOWN(vmsix_table_addr(pdev->vpci, i) +
                                      vmsix_table_size(pdev->vpci, i) - 1);
=20
-        for ( j =3D 0; j < ARRAY_SIZE(header->bars); j++ )
+        for ( j =3D 0; j < ARRAY_SIZE(current->vpci.bar_mem); j++ )
         {
-            const struct vpci_bar *bar =3D &header->bars[j];
+            struct rangeset *mem =3D current->vpci.bar_mem[j];
=20
-            if ( rangeset_is_empty(bar->mem) )
+            if ( rangeset_is_empty(mem) )
                 continue;
=20
-            rc =3D rangeset_remove_range(bar->mem, start, end);
+            rc =3D rangeset_remove_range(mem, start, end);
             if ( rc )
             {
                 gprintk(XENLOG_WARNING,
@@ -468,8 +471,9 @@ int vpci_modify_bars(const struct pci_dev *pdev, uint16=
_t cmd, bool rom_only)
                 for ( j =3D 0; j < ARRAY_SIZE(header->bars); j++)
                 {
                     const struct vpci_bar *bar =3D &header->bars[j];
+                    struct rangeset *mem =3D current->vpci.bar_mem[j];
=20
-                    if ( !rangeset_overlaps_range(bar->mem, start, end) ||
+                    if ( !rangeset_overlaps_range(mem, start, end) ||
                          /*
                           * If only the ROM enable bit is toggled check ag=
ainst
                           * other BARs in the same device for overlaps, bu=
t not
@@ -480,7 +484,7 @@ int vpci_modify_bars(const struct pci_dev *pdev, uint16=
_t cmd, bool rom_only)
                           bar->type =3D=3D VPCI_BAR_ROM) )
                         continue;
=20
-                    rc =3D rangeset_remove_range(bar->mem, start, end);
+                    rc =3D rangeset_remove_range(mem, start, end);
                     if ( rc )
                     {
                         gprintk(XENLOG_WARNING,
@@ -733,18 +737,6 @@ static void cf_check rom_write(
     }
 }
=20
-static int bar_add_rangeset(const struct pci_dev *pdev, struct vpci_bar *b=
ar,
-                            unsigned int i)
-{
-    char str[32];
-
-    snprintf(str, sizeof(str), "%pp:BAR%u", &pdev->sbdf, i);
-
-    bar->mem =3D rangeset_new(pdev->domain, str, RANGESETF_no_print);
-
-    return !bar->mem ? -ENOMEM : 0;
-}
-
 static int vpci_init_capability_list(struct pci_dev *pdev)
 {
     int rc;
@@ -989,10 +981,6 @@ int vpci_init_header(struct pci_dev *pdev)
         else
             bars[i].type =3D VPCI_BAR_MEM32;
=20
-        rc =3D bar_add_rangeset(pdev, &bars[i], i);
-        if ( rc )
-            goto fail;
-
         rc =3D pci_size_mem_bar(pdev->sbdf, reg, &addr, &size,
                               (i =3D=3D num_bars - 1) ? PCI_BAR_LAST : 0);
         if ( rc < 0 )
@@ -1046,12 +1034,6 @@ int vpci_init_header(struct pci_dev *pdev)
                                4, rom);
         if ( rc )
             rom->type =3D VPCI_BAR_EMPTY;
-        else
-        {
-            rc =3D bar_add_rangeset(pdev, rom, num_bars);
-            if ( rc )
-                goto fail;
-        }
     }
     else if ( !is_hwdom )
     {
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index f66f50c8ba..af61b521b0 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -357,9 +357,6 @@ void vpci_deassign_device(struct pci_dev *pdev)
     }
     spin_unlock(&pdev->vpci->lock);
=20
-    for ( i =3D 0; i < ARRAY_SIZE(pdev->vpci->header.bars); i++ )
-        rangeset_destroy(pdev->vpci->header.bars[i].mem);
-
     xfree(pdev->vpci);
     pdev->vpci =3D NULL;
 }
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index dd233b8b03..fa654545e5 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -118,7 +118,6 @@ struct vpci {
             uint64_t guest_addr;
             uint64_t size;
             uint64_t resizable_sizes;
-            struct rangeset *mem;
             enum {
                 VPCI_BAR_EMPTY,
                 VPCI_BAR_IO,
@@ -212,6 +211,9 @@ struct vpci {
 struct vpci_vcpu {
     /* Per-vcpu structure to store state while {un}mapping of PCI BARs. */
     const struct pci_dev *pdev;
+#ifdef __XEN__
+    struct rangeset *bar_mem[PCI_HEADER_NORMAL_NR_BARS + 1];
+#endif
     uint16_t cmd;
     bool rom_only : 1;
 };
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 12:18:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 12:18:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249369.1546836 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzZYa-0001L3-Sl; Mon, 09 Mar 2026 12:17:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249369.1546836; Mon, 09 Mar 2026 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 1vzZYa-0001Kr-Pl; Mon, 09 Mar 2026 12:17:56 +0000
Received: by outflank-mailman (input) for mailman id 1249369;
 Mon, 09 Mar 2026 12:17:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=akxf=BJ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vzZYZ-0001Jp-Ix
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 12:17:55 +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 fe727f8e-1bb1-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 13:17:52 +0100 (CET)
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfout.phl.internal (Postfix) with ESMTP id 88508EC0273;
 Mon,  9 Mar 2026 08:17:51 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Mon, 09 Mar 2026 08:17:51 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 9 Mar 2026 08:17:50 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fe727f8e-1bb1-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1773058671; x=1773145071; bh=xqkqiee5wa
	QOwJic/qsVej/NyQDtai116ygtpOvqQAM=; b=Sma89FvAZfg+PfEybOMR7l/fwT
	rxENHYi4ncZEa/Cg+/5PzFbUUvwuinrTDsBQn7HkwnumkDeFXEGob8/urYR50baK
	KKncY2UTXLfQKHjyZXzIBHBv/Py2Jpa1jbYo2yPGipUoTyx1Ur/e0sjUYc7o0h+j
	ywa+7LxcqG5EoIQaRrtxkfo1Y/tATDtOskwUuXcC6j3AzZIUo0OhX11bTA9NsrUs
	Hj1bVc+93nY5ENe9TSWYH8JA3ZSesapebYIeDyZjw6525B/jRZG0SqNaEzud8CEb
	YPnnkRJFfrV0IklTGSuGceBLrYazGDHyOyRPmLsozdy1PRCnBX7Nu346xpzg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1773058671; x=
	1773145071; bh=xqkqiee5waQOwJic/qsVej/NyQDtai116ygtpOvqQAM=; b=o
	3iJf9fGiYSG9zva9TE/RZ7hSCNjmmW6wXi4FKXEC+5meY9aPS80pmTumuDiyxO7g
	77YfnaYpXPF/7WPg+gTlyBkvXykVWlpZO4Om4XhspdH9oZfKPdG13UzrInX2EiV8
	bS3jq3pxx48r32/u5C/zDOx5wKGPX6Zsfy1MkavSS4F7wG3SDdWaJdLSyO0Ezl/g
	9dpM6OKMlm6mmlZ8ijSt//ypG1zO4IwPfJ8eaMOmR7mFQFitQqmX5iHEUUf6X34F
	/Rqm9NFp+sVeaCPeGVk9GBLdUODZOTpLBMD/olink7HCU3vpGB4Gop7nzBWlh2mU
	33H2yW+SpGJGZOiNzcJnQ==
X-ME-Sender: <xms:b7quaWwcuRy8ZenpEmZ5o6I72EvhI1iaNyToJhaMFQyZPh2gP-WPPQ>
    <xme:b7quacWBN7hwKqDPtK8DcjAyie6VDpBX950KpCOG6tYBuzlKOgt71hJlaSjUWeNEe
    vB4ZQ1y2741gk5KBYAPii78E3w6y0Xei3K4Sa1dJjnYIQs>
X-ME-Received: <xmr:b7quaYOarzkovhs_jM9QfO78FmYgGw9UUHtugkEVV9rHi5QJLWxX_iq27PsYNIF64yoJSONel5dCDUjyCCn21og4ek-XoCB98UfWE3dRDBI>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvjeektdelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefguedu
    hefgvdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhush
    htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhes
    ihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeejpd
    hmohguvgepshhmthhpohhuthdprhgtphhtthhopehlihhnuhigqdhkvghrnhgvlhesvhhg
    vghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehsohhumhihrghjhihothhishgrrh
    hkrghrvdefsehgmhgrihhlrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhi
    shhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtohepmhgrrhhmrghrvghkse
    hinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdprhgtphhtthhopegrrhgusges
    khgvrhhnvghlrdhorhhgpdhrtghpthhtohepihhlihgrshdrrghprghlohguihhmrghsse
    hlihhnrghrohdrohhrghdprhgtphhtthhopehlihhnuhigqdgvfhhisehvghgvrhdrkhgv
    rhhnvghlrdhorhhg
X-ME-Proxy: <xmx:b7quaeB2w-2PSr7ho1pTIpPcMe22EpMBM7lIOmVQrMwXrbI4vqP7eg>
    <xmx:b7quaVebE0NZxnFhjln5iYJ_P1RKQ0AtxQuJ-q7_YpU-5mbuwZuPzA>
    <xmx:b7quadNrBkjiFVOBTTZ2L0zzUXSG1TmqyW8iDNjauElcLkXwZqPFcQ>
    <xmx:b7quaVIJXvg9OtXLvdZ5BriDUfDUBG7WES-EdZ95N5jeCYb-ngJQHA>
    <xmx:b7quacEMpCO7V6N7R3P4Cbvki42lQAfkh1ZhVMidq10KPBwQAvUrOUtA>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: linux-kernel@vger.kernel.org
Cc: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Ard Biesheuvel <ardb@kernel.org>,
	Ilias Apalodimas <ilias.apalodimas@linaro.org>,
	linux-efi@vger.kernel.org (open list:EXTENSIBLE FIRMWARE INTERFACE (EFI))
Subject: [PATCH 1/2] efi: make efi_mem_type() and efi_mem_attributes() work on Xen PV
Date: Mon,  9 Mar 2026 13:17:22 +0100
Message-ID: <952b54025f836c19f57d7207d3881cacf937a50a.1773058629.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.751f45ebbb644244b1d9da3aff289d6b66db4c6b.1773058629.git-series.marmarek@invisiblethingslab.com>
References: <cover.751f45ebbb644244b1d9da3aff289d6b66db4c6b.1773058629.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Xen doesn't give direct access to the EFI memory map, but provides a
hypercall interface for it. efi_mem_desc_lookup() was already adjusted
in aca1d27ac38a "efi: xen: Implement memory descriptor lookup based on
hypercall" to (optionally) use it. Now make efi_mem_type() and
efi_mem_attributes() use common efi_mem_desc_lookup() too.
This also reduces code duplication a bit.
efi_mem_type() retains separate check for -ENOTSUPP error case (even
though no caller seems to rely on this currently).

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 drivers/firmware/efi/efi.c | 27 +++++++++------------------
 1 file changed, 9 insertions(+), 18 deletions(-)

diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
index b2fb92a..36efc92 100644
--- a/drivers/firmware/efi/efi.c
+++ b/drivers/firmware/efi/efi.c
@@ -983,18 +983,12 @@ char * __init efi_md_typeattr_format(char *buf, size_t size,
  */
 u64 efi_mem_attributes(unsigned long phys_addr)
 {
-	efi_memory_desc_t *md;
+	efi_memory_desc_t md;
 
-	if (!efi_enabled(EFI_MEMMAP))
+	if (efi_mem_desc_lookup(phys_addr, &md))
 		return 0;
 
-	for_each_efi_memory_desc(md) {
-		if ((md->phys_addr <= phys_addr) &&
-		    (phys_addr < (md->phys_addr +
-		    (md->num_pages << EFI_PAGE_SHIFT))))
-			return md->attribute;
-	}
-	return 0;
+	return md.attribute;
 }
 
 /*
@@ -1007,18 +1001,15 @@ u64 efi_mem_attributes(unsigned long phys_addr)
  */
 int efi_mem_type(unsigned long phys_addr)
 {
-	const efi_memory_desc_t *md;
+	const efi_memory_desc_t md;
 
-	if (!efi_enabled(EFI_MEMMAP))
+	if (!efi_enabled(EFI_MEMMAP) && !efi_enabled(EFI_PARAVIRT))
 		return -ENOTSUPP;
 
-	for_each_efi_memory_desc(md) {
-		if ((md->phys_addr <= phys_addr) &&
-		    (phys_addr < (md->phys_addr +
-				  (md->num_pages << EFI_PAGE_SHIFT))))
-			return md->type;
-	}
-	return -EINVAL;
+	if (efi_mem_desc_lookup(phys_addr, &md))
+		return -EINVAL;
+
+	return md.type;
 }
 
 int efi_status_to_err(efi_status_t status)
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 12:18:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 12:18:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249368.1546826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzZYW-00016x-MY; Mon, 09 Mar 2026 12:17:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249368.1546826; Mon, 09 Mar 2026 12:17:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzZYW-00016q-JE; Mon, 09 Mar 2026 12:17:52 +0000
Received: by outflank-mailman (input) for mailman id 1249368;
 Mon, 09 Mar 2026 12:17: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=akxf=BJ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vzZYU-00016k-ID
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 12:17:50 +0000
Received: from fhigh-a6-smtp.messagingengine.com
 (fhigh-a6-smtp.messagingengine.com [103.168.172.157])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fb77f53f-1bb1-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 13:17:47 +0100 (CET)
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 29D1D14000F3;
 Mon,  9 Mar 2026 08:17:46 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Mon, 09 Mar 2026 08:17:46 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 9 Mar 2026 08:17:44 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fb77f53f-1bb1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:message-id:mime-version:reply-to:subject:subject:to:to; s=fm1;
	 t=1773058666; x=1773145066; bh=YpKQcaQQ0Co1PPHvvVGmm/YJrK5gAvd6
	rTDRRxrgn/w=; b=Qhw3R8LlnKvaO+yPoBNDyI+Es8t1LeIdR95zYRIF1L9oojUK
	f/r0cWYGZJ0SNPeGM0MweELryPe7qmse5wH3RENIm/DRKmiSfs1fdo8OGMFUqtXw
	zGUkE82iPbtHmG4qdWBRSco3hNSD5nhgMnm6c50Ncawl6DeadoqL2lQol6H47YqL
	M9huUn6CBWxxK3ltASxuRARSlMu43KcfvOiuIr0lPASFtI6rrO1qFLgC8U1jGEmC
	xmrK6mXIgrG4P33as8TLvdaCgOCMdU094eLgYot8ApTBLQg9REkhydWmMOFLfy1a
	eNiO03mOq9td+PGwWWib3KpMq2XGLmEkznw3Cg==
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=
	fm1; t=1773058666; x=1773145066; bh=YpKQcaQQ0Co1PPHvvVGmm/YJrK5g
	Avd6rTDRRxrgn/w=; b=DFa9/9QmMsHdzfHVzfbaS9LHCjf7/BIHA6rrRoeXiRkQ
	J15KQ2vtiHoNOUhF/nqFsXdi7Ew4TTaM3H/oiv0o5Dq5pxYtLYwJMh+bsf+qCbPX
	0zUSs1UEOODu2o3C6rfwbMQyZicWhjjmcJVZE/5IyIxhW+CVWeBvZvA4U1AhuokZ
	zQgNy2B7r0726DN39nOD0fkXMUl/h5HMtIVtHL4xsk98UxD5NSB/WHTX+QlQv692
	7LBc6gxn2rCqDnMcQAV/kUgrfXqiQqwVUqDOgQmg6FtZOj4m2y2Q3GTa8oN4zuNo
	CjX5KSWaGP0rguhIFVGsYqZ+vY1w154or5fJkcp4sQ==
X-ME-Sender: <xms:abquaeAOTp725-iO3nxJwx6tp9PTqcmXooGfBD1guHO02MPBcRGeWg>
    <xme:abquaSn1ZtFe584fQy9KI3lWgxwoKl6IdhFVwzYq4QhrRLJF3foccr_uT1dJxpX-O
    lj665UizY7-g4plr0qoS6gNRuN4Xsd00hkF46TeNoqHnIE>
X-ME-Received: <xmr:abquaReUv6xJkJKlq5Q9XOMmLSAK4IaFkg8kXnW220BhvCDX0cnWpwVHE6gPI8hXkoRggOnbqdPAmUiWXw0K6QzXBUco9YQAZ1XyxTES6Bo>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvjeektdelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhephffvvefufffkofggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeekkeeiveek
    ueehfeegveejveevuedtjeeiveeguefhvdffueetfedtuddvueetveenucffohhmrghinh
    epkhgvrhhnvghlrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehm
    rghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsg
    drtghomhdpnhgspghrtghpthhtohepjedpmhhouggvpehsmhhtphhouhhtpdhrtghpthht
    oheplhhinhhugidqkhgvrhhnvghlsehvghgvrhdrkhgvrhhnvghlrdhorhhgpdhrtghpth
    htohepshhouhhmhigrjhihohhtihhsrghrkhgrrhdvfeesghhmrghilhdrtghomhdprhgt
    phhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrgh
    dprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggs
    rdgtohhmpdhrtghpthhtoheprghruggssehkvghrnhgvlhdrohhrghdprhgtphhtthhope
    hilhhirghsrdgrphgrlhhoughimhgrsheslhhinhgrrhhordhorhhgpdhrtghpthhtohep
    lhhinhhugidqvghfihesvhhgvghrrdhkvghrnhgvlhdrohhrgh
X-ME-Proxy: <xmx:abquaeSyO7IY9k3xkXIhcyTD-TANVtwzvhshxBu4bON2d_H-r7B5RQ>
    <xmx:abquaQvB4Lsig2u2tLLPDKemmVUYcBT74rUNkml-2Wj85a8CRtFSGw>
    <xmx:abquaXcxL-Gxq_bgpImmrtrrdBE-tvBWCtZVMqU6UevckmpqWWsVwQ>
    <xmx:abquaSaIezv1aoKzOiFbqiDyNANC1lfEw_7CIT6W3LDh4d_NEFTrDA>
    <xmx:arquaZkU6g1ycNUjwqaA3pCyyz_0MbVtgz_wtesb5XSs6Jm0OBmHQrdt>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: linux-kernel@vger.kernel.org
Cc: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Ard Biesheuvel <ardb@kernel.org>,
	Ilias Apalodimas <ilias.apalodimas@linaro.org>,
	linux-efi@vger.kernel.org
Subject: [PATCH 0/2] Allow using BGRT table under Xen dom0
Date: Mon,  9 Mar 2026 13:17:21 +0100
Message-ID: <cover.751f45ebbb644244b1d9da3aff289d6b66db4c6b.1773058629.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

For a long time Xen was invalidating BGRT table as it was reclaiming
BootServicesData memory (where boot graphics is located). This is now changing,
and the boot graphics is preserved. This series has necessary changes to
actually make Linux use the preserved graphics.

This is a companion series to Xen side at
https://lore.kernel.org/xen-devel/20260305191810.31033-1-soumyajyotisarkar23@gmail.com/

CC: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: xen-devel@lists.xenproject.org
Cc: Ard Biesheuvel <ardb@kernel.org> (maintainer:EXTENSIBLE FIRMWARE INTERFACE (EFI))
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org> (reviewer:EXTENSIBLE FIRMWARE INTERFACE (EFI))
Cc: linux-efi@vger.kernel.org (open list:EXTENSIBLE FIRMWARE INTERFACE (EFI))

Marek Marczykowski-Górecki (2):
  efi: make efi_mem_type() and efi_mem_attributes() work on Xen PV
  efi: Enable BGRT loading under Xen

 drivers/firmware/efi/efi-bgrt.c |  7 +++++--
 drivers/firmware/efi/efi.c      | 27 +++++++++------------------
 2 files changed, 14 insertions(+), 20 deletions(-)

base-commit: 7e1526209cf972f51281558f1cb979d18e49cdd1
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 12:18:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 12:18:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249370.1546844 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzZYd-0001Zv-3V; Mon, 09 Mar 2026 12:17:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249370.1546844; Mon, 09 Mar 2026 12:17: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 1vzZYd-0001Zo-0v; Mon, 09 Mar 2026 12:17:59 +0000
Received: by outflank-mailman (input) for mailman id 1249370;
 Mon, 09 Mar 2026 12:17: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=akxf=BJ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vzZYb-00016k-QY
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 12:17:57 +0000
Received: from fout-a8-smtp.messagingengine.com
 (fout-a8-smtp.messagingengine.com [103.168.172.151])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 006211b1-1bb2-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 13:17:55 +0100 (CET)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfout.phl.internal (Postfix) with ESMTP id D0090EC04DC;
 Mon,  9 Mar 2026 08:17:54 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-04.internal (MEProxy); Mon, 09 Mar 2026 08:17:54 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 9 Mar 2026 08:17:53 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 006211b1-1bb2-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1773058674; x=1773145074; bh=vxQTTI3dqC
	AbknZWRjEqDbjVPMeCodcJdMqbuNqpGws=; b=stkVUOnKviF3cZ0l4UHwr7x8TD
	iQxAuWDpin2T6RvJFpnaPTD5gwimiUMx0k+WR7+ruRUG/cnD+kNbkWrNPw6o8p5E
	nOTkm501LswWKF9AZmCC6mwEQIFaOTzuWdjscdi0stunYP3g6ytAFpGZ/K2eP9rX
	+MWqvvQHhYpOGzZC7lKrGp7kig9sjdMhlSq4DogKW8GXPfbjiu60om2aITYYuEmW
	3PzgHGQ8BpFb7NGaTTpXOTOZmq3Dc1m/ozSUk7mf9odJpqRIbeq40SgPoV9tG2zx
	LbNHIkwPgGoUgMZ7O7NRdZpy869uohejeJoSakkOT9WlpzUVtXritXmqKKCg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1773058674; x=
	1773145074; bh=vxQTTI3dqCAbknZWRjEqDbjVPMeCodcJdMqbuNqpGws=; b=u
	OhkoL1EE/l9xCqGN4gPTo4U3frn5K1lfoODCx0Tmxhodn43l1oYPT8iqiVSqwcHc
	9XArMpkDY9NXe6ZfhhV0oQvqG8P/Pa7uM3m7zyFOVbi7vWo00jsnsh0liH3d4YXR
	6PwC6S03/TPB020MFP18n1bHxe/Ip9Y/LjIW/1xmroOTzX13t7HBQgm7tO6IGsz8
	RFo93xsHiY5aKdC75/2PyQSuq4Hs0eJoznfce6CsAo3v4VwVaegtJvgHwWyd6/C0
	BoxOZQw3Y9AMBHr3ZZ80K6Y8aUGAKsNhrKQIuAd/chMqEzCqDjFli4bZX8gw43Uo
	o5HiaAUqTErTvi213XCXw==
X-ME-Sender: <xms:crquaUgmgfrIN2Ez7The3_b7rRECLV5viJz-OWFOHAsPQ6lXKuq5eQ>
    <xme:crquaXFcD76IiLie4ykPVLTgyf2mgC-v92TfnXkSwBsCnVrwdz5lqT1kpk-kXMeeI
    rgCQ82abf55ei5ZrTNG_ZHgBLQUuBpU1fnJu2HwWsPQUKZk9w>
X-ME-Received: <xmr:crquab89nmMMZObDq0oioqqyDA84_oeAQTY0pmuhjm4hxx6h-BUVufZ9q3Wu-BwRfeJq-tQiBy-Rt3zLtjj6x7tjgG1E58HayCFF-PYoiN0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvjeektdelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefguedu
    hefgvdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhush
    htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhes
    ihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeejpd
    hmohguvgepshhmthhpohhuthdprhgtphhtthhopehlihhnuhigqdhkvghrnhgvlhesvhhg
    vghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehsohhumhihrghjhihothhishgrrh
    hkrghrvdefsehgmhgrihhlrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhi
    shhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtohepmhgrrhhmrghrvghkse
    hinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdprhgtphhtthhopegrrhgusges
    khgvrhhnvghlrdhorhhgpdhrtghpthhtohepihhlihgrshdrrghprghlohguihhmrghsse
    hlihhnrghrohdrohhrghdprhgtphhtthhopehlihhnuhigqdgvfhhisehvghgvrhdrkhgv
    rhhnvghlrdhorhhg
X-ME-Proxy: <xmx:crquaWzfVrJE7TBUMTIlk7LQ8eU9d-ttfS9MwAC2HDAaDEXT1aQyQw>
    <xmx:crquafPm1C4HDzrGo4AgEMchtP29i7dwl8cl-QJ4-zQT3GLyAgxvnQ>
    <xmx:crquaT_FEU8k6QiHto3nqw-5DnQphFph5LQ3gW0e4zcZtyrvw1znlg>
    <xmx:crquaU4kGkI3Bhps-FVElWi9T3EpFIt69mUzJKL7qUpm9jCWwbHCWg>
    <xmx:crquaaGHDGDXYDxMfWXPPvPa-f_AG1fXnBVEM-sExvj8kWFoOH4v53L8>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: linux-kernel@vger.kernel.org
Cc: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Ard Biesheuvel <ardb@kernel.org>,
	Ilias Apalodimas <ilias.apalodimas@linaro.org>,
	linux-efi@vger.kernel.org (open list:EXTENSIBLE FIRMWARE INTERFACE (EFI))
Subject: [PATCH 2/2] efi: Enable BGRT loading under Xen
Date: Mon,  9 Mar 2026 13:17:23 +0100
Message-ID: <e5b932ab7558d82d5db018fd737da5ef2870aad4.1773058629.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.751f45ebbb644244b1d9da3aff289d6b66db4c6b.1773058629.git-series.marmarek@invisiblethingslab.com>
References: <cover.751f45ebbb644244b1d9da3aff289d6b66db4c6b.1773058629.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The BGRT table can be parsed if EFI_PARAVIRT is enabled, even if
EFI_MEMMAP is not. Xen will take care of preserving the image even if
EfiBootServicesData memory is reclaimed already, or invalidate the table
if it didn't preserve it - in both cases accesing the table itself under
virt is safe. Also allow the ESRT to be in reclaimable memory, as that
is where future Xen versions will put it.
This is similar approach as was taken for ESRT table in 01de145dc7fb
"efi: Actually enable the ESRT under Xen".

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 drivers/firmware/efi/efi-bgrt.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/firmware/efi/efi-bgrt.c b/drivers/firmware/efi/efi-bgrt.c
index 6aafdb6..1da4515 100644
--- a/drivers/firmware/efi/efi-bgrt.c
+++ b/drivers/firmware/efi/efi-bgrt.c
@@ -29,11 +29,12 @@ void __init efi_bgrt_init(struct acpi_table_header *table)
 	void *image;
 	struct bmp_header bmp_header;
 	struct acpi_table_bgrt *bgrt = &bgrt_tab;
+	int mem_type;
 
 	if (acpi_disabled)
 		return;
 
-	if (!efi_enabled(EFI_MEMMAP))
+	if (!efi_enabled(EFI_MEMMAP) && !efi_enabled(EFI_PARAVIRT))
 		return;
 
 	if (table->length < sizeof(bgrt_tab)) {
@@ -62,7 +63,9 @@ void __init efi_bgrt_init(struct acpi_table_header *table)
 		goto out;
 	}
 
-	if (efi_mem_type(bgrt->image_address) != EFI_BOOT_SERVICES_DATA) {
+	mem_type = efi_mem_type(bgrt->image_address);
+	if (mem_type != EFI_BOOT_SERVICES_DATA &&
+	    mem_type != EFI_ACPI_RECLAIM_MEMORY) {
 		pr_notice("Ignoring BGRT: invalid image address\n");
 		goto out;
 	}
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 12:22:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 12:22:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249394.1546855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzZcp-0003bw-LU; Mon, 09 Mar 2026 12:22:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249394.1546855; Mon, 09 Mar 2026 12:22:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzZcp-0003bp-Gk; Mon, 09 Mar 2026 12:22:19 +0000
Received: by outflank-mailman (input) for mailman id 1249394;
 Mon, 09 Mar 2026 12:22:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jftE=BJ=bounce.vates.tech=bounce-md_30504962.69aebb6e.v1-638f3f823d7f4ab28270cf3473175c76@srs-se1.protection.inumbo.net>)
 id 1vzZco-0003bj-56
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 12:22:18 +0000
Received: from mail132-19.atl131.mandrillapp.com
 (mail132-19.atl131.mandrillapp.com [198.2.132.19])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9711b72a-1bb2-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 13:22:08 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-19.atl131.mandrillapp.com (Mailchimp) with ESMTP id 4fTx326qbkz2lL
 for <xen-devel@lists.xenproject.org>; Mon,  9 Mar 2026 12:22:06 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 638f3f823d7f4ab28270cf3473175c76; Mon, 09 Mar 2026 12:22:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9711b72a-1bb2-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773058927; x=1773328927;
	bh=pzRefWKHPO4gtPDK77mGxGQotz5Vl0Qyd4vFEZa7/Gk=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=h5HANp9yM3I2+mqmE13/b7WJAI6z+2Osg38VIC3WcuQuGniRsk3eNugV4GJeBrX4n
	 7LIUkNNHC0vyCwf/RnoQ+AQacgA0CXTdz8Qr2wdG8zcEZe79nG+n4Y0F9LLMxJSj7Q
	 Mc4WS5QinrVUgapQU14QeS0HcaYJq/PePZf+0VhxePFFc4tVv5bH+3qijnBwCbl0zu
	 wNxP6jUWAIP/6FmWI24n1pp1gdz/O3Gfz4erZfR3WZYg41KSt9Dc5Qnh8gdk1E9L5U
	 wqNd0jsMKJOsl27Q3OmqEiGjDQBqMFkPDRZQV+0dF0KV1Cl2SL0BfO3WBiYl5l7TGE
	 rvdXYGhPWsdiA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773058927; x=1773319427; i=anthony.perard@vates.tech;
	bh=pzRefWKHPO4gtPDK77mGxGQotz5Vl0Qyd4vFEZa7/Gk=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=h/bygIiy1vv6mW5R3i8adcMxUnvv3MpjZ12soLwjk2tZelPqOvuNurLLvfv/x2gJz
	 thwOxa/c2lLdGUzB9o9FK3ne9jowZaqjuEJtz+Th5s+67PYID/qcxPxoGbPRv0JL5s
	 NZvBeFGkHRqdrxAizHrUk/VA57/njMJARJsLCI9WCpkdd7Yaq7m1upY2NCOIBA4VbJ
	 v+cYh/xbmOee2Wi9XthF4/yQjfLaBxHurzxKg3wGSMAzQ2HRB066mYjBwX4Ql+BYjW
	 v3pbJihYu364q2oKygi2pmBCgH3Btg7WNgMiJB/SCmvucXjb091ok9JMfYjKd5b6Yv
	 VdFA6Q3uJxzQw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v6]=20xen/domain:=20introduce=20DOMID=5FANY?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773058924994
To: dmukhin@ford.com
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org
Message-Id: <aa67bEWug18FDYwY@l14>
References: <20260307025451.3148078-2-dmukhin@ford.com>
In-Reply-To: <20260307025451.3148078-2-dmukhin@ford.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.638f3f823d7f4ab28270cf3473175c76?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260309:md
Date: Mon, 09 Mar 2026 12:22:06 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Fri, Mar 06, 2026 at 06:54:52PM -0800, dmukhin@ford.com wrote:
> diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_create.c
> index bfc9149096a3..79af2958d170 100644
> --- a/tools/libs/light/libxl_create.c
> +++ b/tools/libs/light/libxl_create.c
> @@ -666,7 +666,7 @@ int libxl__domain_make(libxl__gc *gc, libxl_domain_config *d_config,
>          }
>  
>          for (;;) {
> -            uint32_t local_domid;
> +            uint32_t local_domid = DOMID_INVALID;

Surely, this change is unnecessary?

>              bool recent;
>  
>              if (info->domid == RANDOM_DOMID) {
> @@ -681,8 +681,10 @@ int libxl__domain_make(libxl__gc *gc, libxl_domain_config *d_config,
>                      continue;
>  
>                  local_domid = v;
> +            } else if (libxl_domid_valid_guest(local_domid)) {

You meant to check `info->domid`, right?

> +                local_domid = info->domid;
>              } else {
> -                local_domid = info->domid; /* May not be valid */
> +                local_domid = DOMID_ANY;
>              }

Cheers,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 12:31:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 12:31:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249407.1546873 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzZlM-0005bp-VS; Mon, 09 Mar 2026 12:31:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249407.1546873; Mon, 09 Mar 2026 12:31:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzZlM-0005af-QC; Mon, 09 Mar 2026 12:31:08 +0000
Received: by outflank-mailman (input) for mailman id 1249407;
 Mon, 09 Mar 2026 12:31: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=aJJ9=BJ=bounce.vates.tech=bounce-md_30504962.69aebd87.v1-7632bac910874125b6f28e7074afe0a8@srs-se1.protection.inumbo.net>)
 id 1vzZlL-0005Rm-81
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 12:31:07 +0000
Received: from mail133-21.atl131.mandrillapp.com
 (mail133-21.atl131.mandrillapp.com [198.2.133.21])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d65d34a9-1bb3-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 13:31:04 +0100 (CET)
Received: from pmta13.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail133-21.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fTxFM1TNbz1XLF7d
 for <xen-devel@lists.xenproject.org>; Mon,  9 Mar 2026 12:31:03 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 7632bac910874125b6f28e7074afe0a8; Mon, 09 Mar 2026 12:31: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: d65d34a9-1bb3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773059463; x=1773329463;
	bh=jYo3ibCaaXE6o3VshQXsD68O/WvKsje9Jyl33S4ybjc=;
	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=jlUk3StiwCUfMddo7aJqdYhPn/7b1GgHWCpg8BVaaHVLlzegSLS+0WSqvQ5rcU4U/
	 TMLixJbD8qAlNKnkI+sf0x3Bgr+QLg7CL8tNuhRL0j5gfOLT8s3OL8XkhxDxHNgAea
	 EpL8C2qOLsHf0TvQKC4IP5vLwuU1gUM8N+VygHYLJdr0eU4CrttxO+S1Z9R5E2hzV7
	 kV05q7+9BgHWUjXPN8cxPpQnpMVdy77FCGH0G5NWuJjqfXvXWV4xzDYlWuwGP4NS75
	 iYe1b32t+gaEv44TPIxp3DKubIBU4mDQ2M01ObhQ/7X4n7WMFCstVvaLE7knVuaqrG
	 eUXdMcyvSB37Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773059463; x=1773319963; i=julian.vetter@vates.tech;
	bh=jYo3ibCaaXE6o3VshQXsD68O/WvKsje9Jyl33S4ybjc=;
	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=MeN2GrZoOwok5InfyDmVIlwaghm/gDenRVb9V4tRw9NzSxVw3+zPu/XURKTAmANOR
	 +va0zwayQHZAsR2i3crmziHqrscnXYw8AS2GorETTl4pI8imarWetI59ADga6S8pcY
	 BkjSrSZg0TAJWSdsfb1VRkYddO6P3Cc/qlIe9jyEWVdgnnRlbr0/VzPBDaKITIBY+A
	 n5wRHkVB3Z/e1AncrJo+ZGEw6tw9N8kItN2IQIhCKbmihBgpXEuvXCshZn8BffNtT1
	 C2F9/KDQr0Lha27aHZPcSIyRMjWfss3iqq04+QHjbasctWoDDGDy83cyrt0cXeTxUD
	 CO+t1xS5/ib8A==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v3=202/7]=20x86/msi:=20Define=20extended=20destination=20ID=20masks=20and=20IO-APIC=20RTE=20fields?=
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: 1773059461979
To: xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Juergen Gross" <jgross@suse.com>, "Julien Grall" <julien@xen.org>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20260309123055.880050-2-julian.vetter@vates.tech>
In-Reply-To: <20260309123055.880050-1-julian.vetter@vates.tech>
References: <20260309123055.880050-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.7632bac910874125b6f28e7074afe0a8?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260309:md
Date: Mon, 09 Mar 2026 12:31:03 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

x2APIC guests with more than 128 vCPUs need destination IDs beyond the
8-bit range provided by the standard MSI address and IO-APIC RTE fields.
The Intel spec allows bits 11:5 of the MSI address and bits 55:49 of the
IO-APIC RTE to carry the high 7 bits of the destination ID when the
platform advertises support, expanding the range to 15 bits total.
Add MSI_ADDR_EXT_DEST_ID_MASK for the extended MSI address bits, and
IO_APIC_REDIR_{DEST,EXT_DEST}_MASK with a VIOAPIC_RTE_DEST() helper to
extract the combined 15-bit destination from an IO-APIC RTE. Extend the
IO-APIC RTE save/restore struct with an ext_dest_id field, and add
XEN_DOMCTL_VMSI_X86_EXT_DEST_ID_MASK plus
XEN_DOMCTL_VMSI_X86_FULL_DEST() to the domctl MSI gflags interface so
callers can pass and extract the full destination ID through the
existing pt_irq_bind path.

Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
---
Changes in V3:
- Addressed comments from Jan
  - Replaced reserved field by generically named reserved2
  - Added proper constants for the shift of the upper bits of the
    MSI/RTE IDs
  - Added reference for the MSI_ADDR_EXT_DEST_ID_MASK
---
 xen/arch/x86/hvm/vioapic.c             |  2 +-
 xen/arch/x86/include/asm/hvm/vioapic.h | 13 +++++++++++++
 xen/arch/x86/include/asm/msi.h         | 10 +++++++++-
 xen/include/public/arch-x86/hvm/save.h |  4 +++-
 xen/include/public/domctl.h            | 18 ++++++++++++------
 5 files changed, 38 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
index b9acdd8af6..d7a4105a57 100644
--- a/xen/arch/x86/hvm/vioapic.c
+++ b/xen/arch/x86/hvm/vioapic.c
@@ -616,7 +616,7 @@ static int cf_check ioapic_check(const struct domain *d, hvm_domain_context_t *h
          */
         if ( e->fields.reserve ||
              e->fields.reserved[0] || e->fields.reserved[1] ||
-             e->fields.reserved[2] || e->fields.reserved[3] )
+             e->fields.reserved[2] || e->fields.reserved2 )
             return -EINVAL;
     }
 
diff --git a/xen/arch/x86/include/asm/hvm/vioapic.h b/xen/arch/x86/include/asm/hvm/vioapic.h
index 68af6dce79..5d7da5a092 100644
--- a/xen/arch/x86/include/asm/hvm/vioapic.h
+++ b/xen/arch/x86/include/asm/hvm/vioapic.h
@@ -32,6 +32,19 @@
 #define VIOAPIC_EDGE_TRIG  0
 #define VIOAPIC_LEVEL_TRIG 1
 
+/*
+ * Extract the destination ID from a 64-bit IO-APIC RTE, including the
+ * extended bits (55:49) used when XEN_HVM_CPUID_EXT_DEST_ID is advertised.
+ */
+#define IO_APIC_REDIR_DEST_MASK         (0xffULL << 56)
+#define IO_APIC_REDIR_EXT_DEST_MASK     (0x7fULL << 49)
+
+#define VIOAPIC_RTE_DEST_ID_UPPER_BITS  8
+#define VIOAPIC_RTE_DEST(rte) \
+    (MASK_EXTR((rte), IO_APIC_REDIR_DEST_MASK) | \
+     (MASK_EXTR((rte), IO_APIC_REDIR_EXT_DEST_MASK) << \
+      VIOAPIC_RTE_DEST_ID_UPPER_BITS))
+
 #define VIOAPIC_DEFAULT_BASE_ADDRESS  0xfec00000U
 #define VIOAPIC_MEM_LENGTH            0x100
 
diff --git a/xen/arch/x86/include/asm/msi.h b/xen/arch/x86/include/asm/msi.h
index 00059d4a3a..8d87d0c10d 100644
--- a/xen/arch/x86/include/asm/msi.h
+++ b/xen/arch/x86/include/asm/msi.h
@@ -51,9 +51,17 @@
 #define MSI_ADDR_REDIRECTION_MASK   (1 << MSI_ADDR_REDIRECTION_SHIFT)
 
 #define MSI_ADDR_DEST_ID_SHIFT		12
-#define	 MSI_ADDR_DEST_ID_MASK		0x00ff000
+#define MSI_ADDR_DEST_ID_UPPER_BITS	8
+#define MSI_ADDR_DEST_ID_MASK		0x00ff000
 #define  MSI_ADDR_DEST_ID(dest)		(((dest) << MSI_ADDR_DEST_ID_SHIFT) & MSI_ADDR_DEST_ID_MASK)
 
+/*
+ * Per the Intel x2APIC specification, in physical destination mode bits 11:5
+ * of the MSI address carry APIC ID bits [14:8] (the "Extended Destination ID"),
+ * extending the addressable range from 8 to 15 bits.
+ */
+#define MSI_ADDR_EXT_DEST_ID_MASK	0x0000fe0
+
 /* MAX fixed pages reserved for mapping MSIX tables. */
 #define FIX_MSIX_MAX_PAGES              512
 
diff --git a/xen/include/public/arch-x86/hvm/save.h b/xen/include/public/arch-x86/hvm/save.h
index 9c4bfc7ebd..483097d940 100644
--- a/xen/include/public/arch-x86/hvm/save.h
+++ b/xen/include/public/arch-x86/hvm/save.h
@@ -359,7 +359,9 @@ union vioapic_redir_entry
         uint8_t trig_mode:1;
         uint8_t mask:1;
         uint8_t reserve:7;
-        uint8_t reserved[4];
+        uint8_t reserved[3];
+        uint8_t reserved2:1;
+        uint8_t ext_dest_id:7;
         uint8_t dest_id;
     } fields;
 };
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 8f6708c0a7..6d425e34ac 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -615,12 +615,14 @@ struct xen_domctl_bind_pt_irq {
         struct {
             uint8_t gvec;
             uint32_t gflags;
-#define XEN_DOMCTL_VMSI_X86_DEST_ID_MASK 0x0000ff
-#define XEN_DOMCTL_VMSI_X86_RH_MASK      0x000100
-#define XEN_DOMCTL_VMSI_X86_DM_MASK      0x000200
-#define XEN_DOMCTL_VMSI_X86_DELIV_MASK   0x007000
-#define XEN_DOMCTL_VMSI_X86_TRIG_MASK    0x008000
-#define XEN_DOMCTL_VMSI_X86_UNMASKED     0x010000
+#define XEN_DOMCTL_VMSI_X86_DEST_ID_MASK        0x0000ff
+#define XEN_DOMCTL_VMSI_X86_DEST_ID_BITS        8
+#define XEN_DOMCTL_VMSI_X86_RH_MASK             0x000100
+#define XEN_DOMCTL_VMSI_X86_DM_MASK             0x000200
+#define XEN_DOMCTL_VMSI_X86_DELIV_MASK          0x007000
+#define XEN_DOMCTL_VMSI_X86_TRIG_MASK           0x008000
+#define XEN_DOMCTL_VMSI_X86_UNMASKED            0x010000
+#define XEN_DOMCTL_VMSI_X86_EXT_DEST_ID_MASK    0xfe0000
 
             uint64_aligned_t gtable;
         } msi;
@@ -630,6 +632,10 @@ struct xen_domctl_bind_pt_irq {
     } u;
 };
 
+#define XEN_DOMCTL_VMSI_X86_FULL_DEST(gflags) \
+        (MASK_EXTR((gflags), XEN_DOMCTL_VMSI_X86_DEST_ID_MASK) | \
+        (MASK_EXTR((gflags), XEN_DOMCTL_VMSI_X86_EXT_DEST_ID_MASK) << \
+         XEN_DOMCTL_VMSI_X86_DEST_ID_BITS))
 
 /* Bind machine I/O address range -> HVM address range. */
 /* XEN_DOMCTL_memory_mapping */
-- 
2.51.0



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 12:31:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 12:31:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249410.1546904 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzZlP-0006Oz-6x; Mon, 09 Mar 2026 12:31:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249410.1546904; Mon, 09 Mar 2026 12:31:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzZlO-0006Mu-V6; Mon, 09 Mar 2026 12:31:10 +0000
Received: by outflank-mailman (input) for mailman id 1249410;
 Mon, 09 Mar 2026 12:31:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1Suo=BJ=bounce.vates.tech=bounce-md_30504962.69aebd88.v1-441784b254ef4839bf5042d28ceb1d2a@srs-se1.protection.inumbo.net>)
 id 1vzZlN-0005Rm-S6
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 12:31:09 +0000
Received: from mail133-21.atl131.mandrillapp.com
 (mail133-21.atl131.mandrillapp.com [198.2.133.21])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d85bf670-1bb3-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 13:31:07 +0100 (CET)
Received: from pmta13.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail133-21.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fTxFN0mS4z1XLF8g
 for <xen-devel@lists.xenproject.org>; Mon,  9 Mar 2026 12:31:04 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 441784b254ef4839bf5042d28ceb1d2a; Mon, 09 Mar 2026 12:31:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d85bf670-1bb3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773059464; x=1773329464;
	bh=yBW+Fz2L+XcrjXyP9HkaoTV/8bPAxt7aYNJZwU0t0XE=;
	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=Xp5sdVjacc8RnFuJfvcwe/ETbTNzpRkkisANXtaG+bzfnCJCTnHgu0a52lBF5xaQm
	 9I6r45bJF7sle0zkAau8V8Qz625BoaABloS3uIVZYlCT2HpAN2ip/w499YIodnudLi
	 pKJg1OOWdw3dsMLn41ltdBg8I27RyAk6QLWisSzIluNlrC9q5iN25+3prPNktHr+/c
	 hiRPu6/qaA2lTVYXFi1XBPfsAAOjYFNQIhWGbcJHRj3mxMI9whVJ41O4IfZZwGY99S
	 og25ajL4U9VNjrnBY9bVnCmypEnWDc3sAh2rosxZM0H0oEYvbamYcZpVGymiuxbsfq
	 390Y1somR984w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773059464; x=1773319964; i=julian.vetter@vates.tech;
	bh=yBW+Fz2L+XcrjXyP9HkaoTV/8bPAxt7aYNJZwU0t0XE=;
	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=K4A7jHYikj0Wkbrr2AKIEeyof7Rq8okhJSvjsk6pwZDMfA3sBluTQdl91wwTm74xK
	 JEhHOxh6IP9/0Eoi0bUduHJRP+2itT4u7+emMqbGGm48BdA6pzJj+gnDetw68ltFfR
	 5gjQInr3qaSTYVRBoM6q9ZeREdvOMvf51a3fkGKEjWKw2ElrHoh5OTbgpy/jJBJdBX
	 rPkQnucPDz8WjCKAt8YTV9sB9i38KecEFMN3xIgHX6w7R3RgejpKEaEXvVEMkv0niP
	 rgi2ixNZS295D20Dst9Whsdw3065WciTgevDdQQvojunNwQj+SCuprzlwoYNXcGl7A
	 NFhcxTqpk7V3Q==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v3=205/7]=20x86/dmop:=20Add=20XEN=5FDMOP=5F{bind,unbind}=5Fpt=5Fmsi=5Firq=20DM=20ops?=
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: 1773059462800
To: xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Juergen Gross" <jgross@suse.com>, "Julien Grall" <julien@xen.org>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20260309123055.880050-5-julian.vetter@vates.tech>
In-Reply-To: <20260309123055.880050-1-julian.vetter@vates.tech>
References: <20260309123055.880050-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.441784b254ef4839bf5042d28ceb1d2a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260309:md
Date: Mon, 09 Mar 2026 12:31:04 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Add two DM ops for MSI passthrough IRQs. These new DM ops take the raw
MSI address and data fields rather than a pre-decoded gflags values. Xen
decodes the destination ID via msi_addr_to_gflags(), including any
extended destination bits in address[11:5]. This means the device model
does not need to understand the extended destination ID encoding, and
simply forwards the MSI address it observes from the guest.

Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
---
Changes in V3:
- New patch addressing feedback from Roger
---
 tools/include/xendevicemodel.h |  37 ++++++++++++
 tools/libs/devicemodel/core.c  |  44 ++++++++++++++
 xen/arch/x86/hvm/dm.c          | 102 +++++++++++++++++++++++++++++++++
 xen/include/public/hvm/dm_op.h |  23 ++++++++
 xen/include/xlat.lst           |   1 +
 5 files changed, 207 insertions(+)

diff --git a/tools/include/xendevicemodel.h b/tools/include/xendevicemodel.h
index 227e7fd810..0d5d7b0ff1 100644
--- a/tools/include/xendevicemodel.h
+++ b/tools/include/xendevicemodel.h
@@ -375,6 +375,43 @@ int xendevicemodel_nr_vcpus(
  */
 int xendevicemodel_restrict(xendevicemodel_handle *dmod, domid_t domid);
 
+/**
+ * This function binds a passthrough physical IRQ to a guest MSI vector
+ * using raw MSI address/data fields. Unlike XEN_DOMCTL_bind_pt_irq,
+ * this interface supports extended (15-bit) destination IDs by having
+ * Xen decode the MSI address internally.
+ *
+ * @parm dmod a handle to an open devicemodel interface.
+ * @parm domid the domain id to be serviced.
+ * @parm machine_irq the physical IRQ number (pirq).
+ * @parm gvec the guest interrupt vector.
+ * @parm msi_addr the MSI address (0xfeexxxxx, includes extended dest ID).
+ * @parm msi_data the MSI data (vector, delivery mode, trigger mode).
+ * @parm gtable the MSI-X table base GFN, or 0 for plain MSI.
+ * @parm unmasked if non-zero, leave the IRQ unmasked after binding.
+ * @return 0 on success, -1 on failure.
+ */
+int xendevicemodel_bind_pt_msi_irq(
+    xendevicemodel_handle *dmod, domid_t domid, uint32_t machine_irq,
+    uint8_t gvec, uint64_t msi_addr, uint32_t msi_data, uint64_t gtable,
+    int unmasked);
+
+/**
+ * This function unbinds a passthrough physical IRQ previously bound
+ * with xendevicemodel_bind_pt_msi_irq.
+ *
+ * @parm dmod a handle to an open devicemodel interface.
+ * @parm domid the domain id to be serviced.
+ * @parm machine_irq the physical IRQ number (pirq).
+ * @parm gvec the guest interrupt vector.
+ * @parm msi_addr the MSI address.
+ * @parm msi_data the MSI data.
+ * @return 0 on success, -1 on failure.
+ */
+int xendevicemodel_unbind_pt_msi_irq(
+    xendevicemodel_handle *dmod, domid_t domid, uint32_t machine_irq,
+    uint8_t gvec, uint64_t msi_addr, uint32_t msi_data);
+
 #endif /* XENDEVICEMODEL_H */
 
 /*
diff --git a/tools/libs/devicemodel/core.c b/tools/libs/devicemodel/core.c
index 8e619eeb0a..4a52fe4750 100644
--- a/tools/libs/devicemodel/core.c
+++ b/tools/libs/devicemodel/core.c
@@ -645,6 +645,50 @@ int xendevicemodel_nr_vcpus(
     return 0;
 }
 
+int xendevicemodel_bind_pt_msi_irq(
+    xendevicemodel_handle *dmod, domid_t domid, uint32_t machine_irq,
+    uint8_t gvec, uint64_t msi_addr, uint32_t msi_data, uint64_t gtable,
+    int unmasked)
+{
+    struct xen_dm_op op;
+    struct xen_dm_op_bind_pt_msi_irq *data;
+
+    memset(&op, 0, sizeof(op));
+
+    op.op = XEN_DMOP_bind_pt_msi_irq;
+    data = &op.u.bind_pt_msi_irq;
+
+    data->machine_irq = machine_irq;
+    data->gvec = gvec;
+    data->data = msi_data;
+    data->addr = msi_addr;
+    data->gtable = gtable;
+    if ( unmasked )
+        data->flags |= XEN_DMOP_MSI_FLAG_UNMASKED;
+
+    return xendevicemodel_op(dmod, domid, 1, &op, sizeof(op));
+}
+
+int xendevicemodel_unbind_pt_msi_irq(
+    xendevicemodel_handle *dmod, domid_t domid, uint32_t machine_irq,
+    uint8_t gvec, uint64_t msi_addr, uint32_t msi_data)
+{
+    struct xen_dm_op op;
+    struct xen_dm_op_bind_pt_msi_irq *data;
+
+    memset(&op, 0, sizeof(op));
+
+    op.op = XEN_DMOP_unbind_pt_msi_irq;
+    data = &op.u.bind_pt_msi_irq;
+
+    data->machine_irq = machine_irq;
+    data->gvec = gvec;
+    data->data = msi_data;
+    data->addr = msi_addr;
+
+    return xendevicemodel_op(dmod, domid, 1, &op, sizeof(op));
+}
+
 int xendevicemodel_restrict(xendevicemodel_handle *dmod, domid_t domid)
 {
     return osdep_xendevicemodel_restrict(dmod, domid);
diff --git a/xen/arch/x86/hvm/dm.c b/xen/arch/x86/hvm/dm.c
index 3b53471af0..3d530d948f 100644
--- a/xen/arch/x86/hvm/dm.c
+++ b/xen/arch/x86/hvm/dm.c
@@ -7,12 +7,15 @@
 #include <xen/guest_access.h>
 #include <xen/dm.h>
 #include <xen/hypercall.h>
+#include <xen/iocap.h>
+#include <xen/iommu.h>
 #include <xen/ioreq.h>
 #include <xen/nospec.h>
 #include <xen/sched.h>
 
 #include <asm/hap.h>
 #include <asm/hvm/cacheattr.h>
+#include <asm/msi.h>
 #include <asm/shadow.h>
 
 #include <xsm/xsm.h>
@@ -322,6 +325,25 @@ static int inject_event(struct domain *d,
     return 0;
 }
 
+static uint32_t msi_addr_to_gflags(uint64_t addr, uint32_t data, bool masked)
+{
+    uint32_t tmp = (uint32_t)addr;
+
+    return MASK_INSR(MASK_EXTR(tmp, MSI_ADDR_DEST_ID_MASK),
+                     XEN_DOMCTL_VMSI_X86_DEST_ID_MASK) |
+           MASK_INSR(MASK_EXTR(tmp, MSI_ADDR_EXT_DEST_ID_MASK),
+                     XEN_DOMCTL_VMSI_X86_EXT_DEST_ID_MASK) |
+           MASK_INSR(MASK_EXTR(tmp, MSI_ADDR_REDIRECTION_MASK),
+                     XEN_DOMCTL_VMSI_X86_RH_MASK) |
+           MASK_INSR(MASK_EXTR(tmp, MSI_ADDR_DESTMODE_MASK),
+                     XEN_DOMCTL_VMSI_X86_DM_MASK) |
+           MASK_INSR(MASK_EXTR(data, MSI_DATA_DELIVERY_MODE_MASK),
+                     XEN_DOMCTL_VMSI_X86_DELIV_MASK) |
+           MASK_INSR(MASK_EXTR(data, MSI_DATA_TRIGGER_MASK),
+                     XEN_DOMCTL_VMSI_X86_TRIG_MASK) |
+           (masked ? 0 : XEN_DOMCTL_VMSI_X86_UNMASKED);
+}
+
 int dm_op(const struct dmop_args *op_args)
 {
     struct domain *d;
@@ -350,6 +372,8 @@ int dm_op(const struct dmop_args *op_args)
         [XEN_DMOP_relocate_memory]                  = sizeof(struct xen_dm_op_relocate_memory),
         [XEN_DMOP_pin_memory_cacheattr]             = sizeof(struct xen_dm_op_pin_memory_cacheattr),
         [XEN_DMOP_nr_vcpus]                         = sizeof(struct xen_dm_op_nr_vcpus),
+        [XEN_DMOP_bind_pt_msi_irq]                  = sizeof(struct xen_dm_op_bind_pt_msi_irq),
+        [XEN_DMOP_unbind_pt_msi_irq]                = sizeof(struct xen_dm_op_bind_pt_msi_irq),
     };
 
     rc = rcu_lock_remote_domain_by_id(op_args->domid, &d);
@@ -607,6 +631,83 @@ int dm_op(const struct dmop_args *op_args)
         break;
     }
 
+    case XEN_DMOP_bind_pt_msi_irq:
+    {
+        const struct xen_dm_op_bind_pt_msi_irq *data =
+            &op.u.bind_pt_msi_irq;
+        struct xen_domctl_bind_pt_irq bind = {
+            .machine_irq = data->machine_irq,
+            .irq_type = PT_IRQ_TYPE_MSI,
+        };
+        int irq;
+
+        rc = -EINVAL;
+        if ( data->pad0 || data->pad1 )
+            break;
+
+        if ( data->flags & ~XEN_DMOP_MSI_FLAG_UNMASKED )
+            break;
+
+        irq = domain_pirq_to_irq(d, bind.machine_irq);
+
+        rc = -EPERM;
+        if ( irq <= 0 || !irq_access_permitted(current->domain, irq) )
+            break;
+
+        bind.u.msi.gvec = data->gvec;
+        bind.u.msi.gflags =
+            msi_addr_to_gflags(data->addr, data->data,
+                               !(data->flags & XEN_DMOP_MSI_FLAG_UNMASKED));
+        bind.u.msi.gtable = data->gtable;
+
+        rc = -ESRCH;
+        if ( is_iommu_enabled(d) )
+        {
+            pcidevs_lock();
+            rc = pt_irq_create_bind(d, &bind);
+            pcidevs_unlock();
+        }
+        if ( rc < 0 )
+            printk(XENLOG_G_ERR
+                   "pt_irq_create_bind failed (%ld) for dom%d\n",
+                   rc, d->domain_id);
+        break;
+    }
+
+    case XEN_DMOP_unbind_pt_msi_irq:
+    {
+        const struct xen_dm_op_bind_pt_msi_irq *data =
+            &op.u.bind_pt_msi_irq;
+        struct xen_domctl_bind_pt_irq bind = {
+            .machine_irq = data->machine_irq,
+            .irq_type = PT_IRQ_TYPE_MSI,
+        };
+        int irq;
+
+        rc = -EINVAL;
+        if ( data->pad0 || data->pad1 )
+            break;
+
+        irq = domain_pirq_to_irq(d, bind.machine_irq);
+
+        rc = -EPERM;
+        if ( irq <= 0 || !irq_access_permitted(current->domain, irq) )
+            break;
+
+        rc = -ESRCH;
+        if ( is_iommu_enabled(d) )
+        {
+            pcidevs_lock();
+            rc = pt_irq_destroy_bind(d, &bind);
+            pcidevs_unlock();
+        }
+        if ( rc < 0 )
+            printk(XENLOG_G_ERR
+                   "pt_irq_destroy_bind failed (%ld) for dom%d\n",
+                   rc, d->domain_id);
+        break;
+    }
+
     default:
         rc = ioreq_server_dm_op(&op, d, &const_op);
         break;
@@ -643,6 +744,7 @@ CHECK_dm_op_remote_shutdown;
 CHECK_dm_op_relocate_memory;
 CHECK_dm_op_pin_memory_cacheattr;
 CHECK_dm_op_nr_vcpus;
+CHECK_dm_op_bind_pt_msi_irq;
 
 int compat_dm_op(
     domid_t domid, unsigned int nr_bufs, XEN_GUEST_HANDLE_PARAM(void) bufs)
diff --git a/xen/include/public/hvm/dm_op.h b/xen/include/public/hvm/dm_op.h
index 2bf0fdc1ae..fd0f3a6a99 100644
--- a/xen/include/public/hvm/dm_op.h
+++ b/xen/include/public/hvm/dm_op.h
@@ -444,6 +444,28 @@ struct xen_dm_op_nr_vcpus {
 };
 typedef struct xen_dm_op_nr_vcpus xen_dm_op_nr_vcpus_t;
 
+#define XEN_DMOP_bind_pt_msi_irq   21
+#define XEN_DMOP_unbind_pt_msi_irq 22
+
+struct xen_dm_op_bind_pt_msi_irq {
+    /* IN - physical IRQ (pirq) */
+    uint32_t machine_irq;
+    /* IN - guest vector */
+    uint8_t  gvec;
+    uint8_t  pad0;
+    uint16_t pad1;
+    /* IN - MSI data (vector, delivery, trigger) */
+    uint32_t data;
+    /* IN - flags */
+    uint32_t flags;
+#define XEN_DMOP_MSI_FLAG_UNMASKED (1u << 0)
+    /* IN - MSI address (0xfeexxxxx, includes ext dest) */
+    uint64_aligned_t addr;
+    /* IN - MSI-X table base GFN, 0 for MSI */
+    uint64_aligned_t gtable;
+};
+typedef struct xen_dm_op_bind_pt_msi_irq xen_dm_op_bind_pt_msi_irq_t;
+
 struct xen_dm_op {
     uint32_t op;
     uint32_t pad;
@@ -468,6 +490,7 @@ struct xen_dm_op {
         xen_dm_op_relocate_memory_t relocate_memory;
         xen_dm_op_pin_memory_cacheattr_t pin_memory_cacheattr;
         xen_dm_op_nr_vcpus_t nr_vcpus;
+        xen_dm_op_bind_pt_msi_irq_t bind_pt_msi_irq;
     } u;
 };
 
diff --git a/xen/include/xlat.lst b/xen/include/xlat.lst
index 9d08dcc4bb..9236394786 100644
--- a/xen/include/xlat.lst
+++ b/xen/include/xlat.lst
@@ -107,6 +107,7 @@
 ?	dm_op_map_mem_type_to_ioreq_server hvm/dm_op.h
 ?	dm_op_modified_memory		hvm/dm_op.h
 ?	dm_op_nr_vcpus			hvm/dm_op.h
+?	dm_op_bind_pt_msi_irq		hvm/dm_op.h
 ?	dm_op_pin_memory_cacheattr	hvm/dm_op.h
 ?	dm_op_relocate_memory		hvm/dm_op.h
 ?	dm_op_remote_shutdown		hvm/dm_op.h
-- 
2.51.0



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 12:31:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 12:31:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249409.1546898 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzZlO-0006He-LX; Mon, 09 Mar 2026 12:31:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249409.1546898; Mon, 09 Mar 2026 12:31: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 1vzZlO-0006HW-HV; Mon, 09 Mar 2026 12:31:10 +0000
Received: by outflank-mailman (input) for mailman id 1249409;
 Mon, 09 Mar 2026 12:31: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=/VG/=BJ=bounce.vates.tech=bounce-md_30504962.69aebd87.v1-18a1a1d1df8149379ba464e21f873ad8@srs-se1.protection.inumbo.net>)
 id 1vzZlM-0005Rm-Rz
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 12:31:08 +0000
Received: from mail133-21.atl131.mandrillapp.com
 (mail133-21.atl131.mandrillapp.com [198.2.133.21])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d7b9d31f-1bb3-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 13:31:06 +0100 (CET)
Received: from pmta13.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail133-21.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fTxFM3ypbz1XLF7l
 for <xen-devel@lists.xenproject.org>; Mon,  9 Mar 2026 12:31:03 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 18a1a1d1df8149379ba464e21f873ad8; Mon, 09 Mar 2026 12:31: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: d7b9d31f-1bb3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773059463; x=1773329463;
	bh=Mx7xiEpCf87KqJdZ5mo3DMQmHNKXahVe5TvPx89UTcQ=;
	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=q4fxtnhuffHtZoXaXfGXNRFa+aF9DMczP4kP9e0mvKQY803coNgRiq0HdwZQpSZUJ
	 I2+6JYiuEN5FW9kcHAYlrCaJXmD7TrlzpiNxlIY5FiBgb3SC5i1v9wPrRmywMsoIeM
	 mOUrNcE+xUDqj7jBDcGOf/aeQMtS25pxgbre0yzIULd6JfMUBVKTJmir4730lVEuAs
	 L7q+A7SjSnO72FmBsQqNG+0Hnp0SbHEk7v+9OmcjaJQ7HevaGSoOLAPkUqAFTw7F5R
	 V/3hNxH6sZkzMhBBU+6Xv2GaMikQmKES924VsOJh3R2wkIrLIKqtnsc/mbMaNNI38R
	 +znp5tfH+de/g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773059463; x=1773319963; i=julian.vetter@vates.tech;
	bh=Mx7xiEpCf87KqJdZ5mo3DMQmHNKXahVe5TvPx89UTcQ=;
	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=QwXrRM0B4KQ7VTIFOhOnI/cKO8u9el1Gi4Qp67yPPSq89B7vmTGRM1UJ6oybNkGiP
	 aon7NlViXYTsPa5JbUEsz7PaKx8jY3Gpyhh+A/41ABgbsBzfUiVxqgD6XapRBupUiV
	 xLglYlL7EkOrJO/SlYMxEcZVkDqQyrM87z+sgZZ4ooxZgAasZCdX4XK9XpzYsFbNKm
	 oz64x5R8FyU9iKMqQKcIzNelqkjnVsn9UeVO8X2waE7UEUOjAWzov7JrZ/68biSF/U
	 SRLm2S+jmmMKuAzCzeYigfGk578/Yzq1cHxKdO+5zwKKV1PW5GV0S0oY+F8Ksh3SU4
	 Xm5g8a5RVbhmQ==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v3=203/7]=20x86/hvm:=20Support=20extended=20destination=20IDs=20in=20virtual=20MSI=20and=20IO-APIC?=
X-Mailer: git-send-email 2.51.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773059462248
To: xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Juergen Gross" <jgross@suse.com>, "Julien Grall" <julien@xen.org>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20260309123055.880050-3-julian.vetter@vates.tech>
In-Reply-To: <20260309123055.880050-1-julian.vetter@vates.tech>
References: <20260309123055.880050-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.18a1a1d1df8149379ba464e21f873ad8?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260309:md
Date: Mon, 09 Mar 2026 12:31:03 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Use the newly defined masks to extract the full 15-bit destination ID
from guest MSI addresses and IO-APIC RTEs. In hvm_inject_msi() combine
the standard bits [19:12] with the extended bits [11:5] of the MSI
address into a 15-bit destination ID for LAPIC delivery. Increase the
dest parameter of vmsi_deliver() and hvm_girq_dest_2_vcpu_id() from
uint8_t to uint32_t. In vmsi_deliver_pirq() extract the full destination
from gflags via XEN_DOMCTL_VMSI_X86_FULL_DEST(). In msi_gflags() pack
the extended bits from the MSI address into the new
XEN_DOMCTL_VMSI_X86_EXT_DEST_ID_MASK field of gflags. In
vioapic_deliver() read the combined 15-bit destination using the
VIOAPIC_RTE_DEST() macro. Extend ioapic_check() to check for extended
destination bits set in a domain that does not advertise
XEN_HVM_CPUID_EXT_DEST_ID and refuse to restore the IO-APIC state,
preventing silent interrupt misrouting after live migration.

Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
---
Changes in V3:
- Added additional check to the vioapic_check that makes sure that the
  extended bits are not set for domains that don't support it
- Addressed comments from Jan -> Replaced all constants by a proper define
---
 xen/arch/x86/hvm/irq.c             | 11 ++++++++++-
 xen/arch/x86/hvm/vioapic.c         | 21 +++++++++++++++++++--
 xen/arch/x86/hvm/vmsi.c            |  8 +++++---
 xen/arch/x86/include/asm/hvm/hvm.h |  4 ++--
 4 files changed, 36 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/hvm/irq.c b/xen/arch/x86/hvm/irq.c
index 5f64361113..b520fc1150 100644
--- a/xen/arch/x86/hvm/irq.c
+++ b/xen/arch/x86/hvm/irq.c
@@ -374,7 +374,16 @@ int hvm_set_pci_link_route(struct domain *d, u8 link, u8 isa_irq)
 int hvm_inject_msi(struct domain *d, uint64_t addr, uint32_t data)
 {
     uint32_t tmp = (uint32_t) addr;
-    uint8_t  dest = (tmp & MSI_ADDR_DEST_ID_MASK) >> MSI_ADDR_DEST_ID_SHIFT;
+    /*
+     * Standard MSI destination address bits 19:12 (8 bits).
+     * Extended MSI destination address bits 11:5 (7 more bits).
+     *
+     * As XEN_HVM_CPUID_EXT_DEST_ID is advertised, the guest may use bits 11:5
+     * for high destination ID bits, expanding to 15 bits total. Guests unaware
+     * of this feature set these bits to 0, so this is backwards-compatible.
+     */
+    uint32_t dest = (MASK_EXTR(tmp, MSI_ADDR_EXT_DEST_ID_MASK) << MSI_ADDR_DEST_ID_BITS) |
+                     MASK_EXTR(tmp, MSI_ADDR_DEST_ID_MASK);
     uint8_t  dest_mode = !!(tmp & MSI_ADDR_DESTMODE_MASK);
     uint8_t  delivery_mode = (data & MSI_DATA_DELIVERY_MODE_MASK)
         >> MSI_DATA_DELIVERY_MODE_SHIFT;
diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
index d7a4105a57..9602572dc4 100644
--- a/xen/arch/x86/hvm/vioapic.c
+++ b/xen/arch/x86/hvm/vioapic.c
@@ -411,7 +411,9 @@ static void ioapic_inj_irq(
 
 static void vioapic_deliver(struct hvm_vioapic *vioapic, unsigned int pin)
 {
-    uint16_t dest = vioapic->redirtbl[pin].fields.dest_id;
+    uint32_t dest = ((uint32_t)vioapic->redirtbl[pin].fields.ext_dest_id <<
+                     VIOAPIC_RTE_DEST_ID_UPPER_BITS) |
+                    vioapic->redirtbl[pin].fields.dest_id;
     uint8_t dest_mode = vioapic->redirtbl[pin].fields.dest_mode;
     uint8_t delivery_mode = vioapic->redirtbl[pin].fields.delivery_mode;
     uint8_t vector = vioapic->redirtbl[pin].fields.vector;
@@ -618,6 +620,21 @@ static int cf_check ioapic_check(const struct domain *d, hvm_domain_context_t *h
              e->fields.reserved[0] || e->fields.reserved[1] ||
              e->fields.reserved[2] || e->fields.reserved2 )
             return -EINVAL;
+
+        /*
+         * An RTE in the saved state has ext_dest_id bits set. Check that
+         * the destination Xen has extended destination ID support enabled,
+         * otherwise interrupt routing to APIC IDs > 255 would be broken
+         * after restore.
+         */
+        if ( e->fields.ext_dest_id && !d->arch.hvm.ext_dest_id_enabled )
+        {
+            printk(XENLOG_G_ERR "HVM restore: %pd IO-APIC RTE %u has "
+                                "extended destination ID bits set but "
+                                "XEN_HVM_CPUID_EXT_DEST_ID is not enabled\n",
+                                d, i);
+            return -EINVAL;
+        }
     }
 
     return 0;
@@ -659,7 +676,7 @@ static int cf_check ioapic_load(struct domain *d, hvm_domain_context_t *h)
     return 0;
 }
 
-HVM_REGISTER_SAVE_RESTORE(IOAPIC, ioapic_save, NULL, ioapic_load, 1,
+HVM_REGISTER_SAVE_RESTORE(IOAPIC, ioapic_save, ioapic_check, ioapic_load, 1,
                           HVMSR_PER_DOM);
 
 void vioapic_reset(struct domain *d)
diff --git a/xen/arch/x86/hvm/vmsi.c b/xen/arch/x86/hvm/vmsi.c
index 27b1f089e2..36ea898ac7 100644
--- a/xen/arch/x86/hvm/vmsi.c
+++ b/xen/arch/x86/hvm/vmsi.c
@@ -66,7 +66,7 @@ static void vmsi_inj_irq(
 
 int vmsi_deliver(
     struct domain *d, int vector,
-    uint8_t dest, uint8_t dest_mode,
+    uint32_t dest, uint8_t dest_mode,
     uint8_t delivery_mode, uint8_t trig_mode)
 {
     struct vlapic *target;
@@ -109,7 +109,7 @@ void vmsi_deliver_pirq(struct domain *d, const struct hvm_pirq_dpci *pirq_dpci)
 {
     uint32_t flags = pirq_dpci->gmsi.gflags;
     int vector = pirq_dpci->gmsi.gvec;
-    uint8_t dest = (uint8_t)flags;
+    uint32_t dest = XEN_DOMCTL_VMSI_X86_FULL_DEST(flags);
     bool dest_mode = flags & XEN_DOMCTL_VMSI_X86_DM_MASK;
     uint8_t delivery_mode = MASK_EXTR(flags, XEN_DOMCTL_VMSI_X86_DELIV_MASK);
     bool trig_mode = flags & XEN_DOMCTL_VMSI_X86_TRIG_MASK;
@@ -125,7 +125,7 @@ void vmsi_deliver_pirq(struct domain *d, const struct hvm_pirq_dpci *pirq_dpci)
 }
 
 /* Return value, -1 : multi-dests, non-negative value: dest_vcpu_id */
-int hvm_girq_dest_2_vcpu_id(struct domain *d, uint8_t dest, uint8_t dest_mode)
+int hvm_girq_dest_2_vcpu_id(struct domain *d, uint32_t dest, uint8_t dest_mode)
 {
     int dest_vcpu_id = -1, w = 0;
     struct vcpu *v;
@@ -802,6 +802,8 @@ static unsigned int msi_gflags(uint16_t data, uint64_t addr, bool masked)
      */
     return MASK_INSR(MASK_EXTR(addr, MSI_ADDR_DEST_ID_MASK),
                      XEN_DOMCTL_VMSI_X86_DEST_ID_MASK) |
+           MASK_INSR(MASK_EXTR(addr, MSI_ADDR_EXT_DEST_ID_MASK),
+                     XEN_DOMCTL_VMSI_X86_EXT_DEST_ID_MASK) |
            MASK_INSR(MASK_EXTR(addr, MSI_ADDR_REDIRECTION_MASK),
                      XEN_DOMCTL_VMSI_X86_RH_MASK) |
            MASK_INSR(MASK_EXTR(addr, MSI_ADDR_DESTMODE_MASK),
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index 7d9774df59..11256d5e67 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -295,11 +295,11 @@ uint64_t hvm_get_guest_time_fixed(const struct vcpu *v, uint64_t at_tsc);
 
 int vmsi_deliver(
     struct domain *d, int vector,
-    uint8_t dest, uint8_t dest_mode,
+    uint32_t dest, uint8_t dest_mode,
     uint8_t delivery_mode, uint8_t trig_mode);
 struct hvm_pirq_dpci;
 void vmsi_deliver_pirq(struct domain *d, const struct hvm_pirq_dpci *pirq_dpci);
-int hvm_girq_dest_2_vcpu_id(struct domain *d, uint8_t dest, uint8_t dest_mode);
+int hvm_girq_dest_2_vcpu_id(struct domain *d, uint32_t dest, uint8_t dest_mode);
 
 enum hvm_intblk
 hvm_interrupt_blocked(struct vcpu *v, struct hvm_intack intack);
-- 
2.51.0



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 12:31:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 12:31:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249408.1546881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzZlN-0005kz-EF; Mon, 09 Mar 2026 12:31:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249408.1546881; Mon, 09 Mar 2026 12: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 1vzZlN-0005iM-7c; Mon, 09 Mar 2026 12:31:09 +0000
Received: by outflank-mailman (input) for mailman id 1249408;
 Mon, 09 Mar 2026 12:31: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=S8hQ=BJ=bounce.vates.tech=bounce-md_30504962.69aebd87.v1-032a1be8fa454067a55673a79402ae81@srs-se1.protection.inumbo.net>)
 id 1vzZlL-0005Rm-Rt
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 12:31:07 +0000
Received: from mail132-19.atl131.mandrillapp.com
 (mail132-19.atl131.mandrillapp.com [198.2.132.19])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d6d7e0fc-1bb3-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 13:31:05 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-19.atl131.mandrillapp.com (Mailchimp) with ESMTP id 4fTxFM5n8nz38S
 for <xen-devel@lists.xenproject.org>; Mon,  9 Mar 2026 12:31:03 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 032a1be8fa454067a55673a79402ae81; Mon, 09 Mar 2026 12:31: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: d6d7e0fc-1bb3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773059463; x=1773329463;
	bh=I8BSfceyMGDNtjYI3I25tiqYMa8WyFnZJjroIloiPck=;
	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=N3Nmv77Jl5i5MvG8JhByUKf2yn8GJwFJ+NhVaZ03LuU15bHhn0cdXq+IV9UuBgmNw
	 TlKV13ESA04obF1pkFU+wTZnw5nkqyMJD4eBv8iZ9rXqvy836iZ4zhWWlgln+b6oyC
	 5KGpte28suw+5Pt9jkNS5g8n4y7bG1k38yeJhlj0PCs3iG7yDA+uPiJiSDmgb+e55T
	 ByFCgJJnGVM1tqIPGaEsUskPVcgKDmduSF1LDEYB2e3d0KdQkcvGvNXWHUtAo4S0kA
	 J7jE/MmnGasuut8uWHuIg6760MjGfnTW3y2j78yp9xkt9oBqHC+qaeme7h9TaQGxEz
	 Oe9PcKMQhdO9g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773059463; x=1773319963; i=julian.vetter@vates.tech;
	bh=I8BSfceyMGDNtjYI3I25tiqYMa8WyFnZJjroIloiPck=;
	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=GfgUDR6hb/VtLN1mNSdipyZVxtJ8oGhRwQTayso00UGGCk6umpwiTe5LZIHMHoyp0
	 NfE+bYJSItrDRqyu8pnOJXG27s/8+3vm0dssXX2ESxQFVvjucIJfMppMH77Byz9R1/
	 wDrPU7/fElu9tn+gccoJoPJJ2PoUBeUxHDb8IRj1RfYLLCFk5P2lbts/Ck9spqYKiI
	 EkRyY1eXL7suuyt6bqUbOH1/FPftR8OaIebEp61NA/yXlVGBoENpoYc2H22SY3ufQy
	 4BMF3GNQrl7FC6cAEJP6tixZ8bnxFx0NLk2AZFwsbW25TzQw/qVIIJ4ZDOpmqv2zsl
	 A0oB3TB8rHvIQ==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v3=204/7]=20x86/passthrough:=20Use=20extended=20destination=20ID=20in=20PT=20MSI=20bind/unbind?=
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: 1773059462530
To: xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Juergen Gross" <jgross@suse.com>, "Julien Grall" <julien@xen.org>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20260309123055.880050-4-julian.vetter@vates.tech>
In-Reply-To: <20260309123055.880050-1-julian.vetter@vates.tech>
References: <20260309123055.880050-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.032a1be8fa454067a55673a79402ae81?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260309:md
Date: Mon, 09 Mar 2026 12:31:03 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

In pt_irq_create_bind() and _hvm_dpci_msi_eoi() replace the bare
MASK_EXTR(..., XEN_DOMCTL_VMSI_X86_DEST_ID_MASK) calls with
XEN_DOMCTL_VMSI_X86_FULL_DEST() so that the high 7 destination ID bits
stored in XEN_DOMCTL_VMSI_X86_EXT_DEST_ID_MASK are included when
computing the target vCPU for MSI passthrough IRQs. Increase the local
dest and delivery_mode variables to uint32_t to match.

Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
---
Changes in V3:
- New patch, but no changes to previous patchset
---
 xen/drivers/passthrough/x86/hvm.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/xen/drivers/passthrough/x86/hvm.c b/xen/drivers/passthrough/x86/hvm.c
index b73bb55055..9c3c8d28d6 100644
--- a/xen/drivers/passthrough/x86/hvm.c
+++ b/xen/drivers/passthrough/x86/hvm.c
@@ -281,7 +281,7 @@ int pt_irq_create_bind(
     {
     case PT_IRQ_TYPE_MSI:
     {
-        uint8_t dest, delivery_mode;
+        uint32_t dest, delivery_mode;
         bool dest_mode;
         int dest_vcpu_id;
         const struct vcpu *vcpu;
@@ -357,8 +357,7 @@ int pt_irq_create_bind(
             }
         }
         /* Calculate dest_vcpu_id for MSI-type pirq migration. */
-        dest = MASK_EXTR(pirq_dpci->gmsi.gflags,
-                         XEN_DOMCTL_VMSI_X86_DEST_ID_MASK);
+        dest = XEN_DOMCTL_VMSI_X86_FULL_DEST(pirq_dpci->gmsi.gflags);
         dest_mode = pirq_dpci->gmsi.gflags & XEN_DOMCTL_VMSI_X86_DM_MASK;
         delivery_mode = MASK_EXTR(pirq_dpci->gmsi.gflags,
                                   XEN_DOMCTL_VMSI_X86_DELIV_MASK);
@@ -807,8 +806,7 @@ static int cf_check _hvm_dpci_msi_eoi(
     if ( (pirq_dpci->flags & HVM_IRQ_DPCI_MACH_MSI) &&
          (pirq_dpci->gmsi.gvec == vector) )
     {
-        unsigned int dest = MASK_EXTR(pirq_dpci->gmsi.gflags,
-                                      XEN_DOMCTL_VMSI_X86_DEST_ID_MASK);
+        unsigned int dest = XEN_DOMCTL_VMSI_X86_FULL_DEST(pirq_dpci->gmsi.gflags);
         bool dest_mode = pirq_dpci->gmsi.gflags & XEN_DOMCTL_VMSI_X86_DM_MASK;
 
         if ( vlapic_match_dest(vcpu_vlapic(current), NULL, 0, dest,
-- 
2.51.0



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 12:31:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 12:31:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249405.1546863 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzZlM-0005S9-DL; Mon, 09 Mar 2026 12:31:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249405.1546863; Mon, 09 Mar 2026 12:31:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzZlM-0005S2-A1; Mon, 09 Mar 2026 12:31:08 +0000
Received: by outflank-mailman (input) for mailman id 1249405;
 Mon, 09 Mar 2026 12:31: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=XX/Q=BJ=bounce.vates.tech=bounce-md_30504962.69aebd86.v1-5eefd4314b3e45ecbcba532335bdac2c@srs-se1.protection.inumbo.net>)
 id 1vzZlK-0005Rg-C0
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 12:31:06 +0000
Received: from mail133-21.atl131.mandrillapp.com
 (mail133-21.atl131.mandrillapp.com [198.2.133.21])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d65fa84b-1bb3-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 13:31:04 +0100 (CET)
Received: from pmta13.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail133-21.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fTxFL73SNz1XLF70
 for <xen-devel@lists.xenproject.org>; Mon,  9 Mar 2026 12:31:02 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 5eefd4314b3e45ecbcba532335bdac2c; Mon, 09 Mar 2026 12:31: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: d65fa84b-1bb3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773059463; x=1773329463;
	bh=LPUSRZy9qbQfIjlYcjFoK4c3M47t8H8Qjn7lVPwxHIc=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=IlK72gfVVI0bjEt0VlLAGDMNP0Ak+ZFY1zcNbV9VvcZpV0PDto5Sb8wQ9txK7om6d
	 Uu6jfuuqF/rM99GlgGJExbilrzM3L5DTRQ/0nFW6ADUilgB/jf8BDwPYT2wik8oan9
	 Qzaix2tre1Nwe5CjjfoF5qpvD6D9JAfSFaR4zNJ2LXScWjvGi5j/ghveRVNQbEx5VY
	 XU8BQ5pgZ9/9YxO6ERNWKRUJ8vJ3D/SxRFxLnQBFIOQQHkYKNLbKFL9FCCWo9xRjs2
	 MxSxO5mc+cXAZa5eG40cFias3JOxA98rYEo1Ky3Wy4ohDeX5mLTKUSTpGwYop+QKiY
	 fg6OwyOEtQWgA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773059463; x=1773319963; i=julian.vetter@vates.tech;
	bh=LPUSRZy9qbQfIjlYcjFoK4c3M47t8H8Qjn7lVPwxHIc=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=t7VofPXt+WCaTpPamHs+teK68iMvC1j5UYKHBUnZOo65YBWj5wLgE0Wyj+srdDxIq
	 WrKJiwRUv48qHBMgE7Vzmq/F2v34yAh9UmMK4F7yg8GyJexWoop44ud2W18JZDVD3c
	 AsGL1Sc+0920gsHYq2BEClHipC0lod0cn+VSjT4bSXLLUb3zf+f9ICbCc2I6J6rGB9
	 0GJP2wkqFNJm38YjeYF19mT770BRjPbPdL0G1lXNbFjwiR+Xbk9mpcZM1vlx1PAXo5
	 RP38njTYdJIdu17BW8Sj/XODekSh16Vn51JBt0dVnrLSPnIJYP8vVw59VTGTd8dO4O
	 ZWNuQBmKszp5g==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v3=201/7]=20x86/vioapic:=20Add=20ioapic=5Fcheck()=20to=20validate=20IO-APIC=20state=20before=20restore?=
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: 1773059461627
To: xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Juergen Gross" <jgross@suse.com>, "Julien Grall" <julien@xen.org>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20260309123055.880050-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.5eefd4314b3e45ecbcba532335bdac2c?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260309:md
Date: Mon, 09 Mar 2026 12:31:02 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Register a check callback for the IOAPIC HVM save/restore entry,
following the pattern established by vpic_check() for the virtual PIC.
The function first verifies the target domain actually has a virtual
IO-APIC, returning -ENODEV otherwise. It then iterates all redirection
table entries and rejects any saved state where reserved bit fields are
non-zero, ensuring the state being loaded, represents actually reachable
hardware state before the restore is committed.

Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
---
Changes in V3:
- As suggested by Jan, added new patch that does a generic check of the
  vIOAPIC state before migration
---
 xen/arch/x86/hvm/vioapic.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
index 7c725f9e47..b9acdd8af6 100644
--- a/xen/arch/x86/hvm/vioapic.c
+++ b/xen/arch/x86/hvm/vioapic.c
@@ -594,6 +594,35 @@ int vioapic_get_trigger_mode(const struct domain *d, unsigned int gsi)
     return vioapic->redirtbl[pin].fields.trig_mode;
 }
 
+static int cf_check ioapic_check(const struct domain *d, hvm_domain_context_t *h)
+{
+    const HVM_SAVE_TYPE(IOAPIC) *s;
+    unsigned int i;
+
+    if ( !has_vioapic(d) )
+        return -ENODEV;
+
+    s = hvm_get_entry(IOAPIC, h);
+    if ( !s )
+        return -ENODATA;
+
+    for ( i = 0; i < ARRAY_SIZE(s->redirtbl); i++ )
+    {
+        const union vioapic_redir_entry *e = &s->redirtbl[i];
+
+        /*
+         * Check to-be-loaded values are within valid range, for them to
+         * represent actually reachable state.
+         */
+        if ( e->fields.reserve ||
+             e->fields.reserved[0] || e->fields.reserved[1] ||
+             e->fields.reserved[2] || e->fields.reserved[3] )
+            return -EINVAL;
+    }
+
+    return 0;
+}
+
 static int cf_check ioapic_save(struct vcpu *v, hvm_domain_context_t *h)
 {
     const struct domain *d = v->domain;
-- 
2.51.0



--
 | Vates

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 12:31:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 12:31:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249406.1546867 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzZlM-0005VH-Lp; Mon, 09 Mar 2026 12:31:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249406.1546867; Mon, 09 Mar 2026 12:31:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzZlM-0005V8-HP; Mon, 09 Mar 2026 12:31:08 +0000
Received: by outflank-mailman (input) for mailman id 1249406;
 Mon, 09 Mar 2026 12:31: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=DTqT=BJ=bounce.vates.tech=bounce-md_30504962.69aebd88.v1-d8fdfcace5ef4539a0100fc8b528ea67@srs-se1.protection.inumbo.net>)
 id 1vzZlL-0005Rg-08
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 12:31:07 +0000
Received: from mail132-19.atl131.mandrillapp.com
 (mail132-19.atl131.mandrillapp.com [198.2.132.19])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d741b392-1bb3-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 13:31:05 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-19.atl131.mandrillapp.com (Mailchimp) with ESMTP id 4fTxFN4WnPz3XY
 for <xen-devel@lists.xenproject.org>; Mon,  9 Mar 2026 12:31:04 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d8fdfcace5ef4539a0100fc8b528ea67; Mon, 09 Mar 2026 12:31:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d741b392-1bb3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773059464; x=1773329464;
	bh=8FwzySD+VeRkqwNwwXfc+WPkvCmclVAnI84/IjWUKr8=;
	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=DayO3pkTxMSxj2crN/XuedBvQAcLuCPvhClPTG8WAfDUCtOGC/0Uhs3lQULL2ALCk
	 nCo+5jUp8tdPdIgDkhJjlIk8jZS6GZNo8mptT+rSsgh8r1pG77NMw+/5/dmqdmYjLH
	 5epSZ6OYkbLMkW+ecNLu17v/etX31oB5QZTFWvPk/AHUI+Ywdy8hZHyD5NvAexgZGX
	 KtVV6KB0SgnkN40ah7ZP4+RCo5Lilyr6JEHC8Mo09zkDkymRWYoaq58TANQy/Q+gxp
	 YT98rVTFJPhpx/NF05GzpE8bxjCkG4UrURO2Jl6vt+PCNpQKMWQBrfCV6YWJ7m0mcY
	 ydm0h/nfB6HuQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773059464; x=1773319964; i=julian.vetter@vates.tech;
	bh=8FwzySD+VeRkqwNwwXfc+WPkvCmclVAnI84/IjWUKr8=;
	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=HyiVpcp/2a1swNSndKKpodpq10hyD8LvqiN9/+/aa3P5tC9zEKyubtXVn7vOUj02F
	 oWNxLjQmYVaaXIiEdR6oMgpqbIkRzvDX18Cnlsw2rnsHuk2ihC0GgrGxOmhT1YIKuv
	 gmSVSkY3MOa1q7ON6mvhpRw2CT3z5//jcS9kGMYUQ3uR9ccDtQWBt7nXVLOY9a+DFu
	 lXijYXiQoJWTRWKIxmZZ0JBEz1/BcH5xtGE3pfJEmxUEckhoVwZZYqSHKN7EmLctbe
	 Fcej+8YS4Wx+61MI/SzjGdJTTVHOE3krefmTjZhYk1QI/nulZ5lFUfqafzbI3NsMRa
	 rhWYvAnhEl+Cg==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v3=207/7]=20x86/cpuid:=20Advertise=20XEN=5FHVM=5FCPUID=5FEXT=5FDEST=5FID=20when=20device=20model=20opts=20in?=
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: 1773059463359
To: xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Juergen Gross" <jgross@suse.com>, "Julien Grall" <julien@xen.org>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20260309123055.880050-7-julian.vetter@vates.tech>
In-Reply-To: <20260309123055.880050-1-julian.vetter@vates.tech>
References: <20260309123055.880050-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.d8fdfcace5ef4539a0100fc8b528ea67?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260309:md
Date: Mon, 09 Mar 2026 12:31:04 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Set the XEN_HVM_CPUID_EXT_DEST_ID bit in the HVM hypervisor CPUID leaf
only when the device model has called XEN_DMOP_enable_ext_dest_id,
signalling it will use XEN_DMOP_bind_pt_msi_irq for passthrough MSIs.
This guarantees that Xen will decode the extended destination bits from
the raw MSI address internally, so the device model does not need to
understand the encoding itself. This ensures that an old device model
that still uses XEN_DOMCTL_bind_pt_irq will not trigger extended ID
usage in the guest, preserving backwards compatibility. However a device
model that calls XEN_DMOP_enable_ext_dest_id then has to use
XEN_DMOP_{bind,unbind}_pt_msi_irq, and enables support for x2APIC
destination IDs above 255.

Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
---
Changes in V3:
- Addressed feedback from Jan and Roger -> Don't advertise the
  XEN_HVM_CPUID_EXT_DEST_ID unconditionally
---
 xen/arch/x86/cpuid.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
index 5decfad8cd..c1f82f83ea 100644
--- a/xen/arch/x86/cpuid.c
+++ b/xen/arch/x86/cpuid.c
@@ -148,6 +148,18 @@ static void cpuid_hypervisor_leaves(const struct vcpu *v, uint32_t leaf,
         res->a |= XEN_HVM_CPUID_DOMID_PRESENT;
         res->c = d->domain_id;
 
+        /*
+         * Advertise extended destination ID support only when the device model
+         * has opted in via XEN_DMOP_enable_ext_dest_id, making sure it will
+         * use XEN_DMOP_bind_pt_msi_irq for passthrough MSI (passing raw
+         * addr/data so Xen can decode extended bits). This allows guests to
+         * use bits 11:5 of the MSI address and bits 55:49 of the IO-APIC RTE
+         * for additional destination ID bits, expanding the addressable APIC
+         * ID range from 8 to 15 bits.
+         */
+        if ( d->arch.hvm.ext_dest_id_enabled )
+            res->a |= XEN_HVM_CPUID_EXT_DEST_ID;
+
         /*
          * Per-vCPU event channel upcalls are implemented and work
          * correctly with PIRQs routed over event channels.
-- 
2.51.0



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 12:31:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 12:31:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249411.1546915 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzZlQ-0006lv-Dl; Mon, 09 Mar 2026 12:31:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249411.1546915; Mon, 09 Mar 2026 12:31:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzZlQ-0006lT-9G; Mon, 09 Mar 2026 12:31:12 +0000
Received: by outflank-mailman (input) for mailman id 1249411;
 Mon, 09 Mar 2026 12:31: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=CWt/=BJ=bounce.vates.tech=bounce-md_30504962.69aebd88.v1-38f089334e9845c5a00cae713d259456@srs-se1.protection.inumbo.net>)
 id 1vzZlO-0005Rm-SE
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 12:31:10 +0000
Received: from mail133-21.atl131.mandrillapp.com
 (mail133-21.atl131.mandrillapp.com [198.2.133.21])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d944a38b-1bb3-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 13:31:08 +0100 (CET)
Received: from pmta13.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail133-21.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fTxFN1w12z1XLF8j
 for <xen-devel@lists.xenproject.org>; Mon,  9 Mar 2026 12:31:04 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 38f089334e9845c5a00cae713d259456; Mon, 09 Mar 2026 12:31:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d944a38b-1bb3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773059464; x=1773329464;
	bh=8+F/N10Okp6RfYj1zYdJt0ofiEUV907OfuUloITkdiw=;
	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=wSM3FQH5mNlY+zX9aKEo3rsRUwYf0BWwg/YLlRJBE2J6wDfRxNgQTpCfIStEaJDpW
	 /PXz9cff2jtHpHQpm16eZvp2Wu6aCvYH7qMcKHnC3+Gj1urYIoIfoOGJIk7CKOsYB1
	 pmFgtQh24WlxT0oh67lWZB8r8SuwjXQw9E2tWt8X3xkI0hyM+Ia0C8qJ8GBMbxhh48
	 UEL7ABQEALS9WfdUREsprMnlUh6G5clXeb5BdLvdNikrygLFrtCjnm39JamFoJGuoB
	 uJU7YjzCTOYO/3aeEn2p9fnXr7PAHSdKV8nPlBvBaaD0Ul39TZUl9R5tPaNMsgAExi
	 cgDrMuJsD8ELg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773059464; x=1773319964; i=julian.vetter@vates.tech;
	bh=8+F/N10Okp6RfYj1zYdJt0ofiEUV907OfuUloITkdiw=;
	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=SfTmeYvB+GVhEgrnLB1artUKzYiFGONKBzb8OMJzg8NDKlJOhts2mSQVROHVr0PZy
	 z6dPHOnPb8ZjvWmw9wahgVSh/XGlknesZxa+5g5hD8WFLrabRjIqMroUlYqh7Rhi7a
	 3Qdz+HVwDfKgT5k3JaIafvH5GmoNqfeiBlR+W/poOsr9b2uHpiDTJnVz41iBoTDQzZ
	 uGktBdWo1Xs7berDVb+QtCOjzrb01NkhsiZdSG5Qav5q02pa0FW7e9kuE73cAc+Z9Y
	 PyvcZ//bXzJzQmeQbLn/+imle9ZG3JvmJy9jdMuIGltJg3NgPklHARCdInrBpOHRHL
	 lfLLIQvv+P7cg==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v3=206/7]=20x86/dmop:=20Add=20XEN=5FDMOP=5Fenable=5Fext=5Fdest=5Fid=20DM=20op?=
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: 1773059463079
To: xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Juergen Gross" <jgross@suse.com>, "Julien Grall" <julien@xen.org>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20260309123055.880050-6-julian.vetter@vates.tech>
In-Reply-To: <20260309123055.880050-1-julian.vetter@vates.tech>
References: <20260309123055.880050-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.38f089334e9845c5a00cae713d259456?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260309:md
Date: Mon, 09 Mar 2026 12:31:04 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Xen cannot simply advertise XEN_HVM_CPUID_EXT_DEST_ID to the guest
without knowing that the device model will handle extended destination
IDs correctly for passthrough MSIs. A device model that still uses
XEN_DOMCTL_bind_pt_irq would pass only the low 8 bits of the destination
ID, misrouting interrupts to vCPUs with APIC IDs greater than 255. So,
add a DM op XEN_DMOP_enable_ext_dest_id that the device model can call
during domain setup (before vCPUs are started) to signal that it will
use XEN_DMOP_bind_pt_msi_irq for all passthrough MSI bindings. When
called, Xen sets ext_dest_id_enabled in struct hvm_domain, so it's
visible to the guest via CPUID.

Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
---
Changes in V3:
- New patch addressing feedback from Roger
---
 tools/include/xendevicemodel.h        | 14 ++++++++++++++
 tools/libs/devicemodel/core.c         | 10 ++++++++++
 xen/arch/x86/hvm/dm.c                 |  5 +++++
 xen/arch/x86/include/asm/hvm/domain.h |  7 +++++++
 xen/include/public/hvm/dm_op.h        |  9 +++++++++
 5 files changed, 45 insertions(+)

diff --git a/tools/include/xendevicemodel.h b/tools/include/xendevicemodel.h
index 0d5d7b0ff1..270d76fe9c 100644
--- a/tools/include/xendevicemodel.h
+++ b/tools/include/xendevicemodel.h
@@ -412,6 +412,20 @@ int xendevicemodel_unbind_pt_msi_irq(
     xendevicemodel_handle *dmod, domid_t domid, uint32_t machine_irq,
     uint8_t gvec, uint64_t msi_addr, uint32_t msi_data);
 
+/**
+ * This function signals to Xen that this device model will use
+ * xendevicemodel_bind_pt_msi_irq() for all passthrough MSI bindings.
+ * After this call, Xen will advertise XEN_HVM_CPUID_EXT_DEST_ID to the
+ * guest, enabling 15-bit destination IDs. Must be called before the
+ * guest vCPUs are started!
+ *
+ * @parm dmod a handle to an open devicemodel interface.
+ * @parm domid the domain id to be serviced.
+ * @return 0 on success, -1 on failure.
+ */
+int xendevicemodel_enable_ext_dest_id(
+    xendevicemodel_handle *dmod, domid_t domid);
+
 #endif /* XENDEVICEMODEL_H */
 
 /*
diff --git a/tools/libs/devicemodel/core.c b/tools/libs/devicemodel/core.c
index 4a52fe4750..03838aa37b 100644
--- a/tools/libs/devicemodel/core.c
+++ b/tools/libs/devicemodel/core.c
@@ -689,6 +689,16 @@ int xendevicemodel_unbind_pt_msi_irq(
     return xendevicemodel_op(dmod, domid, 1, &op, sizeof(op));
 }
 
+int xendevicemodel_enable_ext_dest_id(
+    xendevicemodel_handle *dmod, domid_t domid)
+{
+    struct xen_dm_op op = {
+        .op = XEN_DMOP_enable_ext_dest_id,
+    };
+
+    return xendevicemodel_op(dmod, domid, 1, &op, sizeof(op));
+}
+
 int xendevicemodel_restrict(xendevicemodel_handle *dmod, domid_t domid)
 {
     return osdep_xendevicemodel_restrict(dmod, domid);
diff --git a/xen/arch/x86/hvm/dm.c b/xen/arch/x86/hvm/dm.c
index 3d530d948f..7738400540 100644
--- a/xen/arch/x86/hvm/dm.c
+++ b/xen/arch/x86/hvm/dm.c
@@ -374,6 +374,7 @@ int dm_op(const struct dmop_args *op_args)
         [XEN_DMOP_nr_vcpus]                         = sizeof(struct xen_dm_op_nr_vcpus),
         [XEN_DMOP_bind_pt_msi_irq]                  = sizeof(struct xen_dm_op_bind_pt_msi_irq),
         [XEN_DMOP_unbind_pt_msi_irq]                = sizeof(struct xen_dm_op_bind_pt_msi_irq),
+        [XEN_DMOP_enable_ext_dest_id]               = 0,
     };
 
     rc = rcu_lock_remote_domain_by_id(op_args->domid, &d);
@@ -708,6 +709,10 @@ int dm_op(const struct dmop_args *op_args)
         break;
     }
 
+    case XEN_DMOP_enable_ext_dest_id:
+        d->arch.hvm.ext_dest_id_enabled = true;
+        break;
+
     default:
         rc = ioreq_server_dm_op(&op, d, &const_op);
         break;
diff --git a/xen/arch/x86/include/asm/hvm/domain.h b/xen/arch/x86/include/asm/hvm/domain.h
index abf9bc448d..770bc96970 100644
--- a/xen/arch/x86/include/asm/hvm/domain.h
+++ b/xen/arch/x86/include/asm/hvm/domain.h
@@ -105,6 +105,13 @@ struct hvm_domain {
     /* Compatibility setting for a bug in x2APIC LDR */
     bool bug_x2apic_ldr_vcpu_id;
 
+    /*
+     * Set by the device model via XEN_DMOP_enable_ext_dest_id to indicate
+     * it uses XEN_DMOP_bind_pt_msi_irq (raw MSI addr/data) for passthrough.
+     * Controls advertisement of XEN_HVM_CPUID_EXT_DEST_ID to the guest.
+     */
+    bool ext_dest_id_enabled;
+
     /* hypervisor intercepted msix table */
     struct list_head       msixtbl_list;
 
diff --git a/xen/include/public/hvm/dm_op.h b/xen/include/public/hvm/dm_op.h
index fd0f3a6a99..2814fe1c3d 100644
--- a/xen/include/public/hvm/dm_op.h
+++ b/xen/include/public/hvm/dm_op.h
@@ -447,6 +447,15 @@ typedef struct xen_dm_op_nr_vcpus xen_dm_op_nr_vcpus_t;
 #define XEN_DMOP_bind_pt_msi_irq   21
 #define XEN_DMOP_unbind_pt_msi_irq 22
 
+/*
+ * XEN_DMOP_enable_ext_dest_id: Signal to Xen that this device model will use
+ * XEN_DMOP_bind_pt_msi_irq for all passthrough MSI bindings, passing raw MSI
+ * address/data fields. Once called, Xen will advertise
+ * XEN_HVM_CPUID_EXT_DEST_ID to the guest. Must be called before the guest
+ * starts.
+ */
+#define XEN_DMOP_enable_ext_dest_id 23
+
 struct xen_dm_op_bind_pt_msi_irq {
     /* IN - physical IRQ (pirq) */
     uint32_t machine_irq;
-- 
2.51.0



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 12:52:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 12:52:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249475.1546926 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vza5i-0003QD-Vv; Mon, 09 Mar 2026 12:52:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249475.1546926; Mon, 09 Mar 2026 12:52:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vza5i-0003Q6-RY; Mon, 09 Mar 2026 12:52:10 +0000
Received: by outflank-mailman (input) for mailman id 1249475;
 Mon, 09 Mar 2026 12:52: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=BjhM=BJ=kernel.org=ardb@srs-se1.protection.inumbo.net>)
 id 1vza5h-0003Q0-Mv
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 12:52:09 +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 c6f9d7fa-1bb6-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 13:52:06 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 839E6600AE;
 Mon,  9 Mar 2026 12:52:05 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id DDC24C4AF09;
 Mon,  9 Mar 2026 12:52:04 +0000 (UTC)
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfauth.phl.internal (Postfix) with ESMTP id C5D69F40069;
 Mon,  9 Mar 2026 08:52:03 -0400 (EDT)
Received: from phl-imap-02 ([10.202.2.81])
 by phl-compute-01.internal (MEProxy); Mon, 09 Mar 2026 08:52:03 -0400
Received: by mailuser.phl.internal (Postfix, from userid 501)
 id 999C9700065; Mon,  9 Mar 2026 08:52:03 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c6f9d7fa-1bb6-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1773060725;
	bh=+l3GAe2jq8eBBZZbhrY4uib7DNJV8apVKmihOAiT6Gw=;
	h=Date:From:To:Cc:In-Reply-To:References:Subject:From;
	b=TSHrbFKPoRXfsXlhpwIxl3kZJwS2F2BttFk5QfPdMtO/2V51HyX6rtBr4NBX7fAnm
	 Mbo12H210Mu0rxpwX3x/oqe8N+CIQ1mUlnZIhdoYNbU87xSCxSCgXUoF4bHd6DbwKL
	 +j3OY3s1TM2gTxkaNs9J/IL2QVgVH5IxrNLE7MfKcJzecIH3329B0ZuHStfd7xZVaf
	 22b7kkG0HghO1/nWUHDjQHfrEUUYYxXoIdcvDQSPYVjLfLisQaKQqnPzaqg7HmmYlz
	 7bNv+jsnCFNqTQbCbDvjVrZ0nnUx4ye+D9QI0EaF1Hfh3XWKkSdZs4NO48m/Ck6zau
	 udgcC2oFo/FuA==
X-ME-Sender: <xms:c8KuaT6g5dfW3c5CvJAmOIXVGTkdvWPf_1QM9tkj9Uo4Ih2HRipxsA>
    <xme:c8KuaTvCc5M089GSvD9-x5Zb9s3cnu4ZwokOhjS_EvbvaTmzW5CmE8H91wSfVIP7N
    p3Ji-kBKSk56OzjrjYv0-oLOd1BiRoGgnZarhy-VIwNaMlgMTUK_A>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvjeekudehucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepofggfffhvfevkfgjfhfutgfgsehtqhertdertdejnecuhfhrohhmpedftehrugcu
    uehivghshhgvuhhvvghlfdcuoegrrhgusgeskhgvrhhnvghlrdhorhhgqeenucggtffrrg
    htthgvrhhnpeefhefgtefgkefhgfdvffdukeejheeuvedthfdtiefhleejhfefjeffieeu
    jeefteenucffohhmrghinhepkhgvrhhnvghlrdhorhhgnecuvehluhhsthgvrhfuihiivg
    eptdenucfrrghrrghmpehmrghilhhfrhhomheprghrugdomhgvshhmthhprghuthhhphgv
    rhhsohhnrghlihhthidqudeijedthedttdejledqfeefvdduieegudehqdgrrhgusgeppe
    hkvghrnhgvlhdrohhrghesfihorhhkohhfrghrugdrtghomhdpnhgspghrtghpthhtohep
    iedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepshhouhhmhigrjhihohhtihhsrg
    hrkhgrrhdvfeesghhmrghilhdrtghomhdprhgtphhtthhopehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhrtghpthhtohepihhlihgrshdrrg
    hprghlohguihhmrghssehlihhnrghrohdrohhrghdprhgtphhtthhopeigvghnqdguvghv
    vghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehlihhnuh
    igqdgvfhhisehvghgvrhdrkhgvrhhnvghlrdhorhhgpdhrtghpthhtoheplhhinhhugidq
    khgvrhhnvghlsehvghgvrhdrkhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:c8KuaWcjcsw5z56A4U-0I8TpxxtNTYgcBSta9LzT8FhkHsW1Wcpt4g>
    <xmx:c8KuaSehKYxjTOw8IX5vaHSFoeHSbpymWVwezyS7Qb0SdlgfkExq_Q>
    <xmx:c8KuaZyDumFDVKesUG2kbHmbcAltYywi6iHzDnG0QlWiUUaFGX8MSw>
    <xmx:c8KuaZ-fJ1kWTGjVJ6UgZEl103GiQwkGGpA2aoIzzhEstZoUcvWo_g>
    <xmx:c8KuaRilkN9J9Yo9bdHlekGBpuyCg3gIBWtOc77In4fmiYdaKWJgdz_p>
Feedback-ID: ice86485a:Fastmail
X-Mailer: MessagingEngine.com Webmail Interface
MIME-Version: 1.0
X-ThreadId: Al3Xjs-asQIN
Date: Mon, 09 Mar 2026 13:51:43 +0100
From: "Ard Biesheuvel" <ardb@kernel.org>
To: 
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
 linux-kernel@vger.kernel.org
Cc: "Soumyajyotii Ssarkar" <soumyajyotisarkar23@gmail.com>,
 xen-devel@lists.xenproject.org,
 "Ilias Apalodimas" <ilias.apalodimas@linaro.org>, linux-efi@vger.kernel.org
Message-Id: <2f8e9891-ef08-4094-ae86-c1b6d2dbe06c@app.fastmail.com>
In-Reply-To: 
 <cover.751f45ebbb644244b1d9da3aff289d6b66db4c6b.1773058629.git-series.marmarek@invisiblethingslab.com>
References: 
 <cover.751f45ebbb644244b1d9da3aff289d6b66db4c6b.1773058629.git-series.marmarek@invisiblethingslab.com>
Subject: Re: [PATCH 0/2] Allow using BGRT table under Xen dom0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable


On Mon, 9 Mar 2026, at 13:17, Marek Marczykowski-G=C3=B3recki wrote:
> For a long time Xen was invalidating BGRT table as it was reclaiming
> BootServicesData memory (where boot graphics is located). This is now =
changing,
> and the boot graphics is preserved. This series has necessary changes =
to
> actually make Linux use the preserved graphics.
>
> This is a companion series to Xen side at
> https://lore.kernel.org/xen-devel/20260305191810.31033-1-soumyajyotisa=
rkar23@gmail.com/
>
> CC: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
> Cc: xen-devel@lists.xenproject.org
> Cc: Ard Biesheuvel <ardb@kernel.org> (maintainer:EXTENSIBLE FIRMWARE=20
> INTERFACE (EFI))
> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org> (reviewer:EXTENSIBL=
E=20
> FIRMWARE INTERFACE (EFI))
> Cc: linux-efi@vger.kernel.org (open list:EXTENSIBLE FIRMWARE INTERFACE=20
> (EFI))
>
> Marek Marczykowski-G=C3=B3recki (2):
>   efi: make efi_mem_type() and efi_mem_attributes() work on Xen PV
>   efi: Enable BGRT loading under Xen
>
>  drivers/firmware/efi/efi-bgrt.c |  7 +++++--
>  drivers/firmware/efi/efi.c      | 27 +++++++++------------------
>  2 files changed, 14 insertions(+), 20 deletions(-)
>

Looks good to me - if nobody else has any concerns, I'll queue this up f=
or v7.1


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 13:26:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 13:26:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249496.1546962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzaco-000855-SD; Mon, 09 Mar 2026 13:26:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249496.1546962; Mon, 09 Mar 2026 13:26:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzaco-00084y-Pc; Mon, 09 Mar 2026 13:26:22 +0000
Received: by outflank-mailman (input) for mailman id 1249496;
 Mon, 09 Mar 2026 13:26: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=mqfy=BJ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vzaco-00084s-8e
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 13:26:22 +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 8ed9c572-1bbb-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 14:26:20 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DM8PR03MB6232.namprd03.prod.outlook.com (2603:10b6:8:3d::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Mon, 9 Mar
 2026 13:26:12 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.023; Mon, 9 Mar 2026
 13:26:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8ed9c572-1bbb-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TtP1QJ7VIkT8vd01GEBRFmexd1GmbKxOds8N2Kulda2UQ8skGGSM8YkZ3v0wI1bcw4/vAQ8F1gSs3Vp7TbLHPXdo34qMgj6WofGRhYiV0rwas3w7zKEePUpHdf+4+mL+yVSpQqDsWk/ZVRJnSi8jqT/SnXEYDjzTiJ2ZxWh9q2InL+0g8yp5f52+lLShpx9nBcsIh6CjDxM+o42cHpNYwZzow3qMYvRb8ylthvYG4O6aeTdvGMNrTda8Ns7nEAbEYhUkXxhO8RnjvEQVoBQ2tskfd/0iDgddrKHbFeAJZ0ILiCfWaLSWaYh4R8F4zqAlYW88rPuVdKErhViqhudWWA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=l7n5O3eHZxb0m8XX25UCo/ymu9WkcyBzlfUUnlzR+e0=;
 b=SwYcl3vsX6lc3NyItOTZfRqRI8YPGO7T8YYIe/aLcMG824v8bHl2Y4erjXRzfZRaWH0375CTx3OiEZ+KJ17/qmCsv/eCTNVUPbKyPeEBTnIqhd3zqO1WU8C47LDyosydPwOHhLOW99d3vqe6RcjK5rsd3fPgYYsIyE2xgTY3roCGUNL4YioQGwbT4jCQ2ZAfFMGjhlt00qDYDBTqTlJLV/7gH4CoHFqb7pqbyjpZIvBmlzZtT7j4VhhGetommWF9xi49fAYk0dwFeqBCrB4E+XJHqK2OPUAIRLv2o7dLe6YRQvpoWYoliS8zSVLuLtv4w2Ys4hrgU+dIQdMMHkGi5g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=l7n5O3eHZxb0m8XX25UCo/ymu9WkcyBzlfUUnlzR+e0=;
 b=sNQ0LbAUiotXBWKd2Xyh6Fgg6wE0C81HqB5qUpjka3dA9CqmwWbGGi7jrS/jJZvylx3zMBCRiXgb2rLyYw068dSfoKHvldaCW3xQUwNntTdW4Zlr7fdtL298km74RnRUPD9+4DNqkJKFSuO+gCMxGeKt9C133Nz2fLMeZEg0lBE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 9 Mar 2026 14:26:09 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Julian Vetter <julian.vetter@vates.tech>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Juergen Gross <jgross@suse.com>, Julien Grall <julien@xen.org>
Subject: Re: [PATCH v3 6/7] x86/dmop: Add XEN_DMOP_enable_ext_dest_id DM op
Message-ID: <aa7KcQQoc3-HwlcE@macbook.local>
References: <20260309123055.880050-1-julian.vetter@vates.tech>
 <20260309123055.880050-6-julian.vetter@vates.tech>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260309123055.880050-6-julian.vetter@vates.tech>
X-ClientProxiedBy: MA2P292CA0022.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::11)
 To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DM8PR03MB6232:EE_
X-MS-Office365-Filtering-Correlation-Id: d86c132f-f008-4dec-c434-08de7ddf6ec9
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:
	XvzjhGbOF+VlJKbv6FeAQhjk6ewuC8gBz+x929U6CY8F0q+e6jl+Q1Z/SQQdR8l50vXCxdpOfWtdnL7R+tDa9g+o6e4unvOUYMQ3tKkce5PuJnmHYMP9fri1iKxvNI26AGNcAun6gkjvjH9cx84MQs+shrqGtOxVG5hDLz04xz5dp3JvSwNm+9MkLIkqUB7eLIIoHgzFEnIz61FIHm3p68IxwtOqMzS8bQF5AiDOmGQ1CabWTOk92/JtRxQ5vhugorFqlhzj96SWKkMYY00bA/RpmzVx3RiRzfeY+PcNF1xRcg7WAzS87FRWDmkPPJMDuo7i49zZvj9D7NKw5WgWajl7AR+y+lau2rcocusyhlRhGZIfCC9SMXU02Aq2uFoHTeFIfwcfmh3QyMJwP+ZG5IaI5JAuo4PF04CaEuRnlpqbG6GWm64Lgb+LDm4imfgx/ciQOoTtPHYaGgVCeOM+RVNrkEf7/S0/t6Doeqsb9AAlpzzpIVDzHQ5F+I7AfPOdS1qR8SNMfd1SCHVNaMT3E3y4ErvYIBKC2SHP0cdSFjlp1mTYKKeV5WgfeJcZEN9A963aFmCy+nTeOoZPwDuitZ/hcXQ0xNoH2BUWATd9VU/Zwt9/njjdeAayuyDiOi9gEzNe21FprBUx3vW7EDTQKoniPmFeUytMJTuqgOzU1ZTyMvV4+6em5B/Hmbv/iJ3IQGCAAoGW1PUlnM6ls93CMEECnNZIhP8kxfVDc7838uo=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?b3cxalVBZWFGVGtxRmY3cVMrUGlwUkQrNnZXZDE4Yit1SDFUdDkyaGwyZUJQ?=
 =?utf-8?B?dTdDYnVoVXZkbjBSdExpTUdnaDl2QjEveVA5aU9zTzF1aW44QlBJUENRSlVw?=
 =?utf-8?B?eGxva2JiS2pZSVFFbmVWUVdXUzJWWWcxTW16cXQyeVRFdTJkQ0Q1R3d4djNN?=
 =?utf-8?B?aHBSRXZuc3hRWUFBMTlKSkxxKzVlbVhGTTIvam1IRktZZDJtaFFLUjFLMnFN?=
 =?utf-8?B?SG14ODd1M0x6aGE2NVI4UWMvbWNUOFhNKzB4N24ySkdsYU52ODQzdk16M2E2?=
 =?utf-8?B?WUI1TW1wWFVsSXFrQmorbDFyaFVrVlVoV2ZFUjd4Tmh4NUpIRldqbVlGbllC?=
 =?utf-8?B?QlJsYUZoS2piNTg1bDNMRW5VbGw1a2YvUDdINUFCa1FBS2RHR2xvRzRwUU1a?=
 =?utf-8?B?bHlDekNGTHlxVDQxQ2lmTGlGS0xXY0d6WHI0Q3hwODhQVEdjY3NzMi8zb2J2?=
 =?utf-8?B?azZ2Mk44QWxlL0I5MFc5TlcwQUFsempEVmxScmNUQzZVYnVab2Y5SmpiUEpw?=
 =?utf-8?B?d2xWcmdjN1pGT1ZZbW1YR0pLVHZGZUtUTXNuRzFHdCtYNXFpRGJOTzl3cGpq?=
 =?utf-8?B?eHRYcUtUaUVIajdaZEI1RS9EWk1BTURiNzZVcUhVOW9zRldlTTF6YzJZcWRP?=
 =?utf-8?B?WVRTUHIvUFVPaFBTdWVXQlJKT09pbEdDVDJMZTZzaEhwUXRobHluQVlwbzg5?=
 =?utf-8?B?UjdHOXd4SHMwdkxMb1JrVHBwRHc5bjlpNm5SRXBERVRtaHJPVVdCSXVBVjJt?=
 =?utf-8?B?Mm5BWVFoZW9STE04WkpGc2ttTXBoc3Q3ZThhbWt4c3dXZ1RiNUNjbE5DRW1Z?=
 =?utf-8?B?RGx6OUVDWDl4b0dUeFYzMHlrOEZUMWd6V3d1K0FxcWZLeW5DWUpOazR6Mysz?=
 =?utf-8?B?dCtLZ2xUQ3VIT3VxMktPVXpMaDk5SVp6a1NUZkhMSDZ5VVBoWk8zK3hzaG9P?=
 =?utf-8?B?OVl1NncwTnBTbHFNQWFhRURzWEk5V2hhU3BDV25FaGlZMmdFeVJGbzZJUHpY?=
 =?utf-8?B?aWVzWVZZTEVGYVd1VnZjbXlLVjR2RHhvVnZGZDl1TE5rR3pveXExdHVqZ1E1?=
 =?utf-8?B?aHoxclFGa1FsVHFsYkF5UFlhdlVrTHBDOXUwTUtHUHpoU3ZXVmZVVUdSeFZz?=
 =?utf-8?B?aUhqbWZkU1JDcVhUalhsTWk5cHp6dnZSK2o3Sk1zMnRIV29SVE4yajBoUHFX?=
 =?utf-8?B?Vld5WHEwZjBuc1Znc3BXQ0hnbmU0UmZUMmFub3g5clR5ekZRcnhSL3pPcjVZ?=
 =?utf-8?B?aWNTTmFFZjdCMlB1TTBZU2k1WUJYay9IcklncnU5a1JHMy9hUWlGMXJxbGhu?=
 =?utf-8?B?d1IrVGpFcE94amptbmgwTzc2UmtUb01VTGV1THg1Z2dCckNJVHhDNHEzMU9l?=
 =?utf-8?B?ZUxZVGk1QUpoZGNSNXQwS2YzZjNMWjZiaFhXNlBBMkUvRG5jVmR3YlBsU3l4?=
 =?utf-8?B?OVprL24rQTNUMnBTanF4SjZVbUdRL3JGNHlLL2I2ZXAzSWVGUXRVOWtaQTdn?=
 =?utf-8?B?SmppTlo4aUNOUk5vOStDenp3akc1SzVjOUhXWkIyRmhVb2x5djlRdmhPY0hv?=
 =?utf-8?B?STEvbzlIaE02T0RpRUFhVW94Ry9aVkJqeExvS2tZVzRPWUhyOTd6QW1VaHJJ?=
 =?utf-8?B?b0hHWkVZMytsOVhCK2pESkJuU3UrbmM1WW54WGZIcmxNMUxWZlk4NlB5V2lP?=
 =?utf-8?B?WkUzcVczK01kNjdPVVdLM3U5T1lyU1hvaitkNFo5dnI0UUZVVS9MY0R1VFRi?=
 =?utf-8?B?bStDVElUZi9WdksvTUI1bW1KaG1RTkZ1ZStmSk5GaVh1bkR2SVRaRm5KTk1I?=
 =?utf-8?B?MkxCaFpIYlNMbVJxaG5nN1I0S01kWC84NWE2RHFMMmJKMVBUOUl6Zk9oc1Za?=
 =?utf-8?B?MWtIM2hLcWN4MlFOUTFIRW8zODVuc3IwZm00Z2lqMmdrT2Y5WGVNZHZiNUtB?=
 =?utf-8?B?Y0hFMnJBRlpnUm1MbWxVY09Xd0Q2YW45bzRncHFtV1E3UjFCVEhXNWhxUUhQ?=
 =?utf-8?B?Ni9teEhvZ2dmM3FBSXBzM2hpc1dxWFB1OEduU3J6ekNySTdKSEZ6ZnVUWUpa?=
 =?utf-8?B?OVg3cFNHZm00TzQ5NmpqWFU0cm9IeUMrU0ZGWG1BdDV3MXVWYmFrVEZPQWtx?=
 =?utf-8?B?TEtLR3lJRmxKSjZrZ05WU1VGc29uQ041TlZQZm1YQ2RGV3lXK1FVTURtTisv?=
 =?utf-8?B?RjhqcDlGcWJONFgvM2JCcXhCalB1cmtwRGlMajlpVFZLd2J2V1JiUElpVVVP?=
 =?utf-8?B?dGdSZ2svSzJieHpkM09mekdOTURDYkx6Q3hHN0tDa2MyNVRZU1piKzVmeE9a?=
 =?utf-8?B?K1JHcTAwaEU0R1Z5b3VEemhWRGdVd2NsbmNtRGlnQkxUWTFKRDc5UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d86c132f-f008-4dec-c434-08de7ddf6ec9
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Mar 2026 13:26:12.6036
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: L3K97Ok4AZtVeGd2zeztPi9LMX5A+ytvOFRakzvERwUiWLj5aeePk0Ir2yQqRxM4QEdlGmlZ6JM2TXGTf1fAFg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR03MB6232

On Mon, Mar 09, 2026 at 12:31:03PM +0000, Julian Vetter wrote:
> Xen cannot simply advertise XEN_HVM_CPUID_EXT_DEST_ID to the guest
> without knowing that the device model will handle extended destination
> IDs correctly for passthrough MSIs. A device model that still uses
> XEN_DOMCTL_bind_pt_irq would pass only the low 8 bits of the destination
> ID, misrouting interrupts to vCPUs with APIC IDs greater than 255. So,
> add a DM op XEN_DMOP_enable_ext_dest_id that the device model can call
> during domain setup (before vCPUs are started) to signal that it will
> use XEN_DMOP_bind_pt_msi_irq for all passthrough MSI bindings. When
> called, Xen sets ext_dest_id_enabled in struct hvm_domain, so it's
> visible to the guest via CPUID.

Have you considered whether you could re-use the padding in
XEN_DMOP_create_ioreq_server to signal whether the device model
supports Extended ID parsing?

Also, you might want some negotiation between multiple ioreq servers
on the same domain.  IOW: is multiple ioreq servers are registered
ahead of the domain having finished creation you could level whether
extended ID should be announced.  For ioreqs that are registered after
the domain have started you need to enforce the currently set Extended
ID support.  If the domain is running, and Extended ID is advertised
you must prevent registering any new ioreq that doesn't support
Extended ID.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 13:38:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 13:38:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249507.1546973 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzaoo-0001Mk-UI; Mon, 09 Mar 2026 13:38:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249507.1546973; Mon, 09 Mar 2026 13:38:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzaoo-0001Md-QP; Mon, 09 Mar 2026 13:38:46 +0000
Received: by outflank-mailman (input) for mailman id 1249507;
 Mon, 09 Mar 2026 13:38:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mqfy=BJ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vzaon-0001MX-QD
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 13:38:45 +0000
Received: from SJ2PR03CU001.outbound.protection.outlook.com
 (mail-westusazlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c001::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 48fdf30f-1bbd-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 14:38:42 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by IA1PR03MB8047.namprd03.prod.outlook.com (2603:10b6:208:596::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Mon, 9 Mar
 2026 13:38:29 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.023; Mon, 9 Mar 2026
 13:38: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: 48fdf30f-1bbd-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Jhp+xVVhAZo2OX+UivxzzwGfZOmP9aacCe5it+UQEt3ShqeRA71Dvq6NDCtmJmaSZQozDuxT3Jfc20oGGF9X02PvykoTGGve3O/STervJ1t7eL6u86SmXFAbNaG75v+cjm1JTQraJuts9DSS3UATc5EB+9mAMkpg10rUWyBqGRBCMuNz4yi/JYQEIUxzWciJDy/jyV1jUvomfWbK5UWc+UZ3kfBV5V/dMfCrCXcYIcr9o4NNyKMkPUONtovToBlmYQPddDgWvmh4XCuKDdEe6DCE9q0cbz4hHh4LoAxtg1XRCxBXcuZkQOPtnVil6Ia19p/FlFJf5EBveBtRx9D/Zg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=N3Kjmze1PvonsWyS6ZRnDjxJM008BAiAB/e5vCFFx6s=;
 b=gvZ1Cd5o/KOKbvMJxIGcvLjLlrQ3aHXEYrhn3C9YJmtnwbZMAHcFP2SGtrlJvVv9ynSzWsCJag1CgE7Trisi6+SI10SskfFku9qZd/0iFOfO0ZbOdT3fBlbs1n8Js/lXIuuCfWjmM0tMKydYUJRtaiG6LEeF8kG0wztUBoqZcK8wJfIITq9Z//dxBx6A9NyW3YIErdRcT+gl4yjpklwV2cbmfCAfMOXJK9Dng5mQs1MCuA/ZZNizHUiGKhM5yMSRdc7Sj4OnGBU1stsRnf22ps10SAsGwajgN3M9PRSR6iAL4awW0lW6r0/G0K+4ykHx4kQ4U8KVVgYGCIeE9V8W4w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=N3Kjmze1PvonsWyS6ZRnDjxJM008BAiAB/e5vCFFx6s=;
 b=V4zrfeiZc5cjjwV1ixVQLLUMwqDQXW008VuzSdO26v3wvmA4NrkCsuJkL9gtiaem/pGWbgCAP3d8LTpAFCqgzgR4VxAg02nv5WYk8E5IiLehNdtvDGVXytgd2w76cHIGxbJxDc861y+FIPsNRVR1nzCGlWzptbf0fqUfP2uZZ2g=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 9 Mar 2026 14:38:34 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Julian Vetter <julian.vetter@vates.tech>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Juergen Gross <jgross@suse.com>, Julien Grall <julien@xen.org>
Subject: Re: [PATCH v3 5/7] x86/dmop: Add XEN_DMOP_{bind,unbind}_pt_msi_irq
 DM ops
Message-ID: <aa7NWl8oKFS5ZDAP@macbook.local>
References: <20260309123055.880050-1-julian.vetter@vates.tech>
 <20260309123055.880050-5-julian.vetter@vates.tech>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260309123055.880050-5-julian.vetter@vates.tech>
X-ClientProxiedBy: BL0PR05CA0016.namprd05.prod.outlook.com
 (2603:10b6:208:91::26) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|IA1PR03MB8047:EE_
X-MS-Office365-Filtering-Correlation-Id: c62b4e96-6767-4c1a-fae5-08de7de12a9a
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:
	m7ffxQikZYey/DUm2ZrptAXIWCtLw5dpYBso9/Cm5UFUN86kCJe2IlqX7ZsnSY7rIAx3uU/6AY59TaEgd6YZ8xBMEdomaz+V0FONaU1ymNAFMGZUHXvCtCxVyFIzNdGYoTHSBQqrpTGbzovTNSe3RtsN5Km05rpFbHCdAXNzlkGjLkrYECkBB1m4EILB1CNGseYLlDU5ENmv/l6NMJhFkzE6yND1FpfQKJji0goZCFvFwzEEuJcYZQ0S2ltisHCQhs97RAVU44VtSpsl+PTb0d4/t8tb+IXeU4sY16NcQljChmUglH7q0cxmz/lCUPDfe6YFcf3Sp/Gv5PcbwriVofR2aZweQL1+HHZ9ogfOyTPUvVTcaRYGRMEPxnEbC6KVYnzZ/0ZWnxLpruOgtyJvy+Sf2onoD3nduJm/MSy8IXiw2BOXsExv+nXQvtmoVNNNf7VwV48mbBe7zWlQXZ3wKVoE53qcg0qIMihXNGZO6KQ4odq6EFIOTHzot4dxL8c+MAT/znutd923itTzDuaCbuPgXhMBr5hVczzP97Vjwl0kd4+fuc9UZxklGFZv6MpG6MTVPoJt8pJJ0vb5ojbWoQ8lE7ESBtcFj2S2q6K/ClIRrpEJrSbtOldOJBcbF6aLwcb8imPc2bvcfZhtDqOYAUYRhI/HJMltekIKwQX1DxNksZHmXOOaJ/18ND6ib0mO
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?M2Y0STRMN0U5UExTa04vK3QrRUQyQ1A0MytoTVVsQ0hpdU1Ba0d0T1V0WFVj?=
 =?utf-8?B?ckRLOHVNMTNiZUtyTWsxYXhDYVF6WnJtVU9ramNzOWU4VUFvYjdhZGRFNVVS?=
 =?utf-8?B?ZWd4WTB4ZEJVekJSdDJlUXhPMFBVMGZkSDF5dDR0V1lZcEg2dEFxNUI2Z20r?=
 =?utf-8?B?b01EbjFSQmNGOStkQjZhU05CZm13Q2xackxjQjFSSHdYR3BpdWJ4ek0wUFBV?=
 =?utf-8?B?Z2FjUUZiNDJ3NmJGMnJVK2dGaTZpcmRZc2xEV0wrZ0I1QWhCZ0FJYTB6cWhG?=
 =?utf-8?B?eUFCZWMyN2d2VXJKOVpBTXZGTFVZQkFmTkI1ZEtGdzB2MFIyYU1Ua0x6WXF6?=
 =?utf-8?B?YmZTN3piWjBaRUgxNytFSWd3ZitoZlFrRkl1Z0xRU1hCOWt5N0dnbUpTeGRS?=
 =?utf-8?B?dSt4K2Y3cWVyN3Y2ZWFINUcrTGw5Q1RtMHR0Q0dDL0pYSGNYMDlQQUZ4ODVS?=
 =?utf-8?B?OUJSSzIwbjl0dXZyM0dGVDJjVXVaVGJHNm9CWTVhbmg0d1RWNkNpNWo2QkFE?=
 =?utf-8?B?UHFRQk5iUWxrYnlVVUxRUVFUTW5Xa1hva0Z6NlFpU0U5TDNkQUVVTDZPQkNK?=
 =?utf-8?B?bDM0YjBrQUFTNGNpSitLSjQxVnR5c2VTbTVNQklDa2pJWGtYOXcvbit1cU82?=
 =?utf-8?B?dGJvcGh3UGI3Qy9rUjNNckZJVE9rZVBza3NReitQVmFhS0lnaFhFSE51c3hp?=
 =?utf-8?B?dFhkV2FuSWRFcGkreGVlY0hRVFZpOE5jOFpVR1kvTjBJaGxZc0t2dzZsRGZO?=
 =?utf-8?B?L0d4dzZiblY0d0tsSndZRk1SY01VL2xIbjEya2p3ZHNXRnM4bmVUNWRJcTZ4?=
 =?utf-8?B?bXFMSkNrbEV3NkhWVlFNbmFNRStRcEZyUmpHNFdsSnBPVk1VdUpSY3d4SEVp?=
 =?utf-8?B?aUU3L2plYTJTaWlYUkVrYVloajkwQ256OWcyaFgvcEpJNmpTdkVKUjEvd2V5?=
 =?utf-8?B?dUZqNTF0ZTR2WVNSM2pWT0VXVTRHZkZXWU9ERWE5bE4zYVJrQSttTWxaZGdU?=
 =?utf-8?B?cnNwVkg2VE5VNHBqdWZBRE0xUzJMRnV3azJ4Ui92d2ROV2ZSRkVSeURUd09Q?=
 =?utf-8?B?MlVzK1c5bHV4Y0dtR0FobGpyYzVHWU43T05RbS9xNlZYWHkzTGxKd0tTYk96?=
 =?utf-8?B?cVI3V2xEbWZwdXVpR1RpUHdGNVp3V3RMQjBrZng5emdTK1V2MTNRbFJiU3hL?=
 =?utf-8?B?akxoNDZXa010NHhHZm9oQ3ZpRTBvbFhXQUU1a1lzTDVQYjBObHRqdG1iR1la?=
 =?utf-8?B?THR0T2FFZWJCWWRqVmIvSHFvdGZKTGpodmhzZGhVYzdQMGk1Zmt4bk1YNXNi?=
 =?utf-8?B?OW9QT09KVTVVZkdyT1hldUFaSkdQYVRtTWwzd3lUZ3d2R0FVWFBPZlNYMHpV?=
 =?utf-8?B?THVJRVBaN1hXTVhGSW50d0J2SzNHRHlWM01yTWxvdFJGOEI4L2lRZDJGQzdY?=
 =?utf-8?B?VkN1MkhKZjk2LzNTNWFkd29IT0g3QlpmSjFuNllmSnVLQlNaa29xNEF4U2JV?=
 =?utf-8?B?VXVHdk1YbmVrZEhtbkNwVkRDT0xDSisxSWlDZHJaQkMraEgrQW9KbzZBSXRU?=
 =?utf-8?B?ZHVKeHNPT3VSMjEwVm0wMTBHQlJWUGtDVW0zM01tUzYxcGxSc28zUXc2b2xv?=
 =?utf-8?B?bmpCb0RZRkJjanhJcXJoSmJ6eml6Ynl1YlJyUnF1c2FYR0ZYM3U2OXplUTd2?=
 =?utf-8?B?SzBUSy9ONVJ5Z0NWVXROZThlSWlYSCsvM0xoRDh2NlA0ZDJxNW9pNThLYVdJ?=
 =?utf-8?B?QjFFanJjZU5sQXRnSU9YYzRzYk5qODF6QkVvclBYRitGUjFxcWJ3VWJVNk1s?=
 =?utf-8?B?Sk1zN2xTSzJEeWt6dDNCNURkMWR1anBwMmlBdHhsVEZINjJiczcyUHZIRzl5?=
 =?utf-8?B?V3h1UURKSUhOMzlqeWVnbDVNcDArMkQ4RVovWHhGRFlndGx2ellERUhWZ3B0?=
 =?utf-8?B?QmtvbW4xTE5iN1BOL1hWUnVwL3crUU1GT2NlcXJMR2hiRFgySEVucGFKVmRn?=
 =?utf-8?B?TjJvSXFTTGNOd3ZSMVZGME53VDMzZnpNRXJ0c0dwSTdUd1JoYzdGTEFPVGMy?=
 =?utf-8?B?aGV5dUtmUjJoYlY4bis2OE82eFFtanlYWlRSblRqK1lwS2RaS1dvT1VNem9r?=
 =?utf-8?B?QXd5WWk2RnVaUVlhNXBGMkcyQk5nZHFCcmUyVFRqQ3hHU3FteU12VWRwK2lv?=
 =?utf-8?B?QjMrcVAvMG1wKy9YRklBZVFYQVJnbXZFMVZZNmlna1RPMmo2N3MvYUR4MEI5?=
 =?utf-8?B?dThWeGc3TFBmdUhwRkMwa2pZRTB4L1hJQXEwa0lxNUhVUVc0KzRoTkcvSERI?=
 =?utf-8?B?MHN1SnNPUmcwOXR3MjNvWTNjQ3BRcSs1OHo0N2V5aWhNRFhRRE81QT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c62b4e96-6767-4c1a-fae5-08de7de12a9a
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Mar 2026 13:38:37.2181
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: WwoeFWTCqD4wZ3/MnOOkC6Q89Buj+m2a4ULdojm3GufTiLP1l7YQS7/X4o3WLiiNp0GVSWCgmkMgi2+a0j18fQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR03MB8047

On Mon, Mar 09, 2026 at 12:31:03PM +0000, Julian Vetter wrote:
> Add two DM ops for MSI passthrough IRQs. These new DM ops take the raw
> MSI address and data fields rather than a pre-decoded gflags values. Xen
> decodes the destination ID via msi_addr_to_gflags(), including any
> extended destination bits in address[11:5]. This means the device model
> does not need to understand the extended destination ID encoding, and
> simply forwards the MSI address it observes from the guest.
> 
> Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
> ---
> Changes in V3:
> - New patch addressing feedback from Roger
> ---
>  tools/include/xendevicemodel.h |  37 ++++++++++++
>  tools/libs/devicemodel/core.c  |  44 ++++++++++++++
>  xen/arch/x86/hvm/dm.c          | 102 +++++++++++++++++++++++++++++++++
>  xen/include/public/hvm/dm_op.h |  23 ++++++++
>  xen/include/xlat.lst           |   1 +
>  5 files changed, 207 insertions(+)
> 
> diff --git a/tools/include/xendevicemodel.h b/tools/include/xendevicemodel.h
> index 227e7fd810..0d5d7b0ff1 100644
> --- a/tools/include/xendevicemodel.h
> +++ b/tools/include/xendevicemodel.h
> @@ -375,6 +375,43 @@ int xendevicemodel_nr_vcpus(
>   */
>  int xendevicemodel_restrict(xendevicemodel_handle *dmod, domid_t domid);
>  
> +/**
> + * This function binds a passthrough physical IRQ to a guest MSI vector
> + * using raw MSI address/data fields. Unlike XEN_DOMCTL_bind_pt_irq,
> + * this interface supports extended (15-bit) destination IDs by having
> + * Xen decode the MSI address internally.
> + *
> + * @parm dmod a handle to an open devicemodel interface.
> + * @parm domid the domain id to be serviced.
> + * @parm machine_irq the physical IRQ number (pirq).
> + * @parm gvec the guest interrupt vector.
> + * @parm msi_addr the MSI address (0xfeexxxxx, includes extended dest ID).
> + * @parm msi_data the MSI data (vector, delivery mode, trigger mode).
> + * @parm gtable the MSI-X table base GFN, or 0 for plain MSI.
> + * @parm unmasked if non-zero, leave the IRQ unmasked after binding.
> + * @return 0 on success, -1 on failure.
> + */
> +int xendevicemodel_bind_pt_msi_irq(
> +    xendevicemodel_handle *dmod, domid_t domid, uint32_t machine_irq,
> +    uint8_t gvec, uint64_t msi_addr, uint32_t msi_data, uint64_t gtable,
> +    int unmasked);
> +
> +/**
> + * This function unbinds a passthrough physical IRQ previously bound
> + * with xendevicemodel_bind_pt_msi_irq.
> + *
> + * @parm dmod a handle to an open devicemodel interface.
> + * @parm domid the domain id to be serviced.
> + * @parm machine_irq the physical IRQ number (pirq).
> + * @parm gvec the guest interrupt vector.
> + * @parm msi_addr the MSI address.
> + * @parm msi_data the MSI data.
> + * @return 0 on success, -1 on failure.
> + */
> +int xendevicemodel_unbind_pt_msi_irq(
> +    xendevicemodel_handle *dmod, domid_t domid, uint32_t machine_irq,
> +    uint8_t gvec, uint64_t msi_addr, uint32_t msi_data);
> +
>  #endif /* XENDEVICEMODEL_H */
>  
>  /*
> diff --git a/tools/libs/devicemodel/core.c b/tools/libs/devicemodel/core.c
> index 8e619eeb0a..4a52fe4750 100644
> --- a/tools/libs/devicemodel/core.c
> +++ b/tools/libs/devicemodel/core.c
> @@ -645,6 +645,50 @@ int xendevicemodel_nr_vcpus(
>      return 0;
>  }
>  
> +int xendevicemodel_bind_pt_msi_irq(
> +    xendevicemodel_handle *dmod, domid_t domid, uint32_t machine_irq,
> +    uint8_t gvec, uint64_t msi_addr, uint32_t msi_data, uint64_t gtable,
> +    int unmasked)
> +{
> +    struct xen_dm_op op;
> +    struct xen_dm_op_bind_pt_msi_irq *data;
> +
> +    memset(&op, 0, sizeof(op));
> +
> +    op.op = XEN_DMOP_bind_pt_msi_irq;
> +    data = &op.u.bind_pt_msi_irq;
> +
> +    data->machine_irq = machine_irq;
> +    data->gvec = gvec;
> +    data->data = msi_data;
> +    data->addr = msi_addr;
> +    data->gtable = gtable;
> +    if ( unmasked )
> +        data->flags |= XEN_DMOP_MSI_FLAG_UNMASKED;
> +
> +    return xendevicemodel_op(dmod, domid, 1, &op, sizeof(op));
> +}
> +
> +int xendevicemodel_unbind_pt_msi_irq(
> +    xendevicemodel_handle *dmod, domid_t domid, uint32_t machine_irq,
> +    uint8_t gvec, uint64_t msi_addr, uint32_t msi_data)
> +{
> +    struct xen_dm_op op;
> +    struct xen_dm_op_bind_pt_msi_irq *data;
> +
> +    memset(&op, 0, sizeof(op));
> +
> +    op.op = XEN_DMOP_unbind_pt_msi_irq;
> +    data = &op.u.bind_pt_msi_irq;
> +
> +    data->machine_irq = machine_irq;
> +    data->gvec = gvec;
> +    data->data = msi_data;
> +    data->addr = msi_addr;
> +
> +    return xendevicemodel_op(dmod, domid, 1, &op, sizeof(op));
> +}
> +
>  int xendevicemodel_restrict(xendevicemodel_handle *dmod, domid_t domid)
>  {
>      return osdep_xendevicemodel_restrict(dmod, domid);
> diff --git a/xen/arch/x86/hvm/dm.c b/xen/arch/x86/hvm/dm.c
> index 3b53471af0..3d530d948f 100644
> --- a/xen/arch/x86/hvm/dm.c
> +++ b/xen/arch/x86/hvm/dm.c
> @@ -7,12 +7,15 @@
>  #include <xen/guest_access.h>
>  #include <xen/dm.h>
>  #include <xen/hypercall.h>
> +#include <xen/iocap.h>
> +#include <xen/iommu.h>
>  #include <xen/ioreq.h>
>  #include <xen/nospec.h>
>  #include <xen/sched.h>
>  
>  #include <asm/hap.h>
>  #include <asm/hvm/cacheattr.h>
> +#include <asm/msi.h>
>  #include <asm/shadow.h>
>  
>  #include <xsm/xsm.h>
> @@ -322,6 +325,25 @@ static int inject_event(struct domain *d,
>      return 0;
>  }
>  
> +static uint32_t msi_addr_to_gflags(uint64_t addr, uint32_t data, bool masked)
> +{
> +    uint32_t tmp = (uint32_t)addr;
> +
> +    return MASK_INSR(MASK_EXTR(tmp, MSI_ADDR_DEST_ID_MASK),
> +                     XEN_DOMCTL_VMSI_X86_DEST_ID_MASK) |
> +           MASK_INSR(MASK_EXTR(tmp, MSI_ADDR_EXT_DEST_ID_MASK),
> +                     XEN_DOMCTL_VMSI_X86_EXT_DEST_ID_MASK) |
> +           MASK_INSR(MASK_EXTR(tmp, MSI_ADDR_REDIRECTION_MASK),
> +                     XEN_DOMCTL_VMSI_X86_RH_MASK) |
> +           MASK_INSR(MASK_EXTR(tmp, MSI_ADDR_DESTMODE_MASK),
> +                     XEN_DOMCTL_VMSI_X86_DM_MASK) |
> +           MASK_INSR(MASK_EXTR(data, MSI_DATA_DELIVERY_MODE_MASK),
> +                     XEN_DOMCTL_VMSI_X86_DELIV_MASK) |
> +           MASK_INSR(MASK_EXTR(data, MSI_DATA_TRIGGER_MASK),
> +                     XEN_DOMCTL_VMSI_X86_TRIG_MASK) |
> +           (masked ? 0 : XEN_DOMCTL_VMSI_X86_UNMASKED);
> +}
> +
>  int dm_op(const struct dmop_args *op_args)
>  {
>      struct domain *d;
> @@ -350,6 +372,8 @@ int dm_op(const struct dmop_args *op_args)
>          [XEN_DMOP_relocate_memory]                  = sizeof(struct xen_dm_op_relocate_memory),
>          [XEN_DMOP_pin_memory_cacheattr]             = sizeof(struct xen_dm_op_pin_memory_cacheattr),
>          [XEN_DMOP_nr_vcpus]                         = sizeof(struct xen_dm_op_nr_vcpus),
> +        [XEN_DMOP_bind_pt_msi_irq]                  = sizeof(struct xen_dm_op_bind_pt_msi_irq),
> +        [XEN_DMOP_unbind_pt_msi_irq]                = sizeof(struct xen_dm_op_bind_pt_msi_irq),
>      };
>  
>      rc = rcu_lock_remote_domain_by_id(op_args->domid, &d);
> @@ -607,6 +631,83 @@ int dm_op(const struct dmop_args *op_args)
>          break;
>      }
>  
> +    case XEN_DMOP_bind_pt_msi_irq:
> +    {
> +        const struct xen_dm_op_bind_pt_msi_irq *data =
> +            &op.u.bind_pt_msi_irq;
> +        struct xen_domctl_bind_pt_irq bind = {
> +            .machine_irq = data->machine_irq,
> +            .irq_type = PT_IRQ_TYPE_MSI,
> +        };
> +        int irq;
> +
> +        rc = -EINVAL;
> +        if ( data->pad0 || data->pad1 )
> +            break;
> +
> +        if ( data->flags & ~XEN_DMOP_MSI_FLAG_UNMASKED )
> +            break;
> +
> +        irq = domain_pirq_to_irq(d, bind.machine_irq);
> +
> +        rc = -EPERM;
> +        if ( irq <= 0 || !irq_access_permitted(current->domain, irq) )
> +            break;
> +
> +        bind.u.msi.gvec = data->gvec;
> +        bind.u.msi.gflags =
> +            msi_addr_to_gflags(data->addr, data->data,
> +                               !(data->flags & XEN_DMOP_MSI_FLAG_UNMASKED));
> +        bind.u.msi.gtable = data->gtable;

Retrofitting the new interface into the old one seems weird.  I would
do it the other way around - implement the old bind domctl on top of
an interface that's more suited for the new DM op.

That way you avoid having to expand gflags with extended destination
field.

> +
> +        rc = -ESRCH;
> +        if ( is_iommu_enabled(d) )
> +        {
> +            pcidevs_lock();
> +            rc = pt_irq_create_bind(d, &bind);
> +            pcidevs_unlock();
> +        }
> +        if ( rc < 0 )
> +            printk(XENLOG_G_ERR
> +                   "pt_irq_create_bind failed (%ld) for dom%d\n",
> +                   rc, d->domain_id);
> +        break;
> +    }
> +
> +    case XEN_DMOP_unbind_pt_msi_irq:
> +    {
> +        const struct xen_dm_op_bind_pt_msi_irq *data =
> +            &op.u.bind_pt_msi_irq;
> +        struct xen_domctl_bind_pt_irq bind = {
> +            .machine_irq = data->machine_irq,
> +            .irq_type = PT_IRQ_TYPE_MSI,
> +        };
> +        int irq;
> +
> +        rc = -EINVAL;
> +        if ( data->pad0 || data->pad1 )
> +            break;
> +
> +        irq = domain_pirq_to_irq(d, bind.machine_irq);
> +
> +        rc = -EPERM;
> +        if ( irq <= 0 || !irq_access_permitted(current->domain, irq) )
> +            break;
> +
> +        rc = -ESRCH;
> +        if ( is_iommu_enabled(d) )
> +        {
> +            pcidevs_lock();
> +            rc = pt_irq_destroy_bind(d, &bind);
> +            pcidevs_unlock();
> +        }
> +        if ( rc < 0 )
> +            printk(XENLOG_G_ERR
> +                   "pt_irq_destroy_bind failed (%ld) for dom%d\n",
> +                   rc, d->domain_id);
> +        break;
> +    }
> +
>      default:
>          rc = ioreq_server_dm_op(&op, d, &const_op);
>          break;
> @@ -643,6 +744,7 @@ CHECK_dm_op_remote_shutdown;
>  CHECK_dm_op_relocate_memory;
>  CHECK_dm_op_pin_memory_cacheattr;
>  CHECK_dm_op_nr_vcpus;
> +CHECK_dm_op_bind_pt_msi_irq;
>  
>  int compat_dm_op(
>      domid_t domid, unsigned int nr_bufs, XEN_GUEST_HANDLE_PARAM(void) bufs)
> diff --git a/xen/include/public/hvm/dm_op.h b/xen/include/public/hvm/dm_op.h
> index 2bf0fdc1ae..fd0f3a6a99 100644
> --- a/xen/include/public/hvm/dm_op.h
> +++ b/xen/include/public/hvm/dm_op.h
> @@ -444,6 +444,28 @@ struct xen_dm_op_nr_vcpus {
>  };
>  typedef struct xen_dm_op_nr_vcpus xen_dm_op_nr_vcpus_t;
>  
> +#define XEN_DMOP_bind_pt_msi_irq   21
> +#define XEN_DMOP_unbind_pt_msi_irq 22
> +
> +struct xen_dm_op_bind_pt_msi_irq {
> +    /* IN - physical IRQ (pirq) */
> +    uint32_t machine_irq;
> +    /* IN - guest vector */
> +    uint8_t  gvec;

If you pass the address and data MSI fields there's no need to also
pass the vector, this can be obtained by Xen from the MSI fields?

> +    uint8_t  pad0;
> +    uint16_t pad1;
> +    /* IN - MSI data (vector, delivery, trigger) */
> +    uint32_t data;
> +    /* IN - flags */
> +    uint32_t flags;
> +#define XEN_DMOP_MSI_FLAG_UNMASKED (1u << 0)
> +    /* IN - MSI address (0xfeexxxxx, includes ext dest) */
> +    uint64_aligned_t addr;
> +    /* IN - MSI-X table base GFN, 0 for MSI */
> +    uint64_aligned_t gtable;
> +};
> +typedef struct xen_dm_op_bind_pt_msi_irq xen_dm_op_bind_pt_msi_irq_t;
> +
>  struct xen_dm_op {
>      uint32_t op;
>      uint32_t pad;
> @@ -468,6 +490,7 @@ struct xen_dm_op {
>          xen_dm_op_relocate_memory_t relocate_memory;
>          xen_dm_op_pin_memory_cacheattr_t pin_memory_cacheattr;
>          xen_dm_op_nr_vcpus_t nr_vcpus;
> +        xen_dm_op_bind_pt_msi_irq_t bind_pt_msi_irq;
>      } u;
>  };
>  
> diff --git a/xen/include/xlat.lst b/xen/include/xlat.lst
> index 9d08dcc4bb..9236394786 100644
> --- a/xen/include/xlat.lst
> +++ b/xen/include/xlat.lst
> @@ -107,6 +107,7 @@
>  ?	dm_op_map_mem_type_to_ioreq_server hvm/dm_op.h
>  ?	dm_op_modified_memory		hvm/dm_op.h
>  ?	dm_op_nr_vcpus			hvm/dm_op.h
> +?	dm_op_bind_pt_msi_irq		hvm/dm_op.h
>  ?	dm_op_pin_memory_cacheattr	hvm/dm_op.h
>  ?	dm_op_relocate_memory		hvm/dm_op.h
>  ?	dm_op_remote_shutdown		hvm/dm_op.h
> -- 
> 2.51.0
> 
> 
> 
> --
> Julian Vetter | Vates Hypervisor & Kernel Developer
> 
> XCP-ng & Xen Orchestra - Vates solutions
> 
> web: https://vates.tech
> 


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 14:15:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 14:15:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249525.1546999 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzbOV-0006h6-Sb; Mon, 09 Mar 2026 14:15:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249525.1546999; Mon, 09 Mar 2026 14:15:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzbOV-0006gz-Pg; Mon, 09 Mar 2026 14:15:39 +0000
Received: by outflank-mailman (input) for mailman id 1249525;
 Mon, 09 Mar 2026 14:15:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mqfy=BJ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vzbOU-0006gs-3p
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 14:15:38 +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 70cbc5a7-1bc2-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 15:15:36 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA6PR03MB7830.namprd03.prod.outlook.com (2603:10b6:806:42a::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Mon, 9 Mar
 2026 14:15:29 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.023; Mon, 9 Mar 2026
 14:15: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: 70cbc5a7-1bc2-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fUVf/R6q+LHYBCiF9piyj1uuWEH+7m3ElnZjC4Eokc9jq2xwdcUxjT3DJ0HkbDS+JUpz7mJzxjzyXDPWoTAKpTJINOzI6EtyT0ewa9qFxhVpjkM7kYrfkEViD3jCoIjEqezi/LVXQLfduW29eJT7M/WLDAXNOZ1Zhxboo478vfJfhXwLdBQwfJtfgJ/ULKyD9C38F/2qCPboY9oipwYe2J3LZ3HwZoP67tZ8qqBKj0+XoOYEDUZLfNzwOcI9XY/JfETnbYOGqWJQwdYfYf5Ej6H58a7ABLn+rbzJ35FzV0nwvyTn+9Yle3AqGW6gL5aQ3liCzDnrA3eiTWK48/F97w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=80fCUVdzrqGKZAn6+lCyvIb3dy6nmA1vd/zWivUKgGA=;
 b=f9K4R/leup7uDzOoVoQHyGvqz4rnmgzYh7DY0HWp3set9J55YdR3HqntDqHd3LB5HB0fuSyy+jJJ4YR//giBj7j4jWWS9HP63v+k9y1MB/at+Z6lBn/dZ963W6iTgaUXVGWp5a27pBs78ne+vqw3nVwXAH0YNknuZevnn/CO13yoOxTZXNmbOR8LewBuyVqd2Fom6wADDCFu1Dbu+fOw/t20C4Q87xU+V4i0oJ3biJAVwquYNJ1UhWvqutTnIO16ydXvqN7ZBqdlFR5zrols/kBV0hbshcl96/OG0xOGu8lfvDNfHEz6owUWwO+z2mdEIpW0QnsKMMSqjazaDVcbCw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=80fCUVdzrqGKZAn6+lCyvIb3dy6nmA1vd/zWivUKgGA=;
 b=zmiT2dquSlEUM3kCcD4oRK1j7FtGsGo2wEmNbC4RB9DJeYu5bpzZs7oHkQZcj7YfPFsrT2S5K4OTCTqcPUSqhjhC4l5xf3nAAbdHZ99YWCNe5d1j0WM21US5oJGOs/m9UyAVuP8xdgYH9CjCGgjRCk8qbQ+D78d8gW0FFGyVHVk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 9 Mar 2026 15:15:26 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Edwin =?utf-8?B?VMO2csO2aw==?= <edwin.torok@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH v4] tools/tests/x86_emulator: avoid duplicate symbol
 error with clang: use -O0
Message-ID: <aa7V_nOG0ctnjxH3@macbook.local>
References: <d0178858e5f3ff7a8b64e822b55c6179adc92ea6.1773052835.git.edwin.torok@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <d0178858e5f3ff7a8b64e822b55c6179adc92ea6.1773052835.git.edwin.torok@citrix.com>
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_|SA6PR03MB7830:EE_
X-MS-Office365-Filtering-Correlation-Id: 986a7618-eb85-4f7e-c607-08de7de65123
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:
	kjnGVeKdISmXwx1mK2dlriFjC6uZ86cQZl8jgWT159efEdjl7IRyBFwKxhMG5l54i4qAiPY8b+OJP2RQsrEUYkOM/F6rjNXplnmL2a+FAKgzYOkfS55wCMPQVu7XamHwoaxON39IEaXhsXYBoAL+7NBmtX72hscsYBiCGR56GmWpslKwT4jMRvkV2b+Pk0CRMz8suwIPzawigI8T+xw+PmeKXosxJMhuZ5yuxTnGRFCwjA37+zKGUYaHpwKHp7aZB/SjvcE57y/dgFGThj4ZgUxSHe9YJ1RN7/W6YRKGdIAsHgEkmYnBaVVnKA7CzgjFXCTNuepzBkVpeeORmbhWyxQzVc7G9En8HFYvQR+NGaZAXWwUznHaTymZkIRDLL/rd46vvw+Km84RgXgm9iS7Gj7Ji13j5C5PNmssfZDByELypEdeRwSI/nYB6BNZ3USjAFVrnyZIipu8wKR22kaA1qYfji8+l3R6aqjT7+JWS7vO3hJ0Y1+BUifaJpGoPFuiaQI1xi26Xeve6dU49zJgmKfsrbm7wTs7Eyq9CfsFTWmpscsq0exS2EKhVExPdCDgdme+0Wc7LJn8J7jUq5+eDEIejlvmAx1EwZZ1SfuK+rmmnJMt6LLcrREtzfAsPJqtKW8x5FsPAWIe2ey/DlEr9fbdzu56OrDl2e51YzYdUP07SmkSnsdMKuYe3tp6Qba+aM65QMDjhY9KBqMkJ8YTprEEsx8zjRYFFDQy2tbRVac=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bU5NZHFrUVRENFNTNzA0cnAwbC9BQytzcDlUMFBKY044LzNwWSs3KzNpbVU4?=
 =?utf-8?B?dkNHOCtXWlk4ZGVhbVZWSCs1TndHMWVNaHhTdDRtYU9oZWZtM2hRRlZnYmVX?=
 =?utf-8?B?MmorSEN2U044QkJmN0NMZGZKY081dS9QcURaYVF6R2NLWUNmK0NKK25BMWkv?=
 =?utf-8?B?bEZaY1k1cHFPeFRVR0dRQ3VwU1MvQjlvQTFqTFA0MDNvNHBMOWhnZUVTREdV?=
 =?utf-8?B?VmFXTlFuL0tSejZQb1RDL1NGUjBXUWtWNysza0liUTZaNEo5QWNjTnN4RXhS?=
 =?utf-8?B?ck5ZbjI3VHNoWklhOVA2SWc0WFlJQVJFRVVVbkVoRDBiQndwZy9YZmNOTzF4?=
 =?utf-8?B?MlZGRVFwUnVocy85VXlXcUVYMEpJaGdoSVZIcUs1eFFBd2lmckQ5bGtjOFBh?=
 =?utf-8?B?YjBxdlkyL2g0cEdtbzdsZ01ZdXBxLzRMN1hWa1hpbE96ZmJBWVpqclpDN1N2?=
 =?utf-8?B?aUQrQm1rM0x6MFVxdkZ0eTVvWVp4dUU3TWFqZ1YrNytNNDRmVHlVUnhBTEVC?=
 =?utf-8?B?ZitEbG5HcktYQjM5SEJmWWdIN2c2NmZoeENTaG4xWUpWdHZSOE8rYTAvZWl0?=
 =?utf-8?B?MVdnY1F4QTE5T2hSenpKMlN2TG9qN05wY3p2b1VTQnliZWZLa3oxeU11WU1Z?=
 =?utf-8?B?TVNEcDAvUlhoaWNZMS9wU2JobjlkRENRRHlxT3BoL0E4UzIrcUkxMHRSVUFi?=
 =?utf-8?B?QU5YdHVrMkxON25xYTByOWgzNmZPekpvWGhROHN4WWxPb05GQ2twLzUrMWtD?=
 =?utf-8?B?MU9udFpOcER5RzlGRm5aK1Q2QmhKR3FmOVZvdjdKYUZjWjR1NXVDb1RoQ2xW?=
 =?utf-8?B?cTVXV2duMzhhSmVhU2VEajdaWjkrYnA4c3ByVENERExJWVIzT1oxWThlcGRR?=
 =?utf-8?B?TzRRbUZTM0IxaWFZOUpPRStVOVR1Z3RMT0hmR1FUTW5wZlozVXhnOHdZNUhn?=
 =?utf-8?B?Mm91WFI0bWJvMzZlWlIzaW9nb0l0aklGU0hkcUZoS1BrMEgrSU8ycGhBUU5D?=
 =?utf-8?B?ckNaN0lKZkM0b29YWWlWYmE0SEFYczZCdnNMT0ZYQ3RXSGJmWVlpZzNlMDd1?=
 =?utf-8?B?VnpYRERKbG9XVTRpZjlxNWYyK21DaEkyeGxGTGF6a3ZqbDR1cWMyK1dmTXZB?=
 =?utf-8?B?YWhIVG9ZTjdCU0ExaEpHUHljWVkvUWRIQ3pXQUdGbUkxNGFzQUZ3alp0OFNn?=
 =?utf-8?B?WDkvWWdnTUVJcWlZTEQwejdMV1Q1SjBQbkRzSU44MXBJZUVEc203bXJWRHBH?=
 =?utf-8?B?NGpTUGpXTkM0YllYNXJCVXlKYll2aVlxS0NJY3FxUU4zQ0xzeE9PQnZnZGNk?=
 =?utf-8?B?ZFpiOWRieUQ3QXhnTWdHeU5DckRyRzlIWlJtNzEzY3pmdXlmcFFLZVRMMkdo?=
 =?utf-8?B?THc1Z0tidXF4YWVNNWlRSWxPblRjckJoTmRlK1FUQkkrZWs0NzVmRGZxaEZQ?=
 =?utf-8?B?bi9ITC9rOS9YTnkvNUV2aDJjLzZ3UUZOYUxEVm5WLzhuVHJLb1RLN0E5MnAy?=
 =?utf-8?B?bHlrci9NMVovYnB0eGpKSllUNHg2V3k5TXVuYWRNZXlUQUgvVkppOVpUMVhJ?=
 =?utf-8?B?YU5ZQ0NCamRHaVZFWmc1T2wyZW5rc3hVODUya1VrM1hhS2hJR2x2YnIyNzd0?=
 =?utf-8?B?R2svOUswUVdpcld4YVc4RmpHMTdBZ1hVbiswM3BHcHlUZTZMZE9YM0Qwd3VQ?=
 =?utf-8?B?L3NUaVBaVEVQV0pZaFgzUnhzS2RIUUhScmtYZWpxSHYzOUk3Q2FkbXQ4UTZZ?=
 =?utf-8?B?TlhPc2Iza0ZuRXJSbFQvcDIyc012aHd3TmpqMGxENUhMMkk5d2I1N0RmTXJz?=
 =?utf-8?B?VTF3UlM5UDdCWlZNbStPMHNhRWJhWExaangvOXRtMFVSb0lpMmI4ZlRjYklU?=
 =?utf-8?B?d2Y3OTB1bzBhRmpLbEttNTc4NDVSMCt0bUE5U3BON3RnUVNMQmRxa0Z0VjJl?=
 =?utf-8?B?THNDQU9WQzBkdGJscTNmYlVrRUh5Umt6WThmdzNOQ1NPQ09CZEVuZjhDVVRY?=
 =?utf-8?B?Z1NVNnNPN3A0TUF2SDBtVDF5eTArWGNKellTYjk3SGlRa2taakFuc3A5Z2RZ?=
 =?utf-8?B?dFpyODdKKzdYNlhOWVY0NDJkMkFuaHFRN2tBeXhITjhidVFzZnQxOENzUmVP?=
 =?utf-8?B?VWJMMDRGaEZiMWhKSkdTTTlBL0FKeXdUU1VSOUdmckR2ZXgzQllZLzFnUUxk?=
 =?utf-8?B?NXdvZmFrZ1JtU0JFVnRDbFJmbENqRGYzZmlPaFdaYnFEeVFsdExhbXdmYmZN?=
 =?utf-8?B?bERjYlJ0MDRDRmR1WlZUZlo5clduVTJLUSs4S3JHTWsxMlBzSjFNS0ZjWHpS?=
 =?utf-8?B?eEZuL0pBMGJRLy84SWNJK080K1pRT01PR3lLYndHSUpVSjZteFhaUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 986a7618-eb85-4f7e-c607-08de7de65123
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Mar 2026 14:15:29.3110
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: mV2JQ7RgZMvrxFy4dmr0LLpCGSoZUkwdlck4HpgJ8rmbn7CCyJXFSGct7zy2CBvIqI8JjtAsGwYmMLs5bXka5A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR03MB7830

On Mon, Mar 09, 2026 at 10:41:35AM +0000, Edwin Török wrote:
> clang would duplicate the loop body and end up with a double definition
> of the symbol:
> ```
> /tmp/test_x86_emulator-0f3576.s:27823: Error: symbol `vmovsh_to_mem' is already defined
> /tmp/test_x86_emulator-0f3576.s:27825: Error: symbol `.Lvmovsh_to_mem_end' is already defined
> ```
> 
> Until a better solution is found: reduce optimizations in the test runner.
> 
> Using -Os might also work, but we can't rely on the size optimization
> always avoiding the duplication of asm blocks.
> This is test code, not performance critical code, and -O0 is more future
> proof.
> However for debugging -Og is recommended over -O0, and this still
> avoids the duplicate label problem.
> 
> Signed-off-by: Edwin Török <edwin.torok@citrix.com>

Building the x86 emulator test harness is currently gated on:

ifneq ($(clang),y)
SUBDIRS-$(CONFIG_X86) += x86_emulator
endif

So I think there should be a further patch (or done here) that removed
this check.  And then we should also run the test harness from one of
the LLVM FreeBSD builds ideally.

Have you tested with a full LLVM based toolchain (so also using LLVM
linker?)

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 14:37:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 14:37:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249535.1547010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzbjE-00015U-Hm; Mon, 09 Mar 2026 14:37:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249535.1547010; Mon, 09 Mar 2026 14:37: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 1vzbjE-00015N-DP; Mon, 09 Mar 2026 14:37:04 +0000
Received: by outflank-mailman (input) for mailman id 1249535;
 Mon, 09 Mar 2026 14:37: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=lNRQ=BJ=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vzbjC-00015G-UI
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 14:37:03 +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 6dd13596-1bc5-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 15:37:00 +0100 (CET)
Received: from SA3PR03MB7419.namprd03.prod.outlook.com (2603:10b6:806:39c::6)
 by SJ0PR03MB5408.namprd03.prod.outlook.com (2603:10b6:a03:279::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Mon, 9 Mar
 2026 14:36:56 +0000
Received: from SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc]) by SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc%6]) with mapi id 15.20.9678.024; Mon, 9 Mar 2026
 14:36: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: 6dd13596-1bc5-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=O7biId/RZDq2zRT2MEMUxGAbRn1zhiREYSmSZQfSQbK5VtB2s0LUeNXPKxMBgesm53hLs2ZWT4PYhV/SrgEhYJTgYfCKTTGppLY0XMq4Ipt/hEyEpShWktDJjO7YLO+5+16+AnUWJy2JbhtLLH7ZhsO0YWGuGmA5tpDJAwXbqqGVJHQ5R3YYOGgAS2PCyytc7rRmN50BiIMYz3nejjc28rJjDaZObIC4QGIj/a0e4ECLA8y1yXWOK8P58yiDX/DUGFbP9W+2uyySUsfR4gWQ2LwoS4N259pIN4nmxJdIhbVOnVADAcSdoF7QNsaJ2wd7GyKqCdv7+FRJYPPuWf8tzQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OMn9meAwVwU60QdOvQPVGX3C2BUIMnIRG9tYAyWqk3Y=;
 b=Cbutw7C/zwXUyfD8hgKat7VXiJ7CRV0mU8GgTU68SmzwFoL78cuJTs0rWuPJFFGfdcHY5UsnQ36aQzNespF1UDTkns6d68zTHU6FMW+O8waNYzQ/+sXvvmSS/KgcNA6Wc5vcP9mHlPXdmit/0CdHjxYzFa1BzuUOf6CNhTB6XW2Qo01rJ3HdJg2qMMgoZ1gG2OWUiR4Sy1UQGCcKIwUvl1NDCEUEeMLIuqBCv/K3MLqL65OKnxUATeOoP3Z0k60WjglujnYIQIF4RpBDms7e7DUEqWfHuXW+DPuG831qgS/iy5c/TQ3rkkZEFYJIBPoLyrnsrYlRAqWHiLpS2nT/3Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=OMn9meAwVwU60QdOvQPVGX3C2BUIMnIRG9tYAyWqk3Y=;
 b=gnIyPzcab0Of8ra0nZwtiOUJxSxfp3HQfMX3td6dyUI/8tHAFGbHolfz+SBvH6xHdmqNC5eiHkeEpsYn0th/nS8fHiRw+lXRpR8wQI0H54LwZOPqOmtW3nfCzIDUlZRwfknlg+VMBqLiszWAQQVmMfSy4JSHTUKhcUkrYfFFL2s=
From: Edwin Torok <edwin.torok@citrix.com>
To: Roger Pau Monne <roger.pau@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Jan
 Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH v4] tools/tests/x86_emulator: avoid duplicate symbol error
 with clang: use -O0
Thread-Topic: [PATCH v4] tools/tests/x86_emulator: avoid duplicate symbol
 error with clang: use -O0
Thread-Index: AQHcr7FQiijdIWu12E6i9XJI47BDXrWmPvcAgAAF8wA=
Date: Mon, 9 Mar 2026 14:36:55 +0000
Message-ID: <630D14BE-E962-47EC-A2DD-4E152FA32EFE@citrix.com>
References:
 <d0178858e5f3ff7a8b64e822b55c6179adc92ea6.1773052835.git.edwin.torok@citrix.com>
 <aa7V_nOG0ctnjxH3@macbook.local>
In-Reply-To: <aa7V_nOG0ctnjxH3@macbook.local>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA3PR03MB7419:EE_|SJ0PR03MB5408:EE_
x-ms-office365-filtering-correlation-id: 7d8bc039-6db6-4e6c-6353-08de7de95032
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:
 EstzD/jhn+QNFAsBQh97VuUMUJicasaGV8JRqg+/WnXaDM3b/9RVOm2BhJCb+/fcvP2BxCUniXfTnNDBoOUtBMyVM4PNRkEY08lbBqyxPPlIVuq5cmhMUanRTI58AM+HzaWkfkx+FCWogBhY3h42WBJgp4Yz8BhYa5b3CPZX9DShqgO8RJQoU1jEKXziNx3gPN/khwO6Pe6GDcRJTIx6VNo5dYMV5JP6J07xkoH8+x/M6/o1WeoGjar7EdAb3Zx+KZWIb9JjjHUAHDZWFytvprvKe5v//0mRRWXniBwBNACIh9pHwi1NeiEkhKL6UG5OczTk4Kv1S6BdVtgb4CxEsSYEJWYBRKG5IOOJ4TneQEloMvQx4GVpk6OyX89q/9VTcrlUhNrmm3QC4p3UBvjrIG/1pZJGU7ZCoUfU9IkFUXAlK3gUZ6GmKdBkXxnJPGAIU6q/521ZEMOcqxnZrqWcOCJNZypPm0KMSiMesynN+6F0fb45yJy7IY1YDd/D9aJ6whqeIZHINMa4J+KU5ZNfC+nmcd90OaNxWvvvHUPaDaZslPq8nCwdxMt41MJYOnx6Rgc6smJYBa2Y8LNCRy5MTRQVi2Dh2Xs7MBrITGQGaVnsUWoXTGSscLJxogam9qSNjfrv2KDeesmt0oURZ8/3jvlkZxVeL3+bi/50unXYvtwOvjaGqV3hF12gJqO+/6fSLEyrWlgSSEA07GuGM+pgeWWmxPlyryAuVMUtbDcP6KtNLlBD8/HDpeOABAURum+U
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA3PR03MB7419.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?cG84cnpCaFNCSG5zMjZFV2dkTmZncHFrRXB1NUF6NWpyYWRPWTZLeDNvV3B1?=
 =?utf-8?B?WFdTL1ZlRVprdUpOc01ESU5KYjUzcGwvNHJnN1NQd3ZkQ1dFV3dNOFpoY3pt?=
 =?utf-8?B?N21OTmVaUHBPQ3lJeFMydHRvK0wrTElXTU9BT2lnSUVIY2MyR2N1aXcvNFl1?=
 =?utf-8?B?VXFBeXZGczdwcFJVNVYvQ0FUcXdldDNjZlVzSTZ3YWV5alZRTXJzRVhOUTNJ?=
 =?utf-8?B?WFM5bU5pZVB4cG5veEhxZzJYb0xXVnhFNmRsRzVadktDNVJydkFSSW9Na0pz?=
 =?utf-8?B?TFNvaWVFVFhxaXpRZ0Zqc2U2QTV1WFlmS1ZCeHdYeWhrTWQyQTlTVmt3Ritz?=
 =?utf-8?B?TmhkWlFLTlcvRnlZQlgrRlRxdGVwVXVuYThrdEZyUzNyM1lSUnQyQ1V4V0E4?=
 =?utf-8?B?U2VTM0RXeWExTFUyYXo2UXl3YXNvNVIwRkhjVThFV1JBclkvakhCeVY3WVFq?=
 =?utf-8?B?L1F5TFR3bkIwd3lJdk15ZTJMVzRSbG9zMkhZY29Wb0hrcnpRY3hBeXNCakZI?=
 =?utf-8?B?dkFzQnVuVWlIZWhYV1ZoSDZpZlFLOWxqK24xd2J4TGhIWW5SQWc0d0RFTDRa?=
 =?utf-8?B?bWlWM050RHhlU29zdE9iS0lRZW50V2VkK2JSK3hKY1VsRmpleWRRalo0dHd2?=
 =?utf-8?B?Z2I1ZmR6VE00N2lOcnNwNkxBdWdORUQyaFlZTmtteWdCY1R3Zm4vMWE2bnM2?=
 =?utf-8?B?NkFRRGlOOG1laVQvNnJMczR2bk1qZmw0a050ZVhKbFRXQkw2RFlvRmhxekM3?=
 =?utf-8?B?UVl6SWZZemo2ZHdFeFhlb3Z0QmtReCs4TlVib004bnVWcUlCQUpRN2dMTkNk?=
 =?utf-8?B?Q2kvd3FqSUg0MklpUE5OSVYycU9MaFJ1QVlGM2NsL0ZQajlhZUZ2eG9ad2R2?=
 =?utf-8?B?dHF3Qks0ay9GMkdSU2g0NjJjQnhPQzVsWk5EK2huMU5BeFRuU0JQUGNlR1JS?=
 =?utf-8?B?MGUwNkpuY2h5K3hTSi9SWjVMK0pOVTBvbmlSQ3h6UG43bzlSV0RPZWljSWlZ?=
 =?utf-8?B?akk1T1p2eDZNMmlpWWVRMHFnREprVWs1a09mK0lwZGtDSEZPaGwwQitHWTll?=
 =?utf-8?B?YUd0cmxZL3d4N2pkQzNDZ3NzSTM2clZET1pDeVc0R2JIN1A2aktqY08wb2Qx?=
 =?utf-8?B?NjlENFNVK1RLQ3RkKzZtME9QNEtEbnc5bXVMZmp1ZEhlL1FCREdPZnpFQm1T?=
 =?utf-8?B?WXB0TTBJU1VQc2J4dStDQnppYllNdDFiV1orUzFXVlFQbGpTY1pzZzVNMDRS?=
 =?utf-8?B?UENjWDRuVU42OGF2WWFaZ2JsTzV4U2paeUFiOWtVZ3UyNVJLcVBpQmg5STBi?=
 =?utf-8?B?eGtQMXd0R1IrQ1lMWUw5WnVSaXMyTVpsYkVDWU94NkxpM2hGWkxoc2cxaWJw?=
 =?utf-8?B?K3pjUXFpWDliUk9zeUF2YXBoRXZOQVZtM3Y2aVhnbVg1RVdCY1ExcE12V2E4?=
 =?utf-8?B?eHZTd3o5Yzk4bmVlUG4yUGNTQ0RvZkZPeGtEMjV6OGRaRUNYSGI1ajBNSEhK?=
 =?utf-8?B?bTJTZUoydktHRkFWaENzVHQrVVFpYUFOWkZjK3ErajVjYWFKM2RNNzdxcDdS?=
 =?utf-8?B?dTd5YmtPWFc5K3dqSjdac0t5dldJdFhCYjlqc3g3UTN1NDFmV1FjUmxYNE9D?=
 =?utf-8?B?WXczTExKRTFwaDI5RURaaEp1R1Vic3JjZS9vVWVuZnFkQUVXaTdRWU8vZUFi?=
 =?utf-8?B?c05BSjlhUEhWS2V2d2RFQzhKRjZ0RmFJZkVaVkpIRGFuRitHNFF1dS90bmVu?=
 =?utf-8?B?WkoxcGE0RE5McnZyb2xvVDh3OTdJMnIvNUVpSXpkbUFsTDM4dVBicEszUCth?=
 =?utf-8?B?NThJUjhUSzVoUDUzQ0M3MVk5Yjl4SVJ3QkNwQmViWDk5TE1ycHFBMzhtc0FC?=
 =?utf-8?B?WFFUL3dVTWMydVZTOENwRjRmd1djQ1VKSWEvdjFaRFI3VXhmdWI4ZyttMWhv?=
 =?utf-8?B?RitEMUpsdmVic1NueThGbk1oTTlWVEdYZTZ4TFl2Z1d3RW1kcWtSazliSzNS?=
 =?utf-8?B?Zi84bnF5OTFSTzdCZkpKYlZCNFlNdStRUVlhYU1LbjBPMEJpcTIrbGpnN3Uw?=
 =?utf-8?B?NHc5MFJ6OXFHMDg3U2FJOXRHbGtzcEh0b3E2TkFmNkllM01YWm9HbVBJRUFj?=
 =?utf-8?B?RUFjNFNXcFN2OStGRWpuTC9LaTV2dThnN0dFYUc5YVNzUWVPV214MStFeU5Y?=
 =?utf-8?B?YkZ5UmNIeHlHM2R2UUtvOWIwYy91WHExR2crbUdJS2hXMVZjR0tGeGNtSUZL?=
 =?utf-8?B?TGEra21TWjZlVGt0ekdrWHNQTzFKakdkcjF6VVV2TzVXUitreXFPTitLdlJk?=
 =?utf-8?B?YUZIcnhwbCtQWDJiQURVNEttazBwZzAwM3Rtc3BwemxiWFBxNFdVcThBUUl3?=
 =?utf-8?Q?OtY42NnSf9qCRFM4=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <49CBA71D35CA6041BF82201DEFF07AE0@namprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA3PR03MB7419.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7d8bc039-6db6-4e6c-6353-08de7de95032
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Mar 2026 14:36:55.9016
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: rNBLnklxrPqfcYPks2ipmPtE3nSrJfk+QtPvLIOVfvAY+3eLcnHcpThdsl5+SBdsjjusKiSlHC8oQlmyxEFWtg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5408

DQoNCj4gT24gOSBNYXIgMjAyNiwgYXQgMTQ6MTUsIFJvZ2VyIFBhdSBNb25uZSA8cm9nZXIucGF1
QGNpdHJpeC5jb20+IHdyb3RlOg0KPiANCj4gT24gTW9uLCBNYXIgMDksIDIwMjYgYXQgMTA6NDE6
MzVBTSArMDAwMCwgRWR3aW4gVMO2csO2ayB3cm90ZToNCj4+IGNsYW5nIHdvdWxkIGR1cGxpY2F0
ZSB0aGUgbG9vcCBib2R5IGFuZCBlbmQgdXAgd2l0aCBhIGRvdWJsZSBkZWZpbml0aW9uDQo+PiBv
ZiB0aGUgc3ltYm9sOg0KPj4gYGBgDQo+PiAvdG1wL3Rlc3RfeDg2X2VtdWxhdG9yLTBmMzU3Ni5z
OjI3ODIzOiBFcnJvcjogc3ltYm9sIGB2bW92c2hfdG9fbWVtJyBpcyBhbHJlYWR5IGRlZmluZWQN
Cj4+IC90bXAvdGVzdF94ODZfZW11bGF0b3ItMGYzNTc2LnM6Mjc4MjU6IEVycm9yOiBzeW1ib2wg
YC5Mdm1vdnNoX3RvX21lbV9lbmQnIGlzIGFscmVhZHkgZGVmaW5lZA0KPj4gYGBgDQo+PiANCj4+
IFVudGlsIGEgYmV0dGVyIHNvbHV0aW9uIGlzIGZvdW5kOiByZWR1Y2Ugb3B0aW1pemF0aW9ucyBp
biB0aGUgdGVzdCBydW5uZXIuDQo+PiANCj4+IFVzaW5nIC1PcyBtaWdodCBhbHNvIHdvcmssIGJ1
dCB3ZSBjYW4ndCByZWx5IG9uIHRoZSBzaXplIG9wdGltaXphdGlvbg0KPj4gYWx3YXlzIGF2b2lk
aW5nIHRoZSBkdXBsaWNhdGlvbiBvZiBhc20gYmxvY2tzLg0KPj4gVGhpcyBpcyB0ZXN0IGNvZGUs
IG5vdCBwZXJmb3JtYW5jZSBjcml0aWNhbCBjb2RlLCBhbmQgLU8wIGlzIG1vcmUgZnV0dXJlDQo+
PiBwcm9vZi4NCj4+IEhvd2V2ZXIgZm9yIGRlYnVnZ2luZyAtT2cgaXMgcmVjb21tZW5kZWQgb3Zl
ciAtTzAsIGFuZCB0aGlzIHN0aWxsDQo+PiBhdm9pZHMgdGhlIGR1cGxpY2F0ZSBsYWJlbCBwcm9i
bGVtLg0KPj4gDQo+PiBTaWduZWQtb2ZmLWJ5OiBFZHdpbiBUw7Zyw7ZrIDxlZHdpbi50b3Jva0Bj
aXRyaXguY29tPg0KPiANCj4gQnVpbGRpbmcgdGhlIHg4NiBlbXVsYXRvciB0ZXN0IGhhcm5lc3Mg
aXMgY3VycmVudGx5IGdhdGVkIG9uOg0KPiANCj4gaWZuZXEgKCQoY2xhbmcpLHkpDQo+IFNVQkRJ
UlMtJChDT05GSUdfWDg2KSArPSB4ODZfZW11bGF0b3INCj4gZW5kaWYNCg0KR29vZCBwb2ludCwg
SSBoYXZlbuKAmXQgc3BvdHRlZCB0aGF0Lg0KQWx0aG91Z2ggSSBkb27igJl0IHRoaW5rIHRoYXQg
ZmxhZyBpcyBzZXQgaWYgeW91IHNldCBDQz1jbGFuZy9IT1NUQ0M9Y2xhbmcgaW5zdGVhZCBvZiB1
c2luZyBjbGFuZz15Lg0KKEkgb25seSBkaXNjb3ZlcmVkIGNsYW5nPXkgYWZ0ZXIgSSBzdGFydGVk
IGZpeGluZyBzb21lIGNsYW5nIGJ1aWxkIGZhaWx1cmVzKS4NCg0KPiANCj4gU28gSSB0aGluayB0
aGVyZSBzaG91bGQgYmUgYSBmdXJ0aGVyIHBhdGNoIChvciBkb25lIGhlcmUpIHRoYXQgcmVtb3Zl
ZA0KPiB0aGlzIGNoZWNrLg0KPiAgQW5kIHRoZW4gd2Ugc2hvdWxkIGFsc28gcnVuIHRoZSB0ZXN0
IGhhcm5lc3MgZnJvbSBvbmUgb2YNCj4gdGhlIExMVk0gRnJlZUJTRCBidWlsZHMgaWRlYWxseS4N
Cg0KDQpSdW5uaW5nIHdpdGggY2xhbmcgd291bGQgY3VycmVudGx5IGZhaWwuDQpTZWUgaHR0cHM6
Ly9sb3JlLmtlcm5lbC5vcmcveGVuLWRldmVsLzEwQjFCN0Q5LTM1MkYtNDIwMy1BQzMwLTg4RUY2
NzQxMTRGNUBjaXRyaXguY29tLw0KVW50aWwgYSAoYmV0dGVyKSBzb2x1dGlvbiBpcyBmb3VuZCBm
b3IgdGhhdCwgaWYgSSByZW1vdmUgdGhlIGdhdGUgdGhlbiBJIGFzc3VtZSB0aGUgQ0kgd291bGQg
ZmFpbD8NCg0KSSB0aGluayBpdOKAmWQgYmUgdXNlZnVsIHRvIGVuYWJsZSBidWlsZC10ZXN0aW5n
IHdpdGggY2xhbmcgdGhvdWdoLCBzbyBJIGNvdWxkIHJlbW92ZSB0aGUgU1VCRElSUyBnYXRlLA0K
YW5kIGludHJvZHVjZSBhIGdhdGUgb24gdGhlIHRlc3RzL3g4Nl9lbXVsYXRvci9NYWtlZmlsZTpy
dW4gcnVsZSBpbnN0ZWFkPw0KDQo+IA0KPiBIYXZlIHlvdSB0ZXN0ZWQgd2l0aCBhIGZ1bGwgTExW
TSBiYXNlZCB0b29sY2hhaW4gKHNvIGFsc28gdXNpbmcgTExWTQ0KPiBsaW5rZXI/KQ0KDQpObywg
dGhlIGNsYW5nIEnigJltIHVzaW5nIGlzIGNvbmZpZ3VyZWQgdG8gdXNlIHRoZSBiaW51dGlscyBs
aW5rZXIgYnkgZGVmYXVsdC4NCg0KQmVzdCByZWdhcmRzLA0K4oCURWR3aW4=


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 14:49:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 14:49:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249544.1547018 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzbuq-0002oh-GZ; Mon, 09 Mar 2026 14:49:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249544.1547018; Mon, 09 Mar 2026 14:49:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzbuq-0002oa-Dp; Mon, 09 Mar 2026 14:49:04 +0000
Received: by outflank-mailman (input) for mailman id 1249544;
 Mon, 09 Mar 2026 14:49: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=ioCo=BJ=bounce.vates.tech=bounce-md_30504962.69aeddd7.v1-67f678a8485b4c94828b135b77d45798@srs-se1.protection.inumbo.net>)
 id 1vzbup-0002oS-Of
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 14:49:03 +0000
Received: from mail132-19.atl131.mandrillapp.com
 (mail132-19.atl131.mandrillapp.com [198.2.132.19])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 19846cf6-1bc7-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 15:48:57 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-19.atl131.mandrillapp.com (Mailchimp) with ESMTP id 4fV0JR4fpJz2lV
 for <xen-devel@lists.xenproject.org>; Mon,  9 Mar 2026 14:48:55 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 67f678a8485b4c94828b135b77d45798; Mon, 09 Mar 2026 14:48: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: 19846cf6-1bc7-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773067735; x=1773337735;
	bh=NWg12KnlU08APrJpMjl9dwlSxHpfdbJzVp82wdhFnM0=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=Qwzk+FnWJqJ3nJAA0v1B+jnHniSkZNyFWRbsQZpna/NvCTijObnuQ9mBQs+MwaXY/
	 jzEp3Sv1+AC2zAESeiolKZdkKbHGasPFGFNlZpm+o3EyM/8VbRdEk/6t6MabWCnA7y
	 sxIuOPF+8FwsvFh2iOEPYAhDgrbNzwYQlpSf7ccQOG7W1doQxZ8rPMpC8yjmkciA0Z
	 hcGx/0bsIOOSvRuE9arBgvI5eIGWXdFbDlrVpspdDfZcUyAwdjBrg3YzoIiSckULZm
	 JPy9mGPBACv9O2N/3DmyZ4F4IayeviL+Bc7dHEHsRCUC5JQuDynzVw613+HwQltqew
	 62bHNYmJPFEew==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773067735; x=1773328235; i=anthony.perard@vates.tech;
	bh=NWg12KnlU08APrJpMjl9dwlSxHpfdbJzVp82wdhFnM0=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=CECVm6uJAyQ6NaXVVuo7fMemNWA7A0z2fZc5vsFPCaHhHTbjWwM34I53qjeDu3JHm
	 iyp5/HS40pXiQTj9nA4tS/w/cis6hw/fPGbm0KvfgDgJY/gcmFEKNOGSo83jtMmPu2
	 JMoBLwvxOZk6gm/FMlPYnNSb9zYVxFgBXRNACPLB6zoYTIOURIvYeWiFRty7UBbDwj
	 63Z8BABtAIG6YXXy6Bw/CR3jf+IOA8gqq2SLJHeVYDeixgYzt7l4R4XUyodieQv8aW
	 7wQjEQFeaFpOnGexMTzkIWiooS3RARFeaWD8wXfnGJPsFIYjtvDgEe4M7ZLOH+DebR
	 +OFE8srOEIwpA==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[XEN=20PATCH]=20libxl:=20Fix=20device=5Fadd=20QMP=20calls=20with=20QEMU=209.2=20and=20newer?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773067734786
To: "Maximilian Engelhardt" <maxi@daemonizer.de>
Cc: xen-devel@lists.xenproject.org, "Jan Beulich" <jbeulich@suse.com>, "Juergen Gross" <jgross@suse.com>
Message-Id: <aa7d1kCW8HNejCgQ@l14>
References: <20251215135124.11410-1-anthony@xenproject.org> <92e6ecac-7a5f-4831-8116-0c34856f1175@suse.com> <aUAd_r3VN0kTVriG@l14> <2692705.Lt9SDvczpP@localhost>
In-Reply-To: <2692705.Lt9SDvczpP@localhost>
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.67f678a8485b4c94828b135b77d45798?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260309:md
Date: Mon, 09 Mar 2026 14:48:55 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Feb 19, 2026 at 02:29:07PM +0100, Maximilian Engelhardt wrote:
> On Monday, 15 December 2025 15:41:02 CET Anthony PERARD wrote:
> > On Mon, Dec 15, 2025 at 03:11:53PM +0100, Jan Beulich wrote:
> > > On 15.12.2025 14:51, Anthony PERARD wrote:
> > > > From: Anthony PERARD <anthony.perard@vates.tech>
> > > > 
> > > > QEMU used to ignore JSON types and do conversion string <-> integer
> > > > automatically for the command "device_add", but that was removed in
> > > > QEMU 9.2 (428d1789df91 ("docs/about: Belatedly document tightening of
> > > > QMP device_add checking")).
> > > 
> > > And older qemu accepts integers as well?
> > 
> > As the QEMU document explains about the removed feature is that they
> > should. We already have two users of `device_add` which use integers for
> > some arguments. And just to be sure, I've just tested with QEMU 8.0, the
> > patch works fine.
> > 
> > Cheers,
> 
> Can this patch be picked for the stable branches? I'm in particular interested 
> in 4.20 which is in Debian stable.

Done, thanks.


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 14:53:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 14:53:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249553.1547026 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzbyp-0004Li-Vi; Mon, 09 Mar 2026 14:53:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249553.1547026; Mon, 09 Mar 2026 14:53:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzbyp-0004Lb-T2; Mon, 09 Mar 2026 14:53:11 +0000
Received: by outflank-mailman (input) for mailman id 1249553;
 Mon, 09 Mar 2026 14:53:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0g9R=BJ=linaro.org=peter.maydell@srs-se1.protection.inumbo.net>)
 id 1vzbyo-0004LV-Uo
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 14:53:10 +0000
Received: from mail-yw1-x112d.google.com (mail-yw1-x112d.google.com
 [2607:f8b0:4864:20::112d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b0104d8f-1bc7-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 15:53:09 +0100 (CET)
Received: by mail-yw1-x112d.google.com with SMTP id
 00721157ae682-7986d231b3cso146093667b3.1
 for <xen-devel@lists.xenproject.org>; Mon, 09 Mar 2026 07:53:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b0104d8f-1bc7-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1773067988; cv=none;
        d=google.com; s=arc-20240605;
        b=ZDmw0P2xg3rzGpam7ekL8IaqS/+qwldA779uY2fzVd+APRS9O3xcJM7topL+/PYRM4
         z+dSwE784ygRur3Im1JhMZZx6qbD1tRefa+5iKai2c5h/TXLVFgxSmprVE4wfzEE9hB0
         U9yO3AIs+ZOfPtl/GGzH5eF15PJ8d0joP5aY1ncbMT8eU6wrCj5VbjSbtvULTa7tDx8H
         INPT7bfAvbhdhhNe9U1XQupjqTAH7Sy/Vhybamx6SpXgmVNE3Z94sniiimpQXVhBVxVK
         FCx1iMN1HOVksOxSp6ag53aNEbfGWzn0OTuSYBZIwHKDqgxOFsmgg93zfmNtjJamHNt8
         Ta4Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:dkim-signature;
        bh=Lmlr5xwlzExeVLyiIX4eKEZ6XfFdWyLdssC3qJF98xs=;
        fh=TDIhF0REsZYF3tEuaM1c9m2WWJLNBdvBT/MFEObGrQQ=;
        b=UO+eINfGdk2JTtI7ha4UY2LLpGBPanS+cQcV0j9RySgwDdb4fLsD1VS9vad1gug2wY
         uOtd/p+b5mvcajqhQAeUXaBY6pBkRt54WlBwa8o0CHr0Ravv/VFFvQqgpXW7eRwNsT2J
         HzEpbF/TGwHFsmlXX3kvoWKlxl87RTWl8BwdRwr9axNqjDqerwZvpJVmY9wzo0MzVyqV
         gRrLHPjQYl5nIygkMPryDs3IYFHe02XpiQNMRZov2NzwilSwkRlZzUN5JYA6CbH3J7rV
         LDxJL/H5X0lovWttPFO9mkja5vpcUiV+hiSElaSkI3sknknhIhjqkXQkOLs/6uzl8i7i
         G/yw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1773067988; x=1773672788; 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=Lmlr5xwlzExeVLyiIX4eKEZ6XfFdWyLdssC3qJF98xs=;
        b=jYUW3H1khmbdNhXoRHSWWLw/s76ZHHi1v+fT264rqLTl1/kpIu3htF0flrEVv94duC
         0/Iq7VVLLJQUcRVOW4InrsO7/YHK7n7KKHF/maCZc+THLc8Slg//z0qt4hOeC3QAxYUG
         qtfPldwmp5bkCNh8292TM28yxcpfjgK8pyfGZ2yuTKnPkaHnY5BYOtIq81pMFMERG2+u
         b++2XrTLMozzdX9KBZCtEfJ8QrUOTlPJuS/ex0XXZ1lDR3d+3nj+MpBYm94JQYCvr8nq
         /BzAKqw+NqSWqvD52lR5zDKZxY5wZA2Rb3o2cVAP+Gwg74/Kpc5oLGY/UuYdkkjcd+HY
         c0UA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773067988; x=1773672788;
        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=Lmlr5xwlzExeVLyiIX4eKEZ6XfFdWyLdssC3qJF98xs=;
        b=rQS8DGZBhNr7spXVpKBYmxTkkjrY/8Zso54aqdsx6/GGddSrs/9mWXUFnYQa8YATTi
         5amIe6wK/OS260gQ2O7qKMrwg1h16YsENlh4bxnTKN9nuGTpg5NcI359KHoDraXjt2jw
         yaI6zGguJAvfta8+f+nDWFpUiLtQsmvoQAOa8N9Gkf8RB4lF61tKEOcIWuz8WNFBAmec
         8AFcWbXKxiWSNZxcGVDZMsE08ePwiNiV1iJh6Z4CAFKSOtCkUFy6umIANrcPkTPMYhvv
         Zqlo3DffgQEUpnfo4EQaD0Qw3MxuzpNbVPHloAfvsSEf6478C3NUm/YR6jorNPDX5td2
         BRJg==
X-Forwarded-Encrypted: i=1; AJvYcCXYvlitBQ3L6rJWrTXDsGFX/AlvoIYzAV2SpWUuGWC/Y6v6V6xWn+fQljJRfHwtrG5HzjjBvfWvCnw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyHBeKBmlbGfTo0p4T0LYtWcRSv0SSKBeAbFTqiImqYmcSldwX/
	5OiqbASyXktf2WObgVdTZxxWVJO1pZIQA62SU/VWvCg/BfZrx6ngm7csN9Rhn+8Z2iAnaiWCcxk
	/PJw6N5BlrJn/Kn1GXx2wwW1S7pmYgnGsmJt4NFPjfg==
X-Gm-Gg: ATEYQzw4Zq6DCQ7MOlKXGHgpKNq0vGT1arxBR1LPR8VT2R0JfYzj7AOjQE18sZQe20L
	PCQ541TEx6ILOZTCi9loGfVWupSo8Puka94NZlEjsUTsZRaO4wMvW14JcBScshiSKJ/LdoF4MJ/
	KFCjL/SsWA+ozk5WDTD7TDfFhYv8u9aNe9tnAY6PwgoHBfAVlV2rIfK2chvQ1E1SWCCGrwwSlkB
	aAkcmyvGlwpfwwkXexQc0wWq7WfQpEor5yA7IpTd1iKQ9wThFopK5BI/N6s2z5xKv8mM4dYmy0R
	mhxq10Ts2QvXq5trt63qx/wluZmyy3gR2oyzDrr/VF1NIHHc0SVfkMuuv1Zy/2YjXLU=
X-Received: by 2002:a05:690e:444d:b0:64a:bde9:3423 with SMTP id
 956f58d0204a3-64d15477513mr6647221d50.9.1773067988458; Mon, 09 Mar 2026
 07:53:08 -0700 (PDT)
MIME-Version: 1.0
References: <20260309064436.51860-1-edgar.iglesias@gmail.com>
In-Reply-To: <20260309064436.51860-1-edgar.iglesias@gmail.com>
From: Peter Maydell <peter.maydell@linaro.org>
Date: Mon, 9 Mar 2026 14:52:56 +0000
X-Gm-Features: AaiRm52x_MZSsoQWEpX_SVubQ81MNXoACRIsTZMqUhmaBur07rlXpMyBFnbdJgk
Message-ID: <CAFEAcA90Xmi0iFXQj1Z7FaNJ+cqHNHL8sQ8yi6Yo2avKwRXY4w@mail.gmail.com>
Subject: Re: [PULL v1 0/5] xen: pvh: Add machine option to disable the mapcache
To: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Cc: qemu-devel@nongnu.org, sstabellini@kernel.org, anthony@xenproject.org, 
	edgar.iglesias@amd.com, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Mon, 9 Mar 2026 at 06:45, Edgar E. Iglesias <edgar.iglesias@gmail.com> wrote:
>
> From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
>
>   Merge tag 'pull-11.0-virtio-gpu-updates-060326-1' of https://gitlab.com/stsquad/qemu into staging (2026-03-07 11:22:16 +0000)
>
> are available in the Git repository at:
>
>   https://gitlab.com/edgar.iglesias/qemu.git tags/edgar/edgars-xen-queue-2026-02-09
>
> for you to fetch changes up to 83d1d9a49e8eb970f87508ae4ce0f222084df365:
>
>   hw/xen: xenpvh: Add prop to enable/disable the mapcache (2026-03-09 03:24:02 +0100)
>
> ----------------------------------------------------------------
> Edgars Xen queue
>



Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/11.0
for any user-visible changes.

-- PMM


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 15:35:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 15:35:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249565.1547036 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzcds-00011J-5c; Mon, 09 Mar 2026 15:35:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249565.1547036; Mon, 09 Mar 2026 15:35:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzcds-00011C-2p; Mon, 09 Mar 2026 15:35:36 +0000
Received: by outflank-mailman (input) for mailman id 1249565;
 Mon, 09 Mar 2026 15:35:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=TKtW=BJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vzcdr-000116-3Y
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 15:35:35 +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 9c889f56-1bcd-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 16:35:33 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-439c4a93841so4220712f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 09 Mar 2026 08:35:33 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dae36785sm25279038f8f.27.2026.03.09.08.35.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Mar 2026 08:35:32 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9c889f56-1bcd-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773070533; x=1773675333; 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=gN3OIK4zpzgpwDwkcYY8kl1S/ufLAnvzjD11ofjDojc=;
        b=bNXOTkw0jIfWDdkUoVoQkOHwEZJ/1QuAr4OyjotoVKBw875Xy2XanLaQ3DR+Um6ceA
         yQEg0m2CXkmqeapaCRu96DSNhLhRP4U/ivwjGwnED8GiTyiYlXQHWb5CuLK7sK3EZmUu
         ES+hl4CHtTPYUJrxeDpESZLTbo/S/61Pwr1DEBgrytioRGfdmftUEscadPYQlFNRuK6w
         BCXv7jD+u3iJuxwdolKWARInNuOUYIP+eWETOVCN8zI4QfNPmWgZpaWn7DbxRMZ9Cw34
         184p5CIDTrbR+JaTmPC7K6vQZWvIZWRB36vKTZM7CI3nPnNaZbwHQW7t1o+MGBGxY4HU
         xbdg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773070533; x=1773675333;
        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=gN3OIK4zpzgpwDwkcYY8kl1S/ufLAnvzjD11ofjDojc=;
        b=Gaz0WkM73KtFolFcN0NZURTEJS/crANp2ah5cE2eEdiwGSFuPd6Tb3Wz+FQwZC4eM1
         zNyMa44Uh6pRN5ACucvTeRTaCMuA+6US/X90C2mbEdDoj/07fnR8ylUqiGIIg1hdwPa1
         Kk5VvM+nvUhcu+QH0IQDSWhpilo5Cg3KyQeiSlU52OqsPsjPLxA6UXJpt/AGEb1xk99L
         KPkwtDdMwadd9mer7JhUJGjgqV2vc9trt16GBGz99Oa2J1XCIMsP7V4av10pARz9QnHV
         6NBoIkhkn9dAsDhOKVQhYB5mCmtbvlfFVjY/7pkbkOEkLjh1m8aYtqYOYzMCuFrs691p
         E3Ng==
X-Gm-Message-State: AOJu0YyeerNzCaOuej+ieE7qk4ReW5QQu0V1v3CYjto6VO9F/IuoGkeV
	sNO7pULmAirwlaJmz4EgImlCKVb/7MiGzYswAYpB+9mqWG264Bq6s1L+6naDfivAASXYKkF8AGL
	/3Dg=
X-Gm-Gg: ATEYQzwBmDPhJjGRjEJr6kp67WTxeeSEVjqESeQ/XGW34sCLB4IrMcp1FEKCrmLWvNo
	9ZMsvD3B3G3fW2amqRsBVBVD49Q3+tCOPukuKG5ZOLRb5Mklds8meYrfVHv5kWUieWDfJA0VAvd
	O9xi3YekivWXaihrcUyUadNTsMc4B36o7q8PYR56BZgokt8QiBWL+mtvxneh3bXEYfWi1Ie49YR
	39EiFuCHq4tCI6oe4OvUEZUeGn9teTrkROz7lgoZ/KG4DikqR8wsRgW0ApXuBI5T0YO9K3edXfw
	nkOxGmwI3/C8fCkR+K7HfjkonjfORnFTvJcc6ek+InoD370YTVnmeJ7Fw9k8Whf8jULaLatnjvJ
	xLvFkMCc8Hd22EMWySc7vUjcaNVBAzYyUKACHVYqay3PSNGQVtTWIIq5K0RgSi0N5R1NlKrCtrL
	8eq/oLhD/aeSkU7GZ/rieqZC8FmuBWrjPqhEIdsnjDMg9Dkc2wPtLSMHdhRH0IrCXCrcqy9r7ij
	HPj8pE8KRGT2gXlLwSwFuci5w==
X-Received: by 2002:a05:6000:1845:b0:439:b506:e430 with SMTP id ffacd0b85a97d-439da351debmr20253337f8f.17.1773070532813;
        Mon, 09 Mar 2026 08:35:32 -0700 (PDT)
Message-ID: <29922662-8b95-4a69-9401-11480df59cdf@suse.com>
Date: Mon, 9 Mar 2026 16:35:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2] core-parking: shrink core_parking_cpunum[]
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

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. Allocate it dynamically ahead of registering the hooks.

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 altogether, rather than replacing
them.

Also take the opportunity and update an adjacent variable's type, where
a fixed-width type was pretty clearly inappropriate to use.

Finally drop the redundant initializer from core_parking_init().

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.

num_possible_cpus() would be the more correct thing to use as array
dimension, yet we don't maintain cpu_possible_map on x86.
---
v2: Use dynamic allocation.

--- a/xen/common/core_parking.c
+++ b/xen/common/core_parking.c
@@ -20,6 +20,7 @@
 #include <xen/cpumask.h>
 #include <xen/init.h>
 #include <xen/param.h>
+#include <xen/xvmalloc.h>
 
 #include <asm/smp.h>
 
@@ -27,8 +28,8 @@
 #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 unsigned int *__ro_after_init core_parking_cpunum;
 
 struct cp_policy {
     char name[30];
@@ -188,7 +189,7 @@ long cf_check core_parking_helper(void *
             return ret;
 
         spin_lock(&accounting_lock);
-        BUG_ON(cur_idle_nums >= ARRAY_SIZE(core_parking_cpunum));
+        BUG_ON(cur_idle_nums >= nr_cpu_ids);
         core_parking_cpunum[cur_idle_nums++] = cpu;
         spin_unlock(&accounting_lock);
     }
@@ -263,9 +264,12 @@ static int __init register_core_parking_
 
 static int __init cf_check core_parking_init(void)
 {
-    int ret = 0;
+    int ret;
 
-    if ( core_parking_controller == PERFORMANCE_FIRST )
+    core_parking_cpunum = xvzalloc_array(unsigned int, nr_cpu_ids);
+    if ( !core_parking_cpunum )
+        ret = -ENOMEM;
+    else if ( core_parking_controller == PERFORMANCE_FIRST )
         ret = register_core_parking_policy(&performance_first);
     else
         ret = register_core_parking_policy(&power_first);


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 16:20:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 16:20:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249576.1547044 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzdLQ-0007li-Ac; Mon, 09 Mar 2026 16:20:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249576.1547044; Mon, 09 Mar 2026 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 1vzdLQ-0007lb-84; Mon, 09 Mar 2026 16:20:36 +0000
Received: by outflank-mailman (input) for mailman id 1249576;
 Mon, 09 Mar 2026 16: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=Vhv8=BJ=daemonizer.de=maxi@srs-se1.protection.inumbo.net>)
 id 1vzdLO-0007lV-DU
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 16:20:34 +0000
Received: from mx1.somlen.de (breeze.somlen.de [2a00:1828:a019::100:0])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e4c14583-1bd3-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 17:20:32 +0100 (CET)
Received: by mx1.somlen.de with ESMTPSA id 8C61850C34C;
 Mon,  9 Mar 2026 17:20:30 +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: e4c14583-1bd3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=daemonizer.de;
	s=202303; t=1773073230;
	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=ZgzjjuSkW18P1q0YDVh3ZpT1HB0jbglyqdNQdpVWgeE=;
	b=VpK7xzhfQoQ+vMCEEs3kO2SgpkwemEjaHmVrq/Oh865KYw3PZkz9s58OaLZjfRvfRwDm9d
	jR2pXo9UA6/dXR4Qf4/AM4o1s8c+eGIlGT373VwcjwE/WALMEGrD8skESvC25g+r0SdQGk
	B0bITgR410UOthZfQxqVVfM2M+jF/S/Ezj9FL3rYJqadhVNTga4EGrP3huJy+/oXRPjTGi
	nBodxwyqePQBIVUlEwF8S1yK025KKHGrWEu6Yv9S0d7c7RyGd22KeGROksRRkRliKeIYd/
	ar1LhlRPnlMNifYrDg64SYHIBD55Z4Z1wlYW4BGZNtxrCK31SEVVrDkRFtKEQw==
From: Maximilian Engelhardt <maxi@daemonizer.de>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
 Juergen Gross <jgross@suse.com>
Subject:
 Re: [XEN PATCH] libxl: Fix device_add QMP calls with QEMU 9.2 and newer
Date: Mon, 09 Mar 2026 17:20:30 +0100
Message-ID: <1983406.eGJsNajkDb@localhost>
In-Reply-To: <aa7d1kCW8HNejCgQ@l14>
References:
 <20251215135124.11410-1-anthony@xenproject.org>
 <2692705.Lt9SDvczpP@localhost> <aa7d1kCW8HNejCgQ@l14>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="utf-8"

On Monday, 9 March 2026 15:48:55 CET Anthony PERARD wrote:
> On Thu, Feb 19, 2026 at 02:29:07PM +0100, Maximilian Engelhardt wrote:
[...]
> > Can this patch be picked for the stable branches? I'm in particular
> > interested in 4.20 which is in Debian stable.
> 
> Done, thanks.

Thanks also.

We meanwhile got two reports in Debian from people running into that issue 
(plus me), so it's good to see it fixed.

We will pull the fix with the next xen update in Debian (but not yet the 
upcoming 13.4 point release), which we always base on the upstream stable 
branch.

Maxi




From xen-devel-bounces@lists.xenproject.org Mon Mar 09 16:53:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 16:53:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249589.1547053 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzdrT-0003Fj-MZ; Mon, 09 Mar 2026 16:53:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249589.1547053; Mon, 09 Mar 2026 16:53:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzdrT-0003Fc-Ji; Mon, 09 Mar 2026 16:53:43 +0000
Received: by outflank-mailman (input) for mailman id 1249589;
 Mon, 09 Mar 2026 16:53: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=mqfy=BJ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vzdrR-0003FW-VX
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 16:53: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 85c5d2df-1bd8-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 17:53:40 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BN8PR03MB5123.namprd03.prod.outlook.com (2603:10b6:408:dd::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Mon, 9 Mar
 2026 16:53:35 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9678.023; Mon, 9 Mar 2026
 16:53: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: 85c5d2df-1bd8-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PARbB9A8D3wjK8vqrWnQXsWp8l0xWpoiC/i/g7dyMed7/JTWaRYUdwwhrYiKM8HkCCul3kd7Vgx2A7B1PXmFkmChDshbSFTKyW5Tn262ruJcsx8Tq8V9sYDWWghBZRn2aDUCZpPzjAjimxpA9i+QGvxdFQy2rdafUHx4NqHo2nQA04LZpwTg2mzfOe0dn9opHw+zFD1GbgA1YThDD8EvB28Sfv6BxLjNAFkJjPtdIpNWIzjlaIDUuzAkyWy0/3K1uKtwds4+CiIIVEQx0Xe/xDtUUwwwDG+ezjHbDc6cfUeDCAmHdFIoPO6AqPU2MHc/TQmKimybDP3ACwWhtaas+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=a0Bh42TUjZTh+rzACCZYpg1BDDBu4U+CqxHDb9ejKv0=;
 b=Wzy00+5THPCxsawqjE1H1CqLZImIfLpxGa/ugXlNLPXHio3mtgImS67mkaDWPtJtJMCKTnb1YAmp2Qw9Hoy5zJ+1pFj1KsNg6uwBRZ6gpHqHKod0Bd5p3QVEj6IoY3bpeU4FWdTQzfYxlD8Ps3YwBT/uXxnyuHD2PHZSKPT80Pfjya0Clz5+jPeVvmLGY90lSugFEKL4wy2SqhAAnFbVO0Wnikkp/zKt16rzEY5vZ30BczLUFzDD6sSWW7+eR7E5xmjw2qjPn97XjqS2aUQesjz0ReY8X1Xw3K1NcOMVR5+vmAddTujnJLG3XX9XZHZIcK5682euaTJq3sijin0lAw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=a0Bh42TUjZTh+rzACCZYpg1BDDBu4U+CqxHDb9ejKv0=;
 b=CMvlyCVpHg1aM9ndNPib4in4LtvDqh7fNOJDTy1kengx9fPzuZvj9692Kj3/4uCtVzUgw/AA6nkM4yVOUG5JiasA/bhwP14gvW6IVLlu6ODxbobrl3hAax16EOl2Vs5FmPbZIKMRF/zeCcUNU4vE8OrLlJ6DuN6uN8vnc0Lhq0E=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 9 Mar 2026 17:53:32 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH] domain: move vmtrace_alloc_buffer() invocation in
 vcpu_create()
Message-ID: <aa77DGTIv_6S6H9K@macbook.local>
References: <528578e1-6374-4fd0-9f67-0769afd2e1c6@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <528578e1-6374-4fd0-9f67-0769afd2e1c6@suse.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_|BN8PR03MB5123:EE_
X-MS-Office365-Filtering-Correlation-Id: fdd6619a-803b-4dc5-c71e-08de7dfc6775
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:
	/ENrw6PcIIU3IEhQxWxFZF5IB25cuHwBGPWVSiKoIpcYPqeWxFDoGaTpaMjoSyj758cSFtyT4prdVYlWWVZDemvvadfoK+Pux9gj+9ZTAcosgRraMLO+ZU59YVFpWIXT/O4KJ9TKZM8gM1rBb3qEcr35zqY7LGEA6Cxf3lRn74upxKRoUsL2bqQJohwBn6vJPwucTHoqbpA1dOkPYvImMeFulawq3yWyLeqcAQi2vJDCMGfIIMvcoyAIeF287yukhYWAcV+Sd654mz/1ZMsk4pdLXrdV3JcU1yx/6AlfIEYTrldcNOebM9Fw9ts/rUCyepLUBP4OGZ3tWJN0EV+4B+ubtPMKxCw8SDJwu7XHYa3WamoQBI7C4FsJsVB+Hbzt0B+UQ1+d1kAQGsWU/9bs5TokIrnA4iWdWGrC338F/xugD1R5qOD1Fc0fRiVBIw92Jp4tpzKwEMUvd4TPoTI+Z0p7qxugKXY+5+rRg/VSyYWCW5oIRSNTC2rvw35mxzut/HInGDNfErNgqbCiikM7jeS3XmzAwXNYJe2LaMRDxXhVFiM3Goxz9ZCXRl3Zr65oTl3kxX4ZFPxNaVtTDGN6T17VcOsagIBM1oBmpd3T1zL++5EgWjBLJ0uC+LraNv2RUWlD+w+2pxjN+9lsEa9oafGhB4femm4B5i75+yEXM4CeoA2kweTTpXvQWa5tEK+j9FVoSd1sB+K3qEGjORZtcCGJaqP1jVkvaounKzMaL7M=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bEdMWjEwTWU2ZG00aFkzWUV1WWVGWUlTYzFQTDJETjlmdFJpbEJ3MFpTT3R6?=
 =?utf-8?B?djBoWSswYUpZVU1jRXZqOTR5K01KajZnRTMzSUV6UmpPVzdwS3FhNm9hejhr?=
 =?utf-8?B?MUZLUEFhZklOb2RpbEg4U1QxQTR1NDVOcW1iTU5lNXNYSklHSXliZUJGVGVm?=
 =?utf-8?B?cm8zS2tweTZZTExFdzcvNlBNM0QvV1huU053cElrTStvdjFhaVhrQWhEQmpP?=
 =?utf-8?B?TVNGbDdOM0dIYndraldZb1g0L1BFQUczVThmU0VjdmdOQlFpd09FZXZuSmhi?=
 =?utf-8?B?YkFTd21OaWN6VWtsMy9aT3FydW5YeUlHb1M0V0MrclhVUnlHTkt4b1dJa0VC?=
 =?utf-8?B?VUFKVlVOTkhOZVRhR2NhMmJQaW45M0ZDRUdjaU5uVEJWMk1IemY0UFEwVGJC?=
 =?utf-8?B?VXo4bjlrMXpFOUVyeEdqRHk0Nlgybzkxcno0bkRMM2NQcUxrR0N6b0Nxblc1?=
 =?utf-8?B?SDNWQVV0NFFQa1BjbnkvaWFHQnNOWlEyNHNzcEgyRWd4TjF6U3hXbDNCVG1R?=
 =?utf-8?B?NDlhV1E3Y0VGcFcwRXgwNGJYUloyQW5heXIxaTkrWnhlQmE0ZldWZTVzMEhn?=
 =?utf-8?B?S2FUalM2VmZPR1RoNU1zZVlMQU5GaFpocmt1aU40b1YyTStQSzA5L0pvaFhE?=
 =?utf-8?B?dVdocGVnU3ZPRzllV2gwM2E2QnpJLzBDYmFDUUZBK1c0NGx2V0Y5WlRSL3FS?=
 =?utf-8?B?Zm5GeUw5eUVhN3lQM2JmVUF3YmhvSm9jODNoaG44RG1Dck1GS3ZiTC9Pdjdq?=
 =?utf-8?B?SVNjMCs5OVBGZDByWWk0UlZyR09KZ25XbmZiUUhEUlRHOXlZbndJZm1RRW9x?=
 =?utf-8?B?RGtHNXJ4RzBpaFo1azkrL0VQSU84dWtYNGZ2QmFuSmlHNlJjL2YydTk1UjNv?=
 =?utf-8?B?ajRrdDhRTlQ3Y2hxcGJaQkRoQ1NUdkY0YVFVR3JCL0J0ZGxUVUdsK2VJRkxt?=
 =?utf-8?B?Yy94SXYxS1pFOW9oVmxDc3VmRVBZN2hsU2FMWUtMblc0U2dLTGlURTA2dWk5?=
 =?utf-8?B?NDgvNkZySkY4NSs1Mk8wTWJlV1lrWENXZ2ErK21QWkxhVmpTajVTYU9XVm54?=
 =?utf-8?B?bHEvL0JNdjgzb2FXQ3dSY1c1ZnJxb243ZWFUTEhwekJCUVdKSnI0eXRsT3lZ?=
 =?utf-8?B?UTdlcDdJRllJSW1kVE1rOGgyT00wYlhDK0Fjb3V1c1ZpRWxxQ0xRR2N4bUU0?=
 =?utf-8?B?dDBBanpiWEtMMVFiNzI5cUxkNDVhSWFVSGFJRU81VisvVUZrdE9SZys1Z0hi?=
 =?utf-8?B?MjdPYlFhaElCZkNORSsyR3hiTFBuY21TdElJazk1RUVMeXBpODhva3k1SDJJ?=
 =?utf-8?B?OHB1bFYwaThsQ3R2RENrWjRLeUg4dDBjc0FlTlZVVGFORVRaZDJlQXhtN0Nr?=
 =?utf-8?B?WmR1OUVEM3lnK0pneE8vN3A1Mml3MVd3NHR3bFFrNUdVOHdoQW9nTGp6VUdZ?=
 =?utf-8?B?c0xORUUrVG5ISVptSlFTQmFqVElXZTJlZm5FcUtRWXZMVy91YmZuSVlpd1l0?=
 =?utf-8?B?ZVRkZmlHSG5URU9Jc2d4dkd1T1N6TWZuQjllRy91R1MweGliaEJCS1AzMitr?=
 =?utf-8?B?aG0vSTZYWUhWZjlFclZNUHMxcjc0T1JKMDJSOHRsODVtazZGcStQY241eUlq?=
 =?utf-8?B?WnlWdUdGd0FCWXZYeFlHMVZONkVHbnJhd0RwdFA1YjZNTW9UcmZJb2ZzaVhB?=
 =?utf-8?B?Qzc3emIrSnRGY1JkYm5aMm1BVzFJL1JsZkphWHJZeEREUU53ZjFyTm9MSjdZ?=
 =?utf-8?B?VXV1MFBPSS9kTkJNNzI2ejJmRDBKMmovamVyQUJ2QlQyNVNaZ1RzcUlEclRy?=
 =?utf-8?B?WjBGS0NGMzZjanlZWTgrazBDanpzbTFkdlV4WFhpUVlFclVFcy9NNURTSWpL?=
 =?utf-8?B?K3JWa1BsWmdsQ0EvNngzeVRsV2xBd1R6aksrbzd5TkJaR1B3bjdSQ2RhL3hi?=
 =?utf-8?B?QmZtcFpDNzhBQ2UvSFJDVkFIZWkrZnhNWVR6SjZsZkgwT24vL0FhaFR3YUlV?=
 =?utf-8?B?ZVg1SzNud1hUSmhZYWdpaVU3ejlzanBNL2hrWEprNTFiZXYrNXNGaUFPdUZi?=
 =?utf-8?B?MFhRMVdpQ2tOUzlOQVJ1ZVBJeUNRV2ozMThRd0NaemhvMVdIeVJUZXhTSXBK?=
 =?utf-8?B?QXFMUk01NS9KUkcrdFJuLzFyU0lwWEc4MkV3NFkxcGwrTzJPTkh2MXZYb1Vx?=
 =?utf-8?B?V25wejRZYU9MRnNFamV1UGx6OTM1UG9FVFBSWEl3WkxrUzZUSXhQRVJoM1d6?=
 =?utf-8?B?TGwxSjkzL002R0hpMWYrMXhSMFVnRGdBeW9YTHVtZE5XL2E5TUk0MHB1NS82?=
 =?utf-8?B?ZnNUUFFyblNUaVRQNmpzWklKY29BaXR3bnNFTUNkNEkyeTNwWXFRdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fdd6619a-803b-4dc5-c71e-08de7dfc6775
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Mar 2026 16:53:35.6888
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: LPA8VpYQfpACSe0Y4dPJBrZd2KLAathyhFqg6QQPl0Uv4iM3HyQJSjrt7pPc1mPoV8yEi3HNI7Xvs7vK7pEmDw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR03MB5123

On Mon, Feb 16, 2026 at 04:51:53PM +0100, Jan Beulich wrote:
> The label used upon the function failing is wrong. Instead of correcting
> the label, move the invocation up a little, to also avoid it altogether
> for the idle domain (where ->vmtrace_size would be zero, and hence the
> function would bail right away anyway).
> 
> Fixes: 217dd79ee292 ("xen/domain: Add vmtrace_size domain creation parameter")
> Reported-by: Roger Pau Monné <roger.pau@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 17:54:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 17:54:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249605.1547062 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzeoC-00028v-UT; Mon, 09 Mar 2026 17:54:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249605.1547062; Mon, 09 Mar 2026 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 1vzeoC-00028o-RD; Mon, 09 Mar 2026 17:54:24 +0000
Received: by outflank-mailman (input) for mailman id 1249605;
 Mon, 09 Mar 2026 17:54:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9QdD=BJ=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vzeoB-00028d-Ay
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 17:54:23 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fdda7f7b-1be0-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 18:54:17 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-48334ee0aeaso97084755e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 09 Mar 2026 10:54:17 -0700 (PDT)
Received: from [192.168.69.201] (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48541a8f610sm12732545e9.7.2026.03.09.10.54.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Mar 2026 10:54:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fdda7f7b-1be0-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1773078856; x=1773683656; 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=DQpCcbWib06GwrSrjKEgPauEB4pMQNN0BW8pnBJ7+wc=;
        b=AoQPx0vcvC4+N37Al/MmKLSpkhQHr0yf38PVakix4nXGwRE/USQJKX+sNKUJOUSN+2
         QCDg+FSY68xsknyg1x9Eigozv2nkq2TM4p+9ZIfu+RXaJCQEBO5udbUSITPzrG0hS+MN
         DU9+lIX1HOq7d1k85cc4FG9npcFwd/mE/6siZfukQ33F61dZ0ejGFH2kZvJBN9FYHCbQ
         nkPpHIv+Ug7GquchSDwvXOqB0V5iQrxPrsWf/rljNPOQ31EFHeRlb/Uhhk1k3IsK/W5P
         nnqKgfcFUE82gVl1K+o+0V7GjqiXCkHpVyk2MjdXkOB5Zhh9PnSVdDkZedF0Uh93vqt9
         FIBA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773078857; x=1773683657;
        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=DQpCcbWib06GwrSrjKEgPauEB4pMQNN0BW8pnBJ7+wc=;
        b=dSA1vSHpotk7tbaRjIOYO9owO5pZ2GLKDAqpFevtbJY6YWIqWoz4Kk6iI6JWxrpFYM
         OF/alj0glpvRHtpuKFHZjVv1Pgzew2EK0YBk0ARdHrsh2IVMOAYKwyRx5NeOyHObGSUI
         g6yfXyy9ijMpF2ETrY4S0m/js0/TKHEbiiuaJKkA7li70J+lc25Y3LNWS39LBSfqEjm7
         6COfruwvd5MXEUC7dyHjD3NAxmwg9TBXERmhN7iVxQpb+2OW5U75acO1+UtrU9wyIy00
         KhEQAHgSVVPYHtEmB3Q5gtDXLR6Gd8rmPAuJk8zzCsJkz42FgNWeKTvCyJvpDL2A18lP
         /EUA==
X-Forwarded-Encrypted: i=1; AJvYcCV4x6qRmex+uYIiZRDo78UvSEOqH+6Gkj/YIzEOKqnpKcCpWlpWYNN9jNKm1HFqCl1m30MT3egdloc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyZ4s4xw2xpHpR9AC7HICQmLPNkeg+Td02e8/wzLg8bcpRN4rBR
	Q9yraSpWo39dqgjARtR8NY/z3UxWd5HlLRVajYH4CdZAptFrHkmdA/tWmYA5oAPGhNo=
X-Gm-Gg: ATEYQzxnixMn7PyQ9y6Gbb+j0hOfLi6VyugQ8BEmKHOeZUWXCBL4sOf3/URr1hafEEk
	Cjj8W1Bt1S4p39WvMX0u2X/u7r+Gy+C8mC5wxcCyEr/Bi0wySmZrYvS/3pRhZ0DbEem+Cx/4a3s
	Fj026y8IuPjIYsGQiAn/uTrEeK18V1X0C5pFXJZOeCOHk6RSFqV9TS0AmZxW9ONPY/4ZJN/QrRm
	a/RhVkjqLiqj8PqWQu5HWE5H65xOLgQspkUnjeObVX50AQ3iMwSvhpwH6MqywlpO/6uZSpzRc+G
	M9TT9KHPTR/32o1q/JmzN4jqaiX1TCJ7z6DOK7ROzM99T5E8IlW7aTBw6jPDWGxrvdBDzpskCk+
	0umEwxykafM7XrCtIueYRX+7INQAkBEhti8u9jbikHzn7EgivKeOlb8aCRxWxr6rTJDAiC/P3as
	rlyYivwx3r8k+e8WsDzsYln/MeO0sKtu10ojwTNVDI/1h52O1UaJcFU/F6bGan0PiKtA==
X-Received: by 2002:a05:600c:4445:b0:483:6a8d:b2f9 with SMTP id 5b1f17b1804b1-4852690febamr219281285e9.5.1773078856525;
        Mon, 09 Mar 2026 10:54:16 -0700 (PDT)
Message-ID: <80f7ebc0-2ca9-489e-a017-29965a3fa50b@linaro.org>
Date: Mon, 9 Mar 2026 18:54:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/5] accel: Try to build without target-specific knowledge
Content-Language: en-US
To: qemu-devel@nongnu.org
Cc: kvm@vger.kernel.org, Pierrick Bouvier <pierrick.bouvier@linaro.org>,
 Paolo Bonzini <pbonzini@redhat.com>, xen-devel@lists.xenproject.org
References: <20260225051303.91614-1-philmd@linaro.org>
From: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
In-Reply-To: <20260225051303.91614-1-philmd@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 25/2/26 06:12, Philippe Mathieu-Daudé wrote:

> Philippe Mathieu-Daudé (5):
>    accel/kvm: Include missing 'exec/cpu-common.h' header
>    accel/mshv: Forward-declare mshv_root_hvcall structure
>    accel/mshv: Build without target-specific knowledge
>    accel/hvf: Build without target-specific knowledge
>    accel/xen: Build without target-specific knowledge

Series queued, thanks.


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 18:35:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 18:35:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249618.1547073 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzfS8-0007JT-US; Mon, 09 Mar 2026 18:35:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249618.1547073; Mon, 09 Mar 2026 18:35:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzfS8-0007JM-Ql; Mon, 09 Mar 2026 18:35:40 +0000
Received: by outflank-mailman (input) for mailman id 1249618;
 Mon, 09 Mar 2026 18:35:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9QdD=BJ=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vzfS8-0007JG-2d
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 18:35:40 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c4ee7ce2-1be6-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 19:35:38 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-485410a0a8aso4452585e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 09 Mar 2026 11:35:38 -0700 (PDT)
Received: from localhost.localdomain (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48541a8f610sm17524365e9.7.2026.03.09.11.35.37
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Mon, 09 Mar 2026 11:35:37 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c4ee7ce2-1be6-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1773081338; x=1773686138; 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=n+n1XzLbQai9WbGm/ckfBsm2uzsateK7yt/Qy3zcLsM=;
        b=ltdYM5GRBPvcUWccVtgEdcxuwdM0MP21lQ2akTanFceyHcLeciBFPNM3K1wurjmAk2
         vSiijYb/Uo/W6IUhltZP+oScbMeblkZpBx4VJOu1miYrZToCoyMA+x2JtrpKp6NxWVlR
         +3N5mtbufR+DYv12Sd0ayHjPS3O/+obuDuXpHEjXalajJStnYkQXpD46ZDwnONJhcryP
         X3hvs+67hw8PYaGO2ZANOGfp8eQRa937iu5+SjtzLkx4HQ9HonnTQBxscel9JCGz2yav
         Ea/ng0y/ZSxri/AabUtkcNSD1dilzWHin/ypOgGpaIeOThjecss2Je8S6E08KgqzbEcW
         u/eA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773081338; x=1773686138;
        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=n+n1XzLbQai9WbGm/ckfBsm2uzsateK7yt/Qy3zcLsM=;
        b=pOzVbjKufq+q1s1HzLj5mc4COA4AXXuT/RrgbC9Ajng6SOyzdKUgAkI4vZZ3J9yxUL
         Mbmv9M5L+f0GWwiBPoV8JiYgrrCpNkhOrKGNikH0cT/ipUuK89T1+OfVPcgsv0bvqKDD
         5x+7HoE/fQFyQ363cfi0dfzthakFKiSq0oT6h+Xhccknobnh/RP421SWPK3Tvtx6KM4j
         UOs8y1uZnYFifrbEKVCPffB0EE3EnDOK+6uHiHfVcV4kGB7NwNI+bmf8E8XBKblfUjGz
         vkcu4YYrOYEAQ+fwH4GldmpoRpVpn/wDnlacI4hf/WyQ9nMt03aofs20hdtLAjHhXRg+
         Qm8g==
X-Forwarded-Encrypted: i=1; AJvYcCUWncaBfa1sOs8orkWo5Cl/e217jEDJCdUwed2D7qAekeaNCJgN22xnpMh6e0PZ5gW26g/r4pi6de8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyneprXKjErEdEOv1y5EaCHShremDm/e5rxBdZ477dAMlOavWPz
	jUGM2S0XwncDgasZLgWFg3S8IQvwkmXKH8DEGKLfx9NWLq0+fck99tTMqzmmiEHIehw=
X-Gm-Gg: ATEYQzyyst6rYvWwaz38Jotd5hkDYnA5itETyynBi7OZ5Fa2WXQc6/p44oR68wOfj8S
	hbX4gptpQjVzp/kiKgGF8heTOApHsReOZHn9TcGPD/Bw3yGULS3dBJkVuaMfyMqolx3+927RKyy
	GbbdHttJ/ba/ZTlXff7vOCoEmBvG0j8nCjbuGjwOWY8anx4in+eOZdNi7Jo2EnhBg9lRJClG7J4
	XtfVLCxyxtejJlh2dDfEwaHgzXlFTXG31JDushAHVzOgXyfJeM6tu+czWrswvYYR35TFeg/Oozp
	xLpeleBGCbq8ENm7hVYxutwLTvKfGejoLTahpBG1mGeSOWsOdXMRQxxyWQCnu3Es6QgdoYTxp6L
	m8PPA7lWo5FBcmIxnwQ19LKs1uO9x/tcrxKWgCwKGSR01CfQV02MzmYBfSpm5BU6CpZETEXZDBV
	18N+btARvt5YTh5C1JgeH9PbNgZOfUwJHsM8ETfM6pJ9UPgEU25FGknuVUdWpRyKC5xCFuBQ/+
X-Received: by 2002:a05:600c:a115:b0:485:3b5b:eb8 with SMTP id 5b1f17b1804b1-4853b5b108emr60211815e9.26.1773081338186;
        Mon, 09 Mar 2026 11:35:38 -0700 (PDT)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: Mohamed Mediouni <mohamed@unpredictable.fr>,
	Anthony PERARD <anthony@xenproject.org>,
	xen-devel@lists.xenproject.org,
	Mark Cave-Ayland <mark.caveayland@nutanix.com>,
	Peter Xu <peterx@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Pierrick Bouvier <pierrick.bouvier@linaro.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Subject: [PATCH v2 0/4] system/memory: Constify various RAMBlock/MemoryRegion arguments
Date: Mon,  9 Mar 2026 19:35:31 +0100
Message-ID: <20260309183536.88976-1-philmd@linaro.org>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit

v2:
- Dropped "stubs: Merge physmem.c within ram-block.c" (Zoltan)
- Dropped "info mtree" patches (no time to update doc for freeze)
- New Xen patch

Philippe Mathieu-Daudé (4):
  system/ramblock: Constify various RAMBlock arguments
  system/memory: Constify various MemoryRegion arguments
  system/xen: Constify various MemoryRegion arguments
  system/memory: Have memory_region_type() correctly describe containers

 include/system/memory.h       | 38 ++++++++++++++++-----------------
 include/system/ramblock.h     | 28 ++++++++++++------------
 include/system/xen-mapcache.h |  2 +-
 include/system/xen.h          |  6 +++---
 hw/xen/xen-hvm-common.c       |  8 +++----
 hw/xen/xen-mapcache.c         |  2 +-
 hw/xen/xen_stubs.c            |  6 +++---
 stubs/physmem.c               |  2 +-
 stubs/ram-block.c             |  6 +++---
 system/memory.c               | 40 +++++++++++++++++++----------------
 system/physmem.c              | 30 +++++++++++++-------------
 11 files changed, 86 insertions(+), 82 deletions(-)

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 18:35:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 18:35:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249619.1547081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzfSH-0007Yj-80; Mon, 09 Mar 2026 18:35:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249619.1547081; Mon, 09 Mar 2026 18: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 1vzfSH-0007Ya-46; Mon, 09 Mar 2026 18:35:49 +0000
Received: by outflank-mailman (input) for mailman id 1249619;
 Mon, 09 Mar 2026 18: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=9QdD=BJ=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vzfSF-0007JG-Hn
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 18:35: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 c9a96f7e-1be6-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 19:35:46 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4853e1ce427so12503795e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 09 Mar 2026 11:35:46 -0700 (PDT)
Received: from localhost.localdomain (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48541a6bb86sm9367755e9.1.2026.03.09.11.35.44
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Mon, 09 Mar 2026 11:35: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: c9a96f7e-1be6-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1773081346; x=1773686146; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xA3KiBRZDEy+tGK0VBSBg6K/vS9OJsxKrmQTjGkh/tM=;
        b=vHxbDQhCv7R2l0m7nn8ppI10Jd/khXsW9VNS7owUnYjELJP8p9FXXUZFAJO8qzhfi8
         Ss5YV05uGA/L7PlV4CUAB2psoUGlK9x2IhRzPuxagzIVfrC67UQgsUDlC+8iew/GnQNE
         bw05RPSVofq6tmTCegQw+vUq1Fg+GvrGYadn5Xam/SPwklpS+ymL5iVmxC7U8bJjQkys
         TylXDZijOTjF7bcu7+J/fMnS/ftHFsO4sVtjMgvSJx6AvyupRW+ssDM++jXK+rBJYnfg
         P3myScAacVjpluoKtrkzghoiDrfHUp91ZQzwvpwH6BcFhF414pso0Wu9Wq4KT0roPcxA
         WULg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773081346; x=1773686146;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=xA3KiBRZDEy+tGK0VBSBg6K/vS9OJsxKrmQTjGkh/tM=;
        b=fc5+B01u0CIn1N7KIQmwd3puovGFjfOBUuG5YJYTkfnAD6X8PufBq8Msud8MoFSwm7
         qLpkfWVRYrVrqEqSvJEjhRmhv5S/9kjQOOxN6hhXzrekVInFxwd2zAVKTnPOUuHrMIO0
         TsGqkqmfDDppk7QimdUF2YGckvwi51Z83vPkGJS3j2frPf98O9p693cDnaA4kwHeFNpe
         jyARv3jmujUziYOb8LBk3bfNm+SnK8ZEt+BtDzyQVeAikM29IPH4AFdcKfGSQnCjUJ2S
         PMtYhYI4p+JXaF5fQOCdeJziAApCzTZTECiOmoJiW3mvnLZGu727n717wjicXs7c7xWL
         V+4Q==
X-Forwarded-Encrypted: i=1; AJvYcCVJSHVdT5pGyK1v4+rWLQ2n3o39JqCGP+XQtU/SoC8xVscYxGxO14rZU0KoEaLvCY6w8npw3AwwAbs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyH3eJiNbf7xywiJhRY80DwjRlEHNs/feEPrU/9ZTo6R5eqE1Iw
	DzyMkF94SpE5WTjZO9q3ClBDX05a5QDycXVrnGNnrcTq0NJVICjcZtkYVnLtUO8/lKPRxpzSURs
	MaUV6wOI=
X-Gm-Gg: ATEYQzw7oDthjzhXcXUX5xR263W9mMENckvqHJg69G/a1IfYs/JsesJiZbujWVYb597
	O78NbSSAa7NNsJdHji9zNtUa5NEo5fEPvTijGN5vosPG3H/Gl3F4z/Bz3TayXfTkmqpjY4hr8yU
	eOKAOAGksfnn4COHSQkVPlCfcvyN6BKU6wUn6JmJjFiPn/YAdjeK9JXgDY//LWJh5PSB8NQTFuc
	mRaLN4dGOor9DC2syZ6+5pDhGFMasMke3Q8o82iIwY+QV9yAY/EUscaSlfA6wV6rzuaJeAX2OfI
	aw6QBqIMBqBHYm/LN8ngs3GDVDl971r8u0wr+Zh147ZyvHvKwWoIzvNdtEuVmaOUNLK1ha+SunB
	kYV61aHopIH69RbtBwpPv3lQ4OWfwuZCMAqX+XeWDkNFSutcv2vibdiUYhETD1bJSdvKPKGMXLj
	tULYJO5CVwr/KLC+sAEwvMTAFrBcdMezivCkEurt4iZdeC+6wllBgVYVdGXVCnNmbEwmcum0j/
X-Received: by 2002:a05:600c:3b8e:b0:485:35a4:939c with SMTP id 5b1f17b1804b1-48535a4a188mr113829175e9.29.1773081346102;
        Mon, 09 Mar 2026 11:35:46 -0700 (PDT)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: Mohamed Mediouni <mohamed@unpredictable.fr>,
	Anthony PERARD <anthony@xenproject.org>,
	xen-devel@lists.xenproject.org,
	Mark Cave-Ayland <mark.caveayland@nutanix.com>,
	Peter Xu <peterx@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Pierrick Bouvier <pierrick.bouvier@linaro.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Subject: [PATCH v2 1/4] system/ramblock: Constify various RAMBlock arguments
Date: Mon,  9 Mar 2026 19:35:32 +0100
Message-ID: <20260309183536.88976-2-philmd@linaro.org>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260309183536.88976-1-philmd@linaro.org>
References: <20260309183536.88976-1-philmd@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Mark the RAMBlock structure const when is only accessed read-only.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Reviewed-by: Peter Xu <peterx@redhat.com>
---
 include/system/ramblock.h | 28 ++++++++++++++--------------
 stubs/physmem.c           |  2 +-
 stubs/ram-block.c         |  6 +++---
 system/physmem.c          | 28 ++++++++++++++--------------
 4 files changed, 32 insertions(+), 32 deletions(-)

diff --git a/include/system/ramblock.h b/include/system/ramblock.h
index e9f58ac0457..4435f8d55fe 100644
--- a/include/system/ramblock.h
+++ b/include/system/ramblock.h
@@ -154,26 +154,26 @@ RAMBlock *qemu_ram_block_by_name(const char *name);
  */
 RAMBlock *qemu_ram_block_from_host(void *ptr, bool round_offset,
                                    ram_addr_t *offset);
-ram_addr_t qemu_ram_block_host_offset(RAMBlock *rb, void *host);
+ram_addr_t qemu_ram_block_host_offset(const RAMBlock *rb, void *host);
 void qemu_ram_set_idstr(RAMBlock *block, const char *name, DeviceState *dev);
 void qemu_ram_unset_idstr(RAMBlock *block);
-const char *qemu_ram_get_idstr(RAMBlock *rb);
-void *qemu_ram_get_host_addr(RAMBlock *rb);
-ram_addr_t qemu_ram_get_offset(RAMBlock *rb);
-ram_addr_t qemu_ram_get_fd_offset(RAMBlock *rb);
-ram_addr_t qemu_ram_get_used_length(RAMBlock *rb);
-ram_addr_t qemu_ram_get_max_length(RAMBlock *rb);
-bool qemu_ram_is_shared(RAMBlock *rb);
-bool qemu_ram_is_noreserve(RAMBlock *rb);
-bool qemu_ram_is_uf_zeroable(RAMBlock *rb);
+const char *qemu_ram_get_idstr(const RAMBlock *rb);
+void *qemu_ram_get_host_addr(const RAMBlock *rb);
+ram_addr_t qemu_ram_get_offset(const RAMBlock *rb);
+ram_addr_t qemu_ram_get_fd_offset(const RAMBlock *rb);
+ram_addr_t qemu_ram_get_used_length(const RAMBlock *rb);
+ram_addr_t qemu_ram_get_max_length(const RAMBlock *rb);
+bool qemu_ram_is_shared(const RAMBlock *rb);
+bool qemu_ram_is_noreserve(const RAMBlock *rb);
+bool qemu_ram_is_uf_zeroable(const RAMBlock *rb);
 void qemu_ram_set_uf_zeroable(RAMBlock *rb);
-bool qemu_ram_is_migratable(RAMBlock *rb);
+bool qemu_ram_is_migratable(const RAMBlock *rb);
 void qemu_ram_set_migratable(RAMBlock *rb);
 void qemu_ram_unset_migratable(RAMBlock *rb);
-bool qemu_ram_is_named_file(RAMBlock *rb);
-int qemu_ram_get_fd(RAMBlock *rb);
+bool qemu_ram_is_named_file(const RAMBlock *rb);
+int qemu_ram_get_fd(const RAMBlock *rb);
 
-size_t qemu_ram_pagesize(RAMBlock *block);
+size_t qemu_ram_pagesize(const RAMBlock *block);
 size_t qemu_ram_pagesize_largest(void);
 #include "exec/target_page.h"
 #include "exec/hwaddr.h"
diff --git a/stubs/physmem.c b/stubs/physmem.c
index 14667f2bd8f..2eca06ab6d6 100644
--- a/stubs/physmem.c
+++ b/stubs/physmem.c
@@ -7,7 +7,7 @@ RAMBlock *qemu_ram_block_from_host(void *ptr, bool round_offset,
     return NULL;
 }
 
-int qemu_ram_get_fd(RAMBlock *rb)
+int qemu_ram_get_fd(const RAMBlock *rb)
 {
     return -1;
 }
diff --git a/stubs/ram-block.c b/stubs/ram-block.c
index 8790a59593e..1c79e447ff0 100644
--- a/stubs/ram-block.c
+++ b/stubs/ram-block.c
@@ -3,17 +3,17 @@
 #include "system/ramblock.h"
 #include "system/memory.h"
 
-void *qemu_ram_get_host_addr(RAMBlock *rb)
+void *qemu_ram_get_host_addr(const RAMBlock *rb)
 {
     return 0;
 }
 
-ram_addr_t qemu_ram_get_offset(RAMBlock *rb)
+ram_addr_t qemu_ram_get_offset(const RAMBlock *rb)
 {
     return 0;
 }
 
-ram_addr_t qemu_ram_get_used_length(RAMBlock *rb)
+ram_addr_t qemu_ram_get_used_length(const RAMBlock *rb)
 {
     return 0;
 }
diff --git a/system/physmem.c b/system/physmem.c
index 7eecd818770..e5390d09bef 100644
--- a/system/physmem.c
+++ b/system/physmem.c
@@ -1859,48 +1859,48 @@ static void qemu_ram_setup_dump(void *addr, ram_addr_t size)
     }
 }
 
-const char *qemu_ram_get_idstr(RAMBlock *rb)
+const char *qemu_ram_get_idstr(const RAMBlock *rb)
 {
     return rb->idstr;
 }
 
-void *qemu_ram_get_host_addr(RAMBlock *rb)
+void *qemu_ram_get_host_addr(const RAMBlock *rb)
 {
     return rb->host;
 }
 
-ram_addr_t qemu_ram_get_offset(RAMBlock *rb)
+ram_addr_t qemu_ram_get_offset(const RAMBlock *rb)
 {
     return rb->offset;
 }
 
-ram_addr_t qemu_ram_get_fd_offset(RAMBlock *rb)
+ram_addr_t qemu_ram_get_fd_offset(const RAMBlock *rb)
 {
     return rb->fd_offset;
 }
 
-ram_addr_t qemu_ram_get_used_length(RAMBlock *rb)
+ram_addr_t qemu_ram_get_used_length(const RAMBlock *rb)
 {
     return rb->used_length;
 }
 
-ram_addr_t qemu_ram_get_max_length(RAMBlock *rb)
+ram_addr_t qemu_ram_get_max_length(const RAMBlock *rb)
 {
     return rb->max_length;
 }
 
-bool qemu_ram_is_shared(RAMBlock *rb)
+bool qemu_ram_is_shared(const RAMBlock *rb)
 {
     return rb->flags & RAM_SHARED;
 }
 
-bool qemu_ram_is_noreserve(RAMBlock *rb)
+bool qemu_ram_is_noreserve(const RAMBlock *rb)
 {
     return rb->flags & RAM_NORESERVE;
 }
 
 /* Note: Only set at the start of postcopy */
-bool qemu_ram_is_uf_zeroable(RAMBlock *rb)
+bool qemu_ram_is_uf_zeroable(const RAMBlock *rb)
 {
     return rb->flags & RAM_UF_ZEROPAGE;
 }
@@ -1910,7 +1910,7 @@ void qemu_ram_set_uf_zeroable(RAMBlock *rb)
     rb->flags |= RAM_UF_ZEROPAGE;
 }
 
-bool qemu_ram_is_migratable(RAMBlock *rb)
+bool qemu_ram_is_migratable(const RAMBlock *rb)
 {
     return rb->flags & RAM_MIGRATABLE;
 }
@@ -1925,12 +1925,12 @@ void qemu_ram_unset_migratable(RAMBlock *rb)
     rb->flags &= ~RAM_MIGRATABLE;
 }
 
-bool qemu_ram_is_named_file(RAMBlock *rb)
+bool qemu_ram_is_named_file(const RAMBlock *rb)
 {
     return rb->flags & RAM_NAMED_FILE;
 }
 
-int qemu_ram_get_fd(RAMBlock *rb)
+int qemu_ram_get_fd(const RAMBlock *rb)
 {
     return rb->fd;
 }
@@ -1987,7 +1987,7 @@ static char *cpr_name(MemoryRegion *mr)
     }
 }
 
-size_t qemu_ram_pagesize(RAMBlock *rb)
+size_t qemu_ram_pagesize(const RAMBlock *rb)
 {
     return rb->page_size;
 }
@@ -2772,7 +2772,7 @@ void *qemu_map_ram_ptr(RAMBlock *ram_block, ram_addr_t addr)
 }
 
 /* Return the offset of a hostpointer within a ramblock */
-ram_addr_t qemu_ram_block_host_offset(RAMBlock *rb, void *host)
+ram_addr_t qemu_ram_block_host_offset(const RAMBlock *rb, void *host)
 {
     ram_addr_t res = (uint8_t *)host - (uint8_t *)rb->host;
     assert((uintptr_t)host >= (uintptr_t)rb->host);
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 18:35:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 18:35:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249622.1547090 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzfSR-0007rv-DL; Mon, 09 Mar 2026 18:35:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249622.1547090; Mon, 09 Mar 2026 18:35:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzfSR-0007ro-AY; Mon, 09 Mar 2026 18:35:59 +0000
Received: by outflank-mailman (input) for mailman id 1249622;
 Mon, 09 Mar 2026 18:35: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=9QdD=BJ=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vzfSP-0007ml-KH
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 18:35:57 +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 ce1be43b-1be6-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 19:35:54 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-439a89b6fd0so8685701f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 09 Mar 2026 11:35:54 -0700 (PDT)
Received: from localhost.localdomain (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dae3a20fsm28028805f8f.28.2026.03.09.11.35.52
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Mon, 09 Mar 2026 11:35:52 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ce1be43b-1be6-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1773081353; x=1773686153; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UNqLEUifsz1cpFVFbx5viMkbYuuKYfbDoeHlGj5zHNY=;
        b=bV+nNqVTnq6M8SC1jLgNDzkojYaMysQ4LhdKodcI3jGmCi+c1v+xGzpHsTNxzSX6sJ
         X9E+WDgLrY5biFmthQJsJ+mDr66MuEgaM5XSiri/PEfE3lznNfTds2eB0Z9JW2CoWjUl
         l9b0vFCT8Lzg0EmhCBM/y+mrTgiOEXN4gR3w7ZgRk0aUAYitvkGlkr+d9rJwGW9BDvgx
         wau7rlAMb5drBh/OmUkLgzEfdoMt44Hxc4M2huGWyAt/aARewi65adJ7gq/ymx8H7v4J
         Yrboh6izOg1MhJe3oM5VNDrwSFItgJmWzBffEEPkYgI8NtbXxK4eFCrmGnXpQTP7gjnG
         X+5g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773081353; x=1773686153;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=UNqLEUifsz1cpFVFbx5viMkbYuuKYfbDoeHlGj5zHNY=;
        b=h/urbMSXlmG9Z9dreHHPm/yWGEZP0o5bK/Ba2jAInOzFHDqRgLTkeV0zhZ8zJvVgXz
         qnQyl3AdudrhiTxRnbgVbWJDgL9obn7fbH5m1tTWFZESMj9J4z/5xfGlfss5PQAmWJ+a
         pGxjHhh7PTLhWNgoVWDcGGVhQZVbctv+M6WdIgmoTmeFiac1v4AWTXIT9B/vFIwZZXg6
         uQICshlFWbQ4se6/kHw1+8gvyXpBptCNs8uNmiI7yWZA531rPOL1BlblEOhx9okbazC/
         mlZV7LZvNdb+sMg9ThEL8BLKbS01rEqWufxpd3udsCaC5N7Spt4yQIld84qzN7Fc7B3z
         QN1Q==
X-Forwarded-Encrypted: i=1; AJvYcCXvrz+u8zXQ3XUW1yJUuWI6D4dz+0g1WpGlg/ckVRvneEz9pRX/jThOiPHO6B2EsDA2lRYJUCUq8/M=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy2kn0/z/pH0OPSzL5EFFztLsg8amCFUZ+Rxgs1m8fENpK1z4k6
	/rpgrxQRk3sZttyl14o1hw3NUJW1DbG3tJb7wwS1Gr0R8cta9IDUojZcFG/v/dWR85M=
X-Gm-Gg: ATEYQzxa+TtGequ+onEjjhywkVnTEpC2wJxwoUBjNr8DdUiZXc2zmvI2djaklTRx699
	k/l2MtNriQ9/a9NPsjthGNXkoEHHbpWfmU238APbKpLopUa/B77QDsiBSRZEiUlsxfQ4NXtelHB
	/aBMHwaBxVD2HAvjhR0Z5MwMDmxRMuREK+AGAQYh/FjNQ2s21rApcgobpp/wdObrjMMmkOrKkue
	9wreQPw3No6BXh14StgfRap5gGduMh8vZ79W3keIKdcZrY3ID3DoEzRjFsBzc5jJadZVKl5wC51
	+794N1+J/Dah4wgIJfWT/qSnUv78qIeOCUYr4k2vHW3lyZa4kTf1b83nC+7TRHgy6YoXFJ2AeHu
	0wypLVvBSflKBkyet70joI5MxAaidOuOL5XXJgG6K8xsz6cmvqK0003Dzi//4R3UHU96N1i5Lhb
	s8iIaXBs0dB7mrfLAEi83zIHVVuh/HMG8+l3G8xjx8DIG5c/YGxdz5trZcdtT/acfubLXXnj2X
X-Received: by 2002:a05:6000:704:b0:439:df5f:4220 with SMTP id ffacd0b85a97d-439df5f42f8mr17289075f8f.18.1773081353315;
        Mon, 09 Mar 2026 11:35:53 -0700 (PDT)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: Mohamed Mediouni <mohamed@unpredictable.fr>,
	Anthony PERARD <anthony@xenproject.org>,
	xen-devel@lists.xenproject.org,
	Mark Cave-Ayland <mark.caveayland@nutanix.com>,
	Peter Xu <peterx@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Pierrick Bouvier <pierrick.bouvier@linaro.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Subject: [PATCH v2 2/4] system/memory: Constify various MemoryRegion arguments
Date: Mon,  9 Mar 2026 19:35:33 +0100
Message-ID: <20260309183536.88976-3-philmd@linaro.org>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260309183536.88976-1-philmd@linaro.org>
References: <20260309183536.88976-1-philmd@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Mark the MemoryRegion structure const when is only accessed read-only.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Reviewed-by: Peter Xu <peterx@redhat.com>
---
 include/system/memory.h | 38 +++++++++++++++++++-------------------
 system/memory.c         | 38 ++++++++++++++++++++------------------
 system/physmem.c        |  2 +-
 3 files changed, 40 insertions(+), 38 deletions(-)

diff --git a/include/system/memory.h b/include/system/memory.h
index 0562af31361..6a04c46db37 100644
--- a/include/system/memory.h
+++ b/include/system/memory.h
@@ -1749,14 +1749,14 @@ bool memory_region_init_rom_device(MemoryRegion *mr,
  *
  * @mr: the memory region being queried.
  */
-Object *memory_region_owner(MemoryRegion *mr);
+Object *memory_region_owner(const MemoryRegion *mr);
 
 /**
  * memory_region_size: get a memory region's size.
  *
  * @mr: the memory region being queried.
  */
-uint64_t memory_region_size(MemoryRegion *mr);
+uint64_t memory_region_size(const MemoryRegion *mr);
 
 /**
  * memory_region_is_ram: check whether a memory region is random access
@@ -1765,7 +1765,7 @@ uint64_t memory_region_size(MemoryRegion *mr);
  *
  * @mr: the memory region being queried
  */
-static inline bool memory_region_is_ram(MemoryRegion *mr)
+static inline bool memory_region_is_ram(const MemoryRegion *mr)
 {
     return mr->ram;
 }
@@ -1777,7 +1777,7 @@ static inline bool memory_region_is_ram(MemoryRegion *mr)
  *
  * @mr: the memory region being queried
  */
-bool memory_region_is_ram_device(MemoryRegion *mr);
+bool memory_region_is_ram_device(const MemoryRegion *mr);
 
 /**
  * memory_region_is_romd: check whether a memory region is in ROMD mode
@@ -1787,7 +1787,7 @@ bool memory_region_is_ram_device(MemoryRegion *mr);
  *
  * @mr: the memory region being queried
  */
-static inline bool memory_region_is_romd(MemoryRegion *mr)
+static inline bool memory_region_is_romd(const MemoryRegion *mr)
 {
     return mr->rom_device && mr->romd_mode;
 }
@@ -1800,7 +1800,7 @@ static inline bool memory_region_is_romd(MemoryRegion *mr)
  *
  * @mr: the memory region being queried
  */
-bool memory_region_is_protected(MemoryRegion *mr);
+bool memory_region_is_protected(const MemoryRegion *mr);
 
 /**
  * memory_region_has_guest_memfd: check whether a memory region has guest_memfd
@@ -1810,7 +1810,7 @@ bool memory_region_is_protected(MemoryRegion *mr);
  *
  * @mr: the memory region being queried
  */
-bool memory_region_has_guest_memfd(MemoryRegion *mr);
+bool memory_region_has_guest_memfd(const MemoryRegion *mr);
 
 /**
  * memory_region_get_iommu: check whether a memory region is an iommu
@@ -1820,7 +1820,7 @@ bool memory_region_has_guest_memfd(MemoryRegion *mr);
  *
  * @mr: the memory region being queried
  */
-static inline IOMMUMemoryRegion *memory_region_get_iommu(MemoryRegion *mr)
+static inline IOMMUMemoryRegion *memory_region_get_iommu(const MemoryRegion *mr)
 {
     if (mr->alias) {
         return memory_region_get_iommu(mr->alias);
@@ -1991,7 +1991,7 @@ const char *memory_region_name(const MemoryRegion *mr);
  * @mr: the memory region being queried
  * @client: the client being queried
  */
-bool memory_region_is_logging(MemoryRegion *mr, uint8_t client);
+bool memory_region_is_logging(const MemoryRegion *mr, uint8_t client);
 
 /**
  * memory_region_get_dirty_log_mask: return the clients for which a
@@ -2002,7 +2002,7 @@ bool memory_region_is_logging(MemoryRegion *mr, uint8_t client);
  *
  * @mr: the memory region being queried
  */
-uint8_t memory_region_get_dirty_log_mask(MemoryRegion *mr);
+uint8_t memory_region_get_dirty_log_mask(const MemoryRegion *mr);
 
 /**
  * memory_region_is_rom: check whether a memory region is ROM
@@ -2011,7 +2011,7 @@ uint8_t memory_region_get_dirty_log_mask(MemoryRegion *mr);
  *
  * @mr: the memory region being queried
  */
-static inline bool memory_region_is_rom(MemoryRegion *mr)
+static inline bool memory_region_is_rom(const MemoryRegion *mr)
 {
     return mr->ram && mr->readonly;
 }
@@ -2023,7 +2023,7 @@ static inline bool memory_region_is_rom(MemoryRegion *mr)
  *
  * @mr: the memory region being queried
  */
-static inline bool memory_region_is_nonvolatile(MemoryRegion *mr)
+static inline bool memory_region_is_nonvolatile(const MemoryRegion *mr)
 {
     return mr->nonvolatile;
 }
@@ -2036,7 +2036,7 @@ static inline bool memory_region_is_nonvolatile(MemoryRegion *mr)
  *
  * @mr: the RAM or alias memory region being queried.
  */
-int memory_region_get_fd(MemoryRegion *mr);
+int memory_region_get_fd(const MemoryRegion *mr);
 
 /**
  * memory_region_from_host: Convert a pointer into a RAM memory region
@@ -2071,7 +2071,7 @@ MemoryRegion *memory_region_from_host(void *ptr, ram_addr_t *offset);
  *
  * @mr: the memory region being queried.
  */
-void *memory_region_get_ram_ptr(MemoryRegion *mr);
+void *memory_region_get_ram_ptr(const MemoryRegion *mr);
 
 /* memory_region_ram_resize: Resize a RAM region.
  *
@@ -2421,7 +2421,7 @@ void memory_region_add_subregion_overlap(MemoryRegion *mr,
  *
  * @mr: the region to be queried
  */
-ram_addr_t memory_region_get_ram_addr(MemoryRegion *mr);
+ram_addr_t memory_region_get_ram_addr(const MemoryRegion *mr);
 
 uint64_t memory_region_get_alignment(const MemoryRegion *mr);
 /**
@@ -2521,7 +2521,7 @@ bool memory_region_present(MemoryRegion *container, hwaddr addr);
  *
  * @mr: a #MemoryRegion which should be checked if it's mapped
  */
-bool memory_region_is_mapped(MemoryRegion *mr);
+bool memory_region_is_mapped(const MemoryRegion *mr);
 
 /**
  * memory_region_get_ram_discard_manager: get the #RamDiscardManager for a
@@ -2967,7 +2967,7 @@ void *qemu_map_ram_ptr(RAMBlock *ram_block, ram_addr_t addr);
 int memory_access_size(MemoryRegion *mr, unsigned l, hwaddr addr);
 bool prepare_mmio_access(MemoryRegion *mr);
 
-static inline bool memory_region_supports_direct_access(MemoryRegion *mr)
+static inline bool memory_region_supports_direct_access(const MemoryRegion *mr)
 {
     /* ROM DEVICE regions only allow direct access if in ROMD mode. */
     if (memory_region_is_romd(mr)) {
@@ -2984,8 +2984,8 @@ static inline bool memory_region_supports_direct_access(MemoryRegion *mr)
     return !memory_region_is_ram_device(mr);
 }
 
-static inline bool memory_access_is_direct(MemoryRegion *mr, bool is_write,
-                                           MemTxAttrs attrs)
+static inline bool memory_access_is_direct(const MemoryRegion *mr,
+                                           bool is_write, MemTxAttrs attrs)
 {
     if (!memory_region_supports_direct_access(mr)) {
         return false;
diff --git a/system/memory.c b/system/memory.c
index c51d0798a84..b130d956d4e 100644
--- a/system/memory.c
+++ b/system/memory.c
@@ -1819,9 +1819,9 @@ static void memory_region_finalize(Object *obj)
     g_free(mr->ioeventfds);
 }
 
-Object *memory_region_owner(MemoryRegion *mr)
+Object *memory_region_owner(const MemoryRegion *mr)
 {
-    Object *obj = OBJECT(mr);
+    const Object *obj = OBJECT(mr);
     return obj->parent;
 }
 
@@ -1849,7 +1849,7 @@ void memory_region_unref(MemoryRegion *mr)
     }
 }
 
-uint64_t memory_region_size(MemoryRegion *mr)
+uint64_t memory_region_size(const MemoryRegion *mr)
 {
     if (int128_eq(mr->size, int128_2_64())) {
         return UINT64_MAX;
@@ -1866,25 +1866,25 @@ const char *memory_region_name(const MemoryRegion *mr)
     return mr->name;
 }
 
-bool memory_region_is_ram_device(MemoryRegion *mr)
+bool memory_region_is_ram_device(const MemoryRegion *mr)
 {
     return mr->ram_device;
 }
 
-bool memory_region_is_protected(MemoryRegion *mr)
+bool memory_region_is_protected(const MemoryRegion *mr)
 {
     return mr->ram && (mr->ram_block->flags & RAM_PROTECTED);
 }
 
-bool memory_region_has_guest_memfd(MemoryRegion *mr)
+bool memory_region_has_guest_memfd(const MemoryRegion *mr)
 {
     return mr->ram_block && mr->ram_block->guest_memfd >= 0;
 }
 
-uint8_t memory_region_get_dirty_log_mask(MemoryRegion *mr)
+uint8_t memory_region_get_dirty_log_mask(const MemoryRegion *mr)
 {
     uint8_t mask = mr->dirty_log_mask;
-    RAMBlock *rb = mr->ram_block;
+    const RAMBlock *rb = mr->ram_block;
 
     if (global_dirty_tracking && ((rb && qemu_ram_is_migratable(rb)) ||
                              memory_region_is_iommu(mr))) {
@@ -1898,7 +1898,7 @@ uint8_t memory_region_get_dirty_log_mask(MemoryRegion *mr)
     return mask;
 }
 
-bool memory_region_is_logging(MemoryRegion *mr, uint8_t client)
+bool memory_region_is_logging(const MemoryRegion *mr, uint8_t client)
 {
     return memory_region_get_dirty_log_mask(mr) & (1 << client);
 }
@@ -2406,7 +2406,7 @@ void memory_region_reset_dirty(MemoryRegion *mr, hwaddr addr,
         memory_region_get_ram_addr(mr) + addr, size, client, NULL);
 }
 
-int memory_region_get_fd(MemoryRegion *mr)
+int memory_region_get_fd(const MemoryRegion *mr)
 {
     RCU_READ_LOCK_GUARD();
     while (mr->alias) {
@@ -2415,7 +2415,7 @@ int memory_region_get_fd(MemoryRegion *mr)
     return mr->ram_block->fd;
 }
 
-void *memory_region_get_ram_ptr(MemoryRegion *mr)
+void *memory_region_get_ram_ptr(const MemoryRegion *mr)
 {
     uint64_t offset = 0;
 
@@ -2440,7 +2440,7 @@ MemoryRegion *memory_region_from_host(void *ptr, ram_addr_t *offset)
     return block->mr;
 }
 
-ram_addr_t memory_region_get_ram_addr(MemoryRegion *mr)
+ram_addr_t memory_region_get_ram_addr(const MemoryRegion *mr)
 {
     return mr->ram_block ? mr->ram_block->offset : RAM_ADDR_INVALID;
 }
@@ -2806,7 +2806,7 @@ static FlatRange *flatview_lookup(FlatView *view, AddrRange addr)
                    sizeof(FlatRange), cmp_flatrange_addr);
 }
 
-bool memory_region_is_mapped(MemoryRegion *mr)
+bool memory_region_is_mapped(const MemoryRegion *mr)
 {
     return !!mr->container || mr->mapped_via_alias;
 }
@@ -3290,7 +3290,7 @@ void address_space_destroy_free(AddressSpace *as)
     call_rcu(as, do_address_space_destroy_free, rcu);
 }
 
-static const char *memory_region_type(MemoryRegion *mr)
+static const char *memory_region_type(const MemoryRegion *mr)
 {
     if (mr->alias) {
         return memory_region_type(mr->alias);
@@ -3483,7 +3483,6 @@ static void mtree_print_flatview(gpointer key, gpointer value,
     GArray *fv_address_spaces = value;
     struct FlatViewInfo *fvi = user_data;
     FlatRange *range = &view->ranges[0];
-    MemoryRegion *mr;
     int n = view->nr;
     int i;
     AddressSpace *as;
@@ -3510,7 +3509,8 @@ static void mtree_print_flatview(gpointer key, gpointer value,
     }
 
     while (n--) {
-        mr = range->mr;
+        const MemoryRegion *mr = range->mr;
+
         if (range->offset_in_region) {
             qemu_printf(MTREE_INDENT HWADDR_FMT_plx "-" HWADDR_FMT_plx
                         " (prio %d, %s%s): %s @" HWADDR_FMT_plx,
@@ -3683,8 +3683,10 @@ static void mtree_info_as(bool dispatch_tree, bool owner, bool disabled)
 
     /* print aliased regions */
     QTAILQ_FOREACH(ml, &ml_head, mrqueue) {
-        qemu_printf("memory-region: %s\n", memory_region_name(ml->mr));
-        mtree_print_mr(ml->mr, 1, 0, &ml_head, owner, disabled);
+        const MemoryRegion *mr = ml->mr;
+
+        qemu_printf("memory-region: %s\n", memory_region_name(mr));
+        mtree_print_mr(mr, 1, 0, &ml_head, owner, disabled);
         qemu_printf("\n");
     }
 
diff --git a/system/physmem.c b/system/physmem.c
index e5390d09bef..4a9e0760045 100644
--- a/system/physmem.c
+++ b/system/physmem.c
@@ -1975,7 +1975,7 @@ void qemu_ram_unset_idstr(RAMBlock *block)
     }
 }
 
-static char *cpr_name(MemoryRegion *mr)
+static char *cpr_name(const MemoryRegion *mr)
 {
     const char *mr_name = memory_region_name(mr);
     g_autofree char *id = mr->dev ? qdev_get_dev_path(mr->dev) : NULL;
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 18:36:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 18:36:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249626.1547098 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzfSU-0008BU-Jz; Mon, 09 Mar 2026 18:36:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249626.1547098; Mon, 09 Mar 2026 18:36:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzfSU-0008BK-H2; Mon, 09 Mar 2026 18:36:02 +0000
Received: by outflank-mailman (input) for mailman id 1249626;
 Mon, 09 Mar 2026 18:36: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=9QdD=BJ=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vzfST-0007JG-SA
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 18:36:01 +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 d23a8f3a-1be6-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 19:36:01 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4852afd42ceso28017405e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 09 Mar 2026 11:36:01 -0700 (PDT)
Received: from localhost.localdomain (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dad977f8sm28487057f8f.9.2026.03.09.11.35.59
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Mon, 09 Mar 2026 11:35:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d23a8f3a-1be6-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1773081360; x=1773686160; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=frENE9FJEJIJp1aKXCLyQE1na5fHvR5E0RLXQsidK/I=;
        b=os2dCYM2iWuRmBmvtuR6wM13CdxyRW3KIePfht+f1sk+yiLI56doQBPzj4ypfiDw64
         WPcYrFF6zb8b8aGH3dvw17K0Acu/JV0oBdhiWpDkslu9FS7NmyD40wdhme3M1Y3qgq3j
         2g08aNgFkuW5W/47CiDKxSwaHy9gCSQSmH6W3xbJpPaovvFLzlX4MxsuZf6d9cgefu3f
         QcL9pzdOVxHTZdN3wvdUBBHbNZ14kolnEzDsPSkjwWdGkBN2/oTmZJdv7YOkxtZHIFL8
         fVYQ3tEcYxhRrwxlg+UsD7N4frQ1KtFPv9pj3IciXXkz/yseuNulVNnpXBQPwko1PAQF
         Rf2w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773081360; x=1773686160;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=frENE9FJEJIJp1aKXCLyQE1na5fHvR5E0RLXQsidK/I=;
        b=hDgi6V2WqLex5z+mCq2HIC4UqaoMEbBTSQGPgFqirdQ2iL06r+yDpsmhwVJlPXSsxD
         nldTNBxYQKzNZWjtryd99PjYA7rd/JBnD85rkfDHoomnGygHjw88mm4NSv0NNp8ACM4T
         J+axL2A1IodAj2roe8CnoCUYNWUyuq/O22COsPxInvDaF8qo3/7iFfl3p25/iiyYHY+8
         tb4CaiAr/1A1N7z6JLR8r6wQM4doYSYKd41EoorzVKT8lv1oMXF5UoTerWJkI+oh2nWa
         AQ9vcc+9Zs/W5bREA7/xDDE38IgQ/dM24lkR8n/yt9IG+sQAg+C6hhNu+GJVtK8Llxet
         zBHQ==
X-Forwarded-Encrypted: i=1; AJvYcCWPZ1CdnEN7/jcPMY71qqDgwjQfEpRLJ2t3AZgIuHOzQboRLT292qHLbKn3//3ezjLnOJFxomkxcsk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxIqN84mLl532odponTioOswoDGM9dpz1D/gdFBcUC6wa9Mlxpr
	+w9iBFf73L4RHjSfDqIBIuxwty3NZ9CzkBTlRMtAy34WyMKA0IuqhxY1UeWC4qgBJZ8=
X-Gm-Gg: ATEYQzxrVAS7jPaNI7KyP8iKbxfbxXY8ckqudVHh4HU/grU28WaXHeuJGpDDMImrNGy
	Pez1PHz4TRGrg4ZF0EIwGDXqrWlybew1ykjKOabgvWg16NjyhoSQmq0M6tp98RU26PPosMLbp5s
	Zl8uvJRRTilXuHMilQOgCUzyZTQEBpu3dYX9zcHvuJ01HP092MxvYcs6QwCvTNnaUwCG54uLLja
	DFO99wAuc1s9xYAjkUwE5OkwcghagyRk/LFfF1mqksvIZUTiFk0iRNMgG65sghDByx/+iaX6tfY
	vUIQ5xGiY8Q/zOmpHWz1kq6aEtE79HZeZtivyd9VHLpzWeoYYUS/UBW3GJOLMpzW1QvagvAgoU2
	GrCcMbWpdP35G4EhqySPIsGiDeM4jk+LWzAbYCzXYC1+7kdrUQHR0H2T7PQQPX6lg0j4znAPn0W
	fRE046Zk0Q6qhsgumo8TnBk87PenROxv/rHdLMwP4z/oIBr2lLjY5oyHouLVloSROI9OU/eMbE
X-Received: by 2002:a05:6000:2681:b0:439:be4e:6e58 with SMTP id ffacd0b85a97d-439da891d17mr20945001f8f.47.1773081360467;
        Mon, 09 Mar 2026 11:36:00 -0700 (PDT)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: Mohamed Mediouni <mohamed@unpredictable.fr>,
	Anthony PERARD <anthony@xenproject.org>,
	xen-devel@lists.xenproject.org,
	Mark Cave-Ayland <mark.caveayland@nutanix.com>,
	Peter Xu <peterx@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Pierrick Bouvier <pierrick.bouvier@linaro.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Subject: [PATCH v2 3/4] system/xen: Constify various MemoryRegion arguments
Date: Mon,  9 Mar 2026 19:35:34 +0100
Message-ID: <20260309183536.88976-4-philmd@linaro.org>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260309183536.88976-1-philmd@linaro.org>
References: <20260309183536.88976-1-philmd@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Mark the MemoryRegion structure const when is only accessed read-only.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 include/system/xen-mapcache.h | 2 +-
 include/system/xen.h          | 6 +++---
 hw/xen/xen-hvm-common.c       | 8 ++++----
 hw/xen/xen-mapcache.c         | 2 +-
 hw/xen/xen_stubs.c            | 6 +++---
 5 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/include/system/xen-mapcache.h b/include/system/xen-mapcache.h
index c46190dd0ce..114d1929c80 100644
--- a/include/system/xen-mapcache.h
+++ b/include/system/xen-mapcache.h
@@ -16,7 +16,7 @@ typedef hwaddr (*phys_offset_to_gaddr_t)(hwaddr phys_offset,
 bool xen_map_cache_enabled(void);
 void xen_map_cache_init(phys_offset_to_gaddr_t f,
                         void *opaque);
-uint8_t *xen_map_cache(MemoryRegion *mr, hwaddr phys_addr, hwaddr size,
+uint8_t *xen_map_cache(const MemoryRegion *mr, hwaddr phys_addr, hwaddr size,
                        ram_addr_t ram_addr_offset,
                        uint8_t lock, bool dma,
                        bool is_write);
diff --git a/include/system/xen.h b/include/system/xen.h
index 9a7c53f2838..43b857e4d15 100644
--- a/include/system/xen.h
+++ b/include/system/xen.h
@@ -30,7 +30,7 @@ extern bool xen_allowed;
 
 void xen_hvm_modified_memory(ram_addr_t start, ram_addr_t length);
 void xen_ram_alloc(ram_addr_t ram_addr, ram_addr_t size,
-                   struct MemoryRegion *mr, Error **errp);
-bool xen_mr_is_memory(MemoryRegion *mr);
-bool xen_mr_is_grants(MemoryRegion *mr);
+                   const MemoryRegion *mr, Error **errp);
+bool xen_mr_is_memory(const MemoryRegion *mr);
+bool xen_mr_is_grants(const MemoryRegion *mr);
 #endif
diff --git a/hw/xen/xen-hvm-common.c b/hw/xen/xen-hvm-common.c
index eb7f6270a0d..62d88804c43 100644
--- a/hw/xen/xen-hvm-common.c
+++ b/hw/xen/xen-hvm-common.c
@@ -23,19 +23,19 @@
 MemoryRegion xen_memory, xen_grants;
 
 /* Check for any kind of xen memory, foreign mappings or grants.  */
-bool xen_mr_is_memory(MemoryRegion *mr)
+bool xen_mr_is_memory(const MemoryRegion *mr)
 {
     return mr == &xen_memory || mr == &xen_grants;
 }
 
 /* Check specifically for grants.  */
-bool xen_mr_is_grants(MemoryRegion *mr)
+bool xen_mr_is_grants(const MemoryRegion *mr)
 {
     return mr == &xen_grants;
 }
 
-void xen_ram_alloc(ram_addr_t ram_addr, ram_addr_t size, MemoryRegion *mr,
-                   Error **errp)
+void xen_ram_alloc(ram_addr_t ram_addr, ram_addr_t size,
+                   const MemoryRegion *mr, Error **errp)
 {
     unsigned target_page_bits = qemu_target_page_bits();
     unsigned long nr_pfn;
diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
index a3c162cd4c6..85cf0cf359c 100644
--- a/hw/xen/xen-mapcache.c
+++ b/hw/xen/xen-mapcache.c
@@ -460,7 +460,7 @@ tryagain:
     return mc->last_entry->vaddr_base + address_offset;
 }
 
-uint8_t *xen_map_cache(MemoryRegion *mr,
+uint8_t *xen_map_cache(const MemoryRegion *mr,
                        hwaddr phys_addr, hwaddr size,
                        ram_addr_t ram_addr_offset,
                        uint8_t lock, bool dma,
diff --git a/hw/xen/xen_stubs.c b/hw/xen/xen_stubs.c
index a39efb5062d..f830768d998 100644
--- a/hw/xen/xen_stubs.c
+++ b/hw/xen/xen_stubs.c
@@ -19,12 +19,12 @@ void xen_hvm_modified_memory(ram_addr_t start, ram_addr_t length)
 }
 
 void xen_ram_alloc(ram_addr_t ram_addr, ram_addr_t size,
-                   struct MemoryRegion *mr, Error **errp)
+                   const MemoryRegion *mr, Error **errp)
 {
     g_assert_not_reached();
 }
 
-bool xen_mr_is_memory(MemoryRegion *mr)
+bool xen_mr_is_memory(const MemoryRegion *mr)
 {
     g_assert_not_reached();
 }
@@ -44,7 +44,7 @@ ram_addr_t xen_ram_addr_from_mapcache(void *ptr)
     g_assert_not_reached();
 }
 
-uint8_t *xen_map_cache(MemoryRegion *mr,
+uint8_t *xen_map_cache(const MemoryRegion *mr,
                        hwaddr phys_addr,
                        hwaddr size,
                        ram_addr_t ram_addr_offset,
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 18:36:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 18:36:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249634.1547108 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzfSc-0000FY-Uk; Mon, 09 Mar 2026 18:36:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249634.1547108; Mon, 09 Mar 2026 18: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 1vzfSc-0000FL-RM; Mon, 09 Mar 2026 18:36:10 +0000
Received: by outflank-mailman (input) for mailman id 1249634;
 Mon, 09 Mar 2026 18:36: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=9QdD=BJ=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vzfSc-0007ml-09
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 18:36:10 +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 d6836500-1be6-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 19:36:08 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-48534b59cf3so13527755e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 09 Mar 2026 11:36:08 -0700 (PDT)
Received: from localhost.localdomain (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dad8dbb3sm25412105f8f.4.2026.03.09.11.36.06
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Mon, 09 Mar 2026 11:36:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d6836500-1be6-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1773081368; x=1773686168; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bIEbHx6YI4gBPOp+3pEqRYyaYkjjh/Mj9wYvLwhU6C8=;
        b=aPaJeDnuDxPPuL19l9GAwpuXdgxNkYHXJtb3gKMJ3RWbVJCmv4aRLhvJ+UBKwvLowv
         N3LaBNI7o5TDhpQiIog8ZQAPzkiWZLLIiVEUf1fwJMNHEP+16Hu8M9SchebZto+DV7KI
         f1m8b7m45Pg3eDpxdR2ZhqzPGYo1QOWo5SaGf+w7h2EXMRswKarQK3wSbT0swMzEbAuY
         1ark1aw1B0Wh/nPw6yGAuvnCNdkuK38spmbEeaSKvza+mN+sKDN3T4WymUvLsiQ8AOGJ
         jdv8SP8NAz1vZ6wftmJfWyJXDLA8J71/5SVVzFRkmjxfrxrnVXzsvWTmaKOvWR9DtwPa
         N0eg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773081368; x=1773686168;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=bIEbHx6YI4gBPOp+3pEqRYyaYkjjh/Mj9wYvLwhU6C8=;
        b=gWioS4uBy8bCZaZW1FjQxH2iay7OWwS57pmUJ2jGAK4NhWon+q7VeI8Ti0xXBX7BPD
         8bmMSOZ+FpivwoddLqC3palPxrsOAwY1QFEX02dSXqBN5+oJBq5H/KS/Ux9RUcOmw5Nu
         v6pPTKeMXyb29CVCQL8lMtV3hLP13Z/9D1tcHe6Basl0cmhcVn6CFbUfXS8c5f0kcaYF
         rlsVYpedvxV2wX/hQx2wlD3o0XAVE+qv8vdPOLqd/38AA6MpXU/PSuixv6p21hdKYzQx
         PwARTmtTgORj7PLLw+5P2mkT508Ke9xY1fmpCRaa5Ya0BAMSQ9sTiE/g4aep7rzBmyef
         QwNA==
X-Forwarded-Encrypted: i=1; AJvYcCXXzAdKu2zvWqNjPjrcrt4Vwso+2TxueXSbPfKNqfYRoPfXM1keKIVSWyV4ek74UG68sNwM/ffMHRY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx9EwmoAPFaDy/5XOhB2yf/WrABGerxWzuVn06PSxXM6zNbdpQ/
	hK0iNfrcOJz6qvXSW5VONCNMDH3zpnGkB1npVJoRI3OEVKhn/IEF0/KLtYVNNO4Ewxk8X6LTmdt
	jxU4o8jE=
X-Gm-Gg: ATEYQzwAFYQRIyd+QE4WNKdc31vohrKlWRspmrOLQUIzYwy/lWxH5Rz331kLKlx7yUf
	Ig1uzFbZMyzStuXkonSEg2qriqJppteI91nabeIl/kxvrU6F+DLJNX0nzpD5ezGUhSuUhb6dyGS
	ZXsWjwqlUag2qbKNJNn2wDjkDojcSBedQEaUbJSDJ9qLOJpw+xt4WuzKL0KTeiHz+Ype4+iI9Ed
	/iHUdQTJ2kLAvIbavZa6mWiXyugQNnK5YXPLymZ++QGc1wrtaA06VZUMYusU8lOMn7pf4UlKNN0
	FYv3e+f1ckkVO44o1LArWpBgbrqihJhzpmG/WYDjes3RM0e54Po3F1kBd91EgnMNphk7k23FC2n
	h1xoyAoxOYyh/h2SDFdaksY7T3czKR3njK5JWvgXwzb24aK+G1XmKDXALjWKRXllkrCjIcjGNLg
	CAY8PzFVCTFsIzPfYBpeNkGl5Qlk6SD17Hks7V0e7VgjT2b7sxHp3p5sH8IBlS8v1HIaDocWM3
X-Received: by 2002:a05:6000:604:b0:439:b715:6f4b with SMTP id ffacd0b85a97d-439da8a78d1mr22493963f8f.57.1773081367549;
        Mon, 09 Mar 2026 11:36:07 -0700 (PDT)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: Mohamed Mediouni <mohamed@unpredictable.fr>,
	Anthony PERARD <anthony@xenproject.org>,
	xen-devel@lists.xenproject.org,
	Mark Cave-Ayland <mark.caveayland@nutanix.com>,
	Peter Xu <peterx@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Pierrick Bouvier <pierrick.bouvier@linaro.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Subject: [PATCH v2 4/4] system/memory: Have memory_region_type() correctly describe containers
Date: Mon,  9 Mar 2026 19:35:35 +0100
Message-ID: <20260309183536.88976-5-philmd@linaro.org>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260309183536.88976-1-philmd@linaro.org>
References: <20260309183536.88976-1-philmd@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

MemoryRegion containers are not I/O regions,
describe them as 'container'.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Reviewed-by: Peter Xu <peterx@redhat.com>
---
 system/memory.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/system/memory.c b/system/memory.c
index b130d956d4e..2f2f96ab046 100644
--- a/system/memory.c
+++ b/system/memory.c
@@ -3303,6 +3303,8 @@ static const char *memory_region_type(const MemoryRegion *mr)
         return "rom";
     } else if (memory_region_is_ram(mr)) {
         return "ram";
+    } else if (!mr->container) {
+        return "container";
     } else {
         return "i/o";
     }
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 18:37:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 18:37:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249660.1547117 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzfTp-0001Rc-97; Mon, 09 Mar 2026 18:37:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249660.1547117; Mon, 09 Mar 2026 18: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 1vzfTp-0001RV-5a; Mon, 09 Mar 2026 18:37:25 +0000
Received: by outflank-mailman (input) for mailman id 1249660;
 Mon, 09 Mar 2026 18:37:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kVaJ=BJ=linaro.org=pierrick.bouvier@srs-se1.protection.inumbo.net>)
 id 1vzfTo-0001RL-7k
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 18:37:24 +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 029ceeb6-1be7-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 19:37:23 +0100 (CET)
Received: by mail-pl1-x633.google.com with SMTP id
 d9443c01a7336-2ae5423b02aso55624355ad.1
 for <xen-devel@lists.xenproject.org>; Mon, 09 Mar 2026 11:37:23 -0700 (PDT)
Received: from [192.168.1.87] (216-71-219-44.dyn.novuscom.net. [216.71.219.44])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2ae840ad9b7sm206390295ad.79.2026.03.09.11.37.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Mar 2026 11:37:20 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 029ceeb6-1be7-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1773081441; x=1773686241; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :from:references:cc:to:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=CB0c8DocWs9nC0mRqWJrFur/DeD1o0K/iABvpYV8rYI=;
        b=i5y0ybtdX1y23IwGXWB7o4dQ2/JoVqs2xwGqiLhc3N2mutFkTnmi9bhpLv60Iqii8i
         e+3HuWFCuVAycSoEb2dQxcfDJ5LjZn6n6dBQYelwugKZYbOVjwjftJhslAxQFHINgus9
         z6n+Q2RDRuE5y7fJmEVw16gTq9ESViCv2jGt7kovJoOz02MbmXXMzUOHmdxj9e6EZCuH
         b0MKe3TvDBKtoIqKIwbn0GpilpzOvgQHQQcYAAFlSkX04nL7AkB0p0pltyZFD5s/UsLJ
         G/qt2UO+SAyfXyxPMarMC2s4hod11FRDAZdTHI0LqTBCZr9ahHdPfhdm8JA5oBWiu60D
         6rOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773081441; x=1773686241;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=CB0c8DocWs9nC0mRqWJrFur/DeD1o0K/iABvpYV8rYI=;
        b=X5hDMNXiWjQs9hUlEb+I7cSkDev6+ouC3kN+VYPYfkRMxkAR1fr8ZnVsxd95GQyEAR
         ZbUIMTh9Df5Arl3bFyih+H7y8t77aqyEzCV/44EgO4DPGrJiIOd6KQWzrJi05Raouehs
         MHAP3x+MSshy8O7/SkZA29m/5rWydVuq/rQcjLzlFgKhX9V+tjJ06lokECGRYSZ7umLZ
         TrDPq74GXiJGdqpvCMOigf9mTn2n9bUMMpjppyb+Hl0eGvBNRfu2dfY7wAAK11IwQKt8
         qW8/NLEe8YXfJUj4HV7AWDdvVmGr/f6m5lN0ZkIUtH0K7tsi3V/2roeKeNVc0FbnMY4H
         tNHg==
X-Forwarded-Encrypted: i=1; AJvYcCWR56dx8mKYvgiJvZ7rNk74RLHINNeaSY6htA2R5UnlBWi+TlcULWnVlzgRbcPPQxbzLYyOlw5NkXg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzRZYPe1msjtfdMDX6kz73uzuDRUpRWnyjyMVvo/3gco7TXupLW
	d4YX1nFXpPpTmQazPqwkkfgq+SGCxbharIPqOezHYb+Nw+gOHlwWxXhUksgr0k6yTu0=
X-Gm-Gg: ATEYQzymjHqtAnKSBtYU0Y/aMVqmqFxgEgvPncDGdJu2BNrq6Kno6uGzj3TPyuHgGaS
	BWmYbyY2DQjkrZggs63KODxFc+VQV/NtwSH9f7lJ8rGqhmeljPm1cCLJQENJsWmufjkmDRfWBxd
	KdvlRWHF2MzeBsJrRy/RVhGnBMZy5kRzQh4fUJCkSlox9ZKi6em0j7rWCdsuFubdkckDGwPpwtD
	ozD7gzwJ7qg0xJtAtCWKm1h/T6ryYh0FHzqi5Y0a3kAcNPPzzY0kZkibZkfa0XTnv5RGuxOxYbp
	yIpkQb6/i363Bm1LNth8EYChmIxA+29ixz7VeGIKutigZ6uSeGWXTUsVj0vmLIZV0kN2HFWsxTW
	zMsQsJVSQ2rRvB8wWJMfdvdpjpl9ede1NkjGT5pBOPWcH1RrrYYX/Ku9hqRtBoXIAHauxyaoCFv
	93MR/hSZt+ay0Coiy1/C1bARnv6GnC3HOxcspRbkMxgOdjfacWOK/Ncey2jq4leve5jE1F0Lz06
	Fh+AeA=
X-Received: by 2002:a17:903:ac4:b0:2ae:69d3:5b9f with SMTP id d9443c01a7336-2ae824ac5abmr118864835ad.52.1773081441272;
        Mon, 09 Mar 2026 11:37:21 -0700 (PDT)
Message-ID: <5483ce28-65d2-4726-b7f2-1003113ff58c@linaro.org>
Date: Mon, 9 Mar 2026 11:37:20 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/4] system/xen: Constify various MemoryRegion
 arguments
To: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
 qemu-devel@nongnu.org
Cc: Mohamed Mediouni <mohamed@unpredictable.fr>,
 Anthony PERARD <anthony@xenproject.org>, xen-devel@lists.xenproject.org,
 Mark Cave-Ayland <mark.caveayland@nutanix.com>, Peter Xu
 <peterx@redhat.com>, Richard Henderson <richard.henderson@linaro.org>,
 Paolo Bonzini <pbonzini@redhat.com>,
 "Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
References: <20260309183536.88976-1-philmd@linaro.org>
 <20260309183536.88976-4-philmd@linaro.org>
From: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Content-Language: en-US
Autocrypt: addr=pierrick.bouvier@linaro.org; keydata=
 xsDNBGK9dgwBDACYuRpR31LD+BnJ0M4b5YnPZKbj+gyu82IDN0MeMf2PGf1sux+1O2ryzmnA
 eOiRCUY9l7IbtPYPHN5YVx+7W3vo6v89I7mL940oYAW8loPZRSMbyCiUeSoiN4gWPXetoNBg
 CJmXbVYQgL5e6rsXoMlwFWuGrBY3Ig8YhEqpuYDkRXj2idO11CiDBT/b8A2aGixnpWV/s+AD
 gUyEVjHU6Z8UervvuNKlRUNE0rUfc502Sa8Azdyda8a7MAyrbA/OI0UnSL1m+pXXCxOxCvtU
 qOlipoCOycBjpLlzjj1xxRci+ssiZeOhxdejILf5LO1gXf6pP+ROdW4ySp9L3dAWnNDcnj6U
 2voYk7/RpRUTpecvkxnwiOoiIQ7BatjkssFy+0sZOYNbOmoqU/Gq+LeFqFYKDV8gNmAoxBvk
 L6EtXUNfTBjiMHyjA/HMMq27Ja3/Y73xlFpTVp7byQoTwF4p1uZOOXjFzqIyW25GvEekDRF8
 IpYd6/BomxHzvMZ2sQ/VXaMAEQEAAc0uUGllcnJpY2sgQm91dmllciA8cGllcnJpY2suYm91
 dmllckBsaW5hcm8ub3JnPsLBDgQTAQoAOBYhBGa5lOyhT38uWroIH3+QVA0KHNAPBQJivXYM
 AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEH+QVA0KHNAPX58L/1DYzrEO4TU9ZhJE
 tKcw/+mCZrzHxPNlQtENJ5NULAJWVaJ/8kRQ3Et5hQYhYDKK+3I+0Tl/tYuUeKNV74dFE7mv
 PmikCXBGN5hv5povhinZ9T14S2xkMgym2T3DbkeaYFSmu8Z89jm/AQVt3ZDRjV6vrVfvVW0L
 F6wPJSOLIvKjOc8/+NXrKLrV/YTEi2R1ovIPXcK7NP6tvzAEgh76kW34AHtroC7GFQKu/aAn
 HnL7XrvNvByjpa636jIM9ij43LpLXjIQk3bwHeoHebkmgzFef+lZafzD+oSNNLoYkuWfoL2l
 CR1mifjh7eybmVx7hfhj3GCmRu9o1x59nct06E3ri8/eY52l/XaWGGuKz1bbCd3xa6NxuzDM
 UZU+b0PxHyg9tvASaVWKZ5SsQ5Lf9Gw6WKEhnyTR8Msnh8kMkE7+QWNDmjr0xqB+k/xMlVLE
 uI9Pmq/RApQkW0Q96lTa1Z/UKPm69BMVnUvHv6u3n0tRCDOHTUKHXp/9h5CH3xawms7AzQRi
 vXYMAQwAwXUyTS/Vgq3M9F+9r6XGwbak6D7sJB3ZSG/ZQe5ByCnH9ZSIFqjMnxr4GZUzgBAj
 FWMSVlseSninYe7MoH15T4QXi0gMmKsU40ckXLG/EW/mXRlLd8NOTZj8lULPwg/lQNAnc7GN
 I4uZoaXmYSc4eI7+gUWTqAHmESHYFjilweyuxcvXhIKez7EXnwaakHMAOzNHIdcGGs8NFh44
 oPh93uIr65EUDNxf0fDjnvu92ujf0rUKGxXJx9BrcYJzr7FliQvprlHaRKjahuwLYfZK6Ma6
 TCU40GsDxbGjR5w/UeOgjpb4SVU99Nol/W9C2aZ7e//2f9APVuzY8USAGWnu3eBJcJB+o9ck
 y2bSJ5gmGT96r88RtH/E1460QxF0GGWZcDzZ6SEKkvGSCYueUMzAAqJz9JSirc76E/JoHXYI
 /FWKgFcC4HRQpZ5ThvyAoj9nTIPI4DwqoaFOdulyYAxcbNmcGAFAsl0jJYJ5Mcm2qfQwNiiW
 YnqdwQzVfhwaAcPVABEBAAHCwPYEGAEKACAWIQRmuZTsoU9/Llq6CB9/kFQNChzQDwUCYr12
 DAIbDAAKCRB/kFQNChzQD/XaC/9MnvmPi8keFJggOg28v+r42P7UQtQ9D3LJMgj3OTzBN2as
 v20Ju09/rj+gx3u7XofHBUj6BsOLVCWjIX52hcEEg+Bzo3uPZ3apYtIgqfjrn/fPB0bCVIbi
 0hAw6W7Ygt+T1Wuak/EV0KS/If309W4b/DiI+fkQpZhCiLUK7DrA97xA1OT1bJJYkC3y4seo
 0VHOnZTpnOyZ+8Ejs6gcMiEboFHEEt9P+3mrlVJL/cHpGRtg0ZKJ4QC8UmCE3arzv7KCAc+2
 dRDWiCoRovqXGE2PdAW8788qH5DEXnwfzDhnCQ9Eot0Eyi41d4PWI8TWZFi9KzGXJO82O9gW
 5SYuJaKzCAgNeAy3gUVUUPrUsul1oe2PeWMFUhWKrqko0/Qo4HkwTZY6S16drTMncoUahSAl
 X4Z3BbSPXPq0v1JJBYNBL9qmjULEX+NbtRd3v0OfB5L49sSAC2zIO8S9Cufiibqx3mxZTaJ1
 ZtfdHNZotF092MIH0IQC3poExQpV/WBYFAI=
In-Reply-To: <20260309183536.88976-4-philmd@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 3/9/26 11:35 AM, Philippe Mathieu-Daudé wrote:
> Mark the MemoryRegion structure const when is only accessed read-only.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   include/system/xen-mapcache.h | 2 +-
>   include/system/xen.h          | 6 +++---
>   hw/xen/xen-hvm-common.c       | 8 ++++----
>   hw/xen/xen-mapcache.c         | 2 +-
>   hw/xen/xen_stubs.c            | 6 +++---
>   5 files changed, 12 insertions(+), 12 deletions(-)
> 

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 19:28:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 19:28:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249687.1547129 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzgH7-00004z-WB; Mon, 09 Mar 2026 19:28:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249687.1547129; Mon, 09 Mar 2026 19:28:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzgH7-00004s-SG; Mon, 09 Mar 2026 19:28:21 +0000
Received: by outflank-mailman (input) for mailman id 1249687;
 Mon, 09 Mar 2026 19:28:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=vz3/=BJ=redhat.com=peterx@srs-se1.protection.inumbo.net>)
 id 1vzgH6-0008WS-HU
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 19:28:20 +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 1ef7f47d-1bee-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 20:28:17 +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-377-giO3XCGYORep7-RwVSzZzA-1; Mon, 09 Mar 2026 15:28:14 -0400
Received: by mail-qv1-f70.google.com with SMTP id
 6a1803df08f44-89a17ec1eecso385620426d6.3
 for <xen-devel@lists.xenproject.org>; Mon, 09 Mar 2026 12:28:13 -0700 (PDT)
Received: from x1.local ([174.91.117.149]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-89a57c21650sm3965026d6.39.2026.03.09.12.28.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 09 Mar 2026 12:28:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1ef7f47d-1bee-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1773084495;
	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=rbgWYjkthYIOSTddrLM7TxbryCIauGeCCATpvk8Vcjo=;
	b=OTbtKYNx9U1VSvr/q62NqwK7FMPTsE6CvsDNi5S+iSABv8gqXhhdui29gq63rhcMwgYQmr
	js8YOA0a3oDzDOs+vxlljPka3w7ljabdxDTQtZ2O6CVG5H3WsRHeo+G+nklz6IoYTGQA9T
	NCMs60r3qGpKp+n/+Zine4bMrEftPT8=
X-MC-Unique: giO3XCGYORep7-RwVSzZzA-1
X-Mimecast-MFC-AGG-ID: giO3XCGYORep7-RwVSzZzA_1773084493
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773084493; x=1773689293;
        h=in-reply-to:content-transfer-encoding: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=rbgWYjkthYIOSTddrLM7TxbryCIauGeCCATpvk8Vcjo=;
        b=I+HOOdZ4CcSwK0vbuFPPj7igZt1VDfWTGGX+AQcULAlMhPEWT3OXqYflmFMxFOT8U9
         VivaCfAeRLFrjfcdl8KTc6sWYz9xicYSAGT0veftY4slANf5RaLFpYJ7B7ig3E8QIvtR
         ByWfBiOJYkPmQrT/F1yyK/30y/wMatYjUVEPKAEep9bdOpSr1ohKnwRLjKkPRWivekpi
         HzdcsT1fyBIMZs9MMu/ObjvWV/twvW9Vmg9hI58JepVaogWv/4OTaiC48U8tAwwFzIhc
         rY26FW3HDM6BqxHPeUB6sPdUpGl3y7S04O28YePpF8jujNg2TVdxfzfGSD4oeqkd4lSh
         kVXQ==
X-Forwarded-Encrypted: i=1; AJvYcCVRnkpE5Nbtp7VkjYeZGivrez14syg+q4yGC1bTL14yL8Q/C0jJEKlYHHo7dkwCZ1uIp1dbl9SkFTk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz5N46SVB87E0NfGCLw6IIbWlET9tmDlvPPVTnezEq5q3UY0+GC
	VNGOsU1llS3EQWYdHKC43c2dvgBPkx5o7pFrnCyYKFZAyfUIxtE1mZUBhc0ah4ji9nKpydWrNuH
	rihcbz8qXVnuJvGkS5X4ycGP8D+oUztnmpMJv/HnhFgDulaVvpZkCV/t/PEBde76i/3SI
X-Gm-Gg: ATEYQzzCXfLxZvwwq4cD3n8lCmu4a2FBeCRj7y9lO+bWKCCPLP7HPS3K7yG29jEklpL
	KpWka3g5MBnskSHG+cNQzCz3uUvaydMbP9sx3uoCbD2Av6ttA6Vhsw8Nuawn1BQfHxiVIPwC8vg
	6DRtMgVVpwbAS3AROYpk4m8Dzs9S7/MeezFZ18BtvT8I51JCmy50Yo/5JYU5agedyKbsVpHWAh1
	1j/PL0xKOrYwt0NvGacWzxhfI+sNMcFrQcotAWzpaTUC1kJ8rAhwgT41pg9O0GUR2QoqLFlJYGO
	7I7j9zAN/C4RrH7NiGud+gXOe33N5Aah6Vz8kqX08yxGnrpjGTx/qszMGy7g/lKTCgYL8kI1wFJ
	q5X0CUkH8WQHXLg==
X-Received: by 2002:a05:6214:cc4:b0:89a:865:75d7 with SMTP id 6a1803df08f44-89a30a5c913mr195502306d6.27.1773084493136;
        Mon, 09 Mar 2026 12:28:13 -0700 (PDT)
X-Received: by 2002:a05:6214:cc4:b0:89a:865:75d7 with SMTP id 6a1803df08f44-89a30a5c913mr195501746d6.27.1773084492577;
        Mon, 09 Mar 2026 12:28:12 -0700 (PDT)
Date: Mon, 9 Mar 2026 15:28:00 -0400
From: Peter Xu <peterx@redhat.com>
To: Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Cc: qemu-devel@nongnu.org, Mohamed Mediouni <mohamed@unpredictable.fr>,
	Anthony PERARD <anthony@xenproject.org>,
	xen-devel@lists.xenproject.org,
	Mark Cave-Ayland <mark.caveayland@nutanix.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Pierrick Bouvier <pierrick.bouvier@linaro.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Subject: Re: [PATCH v2 0/4] system/memory: Constify various
 RAMBlock/MemoryRegion arguments
Message-ID: <aa8fQIialE5xMAnf@x1.local>
References: <20260309183536.88976-1-philmd@linaro.org>
MIME-Version: 1.0
In-Reply-To: <20260309183536.88976-1-philmd@linaro.org>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: mkQdIm1VSr7gb2jADLY9uz5gmDZdWzhCynGKUdVAxgo_1773084493
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit

On Mon, Mar 09, 2026 at 07:35:31PM +0100, Philippe Mathieu-Daudé wrote:
> v2:
> - Dropped "stubs: Merge physmem.c within ram-block.c" (Zoltan)
> - Dropped "info mtree" patches (no time to update doc for freeze)
> - New Xen patch
> 
> Philippe Mathieu-Daudé (4):
>   system/ramblock: Constify various RAMBlock arguments
>   system/memory: Constify various MemoryRegion arguments
>   system/xen: Constify various MemoryRegion arguments
>   system/memory: Have memory_region_type() correctly describe containers

queued

-- 
Peter Xu



From xen-devel-bounces@lists.xenproject.org Mon Mar 09 21:05:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 21:05:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249722.1547138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzhmq-0003RG-Km; Mon, 09 Mar 2026 21:05:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249722.1547138; Mon, 09 Mar 2026 21: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 1vzhmq-0003R9-Hk; Mon, 09 Mar 2026 21:05:12 +0000
Received: by outflank-mailman (input) for mailman id 1249722;
 Mon, 09 Mar 2026 21:05: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=I7sq=BJ=kernel.org=helgaas@srs-se1.protection.inumbo.net>)
 id 1vzhmp-0003R3-QT
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 21:05:11 +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 a7ba343a-1bfb-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 22:05:09 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 0FF3560054;
 Mon,  9 Mar 2026 21:05:08 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4FD26C4CEF7;
 Mon,  9 Mar 2026 21:05:07 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a7ba343a-1bfb-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1773090307;
	bh=Nq8FH4TTfSWeK3IqSHQXr18jc5JUXALz41xxYhKgNgA=;
	h=Date:From:To:Cc:Subject:In-Reply-To:From;
	b=kdf6A65npBGYj/ybcEJCHuWvMf/VZj0Jj8ZaOAFs96ROtJKN3tNO6HP1MgrC1B6oy
	 EPz1UZwrSSC9JS6jVh8OFGGbTheePHMFWRYLgBv6QYovtZxwfOJIBlVIiFiT1GlRLD
	 gIb3m8jY9XsN+5f9e3VF1vUYbRS23+wDBhf1FUzktXUHwBjHU/K01iV5QYd4lJUqwT
	 Juq+UXeh/FdpGWKyQnG8gefrB2Wu+pXvMbGgRB3sIPoxuUO6Q4ct39W+i2TnSz6lEb
	 4iJj4AIMUzMPKu8qsjNoIlfsyAQcX/cq7D4MiOj4h7VwqN29Fg5h87eIkiuTTVEPZg
	 88YY2nPe8WVWw==
Date: Mon, 9 Mar 2026 16:05:06 -0500
From: Bjorn Helgaas <helgaas@kernel.org>
To: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Cc: Nipun Gupta <nipun.gupta@amd.com>,
	Nikhil Agarwal <nikhil.agarwal@amd.com>,
	Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
	Lorenzo Pieralisi <lpieralisi@kernel.org>,
	Thomas Gleixner <tglx@kernel.org>,
	Saravana Kannan <saravanak@kernel.org>,
	Richard Zhu <hongxing.zhu@nxp.com>,
	Lucas Stach <l.stach@pengutronix.de>,
	Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
	Manivannan Sadhasivam <mani@kernel.org>,
	Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
	Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
	Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
	Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
	Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
	linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
	linux-pci@vger.kernel.org, imx@lists.linux.dev,
	xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
	Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Subject: Re: [PATCH v10 0/3] of: parsing of multi #{iommu,msi}-cells in maps
Message-ID: <20260309210506.GA589665@bhelgaas>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260309-parse_iommu_cells-v10-0-c62fcaa5a1d8@oss.qualcomm.com>

On Mon, Mar 09, 2026 at 01:03:36AM +0530, Vijayanand Jitta wrote:
> ...

> Charan Teja Kalla (1):
>       of: factor arguments passed to of_map_id() into a struct

Please make this subject line match the capitalization of those below,
i.e., "of: Factor arguments ..."

> Robin Murphy (2):
>       of: Add convenience wrappers for of_map_id()
>       of: Respect #{iommu,msi}-cells in maps


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 21:08:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 21:08:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249730.1547146 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzhqR-0003xG-2n; Mon, 09 Mar 2026 21:08:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249730.1547146; Mon, 09 Mar 2026 21: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 1vzhqR-0003x9-0H; Mon, 09 Mar 2026 21:08:55 +0000
Received: by outflank-mailman (input) for mailman id 1249730;
 Mon, 09 Mar 2026 21: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=I7sq=BJ=kernel.org=helgaas@srs-se1.protection.inumbo.net>)
 id 1vzhqQ-0003x3-Dw
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 21:08:54 +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 2c21054e-1bfc-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 22:08:51 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id E215760054;
 Mon,  9 Mar 2026 21:08:50 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6AE8BC4CEF7;
 Mon,  9 Mar 2026 21:08: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: 2c21054e-1bfc-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1773090530;
	bh=U7I3bh69J3B4cMe2WWPQdGTO1zM2gflc1SsDGP9ZT0I=;
	h=Date:From:To:Cc:Subject:In-Reply-To:From;
	b=A0L3JiuPR1xjYzTSESZft46f57l2sFUINbyiBwaa6vFAi1NfK83JHNon+cdjeHKbn
	 7dtI21fEV5QD8ro2YvLh2Si8Xpmb/17KnuNGo/q5fBhZ11PkzUawLhZoFdFNhVyGZM
	 h/UhGimNDd/Bac8cHifHRIEZ0rQmMlZ0lNoOeU0rl8G4gzJtuuk805FkZ6Mu2QWd+Z
	 3MmBuE34eHGaY4YmNqZFA/7GR/Hc/hOENwdlrhexbxhowZ156iiF3wnKTE7av1xp4N
	 wTipYJkof56uIJTznJYFJZWnhgT23MKaop5kLLZPDuod/62QnQMcD8mDWMFBsMhO4/
	 d13soJV6gfW+A==
Date: Mon, 9 Mar 2026 16:08:49 -0500
From: Bjorn Helgaas <helgaas@kernel.org>
To: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Cc: Nipun Gupta <nipun.gupta@amd.com>,
	Nikhil Agarwal <nikhil.agarwal@amd.com>,
	Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
	Lorenzo Pieralisi <lpieralisi@kernel.org>,
	Thomas Gleixner <tglx@kernel.org>,
	Saravana Kannan <saravanak@kernel.org>,
	Richard Zhu <hongxing.zhu@nxp.com>,
	Lucas Stach <l.stach@pengutronix.de>,
	Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
	Manivannan Sadhasivam <mani@kernel.org>,
	Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
	Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
	Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
	Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
	Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
	linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
	linux-pci@vger.kernel.org, imx@lists.linux.dev,
	xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
	Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Subject: Re: [PATCH v10 3/3] of: Respect #{iommu,msi}-cells in maps
Message-ID: <20260309210849.GA591344@bhelgaas>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260309-parse_iommu_cells-v10-3-c62fcaa5a1d8@oss.qualcomm.com>

On Mon, Mar 09, 2026 at 01:03:39AM +0530, Vijayanand Jitta wrote:
> From: Robin Murphy <robin.murphy@arm.com>
> 
> So far our parsing of {iommu,msi}-map properites has always blindly

s/properites/properties/


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 21:17:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 21:17:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249741.1547155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzhyE-0005WG-Oi; Mon, 09 Mar 2026 21:16:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249741.1547155; Mon, 09 Mar 2026 21: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 1vzhyE-0005W9-Lx; Mon, 09 Mar 2026 21:16:58 +0000
Received: by outflank-mailman (input) for mailman id 1249741;
 Mon, 09 Mar 2026 21: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=fXxp=BJ=oss.qualcomm.com=dmitry.baryshkov@srs-se1.protection.inumbo.net>)
 id 1vzhyD-0005W3-55
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 21:16:57 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4bdf1f80-1bfd-11f1-b164-2bf370ae4941;
 Mon, 09 Mar 2026 22:16:54 +0100 (CET)
Received: from pps.filterd (m0279869.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 629HBqeH3148233
 for <xen-devel@lists.xenproject.org>; Mon, 9 Mar 2026 21:16:53 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 4csv5ua53a-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Mon, 09 Mar 2026 21:16:53 +0000 (GMT)
Received: by mail-qt1-f197.google.com with SMTP id
 d75a77b69052e-50900e9803aso189295131cf.2
 for <xen-devel@lists.xenproject.org>; Mon, 09 Mar 2026 14:16:53 -0700 (PDT)
Received: from umbar.lan
 (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi.
 [2001:14ba:a073:af00:264b:feff:fe8b:be8a])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-5a13d01cbfasm2323612e87.14.2026.03.09.14.16.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 09 Mar 2026 14:16:50 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4bdf1f80-1bfd-11f1-b164-2bf370ae4941
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=KLgWRaioXqeIrwHgYBcxPqE/
	kg4Fe+2f2o7A+PfgTZw=; b=eYrTi12bsFRg+Ep63Gvyrpkz6qz+XZZnxJnhHzZ8
	Afqkljn6AGFqwUNG6Hi9uCb6ZzQda58iRJHt3K5YZu6fE5lb/rlDs3LPJDnuIy9X
	R2Y9ER606cwX+ZHgCY8VFLE+xAxUWo2O4Thd+KKh+iYlFQhrYQ0g6GO+JQptJ4KE
	6f0gsKaivSPOXL1lrK/xqQc3elp326ygArdomugL7e78pyCIveo8V0I+Gp/yH752
	qn3L1fJOi+1y8gGG02UGdrOgFKCLS1JmoihvFsIZX4/Br1ShuSsjy4BmL2Iv75+1
	0Iz/BPpRhzYykPy9UUlKCrzFisiTC2PnI1DfQMHXc4YBKg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1773091012; x=1773695812; 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=KLgWRaioXqeIrwHgYBcxPqE/kg4Fe+2f2o7A+PfgTZw=;
        b=YBvG900VLbelKbArd2GrhU0/17rMOvtDrX/WHXT+YfYcMkAZW+XhglRT5ktWEhWYwY
         JMjJ+Mb1dbwkXOhqoPBshKs0PnkG52diMl8JjkxfitfU9Hr43mOI2dvwlZRkkM+aFu9B
         rIDOJssm+n0+aHq92wlA0+t5aSH4zoXYPrmOtsRb8lM5HG+PQPvgrucWhs4NeCVCIpgU
         x/XLuXAapoXqci92TZSnaYLNz6fSoA2/BnHG20IbjYQ0IGWW1YwM+/piVD6NTA82nE6x
         mKQgq6Yeazysl5VEA6YmopTX6kW+OTM60SV3IwnS2AHmTNLZsV8UrvYfkdjmZgfcUDGi
         RgKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773091012; x=1773695812;
        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=KLgWRaioXqeIrwHgYBcxPqE/kg4Fe+2f2o7A+PfgTZw=;
        b=dPL4bAG/xRBEtC/h0NUmBR6+Q7l9IqP31M5bjcez0Dy2IWAatn+GvgbFt+C7EYUKsC
         g/kzTXA2pol3M7VfAiiKqYJjpNWR+ZysdIniktnf27XoJq5SMcgVaFv/AIxBGtAFUBuX
         r1lV8cqcLupLRPxnHgNAZOyOduWezB3j6pLhpmRJO9ADbpouUY0dbQNpY5gzAVJbTDWn
         pZY4azpg5yXk6u0yzsEK6oO5svxnYgwu2/JB6KQwLBXW99r1/upooYqOjajckoi1pBHg
         dRJwb3Le1ZICfth/G0kf7zTib+oqnaWXBV/cS78i6HII/OmAPXNp9/csAuZ8zsetcMHm
         ghxw==
X-Forwarded-Encrypted: i=1; AJvYcCVq1TQ6LHT8G9i5mVvOFxqmLNwD46LzfViKyT4F0R0+GS5gtoDKdB3DCi7VLOqFnWww3XcsojgjhFE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz5aSug+lK9v9QBZM4zuHIQBhcqcYSzdyDzOXq6GAmYL8b/CLXL
	ghE7b/dX5Nb5GRvKdVjB0p0eKP873qWzE1YSZKp1+/ZSijO3usRL0pleKE/XkGnzPMDzzOUfYLg
	BeQsF5PHbw+mm8XG+A0iQ0V9RHWDEhCtK/DHHGBzY55YyKBbQRTa9pmRFVJPr+THFaKwRmA==
X-Gm-Gg: ATEYQzw27STEevhm7AmigV3VEMplRitjyQ4Sp4fcwPXkMu62CuIgPatQ6Ljn7/uhXM/
	/grkk/kyhg4+A+haZQFeJptVg3+eDyRDIGAGUfC90NH6NB26uQ3Nmg36pG0nm+/+fKJVsClvQDs
	iRHScba/MTxPpKYLxlzJ1MhkVr9KoBf8RRZy/yVx2waep4IUi2YLoo3dGCId7DYNZzKRHjAfQdy
	GgtViDSyoI6H0llnwaT8LddR9N3FOZKsUIwKMS6FeRLpodYPX4nRYDpQLRcQaJuZFSPZGID2rmb
	VOqgHu8hyQz3NeWpCHSvZqBzV2oGRJuBidRMYYetKpBj+S5zp4ok/mV/8dfCzfkVnmZG3RHz+wj
	Zx+9JJ0GsPOf6oML4II+VF53m6bv9Ekfz6KeZ6HASI4yrI9rx5kMyTLoyHhKHJAJIQZBj2W2PeV
	SDzim1P+vlC1qx1hfBY/EjTMewtDyFvnf9O5c=
X-Received: by 2002:a05:620a:2946:b0:8cb:3d7a:c009 with SMTP id af79cd13be357-8cd6d4b5029mr1566977985a.78.1773091012403;
        Mon, 09 Mar 2026 14:16:52 -0700 (PDT)
X-Received: by 2002:a05:620a:2946:b0:8cb:3d7a:c009 with SMTP id af79cd13be357-8cd6d4b5029mr1566971885a.78.1773091011890;
        Mon, 09 Mar 2026 14:16:51 -0700 (PDT)
Date: Mon, 9 Mar 2026 23:16:47 +0200
From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Cc: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org
Subject: Re: [PATCH v10 1/3] of: Add convenience wrappers for of_map_id()
Message-ID: <3plcdobbd6teiluzijzk33yepbpsur24tnmjr32sco7a4loptm@xmzmsaurvmvj>
References: <20260309-parse_iommu_cells-v10-0-c62fcaa5a1d8@oss.qualcomm.com>
 <20260309-parse_iommu_cells-v10-1-c62fcaa5a1d8@oss.qualcomm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260309-parse_iommu_cells-v10-1-c62fcaa5a1d8@oss.qualcomm.com>
X-Proofpoint-GUID: 6_yulVzokgJlJ8zTfldfI44zalv2-rYd
X-Proofpoint-ORIG-GUID: 6_yulVzokgJlJ8zTfldfI44zalv2-rYd
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDE4OCBTYWx0ZWRfX3SHK2/4Bi9kJ
 4bwyS2EYRgSOUVzpxGYs8exPK3Af9EvVolSyAH1Cs8dKATw1Gtc0TVPqwLIMrBMGTMnoMtAUloI
 hHb63vl2cj76QeEYeoZ6E7pGssO0xFdrsBhktFtFI0HCkKZBi7A1bGhZaVyNo0tEuivxPXnt+Gd
 tJiclvW2M9kHP3aO2X8kEiVVVJjgmnihUcFv0N4r/EatkL/saB5kH2a93ww6vnxpNh5Qs1Txqvk
 buRKZTyyR/l65Skv7BUfSCBhaDDCuCna2pfKgu62sDTgdgyaMGxbZam6ysHzglM4smUlW+qqANW
 2jq9xGOjkilsOl16Y1euSJfsX7rVOERXCZk4DloZ8J0z99LGwz0kwMobkTZM8FxCXXQHrMc0QCZ
 74xeEPu2unMUqPHMCIZoVRv8Uq0gE11O6nA8oy+xA3iMecWEnukCiqqjEeSNDCmk4aUnIZcu5g3
 IO5xJFO6aNAPx2KIntg==
X-Authority-Analysis: v=2.4 cv=Xr/3+FF9 c=1 sm=1 tr=0 ts=69af38c5 cx=c_pps
 a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10
 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=7CQSdrXTAAAA:8
 a=VwQbUJbxAAAA:8 a=8AirrxEcAAAA:8 a=EUspDBNiAAAA:8 a=5ndfpk7zZlG9lj9R3R4A:9
 a=CjuIK1q_8ugA:10 a=a_PwQJl-kcHnX1M80qC6:22 a=a-qgeE7W1pNrGK8U0ZQC:22
 a=ST-jHhOKWsTCqRlWije3:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-09_06,2026-03-09_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 malwarescore=0 adultscore=0 spamscore=0 impostorscore=0 suspectscore=0
 lowpriorityscore=0 clxscore=1015 phishscore=0 priorityscore=1501 bulkscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090188

On Mon, Mar 09, 2026 at 01:03:37AM +0530, Vijayanand Jitta wrote:
> From: Robin Murphy <robin.murphy@arm.com>
> 
> Since we now have quite a few users parsing "iommu-map" and "msi-map"
> properties, give them some wrappers to conveniently encapsulate the
> appropriate sets of property names. This will also make it easier to
> then change of_map_id() to correctly account for specifier cells.
> 
> Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
> Reviewed-by: Frank Li <Frank.Li@nxp.com>
> Signed-off-by: Robin Murphy <robin.murphy@arm.com>
> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
> ---
>  drivers/cdx/cdx_msi.c                    |  3 +--
>  drivers/iommu/of_iommu.c                 |  4 +---
>  drivers/irqchip/irq-gic-its-msi-parent.c |  2 +-
>  drivers/of/base.c                        | 36 ++++++++++++++++++++++++++++++++
>  drivers/of/irq.c                         |  3 +--
>  drivers/pci/controller/dwc/pci-imx6.c    |  6 ++----
>  drivers/pci/controller/pcie-apple.c      |  3 +--
>  drivers/xen/grant-dma-ops.c              |  3 +--
>  include/linux/of.h                       | 18 ++++++++++++++++
>  9 files changed, 62 insertions(+), 16 deletions(-)
> 
> +
> +/**
> + * of_map_msi_id - Translate an ID using "msi-map" bindings.

Which ID are we talking about wrt. MSI interrupts?

> + * @np: root complex device node.
> + * @id: device ID to map.
> + * @target: optional pointer to a target device node.
> + * @id_out: optional pointer to receive the translated ID.
> + *
> + * Convenience wrapper around of_map_id() using "msi-map" and "msi-map-mask".
> + *
> + * Return: 0 on success or a standard error code on failure.
> + */
> +int of_map_msi_id(const struct device_node *np, u32 id,
> +		  struct device_node **target, u32 *id_out)
> +{
> +	return of_map_id(np, id, "msi-map", "msi-map-mask", target, id_out);
> +}
> +EXPORT_SYMBOL_GPL(of_map_msi_id);

-- 
With best wishes
Dmitry


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 21:23:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 21:23:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249755.1547164 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzi4T-0007Ac-GU; Mon, 09 Mar 2026 21:23:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249755.1547164; Mon, 09 Mar 2026 21:23:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzi4T-0007AV-Dp; Mon, 09 Mar 2026 21:23:25 +0000
Received: by outflank-mailman (input) for mailman id 1249755;
 Mon, 09 Mar 2026 21:23:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fXxp=BJ=oss.qualcomm.com=dmitry.baryshkov@srs-se1.protection.inumbo.net>)
 id 1vzi4R-0007AH-JZ
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 21:23:23 +0000
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com
 [205.220.168.131]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3198570e-1bfe-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 22:23:20 +0100 (CET)
Received: from pps.filterd (m0279862.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 629HC5OW3280630
 for <xen-devel@lists.xenproject.org>; Mon, 9 Mar 2026 21:23:18 GMT
Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com
 [209.85.222.198])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4csqcyb93u-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Mon, 09 Mar 2026 21:23:18 +0000 (GMT)
Received: by mail-qk1-f198.google.com with SMTP id
 af79cd13be357-8cd8b37d4b2so809163385a.3
 for <xen-devel@lists.xenproject.org>; Mon, 09 Mar 2026 14:23:18 -0700 (PDT)
Received: from umbar.lan
 (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi.
 [2001:14ba:a073:af00:264b:feff:fe8b:be8a])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-5a13d02b7e5sm2278544e87.32.2026.03.09.14.23.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 09 Mar 2026 14:23:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3198570e-1bfe-11f1-9ccf-f158ae23cfc8
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=TtfIg1OCm36qvkMhTOZUWOO1
	bZpr9t+AjKAbArsxNiE=; b=eyJPpq3Ig7NxG3aU7DJtqhc3PsNXLt5yKHOlINSp
	78iEyJkx1Kv9HVu6lMkbquLLkhFVRe5VDgVx9MdIMWcWpERBlViQyHeWKFr7V/43
	lAexD7de/jtwjnixjFWElOdRtTAIZNMzoznOULVcEij4or/w85O0w5pOTYqfMFzD
	wgLOlGhGMmOrikUaOuSMbrHYIzoWhjJeHlO1Qrx5j6m2GqcbpZQ1RTGMGok0jfFB
	XGjD8yimz+eA29vgC3DWQ7BPQBxPpoNpuMsj+8cgHe4x9pLY4Yzr1buVqa0zukzA
	m+HUjpVrpT5ki3Gp8XA+FcQIiEHg+NxuCR1N3G0DZTdEOQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1773091397; x=1773696197; 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=TtfIg1OCm36qvkMhTOZUWOO1bZpr9t+AjKAbArsxNiE=;
        b=Fu5t+K5rE51VQhevNF/pDl+e1b245p9mYtwOOKDg4pDjMchNhxs/mGXlzzDQdYd/u4
         qVYBXFiPB7G6NNdCJeyh6h6S2teopPTX1qZJG6SzhVugiuAVho12GaZTIVjbYdjycHZt
         G1sDe8o1+UnAUojGRM9dxUc2wKHDRWavA/yfOfZQU/gNN8q9s7VqW8p0KSqITh7EsDjt
         pysolNK4Vlw+r69ydW7hQCsTg0V4GMftawVmx0PB9TDRSEAJhGxPKOl3kral/vxXDXNM
         iznBtX2hZo3NlltzhR3sF177oht9WEIFvU7i+w7WJYGEUf5Veefh94CzwnSAwbeCw1hM
         ecTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773091397; x=1773696197;
        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=TtfIg1OCm36qvkMhTOZUWOO1bZpr9t+AjKAbArsxNiE=;
        b=bypc/3kpl3kCwpgILOWfvJNlZovkDoA+6J1webwavcZwnR5e2LSSK/dG+HdXOkzHEB
         GewCs4uQyc+wt6zPZAcsXsVjbi0Lvcd1gbaBJTn/E9VExAtuwPXZrDlM582FFxmDwz+I
         7fsGuqIK7r3V3tY2C/54oj5dXKs2KjBH4BtFSQIeG1opGDvQ5Pqn+vj31n4Q3U3bZ+Qc
         g25MQB9x6BhO3lByczRiFpu73H7POoZkRlaR2SxirR/phI1wqVZQKSnf4MSu7X8k64t4
         xQC9qjUnOv8BWgI67nYEZV+HxOVaN/1X7EKbpw2K/fHHabtlukvKHCLsI2606fKoj4tb
         8LfQ==
X-Forwarded-Encrypted: i=1; AJvYcCWHsLXux6jrkSVpGcXzFpsLOEhUtHCHDmsyxK67UWgXFAE12dEcZWPaVnu2UZ2rZEp4LFUneYMHThg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzX/wxFLfwD1H0Q/AoxjWw8o046mOPUZ9i90p31bAY84HG75/FX
	OTzVXqwxONFdZr5sugYSFPDiUFzLn7KCGFfP9BT8Cpu78SLHDDAYYWPjl4jnqWwVH9c8t0KDD5K
	4SS/nG1r8rqMd3fz1wPDxfoQ7v0fnAukN/CDZNJF5N8nq0NxVchv118QOw5a++KiZQIPTng==
X-Gm-Gg: ATEYQzxznwoTKAtSvFmXDXcNJss4JcRA16mdjn/3Q+0YWiM3xo2+oZ4Kv+ZpkB6gclu
	jANZT/HJl20kPhb/rztZWomYAlduQBDeAjEPm17/VkM1bxJIgxvUVod81I32NDJ4v0vtS+eu0eP
	T9wMvOwNf2JN+sKVa91cMWzoTazQDI1iIfLU1zV41rysTr1DGSXNMq+mV12SCyh9hoxOOkumEd/
	Dzi3ipio9cjFNXG3hn+ZE2eq3iCvKf0u8muiOboNphN0RTIiKHyK65RDVZSI5dJu/63k1rqyc+W
	PeFcfFjaYpM4keDKTYNLnrTtndFjpxWKNBpQxVGtuZDwk/KH8Fbne05DnBxoIX6PpziS9ENSJz6
	Cxbow15sew8QBYh/Ay6JKzTYKW97qwWryjHFEMvC0NeF9PRxVk35BaFyZJI4o1Wb082l+OlExlO
	RS5PHwLYCZD4gd3l2iRvx0qiHJD/VJjF1jv48=
X-Received: by 2002:a05:620a:40c3:b0:8cd:8f18:d1d3 with SMTP id af79cd13be357-8cd8f18d5demr363277185a.58.1773091397432;
        Mon, 09 Mar 2026 14:23:17 -0700 (PDT)
X-Received: by 2002:a05:620a:40c3:b0:8cd:8f18:d1d3 with SMTP id af79cd13be357-8cd8f18d5demr363272685a.58.1773091396812;
        Mon, 09 Mar 2026 14:23:16 -0700 (PDT)
Date: Mon, 9 Mar 2026 23:23:14 +0200
From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Cc: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Subject: Re: [PATCH v10 2/3] of: factor arguments passed to of_map_id() into
 a struct
Message-ID: <esfzpgpgenydif2sxahsetkglz6kewsgjhkmzr6ulrrkctnkbq@a4zsfdmhbxui>
References: <20260309-parse_iommu_cells-v10-0-c62fcaa5a1d8@oss.qualcomm.com>
 <20260309-parse_iommu_cells-v10-2-c62fcaa5a1d8@oss.qualcomm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260309-parse_iommu_cells-v10-2-c62fcaa5a1d8@oss.qualcomm.com>
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDE5MCBTYWx0ZWRfXzGxDle9W+Rrv
 GhlTY6w5b6yjK6Ym/IAYZdOsdUJPUguMTirY5OzNhUH1+4ilklILotAlzjbtKkd762bLXcuwhS0
 80QgOwcJ5gLmNyp7Lp7ZlViiA5qRRuoHXdFjsj8JDFYbYKtgZLbzugkPz3onXoh5mzxdYVQLTNe
 dbFwzQiHFgaUUsNKIIrKGDl+6EGuFzulWfRi4V1HHK6ZUpZ5axM57uO7SgyJoxYJfQLsoVjkMj5
 1dmJaM9g60xh2Dfe2q2lYt4CFy9NKhhPyx9caSETaQvPTm4JbLNKqJ73pdi3miXivwd7b1TS7b9
 46iN/4VU1yyi1gjS71m4r0L6RVmlMpbNOr8KMmE9dvu0Moh/6QWk90rqIXl3bGDyVJsA/7gf6Ow
 JtRhhkoQMaMe8WacRdcxcBX6AtWCU4sQv/E9fnmkuXxc1IwbTGU+pL0I1vc/+yKsXn3Q1sYUMcT
 yCNGjNOOsf021Lo9ZIA==
X-Authority-Analysis: v=2.4 cv=QJtlhwLL c=1 sm=1 tr=0 ts=69af3a46 cx=c_pps
 a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10
 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8
 a=VwQbUJbxAAAA:8 a=eKfNa9SdMFmDU-kgw3kA:9 a=CjuIK1q_8ugA:10
 a=NFOGd7dJGGMPyQGDc5-O:22
X-Proofpoint-ORIG-GUID: lBcBBpm6i9hwRRbqvFlToXI4ABktjZdN
X-Proofpoint-GUID: lBcBBpm6i9hwRRbqvFlToXI4ABktjZdN
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-09_06,2026-03-09_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 clxscore=1015 suspectscore=0 adultscore=0 spamscore=0 phishscore=0
 lowpriorityscore=0 malwarescore=0 priorityscore=1501 bulkscore=0
 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000
 definitions=main-2603090190

On Mon, Mar 09, 2026 at 01:03:38AM +0530, Vijayanand Jitta wrote:
> From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> 
> Change of_map_id() to take a pointer to struct of_phandle_args
> instead of passing target device node and translated IDs separately.
> Update all callers accordingly.
> 
> Subsequent patch will make use of the args_count field in
> struct of_phandle_args.
> 
> Suggested-by: Rob Herring (Arm) <robh@kernel.org>
> Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
> ---
>  drivers/cdx/cdx_msi.c                    |  5 ++-
>  drivers/iommu/of_iommu.c                 |  2 +-
>  drivers/irqchip/irq-gic-its-msi-parent.c | 11 ++++--
>  drivers/of/base.c                        | 63 ++++++++++++++++----------------
>  drivers/of/irq.c                         |  8 +++-
>  drivers/pci/controller/dwc/pci-imx6.c    | 16 ++++++--
>  drivers/pci/controller/pcie-apple.c      |  5 ++-
>  drivers/xen/grant-dma-ops.c              |  4 +-
>  include/linux/of.h                       | 12 +++---
>  9 files changed, 76 insertions(+), 50 deletions(-)
> 
> diff --git a/drivers/cdx/cdx_msi.c b/drivers/cdx/cdx_msi.c
> index 63b3544ec997..03232b5ffbca 100644
> --- a/drivers/cdx/cdx_msi.c
> +++ b/drivers/cdx/cdx_msi.c
> @@ -121,6 +121,7 @@ static int cdx_msi_prepare(struct irq_domain *msi_domain,
>  			   struct device *dev,
>  			   int nvec, msi_alloc_info_t *info)
>  {
> +	struct of_phandle_args msi_spec = { .np = NULL };

Why do you need to set it? Parse functions ignore passed args, don't
they?

>  	struct cdx_device *cdx_dev = to_cdx_device(dev);
>  	struct device *parent = cdx_dev->cdx->dev;
>  	struct msi_domain_info *msi_info;
> @@ -128,11 +129,13 @@ static int cdx_msi_prepare(struct irq_domain *msi_domain,
>  	int ret;
>  
>  	/* Retrieve device ID from requestor ID using parent device */
> -	ret = of_map_msi_id(parent->of_node, cdx_dev->msi_dev_id, NULL, &dev_id);
> +	ret = of_map_msi_id(parent->of_node, cdx_dev->msi_dev_id, &msi_spec);
>  	if (ret) {
>  		dev_err(dev, "of_map_id failed for MSI: %d\n", ret);
>  		return ret;
>  	}
> +	of_node_put(msi_spec.np);
> +	dev_id = msi_spec.args[0];
>  
>  #ifdef GENERIC_MSI_DOMAIN_OPS
>  	/* Set the device Id to be passed to the GIC-ITS */
> diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
> index a511ecf21fcd..d255d0f58e8c 100644
> --- a/drivers/iommu/of_iommu.c
> +++ b/drivers/iommu/of_iommu.c
> @@ -48,7 +48,7 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
>  	struct of_phandle_args iommu_spec = { .args_count = 1 };

.args_count = 1 should be set by of_map_iommu_id now (and dropped here).

>  	int err;
>  
> -	err = of_map_iommu_id(master_np, *id, &iommu_spec.np, iommu_spec.args);
> +	err = of_map_iommu_id(master_np, *id, &iommu_spec);
>  	if (err)
>  		return err;
>  
> diff --git a/drivers/irqchip/irq-gic-its-msi-parent.c b/drivers/irqchip/irq-gic-its-msi-parent.c
> index b63343a227a9..729fa2f9f758 100644
> --- a/drivers/irqchip/irq-gic-its-msi-parent.c
> +++ b/drivers/irqchip/irq-gic-its-msi-parent.c
> @@ -152,6 +152,8 @@ static int its_v5_pci_msi_prepare(struct irq_domain *domain, struct device *dev,
>  static int of_pmsi_get_msi_info(struct irq_domain *domain, struct device *dev, u32 *dev_id,
>  				phys_addr_t *pa)
>  {
> +	struct device_node *msi_ctrl __free(device_node) = NULL;
> +	struct of_phandle_args msi_spec = { .np = NULL };
>  	struct of_phandle_iterator it;
>  	int ret;
>  
> @@ -178,9 +180,12 @@ static int of_pmsi_get_msi_info(struct irq_domain *domain, struct device *dev, u
>  		}
>  	}
>  
> -	struct device_node *msi_ctrl __free(device_node) = NULL;
> -
> -	return of_map_msi_id(dev->of_node, dev->id, &msi_ctrl, dev_id);
> +	ret = of_map_msi_id(dev->of_node, dev->id, &msi_spec);
> +	if (!ret) {
> +		msi_ctrl = msi_spec.np;
> +		*dev_id = msi_spec.args[0];
> +	}
> +	return ret;
>  }
>  
>  static int its_pmsi_prepare(struct irq_domain *domain, struct device *dev,
> diff --git a/drivers/of/base.c b/drivers/of/base.c
> index 959305a84748..b6e07c5fe715 100644
> --- a/drivers/of/base.c
> +++ b/drivers/of/base.c
> @@ -2102,36 +2102,37 @@ int of_find_last_cache_level(unsigned int cpu)
>   * @id: device ID to map.
>   * @map_name: property name of the map to use.
>   * @map_mask_name: optional property name of the mask to use.
> - * @target: optional pointer to a target device node.
> - * @id_out: optional pointer to receive the translated ID.
> + * @arg: pointer to a &struct of_phandle_args. On input, @arg->np may be
> + *	set to a target device node to match, or NULL to match any. On
> + *	success, @arg->np will be set to the matched target node (with a
> + *	reference held) and @arg->args[0] will contain the translated ID.

Is this part being actually used (and useful)?

>   *
>   * Given a device ID, look up the appropriate implementation-defined
>   * platform ID and/or the target device which receives transactions on that
> - * ID, as per the "iommu-map" and "msi-map" bindings. Either of @target or
> - * @id_out may be NULL if only the other is required. If @target points to
> - * a non-NULL device node pointer, only entries targeting that node will be
> - * matched; if it points to a NULL value, it will receive the device node of
> - * the first matching target phandle, with a reference held.
> + * ID, as per the "iommu-map" and "msi-map" bindings. If @arg->np points to
> + * a non-NULL device node, only entries targeting that node will be matched;
> + * if it is NULL, it will receive the device node of the first matching
> + * target phandle, with a reference held.
>   *
>   * Return: 0 on success or a standard error code on failure.
>   */
>  int of_map_id(const struct device_node *np, u32 id,
>  	       const char *map_name, const char *map_mask_name,
> -	       struct device_node **target, u32 *id_out)
> +	       struct of_phandle_args *arg)
>  {
>  	u32 map_mask, masked_id;
>  	int map_len;
>  	const __be32 *map = NULL;
>  
> -	if (!np || !map_name || (!target && !id_out))
> +	if (!np || !map_name || !arg)
>  		return -EINVAL;
>  
>  	map = of_get_property(np, map_name, &map_len);
>  	if (!map) {
> -		if (target)
> +		if (arg->np)
>  			return -ENODEV;
>  		/* Otherwise, no map implies no translation */
> -		*id_out = id;
> +		arg->args[0] = id;
>  		return 0;
>  	}
>  
> @@ -2173,18 +2174,15 @@ int of_map_id(const struct device_node *np, u32 id,
>  		if (!phandle_node)
>  			return -ENODEV;
>  
> -		if (target) {
> -			if (*target)
> -				of_node_put(phandle_node);
> -			else
> -				*target = phandle_node;
> +		if (arg->np)
> +			of_node_put(phandle_node);
> +		else
> +			arg->np = phandle_node;
>  
> -			if (*target != phandle_node)
> -				continue;
> -		}
> +		if (arg->np != phandle_node)
> +			continue;
>  
> -		if (id_out)
> -			*id_out = masked_id - id_base + out_base;
> +		arg->args[0] = masked_id - id_base + out_base;
>  
>  		pr_debug("%pOF: %s, using mask %08x, id-base: %08x, out-base: %08x, length: %08x, id: %08x -> %08x\n",
>  			np, map_name, map_mask, id_base, out_base,

-- 
With best wishes
Dmitry


From xen-devel-bounces@lists.xenproject.org Mon Mar 09 22:26:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Mar 2026 22:26:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249770.1547174 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzj3C-0006bi-Qd; Mon, 09 Mar 2026 22:26:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249770.1547174; Mon, 09 Mar 2026 22:26:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzj3C-0006bb-O1; Mon, 09 Mar 2026 22:26:10 +0000
Received: by outflank-mailman (input) for mailman id 1249770;
 Mon, 09 Mar 2026 22:26: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=2xTj=BJ=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vzj3A-0006bF-L3
 for xen-devel@lists.xenproject.org; Mon, 09 Mar 2026 22:26: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 f48d48d4-1c06-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Mar 2026 23:26:04 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM6PR03MB5258.namprd03.prod.outlook.com (2603:10b6:5:241::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.24; Mon, 9 Mar
 2026 22:25:59 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9678.024; Mon, 9 Mar 2026
 22: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: f48d48d4-1c06-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HripiaxAwLMthSRqJbYXa0IGTEMawW2n4IxtfA7Zn8ZwPbQZBycTp1l53abEdmSsY1OnBiYMrW53UpJvZdXGLyEHzl4Ht3z/1Lv8T+OL66flnqacBfBVANZbg4LCjs8UtnQXeN86sdjv3eI5NjJwp523Evjkc0vqZDFm4RncdZsfZW2hVs/+NiItAyx/VzQQ8FIPmRXf1wzJDRH4LbMXaIUw4TB7MFHEfVoIoiDmViqL2iW75N8QmFdWPJSfFad3syyPA2JI2zZXLjiYKTPxvQ6qxH/5Jt+nna/ZEBZHIgBMl7r9a6a13J7i3Q4NNT6Rm4foCk8XPEKLj8zm3zS/jg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UDFVJUJF3kmz2I1pqipMVwW1Sn8k47w6+4QxW3w4UAY=;
 b=FJ9w92Dg8KAYz4dzFBs2g0m81VZKj+SAVbyOih96gaBsmB2JvFyruS2CzOQMoooe4+YVpkKxC3YbxSfBeohUIMCGwX1FxQoBrNQO5/+86IyAH1QoK/uxgzu58w8YCEFqXN21jiojUf3L+civ2WJ7ZdD+2BKJ+MSD9+7kE3C20Vh1gC/TFhR2so5PliRq8kYsY9B7FuJ28BxcHNrJh50YL/WlPdzucj1m2IvQJHsDx6bS9plGSiWoV35lLrcCSpWvw9cbLMiLC7ujFrUjRjEqEvpqrlnAT42J5uZGxO6lt3mEhQ79u3pwtiXDEs4N8YrF/7//Hgx9qPTTfj0sP/tqrQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=UDFVJUJF3kmz2I1pqipMVwW1Sn8k47w6+4QxW3w4UAY=;
 b=ma9bnogCWaP1YXuqoXul4tY1U4sRXTO6lsEer4AvJRkW1nL+7f8s0CW+72yDk/lRA/sgp3Vao7ZTVV+wi6Fo10HGFhHJt4txt0NHqEYtaH8vQQfTtlfhCruRe3s+13OVgJ8bCl7HTYVCj1/eXWegI9hwNfiSRn5T5JoewfzmMNw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <1fc7bde0-dbaa-4daf-b23f-a46b84219278@citrix.com>
Date: Mon, 9 Mar 2026 22:25:55 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v4 12/14] x86/pv: System call handling in FRED mode
To: Xen-devel <xen-devel@lists.xenproject.org>
References: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
 <20260227231636.3955109-13-andrew.cooper3@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260227231636.3955109-13-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0663.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:316::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_|DM6PR03MB5258:EE_
X-MS-Office365-Filtering-Correlation-Id: e9127bd3-b7d4-4c26-9bf5-08de7e2ad6c7
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:
	2ZtbtkEVCLQy11XllNguwevcCkKaqtdu9+4SH6vYKrJqOZDS30tvSiXcCmGNqVoiSZ4G6t/q6ZKgHfiE2kzdCi/RtWA8U+oj3mizMKlnOJvbNB0ILSL0AJbXuy5uTWPAgU68bB5/Vevy0WJ062DdZzsID6N3Y/psPLluek+3FislRqtLxBilbVg1Y84pS7hUyjVePd5friReVqV37WmUUi62izbeDk2SKNQYOUzJ91hC3ElehHRzFDQu4fRWnXzudhNK+wyjPig1+PFS2Rf7l/M51qJ2rjoEmIAzbe3sXoNOmSQNmcLqhcxft5bSGa2MeB31MgIfeE/T6nIHd/rMD2c0UtqLXfvENswUFpt2Wzs1H2EVMjssUtsZWpLceH/eL+wI5jx7EPNdVvk5DcaZCFh7SFefD6jE5DizyG4O6on61qpHVNpPS6USKoZsZUsdEbIypE7URJdZ94cCWLL6ISybc9dAhv5SZAeI6sRZnUidR28X/qwARe+sUxzPcSaefO5zYB7TL0ayvjeV0o+9oMrZgFI0CfcQpcDdyfvWAQ6pJJgLSuaEutCdnX+WxZJPOKZCbmT3tozNYhCoXvtCbJ+7KSjmkh8uW5eiGDnGbBH0lPKxfJiP/RAsnqjAEHnjDcGp7dOra6doR5j7qLDAQLsnZAIDDD+bgLrEo1dPf1DkvjZXlbu5Fg6nKjQV6Bzv5qK1aYWZ6nkD4yyQyonXw44gyhAKjQg+DO+O7PlJyp4=
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?cm0wUjlVU3EydytnZGJOcWFTc1NYZHhqQXpOUmRpRlFIS3QwczhoWjBlSnNq?=
 =?utf-8?B?ZzRMdDZTNGdEQ0IrTmdXcVFLUDRGUHhUM3NpZXRxUkQ5aGVlSEl5eHNDWUwv?=
 =?utf-8?B?L0hCK1IrcFVrYzlBOWpEZmI5VWVteExTQ3BXbmptaS9INFFOZHMwRDY1LzdO?=
 =?utf-8?B?amNRSS9BbmFGbjFYTUpWQVdUdzFuSjV0ZTNYbkx4TTQwT3d1TlVGaTVna3I2?=
 =?utf-8?B?QXFrZXRHdTQydnBhSWkyMUN5eEtUN2NHR21WZzdaeWd5blBUemE5MWsyaGg4?=
 =?utf-8?B?N2oyVFNZQlU0OU1HOUI1OFI5a2VRUzVUK3QrUTFjcysrVXloMkxlVW9uMVpW?=
 =?utf-8?B?bzJzOVZmRFMyWHVmZ2VVRlBiV0VLV0drR0VSZzR5V2VQTkNncDF2TllGR3JT?=
 =?utf-8?B?UzdDMUVXT1RRMnBxTFIzNXpBWXphUzE4MVQ0Nm45MnJGemlkV3hVeXFkQ1ky?=
 =?utf-8?B?dVNEb1grSnBjSGlHMzNlWU9DZm5lSjB0dEM1ZlAyMjh3ak9ZeDJnQVlBVFk0?=
 =?utf-8?B?eUNwTXkwNm5TOHF6bWI3T1A3aGFWSFBrTWU2Wm5ZTHFPQ1lZZHJtVnV4SnMw?=
 =?utf-8?B?cGFrZXZ6SW9TSzI4cVk3dDBxUXIzUWN3RGg1L0d4V2VjZmtXUllDcGNaSTNX?=
 =?utf-8?B?NFl1aURFaTBWZzVlZE9HbWtjdjU2aUVGVmo5Y1psdkpKLzZOb2JrKzZSU2dy?=
 =?utf-8?B?VVlkVi9UMUdYQVNVUEdoRll1Wk9LNkNLK2RGU3lLV2l4RG0xUjNhOENVY0k4?=
 =?utf-8?B?VzRXQ09RNGc1Z0ZIZE96Wm5HbHVWRGxqeHFINm1iSGdUeTVsa3hrbE85Rkpx?=
 =?utf-8?B?bDM3Q2tDd2hVVlIrelJLeVRjaVZSSGZ6RGpDQkpiK3FSR1k0NVlTeVFtVzdp?=
 =?utf-8?B?MzhmenVJZEJCZllQY3dTaTVJQmYyNlI4R3RPeVNRenJ2NkNPdkpWZkk2TDBs?=
 =?utf-8?B?TVJuMGY1YytKTVoyc0pyaklabEV1NEUySlREN0haOURyT2JrRWR2eHgva1N3?=
 =?utf-8?B?em5wUVlFKytteTNxUzB6dm9SK3pXNG00YWNrVzRQOFpSL3ozRDNwTGJzakdx?=
 =?utf-8?B?YXk4NTVnOGlhSDcrKzhVa0JscGlkZk1rTThHR2NEZnh2TGw0SEorZGNJaGVm?=
 =?utf-8?B?ZVBkSmFHcnozcFU2MnliRzZLZGVhelAwSGJUaFRVMnFCNXJBK1FNWW4vaU1x?=
 =?utf-8?B?ckJCcXE3cUNXSjNUU05wOVMyZ040TFp3bnVRZ1l3eWk1UVRiUFFiZmxyWGVn?=
 =?utf-8?B?d05DclBxRFlLRHVXQ0FVSG9YSTZxL1MvYlJIeFJCSGh4Y1NtUDRhUnYvYy9q?=
 =?utf-8?B?a2xjb0J2WGx0ZDFRUG1GU2dHb1l3WEZlUUNUaVRhdUtaVTMwSFdkT2IyaUFm?=
 =?utf-8?B?UHYvbUNzZld2MFhLT2h0a2U0eHNzSjFwZWU4SndYYS9QbHYrTU5WZ3pTek51?=
 =?utf-8?B?dDk0QkpvYTlHUWNSZDUvTWZFUExBYlVGTTlFQjBoQ20yOWZRL0c0Y2ZzS3cr?=
 =?utf-8?B?UXd6L0ZLY2k0MlB4L1FEUXVTeWZpZGM4RzJsVDB1RkEvenA3bjNzT2g1YldO?=
 =?utf-8?B?SmtDcXA5VDRTbEZWWTVCVFFXZGd2dENtNFA0YXgyb3N4OW5BRFFRcTNuZSti?=
 =?utf-8?B?M3NOK2M2UU5CZzJ6QmtkOFdrNVd0SllGV2dUOEE3eVJPNzNUWm42U0tWNDRT?=
 =?utf-8?B?SjYzMnpXNnJmSjNBMDl4cjE4aG1MSm91c2RaSTl6QjZDblZ5MnRtSU5CSVJN?=
 =?utf-8?B?MzdTZU9FRG1KUG1wTTg3R3E0QkFyR2ZmcXFWMVM0MUZIcXJOM0FEQ0NqUkxk?=
 =?utf-8?B?ckM5N1pMN3Nud3JBWmVkMEJQZHlrNEtPSHdTWmtIMk5XSFh3L1RvTWhPenpu?=
 =?utf-8?B?eGF4QnJobHp3NnM1VGZlUFBEM3U2OUVlWUlqMVU1TjdIOU1rU0VRUG40RE5x?=
 =?utf-8?B?NnVxcHR2M0lMNTU3eW41MlFYaUh1VzRWQzh6QWdZVm9BZEs3WVhtSVh0UzUw?=
 =?utf-8?B?R1l5eWtObE54VHNqdGx3bHcvTit5WFBQWVdwOVN3NFpKdjhaY3JaeDFwQjB4?=
 =?utf-8?B?QUw5b3o3WmJVR1M4RzM4V2dhTUtFZ2Zmc3JMMmpkYzdyeVZHL2UwR0Z1cTRh?=
 =?utf-8?B?Z3JjUENyc2pOaW9RM0grK1JleFZva1FwdVlRTTdmMjZaQ2IzN1hxYUlDN2E1?=
 =?utf-8?B?YlN3dVg5WXUrWnpwWVFSRE1adTJOWFlyNkxpcnpjZWFpZ1Y2U2JBamdBcU5w?=
 =?utf-8?B?TEV4WGtZZnFKdyt6ZGVzNmtYUDQ2Ky9iQTRsUTdjcWRhNDloSTA2STc5TDVR?=
 =?utf-8?B?d05QZHdSaXRGTzFiZENocm1EM2hUcnZGQkc5eEpTbStGTk9Ua0J2dz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e9127bd3-b7d4-4c26-9bf5-08de7e2ad6c7
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Mar 2026 22:25:59.1916
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: hkWrz+GGiWo6b2+GlP6uVhRNytB9I3pM64wIMAD3wviMXMc60wewFItIMnEYpZ5SGKRV2jT5WBps1g4nmc27YkFD+iLJRYQ7K3SLdf/kSW0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5258

On 27/02/2026 11:16 pm, Andrew Cooper wrote:
> diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
> index 2f40f628cbff..e2c35a046e6b 100644
> --- a/xen/arch/x86/traps.c
> +++ b/xen/arch/x86/traps.c
> ...
> +        case 2: /* SYSENTER */
> +        {
> +            /*
> +             * FRED delivery preserves the interrupted state, but previously
> +             * SYSENTER discarded almost everything.
> +             *
> +             * The guest isn't aware of FRED, so recreate the legacy
> +             * behaviour.
> +             *
> +             * When setting the selectors, clear all upper metadata.  In
> +             * particular fred_ss.swint becomes pend_DB on ERETx.
> +             *
> +             * When converting to a fault, hardware finally gives us enough
> +             * information to account for prefixes, so provide the more
> +             * correct behaviour rather than assuming the instruction was two
> +             * bytes long.
> +             */
> +            unsigned int len = regs->fred_ss.insnlen;
> +
> +            regs->ssx = FLAT_USER_SS;
> +            regs->rsp = 0;
> +            regs->eflags &= ~(X86_EFLAGS_VM | X86_EFLAGS_IF);
> +            regs->csx = 3;
> +            regs->rip = 0;
> +
> +            if ( !curr->arch.pv.sysenter_callback_eip )
> +            {
> +                regs->rip -= len;
> +                pv_inject_hw_exception(X86_EXC_GP, 0);
> +            }
> +            else
> +                pv_inject_callback(CALLBACKTYPE_sysenter);
> +            break;

This isn't actually a correct transformation of the IDT code.  When the
SYENTER entrypoint isn't registered, this delivers a #GP at
0003:fffffffffffffffe

The simple fix to get back to IDT behaviour is to simply drop the
subtraction of len.

In FRED mode, we can finally point the #GP at the SYSENTER instruction,
rather than delivering at 0.  We could even provide the success case
pointing sensibly too.

The question is should we?  Until now, the differences between FRED and
IDT mode are minimal.  This would be major difference, and it's for
SYSENTER which all but unused.  I'm erring on the side of "match IDT".

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 05:55:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 05:55:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249789.1547200 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzq4C-0007EE-Kb; Tue, 10 Mar 2026 05:55:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249789.1547200; Tue, 10 Mar 2026 05:55: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 1vzq4C-0007E7-Hp; Tue, 10 Mar 2026 05:55:40 +0000
Received: by outflank-mailman (input) for mailman id 1249789;
 Tue, 10 Mar 2026 03:21: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=grsa=BK=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1vznem-0006gN-Us
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 03:21:16 +0000
Received: from canpmsgout08.his.huawei.com (canpmsgout08.his.huawei.com
 [113.46.200.223]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2aab0753-1c30-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 04:21:07 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.162.92])
 by canpmsgout08.his.huawei.com (SkyGuard) with ESMTPS id 4fVJtY2xXbzmV8y;
 Tue, 10 Mar 2026 11:16:05 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id E197640565;
 Tue, 10 Mar 2026 11:21:00 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Tue, 10 Mar 2026 11:20: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: 2aab0753-1c30-11f1-9ccf-f158ae23cfc8
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=TT+M/HNYlJSQX27HOtuYm2otltrl3F+s0X9BiZbUIzc=;
	b=ixI1woUGB7ctC3EgDtiIAVXDQtMwKnAm6gqjEcu7Ioth6mixa7zzjeYU4cmcrR0mR18bNy8h5
	5nViuN/Xfbli6I4fMQTda7HIJzjMdDsiCUSXnOVb/xk+/dR+/rXDufXhWuvtusN+MT0rkLw8hMj
	lKjtF9p/nZ4Uip8uiGMHUyY=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>, Paul
 Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou
	<aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>, Thomas Gleixner
	<tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris
 Ostrovsky <boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V
 L <sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Chengwen
 Feng <fengchengwen@huawei.com>, Jonathan Cameron
	<jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>, Yanteng Si
	<si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>, Kai Huang
	<kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>, Thomas Huth
	<thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>, Kevin Loughlin
	<kevinloughlin@google.com>, Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra
	<peterz@infradead.org>, Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin
 Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Ajit Khaparde
	<ajit.khaparde@broadcom.com>, Wei Huang <wei.huang2@amd.com>, Andy Gospodarek
	<andrew.gospodarek@broadcom.com>, Somnath Kotur <somnath.kotur@broadcom.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <linux-pci@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <loongarch@lists.linux.dev>,
	<linux-riscv@lists.infradead.org>, <xen-devel@lists.xenproject.org>,
	<linux-acpi@vger.kernel.org>, <linux-perf-users@vger.kernel.org>,
	<stable@vger.kernel.org>
Subject: [PATCH v5 2/2] PCI/TPH: Fix get cpu steer-tag fail on ARM64 platform
Date: Tue, 10 Mar 2026 11:20:49 +0800
Message-ID: <20260310032049.25387-3-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260310032049.25387-1-fengchengwen@huawei.com>
References: <20260310032049.25387-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems200002.china.huawei.com (7.221.188.68) To
 kwepemk500009.china.huawei.com (7.202.194.94)

pcie_tph_get_cpu_st() is broken on ARM64:
1. pcie_tph_get_cpu_st() passes cpu_uid to the PCI ACPI DSM method.
   cpu_uid should be the ACPI Processor UID [1].
2. In BNXT, pcie_tph_get_cpu_st() is passed a cpu_uid obtained via
   cpumask_first(irq->cpu_mask) - the logical CPU ID of a CPU core,
   generated and managed by kernel (e.g., [0,255] for a system  with 256
   logical CPU cores).
3. On ARM64 platforms, ACPI assigns Processor UID to cores listed in the
   MADT table, and this UID may not match the kernel's logical CPU ID.
   When this occurs, the mismatch results in the wrong CPU steer-tag.
4. On AMD x86 the logical CPU ID is identical to the ACPI Processor UID
   so the mismatch is not seen.

Resolution:
1. Implement acpi_get_cpu_acpi_id() for x86, which replaces
   cpu_acpi_id(). All ACPI platforms now have an implementation.
2. Use acpi_get_cpu_acpi_id() in pcie_tph_get_cpu_st() to translate from
   logical CPU ID to ACPI Processor UID needed for the DSM call.
3. Rename pcie_tpu_get_cpu_st() parameter from cpu_uid to cpu to
   reflect that it is a logical CPU_ID.

[1] According to ECN_TPH-ST_Revision_20200924
    (https://members.pcisig.com/wg/PCI-SIG/document/15470), the input
    is defined as: "If the target is a processor, then this field
    represents the ACPI Processor UID of the processor as specified in
    the MADT. If the target is a processor container, then this field
    represents the ACPI Processor UID of the processor container as
    specified in the PPTT."

Fixes: d2e8a34876ce ("PCI/TPH: Add Steering Tag support")
Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 Documentation/PCI/tph.rst    |  4 ++--
 arch/x86/include/asm/acpi.h  |  2 ++
 arch/x86/include/asm/cpu.h   |  1 -
 arch/x86/include/asm/smp.h   |  1 -
 arch/x86/kernel/cpu/common.c | 12 ++++++++++++
 arch/x86/xen/enlighten_hvm.c |  4 ++--
 drivers/pci/tph.c            | 11 ++++++-----
 include/linux/pci-tph.h      |  4 ++--
 8 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/Documentation/PCI/tph.rst b/Documentation/PCI/tph.rst
index e8993be64fd6..b6cf22b9bd90 100644
--- a/Documentation/PCI/tph.rst
+++ b/Documentation/PCI/tph.rst
@@ -79,10 +79,10 @@ To retrieve a Steering Tag for a target memory associated with a specific
 CPU, use the following function::
 
   int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type type,
-                          unsigned int cpu_uid, u16 *tag);
+                          unsigned int cpu, u16 *tag);
 
 The `type` argument is used to specify the memory type, either volatile
-or persistent, of the target memory. The `cpu_uid` argument specifies the
+or persistent, of the target memory. The `cpu` argument specifies the
 CPU where the memory is associated to.
 
 After the ST value is retrieved, the device driver can use the following
diff --git a/arch/x86/include/asm/acpi.h b/arch/x86/include/asm/acpi.h
index a03aa6f999d1..b968369715c1 100644
--- a/arch/x86/include/asm/acpi.h
+++ b/arch/x86/include/asm/acpi.h
@@ -157,6 +157,8 @@ static inline bool acpi_has_cpu_in_madt(void)
 	return !!acpi_lapic;
 }
 
+u32 acpi_get_cpu_acpi_id(unsigned int cpu);
+
 #define ACPI_HAVE_ARCH_SET_ROOT_POINTER
 static __always_inline void acpi_arch_set_root_pointer(u64 addr)
 {
diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h
index ad235dda1ded..57a0786dfd75 100644
--- a/arch/x86/include/asm/cpu.h
+++ b/arch/x86/include/asm/cpu.h
@@ -11,7 +11,6 @@
 
 #ifndef CONFIG_SMP
 #define cpu_physical_id(cpu)			boot_cpu_physical_apicid
-#define cpu_acpi_id(cpu)			0
 #endif /* CONFIG_SMP */
 
 #ifdef CONFIG_HOTPLUG_CPU
diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
index 84951572ab81..05d1d479b4cf 100644
--- a/arch/x86/include/asm/smp.h
+++ b/arch/x86/include/asm/smp.h
@@ -130,7 +130,6 @@ __visible void smp_call_function_interrupt(struct pt_regs *regs);
 __visible void smp_call_function_single_interrupt(struct pt_regs *r);
 
 #define cpu_physical_id(cpu)	per_cpu(x86_cpu_to_apicid, cpu)
-#define cpu_acpi_id(cpu)	per_cpu(x86_cpu_to_acpiid, cpu)
 
 /*
  * This function is needed by all SMP systems. It must _always_ be valid
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 1c3261cae40c..93f4f3283c81 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -29,6 +29,7 @@
 #include <linux/utsname.h>
 #include <linux/efi.h>
 
+#include <asm/acpi.h>
 #include <asm/alternative.h>
 #include <asm/cmdline.h>
 #include <asm/cpuid/api.h>
@@ -57,6 +58,7 @@
 #include <asm/asm.h>
 #include <asm/bugs.h>
 #include <asm/cpu.h>
+#include <asm/smp.h>
 #include <asm/mce.h>
 #include <asm/msr.h>
 #include <asm/cacheinfo.h>
@@ -2643,3 +2645,13 @@ void __init arch_cpu_finalize_init(void)
 	 */
 	mem_encrypt_init();
 }
+
+u32 acpi_get_cpu_acpi_id(unsigned int cpu)
+{
+#ifndef CONFIG_SMP
+	return 0;
+#else
+	return per_cpu(x86_cpu_to_acpiid, cpu);
+#endif
+}
+EXPORT_SYMBOL_GPL(acpi_get_cpu_acpi_id);
diff --git a/arch/x86/xen/enlighten_hvm.c b/arch/x86/xen/enlighten_hvm.c
index fe57ff85d004..0a5cde7865b2 100644
--- a/arch/x86/xen/enlighten_hvm.c
+++ b/arch/x86/xen/enlighten_hvm.c
@@ -161,8 +161,8 @@ static int xen_cpu_up_prepare_hvm(unsigned int cpu)
 	 */
 	xen_uninit_lock_cpu(cpu);
 
-	if (cpu_acpi_id(cpu) != CPU_ACPIID_INVALID)
-		per_cpu(xen_vcpu_id, cpu) = cpu_acpi_id(cpu);
+	if (acpi_get_cpu_acpi_id(cpu) != CPU_ACPIID_INVALID)
+		per_cpu(xen_vcpu_id, cpu) = acpi_get_cpu_acpi_id(cpu);
 	else
 		per_cpu(xen_vcpu_id, cpu) = cpu;
 	xen_vcpu_setup(cpu);
diff --git a/drivers/pci/tph.c b/drivers/pci/tph.c
index ca4f97be7538..c1bd60637b5a 100644
--- a/drivers/pci/tph.c
+++ b/drivers/pci/tph.c
@@ -236,18 +236,19 @@ static int write_tag_to_st_table(struct pci_dev *pdev, int index, u16 tag)
  * with a specific CPU
  * @pdev: PCI device
  * @mem_type: target memory type (volatile or persistent RAM)
- * @cpu_uid: associated CPU id
+ * @cpu: associated CPU id
  * @tag: Steering Tag to be returned
  *
  * Return the Steering Tag for a target memory that is associated with a
- * specific CPU as indicated by cpu_uid.
+ * specific CPU as indicated by cpu.
  *
  * Return: 0 if success, otherwise negative value (-errno)
  */
 int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type mem_type,
-			unsigned int cpu_uid, u16 *tag)
+			unsigned int cpu, u16 *tag)
 {
 #ifdef CONFIG_ACPI
+	u32 cpu_uid = acpi_get_cpu_acpi_id(cpu);
 	struct pci_dev *rp;
 	acpi_handle rp_acpi_handle;
 	union st_info info;
@@ -265,9 +266,9 @@ int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type mem_type,
 
 	*tag = tph_extract_tag(mem_type, pdev->tph_req_type, &info);
 
-	pci_dbg(pdev, "get steering tag: mem_type=%s, cpu_uid=%d, tag=%#04x\n",
+	pci_dbg(pdev, "get steering tag: mem_type=%s, cpu=%d, tag=%#04x\n",
 		(mem_type == TPH_MEM_TYPE_VM) ? "volatile" : "persistent",
-		cpu_uid, *tag);
+		cpu, *tag);
 
 	return 0;
 #else
diff --git a/include/linux/pci-tph.h b/include/linux/pci-tph.h
index ba28140ce670..be68cd17f2f8 100644
--- a/include/linux/pci-tph.h
+++ b/include/linux/pci-tph.h
@@ -25,7 +25,7 @@ int pcie_tph_set_st_entry(struct pci_dev *pdev,
 			  unsigned int index, u16 tag);
 int pcie_tph_get_cpu_st(struct pci_dev *dev,
 			enum tph_mem_type mem_type,
-			unsigned int cpu_uid, u16 *tag);
+			unsigned int cpu, u16 *tag);
 void pcie_disable_tph(struct pci_dev *pdev);
 int pcie_enable_tph(struct pci_dev *pdev, int mode);
 u16 pcie_tph_get_st_table_size(struct pci_dev *pdev);
@@ -36,7 +36,7 @@ static inline int pcie_tph_set_st_entry(struct pci_dev *pdev,
 { return -EINVAL; }
 static inline int pcie_tph_get_cpu_st(struct pci_dev *dev,
 				      enum tph_mem_type mem_type,
-				      unsigned int cpu_uid, u16 *tag)
+				      unsigned int cpu, u16 *tag)
 { return -EINVAL; }
 static inline void pcie_disable_tph(struct pci_dev *pdev) { }
 static inline int pcie_enable_tph(struct pci_dev *pdev, int mode)
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 05:55:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 05:55:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249785.1547183 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzq4B-0006o5-61; Tue, 10 Mar 2026 05:55:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249785.1547183; Tue, 10 Mar 2026 05:55:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzq4B-0006nw-1I; Tue, 10 Mar 2026 05:55:39 +0000
Received: by outflank-mailman (input) for mailman id 1249785;
 Tue, 10 Mar 2026 03:21: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=grsa=BK=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1vzned-0006fN-4Z
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 03:21:07 +0000
Received: from canpmsgout05.his.huawei.com (canpmsgout05.his.huawei.com
 [113.46.200.220]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 29ab9a57-1c30-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 04:21:03 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.162.140])
 by canpmsgout05.his.huawei.com (SkyGuard) with ESMTPS id 4fVJsl23JTz12LCw;
 Tue, 10 Mar 2026 11:15:23 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 6E06320104;
 Tue, 10 Mar 2026 11:20:59 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Tue, 10 Mar 2026 11:20: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: 29ab9a57-1c30-11f1-b164-2bf370ae4941
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=A0FMIWNr2Dx+OlfZSA1sGW6DfHKLq8qTyrKRNs7QJ7U=;
	b=Wcm0KY75ufjFNPJyc4zSdiHPUv18HrWLJez1cr9p/yPEHO6W6HDMoMpkYk8j28awyuVeBv3xd
	Jy3fYOyOLPQ1eo5HCwj2w3Z/yn9Vx8hUTFCorNL3HFqAMJeEV7VRD5qvGecAhYJA/D9L4lA0g07
	Dk0fwR1m0uotQ11p7R5z7Yo=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>, Paul
 Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou
	<aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>, Thomas Gleixner
	<tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris
 Ostrovsky <boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V
 L <sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Chengwen
 Feng <fengchengwen@huawei.com>, Jonathan Cameron
	<jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>, Yanteng Si
	<si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>, Kai Huang
	<kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>, Thomas Huth
	<thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>, Kevin Loughlin
	<kevinloughlin@google.com>, Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra
	<peterz@infradead.org>, Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin
 Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Ajit Khaparde
	<ajit.khaparde@broadcom.com>, Wei Huang <wei.huang2@amd.com>, Andy Gospodarek
	<andrew.gospodarek@broadcom.com>, Somnath Kotur <somnath.kotur@broadcom.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <linux-pci@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <loongarch@lists.linux.dev>,
	<linux-riscv@lists.infradead.org>, <xen-devel@lists.xenproject.org>,
	<linux-acpi@vger.kernel.org>, <linux-perf-users@vger.kernel.org>,
	<stable@vger.kernel.org>
Subject: [PATCH v5 1/2] ACPI: Rename get_acpi_id_for_cpu() to acpi_get_cpu_acpi_id() on non-x86
Date: Tue, 10 Mar 2026 11:20:48 +0800
Message-ID: <20260310032049.25387-2-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260310032049.25387-1-fengchengwen@huawei.com>
References: <20260310032049.25387-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems200002.china.huawei.com (7.221.188.68) To
 kwepemk500009.china.huawei.com (7.202.194.94)

To unify the CPU ACPI ID retrieval interface across architectures,
rename the existing get_acpi_id_for_cpu() function to
acpi_get_cpu_acpi_id() on arm64/riscv/loongarch platforms.

This is a pure rename with no functional change, preparing for a
consistent ACPI Processor UID retrieval interface across all ACPI-enabled
platforms.

Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 arch/arm64/include/asm/acpi.h      |  4 ++--
 arch/loongarch/include/asm/acpi.h  |  2 +-
 arch/riscv/include/asm/acpi.h      |  2 +-
 arch/riscv/kernel/acpi_numa.c      |  2 +-
 drivers/acpi/pptt.c                | 16 ++++++++--------
 drivers/acpi/riscv/rhct.c          |  2 +-
 drivers/perf/arm_cspmu/arm_cspmu.c |  2 +-
 7 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
index c07a58b96329..202107aeb05b 100644
--- a/arch/arm64/include/asm/acpi.h
+++ b/arch/arm64/include/asm/acpi.h
@@ -114,7 +114,7 @@ static inline bool acpi_has_cpu_in_madt(void)
 }
 
 struct acpi_madt_generic_interrupt *acpi_cpu_get_madt_gicc(int cpu);
-static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
+static inline u32 acpi_get_cpu_acpi_id(unsigned int cpu)
 {
 	return	acpi_cpu_get_madt_gicc(cpu)->uid;
 }
@@ -125,7 +125,7 @@ static inline int get_cpu_for_acpi_id(u32 uid)
 
 	for (cpu = 0; cpu < nr_cpu_ids; cpu++)
 		if (acpi_cpu_get_madt_gicc(cpu) &&
-		    uid == get_acpi_id_for_cpu(cpu))
+		    uid == acpi_get_cpu_acpi_id(cpu))
 			return cpu;
 
 	return -EINVAL;
diff --git a/arch/loongarch/include/asm/acpi.h b/arch/loongarch/include/asm/acpi.h
index 7376840fa9f7..89c6c8f52cc3 100644
--- a/arch/loongarch/include/asm/acpi.h
+++ b/arch/loongarch/include/asm/acpi.h
@@ -40,7 +40,7 @@ extern struct acpi_madt_core_pic acpi_core_pic[MAX_CORE_PIC];
 
 extern int __init parse_acpi_topology(void);
 
-static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
+static inline u32 acpi_get_cpu_acpi_id(unsigned int cpu)
 {
 	return acpi_core_pic[cpu_logical_map(cpu)].processor_id;
 }
diff --git a/arch/riscv/include/asm/acpi.h b/arch/riscv/include/asm/acpi.h
index 6e13695120bc..1d23681b61b5 100644
--- a/arch/riscv/include/asm/acpi.h
+++ b/arch/riscv/include/asm/acpi.h
@@ -61,7 +61,7 @@ static inline void arch_fix_phys_package_id(int num, u32 slot) { }
 
 void acpi_init_rintc_map(void);
 struct acpi_madt_rintc *acpi_cpu_get_madt_rintc(int cpu);
-static inline u32 get_acpi_id_for_cpu(int cpu)
+static inline u32 acpi_get_cpu_acpi_id(int cpu)
 {
 	return acpi_cpu_get_madt_rintc(cpu)->uid;
 }
diff --git a/arch/riscv/kernel/acpi_numa.c b/arch/riscv/kernel/acpi_numa.c
index 130769e3a99c..c2eb4824d0f7 100644
--- a/arch/riscv/kernel/acpi_numa.c
+++ b/arch/riscv/kernel/acpi_numa.c
@@ -40,7 +40,7 @@ static inline int get_cpu_for_acpi_id(u32 uid)
 	int cpu;
 
 	for (cpu = 0; cpu < nr_cpu_ids; cpu++)
-		if (uid == get_acpi_id_for_cpu(cpu))
+		if (uid == acpi_get_cpu_acpi_id(cpu))
 			return cpu;
 
 	return -EINVAL;
diff --git a/drivers/acpi/pptt.c b/drivers/acpi/pptt.c
index de5f8c018333..c1a8fba4c2b2 100644
--- a/drivers/acpi/pptt.c
+++ b/drivers/acpi/pptt.c
@@ -459,7 +459,7 @@ static void cache_setup_acpi_cpu(struct acpi_table_header *table,
 {
 	struct acpi_pptt_cache *found_cache;
 	struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id = acpi_get_cpu_acpi_id(cpu);
 	struct cacheinfo *this_leaf;
 	unsigned int index = 0;
 	struct acpi_pptt_processor *cpu_node = NULL;
@@ -546,7 +546,7 @@ static int topology_get_acpi_cpu_tag(struct acpi_table_header *table,
 				     unsigned int cpu, int level, int flag)
 {
 	struct acpi_pptt_processor *cpu_node;
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id = acpi_get_cpu_acpi_id(cpu);
 
 	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 	if (cpu_node) {
@@ -622,7 +622,7 @@ static int find_acpi_cpu_topology_tag(unsigned int cpu, int level, int flag)
 static int check_acpi_cpu_flag(unsigned int cpu, int rev, u32 flag)
 {
 	struct acpi_table_header *table;
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id = acpi_get_cpu_acpi_id(cpu);
 	struct acpi_pptt_processor *cpu_node = NULL;
 	int ret = -ENOENT;
 
@@ -671,7 +671,7 @@ int acpi_get_cache_info(unsigned int cpu, unsigned int *levels,
 
 	pr_debug("Cache Setup: find cache levels for CPU=%d\n", cpu);
 
-	acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	acpi_cpu_id = acpi_get_cpu_acpi_id(cpu);
 	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 	if (!cpu_node)
 		return -ENOENT;
@@ -797,7 +797,7 @@ int find_acpi_cpu_topology_cluster(unsigned int cpu)
 	if (!table)
 		return -ENOENT;
 
-	acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	acpi_cpu_id = acpi_get_cpu_acpi_id(cpu);
 	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 	if (!cpu_node || !cpu_node->parent)
 		return -ENOENT;
@@ -872,7 +872,7 @@ static void acpi_pptt_get_child_cpus(struct acpi_table_header *table_hdr,
 	cpumask_clear(cpus);
 
 	for_each_possible_cpu(cpu) {
-		acpi_id = get_acpi_id_for_cpu(cpu);
+		acpi_id = acpi_get_cpu_acpi_id(cpu);
 		cpu_node = acpi_find_processor_node(table_hdr, acpi_id);
 
 		while (cpu_node) {
@@ -966,7 +966,7 @@ int find_acpi_cache_level_from_id(u32 cache_id)
 	for_each_possible_cpu(cpu) {
 		bool empty;
 		int level = 1;
-		u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+		u32 acpi_cpu_id = acpi_get_cpu_acpi_id(cpu);
 		struct acpi_pptt_cache *cache;
 		struct acpi_pptt_processor *cpu_node;
 
@@ -1030,7 +1030,7 @@ int acpi_pptt_get_cpumask_from_cache_id(u32 cache_id, cpumask_t *cpus)
 	for_each_possible_cpu(cpu) {
 		bool empty;
 		int level = 1;
-		u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+		u32 acpi_cpu_id = acpi_get_cpu_acpi_id(cpu);
 		struct acpi_pptt_cache *cache;
 		struct acpi_pptt_processor *cpu_node;
 
diff --git a/drivers/acpi/riscv/rhct.c b/drivers/acpi/riscv/rhct.c
index caa2c16e1697..c15ce8c13136 100644
--- a/drivers/acpi/riscv/rhct.c
+++ b/drivers/acpi/riscv/rhct.c
@@ -44,7 +44,7 @@ int acpi_get_riscv_isa(struct acpi_table_header *table, unsigned int cpu, const
 	struct acpi_rhct_isa_string *isa_node;
 	struct acpi_table_rhct *rhct;
 	u32 *hart_info_node_offset;
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id = acpi_get_cpu_acpi_id(cpu);
 
 	BUG_ON(acpi_disabled);
 
diff --git a/drivers/perf/arm_cspmu/arm_cspmu.c b/drivers/perf/arm_cspmu/arm_cspmu.c
index 34430b68f602..506b661c60fd 100644
--- a/drivers/perf/arm_cspmu/arm_cspmu.c
+++ b/drivers/perf/arm_cspmu/arm_cspmu.c
@@ -1115,7 +1115,7 @@ static int arm_cspmu_acpi_get_cpus(struct arm_cspmu *cspmu)
 	if (affinity_flag == ACPI_APMT_FLAGS_AFFINITY_PROC) {
 		for_each_possible_cpu(cpu) {
 			if (apmt_node->proc_affinity ==
-			    get_acpi_id_for_cpu(cpu)) {
+			    acpi_get_cpu_acpi_id(cpu)) {
 				cpumask_set_cpu(cpu, &cspmu->associated_cpus);
 				break;
 			}
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 05:55:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 05:55:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249787.1547186 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzq4B-0006qB-CH; Tue, 10 Mar 2026 05:55:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249787.1547186; Tue, 10 Mar 2026 05:55:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzq4B-0006op-7f; Tue, 10 Mar 2026 05:55:39 +0000
Received: by outflank-mailman (input) for mailman id 1249787;
 Tue, 10 Mar 2026 03:21: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=grsa=BK=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1vznei-0006fN-5q
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 03:21:12 +0000
Received: from canpmsgout04.his.huawei.com (canpmsgout04.his.huawei.com
 [113.46.200.219]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 295cd73b-1c30-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 04:21:03 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.104])
 by canpmsgout04.his.huawei.com (SkyGuard) with ESMTPS id 4fVJtT143zz1prR7;
 Tue, 10 Mar 2026 11:16:01 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 00BA9404AD;
 Tue, 10 Mar 2026 11:20:58 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Tue, 10 Mar 2026 11:20: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: 295cd73b-1c30-11f1-b164-2bf370ae4941
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=CoRpNTmhms6uOa5K4ZBNB1qadS4KRwgybZKo09j4UpA=;
	b=fxjB361v9DDU1Vc+vLq2UHX6kf3YaHF64h4a8BYjj4aAMs12yChq1Z0Yq6LWSEtvySPL+BtAo
	SmhO/UwvL3+krDUwG6Ey2Y4dTPD6DcU6QbkOWDYEtWJMfpBjNaajoNIgGcRf4UfrVM1Nvz67TAV
	1UXfCWkUyhSSX4AnepSv81U=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>, Paul
 Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou
	<aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>, Thomas Gleixner
	<tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris
 Ostrovsky <boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V
 L <sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Chengwen
 Feng <fengchengwen@huawei.com>, Jonathan Cameron
	<jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>, Yanteng Si
	<si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>, Kai Huang
	<kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>, Thomas Huth
	<thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>, Kevin Loughlin
	<kevinloughlin@google.com>, Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra
	<peterz@infradead.org>, Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin
 Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Ajit Khaparde
	<ajit.khaparde@broadcom.com>, Wei Huang <wei.huang2@amd.com>, Andy Gospodarek
	<andrew.gospodarek@broadcom.com>, Somnath Kotur <somnath.kotur@broadcom.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <linux-pci@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <loongarch@lists.linux.dev>,
	<linux-riscv@lists.infradead.org>, <xen-devel@lists.xenproject.org>,
	<linux-acpi@vger.kernel.org>, <linux-perf-users@vger.kernel.org>,
	<stable@vger.kernel.org>
Subject: [PATCH v5 0/2] Fix get cpu steer-tag fail on ARM64 platform
Date: Tue, 10 Mar 2026 11:20:47 +0800
Message-ID: <20260310032049.25387-1-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems200002.china.huawei.com (7.221.188.68) To
 kwepemk500009.china.huawei.com (7.202.194.94)

This patchset addresses the issue where retrieving the CPU steer-tag
fails on ARM64 platforms. The first commit is a pure renaming of the
ACPI CPU ID retrieval interface (no functional changes), which serves
as preparation for the second commit that implements the core fix for
the steer-tag retrieval logic.

---
Changes in v5:
- Refine commit-log of commit 2/2
- Replace cpu_acpi_id() by acpi_get_cpu_acpi_id() on x86

Changes in v4:
- Split the rename into a separate commit.

Changes in v3:
- Rename existing get_acpi_id_for_cpu() to acpi_get_cpu_acpi_id() other
  than add one new API.

Changes in v2:
- Add ECN _DSM reference doc name and its URL.
- Separate implement acpi_get_cpu_acpi_id() in each arch which supports
  ACPI.
- Refine commit-log.

Chengwen Feng (2):
  ACPI: Rename get_acpi_id_for_cpu() to acpi_get_cpu_acpi_id() on
    non-x86
  PCI/TPH: Fix get cpu steer-tag fail on ARM64 platform

 Documentation/PCI/tph.rst          |  4 ++--
 arch/arm64/include/asm/acpi.h      |  4 ++--
 arch/loongarch/include/asm/acpi.h  |  2 +-
 arch/riscv/include/asm/acpi.h      |  2 +-
 arch/riscv/kernel/acpi_numa.c      |  2 +-
 arch/x86/include/asm/acpi.h        |  2 ++
 arch/x86/include/asm/cpu.h         |  1 -
 arch/x86/include/asm/smp.h         |  1 -
 arch/x86/kernel/cpu/common.c       | 12 ++++++++++++
 arch/x86/xen/enlighten_hvm.c       |  4 ++--
 drivers/acpi/pptt.c                | 16 ++++++++--------
 drivers/acpi/riscv/rhct.c          |  2 +-
 drivers/pci/tph.c                  | 11 ++++++-----
 drivers/perf/arm_cspmu/arm_cspmu.c |  2 +-
 include/linux/pci-tph.h            |  4 ++--
 15 files changed, 41 insertions(+), 28 deletions(-)

-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 07:16:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 07:16:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249820.1547209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzrKM-0000uc-8y; Tue, 10 Mar 2026 07:16:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249820.1547209; Tue, 10 Mar 2026 07:16:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzrKM-0000uV-63; Tue, 10 Mar 2026 07:16:26 +0000
Received: by outflank-mailman (input) for mailman id 1249820;
 Tue, 10 Mar 2026 07:16: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=S17i=BK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vzrKK-0000uP-Ck
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 07:16:24 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0a6e16b8-1c51-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 08:16:22 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4852ff06541so27869155e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 00:16:22 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485245dbcffsm112559375e9.18.2026.03.10.00.16.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Mar 2026 00:16:20 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0a6e16b8-1c51-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773126981; x=1773731781; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uV76+llFq4AaGCDzTuZZ/2XFlOJWtZBta/pWcVVXHBc=;
        b=Y0DIMsAKBXX2he6xnQvQhqxcYgZjBN7352cCGyLH1GnNEUsHRhZoyuUM41k/5NGCnN
         GM2N5vnMOhkHnsqNcmwKoV39IaAsJGfaErlcL5GBf7IpT0DQNp2lSpVyCVSFkrLyQ9+Z
         KrIs1GkIUa2GLMQPl3qQ08tFgPC1xExd1HsVlbAmP16Ae6sL8IiF4iZ+51GOj7kbK+L7
         zo1EAZycffNwRMOAXshelSJqqEjD33hB1l/LJkXJWQtPmGuiCYwxS2bUbNKHWrYdsq7i
         1TNXdUW3tDd6V+/NiNDFxUKE+bOov2YrTWYk/7GcEo1qoxUrlFdMI0yevv1ibNYsQeN5
         Z61A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773126981; x=1773731781;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uV76+llFq4AaGCDzTuZZ/2XFlOJWtZBta/pWcVVXHBc=;
        b=UBsxIPb0u2mva6DTwu5vSawuo1aSuxx+yPytuRu1i8+pClu2gqGsjMnrPvQiAeItLu
         EVsug2yL7LZb3zb3brMdqtTo35xmAjN0NwXtdM85D1JVTuEY//kaCTOtZ/r1F1N2oev/
         BjlM6hrRqRhGIimv7EFTt3Fm679gfKcVlracST1oKl7EyLVtk5poslCzDINMZBLBxoUE
         QxUUgKnGQCUw0lYIdNVHlA+cF6p/r3IbxkjofdhPqnXZKSNHfDTQO84IVGj5kiHQ9KIW
         kC39rydQgg8CkUFXFi0YwzilSyCUA0uMJA+aY36+U2x9D5Qke7RgSjatfPQxTusvtYWD
         F/OQ==
X-Forwarded-Encrypted: i=1; AJvYcCVU02Xy1iCIbaoI6g8dKjepJQKJPI+rUDY1Duwri/EkLIZGk5xhnOjd/4rv0Hkx53EHld8t6E9s7fQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyHDztYrWEAgpeISVzxMGfrEydL8alz9Hgw6pmZO47rxNPDed08
	zHprSPCQUp6yDag/UfEgtAhaPu4vC/Nv1uVUJLOztLID8xKaOr4XX0ZQxVb+QyYYig==
X-Gm-Gg: ATEYQzzSSoSWPFF03DOmlC+NXwS82V41St39vw61ZK+Lu2K0sdIX1mYsHSazaWdds5a
	9Q2puMHZCjVuN+uSIRAbDETrkopfBGlX6MfxnG7mylxQatF1rbZ9fIjiZNrkUYYLEWUJ9gucs4z
	VAo5iLcJ9IDBH7CBxikFCQ6g22a94CFyg/ctarVpGpmEPR+7bwfzy1+sHaXeg5WKFi3igBTqzlE
	fSlENoO8Mowoq95HSIuElihryv75tLi6UeGdrb44sduElrB2QXl3B7hCZ7JCTZC7I7tFvrI2EwF
	13rlAkB0qaUwzN6h89j8JaFH7AiZrDOSMSJjtXZnmhQ47xKPBq/R+oqCD6UllKUug4O5HDq//yX
	U3/P+yaUowyEAnb+Oo/GomPgOjMatZv8v5GWB7OVChdyZT+FckrA7XQ+8gFTfm+XFhMrglbOmU4
	4DcU8vUejjp4IZGnIXvMEA03a7N/TeyfQLQp7G8emGWghO9rvm44tXk3m4hgCG4hDGAuT3K7h6v
	Ge02MH0HNI+9iI=
X-Received: by 2002:a05:600c:a41:b0:483:c35d:367f with SMTP id 5b1f17b1804b1-48526957c15mr223332805e9.21.1773126981243;
        Tue, 10 Mar 2026 00:16:21 -0700 (PDT)
Message-ID: <fd39ace3-1caa-4869-9733-0cf737aac7f9@suse.com>
Date: Tue, 10 Mar 2026 08:16:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 12/14] x86/pv: System call handling in FRED mode
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
 <20260227231636.3955109-13-andrew.cooper3@citrix.com>
 <1fc7bde0-dbaa-4daf-b23f-a46b84219278@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1fc7bde0-dbaa-4daf-b23f-a46b84219278@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.03.2026 23:25, Andrew Cooper wrote:
> On 27/02/2026 11:16 pm, Andrew Cooper wrote:
>> diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
>> index 2f40f628cbff..e2c35a046e6b 100644
>> --- a/xen/arch/x86/traps.c
>> +++ b/xen/arch/x86/traps.c
>> ...
>> +        case 2: /* SYSENTER */
>> +        {
>> +            /*
>> +             * FRED delivery preserves the interrupted state, but previously
>> +             * SYSENTER discarded almost everything.
>> +             *
>> +             * The guest isn't aware of FRED, so recreate the legacy
>> +             * behaviour.
>> +             *
>> +             * When setting the selectors, clear all upper metadata.  In
>> +             * particular fred_ss.swint becomes pend_DB on ERETx.
>> +             *
>> +             * When converting to a fault, hardware finally gives us enough
>> +             * information to account for prefixes, so provide the more
>> +             * correct behaviour rather than assuming the instruction was two
>> +             * bytes long.
>> +             */
>> +            unsigned int len = regs->fred_ss.insnlen;
>> +
>> +            regs->ssx = FLAT_USER_SS;
>> +            regs->rsp = 0;
>> +            regs->eflags &= ~(X86_EFLAGS_VM | X86_EFLAGS_IF);
>> +            regs->csx = 3;
>> +            regs->rip = 0;
>> +
>> +            if ( !curr->arch.pv.sysenter_callback_eip )
>> +            {
>> +                regs->rip -= len;
>> +                pv_inject_hw_exception(X86_EXC_GP, 0);
>> +            }
>> +            else
>> +                pv_inject_callback(CALLBACKTYPE_sysenter);
>> +            break;
> 
> This isn't actually a correct transformation of the IDT code.  When the
> SYENTER entrypoint isn't registered, this delivers a #GP at
> 0003:fffffffffffffffe
> 
> The simple fix to get back to IDT behaviour is to simply drop the
> subtraction of len.
> 
> In FRED mode, we can finally point the #GP at the SYSENTER instruction,
> rather than delivering at 0.  We could even provide the success case
> pointing sensibly too.
> 
> The question is should we?  Until now, the differences between FRED and
> IDT mode are minimal.  This would be major difference, and it's for
> SYSENTER which all but unused.  I'm erring on the side of "match IDT".

I agree. Down the road we could introduce an opt-in "better behavior" mode
when running under FRED (also covering other aspects previously discussed).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 08:08:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 08:08:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249837.1547218 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzs8e-0007X3-2l; Tue, 10 Mar 2026 08:08:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249837.1547218; Tue, 10 Mar 2026 08: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 1vzs8d-0007Ww-Vy; Tue, 10 Mar 2026 08:08:23 +0000
Received: by outflank-mailman (input) for mailman id 1249837;
 Tue, 10 Mar 2026 08:08:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AZzR=BK=isrc.iscas.ac.cn=pengpeng.hou@srs-se1.protection.inumbo.net>)
 id 1vzs8c-0007Wo-VS
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 08:08:22 +0000
Received: from cstnet.cn (smtp81.cstnet.cn [159.226.251.81])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 48d4b70a-1c58-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 09:08:17 +0100 (CET)
Received: from localhost.localdomain (unknown [210.73.43.101])
 by APP-03 (Coremail) with SMTP id rQCowAD3E9to0a9pDDQ7Cg--.45464S2;
 Tue, 10 Mar 2026 16:08:09 +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: 48d4b70a-1c58-11f1-b164-2bf370ae4941
From: Pengpeng Hou <pengpeng.hou@isrc.iscas.ac.cn>
To: 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,
	Pengpeng Hou <pengpeng.hou@isrc.iscas.ac.cn>
Subject: [PATCH v2] xen/grant-table: guard gnttab_suspend/resume with CONFIG_HIBERNATE_CALLBACKS
Date: Tue, 10 Mar 2026 08:08:00 +0000
Message-Id: <20260310080800.742223-1-pengpeng.hou@isrc.iscas.ac.cn>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID:rQCowAD3E9to0a9pDDQ7Cg--.45464S2
X-Coremail-Antispam: 1UD129KBjvJXoW7Zr15ZFWDtrW5uFyfXw4Utwb_yoW8tF4xpF
	Z8JrWqyr95Ja4SyFWaya9YkFy5ua93J3yxGr4Y9rZxZan7Gr17ArWSqFyjvr1kWrW8Jr4v
	vF4qgrW3Cr4UuaDanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUUvv14x267AKxVWUJVW8JwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26r1j6r1xM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26r1j
	6r4UM28EF7xvwVC2z280aVAFwI0_Gr0_Cr1l84ACjcxK6I8E87Iv6xkF7I0E14v26r4j6r
	4UJwAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0
	I7IYx2IY67AKxVWUAVWUtwAv7VC2z280aVAFwI0_Gr0_Cr1lOx8S6xCaFVCjc4AY6r1j6r
	4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwCY1x0262kKe7AKxVWU
	AVWUtwCY02Avz4vE14v_GFyl42xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr
	1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE
	14v26r126r1DMIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7
	IYx2IY6xkF7I0E14v26r1j6r4UMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E
	87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r4j6r4UJbIYCTnIWIevJa73Uj
	IFyTuYvjfUjkucDUUUU
X-Originating-IP: [210.73.43.101]
X-CM-SenderInfo: pshqw1hhqjhx1rx6x21ufox2xfdvhtffof0/

In current linux.git, gnttab_suspend() and gnttab_resume() are defined
and declared unconditionally. However, their only in-tree callers reside
in drivers/xen/manage.c, which are guarded by CONFIG_HIBERNATE_CALLBACKS.

Match the helper scope to their callers by wrapping the definitions in
CONFIG_HIBERNATE_CALLBACKS and providing no-op stubs in the header. This
fixes the config-scope mismatch and reduces the code footprint when
hibernation callbacks are disabled.

Signed-off-by: Pengpeng Hou <pengpeng.hou@isrc.iscas.ac.cn>
---
Hi Juergen,

Thank you for the feedback. I apologize for the non-standard patch format 
in the previous version. 

As requested, I have regenerated this patch using `git format-patch` to 
ensure proper hunk headers and context line numbers are included.

Changes in v2:
- Re-generated with proper git formatting (line numbers and context).
- No functional changes from v1.

 drivers/xen/grant-table.c |  3 ++-
 include/xen/grant_table.h | 12 ++++++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c
index 97e27f754d396..a6abf1ccd54ce 100644
--- a/drivers/xen/grant-table.c
+++ b/drivers/xen/grant-table.c
@@ -1579,7 +1579,7 @@ static int gnttab_setup(void)
 	}
 	return gnttab_map(0, nr_grant_frames - 1);
 }
-
+#ifdef CONFIG_HIBERNATE_CALLBACKS
 int gnttab_resume(void)
 {
 	gnttab_request_version();
@@ -1592,6 +1592,7 @@ int gnttab_suspend(void)
 		gnttab_interface->unmap_frames();
 	return 0;
 }
+#endif
 
 static int gnttab_expand(unsigned int req_entries)
 {
diff --git a/include/xen/grant_table.h b/include/xen/grant_table.h
index 69ac6d80a006b..a33a60a2ea72d 100644
--- a/include/xen/grant_table.h
+++ b/include/xen/grant_table.h
@@ -84,8 +84,20 @@ struct gntab_unmap_queue_data
 };
 
 int gnttab_init(void);
+#ifdef CONFIG_HIBERNATE_CALLBACKS
 int gnttab_suspend(void);
 int gnttab_resume(void);
+#else
+static inline int gnttab_suspend(void)
+{
+	return 0;
+}
+
+static inline int gnttab_resume(void)
+{
+	return 0;
+}
+#endif
 
 int gnttab_grant_foreign_access(domid_t domid, unsigned long frame,
 				int readonly);
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 08:11:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 08:11:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249850.1547229 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzsBx-0000gJ-J4; Tue, 10 Mar 2026 08:11:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249850.1547229; Tue, 10 Mar 2026 08:11:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzsBx-0000gC-FI; Tue, 10 Mar 2026 08:11:49 +0000
Received: by outflank-mailman (input) for mailman id 1249850;
 Tue, 10 Mar 2026 08:11: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=S17i=BK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vzsBw-0000fn-Rr
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 08:11:48 +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 c84a2640-1c58-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 09:11:47 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-482f454be5bso126083895e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 01:11:46 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48541b6f708sm74400015e9.11.2026.03.10.01.11.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Mar 2026 01:11: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: c84a2640-1c58-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773130306; x=1773735106; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bYPN/tGDDB2gNXEumQ56ibMZof+RWYgUy2Nmn53+I3Y=;
        b=JY3zyUpPT/i6XUnjvkKfp4VbzxnW+lJdJX3sDPEcxOo4KlaGQzqN2GIlkihyO8bGXo
         SyLgUmPCGA0JQGnGOKkemUfZVNNBNdu3aMj5kVPzzPG6DzW12yzgdwhTuOVZUMggeFeS
         Biw0Xlgkc6sSvqhylVC93t8gYp9BtKLRnr4jFA1UHPC10c/YdPuEuEQ1P6QJ9FGm7Lzb
         G6hbfOlyEuc8QvY8YjmlF7QYj3Ek4j6LDQp2BCsgjgH49mlba7O6darV7R+AfgWlLQqy
         jjqtZMZOwDtJfTBey/Iic7dyqTDddFN7NlOPg6BWFh6e3TgT/ipHacF26sVQn5mbMd10
         n+sg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773130306; x=1773735106;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bYPN/tGDDB2gNXEumQ56ibMZof+RWYgUy2Nmn53+I3Y=;
        b=HfcyesLBKJEizqCebhjNM0SXddv9QZjrfCZDE9LKdYVGeTZFjPvYYxURskBgQ8e1bZ
         VbOw994RzmsdvrkBq6LWXtdKO4omoSmXoDVFwf+kha8hE2MDm5zYI3wmRC25f53P+Qfc
         BRJM29vvRfuHmIfqKw7q0RkongABAbD393CL5oujkU/9sXv5Hry5SnCowm0JxKKjTTLu
         tYJY/9OkZTxBz8JZoZcIXmf9hOwfFH8lp0+Xbbhf9zDJulsoXMGYadHtIdEIECKxFndb
         5urqF/CX3OAaj47TLMVSin6TGj9S6r3/LmRioGC+TLI9iAONSbr64ApyOKmynxbKYgF1
         umyg==
X-Forwarded-Encrypted: i=1; AJvYcCUc7ebjQOVUMlmbijtaC6buuipJD+12EqjN38CahVS4I4R2swDBv86feg1iJ83zSLF6NxfGq+3b1yU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxZUxtIh9bR1DqsRws0z3H0efKSFzyifHRCwUYXz+KtQzEEnmwt
	oR1BZXOi6/kXyYxSx/GItMWb4EfBUYLWAfYK20U2mPqyxMaLlJ2OqPf9xMcOZE343w==
X-Gm-Gg: ATEYQzxC3/sezy1HONkoAfj4ntJ4S/QQJgxAOt16ePSBoFuvAqNVfpPJ/SIG4az7U2U
	KJuIkNPTpDyMhRmXCxSNaeYEqtWaDyAf6qzDSqb1OXCNaEcu4p5wpc9DTJyUUdr2LtGMZLUrccE
	GQeQwe/PeyduaocRY1eGIB0/jk4lqE7t+0uS+7fcmlGDOFDjfDP0trRFWMJUNGeI/wUXQfX0ip/
	60ps2q1mds/In8AsYX9d5SvQOYsWpTmsgBEedi2lbSC0REygrZROKpefQZyE3E7JKC/7nZKRw+l
	Yt+yLhhh3py0b2zw9/oDArajtvGD1Tl2kDpTgUJAh8ki0MYL5HPt9B+ptJ9BbMBLr/iG3qVZEVe
	lzLO7O6FPxQJRbieTRacPd5WtQIuBZhAfePWtADfEkruMN/NQWwvPTztrabQAznulx4Q8MeXAA7
	Mr/SyKmEbnwXWowfZsSNFvdF4Bj+77hG01UpZ7TcM97OVEZ+Vas+YhmI0+zw/2C4NzoMr45Y3UG
	J2KygwSWtKCL2M=
X-Received: by 2002:a05:600c:1d89:b0:485:3c2e:60d5 with SMTP id 5b1f17b1804b1-485419a2774mr35770765e9.2.1773130306204;
        Tue, 10 Mar 2026 01:11:46 -0700 (PDT)
Message-ID: <2de7f459-00b3-4968-aaa2-9067cb0c4aa4@suse.com>
Date: Tue, 10 Mar 2026 09:11:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 01/14] xen/riscv: detect and store supported hypervisor
 CSR bits at boot
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
 <3201951150104f17593e16c7ba00ada51ac1e10f.1772814110.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: <3201951150104f17593e16c7ba00ada51ac1e10f.1772814110.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.03.2026 17:33, Oleksii Kurochko wrote:
> Some hypervisor CSRs expose optional functionality and may not implement
> all architectural bits. Writing unsupported bits can either be ignored
> or raise an exception depending on the platform.
> 
> Detect the set of writable bits for selected hypervisor CSRs at boot and
> store the resulting masks for later use. This allows safely programming
> these CSRs during vCPU context switching and avoids relying on hardcoded
> architectural assumptions.
> 
> Use csr_read()&csr_write() instead of csr_swap()+all ones mask as some
> CSR registers have WPRI fields which should be preserved during write
> operation.
> 
> Also, ro_one struct is introduced to cover the cases when a bit in CSR
> register (at the momemnt, it is only hstateen0) may be r/o-one to have
> hypervisor view of register seen by guest correct.
> 
> Masks are calculated at the moment only for hedeleg, henvcfg, hideleg,
> hstateen0 registers as only them are going to be used in the follow up
> patch.
> 
> If the Smstateen extension is not implemented, hstateen0 cannot be read
> because the register is considered non-existent. Instructions that attempt
> to access a CSR that is not implemented or not visible in the current mode
> are reserved and will raise an illegal-instruction exception.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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

I'll commit as-is, yet still a couple of remarks:

> ---
> Changes in V7:
>  - Use csr_read_set() in INIT_CSR_MASK() instead of csr_read()+csr_write().
>  - Add undef of INIT_CSR_MASK().
>  - Move local variable old above INIT_CSR_MASK().

This contradicts ...

>  - Introduce INIT_RO_ONE_MASK() to init csr_masks.ro_one.* fields.
>  - Introduce defines for masks intead of constants.
>  - Move old variable inside macros INIT_CSR_MASK() and INIT_RO_ONE_MASK().

... this. You may want to prune revlog entries when making incremental
changes within one revision.

> --- a/xen/arch/riscv/domain.c
> +++ b/xen/arch/riscv/domain.c
> @@ -2,9 +2,66 @@
>  
>  #include <xen/init.h>
>  #include <xen/mm.h>
> +#include <xen/sections.h>
>  #include <xen/sched.h>
>  #include <xen/vmap.h>
>  
> +#include <asm/cpufeature.h>
> +#include <asm/csr.h>
> +
> +struct csr_masks {
> +    register_t hedeleg;
> +    register_t henvcfg;
> +    register_t hideleg;
> +    register_t hstateen0;
> +
> +    struct {
> +        register_t hstateen0;
> +    } ro_one;
> +};
> +
> +static struct csr_masks __ro_after_init csr_masks;
> +
> +#define HEDELEG_AVAIL_MASK ULONG_MAX
> +#define HIDELEG_AVAIL_MASK ULONG_MAX
> +#define HENVCFG_AVAIL_MASK _UL(0xE0000003000000FF)
> +#define HSTATEEN0_AVAIL_MASK _UL(0xDE00000000000007)

It's not quite clear to me what AVAIL in here is to signal. It's also not
quite clear to me why you would use _UL() in #define-s sitting in a C file
(and hence not possibly being used in assembly code; even for asm() I'd
expect constants to be properly passed in as C operands).

> +void __init init_csr_masks(void)
> +{
> +    /*
> +     * The mask specifies the bits that may be safely modified without
> +     * causing side effects.
> +     *
> +     * For example, registers such as henvcfg or hstateen0 contain WPRI
> +     * fields that must be preserved. Any write to the full register must
> +     * therefore retain the original values of those fields.
> +     */
> +#define INIT_CSR_MASK(csr, field, mask) do { \
> +        register_t old = csr_read_set(CSR_##csr, mask); \
> +        csr_masks.field = csr_swap(CSR_##csr, old); \
> +    } while (0)
> +
> +#define INIT_RO_ONE_MASK(csr, field, mask) do { \
> +        register_t old = csr_read_clear(CSR_HSTATEEN0, mask); \
> +        csr_masks.ro_one.field = csr_swap(CSR_##csr, old) & mask; \
> +    } while (0)
> +
> +    INIT_CSR_MASK(HEDELEG, hedeleg, HEDELEG_AVAIL_MASK);
> +    INIT_CSR_MASK(HIDELEG, hideleg, HIDELEG_AVAIL_MASK);
> +
> +    INIT_CSR_MASK(HENVCFG, henvcfg, HENVCFG_AVAIL_MASK);
> +
> +    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
> +    {
> +        INIT_CSR_MASK(HSTATEEN0, hstateen0, HSTATEEN0_AVAIL_MASK);
> +        INIT_RO_ONE_MASK(HSTATEEN0, hstateen0, HSTATEEN0_AVAIL_MASK);
> +    }

The 3rd macro parameters are now redundant. At the example of INIT_CSR_MASK(),
you could now have

#define INIT_CSR_MASK(csr, field) do { \
        register_t old = csr_read_set(CSR_ ## csr, csr ## _AVAIL_MASK); \
        csr_masks.field = csr_swap(CSR_ ## csr, old); \
    } while (0)

This would reduce the risk of incomplete editing after copy-and-paste, or
other typo-ing.

Note also that ## being a binary operator, ./CODING_STYLE wants us to put
blanks around it just like for non-pre-processor binary operators. I'll
try to remember to make that adjustment when committing.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 08:13:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 08:13:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249858.1547236 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzsDL-0001AO-Rd; Tue, 10 Mar 2026 08:13:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249858.1547236; Tue, 10 Mar 2026 08: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 1vzsDL-0001AH-Oo; Tue, 10 Mar 2026 08:13:15 +0000
Received: by outflank-mailman (input) for mailman id 1249858;
 Tue, 10 Mar 2026 08:13:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=S17i=BK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vzsDK-0001AB-52
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 08:13:14 +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 fb19602a-1c58-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 09:13:12 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-48534b59cf3so18509495e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 01:13:12 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48536b5b3absm59710785e9.32.2026.03.10.01.13.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Mar 2026 01:13:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fb19602a-1c58-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773130391; x=1773735191; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6b7G87Vo157IaGbJCatI+989xIlbUVkO1fK/stTSOIA=;
        b=BNL7HLb2TGQS3fWjfvZq3/XttHJGyo+FIjjAxsP4kRL02NKDWV0mDMDBh5hvXn4UYx
         alXJ/44X2HVTvUGK6JxukECSKSE8xXwTVjYNi8y6qiJzzFqWgQzqiWJr7UMF+njbLfLa
         mqtTTz+Qg4iebkn6MYPoasc8qqcozIu+G0+2qlFdLlhHCy7mtNU9bzoieSHXRuzEh31O
         nYHdhUxaybumuuEEH2wSbLDJl/pdoEtkl7oR8iOhBFATMzn/Pw/XJnW5jeOwsNDpZOWs
         H1Y+VvVsHzoztFtkK7dMD9ilM4mTBjxExSPNSyjvDCHQqiMNY2BGJtckELocwPUoQjx1
         eJfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773130391; x=1773735191;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6b7G87Vo157IaGbJCatI+989xIlbUVkO1fK/stTSOIA=;
        b=pUSI+Ud45RlsXLfxDQPGQ6fYSLSz6IH7o2HIBSbb/KXkRdbL1qV7ynUnNzKAtqCEBE
         bp/p68SDi2BQ8zj+6Ki11hVu+NO41X007lpOM8TctVMNLfOJ1NxID8WA1bLf/bUu6fWD
         oGATCzvbYjwUxxeXtlJmrDL0nziDtatRXGb7+UlzZTAjtKINH8TtPg+b9d6LNWkji/rk
         DZ3kp8djD8YaxDd9pP9RLUdvl01WYJ1lBttyjzlOarjkN60PrA1bMzRjBiMjxjR8McDi
         QAgpM6c/sKvJqYFAPqAE1bdur8NQBIGctZnN5DiCFhpkx4FospbJBeM5MPAUwI6YCR95
         ubtw==
X-Forwarded-Encrypted: i=1; AJvYcCUYsnXhbra5PgQhdj+lE3f0564L1Ik18n3fh/Ykm4j2MxB86UoQobchOHA+j68j1j55IW19I+2BqJ0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxIESGy4pEHVtmOZFOo4lboJ0T/SuiXFe6DcaYyZHLYgJ5TETXa
	QBQo5JpIxOLbrNyvqyydatzNxGd2MUt1VsSlJZ8KMYs45vorAasuf7MgYZ67WsFBWw==
X-Gm-Gg: ATEYQzxyNsS9b9kM4OO+E3Gaa3T8dUrfDocJZAsLrOWBYWGUnisXwtFAv+XprJ1TFyX
	iRS05GheGfEmX+AiEh0DS9Lr8+USaHFNyGUnSFUSPDF2xpeA2vmzPp0cN73rTzwvrq8YuJK82E8
	YF+Ox9qV2mrlsuS71L3nVzgZVo/OkJAt/eX6RKDGK/1zU4oHPYFC3a3+N0AQJOgbnRnEqNRDSxc
	5fpnDoeGcP/uU/5cmK9mIH9mADRIgLofRSqanBJrBae2j0bJYuL22fQ756cKz8+kyWc9uKfYU0Z
	NcPUS41DCt/18x1EGIPZATgayMdQcHzqOfFXhckptNeyYLPjMAU6tbQoZYqIuWbP0MKV7JUMR5n
	mINdesFn+SkfXsxfddc28Jo3D5pou17ve1fIKLNBH1IbX0NvX0y53LHBgZnHYDpNguVmWao/Sj0
	IUGqgLUuIe0Eg8JSWZTdDQBveErd1Y0UEhttABDBCHs1ah3wKvdlUZd9DGRo1LLG/jb/t6btlL0
	bF6GRRvNDqyZ/oASKSq7wULag==
X-Received: by 2002:a05:600c:811a:b0:485:4535:73d with SMTP id 5b1f17b1804b1-4854535091fmr11150265e9.2.1773130391408;
        Tue, 10 Mar 2026 01:13:11 -0700 (PDT)
Message-ID: <794ecd76-29f3-464e-889b-b3800fda9cd9@suse.com>
Date: Tue, 10 Mar 2026 09:13:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 03/14] xen/riscv: introduce tracking of pending vCPU
 interrupts, part 1
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
 <949104bf183688fa0416845fe7e3c19c2c5b2a2d.1772814110.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: <949104bf183688fa0416845fe7e3c19c2c5b2a2d.1772814110.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.03.2026 17:33, Oleksii Kurochko wrote:
> Based on Linux kernel v6.16.0.
> Note that smp_wmb() is used instead of smp_mb__before_atomic() as what
> we want to guarantee that if a bit in irqs_pending_mask is obversable
> that the correspondent bit in irqs_pending is observable too.
> 
> Add lockless tracking of pending vCPU interrupts using atomic bitops.
> Two bitmaps are introduced:
>  - irqs_pending — interrupts currently pending for the vCPU
>  - irqs_pending_mask — bits that have changed in irqs_pending
> 
> The design follows a multi-producer, single-consumer model, where the
> consumer is the vCPU itself. Producers may set bits in
> irqs_pending_mask without a lock. Clearing bits in irqs_pending_mask is
> performed only by the consumer via xchg(). The consumer must not write
> to irqs_pending and must not act on bits that are not set in the mask.
> Otherwise, extra synchronization should be provided.
> 
> On RISC-V interrupts are not injected via guest registers, so pending
> interrupts must be recorded in irqs_pending (using the new
> vcpu_{un}set_interrupt() helpers) and flushed to the guest by updating
> HVIP before returning control to the guest. The consumer side is
> implemented in a follow-up patch.
> 
> A barrier between updating irqs_pending and setting the corresponding
> mask bit in vcpu_set_interrupt()/vcpu_unset_interrupt() guarantees
> that if the consumer observes a mask bit set, the corresponding pending
> bit is also visible. This prevents missed interrupts during the flush.
> 
> It is possible that a guest could have pending bit in the hardware
> register without being marked pending in irq_pending bitmap as:
>   According to the RISC-V ISA specification:
>     Bits hip.VSSIP and hie.VSSIE are the interrupt-pending and
>     interrupt-enable  bits for VS-level software interrupts. VSSIP in hip
>     is an alias (writable) of the same bit in hvip.
>   Additionally:
>     When bit 2 of hideleg is zero, vsip.SSIP and vsie.SSIE are read-only
>     zeros. Else, vsip.SSIP and vsie.SSIE are aliases of hip.VSSIP and
>     hie.VSSIE.
> This means the guest may modify vsip.SSIP, which implicitly updates
> hip.VSSIP and the bit being written with 1 would also trigger an interrupt
> as according to the RISC-V spec:
>   These conditions for an interrupt trap to occur must be evaluated in a
>   bounded   amount of time from when an interrupt becomes, or ceases to be,
>   pending in sip,  and must also be evaluated immediately following the
>   execution of an SRET  instruction or an explicit write to a CSR on which
>   these interrupt trap conditions expressly depend (including sip, sie and
>   sstatus).
> What means that IRQ_VS_SOFT must be synchronized separately, what is done
> in vcpu_sync_interrupts(). Note, also, that IRQ_PMU_OVF would want to be
> synced for the similar reason as IRQ_VS_SOFT, but isn't sync-ed now as
> PMU isn't supported now.
> 
> For the remaining VS-level interrupt types (IRQ_VS_TIMER and
> IRQ_VS_EXT), the specification states they cannot be modified by the guest
> and are read-only because of:
>   Bits hip.VSEIP and hie.VSEIE are the interrupt-pending and interrupt-enable
>   bits for VS-level external interrupts. VSEIP is read-only in hip, and is
>   the logical-OR of these interrupt sources:
>     • bit VSEIP of hvip;
>     • the bit of hgeip selected by hstatus.VGEIN; and
>     • any other platform-specific external interrupt signal directed to
>       VS-level.
>   Bits hip.VSTIP and hie.VSTIE are the interrupt-pending and interrupt-enable
>   bits for VS-level timer interrupts. VSTIP is read-only in hip, and is the
>   logical-OR of hvip.VSTIP and any other platform-specific timer interrupt
>   signal directed to VS-level.
> and
>   When bit 10 of hideleg is zero, vsip.SEIP and vsie.SEIE are read-only zeros.
>   Else, vsip.SEIP and vsie.SEIE are aliases of hip.VSEIP and hie.VSEIE.
> 
>   When bit 6 of hideleg is zero, vsip.STIP and vsie.STIE are read-only zeros.
>   Else, vsip.STIP and vsie.STIE are aliases of hip.VSTIP and hie.VSTIE.
> and also,
>   Bits sip.SEIP and sie.SEIE are the interrupt-pending and interrupt-enable
>   bits for supervisor-level external interrupts. If implemented, SEIP is
>   read-only in sip, and is set and cleared by the execution environment,
>   typically through a platform-specific interrupt controller.
> 
>   Bits sip.STIP and sie.STIE are the interrupt-pending and interrupt-enable
>   bits for supervisor-level timer interrupts. If implemented, STIP is
>   read-only in sip, and is set and cleared by the execution environment
> Thus, for these interrupt types, it is sufficient to use vcpu_set_interrupt()
> and vcpu_unset_interrupt(), and flush them during the call of
> vcpu_flush_interrupts() (which is introduced in follow up patch).
> 
> vcpu_sync_interrupts(), which is called just before entering the VM,
> slightly bends the rule that the irqs_pending bit must be written
> first, followed by updating the corresponding bit in irqs_pending_mask.
> However, it still respects the core guarantee that the producer never
> clears the mask and only writes to irqs_pending if it is the one that
> flipped the corresponding mask bit from 0 to 1.
> Moreover, since the consumer won't run concurrently because
> vcpu_sync_interrupts() and the consumer path are going to be invoked
> sequentially immediately before VM entry, it is safe to slightly relax
> this ordering rule in vcpu_sync_interrupts().
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 08:17:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 08:17:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249866.1547246 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzsH7-0001jw-AU; Tue, 10 Mar 2026 08:17:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249866.1547246; Tue, 10 Mar 2026 08:17:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzsH7-0001jp-7v; Tue, 10 Mar 2026 08:17:09 +0000
Received: by outflank-mailman (input) for mailman id 1249866;
 Tue, 10 Mar 2026 08:17: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=S17i=BK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vzsH5-0001jj-UG
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 08:17:07 +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 8683dd29-1c59-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 09:17:06 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4852afd42ceso32667265e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 01:17:06 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48541a6bc3bsm60097875e9.2.2026.03.10.01.17.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Mar 2026 01:17:05 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8683dd29-1c59-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773130625; x=1773735425; 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=fRACD4x7N8wd8Fy91xzLuO2yKCsx3uFmszHJJ8SyNGg=;
        b=g9xoQwi5jmkPEpoWKnL9DPj3AxCaZzUTRCbJ99d3j3j5h4at9wPJR91iuCz/um3fPh
         xYClO+X7xNcBJvGnMuMo+PirmTsmpV7eNT9HDZuZqSoQGdEpXwq5qZK+pIE/NMBr2dKZ
         4w4UvXpE1a1e8beNrv/7N5vpU2gHVIuvmQ0y1vmX66OUrPpuqkGraa8wc6mD6ZDixDg+
         XMYnjI44NmJbAHTYqpu7cLV971aKD+pX1liC63oWGUjvoCxxJ/stAuq0iMFIfE9zcR/r
         FG6bspRsUYM1oC+Mg6p27Nua9dgGzJgPw6kKnP1yAhvj2UuT/P7AgKvOJbEDTe9TQzbF
         pWTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773130625; x=1773735425;
        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=fRACD4x7N8wd8Fy91xzLuO2yKCsx3uFmszHJJ8SyNGg=;
        b=xB7sVPzw+Pw98iJtCDAzOrXvzrwJWuepwN5X7cm4vK101Egnfnrx+4ZD9KeOr1lD1C
         wNpsBm34qWyCtFw3wh7EogPgBmjjhBDvUJiVxHruEHEK7iDpnIRNATNxbrnBV9ObHLES
         fGo3VEd4AyfrQXuehRFIiqqS2TVNVcVc6DJ1lp8sm0uFr+5P+ErZyOc6bizfelbJZcFe
         h4WAL9LPUpPXyDnrTczRXLWznhbosxQ/B3JFAZkJ9WMdji9c81kkpeZhQtnov40HCIgT
         7ZS7J28X9slrmZ28rQa9fevfyOMlM9FenOloi5hgqUxUpMRdzdX+y2qZmeGHO7yY4o+M
         /liQ==
X-Forwarded-Encrypted: i=1; AJvYcCWHUojwm4RZoI1Vgxf/Q3Oxw4SQTQrsbI2D8241iyFa/LKZ/L7F6NfJYntj2/W4IblKKWq+Sh5fhV0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzn7ZIqG+/H57VSUwKrsiLuiZ7aqAv6lYxxRA1hO6ahA9NltMUP
	nO0ZHy9rh9BL1MPmXvF5M/c4sEVvV0prqDbthmjC6w02AIie0tEXACzQx+4stwk0oQ==
X-Gm-Gg: ATEYQzxYxS+YlZSAHAjXJ0xkK4QVtBurqLAi96V/O0hgZT4c+c7i+lO2dPI1iCZeDbx
	atHI0uvsuCXkXFYYM0+rVWwM6oTPikTocP5i1zFoEd4FYJnBN0eSP63JbGcwPUJo2K8DihZKmYs
	r5rEND1ixWnSKpx7BzhRukzjNQh6p2r5CKp/nnfLkzs43uwE8DbuuFSghromvAj/53nEBLzYtVm
	/ysnOA+HAx3cuyx5hsbyxsZu/cHcWGtO6fPW8jv51/nDX7Ky9JkUxLuE5fvwHInRAQgkWF+oDO6
	CpZGwZHfcxvGAua9F45otW4a21cZDMAhl570LrwQmUpnvB8CwOFC1AjiFQ/3LV57Sb+iAaXJQGP
	xgf8cu3AMvI/FmWHwh3mbN4OCiuSwCEwwKuC7rCQyxY/1KSTnjPOLTLNpVlKe7WmpgS5bRwEnus
	A9xUWvIw86d5bPFj+o9IQahv6bDiyB+d5uXY9FOBOcRAa/wyT47Cn5GALO89ZXmR+9MCUyexjrP
	5MN3DWZ//LtxjY=
X-Received: by 2002:a05:600c:5250:b0:485:2fe9:3375 with SMTP id 5b1f17b1804b1-4852fe93587mr185229035e9.15.1773130625377;
        Tue, 10 Mar 2026 01:17:05 -0700 (PDT)
Message-ID: <6a4d68e3-e640-4f74-be74-132f094db752@suse.com>
Date: Tue, 10 Mar 2026 09:17:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 01/14] xen/riscv: detect and store supported hypervisor
 CSR bits at boot
From: Jan Beulich <jbeulich@suse.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
 <3201951150104f17593e16c7ba00ada51ac1e10f.1772814110.git.oleksii.kurochko@gmail.com>
 <2de7f459-00b3-4968-aaa2-9067cb0c4aa4@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: <2de7f459-00b3-4968-aaa2-9067cb0c4aa4@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.03.2026 09:11, Jan Beulich wrote:
> On 06.03.2026 17:33, Oleksii Kurochko wrote:
>> +void __init init_csr_masks(void)
>> +{
>> +    /*
>> +     * The mask specifies the bits that may be safely modified without
>> +     * causing side effects.
>> +     *
>> +     * For example, registers such as henvcfg or hstateen0 contain WPRI
>> +     * fields that must be preserved. Any write to the full register must
>> +     * therefore retain the original values of those fields.
>> +     */
>> +#define INIT_CSR_MASK(csr, field, mask) do { \
>> +        register_t old = csr_read_set(CSR_##csr, mask); \
>> +        csr_masks.field = csr_swap(CSR_##csr, old); \
>> +    } while (0)
>> +
>> +#define INIT_RO_ONE_MASK(csr, field, mask) do { \
>> +        register_t old = csr_read_clear(CSR_HSTATEEN0, mask); \
>> +        csr_masks.ro_one.field = csr_swap(CSR_##csr, old) & mask; \
>> +    } while (0)
>> +
>> +    INIT_CSR_MASK(HEDELEG, hedeleg, HEDELEG_AVAIL_MASK);
>> +    INIT_CSR_MASK(HIDELEG, hideleg, HIDELEG_AVAIL_MASK);
>> +
>> +    INIT_CSR_MASK(HENVCFG, henvcfg, HENVCFG_AVAIL_MASK);
>> +
>> +    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
>> +    {
>> +        INIT_CSR_MASK(HSTATEEN0, hstateen0, HSTATEEN0_AVAIL_MASK);
>> +        INIT_RO_ONE_MASK(HSTATEEN0, hstateen0, HSTATEEN0_AVAIL_MASK);
>> +    }
> 
> The 3rd macro parameters are now redundant. At the example of INIT_CSR_MASK(),
> you could now have
> 
> #define INIT_CSR_MASK(csr, field) do { \
>         register_t old = csr_read_set(CSR_ ## csr, csr ## _AVAIL_MASK); \
>         csr_masks.field = csr_swap(CSR_ ## csr, old); \
>     } while (0)
> 
> This would reduce the risk of incomplete editing after copy-and-paste, or
> other typo-ing.
> 
> Note also that ## being a binary operator, ./CODING_STYLE wants us to put
> blanks around it just like for non-pre-processor binary operators. I'll
> try to remember to make that adjustment when committing.

Oh, I'm also going to replace the bogus CSR_HSTATEEN0 inside the
INIT_RO_ONE_MASK() macro definition.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 09:07:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 09:07:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249884.1547256 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzt46-00084U-29; Tue, 10 Mar 2026 09:07:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249884.1547256; Tue, 10 Mar 2026 09:07:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzt45-00084N-UR; Tue, 10 Mar 2026 09:07:45 +0000
Received: by outflank-mailman (input) for mailman id 1249884;
 Tue, 10 Mar 2026 09:07: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=xDYK=BK=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vzt43-00084H-Ve
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 09:07: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 970c0dc9-1c60-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 10:07:41 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by PH0PR03MB5861.namprd03.prod.outlook.com (2603:10b6:510:3a::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.17; Tue, 10 Mar
 2026 09:07:37 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::20d8:6571:d4aa:166c]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::20d8:6571:d4aa:166c%4]) with mapi id 15.20.9678.024; Tue, 10 Mar 2026
 09:07: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: 970c0dc9-1c60-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ul/bd23rdLsXEPxmituoioCMijPWUsQGYsWTsEPplNmsvbCieEo4IVjXgyuNRKV/Agf+V6o5HEa0OFf3cb9N7jlFk6McypwD6+Z6qz1Ym5RD8vo1UWP5RkLzipJbWvJbPHtxQplfIr9JFaY11mhP4zVfuaoQaD1P/r3lK/+6Kw1/aUXZ0QgnUhWwJQ0BQBDBxg2RqcaJhfKIPwiOJTWeiBN/728n67+Py3jG4qyrfQejmEyWXmhdGe5FmiuqCcodiQ0yy6OXEqIWdJuRmjdQZ03uAMw/LLrsAmZlEwCalxXnLWwizIxudmTj/jKzHVjLltcyDTF2F9jA6VWhRfE1Zg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=V59VMzch7YVpTMT8Le0sHR09r5yilpvHjOVWb5ku7Nk=;
 b=sd05CIU17Q8D3Z4uVVMpJPKrDaooQV4dihoKkk2DfHGiCz+D27BCNfDQPtf0QMWe3dzYCCnlXrukKtX1fgxkvwuALpuodYYB+mL1wEVxqY1LsZ1JYaMnfbl1SFB1Zr8CYrXs0EQgD3uGcnX5UUsX9UUM/tFsnBohyMeSHvKkPEiLp95G9VEarb7gGlTIwbIcR1ianSECLOshM4R6pKmFGw6UHBsuimomX36Q656XBLyuxF3MGDBusZuOmKDj+6G2RPR2eHX02YdrmjtHgsfmFv8Ns6fWTCEps3iyxUBVB/QwXFUhZEPrJrDcnXCgTU38MA16n88JjHDIBzLMXDcZ8w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=V59VMzch7YVpTMT8Le0sHR09r5yilpvHjOVWb5ku7Nk=;
 b=SPyqERMjle39aKk4DiP/GV1q7L5tmJLZ5a40BKaa+PIFLr9H281J4kN26OAz+Z1Cnt+MVs0eszscd1XncUPc4jpJnMIFcO5hl3woXlQ+kkrtcDtmdqalaAJo0cAttVJ5XHMFEC0elZD2CYHz7mMlgcUjJUyCLG/jDRQfyFw0Vzg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 10 Mar 2026 10:07:30 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2] core-parking: shrink core_parking_cpunum[]
Message-ID: <aa_fUpLqaPDal_-l@macbook.local>
References: <29922662-8b95-4a69-9401-11480df59cdf@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <29922662-8b95-4a69-9401-11480df59cdf@suse.com>
X-ClientProxiedBy: MA2P292CA0001.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:1::17) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|PH0PR03MB5861:EE_
X-MS-Office365-Filtering-Correlation-Id: 5dbb1d06-c6e1-45a0-8605-08de7e847750
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:
	N1t31VkKIZm4gmyv4USPAWMUQTL4CAzhp8yH4C59R3FHAJ6Ee6zHKPRVroseeFuhCxMQuv2AmduKjlz2uNObOqB3wcPMczBru3KE8u7XfvO2gIU1ZrM+ls3/0Hn4t0G0StISIua/eETp1COS2olyuGSbTWgamFA369gNXWj3NIEzETZ95bsK+MQCCvhCQYf/eAgxk+e11Atg2yUXhiEJRwTlKWImy+fSy9n4M/SiEIrOVbxpqturbwOszmXRdMEWcsCnTLWlf94GSXIbe8vQDYEOgy9yN0XjM0WaDc9pmTcNUXISilcSCZ4hPTv1rvq7Uov1057Rg8XZGYdnohQ99SzaR6cIpBxGQTsnYW8syyvitfW8/AD00fUJ4gUN0UBpufkZYwEYPNPRVMB0w8NhdUU6dlD41mWf+yN4TlZNLE+fsU7IFYncxKEoY34iPz0VkMx4I7RDJm46G7psl6cWoGe2kITc/yGeKTXOiOxUyJCA2GyszlSBMHdrYf5E7GV0q7VMLkyWg6bOXS7UE/hEn3OwOQBLka6NOAJVi2uMuMp/5qZWDSrzQNLpbQyBdi2rxMhf5Ea9VyH1wu8vNzDMIMLtEVgsVgF1Wb9KvtaU6ld2vHAOBdskR8HnRVsVXSXUvmQKuukSJmYgFu0u1+BcvCjxAaQnZKNOC9kwgVjxim0/w+CzSzy0R1a7xmgSNGYIWUhIkrfmWg5YJe68Uc4JM1U/VdXkxqBOwMFvYxJO9iw=
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)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dmFpTUxGUWw3eHpqWXh2Vk1EanEzR3ZrTGRzYjVPRm1WRHkxLzlxZlRSVUsv?=
 =?utf-8?B?bU81dk95QjhFWkpaYmIrUWdRODF1RGVjcUFhNkFndjVhcjczZjhncUlBQkdn?=
 =?utf-8?B?S3BBRmMzWmZIa053WkNpZ01oR0ZUM0JZRy95c29ldXZGdjZFTnpyazkyRmxX?=
 =?utf-8?B?VEVOdUlQQ3l2OEhXYnk2RGxwZGlFSld6RkNjWDNOTWJmTEdXNFBaU2tuMWts?=
 =?utf-8?B?UDdNZ3I0d1g4L0tHdUJlMTUwbFo1T2hnNVpUSU1TSHdwR0l0a3ZlRjR3d2F0?=
 =?utf-8?B?bWtxQVZxa3VMVk0rOWhjRHFYaW5qVHdwZXdSUEN6V3Rtb2lVT0EvSVQ4V3Fi?=
 =?utf-8?B?bm9pK3pnaXRCMzBaOVdodGR0TnFFRzY4b0xsbUJLV2VvRkg0SHo1VEFyTUNo?=
 =?utf-8?B?eGQzUTl1Z1Juc1VRaWs0T01OaGpFQnVGNUMxc3VTcE9VYURqZ1NlZGhjMFJu?=
 =?utf-8?B?bEpCdXpZYzZxdGIwZElJcFVWWUxCcmdoakFVa1JVcVlXWE5HT0ppSUVxS2Y5?=
 =?utf-8?B?RUIyckp6Ym4vOXM0KzNCMmJiYzNLWGpGaG10bkFmaFk0ckg3T2lvS1J0NG5N?=
 =?utf-8?B?aHBGbkJORTJNQUZZV2ZVbEZ4TFdDb0NtTzVWVEViNHY3L2taaHlVOU1zWG9W?=
 =?utf-8?B?V2psVlZmRmpqeWlxU21BUFQ0TGpNQVRJMTBJbzFpOHp1VmQ2QU5jM1JTUThM?=
 =?utf-8?B?RkNSdDRwMzZrbkxSb2VrQ1QzbGpVVXRXZEo3WFJwVEpJa3VBeTJSZGt3QlR0?=
 =?utf-8?B?VWVaYUNPaGJPdFZYWm5ZeGhhMXV4OURJb1hDNy9vc1ROOTUrcHE0Ym9MZUk2?=
 =?utf-8?B?Nzl1OUZscC9GMEZLbmlNdWRMVkltUnFsMkdvZU12a1hGK2dQM3V5dC9idmQv?=
 =?utf-8?B?Y1cxYWViMHFQWGNGK0o4TjFyUERmUnM4dFJWZENaa0tmYnI4UGsvbnVTMUcz?=
 =?utf-8?B?NFdWa3FiZTYxcXoyQXl2bzYvOFlEcVhQaWpBMWpGVklHUWpkNTJXcThudVk1?=
 =?utf-8?B?NkNwWk50U3dtOTVwRENXTlhBd0x3MHhQYUs2NlVhOUw5K2ZDWmZUbGszTUlz?=
 =?utf-8?B?TWkvcklRblFMVjZad2drbHhCZ2pWNUJSTyt0R0Y4QXhCWWhpTFh4WFdmdmhX?=
 =?utf-8?B?WEZxbnMxckxVaW0yRGV4K094NXJHbVE3cjFjb0pEM2htWGhGOHppRUpVZ2xM?=
 =?utf-8?B?MjZWeDZTRWVSaUNwalpWZTU3VmNTZW44RmtNZjF2UExIS2JEQ1lNVGFGNkVM?=
 =?utf-8?B?c09jNm4xKytTa0hGY2JkekNKa1hEYk9nVVZ2UHZFM1AvdTd5T3NIQnRGblpZ?=
 =?utf-8?B?eTNheFJVZmVQMlA1U0s5MFFSV0xaMkk0N3JkSk5PV0xoWmp3bDZsUk5nc29S?=
 =?utf-8?B?WG9kdnMyL3pWZXF1dzlWZkU0ZjJiV21KejB0MGNHeHlLZWlLUjAxZTJvc0NV?=
 =?utf-8?B?KzBmVFBHNFNhYUZxdmYrbEYzSHBlWWFNTXRwYzlFSXdMOXhUVGtkcENEUm1r?=
 =?utf-8?B?QS9MMXR3ZmxTMVJRbUt1d3BLK25WRm80MDd1c2tORUxINGtwK2xZZ3NQM0VG?=
 =?utf-8?B?NUEwZkFFQ2ZWQ1lUQ3M5aUx0UzVMZ1lJY2Z5QmtRWjZLSmdxTUN4YkN3L05h?=
 =?utf-8?B?dWFrb3FNZGQxNURUSmdsNXJsUWJvenNKcUJYdmZXVC8wTTV1V1RPS3dpY25s?=
 =?utf-8?B?NDEzOVRFd1FuRXZJdm9TSXNmbkJ0b1k0VjlVajd5ZEd6cDduSjZENzh3Z3Fn?=
 =?utf-8?B?c3Y0Y1M4SWV1L3Vlald0aFdlNlVhRWU0R0xob0Q0LzN6UVFWVVZPTUtkL1kz?=
 =?utf-8?B?UEMxR29DcmpxMjE5UjFCWDZUdFZvVFhlTE15TXJMc1p1K2VFdHdIK3pjdnVs?=
 =?utf-8?B?YUljUUJNR3VHTU9iczgrME5OTUxNa1pHMkVnTTlzaHVlYWNScnZackpJQ084?=
 =?utf-8?B?SGF0YmJwUXRZbVRSNkJmMDZVSkRWeEQ1NjMyWmhZVFZoU3FlanlHbHhzNTdi?=
 =?utf-8?B?emsyTkFRKy8zR1BsTUloRm51dlJXK0hDWHFKNUhUNlE1NS9qU2ZhSHJJSHM3?=
 =?utf-8?B?eUdWWTFMbVpDNGV5b3hSZnZBTmlzc3FjbHprbVJOa2dwZlU0N2UxZ3JrWXp1?=
 =?utf-8?B?cjNJOGlIOFRwcGZMdGdCU2hYMTVOcWxBZGp1UGRzeWJFQVVEZ1dvaGVBY3Fr?=
 =?utf-8?B?Um1xNWNxT3FVNlhOMWd1OGhWRUhGVWVKTkU1ZEd6YmpSSUMrdGNFRE4xbEVn?=
 =?utf-8?B?V1FQN1ZlVGdjdWZ4bUswdmdwR0w0N1FPSy9sbXd6bTVKOWNHZTlEc0MxNmFv?=
 =?utf-8?B?QmhhOG5BNXBkSUI4S2VYNlFCbXVodktPNS9PYjhPdjd1SE9jVkNvUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5dbb1d06-c6e1-45a0-8605-08de7e847750
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2026 09:07:37.0292
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: zitMzcQBGw/fAYrvSJSMn+Fei6beppJADGH4CK2ESbhWSJK82Znuow2osjZ9rmHIeHUkJ7gDzZfALqnrwUFIoA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB5861

You possibly want to adjust the subject, instead of shrink I would use
"dynamically allocate" or similar.

On Mon, Mar 09, 2026 at 04:35:34PM +0100, Jan Beulich wrote:
> 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. Allocate it dynamically ahead of registering the hooks.
> 
> 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 altogether, rather than replacing
> them.
> 
> Also take the opportunity and update an adjacent variable's type, where
> a fixed-width type was pretty clearly inappropriate to use.
> 
> Finally drop the redundant initializer from core_parking_init().
> 
> 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.
> 
> num_possible_cpus() would be the more correct thing to use as array
> dimension, yet we don't maintain cpu_possible_map on x86.
> ---
> v2: Use dynamic allocation.
> 
> --- a/xen/common/core_parking.c
> +++ b/xen/common/core_parking.c
> @@ -20,6 +20,7 @@
>  #include <xen/cpumask.h>
>  #include <xen/init.h>
>  #include <xen/param.h>
> +#include <xen/xvmalloc.h>
>  
>  #include <asm/smp.h>
>  
> @@ -27,8 +28,8 @@
>  #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 unsigned int *__ro_after_init core_parking_cpunum;

Don't you need some kind of check in core_parking_remove() to prevent a
NULL pointer dereference if core_parking_cpunum hasn't been allocated?

Callers of XEN_SYSCTL_cpu_hotplug can set fn = smt_up_down_helper, and
that would call core_parking_remove().  core_parking_helper() already
contains a check that prevents accessing core_parking_cpunum if no
policy has been registered.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 09:15:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 09:15:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249895.1547264 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vztBP-0001DZ-Ny; Tue, 10 Mar 2026 09:15:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249895.1547264; Tue, 10 Mar 2026 09:15: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 1vztBP-0001DS-L7; Tue, 10 Mar 2026 09:15:19 +0000
Received: by outflank-mailman (input) for mailman id 1249895;
 Tue, 10 Mar 2026 09:15: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=S17i=BK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vztBO-0001D3-Bd
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 09:15:18 +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 a620e150-1c61-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 10:15:15 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-439bcec8613so6761487f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 02:15:14 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dadac2a7sm35114095f8f.15.2026.03.10.02.15.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Mar 2026 02:15:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a620e150-1c61-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773134114; x=1773738914; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=chx2YjW890Ou0wPw7znAMHOGpEa1l+u9HuoEt9x/NDE=;
        b=DK1FoGX8bEnfrOQiSV3jiDfocaWw8MlOWst0dT3i/TpL+Bkybytaw4hAmaFF218XqQ
         sEEGt+FZYSpMRgLyeT7DwprCUWPmAL8bm7WyrDcjevSriXQtkOS6cEuIclBXZu5XQ7dV
         lheB3AwvF+a9EbdUi6RiZTUTDKP35BrBTUhzJrLt0v93kpmHPo6zE2bUWqVhH5D3v9VW
         Ej6sZFRZUGMPbgT9jIDQgRKiBTOZNYdxKADBcs7dunPHYzybESFFI5VNxhTDi0DducGu
         0OxIKZb5ZJ4AIrpMw9XR894F4Nos1ZJ4Sqr7KYpA1OwRD5EHiVI3xcAAbgqCdsQWNElZ
         86sA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773134114; x=1773738914;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=chx2YjW890Ou0wPw7znAMHOGpEa1l+u9HuoEt9x/NDE=;
        b=PBNVWnNL6vTSXd1ZXVAgzsVq2fgXJBq3BGWixXMExzgSvJGRWQ+iLmuBNL/m7L3cKG
         wrRMMmHNfYNypqUjy15e62Xilhd6jp9jrteTTcCHUQijJembY6kgHRoUoDwqWu/I4dJS
         8przSVXRc+yYzVh2vMUeOyzVgxFG2yc47TsovK7Za/irxSRqsuYAQyonfaofxfUeNefJ
         vrRNOgxml4LqXgA59n6ojceWZwBIlF98Aqxpv+GLXxLaTQYr/frsbG26DeDgmKISTPx2
         Id74LUqtMnyUZSK/+N/f9R0nsBPftoYRYQcrlINYNsewodSwF9PAMoVarSeWAn3rL+UI
         Xjhg==
X-Forwarded-Encrypted: i=1; AJvYcCUInaujjVaSFv3oVgHuzffFHpWrQm3arvuftq+HgcUbTkV0NjFrMksdwcx9hNeMnGkmsUHZPhQWkCY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzYTsST8f9+FqXrRuHk6RoA/Bk8rbknOrX92QQMM7UDRYaDjncU
	NV6iL0n7y3laxk6d0BJE40MIUUHNya0vMlW6wwJdDNAMEQiv0iX5AcgKJpJuL0K8sw==
X-Gm-Gg: ATEYQzwybGZaoly226exfHUbAR3FlqVn27gt+SWO18FE3IeznvOTWHyemMFJRTFjWRu
	6i/J7XRVhexFlJH2xEQePjTFn7I2zEXKYR3OvBfuZunVgHUBwa+fdhc/zHplVeL+DZBuA/rmDar
	l/d7oGamrodeVdtiB1EanJuUt/dDCfqd8tA90VbnOftSbAI/u2cwVQnfShIxnr65wllXopyuLH/
	HzVw4/HiTUJlLhxybO639fTG5LNCWtKWc8y6RWrOZea21KIrM9uhWJw00IOJpDpAyw+oYXbyAWO
	UWCGMPp+coJChvroyf/NkBu36P5DsVa0csy9OPLfoRVhow1ylzB0CjMCttCCIHRFTB4djVKySaY
	ZLwHfP7mFN0CZKbZ5QC+Kj6lKaxK7nEdhyy0oJFNLhg6U51sgNESlKQncgta9uVYg5lViDyX8Jy
	j8CCyBRSiA4DZHc5ByDtJYs3Bv5LlTqOL/lzGZwEMjy24vdJn51UvXAnKPGG+PuKKveDvarI022
	HPOMtHrLIzI8ok=
X-Received: by 2002:a05:6000:2888:b0:439:af96:29e4 with SMTP id ffacd0b85a97d-439da86f748mr24365056f8f.54.1773134114169;
        Tue, 10 Mar 2026 02:15:14 -0700 (PDT)
Message-ID: <9ff93ad1-0151-4f37-a6c2-f7dd4197ca84@suse.com>
Date: Tue, 10 Mar 2026 10:15:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 14/14] xen/riscv: Disable SSTC extension and add
 trap-based CSR probing
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>, xen-devel@lists.xenproject.org
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
 <f7b30c80eabd3ba371a0d541e3be023314ec37fd.1772814110.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: <f7b30c80eabd3ba371a0d541e3be023314ec37fd.1772814110.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.03.2026 17:33, Oleksii Kurochko wrote:
> Some RISC-V platforms expose the SSTC extension, but its CSRs are not
> properly saved and restored by Xen. Using SSTC in Xen could therefore
> lead to unexpected behaviour.

And what's wrong with (or what gets in the way of) adding proper
saving/restoring? Also, wouldn't a guest use vstimecmp anyway? I.e. what
saving/restoring are you talking about here?

> To avoid this in QEMU, disable SSTC by passing "sstc=off". On real
> hardware, OpenSBI does not provide a mechanism to disable SSTC via the
> DTS (riscv,isa or similar property), as it does not rely on that
> property to determine extension availability. Instead, it directly
> probes the CSR_STIMECMP register.
> 
> Introduce struct trap_info together with the do_expected_trap() handler
> to safely probe CSRs. The helper csr_read_allowed() attempts to read a
> CSR while catching traps, allowing Xen to detect whether the register
> is accessible. This mechanism is used at boot to verify SSTC support and
> panic if the CSR is not available.
> 
> The trap handling infrastructure may also be reused for other cases
> where controlled trap handling is required (e.g. probing instructions
> such as HLV*).

Hmm, won't you need a more generic way of dealing with traps anyway? See
Linux'es _ASM_EXTABLE(). See also comments further down.

> --- a/automation/scripts/qemu-smoke-riscv64.sh
> +++ b/automation/scripts/qemu-smoke-riscv64.sh
> @@ -7,7 +7,7 @@ rm -f smoke.serial
>  
>  export TEST_CMD="qemu-system-riscv64 \
>      -M virt,aia=aplic-imsic \
> -    -cpu rv64,svpbmt=on \
> +    -cpu rv64,svpbmt=on,sstc=off \
>      -smp 1 \
>      -nographic \
>      -m 2g \

How does this fit with you panic()ing when SSTC isn't available (i.e. the
register cannot be read)? I must be missing something, likely a result of
me not being able to really understand the description.

> --- a/xen/arch/riscv/cpufeature.c
> +++ b/xen/arch/riscv/cpufeature.c
> @@ -17,6 +17,8 @@
>  #include <xen/sections.h>
>  
>  #include <asm/cpufeature.h>
> +#include <asm/csr.h>
> +#include <asm/traps.h>
>  
>  #ifdef CONFIG_ACPI
>  # error "cpufeature.c functions should be updated to support ACPI"
> @@ -483,6 +485,7 @@ void __init riscv_fill_hwcap(void)
>      unsigned int i;
>      const size_t req_extns_amount = ARRAY_SIZE(required_extensions);
>      bool all_extns_available = true;
> +    struct trap_info trap;
>  
>      riscv_fill_hwcap_from_isa_string();
>  
> @@ -509,4 +512,9 @@ void __init riscv_fill_hwcap(void)
>      if ( !all_extns_available )
>          panic("Look why the extensions above are needed in "
>                "https://xenbits.xenproject.org/docs/unstable/misc/riscv/booting.txt\n");
> +
> +    csr_read_allowed(CSR_STIMECMP, (unsigned long)&trap);

Please avoid such casts; see also below.

> --- a/xen/arch/riscv/entry.S
> +++ b/xen/arch/riscv/entry.S
> @@ -99,3 +99,27 @@ restore_registers:
>  
>          sret
>  END(handle_trap)
> +
> +        /*
> +         * We assume that the faulting instruction is 4 bytes long and blindly
> +         * increment SEPC by 4.
> +         *
> +         * This should be safe because all places that may trigger this handler
> +         * use ".option norvc" around the instruction that could cause the trap,
> +         * or the instruction is not available in the RVC instruction set.
> +         *
> +         * do_expected_trap(a3, a4):
> +         *   a3 <- pointer to struct trap_info
> +         *   a4 <- temporary register
> +         */
> +FUNC(do_expected_trap)
> +        csrr    a4, CSR_SEPC
> +        REG_S   a4, RISCV_TRAP_SEPC(a3)
> +        csrr    a4, CSR_SCAUSE
> +        REG_S   a4, RISCV_TRAP_SCAUSE(a3)
> +
> +        csrr    a4, CSR_SEPC

Why read sepc a 2nd time? Yet further, what's the point of storing the value
in the first place? The sole present user doesn't care.

> --- a/xen/arch/riscv/include/asm/csr.h
> +++ b/xen/arch/riscv/include/asm/csr.h
> @@ -9,6 +9,7 @@
>  #include <asm/asm.h>
>  #include <xen/const.h>
>  #include <asm/riscv_encoding.h>
> +#include <asm/traps.h>
>  
>  #ifndef __ASSEMBLER__
>  
> @@ -78,6 +79,37 @@
>                             : "memory" );                        \
>  })
>  
> +/*
> + * Some functions inside asm/system.h requires some of the macros above,
> + * so this header should be included after the macros above are introduced.
> + */
> +#include <asm/system.h>
> +
> +#define csr_read_allowed(csr_num, trap) \
> +({ \
> +    register unsigned long tinfo asm("a3") = (unsigned long)trap; \

Why can't this variable be of the correct (pointer) type? This would then
at the same time serve as a compile-time check for the caller to have
passed an argument of the correct type.

> +    register unsigned long ttmp asm("a4"); \
> +    register unsigned long stvec = (unsigned long)&do_expected_trap; \

Fiddling with stvec may be okay-ish very early during boot. NMIs, for
example, do exist in principle on RISC-V, aiui. There must be a way for them
to be dealt with by other than just M-mode. 

> +    register unsigned long ret = 0; \
> +    unsigned long flags; \
> +    ((struct trap_info *)(trap))->scause = 0; \

"trap" would better be of the correct type. Don't use casts like this, please.

Further, wouldn't you better set the field to a guaranteed invalid value? 0 is
CAUSE_MISALIGNED_FETCH, after all.

> +    local_irq_save(flags); \
> +    asm volatile ( \
> +        ".option push\n" \
> +        ".option norvc\n" \

Shouldn't this come later?

> +        "add %[ttmp], %[tinfo], zero\n" \

Why "add", when you really mean "mv"? And why set ttmp in the first place, when
that's what do_expected_trap() writes to? Don't you really mean to specify "a4"
as a clobber?

> +        "csrrw %[stvec], " STR(CSR_STVEC) ", %[stvec]\n" \

The assembler does understand "stvec" as an operand, doesn't it?

> +        "csrr %[ret], %[csr]\n" \
> +        "csrw " STR(CSR_STVEC) ", %[stvec]\n" \
> +        ".option pop" \
> +        : [stvec] "+&r" (stvec), [tinfo] "+&r" (tinfo), \

tinfo isn't modified, is it?

> +          [ttmp] "+&r" (ttmp), [ret] "=&r" (ret) \

ttmp isn't initialized (in C), so the compiler could legitimately complain
about the use of an uninitialized variable here (due to the use of + where
= is meant).

Whereas for ret the situation is the other way around - you initialize the
variable, just to then tell the compiler that it can drop this
initialization, as - supposedly - the asm() always sets it (which it doesn't
when the csrr faults).

> +        : [csr] "i" (csr_num) \
> +        : "memory" ); \
> +    local_irq_restore(flags); \
> +    ret; \
> +})

A macro of this name would better return an indicator of what it is checking,
rather than the CSR value (which the sole user of this macro doesn't even
care about). Ideally such would also be an inline function.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 09:21:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 09:21:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249904.1547274 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vztGt-0002qX-Br; Tue, 10 Mar 2026 09:20:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249904.1547274; Tue, 10 Mar 2026 09:20:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vztGt-0002qQ-85; Tue, 10 Mar 2026 09:20:59 +0000
Received: by outflank-mailman (input) for mailman id 1249904;
 Tue, 10 Mar 2026 09:20: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=S17i=BK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vztGr-0002qK-Tr
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 09:20:57 +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 70ee2cbd-1c62-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 10:20:55 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4852c9b4158so24060755e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 02:20:55 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48541ad1e4esm62024235e9.8.2026.03.10.02.20.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Mar 2026 02:20:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 70ee2cbd-1c62-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773134455; x=1773739255; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8TONH6FjQzT6zZXhEPqa6FRGF1U7MKYWtnc3/hCLotE=;
        b=XzP2fCD9UemDx0011MOf8Z0KCdWmtKDDLyeHw7Th3GPIez1hK4OJoVCLagr4Y21QAM
         IjdNeQD3HO1TETjpwgmp8cse9klLyHEScRzDNsL3tsENMc1MpmrJYtb9e83Vj4HV1ul2
         Fmhd0UE/saAAk+xDudIEUIeCKIjos4zcN5FrP1Kzh1JIf8jOyO4SeUTZc7F6PYZgwu4W
         Xm25GNDyBeUewXNi1Cz2hSdyVkKbQGEOIjS9os+hFLztDoMbru2oSfQYzo9myAYKCxFI
         pWLitvTh/rPIPXuyaAtiaT9Fng9Z8KH3sqcl/HLgaV/r8JcsyU6GuOJIliBgrryH0dH/
         Cl/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773134455; x=1773739255;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8TONH6FjQzT6zZXhEPqa6FRGF1U7MKYWtnc3/hCLotE=;
        b=Nw0cqTHmB1a5SY2FkLZoc+RtW0H1qkzBv333u/fslTZLG6Kp98+CtEaPWgyIytiO4j
         Zw5q3bJtK3/hiciw9WBbOTDziX1Y+NIugrh1BRlbne985vVVQYfOvvxPNSwezGYDXge7
         VlBquBIge7t6c0dfqDUeVlFA8CvhL6MiiEzGbJ6w5kGbvb5qj+MRnMVAZohAr/GjZmFG
         c30tD1lBgOBAVSi3JZ2ckfXLrR3u1hlBEfr1fowc9/7/F9XFFrwM/qwhSXX3nYxz/81A
         QJdlgdA0xLLLttaebCbr9674tBuwXNaCrmq1av8LcGom5Sj4fEyHwl1nSX0UKydoiZCM
         yKtA==
X-Gm-Message-State: AOJu0Yw3MpgfEo1th9q3k9Dv2YtrrEiKMzKSo8lAUkraBcv13sUXxuuZ
	Qxozi2GGIVlcy4DRxiXiBhA0VvjYbykvsXk0axi7sU9v2uO5o08qJfIiWpdjglVDTw==
X-Gm-Gg: ATEYQzx3Vo39BXG+sAs7SZumPsMgo2JprMwEmjTjZkOflqqcmx27HjEhEiBmZPYx9Pe
	swP7Xem0fBh3S8yqmJr150a+dCyvxiUXjffcy+2oRcNDVz7r9trLBc+96nZ7L9/QJo4qouUc+aG
	dH3reviy2oXdV2d16xpSccIhNm6cLtjr6WHT2fvQmp5rOASgXLTqMZo8lIt2tQOvXOwwzeVKbZY
	rqVUirGs4qk1UNojVBfAlfZQ+qW5ITD5nBN2erSnnA39Q2MZSPO/m4mQVodkh4MT999cjG2ANb7
	BDPV3N679RbYgzZxYfZyvNJsCn6ytAoKbCNrh0EZjaE17Mhd45OQBDLLPiklvyM80E6MQVoHqI8
	nfmlMLkC41NAfp8/LER2isP6Kuhu4311+6Y+ppk0QwHtTCLs+zLO3qMz7Ds2VI51qaRHqKVwFOW
	caKeltxJLn+FupQgcJ786ViReTSGmYdFlnsVoqjcmo4xgBUw2WmDFjKlNXyCPSTD2zUff3Q/c3Q
	FuwKuqKjIBvVT4=
X-Received: by 2002:a05:600c:3595:b0:485:3f58:d84 with SMTP id 5b1f17b1804b1-4853f580f40mr71824205e9.32.1773134454777;
        Tue, 10 Mar 2026 02:20:54 -0700 (PDT)
Message-ID: <fdd0ab2a-54f7-4f80-a896-c6c21e3ad5ad@suse.com>
Date: Tue, 10 Mar 2026 10:20:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] core-parking: shrink core_parking_cpunum[]
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: <29922662-8b95-4a69-9401-11480df59cdf@suse.com>
 <aa_fUpLqaPDal_-l@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aa_fUpLqaPDal_-l@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.03.2026 10:07, Roger Pau Monné wrote:
> You possibly want to adjust the subject, instead of shrink I would use
> "dynamically allocate" or similar.

I've changed it, albeit the goal really is the shrinking.

> On Mon, Mar 09, 2026 at 04:35:34PM +0100, Jan Beulich wrote:
>> --- a/xen/common/core_parking.c
>> +++ b/xen/common/core_parking.c
>> @@ -20,6 +20,7 @@
>>  #include <xen/cpumask.h>
>>  #include <xen/init.h>
>>  #include <xen/param.h>
>> +#include <xen/xvmalloc.h>
>>  
>>  #include <asm/smp.h>
>>  
>> @@ -27,8 +28,8 @@
>>  #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 unsigned int *__ro_after_init core_parking_cpunum;
> 
> Don't you need some kind of check in core_parking_remove() to prevent a
> NULL pointer dereference if core_parking_cpunum hasn't been allocated?
> 
> Callers of XEN_SYSCTL_cpu_hotplug can set fn = smt_up_down_helper, and
> that would call core_parking_remove().  core_parking_helper() already
> contains a check that prevents accessing core_parking_cpunum if no
> policy has been registered.

Because of this check, cur_idle_nums can never become non-zero when the
array couldn't be allocated. Hence core_parking_remove() will be a
somewhat expensive no-op in that case, with no deref of core_parking_cpunum.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 09:53:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 09:53:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249919.1547282 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vztlm-0006u5-Qe; Tue, 10 Mar 2026 09:52:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249919.1547282; Tue, 10 Mar 2026 09: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 1vztlm-0006ty-Nm; Tue, 10 Mar 2026 09:52:54 +0000
Received: by outflank-mailman (input) for mailman id 1249919;
 Tue, 10 Mar 2026 09: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=S17i=BK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vztll-0006tq-DV
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 09:52:53 +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 e76e3e7e-1c66-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 10:52:52 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-439cd6b09f8so4298063f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 02:52:52 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dae2b9ccsm34080319f8f.19.2026.03.10.02.52.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Mar 2026 02:52: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: e76e3e7e-1c66-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773136371; x=1773741171; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cQhj+ZqfJMzx6WmErb/09tHVtJEKFVNJ++SvDsmyi1s=;
        b=Do7c1ws/oVvNMslfXgjMg57ML1F3lJIPhTjZSjJRtWwHgWO98Tqdnu0ywgj5F1pGrP
         PSZCJL+sjAzt4LaNDjz0x9Kee+o7nTvrG6ezihL7r17sSF9j8KWfleRuw72+Gh3PRBuc
         FzMP+5NNAKvt5NIOMx2ubXaK2AGiMZ7fXdWIuu3+l2agzUPTwu3FYXrXUUXpWqHY63Gx
         8qmds77n6Kjd91XamE3nQ2fTaFHJq2bT0jtjlSL/PGFyx/91EuO79C1q27i+RmhEM3fS
         xdPKNFqFUMK+uqMaXmFU4YeQBXRQX2Ci+a2WVuZTDEN1zwljlED4Kdzae1cb4OfLwPe9
         CAfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773136371; x=1773741171;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cQhj+ZqfJMzx6WmErb/09tHVtJEKFVNJ++SvDsmyi1s=;
        b=oMdCQ5tvukWnyyTBPMtN7qCdW4ItmR+NnTHyEJ+wwaXFsA+0cSZJuLEszERo0O+xOz
         1FZozH0nHYMI+bGl7/TgB9DGI2RiQ05kI2Zqv+ow50Jfb3IuCCck4T+vPKQ4DrrL6+Z1
         lhGXnWTgyTZD0NeZ1DiKt52k20kc4R1suHOnbQ++llTdJTUAhTsGdapv+FR2cz95C02t
         a36wANodNKvvEfGFcIoT09Oyq2dTbOk4TxoVfiMf97ft3tjPDPSqw4yd5WejobjtsGgk
         lSMf9bd+1CCWQHCbQLt9SHr0NkNsgqXFIMQtMMcLAqKUClYjXaHJJ/y2tC9uQT5qEVkN
         tO+w==
X-Forwarded-Encrypted: i=1; AJvYcCWCpGQiwPeYHEI8vC/46NNZW8l5/Co3VcsVrBh/W1fzRwnj+dXpOeF1Ip8t2xPBoGO8ke12XkOl8lc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzKG4rFvooBmtPiLF4guJj7+EH5zyv6+a/s2o7dvJvbi0ux7r+7
	CKhrXr/Cp5hiwehhXDacc80s+Gh8H/Aqk464KKSFbH6yKuqqpAylOgSXzxCaAJEfxQ==
X-Gm-Gg: ATEYQzzL4Iqm6rjfrKc85VGBtlJ7vMSp9W2ZGXoneYC/pWF21jmbydVMefii2rmDCqn
	89cWiaC5NtDGNNXmSJ6Hk9BWMHwup+plXSDkq3LKCETn2mK/DoBTuuXv6PWQLgkgArfQW4tMLoH
	/un6Az/XWKMu2LsC20Pn6QA1JhW5Md11QRNN7YDTSEfToWWFa9Ocd4so5E3/VIiPxULPPbJ700O
	+kXQdr7D/SNVjQ67fSuXY+n1hHXFqAftzjS/+gKLUiF8Yn9Zefn266saoGD8ozg8FWFnqa6X7mK
	ePa5tD7uAYGr1uLuYv0l+4CYuDgHTfv+bR0+oZ2O3AePVwcWRuOIEu/uU4A2fnJ8NqP6Juib2rQ
	tIoGNu+vpV/gPtg7bbe5kDMZNeVWGCbeL7IjUp6viXmjm1hxSkLSQ7OoZBzA8BqE6uajOibA6mG
	6lPmeoxdyYUgZjIBiYMyJBPsjt9Hs6Rt2YDHIVOJZY/6NxtwWXrPnpM1zfXNLFof4TIUA9P6h48
	EGfarKqpIcvsqc=
X-Received: by 2002:a05:600c:c107:b0:485:3eba:ab96 with SMTP id 5b1f17b1804b1-4853ebab021mr64815165e9.3.1773136371546;
        Tue, 10 Mar 2026 02:52:51 -0700 (PDT)
Message-ID: <a63a2d5c-dd39-45d1-88e4-18f208be4582@suse.com>
Date: Tue, 10 Mar 2026 10:52:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/6] x86: Remove x86 prefixed names from mcheck code
To: Kevin Lampis <kevin.lampis@citrix.com>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com,
 xen-devel@lists.xenproject.org
References: <20260304195350.837593-1-kevin.lampis@citrix.com>
 <20260304195350.837593-2-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: <20260304195350.837593-2-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.03.2026 20:53, Kevin Lampis wrote:
> struct cpuinfo_x86
>   .x86        => .family
>   .x86_vendor => .vendor
>   .x86_model  => .model
>   .x86_mask   => .stepping
> 
> No functional change.
> 
> This work is part of making Xen safe for Intel family 18/19.
> 
> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
> ---
> Changes since v1:
> - mcheck_init() check for family != 5 instead of 6 and 15

Imo this wants splitting off, to have its own description. In particular, there's
no 64-bit CPU with family 5, afaia.

> @@ -564,8 +565,7 @@ bool mce_available(const struct cpuinfo_x86 *c)
>   */
>  unsigned int mce_firstbank(struct cpuinfo_x86 *c)
>  {
> -    return c->x86 == 6 &&
> -           c->x86_vendor == X86_VENDOR_INTEL && c->x86_model < 0x1a;
> +    return c->vfm >= INTEL_PENTIUM_PRO && c->vfm < INTEL_NEHALEM_EP;
>  }

Wouldn't this better be

    return c->vendor == X86_VENDOR_INTEL && c->vfm < INTEL_NEHALEM_EP;

similar to how you have it in mce_is_broadcast()?

Independently there's the question whether this is correct, seeing that
INTEL_CORE2_DUNNINGTON > INTEL_NEHALEM_EP. But if a change was needed
for this, it would want to be a separate patch anyway.

> --- a/xen/arch/x86/cpu/mcheck/mce_intel.c
> +++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
> @@ -711,10 +711,7 @@ static bool mce_is_broadcast(struct cpuinfo_x86 *c)
>       * DisplayFamily_DisplayModel encoding of 06H_EH and above,
>       * a MCA signal is broadcast to all logical processors in the system
>       */
> -    if ( c->x86_vendor == X86_VENDOR_INTEL && c->x86 == 6 &&
> -         c->x86_model >= 0xe )
> -        return true;
> -    return false;
> +    return c->vendor == X86_VENDOR_INTEL && c->vfm >= INTEL_CORE_YONAH;
>  }

Is anything below Yonah 64-bit capable? Even Yonah itself isn't 64-bit capable
afaics, so perhaps again this check can be simplified in a preferably separate
change (possibly folded with the P5 related adjustment above)?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 09:56:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 09:56:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249928.1547291 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vztpB-0007SF-8v; Tue, 10 Mar 2026 09:56:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249928.1547291; Tue, 10 Mar 2026 09:56:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vztpB-0007S8-5R; Tue, 10 Mar 2026 09:56:25 +0000
Received: by outflank-mailman (input) for mailman id 1249928;
 Tue, 10 Mar 2026 09: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=xDYK=BK=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vztp9-0007S2-Qr
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 09:56:23 +0000
Received: from SJ2PR03CU001.outbound.protection.outlook.com
 (mail-westusazlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c001::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 61c549e5-1c67-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 10:56:18 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by SJ0PR03MB5533.namprd03.prod.outlook.com (2603:10b6:a03:28e::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.18; Tue, 10 Mar
 2026 09:56:14 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::20d8:6571:d4aa:166c]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::20d8:6571:d4aa:166c%4]) with mapi id 15.20.9678.024; Tue, 10 Mar 2026
 09:56:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 61c549e5-1c67-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ASc4FhDSWb36YGyDh8oet+7fcVfQQvpDA4JoAbPzTnwSJJgAAMBAheiM7beMvjPlHERnzOWkefgxk0w9ZhcsNUKdzl+URzJY+4OgPlz//j20NjQp4fixFl/30vCFh8TFTK26HXwXl3XRc6ZYloulZDdHPOK6WnFHKUcEUGACEu8Ru1ZTeJB0cCKtNANAb3UgKBykwaqVWzyI76Ml0qrYsdaS0AcFFWFH8ej93xsCw7DfFt82ntHaU738hPSqa6bNove0iIKNAZ9A0PE9++lGfyAiP69yBdP6FWt550X80mi5lCpe43g7RLWnQH1uEYHbxlvlI52IIHj8jP4vgUeqow==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lEbQUuU1SGwprGIKvAjqcdRp4avOR0fy/79RpehbaYk=;
 b=xDBx3du19HL1q1jq4MpDv570OJK6+iDT3nS4tbGLxQkqhhfGnWIV4ao3nH7wHoPFwKW49SRgcQWSfmbmQ9g6lpEuTgpZenI78UpUSirCGKwrv4X7Cje/5ou0raYY1/TrCeHoFXk3Xup0zBQW4QgeMwoWDSce8j2+4cQVpGQKvo/+0xJWPiamFabkesdHzz7UZ2QaLKXZemS2bGhBHF6a9UV/vTKcf3mp957wRaKHowO8rrWfJJY8f5YUhnNPcX6Ss6KDseE/5OS0RGlYTzvRqzt7EKV6/9ohTmrp1+QrW8fiBZbMsqzn4x4EHlY18Ha24HsueLBij6R2yQCfExB5KA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lEbQUuU1SGwprGIKvAjqcdRp4avOR0fy/79RpehbaYk=;
 b=l/Wck4KrtG8teaLBZdYB3PhMp5NBrzSRfs+cKJ6cI8hRa1AdiY8ytOqotZxBQVUWoh/nOl9oQk020Y2mECXWPm6lrpm6dTVTvRdTPVG7ZiA1+0bkPStTkxewdK30y2AxEhTHpzddj3yMpaWeAiZwGBrYxMljDATM0Sh0WodWtmc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 10 Mar 2026 10:56:10 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2] core-parking: shrink core_parking_cpunum[]
Message-ID: <aa_quhtlfKwozTQC@macbook.local>
References: <29922662-8b95-4a69-9401-11480df59cdf@suse.com>
 <aa_fUpLqaPDal_-l@macbook.local>
 <fdd0ab2a-54f7-4f80-a896-c6c21e3ad5ad@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <fdd0ab2a-54f7-4f80-a896-c6c21e3ad5ad@suse.com>
X-ClientProxiedBy: MA3P292CA0013.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2c::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_|SJ0PR03MB5533:EE_
X-MS-Office365-Filtering-Correlation-Id: 6be3b59d-df4e-4095-81b5-08de7e8b4423
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:
	s/yFDkKabxeewcx9yi69GEQFgVQI6Tdn6/KwIHpm8K7jrhpeStPBfRTe9DldwvNi1NEgFTcqJ+w+tBEMkNodrsEqt+vr4lhSJ1edQrmfNR2ZMIkLdhr/E7vphe+j5qSW3k3CoE9KE92I5Jkx1txoMEoUQ4O17uYtg2rS5QFZPKu9DqnHtl631BCcigqyxTHFYnxdwGbffEXBzipKhNjwKCC7Cfyg7pFy78SANQ3nzAhzeeHuf1zEhzJrh5bcss/ynkBFqIeznEEnGJGpr639GPMxkAdUbOlc/Hv/XE3Cn8AjJBXAFGwkpg9GtbBPGZ+PO6Pq7dO52XJHkx8Nv1HhKceBfyzzWdvwjUYSfL7m0phosPjCrFJ6Yx88/4AkKkyzZupgF2CliDzMZFVoZAEABoUOr8cg1a9/j35pvOcz1GtouQ+XZ+mk0IbAJScbRT+PjFLEvPBb1huEZAjHa9TfRQAGC7+kX2L9xEuVnRxoQGNcqaDQ9wOfQlVj5358Tewfz3TUvz26/bd4by6SMYw4vs8wEyZ/ma3K0hbGJW1p1tOWMl6k420vQ1H5oFadI3HRricVSLD4zKcLXeEKRci9I5ns7BwK+H+TsGhCkmvd3z2ZYsE1ogtkZ8aE1x02MrYwizpYstjhRX/KMrHlu07pgLcBeS4AqVrI1fEC8w/cAqlFFYYTyYUw1m6kuBAfZ/k57oG+5Zx03a+wrhNgPJQ2eQ0+RhoRkVFR7SZLC5uhb9g=
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?ckxxampnRlJoSnNyTzF0SnpyNSszNVhwNWd6YjJ4WFlySWZ5UFI1T2ZsSEdt?=
 =?utf-8?B?QzZLZlVua1N0NzN0SG9rS1k5Z2l0UlVKd1RmUlVrMk0rUFNSNnJrSWhoeVhZ?=
 =?utf-8?B?enFQTHpQWk0rNXI4dE8wTzhWQkdDcTJ4R0hTYTRUSENGVUQvYzNyT1pWU2Uy?=
 =?utf-8?B?TE8wMXlDYWpCK1hhVVBQZ2RoWmZDQms5TWIwRG5RTnV1SFlkSFZ1V0xnT3BN?=
 =?utf-8?B?c21DWlk3NWh3b0FCcmxvbU05d3pJbFhZZzdzUDVGcEF1MllSSUVHaGdrUGty?=
 =?utf-8?B?cGhYdWVwa2NWcHZKc0U3NGFsbG9FVGZpQ1VuaVF0LzB6TTU3djZUT3Z6Smx0?=
 =?utf-8?B?YzhRSFFDdHQyNUFET2drdEdrMWUzRFRvSzN0MWlIVEhwRjRvOVMrcncrMGNV?=
 =?utf-8?B?UmluZjBiMVA5RmdNTUlwWG1XcUZidUtvOFB3Q0NrMmZEZDBYZ0cxNHFPT3RS?=
 =?utf-8?B?Q3M3UkxJUEVJUUlmQmlxZXdyV3ZRaTFWK2VKcHdyT0x0d1JmaVZtcEd6dlBv?=
 =?utf-8?B?Zm9LN1A4Y0cvT1oraitKUEw1MXVldW43bFdFTVJSR2szdjNqbXk1Z25tUXZJ?=
 =?utf-8?B?MkZsVlJWMmozSFhxaUswWDk0ZWpGNG1iV0JwN21ObnJSYjU4M0VDYXh0MWdz?=
 =?utf-8?B?QWFyczNlRDhaK28ydE1iRFRabzZaNmhSUmUwcTZlWCtXeUlGY1doSGxhZ2tP?=
 =?utf-8?B?TmM5ZlRvM3o3dHFLa0hpSjhuS0ZaajhIUmxVbmVWVjRqVUl1VkUyVkxlMXF0?=
 =?utf-8?B?WlMzdjMwekxza09HUlpKTzBHdktTUFB3MlpKRytSSjRacnZBQTFXY2RmekZr?=
 =?utf-8?B?dzl2ckdHMjRITG5nV3NxQlR4YzRIVlBEUFE4M091TjIvNzlhUW5FOXRnY3Aw?=
 =?utf-8?B?Q0JqYjlMZUZ3NjRnRDFwaWhoSXhkZjdlTmtIQVNCdlptVmVGUW9oTjdqMCtL?=
 =?utf-8?B?YXN0cGVRWGQwWngyOWlmOWhXVkVUbHRqWGRwU3FXOVN2TUt3NHFEQWxvanNF?=
 =?utf-8?B?amdXRGMyTUVrN1g3L0h3TkM1bHhSMUx0MldQaUhOSyt0V0Y3cnRZbkQrS1pp?=
 =?utf-8?B?TGw4Tmo2L1NUWCtqc1o4bHljR01ra0RBMlNBS0pZQWFlQUllZWFMS2NuaTRB?=
 =?utf-8?B?UTRLSHdESzhNZ2hPc2Vpb09xaGd3MlVlQUtaOExhdlROcCswSlh5djlZSjA1?=
 =?utf-8?B?MHVEMTVVbm5iZ1BSaDB6RUZvUml4SVJiaUFEZVRCOGdsbjRNYTI2b0R4b1FD?=
 =?utf-8?B?bm16WmtTT1FxNWJxMk1hSTlvMUtZNU53V2pBajlRZGxpUzl6dU10S0FBSE5T?=
 =?utf-8?B?R0lDYi81a2NueVdVUHhhaUtnWWwwWmJYYkdVS2tRUENxeTJYWi93WHlleEJS?=
 =?utf-8?B?bGk1YnpKY0JhS0V5QWFBU0I0aDJ6YWJNREFyZ0Jhd1E1S3JMQi9vQVljc3pD?=
 =?utf-8?B?ekNhRDhSNXgwcWF0MlhORCtOS0htZjdORjN3RTdKbTlRMWdiaENWYkVlMkJS?=
 =?utf-8?B?d2crVWNNalM1MjJYUDVteHN2ekJXWjMzWFJJb1kyOVVJbWNrZ2REVm1xS1NX?=
 =?utf-8?B?Y05yWENLd29MMmlMRVdwZ1AzTllXQkRuUERMUDl6aU0yWjJJNVJ1bVFXMlZs?=
 =?utf-8?B?TEVydHhHWDJ4MW81RlJSYURabzhocTZ4ekV1R0tSSnhVaCt2akVpTEwwZEFz?=
 =?utf-8?B?MkcvS2k1dWhGRzhmTForMzJmUlFtSzVKRFk4OXVIYmtITFkxNi8rL0dSOEdt?=
 =?utf-8?B?SFhqamVEVzdWWFo5RGxtZ3dQTUxnLy84ZWl6bEZjb0tneGZacW5qVW1NNVpD?=
 =?utf-8?B?YTNVVlgyOUxnRjRZZnl3Q3NhdU9OUXhMdGFQcXNBRGkySk9nUW4wRjVXYnFI?=
 =?utf-8?B?NDdCV2xjL0cwc1hJa3V4STV6bmxOVE9Sd24vMWhKeCt5ZTlVNlJkRHNjY1Vy?=
 =?utf-8?B?bGxBYTUralcwV0ovaHRkTFZ2aTFZVG54L2xDcDZJeVY5K2dsUExZeTUyZlZq?=
 =?utf-8?B?cHpWOTdmemNVelJ1SHVFVGZwSldVMzB1TXZGaS9MenBFa2ljVW1jR1ZCS3BL?=
 =?utf-8?B?cWk1dkx4Q3dPMG5wbUFmdFVJbTAvNEcxVWloVTRubWNzQ3F0alV4dnNobzd2?=
 =?utf-8?B?cmFtYy9PTENpRUFmQTI5b1lkaCtKTFc2NFdmdWtDcnF5Q0FvREQxOGs1dVpk?=
 =?utf-8?B?WlkzUW9TSE42TlZ6V2xlbFJTWHZ0UDRDM21NZFpkd2l5RU9iTWppNXlwYWJm?=
 =?utf-8?B?V0pOcVJjNFJ6ZVNYSHBNbHUyRDBzMnBQb1pjSFdOdEljLzM4eGMrcjd1YklY?=
 =?utf-8?B?bUpjU3ZncUk4Y3NIeWJTZXRLMUFHalVGbHNWdFFiVVZSRjVuWlFhQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6be3b59d-df4e-4095-81b5-08de7e8b4423
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2026 09:56:14.3733
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: tMrFqNpV3PZP+yHQx+I1/wmxvpebgszODQElbJuQ+1ey0DTZwtwyL3siVu90yDs77zHj3+FHhcsry+ObsuVoOA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5533

On Tue, Mar 10, 2026 at 10:20:53AM +0100, Jan Beulich wrote:
> On 10.03.2026 10:07, Roger Pau Monné wrote:
> > You possibly want to adjust the subject, instead of shrink I would use
> > "dynamically allocate" or similar.
> 
> I've changed it, albeit the goal really is the shrinking.
> 
> > On Mon, Mar 09, 2026 at 04:35:34PM +0100, Jan Beulich wrote:
> >> --- a/xen/common/core_parking.c
> >> +++ b/xen/common/core_parking.c
> >> @@ -20,6 +20,7 @@
> >>  #include <xen/cpumask.h>
> >>  #include <xen/init.h>
> >>  #include <xen/param.h>
> >> +#include <xen/xvmalloc.h>
> >>  
> >>  #include <asm/smp.h>
> >>  
> >> @@ -27,8 +28,8 @@
> >>  #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 unsigned int *__ro_after_init core_parking_cpunum;
> > 
> > Don't you need some kind of check in core_parking_remove() to prevent a
> > NULL pointer dereference if core_parking_cpunum hasn't been allocated?
> > 
> > Callers of XEN_SYSCTL_cpu_hotplug can set fn = smt_up_down_helper, and
> > that would call core_parking_remove().  core_parking_helper() already
> > contains a check that prevents accessing core_parking_cpunum if no
> > policy has been registered.
> 
> Because of this check, cur_idle_nums can never become non-zero when the
> array couldn't be allocated. Hence core_parking_remove() will be a
> somewhat expensive no-op in that case, with no deref of core_parking_cpunum.

Oh, I see, both loops in core_parking_remove() are bounded to
cur_idle_nums.

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

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 09:59:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 09:59:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249937.1547299 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vztrt-00086G-LC; Tue, 10 Mar 2026 09:59:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249937.1547299; Tue, 10 Mar 2026 09:59:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vztrt-000869-I0; Tue, 10 Mar 2026 09:59:13 +0000
Received: by outflank-mailman (input) for mailman id 1249937;
 Tue, 10 Mar 2026 09:59:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=S17i=BK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vztrs-000863-4U
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 09:59:12 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c92d1449-1c67-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 10:59:10 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-439b2965d4bso7424736f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 02:59:10 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dad977f8sm34419385f8f.9.2026.03.10.02.59.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Mar 2026 02:59:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c92d1449-1c67-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773136750; x=1773741550; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qTdWkCNeBclAJHTd440+WKj08O236iton84b7CEgDhg=;
        b=GTAVKkZTRMFi9tYJvgoigzjFI+U9g2cgXLdYUOiDzsM94/+9K7CRHt5Uo904YapJ0u
         pY6c1cvTkxXq5FuYKatjQVni0KkSzj1wom2ih6jhw9pGp16hD5zFQVTaG+rYGApjTw6+
         mRkHUSNe/SaWe+Zg4hpfUhm0x7md73KEsv2NBMRub9uMwHJrdBM/NHAl1Wk18nwSm1C0
         QvBbNpP40nlHxs5FNaS63xkKKw7l2cNXxV1WaqCPjxS9NCanEIU+eLnMl9sTYPu/Swzt
         w7okz8JcwXb8OE4c0hv3M6ZjLmuNGvirzTzCFPJ16JNec2WPstbAaVmHy9S/DnD9hC+v
         0TmA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773136750; x=1773741550;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qTdWkCNeBclAJHTd440+WKj08O236iton84b7CEgDhg=;
        b=GClrN/B//LQRrJVpFVEOB8byRXNMKoMwPzW6PK4vgIcX4gu4ejY4i/4g6MOEysO14Q
         LYrc2HE8731Rwi+O6pqceCDhv6AAKq6TPm4+yBHc5KpkEz3MID2Kt/ORnE7DbD+py2EY
         g6tTxkvwQn4kh8i6aLEi8dAsqGHL6wTmimCPA7EXna9JZ7AOZ5lnxzIv0TjIqwBj7mpS
         hY3nonFinXu9hbBbdqKl/Rv5Osf+x+gB+o/YgAUR50K5T5hYKIfYzpXTVHWfQQLQAALu
         qK0Yvl7Mahdr+7FzHAmjkvEoHNrFCPsbriVnzMlSDfgJOiTjmrJ9X3VzE4aIIt0hmmYB
         cZlw==
X-Forwarded-Encrypted: i=1; AJvYcCVa+WefBrHLkB2iYKKY1GKIwdcJV3JGhhMO6cz/TLGMvwFUzePY0G5bvmGUD4eAARg1DR7rwWxenlY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxg+xwxdW4lR6GaWOhGI6h42oLvGz72cxS5r2OS9E3oa7YYxQok
	e8+cEpgcj7i8t2aR0LePTmghAy3z9iXdj6ZNImH6zUvbEGfPo31vf7M9aTLW+kZAAQ==
X-Gm-Gg: ATEYQzzFbxGDIL/984jeN61AoyXaHzbUt8E0u2g81Jc+ZRFucUItbwNrs2XibDMPluX
	PNogLnfnhsEF0wLCZfe6+GVBgwQPIgXhAvJrSdmgO/sK6VF264WWJXH2jOxEsbFDdatzD2HzJJ1
	L5U8uKeMOApRh5nM0dKiwFHmahDv3W8BWO+eGP2/uZ4k2BQJfZPbTOWqk+cMGIyO6VXP7baCql4
	2JRi03PCRDDZcZz+wV/NAo9SsUopwoQH8yY6IFfRZv05d+BhWQ9pjWcclfZ/wjNBo4vw9uuL+vL
	OPi4UnR5a8siV0I4NUNiUa1U8cf84n9ewfTJe+F4iMgafaFd7k+V/8JIq79nWPrYWyPKHhtasOd
	uWl5gUf9lE9l9LxBvFba7tHGjvGheg4VT/HMkCyZtdG/VOC9dZpbYm6UjHwJvrod8Zju7sKT7uz
	5LtSo8LNXJp3c08KCIWIZG/RVPeGwiu1Qe4Q/U3mf0YBvxDEWILrcVIP4zI4+ll2p+qsxQ+eSwV
	OzjDPMefBcmhbs=
X-Received: by 2002:a05:600c:a115:b0:485:3b5b:eb8 with SMTP id 5b1f17b1804b1-4853b5b108emr88886155e9.26.1773136750263;
        Tue, 10 Mar 2026 02:59:10 -0700 (PDT)
Message-ID: <ccffd248-0b64-404b-b531-918b34a01b15@suse.com>
Date: Tue, 10 Mar 2026 10:59:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/6] x86: Remove x86 prefixed names from acpi code
To: Kevin Lampis <kevin.lampis@citrix.com>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com,
 xen-devel@lists.xenproject.org
References: <20260304195350.837593-1-kevin.lampis@citrix.com>
 <20260304195350.837593-3-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: <20260304195350.837593-3-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.03.2026 20:53, Kevin Lampis wrote:
> struct cpuinfo_x86
>   .x86        => .family
>   .x86_vendor => .vendor
>   .x86_model  => .model
>   .x86_mask   => .stepping
> 
> No functional change.
> 
> This work is part of making Xen safe for Intel family 18/19.
> 
> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
> ---
> Inside do_get_hw_residencies()
> there is an explicit check for `c->family != 6`
> Do we need to add family 18/19 support here?

I think there is more stuff to add there, as the last addition looks to have
been quite a while back. But "yes" to the question. However, ...

> --- a/xen/arch/x86/acpi/cpu_idle.c
> +++ b/xen/arch/x86/acpi/cpu_idle.c
> @@ -178,10 +178,11 @@ 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 )
> +    /* XXX Does this need to be extented to include fam 18/19? */
> +    if ( c->vendor != X86_VENDOR_INTEL || c->family != 6 )
>          return;

... I'd prefer if such a comment could be avoided, ideally by covering the
case (in a separate change).

> @@ -1059,8 +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 &&
> -        (c->x86 > 0x6 || (c->x86 == 6 && c->x86_model >= 14)) )
> +    if ( c->vendor == X86_VENDOR_INTEL && c->vfm >= INTEL_CORE_YONAH )
>              flags->bm_control = 0;
>  }

Again a check that likely can simply be dropped (in a separate change, possibly
together with those other droppings suggested in reply to patch 1)?

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

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 10:27:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 10:27:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249946.1547308 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzuId-0003ia-N4; Tue, 10 Mar 2026 10:26:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249946.1547308; Tue, 10 Mar 2026 10:26: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 1vzuId-0003iT-K6; Tue, 10 Mar 2026 10:26:51 +0000
Received: by outflank-mailman (input) for mailman id 1249946;
 Tue, 10 Mar 2026 10:26:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=S17i=BK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vzuIc-0003iN-CY
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 10:26:50 +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 a4df623b-1c6b-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 11:26:48 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-485445e80bdso3817825e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 03:26:47 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dad97abasm31852455f8f.10.2026.03.10.03.26.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Mar 2026 03:26:46 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a4df623b-1c6b-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773138407; x=1773743207; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sXZ/Do0x+4Oc8KRITWR6W9eSNAsHpSr+C2VoN330X78=;
        b=eIcm9j5YuIEo+nWYD+2OgurBX/GFT7mZOsqMY+orZ+5YKzwom7aBHXAng1uU+wdjn9
         DiZIvCis/kj57j686tEteD6dll3eAeujkHcz+aX6zJ7qec30pWBASNLT6sgwbo51KFsI
         2oYpjA31FLVNWqGAcTMIXsZXOFZlT6JSmHtnZP7HqOCSkQjOR3gFNpLAEGO8AMxG/OWr
         oKjY0Hy5RJ7EusoiCpR5zdAoHwE9/Cch6h5OOrHkBw7ZR0r7umZjgU1EK6+JDh9o+DQX
         F8rSudZU6muSbDD+5s5ygXy3KooJtbVGWDymM6X8dx1VAfbvzfZBmhghARUoGQJO5QFH
         l4MA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773138407; x=1773743207;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sXZ/Do0x+4Oc8KRITWR6W9eSNAsHpSr+C2VoN330X78=;
        b=N5ABbzUsJrlOlEBDCNpQ9IzTR6AtezQDHjFroe3scOQpmOC6G8/7Rlw3E/qrVG/+J2
         995ZqRTbk9eJBaPJXQn1yJTL296hNPm+8bsS4DnUNZPjUFEuf4qDAUTT+/U/M7DY/SMb
         mgjEx367vSbZLkQ4vyYVQw0otS7eTMkANYDQ7zU9u/WRudS4+zx8EyhsZpLy9QyPLriF
         J9UvUVzhg/WC+BfUyXttbkTJ1D61Zs1w/C2Y3sS6VcRWXpy3UlBxs9PnMmVqb6uzSNyk
         mWPnhehG43ec+GjfPgEKuX03DqOqAYwEDRoCzkfSu4yCW1MFqdACP+1iLQCUidmTp9zH
         6Muw==
X-Forwarded-Encrypted: i=1; AJvYcCUsqQA/vZ2/Swoy089yTLKcPidj/D4U3R4hSFNM2qmXRsxBRBUGK1riHixIQI6zslCsO7T+xO1Z+1s=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw1x7Zu5Yo9den8CNZwNiDGWuu8VgIJi3kI0CVEmJiMTTE+Oadp
	+DIXiy+kfBcc/BW69i6JbD20b3yhZJfdSw9PopDbaYvPyLZOy20b6Gn8HQofGL5OsA==
X-Gm-Gg: ATEYQzyOm+WDP2cQgI32Y/1GABUO7ZO3OzOKDRQF+vlJwKyyMk+ZZoziZEuhGdPIRw1
	9ERLEa6dIr+6/Tg+2FU9Or+Mxgi8Rq8f+w+9IWM31s7xm9baANKj5tUvYTTx7YwMRn2Ec1uZrXh
	o4apIBQRpTin0/PvKg/Ep6U+qgeyHm9Girgtg7JnXdhe0tmlCKNlOfFMBfkrVFIpTBWpsmHUWJW
	utmLtLHEvyg785OBShXgUQ0omNJJFWtyK+cG26pXrgH4Hss+HaZA1t+czSLYXbXVtgoZrjeWtuL
	EeARew2kdz6lUF3iP9cSggPYFxUK3r1/zmX0OMTOjM/t6msgkevOHKqFKDhYU5mLVweglk4XgtQ
	RKu06LH3l6CHiiqoKVn6xDzqH3E5CFEMBv/uuipNYkZBUvri40SmhSXnCBDcsPR0TdHE7bmyk4s
	wdWwRUa3YRn204pDaQ+cRqvXc40ik4SLms2YvQdvAzSAsszmGtGqcX+Zn5+/bNFT6Mx4s9CQP8j
	siJmsFTisDHOoA=
X-Received: by 2002:a05:6000:2008:b0:439:d73d:95e with SMTP id ffacd0b85a97d-439da66a476mr25320352f8f.27.1773138407218;
        Tue, 10 Mar 2026 03:26:47 -0700 (PDT)
Message-ID: <4a5018a2-9867-432b-9464-874532241316@suse.com>
Date: Tue, 10 Mar 2026 11:26:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/6] x86: Remove x86 prefixed names from hvm code
To: Kevin Lampis <kevin.lampis@citrix.com>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com,
 xen-devel@lists.xenproject.org
References: <20260304195350.837593-1-kevin.lampis@citrix.com>
 <20260304195350.837593-4-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: <20260304195350.837593-4-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.03.2026 20:53, Kevin Lampis wrote:
> struct cpuinfo_x86
>   .x86        => .family
>   .x86_vendor => .vendor
>   .x86_model  => .model
>   .x86_mask   => .stepping
> 
> No functional change.
> 
> This work is part of making Xen safe for Intel family 18/19.
> 
> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
> ---
> I couldn't find any information about these Intel family 6 processors:
>   model 0x5d: /* SoFIA 3G Granite/ES2.1 */
>   model 0x65: /* SoFIA LTE AOSP */
>   model 0x6e: /* Cougar Mountain */
> Should I add them to intel-family.h?

We should keep that in sync with Linux, I think, so "no" unless you mean to
first have respective entries added there.

0x5d is listed in the SDM, so I'd recommend keeping the entries (using IFM()
directly for the time being).

0x65 and 0x6e aren't listed in the SDM, so may never really have hit the
public. Respective cases can perhaps be dropped, but such dropping would
again likely better be done in a separate change.

> @@ -3073,71 +3077,71 @@ static bool __init has_if_pschange_mc(void)
>       * IF_PSCHANGE_MC is only known to affect Intel Family 6 processors at
>       * this time.
>       */
> -    if ( boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
> -         boot_cpu_data.x86 != 6 )
> +    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
> +         boot_cpu_data.family != 6 )
>          return false;
>  
> -    switch ( boot_cpu_data.x86_model )
> +    switch ( boot_cpu_data.vfm )
>      {
>          /*
>           * Core processors since at least Nehalem are vulnerable.
>           */
> -    case 0x1f: /* Auburndale / Havendale */
> -    case 0x1e: /* Nehalem */
> -    case 0x1a: /* Nehalem EP */
> -    case 0x2e: /* Nehalem EX */
> -    case 0x25: /* Westmere */
> -    case 0x2c: /* Westmere EP */
> -    case 0x2f: /* Westmere EX */
> -    case 0x2a: /* SandyBridge */
> -    case 0x2d: /* SandyBridge EP/EX */
> -    case 0x3a: /* IvyBridge */
> -    case 0x3e: /* IvyBridge EP/EX */
> -    case 0x3c: /* Haswell */
> -    case 0x3f: /* Haswell EX/EP */
> -    case 0x45: /* Haswell D */
> -    case 0x46: /* Haswell H */
> -    case 0x3d: /* Broadwell */
> -    case 0x47: /* Broadwell H */
> -    case 0x4f: /* Broadwell EP/EX */
> -    case 0x56: /* Broadwell D */
> -    case 0x4e: /* Skylake M */
> -    case 0x5e: /* Skylake D */
> -    case 0x55: /* Skylake-X / Cascade Lake */
> -    case 0x7d: /* Ice Lake */
> -    case 0x7e: /* Ice Lake */
> -    case 0x8e: /* Kaby / Coffee / Whiskey Lake M */
> -    case 0x9e: /* Kaby / Coffee / Whiskey Lake D */
> -    case 0xa5: /* Comet Lake H/S */
> -    case 0xa6: /* Comet Lake U */
> +    case INTEL_NEHALEM_G:
> +    case INTEL_NEHALEM:
> +    case INTEL_NEHALEM_EP:
> +    case INTEL_NEHALEM_EX:
> +    case INTEL_WESTMERE:
> +    case INTEL_WESTMERE_EP:
> +    case INTEL_WESTMERE_EX:
> +    case INTEL_SANDYBRIDGE:
> +    case INTEL_SANDYBRIDGE_X:
> +    case INTEL_IVYBRIDGE:
> +    case INTEL_IVYBRIDGE_X:
> +    case INTEL_HASWELL:
> +    case INTEL_HASWELL_X:
> +    case INTEL_HASWELL_L:
> +    case INTEL_HASWELL_G:
> +    case INTEL_BROADWELL:
> +    case INTEL_BROADWELL_G:
> +    case INTEL_BROADWELL_X:
> +    case INTEL_BROADWELL_D:
> +    case INTEL_SKYLAKE_L:
> +    case INTEL_SKYLAKE:
> +    case INTEL_SKYLAKE_X:
> +    case INTEL_ICELAKE:
> +    case INTEL_ICELAKE_L:
> +    case INTEL_KABYLAKE_L:
> +    case INTEL_KABYLAKE:
> +    case INTEL_COMETLAKE:
> +    case INTEL_COMETLAKE_L:
>          return true;
>  
>          /*
>           * Atom processors are not vulnerable.
>           */
> -    case 0x1c: /* Pineview */
> -    case 0x26: /* Lincroft */
> -    case 0x27: /* Penwell */
> -    case 0x35: /* Cloverview */
> -    case 0x36: /* Cedarview */
> -    case 0x37: /* Baytrail / Valleyview (Silvermont) */
> -    case 0x4d: /* Avaton / Rangely (Silvermont) */
> -    case 0x4c: /* Cherrytrail / Brasswell */
> -    case 0x4a: /* Merrifield */
> -    case 0x5a: /* Moorefield */
> -    case 0x5c: /* Goldmont */
> -    case 0x5d: /* SoFIA 3G Granite/ES2.1 */
> -    case 0x65: /* SoFIA LTE AOSP */
> -    case 0x5f: /* Denverton */
> -    case 0x6e: /* Cougar Mountain */
> -    case 0x75: /* Lightning Mountain */
> -    case 0x7a: /* Gemini Lake */
> -    case 0x86: /* Jacobsville */
> +    case INTEL_ATOM_BONNELL:
> +    case INTEL_ATOM_BONNELL_MID:
> +    case INTEL_ATOM_SALTWELL_MID:
> +    case INTEL_ATOM_SALTWELL_TABLET:
> +    case INTEL_ATOM_SALTWELL:
> +    case INTEL_ATOM_SILVERMONT:
> +    case INTEL_ATOM_SILVERMONT_D:
> +    case INTEL_ATOM_AIRMONT:
> +    case INTEL_ATOM_SILVERMONT_MID:
> +    case INTEL_ATOM_SILVERMONT_MID2:

Can the Silvermonts please be grouped together?

> +    case INTEL_ATOM_GOLDMONT:
> +    //case 0x5d: /* SoFIA 3G Granite/ES2.1 */ // XXX ???
> +    //case 0x65: /* SoFIA LTE AOSP */         // XXX ???
> +    case INTEL_ATOM_GOLDMONT_D:
> +    //case 0x6e: /* Cougar Mountain */        // XXX ???
> +    case INTEL_ATOM_AIRMONT_NP:

Same for the Airmonts and ...

> +    case INTEL_ATOM_GOLDMONT_PLUS:

... the Goldmonts.

> @@ -3431,23 +3435,20 @@ static void __init lbr_tsx_fixup_check(void)
>       * fixed up as well.
>       */
>      if ( cpu_has_hle || cpu_has_rtm ||
> -         boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
> -         boot_cpu_data.x86 != 6 )
> +         boot_cpu_data.vendor != X86_VENDOR_INTEL ||
> +         boot_cpu_data.family != 6 )
>          return;
>  
> -    switch ( boot_cpu_data.x86_model )
> +    switch ( boot_cpu_data.vfm )
>      {
> -    case 0x3c: /* HSM182, HSD172 - 4th gen Core */
> -    case 0x3f: /* HSE117 - Xeon E5 v3 */
> -    case 0x45: /* HSM182 - 4th gen Core */
> -    case 0x46: /* HSM182, HSD172 - 4th gen Core (GT3) */
> -    case 0x3d: /* BDM127 - 5th gen Core */
> -    case 0x47: /* BDD117 - 5th gen Core (GT3)
> -                  BDW117 - Xeon E3-1200 v4 */
> -    case 0x4f: /* BDF85  - Xeon E5-2600 v4
> -                  BDH75  - Core-i7 for LGA2011-v3 Socket
> -                  BDX88  - Xeon E7-x800 v4 */
> -    case 0x56: /* BDE105 - Xeon D-1500 */
> +    case INTEL_HASWELL:
> +    case INTEL_HASWELL_X:
> +    case INTEL_HASWELL_L:
> +    case INTEL_HASWELL_G:
> +    case INTEL_BROADWELL:
> +    case INTEL_BROADWELL_G:
> +    case INTEL_BROADWELL_X:
> +    case INTEL_BROADWELL_D:
>          break;

I think it would be nice for the errata numbers to not be lost.

> @@ -3476,19 +3477,16 @@ static void __init ler_to_fixup_check(void)
>       * that are not equal to bit[47].  Attempting to context switch this value
>       * may cause a #GP.  Software should sign extend the MSR.
>       */
> -    if ( boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
> -         boot_cpu_data.x86 != 6 )
> +    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
> +         boot_cpu_data.family != 6 )
>          return;
>  
> -    switch ( boot_cpu_data.x86_model )
> +    switch ( boot_cpu_data.vfm )
>      {
> -    case 0x3d: /* BDM131 - 5th gen Core */
> -    case 0x47: /* BDD??? - 5th gen Core (H-Processor line)
> -                  BDW120 - Xeon E3-1200 v4 */
> -    case 0x4f: /* BDF93  - Xeon E5-2600 v4
> -                  BDH80  - Core-i7 for LGA2011-v3 Socket
> -                  BDX93  - Xeon E7-x800 v4 */
> -    case 0x56: /* BDE??? - Xeon D-1500 */
> +    case INTEL_BROADWELL:
> +    case INTEL_BROADWELL_G:
> +    case INTEL_BROADWELL_X:
> +    case INTEL_BROADWELL_D:
>          ler_to_fixup_needed = true;
>          break;
>      }

Same here then.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 10:48:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 10:48:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249978.1547384 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzudD-0007BI-69; Tue, 10 Mar 2026 10:48:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249978.1547384; Tue, 10 Mar 2026 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 1vzudD-0007BB-3S; Tue, 10 Mar 2026 10:48:07 +0000
Received: by outflank-mailman (input) for mailman id 1249978;
 Tue, 10 Mar 2026 10:48:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=S17i=BK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vzudC-0007B5-L4
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 10:48:06 +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 9d99aa20-1c6e-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 11:48:04 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-439c4a93841so4842212f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 03:48:04 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dadb29fdsm34852930f8f.16.2026.03.10.03.48.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Mar 2026 03:48:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9d99aa20-1c6e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773139683; x=1773744483; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=OU0Gcrr3SCErOq/JAQhv2N/NVZPEAl9WbVDQK1P+2t8=;
        b=bff/Zt1EChfkqtR7LiGd6fqk3oq+Y0jwRkQ8wkbLqYbUZ/2SKiEhdODFvyJQ4G77xw
         8fV1eevgBWmGsaTuDQSAiA6Djp6xFja5DML/Q5ShaN2hqsWjFfu/dN8SOknBL3QHWC/V
         vodnOHl7+7YsP1+MLZFHA/CpzEwjuHD8AVfO/PLqb3B0/Bgdltlq6OrMky32vRsmreHc
         at1VmbLDIJdxvMSrBYt6IEK5h2FLP7Pi8dPgtDX3Q+AKKiFLnZ1QGoybap98gVyxEKt/
         HH/7jvTs32/Dkhd8UNsBFAfjqgffGBthbce6pUIpxUlqOLpif1Z71zF49B+6DDq83wAL
         T+NQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773139683; x=1773744483;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OU0Gcrr3SCErOq/JAQhv2N/NVZPEAl9WbVDQK1P+2t8=;
        b=eJjKgBs8j6/lU08EuYhyLnVthreQCIPc0CkbDqDih5FrWq3VphcslqlVPqHd1emLqU
         11MQiIr2Gu2i9qXneeA1pEXoP9STNCM9n5l6i8e/wccxD/F8AJ1wxqZsh+SEFCLvwsV0
         Pgk1gdX3KXIqnMzlkNiPYNSuMN++97AMgyjoQRPELSdaKMnV5PpMLnLivRQGbqE1fQZi
         ptpCWbg9Ek5uvU/nKtKQejjsK+JO/Uw4CneTzeaYHqAeOlYsTYJMm8R2CViIok96bhz9
         4PI9QBCEi88c1dm4vM8JaYfby7I6X+OQ7xcE5sVi2Q504mhvCQFemM7sR5sA2p4kPdD6
         9L3Q==
X-Forwarded-Encrypted: i=1; AJvYcCV4/818VRWOVmwzoeBngDp3Qzg18pA+KHTFe00Ikp6QJMDygz0zto1Pa2ySHW2V91wdlj/u35iGYR8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy928sCo3uREMy+d/1vCMW8dqdpcaoacKXIzw1goWNI1I7v102w
	GJNPTa1s05cyW0VMNBbViWOmMOoaQWIxphfHysBa0XxyGij+VUbu2Pm/olCjqKL5Pg==
X-Gm-Gg: ATEYQzxoFzfDpvToT1Ntq7pdbyJCIfRjFjX9Y0HcyU4AbdMNqQl0e/TNm/+9UezAXGO
	4BTWrQLZMdAxlGDs1zzBHPahAAFzhWXJwsVGOHo7v8mRwJNK1P3pIGSuo66r+OmkidaBIn0j807
	VgPQiYI7E+zgcS5zxtRolM8xC3fo+bhEBPIBeHSmTH+opiPhz2mtLoeGa9sW3d45zmvz5Xw4M6O
	OXAhdW3RtCUbHrH+fa7Hmg20NoEdB67K0W8j/0i8v75EuzRj7qNS6AXRncAHnNIKZpQCBdtkLzD
	QyLvUzE+XETHbtATlJHVP0u1Ga3kWGRdUUbhtlyEyeVC4WEaks+bOt0ONL3HEaVuLxyeO/lWxR1
	NYTwHo8y/JB0b93QrJY7k+KZTcmJEsAsPtfvEgHYRqvGTWpITbZ8Wj/B/F5RW31JXwkI6kHGIa4
	XlsEg7krpGZKd9Ew0NmNcNzDXd8opbka/YKnyXt+z6QWnV7UDPSzf+5dV5wJKOqDTaOM+uT/ta0
	aQt9rja8u+76U1ANoQPxbWmOA==
X-Received: by 2002:a5d:5c84:0:b0:439:b3ff:9ab9 with SMTP id ffacd0b85a97d-439da67c418mr26178050f8f.48.1773139683511;
        Tue, 10 Mar 2026 03:48:03 -0700 (PDT)
Message-ID: <f72434b1-7387-4611-869b-95e8df5242c6@suse.com>
Date: Tue, 10 Mar 2026 11:48:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/6] x86: Remove x86 prefixed names from x86/cpu/ files
To: Kevin Lampis <kevin.lampis@citrix.com>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com,
 xen-devel@lists.xenproject.org
References: <20260304195350.837593-1-kevin.lampis@citrix.com>
 <20260304195350.837593-5-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: <20260304195350.837593-5-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.03.2026 20:53, Kevin Lampis wrote:
> struct cpuinfo_x86
>   .x86        => .family
>   .x86_vendor => .vendor
>   .x86_model  => .model
>   .x86_mask   => .stepping
> 
> No functional change.
> 
> This work is part of making Xen safe for Intel family 18/19.
> 
> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
> ---
> Inside core2_vpmu_init() there is a check for family == 6.
> Should this be extended to family 18/19?

Likely, but again in a separate change.

> --- a/xen/arch/x86/cpu/mtrr/generic.c
> +++ b/xen/arch/x86/cpu/mtrr/generic.c
> @@ -218,9 +218,9 @@ static void __init print_mtrr_state(const char *level)
>  			printk("%s  %u disabled\n", level, i);
>  	}
>  
> -	if ((boot_cpu_data.x86_vendor == X86_VENDOR_AMD &&
> -	     boot_cpu_data.x86 >= 0xf) ||
> -	     boot_cpu_data.x86_vendor == X86_VENDOR_HYGON) {
> +	if ((boot_cpu_data.vendor == X86_VENDOR_AMD &&
> +	     boot_cpu_data.family >= 0xf) ||
> +	     boot_cpu_data.vendor == X86_VENDOR_HYGON) {
>  		uint64_t syscfg, tom2;

Just to mention (not insisting on a change), the >= 0xf could be dropped,
as older CPUs aren't 64-bit capable.

> --- a/xen/arch/x86/cpu/vpmu.c
> +++ b/xen/arch/x86/cpu/vpmu.c
> @@ -398,7 +398,7 @@ int vpmu_load(struct vcpu *v, bool from_guest)
>  static int vpmu_arch_initialise(struct vcpu *v)
>  {
>      struct vpmu_struct *vpmu = vcpu_vpmu(v);
> -    uint8_t vendor = current_cpu_data.x86_vendor;
> +    uint8_t vendor = current_cpu_data.vendor;

Imo we should take the opportunity to change this variable to unsigned int.

> @@ -815,7 +815,7 @@ static struct notifier_block cpu_nfb = {
>  
>  static int __init cf_check vpmu_init(void)
>  {
> -    int vendor = current_cpu_data.x86_vendor;
> +    int vendor = current_cpu_data.vendor;

Perhaps this one as well then.

> --- a/xen/arch/x86/cpu/vpmu_intel.c
> +++ b/xen/arch/x86/cpu/vpmu_intel.c
> @@ -917,7 +917,9 @@ const struct arch_vpmu_ops *__init core2_vpmu_init(void)
>          return ERR_PTR(-EINVAL);
>      }
>  
> -    if ( current_cpu_data.x86 != 6 )
> +    /* XXX Does this need to be changed to include family 18/19?
> +     * Is the core2_ function name misleading? */
> +    if ( current_cpu_data.family != 6 )
>      {

As indicated before, such comments better wouldn't be added here, imo. With it
dropped and preferably with the type adjustments above (happy to carry out
while committing, as long as you agree):
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 10:50:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 10:50:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249986.1547394 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzufd-0000F8-J9; Tue, 10 Mar 2026 10:50:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249986.1547394; Tue, 10 Mar 2026 10:50:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzufd-0000F1-Fv; Tue, 10 Mar 2026 10:50:37 +0000
Received: by outflank-mailman (input) for mailman id 1249986;
 Tue, 10 Mar 2026 10:50:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=S17i=BK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vzufc-0000Et-AM
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 10:50:36 +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 f7004f13-1c6e-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 11:50:34 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-439b9b190easo6265259f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 03:50:34 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dae57401sm29081393f8f.38.2026.03.10.03.50.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Mar 2026 03:50: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: f7004f13-1c6e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773139833; x=1773744633; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=G6fvKaTpBbw6vpDPHysRCUkc3qx/GI/I0SvhAXdQ1Qg=;
        b=Qj5xkEs7aslGIFwuSD+H07MtDx2MDL6HiQNi7pergEsYI/Vc2JZDd6T+5ULknhr23N
         8mejO+5aSPxO8t0oQzXXmXdVv3FoYujwFVb6DSFqIqVJBet7AD9csYwWW0+NEEfS2vTp
         9Hoeldi9Ffcqg64akXeAmjedC+Ck8Bu6xGXQmKwldxdVMSfZb8j9g8zhTvd+NHjGFKWc
         abejTeNJp/qUep0anAYEp9DWkVpp+0/vUXrJnyU44l6val/uZLPjt9qfPtQoW6dMMnCr
         HMGfNSDC+dSCdZ4iVrxtPfxwpvbkJX7XDeM/cjymZrlMTliya66SOpwmPFgtv+Tf1u2M
         NRIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773139833; x=1773744633;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=G6fvKaTpBbw6vpDPHysRCUkc3qx/GI/I0SvhAXdQ1Qg=;
        b=UnSbXDWjt89wgTkjbC/reVZP/lcqwfEWTFarrXdt3SMv2NRed5OwoLiVgIo0rvwvpW
         PGXYAp3hb1+fdYuNrJ1TSQ6lkASzSS/e/hlvnu/L81Nf1mia5GYqKx9qtif1HUQWVxlk
         0Srkh/sKOGavjAspfKW3seD/uQfz2DR1TsdSlMfRNJux7GKyKfE9CEDTcT4kX+XBoc9R
         eHEpMnLmO0ewoqKRLMtjw5W2P63wZ/qbO7uxOy1hKjflXcQq1mRM0k2ZEVbA2sLiv/JG
         /pKRTB/OTUTAJf0NUNS7zkfgvVGZ26C2fwNZ19OvCOnsK2h9OOZzrXRzAMfS1WJeCIar
         CVgg==
X-Forwarded-Encrypted: i=1; AJvYcCXZebBfMqmAKOm/ufxdByY3RqviUc2TwAij/8MhlPRY+7AJsQ3h5FRopoNGXz+6o6NAa9Wi+R/CJps=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwzCgQ1CXGxUBRZKtZYRrTByIx5uev29FyxishrE7ZlZaDWZ4uY
	He+6A5Fmvyur1pScjazD/3W6TZ0nAKOhOdoA5y/Eefhdoku1ugAscLCyXNnoAkE5rPr7a2uze4s
	7PV4=
X-Gm-Gg: ATEYQzw8O6B7I2+ENffi/muAsoVKbVktM1Xl108H93ANJr0Jkv/rgzzMOY7S/Cjs+Hh
	VuAVNjlkAt3nA4qNlsh8BUqQYEP8/Ii/vE1CkUcyfIVnKmd6GczM5qKQks4R9zlraysq+lp8MjL
	4FHlWllsNZGAm6We+uVTQVcHVdDvH9BiAPCXurcDtOUIIZKltVqL5Ut+y3FybPcfVwA3hs6cbZC
	9mz1csGP54/GMQLjCkR+6FRsGV7MPifZGNaIP705bXLFJfCeQLwgV/TRjDa/l6r6LAKR4+44wIa
	JUKVvrxw3f+qdu+0d98XJRughLv3kPtGTYAMomZa64uKaEAM2iBQIKzygHRG+nld3T3UUmkON/i
	1+vkoN427ccl/Ll+l0XE7sNfOWtiS//VjLTwgHy56zteTdSt/1/Ias0rUm4vL8hJLRY2AhTmyl5
	5Uv03p7Xv7rbj+NyCbg+KJYHkx+539/GFGhEcYaPAiMn0PA/Yo1kuYyh/1f9fLdPWXE+ba01yL4
	j1JqjqUXm5XGBg=
X-Received: by 2002:a05:6000:310b:b0:439:bc2b:cb50 with SMTP id ffacd0b85a97d-439da348173mr27037766f8f.4.1773139833489;
        Tue, 10 Mar 2026 03:50:33 -0700 (PDT)
Message-ID: <0f184667-6b62-466c-bb07-393f2b3ca759@suse.com>
Date: Tue, 10 Mar 2026 11:50:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 6/6] 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: <20260304195350.837593-1-kevin.lampis@citrix.com>
 <20260304195350.837593-7-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: <20260304195350.837593-7-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.03.2026 20:53, Kevin Lampis wrote:
> --- a/xen/arch/x86/include/asm/cpufeature.h
> +++ b/xen/arch/x86/include/asm/cpufeature.h
> @@ -43,19 +43,15 @@
>  #ifndef __ASSEMBLER__
>  
>  struct cpuinfo_x86 {
> -    /* TODO: Phase out the x86 prefixed names. */
>      union {
>          struct {
>              union {
> -                uint8_t x86_model;
>                  uint8_t model;
>              };
>              union {
> -                uint8_t x86;
>                  uint8_t family;
>              };
>              union {
> -                uint8_t x86_vendor;
>                  uint8_t vendor;
>              };
>              uint8_t _rsvd;             /* Use of this needs coordinating with VFM_MAKE() */
> @@ -63,7 +59,6 @@ struct cpuinfo_x86 {
>          uint32_t vfm;                  /* Vendor Family Model */
>      };
>      union {
> -        uint8_t x86_mask;
>          uint8_t stepping;
>      };
>  

But then all the now unnecessary unions also want to go away?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 10:58:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 10:58:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1249996.1547403 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzumi-0000wR-9B; Tue, 10 Mar 2026 10:57:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1249996.1547403; Tue, 10 Mar 2026 10:57:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzumi-0000wK-6G; Tue, 10 Mar 2026 10:57:56 +0000
Received: by outflank-mailman (input) for mailman id 1249996;
 Tue, 10 Mar 2026 10:57: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=S17i=BK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vzumh-0000wE-47
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 10:57:55 +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 fc8fcf2f-1c6f-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 11:57:53 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4852ff06541so30154225e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 03:57:52 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485244b6e9esm202889655e9.5.2026.03.10.03.57.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Mar 2026 03:57: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: fc8fcf2f-1c6f-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773140272; x=1773745072; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GDrKToaCfFiwyWhaD+7oB4TG1h69l9pLvYTca8ZWrOY=;
        b=Is9tX7uQZ8+u4WKo8vGGV76aaOpN+OVvnetrxGn0cXVbj7vou7UUVGDK3m4L5M4hGE
         MGxrkU8dqioYaPRdzFNVP9iySWp4tWBM8gMWQoyaXLRH9AZeicY6zLDwYoawIUSuFSnp
         Wvd5pW+DnMsmItEfJq1Nr3lY/KIdeclVINdKNU0zgptzbk6g+3ICtR4Rwh1XdVRUkwed
         lRgjq1JOne54RO/VrDf3no2MpxCi+CHThvHMEfkFl0MoIKAQg5l/lHBZaF/xf6dTq0LD
         LRO8v2+490TqUyeyREov/rdown7N1z7q1aKZ4LmY1giaw9niZHAHc4CQg5PG8+365pKg
         JwCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773140272; x=1773745072;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GDrKToaCfFiwyWhaD+7oB4TG1h69l9pLvYTca8ZWrOY=;
        b=X1E9bcMhN9g7f3sgviA8Wiuj4kWiSdAPEtPa8Kwhc8Rnfkjc10yvMJQngB7WJgwE7i
         Y/Q1lVaqS5Uk6nZFJHkqSHZj3D5f94oVWbsJNYuWlcqX2itW6u0K2HT71/YIiIpD+OW8
         OSkeIJh4JjQMV0wkla0IucNHZWmeZXl4LwC5QTBNzSQNFj9blpsLt/v3Csdy+XJ/f7D+
         nXGb1UHwIY0JnY90uPakxbkkUJRwZKJfd9liV2QEUvFWNQGTjA+NkQkJyB/2n4jqagCq
         KU+1uTr6Dd0WWrsp2Q2Pd1fvYKfgtOgqE2EjL2U6opfWb9hwbYpP9wW5bXj/vT4O2uez
         REFA==
X-Forwarded-Encrypted: i=1; AJvYcCW6OQoHTvdR7gzEo2rd9yuM8+PPETv+8LK9V/u41Tmbs5adRNvPAZcSRyXDk05LOKCYY+Rn1WYF3XI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxa6/+PEueg3johBPRyB5uCI08QLSeG/QKiPDRE2sXDyMHO3sCO
	zOj2w3U3PxkU5Douw/J3yD+NRwQDqRykWwV1XVDaqIIRuXNQvXwCZ255BsRJ2WgJMw==
X-Gm-Gg: ATEYQzz1rt4pcEEZo9ZJM9d5z6ykWIvFN8hnwBo7uS/A0Z76+9CZzz2LUbdwCiHKUBx
	5TXMrXO8McpbFS+CIprSf2h2wCnXAlSzN9d++VH9HkyF/ovgDQBX9Yr2zGo/37tH7x0jPVZWPqq
	Yqx46tVOD0xJ+wZ6wjth/3r/Gjd1FdQphGONeMwDflKJ5xLrsTr3ILuOU6M70hAEBVvNLwuLP1w
	h9Aq/mOsri5Cq206v6nQksqCl9nabCz77QZOrN7FbUdEr+0vjQgzte+RMzr37sTrW10e2VvAXUO
	wXkhT0UirkD3e2tDG1f6UjFwpnHCPub88VVBUQOwksX/seBduKyx9CPy9OB0NEc/27PMe50qbhV
	QUs0AblR+K9DoAg7g2ljnmjEg3F/2Y7AvSXn5c4R8n7WNHH9zWswgKq53OsiQ2DFQT2lBjlNYvx
	cJnve643C9LhzJe8X47+XIaorfZ/oAgv3D38brhNsxBLm/ey21a2Z7emwRpPDHXbJ41VGCm4Sd2
	FO7K7n/8QXSdOQ=
X-Received: by 2002:a05:600c:1e88:b0:477:6d96:b3e5 with SMTP id 5b1f17b1804b1-48526916beamr265027065e9.7.1773140272233;
        Tue, 10 Mar 2026 03:57:52 -0700 (PDT)
Message-ID: <785c0042-55c6-4738-aad3-fd88bee3f047@suse.com>
Date: Tue, 10 Mar 2026 11:57:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/6] x86: Remove x86 prefixed names misc
To: Kevin Lampis <kevin.lampis@citrix.com>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com,
 xen-devel@lists.xenproject.org
References: <20260304195350.837593-1-kevin.lampis@citrix.com>
 <20260304195350.837593-6-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: <20260304195350.837593-6-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.03.2026 20:53, Kevin Lampis wrote:
> --- a/xen/arch/x86/nmi.c
> +++ b/xen/arch/x86/nmi.c
> @@ -216,12 +216,12 @@ void disable_lapic_nmi_watchdog(void)
>  {
>      if (nmi_active <= 0)
>          return;
> -    switch (boot_cpu_data.x86_vendor) {
> +    switch (boot_cpu_data.vendor) {
>      case X86_VENDOR_AMD:
>          wrmsrns(MSR_K7_EVNTSEL0, 0);
>          break;
>      case X86_VENDOR_INTEL:
> -        switch (boot_cpu_data.x86) {
> +        switch (boot_cpu_data.family) {
>          case 6:
>              wrmsrns(MSR_P6_EVNTSEL(0), 0);
>              break;

I think here we would benefit from switching to Xen style at this occasion.
Fair parts of the file are already Xen style, and this function would then
end up almost correct.

> @@ -362,7 +362,7 @@ static void setup_p4_watchdog(void)
>          clear_msr_range(0x3F1, 2);
>      /* MSR 0x3F0 seems to have a default value of 0xFC00, but current
>         docs doesn't fully define it, so leave it alone for now. */
> -    if (boot_cpu_data.x86_model >= 0x3) {
> +    if (boot_cpu_data.model >= 0x3) {
>          /* MSR_P4_IQ_ESCR0/1 (0x3ba/0x3bb) removed */
>          clear_msr_range(0x3A0, 26);
>          clear_msr_range(0x3BC, 3);

This may want leaving as is, to match the rest of the function, but ...

> @@ -387,16 +387,16 @@ void setup_apic_nmi_watchdog(void)
>      if ( nmi_watchdog == NMI_NONE )
>          return;
>  
> -    switch ( boot_cpu_data.x86_vendor )
> +    switch ( boot_cpu_data.vendor )
>      {
>      case X86_VENDOR_AMD:
>          setup_k7_watchdog();
>          break;
>  
>      case X86_VENDOR_INTEL:
> -        switch (boot_cpu_data.x86) {
> +        switch (boot_cpu_data.family) {

... this (again to match the rest of the function) would want adjusting again.
With that (again, happy to make the adjustments while committing):
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 11:32:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 11:32:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250010.1547413 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzvJV-0005zp-Qc; Tue, 10 Mar 2026 11:31:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250010.1547413; Tue, 10 Mar 2026 11:31:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzvJV-0005zi-M9; Tue, 10 Mar 2026 11:31:49 +0000
Received: by outflank-mailman (input) for mailman id 1250010;
 Tue, 10 Mar 2026 11:31: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=S17i=BK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vzvJU-0005za-8T
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 11:31:48 +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 b7b7a833-1c74-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 12:31:45 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-48538c5956bso23029415e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 04:31:44 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4852378de92sm176118465e9.0.2026.03.10.04.31.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Mar 2026 04:31:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b7b7a833-1c74-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773142304; x=1773747104; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=m/m5As2KkE3vFRnY7bzO3q+1AL0PAuceDrUlhe1039g=;
        b=OaxJmuvRVVNZAS9VFTLyKEM9lWNzZDfGlq0j7TC5gjuEaqrm/c/bmoO8ZR+rJOarOF
         xHhm5GgY90u8G8ItxCSS1amNgQuQtgcO+CZA1t1KVmWe5FOw7+P9D24mOLCvt1Cd41BV
         4MajdWf5UWiBFogIRCqA0+isy6aJNIOvh/px3zvgR11WS8crnlRtprdvH8leljYAmUlv
         m88EqijI/lw3jXdcvMfgvn/uzpmO+NXkNpdT9ZOZeV76w0Re1UqotZ+uZSfh9w0eHMTW
         sWJaYGq78gD4DF7mB3FKiD1SI50nF9Dfk2smUzZU29C3V2brsjmfgJAb/puWyuHPHsQc
         3GkA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773142304; x=1773747104;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=m/m5As2KkE3vFRnY7bzO3q+1AL0PAuceDrUlhe1039g=;
        b=jS9CM3vcaxu6ourpjC1u5KqeTlPqvgangztiYZw2O/u7cExRt6PxjoQmQ49xtURvZh
         yvGWOXz/HOBZiA9GHH2v2v0g8ptswrG+/altEjqEB6E1603I+yeVA51bC19jveWZunQO
         t5viBTvaUi4seAVeKO5vLcLAKUktzPevGGJBpKoDDxnEHhuLwV6LYqWTKDX523OOM3pr
         +l6aFzd14/mTHr8kb5QkH90iSukcgMo+4fKKvvpX1SY8aWDj0NsObIqk/OH6dfv4C76E
         OIF4UK8sAhyiFTKOLcK7tOjR42scF5C2svI1BFiJq+Gl6y2c2+W2vSD/SkrwIQwfksyv
         FCTQ==
X-Forwarded-Encrypted: i=1; AJvYcCW+jQIM7eX8SPRXB93Mch1p5iThY8+DGUB3U+odMAEZ4+kJnTIqfW/euzmXeROde9+qNZAae5i4ha8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzxKMMoaOfvt/j71Z5dA8l3rJgAc3qL7cQy916j1ElB+xpQvk37
	X40zI2Ts3/J4DJszbFcy1mVHL2BH/T7q87kyvF8cP4Yfvv6EkU3/9uSifO29jPXoDQ==
X-Gm-Gg: ATEYQzzawb2LItQWbUa/x631/WGMkCAVojI396VkbyXFKnkm06cgHy2fGzQhd9uH5KV
	N6LWC8I2ck7RmGr3ceskw41aPaYLUegvU+sDXvFvTs0UlJJUp44It5ggQJy8bt4diqLs5VTZT1e
	JQ6EkP4af0xUeK37UB0m5CazmVFjDBvWTLglh9vEFcgS/9zTFPhc/rt6e0NV2ekBSDj9HL0h4yZ
	tl40DbqiG8ODCYRE/3eY7KqjEYppRv+LHqXXf6xHebljVhou8fnY4VqROxfw2qxuwHORpmrniix
	B2ElF9wMNF9JMiPRAQh7Ce0JhILrJeE+xLr2W2k2i/4HtioYTJCa65S8QjkODOQ4K+u4DofV+Qr
	F3tVziX9JkZ8pq5lyhyKUPYMo6EZ8FNPn7dTDA7dz+35bVyPli0bN9f2VNFzRK+w18acQUfl/pm
	3OzI1pvPAXm57vcYOoylxXyOWxElM/+kXAibxPUyE4eXsgyWGAEOiqNk6fJhL1SxvSwLpHdqkVj
	dYf0zPzbfIbmks=
X-Received: by 2002:a05:600c:138e:b0:485:3e00:944a with SMTP id 5b1f17b1804b1-485419d759amr50541695e9.9.1773142304057;
        Tue, 10 Mar 2026 04:31:44 -0700 (PDT)
Message-ID: <7fe8339f-5bec-46d2-88d3-ca7d2d45006b@suse.com>
Date: Tue, 10 Mar 2026 12:31:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] x86/efi: Add BGRT image preservation during boot
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org,
 sarkarsoumyajyoti23@gmail.com
References: <20260306132935.13727-1-soumyajyotisarkar23@gmail.com>
 <20260306132935.13727-2-soumyajyotisarkar23@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: <20260306132935.13727-2-soumyajyotisarkar23@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.03.2026 14:29, Soumyajyotii Ssarkar wrote:
> @@ -747,6 +756,171 @@ static void __init efi_relocate_esrt(EFI_SYSTEM_TABLE *SystemTable)
>      efi_bs->FreePool(memory_map);
>  }
> 
> +struct bmp_header {
> +    uint16_t signature;
> +    uint32_t file_size;
> +    uint16_t reserved_1;
> +    uint16_t reserved_2;
> +    uint32_t data_offset;
> +} __attribute__((packed));
> +
> +/*
> + * ACPI Structures - defined locally,
> + * since we cannot include acpi headers
> + * in EFI Context.
> + */
> +
> +struct acpi_rsdp {
> +    char signature[8];
> +    uint8_t checksum;
> +    char oem_id[6];
> +    uint8_t revision;
> +    uint32_t rsdt_physical_address;
> +    uint32_t length;
> +    uint64_t xsdt_physical_address;
> +    uint8_t extended_checksum;
> +    uint8_t reserved[3];
> +} __attribute__((packed));
> +
> +struct acpi_table_header {
> +    char signature[4];
> +    uint32_t length;
> +    uint8_t revision;
> +    uint8_t checksum;
> +    char oem_id[6];
> +    char oem_table_id[8];
> +    uint32_t oem_revision;
> +    uint32_t asl_compiler_id;
> +    uint32_t asl_compiler_revision;
> +} __attribute__((packed));
> +
> +struct acpi_xsdt {
> +    struct acpi_table_header header;
> +    uint64_t table_offset_entry[1]; /* Variable array length */
> +} __attribute__((packed));
> +
> +struct acpi_bgrt {
> +    struct acpi_table_header header;
> +    uint16_t version;
> +    uint8_t status;
> +    uint8_t image_type;
> +    uint64_t image_address;
> +    uint32_t image_offset_x;
> +    uint32_t image_offset_y;
> +} __attribute__((packed));
> +
> +static struct acpi_bgrt* __init find_bgrt_table(EFI_SYSTEM_TABLE *SystemTable)
> +{
> +    EFI_GUID acpi2_guid = ACPI_20_TABLE_GUID;
> +    struct acpi_rsdp *rsdp = NULL;
> +    struct acpi_xsdt *xsdt;
> +    struct acpi_bgrt *bgrt;
> +    uint32_t entry_count, actual_size;

No need for fixed-width types here, I expect (see ./CODING_STYLE).

> +    unsigned int i;
> +
> +    for ( i = 0; i < SystemTable->NumberOfTableEntries; i++ )
> +    {
> +        if ( match_guid(&acpi2_guid, &SystemTable->ConfigurationTable[i].VendorGuid) )
> +        {
> +            rsdp = SystemTable->ConfigurationTable[i].VendorTable;
> +            break;
> +        }
> +    }

Why would this be needed, when efi_tables() has already run?

> +    if ( !rsdp || !rsdp->xsdt_physical_address )
> +        return NULL;
> +
> +    xsdt = (struct acpi_xsdt *)rsdp->xsdt_physical_address;
> +    if ( !xsdt )
> +        return NULL;
> +
> +    actual_size = (xsdt->header.length - sizeof(struct acpi_table_header));
> +    entry_count = (actual_size / sizeof(uint64_t));

Pleas prefer sizeof(<expression>) over sizeof(<type>), such that as a reader
one can know what is actually meant.

> +    for ( i = 0; i < entry_count; i++ )
> +    {
> +        struct acpi_table_header *header = (struct acpi_table_header *)xsdt->table_offset_entry[i];
> +
> +        if (   header->signature[0] == 'B'
> +            && header->signature[1] == 'G'
> +            && header->signature[2] == 'R'
> +            && header->signature[3] == 'T' )

Nit (style): If this was to not be replaced by a suitable function call, the
operators belong at the end of the earlier line (again see ./CODING_STYLE).

> +        {
> +            bgrt = (struct acpi_bgrt *)header;
> +            return bgrt;
> +        }
> +    }
> +    return NULL;
> +}

Nit (style): Blank line please ahead of the main return statement of a
function.

> +#define MAX_IMAGE_SIZE  (16 * 1024 * 1024)    /* Sanity check: reject if bigger */
> +
> +static void __init efi_preserve_bgrt_img(EFI_SYSTEM_TABLE *SystemTable)
> +{
> +    struct acpi_bgrt *bgrt;
> +    struct bmp_header *bmp;
> +    void *old_image, *new_image;
> +    uint32_t image_size;
> +    EFI_STATUS status;
> +    uint8_t checksum;
> +    unsigned int i;
> +
> +    bgrt_debug_info.preserved = false;
> +    bgrt_debug_info.failure_reason = NULL;
> +
> +    bgrt = find_bgrt_table(SystemTable);
> +    if ( !bgrt )
> +    {
> +        bgrt_debug_info.failure_reason = "BGRT table not found in XSDT";
> +        return;
> +    }
> +
> +    if ( !bgrt->image_address )
> +    {
> +        bgrt_debug_info.failure_reason = "BGRT image_address is NULL";
> +        return;
> +    }
> +
> +    old_image = (void *)bgrt->image_address;
> +    bmp = (struct bmp_header *)old_image;
> +
> +    if ( bmp->signature != 0x4D42 )
> +    {
> +        bgrt_debug_info.failure_reason = "Invalid BMP signature";
> +        return;
> +    }
> +
> +    image_size = bmp->file_size;
> +    if ( !image_size || image_size > MAX_IMAGE_SIZE )
> +    {
> +        bgrt_debug_info.failure_reason = "Invalid image size";

Why "invalid"? The cap is arbitrary, isn't it?

> +        return;
> +    }
> +
> +    status = efi_bs->AllocatePool(EfiACPIReclaimMemory, image_size, &new_image);
> +    if ( status != EFI_SUCCESS || !new_image )
> +    {
> +        bgrt_debug_info.failure_reason = "Memory allocation failed";
> +        return;
> +    }
> +
> +    memcpy(new_image, old_image, image_size);
> +
> +    bgrt->image_address = (uint64_t)new_image;
> +    bgrt->status |= 0x01;
> +
> +    bgrt->header.checksum = 0;
> +    checksum = 0;
> +    for ( i = 0; i < bgrt->header.length; i++ )
> +        checksum += ((uint8_t *)bgrt)[i];
> +    bgrt->header.checksum = (uint8_t)(0 - checksum);
> +
> +    bgrt_debug_info.preserved = true;
> +    bgrt_debug_info.old_addr = (uint64_t)old_image;
> +    bgrt_debug_info.new_addr = (uint64_t)new_image;

Seeing how you need to cast here, imo using pointer type fields and ...

> +    bgrt_debug_info.size = image_size;
> +}
> +
>  /*
>   * Include architecture specific implementation here, which references the
>   * static globals defined above.
> @@ -1794,6 +1968,19 @@ void __init efi_init_memory(void)
>      if ( !efi_enabled(EFI_BOOT) )
>          return;
> 
> +    if ( bgrt_debug_info.preserved )
> +    {
> +        printk(XENLOG_INFO "EFI: BGRT image preserved: %u KB\n",
> +               bgrt_debug_info.size / 1024);
> +        printk(XENLOG_INFO "EFI: BGRT relocated from %#" PRIx64 " to %#" PRIx64 "\n",

... %p here would be preferable. With any casts between uint64_t / UINT64 and
pointer types you need to be aware that these will cause issues the moment we
gain a 32-bit use of this EFI interfacing code. Hence the fewer such casts,
the better.

> +               bgrt_debug_info.old_addr, bgrt_debug_info.new_addr);
> +    }
> +    else if ( bgrt_debug_info.failure_reason )
> +    {
> +        printk(XENLOG_WARNING "EFI: BGRT preservation failed: %s\n",
> +               bgrt_debug_info.failure_reason);

Did you verify this actually works? efi_preserve_bgrt_img() runs when we're
still in physical mode, and hence the pointers stored will be physical
addresses. Whereas here you need virtual ones. A trick to use may be to
initialize the field with a pointer to a string literal (perhaps simply an
empty string). That'll cause a relocation to be emitted for the field, and
hence the pointer will then be relocated together with the rest of the Xen
image.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 11:34:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 11:34:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250020.1547421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzvLc-0006XM-8O; Tue, 10 Mar 2026 11:34:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250020.1547421; Tue, 10 Mar 2026 11:34: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 1vzvLc-0006XF-4i; Tue, 10 Mar 2026 11:34:00 +0000
Received: by outflank-mailman (input) for mailman id 1250020;
 Tue, 10 Mar 2026 11:33:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=S17i=BK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vzvLa-0006X8-Db
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 11:33:58 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 05d3dd45-1c75-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 12:33:56 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-485345e1013so18732085e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 04:33:56 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48541a7f1f5sm123068205e9.4.2026.03.10.04.33.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Mar 2026 04:33:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 05d3dd45-1c75-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773142435; x=1773747235; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6nXiOBgpVqJzWlI7izeUdI7naL+DVopaSDZJu+av888=;
        b=CgLsRoJipRV+qyYfPsT4bH9qKFyGlg+yPPXlWEfCPHRVVtBhUWrZiaYbGGIkzzZquZ
         UiwAdQ2xLQ2WEsbQK4RHYDBqmcoW8gcaGn2XkYzBCHvjGItblGVQcc1arLSHWT98FecV
         y7WiDmMuPVzd8ps6waMvfZzcKzfNEfz47ncU1BQc5TqNO9qZQhC5nT6cP/h88BWt63S8
         2WzwuM8+OEE9ghC+hhCcYKy8SHkPpAXkTBYE6jTjg+Hngh4bwIUa6omPyVYk+AflPBzN
         MYfoOUYJz4bNqkfyUyXvSJEGBF1JU/ksgR+t+iQrY8IFV+LAlf3y0bh3yQVaOL3gwmLb
         5MYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773142435; x=1773747235;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6nXiOBgpVqJzWlI7izeUdI7naL+DVopaSDZJu+av888=;
        b=nX3xEKiHVWqWwgwVP/Z1/qkIjADNm+/3x/Z7gMapC/3iz5qxzuhFqrxzeozVIt2t32
         dVdHkMUyRG75v+fUP7IarAf1E4dom8BqVfdeatL2k4ExLKjln/DCE6AHi/r/JGEkY10F
         ZmstLDhgFaDnGxshyMoJt1bOQoqh1LC3Zbe8E6yh/QGxKAeDIlE4psEzfEwrNhHMHrd+
         XmqjVOmfENOUMpwdNgDH4YSqO4A4wmd2y8vQ9a1doX7S2/oTQ4GWA4o9dIikle+joWEo
         8mHjE3iqv26m3OQTTsGaefedWyWwerhw+lu91eVKZcUSLUoT0bw3hjxY8Ls+ryS8XE3r
         IsFw==
X-Forwarded-Encrypted: i=1; AJvYcCWNd+4IuBYmDq5EGN3i6lfcgtO/C9UEYctgE0//ZCsPh0QQhbzSWW54WINfQXq4e5r72nGdb6WWbX4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywn/s1z2UlzyZnBFkhQltkhYQnT5VYTm1yJIdaa32UsHWnEQq3D
	PGFknpHBJgDpKtBBHDAgWDhPHBYzYyFCtJ3IFYEg39E7PVbYDVgoKiXAL8EBxipJ9A==
X-Gm-Gg: ATEYQzxvQC05t+AXcj+5ldb8hiVg31EUb4sIQUmqmYgCOXGp+P4eqGyDj+Y4lOcKVsq
	Qf0Mn30kpoD9tznLSOkaDHyKGQQfe2o1ZMCcQcHLlcu6nFdzPpMH2/OmO9Mx8LRApt2Nx7F3reH
	NstNYZ9TBzikU/tSR7j30vs5GPAaZJG/SBXoKUVTVE+mmf6JVv8GdJUtSLXs0xV36m5ONdYzbGP
	jVodIH180JpPjBSKJcSQLjyfzNIP5nW45WpcLa+kqf7rycTSqj1Ki+RakrXZCOPFyXx/NNcVZdB
	DEDg+o/4YaCF0LacdTrD82cmbaqNrp165gyrdHcjgNbRGY29+xsTJ3zIG2B724VEV46+lXLq6Re
	aSdkwaTlZCnQ2f65JanHJhgk222At1Ev8oVxvlmd90C/hRE7Cc0aHacS7M+8ZfZVP29XYBDMQ9U
	wyzf36K14MJ4XSKEi55nfp5aAUExFFzLnbn0hX6Qso59kWcJ3haVnwigsDuSNyQXFtC08XJYH8Q
	SCjJW685xD6rhA=
X-Received: by 2002:a05:600c:8488:b0:485:3989:b3e4 with SMTP id 5b1f17b1804b1-485419b61a2mr45900475e9.6.1773142435531;
        Tue, 10 Mar 2026 04:33:55 -0700 (PDT)
Message-ID: <6df95cb0-3f01-43a6-abc5-0e464c3c98e9@suse.com>
Date: Tue, 10 Mar 2026 12:33:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] x86/acpi: Clarify BGRT invalidation behavior with
 preservation
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org,
 sarkarsoumyajyoti23@gmail.com
References: <20260306132935.13727-1-soumyajyotisarkar23@gmail.com>
 <20260306132935.13727-3-soumyajyotisarkar23@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: <20260306132935.13727-3-soumyajyotisarkar23@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.03.2026 14:29, Soumyajyotii Ssarkar wrote:
> Now that BGRT images are preserved during EFI boot (via
> EfiACPIReclaimMemory allocation), the invalidation code in
> acpi_parse_bgrt() is no longer needed.
> However, The original invalidation code acts as a safety net for when
> preservation fails or is disabled via "efi=no-bgrt".
> 
> Thus, Add comments to clarify this behavior for future reference.
> 
> Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>

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

I wonder though if this wasn't better folded into the earlier patch.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 11:41:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 11:41:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250031.1547430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzvT6-0008Ha-VW; Tue, 10 Mar 2026 11:41:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250031.1547430; Tue, 10 Mar 2026 11:41:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzvT6-0008HT-SV; Tue, 10 Mar 2026 11:41:44 +0000
Received: by outflank-mailman (input) for mailman id 1250031;
 Tue, 10 Mar 2026 11:41: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=S17i=BK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vzvT6-0008HN-FR
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 11:41:44 +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 1bbdaf51-1c76-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 12:41:42 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-439b9b190easo6310984f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 04:41:42 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dae2ba5bsm33679643f8f.22.2026.03.10.04.41.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Mar 2026 04:41:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1bbdaf51-1c76-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773142902; x=1773747702; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0r05h2blS+gYEN1+6JRpyqm3ySQPHfmFxeqRQ6IxccM=;
        b=dJWHuGX7uATfmk07gjjZyTfhGPcdQlGCN7OaoG3nl/qf1gfhvNKeGFNbfyjulv38si
         Edj9KNPHBNabGcBUiEg9J6dglGKAr+lVA5ZiyYwj/FSpOTc+S9in/cvIpQqiK3BESYOs
         3tr3/HJ67ElW8tRLqk25cfVOTooNeaHwqV2rj7OswC9O7lHRYf5Cjwm4GihibsHWuOKR
         +E5d5Gk9c7RPQc/keZMqzobn4PRNfdftjJ9GtepyVYNBOstwLxR1LSQyNZgDe4Urfimf
         pyQuwOzKgffTy4SaxkOUGPuLpKALCLK//dUbdAYtu9f1G8ITh+eMJKuYJRinNZeQx+2J
         ReIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773142902; x=1773747702;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0r05h2blS+gYEN1+6JRpyqm3ySQPHfmFxeqRQ6IxccM=;
        b=YcysgiWu42EsPQI2ZkpDfAOcd4zGyUVHxF5Cg8LpZ+URTF9xdj4L+A7du4XMxgDrht
         BJqXu3sGMASbAQmwMFuS7F8TVubT1A/iJEbKfMuQzxDO/cH4E7PeX3HHui036pmx1+p+
         XqtYBCtpu4VeI9dycjtc20+a3xpoH3auYVuaVyVzhRdAbo//T8eiNWW6BMx2YdN0FJdG
         w0AATnFYg3TM8VAed+9Sjk3HiwdalMP/XMy+vJCeJOCHbTsRyujdusC0FRDGO5enWrMv
         d8QdT8Ft8OIAvF0dqC3M57utDvKwWTom1JzYvSMuQD5mbr2E7Q0RjaTuQunk42qEqUOH
         17zQ==
X-Forwarded-Encrypted: i=1; AJvYcCUKVBtSX/w6snpbvTFuTFHEHO9AKzOByE/gZ4MTLoPAckHh9pjsV05aVkUVShZrnKDuHYovNb7bF+k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxJ1tAnU+luJJ2qlySGBuEmATOw21dFL9MUM86jgK3K9/SGV77x
	XiNEUqJ+QeWBjUBtPZQnKdq50mU24yyHhpC2HCHyCAY3tTnvYlJwwdi8w375sD/S+A==
X-Gm-Gg: ATEYQzwQ8+8Di9YzFnS1EJx+ImVwtcxFQG0+lqRxLFZW3diNJM4dZextBFVlK722Hs4
	BCCac54bpblh1dgBP8hsQNOseZdalJweqgppdrNXEx99+aZdmmx82YdNlAIJfYUt+kLZXmLNd6p
	X7G4WYCerC5KzhRCR+Zsct7AwtBJ5SKxn28VIk1Kgpnz7T1FBOPZvFF1tQMqESpv9WqPS6Epogl
	34YtZecAyLx7U/YeM3JdmPDql70DF7rNa4goTrOHiIayQk5pogNF1R7ymjLEhQbEh8Nw1eI96jm
	5fWZ/RMrQaF2BIMZXyTFYmZEPa6jIp+QIko+0iK+Dqxw3o8eEeU2rSgUdBAFxtyh67b9fYPmHCJ
	k8y0BRmIuEqNuVSjhgCRkVWoVN7cORR2mLFqNHKpZkh/cT/ejRsuYAOxIcr/glXCrzZK2KFJKU5
	Pjm0JEOTBEGy1/XsXIU9/N/AuIHTulU9r4l7gZWrOPUcmnF/agNGdabsUoHv4l6TycNekT1/1aN
	wBQWrPaZdvScfDcMbWjETzMCQ==
X-Received: by 2002:a05:6000:400e:b0:439:b0ed:2afe with SMTP id ffacd0b85a97d-439da348192mr23599490f8f.11.1773142901645;
        Tue, 10 Mar 2026 04:41:41 -0700 (PDT)
Message-ID: <bce96393-9790-44fb-9958-0adeeafb78b9@suse.com>
Date: Tue, 10 Mar 2026 12:41:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] x86/efi: Add opt-out mechanism for BGRT
 preservation
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org,
 sarkarsoumyajyoti23@gmail.com
References: <20260306132935.13727-1-soumyajyotisarkar23@gmail.com>
 <20260306132935.13727-4-soumyajyotisarkar23@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: <20260306132935.13727-4-soumyajyotisarkar23@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.03.2026 14:29, Soumyajyotii Ssarkar wrote:
> As described in the task, BGRT preservation is now enabled by default to fix ACPI corruption
> for desktop/workstation systems (similar to ESRT).

What's "the task"?

> Add an opt-out parameter 'efi=no-bgrt' to allow disabling BGRT
> preservation on systems where the ~1MB memory overhead is not
> desired.

This looks to contradict ...

> The parameter is parsed during normal Xen boot (not during EFI
> phase), so it only affects diagnostic logging.

... this. For xen.efi you want to add code to the command line parsing
near the top of efi_start(). What to do for the MB2 boot path perhaps
the only thing there is to peek into the command line (see
arch/x86/boot/cmdline.c).

> @@ -1873,6 +1877,10 @@ static int __init cf_check parse_efi_param(const char *s)
>              else
>                  __clear_bit(EFI_RS, &efi_flags);
>          }
> +        else if ( (ss - s) == 7 && !memcmp(s, "no-bgrt", 7) )

No "no-" prefixes please; you want to use parse_boolean().

> @@ -1968,7 +1976,11 @@ void __init efi_init_memory(void)
>      if ( !efi_enabled(EFI_BOOT) )
>          return;
> 
> -    if ( bgrt_debug_info.preserved )
> +    if ( opt_bgrt_disabled )
> +    {
> +        printk(XENLOG_INFO "EFI: BGRT preservation disabled\n");
> +    }

No need for figure braces here.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 12:05:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 12:05:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250064.1547503 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzvqR-0003Qb-JA; Tue, 10 Mar 2026 12:05:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250064.1547503; Tue, 10 Mar 2026 12:05:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzvqR-0003QU-G1; Tue, 10 Mar 2026 12:05:51 +0000
Received: by outflank-mailman (input) for mailman id 1250064;
 Tue, 10 Mar 2026 12:05: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=iDxx=BK=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vzvqP-0003QN-Kp
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 12:05:49 +0000
Received: from fout-b8-smtp.messagingengine.com
 (fout-b8-smtp.messagingengine.com [202.12.124.151])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 78343de1-1c79-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 13:05:46 +0100 (CET)
Received: from phl-compute-11.internal (phl-compute-11.internal [10.202.2.51])
 by mailfout.stl.internal (Postfix) with ESMTP id E1CEC1D0011E;
 Tue, 10 Mar 2026 08:05:44 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-11.internal (MEProxy); Tue, 10 Mar 2026 08:05:45 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 10 Mar 2026 08:05:43 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 78343de1-1c79-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1773144344;
	 x=1773230744; bh=2WGFbOnRDU6ryJkj7VOMsza798aVYRtJwrdjku8elyQ=; b=
	q5xJNLi6odveOzVOviX1D+WumgvUmW4vrv/F/gUfiAsT5H1DkPHYeWjxdTq48nu3
	RvLEgSycTkvNQIwXnEX8wQ5Pl5E0G/mcvh0ZMk1ll8mNxUyk1Am0MDkLv4A967Cu
	GdrMxcyTITeiVaImGLEVrg8b349YIS4/rcF+ZrWP64pdlcmCzz2FmV62Yq4lzQWY
	N4hg+i2rO1qc+sb0sbKZ/6y/dkYhM3MW9OasTyRAXgJ0ZaSdbcySfn/X4HVNoXc6
	15h7VlNt93q7xeu1E+5P0PVFM6E7jkpf2BGdBSp9TVWQKmmDDxcnZZDdJYVM9mjq
	RXJwNFly8lrDxUqujsHNXQ==
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=
	1773144344; x=1773230744; bh=2WGFbOnRDU6ryJkj7VOMsza798aVYRtJwrd
	jku8elyQ=; b=V+034gMWEvotCy4gpTFt5X3MELf7/MOazqJ4LhA+QIt4MFcw5US
	vSi4TCjrIVGR7BZa36UHEJasLYU8AzpOPqXyZ4Dgp4+dZ7Vq7sRUBAgA9WNq8E4j
	yoa3f/uScB2RpovRdZmTXe5cAzj9BYmJiZNnqM1LaejDQWGuQC3k6z5AfrCilHVf
	nsNdDSVyG8TGRmHtFXU0y4lFNCyWiQT1C+sStHkB0oW1ZMmliqN07IyQ16ezoJ/J
	R5Cca4Kslt6MAgoNE1VidS/MZoYkf0k3DP1aMtysngU/C9FvjfF6Z+tHoMGWMh3p
	eU0jZj70p5KKBeUBczahsyb2Uo8FS1lMl3Q==
X-ME-Sender: <xms:GAmwaT-vQRLLubRvM6luZUlpjTvK97sbKobmuAr2xBOZcn_Y0rINeA>
    <xme:GAmwaR88TPi0OlTiBNQOBHdQ6HBHsp7ZTkM2eGC-StKd8dUQjxWgvoIGUrW8tht_l
    V-5WicOA2e6JQm5iVy7gc4k-M7-oTH4T3FyAj8MJAZLuxU8tDQ>
X-ME-Received: <xmr:GAmwaTRPUXD2VVnas-YN0d8JadaNGJoaRSTEKli_HLSSKwOLV_A21mAKpAAX0TDRtzAmCG1HYHFoRx3bfpam_151XiWqT4yqSjg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvkedtleejucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtroertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnheptdetvdfh
    kedutedvleffgeeutdektefhtefhfffhfeetgefhieegledvtddtkedtnecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepjedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtgho
    mhdprhgtphhtthhopehsohhumhihrghjhihothhishgrrhhkrghrvdefsehgmhgrihhlrd
    gtohhmpdhrtghpthhtohepughpshhmihhthhesrghpvghrthhushhsohhluhhtihhonhhs
    rdgtohhmpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpdhrtg
    hpthhtoheprghnughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphht
    thhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprh
    gtphhtthhopehsrghrkhgrrhhsohhumhihrghjhihothhivdefsehgmhgrihhlrdgtohhm
X-ME-Proxy: <xmx:GAmwaVffZoq4apeWgcz0K6I4dz__UBVQDwmkuo713enpMwemnedH0A>
    <xmx:GAmwaXAWXviDqsCDB-Q98y0MuRttHobBcquIwPLo5tOs23FKXL_yCA>
    <xmx:GAmwaXmNxWm89GeX1Y10F6AwqKHhehUqXDDwNmIG6nsWoUeyp6XQgQ>
    <xmx:GAmwaSdOnlMWJpDVPhw3HckRCqwtI3Pb0mgJUbDYqES-LQf-DUlHgw>
    <xmx:GAmwaQo5ucDR5keMWZNsGopc83lrMF72w79HIYvO9LFdWwS_AGhB7S-t>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 10 Mar 2026 13:05:41 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com
Subject: Re: [PATCH v2 3/3] x86/efi: Add opt-out mechanism for BGRT
 preservation
Message-ID: <abAJFQMqDssTsORx@mail-itl>
References: <20260306132935.13727-1-soumyajyotisarkar23@gmail.com>
 <20260306132935.13727-4-soumyajyotisarkar23@gmail.com>
 <bce96393-9790-44fb-9958-0adeeafb78b9@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="H3L8xXMJr0AcoNuY"
Content-Disposition: inline
In-Reply-To: <bce96393-9790-44fb-9958-0adeeafb78b9@suse.com>


--H3L8xXMJr0AcoNuY
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 10 Mar 2026 13:05:41 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com
Subject: Re: [PATCH v2 3/3] x86/efi: Add opt-out mechanism for BGRT
 preservation

On Tue, Mar 10, 2026 at 12:41:40PM +0100, Jan Beulich wrote:
> On 06.03.2026 14:29, Soumyajyotii Ssarkar wrote:
> > As described in the task, BGRT preservation is now enabled by default t=
o fix ACPI corruption
> > for desktop/workstation systems (similar to ESRT).
>=20
> What's "the task"?

I asked him to work on this, but I don't think there is a gitlab issue
created, so reference to "the task" is not relevant here.

> > Add an opt-out parameter 'efi=3Dno-bgrt' to allow disabling BGRT
> > preservation on systems where the ~1MB memory overhead is not
> > desired.
>=20
> This looks to contradict ...
>=20
> > The parameter is parsed during normal Xen boot (not during EFI
> > phase), so it only affects diagnostic logging.
>=20
> ... this. For xen.efi you want to add code to the command line parsing
> near the top of efi_start(). What to do for the MB2 boot path perhaps
> the only thing there is to peek into the command line (see
> arch/x86/boot/cmdline.c).

See also my response on v1 - for MB2 path, look at efi_multiboot2().

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmwCRUACgkQ24/THMrX
1yxA5ggAiLMgeHCgw354QZxy5Nz4/ZL+zy+dagaWLjfWgg8hixKmsiIJE2jmnIC9
qdCvZEueyTdXXesW+ojfHOHWBmVxVKdnbO50lMWIpccmjDIGhfyHxSB3qalACeTJ
hmFMbp1eAnBNaqwouZFLgMI8TKSkg3m1xiegDMSIYIdIgUVYF3r4cZWAZ9XoLoIm
2oVnDhLs/k1KCyd2t4Ah3uIBWyt8N40dRCYdFfyISVpfuiF6iKrl5Y+D0DwRdcKI
bpSMEi0o2rGK6Cm77XSrCrgCCbnWoUAafH8xz5JgE8y0hc5Tc5D3SlGwsKSd8b47
Nj5mkEpbPJzM7eCOEY8NyfmdvsYVmA==
=FjQ8
-----END PGP SIGNATURE-----

--H3L8xXMJr0AcoNuY--


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 12:07:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 12:07:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250070.1547512 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzvrs-0003tJ-TY; Tue, 10 Mar 2026 12:07:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250070.1547512; Tue, 10 Mar 2026 12:07:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzvrs-0003tC-QA; Tue, 10 Mar 2026 12:07:20 +0000
Received: by outflank-mailman (input) for mailman id 1250070;
 Tue, 10 Mar 2026 12:07: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=iDxx=BK=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vzvrr-0003sl-KI
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 12:07:19 +0000
Received: from fhigh-b5-smtp.messagingengine.com
 (fhigh-b5-smtp.messagingengine.com [202.12.124.156])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ae4fbfdf-1c79-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 13:07:17 +0100 (CET)
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 21B4B7A0208;
 Tue, 10 Mar 2026 08:07:16 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-06.internal (MEProxy); Tue, 10 Mar 2026 08:07:16 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 10 Mar 2026 08:07:14 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ae4fbfdf-1c79-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1773144435;
	 x=1773230835; bh=rJNy2V1r18eUkt+FDuWvUZnnrRhtKNBTvcoO1cA8wGY=; b=
	DtprdXdK47iH0UKWxVfFYMLu0GnDVyAk6B55KQGr8VtNreseOebu8GzwWedR1Apj
	PrS4ZyM3w5RUWBu8S6SHnCfJeTdq7Qilrgnojks4O4kAkkFbOEcRdNrBWguXZZez
	ROMsI4M7bHKfe3Uu/t1v+0cGtgX5VgvVmCZb9+vCtXXWNpQBcefEeouXotAS5uW/
	FPejGNmjiGIV+g5X68jH+1fkTs2WhNtPXHBFebZ0PSCAm6IaiuOevTedLaZ8Pw2y
	lgAFJr8C+0vfr4Ang5fp1kwnDcmZFs2gz40XyuHMnMZTEhNpklFEOv/9oyYcc+ea
	XOg9HXMefb3xDGPFmJLDdA==
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=
	1773144435; x=1773230835; bh=rJNy2V1r18eUkt+FDuWvUZnnrRhtKNBTvco
	O1cA8wGY=; b=jdSxJPL1JWV9W5hoG/3GRukqxd8+feRmcjh6UEb+NeOBTV46HlX
	5TxsAf0cPhaU8JhXiYeVrRHHIocsxRcjx3f8zrfX+WhB1IH2jpAefXy224aqnbMN
	CwItqe7OTYL2oFKTVj2z41/2XVcB9OpPcpq5yXuy4e4LSjueTU1OcFr63g9qSijs
	VgwGPE1JMjqiYy3ovkuSFN/hAyEQvk63sGHKDbwlJOh5QKTEpgncRi6jKqTvPYlq
	AbprotWDbzfY9/7mWBskPCQAm7kcsqfWEw/zWyftNhVrKN85whZvIrjpR3zFh1k+
	TP7UDikRbjyLaOTnF28aUBPyGb5J22CarQQ==
X-ME-Sender: <xms:cwmwaQ2ZHBV73Wc_g-fyAdIFX2vl14ccqwAn7A0SJ5WuvRx_ev4gmw>
    <xme:cwmwadXceAuOdDA4JETu95CfRyr1z7Pj0k9VFKvUkvbsSoXvhC9NGzNY6Gtt7Tpzd
    fmv2LGd-0e4vsuGYYrLATeIrTBqHPvvhBWtVDkuP88oFv-wdw>
X-ME-Received: <xmr:cwmwabJAfa4c5uN5z9iofnV4z9cZeqHt8X5oEsBdgPDz1p6OQvUHK65IHh0A-nH19KxyzxJUp6MASklmyPWx-Ota5NkmH2lDXGU>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvkedtleekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepjedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepshhouhhmhigrjhihohhtihhsrghrkhgr
    rhdvfeesghhmrghilhdrtghomhdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsth
    hsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehsrghrkhgrrhhsohhumhih
    rghjhihothhivdefsehgmhgrihhlrdgtohhmpdhrtghpthhtohepjhgsvghulhhitghhse
    hsuhhsvgdrtghomhdprhgtphhtthhopeguphhsmhhithhhsegrphgvrhhtuhhsshholhhu
    thhiohhnshdrtghomhdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtg
    homhdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhm
X-ME-Proxy: <xmx:cwmwaf3lO2IHyR6WImAtQ7sYQXQFAwYG14eXB0daILCjjAurmTl6oA>
    <xmx:cwmwaR4PE1c9m_-264nZQxO4TpugIzYOpoJZ1jEW8ncaA0TbU-SpkA>
    <xmx:cwmwaY_Dp3gswLCuCZ-usK4CeeKe4W1pVv8YgHxMoFLMmvOK5hViMQ>
    <xmx:cwmwaYUZz9Z1wTX4vebj48NxasfomSjAh3wHmrwJ-FZATUPjn2Uf5g>
    <xmx:cwmwaYiMx3GP9JvN3qZLw7EnkNHwSk0MF4oFR-X5LFxFrRxWQbVRBB76>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 10 Mar 2026 13:07:12 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com,
	Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH v2 1/3] x86/efi: Add BGRT image preservation during boot
Message-ID: <abAJcNkwwJt4lGAt@mail-itl>
References: <20260306132935.13727-1-soumyajyotisarkar23@gmail.com>
 <20260306132935.13727-2-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="p0lgbi4TdJfZJK01"
Content-Disposition: inline
In-Reply-To: <20260306132935.13727-2-soumyajyotisarkar23@gmail.com>


--p0lgbi4TdJfZJK01
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 10 Mar 2026 13:07:12 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com,
	Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH v2 1/3] x86/efi: Add BGRT image preservation during boot

On Fri, Mar 06, 2026 at 06:59:33PM +0530, Soumyajyotii Ssarkar wrote:
> The ACPI BGRT (Boot Graphics Resource Table) contains a pointer to a
> boot logo image stored in BootServicesData memory. When Xen reclaims
> this memory during boot, the image is lost and the BGRT table becomes
> invalid, causing Linux dom0 to report ACPI checksum errors.
>=20
> Add preservation logic similar to ESRT table handling:
> - Locate BGRT table via XSDT during EFI boot services phase
> - Validate BMP image signature and size (max 16 MB)
> - Copy image to EfiACPIReclaimMemory (safe from reclamation)
> - Update BGRT table with new image address
> - Recalculate ACPI table checksum
>=20
> The preservation runs automatically during efi_exit_boot() before
> Boot Services are terminated. This ensures the image remains
> accessible to dom0.
>=20
> Open-coded ACPI parsing is used because Xen's ACPI subsystem is not
> available during the EFI boot phase. The RSDP is obtained from the
> EFI System Table, and the XSDT is walked manually to find BGRT.
>=20
> Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
> ---
>  xen/arch/x86/efi/efi-boot.h |   2 +
>  xen/common/efi/boot.c       | 187 ++++++++++++++++++++++++++++++++++++
>  2 files changed, 189 insertions(+)
>=20
> diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
> index 42a2c46b5e..27792a56ff 100644
> --- a/xen/arch/x86/efi/efi-boot.h
> +++ b/xen/arch/x86/efi/efi-boot.h
> @@ -910,6 +910,8 @@ void __init efi_multiboot2(EFI_HANDLE ImageHandle,
>=20
>      efi_relocate_esrt(SystemTable);
>=20
> +    efi_preserve_bgrt_img(SystemTable);
> +

See my remark on v1 - efi_start() wants this change too.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmwCXAACgkQ24/THMrX
1yxuFQf9F1Sk9gsZiIayNgHTQJ41+Gdxf+DCn91KFOV3PKS0xjWCP162pvYMgU1o
RCTk+Zp1ycBVH2YgJSSKyq3//Iq8kH4drkso2aVGIdnoFHxwnUnvhPazwd+pQ0yT
tRGTsfJB2pbOxQUzxaqQYHjBf9D9yjxLpnhD0pXwL0fEZl6cS1x2r6OrxHuZ9EQ8
34u2ZK4gQ4iT34ll1xC3hJXevXLsjwvceGLOCB7Gf9MuoBvMs+cJmVps4SuYqti9
lfsIFyoOVcA30WjKLI1k5rBtgup/6EJi0m6NkhGYuEgaDd/nOuVAH0o+soR1aamU
pEMOT0EzcOqAb68z5+x8mwSTPtXtoA==
=MFMh
-----END PGP SIGNATURE-----

--p0lgbi4TdJfZJK01--


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 13:05:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 13:05:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250104.1547541 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzwmL-00038F-51; Tue, 10 Mar 2026 13:05:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250104.1547541; Tue, 10 Mar 2026 13:05:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzwmL-000388-2K; Tue, 10 Mar 2026 13:05:41 +0000
Received: by outflank-mailman (input) for mailman id 1250104;
 Tue, 10 Mar 2026 13:05:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mDiJ=BK=gmail.com=soumyajyotisarkar23@srs-se1.protection.inumbo.net>)
 id 1vzwmJ-000381-Nn
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 13:05:40 +0000
Received: from mail-ej1-x644.google.com (mail-ej1-x644.google.com
 [2a00:1450:4864:20::644])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d4daaa6a-1c81-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 14:05:37 +0100 (CET)
Received: by mail-ej1-x644.google.com with SMTP id
 a640c23a62f3a-b9382e59c0eso1079331266b.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 06:05:37 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d4daaa6a-1c81-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1773147937; cv=none;
        d=google.com; s=arc-20240605;
        b=McI1cfhYTRN/FLgAKf/qPb0TkMJVTgzJG+agBjLZXGyP5Qdq/CIpTvFfKlQvVJfj7q
         PYb1v/rLyau3xYIMBmCgwG1+fyFy04ZUYR08JJ8aQ1QlIFbrHSYia9oOtgqzFKDE4gW9
         MnJ9TYEKDvnBQhXK1bu85UBeN/syQh6Gqfe73ai/gzbSPtVElh597aSD31B9LZgK4taw
         dvcmy4/ax2kqA/nLc5EUym2xbNwsPQ2Kc5PutjwZE4l1/ACDcdwyEI3/Y1fZb8GnVQBS
         a+zRfJxNYkCg9DOc+p+04J1EsyrH6oIcg0R5BatdQ4zlD6ZRZ+ukxYEaoEnCqRexE8s8
         hisw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:dkim-signature;
        bh=ga8jCZ7CqbuFk4UhyLtYz4TN6QQ9AKKQ+o8iEh3ZVkU=;
        fh=kR8e0jgh9J8Sozt4pR++eFa4KCzOPti8Z95iha/9tDE=;
        b=Ybbz7lCZYHiiqbnojj92tPi39tQmaBzcx8BoNprEbSDKRSrRbjoXrnTCRp4cwICtqJ
         qLnY/dG6FkvKNM5cpfV8EEL0UG/LUz5s1hvgsbqOS2ilh+ZnkF9bUfxpLe3oYOiNk/qx
         X+cwA08Pz4d+DlMOhik7qpc+zgJP/1vKlH7AQCQNb1G5PUN758cCujo2LuA6Ta+Tserv
         VEYxeP3ehwgPgWjuXf8n1BGFtMkWadSWfllO+eu0otNeGP+Im180qm0SZpWvo0v6I0oZ
         CI5/mejqYCo5kiETKYE0wDxFA5GNNSKCg6FIMWf+KcTyDtUlANLDVmrjdlxrZE9ZNYpH
         OBjA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773147937; x=1773752737; 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=ga8jCZ7CqbuFk4UhyLtYz4TN6QQ9AKKQ+o8iEh3ZVkU=;
        b=MV7iu4Bwlg0uZTDOS16uSnxGZ3hVUCRi4lkUj2vj6EcYnZy31i9ExiQIoYxMUQHsLj
         YlUgGtLQ6d/zOYNNWTHtkviOhCKSawdgPK7wi5RQnYfYaWnamZ2C7pQnLeBuvvBecGGJ
         h/IsHKoxGUwHFHuaacWBF08NvH4vaL9MTdQoHcDJo7cF8uQEN3P3q5kMywQ/AZ7ekw6N
         ltCTd7PUirXgIHKLzX/EjrhI0kO7k4RS1uQDJ09++CqlJuiZI3oQVy37kdZr+eBeOSnc
         icomaHfRdbV2xvNfIiFjg9mb9vMk9DMBK3nBul3xZYcccwuc5ebMnXh8N3LDVzD+DUEp
         3/lQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773147937; x=1773752737;
        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=ga8jCZ7CqbuFk4UhyLtYz4TN6QQ9AKKQ+o8iEh3ZVkU=;
        b=t2kMYzXENDZDy2ksLSO5ly9xWlEtZ7RqgApBUSwJOkYJXBzyuv0wjKbzufoA4woKAl
         6ULqdjWRH2LX0xmbahBrJ2iqc4/3qteDA94Z/A7nYRjXLakf8XHLCsmGBi03n+b7auEf
         oVSNncMCtN1nBLfrNX14YlH61moZTspXbrxOn/QFCiBMoK6j66C/dgjuYEwHEOEjmXzf
         WYwYOWwJUi3eyujJoeJBW/MxCVVZ8T34kyRvsl75J9f/F8VO6BpE7FYsDkMSli6aUNVV
         vSD/URDoPKfHCf4885pxR68is/kPMTXB1T1sRZ/U2wsQjYFBGKyG634lxvJ77snniGu9
         ya9A==
X-Forwarded-Encrypted: i=1; AJvYcCV2kBqqpZ/5UKbBEUj+0L/UF5Gtz9c/NBI4BgwM28sp5g1AcMs7dcdbJ7ei9KHs44llPSDMJGrnNvw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxLA4OBgUZocNzEnlwghcUmFw9qNskWc/tWBgwR9PxnoDrexpm9
	euIm3PBFo8dlj2C9ydGqRL9h6BkiS1Bfs6MUJbGUlpwlDD+P1n3D95Oj+IQbXXyDzbGuCmhf9Uz
	IZcdLN/7tQRmEHjS6TT9UGcDmhxpab1s=
X-Gm-Gg: ATEYQzyb7lVtgiiOz7g/cVyiZejcQDuyCUj3SP/zEp/xZXXEyeAlE9RMwTSf01JmrgE
	RBH7nz7TDlYCydz4WCJXqP+YBeNOqRI9kqVXWLw+4BSDr94mhtdXgV7R0LV6HdkJRdR9Y8pXQ5g
	7QYE7buX5/MvZNUa/OMXYfrYICJrUZJu9mnvD9lCLSLcwQqx7KTFewjAsLFGuR4H9FRnULpGXLN
	pWAq+wVvdz8TFliMV03hwtNdTPXBiq6Igs6GMfYDsKccKU7NaypomsHI3VVQsRX7Il2KcCxnARE
	PAnone0XwWgcvo5sLulK050WC4BBnQvlaQRdmDHsdkIx+0FAYzJeQAirVOnAvy3JwMK9Y5JMSXO
	86z0knqbKDGRJ5kMYMXDovzbKaE1Fc47XcW5111vEjYloQEUM
X-Received: by 2002:a17:907:d91:b0:b96:dac1:60b with SMTP id
 a640c23a62f3a-b96dac10e1fmr594792266b.49.1773147936272; Tue, 10 Mar 2026
 06:05:36 -0700 (PDT)
MIME-Version: 1.0
References: <20260305191810.31033-1-soumyajyotisarkar23@gmail.com>
 <20260305191810.31033-2-soumyajyotisarkar23@gmail.com> <aa3AKoCFFhwD4-LX@mail-itl>
 <609060f4-d94b-4b65-a10b-5126f10307db@suse.com>
In-Reply-To: <609060f4-d94b-4b65-a10b-5126f10307db@suse.com>
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Date: Tue, 10 Mar 2026 18:35:24 +0530
X-Gm-Features: AaiRm52DwxILmcUMzvBlmOS6wDYYa4zXQH9UHyXqq5qdsqK9MySdegCo4yT6kFc
Message-ID: <CAGkZZ+sGLY==UxBJ=BGLjfKQTTMMZ7zRzaZ1MAjWT7Ak_gytyQ@mail.gmail.com>
Subject: Re: [PATCH 1/3] x86/efi: Add BGRT image preservation during boot
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com, 
	"Daniel P . Smith" <dpsmith@apertussolutions.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>
Content-Type: multipart/alternative; boundary="000000000000e035cd064cab2cd5"

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

On Mon, Mar 9, 2026 at 1:01=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wrot=
e:

> On 08.03.2026 19:30, Marek Marczykowski-G=C3=B3recki wrote:
> > On Fri, Mar 06, 2026 at 12:48:08AM +0530, Soumyajyotii Ssarkar wrote:
> >> --- a/xen/common/efi/boot.c
> >> +++ b/xen/common/efi/boot.c
> >> @@ -7,6 +7,7 @@
> >>  #include <xen/ctype.h>
> >>  #include <xen/dmi.h>
> >>  #include <xen/domain_page.h>
> >> +#include <xen/errno.h>
> >>  #include <xen/init.h>
> >>  #include <xen/keyhandler.h>
> >>  #include <xen/lib.h>
> >> @@ -173,6 +174,14 @@ static struct file __initdata ramdisk;
> >>  static struct file __initdata xsm;
> >>  static const CHAR16 __initconst newline[] =3D L"\r\n";
> >>
> >> +static __initdata struct {
> >> +    bool preserved;
> >> +    uint64_t old_addr;
> >> +    uint64_t new_addr;
> >> +    uint32_t size;
> >> +    const char *failure_reason;
> >> +} bgrt_debug_info;
> >> +
> >>  static void __init PrintStr(const CHAR16 *s)
> >>  {
> >>      StdOut->OutputString(StdOut, (CHAR16 *)s );
> >> @@ -747,6 +756,171 @@ static void __init
> efi_relocate_esrt(EFI_SYSTEM_TABLE *SystemTable)
> >>      efi_bs->FreePool(memory_map);
> >>  }
> >>
> >> +struct bmp_header {
> >> +    uint16_t signature;
> >> +    uint32_t file_size;
> >> +    uint16_t reserved_1;
> >> +    uint16_t reserved_2;
> >> +    uint32_t data_offset;
> >> +} __attribute__((packed));
> >> +
> >> +/*
> >> + * ACPI Structures - defined locally,
> >> + * since we cannot include acpi headers
> >> + * in EFI Context.
> >> + */
> >> +
> >> +struct acpi_rsdp {
> >> +    char signature[8];
> >> +    uint8_t checksum;
> >> +    char oem_id[6];
> >> +    uint8_t revision;
> >> +    uint32_t rsdt_physical_address;
> >> +    uint32_t length;
> >> +    uint64_t xsdt_physical_address;
> >> +    uint8_t extended_checksum;
> >> +    uint8_t reserved[3];
> >> +} __attribute__((packed));
> >> +
> >> +struct acpi_table_header {
> >> +    char signature[4];
> >> +    uint32_t length;
> >> +    uint8_t revision;
> >> +    uint8_t checksum;
> >> +    char oem_id[6];
> >> +    char oem_table_id[8];
> >> +    uint32_t oem_revision;
> >> +    uint32_t asl_compiler_id;
> >> +    uint32_t asl_compiler_revision;
> >> +} __attribute__((packed));
> >> +
> >> +struct acpi_xsdt {
> >> +    struct acpi_table_header header;
> >> +    uint64_t table_offset_entry[1]; /* Variable array length */
> >
> > uint64_t table_offset_entry[];
> >
> > BTW, do we have some canonical place with list of files imported (and
> > kept in sync) with other projects? xen/include/acpi/actbl.h doesn't
> > exactly follow Xen coding style, but it's unclear to me if it needs to
> > stay this way.
>
> I don't really understand why the headers we've got can't be used. Even
> some of the library-like code under xen/acpi/ may be usable here.
>
> While we don't exactly keep xen/include/acpi/ in sync with Linux, when
> things are added we preferably add them in the way Linux has them.
>
>
I was trying to avoid including the headers from the xen/include/acpi/
since it was specified in the comment. to not include them.
Specific comment specified below this paragraph.
Also since acpi was using datatypes like "u32" while boot.c had types of
"uint32", so it felt a bit non-standardized.
I checked the rest of the boot.c which followed the same manner. So I went
with this choice.

/* * Keep this arch-specific modified include in the common file, as moving
 * it to the arch specific include file would obscure that special care is
 * taken to include it with __ASSEMBLER__ defined.
*/
#define __ASSEMBLER__ /* avoid pulling in ACPI stuff (conflicts with EFI)
*/
#include <asm/fixmap.h>
#undef __ASSEMBLER__
#endif

The ACPI headers in /xen/include/acpi uses defines such
as ACPI_NAME_SIZE, ACPI_OEM_ID_SIZE
and ACPI_OEM_TABLE_ID_SIZE these require adding additional
<acpi/acconfig.h> header.
Also since their is no acpi headers included in the boot.c file, so i
thought to I avoid it.

Thus to get it fully working with ACPI headers from the xen/include/acpi I
would require these three headers.
#include <acpi/acconfig.h>
#include <acpi/actbl.h>
#include <acpi/actbl3.h>

I thought this would lead to cross contamination, and confusing to further
modifications in future so weighing my options I thought best to redefine
them,
for code clarity.
Can you suggest me best option to move forward, should I redefine them as
is or include the headers?

>> +} __attribute__((packed));
> >> +
> >> +struct acpi_bgrt {
> >> +    struct acpi_table_header header;
> >> +    uint16_t version;
> >> +    uint8_t status;
> >> +    uint8_t image_type;
> >> +    uint64_t image_address;
> >> +    uint32_t image_offset_x;
> >> +    uint32_t image_offset_y;
> >> +} __attribute__((packed));
> >> +
> >> +static struct acpi_bgrt* __init find_bgrt_table(EFI_SYSTEM_TABLE
> *SystemTable)
>
> Nit (style): The first * is misplaced.
>
> >> +{
> >> +    EFI_GUID acpi2_guid =3D ACPI_20_TABLE_GUID;
> >> +    struct acpi_rsdp *rsdp =3D NULL;
> >> +    struct acpi_xsdt *xsdt;
> >> +    struct acpi_bgrt *bgrt;
>
> Here and ...
>
> >> +    uint32_t entry_count, actual_size;
> >> +    unsigned int i;
> >> +
> >> +    for ( i =3D 0; i < SystemTable->NumberOfTableEntries; i++ )
> >> +    {
> >> +        if ( match_guid(&acpi2_guid,
> &SystemTable->ConfigurationTable[i].VendorGuid) )
> >> +        {
> >> +            rsdp =3D SystemTable->ConfigurationTable[i].VendorTable;
> >> +            break;
> >> +        }
> >> +    }
> >> +
> >> +    if ( !rsdp || !rsdp->xsdt_physical_address )
> >> +        return NULL;
> >> +
> >> +    xsdt =3D (struct acpi_xsdt *)rsdp->xsdt_physical_address;
> >> +    if ( !xsdt )
> >> +        return NULL;
> >> +
> >> +    actual_size =3D (xsdt->header.length - sizeof(struct
> acpi_table_header));
> >> +    entry_count =3D (actual_size / sizeof(uint64_t));
> >> +
> >> +    for ( i =3D 0; i < entry_count; i++ )
> >> +    {
> >> +        struct acpi_table_header *header =3D (struct acpi_table_heade=
r
> *)xsdt->table_offset_entry[i];
>
> ... here and elsewhere - please use pointer-to-const wherever possible.
>
> >> +        if (   header->signature[0] =3D=3D 'B'
> >> +            && header->signature[1] =3D=3D 'G'
> >> +            && header->signature[2] =3D=3D 'R'
> >> +            && header->signature[3] =3D=3D 'T' )
> >
> > strncmp?
>
> Or even memcmp() in this case. Plus there is ACPI_SIG_BGRT.


Yeah, my apologies. Since I was going with the whole not including acpi
headers idea,
I thought this would be better stylistic choice.

New patch version with strncmp upcoming.

The headers are in xen/include/acpi, so was trying to work around without
including them.
Perhaps including the headers would be the move forward?

What is your opinion Marek?


>
>> +        {
> >> +            bgrt =3D (struct acpi_bgrt *)header;
> >
> > You can just return it here, avoiding the extra variable.
> >
> >> +            return bgrt;
> >> +        }
> >> +    }
> >> +    return NULL;
> >> +}
> >> +
> >> +#define MAX_IMAGE_SIZE  (16 * 1024 * 1024)    /* Sanity check: reject
> if bigger */
> >> +
> >> +static void __init efi_preserve_bgrt_img(EFI_SYSTEM_TABLE *SystemTabl=
e)
> >> +{
> >> +    struct acpi_bgrt *bgrt;
> >> +    struct bmp_header *bmp;
> >> +    void *old_image, *new_image;
> >> +    uint32_t image_size;
> >> +    EFI_STATUS status;
> >> +    uint8_t checksum;
> >> +    unsigned int i;
> >> +
> >> +    bgrt_debug_info.preserved =3D false;
> >> +    bgrt_debug_info.failure_reason =3D NULL;
> >> +
> >> +    bgrt =3D find_bgrt_table(SystemTable);
> >> +    if ( !bgrt )
> >> +    {
> >> +        bgrt_debug_info.failure_reason =3D "BGRT table not found in
> XSDT";
> >> +        return;
> >> +    }
> >> +
> >> +    if ( !bgrt->image_address )
> >> +    {
> >> +        bgrt_debug_info.failure_reason =3D "BGRT image_address is NUL=
L";
> >> +        return;
> >> +    }
> >> +
> >> +    old_image =3D (void *)bgrt->image_address;
> >> +    bmp =3D (struct bmp_header *)old_image;
> >> +
> >> +    if ( bmp->signature !=3D 0x4D42 )
> >> +    {
> >> +        bgrt_debug_info.failure_reason =3D "Invalid BMP signature";
> >> +        return;
> >> +    }
> >> +
> >> +    image_size =3D bmp->file_size;
> >> +    if ( !image_size || image_size > MAX_IMAGE_SIZE )
> >> +    {
> >> +        bgrt_debug_info.failure_reason =3D "Invalid image size";
> >> +        return;
> >> +    }
> >> +
> >> +    status =3D efi_bs->AllocatePool(EfiACPIReclaimMemory, image_size,
> &new_image);
> >> +    if ( status !=3D EFI_SUCCESS || !new_image )
> >> +    {
> >> +        bgrt_debug_info.failure_reason =3D "Memory allocation failed"=
;
> >> +        return;
> >> +    }
> >> +
> >> +    memcpy(new_image, old_image, image_size);
> >> +
> >> +    bgrt->image_address =3D (uint64_t)new_image;
> >> +    bgrt->status |=3D 0x01;
> >
> > Why forcing the "displayed" bit here?
>
> And if this is needed, why by way of a literal number rather than a
> suitable
> #define?
>
> >> +    bgrt->header.checksum =3D 0;
> >> +    checksum =3D 0;
> >> +    for ( i =3D 0; i < bgrt->header.length; i++ )
> >> +        checksum +=3D ((uint8_t *)bgrt)[i];
> >> +    bgrt->header.checksum =3D (uint8_t)(0 - checksum);
> >> +
> >> +    bgrt_debug_info.preserved =3D true;
> >> +    bgrt_debug_info.old_addr =3D (uint64_t)old_image;
> >> +    bgrt_debug_info.new_addr =3D (uint64_t)new_image;
> >> +    bgrt_debug_info.size =3D image_size;
> >> +}
> >> +
> >
> > This is quite a bit of code, maybe move to a separate file? But I'd lik=
e
> > to hear what others think.
>
>
I believe it won't be necessary to add a separate file for this since it's
just a 2 functions.
I believe this since most of the ESRT patches, which I based my patches on
didn't use a separate file.
But now since with the whole, header issue and redefining the structs I
think a separate file would also be a viable option too.

Perhaps any 2 options:
Moving with a separate file for cleaner code.
Moving with existing file for non-standardized code.
I would love your opinions on this.

Further, I think I should revise the further patches to RFC for clarity.
Before coming to a conclusion.
And sending as patch to be pulled.

Whether to put in a separate file is only the 2nd question imo. The first i=
s
> whether this much code is needed in the first place.
>


> Jan
>

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

<div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr">On Mon, Mar 9, 2026 at 1=
:01=E2=80=AFPM Jan Beulich &lt;<a href=3D"mailto:jbeulich@suse.com" target=
=3D"_blank">jbeulich@suse.com</a>&gt; wrote:</div><div class=3D"gmail_quote=
"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;borde=
r-left:1px solid rgb(204,204,204);padding-left:1ex">On 08.03.2026 19:30, Ma=
rek Marczykowski-G=C3=B3recki wrote:<br>
&gt; On Fri, Mar 06, 2026 at 12:48:08AM +0530, Soumyajyotii Ssarkar wrote:<=
br>
&gt;&gt; --- a/xen/common/efi/boot.c<br>
&gt;&gt; +++ b/xen/common/efi/boot.c<br>
&gt;&gt; @@ -7,6 +7,7 @@<br>
&gt;&gt;=C2=A0 #include &lt;xen/ctype.h&gt;<br>
&gt;&gt;=C2=A0 #include &lt;xen/dmi.h&gt;<br>
&gt;&gt;=C2=A0 #include &lt;xen/domain_page.h&gt;<br>
&gt;&gt; +#include &lt;xen/errno.h&gt;<br>
&gt;&gt;=C2=A0 #include &lt;xen/init.h&gt;<br>
&gt;&gt;=C2=A0 #include &lt;xen/keyhandler.h&gt;<br>
&gt;&gt;=C2=A0 #include &lt;xen/lib.h&gt;<br>
&gt;&gt; @@ -173,6 +174,14 @@ static struct file __initdata ramdisk;<br>
&gt;&gt;=C2=A0 static struct file __initdata xsm;<br>
&gt;&gt;=C2=A0 static const CHAR16 __initconst newline[] =3D L&quot;\r\n&qu=
ot;;<br>
&gt;&gt;<br>
&gt;&gt; +static __initdata struct {<br>
&gt;&gt; +=C2=A0 =C2=A0 bool preserved;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint64_t old_addr;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint64_t new_addr;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint32_t size;<br>
&gt;&gt; +=C2=A0 =C2=A0 const char *failure_reason;<br>
&gt;&gt; +} bgrt_debug_info;<br>
&gt;&gt; +<br>
&gt;&gt;=C2=A0 static void __init PrintStr(const CHAR16 *s)<br>
&gt;&gt;=C2=A0 {<br>
&gt;&gt;=C2=A0 =C2=A0 =C2=A0 StdOut-&gt;OutputString(StdOut, (CHAR16 *)s );=
<br>
&gt;&gt; @@ -747,6 +756,171 @@ static void __init efi_relocate_esrt(EFI_SYS=
TEM_TABLE *SystemTable)<br>
&gt;&gt;=C2=A0 =C2=A0 =C2=A0 efi_bs-&gt;FreePool(memory_map);<br>
&gt;&gt;=C2=A0 }<br>
&gt;&gt;<br>
&gt;&gt; +struct bmp_header {<br>
&gt;&gt; +=C2=A0 =C2=A0 uint16_t signature;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint32_t file_size;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint16_t reserved_1;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint16_t reserved_2;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint32_t data_offset;<br>
&gt;&gt; +} __attribute__((packed));<br>
&gt;&gt; +<br>
&gt;&gt; +/*<br>
&gt;&gt; + * ACPI Structures - defined locally,<br>
&gt;&gt; + * since we cannot include acpi headers<br>
&gt;&gt; + * in EFI Context.<br>
&gt;&gt; + */<br>
&gt;&gt; +<br>
&gt;&gt; +struct acpi_rsdp {<br>
&gt;&gt; +=C2=A0 =C2=A0 char signature[8];<br>
&gt;&gt; +=C2=A0 =C2=A0 uint8_t checksum;<br>
&gt;&gt; +=C2=A0 =C2=A0 char oem_id[6];<br>
&gt;&gt; +=C2=A0 =C2=A0 uint8_t revision;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint32_t rsdt_physical_address;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint32_t length;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint64_t xsdt_physical_address;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint8_t extended_checksum;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint8_t reserved[3];<br>
&gt;&gt; +} __attribute__((packed));<br>
&gt;&gt; +<br>
&gt;&gt; +struct acpi_table_header {<br>
&gt;&gt; +=C2=A0 =C2=A0 char signature[4];<br>
&gt;&gt; +=C2=A0 =C2=A0 uint32_t length;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint8_t revision;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint8_t checksum;<br>
&gt;&gt; +=C2=A0 =C2=A0 char oem_id[6];<br>
&gt;&gt; +=C2=A0 =C2=A0 char oem_table_id[8];<br>
&gt;&gt; +=C2=A0 =C2=A0 uint32_t oem_revision;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint32_t asl_compiler_id;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint32_t asl_compiler_revision;<br>
&gt;&gt; +} __attribute__((packed));<br>
&gt;&gt; +<br>
&gt;&gt; +struct acpi_xsdt {<br>
&gt;&gt; +=C2=A0 =C2=A0 struct acpi_table_header header;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint64_t table_offset_entry[1]; /* Variable array l=
ength */<br>
&gt; <br>
&gt; uint64_t table_offset_entry[];<br>
&gt; <br>
&gt; BTW, do we have some canonical place with list of files imported (and<=
br>
&gt; kept in sync) with other projects? xen/include/acpi/actbl.h doesn&#39;=
t<br>
&gt; exactly follow Xen coding style, but it&#39;s unclear to me if it need=
s to<br>
&gt; stay this way.<br>
<br>
I don&#39;t really understand why the headers we&#39;ve got can&#39;t be us=
ed. Even<br>
some of the library-like code under xen/acpi/ may be usable here.<br>
<br>
While we don&#39;t exactly keep xen/include/acpi/ in sync with Linux, when<=
br>
things are added we preferably add them in the way Linux has them.<br>
<br></blockquote><div>=C2=A0</div><div>I was trying to avoid including the =
headers from the xen/include/acpi/ since it was specified in the comment. t=
o not include them.</div><div>Specific comment specified below this paragra=
ph.</div><div>Also since acpi was using datatypes like &quot;u32&quot; whil=
e boot.c had types of &quot;uint32&quot;, so it felt a bit non-standardized=
.</div><div>I checked the rest of the boot.c which followed the same manner=
. So I went with this choice.</div><div><br></div><div>/* * Keep this arch-=
specific modified include in the common file, as moving=C2=A0</div><div>=C2=
=A0* it to the arch specific include file would obscure that special care i=
s=C2=A0</div><div>=C2=A0* taken to include it with __ASSEMBLER__ defined.=
=C2=A0</div><div>*/=C2=A0</div><div>#define __ASSEMBLER__ /* avoid pulling =
in ACPI stuff (conflicts with EFI) */=C2=A0</div><div>#include &lt;asm/fixm=
ap.h&gt;=C2=A0</div><div>#undef __ASSEMBLER__=C2=A0</div><div>#endif=C2=A0<=
/div><div><br></div><div>The ACPI headers in /xen/include/acpi uses defines=
 such as=C2=A0ACPI_NAME_SIZE,=C2=A0ACPI_OEM_ID_SIZE=C2=A0</div><div>and=C2=
=A0ACPI_OEM_TABLE_ID_SIZE these require adding additional &lt;acpi/acconfig=
.h&gt; header.</div><div>Also since their is no acpi headers included in th=
e boot.c file, so i thought to I avoid it.</div><div><br></div><div>Thus to=
 get it fully working with ACPI headers from the xen/include/acpi I would r=
equire these three headers.</div><div>#include &lt;acpi/acconfig.h&gt;<br>#=
include &lt;acpi/actbl.h&gt;<br>#include &lt;acpi/actbl3.h&gt;</div><div><b=
r></div><div>I thought this would lead to cross contamination, and confusin=
g to further modifications in future so weighing my options I thought best =
to redefine them,</div><div>for code clarity.</div><div>Can you suggest me =
best option to move forward, should I redefine them as is or include the he=
aders?=C2=A0</div><div><br></div><blockquote class=3D"gmail_quote" style=3D=
"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-le=
ft:1ex">&gt;&gt; +} __attribute__((packed));<br>
&gt;&gt; +<br>
&gt;&gt; +struct acpi_bgrt {<br>
&gt;&gt; +=C2=A0 =C2=A0 struct acpi_table_header header;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint16_t version;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint8_t status;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint8_t image_type;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint64_t image_address;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint32_t image_offset_x;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint32_t image_offset_y;<br>
&gt;&gt; +} __attribute__((packed));<br>
&gt;&gt; +<br>
&gt;&gt; +static struct acpi_bgrt* __init find_bgrt_table(EFI_SYSTEM_TABLE =
*SystemTable)<br>
<br>
Nit (style): The first * is misplaced.<br>
<br>
&gt;&gt; +{<br>
&gt;&gt; +=C2=A0 =C2=A0 EFI_GUID acpi2_guid =3D ACPI_20_TABLE_GUID;<br>
&gt;&gt; +=C2=A0 =C2=A0 struct acpi_rsdp *rsdp =3D NULL;<br>
&gt;&gt; +=C2=A0 =C2=A0 struct acpi_xsdt *xsdt;<br>
&gt;&gt; +=C2=A0 =C2=A0 struct acpi_bgrt *bgrt;<br>
<br>
Here and ...<br>
<br>
&gt;&gt; +=C2=A0 =C2=A0 uint32_t entry_count, actual_size;<br>
&gt;&gt; +=C2=A0 =C2=A0 unsigned int i;<br>
&gt;&gt; +<br>
&gt;&gt; +=C2=A0 =C2=A0 for ( i =3D 0; i &lt; SystemTable-&gt;NumberOfTable=
Entries; i++ )<br>
&gt;&gt; +=C2=A0 =C2=A0 {<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 if ( match_guid(&amp;acpi2_guid, &amp=
;SystemTable-&gt;ConfigurationTable[i].VendorGuid) )<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 {<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 rsdp =3D SystemTable-&g=
t;ConfigurationTable[i].VendorTable;<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 break;<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
&gt;&gt; +=C2=A0 =C2=A0 }<br>
&gt;&gt; +<br>
&gt;&gt; +=C2=A0 =C2=A0 if ( !rsdp || !rsdp-&gt;xsdt_physical_address )<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 return NULL;<br>
&gt;&gt; +<br>
&gt;&gt; +=C2=A0 =C2=A0 xsdt =3D (struct acpi_xsdt *)rsdp-&gt;xsdt_physical=
_address;<br>
&gt;&gt; +=C2=A0 =C2=A0 if ( !xsdt )<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 return NULL;<br>
&gt;&gt; +<br>
&gt;&gt; +=C2=A0 =C2=A0 actual_size =3D (xsdt-&gt;header.length - sizeof(st=
ruct acpi_table_header));<br>
&gt;&gt; +=C2=A0 =C2=A0 entry_count =3D (actual_size / sizeof(uint64_t));<b=
r>
&gt;&gt; +<br>
&gt;&gt; +=C2=A0 =C2=A0 for ( i =3D 0; i &lt; entry_count; i++ )<br>
&gt;&gt; +=C2=A0 =C2=A0 {<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct acpi_table_header *header =3D =
(struct acpi_table_header *)xsdt-&gt;table_offset_entry[i];<br>
<br>
... here and elsewhere - please use pointer-to-const wherever possible.<br>
<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (=C2=A0 =C2=A0header-&gt;signature=
[0] =3D=3D &#39;B&#39;<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &amp;&amp; header-&gt;s=
ignature[1] =3D=3D &#39;G&#39;<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &amp;&amp; header-&gt;s=
ignature[2] =3D=3D &#39;R&#39;<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &amp;&amp; header-&gt;s=
ignature[3] =3D=3D &#39;T&#39; )<br>
&gt; <br>
&gt; strncmp?<br>
<br>
Or even memcmp() in this case. Plus there is ACPI_SIG_BGRT.</blockquote><di=
v><br></div><div>Yeah, my apologies. Since I was going with the whole not i=
ncluding acpi headers idea,=C2=A0</div><div>I thought this would be better =
stylistic choice.=C2=A0</div><div><br></div><div>New patch version with str=
ncmp upcoming.</div><div>=C2=A0</div><div>The headers are in xen/include/ac=
pi, so was trying to work around without including them.</div><div>Perhaps =
including the headers would be the move forward?</div><div><br></div><div>W=
hat is your opinion Marek?</div><div><br></div><blockquote class=3D"gmail_q=
uote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,2=
04);padding-left:1ex">=C2=A0<br></blockquote><blockquote class=3D"gmail_quo=
te" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204=
);padding-left:1ex">
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 {<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bgrt =3D (struct acpi_b=
grt *)header;<br>
&gt; <br>
&gt; You can just return it here, avoiding the extra variable.<br>
&gt; <br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return bgrt;<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
&gt;&gt; +=C2=A0 =C2=A0 }<br>
&gt;&gt; +=C2=A0 =C2=A0 return NULL;<br>
&gt;&gt; +}<br>
&gt;&gt; +<br>
&gt;&gt; +#define MAX_IMAGE_SIZE=C2=A0 (16 * 1024 * 1024)=C2=A0 =C2=A0 /* S=
anity check: reject if bigger */<br>
&gt;&gt; +<br>
&gt;&gt; +static void __init efi_preserve_bgrt_img(EFI_SYSTEM_TABLE *System=
Table)<br>
&gt;&gt; +{<br>
&gt;&gt; +=C2=A0 =C2=A0 struct acpi_bgrt *bgrt;<br>
&gt;&gt; +=C2=A0 =C2=A0 struct bmp_header *bmp;<br>
&gt;&gt; +=C2=A0 =C2=A0 void *old_image, *new_image;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint32_t image_size;<br>
&gt;&gt; +=C2=A0 =C2=A0 EFI_STATUS status;<br>
&gt;&gt; +=C2=A0 =C2=A0 uint8_t checksum;<br>
&gt;&gt; +=C2=A0 =C2=A0 unsigned int i;<br>
&gt;&gt; +<br>
&gt;&gt; +=C2=A0 =C2=A0 bgrt_debug_info.preserved =3D false;<br>
&gt;&gt; +=C2=A0 =C2=A0 bgrt_debug_info.failure_reason =3D NULL;<br>
&gt;&gt; +<br>
&gt;&gt; +=C2=A0 =C2=A0 bgrt =3D find_bgrt_table(SystemTable);<br>
&gt;&gt; +=C2=A0 =C2=A0 if ( !bgrt )<br>
&gt;&gt; +=C2=A0 =C2=A0 {<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 bgrt_debug_info.failure_reason =3D &q=
uot;BGRT table not found in XSDT&quot;;<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 return;<br>
&gt;&gt; +=C2=A0 =C2=A0 }<br>
&gt;&gt; +<br>
&gt;&gt; +=C2=A0 =C2=A0 if ( !bgrt-&gt;image_address )<br>
&gt;&gt; +=C2=A0 =C2=A0 {<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 bgrt_debug_info.failure_reason =3D &q=
uot;BGRT image_address is NULL&quot;;<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 return;<br>
&gt;&gt; +=C2=A0 =C2=A0 }<br>
&gt;&gt; +<br>
&gt;&gt; +=C2=A0 =C2=A0 old_image =3D (void *)bgrt-&gt;image_address;<br>
&gt;&gt; +=C2=A0 =C2=A0 bmp =3D (struct bmp_header *)old_image;<br>
&gt;&gt; +<br>
&gt;&gt; +=C2=A0 =C2=A0 if ( bmp-&gt;signature !=3D 0x4D42 )<br>
&gt;&gt; +=C2=A0 =C2=A0 {<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 bgrt_debug_info.failure_reason =3D &q=
uot;Invalid BMP signature&quot;;<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 return;<br>
&gt;&gt; +=C2=A0 =C2=A0 }<br>
&gt;&gt; +<br>
&gt;&gt; +=C2=A0 =C2=A0 image_size =3D bmp-&gt;file_size;<br>
&gt;&gt; +=C2=A0 =C2=A0 if ( !image_size || image_size &gt; MAX_IMAGE_SIZE =
)<br>
&gt;&gt; +=C2=A0 =C2=A0 {<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 bgrt_debug_info.failure_reason =3D &q=
uot;Invalid image size&quot;;<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 return;<br>
&gt;&gt; +=C2=A0 =C2=A0 }<br>
&gt;&gt; +<br>
&gt;&gt; +=C2=A0 =C2=A0 status =3D efi_bs-&gt;AllocatePool(EfiACPIReclaimMe=
mory, image_size, &amp;new_image);<br>
&gt;&gt; +=C2=A0 =C2=A0 if ( status !=3D EFI_SUCCESS || !new_image )<br>
&gt;&gt; +=C2=A0 =C2=A0 {<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 bgrt_debug_info.failure_reason =3D &q=
uot;Memory allocation failed&quot;;<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 return;<br>
&gt;&gt; +=C2=A0 =C2=A0 }<br>
&gt;&gt; +<br>
&gt;&gt; +=C2=A0 =C2=A0 memcpy(new_image, old_image, image_size);<br>
&gt;&gt; +<br>
&gt;&gt; +=C2=A0 =C2=A0 bgrt-&gt;image_address =3D (uint64_t)new_image;<br>
&gt;&gt; +=C2=A0 =C2=A0 bgrt-&gt;status |=3D 0x01;<br>
&gt; <br>
&gt; Why forcing the &quot;displayed&quot; bit here?<br>
<br>
And if this is needed, why by way of a literal number rather than a suitabl=
e<br>
#define?<br>
<br>
&gt;&gt; +=C2=A0 =C2=A0 bgrt-&gt;header.checksum =3D 0;<br>
&gt;&gt; +=C2=A0 =C2=A0 checksum =3D 0;<br>
&gt;&gt; +=C2=A0 =C2=A0 for ( i =3D 0; i &lt; bgrt-&gt;header.length; i++ )=
<br>
&gt;&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 checksum +=3D ((uint8_t *)bgrt)[i];<b=
r>
&gt;&gt; +=C2=A0 =C2=A0 bgrt-&gt;header.checksum =3D (uint8_t)(0 - checksum=
);<br>
&gt;&gt; +<br>
&gt;&gt; +=C2=A0 =C2=A0 bgrt_debug_info.preserved =3D true;<br>
&gt;&gt; +=C2=A0 =C2=A0 bgrt_debug_info.old_addr =3D (uint64_t)old_image;<b=
r>
&gt;&gt; +=C2=A0 =C2=A0 bgrt_debug_info.new_addr =3D (uint64_t)new_image;<b=
r>
&gt;&gt; +=C2=A0 =C2=A0 bgrt_debug_info.size =3D image_size;<br>
&gt;&gt; +}<br>
&gt;&gt; +<br>
&gt; <br>
&gt; This is quite a bit of code, maybe move to a separate file? But I&#39;=
d like<br>
&gt; to hear what others think.<br><br></blockquote><div><br class=3D"gmail=
-Apple-interchange-newline">I believe it won&#39;t be necessary to add a se=
parate file for this since it&#39;s just a 2 functions.</div><div>I believe=
 this since most of the ESRT patches, which I based my patches on didn&#39;=
t use a separate file.</div><div>But now since with the whole, header issue=
 and redefining the structs I think a separate file would also be a viable =
option too.</div><div><br></div><div>Perhaps any 2 options:</div><div>Movin=
g with a separate file for cleaner code.</div><div>Moving with existing fil=
e for non-standardized code.</div><div>I would love your opinions on this.<=
/div><div><br></div><div>Further, I think I should revise the further patch=
es to RFC for clarity. Before coming to a conclusion.</div><div>And sending=
 as patch to be pulled.</div><div><br></div><blockquote class=3D"gmail_quot=
e" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204)=
;padding-left:1ex">
Whether to put in a separate file is only the 2nd question imo. The first i=
s<br>
whether this much code is needed in the first place.<br>
<div></div></blockquote><div>=C2=A0</div><blockquote class=3D"gmail_quote" =
style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);pa=
dding-left:1ex">
Jan<br>
</blockquote></div></div>
</div>

--000000000000e035cd064cab2cd5--


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 13:58:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 13:58:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250138.1547599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzxb4-0001Hs-DD; Tue, 10 Mar 2026 13:58:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250138.1547599; Tue, 10 Mar 2026 13:58:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzxb4-0001Hl-9E; Tue, 10 Mar 2026 13:58:06 +0000
Received: by outflank-mailman (input) for mailman id 1250138;
 Tue, 10 Mar 2026 13:58: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=xtLP=BK=canonical.com=nick.rosbrook@srs-se1.protection.inumbo.net>)
 id 1vzxb2-0001Hf-RS
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 13:58:05 +0000
Received: from smtp-relay-internal-0.canonical.com
 (smtp-relay-internal-0.canonical.com [185.125.188.122])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 280db40d-1c89-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 14:58:03 +0100 (CET)
Received: from mail-vs1-f70.google.com (mail-vs1-f70.google.com
 [209.85.217.70])
 (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 smtp-relay-internal-0.canonical.com (Postfix) with ESMTPS id 2D8BF3F78D
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 13:58:03 +0000 (UTC)
Received: by mail-vs1-f70.google.com with SMTP id
 ada2fe7eead31-5fff2d5756fso4741146137.2
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 06:58:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 280db40d-1c89-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com;
	s=20251003; t=1773151083;
	bh=Z/PYnzyJL6zP+aWtvHJwSYzvqQxLGB8OMV1YGzIoCCo=;
	h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject:
	 To:Cc:Content-Type;
	b=GskMFkflCxKzERaY25RjiwFjxMcgoqTHn1R0Y2YpQEMqkBw2d0gkmtVjAS06W2hSJ
	 6sQvAyEiEMYA0O56esM9FhExa2p7ShggQ1yNoGpgc3IL3jfgjQ9fx57/CVJ2kJAqmc
	 z4BhAfs3zFELre2/YDxN5+FbcT7r0G2qFYWGFeOFlvSmQKQ55pfqLddmntocRMqfH+
	 XfsPZXdhE2RsGh7eKkOj6u5fT6J4dhefQGWMHcPS8jEMKM6Mozgti4FibFpdYKdT07
	 sVArQpoGydbtjyTEpuDxbXO4RkWb2VxgOplL+ao0cypAAoVPSEl8rZH4yfyvYX6+OS
	 2gRZRXV4YVDN6J33Ap8flqz3LpW/Ng55GN0FBY/BY9T/rUkiafC3bPb4KaJ84oSHMT
	 hO9Wyy/Xtit/7f/abGnnWGJ/4TXuGzAQRLEJo5Ira8NEhYYggvC/4z1g7/e5ZC8t4l
	 68zv3bU73BCmPK3fHfIlB2/qjrp6btvSNENxHY6GqrKRZHx8FbBisj8t4xtlrcUAng
	 VHj7lxdvhK0C4uZcj9zTaiF8SqbUIq/0P4AJ8wVsim99vaim8AZSLbaGqGvZNAMJIj
	 ICUp2cSnQW544uGnlF0WW+lM47I3758BSPYmJjjB6wnXBJBkkpqeUHAZRsMooKXLcu
	 t0YhI2bLpzy5Ka9eXQY2roEE=
ARC-Seal: i=1; a=rsa-sha256; t=1773151082; cv=none;
        d=google.com; s=arc-20240605;
        b=Fyzt2go6A1YR2v1umCDt0VC87kpMxzvRnd6Hmqai8UAgCNoHGr0O+Yz4fzrkvBWj1I
         nzv2010AwiCkMHTsJ9MN1m/nRPVkjIMBpML5NQ+FWO0B5ST89S78ESVycGiaac3cQiB2
         ON1XLb03BaIQvvPCV+c8EMr/GFTENighUgXq55WOkIieg8jMoYwLbY20JRFG59U4adfZ
         08ME5S25UoCXCozIC1BvjS8j5p6oelTFKsEp4E/c087pgUn+fwWugoaIBJEqdVYqOEvB
         4QYifsmAgQm6Dq/+caevqmKAdWtNsfXa8VDKGOPbuGNKYQXzZ+vesUNRtbgRkPgNaeQB
         LMyQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version;
        bh=Z/PYnzyJL6zP+aWtvHJwSYzvqQxLGB8OMV1YGzIoCCo=;
        fh=GG3qP5pAj8neOF7eJs2TsVLgJFvZh3XvVRvvhfAQMzA=;
        b=i38BuFxKs8CNaHq48hI1VKVnaBFV7e5rsbU5NHRc3V2CNIyq17HZcYRyLIVfWdpz/5
         RIOxRb2mPGHh9oq0+FZWMO3B8xE+LPWEb5F3ZFcq2vnEEb3se91zzSMU48UP7fodeN+M
         68uBp+96NnrPmi6mlJjEeKfToBkNgcQ4JEaEto/t02eHid9rctGm6pgyhzKcfrh8hsvG
         Kw2E8n8mzbpzuvONsZ1r86m/Y9eEFYTagQSIwr1iEh0FmpqvyVRE0tmz2bB4cz/DJp5T
         rozY+n4utcrE+COh4M5UbvwsKZ/qFu/FFJH7Hz3vs4+fvRZZZ0RiSXleLPHAw3yctefc
         Kx0A==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773151082; x=1773755882;
        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=Z/PYnzyJL6zP+aWtvHJwSYzvqQxLGB8OMV1YGzIoCCo=;
        b=HvpYUprfe9NOZhh04umHQeaAgMN9M5VjuRAf1vwZmpABKhQaV1cbjttytxhYN1y84q
         ekrKaADbF3yENBGgHY+bK/G61mjoTaQXH/gfhgRLPigeGMA9Ga1Y9Dfn7EkRg1vie9Xt
         HRd0K8jiELlVSlulKo0gK523YifiDtMlVsm2sMxiQch8PT/Qvjuc3kU2gFH/mSenExlU
         0i+1LYFLLlEzHRQGhrXqPKlRuLpwiSdyUHDAgNGmn5Ko7hccisuL+ogE9lfsMXwF5y1X
         84OuyXeIcydlLj3s+RP8b0mfVU6R4EPr+Uh8+RgwYtog/CRwKo9I6SPcawQSlxCHlGTb
         ETxg==
X-Gm-Message-State: AOJu0YzabTon/cAYSU36XnDI+fTHogfbwyEAJr2yoOo7tA8wvoUccODs
	gOYWBMMppP3CgHnPRqlBmEFJUaG09s8LccG0Vv5nSMWLDC0quOkMu7y/0QXfJr0hRpcy6iq4IZq
	DX/EQWuvNbgYQjnnqBola1Xpv2qp4CS3rQEHrRaP/eqFGrrM+tlTMAfke/3K+5iTRQsur/3nYbs
	kyXxRQT/wb+WWiOe8RPoHOj+jZ0PmIAMDdMTjQYda5hijpORvp/DUqmAExNU0=
X-Gm-Gg: ATEYQzzEv6ALU4hOIXW6eabNT0iHSpsjR00nMu4XhpBdUuJNPRDfmnb+MX04N3TgZ9P
	5ksAjqQAkWKNFJyZcGLm08ccvhjC2NEgiC8gAknxzEUF0mrd6dGjAXkPr0q368fzEQIwBenHDvv
	EJb7toaHgJE8hJqi/zNhB95C9KngFjtr2j+ih0y97wkup7Fj2Fd7J9LgdaQGtkkwfeSsUv1HENL
	p4i
X-Received: by 2002:a05:6102:3f0e:b0:5f5:4055:4556 with SMTP id ada2fe7eead31-5ffe5ef61f3mr5221857137.4.1773151076285;
        Tue, 10 Mar 2026 06:57:56 -0700 (PDT)
X-Received: by 2002:a05:6102:3f0e:b0:5f5:4055:4556 with SMTP id
 ada2fe7eead31-5ffe5ef61f3mr5221820137.4.1773151074350; Tue, 10 Mar 2026
 06:57:54 -0700 (PDT)
MIME-Version: 1.0
References: <20260305135208.2208663-1-jgross@suse.com> <20260305135208.2208663-10-jgross@suse.com>
In-Reply-To: <20260305135208.2208663-10-jgross@suse.com>
From: Nick Rosbrook <nick.rosbrook@canonical.com>
Date: Tue, 10 Mar 2026 09:57:43 -0400
X-Gm-Features: AaiRm51XO1_uiu1CVtnFq_O9sbsjJ7JISVvlAgVOf0T9WAmvHD0P3QquLwgQmhY
Message-ID: <CAEN5XSFceQZd3AV0MsmvWtbEecVj4J4gDeHMagG51=B0uKWkAw@mail.gmail.com>
Subject: Re: [PATCH 09/11] tools/libxl: add support for xenstore quota in domain_config
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, George Dunlap <gwd@xenproject.org>, 
	Anthony PERARD <anthony.perard@vates.tech>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Mar 5, 2026 at 8:53=E2=80=AFAM Juergen Gross <jgross@suse.com> wrot=
e:
>
> Add support for xenstore quota in the struct domain_config. Initially
> it will be used only for migration of a domain.
>
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>  tools/golang/xenlight/helpers.gen.go |  6 ++++++
>  tools/golang/xenlight/types.gen.go   |  1 +
>  tools/libs/light/libxl_dom.c         |  8 ++++++++
>  tools/libs/light/libxl_domain.c      | 10 ++++++++++
>  tools/libs/light/libxl_types.idl     |  1 +
>  5 files changed, 26 insertions(+)
>
> diff --git a/tools/golang/xenlight/helpers.gen.go b/tools/golang/xenlight=
/helpers.gen.go
> index 6c9af904c5..416c2d3e07 100644
> --- a/tools/golang/xenlight/helpers.gen.go
> +++ b/tools/golang/xenlight/helpers.gen.go
> @@ -1286,6 +1286,9 @@ if err :=3D x.TrapUnmappedAccesses.fromC(&xc.trap_u=
nmapped_accesses);err !=3D nil {
>  return fmt.Errorf("converting field TrapUnmappedAccesses: %v", err)
>  }
>  x.XenstoreFeatureMask =3D uint32(xc.xenstore_feature_mask)
> +if err :=3D x.XenstoreQuota.fromC(&xc.xenstore_quota);err !=3D nil {
> +return fmt.Errorf("converting field XenstoreQuota: %v", err)
> +}
>
>   return nil}
>
> @@ -1825,6 +1828,9 @@ if err :=3D x.TrapUnmappedAccesses.toC(&xc.trap_unm=
apped_accesses); err !=3D nil {
>  return fmt.Errorf("converting field TrapUnmappedAccesses: %v", err)
>  }
>  xc.xenstore_feature_mask =3D C.uint32_t(x.XenstoreFeatureMask)
> +if err :=3D x.XenstoreQuota.toC(&xc.xenstore_quota); err !=3D nil {
> +return fmt.Errorf("converting field XenstoreQuota: %v", err)
> +}
>
>   return nil
>   }
> diff --git a/tools/golang/xenlight/types.gen.go b/tools/golang/xenlight/t=
ypes.gen.go
> index 5393277190..7e7292cf70 100644
> --- a/tools/golang/xenlight/types.gen.go
> +++ b/tools/golang/xenlight/types.gen.go
> @@ -629,6 +629,7 @@ VmtraceBufKb int
>  Vpmu Defbool
>  TrapUnmappedAccesses Defbool
>  XenstoreFeatureMask uint32
> +XenstoreQuota XsQuotaSet
>  }
>
>  type DomainBuildInfoTypeUnion interface {

For the golang stuff:

Acked-by: Nick Rosbrook <enr0n@ubuntu.com


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 14:08:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 14:08:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250146.1547627 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzxkw-0003AL-HD; Tue, 10 Mar 2026 14:08:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250146.1547627; Tue, 10 Mar 2026 14: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 1vzxkw-0003AE-ER; Tue, 10 Mar 2026 14:08:18 +0000
Received: by outflank-mailman (input) for mailman id 1250146;
 Tue, 10 Mar 2026 13:59:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=df76=BL=ubuntu.com=enr0n@fe-bounces.ubuntu.com>)
 id 1vzxc0-0001jj-N6
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 13:59:04 +0000
Received: from smtp.forwardemail.net (smtp.forwardemail.net [121.127.44.73])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4af57da7-1c89-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 14:59:02 +0100 (CET)
Received: by mail-vs1-f70.google.com with SMTP id
 ada2fe7eead31-6003c120943so6639439137.2
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 06:59:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4af57da7-1c89-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ubuntu.com;
 h=Content-Transfer-Encoding: Content-Type: Cc: To: Subject: Message-ID:
 Date: From: In-Reply-To: References: MIME-Version; q=dns/txt;
 s=fe-953a8a3ca9; t=1773151141;
 bh=E8wOigURf3csG2yq02yND2Sc/5WalRx/lbNH4MbDwRw=;
 b=AejbEsofOMMyMmMS0yYvZBls1/15GBRvpae7SNq3R7NC/aPZ9vHAJyNEXcG/w4SO2UHVegsTg
 4YhN9N07/k/5SBmyeCeoY2cy5D+O31HDDuZ5qr7IBQVckNAtZGLaXojPQzqV7gQdck4cuIAS/iQ
 1b8bakKlwBk2kPPxSTGwCb35hOYh38Mp+nW4G8a+TIOt4gAIw/a8+Ueby4oaQNZwAEy5z7/dEPd
 2Cs80xEGdMEyg+6EUAO2ACoFfMJ1lcidh/zydZ3nX25eryQlrqy0Vv0BFsK6C3HRFWvUdQiImiW
 smBBjypw88s/pQhEq9I+8+JyrkRvAg2fgtgm2jlwJ+qw==
X-Forward-Email-ID: 69b023a4d3315ad1d148bf1c
X-Forward-Email-Sender: rfc822; enr0n@ubuntu.com, smtp.forwardemail.net,
 121.127.44.73
X-Forward-Email-Version: 2.6.49
X-Forward-Email-Website: https://forwardemail.net
X-Complaints-To: abuse@forwardemail.net
X-Report-Abuse: abuse@forwardemail.net
X-Report-Abuse-To: abuse@forwardemail.net
X-Gm-Message-State: AOJu0YxHwLYLqq+FLoZyMHTcfSPQApZh1eirrwj3uU/WDvLxRBHFnPCn
	9fyTM/xZWoJcpWVqZoWX32xWn8FmlZRrGGgPA+AyzMKnD9p7QX6LR7b83cb/ka6ozFaVMXBczZB
	lzBrmbWcuKiP4YZ9Kj9AptO47cJPSRO1waCSLWOvvVfYG2YKc5uaxZ3sg6khooSoYfIBQWpGTfP
	ZO66oWZ6GJOm6OEBej4ivMYUhqkXg0xY6oe7bQLyO+erk8a1wKHvPPxhlcbDA=
X-Gm-Gg: ATEYQzyp2Kk6teQxfX04cvWd6sQhIIbz24X2nNQkFQJ1B6lStVjBThiMwVm6+qRMOld
	czwLbM1pH2foswcNy/tq8VeBt9R2k6e4Ga+vk9oNQCQg6r1XnueXZFAn7rWbQqToATABCvY4zbE
	L1unlCZf+5cch8M26APqZM6X8QtN5YihP3OUH8iNgghc6vG+VbYpnZmyglJ4AdWA5FjL74Z9uJi
	FVR
X-Received: by 2002:a05:6102:292a:b0:5ef:6550:e9f0 with SMTP id ada2fe7eead31-5ffe635a38fmr6893836137.36.1773151138280;
        Tue, 10 Mar 2026 06:58:58 -0700 (PDT)
X-Received: by 2002:a05:6102:292a:b0:5ef:6550:e9f0 with SMTP id
 ada2fe7eead31-5ffe635a38fmr6893824137.36.1773151137997; Tue, 10 Mar 2026
 06:58:57 -0700 (PDT)
MIME-Version: 1.0
References: <20260305135208.2208663-1-jgross@suse.com> <20260305135208.2208663-9-jgross@suse.com>
In-Reply-To: <20260305135208.2208663-9-jgross@suse.com>
From: Nick Rosbrook <enr0n@ubuntu.com>
Date: Tue, 10 Mar 2026 09:58:47 -0400
X-Gmail-Original-Message-ID: <CAEN5XSGxrObB-JcWGCUFLf5kBmqkQv_=MyTnKa1A6oCJdm-f_A@mail.gmail.com>
X-Gm-Features: AaiRm53qgMAlPJhzUrnE_Zj7Ytw_vbgbJ_PVVbxIhcKkx9lbTlUItY5sR8f6mRg
Message-ID: <CAEN5XSGxrObB-JcWGCUFLf5kBmqkQv_=MyTnKa1A6oCJdm-f_A@mail.gmail.com>
Subject: Re: [PATCH 08/11] tools/libxl: add functions for retrieving and
 setting xenstore quota
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, George Dunlap <gwd@xenproject.org>, 
	Anthony PERARD <anthony.perard@vates.tech>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Mar 5, 2026 at 8:52=E2=80=AFAM Juergen Gross <jgross@suse.com> wrot=
e:
>
> Add some functions allowing to retrieve and set Xenstore quota (either
> global or domain specific).
>
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>  tools/golang/xenlight/helpers.gen.go |  78 ++++++++++++++++++++
>  tools/golang/xenlight/types.gen.go   |   9 +++
>  tools/include/libxl.h                |  20 ++++++
>  tools/libs/light/Makefile            |   1 +
>  tools/libs/light/libxl_types.idl     |   9 +++
>  tools/libs/light/libxl_xsquota.c     | 102 +++++++++++++++++++++++++++
>  6 files changed, 219 insertions(+)
>  create mode 100644 tools/libs/light/libxl_xsquota.c
>
> diff --git a/tools/golang/xenlight/helpers.gen.go b/tools/golang/xenlight=
/helpers.gen.go
> index 8909fe8a1b..6c9af904c5 100644
> --- a/tools/golang/xenlight/helpers.gen.go
> +++ b/tools/golang/xenlight/helpers.gen.go
> @@ -998,6 +998,84 @@ xc.policy =3D C.libxl_rdm_reserve_policy(x.Policy)
>   return nil
>   }
>
> +// NewXsQuotaItem returns an instance of XsQuotaItem initialized with de=
faults.
> +func NewXsQuotaItem() (*XsQuotaItem, error) {
> +var (
> +x XsQuotaItem
> +xc C.libxl_xs_quota_item)
> +
> +C.libxl_xs_quota_item_init(&xc)
> +defer C.libxl_xs_quota_item_dispose(&xc)
> +
> +if err :=3D x.fromC(&xc); err !=3D nil {
> +return nil, err }
> +
> +return &x, nil}
> +
> +func (x *XsQuotaItem) fromC(xc *C.libxl_xs_quota_item) error {
> + x.Name =3D C.GoString(xc.name)
> +x.Val =3D uint32(xc.val)
> +
> + return nil}
> +
> +func (x *XsQuotaItem) toC(xc *C.libxl_xs_quota_item) (err error){defer f=
unc(){
> +if err !=3D nil{
> +C.libxl_xs_quota_item_dispose(xc)}
> +}()
> +
> +if x.Name !=3D "" {
> +xc.name =3D C.CString(x.Name)}
> +xc.val =3D C.uint32_t(x.Val)
> +
> + return nil
> + }
> +
> +// NewXsQuotaSet returns an instance of XsQuotaSet initialized with defa=
ults.
> +func NewXsQuotaSet() (*XsQuotaSet, error) {
> +var (
> +x XsQuotaSet
> +xc C.libxl_xs_quota_set)
> +
> +C.libxl_xs_quota_set_init(&xc)
> +defer C.libxl_xs_quota_set_dispose(&xc)
> +
> +if err :=3D x.fromC(&xc); err !=3D nil {
> +return nil, err }
> +
> +return &x, nil}
> +
> +func (x *XsQuotaSet) fromC(xc *C.libxl_xs_quota_set) error {
> + x.Quota =3D nil
> +if n :=3D int(xc.num_quota); n > 0 {
> +cQuota :=3D (*[1<<28]C.libxl_xs_quota_item)(unsafe.Pointer(xc.quota))[:n=
:n]
> +x.Quota =3D make([]XsQuotaItem, n)
> +for i, v :=3D range cQuota {
> +if err :=3D x.Quota[i].fromC(&v); err !=3D nil {
> +return fmt.Errorf("converting field Quota: %v", err) }
> +}
> +}
> +
> + return nil}
> +
> +func (x *XsQuotaSet) toC(xc *C.libxl_xs_quota_set) (err error){defer fun=
c(){
> +if err !=3D nil{
> +C.libxl_xs_quota_set_dispose(xc)}
> +}()
> +
> +if numQuota :=3D len(x.Quota); numQuota > 0 {
> +xc.quota =3D (*C.libxl_xs_quota_item)(C.malloc(C.ulong(numQuota)*C.sizeo=
f_libxl_xs_quota_item))
> +xc.num_quota =3D C.int(numQuota)
> +cQuota :=3D (*[1<<28]C.libxl_xs_quota_item)(unsafe.Pointer(xc.quota))[:n=
umQuota:numQuota]
> +for i,v :=3D range x.Quota {
> +if err :=3D v.toC(&cQuota[i]); err !=3D nil {
> +return fmt.Errorf("converting field Quota: %v", err)
> +}
> +}
> +}
> +
> + return nil
> + }
> +
>  // NewDomainBuildInfo returns an instance of DomainBuildInfo initialized=
 with defaults.
>  func NewDomainBuildInfo(dtype DomainType) (*DomainBuildInfo, error) {
>  var (
> diff --git a/tools/golang/xenlight/types.gen.go b/tools/golang/xenlight/t=
ypes.gen.go
> index ab9d4ca7b4..5393277190 100644
> --- a/tools/golang/xenlight/types.gen.go
> +++ b/tools/golang/xenlight/types.gen.go
> @@ -543,6 +543,15 @@ Altp2MModeExternal Altp2MMode =3D 2
>  Altp2MModeLimited Altp2MMode =3D 3
>  )
>
> +type XsQuotaItem struct {
> +Name string
> +Val uint32
> +}
> +
> +type XsQuotaSet struct {
> +Quota []XsQuotaItem
> +}
> +
>  type DomainBuildInfo struct {
>  MaxVcpus int
>  AvailVcpus Bitmap

For the golang stuff:

Acked-by: Nick Rosbrook <enr0n@ubuntu.com


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 14:14:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 14:14:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250167.1547636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzxqZ-0004ge-3f; Tue, 10 Mar 2026 14:14:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250167.1547636; Tue, 10 Mar 2026 14:14:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzxqZ-0004gX-0r; Tue, 10 Mar 2026 14:14:07 +0000
Received: by outflank-mailman (input) for mailman id 1250167;
 Tue, 10 Mar 2026 14: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=S17i=BK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vzxqX-0004gQ-BZ
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 14:14:05 +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 63e658c5-1c8b-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 15:14:02 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-439b6d9c981so6420600f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 07:14:02 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dada9116sm33731436f8f.14.2026.03.10.07.14.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Mar 2026 07:14:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 63e658c5-1c8b-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773152042; x=1773756842; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IvFj7BAAy+OPVIRcv54K79IILH7WSbxHWhjWNJQS6SU=;
        b=ciSayuqOFE8H9HO87bw/gthQyLPLMgTHWuIya6yRysO7F1m1D4XRjIuW0mSg+JN2sE
         VCLWvuTElpsh+LYEdjVg9tNjMGr4R3T1sp33p7VUzFqXZZblhdMRxSQ02HunAmQuZOzN
         bcwZ8txPcE8gzOiOaT8yGGPngsdzSjHZcWJp8rZKr3nIDHS5vy7b+oH2pdBTSd0TOpUs
         5QpBw+jd/VJKy6B+EQThV1UjCEEP2OfcQb6QgN0aszsDOtctDRj3bpRaBXT8rvLYvQ4n
         wrq1xHijh/wacGN2yOzvosqaJ/BvtXO8N0slZGCplCs5dXLxDXV1anelBJUuwyeM+6gI
         GpTQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773152042; x=1773756842;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IvFj7BAAy+OPVIRcv54K79IILH7WSbxHWhjWNJQS6SU=;
        b=bvrR4o6DUVewZ1XRZ/nH/p69yuHZngo/iJRnF+okRA7Qi/XYoN0vY39LvDgAXLJC0+
         83Bv8xp41WhKlAMxYAEGIa6R7+gdjS/1u/NLbb/1bL9iVPnBGPQid+rTgJ6jEoPr+3Xc
         SpCrSpZrtedOtEHjy8C3G3aKRhsbh3pHxrtEwtH4NY1tdRR7vR8AwbgsHWfLmC1Jz7kp
         yNE6+6LxHxiAu/n01CRk6Rmo+gn5zOKCWqiy4lQf4IWQDjiE1dJM96EmUYO6f6z+PqZN
         DedZpPLsYFpDtLdCeBAW51Ou6FtVwuYzc/ghJOAvagHC/A3PRsdBnA3iLeEyiHaX1TyV
         WGTw==
X-Forwarded-Encrypted: i=1; AJvYcCUfJM7AtxY2eMaOgBIC2AKcXoIgTBtbgvcRCkazVnw/lZKQx6g3RA9V14tE1+bNYOHc4ToCXsIh5Cc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyGKx9xpjzNmTXy+PbzW+RScYOMrdW+bkK2x2etb+e/IVtg3VhH
	0I2uVYYHYsan50q5ehtC5AmX6yvG9mpIEDGwajzptKf+8R6yPk4c5w2sE1dqKD5dyQ==
X-Gm-Gg: ATEYQzwgfcuvGPsTUoR/zJnwCwyTe8QvNgrjuApYHhZtxtaOV0QtFWVssW/3twF8UkE
	4GGH6S192As2UafyRki/gcCyB6p/+LdSSeIR+iBM9xcPMORC8HeAI304Y3kiv5zSZugSv/xWFyQ
	GQ2A9HPOvDXJ6vmhQazun6GFELcCmJjqh7d0ltr2dbLGU3sALX5ws+pY5N1AFpBGdL9qmTfpiLA
	UqfQgcK+68VYeAxsvGFXaH82DWzEQcOPhK56wQ8fMPlOAt/0vY/tBw1IwoOWjMzaYfOX7UiOsky
	fN9ctyRyjHxYiHjen1nvwH2sYYRZ3eY7QqJ91ZW1byQ+408rVeI9099dHg5unjvmsBPlBT3FXtE
	Gaw8kZ8K05fR4uy6GRkXD5A/yrOAuAWi2cIdAMRuq91Stni+9Lz7JvNd3M1Q4sgPemPUuVKIfrC
	JRktgqTqCFmMjvWNDnvkRN8PtkBgVv0IcK9KEQo+RXIJL+13JAU8Ljk+3O5Tllp4qC0BIB1cCk7
	W1i7JcWc4xbFM4=
X-Received: by 2002:a05:6000:1847:b0:439:b6b3:faa7 with SMTP id ffacd0b85a97d-439eff5cdb7mr6880582f8f.28.1773152041960;
        Tue, 10 Mar 2026 07:14:01 -0700 (PDT)
Message-ID: <7adc329e-6690-46ad-b706-74548dc7ccbc@suse.com>
Date: Tue, 10 Mar 2026 15:14:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] x86/efi: Add BGRT image preservation during boot
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org,
 sarkarsoumyajyoti23@gmail.com,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <20260305191810.31033-1-soumyajyotisarkar23@gmail.com>
 <20260305191810.31033-2-soumyajyotisarkar23@gmail.com>
 <aa3AKoCFFhwD4-LX@mail-itl> <609060f4-d94b-4b65-a10b-5126f10307db@suse.com>
 <CAGkZZ+sGLY==UxBJ=BGLjfKQTTMMZ7zRzaZ1MAjWT7Ak_gytyQ@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: <CAGkZZ+sGLY==UxBJ=BGLjfKQTTMMZ7zRzaZ1MAjWT7Ak_gytyQ@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.03.2026 14:05, Soumyajyotii Ssarkar wrote:
> On Mon, Mar 9, 2026 at 1:01 PM Jan Beulich <jbeulich@suse.com> wrote:
> 
>> On 08.03.2026 19:30, Marek Marczykowski-Górecki wrote:
>>> On Fri, Mar 06, 2026 at 12:48:08AM +0530, Soumyajyotii Ssarkar wrote:
>>>> --- a/xen/common/efi/boot.c
>>>> +++ b/xen/common/efi/boot.c
>>>> @@ -7,6 +7,7 @@
>>>>  #include <xen/ctype.h>
>>>>  #include <xen/dmi.h>
>>>>  #include <xen/domain_page.h>
>>>> +#include <xen/errno.h>
>>>>  #include <xen/init.h>
>>>>  #include <xen/keyhandler.h>
>>>>  #include <xen/lib.h>
>>>> @@ -173,6 +174,14 @@ static struct file __initdata ramdisk;
>>>>  static struct file __initdata xsm;
>>>>  static const CHAR16 __initconst newline[] = L"\r\n";
>>>>
>>>> +static __initdata struct {
>>>> +    bool preserved;
>>>> +    uint64_t old_addr;
>>>> +    uint64_t new_addr;
>>>> +    uint32_t size;
>>>> +    const char *failure_reason;
>>>> +} bgrt_debug_info;
>>>> +
>>>>  static void __init PrintStr(const CHAR16 *s)
>>>>  {
>>>>      StdOut->OutputString(StdOut, (CHAR16 *)s );
>>>> @@ -747,6 +756,171 @@ static void __init
>> efi_relocate_esrt(EFI_SYSTEM_TABLE *SystemTable)
>>>>      efi_bs->FreePool(memory_map);
>>>>  }
>>>>
>>>> +struct bmp_header {
>>>> +    uint16_t signature;
>>>> +    uint32_t file_size;
>>>> +    uint16_t reserved_1;
>>>> +    uint16_t reserved_2;
>>>> +    uint32_t data_offset;
>>>> +} __attribute__((packed));
>>>> +
>>>> +/*
>>>> + * ACPI Structures - defined locally,
>>>> + * since we cannot include acpi headers
>>>> + * in EFI Context.
>>>> + */
>>>> +
>>>> +struct acpi_rsdp {
>>>> +    char signature[8];
>>>> +    uint8_t checksum;
>>>> +    char oem_id[6];
>>>> +    uint8_t revision;
>>>> +    uint32_t rsdt_physical_address;
>>>> +    uint32_t length;
>>>> +    uint64_t xsdt_physical_address;
>>>> +    uint8_t extended_checksum;
>>>> +    uint8_t reserved[3];
>>>> +} __attribute__((packed));
>>>> +
>>>> +struct acpi_table_header {
>>>> +    char signature[4];
>>>> +    uint32_t length;
>>>> +    uint8_t revision;
>>>> +    uint8_t checksum;
>>>> +    char oem_id[6];
>>>> +    char oem_table_id[8];
>>>> +    uint32_t oem_revision;
>>>> +    uint32_t asl_compiler_id;
>>>> +    uint32_t asl_compiler_revision;
>>>> +} __attribute__((packed));
>>>> +
>>>> +struct acpi_xsdt {
>>>> +    struct acpi_table_header header;
>>>> +    uint64_t table_offset_entry[1]; /* Variable array length */
>>>
>>> uint64_t table_offset_entry[];
>>>
>>> BTW, do we have some canonical place with list of files imported (and
>>> kept in sync) with other projects? xen/include/acpi/actbl.h doesn't
>>> exactly follow Xen coding style, but it's unclear to me if it needs to
>>> stay this way.
>>
>> I don't really understand why the headers we've got can't be used. Even
>> some of the library-like code under xen/acpi/ may be usable here.
>>
>> While we don't exactly keep xen/include/acpi/ in sync with Linux, when
>> things are added we preferably add them in the way Linux has them.
>>
>>
> I was trying to avoid including the headers from the xen/include/acpi/
> since it was specified in the comment. to not include them.
> Specific comment specified below this paragraph.
> Also since acpi was using datatypes like "u32" while boot.c had types of
> "uint32", so it felt a bit non-standardized.
> I checked the rest of the boot.c which followed the same manner. So I went
> with this choice.
> 
> /* * Keep this arch-specific modified include in the common file, as moving
>  * it to the arch specific include file would obscure that special care is
>  * taken to include it with __ASSEMBLER__ defined.
> */
> #define __ASSEMBLER__ /* avoid pulling in ACPI stuff (conflicts with EFI)
> */
> #include <asm/fixmap.h>
> #undef __ASSEMBLER__
> #endif
> 
> The ACPI headers in /xen/include/acpi uses defines such
> as ACPI_NAME_SIZE, ACPI_OEM_ID_SIZE
> and ACPI_OEM_TABLE_ID_SIZE these require adding additional
> <acpi/acconfig.h> header.
> Also since their is no acpi headers included in the boot.c file, so i
> thought to I avoid it.
> 
> Thus to get it fully working with ACPI headers from the xen/include/acpi I
> would require these three headers.
> #include <acpi/acconfig.h>
> #include <acpi/actbl.h>
> #include <acpi/actbl3.h>
> 
> I thought this would lead to cross contamination, and confusing to further
> modifications in future so weighing my options I thought best to redefine
> them,
> for code clarity.
> Can you suggest me best option to move forward, should I redefine them as
> is or include the headers?

First - see about re-using ACPI functions we already have. Then put new ACPI
code you need to add in a file different from the EFI one.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 15:29:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 15:29:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250197.1547665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzz1d-000524-EG; Tue, 10 Mar 2026 15:29:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250197.1547665; Tue, 10 Mar 2026 15: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 1vzz1d-00051x-BP; Tue, 10 Mar 2026 15:29:37 +0000
Received: by outflank-mailman (input) for mailman id 1250197;
 Tue, 10 Mar 2026 15: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=pBDb=BK=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vzz1b-00051r-Pq
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 15:29:35 +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 f0396879-1c95-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 16:29:34 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ0PR03MB5536.namprd03.prod.outlook.com (2603:10b6:a03:28a::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Tue, 10 Mar
 2026 15:29:30 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9700.010; Tue, 10 Mar 2026
 15:29: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: f0396879-1c95-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LOf+kk2cB9Ku1MGa+Px3wJqXYTBDJCAHL4ripO/5mhdG0Jaz3azeUGxvRvev4B2pyAQVS1V7/HqQ7EDq8RxugQAyLdxsv0GGNUK3qRfoqHsanOh0imHsSCW1JxaxgiqxN58tv0uHV+IqS0JODv7W45AQm1cs34b7/PXISbDriUx+lWPTVvlsAYa7k79Npqa1aCkYOjBw1PVgtAsxE5g1wjsptChvR7gR3iMOQpJoVbhBf28YNMMWRZr5EwyOCiGfoH5TUKfpc/ZLwdufQqVNMQbha/fEBnv7OBx+VlFU53JY6B62l35TS+Azx76GHK6x3TtPfEmz7MRuTf1YEUz5mw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZSYeDnj5tO0lb7ERQWCY+4rIFbqwAmh28D8IGMmNgxE=;
 b=WC/uI60B/U06IYDIGDP+QeMpaH25qIWnZ2EMsKmcaSthgANcESKvNfen/yu514CmcCeQeZX2F+7JvqInRFz8eVMmftFZdYYDqsTJOwOIBpl9Mbw7TpgfX+HtSZGl6FLo3pseBmtQ8Ynnx87DsHvbmV+lQYFuhapGvcPWkPyN7baW0O7FGHx+aUPJwywoaSepNKaSHBzfpgmChOX3wbXkG1cYbdVW/XNAXzQ8oySLwzJpKg/oGH4vbkFnPMLoSex0Q4UOukn3/98WHq6iEJoTRL+G6uivUn2VDgtw9l/7EnwcN505qfLLyq1ySCizYXhEKlYjuWw0CwN5WeSdNJMoeQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZSYeDnj5tO0lb7ERQWCY+4rIFbqwAmh28D8IGMmNgxE=;
 b=pUQmiYZQnGKBvMEhyYMgfgfcOnQyeiHYbye2H8ElasNFi9g7TLNN+jClOHTB99+vVZYXW/VpxyhYGfWQsfmJc/sC/1h13pNcOvyKGjfoiDPv5eS5E4zInRbW3PqtjdDIW1MUGjGbSJb0Cwyr62s4XtM/P1qaeoI3xqOdqP3cG9w=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <9eed183c-4157-4432-94ec-a7b7a689fd4a@citrix.com>
Date: Tue, 10 Mar 2026 15:29:26 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, roger.pau@citrix.com,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH 3/6] x86: Remove x86 prefixed names from hvm code
To: Jan Beulich <jbeulich@suse.com>, Kevin Lampis <kevin.lampis@citrix.com>
References: <20260304195350.837593-1-kevin.lampis@citrix.com>
 <20260304195350.837593-4-kevin.lampis@citrix.com>
 <4a5018a2-9867-432b-9464-874532241316@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <4a5018a2-9867-432b-9464-874532241316@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PA7P264CA0473.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:3dc::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_|SJ0PR03MB5536:EE_
X-MS-Office365-Filtering-Correlation-Id: 837ccb74-9d8c-4847-9f89-08de7eb9d2a2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	GP/t20XMfvDaVQYmZP7SbCYxy3A/U0AuMvaKK+kXjKCk4qk5S3G6n14Fzh0luZKjfz/cdsTczrLw6WsL2u4Iy0/wo9mId7M9TLin+o1UDseSIfvcJGwrFfGo29qpHKlabesyRRBET3eEh27eWPEwtytSea9VaX0jkdYXwqzfyMu07pFmdN3q6YEQh7i6MUG9x0kgYtivVzaZyN/JmgZLTSMpaSI19o+3dDMk6sDalZNxLATLPhhg4Tapi3RSK8utwo4/X81udgMlUsg/Lj4RLEyfdTjCwHmFOmyDttIEkBs/E3Wg+jQZEbotwHIoJVp8QhIVwUxMyirlxljZMR8SisBTWN9HtawQq+G/WDqtc+DCNHUX4BtvNSPjK+gJURnfUEb46oa/PUszYdsflaheJ9Aq1nSKcBNEtWdADRnw+Ke4hZ4aqtxDxmB9izY8vX81ExkCuj2TY/wHYNGEootzchuVP0Ry7qHSw92S6zLmL8a0gEnSlgfDhTFxJxg+IuVyVhN5+Y4KtUNIrmNl1nL+/HcK99lm0Naxn7FM4dLeAcBk/Vn55lhfynWXiGdNzmDWneYwPmcy4jiSu7RX4PO6Iy6XWADEd57ugZXj7zZ+Tm9F2nj81sAXbQ6fA/iXSB2/8ARR7b/o5njF7gD+ZqmU2K9Si4+KUp25PUBO2tVTELX0XZ9rZoWql+ZeDk+jAWNg1bEvcro5JHM0511oyKotfCF7ITDO/f2dCSGsimMG+lU=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?elBoa0RPRWpCcTlvV2kzVnFjWTA4NWxBa3ZXaEV0VjF3RVhaZVZwY2ZrTzY4?=
 =?utf-8?B?Y200RHFBcUJ4UXFFNEMzdmZFaHo5YWNCbWUxTUlZTTFuQVpMQXBheEhjck9x?=
 =?utf-8?B?KzVnMDdodTFIRm1ram8wQ0kvK3BwYjE4K05UUjkrd3BlNDlzRDdQNE9wSWJC?=
 =?utf-8?B?Q1AxSG9hbVlreGluQ3BoYWh3N2lLMEErUVV3Mzh6RVBhZWQrWWluUlVqYjZF?=
 =?utf-8?B?Q3ZRY2ZVSzM2RGF5VXFhOUFWdGw0ZjR3VHdHU0pON21sVHpsL3lHRktFVmI1?=
 =?utf-8?B?c2hRcVZTYzU2ZlAvckVLRVBZZTJKRkEwalNDQkVqQlRFMnNpeFJWNXNjQXJY?=
 =?utf-8?B?K01JSkxUa1hKSFcrdU9RaWtxcXpKeUFuTERVWThqNTJ0UXJubURKUWVmc2dO?=
 =?utf-8?B?ejFYaHkrZFdLL2Y1VWFOdnBYUHdKVElmNlBnRGgzVkxNT2htOUp5eHgvbThR?=
 =?utf-8?B?VzNuaVpHQzZvaFZIYi94bFlrVlkzNW1xVnJ4RnBveFJLWW9VNVBGTHNHS3pw?=
 =?utf-8?B?aXk1UVB2NENYM0xHaFBTQ1ZsZVpmOVRrYk5aanZxc2ljSXNUV3orY3VWZmYr?=
 =?utf-8?B?TGdTK3dIdkRnUjcwTmFiVWNTU0hiS2cxUWp1UnJlNk1GWTMwOHdLVTBGYzFI?=
 =?utf-8?B?UkprdVpybStFMGdFV2YwYmMwcTNacXBxZ2lBVkdISlFOVXR3WmRtQVNEOWpR?=
 =?utf-8?B?NTM1cGY4WmdiNU5wcXFUdVRibVBjSVpIYUJxQSsyUHlaSUU5NnpudVlFWXBT?=
 =?utf-8?B?RU5PM3E1YVM2d2xUQjZYb2VQRnptR0hzd2RrcXZuTDV6dTRPcmQwK0pKKzgw?=
 =?utf-8?B?bUo0a0pneUdDcnQ3NDhMZGl2RFA2V2p3UCtmclhFZEdSdEVOQ2VZZWVZeVNL?=
 =?utf-8?B?eGhSeFA2WENrMUQzWHVRY3pRaGdMUFI3QXpXU1lYcTFkMEpuazNGNjI4UGRF?=
 =?utf-8?B?WFdteXdtbDgwZDVXUlFxTE5IUXdwbzhRbGpRUkxjYWRFbXVuU3JsZFBCUUVy?=
 =?utf-8?B?Wm9SNHVwRWhpeHJoRjlKeTQ4ZXFKRTlhaTdaZUx3TTJkeU13VVZJTEJpWTRW?=
 =?utf-8?B?Q3lnNzkycmo3ODcxNXJjQ3kyNEVUOW5kSFFDTDl3U0g1Z3o4WGtqQjlYVmlm?=
 =?utf-8?B?NjdXL04rUURrZWN2bjU4MVYvY201OFJnMGR4bTJrSG9nc2R5czF0cFRveFY2?=
 =?utf-8?B?bG4vQ2ZIZDI4VU9EbEE3Yk05eWs1UEdndWxHVlNyalBtVlVCMThwaTlOUFBO?=
 =?utf-8?B?MEZlWVplMkVkaVlZMmxGVWF6Vktsd2RHZlNzQy9IU25qS0RTNmM5Zlh3bStY?=
 =?utf-8?B?dFFVVldTQjVlcjBvZnhHSFB4SHhhK0NqTFR3alR6RXI3dUM0d1FpS0t5VmhC?=
 =?utf-8?B?MUhiY3V2R1ZFTTBUdXd3OHZtRWQ1Yi9WYjRvMkJLMFJsdEEydURnTHplQlA1?=
 =?utf-8?B?QmNFbWFyd05iZUJ3aHdTZnN1cHg5M0ZabHVLSXBuZ2sraDVDMEpwOXNPKzlw?=
 =?utf-8?B?YzJRb3M4TFVjY3U3eGpGM1kyWE1kY2orVzZaTFNDYkVmRmQwR3VkRVlxc1ZR?=
 =?utf-8?B?NERhUnFsTkNrR3ZRcDJyaDczeTRpdWtuSk8zNnIxcE5GZG1QWmlUTksrcWRG?=
 =?utf-8?B?dnd3M2Jic0lDU1pacms1OFJkZm9lRnh1akIvRnBQMEVVY3dNT0xWbXgyK3N6?=
 =?utf-8?B?emVHck1IdEJvekxCUE9kYlMreUEyUGg3TEFINXFnMnE3MXZ4SG9aejZTbnlz?=
 =?utf-8?B?WVlGVGgvUzB4WjJMZk1LNXRKelJFa2ZaWkk4cUZBalJhSTVIY0w2TytYbFFC?=
 =?utf-8?B?R29SY0liZzBtVlFRT3ZsRVZoVjBnMmhRNW9TVnlLdExSaUhOa0oxTnR6VzdX?=
 =?utf-8?B?WFA4T2doMnZ6bSttNkRxK3Vrd3ZiZk1KVE8wN3JvNWI4S2FjRW1QdlM1USty?=
 =?utf-8?B?N1J3MjBoangxY21RVkREcGpCNmdtd2NZd05SamJhUnVnUmN3OHRmTWd6MUhN?=
 =?utf-8?B?MUpmVm5DbEFjaWJLWjRlVUpHR1FSSUxrUyt2TU0wZmI5V0pvRmliV0owTG1J?=
 =?utf-8?B?S3JjT3dxQTlxZTdheWgwR2w1N0xSYWE5SW1Yd3VtMUdNNjJabm1ZUkxCdzFo?=
 =?utf-8?B?c0swVitsY2dDWU9IMCtobzQ1NGFIZkM0U3ZaNEQwU3dVTnpUZkRaSkQrRm5R?=
 =?utf-8?B?MGNHckYxcGFldXIzRWc3TnRBZ3ZDMTkwZ0FmVmdxa2MzL2J0NkNCem5YNnpB?=
 =?utf-8?B?SmV3cFRSWWZVZFJPa25KRFA5cDRIY214eVUvTEtuT09teU95OWpjM080VkM4?=
 =?utf-8?B?OXFrTE9wOFhQc0tzejFCcWU2K3VNNmMvSG9uNlpWNGkwOXNiVW81Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 837ccb74-9d8c-4847-9f89-08de7eb9d2a2
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2026 15:29:30.1901
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 8YWBDZz4nc8ZqbUI8TcOlZvEssWjg5aZowXblsR9LyJgXXoh1rnaZNdbZTNl3lSZpaDvp487q5ke5H187yZlqDH01XBykGDV1vvf6EQrNwc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5536

On 10/03/2026 10:26 am, Jan Beulich wrote:
> On 04.03.2026 20:53, Kevin Lampis wrote:
>> struct cpuinfo_x86
>>   .x86        => .family
>>   .x86_vendor => .vendor
>>   .x86_model  => .model
>>   .x86_mask   => .stepping
>>
>> No functional change.
>>
>> This work is part of making Xen safe for Intel family 18/19.
>>
>> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
>> ---
>> I couldn't find any information about these Intel family 6 processors:
>>   model 0x5d: /* SoFIA 3G Granite/ES2.1 */
>>   model 0x65: /* SoFIA LTE AOSP */
>>   model 0x6e: /* Cougar Mountain */
>> Should I add them to intel-family.h?
> We should keep that in sync with Linux, I think, so "no" unless you mean to
> first have respective entries added there.
>
> 0x5d is listed in the SDM, so I'd recommend keeping the entries (using IFM()
> directly for the time being).
>
> 0x65 and 0x6e aren't listed in the SDM, so may never really have hit the
> public. Respective cases can perhaps be dropped, but such dropping would
> again likely better be done in a separate change.

These are the 5G basestations I mentioned during the x86 meeting.  Linux
has declined to take take these models into intel-family.h because
they're not general purpose.

I suggest we drop them, including 0x5d.  I can do a separate patch.

>
>> @@ -3073,71 +3077,71 @@ static bool __init has_if_pschange_mc(void)
>>       * IF_PSCHANGE_MC is only known to affect Intel Family 6 processors at
>>       * this time.
>>       */
>> -    if ( boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
>> -         boot_cpu_data.x86 != 6 )
>> +    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
>> +         boot_cpu_data.family != 6 )
>>          return false;
>>  
>> -    switch ( boot_cpu_data.x86_model )
>> +    switch ( boot_cpu_data.vfm )
>>      {
>>          /*
>>           * Core processors since at least Nehalem are vulnerable.
>>           */
>> -    case 0x1f: /* Auburndale / Havendale */
>> -    case 0x1e: /* Nehalem */
>> -    case 0x1a: /* Nehalem EP */
>> -    case 0x2e: /* Nehalem EX */
>> -    case 0x25: /* Westmere */
>> -    case 0x2c: /* Westmere EP */
>> -    case 0x2f: /* Westmere EX */
>> -    case 0x2a: /* SandyBridge */
>> -    case 0x2d: /* SandyBridge EP/EX */
>> -    case 0x3a: /* IvyBridge */
>> -    case 0x3e: /* IvyBridge EP/EX */
>> -    case 0x3c: /* Haswell */
>> -    case 0x3f: /* Haswell EX/EP */
>> -    case 0x45: /* Haswell D */
>> -    case 0x46: /* Haswell H */
>> -    case 0x3d: /* Broadwell */
>> -    case 0x47: /* Broadwell H */
>> -    case 0x4f: /* Broadwell EP/EX */
>> -    case 0x56: /* Broadwell D */
>> -    case 0x4e: /* Skylake M */
>> -    case 0x5e: /* Skylake D */
>> -    case 0x55: /* Skylake-X / Cascade Lake */
>> -    case 0x7d: /* Ice Lake */
>> -    case 0x7e: /* Ice Lake */
>> -    case 0x8e: /* Kaby / Coffee / Whiskey Lake M */
>> -    case 0x9e: /* Kaby / Coffee / Whiskey Lake D */
>> -    case 0xa5: /* Comet Lake H/S */
>> -    case 0xa6: /* Comet Lake U */
>> +    case INTEL_NEHALEM_G:
>> +    case INTEL_NEHALEM:
>> +    case INTEL_NEHALEM_EP:
>> +    case INTEL_NEHALEM_EX:
>> +    case INTEL_WESTMERE:
>> +    case INTEL_WESTMERE_EP:
>> +    case INTEL_WESTMERE_EX:
>> +    case INTEL_SANDYBRIDGE:
>> +    case INTEL_SANDYBRIDGE_X:
>> +    case INTEL_IVYBRIDGE:
>> +    case INTEL_IVYBRIDGE_X:
>> +    case INTEL_HASWELL:
>> +    case INTEL_HASWELL_X:
>> +    case INTEL_HASWELL_L:
>> +    case INTEL_HASWELL_G:
>> +    case INTEL_BROADWELL:
>> +    case INTEL_BROADWELL_G:
>> +    case INTEL_BROADWELL_X:
>> +    case INTEL_BROADWELL_D:
>> +    case INTEL_SKYLAKE_L:
>> +    case INTEL_SKYLAKE:
>> +    case INTEL_SKYLAKE_X:
>> +    case INTEL_ICELAKE:
>> +    case INTEL_ICELAKE_L:
>> +    case INTEL_KABYLAKE_L:
>> +    case INTEL_KABYLAKE:
>> +    case INTEL_COMETLAKE:
>> +    case INTEL_COMETLAKE_L:
>>          return true;
>>  
>>          /*
>>           * Atom processors are not vulnerable.
>>           */
>> -    case 0x1c: /* Pineview */
>> -    case 0x26: /* Lincroft */
>> -    case 0x27: /* Penwell */
>> -    case 0x35: /* Cloverview */
>> -    case 0x36: /* Cedarview */
>> -    case 0x37: /* Baytrail / Valleyview (Silvermont) */
>> -    case 0x4d: /* Avaton / Rangely (Silvermont) */
>> -    case 0x4c: /* Cherrytrail / Brasswell */
>> -    case 0x4a: /* Merrifield */
>> -    case 0x5a: /* Moorefield */
>> -    case 0x5c: /* Goldmont */
>> -    case 0x5d: /* SoFIA 3G Granite/ES2.1 */
>> -    case 0x65: /* SoFIA LTE AOSP */
>> -    case 0x5f: /* Denverton */
>> -    case 0x6e: /* Cougar Mountain */
>> -    case 0x75: /* Lightning Mountain */
>> -    case 0x7a: /* Gemini Lake */
>> -    case 0x86: /* Jacobsville */
>> +    case INTEL_ATOM_BONNELL:
>> +    case INTEL_ATOM_BONNELL_MID:
>> +    case INTEL_ATOM_SALTWELL_MID:
>> +    case INTEL_ATOM_SALTWELL_TABLET:
>> +    case INTEL_ATOM_SALTWELL:
>> +    case INTEL_ATOM_SILVERMONT:
>> +    case INTEL_ATOM_SILVERMONT_D:
>> +    case INTEL_ATOM_AIRMONT:
>> +    case INTEL_ATOM_SILVERMONT_MID:
>> +    case INTEL_ATOM_SILVERMONT_MID2:
> Can the Silvermonts please be grouped together?
>
>> +    case INTEL_ATOM_GOLDMONT:
>> +    //case 0x5d: /* SoFIA 3G Granite/ES2.1 */ // XXX ???
>> +    //case 0x65: /* SoFIA LTE AOSP */         // XXX ???
>> +    case INTEL_ATOM_GOLDMONT_D:
>> +    //case 0x6e: /* Cougar Mountain */        // XXX ???
>> +    case INTEL_ATOM_AIRMONT_NP:
> Same for the Airmonts and ...
>
>> +    case INTEL_ATOM_GOLDMONT_PLUS:
> ... the Goldmonts.

We need another sync to intel-family.h.  Christian made a correction or
two in this area.  I'll do a patch.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 15:33:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 15:33:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250209.1547682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzz5C-0006cA-4A; Tue, 10 Mar 2026 15:33:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250209.1547682; Tue, 10 Mar 2026 15: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 1vzz5C-0006c3-17; Tue, 10 Mar 2026 15:33:18 +0000
Received: by outflank-mailman (input) for mailman id 1250209;
 Tue, 10 Mar 2026 15:33: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=pBDb=BK=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vzz5B-0006bn-5h
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 15:33:17 +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 72f44dfd-1c96-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 16:33:14 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ0PR03MB5536.namprd03.prod.outlook.com (2603:10b6:a03:28a::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Tue, 10 Mar
 2026 15:33:09 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9700.010; Tue, 10 Mar 2026
 15:33: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: 72f44dfd-1c96-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HxFMpE/pQMLi+wMcJYqrBc/qcKgdfG9XBfKOv6ZPQj8wWob6R+VZxHj+Sakp3oxjMVeNOTw0ioy7YejVEkRRNBTrScM3S2icPWhdOlLEhGuLLuCrLETtC9z/HjEoHIRpBV7iRS/5OcXCR6JqKzUJepq2mLsQgAZXkW43QSruUnDm9LLQfPrOD4QImUYZo4BhLnl0YKklgPlmEfxiyovgKzhukMdZpZp/Kq1TiQYs/cLlLCGg/Y6KocRjQgLL9zj+quVyH58rMRq4PwPtOT4w8CO3FSEcwf27tQjqSYcpQWgC/bTIxrt+mHdKx7ecymaLipxBKG7fgg7YuGEQn/ohvA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KvYyQWMH+apiELISRx4dcMqrsGKmwXo2+p/KCJkUEDY=;
 b=pVlrlSIr0WeW6UoSvDgZCJ75qbgMeyeOASpnYCry7C8G3hwxXdMvovRHvIdCK903ulZcnPpO2vMke2z+L9ronREx3JIBqZLHs4Up/8Fh2/j+6cjC8xXQWG2ZbcszNp225ZUBCerzh5ym6ixvYaJ2rAFaqg4aFe2BXL/kQmXrPB4y4eDdIGGpP0kSQfeybm6Dvlzfj3YK9JfJ0OGugi5ldlwed44GObFH8Mbviyxn3HOKEkDr1MkZCey0GCtjLYxoPlJKppXEhor+ardI/RsXbEAluXHejul5znLIKj1tPK9nEYgVTYZyjPSVGUPlueRdwU94vmcEM3lxPQCDvkILqA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KvYyQWMH+apiELISRx4dcMqrsGKmwXo2+p/KCJkUEDY=;
 b=nq6Dx2gAHjbI6oaAzScj3mYUFhEzVGTNnlRvgOWj2If1yEOfTaQP/0nkMbKKKFbmil7CiM9eU+/vCbMXoF/Cvh5rAKlZot7aZPcMkMIfWxNyagWR7a8cLJKSCa8t2ZipnFVEvuKAyTikA1+csw+41xnw9hGm7NVD7VLr7pb9E9g=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <cd55fdfc-a3f4-466f-876f-dcbbe842ab40@citrix.com>
Date: Tue, 10 Mar 2026 15:33:05 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, roger.pau@citrix.com,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH 3/6] x86: Remove x86 prefixed names from hvm code
To: Jan Beulich <jbeulich@suse.com>, Kevin Lampis <kevin.lampis@citrix.com>
References: <20260304195350.837593-1-kevin.lampis@citrix.com>
 <20260304195350.837593-4-kevin.lampis@citrix.com>
 <4a5018a2-9867-432b-9464-874532241316@suse.com>
 <9eed183c-4157-4432-94ec-a7b7a689fd4a@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <9eed183c-4157-4432-94ec-a7b7a689fd4a@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO6P123CA0029.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:313::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_|SJ0PR03MB5536:EE_
X-MS-Office365-Filtering-Correlation-Id: 5a2fc338-3d5f-4a25-5cba-08de7eba552c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	z+OjmC2FsSw0ViyG5W8zka31gZIL4MI1Dd6e1Ww9dd45G6Sxv4JeRjrhCCX4iTOBYbi8lf4R5RLgeVbVXgH7CezoQD9l0OoIHnbCBneHkA+2VKt2YwEK1o1LXkjETgopc12kn2bbkr+wgw0sqRNKFpKR1TMm0xRb686h8bOD7Tk/ZcOTTIi230bbXWerltYOnKoAD4NI8h5BubEk1F3d6Aarfkvo7in1Ona0jEiwWVfYUoNmC53NlvQSzmb4pb8gqwBuo2YK2p9fRLnlUaT+/o2PTjy2iTI7jcaBUGNJxG778J+xJ6oxooyZbnq2MSgY7XabuXJHr7sxP2E8LK2RBraH4dcyl8MFfL75cC8lc+Nm/KNbkjbAz5a/py5S/aqmdskZyzaSoaLnvobGmTG+MWgmkMnFGZTtRZOc+mcPnvmaT511dnbSzTbeZleD7T0k0T+5xtP1FRw4nAxyIbow67yBfeeqBxcQfR0Qbj6ONKpuwY3A/T4KSalKbqojeq0BsFUMLNgHtMS+AbNhRTfLFPKMgx1KYxTCKao9CzJbmM4rj378V6JNGT4q7WBSduKIf62naNNsc9Jy71A/QJPG57QzkEfI0GnEc4x96zbW985eKd1qu95pI8CEXdkpR0xMiOJlT7pykVKVz0JYQ0ODVir5GOpuG8iFtcgCAGt9ZBc45yHIZjAxdQV3FQx/2qQNqX8EV0ZRZExY9OPDp64KZvvQx7o9BuFdaQ1Uxz0AaO0=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NjVNR0E3K2VsWkpvcFZNclVhNUtOVVRpbjJXUmJyWjRFL3VTL1RhWGMyb0Nz?=
 =?utf-8?B?RFB1dkVTcmd0QStzaGo2Ni95WHc4S3RZOWVPMjQ1VmorbjNxQUV2eCtibTFP?=
 =?utf-8?B?SUxnaU1mUk0wa2tVRG1kQmo5Y1ovSDYvN3NMK3Y0dE0zdzVBdENwbjg4ejdj?=
 =?utf-8?B?Rmpqc3R1WE1mT2hja2g2UnFmRXQ1KzhhOTR4RWR0TnZma3FCZ1I0MG41TE1W?=
 =?utf-8?B?bmFFWTNMU2dFUWphbFFuZW84Mmlia212WTBRZHBhdlNmREJzSGNFejQ0anJa?=
 =?utf-8?B?V0xxVFFLQXczK2ozWFBRejdaWUIwVysxUTdROEhoYnBwY2JEdzA3L3dXRDFm?=
 =?utf-8?B?MnloRWNTcm9kcENkZ01mb0RvY29WR21YbWRHZktjclhzaitUN0RFYnFQYVFp?=
 =?utf-8?B?YkpjclduclM0bzdvLzluUlkrckIxL0RGL3FWdVdCb0c0YjdQMTM3OHZ5SSs3?=
 =?utf-8?B?N3ZseE03U1c1bXo4Q3liK25jaXFmbXl2amhGVmpWQk9hWDAvVlg5WGdGTDQw?=
 =?utf-8?B?bmlyWG5WQlJ5b2tLaElKbzRhRjMxODhRdVNrSWd3eDAxYmpKWDhFb29jc25v?=
 =?utf-8?B?VTdtcFVva2xZUndKcFlqaDhoUTVabnJZSG5WSkNaYlVXT0pQWkRpK2FINGpZ?=
 =?utf-8?B?Y1Y1aGtMejd0MmdPR3pUNVQ4NEZjWTVucFRXSy9lRnM0OTIvek1OM1dFMmVt?=
 =?utf-8?B?TkFuWjVMMzFjVW5Hdk9aenJmZHlPRldSSkplMTZwRlB3THk5U0tCVFhJOVRE?=
 =?utf-8?B?SmJXQ3J5OEhzR0tNb09KSExlbFVyb3lqQjNRc1hieGpZdlpxaEljaURhL0xn?=
 =?utf-8?B?VFhHeC81YWl0TkdYbGtHeU95WDdwemJsV0JwVDdSTVhGOHk5aStEMXFCdTZF?=
 =?utf-8?B?K3ZjWlV3VjJCMHBmbjNXNTZ5UEtWMml4ZktPYjlCem1vUktzQ1dDQ3dDM3c5?=
 =?utf-8?B?SlYzSUJ1T3VEdVJTT0VNWGg0Z0lQbk95RFZSWjRpd0JQSFMwYlQrdjB1ZWF0?=
 =?utf-8?B?TkxJRHFCcTFkbUV5V1BTRzF0cTlaUzluTmYyYlhoT01Qb0psdTVnaTUxMEFk?=
 =?utf-8?B?aTdjRHgwNVFFLytJRXJxZ2MrVXRIdVN2WmsyVTZibDFjSEhCcTk5T0lsZ1pM?=
 =?utf-8?B?RWs2b3ZuNFpJQ2F3cGdtNTU0dTFmZC9mNWJwb0xiaGtCMjNNSXBBVG4zajNj?=
 =?utf-8?B?cStMYnBHNElCV1ozZWdaUzNDYm5NTEYzTHRjRElhUVJEclRabDdpWkY4dUV5?=
 =?utf-8?B?Z2NlRyt5T3NSc1MxNnNKazlJYkhLUHU1M01vOGt0NlFqeVUrWHVleHVnbXB1?=
 =?utf-8?B?WGZwV2twS2lmZ004Y0s3RTJvQ1R0dExqVUIyeVNWeW1pc0owcExMRG91bktR?=
 =?utf-8?B?M2RKa243WXJSeFMrbDlSZlJ5RS8zd2tpbzcvajQzeXdDNWluZWlyeG8ydzlE?=
 =?utf-8?B?MkcxVC90U0wvUllvS3dseVpmUzRmN21lS2Z2NW1VSFZjSXdTWWtrdnlkOW12?=
 =?utf-8?B?bVFTbkVrMG9KQ1hHTEVDQmRHaDhXTFk3WURTdmI5Vm9NR09SZ3dSUkh1UnZp?=
 =?utf-8?B?eDB0QUVrVXRKMVFJRXZXSTJwdm1mYmZ4dkx6Vk5LRFhCNVZ5OUFyd3lYU0JT?=
 =?utf-8?B?dTE2UEp4eVFTWVg0cVhEaHgrQ1lOMVR2Qzd2WWJwTWJrdExxOUVHeTBpelNS?=
 =?utf-8?B?VmJMdFpYa1FkdWk0c0dHK0l0OE16ZWFJM1hmR1krVGpaQXZ4SDJrOHBjL2la?=
 =?utf-8?B?Uk9ERFpxTW9FTUU5VW96TVVNN21RWFBJeEJwa01sclI5SkZMTHlveTZSZnRN?=
 =?utf-8?B?SUNGOWtJYllyQUF5UDhXSTdyMEFDZWVxamg5MkZrTHExcDh6ZHM0U2lFTi9P?=
 =?utf-8?B?ZlVGa1FyZzZuSVBqVUxTcnE5VUQzSkNBNGhyVzhwMlJLRUp0UTEzb2JvVlQ1?=
 =?utf-8?B?L3BpY05FYm5meEVZUWJTS1VDZ2pOMlZVT0FSU0RoOG9rNk1Wb0hiZG16eUdz?=
 =?utf-8?B?L1B6Yy82NHVha2xKYWcxaFp6L0xpWUZqTzlSOEF3UjVicm5rd1NJbjhNdVdv?=
 =?utf-8?B?Z1FKWnZVa2RvVlhIVTFFckoyNVhjMWpXY1NVUUVkMmdMNlI4RGtNdW5oTG5M?=
 =?utf-8?B?UzJ1VktrM0xud0R3amJKKy9vUUwvOFh5TFY0YjdWcks1WlJxQ3BRZ3JHclVZ?=
 =?utf-8?B?cXVraWhybTFQeURWbkVYSm5yenFPeTU5QkdPUjAyb3hIbWdFd0ZMbjhmcmFw?=
 =?utf-8?B?d0hMSUZJQW5heVMzZnB0dEgzbDR2eUdnOC95UXI0K0VUcHZmU2ZZTzlxeito?=
 =?utf-8?B?c3hIQ1IrcTZGb3dIbTFmcFZRM2duUUtjVkljZlRmdzdnV1grYjFyQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5a2fc338-3d5f-4a25-5cba-08de7eba552c
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2026 15:33:09.2068
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: NUxPpIJHuzTxN/gUUBG0uqag4s2Uq2f4sRq7XQCAAoOjlndGYG2ciBY/796NVL7X65dp6KxwqHjnTYWGjomcFnWW6NpwqZW+AYVaai4n27c=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5536

On 10/03/2026 3:29 pm, Andrew Cooper wrote:
>>> @@ -3073,71 +3077,71 @@ static bool __init has_if_pschange_mc(void)
>>>       * IF_PSCHANGE_MC is only known to affect Intel Family 6 processors at
>>>       * this time.
>>>       */
>>> -    if ( boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
>>> -         boot_cpu_data.x86 != 6 )
>>> +    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
>>> +         boot_cpu_data.family != 6 )
>>>          return false;
>>>  
>>> -    switch ( boot_cpu_data.x86_model )
>>> +    switch ( boot_cpu_data.vfm )
>>>      {
>>>          /*
>>>           * Core processors since at least Nehalem are vulnerable.
>>>           */
>>> -    case 0x1f: /* Auburndale / Havendale */
>>> -    case 0x1e: /* Nehalem */
>>> -    case 0x1a: /* Nehalem EP */
>>> -    case 0x2e: /* Nehalem EX */
>>> -    case 0x25: /* Westmere */
>>> -    case 0x2c: /* Westmere EP */
>>> -    case 0x2f: /* Westmere EX */
>>> -    case 0x2a: /* SandyBridge */
>>> -    case 0x2d: /* SandyBridge EP/EX */
>>> -    case 0x3a: /* IvyBridge */
>>> -    case 0x3e: /* IvyBridge EP/EX */
>>> -    case 0x3c: /* Haswell */
>>> -    case 0x3f: /* Haswell EX/EP */
>>> -    case 0x45: /* Haswell D */
>>> -    case 0x46: /* Haswell H */
>>> -    case 0x3d: /* Broadwell */
>>> -    case 0x47: /* Broadwell H */
>>> -    case 0x4f: /* Broadwell EP/EX */
>>> -    case 0x56: /* Broadwell D */
>>> -    case 0x4e: /* Skylake M */
>>> -    case 0x5e: /* Skylake D */
>>> -    case 0x55: /* Skylake-X / Cascade Lake */
>>> -    case 0x7d: /* Ice Lake */
>>> -    case 0x7e: /* Ice Lake */
>>> -    case 0x8e: /* Kaby / Coffee / Whiskey Lake M */
>>> -    case 0x9e: /* Kaby / Coffee / Whiskey Lake D */
>>> -    case 0xa5: /* Comet Lake H/S */
>>> -    case 0xa6: /* Comet Lake U */
>>> +    case INTEL_NEHALEM_G:
>>> +    case INTEL_NEHALEM:
>>> +    case INTEL_NEHALEM_EP:
>>> +    case INTEL_NEHALEM_EX:
>>> +    case INTEL_WESTMERE:
>>> +    case INTEL_WESTMERE_EP:
>>> +    case INTEL_WESTMERE_EX:
>>> +    case INTEL_SANDYBRIDGE:
>>> +    case INTEL_SANDYBRIDGE_X:
>>> +    case INTEL_IVYBRIDGE:
>>> +    case INTEL_IVYBRIDGE_X:
>>> +    case INTEL_HASWELL:
>>> +    case INTEL_HASWELL_X:
>>> +    case INTEL_HASWELL_L:
>>> +    case INTEL_HASWELL_G:
>>> +    case INTEL_BROADWELL:
>>> +    case INTEL_BROADWELL_G:
>>> +    case INTEL_BROADWELL_X:
>>> +    case INTEL_BROADWELL_D:
>>> +    case INTEL_SKYLAKE_L:
>>> +    case INTEL_SKYLAKE:
>>> +    case INTEL_SKYLAKE_X:
>>> +    case INTEL_ICELAKE:
>>> +    case INTEL_ICELAKE_L:
>>> +    case INTEL_KABYLAKE_L:
>>> +    case INTEL_KABYLAKE:
>>> +    case INTEL_COMETLAKE:
>>> +    case INTEL_COMETLAKE_L:
>>>          return true;
>>>  
>>>          /*
>>>           * Atom processors are not vulnerable.
>>>           */
>>> -    case 0x1c: /* Pineview */
>>> -    case 0x26: /* Lincroft */
>>> -    case 0x27: /* Penwell */
>>> -    case 0x35: /* Cloverview */
>>> -    case 0x36: /* Cedarview */
>>> -    case 0x37: /* Baytrail / Valleyview (Silvermont) */
>>> -    case 0x4d: /* Avaton / Rangely (Silvermont) */
>>> -    case 0x4c: /* Cherrytrail / Brasswell */
>>> -    case 0x4a: /* Merrifield */
>>> -    case 0x5a: /* Moorefield */
>>> -    case 0x5c: /* Goldmont */
>>> -    case 0x5d: /* SoFIA 3G Granite/ES2.1 */
>>> -    case 0x65: /* SoFIA LTE AOSP */
>>> -    case 0x5f: /* Denverton */
>>> -    case 0x6e: /* Cougar Mountain */
>>> -    case 0x75: /* Lightning Mountain */
>>> -    case 0x7a: /* Gemini Lake */
>>> -    case 0x86: /* Jacobsville */
>>> +    case INTEL_ATOM_BONNELL:
>>> +    case INTEL_ATOM_BONNELL_MID:
>>> +    case INTEL_ATOM_SALTWELL_MID:
>>> +    case INTEL_ATOM_SALTWELL_TABLET:
>>> +    case INTEL_ATOM_SALTWELL:
>>> +    case INTEL_ATOM_SILVERMONT:
>>> +    case INTEL_ATOM_SILVERMONT_D:
>>> +    case INTEL_ATOM_AIRMONT:
>>> +    case INTEL_ATOM_SILVERMONT_MID:
>>> +    case INTEL_ATOM_SILVERMONT_MID2:
>> Can the Silvermonts please be grouped together?
>>
>>> +    case INTEL_ATOM_GOLDMONT:
>>> +    //case 0x5d: /* SoFIA 3G Granite/ES2.1 */ // XXX ???
>>> +    //case 0x65: /* SoFIA LTE AOSP */         // XXX ???
>>> +    case INTEL_ATOM_GOLDMONT_D:
>>> +    //case 0x6e: /* Cougar Mountain */        // XXX ???
>>> +    case INTEL_ATOM_AIRMONT_NP:
>> Same for the Airmonts and ...
>>
>>> +    case INTEL_ATOM_GOLDMONT_PLUS:
>> ... the Goldmonts.
> We need another sync to intel-family.h.  Christian made a correction or
> two in this area.  I'll do a patch.

Scratch this.  It looks like we're already up to date.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 15:36:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 15:36:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250222.1547698 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzz8B-0007FJ-Kc; Tue, 10 Mar 2026 15:36:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250222.1547698; Tue, 10 Mar 2026 15:36: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 1vzz8B-0007FC-Hr; Tue, 10 Mar 2026 15:36:23 +0000
Received: by outflank-mailman (input) for mailman id 1250222;
 Tue, 10 Mar 2026 15:36: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=S17i=BK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vzz89-0007Eq-RF
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 15:36:21 +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 e2c59489-1c96-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 16:36:20 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4852c9b4158so27902375e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 08:36:20 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48541b7f3cdsm94249015e9.14.2026.03.10.08.36.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Mar 2026 08:36:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e2c59489-1c96-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773156979; x=1773761779; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ChPtLyUjSlXIN1qUGMITksg94TOXzdsCupOaSiQ6YKM=;
        b=Lk+lFEJNwGT+klcpA78Onv1G4LhwjEeP/hskYVNt0tTPOzjuqJHTAxoyJNHYczC3Qt
         h+1M11lCh/NJKRF7vuZlKM15ic4yhhibdr87tu8G5po3c5SoQ4IUoCps6nWRceTTJgRD
         3dg5Cq86/Xy5C8hqcFpfGH3mNg0bf5xFFr/W3C0xcOmKHn6ZjWWil/TmiSIlnMhVVAdS
         qREhzpaGRAZaXWeFPeNmpxoBM7pInOPEaP94+KxKz9uZiryzPG9slsv2S5ykmDX9lMa5
         sHcUaGRrCKAih2KH1I86Rmddn92xSaMWb1J3M1Q80qV6uqSEOSSPUfK/RVvAC61eDeZC
         5dnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773156979; x=1773761779;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ChPtLyUjSlXIN1qUGMITksg94TOXzdsCupOaSiQ6YKM=;
        b=GA8EXTcpmZqJoT05rnoRW5l3uLYz3HwC6Ao1hj5ojFpK7vOz0QZnI5G17DMc+lrF6O
         GVDMslIDMb3I8ednHSmKUw55R2gd5RYxzE6v0KD7nH8zKcPY8gPmpEYq53yV/uEW4NKU
         i5zB+f9iYeaCcdz8K1/8SGtHaeZi9wm5bpnrbTTJdygWj4BES8/2fO5yZ6IsDT+PIOp6
         8GXd6SZbTDcn7Vka35L64tN1VF+qrUHuLhq6j4Sw7ly1fGILXokwBPJ4cIiIDjVJg2hL
         s4RQHfdDZ1ysH7FrdyD68NRhjjRei2uRps4Tp5mJ/t7OiqEQG02h5yt1JIdMEoQK8fOw
         yn0w==
X-Forwarded-Encrypted: i=1; AJvYcCU8t7fDSuC7CeZvwWiFLo3PckgpPOZxoFEWA7bpEFspXlSWh2CZX977qkalnjXX/sauqqWNygVVK6g=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxm1XDBwsbmVKM1u/5b4OpPK8b8mdOIgP5t0CLxtebco3EGZsA1
	xrBUWVYFTomCq0X+oBis7dxOA/FiuZ0SmdM14sQU9e3hi+eDU7zWAOSUxBnrFxjD4Q==
X-Gm-Gg: ATEYQzyzk6ALo2C7E9H8cwwK7Obe+nkc9WKvdCFNVvCL32WknpdvS8Qi+RIZNdSXwdu
	BtMxgA/VS0fqRtGn3ndA1lqO0x8ZwEpCFr2yVF/r1hQG67EBUYJMmsT3+Cyfi46/TczmNHJGheS
	SanuvQuesgWSlRIQIL2TNp6cB3avQgv95wPUzw3C2jFqZUJkIBgB+8rWUpQ0aYXhbzDVGjfaAYe
	wO/irysdfdlvv0b9+1KVq3SGRSVI5AT5tokRs27t5+UhglgM13NMby13KrjEAm/k3JkdTFO8XHi
	Swx2TPO9YGCt4zrSUhJmWbGRq5LYBq2HjE9GN9isEgL6Ph7p3RcWQRggWzMfrhubiPeO1dNg89z
	vY1m4PorM2E/OeaEgsZmLEctP66KfbdRZeKcTsWHEyeJcvemJHbLEPeYSCS3HGyi05784/meHiD
	fUE1Z8DJpfVUfmdj1LcB6OVtKj1bDCAvDNcLdDqdewckRWbBauKGN2KQP4B2xiHQuIe+JOWu+Jb
	bKqUsncwVVmuIg=
X-Received: by 2002:a05:600c:4751:b0:485:3ae3:b394 with SMTP id 5b1f17b1804b1-4853ae3b587mr141608455e9.31.1773156979432;
        Tue, 10 Mar 2026 08:36:19 -0700 (PDT)
Message-ID: <c73afb52-e39c-48c8-bf2c-41b509ca0dd0@suse.com>
Date: Tue, 10 Mar 2026 16:36:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/2] x86/ioreq: Extend ioreq server to support multiple
 ioreq pages
To: Julian Vetter <julian.vetter@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20260305130434.635276-1-julian.vetter@vates.tech>
 <20260305130434.635276-2-julian.vetter@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260305130434.635276-2-julian.vetter@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.03.2026 14:04, Julian Vetter wrote:
> @@ -45,7 +52,8 @@ struct ioreq_server {
>      /* Lock to serialize toolstack modifications */
>      spinlock_t             lock;
>  
> -    struct ioreq_page      ioreq;
> +    ioreq_t                *ioreq;
> +    gfn_t                  ioreq_gfn;
>      struct list_head       ioreq_vcpu_list;
>      struct ioreq_page      bufioreq;

This change in data arrangement should in principle be independent of the
step to supporting multiple pages. Hence it should be possible to separate
out. Problem being that just by looking here and at hvm_{,un}map_ioreq_gfn()
I can't conclude how you get away without the "page" field that struct
ioreq_page had. If you can get away without, it's not quite clear why the
field exists in the first place. If it's not needed, dropping it would be
yet another separate, prereq change. At which point the remaining pair of
fields could continue to be used, i.e. the change above then wouldn't be
needed; va could be renamed if need be, and its type changed.

And if the "page" field is still needed, then even more so you would imo
want to retain the present data layout.

In any event, if at all possible a goal imo ought to be to avoid
duplication of logic, like what is happening in the two named functions.
I.e. preferably the bufio case would continue to be as similar as possible,
just known to be single-page.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 15:40:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 15:40:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250232.1547708 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzzCS-0000OL-5b; Tue, 10 Mar 2026 15:40:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250232.1547708; Tue, 10 Mar 2026 15:40:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzzCS-0000OE-1k; Tue, 10 Mar 2026 15:40:48 +0000
Received: by outflank-mailman (input) for mailman id 1250232;
 Tue, 10 Mar 2026 15:40: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=S17i=BK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vzzCQ-0000O8-Vs
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 15:40:46 +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 807a96ce-1c97-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 16:40:44 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-482f454be5bso131175e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 08:40:44 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48541b8d4easm90405155e9.15.2026.03.10.08.40.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Mar 2026 08:40:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 807a96ce-1c97-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773157244; x=1773762044; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=v6oDr0hNtfVv64oxcM72cctFqHNAOLFAB55PJOHsCkY=;
        b=EB4dcX3EaxT3/0SzGEkWlL68tT+p+58qhcrDxufITWCpFurn/9nwIHqBIWnlZHG7y2
         +HkbN4kd47mCoc+Sp3RSXdfJj8/K0kvp+jBi777P4lONfcCsx9SNXbAFnP1UZ+SSjVue
         23fnyR4xTeHc3L/vSMFG7jAyr+IPgLvbWfSS5DC6fbEi4xgg+X0wvZVQ+iod7rJzPeUe
         cNvRdwSsqYHey0AhYobfFA7jdK9JaSlEEBl/yBiDCyGRjdm0i2/+vaVsy1y1h7nRmuPj
         HrX/oKK1XKMhkJYPsPE1+13lc00NMWIGC611nVhcnZGiYaqZx4bh4konyvoqi7ziBU7U
         RyZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773157244; x=1773762044;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=v6oDr0hNtfVv64oxcM72cctFqHNAOLFAB55PJOHsCkY=;
        b=reFgq9ydrXgRNX4JII+KEr1P4X3fk9pEaag731JFL6haf8HfoExKwYpRxoTIsk5Y+o
         49meOxt3McPArpMB1PkVJyUVsF/YIm4VNIM48fB9askKEq+67oxNC8Qf2UCiVumDROI/
         TT6NteU8YepOsOLEfAcuE6Vn+oTUtT7icmOhg0jowWacGPY+yKfQhQW1l33bSmDFkmQk
         Mh4jKsz6HXd7O2Dk2hDs/xnaq8ji7PZCfag5DtvU6NmuOdKhw+J9eMsfUBkP5gz93Hrr
         FzAOIq4NnJuUUM0FvjNvV0osbhK1PDk/Yaz5EXIj3TU9+uQqe4H3wKxkwSpaO4KiB0Rs
         tgYw==
X-Forwarded-Encrypted: i=1; AJvYcCWl5MLN0pF56u0DFavSOqzCtPwfcEWky1sSkddlKaA1sU2Tm2eRSeyKUpqxXJmww4hpM8hW3KeXBEk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywi9dGaoNz8HrpT2M2Lc/xPW9tcfwpw3rfQTtkv8CHygskcgUYX
	LEY14h53TNbpX92mzt1JIFxvHquQQulJsdwG6giBAbs7DpKiqrVYiPdcY5uffZxz1A==
X-Gm-Gg: ATEYQzy/mVz/JoaDnMcrHI7kyWcLTai2W+b3SE+JkiF6ta67TfLHOfVmC1ggOAxrFUx
	uV57cVEuVX6dXqJEr51bOje3+nYyt4IOY4HTOfddTYMBAuql/OCRrisVxvEcc4jmPFmy6XhkKjx
	ZFkUm3opLg6sXOlCw5dJWwD7ILiPhB+N/CtkoBwyu7rmabRMz/oKKAgBZLEH/cBU+uOnTtdyZnQ
	fHRrxJcdyOwB1DHv4egTURYPh1xW5GL4mtTfd5EXh04baXPlZVHI/dtpt/aZ2lbylFU+AfpxNaW
	idEri2JwJgeUy+jO+dwbSy8EyqaDDu6Ai6lB6ztL3I5Z2O4hyprpVptyONljASKow6k2jvGlxiK
	ikZkNctFOr1V0HWPFlwTgiydwgy/9H9YlEm9I/wGAvKcBvjwJcGVEo0NpwdZg9Fmb7E7BSWc+/I
	dIbXOV+4BT6d0J32/c7/J25xBYIKa6EF+9cFKU/cTA89Pb7sxXw88HvD8/P/18shLdnQD5zKohG
	YHzrjiZU/G2J+k=
X-Received: by 2002:a05:600c:1d04:b0:485:3428:774c with SMTP id 5b1f17b1804b1-485419a286cmr66050045e9.4.1773157244032;
        Tue, 10 Mar 2026 08:40:44 -0700 (PDT)
Message-ID: <fff40b9b-8148-4803-8886-ee1b39afb722@suse.com>
Date: Tue, 10 Mar 2026 16:40:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/6] x86: Remove x86 prefixed names from hvm code
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: roger.pau@citrix.com, xen-devel@lists.xenproject.org,
 Kevin Lampis <kevin.lampis@citrix.com>
References: <20260304195350.837593-1-kevin.lampis@citrix.com>
 <20260304195350.837593-4-kevin.lampis@citrix.com>
 <4a5018a2-9867-432b-9464-874532241316@suse.com>
 <9eed183c-4157-4432-94ec-a7b7a689fd4a@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <9eed183c-4157-4432-94ec-a7b7a689fd4a@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.03.2026 16:29, Andrew Cooper wrote:
> On 10/03/2026 10:26 am, Jan Beulich wrote:
>> On 04.03.2026 20:53, Kevin Lampis wrote:
>>> struct cpuinfo_x86
>>>   .x86        => .family
>>>   .x86_vendor => .vendor
>>>   .x86_model  => .model
>>>   .x86_mask   => .stepping
>>>
>>> No functional change.
>>>
>>> This work is part of making Xen safe for Intel family 18/19.
>>>
>>> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
>>> ---
>>> I couldn't find any information about these Intel family 6 processors:
>>>   model 0x5d: /* SoFIA 3G Granite/ES2.1 */
>>>   model 0x65: /* SoFIA LTE AOSP */
>>>   model 0x6e: /* Cougar Mountain */
>>> Should I add them to intel-family.h?
>> We should keep that in sync with Linux, I think, so "no" unless you mean to
>> first have respective entries added there.
>>
>> 0x5d is listed in the SDM, so I'd recommend keeping the entries (using IFM()
>> directly for the time being).
>>
>> 0x65 and 0x6e aren't listed in the SDM, so may never really have hit the
>> public. Respective cases can perhaps be dropped, but such dropping would
>> again likely better be done in a separate change.
> 
> These are the 5G basestations I mentioned during the x86 meeting.  Linux
> has declined to take take these models into intel-family.h because
> they're not general purpose.
> 
> I suggest we drop them, including 0x5d.  I can do a separate patch.

For 0x5d it's not quite clear what the justification would be. Looking at the
SDM, those X3-C3000 don't look any more or less general purpose as C2000 and
C1000. I guess I'll learn once you've sent the patch.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 15:56:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 15:56:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250249.1547717 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzzRi-0002DN-G6; Tue, 10 Mar 2026 15:56:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250249.1547717; Tue, 10 Mar 2026 15:56:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzzRi-0002DF-Cl; Tue, 10 Mar 2026 15:56:34 +0000
Received: by outflank-mailman (input) for mailman id 1250249;
 Tue, 10 Mar 2026 15:56: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=+/Uq=BK=bounce.vates.tech=bounce-md_30504962.69b03f27.v1-01e064fb06d54d30b8ea52b39efaa898@srs-se1.protection.inumbo.net>)
 id 1vzzRh-0002D9-6f
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 15:56:33 +0000
Received: from mail133-21.atl131.mandrillapp.com
 (mail133-21.atl131.mandrillapp.com [198.2.133.21])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b0c59f11-1c99-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 16:56:25 +0100 (CET)
Received: from pmta13.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail133-21.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fVdlq5Hksz1XLF12
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 15:56:23 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 01e064fb06d54d30b8ea52b39efaa898; Tue, 10 Mar 2026 15:56: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: b0c59f11-1c99-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773158183; x=1773428183;
	bh=FENQz4sBH2k2YM19ydf9S4jWXysIFZNaNow0h7SDNkQ=;
	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=uNA14AUNQ3+VqnHHYGAwaKuElHbhyjElNZhBUIEb9CGi+92+C2MwQTjjkSHisTyjY
	 YLvHzg24lGOaf+y/XaEn2uXNw6kiD527DKEkDeqkC1FRxJcm7mhRcHz/p6V54REPFy
	 OtGzK8XDyIU8nigAWeWKBCaZFRT6blVA5eI72qHs2tcgauKfbKZbTNmHqpLicKhyhl
	 hhxHZwuXk4rsCyxcvmiQVwvloeCeCXWQWS9fglyVkJuU9Ni1hD4ThlSm8VoP4VSmMH
	 LvgmKOvrx7ZulbwBjqHVOtNQD3gTtBnEbkiBis6xsmK2nvlqXhtVm+U/Uj58XqOSye
	 BvOVNIiLjiRPQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773158183; x=1773418683; i=julian.vetter@vates.tech;
	bh=FENQz4sBH2k2YM19ydf9S4jWXysIFZNaNow0h7SDNkQ=;
	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=fziHjF5l2OHmmAzZmwY8rjHFeVQshxwT1aNU6wO/48bAt7tavK/DxHYq3wkCzBcD2
	 wPlmbYkMRDkn55QJnt+3BUlqRnfyIyKX83SUtwVjIypXFi6oVCA5t6Uf0PlGWeoMYf
	 aD7J+7Wm/GozwUKjZKXzNCZW29ymDQ9ulfL1MOPxrfEw19gPPQOT2VkgmAr7JePftS
	 VEL2jjOlmQb+hW4k4TOff7g4P/z/ZB/B+WEYFoZvUWuhPHVsENDL84PPK5LZRUD7nA
	 lqohT4q1UvaUbwON9B4GHZdnbKS74eBwQGzfjyW2rAvThdx53TSMbaAfETvjrZYLy4
	 4nfTfHHl4zCJw==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v4=202/2]=20x86/ioreq:=20Extend=20ioreq=20server=20to=20support=20multiple=20ioreq=20pages?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773158182407
Message-Id: <a05e2d6c-5ba7-4651-b9d1-c1b502be0e7b@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20260305130434.635276-1-julian.vetter@vates.tech> <20260305130434.635276-2-julian.vetter@vates.tech> <c73afb52-e39c-48c8-bf2c-41b509ca0dd0@suse.com>
In-Reply-To: <c73afb52-e39c-48c8-bf2c-41b509ca0dd0@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.01e064fb06d54d30b8ea52b39efaa898?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260310:md
Date: Tue, 10 Mar 2026 15:56:23 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On 3/10/26 16:36, Jan Beulich wrote:
> On 05.03.2026 14:04, Julian Vetter wrote:
>> @@ -45,7 +52,8 @@ struct ioreq_server {
>>       /* Lock to serialize toolstack modifications */
>>       spinlock_t             lock;
>>   
>> -    struct ioreq_page      ioreq;
>> +    ioreq_t                *ioreq;
>> +    gfn_t                  ioreq_gfn;
>>       struct list_head       ioreq_vcpu_list;
>>       struct ioreq_page      bufioreq;
> 
> This change in data arrangement should in principle be independent of the
> step to supporting multiple pages. Hence it should be possible to separate
> out. Problem being that just by looking here and at hvm_{,un}map_ioreq_gfn()
> I can't conclude how you get away without the "page" field that struct
> ioreq_page had. If you can get away without, it's not quite clear why the
> field exists in the first place. If it's not needed, dropping it would be
> yet another separate, prereq change. At which point the remaining pair of
> fields could continue to be used, i.e. the change above then wouldn't be
> needed; va could be renamed if need be, and its type changed.
>

Thank you again Jan for your feedback! I don't need the page anymore. 
When I use vmap(), I don't need to keep track of it, because during 
teardown, I can recover it via vmap_to_page(). Currently it's necessary 
because in destroy_ring_for_helper we need the page, to be destroyed. 
But I see now, on X86 the map_domain_page_global called from 
prepare_ring_for_helper actually does vmap(&mfn, 1). So the page is also 
from the vmap range. So for the teardown I assume a vmap_to_page() could 
be used as well. But I also see there is a special case, if NDEBUG=1, 
map_domain_page_global short-circuits to mfn_to_virt() for low MFNs 
(putting the VA in the directmap range) and bypassing vmap. In that case 

vmap_to_page() would not work. So, this would be really messy. I would 
rather switch the bufioreq also to an explicitly vmap()'ed page, then we 
could remove the page pointer and both cases would be aligned again.

> And if the "page" field is still needed, then even more so you would imo
> want to retain the present data layout.
> 
> In any event, if at all possible a goal imo ought to be to avoid
> duplication of logic, like what is happening in the two named functions.
> I.e. preferably the bufio case would continue to be as similar as possible,
> just known to be single-page.

Yes, I agree. Thank you for you insight. I will have a look again how I 
could align them as much as possible.

Julian
> 
> Jan



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 16:00:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 16:00:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250261.1547726 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzzVp-0004Ms-0y; Tue, 10 Mar 2026 16:00:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250261.1547726; Tue, 10 Mar 2026 16: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 1vzzVo-0004Ml-UJ; Tue, 10 Mar 2026 16:00:48 +0000
Received: by outflank-mailman (input) for mailman id 1250261;
 Tue, 10 Mar 2026 16:00:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vzzVn-0004Mf-Vd
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 16:00:48 +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 4c636630-1c9a-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 17:00:45 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-48334ee0aeaso106670615e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 09:00:45 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4852470c697sm115928445e9.31.2026.03.10.09.00.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Mar 2026 09:00:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4c636630-1c9a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773158445; x=1773763245; 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=AQV8fZ84ZRFEpZsKly3NgEQ81YLTvarXOg/rJ1/KrGM=;
        b=kjdNPiDr/0vTz7EHCuB8qc26VNR02x9P5X/Nie+nvYbqzyw/JEQkZs1TBdIup3nSzO
         cJqpVbq9/q7k8OczsKSoLz7wIB5qMZvUxOKt9SlMIO6kJvXiukVZYT3fHXiNpZtbFAVx
         PqrsKZ8vlbvOWhZ4uceiXJaSvpcy1BFzRjMot0o/tFXJe2igixED/Tyrn8accQcSWILU
         jLBM5P1Q/DCDjjI55da9jWlSpHucOfeN2xRJVMqt9NvzLGbUNDJd/fPnBQretcxhmybp
         BGeTKYpHwHJ5Rv4ORHg+QbZXxBOYwGEJNX0LmK8xHlRa+d9ZbTp07A5Y9p+HJ5iK637C
         uypw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773158445; x=1773763245;
        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=AQV8fZ84ZRFEpZsKly3NgEQ81YLTvarXOg/rJ1/KrGM=;
        b=MyszPuNCq6UXkHO0OFXlHmEFebHO78nywxG7/xJm9fpcwuvNMFmfNguPLFWPwBrgoE
         qRS9CLYf/zg6iMj4iEQ+KqrIB8Bjby9K9omWY1lg5jNuewwpn6xQKWINY8XlDEVNK8Y/
         G2IJYY3NsjIFr4MTyXVYrj7WQ69DKx34zv11+T30j0uos2sLUHfkYR5Ml7OEMSav+A7P
         qwklf4Ahm6LGT+CJbCZMa4oT+IloqHpTKpc7SeLi9twl++TvfF1vinAOowzPp13P52Js
         RXhLGFESIAxTFjQBoPo2vdcMRB5oZ0U9Lj0r4SPRoWqhOTS5ytzL7RDP/LyxBRXv19hQ
         Sgag==
X-Forwarded-Encrypted: i=1; AJvYcCW4Av+Uhlask9kuY2O5OQlbLTcPMeIqB+nIcNez2geaH50dS8ZGxcUpC++UqqQbDBZv/6Taqd228j8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzqUNIBKxpYkZ82+zBfqgCPS6IE5QsoJTckLSfP7OYK8YCY2P+K
	mk9MkklYjKwnKm1gA6sQJj7g5KZ5pqgM9p/FbRuvSeuWNv+39IIbECmB
X-Gm-Gg: ATEYQzwAi0Ane0SWwD9Ijs6AVE8eDfsMt0AFBKJJXsSbMFe1XJ6EFBOHRb9cKwV0TQZ
	PoyQ+D+gmT/kYhq/tVpZr6dkc8K+luuA59OxcVWwLnOx+lGj5cA5KoHvIUkoYUY+knxhPeYXB07
	Kuj7m8xMaAak+KmjGTAeteAT37uuNFg3vcQTuSCkYHJSwPWAyQw9MxekaZKAoo1/GWoM16E3eTe
	zj2BHK56XMjiSnkVPUmb+gBTJ/U5fMqo1e4DSxaWneAw70F2B2gIvRUSg9Md0pQ13poNhht2P+i
	pQXIvf+/3n1vlC7DZ4BPQNcCc+rmcBCy1726XU99Z2clhDVrGPtChXFSDehIHWsYXWUH2gIZqKS
	/J9GrNLnahdv3nmgrmk+joy1MrZj97eOJCFBoBwi9tiNH2MAL6W6/XacHKSLTlCw36PQ3eRtz2q
	dYkxVzryE70rjJ7NokB+lNU7/ex4O6Dtm3wKOJsbinewODARstTSZWJUdb0jLqhah+V+gAuDvc3
	dHCEFs=
X-Received: by 2002:a05:600c:3b92:b0:485:3b00:f939 with SMTP id 5b1f17b1804b1-4853b00fa43mr148729915e9.8.1773158444677;
        Tue, 10 Mar 2026 09:00:44 -0700 (PDT)
Message-ID: <5d15bc9b-ead9-4690-b5cd-3b63d83537b6@gmail.com>
Date: Tue, 10 Mar 2026 17:00:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 01/14] xen/riscv: detect and store supported hypervisor
 CSR bits at boot
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
 <3201951150104f17593e16c7ba00ada51ac1e10f.1772814110.git.oleksii.kurochko@gmail.com>
 <2de7f459-00b3-4968-aaa2-9067cb0c4aa4@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <2de7f459-00b3-4968-aaa2-9067cb0c4aa4@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 3/10/26 9:11 AM, Jan Beulich wrote:
> On 06.03.2026 17:33, Oleksii Kurochko wrote:
>> Some hypervisor CSRs expose optional functionality and may not implement
>> all architectural bits. Writing unsupported bits can either be ignored
>> or raise an exception depending on the platform.
>>
>> Detect the set of writable bits for selected hypervisor CSRs at boot and
>> store the resulting masks for later use. This allows safely programming
>> these CSRs during vCPU context switching and avoids relying on hardcoded
>> architectural assumptions.
>>
>> Use csr_read()&csr_write() instead of csr_swap()+all ones mask as some
>> CSR registers have WPRI fields which should be preserved during write
>> operation.
>>
>> Also, ro_one struct is introduced to cover the cases when a bit in CSR
>> register (at the momemnt, it is only hstateen0) may be r/o-one to have
>> hypervisor view of register seen by guest correct.
>>
>> Masks are calculated at the moment only for hedeleg, henvcfg, hideleg,
>> hstateen0 registers as only them are going to be used in the follow up
>> patch.
>>
>> If the Smstateen extension is not implemented, hstateen0 cannot be read
>> because the register is considered non-existent. Instructions that attempt
>> to access a CSR that is not implemented or not visible in the current mode
>> are reserved and will raise an illegal-instruction exception.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> --- a/xen/arch/riscv/domain.c
>> +++ b/xen/arch/riscv/domain.c
>> @@ -2,9 +2,66 @@
>>   
>>   #include <xen/init.h>
>>   #include <xen/mm.h>
>> +#include <xen/sections.h>
>>   #include <xen/sched.h>
>>   #include <xen/vmap.h>
>>   
>> +#include <asm/cpufeature.h>
>> +#include <asm/csr.h>
>> +
>> +struct csr_masks {
>> +    register_t hedeleg;
>> +    register_t henvcfg;
>> +    register_t hideleg;
>> +    register_t hstateen0;
>> +
>> +    struct {
>> +        register_t hstateen0;
>> +    } ro_one;
>> +};
>> +
>> +static struct csr_masks __ro_after_init csr_masks;
>> +
>> +#define HEDELEG_AVAIL_MASK ULONG_MAX
>> +#define HIDELEG_AVAIL_MASK ULONG_MAX
>> +#define HENVCFG_AVAIL_MASK _UL(0xE0000003000000FF)
>> +#define HSTATEEN0_AVAIL_MASK _UL(0xDE00000000000007)
> It's not quite clear to me what AVAIL in here is to signal.

It signal that these bits are potentially available for s/w to be set.
If you want to suggest the better naming and can change that in the
follow-up patch.


>   It's also not
> quite clear to me why you would use _UL() in #define-s sitting in a C file
> (and hence not possibly being used in assembly code; even for asm() I'd
> expect constants to be properly passed in as C operands).

I thought it is always be good to use _UL() for such type of constants as
ULONG_MAX also uses UL, but not in form of _UL() macros. If it would be
better to drop, I can do that in follow-up patch.

>
>> +void __init init_csr_masks(void)
>> +{
>> +    /*
>> +     * The mask specifies the bits that may be safely modified without
>> +     * causing side effects.
>> +     *
>> +     * For example, registers such as henvcfg or hstateen0 contain WPRI
>> +     * fields that must be preserved. Any write to the full register must
>> +     * therefore retain the original values of those fields.
>> +     */
>> +#define INIT_CSR_MASK(csr, field, mask) do { \
>> +        register_t old = csr_read_set(CSR_##csr, mask); \
>> +        csr_masks.field = csr_swap(CSR_##csr, old); \
>> +    } while (0)
>> +
>> +#define INIT_RO_ONE_MASK(csr, field, mask) do { \
>> +        register_t old = csr_read_clear(CSR_HSTATEEN0, mask); \
>> +        csr_masks.ro_one.field = csr_swap(CSR_##csr, old) & mask; \
>> +    } while (0)
>> +
>> +    INIT_CSR_MASK(HEDELEG, hedeleg, HEDELEG_AVAIL_MASK);
>> +    INIT_CSR_MASK(HIDELEG, hideleg, HIDELEG_AVAIL_MASK);
>> +
>> +    INIT_CSR_MASK(HENVCFG, henvcfg, HENVCFG_AVAIL_MASK);
>> +
>> +    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
>> +    {
>> +        INIT_CSR_MASK(HSTATEEN0, hstateen0, HSTATEEN0_AVAIL_MASK);
>> +        INIT_RO_ONE_MASK(HSTATEEN0, hstateen0, HSTATEEN0_AVAIL_MASK);
>> +    }
> The 3rd macro parameters are now redundant. At the example of INIT_CSR_MASK(),
> you could now have
>
> #define INIT_CSR_MASK(csr, field) do { \
>          register_t old = csr_read_set(CSR_ ## csr, csr ## _AVAIL_MASK); \
>          csr_masks.field = csr_swap(CSR_ ## csr, old); \
>      } while (0)
>
> This would reduce the risk of incomplete editing after copy-and-paste, or
> other typo-ing.
>
> Note also that ## being a binary operator, ./CODING_STYLE wants us to put
> blanks around it just like for non-pre-processor binary operators. I'll
> try to remember to make that adjustment when committing.

Good point. Thanks a lot!

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 16:04:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 16:04:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250258.1547734 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzzZE-0004sU-F2; Tue, 10 Mar 2026 16:04:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250258.1547734; Tue, 10 Mar 2026 16:04:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzzZE-0004sN-CR; Tue, 10 Mar 2026 16:04:20 +0000
Received: by outflank-mailman (input) for mailman id 1250258;
 Tue, 10 Mar 2026 15:59:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LFVH=BK=arm.com=jeremy.linton@srs-se1.protection.inumbo.net>)
 id 1vzzU8-0002mp-Hq
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 15:59:04 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 0e27e170-1c9a-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 16:59: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 74A8B16A3;
 Tue, 10 Mar 2026 08:58:54 -0700 (PDT)
Received: from [192.168.20.93] (usa-sjc-mx-foss1.foss.arm.com [172.31.20.19])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id
 384493F7BD; Tue, 10 Mar 2026 08:58:53 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0e27e170-1c9a-11f1-b164-2bf370ae4941
Message-ID: <657142d1-1632-4a3e-8800-ee1dd5763d78@arm.com>
Date: Tue, 10 Mar 2026 10:58:49 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 2/2] PCI/TPH: Fix get cpu steer-tag fail on ARM64
 platform
To: Chengwen Feng <fengchengwen@huawei.com>,
 Bjorn Helgaas <bhelgaas@google.com>,
 Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>,
 "Rafael J . Wysocki" <rafael@kernel.org>
Cc: Jonathan Corbet <corbet@lwn.net>, Shuah Khan <skhan@linuxfoundation.org>,
 Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>,
 Paul Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>,
 Albert Ou <aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H . Peter Anvin" <hpa@zytor.com>,
 Juergen Gross <jgross@suse.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>,
 Sunil V L <sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>,
 Jonathan Cameron <jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>,
 Yanteng Si <si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>,
 Kai Huang <kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Thomas Huth <thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>,
 Kevin Loughlin <kevinloughlin@google.com>, Zheyun Shen
 <szy0127@sjtu.edu.cn>, Peter Zijlstra <peterz@infradead.org>,
 Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin Li <xin@zytor.com>,
 "Ahmed S . Darwish" <darwi@linutronix.de>,
 Sohil Mehta <sohil.mehta@intel.com>,
 Ilkka Koskinen <ilkka@os.amperecomputing.com>,
 Robin Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>,
 Besar Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>,
 Ajit Khaparde <ajit.khaparde@broadcom.com>, Wei Huang <wei.huang2@amd.com>,
 Andy Gospodarek <andrew.gospodarek@broadcom.com>,
 Somnath Kotur <somnath.kotur@broadcom.com>, wangzhou1@hisilicon.com,
 wanghuiqiang@huawei.com, liuyonglong@huawei.com, linux-pci@vger.kernel.org,
 linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
 linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev,
 linux-riscv@lists.infradead.org, xen-devel@lists.xenproject.org,
 linux-acpi@vger.kernel.org, linux-perf-users@vger.kernel.org,
 stable@vger.kernel.org, Wathsala Vithanage <wathsala.vithanage@arm.com>
References: <20260310032049.25387-1-fengchengwen@huawei.com>
 <20260310032049.25387-3-fengchengwen@huawei.com>
Content-Language: en-US
From: Jeremy Linton <jeremy.linton@arm.com>
In-Reply-To: <20260310032049.25387-3-fengchengwen@huawei.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

+Wathsala who has been looking at TPH too.

On 3/9/26 10:20 PM, Chengwen Feng wrote:
> pcie_tph_get_cpu_st() is broken on ARM64:
> 1. pcie_tph_get_cpu_st() passes cpu_uid to the PCI ACPI DSM method.
>     cpu_uid should be the ACPI Processor UID [1].
> 2. In BNXT, pcie_tph_get_cpu_st() is passed a cpu_uid obtained via
>     cpumask_first(irq->cpu_mask) - the logical CPU ID of a CPU core,
>     generated and managed by kernel (e.g., [0,255] for a system  with 256
>     logical CPU cores).
> 3. On ARM64 platforms, ACPI assigns Processor UID to cores listed in the
>     MADT table, and this UID may not match the kernel's logical CPU ID.
>     When this occurs, the mismatch results in the wrong CPU steer-tag.
> 4. On AMD x86 the logical CPU ID is identical to the ACPI Processor UID
>     so the mismatch is not seen.
> 
> Resolution:
> 1. Implement acpi_get_cpu_acpi_id() for x86, which replaces
>     cpu_acpi_id(). All ACPI platforms now have an implementation.
> 2. Use acpi_get_cpu_acpi_id() in pcie_tph_get_cpu_st() to translate from
>     logical CPU ID to ACPI Processor UID needed for the DSM call.
> 3. Rename pcie_tpu_get_cpu_st() parameter from cpu_uid to cpu to
>     reflect that it is a logical CPU_ID.
> 
> [1] According to ECN_TPH-ST_Revision_20200924
>      (https://members.pcisig.com/wg/PCI-SIG/document/15470), the input
>      is defined as: "If the target is a processor, then this field
>      represents the ACPI Processor UID of the processor as specified in
>      the MADT. If the target is a processor container, then this field
>      represents the ACPI Processor UID of the processor container as
>      specified in the PPTT."

The bit about "processor containers" is not supported by linux yet, and 
is potentially a problem worth considering.

The original rename comments from the previous patch versions are on 
point, but since they have grown large, i'm going to suggest the x86 
rename/shuffle here is also in its own patch seperate from the TPH 
specific changes like the arm ones now are.

Thanks for looking after this.

> 
> Fixes: d2e8a34876ce ("PCI/TPH: Add Steering Tag support")
> Cc: stable@vger.kernel.org
> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
> Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
> ---
>   Documentation/PCI/tph.rst    |  4 ++--
>   arch/x86/include/asm/acpi.h  |  2 ++
>   arch/x86/include/asm/cpu.h   |  1 -
>   arch/x86/include/asm/smp.h   |  1 -
>   arch/x86/kernel/cpu/common.c | 12 ++++++++++++
>   arch/x86/xen/enlighten_hvm.c |  4 ++--
>   drivers/pci/tph.c            | 11 ++++++-----
>   include/linux/pci-tph.h      |  4 ++--
>   8 files changed, 26 insertions(+), 13 deletions(-)
> 
> diff --git a/Documentation/PCI/tph.rst b/Documentation/PCI/tph.rst
> index e8993be64fd6..b6cf22b9bd90 100644
> --- a/Documentation/PCI/tph.rst
> +++ b/Documentation/PCI/tph.rst
> @@ -79,10 +79,10 @@ To retrieve a Steering Tag for a target memory associated with a specific
>   CPU, use the following function::
>   
>     int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type type,
> -                          unsigned int cpu_uid, u16 *tag);
> +                          unsigned int cpu, u16 *tag);
>   
>   The `type` argument is used to specify the memory type, either volatile
> -or persistent, of the target memory. The `cpu_uid` argument specifies the
> +or persistent, of the target memory. The `cpu` argument specifies the
>   CPU where the memory is associated to.
>   
>   After the ST value is retrieved, the device driver can use the following
> diff --git a/arch/x86/include/asm/acpi.h b/arch/x86/include/asm/acpi.h
> index a03aa6f999d1..b968369715c1 100644
> --- a/arch/x86/include/asm/acpi.h
> +++ b/arch/x86/include/asm/acpi.h
> @@ -157,6 +157,8 @@ static inline bool acpi_has_cpu_in_madt(void)
>   	return !!acpi_lapic;
>   }
>   
> +u32 acpi_get_cpu_acpi_id(unsigned int cpu);
> +
>   #define ACPI_HAVE_ARCH_SET_ROOT_POINTER
>   static __always_inline void acpi_arch_set_root_pointer(u64 addr)
>   {
> diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h
> index ad235dda1ded..57a0786dfd75 100644
> --- a/arch/x86/include/asm/cpu.h
> +++ b/arch/x86/include/asm/cpu.h
> @@ -11,7 +11,6 @@
>   
>   #ifndef CONFIG_SMP
>   #define cpu_physical_id(cpu)			boot_cpu_physical_apicid
> -#define cpu_acpi_id(cpu)			0
>   #endif /* CONFIG_SMP */
>   
>   #ifdef CONFIG_HOTPLUG_CPU
> diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
> index 84951572ab81..05d1d479b4cf 100644
> --- a/arch/x86/include/asm/smp.h
> +++ b/arch/x86/include/asm/smp.h
> @@ -130,7 +130,6 @@ __visible void smp_call_function_interrupt(struct pt_regs *regs);
>   __visible void smp_call_function_single_interrupt(struct pt_regs *r);
>   
>   #define cpu_physical_id(cpu)	per_cpu(x86_cpu_to_apicid, cpu)
> -#define cpu_acpi_id(cpu)	per_cpu(x86_cpu_to_acpiid, cpu)
>   
>   /*
>    * This function is needed by all SMP systems. It must _always_ be valid
> diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
> index 1c3261cae40c..93f4f3283c81 100644
> --- a/arch/x86/kernel/cpu/common.c
> +++ b/arch/x86/kernel/cpu/common.c
> @@ -29,6 +29,7 @@
>   #include <linux/utsname.h>
>   #include <linux/efi.h>
>   
> +#include <asm/acpi.h>
>   #include <asm/alternative.h>
>   #include <asm/cmdline.h>
>   #include <asm/cpuid/api.h>
> @@ -57,6 +58,7 @@
>   #include <asm/asm.h>
>   #include <asm/bugs.h>
>   #include <asm/cpu.h>
> +#include <asm/smp.h>
>   #include <asm/mce.h>
>   #include <asm/msr.h>
>   #include <asm/cacheinfo.h>
> @@ -2643,3 +2645,13 @@ void __init arch_cpu_finalize_init(void)
>   	 */
>   	mem_encrypt_init();
>   }
> +
> +u32 acpi_get_cpu_acpi_id(unsigned int cpu)
> +{
> +#ifndef CONFIG_SMP
> +	return 0;
> +#else
> +	return per_cpu(x86_cpu_to_acpiid, cpu);
> +#endif
> +}
> +EXPORT_SYMBOL_GPL(acpi_get_cpu_acpi_id);
> diff --git a/arch/x86/xen/enlighten_hvm.c b/arch/x86/xen/enlighten_hvm.c
> index fe57ff85d004..0a5cde7865b2 100644
> --- a/arch/x86/xen/enlighten_hvm.c
> +++ b/arch/x86/xen/enlighten_hvm.c
> @@ -161,8 +161,8 @@ static int xen_cpu_up_prepare_hvm(unsigned int cpu)
>   	 */
>   	xen_uninit_lock_cpu(cpu);
>   
> -	if (cpu_acpi_id(cpu) != CPU_ACPIID_INVALID)
> -		per_cpu(xen_vcpu_id, cpu) = cpu_acpi_id(cpu);
> +	if (acpi_get_cpu_acpi_id(cpu) != CPU_ACPIID_INVALID)
> +		per_cpu(xen_vcpu_id, cpu) = acpi_get_cpu_acpi_id(cpu);
>   	else
>   		per_cpu(xen_vcpu_id, cpu) = cpu;
>   	xen_vcpu_setup(cpu);
> diff --git a/drivers/pci/tph.c b/drivers/pci/tph.c
> index ca4f97be7538..c1bd60637b5a 100644
> --- a/drivers/pci/tph.c
> +++ b/drivers/pci/tph.c
> @@ -236,18 +236,19 @@ static int write_tag_to_st_table(struct pci_dev *pdev, int index, u16 tag)
>    * with a specific CPU
>    * @pdev: PCI device
>    * @mem_type: target memory type (volatile or persistent RAM)
> - * @cpu_uid: associated CPU id
> + * @cpu: associated CPU id
>    * @tag: Steering Tag to be returned
>    *
>    * Return the Steering Tag for a target memory that is associated with a
> - * specific CPU as indicated by cpu_uid.
> + * specific CPU as indicated by cpu.
>    *
>    * Return: 0 if success, otherwise negative value (-errno)
>    */
>   int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type mem_type,
> -			unsigned int cpu_uid, u16 *tag)
> +			unsigned int cpu, u16 *tag)
>   {
>   #ifdef CONFIG_ACPI
> +	u32 cpu_uid = acpi_get_cpu_acpi_id(cpu);
>   	struct pci_dev *rp;
>   	acpi_handle rp_acpi_handle;
>   	union st_info info;
> @@ -265,9 +266,9 @@ int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type mem_type,
>   
>   	*tag = tph_extract_tag(mem_type, pdev->tph_req_type, &info);
>   
> -	pci_dbg(pdev, "get steering tag: mem_type=%s, cpu_uid=%d, tag=%#04x\n",
> +	pci_dbg(pdev, "get steering tag: mem_type=%s, cpu=%d, tag=%#04x\n",
>   		(mem_type == TPH_MEM_TYPE_VM) ? "volatile" : "persistent",
> -		cpu_uid, *tag);
> +		cpu, *tag);
>   
>   	return 0;
>   #else
> diff --git a/include/linux/pci-tph.h b/include/linux/pci-tph.h
> index ba28140ce670..be68cd17f2f8 100644
> --- a/include/linux/pci-tph.h
> +++ b/include/linux/pci-tph.h
> @@ -25,7 +25,7 @@ int pcie_tph_set_st_entry(struct pci_dev *pdev,
>   			  unsigned int index, u16 tag);
>   int pcie_tph_get_cpu_st(struct pci_dev *dev,
>   			enum tph_mem_type mem_type,
> -			unsigned int cpu_uid, u16 *tag);
> +			unsigned int cpu, u16 *tag);
>   void pcie_disable_tph(struct pci_dev *pdev);
>   int pcie_enable_tph(struct pci_dev *pdev, int mode);
>   u16 pcie_tph_get_st_table_size(struct pci_dev *pdev);
> @@ -36,7 +36,7 @@ static inline int pcie_tph_set_st_entry(struct pci_dev *pdev,
>   { return -EINVAL; }
>   static inline int pcie_tph_get_cpu_st(struct pci_dev *dev,
>   				      enum tph_mem_type mem_type,
> -				      unsigned int cpu_uid, u16 *tag)
> +				      unsigned int cpu, u16 *tag)
>   { return -EINVAL; }
>   static inline void pcie_disable_tph(struct pci_dev *pdev) { }
>   static inline int pcie_enable_tph(struct pci_dev *pdev, int mode)



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 16:10:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 16:10:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250280.1547744 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzzeu-0006XN-4N; Tue, 10 Mar 2026 16:10:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250280.1547744; Tue, 10 Mar 2026 16: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 1vzzeu-0006XG-1f; Tue, 10 Mar 2026 16:10:12 +0000
Received: by outflank-mailman (input) for mailman id 1250280;
 Tue, 10 Mar 2026 16: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=S17i=BK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vzzes-0006XA-DR
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 16:10:10 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 96812c5b-1c9b-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 17:09:59 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4852f8ac7e9so42037655e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 09:09:59 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485244b6e9esm217818755e9.5.2026.03.10.09.09.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Mar 2026 09:09:58 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 96812c5b-1c9b-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773158999; x=1773763799; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZKb99p8Z8dwMpOwrxkhYrxmhrN8VUsSCJFX1+xevsaU=;
        b=g1R21WKvdxVpPRmrTY+O28PIvaa/uNZCVJ7JIpkykS4dn+pDw/nWgdmt9gLkGJPYRT
         0e49uOR8CG5tIbMCeVFwxo0wnx6WxYlH3vjeZguVqz4TQFEdMEJODaqHsYZkxQ7aIKaa
         1IjSi3G/4XW19WoBSiYx3eH323z4LEJFKymxfuF4qsOAddEnS1X4eLmJrnEg3p/X8YLK
         UyNhz+1H8viNkklV7oq3TSols1NHbJQ9kvcbLNWR0W0411A5VHKS0b0sRsT1lqfIkbVd
         XQso/EJt6rfHWHqFMa2KL2H1MmkmWBk0qs6T6f+Vm73vt0MAdM7ymB4B1frR0n8wvnRx
         as6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773158999; x=1773763799;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZKb99p8Z8dwMpOwrxkhYrxmhrN8VUsSCJFX1+xevsaU=;
        b=YS7Py1qAXCDaglKQLtldiRF9q+EgcCjTYVf5KAxjQPu/tnqpktKOHq/ScvRk724Ra0
         935H4kVec4UWT5tXOnBPt9JR/vL3VrXTDoCol20eigGH4aQmLtUjCEs5XmRFHCDvlip+
         9yDS9Rfr7pnl0kMQFAULkHEfgzj66InQJOrF8WycV0WCaj2hc2SWEAicoFt0PSK5wX7H
         pJzQBFS0MdwROkH3JJhnhqYOi3KDRjVtb8Z8S5ygvIGTIpbgaJONRzpQLNSL6N0Qmto9
         CXZs1Eh1eEjK+6IFYBabj+ljjxMrtdbJ/KneqPA7z3MSkofVUU+46aAftKJ7aC29cVTm
         6q7w==
X-Forwarded-Encrypted: i=1; AJvYcCVv7gNbls+tU08RKSSm7SSBmYFGHyrP5bRHvIp0vPjgMIsI6r4T/LwCREn/SHJc0GlCJdvssjlBRIY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxSQXEALnotKJL0AX+F5VjmbSiVlUkzC+e1ntSmtjeFBBUglI4q
	s/sZgzgLT7ATNfeTBrT8PlpH/7Fe3UsEdG8c+SsIKwISnfclgTSdrK4W6TkH5lfJYQ==
X-Gm-Gg: ATEYQzwPnn6z/tn722zcZ1eLmU7Sa9EcL4eTOaBoT3wdekJ7a6ldmGHb8sdE/KBp2nH
	vTeEtXuyEuQhEoLJkZVDQAW/+SEAMM02x2zR9dG9iNGVVX+VGNVVQfQEYsys7F9J5Jz3G68zF0A
	jI0h7M0k5xIBA3NCKSTv2mLWpSMsiWhxvVhaWSpIvhBeErmr5C16fiFG6txTWG4ddZ/T2j4ix9n
	tjg33AOPOKyTiHjW83E73pAzYfe6vp1SLq2/uEog8hBzQ0iJKCyNDDNQBcn9leNkCAv96OkslgN
	/X6bocoNpPEnrz72ldt4Vfby+J/Zfd2AHSyb+gr1D+xD965UX5UCx7W5sOMpeIMq1UpSqHPrwOJ
	IxxGDX/RwnKgZStNKiYdmY3r2wF4PyVwpcsfE2NNRd8S17ZCKsfS4/aUoWhHpOYCds27jdL2RdL
	JjZUfLxc/3d+wZedAmoFmxfLUyZlYEX3at34Qk/YH8Y9jr/KQQONXlCN8JZBLyol69LOHlVNMKm
	FIZszMknOO/R4M=
X-Received: by 2002:a05:600c:c8f:b0:483:2c98:4368 with SMTP id 5b1f17b1804b1-4852695aec4mr261574495e9.18.1773158998968;
        Tue, 10 Mar 2026 09:09:58 -0700 (PDT)
Message-ID: <5724bdb3-bec5-4159-a4f4-9bdad39acd7b@suse.com>
Date: Tue, 10 Mar 2026 17:09:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/2] x86/ioreq: Extend ioreq server to support multiple
 ioreq pages
To: Julian Vetter <julian.vetter@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20260305130434.635276-1-julian.vetter@vates.tech>
 <20260305130434.635276-2-julian.vetter@vates.tech>
 <c73afb52-e39c-48c8-bf2c-41b509ca0dd0@suse.com>
 <a05e2d6c-5ba7-4651-b9d1-c1b502be0e7b@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: <a05e2d6c-5ba7-4651-b9d1-c1b502be0e7b@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.03.2026 16:56, Julian Vetter wrote:
> On 3/10/26 16:36, Jan Beulich wrote:
>> On 05.03.2026 14:04, Julian Vetter wrote:
>>> @@ -45,7 +52,8 @@ struct ioreq_server {
>>>       /* Lock to serialize toolstack modifications */
>>>       spinlock_t             lock;
>>>   
>>> -    struct ioreq_page      ioreq;
>>> +    ioreq_t                *ioreq;
>>> +    gfn_t                  ioreq_gfn;
>>>       struct list_head       ioreq_vcpu_list;
>>>       struct ioreq_page      bufioreq;
>>
>> This change in data arrangement should in principle be independent of the
>> step to supporting multiple pages. Hence it should be possible to separate
>> out. Problem being that just by looking here and at hvm_{,un}map_ioreq_gfn()
>> I can't conclude how you get away without the "page" field that struct
>> ioreq_page had. If you can get away without, it's not quite clear why the
>> field exists in the first place. If it's not needed, dropping it would be
>> yet another separate, prereq change. At which point the remaining pair of
>> fields could continue to be used, i.e. the change above then wouldn't be
>> needed; va could be renamed if need be, and its type changed.
> 
> Thank you again Jan for your feedback! I don't need the page anymore. 
> When I use vmap(), I don't need to keep track of it, because during 
> teardown, I can recover it via vmap_to_page(). Currently it's necessary 
> because in destroy_ring_for_helper we need the page, to be destroyed. 
> But I see now, on X86 the map_domain_page_global called from 
> prepare_ring_for_helper actually does vmap(&mfn, 1). So the page is also 
> from the vmap range. So for the teardown I assume a vmap_to_page() could 
> be used as well. But I also see there is a special case, if NDEBUG=1, 
> map_domain_page_global short-circuits to mfn_to_virt() for low MFNs 
> (putting the VA in the directmap range) and bypassing vmap. In that case 
> 
> vmap_to_page() would not work. So, this would be really messy. I would 
> rather switch the bufioreq also to an explicitly vmap()'ed page, then we 
> could remove the page pointer and both cases would be aligned again.

That's an option. Yet are you aware of domain_page_map_to_mfn()? Perhaps
that's what you want to switch to using in the patch removing the "page"
field. To then, conditionally or uniformly, switch to vmap_to_{mfn,page}()
when doing the multi-page work in the subsequent patch.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 16:14:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 16:14:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250289.1547753 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzzjM-00075M-Ki; Tue, 10 Mar 2026 16:14:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250289.1547753; Tue, 10 Mar 2026 16:14:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vzzjM-00075F-Hc; Tue, 10 Mar 2026 16:14:48 +0000
Received: by outflank-mailman (input) for mailman id 1250289;
 Tue, 10 Mar 2026 16:14:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=S17i=BK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vzzjL-000759-8J
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 16:14:47 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d026b3d-1c9c-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 17:14:39 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-439ac15f35fso9525843f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 09:14:39 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dada9116sm34495246f8f.14.2026.03.10.09.14.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Mar 2026 09:14:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d026b3d-1c9c-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773159278; x=1773764078; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xtI+z3R8YsFXQL9uSgC7sP0cd+QLnw4JPhISRguRJyc=;
        b=Nlhnb8TtX2FboJx/TTAa09bLRhnTjSOo7kSqxYf2HF7asJT+V/OEeTl2DueTVCl/Zt
         iMloZ8LdswePQYk9K43WyHXcNA9P/j8CmqjhokGTsHMqLnRLqCUPf1Q4HmO23D/vY37B
         amX9ilVNlhMj7OTeoFhXoEnY1j4M/bYimbx6vAPRW8AsjdY72n9F3lMUI8RS3s4iCNE2
         sn1OCR3OGtYpOy9AGqNYEBzJEAVC6AZrr9HGvd8GEYr1AT1G6lAU+Ym69nfIQuVSbA3Y
         +j+HiIQS6StVWEI07XSiZ+Tf6+TYqygYvcxwQ7DCHmMaFYvLCwAdasmt/CkILeK/GLak
         SFzg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773159278; x=1773764078;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xtI+z3R8YsFXQL9uSgC7sP0cd+QLnw4JPhISRguRJyc=;
        b=lbUmWjwz54SsjW4BfmG84efQo7cahM9O5KAzSfhHdky6jxmUrMe1B78SKpIVXhHMgT
         bP6xChsgh3YArhQmWf6Yk6oFBNVzyq68+BrtJ+LshBFfhRCXs96VKXGU+8PYux521RjM
         +uz9K/eyUPVKd4QWLFHkRSzpPXLSp8xZTxWjBwxit+74OBh7fCYnf4F9lt9MUua4t9fN
         DKNM0upF2dqk2Y3aOWVDtCwmPyjJ3QeM5im4gd8d7CYA1cOzgopV2FbIjrNdhIvt8xzm
         ZdUHWLiDIU8d78rJU/5FUCAMasQMxgLexLGbb3sdLT+WUlGQ0D6T83bHhxgENLTg+FqL
         QLpA==
X-Forwarded-Encrypted: i=1; AJvYcCU5fcieNf3rBIEEcwbP3SB0GL9s/yA7Sb0sSwXCkHlYMK0oXIZIJ830js7yEqQLxHpROgSdhyxIQ70=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx7tq5Sut9qqDRObhlEpxa200qSWubLS2c1Dqv6vSoLzN3wiR+z
	xhq6IJXtRyYk2k2CXd5hZpl4PK7juRUJf0VveCPx9RKCtpJaddjz7IRU7bJaIXPOHg==
X-Gm-Gg: ATEYQzw0inbWydp8/Wj4qx9FbKp6MNMXQAo7N0SKy/oC81WudTMh1SS0S3LVMh0bQE2
	wqvT67h+YUjITJFsvLhD5bW7+YXT8IKiYjmKJx3PAfzOl1UykzxUcdrwe9ZUIphdjXQXMwKaM5m
	6Ul5Fz9HKD5WINHTEjOFtS7aRHtNV7c+oHPQI/Zx0YquGmC0U5ou40mmrl3808xTH0HCRTE4b6V
	/zfNgwh4rODQHVv2pF4Y/ZFJEO33LMRP0whmqkl68BFMf/54V5RqWFL/vsy4aWQ4++atNcEZlV1
	zt5TWGrPMKv0wngRubymRfh4wK4lPzJGG/kcKwg0AHZvcYSWtsedzKGyEXqqITwXZ+Ry7jXI5Oh
	O7gJWqnHFkNm/XE7aWTlNsLGPyJjpmqpvzKOODmOPU+OFGcubVl3uJePDHxFzUEijnPLzuj//OK
	aE1yJz4ZX2NVw5I5qDWsiasjdIHmz2pEnutyiFXbMC1MnuvoZFTiL0hnNFfBItRV5njdh5YkkY+
	r0j9S+zg+KE+YQ=
X-Received: by 2002:a05:6000:2888:b0:439:afea:aff2 with SMTP id ffacd0b85a97d-439da337f97mr27539193f8f.23.1773159278406;
        Tue, 10 Mar 2026 09:14:38 -0700 (PDT)
Message-ID: <45b66d43-07ad-4acc-bb0a-f311fef0261d@suse.com>
Date: Tue, 10 Mar 2026 17:14:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 01/14] xen/riscv: detect and store supported hypervisor
 CSR bits at boot
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
 <3201951150104f17593e16c7ba00ada51ac1e10f.1772814110.git.oleksii.kurochko@gmail.com>
 <2de7f459-00b3-4968-aaa2-9067cb0c4aa4@suse.com>
 <5d15bc9b-ead9-4690-b5cd-3b63d83537b6@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: <5d15bc9b-ead9-4690-b5cd-3b63d83537b6@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.03.2026 17:00, Oleksii Kurochko wrote:
> On 3/10/26 9:11 AM, Jan Beulich wrote:
>> On 06.03.2026 17:33, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/domain.c
>>> +++ b/xen/arch/riscv/domain.c
>>> @@ -2,9 +2,66 @@
>>>   
>>>   #include <xen/init.h>
>>>   #include <xen/mm.h>
>>> +#include <xen/sections.h>
>>>   #include <xen/sched.h>
>>>   #include <xen/vmap.h>
>>>   
>>> +#include <asm/cpufeature.h>
>>> +#include <asm/csr.h>
>>> +
>>> +struct csr_masks {
>>> +    register_t hedeleg;
>>> +    register_t henvcfg;
>>> +    register_t hideleg;
>>> +    register_t hstateen0;
>>> +
>>> +    struct {
>>> +        register_t hstateen0;
>>> +    } ro_one;
>>> +};
>>> +
>>> +static struct csr_masks __ro_after_init csr_masks;
>>> +
>>> +#define HEDELEG_AVAIL_MASK ULONG_MAX
>>> +#define HIDELEG_AVAIL_MASK ULONG_MAX
>>> +#define HENVCFG_AVAIL_MASK _UL(0xE0000003000000FF)
>>> +#define HSTATEEN0_AVAIL_MASK _UL(0xDE00000000000007)
>> It's not quite clear to me what AVAIL in here is to signal.
> 
> It signal that these bits are potentially available for s/w to be set.
> If you want to suggest the better naming and can change that in the
> follow-up patch.

I'd either omit the infix altogether ("avail" after all often means
"available for software use"), or use "valid" or (less desirable)
"defined".

>>   It's also not
>> quite clear to me why you would use _UL() in #define-s sitting in a C file
>> (and hence not possibly being used in assembly code; even for asm() I'd
>> expect constants to be properly passed in as C operands).
> 
> I thought it is always be good to use _UL() for such type of constants as
> ULONG_MAX also uses UL, but not in form of _UL() macros. If it would be
> better to drop, I can do that in follow-up patch.

The suffixes want to be there, at the very least for Misra's sake. But
you can just write 0xabcdUL, there's no need to involve a macro there.
That's only needed when the appending of the suffix needs to be
conditional upon is being C or assembler code that includes a header.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 16:45:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 16:45:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250305.1547779 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00CZ-0002ss-5F; Tue, 10 Mar 2026 16:44:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250305.1547779; Tue, 10 Mar 2026 16:44: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 1w00CY-0002ro-W0; Tue, 10 Mar 2026 16:44:58 +0000
Received: by outflank-mailman (input) for mailman id 1250305;
 Tue, 10 Mar 2026 16:44: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=C8PL=BK=bounce.vates.tech=bounce-md_30504962.69b04a86.v1-c66df3a63a2745999a983d58575806a8@srs-se1.protection.inumbo.net>)
 id 1w00CY-0002px-13
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 16:44:58 +0000
Received: from mail133-21.atl131.mandrillapp.com
 (mail133-21.atl131.mandrillapp.com [198.2.133.21])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 77b54216-1ca0-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 17:44:56 +0100 (CET)
Received: from pmta13.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail133-21.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fVfqp5vQqz1XLF4k
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 16:44:54 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 c66df3a63a2745999a983d58575806a8; Tue, 10 Mar 2026 16:44: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: 77b54216-1ca0-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773161094; x=1773431094;
	bh=CfuPpakjv5VmFwTUwLXalLDXQ40VB5TUP6pk/iH94Mc=;
	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=NlfPTojucJusZHKLi6w6bLI+26+pMCkFf+LmI0t2hsSNyXRwQYYcNrytcU7y2r/BN
	 ySRFDfvRjMQzfQt17OvPPexYh5YTv+tteWSo4yi/h6MGAlF3L3YAJpuZHsM7NoWjpT
	 /KgajU85j8Tgnunm+WWKMH9LS3lamAMH8xBAIIGygKPVBxqk6LGz23Jv1nk7P7miFk
	 71B8bkQdWDk/oig5YftVIkBYo825SjLTk4wr7QLZ4clBBRPswWd/otT/mSM5QGU19L
	 bCJVkILZQjxKYyUnG73iQnIjVbtGilhJg3lQ3OfnmYXATdeDcbPzUy3wF47ho+M/S1
	 jhg48+CASmoJw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773161094; x=1773421594; i=teddy.astie@vates.tech;
	bh=CfuPpakjv5VmFwTUwLXalLDXQ40VB5TUP6pk/iH94Mc=;
	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=jUWiZix4iMfwXTgNinrqPvUPRLbR1PWDcCQvOlThYYof7lF/1IwZ6I1prTfX0f1OJ
	 LizvwpgYDVklA38XGcfBa4Nn9SKpDfvNuDsxe7HVev6C7YGu4KUiEjUZFHCVSezeOu
	 WumJf4gqoTwRa+On5JkFc8LNWbxxI9BcWTt6JTUK6dYIrPMiCneQACqdOx7uTgw31e
	 Pt1doXVYbAHEQnSISOiAfRh1RqXoFJJTOEr1VsjJS8YuHydPbU0HxaHY+gWU+j6R8X
	 HGaCOtGGMskaJSKPknGFwg967aQ00z2Tz+7bH+kJb6ogqaX9tFOBy9sIvVbCBQfMFz
	 UmL49GlFYiAtg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=203/6]=20x86:=20Define=20some=20Intel=20vPMU=20leafs?=
X-Mailer: git-send-email 2.53.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773161093903
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: <83a573dcb365761c0f089325365090b6f963fb03.1773160025.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1773160025.git.teddy.astie@vates.tech>
References: <cover.1773160025.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.c66df3a63a2745999a983d58575806a8?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260310:md
Date: Tue, 10 Mar 2026 16:44:54 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/arch/x86/cpu/vpmu_intel.c        |  4 ++--
 xen/arch/x86/domain.c                |  2 +-
 xen/include/xen/lib/x86/cpu-policy.h | 10 +++++++++-
 3 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c
index 1e3b06ef8e..f43faf9567 100644
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -818,8 +818,8 @@ static int cf_check core2_vpmu_initialise(struct vcpu *v)
     u64 msr_content;
     static bool ds_warned;
 
-    if ( v->domain->arch.cpuid->basic.pmu_version <= 1 ||
-         v->domain->arch.cpuid->basic.pmu_version >= 6 )
+    if ( v->domain->arch.cpuid->basic.pmu.version <= 1 ||
+         v->domain->arch.cpuid->basic.pmu.version >= 6 )
         return -EINVAL;
 
     if ( (arch_pmc_cnt + fixed_pmc_cnt) == 0 )
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index e658c2d647..5762b38fce 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -458,7 +458,7 @@ void domain_cpu_policy_changed(struct domain *d)
 
         /* If PMU version is zero then the guest doesn't have VPMU */
         if ( boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
-             p->basic.pmu_version == 0 )
+             p->basic.pmu.version == 0 )
             vpmu_destroy(v);
     }
 }
diff --git a/xen/include/xen/lib/x86/cpu-policy.h b/xen/include/xen/lib/x86/cpu-policy.h
index d29e380359..9161e2ad8d 100644
--- a/xen/include/xen/lib/x86/cpu-policy.h
+++ b/xen/include/xen/lib/x86/cpu-policy.h
@@ -162,7 +162,15 @@ struct cpu_policy
             uint64_t :64, :64; /* Leaf 0x9 - DCA */
 
             /* Leaf 0xa - Intel PMU. */
-            uint8_t pmu_version, _pmu[15];
+            struct {
+                uint8_t /* a */ version, num_gp_ctrs, gp_ctr_width,
+                                event_enum_length;
+                uint32_t /* b */:32;
+                uint32_t /* c */ fixed_ctr_mask;
+                uint32_t /* d */ num_fixed_ctr:5, fixed_ctr_width:8, :1,
+                                 anythread_depreciation:1, slots_per_cyc:4,
+                                 :13;
+            } pmu;
 
             uint64_t :64, :64; /* Leaf 0xb - Topology. */
             uint64_t :64, :64; /* Leaf 0xc - rsvd */
-- 
2.53.0



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 16:45:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 16:45:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250310.1547824 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00Cd-0003zj-Id; Tue, 10 Mar 2026 16:45:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250310.1547824; Tue, 10 Mar 2026 16:45:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00Cd-0003yf-Cu; Tue, 10 Mar 2026 16:45:03 +0000
Received: by outflank-mailman (input) for mailman id 1250310;
 Tue, 10 Mar 2026 16:45:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BkbS=BK=bounce.vates.tech=bounce-md_30504962.69b04a87.v1-dba5e090b02c4a199bdbd3059630d207@srs-se1.protection.inumbo.net>)
 id 1w00Cc-000397-Na
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 16:45:02 +0000
Received: from mail133-21.atl131.mandrillapp.com
 (mail133-21.atl131.mandrillapp.com [198.2.133.21])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7a49f90b-1ca0-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 17:44:59 +0100 (CET)
Received: from pmta13.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail133-21.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fVfqq1hYkz1XLF4d
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 16:44:55 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 dba5e090b02c4a199bdbd3059630d207; Tue, 10 Mar 2026 16: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: 7a49f90b-1ca0-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773161095; x=1773431095;
	bh=3Wd0xKWdvd2LCo+Aysi0R4yuf0yNnldMdvsEMKvsrOI=;
	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=1qUf6IvwcYn+YBCjZb+CiiNsxrDid8C1mWUh+mEZGnICezlZpOT7U/T9aRF0wgG4q
	 5Fbk9vj5CqsaZ4qzIXjSl6e9kZR+784xJX8oc/FYq6+eWQJa+adD5554wHgi8X7RSK
	 Lg8VqpJZiSimRVxNVBNLldCbQ4c8sPXM74tdFzBJYewAtotjHoAnTEFI93Kxw2Ftgg
	 InICSKP3V3hFKS5Lw1hmXujD/td+RELRLcLBmT+0g6FO7F/qrGfWqvVVB2H3Lu94fy
	 asS2zRfo3zsrgPXs4QXRcqO2a/pTZlXI9swU7oEIBkesgY42ektu4QwC0maQFBu7Gd
	 UfHGxYC61tABw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773161095; x=1773421595; i=teddy.astie@vates.tech;
	bh=3Wd0xKWdvd2LCo+Aysi0R4yuf0yNnldMdvsEMKvsrOI=;
	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=BKmy+efIBRyDb9esunrpL58xXMqJt6/vCoQXH79LQX5aUzXatNm0caT83CFzIdg+b
	 EkRH/OScUju4yfFdjJjCPULwuycRypUJ+VM13L+w+si2YfsNM1LmN5XrLxuMZT8b3C
	 Lj4MXkmcAPMsPpIi6V3hx3fmUd1O5Rt+34k2xZHhWMizqjcbGp2viDmmAktTskedBO
	 uqCeu1FDYMQDfKYHkJpbc/eB4jRiK0WhTbD2sTC6eiZHKASFm7P2qQZeuj8w3dYoJs
	 tG9XYpymA7Y+WigUf1CM4NFV8voEVKjKalg9maltqVWgzq7NDp7fwTK7xfM21Z8mOd
	 f4JComHw8BrIw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=205/6]=20x86/vpmu:=20Limit=20to=20using=20supported=20general/fixed=20counters?=
X-Mailer: git-send-email 2.53.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773161094391
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: <854c5fe569f1a2f1f60e0768ee3d9a921ad54215.1773160025.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1773160025.git.teddy.astie@vates.tech>
References: <cover.1773160025.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.dba5e090b02c4a199bdbd3059630d207?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260310:md
Date: Tue, 10 Mar 2026 16:44:55 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Hardware can support more than 8 general or 3 fixed counters, which could lead
to inconsistent access to MSRs (thus failure to initialize vPMU in guest) as we
don't support accessing more than these limits.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
I'm not aware of a processor that have more than that, but the specification
tells that this is possible.

 xen/arch/x86/cpu-policy.c     |  6 ++++++
 xen/arch/x86/cpu/vpmu_intel.c | 15 +++++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/xen/arch/x86/cpu-policy.c b/xen/arch/x86/cpu-policy.c
index 7f4456d5a2..46db7f0726 100644
--- a/xen/arch/x86/cpu-policy.c
+++ b/xen/arch/x86/cpu-policy.c
@@ -276,6 +276,12 @@ switch ( p->x86_vendor )
         if ( p->basic.pmu.version > 2 )
             p->basic.pmu.version = 2;
 
+        /* Truncate control register count to what we support */
+        if ( p->basic.pmu.num_gp_ctrs > 8 )
+            p->basic.pmu.num_gp_ctrs = 8;
+
+        if ( p->basic.pmu.num_fixed_ctr > 3 )
+            p->basic.pmu.num_fixed_ctr = 3;
         break;
     }
 }
diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c
index 85539ce6c5..0871795218 100644
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -924,7 +924,22 @@ const struct arch_vpmu_ops *__init core2_vpmu_init(void)
     }
 
     arch_pmc_cnt = core2_get_arch_pmc_count();
+    if ( arch_pmc_cnt > 8 )
+    {
+        printk(XENLOG_INFO
+               "VPMU: Too many general counters (%u), emulating 8 registers\n",
+               arch_pmc_cnt);
+        arch_pmc_cnt = 8;
+    }
+
     fixed_pmc_cnt = core2_get_fixed_pmc_count();
+    if ( fixed_pmc_cnt > 3 )
+    {
+        printk(XENLOG_INFO
+               "VPMU: Too many fixed counters (%u), emulating 3 registers\n",
+               arch_pmc_cnt);
+        fixed_pmc_cnt = 3;
+    }
 
     if ( cpu_has_pdcm )
     {
-- 
2.53.0



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 16:45:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 16:45:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250306.1547792 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00Ca-0003GR-9s; Tue, 10 Mar 2026 16:45:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250306.1547792; Tue, 10 Mar 2026 16: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 1w00Ca-0003GK-71; Tue, 10 Mar 2026 16:45:00 +0000
Received: by outflank-mailman (input) for mailman id 1250306;
 Tue, 10 Mar 2026 16: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=RolC=BK=bounce.vates.tech=bounce-md_30504962.69b04a87.v1-98e738de90924bc686cc968f1472c66f@srs-se1.protection.inumbo.net>)
 id 1w00CZ-0002px-1I
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 16:44:59 +0000
Received: from mail132-19.atl131.mandrillapp.com
 (mail132-19.atl131.mandrillapp.com [198.2.132.19])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 789a7155-1ca0-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 17:44:57 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-19.atl131.mandrillapp.com (Mailchimp) with ESMTP id 4fVfqq3K7VzkL
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 16:44:55 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 98e738de90924bc686cc968f1472c66f; Tue, 10 Mar 2026 16: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: 789a7155-1ca0-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773161095; x=1773431095;
	bh=1m7dPcMlJIb03kreZNPze6+WVgaHDmdl8ulwk259SZM=;
	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=ale4B8aZNnm+IhxftIYstS2ITGOARPsmP2404cd+PXkOdEHx/ISNUtyLVXqpqa5js
	 D6fegAL8rFFrvB9AjNyWdFAqj8nWm23zC0wJbidc93EOGBiZk2yEObFkQg7mric73F
	 LZD2gCdWuOh3Df4C1Co9LGWFj1zQAHh6v2IB1AlrhB1hz9wTjI77UBYlkMgjH6ru/X
	 tQjTLJSVeMgnFtG38ncAJo72ipNaenbwnbWT6Jj9Hivxlmiy5Hb5pvFcJ746QSVVwL
	 B7ZVQAPsmYxDlnQtEqS/5yVC+9HcqSXK3eaFCF87KtHSUeD3e5+4xvNlHXkh7eDO/6
	 aoJ5PYpNO4P+w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773161095; x=1773421595; i=teddy.astie@vates.tech;
	bh=1m7dPcMlJIb03kreZNPze6+WVgaHDmdl8ulwk259SZM=;
	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=fkhdNI1O+TmcQ+LMOmsMhLo9axcKs2ka3+WR1ZwDDfEeKcuV2yStGlmBKRrsc5o62
	 jLaKyt52PWmITR4fjnhrC5lOsMl6rcxfXP0umPFhzeuo5819lNZkssT3vO4GJZvPg8
	 ChaCYwMH9fPOBMuJAe4fkn2AulRuIMf0BJYIpAPDEWrvlGRJ/Kp+VkyvumYAhBmnig
	 cePVJDovm3oE8EQ0XuQDRKPr8yf8CjZllJ7rhH+5rd8Jfv+JnjHnWsrZMWgVM9THEI
	 bS5FREaL7yOAd93DDkic/U31afk4YcU7Y71c1j9u88pIk4JX4nuDbV5nVcB/Qcc3Ff
	 suwqk2sA1+snA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=206/6]=20x86/vpmu:=20Allow=20PMU=20version=206?=
X-Mailer: git-send-email 2.53.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773161094603
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: <151db665c8e9014f0b09d3fbaed3f60448298f0f.1773160025.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1773160025.git.teddy.astie@vates.tech>
References: <cover.1773160025.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.98e738de90924bc686cc968f1472c66f?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260310:md
Date: Tue, 10 Mar 2026 16:44:55 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

PMU version 6 (notably implemented in Intel Core Ultra) is backward compatible
with older versions, as we're exposing version 2 to the guest, it is not
expected not try using PMU version 6 features.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
I don't have the hardware to test vPMU on Intel Core Ultra, but I guess it's
supposed to work, as it only introduces new features and doesn't disable
existing ones.

That could want a changelog entry regarding vPMU support on Intel Core Ultra 
and alike ?

 xen/arch/x86/cpu/vpmu_intel.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c
index 0871795218..9c8802b285 100644
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -819,7 +819,7 @@ static int cf_check core2_vpmu_initialise(struct vcpu *v)
     static bool ds_warned;
 
     if ( v->domain->arch.cpuid->basic.pmu.version <= 1 ||
-         v->domain->arch.cpuid->basic.pmu.version >= 6 )
+         v->domain->arch.cpuid->basic.pmu.version >= 7 )
         return -EINVAL;
 
     if ( (arch_pmc_cnt + fixed_pmc_cnt) == 0 )
@@ -904,6 +904,7 @@ const struct arch_vpmu_ops *__init core2_vpmu_init(void)
     case 3:
     case 4:
     case 5:
+    case 6:
         printk(XENLOG_INFO "VPMU: PMU version %u is not fully supported. "
                "Emulating version 2\n", version);
         /* FALLTHROUGH */
-- 
2.53.0



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 16:45:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 16:45:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250308.1547805 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00Cc-0003Wv-05; Tue, 10 Mar 2026 16:45:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250308.1547805; Tue, 10 Mar 2026 16: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 1w00Cb-0003Vh-PX; Tue, 10 Mar 2026 16:45:01 +0000
Received: by outflank-mailman (input) for mailman id 1250308;
 Tue, 10 Mar 2026 16: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=lmps=BK=bounce.vates.tech=bounce-md_30504962.69b04a86.v1-0562b25a3dc94e9d99b134cfb4b7fefe@srs-se1.protection.inumbo.net>)
 id 1w00Ca-000397-NC
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 16:45:00 +0000
Received: from mail133-21.atl131.mandrillapp.com
 (mail133-21.atl131.mandrillapp.com [198.2.133.21])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 78c2238b-1ca0-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 17:44:58 +0100 (CET)
Received: from pmta13.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail133-21.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fVfqp6mX4z1XLF5C
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 16:44:54 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 0562b25a3dc94e9d99b134cfb4b7fefe; Tue, 10 Mar 2026 16:44: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: 78c2238b-1ca0-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773161094; x=1773431094;
	bh=feLmUaztYuUh2fFzuOxUOsSPIeQAriCM6y3WlsJDI3Y=;
	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=cPfLADyHXB7i4QDSOQMdwDF/yoyMj0lMubt4jvYERR/4ZY+bGnMDb+XqvLzH+vk8Q
	 hl8sq/c0+JZWoa7NkdlJv1xxpBujLvrgyeSthhgzzKqOnp1yiXK7v7gIzsYCkr62QX
	 ihi1hC8fPnEXnr8gN8xMr9ACCyqO8vp5HfY1QxCV4S24Ck3X3rJe/pHgwaghacF+U+
	 2VBPILB7Ipd5Q3UqpkQDO6tPl9NGBo3A2DKdeIlhel2vfw5XjkjZywjHwDuCnJ9aQW
	 f0So/kDViO/3JY21X+NhIVQB8sNj4XZDNiRq07Axpd+oIyvNvsgyyjHLA4pD2IY1MX
	 ArTRTabGKvbtA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773161094; x=1773421594; i=teddy.astie@vates.tech;
	bh=feLmUaztYuUh2fFzuOxUOsSPIeQAriCM6y3WlsJDI3Y=;
	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=MVZr07ljRao5Y85v4CvBX/wDJZ9FZuvMdFMBeG4oyPzpZU0ZrvuLDPOB7Yzr+KWUy
	 BI8llkDDBfAwoW3lnse3iKpXLbFKM8+EA9dBClcFX5QQo5pCkAJOiA3La5RHXJCxva
	 +AUNCFLRJHgROC5MXv3x2NyS35lkoYm7EzdChGWpqSnk6t22CDstNFyDqDCUX3KtTQ
	 7Abowyr+Tbw+MKteihirFvarGoqh9luWmrmiqhoG7dHIvyQ6kg1WUTOijGMhL3hI/Q
	 yJey2tuIGX9vaGBrFBEcWSBUDzBDSXzdZZWoEf6GHN2Rkg2C7bYP0yeBO1n3AsQYZy
	 VzpetchOaLenQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=204/6]=20x86/vpmu:=20Sanitise=20Intel=20PMU=20version?=
X-Mailer: git-send-email 2.53.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773161094185
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: <dcd278658139976d1af92b4d201c17e12cf7eb2b.1773160025.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1773160025.git.teddy.astie@vates.tech>
References: <cover.1773160025.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.0562b25a3dc94e9d99b134cfb4b7fefe?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260310:md
Date: Tue, 10 Mar 2026 16:44:54 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Currently, Xen exposes the host CPUID as-is, which is not correct on hardware
that implements PMU features that are not supported by Xen (e.g AnyThread bit
of PMU version 3, IA32_PERF_GLOBAL_INUSE of PMU version 4, and many other
things).

As we're actually virtualizing PMU version 2 (as version 3 is the same as
version 2 with the addition to AnyThread bit, which is we don't support since
[1]), adjust the messages related to PMU emulation to account that.

[1] 9f5390441a6e ("x86/vpmu_intel: handle SMT consistently for programmable and fixed counters")

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
It could sound weird that we're now exposing version 2, while we were previously
(wrongly) exposing version 3. Version 3 mostly works because the guest is not
aware of hyperthreads, hence is not expected to try using AnyThread bit (which
currently faults due to consistency checks). But we were still actually virtualizing
PMU version 2.

 xen/arch/x86/cpu-policy.c     | 33 ++++++++++++++++++++++++++++++++-
 xen/arch/x86/cpu/vpmu_intel.c |  4 ++--
 2 files changed, 34 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/cpu-policy.c b/xen/arch/x86/cpu-policy.c
index 5273fe0ae4..7f4456d5a2 100644
--- a/xen/arch/x86/cpu-policy.c
+++ b/xen/arch/x86/cpu-policy.c
@@ -253,6 +253,33 @@ static void recalculate_xstate(struct cpu_policy *p)
     }
 }
 
+static void sanitise_vpmu(struct cpu_policy *p)
+{
+switch ( p->x86_vendor )
+    {
+    case X86_VENDOR_INTEL:
+        if ( !p->basic.pmu.version )
+            return;
+
+        /*
+         * Expose up to PMU version 2 
+         *
+         * PMU version 3 introduced the AnyThread bit we don't want
+         * to support (see "AnyThread Counting and Software Evolution"
+         * regarding notes with virtualization). This is the only known
+         * feature introduced in PMU version 3.
+         *
+         * PMU version 5 deprecated AnyThread, and introduced a CPUID
+         * bit (ANYTHREAD_DEPRECATION) to indicate that this bit isn't supported.
+         * That CPUID bit should be set for PMU version 5.
+         */
+        if ( p->basic.pmu.version > 2 )
+            p->basic.pmu.version = 2;
+
+        break;
+    }
+}
+
 /*
  * Misc adjustments to the policy.  Mostly clobbering reserved fields and
  * duplicating shared fields.  Intentionally hidden fields are annotated.
@@ -391,6 +418,8 @@ static void __init calculate_host_policy(void)
     /* When vPMU is disabled, drop it from the host policy. */
     if ( vpmu_mode == XENPMU_MODE_OFF )
         p->basic.raw[0xa] = EMPTY_LEAF;
+    else
+        sanitise_vpmu(p);
 
     /* 0x000000ce  MSR_INTEL_PLATFORM_INFO */
     /* probe_cpuid_faulting() sanity checks presence of MISC_FEATURES_ENABLES */
@@ -841,7 +870,7 @@ static void __init calculate_hvm_max_policy(void)
         /* Enable features which are always emulated. */
         p->extd.raw[0xa].d |= (1u << SVM_FEATURE_VMCBCLEAN);
     }
-    
+
     guest_common_max_feature_adjustments(fs);
     guest_common_feature_adjustments(fs);
 
@@ -1054,6 +1083,8 @@ void recalculate_cpuid_policy(struct domain *d)
     if ( vpmu_mode == XENPMU_MODE_OFF ||
          ((vpmu_mode & XENPMU_MODE_ALL) && !is_hardware_domain(d)) )
         p->basic.raw[0xa] = EMPTY_LEAF;
+    else
+        sanitise_vpmu(p);
 
     if ( !p->extd.svm )
         p->extd.raw[0xa] = EMPTY_LEAF;
diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c
index f43faf9567..85539ce6c5 100644
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -901,14 +901,14 @@ const struct arch_vpmu_ops *__init core2_vpmu_init(void)
 
     switch ( version )
     {
+    case 3:
     case 4:
     case 5:
         printk(XENLOG_INFO "VPMU: PMU version %u is not fully supported. "
-               "Emulating version 3\n", version);
+               "Emulating version 2\n", version);
         /* FALLTHROUGH */
 
     case 2:
-    case 3:
         break;
 
     default:
-- 
2.53.0



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 16:45:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 16:45:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250309.1547819 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00Cd-0003uN-5k; Tue, 10 Mar 2026 16:45:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250309.1547819; Tue, 10 Mar 2026 16:45:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00Cd-0003u2-1v; Tue, 10 Mar 2026 16:45:03 +0000
Received: by outflank-mailman (input) for mailman id 1250309;
 Tue, 10 Mar 2026 16:45: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=bYBk=BK=bounce.vates.tech=bounce-md_30504962.69b04a86.v1-c7ef4ba09d5f46b69712cc53bcc0a6d4@srs-se1.protection.inumbo.net>)
 id 1w00Cb-000397-NT
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 16:45:01 +0000
Received: from mail133-21.atl131.mandrillapp.com
 (mail133-21.atl131.mandrillapp.com [198.2.133.21])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 778c4381-1ca0-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 17:44:55 +0100 (CET)
Received: from pmta13.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail133-21.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fVfqp2xqRz1XLF3j
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 16:44:54 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 c7ef4ba09d5f46b69712cc53bcc0a6d4; Tue, 10 Mar 2026 16:44: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: 778c4381-1ca0-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773161094; x=1773431094;
	bh=eqSCrcSKmBLhF87BI+hUSczC6Ih5ZDFON3mh4aw5Ni4=;
	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=e02g2aN6mbhbK5LuxMvOVTDizZIErWmSbE0COLnw9mdA7aflFGidiVL2Y0QASXDl4
	 FFADotGlrrvN8ETNvZJW7iBb1YZo04vKItdkFtK7DyHwmuOTQFqgf8quvWrZClLsi9
	 zs2zgKVBc7nkHWEAh9hJAN4BOC7s0IHL6+lREMctUhWvhMGyEYp9IvxGT1Wle4ffXn
	 WNGzmqOYbAfFcWWxH2eNobDD665DR+SoorgKRAt+IHRCa5Ffy2o+9q+awlDoaGGb3R
	 1fxrLOHr5AyKHJqZDaWpW/rFoVMTxirvQRFCIbPUDW7kqKGc1chDEy0Pn0KxEnG/Xl
	 mZxpiUKdmJadg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773161094; x=1773421594; i=teddy.astie@vates.tech;
	bh=eqSCrcSKmBLhF87BI+hUSczC6Ih5ZDFON3mh4aw5Ni4=;
	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=U4TOixaMNpMTv96wYDgKiJTVULXYPM/iYIV9N9zZp70sCSaeawf+P0LslXK0l8Ccg
	 i+r81qno3t/uASUo6InT6FIL6/Dr4SrktI7LvBHj2O2AiU0dB/yiYiCg2ww9sHUPlJ
	 LNucsBf3GYlL8RSyCJ+MrylLEbVJnC7+uQFhx4wdEWj3ATWz5j/7Z1sUdUt60rtDkR
	 Tif8Fj4XTO5viC2W7vilVskuUlZAOJcSUM1q6zLbtfU2FD5Oya/liNnCuH3o/xY4dm
	 so/T5vYaYTw3sxuz0zgkjtTXnaqzPOKEQlQ/+k6lK7H+4nr8/xwfLTa36l4/GYE1N2
	 iFlhtvK+m8LdQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=201/6]=20x86/vpmu:=20Expose=20up=20to=208=20Intel=20event=20selectors=20in=20PV=20Dom0?=
X-Mailer: git-send-email 2.53.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773161093473
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: <715834969eb198850e1fe0d1e66046f929c8d658.1773160025.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1773160025.git.teddy.astie@vates.tech>
References: <cover.1773160025.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.c7ef4ba09d5f46b69712cc53bcc0a6d4?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260310:md
Date: Tue, 10 Mar 2026 16:44:54 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Most (if not all) Intel CPUs starting from Sandy Bridge have up to 8
event selectors per core, which could be halved per hyperthread.

However, current PV emulation logic doesn't support up to 8 event selector,
leading to errors when trying to access them, hence, preventing Linux from
driving the vPMU correctly.

Make sure up to MSR_P6_EVNTSEL(7) is usable, which is the same upper bound as
used in VMX code.

The check if the event selector actually exist for the hardware is done in
core2_vpmu_do_{rdmsr,wrmsr}, hence we're not allowing to access non-existent
MSRs.

Fixes: 27c554198666 ("x86/VPMU: add support for PMU register handling on PV guests")
Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/arch/x86/pv/emul-priv-op.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c
index 64d47ab677..b2556f9213 100644
--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -990,7 +990,7 @@ static int cf_check read_msr(
         return X86EMUL_OKAY;
 
     case MSR_P6_PERFCTR(0) ... MSR_P6_PERFCTR(7):
-    case MSR_P6_EVNTSEL(0) ... MSR_P6_EVNTSEL(3):
+    case MSR_P6_EVNTSEL(0) ... MSR_P6_EVNTSEL(7):
     case MSR_CORE_PERF_FIXED_CTR0 ... MSR_CORE_PERF_FIXED_CTR2:
     case MSR_CORE_PERF_FIXED_CTR_CTRL ... MSR_CORE_PERF_GLOBAL_OVF_CTRL:
         if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
@@ -1167,7 +1167,7 @@ static int cf_check write_msr(
         break;
 
     case MSR_P6_PERFCTR(0) ... MSR_P6_PERFCTR(7):
-    case MSR_P6_EVNTSEL(0) ... MSR_P6_EVNTSEL(3):
+    case MSR_P6_EVNTSEL(0) ... MSR_P6_EVNTSEL(7):
     case MSR_CORE_PERF_FIXED_CTR0 ... MSR_CORE_PERF_FIXED_CTR2:
     case MSR_CORE_PERF_FIXED_CTR_CTRL ... MSR_CORE_PERF_GLOBAL_OVF_CTRL:
         if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
-- 
2.53.0



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 16:45:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 16:45:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250304.1547773 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00CY-0002qG-SP; Tue, 10 Mar 2026 16:44:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250304.1547773; Tue, 10 Mar 2026 16:44:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00CY-0002q9-Pb; Tue, 10 Mar 2026 16:44:58 +0000
Received: by outflank-mailman (input) for mailman id 1250304;
 Tue, 10 Mar 2026 16:44: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=Vo/M=BK=bounce.vates.tech=bounce-md_30504962.69b04a86.v1-ab72382673ed4219823e03700adaec69@srs-se1.protection.inumbo.net>)
 id 1w00CX-0002px-ED
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 16:44:57 +0000
Received: from mail132-19.atl131.mandrillapp.com
 (mail132-19.atl131.mandrillapp.com [198.2.132.19])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 778b7e3d-1ca0-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 17:44:56 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-19.atl131.mandrillapp.com (Mailchimp) with ESMTP id 4fVfqp0shXz38V
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 16:44:54 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 ab72382673ed4219823e03700adaec69; Tue, 10 Mar 2026 16:44: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: 778b7e3d-1ca0-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773161094; x=1773431094;
	bh=PDKUA/ghCpgwOyp0wj5kBTfKQs5YlszkqJ+BY+fssTw=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=OJhyg9SKKlUdl7O3lpFHkmEUOf9MjtgLaKrKxX89QZLR0iyI4Fi/KtiGfjKYDRIpD
	 b15pxQOws7eY3U8Rl2R6T2EWg3QBifWTd1QhnQOG69tB8EiL8UY2uMxuNzStwmScsc
	 U9vetnDDhJmURtXVAZB9LGsjOOOUnZgviWdQjQx2oAgexC0BJoTGzQAw+yeuKK6GMU
	 oIDzGQiSPm8FDq6GQbGjH1XH8+WSY03wUdPhptE1KqRsB/xTtoWW/MHuLJr+4x/L3x
	 BtuXAXbLnp50XDM9uqoizB3zzS+Zi03/qoOOjog6nYuQMi/mCbWOGDKC+THEfL1CFl
	 pKL/BS1k1X+Nw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773161094; x=1773421594; i=teddy.astie@vates.tech;
	bh=PDKUA/ghCpgwOyp0wj5kBTfKQs5YlszkqJ+BY+fssTw=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=RHUniUrECtGwPXN1Uwl7AlAb3UfH+29S0aTDsbL4f7p5fHZpuLA8Igz1SnHWc2jj6
	 hAA2GKL8EXDkOHOGaYttkdmVOB6R3wKLEzfZA0g6Q2NxYGgnXr0ttj09bKFI8IS/T0
	 Vvwuz0QMK6nNV/m9upbHQUdgUQZO0MOD8MdwCjusupZGnF5dJ6zF+/jozf4Pyh5k06
	 TAntwPxvNBnTc3w28UQogHhIq/r52aQHqLLbDnZXl7nt/oLxTLIYqGdJSY2xfLQgwC
	 3xeWRmCU6oGktkqbUfxjPqlyE4OF6j6YQD0ZkOwifOQO9oM7WJste1/EZ6aHSfsAyK
	 J/gur438yD7UA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=200/6]=20Intel=20vPMU=20improvements?=
X-Mailer: git-send-email 2.53.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773161093132
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: <cover.1773160025.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.ab72382673ed4219823e03700adaec69?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260310:md
Date: Tue, 10 Mar 2026 16:44:54 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

First patch fix a problem that prevents vPMU from properly working with
a PV domain on a processor that doesn't have hyperthreading.

The second patch adds a missing PEBS/DS_AREA MSR handler for PV.

The next patches tries to introduce a proper CPUID handling and restrict
some hardware limits to Xen ones.

Last patch allow vPMU to work with PMU version 6 (Intel Core Ultra and alike).

Teddy Astie (6):
  x86/vpmu: Expose up to 8 Intel event selectors in PV Dom0
  x86/vpmu: Expose PEBS and DS area in PV mode
  x86: Define some Intel vPMU leafs
  x86/vpmu: Sanitise Intel PMU version
  x86/vpmu: Limit to using supported general/fixed counters
  x86/vpmu: Allow PMU version 6

 xen/arch/x86/cpu-policy.c            | 39 +++++++++++++++++++++++++++-
 xen/arch/x86/cpu/vpmu_intel.c        | 24 ++++++++++++++---
 xen/arch/x86/domain.c                |  2 +-
 xen/arch/x86/pv/emul-priv-op.c       |  8 ++++--
 xen/include/xen/lib/x86/cpu-policy.h | 10 ++++++-
 5 files changed, 74 insertions(+), 9 deletions(-)

-- 
2.53.0



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 16:45:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 16:45:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250307.1547801 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00Cb-0003U4-MH; Tue, 10 Mar 2026 16:45:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250307.1547801; Tue, 10 Mar 2026 16: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 1w00Cb-0003Tx-Ix; Tue, 10 Mar 2026 16:45:01 +0000
Received: by outflank-mailman (input) for mailman id 1250307;
 Tue, 10 Mar 2026 16: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=Gdb/=BK=bounce.vates.tech=bounce-md_30504962.69b04a86.v1-9b6333b3049249c998ca885eb31c564d@srs-se1.protection.inumbo.net>)
 id 1w00Ca-000397-1C
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 16:45:00 +0000
Received: from mail132-19.atl131.mandrillapp.com
 (mail132-19.atl131.mandrillapp.com [198.2.132.19])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 778e17c0-1ca0-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 17:44:55 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-19.atl131.mandrillapp.com (Mailchimp) with ESMTP id 4fVfqp4Pfbz3Xd
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 16:44:54 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 9b6333b3049249c998ca885eb31c564d; Tue, 10 Mar 2026 16:44: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: 778e17c0-1ca0-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773161094; x=1773431094;
	bh=tvGZ8I5yGbu47GPCSHdjFhh+QbtkVjwXJ0lx4QYZVe0=;
	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=f+ok+lZ1MIhQ10pUJKYcsy3e+6upbZvj+PaxUR+G77adqmsuV3e+Ru0rPOnU9aJGH
	 dSZZd37YZQnbFnDVR10pTnhJJwfnO7B7hIsxOj/ao453TeedkCtCR6b5TAnvGfat0n
	 myQtOYShmp0OBxAowTgaLAKWwNlm2eJcz2KFo94Q5My3TcNppkCgiUIBYoaYDL5GMW
	 lnBv24K3T4Yu6ISfUolkDjYAOHo0fqXcGwE3a3nTYezVMVezKxEiCYJFop8dtOlbIa
	 y56I1w3L6IX+msOfRyBOcgPgJtOgIAzM4HQZjx6vqLcT3cOFnSZE/FN1IYgSCbnjN6
	 lvheCSAgDxO1A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773161094; x=1773421594; i=teddy.astie@vates.tech;
	bh=tvGZ8I5yGbu47GPCSHdjFhh+QbtkVjwXJ0lx4QYZVe0=;
	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=KXMnZNFrrA8b5m3sXEqulAOlvCodPU4aOi824JbxmHOOBaMydwSI4kll1wCHP04dt
	 MSQ8sS2ZECDYuaI6jGuX8bLPMg6AkjSJ5uBYe0z95G1Zq+4I62AkHDp+p6ersiGlVc
	 6PVHV+nPUnYjPTU6q3tX3gKbzTwuCPRDAbw2qxeAgBdgiR5TKEb0D8XG65QuXGio73
	 SXERIvLCXuep4hVniAlNdAaFGwmbTKbUAeNfdvUYECaGo0rYZw+WRkdYrso6iy1PJL
	 5WQ3IErRYShy9BoF8dQRHczHTsfvNHRZkuLkmFn3PJxSo00OXi6EZHN7hD/N+xr7Vd
	 CgAr1XfAzr2tg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=202/6]=20x86/vpmu:=20Expose=20PEBS=20and=20DS=20area=20in=20PV=20mode?=
X-Mailer: git-send-email 2.53.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773161093696
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: <0762ceb722be83bbdf6703cf419debf30609feb0.1773160025.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1773160025.git.teddy.astie@vates.tech>
References: <cover.1773160025.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.9b6333b3049249c998ca885eb31c564d?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260310:md
Date: Tue, 10 Mar 2026 16:44:54 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

I don't see any reason for them for not be available, especially
since core2_vpmu_do_wrmsr has PV specific logic for MSR_IA32_DS_AREA.

Fixes: 27c554198666 ("x86/VPMU: add support for PMU register handling on PV guests")
Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/arch/x86/pv/emul-priv-op.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/xen/arch/x86/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c
index b2556f9213..0d93218030 100644
--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -993,6 +993,8 @@ static int cf_check read_msr(
     case MSR_P6_EVNTSEL(0) ... MSR_P6_EVNTSEL(7):
     case MSR_CORE_PERF_FIXED_CTR0 ... MSR_CORE_PERF_FIXED_CTR2:
     case MSR_CORE_PERF_FIXED_CTR_CTRL ... MSR_CORE_PERF_GLOBAL_OVF_CTRL:
+    case MSR_IA32_PEBS_ENABLE:
+    case MSR_IA32_DS_AREA:
         if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
         {
             vpmu_msr = true;
@@ -1170,6 +1172,8 @@ static int cf_check write_msr(
     case MSR_P6_EVNTSEL(0) ... MSR_P6_EVNTSEL(7):
     case MSR_CORE_PERF_FIXED_CTR0 ... MSR_CORE_PERF_FIXED_CTR2:
     case MSR_CORE_PERF_FIXED_CTR_CTRL ... MSR_CORE_PERF_GLOBAL_OVF_CTRL:
+    case MSR_IA32_PEBS_ENABLE:
+    case MSR_IA32_DS_AREA:
         if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
         {
             vpmu_msr = true;
-- 
2.53.0



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 16:55:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 16:55:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250371.1547836 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00Mo-0007gc-GW; Tue, 10 Mar 2026 16:55:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250371.1547836; Tue, 10 Mar 2026 16:55:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00Mo-0007gV-Dr; Tue, 10 Mar 2026 16:55:34 +0000
Received: by outflank-mailman (input) for mailman id 1250371;
 Tue, 10 Mar 2026 16:55:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=S17i=BK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w00Mm-0007gP-RY
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 16:55:32 +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 f2b4a817-1ca1-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 17:55:31 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-48334ee0aeaso107282585e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 09:55:31 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48534fa65a6sm172083335e9.2.2026.03.10.09.55.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Mar 2026 09:55:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f2b4a817-1ca1-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773161731; x=1773766531; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yifBnf9TlEonB14TYREFh6/NspZbrRBdgUShsp6cVUA=;
        b=BrmRzpMzs4PDAeDxCLgSrFx/iHsz7QUs9cf/qr8wvKAelja+sWL4oYZ8aUO2AYq5wu
         CTy3uODFG/gJkKPVw8YN4CbU9CCcWvFGcoePIxT2wMODCUy7gWan21ema23EPT3vjblH
         ryGnc293yUj/VKs8q3aiua6uAQuTeFiuaYaeKSP+wMXpgBLbQ1JGFfLuiIm5QWm6prCR
         qNkJRTymZaBjH3SJg6SGCW8YylvOQzXC5DGbt8ucqtWqzffnKqjDSj15ngFcrG6xONjE
         klITRg/Clr3E075At88wm2azskTWZFd/T0mF24ctETQrm+0lwa5a+s6Kcu1MunTqrWcS
         LVeQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773161731; x=1773766531;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yifBnf9TlEonB14TYREFh6/NspZbrRBdgUShsp6cVUA=;
        b=p1ejcFgXhYfuBSx4k8NGL+bUwbBGWwOS/EdkxJTcuoCBGFW/1tDIMfYu/RoXxdUhyb
         PoKLqLLeAyAfDJh2LTayQojsbd3bqAl5Gr5dWyDxpbmtv6o9okEN7vSo4GuMYMoTV3Zf
         YYuEy7sklgXiUBClmUUiKZz638mtWf8OE+FJ+FIKpzm1Vw/1OAsfcVGpIyGDFBFCJ9Xq
         YKoO06U0L/2SXx7TsR2YmlQ/bxj40+PiltjvcUJSYrAY+QXiicAI+ZkjTzLOcxhlk0dd
         2ucCNmI1hrCQIM0Lp7kUQd6O7IvPeruAYQdis20kSPtQKpDG337tuHec2yGFSMDXxMgh
         rzFw==
X-Forwarded-Encrypted: i=1; AJvYcCVFGE1ERbEoAs2Lw7ULpC0zUS8UE8JxCDdq73t+MQbN+7W7wxV/22MakDN+CEeHIQpsmc7VOtGahLY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw7EomEahZqTMG6PUdUnZSABJXB/yeDIZTWoxEMPgoH7BmEbwyf
	g5lxvYO18RIh+AAwNes3aacDUoZXxyyvIYgar+pTprO20M35cRDFsBjZU2eULVuwXQ==
X-Gm-Gg: ATEYQzxkkUyRAUZsUF5cTOWi5jh6DAs0+FCEkfOcmBQiC3rgRQDimJMBf2zTYgEkreG
	veTsIUPrCmnesStMb/hruUL3wiYyt1vlTvml06jS4YWLh5/2nIbpI7vrk6I5c/hNKplaJKvzL0i
	Y8jWDCiKZMsZI1i8QWnj4xfD3N0b2ADs76z7nxt+VJZQ+7XH1KqeWPD/v4cIo1+4aQ1VfnMLCGY
	HuNCkFWrFQbObMQOsk2l858DB3Le+oEyLZFBvgOjMaxgSxSVsGVy9sj+SKcxUjY88/D0ECLWEvS
	AbrxKjTR1nHoBpcqenw/EexErt0qOxse1/xXj5nxNul4kr87huoO+tsRYd7iZMaQOZYcnS4Bf/g
	5DR1CTZViyoTgHtrgdPAOCN2AJsfGiUpKjQDEgppaqiBo4zIvn0tJuVHlIVEYiP8ojgHLGoYjra
	MUbNei4OvjejsIx6VKQlIqQ7iHCc1XkP0JPc7yEN7FVdLuNu6MaqIbySISdamexjBvqoWHlo4aD
	ZhBnpO21PX77hM=
X-Received: by 2002:a05:600c:a4a:b0:480:690e:f14a with SMTP id 5b1f17b1804b1-4852691e00dmr256773305e9.14.1773161730685;
        Tue, 10 Mar 2026 09:55:30 -0700 (PDT)
Message-ID: <b68a356b-2cc7-49be-bc8e-eea36d316175@suse.com>
Date: Tue, 10 Mar 2026 17:55:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/7] x86/vioapic: Add ioapic_check() to validate
 IO-APIC state before restore
To: Julian Vetter <julian.vetter@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
 <jgross@suse.com>, Julien Grall <julien@xen.org>,
 xen-devel@lists.xenproject.org
References: <20260309123055.880050-1-julian.vetter@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260309123055.880050-1-julian.vetter@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.03.2026 13:31, Julian Vetter wrote:
> --- a/xen/arch/x86/hvm/vioapic.c
> +++ b/xen/arch/x86/hvm/vioapic.c
> @@ -594,6 +594,35 @@ int vioapic_get_trigger_mode(const struct domain *d, unsigned int gsi)
>      return vioapic->redirtbl[pin].fields.trig_mode;
>  }
>  
> +static int cf_check ioapic_check(const struct domain *d, hvm_domain_context_t *h)
> +{
> +    const HVM_SAVE_TYPE(IOAPIC) *s;
> +    unsigned int i;
> +
> +    if ( !has_vioapic(d) )
> +        return -ENODEV;
> +
> +    s = hvm_get_entry(IOAPIC, h);
> +    if ( !s )
> +        return -ENODATA;
> +
> +    for ( i = 0; i < ARRAY_SIZE(s->redirtbl); i++ )
> +    {
> +        const union vioapic_redir_entry *e = &s->redirtbl[i];
> +
> +        /*
> +         * Check to-be-loaded values are within valid range, for them to
> +         * represent actually reachable state.
> +         */
> +        if ( e->fields.reserve ||
> +             e->fields.reserved[0] || e->fields.reserved[1] ||
> +             e->fields.reserved[2] || e->fields.reserved[3] )
> +            return -EINVAL;

Are comment and code actually in sync? I can't spot anything preventing the
reserved fields to be set by a guest. Such setting would simply be ignored.
(And this is actually why I was asking you to add such a function: By adding
the checks you should have noticed that the fields can be non-zero if a guest
writes them this way. Which in turn may pose a problem for your extid
intentions.)

> +    }
> +
> +    return 0;
> +}

If it wasn't for the above, something like this may do for starters. Would
be nice if base_address, ioregsel, and id also had some sanity checking
applied.

However, does this build at all with the function unused? You lack ...

>  static int cf_check ioapic_save(struct vcpu *v, hvm_domain_context_t *h)
>  {
>      const struct domain *d = v->domain;

... a hunk altering the HVM_REGISTER_SAVE_RESTORE() further down.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:09:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:09:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250385.1547858 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00a4-0001fg-5R; Tue, 10 Mar 2026 17:09:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250385.1547858; Tue, 10 Mar 2026 17:09:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00a4-0001ee-0r; Tue, 10 Mar 2026 17:09:16 +0000
Received: by outflank-mailman (input) for mailman id 1250385;
 Tue, 10 Mar 2026 17:09:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00a2-0001QA-8G
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:14 +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 dbfb5bb6-1ca3-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 18:09:12 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-485445e80bdso8157385e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:12 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dbfb5bb6-1ca3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162551; x=1773767351; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dQTAxI2vfkx2VNhH7t+uCNbpYCzRGkHrgeV3afpytNg=;
        b=kIjMY2TcOtVm0g3FH3qXIIVTveg8pfwxQiN1UaWiKLI1fZEE8HG/LKLIhsdl0rAsh0
         aq/FFZcQtk17wFCtGONbgOBUZZOnrKVqbftQ2dmEwfetAuEss+9wvpJBkjm+IwCecz2o
         VYhBe7tYXanN0Ty6qFlPuxfjBRzUNAkBPNLxnDiTXxp+kdKoHGrdpwWeBZZy4VvFnprc
         mlT9NKMjz2LlewR5T90QVcGTGyApkbsK2sdAPBehqrif06Zxl40wZ0pILSZOG7GTkijz
         62ZrQXWyHa9ltAck5tcpUTV0T9wVouuOpoQbxBscADJ+CL/JI2YYr0Gg3PEUDSy+QxOh
         DWEA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162551; x=1773767351;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=dQTAxI2vfkx2VNhH7t+uCNbpYCzRGkHrgeV3afpytNg=;
        b=OpqSUlkLAp5FiFhB3WgTZ62cqOqCiFrSJgdjMowzjBgjw1QZ+yPPFf257MXOmNhXow
         M+XVDU+6NRyJzqkXxB7Dj62plnc7bzzir4jIRFORGYbA9tXTUVeywR6KpDaJuS/QP5tt
         1E9rP7t+cO8dFNJ8NYG5fac8ZLztGPFtWGVSz1oy1vX3t4skoi/3AkxmtNSwo6zTdHGk
         8t6Amvk8r8dLscuHQ1KedLFt6rwzrAsD28i0eVJ0OHyWH9FNcjm03E8S+nPuCr4RroPA
         wyF9ki6YRuI0bBepqN0moTIp/Dr5VmMlaHyH4hx2b6xLXlA0ivHT/aHww33BtiG6wiFR
         rpEw==
X-Gm-Message-State: AOJu0Yz9IObBU1SDPmzipXcRqWwaUXBqSBPm9K6cs90ipWcVQfB17JrQ
	mzk1AUyZ+9Q89eMK4LsnGAoy1sgYyjtnG0Bzyf5Jkzau2l4fFosBkQI8KZLigJo7
X-Gm-Gg: ATEYQzxT76sa6bVxEiqIc8mFvyMGd4kKUJtTPeiD1/ZqBUdvKlvEaiINWl12AM6rd7M
	/wWvqmFfT/yrsELfQhN/LWLjqwprkomjoDYKIB0Gee39Tch+VgSs+5B6S4tO3mctHgS4oBRGnbx
	lNpckjTO1QAcMSs6oHNpTNuJHjdodotpzsnPh2JeE/StQI7mpkiVTwwVCJTPbXhm6nqRGR8/Alj
	6Otulw6vb4H0byMUKNBRepDoivlroMTQZOM6Xaqlk1Lv8OHdD/MN1VJnDgmLAZl/4grOCUpH+J7
	fOIJ+WAdZ/Hg9UcaW4mKUOwvK+I11zyszQ/8M0bCcoGzlrx+gwiKnRsVyEihTjtKNDvjksvvCO5
	/yImGnLXE4QYRkcJQGeCVNdX5b9AJy6CBBQpC81U06/Hy+NJcFYY2q/GKEddyQWnmpu+Zm+3ThG
	sBg2VhW0saqCJcn07ekZQ0xMMZl04z2wcXyS+0SDE7MqlsssSsntkAH0hOoWhGNdf/lBf7sg==
X-Received: by 2002:a05:600c:6995:b0:485:3a27:a961 with SMTP id 5b1f17b1804b1-4853a27a9eamr154877525e9.0.1773162551415;
        Tue, 10 Mar 2026 10:09:11 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 02/27] xen/riscv: Implement construct_domain()
Date: Tue, 10 Mar 2026 18:08:35 +0100
Message-ID: <3a86599284108e6f2a27488a03145f8dd1b71def.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement construct_domain() function for RISC-V, which performs initial setup
for the domain's first vCPU, loads the kernel, initrd, and device tree,
and sets up guest CPU registers for boot.

It also creates additional vCPUs up to max_vcpus and assigns the device tree
address and boot cpuid in registers.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/domain-build.c | 46 +++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)
 create mode 100644 xen/arch/riscv/domain-build.c

diff --git a/xen/arch/riscv/domain-build.c b/xen/arch/riscv/domain-build.c
new file mode 100644
index 000000000000..0ce903a911ae
--- /dev/null
+++ b/xen/arch/riscv/domain-build.c
@@ -0,0 +1,46 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include <xen/fdt-domain-build.h>
+#include <xen/fdt-kernel.h>
+#include <xen/init.h>
+#include <xen/sched.h>
+
+#include <asm/current.h>
+#include <asm/guest_access.h>
+
+int __init construct_domain(struct domain *d, struct kernel_info *kinfo)
+{
+    struct vcpu *v = d->vcpu[0];
+    struct cpu_user_regs *regs = vcpu_guest_cpu_user_regs(v);
+
+    BUG_ON(d->vcpu[0] == NULL);
+    BUG_ON(v->is_initialised);
+
+    kernel_load(kinfo);
+    initrd_load(kinfo, copy_to_guest_phys);
+    dtb_load(kinfo, copy_to_guest_phys);
+
+    regs->sepc = kinfo->entry;
+
+    /* Guest boot cpuid = 0 */
+    regs->a0 = 0;
+    regs->a1 = kinfo->dtb_paddr;
+
+    for ( unsigned int i = 1; i < d->max_vcpus; i++ )
+    {
+        if ( vcpu_create(d, i) == NULL )
+        {
+            printk("Failed to allocate %pd v%d\n", d, i);
+            break;
+        }
+
+        printk("Created vcpu %d for %pd\n", i, d);
+    }
+
+    domain_update_node_affinity(d);
+
+    v->is_initialised = 1;
+    clear_bit(_VPF_down, &v->pause_flags);
+
+    return 0;
+}
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:09:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:09:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250383.1547846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00a1-0001QI-Nt; Tue, 10 Mar 2026 17:09:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250383.1547846; Tue, 10 Mar 2026 17: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 1w00a1-0001QB-KW; Tue, 10 Mar 2026 17:09:13 +0000
Received: by outflank-mailman (input) for mailman id 1250383;
 Tue, 10 Mar 2026 17: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=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00a0-0001Q4-55
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:12 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dac0d254-1ca3-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 18:09:10 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4852f73d0a3so29537295e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:10 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dac0d254-1ca3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162549; x=1773767349; 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=fS3m/olTHFR+S5wMOXBBTVEk4F6WPK3GOur8e80WWZg=;
        b=O6ssJ5irhIT4Rn4mYXzd7xFT0mBwKwfo+YpZb3gcKjPAx+pQeRYbhpQ1BROdWBUsYS
         7T7Y0NDkbivQiygkK5ClZDG2kQYYtIuXciD/hHh+HcGIubGn5vkL2vdORSZ70NiqRHaQ
         f92s/3LT79a7OdVowAqZB3J33ZPPyxsAF0uXb9umoJuLo8E9W1MetVFBkd2p4hi0ynaU
         n22sAZ7kdMNFvrlkXRKYTwtY3m3izZ3wQWqfzoBYwXbIsIj+d9At1r0ryr9CwlSZWm/O
         gUWn08203WG9MbMULgr8mprifoVS+XduRgVzauQPfN0OssojwaLLtchsHerXrB7uYsBH
         uYmQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162549; x=1773767349;
        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=fS3m/olTHFR+S5wMOXBBTVEk4F6WPK3GOur8e80WWZg=;
        b=BzL+qwv/EPkJ/JZoJP7XOuZ/j9BP9UyWp/Yzr3M9p8i8+UMti9PFguy2m1JCBCcIlT
         LpECCmq6SchQDrPny6Mn19rSas7oU3Uw2AAAtSejNTbZBFwA+JtaGXIbHfsf3o2nGrFQ
         p68w19PeVk4LES86y9vqOHgBqMlX8Yiv3uPszwZRX/Vp0v7y2q5m+Uh/1QzuVQD38K23
         guodkvV0WWt5fyuP0AYdh+8j/b6zm4g6euDzNZcS+KEs37Qqmdq+hFDz1f+qhsaiVCNV
         wojjMqCwfFb6MCn8N54u7La3FBX6X9rntDJYlO8NneX5z3sHUNYLzbQb06mshWqoympD
         htnA==
X-Gm-Message-State: AOJu0YyUrGIPDSStL6W/37bCoK77GVKVR7uUqPP57u32ngE6NKDnZTpc
	1/ybe6UvDn10BAamxZWt7nc8JCdW9xc2vXxQowj38tOETq0sXE2S08MsMOUh6cYD
X-Gm-Gg: ATEYQzxhN7konqIaqbkSmUnskjXFnjpqqFAVqiocDHfcFcLPTjzrkNq8rVCvzK2h7hp
	mk4CBDRnn2oZreGEWsGSLx3LIfoGV6OW+yjwTm8gDWqSVsoVsjh4x+EqAJm3I6lHnnIZ8lwGikn
	2r0UHm+BPSENBT9jLosp0QPg4lGQPkTowjTfUYNc6FV9fDoq4oagL6IYI99Kz9Duh7ClCLkgERR
	PRpJAtacdiQF/QYT4i3pG/p5TaewMV6fiPYHLn3OWiC286vdk0/st7tvFkPcpl4/Iba40cRMq5o
	xNjIsnTG1OfmTbzwJa+DwxD0/gzntr1Uc0X5C2BHkpAXXjA3pELfp/ZKaUxK04mY+JHHoqrVhkF
	OsdajdW3d8Q3DbJ5TZtjP3Iorly0NCPralJl7hCaDH43ILiJgOKSmjf5jv1cM2vhc8Ekmo4+H3w
	b7tfmZZ7OMBDrEV2sNu7WmhAfT3flBOBslWHpQYgMnegdA8sASElEbPW6tALFETk303o/bdA==
X-Received: by 2002:a05:600c:6387:b0:485:3983:aba8 with SMTP id 5b1f17b1804b1-4853983ad1amr137276295e9.27.1773162549157;
        Tue, 10 Mar 2026 10:09:09 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 00/27] [RISC-V] Introduce enablemenant of dom0less
Date: Tue, 10 Mar 2026 18:08:33 +0100
Message-ID: <cover.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This patch series reprensent a bunch of patches necessary to enable
common part of Dom0less.
The stuff necessary to start/launch domains will be introduced separately.

This patch series is based on [1], but a lot of patch could go even without
it.

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

Oleksii Kurochko (27):
  xen/riscv: Implement ARCH_PAGING_MEMPOOL
  xen/riscv: Implement construct_domain()
  xen/riscv: implement prerequisites for domain_create()
  xen/riscv: rework G-stage mode handling
  xen/riscv: introduce guest riscv,isa string
  xen/riscv: implement make_cpus_node()
  xen/riscv: implement make_timer_node()
  xen/riscv: implement make_arch_nodes()
  xen/riscv: implement make_intc_domU_node()
  xen/riscv: generate IMSIC DT node for guest domains
  xen/riscv: create APLIC DT node for guest domains
  xen/riscv: introduce aia_init() and aia_available()
  xen/riscv: add basic VGEIN management for AIA guests
  xen/riscv: introduce per-vCPU IMSIC state
  xen/riscv: add very early virtual APLIC (vAPLIC) initialization
    support
  xen/riscv: implement IRQ mapping for device passthrough
  xen/riscv: add missing APLIC register offsets, masks to asm/aplic.h.
  xen/riscv: add vaplic access check
  xen/riscv: emulate guest writes to virtual APLIC MMIO
  xen/riscv: emulate guest reads from virtual APLIC MMIO
  xen/riscv: introduce (de)initialization helpers for vINTC
  xen/riscv: implement init_intc_phandle()
  xen/riscv: call do_initcalls() in start_xen()
  xen/riscv: init rcu
  xen/riscv: setup system domains
  xen/riscv: provide init_vuart()
  xen/riscv: add initial dom0less infrastructure support

 xen/arch/riscv/Kconfig                  |   2 +
 xen/arch/riscv/Makefile                 |   6 +-
 xen/arch/riscv/aia.c                    | 135 +++++++
 xen/arch/riscv/aplic.c                  |  83 +++++
 xen/arch/riscv/cpufeature.c             |  33 ++
 xen/arch/riscv/dom0less-build.c         |  63 ++++
 xen/arch/riscv/domain-build.c           | 175 +++++++++
 xen/arch/riscv/domain.c                 |  41 ++-
 xen/arch/riscv/imsic.c                  | 155 ++++++++
 xen/arch/riscv/include/asm/aia.h        |  28 ++
 xen/arch/riscv/include/asm/aplic.h      |  37 ++
 xen/arch/riscv/include/asm/cpufeature.h |   2 +
 xen/arch/riscv/include/asm/domain.h     |  17 +
 xen/arch/riscv/include/asm/imsic.h      |  24 ++
 xen/arch/riscv/include/asm/intc.h       |  51 ++-
 xen/arch/riscv/include/asm/p2m.h        |   9 +-
 xen/arch/riscv/include/asm/setup.h      |  21 +-
 xen/arch/riscv/include/asm/vaplic.h     |  36 ++
 xen/arch/riscv/intc.c                   |  60 ++++
 xen/arch/riscv/p2m.c                    |  91 +++--
 xen/arch/riscv/setup.c                  |  14 +
 xen/arch/riscv/stubs.c                  |   9 +-
 xen/arch/riscv/vaplic.c                 | 449 ++++++++++++++++++++++++
 xen/arch/riscv/vmid.c                   |   2 +-
 xen/include/public/arch-riscv.h         |   3 +
 xen/include/public/device_tree_defs.h   |   1 +
 26 files changed, 1488 insertions(+), 59 deletions(-)
 create mode 100644 xen/arch/riscv/aia.c
 create mode 100644 xen/arch/riscv/dom0less-build.c
 create mode 100644 xen/arch/riscv/domain-build.c
 create mode 100644 xen/arch/riscv/include/asm/aia.h
 create mode 100644 xen/arch/riscv/include/asm/vaplic.h
 create mode 100644 xen/arch/riscv/vaplic.c

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:09:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:09:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250387.1547882 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00a5-0002Gn-Ob; Tue, 10 Mar 2026 17:09:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250387.1547882; Tue, 10 Mar 2026 17: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 1w00a5-0002Gb-KB; Tue, 10 Mar 2026 17:09:17 +0000
Received: by outflank-mailman (input) for mailman id 1250387;
 Tue, 10 Mar 2026 17: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=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00a4-0001QA-M9
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:16 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dd807af5-1ca3-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 18:09:14 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-485410a0a8aso16042795e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:14 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dd807af5-1ca3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162554; x=1773767354; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=y2l9GSTVdHf37ct2dJEvx0io7ScAIs5lEweSLfZGouo=;
        b=iIuPKO4b+qUhMQwTITvT3pvAvG6IJR50piZmXbxla5v5v6ZUcQx+0PAERuup0F1qlo
         g+FE2eOCLD8mjE0gXjHmdmxpAgiwWuZdOaWlO3IefvaqRIQtkhnHWmOiYGIkKNtXYLew
         c2TrlXp0JEhUZGoOBTJoT1jiqDQ4t2nLhvhT/16OSaxAflo58U8L5NMDJPbRgwvkkOrw
         fWej3C0xAQ5hvmvPh4hOgQ64RBzdavG4B9uU4sVCEA6lkpInrhHeTedkBC8wQvIQ5Ofa
         iCbzDRUgAoHILRIEB6kt9FMU1QXS3xOrp1Bu1cVxBuM5K6SlH3YZaNZXNmzLEps2tA10
         RDMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162554; x=1773767354;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=y2l9GSTVdHf37ct2dJEvx0io7ScAIs5lEweSLfZGouo=;
        b=MusXI6CI1bXU+TVEazp83y9f5vrpZoeWQygPJLTYc8pkPDwi0kXNrN6j/DJBMvFdkR
         TfyBMUtgZT+42ctFQ7YzI/yO6Pl3O8JM99nXBq+W92s3loFIDBeYZzEfgZqIlz3PPxy+
         w79mR6Oy4biyVBq/xCutI9F4GcMnd0zHru5fKLyuZB7OBM3BUoaK4rZHI5u40VYAzqJw
         SFR585z/HuBYnUiM3sWrnsMIc/dNVh9txRv7v19/A6GuY+ATM1cDC+5CeF4EcihlB7R3
         3SZjUzSZ2LBCKmnKzq5MEJHcWtq852JTkTTQCIEvwhe/KwIu0fN7HMHf3tDIp6ny1DVS
         e8ew==
X-Gm-Message-State: AOJu0YyN9sxMqexhh67wh+yTR/Rvo6e2m3q+QyI5dufTLdKT+48mvyfE
	Y8eXMJN3hqQYwYwpWsaGAmz33zKA7++ouWIAss0mid7kiihgBM0Ny3wQ3xBJcKMt
X-Gm-Gg: ATEYQzzbuSk7Qv9YN0xCaZhJA+xrSIbwJQSnzkdGONzi20jpYAa5jeJ+qlhKXz7dIGX
	Hju9abVBhIt/V0A88CeIKgGv+uuP5OXVAwMO37rxr6JcgLyCuLn9r2UpCTV7Q9Ei5QQ0j/Ve6G/
	rPSNoTWaHaG5/oAp1zjMslUuoM5PsHsybKG0YvtgQWe0PzVTr1BrRfVmsn9YP+fJOZcRnAzEbn6
	BeuwwNAmbOhBJfdptYXPhmSObybJO2HBbOyd6zM2A6H11omDItrO34DIJMkBNi1qdgwy1aSfXaG
	CUmVfRvLB5SuKDHBX6a8W23LoKSu40yI0HgOv0wOJr6h/T9a241pz19HwngaC7I7qkBWkjVZwGC
	xoXqB+OH41NMjRPPx+560g4IrgMlBssqezdvb5JCk38T5oD+qGu6o1rTc/vhtopr4xrrFC0JFRA
	XZ849b55hPNphvrboaCMIU1PzBysaAr0Rf2rL0lLGUyl3kv4sXeGMcn1rrTBAvguicJg==
X-Received: by 2002:a05:600c:a12:b0:483:badb:618f with SMTP id 5b1f17b1804b1-48526966b07mr244053275e9.25.1773162553878;
        Tue, 10 Mar 2026 10:09:13 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 04/27] xen/riscv: rework G-stage mode handling
Date: Tue, 10 Mar 2026 18:08:37 +0100
Message-ID: <2c8f1ea25b8d3ec78b00510fbe604a87e759e194.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Rework G-stage mode handling to make the selected mode descriptor reusable
outside of p2m initialization.

As max_gstage_mode is going to be reused by code that creates CPU nodes for
guest domains, not only max_gstage_mode->mode but also max_gstage_mode->name
is required. To support this, make max_gstage_mode a global pointer to one of
the entries in a global modes[] array, and remove get_max_supported_mode().

Update struct p2m_domain to store a pointer to a mode descriptor instead of
embedding the structure directly.

Refactor the modes[] array so that mode->name contains only the MMU scheme
name (without the "x4" suffix), as this value is reused when filling the
maximum MMU type passed to the guest. According to DT bindings [1], the MMU
type must not include the "x4" suffix. Use "none" for the Bare mode to match
the DT binding requirements.

Adjust modes[]->paging_levels to represent the maximum paging level rather
than the total number of levels. This ensures that P2M_ROOT_LEVEL() and its
users behave correctly without relying on hardcoded p2m mode values.

Finally, drop __initconst from the modes[] declaration, as the array is
referenced via p2m->mode and max_gstage_mode beyond the init stage.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/riscv/cpus.yaml?h=v6.19-rc3#n82

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/include/asm/p2m.h |  7 ++--
 xen/arch/riscv/p2m.c             | 60 +++++++++++++-------------------
 xen/arch/riscv/vmid.c            |  2 +-
 3 files changed, 30 insertions(+), 39 deletions(-)

diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index c6d846b96fb4..4441c0400b83 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -13,7 +13,7 @@
 
 #define P2M_ROOT_ORDER  (ilog2(GSTAGE_ROOT_PAGE_TABLE_SIZE) - PAGE_SHIFT)
 #define P2M_ROOT_PAGES  BIT(P2M_ROOT_ORDER, U)
-#define P2M_ROOT_LEVEL(p2m) ((p2m)->mode.paging_levels)
+#define P2M_ROOT_LEVEL(p2m) ((p2m)->mode->paging_levels)
 
 /*
  * According to the RISC-V spec:
@@ -58,6 +58,8 @@ struct gstage_mode_desc {
     char name[8];
 };
 
+extern const struct gstage_mode_desc *max_gstage_mode;
+
 /* Per-p2m-table state */
 struct p2m_domain {
     /*
@@ -71,7 +73,7 @@ struct p2m_domain {
     /* The root of the p2m tree. May be concatenated */
     struct page_info *root;
 
-    struct gstage_mode_desc mode;
+    const struct gstage_mode_desc *mode;
 
     /* Back pointer to domain */
     struct domain *domain;
@@ -218,7 +220,6 @@ 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);
 
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 886e06196ba2..dce1eb205ec9 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -45,18 +45,32 @@ struct p2m_pte_ctx {
     unsigned int level;          /* Paging level at which the PTE resides. */
 };
 
-static struct gstage_mode_desc __ro_after_init max_gstage_mode = {
-    .mode = HGATP_MODE_OFF,
-    .paging_levels = 0,
-    .name = "Bare",
-};
-
 /*
  * Set to the maximum configured support for IPA bits, so the number of IPA bits can be
  * restricted by external entity (e.g. IOMMU).
  */
 unsigned int __read_mostly p2m_ipa_bits = PADDR_BITS;
 
+static const struct gstage_mode_desc modes[] = {
+    /*
+     * Based on the RISC-V spec:
+     *   Bare mode is always supported, regardless of SXLEN.
+     *   When SXLEN=32, the only other valid setting for MODE is Sv32.
+     *   When SXLEN=64, three paged virtual-memory schemes are defined:
+     *   Sv39, Sv48, and Sv57.
+     */
+    [0] = { HGATP_MODE_OFF,    0, "none" },
+#ifdef CONFIG_RISCV_32
+    [1] = { HGATP_MODE_SV32X4, 1, "sv32" }
+#else
+    [2] = { HGATP_MODE_SV39X4, 2, "sv39" },
+    [3] = { HGATP_MODE_SV48X4, 3, "sv48" },
+    [4] = { HGATP_MODE_SV57X4, 4, "sv57" },
+#endif
+};
+
+const struct gstage_mode_desc * __ro_after_init max_gstage_mode = &modes[0];
+
 static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg);
 
 static inline void p2m_free_metadata_page(struct p2m_domain *p2m,
@@ -69,11 +83,6 @@ static inline void p2m_free_metadata_page(struct p2m_domain *p2m,
     }
 }
 
-unsigned char get_max_supported_mode(void)
-{
-    return max_gstage_mode.mode;
-}
-
 /*
  * If anything is changed here, it may also require updates to
  * p2m_{get,set}_type().
@@ -154,23 +163,6 @@ static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
 
 static void __init gstage_mode_detect(void)
 {
-    static const struct gstage_mode_desc modes[] __initconst = {
-        /*
-         * Based on the RISC-V spec:
-         *   Bare mode is always supported, regardless of SXLEN.
-         *   When SXLEN=32, the only other valid setting for MODE is Sv32.
-         *   When SXLEN=64, three paged virtual-memory schemes are defined:
-         *   Sv39, Sv48, and Sv57.
-         */
-#ifdef CONFIG_RISCV_32
-        { HGATP_MODE_SV32X4, 2, "Sv32x4" }
-#else
-        { HGATP_MODE_SV39X4, 3, "Sv39x4" },
-        { HGATP_MODE_SV48X4, 4, "Sv48x4" },
-        { HGATP_MODE_SV57X4, 5, "Sv57x4" },
-#endif
-    };
-
     for ( unsigned int mode_idx = ARRAY_SIZE(modes); mode_idx-- > 0; )
     {
         unsigned long mode = modes[mode_idx].mode;
@@ -179,16 +171,16 @@ static void __init gstage_mode_detect(void)
 
         if ( MASK_EXTR(csr_read(CSR_HGATP), HGATP_MODE_MASK) == mode )
         {
-            max_gstage_mode = modes[mode_idx];
+            max_gstage_mode = &modes[mode_idx];
 
             break;
         }
     }
 
-    if ( max_gstage_mode.mode == HGATP_MODE_OFF )
+    if ( max_gstage_mode->mode == HGATP_MODE_OFF )
         panic("Xen expects that G-stage won't be Bare mode\n");
 
-    printk("Max supported G-stage mode is %s\n", max_gstage_mode.name);
+    printk("Max supported G-stage mode is %sx4\n", max_gstage_mode->name);
 
     csr_write(CSR_HGATP, 0);
 
@@ -289,7 +281,7 @@ static void clear_and_clean_page(struct page_info *page, bool clean_dcache)
 unsigned long construct_hgatp(const struct p2m_domain *p2m, uint16_t vmid)
 {
     return MASK_INSR(mfn_x(page_to_mfn(p2m->root)), HGATP_PPN_MASK) |
-           MASK_INSR(p2m->mode.mode, HGATP_MODE_MASK) |
+           MASK_INSR(p2m->mode->mode, HGATP_MODE_MASK) |
            MASK_INSR(vmid, HGATP_VMID_MASK);
 }
 
@@ -369,9 +361,7 @@ int p2m_init(struct domain *d)
 #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");
+    p2m->mode = &modes[2];
 
     return 0;
 }
diff --git a/xen/arch/riscv/vmid.c b/xen/arch/riscv/vmid.c
index 8fbcd500f24d..11c7e9d6d6c8 100644
--- a/xen/arch/riscv/vmid.c
+++ b/xen/arch/riscv/vmid.c
@@ -52,7 +52,7 @@ static DEFINE_PER_CPU(struct vmid_data, vmid_data);
 static unsigned int vmidlen_detect(void)
 {
     unsigned int vmid_bits;
-    unsigned char gstage_mode = get_max_supported_mode();
+    unsigned char gstage_mode = max_gstage_mode->mode;
 
     /*
      * According to the RISC-V Privileged Architecture Spec:
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:09:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:09:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250388.1547891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00a6-0002Wy-UO; Tue, 10 Mar 2026 17:09:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250388.1547891; Tue, 10 Mar 2026 17:09:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00a6-0002Wi-RD; Tue, 10 Mar 2026 17:09:18 +0000
Received: by outflank-mailman (input) for mailman id 1250388;
 Tue, 10 Mar 2026 17:09:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00a5-0001QA-DA
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:17 +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 de296016-1ca3-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 18:09:15 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4852e9ca034so34282465e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:15 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:14 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: de296016-1ca3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162555; x=1773767355; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=F37HFkhRbnNKMwdsdySIIUyxwC6WRGnT9uYuIwl9b5U=;
        b=BQC/eGi62ImYEG6jyp1sk7rfyLMl1c+jlrrDijPte6RZOeiV6ty0CH5C67cGie0P7v
         hcW/eYDNFWtSZBxZBecbt75gRfF6PnQlgJRSGzN7a5leJFNrMvs1GxMZv8+eqIJjY+4w
         ck0H8s5UguQTmw32G49tEJGiaQ6/il7alxiANHrZ+duSh6l8lMLQ5Vq9jMdjm8+9djiI
         Q6kSx6AfgnGQXtQAVV7iWMMxSRJgkgY9PXh9ZFXdtvm4MhzCZqI05SP1M9le+QRJdpk7
         US2iaCdzuVxDEKfLzsMI6+4P7O053U0fV6pHeFflsmRsH/FVUohVsfBLDc+l9suu2/gC
         Cyjg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162555; x=1773767355;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=F37HFkhRbnNKMwdsdySIIUyxwC6WRGnT9uYuIwl9b5U=;
        b=L+sCK/pY7zBWrFeULSBsucdxRnZyuBaVLnB9Ic2gzd4RlInBeNKEhAwPqNj3VUQe7A
         r9LM6U/ykaVSqqQwSnqZLCVfoT9P80Sb/91vyR3cCX/CtwCMZXxIcvDC70P1Cfqg8G52
         jDuVR49tPXQK5uri0WFXEm3n2kbiDOt43n+FawI1qCs0tTJrD2oTh9NOXe0t2+CsKasV
         ZR5InQkGwNaeBlkP/NvMPzvLGaYOZu5+OMv+xW6mriL+j4QSO2yAvWkfsuKqvI2qIu/X
         3KHeAfio5IRG8LqGuXBB+dWQOTnAJwAfTdTK0fEdCGkINdHwtJU5i2lit5mgeMYqCqhS
         YbtQ==
X-Gm-Message-State: AOJu0YwRY+qy9MTyF3loIENSdUS5f4vhnvXqvB/iMt5l0vcfGHZ4kNPl
	25oN52dwENnsQyHFoBFRADclJUKCQT3gY1cPSCFV7LJeSqE1DWzUqh7i/qyKcV33
X-Gm-Gg: ATEYQzzY16nUmn1/Lv3Eg/mMC4mzsxYjKB2AW6zijlaBghD36yUR7mLZa2gLxKS7z/J
	P0IF+0mOPj96oSoPMdnkbbUEohf0CE8XNLLXDitk1X5TYozZvfJ1y8pkq2nvAcz7ipY0F0dUxR0
	1PkCdVVc6ZpVDbPZ0P+brQQ4dxtlHeHb4gyhZjF8LV5y9T1gBpLzggMoR+AdZArfCYF5Ap2Tb/8
	Kbp9HQ91aQXJGicoxK5Ciifn4J67T6y3dpYni7QB7dDyVRcD9n0RWg9TAVxIVVCxfaILtGiE4Hw
	qdB/sdZdbKM2na2I3YVLeiDAYv9uqsE+rovg5TXZooFQ95HQUjZg771UKr3xqKxCsaUQNFRvVra
	MlWMOYnshwB4PFGgdvhOAecKre3YNKOzlsetLeh7PEBvSvj3DJQmHoviV+zbFmOSpljN/MToAIe
	cd+6zQCo+JPuu6K8lZPEChenesoMylSeDIIH7qhZEd325mPfdW7jqkbbxCs4NJ/RM7lQ==
X-Received: by 2002:a05:600c:3b83:b0:485:35d3:ce57 with SMTP id 5b1f17b1804b1-48535d3cf0cmr190710405e9.34.1773162554952;
        Tue, 10 Mar 2026 10:09:14 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 05/27] xen/riscv: introduce guest riscv,isa string
Date: Tue, 10 Mar 2026 18:08:38 +0100
Message-ID: <007c0a0243ac7ff1d1ab3faa4ebcdd6fcd14e485.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce generation of the riscv,isa string passed to the guest via the
Device Tree riscv,isa property.

The following changes are introduced:

- According to the RISC-V privileged specification, M-mode software controls
  the XLEN value used by S-mode and U-mode. For RV64 harts, the SXL and UXL
  fields of the mstatus register are WARL fields that define the XLEN for
  S-mode and U-mode.

  The XLEN value is provided by M-mode software (OpenSBI in the case of Xen)
  via the riscv,isa DT property. Introduce and initialize an xlen variable
  when parsing the host riscv,isa string in riscv_isa_parse_string().

- Introduce the guest_isa_str variable to store the riscv,isa string
  generated for a guest domain during riscv,isa property parsing. Update
  match_isa_ext() to populate guest_isa_str accordingly.

- Introduce guest_unsupp_bmp and guest_unsupp_exts[] to filter out ISA
  extensions that should not be exposed to guests. For example, FPU-related
  extensions are currently not supported for guests (at the moment) and are
  therefore removed from the guest riscv,isa string.

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

diff --git a/xen/arch/riscv/cpufeature.c b/xen/arch/riscv/cpufeature.c
index 987d36dc7eee..d7e483603dbe 100644
--- a/xen/arch/riscv/cpufeature.c
+++ b/xen/arch/riscv/cpufeature.c
@@ -38,6 +38,8 @@ struct riscv_isa_ext_data {
 /* Host ISA bitmap */
 static __ro_after_init DECLARE_BITMAP(riscv_isa, RISCV_ISA_EXT_MAX);
 
+static __ro_after_init unsigned int xlen;
+
 static int __init dt_get_cpuid_from_node(const struct dt_device_node *cpu,
                                          unsigned long *dt_cpuid)
 {
@@ -160,6 +162,19 @@ static const struct riscv_isa_ext_data __initconst required_extensions[] = {
     RISCV_ISA_EXT_DATA(svpbmt),
 };
 
+static const unsigned int __initconst guest_unsupp_exts[] = {
+    RISCV_ISA_EXT_f,
+    RISCV_ISA_EXT_d,
+    RISCV_ISA_EXT_h,
+    RISCV_ISA_EXT_q,
+    RISCV_ISA_EXT_v,
+};
+
+static __ro_after_init DECLARE_BITMAP(guest_unsupp_bmp, RISCV_ISA_EXT_MAX);
+
+#define MAX_GUEST_ISA_STR_LEN 256
+char guest_isa_str[MAX_GUEST_ISA_STR_LEN];
+
 static bool __init is_lowercase_extension_name(const char *str)
 {
     /*
@@ -193,6 +208,15 @@ static void __init match_isa_ext(const char *name, const char *name_end,
              !memcmp(name, ext->name, name_end - name) )
         {
             __set_bit(ext->id, bitmap);
+
+            if ( riscv_isa_extension_available(guest_unsupp_bmp, ext->id) )
+                break;
+
+            if ( ext->id >= RISCV_ISA_EXT_BASE )
+                safe_strcat(guest_isa_str, "_");
+
+            safe_strcat(guest_isa_str, ext->name);
+
             break;
         }
     }
@@ -207,13 +231,17 @@ static int __init riscv_isa_parse_string(const char *isa,
 #if defined(CONFIG_RISCV_32)
     if ( isa[2] != '3' && isa[3] != '2' )
         return -EINVAL;
+    xlen = 32;
 #elif defined(CONFIG_RISCV_64)
     if ( isa[2] != '6' && isa[3] != '4' )
         return -EINVAL;
+    xlen = 64;
 #else
 # error "unsupported RISC-V bitness"
 #endif
 
+    snprintf(guest_isa_str, sizeof(guest_isa_str), "rv%d", xlen);
+
     /*
      * In unpriv. specification (*_20240411) is mentioned the following:
      * (1) A RISC-V ISA is defined as a base integer ISA, which must be
@@ -487,6 +515,11 @@ void __init riscv_fill_hwcap(void)
     bool all_extns_available = true;
     struct trap_info trap;
 
+    for ( i = 0; i < ARRAY_SIZE(guest_unsupp_exts); i++ )
+    {
+        __set_bit(guest_unsupp_exts[i], guest_unsupp_bmp);
+    }
+
     riscv_fill_hwcap_from_isa_string();
 
     if ( bitmap_empty(riscv_isa, RISCV_ISA_EXT_MAX) )
diff --git a/xen/arch/riscv/include/asm/cpufeature.h b/xen/arch/riscv/include/asm/cpufeature.h
index ef02a3e26d2c..aabbbf0c2cc3 100644
--- a/xen/arch/riscv/include/asm/cpufeature.h
+++ b/xen/arch/riscv/include/asm/cpufeature.h
@@ -43,6 +43,8 @@ enum riscv_isa_ext_id {
     RISCV_ISA_EXT_MAX
 };
 
+extern char guest_isa_str[];
+
 void riscv_fill_hwcap(void);
 
 bool riscv_isa_extension_available(const unsigned long *isa_bitmap,
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:09:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:09:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250386.1547864 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00a4-0001mV-FF; Tue, 10 Mar 2026 17:09:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250386.1547864; Tue, 10 Mar 2026 17:09:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00a4-0001lY-AG; Tue, 10 Mar 2026 17:09:16 +0000
Received: by outflank-mailman (input) for mailman id 1250386;
 Tue, 10 Mar 2026 17:09: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=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00a2-0001Q4-Hp
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:14 +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 dcbe1f1b-1ca3-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 18:09:13 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4852a9c6309so37120805e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:13 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dcbe1f1b-1ca3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162553; x=1773767353; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZTdWdjcrO6LbYgQhxDIWi1k5AvTcDOv59FKJtZgzw4Y=;
        b=Pq+32YmSwW69cDEgpXSzatnouzEHbw6wKVbf0WjLKqmyXj1S97/e+R66ZR7/lfA9uF
         /gqm5n26AS7l9jrWRXCFCMjebCvDBa+s+yzHDh72tmVkwf+BVWH5vejURnXP2rf8DEw8
         HdMUvVwCcFbQxzNJu2piHTqjWgsK9oI3RLgkM04vTUxfPUFfpp5+CUFFOuu4r73TYHAd
         JTuBIgnDHxWgaVMuUovHwHgocV8duEJS6vvU4kXfFj6zOE3pvqAGh955mjVDqg+GyrTz
         J3sVEWROd2oodR0vM0dLOGE3wnrJo/58ctoZbWSGe+pydI48W2W9c7gaHlmmLk89CjbE
         OEDQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162553; x=1773767353;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ZTdWdjcrO6LbYgQhxDIWi1k5AvTcDOv59FKJtZgzw4Y=;
        b=YXaNUCxWo5igCJ1u1SqSz37yOJDzZf6hZfbXqZuzHExJiTqZhVNnvqQlIxbVMbaYZw
         YyM/MDuaVEik9FDlCU3iHr33XyoSIMEHy8t+YANM5shnB2ZUoP2AO53DZRtFSuMAkt6M
         gZHMgrv3cuOZDrDGNyh6g6Z+F0w2DogQ+3YwXhYOMlyjEa8a0StB6G8x6cqFHwgDeRhX
         wKY/ISNk/Y5dvaPP7grZmJOrHVTr63xnlZbiA1CEFD/Rx7bT7HrZFGPjaY2ryLaBTj0k
         LrVqC8oNn3r9NgkSBJ8g8m+bBVO+4q6cRInWVP/VUiY5V3qy6EBQOLdptyJJvf0gmMFg
         BDLA==
X-Gm-Message-State: AOJu0Yx0tPC21I/FSMRWVkxTKDKq0Nyn+LlkGLzJTDCqVfgJ66uZy5eu
	9tq0bX69KeByqpVwDmB+bNcKd7cM4tfrnAxyOpIXFefrp62xReo+72oJvRP/FZC7
X-Gm-Gg: ATEYQzwlU/BvtplZp3dBlRD9Cq1D1iSOZ0rE1ghQDjKTxorm+0yhpiM6/J9H+UsjjIV
	0hKmI0HGe5KjNjsrV2QFSIB9gJakkg8wcPsFhNxqZdKkBmnWx5ErhxRDCSSet1TiGtOL/jASqa7
	eVVEShUMSu+eKAwWeNyqSneuzRtn32clD3Ozde/H9lzguiYDt8OMIxy9DnzhXNTRf7UFIRFC7oS
	+z1QUNmb9YqeUbzPJF048wNREyApszLKq0K6K3//DIYMrGHr8yo58pLqn/US1P1iWvjYcxRg7xS
	Lg1J7iTT+x7YhdQg6tKiEbIZMZj7YqT/VbACBLaG2DbvnLvVDDoYDLczDe61I8YF5lY9OaIS2io
	6x+pnXaExokpXWju+C3A+XP1LJfk4NFs/1SiU1mR7XO38CChfC4At5Tb7GkfC0BnwQjzcliuEeY
	of+SKD4z/RvNyjkvb8cLer67OWp+ETQCQpRT39dpX5Ctx3RoL4MVfOBH8aW4rXklNP2A==
X-Received: by 2002:a05:600c:8b01:b0:477:561f:6fc8 with SMTP id 5b1f17b1804b1-485269195afmr262309165e9.5.1773162552633;
        Tue, 10 Mar 2026 10:09:12 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 03/27] xen/riscv: implement prerequisites for domain_create()
Date: Tue, 10 Mar 2026 18:08:36 +0100
Message-ID: <ccd6d21b224b478c88ca5f2fdd2d1dd507671510.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

arch_domain_create() and arch_sanitise_domain_config() are prerequisites for
domain_create().

arch_sanitise_domain_config() currently returns 0, as there is no specific
work required at this stage.

arch_domain_create() performs basic initialization, such as setting up the P2M
and initializing the domain's virtual timer.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/domain.c               | 27 +++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/domain.h   |  3 +++
 xen/arch/riscv/stubs.c                |  9 +--------
 xen/include/public/device_tree_defs.h |  1 +
 4 files changed, 32 insertions(+), 8 deletions(-)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 7e3070101714..515735b32e30 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -288,6 +288,33 @@ void sync_vcpu_execstate(struct vcpu *v)
     /* Nothing to do -- no lazy switching */
 }
 
+int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
+{
+    return 0;
+}
+
+int arch_domain_create(struct domain *d,
+                       struct xen_domctl_createdomain *config,
+                       unsigned int flags)
+{
+    int rc = 0;
+
+    if ( is_idle_domain(d) )
+        return 0;
+
+    if ( (rc = p2m_init(d)) != 0)
+        goto fail;
+
+    d->arch.next_phandle = GUEST_PHANDLE_LAST + 1;
+
+    return rc;
+
+ fail:
+    d->is_dying = DOMDYING_dead;
+    arch_domain_destroy(d);
+    return rc;
+}
+
 static void __init __maybe_unused build_assertions(void)
 {
     /*
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 0caacf92b5a2..506365f199c7 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -95,6 +95,9 @@ struct arch_domain {
 #ifdef CONFIG_ARCH_PAGING_MEMPOOL
     struct paging_domain paging;
 #endif
+
+    /* Next unused device tree phandle number */
+    uint32_t next_phandle;
 };
 
 #include <xen/sched.h>
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index acbb5b9123ea..d139f8786cb5 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -101,14 +101,7 @@ void dump_pageframe_info(struct domain *d)
     BUG_ON("unimplemented");
 }
 
-int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
-{
-    BUG_ON("unimplemented");
-}
-
-int arch_domain_create(struct domain *d,
-                       struct xen_domctl_createdomain *config,
-                       unsigned int flags)
+void vcpu_switch_to_aarch64_mode(struct vcpu *v)
 {
     BUG_ON("unimplemented");
 }
diff --git a/xen/include/public/device_tree_defs.h b/xen/include/public/device_tree_defs.h
index 9e80d0499dc3..c9679cb3543c 100644
--- a/xen/include/public/device_tree_defs.h
+++ b/xen/include/public/device_tree_defs.h
@@ -14,6 +14,7 @@
  */
 #define GUEST_PHANDLE_GIC (65000)
 #define GUEST_PHANDLE_IOMMU (GUEST_PHANDLE_GIC + 1)
+#define GUEST_PHANDLE_LAST GUEST_PHANDLE_IOMMU
 
 #define GUEST_ROOT_ADDRESS_CELLS 2
 #define GUEST_ROOT_SIZE_CELLS 2
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:09:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:09:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250384.1547855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00a3-0001dh-Ua; Tue, 10 Mar 2026 17:09:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250384.1547855; Tue, 10 Mar 2026 17:09:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00a3-0001da-RD; Tue, 10 Mar 2026 17:09:15 +0000
Received: by outflank-mailman (input) for mailman id 1250384;
 Tue, 10 Mar 2026 17:09:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00a2-0001QA-0m
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:14 +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 db5603bb-1ca3-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 18:09:11 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-48334ee0aeaso107421775e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:11 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: db5603bb-1ca3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162550; x=1773767350; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mMLvC7RrPAqRfMztOqd3dBSpw1saOMdIpsVoEROSJU4=;
        b=fTY59slMZv+YgNJ0FI+XhCaJfoa2S8SsRq5ufCKrVciZ1ayTcRMxFydVtUMQK3cDk4
         GVI4OBGmfoGE7Uw568eY9pv7ru7N4GbWKBdTIh0RU67QXgSgKrhhYrFEi59TQvHZQ5qU
         kbj3FHyIkM3LXSmQYE5xn5neJ97FMVt8UTGnIG+Sf2MiZGsYVT2Zqu7eAsFKUCqSAPER
         MVAH5lG3EXGjU5jWrbJ24hk/348KRwlNoxnywua3ajmzgZbShzek/n7hddDKl9t9FsJe
         z/VUr5WcckW46OSPM/BhqqHW/XwtoSSKRVWdTix7+jugf/XwFg5PZqsohyD4+keF2jvq
         gAKg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162550; x=1773767350;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=mMLvC7RrPAqRfMztOqd3dBSpw1saOMdIpsVoEROSJU4=;
        b=X5IvfySpgqBN4Bcns1LKvve2WiPKCF9H79Lw3OAWkewzhxjcOChK6ik+qctMhyu6U1
         01aGvYoXL7oQoTSNeRRe3dHUg+DppnSV42OQeJ4JCNleIS8yPmOg/qUNWAUy9bIIJa0h
         uK+VDO53RsZlgaoPwumsNNJ9cPj3xjqQ034QZBn5sudlJo+9OzTcf12Gay02euBTcSZC
         ohVi/kIOp+WJMDVx6yNQ8uC96Jme/eIQUZPXiEMCuRpdPVgKRI/E5aQWDCfdIxoHd0Zp
         wHJkzPCX2pE7T4gzLl472XgiPzVt9ZyJ4XAWctbOlJT7LXvOSzMTtQbXJALOh6epEdku
         fr4A==
X-Gm-Message-State: AOJu0YxI/BLDISg+ecHO8vKnjkV/07dkpcQAjiSJdjLdPvxIXIcxCvju
	Q9wWq0aM9uVpWkT/AJHjsijF/ZuLFeXzus/924oTnM0oA5lva/Mwh23U3yjvAl+e
X-Gm-Gg: ATEYQzxmAPrDseGS1jvJFtrBjH9XFcJ/1NJAM/B1EnjsLdvyN0ECZMxgbxAjHsK3ZyS
	zM108ncVv4Lszs1bjU9TdClFul9P6fLx9+BUj1Lcbu4cNwYgtz4iPDf9FILpuyf6I7nmKBXSJe8
	16PaxmL2s1GkivT5CjYMQBgvXh1wcsXm6sAOFYjxDWtMdWeFQSKp3QfASjckhR5tDtJznNFcv9r
	2/zy6au2O811TWl88Pk2rbuUShwGod5Athzx7Rd/sswtsO/E3NlYsdAIaG4XK0R+g8H06P+kJgK
	uN3uiAb+7xCljqILueWT+qGZSbkXjvukJFpZ6eqJ8kthsB+UE12xVgpTJhoeaHGW/eJzvz2P6Iu
	9iZKPqJIv1sFtou/DTkqKFtdJFqI5O55rqN6/Lwb8o6wA1zdUBLRkRxkBFQpvOn5GLInCDRAi0+
	4lsfeVFm1jIz1XkBp9k2Ex9NUFibw+d77pp0ySq/7AN3b3Emjk2U07KUbQp172afeifg==
X-Received: by 2002:a05:600c:8b6d:b0:485:364e:9328 with SMTP id 5b1f17b1804b1-485364e9569mr156488245e9.16.1773162550327;
        Tue, 10 Mar 2026 10:09:10 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 01/27] xen/riscv: Implement ARCH_PAGING_MEMPOOL
Date: Tue, 10 Mar 2026 18:08:34 +0100
Message-ID: <887d914aa0ddb1884c19c9567d4633ecaf810066.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The p2m_freelist is used to allocate pages for the P2M, but to initialize
this list, domain_p2m_set_allocation() might be called.
This function is invoked in construct_domU() within the common Dom0less
code, and providing an implementation of domain_p2m_set_allocation() when
CONFIG_ARCH_PAGING_MEMPOOL=y is appropriate for RISC-V.

Additionally, implement arch_{set,get}_paging_mempool_size().
They are not used directly for now, but are required to support the
XEN_DOMCTL_{get,set}_paging_mempool_size() hypercalls.

Remove 'struct paging_domain' from RISC-V's 'struct arch_domain' when
the field is not required.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/Kconfig              |  1 +
 xen/arch/riscv/Makefile             |  2 +-
 xen/arch/riscv/include/asm/domain.h |  2 ++
 xen/arch/riscv/p2m.c                | 31 +++++++++++++++++++++++++++++
 4 files changed, 35 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index 12b337365f1f..091510380949 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -1,5 +1,6 @@
 config RISCV
 	def_bool y
+	select ARCH_PAGING_MEMPOOL
 	select DOMAIN_BUILD_HELPERS
 	select FUNCTION_ALIGNMENT_16B
 	select GENERIC_BUG_FRAME
diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 48957104e0b5..b1514f1514a2 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -10,7 +10,7 @@ obj-y += irq.o
 obj-y += kernel.o
 obj-y += mm.o
 obj-y += p2m.o
-obj-y += paging.o
+obj-$(CONFIG_ARCH_PAGING_MEMPOOL) += paging.o
 obj-y += pt.o
 obj-$(CONFIG_RISCV_64) += riscv64/
 obj-y += sbi.o
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 6c48bf13111d..0caacf92b5a2 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -92,7 +92,9 @@ struct arch_domain {
     /* Virtual MMU */
     struct p2m_domain p2m;
 
+#ifdef CONFIG_ARCH_PAGING_MEMPOOL
     struct paging_domain paging;
+#endif
 };
 
 #include <xen/sched.h>
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index fba93bce24d9..886e06196ba2 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -1568,3 +1568,34 @@ struct page_info *get_page_from_gfn(struct domain *d, unsigned long gfn,
 
     return page;
 }
+
+#ifdef CONFIG_ARCH_PAGING_MEMPOOL
+
+int arch_set_paging_mempool_size(struct domain *d, uint64_t size)
+{
+    unsigned long pages = PFN_DOWN(size);
+    bool preempted = false;
+    int rc;
+
+    if ( (size & ~PAGE_MASK) || /* Non page-sized request? */
+         pages != PFN_DOWN(size) ) /* 32-bit overflow? */
+        return -EINVAL;
+
+    spin_lock(&d->arch.paging.lock);
+    rc = p2m_set_allocation(d, pages, &preempted);
+    spin_unlock(&d->arch.paging.lock);
+
+    ASSERT(preempted == (rc == -ERESTART));
+
+    return rc;
+}
+
+/* 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.total_pages) << PAGE_SHIFT;
+
+    return 0;
+}
+
+#endif /* CONFIG_ARCH_PAGING_MEMPOOL */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:09:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:09:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250389.1547900 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00a9-0002ok-7m; Tue, 10 Mar 2026 17:09:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250389.1547900; Tue, 10 Mar 2026 17:09:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00a9-0002oO-2t; Tue, 10 Mar 2026 17:09:21 +0000
Received: by outflank-mailman (input) for mailman id 1250389;
 Tue, 10 Mar 2026 17:09: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=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00a7-0001QA-AZ
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:19 +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 df095baa-1ca3-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 18:09:17 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4838c15e3cbso119284305e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:17 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: df095baa-1ca3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162556; x=1773767356; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=B5Dqi7QE0P+NZcaNQ4Uuko5WRqJ3CVy0ngqKC6es19A=;
        b=nD53nNjwmA/lbqg4xCHcfXQrbVYhV5OqWNbt6K5tiI1lciiMxxVNBrIkCP5Qhq86PQ
         xz4tMjoen8Fch0yA33lS3NPN65kRYnV9yg3clqoaLAbFFqPIlmVGiQQqcDbvqhT7Istd
         k0BhuEdjc1LU86Mrk8wbxG2o/T7Pv9lQ/JxrOWEhAkUpriL4FUeHBvb4hIiy/7UTSr/e
         lPaknNQlGwefi3kCGFLNCmxex7eNv9JjD0WfLoSqdTcdaV8QgCWFwt8td8hDpdWOnpzq
         aOw0BpE63w7nGdb6HgzMli3QhOBPlgEZ8Vv11KWDW4oUUSX+2uWINTQXZa072E6HvqTY
         bakA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162556; x=1773767356;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=B5Dqi7QE0P+NZcaNQ4Uuko5WRqJ3CVy0ngqKC6es19A=;
        b=Qn53DSGpIPvAvjCejPB1+Jv3XqYdNUvDRHpRjGKzYMEZlcQJ/d6e1rh4XH7s+bf6jZ
         hbJWiXkBIb2cPyarJCFIh8eGkHq0sKx720vhgZHehRgSkI5CCtBHAaL50qSneNq/tpol
         XS/fxJmjuzqK0gCeecQvVL7KbLmDVfT1b/H2BEfAY1qLVuhXUD8Zg3h1Nnplrrk2nkAW
         cFsPBHg8rh9cvIxPNeLw3DIVAPq2kgYf4egY01OGiZWvfA/9to1L++X+2qGxiGvifF+z
         l1AYbK/SC9gZgdb/jPgYOhJvPtwU05ht+ar9HY2a9c/cooZCfSuKoP/UVlWX6TbuBU/+
         LL8w==
X-Gm-Message-State: AOJu0Yz4Wwi508SJb20q5EBZmfyziBBrYGZqgFDeWXTsMtfxIT7yY1Xg
	9lg8i5NNTx52qjorVXHm4nMpW785edZivoFKZxnywjHHTMaoUK7Rk5XDFfwH+WOc
X-Gm-Gg: ATEYQzztahiCkTpZWpKbUqqmkRVRxPJLPGQKl9LHil858Ki5j0MCFZ0QB0yE2gPFB61
	WiM4pqRCDoTSdOgfP6VH/z+i6cbF78tBe2bRiO9WykGVHVM2vQt+cU/3hLX0aYdpRHr5vzoYpED
	ibcG6E37ROOwzTMxQDpiF6siJbbEwY+zlt9Nab/oL8NK2j6MOhJhWrYcCoq4hEPjhtwJtY/zLlm
	Y4ajGR1bm6Cu50+yPbDQTNini2LpsRxz9WC3EW442lX2XvGYe+jZlYrapOMe/kqbauIbPF6+FEJ
	Om/89IFMRK4W2P4ecmwGlXLb1loAzqS/M+vvfT/eRNu1IltQdrl1CEK+tUlZX4+CVFd1mLezETt
	axs3TCPL4DDSqMX+2A+TVMhQQj3vPGXAUJctB7TNtqsCkxcxj2esdcawoLXd3dQeer6IRP5Jhh3
	+RdJ3WyTJIb7Gf3T3iT7R5JOnfJ5WobxMPVg8FxaQu+Uz2yn7sz6Duhrhq3YSyemsoXA==
X-Received: by 2002:a05:600c:3f0b:b0:485:3bb5:92c5 with SMTP id 5b1f17b1804b1-4853bb598e8mr120108175e9.14.1773162556236;
        Tue, 10 Mar 2026 10:09:16 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 06/27] xen/riscv: implement make_cpus_node()
Date: Tue, 10 Mar 2026 18:08:39 +0100
Message-ID: <fd64b8526a23e9d7775b9b48c5a933b0673c4fba.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement make_cpus_node() to create cpus node for a guest domain.

This function is going to be use by common dom0less code during
construction domain.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/Makefile       |   1 +
 xen/arch/riscv/domain-build.c | 108 ++++++++++++++++++++++++++++++++++
 2 files changed, 109 insertions(+)

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index b1514f1514a2..6c6c58ed1ac0 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -1,6 +1,7 @@
 obj-y += aplic.o
 obj-y += cpufeature.o
 obj-y += domain.o
+obj-y += domain-build.o
 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
 obj-y += entry.o
 obj-y += guestcopy.o
diff --git a/xen/arch/riscv/domain-build.c b/xen/arch/riscv/domain-build.c
index 0ce903a911ae..633f02e42c5e 100644
--- a/xen/arch/riscv/domain-build.c
+++ b/xen/arch/riscv/domain-build.c
@@ -3,8 +3,10 @@
 #include <xen/fdt-domain-build.h>
 #include <xen/fdt-kernel.h>
 #include <xen/init.h>
+#include <xen/libfdt/libfdt.h>
 #include <xen/sched.h>
 
+#include <asm/cpufeature.h>
 #include <asm/current.h>
 #include <asm/guest_access.h>
 
@@ -44,3 +46,109 @@ int __init construct_domain(struct domain *d, struct kernel_info *kinfo)
 
     return 0;
 }
+
+int __init make_cpus_node(const struct domain *d, void *fdt)
+{
+    int res;
+    const struct dt_device_node *cpus = dt_find_node_by_path("/cpus");
+    unsigned int cpu;
+    u32 timebase_frequency;
+    bool frequency_valid;
+    uint32_t *next_phandle = &((struct domain *)d)->arch.next_phandle;
+
+    dt_dprintk("Create cpus node\n");
+
+    if ( !cpus )
+    {
+        dprintk(XENLOG_ERR, "Missing /cpus node in the device tree?\n");
+        return -ENOENT;
+    }
+
+    frequency_valid = dt_property_read_u32(cpus, "timebase-frequency",
+                                           &timebase_frequency);
+
+    res = fdt_begin_node(fdt, "cpus");
+    if ( res )
+        return res;
+
+    res = fdt_property_cell(fdt, "#address-cells", 1);
+    if ( res )
+        return res;
+
+    res = fdt_property_cell(fdt, "#size-cells", 0);
+    if ( res )
+        return res;
+
+    if ( frequency_valid )
+        res = fdt_property_cell(fdt, "timebase-frequency", timebase_frequency);
+
+    for ( cpu = 0; cpu < d->max_vcpus; cpu++ )
+    {
+        char buf[64];
+        uint32_t reg = cpu_to_fdt32(cpu);
+
+        snprintf(buf, sizeof(buf), "cpu@%u", cpu);
+        res = fdt_begin_node(fdt, buf);
+        if ( res )
+            return res;
+
+        res = fdt_property(fdt, "reg", &reg, sizeof(reg));
+        if ( res )
+            return res;
+
+        res = fdt_property_string(fdt, "status", "okay");
+        if ( res )
+            return res;
+
+        res = fdt_property_string(fdt, "compatible", "riscv");
+        if ( res )
+            return res;
+
+        BUILD_BUG_ON((sizeof("riscv,") + sizeof_field(struct gstage_mode_desc, name) + 1) >= sizeof(buf));
+        snprintf(buf, sizeof(buf), "riscv,%s", max_gstage_mode->name);
+        res = fdt_property_string(fdt, "mmu-type", buf);
+        if ( res )
+            return res;
+
+        res = fdt_property_string(fdt, "riscv,isa", guest_isa_str);
+        if ( res )
+            return res;
+
+        res = fdt_property_string(fdt, "device_type", "cpu");
+        if ( res )
+            return res;
+
+        res = fdt_begin_node(fdt, "interrupt-controller");
+        if ( res )
+            return res;
+
+        res = fdt_property_string(fdt, "compatible", "riscv,cpu-intc");
+        if ( res )
+            return res;
+
+        res = fdt_property_cell(fdt, "#interrupt-cells", 1);
+        if ( res )
+            return res;
+
+        res = fdt_property(fdt, "interrupt-controller", NULL, 0);
+        if ( res )
+            return res;
+
+        res = fdt_property_u32(fdt, "phandle", (*next_phandle)++);
+        if ( res )
+            return res;
+
+        /* end of interrupt-controller */
+        res = fdt_end_node(fdt);
+        if ( res )
+            return res;
+
+        res = fdt_end_node(fdt);
+        if ( res )
+            return res;
+    }
+
+    res = fdt_end_node(fdt);
+
+    return res;
+}
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:09:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:09:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250390.1547905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00a9-0002s0-Ia; Tue, 10 Mar 2026 17:09:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250390.1547905; Tue, 10 Mar 2026 17:09:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00a9-0002rC-Ci; Tue, 10 Mar 2026 17:09:21 +0000
Received: by outflank-mailman (input) for mailman id 1250390;
 Tue, 10 Mar 2026 17:09: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=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00a7-0001QA-Ml
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:19 +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 df90eba6-1ca3-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 18:09:18 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4853c1ca73aso20324425e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:18 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:17 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: df90eba6-1ca3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162557; x=1773767357; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WI2GmymuZn5ZjF6sh0Pndyef5xHCptAQOPGu6/MNHsM=;
        b=bZDa2dD6Q+j7MrXH/ZZyIvTY0Nnz7lWJ9KKfC4nl98XtkpGVoRyqi5c1knYFbNhUdk
         wMIDA0aruN5LBiTmanT8k24o7lLTdRdjLb362aVbt/IaJt3yFYvqLjBhaHw5o6qLKsoD
         sdckNLKjOCV+vQLf9UIqsC0KYRGzY2Sy8UY/6L6XKyDRyj6d/yzVb9dC/aV97OLX8enT
         go6lRkUqokO7gkWQmLYlXSTEGAljMDCzYXGCrogaPokidV5SOHNBWGWgwT5yU8Pg97/t
         9fFjvU5IePrf6hDvFVcbtk+xrYy4/jl13QzrNxmO/6IwqOSfN8LkcD8pH/vtAu/7R7Xd
         R75A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162557; x=1773767357;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=WI2GmymuZn5ZjF6sh0Pndyef5xHCptAQOPGu6/MNHsM=;
        b=XqqG+LAPwWLReFRUWv0hZ91Vy3TnYzCtYMAmLDEIUqlEiEEp1xAOYXPDpQGdlqtCDb
         epJOYwEQ5Kg7+rPk+t0oCaV6mlhDtY6IaOjftEQmcn0RXhtevr32Fqx/77vo2D7P8ruB
         ebbdfp5koFDBV9TZkVKTWXrC7tUkp/0gQ1XYzcL4mzjr2Mhy23z4kOlJexUvEvWFNYRM
         nSYZNS/Fwn+ft0vkx9D/QwEprTUKjyoKwi19RsC0dv0Uh+lVEQhxNXxLXfIs5/PL+uiv
         DPYwVag7lOZjLu9eE68XnBxRhAboqRdo1KZBglbwHzMXCOw/Q2CHUcwlvKqrcT82NbYR
         CN7w==
X-Gm-Message-State: AOJu0YwkZwVuisl22YCF+slQdADHQ3RUx3UfBqsC0+Cgy+dZJWLaNs3N
	L+p2TraKga5q5JR54xefxtrboSE+mZrtahNeAKcTEzKdC9HbJ9jKNnv03nlxLpxk
X-Gm-Gg: ATEYQzwkJnMYF+6qhbSzJODuEM6p/TxoBlrso8hmuNNGRy7upSYqvURl6Pc2DwrL1Ru
	IiaBqAGHr0KdSOEJ9Gk4ij2H6UJQyE1ygt55FM4GWiiTMMFgYhSzuH/FtYfLf0H5Xq2Af7Nvdtz
	+nMSP/c4Ac/kWD0D2TT3ElNvcp8PbKQ6asBYzks/M7JVxZu9VJHpV3Eh13L2LOanxuhXDcfnpxU
	l4PJHWPZhAtHVj+fSYcDWvbFYJfw0ctdqFvXHR58EQJ2oSTjdyWObdEOUH1+q6VrUwaRs0YyJVp
	4Bcsb84SDGlpg8jwh8TI+71c2MUMcwMbNaukO711KYHRWGY4hbRusHjsqdQkZGrCaBtnkCUuBWb
	hTZjA+wrTZlR4MjUGH1uBPnBkaffC+CLGxcHgTuTkRzOZoscrc1JRRzCoKvg+4SdDmsKex2pSMQ
	2zTsDsmC8hCmG/CJjxxIfH/8YeWR5W8r/d/prLfvpwrmFF4LE2AX+G/ckvhJxEA7UP1g==
X-Received: by 2002:a05:600d:f:b0:485:345b:ccb1 with SMTP id 5b1f17b1804b1-485345bce86mr165965485e9.27.1773162557447;
        Tue, 10 Mar 2026 10:09:17 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 07/27] xen/riscv: implement make_timer_node()
Date: Tue, 10 Mar 2026 18:08:40 +0100
Message-ID: <f1b759f4fa43f3a01ede0f99f21c3ac59b61f438.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The make_timer_node() function is implemented to return 0,
as RISC-V does not require the creation of a timer node.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/domain-build.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/xen/arch/riscv/domain-build.c b/xen/arch/riscv/domain-build.c
index 633f02e42c5e..ae26faed09ed 100644
--- a/xen/arch/riscv/domain-build.c
+++ b/xen/arch/riscv/domain-build.c
@@ -3,6 +3,7 @@
 #include <xen/fdt-domain-build.h>
 #include <xen/fdt-kernel.h>
 #include <xen/init.h>
+#include <xen/fdt-kernel.h>
 #include <xen/libfdt/libfdt.h>
 #include <xen/sched.h>
 
@@ -152,3 +153,10 @@ int __init make_cpus_node(const struct domain *d, void *fdt)
 
     return res;
 }
+
+int __init make_timer_node(const struct kernel_info *kinfo)
+{
+    /* There is no need for timer node for RISC-V. */
+
+    return 0;
+}
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:09:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:09:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250391.1547910 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00aA-00032U-7x; Tue, 10 Mar 2026 17:09:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250391.1547910; Tue, 10 Mar 2026 17: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 1w00aA-000300-2G; Tue, 10 Mar 2026 17:09:22 +0000
Received: by outflank-mailman (input) for mailman id 1250391;
 Tue, 10 Mar 2026 17:09: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=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00a8-0001Q4-Af
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:20 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e0890da2-1ca3-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 18:09:19 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4853510b4f3so41185485e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:19 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:18 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e0890da2-1ca3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162559; x=1773767359; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nhr/YFfUk73fJbCvGKZFP0P0mCzExALFTOhZRjG1AeU=;
        b=ZFB8LKD577w5idg3ca7RIHLuzqpe2Fu47tUN54QV/8l+a3/zswFtxLLB+X9pw7D70S
         4kPdDAGUl6qYCf5lOijzS+sXCPjMYio140HCkdMOVoKkyqJEcw1RMxCMITOvpG2e1gzs
         cwUNyOq5UYaRnjNHZ3WoQObixO/L4pezOHHPrDwAXPid03gO07yqG2xbH9T0O4ILYRpi
         PQP8E0dPXzQWRKGnHlW4h5ZpE8Z1aCSCQZ7q8X/3k0DRioJ999zuS6GEnWT3K31Xy6Ou
         4qPG+l80rJj3hTxPuNkINB0e4FcAX6KiimVdnHlRaAtWgjAYu/eaWV3OQD+phCoEH+Qq
         /qEw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162559; x=1773767359;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=nhr/YFfUk73fJbCvGKZFP0P0mCzExALFTOhZRjG1AeU=;
        b=SRtqobsqq4ggtMGsYnwTFEI2sP8OFabO9IMc6UiJo6/jFQRdVU55dXNL/7MB7c/uGt
         7+d0rwV9JmL2DzOKvSIDomaTX4TXH6YKYJ8g+j2C6+Z3Ic9Q491spU1LKJun6BgcW7tr
         FsObgh5fr3ICfXBnLISHrZqsKWw9Kq5Mb7ce+5xb9VXO3MhawB4PzHrE0wIfdrGa6ng2
         qu1JM52ea+B2LWbd8iKGw+zWZ+QcwTBcylMW2LKIJcawKssnSPPP0qBFvNKvIsK/oRWt
         tlwSzdl7DI4LndijfgqwmVgH/UPqfvoaqSWm3PpZSNf3WTk3VST8WJLxWHihATjLsBOi
         oyzQ==
X-Gm-Message-State: AOJu0YwMN1IR8Rx3cs4SkliJPpq5z794UqsCOn0s8gWNaDYCJq1+n/Jx
	oSavh44WKPWBsJz3b/q5/etEdXNTz5CRk2KsC80GPXIh8XY/hk0slgElaioABJhJ
X-Gm-Gg: ATEYQzwTJdFqqZUyxY1CpAZP+OOj2DXV3O1qXW2Ot8qr+T9ZNgk0UK19WrhkMMspw7g
	cNn+99Ilp5ax1cJFrtG8CHw+0a3JPSCKutyMv9ZUT/A1ab1oEVZ6aQZpQCLhvhErSWepTX4U1xF
	hlr2MpxddjImo0IcjjXok0agmijOJt14lOtwwZw8dFXED/5Fsm6B7AuKe7c8j7lsyLfkZnrk19G
	xwUj8exfS6GHzzZxSaBp99rIbsu9fiT1aS+ff8yYrBbwE9fqB/j+hE+WCNUGYizp9lJWnkg+gCg
	uLdlaOjLLAh+C/KQfT6NoIdFl/AgZIyFytAH2aXwQxqKjEG/eIc/WzUGaJA3NZ+NE9LfhNlfK5c
	QizKS9i4BxSGIOOfcOhlOYa7zXzh1K/WZyiT6rUotXzNv6CwBhzdR4zAiB440MUkWO9MzeEot5Z
	VEiLUzp+/8vQzw2TWLkZI9q9U8EmgXqx5MzlcakbESidRD3OmKxJOYp60ubdWDA+UU7w==
X-Received: by 2002:a05:600c:1e2a:b0:47e:e57d:404 with SMTP id 5b1f17b1804b1-485269582efmr253670135e9.16.1773162558685;
        Tue, 10 Mar 2026 10:09:18 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 08/27] xen/riscv: implement make_arch_nodes()
Date: Tue, 10 Mar 2026 18:08:41 +0100
Message-ID: <9c97b4bc6fb8a5e556c38cfe7e34de0eb3cbbbb0.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

No RISC-V-specific nodes need to be created at the moment,
so make_arch_nodes() is implemented to simply return 0.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/Makefile         |  1 +
 xen/arch/riscv/dom0less-build.c | 11 +++++++++++
 2 files changed, 12 insertions(+)
 create mode 100644 xen/arch/riscv/dom0less-build.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 6c6c58ed1ac0..fb04cc5a56b2 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -1,5 +1,6 @@
 obj-y += aplic.o
 obj-y += cpufeature.o
+obj-y += dom0less-build.o
 obj-y += domain.o
 obj-y += domain-build.o
 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
diff --git a/xen/arch/riscv/dom0less-build.c b/xen/arch/riscv/dom0less-build.c
new file mode 100644
index 000000000000..10863cffc96b
--- /dev/null
+++ b/xen/arch/riscv/dom0less-build.c
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/fdt-kernel.h>
+#include <xen/init.h>
+
+int __init make_arch_nodes(struct kernel_info *kinfo)
+{
+    /* No RISC-V specific nodes need to be made, at the moment. */
+
+    return 0;
+}
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:09:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:09:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250392.1547915 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00aA-00039u-Qn; Tue, 10 Mar 2026 17:09:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250392.1547915; Tue, 10 Mar 2026 17: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 1w00aA-00038q-J7; Tue, 10 Mar 2026 17:09:22 +0000
Received: by outflank-mailman (input) for mailman id 1250392;
 Tue, 10 Mar 2026 17: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=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00a9-0001Q4-Gb
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:21 +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 e11448e7-1ca3-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 18:09:20 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-485392de558so15013885e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:20 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e11448e7-1ca3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162560; x=1773767360; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/l+2sfUlHi+3W7tldQuhyj7te+foi9fBjieEM15WHyQ=;
        b=ZAK36sIlsfOk4hW9Bb7BChtrCIV28Sid3O9vbFB3gC2iVx0qWb4/GSNl2bKt0eRBAq
         WT47fAnrqMH3QdgU3oMD9LVUPDJAx39Z4nV2R5xe2HqbLW6+2g5Gl4fWGHtxYIAmYtFG
         grN3QsJ3opTlj7q36I+/NVNyF/vaR95dpMoIbgF/tmc3QsQ47hM5KSAwB0MJVUC+tTWm
         bbOmaevwCoZQD+RT95OzP8Ccqk4KHVbgQO4PCbfXHZfRPCPWZTJnPCVDiPZPGLfg4pqU
         XXKzS1tPIhHN6anLHFRhd/HMhsyH3w590akpfFIWeBomVc9FJ3gKGN/L5h9AyjyGRXN+
         SUWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162560; x=1773767360;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=/l+2sfUlHi+3W7tldQuhyj7te+foi9fBjieEM15WHyQ=;
        b=XKrojN2ypzF0CG/eTPhVLlAMXbivQV0F8uKHcVzHTvZgUT0nbkuG1Y0gQ/G8t3+t0E
         VT+LaVGSgnGxNLW01iABuo7CIKD3bFkWSOm1y1PRv9uohe+rn8qQ8MXcvcChQSU0UaWS
         depDiXgqqc86H0o8RpCLWy/ADwvQ0CKyz8Z6hdxkS4b2gZ2uBPNCyTdrp/Swd60lAexv
         uVuvf1pz1k6cGbXalTSZyAAjfsKrbrd4M0QQTMqP98i1WtV5GGmORyfoMq2z2uR4XiZ/
         LiHRTR75m0FSfXB6k1ehiZvvRAoZY1n54H8KUmowczoF9rIONma2+uZvgtmj0f6ckBZh
         wBbA==
X-Gm-Message-State: AOJu0YzTnMQDZVUdZWLK0ma9ROSNvBFt6tDjsrulScKtgDepbuwjllfm
	cQjNrg6m52mWXMmlv8axx/tJoXUY3o97aB5e/sDcz9KsEYrOcjFGVtnMxQbtxkUP
X-Gm-Gg: ATEYQzyJ/l2cTlL3dlpl/2BuKkuDIU0UUrG8TA0Gkx7cV0CoAWAxra9UqROpoa6NbnY
	kk5WeRG5UOsxULuEjJfULUzyVD1RMoSe0bj0mkbvVsWQjZ7Q3j2yR2nDamdYkRRCNfziyUe+uNm
	IjqZRp0vkddZXdszNG90SBPt3Ns7BfajrTaBbgq13+pzPdw6dkHQh6y14xEqDPQocleaIPfF0sL
	k9kGf/cm9nmcPsgaPMT+1ZP/VVb5hHg7DaOVwjCp1h0x4fO4aN2v5HpRQJqgtTx1BqwN4A6oSlN
	ioKESIzbXEcyOrJpjgLPUrXE1bWmILUtqu3a561diqKpzWqKtFj06q7jFoaZZ4i2fkh96QGa7cy
	QERmB+gZrPGILQ71/IEc2D6zBAXzBGfvdm34U9Fzsd4pBbOyfO48zpoN0NYLdBjXZS8uGo7p3Ug
	C1cNCxbxeaR2GEcDE2mImWFphpEpjF7qpJpFUT4t78UiGKayoM1tPGB4z3gpHWpT7K2ac7OA==
X-Received: by 2002:a05:600c:1f0f:b0:483:703e:4ad5 with SMTP id 5b1f17b1804b1-48526967cd9mr255015965e9.22.1773162559897;
        Tue, 10 Mar 2026 10:09:19 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 09/27] xen/riscv: implement make_intc_domU_node()
Date: Tue, 10 Mar 2026 18:08:42 +0100
Message-ID: <7a7f1430090eaf50cc3bff25e894c13404bffad5.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce a RISC-V specific function to create an interrupt controller
Device Tree node for DomU domains during dom0less build.

Add make_intc_domU_node() to the dom0less build path and wire it to
a new generic helper, intc_make_domu_dt_node(), which delegates DT
node creation to the active interrupt controller implementation via
intc_hw_ops.

Extend struct intc_hw_operations with a make_dom_dt_node callback
and expose the required interfaces in the interrupt controller header,
allowing individual interrupt controller drivers to populate DomU DT
nodes as needed.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/dom0less-build.c   |  9 +++++++++
 xen/arch/riscv/include/asm/intc.h | 10 ++++++++--
 xen/arch/riscv/intc.c             |  8 ++++++++
 3 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/xen/arch/riscv/dom0less-build.c b/xen/arch/riscv/dom0less-build.c
index 10863cffc96b..312c5d7d4979 100644
--- a/xen/arch/riscv/dom0less-build.c
+++ b/xen/arch/riscv/dom0less-build.c
@@ -3,6 +3,15 @@
 #include <xen/fdt-kernel.h>
 #include <xen/init.h>
 
+#include <asm/intc.h>
+
+int __init make_intc_domU_node(struct kernel_info *kinfo)
+{
+    intc_make_domu_dt_node(kinfo);
+
+    return 0;
+}
+
 int __init make_arch_nodes(struct kernel_info *kinfo)
 {
     /* No RISC-V specific nodes need to be made, at the moment. */
diff --git a/xen/arch/riscv/include/asm/intc.h b/xen/arch/riscv/include/asm/intc.h
index ecdc8a5e6577..8300d71d472f 100644
--- a/xen/arch/riscv/include/asm/intc.h
+++ b/xen/arch/riscv/include/asm/intc.h
@@ -8,14 +8,14 @@
 #ifndef ASM__RISCV__INTERRUPT_CONTOLLER_H
 #define ASM__RISCV__INTERRUPT_CONTOLLER_H
 
-struct dt_device_node;
-
 enum intc_version {
     INTC_APLIC,
 };
 
 struct cpu_user_regs;
+struct dt_device_node;
 struct irq_desc;
+struct kernel_info;
 
 struct intc_info {
     enum intc_version hw_version;
@@ -41,6 +41,10 @@ struct intc_hw_operations {
 
     /* handle external interrupt */
     void (*handle_interrupt)(struct cpu_user_regs *regs);
+
+    /* Create interrupt controller node for domain */
+    int (*make_dom_dt_node)(const struct kernel_info *kinfo,
+                            const struct dt_device_node *intc);
 };
 
 void intc_preinit(void);
@@ -53,4 +57,6 @@ void intc_route_irq_to_xen(struct irq_desc *desc, unsigned int priority);
 
 void intc_handle_external_irqs(struct cpu_user_regs *regs);
 
+int intc_make_domu_dt_node(const struct kernel_info *kinfo);
+
 #endif /* ASM__RISCV__INTERRUPT_CONTOLLER_H */
diff --git a/xen/arch/riscv/intc.c b/xen/arch/riscv/intc.c
index ea317aea5ad8..a6f8c30f4771 100644
--- a/xen/arch/riscv/intc.c
+++ b/xen/arch/riscv/intc.c
@@ -67,3 +67,11 @@ void intc_route_irq_to_xen(struct irq_desc *desc, unsigned int priority)
     intc_set_irq_type(desc, desc->arch.type);
     intc_set_irq_priority(desc, priority);
 }
+
+int __init intc_make_domu_dt_node(const struct kernel_info *kinfo)
+{
+    if ( intc_hw_ops && intc_hw_ops->make_dom_dt_node )
+        return intc_hw_ops->make_dom_dt_node(kinfo, intc_hw_ops->info->node);
+
+    return -ENOSYS;
+}
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:09:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:09:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250393.1547933 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00aC-0003cY-Dh; Tue, 10 Mar 2026 17:09:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250393.1547933; Tue, 10 Mar 2026 17:09:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00aC-0003aq-1Z; Tue, 10 Mar 2026 17:09:24 +0000
Received: by outflank-mailman (input) for mailman id 1250393;
 Tue, 10 Mar 2026 17:09: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=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00aA-0001Q4-OC
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:22 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e1d78722-1ca3-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 18:09:22 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-482f454be5bso1342825e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:22 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:20 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e1d78722-1ca3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162561; x=1773767361; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/11lx8z8RjsX/40S39HnVeCzAcwg/3pYH5ySRoyED38=;
        b=IDEcmZtXox9yFNvqonGXK66GEwZ8hOgVJ9ldECm3HF4HnrcKAgCD9bQmbt3NkejLKz
         sdFTs8eZiSibYdmsemV+yd3LbUtbquVV0uhXKNNr5IzLy96CiONXz0RhV1mwz9vX2AIF
         DhAlhQRlKXlxBCX3L5BZxIUZuRKor3XEdBcdluvtcCMMQZRUKRirgzBX0WyXogatKA6d
         O7bl9YlQnGHvDSfQk9QPAyJzHi42BjFUZyUodtQjDhGDftXTMRr4zer/tM3cizD6Ic3B
         EAvnKxaWS9KD5L5E9/7556H+gqzMUraDv7bxFDeI4EIffLzLJHEvKYowo/j/MiTe41LC
         UT7Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162561; x=1773767361;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=/11lx8z8RjsX/40S39HnVeCzAcwg/3pYH5ySRoyED38=;
        b=CRWfW/Tcqf/4O5n2z+vdGd1EkJFoj8ETzqQbFzza6bwNM3aqLmviiGzY2RYWqfZkkf
         GLWGV9trwy0j8leNeGBog4UN9k40FWxssMLCPbQmcmW+5Q3TLuVIxTgvYwJGlgHylpPZ
         QZZEE7qUEFiX0qpZ+G7PgsADv5brc5deqM0N8dpS6TUU1QQnkCuDhsLDei36/9z9aibr
         /FgH0hpGtMaBGsL+GwAz8EQNJ89NzCodqSuDq48zM4dmvjZLXm/NeOFZ2r+T4lnOAtXy
         n91DNHgaYVrlH+hjlJA/+pPgIQgfcm8Nr74a40LH60XJr2pCh9c6rpcRF1mH3q62MCE3
         29FA==
X-Gm-Message-State: AOJu0YxUvUYQEm0bOtzuO/LFtNmbjerprvL+cciWT2P8z/7gH9UcvFuE
	TUa8Qi85CIKk7wEZmux4iQlyB+ZdYRuwzCjJn+i+qeWEDIKi4LQ2bu/N6qd9kSJ6
X-Gm-Gg: ATEYQzywI2CmxGHr/bRg7Gg9HwC2JEqO8WXqrWQxtdbq+5iJNW69pAd9Cnwh8XShtxj
	3tXTXLtiBaDYNLDIbepkJUirpMOnL8DRhb+c21uGU8Syed0l+hDnIcrFoMAq9HlADFSa+umo7/B
	E2XozrkjJb+cMLIbAV4WS1f39b4+T+n4JdJ8EY1a2Tq4LtYi2PFvRpy948/gmI03DJFirkzTXW3
	A+biSlWWcxlUcgdtOZQva7QIhZAZyQDziR2M5wXRJfDFlvEp+/5tTB0UPUA57GDNsSRQUYeqFW0
	nPAW9inxFGfgJT1YwOLyrSJg04TwrUSAgACVu2lX/15j+tgkvVNGOcpClbE+Ot525Ttbo+qt+l4
	o0sPn01xr9j6IrgCbSt/RgSur75MY8L4qadCvenwoEH6vDWJeYhW6cIFIbj5gtv6CfzF5Tno4YB
	W563V8QHfqyO4eEYGe/oTXnw4TILIoiJs5ZPkRW0uX6piMjZ91ewfdmlD3lr58OpNPvC46qQ==
X-Received: by 2002:a05:600c:468b:b0:47e:e981:78b4 with SMTP id 5b1f17b1804b1-48541a00b6fmr69385575e9.12.1773162561036;
        Tue, 10 Mar 2026 10:09:21 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 10/27] xen/riscv: generate IMSIC DT node for guest domains
Date: Tue, 10 Mar 2026 18:08:43 +0100
Message-ID: <8154eae081d14da89f27bad581270cc5bba6ccfc.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Guests using the IMSIC interrupt controller require a corresponding
Device Tree description. Add support for generating an IMSIC node when
building the guest DT.

Keep a reference to the host IMSIC DT node and reuse its compatible
property while constructing the guest-visible node. The generated node
contains guest-specific information such as the MMIO region sized for
the number of vCPUs and the interrupts-extended property referencing
per-vCPU interrupt controllers.

This allows guests to discover and use the IMSIC interrupt controller.

Co-developed-by: Romain Caritey <Romain.Caritey@microchip.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/imsic.c             | 113 +++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/imsic.h |   7 ++
 2 files changed, 120 insertions(+)

diff --git a/xen/arch/riscv/imsic.c b/xen/arch/riscv/imsic.c
index a4460576f620..0956b187705f 100644
--- a/xen/arch/riscv/imsic.c
+++ b/xen/arch/riscv/imsic.c
@@ -13,8 +13,11 @@
 #include <xen/const.h>
 #include <xen/cpumask.h>
 #include <xen/device_tree.h>
+#include <xen/domain.h>
 #include <xen/errno.h>
+#include <xen/fdt-kernel.h>
 #include <xen/init.h>
+#include <xen/libfdt/libfdt.h>
 #include <xen/macros.h>
 #include <xen/smp.h>
 #include <xen/spinlock.h>
@@ -329,6 +332,8 @@ int __init imsic_init(const struct dt_device_node *node)
     struct imsic_mmios *mmios;
     struct imsic_msi *msi = NULL;
 
+    imsic_cfg.host_node = node;
+
     /* Parse IMSIC node */
     rc = imsic_parse_node(node, &nr_parent_irqs, &nr_mmios);
     /*
@@ -487,3 +492,111 @@ int __init imsic_init(const struct dt_device_node *node)
 
     return rc;
 }
+
+static int __init imsic_make_reg_property(struct domain *d, void *fdt)
+{
+    __be32 regs[4];
+
+    regs[0] = cpu_to_be32(imsic_cfg.base_addr >> 32);
+    regs[1] = cpu_to_be32(imsic_cfg.base_addr);
+    regs[2] = cpu_to_be32((IMSIC_MMIO_PAGE_SZ * d->max_vcpus) >> 32);
+    regs[3] = cpu_to_be32(IMSIC_MMIO_PAGE_SZ * d->max_vcpus);
+
+    return fdt_property(fdt, "reg", regs, sizeof(regs));
+}
+
+static int __init imsic_set_interrupt_extended_prop(struct domain *d,
+                                                    void *fdt)
+{
+    uint32_t len = 0, pos = 0, cpu, phandle;
+    uint32_t *irq_ext;
+    char buf[64];
+    int res;
+
+    irq_ext = xvzalloc_array(uint32_t, d->max_vcpus * 2);
+    if ( !irq_ext )
+        return -ENOMEM;
+
+    for ( cpu = 0; cpu < d->max_vcpus; cpu++ )
+    {
+        snprintf(buf, sizeof(buf), "/cpus/cpu@%u/interrupt-controller", cpu);
+        phandle = fdt_get_phandle(fdt, fdt_path_offset(fdt, buf));
+
+        if ( phandle <= 0 )
+            return phandle;
+
+        irq_ext[pos++] = cpu_to_be32(phandle);
+        len += sizeof(uint32_t);
+        irq_ext[pos++] = cpu_to_be32(IRQ_S_EXT);
+        len += sizeof(uint32_t);
+    }
+
+    res = fdt_property(fdt, "interrupts-extended", irq_ext, len);
+
+    XVFREE(irq_ext);
+
+    return res;
+}
+
+int __init imsic_make_dt_node(const struct kernel_info *kinfo)
+{
+    uint32_t len;
+    const void *data = NULL;
+    int res = 0;
+    void *fdt = kinfo->fdt;
+    const struct dt_device_node *host_imsic_node = imsic_cfg.host_node;
+    uint32_t *next_phandle = &kinfo->bd.d->arch.next_phandle;
+
+    res = fdt_begin_node(fdt, host_imsic_node->full_name);
+    if ( res )
+        return res;
+
+    data = dt_get_property(host_imsic_node, "compatible", &len);
+    if ( !data )
+    {
+        printk(XENLOG_ERR "%s: Can't find 'compatible' property\n",
+               host_imsic_node->full_name);
+
+        return -ENOENT;
+    }
+
+    res = fdt_property(fdt, "compatible", data, len);
+    if ( res )
+        return res;
+
+    res = imsic_make_reg_property(kinfo->bd.d, fdt);
+    if ( res )
+        return res;
+
+    res = imsic_set_interrupt_extended_prop(kinfo->bd.d, fdt);
+    if ( res )
+        return res;
+
+    res = fdt_property_u32(fdt, "riscv,num-ids", imsic_cfg.nr_ids);
+    if ( res )
+        return res;
+
+    res = fdt_property(fdt, "msi-controller", NULL, 0);
+    if ( res )
+        return res;
+
+    res = fdt_property_u32(fdt, "#msi-cells", 0);
+    if ( res )
+        return res;
+
+    res = fdt_property(fdt, "interrupt-controller", NULL, 0);
+    if ( res )
+        return res;
+
+    res = fdt_property_u32(fdt, "#interrupt-cells", 0);
+    if ( res )
+        return res;
+
+    imsic_cfg.phandle = (*next_phandle)++;
+
+    res = fdt_property_cell(fdt, "phandle", imsic_cfg.phandle);
+    if ( res )
+        return res;
+
+    return fdt_end_node(fdt);
+}
diff --git a/xen/arch/riscv/include/asm/imsic.h b/xen/arch/riscv/include/asm/imsic.h
index c6c59215df20..a63d56fbd5d9 100644
--- a/xen/arch/riscv/include/asm/imsic.h
+++ b/xen/arch/riscv/include/asm/imsic.h
@@ -57,11 +57,16 @@ struct imsic_config {
     /* MSI */
     const struct imsic_msi *msi;
 
+    /* DT node of IMSIC */
+    const struct dt_device_node *host_node;
+
     /* Lock to protect access to IMSIC's stuff */
     spinlock_t lock;
 };
 
 struct dt_device_node;
+struct kernel_info;
+
 int imsic_init(const struct dt_device_node *node);
 
 const struct imsic_config *imsic_get_config(void);
@@ -71,4 +76,6 @@ void imsic_irq_disable(unsigned int hwirq);
 
 void imsic_ids_local_delivery(bool enable);
 
+int imsic_make_dt_node(const struct kernel_info *kinfo);
+
 #endif /* ASM_RISCV_IMSIC_H */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:09:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:09:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250395.1547943 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00aE-000446-0y; Tue, 10 Mar 2026 17:09:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250395.1547943; Tue, 10 Mar 2026 17:09:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00aD-000434-TE; Tue, 10 Mar 2026 17:09:25 +0000
Received: by outflank-mailman (input) for mailman id 1250395;
 Tue, 10 Mar 2026 17:09: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=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00aC-0001QA-TF
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:24 +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 e2848d12-1ca3-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 18:09:23 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4838c15e3cbso119285105e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:23 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e2848d12-1ca3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162562; x=1773767362; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rURaUWIfuvEbzAV4qRTHMl8D0NEHhwV33eVW20ka7rs=;
        b=C5U75V08T2eumDwAH2EDZUc5bj3oRmeew2Y8x38i48ivsuCKn21B/0v96m3Mtxhgws
         MCKzwHFbQb96EHhpiDRYl/4ALkWdwIMjH5jL1aUgO2NNyv23eVZiIH5rm60hjyiSaDcd
         vbEOyhdmaoQweN0RmZv7kavQNUJon81I6Rg8nK1ptDZieyfL6UO4JMfNO9PG79Xhyihn
         nTxbssDYlIlv5NtEVlwF536WO210wCvkX1jPhB8iJ+Gyb71vSkXsRJO+aavadaxxYNut
         hNujCpr+4nuOYZtQPYu4E9K8NeOS5gxArN5NwTCesrqzlNV50llGtBKHszC8tbHfGkCI
         RTww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162562; x=1773767362;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=rURaUWIfuvEbzAV4qRTHMl8D0NEHhwV33eVW20ka7rs=;
        b=ogNp1xnCpeGsInlGTEbrwYdrUQttKeLwssmxAZlRQrh8R1UfZkwgqkA8lyaVJ12L9r
         krdkSFpZJVYYM20LupnK9w5Z2muJs+m+IofcAJxb+Q0udpTiBTSkYdpj/tK45Cu5KHm5
         Uoq1MFzGk+tYipRchxSFy9g3DLUa9KuFFfbTxMnTLfoXIIN2d2RNMsU/l+otlyUZVBk4
         crv7zzBoTNp4DG8m2Cj7Q8kLJ1IO0Wa0eJS2AgIfnI9GbHoHxbr1M5l6ar8mmeOY5VSQ
         ARrLn1V3kvdf+x0N1Xto1/uDml93xsYECdjARImCMBM1dcSZLJLkZpASXpAeEkQvdXxC
         xMNg==
X-Gm-Message-State: AOJu0Yy1aklCbKiRzRZgZChYZKnI5q5cSLjM0l6dXuIJd3/RAzdaUPLv
	KzYvax1YkSVo2GjZw6PX5v6q+rJ3uJTtiXbmFbxZIQcvPy16SOBBeBgpY8ckx2U+
X-Gm-Gg: ATEYQzy7aiaeyT+65hUHg4QmGtwL8aLajPl5mGHpPgZFKj7xkuip5ucbQiV+9ZtueUb
	Lld2ztB+pHEFf/idDJOVXNWCHp3pztjw8bg/vNJDuiUaEyE9vyOctYWos6sb5DBnlAQZ917xAgw
	HLQR+uA4NAAanQjFMAplHEvmjjvP2FUel70poEX4rSiXz5vrgZRSYeh+Kle+/dRhVskAmtNL1j1
	n0ou2lGXIobBnBeDSFPRB3qFcoFbbRE/Q9b+m0qqVhkXed6jehzDrTJv3/EYXaKqtuyPOVXNApu
	ICI4JXidB20ubwCsXI0JuEiHKf5uY1wWfba7e+gBHkWuOZhU5k96DZBCPkeb8QYBZXuY9g18fa/
	ThoIwqsvzxn11ZtpA38dZZu/MYfivJjgHF+1/Gt/kn/cNrMA3I/NndNHj3+6BY5+MUJW1Ouu05L
	5M4Z5aTRa2/xzHz9YYn6lM/hQmMSPKHmITkFP8aYovovclJ3aRQkyShoaIW1Tz/+ghQRpkBA==
X-Received: by 2002:a05:600c:528c:b0:485:3d3e:167b with SMTP id 5b1f17b1804b1-4853d3e20d2mr103614505e9.5.1773162562331;
        Tue, 10 Mar 2026 10:09:22 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 11/27] xen/riscv: create APLIC DT node for guest domains
Date: Tue, 10 Mar 2026 18:08:44 +0100
Message-ID: <462b5f7dbe4e5084a35fb869b59327c6c92d1fbf.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Guests require a Device Tree description of the interrupt controller
topology. Add support for creating an APLIC node when building the
guest DT.

The node is derived from the host DT and linked to the guest IMSIC
via the msi-parent property, allowing guests to discover and use the
APLIC interrupt controller.

Co-developed-by: Romain Caritey <Romain.Caritey@microchip.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/aplic.c | 82 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 82 insertions(+)

diff --git a/xen/arch/riscv/aplic.c b/xen/arch/riscv/aplic.c
index 739e8dab3498..e139946a05a0 100644
--- a/xen/arch/riscv/aplic.c
+++ b/xen/arch/riscv/aplic.c
@@ -12,8 +12,10 @@
 #include <xen/const.h>
 #include <xen/device_tree.h>
 #include <xen/errno.h>
+#include <xen/fdt-kernel.h>
 #include <xen/init.h>
 #include <xen/irq.h>
+#include <xen/libfdt/libfdt.h>
 #include <xen/mm.h>
 #include <xen/sections.h>
 #include <xen/spinlock.h>
@@ -295,6 +297,85 @@ static void cf_check aplic_set_irq_type(struct irq_desc *desc,
     spin_unlock(&aplic.lock);
 }
 
+static int __init cf_check aplic_make_dom_dt_node(
+                                    const struct kernel_info *kinfo,
+                                    const struct dt_device_node *aplic_node)
+{
+    uint32_t len;
+    const __be32 *regs;
+    const void *data = NULL;
+    int res = 0;
+    void *fdt = kinfo->fdt;
+
+    res = imsic_make_dt_node(kinfo);
+    if ( res )
+        return res;
+
+    res = fdt_begin_node(fdt, aplic_node->full_name);
+    if (res)
+        return res;
+
+    data = dt_get_property(aplic_node, "#interrupt-cells", &len);
+    if ( !data )
+    {
+        printk("%s: Can't find '#interrupt-cells' property\n",
+               aplic_node->full_name);
+        return -FDT_ERR_XEN(ENOENT);
+    }
+
+    res = fdt_property(fdt, "#interrupt-cells", data, len);
+    if ( res )
+        return res;
+
+    regs = dt_get_property(aplic_node, "reg", &len);
+    if ( !regs )
+    {
+        printk("%s: Can't find 'reg' property\n", aplic_node->full_name);
+        return -FDT_ERR_XEN(ENOENT);
+    }
+
+    res = fdt_property(fdt, "reg", regs, len);
+    if ( res )
+        return res;
+
+    data = dt_get_property(aplic_node, "riscv,num-sources", &len);
+    if ( !data )
+    {
+        printk("%s: Can't find 'riscv,num-sources' property\n",
+                aplic_node->full_name);
+        return -FDT_ERR_XEN(ENOENT);
+    }
+
+    res = fdt_property(fdt, "riscv,num-sources", data, len);
+    if ( res )
+        return res;
+
+    res = fdt_property(fdt, "interrupt-controller", NULL, 0);
+    if ( res )
+        return res;
+
+    data = dt_get_property(aplic_node, "compatible", &len);
+    if ( !data )
+    {
+        printk("%s: Can't find 'compatible' property\n", aplic_node->full_name);
+        return -FDT_ERR_XEN(ENOENT);
+    }
+
+    res = fdt_property(fdt, "compatible", data, len);
+    if ( res )
+        return res;
+
+    res = fdt_property_cell(fdt, "msi-parent", aplic.imsic_cfg->phandle);
+    if ( res )
+        return res;
+
+    res = fdt_property_cell(fdt, "phandle", kinfo->phandle_intc);
+    if ( res )
+        return res;
+
+    return fdt_end_node(fdt);
+}
+
 static const hw_irq_controller aplic_xen_irq_type = {
     .typename     = "aplic",
     .startup      = aplic_irq_startup,
@@ -310,6 +391,7 @@ static const struct intc_hw_operations aplic_ops = {
     .host_irq_type       = &aplic_xen_irq_type,
     .handle_interrupt    = aplic_handle_interrupt,
     .set_irq_type        = aplic_set_irq_type,
+    .make_dom_dt_node    = aplic_make_dom_dt_node,
 };
 
 static int cf_check aplic_irq_xlate(const uint32_t *intspec,
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:09:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:09:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250396.1547949 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00aE-0004Av-Tz; Tue, 10 Mar 2026 17:09:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250396.1547949; Tue, 10 Mar 2026 17:09: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 1w00aE-00049J-EI; Tue, 10 Mar 2026 17:09:26 +0000
Received: by outflank-mailman (input) for mailman id 1250396;
 Tue, 10 Mar 2026 17:09: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=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00aD-0001Q4-7P
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:25 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e34d6159-1ca3-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 18:09:24 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-48534b59cf3so23996415e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:24 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:23 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e34d6159-1ca3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162564; x=1773767364; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wxAqjKoB8nUBBhDPx/zv6ewxjJzbCrTIbqMHHIHK+cg=;
        b=Ehou3/FICijR4b2STcMbbQHoyIuCgt5IClHYUlmXUtuc9ZWkk89Vi1gHiNRVMHACRF
         UPuNFuy3xWozX6NR7JRspEGGh2YTrLHRpVvwiKJKclNN4nJrcdkMrND6dq5PyuILsmBu
         6clqBW7+ZiETMV4HM22coVwOM5OcwuJWGZTbXgg2/D4aZM702KuvEV1gdcOvJS6KyGqk
         SdpSECJz7g45Ck8GRaBruPjkMTr4zeWt9MnE6lh/MO9Q73Xx3c2PJl9S1ZiUWDwr9IA7
         x3d+NFy9QTwEWBcNZsPECFkTVO5pNQDMHrMowvq8i2PT2WHW/8z0Lnyos1Fbp4SGy1Et
         WZuQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162564; x=1773767364;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=wxAqjKoB8nUBBhDPx/zv6ewxjJzbCrTIbqMHHIHK+cg=;
        b=P+IJwQT7h+GDoAwzZwXtUtLRuqpp2Dvnyd0NC7pcJCysPskiG/OUvHQQoeoWrz6jwf
         swzXtPSTPAo/5ZBsAechG+Ib10c8QbABYVTuGOsi8IYyhFrpDwmOcMv/yjdzWLCMZ4DW
         iSo5Xjy2AQFrJHMiTLVNkG6GN5gte3lirVp1lgUDlCvdqKGVN3aPFqHm9S+9Epe2mZYG
         scR/6qcDb7xeV+jXPxvY55PmxLHfIdE4ZldgqDdm+GGgxvMC40EvZ98WGbbnokHjYkcD
         iQmq7Y19DN9mV//6NvQ0+GJPNn2oLCP27/X7/nexalP9wTmiF4v+ADQtHr7XpWIV8rX5
         cBfA==
X-Gm-Message-State: AOJu0Yz9QAfMqrm3EvGSHHg1Wvoz31yBcokwTGf4LYAD9OiTcnJ6fqK6
	sQpHRRAYCVFGqOSyAfXQRrAKbPusrp5Lf3fptuYaMxwuP6gs6B8lB4HBZSEpRaLf
X-Gm-Gg: ATEYQzytiRDAs2892gWiPFygQzTVqkEm4aWuxcSScA44nKakzJyeK2l7N5LDayETNHg
	79sKKdUH9oytk/+RvZTELIv8md1o/eV+c3t3usDE1Bw68pj9/rnZa8C39sFB2B08cNMXYQ1GE6d
	j8uJkFjPl+z6cH6bjiZyE0em80O+rekQxLSkUB9G6PIweeCPDD+C8pn5KMZT5dRBj6Xo2PralwW
	wG2DHkRLygk7LuTj4OK0NHOy1v74FUGyPK2lRhrgIs9Vt5UjgxcvhOR5Vy01B8p+TFGxPEf6kxs
	7ILSdpVUOXBXkMEFUChPrcJxp1N/JIipuXTNWBBY6CxwECUwp48thNmhF//5Wv3T4sRcF669aN8
	oIzByQRhGNDpaHmSKPU5Y7K+30t/T3eKJoFBcFhf7YFD34/zoBvEEAblVArBhxaCJnhHDAAwnlK
	xxTGdcNQure+zEqTFMSNNFjO4GM64P9rnPdBeVkVXJh5SZAhjNRjpE7vWIjAr2nIIw24hWpQ==
X-Received: by 2002:a05:600c:4fc3:b0:485:3692:e906 with SMTP id 5b1f17b1804b1-4853692eacemr162644025e9.13.1773162563586;
        Tue, 10 Mar 2026 10:09:23 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 12/27] xen/riscv: introduce aia_init() and aia_available()
Date: Tue, 10 Mar 2026 18:08:45 +0100
Message-ID: <74f15b1db86139b36b721ef9d12b998fe4f0f348.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

aia_init() is going to contain all the stuff related to AIA initialization.
At the moment, it is just Check if SSAIA extension is available and if yes
set is_aia_available to true.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/Makefile          |  1 +
 xen/arch/riscv/aia.c             | 25 +++++++++++++++++++++++++
 xen/arch/riscv/include/asm/aia.h | 10 ++++++++++
 xen/arch/riscv/intc.c            |  3 +++
 4 files changed, 39 insertions(+)
 create mode 100644 xen/arch/riscv/aia.c
 create mode 100644 xen/arch/riscv/include/asm/aia.h

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index fb04cc5a56b2..d772b42386c0 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -1,3 +1,4 @@
+obj-y += aia.o
 obj-y += aplic.o
 obj-y += cpufeature.o
 obj-y += dom0less-build.o
diff --git a/xen/arch/riscv/aia.c b/xen/arch/riscv/aia.c
new file mode 100644
index 000000000000..5e3f190e8e2c
--- /dev/null
+++ b/xen/arch/riscv/aia.c
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/errno.h>
+#include <xen/init.h>
+#include <xen/sections.h>
+#include <xen/types.h>
+
+#include <asm/cpufeature.h>
+
+static bool __ro_after_init is_aia_available;
+
+bool aia_available(void)
+{
+    return is_aia_available;
+}
+
+int __init aia_init(void)
+{
+    if ( !riscv_isa_extension_available(NULL, RISCV_ISA_EXT_ssaia) )
+        return -ENODEV;
+
+    is_aia_available = true;
+
+    return 0;
+}
diff --git a/xen/arch/riscv/include/asm/aia.h b/xen/arch/riscv/include/asm/aia.h
new file mode 100644
index 000000000000..039607faf685
--- /dev/null
+++ b/xen/arch/riscv/include/asm/aia.h
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef ASM__RISCV__AIA_H
+#define ASM__RISCV__AIA_H
+
+bool aia_available(void);
+
+int aia_init(void);
+
+#endif /* ASM__RISCV__ACPI_H */
diff --git a/xen/arch/riscv/intc.c b/xen/arch/riscv/intc.c
index a6f8c30f4771..c9f12651fda1 100644
--- a/xen/arch/riscv/intc.c
+++ b/xen/arch/riscv/intc.c
@@ -8,6 +8,7 @@
 #include <xen/lib.h>
 #include <xen/spinlock.h>
 
+#include <asm/aia.h>
 #include <asm/intc.h>
 
 static const struct intc_hw_operations *__ro_after_init intc_hw_ops;
@@ -27,6 +28,8 @@ void __init intc_preinit(void)
 
 void __init intc_init(void)
 {
+    aia_init();
+
     if ( intc_hw_ops->init() )
         panic("Failed to initialize the interrupt controller drivers\n");
 }
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:09:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:09:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250398.1547957 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00aG-0004XE-Ci; Tue, 10 Mar 2026 17:09:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250398.1547957; Tue, 10 Mar 2026 17: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 1w00aG-0004W0-35; Tue, 10 Mar 2026 17:09:28 +0000
Received: by outflank-mailman (input) for mailman id 1250398;
 Tue, 10 Mar 2026 17: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=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00aE-0001Q4-Ae
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:26 +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 e415608c-1ca3-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 18:09:25 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-48334ee0aeaso107423915e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:25 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:24 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e415608c-1ca3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162565; x=1773767365; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0nBjOwOkgmV3ao9VaFguk8mStyy/ASZb20xOrZJU8TM=;
        b=QvpJqg/cMsyPNKSuJbij6IINo/Kl94JU5kX2IhQPKpO7cshbYtN5OdAQO4lmMn+OXf
         GaBaD9zT+46iZ8gQxAJ2MUeeE3+GcAqyRY50ZK1HauL2jCPIuZnsBbm+CHCKIJCRwgVs
         I+7WygMG+89wXoEC02keUhO9DuzpvA3+7VSsHUDFUQVoQKF9rz0A9ETPTP/QYudI/4JZ
         tRqIJtxIfDxhwYbF5r1x5soRo0Y96sBr3roACC/XmBAA0gXw7fj/lpQbC+VW8+9+V7Dq
         8kX0tKl7za/w8HqGHwKuSFtOHvcCMLxbRt4ydPAkrZ45ImS0n639yIoIfoXs+4v4XwYe
         0hcA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162565; x=1773767365;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=0nBjOwOkgmV3ao9VaFguk8mStyy/ASZb20xOrZJU8TM=;
        b=JQzc6+NZU4eU2Tdmgdo668Os1n9nhJ8H2IW2YG6G2+q/rQNcEc9PkgvX98ZB/9HAbU
         G9crJsRS6/BuHCQyrr+T0135QuPwxstmzcw5vHg6f/5RpdZYAN34dTfo5O6ZgPaLXBPH
         B2vwSRxjzuXJ3pENAruZAN5rNj02RDuBE3XxCsYjjx1TLAzdpoUQ+7MumTw4rpqlzDV8
         e4VdeFUM4ec1db6W2ejQ33F46krlJUHYH4V4NgFkfk7tbpJVQldr/ao+pUPFSL9NG3Kx
         TwRzswFQJ15HdwRfUF5SjAoedImNsfE+W/LQj1/TH7gjP39yGo4zXzlr7lpaQ0Odx5Pq
         rNOw==
X-Gm-Message-State: AOJu0YwVwg1PrEcoll3jkzhlXYh5w5DfP2Wcm/5hKpQvQX2FtmyPBhWI
	RFyzD7h8c7mhI8XbmMIsN6nyDNurx/95QI5AxAU2yi24rLHtyTAE54eDwf2ddFrA
X-Gm-Gg: ATEYQzx3RWRxtzB2wofTcjnq0zqD3TcB9O6kKIE/ZTcGScoduZnQA1dBZf+PO07U1oN
	Egrs9QcAuHxF3pfufIejb6PDWyF3xCuJyEKWxXSz/YPyFo7HMUSHtsnrcACj05VEFQNRTc4Lk5k
	HJhP+UKGZmXSFkDbFcknyHZgCyS/y1t342l4A0PexlVpJWO1Ubpe5Hfv6Y/QqJ9LE29M8No+uXW
	Zwsw61M8fX116cxxLG/dovb/XqKmplZfxJEK188TcoXGOhN157cajq5/9g/sekgeVCwjo35c3eP
	TLjLQPmDozrFGnLRkxb89LcJPBjqZ0iu6esDXlDHMRk6aM90kMUGsAzhaSV66+bbvxEEIjad3DO
	iq+ZxLeKHbcMhD07mhpPlzuL7Oc2KlP3w/yEcLHunkUR9NRHMKTBXW5dscyCanDQSOklFIPJD3N
	224pcQ/GEK01tiv4sYHxuy7MHNdLxRNKBzGeaI2VEAN+hxnqkaK9hLCXX9WcSvMczAX28Z+pSbA
	Xtb
X-Received: by 2002:a05:600c:4ed1:b0:485:3a03:ced1 with SMTP id 5b1f17b1804b1-4853a03d7eamr152562415e9.28.1773162564912;
        Tue, 10 Mar 2026 10:09:24 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 13/27] xen/riscv: add basic VGEIN management for AIA guests
Date: Tue, 10 Mar 2026 18:08:46 +0100
Message-ID: <f358325514c91c540e0edf992ca51414a1964fe0.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

AIA provides a hardware-accelerated mechanism for delivering external
interrupts to domains via "guest interrupt files" located in IMSIC.
A single physical hart can implement multiple such files (up to GEILEN),
allowing several virtual harts to receive interrupts directly from hardware

Introduce per-CPU tracking of guest interrupt file identifiers (VGEIN)
for systems implementing AIA specification. Each CPU maintains
a bitmap describing which guest interrupt files are currently in use.

Add helpers to initialize the bitmap based on the number of available
guest interrupt files (GEILEN), assign a VGEIN to a vCPU, and release it
when no longer needed. When assigning a VGEIN, the corresponding value
is written to the VGEIN field of the guest hstatus register so that
VS-level external interrupts are delivered from the selected interrupt
file.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/aia.c             | 112 ++++++++++++++++++++++++++++++-
 xen/arch/riscv/include/asm/aia.h |  18 +++++
 2 files changed, 129 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/aia.c b/xen/arch/riscv/aia.c
index 5e3f190e8e2c..7bd66d1e37c6 100644
--- a/xen/arch/riscv/aia.c
+++ b/xen/arch/riscv/aia.c
@@ -1,11 +1,24 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/bitmap.h>
 #include <xen/errno.h>
 #include <xen/init.h>
 #include <xen/sections.h>
+#include <xen/sched.h>
+#include <xen/spinlock.h>
 #include <xen/types.h>
+#include <xen/xvmalloc.h>
 
+#include <asm/aia.h>
 #include <asm/cpufeature.h>
+#include <asm/csr.h>
+#include <asm/current.h>
+
+/*
+ * Bitmap for each physical cpus to detect which VS (guest)
+ * interrupt file id was used.
+ */
+DEFINE_PER_CPU(struct vgein_bmp, vgein_bmp);
 
 static bool __ro_after_init is_aia_available;
 
@@ -14,12 +27,109 @@ bool aia_available(void)
     return is_aia_available;
 }
 
+int __init vgein_init(unsigned int cpu)
+{
+    struct vgein_bmp *vgein = &per_cpu(vgein_bmp, cpu);
+
+    csr_write(CSR_HGEIE, -1UL);
+    vgein->geilen = flsl(csr_read(CSR_HGEIE));
+    csr_write(CSR_HGEIE, 0);
+    if ( vgein->geilen )
+        vgein->geilen--;
+
+    BUG_ON(!vgein->geilen);
+
+    printk("cpu%d.geilen=%d\n", cpu, vgein->geilen);
+
+    if ( !vgein->bmp )
+    {
+        vgein->bmp = xvzalloc_array(unsigned long, BITS_TO_LONGS(vgein->geilen));
+        if ( !vgein->bmp )
+            return -ENOMEM;
+    }
+
+    spin_lock_init(&vgein->lock);
+
+    return 0;
+}
+
 int __init aia_init(void)
 {
+    int rc = 0;
+
     if ( !riscv_isa_extension_available(NULL, RISCV_ISA_EXT_ssaia) )
         return -ENODEV;
 
+    if ( (rc = vgein_init(0)) )
+        return rc;
+
     is_aia_available = true;
 
-    return 0;
+    return rc;
+}
+
+unsigned int vgein_assign(struct vcpu *v)
+{
+    unsigned int vgein_id;
+
+    struct vgein_bmp *vgein_bmp = &per_cpu(vgein_bmp, v->processor);
+    unsigned long *bmp = vgein_bmp->bmp;
+    unsigned long flags;
+
+    spin_lock_irqsave(&vgein_bmp->lock, flags);
+    vgein_id = bitmap_weight(bmp, vgein_bmp->geilen);
+
+    /*
+     * All vCPU guest interrupt files are used and we don't support a case
+     * when number of vCPU on 1 pCPU is bigger then geilen.
+     */
+    ASSERT(vgein_id < vgein_bmp->geilen);
+
+    bitmap_set(bmp, vgein_id, 1);
+    spin_unlock_irqrestore(&vgein_bmp->lock, flags);
+
+    /*
+     * The vgein_id shouldn't be zero, as it will indicate that no guest
+     * external interrupt source is selected for VS-level external interrupts
+     * according to RISC-V priviliged spec:
+     *   8.2.1 Hypervisor Status Register (hstatus) in RISC-V priviliged spec:
+     *
+     *   The VGEIN (Virtual Guest External Interrupt Number) field selects
+     *   a guest external interrupt source for VS-level external interrupts.
+     *   VGEIN is a WLRL field that must be able to hold values between zero
+     *   and the maximum guest external interrupt number (known as GEILEN),
+     *   inclusive.
+     *   When VGEIN=0, no guest external interrupt source is selected for
+     *   VS-level external interrupts.
+     */
+    vgein_id++;
+
+#ifdef VGEIN_DEBUG
+    printk("%s: %pv: vgein_id(%u), xen_cpu%d_bmp=%#lx\n",
+           __func__, v, vgein_id, v->processor, *bmp);
+#endif
+
+    vcpu_guest_cpu_user_regs(v)->hstatus &= ~HSTATUS_VGEIN;
+    vcpu_guest_cpu_user_regs(v)->hstatus |=
+        MASK_INSR(vgein_id, HSTATUS_VGEIN);
+
+    return vgein_id;
+}
+
+void vgein_release(struct vcpu *v, unsigned int vgen_id)
+{
+    unsigned long flags;
+
+    struct vgein_bmp *vgein_bmp = &per_cpu(vgein_bmp, v->processor);
+
+    spin_lock_irqsave(&vgein_bmp->lock, flags);
+    bitmap_clear(vgein_bmp->bmp, vgen_id - 1, 1);
+    spin_unlock_irqrestore(&vgein_bmp->lock, flags);
+
+#ifdef VGEIN_DEBUG
+    printk("%s: vgein_id(%u), xen_cpu%d_bmp=%#lx\n",
+           __func__, vgen_id, v->processor, *vgein_bmp->bmp);
+#endif
+
+    vcpu_guest_cpu_user_regs(v)->hstatus &= ~HSTATUS_VGEIN;
 }
diff --git a/xen/arch/riscv/include/asm/aia.h b/xen/arch/riscv/include/asm/aia.h
index 039607faf685..c2717504cbea 100644
--- a/xen/arch/riscv/include/asm/aia.h
+++ b/xen/arch/riscv/include/asm/aia.h
@@ -3,8 +3,26 @@
 #ifndef ASM__RISCV__AIA_H
 #define ASM__RISCV__AIA_H
 
+#include <xen/percpu.h>
+#include <xen/spinlock.h>
+
+struct vcpu;
+
+struct vgein_bmp {
+    unsigned long *bmp;
+    spinlock_t lock;
+    struct vcpu *owners[BITS_PER_LONG];
+    unsigned int geilen;
+};
+
+DECLARE_PER_CPU(struct vgein_bmp, vgein_bmp);
+
 bool aia_available(void);
 
 int aia_init(void);
 
+int vgein_init(unsigned int cpu);
+unsigned int vgein_assign(struct vcpu *v);
+void vgein_release(struct vcpu *v, unsigned int vgen_id);
+
 #endif /* ASM__RISCV__ACPI_H */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:09:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:09:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250402.1547967 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00aI-0004tn-Gb; Tue, 10 Mar 2026 17:09:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250402.1547967; Tue, 10 Mar 2026 17: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 1w00aI-0004s7-0P; Tue, 10 Mar 2026 17:09:30 +0000
Received: by outflank-mailman (input) for mailman id 1250402;
 Tue, 10 Mar 2026 17:09:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00aG-0001Q4-SQ
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:28 +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 e57a1eca-1ca3-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 18:09:28 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-48534b59cf3so23997145e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:28 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:26 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e57a1eca-1ca3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162567; x=1773767367; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RQUbsjGqpyJLaNssEnVD+AE4bLsCeyAg53aMfThr8Pc=;
        b=aJE7+K0BbJsUvk1B1xX1Istj/kPDTotAGS6MqmEnPDM6IyYxmrq/qCAcSFCpIZLU5V
         aeBci1Zrh92xcvw/OLEJeNnmM3vfcnhZ1JSC2Lux2tW9oFF/e0lgOvQzkRRZvdSGQ4u/
         c+9PwLGbmYhYlhSAIsWUgir0fn3ElCUfZSimndynWdCAYyR00WQ1PxO49yo75zfxb5k6
         H1rrtaJ5cyX+FC+jAPSlTrocRvfU8szxjqXptUzwd91yKBtUVfm+vG25ysFWl3GMoBYr
         hYqE/SLV30xgNlDyUSKZ4azsa8QwtdQSb0cAG1O8J3P05g2+QpbBcakLVmcLSfoswHOR
         2HPg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162567; x=1773767367;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=RQUbsjGqpyJLaNssEnVD+AE4bLsCeyAg53aMfThr8Pc=;
        b=ksmbL+54lHEsE0iM6G4Jb5laaA6XXFJXJGtyd2SqnfUoJJVG9dbjXqTX1zO8DxVpBh
         l7XGTLIGu4HWHV8NlyEGrv6w7xKxoBKkp8dFtl+sps4NL5vKHpDb0o9itohjT5vQ1bNv
         b9Jk89keU56BZkHzNwGVXfadzEzs/6XvP86RgJPlI/BT9i+mkHilMNv2RtGmDbTVdqRH
         boB4+zgdIE0DCtJHocN9rl1atWnFVfketcY5VDsbAZmvlxRqkX8BAcSRwnqXiXzvolXw
         7xUsDZjTjKZ7YxKrpOzTeEbiJW00Wk2P+LR0yjoPQMBPk3ousICy967ycAGI1iwev18H
         9nDw==
X-Gm-Message-State: AOJu0YygSFzMmw78j0HpEomguvy+0rzSEAuo8T/lc35ecv/u2uopoKQM
	IjbCyPdGZqOvfs6TymaqbFUqJSSX1KQbhGG3OO2llIJ+dNF2vKUCjBvleYQdDLV8
X-Gm-Gg: ATEYQzxuCZ/WCOLt8P7p2vtxyZLhi5CXJw1750jTpnF742lxp8+ytoRopOhdIzk6ksZ
	fREDoxqLx2UCLYywB/PkNhyWEDyRZcxsBkE8TaejjYGnbsjXfVzudojOBwckoKO1i6DbQt3BTdV
	ej4E9+tMY6sxELwknHQFaZDwqG0R81Yo/F0+JCUsxpImtmuRff68pv7rlpjvDDolZoIVC7JCCmz
	KWfBwmMeDOuVzdzA87TENu/2zEeVp0yz3kOaqhlPmpWTXtjiBwMWxqmKjzNNpgKbUhuw8Snd0KH
	1jZ7z2IUF3zQYNkLPZUpvxfvII2MiwOV13SAwGfGgQJwcVhZjU0FF4/cLFI7H4nH0Ajq32SvxDJ
	jC/yP4p3m3uiOhZvK+ez9e4POxktRkdvKdObkS43JvX8QW5UqZl/S6pv5PAfuZLVyrdvY/3pOuf
	2FD73PPZiqAQ2b3upWgj5HboPBV/nPkR0y8Fp1f0vJd8rf47kg3/Zrt/SX8aMRqzG2sw==
X-Received: by 2002:a05:600c:8b86:b0:485:3473:d4a1 with SMTP id 5b1f17b1804b1-4853473d6dcmr167697795e9.34.1773162567282;
        Tue, 10 Mar 2026 10:09:27 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 15/27] xen/riscv: add very early virtual APLIC (vAPLIC) initialization support
Date: Tue, 10 Mar 2026 18:08:48 +0100
Message-ID: <e8bcf5618a19fb44d4391410f2f67ffd98a96647.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

At the current development stage, only domain vINTC init and deinit
operations are required, so implement those first.

Initialize vAPLIC's domaincfg to with the interrupt-enable bit set and
MSI delivery mode selected as the current solution is exepcted to have
always IMSIC, and initialize vintc->ops.

Other operations such as emulate_load(), emulate_store(), and is_access()
will be needed once guests are running and MMIO accesses to APLIC MMIO
range must be handled. These will be introduced separately later.

Introduce a structure to describe a virtual interrupt controller (vINTC)
and a vintc_ops structure, which provides operations to emulate load and
store accesses to interrupt controller MMIOs and to check whether a given
address falls within the MMIO range of a specific virtual interrupt
controller.

The vAPLIC implementation of these operations will be provided later
once guests can be run and these operations are actually needed.

Introduce these structures here as they are required for the implementation
of domain_vaplic_init() and domain_vaplic_alloc(). Also, introduce
vcpu_vaplic_init() and init vintc_ops->vcpu_init() with it.

Co-developed-by: Romain Caritey <Romain.Caritey@microchip.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/Makefile             |  1 +
 xen/arch/riscv/domain.c             | 11 ++---
 xen/arch/riscv/include/asm/domain.h |  2 +
 xen/arch/riscv/include/asm/intc.h   | 14 ++++++
 xen/arch/riscv/include/asm/vaplic.h | 36 ++++++++++++++
 xen/arch/riscv/intc.c               |  1 +
 xen/arch/riscv/vaplic.c             | 74 +++++++++++++++++++++++++++++
 7 files changed, 131 insertions(+), 8 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/vaplic.h
 create mode 100644 xen/arch/riscv/vaplic.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index d772b42386c0..b9941a230e03 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -24,6 +24,7 @@ obj-y += smpboot.o
 obj-y += stubs.o
 obj-y += time.o
 obj-y += traps.o
+obj-y += vaplic.o
 obj-y += vmid.o
 obj-y += vm_event.o
 obj-y += vsbi/
diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 515735b32e30..560b21b16ffb 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -11,6 +11,7 @@
 #include <asm/bitops.h>
 #include <asm/cpufeature.h>
 #include <asm/csr.h>
+#include <asm/intc.h>
 #include <asm/riscv_encoding.h>
 #include <asm/vtimer.h>
 
@@ -154,14 +155,8 @@ int arch_vcpu_create(struct vcpu *v)
     if ( (rc = vcpu_vtimer_init(v)) )
         goto fail;
 
-    /*
-     * As interrupt controller (IC) is not yet implemented,
-     * return an error.
-     *
-     * TODO: Drop this once IC is implemented.
-     */
-    rc = -EOPNOTSUPP;
-    goto fail;
+    if ( (rc = v->domain->arch.vintc->ops->vcpu_init(v)) )
+        goto fail;
 
     return rc;
 
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index bdb1ffd748c9..21a3e6876f36 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -98,6 +98,8 @@ struct arch_domain {
     struct paging_domain paging;
 #endif
 
+    struct vintc *vintc;
+
     /* Next unused device tree phandle number */
     uint32_t next_phandle;
 };
diff --git a/xen/arch/riscv/include/asm/intc.h b/xen/arch/riscv/include/asm/intc.h
index 8300d71d472f..c5a869db8bc5 100644
--- a/xen/arch/riscv/include/asm/intc.h
+++ b/xen/arch/riscv/include/asm/intc.h
@@ -16,6 +16,7 @@ struct cpu_user_regs;
 struct dt_device_node;
 struct irq_desc;
 struct kernel_info;
+struct vcpu;
 
 struct intc_info {
     enum intc_version hw_version;
@@ -47,6 +48,19 @@ struct intc_hw_operations {
                             const struct dt_device_node *intc);
 };
 
+struct vintc_ops {
+    /* Initialize some vINTC-related stuff for a vCPU */
+    int (*vcpu_init)(struct vcpu *vcpu);
+
+    /* Check if a register is virtual interrupt controller MMIO */
+    int (*is_access)(const struct vcpu *vcpu, const unsigned long addr);
+};
+
+struct vintc {
+    const struct intc_info *info;
+    const struct vintc_ops *ops;
+};
+
 void intc_preinit(void);
 
 void register_intc_ops(const struct intc_hw_operations *ops);
diff --git a/xen/arch/riscv/include/asm/vaplic.h b/xen/arch/riscv/include/asm/vaplic.h
new file mode 100644
index 000000000000..7684f3490829
--- /dev/null
+++ b/xen/arch/riscv/include/asm/vaplic.h
@@ -0,0 +1,36 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * xen/arch/riscv/vaplic.c
+ *
+ * Virtual RISC-V Advanced Platform-Level Interrupt Controller support
+ *
+ * Copyright (c) Microchip.
+ */
+
+#ifndef ASM__RISCV__VAPLIC_H
+#define ASM__RISCV__VAPLIC_H
+
+#include <xen/kernel.h>
+#include <xen/types.h>
+
+#include <asm/intc.h>
+
+struct domain;
+
+#define to_vaplic(v) container_of(v, struct vaplic, base)
+
+struct vaplic_regs {
+    uint32_t domaincfg;
+    uint32_t smsiaddrcfg;
+    uint32_t smsiaddrcfgh;
+};
+
+struct vaplic {
+    struct vintc base;
+    struct vaplic_regs regs;
+};
+
+int domain_vaplic_init(struct domain *d);
+void domain_vaplic_deinit(struct domain *d);
+
+#endif /* ASM__RISCV__VAPLIC_H */
diff --git a/xen/arch/riscv/intc.c b/xen/arch/riscv/intc.c
index c9f12651fda1..ff7a76accaca 100644
--- a/xen/arch/riscv/intc.c
+++ b/xen/arch/riscv/intc.c
@@ -6,6 +6,7 @@
 #include <xen/init.h>
 #include <xen/irq.h>
 #include <xen/lib.h>
+#include <xen/sched.h>
 #include <xen/spinlock.h>
 
 #include <asm/aia.h>
diff --git a/xen/arch/riscv/vaplic.c b/xen/arch/riscv/vaplic.c
new file mode 100644
index 000000000000..9b105de7ed7d
--- /dev/null
+++ b/xen/arch/riscv/vaplic.c
@@ -0,0 +1,74 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * xen/arch/riscv/vaplic.c
+ *
+ * Virtual RISC-V Advanced Platform-Level Interrupt Controller support
+ *
+ * Copyright (c) Microchip.
+ * Copyright (c) Vates
+ */
+
+#include <xen/errno.h>
+#include <xen/sched.h>
+#include <xen/xvmalloc.h>
+
+#include <asm/aia.h>
+#include <asm/imsic.h>
+#include <asm/intc.h>
+#include <asm/vaplic.h>
+
+#include "aplic-priv.h"
+
+static int __init cf_check vcpu_vaplic_init(struct vcpu *v)
+{
+    int rc = 0;
+
+    rc = vcpu_imsic_init(v);
+    if ( rc )
+        return rc;
+
+    imsic_set_guest_file_id(v, vgein_assign(v));
+
+    return rc;
+}
+
+static const struct vintc_ops vaplic_ops = {
+    .vcpu_init = vcpu_vaplic_init,
+};
+
+static struct vintc * __init vaplic_alloc(void)
+{
+    struct vaplic *v = NULL;
+
+    v = xvzalloc(struct vaplic);
+    if ( !v )
+        return NULL;
+
+    return &v->base;
+}
+
+int __init domain_vaplic_init(struct domain *d)
+{
+    int ret = 0;
+
+    d->arch.vintc = vaplic_alloc();
+    if ( !d->arch.vintc )
+    {
+        ret = -ENOMEM;
+        goto fail;
+    }
+
+    d->arch.vintc->ops = &vaplic_ops;
+    to_vaplic(d->arch.vintc)->regs.domaincfg =
+        APLIC_DOMAINCFG_IE | APLIC_DOMAINCFG_DM;
+
+ fail:
+    return ret;
+}
+
+void __init domain_vaplic_deinit(struct domain *d)
+{
+    struct vaplic *vaplic = to_vaplic(d->arch.vintc);
+
+    XVFREE(vaplic);
+}
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:17:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:17:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250501.1547996 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00i0-0001vb-7H; Tue, 10 Mar 2026 17:17:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250501.1547996; Tue, 10 Mar 2026 17:17:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00i0-0001uX-0w; Tue, 10 Mar 2026 17:17:28 +0000
Received: by outflank-mailman (input) for mailman id 1250501;
 Tue, 10 Mar 2026 17:17:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00aV-0001Q4-In
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:43 +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 ed38e779-1ca3-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 18:09:41 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-48534237460so31768675e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:41 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:39 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ed38e779-1ca3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162580; x=1773767380; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gZrHMXcRWo15HX+QGWY61zocvRFQ0LXPM9EZCmb5d0c=;
        b=FwS7z0Nm9EgEbonSVIKWjMgm4BUaj8RUpf8dvX17wwr6S8MmVBtlAjJoR+M5bFZPxW
         dikOJ9z3oaR1YNsmBpQrLuqx9xRAaO/5KY2BTpGSzIhaWL8+87b+9QnPJ+l94OmHc0mf
         JIkdBpd0t2/u/YfLJzkKfo2PrXy2HKn4aAVtSy12gyR7k3RUCivrz79uoMG6kXXk+frD
         Wy+SFmJBiMmGE3yOcqZ5GcS4u7jtU4jvROs5GXF07rSczuFVVe8ITAeSSnA9Gtozizck
         6XkqDWCner9H7oo6V/QclVzekowKuTZVtotHnCUGaCTX1sEzJjiP/BTkzDdQKCfo9GQu
         aoBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162580; x=1773767380;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=gZrHMXcRWo15HX+QGWY61zocvRFQ0LXPM9EZCmb5d0c=;
        b=I1bZtatwmHcRwNtOzbcAh/E9Cm7UQHqEEP/OiFauhahg5ZEB9TR7IF6fxA8WfAjsM0
         G/f1AqFl4gQlSfsywYIX7OUZxvscCyRkuJlgI4INQ3sn053Gbe7rDjk9QHqEXcyf/mzx
         fh0jTt7i0/k3G/ZKTxlKcrHbnmdAE+Cc0F1VP37BdxS1B4nGLsOkyBXCuk8gaFhg8EK7
         san/gGm/haqvYGFMR1slEl5gBtNxISII5Zlr/GDqFYUQcnWUmUUqrqz2/lr2WSLsMui5
         8hpEZ630J2KP8coAYjaxyb1x1T9+pF1T/nkBDNZsKAdb2S7eKrQdg03hR0h7h6h27KHv
         PTJQ==
X-Gm-Message-State: AOJu0YzVl90Gk9g+tz7VxvCdb95og1W4haxecFvFzu1a/9Cd2gVAqyyG
	qdov0YCbeLfzx4AseFBPCn5Rv0ImuhZ2YV+AyPx2GA7xJeyV0RAi/HygAlVHvV0K
X-Gm-Gg: ATEYQzwvyz85Nau+hCKLzatfP/r4SHsu1p8ITCe43rUabu6a5aIvLI0u0XJnKDqKLjn
	aPDMOK84p9izsOG0+5n4O4DNflpLlG2H8Vbab1nI72oaTQSKImuJnEZMZ1dJ9q/ZPEg+wB6Cwzl
	Cu206zBfobaHlO+hadqS98YQn9v/OhgGiXbcnX+1RV3cG+KytV+RQqhYd2ZDDugPFCsR4NflcgJ
	g/8F5855s9PPybCtsbzYENCaPkHU9l4Q80zW+wDdBOTqiQWCldeAB3nJPWRu5FSdapVOMofwdS2
	X6mWkj5uth+64PsBeZWNCmFmwgCJa4Zz9WDC1bZ/3o6t9E8gM0gjDH+Tgswb0pfRcwLvsixuVfx
	Gciq3lxShi/LVlTOLPkpZoVBc4Em7KomQCOQdM5v3qVqcMTO561ihyfWObrDOvrfscvNEeAxs3U
	yEClq7MVrYO0Llx9uUK+BTJKQe/x5rvS0NYyHxKrDRrBs56WMRgAlXaOKWe/+cqU9Pcw==
X-Received: by 2002:a05:600c:4ecd:b0:485:3c2d:d02b with SMTP id 5b1f17b1804b1-4853c2dd2e5mr118363285e9.22.1773162580213;
        Tue, 10 Mar 2026 10:09:40 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 26/27] xen/riscv: provide init_vuart()
Date: Tue, 10 Mar 2026 18:08:59 +0100
Message-ID: <71483b96126964a7cfcb24253cb04379a9f662c1.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

For debug purpose is enough to have only print messages from guest what is
now implemented in vsbi_legacy_ecall_handler().

For full guesst console support it will better to have something similar to
[1], thereby there is nothing specific should be done, at least, for now
and init_vuart() is provided to make dom0less code buildable.

[1] https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop/

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/dom0less-build.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/xen/arch/riscv/dom0less-build.c b/xen/arch/riscv/dom0less-build.c
index 180d653e5780..43c8bdc52300 100644
--- a/xen/arch/riscv/dom0less-build.c
+++ b/xen/arch/riscv/dom0less-build.c
@@ -6,6 +6,14 @@
 
 #include <asm/intc.h>
 
+int __init init_vuart(struct domain *d, struct kernel_info *kinfo,
+                      const struct dt_device_node *node)
+{
+    /* Nothing to do at the moment */
+
+    return 0;
+}
+
 int __init init_intc_phandle(struct kernel_info *kinfo, const char *name,
                              const int node_next, const void *pfdt)
 {
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:17:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:17:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250486.1547980 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00hw-0001d9-MC; Tue, 10 Mar 2026 17:17:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250486.1547980; Tue, 10 Mar 2026 17:17:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00hw-0001d2-JM; Tue, 10 Mar 2026 17:17:24 +0000
Received: by outflank-mailman (input) for mailman id 1250486;
 Tue, 10 Mar 2026 17:17:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00aG-0001QA-Ut
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:28 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e4b15c46-1ca3-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 18:09:26 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4852f8ac7e9so42815305e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:26 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e4b15c46-1ca3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162566; x=1773767366; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wy9UOUys3UP8UGf9H+CdlAJHj+mjN4CkBQ2c+J9DOhU=;
        b=eNkH5XxLel6q25erVdnuA/b+IoXyWg4q/2/UpEnkdLsPiMKy/4uu2H4blxnTOeL43u
         mvi9c5fS6pjKKLKoe0XSZOP2XkWZajy6qsALKX6kRK239LJgbNrv2B1iPwCOHdE7ublF
         ERA6JBJlI9lDkC5G3LpJwJkopK1TSvZlV52/HKToY9qbB9hoKHnK1uM1vc20MS8iMLo6
         5C/wve2g6jX4zePoPLBfUafAjkobFF8FRsB4ALCyqDA+VvmhIfx50V+hrw+eprrVcIhq
         1zZ6wQOWPwSWMqDsTFOZN4fLNkC6oztnWRPWpKX8OZ8hX1T0GLI4Y8UJa6GKT+28Oc/S
         L0Sg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162566; x=1773767366;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=wy9UOUys3UP8UGf9H+CdlAJHj+mjN4CkBQ2c+J9DOhU=;
        b=rP8cj9b6+erkrcpdNfhnebUHne8iCqDDYTPebTNEgXIr6ux/5Rp4i3MuLhax1VvblO
         VNqB1pYEGX35DSyGaIaZYswv+X7Est5Gvq31fSxzx8Z2I70MDDlG9vs3Mg2QalCiPfgV
         SLSLyVsVkVaG+i1DUaqG6DN2dnIlIxprpLxaSSr3MJwRfql/n38eCBq59LEPvHmcZZr4
         2PWIwfDXi0QhjQjxovTSgAAuY5Z7Nqa4mkyWYDd8zWx2jlTI+yyuWuhd1RxyGjcXiqPx
         ae1kNGDUuP4DOUsU8O+lHtMNs7iwhWXCH6gK/+MHcaU4J4mw+yJHg/+1v7XEvA6kYj+d
         tG8g==
X-Gm-Message-State: AOJu0YwImh8gYk4S0YGZUZflFVnvkN+QrS+dIp71TiOG9Yx/u8GHiw+Z
	QfI7M5WJbHt/9YqM/4AFAPuR70t2/TTL6wQmYtBLEI6/diQCzTQFMzTpUs+dRqLd
X-Gm-Gg: ATEYQzw+hsVIW+JvFrgEPa5FNJbhVxpwf2mJyqWdudyAArZjP/Kj0lFee4OPv61EX6E
	MjHmx4znsP/aTt8ipilMoPHMW3nbhFxTNEaNguLdVeQAS4DruLv6yE0hlFu54sALeyvRKns0r5C
	4qpKfoC0u5JrNH94skM6yEccPHLC3ehV+ybPX4hZ1mcBA2MZOW/b85L9eRpyq0X1xAo1VRCIoc8
	JJ9O/VFEc97tdRSWslN+B3/VSicV/7yJtcUN7UNzlgsntRVe/RieElmG9zvqUzZg8ibLcKHi/LK
	dd4LkFxhhviS4Dp96NEDFiMfIUsTkfmwvraln2nH8QchyUz5YWB8O1xXyT+yq9gMMRrOpUR7xmr
	F9sPkLqYkBDhGSLlh0mjPpca6Lr4vcE6yht5RMXMQ9sEcSoBqfwItUeYs1BF3VN+sglHHVNLjEb
	TNWk2ZeY11fpiBjaRMwPZLggi/ojPz8SHpgpjlZpRqaR+i3gvVPNaLta90smBxT/KqIQ==
X-Received: by 2002:a05:600c:3b89:b0:485:3f1c:d8a4 with SMTP id 5b1f17b1804b1-4853f1cda4cmr106634755e9.9.1773162566012;
        Tue, 10 Mar 2026 10:09:26 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 14/27] xen/riscv: introduce per-vCPU IMSIC state
Date: Tue, 10 Mar 2026 18:08:47 +0100
Message-ID: <8196fa8f000e384af697a44cb3d50ece966e82a7.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Each vCPU interacting with the IMSIC requires state to track the
associated guest interrupt file and its backing context.

Introduce a per-vCPU structure to hold IMSIC-related state, including
the guest interrupt file identifier and the CPU providing the backing
VS-file. Access to the guest file identifier is protected by a lock.

Initialize this structure during vCPU setup and store it in arch_vcpu.
The initial state marks the VS-file as software-backed until it becomes
associated with a physical CPU.

Add helpers to retrieve and update the guest interrupt file identifier.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/imsic.c              | 42 +++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/domain.h |  2 ++
 xen/arch/riscv/include/asm/imsic.h  | 17 ++++++++++++
 3 files changed, 61 insertions(+)

diff --git a/xen/arch/riscv/imsic.c b/xen/arch/riscv/imsic.c
index 0956b187705f..bbadbdf352a1 100644
--- a/xen/arch/riscv/imsic.c
+++ b/xen/arch/riscv/imsic.c
@@ -59,6 +59,29 @@ do {                            \
     csr_clear(CSR_SIREG, v);    \
 } while (0)
 
+unsigned int vcpu_guest_file_id(const struct vcpu *v)
+{
+    struct imsic_state *imsic_state = v->arch.imsic_state;
+    unsigned long flags;
+    unsigned int vsfile_id;
+
+    read_lock_irqsave(&imsic_state->vsfile_lock, flags);
+    vsfile_id = imsic_state->guest_file_id;
+    read_unlock_irqrestore(&imsic_state->vsfile_lock, flags);
+
+    return vsfile_id;
+}
+
+void imsic_set_guest_file_id(const struct vcpu *v, unsigned int guest_file_id)
+{
+    struct imsic_state *imsic_state = v->arch.imsic_state;
+    unsigned long flags;
+
+    write_lock_irqsave(&imsic_state->vsfile_lock, flags);
+    imsic_state->guest_file_id = guest_file_id;
+    write_unlock_irqrestore(&imsic_state->vsfile_lock, flags);
+}
+
 void __init imsic_ids_local_delivery(bool enable)
 {
     if ( enable )
@@ -315,6 +338,25 @@ static int imsic_parse_node(const struct dt_device_node *node,
     return 0;
 }
 
+int __init vcpu_imsic_init(struct vcpu *v)
+{
+    struct imsic_state *imsic_state;
+
+    /* Allocate IMSIC context */
+    imsic_state = xvzalloc(struct imsic_state);
+    if ( !imsic_state )
+        return -ENOMEM;
+
+    v->arch.imsic_state = imsic_state;
+
+    /* Setup IMSIC context  */
+    rwlock_init(&imsic_state->vsfile_lock);
+
+    imsic_state->guest_file_id = imsic_state->vsfile_pcpu = NR_CPUS;
+
+    return 0;
+}
+
 /*
  * Initialize the imsic_cfg structure based on the IMSIC DT node.
  *
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 506365f199c7..bdb1ffd748c9 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -52,6 +52,8 @@ struct arch_vcpu {
 
     struct vtimer vtimer;
 
+    struct imsic_state *imsic_state;
+
     register_t hcounteren;
     register_t hedeleg;
     register_t hideleg;
diff --git a/xen/arch/riscv/include/asm/imsic.h b/xen/arch/riscv/include/asm/imsic.h
index a63d56fbd5d9..13a563dce066 100644
--- a/xen/arch/riscv/include/asm/imsic.h
+++ b/xen/arch/riscv/include/asm/imsic.h
@@ -11,6 +11,7 @@
 #ifndef ASM_RISCV_IMSIC_H
 #define ASM_RISCV_IMSIC_H
 
+#include <xen/rwlock.h>
 #include <xen/spinlock.h>
 #include <xen/stdbool.h>
 #include <xen/types.h>
@@ -64,8 +65,20 @@ struct imsic_config {
     spinlock_t lock;
 };
 
+struct imsic_state {
+    /* IMSIC VS-file */
+    rwlock_t vsfile_lock;
+    unsigned int guest_file_id;
+    /*
+     * (vsfile_pcpu >= 0) => h/w IMSIC VS-file
+     * (vsfile_pcpu == NR_CPUS) => s/w IMSIC SW-file
+     */
+    unsigned long vsfile_pcpu;
+};
+
 struct dt_device_node;
 struct kernel_info;
+struct vcpu;
 
 int imsic_init(const struct dt_device_node *node);
 
@@ -78,4 +91,8 @@ void imsic_ids_local_delivery(bool enable);
 
 int imsic_make_dt_node(const struct kernel_info *kinfo);
 
+int vcpu_imsic_init(struct vcpu *v);
+unsigned int vcpu_guest_file_id(const struct vcpu *v);
+void imsic_set_guest_file_id(const struct vcpu *v, unsigned int guest_file_id);
+
 #endif /* ASM_RISCV_IMSIC_H */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:17:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:17:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250499.1547989 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00hz-0001sp-Tj; Tue, 10 Mar 2026 17:17:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250499.1547989; Tue, 10 Mar 2026 17: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 1w00hz-0001sf-Qa; Tue, 10 Mar 2026 17:17:27 +0000
Received: by outflank-mailman (input) for mailman id 1250499;
 Tue, 10 Mar 2026 17: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=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00aJ-0001QA-9q
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:31 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e635720d-1ca3-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 18:09:29 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-48539d21b76so20305135e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:29 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:28 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e635720d-1ca3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162569; x=1773767369; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1QzhisNeEOl5GG/axHTaY1VrOGJ87S7KPahT63K4FL0=;
        b=QRnE/YbuQxS5aJsCV1+VHm3IC/UsB81S8opwqaYiMnl3i672gr5xq3uwdlCOzBOaHR
         HzEAe7scP69C2TpkeCRcpAwSZkj2qlea0fdUReJARKMwivOnu1QPubvlHIws9SBO7A6m
         ll1TAX5d7wHh7VA+ihPtpsJOoO7ud3BQmaBlobhUeC41cKAYhltGByFIqS0kanz0VDTM
         vW9Dbwg5JO3mhYWWenjb1bbRdCy4euHUot+8tzidopxZ0388Q9GwK0i0Hw6qhcRiKUTN
         yvp/9CK063/uTOaxKU4+FA550XTu7mHht1eVgRN552Ck+k45H+jx3WNOLEy1CzagNCdr
         kyTw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162569; x=1773767369;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=1QzhisNeEOl5GG/axHTaY1VrOGJ87S7KPahT63K4FL0=;
        b=uHhY1BSJcVMoHtrsi6XEY0VoUuRNenbTaAz593RRwsg+H3Znb8gj8Qlw1uGQJV5yU6
         mPvpcA1DWm0OamktGw99yTDsWtx5yyk6HUyfLBJtNlZZONmyAmD29hEktzpXJIBrsERi
         ARAoxDF24ZvQBVBrhd6ofWQ+NA5Qz087di6RS/QuFJhVg8frSkk9W2F/0Mq0PJo0Sm1f
         K5BnYBie7IofBFf6BlEliWGhAwfQeujqss7KmgeGr0vye6ebT5Y5d9xSKCFcR7jI54Vh
         OOOJyCTUaYbEOmSZGsS3dLqnmS3MJrXd59g+gsk+K/BUYqhytwNs+/H5Vh1JNdORSkTc
         r6kQ==
X-Gm-Message-State: AOJu0YwUjtVCh53HhmnBe9NzB1H9p2gVx2NwP+o51D3ElOjTAINqB1c5
	IpAInqJZFqLx2WdPOaDTqEgBEXotpNTs81gxm8t1Z3WbgIYXh/atgEVKv2nOOgou
X-Gm-Gg: ATEYQzybt1JojwHVHE5NESSNSDv6kr2dKw59Ge+Lq6sbMAIzu4k5URkk1oNlt/TZ+gs
	D1Bl4RW/qAEs4d+sb1PHA7rnh4NC9rRRhmYafay0oYuUrNZlQ+7pBB9VATgUSM5N5EOkN9Yy9J8
	VWwVzH4EnbDexnUj8gvkhlA2GNw0L3kfSgIoZET5VDPnmCIx0EAIpp4JozMClpXdmk6IRK89abc
	3FpiJppI5shIkgUpwW+KcJ/SFa1Ci60UJS+lcv9GeWCHtT2LIkD/hdzgKZ752qYUr74xgTrPsaq
	JLYHVNuF+7PuDoRpaidzhj00mqEyM0o8/KsZZ76+KxnpMVPz9hlzHrPWWNYXRGxs5HzDazY+YbJ
	7ZbHdfpGRu7aBJN8zfzPEMKZ05JwmSf3NtVKTiS1cGSvZ79n2o4RRXaPF0zUhRnm4qXiJf+FP6r
	xg/0E8AmWEBX8oSYH/HeprzQwBKVJsZ+KGCuzz/LcgteOiZIstg6sfEEEsgf5EcSmSPA==
X-Received: by 2002:a05:600c:8719:b0:485:39d1:b4ca with SMTP id 5b1f17b1804b1-48539d1bb25mr151543855e9.9.1773162568498;
        Tue, 10 Mar 2026 10:09:28 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 16/27] xen/riscv: implement IRQ mapping for device passthrough
Date: Tue, 10 Mar 2026 18:08:49 +0100
Message-ID: <10654a6c38fa929b5fdf6f214badfe4f60fe78d4.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add initial support for assigning device interrupts to domains in
dom0less configurations.

IRQs described in the device tree are retrieved and authorized for
the target domain. Interrupts that are not connected to the primary
interrupt controller (at the momemnt, I haven't seen the platform
with secondary interrupt controller) are ignored, and IRQs already
assigned to another domain are rejected to prevent sharing.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
For better undesrstanding how   auth_irq_bmp[] is going to be used
it is also introduced two extra patches which are going after this.

They aren't really needed now as this code will be used when guest
will be ran, but it improves understanding and it in general can
go with this patch series.
---
---
 xen/arch/riscv/include/asm/aplic.h |   2 +
 xen/arch/riscv/include/asm/intc.h  |  12 +++
 xen/arch/riscv/include/asm/setup.h |  17 ++++
 xen/arch/riscv/intc.c              |   8 ++
 xen/arch/riscv/vaplic.c            | 124 ++++++++++++++++++++++++++++-
 5 files changed, 162 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/include/asm/aplic.h b/xen/arch/riscv/include/asm/aplic.h
index b0724fe6f360..55cd4a128de7 100644
--- a/xen/arch/riscv/include/asm/aplic.h
+++ b/xen/arch/riscv/include/asm/aplic.h
@@ -15,6 +15,8 @@
 
 #include <asm/imsic.h>
 
+#define APLIC_NUM_REGS 32
+
 #define APLIC_DOMAINCFG_IE      BIT(8, U)
 #define APLIC_DOMAINCFG_DM      BIT(2, U)
 
diff --git a/xen/arch/riscv/include/asm/intc.h b/xen/arch/riscv/include/asm/intc.h
index c5a869db8bc5..76d2fd09cb8b 100644
--- a/xen/arch/riscv/include/asm/intc.h
+++ b/xen/arch/riscv/include/asm/intc.h
@@ -16,6 +16,7 @@ struct cpu_user_regs;
 struct dt_device_node;
 struct irq_desc;
 struct kernel_info;
+struct rangeset;
 struct vcpu;
 
 struct intc_info {
@@ -54,11 +55,22 @@ struct vintc_ops {
 
     /* Check if a register is virtual interrupt controller MMIO */
     int (*is_access)(const struct vcpu *vcpu, const unsigned long addr);
+
+    /*
+     * Retrieves the interrupts configuration from a device tree node and maps
+     * those interrupts to the target domain.
+     */
+    int (*map_device_irqs_to_domain)(struct domain *d,
+                                     struct dt_device_node *dev,
+                                     bool need_mapping,
+                                     struct rangeset *irq_ranges);
 };
 
 struct vintc {
     const struct intc_info *info;
     const struct vintc_ops *ops;
+
+    void *private;
 };
 
 void intc_preinit(void);
diff --git a/xen/arch/riscv/include/asm/setup.h b/xen/arch/riscv/include/asm/setup.h
index 2215894cfbb1..1c23043f409f 100644
--- a/xen/arch/riscv/include/asm/setup.h
+++ b/xen/arch/riscv/include/asm/setup.h
@@ -5,6 +5,10 @@
 
 #include <xen/types.h>
 
+struct domain;
+struct dt_device_node;
+struct rangeset;
+
 #define max_init_domid (0)
 
 void setup_mm(void);
@@ -13,6 +17,19 @@ void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len);
 
 void init_csr_masks(void);
 
+/* TODO: move somewhere to common header? */
+/*
+ * Retrieves the interrupts configuration from a device tree node and maps
+ * those interrupts to the target domain.
+ *
+ * Returns:
+ *   < 0 error
+ *   0   success
+ */
+int map_device_irqs_to_domain(struct domain *d, struct dt_device_node *dev,
+                              bool need_mapping,
+                              struct rangeset *irq_ranges);
+
 #endif /* ASM__RISCV__SETUP_H */
 
 /*
diff --git a/xen/arch/riscv/intc.c b/xen/arch/riscv/intc.c
index ff7a76accaca..a91dbc5e997c 100644
--- a/xen/arch/riscv/intc.c
+++ b/xen/arch/riscv/intc.c
@@ -79,3 +79,11 @@ int __init intc_make_domu_dt_node(const struct kernel_info *kinfo)
 
     return -ENOSYS;
 }
+
+int map_device_irqs_to_domain(struct domain *d, struct dt_device_node *dev,
+                              bool need_mapping,
+                              struct rangeset *irq_ranges)
+{
+    return d->arch.vintc->ops->map_device_irqs_to_domain(d, dev, need_mapping,
+                                                         irq_ranges);
+}
diff --git a/xen/arch/riscv/vaplic.c b/xen/arch/riscv/vaplic.c
index 9b105de7ed7d..0c69f087cf4d 100644
--- a/xen/arch/riscv/vaplic.c
+++ b/xen/arch/riscv/vaplic.c
@@ -9,6 +9,7 @@
  */
 
 #include <xen/errno.h>
+#include <xen/iocap.h>
 #include <xen/sched.h>
 #include <xen/xvmalloc.h>
 
@@ -19,6 +20,113 @@
 
 #include "aplic-priv.h"
 
+struct vaplic_priv {
+    /* Contains a legal interrupts for a domain */
+    uint32_t auth_irq_bmp[APLIC_NUM_REGS];
+};
+
+static bool is_irq_shared_among_domains(const struct domain *d,
+                                        const unsigned int irq_num)
+{
+    struct domain *tmp;
+    unsigned int reg_num = irq_num / APLIC_NUM_REGS;
+    unsigned int bit_pos = irq_num % APLIC_NUM_REGS;
+
+    for_each_domain ( tmp )
+    {
+        uint32_t *auth_irq_bmp;
+
+        if ( tmp == d )
+            continue;
+
+        auth_irq_bmp = tmp->arch.vintc->private;
+
+        if ( auth_irq_bmp[reg_num] & BIT(bit_pos, U) )
+        {
+            printk("%s: irq%d is shared between %pd and %pd\n", __func__,
+                   irq_num, tmp, d);
+
+            return true;
+        }
+    }
+
+    return false;
+}
+
+int vaplic_map_device_irqs_to_domain(struct domain *d,
+                                     struct dt_device_node *dev,
+                                     bool need_mapping,
+                                     struct rangeset *irq_ranges)
+{
+    unsigned int i, nirq;
+    int res, irq;
+    struct dt_raw_irq rirq;
+    uint32_t *auth_irq_bmp = d->arch.vintc->private;
+    unsigned int reg_num;
+
+    nirq = dt_number_of_irq(dev);
+
+    /* Give permission and map IRQs */
+    for ( i = 0; i < nirq; i++ )
+    {
+        res = dt_device_get_raw_irq(dev, i, &rirq);
+        if ( res )
+        {
+            printk(XENLOG_ERR "Unable to retrieve irq %u for %s\n",
+                   i, dt_node_full_name(dev));
+            return res;
+        }
+
+        /*
+         * Don't map IRQ that have no physical meaning
+         * ie: IRQ whose controller is not APLIC/IMSIC/PLIC.
+         */
+        if ( rirq.controller != dt_interrupt_controller )
+        {
+            dt_dprintk("irq %u not connected to primary controller."
+                       "Connected to %s\n", i,
+                       dt_node_full_name(rirq.controller));
+            continue;
+        }
+
+        irq = platform_get_irq(dev, i);
+        if ( irq < 0 )
+        {
+            printk("Unable to get irq %u for %s\n", i, dt_node_full_name(dev));
+            return irq;
+        }
+
+        res = irq_permit_access(d, irq);
+        if ( res )
+        {
+            printk(XENLOG_ERR "Unable to permit to %pd access to IRQ %u\n", d,
+                   irq);
+            return res;
+        }
+
+        reg_num = irq / APLIC_NUM_REGS;
+
+        if ( is_irq_shared_among_domains(d, irq) )
+        {
+            printk("%s: Shared IRQ isn't supported\n", __func__);
+            return -EINVAL;
+        }
+
+        auth_irq_bmp[reg_num] |= BIT(irq % APLIC_NUM_REGS, U);
+
+        dt_dprintk("  - IRQ: %u\n", irq);
+
+        if ( irq_ranges )
+        {
+            res = rangeset_add_singleton(irq_ranges, irq);
+            if ( res )
+                return res;
+        }
+    }
+
+    return 0;
+}
+
 static int __init cf_check vcpu_vaplic_init(struct vcpu *v)
 {
     int rc = 0;
@@ -34,6 +142,7 @@ static int __init cf_check vcpu_vaplic_init(struct vcpu *v)
 
 static const struct vintc_ops vaplic_ops = {
     .vcpu_init = vcpu_vaplic_init,
+    .map_device_irqs_to_domain = vaplic_map_device_irqs_to_domain,
 };
 
 static struct vintc * __init vaplic_alloc(void)
@@ -62,13 +171,26 @@ int __init domain_vaplic_init(struct domain *d)
     to_vaplic(d->arch.vintc)->regs.domaincfg =
         APLIC_DOMAINCFG_IE | APLIC_DOMAINCFG_DM;
 
+    d->arch.vintc->private = xvzalloc(struct vaplic_priv);
+    if ( !d->arch.vintc->private )
+    {
+        ret = -ENOMEM;
+        goto fail;
+    }
+
+    return ret;
+
  fail:
+    domain_vaplic_deinit(d);
+
     return ret;
 }
 
 void __init domain_vaplic_deinit(struct domain *d)
 {
-    struct vaplic *vaplic = to_vaplic(d->arch.vintc);
+    struct vintc *vintc = d->arch.vintc;
+    struct vaplic *vaplic = to_vaplic(vintc);
 
+    XVFREE(vintc->private);
     XVFREE(vaplic);
 }
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:17:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:17:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250510.1548008 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00iI-0002nF-DU; Tue, 10 Mar 2026 17:17:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250510.1548008; Tue, 10 Mar 2026 17: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 1w00iI-0002n8-9c; Tue, 10 Mar 2026 17:17:46 +0000
Received: by outflank-mailman (input) for mailman id 1250510;
 Tue, 10 Mar 2026 17: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=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00aN-0001Q4-HD
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09: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 e916d655-1ca3-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 18:09:34 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4853aec185aso22522015e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:34 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:32 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e916d655-1ca3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162573; x=1773767373; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vggNX4iy/s3rYe31fA6JCPRN0nqiyw41a2u9JUGJC2M=;
        b=A2A7GGJ0CAL4ikMnK2xD81wYIzdXp39h5Zq/4vsUGRd5AAbzcp2wfPNKv4aCeFr04B
         C4IbuMfaJg+/kwf7iFC7ERmKa2lyb/rL60QRuKtcY+M5bQ0kRLhYbvE82t5yai5yh3rf
         /avseKkvQXMffFCmcBc/FeMTFbjpP9WW61twM2zGhRBwzJVbBl9DaB5SHGLr+XVJ2J26
         uGpNrwjofjMFzPFKjfSnCPe278/WhkG0LOvCONnmF5/7++mAxzgQu/CrYLHjzobcuMXp
         xeJacLC+YzLuSdchQgjCPfOWsDtUDr0prU6K+szRuJKjE4jxzn0q3asWrKyvDMvK5Tzy
         HQYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162573; x=1773767373;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=vggNX4iy/s3rYe31fA6JCPRN0nqiyw41a2u9JUGJC2M=;
        b=Ig6dVDQ+LcTI/hW/gNALG5n4zaBY5wgNasgTTkJ4IEcQLvm+1Wq8658V+Q84j7rO14
         eXVqsgEVi4uWTXQO68mFpKgebN3sHw+E4sFBiYbyngX6A7x4xC2n8bXfMCYvsuDVqN21
         sdCoDBrqOmzzb6Vg/Rpii8HVBfOq4W560EjSnPvAS+nrarQ1LTapvErbtHJm387d43JX
         Jzx+0HwnfNIJ/fRIBwBa5D7sQGaXmj4eTdEsBsuhPuDH1mUt9efG6fG0xabWX5YbgenC
         tIuKWGqPoBykdjwjASKL7Df5f8v/Lq5dnWG89zK3Ix2jkzVekOXHdgAT5PTs6RPeGDql
         CIzA==
X-Gm-Message-State: AOJu0YxHYzbxq5VrgemTmpLf7h5FhkmIfrK8Fi9ObWdSLz2wOJuE5pHv
	FFdfmOHZFv0QrMiXQwwGs51QLEOF+ev2K3HAH9iK6BiHqV+3CRgK9FlwB9lZOYo1
X-Gm-Gg: ATEYQzxt0YRSDIoNzbT7YtZ4xE66nEdsGPuZf1CMrlnU2egtqfIJaukap7FwDAhJVMG
	Bv3IAXfyZTAorslb5BBZgUumzuIqXiSoI7tYB++k1faqAVA+vsyqKYwGGz3ne2QlTncm8WpleKS
	rOtAewu+pwtW6TnTBYz6GYH9DDeZAu3B8wapYPhB59y7CrPR6R8EczrceWT3CAuzZyStowGC+5m
	DiKGicdCJuU/SXmH3aFf23LhCYlN+ca2ecqI8n8BA3vzcwm7GMp6PIFCqDs7j1MZTEEom/4nZNE
	9P/EnKbLGT7MyHlDbxye5MhdoFzSjdvQsJj4+YhfpX1Y4Ef95C33LJdgmCDVVAjRlVTi0hiNC3x
	HWIOKZB0mzZ7jfAqBFcZpIHtDx2Y6yRHNU4EYIYqDi2j61xrRJC/cGY3LT0xFCOHKp6mRiLwZMg
	5fu30+Oej0zHO7+t75TBUU2+4yRdP9lfxIcpNHL1GqYp6J/O8Fnf/gN+dWy0z1hylL5g==
X-Received: by 2002:a05:600c:a08b:b0:485:42ba:fc8 with SMTP id 5b1f17b1804b1-48542ba105dmr58826615e9.4.1773162573184;
        Tue, 10 Mar 2026 10:09:33 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 20/27] xen/riscv: emulate guest reads from virtual APLIC MMIO
Date: Tue, 10 Mar 2026 18:08:53 +0100
Message-ID: <626d0874c2c7ec858725860bc3857691f0f829ad.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Guests may read back APLIC registers to inspect interrupt state and
routing configuration. When virtualising APLIC, Xen must intercept
these MMIO reads and present a consistent, restricted view of the
virtual interrupt controller state. Note that at the moment only
MSI mode is supported.

Introduce vaplic_emulate_load() to handle guest loads from virtual
APLIC registers. Readback is filtered through the domain’s authorised
interrupt bitmap so that guests can observe state only for interrupts
they are permitted to control.

Registers defined by the AIA specification to read as zero are handled
accordingly, while other registers return masked values derived from
the underlying virtual APLIC state. Unsupported accesses are treated
as fatal, as they indicate a emulation error.

Co-developed-by: Romain Caritey <Romain.Caritey@microchip.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/include/asm/intc.h |  4 ++
 xen/arch/riscv/vaplic.c           | 69 +++++++++++++++++++++++++++++++
 2 files changed, 73 insertions(+)

diff --git a/xen/arch/riscv/include/asm/intc.h b/xen/arch/riscv/include/asm/intc.h
index 92a74eede4a0..45d41e191e30 100644
--- a/xen/arch/riscv/include/asm/intc.h
+++ b/xen/arch/riscv/include/asm/intc.h
@@ -56,6 +56,10 @@ struct vintc_ops {
     /* Initialize some vINTC-related stuff for a vCPU */
     int (*vcpu_init)(struct vcpu *vcpu);
 
+    /* Emulate load to virtual interrupt controller MMIOs */
+    int (*emulate_load)(const struct vcpu *vcpu, unsigned long addr,
+                        uint32_t *out);
+
     /* Emulate store to virtual interrupt controller MMIOs */
     int (*emulate_store)(const struct vcpu *vcpu, unsigned long addr,
                          uint32_t in);
diff --git a/xen/arch/riscv/vaplic.c b/xen/arch/riscv/vaplic.c
index 5540b4884179..293729ad0ad4 100644
--- a/xen/arch/riscv/vaplic.c
+++ b/xen/arch/riscv/vaplic.c
@@ -137,6 +137,74 @@ int vaplic_map_device_irqs_to_domain(struct domain *d,
     return 0;
 }
 
+static int vaplic_emulate_load(const struct vcpu *vcpu,
+                               const unsigned long addr, uint32_t *out)
+{
+    const struct vaplic *vaplic = to_vaplic(vcpu->domain->arch.vintc);
+    struct aplic_priv *priv = vaplic->base.info->private;
+    const unsigned long offset = addr & APLIC_REG_OFFSET_MASK;
+    const uint32_t *auth_irq_bmp = vcpu->domain->arch.vintc->private;
+    bool auth_bit;
+
+    switch ( offset )
+    {
+    case APLIC_DOMAINCFG:
+        *out = vaplic->regs.domaincfg;
+        break;
+
+    case APLIC_SETIPNUM:
+    case APLIC_SETIPNUM_LE:
+    case APLIC_CLRIPNUM:
+    case APLIC_SETIENUM:
+        /*
+         * Based on the RISC-V AIA sepc a read of these registers
+         * always returns zero
+         */
+        *out = 0;
+        break;
+
+    case APLIC_SETIP_BASE ... APLIC_SETIP_LAST:
+        auth_bit = auth_irq_bmp[regval_to_irqn(offset - APLIC_SETIP_BASE)];
+        *out = APLIC_REG_GET(priv->regs, addr - priv->paddr_start) & auth_bit;
+        break;
+
+    case APLIC_CLRIP_BASE ... APLIC_CLRIP_LAST:
+        auth_bit = auth_irq_bmp[regval_to_irqn(offset - APLIC_CLRIP_BASE)];
+        *out = APLIC_REG_GET(priv->regs, addr - priv->paddr_start) & auth_bit;
+        break;
+
+    case APLIC_SETIE_BASE ... APLIC_SETIE_LAST:
+        auth_bit = auth_irq_bmp[regval_to_irqn(offset - APLIC_CLRIP_BASE)];
+        *out = APLIC_REG_GET(priv->regs, addr - priv->paddr_start) & auth_bit;
+        break;
+
+    case APLIC_CLRIE_BASE ... APLIC_CLRIE_LAST:
+        auth_bit = auth_irq_bmp[regval_to_irqn(offset - APLIC_CLRIE_BASE)];
+        *out = APLIC_REG_GET(priv->regs, addr - priv->paddr_start) & auth_bit;
+        break;
+
+    case APLIC_TARGET_BASE ... APLIC_TARGET_LAST:
+        /*
+         * As target registers start for 1:
+         *  0x3000 genmsi
+         *  0x3004 target[1]
+         *  0x3008 target[2]
+         *   ...
+         *  0x3FFC target[1023]
+         * It is necessary to calculate an interrupt number by substracting
+         * of APLIC_GENMSI instead of APLIC_TARGET_BASE.
+         */
+        auth_bit = auth_irq_bmp[regval_to_irqn(offset - APLIC_GENMSI)];
+        *out = APLIC_REG_GET(priv->regs, addr - priv->paddr_start) & auth_bit;
+        break;
+
+    default:
+        panic("%s: unsupported register offset: %#lx", __func__, offset);
+    }
+
+    return 0;
+}
+
 static void vaplic_dm_update_target(const unsigned long hart_id, uint32_t *iprio)
 {
     *iprio &= APLIC_TARGET_IPRIO_MASK;
@@ -327,6 +395,7 @@ static const struct vintc_ops vaplic_ops = {
     .map_device_irqs_to_domain = vaplic_map_device_irqs_to_domain,
     .is_access = vaplic_is_access,
     .emulate_store = vaplic_emulate_store,
+    .emulate_load = vaplic_emulate_load,
 };
 
 static struct vintc * __init vaplic_alloc(void)
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:17:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:17:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250520.1548017 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00iR-0003JF-OX; Tue, 10 Mar 2026 17:17:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250520.1548017; Tue, 10 Mar 2026 17:17:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00iR-0003J6-Kj; Tue, 10 Mar 2026 17:17:55 +0000
Received: by outflank-mailman (input) for mailman id 1250520;
 Tue, 10 Mar 2026 17:17:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00aM-0001Q4-HC
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:34 +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 e86f8024-1ca3-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 18:09:33 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-48529c325f0so30678765e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:33 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e86f8024-1ca3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162572; x=1773767372; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dla2ZfjKuAdtGf39njgNy8xyCVJufRaAAQSeRsdKKdA=;
        b=RIb/tv4cYnIPfFle98vInh+ohr451UXDC/EyxAOwEMmzdq2mKFZeiAqiXpHz1I7l5A
         N4T/ncLVrATIdFPF+KY6pzb0aYbWzoe6GaXioto//Ofiv9AP5M/Fk+lpfIZRx46l1OXO
         /Jb36T0qPXvwryMlZc5z1yb4Ol2uJ+IQZxHdWccwVL5jCaO2INmKkLTJhzBkAJB+ziHF
         6w4vWW7qgN4uceQ86Zc5/8CAXWrgXNzmXdXmB7cZgHR/TaAJd8GpozNgbe98GrtyiQOW
         LQ3+YKnewLEGxXBx2q47yL5AqX16ohdT5T5cGS+AWOw7UhnbNCkmzp0N9gE8vFUOj/rt
         1EGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162572; x=1773767372;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=dla2ZfjKuAdtGf39njgNy8xyCVJufRaAAQSeRsdKKdA=;
        b=lRN+lRlSQ67kytKB7gVJSz/Tx4zZCawruhHr6LgV0t1uSsMtVKu+OByQRA9FOy+To+
         EorKqrA2rbPGTKJ/pqIBoHzSLVxURsjpAvBPkYTpQhLg5JbUqnTRm3SUxRopYMbxo3dz
         JqlUp01WJEfMqxSzdn+ggsge90JJ2yBnQkP0xenUWHCe2avRpgv/s0PqgZYwoazORlBA
         YUhqF57NyJHDbkW3Svgw8rpsCyqIDN09yXlYCfeDyMRojGXhoWIWzJEkmKbw7FmstwwM
         GKwlU37rs1YCZWh8j58npqM6jYGxNgk9u7p1HuW1ETmMaafF+iEcVNNbnmNxNAxJUJkY
         DzSw==
X-Gm-Message-State: AOJu0YxYNN4ctG4lCMHCbzmJp3aEyvA9Ky+iu67+G+qG3+qvR2Ib9zl5
	xzVrng4Qf5kVAAvXgyj8+HPM8S/6JaRKlUkr98De8nAKhAcctt6PdPefMRIRNMMh
X-Gm-Gg: ATEYQzy2J2cgC/xJ68DXEViZb6l6TESe3/fjBpj/y+JAJ6j2Rjm8ByZ5ux8Gif8KoX+
	XtwDb1LOZcnz5agsb87JAJso1CEe13YOCJtWxH48j74sbAQKS39LxGlP9/3uMM27g7eQUW2h6XR
	lPNBhGgxVdR1R0fRdVy736D0nzDZbVi2yJ7f7a4bxeSm6mj/beHLSr1wSO6V0Mf9xzuIBraJGo+
	DbAyrDUoN3mZde4ltqrYaGu2oLK74rim8fRh2hDYSdb2ptjWROUZCqqLcLsbGQeU+X6ghonlSUL
	XJk9EKGPI5zQkgPlfVFwqj6pCwgyIStoy03ySFguhlyqHVECarzliRS+/g17FNNGXsWmhvZitSs
	dhHtqXgRzGYamh+GYVjXZGTbosvTieldk3d1Dt29V8mrAoPV4rEx3mEa9gnoQPX6Vvn3qhlhq35
	sfR9WHQBPx06QGRuuYTbSEbMiN0AM2mTfH+URL36i6O9LtwNInu8oOchFXqEX0gC1obg==
X-Received: by 2002:a05:600c:46c4:b0:485:304a:58cd with SMTP id 5b1f17b1804b1-485304a5a00mr211584565e9.4.1773162571955;
        Tue, 10 Mar 2026 10:09:31 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 19/27] xen/riscv: emulate guest writes to virtual APLIC MMIO
Date: Tue, 10 Mar 2026 18:08:52 +0100
Message-ID: <e29eace5006929e61da347814b9759896d179e28.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

RISC-V guests program interrupt routing by writing to APLIC registers.
When APLIC is virtualised, Xen must intercept these MMIO writes and
translate them into updates of the virtual interrupt controller state.

Introduce vaplic_emulate_store() to validate guest APLIC accesses and
apply only those changes that are permitted by the domain’s authorised
interrupt bitmap. Writes targeting unauthorised interrupts are ignored,
ensuring that guests cannot affect interrupts they do not own.

APLIC TARGET writes are rewritten to reflect the effective interrupt
delivery configuration, depending on whether the domain operates in
direct (isn't supported by Xen) or MSI mode. This ensures that
guest-visible routing requests are correctly mapped onto the underlying
virtual interrupt topology.

Unexpected or unsupported register accesses are treated as fatal, as
they indicate a emulation bug.

Co-developed-by: Romain Caritey <Romain.Caritey@microchip.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/include/asm/intc.h |   4 +
 xen/arch/riscv/vaplic.c           | 169 ++++++++++++++++++++++++++++++
 2 files changed, 173 insertions(+)

diff --git a/xen/arch/riscv/include/asm/intc.h b/xen/arch/riscv/include/asm/intc.h
index e6b6c179415a..92a74eede4a0 100644
--- a/xen/arch/riscv/include/asm/intc.h
+++ b/xen/arch/riscv/include/asm/intc.h
@@ -56,6 +56,10 @@ struct vintc_ops {
     /* Initialize some vINTC-related stuff for a vCPU */
     int (*vcpu_init)(struct vcpu *vcpu);
 
+    /* Emulate store to virtual interrupt controller MMIOs */
+    int (*emulate_store)(const struct vcpu *vcpu, unsigned long addr,
+                         uint32_t in);
+
     /* Check if a register is virtual interrupt controller MMIO */
     int (*is_access)(const struct vcpu *vcpu, const unsigned long addr);
 
diff --git a/xen/arch/riscv/vaplic.c b/xen/arch/riscv/vaplic.c
index 82e74a609ee6..5540b4884179 100644
--- a/xen/arch/riscv/vaplic.c
+++ b/xen/arch/riscv/vaplic.c
@@ -20,6 +20,16 @@
 
 #include "aplic-priv.h"
 
+#define APLIC_REG_GET(addr, offset) \
+    readl((void *)((vaddr_t)(addr) + offset))
+#define APLIC_REG_SET(addr, offset, value) \
+    writel(value, (void *)((vaddr_t)(addr) + offset))
+
+#define AUTH_IRQ_BIT(irqnum) (auth_irq_bmp[(irqnum) / APLIC_NUM_REGS] & \
+                              BIT((irqnum) % APLIC_NUM_REGS, U))
+
+#define regval_to_irqn(reg_val) ((reg_val) / sizeof(uint32_t))
+
 struct vaplic_priv {
     /* Contains a legal interrupts for a domain */
     uint32_t auth_irq_bmp[APLIC_NUM_REGS];
@@ -127,6 +137,164 @@ int vaplic_map_device_irqs_to_domain(struct domain *d,
     return 0;
 }
 
+static void vaplic_dm_update_target(const unsigned long hart_id, uint32_t *iprio)
+{
+    *iprio &= APLIC_TARGET_IPRIO_MASK;
+    *iprio |= (hart_id << APLIC_TARGET_HART_IDX_SHIFT);
+}
+
+static void vaplic_update_target(const struct imsic_config *imsic,
+                                 const int guest_id,
+                                 const unsigned long hart_id, uint32_t *value)
+{
+    unsigned long group_index;
+    unsigned int hhxw = imsic->group_index_bits;
+    unsigned int lhxw = imsic->hart_index_bits;
+    unsigned int hhxs = imsic->group_index_shift - IMSIC_MMIO_PAGE_SHIFT * 2;
+    unsigned long base_ppn = imsic->msi[hart_id].base_addr >> IMSIC_MMIO_PAGE_SHIFT;
+
+    group_index = (base_ppn >> (hhxs + 12)) & (BIT(hhxw, UL) - 1);
+
+    *value &= APLIC_TARGET_EIID_MASK;
+    *value |= guest_id << APLIC_TARGET_GUEST_IDX_SHIFT;
+    *value |= hart_id << APLIC_TARGET_HART_IDX_SHIFT;
+    *value |= group_index << (lhxw + APLIC_TARGET_HART_IDX_SHIFT) ;
+}
+
+#define CALC_REG_VALUE(base) \
+{ \
+    uint32_t index; \
+    uint32_t tmp_val; \
+    index = regval_to_irqn(offset - base); \
+    tmp_val = APLIC_REG_GET(priv->regs, aplic_addr) & ~auth_irq_bmp[index]; \
+    value &= auth_irq_bmp[index]; \
+    value |= tmp_val; \
+}
+
+static int cf_check vaplic_emulate_store(const struct vcpu *vcpu,
+                                         unsigned long addr, uint32_t value)
+{
+    struct vaplic *vaplic = to_vaplic(vcpu->domain->arch.vintc);
+    struct aplic_priv *priv = vaplic->base.info->private;
+    uint32_t offset = addr & APLIC_REG_OFFSET_MASK;
+    unsigned long aplic_addr = addr - priv->paddr_start;
+    const uint32_t *auth_irq_bmp = vcpu->domain->arch.vintc->private;
+
+    switch ( offset )
+    {
+    case APLIC_SETIP_BASE ... APLIC_SETIP_LAST:
+        CALC_REG_VALUE(APLIC_SETIP_BASE);
+        break;
+
+    case APLIC_CLRIP_BASE ... APLIC_CLRIP_LAST:
+        CALC_REG_VALUE(APLIC_CLRIP_BASE);
+        break;
+
+    case APLIC_SETIE_BASE ... APLIC_SETIE_LAST:
+        CALC_REG_VALUE(APLIC_SETIE_BASE);
+        break;
+
+    case APLIC_CLRIE_BASE ... APLIC_CLRIE_LAST:
+        CALC_REG_VALUE(APLIC_CLRIE_BASE);
+        break;
+
+    case APLIC_SOURCECFG_BASE ... APLIC_SOURCECFG_LAST:
+        /* We don't suppert delagation, so bit10 if sourcecfg should be 0 */
+        ASSERT(!(value & BIT(10, U)));
+
+        /*
+         * As sourcecfg register starts from 1:
+         *   0x0000 domaincfg
+         *   0x0004 sourcecfg[1]
+         *   0x0008 sourcecfg[2]
+         *    ...
+         *   0x0FFC sourcecfg[1023]
+         * It is necessary to calculate an interrupt number by substracting
+         * of APLIC_DOMAINCFG instead of APLIC_SOURCECFG_BASE.
+         */
+        if ( !AUTH_IRQ_BIT(regval_to_irqn(offset - APLIC_DOMAINCFG)) )
+            /* interrupt not enabled, ignore it */
+            return 0;
+
+        break;
+
+    case APLIC_TARGET_BASE ... APLIC_TARGET_LAST:
+        struct vcpu *target_vcpu = NULL;
+
+        /*
+         * Look at vaplic_emulate_load() for explanation why
+         * APLIC_GENMSI is substracted.
+         */
+        if ( !AUTH_IRQ_BIT(regval_to_irqn(offset - APLIC_GENMSI)) )
+            /* interrupt not enabled, ignore it */
+            return 0;
+
+        for ( int i = 0; i < vcpu->domain->max_vcpus; i++ )
+        {
+            struct vcpu *v = vcpu->domain->vcpu[i];
+
+            if ( v->vcpu_id == (value >> APLIC_TARGET_HART_IDX_SHIFT) )
+            {
+                target_vcpu = v;
+                break;
+            }
+        }
+
+        ASSERT(target_vcpu);
+
+        if ( !(vaplic->regs.domaincfg & APLIC_DOMAINCFG_DM) )
+        {
+            vaplic_dm_update_target(cpuid_to_hartid(target_vcpu->processor),
+                                    &value);
+        }
+        else
+            vaplic_update_target(priv->imsic_cfg,
+                                 vcpu_guest_file_id(target_vcpu),
+                                 cpuid_to_hartid(target_vcpu->processor),
+                                 &value);
+
+        break;
+
+    case APLIC_SETIPNUM:
+    case APLIC_SETIPNUM_LE:
+    case APLIC_CLRIPNUM:
+    case APLIC_SETIENUM:
+    case APLIC_CLRIENUM:
+        if ( AUTH_IRQ_BIT(value) )
+            break;
+
+        return 0;
+
+    case APLIC_DOMAINCFG:
+        /*
+         * TODO:
+         * The domaincfg register has this format:
+         * bits 31:24 read-only 0x80
+         * bit 8      IE
+         * bit 7      read-only 0
+         * bit 2      DM (WARL)
+         * bit 0      BE (WARL)
+         *
+         * The most interesting bit for us is IE(Interrupt Enable) bit.
+         * At the moment, at least, Linux doesn't use domaincfg.IE bit to
+         * disable interrupts globally, but if one day someone will use it
+         * then extra actions should be done.
+         */
+
+        printk_once("%s: Nothing to do, domaincfg is set by aplic during "
+                    "initialization in Xen\n", __func__);
+
+        return 0;
+
+    default:
+        panic("%s: unsupported register offset: %#x\n", __func__, offset);
+    }
+
+    APLIC_REG_SET(priv->regs, aplic_addr, value);
+
+    return 0;
+}
+
 static int cf_check vaplic_is_access(const struct vcpu *vcpu,
                                      const unsigned long addr)
 {
@@ -158,6 +326,7 @@ static const struct vintc_ops vaplic_ops = {
     .vcpu_init = vcpu_vaplic_init,
     .map_device_irqs_to_domain = vaplic_map_device_irqs_to_domain,
     .is_access = vaplic_is_access,
+    .emulate_store = vaplic_emulate_store,
 };
 
 static struct vintc * __init vaplic_alloc(void)
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:17:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:17:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250521.1548021 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00iS-0003Mp-0v; Tue, 10 Mar 2026 17:17:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250521.1548021; Tue, 10 Mar 2026 17:17:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00iR-0003MB-Tp; Tue, 10 Mar 2026 17:17:55 +0000
Received: by outflank-mailman (input) for mailman id 1250521;
 Tue, 10 Mar 2026 17:17:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=S17i=BK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w00ag-0001Q4-5m
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:54 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f46f539d-1ca3-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 18:09:53 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-439c5b40f60so5923229f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:53 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439dadb29fdsm37574422f8f.16.2026.03.10.10.09.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Mar 2026 10:09:52 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f46f539d-1ca3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773162593; x=1773767393; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dZgPk3awh75bNJRkjsQOS3WuaDXX5ZqhTUv4DsGOP+k=;
        b=PwSRzWGSxxX9Ieq6OlN1OlYFfwLJ/mMpAt3hMlDhGL9wp1jogA/t6IBtxuRbYo5CeS
         rd7c+EXNKf9suMTAp1AW5sgCOJpS5Q6M5y8ruPC00l669YxDmry0tUupdMA5UGE3KCTm
         YpPIjgJCvqn4UfVS442VqP+QwmU6qn4C4z9sZiJhNkoTlgj1Fu1Av1fTmOHoOcTLJCV3
         l++LqqT5ZedtrOuMf+dslQORLIooA7W9F0axkH5O4QY7hu0fs8G2ii7TXC6x3QHdhPVt
         BblwGkx+r6La8o/eiXR3w3a3CkZbt7vDM3T9NayIuiQo8bHQSJlImcphdfTJaJnU2QyT
         t8xw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162593; x=1773767393;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dZgPk3awh75bNJRkjsQOS3WuaDXX5ZqhTUv4DsGOP+k=;
        b=lKtR4FxWecb/rSKlwifgC/Ssed2NsOd7cO4sk+tbyJq2tqSLCXcULnWxfTzMiayv51
         LOIbRtgoRDsIh2qMQifPQ50sO7CIEWgpql/mrdGnCJp1Vie1KU0NAehW8Yhbo7LEOCJZ
         ApAGZnIHA+AKgPX9GPtlZXM5SLw6A/Wjbq2eypBTiNWeYYvWWUIWfgmgyMoq5Mzmngg1
         Gwzm1YXo+RLDVqmMigy3c1IEMflUjOQUUfVTAM37bJDCTOjMtvTpUDY2ePgCQemx5S/1
         MFLxMKmiAXJC5Tfu852yZNI1OE9THY6gYTbEgG12IZu4yPPZddHzh0uf6fhEdzyAc2n+
         Y1UQ==
X-Forwarded-Encrypted: i=1; AJvYcCWkshh0IaH723wy5w8RFLOfyPFterh9/g1VaIf71Z5Iqgb62XZozP4/ZUTPeiYiu8OvVIoXt4DQn9w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxNCBvHIK2EvhxRpAAzBei2gqVr2+TFFO/7Y/VZR+c4hBupZk1p
	dOMmQ1R/8MSh3Zi7TadFSmTePKRt1s2EljwxDi2H6bqJEi7ksVSW6khjbptUu20jDg==
X-Gm-Gg: ATEYQzzXX8E6kRBDmg+lH0uHvzjz2TNFMAwmbwB7XajmIz0ED20PjSzNXYYurvSiGwU
	4y/BwaXR0xQTxUNqElqJC7w1BSh6rNFslD7mMAa8J7YK1mc8frcvzOG0tZNHhRj1nl9IzieFv06
	mAtcgKfe47bTOaGmMGOkbM+IJWqAMwkrkP9CmX3lamNrl432mLFwSdA8gvr4fhJ5fooslCak2yH
	xwiWMBqeZGUyu9TUQZsq/8oyhHdqf8PGpS4o0CTuRgYoShzjlop5OaxqvmqTwkmr42celBXvbhC
	0Jusy1tRXl7Q5JuDqNAmWY3o135p5IFxp8Lx1Uhwn6CXMaZkQYngOCs7PuRqT5PgltBb/xZbbdh
	p7KWXqG8L6bKX3rGyGA9csoiG8LVA4+wxBTALnqyJAV2XXWBpmaW3WxH8Xcy9Kq3XQz2uqJqXXy
	GFDBZbdQMvD0j7HvcZUL2IKu3Z0EZUWU97VNdzSQo5ZVsgy9Qajge9ILNHl8E/PC2qM4kK2rMNh
	umRz2k1z84kzfY=
X-Received: by 2002:a05:6000:2404:b0:430:f985:a7b2 with SMTP id ffacd0b85a97d-439da86e9f5mr28965655f8f.51.1773162592593;
        Tue, 10 Mar 2026 10:09:52 -0700 (PDT)
Message-ID: <06ac2196-71a0-45ba-a9b5-b76f098381dc@suse.com>
Date: Tue, 10 Mar 2026 18:09:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/7] x86/msi: Define extended destination ID masks and
 IO-APIC RTE fields
To: Julian Vetter <julian.vetter@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
 <jgross@suse.com>, Julien Grall <julien@xen.org>,
 xen-devel@lists.xenproject.org
References: <20260309123055.880050-1-julian.vetter@vates.tech>
 <20260309123055.880050-2-julian.vetter@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260309123055.880050-2-julian.vetter@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.03.2026 13:31, Julian Vetter wrote:
> --- a/xen/arch/x86/include/asm/hvm/vioapic.h
> +++ b/xen/arch/x86/include/asm/hvm/vioapic.h
> @@ -32,6 +32,19 @@
>  #define VIOAPIC_EDGE_TRIG  0
>  #define VIOAPIC_LEVEL_TRIG 1
>  
> +/*
> + * Extract the destination ID from a 64-bit IO-APIC RTE, including the
> + * extended bits (55:49) used when XEN_HVM_CPUID_EXT_DEST_ID is advertised.
> + */
> +#define IO_APIC_REDIR_DEST_MASK         (0xffULL << 56)
> +#define IO_APIC_REDIR_EXT_DEST_MASK     (0x7fULL << 49)
> +
> +#define VIOAPIC_RTE_DEST_ID_UPPER_BITS  8

The name suggests this is the number of upper bits, which it isn't. You shouldn't
need this constant anyway, see below.

> --- a/xen/include/public/domctl.h
> +++ b/xen/include/public/domctl.h
> @@ -615,12 +615,14 @@ struct xen_domctl_bind_pt_irq {
>          struct {
>              uint8_t gvec;
>              uint32_t gflags;
> -#define XEN_DOMCTL_VMSI_X86_DEST_ID_MASK 0x0000ff
> -#define XEN_DOMCTL_VMSI_X86_RH_MASK      0x000100
> -#define XEN_DOMCTL_VMSI_X86_DM_MASK      0x000200
> -#define XEN_DOMCTL_VMSI_X86_DELIV_MASK   0x007000
> -#define XEN_DOMCTL_VMSI_X86_TRIG_MASK    0x008000
> -#define XEN_DOMCTL_VMSI_X86_UNMASKED     0x010000
> +#define XEN_DOMCTL_VMSI_X86_DEST_ID_MASK        0x0000ff
> +#define XEN_DOMCTL_VMSI_X86_DEST_ID_BITS        8

This constant is redundant with _MASK. It is generally helpful to avoid
such redundancies (especially in the public interface), and derive the wanted
value from the main (most generally usable) constant. IOW here maybe

#define XEN_DOMCTL_VMSI_X86_DEST_ID_BITS        8
#define XEN_DOMCTL_VMSI_X86_DEST_ID_MASK        ((1U << XEN_DOMCTL_VMSI_X86_DEST_ID_BITS) - 1)

But of course it could also be done the other way around, albeit in a public
header this may end up more difficult. (Generally the mask wants to be the
main definition, as everything else can be derived from them.)

> @@ -630,6 +632,10 @@ struct xen_domctl_bind_pt_irq {
>      } u;
>  };
>  
> +#define XEN_DOMCTL_VMSI_X86_FULL_DEST(gflags) \
> +        (MASK_EXTR((gflags), XEN_DOMCTL_VMSI_X86_DEST_ID_MASK) | \
> +        (MASK_EXTR((gflags), XEN_DOMCTL_VMSI_X86_EXT_DEST_ID_MASK) << \
> +         XEN_DOMCTL_VMSI_X86_DEST_ID_BITS))

There's no MASK_EXTR() in the public interface.

Also, nit: No need to parenthesize gflags when used in macro invocations like
this one. Iirc there was a similar pattern elsewhere in the patch.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:18:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:18:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250548.1548034 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00io-0004VD-7c; Tue, 10 Mar 2026 17:18:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250548.1548034; Tue, 10 Mar 2026 17:18:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00io-0004Ur-4v; Tue, 10 Mar 2026 17:18:18 +0000
Received: by outflank-mailman (input) for mailman id 1250548;
 Tue, 10 Mar 2026 17:18: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=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00aQ-0001Q4-I4
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:38 +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 ea6f992a-1ca3-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 18:09:36 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4853510b4f3so41190585e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:36 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ea6f992a-1ca3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162576; x=1773767376; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yJVP2CNX14UgxmTAWNMtAQ5gdpc3OGAi5Vg/Vni1k8k=;
        b=gLgGsN8SmUSsWitN/PB72s1+nqVMlU3K4dhUR7Y0ngWHxHby5cakYuynZMNdvMXGYz
         qoOmFWXtorZE/9IJyvBzNk6vTtyCkRmkjlMPX19A5Jk1UIFeWLBmCGXh6zJ+MKtJJty9
         lvmKGn4/ZYKLXDgQwsi7WHmy373b8H9+G4LiuH5PmTdfLSjJNfJKa5o3td7f+B/AVlmq
         SjMDkOtlR/W40ht91XOjZIEa+lI3E5AKTjUf2Wcfagb1MHoxpryG1lEUMarZTWfTz7r+
         hIfUDMuJTxZbHPeTePlegX419LD1lIYHawBTaIvOw7PpD+IPSsSWIZDqgDSO5/b55wlL
         9Hqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162576; x=1773767376;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=yJVP2CNX14UgxmTAWNMtAQ5gdpc3OGAi5Vg/Vni1k8k=;
        b=PI0WoY1KdrYkmC94pZmdh8B4TmZswHwtcDXjGs2tT2BgQdEnp2pLjpi11JikqWdYiT
         gEaQUjz0OQQwxDHaMGDA2gd3/Frai2v6snROZtOFQ6N7iCXEoAO/sdDOPTPUWZyfIYa5
         5aRB/btThnExKpsHseyvBXQxwoWbLK35rolV7SP3gO0nR+cFBZfk8OsN/8wEsotWNCx4
         kkMd4ppUigRGE/eGGp2zqlcNYmurZ6yKgVw9aLA+ro+Qfj16OKGsVWA9ezAD4nIAra5/
         kFG9TSMiK/954VVi1S4FBTrytLS+By2FPPPQAJ9fXNvcgmC3TSs0W3h3z6A+MkZ/mHeP
         SoHQ==
X-Gm-Message-State: AOJu0Yz8gMkYhuzA5lxjyzLBarABcYRWq+0g2LI+919IzFr1ZSL9VdZo
	Y82NJUZVyiwtlapKY4p+J+NsnARpbMFg/1cbvxCjF8AlOwbYTNgcLZs72Qmfnmtc
X-Gm-Gg: ATEYQzzutfvmvGRD+M8AIosLcyxvDo11ODD2zPcWQfhAQzEF8QNKI4ZgreR9STffxtB
	r2rcyjedaOqT70a2y7f6tB1L2oo0O5R/GAhJxa0w18QolZEB6mk+3MoRjuhFdFnoT9CBsVjSUNC
	7PA6tSxvoofrg7XmbyxXd5ZZ4SpUQm196pbm3hwxfj662me1bweRYmlvzJn/UIDGqg3c5h8wXm1
	I9RRRJfclDTOBwkv5QWehrz11PKS47E3bkqlsCBZrfpcLH39EvBoJhR3uMOsefSxwUEc11fTZ1k
	meP5boI4XwsJa4wRsTpEQBcK7ERmwD4mX41Zf+WntgbYROBk9o6zmbE12oSjek2MsGqZGF9LWqJ
	ODmd5Ky/5D4VElxQALrHbQp6TqDRyR+fPXwJ2Uyjb2uTUx2R8NIApyKNbYX+ze+AW5wLryVgvkr
	ar6wRq+h09NKlN2gySZ+t6gJ6hm055yd57YTrm/UfUrdv89coiuFbNi+tcZ4UWFwEyQRP0SrqbK
	ZHfPqAS
X-Received: by 2002:a05:600c:6306:b0:485:40ed:2d1 with SMTP id 5b1f17b1804b1-48540ed03fdmr88457825e9.17.1773162575630;
        Tue, 10 Mar 2026 10:09:35 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 22/27] xen/riscv: implement init_intc_phandle()
Date: Tue, 10 Mar 2026 18:08:55 +0100
Message-ID: <b0669c89d963c31426acb239bc7c436c13d6ba45.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement init_intc_phandle() to read phandle of interrupt controller
node and save it in kernel->phandle_intc for the future usage during
creation of guest interrupt controller node.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/dom0less-build.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/xen/arch/riscv/dom0less-build.c b/xen/arch/riscv/dom0less-build.c
index 312c5d7d4979..180d653e5780 100644
--- a/xen/arch/riscv/dom0less-build.c
+++ b/xen/arch/riscv/dom0less-build.c
@@ -2,9 +2,26 @@
 
 #include <xen/fdt-kernel.h>
 #include <xen/init.h>
+#include <xen/libfdt/libfdt.h>
 
 #include <asm/intc.h>
 
+int __init init_intc_phandle(struct kernel_info *kinfo, const char *name,
+                             const int node_next, const void *pfdt)
+{
+    if ( dt_node_cmp(name, "intc") == 0 )
+    {
+        uint32_t phandle_intc = fdt_get_phandle(pfdt, node_next);
+
+        if ( phandle_intc != 0 )
+            kinfo->phandle_intc = phandle_intc;
+
+        return 0;
+    }
+
+    return 1;
+}
+
 int __init make_intc_domU_node(struct kernel_info *kinfo)
 {
     intc_make_domu_dt_node(kinfo);
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:18:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:18:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250563.1548043 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00j5-00059p-F0; Tue, 10 Mar 2026 17:18:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250563.1548043; Tue, 10 Mar 2026 17: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 1w00j5-00059a-CJ; Tue, 10 Mar 2026 17:18:35 +0000
Received: by outflank-mailman (input) for mailman id 1250563;
 Tue, 10 Mar 2026 17: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=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00aR-0001Q4-ID
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:39 +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 eb100563-1ca3-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 18:09:37 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4852f73d0a3so29542695e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:37 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eb100563-1ca3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162577; x=1773767377; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JBHKAkfBQ+LZpxYmLsiOZkYEb81ClhJSsNte5UEhevw=;
        b=lIVV+sTLdgY+AaZuM0+BqCxg+XStMGIxkMzhdbplTO5zEC8AztNxPsv4chN4AlXDzO
         DI/PuPQx3dsPZtBrZ42cTlS9G94bjzh4OiyG3FnN9YDMmfWNTpolqClDjwo7TSpdBB+n
         Q8wymBlu72N5+JOVa1hO7j7HDpuh0h/lI60SbJtwEZGc/2IPwRMotk6EfsLsX6wa3V8v
         wDUyNpnX+FUCETLIgJY3/jHnAqgEGtuS++ywcPeSo0SQUI6gMAaolv87G8fGMGmAWbZB
         93V/1ovnbdPm0vBFFMFM2iRphhdRXGbFQ/sGy4wonxr1fRoRunTG9ZVqNMuujXbltmGA
         gZpg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162577; x=1773767377;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=JBHKAkfBQ+LZpxYmLsiOZkYEb81ClhJSsNte5UEhevw=;
        b=ReV6POYmX6o4Ple0r2H2GKgi5lDMHzUXQoYfT2stxDkwW5mh3q+pIL8ZilUPqL+k3+
         if3ss7bQ/3t4PzHWF37JjKi4HuygL32zpqmXpm9X5+XUprXvwOR4yhucsuP/Pzf2krZV
         kJQCFIwsCEX8+0rSZeOl/grkoBOz8z+j74fGjj3oYdl2RXFMbX4JFeQVavu4+Y3CgxQu
         iiAIBCnK6wBqSAloQPLDBfPluUA0rU3YhiWQ43p5hD3VIggZMy/KOajZsVrVG61nbclZ
         R7g1VCjMEAk7xqDwMjSe1cr7UjSD1VqeP6qnUFAhnYPCx5fIyJSOgpnYN6veeAZq78nP
         XNuQ==
X-Gm-Message-State: AOJu0YxfkjqFWGm7XoQc8a78SVswlV0nwqCS9rlrrol+a2J/HQgTqw1s
	R16jMZmaCNebr126sdyO/7YlbMc3JeeXT9A6J8JbEhjXd8xglhhGvn0nIV8CCG5T
X-Gm-Gg: ATEYQzzOAW7304OWTZ3rGPay/e8MQjPBkOWN36j6tAlp4BpF0HIyvgenN0KGQU2C0ZW
	nYZXx6xmwC80TcJu4edLUdFRzY4o0FqFOX5efzRia3fnLbEoCGBfhehBZDNetg8KhwdGlq4apKc
	5GCEwjVJEsNqDBK94qh2KopIJqYUYT/aunOprN1F0lTl4nbOaRQj6pp1zvTPjTvC3MRMR5qubKW
	HKVFWH77zYwSjUjPNYxzEesSsV9F0xuwTun2CN8amMLIWPLdkiFiPC05f/fUIkqe61VOTn/gtW9
	sWqGZKEu3Waj+z7o6PeJcHyV+xd9dp0S/uBuD4ITnkQnqrEAJOx6T9uDNLAg3s9pRI417lDdhHZ
	Ropirk5h8GM+0l42lwE5m+VSTddBG0ao0Lmq59oXCFpIWVK0dMk0rr6ybW8boIyG5A9uzFyOEXh
	kV7DhDAXIWGd4swJlFEuXQsKXjHaBOk0QRAipyxyAeNSEYjWTPzJUHuP3UcgglQlrc64O9fo1mz
	ksF9J6C
X-Received: by 2002:a05:600c:c086:b0:485:3f1c:d897 with SMTP id 5b1f17b1804b1-4853f1cd9d1mr91902945e9.9.1773162576726;
        Tue, 10 Mar 2026 10:09:36 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 23/27] xen/riscv: call do_initcalls() in start_xen()
Date: Tue, 10 Mar 2026 18:08:56 +0100
Message-ID: <e039f2a351bca2f37bb40655b5bf2eb41ab40c9b.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Execute initcall function. Additionally, before do_initcalls() call
scheduler_init() which is needed because of cpupool_create_pool()
is called by do_initcalls(); otherwise BUG_ON(IS_ERR(pool)) will occur
in inside cpupool_create_pool().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/setup.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index cae49bb29626..24bad0c606a5 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -9,6 +9,7 @@
 #include <xen/init.h>
 #include <xen/irq.h>
 #include <xen/mm.h>
+#include <xen/sched.h>
 #include <xen/serial.h>
 #include <xen/shutdown.h>
 #include <xen/smp.h>
@@ -159,6 +160,11 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     guest_mm_init();
 
+    scheduler_init();
+    set_current(idle_vcpu[0]);
+
+    do_initcalls();
+
     printk("All set up\n");
 
     machine_halt();
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:18:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:18:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250565.1548053 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00j6-0005Nz-Os; Tue, 10 Mar 2026 17:18:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250565.1548053; Tue, 10 Mar 2026 17:18:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00j6-0005Nm-M2; Tue, 10 Mar 2026 17:18:36 +0000
Received: by outflank-mailman (input) for mailman id 1250565;
 Tue, 10 Mar 2026 17: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=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00aW-0001Q4-J5
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:44 +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 ede70159-1ca3-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 18:09:42 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4853510b4f3so41192225e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:42 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ede70159-1ca3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162581; x=1773767381; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eS5sSCMJ+IJ1M5ORzLuoNMwjp7zPxai25z8WoDewGMs=;
        b=V6yZRalt6hfTpxVuBCuArsS79iZpCjhdoZ/pdpi3ir4s30PmTg4uVDZIb3Bdz0SKmK
         zQ0bPZCAb5S0UnZ8riWtkO6Lm9rEB5jzFI5R3L5EJxuvWaEvlUmsBpJmragGPpyKU8WZ
         m2MXTahbvFKhSeT6OOhkFaJAtz7LYuEmLN+61st8nbeXKI8iItQ/7ndN9EO3q/qf5Ysn
         jzl9f/jNc0MuRdtaU5NpIvYK8ypE93OIgz0Lg7hAhQn+gPFhO78t2qyzIvfWUFaejzWx
         sY0/LpZeASF9UO56c3tnMlZFp83qnk7TZlQjz8w0cuwyxjFUYDBx7v15c0MrveGUDRR+
         JSiA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162581; x=1773767381;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=eS5sSCMJ+IJ1M5ORzLuoNMwjp7zPxai25z8WoDewGMs=;
        b=s6ypZ+rYGTliRaIJQywBJCpnFK1NaBmTpRN3jwRVuTbaO8E2dhJMPOMxA+QDNPljMy
         5wiNpISxtQrshket458J3WwBbzqONP7IGIN6i1yTAut+sHL5DkVGwaHqm3nxc59e+ndc
         zCTlN1OS5PyvTaVuCGjCWDTvjmjeTXJ3C6gRFphjg0QdMOieyr6b2c7+UWNp+ubFHn8r
         7du7pu7r7vRFgXyZygmOftWn7Bf5RvQ7SckGeXBCOaBegr85+SwuwxnyzWzKQJb5r54h
         /B3N/mDavKdPiATAwMAfeYAtkxgVoq4Mo6JrignLvM9YXsSyKBDdSW8MdgAI7amEykM2
         DNGw==
X-Gm-Message-State: AOJu0YwjVfrb6rnYvzki2Rw1pSfSmYKOoKdGoP6AEg4DpaqFvJPszUfQ
	WgP+mZ4sdnX3J2r1BkkwNv/wzDfDbSYDVlT3R7EvTwLRzKwdSj08+/u9rStKeqE/
X-Gm-Gg: ATEYQzwMo8kkiGOq1YIoWwv1Qi7XhNmu6sDVSpr8Gb6B32rV56VJu3g590ObJcWkaJ7
	QPpDowvUT9eDPdrzP5Yd3G/X0qnQ/F1noZ6dCZ1Zb6BY0gIKdKO0LfHKIXvMhAU11yHmYjZ8y0W
	HWD4uUf4RMWVwsQG6FljNBqpcJeVnuu4pR0wGXSy5Z/oJ2nBxNroqL37NocBKpp9IR0cz7lwf/T
	eX5baAMOxQXu+SUHFez9ioEUA1RbCr2JD7HIavV8krBRoM1bCajfSgfPqWFErvl/vM+pFOkuzu2
	ToN65cMA1fcnmWMjQgjgGY7TkEzMGQ9L6maBQiD7yjZ32tjPiKcKhGQ+vTuN8KwCl6L4aK9d4KC
	nrKO+2ct272+G5PMidGPGGRVQDQs1t1F1uGBMwcaHu/eUuqLTVZqXO6UhRihcgi0dI3Q0GlEgHf
	bmdMm3vB2AeB4tdXS3TSM8w5QuCeAGvLEfRcTrZFT0tlOFL+oFumzgHhFAEVS67ANtwbcvag==
X-Received: by 2002:a05:600c:19ca:b0:485:3d43:7c9a with SMTP id 5b1f17b1804b1-4853d437d40mr110653125e9.25.1773162581377;
        Tue, 10 Mar 2026 10:09:41 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 27/27] xen/riscv: add initial dom0less infrastructure support
Date: Tue, 10 Mar 2026 18:09:00 +0100
Message-ID: <a66c727d0b99b9de41f516e1304b1a70192c9392.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Enable dom0less support for RISC-V by selecting HAS_DOM0LESS and
providing the minimal architecture hooks required by the common
dom0less infrastructure.

Add stub implementations for architecture-specific helpers used when
building domains from the device tree. These currently perform no
additional work but allow the generic dom0less code to build and run
on RISC-V.

Introduce max_init_domid as a runtime variable rather than a constant
so that it can be updated during dom0less domain creation.

Provide missing helpers and definitions required by the domain
construction code, including domain bitness helpers and the
p2m_set_allocation() prototype.

Additionally define the guest magic memory region in the public
RISC-V interface.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Open questions:
 - Move declaration of p2m_set_allocation() to xen/fdt-domain-build.h or
   xen/dom0less-build.h as it is used in common code of Dom0less and
   there is not too much sense in declaration of it for each arch which
   supports Dom0less. It could be ifdef-ed in common header as, at the
   momemnt, it is used only for Dom0less.
 - Shouldn't declaration/defintion of max_init_domid move to common code
   instead of having it for each architecture separately? If yes, then what
   would be the best place.
---
---
 xen/arch/riscv/Kconfig              |  1 +
 xen/arch/riscv/dom0less-build.c     | 18 ++++++++++++++++++
 xen/arch/riscv/domain-build.c       | 13 +++++++++++++
 xen/arch/riscv/include/asm/domain.h |  8 ++++++++
 xen/arch/riscv/include/asm/p2m.h    |  2 ++
 xen/arch/riscv/include/asm/setup.h  |  4 +++-
 xen/arch/riscv/setup.c              |  2 ++
 xen/include/public/arch-riscv.h     |  3 +++
 8 files changed, 50 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index 091510380949..abd579aa6a54 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -6,6 +6,7 @@ config RISCV
 	select GENERIC_BUG_FRAME
 	select GENERIC_UART_INIT
 	select HAS_DEVICE_TREE_DISCOVERY
+	select HAS_DOM0LESS
 	select HAS_PMAP
 	select HAS_UBSAN
 	select HAS_VMAP
diff --git a/xen/arch/riscv/dom0less-build.c b/xen/arch/riscv/dom0less-build.c
index 43c8bdc52300..865311ec7037 100644
--- a/xen/arch/riscv/dom0less-build.c
+++ b/xen/arch/riscv/dom0less-build.c
@@ -43,3 +43,21 @@ int __init make_arch_nodes(struct kernel_info *kinfo)
 
     return 0;
 }
+
+void __init set_domain_type(struct domain *d, struct kernel_info *kinfo)
+{
+    /* Nothing to do */
+}
+
+int __init arch_parse_dom0less_node(struct dt_device_node *node,
+                                    struct boot_domain *bd)
+{
+    /* Nothing to do */
+    return 0;
+}
+
+int __init arch_handle_passthrough_prop(struct kernel_info *kinfo,
+                                        struct dt_device_node *node)
+{
+    return 0;
+}
diff --git a/xen/arch/riscv/domain-build.c b/xen/arch/riscv/domain-build.c
index ae26faed09ed..20735f41d646 100644
--- a/xen/arch/riscv/domain-build.c
+++ b/xen/arch/riscv/domain-build.c
@@ -154,9 +154,22 @@ int __init make_cpus_node(const struct domain *d, void *fdt)
     return res;
 }
 
+int __init construct_hwdom(struct kernel_info *kinfo,
+                           const struct dt_device_node *node)
+{
+    return -EOPNOTSUPP;
+}
+
 int __init make_timer_node(const struct kernel_info *kinfo)
 {
     /* There is no need for timer node for RISC-V. */
 
     return 0;
 }
+
+int __init make_hypervisor_node(struct domain *d,
+                                const struct kernel_info *kinfo,
+                                int addrcells, int sizecells)
+{
+    return -EOPNOTSUPP;
+}
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 21a3e6876f36..a8342ca7c5bf 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -20,6 +20,14 @@ struct hvm_domain
     uint64_t              params[HVM_NR_PARAMS];
 };
 
+#ifdef CONFIG_RISCV_64
+#define is_32bit_domain(d) (0)
+#define is_64bit_domain(d) (1)
+#else
+#define is_32bit_domain(d) (1)
+#define is_64bit_domain(d) (0)
+#endif
+
 struct arch_vcpu_io {
 };
 
diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index 4441c0400b83..d97c8d13ef6b 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -259,6 +259,8 @@ void p2m_ctxt_switch_from(struct vcpu *p);
 void p2m_ctxt_switch_to(struct vcpu *n);
 void p2m_handle_vmenter(void);
 
+int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted);
+
 #endif /* ASM__RISCV__P2M_H */
 
 /*
diff --git a/xen/arch/riscv/include/asm/setup.h b/xen/arch/riscv/include/asm/setup.h
index 1c23043f409f..2e3f8931d01b 100644
--- a/xen/arch/riscv/include/asm/setup.h
+++ b/xen/arch/riscv/include/asm/setup.h
@@ -5,11 +5,13 @@
 
 #include <xen/types.h>
 
+#include <public/xen.h>
+
 struct domain;
 struct dt_device_node;
 struct rangeset;
 
-#define max_init_domid (0)
+extern domid_t max_init_domid;
 
 void setup_mm(void);
 
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 5bc34e41fe55..513f94777f38 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -32,6 +32,8 @@
 #include <asm/traps.h>
 #include <asm/vsbi.h>
 
+domid_t max_init_domid = 0;
+
 /* Xen stack for bringing up the first CPU. */
 unsigned char __initdata cpu0_boot_stack[STACK_SIZE]
     __aligned(STACK_SIZE);
diff --git a/xen/include/public/arch-riscv.h b/xen/include/public/arch-riscv.h
index 91cee3096041..3c0c786c57ac 100644
--- a/xen/include/public/arch-riscv.h
+++ b/xen/include/public/arch-riscv.h
@@ -58,6 +58,9 @@ typedef uint64_t xen_ulong_t;
 #define GUEST_RAM_BANK_BASES   { GUEST_RAM0_BASE }
 #define GUEST_RAM_BANK_SIZES   { GUEST_RAM0_SIZE }
 
+#define GUEST_MAGIC_BASE  xen_mk_ullong(0x39000000)
+#define GUEST_MAGIC_SIZE  xen_mk_ullong(0x01000000)
+
 struct vcpu_guest_context {
 };
 typedef struct vcpu_guest_context vcpu_guest_context_t;
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:18:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:18:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250566.1548055 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00j7-0005RT-0z; Tue, 10 Mar 2026 17:18:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250566.1548055; Tue, 10 Mar 2026 17:18:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00j6-0005PW-Sq; Tue, 10 Mar 2026 17:18:36 +0000
Received: by outflank-mailman (input) for mailman id 1250566;
 Tue, 10 Mar 2026 17:18: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=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00aK-0001QA-7F
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:32 +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 e6f7f498-1ca3-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 18:09:30 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4853c3c2fe7so15292575e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:30 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:29 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e6f7f498-1ca3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162570; x=1773767370; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PGO25D+/JyzUb694KNoTgwesllMgu7ATeYdD4+csfDI=;
        b=I0lz8oGkbbdeJGgWF9PwMsPmHrpY0GCoFGgJDiD2sdYkbgaY0pSwBAtBYUYf+DGP+C
         K/3A+OLTqwP0hkmTMLF1Ffv3Wi6ZElGjtw0hQx+SW2Ba3p2iMXugH8vB18TNY+3JI7dm
         Z3OalrbQYz/z+xtylwSxOu2bp5cK7wvIgefKq3ffW3ocaCG5ppC6OY50O8nZV9vyEPGf
         Xa8Oxc/4fylJep3spoLUnIc7Or/hrVijt7UqHXGZAeJXOJ8uA8+hwFjvZBdtzyJjLpAy
         Mp95IJT4Jje6kfojOzAB8bHldDTskmrqw9j7G2JCxE4X3NBXYkExhhjEayfgP9ZMRlBc
         OBqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162570; x=1773767370;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=PGO25D+/JyzUb694KNoTgwesllMgu7ATeYdD4+csfDI=;
        b=fmYgzj2kIrHOCJGG2/Ri5gsyFMqw7nYudkZhXZHPcTFoz7Q1vJ0TncRSDFhvKEorZX
         dWdX7flMheowGoUAMSqfLIW0BD6wNE19/gVNvtFJo60QHgsIEzYa8h0asWeM85EHFwH3
         ldU8EKXu+SD15qsqtNyDBMW3/heUYZlIm45Z1JzQzp/dxAIhxFIvYNR3GQ3RW2cBknm9
         6Slkh6HPzbD6+tx8P093QEyQ6ga0VFbZTze+Hgjw4T53IowHoBqkUxGuB6QrS/Lamxou
         5ZWIcFaumiq9G9fOKM3BT5l1IhW6dSfVoOSho2aZRKITFv8tVNOwv54BGnNB5WhVIIm2
         uxbg==
X-Gm-Message-State: AOJu0YxrsPJq9Z/i5TXKSrAK4hY3KMw5iIiTxbep+0FbdxWZ3cJri1t9
	YuiVcf6/1AJ7YP1c6swCHKXc3CeTZ+4Av8OtqiUy6wUn4b0M5eQXrROQmAcwv4EZ
X-Gm-Gg: ATEYQzwiwv45qjKiZv7EbveW/SoKohK2W45z9knRZfXknbLFItEyNJHGB3vTyF+3W72
	CpiVq3rO1dd+MbRcHnFz6Vnmj7qChUYYv4PYoi9+LROc/JYjmhUEGxBJCYzwJWHgzPY4e7RUsnl
	uKOLAlANTXREm+PWSAG0e4i9P3SwJ4h4VQP0gfr5KdewTNWH4Q0jRviEu6ThLiBDRpIiSo7nI0j
	HcBM45bGjB6SUWBkxDJytQLgixNakBYpfyZxjU3k/PjvpBcp8J2yORHrh0Z0AE704PwLDMn0EZR
	ytLUxSFM6PIn+VQvKlBKw7DxN7uN6lMMBerNDG2DrZztPqlVJjO68Iqo2ci3NbCnjdSjwsO9fa6
	fBghiTf+Gnu2RpA0y3YRoVwm0eq6fLkAtlEGbkU0D4iU5c71P+yvzSKIlIrNLD+JZy8JAn3Lb9C
	tThXcBUYEa8+/r8ECDPE9hU4fWsfysW570fV7vD1c9WjoRpPSkjkR1D9Z4nHOr9FjATA==
X-Received: by 2002:a05:600c:8b67:b0:485:4371:539a with SMTP id 5b1f17b1804b1-485437154e5mr59713625e9.31.1773162569788;
        Tue, 10 Mar 2026 10:09:29 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 17/27] xen/riscv: add missing APLIC register offsets, masks to asm/aplic.h.
Date: Tue, 10 Mar 2026 18:08:50 +0100
Message-ID: <2097fefb49fca36f641ddd7d7fb31e796a03619e.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

These definitions are required for correct decoding of APLIC MMIO
accesses and target configuration, and will be used by both the
physical and virtual APLIC implementations.

No functional change is intended by this patch; it only centralises
hardware definitions that were previously missing.

Co-developed-by: Romain Caritey <Romain.Caritey@microchip.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/include/asm/aplic.h | 35 ++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/xen/arch/riscv/include/asm/aplic.h b/xen/arch/riscv/include/asm/aplic.h
index 55cd4a128de7..7e9161d98ceb 100644
--- a/xen/arch/riscv/include/asm/aplic.h
+++ b/xen/arch/riscv/include/asm/aplic.h
@@ -17,6 +17,11 @@
 
 #define APLIC_NUM_REGS 32
 
+#define APLIC_REG_OFFSET_MASK   0x3FFF
+#define APLIC_TARGET_IPRIO_MASK 0xFF
+#define APLIC_TARGET_GUEST_IDX_SHIFT 12
+#define APLIC_TARGET_EIID_MASK  0x7FF
+
 #define APLIC_DOMAINCFG_IE      BIT(8, U)
 #define APLIC_DOMAINCFG_DM      BIT(2, U)
 
@@ -27,6 +32,36 @@
 #define APLIC_SOURCECFG_SM_LEVEL_HIGH   0x6
 #define APLIC_SOURCECFG_SM_LEVEL_LOW    0x7
 
+#define APLIC_DOMAINCFG         0x0000
+#define APLIC_SOURCECFG_BASE    0x0004
+#define APLIC_SOURCECFG_LAST    0x0FFC
+
+#define APLIC_SMSICFGADDR       0x1BC8
+#define APLIC_SMSICFGADDRH      0x1BCC
+
+#define APLIC_SETIP_BASE        0x1C00
+#define APLIC_SETIP_LAST        0x1C7C
+#define APLIC_SETIPNUM          0x1CDC
+
+#define APLIC_CLRIP_BASE        0x1D00
+#define APLIC_CLRIP_LAST        0x1D7C
+#define APLIC_CLRIPNUM          0x1DDC
+
+#define APLIC_SETIE_BASE        0x1E00
+#define APLIC_SETIE_LAST        0x1E7C
+#define APLIC_SETIENUM          0x1EDC
+
+#define APLIC_CLRIE_BASE        0x1F00
+#define APLIC_CLRIE_LAST        0x1F7C
+#define APLIC_CLRIENUM          0x1FDC
+
+#define APLIC_SETIPNUM_LE       0x2000
+
+#define APLIC_GENMSI            0x3000
+
+#define APLIC_TARGET_BASE       0x3004
+#define APLIC_TARGET_LAST       0x3FFC
+
 #define APLIC_TARGET_HART_IDX_SHIFT 18
 
 struct aplic_regs {
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:18:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:18:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250569.1548071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00j8-0005ql-9E; Tue, 10 Mar 2026 17:18:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250569.1548071; Tue, 10 Mar 2026 17:18:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00j8-0005pe-63; Tue, 10 Mar 2026 17:18:38 +0000
Received: by outflank-mailman (input) for mailman id 1250569;
 Tue, 10 Mar 2026 17:18: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=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00aL-0001Q4-H7
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:33 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e7a07e20-1ca3-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 18:09:31 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4852c9b4158so28934155e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:31 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e7a07e20-1ca3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162571; x=1773767371; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hH9znhbJsO7IzrzhoOYnrjac5Z3LLI2ieI1hChueBHI=;
        b=Y4DkD/FJ6idyy/ETSIEB3Lce9eUGQw5qOmA5brIy9bFsihE5ZkKdJivL5KOxB3BaeX
         SQ0fBpcbDGKb+qltfLu6uqgQMOlYBJr7VfCJ9SCwBET2c7s6k4L9/e2MEtAtvjoKrR4s
         xXj6GLQGX2pd9W4cPwHj+NNBZUIzP//YY0s6ugNpHuIOVtoQmTAcBdG40mNU8QbAsBr9
         tJUV2gKNyw07ofkZy9hc2sNUjKjMJLU7nC7eFh3ZZz+Zu0Jqn3xmd2PgJn3MH8MOxxr+
         AFnXIfHCRd0eAm97JNB/vYubKihg7X7tqcXBKxeoDAoRNDa+FKwSQU9s9OIt+b3CobW0
         47LQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162571; x=1773767371;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=hH9znhbJsO7IzrzhoOYnrjac5Z3LLI2ieI1hChueBHI=;
        b=s5bIpSPsmRDMnARCaWBRrBfgJ7kiKLqVfkgygy+f4vsIql46lN0tUGh85UbxzBkHcM
         H4GC/RLg4Fiuwb1ctU6iSd245i/sOowycwTjlRQAnIh8WGQ8hvC2hB4EGfZT3W55Yeoq
         NYsXcqGaMVeyUUyYMSOGgVsCq+98Cs9J6LNWL7oF6vp4DQMKMB1fQGMql95P7QDr7mUt
         A83abdLLH4xjM9df3QiOTunTrXRqQ2HeH92tlUCgrtBIMcT24ygzSICFV9VksGZ6mSNt
         c6G0B6Juc+wGFoJ6hzOjFuQ6ri8JW+jBZrLwFPANEPq1+N4GSTVsYrJwLk5Vea5jBV6Z
         n5hQ==
X-Gm-Message-State: AOJu0YzXHUVXdt6ffDH5Zma2zKtV5EEJ+6aCOZ0y4WGDOMN8keEm+6ms
	4oExoqL05jtpzH84MVngwK9diCZ8eJIp5RHB0lgHLl/mrMj+XfcFSXX6D06hMZR8
X-Gm-Gg: ATEYQzzzPkY4PTwqAcym4km0sRIM7X4QhNVdyN7qvxKjyVRS0gB9mtyU0PI7SB+DdWa
	I+/7qmRwQUOye3njOV/DRQRFirWK1QLeGlU62Ywj6Xo8TNm8lT53S77z6zXfP22Wz30I3zfXQdk
	X3thEGSgoXAsb1PgEcyMYCUYtMqjvpglSTWaebSNuaMwG71uqbu6UoRXmhwzFnGWrawrBeSXqYp
	OCihTGWPjNjW83gEe4UZNAxkUCh4xhmQePyOINiXwFKuRYgO3xAnbWvBUnXEYwmR7tejQhoEugB
	q1KghQHiiN/c53sqjEmJvo/NaEluMNn4zf7WsqwwYLe6JfZVLS6UHqJykaeTc8PC4oHbNr2peMw
	A8TFuqljC57yyZk8AXtgl1W3tXUb2N5uxtspaDDpqLg/z7PYvVGPtDi8aA2+xqrCKsAqAIrWhLz
	LB+aJTin3SZPZ+XvPbsGBYG4XzGiEVyLOQBmlbv0FXXu4iDrPWR+lzFU1yb0dpK2165zjNlQ==
X-Received: by 2002:a05:600c:8707:b0:485:3ff1:d5c3 with SMTP id 5b1f17b1804b1-4853ff1d6a6mr122929915e9.5.1773162570910;
        Tue, 10 Mar 2026 10:09:30 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 18/27] xen/riscv: add vaplic access check
Date: Tue, 10 Mar 2026 18:08:51 +0100
Message-ID: <0fc9adf790d4f981e8117bd9759c7e64bb11e439.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Provide a mechanism for the virtual APLIC to determine whether a guest
access targets the physical APLIC MMIO region.

This is required to correctly identify and route guest APLIC accesses.

Co-developed-by: Romain Caritey <Romain.Caritey@microchip.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/aplic.c            |  1 +
 xen/arch/riscv/include/asm/intc.h |  3 +++
 xen/arch/riscv/vaplic.c           | 15 +++++++++++++++
 3 files changed, 19 insertions(+)

diff --git a/xen/arch/riscv/aplic.c b/xen/arch/riscv/aplic.c
index e139946a05a0..754b444a2a13 100644
--- a/xen/arch/riscv/aplic.c
+++ b/xen/arch/riscv/aplic.c
@@ -38,6 +38,7 @@ static struct aplic_priv aplic = {
 
 static struct intc_info __ro_after_init aplic_info = {
     .hw_version = INTC_APLIC,
+    .private = &aplic,
 };
 
 static void __init aplic_init_hw_interrupts(void)
diff --git a/xen/arch/riscv/include/asm/intc.h b/xen/arch/riscv/include/asm/intc.h
index 76d2fd09cb8b..e6b6c179415a 100644
--- a/xen/arch/riscv/include/asm/intc.h
+++ b/xen/arch/riscv/include/asm/intc.h
@@ -25,6 +25,9 @@ struct intc_info {
 
     /* number of irqs */
     unsigned int num_irqs;
+
+    /* private data pointer of the interrupt controller */
+    void *private;
 };
 
 struct intc_hw_operations {
diff --git a/xen/arch/riscv/vaplic.c b/xen/arch/riscv/vaplic.c
index 0c69f087cf4d..82e74a609ee6 100644
--- a/xen/arch/riscv/vaplic.c
+++ b/xen/arch/riscv/vaplic.c
@@ -127,6 +127,20 @@ int vaplic_map_device_irqs_to_domain(struct domain *d,
     return 0;
 }
 
+static int cf_check vaplic_is_access(const struct vcpu *vcpu,
+                                     const unsigned long addr)
+{
+    const struct vaplic *vaplic = to_vaplic(vcpu->domain->arch.vintc);
+    const struct aplic_priv *priv = vaplic->base.info->private;
+    const paddr_t paddr_end = priv->paddr_start + priv->size;
+
+    /* check if it is an APLIC access */
+    if ( priv->paddr_start <= addr && addr < paddr_end )
+        return 1;
+
+    return 0;
+}
+
 static int __init cf_check vcpu_vaplic_init(struct vcpu *v)
 {
     int rc = 0;
@@ -143,6 +157,7 @@ static int __init cf_check vcpu_vaplic_init(struct vcpu *v)
 static const struct vintc_ops vaplic_ops = {
     .vcpu_init = vcpu_vaplic_init,
     .map_device_irqs_to_domain = vaplic_map_device_irqs_to_domain,
+    .is_access = vaplic_is_access,
 };
 
 static struct vintc * __init vaplic_alloc(void)
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:18:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:18:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250576.1548081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00jG-0006UA-Kc; Tue, 10 Mar 2026 17:18:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250576.1548081; Tue, 10 Mar 2026 17: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 1w00jG-0006U3-FT; Tue, 10 Mar 2026 17:18:46 +0000
Received: by outflank-mailman (input) for mailman id 1250576;
 Tue, 10 Mar 2026 17:18:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00aS-0001QA-Ay
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:40 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ebbdf6ba-1ca3-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 18:09:38 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4852a9c6309so37126245e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:38 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:37 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ebbdf6ba-1ca3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162578; x=1773767378; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JkvH963wjORCKzFpDWqD/iOnBC1tRJKt38ThB/X1OSI=;
        b=SVYSgIUc/gt7kFBpsZdXFWHzact7MeXwXv9F+mnUUvkrkyJn8Bevh6HQaqfAcdkkKY
         kWUAb32UPTu82HMqDjZiQjqEwuJ1gyZn74VT/o241iGVU0fIxk+MCUbc0fOpahgpVMKi
         VtxZNbLDrvIQHaZayF//MVmv4vqyYXpT/kMj82eWendYM7NFe7DObRZITAUGL8WxVSJ2
         DgzBxGa0jJq4ANvobdX1j76oRRbypFtwaxG7v9jLAmO+P0LojMMcf3ipdB5cPNYTzzyq
         uKfhkwAKP4RdEaP4w5Zhib97P3ix0CQ0oxbJectwOTqjuf6PFp/fh63VJWJQjK8YwOSN
         LC/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162578; x=1773767378;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=JkvH963wjORCKzFpDWqD/iOnBC1tRJKt38ThB/X1OSI=;
        b=m3k/ah1Dh+10kdcDGiWxVl6AA8YlBewNfWxTqwWkafb2mDoGhVnJq2j9AuDFhbhbbN
         FhRw++uq9HjnkQ0cseyVWhWeUSYz9YGGu89XMHzFZJ7/D7bm8Nm5YybbBeqxqkEc6ZgA
         r4oVsGD560o495hARYe4px9RQVPcutrI4yL0CahwfHPxT/wr7zwAS7f61iISNjzYR9m0
         4I9RG9/+IcgQ/pQNrmVxhC55xkEWOn5MCTuvk/nUa7y39z+LXLtg1ilbw9t72GSA9v/k
         xj8xG+DC6gr00ToVFNRUorWqHU+YE0BSkEIebiCZDZ4yxCWAeEecYDSeAPp62nFkIRK7
         Ef9Q==
X-Gm-Message-State: AOJu0YzEWHPqTfMg9UzjeDeyo87yfXFzgFZ0+PqTOzqzHR0Cxc8zGbpc
	wOiVBwNOBmoF3yyBU1t3gE2M1UPBEOpUkxBFHGFJUqrpTjuM+MWrbNb2TGXEWd7K
X-Gm-Gg: ATEYQzz3wryNyedq9lx0CWPXKrQzuCbcav/dTo8XevhuxMzQOJi/SDJ3Zp9x9qeZ6IR
	Tvupmp9QpIwyVeCZtqwacqsYpZrYYRSCoReEJvcMmiMoXSpNRn0ZnS71momqRiBGhQH6eZNF+3p
	TNCXY+Q1agrzjgGTI1fvjirnzrc/HEq88JDw+vLL+qKbWP21pkQ8R0CM3gbMLtlzn7Boe0FyU2K
	8zFn5zm0vTcXLC2Y9sadSfJ0ZOV+/UYrI+F8l1IdCC5m4BTOPsVp9qgbnzoNo/X+AeNDitaprWo
	Pvf3uQd8lxyrcEv3ZEIGv/qXz8K0YWGClwCIl9iQ834lt06wiTlxpETa2ILK4k7lBt+VOheYuus
	mEqBmLApVPIv+8trUK2wSShFv7oYpME282Hhzdk+Ki4vJ/D9svKWHaP7cLCrYryK+rGtohF4IHH
	BS/tA21Ejd4R1g/IzA7QiQyNZ2pP6BfWTuzl7vrFU+Eqpa1claQ7AtQBUDtFw5ZFumeVj+kA==
X-Received: by 2002:a05:600c:1d0b:b0:485:4136:99a8 with SMTP id 5b1f17b1804b1-48541369c0cmr82135465e9.22.1773162577766;
        Tue, 10 Mar 2026 10:09:37 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 24/27] xen/riscv: init rcu
Date: Tue, 10 Mar 2026 18:08:57 +0100
Message-ID: <c55191b5c4ec8f42bc73bfb2d680945b439c6db6.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/setup.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 24bad0c606a5..3e337bf611fb 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -9,6 +9,7 @@
 #include <xen/init.h>
 #include <xen/irq.h>
 #include <xen/mm.h>
+#include <xen/rcupdate.h>
 #include <xen/sched.h>
 #include <xen/serial.h>
 #include <xen/shutdown.h>
@@ -154,6 +155,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     timer_init();
 
+    rcu_init();
+
     local_irq_enable();
 
     console_init_postirq();
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:18:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:18:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250580.1548089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00jJ-0006o6-0Q; Tue, 10 Mar 2026 17:18:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250580.1548089; Tue, 10 Mar 2026 17:18: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 1w00jI-0006nv-Sf; Tue, 10 Mar 2026 17:18:48 +0000
Received: by outflank-mailman (input) for mailman id 1250580;
 Tue, 10 Mar 2026 17:18: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=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00aP-0001QA-Ad
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:37 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e9cd1f6e-1ca3-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 18:09:35 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-48534e9076fso20624205e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:35 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e9cd1f6e-1ca3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162575; x=1773767375; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eOghi8Ll3/sbazIkniNGMCKDlS8jGFlMwoa4Be1UqI8=;
        b=UbWt7u0RbG1GgtM3j559JPupxy1TArRkDuM+GgCbVhjHKbkkcBjdwxW2b4W9B2+QvK
         eqaxXJBH0A1vAsD6j0pMQ1e2IqZgeZtNLBEufiqwDPi66RcyZt1FS/dBWj5aENgzVeA/
         hKhxfaBYPJTNrZnvnBrurAyRkeEKuIQenhlr+u9yv7JK+S9ye2BaJVNEQ/NK09CKTJqL
         bDkwrgar/6SyGmMdJBFvV/q7UyBlMtn7RMBvTRzq6gasAooR/bQ51wMm/QVJLw84O3q2
         szl7eS0sMNFlyoFMv4yLju+Ff5DvF1eynOku5uXRljp7KM9SUZQACVFVZkh8ud82sJ1v
         OD7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162575; x=1773767375;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=eOghi8Ll3/sbazIkniNGMCKDlS8jGFlMwoa4Be1UqI8=;
        b=sL6JhzYNCRQJDZDctajYEuwYwweXgVElFuKvlBuBk30GroBzr08FveM8ZbVGMZmydJ
         4l6BwNG47O4zJ4MtKUsRPrbBDKXky0Ffpk/qu5R2Ah9agH3p5eOd/MzdPxNGNnC/TCGu
         RrmRy50rP/HMHl7VfxFUT1FqjSL7lmqo+NbhCjIU4IxkR3fi33tKK06/8AxWmY26GV1c
         I2+RquOqjuFvrEEilb2Px59PccygPEnxr7a1f4o7VKb8IzPG38+BI0jjipfZ+F+WrUoD
         ztZ4WscwOylx+AKUs9BYYM6cGJgfE7iv16WFT+SlREK1MmdYzh7Jb6MiGl7f+yw67i6K
         B6ig==
X-Gm-Message-State: AOJu0YyJBxFViZuWXn+ab9PXplj8EnUZ+S0Bep3BhGYehbpLLL2rLu0I
	pdInlx2h+j6jLOsJ2gHv8uGFdJRwlvwQ8ltoZK3PP3yNYDt+obx8qAvLTjGI7KB6
X-Gm-Gg: ATEYQzzkmswMZa7ZJDLZIL1/0KbrIwDvqHjX1JRCJRW0Zx548Ng48E4l8C6imuXEqtj
	wKDlZwWXDqTDb7JuuKTabUOyVUNJleDf+pktykjeCA8XDLw3P2t3rYH9x4MwG1B2Mw2/teN5Oh9
	frYRTwrl0yK6Pq3yymtcjjUwgvWZuKgxAFyNpyfDARyJYSkisRnKvCdrmN5XjNd+6l6D9U64QM5
	7wahKNXv/fAQFQ495bc7PCJ06TnhEn0q/zs6PV8apwjqauw6RYBbs4Eh63rXOBUMcNReVNnXYtB
	2hO6bkxIDzSDRqDUCIF/og/dRRMDM/bsp/Gqqg3BC8h/TZvt1JaLTR832NBfYdMBk2VwbPzWDUP
	qcnK7tJlSv7NfdynZ0gJNBH2/XmrrIflrQCrfeiYd3m3KHwmpJAc6hV6I7lNBqs4YvII1qHM3iV
	0Vcbor96QRCC4xDRPoaa/0SRfi2HS0Fbm3WGRvqs2EPUcge0MRoi0C7z8mrlWjsOSRAw==
X-Received: by 2002:a05:600c:4752:b0:480:4a8f:2d5c with SMTP id 5b1f17b1804b1-4852697721cmr266702515e9.29.1773162574476;
        Tue, 10 Mar 2026 10:09:34 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 21/27] xen/riscv: introduce (de)initialization helpers for vINTC
Date: Tue, 10 Mar 2026 18:08:54 +0100
Message-ID: <61311834fef7cf8a736a8fa972b6461bbfd46e6d.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add common helpers domain_vintc_init() and domain_vintc_deinit() to
allocate and deallocate a virtual interrupt controller (vINTC)
structure and initialize basic virtual interrupt controller registers.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/domain.c           |  3 +++
 xen/arch/riscv/include/asm/intc.h |  4 ++++
 xen/arch/riscv/intc.c             | 40 +++++++++++++++++++++++++++++++
 3 files changed, 47 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 560b21b16ffb..1c08ba7396ea 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -300,6 +300,9 @@ int arch_domain_create(struct domain *d,
     if ( (rc = p2m_init(d)) != 0)
         goto fail;
 
+    if ( (rc = domain_vintc_init(d)) )
+        goto fail;
+
     d->arch.next_phandle = GUEST_PHANDLE_LAST + 1;
 
     return rc;
diff --git a/xen/arch/riscv/include/asm/intc.h b/xen/arch/riscv/include/asm/intc.h
index 45d41e191e30..fb4188b96a75 100644
--- a/xen/arch/riscv/include/asm/intc.h
+++ b/xen/arch/riscv/include/asm/intc.h
@@ -13,6 +13,7 @@ enum intc_version {
 };
 
 struct cpu_user_regs;
+struct domain;
 struct dt_device_node;
 struct irq_desc;
 struct kernel_info;
@@ -96,4 +97,7 @@ void intc_handle_external_irqs(struct cpu_user_regs *regs);
 
 int intc_make_domu_dt_node(const struct kernel_info *kinfo);
 
+int domain_vintc_init(struct domain *d);
+void domain_vintc_deinit(struct domain *d);
+
 #endif /* ASM__RISCV__INTERRUPT_CONTOLLER_H */
diff --git a/xen/arch/riscv/intc.c b/xen/arch/riscv/intc.c
index a91dbc5e997c..88ce658a4de0 100644
--- a/xen/arch/riscv/intc.c
+++ b/xen/arch/riscv/intc.c
@@ -11,6 +11,7 @@
 
 #include <asm/aia.h>
 #include <asm/intc.h>
+#include <asm/vaplic.h>
 
 static const struct intc_hw_operations *__ro_after_init intc_hw_ops;
 
@@ -87,3 +88,42 @@ int map_device_irqs_to_domain(struct domain *d, struct dt_device_node *dev,
     return d->arch.vintc->ops->map_device_irqs_to_domain(d, dev, need_mapping,
                                                          irq_ranges);
 }
+
+int __init domain_vintc_init(struct domain *d)
+{
+    int ret = -EOPNOTSUPP;
+    const enum intc_version ver = intc_hw_ops->info->hw_version;
+
+    switch ( ver )
+    {
+    case INTC_APLIC:
+        ret = domain_vaplic_init(d);
+        break;
+
+    default:
+        printk("vintc (ver:%d) isn't implemented\n", ver);
+        break;
+    }
+
+    if ( !ret )
+        d->arch.vintc->info = intc_hw_ops->info;
+
+    return ret;
+}
+
+void __init domain_vintc_deinit(struct domain *d)
+{
+    const enum intc_version ver = intc_hw_ops->info->hw_version;
+
+    switch ( ver )
+    {
+    case INTC_APLIC:
+        domain_vaplic_deinit(d);
+        break;
+
+    default:
+        printk("vintc (ver:%d) isn't implemented\n", ver);
+        break;
+    }
+
+}
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:18:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:18:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250581.1548094 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w00jJ-0006qv-B0; Tue, 10 Mar 2026 17:18:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250581.1548094; Tue, 10 Mar 2026 17:18: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 1w00jJ-0006q6-5W; Tue, 10 Mar 2026 17:18:49 +0000
Received: by outflank-mailman (input) for mailman id 1250581;
 Tue, 10 Mar 2026 17:18: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=eHsH=BK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w00aV-0001QA-Az
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:09:43 +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 ec7c6818-1ca3-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 18:09:39 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4852e9ca034so34286755e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 10:09:39 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485359bf807sm119619845e9.2.2026.03.10.10.09.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Mar 2026 10:09:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ec7c6818-1ca3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773162579; x=1773767379; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mamu5j19p2jm+2KOEiHejDQrsNBfFkQPRRGxNqr1KWg=;
        b=jP8xG9Vp437cBtyvZ9JKQYRtm98WzA7SlDh1p+BbXOoTov03KSwS6WfnKcSF5uawJt
         aMWUqvixp3wHXgQfekpv0x0Xcm3wVbgnNgX1QGmZFEpq0W9SfvioCnytkgmXIbcDojgZ
         SypIPwOI502WWqvdreXt3zRzn0F3qeCtmw2LUs/13/7AmVyynlcvw4Gfxb+ACY3+UoZc
         OrTMMukT45e3pxvfboh/p1rLCl/bBh7dFYNeWH27WBUBa4lj/NC58xrEayubR8hD3agW
         XavDV9G6sGEK1g02xBIRVJ2VsDt5bzDmxmVXhoTQX5wmgzGd+dH7C4df9jdqaAo9LhM7
         tEoQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773162579; x=1773767379;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=mamu5j19p2jm+2KOEiHejDQrsNBfFkQPRRGxNqr1KWg=;
        b=NnBG4TGMWBGpHjnHJUBifj133Lij6I46x7OnPkKa3YAU3tDwMV6MiLb2MdBHSGVqzX
         A5hBVTlY3yO97InO6o69rv+Y8+UpqaRGmINbhpa852jfipoV/1mKHVCpUkaqBG4Q9XtD
         2Va6pXFj5M4ib36YV+6U1zZ2VsCB7BVwb/hNyCVkY2G+btpCxzRFBsKmf6rqcEUXqAaV
         UeaDngROXaGxdmZ/TpRnHLocES2E17ixNfjOECKwIo3NMKipbgzpIDQKSqa3CgZBm0zv
         oVRMd8NMTvdTRvroR9kYl1lVnLPPtA/1Dld4EoO5oLWB87IyCXePDF8qDU8E7FTCqKk/
         LHzw==
X-Gm-Message-State: AOJu0YxUQeKT9Ejkf13B8vDI2jYKn+pezQIpSJWHnZKpeXgG8ioQAhfq
	3IQV8uIPQaHP0+pKtmgCKTefAOPrRoebxLHHGq8havPMazNIBtz3L2Q5VZ7QEP2s
X-Gm-Gg: ATEYQzzvqUs1oJbbDe1h84Ou28aP5yeurGtb9cSxusggKVSDraaaEtEieypHlwyEHu4
	dxzgqw2j0vEMQREUQeaT+0aIzZPPXGXYjrMg9mfu8seu03nzQQvwhVcOX9+VfMUGKHhr00tbsHm
	PRuYFvQMYxBvRGZ7Eqj6dOJhVpLg2UKSdwmsMA3yhsQ6Pk6oppelv5r3wzCX0ux7kz8/hwwyiWG
	fJj6Yq2U9PLBrw80n6BCNftw3klAGWNo8Z/dKnC0mPaMW/mw2boQk02z1QPlwBqbR5tcc4o5QSe
	Mr5KAm+OKaCO2XExn/vA31WbkTpcznDeWCkVO7+JbMR03eLpCWp7PdRr1T+hsg24BEJkOV7JEOt
	IHx6G8vDcnalWzD+ADlO8Rzo7Nxe0jj0NLKqeAI3CZCaK9KarIjpeVYKp8MAug5oIwJ+HovTpo0
	8VVsO4lLIxje97cETKJRpj/ioDdRuqytwOg3wSIon79aUfpKNWS2o6IQLn3bP0kCCZWA==
X-Received: by 2002:a05:600c:4443:b0:485:410c:119b with SMTP id 5b1f17b1804b1-485410c1bfemr84140865e9.13.1773162578900;
        Tue, 10 Mar 2026 10:09:38 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 25/27] xen/riscv: setup system domains
Date: Tue, 10 Mar 2026 18:08:58 +0100
Message-ID: <4474cdb8e326c486a806e07d65ad6bdb9e7b9541.1773157782.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773157782.git.oleksii.kurochko@gmail.com>
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/setup.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 3e337bf611fb..5bc34e41fe55 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -6,6 +6,7 @@
 #include <xen/compile.h>
 #include <xen/console.h>
 #include <xen/device_tree.h>
+#include <xen/domain.h>
 #include <xen/init.h>
 #include <xen/irq.h>
 #include <xen/mm.h>
@@ -157,6 +158,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     rcu_init();
 
+    setup_system_domains();
+
     local_irq_enable();
 
     console_init_postirq();
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 17:53:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 17:53:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250671.1548111 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w01GZ-0001Cj-0e; Tue, 10 Mar 2026 17:53:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250671.1548111; Tue, 10 Mar 2026 17:53:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w01GY-0001Cc-Sw; Tue, 10 Mar 2026 17:53:10 +0000
Received: by outflank-mailman (input) for mailman id 1250671;
 Tue, 10 Mar 2026 17:53:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Vylx=BK=kernel.org=helgaas@srs-se1.protection.inumbo.net>)
 id 1w01GY-0001CW-2E
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 17:53:10 +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 feea9b16-1ca9-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 18:53:08 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id EDE8460054;
 Tue, 10 Mar 2026 17:53:06 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 72949C19423;
 Tue, 10 Mar 2026 17:53:06 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: feea9b16-1ca9-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1773165186;
	bh=WO2FOycvuuimWf2BBulOdnsAjAo+YazNHVVwxkp7CTQ=;
	h=Date:From:To:Cc:Subject:In-Reply-To:From;
	b=eBcXb+X80rgKqCBvLspNlTOV1vd/pku+H6vrMwjnIUc1EPld/SwvI87VOk2v9spAk
	 mQwzcYlSAluwZ68uAzim6BOLYhwuR8hvCczaCcrGemVxRjRgvMRz7of7bwaxtz6kRd
	 8qySGXq8grwSK5TKxbSjaXWiTsWNvgZx6eHB/8xZY8WWUeaScw3fMAM7MDLDfNxl7z
	 tuQvq86WkhT8OZAzrXBsWUK0J89R9XxcjJg1hqWabtJJwZex+dDwXjeMi63lPBbZNv
	 qOKy8IvjIYCvJ2lP43twwYPykiMiWqj4+PjF4xTACYlgH5VX2O6O8QN3kfkzkExPxm
	 ckaiF6BuuSr7Q==
Date: Tue, 10 Mar 2026 12:53:05 -0500
From: Bjorn Helgaas <helgaas@kernel.org>
To: Chengwen Feng <fengchengwen@huawei.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>,
	WANG Xuerui <kernel@xen0n.name>, Paul Walmsley <pjw@kernel.org>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>,
	Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Len Brown <lenb@kernel.org>, Sunil V L <sunilvl@ventanamicro.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Jonathan Cameron <jonathan.cameron@huawei.com>,
	Kees Cook <kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>,
	Sean Christopherson <seanjc@google.com>,
	Kai Huang <kai.huang@intel.com>,
	Tom Lendacky <thomas.lendacky@amd.com>,
	Thomas Huth <thuth@redhat.com>,
	Thorsten Blum <thorsten.blum@linux.dev>,
	Kevin Loughlin <kevinloughlin@google.com>,
	Zheyun Shen <szy0127@sjtu.edu.cn>,
	Peter Zijlstra <peterz@infradead.org>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>,
	Xin Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>,
	Sohil Mehta <sohil.mehta@intel.com>,
	Ilkka Koskinen <ilkka@os.amperecomputing.com>,
	Robin Murphy <robin.murphy@arm.com>,
	James Clark <james.clark@linaro.org>,
	Besar Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>,
	Ajit Khaparde <ajit.khaparde@broadcom.com>,
	Wei Huang <wei.huang2@amd.com>,
	Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, wangzhou1@hisilicon.com,
	wanghuiqiang@huawei.com, liuyonglong@huawei.com,
	linux-pci@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	loongarch@lists.linux.dev, linux-riscv@lists.infradead.org,
	xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
	linux-perf-users@vger.kernel.org, stable@vger.kernel.org
Subject: Re: [PATCH v5 1/2] ACPI: Rename get_acpi_id_for_cpu() to
 acpi_get_cpu_acpi_id() on non-x86
Message-ID: <20260310175305.GA730372@bhelgaas>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260310032049.25387-2-fengchengwen@huawei.com>

On Tue, Mar 10, 2026 at 11:20:48AM +0800, Chengwen Feng wrote:
> To unify the CPU ACPI ID retrieval interface across architectures,
> rename the existing get_acpi_id_for_cpu() function to
> acpi_get_cpu_acpi_id() on arm64/riscv/loongarch platforms.
> 
> This is a pure rename with no functional change, preparing for a
> consistent ACPI Processor UID retrieval interface across all ACPI-enabled
> platforms.

Really a question for the ACPI folks, but my preferences would be:

  - Simpler name for the interface, e.g., "acpi_get_cpu_id()"

  - Single prototype in generic header, e.g., include/linux/acpi.h

  - Split the x86 part to a separate patch and maybe (a tangent, but
    looks dubious to me) figure out whether/why xen needs xen_vcpu_id
    to be ACPI CPU IDs

> Cc: stable@vger.kernel.org
> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
> Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
> ---
>  arch/arm64/include/asm/acpi.h      |  4 ++--
>  arch/loongarch/include/asm/acpi.h  |  2 +-
>  arch/riscv/include/asm/acpi.h      |  2 +-
>  arch/riscv/kernel/acpi_numa.c      |  2 +-
>  drivers/acpi/pptt.c                | 16 ++++++++--------
>  drivers/acpi/riscv/rhct.c          |  2 +-
>  drivers/perf/arm_cspmu/arm_cspmu.c |  2 +-
>  7 files changed, 15 insertions(+), 15 deletions(-)


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 20:56:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 20:56:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250710.1548120 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0480-000822-Dj; Tue, 10 Mar 2026 20:56:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250710.1548120; Tue, 10 Mar 2026 20:56:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0480-00081v-A2; Tue, 10 Mar 2026 20:56:32 +0000
Received: by outflank-mailman (input) for mailman id 1250710;
 Tue, 10 Mar 2026 20:56:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LzH0=BK=bounce.vates.tech=bounce-md_30504962.69b08579.v1-658ad54d60d14c9f9a3e30f1ccc89e7a@srs-se1.protection.inumbo.net>)
 id 1w047y-00081p-Ez
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 20:56:30 +0000
Received: from mail133-21.atl131.mandrillapp.com
 (mail133-21.atl131.mandrillapp.com [198.2.133.21])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9a916915-1cc3-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 21:56:28 +0100 (CET)
Received: from pmta13.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail133-21.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fVmQ13F0Gz1XLMtx
 for <xen-devel@lists.xenproject.org>; Tue, 10 Mar 2026 20:56:25 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 658ad54d60d14c9f9a3e30f1ccc89e7a; Tue, 10 Mar 2026 20:56:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9a916915-1cc3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773176185; x=1773446185;
	bh=2Qtix73FtwoQe1av6i/eYyOKy5BRubR6wgFToyFAgfQ=;
	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=Mcwj6fogJ5/a2kZpLqB5kX9u0PS6Q/JEZSVbxmXL4pb70blATgDAZfYQRkvVyi7K7
	 XZyVu0aCUdp1b3vnjipbTLV2vJT7cCRGD2/DMzm3VnUupIIymzeWgfm6/61XwVm1G4
	 CRbz2/6slnbJJqFpiV8RxQsfWKhbZqlwUdj4lvS90bVj2yZ5JWaLJQ/GBVtwTEczm6
	 O87O7m169bKOQFD4b5McrhqwwWD7w62czAvuCe8KPLKqbTKUHHgkgzx6i8TFerzYrP
	 Vx+iWZiD3lBh5kvm2XFDhWsQdUYzwKGQlSDK3a5C00cpi8BWium4/UPH9sEa0fWwux
	 sfOEEZu/H7p2A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773176185; x=1773436685; i=julian.vetter@vates.tech;
	bh=2Qtix73FtwoQe1av6i/eYyOKy5BRubR6wgFToyFAgfQ=;
	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=wEpcsrzZK6SWL+Oovg2BsGytuA17BlewXxWcz41LftFudy0ohzdO3R8/nK4x8YWWE
	 h1uojDC8lD5PzGCjDmJw3M3qwyBQHYN9NSr6z+YhMaFP7kSctki+WpmHZH+33JUMXh
	 EMFRo0ryQkx3YJZs8Qq60tC5rG1XJ+dqR+91UUIuIa6yjCr98f8BYSKh5tHTphoztI
	 hvW72LgYK1h5AquT8+jtzsogKVCF8hbnyOqyUapI254EnWLsyRKKQMCdJvVNla39ge
	 k8zFH0CObXdI+fE8QzzoqGh5/S5pNMTeGxaD5bCMXLJQvL7nTWp6GGHqUbzN7Ll4ML
	 V86IpQt4jDmEA==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v4=202/2]=20x86/ioreq:=20Extend=20ioreq=20server=20to=20support=20multiple=20ioreq=20pages?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773176184057
Message-Id: <4509bc57-ea36-4208-b76b-465d15b25a09@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20260305130434.635276-1-julian.vetter@vates.tech> <20260305130434.635276-2-julian.vetter@vates.tech> <c73afb52-e39c-48c8-bf2c-41b509ca0dd0@suse.com> <a05e2d6c-5ba7-4651-b9d1-c1b502be0e7b@vates.tech> <5724bdb3-bec5-4159-a4f4-9bdad39acd7b@suse.com>
In-Reply-To: <5724bdb3-bec5-4159-a4f4-9bdad39acd7b@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.658ad54d60d14c9f9a3e30f1ccc89e7a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260310:md
Date: Tue, 10 Mar 2026 20:56:25 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On 3/10/26 17:09, Jan Beulich wrote:
> On 10.03.2026 16:56, Julian Vetter wrote:
>> On 3/10/26 16:36, Jan Beulich wrote:
>>> On 05.03.2026 14:04, Julian Vetter wrote:
>>>> @@ -45,7 +52,8 @@ struct ioreq_server {
>>>>        /* Lock to serialize toolstack modifications */
>>>>        spinlock_t             lock;
>>>>    
>>>> -    struct ioreq_page      ioreq;
>>>> +    ioreq_t                *ioreq;
>>>> +    gfn_t                  ioreq_gfn;
>>>>        struct list_head       ioreq_vcpu_list;
>>>>        struct ioreq_page      bufioreq;
>>>
>>> This change in data arrangement should in principle be independent of the
>>> step to supporting multiple pages. Hence it should be possible to separate
>>> out. Problem being that just by looking here and at hvm_{,un}map_ioreq_gfn()
>>> I can't conclude how you get away without the "page" field that struct
>>> ioreq_page had. If you can get away without, it's not quite clear why the
>>> field exists in the first place. If it's not needed, dropping it would be
>>> yet another separate, prereq change. At which point the remaining pair of
>>> fields could continue to be used, i.e. the change above then wouldn't be
>>> needed; va could be renamed if need be, and its type changed.
>>
>> Thank you again Jan for your feedback! I don't need the page anymore.
>> When I use vmap(), I don't need to keep track of it, because during
>> teardown, I can recover it via vmap_to_page(). Currently it's necessary
>> because in destroy_ring_for_helper we need the page, to be destroyed.
>> But I see now, on X86 the map_domain_page_global called from
>> prepare_ring_for_helper actually does vmap(&mfn, 1). So the page is also
>> from the vmap range. So for the teardown I assume a vmap_to_page() could
>> be used as well. But I also see there is a special case, if NDEBUG=1,
>> map_domain_page_global short-circuits to mfn_to_virt() for low MFNs
>> (putting the VA in the directmap range) and bypassing vmap. In that case
>>
>> vmap_to_page() would not work. So, this would be really messy. I would
>> rather switch the bufioreq also to an explicitly vmap()'ed page, then we
>> could remove the page pointer and both cases would be aligned again.
> 
> That's an option. Yet are you aware of domain_page_map_to_mfn()? Perhaps
> that's what you want to switch to using in the patch removing the "page"
> field. To then, conditionally or uniformly, switch to vmap_to_{mfn,page}()
> when doing the multi-page work in the subsequent patch.

Yes, thank you. I saw this function, but I was wondering whether it's a 
good idea to wrap the va in two translation functions like:

struct page_info *page = mfn_to_page(domain_page_map_to_mfn(va));

and then calling destroy_ring_for_helper() with it. But I will have a 
look, and this way we would be again aligned between the two cases. So, 
maybe it's the cleanest way.

Julian

> 
> Jan



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Tue Mar 10 22:09:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 22:09:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250732.1548127 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w05Ga-00080d-GF; Tue, 10 Mar 2026 22:09:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250732.1548127; Tue, 10 Mar 2026 22: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 1w05Ga-00080W-DI; Tue, 10 Mar 2026 22:09:28 +0000
Received: by outflank-mailman (input) for mailman id 1250732;
 Tue, 10 Mar 2026 22:09:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Vylx=BK=kernel.org=helgaas@srs-se1.protection.inumbo.net>)
 id 1w05GY-0007ze-RY
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 22:09:26 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cb4c4229-1ccd-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Mar 2026 23:09:23 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 3CBF6600B0;
 Tue, 10 Mar 2026 22:09:22 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B8F86C19423;
 Tue, 10 Mar 2026 22:09:21 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cb4c4229-1ccd-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1773180561;
	bh=W80lkFXkPyxzZPzLe6vTEN0SYi+yr5xZNTGscVmS0ko=;
	h=Date:From:To:Cc:Subject:In-Reply-To:From;
	b=L00YXZHPMVeEfxwGWu/AsurKr2xWM9c1K5M3MtDaIn5nfcen4jicy1Q3i8rLIm5yf
	 WfvG20wIi1QYyAKqVzaODlOcIZAjN1oBjLxF9C/amXt1SGV5lxTwZfkpQvXdvW9gAg
	 U5fgwzShrDb/Z15j0gztxNaymw4OC6qlveBz2cGZnyhROtlLohCqWPm8uXMsbT9F27
	 CbZuzIyVxmIfJ98YaFyJMcT3cZFIirNKa3bxELZvJJRpc3CFl/8aYvCTYeWpkA6BN0
	 oBTJJOco6wPHguHYPtf3q7EkbWZ3hux+WxUaIr/01eGtMcm8Pr8xqHRXg8MC7nxSZp
	 RRiGt6sycGkpg==
Date: Tue, 10 Mar 2026 17:09:20 -0500
From: Bjorn Helgaas <helgaas@kernel.org>
To: Jeremy Linton <jeremy.linton@arm.com>
Cc: Chengwen Feng <fengchengwen@huawei.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>,
	WANG Xuerui <kernel@xen0n.name>, Paul Walmsley <pjw@kernel.org>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>,
	Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Len Brown <lenb@kernel.org>, Sunil V L <sunilvl@ventanamicro.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Jonathan Cameron <jonathan.cameron@huawei.com>,
	Kees Cook <kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>,
	Sean Christopherson <seanjc@google.com>,
	Kai Huang <kai.huang@intel.com>,
	Tom Lendacky <thomas.lendacky@amd.com>,
	Thomas Huth <thuth@redhat.com>,
	Thorsten Blum <thorsten.blum@linux.dev>,
	Kevin Loughlin <kevinloughlin@google.com>,
	Zheyun Shen <szy0127@sjtu.edu.cn>,
	Peter Zijlstra <peterz@infradead.org>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>,
	Xin Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>,
	Sohil Mehta <sohil.mehta@intel.com>,
	Ilkka Koskinen <ilkka@os.amperecomputing.com>,
	Robin Murphy <robin.murphy@arm.com>,
	James Clark <james.clark@linaro.org>,
	Besar Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>,
	Ajit Khaparde <ajit.khaparde@broadcom.com>,
	Wei Huang <wei.huang2@amd.com>,
	Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, wangzhou1@hisilicon.com,
	wanghuiqiang@huawei.com, liuyonglong@huawei.com,
	linux-pci@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	loongarch@lists.linux.dev, linux-riscv@lists.infradead.org,
	xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
	linux-perf-users@vger.kernel.org, stable@vger.kernel.org,
	Wathsala Vithanage <wathsala.vithanage@arm.com>
Subject: Re: [PATCH v5 2/2] PCI/TPH: Fix get cpu steer-tag fail on ARM64
 platform
Message-ID: <20260310220920.GA826995@bhelgaas>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <657142d1-1632-4a3e-8800-ee1dd5763d78@arm.com>

On Tue, Mar 10, 2026 at 10:58:49AM -0500, Jeremy Linton wrote:
> On 3/9/26 10:20 PM, Chengwen Feng wrote:
> > pcie_tph_get_cpu_st() is broken on ARM64:
> > 1. pcie_tph_get_cpu_st() passes cpu_uid to the PCI ACPI DSM method.
> >     cpu_uid should be the ACPI Processor UID [1].
> > 2. In BNXT, pcie_tph_get_cpu_st() is passed a cpu_uid obtained via
> >     cpumask_first(irq->cpu_mask) - the logical CPU ID of a CPU core,
> >     generated and managed by kernel (e.g., [0,255] for a system  with 256
> >     logical CPU cores).
> > 3. On ARM64 platforms, ACPI assigns Processor UID to cores listed in the
> >     MADT table, and this UID may not match the kernel's logical CPU ID.
> >     When this occurs, the mismatch results in the wrong CPU steer-tag.
> > 4. On AMD x86 the logical CPU ID is identical to the ACPI Processor UID
> >     so the mismatch is not seen.

> >   int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type mem_type,
> > -			unsigned int cpu_uid, u16 *tag)
> > +			unsigned int cpu, u16 *tag)
> >   {
> >   #ifdef CONFIG_ACPI
> > +	u32 cpu_uid = acpi_get_cpu_acpi_id(cpu);

>From AI review (gemini/gemini-3.1-pro-preview):

  Does this code need to validate that `cpu` is within bounds before
  using it?  Before this change, the `cpu_uid` parameter was passed
  opaquely to the ACPI firmware via `tph_invoke_dsm()`, which would
  gracefully handle invalid values.

  Now, `cpu` is treated as a logical CPU index and passed to
  `acpi_get_cpu_acpi_id(cpu)`. On architectures like arm64 and riscv,
  `acpi_get_cpu_acpi_id()` uses `cpu` directly as an array index
  (`&cpu_madt_gicc[cpu]` and `&cpu_madt_rintc[cpu]`). On x86, it uses
  `per_cpu(x86_cpu_to_acpiid, cpu)`.

  If a caller passes an out-of-bounds `cpu` index (for example, if an
  IRQ affinity mask is empty and `cpumask_first()` returns
  `nr_cpu_ids`, or if userspace passes an arbitrary ID via
  `mlx5_st_alloc_index()`), this will result in an out-of-bounds
  memory read.

  Consider adding a bounds check:

    if (cpu >= nr_cpu_ids)
      return -EINVAL;

I agree that this is an issue, and I think implementations of
acpi_get_cpu_acpi_id() should validate their inputs.

I don't know if there's a value that can never be a valid ACPI CPU UID
and could be used as an error value from acpi_get_cpu_acpi_id().  I do
see a few mentions of a ~0 value meaning "all processors" (ACPI r6.6,
sec 5.2.12.13).  


From xen-devel-bounces@lists.xenproject.org Tue Mar 10 22:40:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Mar 2026 22:40:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250747.1548138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w05kG-0004TZ-Th; Tue, 10 Mar 2026 22:40:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250747.1548138; Tue, 10 Mar 2026 22: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 1w05kG-0004TS-Pl; Tue, 10 Mar 2026 22:40:08 +0000
Received: by outflank-mailman (input) for mailman id 1250747;
 Tue, 10 Mar 2026 22: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=pBDb=BK=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w05kF-0004Qt-2q
 for xen-devel@lists.xenproject.org; Tue, 10 Mar 2026 22:40:07 +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 147ee745-1cd2-11f1-b164-2bf370ae4941;
 Tue, 10 Mar 2026 23:40:05 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ0PR03MB5518.namprd03.prod.outlook.com (2603:10b6:a03:289::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Tue, 10 Mar
 2026 22:39:54 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9700.010; Tue, 10 Mar 2026
 22: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: 147ee745-1cd2-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=a6FuBQTZVkw6lglQZbZt/z1EmdG/mFVt4TKI9z33VTEjNqO5EZhTJJ9QD3G7M8u862dh2j3Nr685tmvPF4E4RSS2JIucppG/0d4AIFMrSJ1bXxTu8MQ+nbAY3qnL+sjihiZol/Zu1W9pGAcfDiyB/S6P5DLf/oXGJMrKBCsCKW55jYUk+p99gZEISD1Y7Dhqfr8eOA9igocwL8EE8rvRtTL03YW0H0zx2OQh5PBBU5AQ6CqrI1/Cq/a20F6MLQigB97YfgoqGRrcJG6nH5N2m2vSA1q6zPRRULksDQw1luEURVtT61jamdF6p3JL2d3+aYSojiMlJpbGscp4AHSWaQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=T5ya/14xemD/FSVbl/3h5BjXqa8QljYPw+uZsXlmhvw=;
 b=CeyqxuDd9d2EwajTtPP7/i2FyWwTlaa3rhz0vp9Y4Z2AuCqgoQSIHxAQgq4uH+lvh26ic0eVjrKEdBUhwYAVfLKITe9VNB2RNrOksWoYHn2QeoYCTBxqjNwea0a65Xt7GzwW1rnF0IVqqeHSfjLeeVO9IKbNBeAYTswo2o2URVkVI7fyLwxDAlGDBwK8Wy6JMa9LWJ+n7cfjolLdLqmszeOBtXfraY67/BDT0MLMxg35NfZo3zvuOtuGuI70IwTkwUGJzfhfe+UmExbpwVIlFdc56hT0UUeQLzO30YhRWls1uIzBOgLevgAIojwhlNuVMhWDuLuIHxoxxwO3qsRn/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=T5ya/14xemD/FSVbl/3h5BjXqa8QljYPw+uZsXlmhvw=;
 b=OLh0befGjmqooOT15+f6FYL3ssxtC8tCGnpIE/bGkf3niQsZWm68QvF385ug3uFfVMNALkBovNip2OiFvErwOWvTvixRQz80wSdHmxEHDRlcnS+BUMS2g/NrdM/RZEVrU8is3v9cwnarRyg/4fIVwpsLzYj9ub6jXHDa2WeNqMg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <89f34cfe-7b77-4f66-b3ed-8104c5b50eaf@citrix.com>
Date: Tue, 10 Mar 2026 22:39:48 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Bjorn Helgaas <bhelgaas@google.com>,
 Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>,
 "Rafael J . Wysocki" <rafael@kernel.org>, Jonathan Corbet <corbet@lwn.net>,
 Shuah Khan <skhan@linuxfoundation.org>, Huacai Chen <chenhuacai@kernel.org>,
 WANG Xuerui <kernel@xen0n.name>, Paul Walmsley <pjw@kernel.org>,
 Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>,
 Alexandre Ghiti <alex@ghiti.fr>, Thomas Gleixner <tglx@kernel.org>,
 Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
 Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
 "H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>,
 Sunil V L <sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>,
 Jonathan Cameron <jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>,
 Yanteng Si <si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>,
 Kai Huang <kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Thomas Huth <thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>,
 Kevin Loughlin <kevinloughlin@google.com>, Zheyun Shen
 <szy0127@sjtu.edu.cn>, Peter Zijlstra <peterz@infradead.org>,
 Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin Li <xin@zytor.com>,
 "Ahmed S . Darwish" <darwi@linutronix.de>,
 Sohil Mehta <sohil.mehta@intel.com>,
 Ilkka Koskinen <ilkka@os.amperecomputing.com>,
 Robin Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>,
 Besar Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>,
 Ajit Khaparde <ajit.khaparde@broadcom.com>, Wei Huang <wei.huang2@amd.com>,
 Andy Gospodarek <andrew.gospodarek@broadcom.com>,
 Somnath Kotur <somnath.kotur@broadcom.com>, wangzhou1@hisilicon.com,
 wanghuiqiang@huawei.com, liuyonglong@huawei.com, linux-pci@vger.kernel.org,
 linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
 linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev,
 linux-riscv@lists.infradead.org, xen-devel@lists.xenproject.org,
 linux-acpi@vger.kernel.org, linux-perf-users@vger.kernel.org,
 stable@vger.kernel.org
Subject: Re: [PATCH v5 1/2] ACPI: Rename get_acpi_id_for_cpu() to
 acpi_get_cpu_acpi_id() on non-x86
To: Bjorn Helgaas <helgaas@kernel.org>,
 Chengwen Feng <fengchengwen@huawei.com>
References: <20260310175305.GA730372@bhelgaas>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260310175305.GA730372@bhelgaas>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0131.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:9f::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_|SJ0PR03MB5518:EE_
X-MS-Office365-Filtering-Correlation-Id: 6ec7f3b8-a59e-49fc-4842-08de7ef5f52f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|7416014|1800799024|376014|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	0uGaJBptse/dAAqoo9odz6TEboL6x1eofnu0U5I34ebOa2ydcGqAcURoHxeqKeO3q62Mk5AIsz1uGpcRUD51NtKqNO+im0qexd9ilZKJZwf/sVWbvl9FkuGXGlAR406DyLp52UojePLAqEJKSJJpfuOlxgOnt0mVBkxJN6z+adZXzeuwWlSNTcE2sm5+Mcbo8rlNnBVBK6m2P7UzW2lI03Yai/YAtCivMkx7lshvcpmyQU6beOumt/PhWTn9VavQB6dxRkuFDRldT2anaLSy05shimis65lY/86L7Ph65C0dcQnAikX35j9vq3YffbG+ewMZatuwAvx+VS5mkXNpysipAZE0tCOIsJzprkl2htuAgKHB26cB8Iphxp8mgqHxR/pPpGtfkwbzfEm3umXlA6fyULummSFXzgYr0RBrckPf1CMtH3ML09mhbi9mhxjQUH34bLVxRTXGehvJAOmtHAO6RfZpxctAwHNM7zamEqCkqE8aE/PJuIGvCCiPOImsLdYDetUwzZ0rJHdApQ7O06VJcFegGh3y7W+1o+C0nnQmgSL9PsHd47dg7WEAMnQnNAAWK2NFmnJSgh0YtqnNlIPSgpV3/MKdVTRjoYv+CLIJEvylvZsytoZVU1dHgXCtt+w4UbfdU4HvNSO7E6+tC4V2GQzuo7Q8QClKdx2hbNmPlsDsaLWFnXZqMhwKxEvLMBFb6gQv2PJC14pljFl2sByALSYynly2akYCUwJFGmc=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(1800799024)(376014)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Yk5PbGRvSzVOcnFMOTR0c3hjbVZuNnZ4emp0MTJXcldGRDRRc2JyN0U2R25n?=
 =?utf-8?B?RXQ0Qng2QlppaWt3N1Nhckt2WS9TRHNkWkJYMVcxQWpzeVNCV2lkanhUajVv?=
 =?utf-8?B?eWpIbEF4Y1FPMzMvVDUvZFRia0I3M2crMTlEbGplR3VLUml1Ti94aVlyY2NU?=
 =?utf-8?B?b1MvdnJ6Uzc5S05uUmZPbi9NMzlQYkRuMkpSbTRCK25kMkwzQ3A4ekFmb1ky?=
 =?utf-8?B?NGJROTNkY05lZnZETVVqOW5tMlYzVk5HWnNQc3VrUkZ2K0xaRkwyVGpmQkl6?=
 =?utf-8?B?V0RjU2NtN2svclpta3FJa1Y1WGVyN01tQVVFelgrbENrcDdad0lLaUExbnNn?=
 =?utf-8?B?cUpCUnpVN3BCQ0kvRGdUYlhXa053aFlFVWVyVk5KejR1cWp6bmxNT0h1WXRE?=
 =?utf-8?B?QjV1L0FNdGhKNlR5QWVZdEZObHliK3czeTFlMUFUbVk5eHZXLzlyZHJYbTly?=
 =?utf-8?B?UFVtbU1PUVZNU2w1RjFUY0UybjRvbVFFSHl2L1BkTlUwKzlhakoySzI5aFR4?=
 =?utf-8?B?SHNySnJTNXZ1TDNLbDU2K3hjdFFpeldidUNFaCtGRFc0RkxvMEV1M2lHbjRx?=
 =?utf-8?B?aWx6d0ZpSVNudDdNUEk5amI3blo3cy9XNzNFZ3BTU0hkK01XTUJ2MUlabk10?=
 =?utf-8?B?N2x5b0VoZUh1WHhLV3o5dW1LZ2Jtb0RvOW94a1J5a1BBODhKNWpZRnZ4S2xH?=
 =?utf-8?B?WjlvdEdteWUxRG5ZZnVnbmUvYmE1bHBEciswOW1VbFREbzFlWksvbUJZRno5?=
 =?utf-8?B?UzFBU0YrVjROdTN0NnkrSXRtUFNuSFhNSE1KOXRTbXc3VUVoNUtWeEViclNa?=
 =?utf-8?B?d0FRemNqMGhERnZVaTAvMzQ3cFozNWtlczE2UVN5Sk4xNklPZkZkYTAzL2Mw?=
 =?utf-8?B?YjVxbXNTVjdBdTZSYVprQys4U1pZeUxlVmZ5dXY4S3N3U1VaL1FBazJHZ1Zl?=
 =?utf-8?B?R0ErTi84MHdlSFh0bENQS1d4d1NMbWdaci9SSkRPcDI1NDM3QlZZc0I2b1g5?=
 =?utf-8?B?UjFxbTRKVnI5S1dIclZXNVpMdVdnVHdQTDlreXlQRTdIcDQ3NGFwL1diY1kv?=
 =?utf-8?B?eHR4eWNOd09aNldnMUdaT09BOWhIQmYzM2VYTFVsQU8rcFRQdGdsYkloZkVR?=
 =?utf-8?B?NU9qRWlCYllPSmkydXFJZTlITHdKcDBFR1VTT3VUcVovcXJ1RnlCYVlNMlJy?=
 =?utf-8?B?V1RwMXNTblltZHZ3bzFnSmhRMEF1Q2JoM0RESjhYNHoxclVXYkFYZUd6R3oz?=
 =?utf-8?B?QkQzK0FoQndBRHIyVzl0dHJBRFByWUxZTXdpdURzSVNReXlXQ1BmZTBWVW9L?=
 =?utf-8?B?WmdwcEpXaU1KektuMFR2ZUlDRVNQelBPbDMvK0xRMTFtRzNHeXA3eEhQSm4r?=
 =?utf-8?B?WFNGaHVWQktaVTBzRmpmUngvMWQ0R1hGOVlnRjJ4Uk9Qb1o3Uzd0Yk9SUjlr?=
 =?utf-8?B?VGw4QzBKelF1c05LYnMydEg3ZE1odjczR21WWllIdFJjc3p4M0ZNMEN6MFNK?=
 =?utf-8?B?N1lrVXRrK3JvVzdVRUcvSlRMWVhFVFpiZDJ3UW1Ob2dkaktvL24zeUFKME8r?=
 =?utf-8?B?aW83N0dMWmhhUlIxMHRoZWY2UzlYdGd5L0ZHajNFaGh4ckpnblBVdFhJR3VB?=
 =?utf-8?B?TGx3djJITzJlblJXM1hBRFAvYjFjZWU4VTFQNThzbXBzSjBpMzErNkdCa25Q?=
 =?utf-8?B?V2Qxc1BPRDdBQkptbGxDaG9YSktVL09DNmV0VEhCTjh5MUMzS2dxV0pFVkpI?=
 =?utf-8?B?TXJTbGc2K3Mxbm5WWFFvV1JJdU55ZHl1bVg5aVlmQWkxUTdqL29Ra3Eya1Ny?=
 =?utf-8?B?eVlZZHN2ZWxabXZsdXFkSExFcUFYK0ZqQ2w2MFZ2eW85VGk5bjJ5bWNYZWhR?=
 =?utf-8?B?Z3FFV200Y1paTm5LV00xRnc2SnVCT0IrMDRkNlYwQkNkSnRlTEZmZXNWNVBK?=
 =?utf-8?B?NFdGdDIvRlEyZWlsWXVyd3lmeG5VQ3NERDlucndkaHd0a1lQMVpaTEJ5Q1Fl?=
 =?utf-8?B?by9QUThVdG83a0dPTWdKb081c1BQczBEdlJoU3dKcmVCZFJCZnZicTB4MlJ0?=
 =?utf-8?B?cUpwU2lTaWJxaDRNVFpUVTR4NHd3TnZXZEFoM0VJaDlPaE9PdDRQR3pRcUkz?=
 =?utf-8?B?T0s1bW1pem5uSkV2SnBaZ2N1TldjU212N2Z3YW0rNGsvSVJhTVFOcHRqYmVJ?=
 =?utf-8?B?VHpZK0tZMEZFbDRYbVdKYThoVDY1aXJYTlgraXk3UkdLMVY5RnhmL2RNUXZm?=
 =?utf-8?B?endqSUs3UWhRbG5mbWQ5NUh4MVh4QzlRT1NSclNJUnRTQXNWNkVQT1hLWlJQ?=
 =?utf-8?B?ajlPN0t2R2lSVUJwbXpLQTgvVDRDMmhRMkVEa0JYanBWREpRcmNmdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6ec7f3b8-a59e-49fc-4842-08de7ef5f52f
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2026 22:39:58.0577
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: w1CHoC9U+cpBf9KaJCKXbaFHOUzVk/9lCW28q1CpouRGxDPSK3i9wKvtNhtfeZBolw2H3VZagHko59xaJlcwT2gvUMZSFHWjbUx6esRQymE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5518

On 10/03/2026 5:53 pm, Bjorn Helgaas wrote:
>   - Split the x86 part to a separate patch and maybe (a tangent, but
>     looks dubious to me) figure out whether/why xen needs xen_vcpu_id
>     to be ACPI CPU IDs

This is an unfortunate mess made decades ago with no good solution. 
It's to do with how Xen and dom0 share responsibility for the system.

Xen PV dom0 (only, but still widely in use; ring-deprivileging and
predates hardware virt) is OSPM for the whole system, seeing the real
ACPI tables but with a number of vCPUs generally less than the whole system.

This causes Linux to have a split idea of what CPUs are, held together
by hope and duct tape.

Xen PVH dom0 (hardware virt) is OSPM, but has an MADT matching it's vCPU
layout.  It still sees the system DSDT/etc, so while this is better from
Linux's point of view, it's still not great.

Regular unprivileged VMs get a fully coherent set of CPUID + ACPI tables.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 02:58:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 02:58:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250772.1548146 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w09ls-0007XH-18; Wed, 11 Mar 2026 02:58:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250772.1548146; Wed, 11 Mar 2026 02:58:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w09lr-0007X9-TT; Wed, 11 Mar 2026 02:58:03 +0000
Received: by outflank-mailman (input) for mailman id 1250772;
 Wed, 11 Mar 2026 02:58: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=bFBt=BL=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w09lp-0007X3-Ax
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 02:58:02 +0000
Received: from canpmsgout05.his.huawei.com (canpmsgout05.his.huawei.com
 [113.46.200.220]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1a08db0c-1cf6-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Mar 2026 03:57:57 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.162.140])
 by canpmsgout05.his.huawei.com (SkyGuard) with ESMTPS id 4fVwJc46ySz12LFG;
 Wed, 11 Mar 2026 10:52:16 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 2B67A2012A;
 Wed, 11 Mar 2026 10:57:52 +0800 (CST)
Received: from [10.67.121.161] (10.67.121.161) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Wed, 11 Mar 2026 10:57:50 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1a08db0c-1cf6-11f1-9ccf-f158ae23cfc8
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=b36C7PXQWMtROHC3akP80A02jao7I70/cN0HO+5yrzc=;
	b=OIFuDbC2xS7Rgm+I36JhjfBBuNlrExfOc4b/6nZu5Eci5l3+fQS/kU6c0nfyQEGA12kX/Y7Hm
	Q4fnrBYIxytCYBOb9gfPVNmdxJt8Tvf2GHBr2Fdo4Eecx+kEiQ1JtKfbeg5YZs6XhpMHGRf3AdS
	dsh0tpvrdex5MaKPf2KuYUQ=
Message-ID: <f2bf1055-ae5f-44bb-9bd4-8888099933fb@huawei.com>
Date: Wed, 11 Mar 2026 10:57:49 +0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/2] ACPI: Rename get_acpi_id_for_cpu() to
 acpi_get_cpu_acpi_id() on non-x86
To: Bjorn Helgaas <helgaas@kernel.org>
CC: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>, Jonathan Corbet <corbet@lwn.net>, Shuah Khan
	<skhan@linuxfoundation.org>, Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui
	<kernel@xen0n.name>, Paul Walmsley <pjw@kernel.org>, Palmer Dabbelt
	<palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, Alexandre Ghiti
	<alex@ghiti.fr>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar
	<mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, Dave Hansen
	<dave.hansen@linux.intel.com>, <x86@kernel.org>, "H . Peter Anvin"
	<hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris Ostrovsky
	<boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V L
	<sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Jonathan
 Cameron <jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>, Yanteng
 Si <si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>, Kai Huang
	<kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>, Thomas Huth
	<thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>, Kevin Loughlin
	<kevinloughlin@google.com>, Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra
	<peterz@infradead.org>, Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin
 Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Ajit Khaparde
	<ajit.khaparde@broadcom.com>, Wei Huang <wei.huang2@amd.com>, Andy Gospodarek
	<andrew.gospodarek@broadcom.com>, Somnath Kotur <somnath.kotur@broadcom.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <linux-pci@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <loongarch@lists.linux.dev>,
	<linux-riscv@lists.infradead.org>, <xen-devel@lists.xenproject.org>,
	<linux-acpi@vger.kernel.org>, <linux-perf-users@vger.kernel.org>,
	<stable@vger.kernel.org>
References: <20260310175305.GA730372@bhelgaas>
Content-Language: en-US
From: fengchengwen <fengchengwen@huawei.com>
In-Reply-To: <20260310175305.GA730372@bhelgaas>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.67.121.161]
X-ClientProxiedBy: kwepems500001.china.huawei.com (7.221.188.70) To
 kwepemk500009.china.huawei.com (7.202.194.94)

On 3/11/2026 1:53 AM, Bjorn Helgaas wrote:
> On Tue, Mar 10, 2026 at 11:20:48AM +0800, Chengwen Feng wrote:
>> To unify the CPU ACPI ID retrieval interface across architectures,
>> rename the existing get_acpi_id_for_cpu() function to
>> acpi_get_cpu_acpi_id() on arm64/riscv/loongarch platforms.
>>
>> This is a pure rename with no functional change, preparing for a
>> consistent ACPI Processor UID retrieval interface across all ACPI-enabled
>> platforms.
> 
> Really a question for the ACPI folks, but my preferences would be:
> 
>   - Simpler name for the interface, e.g., "acpi_get_cpu_id()"

OK, and how about add u-, like: acpi_get_cpu_uid()

> 
>   - Single prototype in generic header, e.g., include/linux/acpi.h

OK

> 
>   - Split the x86 part to a separate patch and maybe (a tangent, but
>     looks dubious to me) figure out whether/why xen needs xen_vcpu_id
>     to be ACPI CPU IDs

OK for a separate patch for x86.

Btw: the x86 implementation in 2/2 commit may has problem, please see the reply in 2/2 for detail.

> 
>> Cc: stable@vger.kernel.org
>> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
>> Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
>> ---
>>  arch/arm64/include/asm/acpi.h      |  4 ++--
>>  arch/loongarch/include/asm/acpi.h  |  2 +-
>>  arch/riscv/include/asm/acpi.h      |  2 +-
>>  arch/riscv/kernel/acpi_numa.c      |  2 +-
>>  drivers/acpi/pptt.c                | 16 ++++++++--------
>>  drivers/acpi/riscv/rhct.c          |  2 +-
>>  drivers/perf/arm_cspmu/arm_cspmu.c |  2 +-
>>  7 files changed, 15 insertions(+), 15 deletions(-)
> 



From xen-devel-bounces@lists.xenproject.org Wed Mar 11 03:00:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 03:00:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250780.1548155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w09o2-0000c2-A6; Wed, 11 Mar 2026 03:00:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250780.1548155; Wed, 11 Mar 2026 03:00:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w09o2-0000bv-71; Wed, 11 Mar 2026 03:00:18 +0000
Received: by outflank-mailman (input) for mailman id 1250780;
 Wed, 11 Mar 2026 03:00:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=bFBt=BL=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w09o1-0000bn-NE
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 03:00:17 +0000
Received: from canpmsgout07.his.huawei.com (canpmsgout07.his.huawei.com
 [113.46.200.222]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6a6fdc8e-1cf6-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 04:00:13 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.214])
 by canpmsgout07.his.huawei.com (SkyGuard) with ESMTPS id 4fVwMy3T5lzLlSf;
 Wed, 11 Mar 2026 10:55:10 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 7FEF34056C;
 Wed, 11 Mar 2026 11:00:05 +0800 (CST)
Received: from [10.67.121.161] (10.67.121.161) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Wed, 11 Mar 2026 11:00:03 +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: 6a6fdc8e-1cf6-11f1-b164-2bf370ae4941
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=DUKycpPzpFIpG0env8jwSvfK5sQZJJ1YY0eqvDa9Ls4=;
	b=UIuMwL2ZnQBHKt0OSz5st4Og2VYIGREkqW4SE+XsyKkbHXGhNjJEsAWrxVSqy6OOZJ3NLbK9Z
	kP8s3Xd0pnLT2F4QMacoWnfn19/NxFuvNNLMkzdoJPW46wBbTVsZOQsEtjgpquwRCBs94A0/o7e
	g1HUZD+aWdwNP2wFTTnfWEY=
Message-ID: <9ef9b529-839b-4cf0-a294-5b68fe8aa768@huawei.com>
Date: Wed, 11 Mar 2026 11:00:02 +0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 2/2] PCI/TPH: Fix get cpu steer-tag fail on ARM64
 platform
To: Bjorn Helgaas <helgaas@kernel.org>, Jeremy Linton <jeremy.linton@arm.com>
CC: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>, Jonathan Corbet <corbet@lwn.net>, Shuah Khan
	<skhan@linuxfoundation.org>, Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui
	<kernel@xen0n.name>, Paul Walmsley <pjw@kernel.org>, Palmer Dabbelt
	<palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, Alexandre Ghiti
	<alex@ghiti.fr>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar
	<mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, Dave Hansen
	<dave.hansen@linux.intel.com>, <x86@kernel.org>, "H . Peter Anvin"
	<hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris Ostrovsky
	<boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V L
	<sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Jonathan
 Cameron <jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>, Yanteng
 Si <si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>, Kai Huang
	<kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>, Thomas Huth
	<thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>, Kevin Loughlin
	<kevinloughlin@google.com>, Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra
	<peterz@infradead.org>, Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin
 Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Ajit Khaparde
	<ajit.khaparde@broadcom.com>, Wei Huang <wei.huang2@amd.com>, Andy Gospodarek
	<andrew.gospodarek@broadcom.com>, Somnath Kotur <somnath.kotur@broadcom.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <linux-pci@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <loongarch@lists.linux.dev>,
	<linux-riscv@lists.infradead.org>, <xen-devel@lists.xenproject.org>,
	<linux-acpi@vger.kernel.org>, <linux-perf-users@vger.kernel.org>,
	<stable@vger.kernel.org>, Wathsala Vithanage <wathsala.vithanage@arm.com>
References: <20260310220920.GA826995@bhelgaas>
Content-Language: en-US
From: fengchengwen <fengchengwen@huawei.com>
In-Reply-To: <20260310220920.GA826995@bhelgaas>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.67.121.161]
X-ClientProxiedBy: kwepems500001.china.huawei.com (7.221.188.70) To
 kwepemk500009.china.huawei.com (7.202.194.94)

On 3/11/2026 6:09 AM, Bjorn Helgaas wrote:
> On Tue, Mar 10, 2026 at 10:58:49AM -0500, Jeremy Linton wrote:
>> On 3/9/26 10:20 PM, Chengwen Feng wrote:
>>> pcie_tph_get_cpu_st() is broken on ARM64:
>>> 1. pcie_tph_get_cpu_st() passes cpu_uid to the PCI ACPI DSM method.
>>>     cpu_uid should be the ACPI Processor UID [1].
>>> 2. In BNXT, pcie_tph_get_cpu_st() is passed a cpu_uid obtained via
>>>     cpumask_first(irq->cpu_mask) - the logical CPU ID of a CPU core,
>>>     generated and managed by kernel (e.g., [0,255] for a system  with 256
>>>     logical CPU cores).
>>> 3. On ARM64 platforms, ACPI assigns Processor UID to cores listed in the
>>>     MADT table, and this UID may not match the kernel's logical CPU ID.
>>>     When this occurs, the mismatch results in the wrong CPU steer-tag.
>>> 4. On AMD x86 the logical CPU ID is identical to the ACPI Processor UID
>>>     so the mismatch is not seen.
> 
>>>   int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type mem_type,
>>> -			unsigned int cpu_uid, u16 *tag)
>>> +			unsigned int cpu, u16 *tag)
>>>   {
>>>   #ifdef CONFIG_ACPI
>>> +	u32 cpu_uid = acpi_get_cpu_acpi_id(cpu);
> 
> From AI review (gemini/gemini-3.1-pro-preview):
> 
>   Does this code need to validate that `cpu` is within bounds before
>   using it?  Before this change, the `cpu_uid` parameter was passed
>   opaquely to the ACPI firmware via `tph_invoke_dsm()`, which would
>   gracefully handle invalid values.
> 
>   Now, `cpu` is treated as a logical CPU index and passed to
>   `acpi_get_cpu_acpi_id(cpu)`. On architectures like arm64 and riscv,
>   `acpi_get_cpu_acpi_id()` uses `cpu` directly as an array index
>   (`&cpu_madt_gicc[cpu]` and `&cpu_madt_rintc[cpu]`). On x86, it uses
>   `per_cpu(x86_cpu_to_acpiid, cpu)`.
> 
>   If a caller passes an out-of-bounds `cpu` index (for example, if an
>   IRQ affinity mask is empty and `cpumask_first()` returns
>   `nr_cpu_ids`, or if userspace passes an arbitrary ID via
>   `mlx5_st_alloc_index()`), this will result in an out-of-bounds
>   memory read.
> 
>   Consider adding a bounds check:
> 
>     if (cpu >= nr_cpu_ids)
>       return -EINVAL;
> 
> I agree that this is an issue, and I think implementations of
> acpi_get_cpu_acpi_id() should validate their inputs.
> 
> I don't know if there's a value that can never be a valid ACPI CPU UID
> and could be used as an error value from acpi_get_cpu_acpi_id().  I do
> see a few mentions of a ~0 value meaning "all processors" (ACPI r6.6,
> sec 5.2.12.13).  

I only have the ACPI Specification Version 6.5, so I will use v6.5 as an example.

The ACPI specification does not define invalid value ranges for the ACPI UID.
For the arm64 platform (Section 5.2.12.14):
  ACPI Processor UID: The OS associates this GICC Structure with a processor device
                      object in the namespace when the _UID child object of the
                      processor device evaluates to a numeric value that matches
                      the numeric value in this field.

I am concerned that we cannot implement it like this:
	int acpi_get_cpu_uid(unsigned int cpu) {
		if (cpu >= nr_cpu_ids)
			return -EINVAL;
		...
	}
or:
	u32 acpi_get_cpu_uid(unsigned int cpu) {
		if (cpu >= nr_cpu_ids)
			return U32_MAX;
		...
	}

How about implementing it as follows:
	s64 acpi_get_cpu_uid(unsigned int cpu) {
		if (cpu >= nr_cpu_ids)
			return -EINVAL;
		...
	}
or
	int acpi_get_cpu_uid(unsigned int cpu, u32 *uid) {
		if (cpu >= nr_cpu_ids)
			return -EINVAL;
		*uid = xxx;
		return 0;
	}



Another issue: This commit also provides an implementation for the x86 platform.
However, further code analysis revealed a potential problem in the implementation:

The acpi_get_cpu_acpi_id() retrieves uid from x86_cpu_to_acpiid in SMP, and
x86_cpu_to_acpiid is set through the call chain: acpi_parse_lapic() ->
topology_register_apic() -> topo_register_apic() -> topo_set_cpuids() ->
x86_cpu_to_acpiid. It appears to retrieve the "ACPI Processor UID" from
ACPI Section 5.2.12.2, but the problem is that this field is only one byte in length,
which may cause issues in huge-core systems.

Therefore, I suggest re-implementing the acpi_get_cpu_uid function for the x86
platform. Either I provide a default implementation (shown below), or x86 guys
contribute to the implementation:

	s64 acpi_get_cpu_uid(unsigned int cpu) {
		if (cpu >= nr_cpu_ids)
			return -EINVAL;
		return cpu;
	}

Thanks

> 



From xen-devel-bounces@lists.xenproject.org Wed Mar 11 08:01:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 08:01:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250810.1548164 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0EVJ-0001dn-4b; Wed, 11 Mar 2026 08:01:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250810.1548164; Wed, 11 Mar 2026 08: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 1w0EVJ-0001dg-0s; Wed, 11 Mar 2026 08:01:17 +0000
Received: by outflank-mailman (input) for mailman id 1250810;
 Wed, 11 Mar 2026 08: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=oqCu=BL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0EVI-0001da-B3
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 08:01:16 +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 79ead6ab-1d20-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 09:01:14 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-439f59dfda2so1028878f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 01:01:14 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439f821e32csm4375761f8f.35.2026.03.11.01.01.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Mar 2026 01:01:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 79ead6ab-1d20-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773216074; x=1773820874; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oRTAnGYYsAovvMfRW9G1obKwSv/FK+Ba49eC5EWIi1A=;
        b=ewJCKMJpdTy+LAKbOsX9lC7HE3QztlFAviMyxVAVjhN3VEjf9Jd93/7Wf5NdTp74Fm
         iX4Hx1oX44MiU3uDCAI5MqUnYo6+q/0rmRhjh8JSODy+iSswp9RYVKznkdClIvgF4nlE
         0k3DULclgmcPu7XCnW++9ZOQfNDnSwK6xOMYvmjfXz/xnP10cU4qQYaXAgALk0Wwv5gQ
         5xiX+eSLXobeYOBNReUb/1g82tMuZ9U7RLk3lVauokQ4fdfDncrxGE0SZQSNE7nS6q0N
         xGPyOyemLjFWNwbc0EAMXswr1cj/Y1f9fFlbib5GfnwcB+acuKzUGYHUgFUGu+Kol4UY
         vm3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773216074; x=1773820874;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oRTAnGYYsAovvMfRW9G1obKwSv/FK+Ba49eC5EWIi1A=;
        b=WLP9NRXQ/YKt6aS9oqFfk30qpwRXjKNpN39JUTS97/VNyPwhup7SfZZVFTJf/OQi00
         xzArDiMA4Gm6TJ7AecltTwODM9JWRlcjWZnGW72MILwKf8mD3UR0Jp6eVU/r1E8R+SI5
         PyNAvjcgrOao58wx7X364x7TqSTZFMw7fuOrfc7i5NLh40szT4/gZXb+dndP3ffgW3S8
         2cF+lJqUp7F/F0I4P1Cr8sDNrkoSzXAipPb5+LUeQo4VwpKUI22gPZ+x7Gvo8VSMv5Zq
         ut5F/3OCOOe/YBqgT75auAyWsGpJs3SgiwM8x7e+KvaNdO+2QPueglV/l4T7Ib3bpoLs
         AX+Q==
X-Forwarded-Encrypted: i=1; AJvYcCWimZf+fNCkAt4/AChsWtVyOXqHPsFwqTO+qGWzY+kSJvxI2tdi8KUQGkRGWCZ8LN1TO/XTcSsZtHE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yys+z/w3s8PgkHwwR/jQO11ssztsTpZbk79qxkAY0emTf/43fmK
	I8LjVzBGsI50LsRcMiqsMI+mVOCRjwGKydUg3gyjTbkBbZosJhxHGuo1O9dxfUaazjuTyYp0dCP
	wM0w=
X-Gm-Gg: ATEYQzwk/UuF+x8hYOEBDn11wuLnb/wd43ISxB3Wq4EpeE92l6fBvN0wEEym4uEPfrJ
	YfchoSHLyHdoijzUN223VkmlTLQ0XewbRmPHW19KAZIn5+qPX/djC30D7L0NOtuQz/mNA/y3eZM
	mLsDTjh8jOgMI8tNLRy642Cio8BvBPPFsc1mZ/sTCLizXsPpfwOv5SNgmlNTc/OgxWQDQggc4tL
	uNVyu8Pttbw1reX+ZAiAzoOM5cAtTw3rDly9dM1Cs7aq+ZOJc+MnSCwAf45mPPrgtPp1lbmQ9H3
	NicHei/iNigJM9hh+6fr86Zt7MASvkgzJFbg8yiygGIC5hcHifR4hPrk7JqPKytGCo2JRabKUVM
	gWqhs8yX1yXVzqjjr5b7RkkwO3D6sQ+qBQsFVkNDLRqrr/amrpSvgLYqkGOSm7h5Bw94lPluPfU
	iliKiRVCzZwP1oBprwulXXgQhVKB0suVXbIEh2+4d6GPdmx/qfYL6AucT39G4vF2kP+0TSpr6CW
	lcs4sPMcGKONkfMVyRCMLgFgw==
X-Received: by 2002:a5d:5f82:0:b0:439:f55c:b574 with SMTP id ffacd0b85a97d-439f81f3c13mr2973735f8f.12.1773216073968;
        Wed, 11 Mar 2026 01:01:13 -0700 (PDT)
Message-ID: <9b54666a-c61e-4cae-8234-f67ac8802947@suse.com>
Date: Wed, 11 Mar 2026 09:01:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/2] x86/ioreq: Extend ioreq server to support multiple
 ioreq pages
To: Julian Vetter <julian.vetter@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20260305130434.635276-1-julian.vetter@vates.tech>
 <20260305130434.635276-2-julian.vetter@vates.tech>
 <c73afb52-e39c-48c8-bf2c-41b509ca0dd0@suse.com>
 <a05e2d6c-5ba7-4651-b9d1-c1b502be0e7b@vates.tech>
 <5724bdb3-bec5-4159-a4f4-9bdad39acd7b@suse.com>
 <4509bc57-ea36-4208-b76b-465d15b25a09@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: <4509bc57-ea36-4208-b76b-465d15b25a09@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.03.2026 21:56, Julian Vetter wrote:
> On 3/10/26 17:09, Jan Beulich wrote:
>> On 10.03.2026 16:56, Julian Vetter wrote:
>>> On 3/10/26 16:36, Jan Beulich wrote:
>>>> On 05.03.2026 14:04, Julian Vetter wrote:
>>>>> @@ -45,7 +52,8 @@ struct ioreq_server {
>>>>>        /* Lock to serialize toolstack modifications */
>>>>>        spinlock_t             lock;
>>>>>    
>>>>> -    struct ioreq_page      ioreq;
>>>>> +    ioreq_t                *ioreq;
>>>>> +    gfn_t                  ioreq_gfn;
>>>>>        struct list_head       ioreq_vcpu_list;
>>>>>        struct ioreq_page      bufioreq;
>>>>
>>>> This change in data arrangement should in principle be independent of the
>>>> step to supporting multiple pages. Hence it should be possible to separate
>>>> out. Problem being that just by looking here and at hvm_{,un}map_ioreq_gfn()
>>>> I can't conclude how you get away without the "page" field that struct
>>>> ioreq_page had. If you can get away without, it's not quite clear why the
>>>> field exists in the first place. If it's not needed, dropping it would be
>>>> yet another separate, prereq change. At which point the remaining pair of
>>>> fields could continue to be used, i.e. the change above then wouldn't be
>>>> needed; va could be renamed if need be, and its type changed.
>>>
>>> Thank you again Jan for your feedback! I don't need the page anymore.
>>> When I use vmap(), I don't need to keep track of it, because during
>>> teardown, I can recover it via vmap_to_page(). Currently it's necessary
>>> because in destroy_ring_for_helper we need the page, to be destroyed.
>>> But I see now, on X86 the map_domain_page_global called from
>>> prepare_ring_for_helper actually does vmap(&mfn, 1). So the page is also
>>> from the vmap range. So for the teardown I assume a vmap_to_page() could
>>> be used as well. But I also see there is a special case, if NDEBUG=1,
>>> map_domain_page_global short-circuits to mfn_to_virt() for low MFNs
>>> (putting the VA in the directmap range) and bypassing vmap. In that case
>>>
>>> vmap_to_page() would not work. So, this would be really messy. I would
>>> rather switch the bufioreq also to an explicitly vmap()'ed page, then we
>>> could remove the page pointer and both cases would be aligned again.
>>
>> That's an option. Yet are you aware of domain_page_map_to_mfn()? Perhaps
>> that's what you want to switch to using in the patch removing the "page"
>> field. To then, conditionally or uniformly, switch to vmap_to_{mfn,page}()
>> when doing the multi-page work in the subsequent patch.
> 
> Yes, thank you. I saw this function, but I was wondering whether it's a 
> good idea to wrap the va in two translation functions like:
> 
> struct page_info *page = mfn_to_page(domain_page_map_to_mfn(va));

There's no fundamental problem with that (we have similar constructs elsewhere,
I think), but ...

> and then calling destroy_ring_for_helper() with it. But I will have a 
> look, and this way we would be again aligned between the two cases. So, 
> maybe it's the cleanest way.

... does destroy_ring_for_helper() actually need to have the page passed in?
It's prepare_ring_for_helper() which calls __map_domain_page_global(), so
destroy_ring_for_helper() could well obtain the MFN / page itself (using
the above construct). VM event and vPL011 code also only ever use the page
pointer supplied by prepare_ring_for_helper() to pass into
destroy_ring_for_helper().

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 08:19:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 08:19:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250822.1548173 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0EmW-0003Q4-J9; Wed, 11 Mar 2026 08:19:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250822.1548173; Wed, 11 Mar 2026 08:19:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0EmW-0003Px-G6; Wed, 11 Mar 2026 08:19:04 +0000
Received: by outflank-mailman (input) for mailman id 1250822;
 Wed, 11 Mar 2026 08:19: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=oqCu=BL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0EmV-0003Pp-9d
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 08:19:03 +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 f5129a28-1d22-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Mar 2026 09:19:00 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-439b9b1900bso7417045f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 01:19:00 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439f821d095sm4857322f8f.32.2026.03.11.01.18.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Mar 2026 01:18:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f5129a28-1d22-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773217140; x=1773821940; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=O6sc8H1H+f5MSSkuQGhURBScH13uJ0hgfCYgp5q5ld4=;
        b=KnSsPwFTrGfgyeDAa7/si7Hgd1gvV6Z7aA4rRGmtfGrqRcCLVl2vS43oZ5bks8n+O8
         qKDqPLsTIxOY2vCnjj4HsqnulIBQCqFQrKiQQKh/IOj7Eiak7LHH/dSXNNskC7hQn1sf
         dJAV/l3v1zAHUrh10cIZ+N83hOkJEoq+2Ucer2codVfDVvD1uBuGZ87fsCXb1yfo/uS0
         srYoaAdYiARybGSiCFMp4VigwCkpNLoaJQR5KIa+EHZ/4limnab6l2dJZQf62k/PdcI6
         /XdX82v0gGT3UvKwDvP1fNcunVkUOaf5PxYA9pjvScGJdIJHeUI3gu7/wVj4Ed5Zplto
         Wm9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773217140; x=1773821940;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=O6sc8H1H+f5MSSkuQGhURBScH13uJ0hgfCYgp5q5ld4=;
        b=elZzJn2G6AXU1BO1Lnkhe9475ataM9T9ES8NKQJ7ymuGAIGBVFp1fNGPXPupYIR7/P
         XGc5PNxx1Q5RZKoboFInl4pLYUiQ8ckh7yt/2TI5GpPgrTvZ/28NUZZRyF/SA22paLrT
         W2YHL9mM/Q7cHVSPsRXujX9RwRWZFER1FLTIvAZ40Db9q2suxO7z0BtpwZx3ZDcDwe/E
         eui8SWTyRiKMXtyfL/4WOCMj8wEy169IWaAUvVO7/RkOCJ7b6lpco/sZDu4Ae/UrjU1p
         5by6hN629UcG4pAPKzz+AgKAfYipqUbABpkP7XToAgAq2O4TsIcBimXyJqoYJxaCFUhy
         4ELA==
X-Forwarded-Encrypted: i=1; AJvYcCWUkLPRI8IyPhfRu7nW6qfa60i/pnTzcWtpTmJIMEnF9y0VD38eqqWTKGbpU3u5dN8g1pofy3zgxBs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw431vCLXHX7lr1h+WKH6WVcm8riLJH2/IuKOx3T2fdxQ+oFh17
	PnYa5RapE129bb03fk0aW2oNGwRbrpIu0kI2O+dboudvEl78lCVqAYBExeEiqH5sHQ==
X-Gm-Gg: ATEYQzys/ochPqNa7UPri7wjsB3vfduBK2xckOqGEIHCjrPQrfqb63uKVi8w7fbNOcZ
	8cY0/uplTCQxfS1u88PNZ/7HnHvzTKQrLOoS6yYBN7cV7hhYVr20FbRFwIbOmEKsfcgHgjV/gQf
	nfLLUi6T2mDJiTv+QsWS6WufKxSZyeEo5z7EVS8SoCKJyowm20RKpWlzzPDVN+QZIGh1BBbvGCi
	+35sPbWlaSBi0PxMmGoWgaDI19DaBxGSNOpIsqh0RkhblWvACVjGUDAJmtYywWQ/vW4TufutmYK
	gggD22PkhTiVcDR7QpM0qUrRyeEKICH1+qoUHyf9nvyfdb6YPfspB4sTJwPjxzXqjG2gQttBnBz
	Jsj0FmrKUPuz1O+QwU0bk8x02ZGTkqckR2G4rl301P73YQaSTZOf6DCy0LEfOEezBaJfMRjAhZj
	2hNtgO0mPTI46NriNoim+KqSn3EhvsRyla/KvozO5zjOQnzUMZxhsJBUALp7SQBw+wAv+0T7s8e
	IHMwMDgCXNKvks=
X-Received: by 2002:a05:6000:1acc:b0:439:ef03:e0b7 with SMTP id ffacd0b85a97d-439f821ba49mr3269474f8f.27.1773217139684;
        Wed, 11 Mar 2026 01:18:59 -0700 (PDT)
Message-ID: <7340581a-51a3-43b2-b180-c2de37bda4b1@suse.com>
Date: Wed, 11 Mar 2026 09:18:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 01/27] xen/riscv: Implement ARCH_PAGING_MEMPOOL
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
 <887d914aa0ddb1884c19c9567d4633ecaf810066.1773157782.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: <887d914aa0ddb1884c19c9567d4633ecaf810066.1773157782.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.03.2026 18:08, Oleksii Kurochko wrote:
> The p2m_freelist is used to allocate pages for the P2M, but to initialize
> this list, domain_p2m_set_allocation() might be called.
> This function is invoked in construct_domU() within the common Dom0less
> code, and providing an implementation of domain_p2m_set_allocation() when
> CONFIG_ARCH_PAGING_MEMPOOL=y is appropriate for RISC-V.

With this wording it is odd to see ...

> --- a/xen/arch/riscv/Kconfig
> +++ b/xen/arch/riscv/Kconfig
> @@ -1,5 +1,6 @@
>  config RISCV
>  	def_bool y
> +	select ARCH_PAGING_MEMPOOL

... this. You really want to settle on whether it is selected unconditionally
or not. Also for the code below, where ...

> --- a/xen/arch/riscv/Makefile
> +++ b/xen/arch/riscv/Makefile
> @@ -10,7 +10,7 @@ obj-y += irq.o
>  obj-y += kernel.o
>  obj-y += mm.o
>  obj-y += p2m.o
> -obj-y += paging.o
> +obj-$(CONFIG_ARCH_PAGING_MEMPOOL) += paging.o
>  obj-y += pt.o
>  obj-$(CONFIG_RISCV_64) += riscv64/
>  obj-y += sbi.o

... this change and any #ifdef-ary further down aren't needed unless the
select became conditional. (Plus with the change above things likely wouldn't
even build if ARCH_PAGING_MEMPOOL could be off under certain conditions.)

> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -1568,3 +1568,34 @@ struct page_info *get_page_from_gfn(struct domain *d, unsigned long gfn,
>  
>      return page;
>  }
> +
> +#ifdef CONFIG_ARCH_PAGING_MEMPOOL
> +
> +int arch_set_paging_mempool_size(struct domain *d, uint64_t size)
> +{
> +    unsigned long pages = PFN_DOWN(size);
> +    bool preempted = false;
> +    int rc;
> +
> +    if ( (size & ~PAGE_MASK) || /* Non page-sized request? */
> +         pages != PFN_DOWN(size) ) /* 32-bit overflow? */
> +        return -EINVAL;

Can't this be had with just

    if ( ((paddr_t)pages << PAGE_SHIFT) != size )
        return -EINVAL;

(and perhaps utilizing pfn_to_paddr(), even if it's not a PFN we're dealing
with here)?

> +    spin_lock(&d->arch.paging.lock);
> +    rc = p2m_set_allocation(d, pages, &preempted);
> +    spin_unlock(&d->arch.paging.lock);
> +
> +    ASSERT(preempted == (rc == -ERESTART));

This actually suggests that (once again) Arm code perhaps shouldn't have been
copied verbatim: There shouldn't be a need for the "preempted" state to be
returned back in two distinct ways.

> +    return rc;
> +}
> +
> +/* 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.total_pages) << PAGE_SHIFT;

As per above, maybe use pfn_to_paddr()?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 08:26:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 08:26:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250831.1548181 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0Etr-0004yb-8m; Wed, 11 Mar 2026 08:26:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250831.1548181; Wed, 11 Mar 2026 08: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 1w0Etr-0004yU-5t; Wed, 11 Mar 2026 08:26:39 +0000
Received: by outflank-mailman (input) for mailman id 1250831;
 Wed, 11 Mar 2026 08:26:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=oqCu=BL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0Etp-0004yO-C5
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 08:26: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 0456916a-1d24-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 09:26:35 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-48374014a77so163556905e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 01:26:35 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4854b65fe27sm38636615e9.9.2026.03.11.01.26.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Mar 2026 01:26:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0456916a-1d24-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773217595; x=1773822395; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fR/7Rm1L0p85rks3QrTE23p/0Ae6Xjgc1bPPxxz3Xw0=;
        b=YTOqATIicIimI8ArLpLIlGXXv6YNETQDs28Ik+ZjbVGYENtyXazISp41qNUM+7s+Ol
         Dk0J7dLytMf3n45C8Sq6kEAhwzxxa39LFo8t9CuUCxMVq5UTmBiw+Rqgo+gQD9d0P0Ac
         hW74JkuqBFhdrIedR1C/5tyhmIun+IYnSj3RhMpBxotSVcO0jWAoNUKGaQ/DxBjnKqNw
         nElNIdrqDrKPIhXXKBsEOfAW6Xa1lUxoZsWdI0BVyDxE/76SwLA8JfE4NbCLpXqb4oGP
         skfv+OyS1TkGc0O5uN9pA0ysHtILElHPHPdLnDqOjdpP/BmIDMgGgG36w1YILcxGw1hU
         RaDA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773217595; x=1773822395;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fR/7Rm1L0p85rks3QrTE23p/0Ae6Xjgc1bPPxxz3Xw0=;
        b=RJJeCHgBnWoSReXPuuJd+35Qce+FCY8ggBP+Sz2dI0YesHhKEuIi2RcFVQi6u5yXWL
         MkdGyY99qhkbnZvc9BI9lAAIO5FiTR2I5uM80Jxm948YWThH8jcP6prjLrj2DV/sxfYO
         VlD9jVBPyg8ss1xOhucQ8PZaHGL1kojz2JKEgDF50G8pOCBAaIq9HZ36Irjb6vYUsQQG
         8Ptwp/fymVRMhrAm2H0cVhNgMxRwWkejsdKliVZZ7O4YENaTUTUCnjibO+EYW9QXpFJ/
         YTDMeF31LpHDdtaOSKTaXwwtY/VIXGReVaWjkxcTojSUOFN5Pko0M+gDu8VSgZYR/Q8u
         tkyA==
X-Forwarded-Encrypted: i=1; AJvYcCVQKerLN9I3g1LJFf363LSof1OZHshS2FVxNWBGiQ7WAeRthSziKV68kI5mMBfLRFGsuIK7BCkBp4Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyAp7m/YUDteKaPzhNxT7DrwLM0zEuUzYUysRIWFfkZqg+HklkO
	H8tlxLarqCkdJ9FPoXQY6w+QhZhoSdQus6e5vM0w8nI1wYGhE+0RHF3a930wuX3hbA==
X-Gm-Gg: ATEYQzyv9p9PlEPh3S/4JDrKQkZnpTpdbX7OJGzncVpr4Yba4yBQPfTSphIPi6ZzYTh
	L8QlzRhkHk1C7Z2DF4g4FaRW1bm4GEWHOTSAzY6S9SeLXKri8ND3Ga0I2jb9aoQ7aeBB6UgdZvZ
	Ni1Ku5GwzQOodY78KoGXLPROknwzo32PETvIF6e9TCLSgM/KenaE+U6LcKtnTS32CccisiuBH/Y
	j61y6/9NP3E6K0Qn1ACc80qT/tQ1bxwd3M5+IIYMRxQ1L7WWllu7/yLdzAWiVIC/n3f8w8h3Dbd
	gBHGyw2JWlOvmV2oq6gdunN4zGOHNbQfX5S2i0fgo/NtmbsImI1mTSoUTVddCelZMt3m/slTS7i
	SnyHNdlI4lGd0+qHml1gNPddUoDruHPbEnugMg6TH0z2aJ0DnQWOc6mkodnBXyUNMWvDSWLI9LD
	Ss/2BeJWPyiPMlI1hM0O+L5OWrsenmYADP2K03zlTrdO7Q6tuCD0g1a8C/EcGkI+2QnovT0F1VQ
	Xk1kpZcPiK62vs=
X-Received: by 2002:a05:600c:4fd5:b0:485:379b:57be with SMTP id 5b1f17b1804b1-4854b0cb6c7mr25223625e9.1.1773217595177;
        Wed, 11 Mar 2026 01:26:35 -0700 (PDT)
Message-ID: <8ba61374-f05e-45d9-b1b2-0140edbb34a6@suse.com>
Date: Wed, 11 Mar 2026 09:26:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/4] x86: Reject CPU policies with vendors other than
 the host's
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20260213114232.42996-1-alejandro.garciavallejo@amd.com>
 <20260213114232.42996-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: <20260213114232.42996-2-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.02.2026 12:42, Alejandro Vallejo wrote:
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -22,6 +22,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>     - Xenoprofile support.  Oprofile themselves removed support for Xen in 2014
>       prior to the version 1.0 release, and there has been no development since
>       before then in Xen.
> +   - Domains can no longer run on a CPU vendor if they were initially launched
> +     on a different CPU vendor. This affects live migrations and save/restore
> +     workflows accross mixed-vendor hosts. Cross-vendor emulation has always
> +     been unreliable, but since 2017 with the advent of speculation security it
> +     became unsustainably so.

While the code adjustment looks okay to me, the wording is a little odd. What is
"run on a CPU vendor"? How about "Domains can no longer run on a system with CPUs
of a vendor different from the one they were initially launched on"?

Also, nit: "across".

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 08:35:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 08:35:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250842.1548192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0F2U-0006dd-2v; Wed, 11 Mar 2026 08:35:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250842.1548192; Wed, 11 Mar 2026 08: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 1w0F2T-0006dW-VZ; Wed, 11 Mar 2026 08:35:33 +0000
Received: by outflank-mailman (input) for mailman id 1250842;
 Wed, 11 Mar 2026 08: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=oqCu=BL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0F2S-0006d1-KP
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 08:35:32 +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 42ebfdbd-1d25-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Mar 2026 09:35:30 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-439c9bdc1eeso4312564f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 01:35:30 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439f818d37fsm5318550f8f.6.2026.03.11.01.35.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Mar 2026 01:35:29 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 42ebfdbd-1d25-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773218129; x=1773822929; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tvbgGrPtY8K4UHMB3U5NEEl1D6YAEBLJS4eiX3RElsc=;
        b=YQBiOPY0z+fAeKnUjrxP2vECyvRuWskBaxotSbgb7HrHE0Wj8ORr4MHYRZAhfwN94b
         GBS4kfSbSMUPtISvFETF5+54wuSyksy81MJz0UDoQ7Bn4L8oFu4XLSkSuGmekaifwK8Y
         tQWK6txVgpH9E9MMekPxaNCk//a7yteZSoj/mFD1erPutLt6R9yU0HScPM7rTKNgr5Np
         GilO8gNPsnbpafKV1HQmuWTA6rWU5CAT7oLGXYj4efVjmfEHqNvTU7Wcbt3nhkIkgm8D
         kDTFsUZ7KD4lWlIEdLkfJL7fI4EMJCfZ1pHfV56s9VXGjNPQQ8rwXy4ZL99cqXeWFMlL
         nPxg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773218129; x=1773822929;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tvbgGrPtY8K4UHMB3U5NEEl1D6YAEBLJS4eiX3RElsc=;
        b=PaKnI7uqTADcGxwBP974CdR5kby04k86QKZSgyMuVhOt4Xh71UKcmZQg/OxnrdIxhM
         NwfedQY1qF/BZP6vbh+XXT/ZKY8s9N8DDuRqVdrFUh0KDP3yAhaWSN317XNd2PTjvPU3
         T062QetN9okawX0hl9jxyDKksSTemvvWYdaFjvH/W9PBs8klS53b5GTTyBOjT363OBI5
         ufnUK+w/6D6QhKhjSk9fGNOHmlaI4dTZ0/FCNA6Q9vE9ukgYWleb2Etqg6WicXs1QEWp
         +GyzoeHAmiTKQ94v/mbHTFTNTs6YODE+XaFKCdCxdDc/tHI+qKgIxJaTmsTA/adJDudm
         hVHw==
X-Forwarded-Encrypted: i=1; AJvYcCU1mBJZXZfb6fFkxF+eyLmP7zGNige7dpF0CPWKVlkdcZJGBv0oBHEHoQy2YeTWNe1tavoLU81QiUc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyxT+5tUoTLfLzS1aeEwDw687hZ/qMLdwqWTQmSmlykXTmQljR4
	29sWaiHlYBHQwWK2l4f6qGjEwjSwymQWoKht9XSQezsVlkHhvWbbodJyBX/kXUJ85A==
X-Gm-Gg: ATEYQzxaf5UGwTwQBP/Gq3BztwC4uQ0h+gnPkT37VBlrystbkWgZ0h4ws1/QTJkbx1L
	nbMhd2xk08zM4IuHQ1ZYCbZZRoANcfX9GRPs2Y1N7BzfJ3z+SD6i/TQgmZ6eu3Tmm2MO0FICas4
	ihssMbX5dwClFJELItRTxB8lZMK0QAu/RDd3VuLi6lt7lV6rdR5kMQmFdNJZRhoVfsboMctDTUd
	/p0ZLC+fH2sChoZpjOZMOGHfB1V/m2UhTcuw2yJfgxjnp/0vZOCBIgQemDO0Z2KL6f4ipdCc1u2
	lz4oNYzgITK4QEIVRN99/OcebjuKUNC3hQEQMZh+zmX38iBzy1vLEFsn4JUupsK181tHcpoBUfK
	Yq3DtnL9qI9upkAuYb2v9N/hLDNsqxI7RNIHzxd2JF6S5NB25376i6hMd6YWA3yVMQfIu+s7WYg
	2nlnAGfENElDIDHs/JrcsR+0hSq2FhIAI7RlfxACiYr34yKCnpD0KkD8e94c4IZxSPj3ExZf4Ej
	XMAzWot2xSwAws=
X-Received: by 2002:a05:6000:2283:b0:439:b886:20d3 with SMTP id ffacd0b85a97d-439f8200b9bmr3192877f8f.15.1773218129297;
        Wed, 11 Mar 2026 01:35:29 -0700 (PDT)
Message-ID: <813d3fc9-170a-4f25-872a-3688946c236d@suse.com>
Date: Wed, 11 Mar 2026 09:35:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/4] x86/hvm: Disable cross-vendor handling in #UD
 handler
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260213114232.42996-1-alejandro.garciavallejo@amd.com>
 <20260213114232.42996-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: <20260213114232.42996-3-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.02.2026 12:42, Alejandro Vallejo wrote:
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -3832,69 +3832,47 @@ int hvm_descriptor_access_intercept(uint64_t exit_info,
>      return X86EMUL_OKAY;
>  }
>  
> -static bool cf_check is_cross_vendor(
> -    const struct x86_emulate_state *state, const struct x86_emulate_ctxt *ctxt)
> -{
> -    switch ( ctxt->opcode )
> -    {
> -    case X86EMUL_OPC(0x0f, 0x05): /* syscall */
> -    case X86EMUL_OPC(0x0f, 0x34): /* sysenter */
> -    case X86EMUL_OPC(0x0f, 0x35): /* sysexit */
> -        return true;
> -    }
> -
> -    return false;
> -}
> -
>  void hvm_ud_intercept(struct cpu_user_regs *regs)
>  {
>      struct vcpu *cur = current;
> -    bool should_emulate =
> -        cur->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor;
>      struct hvm_emulate_ctxt ctxt;
> +    const struct segment_register *cs = &ctxt.seg_reg[x86_seg_cs];
> +    uint32_t walk = PFEC_insn_fetch;
> +    unsigned long addr;
> +    char sig[5]; /* ud2; .ascii "xen" */
>  
> -    hvm_emulate_init_once(&ctxt, opt_hvm_fep ? NULL : is_cross_vendor, regs);
> +    if ( !opt_hvm_fep )
> +        goto reinject;

Is this possible at all, i.e. shouldn't there be ASSERT_UNREACHABLE() in
addition if already the check is kept?

> -    if ( opt_hvm_fep )
> -    {
> -        const struct segment_register *cs = &ctxt.seg_reg[x86_seg_cs];
> -        uint32_t walk = ((ctxt.seg_reg[x86_seg_ss].dpl == 3)
> -                         ? PFEC_user_mode : 0) | PFEC_insn_fetch;

Why is this initializer not retained?

> -        unsigned long addr;
> -        char sig[5]; /* ud2; .ascii "xen" */
> -
> -        if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip,
> -                                        sizeof(sig), hvm_access_insn_fetch,
> -                                        cs, &addr) &&
> -             (hvm_copy_from_guest_linear(sig, addr, sizeof(sig),
> -                                         walk, NULL) == HVMTRANS_okay) &&
> -             (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) == 0) )
> -        {
> -            regs->rip += sizeof(sig);
> -            regs->eflags &= ~X86_EFLAGS_RF;
> +    hvm_emulate_init_once(&ctxt, NULL, regs);
>  
> -            /* Zero the upper 32 bits of %rip if not in 64bit mode. */
> -            if ( !(hvm_long_mode_active(cur) && cs->l) )
> -                regs->rip = (uint32_t)regs->rip;
> +    if ( ctxt.seg_reg[x86_seg_ss].dpl == 3 )
> +        walk |= PFEC_user_mode;
>  
> -            add_taint(TAINT_HVM_FEP);
> +    if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip,
> +                                    sizeof(sig), hvm_access_insn_fetch,
> +                                    cs, &addr) &&
> +         (hvm_copy_from_guest_linear(sig, addr, sizeof(sig),
> +                                     walk, NULL) == HVMTRANS_okay) &&
> +         (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) == 0) )
> +    {
> +        regs->rip += sizeof(sig);
> +        regs->eflags &= ~X86_EFLAGS_RF;
>  
> -            should_emulate = true;
> -        }
> -    }
> +        /* Zero the upper 32 bits of %rip if not in 64bit mode. */
> +        if ( !(hvm_long_mode_active(cur) && cs->l) )
> +            regs->rip = (uint32_t)regs->rip;
>  
> -    if ( !should_emulate )
> -    {
> -        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
> -        return;
> +        add_taint(TAINT_HVM_FEP);
>      }
> +    else
> +        goto reinject;
>  
>      switch ( hvm_emulate_one(&ctxt, VIO_no_completion) )
>      {
>      case X86EMUL_UNHANDLEABLE:
>      case X86EMUL_UNIMPLEMENTED:
> -        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
> -        break;
> +        goto reinject;

How about placing the reinject label here, along with the two case one?

Jan

>      case X86EMUL_EXCEPTION:
>          hvm_inject_event(&ctxt.ctxt.event);
>          /* fall through */
> @@ -3902,6 +3880,11 @@ void hvm_ud_intercept(struct cpu_user_regs *regs)
>          hvm_emulate_writeback(&ctxt);
>          break;
>      }
> +
> +    return;
> +
> + reinject:
> +    hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
>  }
>  
>  enum hvm_intblk hvm_interrupt_blocked(struct vcpu *v, struct hvm_intack intack)


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 08:39:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 08:39:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250850.1548201 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0F5u-0007GU-I2; Wed, 11 Mar 2026 08:39:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250850.1548201; Wed, 11 Mar 2026 08: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 1w0F5u-0007GN-Dm; Wed, 11 Mar 2026 08:39:06 +0000
Received: by outflank-mailman (input) for mailman id 1250850;
 Wed, 11 Mar 2026 08:39:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=oqCu=BL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0F5t-0007GH-Kw
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 08:39:05 +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 c20788d7-1d25-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Mar 2026 09:39:03 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4853f2826f7so28724405e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 01:39:03 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439f82067a2sm4046488f8f.28.2026.03.11.01.39.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Mar 2026 01:39:02 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c20788d7-1d25-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773218343; x=1773823143; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=aCL9RcADhWoF6tTbBriZJ3Qgz05gqQPhYRTzz+Ie2PY=;
        b=HTyEcmPF3/anPb8LP+eELRq9RGZljcvgU1K7NfQzKr1+2pKn+RkgWYc27cmvcjwPcO
         AZ8z271tez/XNub6M9m3p47qyrGg/7zuFlR0pa76sF5J8H8Cr7AvGYi+kyD7X6WF2zA0
         0QiDALdgyplJHjZKHMJmqAql/9p2MiMxsGZf+Rk8KZpm56ZARSDEIxyPXnBFTV5GOwUK
         imdamOlTW0afTAuq3Gw94wyndqYrKOGLrDaqMrs/5QjmV2/dREdCWy4ByLQq089u8uQs
         UD3/v/pEWHiaN7xdCxBgI8aIP+aYWfestbPx0/UoVihy5+8e8N/xls6MYi09+PLbzfDj
         pu+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773218343; x=1773823143;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aCL9RcADhWoF6tTbBriZJ3Qgz05gqQPhYRTzz+Ie2PY=;
        b=RM0Fm/RWrNP6l9QKJ6gl8dbEgxz2/HmCTZ5odF+PJVxRYzXbONI3y9fA1Lx6HxGfhV
         4dKf9xLieVL4Amsurnm/925UNz2pXMXQ5gl3uG6ys64iUy7ryGEii6AAUKjO5SKSoiw4
         44h0WR07V76T2CsPfqdRe8T01cJ4nFbK5QPrbjKc6YU6RaN7UdVrEVy8ymymQEHTr2Le
         zt2myWF0eeSGjjAqydMOsYL9BH55TK/mqQdJ6b8UD9dra+ro835JBl7mYMimcBxN6Y0d
         P4DcWNo9U8QbHhRGUMyxcHDDgfPlaHruJmeQVS9bhUq28PL+bNj/pXtFmcXEUzmJ3IsT
         gtNw==
X-Forwarded-Encrypted: i=1; AJvYcCUcnLz5/bC2nWjAsJ6S1qwwsTxYPl0stgrHNvckpmCQidzK+66dfh334e8JPOrLSzzIXJ4fp4oKQWw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwygmK+GOqWyslGOHc//QXnvnmERPHWb9lP2V1BZhFDpsitvnTo
	69Tqaq4SLOoq4pvkCjkGmLpK4JHCyLg6S/4a6xU2LG3a9W5y6i3Z/99UcoymGJE/4Q==
X-Gm-Gg: ATEYQzxWxZLAT9Ra/jRmH1rlpB5C03Scd2JXQX+4IMb7hfTbGoJJAe0DJMevhelH2YB
	W2gfyOpti4uVhSZD+bL5lwztITZV3tbYxJqWkg0cbBncbnlmc74Uq7e21RxYagMj9AlcX0keGtl
	5umPEaHDmdnlpwKAFxfXlp7Oc+O35yYDRATtGRKVguhB8va29EGjpg1slf9YigeW4fpjgslyEhC
	ucmpUwk2aovqWq3LpKhAZUTwX3/YIo/kybj/1vE4O+FCfxlkzpwhKSF8ZsGTR1650G34j0mSiNO
	7YvD6nXJWay9u2kBcwJSVt4kq7F+DVEFYWjiEC/rI0Fa87l/rAM2RNawRoMhfIuMsuUGIpTen/1
	GRotrguq9ltrVMxVnVw6q8WBoKRqnyiiwkKfQfKZ2zWxN2d/0BLCjGeitk23l0r71vdpyrNxWX6
	3dS66Ti0a/r/MiDXuug4kSppRCkDgUTL1/aJsmwJZeR8S9WjykLHFa5lDwzotBlEyyikOHl+MaN
	ZuvoEsUIqKavPM=
X-Received: by 2002:a05:600c:1d16:b0:485:3aa1:a7f0 with SMTP id 5b1f17b1804b1-4854b0a4a66mr26005415e9.4.1773218342668;
        Wed, 11 Mar 2026 01:39:02 -0700 (PDT)
Message-ID: <6bde607b-7180-488c-a58a-c2eb281c7a47@suse.com>
Date: Wed, 11 Mar 2026 09:39:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/4] x86/hvm: Remove cross-vendor checks from MSR
 handlers.
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>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <20260213114232.42996-1-alejandro.garciavallejo@amd.com>
 <20260213114232.42996-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: <20260213114232.42996-4-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.02.2026 12:42, Alejandro Vallejo wrote:
> Not a functional change now that cross-vendor guests are not launchable.
> 
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> Reviewed-by: Teddy Astie <teddy.astie@vates.tech>

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



From xen-devel-bounces@lists.xenproject.org Wed Mar 11 08:47:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 08:47:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250864.1548208 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0FDa-0000T2-Aa; Wed, 11 Mar 2026 08:47:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250864.1548208; Wed, 11 Mar 2026 08:47:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0FDa-0000Su-84; Wed, 11 Mar 2026 08:47:02 +0000
Received: by outflank-mailman (input) for mailman id 1250864;
 Wed, 11 Mar 2026 08:47: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=oqCu=BL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0FDZ-0000Sn-9T
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 08:47:01 +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 dde0aaaf-1d26-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 09:46:59 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-439b97a8a8cso9684433f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 01:46:59 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439f81fcd65sm5509623f8f.26.2026.03.11.01.46.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Mar 2026 01:46:58 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dde0aaaf-1d26-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773218819; x=1773823619; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oGFDLZX5gM93eSepe3XqoJ7xXgEg+qZIyv9kXP118Mo=;
        b=XxyHItVWsbE4CaQFqmOoLX8/aGVDEV7FMMwwJ8xLDbx2cEqxHY837LTnHfyfonQtCm
         H2ioINfFATVIC9v+n51HTH98aD3wrLyRTO3VpONn/4s1NupKPGLmPWArDOFluTmI9RXQ
         Y9XMilbp93nNUZdlxgEK8OPUSyUxWUQjXilnSBiWYI5VA4C+j44QqEN1vf+5gnt1E1a/
         nD6oa6e3SQQrV3S52PnIWeAB6rgSyZoGs969DnV/J9RLLUmmeK7RVjv4aBO9agyqBLXW
         V6bsDi8H5RCLYxEe6jhrInvIa2UwY6KcQga3CD/UH+Q33mAjroJtVIuyyrEcm24WpOR4
         iPCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773218819; x=1773823619;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oGFDLZX5gM93eSepe3XqoJ7xXgEg+qZIyv9kXP118Mo=;
        b=BUdpvBFgQpi/rpgfMf9c8MjaBniTvMwL3PfHOZRRDqkOR8ByH4JQdvt+8b3NN+uNlb
         svHgjD3jjtDPfznHTGT7L93E7aH+9R2kPMCA5xsOCvXhLwtPMRftDj4mvmzCuNLjwb77
         VB2aPZWvr/2KZL8FOPqbv2aTfo7GkgMl5EosVj4BarwUJblthnTE1vOQ5+Hsy3c5y9IF
         4AbCmHZgqNCnAv+XC0safLWRmRvN90GVf+1LDENLcLNg2j9Yn/LfkN0Ui311w9ecatrV
         MllCeOI7zl2APiG/g0mnYFzAyX7H1sAGIeCJLqa1NfoG3mzkqyAL64OXsBSEQi//kSal
         tFew==
X-Forwarded-Encrypted: i=1; AJvYcCWR3cx9zAHxMBShNBscvPLBXXgreNUfgGlv2yPV8uM34PqlvlPavEL4ooGB/Qn+rVYIMVOTqcGQvp0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyzKLDmPhbORWbXN+k40ICxOpoK+8x25bD7Tfap+U59dRyUN/uU
	lF75Sn9u9E9QKQjU3gLzzQzS5G4WLIfcMT/rn03JeGj3Om7JK9weA2isd0qCz591tw==
X-Gm-Gg: ATEYQzyk051vkLk6/JuVVn31OiIEK9AU8Ak2isRvK65DFDe1TsjRe6azMiby75Bog+o
	FbXKmaz2idoKiQBjp7WRRDEqm6XKsAzROCfRVajf/umzKaM7xrD3SZc+mX9beDPUtTykrJecW4c
	JvkCcJZPN90zK9GpPv3vkvdaIU6xWR2XqDxE3LWOcP2NwMKuohmg2PUiDQCoVozhtVULWLjNap4
	k0FNgWy3yMQWw+MuvJvO2hdKYrRAZeP/X7wBQ6StPdw1I/wmrtD/wEFG5e3inlUSOOWcMkbpab9
	lgBmhnWql1oUBGQ29VHn8YpbyfIid0sHnQjwiSrxxgXcx6l984m3NPxohNvnnAnh2Knm5iMgXqx
	Se2rXy3dmU3Dnr4rcgL/hE42FgF3aifrtHg0cFdopGJYsP6X3hpRSF0rwMUzz4Zrwnb3/C5RKo0
	zlV54QsJy7u90+s7frxRUBLz3W4rjIuUCmms3mPk2poehHSHKgfVHiaf2RtO9jYVsnsnr0pLPgq
	/9HesFVY734dvY=
X-Received: by 2002:a5d:6702:0:b0:439:cba2:2294 with SMTP id ffacd0b85a97d-439f822a750mr2433089f8f.37.1773218819150;
        Wed, 11 Mar 2026 01:46:59 -0700 (PDT)
Message-ID: <f63e2fa3-65b9-4dcd-983f-4e753ea21bd0@suse.com>
Date: Wed, 11 Mar 2026 09:46:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 4/4] x86/svm: Drop emulation of Intel's SYSENTER
 behaviour on AMD systems
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>, Teddy Astie <teddy.astie@vates.tech>,
 xen-devel@lists.xenproject.org
References: <20260213114232.42996-1-alejandro.garciavallejo@amd.com>
 <20260213114232.42996-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: <20260213114232.42996-5-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.02.2026 12:42, Alejandro Vallejo wrote:
> @@ -501,6 +492,9 @@ static void svm_save_cpu_state(struct vcpu *v, struct hvm_hw_cpu *data)
>  {
>      struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
>  
> +    data->sysenter_cs      = vmcb->sysenter_cs;
> +    data->sysenter_esp     = vmcb->sysenter_esp;
> +    data->sysenter_eip     = vmcb->sysenter_eip;
>      data->shadow_gs        = vmcb->kerngsbase;
>      data->msr_lstar        = vmcb->lstar;
>      data->msr_star         = vmcb->star;

May I suggest to do writes by increasing address order? I.e. while this
already looks fine, ...

> @@ -512,11 +506,14 @@ static void svm_load_cpu_state(struct vcpu *v, struct hvm_hw_cpu *data)
>  {
>      struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
>  
> -    vmcb->kerngsbase = data->shadow_gs;
> -    vmcb->lstar      = data->msr_lstar;
> -    vmcb->star       = data->msr_star;
> -    vmcb->cstar      = data->msr_cstar;
> -    vmcb->sfmask     = data->msr_syscall_mask;
> +    vmcb->sysenter_cs  = data->sysenter_cs;
> +    vmcb->sysenter_esp = data->sysenter_esp;
> +    vmcb->sysenter_eip = data->sysenter_eip;
> +    vmcb->kerngsbase   = data->shadow_gs;
> +    vmcb->lstar        = data->msr_lstar;
> +    vmcb->star         = data->msr_star;
> +    vmcb->cstar        = data->msr_cstar;
> +    vmcb->sfmask       = data->msr_syscall_mask;
>      v->arch.hvm.guest_efer = data->msr_efer;
>      svm_update_guest_efer(v);
>  }

... your additions would want to move down here (and the other writes may
then want re-ordering as well). Preferably with that:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 08:54:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 08:54:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250874.1548218 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0FKy-0002Cd-0s; Wed, 11 Mar 2026 08:54:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250874.1548218; Wed, 11 Mar 2026 08:54:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0FKx-0002CW-UA; Wed, 11 Mar 2026 08:54:39 +0000
Received: by outflank-mailman (input) for mailman id 1250874;
 Wed, 11 Mar 2026 08:54:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=oqCu=BL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0FKw-0002CQ-BG
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 08:54:38 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ee2f319a-1d27-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 09:54:36 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-439aa2f8ebaso6843820f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 01:54:36 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439f81f13c3sm5579070f8f.25.2026.03.11.01.54.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Mar 2026 01:54:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ee2f319a-1d27-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773219276; x=1773824076; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KEmzCWoFICHnL/OTdXe2tyFSyHDNaVqSwlMvXnleBfw=;
        b=SXho9yVjP3OLNiOUkrWIQw8s/sBIOHD2rygH6SX6JHl+A55LJ/DOiNmOyvrw/PlK1y
         FFyP0YM75y1dMdxMBggTkfvjoKv6BaC907s2Z7JPlw93GhAOeTUAN2GoBby3cOKRAM15
         slcUERU+W1//f9O/IQTaaLvzbfI2oKzO8T3NFk9IO6O091pzwPtH0CsUnvp2NcRzVeTB
         oEoFH/aF9wdvCGswSLTP33yVsLezeXNAM8HxMt80rlAm3lCCd23Apd5Ao3bYEAAstYph
         NPfhRNgTX3qJuef6gRPv/1cM3CljA26F4qhhu3y5f23IBcRAvmiG4oULRN6U73lfR4bW
         yFcA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773219276; x=1773824076;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KEmzCWoFICHnL/OTdXe2tyFSyHDNaVqSwlMvXnleBfw=;
        b=rbsdw81Mwq8Fp61Z9Kv44TyZLFMZcps4I6HinxKrlzfnCRWoKorjgqGdgj9IJM21HL
         URzjgRvPkQH5FbPR9TbKXqjbbbqalAryfBT4DaSaqeuA7zx6HlEEzEYYdFfCUKhHCMKM
         bMgcThg2/t/BfDzo7uGztrerSCXocEqNZM/cfnOy4nxP53YlLExwIDmB6aWvYt9H7gsE
         nr0atNtxs+1iYUT7ZAPx6AlLnjDlHxkawrl7Ozl7UFyruyXi/p2Fov3OHh8Oa+xSZpDf
         R7l1l0hTZmrgBsA4Q617AWgK9lIWIZW2hvkRXFKTsF9mkcL//mAfrf+coZRgRGM++8Xq
         H4kg==
X-Forwarded-Encrypted: i=1; AJvYcCXmXNGAgC1JzGlDQ1ZEEiw4zYintS0L9XjDmWoNiUswwJQywyU8G7q/KjJKi7Z4KErTdpX4IHkZcLw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YygPxAMXkRWw5HCELBaWMLYW7Djd+Sn0P2DKQmTBHMWpPodL+0t
	vfXBBJz8pvH7ViERT1zhQvx034T5BfUzrTfuCwuIW3HFltuzPNfIwtmnSwXru4BWDg==
X-Gm-Gg: ATEYQzy85UM60dt9xV3uQ0sEuIvB7zYIVKhuWsXEpRczr0jEC+ZcnrTHrGqAFYn2QLc
	ZZkRez8g5/iB8D5qvKrgtJKxMhhYcOWS01/Jmr3dluOitvMWgm6I2nZf7J8/sEwjQWnIeCFXzmx
	6NbPAmkdB8toId0ihrnoLmgQfiC32FcZg4xR3PRS3wb1JZY/TQjuXTwmuVr2DdKWprX9EwtQvMH
	2dwhL+iQCMPvb05r/SKyy0UTqAyS/x5P+aUGMJGNAJr+xtfj7t8KuveThpyG68PAcr9dpfXq7aT
	aMxws6nt/9NKzuB+NrcpGMskxHRaNJXrh4axY5o4/GscbV4Xb/5LHhxBspjAqt9SNAPp7Fa8idZ
	EkCHdn0pZglKVHNCc9oLIrxRtke1DUgD8DF468rh4W83cpezYP39u5FVtWrtopKrNtp5Ab7oQDN
	4o+5QUzl1It7GapxUSkIgZf1fVRkiIPkswlH+6f5TuBcKLKyoutvzqqUg8FO5ItsTl/HTDaOcnW
	Sxmwt061qlKUwY=
X-Received: by 2002:a05:6000:2386:b0:439:de1d:74ac with SMTP id ffacd0b85a97d-439f81bd9fdmr3496975f8f.2.1773219276053;
        Wed, 11 Mar 2026 01:54:36 -0700 (PDT)
Message-ID: <7973d3d1-8984-421f-88db-ca17ea3cb2ac@suse.com>
Date: Wed, 11 Mar 2026 09:54:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 0/4] x86: Drop cross-vendor support
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260213114232.42996-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: <20260213114232.42996-1-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.02.2026 12:42, Alejandro Vallejo wrote:
> Alejandro Vallejo (4):
>   x86: Reject CPU policies with vendors other than the host's
>   x86/hvm: Disable cross-vendor handling in #UD handler
>   x86/hvm: Remove cross-vendor checks from MSR handlers.
>   x86/svm: Drop emulation of Intel's SYSENTER behaviour on AMD systems

With this, do we actually want to keep emulation of SYS{ENTER,EXIT,CALL,RET}
in the insn emulator? Or at least gate that on e.g. VM_EVENT, to still allow
its use by introspection? Whether to then also permit those with HVM_FEP=y
(but VM_EVENT=n) would be a follow-on question.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 09:16:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 09:16:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250887.1548228 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0Ffk-0005DF-Kg; Wed, 11 Mar 2026 09:16:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250887.1548228; Wed, 11 Mar 2026 09:16:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0Ffk-0005D8-FZ; Wed, 11 Mar 2026 09:16:08 +0000
Received: by outflank-mailman (input) for mailman id 1250887;
 Wed, 11 Mar 2026 09:16:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fRnz=BL=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0Ffj-0005D2-GH
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 09:16:07 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id eeec09ae-1d2a-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 10:16:06 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-6629fcc7460so3402174a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 02:16:06 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b972de092dcsm40225866b.4.2026.03.11.02.16.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Mar 2026 02:16:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eeec09ae-1d2a-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773220565; x=1773825365; 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=gmX47k16PCFMCXn0UmTzlCzGKMZSBXrDm/8qKo1TTnA=;
        b=c0svKAtN38btjWZZKFcLY1jazAFHY+KYpHteUh3nGvL1P/B/YEteM0A+a7GseMuV4U
         fAANyU6g1Q43AEq23fOZG6BdG4aTHO239YpZU5LKVYzBmKXeIy9jo8w0Fe9kj/x6psjI
         2PLx6ccq4VeHQBtK5yX5JUavhjdeXoyDGJqE0ujdL0M63AnzfSNrwnjG3I1w9wJP0M7t
         swiSx7J/vHyG8QoNc5CakLAaP+64KqCtKH1yMtjvH3msf+5Poua2MjWqZqLuIjlDC0iY
         U8wOjC4jsvBjJzZDY/50K7IHPZQyYW58uTgKqDxPRYi+swRMpEMeLyMvb2AxpKXKtsZK
         fp8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773220565; x=1773825365;
        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=gmX47k16PCFMCXn0UmTzlCzGKMZSBXrDm/8qKo1TTnA=;
        b=kU3ylz2FwqK4980rgZg6E7ddUz/MKmBZXB9XrMeME4tFgRgneBY2GBKPOXF9oTwFky
         urBClrTz3r8CSac+c2GoVrbbp9HoreAjEq+BawdnX/zDF03/JnaxXUgzToteUCsI0Rlt
         AQKJz8f5rx1gZ3pJF0QzMQ8X4jTCl+j9OENM6qqbd5ihF4Xp+EWcE6wU+543Z356ZMac
         eQbr8lR+BttJIsi9mDVNpEFhQD2+6qpKdGgib0ngmp2+zIPFD0OCGXYM2QS7YUr7xYeH
         yHpuzsgVh/8th6rV4vGsWEblmjn0yFh8kyZHjqL/qKAuceLugL/zgEeJajKSTXt+SAUz
         qNrw==
X-Forwarded-Encrypted: i=1; AJvYcCXw58kYV+FMsJd8FAaJNfGbqz5GRnqkUhnMT501ak5RULuzLFLdJw+YOUDnhDZcHuE1al5gpzOtiu0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwmUDRWKR7pLIYE5grAsUHX2gCk5BDunh6ex7Wr599ILS0+Dkmn
	vlmNWRXj+MtepEAfy+Jtg/ZceBxCeFNG7gvOohv0QDR2Jv7qlGOryZX0yLseN1E8sfA=
X-Gm-Gg: ATEYQzyBDpMMXHzDlkzP01w7Z6ObxGfTsaKzkvuGlWWNXHQyJs1dfqRG0O8MoxLpJDg
	6kK56kGRJj01wcjxr/6YeQnsCJnWhcrqzJee80eQTCcf2psH8cMvTI/619SDsPd8OkHr67upjUU
	L7n0NTzVf6/ipzAj/rLrd2ezjaOxXKjn8CCijIWpzNeNh1ysF4TEFM8xx8cSJV3ltFu7Opt3A5e
	C6/gPZhNebD6ugE5iWW0hWjVa1Fj821EnrYDTGKa94oum5KWo32QqxFVfKJGnYKx/MbXjC17fOg
	ahsmOQONLsikp6J0C3cyHimZBLwE3ZhH45xPtKLQKOhcnsTbvfEAFzbdic8C+/U5Wq21eRkmtI+
	8VHEnUAGmbFS65NRJFjrGwBwPsAT7Op/gjd2vzZYUUNTQ+3b986PGD2DALFqLkzl5OKrbG3gWrZ
	btouUKREu7ymHT0a6RP/iIjI8S3VpMkUSxyjKu4fqobbdVHe+Z5U6+ZS6/4StzyTrYqa8UCg037
	OXvcEWf7kI8ZLpS1Vdc9F9pFvngfzuKrEN7rJnlVe010yD0qJgC07yf0/BDa30p
X-Received: by 2002:a17:906:fd84:b0:b94:1913:77fc with SMTP id a640c23a62f3a-b972e5f420emr107546366b.30.1773220565380;
        Wed, 11 Mar 2026 02:16:05 -0700 (PDT)
Message-ID: <12b42fb2-092b-4ffc-9c5c-fd0bb7252bd3@suse.com>
Date: Wed, 11 Mar 2026 10:16:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/6] x86: Cleanups around slow_down_io()
To: linux-kernel@vger.kernel.org, x86@kernel.org,
 virtualization@lists.linux.dev, kvm@vger.kernel.org,
 linux-block@vger.kernel.org
Cc: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, Ajay Kaher <ajay.kaher@broadcom.com>,
 Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Paolo Bonzini
 <pbonzini@redhat.com>, Vitaly Kuznetsov <vkuznets@redhat.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel@lists.xenproject.org, Denis Efremov <efremov@linux.com>,
 Jens Axboe <axboe@kernel.dk>
References: <20260119182632.596369-1-jgross@suse.com>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20260119182632.596369-1-jgross@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------ly91FhzTvqqnaaaUYBZhau5n"

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

--------------4QPs0Tl0IvPk0NeNwm0fH0rQ
Content-Type: multipart/mixed; boundary="------------ykCYmYZPmbNUyjW9yglZ6jAJ"

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

T24gMTkuMDEuMjYgMTk6MjYsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+IFdoaWxlIGxvb2tp
bmcgYXQgcGFyYXZpcnQgY2xlYW51cHMgSSBzdHVtYmxlZCBvdmVyIHNsb3dfZG93bl9pbygp
IGFuZA0KPiB0aGUgcmVsYXRlZCBSRUFMTFlfU0xPV19JTyBkZWZpbmUuDQo+IA0KPiBEbyBz
ZXZlcmFsIGNsZWFudXBzLCByZXN1bHRpbmcgaW4gYSBkZWxldGlvbiBvZiBSRUFMTFlfU0xP
V19JTyBhbmQgdGhlDQo+IGlvX2RlbGF5KCkgcGFyYXZpcnQgZnVuY3Rpb24gaG9vay4NCj4g
DQo+IFBhdGNoIDQgaXMgcmVtb3ZpbmcgdGhlIGNvbmZpZyBvcHRpb25zIGZvciBzZWxlY3Rp
bmcgdGhlIGRlZmF1bHQgZGVsYXkNCj4gbWVjaGFuaXNtIGFuZCBzZXRzIHRoZSBkZWZhdWx0
IHRvICJubyBkZWxheSIuIFRoaXMgaXMgaW4gcHJlcGFyYXRpb24gb2YNCj4gcmVtb3Zpbmcg
dGhlIGlvX2RlbGF5KCkgZnVuY3Rpb25hbGl0eSBjb21wbGV0ZWx5LCBhcyBzdWdnZXN0ZWQg
YnkgSW5nbw0KPiBNb2xuYXIuDQo+IA0KPiBQYXRjaCA1IGlzIGFkZGluZyBhbiBhZGRpdGlv
bmFsIGNvbmZpZyBvcHRpb24gYWxsb3dpbmcgdG8gYXZvaWQNCj4gYnVpbGRpbmcgaW9fZGVs
YXkuYyAoZGVmYXVsdCBpcyBzdGlsbCB0byBidWlsZCBpdCkuDQo+IA0KPiBDaGFuZ2VzIGlu
IFYyOg0KPiAtIHBhdGNoZXMgMiBhbmQgMyBvZiBWMSBoYXZlIGJlZW4gYXBwbGllZA0KPiAt
IG5ldyBwYXRjaGVzIDQgYW5kIDUNCj4gDQo+IENoYW5nZXMgaW4gVjM6DQo+IC0gcmViYXNl
IHRvIHRpcC9tYXN0ZXIga2VybmVsIGJyYW5jaA0KPiANCj4gQ2hhbmdlcyBpbiBWNDoNCj4g
LSBhZGQgcGF0Y2ggMSBhcyBwcmVyZXEgcGF0Y2ggdG8gdGhlIHNlcmllcw0KPiANCj4gSnVl
cmdlbiBHcm9zcyAoNik6DQo+ICAgIHg4Ni9pcnFmbGFnczogRml4IGJ1aWxkIGZhaWx1cmUN
Cj4gICAgeDg2L3BhcmF2aXJ0OiBSZXBsYWNlIGlvX2RlbGF5KCkgaG9vayB3aXRoIGEgYm9v
bA0KPiAgICBibG9jay9mbG9wcHk6IERvbid0IHVzZSBSRUFMTFlfU0xPV19JTyBmb3IgZGVs
YXlzDQo+ICAgIHg4Ni9pbzogUmVtb3ZlIFJFQUxMWV9TTE9XX0lPIGhhbmRsaW5nDQo+ICAg
IHg4Ni9pb19kZWxheTogU3dpdGNoIGlvX2RlbGF5KCkgZGVmYXVsdCBtZWNoYW5pc20gdG8g
Im5vbmUiDQo+ICAgIHg4Ni9pb19kZWxheTogQWRkIGNvbmZpZyBvcHRpb24gZm9yIGNvbnRy
b2xsaW5nIGJ1aWxkIG9mIGlvX2RlbGF5Lg0KPiANCj4gICBhcmNoL3g4Ni9LY29uZmlnICAg
ICAgICAgICAgICAgICAgICAgIHwgIDggKysrDQo+ICAgYXJjaC94ODYvS2NvbmZpZy5kZWJ1
ZyAgICAgICAgICAgICAgICB8IDMwIC0tLS0tLS0tLS0NCj4gICBhcmNoL3g4Ni9pbmNsdWRl
L2FzbS9mbG9wcHkuaCAgICAgICAgIHwgMzEgKysrKysrKystLQ0KPiAgIGFyY2gveDg2L2lu
Y2x1ZGUvYXNtL2lvLmggICAgICAgICAgICAgfCAxOSArKysrLS0tDQo+ICAgYXJjaC94ODYv
aW5jbHVkZS9hc20vaXJxZmxhZ3MuaCAgICAgICB8ICA2ICstDQo+ICAgYXJjaC94ODYvaW5j
bHVkZS9hc20vcGFyYXZpcnQtYmFzZS5oICB8ICA2ICsrDQo+ICAgYXJjaC94ODYvaW5jbHVk
ZS9hc20vcGFyYXZpcnQuaCAgICAgICB8IDExIC0tLS0NCj4gICBhcmNoL3g4Ni9pbmNsdWRl
L2FzbS9wYXJhdmlydF90eXBlcy5oIHwgIDIgLQ0KPiAgIGFyY2gveDg2L2tlcm5lbC9NYWtl
ZmlsZSAgICAgICAgICAgICAgfCAgMyArLQ0KPiAgIGFyY2gveDg2L2tlcm5lbC9jcHUvdm13
YXJlLmMgICAgICAgICAgfCAgMiArLQ0KPiAgIGFyY2gveDg2L2tlcm5lbC9pb19kZWxheS5j
ICAgICAgICAgICAgfCA4MSArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gICBhcmNo
L3g4Ni9rZXJuZWwva3ZtLmMgICAgICAgICAgICAgICAgIHwgIDggKy0tDQo+ICAgYXJjaC94
ODYva2VybmVsL3BhcmF2aXJ0LmMgICAgICAgICAgICB8ICAzICstDQo+ICAgYXJjaC94ODYv
a2VybmVsL3NldHVwLmMgICAgICAgICAgICAgICB8ICA0ICstDQo+ICAgYXJjaC94ODYveGVu
L2VubGlnaHRlbl9wdi5jICAgICAgICAgICB8ICA2ICstDQo+ICAgZHJpdmVycy9ibG9jay9m
bG9wcHkuYyAgICAgICAgICAgICAgICB8ICAyIC0NCj4gICAxNiBmaWxlcyBjaGFuZ2VkLCA2
MyBpbnNlcnRpb25zKCspLCAxNTkgZGVsZXRpb25zKC0pDQo+IA0KDQpBbnkgY29tbWVudHM/
DQoNCg0KSnVlcmdlbg0K
--------------ykCYmYZPmbNUyjW9yglZ6jAJ
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-----

--------------ykCYmYZPmbNUyjW9yglZ6jAJ--

--------------4QPs0Tl0IvPk0NeNwm0fH0rQ--

--------------ly91FhzTvqqnaaaUYBZhau5n
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/Ey8FAmmxMtQFAwAAAAAACgkQsN6d1ii/Ey8A
eQf8CHdFysN8bD+Zo0Oxso2E1yhRpRH1owAFupCVGF3BUqTaDASBcCuvsG9/Ki0F45119ijMsBjw
TFDm/0+5boYGwCqHqvHsFCMdMaYRmVqFecdT+YS0Y1P8gY6ss0Gss8aOnF3DBJWGJ/9uxlToJYSt
Iskf/Ngli/nA6twrtqlX4PqF/9uX5QpAERj607WFkQ7ObvTNpZAyejlnTJPxR2yrb9d9mrrm4LHt
7LOvBn+R2GCJhztJ9ROE7yBNFNjwyUu63vPCc3wShFdxXqjKXiuOvlC87MCbfL6crZr1nRX//HDj
Vj9OPYJkGm0vldthYiLXqEmDUTp7IhKoXgrM9Ks6jg==
=uMUn
-----END PGP SIGNATURE-----

--------------ly91FhzTvqqnaaaUYBZhau5n--


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 09:26:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 09:26:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250900.1548237 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0FpH-00074U-Kg; Wed, 11 Mar 2026 09:25:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250900.1548237; Wed, 11 Mar 2026 09: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 1w0FpH-00074N-GP; Wed, 11 Mar 2026 09:25:59 +0000
Received: by outflank-mailman (input) for mailman id 1250900;
 Wed, 11 Mar 2026 09:25:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tK7a=BL=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1w0FpF-00074B-LS
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 09:25:57 +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 4e42b940-1d2c-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 10:25:55 +0100 (CET)
Received: from CH2PR04CA0030.namprd04.prod.outlook.com (2603:10b6:610:52::40)
 by LV3PR12MB9260.namprd12.prod.outlook.com (2603:10b6:408:1b4::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Wed, 11 Mar
 2026 09:25:50 +0000
Received: from CH3PEPF00000010.namprd04.prod.outlook.com
 (2603:10b6:610:52:cafe::ca) by CH2PR04CA0030.outlook.office365.com
 (2603:10b6:610:52::40) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.25 via Frontend Transport; Wed,
 11 Mar 2026 09:25:34 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF00000010.mail.protection.outlook.com (10.167.244.41) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Wed, 11 Mar 2026 09:25:50 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 11 Mar
 2026 04:25:48 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4e42b940-1d2c-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yOx4SZn4AatKtIlfHsnZPcb00TzI+P8uldrOpJ9AOlvd8FqBJfh3OB431YfZSpAX/89yzXl75NnmPPOcLffbofwWbuavqDHZG+CRiaszC4vNtaiGUqzCekJya1BFSa9uNQJsJDt8uM/4tJS5HOMnq19ir/otQLL2GeyOiDNQtOgEpUns6qXYt2WtOelDviARpYaa4LJ0r+Q/X6ykbKwuP0dS4jJSW90VwPbov1cQOQb0Uav5SIiUjO4l4niLDMfYITmply1oAYUf2wuwHqwCliObLqmho07/mKDqaBZjdGoPXjZcE8ej/GzbvCddRtJNbzn0irztCjbCUsi48ySc9A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zLoPqqk2GbJd+TGmLW1ceGwAgHSMyplTDrP7Rk8/y5E=;
 b=e1Rd9NyYDFleyDFFRJPNee9cKdGsm1+u3k2fplEZ6IkTIs1q/rl9C2pU0cj2qVrPqeGW4pWnDjrUxbwKl39SyocKYDj3krUvHc4U6GDJjXGrIsPFnZRFSy2Qhdi+IDMbwIqP6mNSSv+6shzUsgZorX/QQZtDvNw8/8f1BB0M3EjvVo+IHc2MUfJSzxr25m6ZWIASFiREkQfSzCWkysY+nu57jikGWfqM8mklPTmUw3jFuRHmJtgvt2HBP2MyzLuYkPqlFCXiz2tj80LoY5x8wg0q1z3rmRFqB4bCnw/4gmb/XPepQMSX8hCBr8/0cI9natmHUb/bf0TyxEbNJb52oQ==
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=zLoPqqk2GbJd+TGmLW1ceGwAgHSMyplTDrP7Rk8/y5E=;
 b=UxEuOJ7bT7+vyIQ6OJ/1U7dNAT/ISDHs2fzBNYy3KpoM8EzIjVqqDw5NblK4Ku1+p3LoRuV/rShyKI8zlFKMwe5A5tnL/M7q0LeS5brFi1tlL5LiqO+/dWdWHyQDBD4f/ipK5+VjbX2rDcxwlNIi6/z5V5V5J2fJPmJ+jHJ6KGg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 11 Mar 2026 10:25:41 +0100
Message-ID: <DGZUFMGSILDF.3ES3YACXM6AG4@amd.com>
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3 2/4] x86/hvm: Disable cross-vendor handling in #UD
 handler
X-Mailer: aerc 0.20.1
References: <20260213114232.42996-1-alejandro.garciavallejo@amd.com>
 <20260213114232.42996-3-alejandro.garciavallejo@amd.com>
 <813d3fc9-170a-4f25-872a-3688946c236d@suse.com>
In-Reply-To: <813d3fc9-170a-4f25-872a-3688946c236d@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: CH3PEPF00000010:EE_|LV3PR12MB9260:EE_
X-MS-Office365-Filtering-Correlation-Id: cc7edca8-cc75-4196-a885-08de7f502f53
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700016|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	8zfur7QN5nECEbhWh7dW/az+PDaB9NABwK1nRl0zcqZw0Rg5w+IQN7YiCTeHcVXkV7wm8gw7Rxmi/vJGX4pSZwxQB+b7UTqch34bW+ZIV2NsvWGdagoB8S60FSIT2BMPwB+BQ8HqkrxAML4fJ26RZThkASF3GrzJy9/UcDU3PtyO6djSqA68S4aDN3I946IQRcFy2ypyokTOn3j37OatsA6PpSYO/XlkjPBKl5a616wBIcx9OUHhydu8Z1mvXqdaCaRL/DGm1mvH7ucBixTRDcUi8ChVZX94cQVvGpFRs489E9DRQUIBg7sUduhiRchJG6yoHedNeRayj11tXi6ayOUeLHPATxnvBTDQWowv7sI7XC2jvMqDKZ/HGXaZzrf/gFDnBe4b8OWCdGU88wM7ZzYLiehdKQq0dO0lHkUemF3oLbHvc9AHtM5/k5UeUp2HM6G9ppuMzr02MDWJprgQ2p8V57V8uwv0Tz9QZ2L308Jzp24l6nYEX5mKooPZP2fPQCNlSVUihpIaq0cPzsgHTEI0URfQLF1DB+M9IoSFuzUeMgad+ASt01wTWhC8iIa+VtORfjan9IVJjNmgzjOpGUXT2UfwawSTBmeEFuoSqBiXYfn9Lrw9+UngklKdQ1ftGXsL5Uw48u1yzuba9ceLNVvzGV6MltCJOSmu6G3Zlj/ZLzpKykpjWLvrkofGPtnt8KpDD9py1OfoaKhyUcSEIb9ATlN/7Um84f1CLWdmx/CNdmsKZxOsdWG+wwqb8URWTIrFrKUUZ66j509BCMI7vg==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700016)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	2vWd5F5t4ewEj8tvFzBbUfVBaYO3eiF5vT54cc3QjAnRiS691cnWo8rvBOEhL2Wqg4VjVIx8OzmFBMEPe2cEJLXGuzOceJp3doTxQ6IZ/Ssch1XxkRjMUdbHSicelkeqD5O9jpm0Q7HOWiN+cnwO4QenjWsjDDH2jPximrlqcrrFbsL23AzSN5HaHuKmDEhkRIqJdd0yrQW0XJkB4qY+uTlzMLC1ZXVVdBga0mDWzicwcCtIMeEfh8V2En8L7sXRiTj8zGXisvM5+j9hEBJk37McYgODFRyfVP6fhn3TCGpKKoyC04nnGudf76PsYMmOF+DaVCUzEq8T6En0bP9+RNmpwQPU1y36M/HaGyojjR+s9EwJ+cJzTWnProiSl2XLKbFuB1XVIgsavTwq76DAFj6eIlLnGrgZLb/YZwUP1pWNdYzOt1ImT0YhaN2Zj84x
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2026 09:25:50.0774
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cc7edca8-cc75-4196-a885-08de7f502f53
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH3PEPF00000010.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9260

On Wed Mar 11, 2026 at 9:35 AM CET, Jan Beulich wrote:
> On 13.02.2026 12:42, Alejandro Vallejo wrote:
>> --- a/xen/arch/x86/hvm/hvm.c
>> +++ b/xen/arch/x86/hvm/hvm.c
>> @@ -3832,69 +3832,47 @@ int hvm_descriptor_access_intercept(uint64_t exi=
t_info,
>>      return X86EMUL_OKAY;
>>  }
>> =20
>> -static bool cf_check is_cross_vendor(
>> -    const struct x86_emulate_state *state, const struct x86_emulate_ctx=
t *ctxt)
>> -{
>> -    switch ( ctxt->opcode )
>> -    {
>> -    case X86EMUL_OPC(0x0f, 0x05): /* syscall */
>> -    case X86EMUL_OPC(0x0f, 0x34): /* sysenter */
>> -    case X86EMUL_OPC(0x0f, 0x35): /* sysexit */
>> -        return true;
>> -    }
>> -
>> -    return false;
>> -}
>> -
>>  void hvm_ud_intercept(struct cpu_user_regs *regs)
>>  {
>>      struct vcpu *cur =3D current;
>> -    bool should_emulate =3D
>> -        cur->domain->arch.cpuid->x86_vendor !=3D boot_cpu_data.x86_vend=
or;
>>      struct hvm_emulate_ctxt ctxt;
>> +    const struct segment_register *cs =3D &ctxt.seg_reg[x86_seg_cs];
>> +    uint32_t walk =3D PFEC_insn_fetch;
>> +    unsigned long addr;
>> +    char sig[5]; /* ud2; .ascii "xen" */
>> =20
>> -    hvm_emulate_init_once(&ctxt, opt_hvm_fep ? NULL : is_cross_vendor, =
regs);
>> +    if ( !opt_hvm_fep )
>> +        goto reinject;
>
> Is this possible at all, i.e. shouldn't there be ASSERT_UNREACHABLE() in
> addition if already the check is kept?

It isn't.

v2 used to BUG_ON() at VMEXIT when !HVM_FEP and compile out this handler
altogether, but Andrew was unhappy with it because he uses it occasionally =
and
it'd be more of a PITA to undo the removal or force a HVM_FEP-enabled hyper=
visor
for the #UD handler to be present at all.

I have no strong views on the ASSERT. It's not expected to happen, but I do=
n't
expect the existing conditions to change either, and if they do that will w=
arrant
a change in the handler too.=20

If you want it I can add it, but if we're not killing the handler in releas=
e I
don't think it's very helpful to assert/bug_on.

>
>> -    if ( opt_hvm_fep )
>> -    {
>> -        const struct segment_register *cs =3D &ctxt.seg_reg[x86_seg_cs]=
;
>> -        uint32_t walk =3D ((ctxt.seg_reg[x86_seg_ss].dpl =3D=3D 3)
>> -                         ? PFEC_user_mode : 0) | PFEC_insn_fetch;
>
> Why is this initializer not retained?

It is, it's just that the diff is terrible. An unfortunate side effect of t=
he
removal of the braces. The scope collapsing forces it on top of the functio=
n,
before the emulation context is initialised.

It's set up in steps. walk is unconditionally initialised as isnsn_fetch, a=
nd
later (after emulate_init_once()), OR'd with PFEC_user_mode for DPL =3D=3D =
3. See...

>
>> -        unsigned long addr;
>> -        char sig[5]; /* ud2; .ascii "xen" */
>> -
>> -        if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip,
>> -                                        sizeof(sig), hvm_access_insn_fe=
tch,
>> -                                        cs, &addr) &&
>> -             (hvm_copy_from_guest_linear(sig, addr, sizeof(sig),
>> -                                         walk, NULL) =3D=3D HVMTRANS_ok=
ay) &&
>> -             (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) =3D=3D 0) )
>> -        {
>> -            regs->rip +=3D sizeof(sig);
>> -            regs->eflags &=3D ~X86_EFLAGS_RF;
>> +    hvm_emulate_init_once(&ctxt, NULL, regs);
>> =20
>> -            /* Zero the upper 32 bits of %rip if not in 64bit mode. */
>> -            if ( !(hvm_long_mode_active(cur) && cs->l) )
>> -                regs->rip =3D (uint32_t)regs->rip;
>> +    if ( ctxt.seg_reg[x86_seg_ss].dpl =3D=3D 3 )
>> +        walk |=3D PFEC_user_mode;

... here.

>> =20
>> -            add_taint(TAINT_HVM_FEP);
>> +    if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip,
>> +                                    sizeof(sig), hvm_access_insn_fetch,
>> +                                    cs, &addr) &&
>> +         (hvm_copy_from_guest_linear(sig, addr, sizeof(sig),
>> +                                     walk, NULL) =3D=3D HVMTRANS_okay) =
&&
>> +         (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) =3D=3D 0) )
>> +    {
>> +        regs->rip +=3D sizeof(sig);
>> +        regs->eflags &=3D ~X86_EFLAGS_RF;
>> =20
>> -            should_emulate =3D true;
>> -        }
>> -    }
>> +        /* Zero the upper 32 bits of %rip if not in 64bit mode. */
>> +        if ( !(hvm_long_mode_active(cur) && cs->l) )
>> +            regs->rip =3D (uint32_t)regs->rip;
>> =20
>> -    if ( !should_emulate )
>> -    {
>> -        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
>> -        return;
>> +        add_taint(TAINT_HVM_FEP);
>>      }
>> +    else
>> +        goto reinject;
>> =20
>>      switch ( hvm_emulate_one(&ctxt, VIO_no_completion) )
>>      {
>>      case X86EMUL_UNHANDLEABLE:
>>      case X86EMUL_UNIMPLEMENTED:
>> -        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
>> -        break;
>> +        goto reinject;
>
> How about placing the reinject label here, along with the two case one?
>
> Jan

Sure. That works too.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 09:27:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 09:27:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250908.1548246 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0Fqp-0007hN-UZ; Wed, 11 Mar 2026 09:27:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250908.1548246; Wed, 11 Mar 2026 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 1w0Fqp-0007hE-QX; Wed, 11 Mar 2026 09:27:35 +0000
Received: by outflank-mailman (input) for mailman id 1250908;
 Wed, 11 Mar 2026 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=tK7a=BL=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1w0Fqo-0007h2-HF
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 09:27:34 +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 87f1909d-1d2c-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 10:27:33 +0100 (CET)
Received: from CH0PR03CA0227.namprd03.prod.outlook.com (2603:10b6:610:e7::22)
 by IA1PR12MB6041.namprd12.prod.outlook.com (2603:10b6:208:3d7::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Wed, 11 Mar
 2026 09:27:28 +0000
Received: from CH3PEPF0000000C.namprd04.prod.outlook.com
 (2603:10b6:610:e7:cafe::71) by CH0PR03CA0227.outlook.office365.com
 (2603:10b6:610:e7::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.25 via Frontend Transport; Wed,
 11 Mar 2026 09:27:22 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF0000000C.mail.protection.outlook.com (10.167.244.39) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Wed, 11 Mar 2026 09:27:26 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 11 Mar
 2026 04:27:24 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 87f1909d-1d2c-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=L8tIst6WlaYAb0lWAMMJDQc05DwDKFCP3vuEI7xCTRbTv0k/AQ9++zQDqNdI2iTE0ETFPTJZNWC1rw2jW+L4k5nNVdxVa5ApaOwz6IjjlV1KMLbJJ3Pvxwd6BTEBVWJSjOx6S3PjMFPsuxXNGIf/aqWAzQZp+M1nf4NwQ/HrSgKOWbvZoIqL32qrh1KACHCoGw3nUJidWkgels6GyLIPa7TmqAcHoi1Z3HFC0z+AUESa4BFyHLyJWFDxJbSG4b2nLN8sCauK2UR10U8w8gJ871ElMJnd1NtXD8VIbwC3aPzHHuzzWc+1df7UV//8DHhGGc2IW3A9NspilwYqEkmKUw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PNrrOymFCnhDiqnrfwMeebp+A/+//ewqO1p99oDlPs4=;
 b=jLaLueIJeomi5Q3Pj9l2Y5tvTyug70xunrrmetEw2SpTE2hyr3HcN0lnqLElQT2mB93cIbQBd84YyQ/6gR2MuoZP1GalDar9WoBnmHnj0SKDI2mSiw/1fDaYP+YhBU1ulDzwlTcZuW5huy00hGOIAHi7HQ9+f5yXows6FTkv5+rP1Mwky4rXUUzTeL0iLnEUNzfpbdH1IfE4uQ9eL4WiKegc904w7DkTML5LHtrJHYubzy3bBe+lBtHIX3YpZzSDaAumRP5EA+GBFS/muo2lokM/Kj3N4g62AM/PhFevQDHARwOxuSRciPvYf5I1DUZytBz+uB0Artx6rHNMdL1LuQ==
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=PNrrOymFCnhDiqnrfwMeebp+A/+//ewqO1p99oDlPs4=;
 b=o2XkGPkz6t2MU0abAWveCSyD2yCooRMoH2jrHIuGWvj6Qm7ml0FTgNWCCWxoy9rTPv4Htt8/cAiN8CT8me9fYnUgvQfbcovMTUNo3fFgLIpRcmH56HQ5R6ubYj/nUOyjR0nfwUJzwiP8Xm+6Y2iz9lAjxTbMhQSSjhICGp80XAM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 11 Mar 2026 10:27:22 +0100
Message-ID: <DGZUGX2F941D.4SJTXQNVTJ9U@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>, Teddy Astie <teddy.astie@vates.tech>,
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3 4/4] x86/svm: Drop emulation of Intel's SYSENTER
 behaviour on AMD systems
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
X-Mailer: aerc 0.20.1
References: <20260213114232.42996-1-alejandro.garciavallejo@amd.com>
 <20260213114232.42996-5-alejandro.garciavallejo@amd.com>
 <f63e2fa3-65b9-4dcd-983f-4e753ea21bd0@suse.com>
In-Reply-To: <f63e2fa3-65b9-4dcd-983f-4e753ea21bd0@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: CH3PEPF0000000C:EE_|IA1PR12MB6041:EE_
X-MS-Office365-Filtering-Correlation-Id: 172a8972-44b0-425a-6952-08de7f506893
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700016|82310400026|22082099003|56012099003|18002099003|7053199007;
X-Microsoft-Antispam-Message-Info:
	ajJ9u3A1Asb0AhIiHYd7S/fWWnGflSeFUiDTjGQm5pm5S0iVszOnpqcHq8sdFKEveFb6R5vtmpvdldbK7dqD7fE34P/J3UB0vGN26Pub8BjHPSAKmhEiXsGqvajPplFU5tGxfnRxPSZcTDn9lBkXz+p3zxIIK4onCY+cT5d9bzfZEa0jWbyOQLstDP/G2rR18gtcQlt5AKP+Bn6J8vwyhqePRMXxS64/yqChtDgzsha1AjlQIOvZnW3/+JiRnNguSckf2h5ozdnqw0C0yArEmMxTYq+b0wpxEjNpJUdjcL+s36d2/CAfBYk2DT6rarrlYOpAbw3Iqphf+PNzztB+3DCVKT6TKkIIPDJIbKpkjLTWBgnlSTa8pu6i/aoFHcFJAhsgBlWpLLKtjnmOXt0NeSNb+plAr5oe5XJHG5mK5lSnnHEqrBe07c9C4GqtvUaApVMbq8O+eqUJc5FRBw3iF81esoAzZVa8Sb8IC+gyNhHbtUVYjIs/+mK6bCP+/gXyQTeng8RV/VM3gDYA4FJ4mzcRH9gPMgllpeug/YAN51NabVdXs7DS4IqwLrX55/6fILERthChmJUE5EiYmp7S0335LyE8rloUtL0OBuLCMTHro85+xlJob7EcFgh5izl7MX9b+f97+ouZNcVKNA/ZuFPpebs/L7F7kL58GBKr+PS76RlOsnpUoYH9lhjS5ECp1toeHxpb0WgPHFZpTvl93CX6le/z54PLIot2now6BE2XvpdRDv2AQgXqXIoYqDd455pUuM0ZXYHRlH8aovT8sw==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700016)(82310400026)(22082099003)(56012099003)(18002099003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	h5xsG9CHu7E3Fl79BwdIxE89XoWP39oKwLDD2ix/p+b20jG2CIG0UABSEzsRkj3HAPx5O70t+slwpeXqrYagf591/QikyZ1oHpeBLyh3CdkSSEQ56CPPotGVilWgtflME4M+k7dVLkq0qYGx8fMjhycmWHQQbpNIoZtRenRQuvsz60YkDhNVViKei4sTwcAe5pUfpxY23oUcOgPLPTkbj7MKxDb5Q0gyYG8NFfbiTgldfuxNMkrg/+BRmhZtfLkj1cB0ZOVjUFf73SrUWf44suQPW3Ve+1VGpgOYYilzWZTEO5+Ewr/hqgsPOQMNcTPFQZWDvW0Ci+Axv5tni2Xwb4IRdh/zh1CnJmkztQUCPbA1XNN0WTDodKaavT+fXUDTVMjwgWn7/A0dQCkleaZNn9J4XYeDz6JTZcSoQQl/8M05ABCoMeDCwKjhsZoaarvI
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2026 09:27:26.1465
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 172a8972-44b0-425a-6952-08de7f506893
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH3PEPF0000000C.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6041

On Wed Mar 11, 2026 at 9:46 AM CET, Jan Beulich wrote:
> On 13.02.2026 12:42, Alejandro Vallejo wrote:
>> @@ -501,6 +492,9 @@ static void svm_save_cpu_state(struct vcpu *v, struc=
t hvm_hw_cpu *data)
>>  {
>>      struct vmcb_struct *vmcb =3D v->arch.hvm.svm.vmcb;
>> =20
>> +    data->sysenter_cs      =3D vmcb->sysenter_cs;
>> +    data->sysenter_esp     =3D vmcb->sysenter_esp;
>> +    data->sysenter_eip     =3D vmcb->sysenter_eip;
>>      data->shadow_gs        =3D vmcb->kerngsbase;
>>      data->msr_lstar        =3D vmcb->lstar;
>>      data->msr_star         =3D vmcb->star;
>
> May I suggest to do writes by increasing address order? I.e. while this
> already looks fine, ...
>
>> @@ -512,11 +506,14 @@ static void svm_load_cpu_state(struct vcpu *v, str=
uct hvm_hw_cpu *data)
>>  {
>>      struct vmcb_struct *vmcb =3D v->arch.hvm.svm.vmcb;
>> =20
>> -    vmcb->kerngsbase =3D data->shadow_gs;
>> -    vmcb->lstar      =3D data->msr_lstar;
>> -    vmcb->star       =3D data->msr_star;
>> -    vmcb->cstar      =3D data->msr_cstar;
>> -    vmcb->sfmask     =3D data->msr_syscall_mask;
>> +    vmcb->sysenter_cs  =3D data->sysenter_cs;
>> +    vmcb->sysenter_esp =3D data->sysenter_esp;
>> +    vmcb->sysenter_eip =3D data->sysenter_eip;
>> +    vmcb->kerngsbase   =3D data->shadow_gs;
>> +    vmcb->lstar        =3D data->msr_lstar;
>> +    vmcb->star         =3D data->msr_star;
>> +    vmcb->cstar        =3D data->msr_cstar;
>> +    vmcb->sfmask       =3D data->msr_syscall_mask;
>>      v->arch.hvm.guest_efer =3D data->msr_efer;
>>      svm_update_guest_efer(v);
>>  }
>
> ... your additions would want to move down here (and the other writes may
> then want re-ordering as well). Preferably with that:

Sure.

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

Thanks.

Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 09:30:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 09:30:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250919.1548253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0Fu4-0000pJ-Ar; Wed, 11 Mar 2026 09:30:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250919.1548253; Wed, 11 Mar 2026 09:30:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0Fu4-0000pC-8E; Wed, 11 Mar 2026 09:30:56 +0000
Received: by outflank-mailman (input) for mailman id 1250919;
 Wed, 11 Mar 2026 09:30: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=oqCu=BL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0Fu2-0000p6-Ql
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 09:30:54 +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 ffe58b4a-1d2c-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 10:30:53 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4853fd7b59aso18613675e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 02:30:53 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4854ad5416bsm30948735e9.1.2026.03.11.02.30.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Mar 2026 02:30:52 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ffe58b4a-1d2c-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773221453; x=1773826253; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FtsqVf6QKhpBEQjy6xK9B7TwWQyycFUwXYMJkg6Me0A=;
        b=UPCWk73r8TbAodFO5hlhjcDDhQ6wjIIbWJZYtUw98x6Tz8IbOyntw8OQlWLhKiKpSq
         +X2ZIQKo2vLZWdcVRiTEuep2ajcSzFVUzr6WZUjJ9HxsUA5mc5zG7qxRYUGu8xvC1/N4
         8fM3hHImOuIBdyCBf+sAUtRHRqaDQjLszpgyawiDWiCBOIgZLdRepIGnz0luvwzQ0bdU
         mh+yLVzNuMj6tXnGXy7Uo5U3cNLIQfVboeEJaZjHes0Ff+Bzpf3j7AemXQ0FZu4weUpi
         BV7/1oBfFA+aY+dzvGsG3egRun3K5LbE5Cid9RRP28Qbl00MTRUWmxN2ykgPKi0STNcZ
         BdDA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773221453; x=1773826253;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FtsqVf6QKhpBEQjy6xK9B7TwWQyycFUwXYMJkg6Me0A=;
        b=nMevP+O8IhA1HupmKO+MBh4QQjuRtMylT2c1x/gMir1Oi1SUtUl8zuPa9wpsrkXund
         T8SY23+lL9+znMxLubToStz7u0ZItJGWCiEr49/lbkgEhI7zC2Hu7kOA5WDLGApvL4HS
         OwiYYK13qB5fx6TG+ggDqkEqnxARbVFwHhYRGSgaL1SiTp5fnymE3sk4G5bGw7t2+R15
         6ZRuMqqrjfYtgFYkR/aKZtuYQu9eknx0u1neWz+aYnRyf7emUjwCejPzWnS5qDHf//cC
         8qh2RNv458EmfXK1/T+jvbJQw+zWkvBueFHFc+Tnj3BkZBhL+RogFfIccYdh1b8/Reim
         lOWw==
X-Forwarded-Encrypted: i=1; AJvYcCX/8mpr/KAu5KcdOwMIztkss7BM8vLFwwdNQmy1jWpm7rsWkdeFEOmmfqvC91friOaqgTFd5Gi4fl4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwvzQow522nThFyTT2NEjoKWWr7O265IUsxzu9ANN3rBrEbofR6
	13JNCNGLhvLx4UaX1pWrs6HlsmGWpb8UEhWQuYtUIKBZX6fBpneS2iXrmK1SilC2pQ==
X-Gm-Gg: ATEYQzwJK7f24i8Xo4g1RyWq5AtAa0N4vfgaWTpXhzB2PL3XA2l+fvb2nl8qk9DgEnz
	6q3DeGmSfdKIewtGepXL1yfZiRiPzloY15IQMefvnOnuLpnBRtK8G+ByQweL9DIz27iYMQBw490
	kvd4oFHwM9E+6YUqhB0LDKyYvmOcnHFOmI5TucFlNc9SII3i0EcsZGYuNx9mDt2etOvJue6iYlP
	jqeXJyphvEepca+zekqk6l22FDq383MOBeQZfravCK77DQsm6VcMFMf0/Gos4ttIWDfdEVfShZR
	KbDrZq2QslGq+tsEQu9v+ttRuzLgAxJWJ5yDWYS/PPGynbSyjOFRBd18E3zAQ7qQBfMN/6xs2st
	BR4SfB195Kl9DAShw3Hs3mu9k31OCAqs3wc4XnufZtt1Nv4f5youvnUxthf3GTShFhV637PV77f
	pvcprST/GrhMuNozsa+7ztdmDXrR7rrUMuWyttNGPHAv4n5bhHkpVcv+MlkNlIihSNIoxeR6WOx
	sVhW5fiRc+nCNk=
X-Received: by 2002:a05:600c:a404:b0:485:4bd1:4c64 with SMTP id 5b1f17b1804b1-4854bd14edamr22523395e9.31.1773221452944;
        Wed, 11 Mar 2026 02:30:52 -0700 (PDT)
Message-ID: <f5b74658-3a5f-47ac-8eaa-3f7fbf431a32@suse.com>
Date: Wed, 11 Mar 2026 10:30:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/4] x86/hvm: Disable cross-vendor handling in #UD
 handler
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260213114232.42996-1-alejandro.garciavallejo@amd.com>
 <20260213114232.42996-3-alejandro.garciavallejo@amd.com>
 <813d3fc9-170a-4f25-872a-3688946c236d@suse.com>
 <DGZUFMGSILDF.3ES3YACXM6AG4@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: <DGZUFMGSILDF.3ES3YACXM6AG4@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.03.2026 10:25, Alejandro Vallejo wrote:
> On Wed Mar 11, 2026 at 9:35 AM CET, Jan Beulich wrote:
>> On 13.02.2026 12:42, Alejandro Vallejo wrote:
>>> --- a/xen/arch/x86/hvm/hvm.c
>>> +++ b/xen/arch/x86/hvm/hvm.c
>>> @@ -3832,69 +3832,47 @@ int hvm_descriptor_access_intercept(uint64_t exit_info,
>>>      return X86EMUL_OKAY;
>>>  }
>>>  
>>> -static bool cf_check is_cross_vendor(
>>> -    const struct x86_emulate_state *state, const struct x86_emulate_ctxt *ctxt)
>>> -{
>>> -    switch ( ctxt->opcode )
>>> -    {
>>> -    case X86EMUL_OPC(0x0f, 0x05): /* syscall */
>>> -    case X86EMUL_OPC(0x0f, 0x34): /* sysenter */
>>> -    case X86EMUL_OPC(0x0f, 0x35): /* sysexit */
>>> -        return true;
>>> -    }
>>> -
>>> -    return false;
>>> -}
>>> -
>>>  void hvm_ud_intercept(struct cpu_user_regs *regs)
>>>  {
>>>      struct vcpu *cur = current;
>>> -    bool should_emulate =
>>> -        cur->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor;
>>>      struct hvm_emulate_ctxt ctxt;
>>> +    const struct segment_register *cs = &ctxt.seg_reg[x86_seg_cs];
>>> +    uint32_t walk = PFEC_insn_fetch;
>>> +    unsigned long addr;
>>> +    char sig[5]; /* ud2; .ascii "xen" */
>>>  
>>> -    hvm_emulate_init_once(&ctxt, opt_hvm_fep ? NULL : is_cross_vendor, regs);
>>> +    if ( !opt_hvm_fep )
>>> +        goto reinject;
>>
>> Is this possible at all, i.e. shouldn't there be ASSERT_UNREACHABLE() in
>> addition if already the check is kept?
> 
> It isn't.
> 
> v2 used to BUG_ON() at VMEXIT when !HVM_FEP and compile out this handler
> altogether, but Andrew was unhappy with it because he uses it occasionally and
> it'd be more of a PITA to undo the removal or force a HVM_FEP-enabled hypervisor
> for the #UD handler to be present at all.
> 
> I have no strong views on the ASSERT. It's not expected to happen, but I don't
> expect the existing conditions to change either, and if they do that will warrant
> a change in the handler too. 
> 
> If you want it I can add it, but if we're not killing the handler in release I
> don't think it's very helpful to assert/bug_on.

I see two options: Drop the if() or add ASSERT_UNREACHABLE() to its body.

>>> -    if ( opt_hvm_fep )
>>> -    {
>>> -        const struct segment_register *cs = &ctxt.seg_reg[x86_seg_cs];
>>> -        uint32_t walk = ((ctxt.seg_reg[x86_seg_ss].dpl == 3)
>>> -                         ? PFEC_user_mode : 0) | PFEC_insn_fetch;
>>
>> Why is this initializer not retained?
> 
> It is, it's just that the diff is terrible. An unfortunate side effect of the
> removal of the braces. The scope collapsing forces it on top of the function,
> before the emulation context is initialised.
> 
> It's set up in steps. walk is unconditionally initialised as isnsn_fetch, and
> later (after emulate_init_once()), OR'd with PFEC_user_mode for DPL == 3. See...
> 
>>
>>> -        unsigned long addr;
>>> -        char sig[5]; /* ud2; .ascii "xen" */
>>> -
>>> -        if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip,
>>> -                                        sizeof(sig), hvm_access_insn_fetch,
>>> -                                        cs, &addr) &&
>>> -             (hvm_copy_from_guest_linear(sig, addr, sizeof(sig),
>>> -                                         walk, NULL) == HVMTRANS_okay) &&
>>> -             (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) == 0) )
>>> -        {
>>> -            regs->rip += sizeof(sig);
>>> -            regs->eflags &= ~X86_EFLAGS_RF;
>>> +    hvm_emulate_init_once(&ctxt, NULL, regs);
>>>  
>>> -            /* Zero the upper 32 bits of %rip if not in 64bit mode. */
>>> -            if ( !(hvm_long_mode_active(cur) && cs->l) )
>>> -                regs->rip = (uint32_t)regs->rip;
>>> +    if ( ctxt.seg_reg[x86_seg_ss].dpl == 3 )
>>> +        walk |= PFEC_user_mode;
> 
> ... here.

But that's the point of my question: Why did you split it? All you mean to
do is re-indentation.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 09:47:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 09:47:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250933.1548263 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0G9f-0002ij-NT; Wed, 11 Mar 2026 09:47:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250933.1548263; Wed, 11 Mar 2026 09:47:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0G9f-0002ic-Jq; Wed, 11 Mar 2026 09:47:03 +0000
Received: by outflank-mailman (input) for mailman id 1250933;
 Wed, 11 Mar 2026 09:47: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=tK7a=BL=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1w0G9e-0002iW-1U
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 09:47:02 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3cc6c822-1d2f-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Mar 2026 10:46:56 +0100 (CET)
Received: from PH7P220CA0037.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:32b::18)
 by PH7PR12MB8013.namprd12.prod.outlook.com (2603:10b6:510:27c::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Wed, 11 Mar
 2026 09:46:49 +0000
Received: from CY4PEPF0000EE3A.namprd03.prod.outlook.com
 (2603:10b6:510:32b:cafe::5d) by PH7P220CA0037.outlook.office365.com
 (2603:10b6:510:32b::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.26 via Frontend Transport; Wed,
 11 Mar 2026 09:46:41 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CY4PEPF0000EE3A.mail.protection.outlook.com (10.167.242.12) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Wed, 11 Mar 2026 09:46: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; Wed, 11 Mar
 2026 04:46:47 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3cc6c822-1d2f-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=h/+Vh5vxcPm3l8Yi9/0YorOu59+YBnYLadj3O5OnrML1pCTeiZjT2IcT2S5hTLEwgvolc96cbwe/oKrX5ImjG670aMEv20ogHXmnSw+ZADUaZzixmQg48w5/CcnrVTj/NcsZlVRMTBe2ZrcAKYROvVjVQkTxW3jLOqtdphKSWrR+9Sn7C7krI05cuXI/4oz/c3//HcfLmy7Py/RAfHCkIOtUTFjds9D4YpwvpAy7wH4XQS74073ZvG7LOYmNPhlfzDdFvPKAB72Yd+MUz5mAzY5PiIkCMWguQm6TnNPqMPO6V5eFaJ3AeRLychvdYGjdHvPMKnBY3uXTKGyC/nBK+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=ghnJIzHCBfPPb7PJGOHx3Jgoqqxk8PgvNWQy+vwhnPM=;
 b=R8YJ9cyZ5DdklpVUy3Y+g2Ke7+hZDgCkh6i6uQJtKsFTWCXKdUCoQj87D0oap4g9fHX9lBx6ikEwQrPMKreSUc3LCZcwcsQ0uDiQDy7i2VNKshXbDpf+rnADFvTf6M2w0+oemSNS5dhUWMfIBQk5hvvKGA8ntOwvTePDrSjwxWfAojsukvo2gBIoqdusCaosMo+Sa29aah8hARouCtPoy12BZGjBQpCZhXH+L/6OTidA3+M2aRZs9MahP+gZHRNAgK1mkj1dHLDcdkE9TsbgrhBsn0dHyyXOSxxJyDNd9kgb2Mjz9P6WmgTK45UrSQt/YG5iIStowpJ2w8gvEvVcOw==
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=ghnJIzHCBfPPb7PJGOHx3Jgoqqxk8PgvNWQy+vwhnPM=;
 b=AyuxDHYLQ4bEyhI6p47UgscLh5DhSEpPyT/goIGSa9cMSbrIuAu2VMYzzOFygxjQgnXFeGAQaEBC4qCNmZOSsyMyUoH6NtczPPbsOwCXvE46x0+TTpy+H1hj8Z+jVpRvNwdOlXKCGKTy/ynRPJwlNecDGjvMCgwQGYqdSpiGuD8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 11 Mar 2026 10:46:40 +0100
Message-ID: <DGZUVOWBI677.1QXF8LMTNO886@amd.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>, Community Manager
	<community.manager@xenproject.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jason
 Andryuk" <jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3 0/4] x86: Drop cross-vendor support
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20260213114232.42996-1-alejandro.garciavallejo@amd.com>
 <7973d3d1-8984-421f-88db-ca17ea3cb2ac@suse.com>
In-Reply-To: <7973d3d1-8984-421f-88db-ca17ea3cb2ac@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: CY4PEPF0000EE3A:EE_|PH7PR12MB8013:EE_
X-MS-Office365-Filtering-Correlation-Id: 9d0a625f-3357-47af-1697-08de7f531dd5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700016|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	lh3WvbS/RPgecNaSYP7Vs8rWcnRHHIrQURA78j5L+ZmNqDJwOBgF34ld1TxHOzgIG8QSKyoB6G/jqAreTFMvx5fRZdCj/XR0ukKnt3VQnmc/wNUYuxoEgPyjeScqXwX3kBWv3NvFkvG/BA/1E3cRllczHgc15gtut6zrePFUVDH5p4WIPutsfAwzG4HsWI1RVL5hOkVt51QqbfjLIRGuEKS0A2OPpxQaehYClWEHnY55Nb+9Nr1ZtgS0UCelOwwd8oUQMzUFw/tMyTmxgRk6Fs8JlYdubmYyFq0B1QgV0FdLNJvwn4/vZggtKMd4WeZUIa4gLq58a+L6mnS0QOzJ197gjEln/eWRpMrhTquW4tU71o8yABbBxKfZxo+b5obnbR0KIJGLptM3LJ85wong3kDgCGAHJ8FI3tMeEIlK+4bomJtcQuCZG8llzJEiZT2XE2U32jltbTnEeL84Pa0WNRZ82JZRCXFG+PLc44dPxA4HNzMRTQ8J7xALUco3XRDblcp+Y4lXLefKeC1EBRvszUqo8AFuYoWjGC2zSRNJfz26/nA6W5Twyf5K+5+KyIKbfB+on8/XD0YgvQ1zwcSVM4loxaqldsmlVotXt/xnv54JBbBchIOgCLdau+7B0rZiEd74ionTZkWkHmxEp0DMjfrI3sgswI4iU8EY9e2gjMlUh4nMPpcHgZd/uMt5GwQ5YMY6omRn2N6f6mg7WylRFiA5+wxxMy0ENbSksXm21QeuK4pJUuS1ElWi0o6rMNLUBYq8xwNp9JKe9E12bjo6KQ==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700016)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	bUUMAh1dH4u+Sb5EpNwFzxmR0mfHAJ36DEm+PQVWrqNzpgm7oToK3oD/qgSb19O5bIUtT4vDWUiQbxeZYkXiMV9xbXSLoIOhXtme4y4eyHh6QULNVJegrZdHXet6J8JJtreAVWZR8RtESXqbbaX9KPYQsORG6hHdKSkEKsu8xiICBOU6BMiYCEuvb0aVSsbnZOKyqrFXOA7nqqw1Kgixm1llEiwfzB9x/eSuHqB9g2o6mUE4BbWXcI8o3Odo0S1RDifRzTejN+GoOWh6OdGBUTdmpAezHrxhJevE894w4oPyrldKpmfW6EaljtkWh2gd665xToA+SOMJ6z2zEq6r7pOLYUT5LJ0THBWpElUawij/19BukHkC8CKj7T7v7NlQk0FP+nzr+BhA/N192n59f65Kq4yVrry3e/r0QNEVP55e/vNRooJKWLMKLKIdPD46
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2026 09:46:49.1815
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9d0a625f-3357-47af-1697-08de7f531dd5
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000EE3A.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB8013

On Wed Mar 11, 2026 at 9:54 AM CET, Jan Beulich wrote:
> On 13.02.2026 12:42, Alejandro Vallejo wrote:
>> Alejandro Vallejo (4):
>>   x86: Reject CPU policies with vendors other than the host's
>>   x86/hvm: Disable cross-vendor handling in #UD handler
>>   x86/hvm: Remove cross-vendor checks from MSR handlers.
>>   x86/svm: Drop emulation of Intel's SYSENTER behaviour on AMD systems
>
> With this, do we actually want to keep emulation of SYS{ENTER,EXIT,CALL,R=
ET}
> in the insn emulator? Or at least gate that on e.g. VM_EVENT, to still al=
low
> its use by introspection? Whether to then also permit those with HVM_FEP=
=3Dy
> (but VM_EVENT=3Dn) would be a follow-on question.
>
> Jan

I can force emulation of anything by writing an instruction to an xAPIC reg=
ister
followed by RET and then CALL-ing it that address. If we want a hypervisor
capable of running such ridiculous cases the emulator must be complete. If =
not,
the question is what to do otherwise. Inject #UD? Crash the domain?

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 09:54:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 09:54:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250942.1548271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0GHD-0004KP-Dc; Wed, 11 Mar 2026 09:54:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250942.1548271; Wed, 11 Mar 2026 09:54:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0GHD-0004KI-B1; Wed, 11 Mar 2026 09:54:51 +0000
Received: by outflank-mailman (input) for mailman id 1250942;
 Wed, 11 Mar 2026 09:54: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=ae2Q=BL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w0GHB-0004KC-Sl
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 09:54:50 +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 566cc743-1d30-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 10:54:47 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-485409ab264so5572585e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 02:54:47 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4854a18ddedsm40124975e9.0.2026.03.11.02.54.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Mar 2026 02:54:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 566cc743-1d30-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773222887; x=1773827687; 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=k+RAOTjCwTLNedTNd0e/9yvXBzGGNZlJbi2KI22185o=;
        b=fVm/C5JLhU53g+B3dEIv7mFroL/Ys+AoMkcfS/MzuRCLNUZCuItQofvDufTsXX4k8e
         hEtRcAV2LQgz2ml/gq5GtezusVXRlztBFjdthitGX2J7dJgAalo7HudnUIq5fVK8x8wv
         CCZwV3KiRjbn8WIthTQiBuw2U3iTsxm76jfaBhNETEoVoeIvpTt22y9VPNoiMyd5yNia
         LAkuR7Mg97+XD0SYf7+NuBagEdSYSHE+fL8dSVG4cz7BZSlms5XQC74ABYHW5wBm4NgN
         /qhK7hYQqge3OrYNwfHA2iaif17nrfvh0mikxVAov5xm8Y6s5o5k6Uw8Rad3tN3QY2kj
         pV9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773222887; x=1773827687;
        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=k+RAOTjCwTLNedTNd0e/9yvXBzGGNZlJbi2KI22185o=;
        b=DyVrZz/NLXgy1DYxEA8ZWwVBNoFr0MhD8MJ2BZKY0y1KS4IcoMUb9C4dwMPwJgOZTK
         8R9IDit0Vt5aNqje7dFek3eEaQ+asUJukwtuLoiW0PQ4dkphkR6ulnP8sTrgBcrDIdKk
         1hHke+haTblF1ZRBV0oIs6cU3QP6kN1BkMGZeFCuaxMHQW463Xu5CP3bhP0A8OwpoSbY
         KMCo/tC/ZH5e7VjCDGNU5AyQKymRzLcYWTpAWSbPUjopIa/Htx7OnYLUBa12L9TFxZbh
         I7uvWZ6LhHejZrgeiOYzDYyuvrNrmdohhW8T8n6OVmeAd7M9HQmJzLk7in3akINUVOHR
         KAQw==
X-Forwarded-Encrypted: i=1; AJvYcCUdLr71MVzrgo7djn8AM84/GmbRnbJysnGTqxiN9uyvmysB4NkQkiG047mNQdATO5qD/fVq+iqZlYA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywp6aTvxQFG9tY/9vGFhn5yxqjYf93HuSL7xhmS4Zz/XXdeEcFP
	TAlZXGGc/yz1M5V/eCL6FWZetK9xh1t8Y6rPvJ8xegzviA9VLRvfAsp2VBVi5t1r
X-Gm-Gg: ATEYQzzG3h7QptOuoJqpHBS3LUhF0C92TXb3Qtxjk2TB9GDrcbDIHJhpL2llIwgF5iF
	mEWxoIkdnpCA31mKwA9ZXDx4P9FUeplBmEXNKGm3F86HnCZ6L4cFZPhwxbU8Uf0Zaig0pcbtgmz
	XiIYjkoifCYk3AjBa1jxBvDV5dMNk5SDm874Wltu/Ri51qh1RjS7dHVZs+7w4Hkrn5U/3KQdVUf
	Opr0+HAxSa/HVU/8MEW4U/QV8Hjc4BFlTBEJMAJHLyn5vvjNtSTwa0E4WXRfuFEe+KvXxhEt6sE
	D4pD0b9ujaCV1VM1G8jSxl4J1ND/m2CRwbmioywRXdZl3c24YldkDxmOhCAatYytT1TakmG+DeO
	/RitAZT6sMmSqJgEpkDlqv5UhWHwSldNsJmqaB2MNr3UXOdl4WqibB8OPrt7hoyqxAV8CtaOMHl
	7Z8hUSddEBEUAEy+N4U0rIGXVjj0eBwGmsn7lEW6qn8JKQpohMaP56vtwFOoxQ9xHV1dfhdcg2V
	BY=
X-Received: by 2002:a05:600c:a46:b0:47e:e59c:67c5 with SMTP id 5b1f17b1804b1-4854b25ab04mr25355385e9.8.1773222886218;
        Wed, 11 Mar 2026 02:54:46 -0700 (PDT)
Message-ID: <e0a891c4-3283-4e1b-81e4-f2b4bb62b5fa@gmail.com>
Date: Wed, 11 Mar 2026 10:54:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v7 14/14] xen/riscv: Disable SSTC extension and add
 trap-based CSR probing
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>, xen-devel@lists.xenproject.org
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
 <f7b30c80eabd3ba371a0d541e3be023314ec37fd.1772814110.git.oleksii.kurochko@gmail.com>
 <9ff93ad1-0151-4f37-a6c2-f7dd4197ca84@suse.com>
Content-Language: en-US
In-Reply-To: <9ff93ad1-0151-4f37-a6c2-f7dd4197ca84@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 3/10/26 10:15 AM, Jan Beulich wrote:
> On 06.03.2026 17:33, Oleksii Kurochko wrote:
>> Some RISC-V platforms expose the SSTC extension, but its CSRs are not
>> properly saved and restored by Xen. Using SSTC in Xen could therefore
>> lead to unexpected behaviour.
> And what's wrong with (or what gets in the way of) adding proper
> saving/restoring? Also, wouldn't a guest use vstimecmp anyway? I.e. what
> saving/restoring are you talking about here?
>
>> To avoid this in QEMU, disable SSTC by passing "sstc=off". On real
>> hardware, OpenSBI does not provide a mechanism to disable SSTC via the
>> DTS (riscv,isa or similar property), as it does not rely on that
>> property to determine extension availability. Instead, it directly
>> probes the CSR_STIMECMP register.
>>
>> Introduce struct trap_info together with the do_expected_trap() handler
>> to safely probe CSRs. The helper csr_read_allowed() attempts to read a
>> CSR while catching traps, allowing Xen to detect whether the register
>> is accessible. This mechanism is used at boot to verify SSTC support and
>> panic if the CSR is not available.
>>
>> The trap handling infrastructure may also be reused for other cases
>> where controlled trap handling is required (e.g. probing instructions
>> such as HLV*).
> Hmm, won't you need a more generic way of dealing with traps anyway? See
> Linux'es _ASM_EXTABLE(). See also comments further down.

At the moment this approach works for me and I haven't had a need for more
generic approach. I will look at _ASM_EXTABLE(). I haven't checked yet but
I assume it will require some extra fixup code in trap handler what looks
like over complication for the current case, at least.

>> --- a/automation/scripts/qemu-smoke-riscv64.sh
>> +++ b/automation/scripts/qemu-smoke-riscv64.sh
>> @@ -7,7 +7,7 @@ rm -f smoke.serial
>>   
>>   export TEST_CMD="qemu-system-riscv64 \
>>       -M virt,aia=aplic-imsic \
>> -    -cpu rv64,svpbmt=on \
>> +    -cpu rv64,svpbmt=on,sstc=off \
>>       -smp 1 \
>>       -nographic \
>>       -m 2g \
> How does this fit with you panic()ing when SSTC isn't available (i.e. the
> register cannot be read)? I must be missing something, likely a result of
> me not being able to really understand the description.

When SSTC isn't available my panic() won't occur and then will continue to
be executed. Otherwise, when SSTC is enabled (it is enabled by QEMU by default)
my panic will occur.

>> --- a/xen/arch/riscv/cpufeature.c
>> +++ b/xen/arch/riscv/cpufeature.c
>> @@ -17,6 +17,8 @@
>>   #include <xen/sections.h>
>>   
>>   #include <asm/cpufeature.h>
>> +#include <asm/csr.h>
>> +#include <asm/traps.h>
>>   
>>   #ifdef CONFIG_ACPI
>>   # error "cpufeature.c functions should be updated to support ACPI"
>> @@ -483,6 +485,7 @@ void __init riscv_fill_hwcap(void)
>>       unsigned int i;
>>       const size_t req_extns_amount = ARRAY_SIZE(required_extensions);
>>       bool all_extns_available = true;
>> +    struct trap_info trap;
>>   
>>       riscv_fill_hwcap_from_isa_string();
>>   
>> @@ -509,4 +512,9 @@ void __init riscv_fill_hwcap(void)
>>       if ( !all_extns_available )
>>           panic("Look why the extensions above are needed in "
>>                 "https://xenbits.xenproject.org/docs/unstable/misc/riscv/booting.txt\n");
>> +
>> +    csr_read_allowed(CSR_STIMECMP, (unsigned long)&trap);
> Please avoid such casts; see also below.
>
>> --- a/xen/arch/riscv/entry.S
>> +++ b/xen/arch/riscv/entry.S
>> @@ -99,3 +99,27 @@ restore_registers:
>>   
>>           sret
>>   END(handle_trap)
>> +
>> +        /*
>> +         * We assume that the faulting instruction is 4 bytes long and blindly
>> +         * increment SEPC by 4.
>> +         *
>> +         * This should be safe because all places that may trigger this handler
>> +         * use ".option norvc" around the instruction that could cause the trap,
>> +         * or the instruction is not available in the RVC instruction set.
>> +         *
>> +         * do_expected_trap(a3, a4):
>> +         *   a3 <- pointer to struct trap_info
>> +         *   a4 <- temporary register
>> +         */
>> +FUNC(do_expected_trap)
>> +        csrr    a4, CSR_SEPC
>> +        REG_S   a4, RISCV_TRAP_SEPC(a3)
>> +        csrr    a4, CSR_SCAUSE
>> +        REG_S   a4, RISCV_TRAP_SCAUSE(a3)
>> +
>> +        csrr    a4, CSR_SEPC
> Why read sepc a 2nd time?

Because a4 was changed, so it should be re-read, but we can setup CSR_SEPC before a4
being changed.


> Yet further, what's the point of storing the value
> in the first place? The sole present user doesn't care.

I needed that initially for debug. And also it would be useful for trap redirection
for example, but it isn't a case now. So for now I can drop that.

>> --- a/xen/arch/riscv/include/asm/csr.h
>> +++ b/xen/arch/riscv/include/asm/csr.h
>> @@ -9,6 +9,7 @@
>>   #include <asm/asm.h>
>>   #include <xen/const.h>
>>   #include <asm/riscv_encoding.h>
>> +#include <asm/traps.h>
>>   
>>   #ifndef __ASSEMBLER__
>>   
>> @@ -78,6 +79,37 @@
>>                              : "memory" );                        \
>>   })
>>   
>> +/*
>> + * Some functions inside asm/system.h requires some of the macros above,
>> + * so this header should be included after the macros above are introduced.
>> + */
>> +#include <asm/system.h>
>> +
>> +#define csr_read_allowed(csr_num, trap) \
>> +({ \
>> +    register unsigned long tinfo asm("a3") = (unsigned long)trap; \
> Why can't this variable be of the correct (pointer) type? This would then
> at the same time serve as a compile-time check for the caller to have
> passed an argument of the correct type.

Good point it could be an option.

>> +    register unsigned long ttmp asm("a4"); \
>> +    register unsigned long stvec = (unsigned long)&do_expected_trap; \
> Fiddling with stvec may be okay-ish very early during boot. NMIs, for
> example, do exist in principle on RISC-V, aiui. There must be a way for them
> to be dealt with by other than just M-mode.

Do I understand correct that your concern is about that if NMIs will be handled
in HS-mode that switching stvec in this way could be dangerous as do_expected_trap()
doesn't know how to handle NMIs?

If yes, then NMIs should be handled by M-mode as:
   Non-maskable interrupts (NMIs) are only used for hardware error conditions, and
   cause an immediate jump to an implementation-defined NMI vector running in M-mode
   regardless of the state of a hart’s interrupt enable bits
and:
   The non-maskable interrupt is not made visible via the mip register as its
   presence is implicitly known when executing the NMI trap handler.

So standard delegation registers like mideleg do not apply to NMIs because NMIs
are not visible in the mip register.

I haven't found in OpenSBI how they are explicitly handling NMIs, but it looks
like if they happen in (H)S-mode or (V)U-mode then they will be just redirected
to (H)S-mode or V(U)-mode:
   https://github.com/riscv-software-src/opensbi/blob/master/lib/sbi/sbi_trap.c#L361
And then do_expected_trap() will fail to handle them...

Interesting that other hypervisors are using the similar approarch (with temporary
updating of stvec) and they haven't faced such issue with NMIs yet...

>
>> +    register unsigned long ret = 0; \
>> +    unsigned long flags; \
>> +    ((struct trap_info *)(trap))->scause = 0; \
> "trap" would better be of the correct type. Don't use casts like this, please.
>
> Further, wouldn't you better set the field to a guaranteed invalid value? 0 is
> CAUSE_MISALIGNED_FETCH, after all.

I don't see that such an invalid value exist for scause. I think we have to reserved
a value from region 24-31 or 48-63 as they are designated for custom use.


>
>> +    local_irq_save(flags); \
>> +    asm volatile ( \
>> +        ".option push\n" \
>> +        ".option norvc\n" \
> Shouldn't this come later?

Do you mean before where SSTC csr is really tried to be read ("csrr %[ret], %[csr]\n")?
Does it really matter in such small inline assembler?

>
>> +        "add %[ttmp], %[tinfo], zero\n" \
> Why "add", when you really mean "mv"?

I think it could be "mv".

> And why set ttmp in the first place, when
> that's what do_expected_trap() writes to?

To force the compiler to materialize tinfo in register a4 (ttmp) before the
trap handler runs as handler will use a4 as temporary register.

>   Don't you really mean to specify "a4"
> as a clobber?

Good point. It makes sense. Likely it can updated to:
   ...
   mv a4, %[tinfo] ... : ... : ... : "memory", "a4"

>
>> +        "csrrw %[stvec], " STR(CSR_STVEC) ", %[stvec]\n" \
> The assembler does understand "stvec" as an operand, doesn't it?

I haven't tried... I'll check that.

>
>> +        "csrr %[ret], %[csr]\n" \
>> +        "csrw " STR(CSR_STVEC) ", %[stvec]\n" \
>> +        ".option pop" \
>> +        : [stvec] "+&r" (stvec), [tinfo] "+&r" (tinfo), \
> tinfo isn't modified, is it?

It is modified by handler.

>
>> +          [ttmp] "+&r" (ttmp), [ret] "=&r" (ret) \
> ttmp isn't initialized (in C), so the compiler could legitimately complain
> about the use of an uninitialized variable here (due to the use of + where
> = is meant).

ttmp is modified by handler too.

>
> Whereas for ret the situation is the other way around - you initialize the
> variable, just to then tell the compiler that it can drop this
> initialization, as - supposedly - the asm() always sets it (which it doesn't
> when the csrr faults).

It was done in that way as when csrr will lead to a fault, handler will jump
over the csrr instruction and so ret won't be set at all. For that case it was
set to 0.

>
>> +        : [csr] "i" (csr_num) \
>> +        : "memory" ); \
>> +    local_irq_restore(flags); \
>> +    ret; \
>> +})
> A macro of this name would better return an indicator of what it is checking,
> rather than the CSR value (which the sole user of this macro doesn't even
> care about).

With the current one use case it doesn't care but generally I think that someone
will want to use this macro just to get CSR value. I don't have a speicifc example
but still it could be used in this way.

> Ideally such would also be an inline function.

I thought about that but I had difficulties with csr* instruction and their second
operand which expects to have immediate. But if I will have inline function that
csr_num will be in register.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Mar 11 10:11:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 10:11:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250953.1548282 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0GX3-0007Cz-NM; Wed, 11 Mar 2026 10:11:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250953.1548282; Wed, 11 Mar 2026 10:11:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0GX3-0007Cs-IS; Wed, 11 Mar 2026 10:11:13 +0000
Received: by outflank-mailman (input) for mailman id 1250953;
 Wed, 11 Mar 2026 10: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=oqCu=BL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0GX1-0007Cl-UN
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 10:11:11 +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 9fab059d-1d32-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 11:11:09 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4853aec185aso29201795e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 03:11:09 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4854b5e92d5sm40354145e9.1.2026.03.11.03.11.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Mar 2026 03:11:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9fab059d-1d32-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773223868; x=1773828668; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8VSPL9pI0r/nB6HnC2XdlimUBaQh2F+tmXvni44X9HU=;
        b=GzJ/Mwc+ZZyI1ueebYXGMJNXNDOzyrJVMAhsAhOg5Jx93i74kArTq4K3mK+nYHcfQR
         EzBAGOwg9jhVVzdF9zKxVSuebrf260TE1Y3wBOjj0qi7USvzNmNMb5J5o4seH/BelT6u
         VEWO8rno+92TBIrzYvnLwk4/2qIoDEO0piDnGuWc1MafQc/j/K+VWavIXw2kf+L3uuNX
         JeUXSN3NcaHMJXfcbjK+TeUR25xal2ON5etTzyJd5CNONClhRBHhGskK5izBLB0ZLnht
         oCIRNbA6wZ1xmkFNfegZ6UE5q0LzsrvM+WKg4+r2DeaO1coW/K/Qd6pmLDP7KxviiLbP
         vUVQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773223868; x=1773828668;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8VSPL9pI0r/nB6HnC2XdlimUBaQh2F+tmXvni44X9HU=;
        b=OYkUV7wGexw5uHQmYqX5TQ8mzLxxGLn+YGJxClnAtCgMli1Xzn1b2wTLc2YMuWb/Rz
         LEtIG047+wslEGFfV566UM4w2xC8QLeUaZlP8d0yn/U+mT/DOY868U7WDWCGza0Ce5P0
         sLaS+6eoXgb2PXtrMGrx9Z6SBfS5+U8E4ZMK1S/eAWcCsUIdh9z/dqCTsbJmnvof2Smm
         acOC6oE9BzprUUKLqOcu09KbZ7z1+/rRP1qt/0nX8yoRS0uusuMjYpm8fDkXdMTuWpBS
         MC0MQjD86lWaX+H/2BKjVKSWFPKipEzWK1SeeXcrIsJWlceZNwh2fh1fTI3wG8kjrfju
         e4DA==
X-Forwarded-Encrypted: i=1; AJvYcCX4yW37p+6OAN5GBeHEQKMnFGxQMveBSjpSQ2wn2mUGtEizcGeBeCky7wSg/a9KuWVD8W7GgOCYh/0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwnQUi9L7D5WWnkyJAPQzU1WB+G8jpm8JWoAlmPawaEP5cFZgwP
	Q9XipdJtx9HbDfQT9HfhT8S9CTdocKMc+q0OhhGev7VDqsXpl2sPdF6xmZjlE3TyaQ==
X-Gm-Gg: ATEYQzyylRrYGk/pi6di7kyBfq9BnJC7hqtjM1IcZxXH6rmn0xS+ljCSVuXKDw7rz0I
	8Wknbzqq9ThXQm03qEoANKlM7r5xUe3TMyXOOFybxOs5Pnlfa6Ri9WVBoBnM/Of5axY5UvjGLYr
	YD4UcIDswLCnPUDMGcJtzyYUhgvZAGsLQIg4XHvT3ZDPwQ9qYM7TD2K2DSFw0g10FaOaE3ZIKGN
	bOphaaBOhrMXT7E7JQfFLV8wMtWBzj2FJTYCys4DCg4YR4d4prLh+Pg4XB/NqDdBQuv72zWkNlX
	8SQgYeRbrrYYgYpv0jZjQaDNMw/HE05Xq2uDpWKZdfZffcFoDcS3YgGgTCoh4LA0apNEHV9/gZz
	X3KNBvY4hB19bCiaSfwne4nQyYeU/iw7zAd48Z6hE10yXOOju8Itv+voGBSBzGxCEaBp+TdiJJ1
	J3HALuFjpeVyRUCTC9VHCjkbp0QTIafoQ7yuJs6Qmj2BA7QV8eRy23MG1t87MwTH2NWuZs3H24U
	nIvTt+TCwTLXag5lEknf4hChw==
X-Received: by 2002:a05:600c:3511:b0:485:3dfc:57a with SMTP id 5b1f17b1804b1-4854b134942mr31551655e9.32.1773223868541;
        Wed, 11 Mar 2026 03:11:08 -0700 (PDT)
Message-ID: <bbbb443d-a5c8-43a3-9caa-8dac1e332fb8@suse.com>
Date: Wed, 11 Mar 2026 11:11:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 0/4] x86: Drop cross-vendor support
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260213114232.42996-1-alejandro.garciavallejo@amd.com>
 <7973d3d1-8984-421f-88db-ca17ea3cb2ac@suse.com>
 <DGZUVOWBI677.1QXF8LMTNO886@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: <DGZUVOWBI677.1QXF8LMTNO886@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.03.2026 10:46, Alejandro Vallejo wrote:
> On Wed Mar 11, 2026 at 9:54 AM CET, Jan Beulich wrote:
>> On 13.02.2026 12:42, Alejandro Vallejo wrote:
>>> Alejandro Vallejo (4):
>>>   x86: Reject CPU policies with vendors other than the host's
>>>   x86/hvm: Disable cross-vendor handling in #UD handler
>>>   x86/hvm: Remove cross-vendor checks from MSR handlers.
>>>   x86/svm: Drop emulation of Intel's SYSENTER behaviour on AMD systems
>>
>> With this, do we actually want to keep emulation of SYS{ENTER,EXIT,CALL,RET}
>> in the insn emulator? Or at least gate that on e.g. VM_EVENT, to still allow
>> its use by introspection? Whether to then also permit those with HVM_FEP=y
>> (but VM_EVENT=n) would be a follow-on question.
> 
> I can force emulation of anything by writing an instruction to an xAPIC register
> followed by RET and then CALL-ing it that address. If we want a hypervisor
> capable of running such ridiculous cases the emulator must be complete.

Well, yes, hence the question. Or in other words: Do we consider completeness
important for these insns? (There are others we don't currently support.)

> If not,
> the question is what to do otherwise. Inject #UD? Crash the domain?

#UD is what I think we inject for anything the emulator can't handle.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 10:15:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 10:15:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250964.1548290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0Gb9-0007ob-AT; Wed, 11 Mar 2026 10:15:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250964.1548290; Wed, 11 Mar 2026 10:15: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 1w0Gb9-0007oU-6X; Wed, 11 Mar 2026 10:15:27 +0000
Received: by outflank-mailman (input) for mailman id 1250964;
 Wed, 11 Mar 2026 10:15: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=uiKz=BL=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1w0Gb8-0007oO-JM
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 10:15:26 +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 3801633d-1d33-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 11:15:25 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS1PR03MB7967.namprd03.prod.outlook.com (2603:10b6:8:21a::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Wed, 11 Mar
 2026 10:15:16 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9700.010; Wed, 11 Mar 2026
 10:15:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3801633d-1d33-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fpmjAZFGQ8nh6BrKPd9Wx3zZgllAPTLXvxylTCl77PHD9diK/RnKH6eDIlhEtPMmWoD20Y2MvjBbfljIZKArmSTEYHrJpr95fVs8yFEepY4HPhtTUPNUCxPcnGYRwPWBoRVym7P/3N9BamfGB5/CY7t7lAFY5tXQOtoM/v/kkEuioID5Rf2uEPDol97ljc0ym7JjOgb7ORBChycWYmjVFOIfIZ8MU0cawoC/C22Xidh/Xg5P53CYGyS4xGQg/KM4dp1YX9dM8y4Isz+SBKLZiO6YJ73RZYzMGls4vZmJhspDEYi8OxQEkEndXwbRbge/rtL6EkBQq7y/brtwHUy8PQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qLeHjcuf0axcx/3i4OcLup/yoCifknUICWtiIky+Nqk=;
 b=tAh2F7Cqpa+W7CZNOPZJ/HMDEaqCk9u5IcBX+ogogIdh3EsG1qVmP03xaHM7/rWpPmE/d55Jo1RWdJWkkhV36b4JexAxlPWeOlrEThXaCgf/5blPljm3WtCA/c5GVRl4a4DAiLHQEpGuhpSXrCpyRCor/Yd2EFAq/ypAD9I3ST8l3lXfblVJFHfhN5xlVkU9SKTjT9W1RvJclEpZDSgqkkVBRE/5T9HKIX93KtX+QVDjF0EPt+dG+U9cGLpCGz6yr1ubgmKAm5nZW7dI/MDN2Dtf1ITOtkKR11uAHfR/p6y8Xm7Q87MoSJ4jzuinAf9ai/m9fXpQLWrOJy+ucKi5hg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qLeHjcuf0axcx/3i4OcLup/yoCifknUICWtiIky+Nqk=;
 b=Y98Swxy1Ci1d7hoVS43QpjVZjgN4HNmR4lKtHZ9j1HkVtiT6RiB0lc0zebOJt4Ya5huAKhDM3sLfynk1AJStrnGFRXoYfIHkaGcePjnj9OUcxfbC3FWWHf7WQXag1eC4f03OfUUN1xcrA3YbtLpl0sV0w7G/YiZsM6jypDZdwZM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 11 Mar 2026 11:15:18 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Julian Vetter <julian.vetter@vates.tech>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Juergen Gross <jgross@suse.com>, Julien Grall <julien@xen.org>
Subject: Re: [PATCH v3 2/7] x86/msi: Define extended destination ID masks and
 IO-APIC RTE fields
Message-ID: <abFAtgmM_rEhn4zQ@macbook.local>
References: <20260309123055.880050-1-julian.vetter@vates.tech>
 <20260309123055.880050-2-julian.vetter@vates.tech>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260309123055.880050-2-julian.vetter@vates.tech>
X-ClientProxiedBy: MR1P264CA0049.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3e::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_|DS1PR03MB7967:EE_
X-MS-Office365-Filtering-Correlation-Id: 3919a747-3908-462a-4603-08de7f571a89
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	JZ/EJy3AJRSdieos00qLtMviMbWALaet+/uaaRAtAx741tQF8dJRPw4ZDx214Oj9smcOhUShArvdjneJNLiUxSLwUE64Q6q5klX4HrJ79arKGTXJU7uQFaJQh8GNNbktJH3MoMTm86LeA9SN2FM1nfsrUo3zxlzlQWsWq1mut0Biz+njwPZjpE+EHLKy4IG49Q/pbonJg69s2P2bYkqwXX/6ynBCBtBV/7k9pMCAXxRx5y897rpSZ873IVA0QYAcAMsO3um4JdKYoskcSeIpsYdk6OGM8pLO1bR6iC336H6Zgf8PsVJNpLfK4qMn2einRiuMcjf4ok3nml/oEF9zRgpVEZH1KGoryFocakFg8q973sR7wH/L9THeyxmIKJleaz8h2IZ2js8rvzlGUkDu8QCHvkJlyNVoOIve43HMVPASJWIPAzrMwkBhCLeyE6lfjlS8GxPuTTXzkT+jaPqY68dAeKVS4KmZui2fdKLT9HGyrxt8uLjcbkaQlkU3gb2kLWvkcCkLxeroBiWDquSBGLadjy79S2qsAsTJMLuo4WsTeghpWVenfWV5Z0RzA62JU9dDYgpqSEtVmR5pk9NlGUEB99dpOfRS0uDMEthz4cS8AGtFZ6Dt7gk7PIzYp+nmIbxFkS1l1+uW+fepyuzupadblpkLBxKNbvZPiNoclzTSGgzGWjvHkbMA68XBfAoTuhLDJTS7IZ3fQQlHKy5PpE69F6S32P1M2EzV3TDvi3w=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MERlemtJQVFUZFoyeFdpaG95OFozdm5hY0VqOVR1b2k4SEFhUTFQWEd1M3Bq?=
 =?utf-8?B?OEpsQkJIaUJFc1paMXppQ05nTm9FNUhvQjdxQ3g0eHRrc1dqMjF0V2ZCTkd3?=
 =?utf-8?B?amZrcVFXTlBmbThZaVJDOFJ0UmdpM3orU0hSbE94MkdtYXpWSjhSYmY4R2hn?=
 =?utf-8?B?YmdLUm5hUVB6cko3aW5xWlpzTGRhQ2hLazdkSWhrMnl5c0paUWI3TEg5NnAw?=
 =?utf-8?B?bkMwMjJ2bnBwZm1mNWg0UTdLU2hRR0ZaQmpaeUxJM29Jb0VyRytEWkd0dEdw?=
 =?utf-8?B?R0tsamF5OTJSelRGMUFSa2dBaUN3dEhnNGUxOHdFa3RMZWk1ZUR3cWUyNTB1?=
 =?utf-8?B?aUZLdE1jR1hxWkF6dHJYbnNPdnlFTGlkNkJyNXQ1WnpJdDJrZ0xiWmRxSUc4?=
 =?utf-8?B?T0YyZFV6WHJlaE9nRXRPUDRDK3p1QXpsaWJWK3hEUmJjK2ROTDAxWEpLTGFj?=
 =?utf-8?B?QVJHU2Z4TWhuZW43dUZYcXlEeGg0M05sTkdUcHBQd1hSNmM2QVd6cUQzcFAw?=
 =?utf-8?B?bFFrWmZtTHhYUmwvTFE4MVRtaENCcEc1WGxYcEwzN09XM3hVSnNoSTVoNHVh?=
 =?utf-8?B?N3E1bU1UeUlLY1JYcEN3dThnOThnRVVrbklZYy9DZWMzQ2ROUmw5dDV3UUFy?=
 =?utf-8?B?K3dUWHJHYjlvbGtXNEwxdURCNHNyOTNXeEppN0pzazRkOUNzb0JGZlhiYVVS?=
 =?utf-8?B?UXgxeTBOa0lMcEdOUTJpQVZOLyt5VmIzb3g0VER0NnF5Y1JKWjFQUFhTZmJX?=
 =?utf-8?B?eWdDa2tsNURyNnllaHk4alhqbTdlM2o4eTB5UGF3VGJnWjByUUFlT00zSk5E?=
 =?utf-8?B?dEI1ZWlmRWtkM1NCRGJhcmVqclNrV1dMMi9wcW9uaDJrZ1M4clhEMVd1ZXJu?=
 =?utf-8?B?d1FhejVVemNDVDR5R1pncEp4M1h3aTlUT09HLzBLZlVWcFJiSGpVbmxTOFJw?=
 =?utf-8?B?U3dOa3I5YU4zQU1oZExQdjkvT2pzM0lERnJNM2ZZbkg1R3JUWUNuOG4vQlVq?=
 =?utf-8?B?d2VrMmo1RHM2aExNTGpEb040cmxRcDB4R0pvUmp2TE0yeCtPdXc1a2Z2SzA0?=
 =?utf-8?B?QnZ0STJ2L3ZDV0NpcGZCdXduVk5mbnA5Yk51UkJuc3d1TFQ1ekZCbWRTbXJM?=
 =?utf-8?B?cHJsWVVsME9ZRlpzU1h0RWttbTV2ak5GeEEyVmViT29HelNKN09jOUdBbzFj?=
 =?utf-8?B?UE1odlAweExnWW9wRlFxTmtoSElQdmJneXNEOUxyVjlRZklqQklHYWt1czE3?=
 =?utf-8?B?V1lyT1N6OWdxb1RYT3pDWjZEZWg0Q0w5OVJ1cmZUVGkxV1krbjJCTXN5YnlD?=
 =?utf-8?B?RjNaRE96TDllZC9uUlVqNGFaRUo1cGJsRE00a3YvZDhiYmZpYU9DSzJVZTUv?=
 =?utf-8?B?MjdrallDN3JnclpUdUkxOGdEZHB6dWY2d3lJdnU5UFNldUdlbkcvL21RTnpy?=
 =?utf-8?B?OEZ5VmFvOG1zZUpHRlhqOU1vNWNkTGgzMzMyUjBjQ0ZKNXVJQ2s3V3phbzc3?=
 =?utf-8?B?VFNkdmJKLzJDbmV6TXBLKzhQL0R4eldEY3Qyc0FTT2NCUXRVbjlka1E1NGo5?=
 =?utf-8?B?Q0VRWDd3SmhzQVozem5XaFlrbHFJMmZ2eDhZUVIwU0x4ZytDOHhzbi9KbkhK?=
 =?utf-8?B?dTllV1FQTEt2ZkNaSVFLZTlhYnlTVndVbzRVQjNCS2NEU2dQc3RoVGpDSjZP?=
 =?utf-8?B?dHlRcXcrT0t3c3lUbmYwcWVFbjhRcmprdFRrL0JzOEtjemF0dFhoc1hybE9E?=
 =?utf-8?B?RVNpUXJwZUVScmpjM3R5am04U3ZVWldwUlBDbjZvNXlYTk5tVE9pOHV2RStD?=
 =?utf-8?B?NmdlcXl4aTg3bWV4NzRKZENCMHV3SkVYRTFFVnlCRExQelFGOHNHNDJtWjJu?=
 =?utf-8?B?UkFmSm5RSUR4dGFIdnU1eE5lU0dIZnFyRkkxWUVPazBzcTAvbmo5Mi9tZXdw?=
 =?utf-8?B?SkhUb29nVUxFdUhrbDBMV1ZwSUhJOU92VXRGN2grbHVNYVpjUUxWbkowcVUr?=
 =?utf-8?B?SW5ZdmdzaGdIQU5QNVdmNmZ6WktYemlyVlNZT0JmaWgyRnNyQUF2dTQ0NjRp?=
 =?utf-8?B?elhIQkpOdUpIR3EwRjNtNms4cmM4T250OGdLT0NSRkUrZlhVeElnTitZVGxK?=
 =?utf-8?B?SWtYOUVmSVhERGVaVmxsL3NOS3pVMDB5TndBcGU5QnE0NGZkdmlKNTFnQks0?=
 =?utf-8?B?d1ZFSEFzQlhZck9WdGdNQ2dLUDRNZnNXZTZUdkYrencwS2h0aVU2c2JIeVBR?=
 =?utf-8?B?T1h6eUR3M3B4Ly83Y1hxRmNhS2xrZDRiOHhYM1BMWnBrbzJkL1hhaTFiN1Ru?=
 =?utf-8?B?R05TV3piaWtCeWYzZmNyZ3Z0Y01KVjFTaTMvTXhJSldON3duVnRDdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3919a747-3908-462a-4603-08de7f571a89
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2026 10:15:21.8450
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Y74oClRjEryLLRQIHfe4Mh/Eg+3C4xAfShQa3OQ1CymtQDLShIeZjKEhd+jIMxkz4ZWYGkjYAKwQMAK4n0kuLQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS1PR03MB7967

On Mon, Mar 09, 2026 at 12:31:02PM +0000, Julian Vetter wrote:
> x2APIC guests with more than 128 vCPUs need destination IDs beyond the

I think this needs to be re-worded:

"HVM guests with APIC IDs greater than 254 would be unable to use
those IDs as the target of external interrupts due to the lack of
emulated IOMMU.  However there's an unofficial extension to the MSI
messages format that re-use some reserved bits to expand the
destination field from 8 to 15 bits."

Or similar.

> 8-bit range provided by the standard MSI address and IO-APIC RTE fields.
> The Intel spec allows bits 11:5 of the MSI address and bits 55:49 of the
> IO-APIC RTE to carry the high 7 bits of the destination ID when the
> platform advertises support, expanding the range to 15 bits total.

Hm, I'm really unsure the Intel spec allows for any of this.  This is
something that has been done on the side, re-using bits marked as
reserved in the spec.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 10:22:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 10:22:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250974.1548299 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0Ghh-00015I-VN; Wed, 11 Mar 2026 10:22:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250974.1548299; Wed, 11 Mar 2026 10: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 1w0Ghh-00015B-ST; Wed, 11 Mar 2026 10:22:13 +0000
Received: by outflank-mailman (input) for mailman id 1250974;
 Wed, 11 Mar 2026 10:22: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=tK7a=BL=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1w0Ghg-000155-DC
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 10:22:12 +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 27533957-1d34-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Mar 2026 11:22:06 +0100 (CET)
Received: from PH8P220CA0023.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:345::29)
 by MN0PR12MB6054.namprd12.prod.outlook.com (2603:10b6:208:3ce::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Wed, 11 Mar
 2026 10:22:00 +0000
Received: from SA2PEPF000015C9.namprd03.prod.outlook.com
 (2603:10b6:510:345:cafe::a6) by PH8P220CA0023.outlook.office365.com
 (2603:10b6:510:345::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.26 via Frontend Transport; Wed,
 11 Mar 2026 10:21:51 +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.9678.18 via Frontend Transport; Wed, 11 Mar 2026 10:21:59 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 11 Mar
 2026 05:21:57 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 27533957-1d34-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VXEdklrnRd4sUqss9M3PN8MrQXFWE6qqnXjleYHmjsKWU6+IaKrSM0Oie4XOuL8pJi+M6govn/aWf3KpypukKctBnhuotPRjhErR6MXFt93wN+XXTAPsMSGS5A45bghaa/BeD7USuHt6M6GgBcxibh1nB+VgnLx4bQSCW4b9EbjmzMwaY1CewA7losLDHZUXQ5jo62YY44I6uv05p+IKYLaeUjWHMYXScuMpwc9L/nNpon+T2Gk/4Mq7tyzQu6lWSPSEEoMCeugVoMmBKKcT1UlB7jVG5KRFDBN9VqVwspjzDz9vfP0YVwGXXeZ3iNHc3ruv6jjpxHxspnuxDcuC/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=zZTB3cT2ASH/74OHAs4DUZkRTc5eEWFt1tnPBwff3Jw=;
 b=ItkKREbAaR0JyunTS/upadzsdumk7XgZUn/nswKKdAm7IWUbbI+guvBDNwft5SwCS2nIHDJ5HvYtjjJ8jIuFaFmQIwCtsvM6i/pwQAd2J71Gd5QyXMr5RL/7o8KTuiEQmPXcuHqQsWuM13b59ByybWO7QS2HO9fNQZTQHS7KNpQRINgNkPkcsX38R/dTgsaGNKo3MTBmq93UE6MYVj9kgDRWnxqZvVLcQSQfSOc+7uAMoxxM2stwCLsNNSNkFdX3nt9cFZfzO4bgmr6BmiCsIm3fy9w2AlbYh5CpFTiGNaSZ77ocmNGgG8tkHq1puAf9EZOVnoFcHe68WFSza27jvw==
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=zZTB3cT2ASH/74OHAs4DUZkRTc5eEWFt1tnPBwff3Jw=;
 b=MI6xaYzJ+wGatWBMEYcGqNn6wWzsAzjO5mLRkT0EDU/fqc7XbsUYuTeCEbU0hHIU6e6sfcmN1OONzMwGRnj+fwFqAzkBw06vyD5GXk1C01aeqeEJTJLQuTzO4d3t2hHUcPc/roxin6D6+CAULPhxnDzSAo5QDUWSoeET49dF+iE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 11 Mar 2026 11:21:56 +0100
Message-ID: <DGZVMOYWFGY5.3NSQ9DUBFDOLR@amd.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3 2/4] x86/hvm: Disable cross-vendor handling in #UD
 handler
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20260213114232.42996-1-alejandro.garciavallejo@amd.com>
 <20260213114232.42996-3-alejandro.garciavallejo@amd.com>
 <813d3fc9-170a-4f25-872a-3688946c236d@suse.com>
 <DGZUFMGSILDF.3ES3YACXM6AG4@amd.com>
 <f5b74658-3a5f-47ac-8eaa-3f7fbf431a32@suse.com>
In-Reply-To: <f5b74658-3a5f-47ac-8eaa-3f7fbf431a32@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: SA2PEPF000015C9:EE_|MN0PR12MB6054:EE_
X-MS-Office365-Filtering-Correlation-Id: 5c92e5a5-2e2f-4032-932f-08de7f5807ba
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|1800799024|82310400026|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	sqGV86/D8xf0tXLbsYYt0CV+cjqte7UD44HtVL5SmP5A3j7LA8izuUuZ/ksA5QB19KJQXwEQFRL5nLY1hnrokBpOoQsR33pixGcuMkceayOqQ70vu4ma1sFVcr+5jGbXFwWoNhqWRdtfOZbk59YXJcYrOJUPuE4w74ekTNx37qPJ209PbqGKLgPJ/Rfnd02pbeJ2s+Kj6ySoI/L2gAM1d7zO+UwWJfWx3eY7vkziMPad6NKRGEWdJpKZ02f781KcnI/81G7ISMe/XJNIED03ibj7WyyepOaYEFDbK5NLInp4R0FEiCaIBkTaZzoT7HwYRorEo3QY1YSnjTfuKtj3esLmSQa2d0iPW/880ntJShwLSXk9Mp62cnzFHz547+ztPnoP0sWg00leH2eJF/8UBMjcqTtaZqkpMyLjDuGGPpmTuWzxOSf4d/hFblzX6NOxOk5SQFGr3KPscowIVZjO73gMHadZ/JsHSq7lIXYEAC4w3JfVhnmI16c3MTfVpS2tD7UPt+apZ5nl6wd7iHUJy4mkcB8lDYK+M2ORDF8vZG+wXOOPb9Veosu8IiPIUGTw7B01e6PpvP0f2uhCEE6O1tNAyLBnRHCKvmLyAr56vIFFN4+lpqXrvhF9wHyV3LAjIiuCOiAZyn8F5tXKs67n/SpqrClU/QrdIunVgENlsv5kGTLlHyYd+hbD4IKlwW2oKQEFnu6vR/LTPdIzmIPqZnWQfCZroxIr7DYq9+IOc7T4qvUWT9jfuVlMtBrDyHZBp8a71+lP9KQ8dsAB7q4S3Q==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(1800799024)(82310400026)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	TEUPcQ/HxDkKwjAwm3c9i0HuXu0suNOo+KNDsGVt8W2tgtBmThTHPluaRPaqTZm8XlsJt1TcfMqzwZoGkdXlFMKgLtKOXMLKJyrMq/KKrj09BpNfQUBd6ad2jaKOVx+cLQjHql+CrfJtwEPjHPdGr4nosJBGbg3Pi2HE/4htoieLbxEa8+za+ZPtuwm3zA9ThHHQszR0Exi9CdP9mm0KHmUu6r8+504q52QTxwpziABSVrUsQ3ztg6+maWOWotzWB+/JiaEcvk7OVPnZtGR0TDx0wdxN3R16X/q2i110mtRwfQnHDAGgE6laBD1UiTrhFcQ41KWNomWA+zVtMf7HrKjP87ctF/59iix0H+6TTTtK7/JN1Sxr9q/xV4Qfez+VQKEK8YeyGG61mm/QgCkjOkhmEmj2WjmzN3aDK+Kp3W/6n0hfKNFUFKjcqMI2yiiL
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2026 10:21:59.6055
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5c92e5a5-2e2f-4032-932f-08de7f5807ba
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-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: MN0PR12MB6054

On Wed Mar 11, 2026 at 10:30 AM CET, Jan Beulich wrote:
> On 11.03.2026 10:25, Alejandro Vallejo wrote:
>> On Wed Mar 11, 2026 at 9:35 AM CET, Jan Beulich wrote:
>>> On 13.02.2026 12:42, Alejandro Vallejo wrote:
>>>> --- a/xen/arch/x86/hvm/hvm.c
>>>> +++ b/xen/arch/x86/hvm/hvm.c
>>>> @@ -3832,69 +3832,47 @@ int hvm_descriptor_access_intercept(uint64_t e=
xit_info,
>>>>      return X86EMUL_OKAY;
>>>>  }
>>>> =20
>>>> -static bool cf_check is_cross_vendor(
>>>> -    const struct x86_emulate_state *state, const struct x86_emulate_c=
txt *ctxt)
>>>> -{
>>>> -    switch ( ctxt->opcode )
>>>> -    {
>>>> -    case X86EMUL_OPC(0x0f, 0x05): /* syscall */
>>>> -    case X86EMUL_OPC(0x0f, 0x34): /* sysenter */
>>>> -    case X86EMUL_OPC(0x0f, 0x35): /* sysexit */
>>>> -        return true;
>>>> -    }
>>>> -
>>>> -    return false;
>>>> -}
>>>> -
>>>>  void hvm_ud_intercept(struct cpu_user_regs *regs)
>>>>  {
>>>>      struct vcpu *cur =3D current;
>>>> -    bool should_emulate =3D
>>>> -        cur->domain->arch.cpuid->x86_vendor !=3D boot_cpu_data.x86_ve=
ndor;
>>>>      struct hvm_emulate_ctxt ctxt;
>>>> +    const struct segment_register *cs =3D &ctxt.seg_reg[x86_seg_cs];
>>>> +    uint32_t walk =3D PFEC_insn_fetch;
>>>> +    unsigned long addr;
>>>> +    char sig[5]; /* ud2; .ascii "xen" */
>>>> =20
>>>> -    hvm_emulate_init_once(&ctxt, opt_hvm_fep ? NULL : is_cross_vendor=
, regs);
>>>> +    if ( !opt_hvm_fep )
>>>> +        goto reinject;
>>>
>>> Is this possible at all, i.e. shouldn't there be ASSERT_UNREACHABLE() i=
n
>>> addition if already the check is kept?
>>=20
>> It isn't.
>>=20
>> v2 used to BUG_ON() at VMEXIT when !HVM_FEP and compile out this handler
>> altogether, but Andrew was unhappy with it because he uses it occasional=
ly and
>> it'd be more of a PITA to undo the removal or force a HVM_FEP-enabled hy=
pervisor
>> for the #UD handler to be present at all.
>>=20
>> I have no strong views on the ASSERT. It's not expected to happen, but I=
 don't
>> expect the existing conditions to change either, and if they do that wil=
l warrant
>> a change in the handler too.=20
>>=20
>> If you want it I can add it, but if we're not killing the handler in rel=
ease I
>> don't think it's very helpful to assert/bug_on.
>
> I see two options: Drop the if() or add ASSERT_UNREACHABLE() to its body.

I'll go for that second option then.

>
>>>> -    if ( opt_hvm_fep )
>>>> -    {
>>>> -        const struct segment_register *cs =3D &ctxt.seg_reg[x86_seg_c=
s];
>>>> -        uint32_t walk =3D ((ctxt.seg_reg[x86_seg_ss].dpl =3D=3D 3)
>>>> -                         ? PFEC_user_mode : 0) | PFEC_insn_fetch;
>>>
>>> Why is this initializer not retained?
>>=20
>> It is, it's just that the diff is terrible. An unfortunate side effect o=
f the
>> removal of the braces. The scope collapsing forces it on top of the func=
tion,
>> before the emulation context is initialised.
>>=20
>> It's set up in steps. walk is unconditionally initialised as isnsn_fetch=
, and
>> later (after emulate_init_once()), OR'd with PFEC_user_mode for DPL =3D=
=3D 3. See...
>>=20
>>>
>>>> -        unsigned long addr;
>>>> -        char sig[5]; /* ud2; .ascii "xen" */
>>>> -
>>>> -        if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip,
>>>> -                                        sizeof(sig), hvm_access_insn_=
fetch,
>>>> -                                        cs, &addr) &&
>>>> -             (hvm_copy_from_guest_linear(sig, addr, sizeof(sig),
>>>> -                                         walk, NULL) =3D=3D HVMTRANS_=
okay) &&
>>>> -             (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) =3D=3D 0) )
>>>> -        {
>>>> -            regs->rip +=3D sizeof(sig);
>>>> -            regs->eflags &=3D ~X86_EFLAGS_RF;
>>>> +    hvm_emulate_init_once(&ctxt, NULL, regs);
>>>> =20
>>>> -            /* Zero the upper 32 bits of %rip if not in 64bit mode. *=
/
>>>> -            if ( !(hvm_long_mode_active(cur) && cs->l) )
>>>> -                regs->rip =3D (uint32_t)regs->rip;
>>>> +    if ( ctxt.seg_reg[x86_seg_ss].dpl =3D=3D 3 )
>>>> +        walk |=3D PFEC_user_mode;
>>=20
>> ... here.
>
> But that's the point of my question: Why did you split it? All you mean t=
o
> do is re-indentation.

Because I need to declare "walk" ahead of the statements. Thus this...

    uint32_t walk =3D ((ctxt.seg_reg[x86_seg_ss].dpl =3D=3D 3)
                     ? PFEC_user_mode : 0) | PFEC_insn_fetch;

must (by necessity) have the declaration placed on top before the emulator
context initialisation. The options are...

    uint32_t walk;
    [... lines ...]
    walk =3D ((ctxt.seg_reg[x86_seg_ss].dpl =3D=3D 3)
            ? PFEC_user_mode : 0) | PFEC_insn_fetch;

... or...

    uint32_t walk =3D PFEC_insn_fetch;
    [... lines ...]
    if ( ctxt.seg_reg[x86_seg_ss].dpl =3D=3D 3 )
        walk |=3D PFEC_user_mode;

Line count remains at 3 in both cases, but in the former case there's a
comparison, a ternary operator and an OR all adding cognitive load to the
same statement. In the latter case there's an assignment in the 1st stateme=
nt,
an if+comparison in a separate line, and a separate OR in the final stateme=
nt.
It's just simpler to meantally parse because the complexity is evenly
distributed.

I can see how the current form was preferred to avoid a third line (and
then a forth due to the required newline, doubling the total). But with the
rearrangement that's no longer relevant.

If you have a very strong preference for the prior form I could keep it, th=
ough
I do have a preference myself for the latter out of improved readability.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 10:54:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 10:54:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1250999.1548316 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0HCm-0005Bo-D3; Wed, 11 Mar 2026 10:54:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1250999.1548316; Wed, 11 Mar 2026 10:54:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0HCm-0005Bh-8x; Wed, 11 Mar 2026 10:54:20 +0000
Received: by outflank-mailman (input) for mailman id 1250999;
 Wed, 11 Mar 2026 10:54: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=ae2Q=BL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w0HCl-0005Bb-64
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 10:54:19 +0000
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
 [2a00:1450:4864:20::42a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a61a1051-1d38-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Mar 2026 11:54:17 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-439ac15f35fso10390966f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 03:54:16 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439f81aca65sm6670892f8f.17.2026.03.11.03.54.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Mar 2026 03:54:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a61a1051-1d38-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773226456; x=1773831256; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to
         :cc:subject:date:message-id:reply-to;
        bh=gwAyAPqxP5WCH8T6EQ/P0JblAV3dinBl+SEsGrTfcUU=;
        b=aoAjKajMDRMA8S9R1oEadxhIR9WcqsYA0SZkfa+VhUu7IxL5ToMxdsj5X8BxSczIWN
         AWiqvPaYE9eyBfvpTQSUh+QJ5LXUVjW+UpJWXLECq0H8dkSPttZGH5g9QIJ/veYM3Vod
         3SPsV6O8gbC3GoX5c+0ffz5sSvr0ogs9BP7GWRtH0cHzBrEeQF7CZKzDHkBJb75CN4lk
         EuusahLagX6rW2yH3wvvM1ovPRq40g4v2j55oRx2duFlHGGulAG913AS44Sax4cIEnTn
         hoB/M/vnk4Lz3VP4kPMdEX6utP8+1rkRU79JoW1BmML25U/V9O/0VOXoqV6DrsUmIJ2Y
         VJ+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773226456; x=1773831256;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=gwAyAPqxP5WCH8T6EQ/P0JblAV3dinBl+SEsGrTfcUU=;
        b=PZwJf2d6IQ79xB9rHhcxFcZywS7HMX+leMEr8SVQr9XXqWPh1ncsyIm7Rrt3CbBnVy
         1MpZojGzQXROrfpH+dgulZGuLWKgn4WgaijhjtaLd4rjNB5lCIKvujVUmuzKDC5YdLA+
         aBPj63wON/iwKhqb4ql/Oqk6gGguOFF4Enl3HXB7EKRLAxI+vrywcgBv4PJa5NH+j9In
         N4bWDBYleLpNu83J6sI0+v3r92GZ/n9x82CXB8G1aP78HQZK6Wj0YvIRTbHOyjGvFRhp
         c7kICCdqjPmo1jLNsSimRSiEeLGm60pfxw20dl3mdqjeEno+C03ld67PkmdqF9iAsXH3
         60Nw==
X-Forwarded-Encrypted: i=1; AJvYcCViZz+pCc/hvJ54XMDjfE6sbU2dYA9wP6NTUB0/vH0FP6j4VZhHXjFxIkhVlK6BiVYWl4GcIMtITe0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzvSobCmBlby1z2oE56K8cGwO/NT4qlmwRlCeGmwIq2MNbOjGBd
	Kc9uGFnRsFtErHoh4mrYTF1OBm2JsFXpH193XlrVLn+7cI/H4zcsj3KT
X-Gm-Gg: ATEYQzxik7RTeulhZcEfDyxV6so5JIFSci+YVwdLkDo5dNVyTznDk01uomRxHaNLCKj
	z/aBEgOQlMVFrSrUQ7Qd5+j8zIIfy1cvTWXn9f/j5iopI1hvC6FLecRdh+7pY6rkUk1MzluV89z
	tysCQzgS1f/0mTAwAdjEYwa2gTEBgvZnhil5tHW9nZDHSTa3giMO75ezHtg3SAGL+skZYkupBQp
	bhUW38Eyw19AoxhEYpkx+ycTM8EtrsXEMgXCD7RN7u9rlcrsHPUb6U77XEgXUQLxFn2sTrTcpyE
	ImUKRxinUKuYHA+HeepJpISKZIzoSW70EkUZ9LQe7NOWRxTAM9cV9Mw3QXNE2KFJm3J1ZpMW+a7
	xLtw+glE9HCihUEwS1WxLjBMNKJIxux/wlv6WhAFJT8Y4EAipymtP7mjfybE1X+SzT4tAvh6jp8
	YBye/dAavhc93N0RuwbwIB9QnTqBLrOhgV0EPqi1TsToaoIqvbrsVEVUwbVX4uEGZOTp62zfXtn
	wk=
X-Received: by 2002:a5d:5f93:0:b0:439:b057:cb12 with SMTP id ffacd0b85a97d-439f8205f60mr3856849f8f.22.1773226456060;
        Wed, 11 Mar 2026 03:54:16 -0700 (PDT)
Message-ID: <e3e5d4cd-8ef7-45fb-b677-204a8af379b3@gmail.com>
Date: Wed, 11 Mar 2026 11:54:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 14/14] xen/riscv: Disable SSTC extension and add
 trap-based CSR probing
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>, xen-devel@lists.xenproject.org
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
 <f7b30c80eabd3ba371a0d541e3be023314ec37fd.1772814110.git.oleksii.kurochko@gmail.com>
 <9ff93ad1-0151-4f37-a6c2-f7dd4197ca84@suse.com>
 <e0a891c4-3283-4e1b-81e4-f2b4bb62b5fa@gmail.com>
Content-Language: en-US
In-Reply-To: <e0a891c4-3283-4e1b-81e4-f2b4bb62b5fa@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 3/11/26 10:54 AM, Oleksii Kurochko wrote:
> On 3/10/26 10:15 AM, Jan Beulich wrote:
>> On 06.03.2026 17:33, Oleksii Kurochko wrote:
>>> Some RISC-V platforms expose the SSTC extension, but its CSRs are not
>>> properly saved and restored by Xen. Using SSTC in Xen could therefore
>>> lead to unexpected behaviour.
>> And what's wrong with (or what gets in the way of) adding proper
>> saving/restoring? Also, wouldn't a guest use vstimecmp anyway? I.e. what
>> saving/restoring are you talking about here?
>>
>>> To avoid this in QEMU, disable SSTC by passing "sstc=off". On real
>>> hardware, OpenSBI does not provide a mechanism to disable SSTC via the
>>> DTS (riscv,isa or similar property), as it does not rely on that
>>> property to determine extension availability. Instead, it directly
>>> probes the CSR_STIMECMP register.
>>>
>>> Introduce struct trap_info together with the do_expected_trap() handler
>>> to safely probe CSRs. The helper csr_read_allowed() attempts to read a
>>> CSR while catching traps, allowing Xen to detect whether the register
>>> is accessible. This mechanism is used at boot to verify SSTC support 
>>> and
>>> panic if the CSR is not available.
>>>
>>> The trap handling infrastructure may also be reused for other cases
>>> where controlled trap handling is required (e.g. probing instructions
>>> such as HLV*).
>> Hmm, won't you need a more generic way of dealing with traps anyway? See
>> Linux'es _ASM_EXTABLE(). See also comments further down.
>
> At the moment this approach works for me and I haven't had a need for 
> more
> generic approach. I will look at _ASM_EXTABLE(). I haven't checked yet 
> but
> I assume it will require some extra fixup code in trap handler what looks
> like over complication for the current case, at least.

I checked _ASM_EXTABLE() implementation and so I will need basically provide only
for now implementation of EX_TYPE_FIXUP what doesn't look too much and is comparable
with the current suggested solution.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Mar 11 10:58:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 10:58:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251010.1548326 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0HGk-0005sH-Vf; Wed, 11 Mar 2026 10:58:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251010.1548326; Wed, 11 Mar 2026 10:58:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0HGk-0005sA-Rw; Wed, 11 Mar 2026 10:58:26 +0000
Received: by outflank-mailman (input) for mailman id 1251010;
 Wed, 11 Mar 2026 10:58: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=oqCu=BL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0HGi-0005s4-TZ
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 10:58:24 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 388611d6-1d39-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 11:58:22 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-439b9cf8cb5so9663335f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 03:58:22 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439f81f13c3sm6599708f8f.25.2026.03.11.03.58.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Mar 2026 03:58:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 388611d6-1d39-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773226702; x=1773831502; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4J5pUkRSyaUBU43apUgBScWFcUPwmMaVtMcIjcgu9RE=;
        b=W1qCKcpmCTtscorUEkB805EVHakx2SERWyNg7UldzVvuek/NDTwUVnHQb/auKcGLH/
         ya7wuKZ9nTHPhpGq7wc1hSh7U9j9UmGTwYG/J5SfIHjKdlXDUrwBZqAxNVzs3O/QqdT6
         +BQdLHRb9CBK0QNcZTsXxFu53Jq24lJxi45x+kZurKG+LoxPsmGoHkT8e2g4eRW/acf/
         lzyUHaiL1YaZkJQb7DNRk9dCIR0iFlFoh40VqepTpHOkGFfMrAs6zJqKFbQOp/H2nt8D
         IcRXoOf4QIC/JGgG2AguEhNx9cqXf6hEsDqFrjwmuBNH23sLytxB/xw3unmaMDaA4QOt
         Rdzg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773226702; x=1773831502;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4J5pUkRSyaUBU43apUgBScWFcUPwmMaVtMcIjcgu9RE=;
        b=LoWvsAtEDa3X+kSjJ7WDwua82FoNCift9R0hHi1JHuhCF245YenKJfhimmqNZXpBhr
         0/v/uSfax8ydcSdyC+6BQegVxNrQbUuiMFc0nA1j2HSK9uRtxsfvTUFckEBCbIO/YWTm
         FsRQnsh+EyH1FgWUPcQBrHfDYSqeYKl29ReU59FLxiPhJ/Ftvg66AeDalePOUvZdLXhk
         ZQqlDQl9mY2ZbYFn+CQKD6CVpnEDo+vIH66lwulI08GNnY9IGu4SBZfLLNmme2peX3UU
         2cSNJ7C8CIpCXTBtiFUkaXLpeu+dbpciAp1VhZT7OMJBAGZImRKVNYI4LYTy2WL+VbGv
         XUzQ==
X-Forwarded-Encrypted: i=1; AJvYcCX4M/0vXl+/MNbxEAKKooJKw3+qYvJLVb49Y8qYVtlWAdAPChcJjDvlurSJLnTeqkKJT65PTfRwhkY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyHG6pnMCCpCqhM5PKht6cAsE8hL8ZeXmqLNXilOYfuhkjqp2qc
	rDhUYEQtGefc+ABrQ0N8Yn3Z9uR0VkLUr7u/TqW/Rmvpopb/wm8R3hkHDYxlXx+lWw==
X-Gm-Gg: ATEYQzwfM69On3t+6ed/cpbdZ6hSCWdRtQHygxhILyM++KPbySsFXtqvAYeeHsM2UXZ
	ZVwV81nKdtyyoicPJIMYfLoVEkl/c7zS2l89pFBm90RHY9ZcThNtSAlkUt558ECJLIZ0AKkQf4Y
	poSb+GxFti5X0Ml/MhloRWkV84PCwzfULIr9s/nX5mH9erN0ZbLY473N8kLEvWuMDlBr28/Jmxe
	dyEQA2NE2lJv3jMCzk3/ZO+GnP/9kr9Wal8Bn48z3Y4HpnYs3s6TziG1TLJHGCZcuiwp7s6Cfc+
	VRXvNzvyHvzQ/bupRMwtD3gsfn3RWIdXvUVkaPjEAdai2WbiCJguC5esHFywz/ag2vgIl+iQ3sd
	scbZKuNpCYVbxrQwnEku4Sm7zj3jtC8MQCyT4TzJMX0jdUiH7nWSQHz6sxGgnBIr71bbjJs9JzN
	lEKYkJBonHMTQFVcCu0MnnS0gwedZx7xYiZq5jooKbSlGep/k62iSl0AxP7/gA+aU7PTwX6KFd8
	/8igiNqcey/82Q=
X-Received: by 2002:a05:6000:18a8:b0:439:c81f:b96d with SMTP id ffacd0b85a97d-439f8224ef8mr4107841f8f.51.1773226701890;
        Wed, 11 Mar 2026 03:58:21 -0700 (PDT)
Message-ID: <2e471f54-1885-4615-8a23-c33ce683158f@suse.com>
Date: Wed, 11 Mar 2026 11:58:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 14/14] xen/riscv: Disable SSTC extension and add
 trap-based CSR probing
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>, xen-devel@lists.xenproject.org
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
 <f7b30c80eabd3ba371a0d541e3be023314ec37fd.1772814110.git.oleksii.kurochko@gmail.com>
 <9ff93ad1-0151-4f37-a6c2-f7dd4197ca84@suse.com>
 <e0a891c4-3283-4e1b-81e4-f2b4bb62b5fa@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: <e0a891c4-3283-4e1b-81e4-f2b4bb62b5fa@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.03.2026 10:54, Oleksii Kurochko wrote:
> On 3/10/26 10:15 AM, Jan Beulich wrote:
>> On 06.03.2026 17:33, Oleksii Kurochko wrote:
>>> --- a/automation/scripts/qemu-smoke-riscv64.sh
>>> +++ b/automation/scripts/qemu-smoke-riscv64.sh
>>> @@ -7,7 +7,7 @@ rm -f smoke.serial
>>>   
>>>   export TEST_CMD="qemu-system-riscv64 \
>>>       -M virt,aia=aplic-imsic \
>>> -    -cpu rv64,svpbmt=on \
>>> +    -cpu rv64,svpbmt=on,sstc=off \
>>>       -smp 1 \
>>>       -nographic \
>>>       -m 2g \
>> How does this fit with you panic()ing when SSTC isn't available (i.e. the
>> register cannot be read)? I must be missing something, likely a result of
>> me not being able to really understand the description.
> 
> When SSTC isn't available my panic() won't occur and then will continue to
> be executed. Otherwise, when SSTC is enabled (it is enabled by QEMU by default)
> my panic will occur.

Oh, I notice I misread the condition around the panic(), mainly because of
the misleading / ambiguous message passed to it: "SSTC isn't supported\n"
can mean unsupported by Xen or unsupported by the platform.

Anyway, to me this is entirely bogus: Why would we panic() because there is
a certain extension available?

>>> --- a/xen/arch/riscv/include/asm/csr.h
>>> +++ b/xen/arch/riscv/include/asm/csr.h
>>> @@ -9,6 +9,7 @@
>>>   #include <asm/asm.h>
>>>   #include <xen/const.h>
>>>   #include <asm/riscv_encoding.h>
>>> +#include <asm/traps.h>
>>>   
>>>   #ifndef __ASSEMBLER__
>>>   
>>> @@ -78,6 +79,37 @@
>>>                              : "memory" );                        \
>>>   })
>>>   
>>> +/*
>>> + * Some functions inside asm/system.h requires some of the macros above,
>>> + * so this header should be included after the macros above are introduced.
>>> + */
>>> +#include <asm/system.h>
>>> +
>>> +#define csr_read_allowed(csr_num, trap) \
>>> +({ \
>>> +    register unsigned long tinfo asm("a3") = (unsigned long)trap; \
>> Why can't this variable be of the correct (pointer) type? This would then
>> at the same time serve as a compile-time check for the caller to have
>> passed an argument of the correct type.
> 
> Good point it could be an option.
> 
>>> +    register unsigned long ttmp asm("a4"); \
>>> +    register unsigned long stvec = (unsigned long)&do_expected_trap; \
>> Fiddling with stvec may be okay-ish very early during boot. NMIs, for
>> example, do exist in principle on RISC-V, aiui. There must be a way for them
>> to be dealt with by other than just M-mode.
> 
> Do I understand correct that your concern is about that if NMIs will be handled
> in HS-mode that switching stvec in this way could be dangerous as do_expected_trap()
> doesn't know how to handle NMIs?

Yes.

> If yes, then NMIs should be handled by M-mode as:
>    Non-maskable interrupts (NMIs) are only used for hardware error conditions, and
>    cause an immediate jump to an implementation-defined NMI vector running in M-mode
>    regardless of the state of a hart’s interrupt enable bits
> and:
>    The non-maskable interrupt is not made visible via the mip register as its
>    presence is implicitly known when executing the NMI trap handler.
> 
> So standard delegation registers like mideleg do not apply to NMIs because NMIs
> are not visible in the mip register.
> 
> I haven't found in OpenSBI how they are explicitly handling NMIs, but it looks
> like if they happen in (H)S-mode or (V)U-mode then they will be just redirected
> to (H)S-mode or V(U)-mode:
>    https://github.com/riscv-software-src/opensbi/blob/master/lib/sbi/sbi_trap.c#L361
> And then do_expected_trap() will fail to handle them...
> 
> Interesting that other hypervisors are using the similar approarch (with temporary
> updating of stvec) and they haven't faced such issue with NMIs yet...

Well, NMIs may be rare to occur? And hence very unlikely to occur in this small
a window?

>>> +    register unsigned long ret = 0; \
>>> +    unsigned long flags; \
>>> +    ((struct trap_info *)(trap))->scause = 0; \
>> "trap" would better be of the correct type. Don't use casts like this, please.
>>
>> Further, wouldn't you better set the field to a guaranteed invalid value? 0 is
>> CAUSE_MISALIGNED_FETCH, after all.
> 
> I don't see that such an invalid value exist for scause. I think we have to reserved
> a value from region 24-31 or 48-63 as they are designated for custom use.

Not sure that's possible. "Custom use" may mean "custom" from hw perspective.
I was rather thinking of picking something pretty high in the reserved range,
like (1 << (MXLEN-1)) - 1 or 1 << (MXLEN-2).

>>> +    local_irq_save(flags); \
>>> +    asm volatile ( \
>>> +        ".option push\n" \
>>> +        ".option norvc\n" \
>> Shouldn't this come later?
> 
> Do you mean before where SSTC csr is really tried to be read ("csrr %[ret], %[csr]\n")?

Yes.

> Does it really matter in such small inline assembler?

Yes, if nothing else then to not raise questions. Plus (depending on the
specific operands used), the ADD (MV) could e.g. be representable by a C insn.

>> And why set ttmp in the first place, when
>> that's what do_expected_trap() writes to?
> 
> To force the compiler to materialize tinfo in register a4 (ttmp) before the
> trap handler runs as handler will use a4 as temporary register.

??? I don't understand what you mean with "materialize".

>>> +        "csrr %[ret], %[csr]\n" \
>>> +        "csrw " STR(CSR_STVEC) ", %[stvec]\n" \
>>> +        ".option pop" \
>>> +        : [stvec] "+&r" (stvec), [tinfo] "+&r" (tinfo), \
>> tinfo isn't modified, is it?
> 
> It is modified by handler.

Where? It's only used as the address of the two stores.

>>> +          [ttmp] "+&r" (ttmp), [ret] "=&r" (ret) \
>> ttmp isn't initialized (in C), so the compiler could legitimately complain
>> about the use of an uninitialized variable here (due to the use of + where
>> = is meant).
> 
> ttmp is modified by handler too.

Of course, but just to repeat - you mean "=&r" there.

>> Whereas for ret the situation is the other way around - you initialize the
>> variable, just to then tell the compiler that it can drop this
>> initialization, as - supposedly - the asm() always sets it (which it doesn't
>> when the csrr faults).
> 
> It was done in that way as when csrr will lead to a fault, handler will jump
> over the csrr instruction and so ret won't be set at all. For that case it was
> set to 0.

And again - this is meaningless if the constraint is "=&r".

>>> +        : [csr] "i" (csr_num) \
>>> +        : "memory" ); \
>>> +    local_irq_restore(flags); \
>>> +    ret; \
>>> +})
>> A macro of this name would better return an indicator of what it is checking,
>> rather than the CSR value (which the sole user of this macro doesn't even
>> care about).
> 
> With the current one use case it doesn't care but generally I think that someone
> will want to use this macro just to get CSR value. I don't have a speicifc example
> but still it could be used in this way.

Well, if you want to keep it doing so, make the name match what it does (and
in particular what it returns).

>> Ideally such would also be an inline function.
> 
> I thought about that but I had difficulties with csr* instruction and their second
> operand which expects to have immediate. But if I will have inline function that
> csr_num will be in register.

Only if the function wouldn't be inlined, I expect? Which hence you may need
to force, by using always_inline.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 11:06:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 11:06:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251021.1548334 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0HOk-0007To-NI; Wed, 11 Mar 2026 11:06:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251021.1548334; Wed, 11 Mar 2026 11: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 1w0HOk-0007Th-K7; Wed, 11 Mar 2026 11:06:42 +0000
Received: by outflank-mailman (input) for mailman id 1251021;
 Wed, 11 Mar 2026 11: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=oqCu=BL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0HOj-0007Tb-VD
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 11:06:41 +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 60a3ca31-1d3a-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Mar 2026 12:06:39 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-48534b59cf3so32414375e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 04:06:39 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4854b66dedfsm45501465e9.12.2026.03.11.04.06.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Mar 2026 04:06:37 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 60a3ca31-1d3a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773227199; x=1773831999; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=THWX4dw5nHbItcNRFe55nzEA85XRDepCbjCrxbTfMaE=;
        b=K1wpU7N4SChaJjavzN9OGVmCiZa6aKqJH+YM0eBNXZ9LKxiHFNWy7/hiMeVeGqt98b
         /xd4FzDPnZj8Ar+WXXPSLUsc/tmbD+9iQUm6zwaBDg20VTT/x3JACjDCjWiMmAHJhhJO
         1WgM/P7pz/X0jxW7iEHfwPl+KPXfjwoYgggijQEAd+xkOieqd9VkaF4eTvNMZKb693qf
         EjWiWK0wAJzPtZsX7RAnMWY1DSgtxiCmH36Bh2xI2OIV85xYgAfio0OjYoOqBJcwovx5
         eL5KfOplcusbHJk8o8om8qslPhkLeIBl1QEkPcN1BWKPmi6IO1DDHreNi99hhhYCPzkR
         cVmQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773227199; x=1773831999;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=THWX4dw5nHbItcNRFe55nzEA85XRDepCbjCrxbTfMaE=;
        b=dB4y8vf0u9+IINE5dERNN94cBftKRF2IcUrd+g5QGMkpNglaE0Kygs91RanpOYfSox
         5kIG7TGTjVegtfH97u3OLB94rPS6Hv0dsueG5qd8ByzIPapZGMHveo90TD4BxOcouSU+
         pQfF5Zfhtg2TRCuXfqK18MwLo7okIkfLvA6heoAQNHXKnfEsi2N0NpadiyoGX4sq3EiG
         VdqCeD9r3Op49t/LGemrbA47DKozJNz4ZtiN7c8lPNWU8wTFEuFczGpU7iFj6wbuuiz+
         0FyJy8LXeErNYd9+2bstP+LAR7cKvi755EU7TpuD3KBVrqmiEgAt4rechHDjTmOkQKxX
         QUTQ==
X-Forwarded-Encrypted: i=1; AJvYcCVrHkdKBS8EytQ5Cq7bnSBWyDZfJ0yc5Ldau1Sx0q69GwcoIjT9fON5U80pkh7VzgOIVlQmg5jX20U=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzvTbuvARkYefij5jhoQ/Y8+MrIwDYSG8RLnV7NV7MPQ9cnJbJx
	RkyVSgzBvqFb2KuDmHaKtn76SuNKrmtnSCkzeA1CNYZk77lxztl0kpmZ7FERHFtM0g==
X-Gm-Gg: ATEYQzyetMfFEVRh7eP/SOk7De2vekkNVPbDX/nA5Mpi4oMu1O2E2ECnk20Wu2qbHGS
	Mb0iJRehPH8gAV8mb6aPDWBXQh70Mxal9iggVeq/mZZCFM7SUzgU2AWjI8pvHzXX8zHXPO4oHse
	Sn4Jpv0Wyf9LBitmMHX6UgQ6f/am26VGXuTGSMVElECC0AA+Lt/yjzt8TG30tu0HR5WKr9kg+C/
	qCxSUmNYcV6qiQp5aShTw+jO2vsnwN3FIOJMh8OrGSvrrAs+eVicEGhKcD0Mh9ej+4Vu7Iqqz72
	DMQvjZj6RhoeyiWpCRvW8+jkiKhXJc5mF5j+CPzVohFxNUrPiVKxqAXCvuGd77FZAlcX06b2R7H
	hHDVYJK5QK8KcPI00RTF8CcsTvLMhewR/NQMR6L9TT/zQkuEov1H2LeIhNF5BYVS01xyiq44nsW
	5r8e8rVemSiAlFgORNt5CHNzNknLb1GuozqMMDUzqG7CysFs2TKtAc4d9EYrLXAQRnh7sK04atg
	s26sFnuYZtME0w=
X-Received: by 2002:a05:600c:45c3:b0:485:3473:d4a1 with SMTP id 5b1f17b1804b1-4854b13e63emr36476885e9.34.1773227198440;
        Wed, 11 Mar 2026 04:06:38 -0700 (PDT)
Message-ID: <66926b3b-82e0-4595-b54f-e73cef396ea2@suse.com>
Date: Wed, 11 Mar 2026 12:06:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/4] x86/hvm: Disable cross-vendor handling in #UD
 handler
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260213114232.42996-1-alejandro.garciavallejo@amd.com>
 <20260213114232.42996-3-alejandro.garciavallejo@amd.com>
 <813d3fc9-170a-4f25-872a-3688946c236d@suse.com>
 <DGZUFMGSILDF.3ES3YACXM6AG4@amd.com>
 <f5b74658-3a5f-47ac-8eaa-3f7fbf431a32@suse.com>
 <DGZVMOYWFGY5.3NSQ9DUBFDOLR@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: <DGZVMOYWFGY5.3NSQ9DUBFDOLR@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.03.2026 11:21, Alejandro Vallejo wrote:
> On Wed Mar 11, 2026 at 10:30 AM CET, Jan Beulich wrote:
>> On 11.03.2026 10:25, Alejandro Vallejo wrote:
>>> On Wed Mar 11, 2026 at 9:35 AM CET, Jan Beulich wrote:
>>>> On 13.02.2026 12:42, Alejandro Vallejo wrote:
>>>>> -    if ( opt_hvm_fep )
>>>>> -    {
>>>>> -        const struct segment_register *cs = &ctxt.seg_reg[x86_seg_cs];
>>>>> -        uint32_t walk = ((ctxt.seg_reg[x86_seg_ss].dpl == 3)
>>>>> -                         ? PFEC_user_mode : 0) | PFEC_insn_fetch;
>>>>
>>>> Why is this initializer not retained?
>>>
>>> It is, it's just that the diff is terrible. An unfortunate side effect of the
>>> removal of the braces. The scope collapsing forces it on top of the function,
>>> before the emulation context is initialised.
>>>
>>> It's set up in steps. walk is unconditionally initialised as isnsn_fetch, and
>>> later (after emulate_init_once()), OR'd with PFEC_user_mode for DPL == 3. See...
>>>
>>>>
>>>>> -        unsigned long addr;
>>>>> -        char sig[5]; /* ud2; .ascii "xen" */
>>>>> -
>>>>> -        if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip,
>>>>> -                                        sizeof(sig), hvm_access_insn_fetch,
>>>>> -                                        cs, &addr) &&
>>>>> -             (hvm_copy_from_guest_linear(sig, addr, sizeof(sig),
>>>>> -                                         walk, NULL) == HVMTRANS_okay) &&
>>>>> -             (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) == 0) )
>>>>> -        {
>>>>> -            regs->rip += sizeof(sig);
>>>>> -            regs->eflags &= ~X86_EFLAGS_RF;
>>>>> +    hvm_emulate_init_once(&ctxt, NULL, regs);
>>>>>  
>>>>> -            /* Zero the upper 32 bits of %rip if not in 64bit mode. */
>>>>> -            if ( !(hvm_long_mode_active(cur) && cs->l) )
>>>>> -                regs->rip = (uint32_t)regs->rip;
>>>>> +    if ( ctxt.seg_reg[x86_seg_ss].dpl == 3 )
>>>>> +        walk |= PFEC_user_mode;
>>>
>>> ... here.
>>
>> But that's the point of my question: Why did you split it? All you mean to
>> do is re-indentation.
> 
> Because I need to declare "walk" ahead of the statements. Thus this...
> 
>     uint32_t walk = ((ctxt.seg_reg[x86_seg_ss].dpl == 3)
>                      ? PFEC_user_mode : 0) | PFEC_insn_fetch;
> 
> must (by necessity) have the declaration placed on top before the emulator
> context initialisation. The options are...
> 
>     uint32_t walk;
>     [... lines ...]
>     walk = ((ctxt.seg_reg[x86_seg_ss].dpl == 3)
>             ? PFEC_user_mode : 0) | PFEC_insn_fetch;
> 
> ... or...
> 
>     uint32_t walk = PFEC_insn_fetch;
>     [... lines ...]
>     if ( ctxt.seg_reg[x86_seg_ss].dpl == 3 )
>         walk |= PFEC_user_mode;
> 
> Line count remains at 3 in both cases, but in the former case there's a
> comparison, a ternary operator and an OR all adding cognitive load to the
> same statement. In the latter case there's an assignment in the 1st statement,
> an if+comparison in a separate line, and a separate OR in the final statement.
> It's just simpler to meantally parse because the complexity is evenly
> distributed.
> 
> I can see how the current form was preferred to avoid a third line (and
> then a forth due to the required newline, doubling the total). But with the
> rearrangement that's no longer relevant.
> 
> If you have a very strong preference for the prior form I could keep it, though
> I do have a preference myself for the latter out of improved readability.

Strong preference or not - readability is subjective. I prefer the present
form, where the variable obtains it final value right away. More generally,
with subjective aspects it may often be better to leave mechanical changes
(here: re-indentation) as purely mechanical. Things are different with
objective aspects, like style violations which of course can (and imo
preferably should) be corrected on such occasions.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 11:38:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 11:38:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251043.1548342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0Htg-0002z1-2h; Wed, 11 Mar 2026 11:38:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251043.1548342; Wed, 11 Mar 2026 11:38:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0Htf-0002yu-Vv; Wed, 11 Mar 2026 11:38:39 +0000
Received: by outflank-mailman (input) for mailman id 1251043;
 Wed, 11 Mar 2026 11:38: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=ae2Q=BL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w0Hte-0002ym-38
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 11:38:38 +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 d732a5f6-1d3e-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 12:38:36 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4853c3c2fe7so20510725e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 04:38:36 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4854b0dcf2asm25150185e9.8.2026.03.11.04.38.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Mar 2026 04:38:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d732a5f6-1d3e-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773229116; x=1773833916; 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=jTMhN/XBLRhbVc49obxdvF8PZceTAcH/NBbJ45h94Rc=;
        b=TZc2pQtc8SXI8Q6iN3Ov0BqoImT+gjx8lwmF84NgRHlzLqP3C62sUz0De8Z/8dE+7q
         RVmuo2RemGg/olpAnyHRZHlV9NvluPDTpE8j+pwglXMIWN+4rxmvKukM4I3dpu6s5bbH
         TRIyGAk2OODTfFOPh46zdjkZphF7q/Y/xTiWwdtNGCkviQlrs5CF5s45OfQtWJMmmyph
         4+sPJl/AUYegREVHq0OlQyeaCVl1mwTNvxse6XPV0yEqtFTK4j9J49sjPHb0UGEzSWnz
         CgRI43tv+i3VA5PDp1uj/BfzOVDU4kw5f+E3vMFoNbnZ/I0j0e9H0SY649hIau04THBs
         o6iw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773229116; x=1773833916;
        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=jTMhN/XBLRhbVc49obxdvF8PZceTAcH/NBbJ45h94Rc=;
        b=bVKL8vWstJUi6ucPscAm3koAIPuk3F3CF1iRykVH9Z19BKtqcFvRZwoOz+Z4W6U6Rh
         Za7OpFaBm24oOdC17eNrr3/cWTWlV66rZa7FirJ6JZrFpgZ4pu/ESwiJPA8IEhCiIat6
         Tn7EbtAetwe4Snj1EoYKGCw76IMiSzFKnKjpSAnyXu65fyD1QYjGTK1P8rlbmGBN5mFa
         LTNEKitljbxdzdH5Uw67/Fm8Shl7iZpuT6WHqfVYPyaSoczvlx5JRzEH4eGC0oeASPSe
         8B3a94UXD2ybeXoWWnY64FAABFBZNFExJ8JW36PKIKESJsS4AeMtNHpr9GcBkeKlhejg
         lG2w==
X-Forwarded-Encrypted: i=1; AJvYcCVSm5GZiyDh2uKGv8sY7Dwf4SumlbvQIkSIgQn6uEyUDYTA+5pJRQTa3RW31exFPwEV976E8yfXqjE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxpYgH9Kb9NusfjRCcblVdBfuuItpgKK29WN7x5tdER1dNA2Mio
	qWY1TgE7g1v90mIm2VuSXV1qE/TMf8e691Wgbxq5T3ckSlap6OH/0PiG
X-Gm-Gg: ATEYQzxmvNFA43iUMrnCmFsIfM23STcMMWoawN7kKtFcm0egEc+urQrrZCMvU3aydTo
	a4Xzq32WcnFqHWsVJWtp4yY5fpZ0rLtefwnCPeLVDk1QA3vX8+CfpKemZyv00Nj8zMEQJ/G4F6b
	Nsvl+ecygbm5ce6xscGFec4Fqx9ZZh0mjYZym1pje0FDFCUEj/F8Ymoai/2tu/XiacygGJx+Sgg
	puole6LyXVBn4yvSo7xABaguRARQbtwWnc1Ao6z+tGks7FKipGa31NA3tkpNN8AI1BYADhS3UjD
	IfWtds9LcKTxR+5u4Ua9xrGmzBBQuGYzt43aHj2kVpWjcMxcxeU67Qb9cjV15Y+SixJOf3C+NeS
	AMB5Fj4i1NNx6SZZrGh6QPF0dXo91A9Qn1gVMGz4UMGMQ5eTBmenKJY3gxZ4UnqmCAby318168A
	ng9V0YwhWFR4n3yvc4R400yA47oTtSF/4eoXE6OocXe6KQrcqad3e7hMCgOLI1lFkKn6hQl9x7i
	tY=
X-Received: by 2002:a05:600c:8710:b0:485:3f72:3230 with SMTP id 5b1f17b1804b1-4854b0d2917mr35612335e9.15.1773229115406;
        Wed, 11 Mar 2026 04:38:35 -0700 (PDT)
Message-ID: <87eb8fb1-aa50-436c-8e2e-050981af4d1b@gmail.com>
Date: Wed, 11 Mar 2026 12:38:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 14/14] xen/riscv: Disable SSTC extension and add
 trap-based CSR probing
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>, xen-devel@lists.xenproject.org
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
 <f7b30c80eabd3ba371a0d541e3be023314ec37fd.1772814110.git.oleksii.kurochko@gmail.com>
 <9ff93ad1-0151-4f37-a6c2-f7dd4197ca84@suse.com>
 <e0a891c4-3283-4e1b-81e4-f2b4bb62b5fa@gmail.com>
 <2e471f54-1885-4615-8a23-c33ce683158f@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <2e471f54-1885-4615-8a23-c33ce683158f@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 3/11/26 11:58 AM, Jan Beulich wrote:
> On 11.03.2026 10:54, Oleksii Kurochko wrote:
>> On 3/10/26 10:15 AM, Jan Beulich wrote:
>>> On 06.03.2026 17:33, Oleksii Kurochko wrote:
>>>> --- a/automation/scripts/qemu-smoke-riscv64.sh
>>>> +++ b/automation/scripts/qemu-smoke-riscv64.sh
>>>> @@ -7,7 +7,7 @@ rm -f smoke.serial
>>>>    
>>>>    export TEST_CMD="qemu-system-riscv64 \
>>>>        -M virt,aia=aplic-imsic \
>>>> -    -cpu rv64,svpbmt=on \
>>>> +    -cpu rv64,svpbmt=on,sstc=off \
>>>>        -smp 1 \
>>>>        -nographic \
>>>>        -m 2g \
>>> How does this fit with you panic()ing when SSTC isn't available (i.e. the
>>> register cannot be read)? I must be missing something, likely a result of
>>> me not being able to really understand the description.
>> When SSTC isn't available my panic() won't occur and then will continue to
>> be executed. Otherwise, when SSTC is enabled (it is enabled by QEMU by default)
>> my panic will occur.
> Oh, I notice I misread the condition around the panic(), mainly because of
> the misleading / ambiguous message passed to it: "SSTC isn't supported\n"
> can mean unsupported by Xen or unsupported by the platform.
>
> Anyway, to me this is entirely bogus: Why would we panic() because there is
> a certain extension available?

It is bogus because then we need also add support of SSTC for a guest what isn't
done now thereby if it is detected that SSTC is available that it is dangerous
to continue about full support (guest part) of it.

I thought about the case to let Xen use SSTC and just don't tell Linux that SSTC
is available by dropping from riscv,isa property the mentioning of SSTC, so then
Linux will still continue to use SBI set timer call to Xen and the will just
safely reprogram (if it is needed) a timer using SSTC instructions. But if to do
in this way still nothing will prevent a guest to test if SSTC is available by
reading CSR_STIMECMP and nothing will prevent to access CSR_VSTIMECMP by guest
what could also lead to some misleading behavior.
Likely we could set henvcfg.STCE to zero and it will forbid guest to access SSTC
registers but I am not sure that we really want such behavior when Xen is using
SSTC to setup a timer, but guest isn't allowed. It seems it will be better just
support SSTC extension fully and not to support it only for now.

>
>>>> --- a/xen/arch/riscv/include/asm/csr.h
>>>> +++ b/xen/arch/riscv/include/asm/csr.h
>>>> @@ -9,6 +9,7 @@
>>>>    #include <asm/asm.h>
>>>>    #include <xen/const.h>
>>>>    #include <asm/riscv_encoding.h>
>>>> +#include <asm/traps.h>
>>>>    
>>>>    #ifndef __ASSEMBLER__
>>>>    
>>>> @@ -78,6 +79,37 @@
>>>>                               : "memory" );                        \
>>>>    })
>>>>    
>>>> +/*
>>>> + * Some functions inside asm/system.h requires some of the macros above,
>>>> + * so this header should be included after the macros above are introduced.
>>>> + */
>>>> +#include <asm/system.h>
>>>> +
>>>> +#define csr_read_allowed(csr_num, trap) \
>>>> +({ \
>>>> +    register unsigned long tinfo asm("a3") = (unsigned long)trap; \
>>> Why can't this variable be of the correct (pointer) type? This would then
>>> at the same time serve as a compile-time check for the caller to have
>>> passed an argument of the correct type.
>> Good point it could be an option.
>>
>>>> +    register unsigned long ttmp asm("a4"); \
>>>> +    register unsigned long stvec = (unsigned long)&do_expected_trap; \
>>> Fiddling with stvec may be okay-ish very early during boot. NMIs, for
>>> example, do exist in principle on RISC-V, aiui. There must be a way for them
>>> to be dealt with by other than just M-mode.
>> Do I understand correct that your concern is about that if NMIs will be handled
>> in HS-mode that switching stvec in this way could be dangerous as do_expected_trap()
>> doesn't know how to handle NMIs?
> Yes.
>
>> If yes, then NMIs should be handled by M-mode as:
>>     Non-maskable interrupts (NMIs) are only used for hardware error conditions, and
>>     cause an immediate jump to an implementation-defined NMI vector running in M-mode
>>     regardless of the state of a hart’s interrupt enable bits
>> and:
>>     The non-maskable interrupt is not made visible via the mip register as its
>>     presence is implicitly known when executing the NMI trap handler.
>>
>> So standard delegation registers like mideleg do not apply to NMIs because NMIs
>> are not visible in the mip register.
>>
>> I haven't found in OpenSBI how they are explicitly handling NMIs, but it looks
>> like if they happen in (H)S-mode or (V)U-mode then they will be just redirected
>> to (H)S-mode or V(U)-mode:
>>     https://github.com/riscv-software-src/opensbi/blob/master/lib/sbi/sbi_trap.c#L361
>> And then do_expected_trap() will fail to handle them...
>>
>> Interesting that other hypervisors are using the similar approarch (with temporary
>> updating of stvec) and they haven't faced such issue with NMIs yet...
> Well, NMIs may be rare to occur? And hence very unlikely to occur in this small
> a window?

It is still sound risky and ASM_EXTABLE approach sounds more safe particular in this
case.

>
>>>> +    register unsigned long ret = 0; \
>>>> +    unsigned long flags; \
>>>> +    ((struct trap_info *)(trap))->scause = 0; \
>>> "trap" would better be of the correct type. Don't use casts like this, please.
>>>
>>> Further, wouldn't you better set the field to a guaranteed invalid value? 0 is
>>> CAUSE_MISALIGNED_FETCH, after all.
>> I don't see that such an invalid value exist for scause. I think we have to reserved
>> a value from region 24-31 or 48-63 as they are designated for custom use.
> Not sure that's possible. "Custom use" may mean "custom" from hw perspective.
> I was rather thinking of picking something pretty high in the reserved range,
> like (1 << (MXLEN-1)) - 1 or 1 << (MXLEN-2).

Agree, it could be an option.

>
>>>> +    local_irq_save(flags); \
>>>> +    asm volatile ( \
>>>> +        ".option push\n" \
>>>> +        ".option norvc\n" \
>>> Shouldn't this come later?
>> Do you mean before where SSTC csr is really tried to be read ("csrr %[ret], %[csr]\n")?
> Yes.
>
>> Does it really matter in such small inline assembler?
> Yes, if nothing else then to not raise questions. Plus (depending on the
> specific operands used), the ADD (MV) could e.g. be representable by a C insn.
>
>>> And why set ttmp in the first place, when
>>> that's what do_expected_trap() writes to?
>> To force the compiler to materialize tinfo in register a4 (ttmp) before the
>> trap handler runs as handler will use a4 as temporary register.
> ??? I don't understand what you mean with "materialize".

Mean forcing the compiler to load the variable into the specific hardware
register (a4) before the potentially trapping instruction executes, so the
trap handler can safely use that register.

>
>>>> +        "csrr %[ret], %[csr]\n" \
>>>> +        "csrw " STR(CSR_STVEC) ", %[stvec]\n" \
>>>> +        ".option pop" \
>>>> +        : [stvec] "+&r" (stvec), [tinfo] "+&r" (tinfo), \
>>> tinfo isn't modified, is it?
>> It is modified by handler.
> Where? It's only used as the address of the two stores.

There are to updates of tinfo in the do_expected_trap():

FUNC(do_expected_trap)
         ...
         REG_S   a4, RISCV_TRAP_SEPC(a3)
         ...
         REG_S   a4, RISCV_TRAP_SCAUSE(a3)
         ...
END(do_expected_trap)


>
>>>> +          [ttmp] "+&r" (ttmp), [ret] "=&r" (ret) \
>>> ttmp isn't initialized (in C), so the compiler could legitimately complain
>>> about the use of an uninitialized variable here (due to the use of + where
>>> = is meant).
>> ttmp is modified by handler too.
> Of course, but just to repeat - you mean "=&r" there.
>
>>> Whereas for ret the situation is the other way around - you initialize the
>>> variable, just to then tell the compiler that it can drop this
>>> initialization, as - supposedly - the asm() always sets it (which it doesn't
>>> when the csrr faults).
>> It was done in that way as when csrr will lead to a fault, handler will jump
>> over the csrr instruction and so ret won't be set at all. For that case it was
>> set to 0.
> And again - this is meaningless if the constraint is "=&r".

Make sense...

>
>>>> +        : [csr] "i" (csr_num) \
>>>> +        : "memory" ); \
>>>> +    local_irq_restore(flags); \
>>>> +    ret; \
>>>> +})
>>> A macro of this name would better return an indicator of what it is checking,
>>> rather than the CSR value (which the sole user of this macro doesn't even
>>> care about).
>> With the current one use case it doesn't care but generally I think that someone
>> will want to use this macro just to get CSR value. I don't have a speicifc example
>> but still it could be used in this way.
> Well, if you want to keep it doing so, make the name match what it does (and
> in particular what it returns).
>
>>> Ideally such would also be an inline function.
>> I thought about that but I had difficulties with csr* instruction and their second
>> operand which expects to have immediate. But if I will have inline function that
>> csr_num will be in register.
> Only if the function wouldn't be inlined, I expect? Which hence you may need
> to force, by using always_inline.

It could work.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Mar 11 12:41:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 12:41:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251082.1548361 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0Irw-0002mp-KO; Wed, 11 Mar 2026 12:40:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251082.1548361; Wed, 11 Mar 2026 12:40:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0Irw-0002mi-Gl; Wed, 11 Mar 2026 12:40:56 +0000
Received: by outflank-mailman (input) for mailman id 1251082;
 Wed, 11 Mar 2026 12:40:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tK7a=BL=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1w0Irv-0002mc-Hg
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 12:40:55 +0000
Received: from BN8PR05CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c110::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8aad7e35-1d47-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 13:40:53 +0100 (CET)
Received: from PH7P221CA0071.NAMP221.PROD.OUTLOOK.COM (2603:10b6:510:328::24)
 by MW6PR12MB7085.namprd12.prod.outlook.com (2603:10b6:303:238::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.12; Wed, 11 Mar
 2026 12:40:47 +0000
Received: from CY4PEPF0000EE37.namprd05.prod.outlook.com
 (2603:10b6:510:328:cafe::ec) by PH7P221CA0071.outlook.office365.com
 (2603:10b6:510:328::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.26 via Frontend Transport; Wed,
 11 Mar 2026 12:40:47 +0000
Received: from satlexmb07.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.9678.18 via Frontend Transport; Wed, 11 Mar 2026 12:40:46 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 11 Mar
 2026 07:40:45 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8aad7e35-1d47-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AuCMEP9XpWU3ctKIjFlHgv8tUHBD2D577Y0Lf5B/eh1aMV5ERR8mBIWsOpeGvpcpD5CWZiwU3VWaRDyduuuDeVo57M7b1wiEw5J1FmpDmwj/qqGox8g0jPw0elVQ9SvEbCxpFEXzQoLdAEXSFhtK2UKVtit9LYfpDejJ/jjVtfWBhuVMle+fWcXrGtUtShC7PoG4fsC/GeRwrUztoM11J90Q4+dx4p8+i5Cy79XJey97GoMNJBMI3zaSjGbAt34fWi1wZMnO0s+d69nz0LARpB4SqtvJPbQNyj9hMzKua803g975jjNgAVsc+6K0vPosjTSja+qFFVMR3taSTECgOQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VkIQXLNOHmFB9zDorOhqVCMM0hyznygcYm0FFlY59vk=;
 b=o0yK55K08Ag2vHYZGVT4sALGePyTTg6pv7ZSuFdzePPwtPXcPq4xzO5jdpNur+xXCKJrki18HPRodbMaDsbAOW33+y8ZHJHstjPzrAM8VLjoEq2XWLhKZgXO0AUryaA1Vu3p1B7eEkDhf0jIDWbYwcb+7c+7kdfbjF9O+b7oaZ463C2lG3T2xTYAOiKs7Q3UwtJa/CX3M10jISccsrh9T/FSKdkkO6eJVnKv5sbbJEyHmSsN8wPoLov/2Pt2iEtYzE9NB8koXtAJ6JfPsXGMh9XVreA6A7QWFexB9GEihTwzy2QxDh9Fi1A21+ltkBvZaaGgyL/JTXTghZIlOD4O+w==
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=VkIQXLNOHmFB9zDorOhqVCMM0hyznygcYm0FFlY59vk=;
 b=RglvFu5sGsbTJ7/mFcFJqNt2aVc32yIe06JbTCfe2gdALxv5NU4GUp2/+SPOh5Jk8Cz77K5yYWzvlLlOAJ6L2IU46SEwQ++u8mwn+WfM065dmhuEkcioD7x/GOp96FGeNeyHabf63915JppZhQFGGt9JItEQmfh4eF1jhD7hFKU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 11 Mar 2026 13:40:44 +0100
Message-ID: <DGZYKZ2PYXJU.1F5BZQKPFZOTF@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3 2/4] x86/hvm: Disable cross-vendor handling in #UD
 handler
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
X-Mailer: aerc 0.20.1
References: <20260213114232.42996-1-alejandro.garciavallejo@amd.com>
 <20260213114232.42996-3-alejandro.garciavallejo@amd.com>
 <813d3fc9-170a-4f25-872a-3688946c236d@suse.com>
 <DGZUFMGSILDF.3ES3YACXM6AG4@amd.com>
 <f5b74658-3a5f-47ac-8eaa-3f7fbf431a32@suse.com>
 <DGZVMOYWFGY5.3NSQ9DUBFDOLR@amd.com>
 <66926b3b-82e0-4595-b54f-e73cef396ea2@suse.com>
In-Reply-To: <66926b3b-82e0-4595-b54f-e73cef396ea2@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: CY4PEPF0000EE37:EE_|MW6PR12MB7085:EE_
X-MS-Office365-Filtering-Correlation-Id: 4d679ad1-7eb7-46d1-93a0-08de7f6b6b3b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|1800799024|82310400026|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	EplUtRIzctCE5VNr1hhQBufyXtpzmVnHlRFB5UFfM19puqbegZp+EBYYex0tWNt0W+WwNsrC4CINi2zyvnsGfBIfL/htcMQ88UTcqwKQMFiAbATJl4BZU3RDCV+g1h/+ZvAJvBPufiu2Il1j2GIIGpjWcsSDjsj/tusSbaGKiI/vRwfaqcERbKf1qQe6DynltjU+Oi9S4m50CVjSA5nFrO6NBmoWUYGgyFSUD5FClLhH0qCZGpWf3K1xwa5ngS51DFWt2Cbz6xo6F73YSNwc7jhDOxN4/HHiUeoBSwyfgOxQwp0o8d1Mo2HB0QJOPQTDP8ReDWUkOtIdEf1I05Z1TO16d2AMqa2Ks5sS4XkDdCQBWSFtZ+MSTnmLLouetMyRCoc/KZWDCJnnzahTD3z2ka+A2qS1leVqzBK1ljOypwrX1h7qtyrwvMthJ2OzAcl2sRoxD8oamS8uWyHA+jNTbWid6zchLIYqDLrJ7oApT1z9tuOUbXlrq/PmT8K0f4M8xbOYVDeSfDd+mhLyhyNfwD9kJKMC4X2LleUF5QCqnBT8pkE4NpRONSuzg0sRShk7efjDURPtsLhYu33j4pxrruh7S4P448DKZ38f9y1eGmBmjMQjgHQ3UlrI2+7Krm2hzYA5NeFH8lMnu37qT4obDxnKTnK4qwmgEb2F0yo14UYcbP6noAB9TuITA0m6BcQqM/6N8f6kM3aMjbmmYUAKnWcITUcNHeKVF0n1oTLtDZr8rFzgaOeqLA0bsh5BvsO7L3tVf9OxN5ZkZnL6IPVhlw==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(1800799024)(82310400026)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	6CFXoKZQ6Wa2G3HrgAt8Tb420P09OoE1X8ffJ9lSEMtQ5mGnD2y/NFgKSuGb0bIp/NxcB8kkeP5pqh1ZiO5uEBBFS03diDjUDYUf8eX+j9ebn2qgH2Vhfk/4o1HKxqxcgxLcPArzQPipyMJY41wJGnvP2+A3wDCt0UvZ5+u6VPkma/oIfmLfQr9BjQP/qXUJeyQUviVqFN7ldko9BzJhPlzYQrjHT4+b7FGfhcjcFSCrNUH8VXNNTLy6rEG7z6cD5tHt2jyMFRDOkfBhH7jiYO+2d93aKHt7cIXU6yrPFEaMIg88MkO8yeFJ3QBGDaX3VkCnmC6FuqEvCRbjZfZxtdrecdP0epLNzIZNK7HVzK1FyCSKfBC58LPJ+jYP6wC1iBx44FrY9n6tZ5AcTqcwHOA0p7UyyIphfLKy+mmC/nmRzhAxx2UMw2jPrwR0ept/
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2026 12:40:46.9603
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4d679ad1-7eb7-46d1-93a0-08de7f6b6b3b
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.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: MW6PR12MB7085

On Wed Mar 11, 2026 at 12:06 PM CET, Jan Beulich wrote:
> On 11.03.2026 11:21, Alejandro Vallejo wrote:
>> On Wed Mar 11, 2026 at 10:30 AM CET, Jan Beulich wrote:
>>> On 11.03.2026 10:25, Alejandro Vallejo wrote:
>>>> On Wed Mar 11, 2026 at 9:35 AM CET, Jan Beulich wrote:
>>>>> On 13.02.2026 12:42, Alejandro Vallejo wrote:
>>>>>> -    if ( opt_hvm_fep )
>>>>>> -    {
>>>>>> -        const struct segment_register *cs =3D &ctxt.seg_reg[x86_seg=
_cs];
>>>>>> -        uint32_t walk =3D ((ctxt.seg_reg[x86_seg_ss].dpl =3D=3D 3)
>>>>>> -                         ? PFEC_user_mode : 0) | PFEC_insn_fetch;
>>>>>
>>>>> Why is this initializer not retained?
>>>>
>>>> It is, it's just that the diff is terrible. An unfortunate side effect=
 of the
>>>> removal of the braces. The scope collapsing forces it on top of the fu=
nction,
>>>> before the emulation context is initialised.
>>>>
>>>> It's set up in steps. walk is unconditionally initialised as isnsn_fet=
ch, and
>>>> later (after emulate_init_once()), OR'd with PFEC_user_mode for DPL =
=3D=3D 3. See...
>>>>
>>>>>
>>>>>> -        unsigned long addr;
>>>>>> -        char sig[5]; /* ud2; .ascii "xen" */
>>>>>> -
>>>>>> -        if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip,
>>>>>> -                                        sizeof(sig), hvm_access_ins=
n_fetch,
>>>>>> -                                        cs, &addr) &&
>>>>>> -             (hvm_copy_from_guest_linear(sig, addr, sizeof(sig),
>>>>>> -                                         walk, NULL) =3D=3D HVMTRAN=
S_okay) &&
>>>>>> -             (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) =3D=3D 0) )
>>>>>> -        {
>>>>>> -            regs->rip +=3D sizeof(sig);
>>>>>> -            regs->eflags &=3D ~X86_EFLAGS_RF;
>>>>>> +    hvm_emulate_init_once(&ctxt, NULL, regs);
>>>>>> =20
>>>>>> -            /* Zero the upper 32 bits of %rip if not in 64bit mode.=
 */
>>>>>> -            if ( !(hvm_long_mode_active(cur) && cs->l) )
>>>>>> -                regs->rip =3D (uint32_t)regs->rip;
>>>>>> +    if ( ctxt.seg_reg[x86_seg_ss].dpl =3D=3D 3 )
>>>>>> +        walk |=3D PFEC_user_mode;
>>>>
>>>> ... here.
>>>
>>> But that's the point of my question: Why did you split it? All you mean=
 to
>>> do is re-indentation.
>>=20
>> Because I need to declare "walk" ahead of the statements. Thus this...
>>=20
>>     uint32_t walk =3D ((ctxt.seg_reg[x86_seg_ss].dpl =3D=3D 3)
>>                      ? PFEC_user_mode : 0) | PFEC_insn_fetch;
>>=20
>> must (by necessity) have the declaration placed on top before the emulat=
or
>> context initialisation. The options are...
>>=20
>>     uint32_t walk;
>>     [... lines ...]
>>     walk =3D ((ctxt.seg_reg[x86_seg_ss].dpl =3D=3D 3)
>>             ? PFEC_user_mode : 0) | PFEC_insn_fetch;
>>=20
>> ... or...
>>=20
>>     uint32_t walk =3D PFEC_insn_fetch;
>>     [... lines ...]
>>     if ( ctxt.seg_reg[x86_seg_ss].dpl =3D=3D 3 )
>>         walk |=3D PFEC_user_mode;
>>=20
>> Line count remains at 3 in both cases, but in the former case there's a
>> comparison, a ternary operator and an OR all adding cognitive load to th=
e
>> same statement. In the latter case there's an assignment in the 1st stat=
ement,
>> an if+comparison in a separate line, and a separate OR in the final stat=
ement.
>> It's just simpler to meantally parse because the complexity is evenly
>> distributed.
>>=20
>> I can see how the current form was preferred to avoid a third line (and
>> then a forth due to the required newline, doubling the total). But with =
the
>> rearrangement that's no longer relevant.
>>=20
>> If you have a very strong preference for the prior form I could keep it,=
 though
>> I do have a preference myself for the latter out of improved readability=
.
>
> Strong preference or not - readability is subjective. I prefer the presen=
t
> form, where the variable obtains it final value right away. More generall=
y,
> with subjective aspects it may often be better to leave mechanical change=
s
> (here: re-indentation) as purely mechanical. Things are different with
> objective aspects, like style violations which of course can (and imo
> preferably should) be corrected on such occasions.

Ack

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 12:44:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 12:44:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251090.1548369 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0Iv0-0003Hn-0G; Wed, 11 Mar 2026 12:44:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251090.1548369; Wed, 11 Mar 2026 12:44:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0Iuz-0003Hg-To; Wed, 11 Mar 2026 12:44:05 +0000
Received: by outflank-mailman (input) for mailman id 1251090;
 Wed, 11 Mar 2026 12:44:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tK7a=BL=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1w0Iuy-0003Ha-TJ
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 12:44:04 +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 f91415a5-1d47-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Mar 2026 13:43:59 +0100 (CET)
Received: from PH8P223CA0018.NAMP223.PROD.OUTLOOK.COM (2603:10b6:510:2db::28)
 by SA5PPF7D510B798.namprd12.prod.outlook.com
 (2603:10b6:80f:fc04::8d0) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.10; Wed, 11 Mar
 2026 12:43:52 +0000
Received: from CY4PEPF0000EE30.namprd05.prod.outlook.com
 (2603:10b6:510:2db:cafe::82) by PH8P223CA0018.outlook.office365.com
 (2603:10b6:510:2db::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.26 via Frontend Transport; Wed,
 11 Mar 2026 12:43:51 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CY4PEPF0000EE30.mail.protection.outlook.com (10.167.242.36) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Wed, 11 Mar 2026 12:43:51 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 11 Mar
 2026 07:43:49 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f91415a5-1d47-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Wn3I7U1/urEkvk3hnqSAyvbIoe+zTfaqoFQlWhvwYwKNYj+gjGdFkTMUtxv3vtK8Z9b/6AWcUqokEmynz8KHqTBRh6PSJwq7JKAPxXDv8ybM+cR7U5lJNlENS/Gbj1AZ1CnYKVeml5X3Tz26s2nv1t6Lez7CdGezPfwtXTe7Mvif4w6HYNvddiVu2ihUa6N0ZvlqqFYx0Vz/eUfKffhvnvTdmZOyxF3UwXUfBLOGyL81LmHLPkvb3M7YZMctdUxhEYmg9R3eBh2CY8omkte++wxQNIe02h0/3vPM2jqloda8GO56L72OWGWP7Wmjezan5PLiFWDlqh64XoGc0MHkpA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EG8cZI98ZOM0QjlQOmrqhILQJn7/3KTuPiOq/eLp4m8=;
 b=p1BK2UrC8FSO4ONjUeHYQDqKgilrY0GLRYYGD1j8l0GoizsLWBl2UDT4Lmy3rMfYDuTeBQH3OUt1j3R/JyXMkvKId+Rcw2T+N9llN/797hPGI+Y5VC/3v8Bg4E6ykagWS1eskOMLyic/J2YC1p37KPgF34t3B8s6SzxWRLVKSsu0oSuAr79EOugDNlsj7KBsHstqqGB2LuL3bqhbl97DK7TJajznsi3onGr/juWJ27HIBvQnpeI8Vt64SsKcxL0JoRV6rwhIuUMHoq4xrr+7zZ10qCXYapv7cxULW8Wh8c19f1LVtZw1KRE36BcCxJctPhmNUuiC66bYP+SGGZkbvA==
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=EG8cZI98ZOM0QjlQOmrqhILQJn7/3KTuPiOq/eLp4m8=;
 b=BI9un+tZxaJCTPgjb/F4yhXkVSkLWcE8tPxOJczRp8C2W4GdQqs+LDDg43Hnuf9LynPaVAcgzwgJI6XjYSVSGawMc8z/dlJMo8R/NeMLvmJcveeDMvvvIGtGlqgwOWVUA+DlQ0q9q0bN9cYwFQZhHmHXnSer2ZMqlrm0S663YH4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 11 Mar 2026 13:43:48 +0100
Message-ID: <DGZYNBIDOOEB.2IBI060VRIE9A@amd.com>
Subject: Re: [PATCH v3 1/4] x86: Reject CPU policies with vendors other than
 the host's
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>, Community Manager
	<community.manager@xenproject.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	<xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20260213114232.42996-1-alejandro.garciavallejo@amd.com>
 <20260213114232.42996-2-alejandro.garciavallejo@amd.com>
 <8ba61374-f05e-45d9-b1b2-0140edbb34a6@suse.com>
In-Reply-To: <8ba61374-f05e-45d9-b1b2-0140edbb34a6@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: CY4PEPF0000EE30:EE_|SA5PPF7D510B798:EE_
X-MS-Office365-Filtering-Correlation-Id: c4063f4b-cc07-4e68-f80d-08de7f6bd90e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700016|22082099003|56012099003|18002099003|13003099007;
X-Microsoft-Antispam-Message-Info:
	Qdsv4Me/1AxVxO0sZ0IOydAJdoUeJeaPbWC045b7C1yQhbU247F0v11WGD0qrtuW8BUCi9e8oe+yZL6VJDQEeL/OTOJ0KwPodf6pvBvhfmJg7WBp1vFl5JqSWZt3PXm6zhhcM2uyHDhmQkzEXuBtARVUBfeEw/Q6mmLr3oKa9PEsKCFnBI0uYV1FIhS6cp+mQ4PeI1cGM55/v2vSbl30u7HAu5hoqXkMZNdlqJZHdS3IZQYYOUjllOqDjZAv9m9CwL3N4VHM5XotLQXW44b0txU2qDDAY3GX2kkNC3pQSwrRAnjc1xgMN/hcayRhnP/ekO1+Wx2vSVcwU032AMg//frnOWcPYMfSan2Z8lDGXNaycU0zOBvA/dHy1BeYnWt8MF8hCtO19iMirIucZZmC64pfeoTBCs9S5PYh+4HmgtWE12baxLeJ0FeHrC40pcrVu479Ul4PeYEczB340ttbyTNSVzFs8UpDWWUCAV77KF/aPvZh4ytKEPv0oiXvTVBI+YU0yljYqpmthrGC0xn5FvnUcjFqcAExC595KxiioAKaLUhn7tYkOmmrw5FpFEzYY11PC/KljBIB3142vWr5m88Zqt8trysAlMetwgc2NstAFEJw6dGSMfVurs13uBnkT+x/VYoz6KTXEJukp5YWxQqppNH8Zyk6suYljZPum746ZfnKifPk3JRs2WQGA1oJ1B+7G5qPHgCNLEzJCZ6n3I/rIk4O61/ZDGwqcoc/Ldw=
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)(36860700016)(22082099003)(56012099003)(18002099003)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	RX/FnzcBSKbmZV/YSMsYrZ98NcXaHqn40PVT8jDTAP+a4C2VMGKyYta1Z1QGHcfUP06htAqKrIhy1GqWb+pf//pWVdDmbZ/fYffbsW6oL9TAqeSxRVAGSLcg+27d4GsEc/aoTcbLETex//QsLhTGodlgKhEd8APa1kRdgf+aem12stNP+UNbgtBOvHKDq/lXLC0JyuDY3CunJ3PtkApvJ8Bx56ebDM+qc3wvz1/+gAWP5hl6EPT5UBKh6R5NJrbfv4cwwW/5l2eTC8860nu6eCI2yXLHNWi1bWJXq0mgFdNAKz0h2iD3EkTqI6DXId4xhKObQIGJmVvZC/YUA/QFECH88/lp0hfCoQIbt2MfG7+LiMfWporWYgWwFCdJb/W4bBoOsPt/C3h9EIxJjrEYow0UU77fO/T+m7gW69I6BuuXpfe0HA8M1o13305v7L0N
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2026 12:43:51.2185
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c4063f4b-cc07-4e68-f80d-08de7f6bd90e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000EE30.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPF7D510B798

On Wed Mar 11, 2026 at 9:26 AM CET, Jan Beulich wrote:
> On 13.02.2026 12:42, Alejandro Vallejo wrote:
>> --- a/CHANGELOG.md
>> +++ b/CHANGELOG.md
>> @@ -22,6 +22,11 @@ The format is based on [Keep a Changelog](https://kee=
pachangelog.com/en/1.0.0/)
>>     - Xenoprofile support.  Oprofile themselves removed support for Xen =
in 2014
>>       prior to the version 1.0 release, and there has been no developmen=
t since
>>       before then in Xen.
>> +   - Domains can no longer run on a CPU vendor if they were initially l=
aunched
>> +     on a different CPU vendor. This affects live migrations and save/r=
estore
>> +     workflows accross mixed-vendor hosts. Cross-vendor emulation has a=
lways
>> +     been unreliable, but since 2017 with the advent of speculation sec=
urity it
>> +     became unsustainably so.
>
> While the code adjustment looks okay to me, the wording is a little odd. =
What is
> "run on a CPU vendor"? How about "Domains can no longer run on a system w=
ith CPUs
> of a vendor different from the one they were initially launched on"?
>
> Also, nit: "across".

Sure

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 12:54:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 12:54:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251110.1548378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0J5L-0004wZ-Rx; Wed, 11 Mar 2026 12:54:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251110.1548378; Wed, 11 Mar 2026 12:54:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0J5L-0004wS-Ox; Wed, 11 Mar 2026 12:54:47 +0000
Received: by outflank-mailman (input) for mailman id 1251110;
 Wed, 11 Mar 2026 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=oqCu=BL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0J5K-0004wM-AU
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 12:54:46 +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 7a19ce25-1d49-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 13:54:44 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4853e1ce427so36785325e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 05:54:44 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4854b66e3f8sm48934515e9.14.2026.03.11.05.54.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Mar 2026 05:54:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7a19ce25-1d49-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773233684; x=1773838484; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=U5ulGpwPGUeubOHrOFQJRstkDUZXs/VLi5V3Py6WIZE=;
        b=F3qfc0fW60rB261Eoyhmuqpk72nv9zDAMcqPqeO013RRZ71vOMcYVM2fe0gzbv06R3
         t3e3o37knb/gFfBUvZv04QlwEWaQDIE25YgK05ZiBNnqWGmkr39a0r5N3GANTNnOzELW
         PuAluxIufCGx1rmTXvLxH2jnx+yT1OBjPb4KLU7n+nJWBL2rYwHJ/QrFlSFatw8dvJBd
         iGEfZ0GX9iSwiuLeQSZRjMcxWeiNBU2yFtRLeBSlwfx1JxROYMyqpqogQL/pRSGmrfOj
         eu5j6HzG+zK21VK5wz1ZRVblH8XPXRSZk7RMiHxkg0SIZe9IJLa0/Ks+flv33fgJvJP6
         hPrA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773233684; x=1773838484;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=U5ulGpwPGUeubOHrOFQJRstkDUZXs/VLi5V3Py6WIZE=;
        b=ead6s4OmnB+0KJJ/GnBh0VjuH+LZ2TesWBvbq7+g1dgUGSwuP6SF7Zv9V7jCVy5Ujq
         wuq8vvWHaSvTJ9J8Cp3BUeFthIiQUmAPJWK2BZg1/+3e7SFdR4MDR9Pr31IGeYSOvvKX
         /2lZmnH4aQrBwBmI1L9mHIjXy75zfH50xdKUKEDEWD2eXa2fV1V3X63uOKIapkoWi1Zu
         RxPEqsf1LuZbkKv/qNAd88fACPWRYCaUGHtFN3qjBbm0H3IQLtHpdtbdp8l16vR4FvfS
         hImyV9GAJjpRcAIkU6o8mOd2HR+gA0lII7CiTyYoUuYaas173U3XXEMLByhDy7S97L6W
         Kobw==
X-Forwarded-Encrypted: i=1; AJvYcCVvZg5Fj4qCBY56/veGoX0koqPgMDld/tes/4yX9CN42nS4m/AuMmyWo/OppMIbDUm/2EC6btE2854=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzwHP0lJopixWsXiWnsHrTBb7s5lvE2b4nPK+gMhFZiKKN9hNVm
	MkQz8ctItkWKCPe8qJe6ZjCtwIYfoyb/HBHlSye6s7u45sdAOv9FOaxrrXbb/fDt7w==
X-Gm-Gg: ATEYQzyrFvqUn6zFYBKDRNILGrWWgPtjdUW/LF4LjRDF4cqxl5Lu7EvzoFosfvyJFia
	XiBp7ramOB+5mXmwyumyARGHaphhB3WegjacP9BRbn08E25D5qUXrKt8HimhsECno//An1O7wG3
	uP970NAkK7HA2ugWcwZkABudXEpKrpGE97VSMe9B3E9nqyl1ONrTnVSLGdHWPO72GYq15nPyKXs
	PNn1DAjMS0FSV/JAhw+w+nsZ/Zh184nw0TRcYAdUfC1cUruXZw+tLndJ7Qe9h93wkOqjevR5zCZ
	dBgPlaURGyBZ1fkng7B362s7zf++3JXcrvJ9GDqm3a1vfq5NOkO8nhTizeWJfo88NPK9SIffoXP
	RaXQEWmOSN0BHRz8X+Op/j8akYYsMBXvrKRB+mgZz+wYGz4eCvpEV6GSBRm4PGP3AkUwKIEsBqH
	Genb+WoZMfrovNIltJSoD2AMYqRjjnXJo7+PDK007jwNOo0yMmVm8GqT2S7UveMQoLAEU+ZjBpi
	Bssd5NXKM11MJE=
X-Received: by 2002:a05:600c:4693:b0:485:481c:e7bb with SMTP id 5b1f17b1804b1-4854b1009d9mr37946765e9.20.1773233683850;
        Wed, 11 Mar 2026 05:54:43 -0700 (PDT)
Message-ID: <66a4763e-6d98-4919-b3d5-350c4d23fc32@suse.com>
Date: Wed, 11 Mar 2026 13:54:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 14/14] xen/riscv: Disable SSTC extension and add
 trap-based CSR probing
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>, xen-devel@lists.xenproject.org
References: <cover.1772814110.git.oleksii.kurochko@gmail.com>
 <f7b30c80eabd3ba371a0d541e3be023314ec37fd.1772814110.git.oleksii.kurochko@gmail.com>
 <9ff93ad1-0151-4f37-a6c2-f7dd4197ca84@suse.com>
 <e0a891c4-3283-4e1b-81e4-f2b4bb62b5fa@gmail.com>
 <2e471f54-1885-4615-8a23-c33ce683158f@suse.com>
 <87eb8fb1-aa50-436c-8e2e-050981af4d1b@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: <87eb8fb1-aa50-436c-8e2e-050981af4d1b@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.03.2026 12:38, Oleksii Kurochko wrote:
> On 3/11/26 11:58 AM, Jan Beulich wrote:
>> On 11.03.2026 10:54, Oleksii Kurochko wrote:
>>> On 3/10/26 10:15 AM, Jan Beulich wrote:
>>>> On 06.03.2026 17:33, Oleksii Kurochko wrote:
>>>>> --- a/automation/scripts/qemu-smoke-riscv64.sh
>>>>> +++ b/automation/scripts/qemu-smoke-riscv64.sh
>>>>> @@ -7,7 +7,7 @@ rm -f smoke.serial
>>>>>    
>>>>>    export TEST_CMD="qemu-system-riscv64 \
>>>>>        -M virt,aia=aplic-imsic \
>>>>> -    -cpu rv64,svpbmt=on \
>>>>> +    -cpu rv64,svpbmt=on,sstc=off \
>>>>>        -smp 1 \
>>>>>        -nographic \
>>>>>        -m 2g \
>>>> How does this fit with you panic()ing when SSTC isn't available (i.e. the
>>>> register cannot be read)? I must be missing something, likely a result of
>>>> me not being able to really understand the description.
>>> When SSTC isn't available my panic() won't occur and then will continue to
>>> be executed. Otherwise, when SSTC is enabled (it is enabled by QEMU by default)
>>> my panic will occur.
>> Oh, I notice I misread the condition around the panic(), mainly because of
>> the misleading / ambiguous message passed to it: "SSTC isn't supported\n"
>> can mean unsupported by Xen or unsupported by the platform.
>>
>> Anyway, to me this is entirely bogus: Why would we panic() because there is
>> a certain extension available?
> 
> It is bogus because then we need also add support of SSTC for a guest what isn't
> done now thereby if it is detected that SSTC is available that it is dangerous
> to continue about full support (guest part) of it.
> 
> I thought about the case to let Xen use SSTC and just don't tell Linux that SSTC
> is available by dropping from riscv,isa property the mentioning of SSTC, so then
> Linux will still continue to use SBI set timer call to Xen and the will just
> safely reprogram (if it is needed) a timer using SSTC instructions. But if to do
> in this way still nothing will prevent a guest to test if SSTC is available by
> reading CSR_STIMECMP and nothing will prevent to access CSR_VSTIMECMP by guest
> what could also lead to some misleading behavior.
> Likely we could set henvcfg.STCE to zero and it will forbid guest to access SSTC
> registers but I am not sure that we really want such behavior when Xen is using
> SSTC to setup a timer, but guest isn't allowed.

I don't see what's wrong with Xen using an extension that isn't made available
to guests.

> It seems it will be better just
> support SSTC extension fully and not to support it only for now.

If at all, an ack for such from me would be pretty reluctantly given.

>>>>> +    register unsigned long ret = 0; \
>>>>> +    unsigned long flags; \
>>>>> +    ((struct trap_info *)(trap))->scause = 0; \
>>>> "trap" would better be of the correct type. Don't use casts like this, please.
>>>>
>>>> Further, wouldn't you better set the field to a guaranteed invalid value? 0 is
>>>> CAUSE_MISALIGNED_FETCH, after all.
>>> I don't see that such an invalid value exist for scause. I think we have to reserved
>>> a value from region 24-31 or 48-63 as they are designated for custom use.
>> Not sure that's possible. "Custom use" may mean "custom" from hw perspective.
>> I was rather thinking of picking something pretty high in the reserved range,
>> like (1 << (MXLEN-1)) - 1 or 1 << (MXLEN-2).
> 
> Agree, it could be an option.
> 
>>
>>>>> +    local_irq_save(flags); \
>>>>> +    asm volatile ( \
>>>>> +        ".option push\n" \
>>>>> +        ".option norvc\n" \
>>>> Shouldn't this come later?
>>> Do you mean before where SSTC csr is really tried to be read ("csrr %[ret], %[csr]\n")?
>> Yes.
>>
>>> Does it really matter in such small inline assembler?
>> Yes, if nothing else then to not raise questions. Plus (depending on the
>> specific operands used), the ADD (MV) could e.g. be representable by a C insn.
>>
>>>> And why set ttmp in the first place, when
>>>> that's what do_expected_trap() writes to?
>>> To force the compiler to materialize tinfo in register a4 (ttmp) before the
>>> trap handler runs as handler will use a4 as temporary register.
>> ??? I don't understand what you mean with "materialize".
> 
> Mean forcing the compiler to load the variable into the specific hardware
> register (a4) before the potentially trapping instruction executes, so the
> trap handler can safely use that register.

I fear there's some misunderstanding on inline assembly here. An output-only
variable doesn't need "pre-loading". But anyway, all of this is gong to be
moot here (but potentially relevant elsewhere in the future) when this
becomes a mere clobber.

>>>>> +        "csrr %[ret], %[csr]\n" \
>>>>> +        "csrw " STR(CSR_STVEC) ", %[stvec]\n" \
>>>>> +        ".option pop" \
>>>>> +        : [stvec] "+&r" (stvec), [tinfo] "+&r" (tinfo), \
>>>> tinfo isn't modified, is it?
>>> It is modified by handler.
>> Where? It's only used as the address of the two stores.
> 
> There are to updates of tinfo in the do_expected_trap():
> 
> FUNC(do_expected_trap)
>          ...
>          REG_S   a4, RISCV_TRAP_SEPC(a3)
>          ...
>          REG_S   a4, RISCV_TRAP_SCAUSE(a3)
>          ...
> END(do_expected_trap)

a3 is used there twice, yes, but neither use modifies the register. If the
first use modified it, the 2nd use would be broken.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 14:10:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 14:10:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251147.1548387 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0KGI-0005s5-0B; Wed, 11 Mar 2026 14:10:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251147.1548387; Wed, 11 Mar 2026 14: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 1w0KGH-0005ry-T9; Wed, 11 Mar 2026 14:10:09 +0000
Received: by outflank-mailman (input) for mailman id 1251147;
 Wed, 11 Mar 2026 14:10:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x/zG=BL=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1w0KGG-0004uP-Q9
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 14:10: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 00b9ee66-1d54-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Mar 2026 15:10:06 +0100 (CET)
Received: from BN9PR03CA0526.namprd03.prod.outlook.com (2603:10b6:408:131::21)
 by DS0PR12MB6560.namprd12.prod.outlook.com (2603:10b6:8:d0::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Wed, 11 Mar
 2026 14:09:58 +0000
Received: from BL02EPF0002992A.namprd02.prod.outlook.com
 (2603:10b6:408:131:cafe::3e) by BN9PR03CA0526.outlook.office365.com
 (2603:10b6:408:131::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.26 via Frontend Transport; Wed,
 11 Mar 2026 14:09:57 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0002992A.mail.protection.outlook.com (10.167.249.55) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Wed, 11 Mar 2026 14:09:57 +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; Wed, 11 Mar
 2026 09:09:56 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 11 Mar
 2026 07:09:56 -0700
Received: from [172.22.194.138] (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, 11 Mar 2026 09:09:55 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 00b9ee66-1d54-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xHSB9k28sB7kUHz4QI13a+wqhdHaQdN+uJd3uXfo1wRZ1Ea0p6wCPjR4LUUXM9LbmiYzghENDXdop8LsnlEM50FOrYsm9W6Ubav+9z7LKfqCDz6pnFJDRs9gta64/R7wtz5wgHiBeHboPvcEJk0X4ExKGdaYzJ24ijdQppJsUxfkc3w0aRZZSuWzvQtosDDs4hkckd5vMqJE0dahi401Mk5vQhp6zDX0JwZi9zV9tUOAxU7jthtxLhSa8rxqiwVzn32SleNqIqYonOaFLc7kFnHZ6VHZ5+mN5gHj2c50AQVF80FV8kabDdNw3OcutUkkokoKKAedPAByukNQrvgp7g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=F4YOctJBCJL3jsVpHCrS9Gm56uQh0xSYflxixPkOSk0=;
 b=s51oPup+ET5DtgpUeZyIuhOQ4/fUpsAetxFhZ1KhxSacthz26RbbKsnS/gY5LDJ81FPkxdRj6CkrfXKdFkGArgurcvJcdV4I7TUWK4Huz1vCEMene41Sje6ndSWNIzSdZ8tuuZCY0cZN1IglcaxEPrh6kosxrms6OCxb2uIgSVKGCkdlHboSPIPY5iEEI/6Dkc+BYUxrhUHFbc75DV8ylQFm02tR7yF71uMmt95dBps8BbUrki0dxLqAglKLHXGjVkt/4vdZdYfRwY7GeUVQDSKt3hG9RQMttzJKz7k5pjFeBPhtnsKk5PSNhn8zU76BWXnVXDvq6U6o8M/SPcPZvw==
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=F4YOctJBCJL3jsVpHCrS9Gm56uQh0xSYflxixPkOSk0=;
 b=AU6uvStSt5BblpzqCx/zMevi9PksCnesTpynOqm/Xy52tcEtoQsk3yC8NaMWwb7dgCveXn4AHDBsfSg527NVaUNKcyLgnIGz9g6IxqrSuSip8fPceuZMttOyA2WKSfpHqQReqN+SV81PaICFAgshAWvTt1c3cJcdpyHWf004J00=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <8ccde8eb-d8a4-411c-bd6e-9c3fcea1150f@amd.com>
Date: Wed, 11 Mar 2026 10:09:54 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: fix unmapped access trapping on GICv2 hardware
To: "Orzel, Michal" <michal.orzel@amd.com>, <xen-devel@lists.xenproject.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
CC: Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
References: <20260205190128.38716-1-stewart.hildebrand@amd.com>
 <f91e0f7e-9afe-40bd-8e44-4aadbdf8e4b0@amd.com>
 <1e8f9976-b0b6-47b1-88c0-690d4f1589ce@amd.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <1e8f9976-b0b6-47b1-88c0-690d4f1589ce@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992A:EE_|DS0PR12MB6560:EE_
X-MS-Office365-Filtering-Correlation-Id: 8486a416-9bba-4eeb-1342-08de7f77e01c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700016|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	O+2s6PO9jtD8zTXDjTw0EEXZFIfVtSV8cvM3SmCkm4gLz5evPPc9bf+i1aOMFwbm4uxijQQcuWd693ipFDyvCTvbOrE8YODnBlso/WvcEj8PJ+DmRYlaomx09pEMy7hGhTsFUIcx1BuBFkcYUZDAQi5itLW21KAp0veu+wa6pfOUMb5XCa7uob4kdX3aFdkR8FSdvYkJrVuHtkGKIpG9H6hIo1uYerkcVQplMYPxarP8wcVf+h733iQcDHD82SKQVO8WAEf5K2KPnV5zHuaWWMLPaqQ7V+OJGmnshV7PfwwZAAVBUuyhvq+1qWn8N/YAkiFDuaKyKIrPiNjR86QVhDT6wNURnZf5Nn1UHo8QMLonCcHaVYq69wzjNbjTD09joebf9T8t5ej13MJ0GCGBzRxE0KGPdtttcdikdOJ7mwwdJx16/u7Kb8KsvugQRpsW0652NK2YPoZEdwybGJD7rmfaeHH7OohMmWO/PCqiYNF9TF7HEQQHQ8BConh1OrUB+B9reBit2sUXJM6hVYwwpCw2k0xCut3DROjRMIYjlxP7y1kAeyCw531tMC0oXSkOQHi+eLoWp7u4VSfKkdpyFCAo4jDyr2CzQjG4K8IxjuJBSCONQzk3V1CluflzR0qqQgodoca/7iqSkLzJdvFrHL5+FU8ADGDtwlesYfhfVzEVt1cSEgX+RCWO3T3fovlXGuPKCeLTxdokrEg9rd9BCiUeSUYq5tfexQLFnOI9mYDAK7BzIHtJHU3J8T4moarM8S+509w0rG+mTs3UVQgGfQ==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	KzNDEO56otrvHbRZr8cnb7bbJoYUaf3lvxyaqKvA6GDXyNSptOmPFC/uXINRT1Xv4bP9MN+KNarr9ITDcurq9vWX4tCueU9fjoGDNCUZ8Ovjxx2HMKhgZQ06x9A4AUQnBdUhgObLRbjU5G9b6SOt4cIYexLimps0RGg0V+4lxOkYUcR52k7P0uSJ8ejWrZZ6hhEwSz5tE5TrZ7vJI7LZTLAjyZeYDX1Uu4ccmq6JqsRt/fOxJTSOfNkRuqqF2d6HZS0vistLRj6EGjgnGaJpvmjF67TKVm39gbHZAYeNpFdMvU+ws/3nhTPDRiI55Ose5+U2QU+hh8KXmTUhqg4obaxx/IaFTIZl3veTuuJLDi63O6X6orcq5JrGP46XSUuAFv4TK756l6HN81R9utvQXx27d/YdPuqXB9fLAHFMn25dBsYSgmt1XYYsGEG6lzK2
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2026 14:09:57.0517
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8486a416-9bba-4eeb-1342-08de7f77e01c
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992A.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6560

On 2/18/26 12:16, Orzel, Michal wrote:
> 
> 
> On 18/02/2026 15:21, Stewart Hildebrand wrote:
>> Gentle ping.
> Sorry, I'm quite busy these days.
> 
>>
>> To be clear, domU interrupts with vGICv2 are currently broken when
>> XEN_DOMCTL_CDF_trap_unmapped_accesses is not set.
>>
>> On 2/5/26 14:01, Stewart Hildebrand wrote:
>>> Since 4dbcb0653621, the vGICv2 CPU interface is mapped in a deferred
>>> manner. On domains with XEN_DOMCTL_CDF_trap_unmapped_accesses unset on
>>> GICv2 hardware, the vGICv2 CPU interface fails to be mapped. A visible
>>> symptom is that a domU gets stuck at:
>>>
>>>   [    0.177983] smp: Bringing up secondary CPUs ...
>>>
>>> Move the 2nd check_p2m earlier so it's prioritized over try_handle_mmio.
>>>
>>> Fixes: 980aff4e8fcd ("xen/arm: Add way to disable traps on accesses to unmapped addresses")
>>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> I investigated whether the reordering is safe and it looks ok:
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>

Thanks! Is there any other feedback? Is this ready for commit?


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 14:10:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 14:10:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251153.1548396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0KH5-0006HX-9J; Wed, 11 Mar 2026 14:10:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251153.1548396; Wed, 11 Mar 2026 14:10:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0KH5-0006HQ-65; Wed, 11 Mar 2026 14:10:59 +0000
Received: by outflank-mailman (input) for mailman id 1251153;
 Wed, 11 Mar 2026 14:10: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=oqCu=BL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0KH3-0006HK-VS
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 14:10:57 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1c4dd145-1d54-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 15:10:51 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-439c944bb62so5477193f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 07:10:51 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439f820a2f1sm6922475f8f.30.2026.03.11.07.10.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Mar 2026 07:10:50 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1c4dd145-1d54-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773238251; x=1773843051; 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=jBjKyQK+QtIz3+tlMNJQwtl6c0fxdaVvvsMhigp5ihQ=;
        b=RV+C9BqT+QebWJI57ojyhZDh7U2UqN2Sd5DtrsCfJrBOqDFA44izFoLIubR0F2fEbx
         D7828hEsCP8bWcty4opsw9VcshJSwuMfgjUwccmTsGJjRATxuZIBrljXfP739iwqy1/b
         3UlkRd0tMY1cvaYPhFY7GPf2DcsRUENKN/G1akC4C8/Z0Xna9zal0yW/la7NRUoBzjXA
         Vy1/tHZR57+YlsdW4SLVp75MLYVIPVwAdnCPKky7f97EBwq4QpJhInqj5Fln0oH6SBt+
         iA/KSfZsTJglQSZZuVqhFeoHgxBpI7MP2Nvz72zgDmJFeN6cocenMXVICDkbbKRXnaLc
         hDYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773238251; x=1773843051;
        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=jBjKyQK+QtIz3+tlMNJQwtl6c0fxdaVvvsMhigp5ihQ=;
        b=K7GZE5NquHkD8QNhihHOLpJ4KF1TrokMBUlf9bEL7iYJNzNI5vt+z5HOCs2NvOE5J9
         gni2svaOBmwqsAxqc+mmgViGmOQRv/ow1XwIncg7Trl4nqVjTYaRefYQfr+zrgaeh2sM
         LdsB7yi/k6YL8un9l7tN2uEBL2lfGB0iKBnkPpU40L0F1kenheS+AXDb0iZPrsYHouQV
         JQfx7q0L+Bfi8zTLq2wPlJGZvdGajOS+FMLeZIPZDA8sc4nuTd9w78xQM+lj9142HUcz
         sWu9L2dEf64mKH95VMuNARbxwfcDTJTl2jtFEXL73LbdBpgceWVQfUw8cI5+MZ8GYX9l
         WKCA==
X-Gm-Message-State: AOJu0YyIrsLCAxbZlkL4Rh7nz7YAyNJwX30sclj96+nuUL82rlLqQkEq
	qsMp1GArR8NOqnnSoV2kZu3VG5HxOMg6rq34gWeTd/k3hZ/Z4m79l8AWW2ZVqP9G4w==
X-Gm-Gg: ATEYQzyoC39HfKRw10gRFelE/CVRLYrFWsUHkt1DLUk+0LJW6cPnfgO8FgOyQ4k8AuF
	A/BAb/gvPSOGkcdxtm9L6Lwde1gXu48g5vFYVB97UxrDT+HyKOZtpCRXIyZB2PYh54PfcTY9+GX
	7BKgtPcbYNxaZsdxzMHPKKeRv6mMZAdTJtgKfcNOvxTgpph0YGBBJc0BcdvA57oYrs1sdGwZ2yi
	9rBVxQ4aldYUH/IubLb3agS0DlBRb+Gi7O49ysZlLCqltqDfuSK+ugtxBdoEREtgAesQM/9h54s
	+FZ9BxqM/C++ftMq1nfw4XokHns1Iz8fRQn2oAwTj/edwiG7yUJr1dfW2/b/XvtAdumyLPcUde8
	9de7vufCQnqQ1lVXP9lwXnN61em5HwDJ7NN9GL0sJN64LRhAWhkT8+J2Ah774j+pQM5eFuoaU+M
	x7InCIPv8CCM6jEqwmGf4LgBb2KHRcoROBJzu7aobJEd7JA0idUWfsiRAfxHrWgByN+Ckk8+wkO
	rbE6OGdMMgYuCo=
X-Received: by 2002:a05:6000:2913:b0:439:b3d2:3768 with SMTP id ffacd0b85a97d-439f81c8cc0mr5545785f8f.21.1773238250940;
        Wed, 11 Mar 2026 07:10:50 -0700 (PDT)
Message-ID: <d8e51210-5749-4a96-a6f0-e7e23242296f@suse.com>
Date: Wed, 11 Mar 2026 15:10:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] core-parking: shrink core_parking_cpunum[]
From: Jan Beulich <jbeulich@suse.com>
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>
References: <29922662-8b95-4a69-9401-11480df59cdf@suse.com>
 <aa_fUpLqaPDal_-l@macbook.local>
 <fdd0ab2a-54f7-4f80-a896-c6c21e3ad5ad@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: <fdd0ab2a-54f7-4f80-a896-c6c21e3ad5ad@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.03.2026 10:20, Jan Beulich wrote:
> On 10.03.2026 10:07, Roger Pau Monné wrote:
>> You possibly want to adjust the subject, instead of shrink I would use
>> "dynamically allocate" or similar.
> 
> I've changed it, albeit the goal really is the shrinking.

And it's only now that I notice that I committed the patch with its old
title, sorry. I failed to properly propagate the adjustment.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 14:27:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 14:27:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251170.1548406 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0KX9-00087N-Es; Wed, 11 Mar 2026 14:27:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251170.1548406; Wed, 11 Mar 2026 14: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 1w0KX9-00087G-Ay; Wed, 11 Mar 2026 14:27:35 +0000
Received: by outflank-mailman (input) for mailman id 1251170;
 Wed, 11 Mar 2026 14:27: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=tK7a=BL=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1w0KX7-00087A-P6
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 14:27:33 +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 6fa6765c-1d56-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 15:27:31 +0100 (CET)
Received: from SN7PR18CA0028.namprd18.prod.outlook.com (2603:10b6:806:f3::11)
 by IA4PR12MB9787.namprd12.prod.outlook.com (2603:10b6:208:54d::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Wed, 11 Mar
 2026 14:27:25 +0000
Received: from SA2PEPF0000150B.namprd04.prod.outlook.com
 (2603:10b6:806:f3:cafe::bd) by SN7PR18CA0028.outlook.office365.com
 (2603:10b6:806:f3::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.26 via Frontend Transport; Wed,
 11 Mar 2026 14:27:20 +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.9678.18 via Frontend Transport; Wed, 11 Mar 2026 14:27: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, 11 Mar
 2026 09:27:22 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6fa6765c-1d56-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=asou78lM4f7GfT9vCJ7pDT2IZmTwaOZ4288Qw/HrI40fgr8i9emYWTFv5N7acciymhCozWwjpSkTJbwPc/qsOGs8EpbRRvCyANvYwX7Lgqh240H1wmROKZvSyU9Ha6q6P8Ez4K3kIGBOjE1gUYDqxfeEeeHu6ROlivEOiHF7YYkqLUdJoEXbEafjC7/9p3xOihtz2LkvG0+sRG36R5mejwblu8T4/+fSwmkj6AluQ+w5l6Z5eB8TopmaUDtm/AbzSPVWPy5Ouq5KJfNmygJn4J+XSqBBD2AYuETfNYaT+u92gpwHw/tKaWhYIQJYFRfgJHgsiEqYqpTM2yk0IkZzEg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rX85h1Hwc8oqInc2hnINB1xhgtpkPVwSbXpHMzhPg3I=;
 b=DIzvZYmMJMx+6RqGSLoQmmUoEfJ8soVUC4iceCS9iaN5m1umdYqmBnMmQOqa2kw3MEMdxD7wUQlyrczKsQGbGnKSSaOqHPUxQd5WkT3swOxDkbvSw0Gm0qb+JbXAF/OKrnLzLQCQ8KUYq9OyyXyJ+XzlNobUmbBQVxw19W66yMLTjBNwYYhHcV4Yh69MDnOEvUtp3CBBuThFLEgnWf2kSIBBNU0Fo6oXvPit7fSutLyDrSy9DHjCQmF6ID1nRLYnnykiyXI6NTJNN5T0hTn7aeNYifJqGCublJWYp4eBX04vffZZhmEHt2X8218+poQ9d75JCUPCJLEaIe6s9w/FxA==
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=rX85h1Hwc8oqInc2hnINB1xhgtpkPVwSbXpHMzhPg3I=;
 b=Na4zcyltr74ruaBij/ZOEKdLYs8XcmC36iR/hhaJbjY6U7vZBBQL7vcZh481dzLyc3D/ZYjpkNG2qXzqAhc82Ow6RAeHqGH8tlMTtQUFroUdKVzLeHPR2Ys+NOAwlhYkY8xLkbS7NZv7PIMj3Ix9pQ/o7M/ehEfo4C9Tg1KJw04=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Community Manager
	<community.manager@xenproject.org>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jason
 Andryuk" <jason.andryuk@amd.com>
Subject: [PATCH v4 0/4] x86: Drop cross-vendor support
Date: Wed, 11 Mar 2026 15:27:03 +0100
Message-ID: <20260311142711.16754-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: SA2PEPF0000150B:EE_|IA4PR12MB9787:EE_
X-MS-Office365-Filtering-Correlation-Id: 21fd5987-e9e2-4883-b2d4-08de7f7a50b4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|1800799024|376014|82310400026|13003099007|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	VaBGWPmJUjXglkNEQXMs6H5QRDFb/PbrWizRY+8V+omFt7A4Rd2puJ4uYFbGRkaTOxvB0H1+ICVjrOZptKSIE+hXCMxE1eJYTy/2u/Z8GQMyVsGlLseIvT+hU/sBfA/sRM9evXONP5i8SuAHKIZWC4yw0hZdZCb9RpWeD5EA81f1USyKCPlrEBSpNpootC17OOdBDWrG7pyi0J6LOGX0uVyhAo58ZobKC7JyWyAf0DUBSwhN/I3aqZ2BQgjgQxK5xQtvCy9oQFKwmzkAKitNdjL2zbPQINcHS9rir6RVnO2NoIBMJdvEmr95OT9u4ABuNN6W7v3VpsLFeVryyvC9aJTDQjrNMwz//jYuuuT65dHuNIT42obEd1Exdz3mQaHHGqWo61Kmhq2w5qtbWUqWHRz+z6gERzSifqj5J0OL57whcBXHhLUtjPUl6nxI30sWYDayAerMuVkWGHiOcx8XnjkPE2en/u9fNMmM9RTR/hhoC6O47H+ardr64nUwi0cXOsbhcEN93OsMdOAR1hq+HscoLuWIMEB4eVXU/h0MZwkQqRoaZFjCQKspxb13FaSuiFdK32MVJXMZaw9Q9vI6KOY8PapFJGT07A8Ilnav4tSSY/wCyE2GCOJZ801rd/nVgN+XKVOPCU/vmaQySBGySe24VfZB/dMIdGtOe9rK3MDZtrJtdM2/2LpAtzSVi2J8gW6sRO1FSSJlu2r5oJ0p3WEOYJdKt0Ckdt6aKBlt7EXQs8Y2fD7Qn1D5fXLNhR4Ln0y7mG07la66uJbLYHRkOK8Xn3a7Q0Srb5QrqeLnALY=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(1800799024)(376014)(82310400026)(13003099007)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	6lLTd0OS17ue2O07i1G9Ty+wncOXkJJ6KhR6V3G49vtEs2TYFRsNWxSdUlEakNK5VZvZvNU/9V1Zy8/SIGK7n35RDGx38uTftnY4WiDkm2tpgT0H5Uzyc2XU1jKLkfP5kQ1KMJV22LhXrkRC3VQMfaGhXkkgDKcxt0BySpSdvVCvxOHI61cQTKiy1kHYSLfpsQOqwAA/j4wBpFdykg5zVcGWMHIinxeYkofT6LEKbbSZjc7oOkcd+yKxz8DLkTjmukZvjDIrlnsTmFaZ5YdPAvkfeXb4qxL8So5ywUGn24rJoYZhFptMRM5Vq+HDKG2VFwJjKAOZSzXjilYPxs/kF/sWTs3X9Z6BGFYqV4cH07yPKNPrATctmOX4DMiPL3sDxT4f9RISkcs5aa+Em7FfYks9MxsKymo9tuC+l20koKA/nF0r9tmc6Wmo1kYjedBp
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2026 14:27:24.9314
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 21fd5987-e9e2-4883-b2d4-08de7f7a50b4
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-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: IA4PR12MB9787

Hi,

Only patches 1 and 2 missing acks.

v1: https://lore.kernel.org/xen-devel/20260122164943.20691-1-alejandro.garciavallejo@amd.com/
v2: https://lore.kernel.org/xen-devel/20260205170923.38425-1-alejandro.garciavallejo@amd.com/
v3: https://lore.kernel.org/xen-devel/20260213114232.42996-1-alejandro.garciavallejo@amd.com/
pipeline (green):  https://gitlab.com/xen-project/people/agvallejo/xen/-/pipelines/2378378894

Cheers,
Alejandro

Alejandro Vallejo (4):
  x86: Reject CPU policies with vendors other than the host's
  x86/hvm: Disable cross-vendor handling in #UD handler
  x86/hvm: Remove cross-vendor checks from MSR handlers.
  x86/svm: Drop emulation of Intel's SYSENTER behaviour on AMD systems

 CHANGELOG.md                             |  5 ++
 tools/tests/cpu-policy/test-cpu-policy.c | 27 +++++++++
 xen/arch/x86/hvm/hvm.c                   | 73 +++++++++---------------
 xen/arch/x86/hvm/svm/svm.c               | 45 +++++++--------
 xen/arch/x86/hvm/svm/vmcb.c              |  3 +
 xen/arch/x86/hvm/vmx/vmx.c               |  3 +-
 xen/arch/x86/include/asm/hvm/svm-types.h | 10 ----
 xen/arch/x86/lib/cpu-policy/policy.c     |  5 +-
 xen/arch/x86/msr.c                       |  8 +--
 9 files changed, 91 insertions(+), 88 deletions(-)


base-commit: bfb33fa6d4eb4110cd7dd47ec71d2e550739e126
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 11 14:27:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 14:27:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251171.1548414 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0KXA-0008KR-KT; Wed, 11 Mar 2026 14:27:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251171.1548414; Wed, 11 Mar 2026 14:27:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0KXA-0008KI-HU; Wed, 11 Mar 2026 14:27:36 +0000
Received: by outflank-mailman (input) for mailman id 1251171;
 Wed, 11 Mar 2026 14:27: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=tK7a=BL=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1w0KX9-00087A-G6
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 14:27:35 +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 716ee96f-1d56-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 15:27:34 +0100 (CET)
Received: from SN7PR18CA0008.namprd18.prod.outlook.com (2603:10b6:806:f3::32)
 by DS0PR12MB6437.namprd12.prod.outlook.com (2603:10b6:8:cb::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Wed, 11 Mar
 2026 14:27:28 +0000
Received: from SA2PEPF0000150B.namprd04.prod.outlook.com
 (2603:10b6:806:f3:cafe::5c) by SN7PR18CA0008.outlook.office365.com
 (2603:10b6:806:f3::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.27 via Frontend Transport; Wed,
 11 Mar 2026 14:27:28 +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.9678.18 via Frontend Transport; Wed, 11 Mar 2026 14:27:27 +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, 11 Mar
 2026 09:27:25 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 716ee96f-1d56-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wO1VSRZQxNiG3dKFQJ0Y12kyqCUDIT33gpnT4vlm60Y7vYXbbhADDo+bT2eZ8bkv/gmN7JyNppbxW9atrgBtdq1n0CWyhOCc536aEj6SoEpuPisXQWHNzy1+kxg7b30ne1MYL5CVuWN2jBbaqutaY+vzIVfssdzlnfYWII9sq8Oxp3BOFBY1wDeNsHFognJhdAU4Ro9nlJpHe9lD/pbwE/qlepeHvTLAObjN4VeCHY7U4b7Kgy2LqIUOQgQFeCv81ts+ztOMDMDitGoVoIPbiznmdHehkgM/wepIJ2oIPC5W0+M4BjCvWwjDI21/K0fmPWeLl1PxPtHwmNlyf1uwuQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=F9MIEfn09tg7aPNeCKXTNnjlwWiDP/C9u8yiYjGcYfU=;
 b=R9HpJPRloPHphkMOEeZViEYeadn4WjtHSJaY/oE52TZ77QHnt8uLw2b4/P20XI5A2nZUmV31twVQu+aHiHmClxPUxj0qyeDaARXDdVnKFt4RcccR36nYAdrzd02lnlW3co1SDZcWBTM7jHOMbE4xuw0dBnU1cFHcqbwbZpzcVTE5z8S17TxSi2jB2UZaEBK0/JnRuid5ltWhWu/QtbOSdui7a0++BtwM1SAahkV6JINHINPQ/mrBPng7n8xSl4pbcZX/zNCGQM52QqaXf5ozOmEP2AAbNSiyBxKCHJPPTR6XG7O67S6b2Z/guFu0agXlBsdYhhVGRMWydW7/CocsCw==
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=F9MIEfn09tg7aPNeCKXTNnjlwWiDP/C9u8yiYjGcYfU=;
 b=DjNe1fap8LsWv1BF1m+RImUlVEhtgk1j3EhdWK19h3xQiSWChWVNG8S3TV54tEpvmqhpBXIMVH+zlWUcvnu3pdI3XoJUWM052rQ1GPCRiRgNRXyoWdSKAXPWTmLFN5xBROwPtTpc/BpyPCIpVBnvxIjWTvhJZFByoRBhFiln+Kk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: [PATCH v4 2/4] x86/hvm: Disable cross-vendor handling in #UD handler
Date: Wed, 11 Mar 2026 15:27:05 +0100
Message-ID: <20260311142711.16754-3-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260311142711.16754-1-alejandro.garciavallejo@amd.com>
References: <20260311142711.16754-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: SA2PEPF0000150B:EE_|DS0PR12MB6437:EE_
X-MS-Office365-Filtering-Correlation-Id: 9e412c67-49c2-480c-4039-08de7f7a5287
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700016|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	+BQHOIlJa7UaHE8e4PpkK5BzL/P1XGTVYKqjQq7lCGMD/Vt7qN5FYqsebOyPJaBFBGC6RVDfZYtVUtRTL1HLgwxECsunjO/c38EXmxV2PlvW/zNtCpg/mH36Es5pq9glDWkuuDve07RpefKuBqhDjl/yfuc21JwWhtm8P8pT5hTMygeyOGnDpn91AAYvxTWho9zPTgR7q9b0A18w2n3ci6lI6y8Hcem80Mw1leoHLGGhiDHgg1fW4UgEvyX2OAPePeiN6MhB0hOk7wMj2m9n7KFW7gByWzP2q0jEWP4WJiJeb8ZNYMELlvd/tHgAq3Si9+V60KCR+/dfSDLAbDxt7KMAioesq8eDcKPYHbmeS/cnkewQgIAvnO1laaEjXQvZKyGyD7gphZHirGBUBwO1CxVUC+LYHH3NnM/0NaC1FACfnSS+6qy6ZZNxCaF5siIXw6ybIdAD96jB1bj/Jiva9XFDTQQ8ycsFOBF6lWkimKiWxEeXNz68kQjprQ4HYkKTSeAFFI/qz6nHxDl7X/pFRo0qSelYe2AQnXm1jY2FtksUigKkRxVQXsfHuPwPFBKr+lf5Z0qYNES/dCAjzENB9Zq2GFjQvhvXhgcuAOkNTYQApqXrPfNbZ697lK96d+vD9BSZ7tqUd3pS4CEUsi2e1Z6Vv3nD97lTuR5RRvpeeh/tILsQT5gdRL6WPwBAHxTt2kfr6dvGxECl/aKM7+g56aA+W6kD31pEjp+5UmRvhLa8qcZ6JFQS9QW1gbKcz+dxsWduTFIuVqubWltzP7zWnw==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ERXY193S6l0R1QhseYNZ0VDAwgWEBWzBS7NWBL+YKGdycS3mZnGi4iOHgz2JWdYefc3oP9wKRBbY4VLkYGuvrO6v6phnN7dHD8chRKIzIz4TpYIJ+byKKYL+jk91KFHBWEd8NZZLciV8bvtHq8isZlxZLoCOECzTfXBnX3AosSN0cP75rJc/0thBm34sApoFH9kSw37ovJqSssgmmTb3Npul0hh903KHAQPC/QgmWrTRPSoM5Ao8Jij43vGfpn3MuF78XgwtZfh1mNYmY2ruqYsZvvCCF4p7eyicjEXJ42s+bJ34tNPUc/yL4mlHylc4MBB15xjBx9o392DOjAOzAF+ev9zEFkwG0roNv3drMAlpo1vHprNBsFLqdxEmMZAlywlVQgH1djGhjy0VP+hXhRjhVDr1B7PpKg1LKSs2fq53TFC7vMtAfQnu6y4R0vFv
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2026 14:27:27.9893
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9e412c67-49c2-480c-4039-08de7f7a5287
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-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: DS0PR12MB6437

Remove cross-vendor support now that VMs can no longer have a different
vendor than the host.

While at it, refactor the function to exit early and skip initialising
the emulation context when FEP is not enabled.

No functional change intended.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
v4:
  * Reverted refactor of the `walk` variable assignment
  * Added ASSERT_UNREACHABLE() to the !hvm_fep path.
  * Moved the `reinject` label to the UNIMPLEMENTED case in the emulator
    result handler.
---
 xen/arch/x86/hvm/hvm.c     | 73 +++++++++++++++-----------------------
 xen/arch/x86/hvm/svm/svm.c |  3 +-
 xen/arch/x86/hvm/vmx/vmx.c |  3 +-
 3 files changed, 30 insertions(+), 49 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 4d37a93c57a..4280acfc074 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3832,67 +3832,50 @@ int hvm_descriptor_access_intercept(uint64_t exit_info,
     return X86EMUL_OKAY;
 }
 
-static bool cf_check is_cross_vendor(
-    const struct x86_emulate_state *state, const struct x86_emulate_ctxt *ctxt)
-{
-    switch ( ctxt->opcode )
-    {
-    case X86EMUL_OPC(0x0f, 0x05): /* syscall */
-    case X86EMUL_OPC(0x0f, 0x34): /* sysenter */
-    case X86EMUL_OPC(0x0f, 0x35): /* sysexit */
-        return true;
-    }
-
-    return false;
-}
-
 void hvm_ud_intercept(struct cpu_user_regs *regs)
 {
     struct vcpu *cur = current;
-    bool should_emulate =
-        cur->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor;
     struct hvm_emulate_ctxt ctxt;
+    const struct segment_register *cs = &ctxt.seg_reg[x86_seg_cs];
+    uint32_t walk;
+    unsigned long addr;
+    char sig[5]; /* ud2; .ascii "xen" */
 
-    hvm_emulate_init_once(&ctxt, opt_hvm_fep ? NULL : is_cross_vendor, regs);
-
-    if ( opt_hvm_fep )
+    if ( !opt_hvm_fep )
     {
-        const struct segment_register *cs = &ctxt.seg_reg[x86_seg_cs];
-        uint32_t walk = ((ctxt.seg_reg[x86_seg_ss].dpl == 3)
-                         ? PFEC_user_mode : 0) | PFEC_insn_fetch;
-        unsigned long addr;
-        char sig[5]; /* ud2; .ascii "xen" */
-
-        if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip,
-                                        sizeof(sig), hvm_access_insn_fetch,
-                                        cs, &addr) &&
-             (hvm_copy_from_guest_linear(sig, addr, sizeof(sig),
-                                         walk, NULL) == HVMTRANS_okay) &&
-             (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) == 0) )
-        {
-            regs->rip += sizeof(sig);
-            regs->eflags &= ~X86_EFLAGS_RF;
-
-            /* Zero the upper 32 bits of %rip if not in 64bit mode. */
-            if ( !(hvm_long_mode_active(cur) && cs->l) )
-                regs->rip = (uint32_t)regs->rip;
+        ASSERT_UNREACHABLE();
+        goto reinject;
+    }
 
-            add_taint(TAINT_HVM_FEP);
+    hvm_emulate_init_once(&ctxt, NULL, regs);
 
-            should_emulate = true;
-        }
-    }
+    walk = ((ctxt.seg_reg[x86_seg_ss].dpl == 3)
+            ? PFEC_user_mode : 0) | PFEC_insn_fetch;
 
-    if ( !should_emulate )
+    if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip,
+                                    sizeof(sig), hvm_access_insn_fetch,
+                                    cs, &addr) &&
+         (hvm_copy_from_guest_linear(sig, addr, sizeof(sig),
+                                     walk, NULL) == HVMTRANS_okay) &&
+         (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) == 0) )
     {
-        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
-        return;
+        regs->rip += sizeof(sig);
+        regs->eflags &= ~X86_EFLAGS_RF;
+
+        /* Zero the upper 32 bits of %rip if not in 64bit mode. */
+        if ( !(hvm_long_mode_active(cur) && cs->l) )
+            regs->rip = (uint32_t)regs->rip;
+
+        add_taint(TAINT_HVM_FEP);
     }
+    else
+        goto reinject;
 
     switch ( hvm_emulate_one(&ctxt, VIO_no_completion) )
     {
     case X86EMUL_UNHANDLEABLE:
     case X86EMUL_UNIMPLEMENTED:
+ reinject:
         hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
         break;
     case X86EMUL_EXCEPTION:
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 243c41fb13a..20591c4a44f 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -589,8 +589,7 @@ static void cf_check svm_cpuid_policy_changed(struct vcpu *v)
     const struct cpu_policy *cp = v->domain->arch.cpu_policy;
     u32 bitmap = vmcb_get_exception_intercepts(vmcb);
 
-    if ( opt_hvm_fep ||
-         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor) )
+    if ( opt_hvm_fep )
         bitmap |= (1U << X86_EXC_UD);
     else
         bitmap &= ~(1U << X86_EXC_UD);
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 82c55f49aea..eda99e268d1 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -803,8 +803,7 @@ static void cf_check vmx_cpuid_policy_changed(struct vcpu *v)
     const struct cpu_policy *cp = v->domain->arch.cpu_policy;
     int rc = 0;
 
-    if ( opt_hvm_fep ||
-         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor) )
+    if ( opt_hvm_fep )
         v->arch.hvm.vmx.exception_bitmap |= (1U << X86_EXC_UD);
     else
         v->arch.hvm.vmx.exception_bitmap &= ~(1U << X86_EXC_UD);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 11 14:27:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 14:27:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251172.1548423 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0KXB-000073-W1; Wed, 11 Mar 2026 14:27:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251172.1548423; Wed, 11 Mar 2026 14:27:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0KXB-00006w-Sp; Wed, 11 Mar 2026 14:27:37 +0000
Received: by outflank-mailman (input) for mailman id 1251172;
 Wed, 11 Mar 2026 14:27: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=tK7a=BL=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1w0KXA-00087A-Vd
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 14:27:36 +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 7163c7cc-1d56-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 15:27:36 +0100 (CET)
Received: from SN7PR18CA0001.namprd18.prod.outlook.com (2603:10b6:806:f3::15)
 by MN2PR12MB4109.namprd12.prod.outlook.com (2603:10b6:208:1d9::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.4; Wed, 11 Mar
 2026 14:27:27 +0000
Received: from SA2PEPF0000150B.namprd04.prod.outlook.com
 (2603:10b6:806:f3:cafe::a4) 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.9678.26 via Frontend Transport; Wed,
 11 Mar 2026 14:26:54 +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.9678.18 via Frontend Transport; Wed, 11 Mar 2026 14:27:26 +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, 11 Mar
 2026 09:27:24 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7163c7cc-1d56-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DDgl4UencWUze2cMf+q9tdLeEE284uV5j0+TBDbOCRbbOIZTrKCotMTdGkAD/Ys7Yo5Z8ZHBHvJ0vcZiodNUzQ8fd0wgK1Zu0P8z4hgrmGVUxJZluQF6RGsjWbY6/HvaY+1/Nm54tsejcM66EXn9QH75zDdulMOLjZnrI6a0wATSPWILHk7XogjD7cdM+0d77ENvii1CGoqCLBjfwH7yUYz9XTIQBqLlZPzHr0eDyil5AOZ0XQjzK4isjF6/Hvgo9Lml070rLhO9fN9DEJZTkkPj9x1a5BI3iiex3BQj7v/HpHbOxXfdUA+jBEMfgpVAzlJlUP1ZUjgsbumCTU+u5A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=q+p7cae+ArZ+PDM9loA7Pfn9Yv4gwr3gdHU7guinMic=;
 b=AxoXF82wcKEQVLP9sB/SambvAJz8oL9Ji9UVAmPzG+gQV3FiAnf6pw6JGxNiEOOwlqpD0+AtD/3jT8bEJ4oqMhCKCY1/KT41Cwsy5HOuru/yRZO+44reBEG34MJo0s0cxQRW7QJkyH+Dtd76MbX3zoYX1PLVL36MuUYOMD0+BANd9MBIctiBBbiTHW9CG/qe42HIAGhvZC723fvxO8L4hQFfQ3bceGs+ftyQeEsPyqmtrVzowQIMpqvg+3jac2OnLNx8MEpos6ggddo1CwsRDYoqLbv4lu5wadvadPTDV0DtGKD3zjLw+LYvwS/BLrjob8S58NWEnaQNW549XLjZpA==
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=q+p7cae+ArZ+PDM9loA7Pfn9Yv4gwr3gdHU7guinMic=;
 b=I+U0KKTpjTNbKaCpXwA3wlWmpIthhA0EUXt93d+eU5lHiJtOfAJT/hmC9gGbIEyJk5d8FZ1sZXNDKN/l1tviNCuEnKxT/Irr6fyrpSgDIHA4Pgvra1MzfwxPub7XaGRkmj1NL4ccerbUVWJGG+2TU6fga8zVepbISOX++iJ8kW8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Community Manager
	<community.manager@xenproject.org>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v4 1/4] x86: Reject CPU policies with vendors other than the host's
Date: Wed, 11 Mar 2026 15:27:04 +0100
Message-ID: <20260311142711.16754-2-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260311142711.16754-1-alejandro.garciavallejo@amd.com>
References: <20260311142711.16754-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: SA2PEPF0000150B:EE_|MN2PR12MB4109:EE_
X-MS-Office365-Filtering-Correlation-Id: f880a7ec-97e3-4ee1-41e0-08de7f7a5163
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700016|82310400026|13003099007|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	wJApQdifNk8zsKCNq/h+1aA2HVsUrjjM2V+L2Eh6tQD9LKqkKf70Y1Pjb/e8aZpWqQOqQlS5Jn+wmtr+poilXQO+l/Ob5/M22pdilaeF2oNAyzFeHUGrxtI3qTzbBza1F8afANsz5CERmxfBEXVucb2Z2ihllyHF41a4RZA4GKJXQePC3PxwnMVv21tjjYIvleIOxDAFCjKZAUuKco2jKO/SCGhDydZ2xkOWBLBupJvYZD9tM7qEwR0O6djUuu5t+L17wWpbIliKc9HzMtFPjSV6pgXjMJitNYd9+Ka6G23ba5nYPMSJuA1J0XBr2xZ546Xn8K5gtGF8aULWIi4D3dqEHKcUBMFrvjVG9PxXg33XPsudAj7ZneVYnZLKND5kvPRhQ4fAETSjnZk25icUm3dj6X5CXZ1fiDLDGpbOX4YkNwlkXUwXB65sC7pHYAgJ9bVuP7bW9HVIdY0KB7au6EwwhxODSh1NFt6y6+NNOM+dH4DzuvNr059g2NzgkEMYYncPH7i1+TySSGe36vl5laja3pkqWjOsfo5wpR7ldKeVFBRwRbuu4qYTpiZYYB3QffSRDfYuINrf/sFJgDxPl5yklVNw5Xc6u26MM4DNf2UNm8wevlE1qqliW85/s0dgc/3MsFWFc0khGArCg16Nr+TePM99jzpgv1PY5XNgKcv4vpY7KYBzC+SZDv4sWPwKcwLLuB53ZC3YhGJjHctZrR8RI1pmnQWYYG8dz2anty8=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700016)(82310400026)(13003099007)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ch4FZZGHTnrcFCr55X6O2I02GZSmIBAXqn3DyA8zmDO67p5uFRpxW4KYwu0LP3OsZuVESekYmq1jxqsTA1QDM7VDOZLjsHKc+gaLrfiWR1CyxxVkiyW7kgywFhFyyF2Y/GAg/Rc2MbykVkGZAr8S/LyqUKLvfZH8FRFJrLryHUvyLAkOFrH+hA5kfFBZJZG5PR+F+wXIRN0pNCL88hSN+7nsF30KJCxp7vikZbxWaeA5sBbp++N3E/buc09Hqz4kfG++9kgV98mZNwMTuVfvmN7C+9+IiIahrHwktXEAXOYxtrcn62s09jq2U+IodrbTY9Y74oU3C7xFXN/rH+Cc4fsXV4SkwRR7WKQHZqbQ3/Difkukp/9U0QALJxUMLbAsbaRQrNKqYQ9mUqcjssfcS2IRwZKlTl4PpAWV1ix7bTmFBQ4KBGgoSu/o8LAdXIPO
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2026 14:27:26.0768
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f880a7ec-97e3-4ee1-41e0-08de7f7a5163
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-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: MN2PR12MB4109

While in principle it's possible to have a vendor virtualising another,
this is fairly tricky in practice and comes with the world's supply of
security issues.

Reject any CPU policy with vendors not matching the host's.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
v4:
  * Adjusted CHANGELOG
---
 CHANGELOG.md                             |  5 +++++
 tools/tests/cpu-policy/test-cpu-policy.c | 27 ++++++++++++++++++++++++
 xen/arch/x86/lib/cpu-policy/policy.c     |  5 ++++-
 3 files changed, 36 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index c191e504aba..90ba5da69e4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -23,6 +23,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    - Xenoprofile support.  Oprofile themselves removed support for Xen in 2014
      prior to the version 1.0 release, and there has been no development since
      before then in Xen.
+   - Domains can no longer run on a system with CPUs of a vendor different from
+     the one they were initially launched on. This affects live migrations and
+     save/restore workflows across mixed-vendor hosts. Cross-vendor emulation
+     has always been unreliable, but since 2017 with the advent of speculation
+     security it became unsustainably so.
 
  - Removed xenpm tool on non-x86 platforms as it doesn't actually provide
    anything useful outside of x86.
diff --git a/tools/tests/cpu-policy/test-cpu-policy.c b/tools/tests/cpu-policy/test-cpu-policy.c
index 301df2c0028..88a9a26e8f1 100644
--- a/tools/tests/cpu-policy/test-cpu-policy.c
+++ b/tools/tests/cpu-policy/test-cpu-policy.c
@@ -586,6 +586,19 @@ static void test_is_compatible_success(void)
                 .platform_info.cpuid_faulting = true,
             },
         },
+        {
+            .name = "Host CPU vendor == Guest CPU vendor (both unknown)",
+            .host = {
+                .basic.vendor_ebx = X86_VENDOR_AMD_EBX + 1,
+                .basic.vendor_ecx = X86_VENDOR_AMD_ECX,
+                .basic.vendor_edx = X86_VENDOR_AMD_EDX,
+            },
+            .guest = {
+                .basic.vendor_ebx = X86_VENDOR_AMD_EBX + 1,
+                .basic.vendor_ecx = X86_VENDOR_AMD_ECX,
+                .basic.vendor_edx = X86_VENDOR_AMD_EDX,
+            },
+        },
     };
     struct cpu_policy_errors no_errors = INIT_CPU_POLICY_ERRORS;
 
@@ -629,6 +642,20 @@ static void test_is_compatible_failure(void)
             },
             .e = { -1, -1, 0xce },
         },
+        {
+            .name = "Host CPU vendor != Guest CPU vendor (both unknown)",
+            .host = {
+                .basic.vendor_ebx = X86_VENDOR_AMD_EBX + 1,
+                .basic.vendor_ecx = X86_VENDOR_AMD_ECX,
+                .basic.vendor_edx = X86_VENDOR_AMD_EDX,
+            },
+            .guest = {
+                .basic.vendor_ebx = X86_VENDOR_AMD_EBX + 2,
+                .basic.vendor_ecx = X86_VENDOR_AMD_ECX,
+                .basic.vendor_edx = X86_VENDOR_AMD_EDX,
+            },
+            .e = { 0, -1, -1 },
+        },
     };
 
     printf("Testing policy compatibility failure:\n");
diff --git a/xen/arch/x86/lib/cpu-policy/policy.c b/xen/arch/x86/lib/cpu-policy/policy.c
index f033d22785b..f991b1f3a96 100644
--- a/xen/arch/x86/lib/cpu-policy/policy.c
+++ b/xen/arch/x86/lib/cpu-policy/policy.c
@@ -15,7 +15,10 @@ int x86_cpu_policies_are_compatible(const struct cpu_policy *host,
 #define FAIL_MSR(m) \
     do { e.msr = (m); goto out; } while ( 0 )
 
-    if ( guest->basic.max_leaf > host->basic.max_leaf )
+    if ( (guest->basic.vendor_ebx != host->basic.vendor_ebx) ||
+         (guest->basic.vendor_ecx != host->basic.vendor_ecx) ||
+         (guest->basic.vendor_edx != host->basic.vendor_edx) ||
+         (guest->basic.max_leaf   >  host->basic.max_leaf) )
         FAIL_CPUID(0, NA);
 
     if ( guest->feat.max_subleaf > host->feat.max_subleaf )
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 11 14:27:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 14:27:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251173.1548432 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0KXG-0000P8-7L; Wed, 11 Mar 2026 14:27:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251173.1548432; Wed, 11 Mar 2026 14:27: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 1w0KXG-0000Oz-3M; Wed, 11 Mar 2026 14:27:42 +0000
Received: by outflank-mailman (input) for mailman id 1251173;
 Wed, 11 Mar 2026 14:27: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=tK7a=BL=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1w0KXF-0000Ns-Dw
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 14:27: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 74afc3c2-1d56-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Mar 2026 15:27:38 +0100 (CET)
Received: from SN7PR18CA0002.namprd18.prod.outlook.com (2603:10b6:806:f3::25)
 by PH0PR12MB7839.namprd12.prod.outlook.com (2603:10b6:510:286::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.23; Wed, 11 Mar
 2026 14:27:28 +0000
Received: from SA2PEPF0000150B.namprd04.prod.outlook.com
 (2603:10b6:806:f3:cafe::75) by SN7PR18CA0002.outlook.office365.com
 (2603:10b6:806:f3::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.25 via Frontend Transport; Wed,
 11 Mar 2026 14:27:20 +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.9678.18 via Frontend Transport; Wed, 11 Mar 2026 14:27:28 +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, 11 Mar
 2026 09:27:26 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 74afc3c2-1d56-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hktbEHC8uoz/N1wwmwgCUkxURNtUHzDe9DbTnku7tD/pI3o9zto4kE+bhe6SzhY9TUz6rH0+BSJQ9D/Kbxe+I6QhgwG2Ezwwdt8X/9IYiSmOd25/8OdXWv2JZgh3jbRI0vr+C/yDONgsgBE5joX3QO5nIGz6XdjsL+vo1DVnAMETfaEaAofuLrBHMkjYLKfLJhU6xexxD7AClJo6qTixyZyTCDu/BN5/9hE7SF6rPjurjgdJTBX0/wMlPN9+radXFpHvL7dKR2Lb9yyWMowlNxsKgpFDd2lZGF+R6L56q5aWbMwhSD7Ig95nvHYNAjsBRZCGXjbfsIe4xUtZ5AcKMA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PdWkxG9i7l3rW3T6Rp/jnTpeGEs/5PuOgfzAZHWlwfs=;
 b=wWpC6IMqtUL1hMTPj6Ysm7M2BXxJ/EXXeTqrCzRsQ1IustJdjTfpaT4FLkRElA3awrvtOYQjQNn1aT2UJm26/a9IVdA9p6cyITW9/C4YjJJiJhtnbWfH+PhTS0fPGu+D4mZOJJiK4eLxM5Bp2f9RNY9JXwnVdb4r6598qPb6wE2VGJArhftQGy7U3AZ6I5ESn883idRYbf35vK1ocVxVWYtQOAF6aFxU3IDd0zpRqHpTmtpxzDrKnEEvgOfR21pM3RvfDf3toJdTTaTmYhnMVE9ggq567kSQqfe/PTN0Okq4oD7IotSn0jTdy82IoiMM2zaN1rNdMAfNtBMz2OnkEQ==
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=PdWkxG9i7l3rW3T6Rp/jnTpeGEs/5PuOgfzAZHWlwfs=;
 b=ayNpLI6vguhwi4JepUf4YGkvEpE+N7PJPNtdtXHFsMITs4gNoUbP8JFNLORetEFqZcuBF2sTL9VLriMHJQ3uX2USzb/gH7u65qt1lozWTVzTH03Pp1qbYdSmFF+1Lzj4M/oxOKeQN0IJpvWZT2m96lWe05pgltjhkDFO2M8q+6c=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Teddy Astie
	<teddy.astie@vates.tech>
Subject: [PATCH v4 3/4] x86/hvm: Remove cross-vendor checks from MSR handlers.
Date: Wed, 11 Mar 2026 15:27:06 +0100
Message-ID: <20260311142711.16754-4-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260311142711.16754-1-alejandro.garciavallejo@amd.com>
References: <20260311142711.16754-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: SA2PEPF0000150B:EE_|PH0PR12MB7839:EE_
X-MS-Office365-Filtering-Correlation-Id: 0da0f76e-ac80-4421-b574-08de7f7a52e1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700016|82310400026|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	zT5lDCDbMtFPdumg1Hnp2G/t/dSK62HbvoyxPkX7i7twBUuU9W+TavWTnbiCcMaG8H24ecEbB4adSX/chzx9kfPb8X7+gM2fhKXNsdBTEhmHfmn6A0humXKxMg+kR4SSKJIfVh6GEkwbztgA/Iz65lqP+Vzf6O1WeOpqqJJcib/XKEpxu/o7nCtFdD9FG6x2P8PkCNdR1Kp41HLRPV0jEPg1jX3OACG/3c5sd+ieUUEj+Xy1Bb23Vs6nIj0Z2Om/NPcCWYTFGREzqsbgfVS+ZtNzaXFabA2B4P6P1GJUv/fu2LXm7ikXyLmvjMkIOzLrbkpBV+NJZoVskwNjSB8+TvXeG6IqBAV51Xlds6FLVhNPw3khFKTnWa48xWXT4MWZ06B1c3QCZyfNIIy/G0MsNaQEkhWsPxsqwkOe80tp9GDaSjq8YkKP4IlOYRPkS6tcYBoBtN4RtlVTt3e8Qqp28GgHKyXt/XRza+dnNJu+/XA8FFKY4TMSGj06e0RhrIazZuDliN5ZGUyl/yapfTnq4DTkAZ4UOjrCUBDFwtorAi+lOJdL7mdiCJwA/wuSMxlI/hYs1nD4GyQoSvxCjN3PsCCKEROVN+OheCyESKXLL7ePxN0HOwNP+CsEaB3Z0i2gM+A4weYM8cZrGLn195dlRwiNfCQLGw9ddaHeNapDU9abwToaaiQuVGyR73qNcM84CDlzz1ileBpN9mITdN1sod9xyKpwNMKnB11QSp9+VLMtgVQ4BlmIHo+X4q39glOt76JUksMUAALTk/ZwzQ2S/g==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(82310400026)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	uBpz632AZlrE6ixwiH//fdJEBCjBO91PTo2FthfRCYYDRVZGLGdhb1QrHQ/yA13T5qZ1Tu6IS7MMq7Ovfox1Gc/E3/cJbquQWYoz7g09UeRz7t2vs/zYF2QYvHGb23EpLltdhSnbdj9OqyFrPuqQnNSTdnCn2gPSej2GpvoDy6FUD16GPXTmzXVAnsI2UWhVDx7q8ymN9LCKdPzuJiUUYH3DLQ/UxWWVz8Xl0UauxVsB4E0Z+xB5WnUM2j/9Edn/AIOtuE7IqBuF6qMJCA9OXbBwFNxRfZwEBiOqkRdhN2degdGkSYUDTZ10IsOpjQuH4BI12d2iAI+3jxmJdSb6tFjxvsUH6Gf2RKfSeNIwTl73gMEmEddQlFWif2YyQO5T+6l1FxsAS9GRelmYns1iCx5ivKOKNsA1WYYAqA1uZN/vR4xSbc++R3Fm/BdYj2za
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2026 14:27:28.5829
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0da0f76e-ac80-4421-b574-08de7f7a52e1
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-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: PH0PR12MB7839

Not a functional change now that cross-vendor guests are not launchable.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Reviewed-by: Teddy Astie <teddy.astie@vates.tech>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/msr.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/msr.c b/xen/arch/x86/msr.c
index 6a97be59d52..d10891dcfc8 100644
--- a/xen/arch/x86/msr.c
+++ b/xen/arch/x86/msr.c
@@ -169,9 +169,9 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
         break;
 
     case MSR_IA32_PLATFORM_ID:
-        if ( !(cp->x86_vendor & X86_VENDOR_INTEL) ||
-             !(boot_cpu_data.vendor & X86_VENDOR_INTEL) )
+        if ( boot_cpu_data.vendor != X86_VENDOR_INTEL )
             goto gp_fault;
+
         rdmsrl(MSR_IA32_PLATFORM_ID, *val);
         break;
 
@@ -189,9 +189,7 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
          * from Xen's last microcode load, which can be forwarded straight to
          * the guest.
          */
-        if ( !(cp->x86_vendor & (X86_VENDOR_INTEL | X86_VENDOR_AMD)) ||
-             !(boot_cpu_data.vendor &
-               (X86_VENDOR_INTEL | X86_VENDOR_AMD)) ||
+        if ( !(boot_cpu_data.vendor & (X86_VENDOR_INTEL | X86_VENDOR_AMD)) ||
              rdmsr_safe(MSR_AMD_PATCHLEVEL, val) )
             goto gp_fault;
         break;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 11 14:27:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 14:27:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251174.1548437 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0KXG-0000Se-IG; Wed, 11 Mar 2026 14:27:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251174.1548437; Wed, 11 Mar 2026 14:27: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 1w0KXG-0000SV-DP; Wed, 11 Mar 2026 14:27:42 +0000
Received: by outflank-mailman (input) for mailman id 1251174;
 Wed, 11 Mar 2026 14:27: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=tK7a=BL=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1w0KXF-00087A-IK
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 14:27:41 +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 74fe7e07-1d56-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 15:27:40 +0100 (CET)
Received: from SN6PR01CA0019.prod.exchangelabs.com (2603:10b6:805:b6::32) by
 DS5PPF7671D5CC0.namprd12.prod.outlook.com (2603:10b6:f:fc00::653) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Wed, 11 Mar
 2026 14:27:31 +0000
Received: from SA2PEPF00001504.namprd04.prod.outlook.com
 (2603:10b6:805:b6:cafe::9d) by SN6PR01CA0019.outlook.office365.com
 (2603:10b6:805:b6::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.25 via Frontend Transport; Wed,
 11 Mar 2026 14:27:32 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF00001504.mail.protection.outlook.com (10.167.242.36) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Wed, 11 Mar 2026 14:27:29 +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, 11 Mar
 2026 09:27:28 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 74fe7e07-1d56-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OiALSE0opl9WwFMCqLVbZ60EUexnCAn5tuj40GE5X8HRXr6GZZGrAeUsC2ZxO7SzMpBSKlifnIEfRJyStqPK+Rp4o/yEzO2VCkbt2tGTQ7x/EdLRYZCS6HDXw79pzrAm2sQyRSD7C6802CgUkSULutmKqKJ8Y0ScK2Odl6gSGGBRy8QWzQ8dYFYf+SUbZp55MVmaZM4qBQCSZwgdDJfWK606prD8xEaeZceYWJ3DomupoF/qQX29+gI/VR8oBPYYoAhrAcWrSZ2zBXHQjDvYw13XYp/wnytwp5BqCgzKHcWjV5GuNoVOS/jNP5AZuZydWmPtzcvgbXPUBLXgBFD3sg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8W73DiBPopGYeUkDwKpXuXzVBpLkZfDD8f6yj9F+Ki0=;
 b=YNzBCB+xO7pgSKRjk1z503yrLrsL4FtoMK32v0opB2M9xLGMgDf/CVG3Mbl5eQgntlTu0EOS1FCwzSre5d6D6yyJNuijWKagUUuDvfvAtgSZRCiHlZtNvlqgrquK7RRHVY0NhPF4E5iEvyHT75Vb5Ti8VFJFnh/PdLI3i3vNSMmeQOpfl04aCq6DP433Hevx8+49OdZbsYLov038nC02iadfyJ5g+gfYFfmUe7CnZycErk+4l2zJyISdqZGX3APGCKtmmNM9lIW/fI/ZuM9CaV9PzMKfj4BDRfrLX9kj9P3LS+hZg6TFuE5M818vNryMmjigXpjHZtqnSNAg6xNJyw==
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=8W73DiBPopGYeUkDwKpXuXzVBpLkZfDD8f6yj9F+Ki0=;
 b=V0tLMG77XvG4cLMqcCqwOyTasCm+BiBK8JxbkXAXAeHan8sKywOCdDblmIx2fRSw6Pdmu/gHJVcqiZ8oOxGkKoQE0ZeZTM4TF1tvBDSUh8edGY5R5AzHROAqOBJliOwMO9Xw0jSmXnHpLKD1BZtoHaqKKN6hO1PWUAnyxYaILio=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v4 4/4] x86/svm: Drop emulation of Intel's SYSENTER behaviour on AMD systems
Date: Wed, 11 Mar 2026 15:27:07 +0100
Message-ID: <20260311142711.16754-5-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260311142711.16754-1-alejandro.garciavallejo@amd.com>
References: <20260311142711.16754-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: SA2PEPF00001504:EE_|DS5PPF7671D5CC0:EE_
X-MS-Office365-Filtering-Correlation-Id: 705db63f-e539-4104-2cfb-08de7f7a53a1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700016|1800799024|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	1DhZdn/myvZJVnlG1+LCDn0arq1AGYBDMwlnilVEqnuWhfzGwmZA7DheTQ+HkEPAJb1FDCcRUHWMv42qAhDcY8K4PvScGv7qA+CV/ONP3Y7BOu8zC0dJMGRSxZb0O8uO+TSHyKypiPr/aw+SL+jVQybGCefF1nKyuj2vmThBhSv3tjizt2yXXSwYA0BUcd7Yx1va0huNumqOkxdvEqbeCh5rAfC57W7NBXYgcimbtuiiGJka2eRD+lHCkZ43ddgmgCZtWKpuo5KcBuOV4BY9qGn+7JWuD2BoQBbIJCiSwOpKwuZ0L/c+T42AF7CGPwsWaWXvDHcdPCBoaWLj0AzfNQyIUezRMa0YrQSjkl0WbugKMlMieDvGxRhtNdrK73dqKSHDl/ljJIBg3uOzc6Q+MmsQLx4QfY3TyA3b/BhAqG4CfFbyBFOTVSbQ4ob+4PrYnIZIHufu0YdAxbRXZ5mWiCoTcnnR8LdCY2NgT48w2Y/M35JAGGkegoi7NWkzgSJ+Bfb3GoKdIxY/VaQiwxkjLrSI9uHWgJBJ1EtJG4IYfxMLUgqXR0iondjKRkCuVHYaCxEWO2Ay8ghjy0NV4NXTJvBW2BgZGgPuiJ71a9MakQ9ZC8DYgeZ9hsO4H6FeXX57xYm8aOO2UvzEhYLyZNck/tMaepRtaqYYs+ppuYTdJRJXR1VYWAiJylrv5f7kiJybDOsUXSB7TsfD/pXVRu1Fkm7O8xae4jNBJ5XspuYxJT6DxmW7E2JiJK0KDSqLpRDf
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)(36860700016)(1800799024)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	jZ9XR+zdEwk3k3pcXYcCJOV17NbUvV6CKbq0McyhOSza8g673J4kbhtnTlBB/MVxtRQFWRgFqYvh6mRWMiSnl7N7f93xCpNRbldX1EftDIzGgmYf6fOJzBuP4CUJ/4fFZdiaOYViOjoTTIzPH4A/pL6MWIawABcBdUE41h4h6/OJDZQnSkYF5i9esBwxt4vm2vhpJ3a1m5xmbknRN4RwbvsFuaobDsVoTNCQkOx85XQTOxqwK/6lI3wa3o9+YSRrX8YLJZNDQ+8bBEZ0akXXKVPtivYYRR9SbaMjDx1FRdmLkNY2j6YMROFhfYbRnQVlD6H9445PBBDMVbK1IsLSTy7hiUcnHvJ7qXUCxeWvRggeceUS2GfyWWy8y19lN/eFjxyjBqb2xg0FoXGJQREUJdxMVwpDsRSb8Yf1BKQT3G2kveebhNQWZVXS/de8n7Zz
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2026 14:27:29.8343
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 705db63f-e539-4104-2cfb-08de7f7a53a1
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00001504.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS5PPF7671D5CC0

With cross-vendor support gone, it's no longer needed.

AMD CPUs ignore the top 32 bits of the SYSENTER/SYSEXIT MSRs, which is
not how this emulation worked due to the need for cross-vendor support.
Any AMD VMs storing state in the top 32bits of the SEP MSRs will lose
it.

It's very unlikely to affect any production VM because having 64bit width
just isn't how real AMD CPUs behave.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Reviewed-by: Teddy Astie <teddy.astie@vates.tech>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
v4:
  * Sorted assignments to the vmcb struct by dst address.
---
 xen/arch/x86/hvm/svm/svm.c               | 42 +++++++++++-------------
 xen/arch/x86/hvm/svm/vmcb.c              |  3 ++
 xen/arch/x86/include/asm/hvm/svm-types.h | 10 ------
 3 files changed, 22 insertions(+), 33 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 20591c4a44f..076d57e4847 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -401,10 +401,6 @@ static int svm_vmcb_save(struct vcpu *v, struct hvm_hw_cpu *c)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
 
-    c->sysenter_cs = v->arch.hvm.svm.guest_sysenter_cs;
-    c->sysenter_esp = v->arch.hvm.svm.guest_sysenter_esp;
-    c->sysenter_eip = v->arch.hvm.svm.guest_sysenter_eip;
-
     if ( vmcb->event_inj.v &&
          hvm_event_needs_reinjection(vmcb->event_inj.type,
                                      vmcb->event_inj.vector) )
@@ -468,11 +464,6 @@ static int svm_vmcb_restore(struct vcpu *v, struct hvm_hw_cpu *c)
     svm_update_guest_cr(v, 0, 0);
     svm_update_guest_cr(v, 4, 0);
 
-    /* Load sysenter MSRs into both VMCB save area and VCPU fields. */
-    vmcb->sysenter_cs = v->arch.hvm.svm.guest_sysenter_cs = c->sysenter_cs;
-    vmcb->sysenter_esp = v->arch.hvm.svm.guest_sysenter_esp = c->sysenter_esp;
-    vmcb->sysenter_eip = v->arch.hvm.svm.guest_sysenter_eip = c->sysenter_eip;
-
     if ( paging_mode_hap(v->domain) )
     {
         vmcb_set_np(vmcb, true);
@@ -501,6 +492,9 @@ static void svm_save_cpu_state(struct vcpu *v, struct hvm_hw_cpu *data)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
 
+    data->sysenter_cs      = vmcb->sysenter_cs;
+    data->sysenter_esp     = vmcb->sysenter_esp;
+    data->sysenter_eip     = vmcb->sysenter_eip;
     data->shadow_gs        = vmcb->kerngsbase;
     data->msr_lstar        = vmcb->lstar;
     data->msr_star         = vmcb->star;
@@ -512,11 +506,14 @@ static void svm_load_cpu_state(struct vcpu *v, struct hvm_hw_cpu *data)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
 
-    vmcb->kerngsbase = data->shadow_gs;
-    vmcb->lstar      = data->msr_lstar;
-    vmcb->star       = data->msr_star;
-    vmcb->cstar      = data->msr_cstar;
-    vmcb->sfmask     = data->msr_syscall_mask;
+    vmcb->lstar        = data->msr_lstar;
+    vmcb->star         = data->msr_star;
+    vmcb->cstar        = data->msr_cstar;
+    vmcb->sfmask       = data->msr_syscall_mask;
+    vmcb->kerngsbase   = data->shadow_gs;
+    vmcb->sysenter_cs  = data->sysenter_cs;
+    vmcb->sysenter_esp = data->sysenter_esp;
+    vmcb->sysenter_eip = data->sysenter_eip;
     v->arch.hvm.guest_efer = data->msr_efer;
     svm_update_guest_efer(v);
 }
@@ -1734,12 +1731,9 @@ static int cf_check svm_msr_read_intercept(
 
     switch ( msr )
     {
-        /*
-         * Sync not needed while the cross-vendor logic is in unilateral effect.
     case MSR_IA32_SYSENTER_CS:
     case MSR_IA32_SYSENTER_ESP:
     case MSR_IA32_SYSENTER_EIP:
-         */
     case MSR_STAR:
     case MSR_LSTAR:
     case MSR_CSTAR:
@@ -1754,13 +1748,15 @@ static int cf_check svm_msr_read_intercept(
     switch ( msr )
     {
     case MSR_IA32_SYSENTER_CS:
-        *msr_content = v->arch.hvm.svm.guest_sysenter_cs;
+        *msr_content = vmcb->sysenter_cs;
         break;
+
     case MSR_IA32_SYSENTER_ESP:
-        *msr_content = v->arch.hvm.svm.guest_sysenter_esp;
+        *msr_content = vmcb->sysenter_esp;
         break;
+
     case MSR_IA32_SYSENTER_EIP:
-        *msr_content = v->arch.hvm.svm.guest_sysenter_eip;
+        *msr_content = vmcb->sysenter_eip;
         break;
 
     case MSR_STAR:
@@ -1954,11 +1950,11 @@ static int cf_check svm_msr_write_intercept(
         switch ( msr )
         {
         case MSR_IA32_SYSENTER_ESP:
-            vmcb->sysenter_esp = v->arch.hvm.svm.guest_sysenter_esp = msr_content;
+            vmcb->sysenter_esp = msr_content;
             break;
 
         case MSR_IA32_SYSENTER_EIP:
-            vmcb->sysenter_eip = v->arch.hvm.svm.guest_sysenter_eip = msr_content;
+            vmcb->sysenter_eip = msr_content;
             break;
 
         case MSR_LSTAR:
@@ -1984,7 +1980,7 @@ static int cf_check svm_msr_write_intercept(
         break;
 
     case MSR_IA32_SYSENTER_CS:
-        vmcb->sysenter_cs = v->arch.hvm.svm.guest_sysenter_cs = msr_content;
+        vmcb->sysenter_cs = msr_content;
         break;
 
     case MSR_STAR:
diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index e583ef8548c..76fcaf15c2b 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -97,6 +97,9 @@ static int construct_vmcb(struct vcpu *v)
     svm_disable_intercept_for_msr(v, MSR_LSTAR);
     svm_disable_intercept_for_msr(v, MSR_STAR);
     svm_disable_intercept_for_msr(v, MSR_SYSCALL_MASK);
+    svm_disable_intercept_for_msr(v, MSR_IA32_SYSENTER_CS);
+    svm_disable_intercept_for_msr(v, MSR_IA32_SYSENTER_EIP);
+    svm_disable_intercept_for_msr(v, MSR_IA32_SYSENTER_ESP);
 
     vmcb->_msrpm_base_pa = virt_to_maddr(svm->msrpm);
     vmcb->_iopm_base_pa = __pa(v->domain->arch.hvm.io_bitmap);
diff --git a/xen/arch/x86/include/asm/hvm/svm-types.h b/xen/arch/x86/include/asm/hvm/svm-types.h
index 051b235d8f6..aaee91b4b61 100644
--- a/xen/arch/x86/include/asm/hvm/svm-types.h
+++ b/xen/arch/x86/include/asm/hvm/svm-types.h
@@ -27,16 +27,6 @@ struct svm_vcpu {
 
     /* VMCB has a cached instruction from #PF/#NPF Decode Assist? */
     uint8_t cached_insn_len; /* Zero if no cached instruction. */
-
-    /*
-     * Upper four bytes are undefined in the VMCB, therefore we can't use the
-     * fields in the VMCB. Write a 64bit value and then read a 64bit value is
-     * fine unless there's a VMRUN/VMEXIT in between which clears the upper
-     * four bytes.
-     */
-    uint64_t guest_sysenter_cs;
-    uint64_t guest_sysenter_esp;
-    uint64_t guest_sysenter_eip;
 };
 
 struct nestedsvm {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 11 14:29:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 14:29:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251212.1548450 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0KYV-0002BX-3u; Wed, 11 Mar 2026 14:28:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251212.1548450; Wed, 11 Mar 2026 14: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 1w0KYV-0002BP-0S; Wed, 11 Mar 2026 14:28:59 +0000
Received: by outflank-mailman (input) for mailman id 1251212;
 Wed, 11 Mar 2026 14: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=Qrm0=BL=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1w0KYU-0002BH-Ad
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 14:28:58 +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 a2930dc0-1d56-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 15:28:56 +0100 (CET)
Received: from SA9PR13CA0173.namprd13.prod.outlook.com (2603:10b6:806:28::28)
 by MN0PR12MB6053.namprd12.prod.outlook.com (2603:10b6:208:3cf::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Wed, 11 Mar
 2026 14:28:50 +0000
Received: from SA2PEPF00001508.namprd04.prod.outlook.com
 (2603:10b6:806:28:cafe::58) by SA9PR13CA0173.outlook.office365.com
 (2603:10b6:806:28::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.22 via Frontend Transport; Wed,
 11 Mar 2026 14:28:48 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF00001508.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.9678.18 via Frontend Transport; Wed, 11 Mar 2026 14:28:48 +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, 11 Mar
 2026 09:28:47 -0500
Received: from [10.71.194.215] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 11 Mar 2026 09:28:46 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a2930dc0-1d56-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=l8qgotWeY4JcGfaWTWkqNpf0tPh9GWygkuU0Y5fp4jcItiNM0lhISiDydHrMpQHmj/3MKDcioH+AIN7VHwcXtr1AU/Jm2rBGpBnY6LOOeL7mFk5DgcZd9VolB8zSfXn6w8Y1on0v2H/IdmEP3kmwnEdNRgyo31/A0CXEXdvhTtFbW3+UuT5UTcDsIpy4DqD+msuzYc47Wtoybx3PJhvllD6+BA/HcXxZMdIGW6H9ypjNoaCJwj+U3STxxQYZdswLxdv7/SjSaDiJt8LpouSfacZmPboygBmNvW5cxlP1Lz26Gb3rCdhlN0wWFA3xkUJHIpAu/bq8vGmsi+21MvAF5Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=h2r0/8ej73WI0PEnvNExoigrPoI3S4hHyeVt31lA25I=;
 b=E10sITTDsFYcRe1UWhcyZTcNxVi3I5JFBi0yVGRoCZX1rw6DY+T+QHMMxZYW9zqIWUUB1gB7oJG4I6w2l97Inv8BUgZ5OONY3ucl6xUO+9EWvJarNtTNLCsrD39+ZEf36G01vPh2Cz3LbXQ+KqYNg8sqpxQtIv0niRK1tyT3BPdbcy0MULz/racnZ3CiK0AKi9RxA7L5jiFDEbCEhYdaARC/e/RWWER4SBvZRkDx8GOHVQG81+Oxjhko71qoGaVMrTqfcu3gYgVFIzBCh5HYNqBejLPnQvqHdIJohrXYm+EADUVwLq432zPlniL5xNh0PrDJiA4BDiPxggLgdJfdmQ==
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=h2r0/8ej73WI0PEnvNExoigrPoI3S4hHyeVt31lA25I=;
 b=5hb1Gdps4PCLXD6kh0GFcm8oTxiECEUcOkP9U9vgQU4gQ1fYN/q2ooHDBC5gnuOlz3MxMUArmE5pvNe0z7MEoGygpkGSr6nvpfIjfiFwJGmZmBcEPIA87EoTjQXC5cYbDDOJDDpoU3jiOYSKLpqC8zscYJEDjqrOIn4O5fLVEiU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <db36c55b-d9a1-448d-bc53-64a9d5254bc8@amd.com>
Date: Wed, 11 Mar 2026 15:28:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: fix unmapped access trapping on GICv2 hardware
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
	<xen-devel@lists.xenproject.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>
CC: Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
References: <20260205190128.38716-1-stewart.hildebrand@amd.com>
 <f91e0f7e-9afe-40bd-8e44-4aadbdf8e4b0@amd.com>
 <1e8f9976-b0b6-47b1-88c0-690d4f1589ce@amd.com>
 <8ccde8eb-d8a4-411c-bd6e-9c3fcea1150f@amd.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <8ccde8eb-d8a4-411c-bd6e-9c3fcea1150f@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00001508:EE_|MN0PR12MB6053:EE_
X-MS-Office365-Filtering-Correlation-Id: 59e88267-9d35-4736-1cdb-08de7f7a8262
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700016|82310400026|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	gzOod23MWwk/NllvNAIr5qa+/Wv6smM5H299p0Zql1OhCcQ5MhcWwj2tQxDQp2ump7TYFw2+PpHOFvnSL88uRceq6agKgFNu+LIvns1CCyYmZJJ3Nd5h7ftC2LXP49ERo8xw0Ak3x3OJVu3ke7vTXRZyxplalYpCSOvW0emeSomiNRxllaVPy1vbYCDuIC3E2f+y7x6FO94D04WnKVhk/nYlmf2KnWrkunEc6k5+nSej6OwMw7xsVuOxxZhTyL4xn+P7NSnl0nCGJ91KnDT6XtxntCoJbyagisLj7g8lFIKwCtdTxBH7dwWb5/MNkz9/g+eWaOXbNmTyAUhAe0woqcFV/mEPWqUvO21GG0s69lkmF1QD0OGMIAzgMX/fXxspGodls38rx6ZRqpo4UVbgJvVDNkVdCDdMgQgMI0PIplBUAuhx0SgRAlW5us7WQ1BlP38BgWHo1wofCK+2uqiS3veEbjvPdz4kjXoZlhgb3I1gqRYlDfkmMANaHeIJwPs8lj1GA1w4rNvp0RJ9dEiuq0GQAkMg9/X9VLcl/eztCjA5x0x317WxTRPVl9+C15OH9rvYBKoA2pUOimvBFj4tI0c8nHvAVf0D1Jg41p1nC+2Dc88gQgX057+HWvvQpritoqQaOQMBbUn8e9/RJjqqDJqA37JFAWyNgCRpKSycxpgak/Wg4PavP9BxUuWP+y5Gli7VEDyD3WxwoPIfbT14vs0/A53sxh2NngDpUSglwpI1lGpihp6gFGZthbUy49oxOwCTpZWXw16PrYg2/9uUPg==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700016)(82310400026)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	QkvT2UDnJ+Sh3D9iCfOKp+St4uGW6ExeFNcdokG6+hOCiQN8TNo3+SEkWQ5M0H0A2tzG4mhCwMF+rqvyULlPHju0KNEyTOXUInFfLpn0FPu+IgbeDDlo986VfQEq8FpNKqScCB/+HEQfjWoXwyfoyIOm/yJx5beJ8SX0mFrpoYkACpw7fHhSYw5lTl1W8Jgl5NajTumskydnbvIgcdK27pVMD4OZc20izv4+zyVkz++7eHgeIkUuVWEYsCcLJaMozWfDtn/CqA88PAv9RKQRlLpxybkC4/41gowKFqHK5LMn7kLJluE5nYvmORDOjyJOVnqTDepSSd7Lfr1zefKzM6R86MfPBSuahGzrKOJeNpFsS2CFcDIsO3UT/jH9eM7WGajjHFZkloxHzU2K0yCXZAqctPROfdOlw1Ok3NPImQreozZY4cTMNwYdqRCZjnHV
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2026 14:28:48.3079
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 59e88267-9d35-4736-1cdb-08de7f7a8262
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00001508.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6053



On 11/03/2026 15:09, Stewart Hildebrand wrote:
> On 2/18/26 12:16, Orzel, Michal wrote:
>>
>>
>> On 18/02/2026 15:21, Stewart Hildebrand wrote:
>>> Gentle ping.
>> Sorry, I'm quite busy these days.
>>
>>>
>>> To be clear, domU interrupts with vGICv2 are currently broken when
>>> XEN_DOMCTL_CDF_trap_unmapped_accesses is not set.
>>>
>>> On 2/5/26 14:01, Stewart Hildebrand wrote:
>>>> Since 4dbcb0653621, the vGICv2 CPU interface is mapped in a deferred
>>>> manner. On domains with XEN_DOMCTL_CDF_trap_unmapped_accesses unset on
>>>> GICv2 hardware, the vGICv2 CPU interface fails to be mapped. A visible
>>>> symptom is that a domU gets stuck at:
>>>>
>>>>   [    0.177983] smp: Bringing up secondary CPUs ...
>>>>
>>>> Move the 2nd check_p2m earlier so it's prioritized over try_handle_mmio.
>>>>
>>>> Fixes: 980aff4e8fcd ("xen/arm: Add way to disable traps on accesses to unmapped addresses")
>>>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>> I investigated whether the reordering is safe and it looks ok:
>> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
> 
> Thanks! Is there any other feedback? Is this ready for commit?
It's ready, will commit tomorrow.

~Michal




From xen-devel-bounces@lists.xenproject.org Wed Mar 11 14:52:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 14:52:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251236.1548458 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0KvN-0006Wj-R7; Wed, 11 Mar 2026 14:52:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251236.1548458; Wed, 11 Mar 2026 14:52:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0KvN-0006Wc-OE; Wed, 11 Mar 2026 14:52:37 +0000
Received: by outflank-mailman (input) for mailman id 1251236;
 Wed, 11 Mar 2026 14:52: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=oqCu=BL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0KvM-0006WG-Ni
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 14:52:36 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f01e6085-1d59-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Mar 2026 15:52:34 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4852f8ac7e9so55466315e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 07:52:34 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439f821d095sm7684845f8f.32.2026.03.11.07.52.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Mar 2026 07:52: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: f01e6085-1d59-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773240754; x=1773845554; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0Z3ddnBTQh3monl3uUxBvm4jJ2tkt4UDLSJQeB/4uVs=;
        b=LOceYgvFQJLNXFSkU4nYVNZlQ+BYIjChb4MjtkT3ozeEb+RLY62FtSfthFB0Kf4d9t
         qjAIgOOsmAmD5oVW1sWthLzgcXQRVFQioRwKGZHB2JFgwL4OD5j5dv7az1lS9MwXXhV+
         Fd8lo+I2y7PRxz5lLVqikGDB4EixX2cD0U0dcfZuq66zSBFfDpG6vTcQI9AIdvm15Xiz
         JUctNbuCjQuTfo4nJEOmQFKNq2oyDJ9hme+4Da6MhXUvD2t0jjBqqBicP9H+LRIhEmVx
         +HQJZwAbsLqCwE5mhrdxY6NTyzhba1AO6HdpXjeYxAYM+aF1/agln6K5u3r5ekYycORw
         mkdw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773240754; x=1773845554;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0Z3ddnBTQh3monl3uUxBvm4jJ2tkt4UDLSJQeB/4uVs=;
        b=I/m9Fj8oqCqGyVRGd/6BEal6/ttECXZDp/NN2NY0owLaZvktCQsCCU3yb4mwY85ThW
         WAqBMVHGUdUSFmvG8UwlFIE15wEDYAzvzQmT8I1MoZacyjXH+Gw4Z0GNOGdYht9i7fOU
         6c96uasDSGxEZM0knBbQ39Qdy7trzVnMZ5zn7bt5BFHI0R4YwkiYyS3MmY0tG0v19Dr/
         +sJurKylEPzyyvcJjpcsQ1OnCu0LDZQUqzO68sEDKaTMUm6cKuZJmX0j88QriCOpt8N1
         z0JuFXGJuw/zrNGyQB1T2JBDuJQ8JpsyN5QiDKFYvjwBwjuReGNptH+qvMbMrJreAnbX
         fI0Q==
X-Forwarded-Encrypted: i=1; AJvYcCXn9bBk4lloLr0CkfrNRC/+oa/h0QRUpVHLR0gUZIRSS1guh+OTmwMF2SvgH6c39JoJxnsDNI4ZvlQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy+y6vMcXo0CXa0Lpt7V5XAu294PWZJrLuLn+kBj+HwfO4d80aK
	IoUoW7T4kdjCjsHkT0+Bkn51f80M6GQVq7OdLp8Owg6N2kFSpDo0iJbWWUoID8AzeQ==
X-Gm-Gg: ATEYQzwFFd0caRmWWAp+yLK3JxrLxlCyMQaRINpWr+A0lwxbU0zr0rTmktFlctIn88w
	hs1zw+3YBFKOkR9lsywul77u5gbVKgzVCOUEHqbDCf5AOb0QprRiONbQMo/uThICjkOkzE8KUoZ
	zvJH1OGxaMLnbiWmCVj6IfDRT/+R/EhKEJElpDHfGJ+49IH+oUoB7ya8Tg//uuLzWV2RTN8UVGx
	EiVU9pvzJ3Rvjto5ZCNCvgvKhV0VegwsGAKINRmNUYeotDr5QXyz4/ZWMRXc7nJkoRAl9v+namf
	Qy4u2MbghdFzZ4e1WKExpTHZOj4gADBS0hoR/QiUnt/qCobmOSwKYwTUmb0wsh/A/Hh56DcqAfF
	TaqYgh6ATIxLlWrVAcHx8962WDFi1wrafr5ou/NZzfPP/d+QkmuF14zaAgWAsUo7VEK6GW7u2Qo
	4ECJgInlgCtthQX2Ls1qpnemDelLwL/Y88tcG+NSJBQGYp82fDYxZ5fe4zoXP1nvko+Q9bMCYau
	s3XoKKXfnuRbPI=
X-Received: by 2002:a05:600c:c163:b0:485:33ad:3c9f with SMTP id 5b1f17b1804b1-4854b145656mr44551755e9.25.1773240753795;
        Wed, 11 Mar 2026 07:52:33 -0700 (PDT)
Message-ID: <ffeb30e4-ccb0-43ff-905a-e9273dff79b7@suse.com>
Date: Wed, 11 Mar 2026 15:52:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/4] x86: Reject CPU policies with vendors other than
 the host's
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20260311142711.16754-1-alejandro.garciavallejo@amd.com>
 <20260311142711.16754-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: <20260311142711.16754-2-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.03.2026 15:27, Alejandro Vallejo wrote:
> While in principle it's possible to have a vendor virtualising another,
> this is fairly tricky in practice and comes with the world's supply of
> security issues.
> 
> Reject any CPU policy with vendors not matching the host's.
> 
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>

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



From xen-devel-bounces@lists.xenproject.org Wed Mar 11 15:00:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 15:00:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251252.1548469 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0L2T-0007Lf-Ir; Wed, 11 Mar 2026 14:59:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251252.1548469; Wed, 11 Mar 2026 14:59: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 1w0L2T-0007LY-FF; Wed, 11 Mar 2026 14:59:57 +0000
Received: by outflank-mailman (input) for mailman id 1251252;
 Wed, 11 Mar 2026 14:59: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=oqCu=BL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0L2S-0007LS-RI
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 14:59:56 +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 f65f2a3a-1d5a-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Mar 2026 15:59:54 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4853fd7b59aso21159235e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 07:59:54 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48541b6f6b7sm202625995e9.9.2026.03.11.07.59.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Mar 2026 07:59:53 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f65f2a3a-1d5a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773241194; x=1773845994; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qgx4FhloQI16wj6SD7UudbddpkdRbcgUSx8DPO4fSDs=;
        b=BH5OPGUURir5LkSUKLtOyCsk/Q/adGbCRdX7jMj65CWiBwXL5zPtaLdklXX6H8EtxE
         ejyuE+i9w2ybWeywA83Jows+M+5VsaqXR+v1z0CC2wJTAdFlUY/kG/B+w0Otc1HNGVYf
         wDH0U5z+FxNU19quvTzpc5kTYPvRACBnqsY/jEd7DpK16vNdoOzXJ/VW5ZUPJq7XB8jO
         MbzwuQqsPlPN8NdkYgQFNg8eC6w9O6NsW7mcxCq9ejNyOdOnk2OvUkxa9P0djvhYQbEv
         +HxfyeTJHxxW2Ne0YSwMg7MYpJMRhXY3MyFRkYMNuc7Pk8uDZJHSGKVeY+QwXOpPNSlP
         qHxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773241194; x=1773845994;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qgx4FhloQI16wj6SD7UudbddpkdRbcgUSx8DPO4fSDs=;
        b=b8WUDxlBmHzwnGS25wIbSR+WDoxeYiobmr9qq4EHeHW7oce54MKuR7d9dBZvq5JxT4
         ltBmwoPknlU0cXZ5u5ZZocTW+F247YGTsUHgeApf6MU3MWGvmjgJiMuZTwvhUB7xk8H3
         i97F1WdE8OG8LTiXBr17Iw7lBL9jB2KgTksi5/pf0URmrONcoPasFxmZKrzVagVqXdUo
         KpAhkwjtOzbMOgxDk6Hsxd1appug4YEGzlajvigpSdFuU/jOkYtvaPLgIqh7BkOy3Ov7
         X6R+Icu4tLxAdQ4laRJLqt6jDpoiIWf2B64/hoEIRRC8Uqsugx7t2jKTDyyTkpX9m84c
         Wxhg==
X-Forwarded-Encrypted: i=1; AJvYcCW3RzGi4nMmk46OMmWQS1AVbNlTZWhAqiIWJx6KheNeeJDsvxbYoV/H8Q96j893cPTWI1a0W/UVgOc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwmGJPeA/P78Oa9GWVIsAytllRgX7x1BfHIdyDlsaiA6AWuDhlo
	teh1yBGoBwq7rdrKWUeoH7wL6T4ZsDKU2IcdrwMtXMXtF/HmesUuJTuc0v6qD5A67w==
X-Gm-Gg: ATEYQzzAGtr8NSkXGam4v+sWuW7X9BnM/tNCR1dR+LAcpj9FysEEH1ynOkZ52aPSwaE
	7nVPp1MXdVculGgJfprGL1T5XTh39uwH76BroU6vU2zdt1lcWhLaYgAJ04slklwscgC2DGosAef
	cN6h14NN8mdGzEUv2EiS21YJsWRArwd9UaU1THXArTZv+UOnrp0jmI0z9vTlr1aJZlTme8g2dVv
	SLB4dsS01JN7JGZuUJmZSXSzv4ThcPU2ICupADHeaQ5FNYv53ZwmI2n9dDNCtF1RrU6ynbtzKtE
	69Bjf+/n45ZTj3EuqeagzvQiUwbYDeId2nyno/DxVGJ/f3S7xs47kn3+APgvYBc06UUfZbhOk2z
	cJynzTkGvlZwzgs3XA/gMFwo5q637JtGDKP97GDowPK4vAfIaFwDxyIXdunbiYsiLYF4oJPinY5
	3YIrVbowBlWol08jbe/Ex7eep3cITCa4tpkkbWgQOG8r1+Rqx9R9UFu3ERM3f7znZjzdf2mzR9q
	wJfJQLLaRYz2GQ=
X-Received: by 2002:a05:600c:8b38:b0:485:3fc8:de9c with SMTP id 5b1f17b1804b1-4854b0be1b5mr49753765e9.12.1773241193656;
        Wed, 11 Mar 2026 07:59:53 -0700 (PDT)
Message-ID: <d76d6c2c-b81a-417b-9d4e-07f301e35dbc@suse.com>
Date: Wed, 11 Mar 2026 15:59:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/4] x86/hvm: Disable cross-vendor handling in #UD
 handler
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260311142711.16754-1-alejandro.garciavallejo@amd.com>
 <20260311142711.16754-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: <20260311142711.16754-3-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.03.2026 15:27, Alejandro Vallejo wrote:
> Remove cross-vendor support now that VMs can no longer have a different
> vendor than the host.
> 
> While at it, refactor the function to exit early and skip initialising
> the emulation context when FEP is not enabled.
> 
> No functional change intended.
> 
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> ---
> v4:
>   * Reverted refactor of the `walk` variable assignment

"Revert" as in "move it even farther away from the original". As said, you
want re-indentation, so please do just that, nothing else that isn't
explicitly justified (like the moving of hvm_emulate_init_once() is). With
this put back in its original shape (can do while committing, I suppose):
Reviewed-by: Jan Beulich <jbeulich@suse.com>

> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -3832,67 +3832,50 @@ int hvm_descriptor_access_intercept(uint64_t exit_info,
>      return X86EMUL_OKAY;
>  }
>  
> -static bool cf_check is_cross_vendor(
> -    const struct x86_emulate_state *state, const struct x86_emulate_ctxt *ctxt)
> -{
> -    switch ( ctxt->opcode )
> -    {
> -    case X86EMUL_OPC(0x0f, 0x05): /* syscall */
> -    case X86EMUL_OPC(0x0f, 0x34): /* sysenter */
> -    case X86EMUL_OPC(0x0f, 0x35): /* sysexit */
> -        return true;
> -    }
> -
> -    return false;
> -}
> -
>  void hvm_ud_intercept(struct cpu_user_regs *regs)
>  {
>      struct vcpu *cur = current;
> -    bool should_emulate =
> -        cur->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor;
>      struct hvm_emulate_ctxt ctxt;
> +    const struct segment_register *cs = &ctxt.seg_reg[x86_seg_cs];
> +    uint32_t walk;
> +    unsigned long addr;
> +    char sig[5]; /* ud2; .ascii "xen" */
>  
> -    hvm_emulate_init_once(&ctxt, opt_hvm_fep ? NULL : is_cross_vendor, regs);
> -
> -    if ( opt_hvm_fep )
> +    if ( !opt_hvm_fep )
>      {
> -        const struct segment_register *cs = &ctxt.seg_reg[x86_seg_cs];
> -        uint32_t walk = ((ctxt.seg_reg[x86_seg_ss].dpl == 3)
> -                         ? PFEC_user_mode : 0) | PFEC_insn_fetch;
> -        unsigned long addr;
> -        char sig[5]; /* ud2; .ascii "xen" */
> -
> -        if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip,
> -                                        sizeof(sig), hvm_access_insn_fetch,
> -                                        cs, &addr) &&
> -             (hvm_copy_from_guest_linear(sig, addr, sizeof(sig),
> -                                         walk, NULL) == HVMTRANS_okay) &&
> -             (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) == 0) )
> -        {
> -            regs->rip += sizeof(sig);
> -            regs->eflags &= ~X86_EFLAGS_RF;
> -
> -            /* Zero the upper 32 bits of %rip if not in 64bit mode. */
> -            if ( !(hvm_long_mode_active(cur) && cs->l) )
> -                regs->rip = (uint32_t)regs->rip;
> +        ASSERT_UNREACHABLE();
> +        goto reinject;
> +    }
>  
> -            add_taint(TAINT_HVM_FEP);
> +    hvm_emulate_init_once(&ctxt, NULL, regs);
>  
> -            should_emulate = true;
> -        }
> -    }
> +    walk = ((ctxt.seg_reg[x86_seg_ss].dpl == 3)
> +            ? PFEC_user_mode : 0) | PFEC_insn_fetch;
>  
> -    if ( !should_emulate )
> +    if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip,
> +                                    sizeof(sig), hvm_access_insn_fetch,
> +                                    cs, &addr) &&
> +         (hvm_copy_from_guest_linear(sig, addr, sizeof(sig),
> +                                     walk, NULL) == HVMTRANS_okay) &&
> +         (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) == 0) )
>      {
> -        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
> -        return;
> +        regs->rip += sizeof(sig);
> +        regs->eflags &= ~X86_EFLAGS_RF;
> +
> +        /* Zero the upper 32 bits of %rip if not in 64bit mode. */
> +        if ( !(hvm_long_mode_active(cur) && cs->l) )
> +            regs->rip = (uint32_t)regs->rip;
> +
> +        add_taint(TAINT_HVM_FEP);
>      }
> +    else
> +        goto reinject;
>  
>      switch ( hvm_emulate_one(&ctxt, VIO_no_completion) )
>      {
>      case X86EMUL_UNHANDLEABLE:
>      case X86EMUL_UNIMPLEMENTED:
> + reinject:

I'm inclined to suggest to indent this the same as the case labels.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 15:27:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 15:27:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251276.1548480 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0LSv-0002wH-Ir; Wed, 11 Mar 2026 15:27:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251276.1548480; Wed, 11 Mar 2026 15: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 1w0LSv-0002wA-Fn; Wed, 11 Mar 2026 15:27:17 +0000
Received: by outflank-mailman (input) for mailman id 1251276;
 Wed, 11 Mar 2026 15: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=oqCu=BL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0LSu-0002w4-2F
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 15:27:16 +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 c7c30de0-1d5e-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 16:27:14 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-439af7d77f0so13951f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 08:27:14 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439f8223dc2sm7656888f8f.38.2026.03.11.08.27.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Mar 2026 08:27:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c7c30de0-1d5e-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773242834; x=1773847634; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TBnN2Dumri8XGwoA7NBPI1PL+2jwWyiT4+WfYmUV3Yo=;
        b=bujf7qvTb9gRybh2hfjInKYWL/PnAHpPuZwjuHQkwxeeAKGo1ys/YY6rS2ooylTf3a
         3Ymyodbh4+lADaA3rRBHwTpZFrbbDZIMZqOZ8PkjcT+0sf4y3uBu4EnI6BleoFCgOV0G
         DtikvMA0Qsgm0psVpimwno/JShsBaGfiJLiYwVmainv9PeW5My/6xsXz68TCii5hmvEe
         k5QP4UKs8VUPi1RiMMY/wOkCu18p3IYXbJWJmRg8Cb7Tlfj9oN+JmDti+XODgET9b1Mn
         L5rrXU0Zxi2d1kFaK1eILWiWQxgS3tn8EnUd5HBLwut9sXwozebacKbqvzaYGByQ7Qf1
         XwPg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773242834; x=1773847634;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TBnN2Dumri8XGwoA7NBPI1PL+2jwWyiT4+WfYmUV3Yo=;
        b=KTiH+1IOhLOj4vujZ/dtRiCajzzY4FXthMvDJQMqJ10x+zpj+1wbNDNtm3RmEug3lN
         l7IbS2n2fSepDWmSPGxMslI2tRyPBkqMh19MRKrtTU5qVJthLwvp5kZasuMJUVoNQ55/
         Q7IyoR0pi+KEkazQbQOLrov7R9h9pUuh7Iv4cCoHqt0Kj2wZ6oSdvYoRUyIf4hQqHWF8
         K3QvKMNyFQuuY1ND2NZTpRuLdfzZXt+CFjaCR6qtaOmkfFl/I8VS/PAu8gc0W7h8K0v8
         AsQoZQiLe7uS3ylU4ER0a6X4suMyYgyDOBZyyUNygjuBPr6rOScF+VmRfCgp+B7XgoOu
         XRAQ==
X-Forwarded-Encrypted: i=1; AJvYcCXNw/wG5PE9Fc4QjoaFfzGuPVbGhb4497YExG2tFib0E55axENo7tkykGhkKUa2aRUsTgZcYquu3Vk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyeF54UkaEgazkWt7sLbPPzoLhAi4Ck3E9JTaLdEOZn2q06UjfI
	CA5Od7U8d8MhUDyhsKoSa/1JVg5mIu1B1JzNnOAppBqoZZQUcdW0kraYnmNNe7liyw==
X-Gm-Gg: ATEYQzyR5A9m2QYSUf2DOD69Ujg1wvePOTOlSLzyB6POSfYUWJV2ImoYfvYyQRSC7jz
	5VVjsDB0uxsXhg8wwvJB5+m/F8MRCqbOxQvaLpkYT6M3+CWK78IrZ+q5LfAdVq+Ywiy3XJVKiYR
	Db86vssrSNB+5R4vs32uDPWpGbktj0Om8X9TUZpKvqFeGVtsvGipuqjaTw97XxjRRytO82mjFY2
	7CH0EHVgoa+BaVBvwyfnjwtxkqOuYhphTzX75tw/9c4qYQzCcj3pPEkhRa5oHzgBa6pJPYf5E8F
	sK0io5Xv53UyAAPo19dFqta4ze/bPnBpSZxihX1yEgHPVMaMx2stkVgc/himAkw9aob8B5RCN2i
	3CMT14J0k1WJg8IBEG1KJ2JoPsgeeB9abqXYps1fsIlXPgVCQidPvPUUxN7+rbwvdQHqV+Wj+lX
	spizkJ/xzuLQKEQ1Cg6c2iAwLsHmhIKxMttYw0ZiNLmAR+WPA8FApUomp79vHEyjwrbcOCVNaUA
	cbsryS99l/0YcY=
X-Received: by 2002:a05:6000:2283:b0:439:ae2a:755e with SMTP id ffacd0b85a97d-439f82017a2mr5884569f8f.23.1773242833530;
        Wed, 11 Mar 2026 08:27:13 -0700 (PDT)
Message-ID: <1e371e65-ca79-42a0-93f9-804f73084033@suse.com>
Date: Wed, 11 Mar 2026 16:27:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/7] x86/hvm: Support extended destination IDs in
 virtual MSI and IO-APIC
To: Julian Vetter <julian.vetter@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
 <jgross@suse.com>, Julien Grall <julien@xen.org>,
 xen-devel@lists.xenproject.org
References: <20260309123055.880050-1-julian.vetter@vates.tech>
 <20260309123055.880050-3-julian.vetter@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260309123055.880050-3-julian.vetter@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.03.2026 13:31, Julian Vetter wrote:
> Use the newly defined masks to extract the full 15-bit destination ID
> from guest MSI addresses and IO-APIC RTEs. In hvm_inject_msi() combine
> the standard bits [19:12] with the extended bits [11:5] of the MSI
> address into a 15-bit destination ID for LAPIC delivery. Increase the
> dest parameter of vmsi_deliver() and hvm_girq_dest_2_vcpu_id() from
> uint8_t to uint32_t. In vmsi_deliver_pirq() extract the full destination
> from gflags via XEN_DOMCTL_VMSI_X86_FULL_DEST(). In msi_gflags() pack
> the extended bits from the MSI address into the new
> XEN_DOMCTL_VMSI_X86_EXT_DEST_ID_MASK field of gflags. In
> vioapic_deliver() read the combined 15-bit destination using the
> VIOAPIC_RTE_DEST() macro. Extend ioapic_check() to check for extended
> destination bits set in a domain that does not advertise
> XEN_HVM_CPUID_EXT_DEST_ID and refuse to restore the IO-APIC state,
> preventing silent interrupt misrouting after live migration.

This is pretty hard to read without being split in a few paragraphs.

> --- a/xen/arch/x86/hvm/irq.c
> +++ b/xen/arch/x86/hvm/irq.c
> @@ -374,7 +374,16 @@ int hvm_set_pci_link_route(struct domain *d, u8 link, u8 isa_irq)
>  int hvm_inject_msi(struct domain *d, uint64_t addr, uint32_t data)
>  {
>      uint32_t tmp = (uint32_t) addr;
> -    uint8_t  dest = (tmp & MSI_ADDR_DEST_ID_MASK) >> MSI_ADDR_DEST_ID_SHIFT;
> +    /*
> +     * Standard MSI destination address bits 19:12 (8 bits).
> +     * Extended MSI destination address bits 11:5 (7 more bits).
> +     *
> +     * As XEN_HVM_CPUID_EXT_DEST_ID is advertised, the guest may use bits 11:5
> +     * for high destination ID bits, expanding to 15 bits total. Guests unaware
> +     * of this feature set these bits to 0, so this is backwards-compatible.

How do you know? Like for the IO-APIC RTE bits, there is (and cannot be)
anything enforcing this. Hence for a guest to use this feature, it needs
to have a way to opt in.

> +     */
> +    uint32_t dest = (MASK_EXTR(tmp, MSI_ADDR_EXT_DEST_ID_MASK) << MSI_ADDR_DEST_ID_BITS) |

Nit: This line looks too long now.

Here as well as ...

> --- a/xen/arch/x86/hvm/vioapic.c
> +++ b/xen/arch/x86/hvm/vioapic.c
> @@ -411,7 +411,9 @@ static void ioapic_inj_irq(
>  
>  static void vioapic_deliver(struct hvm_vioapic *vioapic, unsigned int pin)
>  {
> -    uint16_t dest = vioapic->redirtbl[pin].fields.dest_id;
> +    uint32_t dest = ((uint32_t)vioapic->redirtbl[pin].fields.ext_dest_id <<
> +                     VIOAPIC_RTE_DEST_ID_UPPER_BITS) |
> +                    vioapic->redirtbl[pin].fields.dest_id;

... e.g. here a macro or inline function doing the conversion would likely
help readability quite a bit.

> @@ -618,6 +620,21 @@ static int cf_check ioapic_check(const struct domain *d, hvm_domain_context_t *h
>               e->fields.reserved[0] || e->fields.reserved[1] ||
>               e->fields.reserved[2] || e->fields.reserved2 )
>              return -EINVAL;
> +
> +        /*
> +         * An RTE in the saved state has ext_dest_id bits set. Check that
> +         * the destination Xen has extended destination ID support enabled,
> +         * otherwise interrupt routing to APIC IDs > 255 would be broken
> +         * after restore.
> +         */
> +        if ( e->fields.ext_dest_id && !d->arch.hvm.ext_dest_id_enabled )

This won't build, as the ext_dest_id_enabled field appears only in patch 6.
But yes, that looks to be the opt-in mechanism I mentioned above.

> @@ -659,7 +676,7 @@ static int cf_check ioapic_load(struct domain *d, hvm_domain_context_t *h)
>      return 0;
>  }
>  
> -HVM_REGISTER_SAVE_RESTORE(IOAPIC, ioapic_save, NULL, ioapic_load, 1,
> +HVM_REGISTER_SAVE_RESTORE(IOAPIC, ioapic_save, ioapic_check, ioapic_load, 1,
>                            HVMSR_PER_DOM);

As per the comment there, this belongs in the earlier patch.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 15:30:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 15:30:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251287.1548489 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0LW6-0004XD-4F; Wed, 11 Mar 2026 15:30:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251287.1548489; Wed, 11 Mar 2026 15:30: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 1w0LW6-0004X6-19; Wed, 11 Mar 2026 15:30:34 +0000
Received: by outflank-mailman (input) for mailman id 1251287;
 Wed, 11 Mar 2026 15:30: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=oqCu=BL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0LW4-0004Wu-94
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 15:30:32 +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 3d100a5e-1d5f-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 16:30:31 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-482f454be5bso12787045e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 08:30:31 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4854b66e3f8sm57716385e9.14.2026.03.11.08.30.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Mar 2026 08:30:29 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d100a5e-1d5f-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773243030; x=1773847830; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TnBjGglOCM2+cTSoF662KVFUlDTC7/gd10+p2p4fWmU=;
        b=XZntlPKsF/eM+Bb/8fvGADM/1RUmpCIZn68QN4g+fIuVf6+f3yIIc6BHOizVQ/7GBl
         ZxBtDo4pCHRfGc0mlnAbB7CUzcVZZPWPWk15aMkNI3l2gGC6RzXOYgQ7JzKkNh89W9uu
         2zdJpkz4zYTw4NmeMw9K3NBI3OSJhrz+n6L/S12g25gqxt5Qbhr/+cfHAOVDoArMaWmv
         HUuC9v4t5zqbprRPFEBo5lp16RcC42KUCdcmazFlnP56H8BMi8u3ZAy0SySpucfdPlH4
         3JEyXnGKpTC/4K1Qu/jq1nh5D2a+Gl/K6lVovSf8/etmX3a47/kXn4Ghb7zGsk6T1heQ
         Ndiw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773243030; x=1773847830;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TnBjGglOCM2+cTSoF662KVFUlDTC7/gd10+p2p4fWmU=;
        b=Zk42vaxlWMKwQAqu/+EUfhcJnXiIR1YUwKaTi4+CfrMPfM2ZtRII57UqG3se48dEtz
         LTkzCZ8e7JnZvTi0q0HakJUYg++e8vsZCXm+b5yXcK646FSE51E51jarS7UicHrIiSEu
         IlUtIa1ITWqaWrpqUP+AYLoEt74CktuiXtc5uyCnY5fIWuf6LlIyg+t+0u9bPviE+/S8
         /k5k/IXYpDnCkXMMobjSGgPo1t2oVnbb6v7sp3RK+PpshrE5i4omr0p/ML5FfI9bdWVr
         WuA8/KJuaTB9qjv7+o6KHL9cAzhI6vwHbGSYh5g7AGxOw3Ztrfh5jngAxiqv8Gcm00bP
         OPDg==
X-Forwarded-Encrypted: i=1; AJvYcCWwKiO8Fl8tN4I8BBKYws2ek8tb8xGfZfZSlVw0vXcXf645GIH4RmnB5u2POgc1p4cfsqoCc5gWnxI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxwRh3ZYOhC0yxR1L/6Gy1JZM52kaOkspfnlqJPZjbLUTxkBENE
	jUS27an5JoVrgTfO1TXxkvl4gPU58nhoyfASuOBgqpb75xY3IPxYAoBnjuHvnXKbVIkup9CMQgA
	w3+A=
X-Gm-Gg: ATEYQzxfGB8DFWAMMG2BJIGgRELIMBro6BhXJydKV8EkxZ7UT5XzR6HaOfzsI4y+/ma
	rGzuAAGE2BzLbQUKsHcJ6NkVQq7rvrNyajRhyHdwhMncB8xUSei5i9jGrBs9EsBkAyyPXBiVh13
	tFiV/uaCmIXLS/Z2OkiCL00Zhg3IIljgIn+Md00modzRPIfT/Pt8VzO2yDrUn9jGWskjt+Z0w7Y
	F3dQN5QqkStA+Sv1eBHat/tuvZMWyUJ6+HjIuflObtGpsY8ZKe4DH7O8WEXQuL7C0dM7JDfcfad
	bQ+Td7RyxU5G25EtVdOGb69fZ3ED8TOF3EJ56Tw+mb2t7kwZi/JuJnBvavAppqndTVazK/x780i
	iP9qV5H+iWTOUhPJx40eaMYX8TCv2KTWUQnXvuDS5YJeXDjPYYZxfdg481oqSlJrq7tztFKdv5m
	VyhdmsBatTYHpBbO5Lo02pXZMP8BJYXyV6w6JJh8CMh6gjScf4AT0l6QvfjWgYt1Y3Nm5VAjszZ
	bZioDYtqTnwaF1hhNkYcVV3IA==
X-Received: by 2002:a05:600d:8497:10b0:485:482e:f6c6 with SMTP id 5b1f17b1804b1-4854f523a8dmr1026395e9.0.1773243030353;
        Wed, 11 Mar 2026 08:30:30 -0700 (PDT)
Message-ID: <fd63c116-da64-4356-9f56-305a48b61ae7@suse.com>
Date: Wed, 11 Mar 2026 16:30:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 4/7] x86/passthrough: Use extended destination ID in PT
 MSI bind/unbind
To: Julian Vetter <julian.vetter@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
 <jgross@suse.com>, Julien Grall <julien@xen.org>,
 xen-devel@lists.xenproject.org
References: <20260309123055.880050-1-julian.vetter@vates.tech>
 <20260309123055.880050-4-julian.vetter@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260309123055.880050-4-julian.vetter@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.03.2026 13:31, Julian Vetter wrote:
> In pt_irq_create_bind() and _hvm_dpci_msi_eoi() replace the bare
> MASK_EXTR(..., XEN_DOMCTL_VMSI_X86_DEST_ID_MASK) calls with
> XEN_DOMCTL_VMSI_X86_FULL_DEST() so that the high 7 destination ID bits
> stored in XEN_DOMCTL_VMSI_X86_EXT_DEST_ID_MASK are included when
> computing the target vCPU for MSI passthrough IRQs. Increase the local
> dest and delivery_mode variables to uint32_t to match.

Why exactly would the latter also need widening?

> --- a/xen/drivers/passthrough/x86/hvm.c
> +++ b/xen/drivers/passthrough/x86/hvm.c
> @@ -281,7 +281,7 @@ int pt_irq_create_bind(
>      {
>      case PT_IRQ_TYPE_MSI:
>      {
> -        uint8_t dest, delivery_mode;
> +        uint32_t dest, delivery_mode;

Please prefer here (for dest) ...

> @@ -807,8 +806,7 @@ static int cf_check _hvm_dpci_msi_eoi(
>      if ( (pirq_dpci->flags & HVM_IRQ_DPCI_MACH_MSI) &&
>           (pirq_dpci->gmsi.gvec == vector) )
>      {
> -        unsigned int dest = MASK_EXTR(pirq_dpci->gmsi.gflags,
> -                                      XEN_DOMCTL_VMSI_X86_DEST_ID_MASK);
> +        unsigned int dest = XEN_DOMCTL_VMSI_X86_FULL_DEST(pirq_dpci->gmsi.gflags);

... the type you found already being in use here. See ./CODING_STYLE as to
the use of fixed-width types.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 16:04:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 16:04:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251313.1548497 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0M3B-0000me-Gt; Wed, 11 Mar 2026 16:04:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251313.1548497; Wed, 11 Mar 2026 16:04:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0M3B-0000mX-EC; Wed, 11 Mar 2026 16:04:45 +0000
Received: by outflank-mailman (input) for mailman id 1251313;
 Wed, 11 Mar 2026 16:04: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=oqCu=BL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0M3A-0000mR-VE
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 16:04:45 +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 03ec7219-1d64-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Mar 2026 17:04:42 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-48538c5956bso912385e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 09:04:42 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4854b0ea7easm44901275e9.5.2026.03.11.09.04.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Mar 2026 09:04:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 03ec7219-1d64-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773245082; x=1773849882; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TT/SgzB7mUw3EoSGp78Tjf3cOUEGaf5p5hMLQXHI3Es=;
        b=TJ4vO90VppXFLrYmJTq6sd2VQ8nx2zAiIcJnHmcQEmlu0xQQ3z+bfgK7pd0MXTv5sf
         o3LXlK81siLvfmxw2AMzh5+MWmEHG4cAukHoVgdE/+8HwqRexFMYZwFGz0w32TiVsVtu
         73+b1Kr5eAdV/6MjTrjNIaMLyvSb76GC/YQUKRH+RUzQ+64doYF/rhOPoidkUUCQFT6d
         tKoljiWzNxfiyY/LfDu2VnuOK6gOx4D0oEBhZdpYzcVb8Vrg2+cDqGU2Aqr0gTHjpDSL
         2LWmdVE/7XiWBwWZmpACGOEFdoz+vtjPBwwRo18uaOg8nphe+dSiIw6oHf7sj+AAKJO+
         ehPg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773245082; x=1773849882;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TT/SgzB7mUw3EoSGp78Tjf3cOUEGaf5p5hMLQXHI3Es=;
        b=w8tXiVuLFH0BoSWQM7Oi7S58BfQMNqhZFNTJakrKdxNZHYmQ49E7PRc+FIoR2Eyxfv
         1euLRDwLx6MROCxzRrhzjn5LyygSS7BMmHbuHI//9aeS0GzN3ZXUbVkQsvKTu2b/rHtT
         hQwzOYCDw8qQkPU7ceAwwSL2lfoaWO3YNPz+i/WvouTqkjnHi15yv1Au8sa3ewZLmsso
         EKdY+ZoO8KHpLbNdS++E62kmt8nMJoEwRlv+R4jl1Yngmg5VKyvIBAXbNbPp6UnXA2MI
         j14TRLSjfDkVSoYSBYRCKdmVBAWS/wuM2hmC6rkgPBaXpGeZdcTIaA0Z+GIXmrHg8Mow
         WnCg==
X-Forwarded-Encrypted: i=1; AJvYcCUNlltCcG1sBPMyNh5HzTT0zlTstg3wjWNdTNPuWQz3UdDJEb7GC/ZRRjRlBbNGX6dlhnpUsO/uTTg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyr+yafC5QIwzD5hz3HX1X3qSUsqeufumi1ExXK/3LjfCHEIfBL
	AGJlAbuoBH6C50hciX3HHTQgO1cLR9So1DltHPRSTPtMHW7vAQHVUOmFemgTe3rg4w==
X-Gm-Gg: ATEYQzxDciCr5iRv8ISNs2O6ZqaAomlHmqvbiZbVCuQe+gk+FXYdub23Nk87LDD2ukd
	7r1087A1tgPhvNibiJnltWkzAfwMJERE9nc/9rhFB89OAvt1DqJldHKi4PEti1A9UlI+ZWKOwzN
	I0b0wXTSWBOBZJNV3J0TMwhgRXq+hU7PCn6IekL7OEPqqKVHdbf3Zmx3fUlak3gGOcDgeaXPvjF
	I9075ahmp6Bp03k6c9SmckcWTr/I+zddwAtoGn3LrSoMiX70SAjIxtWkpwy+L7k9AiajJ0xwtNm
	nr6a9D8DGm3GotBFqXwEQePU5rjg+bmWhzfuKgH6qPSRYziNbEA3I4i93+NMGHMERpHE4RyNEGe
	dahBrf0AD8y5TDNKxEh8/GFZEUALfTbSphI0fYmaNDEAJNZbvKtBPq8z8gPlCqjaxlOBrwKqFmt
	iZegoeaYIt2I/pYkfnUwaCkZC/RD2eOE46J1TpRp/XxgfN7we2+kCN4sr5c0+xmvCBKtX2dBG3J
	faUg496r0wYbKM=
X-Received: by 2002:a05:600c:310b:b0:46e:59bd:f7e2 with SMTP id 5b1f17b1804b1-4854f590efamr2030355e9.11.1773245081852;
        Wed, 11 Mar 2026 09:04:41 -0700 (PDT)
Message-ID: <55a65f8d-40df-4841-8e76-200c82f397c5@suse.com>
Date: Wed, 11 Mar 2026 17:04:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/7] x86/dmop: Add XEN_DMOP_{bind,unbind}_pt_msi_irq DM
 ops
To: Julian Vetter <julian.vetter@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
 <jgross@suse.com>, Julien Grall <julien@xen.org>,
 xen-devel@lists.xenproject.org
References: <20260309123055.880050-1-julian.vetter@vates.tech>
 <20260309123055.880050-5-julian.vetter@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260309123055.880050-5-julian.vetter@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.03.2026 13:31, Julian Vetter wrote:
> @@ -607,6 +631,83 @@ int dm_op(const struct dmop_args *op_args)
>          break;
>      }
>  
> +    case XEN_DMOP_bind_pt_msi_irq:
> +    {
> +        const struct xen_dm_op_bind_pt_msi_irq *data =
> +            &op.u.bind_pt_msi_irq;
> +        struct xen_domctl_bind_pt_irq bind = {
> +            .machine_irq = data->machine_irq,
> +            .irq_type = PT_IRQ_TYPE_MSI,
> +        };
> +        int irq;
> +
> +        rc = -EINVAL;
> +        if ( data->pad0 || data->pad1 )
> +            break;
> +
> +        if ( data->flags & ~XEN_DMOP_MSI_FLAG_UNMASKED )
> +            break;
> +
> +        irq = domain_pirq_to_irq(d, bind.machine_irq);
> +
> +        rc = -EPERM;
> +        if ( irq <= 0 || !irq_access_permitted(current->domain, irq) )
> +            break;
> +
> +        bind.u.msi.gvec = data->gvec;
> +        bind.u.msi.gflags =
> +            msi_addr_to_gflags(data->addr, data->data,
> +                               !(data->flags & XEN_DMOP_MSI_FLAG_UNMASKED));
> +        bind.u.msi.gtable = data->gtable;
> +
> +        rc = -ESRCH;
> +        if ( is_iommu_enabled(d) )
> +        {
> +            pcidevs_lock();
> +            rc = pt_irq_create_bind(d, &bind);
> +            pcidevs_unlock();

I understand the same locking is used at the other call site, but it's as
questionable there as it is here. We should try hard to avoid use of this
global lock when something lighter-weight would do.

> +        }
> +        if ( rc < 0 )
> +            printk(XENLOG_G_ERR
> +                   "pt_irq_create_bind failed (%ld) for dom%d\n",
> +                   rc, d->domain_id);

%pd please in new code. Also this message needs to be distinguishable
from that in arch_do_domctl().

> --- a/xen/include/public/hvm/dm_op.h
> +++ b/xen/include/public/hvm/dm_op.h
> @@ -444,6 +444,28 @@ struct xen_dm_op_nr_vcpus {
>  };
>  typedef struct xen_dm_op_nr_vcpus xen_dm_op_nr_vcpus_t;
>  
> +#define XEN_DMOP_bind_pt_msi_irq   21
> +#define XEN_DMOP_unbind_pt_msi_irq 22
> +
> +struct xen_dm_op_bind_pt_msi_irq {
> +    /* IN - physical IRQ (pirq) */
> +    uint32_t machine_irq;
> +    /* IN - guest vector */
> +    uint8_t  gvec;
> +    uint8_t  pad0;
> +    uint16_t pad1;
> +    /* IN - MSI data (vector, delivery, trigger) */
> +    uint32_t data;
> +    /* IN - flags */
> +    uint32_t flags;
> +#define XEN_DMOP_MSI_FLAG_UNMASKED (1u << 0)
> +    /* IN - MSI address (0xfeexxxxx, includes ext dest) */

The address given is x86-specific, while the header is arch-generic. (If
this was to be an x86-only interface, ...

> +    uint64_aligned_t addr;

... this also wouldn't need to be a 64-bit address, for example.)

> +    /* IN - MSI-X table base GFN, 0 for MSI */
> +    uint64_aligned_t gtable;
> +};

Commentary throughout also leaves unclear which of the fields are actually
meaningful for XEN_DMOP_unbind_pt_msi_irq. In a new interface, the unused
fields would want checking to be zero. Yet better may be to have unbind
have its own, much smaller structure.

> +typedef struct xen_dm_op_bind_pt_msi_irq xen_dm_op_bind_pt_msi_irq_t;

Is this typedef actually needed anywhere? Clearly ...

> @@ -468,6 +490,7 @@ struct xen_dm_op {
>          xen_dm_op_relocate_memory_t relocate_memory;
>          xen_dm_op_pin_memory_cacheattr_t pin_memory_cacheattr;
>          xen_dm_op_nr_vcpus_t nr_vcpus;
> +        xen_dm_op_bind_pt_msi_irq_t bind_pt_msi_irq;

... the plain struct can be used e.g. here. Imo we should stop cluttering
the namespace with typedef-s which aren't actually needed. (A case where
they are needed is when a guest handle needs defining for the type.)

> --- a/xen/include/xlat.lst
> +++ b/xen/include/xlat.lst
> @@ -107,6 +107,7 @@
>  ?	dm_op_map_mem_type_to_ioreq_server hvm/dm_op.h
>  ?	dm_op_modified_memory		hvm/dm_op.h
>  ?	dm_op_nr_vcpus			hvm/dm_op.h
> +?	dm_op_bind_pt_msi_irq		hvm/dm_op.h
>  ?	dm_op_pin_memory_cacheattr	hvm/dm_op.h
>  ?	dm_op_relocate_memory		hvm/dm_op.h
>  ?	dm_op_remote_shutdown		hvm/dm_op.h

I'm curious: How did you determine the insertion point?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 16:45:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 16:45:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251342.1548523 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0Mgd-0005tE-Ix; Wed, 11 Mar 2026 16:45:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251342.1548523; Wed, 11 Mar 2026 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 1w0Mgd-0005t6-Dq; Wed, 11 Mar 2026 16:45:31 +0000
Received: by outflank-mailman (input) for mailman id 1251342;
 Wed, 11 Mar 2026 16:45:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=G7+k=BL=bounce.vates.tech=bounce-md_30504962.69b19c21.v1-91755ee142c24cf09d14820a48502e98@srs-se1.protection.inumbo.net>)
 id 1w0Mgc-0005sz-BL
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 16:45:30 +0000
Received: from mail132-19.atl131.mandrillapp.com
 (mail132-19.atl131.mandrillapp.com [198.2.132.19])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b2353a73-1d69-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 17:45:23 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-19.atl131.mandrillapp.com (Mailchimp) with ESMTP id 4fWGns1qR4z38C
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 16:45:21 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 91755ee142c24cf09d14820a48502e98; Wed, 11 Mar 2026 16:45:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b2353a73-1d69-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773247521; x=1773517521;
	bh=sF4mymys6HAdkw0w5HfIbDG7JT5KWKQV9kEANluIkKo=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=M4SXMsT4bI7OMHpjo6LlMptingu/us1dYII8J6C73OlHhtcIsUJ8McFoo3u02yPtZ
	 U1rBnznU53xx3xmaiCuN5FFFXLfbyW3FNX+uNNSyJgX86AHEaTxiuAwDazqqRUGW1U
	 q3OzHVngsTFJ4ShODeUJq+ZFDeIEZQg9ybitwqKgSSjjgPaQ/++ae//PLH/eAdhb97
	 d1IKfOBhrJoGLco7gNEIm+sFchGMpd/hM4hs1RMbMT08/xWLS+A+BUtb2Sb8DVDLOO
	 MBH0T1SnpNMwg1bp62EAwPlsExVjIPhgXmm/b1ew+J2QdOEHX0TnM1mxX6ofLdlp2O
	 0nYPW8EEs6TMw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773247521; x=1773508021; i=anthony.perard@vates.tech;
	bh=sF4mymys6HAdkw0w5HfIbDG7JT5KWKQV9kEANluIkKo=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=qWbqT8GoBdfavENknNPEKsyiiDPye6BhIAUmwJXI3qtc9Mbn1S9BnJkRDZV7pghV9
	 M+TQqB8scXcgKvc39HWKdMo5JrQ3eyELwR7Pwm/kN/wAk3C1yI7wE28y0ewAzeZ/YN
	 cigWWSP2BqWWq8gFfYDM4ZHfaItDBBSyXfVDq/ThjAo+UP54cgv8qKJjQRYUZ9869u
	 31ZtQKH+Y6MowrMvafKfl/ehpvLMmp4WvO1ForSa7cvl1h96McipczlO+rZRtmtoTI
	 ORYN1wxIewkCOLtRgOenOT3TQCYSrd1n3YeF0uVNksIVU3IxyTtmza5mwqoH+Xt/Di
	 hiDpvUNUZlF1Q==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v8=202/2]=20xenpm:=20Add=20get-core-temp=20subcommand?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773247520247
To: "Jan Beulich" <jbeulich@suse.com>, "Teddy Astie" <teddy.astie@vates.tech>
Cc: "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, "Community Manager" <community.manager@xenproject.org>, xen-devel@lists.xenproject.org
Message-Id: <abGcHzCpY_Y7kq9r@l14>
References: <ec92e54a493a16f5bc085738e943b3778c3a0231.1772211384.git.teddy.astie@vates.tech> <aadf2e78f91f442964cc4e93c028b6b31fceb9eb.1772211384.git.teddy.astie@vates.tech> <7380cf63-e9ac-4df9-9633-c26f9de0027a@suse.com> <4c18413b-6296-4a30-bbec-561f7b802cbc@vates.tech> <d7419a76-4c9a-4741-b738-9a4bdbfb0dd0@suse.com>
In-Reply-To: <d7419a76-4c9a-4741-b738-9a4bdbfb0dd0@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.91755ee142c24cf09d14820a48502e98?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260311:md
Date: Wed, 11 Mar 2026 16:45:21 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tue, Mar 03, 2026 at 12:54:28PM +0100, Jan Beulich wrote:
> On 03.03.2026 11:50, Teddy Astie wrote:
> > Le 02/03/2026 =C3=A0 17:52, Jan Beulich a =C3=A9crit=C2=A0:
> >> On 27.02.2026 18:00, Teddy Astie wrote:
> >>> +            printf("No data\n");
> >>> +            exit(ENODATA);
> >>
> >> In how far is using errno values as arguments to exit() a useful thing=
? (I
> >> think you had it like this before, and I merely forgot to ask.) Yes, I=
 can
> >> see the tool using a number of exit(EINVAL), but I don't understand th=
ose
> >> either. This way you can't even document easily what particular exit c=
odes
> >> mean, as the errno values may vary across OSes.
> >>
> > 
> > I reused the exit(...) pattern used in xenpm, but I'm also fine by 
> > returning simpler errors (like exit(1) or exit(EXIT_FAILURE)).
> 
> Anthony, can you please suggest which one better fits the toolstack as a
> whole?

There isn't really one, but `exit(EXIT_FAILURE)` would be more
explicit.


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Wed Mar 11 17:02:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 17:02:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251360.1548531 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0Mx8-0000D7-RX; Wed, 11 Mar 2026 17:02:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251360.1548531; Wed, 11 Mar 2026 17:02:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0Mx8-0000D0-OF; Wed, 11 Mar 2026 17:02:34 +0000
Received: by outflank-mailman (input) for mailman id 1251360;
 Wed, 11 Mar 2026 17:02:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hdNM=BL=kernel.org=helgaas@srs-se1.protection.inumbo.net>)
 id 1w0Mx7-0000Cu-CA
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 17:02:33 +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 1659b7d5-1d6c-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Mar 2026 18:02: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 343704433C;
 Wed, 11 Mar 2026 17:02:28 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id DD869C4CEF7;
 Wed, 11 Mar 2026 17:02:27 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1659b7d5-1d6c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1773248548;
	bh=qbQHUZHFrMSl9GZ0M449xWT2lv88BuJUsOUnExNCyK4=;
	h=Date:From:To:Cc:Subject:In-Reply-To:From;
	b=auYcSsapz8p65gnvMN/VpGSca+m0V47rs2fNjRxHOGbcOF7khTzKCshNZHWFukUEa
	 bnXC+yfrXbKqbLhu68q0yQfhAyMWSCXNXNIBAKRaLjxFgWqWGJAvlEHVE71SrnEki3
	 dKD9hbUZKlFZq0UVuNyj0aL4WApKHEHlTf0M8Ea7qH5r5ypeguDSCVP7fDO8XFkDzz
	 KqLzUOMWPsO+YrDPq38kiCFHjNbZq9K/tQnyESpkcZj3YnLHqDfmRejiAWwWhB2AUQ
	 D64NsEu8EfPzJunss4O8z5+fy5ezEJbruvUviqIng0ygosw3JnId/51TdCe9FKqRYj
	 4x+0E9RndXZcA==
Date: Wed, 11 Mar 2026 12:02:26 -0500
From: Bjorn Helgaas <helgaas@kernel.org>
To: fengchengwen <fengchengwen@huawei.com>
Cc: Jeremy Linton <jeremy.linton@arm.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>,
	WANG Xuerui <kernel@xen0n.name>, Paul Walmsley <pjw@kernel.org>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>,
	Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Len Brown <lenb@kernel.org>, Sunil V L <sunilvl@ventanamicro.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Jonathan Cameron <jonathan.cameron@huawei.com>,
	Kees Cook <kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>,
	Sean Christopherson <seanjc@google.com>,
	Kai Huang <kai.huang@intel.com>,
	Tom Lendacky <thomas.lendacky@amd.com>,
	Thomas Huth <thuth@redhat.com>,
	Thorsten Blum <thorsten.blum@linux.dev>,
	Kevin Loughlin <kevinloughlin@google.com>,
	Zheyun Shen <szy0127@sjtu.edu.cn>,
	Peter Zijlstra <peterz@infradead.org>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>,
	Xin Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>,
	Sohil Mehta <sohil.mehta@intel.com>,
	Ilkka Koskinen <ilkka@os.amperecomputing.com>,
	Robin Murphy <robin.murphy@arm.com>,
	James Clark <james.clark@linaro.org>,
	Besar Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>,
	Ajit Khaparde <ajit.khaparde@broadcom.com>,
	Wei Huang <wei.huang2@amd.com>,
	Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, wangzhou1@hisilicon.com,
	wanghuiqiang@huawei.com, liuyonglong@huawei.com,
	linux-pci@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	loongarch@lists.linux.dev, linux-riscv@lists.infradead.org,
	xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
	linux-perf-users@vger.kernel.org, stable@vger.kernel.org,
	Wathsala Vithanage <wathsala.vithanage@arm.com>
Subject: Re: [PATCH v5 2/2] PCI/TPH: Fix get cpu steer-tag fail on ARM64
 platform
Message-ID: <20260311170226.GA930029@bhelgaas>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <9ef9b529-839b-4cf0-a294-5b68fe8aa768@huawei.com>

On Wed, Mar 11, 2026 at 11:00:02AM +0800, fengchengwen wrote:
> On 3/11/2026 6:09 AM, Bjorn Helgaas wrote:
> > On Tue, Mar 10, 2026 at 10:58:49AM -0500, Jeremy Linton wrote:
> >> On 3/9/26 10:20 PM, Chengwen Feng wrote:
> >>> pcie_tph_get_cpu_st() is broken on ARM64:
> >>> 1. pcie_tph_get_cpu_st() passes cpu_uid to the PCI ACPI DSM method.
> >>>     cpu_uid should be the ACPI Processor UID [1].
> >>> 2. In BNXT, pcie_tph_get_cpu_st() is passed a cpu_uid obtained via
> >>>     cpumask_first(irq->cpu_mask) - the logical CPU ID of a CPU core,
> >>>     generated and managed by kernel (e.g., [0,255] for a system  with 256
> >>>     logical CPU cores).
> >>> 3. On ARM64 platforms, ACPI assigns Processor UID to cores listed in the
> >>>     MADT table, and this UID may not match the kernel's logical CPU ID.
> >>>     When this occurs, the mismatch results in the wrong CPU steer-tag.
> >>> 4. On AMD x86 the logical CPU ID is identical to the ACPI Processor UID
> >>>     so the mismatch is not seen.
> > 
> >>>   int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type mem_type,
> >>> -			unsigned int cpu_uid, u16 *tag)
> >>> +			unsigned int cpu, u16 *tag)
> >>>   {
> >>>   #ifdef CONFIG_ACPI
> >>> +	u32 cpu_uid = acpi_get_cpu_acpi_id(cpu);
> > 
> > From AI review (gemini/gemini-3.1-pro-preview):
> > 
> >   Does this code need to validate that `cpu` is within bounds before
> >   using it?  Before this change, the `cpu_uid` parameter was passed
> >   opaquely to the ACPI firmware via `tph_invoke_dsm()`, which would
> >   gracefully handle invalid values.
> > 
> >   Now, `cpu` is treated as a logical CPU index and passed to
> >   `acpi_get_cpu_acpi_id(cpu)`. On architectures like arm64 and riscv,
> >   `acpi_get_cpu_acpi_id()` uses `cpu` directly as an array index
> >   (`&cpu_madt_gicc[cpu]` and `&cpu_madt_rintc[cpu]`). On x86, it uses
> >   `per_cpu(x86_cpu_to_acpiid, cpu)`.
> > 
> >   If a caller passes an out-of-bounds `cpu` index (for example, if an
> >   IRQ affinity mask is empty and `cpumask_first()` returns
> >   `nr_cpu_ids`, or if userspace passes an arbitrary ID via
> >   `mlx5_st_alloc_index()`), this will result in an out-of-bounds
> >   memory read.
> > 
> >   Consider adding a bounds check:
> > 
> >     if (cpu >= nr_cpu_ids)
> >       return -EINVAL;
> > 
> > I agree that this is an issue, and I think implementations of
> > acpi_get_cpu_acpi_id() should validate their inputs.
> > 
> > I don't know if there's a value that can never be a valid ACPI CPU UID
> > and could be used as an error value from acpi_get_cpu_acpi_id().  I do
> > see a few mentions of a ~0 value meaning "all processors" (ACPI r6.6,
> > sec 5.2.12.13).  
> 
> I only have the ACPI Specification Version 6.5, so I will use v6.5
> as an example.

https://uefi.org/sites/default/files/resources/ACPI_Spec_6.6.pdf

> 	int acpi_get_cpu_uid(unsigned int cpu, u32 *uid) {
> 		if (cpu >= nr_cpu_ids)
> 			return -EINVAL;
> 		*uid = xxx;
> 		return 0;
> 	}

This looks good to me.

> Another issue: This commit also provides an implementation for the
> x86 platform.  However, further code analysis revealed a potential
> problem in the implementation:
> 
> The acpi_get_cpu_acpi_id() retrieves uid from x86_cpu_to_acpiid in
> SMP, and x86_cpu_to_acpiid is set through the call chain:
> acpi_parse_lapic() -> topology_register_apic() ->
> topo_register_apic() -> topo_set_cpuids() -> x86_cpu_to_acpiid. It
> appears to retrieve the "ACPI Processor UID" from ACPI Section
> 5.2.12.2, but the problem is that this field is only one byte in
> length, which may cause issues in huge-core systems.
> 
> Therefore, I suggest re-implementing the acpi_get_cpu_uid function
> for the x86 platform. Either I provide a default implementation
> (shown below), or x86 guys contribute to the implementation:
> 
> 	s64 acpi_get_cpu_uid(unsigned int cpu) {
> 		if (cpu >= nr_cpu_ids)
> 			return -EINVAL;
> 		return cpu;
> 	}

I don't think this is your problem to solve, so don't worry about it.
If you implement acpi_get_cpu_uid() to return the same values as
cpu_acpi_id(), it's up to the x86 folks to deal with any one-byte ID
issues.

Bjorn


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 17:59:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 17:59:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251421.1548558 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0NpW-0006bx-00; Wed, 11 Mar 2026 17:58:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251421.1548558; Wed, 11 Mar 2026 17: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 1w0NpV-0006bq-SN; Wed, 11 Mar 2026 17:58:45 +0000
Received: by outflank-mailman (input) for mailman id 1251421;
 Wed, 11 Mar 2026 17: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=nAj5=BL=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1w0NpT-0006bk-NY
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 17:58:43 +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 f0c32813-1d73-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 18:58:42 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4853aec185aso995265e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 10:58:42 -0700 (PDT)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48541aa73dasm466222415e9.2.2026.03.11.10.58.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 11 Mar 2026 10:58:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f0c32813-1d73-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1773251922; x=1773856722; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LlBmTgWfgO6kHetj1uAczCboAc6JSzkfGfAETvDden4=;
        b=BKPVCyZx/qjgmYu7vT7nd1CgNuWjnuBQmNcal/sYhJgZug+M1NFfx25YQukjzemjZj
         ocy80Fpw6VxloLKU6ihrYCowCHlr8xtdiMBhj/qmKnllt2wv/iS+rikstUrIaEi7uZIv
         NDXj2NCRDdQrhnzOXEXODiPEepOZHeLhMaAlQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773251922; x=1773856722;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=LlBmTgWfgO6kHetj1uAczCboAc6JSzkfGfAETvDden4=;
        b=U9I3E+e/wuKO9QouaTHfKrn/kJRLSN4ZktULpoRStpnFQy+bYlskVJPe1ov/VKnDn5
         VJRTCAw6scA+/8tsmkXra3xLyv/P1JyRm0B3HAb1iuqX4q8Z9p6PBh1D3wj8yEtk5D3f
         U1j34MGwyZ3T3L7PhzC+A26wUrY1tzgWaSYbo/WlEziowfbOmYS0Blm7XqtA/GZz3MgR
         WOvS/noOAmMUvI21tc7hyeMlLKmUNXSypGsa9IE+GxWn0RZreEYCWkmwVbu51SxWvFzo
         kRJcYoMkOcT92q/jlSyaoXE9v5CkRmhbdn+KWlZiS61Y03UyL9oxhB9vtuhZ36w0G2Qr
         jvQA==
X-Gm-Message-State: AOJu0YwAZ0FCUBAKUI+MRoH70MJ3yEaIUzgdvGSdFUwKBp/9jL8ibJyZ
	Ck2hCditeajw2l73+GtfaIrV0pFOD2D4DiaftL+qP+A8jDiP1gzUhIqLrSJWd4PM4muCuivE1Sg
	yIKud
X-Gm-Gg: ATEYQzzDlqSUDr71xmDF8ZMYsPIdSBYmVs5t/xtiJSm6JcEMVrgK98RKCly433rKYgV
	nCOgzpTnCB6pDNZIIAxeC4II44hz/vB7jiKrMHFwog17nV93eeUHJvITpzg/RbfTqSA7FA/htrI
	xNNXvNPVv/LJjaoe2bv8zlSa2CiqkF5mmlE+xwAqMqaq79bnQGcfvV++BUaVpYHSaXbKZ7MPcOB
	1ZTyJkadVX/Z8gxQmgwLK/ItdXqT/HwQPTx5olzMgLm2tN4q0o4gCAmjec5sot1MRJNsR9KDWhy
	X02N2rIu4uuAjr50cap3vUXDpWHtlHkyVILEnDMcSbc/aS0m6KofXnRpGC1W9SkcZbzkAA3mh9h
	S/jIYYTRW1WL5AZOCz1qXw+UG0cRi2rHL27jlhrxefxCpETX6ihzXWIKkDqTdhRBg4j1kT622Fi
	/+2FmZ1aBOztr5cIJCe4IA150nSk+RtUGOWRZE/HAlTBOJKzADblE84xn7z/QnjxuBUYyu82Q=
X-Received: by 2002:a05:600c:8b0a:b0:480:4a8f:2d5c with SMTP id 5b1f17b1804b1-4854b129f91mr57653585e9.29.1773251921378;
        Wed, 11 Mar 2026 10:58:41 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v4.1 13/14] x86: Clamp bits in eflags more aggressively
Date: Wed, 11 Mar 2026 17:58:38 +0000
Message-Id: <20260311175838.573925-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260227231636.3955109-14-andrew.cooper3@citrix.com>
References: <20260227231636.3955109-14-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In FRED mode, ERET is stricter than IRET about flags.  Notably this means:

 * The vm86 bit (bit 17) and IOPL (bits 12,13) must be clear.
 * The sticky-1 reserved bit (bit 2) must be set, so dom0_construct() needs to
   set X86_EFLAGS_MBS in order for a PV dom0 to start.
 * All other reserved bits must be clear.

Xen has been overly lax with reserved bit handling.  Adjust
arch_set_info_guest*() and hypercall_iret() which consume flags to clamp the
reserved bits for all guest types.

This is a minor ABI change, but by the same argument as commit
9f892f84c279 ("x86/domctl: Stop using XLAT_cpu_user_regs()"); the reserved
bits would get clamped like this naturally by hardware when the vCPU is run.

The handling of vm86 is also different.  Guests under 32bit Xen really could
use vm86 mode, but Long Mode disallows vm86 mode and IRET simply ignores the
bit.  Xen's behaviour for a PV32 guest trying to use vm86 mode under a 64bit
Xen is to arrange to deliver #GP at the target of the IRET, rather than to
fail the IRET itself.

However there's no filter filtering in arch_set_info_guest() itself, and it
can't arrange to queue a #GP at the target, so do the next best thing and fail
the hypercall.  This is not expected to create an issue for PV guests, as the
result of such an arch_set_info_guest() previously would be to run supposedly
Real Mode code as Protected Mode code.

This allows PV guests to start when Xen is using FRED mode.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

v4.1:
 * Adjust VM handling.
 * Rewrite commit message.

v3:
 * Rewrite the commit message.
v2:
 * New

It turns out that it's simply ignored by IRET in Long Mode (i.e. clearing it
commit 0e47f92b0725 ("x86: force EFLAGS.IF on when exiting to PV guests")
wasn't actually necessary) but ERETU does care.
---
 xen/arch/x86/domain.c                | 24 ++++++++++++++++++++++--
 xen/arch/x86/hvm/domain.c            |  4 ++--
 xen/arch/x86/include/asm/x86-defns.h |  7 +++++++
 xen/arch/x86/pv/dom0_build.c         |  2 +-
 xen/arch/x86/pv/iret.c               |  8 +++++---
 5 files changed, 37 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 868c26036dd9..4664264b2f5d 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1193,6 +1193,14 @@ int arch_set_info_guest(
 
             if ( !__addr_ok(c.nat->ldt_base) )
                 return -EINVAL;
+
+            /*
+             * IRET in Long Mode discards EFLAGS.VM, but in FRED mode ERET
+             * cares that it is zero.
+             *
+             * Guests can't see FRED, so emulate IRET behaviour.
+             */
+            c.nat->user_regs.rflags &= ~X86_EFLAGS_VM;
         }
 #ifdef CONFIG_COMPAT
         else
@@ -1205,6 +1213,18 @@ int arch_set_info_guest(
 
             for ( i = 0; i < ARRAY_SIZE(c.cmp->trap_ctxt); i++ )
                 fixup_guest_code_selector(d, c.cmp->trap_ctxt[i].cs);
+
+            /*
+             * Under 32bit Xen, PV guests could really use vm86 mode.  Under
+             * 64bit Xen, vm86 mode can't be entered even by PV32 guests.
+             *
+             * For backwards compatibility, compat HYPERCALL_iret will arrange
+             * to deliver #GP at the target of the IRET rather than to fail
+             * the IRET itself, but we can't arrange for the same behaviour
+             * here.  Reject the hypercall as the next best option.
+             */
+            if ( c.cmp->user_regs.eflags & X86_EFLAGS_VM )
+                return -EINVAL;
         }
 #endif
 
@@ -1244,7 +1264,7 @@ int arch_set_info_guest(
         v->arch.user_regs.rax               = c.nat->user_regs.rax;
         v->arch.user_regs.rip               = c.nat->user_regs.rip;
         v->arch.user_regs.cs                = c.nat->user_regs.cs;
-        v->arch.user_regs.rflags            = c.nat->user_regs.rflags;
+        v->arch.user_regs.rflags            = (c.nat->user_regs.rflags & X86_EFLAGS_ALL) | X86_EFLAGS_MBS;
         v->arch.user_regs.rsp               = c.nat->user_regs.rsp;
         v->arch.user_regs.ss                = c.nat->user_regs.ss;
         v->arch.pv.es                       = c.nat->user_regs.es;
@@ -1268,7 +1288,7 @@ int arch_set_info_guest(
         v->arch.user_regs.eax               = c.cmp->user_regs.eax;
         v->arch.user_regs.eip               = c.cmp->user_regs.eip;
         v->arch.user_regs.cs                = c.cmp->user_regs.cs;
-        v->arch.user_regs.eflags            = c.cmp->user_regs.eflags;
+        v->arch.user_regs.eflags            = (c.cmp->user_regs.eflags & X86_EFLAGS_ALL) | X86_EFLAGS_MBS;
         v->arch.user_regs.esp               = c.cmp->user_regs.esp;
         v->arch.user_regs.ss                = c.cmp->user_regs.ss;
         v->arch.pv.es                       = c.cmp->user_regs.es;
diff --git a/xen/arch/x86/hvm/domain.c b/xen/arch/x86/hvm/domain.c
index 155d61db13f8..a0e811ea47a0 100644
--- a/xen/arch/x86/hvm/domain.c
+++ b/xen/arch/x86/hvm/domain.c
@@ -194,7 +194,7 @@ int arch_set_info_hvm_guest(struct vcpu *v, const struct vcpu_hvm_context *ctx)
         uregs->rsi    = regs->esi;
         uregs->rdi    = regs->edi;
         uregs->rip    = regs->eip;
-        uregs->rflags = regs->eflags;
+        uregs->rflags = (regs->eflags & X86_EFLAGS_ALL) | X86_EFLAGS_MBS;
 
         v->arch.hvm.guest_cr[0] = regs->cr0;
         v->arch.hvm.guest_cr[3] = regs->cr3;
@@ -245,7 +245,7 @@ int arch_set_info_hvm_guest(struct vcpu *v, const struct vcpu_hvm_context *ctx)
         uregs->rsi    = regs->rsi;
         uregs->rdi    = regs->rdi;
         uregs->rip    = regs->rip;
-        uregs->rflags = regs->rflags;
+        uregs->rflags = (regs->rflags & X86_EFLAGS_ALL) | X86_EFLAGS_MBS;
 
         v->arch.hvm.guest_cr[0] = regs->cr0;
         v->arch.hvm.guest_cr[3] = regs->cr3;
diff --git a/xen/arch/x86/include/asm/x86-defns.h b/xen/arch/x86/include/asm/x86-defns.h
index 0a0ba83de786..edeb0b4ff95a 100644
--- a/xen/arch/x86/include/asm/x86-defns.h
+++ b/xen/arch/x86/include/asm/x86-defns.h
@@ -27,6 +27,13 @@
     (X86_EFLAGS_CF | X86_EFLAGS_PF | X86_EFLAGS_AF |   \
      X86_EFLAGS_ZF | X86_EFLAGS_SF | X86_EFLAGS_OF)
 
+#define X86_EFLAGS_ALL                                          \
+    (X86_EFLAGS_ARITH_MASK | X86_EFLAGS_TF | X86_EFLAGS_IF |    \
+     X86_EFLAGS_DF | X86_EFLAGS_OF | X86_EFLAGS_IOPL |          \
+     X86_EFLAGS_NT | X86_EFLAGS_RF | X86_EFLAGS_VM |            \
+     X86_EFLAGS_AC | X86_EFLAGS_VIF | X86_EFLAGS_VIP |          \
+     X86_EFLAGS_ID)
+
 /*
  * Intel CPU flags in CR0
  */
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 9a11a0a16b4e..075a3646c2a3 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -1024,7 +1024,7 @@ static int __init dom0_construct(const struct boot_domain *bd)
     regs->rip = parms.virt_entry;
     regs->rsp = vstack_end;
     regs->rsi = vstartinfo_start;
-    regs->eflags = X86_EFLAGS_IF;
+    regs->eflags = X86_EFLAGS_IF | X86_EFLAGS_MBS;
 
     /*
      * We don't call arch_set_info_guest(), so some initialisation needs doing
diff --git a/xen/arch/x86/pv/iret.c b/xen/arch/x86/pv/iret.c
index d3a1fb2c685b..39ce316b8d91 100644
--- a/xen/arch/x86/pv/iret.c
+++ b/xen/arch/x86/pv/iret.c
@@ -80,8 +80,9 @@ long do_iret(void)
 
     regs->rip    = iret_saved.rip;
     regs->cs     = iret_saved.cs | 3; /* force guest privilege */
-    regs->rflags = ((iret_saved.rflags & ~(X86_EFLAGS_IOPL|X86_EFLAGS_VM))
-                    | X86_EFLAGS_IF);
+    regs->rflags = ((iret_saved.rflags & X86_EFLAGS_ALL &
+                     ~(X86_EFLAGS_IOPL | X86_EFLAGS_VM)) |
+                    X86_EFLAGS_IF | X86_EFLAGS_MBS);
     regs->rsp    = iret_saved.rsp;
     regs->ss     = iret_saved.ss | 3; /* force guest privilege */
 
@@ -143,7 +144,8 @@ int compat_iret(void)
     if ( VM_ASSIST(v->domain, architectural_iopl) )
         v->arch.pv.iopl = eflags & X86_EFLAGS_IOPL;
 
-    regs->eflags = (eflags & ~X86_EFLAGS_IOPL) | X86_EFLAGS_IF;
+    regs->eflags = ((eflags & X86_EFLAGS_ALL & ~X86_EFLAGS_IOPL) |
+                    X86_EFLAGS_IF | X86_EFLAGS_MBS);
 
     if ( unlikely(eflags & X86_EFLAGS_VM) )
     {
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Mar 11 18:01:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 18:01:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251431.1548565 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0NsX-0008Al-Bs; Wed, 11 Mar 2026 18:01:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251431.1548565; Wed, 11 Mar 2026 18:01: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 1w0NsX-0008Ae-9F; Wed, 11 Mar 2026 18:01:53 +0000
Received: by outflank-mailman (input) for mailman id 1251431;
 Wed, 11 Mar 2026 18:01: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=tK7a=BL=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1w0NsW-0008AN-0S
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 18:01:52 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5ffeb0bc-1d74-11f1-b164-2bf370ae4941;
 Wed, 11 Mar 2026 19:01:50 +0100 (CET)
Received: from MN2PR20CA0044.namprd20.prod.outlook.com (2603:10b6:208:235::13)
 by BN7PPF02710D35B.namprd12.prod.outlook.com
 (2603:10b6:40f:fc02::6c4) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.3; Wed, 11 Mar
 2026 18:01:46 +0000
Received: from BN3PEPF0000B36D.namprd21.prod.outlook.com
 (2603:10b6:208:235:cafe::53) by MN2PR20CA0044.outlook.office365.com
 (2603:10b6:208:235::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.26 via Frontend Transport; Wed,
 11 Mar 2026 18:01:37 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN3PEPF0000B36D.mail.protection.outlook.com (10.167.243.164) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9723.1 via Frontend Transport; Wed, 11 Mar 2026 18:01:46 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 11 Mar
 2026 13:01:30 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5ffeb0bc-1d74-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dr0Gs0qu45yXBUBSglHv44/qGOTa4orggIm+FWKGK/wSAJDfDrNI+yjsaFXXyetWfqjmQJkv+Dep2zecy6DOPUsx76PJIObV3PMcrCkp1B+Q74GcVPwVgxOJYYzMHtwekrKNKNLniw0VRip3mHiL+Aau0RcrwCiZj2OQauUEAeANapP2awFGwoTlolaoMjK8avWxNaLsrXoAaa2GyPdHFdcBEN6v1nHpEGgvjjoYGOdUhnt1yhba5BCQLz2S90hTpJxnNWpfsjIWueE9uO9G9Lhp20JMECSMDFGSUavb7im2JE7jPxAr/iQDoVtrKNzXB//mjGmV4wqhxhjiGg2nqA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=okI4fiejMMls0M1i0caJ90L2TUXisxMbRuJCnUtSXu0=;
 b=LzBMxnmKdhOjx8TAf5ir/Y7b0c6fcj1hvm2gitgDumInzF5AUEkbqd2cNp/1XL/kQiq65ac7LCwZtDMrZdoSWeWDeiZKm0lbihhxDRgPRYjHZAffzTvbzfucQxx2z1rlZTuVeB52GVbfFGksiUwyZ/PZn2Mv4ITfPND+SKrY7CJkkFtyZpP/rnLHayYsKtvQflofc8NA26h32/I00IAoA/yKSgsBoLf65f+vOhr+MiNoKeczO9AeHcSxGk9Gv4M/Mdr8LFauzDWUePiBdcIwQfi9w8l7nmgQOikRpJOvD++lTbRcvPTUrzuMz3SjMCcj8RRYYvkRhEelHXAx9il0og==
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=okI4fiejMMls0M1i0caJ90L2TUXisxMbRuJCnUtSXu0=;
 b=YKoxCDeOE0hKbzkKAZRvtyqcaNFYQSWJ+QmcD0UUunhJTS9jVOfR/sNvDTxLQE37LTGUn/i28bj9KTLt31xYUbORyP0+VnsxJKfB0ywub1+YXmOKGFry7lzSZI88vSxk4NwqyNXzc17ELa4JPgyYsUpULt5inbOg3KFKx0O8RN0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 11 Mar 2026 19:01:25 +0100
Message-ID: <DH05EHW9PD7C.132K81VFX47GG@amd.com>
Subject: Re: [PATCH v4 2/4] x86/hvm: Disable cross-vendor handling in #UD
 handler
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20260311142711.16754-1-alejandro.garciavallejo@amd.com>
 <20260311142711.16754-3-alejandro.garciavallejo@amd.com>
 <d76d6c2c-b81a-417b-9d4e-07f301e35dbc@suse.com>
In-Reply-To: <d76d6c2c-b81a-417b-9d4e-07f301e35dbc@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: BN3PEPF0000B36D:EE_|BN7PPF02710D35B:EE_
X-MS-Office365-Filtering-Correlation-Id: c27c5355-b116-492d-541d-08de7f98428a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700016|1800799024|82310400026|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	dif0zl2YGVvK6wZyWvmVhDB9iKip7jWMizMsPLNd024X0dguZikDqAfvvAF0zujWCAXzN4ipe/ghNQ6WtzNVPpT8lI+xk3t8i4mXLqkpsPAbWwYUvAm5CtTIJut9tM8DH2n8rjSJ59rVlrD3t0aGCT3jOFXI8l7f3Ur/G4BvJJ89/7h2bVV0SEpdk0stl9p0GfvNL4I9ydxnjOSe71tM++GuNL5gsqNQE6/ldwwU108MvvO5kVVZKuTf7ThILe6yZIn3mJTwNxy6CHrr4SgGKcE9sGun/YuG99n2F2fr6/9bOYNmKmJbMPNe/26HOs2iZnNTR/+nHmHGrt2eM/BJRNjj14UwrEY/ciiIFA2ilw1eAiaipU2S485iWTlonFwOJ4HbaU282ZdRyDQdqO/8V2BAMp4Uvj7xy42jeVC4m8ZxHKOiau6COgHUDfpntQIW1SgbTWAmH0XF+OOKKa/gYiNlvrcobZHhQj1THK1E1IF8RvgO/GWLd6/1gHdvR0ErIvb6SjMKTgKji8x4JcWJ0DhWiJXWZ0LuI5UbT33gHJ6j6TigKTnXidYaTy9O/e1m0hpNKtIueShhn3dXdJWtqVAqBfUcdP+z1aQYO78oliLBRNMqogPwljT/osXxSmQsQAcK5batfpm+h608JoqDqrEMa5FGzGqAmsmgvvmS6GQ7y8oJ7vHaOZ/GfUHqMvOnW5kB8DtKLxlmyPsKF1HRywVQWfHGvDDT5R3KpY6df3Mm73SxUmuMeDIu07K6F9pv65oXAJ1NeOiSDHxea2OCRA==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700016)(1800799024)(82310400026)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	wNWa4ehWMaSZchkpkLR6YA5PdR59cWUPrRX25vgl3StS/T1kFc7tLSQTDnXeZ9b5X0X1H/Hg3FzO6CcBXrI11PBXCl8tNikSBJLuu8BvuunZyLJs5PoLoRrr0ic2OiMamhphys29h4ABqS4iRJAY9WgVnpIScCQbPmt/J1zt//O+FodXjxsOQctXlq84uzMucaQuBGndgAW+9c8BR4maTtYMhlRsCJjf4REofyIk/u8lAyLzTa3VitPNkOrjWdp1Qn5S39RNd0iBAO/vN+K0OmgUCq5HJfMQ7Wfdx4enNaNojtuOT3htRBp5aM29GzyGCJUJbywPsikxMY+Y6xu1dKsGRv980bPyeFCTpObNzjvHgx5UP7D3CZR0xZ1iwNFj6z38ndz3brC7hSleYDkxZVP4Fpwr+UsXuFjsWuJfMuxtk/Xi8Qh2n4sDS9yV8AIN
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2026 18:01:46.0743
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c27c5355-b116-492d-541d-08de7f98428a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B36D.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PPF02710D35B

On Wed Mar 11, 2026 at 3:59 PM CET, Jan Beulich wrote:
> On 11.03.2026 15:27, Alejandro Vallejo wrote:
>> Remove cross-vendor support now that VMs can no longer have a different
>> vendor than the host.
>>=20
>> While at it, refactor the function to exit early and skip initialising
>> the emulation context when FEP is not enabled.
>>=20
>> No functional change intended.
>>=20
>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>> ---
>> v4:
>>   * Reverted refactor of the `walk` variable assignment
>
> "Revert" as in "move it even farther away from the original".

Revert as in not split the assignment and restore the orignal syntax _of th=
e
assignment_, which was the main focus of the prior discussion.

It's hardly my intention to add unrequested changes, but I can't address th=
at
which isn't explicitly requested.

> As said, you want re-indentation,

This is an ambiguous piece of advice.

Of what? That can mean moving the prior logic back to its original location=
 and
crate a minimal diff (1) or simply collapsing the indentation of the block =
(2).

(1) can't be done with hvm context initialiser moving after the early exit,
which I explicitly mentioned in the commit message I wanted to do.

(2) can't happen because declarations and statements cannot be mixed (thoug=
h I
really wish we dropped that rule).

There's a third option of keeping a silly { ... } around just for indentati=
on
purposes, but that's worse than either of the other 2 options.

Maybe there's a fourth code arrangement in your head that does all this in =
a
way you find less intrusive and I just don't see it. If so, feel free to se=
nd
a patch I can review. It'll be faster for the both of us. Or tell me precis=
ely
what's at fault here.

If it's the diff, I'll go for option (1) above. I don't care enough about i=
t to
argue.

> so please do just that, nothing else that isn't
> explicitly justified (like the moving of hvm_emulate_init_once() is).

I'm not sure if you're fine with that motion because it's in the commit mes=
sage
or not because it's a refactor that shouldn't be in the patch. This stateme=
nt
can be read either way.

> With
> this put back in its original shape (can do while committing, I suppose):
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

I don't think it's very obvious what you mean to do on commit, so it wouldn=
't be
appropriate to agree to your adjustments, seeing how I just don't know what=
 they
are. I'm happy to send a v4.5 on this particular patch with whatever else n=
eeds
modifying. Or a full v5 even. Or review whatever you wish to send as a v4.5=
 of
this patch.

Your pick.

>> + reinject:
>
> I'm inclined to suggest to indent this the same as the case labels.

I didn't notice the extra statement in CODING_STYLE for labels inside switc=
hes.
I tend to do that myself, but thought it wasn't in Xen's style. Sounds good
then.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 18:48:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 18:48:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251477.1548576 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0Obm-0004nI-NP; Wed, 11 Mar 2026 18:48:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251477.1548576; Wed, 11 Mar 2026 18:48:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0Obm-0004nB-JS; Wed, 11 Mar 2026 18:48:38 +0000
Received: by outflank-mailman (input) for mailman id 1251477;
 Wed, 11 Mar 2026 18: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=lzpO=BL=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w0Obl-0004n5-3G
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 18:48:37 +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 e5e39128-1d7a-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Mar 2026 19:48:31 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA6PR03MB7926.namprd03.prod.outlook.com (2603:10b6:806:432::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.12; Wed, 11 Mar
 2026 18:48:21 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9700.010; Wed, 11 Mar 2026
 18:48:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e5e39128-1d7a-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iW6QCKyQPPl4wDwxqNkDR/tUqdnSfKa/mxraQ0uAYsllS4jTpDUph5uvHQixSdcHcU7X7EaotqeMm6f8x4kJgKOq+PcC3nIxJKfTYpk/JrJ3dI61a4aocfm09b8vwdMw4/KivuRlBafXIJf70sTRP7FT9YdrNpBl/77368SsKqh9QJs8+HHvxfiePhuX4Vl5efmbghJIdf4OUxPklSypoSouBz9EDlumdtxR9sUNmV4JshJ+4PezwpIfpHVHg4d16DkRoG3jGNPtiSea9LjXT6nGfroENDS6toNaAGztC6XYuXd2aIyLEWZtlmQTPr9zrd0moiC/dpQeQD2i82Skiw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6NGDs+BRyn7XweAWMRpwVKPpBX19IbRMJ8dz2ljzaz4=;
 b=psMPgWnzyHD6hIWQiyhyt/nDG5JZuSW47mEtUKZbwzkJ/p+WPpgbs+k+PDjChmEErn6rQvyMg2iEPNhJFa6ca0kOBomy/jG5r49ZVRG+ORQQ7sSm9Zy/QGGd6+3L32/qSSO2Zkn9x4QZtzg3DsYWbGhnG890UJpOHNSbyMmW/gLU+dNMVzOg6BcQ7HPN3zfD+HeAuL41DOc/vKAPK2lGod84Eunst7oGA/UcVVIFH/NjKgdNgNA6VhQjA5Id5sj5I8Zh5e88yakcLUiRt/4Leq6IUsDM/7NuWJcNiDyAWv/x4dG+tQ8Xep2Q/tBnsKJAAbNe2DXva6JmduFoeocneA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6NGDs+BRyn7XweAWMRpwVKPpBX19IbRMJ8dz2ljzaz4=;
 b=BCF7W1L+s1Z3VK3PT8VGH7Wc/Z/wjbbLU59H7Uy5OAeqLN08ILqAfsTEKiaJgOJUXN9W7oBHhEQ82oJ7Ki2zfyvZ+CoPGrg4WZvP9z75yDIOIa2L9Ah7/DpoTjP53UfbwQhJXCsnz/FmPlrFuN39/Z5Wcy62ddxt1YlWt2fRBEc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <3a4359c6-ac49-4920-be28-c71cf911ff9c@citrix.com>
Date: Wed, 11 Mar 2026 18:48:20 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v4 2/4] x86/hvm: Disable cross-vendor handling in #UD
 handler
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 xen-devel@lists.xenproject.org
References: <20260311142711.16754-1-alejandro.garciavallejo@amd.com>
 <20260311142711.16754-3-alejandro.garciavallejo@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260311142711.16754-3-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0416.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a0::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_|SA6PR03MB7926:EE_
X-MS-Office365-Filtering-Correlation-Id: 7b4289ff-560d-485c-daa1-08de7f9ec66e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	oFA2M7iYkuM1Z4c4Z2OmgFZVfOzB87SvVO3zLYyjtlMjq6wYhgujtOuSke3yGrR6nYOm9xpnZ6Fvi2JvkPwIHWUDSroQm3oZ8AYnWKB+CE0bGZ0gJPHN0BtxFRfmIzP6jduB7e88bBj2nhwT6ELhlUXRoC5lT/nTRPlkeT+gbOVumFvio2d86gMRthYXivaXKoa8lwwEE+C6JDPVIN9p0blNF9BGh6NLHv+F80/tbrW8sEKoBWw0O6Lmg5Wq4tP8SDE36mXMS7Uog2aEHm2ENwysPCjWKGvSu+QIsfGCihwcltefURmqkYiix4pZGVYvuGTggAi4x6vkM6U9Gx3oI61MpeJ1FCE91Hqchln95xJYbPoi8JywpbPcsUf3sbzOQTaOSicGGB5WbiFWc0+V0IIBvprmZZb9RWTZykUuDLqcfc6J6kcWeDicRjuNoP1sVWJUaS1k9YGvDuHzdQ9PK1M8JezI2Gs6joDvoGPigJrrihwBgJ8jPOgV3F+F/ozq+xYntuXbEdMl8iWlZKD1cie2svjyDrUFcuEo0hG5eWzKapNjA94/NIlJsHfxkMktDLHPiY1BB8Ly3rzII9/WRqw0sMvRq5s3gPmDCxmUA0PrKIMkTCJsqjFJ9UkdTVGiwn0Bj96PbMucY3enWS2i0aF4t1uf1o24eXAV4bqHQkfKlNMsJ+qfmVJwOcT6zMZOymp0Aa5Ehfsle4kgbfBgFMzSKstGXml87UDnqldI6PI=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eEs3ZCtrMTQydGpQaDNraHlkbGVITzR4aEhIM3JiNTB1c3ltQ3Y4V0Y4Tllq?=
 =?utf-8?B?SlVhVzgwWkRIMFNndTcraXpLWFJ2V2kzaXlZeXVXZUJ6MTBQcW1rTGlQbWc2?=
 =?utf-8?B?d1g5b2Q5ZDBCZTM1bjU3TFc1QjhudUExNkRPd1ZKZkkyeHhjbzJPZVF3eGtS?=
 =?utf-8?B?TDYvNHhKR2JvVUZlYVVvMDVjd3pWQW1xaStHcHBUOEdjTWZlcng1dGduRjdt?=
 =?utf-8?B?NXhYNkVISkJxMCt3ZWg0MnFsREE4c0tqdHJRT0xBODhuTDhVb1N1aWxSSjVN?=
 =?utf-8?B?eHQ4TjJVVFB0YnFTbVJiMUJXUHp2MnI2SEU5bjVYSG1ZUXhRZ016eGpRNFZ1?=
 =?utf-8?B?a1FlR0JZOTN1WGhSdndxTjd4RnNIZ2U3MStXSHV3TGtzZjk0aklITTB6ZEpL?=
 =?utf-8?B?S2NpaTg2SEF5MXRISGJ4WmdxWGRVTGdJM0hldi80dDNrWlRxWUZDZVEveUVC?=
 =?utf-8?B?K3o3UjFsdFNIdkRteTZ0ZkIzdVhGM3JsMEtzR1VYTS9XRXRjd2wwWUdLb1VB?=
 =?utf-8?B?cnFOTWZiV3NrSGN6LzkyYnVubi9PYzY3cE01UVhORFVPb0dpbTFJTysxMW8z?=
 =?utf-8?B?eXZSREJGd3AzQXNXVXV3bUE3d2pxY3FDRHpNK3VmbkZBekJyR2dBYXZrRWZN?=
 =?utf-8?B?dzZESzBYektaa01TMVBFeEc0cjVYYXpNVkFiTXlpWlY3eUJ4bVNxSTRRbmhJ?=
 =?utf-8?B?TnZ0UTBaS3M2OGZSRFJFWjZrWVdoRnBYSW9KZnRRRCtsSkwrNXpKL3JJcEc3?=
 =?utf-8?B?bFAvTld1dzY1UlJ4dnMxc0ozM1d3ZVQwMGY3VGZFcjJYcXN4M2ZRdzFDTW91?=
 =?utf-8?B?d2l1UWVyNWVhM3I0QWlBdWJQUUhKLzAxS0J6WkRPc0xwYk9mMTlTdXFKL3U5?=
 =?utf-8?B?OVVPZlNCMUNybXRyaDZNc2VwN1hXajRGSXpxZVFsWHdFaWJFVGNPMzc1YkMw?=
 =?utf-8?B?V3dDUjdnVzZ5aGlkTDFmcWl6aFVWRUk3OSt6SjRxbGhPd0pxZWJEcktlZGJK?=
 =?utf-8?B?N2hXSHF6Wng4UDBmOGZvUEZDTG41aUZZN2IvR3FYNXgyOWMrOFhuUWdnR2NT?=
 =?utf-8?B?dWNBc1puWldESnk2SGFHdXpsNTdwaXlWMU1tRE1zbVZYWFNrVE1HVUQ4eXMx?=
 =?utf-8?B?REZtcUxtdUU4NnppelA5dlk2MzFlczJiWk5waTh6Z0FZQTk2Z3RHcXU2eURF?=
 =?utf-8?B?UlNMMG9xOFZLNGVRRUEyNkhSakVjdElRajVUTWpPZUpKRHM5dzlLbllnNEVZ?=
 =?utf-8?B?SVJiODlrN2lqQTluYmIyOUMzcDh1YWtERVNFT3oxNERzeFViVzdQcFBPbUQ4?=
 =?utf-8?B?MmVFTUw1RndaMlhHTFNQdW5QV3VkeXpNeDBTdlVKUDJxbnIrSHB0U3lQTnFX?=
 =?utf-8?B?dUROMGl6V2VzRmMzNVhXblRSN0ViK0Y5WjJ0Qk01OUJiWVNVejdBa25aWjFW?=
 =?utf-8?B?TEV3WnNQQ1M2WWtiM05Gdy9OQUdhaFZhNHpxd3F5SG1yeERWaGVzQXFsRVRw?=
 =?utf-8?B?L0lKdHZTbmhyMnZXV0lhZy9sTE53QzIySVBzZlNWL0s2S3lOVlJvNE9oM1JT?=
 =?utf-8?B?clBua29RZy92TGxRc1Y1TGxvU3NKZEFncElkS20rZXJHdnRwSGZyRFVlZWY2?=
 =?utf-8?B?NEFpQnVkWUI0Nm05L2VsTUt2cnpSdVU3R2JVUXd4U1g0UnlXOE9Cc09kMTNV?=
 =?utf-8?B?QzMwREE5aDlMQStjVXMvQ1B0ZjM0M09pZGRXdXFIdmo2ZXpHT3NOTG5ic2pO?=
 =?utf-8?B?am9OV0tPcnY0NnVsTG9PNnFzc1BUV0RvVnFNYVJWc084UlFDSE9qaFYrOE1U?=
 =?utf-8?B?ay9XNkp3WFlybWJQeFlTaE9ValVYQTh2ek1yeXpQZ0RsMExtcVFRTWVJWUUx?=
 =?utf-8?B?NzM0WHB4Q00wSDUyMFV1ZmJXU2ViaXhQYU9wSGJ4VmZuT1FZSEhGUzgxZWJj?=
 =?utf-8?B?a1luKzF0bGxjT3F5aGhpa0JHNkVJSTRGOXVLWUowWHJOaFVocWNOS1NlaVky?=
 =?utf-8?B?bW1qQytiZzNtTERUWDJwVVltMDRtWis0Q2F1TkQ1ZnYwNlBOYy8xeHpsQmQx?=
 =?utf-8?B?WG1RUmZIL2RDU0ZldktJczZjREZXWHQzTU9GVktZRGhKL0hzL1NvQUxvb1ov?=
 =?utf-8?B?TXZsZE9mTHFPUUY1TFJaNGE1ME45MjJuT3FELzhlY1ZEZzdwV2NGWkR4ajlx?=
 =?utf-8?B?MG5SdWsyVklvcmQ3VnFENC8ydWVSeVIxY0hqbklJWVZYRGhnVnc5YVlVNmFm?=
 =?utf-8?B?SldlS3FrOXF0cUt6R2xPaHpPbTB0U2plYm5lYjhEZC9tQS9GWGdxYlZlMVdq?=
 =?utf-8?B?dmkvVE05SmJIZEg4OGp2eTcvZTJoTiszV1NmSTRXemNzbmdRRzBnZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7b4289ff-560d-485c-daa1-08de7f9ec66e
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2026 18:48:24.4716
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: pBRKDWPn5pM3fgNaI2xjM5DKXvanragcR873aYVYavNggl5MDfCAQFx1qu9bpm53drDiW8bVvct7Ngs+GjdgddJAHlDSaSEgFvvI2npE4ac=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR03MB7926

On 11/03/2026 2:27 pm, Alejandro Vallejo wrote:
> Remove cross-vendor support now that VMs can no longer have a different
> vendor than the host.
>
> While at it, refactor the function to exit early and skip initialising
> the emulation context when FEP is not enabled.

These two things are at odds.  Two patches please.

The first which strips out is_cross_vendor() and initialises
should_emulate to false, to be this patch in conjunction with the
changes for the UD intercept.

Then a subsequent patch to rearrange hvm_ud_intercept() to DCE some more
in the !FEP case, which is no-functional-change.

In fact, I've got half a mind to suggest 3 patches, with the middle
patch being a strict un-indent of the the current "if ( FEP )" clause. 
I think that will make a very a surprisingly legible patch 3.

The result will be much more coherent for future archaeologists to follow.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Mar 11 18:54:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Mar 2026 18:54:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251490.1548584 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0Ohe-0006P0-Ee; Wed, 11 Mar 2026 18:54:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251490.1548584; Wed, 11 Mar 2026 18:54: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 1w0Ohe-0006Ot-Bu; Wed, 11 Mar 2026 18:54:42 +0000
Received: by outflank-mailman (input) for mailman id 1251490;
 Wed, 11 Mar 2026 18:54: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=lzpO=BL=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w0Ohd-0006Ol-66
 for xen-devel@lists.xenproject.org; Wed, 11 Mar 2026 18:54:41 +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 bfbbdc6c-1d7b-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Mar 2026 19:54:39 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA6PR03MB7926.namprd03.prod.outlook.com (2603:10b6:806:432::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.12; Wed, 11 Mar
 2026 18:54:29 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9700.010; Wed, 11 Mar 2026
 18:54: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: bfbbdc6c-1d7b-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Gukzsx572hw2WV7mm2OPjjq//cbq6aOXnXEZuR91hEsg1tHCg3g0Ussh4RQQs2awuiwm9iJOjFRmNBZCSSOwTyN6bNyblI1BbwwO2gnDJsq6PpbGBhqeQxgNoRXXcjLdgdGbBVCliP/pKKOk8785sCnV8bl1mPQ2+4oYXPxNHUJzpMUUxgDb/SDY7UYhUQ1UkUZ2TeoaKPHWOK9lB541oWphFDHlmMNWjUZvMXCsEBmP3YCC0jmet/7GjXPAHUJRDFPZQop9dKmsKRvx7f9PzEiIw30+LfiQ7E3D+0bB53kNtDKVJ4ESXau0Q4dS3Ma+3zJILH+RUE8SFuSQl9ja6g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rjJi2ByH8oxh/HkmazPoTciK0z2uwOsP+ggzCjCvvsE=;
 b=isBIf7Jhr26bkQlMoyAemBFoYA5RMy+PPFWpoOh45rKHzq2pCu/gEXYzirCsCYoY8LJgmk8hqpm9Gy5zeZ4/N6WfuZ6Fi3HJrqIgxlIOHADg+dzbECku/M08JIJKJeZrKT2xARIo2AFlKR9Y1zO0KMMqvMZtQ0HUAs1Dy8JSXNk1m2Y1V4X1iAQPmRhWjGi00R9O9IBvsKnQ+0xUfnkENDrA2iu2fZoPHsdtj5WHA6SgRItNVmE4zaq46XfWV8R/E/eiCrzucM/0PLDieen46r6XS6lOY3yd/71pvfSqpivIr9+vo+VYC7Mdyi1RZnu9Gpd+CsocJ6E60Htu41isFw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rjJi2ByH8oxh/HkmazPoTciK0z2uwOsP+ggzCjCvvsE=;
 b=0pm/XQnJrt7IxJIKMeIuBXqnMMFBxNOaMGcw67UA4UrceJ1Ct2NgtYH5m+zBSgijukHRKnqRcIvy3tcDmGmEWN3C5lSxoZC3uRvCI3i1hh0kOp1hR1T+PwDlR2/FRpi58n4MJck2uiCbR6rnVArW7mer3w+QAKjFMQZBu9R7uj4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <22bbe514-b1d5-4928-a35c-c5c61f26602f@citrix.com>
Date: Wed, 11 Mar 2026 18:54:28 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>,
 Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH v4 4/4] x86/svm: Drop emulation of Intel's SYSENTER
 behaviour on AMD systems
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 xen-devel@lists.xenproject.org
References: <20260311142711.16754-1-alejandro.garciavallejo@amd.com>
 <20260311142711.16754-5-alejandro.garciavallejo@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260311142711.16754-5-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: PA7P264CA0432.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:37d::29) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA6PR03MB7926:EE_
X-MS-Office365-Filtering-Correlation-Id: ebefb891-084b-4e6d-26bd-08de7f9fa254
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	6oqaxYBlv33ndgItnr6ecyisnE9ysIRNciNvhw+ss7EXdI9dwICHmfBpB490Gc9dkCdNFz71OqEC93Dw/+CYrT9GKnKCOUJs8S5WBRWGg0IczgKohj9sk0dY/60bWOfFtxDBjB7O+1S+YVfaRUa96lrD6I8WQ/itcNxx8s1YxtHtUR0Q78degD7Qj+Rzg1dKvynWJJocvpFkzQJ+cXZWE5IgZ9TYj+zdmpcErP3Q5kf1NmGM29SZGFhfZBTivTfpP/6pXflnMquQOppJ10bHs/yqqqmVXxizX66EP/DKlhe9tyTLhtHhOy5O8KWgo9JN0RS1t+5TCaKmVb7Jet3xCOOq8BEpNjyGGtUWeHZYWHdchj0H/jKFn9ptlSAXqoRICbdES8oCuEvI2oXgO+/bZsXebVQb3oKgfEwz8aproqc34UVdG4AGT7SPs58Zi90iqja9JxZg8DflNUyMlgmgeJ4lGYVUAU1UOwbevtugpXT2HjhC82oIBhC8CMzsHXAOfNbNDgMKG8Kw4En/v33N66dQ0rVi6fotwm8+Nf3kQIIacXp64WPDDcg+q0bQ27UjkTAFBnd78qJKgjT2q5x97LeQUGCz12Kt13s/y1K/wCjvn4iGPCNI9brjbEfYeQK+51inqgMzAqmoaPSpd+qcy4QZ0+IW5vYwbtKGkjOmtD5/N1tkAEJuIfqf6LEHqBdudIUOpCr3Jy9vB4f++l1Zt0ttFJpj4PJ+HpSmER6LCSY=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dzJheHd5M1U3NE9OUHoxc0Y3SlI3ejFUak9hbjBaQUxjS1hMRmVLcFlURnhh?=
 =?utf-8?B?RmFrR3diNXI1elZhU1Bsc2dLWURlYWIxdS9YdUJhTjBiaE9oalBubFZoVUp4?=
 =?utf-8?B?NjlOR1RVVzI3SUFWOXdueGlKSkJhUkIwSGlWSjVCYlVMR3RMRXpheUFwZTI4?=
 =?utf-8?B?cThZbFZrdTV3RnVZdVpGeHNScVU1TkZyUDYzaEI0Z2N4VmViVEtkZ3c1Vzhr?=
 =?utf-8?B?WGZjNGN6TDNIcjNQOExwSm54ZWVGWTRGMEM1WURMdS9aSDFNV2ZJbGRqOHJz?=
 =?utf-8?B?SnEvaWxaMHpaT3dhOWlyb0VNeURWbWZjdDFJU2wxbXJyTFNIVE5jMkxuUmFO?=
 =?utf-8?B?Um9BQmR3cmZJcG1oNUxneEdQL21hcmhsLzZ4LzJqdE1wKzVNRlVvUlJkM3Mx?=
 =?utf-8?B?YzFVNjNSSWIrUzhWQlBkRlY1MnRqRWg5eVBnYzRyWW1nN3Y0akJpWXhHUGVU?=
 =?utf-8?B?UkROdDdEL1RtcjAvZ2c3NXJvNW9CVTVrQm92WjBGS3JGNnNvTHUvb2w5bXNu?=
 =?utf-8?B?OVdDaFBwbyt6VWc2TGV2SzA5cnJkQlhlelM4ajdXcFlqVkZQZTRPcURFejBI?=
 =?utf-8?B?emdpMDdXdk5jVDNMdzROcG1vZjcrN2dGSit5bWtWTW0zdXNBM2h4S2RuWVRY?=
 =?utf-8?B?aXplRDhMa3RWc3pDeGZ6K2FCUnNjU3JXeWRNK0tSdC9QUDI3clBhTUV1WDlK?=
 =?utf-8?B?Qm1rS29KQS9SdHdkUklPeDM3TEg4OE53Nno4Vk5JZVc5enBJSnN6U3NvS1A5?=
 =?utf-8?B?MkFQZlU2MWI2N04xei9RNUJ5Y2d1ZG1vWlllcVVlSjlUMGRHQXRzcGxUZSt1?=
 =?utf-8?B?OTI3MlFYZEo5ZThIcTFiOFNZd0JndUo2L0QyRytCWkJiMmZSbm9XbnRrOWEw?=
 =?utf-8?B?VDdncXJ0U0dlYktqWm53ZlNsd0p6WmpwdnYxajlxR2RWb3FlUDdBVmVHeitR?=
 =?utf-8?B?N0o2NHRJc3ozbjFPV2w2VjRWRm1yRWNsYStCc0VRb3JKMjZMVVFIS2ZSNm84?=
 =?utf-8?B?OVRQYzZ0NUNPRVpuVkllV0JFNldpK3JwczRoeHZxdHVQbUdMVnJXL3NvZHY4?=
 =?utf-8?B?d2ZJTEloUXVyZWQvZWxERTdTVUF6R3JHMU96Mm1SOFE2RWhHSWM0MDdxOUZs?=
 =?utf-8?B?U3o3cFRmWnI3ZDhybllGUUp3TTRZZ0hmcGJ4bzV5Wk5nK1FmQ09ybml5UHVq?=
 =?utf-8?B?cUh5U0JPOUc0STJJRUp2UERhdjBKUUNFbUk3Wm1BY21valhKays4V2Nzamd3?=
 =?utf-8?B?NEF3SXNZVzl1eVd6am05Ymg5T2EvZTlrdzYvbEhrOVJMMmJMc3hWVGk2OTJr?=
 =?utf-8?B?NGViQVFNTmlYQnNLWFE3WFhGNkx0LzFzdklFQXg4eHpLbGZPN1VNNHJWK2N5?=
 =?utf-8?B?OGI1YzBIT0JHS0tIYWJ5TDhnaXZzRmpydW1zMklvb2J4NUFvaXpibjZRWWFn?=
 =?utf-8?B?dXRvMmpnNGY1UkhFbms2UFBOa2pDelROOXdQVTNRUjNhZ3Q4Q2xRNTBrOVln?=
 =?utf-8?B?YUw2WHFuMkpjRTMya1ltYWd2dHhpUXBQTHFXMlUzUEFIUk90WERpNjg2QTRK?=
 =?utf-8?B?OGpxU09vdllYSG1ySEFvNi9JUHJLVmV6QjF4L0wzMmE3MkxWdDhYWTZiM1dr?=
 =?utf-8?B?d3lDazFTWGpKRnJ3dHptRjJzc0s4VkZQNUtiQjRYWlRCdXpZQ0drRThOcjAr?=
 =?utf-8?B?OWZ0WXJnTk9RUjFFMXhjQmtURHN1M25PdXlWQWU3RmhHZWJlQkd2NHplQ2cz?=
 =?utf-8?B?dmdNVFdFZ2lMdTJEbytVWm5rcExJRmZtYUNyQ2pVZmlpU1hEN1JWV1l0ZVR2?=
 =?utf-8?B?eEt0SUJUVFhOZ1JNNW5WZS80ME8xZ0t3YXRZMHArK285dnNxODhWNHpwNHRH?=
 =?utf-8?B?dXVsS1JqUjVtWkdHVXEzMmRrdnZEZHZENE9KcGpmRXBHTVJHWVp0OEg5ZXFV?=
 =?utf-8?B?R2dRVkZFK0ZXNmdSZk54QW9nSW42NUR3TnR4SHF2eXl6TVgwbTZRajlSdXdO?=
 =?utf-8?B?L3VyVXhkakpEUEtHMWt0UkRaRGI1ZFpNWGcydkdjL3Vmc0kxWGp4WmJFcUli?=
 =?utf-8?B?dkowNG44VzZEK2NrSmhVdlh2SzJ5R0c4QUhQVHVGejc5SGp1TStwM3ZvM2xH?=
 =?utf-8?B?YnMrOE1rdk0vc2kxRmtpcGk3c3dsU25ieWF1NkVsMUNWQzRkYmhiaDYxQTc3?=
 =?utf-8?B?NWVNQ0ZBTnRxWGpHQzhYUkorWWlJYUZSdFRnMW1Vd0lNTjRwdkhEb0FDWnVn?=
 =?utf-8?B?T0h5ZzBlODNhR3MzTkdEbW1BTjVsa3NMQkRrMmtjRlhPbnQ4c2w4SUxaaitt?=
 =?utf-8?B?bnRlK3ptV3hFNE5rWWFvZkthZVBZUVZOTm9CazEvdWdocVdxbkVaUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ebefb891-084b-4e6d-26bd-08de7f9fa254
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2026 18:54:33.3856
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: OJ69ce2deqm9TVOZjK591IpSHFudGLkmtN5v2PYTdS3iDLKbNOlc0tbJG9gDyE7rE21Z0LHjzFdyQg3xrSMtSPIS5lCqema7PSI7e3qE9m4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR03MB7926

In the subject, you need to say "SYSENTER MSR behaviour".

To counter it getting even longer, the "on AMD systems" is reductant
with the "x86/svm" prefix and can be dropped.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 06:58:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 06:58:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251714.1548599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0ZzN-0002Xb-0q; Thu, 12 Mar 2026 06:57:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251714.1548599; Thu, 12 Mar 2026 06:57:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0ZzM-0002XT-SH; Thu, 12 Mar 2026 06:57:44 +0000
Received: by outflank-mailman (input) for mailman id 1251714;
 Thu, 12 Mar 2026 06:57: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=jTts=BM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0ZzM-0002XN-2J
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 06:57: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 bfcb0dd5-1de0-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 07:57:36 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4853f2826f7so5422925e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 11 Mar 2026 23:57:35 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439fe19aec5sm5513192f8f.4.2026.03.11.23.57.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Mar 2026 23:57:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bfcb0dd5-1de0-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773298655; x=1773903455; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4JY9BJ/9d+xdQsZgGB46qGlBtAWUT1DQpKWqvJ5veII=;
        b=S6cj5je2C1HRdv6gqCUhczAWvBck+iECUVaYYm82OdvHLXWSR7HkfPATOGGRE/zrit
         cbulWD2G1L0v/a5l9vLoUyF4FdujovZw9ez2p54aQRSLUBYFgGYLkLsJHMqFVbLgW0yx
         01D1Hl2zeEd3IP95zqF27oIqBSig49ENPrYNJGQ0b8dfSNJ0BY7TibZjAAmPtyK9M7YJ
         OtzSdmYA/TxHtFJwE5TTuDGrH/3n6XUWpbnCHq54wOnIGPLBewmZkXg+sSB2lKdZBXoC
         CsC7CtWeoHb+z7iDNdVCu0hNc5eO+xnSUo+x7zFAiElHUjP22WktoGrDTGaWYloZl6LM
         b6dQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773298655; x=1773903455;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4JY9BJ/9d+xdQsZgGB46qGlBtAWUT1DQpKWqvJ5veII=;
        b=vUxAFG0VtE0Lepx2gi+gqv6f3AaZSQ+qEtHQ8K4uV4mOyXbShxMQ72bikyJxMkx/j4
         kN3nXRm2W6mzSiVwKDDb7r3FnUTmDmL13UGC92tPogbpbqXY42bwMvkj7hWU8gpPzC7/
         gRWo69/QNgfBYkf7tOS7GXOagasa4o+ome093EpPtd0pcfqcD4zQgv3cFLYW9FnzotKc
         cnTQ/WGnHa6xqMCN/R10SQcbpSxnQCnuxjyQxH+W8u107iLYIBgNMN2rl98KwOyQHoLI
         uGSpt1PUbuUe59CikAep8mNFnISg1N6Ht9sA4FQgmtLmiXDxhXZZ8u3vAayrDL2GUy7u
         nvvA==
X-Forwarded-Encrypted: i=1; AJvYcCWi8vxpLb8gMTvBuUtksjHbA9ABncPfex/us9cjJMGuk6R75WTuXAJn42cBf0FX4XNcxViaPMBy7T4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywt9X0g+mRj1qqsLMyZJ7gSEpEpe2gqqqChFfCevXodQkgcpia9
	KojaKFJuihMmSfL8IuaTfo+0Il196sjSDdppSmnGzN8Yq1pw1wSmix3sf41qee4qnA==
X-Gm-Gg: ATEYQzz708B/jM6UTNM6HkmNRMJPYZDBI2QuarsLc0EjD4bntOQIYIzfqygK0QXiKWo
	6/I+XGprIuqf9Bta8cS9SIEpitsA2/TFXI7bUZKJ32mZ3Lzq0nq888g6skcEsytWQLV9CazyrDx
	Y4VFgSDsAcRgbm9GCEqNHD/P5ag20XJae2ysBnMbRd+0R9knHakl4nyrOR2C5xyv4N+8cALfLX/
	WFUM5Y7urfVwokA45GGtxGRSs/G4Xxpjhl4wu4Ne4XURNjEavOf+CHylFtlNNzmhQ3Ce9ibqP2e
	3qVAkAcuFwGa2vdAaIDTMnid5ejLJIea1YXrNhl5rlFfwc1YgHVcvLN5gqa6pyCCWqihYDN3tce
	9tkTEeogPbXKSK8c8atpzmM2OCABkavO5xwNuPPy+v+fw4wWyWHLw+G+ek45Yd/+ftnrKd9K+gt
	6EsgtolVBk9m2xX3I23gXdbaXHJHdgp9NQzHab7ePha9w1JdTG7i8u/ue2Ji1Mmu6ZMPm2z/2+x
	m3LcmfiS3wnIYJZ+jffp447ZQ==
X-Received: by 2002:a05:600c:3b16:b0:485:4535:73d with SMTP id 5b1f17b1804b1-4854b0a4920mr92305895e9.2.1773298654758;
        Wed, 11 Mar 2026 23:57:34 -0700 (PDT)
Message-ID: <536b659b-1eb8-4bc7-980b-35c1ad6922d0@suse.com>
Date: Thu, 12 Mar 2026 07:57:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/4] x86/hvm: Disable cross-vendor handling in #UD
 handler
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260311142711.16754-1-alejandro.garciavallejo@amd.com>
 <20260311142711.16754-3-alejandro.garciavallejo@amd.com>
 <d76d6c2c-b81a-417b-9d4e-07f301e35dbc@suse.com>
 <DH05EHW9PD7C.132K81VFX47GG@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: <DH05EHW9PD7C.132K81VFX47GG@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.03.2026 19:01, Alejandro Vallejo wrote:
> On Wed Mar 11, 2026 at 3:59 PM CET, Jan Beulich wrote:
>> On 11.03.2026 15:27, Alejandro Vallejo wrote:
>>> Remove cross-vendor support now that VMs can no longer have a different
>>> vendor than the host.
>>>
>>> While at it, refactor the function to exit early and skip initialising
>>> the emulation context when FEP is not enabled.
>>>
>>> No functional change intended.
>>>
>>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>>> ---
>>> v4:
>>>   * Reverted refactor of the `walk` variable assignment
>>
>> "Revert" as in "move it even farther away from the original".
> 
> Revert as in not split the assignment and restore the orignal syntax _of the
> assignment_, which was the main focus of the prior discussion.
> 
> It's hardly my intention to add unrequested changes, but I can't address that
> which isn't explicitly requested.
> 
>> As said, you want re-indentation,
> 
> This is an ambiguous piece of advice.
> 
> Of what? That can mean moving the prior logic back to its original location and
> crate a minimal diff (1) or simply collapsing the indentation of the block (2).
> 
> (1) can't be done with hvm context initialiser moving after the early exit,
> which I explicitly mentioned in the commit message I wanted to do.
> 
> (2) can't happen because declarations and statements cannot be mixed (though I
> really wish we dropped that rule).
> 
> There's a third option of keeping a silly { ... } around just for indentation
> purposes, but that's worse than either of the other 2 options.
> 
> Maybe there's a fourth code arrangement in your head that does all this in a
> way you find less intrusive and I just don't see it. If so, feel free to send
> a patch I can review. It'll be faster for the both of us. Or tell me precisely
> what's at fault here.
> 
> If it's the diff, I'll go for option (1) above. I don't care enough about it to
> argue.
> 
>> so please do just that, nothing else that isn't
>> explicitly justified (like the moving of hvm_emulate_init_once() is).
> 
> I'm not sure if you're fine with that motion because it's in the commit message
> or not because it's a refactor that shouldn't be in the patch. This statement
> can be read either way.

You justify that movement in the description, and I agree with that justification.

>> With
>> this put back in its original shape (can do while committing, I suppose):
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> I don't think it's very obvious what you mean to do on commit, so it wouldn't be
> appropriate to agree to your adjustments, seeing how I just don't know what they
> are. I'm happy to send a v4.5 on this particular patch with whatever else needs
> modifying. Or a full v5 even. Or review whatever you wish to send as a v4.5 of
> this patch.

The variable had an initializer, and mere re-indentation wants to keep it so.
(There's no question that declarations may need to move, for the result to still
compile.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 07:23:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 07:23:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251725.1548612 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0aON-0006Mc-W4; Thu, 12 Mar 2026 07:23:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251725.1548612; Thu, 12 Mar 2026 07: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 1w0aON-0006LO-QX; Thu, 12 Mar 2026 07:23:35 +0000
Received: by outflank-mailman (input) for mailman id 1251725;
 Thu, 12 Mar 2026 07:23: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=/5IB=BM=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w0aOM-0006Jf-LN
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 07:23:34 +0000
Received: from canpmsgout02.his.huawei.com (canpmsgout02.his.huawei.com
 [113.46.200.217]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5e0c6a8d-1de4-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 08:23:32 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.162.140])
 by canpmsgout02.his.huawei.com (SkyGuard) with ESMTPS id 4fWf8m0KGKzcb2t;
 Thu, 12 Mar 2026 15:18:00 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 059382025F;
 Thu, 12 Mar 2026 15:23:28 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Thu, 12 Mar 2026 15:23: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: 5e0c6a8d-1de4-11f1-b164-2bf370ae4941
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=jAGDg23Jh/R/fMlBCmfhZTnUH5xG89AkPnX8VI3PuSc=;
	b=RZuHUqv6BgF0qFidhU7XyV96mfaXB8HmU+gF/dxnCky1vEzSjWha4fDbKoycbuQDQvVxDdSvD
	F3ZRjdtTrzq0aMjyOfLURpFQuaD9wO3MVCZ6p1jSi4feVktW9fyKpxdOUQJLnFp1kyELp/UmvPE
	wMvodw5e+OYblCFU1fhzvXk=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>, Paul
 Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou
	<aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>, Thomas Gleixner
	<tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris
 Ostrovsky <boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V
 L <sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Jonathan
 Cameron <jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>, Yanteng
 Si <si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>, Kai Huang
	<kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>, Thomas Huth
	<thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>, Kevin Loughlin
	<kevinloughlin@google.com>, Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra
	<peterz@infradead.org>, Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin
 Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <linux-pci@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <loongarch@lists.linux.dev>,
	<linux-riscv@lists.infradead.org>, <xen-devel@lists.xenproject.org>,
	<linux-acpi@vger.kernel.org>, <linux-perf-users@vger.kernel.org>,
	<stable@vger.kernel.org>
Subject: [PATCH v6 2/3] x86: Implement acpi_get_cpu_uid()
Date: Thu, 12 Mar 2026 15:23:15 +0800
Message-ID: <20260312072316.4806-3-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260312072316.4806-1-fengchengwen@huawei.com>
References: <20260312072316.4806-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems200001.china.huawei.com (7.221.188.67) To
 kwepemk500009.china.huawei.com (7.202.194.94)

Add acpi_get_cpu_uid() implementation for x86, replacing the existing
cpu_acpi_id() function. This completes the unified ACPI Processor UID
retrieval interface across all ACPI-enabled architectures.

Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
---
 arch/x86/include/asm/cpu.h   |  1 -
 arch/x86/include/asm/smp.h   |  1 -
 arch/x86/kernel/cpu/common.c | 15 +++++++++++++++
 arch/x86/xen/enlighten_hvm.c |  5 +++--
 include/linux/acpi.h         |  2 --
 5 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h
index ad235dda1ded..57a0786dfd75 100644
--- a/arch/x86/include/asm/cpu.h
+++ b/arch/x86/include/asm/cpu.h
@@ -11,7 +11,6 @@
 
 #ifndef CONFIG_SMP
 #define cpu_physical_id(cpu)			boot_cpu_physical_apicid
-#define cpu_acpi_id(cpu)			0
 #endif /* CONFIG_SMP */
 
 #ifdef CONFIG_HOTPLUG_CPU
diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
index 84951572ab81..05d1d479b4cf 100644
--- a/arch/x86/include/asm/smp.h
+++ b/arch/x86/include/asm/smp.h
@@ -130,7 +130,6 @@ __visible void smp_call_function_interrupt(struct pt_regs *regs);
 __visible void smp_call_function_single_interrupt(struct pt_regs *r);
 
 #define cpu_physical_id(cpu)	per_cpu(x86_cpu_to_apicid, cpu)
-#define cpu_acpi_id(cpu)	per_cpu(x86_cpu_to_acpiid, cpu)
 
 /*
  * This function is needed by all SMP systems. It must _always_ be valid
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 1c3261cae40c..3081557542c7 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -28,6 +28,7 @@
 #include <linux/stackprotector.h>
 #include <linux/utsname.h>
 #include <linux/efi.h>
+#include <linux/acpi.h>
 
 #include <asm/alternative.h>
 #include <asm/cmdline.h>
@@ -57,6 +58,7 @@
 #include <asm/asm.h>
 #include <asm/bugs.h>
 #include <asm/cpu.h>
+#include <asm/smp.h>
 #include <asm/mce.h>
 #include <asm/msr.h>
 #include <asm/cacheinfo.h>
@@ -2643,3 +2645,16 @@ void __init arch_cpu_finalize_init(void)
 	 */
 	mem_encrypt_init();
 }
+
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
+{
+	if (cpu >= nr_cpu_ids)
+		return -EINVAL;
+#ifndef CONFIG_SMP
+	*uid = 0;
+#else
+	*uid = per_cpu(x86_cpu_to_acpiid, cpu);
+#endif
+	return 0;
+}
+EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
diff --git a/arch/x86/xen/enlighten_hvm.c b/arch/x86/xen/enlighten_hvm.c
index fe57ff85d004..2f9fa27e5a3c 100644
--- a/arch/x86/xen/enlighten_hvm.c
+++ b/arch/x86/xen/enlighten_hvm.c
@@ -151,6 +151,7 @@ static void xen_hvm_crash_shutdown(struct pt_regs *regs)
 
 static int xen_cpu_up_prepare_hvm(unsigned int cpu)
 {
+	u32 cpu_uid;
 	int rc = 0;
 
 	/*
@@ -161,8 +162,8 @@ static int xen_cpu_up_prepare_hvm(unsigned int cpu)
 	 */
 	xen_uninit_lock_cpu(cpu);
 
-	if (cpu_acpi_id(cpu) != CPU_ACPIID_INVALID)
-		per_cpu(xen_vcpu_id, cpu) = cpu_acpi_id(cpu);
+	if (acpi_get_cpu_uid(cpu, &cpu_uid) == 0)
+		per_cpu(xen_vcpu_id, cpu) = cpu_uid;
 	else
 		per_cpu(xen_vcpu_id, cpu) = cpu;
 	xen_vcpu_setup(cpu);
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 035094a55f18..90a1fdcb7eb9 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -324,7 +324,6 @@ int acpi_unmap_cpu(int cpu);
 
 acpi_handle acpi_get_processor_handle(int cpu);
 
-#ifndef CONFIG_X86
 /*
  * acpi_get_cpu_uid() - Get ACPI Processor UID of a specified CPU from MADT table
  * @cpu: Logical CPU number (0-based)
@@ -335,7 +334,6 @@ acpi_handle acpi_get_processor_handle(int cpu);
  *         -ENODEV if the ACPI Processor UID for the specified CPU is not found.
  */
 int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
-#endif
 
 #ifdef CONFIG_ACPI_HOTPLUG_IOAPIC
 int acpi_get_ioapic_id(acpi_handle handle, u32 gsi_base, u64 *phys_addr);
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 07:23:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 07:23:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251727.1548631 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0aOP-0006nC-Ib; Thu, 12 Mar 2026 07:23:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251727.1548631; Thu, 12 Mar 2026 07:23:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0aOP-0006mO-DF; Thu, 12 Mar 2026 07:23:37 +0000
Received: by outflank-mailman (input) for mailman id 1251727;
 Thu, 12 Mar 2026 07:23:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/5IB=BM=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w0aOO-0006YM-Q0
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 07:23:36 +0000
Received: from canpmsgout06.his.huawei.com (canpmsgout06.his.huawei.com
 [113.46.200.221]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5d3dc5cd-1de4-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 08:23:32 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.104])
 by canpmsgout06.his.huawei.com (SkyGuard) with ESMTPS id 4fWf9M0psyzRhQX;
 Thu, 12 Mar 2026 15:18:31 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 2D2B54056E;
 Thu, 12 Mar 2026 15:23:26 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Thu, 12 Mar 2026 15:23: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: 5d3dc5cd-1de4-11f1-9ccf-f158ae23cfc8
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=emV69WpU1M2zFss/hf94/6FIT7KCIgFkUPlPK9LbC5k=;
	b=j8tTia/xDFsmamQXC4xERo2SqnVDUL5uyF8l36854lADwIwF8uhGv4gi8EgWOIh1KVcCupZhN
	oo4UTdGEKneHxRKIcfRSdW19zQBfFIRRgZ5doELv/oYNecFkKbM+rJz6ds/oxOya5CDwjZ0tsSF
	8V2T+RPOx1IMmKLnvqLMiz0=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>, Paul
 Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou
	<aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>, Thomas Gleixner
	<tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris
 Ostrovsky <boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V
 L <sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Jonathan
 Cameron <jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>, Yanteng
 Si <si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>, Kai Huang
	<kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>, Thomas Huth
	<thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>, Kevin Loughlin
	<kevinloughlin@google.com>, Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra
	<peterz@infradead.org>, Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin
 Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <linux-pci@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <loongarch@lists.linux.dev>,
	<linux-riscv@lists.infradead.org>, <xen-devel@lists.xenproject.org>,
	<linux-acpi@vger.kernel.org>, <linux-perf-users@vger.kernel.org>,
	<stable@vger.kernel.org>
Subject: [PATCH v6 1/3] ACPI: Rename get_acpi_id_for_cpu() to acpi_get_cpu_uid() on non-x86
Date: Thu, 12 Mar 2026 15:23:14 +0800
Message-ID: <20260312072316.4806-2-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260312072316.4806-1-fengchengwen@huawei.com>
References: <20260312072316.4806-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems200001.china.huawei.com (7.221.188.67) To
 kwepemk500009.china.huawei.com (7.202.194.94)

To unify the CPU ACPI ID retrieval interface across architectures,
rename the existing get_acpi_id_for_cpu() function to
acpi_get_cpu_uid() on arm64/riscv/loongarch platforms.

This is a pure rename with no functional change, preparing for a
consistent ACPI Processor UID retrieval interface across all ACPI-enabled
platforms.

Note: Move the ARM64-specific get_cpu_for_acpi_id() implementation to
      arch/arm64/kernel/acpi_numa.c to fix compilation errors from
      circular header dependencies introduced by the rename.

Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 arch/arm64/include/asm/acpi.h      | 16 +---------
 arch/arm64/kernel/acpi.c           | 16 ++++++++++
 arch/arm64/kernel/acpi_numa.c      | 15 ++++++++++
 arch/loongarch/include/asm/acpi.h  |  5 ----
 arch/loongarch/kernel/acpi.c       |  9 ++++++
 arch/riscv/include/asm/acpi.h      |  4 ---
 arch/riscv/kernel/acpi.c           | 16 ++++++++++
 arch/riscv/kernel/acpi_numa.c      |  8 +++--
 drivers/acpi/pptt.c                | 47 +++++++++++++++++++++---------
 drivers/acpi/riscv/rhct.c          |  7 ++++-
 drivers/perf/arm_cspmu/arm_cspmu.c |  6 ++--
 include/linux/acpi.h               | 13 +++++++++
 12 files changed, 120 insertions(+), 42 deletions(-)

diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
index c07a58b96329..106a08556cbf 100644
--- a/arch/arm64/include/asm/acpi.h
+++ b/arch/arm64/include/asm/acpi.h
@@ -114,22 +114,8 @@ static inline bool acpi_has_cpu_in_madt(void)
 }
 
 struct acpi_madt_generic_interrupt *acpi_cpu_get_madt_gicc(int cpu);
-static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
-{
-	return	acpi_cpu_get_madt_gicc(cpu)->uid;
-}
-
-static inline int get_cpu_for_acpi_id(u32 uid)
-{
-	int cpu;
-
-	for (cpu = 0; cpu < nr_cpu_ids; cpu++)
-		if (acpi_cpu_get_madt_gicc(cpu) &&
-		    uid == get_acpi_id_for_cpu(cpu))
-			return cpu;
 
-	return -EINVAL;
-}
+int get_cpu_for_acpi_id(u32 uid);
 
 static inline void arch_fix_phys_package_id(int num, u32 slot) { }
 void __init acpi_init_cpus(void);
diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
index af90128cfed5..984a11788265 100644
--- a/arch/arm64/kernel/acpi.c
+++ b/arch/arm64/kernel/acpi.c
@@ -458,3 +458,19 @@ int acpi_unmap_cpu(int cpu)
 }
 EXPORT_SYMBOL(acpi_unmap_cpu);
 #endif /* CONFIG_ACPI_HOTPLUG_CPU */
+
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
+{
+	struct acpi_madt_generic_interrupt *gicc;
+
+	if (cpu >= nr_cpu_ids)
+		return -EINVAL;
+
+	gicc = acpi_cpu_get_madt_gicc(cpu);
+	if (gicc == NULL)
+		return -ENODEV;
+
+	*uid = gicc->uid;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
diff --git a/arch/arm64/kernel/acpi_numa.c b/arch/arm64/kernel/acpi_numa.c
index 2465f291c7e1..56e2e486e49b 100644
--- a/arch/arm64/kernel/acpi_numa.c
+++ b/arch/arm64/kernel/acpi_numa.c
@@ -34,6 +34,21 @@ int __init acpi_numa_get_nid(unsigned int cpu)
 	return acpi_early_node_map[cpu];
 }
 
+int get_cpu_for_acpi_id(u32 uid)
+{
+	u32 cpu_uid;
+	int cpu;
+	int ret;
+
+	for (cpu = 0; cpu < nr_cpu_ids; cpu++) {
+		ret = acpi_get_cpu_uid(cpu, &cpu_uid);
+		if (ret == 0 && uid == cpu_uid)
+			return cpu;
+	}
+
+	return -EINVAL;
+}
+
 static int __init acpi_parse_gicc_pxm(union acpi_subtable_headers *header,
 				      const unsigned long end)
 {
diff --git a/arch/loongarch/include/asm/acpi.h b/arch/loongarch/include/asm/acpi.h
index 7376840fa9f7..eda9d4d0a493 100644
--- a/arch/loongarch/include/asm/acpi.h
+++ b/arch/loongarch/include/asm/acpi.h
@@ -40,11 +40,6 @@ extern struct acpi_madt_core_pic acpi_core_pic[MAX_CORE_PIC];
 
 extern int __init parse_acpi_topology(void);
 
-static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
-{
-	return acpi_core_pic[cpu_logical_map(cpu)].processor_id;
-}
-
 #endif /* !CONFIG_ACPI */
 
 #define ACPI_TABLE_UPGRADE_MAX_PHYS ARCH_LOW_ADDRESS_LIMIT
diff --git a/arch/loongarch/kernel/acpi.c b/arch/loongarch/kernel/acpi.c
index 1367ca759468..058f0dbe8e8f 100644
--- a/arch/loongarch/kernel/acpi.c
+++ b/arch/loongarch/kernel/acpi.c
@@ -385,3 +385,12 @@ int acpi_unmap_cpu(int cpu)
 EXPORT_SYMBOL(acpi_unmap_cpu);
 
 #endif /* CONFIG_ACPI_HOTPLUG_CPU */
+
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
+{
+	if (cpu >= nr_cpu_ids)
+		return -EINVAL;
+	*uid = acpi_core_pic[cpu_logical_map(cpu)].processor_id;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
diff --git a/arch/riscv/include/asm/acpi.h b/arch/riscv/include/asm/acpi.h
index 6e13695120bc..26ab37c171bc 100644
--- a/arch/riscv/include/asm/acpi.h
+++ b/arch/riscv/include/asm/acpi.h
@@ -61,10 +61,6 @@ static inline void arch_fix_phys_package_id(int num, u32 slot) { }
 
 void acpi_init_rintc_map(void);
 struct acpi_madt_rintc *acpi_cpu_get_madt_rintc(int cpu);
-static inline u32 get_acpi_id_for_cpu(int cpu)
-{
-	return acpi_cpu_get_madt_rintc(cpu)->uid;
-}
 
 int acpi_get_riscv_isa(struct acpi_table_header *table,
 		       unsigned int cpu, const char **isa);
diff --git a/arch/riscv/kernel/acpi.c b/arch/riscv/kernel/acpi.c
index 71698ee11621..bde810d02c4f 100644
--- a/arch/riscv/kernel/acpi.c
+++ b/arch/riscv/kernel/acpi.c
@@ -337,3 +337,19 @@ int raw_pci_write(unsigned int domain, unsigned int bus,
 }
 
 #endif	/* CONFIG_PCI */
+
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
+{
+	struct acpi_madt_rintc *rintc;
+
+	if (cpu >= nr_cpu_ids)
+		return -EINVAL;
+
+	rintc = acpi_cpu_get_madt_rintc(cpu);
+	if (rintc == NULL)
+		return -ENODEV;
+
+	*uid = rintc->uid;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
diff --git a/arch/riscv/kernel/acpi_numa.c b/arch/riscv/kernel/acpi_numa.c
index 130769e3a99c..cd8adc9857e3 100644
--- a/arch/riscv/kernel/acpi_numa.c
+++ b/arch/riscv/kernel/acpi_numa.c
@@ -37,11 +37,15 @@ static int __init acpi_numa_get_nid(unsigned int cpu)
 
 static inline int get_cpu_for_acpi_id(u32 uid)
 {
+	u32 cpu_uid;
 	int cpu;
+	int ret;
 
-	for (cpu = 0; cpu < nr_cpu_ids; cpu++)
-		if (uid == get_acpi_id_for_cpu(cpu))
+	for (cpu = 0; cpu < nr_cpu_ids; cpu++) {
+		ret = acpi_get_cpu_uid(cpu, &cpu_uid);
+		if (ret == 0 && uid == cpu_uid)
 			return cpu;
+	}
 
 	return -EINVAL;
 }
diff --git a/drivers/acpi/pptt.c b/drivers/acpi/pptt.c
index de5f8c018333..d034a217e85b 100644
--- a/drivers/acpi/pptt.c
+++ b/drivers/acpi/pptt.c
@@ -459,11 +459,14 @@ static void cache_setup_acpi_cpu(struct acpi_table_header *table,
 {
 	struct acpi_pptt_cache *found_cache;
 	struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id;
 	struct cacheinfo *this_leaf;
 	unsigned int index = 0;
 	struct acpi_pptt_processor *cpu_node = NULL;
 
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+		return;
+
 	while (index < get_cpu_cacheinfo(cpu)->num_leaves) {
 		this_leaf = this_cpu_ci->info_list + index;
 		found_cache = acpi_find_cache_node(table, acpi_cpu_id,
@@ -546,7 +549,10 @@ static int topology_get_acpi_cpu_tag(struct acpi_table_header *table,
 				     unsigned int cpu, int level, int flag)
 {
 	struct acpi_pptt_processor *cpu_node;
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id;
+
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+		return -ENOENT;
 
 	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 	if (cpu_node) {
@@ -614,18 +620,22 @@ static int find_acpi_cpu_topology_tag(unsigned int cpu, int level, int flag)
  *
  * Check the node representing a CPU for a given flag.
  *
- * Return: -ENOENT if the PPTT doesn't exist, the CPU cannot be found or
- *	   the table revision isn't new enough.
+ * Return: -ENOENT if can't get CPU's ACPI Processor UID, the PPTT doesn't
+ *	   exist, the CPU cannot be found or the table revision isn't new
+ *	   enough.
  *	   1, any passed flag set
  *	   0, flag unset
  */
 static int check_acpi_cpu_flag(unsigned int cpu, int rev, u32 flag)
 {
 	struct acpi_table_header *table;
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id;
 	struct acpi_pptt_processor *cpu_node = NULL;
 	int ret = -ENOENT;
 
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+		return -ENOENT;
+
 	table = acpi_get_pptt();
 	if (!table)
 		return -ENOENT;
@@ -651,7 +661,8 @@ static int check_acpi_cpu_flag(unsigned int cpu, int rev, u32 flag)
  * in the PPTT. Errors caused by lack of a PPTT table, or otherwise, return 0
  * indicating we didn't find any cache levels.
  *
- * Return: -ENOENT if no PPTT table or no PPTT processor struct found.
+ * Return: -ENOENT if no PPTT table, can't get CPU's ACPI Process UID or no PPTT
+ *	   processor struct found.
  *	   0 on success.
  */
 int acpi_get_cache_info(unsigned int cpu, unsigned int *levels,
@@ -671,7 +682,8 @@ int acpi_get_cache_info(unsigned int cpu, unsigned int *levels,
 
 	pr_debug("Cache Setup: find cache levels for CPU=%d\n", cpu);
 
-	acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id))
+		return -ENOENT;
 	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 	if (!cpu_node)
 		return -ENOENT;
@@ -780,8 +792,9 @@ int find_acpi_cpu_topology_package(unsigned int cpu)
  * It may not exist in single CPU systems. In simple multi-CPU systems,
  * it may be equal to the package topology level.
  *
- * Return: -ENOENT if the PPTT doesn't exist, the CPU cannot be found
- * or there is no toplogy level above the CPU..
+ * Return: -ENOENT if the PPTT doesn't exist, can't get CPU's ACPI
+ * Processor UID, the CPU cannot be found or there is no toplogy level
+ * above the CPU.
  * Otherwise returns a value which represents the package for this CPU.
  */
 
@@ -797,7 +810,8 @@ int find_acpi_cpu_topology_cluster(unsigned int cpu)
 	if (!table)
 		return -ENOENT;
 
-	acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+		return -ENOENT;
 	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 	if (!cpu_node || !cpu_node->parent)
 		return -ENOENT;
@@ -872,7 +886,8 @@ static void acpi_pptt_get_child_cpus(struct acpi_table_header *table_hdr,
 	cpumask_clear(cpus);
 
 	for_each_possible_cpu(cpu) {
-		acpi_id = get_acpi_id_for_cpu(cpu);
+		if (acpi_get_cpu_uid(cpu, &acpi_id) != 0)
+			continue;
 		cpu_node = acpi_find_processor_node(table_hdr, acpi_id);
 
 		while (cpu_node) {
@@ -966,10 +981,13 @@ int find_acpi_cache_level_from_id(u32 cache_id)
 	for_each_possible_cpu(cpu) {
 		bool empty;
 		int level = 1;
-		u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+		u32 acpi_cpu_id;
 		struct acpi_pptt_cache *cache;
 		struct acpi_pptt_processor *cpu_node;
 
+		if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+			continue;
+
 		cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 		if (!cpu_node)
 			continue;
@@ -1030,10 +1048,13 @@ int acpi_pptt_get_cpumask_from_cache_id(u32 cache_id, cpumask_t *cpus)
 	for_each_possible_cpu(cpu) {
 		bool empty;
 		int level = 1;
-		u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+		u32 acpi_cpu_id;
 		struct acpi_pptt_cache *cache;
 		struct acpi_pptt_processor *cpu_node;
 
+		if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+			continue;
+
 		cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 		if (!cpu_node)
 			continue;
diff --git a/drivers/acpi/riscv/rhct.c b/drivers/acpi/riscv/rhct.c
index caa2c16e1697..8f3f38c64a88 100644
--- a/drivers/acpi/riscv/rhct.c
+++ b/drivers/acpi/riscv/rhct.c
@@ -44,10 +44,15 @@ int acpi_get_riscv_isa(struct acpi_table_header *table, unsigned int cpu, const
 	struct acpi_rhct_isa_string *isa_node;
 	struct acpi_table_rhct *rhct;
 	u32 *hart_info_node_offset;
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id;
+	int ret;
 
 	BUG_ON(acpi_disabled);
 
+	ret = acpi_get_cpu_uid(cpu, &acpi_cpu_id);
+	if (ret != 0)
+		return ret;
+
 	if (!table) {
 		rhct = acpi_get_rhct();
 		if (!rhct)
diff --git a/drivers/perf/arm_cspmu/arm_cspmu.c b/drivers/perf/arm_cspmu/arm_cspmu.c
index 34430b68f602..ed72c3d1f796 100644
--- a/drivers/perf/arm_cspmu/arm_cspmu.c
+++ b/drivers/perf/arm_cspmu/arm_cspmu.c
@@ -1107,15 +1107,17 @@ static int arm_cspmu_acpi_get_cpus(struct arm_cspmu *cspmu)
 {
 	struct acpi_apmt_node *apmt_node;
 	int affinity_flag;
+	u32 cpu_uid;
 	int cpu;
+	int ret;
 
 	apmt_node = arm_cspmu_apmt_node(cspmu->dev);
 	affinity_flag = apmt_node->flags & ACPI_APMT_FLAGS_AFFINITY;
 
 	if (affinity_flag == ACPI_APMT_FLAGS_AFFINITY_PROC) {
 		for_each_possible_cpu(cpu) {
-			if (apmt_node->proc_affinity ==
-			    get_acpi_id_for_cpu(cpu)) {
+			ret = acpi_get_cpu_uid(cpu, &cpu_uid);
+			if (ret == 0 && apmt_node->proc_affinity == cpu_uid) {
 				cpumask_set_cpu(cpu, &cspmu->associated_cpus);
 				break;
 			}
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 4d2f0bed7a06..035094a55f18 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -324,6 +324,19 @@ int acpi_unmap_cpu(int cpu);
 
 acpi_handle acpi_get_processor_handle(int cpu);
 
+#ifndef CONFIG_X86
+/*
+ * acpi_get_cpu_uid() - Get ACPI Processor UID of a specified CPU from MADT table
+ * @cpu: Logical CPU number (0-based)
+ * @uid: Pointer to store the ACPI Processor UID (valid only on successful return)
+ *
+ * Return: 0 on successful retrieval (the ACPI Processor ID is stored in *uid);
+ *         -EINVAL if the CPU number is invalid or out of range;
+ *         -ENODEV if the ACPI Processor UID for the specified CPU is not found.
+ */
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
+#endif
+
 #ifdef CONFIG_ACPI_HOTPLUG_IOAPIC
 int acpi_get_ioapic_id(acpi_handle handle, u32 gsi_base, u64 *phys_addr);
 #endif
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 07:23:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 07:23:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251724.1548608 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0aON-0006K2-Mt; Thu, 12 Mar 2026 07:23:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251724.1548608; Thu, 12 Mar 2026 07: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 1w0aON-0006Jv-Jw; Thu, 12 Mar 2026 07:23:35 +0000
Received: by outflank-mailman (input) for mailman id 1251724;
 Thu, 12 Mar 2026 07:23: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=/5IB=BM=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w0aOL-0006Jf-P7
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 07:23:34 +0000
Received: from canpmsgout08.his.huawei.com (canpmsgout08.his.huawei.com
 [113.46.200.223]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5d323081-1de4-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 08:23:30 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.214])
 by canpmsgout08.his.huawei.com (SkyGuard) with ESMTPS id 4fWf9H3SBhzmV6N;
 Thu, 12 Mar 2026 15:18:27 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 462344056C;
 Thu, 12 Mar 2026 15:23:24 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Thu, 12 Mar 2026 15: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: 5d323081-1de4-11f1-b164-2bf370ae4941
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=JWR3I9L7KX8a3aClE88ycMtETglowguHrLZMRqWv8Io=;
	b=rBBmv+LpmD6banh43JS0edaS84dH116/qBok6pLAmwhWmT+MsH/WPIcqF7IxzQwINsFJ6zh0d
	mJIuJoBHbaPglNXiO3Pr3di3NekDdj/t9i9N3QwQMRBtfQLE/3NhfvwJKUgbM+kmEdJgVXGgKaE
	7uxc8NBOtepchaLqk9hHm94=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>, Paul
 Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou
	<aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>, Thomas Gleixner
	<tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris
 Ostrovsky <boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V
 L <sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Jonathan
 Cameron <jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>, Yanteng
 Si <si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>, Kai Huang
	<kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>, Thomas Huth
	<thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>, Kevin Loughlin
	<kevinloughlin@google.com>, Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra
	<peterz@infradead.org>, Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin
 Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <linux-pci@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <loongarch@lists.linux.dev>,
	<linux-riscv@lists.infradead.org>, <xen-devel@lists.xenproject.org>,
	<linux-acpi@vger.kernel.org>, <linux-perf-users@vger.kernel.org>,
	<stable@vger.kernel.org>
Subject: [PATCH v6 0/3] Fix get cpu steer-tag fail on ARM64 platform
Date: Thu, 12 Mar 2026 15:23:13 +0800
Message-ID: <20260312072316.4806-1-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems200001.china.huawei.com (7.221.188.67) To
 kwepemk500009.china.huawei.com (7.202.194.94)

This patchset fixes the failure of CPU steer tag retrieval on ARM64
platforms. The series is structured as follows:

1. First commit: Mechanical rename of the ACPI Processor UID retrieval
   interface (no functional changes) to align naming conventions across
   architectures;
2. Second commit: Implement acpi_get_cpu_uid() for the x86 platform to
   complete the unified ACPI Processor UID interface across all
   ACPI-enabled architectures;
3. Third commit: Implement the core fix for the CPU steer tag retrieval
   logic on ARM64 (the root cause of the retrieval failure).

The renaming and x86 implementation lay the groundwork for the unified
ACPI interface required by the ARM64 steer tag fix, ensuring consistent
CPU UID retrieval across architectures before addressing the functional
bug.

---
Changes in v6:
- Rename existing get_acpi_id_for_cpu() to acpi_get_cpu_uid()
- Split x86's modify as one commit

Changes in v5:
- Refine commit-log of commit 2/2
- Replace cpu_acpi_id() by acpi_get_cpu_acpi_id() on x86

Changes in v4:
- Split the rename into a separate commit.

Changes in v3:
- Rename existing get_acpi_id_for_cpu() to acpi_get_cpu_acpi_id() other
  than add one new API.

Changes in v2:
- Add ECN _DSM reference doc name and its URL.
- Separate implement acpi_get_cpu_acpi_id() in each arch which supports
  ACPI.
- Refine commit-log.

Chengwen Feng (2):
  ACPI: Rename get_acpi_id_for_cpu() to acpi_get_cpu_acpi_id() on
    non-x86
  PCI/TPH: Fix get cpu steer-tag fail on ARM64 platform

Chengwen Feng (3):
  ACPI: Rename get_acpi_id_for_cpu() to acpi_get_cpu_uid() on non-x86
  x86: Implement acpi_get_cpu_uid()
  PCI/TPH: Fix get cpu steer-tag fail on ARM64 platform

 Documentation/PCI/tph.rst          |  4 +--
 arch/arm64/include/asm/acpi.h      | 16 +---------
 arch/arm64/kernel/acpi.c           | 16 ++++++++++
 arch/arm64/kernel/acpi_numa.c      | 15 ++++++++++
 arch/loongarch/include/asm/acpi.h  |  5 ----
 arch/loongarch/kernel/acpi.c       |  9 ++++++
 arch/riscv/include/asm/acpi.h      |  4 ---
 arch/riscv/kernel/acpi.c           | 16 ++++++++++
 arch/riscv/kernel/acpi_numa.c      |  8 +++--
 arch/x86/include/asm/cpu.h         |  1 -
 arch/x86/include/asm/smp.h         |  1 -
 arch/x86/kernel/cpu/common.c       | 15 ++++++++++
 arch/x86/xen/enlighten_hvm.c       |  5 ++--
 drivers/acpi/pptt.c                | 47 +++++++++++++++++++++---------
 drivers/acpi/riscv/rhct.c          |  7 ++++-
 drivers/pci/tph.c                  | 16 ++++++----
 drivers/perf/arm_cspmu/arm_cspmu.c |  6 ++--
 include/linux/acpi.h               | 11 +++++++
 include/linux/pci-tph.h            |  4 +--
 19 files changed, 151 insertions(+), 55 deletions(-)

-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 07:23:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 07:23:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251726.1548625 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0aOP-0006kR-8J; Thu, 12 Mar 2026 07:23:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251726.1548625; Thu, 12 Mar 2026 07:23:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0aOP-0006kI-5a; Thu, 12 Mar 2026 07:23:37 +0000
Received: by outflank-mailman (input) for mailman id 1251726;
 Thu, 12 Mar 2026 07:23:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/5IB=BM=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w0aON-0006Jf-DG
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 07:23:35 +0000
Received: from canpmsgout03.his.huawei.com (canpmsgout03.his.huawei.com
 [113.46.200.218]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5effe969-1de4-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 08:23:33 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.162.144])
 by canpmsgout03.his.huawei.com (SkyGuard) with ESMTPS id 4fWf9453GZzpTJc;
 Thu, 12 Mar 2026 15:18:16 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id CAD7B40567;
 Thu, 12 Mar 2026 15:23:29 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Thu, 12 Mar 2026 15:23: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: 5effe969-1de4-11f1-b164-2bf370ae4941
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=yK49JnkLKpYBZOqDDiJ5tuFkHdnhSIg09tqBvQIMd28=;
	b=kKHyA/oBTEDBLkGyt6IF5Mfl/9NSCdKjuLiy/HF08xBMphI4nGy1HFAwxMG51XNjBjkBo5mE1
	yjJ8Kunab1b6+Q35VPZpdNjHq9uHYBsa/8T6vWVzXsQpo9LPA6UF2V4Yh93oUHRXBNRvgd2kM7T
	N9D++v+eloU19GgyjqKPnrA=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>, Paul
 Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou
	<aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>, Thomas Gleixner
	<tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris
 Ostrovsky <boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V
 L <sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Jonathan
 Cameron <jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>, Yanteng
 Si <si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>, Kai Huang
	<kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>, Thomas Huth
	<thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>, Kevin Loughlin
	<kevinloughlin@google.com>, Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra
	<peterz@infradead.org>, Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin
 Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <linux-pci@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <loongarch@lists.linux.dev>,
	<linux-riscv@lists.infradead.org>, <xen-devel@lists.xenproject.org>,
	<linux-acpi@vger.kernel.org>, <linux-perf-users@vger.kernel.org>,
	<stable@vger.kernel.org>
Subject: [PATCH v6 3/3] PCI/TPH: Fix get cpu steer-tag fail on ARM64 platform
Date: Thu, 12 Mar 2026 15:23:16 +0800
Message-ID: <20260312072316.4806-4-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260312072316.4806-1-fengchengwen@huawei.com>
References: <20260312072316.4806-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems200001.china.huawei.com (7.221.188.67) To
 kwepemk500009.china.huawei.com (7.202.194.94)

pcie_tph_get_cpu_st() is broken on ARM64:
1. pcie_tph_get_cpu_st() passes cpu_uid to the PCI ACPI DSM method.
   cpu_uid should be the ACPI Processor UID [1].
2. In BNXT, pcie_tph_get_cpu_st() is passed a cpu_uid obtained via
   cpumask_first(irq->cpu_mask) - the logical CPU ID of a CPU core,
   generated and managed by kernel (e.g., [0,255] for a system  with 256
   logical CPU cores).
3. On ARM64 platforms, ACPI assigns Processor UID to cores listed in the
   MADT table, and this UID may not match the kernel's logical CPU ID.
   When this occurs, the mismatch results in the wrong CPU steer-tag.
4. On AMD x86 the logical CPU ID is identical to the ACPI Processor UID
   so the mismatch is not seen.

Resolution:
1. Use acpi_get_cpu_uid() in pcie_tph_get_cpu_st() to translate from
   logical CPU ID to ACPI Processor UID needed for the DSM call.
2. Rename pcie_tpu_get_cpu_st() parameter from cpu_uid to cpu to
   reflect that it is a logical CPU_ID.

[1] According to ECN_TPH-ST_Revision_20200924
    (https://members.pcisig.com/wg/PCI-SIG/document/15470), the input
    is defined as: "If the target is a processor, then this field
    represents the ACPI Processor UID of the processor as specified in
    the MADT. If the target is a processor container, then this field
    represents the ACPI Processor UID of the processor container as
    specified in the PPTT."

Fixes: d2e8a34876ce ("PCI/TPH: Add Steering Tag support")
Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 Documentation/PCI/tph.rst |  4 ++--
 drivers/pci/tph.c         | 16 +++++++++++-----
 include/linux/pci-tph.h   |  4 ++--
 3 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/Documentation/PCI/tph.rst b/Documentation/PCI/tph.rst
index e8993be64fd6..b6cf22b9bd90 100644
--- a/Documentation/PCI/tph.rst
+++ b/Documentation/PCI/tph.rst
@@ -79,10 +79,10 @@ To retrieve a Steering Tag for a target memory associated with a specific
 CPU, use the following function::
 
   int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type type,
-                          unsigned int cpu_uid, u16 *tag);
+                          unsigned int cpu, u16 *tag);
 
 The `type` argument is used to specify the memory type, either volatile
-or persistent, of the target memory. The `cpu_uid` argument specifies the
+or persistent, of the target memory. The `cpu` argument specifies the
 CPU where the memory is associated to.
 
 After the ST value is retrieved, the device driver can use the following
diff --git a/drivers/pci/tph.c b/drivers/pci/tph.c
index ca4f97be7538..b67c9ad14bda 100644
--- a/drivers/pci/tph.c
+++ b/drivers/pci/tph.c
@@ -236,21 +236,27 @@ static int write_tag_to_st_table(struct pci_dev *pdev, int index, u16 tag)
  * with a specific CPU
  * @pdev: PCI device
  * @mem_type: target memory type (volatile or persistent RAM)
- * @cpu_uid: associated CPU id
+ * @cpu: associated CPU id
  * @tag: Steering Tag to be returned
  *
  * Return the Steering Tag for a target memory that is associated with a
- * specific CPU as indicated by cpu_uid.
+ * specific CPU as indicated by cpu.
  *
  * Return: 0 if success, otherwise negative value (-errno)
  */
 int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type mem_type,
-			unsigned int cpu_uid, u16 *tag)
+			unsigned int cpu, u16 *tag)
 {
 #ifdef CONFIG_ACPI
 	struct pci_dev *rp;
 	acpi_handle rp_acpi_handle;
 	union st_info info;
+	u32 cpu_uid;
+	int ret;
+
+	ret = acpi_get_cpu_uid(cpu, &cpu_uid);
+	if (ret != 0)
+		return ret;
 
 	rp = pcie_find_root_port(pdev);
 	if (!rp || !rp->bus || !rp->bus->bridge)
@@ -265,9 +271,9 @@ int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type mem_type,
 
 	*tag = tph_extract_tag(mem_type, pdev->tph_req_type, &info);
 
-	pci_dbg(pdev, "get steering tag: mem_type=%s, cpu_uid=%d, tag=%#04x\n",
+	pci_dbg(pdev, "get steering tag: mem_type=%s, cpu=%d, tag=%#04x\n",
 		(mem_type == TPH_MEM_TYPE_VM) ? "volatile" : "persistent",
-		cpu_uid, *tag);
+		cpu, *tag);
 
 	return 0;
 #else
diff --git a/include/linux/pci-tph.h b/include/linux/pci-tph.h
index ba28140ce670..be68cd17f2f8 100644
--- a/include/linux/pci-tph.h
+++ b/include/linux/pci-tph.h
@@ -25,7 +25,7 @@ int pcie_tph_set_st_entry(struct pci_dev *pdev,
 			  unsigned int index, u16 tag);
 int pcie_tph_get_cpu_st(struct pci_dev *dev,
 			enum tph_mem_type mem_type,
-			unsigned int cpu_uid, u16 *tag);
+			unsigned int cpu, u16 *tag);
 void pcie_disable_tph(struct pci_dev *pdev);
 int pcie_enable_tph(struct pci_dev *pdev, int mode);
 u16 pcie_tph_get_st_table_size(struct pci_dev *pdev);
@@ -36,7 +36,7 @@ static inline int pcie_tph_set_st_entry(struct pci_dev *pdev,
 { return -EINVAL; }
 static inline int pcie_tph_get_cpu_st(struct pci_dev *dev,
 				      enum tph_mem_type mem_type,
-				      unsigned int cpu_uid, u16 *tag)
+				      unsigned int cpu, u16 *tag)
 { return -EINVAL; }
 static inline void pcie_disable_tph(struct pci_dev *pdev) { }
 static inline int pcie_enable_tph(struct pci_dev *pdev, int mode)
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 08:02:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 08:02:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251777.1548644 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0b01-0005Rs-Eu; Thu, 12 Mar 2026 08:02:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251777.1548644; Thu, 12 Mar 2026 08: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 1w0b01-0005Rl-BK; Thu, 12 Mar 2026 08:02:29 +0000
Received: by outflank-mailman (input) for mailman id 1251777;
 Thu, 12 Mar 2026 08:02:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jNLd=BM=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1w0azz-0005Rf-U8
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 08:02: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 cec9ec4d-1de9-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 09:02:26 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 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.9678.27; Thu, 12 Mar
 2026 08:02:00 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9700.013; Thu, 12 Mar 2026
 08:02:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cec9ec4d-1de9-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dLpfT80wsMpI2ZkKgRCGaaiSG9IpJLTj9+EPDz5GjsnHdzdU4hmJyMQIAO9efT1eUyloLYz/PDV6b6Zieweakj/Gj3029GA3lDFcadlodIYU9FrKzTqQIksDctcOB1W58Mi8xIUm98B+VFltBxA9mt4X85ANEJAsKwfH9Iz0Yhh7sw/gcIhQTj3D8XRuw6yfoWCShxO98XGNByvigyW+WvGM1Oa8cuQCGlNh/55VwlD5zTabYyAymfyJEOu0+YMWoTqMyfHvx2mhFuyfKFXPxdYvYMraZ7U4aGdV6H5zjmxQlazWFIXZjYnD+cCxshWbUhxbkWDegn2qduyIa9RkGg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=08wODLFuN4N6BksfeVKCpF7yEiF0rthYfncaPcd8r/w=;
 b=AacP6j9ATZxRSxe4EGn8sHFGdlCZ4dhcwt/f2SP9dl12K6t6hyQJkO/0GtSxXjxhFd7N3wasOhuEeon19V6svqmq/m5k4aBpp3eUAdvzIQZ7vfCgmYX4dm4uojr6zxRXUwsn62feZpWVSrecldHGkOJ/Hq45VuicXdLJK2gv5eAj2e3ORj7/FneeImVAMwvFFdL9O0dUZHIG1de/ghB9oAIcc1FKDl6h3BCO05HEo8Gp09RzLMqYX6x1ohVC4kQ+S0DSQLGeREhX8+4npTv1TCn0XdZKJNkDXJQnOTlhr9VMUUk/5p5gB1aCN1UgnIPtcsTKb3Qaf81JMQDcMaVPDA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=08wODLFuN4N6BksfeVKCpF7yEiF0rthYfncaPcd8r/w=;
 b=hCALmE5chMDT9dbJ5A3mM5U2kFiqyxxedMZNP8bQ1rnU6PgzqtfCgULvOlD5ZV6AQ3IyVQDS28Yfu2pAUXKCSi4/3yZ7k2supk0kT8jHIbGWjk6aYSE7K83u3Yp8yfePV9Yn1FcyvSdumF7Ch1/N7jhGb6qgUFrklEcKHAa2pDY=
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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	=?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
Subject: [PATCH] tests/pdx: fix overflow from conversion from page index to address on 32bit
Date: Thu, 12 Mar 2026 09:02:06 +0100
Message-ID: <20260312080206.52648-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: BL0PR01CA0028.prod.exchangelabs.com (2603:10b6:208:71::41)
 To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA2PR03MB5740:EE_
X-MS-Office365-Filtering-Correlation-Id: 6d00d893-a9ed-453b-b9bf-08de800db042
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	ut6IWUVzfrnAqUBKihHviQMvFSTogokElQPvBSb39za9g2rKrF5ongS2gaY2OWFkcvW/AemHWc/TK9R470dzE/W4AZCms5XBezYdoh7oBZ1Y8ryKc43/RY+sU3DiMUAUTu/otLR1+O9CmBXztvquiPGq7gR0gysUF7Rfs/owGzliIis8r+sm4u0YoJvD26+OfslHjuP/PPf2AfuxY/oMD5HctfucMSJGHUYbOXKVfKxQLRAoIxKyGQ7KFQYJHIJy3ZBt8DxsdvHPJ4BWHyuNLQIaUy8CZvruYZ2kY8AoB67+cvIw/MxgF0cq6Vvnv7/3gkQg1n4N6iLAsbAC1yfki3IndwjMsHZ/Q7lkc1J92Cxo89ZgUeNXkqqF/KWSDoRs/sT1LjIyIEx9JXhFK0SGk3k9Uk7EzYbW0rzYDjtNnZazaM6n+QaaWYbK8stprgiDD9k82zbqSgRCOp2J/EBn+6AxICLtMH470VFW+a+E0m/lRFtxK8XrysfX4auM3xJQnPcN76xFjKpl7xFHrcvQAbMQyBmbSRIMyyD99AYNEftMH96cgTO94Vngh1YVYQ3u+zBmjuHtKyXga2pnG7PYdx4g3aFfy/LzXOz/zdCkKt1KaHsDR60MSEAoidc52vbyPYnF/VyTWhhfBqaBgszvmntG1oCJXzCoaI+pAtWxWRN5y99HHRwjQtWDxQ99NSsu0/DWj5N93gvaF9lAVZqqmzWYR5Xkt14NOYTmELdYhwM=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dldOUHFOWmJDcmhuZWk4SDdwZUpySFB5WUtoVW5HSjVsWlF4ZTVVdnorWEpj?=
 =?utf-8?B?bTBqL1hPS0xmNHBLZUYrLzF5KzBzRjNwNStSWm9YNGVVelI4b2lWRzRXeWVx?=
 =?utf-8?B?WkgvbC93MWI3UU1GTzRmZjBZWlJIUzV2WkhhWGR1TGRFcW1GcjZzSFNuUjBI?=
 =?utf-8?B?cUpBNzJQRW9sbnU5VUVuSTBIdGx5TkxlSDRCZnF6ZzJFSDlZbmxFaFphVGtM?=
 =?utf-8?B?TG8xVnh0cVAycVFTYW4xcEs1Ry9oRDZOTTBkM2RkS3I1QURrZU4wTDdOWDVQ?=
 =?utf-8?B?ZEtadUE2TFhXMks0NGtlMFJJbEt6S0JoS0gvWHhPT29PSjZXQ21neGRnaVpr?=
 =?utf-8?B?SzgyK21YNHJzVXZ6cWZ6dDJ1ek51SHY0d0lhQllDVXFTYlprdkhCZEdlY3BE?=
 =?utf-8?B?SGo1R0pLOTZNQ2pmOFdhcFZMZi9RNThwTGozeXFmTkhqVG1hSWJ3cGplbEZV?=
 =?utf-8?B?cXJEb09iY2QwR2ZGMFFSek9XVkJmMTlJTGZyUUluY0tVOFhReWtVVTlpTEFF?=
 =?utf-8?B?SitNREZXMFZpTG9IMjQzU2FSd2FrTE9wbDF1TWM2UjZLZTg2NXRDOVRUV3NU?=
 =?utf-8?B?dnBraFdtZDlKdUI1cjlyMkIzeGsxeDNNOHVNUTR2TXB2VkNNalRaVGJnbEdq?=
 =?utf-8?B?ZmYwZFdWVS9FalUvYUN5ZUJZbjRyOVNWeEpZWVhvRnZQR3hHajdTV2wvbFNt?=
 =?utf-8?B?bU5ZTmE4TmR6cVZaZ041NkRSS0Y5SzM5UkRRRlZRSS8rVCs2blhzRTZ5T2h5?=
 =?utf-8?B?bDlhL0N0VnFVU3NiYnBGb2kwRDZZYW5TbTdYdlRDVy83THVEYXIvYW82Zy9h?=
 =?utf-8?B?WFY3ZGtyWGZnZEJ0MWlxYjBIQXU2Zk9YVUFsUytqY01FQ2ZrbE5ZUnUyUU9R?=
 =?utf-8?B?aVZENFpLdkd3b1BjMzExSkxPVDFiTWNkcEZnVWJmWmhkSmJldVhjbU44SDFW?=
 =?utf-8?B?YUpWN1d1cW8xSk9kWnNPbUtjd1ZiT3o3dEZrSGVOeHI2cytUa0w0c1IxMzVq?=
 =?utf-8?B?b0g5bEI4T2NNWk5Pd01qWEVWOVhPOC9TcUU4UXdhSGMvTHEwaFMzcVYzOUlw?=
 =?utf-8?B?eThSdDExZG10ZFVUb3JvL3hhTlBYRlpuZWxhYS9JTGpET256Q083M3RVbDlW?=
 =?utf-8?B?bTNTc1ZIbGlzRW1zOG90emdHMG5wdG13UmpFWG1RdXBvRjlmbDFkSXFndlF2?=
 =?utf-8?B?QUJJRHh3dVhNYkF0d1RWUUlxSThvVVVnaFlHdGFLTStjb3NOcTFvZVVMSjU3?=
 =?utf-8?B?K0UxVDV6ejZWMGY5a2FGWEJTd1o0RTFpb1BnbTkrRStSQlpCMFpIaVA0Vm9I?=
 =?utf-8?B?MVRLU00yMWZpSzVRM2JQaUxCVE40d1VobkNyRnlCcjRMTSsvRFc2bDhBcnR5?=
 =?utf-8?B?bVpJQktVc1FHQmYzemFFU2JBdm9abGhBNDhhckpmSnhhOHpNU0MzUzNud2x3?=
 =?utf-8?B?ZGhnUUZlTlRWNkp5a0pkcUZFaWpONVRXV1JaRFcwMTZMTmJwMnM4QnBYek5j?=
 =?utf-8?B?aVlXZW5nQ0VDNjBDZG81aldjZ2I0NGoybktWaUMzbWdad0VUY29CZVkvd1VM?=
 =?utf-8?B?aEg5S3MvWkJXWWM5MEJqT21HZkp6U2g0eTJ5SUlxbDF4T2dGb1l2TTh0S0Mz?=
 =?utf-8?B?S1pqYW1HbCs3dVhadEJyR0xhQmozbXY5aHdmcmpKSEk2dDdDRUxNL3hnZllB?=
 =?utf-8?B?MWN2cjhJbUFiR2p5Y1I3MGFtazN6bTFpemdnZyt2Y3ZOZXgrSW12dHhPQ2RX?=
 =?utf-8?B?V0NmWnBNd0x5aGZxYWxzZTdSSWt6a3Vod1RTb3Z3d0pIbDQyYVBldzJ5V2Fz?=
 =?utf-8?B?UWNzMEtTOEVPUVg5amVobFBWeDdSM2t4ZUF3aEhsS0VzMzk3RGFZb2h3T0RK?=
 =?utf-8?B?Y0h2eDhuREc1SW9GbE4wVFY5NkMvYUFEOXB4VDk4aC9tWFNvdENTZ1lOMDVK?=
 =?utf-8?B?K3UvYnFubkJuakRPQWJnREZVcjA2TG56NDExdTZNdU8vSkRSYjhHTU4zN3lR?=
 =?utf-8?B?blFIVFRVTG1oM216bXFjRkMvMkVvdTdZZmU1MkZqNThpbWlOaUhZc1ZqKytI?=
 =?utf-8?B?R0Y4SjBWMmJ6VGJNMXdLSEdBRGJIbEY1TVRLQ25XeHVrNEwwWk5ZOSs4R2xW?=
 =?utf-8?B?Y3ppK250NDgyRWhHUlFCWldwbjZkMyt4c0REcW5vajNOYXlPZ1ZIRUJodHpj?=
 =?utf-8?B?UjI4R2hRYmlMM0tYVXNEbXV6TXFBOFFyS3g4UkpNc2hCUUtONzNsWjVMbXA0?=
 =?utf-8?B?VjlwaGZkbzlvaEZGOVI1ak1FTXFzelF5WHQ2VStrTGFwa2lDTWs5TEVTbGk0?=
 =?utf-8?B?SXU4RHhhMDdwdmNQWWgxM2paNmdlVnBDWXBjOFFzZFU2eE5Db3VxUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6d00d893-a9ed-453b-b9bf-08de800db042
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 08:02:21.5591
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 02uOy07mhEVpvdZV0NO+Mj0yIH9xYsWERO2iFHZhO7sShrfSlIVTGN3PWZN7EBi5fL9aEsmwT0mNfKscY8IcYA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5740

When building the PDX test harness as a 32bit executable the page shifts
done on unsigned long types can overflow.  Instead use pfn_to_paddr(),
which casts the values to paddr_t previous to doing the shift.

Fixes: cb50e4033717 ("test/pdx: add PDX compression unit tests")
Reported-by: Edwin Török <edwin.torok@citrix.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 tools/tests/pdx/test-pdx.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/tools/tests/pdx/test-pdx.c b/tools/tests/pdx/test-pdx.c
index eefd54c76815..066bd3e7e569 100644
--- a/tools/tests/pdx/test-pdx.c
+++ b/tools/tests/pdx/test-pdx.c
@@ -208,8 +208,8 @@ int main(int argc, char **argv)
             if ( !tests[i].ranges[j].start && !tests[i].ranges[j].end )
                 break;
 
-            pfn_pdx_add_region(tests[i].ranges[j].start << PAGE_SHIFT,
-                               size << PAGE_SHIFT);
+            pfn_pdx_add_region(pfn_to_paddr(tests[i].ranges[j].start),
+                               pfn_to_paddr(size));
         }
 
         if ( pfn_pdx_compression_setup(0) != tests[i].compress )
@@ -233,8 +233,8 @@ int main(int argc, char **argv)
             if ( !start && !end )
                 break;
 
-            if ( !pdx_is_region_compressible(start << PAGE_SHIFT, 1) ||
-                 !pdx_is_region_compressible((end - 1) << PAGE_SHIFT, 1) )
+            if ( !pdx_is_region_compressible(pfn_to_paddr(start), 1) ||
+                 !pdx_is_region_compressible(pfn_to_paddr(end - 1), 1) )
             {
                 printf(
     "PFN compression invalid, pages %#lx and %#lx should be compressible\n",
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 08:15:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 08:15:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251788.1548653 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0bCq-0007GD-Mf; Thu, 12 Mar 2026 08:15:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251788.1548653; Thu, 12 Mar 2026 08:15:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0bCq-0007G6-Ik; Thu, 12 Mar 2026 08:15:44 +0000
Received: by outflank-mailman (input) for mailman id 1251788;
 Thu, 12 Mar 2026 08:15: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=jTts=BM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0bCp-0007Fu-91
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 08:15:43 +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 a8b6538a-1deb-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 09:15:41 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-48534b59cf3so6233635e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 01:15:41 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4854ad5ee37sm86741115e9.2.2026.03.12.01.15.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 01:15:39 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8b6538a-1deb-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773303340; x=1773908140; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=o+x4KFIxZflzg6VTQwH/Ob8N+WJi7OG0Ofvzmyt3h8g=;
        b=Fx8galqdxR2OiigNui/1+jcmYAXcm2zDKobYxC5cJE2vAbvb9oY4RfajAtbDOUs0eB
         gQbH79ReH3pHIhvpczRj+TPGwXQm2DiScIw3aAnuDaJgVw92GEjlE1YsJ0TGpwjpByBf
         RL9WnpHpa+U7SDMVsmQrmRXQjqKYsL0B7YKs3rGXVxDpE1MZnqDo/t5JcRh7vYqxNK/M
         0EjfREv7Vn/XWYDZOtGtKbUmpg+ZiE0pcfaug8wP+5Z93V5mvrPAnpnzCP8KbPJNrc6k
         VPtqvyJ7JkFDdXduxHi/ksGJsQEXhBBPKJxtesykmAytkKpGWk4tkV30do1kD53QMqUq
         WgoQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773303340; x=1773908140;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=o+x4KFIxZflzg6VTQwH/Ob8N+WJi7OG0Ofvzmyt3h8g=;
        b=OMGlvGcxM/KgB/ApCLE8ivmf8cP+6CtMD5+QhOUakT4A1t5A5HZrcrlF/3/NRqp007
         6s4/Pi+nvmBTXi20fo/wUWyNP5lEpawxqNXZ5BPixQkV3LmVDKNFoE15oTH4aPsyV71M
         7UNcVvOdsUWHYG6LRh8VBIt9ixgKa4nHWE5wu8HW9eNLJQhZHtzqLPXEUVMuKkDCqnHC
         nmm7yxvAnb/GAVxnsgWmF3JiiBx+QJ+coTIIdYrHNSZcSKEYSrNXEwPys2p2Ksd8TQjm
         15qc1QnuNuGgMPnuoz7I5jp27QLyQDliMuHzIAsmjcu5Kf1rA1No+CDSAZYoGkevK4VY
         7Rfw==
X-Forwarded-Encrypted: i=1; AJvYcCUC9Kl5HA/arQ9vt8RVStCSa/5HtCNu1CbvRPHfB8Qdw8Lk8hn+Nb8Q++mZJ807cN+aB1qkMZMoUs8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywntq0zNvohgg7yorLtI05EyzvabuJ5QqAO0BH3DHsJ6qBwtY+F
	4mf86ZEfkyBib4GYyJQSCTx++eXgCIug9SeaMAJV3iGVHrINYnpGzNH/K5sq6LTFkQ==
X-Gm-Gg: ATEYQzwS6FWSS5WGFghAsISKgijksetqSSk+pOjjDM5Xy8XDJUGdoy7IQA31/gSkxUN
	K03yNon+LXnvooWbQIFiduUdTSodw8iOFIGx4m7njRKCELZByrT3SllSMvzG8JlVjSF+Eqr44PK
	mfOSefBxrcEfJc76h0od2Arf/iW13zmCIlH21VP/h0c4tDjv4lx9hdS8CTEUeXuTJDng38el2lX
	6Lp1J9nOObEeI0Yr1qDCiZk6la2ARuFjTqJUBp/MgNcDyZ7LPZaVFHb7mTEeW9v2yByn50Jg8CW
	JzR7gs5N69RI6rgI2hDV8fg/IkJ2b9VaYt6VDaaXJUDQxUI9x7WVv+lsnOgBaMbRGACmFn3QH3j
	A/zxTJsP66jhfrc6GX/H6JSc5Jfgso6G6UWV1Vcbb91IfnvvZYWbJHdS68kxwLX805LceYFsIfB
	zCw07ZMmLXrwGr+qCS6FxLqJ9HUafrIHrzJISJ2KzxG+Oxd4EMYCgrHwhYrd3FOgFCfJM6ZLjdT
	SK4JfN57zpwyxk=
X-Received: by 2002:a05:600c:3b16:b0:477:5ad9:6df1 with SMTP id 5b1f17b1804b1-4854b0a4a1emr92300665e9.3.1773303340467;
        Thu, 12 Mar 2026 01:15:40 -0700 (PDT)
Message-ID: <2f006ef9-8a2e-4059-83ed-65dbe50ea9bb@suse.com>
Date: Thu, 12 Mar 2026 09:15:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4.1 13/14] x86: Clamp bits in eflags more aggressively
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: <20260227231636.3955109-14-andrew.cooper3@citrix.com>
 <20260311175838.573925-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: <20260311175838.573925-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.03.2026 18:58, Andrew Cooper wrote:
> In FRED mode, ERET is stricter than IRET about flags.  Notably this means:
> 
>  * The vm86 bit (bit 17) and IOPL (bits 12,13) must be clear.
>  * The sticky-1 reserved bit (bit 2) must be set, so dom0_construct() needs to
>    set X86_EFLAGS_MBS in order for a PV dom0 to start.
>  * All other reserved bits must be clear.
> 
> Xen has been overly lax with reserved bit handling.  Adjust
> arch_set_info_guest*() and hypercall_iret() which consume flags to clamp the
> reserved bits for all guest types.
> 
> This is a minor ABI change, but by the same argument as commit
> 9f892f84c279 ("x86/domctl: Stop using XLAT_cpu_user_regs()"); the reserved
> bits would get clamped like this naturally by hardware when the vCPU is run.
> 
> The handling of vm86 is also different.  Guests under 32bit Xen really could
> use vm86 mode, but Long Mode disallows vm86 mode and IRET simply ignores the
> bit.  Xen's behaviour for a PV32 guest trying to use vm86 mode under a 64bit
> Xen is to arrange to deliver #GP at the target of the IRET, rather than to
> fail the IRET itself.
> 
> However there's no filter filtering in arch_set_info_guest() itself, and it

Nit: Excess "filter"?

> can't arrange to queue a #GP at the target, so do the next best thing and fail
> the hypercall.  This is not expected to create an issue for PV guests, as the
> result of such an arch_set_info_guest() previously would be to run supposedly
> Real Mode code as Protected Mode code.
> 
> This allows PV guests to start when Xen is using FRED mode.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

Nevertheless, a largely unrelated remark and two suggestions:

> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -1193,6 +1193,14 @@ int arch_set_info_guest(
>  
>              if ( !__addr_ok(c.nat->ldt_base) )
>                  return -EINVAL;

Seeing this still in context: I had some trouble locating the position where
you're making the change, as in my local tree this is long gone. Is there
any chance we could make progress on "x86/PV: consolidate LDT checks" [1]?

> +
> +            /*
> +             * IRET in Long Mode discards EFLAGS.VM, but in FRED mode ERET
> +             * cares that it is zero.
> +             *
> +             * Guests can't see FRED, so emulate IRET behaviour.
> +             */
> +            c.nat->user_regs.rflags &= ~X86_EFLAGS_VM;
>          }
>  #ifdef CONFIG_COMPAT
>          else
> @@ -1205,6 +1213,18 @@ int arch_set_info_guest(
>  
>              for ( i = 0; i < ARRAY_SIZE(c.cmp->trap_ctxt); i++ )
>                  fixup_guest_code_selector(d, c.cmp->trap_ctxt[i].cs);
> +
> +            /*
> +             * Under 32bit Xen, PV guests could really use vm86 mode.  Under
> +             * 64bit Xen, vm86 mode can't be entered even by PV32 guests.
> +             *
> +             * For backwards compatibility, compat HYPERCALL_iret will arrange
> +             * to deliver #GP at the target of the IRET rather than to fail
> +             * the IRET itself, but we can't arrange for the same behaviour
> +             * here.  Reject the hypercall as the next best option.
> +             */
> +            if ( c.cmp->user_regs.eflags & X86_EFLAGS_VM )
> +                return -EINVAL;

Technically we could support VM86 mode, by fully emulating things. Hence I
think -EOPNOTSUPP would be more appropriate.

>          }
>  #endif

Having all of the EFLAGS handling together would be nice. IOPL and IF handling
sit further down. Could I talk you into moving these additions down there? Yes,
there are downsides to that: It looks to need another "compat" conditional, and
it would further the mix of state updates and error checks. Yet I still think
having all of the EFLAGS stuff together is a benefit.

Jan

[1] https://lists.xen.org/archives/html/xen-devel/2023-09/msg00157.html


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 08:25:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 08:25:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251804.1548662 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0bM6-0000Y2-Gx; Thu, 12 Mar 2026 08:25:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251804.1548662; Thu, 12 Mar 2026 08:25: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 1w0bM6-0000Xv-EH; Thu, 12 Mar 2026 08:25:18 +0000
Received: by outflank-mailman (input) for mailman id 1251804;
 Thu, 12 Mar 2026 08:25:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jTts=BM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0bM4-0000XB-DE
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 08:25:16 +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 fe4d4dfa-1dec-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 09:25:14 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-48538c5956bso7318305e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 01:25:14 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4854b66e3f8sm111689065e9.14.2026.03.12.01.25.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 01:25:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fe4d4dfa-1dec-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773303914; x=1773908714; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=eDTW8bDAjEjJXFvZLiffSqGsw7st6MYe1edCkQn7ftw=;
        b=NVpr2PZ8veHxydc1sGylGnvU6oKccRqdiJwnAbX7vnBIJeDZyhak1ONfhzSreswjDI
         xoc229UBEL/AdpubnVCmlNrn7ZlyMDRWIo8dp10v53dBJWdERyo1bSAMdHegM8ojcOkf
         OFFhHKH9ugB226A/35CWpYG+A6WUH2xS5GCcs8T0NhqJry6vCUaPTleSfOsO/St9KA0w
         KmNzHpNNYKqwVjuBwh8tLSmklyASTiVwE6C9qZ56qiO0Tx8ZcE/HUcgXKShktOmf3kXe
         kyQ/z691sUY7myExwjiLGFZbFOGeyZl/oO2rFlLqVPXcubyzrrsHejL/FXANIYJ7YuIn
         V5xQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773303914; x=1773908714;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eDTW8bDAjEjJXFvZLiffSqGsw7st6MYe1edCkQn7ftw=;
        b=teGR+Ss9vrqqot2rW1E94mmtKzFMS4gzFo0Hhkzaklm6WDPIjUzXPcnR5N8GY1a6Lp
         FKPiDzLgyhp4/rDC9QUDoDAs9Up8gy/WYKe0awK8gvC6+gkk3q0D/xcxmNXEciObINZt
         k7dErI9T0VX1PF92ZEJj6SFnu/ZgVBjuxCUK4EIv6vSTWiGkPJCCCKbj4BYtDKIVl2B8
         TJTt2oVMM53nTFc/URCKp8/nf+qVOQzg84fz0UaF2eVJ0aA0zTB2+wFgo+Eceff82hdz
         5lnWxBm1zKVwt3rockrxDVe+ojVFVQrmgLmY3XJuKOmO3QwxQoRtTeSXxfD5tvZ5SMe1
         UYkQ==
X-Forwarded-Encrypted: i=1; AJvYcCW21q1e09LLkDULGLb8iNRW3Nzm9EWHbFDBcMkK0mz3QBFBQYr2ZutlofIsGw9bcVYyGVK/wgoNJbo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwW5QmZDoHBeq9TDBXFZah+XOHF690FqRN2LmjRKzbOJQT+LyXm
	5ToIVm4DWnQgxeem8ruP+0RXZRG9COMkz973zVpUXrDxsvSvQ2Bruz8Q5QvGKq8Vqg==
X-Gm-Gg: ATEYQzxwbThDCqTCWcF1R15RdqqHZChjQnmmaqB3iXu7EgZMCaD3wxEVtLOZsHCbnz6
	PsdWWLgjEAun2ZOwjfvqzlgUwh0IWbusH4nHDIGsWfY2GRqbzCZ9nqXfrQQJzktQFx7jC3NWkyX
	hVq+lQzvv34Q6sOSDNXHOqx2r3lYMD/4dG57MZuaGuwoxv1Ku4et3XzOmv/x5p4MoR6CVQoVkL9
	WDxzCDtI0acElMmawBAQy68By79Gv80O/VdaNEjpnu8/2EG2U2WVIAmzqH+EqoEW1PMcFEhrE0Z
	GcppNYzuqb2n/jSr0EL34r9IjasSuI5LHjwnuG1gv0LqzwoJQpBxCqtKIoal8oTqwEHAvnkuZIF
	bWLZP75Zs/9BM1l1PWo7aijFUZobG03a1RHP9DCGzXzVA2IuAGpnYBCkevWdCu9Db0THE8/iVVA
	eyMXcb69gMLtOeaXJXfFS2YVZJoIRyrkAYNXXBFdCWrB1htJnu2iD3fWBABEKJVtZzMV1nUriA/
	zwWrnhCVobU82yI771sbYURYw==
X-Received: by 2002:a05:600d:644d:20b0:485:3c2e:60d5 with SMTP id 5b1f17b1804b1-4854f56a0dcmr29646735e9.2.1773303913658;
        Thu, 12 Mar 2026 01:25:13 -0700 (PDT)
Message-ID: <bb3e166a-9842-48d9-8170-ab5e4e53c57d@suse.com>
Date: Thu, 12 Mar 2026 09:25:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tests/pdx: fix overflow from conversion from page index
 to address on 32bit
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20260312080206.52648-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: <20260312080206.52648-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.03.2026 09:02, Roger Pau Monne wrote:
> When building the PDX test harness as a 32bit executable the page shifts
> done on unsigned long types can overflow.  Instead use pfn_to_paddr(),
> which casts the values to paddr_t previous to doing the shift.
> 
> Fixes: cb50e4033717 ("test/pdx: add PDX compression unit tests")
> Reported-by: Edwin Török <edwin.torok@citrix.com>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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

> --- a/tools/tests/pdx/test-pdx.c
> +++ b/tools/tests/pdx/test-pdx.c
> @@ -208,8 +208,8 @@ int main(int argc, char **argv)
>              if ( !tests[i].ranges[j].start && !tests[i].ranges[j].end )
>                  break;
>  
> -            pfn_pdx_add_region(tests[i].ranges[j].start << PAGE_SHIFT,
> -                               size << PAGE_SHIFT);
> +            pfn_pdx_add_region(pfn_to_paddr(tests[i].ranges[j].start),
> +                               pfn_to_paddr(size));
>          }
>  
>          if ( pfn_pdx_compression_setup(0) != tests[i].compress )
> @@ -233,8 +233,8 @@ int main(int argc, char **argv)
>              if ( !start && !end )
>                  break;
>  
> -            if ( !pdx_is_region_compressible(start << PAGE_SHIFT, 1) ||
> -                 !pdx_is_region_compressible((end - 1) << PAGE_SHIFT, 1) )
> +            if ( !pdx_is_region_compressible(pfn_to_paddr(start), 1) ||
> +                 !pdx_is_region_compressible(pfn_to_paddr(end - 1), 1) )
>              {
>                  printf(
>      "PFN compression invalid, pages %#lx and %#lx should be compressible\n",

Largely unrelated remark, from going through all of the PAGE_SHIFT uses: Isn't
the __LP64__ conditional excluding quite a few too many array elements in
main()'s tests[]?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 08:36:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 08:36:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251816.1548676 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0bWm-0002Ko-HD; Thu, 12 Mar 2026 08:36:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251816.1548676; Thu, 12 Mar 2026 08: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 1w0bWm-0002Kh-DT; Thu, 12 Mar 2026 08:36:20 +0000
Received: by outflank-mailman (input) for mailman id 1251816;
 Thu, 12 Mar 2026 08:36:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jNLd=BM=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1w0bWl-0002Kb-KR
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 08:36:19 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8954db79-1dee-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 09:36:17 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DM6PR03MB4924.namprd03.prod.outlook.com (2603:10b6:5:1f2::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Thu, 12 Mar
 2026 08:36:08 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9700.013; Thu, 12 Mar 2026
 08:36:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8954db79-1dee-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=u87acAxyUs7S3MxLsjGLjocEjlUE1JZtoiMQQKMr+csZ0oU9o3oj/jP6m6C8ZiM26lbF03tDJMzHyJHnpVayi1xyO5a3YWo7fEeaubEnOwrGNNlYK/snZZd1o8T50r+d+14w0BzTHqZDuYfQErnSf+EXNqklJsVh1Sc7evjHLiCJyCPqAPUqz1+fZmd3SyGH9QwLpkQ4PdLV3K2w8X36pjS530RYVt9f8fra+X7ycUs4zCF/2bTrPjowWAN1mKtoUqTlX7yszibOUQ4FNHB+rIm+uaX8jFSBijmdhqdfDQqUNT7u3pmHNEg2yZBDPINe70ugmSgk5IjVZsyu7om6Dw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0EAaLruJ0j1AiI5md8lI1uSD7PkKz4SyXqT8+Jd3YB8=;
 b=AxPHg7kT6LlvnUdjZko90ywKF7hIYPo0A8Ms+Sqk7sOXIYLG5KKyPleyGU6p56H/xLQJOxPs4Y7/9EZX03PKRpyMjUJYLUVkciM1lK9xrn4DAMej0T4HhK/pTdv8jQ/ytNxUGdIPzF+z7Gd6im1/Qyd0/e74A6NNbrb0XT6Fl5uCnurxeYBfrr5v+mfcBjjDt3QrbXOafNPJzF5Se4DUOdV5+RvzrfZnHB2cCr/02W8YIM+SQbNj+4e/pOnJPx5LaqztMH369SBid9RcRNFyKC2OPju4FAFHX+p8X0KogBAhd//ehYLHR4e2E6kIdE8C32ll8awjq4I5f3MzBtz3EQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0EAaLruJ0j1AiI5md8lI1uSD7PkKz4SyXqT8+Jd3YB8=;
 b=pUBtlurG9yQ6h7AHGd1Y76y+Zt5RMTzfK+BiNXiOsDv4snTB0q9OTgD9yIU0VJ/2u5vOgEGFt2pt5sp3av/srvq68pRB1OmuYMdh7Km5gFGX4fpAorARSzy6obqY0mk8yUM+/uj8IeQKgOgoDaNtpYLt9FIwm33ScAIK6iHT2pM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 12 Mar 2026 09:36:10 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	Edwin =?utf-8?B?VMO2csO2aw==?= <edwin.torok@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] tests/pdx: fix overflow from conversion from page index
 to address on 32bit
Message-ID: <abJ6-vXv-4vVSkGx@macbook.local>
References: <20260312080206.52648-1-roger.pau@citrix.com>
 <bb3e166a-9842-48d9-8170-ab5e4e53c57d@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <bb3e166a-9842-48d9-8170-ab5e4e53c57d@suse.com>
X-ClientProxiedBy: MR1P264CA0039.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3e::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_|DM6PR03MB4924:EE_
X-MS-Office365-Filtering-Correlation-Id: 9f909835-1b20-4d6b-c6c0-08de80126b25
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|7053199007|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	NNOx2jbYAchbyF+1HPi8p3Na49L8HY8RfJkAtcYiTvJVMP+3y7vCNDmAcPMb/McFea4oWTkgdqxpSwgO+56vNkye1MHNcB4jIpcbNckgE0fNpEDsW8uPDKMv9BWpPZGjml40G9ko4qkEcNJnAhf6H4NtrzSuNiAxwYfZPswUN6FK4+JLnm0WIcVfVgM+ack12u/uUApGpO4nCNtDHchQCebvbCtErDAccGCiPpIx7rtSR04giKR4UrcUeBp795DH45MrCtvhnmPtIdtdwUTAKUDg02B6M7whSn6/rFw9//7wAT7oR3AIj35GEsgOCSwanr3tQu6MBY98K+/CsIWgIYJP65jIeiXyGnkNFINQS+8n9x24paunP3bC7firXE3Ie9/sRcoLi6nK4ESAv3g58PpLn6rrFaSueim1ww3iWTJ4Z/Z6C12DJTZRJOTVDxsRWdASoFzAHpyamYbjXUkiEHRv6A7MioY7jI2Px2fo+BkIsurfVB2SeofPr6MGg2yK7aPuBADlly/QbdBMgW3wgvjs9j/WxttBMLRTweA47eYp6CvjyduskBiBV7swzEA721wmky5lLbvjOCUQxi91hwMBGeUmGNcNMLHhsjfRyVlCZ15abmkvYD/ncnkT9Z6hZ9BB4AADMb5BellKzAYj9lOtKdenm4eeAZ6aFgiGGytgsHHHJcIYudQi4j/q04eYPDiB6kU/cdn91k3svk8BSQ4MDE0OLYybEczC87lkOaQ=
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)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eFZsS3ZiTnMrNG80dTN6Mm1YMS9ILzNWc3ZtY0EzcTVYdXlmT3VRL0NlQUpm?=
 =?utf-8?B?RzNRaVpsWFJmUDdZNTNIVnZrYnVFQSsxQzdZbFhkTk8xZ3l4bW1VYXdnR2Fz?=
 =?utf-8?B?cGIxdGFjYStEZTJkNEVOU2QvbisyWDhTeWVxUnRRajVnaXV6YUJ0RythSnFB?=
 =?utf-8?B?Rmp6b3FrZ1Y1U1VwT3BDOVQ0dWZUMGcwcG51K1prdDhmQ0NhejdLYm5xcWdU?=
 =?utf-8?B?WXVycERFOTRwZlliVVg1Sk9oQWVaTi96em9wYXdhRWpZVjdpTFkvNXlzNDhE?=
 =?utf-8?B?Nk10cmlMT2dEeWNmbWVCMC9HOG1DZ2tMSTMreTA0TTRZSWQwaGttVk5TUmNq?=
 =?utf-8?B?TWh5SXFGb1ZrRWdZaU1IWkNLdFkzRnk4ZVdaVGxITUNtY1BOUng3ZkcrMHVm?=
 =?utf-8?B?T1NmR0N2NngxdXo0QVBEeHdUTWVCMFh0QTFrYWRCVDhBUzZ3Q3ZvR3pwSjdM?=
 =?utf-8?B?M2dqOUlSN2ZZdlVteUdCSWNpZlpHSjJyWEdPY0tVVVFRejJaSkNRaTh4YnRr?=
 =?utf-8?B?Y3ZsY2JaeTlKSEQvRHh2SU44Q01PS3lMOUJjYlZaNGs2UmljMXBPYStpYWJy?=
 =?utf-8?B?bTdJVWVSTU1pczBjczlxVTlFQkdWYUNWQUp2SHdTSGo3UDc3QjVUcHdGODF2?=
 =?utf-8?B?WG9TdDZUU2R0MjgwdmxyS3FtUFpEZkpyakE0dk12VzlDeGcvbWtlQjFuZWU1?=
 =?utf-8?B?YkJrYlV2Q1ZvSGF6WldKbUdreVBUOXp4UmgzdlZiSmM5aWZvcW5sK3dmL2xh?=
 =?utf-8?B?UWFueW05L25ZdE5DdWNWNy9Vc0JpWnlvamhrclJiZUJCTkd3TEU0MFhpTWJz?=
 =?utf-8?B?YytMTDBDbG9WeHVIWDZQOGZBSHU5N1hXcnRrRXBBcE5lcWdSbkppWGdBRzNt?=
 =?utf-8?B?VFRJeEtuWVhwUkIzWVVaeTc4WWthMU1UUFhmNFhic0gyT21ZYVM1ZG5jZFZP?=
 =?utf-8?B?dEwzTitCT0ppTG5sQ0Q1Mm1BV2huL2V2cHNnMTFaWXBLbFNTWkdYcGJYTEEr?=
 =?utf-8?B?Tm5xWk1SckpDWmYySUk0ZmJzb2c2QThUNW5qVEh4VzdsUmpPY2I4ZnhKd25I?=
 =?utf-8?B?djRNeVA0Z1JyVU5FVDEzNGk1L1JOWE44anBwOUFYeGpGZWs4cnV1bU9ZVzc5?=
 =?utf-8?B?SUllbmRwVTg5ZHZ3eEsvYlg4bUJickNIOURGY05LdDdkb3pKa24zcHhXTGlv?=
 =?utf-8?B?dW5CMFVwSnJpNmx0NG85aFhFRG80NDNjb0Vic1owREU5U1YyRi96SWtNWGNu?=
 =?utf-8?B?VzI2QWVxMHJFRUZ6L1FEdVVXanpZU3BKbHZUSjJpbTd2Q1Z2dko3ZXBZV096?=
 =?utf-8?B?dk5LdjB1NUZsN1BHU2lVVDYvK2JFYURlWmdIcWs0YlY5c1NmUVVBYlVnOXdp?=
 =?utf-8?B?ejI5K2RFczhvWFdQVm9kSm1EUENUMTAvd0U1dHcrUlMyWTNRWnhqdGpvV2xw?=
 =?utf-8?B?RG1icDdLOFFWUm14NlVOZTNMeklKM2s5S0lLdWg5UUVKVTFSalhmakVtQzE1?=
 =?utf-8?B?NjFkNGZISmhqYzN0WGYyOXhtUTZkMGszcVVKZVRNRnRzakRCVEt4c3hvcG9G?=
 =?utf-8?B?eWdMWTY0YjhSeWR3bWZHbVBhUEdYK0ZTckRJNjJ5TFpUL1VRTmtENStiOUgw?=
 =?utf-8?B?YUZHdWlMTEV5OGdNdDhkK3FOK1M1d09pRFdpdjRoMDdHc0k2SVBHeDNFcHVC?=
 =?utf-8?B?U25OR29lb05tV1JZRUk4RGw5T0FHbW9DbWRvanNZMU5EYzFLbStvSjQvNW9x?=
 =?utf-8?B?OHVSUjlDZGRHY0F2UlpDT2c1TEpFRkhRRnNkY0s1TkJ0bDRIVkRrYUhFY0dV?=
 =?utf-8?B?QjdWOE92MXN3NkxHL1pEZDVyVWovaFVhcWo2bGE0NmpCRkwxZWtZdG10NTd5?=
 =?utf-8?B?WVFsVzBBN2tSc0FxekdNd3JvVXNKY0RFdlFvcytyOUpDYlFmb0J0Tmd6bGVS?=
 =?utf-8?B?Y0NpMVVXYk4zeC9uRVE3Z00rbkVwVlBIcHJ6emFhZjVzL0hZVUhFNSs0OUZ0?=
 =?utf-8?B?VFlwRDg3Wk4rYWozNXBldmk0TU12SFFRKzh4K2UwMGhjOWQ0djZtMG05SGFL?=
 =?utf-8?B?aW4zOThDQml5MGJsRWFqVnA5dUxQL1NRQUlBaHhqRWtEMVJQRnlmRTdjRWhI?=
 =?utf-8?B?VkNvcytJMTRrMUFabm1nVmNLVTl5UWIrTzNkbzRyTENxNXRmK1Qzb3RjUm1s?=
 =?utf-8?B?VXQ4Ull5eFkvQnEvT3p2VTI4V3pvYmh1c3BHbDZHVGpxTXRvMndUMm1EVk9r?=
 =?utf-8?B?eUFBNUd1U2JGd3VSN3hqcm1EN3FHK255SmRBUFVhNHBOb053cW9zUW1lY2Z0?=
 =?utf-8?B?RmV4cjFVSEhCU3c2SytyQ2kydkt6aUtaS0xiaHhtQlZhaGIvK0JUdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9f909835-1b20-4d6b-c6c0-08de80126b25
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 08:36:13.0891
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: tMjktjKnSigqwsbwvYZUkEhpJ7TpMCpDpDd00VfTChoakHU3+Uu6tHL1KGcTt9r24QFrQSCU+488YUqwwVsNhA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4924

On Thu, Mar 12, 2026 at 09:25:12AM +0100, Jan Beulich wrote:
> On 12.03.2026 09:02, Roger Pau Monne wrote:
> > When building the PDX test harness as a 32bit executable the page shifts
> > done on unsigned long types can overflow.  Instead use pfn_to_paddr(),
> > which casts the values to paddr_t previous to doing the shift.
> > 
> > Fixes: cb50e4033717 ("test/pdx: add PDX compression unit tests")
> > Reported-by: Edwin Török <edwin.torok@citrix.com>
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> > --- a/tools/tests/pdx/test-pdx.c
> > +++ b/tools/tests/pdx/test-pdx.c
> > @@ -208,8 +208,8 @@ int main(int argc, char **argv)
> >              if ( !tests[i].ranges[j].start && !tests[i].ranges[j].end )
> >                  break;
> >  
> > -            pfn_pdx_add_region(tests[i].ranges[j].start << PAGE_SHIFT,
> > -                               size << PAGE_SHIFT);
> > +            pfn_pdx_add_region(pfn_to_paddr(tests[i].ranges[j].start),
> > +                               pfn_to_paddr(size));
> >          }
> >  
> >          if ( pfn_pdx_compression_setup(0) != tests[i].compress )
> > @@ -233,8 +233,8 @@ int main(int argc, char **argv)
> >              if ( !start && !end )
> >                  break;
> >  
> > -            if ( !pdx_is_region_compressible(start << PAGE_SHIFT, 1) ||
> > -                 !pdx_is_region_compressible((end - 1) << PAGE_SHIFT, 1) )
> > +            if ( !pdx_is_region_compressible(pfn_to_paddr(start), 1) ||
> > +                 !pdx_is_region_compressible(pfn_to_paddr(end - 1), 1) )
> >              {
> >                  printf(
> >      "PFN compression invalid, pages %#lx and %#lx should be compressible\n",
> 
> Largely unrelated remark, from going through all of the PAGE_SHIFT uses: Isn't
> the __LP64__ conditional excluding quite a few too many array elements in
> main()'s tests[]?

Hm, I think so.  Will send a separate fix for that however.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 08:49:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 08:49:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251837.1548684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0bj6-0004Dl-Jk; Thu, 12 Mar 2026 08:49:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251837.1548684; Thu, 12 Mar 2026 08:49:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0bj6-0004De-Ft; Thu, 12 Mar 2026 08:49:04 +0000
Received: by outflank-mailman (input) for mailman id 1251837;
 Thu, 12 Mar 2026 08:49: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=jNLd=BM=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1w0bj5-0004DY-9R
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 08:49:03 +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 4df6b56d-1df0-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 09:48:57 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 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.9700.11; Thu, 12 Mar
 2026 08:48:51 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9700.013; Thu, 12 Mar 2026
 08:48: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: 4df6b56d-1df0-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mEF7vyC7LF1rOVy0b3NrWFreJyR0pB6J+eAWm4Q+K6H/+rYla8Oh4TlUAs5Z3lSB/6XkyCxC5U0st63o2B6FlifcR7I5YEnmSVh+KXyAQK9+EyhMRklkOVCtpqf2wQffld9iqib9dgwFj2brbvMm+vwkqH/qDd3pOsxLO3jSAwVfY+67YdiG99vS82lISMdrW+1JfSVFjxeCOOO8N66Gm0jvyuUnyATRu4uVk5+Pm5ybwFmGxVCQXE4UEJUJP+lppUJXb0VQGo47BqABtIbVTZprIvuokJmZ4caWLuUNA7SiXA8T4CX1JA7FQfj0GCxHoDp47RdSKba9BdcXrHH+Jg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6O1tRDQ0OEzoxqOQDGf88C+BTZkQUGNGJWGEt8y4v8E=;
 b=eZT0Wt+jvGnEQ9qyr2QPKGvw6ZAcU5XqI9q2ourS9hNzzUE8UYDSAVsBIVAMCkKvfxomd3rI1UqWJojvY4vIvLjacTzmZqTmNjh9coHWvujIu6Mn0fcF9vBpN/r3Egi6j6GeaiD8PlmcDmmDjFqGgI+JHBjUgg+DvY5XFlSk1jHDuaOTmDDL3G2lYBoAQJnKXLL5sB7PknjBxEe/FYhNrHqAPyRksmWqvGqvjs7CP1tzbGjJjp3TrszXZAjdjhuX+X1KoQxAuMuA4RcZcIyHYF15MA5PYk7sV2Jm0rEfou9gVhNOFBSm8eXmtAZg21MyDWlUverhXSYKjKR8C5oq4g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6O1tRDQ0OEzoxqOQDGf88C+BTZkQUGNGJWGEt8y4v8E=;
 b=KqSnmKB39BaGPh4NPw/chcva9PHFqRsDJesiqusMnUTYZf74CWUCCjgAAcKrFBzcqcpMR2O1K5lBJfcKSqcKplZ+a662x1aIZSGquCuDzDU41AQbF0+5y/23f0xjk7t5tbc8nAcuXzo7mHdJQL9QKV+1/qn04R194ah/fB2ddZ8=
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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] tests/pdx: allow more tests on 32bit build
Date: Thu, 12 Mar 2026 09:46:38 +0100
Message-ID: <20260312084638.53360-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: MA3P292CA0046.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:48::16) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|MN2PR03MB4926:EE_
X-MS-Office365-Filtering-Correlation-Id: 6feedbfc-285d-42e8-eb1c-08de80142ffa
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	bRke38gY1881bgqhEpPGnN1P01VzF/NxOJn7t9+80Jc86Ft3BT0yTh17hqXWfHeGygq+UMmikwY3ISPcShFdjZdx/CIQ6MDOeiTjkJ8SeMjzp3Q+PNVbdvpL4BXB8LmIO5MKx1QUaI+QA46KG1ssV1tDzubRWEopPwggFOTZQbwc0jgLSh0zg1/EvP9zKp2Ms4Eez9yAEI4OUsMFSmCa00UEraVVhBS0Ckos5A9LbTCvO6wFQmCzFP59amC6A90n5JqsNbI5rYnGOuZsYJceSlz3X4RHzZ5mW0aSouZXCXd5WJd/nShov8pcqaQXCEoY7hOnIpSJkDbmQD9UDKLwgZ/rxu9bsrEeHrSzoMkerCbJ4UwNwxPC4QzilZOgfJFCo9v2KjoVL47Mp7G112Ej0yzkFIjzTPQhLFOW1aRcXuA3hX/7MIxNIdnoiFnvphJY3cg94elQxwFPU0eABJa/bwbNCRjTNrWixc23zFFnEH/QBkAhjIF5cLskjC80EsnPTUjAR1u6EWSVr+bMvC0zWvswJNn2y185E9f2IIxqdT7zCtiLlsT6ELuqEXMopvC+dWIAWv4ZFnd+h0B5amPqxMa+aEWvu09rGmEUwiIpy+PfIaI/v2xbN92NYbwa25iCeKFXnRQOJoWaHBTwrXt/eCkqr2NH0xXUPGq4BhnomoRxrk2ju4OSScvE2o27E4+POEfKlj6VxEaY63wa9qpt7Kia3d37cOu8XI8yTXBYBak=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VEJQZFhPK1I4ZlNMRDdVSTNGS3lGa0xEL1ZmNk4vR2ltdEszbkdPVVpCOHRm?=
 =?utf-8?B?R0V2U0liblgwMkpIc2hUaHRPa1pvYkoxNjh3SWVwTFh0SzNGSlBYTEdSemRR?=
 =?utf-8?B?dDRYSWN3aUZaWXluOGFKQkZvWDNBT1JkVktnZnB0UlpldXcxaURYSitTTzRY?=
 =?utf-8?B?SVJFSGh3TmowTkxTSDZRSnlOZ2NPWGRvM0YvTkZxbVI3RzAwbisrNDcvTlF4?=
 =?utf-8?B?Mk9iVFRMM0tCb3IveG12VzBQdlYxSHFKcXZrVW9NcTdlMlNQSVBiVWtPUE9s?=
 =?utf-8?B?Y0ZmNG1RUmswZi9pS0lpKzFoaXl1ckQrYzM1dWRWcHYyWUpoTU5GN0hjc0Jm?=
 =?utf-8?B?dnpBTkoxQzlrTnRHZ3NycjF3Wk1RMTAwamszWDBXUjZTcDAyaXpaOGRGRUFx?=
 =?utf-8?B?K2hRMTk3ZUJOaVZtTDFCd29KR25RTFBCK3krd2hJSldCR1c2Y2N6RjM2bFZw?=
 =?utf-8?B?M3lRYWZiM05EaU1MQWE3eVdPVnlLcEF1YnlUeTNpdnRTdU01MDFCS1l2Q1ZG?=
 =?utf-8?B?K0ZZeHNjdkVkb2EvemNhcDVTMCt6M0NSUjBkb2NCZE1YanduTEV2Ymg1Z0Ni?=
 =?utf-8?B?V28yUGswVkNMbVNEckZjNmsrK1BmVDUyUHdZaTRaSnduOTQvRXJaWGU2OHAr?=
 =?utf-8?B?Rll1VjNBdU8zWTVyaVhKbWtmdUNrUFU1Z2RLdTRjL3p2SkhFZ25lZTlETTNx?=
 =?utf-8?B?TmlDRjY4K3VVMWk0cHZjc0lUN2dOd1EyRWl4UjBtTWNyQXpXZFFSZEFKaUtz?=
 =?utf-8?B?bHVkb3g4TklNM1RSZXBPSmxiS3dvZVlIWXY4N1pRSTlNRlRxb0oyWFkyY2tm?=
 =?utf-8?B?QXJkSmgvdzVxS0NNMkNlRDZib3VDNzRMUmZyanJWOUVaOG4vRW5QQXUzMEhT?=
 =?utf-8?B?Q3RiNE0xMDBrRFRXY3A0NW11ZEhFL3FueklyajFaQUdSOWo3NlhBM1NRUU5t?=
 =?utf-8?B?aExkNkdNQ1VzL0RkN2t6SGcvTlFZbDBDUzUxbFR5TnBVQnZEeXRndXFpWnBk?=
 =?utf-8?B?Skhiblo5TWFVUWdEZThHM2pQbHBrRjI2UlE5R3ZHcVptajQwWUV1WExIVDNq?=
 =?utf-8?B?RmRCTG0xQVhlTFR4bUZzdklPcnhmdEhTVmM5UlE2dDIxcGxSNis4ellhRElC?=
 =?utf-8?B?WDVLWW4vWGE5cFlyVDZleEltdkhnZmdJcHFhb1FXdHNpbDRKZTZIZEg4YWU4?=
 =?utf-8?B?STVZUGgxUy9yYkJJRjNqdFUzZmZPWEFYdUdVbUpRNzZHdi9hdE1PL0dJZTl6?=
 =?utf-8?B?VElpQnpMUVM1VjJHTXkrTDRuaU5uTUgxUFpJQlhWZUpZemRKNC8xdUc3azdl?=
 =?utf-8?B?MzJqZ2U3M1Z3bTVlVjQ3eW1VVTJtVlFMaC9FZlExSzFYUGdBaHRpb0VyQmdB?=
 =?utf-8?B?RHNQclg1azkrcEVLNzFWREZ5Q0JhQWtpUVNJTWh3ZmdoMXR1TzYwdUZlb3I3?=
 =?utf-8?B?eUd5eW1MYWYzamxJay8rSTFIa255Qkt5QUcrL25wWVMyMkYzdjQyWUpVd1J1?=
 =?utf-8?B?YlA5Nzdnc3diYk1FNHJTNnRmbHE4TlpQWkFtVmRlbEZaUStXVkUreisvNUtt?=
 =?utf-8?B?elRtRklkY0NadklkUFdkUVFZYmlOM2NVSHlydzgrVGNneGtDSjhlMko2ck56?=
 =?utf-8?B?UFVWWmpFdjA5dnBtSzhOT0lzMFBVdUZvRmFHSTE0c1FlWWtEZ2JZdUhZUnhT?=
 =?utf-8?B?K1h6UnF4YkwxOGhqVmpIdVRWRVlIbmo2am42dmgzMmNweldXV2NuZEZZaDhm?=
 =?utf-8?B?MThRUEVnUS84RzdNUXZ1WE9lVXIwcUxzSE9DZlZaY2tiTzhidzFFUVRrOVZR?=
 =?utf-8?B?UklSVnIxcWIzQTZuOEt6Snc1RFlKdzdicXFsdi9iaUQyNFlPeXhxRENXdk1H?=
 =?utf-8?B?a2RaZ0RzejZjTitpTi93VEJUTmgxQktjUXhlTktGQUZVd3JzYkRFUGRwcUI2?=
 =?utf-8?B?QnBOdXBQR085dy9Gdm5PQmxYYk1vWkJ6bmJtdVhsZ2RiZFVmV1J2SEdLREdB?=
 =?utf-8?B?Y1FGL3U1ZVZMbkdrVjFmRmxEMkdGTW03TVd0UmhrTS9xQnN0U0FDNzJIVVpp?=
 =?utf-8?B?OWk5NkcxYmxxZGtGUUdaaHBnOVNpY2owSjhGaUsvZEgzMVBYQy9la0p4NTl0?=
 =?utf-8?B?MnJWaWJURHJHWGtNcXlGaUduVjBSeXRYMVNkMjZML0JLOWFMci9HRkZHR0Yv?=
 =?utf-8?B?NS8wNVpQNmlJTlV1cVVrd0xDSnFWSjBuMURHaHBZTHRCK2xhRndaZkUwdUhZ?=
 =?utf-8?B?T1J4N1dlZzNhQ1VzM0Z2ZG1OTEsweGNYR0JCWGh0VE9KS2hzZWFHWm4zZ2Rq?=
 =?utf-8?B?ek5nN0xkRDdHa0FkRUlyYjgxSmx0VjVlS3BNSjNHM2NVMFVFY25aUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6feedbfc-285d-42e8-eb1c-08de80142ffa
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 08:48:52.7642
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 0D94nBKonVx/nWR2RgwkEkUAZIuidvNzjCPMbIVJFh4ULzEkDgFsOY/L5/cZ+5sAG4Xol98nq36cH3+hnoH2tw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB4926

The limitation of which tests can be build on 32bit is too strict.  Move
some tests out of the 64bit explicit region, as they can also be built on
32bits.

Fixes: cb50e4033717 ("test/pdx: add PDX compression unit tests")
Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 tools/tests/pdx/test-pdx.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/tools/tests/pdx/test-pdx.c b/tools/tests/pdx/test-pdx.c
index 066bd3e7e569..d783186577ef 100644
--- a/tools/tests/pdx/test-pdx.c
+++ b/tools/tests/pdx/test-pdx.c
@@ -77,6 +77,17 @@ int main(int argc, char **argv)
             },
             .compress = true,
         },
+        /* Two ranges with the same high bit set. */
+        {
+        .ranges = {
+                { .start = (1UL << (51 - PAGE_SHIFT)) + (1 << MAX_ORDER) * 0,
+                  .end =   (1UL << (51 - PAGE_SHIFT)) + (1 << MAX_ORDER) * 1 },
+                { .start = (1UL << (51 - PAGE_SHIFT)) + (1 << MAX_ORDER) * 3,
+                  .end =   (1UL << (51 - PAGE_SHIFT)) + (1 << MAX_ORDER) * 4 },
+            },
+            .compress = true,
+        },
+#endif
         /* PDX compression, 2 ranges covered by the lower mask. */
         {
             .ranges = {
@@ -132,17 +143,6 @@ int main(int argc, char **argv)
             },
             .compress = true,
         },
-        /* Two ranges with the same high bit set. */
-        {
-        .ranges = {
-                { .start = (1UL << (51 - PAGE_SHIFT)) + (1 << MAX_ORDER) * 0,
-                  .end =   (1UL << (51 - PAGE_SHIFT)) + (1 << MAX_ORDER) * 1 },
-                { .start = (1UL << (51 - PAGE_SHIFT)) + (1 << MAX_ORDER) * 3,
-                  .end =   (1UL << (51 - PAGE_SHIFT)) + (1 << MAX_ORDER) * 4 },
-            },
-            .compress = true,
-        },
-#endif
         /* AMD Naples Epyc 7281 2 sockets, 8 NUMA nodes. */
         {
             .ranges = {
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 09:09:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 09:09:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251851.1548692 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0c2J-000796-5y; Thu, 12 Mar 2026 09:08:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251851.1548692; Thu, 12 Mar 2026 09: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 1w0c2J-00078z-2v; Thu, 12 Mar 2026 09:08:55 +0000
Received: by outflank-mailman (input) for mailman id 1251851;
 Thu, 12 Mar 2026 09:08: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=jTts=BM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0c2I-00078t-2a
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 09:08:54 +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 172c1f89-1df3-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 10:08:53 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-48334ee0aeaso6552425e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 02:08:53 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4854b0b906esm56305995e9.4.2026.03.12.02.08.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 02:08:52 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 172c1f89-1df3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773306532; x=1773911332; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YzdoxAlYV8Tm4mWJQuIbAT6rS2yPVOYFZZrpTVL28WM=;
        b=QGCKGPYATs2XVEIp+6npNzKKPGN/uSt4diQvTa/0gQZeeqnyFrnF40TyFsISn+W1bQ
         ZADkdJpeuTeTju56/6cwQdw7dTPmuyTLRnPy8+MPh6UKaiqCIz7my3QqPGzwvepqxn4E
         4jnl67eO0Y79+VOXE269AewO0XNc9oMCXiB7Ez1ukI9TeR0T0uql86R0zy30SfoAFDP+
         FQWMzLV7uwQ3dI24W6C7Aw6y8W7ktKPQn6ntd2Hyp5Ion5J/+fTdtnIJIgEEGbaMAfwj
         j4Y8/Dy4IOliTUuVGcR3Xvbqv54FwgVCNnLFgzMY5AUut4kHypqX2os8CDK1EsokrucY
         HF3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773306532; x=1773911332;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YzdoxAlYV8Tm4mWJQuIbAT6rS2yPVOYFZZrpTVL28WM=;
        b=tFJtPYiIJRA+Ytdh32BBK5oXd7iEtxaq6MN4O97PSAAe10PGH27QayGqwwtbQDPT25
         RchcqFqmDeMxWy6xOjbK5RhYf3Gnwoee4pMOvAe3gZ5Q48YZSkDX9HK0EeeAer/Jyw7p
         5R17/bkiQxoELZewnPyaIuiVXVjcLQqdHookINvw8VUjIDy9IJpl0yLVYF3W2C8yGce4
         4odmpM629pTmlg+mJCfCdRsKgX3E1ww2SJ8JMw2eZBbrcExEGROKM/j/RZX/LtVS9O3S
         95NSrIyfn2qx/8aOcdvvykk8Pptde8C6HtVXmUXKEU+hyvEJZEaOW5MM7As2Ko05FTxh
         I0vw==
X-Forwarded-Encrypted: i=1; AJvYcCUZEIzD6de6z7QG7alAJosJ/Ywui2CUGfZ4HRKdUS49x1kcm68EWAn2iiNdyEDmc+zwCX6w5FrIUFQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxFxMEecHTEFJVs8leIlBA3d72aTS+QQhbyJXH5lqOUiw8ei+d3
	qyHIOZWXcm77qpBkwqagBxPyzgQh3HJUro5qNFT/R00pQxYlx6RL7FUO5wd4/yaa0+mSVp4JyGG
	Tabg=
X-Gm-Gg: ATEYQzz/4jfces7j6cLjMqOvoj5vph5UAioeGSIisqzCvi7BGRQEYiilDeTddh56Jym
	LwrIMlTRfSSxJn7fMRrNVpzv0NT3Q7zZ/a5qrCfHEEcFjhE8x30HkAXk0hZj+RYbTsozJ9TFUbg
	d0PheMZmJoTcaxp/1ENKakzt3m5v3Haa1xTWcwJFJl5DGQDVuF3QR7uhhl/40bDqgMFPlJRmIuz
	yE0S0BDvPDge7YISefss2OussGxsseymvc2bVdWvPTw1+UyiYXvfihgZJL95zB3a69ElDy+cqsp
	7Ihs8AX81YePsD9BN0YFOvhjf9w5uGfZXhHOMB86iOADU+b61vGphJe83+JCBOl8HkRXNwQY4xU
	IjJKKF3dTvPTP0ZD3jI/HHJa+mbD+YGbwR7FST5boz/UmtMv9ai88XkWX40aKvSiz/g3vWQuv96
	EiJ/Ay3eGGoYz2Aa2CySGu+HF6yQXKJlzhLK3HUj195YiPAT+34v2JvkFOFwA4EeOmDJLNs4aH8
	/VeMsXWn/n84bY=
X-Received: by 2002:a05:600c:3f0c:b0:485:3a27:a961 with SMTP id 5b1f17b1804b1-4854ad770aemr95732335e9.0.1773306532342;
        Thu, 12 Mar 2026 02:08:52 -0700 (PDT)
Message-ID: <3caf8256-971f-42a5-95a8-30c02c64775c@suse.com>
Date: Thu, 12 Mar 2026 10:08:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tests/pdx: allow more tests on 32bit build
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20260312084638.53360-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: <20260312084638.53360-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.03.2026 09:46, Roger Pau Monne wrote:
> The limitation of which tests can be build on 32bit is too strict.  Move
> some tests out of the 64bit explicit region, as they can also be built on
> 32bits.
> 
> Fixes: cb50e4033717 ("test/pdx: add PDX compression unit tests")
> Reported-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 09:39:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 09:39:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251868.1548702 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0cW0-0002bs-AN; Thu, 12 Mar 2026 09:39:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251868.1548702; Thu, 12 Mar 2026 09: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 1w0cW0-0002bl-7T; Thu, 12 Mar 2026 09:39:36 +0000
Received: by outflank-mailman (input) for mailman id 1251868;
 Thu, 12 Mar 2026 09: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=gOdu=BM=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1w0cVy-0002bV-9E
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 09:39:34 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5f96c4e9-1df7-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 10:39:32 +0100 (CET)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by VI0PR03MB11417.eurprd03.prod.outlook.com
 (2603:10a6:800:33f::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.22; Thu, 12 Mar
 2026 09:39:29 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::4d2f:ff40:d0ba:e581]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::4d2f:ff40:d0ba:e581%5]) with mapi id 15.20.9700.013; Thu, 12 Mar 2026
 09:39: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: 5f96c4e9-1df7-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qbkA9KjVziARf69ofAqkwQiX3ZbRjhzNi67pgsBQJrjkq8TS4bjqyCcO47/GefOYv0pncXHK/W+Gi438OodLA+i3d5lQlzB6lbTZ5drGaa0grPCY7cv10d9ar05lCy05Z6rFls23B+JuKkVbLyglKFsjbZnErd5bdu1i15PBp3hKz61vykdhcYVzoxMEu6jJThoD9+8h8s2m1CBBkIXt24vR51Gqsxo/Y4qQGtxTP9HL/ofWvSrDBtzS7rri8tD+ToixJYLhKk1hpKTtzFJaHfo6f/FKRL+NYCzCOpvn7hxbno2DsW/9D3W2lrWnbP9SrxaTAc63EtALEYQrZ+1XGQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9h1bJ1/tUn7joR6dHEgZAHXjj+b/8RL4Td4YS9QK0Eg=;
 b=NV2xCkIqILWbjr2ivSLTwC7mf6AZxsU1KPk+3/0foci24hniPfrmKwK8797SXmq23o+lYh+H4SY9zO5X46qA903MjPnYeJ4M8PDRH+GiimYaYGnr3Sl/8tEw2mK4CYGX8BXnkdDnALw/tmypgdbI22H7PcLlODi9XOCdxRg2zNLLXXgnGIVuzXVN45peesS5i7Ye9FW2HM2NxZ69qOAedwcEhD0lt02FN8Pc4H1aaOjjnaWal5eBeCru/4fWjelMpnYli8ib+A2B/5wCN3dZyw7lV6JXE9Aiuf4fLICHDZZKWN+7AybfqOjLll1mgk42sOEbvLnGBgrKvf0f8EskIg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9h1bJ1/tUn7joR6dHEgZAHXjj+b/8RL4Td4YS9QK0Eg=;
 b=NGL0LPiL4jjW7SIqtuYEAfWGf02GPkDBd9APSvBFTMNtF/QiTjcJqcNIC2HwZCy0kQvmtOh96yYi2NuUyaEhZKPwZWEzqdZoGXZ/aSqM/Lfo9X5Jy/9UEiNl2FwP7krwM9jkFuXeKxG2sj3CgyuNqgqCiMfXK+iN8b5wshBSrbPlNZgsYg1aNE3bVtV+4+WAXZpCzoCJPV9+4wIhwGF3/J9wqcwle1Q9rDlBG4ZdYECy864VYtJSmiTISws7+5bH0uxPZOmb3gyDBO3QPNalYkNv+rYR4NM7vJk++aVkzks8o4J3m3pfkgHgF9ySlg73FQSaottxk3Ay5Kbpe/zC+A==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>, Connor Davis
	<connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>, Juergen Gross
	<jgross@suse.com>
Subject: [PATCH v6 0/5] Implement CPU hotplug on Arm 
Thread-Topic: [PATCH v6 0/5] Implement CPU hotplug on Arm 
Thread-Index: AQHcsgQf1/22PGqzSUaxhkScWwfAyw==
Date: Thu, 12 Mar 2026 09:39:29 +0000
Message-ID: <cover.1773307749.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB10110:EE_|VI0PR03MB11417:EE_
x-ms-office365-filtering-correlation-id: d6c1536e-738b-49ac-a853-08de801b41f3
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|7416014|376014|38070700021|18002099003|56012099003;
x-microsoft-antispam-message-info:
 VK7j1nq10PonOFXwy81wZhiJBf37hOaXWIYicX+Sji8Cep8AKVdwM1Gu1Xo75XtaG7ZLcZtAF0R1NU6PoP435YVMX0LDXvBV1mpq/+ur0Xrytzg651RT5+51KTXyYEZ1vdoX0CszN7DbEP1Uz1tQF44U1UpCvYYC1v2JzIbxfRUC/F18b2qM2NgNF+B0XYWWpjM2HmaPo0z/znrPid1qW1BfiW4e4WxpRl818cZ+fHU4Jkm2yuWmZUASA8M+7xGSaSUYIRVOrj2MhUsFceAKT228dDDBLAdqFgNE8ynLWOLlHcmZtJE0x8L68Eo/1fzZrRy+TeM1l6FUudkLILITT4jbFoALBQJNnuhSShjvgbHfBDMM3OtFf/645FAyTcIDIugiYOkG0QSeOUBBWhs5aaH7d/ryBYRjnvqxNq8AETs2Vg8TEqFNYNkdyMTYIwHlxQKiNqGQrxwR3bcaQ0f2eUeGyRGDZl0n1d4JebGc2IemFitpxDzrDqjSfaJkQlm04h1X+PNlorayovsi8JPjDHzQpUp+GA6MQFIhewKREYnj2snfRNW/7SNOwE2lEL+5mU3/agXJwjnA9hZVHDttP6j+YFHvC3x+VveRlyDg6nqIRUBTclStqTxkycQcetHcJHu0JSV+Tedsrq9QEIiOBJXdOA9vgjxebPsqZUHCMXjJ6uZ1G9fis7puC7Y4KJxr2ze1alPZu5NMntZ3s99lRHMX35xjytzE9YhAyozYHuRtMuM2ywbR42V8NOm8bI4FQb8rrvOufLTcH4Y1rMQn0OKToCeFB3m+zReDQIG097c=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(38070700021)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?5oa7z1DZpUYtoPf2GcsI4aUfPROHr8uTjNkH7mrlms7ED56mQV92eDai/Z?=
 =?iso-8859-1?Q?BkdwDTHuIUBVK6m6bwfJi182Jbfmuzgn0P7WzuJglG+FjN4e7nsUT0GFLe?=
 =?iso-8859-1?Q?hVqlFAEc+aDtzzKVQsT549Sc3RcMa55JqxyY1fqIsc4OwlCkFQoGaAwCqR?=
 =?iso-8859-1?Q?0D6Ix76vsgL05pqvOF7sSMtrVaM4q5bzDzQX/vSLwbSwbtCO25J1cdWOBm?=
 =?iso-8859-1?Q?9Xm5UroY4IqS/WCAfB6m4L/8xqQ8hjKeVq9766Pftu10blI1wUp2g1i4cK?=
 =?iso-8859-1?Q?EhZGbKhbBE7TGYKEZPNY9PhizLrB1SjAxJXtNiyu/ryrYTohCC1G/gaZCK?=
 =?iso-8859-1?Q?OMZubm5rbf9LpHxnQrUb4/GBFQFQY+ZfF+s8uQkl5LaJ9btmJeXFS9rmqY?=
 =?iso-8859-1?Q?9Avmp5mRFk083w3IbDJjSyOYXsFST2M2dy2DIORhvZyrCFT5R2s6NlBJWU?=
 =?iso-8859-1?Q?JEZC3JEMgvFtc2VHjCkfK9AM6hbtH6g8H2VbOF1/CNubkq6hfx8D/k30Yr?=
 =?iso-8859-1?Q?hSu7grgpFqSTJvoA4CSXOzUvhYlL2RSXNAIw/XNuHdXUXOn+F+h0o7BAAi?=
 =?iso-8859-1?Q?7KL5fmMTZV+otUWBtW4VCfB1y7/m7vVltY0z2Dd2/vicVkVsqcOvM7LSbr?=
 =?iso-8859-1?Q?f+E3AqCdxzWwu/sQoHSg3tslX6OqbhGOPTUHWuJQebsn2RNTZNct43g5i/?=
 =?iso-8859-1?Q?p+3ThCbwNf/iVlS5ft47dCX8m//ijExu8ij6oHnd/UNoN8S/bc5ypQtMBR?=
 =?iso-8859-1?Q?K0IvNbQO3XBDD1Aq101oyFRmMbSBAv+7PyO0LaJ2ILc0PNDO5Cop0x4i2p?=
 =?iso-8859-1?Q?y0W1Z//aMRPNJjxth4kbPiCdkUC7XhV92tiIfw5XIKILWMt5q0RkWGp96I?=
 =?iso-8859-1?Q?aw94dtVTuJFG34ofFXmRZTJl6cQlI2BsAPLfdd4efQ5j/9kgBGiOUZWXou?=
 =?iso-8859-1?Q?NSI58Cl1/hoH5NDAfYizp3G4MaDb13xRFD5G+s5Emyde/kmaikS0o4RIzA?=
 =?iso-8859-1?Q?nOgFu3I+UUxcy3pbbObqh9b7vmnzni8z9/h4m11JMV/ZaSBVp0EPhDj3/K?=
 =?iso-8859-1?Q?Q4Z3wM0J2F+cGyuLfo0O5E3IBuuDKyiz9IpqoAu3Y1YsV20k41ls7janDa?=
 =?iso-8859-1?Q?49XCT1grqdC8xLiJZlMRRDGQw1E3bmofFGmWDDyNgbFsmjx9E+jGXOrzD5?=
 =?iso-8859-1?Q?s+c2/p2JfiexiblDO2q+oIn+eaoDNIGek4rZs33CbtlLHuh0/+HLCx1+h/?=
 =?iso-8859-1?Q?lGBSXcCS0N0vY1T7cMvTcFay4O9LVwu7AB1+rIISwOTnVwWUhsigm0eg8E?=
 =?iso-8859-1?Q?0EIoXcl4s0c4UFGP0ChPByM4IWGK8P1lXkV7jOv0VUeGwAFor4IkYfFxTM?=
 =?iso-8859-1?Q?1JF8i36/OGvFKGPAFKUDL5vZWKx+FqSoaOi2YiBwxvh+eFg+D/ceOG1DOu?=
 =?iso-8859-1?Q?/L1p8agwXLgmJrQEmAhW/pJ7rPwRD14NMh7fpEEFoGGw3hyNH2ZlqWu/WP?=
 =?iso-8859-1?Q?6CnXCI4mQClK1QLYBLlffCYEQzlCQS8uKBaQ752MkYvS9zQ8/WaWnMTaWK?=
 =?iso-8859-1?Q?4yHDtnTZ1PLKZydqxttiAIbtNER+E5Tu66ZXK3yFmFAGV9fCJI0h3ko3fq?=
 =?iso-8859-1?Q?h/if12WyuvQ5pnwZNM7FZ116DCOgQrobb0rFMpcXbxv5tWrOj6whWPjoo2?=
 =?iso-8859-1?Q?uzJBarbqgvrg3rIxOF4XVE8DCHmucivNxLGUkOF4cBF6A36cDEVaXKI4GQ?=
 =?iso-8859-1?Q?r016eTQA8cqzOXhTxG9agsKYR1wIuS2Fi2yB9aZE9WvPx+rSrPvrloRSnt?=
 =?iso-8859-1?Q?WNSAxgVcfdRh/+BaNY85aYJDKKnWgto=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d6c1536e-738b-49ac-a853-08de801b41f3
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Mar 2026 09:39:29.2000
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: bypMesatOo5iUQxHPzeat9R+xoP3+7zEzqdUanOLZhGBY8wI5De3VoUOjWH0vaO6zLd7ia0jj2xlOwyB14dACA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB11417

This series implements support for CPU hotplug/unplug on Arm. To achieve th=
is,
several things need to be done:

1. XEN_SYSCTL_CPU_HOTPLUG_* calls implemented on Arm64.
2. Enabled building of xen-hptool.
3. Migration of irqs from dying CPUs implemented.

Tested on QEMU.

v5->v6:
* see individual patches

v4->v5:
* drop merged patches
* combine "smp: Move cpu_up/down helpers to common code" with=20
  "arm/sysctl: Implement cpu hotplug ops"
* see individual patches

v3->v4:
* add irq migration patches
* see individual patches

v2->v3:
* add docs

v1->v2:
* see individual patches

Mykyta Poturai (5):
  arm/irq: Keep track of irq affinities
  arm/irq: Migrate IRQs during CPU up/down operations
  arm/sysctl: Implement cpu hotplug ops
  tools: Allow building xen-hptool without CONFIG_MIGRATE
  docs: Document CPU hotplug

 SUPPORT.md                        |  1 +
 docs/misc/cpu-hotplug.txt         | 50 ++++++++++++++++++++++
 tools/libs/guest/Makefile.common  |  2 +-
 tools/misc/Makefile               |  2 +-
 xen/arch/arm/gic-vgic.c           |  2 +
 xen/arch/arm/include/asm/irq.h    |  4 ++
 xen/arch/arm/irq.c                | 69 ++++++++++++++++++++++++++++++-
 xen/arch/arm/smp.c                |  9 ++++
 xen/arch/arm/smpboot.c            |  8 ++++
 xen/arch/arm/vgic.c               | 14 ++++++-
 xen/arch/arm/vgic/vgic-mmio-v2.c  | 11 +++--
 xen/arch/arm/vgic/vgic.c          | 15 +++----
 xen/arch/ppc/stubs.c              |  4 ++
 xen/arch/riscv/stubs.c            |  5 +++
 xen/arch/x86/include/asm/smp.h    |  3 --
 xen/arch/x86/platform_hypercall.c | 12 ++++++
 xen/arch/x86/smp.c                | 33 ++-------------
 xen/arch/x86/sysctl.c             | 21 ++++++----
 xen/common/Kconfig                |  6 +++
 xen/common/smp.c                  | 35 ++++++++++++++++
 xen/common/sysctl.c               | 46 +++++++++++++++++++++
 xen/include/xen/smp.h             |  4 ++
 xen/xsm/flask/hooks.c             |  2 +-
 23 files changed, 296 insertions(+), 62 deletions(-)
 create mode 100644 docs/misc/cpu-hotplug.txt

--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 09:39:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 09:39:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251871.1548729 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0cW2-0003FT-7i; Thu, 12 Mar 2026 09:39:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251871.1548729; Thu, 12 Mar 2026 09: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 1w0cW2-0003FM-51; Thu, 12 Mar 2026 09:39:38 +0000
Received: by outflank-mailman (input) for mailman id 1251871;
 Thu, 12 Mar 2026 09:39:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gOdu=BM=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1w0cW0-0002bV-ME
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 09:39:36 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6108d8fb-1df7-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 10:39:34 +0100 (CET)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by VI0PR03MB11417.eurprd03.prod.outlook.com
 (2603:10a6:800:33f::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.22; Thu, 12 Mar
 2026 09:39:31 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::4d2f:ff40:d0ba:e581]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::4d2f:ff40:d0ba:e581%5]) with mapi id 15.20.9700.013; Thu, 12 Mar 2026
 09:39: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: 6108d8fb-1df7-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UbO9QMvNEXNJbjC5zad+7U4SMLE9fXhIhaxFLr6BlLhT6/wp8YoSIc3H0I8J8HWukrrwGFgg4ehllq8kjBkBg+NdGO7S+h3G/vaboiuVlyB+6HRaRQJaH85044ZHsLHQW5lzW+KtOwgqPTEhbsbJIa7W890VT0PpJW2tYXsQsUvoNAmfmOGWhj9v11g+OAb5wnuz52bTlPCcCl6SA5+IvKXpT8PipCSgCt97DVhILG7/ZlInA7jmkChR/HgI/gVkENxauUDiDYbuXQYf4EutkpKHjQyGxiJGYtRtRy6n7d/OLOmInI6cwkOyb8/FGS7whsHBXHtTlklVetDPVCkBEw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yuWtjPWNU9VyXa2UEJJGgI+NAzHMcQ+u6cR6OJhOvo4=;
 b=sVTmUMAVBwnKvuqyCMsed4Z+WMQKa1Qw7Ln/ew4NxhG+Ny1Zdx38Ms8AAptQI04FAcTZBHrhfK6skHIcig7lNW5UlQUpjxnokIwP/WPaiV2vcw+C/OuYbxn2oUKGk0Yumy2l9b2IzmwtzDGLOo3zxpNpIIwgk8V22lfmmSDAyrQqhjRyBi1XIzbr89adM3YR9PVfrwKvuXud5LWizeMwVV/2TFlMEdudavB50VIUOHbdA8w441/bEvx9uTj7gNrVRguNqVqW4ufrg4iEY1hmhF0ENkeCxCEAHvklcM4DHUgnSVPJ2pWPV+ueC8+s8Bg6htkfA+58TkCs9o2ISI/2MA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yuWtjPWNU9VyXa2UEJJGgI+NAzHMcQ+u6cR6OJhOvo4=;
 b=N3p1Ci6SYsi+Wq1YIzaR1PbjbJKNNL8uSBFkmvgKslpLtHtub6D1kqCEydb5L6ooyi+UhnJKri7LkTUWDlFaJCoHnj6O+8R1C2OP+e5omeV5MgFAzHADdkqR4PIY43R1/apyHtTSLVJEccMUGe/CFocgX7zLUXdcA/673DpUYxr6MBxjiZ/WoMaNQcpvJyuOr+6zdCTzsxiBMZYLNuRkwOoXyReCK/e9+z96eZBlXwv/D7GGVGge71k39UyTypKLbmrjLDSK4VoOE+qUB577VYjcF+7Ce4rtJfcyWpFXxbzcoBbi5KD/b4RZCC2t0S1mAVgU/UHrvtTZIP5leaz4gA==
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 v6 4/5] tools: Allow building xen-hptool without
 CONFIG_MIGRATE
Thread-Topic: [PATCH v6 4/5] tools: Allow building xen-hptool without
 CONFIG_MIGRATE
Thread-Index: AQHcsgQg0i4vH7ZL6U6laBW0/JcXiQ==
Date: Thu, 12 Mar 2026 09:39:31 +0000
Message-ID:
 <7447a69b84ca9d737b04efca326f2bb884065f17.1773307749.git.mykyta_poturai@epam.com>
References: <cover.1773307749.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1773307749.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB10110:EE_|VI0PR03MB11417:EE_
x-ms-office365-filtering-correlation-id: 51a24de6-53bd-40a2-ae0f-08de801b4325
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|38070700021|18002099003|22082099003|56012099003;
x-microsoft-antispam-message-info:
 v6h0aMpisgspyyncuiiN8bFUE+hbKmFm0H1QqFs0qnIL0t7xO9VsTu7GwmFlUbN2FNd233SkyrE2doPRvJJtIYn9skk4XGdIZhc3cErWlsZZNmT/MHiE8sF0zO+XwG9S7plE8qVSME93if1Zhlqhzzecu689gEgNF/MHZf7ZE55zmHhJqG4eJpg2rlsdi6buEjyXYW9TUAwtRGRIPUv2uNV1rpKCnXL4tjHALv+Ytj3OIWDVEa6L7/W22XDOP79iijg66a3/uqFzZBJenUWLuQLBxD0gb3f9yCuruoqjuA4qoVuHQpVIG8s0kJyMf6f3JATmYuHPKRruHM1X4ssHiJ4DOIiHV3NnOxkbj6Rm/bvXNHPRqQtkNM4GBGsIuw5NhKOXkI0fNm99WzZ7f3l2VyGHMTYFTry85TXwA61/qmOpaHVxr6cCbvhL1J3IsGspkar1zPc2Jgy/Xr4mdNNuVUi3WO/qV6FU0mWltSnkziyROZvgyvz7aOL0Ta2bVBIowwV7MdPHxDV1YVlaMBdHZgUXsZQF3L+yjw069mPgz7UnFH4OiXnBi/yX0e1V4RawROrgxyQDW1o43JAOkxBqJ8GXVO6PPKrNhKPHCu5UZTZj1KVnU0+BnA1N1MThz99XZWWenUBZQrElteLixDBgOFArPNVAa3n13gBzrMX2ewtXeDsniSIBMCV7NR7iZsM4DaSIH+R/CTgpWSnyMd96lHQY4LBMXALLPisO7ldJbo+AWvoGw0KfxrOCD6EUZUU9g0k+7jlynLxyOjCdnpC6zjIxfdwt2zKJjR37OwUmLvU=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?A/Zh90b8syS4YlfjqxfFtYp1gBV9F23r6DnkixHCTILPJp8Ys9hda1zmaY?=
 =?iso-8859-1?Q?SHpjPsVDYsVVbCsrH8MnmpFx5oa4bqd5gmd0NigGXY7OYBJE0mEKG4VQJG?=
 =?iso-8859-1?Q?AYaHTrJbvEMIBsm8QmHnKz9QGxkjIZHtDz/+vALft7USnqsX9eUdrm5syH?=
 =?iso-8859-1?Q?DJiKCPjmlg33OKO10w9rLVqwQ94g3XxPTfAMp88RcpbpE8F1+j+2mIP1aH?=
 =?iso-8859-1?Q?u6QYwK/2Fv+FjkDiwW3axg1z58arhcK3iVmET+si02U8vil9hQf1+ZkiPY?=
 =?iso-8859-1?Q?jkhShIhD0TFy1iQeTFBtUi/UefVg3rKRp/RtbdcB4QCwaqLlrxH5S/aKvF?=
 =?iso-8859-1?Q?nOQ3aDTCzlO3w+mcCKpHnpdWL+be6C7VJxOFq6EIk1U41d6Kz8MFBu/zBm?=
 =?iso-8859-1?Q?5ExPboaY2G5nQqtLpgadii+7Y5ZgsJ8KVFx515Kyfv2jwIFE22cpKs7HSt?=
 =?iso-8859-1?Q?Xk7n7hx7qwn1k7mKe4v9Gfi0F23DiD2PBc8jD5srJSMIJMY7MQ2m/s3TCH?=
 =?iso-8859-1?Q?98u7UB+aFOt/gwJg/eyMuL+LrX4FrguTDeo50QUpCjTp0q4fCkUyyExqbm?=
 =?iso-8859-1?Q?+v4hzMN5dSTCP6bQXY04UOqaJSFAVMasCD/gGKxCRadkffQgvsJRQ21KRm?=
 =?iso-8859-1?Q?hamTNlnkT1dKpO28OQ3jq+JiMRsL4F9wYksDAmChrBS9TYCaKj1tbNoR5U?=
 =?iso-8859-1?Q?ipmMsw7BB4Paejb4gPAiCf11WAikhHM5ooUpviMDUKaQVRghumXVfbSBXr?=
 =?iso-8859-1?Q?lv7Vud3mzSxOSaEtpglEaOd+gbBAKK/uL3/LARXmCq0RstBbu+l4odzG1A?=
 =?iso-8859-1?Q?pNOS+kOBdj+PYSslTG9IkDOhbtCuYd1iKCT/SlPR8WFGQRKucZdX0Prvjt?=
 =?iso-8859-1?Q?yio2QqIv/yDMNn3PNAwma4TQz58rXR3dExwcTemKr8lu+SMJYgjleci1m6?=
 =?iso-8859-1?Q?dVe+WpKGPhL2FxKZywEOcBniFWqTsaMCirRMo0al4Vz6Px8+W1oMgHOdb0?=
 =?iso-8859-1?Q?gdt1aV2oY9VHxKYk4CyS3CCLHOvrXhFnnAp7NIC93dOZKgrR5KymKLzQ0L?=
 =?iso-8859-1?Q?4nUVw7ze7MHv1u05xzV+1UC9JkmPe50rB+Gw07rdzJ0sfjzVD+AzUgrOmQ?=
 =?iso-8859-1?Q?y3LpRsyMWFEtY9+4y10zfzztafkQ+Bp4Q8H7MtuP8aElJV+YbKJmRws4vO?=
 =?iso-8859-1?Q?zDecNkectBD8dzUrwD7aSONBlcMHDl0JtkDLuPmvAv4/REMIiKkBf/SmaA?=
 =?iso-8859-1?Q?1r/XH+I9EpHOIlfhG9uQzTX8GyolEbPlPICcGV+kb+0fcy+hgXRZgG6evv?=
 =?iso-8859-1?Q?NULIugStipSM196hjVn+PsueHB2Aby0/F9GOP6c23/279D/oTJM3Xj1DOJ?=
 =?iso-8859-1?Q?vYL6CGy6RvP7eL02o01s01XyGhS1uZldFT8gIhsQUZq6d1FxlYQX3/brYj?=
 =?iso-8859-1?Q?SVAkDwW4u3eCiNu3nM9IL6HkknIDl9vhsQYYBnOOPSg2rXUUzxL+qyDWOv?=
 =?iso-8859-1?Q?YBkZsL3h+u0zZh4JnvEb6wXCp2SIbsP5NRSDckcTBqqWyvsms3hEyreGcc?=
 =?iso-8859-1?Q?cztCB1vxJcFV/Du9NhZ5T72Gt7A1IoBhljaBA2X9loVCgLt18KJgcwtJsF?=
 =?iso-8859-1?Q?9lrC9GyekPhDKZthP9FwXkk+gKnemVdizBkE+Kexdx2uQ2tJkajUHB2bQ4?=
 =?iso-8859-1?Q?0QmK7pqbznRfz24q6ZQiTivFQQSAaWJC/QLUANxBT8+jmbWTv90oM0HyDN?=
 =?iso-8859-1?Q?pBHzEcBMa0QrzwTynGF3MCnHzBulDbzLWnPSJqEqUUkZ4NLhi/ecKgmonF?=
 =?iso-8859-1?Q?FxJnE18ERjsR1YxJJrtzGVrOYZbj5hw=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 51a24de6-53bd-40a2-ae0f-08de801b4325
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Mar 2026 09:39:31.1478
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: kX5h9faaVDjX2+TkxQVP4pcsYBY+ndefZy3PgP/cO6owhuoBv2CGuPDjZmo11+qiLGyKYkK4Iu2wxvNtRNxu7Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB11417

With CPU hotplug sysctls implemented on Arm it becomes useful to have a
tool for calling them.

According to the commit history it seems that putting hptool under
config MIGRATE was a measure to fix IA64 build. As IA64 is no longer
supported it can now be brought back. So build it unconditionally.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---

v5->v6:
* don't change order in Makefile

v4->v5:
* make hptool always build

v3->v4:
* no changes

v2->v3:
* no changes

v1->v2:
* switch to configure from legacy config
---
 tools/libs/guest/Makefile.common | 2 +-
 tools/misc/Makefile              | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/libs/guest/Makefile.common b/tools/libs/guest/Makefile.c=
ommon
index b928a4a246..03dfcee7fa 100644
--- a/tools/libs/guest/Makefile.common
+++ b/tools/libs/guest/Makefile.common
@@ -7,6 +7,7 @@ OBJS-y +=3D xg_private.o
 OBJS-y +=3D xg_domain.o
 OBJS-y +=3D xg_suspend.o
 OBJS-y +=3D xg_resume.o
+OBJS-y +=3D xg_offline_page.o
 ifeq ($(CONFIG_MIGRATE),y)
 OBJS-y +=3D xg_sr_common.o
 OBJS-$(CONFIG_X86) +=3D xg_sr_common_x86.o
@@ -17,7 +18,6 @@ OBJS-$(CONFIG_X86) +=3D xg_sr_save_x86_pv.o
 OBJS-$(CONFIG_X86) +=3D xg_sr_save_x86_hvm.o
 OBJS-y +=3D xg_sr_restore.o
 OBJS-y +=3D xg_sr_save.o
-OBJS-y +=3D xg_offline_page.o
 else
 OBJS-y +=3D xg_nomigrate.o
 endif
diff --git a/tools/misc/Makefile b/tools/misc/Makefile
index 6ee783f43e..5a206133f7 100644
--- a/tools/misc/Makefile
+++ b/tools/misc/Makefile
@@ -16,7 +16,7 @@ INSTALL_BIN                    +=3D xencov_split
 INSTALL_BIN +=3D $(INSTALL_BIN-y)
=20
 # Everything to be installed in regular sbin/
-INSTALL_SBIN-$(CONFIG_MIGRATE) +=3D xen-hptool
+INSTALL_SBIN                   +=3D xen-hptool
 INSTALL_SBIN-$(CONFIG_X86)     +=3D xen-hvmcrash
 INSTALL_SBIN-$(CONFIG_X86)     +=3D xen-hvmctx
 INSTALL_SBIN-$(CONFIG_X86)     +=3D xen-lowmemd
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 09:39:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 09:39:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251870.1548712 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0cW0-0002nF-Tc; Thu, 12 Mar 2026 09:39:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251870.1548712; Thu, 12 Mar 2026 09: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 1w0cW0-0002mP-QN; Thu, 12 Mar 2026 09:39:36 +0000
Received: by outflank-mailman (input) for mailman id 1251870;
 Thu, 12 Mar 2026 09:39: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=gOdu=BM=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1w0cVz-0002bV-Ly
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 09:39:35 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 60b2235c-1df7-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 10:39:34 +0100 (CET)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by VI0PR03MB11417.eurprd03.prod.outlook.com
 (2603:10a6:800:33f::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.22; Thu, 12 Mar
 2026 09:39:30 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::4d2f:ff40:d0ba:e581]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::4d2f:ff40:d0ba:e581%5]) with mapi id 15.20.9700.013; Thu, 12 Mar 2026
 09:39: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: 60b2235c-1df7-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mcyGktX6VvhueymwO+cddSSUmfwgEk0lJakSCdPKRZNUoiYS0A9rIGA1bkOEvaKqnuMiv8qumNtav/oPWKsan6bFTv5Q7KcACrrm0QCP4+R/pmqLJ1OFvx4yfbqwTxw2tZQo50DAWGvQR+QLA6YoS2gyqHE45AxZ6BYORl4FjHfnpUPy0mEqh0/Nb9d4HL9MR/4mvu8GbNA/2GjeFfODbGGEtXUgooD2nZ31swT0UI6qSS9PHVqFirXuUm7eJdASzpypnriRhtZecw74WUkiAqsqrFM1TwgXoNWELLnZKlN5pdQ5vVrAV7C6iuQKVZZjVOGK+9rzVf8uaX3CS2lNlQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KMN7VI+QZDaKn6WMXOoMrSaujSAxE6taeos15THt+X4=;
 b=hzapEPCIvEgu1d0gtUZcUlaEHzjkE+3iChlq2yagn2HdyHDmzGqlugBAG9lTHlKjIHsqQ8k8GxxpRWgrokTWSjk0mzWME1ezZDROjSqFZDqiCnNE3C/70SX73Rod6fhswY1JFirWgRg4ehIDMX1/MUGZtVmHnod5vhlRG4V3Dtbk1JimbXypeO/7nqlOJAqEjoUOHLWRxpmpBCn7clmYZ56ij/N3dVkAsMPAr6uXirqDa9spSr6VwnvFS8rcWm1yQj5pAwgDVodzsXiRRJuB32DCi+jhzIZRgtbkGJU4FJQFr5k/IwLeWKs8xd7EDawnbZSz3Sp8WW7MMOwq9l41Hg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KMN7VI+QZDaKn6WMXOoMrSaujSAxE6taeos15THt+X4=;
 b=ETkDP465SoW93Rn6P99VAk6uz+oYu7SpccqxyaSa3HztVsZC0UMWtzZ2bFXE9oYACQbuH8ZUF/9GBYw/r/9qqWiAlvJW3b77h245XYrdSpw3R66NcO9OPLiwCiAS5xazh9B1FOlqmMyCKSvRPt72TKPOnQUVD6wVSi92+DXRPJ/H/qxVtbnRiw8mAXGrdUKLcWZp+ls8sL+DtBMdcstWkLurRpFAjlprYrYOoNQZVD5dms3tt24/hYXfVgIlOFA84k74t/Ag5PKR/fWYQKBImeyRQUizXN0/5tY1akDUQmIscQYn32EB0ONPI46H87QmNMClRSryC/aFaTzgmAbTZQ==
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 v6 2/5] arm/irq: Migrate IRQs during CPU up/down operations
Thread-Topic: [PATCH v6 2/5] arm/irq: Migrate IRQs during CPU up/down
 operations
Thread-Index: AQHcsgQg4Qmkqem0lEKqev7qUPQ9gg==
Date: Thu, 12 Mar 2026 09:39:30 +0000
Message-ID:
 <4e35d2a56d9ab1497dd1a706b80695a38ee90f60.1773307749.git.mykyta_poturai@epam.com>
References: <cover.1773307749.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1773307749.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB10110:EE_|VI0PR03MB11417:EE_
x-ms-office365-filtering-correlation-id: 179761ec-2de6-4ec2-6ae1-08de801b4298
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|38070700021|18002099003|22082099003|56012099003;
x-microsoft-antispam-message-info:
 yLN/PvqWqtClp1lo++54VxeMDMYeJ661qIisAaZ977KNWvrFLqcQzBrh1VUdByDQQDO1paGBEPbMbTP9HhHy3n9A2Srs6bozEJmRYpii16ty569uESHDUdQ1x1Yw8SYpcdh8ZXt0gd34likUqJERvh26NBToelaw8Z/ZH2ISBbwwUgmlNK0h/PKsoI8HCu6GgQAGqdheqauTvxEUjAc14mWnKcJ1vePsv3dC7aUw0rcDXPSTQj2bwBar3kKDqDGpz+XRwhTw54uUpxD+r0fBiyRszZU6IM7f0c0HekuZfygm6Tu7JcoSkYMEtMXEx/lhBf8Z+IM+zGYwrrW4OZlAcNQifclOrsMOkl49NzaEh4HKBxef2mGQyhw+KS1lrzCUl++PieCaMp70YzX0W0KFAMtSp2tpRFVogcpPB6ll2WfoHQzpdi+S61RLPXF61HR2eBbx//ZKezcabmXC2KuUhb/ja9P+VqCUEsDLupZKYOh1gjCspwDfmWLFZU8tCZII0N2GWMSXK5b81DTKGUucPr+3lVtO4xQmEsQIMBPBEgDo5SpDDFvgk4cL7Iehd5uNJ+2IlikPK3jgEkSgNTA/MO7aYpRA9WIBxy+yexIdJvnxyRjlUfu5Qukv4zYpQRNU8B7cNphvXID+yj2ydSQb4KxOQkbZCMYHcjnxh+bKUwz6UuilpVJPyA3tcpS746icAcDaf3xC1lnNNFz5/U15+C9RqYjiQEMWjNvzRiEQdvU60A1JqoZmu6/cnJPmbNGWEHOZSpge5RHD6KAuZ8tzFgofW63zCysASfiVrZuYEeY=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?B//bPBrXG6j5wckcZXOtpJTOG2FN5CEdFAb/eA/6IZq/cFMcp63OiHWUu6?=
 =?iso-8859-1?Q?DFf5+TCiYyP+cuTi/UxDorRVfNBrAAvG3aAxnONhUFSd025wnNobHGTVfS?=
 =?iso-8859-1?Q?KhemYT6lqwR2yjQ4+Cpp+XpEOHu6ihsZk5BEUGsnDjzXs1LYR3Ed1Q2vnO?=
 =?iso-8859-1?Q?HX0kIcdgkkNBgou0/ZxnRkC2WJT448FWljZBysBHQB0UsPu6rjfyYQ/Wzs?=
 =?iso-8859-1?Q?PoYxZA9bsHNpsVtTsas5P+8vtNTOpfup0PgDPIho8GT43gX46Awkr2U33R?=
 =?iso-8859-1?Q?KL29qnIzCA4q4qPCsz2eK44037IfzksUXy8vkRi2WAmV239kz/UUEDXKKY?=
 =?iso-8859-1?Q?ZJVadUO6UlnACvWy5J+JST53L9XXAQEPOi2h6k/20Jz8VVMsCMok6U3gjX?=
 =?iso-8859-1?Q?BnL9aaWEglPBkwxuUgLmBs2g9tMZqWX/8LSMnoGxLNJXEFuDIkYM9NCeuP?=
 =?iso-8859-1?Q?u/CUZb/nrG1y4qNxFeXQh5GyhMR+SSWVLRKf7u470W0Kyatsqt7cD/ojRq?=
 =?iso-8859-1?Q?UXy4cwK23lkAdpgGWKHyyjPWvndqCrGJsR/996F6j2zrtd9llFq7OuVZ9b?=
 =?iso-8859-1?Q?6lomDQSf/VwUNoXnFjt7FA3RgXCYvLOOYJ+Yydm8OWBenHo013RoU17b+G?=
 =?iso-8859-1?Q?SBptpvqTRW0zfD5wahwYoSmUcPd98DqGIjCAK1iV2fbuhEpfbq6aXId9mR?=
 =?iso-8859-1?Q?by1W1eWaoKJSvST5qCxS7nBHpb9moX8oRXP84/QKAf+zzrFI/HYZzjlYci?=
 =?iso-8859-1?Q?Ta8wUXOp1AckBGGnWVp+zPUi9TuKGd9eNm6CvEMWxDmUDpwSPbiOFbcRs9?=
 =?iso-8859-1?Q?DOVojTyEJ24K94+32veKObAp+srqTzvAp0hO60oWHr1qFo7eRF7SrsS4de?=
 =?iso-8859-1?Q?D6mK7OMvPLAs0LbFQMpBfpTJo8yAA6fm2sLvYIFzKBuOnP3H9DJ8T/vIBG?=
 =?iso-8859-1?Q?aQc+gx/CZQl5oVPP7bcNB3VfAzaPm00zu0HipSxHgE9fJcZTWODSfiFnMq?=
 =?iso-8859-1?Q?Vloffc5Jpqh2L4VkFrtMeNQO/h4uBXFpvmJFxbqn7qB+wGk5yRKknNxhVC?=
 =?iso-8859-1?Q?Qmn90dGjXGRTgBRZ5A3DGtcSb0TBGbAQ6fjCsEH9VisqcLhg94G3JgB2V9?=
 =?iso-8859-1?Q?AOEoSqB/gVhgBBYxlfvBepZOo+DHPyD5rcXlWyCwpEKv0bFtd06vUbZtFI?=
 =?iso-8859-1?Q?xuYJy8QVnccsy3fX78MishV6xnXhFaLR9Mc8MN3yBikw+M5r6WUlgV2Rdb?=
 =?iso-8859-1?Q?CjKeSX7RzE8qs3HbML62DgoEyCSls57VNUWsNfMWAyzkSvy6SRzQgqcdbB?=
 =?iso-8859-1?Q?ubU/V1GFMYRQxhk77BxEwXh5Ktpc3/oETnm5yd6DD6CWqZOTEQmj28U70F?=
 =?iso-8859-1?Q?HFyEL6YgiIEPHI9kC6NQ6X+5IkjY14GwVkzbd2NfaCeGkF68Hk7QtKlDtR?=
 =?iso-8859-1?Q?wT0k5s/68dJe24oiw7k6MPCJjatlfC1DdrkbKeQhMbyKhtgdvP0xyKdQLA?=
 =?iso-8859-1?Q?KxFQS4wspgHFPBFKzTp8awJcpmYobsZ6uGdgemi83uHOd0ePXajKq0o96C?=
 =?iso-8859-1?Q?eW7XJrKtwRiqRmTyG+zBcmx7V6zTxa1K33O14xN3UOZT/fzyR0L9EKPo98?=
 =?iso-8859-1?Q?k5b4MANXIn3VMqGczS9ajVks0mCUQoSIvmMN/NBUohFNcVXmfgP6wG1cDU?=
 =?iso-8859-1?Q?9yfNndYUPHl9KfTC9X7ambwaVHIIHNxfPRheFASpDjWjEqaWYRgy7c2JhE?=
 =?iso-8859-1?Q?DmMOv5n4Lq/2T8oHva+5LoTi5dK6whTnhpkMGKyw0In1bZtgYTw4ZdIXvh?=
 =?iso-8859-1?Q?NIpEGIKdqcp7yHVQgmJU6ypX4UVZ+hI=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 179761ec-2de6-4ec2-6ae1-08de801b4298
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Mar 2026 09:39:30.2870
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: d58vJETzhF8xgpbPwfvM7cmAUI18UWWhfrRmPusDy2qF7gecrssqPSe28E+km2jBOyuREnHfJ/YjvHqKxkFsQg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB11417

Move IRQs from dying CPU to the online ones when a CPU is getting
offlined. When onlining, rebalance all IRQs in a round-robin fashion.
Guest-bound IRQs are already handled by scheduler in the process of
moving vCPUs to active pCPUs, so we only need to handle IRQs used by Xen
itself.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v5->v6:
* don't do any balancing on boot
* only do balancing when cpu hotplug is enabled

v4->v5:
* handle CPU onlining as well
* more comments
* fix crash when ESPI is disabled
* don't assume CPU 0 is a boot CPU
* use insigned int for irq number
* remove assumption that all irqs a bound to CPU 0 by default from the
  commit message

v3->v4:
* patch introduced
---
 xen/arch/arm/include/asm/irq.h |  4 +++
 xen/arch/arm/irq.c             | 60 ++++++++++++++++++++++++++++++++++
 xen/arch/arm/smpboot.c         |  8 +++++
 3 files changed, 72 insertions(+)

diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/irq.=
h
index 09788dbfeb..a3897ec62d 100644
--- a/xen/arch/arm/include/asm/irq.h
+++ b/xen/arch/arm/include/asm/irq.h
@@ -126,6 +126,10 @@ bool irq_type_set_by_domain(const struct domain *d);
 void irq_end_none(struct irq_desc *irq);
 #define irq_end_none irq_end_none
=20
+#ifdef CONFIG_CPU_HOTPLUG
+void rebalance_irqs(unsigned int from, bool up);
+#endif
+
 #endif /* _ASM_HW_IRQ_H */
 /*
  * Local variables:
diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 7204bc2b68..d428d3118b 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -158,6 +158,60 @@ static int init_local_irq_data(unsigned int cpu)
     return 0;
 }
=20
+#ifdef CONFIG_CPU_HOTPLUG
+static int cpu_next;
+
+static void balance_irq(int irq, unsigned int from, bool up)
+{
+    struct irq_desc *desc =3D irq_to_desc(irq);
+    unsigned long flags;
+
+    ASSERT(!cpumask_empty(&cpu_online_map));
+
+    spin_lock_irqsave(&desc->lock, flags);
+    if ( likely(!desc->action) )
+        goto out;
+
+    if ( likely(test_bit(_IRQ_GUEST, &desc->status) ||
+                test_bit(_IRQ_MOVE_PENDING, &desc->status)) )
+        goto out;
+
+    /*
+     * Setting affinity to a mask of multiple CPUs causes the GIC drivers =
to
+     * select one CPU from that mask. If the dying CPU was included in the=
 IRQ's
+     * affinity mask, we cannot determine exactly which CPU the interrupt =
is
+     * currently routed to, as GIC drivers lack a concrete get_affinity AP=
I. So
+     * to be safe we must reroute it to a new, definitely online, CPU. In =
the
+     * case of CPU going down, we move only the interrupt that could resid=
e on
+     * it. Otherwise, we rearrange all interrupts in a round-robin fashion=
.
+     */
+    if ( !up && !cpumask_test_cpu(from, desc->affinity) )
+        goto out;
+
+    cpu_next =3D cpumask_cycle(cpu_next, &cpu_online_map);
+    irq_set_affinity(desc, cpumask_of(cpu_next));
+
+out:
+    spin_unlock_irqrestore(&desc->lock, flags);
+}
+
+void rebalance_irqs(unsigned int from, bool up)
+{
+    int irq;
+
+    if ( cpumask_empty(&cpu_online_map) )
+        return;
+
+    for ( irq =3D NR_LOCAL_IRQS; irq < NR_IRQS; irq++ )
+        balance_irq(irq, from, up);
+
+#ifdef CONFIG_GICV3_ESPI
+    for ( irq =3D ESPI_BASE_INTID; irq < ESPI_MAX_INTID; irq++ )
+        balance_irq(irq, from, up);
+#endif
+}
+#endif /* CONFIG_CPU_HOTPLUG */
+
 static int cpu_callback(struct notifier_block *nfb, unsigned long action,
                         void *hcpu)
 {
@@ -172,6 +226,12 @@ static int cpu_callback(struct notifier_block *nfb, un=
signed long action,
             printk(XENLOG_ERR "Unable to allocate local IRQ for CPU%u\n",
                    cpu);
         break;
+    case CPU_ONLINE:
+#ifdef CONFIG_CPU_HOTPLUG
+        if ( system_state >=3D SYS_STATE_active )
+            rebalance_irqs(cpu, true);
+#endif
+        break;
     }
=20
     return notifier_from_errno(rc);
diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
index 7f3cfa812e..f17e88e678 100644
--- a/xen/arch/arm/smpboot.c
+++ b/xen/arch/arm/smpboot.c
@@ -425,6 +425,14 @@ void __cpu_disable(void)
=20
     smp_mb();
=20
+    /*
+     * Now that the interrupts are cleared and the CPU marked as offline,
+     * move interrupts out of it
+     */
+#ifdef CONFIG_CPU_HOTPLUG
+    rebalance_irqs(cpu, false);
+#endif
+
     /* 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 Thu Mar 12 09:39:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 09:39:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251869.1548706 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0cW0-0002ez-I0; Thu, 12 Mar 2026 09:39:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251869.1548706; Thu, 12 Mar 2026 09: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 1w0cW0-0002eo-E2; Thu, 12 Mar 2026 09:39:36 +0000
Received: by outflank-mailman (input) for mailman id 1251869;
 Thu, 12 Mar 2026 09: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=gOdu=BM=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1w0cVy-0002bV-Lg
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 09:39:34 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 60571d06-1df7-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 10:39:33 +0100 (CET)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by VI0PR03MB11417.eurprd03.prod.outlook.com
 (2603:10a6:800:33f::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.22; Thu, 12 Mar
 2026 09:39:29 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::4d2f:ff40:d0ba:e581]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::4d2f:ff40:d0ba:e581%5]) with mapi id 15.20.9700.013; Thu, 12 Mar 2026
 09:39: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: 60571d06-1df7-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AybG1Qz+w9ZnIsfc2qqHjkhrDTMkXuct+b/rVdY7tbAUCEqie1XWxPAkLCFF9N1Yvzs0pey9COdI1XafvtDQI5+PusL8syD5neifq+V4T1LYyEY73pjGC8SdFR919ThQUyXQzWXCdMyPiOrcDQxsVRMhisJTUgDqyEfGv4rhSU+c7bPLOVcUjJIVjfFjBhZ1G7R2ofkoFO0ibPZuFe79CRlqc1XAcFLPqg0hsCND65Bvlfd8iyw5h69nqFlOtAltZIR+4N+sN18BA4X+au2MuKtefIYfAvxtGNg0E7qqwJw4BOdxplb+7RUer6HsMOEz12Gjkt1AE/aZw5Rsqe90aA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=aLI6IwIK+VlXbgQ3Sjr7x5ljFFWsn3YcrGhmOMX1iXY=;
 b=S5WFk69Xg1KHZgCLcaUg+OFsKEu/TpzSXSsw9tQhuItrV9Fw8Wn+zV5MOBA50EDpN90yu/lnNy5S6pg7EfHG4XhJO9Af+svS8X+poMM6Cukb8k/ngXkSMAj9QB2cvzp5WGcxH9/5ZT05WAe31b/5bV56vi8LCdMJ9PWaAwPWvpFRyXq7V0bgnszLmjp0YbGWXbShdRWzYlICXwVQrA2tPcUUB5xaqXZDcMoHg2rRUAG6FzNOZgEwa0JRhMnAQjzlMlj+T85LgLgDgTIOGyiJM157G1xVOCPvPtbVbtLVwye4nQNHMPmDCSd24OxsVGFnY0XDGXEQ7O3ApyWwLYc5jQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=aLI6IwIK+VlXbgQ3Sjr7x5ljFFWsn3YcrGhmOMX1iXY=;
 b=OoeKr+0A/yFO5Gv7Y4I56Rdanm8ulUlbe+DxbyUL878Eq04T5JrKx2YXqyp+1sNBRanogLdG5OutuwVxcZ6JpMzSa/KIEeOYxpb0IyUHRxw/FNMnOAxW3rMZLkYzsf9+pilaE3HiWF5iYMh9Er/f8f2IaBojXTOcB/4jsK72PZCCde9EOI4wPJTsnrkTrw07H0jIwDhQxlN8URAj24h1tKgOG4fdlZCYONphQOwMpZbAK/cuobmWz4IXRU/+mTN4mgMaw5mpXUmRQFJKpWPR5/oHUG5PVaIh6o0mezDOsFdSROFLkV85K3B2/h0sYR9H5D6BmAVTffmkfiiKhVN9Pg==
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 v6 1/5] arm/irq: Keep track of irq affinities
Thread-Topic: [PATCH v6 1/5] arm/irq: Keep track of irq affinities
Thread-Index: AQHcsgQfYo2+uc7QB0+uZY6Wrq2Bgg==
Date: Thu, 12 Mar 2026 09:39:29 +0000
Message-ID:
 <733d58a26766a1d15e47447ed4f3cd299dc28cf7.1773307749.git.mykyta_poturai@epam.com>
References: <cover.1773307749.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1773307749.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB10110:EE_|VI0PR03MB11417:EE_
x-ms-office365-filtering-correlation-id: fc54aa19-5856-4573-714c-08de801b424f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|38070700021|18002099003|22082099003|56012099003;
x-microsoft-antispam-message-info:
 VpjDlbooQ1zHEXVSZioWg6qY3s702CPSMoPWZDDPn1VSLwOZn/NPlyr8O/ElES18ks1Rd31oTWkTliNb7EGlei0wP4l7hH/CMnm8zRDapHs+tVOVZ779KB3tFwbACvDtHbFeWvroXE18j7RNjq9Nw7OCqnr9x+8Ry+pB7f/XPion7JvU1pYFkUofWCPDXY9wW+z6WGn3KmxVNa326ONe3ZMF9l5XPOsD7OmKNvXzw9J/mSQbBsU9IzJ7CXZgNdVhLLRIO7lS+bYyUzfK5vFhIWQ3Lg+L3B14opVR8xVS19oiJXE92sZOJIA/7rw0oM91oDMlERs0DuYBvQ5NA3xO6+m6whPo+9cnSvek42jEi1TpM101wMiHj8dg6vTZUHFKY6kpLw1ND9RsJRB6dLWC3A8I8t8zht6e+RHfY9KaNm3WeDvTPVGteg6w4mYfHOpCPF7vw8Wb6kZSIPu67sPKLPufAtU1ZIzUzOloU7DOjqjxJV8x3VkSXg3cf1soN12defrKWRkTUhSpouXQ3w4SYDXHg2LmAvSQucu3K8WLlqJ1pOpwFZqMHXZtALgvYm0mwY+B5ugPohQ7wL6qFol93td5wq/0L4S7C++h5xkrqvN4Vu6VtROvuGL4lFzovv3fB36ri7wGm0BiIThpjpswkz5H2uFqxXluTWLwELKen6Ymjrgv51PELLFwBoV/ibYsTy6/Ssi1v1csQR9g93f1PON2toC2OzIB051cnR9Y9P3O8jPLcy+Z1fgZ0j7mfz0GR2kQTbFhE34/YvWhDPcuwEfJJPvxqFfWnF+2fLtNrdc=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?lEs1eqVyJxfDAviCaW2K5hTR/HjXfKlKwLHFC5Hzdnzu/xQHZnNObxgPCM?=
 =?iso-8859-1?Q?Oio5/P+HFRLna6fHS2Oo1o4nuzuHIEZX8Pd9GV5yySfB7RJyItV/AmD685?=
 =?iso-8859-1?Q?JrnruB0PzNIC3mRVWsKEoiHyzwtYVNuIqsiEoCn9jrXD/3KEa3nSS6AJqQ?=
 =?iso-8859-1?Q?v1vjuPmCX4yN51Hp7lPnUV52mZcPdVQLwM8V/JXBz8eyVq5KlQ6UXCcDy6?=
 =?iso-8859-1?Q?jHtrP89qGQwD1nyM6lGlNGyczU/pIT2qfVisUpXJpac603sgnPlG9ZZVRH?=
 =?iso-8859-1?Q?xBGisxV3+KrLpQLhZ6dbiC2wK2TiAgdSERkocV6s9KHzCfvZKmZooG/CH8?=
 =?iso-8859-1?Q?Oa1VLROV6ajsc7XAUchnPN3b9LPA0qzA1WdhfVhBm2gXjNJ30tOBPfRCC5?=
 =?iso-8859-1?Q?/75lD5/7pp4de6gAKek+st096i60Tyvg0XkibAlgh4CaOpBoWv3x9ro6DR?=
 =?iso-8859-1?Q?m2i2Cz7lfcYsfhRT3sWPnw9uNXMDPAFF3nmhSX7V1+cVMstuowdhfy6o5o?=
 =?iso-8859-1?Q?5CLVIERd/hXNKairx5UUOFjez44y/ZGtD45peqsOVA4QBNcH92esV2KIz2?=
 =?iso-8859-1?Q?SvtaXOJGgUHPZ9c8cFPF9RlKVLHZuKff9Gk9PgwMNnvpqOILp8t/uZuV+J?=
 =?iso-8859-1?Q?Yw/AcH9psctgW4imX5WtjRsZiZlxiVnTIv4qFwyXQxh+KtpB0nprH2edC4?=
 =?iso-8859-1?Q?1EvHS7OUXIecGKCJeHj15XKRRYDhrWHxI4VpGZbGe3big+yeOUWxIGY5Hq?=
 =?iso-8859-1?Q?rlKHIZVT7RWa/+fgPXFSd2mcIpiONBF/aMr7+aFgRCLNgf8/nYX/orftgV?=
 =?iso-8859-1?Q?1rYaH3lPhWwiMPlVb84QWgh08V8JoRnaoQmkC4zwu+i7TzwH+NkpyDc6iI?=
 =?iso-8859-1?Q?2r9zPed02NUB8ji3qNKYcXrFwxBDQaiUlWVecg9B7BIt29mMao1H9fhbEI?=
 =?iso-8859-1?Q?djIXet7txrBJ5Jug+5Kq96XprcYT3Q/thlPSMF7bRbiiR3h1EF+tFbDT18?=
 =?iso-8859-1?Q?Qbik/My7G3wSTJqSa5XmEK3zBp1+1e6rRwznAtyU4GF+qxY+u+VSy/oY1X?=
 =?iso-8859-1?Q?431pBnlqVwem+kZhbytA+2bciciGWyZFWpRxoaBHZohZ8x+vuGT4oNAst7?=
 =?iso-8859-1?Q?egcSArZ2nZQFZZRFvTjL1VhRQkyhQU46953wvUo5CEXUlEMbmJCjrxf3F5?=
 =?iso-8859-1?Q?YRjL19OzKPZpnhpKqFmDLoFKsRzbvNdr+aXEs0BMcZv5nXfj9WB+ttBlqR?=
 =?iso-8859-1?Q?F1afENLt6/ON4fXHq+BI4x/CvutD03jSouB3FIPOLrUYATwurcTvDcMY0i?=
 =?iso-8859-1?Q?kUBvN9Wv8ev5ZGAb3rrMvD4dkEYoRYHc4A/yhj+q+1fSpGs/W2K2UjLTeO?=
 =?iso-8859-1?Q?SCKTdIzBcJuGwJ4oBfrE7uGNK6xBQqvmBSCcoKABzm2pRrrpCOf3QITdu+?=
 =?iso-8859-1?Q?i7WZwgcpCBvqy32qVmTPdgFnTVj98otuEUiAnUMKS0ISyw3ZxiiL9KwF2D?=
 =?iso-8859-1?Q?IvmSiR5+GM5gYM7fHBohMUci6zSQUvlpTD+GDbLmZwq5VgQej0OEMjFlyP?=
 =?iso-8859-1?Q?tDBwe9boLsWHjh+75fcgTGXD0tcllw6yJTr/PvAnZ5TWGkmmGGBn77We1L?=
 =?iso-8859-1?Q?Egea/bTUM/TIoJek5q4wh+wU5bpJb7EgO9PPcbr4/9rTtaN7A+at6oSy+9?=
 =?iso-8859-1?Q?Hcw0KX7D0RzSEacH0DSYRRNAEiNXFnpsBNLmH3gq7PB5AiwzwY7wafYRr5?=
 =?iso-8859-1?Q?Y7RTGxpm/GR8gub8qbM5/BJI9ljiB2f0A991GYX2F/otb1R+2RMhH/gVaA?=
 =?iso-8859-1?Q?0wTLPl3ZWZekRaayW8FzG78iy/mOoRc=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fc54aa19-5856-4573-714c-08de801b424f
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Mar 2026 09:39:29.7339
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: j9nRvl/F8/1rq3d6lGT3Ya57T5V7KDyBRg0eTwSfaw4ciVz1oarbNrXFN43XQRmwo/0fAdYVbYjRMn3Ps/EaLQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB11417

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>

---
v5->v6:
* add missing locking around irq_set_affinity calls

v4->v5:
* add locking

v3->v4:
* patch introduced
---
 xen/arch/arm/gic-vgic.c          |  2 ++
 xen/arch/arm/irq.c               |  9 +++++++--
 xen/arch/arm/vgic.c              | 14 ++++++++++++--
 xen/arch/arm/vgic/vgic-mmio-v2.c | 11 +++++------
 xen/arch/arm/vgic/vgic.c         | 15 ++++++++-------
 5 files changed, 34 insertions(+), 17 deletions(-)

diff --git a/xen/arch/arm/gic-vgic.c b/xen/arch/arm/gic-vgic.c
index ea48c5375a..5253caf002 100644
--- a/xen/arch/arm/gic-vgic.c
+++ b/xen/arch/arm/gic-vgic.c
@@ -232,7 +232,9 @@ static void gic_update_one_lr(struct vcpu *v, int i)
             if ( test_bit(GIC_IRQ_GUEST_MIGRATING, &p->status) )
             {
                 struct vcpu *v_target =3D vgic_get_target_vcpu(v, irq);
+                spin_lock(&p->desc->lock);
                 irq_set_affinity(p->desc, cpumask_of(v_target->processor))=
;
+                spin_unlock(&p->desc->lock);
                 clear_bit(GIC_IRQ_GUEST_MIGRATING, &p->status);
             }
         }
diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 73e58a5108..7204bc2b68 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -216,10 +216,15 @@ static inline struct domain *irq_get_domain(struct ir=
q_desc *desc)
     return irq_get_guest_info(desc)->d;
 }
=20
+/* Must be called with desc->lock held */
 void irq_set_affinity(struct irq_desc *desc, const cpumask_t *mask)
 {
-    if ( desc !=3D NULL )
-        desc->handler->set_affinity(desc, mask);
+    if ( desc =3D=3D NULL )
+        return;
+
+    ASSERT(spin_is_locked(&desc->lock));
+    cpumask_copy(desc->affinity, mask);
+    desc->handler->set_affinity(desc, mask);
 }
=20
 int request_irq(unsigned int irq, unsigned int irqflags,
diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
index 6647071ad4..c59f6873db 100644
--- a/xen/arch/arm/vgic.c
+++ b/xen/arch/arm/vgic.c
@@ -445,7 +445,9 @@ bool vgic_migrate_irq(struct vcpu *old, struct vcpu *ne=
w, unsigned int irq)
=20
     if ( list_empty(&p->inflight) )
     {
+        spin_lock(&p->desc->lock);
         irq_set_affinity(p->desc, cpumask_of(new->processor));
+        spin_unlock(&p->desc->lock);
         spin_unlock_irqrestore(&old->arch.vgic.lock, flags);
         return true;
     }
@@ -453,7 +455,9 @@ bool vgic_migrate_irq(struct vcpu *old, struct vcpu *ne=
w, unsigned int irq)
     if ( !list_empty(&p->lr_queue) )
     {
         vgic_remove_irq_from_queues(old, p);
+        spin_lock(&p->desc->lock);
         irq_set_affinity(p->desc, cpumask_of(new->processor));
+        spin_unlock(&p->desc->lock);
         spin_unlock_irqrestore(&old->arch.vgic.lock, flags);
         vgic_inject_irq(new->domain, new, irq, true);
         return true;
@@ -473,6 +477,7 @@ void arch_move_irqs(struct vcpu *v)
     struct domain *d =3D v->domain;
     struct pending_irq *p;
     struct vcpu *v_target;
+    unsigned long flags;
     int i;
=20
     /*
@@ -494,7 +499,13 @@ void arch_move_irqs(struct vcpu *v)
         p =3D irq_to_pending(v_target, virq);
=20
         if ( v_target =3D=3D v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p->s=
tatus) )
+        {
+            if ( !p->desc )
+                continue;
+            spin_lock_irqsave(&p->desc->lock, flags);
             irq_set_affinity(p->desc, cpu_mask);
+            spin_unlock_irqrestore(&p->desc->lock, flags);
+        }
     }
 }
=20
@@ -574,8 +585,8 @@ void vgic_enable_irqs(struct vcpu *v, uint32_t r, unsig=
ned int n)
         spin_unlock_irqrestore(&v_target->arch.vgic.lock, flags);
         if ( p->desc !=3D NULL )
         {
-            irq_set_affinity(p->desc, cpumask_of(v_target->processor));
             spin_lock_irqsave(&p->desc->lock, flags);
+            irq_set_affinity(p->desc, cpumask_of(v_target->processor));
             /*
              * The irq cannot be a PPI, we only support delivery of SPIs
              * to guests.
@@ -944,4 +955,3 @@ void vgic_check_inflight_irqs_pending(struct vcpu *v, u=
nsigned int rank, uint32_
  * indent-tabs-mode: nil
  * End:
  */
-
diff --git a/xen/arch/arm/vgic/vgic-mmio-v2.c b/xen/arch/arm/vgic/vgic-mmio=
-v2.c
index b7c2d7ce99..fc04741ca1 100644
--- a/xen/arch/arm/vgic/vgic-mmio-v2.c
+++ b/xen/arch/arm/vgic/vgic-mmio-v2.c
@@ -159,24 +159,23 @@ static void vgic_mmio_write_target(struct vcpu *vcpu,
     for ( i =3D 0; i < len; i++ )
     {
         struct vgic_irq *irq =3D vgic_get_irq(vcpu->domain, NULL, intid + =
i);
+        struct irq_desc *desc =3D irq_to_desc(irq->hwintid);
=20
-        spin_lock_irqsave(&irq->irq_lock, flags);
+        spin_lock_irqsave(&desc->lock, flags);
+        spin_lock(&irq->irq_lock);
=20
         irq->targets =3D (val >> (i * 8)) & cpu_mask;
         if ( irq->targets )
         {
             irq->target_vcpu =3D vcpu->domain->vcpu[ffs(irq->targets) - 1]=
;
             if ( irq->hw )
-            {
-                struct irq_desc *desc =3D irq_to_desc(irq->hwintid);
-
                 irq_set_affinity(desc, cpumask_of(irq->target_vcpu->proces=
sor));
-            }
         }
         else
             irq->target_vcpu =3D NULL;
=20
-        spin_unlock_irqrestore(&irq->irq_lock, flags);
+        spin_unlock(&irq->irq_lock);
+        spin_unlock_irqrestore(&desc->lock, flags);
         vgic_put_irq(vcpu->domain, irq);
     }
 }
diff --git a/xen/arch/arm/vgic/vgic.c b/xen/arch/arm/vgic/vgic.c
index b2c0e1873a..81ba4099ef 100644
--- a/xen/arch/arm/vgic/vgic.c
+++ b/xen/arch/arm/vgic/vgic.c
@@ -812,21 +812,22 @@ void arch_move_irqs(struct vcpu *v)
     {
         struct vgic_irq *irq =3D vgic_get_irq(d, NULL, i + VGIC_NR_PRIVATE=
_IRQS);
         unsigned long flags;
+        irq_desc_t *desc;
=20
         if ( !irq )
             continue;
=20
-        spin_lock_irqsave(&irq->irq_lock, flags);
+        desc =3D irq_to_desc(irq->hwintid);
=20
-        /* Only hardware mapped vIRQs that are targeting this vCPU. */
-        if ( irq->hw && irq->target_vcpu =3D=3D v)
-        {
-            irq_desc_t *desc =3D irq_to_desc(irq->hwintid);
+        spin_lock_irqsave(&desc->lock, flags);
+        spin_lock(&irq->irq_lock);
=20
+        /* Only hardware mapped vIRQs that are targeting this vCPU. */
+        if ( irq->hw && irq->target_vcpu =3D=3D v )
             irq_set_affinity(desc, cpumask_of(v->processor));
-        }
=20
-        spin_unlock_irqrestore(&irq->irq_lock, flags);
+        spin_unlock(&irq->irq_lock);
+        spin_unlock_irqrestore(&desc->lock, flags);
         vgic_put_irq(d, irq);
     }
 }
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 09:39:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 09:39:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251872.1548738 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0cW3-0003TK-FB; Thu, 12 Mar 2026 09:39:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251872.1548738; Thu, 12 Mar 2026 09:39:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0cW3-0003TB-BN; Thu, 12 Mar 2026 09:39:39 +0000
Received: by outflank-mailman (input) for mailman id 1251872;
 Thu, 12 Mar 2026 09: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=gOdu=BM=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1w0cW1-0002bV-MY
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 09:39:37 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 61514148-1df7-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 10:39:35 +0100 (CET)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by VI0PR03MB11417.eurprd03.prod.outlook.com
 (2603:10a6:800:33f::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.22; Thu, 12 Mar
 2026 09:39:30 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::4d2f:ff40:d0ba:e581]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::4d2f:ff40:d0ba:e581%5]) with mapi id 15.20.9700.013; Thu, 12 Mar 2026
 09:39: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: 61514148-1df7-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=K+WkMYT1KM5f22+Jj0FFAvVtWVhZBMxi+u58C+43PXRFDafpfEGN2g69GmP+XZYMLQvNoDyNJHd6u3/N+1V58yGd1ID8TEAdFa0irOVk13lZ4uYdSt9qDeNbNIjURkYsopPXyToaj50JLw+z6OdxdAn0P0PF6rH37lVRKFveHoEIcHmv01mCwCMQ8+OGOJqYtMEqwlSIITLT/6oq/Q6CR7twr1gl5EiQb+5s5o/WC3DIGXg1aRd7ABTMsPC2lEolp0CjVp62G2OlUXAcoijGeSTSldp3oTMw07QAWGNvLCOwkeMzHxzTiS6lkcqOM3b+C34qybBnoyq7py+9BeEtUw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qXjlnWS1d2mnX92S2FXocUpfckS3YB00I5AeDXjGcFo=;
 b=bVmcWLeFVWppsDqse1QKkNMrjvqwUKJ7r3QnQU37Hg+9Uwx06lg40hQRcSBWqn4tthGUKV0LuWUNYTbd/pl5160ZO69a8kDivOhBUt6nQ4waGO3ps8gPrQkkTco3AWYm7unJYrQKOO02raVdbA6RGZybSZlf6mt5Z4FMmHaL3eY6ngqSxo5X1IrRM33kdaILCD5RRFQ113WnbyuU4jgMIpis6EqIvqvPjOgYZWfQAI+rMmzsMicxsJEzJg/AxO5RhHYPPUu5nS9YDAUSZsH1iWgbNc/30HwvpfspCmxR6pqeRxnywlaztdKef/YaYJNPbdlN1zlFJg7LWzHcAXiZCg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qXjlnWS1d2mnX92S2FXocUpfckS3YB00I5AeDXjGcFo=;
 b=f7o+TjIF/G/jD0V5Ss0mVtWEpXWn7KECdKt3CNSzAkOxydDB2LZGuw9hq39WWeBiqUcUzShWc4GHZCE+0W4ULyc0GCuz6qyBCUaMQHvuiijmvJh2wngU9MsYRzXF+TuFA57zaVuNKHi/p5+oYb9LIgxptQDgG3MP/VffgjPDYGqA23Hb6mbCpmvj/iTM4DfpUyavj3a7rnLJfC0cVa/oZElGsb2rvaY6uKB7xSMVzgJTjLT2Kj6Njt6FgodsjlxmCTm/MPpFvGOU5vYnyJHnLlbzjh6FiDpYGFFistj8+YbJs1cJdk5iDYNunNayfdfXujvAegSCIeDg5hwh51F+tA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>, Connor Davis
	<connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v6 3/5] arm/sysctl: Implement cpu hotplug ops
Thread-Topic: [PATCH v6 3/5] arm/sysctl: Implement cpu hotplug ops
Thread-Index: AQHcsgQgazJGD0vsMEiWnzOogqs2jA==
Date: Thu, 12 Mar 2026 09:39:30 +0000
Message-ID:
 <206261ba0b60ebcff25e083c22d9e9b885645199.1773307749.git.mykyta_poturai@epam.com>
References: <cover.1773307749.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1773307749.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB10110:EE_|VI0PR03MB11417:EE_
x-ms-office365-filtering-correlation-id: 8e98426c-463e-411d-ae83-08de801b42e6
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|7416014|376014|38070700021|18002099003|22082099003|56012099003;
x-microsoft-antispam-message-info:
 7m2PY5HDwEfsAkq/r+1MxQQdBPOmAfuHGYQPX4b1LpmwGXB23uKX+8pWndf+LXEve9DGtwBM/An0rT4D+PSIAt+TP6rNSCre0EaYBxICZD7Rq1jSt9lobnrQz4lzd0anVYquNWa6t84aCMnLkiHcz27t8aZ9ERtJrPQBGV+qqmIZ7IRJerL9KoxsFeUy+D4LqNymt79xTsBv64/3xbeSytQ0UxQZq/Mz19pBNg4w6J06b+PykOPQHWFYY3JjNQCg5bkjXnjFNHMZ+R71RdmeZSzpge0T6Afn10QBsnj5vOaC2idKS2oRTmB4fpzymuW830X6kVL0u4mjCJH/deUC+JdYUo1hfXRbauVX5SUee8he1t8wRD0C5GDummbxShGeaUzNQlwzL4SW3T8cSnRylxAz6TPOj4j+tTIxSaZpzdbdCIkGP+z7GMlttMEbTlKSii7rC2fXb4RmCi3Uqp/zkCHz1/ugw6MbTIb9P5BIsE8I+e37NGviCj6MssAX+muijV3faWpzjRL+xAoswany4BHjHdnria1DUsf8MO2da8Nrc6nQmJDl0sasKhvZs6uL5dM/NYs7pASV95AO0HsMtjItwIwFgrjzX3GlHzVPQx5pESHz3jyBiENO7ycL6bzR8cWjXh5HP9jS3FGSjDGfzdcjkDl7AFTy2ObHPeePQCVJq2fvVDpOffRS/WfINz/PAzlu90VfuKILrjqi5JglvPct9YZN46RUDlcyh0nOcqRDhr/6pb42W6MFkoHnQz9ECOdJgcj63ViSANAnsod920KWfNw5YBzz8U9Gb7YVZGI=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(38070700021)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?twY3bd6Jgq+LloP9D4mjppmA9QYOfWiumZITiGOSRqJo1TZECVUANQcamw?=
 =?iso-8859-1?Q?Z16MuZkpuaHBtpm8FlXYhIpInfBVRvzD0BR/xRhUWrisDZsVbDNKQpfoWe?=
 =?iso-8859-1?Q?0vAe22DsukABPC8Ms205wVM+ilkXQarL3/HrqkvFXBRFFA2LGEjnUzK4u6?=
 =?iso-8859-1?Q?00rUAMFqTDdBECgU35MVlIlfScMULX37uGeRufsV3bxCnw3v80icGNVBxi?=
 =?iso-8859-1?Q?srFmc0g85AStJXT0Px0LBZ2ifmjc6g12PAouwjOw56HW4p7pwIlo3m7kNJ?=
 =?iso-8859-1?Q?VhmOz59omzqMuJ5G1E6io2rtY8Th6EPFPQDeZnLu+rJU443bBO7+C3zhin?=
 =?iso-8859-1?Q?Selmm3kM2Cyqv8RrwK5vIq1Bx+NEn2bZvsaicVpybzs96WsSweEgtBjcyK?=
 =?iso-8859-1?Q?6vH2kBapLFeo5/+eThWdlSUiwWsyplVweGIyZBWrxhpeIIxBDDHu8unKTJ?=
 =?iso-8859-1?Q?KXvOVg1K+oT0MevQvK4oUr5jCInNCjWVfUIT00MBR7ZHgj9SfUxD3/n2DD?=
 =?iso-8859-1?Q?2JmTBEjVImLu3IAaePk+SBI+XXGni972/wqhZH4C177d03km4W9dS6aGYr?=
 =?iso-8859-1?Q?Uemd/zKb4JP9KVc7KqDanIRiD2JPtj1zqD1QtEK4f9tDgI1N1oNejaNd5+?=
 =?iso-8859-1?Q?GBvrkBAJjFgKcLb3tPp8Rts1lWCi5j0NJVkj4+ypGl7HUD1sowrwSF0rsY?=
 =?iso-8859-1?Q?4Bnn1hJa0/MLo0LBFTdlN18kq9qFozzK7/gVATbeCAAy4FrcQSK8e6H/t1?=
 =?iso-8859-1?Q?Rw0mvOaQA0H88FyGmg5NAmpeWDL6KYTJL3MHGlSazF+DSfUusjGGvV3H8/?=
 =?iso-8859-1?Q?lMzd3JPNmwj0/QHorfgtyOs453IeB9/+v0/1ongyh5GLFhjYAKkjxeJrBU?=
 =?iso-8859-1?Q?yvecmdiKJC9RqcPITHyo7VY6Q98YCxy1rh5yF1QFafMSwpyvbJvS2W7l9W?=
 =?iso-8859-1?Q?Pmfzl4Avm5qr2b05AF2MD8x+Ktb/yrPDl5GNeZLIUNocoRGLDvSUmjW/fY?=
 =?iso-8859-1?Q?nMAIxe2Gq6rCH6QG9qoIifJIsu0p5MAWr+b66TMEUL/uwTkW5x/VbyZoIe?=
 =?iso-8859-1?Q?g3clMtJkD9YydxlnBlL52t3T5btN/zF3RiXByc2jeerh/dLM09aupLu174?=
 =?iso-8859-1?Q?TWhd2JhzwsNB6d+HfA/es9bJnzriG1WDwuAmfmZTvKC1PwvXuJ9nxuMDjO?=
 =?iso-8859-1?Q?HuxfF7Wu9IXsLqDdsc9JzufGfNg4eE4D89O8a3wCTVHj6l9uJCV6xp6xN6?=
 =?iso-8859-1?Q?rldTi9a0c+rr9WvbvDrj6q4CvHnj7XgGuVvV8SVU+M46y3D4iGeCU8CZhE?=
 =?iso-8859-1?Q?bTCEz1kGxPOSKs0x7K1jRm4YuYR111/v1NlZvb7yXIwd8PF4kasTwceFTp?=
 =?iso-8859-1?Q?IPfFP0Uv6JF2mkoASqVQ1DXw9ltCY4U8Ohv/noqnVxIzOgsUZDr6TUlS+g?=
 =?iso-8859-1?Q?2MmyPbebH2fCPEqKO9OxrMW143jF0Tw6v1xRbgsXTonOl5lM10ydQC2POp?=
 =?iso-8859-1?Q?fh84JOFd7VHARiMS6OtmJO5ELPpoDTKG7kS+uQmkUvjsbiw9o1qwF8mec0?=
 =?iso-8859-1?Q?ITJWGGG2avK5EubRsgbnNMXrtGx/7tu+4NIKa3lMmyDziwLsFpGKkXZZ2v?=
 =?iso-8859-1?Q?cUsBAYhYhPC8fbdkhZsmbxRwZcHiHINcyTFH+AFcxmxLhnVRaeisSUocfL?=
 =?iso-8859-1?Q?44VWL1K5zXNC/JBR3hQ6CWV5zr994y3aBAzMPyTAJ2cbyD60vDjIeTljON?=
 =?iso-8859-1?Q?cV9d94P3/10nXuQ5dPKN+gG+KipgAqrzWtHBczG6Srf1KE42DPdsXAkLyn?=
 =?iso-8859-1?Q?0d6xK6EHORgkYgAOoCWZKYcyb/WegZA=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8e98426c-463e-411d-ae83-08de801b42e6
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Mar 2026 09:39:30.7757
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: OQZSllI+J1JDZQzb/V8FL/iLNU987vVQ0+btk69WRIXg4FehyWGNbpQPrugTN+M9eDbQpkH1YROPSd18Xv2vHQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB11417

Move XEN_SYSCTL_CPU_HOTPLUG_{ONLINE,OFFLINE} handlers to common code to
allow for enabling/disabling CPU cores in runtime on Arm64.

SMT-disable enforcement check is moved into a separate
architecture-specific function.

For now this operations only support Arm64. For proper Arm32 support,
there needs to be a mechanism to free per-cpu page tables, allocated in
init_domheap_mappings.  Also, hotplug is not supported if ITS, FFA, or
TEE is enabled, as they use non-static IRQ actions.

Create a Kconfig option CPU_HOTPLUG that reflects this
constraints. On X86 the option is enabled unconditionally.

As cpu hotplug now has its own config option, switch flask to allow
XEN_SYSCTL_cpu_hotplug depending on CONFIG_CPU_HOTPLUG, so it can work
not only on x86.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

---

v5->v6:
* fix style issues
* rename arch_smt_cpu_disable -> arch_cpu_can_stay_online and invert the
  logic
* use IS_ENABLED istead of ifdef
* remove explicit list af arch-specific SYSCTL_CPU_HOTPLUG_* options
  from the common handler
* fix flask issue

v4->v5:
* move handling to common code
* rename config to CPU_HOTPUG
* merge with "smp: Move cpu_up/down helpers to common code"

v3->v4:
* don't reimplement cpu_up/down helpers
* add Kconfig option
* fixup formatting

v2->v3:
* no changes

v1->v2:
* remove SMT ops
* remove cpu =3D=3D 0 checks
* add XSM hooks
* only implement for 64bit Arm
---
 xen/arch/arm/smp.c                |  9 ++++++
 xen/arch/ppc/stubs.c              |  4 +++
 xen/arch/riscv/stubs.c            |  5 ++++
 xen/arch/x86/include/asm/smp.h    |  3 --
 xen/arch/x86/platform_hypercall.c | 12 ++++++++
 xen/arch/x86/smp.c                | 33 ++--------------------
 xen/arch/x86/sysctl.c             | 21 ++++++++------
 xen/common/Kconfig                |  6 ++++
 xen/common/smp.c                  | 35 +++++++++++++++++++++++
 xen/common/sysctl.c               | 46 +++++++++++++++++++++++++++++++
 xen/include/xen/smp.h             |  4 +++
 xen/xsm/flask/hooks.c             |  2 +-
 12 files changed, 137 insertions(+), 43 deletions(-)

diff --git a/xen/arch/arm/smp.c b/xen/arch/arm/smp.c
index b372472188..984f863a9a 100644
--- a/xen/arch/arm/smp.c
+++ b/xen/arch/arm/smp.c
@@ -44,6 +44,15 @@ void smp_send_call_function_mask(const cpumask_t *mask)
     }
 }
=20
+/*
+ * We currently don't support SMT on ARM so we don't need any special logi=
c for
+ * CPU disabling
+ */
+bool arch_cpu_can_stay_online(unsigned int cpu)
+{
+    return true;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
index a333f06119..8f280ba080 100644
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -101,6 +101,10 @@ void smp_send_call_function_mask(const cpumask_t *mask=
)
     BUG_ON("unimplemented");
 }
=20
+bool arch_cpu_can_stay_online(unsigned int cpu)
+{
+    BUG_ON("unimplemented");
+}
 /* irq.c */
=20
 void irq_ack_none(struct irq_desc *desc)
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index daadff0138..7c3cda7bc5 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -70,6 +70,11 @@ void smp_send_call_function_mask(const cpumask_t *mask)
     BUG_ON("unimplemented");
 }
=20
+bool arch_cpu_can_stay_online(unsigned int cpu)
+{
+    BUG_ON("unimplemented");
+}
+
 /* irq.c */
=20
 void irq_ack_none(struct irq_desc *desc)
diff --git a/xen/arch/x86/include/asm/smp.h b/xen/arch/x86/include/asm/smp.=
h
index 3f16e62696..cb3e0fed19 100644
--- a/xen/arch/x86/include/asm/smp.h
+++ b/xen/arch/x86/include/asm/smp.h
@@ -50,9 +50,6 @@ int cpu_add(uint32_t apic_id, uint32_t acpi_id, uint32_t =
pxm);
=20
 void __stop_this_cpu(void);
=20
-long cf_check cpu_up_helper(void *data);
-long cf_check cpu_down_helper(void *data);
-
 long cf_check core_parking_helper(void *data);
 bool core_parking_remove(unsigned int cpu);
 uint32_t get_cur_idle_nums(void);
diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hype=
rcall.c
index cd4f0ae5e5..e745151790 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -735,6 +735,12 @@ ret_t do_platform_op(
     {
         int cpu =3D op->u.cpu_ol.cpuid;
=20
+        if ( !IS_ENABLED(CONFIG_CPU_HOTPLUG) )
+        {
+            ret =3D -EOPNOTSUPP;
+            break;
+        }
+
         ret =3D xsm_resource_plug_core(XSM_HOOK);
         if ( ret )
             break;
@@ -761,6 +767,12 @@ ret_t do_platform_op(
     {
         int cpu =3D op->u.cpu_ol.cpuid;
=20
+        if ( !IS_ENABLED(CONFIG_CPU_HOTPLUG) )
+        {
+            ret =3D -EOPNOTSUPP;
+            break;
+        }
+
         ret =3D xsm_resource_unplug_core(XSM_HOOK);
         if ( ret )
             break;
diff --git a/xen/arch/x86/smp.c b/xen/arch/x86/smp.c
index 7936294f5f..b781e933f2 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_cpu_can_stay_online(unsigned int cpu)
 {
-    unsigned int cpu =3D (unsigned long)data;
-    int ret =3D cpu_up(cpu);
-
-    /* Have one more go on EBUSY. */
-    if ( ret =3D=3D -EBUSY )
-        ret =3D cpu_up(cpu);
-
-    if ( !ret && !opt_smt &&
-         cpu_data[cpu].compute_unit_id =3D=3D INVALID_CUID &&
-         cpumask_weight(per_cpu(cpu_sibling_mask, cpu)) > 1 )
-    {
-        ret =3D cpu_down_helper(data);
-        if ( ret )
-            printk("Could not re-offline CPU%u (%d)\n", cpu, ret);
-        else
-            ret =3D -EPERM;
-    }
-
-    return ret;
-}
-
-long cf_check cpu_down_helper(void *data)
-{
-    int cpu =3D (unsigned long)data;
-    int ret =3D cpu_down(cpu);
-    /* Have one more go on EBUSY. */
-    if ( ret =3D=3D -EBUSY )
-        ret =3D cpu_down(cpu);
-    return ret;
+    return opt_smt || cpu_data[cpu].compute_unit_id !=3D INVALID_CUID ||
+           cpumask_weight(per_cpu(cpu_sibling_mask, cpu)) <=3D 1;
 }
diff --git a/xen/arch/x86/sysctl.c b/xen/arch/x86/sysctl.c
index 1b04947516..35239b73c1 100644
--- a/xen/arch/x86/sysctl.c
+++ b/xen/arch/x86/sysctl.c
@@ -49,6 +49,7 @@ static void cf_check l3_cache_get(void *arg)
=20
 static long cf_check smt_up_down_helper(void *data)
 {
+    #ifdef CONFIG_CPU_HOTPLUG
     bool up =3D (bool)data;
     unsigned int cpu, sibling_mask =3D boot_cpu_data.x86_num_siblings - 1;
     int ret =3D 0;
@@ -89,6 +90,8 @@ static long cf_check smt_up_down_helper(void *data)
                up ? "enabled" : "disabled", CPUMASK_PR(&cpu_online_map));
=20
     return ret;
+    #endif /* CONFIG_CPU_HOTPLUG */
+    return 0;
 }
=20
 void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
@@ -115,24 +118,24 @@ long arch_do_sysctl(
=20
     case XEN_SYSCTL_cpu_hotplug:
     {
-        unsigned int cpu =3D sysctl->u.cpu_hotplug.cpu;
         unsigned int op  =3D sysctl->u.cpu_hotplug.op;
         bool plug;
         long (*fn)(void *data);
         void *hcpu;
=20
-        switch ( op )
+        if ( !IS_ENABLED(CONFIG_CPU_HOTPLUG) )
         {
-        case XEN_SYSCTL_CPU_HOTPLUG_ONLINE:
-            plug =3D true;
-            fn =3D cpu_up_helper;
-            hcpu =3D _p(cpu);
+            ret =3D -EOPNOTSUPP;
             break;
+        }
=20
+        switch ( op )
+        {
+        case XEN_SYSCTL_CPU_HOTPLUG_ONLINE:
         case XEN_SYSCTL_CPU_HOTPLUG_OFFLINE:
-            plug =3D false;
-            fn =3D cpu_down_helper;
-            hcpu =3D _p(cpu);
+            /* Handled by common code */
+            ASSERT_UNREACHABLE();
+            ret =3D -EOPNOTSUPP;
             break;
=20
         case XEN_SYSCTL_CPU_HOTPLUG_SMT_ENABLE:
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index d7e79e752a..bb73990355 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -637,6 +637,12 @@ config SYSTEM_SUSPEND
=20
 	  If unsure, say N.
=20
+config CPU_HOTPLUG
+	bool "Enable CPU hotplug"
+	depends on (X86 || ARM_64) && !FFA && !TEE && !HAS_ITS
+	default y
+
+
 menu "Supported hypercall interfaces"
 	visible if EXPERT
=20
diff --git a/xen/common/smp.c b/xen/common/smp.c
index a011f541f1..e2bf82856e 100644
--- a/xen/common/smp.c
+++ b/xen/common/smp.c
@@ -16,6 +16,7 @@
  * GNU General Public License for more details.
  */
=20
+#include <xen/cpu.h>
 #include <asm/hardirq.h>
 #include <asm/processor.h>
 #include <xen/spinlock.h>
@@ -104,6 +105,40 @@ void smp_call_function_interrupt(void)
     irq_exit();
 }
=20
+#ifdef CONFIG_CPU_HOTPLUG
+long cf_check cpu_up_helper(void *data)
+{
+    unsigned int cpu =3D (unsigned long)data;
+    int ret =3D cpu_up(cpu);
+
+    /* Have one more go on EBUSY. */
+    if ( ret =3D=3D -EBUSY )
+        ret =3D cpu_up(cpu);
+
+    if ( !ret && !arch_cpu_can_stay_online(cpu) )
+    {
+        ret =3D cpu_down_helper(data);
+        if ( ret )
+            printk("Could not re-offline CPU%u (%d)\n", cpu, ret);
+        else
+            ret =3D -EPERM;
+    }
+
+    return ret;
+}
+
+long cf_check cpu_down_helper(void *data)
+{
+    unsigned int cpu =3D (unsigned long)data;
+    int ret =3D cpu_down(cpu);
+
+    /* Have one more go on EBUSY. */
+    if ( ret =3D=3D -EBUSY )
+        ret =3D cpu_down(cpu);
+    return ret;
+}
+#endif /* CONFIG_CPU_HOTPLUG */
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
index 5207664252..51a3dd699a 100644
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
@@ -483,6 +483,52 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_=
sysctl)
             copyback =3D 1;
         break;
=20
+    case XEN_SYSCTL_cpu_hotplug:
+    {
+        unsigned int cpu =3D op->u.cpu_hotplug.cpu;
+        unsigned int hp_op =3D op->u.cpu_hotplug.op;
+        bool plug;
+        long (*fn)(void *data);
+        void *hcpu;
+
+        ret =3D -EOPNOTSUPP;
+        if ( !IS_ENABLED(CONFIG_CPU_HOTPLUG) )
+            break;
+
+        switch ( hp_op )
+        {
+        case XEN_SYSCTL_CPU_HOTPLUG_ONLINE:
+            plug =3D true;
+            fn =3D cpu_up_helper;
+            hcpu =3D _p(cpu);
+            break;
+
+        case XEN_SYSCTL_CPU_HOTPLUG_OFFLINE:
+            plug =3D false;
+            fn =3D cpu_down_helper;
+            hcpu =3D _p(cpu);
+            break;
+
+        default:
+            fn =3D NULL;
+            break;
+        }
+
+        if ( fn )
+        {
+            ret =3D plug ? xsm_resource_plug_core(XSM_HOOK)
+                       : xsm_resource_unplug_core(XSM_HOOK);
+
+            if ( !ret )
+                ret =3D continue_hypercall_on_cpu(0, fn, hcpu);
+
+            break;
+        }
+
+        /* Use the arch handler for cases not handled here */
+        fallthrough;
+    }
+
     default:
         ret =3D arch_do_sysctl(op, u_sysctl);
         copyback =3D 0;
diff --git a/xen/include/xen/smp.h b/xen/include/xen/smp.h
index 2ca9ff1bfc..04530738c9 100644
--- a/xen/include/xen/smp.h
+++ b/xen/include/xen/smp.h
@@ -76,4 +76,8 @@ extern void *stack_base[NR_CPUS];
 void initialize_cpu_data(unsigned int cpu);
 int setup_cpu_root_pgt(unsigned int cpu);
=20
+bool arch_cpu_can_stay_online(unsigned int cpu);
+long cf_check cpu_up_helper(void *data);
+long cf_check cpu_down_helper(void *data);
+
 #endif /* __XEN_SMP_H__ */
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index b250b27065..36d357cae8 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -835,7 +835,7 @@ static int cf_check flask_sysctl(int cmd)
     case XEN_SYSCTL_getdomaininfolist:
     case XEN_SYSCTL_page_offline_op:
     case XEN_SYSCTL_scheduler_op:
-#ifdef CONFIG_X86
+#ifdef CONFIG_CPU_HOTPLUG
     case XEN_SYSCTL_cpu_hotplug:
 #endif
         return 0;
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 09:39:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 09:39:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251873.1548743 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0cW4-0003Yl-20; Thu, 12 Mar 2026 09:39:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251873.1548743; Thu, 12 Mar 2026 09:39:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0cW3-0003Wl-Qr; Thu, 12 Mar 2026 09:39:39 +0000
Received: by outflank-mailman (input) for mailman id 1251873;
 Thu, 12 Mar 2026 09:39: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=gOdu=BM=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1w0cW2-0002bV-Mr
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 09:39:38 +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 61c3fa2c-1df7-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 10:39:36 +0100 (CET)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by VI0PR03MB11417.eurprd03.prod.outlook.com
 (2603:10a6:800:33f::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.22; Thu, 12 Mar
 2026 09:39:31 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::4d2f:ff40:d0ba:e581]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::4d2f:ff40:d0ba:e581%5]) with mapi id 15.20.9700.013; Thu, 12 Mar 2026
 09:39: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: 61c3fa2c-1df7-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lUh8+l8fAijN2tjwRMz8Ls5WZgIH0FYnN5h8Amy8zU0kaiawgXqNeD6hVrHCn+BnEqv/k8TTPu0qUJkLdZBKZyfGFW+kBZd5lh1G9punrVBk3CuAbQme7o40keiKBC5SfL17/S5z+PQc6T3mZu54garp/BGzzqLlukLNNNz2mYTPKSvqJS0mLrIPHIc25twrvxAWv02f14y8WsPTQofekBs0VUuGYK8ELV3kNlcHN0wpJiK4Mqe00PSDtTGGQ5NEdZAYYWkxZj70r4B71MoTNkP1zpHX0u8KfVuLBBattLHow1E8ZSLgM+JJMxDxGxJK+2OuYVax/Ep1LRqefAEDDg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nZy/cC7uH53ZqgH6AZbNe+UaJ7u0hXrJKUMyqSL4zZk=;
 b=i5DOcIAh42Em1RkW9sVfZt+GOfRSvQrPU0s/tzLVRG7wlPT5vjkS6oQcFNq8UN++WRIO5LayIAf+xJSCvbmuUcSOUWTENxOe+HveUiqiryowCwVA8zN8d9++01hrImIJOB7iWL1vHmoSkwzffZIYkTowcY2GoeEsSx3v36GXwMrVm3HLGarlij8VRdZJ5BTediOc9U5zYK2A31ZPUKsAkr3bwKd8dksvuNRbRL9O5VKgrm1tXgJh8RavDxMXpwRHGm2QVkCtV8e9OMvXZKbBU+ycJeDRU16mMveBNDLVb3M8r4hydUvskxOea0t54Ce782+rxxn4e6ra337JdG7iGg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nZy/cC7uH53ZqgH6AZbNe+UaJ7u0hXrJKUMyqSL4zZk=;
 b=ooagV3cAaTaM6hBwkWIKXXpbyL7w6IzQvDFHw+taULEGJbX3T5hdqnR2tCOJAND9Z/5ttaiNaqwUrhIBc1qBj3fmb9VYDiluHe5kr/OzPMK5oJz2uAvfM2WVNFCvwPjFVscQVPFUpGAtbr+GQbePkqwFLZLHL9C4V+JsMDhS4jEo+QDwo4oidmUiRNlgGkgvj4u4eAQehc2E1eyU/otugMMZeOvLJNL45jNDSLR4xd3t3Xez5huDbASi+Frv6OFb4KIduAtCgIC+11UaHkQVaSLTL+v4pcSwby+ONyYpX01elR4BNn/8Fp8l96mgUWRtKA19oEy6cz0Q72agcNCYfw==
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 v6 5/5] docs: Document CPU hotplug
Thread-Topic: [PATCH v6 5/5] docs: Document CPU hotplug
Thread-Index: AQHcsgQgNCk5TPCZikiOg71JPbDw/A==
Date: Thu, 12 Mar 2026 09:39:31 +0000
Message-ID:
 <4857e0c10c59f283e4a3686bf9188a1809a9fd55.1773307749.git.mykyta_poturai@epam.com>
References: <cover.1773307749.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1773307749.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB10110:EE_|VI0PR03MB11417:EE_
x-ms-office365-filtering-correlation-id: 2ce65a7d-1d19-4600-544e-08de801b436e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|38070700021|18002099003|22082099003|56012099003;
x-microsoft-antispam-message-info:
 /pw5MgR+Vim76jdh13fsrhqE4JYx4GqKkEgsIzRv4sQ2xVgHNzREX8/wRgFsouWAlG1pC4+vF9UcPHedthDbFj4g7EYcGQbzb3iEbOI3gxnm/EUof+FFEvpj5Y2HBJQyzPLJcqlXGiaLBc0OHSrUEMXf4uupSILYKyCouxXRTa7QT+FOUT+mKf56+79sLLQlL8Nqm1Ul30k0/jfJh7iGWhydoIDb/OSwyOboTr4vKl/kVeXayWmvYhsjHTNy50t3qOCYw26PASHSGGR4zlNRyBGQdsnYga0Xg30XhVe7u9mFi0asIsfS3cCpC7bZGKCIgqEjVmSe+bCA+sY4gsPemvKfhzSUP8sDOaFb3R761eFm4enbY94lHPY2V5XTR6m6o+6J3RYLKDfKRbjLq42owZFMXuL0b0p3JD3vWLwgTZ3JZ4OiuYFteR10CsChzENa6KA/BG6VY30mXHG4eH0oRNt+zv1lja3RdMs6A+cvVsqopTngi+P07R0VeeoW9S23q2HN1uMKWQGFeuAKT4zuOHDS5zh8wVjUA0Cm814jVIUCX+Ooz0RL8o7OiXYcmcav3GVxiMr7soLGHb7sHHaWZYkTERbEhnhafEnJdfMeLwl5/jCgv5K7hE2X91c6J1gxaghzu8MpHuWMztxaoigRzopelsTqGinnJMJ/Y45X4CGEGWPirde8lPq+291zMDH7c1Ql9XU9TG+EtQaDSTBSkUUQvuFWy9McOjeyQ+OfjKB6MqA3A5huHm/h5ALbgVP+g4ptmjgxyvVk77xPssd/4pw5MB/cSJO9On6+5uNmBTM=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Hz2A4oz6cnaHyT+0bWCfwgKISZKX/wZciT3GmEhzXYyiy1IVyWG4DmYUX0?=
 =?iso-8859-1?Q?MjFTyBK+e3GsYUU2NFrSuV9oOkr//WL/+gw29Isj+WJVVeCbSuAl1LwrXF?=
 =?iso-8859-1?Q?manyZuak5Fnx/X4LBeVCtB7cP+WoIdQCo6lnFgIvOhD8EIrcPytQrB0NOH?=
 =?iso-8859-1?Q?nA+fq02DdWs9MHK5Z1BYXsxx0LqJkhhuyI2xLunYgLgJBnKEqptBvLfieU?=
 =?iso-8859-1?Q?gOjf999+zPCbgrJbiPoFMUISJkMZN0QIAvJ2jWY8PoqKkEPm/XduAl2OoB?=
 =?iso-8859-1?Q?FAx25TvHeiqkPC5WTjVcASTXlM+NJEnI2ZcZ2v2YcR9+mIPs0rk9PqdFq6?=
 =?iso-8859-1?Q?OAQ2XwKUBGE3v1/JqpN9QWhVC060HrmRL2P6GTETTPNTqk+uiUqxc7Eu70?=
 =?iso-8859-1?Q?6JGVdLBrBf9Zu5iwL+LDwWCzk1NR4xk6qb9HzXL1uMNmf/2TmZFJIeulVt?=
 =?iso-8859-1?Q?LhHnPIvs6fkAZ2oVXqcGpDikm3SGTicLX/8tGJW4dMblVJF9t8ojeQaWWO?=
 =?iso-8859-1?Q?jKSyWzgVdsDrjOHsvbIxHXgekU/iw7HXilaVE+DE/yt1zkleC9G5qaI+EP?=
 =?iso-8859-1?Q?Wxxfn3nk+OZEWUZFN6GFm0wC2vYXm2mcyTfJWbb5kkhzDKRzG9cJU/f6Iw?=
 =?iso-8859-1?Q?931XfgpnxV74+KcZT9+8YmmLEqHeMKhvhTt1jiCQxmq8TXpaE2WgP84TpT?=
 =?iso-8859-1?Q?JPdS+205/IL8Sznw2ninJ3Bq/DKya540L4ykf30z33gzuSRry9TBIhl1sV?=
 =?iso-8859-1?Q?AHOGHyZtl65AyWO1gwp1unpuIg4vt/HhXNPAjRTxJZ0pvp9zHUwwJ0ESfq?=
 =?iso-8859-1?Q?82Xmj1xxfjs1QZ7j1vj0VOvNHS8s8m850SxzENkKqq6cld4Ruw9pbTlye1?=
 =?iso-8859-1?Q?mgluidoXea9IAIWeh9kaaosCquowr5TJFQAiCDxeFrFzLeb/m4ugMUSxor?=
 =?iso-8859-1?Q?6qUVl4X4ah6xzdnkuOD/n5LRGNQ/JhpX+bTNfnS1hXFegIqCjn0c2cXggc?=
 =?iso-8859-1?Q?YIURmNRl+5WFGZTvYakC46jGURF11KuvXyhJfO7za2HvKd0wVL58TMXTOI?=
 =?iso-8859-1?Q?3qxZtfUAGycovB3a3xVMflcpGlbqc6rDksXy6tvQCVQNcSY0uxDcSDWRFV?=
 =?iso-8859-1?Q?O1/hz4XZqph2tQnNXfyC4ScmBilqgJxf7Vmh78eNDqbIxL5QiwHZTTsNyn?=
 =?iso-8859-1?Q?yyz+TPd+dB+htpxZkLan99z85WT7mFZXR8jAZruO0KoP6LUvzOZziA1eB/?=
 =?iso-8859-1?Q?Hb5ond9Yz9NjUmT3TOg/X5O7shq5mn3g7DNKr024ZXgPfrc2avkJICp0MB?=
 =?iso-8859-1?Q?J9w6dvQGWss392iyPyZ6e31Tq5oyqmdPF5HzsWpaSaR+XA8uFpPnMEy/u0?=
 =?iso-8859-1?Q?OMGX/UNMBurh1DINkEA9ordPxFMzjRnrkTF/k2HEzGZutrz0bruQLzMLr9?=
 =?iso-8859-1?Q?fnTJjaffeRNXNwdUkqSf3gQbnbk+zbO9zZJTFlxUAByCPUVcKr8MRBWtpH?=
 =?iso-8859-1?Q?pZI4uhv+IhEbNz8MHTvETUmTXa+QGI67rIf7ddE68xeujFJ493oJ9hvjfd?=
 =?iso-8859-1?Q?3scQXElL3h1iL4Vpm4IDwh4CsAIPpkfm+hdp43Ata1YsINQ4WJSw3OGW5C?=
 =?iso-8859-1?Q?Lo2YuohBwl6mE31IzikdkAEXCxSGzTd9YfUvAC5rBHNDYk4Ox/PBILx/2L?=
 =?iso-8859-1?Q?sSCS3uHA6lcGR9MVDZxDAwtRFZ6joeZ2cUxhb0D0836Hz7SZI/uKctCc+W?=
 =?iso-8859-1?Q?IajxcTF6OOsD/rGcnw5YErVSN1OZxYqK5/LGkB9fJr0JFitk52S/QfyR7C?=
 =?iso-8859-1?Q?3NeX19VyCvz0uKs+XuJHAPQQAHlGYH0=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2ce65a7d-1d19-4600-544e-08de801b436e
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Mar 2026 09:39:31.6558
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: u0I7QAJZ4S8sn/DVT3ofeYVTULjWtutwsHZtI7/p1aJzGVlS+L916ZLAXRj9S3Az8vEK4NpxjK4J+ZZJ+97gvg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB11417

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---

v5->v6:
* no changes

v4->v5:
* s/supported/implemented/
* update SUPPORT.md

v3->v4:
* update configuration section

v2->v3:
* patch introduced
---
 SUPPORT.md                |  1 +
 docs/misc/cpu-hotplug.txt | 50 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 51 insertions(+)
 create mode 100644 docs/misc/cpu-hotplug.txt

diff --git a/SUPPORT.md b/SUPPORT.md
index d441bccf37..7b93ae69e7 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -52,6 +52,7 @@ For the Cortex A77 r0p0 - r1p0, see Errata 1508412.
 ### ACPI CPU Hotplug
=20
     Status, x86: Experimental
+    Status, Arm64: Experimental
=20
 ### Physical Memory
=20
diff --git a/docs/misc/cpu-hotplug.txt b/docs/misc/cpu-hotplug.txt
new file mode 100644
index 0000000000..45f20c2002
--- /dev/null
+++ b/docs/misc/cpu-hotplug.txt
@@ -0,0 +1,50 @@
+CPU Hotplug
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+CPU hotplug is a feature that allows pCPU cores to be added to or removed =
from a
+running system without requiring a reboot. It is implemented on x86 and Ar=
m64
+architectures.
+
+Implementation Details
+----------------------
+
+CPU hotplug is implemented through the `XEN_SYSCTL_CPU_HOTPLUG_*` sysctl c=
alls.
+The specific calls are:
+
+- `XEN_SYSCTL_CPU_HOTPLUG_ONLINE`: Brings a pCPU online
+- `XEN_SYSCTL_CPU_HOTPLUG_OFFLINE`: Takes a pCPU offline
+- `XEN_SYSCTL_CPU_HOTPLUG_SMT_ENABLE`: Enables SMT threads (x86 only)
+- `XEN_SYSCTL_CPU_HOTPLUG_SMT_DISABLE`: Disables SMT threads (x86 only)
+
+All cores can be disabled, assuming hardware support, except for the boot =
core.
+Sysctl calls are routed to the boot core before doing any actual up/down
+operations on other cores.
+
+Configuration
+-------------
+
+The presence of the feature is controlled by CONFIG_CPU_HOTPLUG option. It=
 is
+enabled by default on x86 architecture. On Arm64, the option is enabled by
+default when ITS, FFA, and TEE configs are disabled.
+xen-hptool userspace tool is built unconditionally.
+
+Usage
+-----
+
+Disable core:
+
+$ xen-hptool cpu-offline 2
+Prepare to offline CPU 2
+(XEN) Removing cpu 2 from runqueue 0
+CPU 2 offlined successfully
+
+Enable core:
+
+$ xen-hptool cpu-online 2
+Prepare to online CPU 2
+(XEN) Bringing up CPU2
+(XEN) GICv3: CPU2: Found redistributor in region 0 @00000a004005c000
+(XEN) CPU2: Guest atomics will try 1 times before pausing the domain
+(XEN) CPU 2 booted.
+(XEN) Adding cpu 2 to runqueue 0
+CPU 2 onlined successfully
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 10:55:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 10:55:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251980.1548768 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0dhA-0006rD-8l; Thu, 12 Mar 2026 10:55:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251980.1548768; Thu, 12 Mar 2026 10:55:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0dhA-0006r6-65; Thu, 12 Mar 2026 10:55:12 +0000
Received: by outflank-mailman (input) for mailman id 1251980;
 Thu, 12 Mar 2026 10:55:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=nnrS=BM=huawei.com=jonathan.cameron@srs-se1.protection.inumbo.net>)
 id 1w0dh9-0006r0-0L
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 10:55:11 +0000
Received: from frasgout.his.huawei.com (frasgout.his.huawei.com
 [185.176.79.56]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ee7ed90c-1e01-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 11:55:08 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.18.224.150])
 by frasgout.his.huawei.com (SkyGuard) with ESMTPS id 4fWkyK3T4pzJ46kW;
 Thu, 12 Mar 2026 18:54:17 +0800 (CST)
Received: from dubpeml500005.china.huawei.com (unknown [7.214.145.207])
 by mail.maildlp.com (Postfix) with ESMTPS id 32AB64056B;
 Thu, 12 Mar 2026 18:55:05 +0800 (CST)
Received: from localhost (10.203.177.15) by dubpeml500005.china.huawei.com
 (7.214.145.207) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Thu, 12 Mar
 2026 10:55: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: ee7ed90c-1e01-11f1-b164-2bf370ae4941
Date: Thu, 12 Mar 2026 10:55:00 +0000
From: Jonathan Cameron <jonathan.cameron@huawei.com>
To: Chengwen Feng <fengchengwen@huawei.com>
CC: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>, Jonathan Corbet <corbet@lwn.net>, Shuah Khan
	<skhan@linuxfoundation.org>, Huacai Chen <chenhuacai@kernel.org>, "WANG
 Xuerui" <kernel@xen0n.name>, Paul Walmsley <pjw@kernel.org>, "Palmer Dabbelt"
	<palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, "Alexandre Ghiti"
	<alex@ghiti.fr>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar
	<mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, Dave Hansen
	<dave.hansen@linux.intel.com>, <x86@kernel.org>, "H . Peter Anvin"
	<hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris Ostrovsky
	<boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V L
	<sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Kees Cook
	<kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>, Sean Christopherson
	<seanjc@google.com>, Kai Huang <kai.huang@intel.com>, Tom Lendacky
	<thomas.lendacky@amd.com>, Thomas Huth <thuth@redhat.com>, Thorsten Blum
	<thorsten.blum@linux.dev>, Kevin Loughlin <kevinloughlin@google.com>, Zheyun
 Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra <peterz@infradead.org>, Pawan
 Gupta <pawan.kumar.gupta@linux.intel.com>, Xin Li <xin@zytor.com>, "Ahmed S .
 Darwish" <darwi@linutronix.de>, Sohil Mehta <sohil.mehta@intel.com>, Ilkka
 Koskinen <ilkka@os.amperecomputing.com>, Robin Murphy <robin.murphy@arm.com>,
	James Clark <james.clark@linaro.org>, Besar Wicaksono
	<bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, "Wei Huang"
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <linux-pci@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <loongarch@lists.linux.dev>,
	<linux-riscv@lists.infradead.org>, <xen-devel@lists.xenproject.org>,
	<linux-acpi@vger.kernel.org>, <linux-perf-users@vger.kernel.org>,
	<stable@vger.kernel.org>
Subject: Re: [PATCH v6 2/3] x86: Implement acpi_get_cpu_uid()
Message-ID: <20260312105500.00005d7c@huawei.com>
In-Reply-To: <20260312072316.4806-3-fengchengwen@huawei.com>
References: <20260312072316.4806-1-fengchengwen@huawei.com>
	<20260312072316.4806-3-fengchengwen@huawei.com>
X-Mailer: Claws Mail 4.3.0 (GTK 3.24.42; x86_64-w64-mingw32)
MIME-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.203.177.15]
X-ClientProxiedBy: lhrpeml500011.china.huawei.com (7.191.174.215) To
 dubpeml500005.china.huawei.com (7.214.145.207)

On Thu, 12 Mar 2026 15:23:15 +0800
Chengwen Feng <fengchengwen@huawei.com> wrote:

> Add acpi_get_cpu_uid() implementation for x86, replacing the existing
> cpu_acpi_id() function. This completes the unified ACPI Processor UID
> retrieval interface across all ACPI-enabled architectures.
> 
> Cc: stable@vger.kernel.org
> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>




From xen-devel-bounces@lists.xenproject.org Thu Mar 12 11:02:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 11:02:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1251991.1548777 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0doW-0008RK-0U; Thu, 12 Mar 2026 11:02:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1251991.1548777; Thu, 12 Mar 2026 11:02: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 1w0doV-0008RD-TE; Thu, 12 Mar 2026 11:02:47 +0000
Received: by outflank-mailman (input) for mailman id 1251991;
 Thu, 12 Mar 2026 11:02: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=Avp9=BM=infradead.org=peterz@srs-se1.protection.inumbo.net>)
 id 1w0doT-0008Qy-CQ
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 11:02:46 +0000
Received: from casper.infradead.org (casper.infradead.org
 [2001:8b0:10b:1236::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fdcd0d14-1e02-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 12:02:43 +0100 (CET)
Received: from
 2001-1c00-8d85-5700-266e-96ff-fe07-7dcc.cable.dynamic.v6.ziggo.nl
 ([2001:1c00:8d85:5700:266e:96ff:fe07:7dcc]
 helo=noisy.programming.kicks-ass.net)
 by casper.infradead.org with esmtpsa (Exim 4.98.2 #2 (Red Hat Linux))
 id 1w0dnq-0000000BDV5-3GNL; Thu, 12 Mar 2026 11:02:06 +0000
Received: by noisy.programming.kicks-ass.net (Postfix, from userid 1000)
 id AC3B5300462; Thu, 12 Mar 2026 12:02:05 +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: fdcd0d14-1e02-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=TKIEX/tTmZZzj6V6Q9LOzPYb6+bhVRh9N9evN1bqSfc=; b=an8qvmMRT6e0/uIgvv6SvD7SLo
	4m+UvPB5+18GpbDiaL9IxO3UA1h4nyJ0FZtTMBA4+J8t9buo20vz5+l2obe0Hhuhm03AWzFimVp4D
	YtHlF5LCr5cNGTsUr/nANJN0G/ar8NTW96doAb79xogVjlFtfvWv3tS4G8vgrwid1zRyuKnnoOtRg
	cRE6fVkUPmEULPsE/mtiFGjwxhTv0E57tOdjLrOaPqcviA5Hx/nImdKNCvkkIHyFLP9mr/wm0JSMb
	0Thh4CDgCwqZ4HpWOjjPbbgfQIiKl0MIq4avo+r94PhokRILHHajLVnNT16BcpXuKO/m4C7RcJSQ1
	afukQ/VQ==;
Date: Thu, 12 Mar 2026 12:02:05 +0100
From: Peter Zijlstra <peterz@infradead.org>
To: Chengwen Feng <fengchengwen@huawei.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>,
	WANG Xuerui <kernel@xen0n.name>, Paul Walmsley <pjw@kernel.org>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>,
	Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Len Brown <lenb@kernel.org>, Sunil V L <sunilvl@ventanamicro.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Jonathan Cameron <jonathan.cameron@huawei.com>,
	Kees Cook <kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>,
	Sean Christopherson <seanjc@google.com>,
	Kai Huang <kai.huang@intel.com>,
	Tom Lendacky <thomas.lendacky@amd.com>,
	Thomas Huth <thuth@redhat.com>,
	Thorsten Blum <thorsten.blum@linux.dev>,
	Kevin Loughlin <kevinloughlin@google.com>,
	Zheyun Shen <szy0127@sjtu.edu.cn>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>,
	Xin Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>,
	Sohil Mehta <sohil.mehta@intel.com>,
	Ilkka Koskinen <ilkka@os.amperecomputing.com>,
	Robin Murphy <robin.murphy@arm.com>,
	James Clark <james.clark@linaro.org>,
	Besar Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>,
	Wei Huang <wei.huang2@amd.com>,
	Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>,
	punit.agrawal@oss.qualcomm.com, guohanjun@huawei.com,
	suzuki.poulose@arm.com, ryan.roberts@arm.com,
	chenl311@chinatelecom.cn, masahiroy@kernel.org,
	wangyuquan1236@phytium.com.cn, anshuman.khandual@arm.com,
	heinrich.schuchardt@canonical.com, Eric.VanTassell@amd.com,
	wangzhou1@hisilicon.com, wanghuiqiang@huawei.com,
	liuyonglong@huawei.com, linux-pci@vger.kernel.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev,
	linux-riscv@lists.infradead.org, xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org, linux-perf-users@vger.kernel.org,
	stable@vger.kernel.org
Subject: Re: [PATCH v6 2/3] x86: Implement acpi_get_cpu_uid()
Message-ID: <20260312110205.GG606826@noisy.programming.kicks-ass.net>
References: <20260312072316.4806-1-fengchengwen@huawei.com>
 <20260312072316.4806-3-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260312072316.4806-3-fengchengwen@huawei.com>

On Thu, Mar 12, 2026 at 03:23:15PM +0800, Chengwen Feng wrote:
> Add acpi_get_cpu_uid() implementation for x86, replacing the existing
> cpu_acpi_id() function. This completes the unified ACPI Processor UID
> retrieval interface across all ACPI-enabled architectures.
> 
> Cc: stable@vger.kernel.org
> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
> ---
>  arch/x86/include/asm/cpu.h   |  1 -
>  arch/x86/include/asm/smp.h   |  1 -
>  arch/x86/kernel/cpu/common.c | 15 +++++++++++++++
>  arch/x86/xen/enlighten_hvm.c |  5 +++--
>  include/linux/acpi.h         |  2 --
>  5 files changed, 18 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h
> index ad235dda1ded..57a0786dfd75 100644
> --- a/arch/x86/include/asm/cpu.h
> +++ b/arch/x86/include/asm/cpu.h
> @@ -11,7 +11,6 @@
>  
>  #ifndef CONFIG_SMP
>  #define cpu_physical_id(cpu)			boot_cpu_physical_apicid
> -#define cpu_acpi_id(cpu)			0
>  #endif /* CONFIG_SMP */
>  
>  #ifdef CONFIG_HOTPLUG_CPU
> diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
> index 84951572ab81..05d1d479b4cf 100644
> --- a/arch/x86/include/asm/smp.h
> +++ b/arch/x86/include/asm/smp.h
> @@ -130,7 +130,6 @@ __visible void smp_call_function_interrupt(struct pt_regs *regs);
>  __visible void smp_call_function_single_interrupt(struct pt_regs *r);
>  
>  #define cpu_physical_id(cpu)	per_cpu(x86_cpu_to_apicid, cpu)
> -#define cpu_acpi_id(cpu)	per_cpu(x86_cpu_to_acpiid, cpu)
>  
>  /*
>   * This function is needed by all SMP systems. It must _always_ be valid
> diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
> index 1c3261cae40c..3081557542c7 100644
> --- a/arch/x86/kernel/cpu/common.c
> +++ b/arch/x86/kernel/cpu/common.c
> @@ -28,6 +28,7 @@
>  #include <linux/stackprotector.h>
>  #include <linux/utsname.h>
>  #include <linux/efi.h>
> +#include <linux/acpi.h>
>  
>  #include <asm/alternative.h>
>  #include <asm/cmdline.h>
> @@ -57,6 +58,7 @@
>  #include <asm/asm.h>
>  #include <asm/bugs.h>
>  #include <asm/cpu.h>
> +#include <asm/smp.h>
>  #include <asm/mce.h>
>  #include <asm/msr.h>
>  #include <asm/cacheinfo.h>
> @@ -2643,3 +2645,16 @@ void __init arch_cpu_finalize_init(void)
>  	 */
>  	mem_encrypt_init();
>  }
> +
> +int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
> +{
> +	if (cpu >= nr_cpu_ids)
> +		return -EINVAL;
> +#ifndef CONFIG_SMP
> +	*uid = 0;
> +#else
> +	*uid = per_cpu(x86_cpu_to_acpiid, cpu);
> +#endif
> +	return 0;
> +}
> +EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
> diff --git a/arch/x86/xen/enlighten_hvm.c b/arch/x86/xen/enlighten_hvm.c
> index fe57ff85d004..2f9fa27e5a3c 100644
> --- a/arch/x86/xen/enlighten_hvm.c
> +++ b/arch/x86/xen/enlighten_hvm.c
> @@ -151,6 +151,7 @@ static void xen_hvm_crash_shutdown(struct pt_regs *regs)
>  
>  static int xen_cpu_up_prepare_hvm(unsigned int cpu)
>  {
> +	u32 cpu_uid;
>  	int rc = 0;
>  
>  	/*
> @@ -161,8 +162,8 @@ static int xen_cpu_up_prepare_hvm(unsigned int cpu)
>  	 */
>  	xen_uninit_lock_cpu(cpu);
>  
> -	if (cpu_acpi_id(cpu) != CPU_ACPIID_INVALID)
> -		per_cpu(xen_vcpu_id, cpu) = cpu_acpi_id(cpu);
> +	if (acpi_get_cpu_uid(cpu, &cpu_uid) == 0)
> +		per_cpu(xen_vcpu_id, cpu) = cpu_uid;
>  	else
>  		per_cpu(xen_vcpu_id, cpu) = cpu;
>  	xen_vcpu_setup(cpu);

This doesn't look right, it will now set CPU_ACPIID_INVALID, while
previously it would not.



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 11:07:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 11:07:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252001.1548786 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0dtR-0000ZF-H7; Thu, 12 Mar 2026 11:07:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252001.1548786; Thu, 12 Mar 2026 11: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 1w0dtR-0000Z8-DQ; Thu, 12 Mar 2026 11:07:53 +0000
Received: by outflank-mailman (input) for mailman id 1252001;
 Thu, 12 Mar 2026 11: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=nnrS=BM=huawei.com=jonathan.cameron@srs-se1.protection.inumbo.net>)
 id 1w0dtP-0000Z2-Rb
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 11:07:51 +0000
Received: from frasgout.his.huawei.com (frasgout.his.huawei.com
 [185.176.79.56]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b45aed71-1e03-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 12:07:49 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.18.224.107])
 by frasgout.his.huawei.com (SkyGuard) with ESMTPS id 4fWlFh4gmtzHnH8v;
 Thu, 12 Mar 2026 19:07:36 +0800 (CST)
Received: from dubpeml500005.china.huawei.com (unknown [7.214.145.207])
 by mail.maildlp.com (Postfix) with ESMTPS id 29C2E40584;
 Thu, 12 Mar 2026 19:07:46 +0800 (CST)
Received: from localhost (10.203.177.15) by dubpeml500005.china.huawei.com
 (7.214.145.207) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Thu, 12 Mar
 2026 11:07: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: b45aed71-1e03-11f1-b164-2bf370ae4941
Date: Thu, 12 Mar 2026 11:07:42 +0000
From: Jonathan Cameron <jonathan.cameron@huawei.com>
To: Chengwen Feng <fengchengwen@huawei.com>
CC: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>, Jonathan Corbet <corbet@lwn.net>, Shuah Khan
	<skhan@linuxfoundation.org>, Huacai Chen <chenhuacai@kernel.org>, "WANG
 Xuerui" <kernel@xen0n.name>, Paul Walmsley <pjw@kernel.org>, "Palmer Dabbelt"
	<palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, "Alexandre Ghiti"
	<alex@ghiti.fr>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar
	<mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, Dave Hansen
	<dave.hansen@linux.intel.com>, <x86@kernel.org>, "H . Peter Anvin"
	<hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris Ostrovsky
	<boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V L
	<sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Kees Cook
	<kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>, Sean Christopherson
	<seanjc@google.com>, Kai Huang <kai.huang@intel.com>, Tom Lendacky
	<thomas.lendacky@amd.com>, Thomas Huth <thuth@redhat.com>, Thorsten Blum
	<thorsten.blum@linux.dev>, Kevin Loughlin <kevinloughlin@google.com>, Zheyun
 Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra <peterz@infradead.org>, Pawan
 Gupta <pawan.kumar.gupta@linux.intel.com>, Xin Li <xin@zytor.com>, "Ahmed S .
 Darwish" <darwi@linutronix.de>, Sohil Mehta <sohil.mehta@intel.com>, Ilkka
 Koskinen <ilkka@os.amperecomputing.com>, Robin Murphy <robin.murphy@arm.com>,
	James Clark <james.clark@linaro.org>, Besar Wicaksono
	<bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, "Wei Huang"
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <linux-pci@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <loongarch@lists.linux.dev>,
	<linux-riscv@lists.infradead.org>, <xen-devel@lists.xenproject.org>,
	<linux-acpi@vger.kernel.org>, <linux-perf-users@vger.kernel.org>,
	<stable@vger.kernel.org>
Subject: Re: [PATCH v6 1/3] ACPI: Rename get_acpi_id_for_cpu() to
 acpi_get_cpu_uid() on non-x86
Message-ID: <20260312110742.00002716@huawei.com>
In-Reply-To: <20260312072316.4806-2-fengchengwen@huawei.com>
References: <20260312072316.4806-1-fengchengwen@huawei.com>
	<20260312072316.4806-2-fengchengwen@huawei.com>
X-Mailer: Claws Mail 4.3.0 (GTK 3.24.42; x86_64-w64-mingw32)
MIME-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable
X-Originating-IP: [10.203.177.15]
X-ClientProxiedBy: lhrpeml500012.china.huawei.com (7.191.174.4) To
 dubpeml500005.china.huawei.com (7.214.145.207)

On Thu, 12 Mar 2026 15:23:14 +0800
Chengwen Feng <fengchengwen@huawei.com> wrote:

> To unify the CPU ACPI ID retrieval interface across architectures,
> rename the existing get_acpi_id_for_cpu() function to
> acpi_get_cpu_uid() on arm64/riscv/loongarch platforms.
>=20
> This is a pure rename with no functional change, preparing for a

It's not just a rename.  This should mention that the addition of error
checks and hence the resulting signature change.

> consistent ACPI Processor UID retrieval interface across all ACPI-enabled
> platforms.
>=20
> Note: Move the ARM64-specific get_cpu_for_acpi_id() implementation to
>       arch/arm64/kernel/acpi_numa.c to fix compilation errors from
>       circular header dependencies introduced by the rename.
>=20
> Cc: stable@vger.kernel.org
> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
> Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
=46rom a reread, a few minor style consistency things inline.

> ---
>  arch/arm64/include/asm/acpi.h      | 16 +---------
>  arch/arm64/kernel/acpi.c           | 16 ++++++++++
>  arch/arm64/kernel/acpi_numa.c      | 15 ++++++++++
>  arch/loongarch/include/asm/acpi.h  |  5 ----
>  arch/loongarch/kernel/acpi.c       |  9 ++++++
>  arch/riscv/include/asm/acpi.h      |  4 ---
>  arch/riscv/kernel/acpi.c           | 16 ++++++++++
>  arch/riscv/kernel/acpi_numa.c      |  8 +++--
>  drivers/acpi/pptt.c                | 47 +++++++++++++++++++++---------
>  drivers/acpi/riscv/rhct.c          |  7 ++++-
>  drivers/perf/arm_cspmu/arm_cspmu.c |  6 ++--
>  include/linux/acpi.h               | 13 +++++++++
>  12 files changed, 120 insertions(+), 42 deletions(-)

> diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
> index af90128cfed5..984a11788265 100644
> --- a/arch/arm64/kernel/acpi.c
> +++ b/arch/arm64/kernel/acpi.c
> @@ -458,3 +458,19 @@ int acpi_unmap_cpu(int cpu)
>  }
>  EXPORT_SYMBOL(acpi_unmap_cpu);
>  #endif /* CONFIG_ACPI_HOTPLUG_CPU */
> +
> +int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
> +{
> +	struct acpi_madt_generic_interrupt *gicc;
> +
> +	if (cpu >=3D nr_cpu_ids)
> +		return -EINVAL;
> +
> +	gicc =3D acpi_cpu_get_madt_gicc(cpu);
> +	if (gicc =3D=3D NULL)

Seems local style for null pointer checks is
	if (!gicc)
Just for consistency we should follow that.

> +		return -ENODEV;
> +
> +	*uid =3D gicc->uid;
> +	return 0;
> +}
> +EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
> diff --git a/arch/arm64/kernel/acpi_numa.c b/arch/arm64/kernel/acpi_numa.c
> index 2465f291c7e1..56e2e486e49b 100644
> --- a/arch/arm64/kernel/acpi_numa.c
> +++ b/arch/arm64/kernel/acpi_numa.c
> @@ -34,6 +34,21 @@ int __init acpi_numa_get_nid(unsigned int cpu)
>  	return acpi_early_node_map[cpu];
>  }
> =20
> +int get_cpu_for_acpi_id(u32 uid)
> +{
> +	u32 cpu_uid;
> +	int cpu;
> +	int ret;
> +
> +	for (cpu =3D 0; cpu < nr_cpu_ids; cpu++) {

Given more recent acceptance of the following perhaps it is neater here.

	for (int cpu =3D 0; cpu < nr_cpu_ids; cpu++) {

Amazingly there aren't any for loops in this file so we can do what we
like from a consistency point of view.


> +		ret =3D acpi_get_cpu_uid(cpu, &cpu_uid);
> +		if (ret =3D=3D 0 && uid =3D=3D cpu_uid)
> +			return cpu;
> +	}
> +
> +	return -EINVAL;
> +}
> +
>  static int __init acpi_parse_gicc_pxm(union acpi_subtable_headers *heade=
r,
>  				      const unsigned long end)
>  {


> diff --git a/arch/riscv/kernel/acpi.c b/arch/riscv/kernel/acpi.c
> index 71698ee11621..bde810d02c4f 100644
> --- a/arch/riscv/kernel/acpi.c
> +++ b/arch/riscv/kernel/acpi.c
> @@ -337,3 +337,19 @@ int raw_pci_write(unsigned int domain, unsigned int =
bus,
>  }
> =20
>  #endif	/* CONFIG_PCI */
> +
> +int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
> +{
> +	struct acpi_madt_rintc *rintc;
> +
> +	if (cpu >=3D nr_cpu_ids)
> +		return -EINVAL;
> +
> +	rintc =3D acpi_cpu_get_madt_rintc(cpu);
> +	if (rintc =3D=3D NULL)

Similar to above. Local style for NULL checks is
	if (!rintc)
so this should follow that.
> +		return -ENODEV;
> +
> +	*uid =3D rintc->uid;
> +	return 0;
> +}
> +EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
> diff --git a/arch/riscv/kernel/acpi_numa.c b/arch/riscv/kernel/acpi_numa.c
> index 130769e3a99c..cd8adc9857e3 100644
> --- a/arch/riscv/kernel/acpi_numa.c
> +++ b/arch/riscv/kernel/acpi_numa.c
> @@ -37,11 +37,15 @@ static int __init acpi_numa_get_nid(unsigned int cpu)
> =20
>  static inline int get_cpu_for_acpi_id(u32 uid)
>  {
> +	u32 cpu_uid;
>  	int cpu;
> +	int ret;
> =20
> -	for (cpu =3D 0; cpu < nr_cpu_ids; cpu++)
> -		if (uid =3D=3D get_acpi_id_for_cpu(cpu))
> +	for (cpu =3D 0; cpu < nr_cpu_ids; cpu++) {

Can pull the int into the loop her as well.

> +		ret =3D acpi_get_cpu_uid(cpu, &cpu_uid);
> +		if (ret =3D=3D 0 && uid =3D=3D cpu_uid)
>  			return cpu;
> +	}
> =20
>  	return -EINVAL;
>  }
> diff --git a/drivers/acpi/pptt.c b/drivers/acpi/pptt.c
> index de5f8c018333..d034a217e85b 100644
> --- a/drivers/acpi/pptt.c
> +++ b/drivers/acpi/pptt.c

>  static int check_acpi_cpu_flag(unsigned int cpu, int rev, u32 flag)
>  {
>  	struct acpi_table_header *table;
> -	u32 acpi_cpu_id =3D get_acpi_id_for_cpu(cpu);
> +	u32 acpi_cpu_id;
>  	struct acpi_pptt_processor *cpu_node =3D NULL;
>  	int ret =3D -ENOENT;
> =20
> +	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) !=3D 0)
> +		return -ENOENT;
> +
>  	table =3D acpi_get_pptt();
>  	if (!table)
>  		return -ENOENT;
> @@ -651,7 +661,8 @@ static int check_acpi_cpu_flag(unsigned int cpu, int =
rev, u32 flag)
>   * in the PPTT. Errors caused by lack of a PPTT table, or otherwise, ret=
urn 0
>   * indicating we didn't find any cache levels.
>   *
> - * Return: -ENOENT if no PPTT table or no PPTT processor struct found.
> + * Return: -ENOENT if no PPTT table, can't get CPU's ACPI Process UID or=
 no PPTT
> + *	   processor struct found.
>   *	   0 on success.
>   */
>  int acpi_get_cache_info(unsigned int cpu, unsigned int *levels,
> @@ -671,7 +682,8 @@ int acpi_get_cache_info(unsigned int cpu, unsigned in=
t *levels,
> =20
>  	pr_debug("Cache Setup: find cache levels for CPU=3D%d\n", cpu);
> =20
> -	acpi_cpu_id =3D get_acpi_id_for_cpu(cpu);
> +	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id))
> +		return -ENOENT;
I'd put a blank line here (similar to the code you added just above).
>  	cpu_node =3D acpi_find_processor_node(table, acpi_cpu_id);
>  	if (!cpu_node)
>  		return -ENOENT;
> @@ -780,8 +792,9 @@ int find_acpi_cpu_topology_package(unsigned int cpu)
>   * It may not exist in single CPU systems. In simple multi-CPU systems,
>   * it may be equal to the package topology level.
>   *
> - * Return: -ENOENT if the PPTT doesn't exist, the CPU cannot be found
> - * or there is no toplogy level above the CPU..
> + * Return: -ENOENT if the PPTT doesn't exist, can't get CPU's ACPI
> + * Processor UID, the CPU cannot be found or there is no toplogy level
> + * above the CPU.
>   * Otherwise returns a value which represents the package for this CPU.
>   */
> =20
> @@ -797,7 +810,8 @@ int find_acpi_cpu_topology_cluster(unsigned int cpu)
>  	if (!table)
>  		return -ENOENT;
> =20
> -	acpi_cpu_id =3D get_acpi_id_for_cpu(cpu);
> +	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) !=3D 0)
> +		return -ENOENT;
Again, I'd put a blank line here.

>  	cpu_node =3D acpi_find_processor_node(table, acpi_cpu_id);
>  	if (!cpu_node || !cpu_node->parent)
>  		return -ENOENT;
> @@ -872,7 +886,8 @@ static void acpi_pptt_get_child_cpus(struct acpi_tabl=
e_header *table_hdr,
>  	cpumask_clear(cpus);
> =20
>  	for_each_possible_cpu(cpu) {
> -		acpi_id =3D get_acpi_id_for_cpu(cpu);
> +		if (acpi_get_cpu_uid(cpu, &acpi_id) !=3D 0)
> +			continue;
and here.
>  		cpu_node =3D acpi_find_processor_node(table_hdr, acpi_id);
> =20
>  		while (cpu_node) {




From xen-devel-bounces@lists.xenproject.org Thu Mar 12 11:14:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 11:14:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252013.1548795 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0dzk-00028V-7f; Thu, 12 Mar 2026 11:14:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252013.1548795; Thu, 12 Mar 2026 11:14:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0dzk-00028O-4k; Thu, 12 Mar 2026 11:14:24 +0000
Received: by outflank-mailman (input) for mailman id 1252013;
 Thu, 12 Mar 2026 11:14: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=R7O7=BM=gmail.com=soumyajyotisarkar23@srs-se1.protection.inumbo.net>)
 id 1w0dzj-00028I-Ok
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 11:14:23 +0000
Received: from mail-pg1-x542.google.com (mail-pg1-x542.google.com
 [2607:f8b0:4864:20::542])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9e9d699b-1e04-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 12:14:22 +0100 (CET)
Received: by mail-pg1-x542.google.com with SMTP id
 41be03b00d2f7-c73a5473bbdso327130a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 04:14:22 -0700 (PDT)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2aeae34eaacsm49271645ad.49.2026.03.12.04.14.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 12 Mar 2026 04:14:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9e9d699b-1e04-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773314060; x=1773918860; 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=eHEcVdS/sWWyKqS0PygUhFz4ja7UaUTr7MKPVVRagws=;
        b=DQvJwFP3HOKn0FD6wEvXVzYdEQsprDc0BwmFXkGzP3II2McIHhrX6jPtYPBpuMzO1G
         T73FAwqhbRyeSbxkgYomNnEybekK7RSacFYtsoDfG/nTKZPtOnJr+GnL/Qd2DDgSKyfP
         N8qkcne/NuEQU3MkSVib5qjrKpfykvz8xqzMIZOwAVq+dECJ5gRuBvhGULNwuGgIO6u9
         o/k4ATbDaeTXxQarRYIhKVbmahI+Y0wS9vB5H5AopU1ut0fLsHCvEWDrVvkTapWcl1c2
         PaoajP4OKDD0bsuk75rbBgXUjNvFhWD5Z/BgwvLsextNpviCty5DDepAnoAPXM+viwK4
         G+fg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773314060; x=1773918860;
        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=eHEcVdS/sWWyKqS0PygUhFz4ja7UaUTr7MKPVVRagws=;
        b=kDygM7Em8EUfqE1suwyi2HHMpEGCD9IAKUP3gKj93febp8/VctRc1ARpvmjwoSkWPi
         ByvcnFq+gTa7mWu5gnhJCA+xUOBjckFOWEXudjFTdAnLjtHDacu0AzOeUzXtWOQEW22u
         UomF5sH36BxnjpUN86feiNCW5IREZ720Xa0hgmnm0QUISe6yQRpU5TTwuN/N/F7CP8qw
         VLhzYVfywlaYb51iMLN6nv4VidEnUcrZ/1Qw7ZgJpAIugLzjttJAI8jYxHrBwXj1IAPw
         KA5NJ4y7qvlEVsMM7f1F4N1wC0745cP+EY5bgY5TFxfU/2uXfnN1TIeTQV0kxrG+KH4g
         44eQ==
X-Gm-Message-State: AOJu0Yzupnu6Je4SEWiQiMlrnqOUrXfe9zmdhAf0lGaje18lXavejwvq
	Pp6q125I48NpisamraDck7wQhbkouiWeomXeWs5dTMbjHMokuYea4tZwmcNhY28q
X-Gm-Gg: ATEYQzwMdAaO8x32k1kkfe5Ab0THk9B3SMiZi6fw5XNVS2WRaJItJ3um2NxXwGNgZ+8
	qyccWOynzA3vkera0pAYH5KVBX9V/yXteCFIUZQkclv2cWTJ0mtzTGN4gYqoCdKH+ilhgeuTBi1
	rP3/F59Ip0vzC34vqBR8uHQ6h6TI5ez7F0yFLg0pHldZixMtEbJ8E9qffdU3FEiOVbrTXJIHOo3
	kBhHdSGDUcHOrw+0Y8ffTBShHNllHwXrfWbu2DSkQ9TpUo72CZZrPAy6agjGX/Uzln/D4TOHmlT
	PxQcD5KUQBnO48LA6LuQNFx7j+SjUJmMyzYhw1qRRYE5FdJNPkW/72SL5PZwTUJ6cwQUjZfpg4g
	9WHuzQrFV2zPHmbMmYViXqP5CU4+i1kboh359bGJd4BD3J57MNwvNrDAQTtrJHZm0EltX2o8aRa
	ZvrSYL8MGet1lukKNstKgTmRP4D4UjVZcq32o+aFZgdzfO/dmIxIzfJitbVF393l0ci2NqyUK09
	t8JOH3KveoHEMPP7ftjOk6FQpM7tKH2gYfbPIyJGmzUidS/wkPSksTnR0sNAXONEN895qPpula/
	dEO4OsZg
X-Received: by 2002:a17:902:e84d:b0:2ae:5eee:7a5 with SMTP id d9443c01a7336-2aeae78c1dbmr64401185ad.12.1773314060394;
        Thu, 12 Mar 2026 04:14:20 -0700 (PDT)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: xen-devel@lists.xenproject.org,
	sarkarsoumyajyoti23@gmail.com
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [RFC PATCH v3 0/3] Fixing ACPI BGRT (Boot Graphics Resource Table) corruption
Date: Thu, 12 Mar 2026 16:44:11 +0530
Message-ID: <20260312111414.17808-1-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This RFC series plans to addres ACPI BGRT (Boot Graphics Resource Table) corruption,
that occured when Xen reuses the memory containing the boot logo
image before dom0 is able to parse ACPI tables.

The BGRT table contains a pointer to a BMP image stored in
BootServicesData memory. When Xen reclaims this memory early in boot,
the pointer becomes invalid, causing Linux dom0 to report:
Xen: `(XEN) ACPI: BGRT: invalidating v1 image at 0x47cc2018`
Linux (dom0): `ACPI BIOS Warning (bug): Incorrect checksum
in table [BGRT] - 0xF9, should be 0xB4 (20250807/utcksum-58)`

This series:
1. Adds BGRT image preservation infrastructure during EFI boot
(validates BMP format, allocates EfiACPIReclaimMemory, stores pointers)

2. Integrates preservation with ACPI subsystem
(clarifies acpi_invalidate_bgrt() safety net behavior,
adds status reporting via efi_bgrt_status_info())

3. Provides opt-out mechanism
(-nobgrt for xen.efi direct boot, efi=no-bgrt
for multiboot2, both via early EFI-phase parsing)

The preservation is enabled by default to fix the corruption for all
users, with minimal overhead (~1MB). Also, servers that don't need boot
graphics can disable it using the "efi=no-bgrt" option.

Thank you everyone for the constructive feedback! It is really helpful,
I hope this RFC series is upto standards, I would greatly appriciate further feedback.

Changes since v1:
- The BGRT invalidation behaviour should still presist
  and server as a safety net when "efi=no-bgrt" or the
  preservation fails for some reason thus: Add Clarify comment
  for BGRT invalidation behavior with preservation.
Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Changes since v2:
- Use existing ACPI headers (actbl.h, actbl3.h) instead of custom structs
- Modify the function names and code in function to conform with Coding Style.
- Reuse efi.acpi20 from efi_tables() instead of manual RSDP search
- Use appropriate types: EFI types for firmware code, unsigned int for
  loop counters (matching ESRT pattern)
- Used of sizeof(<expression>) over sizeof(<type>)
- Remove fixed-type widths & limited typecasting
- Add Blank line ahead of the main return statement of a function.
- Better wording error message for image cap size
- Remove parse_boolean(no-bgrt) since it could be bit misleading
- Add const qualifiers throughout for safety
- Use %p format for pointers (32-bit compatibility)
- Initialize failure_reason with string literal for proper relocation
- Use memcmp() with ACPI_SIG_* constants for signature checks
- Add direct Xen.efi calling.
- Add opt-out mechanism with proper early parsing during EFI phase.

Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reported-by: Jan Beulich <jbeulich@suse.com>

Please refer to QubesOS Issue for more context:
https://github.com/QubesOS/qubes-issues/issues/10764

This is a companion series to Linux Kernel side at
https://patchew.org/linux/cover.751f45ebbb644244b1d9da3aff289d6b66db4c6b.1773058629.git-series.marmarek@invisiblethingslab.com/

Testing:
- Verified on Intel UEFI system with Fedora 43 dom0
- Before: ACPI checksum errors in dom0
- After: Clean boot, no ACPI warnings
- Memory overhead: ~972 KB (preserved image size)

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>

Soumyajyotii Ssarkar (3):
  x86/efi: Add BGRT image preservation infrastructure
  x86/acpi: Integrate BGRT preservation with status reporting
  x86/efi: Add opt-out mechanism for BGRT preservation

 xen/arch/x86/acpi/boot.c    |   8 ++
 xen/arch/x86/efi/efi-boot.h |   5 ++
 xen/common/efi/boot.c       | 158 ++++++++++++++++++++++++++++++++++++
 xen/include/xen/efi.h       |   1 +
 4 files changed, 172 insertions(+)

--
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 11:14:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 11:14:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252014.1548804 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0dzn-0002NZ-ET; Thu, 12 Mar 2026 11:14:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252014.1548804; Thu, 12 Mar 2026 11:14:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0dzn-0002NN-BD; Thu, 12 Mar 2026 11:14:27 +0000
Received: by outflank-mailman (input) for mailman id 1252014;
 Thu, 12 Mar 2026 11:14: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=R7O7=BM=gmail.com=soumyajyotisarkar23@srs-se1.protection.inumbo.net>)
 id 1w0dzm-00028I-U6
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 11:14:26 +0000
Received: from mail-pl1-x641.google.com (mail-pl1-x641.google.com
 [2607:f8b0:4864:20::641])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a0bd6a30-1e04-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 12:14:26 +0100 (CET)
Received: by mail-pl1-x641.google.com with SMTP id
 d9443c01a7336-2ae88e16485so7067395ad.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 04:14:26 -0700 (PDT)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2aeae34eaacsm49271645ad.49.2026.03.12.04.14.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 12 Mar 2026 04:14:23 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a0bd6a30-1e04-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773314064; x=1773918864; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RPerCwQjjELYfGowH6evflvClMRzfpgAd8/IYGd3nUo=;
        b=mDebFh2bQ5yIw+y0cb2hdOzNRGLJ8VTeuY5SUkV0+B5rSOrHh7bUKwGALpygOKehm2
         mgl16lGkVUB9o11mQKVjaZYiylI22UBvJpYkF25sblHu3m4qUgKRjsWeUC/W7YHMfgIf
         BnYAMC/smos1C8pbz1MpcOKbADAZGzE4p8nW3aN56M0pAGdlBc6VL0BV6TtF+nBijyoh
         g4wGPn2zXE3t4gkj5E7onZgsPGHNvLnUWguqBOuvGFMAKXFuU7+6mWF3GGgF1zg0vx1n
         NSQAZQXrbmXvwKjOx0+Yq81NOFwi1G+eA/PXghEbxchUylXxAa+0UdTz0YhQ4FlxlKDy
         fcxw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773314064; x=1773918864;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=RPerCwQjjELYfGowH6evflvClMRzfpgAd8/IYGd3nUo=;
        b=NhR/j5JaT2BMnF1zOpYindi9vN+JCeu2pdSFHEb3Aa/OsLioSLlgXdRpsL6rSH0cip
         UYAyJHJg0ExGD7/YtCT5FSosPg3/4vrcZ4mT8XQKyHt0nmBI8JYRcF9aggTyaXU6j48R
         omqtpcN0Xkm41rxTTcn7IAjaEdPSpLSS8KlA5oWY1n2YrLTEPDq8MLgj1cAjUIBET9Gq
         U/3rQPPPPirv35dUEkeR/vCSwo/0bKwP4x/kKFo7qcxgc0lEP9B0emrdN9MHQXpMXxWM
         dt5Njtp+oRwpqqpGgC9LWqTVcewKpHwReqKOEcFL6M2+stttIwR1W48olA7ul0lIosQP
         KldA==
X-Gm-Message-State: AOJu0Yw27j4aQYyOiIL/6rDcJ9gxtzI7gqBQ/qCMOp4sprBQhxA5TB8B
	HtTUhWGIbUdkAyQQeo6UINo4f55D056zlvawOf0bY9nFUZvX5l3Yp9/ELlL1oCAz
X-Gm-Gg: ATEYQzxfeqe7Z1UxsO5Q8FPraMxIiDABdVQX7WUjcg3suIgmzKF/1PpCiZ5ecoYSpKk
	GCzz7b74CmI2BvcsoUEkoBHFeZeamVFkxHwFZj4c1GWc2ta+UdyFVEzbanifhKtd071fx5oQRxB
	PcH5g+I/1gpiH7U46DgbaFUnc0lYtH0C4YQkwUsmVcOLAyYGelP35yTDDDKOpOmOfVPhoHuNw14
	mTbatBZOnVyjWCitf+O/KBd/qUJtHFv2c88Lua0ajJV/KLDyMAt6Dd/GN9gho5eBv2CAf+7ZTrS
	7aIrNsUrQ5UgVZJIbydbXCv9nHx5il5nWcfNHYO9O9tDbx3c1/fbuBMWFYPBL6x85l4bmNdXBny
	Q9FSTzGv2zwkxjniJPqGnyAlnU+FiSFhXjc5O1otiXvAn3dHLQ5Nm3BMTm9M25X6luNzhARSQcN
	NugBi36N3QUlauLpjr1Ml+Gbwwd6bxkQILR8HvdWd4DaK/tRKRBn6F6+3pFczKKl0ZgXJXpu1W7
	FcMdjMXBsWUZYRIWEaTXsJCML9J1Il/thsWgd8+2cYgtfDfKqiX6ALZKyZTSpYDrKsA6jTt5g==
X-Received: by 2002:a17:903:1a30:b0:2ae:4d23:334d with SMTP id d9443c01a7336-2aeae9207f4mr58137715ad.56.1773314064003;
        Thu, 12 Mar 2026 04:14:24 -0700 (PDT)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: xen-devel@lists.xenproject.org,
	sarkarsoumyajyoti23@gmail.com
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [RFC PATCH v3 1/3] x86/efi: Add BGRT image preservation infrastructure
Date: Thu, 12 Mar 2026 16:44:12 +0530
Message-ID: <20260312111414.17808-2-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260312111414.17808-1-soumyajyotisarkar23@gmail.com>
References: <20260312111414.17808-1-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add core EFI boot services code to preserve BGRT (Boot Graphics Resource
Table) images during Xen boot. The BGRT contains a pointer to a boot logo
stored in BootServicesData memory. Without preservation, this memory is
reclaimed causing ACPI checksum errors in dom0.

Implementation:
- Walk XSDT to locate BGRT table (reusing efi.acpi20 from efi_tables())
- Validate BMP image signature and size constraints (max 16MB)
- Allocate EfiACPIReclaimMemory and copy image data
- Update BGRT table with new address and recalculate checksum

The preservation follows the ESRT pattern, running before
ExitBootServices() to ensure image remains accessible.

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
---
 xen/arch/x86/efi/efi-boot.h |   2 +
 xen/common/efi/boot.c       | 133 ++++++++++++++++++++++++++++++++++++
 2 files changed, 135 insertions(+)

diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 42a2c46b5e..0547d845cd 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -910,6 +910,8 @@ void __init efi_multiboot2(EFI_HANDLE ImageHandle,

     efi_relocate_esrt(SystemTable);

+    efi_preserve_bgrt_img();
+
     efi_exit_boot(ImageHandle, SystemTable);
 }

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 967094994d..e6451130ce 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -1,12 +1,16 @@
 #include "efi.h"
 #include <efi/efiprot.h>
 #include <efi/efipciio.h>
+#include <acpi/acconfig.h>
+#include <acpi/actbl.h>
+#include <acpi/actbl3.h>
 #include <public/xen.h>
 #include <xen/bitops.h>
 #include <xen/compile.h>
 #include <xen/ctype.h>
 #include <xen/dmi.h>
 #include <xen/domain_page.h>
+#include <xen/errno.h>
 #include <xen/init.h>
 #include <xen/keyhandler.h>
 #include <xen/lib.h>
@@ -747,6 +751,133 @@ static void __init efi_relocate_esrt(EFI_SYSTEM_TABLE *SystemTable)
     efi_bs->FreePool(memory_map);
 }

+typedef struct {
+    UINT16 signature;
+    UINT32 file_size;
+    UINT16 reserved[2];
+    UINT32 data_offset;
+} __attribute__((packed)) BMP_HEADER;
+
+static __initdata struct {
+    bool preserved;
+    const void *old_addr;
+    const void *new_addr;
+    UINTN size;
+    const char *failure_reason;
+} bgrt_info = {
+    /* We would prefer the failure_reason to print */
+    .failure_reason = "",
+};
+
+static const struct acpi_table_bgrt *__init efi_get_bgrt(void)
+{
+    const struct acpi_table_rsdp *rsdp;
+    const struct acpi_table_xsdt *xsdt;
+    UINTN entry_count;
+    unsigned int i;
+
+    if ( efi.acpi20 == EFI_INVALID_TABLE_ADDR )
+        return NULL;
+
+    rsdp = (const void *)(UINTN)efi.acpi20;
+    if ( !rsdp || !rsdp->xsdt_physical_address )
+        return NULL;
+
+    xsdt = (const void *)rsdp->xsdt_physical_address;
+
+    if ( memcmp(xsdt->header.signature, ACPI_SIG_XSDT, 4) != 0 )
+        return NULL;
+
+    if ( xsdt->header.length < sizeof(xsdt->header) )
+        return NULL;
+    entry_count = (xsdt->header.length - sizeof(xsdt->header)) /
+                  sizeof(xsdt->table_offset_entry[0]);
+
+    for ( i = 0; i < entry_count; i++ )
+    {
+        const struct acpi_table_header *hdr;
+
+        hdr = (const void *)xsdt->table_offset_entry[i];
+        if ( !hdr )
+            continue;
+
+        if ( memcmp(hdr->signature, ACPI_SIG_BGRT, 4) == 0 &&
+             hdr->length >= sizeof(struct acpi_table_bgrt) )
+            return (const struct acpi_table_bgrt *)hdr;
+    }
+
+    return NULL;
+}
+
+#define BMP_SIGNATURE 0x4D42
+#define MAX_BGRT_IMAGE_SIZE (16 * 1024 * 1024)
+
+static void __init efi_preserve_bgrt_img(void)
+{
+    const struct acpi_table_bgrt *bgrt;
+    const BMP_HEADER *bmp;
+    const void *old_image;
+    void *new_image;
+    UINTN image_size;
+    EFI_STATUS status;
+    UINT8 checksum;
+    unsigned int i;
+
+    bgrt_info.preserved = false;
+
+    bgrt = efi_get_bgrt();
+    if ( !bgrt )
+    {
+        bgrt_info.failure_reason = "BGRT table not found";
+        return;
+    }
+
+    if ( !bgrt->image_address )
+        return;
+
+    old_image = (const void *)bgrt->image_address;
+    bmp = old_image;
+
+    if ( bmp->signature != BMP_SIGNATURE )
+    {
+        bgrt_info.failure_reason = "Invalid BMP signature";
+        return;
+    }
+
+    image_size = bmp->file_size;
+    if ( !image_size || image_size > MAX_BGRT_IMAGE_SIZE )
+    {
+        bgrt_info.failure_reason = "Image size exceeds limit";
+        return;
+    }
+
+    /*
+     * Allocate memory of type EfiACPIReclaimMemory so that the image
+     * will remain available for the OS after ExitBootServices().
+     */
+    status = efi_bs->AllocatePool(EfiACPIReclaimMemory, image_size, &new_image);
+    if ( EFI_ERROR(status) )
+    {
+        bgrt_info.failure_reason = "Memory allocation failed";
+        return;
+    }
+    memcpy(new_image, old_image, image_size);
+    ((struct acpi_table_bgrt *)bgrt)->image_address = (UINTN)new_image;
+    ((struct acpi_table_bgrt *)bgrt)->header.checksum = 0;
+    checksum = 0;
+
+    for ( i = 0; i < bgrt->header.length; i++ )
+        checksum += ((const UINT8 *)bgrt)[i];
+
+    ((struct acpi_table_bgrt *)bgrt)->header.checksum = -checksum;
+
+    /* Filling the debug struct for printing later */
+    bgrt_info.preserved = true;
+    bgrt_info.old_addr = old_image;
+    bgrt_info.new_addr = new_image;
+    bgrt_info.size = image_size;
+}
+
 /*
  * Include architecture specific implementation here, which references the
  * static globals defined above.
@@ -1671,6 +1802,8 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,

     efi_relocate_esrt(SystemTable);

+    efi_preserve_bgrt_img();
+
     efi_exit_boot(ImageHandle, SystemTable);

     efi_arch_post_exit_boot(); /* Doesn't return. */
--
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 11:14:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 11:14:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252015.1548813 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0dzr-0002dN-Ls; Thu, 12 Mar 2026 11:14:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252015.1548813; Thu, 12 Mar 2026 11:14: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 1w0dzr-0002dG-Ir; Thu, 12 Mar 2026 11:14:31 +0000
Received: by outflank-mailman (input) for mailman id 1252015;
 Thu, 12 Mar 2026 11:14: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=R7O7=BM=gmail.com=soumyajyotisarkar23@srs-se1.protection.inumbo.net>)
 id 1w0dzq-00028I-Bv
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 11:14:30 +0000
Received: from mail-pl1-x644.google.com (mail-pl1-x644.google.com
 [2607:f8b0:4864:20::644])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a2c9b25f-1e04-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 12:14:29 +0100 (CET)
Received: by mail-pl1-x644.google.com with SMTP id
 d9443c01a7336-2ae5423b02aso6538255ad.1
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 04:14:29 -0700 (PDT)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2aeae34eaacsm49271645ad.49.2026.03.12.04.14.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 12 Mar 2026 04:14:26 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a2c9b25f-1e04-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773314067; x=1773918867; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tr7F9R+tUqPLczRWKCRwjM4O+ic73FL25ctZpaWIvEA=;
        b=gcLWqtKAyWpapckl7CL+iy5G8nSwyQsgMBFzDTAif4ntcsiXMFde1zXvzMEUxbgVT9
         3FjWkjM+65hrCdad0RTUuuVxwiP/JnC/AsVpNMad/a3OhWS7hT6F8ZerkoQ6nwUmMMER
         GW8E2793ZzkvSL2SqEXH09Xz2BnkG0ASk1iiDvn47UU2d/tsSJqM4vZIrTPr5Da3gHTy
         xeXlnbIZYUpOlzeW5TwCUD7M2ryEVBvFZzEct8mreDtTdssT/KuxokoPIuae6Wz52761
         kuDl2pw8e/1nDDG4eapRqSJovwOdSGG1Yqrol8Imt6sEQGrXn1ZzxruDKJ14cDf4ltLr
         cheA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773314067; x=1773918867;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=tr7F9R+tUqPLczRWKCRwjM4O+ic73FL25ctZpaWIvEA=;
        b=xPF/eJjMiOFSBhx1X1QuwF97pSyJULJp0DrOmA9qPQgDSQ1TQLRqp+iUisvGBcfv95
         33NVGncIcNnsC9A4x0O40htyJPje/1S7bUr01LRorqvAArxSNVQTqnIURHNrkFhAHh06
         qlzSRSoXNEW4IVeT2ZN+y/3H1fGaa5aUMb6ZgDRreilWSnYrPQ58n66V7zUvJHK1kdQ2
         YslMZ6YdFy6HlEaVnQrhpZYsNHfx7QPUKojjC1+IJGKFuBuh6BI7+skas+bxsvR+CVMW
         d39XzODXnAJIOSkvczq1B0dQrhbKXS6TOtE42Nao9tAeRcWJZpNUnXPNzAddnsRJ5lFc
         VgBQ==
X-Gm-Message-State: AOJu0YxFXm3HxnzG4nSoia7m1vr1A+JrO6zd6WVJDyetMc1EZ3irs/7e
	YF/9YAZf21x3P2Z0Gz8EyEI/wuEA05bgTQGyBc0sb4Dnd29WzHUOYMyvFRfpfCqm
X-Gm-Gg: ATEYQzzOdJ1+q8cg2bqE0z3iENms+VHTfegSZJf2uk8vog1hpdHXvnYibuABojbx9xU
	eL+sBBiqtq4m+q1sAI/x/UAFRb76NMSdGW7Lk3d4a3Fl2V/MftbqGVMG/zK/gof08J3Y8QFbmSt
	OaQIiiZ6RZESwSLWrm57Tie84V4/3hKNQ8OFvP8Aw9XnuYIfDIkpwlYims2TqlTAT9qK7CLVd85
	b47hpeJS8a4VywwCQLp0wyAjdMCUvSv5WTp1uaqEs3BP7N+GdsewJnCm+ZNKuHsNZ/kduO/oUdh
	TaVEMX35efmIY7GV1p24mLXnivmuPwlXw8FV7oohOXe1cDwvwjV/UscD1DXzcTncVSIfSmP7ijn
	CT+SiPS27CCox5T1+seGkJvkoYFjzZP9vLe+hSrJQZKHRBWChMgFlP0mBfoguGaOr1Xo3lmmACQ
	bX59WWX9pDS2jeGIT8iID/ADTNIes4/8khiO7AmSAdsMzVQ0r+NkDuy9yncUr4vJmkIKK8msDIj
	BX74TveDlnR9UCaixRPsT18EnF/W8CgiXLpWF5zFLg+5Llx92XtbErrXpren3+h8BLeUv6sXWFF
	LtqUJvyJ
X-Received: by 2002:a17:902:f712:b0:2ae:6092:8d93 with SMTP id d9443c01a7336-2aeae890c0amr60376925ad.28.1773314067415;
        Thu, 12 Mar 2026 04:14:27 -0700 (PDT)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: xen-devel@lists.xenproject.org,
	sarkarsoumyajyoti23@gmail.com
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [RFC PATCH v3 2/3] x86/acpi: Integrate BGRT preservation with status reporting
Date: Thu, 12 Mar 2026 16:44:13 +0530
Message-ID: <20260312111414.17808-3-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260312111414.17808-1-soumyajyotisarkar23@gmail.com>
References: <20260312111414.17808-1-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add status reporting for BGRT preservation and integrate with Xen's
ACPI subsystem:
- efi_bgrt_status_info() prints preservation status (success/failure)
- Called from acpi_boot_init() after ACPI tables are processed
- Clarifying comment explains why invalidation code remains

The invalidation code in acpi_invalidate_bgrt() now acts as a safety
net: if preservation fails, the image remains in conventional RAM
and gets invalidated. If preservation succeeds, the image is in
EfiACPIReclaimMemory which won't match the RAM_TYPE_CONVENTIONAL
check, leaving the table valid.

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
---
 xen/arch/x86/acpi/boot.c |  8 ++++++++
 xen/common/efi/boot.c    | 16 ++++++++++++++++
 xen/include/xen/efi.h    |  1 +
 3 files changed, 25 insertions(+)

diff --git a/xen/arch/x86/acpi/boot.c b/xen/arch/x86/acpi/boot.c
index 1ca2360e00..20afe79db9 100644
--- a/xen/arch/x86/acpi/boot.c
+++ b/xen/arch/x86/acpi/boot.c
@@ -29,6 +29,7 @@
 #include <xen/mm.h>
 #include <xen/param.h>
 #include <xen/dmi.h>
+#include <xen/efi.h>
 #include <asm/fixmap.h>
 #include <asm/page.h>
 #include <asm/apic.h>
@@ -327,6 +328,11 @@ static int __init cf_check acpi_parse_hpet(struct acpi_table_header *table)
 	return 0;
 }

+/*
+ * Invalidate BGRT if image is in conventional RAM (preservation failed).
+ * If preservation succeeded, image is in EfiACPIReclaimMemory, which
+ * won't match RAM_TYPE_CONVENTIONAL check, so table remains valid.
+ */
 static int __init cf_check acpi_invalidate_bgrt(struct acpi_table_header *table)
 {
 	struct acpi_table_bgrt *bgrt_tbl =
@@ -754,5 +760,7 @@ int __init acpi_boot_init(void)

 	acpi_table_parse(ACPI_SIG_BGRT, acpi_invalidate_bgrt);

+	efi_bgrt_status_info();
+
 	return 0;
 }
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index e6451130ce..68e06d707c 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -1911,6 +1911,22 @@ static bool __init cf_check rt_range_valid(unsigned long smfn, unsigned long emf
     return true;
 }

+void __init efi_bgrt_status_info(void)
+{
+    if ( !efi_enabled(EFI_BOOT) )
+        return;
+
+    if ( bgrt_info.preserved )
+    {
+        printk(XENLOG_INFO "EFI: BGRT image preserved: %lu KB\n",
+               bgrt_info.size / 1024);
+        printk(XENLOG_INFO "EFI: BGRT relocated from %p to %p\n",
+               bgrt_info.old_addr, bgrt_info.new_addr);
+    }
+    else if ( bgrt_info.failure_reason[0] )
+        printk(XENLOG_WARNING "EFI: BGRT preservation failed: %s\n",
+               bgrt_info.failure_reason);
+}

 void __init efi_init_memory(void)
 {
diff --git a/xen/include/xen/efi.h b/xen/include/xen/efi.h
index 723cb80852..e72ab3c6b5 100644
--- a/xen/include/xen/efi.h
+++ b/xen/include/xen/efi.h
@@ -39,6 +39,7 @@ static inline bool efi_enabled(unsigned int feature)
 extern bool efi_secure_boot;

 void efi_init_memory(void);
+void efi_bgrt_status_info(void);
 bool efi_boot_mem_unused(unsigned long *start, unsigned long *end);
 bool efi_rs_using_pgtables(void);
 unsigned long efi_get_time(void);
--
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 11:14:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 11:14:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252017.1548823 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0dzw-0002vV-UD; Thu, 12 Mar 2026 11:14:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252017.1548823; Thu, 12 Mar 2026 11:14:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0dzw-0002vO-PT; Thu, 12 Mar 2026 11:14:36 +0000
Received: by outflank-mailman (input) for mailman id 1252017;
 Thu, 12 Mar 2026 11:14: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=R7O7=BM=gmail.com=soumyajyotisarkar23@srs-se1.protection.inumbo.net>)
 id 1w0dzv-0002tK-79
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 11:14:35 +0000
Received: from mail-pl1-x644.google.com (mail-pl1-x644.google.com
 [2607:f8b0:4864:20::644])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a4e39ee7-1e04-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 12:14:33 +0100 (CET)
Received: by mail-pl1-x644.google.com with SMTP id
 d9443c01a7336-2ab39b111b9so4112565ad.1
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 04:14:32 -0700 (PDT)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2aeae34eaacsm49271645ad.49.2026.03.12.04.14.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 12 Mar 2026 04:14:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a4e39ee7-1e04-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773314071; x=1773918871; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1cDGQruln6tADqd5GJFoKiZEDSzQNLfuESS4cK4O5GU=;
        b=i/Y93/TheXEqQDXW/9BrSmZcO5qI5NuQlvONMeYLP/QMZGOz+s8b7FoRfVKvZQhiOT
         HxnV4WfgXmb7MaIWDC4nKRecpGhUHygB6ugUFJ0SuKEW3MIrn3lrAGKxCrmNJcqn80Fp
         EvXNPT027RCDiUE3tDQYt+N8edG65scxFGZ3d/y9jme+RnIQv7cte8/OI0yEmfGiVOvN
         BvnWrr2i/xL+YMSoYjRA2d3Gjy1ZmuTjSSuZtFHHaQonWZsBzOr0hbSJNIPGorzJakL3
         0PcfBD4qX8Qka+is1mbVC6VYfxD+CZBjusMe/R+2fCyvSMmlaQIis8rKN89tXa3KirNd
         CjZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773314071; x=1773918871;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=1cDGQruln6tADqd5GJFoKiZEDSzQNLfuESS4cK4O5GU=;
        b=HlYNMcwnZLGoi47kEwvhtCMp35hIJB/EhRS8UeFvbqo0q2qiszJujckA6A2QHtykA0
         ha45VfDNPDh7pG8QXsp5BS3GovUW94jIj9R7fH6T1R/5tazZDaVlz+NXWhu6TpeZ5skU
         cGiTCMItm5E0EwKBi5DNtvKqnbSKVEKRHQaAp6djdEftDyAXdagcL+0XtJdQOJmgH9Es
         imeHEjY2LN1IDNH4Z+ta58npU4Ap3WlGQDidhAjZXvPZY9YStBsscg93YVgn/x1w3jG5
         FnQslpsNFxvntXDKna5bPKh/5TYGujlrqZQxJyywzeLaQ00nujxoA/MviXg8fBFSHZRH
         hHhw==
X-Gm-Message-State: AOJu0Yw3iRPoRmR61WVoDv/dZhVKZGa2Umu+6y5/z4u3jnBxn4uVcYUB
	FsPrPcqOwqsDNCTXpN+jgtaOd8zaiAWUHqMZoEIg7OdDhtbr1RYUUoMlANDrn4C8
X-Gm-Gg: ATEYQzy4SxhvbE6I4Zx3CXPUVLF6j1BV+BgaIghZPlqRUWbtnnmUzZdsFxNeIej516f
	WxeAdy2rwmg/PbASzZgQprIeuasgzs3L9zmk8oQs/tg8MNnSjItvXy2tkwyrCvrSBzLrKidzuwy
	jEBj4TtfmsOLLWkYphmc+XpJXveniK/7Gh8DyNkVpRQok63n5eaHr6lDuOX2yjkWN95UND+bxvy
	9ZWf/yz3BnD3gifyOqkAbeP5qsQ3IHWLprGCD1uRxCGfAws4PJM4jbKqDwHckmaGtglICjgZzYX
	ftc3+/7vDdq8XsnbVlafDTbn2tda5XQLYc3ztmW7rPG14y5CdaLdeG63JBhRhC9kftV/lUBoo+f
	J1Tyn+aD53GWLAMybvAK/KbKvvSlvio7a4RMrJCQXsQe7YkA7xoVIeu6aypdv8yzyCicZjQA0oJ
	UnagT44FGnBHEvlbZ9MUVegZfrRs1tpxD0XzFFFk2bTWqn5f2JBh2+DJK0p/sVQyr+LqR5+txCG
	sQH7xBQTH3mlcaFm05HKO+NrKgxReX+FIMIPChUZx10G/fRaGPYXTP5aYS+ZvC4Tf7SbKrhAQ==
X-Received: by 2002:a17:902:f68d:b0:2ae:5ec4:2f80 with SMTP id d9443c01a7336-2aeae8eaf1emr54731745ad.47.1773314070986;
        Thu, 12 Mar 2026 04:14:30 -0700 (PDT)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: xen-devel@lists.xenproject.org,
	sarkarsoumyajyoti23@gmail.com
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [RFC PATCH v3 3/3] x86/efi: Add opt-out mechanism for BGRT preservation
Date: Thu, 12 Mar 2026 16:44:14 +0530
Message-ID: <20260312111414.17808-4-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260312111414.17808-1-soumyajyotisarkar23@gmail.com>
References: <20260312111414.17808-1-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

BGRT preservation is now enabled by default to fix ACPI corruption
for desktop/workstation systems (similar to ESRT).

As described in the task:
https://github.com/QubesOS/qubes-issues/issues/10764

Add an opt-out parameter to allow disabling BGRT preservation on
systems where the ~1MB memory overhead is not desired.

The opt-out is implemented through two boot paths with early parsing
during the EFI boot phase before preservation runs:

1. xen.efi direct boot: '-nobgrt' command line option (parsed in
   efi_start())
2. Multiboot2 (GRUB): 'efi=no-bgrt' peeked from mb2 cmdline tag
   using get_option() in efi_multiboot2()

The flag is checked at the start of efi_preserve_bgrt_img() to
skip preservation entirely when disabled. Status logging indicates
whether preservation was disabled, succeeded, or failed.

Usage:
  Default: BGRT preserved automatically
  xen.efi: Add '-nobgrt' option
  GRUB/MB2: Add 'efi=no-bgrt' to Xen command line

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
---
 xen/arch/x86/efi/efi-boot.h |  3 +++
 xen/common/efi/boot.c       | 11 ++++++++++-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 0547d845cd..6c986cf6c0 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -897,6 +897,9 @@ void __init efi_multiboot2(EFI_HANDLE ImageHandle,
         efi_arch_edid(gop_handle);
     }

+    if ( cmdline && get_option(cmdline, "efi=no-bgrt") )
+        opt_bgrt_disabled = true;
+
     efi_arch_edd();
     efi_arch_cpu();

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 68e06d707c..dc46e783f3 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -170,6 +170,7 @@ static SIMPLE_TEXT_OUTPUT_INTERFACE *__initdata StdErr;

 static UINT32 __initdata mdesc_ver;
 static bool __initdata map_bs;
+static bool __initdata opt_bgrt_disabled = false;

 static struct file __initdata cfg;
 static struct file __initdata kernel;
@@ -825,6 +826,9 @@ static void __init efi_preserve_bgrt_img(void)

     bgrt_info.preserved = false;

+    if ( opt_bgrt_disabled )
+        return;
+
     bgrt = efi_get_bgrt();
     if ( !bgrt )
     {
@@ -1582,6 +1586,8 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
                     base_video = true;
                 else if ( wstrcmp(ptr + 1, L"mapbs") == 0 )
                     map_bs = true;
+                else if ( wstrcmp(ptr + 1, L"nobgrt") == 0 )
+                    opt_bgrt_disabled = true;
                 else if ( wstrncmp(ptr + 1, L"cfg=", 4) == 0 )
                     cfg_file_name = ptr + 5;
                 else if ( i + 1 < argc && wstrcmp(ptr + 1, L"cfg") == 0 )
@@ -1592,6 +1598,7 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
                     PrintStr(L"Xen EFI Loader options:\r\n");
                     PrintStr(L"-basevideo   retain current video mode\r\n");
                     PrintStr(L"-mapbs       map EfiBootServices{Code,Data}\r\n");
+                    PrintStr(L"-nobgrt      disable BGRT preservation\r\n");
                     PrintStr(L"-cfg=<file>  specify configuration file\r\n");
                     PrintStr(L"-help, -?    display this help\r\n");
                     blexit(NULL);
@@ -1916,7 +1923,9 @@ void __init efi_bgrt_status_info(void)
     if ( !efi_enabled(EFI_BOOT) )
         return;

-    if ( bgrt_info.preserved )
+    if ( opt_bgrt_disabled )
+        printk(XENLOG_INFO "EFI: BGRT preservation disabled\n");
+    else if ( bgrt_info.preserved )
     {
         printk(XENLOG_INFO "EFI: BGRT image preserved: %lu KB\n",
                bgrt_info.size / 1024);
--
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 11:15:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 11:15:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252046.1548831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0e17-00047v-Aj; Thu, 12 Mar 2026 11:15:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252046.1548831; Thu, 12 Mar 2026 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 1w0e17-00047o-6o; Thu, 12 Mar 2026 11:15:49 +0000
Received: by outflank-mailman (input) for mailman id 1252046;
 Thu, 12 Mar 2026 11: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=jTts=BM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0e15-0002tK-D4
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 11:15:47 +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 cecb0d8c-1e04-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 12:15:42 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-439aeed8a5bso938364f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 04:15:42 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4854b0ea7easm87259465e9.5.2026.03.12.04.15.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 04:15:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cecb0d8c-1e04-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773314142; x=1773918942; 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=/YgVZzVAUCkiwt1usxKtFwmZSlfoYoGgDkLJLubAeSQ=;
        b=DNW+8l+cyIxe7mIeflQNt2+bsKSo2a5qAjxxf9ETwil+9rhtOJbb1IWSgZzV/HWKm0
         pa65cp/mIVIR9uuaTjuswys/cZA8QpHuqPKpBN/SWAysem3B26ajo4QL9IutTxLPCRuy
         su8RS5SXyzjIkMgz2Jc8OhAOuyZdZ4BC2WJHjwU5/yxdRONiQCKKTBVRAu8LYaLRpRc+
         WDnDBOd1GBY00sUSDHFCx5mdD8RtV67m++JolXEHPj51UVyBDD1jfShezfBGyEa9lqEd
         7xYNp51YQXL8/FOGOG13O8ordF4HjJ14zSvgq0x2isYTT0nW9lcPFZ8WSxXcMMUaeFSo
         GmIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773314142; x=1773918942;
        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=/YgVZzVAUCkiwt1usxKtFwmZSlfoYoGgDkLJLubAeSQ=;
        b=SEN5Gn5sVBTVsoKLRAsg23VSrQBbZWQqCmxqeFJzVt+PapWpY+imYf/SM7lPZ8tk4S
         dLG0YMSmlC8k9tgDu88icHK5Xus6ormGCx6zhLPQ3BpPtgypD0mwBNdGbDcjeOAXUwIO
         KTklVtpp+9PHc86SCXl1R7SUFWAjqi/PbK/JkhokkoMW5nw6zXCu4BKZn9o+tAkHf6fF
         MG4IG6fdogcUvjdLsTqc0KFApH5SpUlIxQKw+jHGmzyw+OBXachyzDC1i8yLr9ft4dud
         qyJa1dqccnTF/F+EgdxVCPl76s1AVLl/sIcYTLMfG8+R67KZeGxRliXOdsBkn3tE86Iw
         k6SQ==
X-Forwarded-Encrypted: i=1; AJvYcCXj8ONRsJnCKu76X32+6zhzZ4THANqbSHAOrf2U+1bQnBSvPUF3zQJNdMYKud/ZUn6jSiUt6HTfFzA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyNwpUifX6OZb1DPLNXXKwvReH3hkY4d0Xqm1p/GK9I3+26Vg4j
	d+J7VevcuWfgY76lo/+0bmIN96/mz8lvpmIFd552hPwAbov/JKV/pWShrOGUHGe+hQ==
X-Gm-Gg: ATEYQzxHga7TXib01jXfR3mc2oCVV91WcOzNXQ6CdNwLV5Y/uB6SpW0WszOY2EsddfA
	DbXY5rYpf9/unhcuzJSOQuLUBVEjCsjS/G/8Lj1wUu/S6hgWmuvz1RgFj6kjwddEyEfGtDaiOqV
	JnBt6QBQ/kxT5EtCtrsV8yzPcPbPqIImM0YMc5Zu/fEii19azRMQzhUa8/lHivcefq3Y3RfJYfl
	1r55QdmAy+D6DauPkHuwD/8olofp3MTbCKNO2k3aLNEZM6VH4DIzrK+P5B6f17d4uqQZCpTEuZI
	5l1ZM1hj/R05iqQKUtLpn5VTqQeRfghganzhfFn7e2I1KKOzWEAKcAYPPktAHDS3wKFQPXg1TXX
	2rtkCO1C9lh5xlyb6Isf7NxCfAKx9T7ogO5PHOQQpqTG7Oq/Uemswd4DEgl65vphR9OP0RWK+GI
	127+XYTxMVVf5CYVjoAAvgyt7Q5f7oCEWVj7s8EYG41be7Q//N5FxFhACl+NTcJzSdJnE0WIcHW
	8DqJRpvAu+NSiA=
X-Received: by 2002:a05:600c:8b62:b0:485:4388:348b with SMTP id 5b1f17b1804b1-4854ad76aa7mr99817925e9.0.1773314141785;
        Thu, 12 Mar 2026 04:15:41 -0700 (PDT)
Message-ID: <9f40fbec-008f-4a50-bfb2-27c35d88f2a2@suse.com>
Date: Thu, 12 Mar 2026 12:15:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/7] x86/hvm: Support extended destination IDs in
 virtual MSI and IO-APIC
From: Jan Beulich <jbeulich@suse.com>
To: Julian Vetter <julian.vetter@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
 <jgross@suse.com>, Julien Grall <julien@xen.org>,
 xen-devel@lists.xenproject.org
References: <20260309123055.880050-1-julian.vetter@vates.tech>
 <20260309123055.880050-3-julian.vetter@vates.tech>
 <1e371e65-ca79-42a0-93f9-804f73084033@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: <1e371e65-ca79-42a0-93f9-804f73084033@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.03.2026 16:27, Jan Beulich wrote:
> On 09.03.2026 13:31, Julian Vetter wrote:
>> @@ -618,6 +620,21 @@ static int cf_check ioapic_check(const struct domain *d, hvm_domain_context_t *h
>>               e->fields.reserved[0] || e->fields.reserved[1] ||
>>               e->fields.reserved[2] || e->fields.reserved2 )
>>              return -EINVAL;
>> +
>> +        /*
>> +         * An RTE in the saved state has ext_dest_id bits set. Check that
>> +         * the destination Xen has extended destination ID support enabled,
>> +         * otherwise interrupt routing to APIC IDs > 255 would be broken
>> +         * after restore.
>> +         */
>> +        if ( e->fields.ext_dest_id && !d->arch.hvm.ext_dest_id_enabled )
> 
> This won't build, as the ext_dest_id_enabled field appears only in patch 6.
> But yes, that looks to be the opt-in mechanism I mentioned above.

Actually no, how could it be. That's for the DM to invoke.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 11:18:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 11:18:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252061.1548841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0e3V-0004w7-MH; Thu, 12 Mar 2026 11:18:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252061.1548841; Thu, 12 Mar 2026 11: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 1w0e3V-0004vz-IG; Thu, 12 Mar 2026 11:18:17 +0000
Received: by outflank-mailman (input) for mailman id 1252061;
 Thu, 12 Mar 2026 11: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=jTts=BM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0e3U-0004vt-FU
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 11:18:16 +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 27513701-1e05-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 12:18:11 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4853aec185aso7840505e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 04:18:11 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48541b6f708sm311706855e9.11.2026.03.12.04.18.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 04:18:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 27513701-1e05-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773314290; x=1773919090; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rKNfadOFeIlBU9K3iYL1zTP3YSOV3hGO2ddaUbUR1yo=;
        b=XnqUYaQCFOUOgUlIJVOUE9H93seVeqwgt6PJ10gziQtje2YWTPHTM5uaYvEzXyKi24
         1jBrOx/L1o6QDx8Vazig4xww2n40qXb89YA4Ce8gVrmflkkMURMxIKHNpdrYB7DIhiSU
         74dLj/vBHuX+kl8rNI4wP1in8BfkxW6lB3CpAKDZBhS1LbBykRvrgqLpM/TfukSmbI9T
         5dD3Qe9os+m4koKPXIr47n9IfQga53KCHIrh/pivRGw6Pen5ilhAAjCisPOGnyMRAjgw
         ups4xeETPA0PiILh4aGqmhGPoj5m5D2FJiE1DF3KTWHdlY5Up42rMQFCMOxG2YybSvd3
         LLCA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773314290; x=1773919090;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rKNfadOFeIlBU9K3iYL1zTP3YSOV3hGO2ddaUbUR1yo=;
        b=n3wx/NxtNVrnftmM4LuatnQFw5K2cwMPKRnpo4P/bDINPqm1sfpCiYEt00i+SiX0vp
         Jtuxhn2dgDc/f+vSoI4yR92b/DSkgj/M2sVoi0Ve2HRf2cScYpLoLZ5Z5Ed/QJBkc3gl
         498q1nj9ES+ehZqkq+LiATscTaGaAfe22G4byMed1eongPQU4eC1to5ayy0r02XhA62X
         mLi76g14VPNGp2K/xaLdYB3mz7Ir2HC9x30HYbVHJxwbDu36AKc4sp1HGSTcZSf6ESPB
         2z0X2NReJT1WvDFc9YzvQHXdG6Gx7XaOEX4EYS4v2azkENJk+exnYq049pMZNPb1UAmL
         k32w==
X-Forwarded-Encrypted: i=1; AJvYcCVuvZoDbYnIcR3xdNmYiQfnFFNkPa57hVtQGANZonfnvjYJ/vvydbXyRJb6Ql48UYznFgcqqpVWdS4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz1EfzB5ci25E4YyiGS1eoOWMSUoR0lxiI7qD6HO2cf0UvoCCqI
	adcwoowCAHm6jedpLso717ZsycdoloLGiAlzyzRhTQoRcaMRTQILQbA2s2tib6SPbw==
X-Gm-Gg: ATEYQzw4avq6Y/Wo18ValNOrVf5Q+JV/Z0yKdTmo2KSp92SeEAj/3wIu40kMmMm99G8
	Y+w4ILYj+4SfL3MHLireTt7VaIoE6k8lklB1X9ReOjir4pv/fa342EeqwQguI84yluDG/IeUjCo
	RObS5qWpPtcwndh3HlU3QCWmwicGOpujmdFaRWWiT0SsLG2SUEudUgdsxiQUEZVWmMl0xE6LrU4
	PZwhv6I5l8XJqLc9n02WilLAV9Vbv9ykgGF4PRFTzC8WQMnb8CxwDtU31lvJf31QuQS0IeUANLO
	Mv0faeWkCb3t3UxMHz68EJzv9Dg8xaV08P8aviHzupX+MHnElw9MyO5ub1Gmt8ti5/p9W2Zp/32
	HMfQPN5WdOITLkonjHmNF9tqwpe7oXbSjKSkEw7xMs7KzeWTFmz6FgTx6YPv4C3fcW4N1bAk/bq
	kaWUpae6J47RRn7l0ALXexQbiIj44K3OD2N1qz3HQBy2Reoq63X1oXwAT6bUItZJ8DsuyOIs6Qs
	isaLc/Mv7l+ATmFhVqSPGFiMg==
X-Received: by 2002:a05:600c:1f87:b0:485:42ba:fc8 with SMTP id 5b1f17b1804b1-4854b0a547cmr100873325e9.4.1773314290366;
        Thu, 12 Mar 2026 04:18:10 -0700 (PDT)
Message-ID: <f5bd7530-8a1d-4219-bbe2-fc6720482d3b@suse.com>
Date: Thu, 12 Mar 2026 12:18:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 6/7] x86/dmop: Add XEN_DMOP_enable_ext_dest_id DM op
To: Julian Vetter <julian.vetter@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
 <jgross@suse.com>, Julien Grall <julien@xen.org>,
 xen-devel@lists.xenproject.org
References: <20260309123055.880050-1-julian.vetter@vates.tech>
 <20260309123055.880050-6-julian.vetter@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260309123055.880050-6-julian.vetter@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.03.2026 13:31, Julian Vetter wrote:
> --- a/xen/include/public/hvm/dm_op.h
> +++ b/xen/include/public/hvm/dm_op.h
> @@ -447,6 +447,15 @@ typedef struct xen_dm_op_nr_vcpus xen_dm_op_nr_vcpus_t;
>  #define XEN_DMOP_bind_pt_msi_irq   21
>  #define XEN_DMOP_unbind_pt_msi_irq 22
>  
> +/*
> + * XEN_DMOP_enable_ext_dest_id: Signal to Xen that this device model will use
> + * XEN_DMOP_bind_pt_msi_irq for all passthrough MSI bindings, passing raw MSI
> + * address/data fields. Once called, Xen will advertise
> + * XEN_HVM_CPUID_EXT_DEST_ID to the guest. Must be called before the guest
> + * starts.
> + */
> +#define XEN_DMOP_enable_ext_dest_id 23
> +
>  struct xen_dm_op_bind_pt_msi_irq {
>      /* IN - physical IRQ (pirq) */
>      uint32_t machine_irq;

How come this is put between #define-s and their corresponding struct?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 11:21:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 11:21:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252073.1548848 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0e6r-0006Qt-27; Thu, 12 Mar 2026 11:21:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252073.1548848; Thu, 12 Mar 2026 11:21:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0e6q-0006Qm-Vk; Thu, 12 Mar 2026 11:21:44 +0000
Received: by outflank-mailman (input) for mailman id 1252073;
 Thu, 12 Mar 2026 11:21:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=17Qz=BM=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1w0e6q-0006Qg-Co
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 11:21:44 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a515461b-1e05-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 12:21:42 +0100 (CET)
Received: from BLAPR03CA0175.namprd03.prod.outlook.com (2603:10b6:208:32f::14)
 by SA0PR12MB7089.namprd12.prod.outlook.com (2603:10b6:806:2d5::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.4; Thu, 12 Mar
 2026 11:21:38 +0000
Received: from MN1PEPF0000F0DF.namprd04.prod.outlook.com
 (2603:10b6:208:32f:cafe::ca) by BLAPR03CA0175.outlook.office365.com
 (2603:10b6:208:32f::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.27 via Frontend Transport; Thu,
 12 Mar 2026 11:21:41 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MN1PEPF0000F0DF.mail.protection.outlook.com (10.167.242.37) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Thu, 12 Mar 2026 11:21: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; Thu, 12 Mar
 2026 06:21:34 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a515461b-1e05-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cANjpbbNdAhIVgUFtD5ujr0TpLAuRDbpvVAhhSTKnH/vz3jat4v9YfGklkNGr9XM5NxPgbySyoL2icEo8NyNVhEH8aJzx5YcUBq9pzuLxvnVi0pV3HGstUyiZxMmk0HPZWOw5qLRwvG1XtYgxdbVxivBZjLpp+YSAtR9A6iwZ4gZk3KrGEj5c5TdojqmKxa08YVGj3lhVUXjTrduE2JMatu/Ejvj20945uYlISU1kgSsq9zqVf64OkdMWwnwP4QLptafW4CLrDmMX9TmI5akeL14lvmIjdZ3YZ7uJJ/I6/bZwkExqm+EB3LfNvFU+nuwQkE9dLeLybCp2lHQtYQq4Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fl9WOa5+CGWuMt/NgIMPauuuEm/Py0qSEHzrocRSpSk=;
 b=KIpdDqN2Jk8F1oVzD1azMWtbIiC0gWtf1lymkhKxTku+i+hn4iUbfYYAUp/wYOMXRG685lJ31iGZWRs6sz7/vFwTlFSd5Ds+t5qFE8B8SVIGQPOVWvGZgWtHKkNogEmc2aM7o8uZ/TCFuGJLb3K6+XHErnt4G4Nqdp5dJogNoYq5TXVGWP7fN056FQoBEnBHHEj+is/+N4w4VYVajCR8meRlyLuz8txCnv3mDSbW2Um1mpA+I3iK5x0kb8TVCqpSTYDP3kKxwbyRr01lksYW/R6B1OcrI90Hkik8WDyBAM7rBaNp0h7zO8iep6+JgJiYfMew4yKJPzoYLHnJHfwPrA==
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=fl9WOa5+CGWuMt/NgIMPauuuEm/Py0qSEHzrocRSpSk=;
 b=gmE0VExvzmbivTJ8YJABUdF5dGjM6HeMx7nTkJgys/+gbdmyVwW1Ya/xC23rvVf9im+wY2otqfJfAr5YJTea+8Gx6iN75sNbR9yUO3hqzkqZPBoMY0YMzTy1Ygu3MK1ijHZJNp5yoRzhOmE+6NOfJ+FJC1Z0kNjmuABTxvNYcww=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Community Manager
	<community.manager@xenproject.org>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jason
 Andryuk" <jason.andryuk@amd.com>
Subject: [PATCH v5 0/5] x86: Drop cross-vendor support
Date: Thu, 12 Mar 2026 12:21:09 +0100
Message-ID: <20260312112116.22563-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: MN1PEPF0000F0DF:EE_|SA0PR12MB7089:EE_
X-MS-Office365-Filtering-Correlation-Id: 05fc8d67-1952-4044-98e9-08de80298698
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|82310400026|376014|1800799024|56012099003|18002099003|13003099007;
X-Microsoft-Antispam-Message-Info:
	74wxoyiOkc7d5+3CxLMAOtMVRMa5WfbSuQ++oAfEaaeG5fFXSZB1TPjFvvC9K2FICyaq/houCI84jMhQuJG/Q2OI6JsztBMAxjx8esMqAn/r3Eq0YWFOeBe4X8mVjAmIHBx/sDR6cLkpk5UeXTnKkyAlh9NueUItpEpvHsEhUkFpmrpK3zyZYUNzoMKxwh+hzEb5j3vffaCozTUftnsgZEyGHKBeJG8SbWjMcPnJBZ27dp+gnbYFPt0ecKefvNdRwYTXg8nE9G9Xuxxm7OB5gnr40tigK5XrUqc1vZrD+qxu6OT4x2DsoXiqOo+4vi9SxDrBeP+x3qtMXZ0F/X3+n4Q6TE5RsllgIC41zMoPXnB9CrZevdqIFhKsNVBLjpCOpvEH+6FWGJP5dQbiTsvAChF8zTCGwdmAgbInlML+y7mooa4gcoBor8Wl8A9llCxHr/ctqfj+oedGw1hPmRnvS2bxLaeMwE0GQb2V0rlefDZZUGZ9iyAswP4SWGrjxhOvyIBnWQtnMF7x4EmtcyfEmcpqVrkMfs6s+kRBC9nzrLKbidSyLDj/6SjJ+gs6DFckloTjyvpd3wByLQDdrZ2P4FPAhrZgngjSb9qhYiiLgCa27JH2QV030jAXHE/hpS13at9/EXgVaO1KPkhrn5Ei9MNFqq7UDEliyGnJuhebXBOAsWtjOHs1LiR6p9pFTxsROXAgx3D5gXr7GuL9UDVgitHfpna6ohZbBgFbBA/n1JhkxmVA0Fnwpu0+4LfxfI2dT+4cFg/IQuqEKO3KXpjsyunyMpPIfOl4N/Rs0XFmQ7Q=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(82310400026)(376014)(1800799024)(56012099003)(18002099003)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	c+LdKe8jgbOrr1ayz52g3eumnNRkyCEgXaj4hPzUBoXQjzoSsWT4bpar7bcwdZf0q6brh8TaeOaZnWdDcS5CS7zW+/iweFc0s6o1hj/Fc9Qq9PBUie0eSAg96uSGw8+KWkBaZKlqfc0DLihMzQHRnr/mX7IN8+l4Q78NF9+kLkXAsi/t5FoHP70ASQq1spBU+Bx8wXVSwVCzlu2NMKyFe2/RxHIXz+Hn9sFStpAXf5Ne90nh8GGHygf+IEGiHVazuSqUQz1iCVOHcARjO7b0YxBaIdbuU/ythbcjAO1Ij2upfR15Q+bgmM8bjL7hCR4bYpu01DcsfJ55/pWycOpBjq9LoyMZCkJdNtxj4ZLAIZp7QvtXrIy1cP7c/yN/eDyFAdM8yTKNWP/N+iZs6cUQMRZ2HTb2hnHsQWLnuW9OW8I6mFVYkKmzkHhr1ODA7qit
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 11:21:37.2888
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 05fc8d67-1952-4044-98e9-08de80298698
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000F0DF.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB7089

Hi,

Patches 2, 4 and 5 missing acks.

Patch 2 now does a minimal diff change, while 4 and 5 perform the meat of what
v4/patch2 used to do.

I had patches 4 and 5 appended to the end in the hopes of having 1-3 committed
sooner.

v1: https://lore.kernel.org/xen-devel/20260122164943.20691-1-alejandro.garciavallejo@amd.com/
v2: https://lore.kernel.org/xen-devel/20260205170923.38425-1-alejandro.garciavallejo@amd.com/
v3: https://lore.kernel.org/xen-devel/20260213114232.42996-1-alejandro.garciavallejo@amd.com/
v4: https://lore.kernel.org/xen-devel/20260311142711.16754-1-alejandro.garciavallejo@amd.com/

Cheers,
Alejandro

Alejandro Vallejo (5):
  x86: Reject CPU policies with vendors other than the host's
  x86/hvm: Disable cross-vendor handling in #UD handler
  x86/hvm: Remove cross-vendor checks from MSR handlers.
  x86/svm: Drop emulation of Intel's SYSENTER MSR behaviour
  x86/hvm: Un-indent the HVM_FEP block in the #UD handler

 CHANGELOG.md                             |  5 ++
 tools/tests/cpu-policy/test-cpu-policy.c | 27 +++++++++++
 xen/arch/x86/hvm/hvm.c                   | 62 +++++++++---------------
 xen/arch/x86/hvm/svm/svm.c               | 45 ++++++++---------
 xen/arch/x86/hvm/svm/vmcb.c              |  3 ++
 xen/arch/x86/hvm/vmx/vmx.c               |  3 +-
 xen/arch/x86/include/asm/hvm/svm-types.h | 10 ----
 xen/arch/x86/lib/cpu-policy/policy.c     |  5 +-
 xen/arch/x86/msr.c                       |  8 ++-
 9 files changed, 86 insertions(+), 82 deletions(-)


base-commit: a3a1e61ce9a00c5a0c8003bad8f1285360399cf4
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 11:21:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 11:21:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252075.1548859 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0e6z-0006gm-CL; Thu, 12 Mar 2026 11:21:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252075.1548859; Thu, 12 Mar 2026 11:21: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 1w0e6z-0006ge-6o; Thu, 12 Mar 2026 11:21:53 +0000
Received: by outflank-mailman (input) for mailman id 1252075;
 Thu, 12 Mar 2026 11:21: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=17Qz=BM=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1w0e6y-0006gG-Bs
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 11:21: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 a6ee6a70-1e05-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 12:21:46 +0100 (CET)
Received: from MN2PR16CA0054.namprd16.prod.outlook.com (2603:10b6:208:234::23)
 by LV2PR12MB6013.namprd12.prod.outlook.com (2603:10b6:408:171::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.6; Thu, 12 Mar
 2026 11:21:40 +0000
Received: from MN1PEPF0000F0E5.namprd04.prod.outlook.com
 (2603:10b6:208:234:cafe::8a) by MN2PR16CA0054.outlook.office365.com
 (2603:10b6:208:234::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.28 via Frontend Transport; Thu,
 12 Mar 2026 11:21:40 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MN1PEPF0000F0E5.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.9678.18 via Frontend Transport; Thu, 12 Mar 2026 11:21:39 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar
 2026 06:21:37 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a6ee6a70-1e05-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=N7zp4KZc9j0ywkgTjZmROpWJTadr0WJ5dzYNtCTcPTQwKdsybYZcBksjArJq6cgmX8AP5NJKNKcusdbXUqHIkad5VLL0UXXhpExaj4lfsAW5zKECnn53+y0Wl+VU5AN2xNacujnEkJhu1MpGZO2Z1eg3TJwIIgdd0NdPxyq9xa403bsQDfxPmfB2LYEfQI753smHaj4K8y2BSZEUEChdMMTNnF0nkoXKAp8tMTG8r8k6xbARIFdFsePNBavRN9ZvtXppN75a33FZ5hFAes+yDtpTSHAbRgrIAMgH0btsejgWKZYyLtcSAX5ocgmVT8iWAJKqyKAtDPoKUnxa5f3/jQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DUuyrM9nbhvSaUzGq1+p73eNNfOyYjtxNbuorXkrPm4=;
 b=ECoXZJK+OM96DoqUqrZbr/yKEUvis5YqafWh6zAI9xMtpkbb8vy63V1mD/cjxT7rOBkDEO7P27aiE/F4miJoodhA+gmZOOny+o1PZkSiNZZOCE7cxTdFJBOLkNIKJ6PJRHf95NUSR31lETgVum9XQPVlEHTte3yVVEqueJ3y1uFC3230MxEBZ1VcYAx7qLxEIiHtP1la0cXWdSyvLxH7ZimDb8yHGaCEVunOEKVAyT9wAMYUhQqMkXHCN1czUsdQvJOzL4Acg740gSsHEO6I3dmiA1oMExFWp8XOia6xdH849xzJGpjQCg2numbaun5LKcCqYWzhR9qw4u+OVChRPA==
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=DUuyrM9nbhvSaUzGq1+p73eNNfOyYjtxNbuorXkrPm4=;
 b=xgI1HopUNHl5UViDqCqrS/jFO403UNI8O8OPerjlxdPR1++XlrPorMWCDAo2r+CLDyL4UrFfxILjvnHZv3cgM9i0fld8k/bgaidhTdJ5kPO7tws8PoxZQeDGRs4Xt1SUK1TT9Q7Iorw2OKZa2vH4k+x/mB63cO/+7bwfI2sD134=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Community Manager
	<community.manager@xenproject.org>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v5 1/5] x86: Reject CPU policies with vendors other than the host's
Date: Thu, 12 Mar 2026 12:21:10 +0100
Message-ID: <20260312112116.22563-2-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260312112116.22563-1-alejandro.garciavallejo@amd.com>
References: <20260312112116.22563-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: MN1PEPF0000F0E5:EE_|LV2PR12MB6013:EE_
X-MS-Office365-Filtering-Correlation-Id: 10c4aa1e-0274-4f9b-d5a2-08de80298819
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700016|376014|82310400026|13003099007|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	Yt80KbQovZePI7mp8e6N6PZn76yVQEoG3qtFG0/E67Z7RcCR6CbDOuk/OZiU2K81EdWRq31t6xiCZeoMY+gUL3/VZ+W0uiPQE7xLMu/D6Ror6/slS+fhdg9d60tab6508xjUq9Irhx2qKsWuVLzx2qy0nWQJjsQOA+L13arCQNlklMj742kIGLKeWbIyv8YUnIGeJx7W41v5yKZNnZ1RK8WV8fipSBqManU8Vzl7oUL8CAg2U3iqNQTxP2MoEI24x946T7OSXpJOZqovqfrMukkGQGXQl2hYpCkGANTGsisUoGaMTcotAmdwhYw/mNT4mc4qpagxiC7OGKINdhpxsGemUF4LMLL3TqYhVP/7PeXmgwkmraz4Up8SdfV6S0aREOfLXbDQtX5+0g531h3eEoT6/XdyLRf0VUJOs4KCR9Med6LACZAZB1EPmF+yxHkdALD/bN175UuJk5H7qeyLVi9h7bhsomc6LFU98fRyQqxJ/gIsK+v4CIn0ZVsWm/TS3OJXovw+SSRAuJjPeitoGprx2n1IKs7x+gXVxI/LJEvk6YFFmDtL31JOiEjLTS30oMRknLs1CUzSFwaAFM+DVbqEmNHtowjntmb1SYz7k0h/9Cy7EEhbDhT1i5bJVv6EpZzVDXPtHk+HFYs3vfOpAzoLnZM9a/G5KMXj2n8jLurUrs7ilwDNj7srxsKFT47FZfPqd4LAuw58QxY0PlmGerSuTsyJZO6o+M0P2cx0ios=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(376014)(82310400026)(13003099007)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	qRAoR9EcpPjhTn4fyCO1kEubQnRbg8O/TxparZHPbEQG5aY3Tv2kZeXYvo1mmcWnj2wax/e7gOdzbq4wISdRA94lqUQ9uLdHpNCJd6rU3QTcbexiMZIEsyS1tuk2WIIVvaCrInXkaY2R51WuQrL9sA2VlP7NIR12hhQgbsSsEb7f+JRsqQdYfjb/yijIuDUTO4kFGPOtOa7AMmAAUGNJJ7c4qrXwbnr4WEGp6JPqqLnThNr6JhyxxCu7lPPBZX3pdy4pWH3CV+pqxGyuvaHGqFgOE3VR4yIj48Ata268Ex87yIgN5XA9nQgtDocKn6cNc7jqDFAVCbFaUDzqzOMXTQld6djbxZY2kJ6Md9pSaabC/Kk69bbjbGtiqnqGtCSRHISXc6sSXKLGfEtlv4YiIOEKCiXRiSeflbiI6QHSfKy4ifp8KyaeaDyRzDlfUlzG
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 11:21:39.8149
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 10c4aa1e-0274-4f9b-d5a2-08de80298819
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000F0E5.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB6013

While in principle it's possible to have a vendor virtualising another,
this is fairly tricky in practice and comes with the world's supply of
security issues.

Reject any CPU policy with vendors not matching the host's.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
 CHANGELOG.md                             |  5 +++++
 tools/tests/cpu-policy/test-cpu-policy.c | 27 ++++++++++++++++++++++++
 xen/arch/x86/lib/cpu-policy/policy.c     |  5 ++++-
 3 files changed, 36 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index c191e504aba..90ba5da69e4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -23,6 +23,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    - Xenoprofile support.  Oprofile themselves removed support for Xen in 2014
      prior to the version 1.0 release, and there has been no development since
      before then in Xen.
+   - Domains can no longer run on a system with CPUs of a vendor different from
+     the one they were initially launched on. This affects live migrations and
+     save/restore workflows across mixed-vendor hosts. Cross-vendor emulation
+     has always been unreliable, but since 2017 with the advent of speculation
+     security it became unsustainably so.
 
  - Removed xenpm tool on non-x86 platforms as it doesn't actually provide
    anything useful outside of x86.
diff --git a/tools/tests/cpu-policy/test-cpu-policy.c b/tools/tests/cpu-policy/test-cpu-policy.c
index 301df2c0028..88a9a26e8f1 100644
--- a/tools/tests/cpu-policy/test-cpu-policy.c
+++ b/tools/tests/cpu-policy/test-cpu-policy.c
@@ -586,6 +586,19 @@ static void test_is_compatible_success(void)
                 .platform_info.cpuid_faulting = true,
             },
         },
+        {
+            .name = "Host CPU vendor == Guest CPU vendor (both unknown)",
+            .host = {
+                .basic.vendor_ebx = X86_VENDOR_AMD_EBX + 1,
+                .basic.vendor_ecx = X86_VENDOR_AMD_ECX,
+                .basic.vendor_edx = X86_VENDOR_AMD_EDX,
+            },
+            .guest = {
+                .basic.vendor_ebx = X86_VENDOR_AMD_EBX + 1,
+                .basic.vendor_ecx = X86_VENDOR_AMD_ECX,
+                .basic.vendor_edx = X86_VENDOR_AMD_EDX,
+            },
+        },
     };
     struct cpu_policy_errors no_errors = INIT_CPU_POLICY_ERRORS;
 
@@ -629,6 +642,20 @@ static void test_is_compatible_failure(void)
             },
             .e = { -1, -1, 0xce },
         },
+        {
+            .name = "Host CPU vendor != Guest CPU vendor (both unknown)",
+            .host = {
+                .basic.vendor_ebx = X86_VENDOR_AMD_EBX + 1,
+                .basic.vendor_ecx = X86_VENDOR_AMD_ECX,
+                .basic.vendor_edx = X86_VENDOR_AMD_EDX,
+            },
+            .guest = {
+                .basic.vendor_ebx = X86_VENDOR_AMD_EBX + 2,
+                .basic.vendor_ecx = X86_VENDOR_AMD_ECX,
+                .basic.vendor_edx = X86_VENDOR_AMD_EDX,
+            },
+            .e = { 0, -1, -1 },
+        },
     };
 
     printf("Testing policy compatibility failure:\n");
diff --git a/xen/arch/x86/lib/cpu-policy/policy.c b/xen/arch/x86/lib/cpu-policy/policy.c
index f033d22785b..f991b1f3a96 100644
--- a/xen/arch/x86/lib/cpu-policy/policy.c
+++ b/xen/arch/x86/lib/cpu-policy/policy.c
@@ -15,7 +15,10 @@ int x86_cpu_policies_are_compatible(const struct cpu_policy *host,
 #define FAIL_MSR(m) \
     do { e.msr = (m); goto out; } while ( 0 )
 
-    if ( guest->basic.max_leaf > host->basic.max_leaf )
+    if ( (guest->basic.vendor_ebx != host->basic.vendor_ebx) ||
+         (guest->basic.vendor_ecx != host->basic.vendor_ecx) ||
+         (guest->basic.vendor_edx != host->basic.vendor_edx) ||
+         (guest->basic.max_leaf   >  host->basic.max_leaf) )
         FAIL_CPUID(0, NA);
 
     if ( guest->feat.max_subleaf > host->feat.max_subleaf )
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 11:21:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 11:21:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252076.1548866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0e70-0006vK-Jc; Thu, 12 Mar 2026 11:21:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252076.1548866; Thu, 12 Mar 2026 11:21:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0e70-0006v7-GG; Thu, 12 Mar 2026 11:21:54 +0000
Received: by outflank-mailman (input) for mailman id 1252076;
 Thu, 12 Mar 2026 11:21: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=17Qz=BM=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1w0e6y-0006gG-Vo
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 11:21:52 +0000
Received: from BN8PR05CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c110::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a92e7c0a-1e05-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 12:21:49 +0100 (CET)
Received: from BL1PR13CA0326.namprd13.prod.outlook.com (2603:10b6:208:2c1::31)
 by IA0PR12MB8746.namprd12.prod.outlook.com (2603:10b6:208:490::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.8; Thu, 12 Mar
 2026 11:21:44 +0000
Received: from MN1PEPF0000F0E1.namprd04.prod.outlook.com
 (2603:10b6:208:2c1:cafe::be) by BL1PR13CA0326.outlook.office365.com
 (2603:10b6:208:2c1::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.25 via Frontend Transport; Thu,
 12 Mar 2026 11:21:44 +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.9678.18 via Frontend Transport; Thu, 12 Mar 2026 11:21:43 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar
 2026 06:21:42 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a92e7c0a-1e05-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=L6tiSSxfWGep66AXiweCBgbnJJjtNk3Nfr1vNxHJnSiqNAUctsNF9tqCz2mNXQvdLYZgN+sIDovFtEi5wNxzuYtLzz0Lh+7cUdaCqht5KC0KsZhsTzhJ+uRjD6j7oCQwHEkXE30HL4HdUv3cngWwiGVbGOhy3lvPlzSCTgphRH9lsh2/1KupgTNUfQbN7JuWeNo4n30e1VfUpygM0knimxTGvhE1G7Zb8RRDvnkkb2TgpYEY6rHCCTwlPqTQlgzVsDOot6ZGHmCG7hxD1wGlyAEJgK7l/thF6mCdE9lwQ/19qJYFnMEN5pboC92g+RaGrieRk1V7dsvOUyhayrinpg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PdWkxG9i7l3rW3T6Rp/jnTpeGEs/5PuOgfzAZHWlwfs=;
 b=T11K9iAzdkyxogVDPOgWwn9euCjJGSfjo2LaI5PmMK5maDevrWSfNx9tbwhjhhzo5rXb3oEMX/BFsf84Pz58bbh0IhLW5ztP0KNKSd4kxg/5viHVDX26bezXrU6GqeSx9eL03X2PqGp4vVlvGnPhtJS6tJB4k+F0gZRMH5eu5zY7fin3Ub4menVnq2MPFk9PnW3BYUgt/I+PgWR49nlp7wg+QCMNVUHyYdOn+mmbSqP4Tw2+faVtMV3YRFQ8VCZaPMpxvnBVGYVItEAYL8qGgdWoItSLkIGhnY7oGUQ0YhrsRWBMNKdfjkrca29ORqhUA0OuxR9/vUcVREs62SsSUw==
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=PdWkxG9i7l3rW3T6Rp/jnTpeGEs/5PuOgfzAZHWlwfs=;
 b=WZSRH1PKTZzq2RkWcQl329WCT6NRG8KKUfeS89fBPC/DY4re0rbrOr6+QE7nPY6oGed5bmQHb6hWRYDCpDa4e7r6/KpW8KeeyU+9rRmehHVjF82pJICWzitoyb8V+nv0fq4L10tEOIPNrE5fbCboH9ZOa7iBT879Vp8IpYI8gWs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Teddy Astie
	<teddy.astie@vates.tech>
Subject: [PATCH v5 3/5] x86/hvm: Remove cross-vendor checks from MSR handlers.
Date: Thu, 12 Mar 2026 12:21:12 +0100
Message-ID: <20260312112116.22563-4-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260312112116.22563-1-alejandro.garciavallejo@amd.com>
References: <20260312112116.22563-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: MN1PEPF0000F0E1:EE_|IA0PR12MB8746:EE_
X-MS-Office365-Filtering-Correlation-Id: 890a0033-8e69-4725-e3be-08de80298a8e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700016|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	MT4HRgnSStF36CMp1hPj6Ej21MtbAN9m6FfH0VqiYy/8yAw0GA1nUTuxnIUOvohkK67mxNHosdS2fC2ZmqJBKEJhZeNRIEYGRzpMe/FTdYF2goBzC+ie6hxFYldQaGq4tN5N8HjCCM4W7pPEJymaTcgu2cgqsRhnuAk6K7JCS1+zyNd8d6vxW537D4mjEoucpcgAkMkc8BshLJUqLo8oHLOQ7PyxfdTARDA9u3oxub7uUm0OLm5lGk6FFNerRIALGZs4bN+X2TMxC/6tSNN9CFrtqgF/h4gamr1daylVBtnHTiKFC+dxw2an8E3MtS6qj9ZJeqO+6c5//9uZ6wQpyiABXdoyqtw4SKqKqWE5aEtap72sfY4Ziib7pou2MXGK7l7RokhgBe2MmYNVEpAFyl+HCw1ZXrqZcz8Zy28XDVU73gossb8W/FF5+MktDc1C5ks7OfsVnlwcQZETI4vNZ6ltickdUQ6KVAafGq+ZsAX7M/T2HCH26x1A91T2BnkTqZ0T7ienDmjSTpi4fL8smPUdTRkyWmX8baV4PNyzuFZCiDZg/lTjOFa8PKYJnSDH+3DiDOICzpAfaf4OO0B0z60Pi9ew6Vi+X9jLxA+i4QMYQP6AyvC12aF5S5buIvnJ801gKKFDNrcxdj5sMQQNEKAFRHfQl7o1aH0sFLD3PD3VFqXmRr2D5gD19KoIbHDRyblEWFNwBWUryueF2i2xPa9jxi5FuXljbGTKV4FswAe2x+IqUtM3ddifoQVwaK0z54VVghvXOd19N67DiC8Y0w==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700016)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	LrviW/m6EdCv/MZmRMjmxbXCmD63tMX+CgbNuEaSJUQ4+yBwfuupNpl1wpn1uqzuRuq0Leqa4LwLe7QxK5ro2z1TFJgkteMJqqu+LbnmlDUr+KUi/gSlz590uct90LJHbm4Vn6QBVUy4MXcbpZ3lAs9jUdxU0G26aGsbdtEbcW/6JxEsAjIzp/hACxqd/IY76fKKW2Hn/U+j043F/9ULQy2K9MoNInEdeN1Uij97of2rMDdRQVVkLvDpekAI5wAQl+HNd4fNtONbfoZrtpX/O5HPS2E360S0yVL5oEJWx7+25RD+UWPKKyA39r8Y/sO6/rAmuFHvGf32dL4dsvgIFBX1eqUYBAIoipxG0fYPouBLANjtTLz4y7bguDsM7LlRQNjnwd7AfQmpINCgE0OBOCZ8HLOxXhVGDWGzRgpXCxd6wQkEiGPgbx+lF+ixnnAl
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 11:21:43.9381
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 890a0033-8e69-4725-e3be-08de80298a8e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-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: IA0PR12MB8746

Not a functional change now that cross-vendor guests are not launchable.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Reviewed-by: Teddy Astie <teddy.astie@vates.tech>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/msr.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/msr.c b/xen/arch/x86/msr.c
index 6a97be59d52..d10891dcfc8 100644
--- a/xen/arch/x86/msr.c
+++ b/xen/arch/x86/msr.c
@@ -169,9 +169,9 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
         break;
 
     case MSR_IA32_PLATFORM_ID:
-        if ( !(cp->x86_vendor & X86_VENDOR_INTEL) ||
-             !(boot_cpu_data.vendor & X86_VENDOR_INTEL) )
+        if ( boot_cpu_data.vendor != X86_VENDOR_INTEL )
             goto gp_fault;
+
         rdmsrl(MSR_IA32_PLATFORM_ID, *val);
         break;
 
@@ -189,9 +189,7 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
          * from Xen's last microcode load, which can be forwarded straight to
          * the guest.
          */
-        if ( !(cp->x86_vendor & (X86_VENDOR_INTEL | X86_VENDOR_AMD)) ||
-             !(boot_cpu_data.vendor &
-               (X86_VENDOR_INTEL | X86_VENDOR_AMD)) ||
+        if ( !(boot_cpu_data.vendor & (X86_VENDOR_INTEL | X86_VENDOR_AMD)) ||
              rdmsr_safe(MSR_AMD_PATCHLEVEL, val) )
             goto gp_fault;
         break;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 11:21:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 11:21:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252077.1548873 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0e71-0006yI-1R; Thu, 12 Mar 2026 11:21:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252077.1548873; Thu, 12 Mar 2026 11:21:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0e70-0006xA-NP; Thu, 12 Mar 2026 11:21:54 +0000
Received: by outflank-mailman (input) for mailman id 1252077;
 Thu, 12 Mar 2026 11:21:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=17Qz=BM=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1w0e6z-0006Qg-99
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 11:21:53 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aa9b1b7b-1e05-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 12:21:52 +0100 (CET)
Received: from BL1PR13CA0313.namprd13.prod.outlook.com (2603:10b6:208:2c1::18)
 by CH3PR12MB8754.namprd12.prod.outlook.com (2603:10b6:610:170::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.8; Thu, 12 Mar
 2026 11:21:46 +0000
Received: from MN1PEPF0000F0E1.namprd04.prod.outlook.com
 (2603:10b6:208:2c1:cafe::11) by BL1PR13CA0313.outlook.office365.com
 (2603:10b6:208:2c1::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.25 via Frontend Transport; Thu,
 12 Mar 2026 11:21:46 +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.9678.18 via Frontend Transport; Thu, 12 Mar 2026 11:21:46 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar
 2026 06:21:44 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aa9b1b7b-1e05-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=occdNwNAxGe/QkbK3kUGeDaWy5SyuDTLAvQFupUrbQKMFzHl9cqJZ3rakyhiWspmiQUJcdkwpqpZdw8KR9b7aaus8lHyy4g0+cj+R7/cDrbdOzwNvrAUxl2FbzgBwyQZ5kSldm42tdE4QKr+8y6hAlr4G0J7KonpcQfqoYsmWSefaa+BEjBqP6qB+REu4mV8eu9aCxoafqUgxksMvRCqc7jmMDMw9rlSNTYSZCIWKz4p3F5s+21FMU1uLxdRIOKHUdYmv45A74ssttqblD83fTCRzO7JOAEYa4MFVlUYjWpH5APDUjaKTdf3oOpYW+vM9xC77ushgv5HUYW5iBVUeQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Soh9rhU/Aoc+mc4XaiFXphWcynULpkzWojo6OlbgdPQ=;
 b=CdTB2ijb08ewRQulmiG7eTIYRYzXnbBFDrb/yp6HIPwr9E9gKemR4I2iEDMPMjghFRxrAWyPPpFX9Vyuuy73tPDlHA4ta22U/4dhA++FnZSICjLrv+eJADlt/tRsuC+T0ZXKPdEsY6Hrl+pTFiva7mbXxJd2E81275UdSBe3D43jKlrgYXvgUI3CIMMbe9IrdPzdoWb0C+GDlShwP94Sn1hxxFpdoPgLpuMxNZ/ZdzjoXz7QMEeTYyLMK/w5QRu+PDe3jHsdmTKtKXA7fPOtNTNUrKDyzk/IdQEcUERQpOe0YdzdIOs5Qy8tgRUxnrUFe0jP0OImspFKXSt5hygtqQ==
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=Soh9rhU/Aoc+mc4XaiFXphWcynULpkzWojo6OlbgdPQ=;
 b=JEMYQ6Uu/lcHH3lYNRKgwP0cxqXl/nuQhZ3IePe7isz09MWf7tiD4CiLCoaZ4EIEccRpUUQQl84rXd3fSDVkrWyn6W13IQFoW5+zENraYZ/Hzi1jHiIxvHrK9v3I35ytQlTB/0tiLAR13Lb5QTR2HhQXNQpdVej9Ez9QA0B0hKo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v5 4/5] x86/svm: Drop emulation of Intel's SYSENTER MSR behaviour
Date: Thu, 12 Mar 2026 12:21:13 +0100
Message-ID: <20260312112116.22563-5-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260312112116.22563-1-alejandro.garciavallejo@amd.com>
References: <20260312112116.22563-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: MN1PEPF0000F0E1:EE_|CH3PR12MB8754:EE_
X-MS-Office365-Filtering-Correlation-Id: 3ac9a602-f8b5-4dcf-30ba-08de80298c1c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|82310400026|36860700016|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	oPD5RXA+UVks79lWS9Aa28gog5dqjSHQhA0CUcFOCd6kiBssIxhnUn4SK+hr9/HF+9SnDhvu6mi6Dy/ifu6F8k1DUo+NFTGDDIwZnvec/vEmwwg3EegGmkZR//3NaIeToO3jXOR9gygR/luaszXVCV3graAuotRcy5oKqQ509WStc9zb7761qjUdtgmaha2I5GSc3pOOCQhmgJUcbEeX2BE77/DrLjyvHLWnEiYB+yps8WqYWuAS4pAQ02cupNIrMXwRGaeWEEcyTIB6XsTkrLHA4ROFHNuElmbCp5p1td1VP6FOxfU4mg8uXGf6RKSJasS6NHN+6TnmWve9IMi4SwVV7Kfr6yFbEDy0X3iISK/5FmiMeeX/CqLT72w7YyfkcZXY/XRBqRNunExO7XAkd+L9Kezl93MhiWnmFiYooTAO7KMX3ZddeJVghOhbvhoxYz+NnRkcG5k6VOaMDNn+Q/JdUc9KloOCPp+nYwIOorVXIZyYPsV4dzeo3q09pUNZdG9ZH6cXCP9c3CIDHGcHecZBgYc0NhVHImXoJFZU8Gf1Vlq7AZXQlg6rrVeZQ+KioXyOCXDuTsLD/ndZHeAxEegar7BRkprxPW00pyu5JmNkBogEJQGgOnBLI9tPvdfW/kusd+Ht0y4TJVhWJdbZwoGTf3KKgJnSqmL1ODPEbzzcRvjTeFVVbaeY0Xe/CLBhAnBhUGt8E2+TBusvyid/1GWIp1YBUvBBmmwRXyA2kwNLi0HudDVyb9ZKSTg9M6dH
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)(36860700016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	GrLsm6r9WTyMkmTr/2Bzs3Bz0efOeuD8OIfcwPuTSqD8t1qkxS7ei9S2aS2GGkqr4KrrEjBaOU/V7ElgcSXz+H6KJsJUFtzOJAPqaS5mY/QyMtSM3euIp81e7OF4sZBsbEvYvGEuEKiohBpJdo/DaQkJGtrlqhW9Cd7iILP1QAxU7UKTY1/WgfJ1PF72gPJydaCed1ECTdZ+U9bxNrj6biTo816h3DAmF0lk6pvSzqAxylB2Tb+KMfVcIr4gaVeHvxjDoHEfN0dBgavVdwB138CtFIKY2DuBKONaNy1PulTxjZoY7mvkh/KHNQo6Q59D6N4zz14gGCExJftkEBH+gAePK7jPrEzwj7W14y7X+c2wLpMM+49rUP+1PTRzJ6HH61Hp1ZNUFwi7Ha6WhUi6So68ODL50171rpTV06l7CcvyUjxkcfyUdQwBqZZNCzM1
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 11:21:46.5488
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3ac9a602-f8b5-4dcf-30ba-08de80298c1c
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-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: CH3PR12MB8754

With cross-vendor support gone, it's no longer needed.

AMD CPUs ignore the top 32 bits of the SYSENTER/SYSEXIT MSRs, which is
not how this emulation worked due to the need for cross-vendor support.
Any AMD VMs storing state in the top 32bits of the SEP MSRs will lose
it.

It's very unlikely to affect any production VM because having 64bit width
just isn't how real AMD CPUs behave.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Reviewed-by: Teddy Astie <teddy.astie@vates.tech>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
v5:
  * New title
---
 xen/arch/x86/hvm/svm/svm.c               | 42 +++++++++++-------------
 xen/arch/x86/hvm/svm/vmcb.c              |  3 ++
 xen/arch/x86/include/asm/hvm/svm-types.h | 10 ------
 3 files changed, 22 insertions(+), 33 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 20591c4a44f..076d57e4847 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -401,10 +401,6 @@ static int svm_vmcb_save(struct vcpu *v, struct hvm_hw_cpu *c)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
 
-    c->sysenter_cs = v->arch.hvm.svm.guest_sysenter_cs;
-    c->sysenter_esp = v->arch.hvm.svm.guest_sysenter_esp;
-    c->sysenter_eip = v->arch.hvm.svm.guest_sysenter_eip;
-
     if ( vmcb->event_inj.v &&
          hvm_event_needs_reinjection(vmcb->event_inj.type,
                                      vmcb->event_inj.vector) )
@@ -468,11 +464,6 @@ static int svm_vmcb_restore(struct vcpu *v, struct hvm_hw_cpu *c)
     svm_update_guest_cr(v, 0, 0);
     svm_update_guest_cr(v, 4, 0);
 
-    /* Load sysenter MSRs into both VMCB save area and VCPU fields. */
-    vmcb->sysenter_cs = v->arch.hvm.svm.guest_sysenter_cs = c->sysenter_cs;
-    vmcb->sysenter_esp = v->arch.hvm.svm.guest_sysenter_esp = c->sysenter_esp;
-    vmcb->sysenter_eip = v->arch.hvm.svm.guest_sysenter_eip = c->sysenter_eip;
-
     if ( paging_mode_hap(v->domain) )
     {
         vmcb_set_np(vmcb, true);
@@ -501,6 +492,9 @@ static void svm_save_cpu_state(struct vcpu *v, struct hvm_hw_cpu *data)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
 
+    data->sysenter_cs      = vmcb->sysenter_cs;
+    data->sysenter_esp     = vmcb->sysenter_esp;
+    data->sysenter_eip     = vmcb->sysenter_eip;
     data->shadow_gs        = vmcb->kerngsbase;
     data->msr_lstar        = vmcb->lstar;
     data->msr_star         = vmcb->star;
@@ -512,11 +506,14 @@ static void svm_load_cpu_state(struct vcpu *v, struct hvm_hw_cpu *data)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
 
-    vmcb->kerngsbase = data->shadow_gs;
-    vmcb->lstar      = data->msr_lstar;
-    vmcb->star       = data->msr_star;
-    vmcb->cstar      = data->msr_cstar;
-    vmcb->sfmask     = data->msr_syscall_mask;
+    vmcb->lstar        = data->msr_lstar;
+    vmcb->star         = data->msr_star;
+    vmcb->cstar        = data->msr_cstar;
+    vmcb->sfmask       = data->msr_syscall_mask;
+    vmcb->kerngsbase   = data->shadow_gs;
+    vmcb->sysenter_cs  = data->sysenter_cs;
+    vmcb->sysenter_esp = data->sysenter_esp;
+    vmcb->sysenter_eip = data->sysenter_eip;
     v->arch.hvm.guest_efer = data->msr_efer;
     svm_update_guest_efer(v);
 }
@@ -1734,12 +1731,9 @@ static int cf_check svm_msr_read_intercept(
 
     switch ( msr )
     {
-        /*
-         * Sync not needed while the cross-vendor logic is in unilateral effect.
     case MSR_IA32_SYSENTER_CS:
     case MSR_IA32_SYSENTER_ESP:
     case MSR_IA32_SYSENTER_EIP:
-         */
     case MSR_STAR:
     case MSR_LSTAR:
     case MSR_CSTAR:
@@ -1754,13 +1748,15 @@ static int cf_check svm_msr_read_intercept(
     switch ( msr )
     {
     case MSR_IA32_SYSENTER_CS:
-        *msr_content = v->arch.hvm.svm.guest_sysenter_cs;
+        *msr_content = vmcb->sysenter_cs;
         break;
+
     case MSR_IA32_SYSENTER_ESP:
-        *msr_content = v->arch.hvm.svm.guest_sysenter_esp;
+        *msr_content = vmcb->sysenter_esp;
         break;
+
     case MSR_IA32_SYSENTER_EIP:
-        *msr_content = v->arch.hvm.svm.guest_sysenter_eip;
+        *msr_content = vmcb->sysenter_eip;
         break;
 
     case MSR_STAR:
@@ -1954,11 +1950,11 @@ static int cf_check svm_msr_write_intercept(
         switch ( msr )
         {
         case MSR_IA32_SYSENTER_ESP:
-            vmcb->sysenter_esp = v->arch.hvm.svm.guest_sysenter_esp = msr_content;
+            vmcb->sysenter_esp = msr_content;
             break;
 
         case MSR_IA32_SYSENTER_EIP:
-            vmcb->sysenter_eip = v->arch.hvm.svm.guest_sysenter_eip = msr_content;
+            vmcb->sysenter_eip = msr_content;
             break;
 
         case MSR_LSTAR:
@@ -1984,7 +1980,7 @@ static int cf_check svm_msr_write_intercept(
         break;
 
     case MSR_IA32_SYSENTER_CS:
-        vmcb->sysenter_cs = v->arch.hvm.svm.guest_sysenter_cs = msr_content;
+        vmcb->sysenter_cs = msr_content;
         break;
 
     case MSR_STAR:
diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index e583ef8548c..76fcaf15c2b 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -97,6 +97,9 @@ static int construct_vmcb(struct vcpu *v)
     svm_disable_intercept_for_msr(v, MSR_LSTAR);
     svm_disable_intercept_for_msr(v, MSR_STAR);
     svm_disable_intercept_for_msr(v, MSR_SYSCALL_MASK);
+    svm_disable_intercept_for_msr(v, MSR_IA32_SYSENTER_CS);
+    svm_disable_intercept_for_msr(v, MSR_IA32_SYSENTER_EIP);
+    svm_disable_intercept_for_msr(v, MSR_IA32_SYSENTER_ESP);
 
     vmcb->_msrpm_base_pa = virt_to_maddr(svm->msrpm);
     vmcb->_iopm_base_pa = __pa(v->domain->arch.hvm.io_bitmap);
diff --git a/xen/arch/x86/include/asm/hvm/svm-types.h b/xen/arch/x86/include/asm/hvm/svm-types.h
index 051b235d8f6..aaee91b4b61 100644
--- a/xen/arch/x86/include/asm/hvm/svm-types.h
+++ b/xen/arch/x86/include/asm/hvm/svm-types.h
@@ -27,16 +27,6 @@ struct svm_vcpu {
 
     /* VMCB has a cached instruction from #PF/#NPF Decode Assist? */
     uint8_t cached_insn_len; /* Zero if no cached instruction. */
-
-    /*
-     * Upper four bytes are undefined in the VMCB, therefore we can't use the
-     * fields in the VMCB. Write a 64bit value and then read a 64bit value is
-     * fine unless there's a VMRUN/VMEXIT in between which clears the upper
-     * four bytes.
-     */
-    uint64_t guest_sysenter_cs;
-    uint64_t guest_sysenter_esp;
-    uint64_t guest_sysenter_eip;
 };
 
 struct nestedsvm {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 11:21:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 11:21:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252078.1548885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0e72-0007LK-4o; Thu, 12 Mar 2026 11:21:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252078.1548885; Thu, 12 Mar 2026 11: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 1w0e71-0007KS-W3; Thu, 12 Mar 2026 11:21:55 +0000
Received: by outflank-mailman (input) for mailman id 1252078;
 Thu, 12 Mar 2026 11:21: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=17Qz=BM=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1w0e6z-0006gG-Vq
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 11:21:53 +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 a9874ec0-1e05-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 12:21:51 +0100 (CET)
Received: from BLAPR03CA0179.namprd03.prod.outlook.com (2603:10b6:208:32f::33)
 by LV8PR12MB9405.namprd12.prod.outlook.com (2603:10b6:408:1fa::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.7; Thu, 12 Mar
 2026 11:21:42 +0000
Received: from MN1PEPF0000F0DF.namprd04.prod.outlook.com
 (2603:10b6:208:32f:cafe::36) by BLAPR03CA0179.outlook.office365.com
 (2603:10b6:208:32f::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.27 via Frontend Transport; Thu,
 12 Mar 2026 11:21:37 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MN1PEPF0000F0DF.mail.protection.outlook.com (10.167.242.37) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Thu, 12 Mar 2026 11:21:42 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar
 2026 06:21:39 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a9874ec0-1e05-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pzFx4z92leE4X94xzu6vXFjM59CEBxe0fnTSy0wdRI6obVtU+DxheYnlV+yBGahDO0Uk6qZUL2RQWDcog3MxdadXcqWdBo6NnSVwTpAHVvDpf9OFRI/T+T6mLs7afU6r3IFI28zD6aklfsRz+mHDKd607I8Z834/afqFdCO9qwIvfbbOJsGyxLdY6Wp+u5SrvhrFEaBL+liuR8E0hSvOKTw7F6b+StW+yYgdVvsYp2mSPSn40F5YBsMjPaYVlmOm2P1633CIDIwhCYjDpURHd2H+b9y+6WpX8aj/5ASuAIB8nTRNV/BOKR1+jIiNXHfajSj9O6H6Ri/QhfEeYgbqeA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wv5wvI380mS69M5JH7UHNf7qmRDw4qiA/tgGNcS4cFM=;
 b=feBmPoti15B5Q4AoZ1DKIEngV8URAIk6B44RRlrlEsJG+44j/1+t9l5lyQ8+xStRVkEfGsLKYfXMt1AFbw6iKnQK+oZalzQdOVFmh8chw4ImRZK5NZahB6pN3jsIOjrrafjKoBMNAY6GAU6Ld20MsoOl52JTY82IVSJeSyU9wMu+BSOpDK6AcoYPGXYnx872p2ugwsIJkT/qIWxkpp50ah1Mt3dsCoOw+mcfJeWlqzJD/kF7q/rvuuCIT928cT3tmqSS/64hMU0aZh0MOUQxyve5DwU2Am0YIIqUMzhOhHBaDPBFuqvwzvw3wGnPXpeXGhhdw0q4ke8Xpz1o0JDQZg==
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=wv5wvI380mS69M5JH7UHNf7qmRDw4qiA/tgGNcS4cFM=;
 b=GX/rSusZYPQm81Z6n0EQJKB3UAfJpaaUIq5ZR+RXWD0zW1LTbedBJ5qeDAfaDaRQyKmFGxB98VJPwGXQvPywhDhaSDeMYSzi7RfS5IkFCEIqveJuQbfWj0rW2VwaxqQ4kNBFQHILgmYCvaEF2RUm3EfV7XCvu50z5LcAq1GJlcs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: [PATCH v5 2/5] x86/hvm: Disable cross-vendor handling in #UD handler
Date: Thu, 12 Mar 2026 12:21:11 +0100
Message-ID: <20260312112116.22563-3-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260312112116.22563-1-alejandro.garciavallejo@amd.com>
References: <20260312112116.22563-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: MN1PEPF0000F0DF:EE_|LV8PR12MB9405:EE_
X-MS-Office365-Filtering-Correlation-Id: 3cfe8d4c-7893-4c72-3952-08de8029896d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|82310400026|376014|1800799024|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	tUoTV/kTkQL2wetZ09nm49C92ytV/0meKac80akq1LuKClxmq9qhlq0mUrHpDGsSlk7Hmd83EocIS+GYaINXV8JYH65CbgpUah8mHulqDFdr7ZtVC0WHFQDDPNLB8iDeLo3HEydWzBkEN6ux9dyre6zOoHxFrFY5K5RNmpylFf2t9hfeBkfRMUEdcmRo9Kdt2nZJ6eS5U4S6vQmCu7SYfrsEpkS4aSgDI8xaeLyZE2QCRpjI6Vl0Dl4kx0FX3/ad0MCflByk/a3jmwuJergu6ad287S2YKsawBWPx/pgkBUWEx23Lf1rWJK9GcOVVHpgqIclAzh7AOWTwJpqW2Uds09LUvfmYSxm5n5iZykq5mIMbQ6cLW3QAqlKCMWk3mDsHZoSNKqB19IbyR/HUhf7ID3/8a3+5bCk+/Cj6G4bq63HyMQEAVttmPpqW2fZrBsnVxquhFbnw2fTewxywFFBIEWJMRgx1FlTMkeTBjb0I1cL0QbSlNfrf+xKWcUTpAQpq9sygXeNv3vfnA4SLkTodqFZpjhad2Ryvjgdiz1rU0MTQK7TLgQSkkvB2uWCjkVBhcN9y6S5UXeymOGhzrjlM3PxUGITZmQBnyJ6GIGpFmYda9Lr9QexH/FyZPKs3XyGUHAGQqGAXMBcd/7eQJYZR8ohWsgpfQlqk22JePrpc/IQPImpEfpW2gfkGvMXj5wC6tk6+Kgrpb9qAko0W2OLvbvA5lt1L+eg6wyp+cxxA7dw0QIq1gXGEjBk1scw//DYbugKTBsodcZf0eGRLfX7XQ==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(82310400026)(376014)(1800799024)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	+QpxfV8ndm2BiwAr6EMhW9o1SOzpXerkK1X5rEDNjoRwPHwUFBD88eKPmYkQqx/Pk76bRv2d3XwQRLJ/RzVwStMlNJFPuZE/SL0tQ6ICyOtHkTwIzjb+mOrqoYivOD1akeGtNaQcxrsqMdJMwtk/eLwxZGYDAoz8eR0/4pbZYI59Zj0qS6yJbOBXVDSZt9nX915Aj7coxnOhBeFBnrOqbbiKWL/tPrtm28TrY+d6wa4Y0VReEJenBublWKwioXSIgLn/x0H5NhA3tBTG8KIzsM6RzReR11I7wdOslzVk0gid4OlUvLZbEzC/y+ANQjf3ZvxiR8ZdK+YMfG/E0eLC4H7jVi6rQaXLxY4QMrPBpVQ0ozVav41GjgfRbXZRwP7riF+DEuYULfo1q8WTXGmhQP3TQTxDE6lGUbP6JGxBhy67dg1bxrMkwSQXukdiuFqb
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 11:21:42.0393
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3cfe8d4c-7893-4c72-3952-08de8029896d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000F0DF.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9405

Remove cross-vendor support now that VMs can no longer have a different
vendor than the host.

No functional change intended.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
v5:
  * This patch now performs a minimal diff, with the other parts appended
    to the tail of the series.
---
 xen/arch/x86/hvm/hvm.c     | 19 ++-----------------
 xen/arch/x86/hvm/svm/svm.c |  3 +--
 xen/arch/x86/hvm/vmx/vmx.c |  3 +--
 3 files changed, 4 insertions(+), 21 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 4d37a93c57a..c8cae41705d 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3832,28 +3832,13 @@ int hvm_descriptor_access_intercept(uint64_t exit_info,
     return X86EMUL_OKAY;
 }
 
-static bool cf_check is_cross_vendor(
-    const struct x86_emulate_state *state, const struct x86_emulate_ctxt *ctxt)
-{
-    switch ( ctxt->opcode )
-    {
-    case X86EMUL_OPC(0x0f, 0x05): /* syscall */
-    case X86EMUL_OPC(0x0f, 0x34): /* sysenter */
-    case X86EMUL_OPC(0x0f, 0x35): /* sysexit */
-        return true;
-    }
-
-    return false;
-}
-
 void hvm_ud_intercept(struct cpu_user_regs *regs)
 {
     struct vcpu *cur = current;
-    bool should_emulate =
-        cur->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor;
+    bool should_emulate = false;
     struct hvm_emulate_ctxt ctxt;
 
-    hvm_emulate_init_once(&ctxt, opt_hvm_fep ? NULL : is_cross_vendor, regs);
+    hvm_emulate_init_once(&ctxt, NULL, regs);
 
     if ( opt_hvm_fep )
     {
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 243c41fb13a..20591c4a44f 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -589,8 +589,7 @@ static void cf_check svm_cpuid_policy_changed(struct vcpu *v)
     const struct cpu_policy *cp = v->domain->arch.cpu_policy;
     u32 bitmap = vmcb_get_exception_intercepts(vmcb);
 
-    if ( opt_hvm_fep ||
-         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor) )
+    if ( opt_hvm_fep )
         bitmap |= (1U << X86_EXC_UD);
     else
         bitmap &= ~(1U << X86_EXC_UD);
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 82c55f49aea..eda99e268d1 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -803,8 +803,7 @@ static void cf_check vmx_cpuid_policy_changed(struct vcpu *v)
     const struct cpu_policy *cp = v->domain->arch.cpu_policy;
     int rc = 0;
 
-    if ( opt_hvm_fep ||
-         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor) )
+    if ( opt_hvm_fep )
         v->arch.hvm.vmx.exception_bitmap |= (1U << X86_EXC_UD);
     else
         v->arch.hvm.vmx.exception_bitmap &= ~(1U << X86_EXC_UD);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 11:21:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 11:21:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252080.1548895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0e74-0007g3-LV; Thu, 12 Mar 2026 11:21:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252080.1548895; Thu, 12 Mar 2026 11: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 1w0e74-0007ft-GR; Thu, 12 Mar 2026 11:21:58 +0000
Received: by outflank-mailman (input) for mailman id 1252080;
 Thu, 12 Mar 2026 11: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=17Qz=BM=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1w0e73-0006gG-1e
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 11:21: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 ac67d48b-1e05-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 12:21:55 +0100 (CET)
Received: from BLAPR03CA0173.namprd03.prod.outlook.com (2603:10b6:208:32f::35)
 by DS5PPFD22966BE3.namprd12.prod.outlook.com (2603:10b6:f:fc00::662)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.6; Thu, 12 Mar
 2026 11:21:49 +0000
Received: from MN1PEPF0000F0DF.namprd04.prod.outlook.com
 (2603:10b6:208:32f:cafe::ae) by BLAPR03CA0173.outlook.office365.com
 (2603:10b6:208:32f::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.27 via Frontend Transport; Thu,
 12 Mar 2026 11:21:44 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MN1PEPF0000F0DF.mail.protection.outlook.com (10.167.242.37) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Thu, 12 Mar 2026 11:21:49 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar
 2026 06:21:46 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ac67d48b-1e05-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SdwFOJLt9vlEHVBamaCRsdGomWgkR28q8jXTETF5GHnCNPqjGoDJdAFndp9JJoWrfCWVpUl2NDqxwAD3MJDJxWOqsHT5U7EXkxcgHF9JCu//OgmNxtFrj6ISbPZU0u6PCkCBmTtl9uscQZ/d0hzKXy23NbyPFr9Z3CmRdLGigtmGy2wH6hx82PSQby/TcrnjV5I0gYiEzeJtKbBwH7ujOUuZHGKsh9jES2E5dSscchqMH8T4r9SgAmhZ/bUYXiNSYIB1MzlYXQp12ybV/H9MbSXL7Rbv+LMrX7vu4P1X7rkDJtFYwwYcoXXJhW9f1GWis6+yn3/h2TedMdgz+qp+NA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=N3XZe9B6SBQbKn8ypeUZSmODNlvYz970OWYJkLumTS8=;
 b=Zotl9oheACloDlcH4fuVeVA9pA8kTKNjs16BsFs/tKGQja2orxHsq1wFixX8KelCj3uJhDKDKjvoCKp+KYWioTv1DD7cMUEfm5+owSBS+E9SwWqTSc4lkFWf/BIPmcU2tdcaW6ukh+RDBvrsfmnOQPdkYZAIGzb4AZj0TMWDfDS4Rouu3RNKCHXLUKWXMgY78quJbIta9OhHd+B6FQtpl8jl0IRSBeg/FigYY/rxvjrUhAqGIFr++26vZ0/Awqe6vpg/VbVwxK/ri1W0z2J6ApSnvajgUZpF9N7lM68Lpc4sjhunzezmMCM0I0L8ZKP1cdfwR4rPHNZjGiJQw3/FaA==
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=N3XZe9B6SBQbKn8ypeUZSmODNlvYz970OWYJkLumTS8=;
 b=I41yhbnbCCdgxN4HPe7jxHsRLs1+DJQrW9TQO00TYuJ/OSljlFN4UBfqukqJvevuauTZqYEflT6OLCOYSyc/G8Fyby3dhwRVh0SZ5ruM2gemQMqCL9ocIU9f/Da7TbK3vcP5ThSXoijyFo0PY74TtprOviLMjTNMqz4wj5b6QWw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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 v5 5/5] x86/hvm: Un-indent the HVM_FEP block in the #UD handler
Date: Thu, 12 Mar 2026 12:21:14 +0100
Message-ID: <20260312112116.22563-6-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260312112116.22563-1-alejandro.garciavallejo@amd.com>
References: <20260312112116.22563-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: MN1PEPF0000F0DF:EE_|DS5PPFD22966BE3:EE_
X-MS-Office365-Filtering-Correlation-Id: a1bddbd4-34bb-46d9-c773-08de80298d9d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700016|376014|82310400026|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	M80IomQrWaBTjaPrn8qRafC1MRET4Uc6BdN07XML7ADd693QHE5w2s9Cuo3TLolDUQ3EmEEeoKhKEIdYd1CN3W5+AMlwvYiKaCUYSHeIostRq1zQUsxAvFFEtWRDhyIcjVr2LovdS10gt2VFpyeLzoaNh3bZ260M9S0fVAFiQ066nCwbuY9+wwINvEgqbU/EQzj0UayNNZrlp8/Ezq71sZsQKoRGwP43Up8vgdIFB5Zxs8ofww+BRNCHNIV5MGLu0V9UNt3iFOlfR+fKimKl5VF3fVh58XPeik2nztJ4GJQ0UVSr+T+eGzEvQe7qOxH4yxVgWLeL9weS1QyoaMmeJ0AutRg1H3pooPAOz+2+i8t102/2zk5ZTzl5XLoeoV+T6j8Z7cvwm6opHEpAHMRX/E5jt8WQ1pmEt1nKUw3TqA8jmTyxG85+qgt7k7eFaTJZyHgBL0XK+yjIdpTizYUmlX87dJcO6gSp2EbslL2WumxbGnpqF13sHWTEDqK0GmS+NceIyUBGC/Tg/irjtPyBmYXyD19c5N8m7uOxFTcMMBgghPyBatdf6pI7/i04XdjDGgD3mjBuIw15u3KKqoPAPFiPNiSjRJNng2nTJxRObFbfEujH8SoshdBDDScQcCEBzWOoD4Xlr0f+Qr/NDMZlTWgQ1CI5mz1sO0npf1DiZuzOFi6En7RXrjJqFFBWg/fEoy87oeOxKsxwLco6LrstBppVr0GqRvL6mrIxJaAKtldol5eqvaV2ar9EkWbZSHwU/XjscZYttzBclzf9fGpitg==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(376014)(82310400026)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	B41kkjv6oc6ttN8PFcrSRImCRottItfd9+FR7GwO7jGjKS49tWsrbJhr/ILyeKRVnEE716wUw74R5GijJ2DoirUR3xeIoY/tmpjmvwqImm9bJnXoyU3C5HHoL8+OcAE8W6I3F1b+JycSXR+NrRUu5676LYU+XiqGDkbi6IOXzYO/X5vJ6dq1ZeKA1aenS8vefk5Fz9TFUqW7CLgwtmXVfdtb24rZYXBU4uTqteY1TPQG8CEwa/KoLXzUv+Sl1oiRL2Kmt0RiJixNPm++cz9lV6glzSosEZp2u6uIhGTL0QAcix++qAxidQtxgOhN+fyp+Eiohzl+NOQH/GK6tZo8LBAYiAazvNxASs1D6WA/y+NJSmWJbFK6C1iU2vwxmGgQZMYHVnejY/zQdiXJxqMEfjxJS7tlr0ZEFBZiZjZKuC0ikPtg3uZ+aTUX6pinKXJN
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 11:21:49.0692
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a1bddbd4-34bb-46d9-c773-08de80298d9d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000F0DF.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS5PPFD22966BE3

FEP is now the only reason for the #UD handler to run.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/hvm/hvm.c | 43 +++++++++++++++++++++---------------------
 1 file changed, 21 insertions(+), 22 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index c8cae41705d..4c00cf4c4fe 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3837,35 +3837,34 @@ void hvm_ud_intercept(struct cpu_user_regs *regs)
     struct vcpu *cur = current;
     bool should_emulate = false;
     struct hvm_emulate_ctxt ctxt;
+    const struct segment_register *cs;
+    uint32_t walk;
+    unsigned long addr;
+    char sig[5]; /* ud2; .ascii "xen" */
 
     hvm_emulate_init_once(&ctxt, NULL, regs);
 
-    if ( opt_hvm_fep )
+    cs = &ctxt.seg_reg[x86_seg_cs];
+    walk = ((ctxt.seg_reg[x86_seg_ss].dpl == 3)
+            ? PFEC_user_mode : 0) | PFEC_insn_fetch;
+
+    if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip,
+                                    sizeof(sig), hvm_access_insn_fetch,
+                                    cs, &addr) &&
+         (hvm_copy_from_guest_linear(sig, addr, sizeof(sig),
+                                     walk, NULL) == HVMTRANS_okay) &&
+         (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) == 0) )
     {
-        const struct segment_register *cs = &ctxt.seg_reg[x86_seg_cs];
-        uint32_t walk = ((ctxt.seg_reg[x86_seg_ss].dpl == 3)
-                         ? PFEC_user_mode : 0) | PFEC_insn_fetch;
-        unsigned long addr;
-        char sig[5]; /* ud2; .ascii "xen" */
-
-        if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip,
-                                        sizeof(sig), hvm_access_insn_fetch,
-                                        cs, &addr) &&
-             (hvm_copy_from_guest_linear(sig, addr, sizeof(sig),
-                                         walk, NULL) == HVMTRANS_okay) &&
-             (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) == 0) )
-        {
-            regs->rip += sizeof(sig);
-            regs->eflags &= ~X86_EFLAGS_RF;
+        regs->rip += sizeof(sig);
+        regs->eflags &= ~X86_EFLAGS_RF;
 
-            /* Zero the upper 32 bits of %rip if not in 64bit mode. */
-            if ( !(hvm_long_mode_active(cur) && cs->l) )
-                regs->rip = (uint32_t)regs->rip;
+        /* Zero the upper 32 bits of %rip if not in 64bit mode. */
+        if ( !(hvm_long_mode_active(cur) && cs->l) )
+            regs->rip = (uint32_t)regs->rip;
 
-            add_taint(TAINT_HVM_FEP);
+        add_taint(TAINT_HVM_FEP);
 
-            should_emulate = true;
-        }
+        should_emulate = true;
     }
 
     if ( !should_emulate )
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 11:30:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 11:30:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252135.1548902 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0eFP-0002cS-Eh; Thu, 12 Mar 2026 11:30:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252135.1548902; Thu, 12 Mar 2026 11: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 1w0eFP-0002cL-CC; Thu, 12 Mar 2026 11:30:35 +0000
Received: by outflank-mailman (input) for mailman id 1252135;
 Thu, 12 Mar 2026 11:30: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=jTts=BM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0eFO-0002cD-5r
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 11:30:34 +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 dfa9e506-1e06-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 12:30:29 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4852f73d0a3so8308275e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 04:30:29 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439fe21b631sm9340256f8f.27.2026.03.12.04.30.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 04:30:28 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dfa9e506-1e06-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773315029; x=1773919829; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=O36rUnkadiIg6aqkuKyYmmGiuGQxdTDhnVE3HZFlPL4=;
        b=WZtybFTLwa3ZR68ewSEFDM0F3PyuFAIupPsDxtasPO//TTMi/IfBlwUEX3HYzEP6Fu
         4KImWaXACGxcRCC7AK8XNbDRRS9+v+DOpdqeUvVKJfnHAlx3fJczn5JHVBxMUJpFFZy3
         HxOx+eRXw7OKtaEuF3Me3wHbrcujJmeAmG60FjkpV3ttagnsQTdLSi0mJTLw/II1Qfk4
         gUvFgkNGEKM08HQm4REDu+Pz6GiBBw6wpRA6hfBuk4TuT/AckbFQRKhILGX0JARH2v2n
         ir8cp8TzO1I21O0228I4Z7f31SHyjjajm3IfhjIQmDTBggPc9vcx2SWJcQZOuR7VbUyo
         6zLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773315029; x=1773919829;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=O36rUnkadiIg6aqkuKyYmmGiuGQxdTDhnVE3HZFlPL4=;
        b=NDYz8yvXhEcs1iOOF32s+8ULfNLl+kpimbLwddkwfFKw5ehAx0eJHC3qdmGdSmya6s
         N8TIqm2himlR5tM90OReTMPgTzrv7IZlVEO/3tNLqOg87FCPrXSSAwXzjhpG73WDqsJd
         CgBlkQ/HfDBOHB3lyZEo5ywBqyjSiH9SHA0GqE6IY3iVvbSB0dKBXcBg8ysk/NEsz35P
         /wykaQhMVWggeMmeVIPHA2SykCAKNI2BmfkerRt9k/T6usRbNU2+Y2KqNZBBsWfvcQ0r
         COc974zqq7apfkhhlSOMtB+R8ExCwbr70nNtBnlxqvlzU/uEEgjl6PMagutYlRo6lOH/
         lBxA==
X-Forwarded-Encrypted: i=1; AJvYcCVqZhDUzcKjasZ3iLdENhJ3ZF3EH7HD1jNGYSGjk+V0lLqDhCGtM6W6nWq3BbYiYvqqx/pnKMvSLnA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyn8t4MUtBruFgJBVB6MGd5l6t+41npNp73vOqbWVyk5k6rCCNi
	Z0jAvelSBfWWSoIDkAKcbKbpXpZTPiPQhpsdtjlH8QQSC847VjHMbzULAY2i5YneSg==
X-Gm-Gg: ATEYQzwsNT9Q2x76CPAWw9whYTlQOIZuAHX90mzqxmYWB1bwxWPpeEsbpqzHMiXytX/
	Uuq96ax/JQuSWAr6vtvcwe6aXIhU0L9FAPERNlbxTLve/q52jNGPu4XAJi3/30Jk1XPoS4EASyb
	NNdv1lsODvObG7qmYeQaexvnt/uFxNutdblnGmKMMDNZWq2iVx1c606gNbSUvq4P3ZxguAlDRhm
	NAF0UZa6vY9x3px/4SN0YUgWJ4W5jQiHq4/nrclshwNL8JYYVMjRb84Y6KCv11nVRKYspFSEpc2
	w99AHnB8P0VoEErDgZa1f/PnnSdEvUGKIwn0xYpaCqdGhvUjO6xCRi5CT/aKFKuC+jW6errmx2w
	/giBvrIrB8TC2qJl8JAdhem7UqatB1eciD29tK/rD6HcDgpV1HorBK7wnjBnelS7/ucWWTEL8dE
	X2KIQzHLwistUMyeXHo/v0wEL7oMwrdExELU1nphJ7fyKX6MhaVFOPFdJIewHkq7Mleg6em2V8c
	ScFVyix4xPQ0t8=
X-Received: by 2002:a05:600c:8b02:b0:485:3f72:323f with SMTP id 5b1f17b1804b1-4854b0c74e0mr103504155e9.11.1773315029131;
        Thu, 12 Mar 2026 04:30:29 -0700 (PDT)
Message-ID: <4197491b-a7dd-4402-bc44-eb26368e390e@suse.com>
Date: Thu, 12 Mar 2026 12:30:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/7] x86/dmop: Add XEN_DMOP_{bind,unbind}_pt_msi_irq DM
 ops
To: Julian Vetter <julian.vetter@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
 <jgross@suse.com>, Julien Grall <julien@xen.org>,
 xen-devel@lists.xenproject.org
References: <20260309123055.880050-1-julian.vetter@vates.tech>
 <20260309123055.880050-5-julian.vetter@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260309123055.880050-5-julian.vetter@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.03.2026 13:31, Julian Vetter wrote:
> Add two DM ops for MSI passthrough IRQs. These new DM ops take the raw
> MSI address and data fields rather than a pre-decoded gflags values. Xen
> decodes the destination ID via msi_addr_to_gflags(), including any
> extended destination bits in address[11:5]. This means the device model
> does not need to understand the extended destination ID encoding, and
> simply forwards the MSI address it observes from the guest.
> 
> Signed-off-by: Julian Vetter <julian.vetter@vates.tech>

Since there's no cover letter to reply to, this one will need to do. What
I'm missing in the series is leveraging of the (limited) cleanup potential.
You're obsoleting the PT_IRQ_TYPE_MSI sub-case of
XEN_DOMCTL_{,un}bind_pt_irq. Respective libxc functions could now call the
libdevicemodel ones, rather than invoking those domctl-s. The domctl-s
could then reject attempts to use that sub-case.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 11:34:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 11:34:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252146.1548911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0eJ6-000396-Tp; Thu, 12 Mar 2026 11:34:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252146.1548911; Thu, 12 Mar 2026 11:34:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0eJ6-00038z-QV; Thu, 12 Mar 2026 11:34:24 +0000
Received: by outflank-mailman (input) for mailman id 1252146;
 Thu, 12 Mar 2026 11:34:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jTts=BM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0eJ5-00038o-Bw
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 11:34:23 +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 6a7acea6-1e07-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 12:34:22 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-485345e1013so15224365e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 04:34:22 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4854b65fd3dsm126827285e9.10.2026.03.12.04.34.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 04:34:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a7acea6-1e07-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773315262; x=1773920062; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SpPVNA9rnXMIJLYHdmj70bxry6tv0vKNhaFDLieBNkk=;
        b=D7fp2ummzJfrJT4/6uGKctjCERb9lC7jP2jjCEc1Fhfo7fqU7FwcLikzkmk8AmCKQp
         xal0/KDVF7GTa9BfSjzm6WTJ2Wjgnvxaht9E3qsZm8U/Q8fUhR/KWqDjg3dpg1m3AF6n
         axMVWFztCmtqGCsO9ScUEmcFShC2KxEyEL6OH79Heh6SGuGJ4LJ03BuqUm985b8VDhWK
         N8hTrAUezoaw/y87xszHIXj0y8O8n3P365OG6SPWEMYtJTOXRODQBNZSnsibpr4T2hSH
         1/JtpmcBWSwnccntH1CcYo62KYLQ2Gne0ztWkC8w0J0tI6SCSpybqfm599Ib6YSgKbAc
         SzdA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773315262; x=1773920062;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SpPVNA9rnXMIJLYHdmj70bxry6tv0vKNhaFDLieBNkk=;
        b=QX724tK2Hjj7qdsaj5QULN16I1jpECXIqhhR5nvbjluHkCM4EVIpcnnZyqk+uj1n45
         dS/d1abaMBxef1T5OjTfV46QbNGJW8EUCLsQ/SxUrLzrvgY95S93hHRWh3l78caIAPC/
         2/A8gxYK003/0MjKFRFRhunG7juOcV0SCmHZkbH+F8F+OnqrVnGAGKH5Tb+IwLW33OHu
         5IkbZalTSMw55xsUp1On6myWOeOsdvGSXgLQaSVazbQTGNB8kmky/qKMTB+i+IXTvj3S
         CcAzjnA4LOt9vp0yflWtTMRDAyBejIeM5eJ0Gj1snwvH15JYS/DZc61p3FCq5QNAfYIK
         Y4JA==
X-Forwarded-Encrypted: i=1; AJvYcCWStN6X3+8Hr4qLh8CzlLqS9VMsdeW2bYGwDZCqj9MJ/GkfYJasn1NcjPuMKEAIPbDWvv8/a4zEGpU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy9jWdffvpI5zNAppveT/54EFT8DNram5tSg4ZFEJci929gkyCc
	uDROl4U2BGCrrMKcqosWS3umZqYhjGK+oGJbtjVorhWB9t0fWedpRh5LRvuVlmKPJw==
X-Gm-Gg: ATEYQzzEWH9Wev9FZvmE70hateyjmOScYLS/8IBc32jVhiG6H9DyR9zoS8OeyW1BDEG
	GypTCUcMpfgf0XyPAXUh6rQ6bVhAk21mBkQHg6nOs/B733Qo0XsC9JsCXy6Bs+XfMjowly0esrK
	xQjZHcCzyJV7Hk7gjIg29ZvYcwByyALoRDy1YteSQyZ5GxpKMqEHbJ7NxXpI4um9hhQSswyh3av
	bD7fjQVH5M58EF6SID6l/VkWEwM7y7HCplmT/lWXNzhS2MPhPIqqiH2GsHDzSFdt0AtXhfIR9M9
	rgvwf0CL4h9f3wyqH2AhM2C/zoWQTQYYBhIplfbNb9a2hgdfsBX6mn3lDyasqiIByTs9ZikfagZ
	SaQiETZwVsta/M7slqllh/0q8z8ZN83rYmJmsQPw+k2HtzakkfKqZArhN02KUq/zOK7IFDhoHaX
	5X6y3nNkNQzeWSVX/bWYAvpDBuJC0ZeG6THHhft++Z1OMX8koXKNuCBC1uRy0Dx+7Lv0fBHGf1f
	ZpK8G6UMO7Z+gw=
X-Received: by 2002:a05:600c:c48f:b0:479:13e9:3d64 with SMTP id 5b1f17b1804b1-4854f59f1cdmr46459475e9.15.1773315262043;
        Thu, 12 Mar 2026 04:34:22 -0700 (PDT)
Message-ID: <6f464bd1-7ba9-4804-8eb8-af8f079ac936@suse.com>
Date: Thu, 12 Mar 2026 12:34:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 2/5] x86/hvm: Disable cross-vendor handling in #UD
 handler
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260312112116.22563-1-alejandro.garciavallejo@amd.com>
 <20260312112116.22563-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: <20260312112116.22563-3-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.03.2026 12:21, Alejandro Vallejo wrote:
> Remove cross-vendor support now that VMs can no longer have a different
> vendor than the host.
> 
> No functional change intended.
> 
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>

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



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 11:35:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 11:35:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252154.1548921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0eKJ-0003eh-5c; Thu, 12 Mar 2026 11:35:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252154.1548921; Thu, 12 Mar 2026 11:35: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 1w0eKJ-0003ea-2e; Thu, 12 Mar 2026 11:35:39 +0000
Received: by outflank-mailman (input) for mailman id 1252154;
 Thu, 12 Mar 2026 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=jTts=BM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0eKG-0003eO-Vq
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 11:35:36 +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 95ade7c5-1e07-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 12:35:35 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-439b97a8a8cso946961f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 04:35:35 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439fe1b22e7sm8145182f8f.16.2026.03.12.04.35.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 04:35:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 95ade7c5-1e07-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773315334; x=1773920134; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yfVZWoOf5y1hseaIR/V1s9D943lTLQym8jqc7vHY4HA=;
        b=KR4lic9YvhOcW3VgE4zkf2HuBoD+ebbd10w45Vg3pG0v+B4PkJEWJ+fwqtEzcMAy9g
         bxjNCFk7ho1Q51yEQvWc7KR7nCnaMi3aIfNTajqB/qsBMygOYfrQOCImei6nC9mTBdQq
         IPUFc8CAnRCdr/yviESHHBkq/1H+Ppdpid4xoYtF5Gfjf3HAgGLNN/VGq1fWMBtvJuj4
         r4HkXd7d+otpz7TaUlaEuIXSQWpvVofXPjzWO5r2BS6BL+TeXxiVIV5u5LfR6khReN3+
         dYfGrK4w1iPAfdQs0SdlODGkmPyHm/aU3nNTIvFJnFSw7vdsormNTwvUa8Z0jO24Fcga
         axPQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773315334; x=1773920134;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yfVZWoOf5y1hseaIR/V1s9D943lTLQym8jqc7vHY4HA=;
        b=Bn0X/POGlvfzfcER9DeOFccdpIl5A1+wUT8OONvndTAGLtPeV1+4+hg04rsltAzZnz
         SzIy1vcnTEqJRMKyDcbbQJVOQQPC4PQRZsyD38JLNisNXrxiOUxxus9G/QB1JvWrYPFf
         tLbm7OwLwDY2nspCw0X3nIh+nSC3GkqC8WP1l6t2+9VXX8v/EFQ09dwfgfjocDVmyCPk
         bHv4/FAsbJvfs8+e1QlGWVgd+gNnRoNkttVsSW89JjrXxfE07twi2KSDN8os0h5kKFa7
         6MXeCqytWPWP3On7IZw87ZOHDB8sWlee9x0qECHJh8uSTr/6BCDSoAX63vyM7n8UsHiA
         LhZg==
X-Forwarded-Encrypted: i=1; AJvYcCWVaIvqvPc+aB7DrDZw0ESW5vaB5kPOU0iTBNP5Pw9cw0jM3kyDCBY1HY/myBRH+LrHl5YUMYRAZQo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzOpHq9WLSMbSXDe+eXBNfgnV0UNm/tIyHJoVluDL1Ay31mgt5E
	sZToj549r52AYATG8XkfyVr7uhx5YR4q9e5oTGWjhk8MYvzNVp/LjjamMA4GrV/oTA==
X-Gm-Gg: ATEYQzwdzHEdOhOLn64KpZIyrM59OFARXtiod7Qrl97xHFe+AfxJg/MnTECf1ldPf8O
	+acNll1OQsocPy+lNBKHlbk9nzJSMQLnagBuXSN8hfm0Em6dfx74ZbVhLUdsde+s4L9/9XWxZ37
	gyTwi390C74IuIhF926Z4wE/QvUMIHBMorRTCM4IMAQZlpmiTdoh4jR8ZVrJwwOsOQEHG0FyqJO
	qnNjA9na3I7XQ8Zj8NrvUoJPvezYr0uYxCxoI+EMtgBww+BxEdOgvb7vfATCnwPXGT3iwZ4DrN1
	n2g7qDVssl1KQDd3TS+3aAF8Hf6f3FOqbRjhd2tv2Ouc4tf1fLi2W7epuJpTgp7tgZjlTVVaHSG
	S4s8+CkzRtGDawRfcqADvNFJql2rGDHYOD6HlXUwuzQqCv0OqMIooYGrM3pCf7/QhC4Hz9LMSux
	NmeQUMC2zVBZ93JMr7oCLacIHBrDyp5PONuDkL+wyCIJmvl7RuTXfXPtY3aueOZBkVUCSJW8vJ0
	8Wj4srSmxIVe1E=
X-Received: by 2002:a05:6000:4028:b0:439:b7c9:2ef0 with SMTP id ffacd0b85a97d-439f822a7c3mr10343137f8f.33.1773315334536;
        Thu, 12 Mar 2026 04:35:34 -0700 (PDT)
Message-ID: <18fbb44c-92b8-4298-9931-6db1c252b043@suse.com>
Date: Thu, 12 Mar 2026 12:35:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 0/5] x86: Drop cross-vendor support
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260312112116.22563-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: <20260312112116.22563-1-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.03.2026 12:21, Alejandro Vallejo wrote:
> Patches 2, 4 and 5 missing acks.

What's missing for patch 4?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 11:42:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 11:42:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252166.1548929 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0eQX-0005hL-U8; Thu, 12 Mar 2026 11:42:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252166.1548929; Thu, 12 Mar 2026 11:42:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0eQX-0005hE-RB; Thu, 12 Mar 2026 11:42:05 +0000
Received: by outflank-mailman (input) for mailman id 1252166;
 Thu, 12 Mar 2026 11:42: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=DV6w=BM=oss.qualcomm.com=vijayanand.jitta@srs-se1.protection.inumbo.net>)
 id 1w0eQW-0005h8-Lt
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 11:42:04 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7c08d6a5-1e08-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 12:42:02 +0100 (CET)
Received: from pps.filterd (m0279868.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62C7e1Ri509757
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 11:42:01 GMT
Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com
 [209.85.214.197])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cus9w0m7a-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 11:42:00 +0000 (GMT)
Received: by mail-pl1-f197.google.com with SMTP id
 d9443c01a7336-2aea7747aeeso10846265ad.2
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 04:42:00 -0700 (PDT)
Received: from [192.168.1.10] ([38.254.186.229])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2aeae22217dsm53886225ad.4.2026.03.12.04.41.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 04:41:58 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7c08d6a5-1e08-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	O6HJTG517rx7BZNC+Lqbxk38jHNOTKDXfitY+fGl2Qg=; b=cTWDR23rSNC6RXYv
	NYm5xAfJP6JIuBegbdJxesqHYjbPVMpbyoaplrYspybiURpA1Trs2IBBicGX/68c
	/5p+bLJWsmwM5nkoINvohPNjkwnCV2Td1WLJKuiQev/oeNlwdMwm/GB45fgFyHxJ
	HBiAKD73NnOBoytDQFweyjSwkRPfJWCUyj7pEosaMeJDL4V+7DNFEgrEfn/EASZJ
	6+Gx97SZIgZENJcFW2XKZ7T0QIf+zW3nzwfP8DgMViWz3ZckUTqhX36WvwMOPypt
	LWOJsODEoFAaVja57lITwPwa+tEi6nJkKgY1F91wyXAO/nJARSgaUFBOp4o2h3W9
	cdmcuA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1773315720; x=1773920520; 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=O6HJTG517rx7BZNC+Lqbxk38jHNOTKDXfitY+fGl2Qg=;
        b=P/TrTao7DCJRJDLvwFdYigRJfd0K3vZYzq5FiCjw8tCZs0DgNCddzf51aJwCnLeSJe
         bPSRZmLtw3Ntg97mamZwTkg7iueNvI1/5LV6l2QHvVmcTsLCY1nXsKKtRGU5mhZ7pkLm
         RZhjI/i4GMYmciJboh8e8Uh0emt6RqnrPl9mXShViAm0gWQO3Yb14sxxNWjy/zS6UUEw
         TxpBAA8XB2NvLlb2iRwKtv5NsqvXVe8NVQ4VhxZNxe5PgQUoeCOjicJsaCJHrFM6Ze7q
         D9lbfv5W5NiFWgkudoXaGXcIblaL3aQgYC2dMdJBVuMxnbT6OE/9R0U4oNVStOMfMWBq
         MLuw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773315720; x=1773920520;
        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=O6HJTG517rx7BZNC+Lqbxk38jHNOTKDXfitY+fGl2Qg=;
        b=MBARlIaF+NDsA0tPeHCh9Jt0gGmxEHtfeZGOyoRF0IbuxsH6tZ+FO+e0CPd620l2VH
         a6R2Qcz6cyqfSkySGVWEoGCTwzS7bXYpZAqvKT+RxGS1I2oxbSkeCp5q0DiOBji3IqyC
         3J0OMJpCBavuN9WO0bTAgR/ZD+AV+hkDNI8Q1z2qB1TY/ByiUlg/49UvM5s9O7xP79y1
         Ph7WMcCQVXiynatxrvxAMGRbsAgV3zAfUj/q3/sRV8YXnjueK//4vW2PLVw5fo0iSnL2
         C8xSpQFYyD2gtaT/ZbNMUj92pPiwXWQWjohN1Si6Pk5uTZdew6VuEi2wh/SYcQWntdK4
         J6hg==
X-Forwarded-Encrypted: i=1; AJvYcCU5C2eoehPtztnGgGjmJjlJiAePxnr13+kKlXtoDMijtDIDHbQdrddW3oDZ2XIy5gzawg52xLA0cJw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YynlZETX8Q18oxGPOOVZXBGEnEzTocjvIc71L1M57eBS/Ksz/70
	I0dA9U5A/NVYf6l70/yEreHn1NkJc8g7zNK8JLnfAllbE4NJVe2ZS3hGUUp4gV0mpW4V1z469um
	Wp1pWaVNUS8rUWF9nFOONeEd2V5eDM+NyropHlVAX+5bSbCTuiKsrY5LfERHykUKNk9lTxQ==
X-Gm-Gg: ATEYQzy5/jHpT4NQKokwv7c7LBehJ32wF5KOAIb4WwB4RcCHNCYk2MNmnWt2v+qzh80
	EaROVNP0Ywmh8rrubbuTl1HE4NoOL8UoQV3dCNit4bCqPwiUKt6L4RkvzqMoCuuGa6YPWH4J1sD
	dhYafz8kR9nP4RyVhkefs1rVPk85pwXQI2XNdyem0miF9he2LSs+EpRC0kjXVEUb1WnU9CEfFsN
	CgBgyDNRehEGNcOvAlNF5vDhOQsc+pqkSqKCnhfsRmL5Eog7+3RePLjOFqpJBAwEQ8Frbd9fA8F
	lzWtyFprfSP8WpgavyCbJzxLqlGMayBkbJl73KLFzc4FRAs1CnyAlElAI/ZSimgue+lSPR70lFb
	nKqxOHHbjTqrIjb5hRX8Lt1JUXdjzf+8V289pbLL1JzRNjY9sUw2/Cqk8PQ==
X-Received: by 2002:a17:902:e807:b0:2ae:478f:2ec with SMTP id d9443c01a7336-2aeae89119emr62683655ad.29.1773315719588;
        Thu, 12 Mar 2026 04:41:59 -0700 (PDT)
X-Received: by 2002:a17:902:e807:b0:2ae:478f:2ec with SMTP id d9443c01a7336-2aeae89119emr62683115ad.29.1773315719067;
        Thu, 12 Mar 2026 04:41:59 -0700 (PDT)
Message-ID: <57537059-4989-4704-ae6a-72576d031216@oss.qualcomm.com>
Date: Thu, 12 Mar 2026 17:10:25 +0530
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 1/3] of: Add convenience wrappers for of_map_id()
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: Nipun Gupta <nipun.gupta@amd.com>,
        Nikhil Agarwal
 <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?UTF-8?Q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas
 <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org
References: <20260309-parse_iommu_cells-v10-0-c62fcaa5a1d8@oss.qualcomm.com>
 <20260309-parse_iommu_cells-v10-1-c62fcaa5a1d8@oss.qualcomm.com>
 <3plcdobbd6teiluzijzk33yepbpsur24tnmjr32sco7a4loptm@xmzmsaurvmvj>
Content-Language: en-US
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
In-Reply-To: <3plcdobbd6teiluzijzk33yepbpsur24tnmjr32sco7a4loptm@xmzmsaurvmvj>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Proofpoint-GUID: dmzzP9AJWWl2KSzxbHtoUQGOWLSQDdY2
X-Authority-Analysis: v=2.4 cv=IIIPywvG c=1 sm=1 tr=0 ts=69b2a688 cx=c_pps
 a=cmESyDAEBpBGqyK7t0alAg==:117 a=FuYIH7Xx0xzBSkYrynBYgw==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22
 a=7CQSdrXTAAAA:8 a=VwQbUJbxAAAA:8 a=8AirrxEcAAAA:8 a=EUspDBNiAAAA:8
 a=6wy38kV5EeFARYyu09AA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=1OuFwYUASf3TG4hYMiVC:22 a=a-qgeE7W1pNrGK8U0ZQC:22 a=ST-jHhOKWsTCqRlWije3:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzEyMDA5MiBTYWx0ZWRfXzQrPjahLaj9b
 caQyE7C+n4u2opSdCAjEsA4hi/z2dbSeQ/Vp0aL8RAE+3Z1GXK6JuPXTPNbjSUvqX7qQxC3LcVM
 D6SghshldR0xm/Swhyq9vCEjeNSJMrEqo9FbkB7UdKG7TlJO7Im4+gMwS7FhiCI8IAArIBzhoLo
 JXwWjd19+Fr/2ioodLhN1qh8buI8ZYvHzM4v0KtZlBpaC9qQW6pTJwzHkLFhLoRfhH/ZGoqEPEI
 iMz23prFfghScJimKWJpO6bVtTIz/SwVv6TvvhaudYlaTMdNRMCdwbfYJB7Kf9MGJsSj9LVdFXk
 SGeWoeqJb85BFn9uOQyAxSHvVFOONlE1eyGrQUoQNz7OwQZ3mulWyjtCkSESDdZCOe8e81OERhN
 sMJH/xemkoSdKVufb4YTO4P1FnqSu7ukscVruzIZ++R/iG+oOaiyXuhKYnvd14Gd92jXGngJZAR
 1ZlWg+lSGIgGX6ZG/Xg==
X-Proofpoint-ORIG-GUID: dmzzP9AJWWl2KSzxbHtoUQGOWLSQDdY2
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-12_01,2026-03-09_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 suspectscore=0 bulkscore=0 priorityscore=1501 phishscore=0 lowpriorityscore=0
 clxscore=1015 adultscore=0 impostorscore=0 spamscore=0 malwarescore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603120092



On 3/10/2026 2:46 AM, Dmitry Baryshkov wrote:
> On Mon, Mar 09, 2026 at 01:03:37AM +0530, Vijayanand Jitta wrote:
>> From: Robin Murphy <robin.murphy@arm.com>
>>
>> Since we now have quite a few users parsing "iommu-map" and "msi-map"
>> properties, give them some wrappers to conveniently encapsulate the
>> appropriate sets of property names. This will also make it easier to
>> then change of_map_id() to correctly account for specifier cells.
>>
>> Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
>> Reviewed-by: Frank Li <Frank.Li@nxp.com>
>> Signed-off-by: Robin Murphy <robin.murphy@arm.com>
>> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
>> ---
>>  drivers/cdx/cdx_msi.c                    |  3 +--
>>  drivers/iommu/of_iommu.c                 |  4 +---
>>  drivers/irqchip/irq-gic-its-msi-parent.c |  2 +-
>>  drivers/of/base.c                        | 36 ++++++++++++++++++++++++++++++++
>>  drivers/of/irq.c                         |  3 +--
>>  drivers/pci/controller/dwc/pci-imx6.c    |  6 ++----
>>  drivers/pci/controller/pcie-apple.c      |  3 +--
>>  drivers/xen/grant-dma-ops.c              |  3 +--
>>  include/linux/of.h                       | 18 ++++++++++++++++
>>  9 files changed, 62 insertions(+), 16 deletions(-)
>>
>> +
>> +/**
>> + * of_map_msi_id - Translate an ID using "msi-map" bindings.
> 
> Which ID are we talking about wrt. MSI interrupts?
> 

id refers to the device’s requester ID (RID/BDF or platform stream ID),
not an MSI interrupt number; it is the key used in msi-map to obtain
the translated MSI device ID (id_out).

I'll update the kernel doc as below to clarify.


* @id: Requester ID of the device (e.g. PCI RID/BDF or a platform
*      stream/device ID) used as the lookup key in the msi-map table.

Thanks,
Vijay

>> + * @np: root complex device node.
>> + * @id: device ID to map.
>> + * @target: optional pointer to a target device node.
>> + * @id_out: optional pointer to receive the translated ID.
>> + *
>> + * Convenience wrapper around of_map_id() using "msi-map" and "msi-map-mask".
>> + *
>> + * Return: 0 on success or a standard error code on failure.
>> + */
>> +int of_map_msi_id(const struct device_node *np, u32 id,
>> +		  struct device_node **target, u32 *id_out)
>> +{
>> +	return of_map_id(np, id, "msi-map", "msi-map-mask", target, id_out);
>> +}
>> +EXPORT_SYMBOL_GPL(of_map_msi_id);
> 



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 11:42:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 11:42:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252167.1548938 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0eQh-0005wW-3t; Thu, 12 Mar 2026 11:42:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252167.1548938; Thu, 12 Mar 2026 11:42: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 1w0eQh-0005wP-1F; Thu, 12 Mar 2026 11:42:15 +0000
Received: by outflank-mailman (input) for mailman id 1252167;
 Thu, 12 Mar 2026 11:42: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=DV6w=BM=oss.qualcomm.com=vijayanand.jitta@srs-se1.protection.inumbo.net>)
 id 1w0eQg-0005h8-8X
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 11:42:14 +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 8232573f-1e08-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 12:42:13 +0100 (CET)
Received: from pps.filterd (m0279867.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62C9Yd9C4025894
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 11:42:11 GMT
Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com
 [209.85.214.198])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cuh50swqs-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 11:42:11 +0000 (GMT)
Received: by mail-pl1-f198.google.com with SMTP id
 d9443c01a7336-2adc527eaf5so7701925ad.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 04:42:11 -0700 (PDT)
Received: from [192.168.1.10] ([38.254.186.229])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2aeae22217dsm53886225ad.4.2026.03.12.04.41.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 04:42:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8232573f-1e08-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	LE+t+QqJAI+/mgc7W1OIUYrBRVzqbLNj9RJHGrZKK9Q=; b=P5phZrdji2XNB1A7
	dTTi/RsItP2yc1RU394FYJtIegEYWxTNyrkQb0nAwMYAKmSD8GZ0IhcKP0iEn39T
	gPpRZjfwGbi1uO32Yfl3TFFBlGMioBr9HyrKxTKT8kBqhEkU2yEOd8CFcf6t9eyv
	CqE9kdZD7mCqzR8uNPVT4RBKJOpmu73ReHRA/EkhWeGpxE2vkNMzto6iDdQJgujY
	LOGl+LoKIbBfmjlUgTd3w3s3q1mw3x1d3hdxAvi6MWs7VO5s+YYappVus92gUf+M
	U2peZk8AIN/AUUgB+VjEDiVd6wpnW54pw9QdSIRCsBJQQnWWpQcwYQoQm+ZwhEgs
	wMOK5g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1773315730; x=1773920530; 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=LE+t+QqJAI+/mgc7W1OIUYrBRVzqbLNj9RJHGrZKK9Q=;
        b=DL+61k1o1sp056Z6Uc7h7v+SRET/lztzVyc9lMKIKL+YFh4kLmONU070IZACvYeOhL
         As8sZza9hw9CZFG4TCItIie2L0pBMWnMkurYs7eKql8K3DhSzvm00FpJLUD5i1X+8K58
         po6kc7NHBzBo4XHtKET25GVzP2FcK5B/iQMZHzBWY5sKk5T5g6fOY0bxqjseVvfCebOh
         qOkYVcmQGSvjHwLN14enPABVXLD3mZc6VNMxulxJ1OFsZ8Ntc87UZbhJnyIc9CEasAYx
         2pCCizUvO8gLMya1HdbNRa+WM0gZOys/TL7rU0OE3d7OKhXKDVxkOYsWH2uPhlE8+uKJ
         f32g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773315730; x=1773920530;
        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=LE+t+QqJAI+/mgc7W1OIUYrBRVzqbLNj9RJHGrZKK9Q=;
        b=qANVhPdGZOxdlFX+b2iBFPZ476xpmK44yYsQsfhhK4tipuoOOXl/v8+GbqfBCveues
         a1KUGCIXXQ4ivPaseBoDe2UQ59b6D1FwdWnC7qCT87+0B8WNXGWmwIjhpKjACZj9o7PH
         lYHjoMEIK5s9QUPhGqKzJsvmPj7KuTUwR0TQE1kVRyZ2x0EUcv1g+EWVBU8GpGMci+au
         ZrKb8rWW43bgmWqwEFaC1aj3FroG6gcMwLXX+4g9N1iQB6PZL7BBd9JO4ZGCJ60kaU9V
         YJOl1PeC6PY0fI/jnY090IXEstNiqC03Di7PCmIFKTY10SY/zahI+b0vw5pf1Y4vyc6U
         jOog==
X-Forwarded-Encrypted: i=1; AJvYcCWIyeItdiNbXaLfdbvwLOLHKJmMwf0f+I/PIu3uDoqNJeRITWnDCLOexiDZ32OB0HoVNM1pObzpm8w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyLdfNUb6aPyAkgwY9od6zVPLcpaBnZfMAMi/36WzjzxvF5MBlJ
	986g9cIYIUjXolIA/FutdS1DpOtN8ckAsUq8coKecI9qucNCcx/NbfGX5nOZxA3pDWzMGnZ23yC
	2lk4OYMeBy29Fq40+UgLsRxWiI+swAU7q2dYDqxUPT8mLbwZnt+O6tSlO8Ue+cjLM5vLq8g==
X-Gm-Gg: ATEYQzyxOZNO8ysCYHSjXxUDg47Poe7Y5n4TgPwQNW5S9P/cwLxlr07EHG/lsou4s3x
	fOCb9tbfas4uk/OyS7axQJoBRq6KywH7A7mKQr3KC80evOtSjlTohUIXwBtvnm0SuAd8xUaTa6q
	EDN/ALNE4OVEJ+SyU9Qsjrm5wBEkvDk1yZtckDr5rF8Af0LrPqq+EIbBmvwpisFdICAweXNe7DT
	A+XJasYti2lbUc/5A3EMaNlXJ8ZjbAGkCfBkPgSJIIDoPccEMuInGJSYEz9KpB44gyDMrtrNPjd
	SuYV4iH4POW72YLSK29qe5JlU2A/GS4wtGWT5bIyp0gzKU+kYxi3FMIaIt6xCuXP9o9h29RTGpM
	SjhfWAViHb9/PF6kwshQ+mCUO/SbnS6HvdYPu24JXLRMs05/8U8z1dyv9ag==
X-Received: by 2002:a17:902:d4ce:b0:2ae:47af:3b29 with SMTP id d9443c01a7336-2aeae92124bmr54674275ad.57.1773315730446;
        Thu, 12 Mar 2026 04:42:10 -0700 (PDT)
X-Received: by 2002:a17:902:d4ce:b0:2ae:47af:3b29 with SMTP id d9443c01a7336-2aeae92124bmr54673835ad.57.1773315729939;
        Thu, 12 Mar 2026 04:42:09 -0700 (PDT)
Message-ID: <ce25b963-0e8e-4411-a406-7b466eadb1f9@oss.qualcomm.com>
Date: Thu, 12 Mar 2026 17:11:56 +0530
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 0/3] of: parsing of multi #{iommu,msi}-cells in maps
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: Nipun Gupta <nipun.gupta@amd.com>,
        Nikhil Agarwal
 <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?UTF-8?Q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas
 <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
References: <20260309210506.GA589665@bhelgaas>
Content-Language: en-US
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
In-Reply-To: <20260309210506.GA589665@bhelgaas>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Proofpoint-GUID: Sh7rxbXagaDByQQEAdQ1b1ahHIewXRnF
X-Authority-Analysis: v=2.4 cv=LvKfC3dc c=1 sm=1 tr=0 ts=69b2a693 cx=c_pps
 a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=FuYIH7Xx0xzBSkYrynBYgw==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22
 a=Iq-Xo7JqGUrbNy38CdcA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22
X-Proofpoint-ORIG-GUID: Sh7rxbXagaDByQQEAdQ1b1ahHIewXRnF
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzEyMDA5MiBTYWx0ZWRfX5nfzaf1IoEfJ
 aQ/hXsO0ozsYGz0N6PpCowcQWtr8yBmioZtUqnhSYjtx9uzXGu0vZ8F07+MKJD9YfWpsiNtYTtm
 93eFuD9lssw35aGbFT67NvnA+HZOK1eTlCCtkQj18phdC5BZvu+g2P3l8wcmHcUYNXW8DVNyn2u
 kNx2Uo1FwIRbp1CQ+UeMjz/EdadxaQN/fJU1qstPo6BT5MHQT+MeH8MtQIqe1ewr/ZPpcEOCwFm
 dnLQ0sA4ZS3YxhRin74XJJ4i1Cw1xOUhz3+F3uI4ksieFGAJA/0b/s0S1aTXNSBoShs5Nz/vZXd
 XcFFkvKzVmMNfDWCHS42hC/qFkEi27Ynqye1HoB3cum9c3zS3PJ/GXY7tQ2lZsKFYyTF6uHXLA0
 yAuoQo6SUZG+gitM559ne4GJ3nkE4v9J9qbeM8YrFnpn/b1mJ9yuAoAhRzVCBiGSTaF7/lFuwmX
 5HvNeuMaoXeraCblD5g==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-12_01,2026-03-09_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 clxscore=1015 bulkscore=0 malwarescore=0 adultscore=0 suspectscore=0
 spamscore=0 priorityscore=1501 phishscore=0 lowpriorityscore=0
 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001
 definitions=main-2603120092



On 3/10/2026 2:35 AM, Bjorn Helgaas wrote:
> On Mon, Mar 09, 2026 at 01:03:36AM +0530, Vijayanand Jitta wrote:
>> ...
> 
>> Charan Teja Kalla (1):
>>       of: factor arguments passed to of_map_id() into a struct
> 
> Please make this subject line match the capitalization of those below,
> i.e., "of: Factor arguments ..."
> 

Sure, I'll update it.

Thanks,
Vijay

>> Robin Murphy (2):
>>       of: Add convenience wrappers for of_map_id()
>>       of: Respect #{iommu,msi}-cells in maps



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 11:43:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 11:43:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252182.1548949 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0eRQ-0006cX-Ea; Thu, 12 Mar 2026 11:43:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252182.1548949; Thu, 12 Mar 2026 11:43:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0eRQ-0006cQ-AD; Thu, 12 Mar 2026 11:43:00 +0000
Received: by outflank-mailman (input) for mailman id 1252182;
 Thu, 12 Mar 2026 11:42:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jTts=BM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0eRP-0005h8-7u
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 11:42:59 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9de79760-1e08-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 12:42:58 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-48532925a4bso4745705e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 04:42:58 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4854a2eeae0sm46799375e9.4.2026.03.12.04.42.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 04:42: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: 9de79760-1e08-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773315778; x=1773920578; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FsUFTaV0z01pgH4y2xJG1WKE7bJTwVlb52gmTepqVGs=;
        b=bjClDklIkBX0AHjYIU6YefG7mwVZR2jcUSJWIJmADxLwE5w2f/ULQCotFk4H7dfckG
         IR0InUl4D264KOqxP4IDueazmvpsDgPXnv3qVCitbd+Y1v9yZbQncdTg58+iEaSCrtdS
         itrjCCUv9lUZnprrPxln//Mv9PVhBf3xcirfakfOJCsbaFun1IH6b2McB4ENGaQtno5E
         XFtDsC2IsSeNVjmT+AgNw/3gfOMKAks4EceeMWo/85Cm350zT499FraBhlk070rgnxlk
         s5xJyUO3a18a4CdECTYzWzkYNurpGjzarvzB3NoRkUz15Cmq9CmKU/UwCu31GzhyARZG
         dfRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773315778; x=1773920578;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FsUFTaV0z01pgH4y2xJG1WKE7bJTwVlb52gmTepqVGs=;
        b=rSS7vtF3bPBbPE8u06edpyZblMjaKcmS49RDD1mImIhFsPQmxZWKF6jDgSpDJ4qdKA
         jO5PcxF2bzXrwncq6mDpHrB6Hn+AP6QPdfjxfGLOusec7CUNipcv97GbJwThJlHovYmU
         Wq788670COcCqD2B96lzXpQhMmn6pNh4nEDlMsfa0HOFYfoPHbINGXBbzmyQoyUAv5Pt
         D0iuPal/POE658t0aoBm04lRBDangi9fSar/qN6Yg3l3LTsusBl22qvslf/jjjt80OVA
         /u8gapFXFF8vSTWedswSF3kjq0j1U8q0ctpMaf31weGgwQ2m1pBG1TQX74J1lcfAAhTJ
         ccKw==
X-Forwarded-Encrypted: i=1; AJvYcCVZS9Kkq1HcnRm2BAghuRDULycETrkNcjy4irtelGQfF+eJmdJuxrFs+6pyucPKqAgRMu+p7M+qAWU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwiwT1Rppmx9OjD8fLDLMtjTg4nW5cPncHMjv+gjMhPiLjlhD8X
	kRkUoFEUacT+xSXqVYvcvyWW/JvGN4vqR5azf+U9AbRoad66TGY6iczCBh4QDRJe/g==
X-Gm-Gg: ATEYQzyqwXEUx7OGLfpJMzNppoqv3tE0hTsvJYIP355L0BBhX6VVTALQL/IszIBrJL0
	skKqRzdRlNqkVlE/lYZW8w9uPvt7qzWVVDmVpMhNaAhiUs/C1xruslTMjQ8KYGxRDBjEdBQOvgt
	lXpqnP/EOuKS6QmRUxFdSN5j/XZfJFHcGal4VIm9w16GAhNu/WVnQHpVdLlE341JUooUl9gA2TW
	EGl/rwAt7VJxR26MdbblXwyfAEa/OJKsNs39l2VMq5mRr2yiuuqb9d6JVRqdOJ4NpgkuzvnXBGR
	uP/TCIilLhuSHcXk0zXsrNEb0lMye0twL68FnZKje/xk3sr3BB4ldzBRcyxM1anhQAEi4AkbLIO
	9mQ/CZJQfFKOqxiCd+2/E8tz6XHTA7qEhSRTVSNf6j+QcPLGlRuf87n6rIjwviZO6Odg6YoCTRm
	DDFmfHYLwv1v/iiazgeJeGkZMJ/96qSOya68RABKg1VBPNeCBmPT1BF/a+P8N1Tte5IgHFsNuOQ
	5iC1muutwAsr7k=
X-Received: by 2002:a05:600c:1d16:b0:485:35ee:f836 with SMTP id 5b1f17b1804b1-4854b0a6d74mr103111565e9.2.1773315777865;
        Thu, 12 Mar 2026 04:42:57 -0700 (PDT)
Message-ID: <12ed74c0-1ea2-4458-881e-ccb7e59e0088@suse.com>
Date: Thu, 12 Mar 2026 12:42:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 5/5] x86/hvm: Un-indent the HVM_FEP block in the #UD
 handler
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: <20260312112116.22563-1-alejandro.garciavallejo@amd.com>
 <20260312112116.22563-6-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260312112116.22563-6-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.03.2026 12:21, Alejandro Vallejo wrote:
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -3837,35 +3837,34 @@ void hvm_ud_intercept(struct cpu_user_regs *regs)
>      struct vcpu *cur = current;
>      bool should_emulate = false;
>      struct hvm_emulate_ctxt ctxt;
> +    const struct segment_register *cs;
> +    uint32_t walk;
> +    unsigned long addr;
> +    char sig[5]; /* ud2; .ascii "xen" */
>  
>      hvm_emulate_init_once(&ctxt, NULL, regs);
>  
> -    if ( opt_hvm_fep )
> +    cs = &ctxt.seg_reg[x86_seg_cs];
> +    walk = ((ctxt.seg_reg[x86_seg_ss].dpl == 3)
> +            ? PFEC_user_mode : 0) | PFEC_insn_fetch;

While of course functionally everything's fine this way, I'm now entirely lost:
Why are what were ...

> +    if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip,
> +                                    sizeof(sig), hvm_access_insn_fetch,
> +                                    cs, &addr) &&
> +         (hvm_copy_from_guest_linear(sig, addr, sizeof(sig),
> +                                     walk, NULL) == HVMTRANS_okay) &&
> +         (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) == 0) )
>      {
> -        const struct segment_register *cs = &ctxt.seg_reg[x86_seg_cs];
> -        uint32_t walk = ((ctxt.seg_reg[x86_seg_ss].dpl == 3)
> -                         ? PFEC_user_mode : 0) | PFEC_insn_fetch;

... initializers before not initializers anymore, when all you're doing is
(supposedly) re-indentation (and, necessarily, moving decls up to the top of
the scope they need to live in)?

> -        unsigned long addr;
> -        char sig[5]; /* ud2; .ascii "xen" */
> -
> -        if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip,
> -                                        sizeof(sig), hvm_access_insn_fetch,
> -                                        cs, &addr) &&
> -             (hvm_copy_from_guest_linear(sig, addr, sizeof(sig),
> -                                         walk, NULL) == HVMTRANS_okay) &&
> -             (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) == 0) )
> -        {
> -            regs->rip += sizeof(sig);
> -            regs->eflags &= ~X86_EFLAGS_RF;
> +        regs->rip += sizeof(sig);
> +        regs->eflags &= ~X86_EFLAGS_RF;
>  
> -            /* Zero the upper 32 bits of %rip if not in 64bit mode. */
> -            if ( !(hvm_long_mode_active(cur) && cs->l) )
> -                regs->rip = (uint32_t)regs->rip;
> +        /* Zero the upper 32 bits of %rip if not in 64bit mode. */
> +        if ( !(hvm_long_mode_active(cur) && cs->l) )
> +            regs->rip = (uint32_t)regs->rip;
>  
> -            add_taint(TAINT_HVM_FEP);
> +        add_taint(TAINT_HVM_FEP);
>  
> -            should_emulate = true;
> -        }
> +        should_emulate = true;
>      }
>  
>      if ( !should_emulate )

With this, the purpose of the should_emulate variable effectively vanishes,
without it actually being purged (unlike you had it earlier).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 11:43:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 11:43:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252183.1548957 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0eRR-0006qV-OQ; Thu, 12 Mar 2026 11:43:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252183.1548957; Thu, 12 Mar 2026 11:43:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0eRR-0006qK-LS; Thu, 12 Mar 2026 11:43:01 +0000
Received: by outflank-mailman (input) for mailman id 1252183;
 Thu, 12 Mar 2026 11:43:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=DV6w=BM=oss.qualcomm.com=vijayanand.jitta@srs-se1.protection.inumbo.net>)
 id 1w0eRQ-0005h8-81
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 11:43:00 +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 9d706301-1e08-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 12:42:58 +0100 (CET)
Received: from pps.filterd (m0279867.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62C9EfQ64025739
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 11:42:57 GMT
Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com
 [209.85.214.200])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cuh50sws4-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 11:42:56 +0000 (GMT)
Received: by mail-pl1-f200.google.com with SMTP id
 d9443c01a7336-2aec784479cso5175845ad.3
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 04:42:56 -0700 (PDT)
Received: from [192.168.1.10] ([38.254.186.229])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2aeae25cd67sm56194955ad.38.2026.03.12.04.42.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 04:42:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9d706301-1e08-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	W9ejYWHNwRhjPiGAgnplcOS8lPIHbm/6D31/N+auTSw=; b=HmaP0o5E8kDigSFa
	alJVniCiNF7DjBpO3slqiNJ3tC/PYMDuDwHYrqAZ6m3faf3xBUSqMLfpUEiT0ME7
	uWWAeSVIZ60cNAHJhwuo6Vb8dOptnxFIZD2ZPlI6SJHGh0bEalGe5AilAQjBoaDU
	QZVlr/4PFlZA2kIerIpl0o8Gs05Rqi4LvYe2xoN8EAgrInA5+6ymKHj2jVoDFZlX
	twDN9GpYJxK9TErk0jdzr2qqWM7kBKQCbwArOlfCHOrYnIloY9u/so8cENTOFlPK
	42iYYDiTfRSrfY3aZO54lNm32900MmfmU17DmtlRZIiqhD4bfqXTlQnqegCK9Mod
	59ZCww==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1773315776; x=1773920576; 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=W9ejYWHNwRhjPiGAgnplcOS8lPIHbm/6D31/N+auTSw=;
        b=iSHbZYUbXYH/msHyTMZDMSJ5dYZF62LDRNRJ6QX9yS60Pd1dmBZtOgA0O2VOt1IhAc
         kQ32+BpW1cncsWj+SIqbdHaWrJE3tcP1IcjCkiRRM/IOXwGyM4dAfzlmjS4BthN6H5MI
         hqAVk/AuVn2z3fnMEDuXW3h5yYqiT+tQ1e0yPE/F4I9QEii/jLI09CiQ0AKVvi/rpT9W
         mky5unpUqEgmDhBAhSC3U6mHyBOuQ6EVMuMYyjFkag3UhSLAqYK+ry2kxLcWE9JtoIEx
         DXpuQL9pDy3+yLwVLMkcTRAKlJ+3LLCTRmKVyBY5Kli3mhrZOBlPFJZxKAYEhe5sNWsg
         NhHQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773315776; x=1773920576;
        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=W9ejYWHNwRhjPiGAgnplcOS8lPIHbm/6D31/N+auTSw=;
        b=nUV98jLJPX/5o0WYDUjbW2k/ElUb5NGPsGMlI0UT0n1aHNxs/9Y+JEyxs1AnShV2PW
         GXsW/zz2qJAzfTVG1Jq3iLK0faMxpkwBimo0Fx/00NiA7oavfVXpw5aHKLnuIULDT+kz
         Ziywyei5egdrbmq+A/EU6zKyaC2dG2E1oG0fpTqufqgEL79Udrn+T18Y4D6VNFIh4izG
         LLSzChnuNqly4d+Wg+Q5DNtMKx3JpvfE0l5BXrgc7iqYlmu2xMDzenOT8ExNAeBz0BMf
         7QbQKs7rS8ua69Pi2L+1keyUv9NJ1vlF/6QQ3gmPhlCrusdGvzueu8Lue6j0Dyl7FLJE
         dxVw==
X-Forwarded-Encrypted: i=1; AJvYcCX8gLK9jXe47lgnU75Y0fOn6W++RLdtdafg/N/u9FlSSLuZSNSKlq2/5tjcTpb4men+oulM+MnEEng=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw4ZPKmSMsQefT9NhFTBrNOF6JXmko1Ci1ApFmeHGg2BpL0LAaR
	5C9LHLPBYEn0txQCHdXTsb0vWqs+KUmCpk34FDy1hyrrrGpHz8hx1l57HJj8CKzq4WTvENek/K8
	jroZm6+JDF2inXSJwUUUjm0b/iw/UCuxKROf0Fjfs0WV4GAjZdQQpDpPqaHkQlOEGt8oU8Q==
X-Gm-Gg: ATEYQzxlhZzy4gsn1mhlZ6obx7XbGsH7QmRNAMf3yruB3Kj9j+5CBnCeMaQQPx00+1M
	FGqISmrww+y0brs/UaB0Rc3hHBGc1j4H/2LdW29yNW8ppezBJX5somiQjxbueAafcLF9kVHyB5x
	1bg0H5NkRK5BSsRTCITqoa83lzyR+UebazobH6FWB9g7O5/o5RutSm2/vqGUxJGEV6wdxSU/JkJ
	ooiU/BCpORqO6n3zzyR7ZpVrROO9rbyIHe4b9OIjOl/s2Q+iPWmYugNzn20rRAQMQBy747TdXag
	yZ0JxunL+0losdYGHz5J+YW3T54jvPpbTaRwsbz78n6mXJLzP/DvI7d7CqDZH6UsZl45Fc8Tzgv
	JhYrC+34aR6S0bmDNQxpbsRtAf2ZLsp3V6GCaMzoj5aDNhjxjfuxP9+QCKg==
X-Received: by 2002:a17:902:db06:b0:2ae:3fb2:ec9a with SMTP id d9443c01a7336-2aeae7ad446mr64958905ad.16.1773315776355;
        Thu, 12 Mar 2026 04:42:56 -0700 (PDT)
X-Received: by 2002:a17:902:db06:b0:2ae:3fb2:ec9a with SMTP id d9443c01a7336-2aeae7ad446mr64958285ad.16.1773315775895;
        Thu, 12 Mar 2026 04:42:55 -0700 (PDT)
Message-ID: <04eabe08-f339-4d9c-8b61-184241d192a4@oss.qualcomm.com>
Date: Thu, 12 Mar 2026 17:12:43 +0530
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 3/3] of: Respect #{iommu,msi}-cells in maps
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: Nipun Gupta <nipun.gupta@amd.com>,
        Nikhil Agarwal
 <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?UTF-8?Q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas
 <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
References: <20260309210849.GA591344@bhelgaas>
Content-Language: en-US
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
In-Reply-To: <20260309210849.GA591344@bhelgaas>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Proofpoint-GUID: -jTU0FV6wIePD5MNaxJL77M5TIEtPsZC
X-Authority-Analysis: v=2.4 cv=LvKfC3dc c=1 sm=1 tr=0 ts=69b2a6c1 cx=c_pps
 a=IZJwPbhc+fLeJZngyXXI0A==:117 a=FuYIH7Xx0xzBSkYrynBYgw==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22
 a=7CQSdrXTAAAA:8 a=2oAOsZZM3GA0Nya8fkwA:9 a=QEXdDO2ut3YA:10 a=d1F_yjlUjjEA:10
 a=uG9DUKGECoFWVXl0Dc02:22 a=a-qgeE7W1pNrGK8U0ZQC:22
X-Proofpoint-ORIG-GUID: -jTU0FV6wIePD5MNaxJL77M5TIEtPsZC
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzEyMDA5MiBTYWx0ZWRfX/5lnslTB10gF
 jr9cUxVVFPhev1rgechAxxUkDQFwwlfffG3J+vEmhVZuu1Uws3tlKDZYTchRJ4r7/bf5xnvPHn8
 l5BjPinxVIyFuxH++8Oq5MeN0/Ff7YzhlLiCGF+fslq31rBza1Twl/fUpl3xte8C2Vk55z4o30f
 bvd2OW1PfDIGwvpafLzsK6JgLWwiykqb1i1lTt/YBF63shAPYQGS78flEZ8RzSxVtJprNNnmpa1
 IFot+2Q2yyUKxxJL+SajUIkoF0LezDKQz8/SfBwMOkA+1DGVAfwSKwJvFTVB3wG3MW9XraVl1ID
 EUb5lixAMsbtLTLmc+ZFUCszmYVmCVE5yuhdtQNKWXYYaV+Uh3r2FuDnoDUZ56EtGewf50jGo25
 e1vE8SBggQ8bq1Axe9tto/3zyrNO2bSi5pvVXS9IN7M1nWRwDcW3Pk+BfBWl9gbkHs66+HduwYJ
 rk72HbZ2q/I/k2eBhFg==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-12_01,2026-03-09_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 clxscore=1015 bulkscore=0 malwarescore=0 adultscore=0 suspectscore=0
 spamscore=0 priorityscore=1501 phishscore=0 lowpriorityscore=0
 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001
 definitions=main-2603120092



On 3/10/2026 2:38 AM, Bjorn Helgaas wrote:
> On Mon, Mar 09, 2026 at 01:03:39AM +0530, Vijayanand Jitta wrote:
>> From: Robin Murphy <robin.murphy@arm.com>
>>
>> So far our parsing of {iommu,msi}-map properites has always blindly
> 
> s/properites/properties/

sure , will update.

Thanks,
Vijay


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 11:43:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 11:43:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252188.1548966 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0eRf-0007Gp-22; Thu, 12 Mar 2026 11:43:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252188.1548966; Thu, 12 Mar 2026 11:43: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 1w0eRe-0007Gi-Ty; Thu, 12 Mar 2026 11:43:14 +0000
Received: by outflank-mailman (input) for mailman id 1252188;
 Thu, 12 Mar 2026 11: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=DV6w=BM=oss.qualcomm.com=vijayanand.jitta@srs-se1.protection.inumbo.net>)
 id 1w0eRe-0005w8-0b
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 11:43:14 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a4775f66-1e08-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 12:43:10 +0100 (CET)
Received: from pps.filterd (m0279872.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62CA6NhZ263417
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 11:43:09 GMT
Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com
 [209.85.214.197])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cuh4yhwx4-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 11:43:08 +0000 (GMT)
Received: by mail-pl1-f197.google.com with SMTP id
 d9443c01a7336-2aec6c572fbso9994535ad.1
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 04:43:08 -0700 (PDT)
Received: from [192.168.1.10] ([38.254.186.229])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2aeae25cd67sm56194955ad.38.2026.03.12.04.42.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 04:43:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a4775f66-1e08-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	pVihyfEVv9KoFRyaGUgwYSBE5ZXMKxbsi+xWvdEgydE=; b=cuIgsaPDCpjPQizt
	0NHBv5jjn/jXISGW57UxIf1k5Xu0iyORYIMcUYWeJlBRrGKhgI9pL4FmIBwf5DVl
	3tt9dW7MlCfSbQewK2BKinwVtG7lWXhVA5ZFrESWS8JhlhPNGtLeQxoiYWsgRfhF
	sPdiL7e/lWx9qs/2aCRoDvzK8fz15IG3gIlIPdt/kFsccxqEy5hNrJWWjZ8GrNnm
	bNdsjFPw8GqmLOyQxZllHdvttI3qeaEYgEurG3+f/2l7q8Csv+y8bwlOn3soN2cb
	E2ycM89HWorASgLc2zbrjNBGYojkHubOksbBAUykTaErSiimLefagq23R/1Z3AU5
	H63GgA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1773315788; x=1773920588; 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=pVihyfEVv9KoFRyaGUgwYSBE5ZXMKxbsi+xWvdEgydE=;
        b=dADu37eQmA4XiAAHzEYDn1fdFWZH1QlKlVqVQF3U1okMAzrQOGhL9+8TAQpBkZrMm6
         3E/ktiCPOjbIMy7wxXSwOojAut+BCGAekdz0gFb+PHO6v3AnW8CX8oZd18fBO3Hxm2ZV
         BjCiosWe39if1zfXREv5AzLhhcNCYz6y1nrjm3AKQ2aKWrYB/64+6IOxUr2Yyh7yJDho
         GSUzVy/LXjun7LaSc1LdSerYpmm6B1FCOu3VJKY85I26i+jwtkMbpb9q3srXJDLkggDP
         aW73Y7+4agow/B3wrkhkPSClbiEGDQcaYZPDcCbIK0PY7Yd61ga2XEGxeUKjVC2KNGxI
         07NA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773315788; x=1773920588;
        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=pVihyfEVv9KoFRyaGUgwYSBE5ZXMKxbsi+xWvdEgydE=;
        b=qDiqMbxyP2mE47j7FzZ/fX0zEmPQNOjatH0LjadPIZIwA2O8+1Mguu/rW7GOe6/Sd6
         i2qubFD4SGIW/H8ORuSPj4k8nM7jT92vbgZDUpmiAUA5u+CKpYWHch0xzHpTBC18Fpix
         ojBS0aJ6Vml+KsH6JzfONjB2zdIPFL0oAuuBpiNfWviBu5M5VgrG2OdwPkvSioBAs3if
         nnIu9svO7TMsm9SwAA0T+A/xMhiMZBt7lQy5TAtZOlvZYD9NvmZB37296RXc5qYd6Wla
         5NOJFbXj+ty8muyQ7dketYulcyBTr4rDib6JM47iF4NommH3lHwNN8JuQ0LXKCyDd/fP
         l4lQ==
X-Forwarded-Encrypted: i=1; AJvYcCViN0xwGxQMX9w6vh62kYFB02qCwan93szFcXtpjUx0RKfJhGwjLtxFFpIcxZJS2gqeouifoYj/oqU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxL2AC0Pg5tb+CO4oh3B4i7MtXQlpyKGujbUgiZ614uvQfYuZ5H
	oJvFPe4j4bkUo3J8n4PVBYkB030aLsNfVLjhqz7RjivZKnF3HFQlPhY5H9kY2qI+v0FWmDLKaQu
	xo8xAAQfs5z2yBugilvULEwkF0JkUJM7Kn7SZrYQiMd2jWuy3g8TBloekOsBs/ttTn86Xyw==
X-Gm-Gg: ATEYQzxhKolEwbjsjIi6Qcuayllerl1SYrdY8iX7oqaNgRx5gq4En4sXAhvGzN+YB2U
	fuk1pPNX+9wLa7PwCjr9en6vLUb5GwdQfNCIIFVC+Yvn7mtFD7sxRDSL4xtE8FLhAhsK+indiyK
	o+/50lh37CbR9e5hbOk6FLfBleavif2kOmPdzeZQTZtuFCk//SpmeI2+/J4m4tquJYmrEuMY899
	KSL1QpSqdZRKe+J2vRpCf/y+CZzSoksdZHTDWxKDwNSAm3mrR/L1KLdYeyAcvdR83rxqcC8qPCf
	3enf82dzBNMPywd+l5lRz62HqEE5vQeIp7noKx9f7u5biAXvZf+HQHn9SOUBWMcwHUVRKPzEe+u
	TVmWsAu2kpUUKpPWI9YrcagupbJyw2nA4jgzcVwZ5Ea4SdmuA5AgBXXCaFg==
X-Received: by 2002:a17:902:db11:b0:2ae:59d3:27f8 with SMTP id d9443c01a7336-2aeae7b4ecdmr63852325ad.19.1773315787492;
        Thu, 12 Mar 2026 04:43:07 -0700 (PDT)
X-Received: by 2002:a17:902:db11:b0:2ae:59d3:27f8 with SMTP id d9443c01a7336-2aeae7b4ecdmr63851865ad.19.1773315786884;
        Thu, 12 Mar 2026 04:43:06 -0700 (PDT)
Message-ID: <27edd195-b0d3-4214-9df3-74a84da1e3e1@oss.qualcomm.com>
Date: Thu, 12 Mar 2026 17:12:51 +0530
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 2/3] of: factor arguments passed to of_map_id() into a
 struct
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: Nipun Gupta <nipun.gupta@amd.com>,
        Nikhil Agarwal
 <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?UTF-8?Q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas
 <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
References: <20260309-parse_iommu_cells-v10-0-c62fcaa5a1d8@oss.qualcomm.com>
 <20260309-parse_iommu_cells-v10-2-c62fcaa5a1d8@oss.qualcomm.com>
 <esfzpgpgenydif2sxahsetkglz6kewsgjhkmzr6ulrrkctnkbq@a4zsfdmhbxui>
Content-Language: en-US
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
In-Reply-To: <esfzpgpgenydif2sxahsetkglz6kewsgjhkmzr6ulrrkctnkbq@a4zsfdmhbxui>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzEyMDA5MiBTYWx0ZWRfX6F2LkwikaEY6
 t6/q4LP7KFfKk7nrfPpzSEH3bgmjnZG1XDT35w7ewB2FocHWBQIZaH7PcEOGDJ98hDNslc/rrXU
 RatPVu47GIqlo74PpDAr66I39D/4m6h46B3lkST+6MTbG196i41p8YRnSDH9LkneUqFbobfXAE1
 iZiPfWe6mj8f2mc2Iu3ky3NQYRTmcCsLKFpt0JdUjL6WOhZbSXmfOJQ0a71VNxJTIuBpqUyNtqn
 0Twhmj+d+qltlgu3nMVvEvjP7nF4HCGrGrwyLqluHP+Yo3RiN1DTWAKB9Wcn/UleB5pX32K7uJ9
 cXbK0F5W/W3trSAAPicV5wOgTL150aDgokfY3dCBI02CQ6MUqccMVCZCt4E9q/NUrvnpvw7wkAa
 eNwH7XInRyTK5uggGnXxwG73Jt5hwCg/qE06oyE00P2UjyG3Bsez4FgisFixRTI9ypLDfgmOjeJ
 8kUqF+z3c4rtEQCnlNA==
X-Proofpoint-ORIG-GUID: 91JdKXeDZtGMTAdy0YFNfrEJFjvdLEtz
X-Authority-Analysis: v=2.4 cv=C+7kCAP+ c=1 sm=1 tr=0 ts=69b2a6cc cx=c_pps
 a=cmESyDAEBpBGqyK7t0alAg==:117 a=FuYIH7Xx0xzBSkYrynBYgw==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22
 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=tICBgMK4MGcbsJ-UzjAA:9 a=3ZKOabzyN94A:10
 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22
X-Proofpoint-GUID: 91JdKXeDZtGMTAdy0YFNfrEJFjvdLEtz
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-12_01,2026-03-09_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 malwarescore=0 priorityscore=1501 phishscore=0 adultscore=0 suspectscore=0
 bulkscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 spamscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603120092



On 3/10/2026 2:53 AM, Dmitry Baryshkov wrote:
> On Mon, Mar 09, 2026 at 01:03:38AM +0530, Vijayanand Jitta wrote:
>> From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
>>
>> Change of_map_id() to take a pointer to struct of_phandle_args
>> instead of passing target device node and translated IDs separately.
>> Update all callers accordingly.
>>
>> Subsequent patch will make use of the args_count field in
>> struct of_phandle_args.
>>
>> Suggested-by: Rob Herring (Arm) <robh@kernel.org>
>> Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
>> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
>> ---
>>  drivers/cdx/cdx_msi.c                    |  5 ++-
>>  drivers/iommu/of_iommu.c                 |  2 +-
>>  drivers/irqchip/irq-gic-its-msi-parent.c | 11 ++++--
>>  drivers/of/base.c                        | 63 ++++++++++++++++----------------
>>  drivers/of/irq.c                         |  8 +++-
>>  drivers/pci/controller/dwc/pci-imx6.c    | 16 ++++++--
>>  drivers/pci/controller/pcie-apple.c      |  5 ++-
>>  drivers/xen/grant-dma-ops.c              |  4 +-
>>  include/linux/of.h                       | 12 +++---
>>  9 files changed, 76 insertions(+), 50 deletions(-)
>>
>> diff --git a/drivers/cdx/cdx_msi.c b/drivers/cdx/cdx_msi.c
>> index 63b3544ec997..03232b5ffbca 100644
>> --- a/drivers/cdx/cdx_msi.c
>> +++ b/drivers/cdx/cdx_msi.c
>> @@ -121,6 +121,7 @@ static int cdx_msi_prepare(struct irq_domain *msi_domain,
>>  			   struct device *dev,
>>  			   int nvec, msi_alloc_info_t *info)
>>  {
>> +	struct of_phandle_args msi_spec = { .np = NULL };
> 
> Why do you need to set it? Parse functions ignore passed args, don't
> they?
> 

The parse function does check arg->np on input — if it is non-NULL,
it is used to match only entries targeting that specific node.

Also, there is this existing path in drivers/pci/msi/irqdomain.c which
pre-sets the node and passes it as input to of_msi_xlate(), so the node
pointer is not ignored by the parse code:

u32 pci_msi_domain_get_msi_rid(struct irq_domain *domain, struct pci_dev *pdev)
{
        struct device_node *of_node;
        u32 rid = pci_dev_id(pdev);

        pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid);

        of_node = irq_domain_get_of_node(domain);
        rid = of_node ? of_msi_xlate(&pdev->dev, &of_node, rid) :
                        iort_msi_map_id(&pdev->dev, rid);

        return rid;
}

>>  	struct cdx_device *cdx_dev = to_cdx_device(dev);
>>  	struct device *parent = cdx_dev->cdx->dev;
>>  	struct msi_domain_info *msi_info;
>> @@ -128,11 +129,13 @@ static int cdx_msi_prepare(struct irq_domain *msi_domain,
>>  	int ret;
>>  
>>  	/* Retrieve device ID from requestor ID using parent device */
>> -	ret = of_map_msi_id(parent->of_node, cdx_dev->msi_dev_id, NULL, &dev_id);
>> +	ret = of_map_msi_id(parent->of_node, cdx_dev->msi_dev_id, &msi_spec);
>>  	if (ret) {
>>  		dev_err(dev, "of_map_id failed for MSI: %d\n", ret);
>>  		return ret;
>>  	}
>> +	of_node_put(msi_spec.np);
>> +	dev_id = msi_spec.args[0];
>>  
>>  #ifdef GENERIC_MSI_DOMAIN_OPS
>>  	/* Set the device Id to be passed to the GIC-ITS */
>> diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
>> index a511ecf21fcd..d255d0f58e8c 100644
>> --- a/drivers/iommu/of_iommu.c
>> +++ b/drivers/iommu/of_iommu.c
>> @@ -48,7 +48,7 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
>>  	struct of_phandle_args iommu_spec = { .args_count = 1 };
> 
> .args_count = 1 should be set by of_map_iommu_id now (and dropped here).
> 

Sure, will move it.

>>  	int err;
>>  
>> -	err = of_map_iommu_id(master_np, *id, &iommu_spec.np, iommu_spec.args);
>> +	err = of_map_iommu_id(master_np, *id, &iommu_spec);
>>  	if (err)
>>  		return err;
>>  
>> diff --git a/drivers/irqchip/irq-gic-its-msi-parent.c b/drivers/irqchip/irq-gic-its-msi-parent.c
>> index b63343a227a9..729fa2f9f758 100644
>> --- a/drivers/irqchip/irq-gic-its-msi-parent.c
>> +++ b/drivers/irqchip/irq-gic-its-msi-parent.c
>> @@ -152,6 +152,8 @@ static int its_v5_pci_msi_prepare(struct irq_domain *domain, struct device *dev,
>>  static int of_pmsi_get_msi_info(struct irq_domain *domain, struct device *dev, u32 *dev_id,
>>  				phys_addr_t *pa)
>>  {
>> +	struct device_node *msi_ctrl __free(device_node) = NULL;
>> +	struct of_phandle_args msi_spec = { .np = NULL };
>>  	struct of_phandle_iterator it;
>>  	int ret;
>>  
>> @@ -178,9 +180,12 @@ static int of_pmsi_get_msi_info(struct irq_domain *domain, struct device *dev, u
>>  		}
>>  	}
>>  
>> -	struct device_node *msi_ctrl __free(device_node) = NULL;
>> -
>> -	return of_map_msi_id(dev->of_node, dev->id, &msi_ctrl, dev_id);
>> +	ret = of_map_msi_id(dev->of_node, dev->id, &msi_spec);
>> +	if (!ret) {
>> +		msi_ctrl = msi_spec.np;
>> +		*dev_id = msi_spec.args[0];
>> +	}
>> +	return ret;
>>  }
>>  
>>  static int its_pmsi_prepare(struct irq_domain *domain, struct device *dev,
>> diff --git a/drivers/of/base.c b/drivers/of/base.c
>> index 959305a84748..b6e07c5fe715 100644
>> --- a/drivers/of/base.c
>> +++ b/drivers/of/base.c
>> @@ -2102,36 +2102,37 @@ int of_find_last_cache_level(unsigned int cpu)
>>   * @id: device ID to map.
>>   * @map_name: property name of the map to use.
>>   * @map_mask_name: optional property name of the mask to use.
>> - * @target: optional pointer to a target device node.
>> - * @id_out: optional pointer to receive the translated ID.
>> + * @arg: pointer to a &struct of_phandle_args. On input, @arg->np may be
>> + *	set to a target device node to match, or NULL to match any. On
>> + *	success, @arg->np will be set to the matched target node (with a
>> + *	reference held) and @arg->args[0] will contain the translated ID.
> 
> Is this part being actually used (and useful)?
> 

Please refer the above comment. I see there is existing path in
drivers/pci/msi/irqdomain.c which sets np.

Thanks,
Vijay

>>   *
>>   * Given a device ID, look up the appropriate implementation-defined
>>   * platform ID and/or the target device which receives transactions on that
>> - * ID, as per the "iommu-map" and "msi-map" bindings. Either of @target or
>> - * @id_out may be NULL if only the other is required. If @target points to
>> - * a non-NULL device node pointer, only entries targeting that node will be
>> - * matched; if it points to a NULL value, it will receive the device node of
>> - * the first matching target phandle, with a reference held.
>> + * ID, as per the "iommu-map" and "msi-map" bindings. If @arg->np points to
>> + * a non-NULL device node, only entries targeting that node will be matched;
>> + * if it is NULL, it will receive the device node of the first matching
>> + * target phandle, with a reference held.
>>   *
>>   * Return: 0 on success or a standard error code on failure.
>>   */
>>  int of_map_id(const struct device_node *np, u32 id,
>>  	       const char *map_name, const char *map_mask_name,
>> -	       struct device_node **target, u32 *id_out)
>> +	       struct of_phandle_args *arg)
>>  {
>>  	u32 map_mask, masked_id;
>>  	int map_len;
>>  	const __be32 *map = NULL;
>>  
>> -	if (!np || !map_name || (!target && !id_out))
>> +	if (!np || !map_name || !arg)
>>  		return -EINVAL;
>>  
>>  	map = of_get_property(np, map_name, &map_len);
>>  	if (!map) {
>> -		if (target)
>> +		if (arg->np)
>>  			return -ENODEV;
>>  		/* Otherwise, no map implies no translation */
>> -		*id_out = id;
>> +		arg->args[0] = id;
>>  		return 0;
>>  	}
>>  
>> @@ -2173,18 +2174,15 @@ int of_map_id(const struct device_node *np, u32 id,
>>  		if (!phandle_node)
>>  			return -ENODEV;
>>  
>> -		if (target) {
>> -			if (*target)
>> -				of_node_put(phandle_node);
>> -			else
>> -				*target = phandle_node;
>> +		if (arg->np)
>> +			of_node_put(phandle_node);
>> +		else
>> +			arg->np = phandle_node;
>>  
>> -			if (*target != phandle_node)
>> -				continue;
>> -		}
>> +		if (arg->np != phandle_node)
>> +			continue;
>>  
>> -		if (id_out)
>> -			*id_out = masked_id - id_base + out_base;
>> +		arg->args[0] = masked_id - id_base + out_base;
>>  
>>  		pr_debug("%pOF: %s, using mask %08x, id-base: %08x, out-base: %08x, length: %08x, id: %08x -> %08x\n",
>>  			np, map_name, map_mask, id_base, out_base,
> 



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 11:53:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 11:53:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252221.1548975 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0ebM-0001GM-Ta; Thu, 12 Mar 2026 11:53:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252221.1548975; Thu, 12 Mar 2026 11: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 1w0ebM-0001GF-QP; Thu, 12 Mar 2026 11:53:16 +0000
Received: by outflank-mailman (input) for mailman id 1252221;
 Thu, 12 Mar 2026 11:53: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=jTts=BM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0ebM-0001G9-7F
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 11:53:16 +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 0ca57f07-1e0a-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 12:53:13 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4853510b4f3so11878155e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 04:53:13 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4854b66ffe2sm121016715e9.13.2026.03.12.04.53.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 04:53:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0ca57f07-1e0a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773316393; x=1773921193; 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=m5lp2iKgko+e2S9raenz03hPtnNB0mQ5tKB85rLA/so=;
        b=GvBh92jht2AaVzs3Fzx4/+5g7ux8jwej4FeH7ZjEeHwTFC/xVyx7c6lIxi6gydQBZh
         JwTauyujnJ0A9v4wakJcKY0nGOyfp7oY4xN3cmwQg35icRVVZguQv6jsvJD8H/3nwqQZ
         M5lV6wUsBYyiTviFr8MJtcjRAgk1CnLrZzGU3gML3n309w+fGrkjPUzhYojtLmValuOi
         X5ykYCVvemhYguVmrs6h8bg7X25AImQHHsD2xTkcmka99U70qMCMkJWknsO8GRoN42Os
         p/h9RvLk6dPHFsiV6CGD1s77KxhLhHCCgElPBZTQ9Tl7VgbnI4G7ZImUWAkAE1wXZ4Lx
         o4yA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773316393; x=1773921193;
        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=m5lp2iKgko+e2S9raenz03hPtnNB0mQ5tKB85rLA/so=;
        b=Wz1CNnX3Yt4rDdCihERM/tAceeigHPCg5hR83o/PPQXQl/W+A+j28jKDtBvVx6EzFb
         oRs9qO3u5bUsEPnqlnvEASixwJMMT//wm/7HbsPWk7OlOM5r9dukpaqFX/2XbpY4NbjY
         90aj2epURySb28vos+p/W+ceNFQCrkJlO+lv6Zdo3+8P5ILSs8P3oNLsMjz31pkRGYXR
         nWOX0BJNEvUrF4UiKhgX1ws7N4bnTEyTqycc2lfHgVa8Yr+hkRC82ujo+cjvxdk340O+
         0vkNDAZHZtmp0MdeQTgcCr/+inZUpvfoX3be8KERE+G67TgwzJo5SH3sZanyH7QeTk0v
         CmTA==
X-Forwarded-Encrypted: i=1; AJvYcCX4BYMlQ0guy6WzGom8Xksf9XCZmJiHWN9tJ7BiHm8iV37TEPoKsLJnS5+OuVGjhqBpSjSTH4VACRQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxS+8dTJTiuy7SlhjtD3HSdGQISnGjYPQhLBnWSte7FBdSgdSop
	xzA44GhMNKCh48cW6Nq7GEteBO6yzo3ViKUk+l4T7hfz7YhznulA004koLhoUP2+WA==
X-Gm-Gg: ATEYQzwA4vbk2IPxvuBYbuYAZwyC+RjdE+mbkpSUAzCOpiNCe3FpMWrd2VqI3QPUGBr
	98IA0ACM2Au3THkVE7E6x18x/6rx2D7omGJ1I7JmmbaDwCm/jUAk1x/5gAVOtr4fr+gj/s1LUgy
	NP+Ha1p+qVYZjzS6InHsFstcut/SLZX9AREWAwm47k0uiQ3sPfO4TNn+QL5neYeER6Sh3wCrqHm
	BB0DtFl/nkH93b6DJYZL4KoP4NhORrYIT7LyAtQrG4yypKXkBVdz6ZFlvew3dgBhBFs4CkBZLA5
	ZeQ4P/oPU2WPZWQpiCv0jKx3k6batP58v3w+/QPA1oQ/nmkHvSJwJ1LAbnGV848F+fW1YCMDc2v
	ZkMzL0wHHWIyoRAEZmpEMX7JFbMBv3CPyMVloARPToLuZbBIMxAVH/2zCskUf32UX/XwiloJ5tu
	UBEg8mi2Tw3S24y7WMetVjslTQPjzTokTvwrrQ1YQU5FcOtJk95beTkL/rPaEKpwJcZSiCWDLrQ
	BLrjm2IFKz5c1I=
X-Received: by 2002:a05:600c:3544:b0:485:30f7:6e88 with SMTP id 5b1f17b1804b1-4854b12189amr103770855e9.31.1773316393107;
        Thu, 12 Mar 2026 04:53:13 -0700 (PDT)
Message-ID: <8ac5f8a5-456d-45e0-8efa-13cc7050dcb0@suse.com>
Date: Thu, 12 Mar 2026 12:53:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/7] x86/dmop: Add XEN_DMOP_{bind,unbind}_pt_msi_irq DM
 ops
From: Jan Beulich <jbeulich@suse.com>
To: Julian Vetter <julian.vetter@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
 <jgross@suse.com>, Julien Grall <julien@xen.org>,
 xen-devel@lists.xenproject.org
References: <20260309123055.880050-1-julian.vetter@vates.tech>
 <20260309123055.880050-5-julian.vetter@vates.tech>
 <55a65f8d-40df-4841-8e76-200c82f397c5@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: <55a65f8d-40df-4841-8e76-200c82f397c5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.03.2026 17:04, Jan Beulich wrote:
> On 09.03.2026 13:31, Julian Vetter wrote:
>> @@ -607,6 +631,83 @@ int dm_op(const struct dmop_args *op_args)
>>          break;
>>      }
>>  
>> +    case XEN_DMOP_bind_pt_msi_irq:
>> +    {
>> +        const struct xen_dm_op_bind_pt_msi_irq *data =
>> +            &op.u.bind_pt_msi_irq;
>> +        struct xen_domctl_bind_pt_irq bind = {
>> +            .machine_irq = data->machine_irq,
>> +            .irq_type = PT_IRQ_TYPE_MSI,
>> +        };
>> +        int irq;
>> +
>> +        rc = -EINVAL;
>> +        if ( data->pad0 || data->pad1 )
>> +            break;
>> +
>> +        if ( data->flags & ~XEN_DMOP_MSI_FLAG_UNMASKED )
>> +            break;
>> +
>> +        irq = domain_pirq_to_irq(d, bind.machine_irq);
>> +
>> +        rc = -EPERM;
>> +        if ( irq <= 0 || !irq_access_permitted(current->domain, irq) )
>> +            break;
>> +
>> +        bind.u.msi.gvec = data->gvec;
>> +        bind.u.msi.gflags =
>> +            msi_addr_to_gflags(data->addr, data->data,
>> +                               !(data->flags & XEN_DMOP_MSI_FLAG_UNMASKED));
>> +        bind.u.msi.gtable = data->gtable;
>> +
>> +        rc = -ESRCH;
>> +        if ( is_iommu_enabled(d) )
>> +        {
>> +            pcidevs_lock();
>> +            rc = pt_irq_create_bind(d, &bind);
>> +            pcidevs_unlock();
> 
> I understand the same locking is used at the other call site, but it's as
> questionable there as it is here. We should try hard to avoid use of this
> global lock when something lighter-weight would do.

I should perhaps have added that I have this on my own list of things to look
into, just that I didn't get to it yet.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 12:22:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 12:22:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252252.1548993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0f3t-0005qU-AL; Thu, 12 Mar 2026 12:22:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252252.1548993; Thu, 12 Mar 2026 12: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 1w0f3t-0005qN-5m; Thu, 12 Mar 2026 12:22:45 +0000
Received: by outflank-mailman (input) for mailman id 1252252;
 Thu, 12 Mar 2026 12:22: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=QGPq=BM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0f3s-0005q1-68
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 12:22:44 +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 2b702ef6-1e0e-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 13:22:43 +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 53DBC5BCC3;
 Thu, 12 Mar 2026 12:22:42 +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 257463FF78;
 Thu, 12 Mar 2026 12:22:42 +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 Q/6SBxKwsmn8bQAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 12 Mar 2026 12:22:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2b702ef6-1e0e-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773318162; 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=Pb43MK7Il5S1H1egLvT8+n0qUAoOsACewtHiK/T0SMc=;
	b=mzmfuF2PUzt8Juq1v0lw/RidnvanOFxSfvoPt8fY4X1LVmFbis3ES6Vz7vrzjf2EHDDaqp
	KJAgAAYSm7QKAmbz1SedkMYadpUVjzvEjqtFfrk3Cs54fnbyZDMWWsb9r59wCgWvvd8xLh
	kwP0lcE96qEBaPK99qXBIk7wXFAdYWY=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773318162; 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=Pb43MK7Il5S1H1egLvT8+n0qUAoOsACewtHiK/T0SMc=;
	b=mzmfuF2PUzt8Juq1v0lw/RidnvanOFxSfvoPt8fY4X1LVmFbis3ES6Vz7vrzjf2EHDDaqp
	KJAgAAYSm7QKAmbz1SedkMYadpUVjzvEjqtFfrk3Cs54fnbyZDMWWsb9r59wCgWvvd8xLh
	kwP0lcE96qEBaPK99qXBIk7wXFAdYWY=
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 0/4] docs: add some Xenstore related man pages
Date: Thu, 12 Mar 2026 13:22:36 +0100
Message-ID: <20260312122240.2784725-1-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-2.77 / 50.00];
	BAYES_HAM(-2.97)[99.87%];
	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)[];
	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,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.77
X-Spam-Level: 

For some of the Xenstore client programs the man pages are missing.

Juergen Gross (4):
  docs: add man page for xenstore-exists
  docs: add man page for xenstore-list
  docs: add man page for xenstore-rm
  docs: add man page for xenstore-watch

 docs/man/xenstore-exists.1.pod | 17 +++++++++++++++++
 docs/man/xenstore-list.1.pod   | 24 ++++++++++++++++++++++++
 docs/man/xenstore-rm.1.pod     | 24 ++++++++++++++++++++++++
 docs/man/xenstore-watch.1.pod  | 25 +++++++++++++++++++++++++
 4 files changed, 90 insertions(+)
 create mode 100644 docs/man/xenstore-exists.1.pod
 create mode 100644 docs/man/xenstore-list.1.pod
 create mode 100644 docs/man/xenstore-rm.1.pod
 create mode 100644 docs/man/xenstore-watch.1.pod

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 12:22:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 12:22:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252253.1549001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0f40-00064p-Fg; Thu, 12 Mar 2026 12:22:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252253.1549001; Thu, 12 Mar 2026 12:22:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0f40-00064i-C9; Thu, 12 Mar 2026 12:22:52 +0000
Received: by outflank-mailman (input) for mailman id 1252253;
 Thu, 12 Mar 2026 12: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=QGPq=BM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0f3y-00063r-M6
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 12:22:50 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2e4da46f-1e0e-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 13:22:48 +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 DC3295BCC3;
 Thu, 12 Mar 2026 12:22: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 B749A3FF79;
 Thu, 12 Mar 2026 12:22: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 +NYxKxewsmmLbgAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 12 Mar 2026 12:22: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: 2e4da46f-1e0e-11f1-9ccf-f158ae23cfc8
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 1/4] docs: add man page for xenstore-exists
Date: Thu, 12 Mar 2026 13:22:37 +0100
Message-ID: <20260312122240.2784725-2-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260312122240.2784725-1-jgross@suse.com>
References: <20260312122240.2784725-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-4.00 / 50.00];
	REPLY(-4.00)[]
X-Rspamd-Queue-Id: DC3295BCC3
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: 

There is no man page for xenstore-exists, add it.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 docs/man/xenstore-exists.1.pod | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 docs/man/xenstore-exists.1.pod

diff --git a/docs/man/xenstore-exists.1.pod b/docs/man/xenstore-exists.1.pod
new file mode 100644
index 0000000000..c4d9eeecaf
--- /dev/null
+++ b/docs/man/xenstore-exists.1.pod
@@ -0,0 +1,17 @@
+=head1 NAME
+
+xenstore-exists - test Xenstore key to exist
+
+=head1 SYNOPSIS
+
+B<xenstore-exists> I<PATH>
+
+=head1 DESCRIPTION
+
+Tests whether the specified Xenstore I<PATH> is readable and sets
+the exit value accordingly (B<0> if I<PTAH> is readable, B<1> if not).
+
+=head1 BUGS
+
+Send bugs to xen-devel@lists.xenproject.org, see
+https://wiki.xenproject.org/wiki/Reporting_Bugs_against_Xen_Project on how to send bug reports.
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 12:22:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 12:22:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252255.1549010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0f45-0006L2-My; Thu, 12 Mar 2026 12:22:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252255.1549010; Thu, 12 Mar 2026 12:22:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0f45-0006Kt-KP; Thu, 12 Mar 2026 12:22:57 +0000
Received: by outflank-mailman (input) for mailman id 1252255;
 Thu, 12 Mar 2026 12:22:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGPq=BM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0f43-00063r-LE
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 12:22:55 +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 31905f54-1e0e-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 13:22:53 +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 6E7205BCC3;
 Thu, 12 Mar 2026 12:22: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 48F953FF79;
 Thu, 12 Mar 2026 12:22: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 apk9EB2wsmmXbgAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 12 Mar 2026 12:22: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: 31905f54-1e0e-11f1-9ccf-f158ae23cfc8
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 2/4] docs: add man page for xenstore-list
Date: Thu, 12 Mar 2026 13:22:38 +0100
Message-ID: <20260312122240.2784725-3-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260312122240.2784725-1-jgross@suse.com>
References: <20260312122240.2784725-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: 6E7205BCC3
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Rspamd-Action: no action
X-Spam-Score: -4.00
X-Spam-Level: 
X-Spam-Flag: NO
X-Spamd-Result: default: False [-4.00 / 50.00];
	REPLY(-4.00)[]
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org

There is no man page for xenstore-list, add it.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 docs/man/xenstore-list.1.pod | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)
 create mode 100644 docs/man/xenstore-list.1.pod

diff --git a/docs/man/xenstore-list.1.pod b/docs/man/xenstore-list.1.pod
new file mode 100644
index 0000000000..4bc1ff9846
--- /dev/null
+++ b/docs/man/xenstore-list.1.pod
@@ -0,0 +1,24 @@
+=head1 NAME
+
+xenstore-list - list Xenstore key children
+
+=head1 SYNOPSIS
+
+B<xenstore-list> [I<OPTION>]... [I<PATH>]...
+
+=head1 DESCRIPTION
+
+List direct children of one or more Xenstore I<PATH>s, one child per line.
+
+=over
+
+=item B<-p>
+
+List the full Xenstore path of each listed path.
+
+=back
+
+=head1 BUGS
+
+Send bugs to xen-devel@lists.xenproject.org, see
+https://wiki.xenproject.org/wiki/Reporting_Bugs_against_Xen_Project on how to send bug reports.
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 12:23:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 12:23:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252256.1549019 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0f49-0006bv-Uw; Thu, 12 Mar 2026 12:23:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252256.1549019; Thu, 12 Mar 2026 12:23: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 1w0f49-0006bm-RC; Thu, 12 Mar 2026 12:23:01 +0000
Received: by outflank-mailman (input) for mailman id 1252256;
 Thu, 12 Mar 2026 12: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=QGPq=BM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0f49-00063r-Aq
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 12:23:01 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de
 [2a07:de40:b251:101:10:150:64:1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 35035de6-1e0e-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 13:22:59 +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 00C6C4D237;
 Thu, 12 Mar 2026 12:22:59 +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 CFE0B3FF79;
 Thu, 12 Mar 2026 12:22: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 nyQwMSKwsmmcbgAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 12 Mar 2026 12:22:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 35035de6-1e0e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773318179; 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=Qu9mokxFy6++tAiKg0KL3AAfRSPvbmqwRBVZ1mlexiI=;
	b=G9piFzdvdLBiP0y4R+QC5jm0vYVCMHdq2Fgk0gltmAwaqGcjBA73jjuigOhm6pLiVbH5my
	6osuErHO8EHhzveC336/5AO2xuN0mDHt8J8Xajl3f5iG6ozN6wnUVhPI2V8o4GTRkQlvZm
	9Kmd//K4FSetX5KBMB0swCfl/gdSQ38=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773318179; 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=Qu9mokxFy6++tAiKg0KL3AAfRSPvbmqwRBVZ1mlexiI=;
	b=G9piFzdvdLBiP0y4R+QC5jm0vYVCMHdq2Fgk0gltmAwaqGcjBA73jjuigOhm6pLiVbH5my
	6osuErHO8EHhzveC336/5AO2xuN0mDHt8J8Xajl3f5iG6ozN6wnUVhPI2V8o4GTRkQlvZm
	9Kmd//K4FSetX5KBMB0swCfl/gdSQ38=
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/4] docs: add man page for xenstore-rm
Date: Thu, 12 Mar 2026 13:22:39 +0100
Message-ID: <20260312122240.2784725-4-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260312122240.2784725-1-jgross@suse.com>
References: <20260312122240.2784725-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)[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];
	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,imap1.dmz-prg2.suse.org:helo,xenproject.org:url,xenproject.org:email];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -6.80
X-Spam-Level: 

There is no man page for xenstore-rm, add it.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 docs/man/xenstore-rm.1.pod | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)
 create mode 100644 docs/man/xenstore-rm.1.pod

diff --git a/docs/man/xenstore-rm.1.pod b/docs/man/xenstore-rm.1.pod
new file mode 100644
index 0000000000..a85b971113
--- /dev/null
+++ b/docs/man/xenstore-rm.1.pod
@@ -0,0 +1,24 @@
+=head1 NAME
+
+xenstore-rm - remove Xenstore keys
+
+=head1 SYNOPSIS
+
+B<xenstore-rm> [I<OPTION>]... [I<PATH>]...
+
+=head1 DESCRIPTION
+
+Remove one or more Xenstore B<PATH>s.
+
+=over
+
+=item B<-t>
+
+Tidy up Xenstore keys which got all children removed.
+
+=back
+
+=head1 BUGS
+
+Send bugs to xen-devel@lists.xenproject.org, see
+https://wiki.xenproject.org/wiki/Reporting_Bugs_against_Xen_Project on how to send bug reports.
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 12:23:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 12:23:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252262.1549028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0f4G-00072f-6l; Thu, 12 Mar 2026 12:23:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252262.1549028; Thu, 12 Mar 2026 12: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 1w0f4G-00072V-2R; Thu, 12 Mar 2026 12:23:08 +0000
Received: by outflank-mailman (input) for mailman id 1252262;
 Thu, 12 Mar 2026 12: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=QGPq=BM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0f4F-00063r-3d
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 12:23:07 +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 3837d540-1e0e-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 13:23:04 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 881993E7E4;
 Thu, 12 Mar 2026 12:23: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 6250F3FF79;
 Thu, 12 Mar 2026 12:23:04 +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 BaJ2FiiwsmmkbgAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 12 Mar 2026 12:23:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3837d540-1e0e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773318184; 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=Cew8ONz1GlDtI3N7ZBZEdFx+Io4/1ntEyxcOISKEG90=;
	b=dsK+RkMS3zl7mxLsNRSPS+MOjV5IV9sCF5C9RTnhSg4GL9b03m5XQ+AidsQzOQmE7zyUWa
	Mr142wrM0BtFYQu97q2OPxDo9D/2HukOtaHiPFPnvTTrD1H5rXYx966LDh8wSZ4zUHHnRK
	7BZ2GyORu/hIuKRYSdrYIuqkgMTDWY4=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773318184; 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=Cew8ONz1GlDtI3N7ZBZEdFx+Io4/1ntEyxcOISKEG90=;
	b=dsK+RkMS3zl7mxLsNRSPS+MOjV5IV9sCF5C9RTnhSg4GL9b03m5XQ+AidsQzOQmE7zyUWa
	Mr142wrM0BtFYQu97q2OPxDo9D/2HukOtaHiPFPnvTTrD1H5rXYx966LDh8wSZ4zUHHnRK
	7BZ2GyORu/hIuKRYSdrYIuqkgMTDWY4=
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/4] docs: add man page for xenstore-watch
Date: Thu, 12 Mar 2026 13:22:40 +0100
Message-ID: <20260312122240.2784725-5-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260312122240.2784725-1-jgross@suse.com>
References: <20260312122240.2784725-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -6.80
X-Spam-Level: 
X-Spamd-Result: default: False [-6.80 / 50.00];
	REPLY(-4.00)[];
	BAYES_HAM(-3.00)[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];
	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)[xenproject.org:url,xenproject.org:email,imap1.dmz-prg2.suse.org:helo,suse.com:mid,suse.com:email];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO

There is no man page for xenstore-watch, add it.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 docs/man/xenstore-watch.1.pod | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)
 create mode 100644 docs/man/xenstore-watch.1.pod

diff --git a/docs/man/xenstore-watch.1.pod b/docs/man/xenstore-watch.1.pod
new file mode 100644
index 0000000000..b9b60c645c
--- /dev/null
+++ b/docs/man/xenstore-watch.1.pod
@@ -0,0 +1,25 @@
+=head1 NAME
+
+xenstore-watch - wait for Xenstore watch events
+
+=head1 SYNOPSIS
+
+B<xenstore-watch> [I<OPTION>]... [I<PATH>]...
+
+=head1 DESCRIPTION
+
+Set Xenstore watches to the specified I<PATH>s and print the path for each
+event happening.
+
+=over
+
+=item B<-n> B<NR>
+
+Stop waiting after having received B<NR> watch events.
+
+=back
+
+=head1 BUGS
+
+Send bugs to xen-devel@lists.xenproject.org, see
+https://wiki.xenproject.org/wiki/Reporting_Bugs_against_Xen_Project on how to send bug reports.
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 12:32:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 12:32:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252314.1549037 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0fCr-00018w-07; Thu, 12 Mar 2026 12:32:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252314.1549037; Thu, 12 Mar 2026 12:32:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0fCq-00018p-T8; Thu, 12 Mar 2026 12:32:00 +0000
Received: by outflank-mailman (input) for mailman id 1252314;
 Thu, 12 Mar 2026 12:31: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=cgz6=BM=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w0fCp-00018j-PX
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 12:31:59 +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 73af60e3-1e0f-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 13:31:54 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA3PR03MB7210.namprd03.prod.outlook.com (2603:10b6:806:2fa::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.12; Thu, 12 Mar
 2026 12:31:42 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9700.013; Thu, 12 Mar 2026
 12:31: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: 73af60e3-1e0f-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JhJ0TqJTVfcfluv1ZeIpcKIxyS23KwJgaX0JFKPIsk0588JLT2HtG355L87a5gWLCw5Il0UFDZYOUW5Y3K6JO6rOiE/kMxBgN8gn6FmXDJUTlGTQgINsTBcKIjV4WiFv37dbi3TJ9uv/rZMy0TP0MJhEHxr2tIygMqJ1+he7Xa1ND30+5Ze5STIrMYIVMDVNi1wz+RboXN6rZZ5796zh2GeORkZ9EUqI7mbzDHKUmfIG6z+hW4pNR8t4+77x+tItSnW1N2Lz4V40dhCaRGXR5E58RLEVxHKAfS5A80lli73duxs2ESPuCFcceZGHZFUjXGkaZ3w6jnufaKXNGO0XoQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hgMUXblSAtUGxPyjoxrcj+GszBtDksuPpbNI4IWo2j8=;
 b=vDU01SRkqWt2WyKrfrDb9wv/l5USJ7LuYIW31YV24UifOGdTktA0NlVFNv+d8ghWAC+DD+uGqZAPtokhYCsZnjP0P0UF/nrN4628jXJk013VZ9IXgLW74C7zKYhYQ5zj2yAsS4VUABHuVm/a1PtY2h0HQeKSelJMsxNsv3fx4M9KT5pOiGWn9t0NvOz2phwkauim4HdUIhuT59kaXWn9XCe6irzh22IcvTbJB637VkmoOqt8LuFm1V3KauN+v+4yKMhHjeseqc5C/GgLnvBEcVppoLXkGBmIfCpDsOExexl+J44MMS5dtgaMZW/HerGakdsSPjTVWl4O3o63zhIK7w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hgMUXblSAtUGxPyjoxrcj+GszBtDksuPpbNI4IWo2j8=;
 b=l9OBLf8QRrwQIt0ObhH0r1N9UwcT3+YtsOGK9w/dNZtqPYL0phIg5Airc6mqGRHyEnECZj0ehWBP7BzztcXDSLcnGdGe2/7aWa9gwajf3J3qIEGwRUf99yObrUedhJ6MnZmor+REjV7fCiHagU7q2pSiKXGiCiAadXHMCuNbS68=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <9e209a46-0896-4ebe-a366-4638b562778f@citrix.com>
Date: Thu, 12 Mar 2026 12:31:46 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 1/4] docs: add man page for xenstore-exists
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <20260312122240.2784725-1-jgross@suse.com>
 <20260312122240.2784725-2-jgross@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260312122240.2784725-2-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P265CA0492.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:13a::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_|SA3PR03MB7210:EE_
X-MS-Office365-Filtering-Correlation-Id: c56266b2-7884-48ae-ec24-08de80335529
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|56012099003|22082099003|18002099003|7053199007;
X-Microsoft-Antispam-Message-Info:
	fhjwMwfyo3lGEbjn4mdwdAIxQOB6WBOvDuPoF442DJTRp1sBrQ6QkW4nJh8aJNB3AGn8V+MRInvc6o+RiJWUfYKdkIkQ15HN046l4LGNnYKDQiKVmmCC3zCFL7NuZK/G+IZUY+BUhltpiIixDx5mp8G4qHS17dDbZJyLNMYpBXx2CfhPwN9MjeVwTVRByVBwXrbKthvzGKyiAm/0Mtn+B+X1MVSt3CU3RalwnyjHt7iDdZnoWi8Ox79kJd2yIvVqPFp0uWkCkfS377EfmRWFVaQuVKZ5IkoxwZuCv8aHPfHt1HVUwd9hEqnvLtGHkB11RmbF6stu6DSbEb38fG81R6HvTlYsQMPHL350TrCVb+lg2D4EpJ2Oxl1ARqD+1gyY4o4OTmFbw/goz6tdFE5NmbvdrSTDd8PnZaxnjkbjz2QCyjvsoR9gi4n4DVguaPbeLWc+IOtRS52WarWPLdkVIBGhWwr2Wb5CC8RWGaen+ZuCWANaZflywd9sydrsfIXxwG4d3ioXr+d43Tl9BAxTOJvjpwd9v2mKeRAFTZPF5MBXnjYjx/P+ZJt2KM6qKHIY1U/iMxNZn0kzDK9KGvxmHwjfEdUdaDRz1v6o7IpCfGyDRbV6399/79sBlUvPmJ4ix70sVR2kX8BtfyXsQoTzocluzsL8MSCYk8+XuC6pqF9dlnaK/BztFBiR/OmHnh0PyUikeM1PfnHnqgvGoE7IgGpjYQbCuzwsSxVvC0Q3nUY=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(56012099003)(22082099003)(18002099003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?d0Q4MGJhNUt1VEVRaGxpa3RWOFE1THA0bUJ4WTRaaXFVcEdrUlBoZ1JvRDB4?=
 =?utf-8?B?bmJOSkYzcUNVdVluYnFuSDUwZ3g1empLYW1uZkhwaEdWSzlOdFpXU2N6MkRJ?=
 =?utf-8?B?OUdkUVpSd2FESTJHUEo1R3ltYlcwOXVNeDNtUURYNTVnTi9nTVJuamNIdHk5?=
 =?utf-8?B?c01BRC9ZeHZkSjNqZXJISlBheHIzRFhxS3NTVUpYZXRVSWtlME5NWTk2YjFM?=
 =?utf-8?B?Tlk2VkNxTkQ4RUh1eThUZzFiTjYzWGlhbXVrK0Fuc25zbVdxbTlLREZ3QU40?=
 =?utf-8?B?bmxDQ2ZCdlJEaVpJM0ZJZ2JzUGVUVTBkbm9XblZjUmtKVllhYXdyZGQ1NnZD?=
 =?utf-8?B?bTJqMEVabWtyVzk4bHBUaStVSit0U2JnUDY5OVNsbC9sbnpmTnRXTTVKN2wr?=
 =?utf-8?B?WGVOUExvR0EvdGlzUmFTNmxrYm0zUy9UQmFNdHlIeXZzczBVUDJhUmRUWXdT?=
 =?utf-8?B?elZTdlpiZk16UVNCcmNlUUhIa2xtRUh5SVUxeTVlU25LdFI5dVpGcFZML1Ix?=
 =?utf-8?B?OG5YUnl3Vjc5ZUptOXpCRXhmTkpEazdScGdUWHhzaFNzZ3F4WTk0NHV2U21M?=
 =?utf-8?B?T2NWTTA4OHNJeFdYYnNVSjY2cFNQRStkMlJlMFdhdnRrbGVodlhJK0wyblZV?=
 =?utf-8?B?WlkxSDBUKzFMUWZ4WDZtUzI3ODBwVXVidit3Ym1obEV1bTJvV09zZkh1dEFP?=
 =?utf-8?B?aXoyZC9OUFlTVWN5SjNTYlZYbXBkNUxESXB3ZU9uWnpRbHA1ZE40dXdDc0Za?=
 =?utf-8?B?c0Nmc09qRjRidWVkN0tOK1FtUkQvTlMzZC9MSnB4VXZ6REFidWU1TUlkSkl5?=
 =?utf-8?B?QU1QdFkyZ1pWazU5TnpwU1BDZGRWUVpYT2t3TkFnaDJQYTJVS2ozM2Y2dmdk?=
 =?utf-8?B?eC9sVE1xOHdHVmNOTTBWOU0xMGxUSFJNdzhZbFI0cW9YZW5Fb1JML0hvVUpj?=
 =?utf-8?B?MmhKMEI2ZkxLNmtaSGRDTU5zUDROeWxHUVRULytXTTQ5VXVHOU91Y2lOL0or?=
 =?utf-8?B?bjV2MGVvTzlwZ2RKZ3VBbENnY2g5alRjRWhvNE1nTnNBNU1mWlVrWXljRC9l?=
 =?utf-8?B?Tkx6RUlOY0NCbWFxQ1JTL3lrcnh4VkpJRUo5WStqYmNYR2FZcFFndnJYV2Vl?=
 =?utf-8?B?Q3kwNzJaQkR5U3VURzNMdHVGMXcxSHhQNVNLc29uOTNYZGx5TVFhVkh1emc0?=
 =?utf-8?B?QjNlWTBHaDJ2R3NpNFZQYVgrSWNyYXRsRVViMnQxN2FXWUY2KytkcWg4QlB5?=
 =?utf-8?B?aEZvRlVEakI3TXcrNEZHZGVHTm9yMEI0cUZSWHFTMDZic3BoVjhDaDRDdXUw?=
 =?utf-8?B?d21HQ3N1NXpNcDRFWWNDOUF2OE1QTDVpYVI0amFtR0FSTU9wdGJUbmljak41?=
 =?utf-8?B?UG9kU1dwWlhUUkZjSlQxYjY5TXdCRmRvNG1UMzBybHNkQWpocUZPZnV6NlB6?=
 =?utf-8?B?b3FvcnN5YjJSdHlkRmlSVEhBL1hsZDI5NUlUQ2ptOS9qU3dReVZxSGFjcGE2?=
 =?utf-8?B?bTVwK1dna1BoRytISmNUTjNvOUNFNStJaUMzc0pCVnZBZ2QxQlB0T2t5bklO?=
 =?utf-8?B?Z1F0cmNFdXdSMlVjQUV3VlJPWjFzYk1iajlMTnY5dlBueDNDTnZWVjZWcXM2?=
 =?utf-8?B?TXlzUUJHdVJxYWF6Wksxd0xXUUV5bW9pa3V0M2VnNDZaV3oxREpXaUZ6Ny9N?=
 =?utf-8?B?NEdoNFUrN3h6ZW9Xbjd1dUdRZjdxdjM3NlhjcUFjMUdXaFNrNVhUUURZN2hX?=
 =?utf-8?B?UVZvK0toRjRtM0RsMlhDMTdSMTY1RGZoL1RhZnZVYTJlMXVPK3k3aEtsZFlM?=
 =?utf-8?B?T1orMUswcjRGVFRqUzJHRnRYa2RwNExTWTUxUE9WalRWNlQ2TXJqb01OQTdo?=
 =?utf-8?B?TlNMZ2FITmRrWVhjRXUxUGFlMmZhMWk0bzVIdFJQaGh3WitRWndreTZuWkZR?=
 =?utf-8?B?ZUNYcjQyb2kxdktsTXl4ZVpKeE51ellQaDkySEVFb0JRTURDSnljUkYwTDlx?=
 =?utf-8?B?ajQ3NHR4eGl0QjQzSnZQUE00aUlTdFJHVjZSTnUvSm9wKzVKMUYrU3dCVDlF?=
 =?utf-8?B?TEFKTGVFQUxzUi84Q3dCSjFsVWRaQjd5d2dLT1ZyTGpYMVdFMUx0Nko4RkFs?=
 =?utf-8?B?c2lONHVIVFNmT3pBeDdsYTRkR2h2YTJOamJIVWgxcjVCanpnSCtWaWJ3a1Zl?=
 =?utf-8?B?dFAweHU0WXVCYUFkSXRPWVVKcHpQWTJGZThNWWwvYVQvR2pPZmNuNUtpQml0?=
 =?utf-8?B?UzZHZTVoQ0ZzbFZhYnEySWlFU085aTBiUFV5RkJtQmd1amlvbUNPZXBhL292?=
 =?utf-8?B?aUZlK20ybmQ5ZStXRzFRbndKNDZjaU5pU2laOFhYdTBCRVZZY2puZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c56266b2-7884-48ae-ec24-08de80335529
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 12:31:49.4771
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 3ZusL9i+pqR5kGZu4pViaCVdmPF6wPS2HQwKcevgYqKNOfSOLymvFE83dLgEJC8BRV85GskiHEI7eJF3xe9dprBuh5EmGyPBtF6uomffgbE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR03MB7210

On 12/03/2026 12:22 pm, Juergen Gross wrote:
> There is no man page for xenstore-exists, add it.
>
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>  docs/man/xenstore-exists.1.pod | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
>  create mode 100644 docs/man/xenstore-exists.1.pod
>
> diff --git a/docs/man/xenstore-exists.1.pod b/docs/man/xenstore-exists.1.pod
> new file mode 100644
> index 0000000000..c4d9eeecaf
> --- /dev/null
> +++ b/docs/man/xenstore-exists.1.pod
> @@ -0,0 +1,17 @@
> +=head1 NAME
> +
> +xenstore-exists - test Xenstore key to exist

This is awkward grammar.

I suggest "test whether a Xenstore key exists"

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 12:37:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 12:37:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252325.1549046 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0fHq-0001kW-Li; Thu, 12 Mar 2026 12:37:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252325.1549046; Thu, 12 Mar 2026 12:37:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0fHq-0001kP-II; Thu, 12 Mar 2026 12:37:10 +0000
Received: by outflank-mailman (input) for mailman id 1252325;
 Thu, 12 Mar 2026 12:37:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cgz6=BM=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w0fHp-0001kJ-69
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 12:37:09 +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 2e721f32-1e10-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 13:37:07 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH0PR03MB6097.namprd03.prod.outlook.com (2603:10b6:610:b8::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Thu, 12 Mar
 2026 12:37:02 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9700.013; Thu, 12 Mar 2026
 12:37: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: 2e721f32-1e10-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YNZrB5qmNharfsAbhqWF12qB9HtAhQa4NANPDxEz2U7RA9vFwWQthqDzFf7pfNYHVzmyKty7Ed041fQ08d/pg6CxUTfXZtgkJtTxrfHj9iYXNuHJU7XIc25Zy+WFGnqAfnzrvT7EpkhPlZ1ct9N53TXMkOuok+TCIaNZxTAsFIFhUkV9Vr6mbcYLZP3gPQXsAF8E70/PDGnpP3r99bleSaDq1FyM7RmnWvnCkiT0k1clp/aLvjOKZ6+86xMaeVmJgjjqp0WWnl+tgGgY1b8YhewXmI0qnrcdNGbOIZceHAxWmx0fY/gmxT9wyxS//2oWguT2+BYHCm7lc7k9EDB0pA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=32xfGSlmZmAV4r62Vdfwma1sqbZCZMXVXE8QY3dUyJs=;
 b=vKEwGGd8q3J4yypllm5MUuQV4+wG18KwvMdD6k7E0YkMoQwdm0GboNe4x/XphzFBR4xoZcV0qG6/kfKO5UpUCQChRAnmUrfjNjXwFcI9n0frMlklOaYEiQsGNFTCVK7+hDuja8m72D1qKDUBMssU9WfYNCuQBhq+bS+PoJqE47ac5aDd1d4nOI8CBngYleAIuJmCEj/z42nubjp1929UQEYMiCj4vjGMZBX6etODetpgRV7cjzUP0LElyBbw5MfGV5bsozdwpOPKSAorpu3R1QK8U6zAtSll7fnXRvFPSgESKt8CCNzE2GcuY7AbYWUtjPyRjXoFoXIJInH/0IdFzA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=32xfGSlmZmAV4r62Vdfwma1sqbZCZMXVXE8QY3dUyJs=;
 b=H/IK9jO2zFXuAqfsNsFxasF/jqkjgaUyZirJ2rtSfihHnLbUKF6/DMYlNTyaYiBHRxX0keJrO65/i2NFZvFNxWJvwZyKgFZjgUJ3tdoH3ODJyOeFfTbidVJL0hms5MYJuyZYa8uBBSSKEeWuXbI4PJWScHy4dBa05yC0lS4Ojdc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <cb069fa0-c775-4bed-9eda-ac21feeecd3c@citrix.com>
Date: Thu, 12 Mar 2026 12:36:59 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4.1 13/14] x86: Clamp bits in eflags more aggressively
To: Jan Beulich <jbeulich@suse.com>
References: <20260227231636.3955109-14-andrew.cooper3@citrix.com>
 <20260311175838.573925-1-andrew.cooper3@citrix.com>
 <2f006ef9-8a2e-4059-83ed-65dbe50ea9bb@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <2f006ef9-8a2e-4059-83ed-65dbe50ea9bb@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0122.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:9f::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_|CH0PR03MB6097:EE_
X-MS-Office365-Filtering-Correlation-Id: 847e0b8c-1308-412d-b0f3-08de80340fc4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|22082099003|56012099003|18002099003|7053199007;
X-Microsoft-Antispam-Message-Info:
	APs28X/1G6+CZSbuSWtZjtoqYXtcVKOakh3hacbXcWHPjND1clREQ0DK8EifecLZmCVh/XSVOOwef6u42NbHCAQYSLwxcZ+EV10IRk1TZgFlMPIH+LeuzwkZsWsnhUOK8e+KSGfSoERTpWQjeqqxRf4mfVZp5L8rfWcgMRL0/AH7mtfLkwFs+AgprcHJSRLqj+3ZebENgoTePgq0EjUaurOnsU5Y1CAb9qypkDoQY8sn9GTrJJ6TJCUW/fPX8gbZEr+ZT1RIVC073c3PRazr08VFQE18i1Wz9Qt//vSD6PuxOahwnOAKXtsCjgW0SU4tyWZPz0OL2BhSGWP7oUJ854m2RZUFa+COsFDnZAgzlP2DKOaKMLBfVjoslUpMXsmNDubEtT/iro4ahGBkJ0sWjAhBBLlyPsfIKIf9nwnaUF5W4w+EMD5ykkp6cztMOLINGRcYAx2z8pISmm2bZGyezCguN6sfGs3MvLQJJquJ+9BXZwR5jq3tWvUswqEp3Y0XJuJy6uBmO5wy/8ePbzMaFyy3BqztNu7uEhVTYTAtuRN38Ip/zfsMoQRXk0JhuUtzbm6yYtD3cne+dalqL+cwfxpz3grj6ZyiyYOfyu+HRlMKS8KnO21x5rxHA0FJEvYjB5tnt1mpJY+KxnryIczNg2z13zO796Ko7erjyH0Ep71yYrIh6S4UND1Sl9Soxs7NfSCbmZV8QZjRs05pal5wGrpuRiFMAcaXEjYBIq02Uws=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(22082099003)(56012099003)(18002099003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VUdDazczaEZiUGc5ZnpKMlRIdXRhTkVhVVhwNkhjN2xFVEVDOE1aZGl6d0RV?=
 =?utf-8?B?RkJDeGdDQnBwTy8rdEREWnh0RzNOWk1iUzc1YzcrU1hpdXhIZkdGK213aXRH?=
 =?utf-8?B?cWpaMjJkc1AxRjdKdko4ZVVQV3pZS21YYTlJZjQ4V2hGeFVvR1ovb0ZYT0lF?=
 =?utf-8?B?dU1pL0RHdWtSR2hUV0FVZWZrUFc2RFZ6OFZveVNYTzB6UC9GczZhU2t2VFBH?=
 =?utf-8?B?bkZDRVFFRU91eFRIbFN6SndkdFN3Ky9yZDM0RW0vbVpzRE5QTzdqTHllWXBl?=
 =?utf-8?B?VFFOWDI3V1RwUWQyYlExOXlNTFZNUllvbEZpdUphZlhCOEtVdTliM1VEUE5k?=
 =?utf-8?B?cFY2cEhpb25JbFIxKzRVVEpRUk10VVY1NFlDMlJldzhEdG9Pb3lzaFdhMnhK?=
 =?utf-8?B?eUJSR0JrQU1KTGxTZUlJaEE5c3RUSUxDSDZibENlano3RGVtZllNa3lGK1Jv?=
 =?utf-8?B?QVVoVTdHMnVnR2huY0kwSGVHZHFOanorNHBQV3dJb0VnZit0NHdYNlEwcDMr?=
 =?utf-8?B?azNONnJwMjE5ZTRQTlRFTEc4S2M1Lzd3ZXJONWlYMjg4VkZhVGlNRkVXelcx?=
 =?utf-8?B?aGFtV09rTDVNbFhSek1uREhoeXYraVdTcERyVStEdXRKa3VaNFNTanQrcURt?=
 =?utf-8?B?S2FzMkVyWmJ2aG4rQ0l4dTNhQjJFRm04bHRzOHR2bkV6RGFvWE1tazZDYnpT?=
 =?utf-8?B?dGsyTGE5U0ZDVkpOeGNUcjlmNG9Ma3ZjeGIvTUNOSmc0ZzRnMDRzblkrVTh5?=
 =?utf-8?B?UFowa0hicEhRazZjRW01Rm9QZGx5aW8rNUlzeHN1b2dmb2w4LzlXNzFuL3Zo?=
 =?utf-8?B?eTBQZkdjV0ZQY2Zpb2s4WEh6S21wakxFUzFlRE5md2hjZEpET2RRbW1DZlh6?=
 =?utf-8?B?elIxQ3FTRVB1NmdsQzQ3ekY5cnJ4THlrY013MWxKbHJHU1pyNzFHRjd6eEdx?=
 =?utf-8?B?Q2F3dzBjR0tCSldsVHhnT1B1ZEx4dWVlZE93K01heTI2QUFoQitQTVBJS3JL?=
 =?utf-8?B?bVVZRTdxN1NMOENLUkowYXl2MWlOZjZwL3FFb0lMZUZNWGQzOTcwdTNaNWpz?=
 =?utf-8?B?TmhoM3RXdTBGNHRjdzY2Y0hObmZEVW5jWXRscjUxNDVxYU85eXJUT3VpTXR1?=
 =?utf-8?B?NDdVWFFtSU5NeFphZzEwZE1yc1AxSzZ4UFF6cVJjQzFja0hhKytvbk1kR1ZL?=
 =?utf-8?B?QXlySExKV3VjMjhNT0xQVGR1bW1nSVE1NmhidWlLaTVLa0dHam1xcGVMbGNo?=
 =?utf-8?B?dEVuSmlvcmdYRWl3VDNKNzJlUFlxNkx0SHhQM2hiaUU3dmMvRXJjenBHekpq?=
 =?utf-8?B?TTZzZ21LV0xKcVdhcW42NmFMRW1qTnVGY1dXNUorZlc4aUxMN3ZFL2J3N0t3?=
 =?utf-8?B?a1d4dU8zNi95ckxDbkgzM2pPdWdFK2VRcVhmSDlRa3FEUjhEaVFnakZLbVdt?=
 =?utf-8?B?OG1WcHpRVzFsUlJaRnhSclpWUzZKVDNDVmRNSWd6QUdCQ3hsTTZBbTN3YkRR?=
 =?utf-8?B?RWpmM0RDT2Jqc2xvY3h5WlplKzYvZGJBWE5qblV6NG5OdVd6S0dtKzFxc3oy?=
 =?utf-8?B?QkF5SVd0Rnoxd2gwRCtSaURKUTNNK01ZLys5eU5Vc3dNY3RRVXAzUTdZUHo3?=
 =?utf-8?B?ZXpQZ3FjZGJoeWJRemlidHRpMFc3OVpNcTMreUhSaWpqbE0yamRuTWlFR1ox?=
 =?utf-8?B?bFB1WjZScldzS3ZEMWZOWThQTWVVak5OUCtvU2xGZGpua0JNdWlyVjJxR2dY?=
 =?utf-8?B?UUZra2JBQWV6UlJIZlIyZGpDbUw3cm51SDh5ZVRwSDlCQ0RVMEs3OWNTUHVB?=
 =?utf-8?B?dzA1ZC9zcHdOdXNYS2lnQS9BeFBSVWs0Y1A5a2ZaYmFWYkF3TGpCU01kTTht?=
 =?utf-8?B?K1VramxoL09TTENzMnZicDFmdU1YdTIwT2YzMkVxUHJTdFkzYWtGZTI1dExW?=
 =?utf-8?B?cTl2OUVnRkdISUpDRVVtaGk0aElrcjNGcE5iQWtUWVRHUm9hSGllMUkxMWxy?=
 =?utf-8?B?UEdsVGx4SXk0ZW50Uk9xTUd0VnFMZkFSZFR1aTkrOXpIQlI4a1F0MFBZM0hZ?=
 =?utf-8?B?di9LRlgyS3ozQmxWSWtRcGd0NFN6YkpHWHorZDJZV3ZuOEZKa3FIb1E1Vmps?=
 =?utf-8?B?YjVaRUdKRzdmWlF3UEZwSkd5dU9kL29lL2dTTUE3L1BVa1RidG9UcFBXNmMr?=
 =?utf-8?B?N3UrMFhRSDJ6KzJCMHYrM2RjaEhVdVBiazczOWxUWTFmdUNIWmVQYzBoWUxa?=
 =?utf-8?B?OUlKMDBSbGNDanFYcmN2WFczOVp6L01Sa0VKWWx3RzBLbkF2MkZHR3hSU2VV?=
 =?utf-8?B?UWpXdnBpZUc2eWdnZkgyU1I1YXpjdlRWTVNRSG5waUpXMFZQeU9ZZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 847e0b8c-1308-412d-b0f3-08de80340fc4
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 12:37:02.5255
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: mRl9LArgUs5BoD8eBo3M275pkRXn1Q+Y0e3npfL2JEM5VmKLDZpi5QseT8M6+SWcwzPU2C4rRkkqtI7ZTCodBYB6GECUCLxxk8PC2G+BI0k=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR03MB6097

On 12/03/2026 8:15 am, Jan Beulich wrote:
> On 11.03.2026 18:58, Andrew Cooper wrote:
>> In FRED mode, ERET is stricter than IRET about flags.  Notably this means:
>>
>>  * The vm86 bit (bit 17) and IOPL (bits 12,13) must be clear.
>>  * The sticky-1 reserved bit (bit 2) must be set, so dom0_construct() needs to
>>    set X86_EFLAGS_MBS in order for a PV dom0 to start.
>>  * All other reserved bits must be clear.
>>
>> Xen has been overly lax with reserved bit handling.  Adjust
>> arch_set_info_guest*() and hypercall_iret() which consume flags to clamp the
>> reserved bits for all guest types.
>>
>> This is a minor ABI change, but by the same argument as commit
>> 9f892f84c279 ("x86/domctl: Stop using XLAT_cpu_user_regs()"); the reserved
>> bits would get clamped like this naturally by hardware when the vCPU is run.
>>
>> The handling of vm86 is also different.  Guests under 32bit Xen really could
>> use vm86 mode, but Long Mode disallows vm86 mode and IRET simply ignores the
>> bit.  Xen's behaviour for a PV32 guest trying to use vm86 mode under a 64bit
>> Xen is to arrange to deliver #GP at the target of the IRET, rather than to
>> fail the IRET itself.
>>
>> However there's no filter filtering in arch_set_info_guest() itself, and it
> Nit: Excess "filter"?

Yes.  I noticed that immediately after sending.

>
>> can't arrange to queue a #GP at the target, so do the next best thing and fail
>> the hypercall.  This is not expected to create an issue for PV guests, as the
>> result of such an arch_set_info_guest() previously would be to run supposedly
>> Real Mode code as Protected Mode code.
>>
>> This allows PV guests to start when Xen is using FRED mode.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

>
> Nevertheless, a largely unrelated remark and two suggestions:
>
>> --- a/xen/arch/x86/domain.c
>> +++ b/xen/arch/x86/domain.c
>> @@ -1193,6 +1193,14 @@ int arch_set_info_guest(
>>  
>>              if ( !__addr_ok(c.nat->ldt_base) )
>>                  return -EINVAL;
> Seeing this still in context: I had some trouble locating the position where
> you're making the change, as in my local tree this is long gone. Is there
> any chance we could make progress on "x86/PV: consolidate LDT checks" [1]?

I'll have another look, but this patch is going to need to go in first
as it needs backporting to 4.21.

>
>> +
>> +            /*
>> +             * IRET in Long Mode discards EFLAGS.VM, but in FRED mode ERET
>> +             * cares that it is zero.
>> +             *
>> +             * Guests can't see FRED, so emulate IRET behaviour.
>> +             */
>> +            c.nat->user_regs.rflags &= ~X86_EFLAGS_VM;
>>          }
>>  #ifdef CONFIG_COMPAT
>>          else
>> @@ -1205,6 +1213,18 @@ int arch_set_info_guest(
>>  
>>              for ( i = 0; i < ARRAY_SIZE(c.cmp->trap_ctxt); i++ )
>>                  fixup_guest_code_selector(d, c.cmp->trap_ctxt[i].cs);
>> +
>> +            /*
>> +             * Under 32bit Xen, PV guests could really use vm86 mode.  Under
>> +             * 64bit Xen, vm86 mode can't be entered even by PV32 guests.
>> +             *
>> +             * For backwards compatibility, compat HYPERCALL_iret will arrange
>> +             * to deliver #GP at the target of the IRET rather than to fail
>> +             * the IRET itself, but we can't arrange for the same behaviour
>> +             * here.  Reject the hypercall as the next best option.
>> +             */
>> +            if ( c.cmp->user_regs.eflags & X86_EFLAGS_VM )
>> +                return -EINVAL;
> Technically we could support VM86 mode, by fully emulating things. Hence I
> think -EOPNOTSUPP would be more appropriate.

Sorry, but I think you're rather too late on that suggestion.  Anyone
wanting vm86 mode can use a VM.

>
>>          }
>>  #endif
> Having all of the EFLAGS handling together would be nice. IOPL and IF handling
> sit further down. Could I talk you into moving these additions down there?

No, but not for ...

>  Yes,
> there are downsides to that: It looks to need another "compat" conditional, and
> it would further the mix of state updates and error checks. Yet I still think
> having all of the EFLAGS stuff together is a benefit.

... these reasons.  The later position is after the point at which it's
buggy to fail the hypercall, because we've already reset the FPU amongst
other things.

This is a dire function in need of a lot of work.  I'm just leaving it
no more broken than it was before.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 12:59:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 12:59:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252345.1549054 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0fdd-0004u4-Bg; Thu, 12 Mar 2026 12:59:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252345.1549054; Thu, 12 Mar 2026 12: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 1w0fdd-0004tx-93; Thu, 12 Mar 2026 12:59:41 +0000
Received: by outflank-mailman (input) for mailman id 1252345;
 Thu, 12 Mar 2026 12:59: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=cgz6=BM=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w0fdb-0004tr-6k
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 12:59:39 +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 4f973188-1e13-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 13:59:32 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 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.9678.18; Thu, 12 Mar
 2026 12:59:29 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9700.013; Thu, 12 Mar 2026
 12: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: 4f973188-1e13-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ui/r7KAV0bJimRvOKe2bptgvFVD74cHVooVjhgO3RmNWfgf7iOoqd/9/TkIaObsaYROtO8bK9q70Ad5qBda+wNg75irsbYrm6g6vQB5lV8zMOet7dw0S3Wh0U+RokgeEXwA5mihMvF5j/6++3ayBxF+Njza1+OzwAA16CUoKLeLbnqSUbAjbyk9nnMDUgyqkSJZx7C3cg9jihexlvSJVgb42/N2m95OqcXaVQwb3IyDKdY2mxkanBJHgp6GbsqmwUFRSeYLpTp0L6r9xorhFx5WKYpWF+K6l3ETSzXp5eYEkhdpR5z3J07Q8aFOJDprOhRZwNNEfBbYJntd07I+Wqw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WgODJQE2Bwj62C4efX2kvKSLrbTEHqlnrk1Ui65l+gE=;
 b=GQPypfFubIYMAMZqI/nGxHbCFGjC4Ta66jzVfuqrc4YUCgZdobmERevEw0JCVoZ4DntjZ0U8yno5snKg/FlnsFa6MlsS4fRJrSR+C1V3Kw7Jj9GBi2GqUXFRYQoMfSOh405R6pZ7X9HnEFUj4uccLagGb+TtXYPcPxKqxMr0pk1QAEjFQxc97sREVwjvuJbgX9rcoXnsV3Hm+8h5FUNnCiPicVD4+39x1XuPIVULd31YTVbShTNAh+Gu+NKIDIQvoDcneaenzQhOLawVMetN1isjIGMiUg4n3/nTeJfJWZgGfyWQHkg/Q43fcVlBbwxu7pUGgAfGeyGzp+DlKxYvkw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WgODJQE2Bwj62C4efX2kvKSLrbTEHqlnrk1Ui65l+gE=;
 b=yHCegsqLDCGgix4H3tD3DsfZgtGLkLCnQYylKDeaw9WnWwyUvb6NvqHVfW0DiJrQARL+h+R8h6ECVZxgF2VqjXITahdinCc6LTbMz8lv+SulIKxMMXlLF30iXjqLN9LGTUesQyZCIHaYjv/VFcVZ7DCm4kHBs3fZmSfLbr6ohr0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <9e9b4a3c-1ccf-41f2-a846-ce855a64f726@citrix.com>
Date: Thu, 12 Mar 2026 12:59:26 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 2/4] docs: add man page for xenstore-list
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <20260312122240.2784725-1-jgross@suse.com>
 <20260312122240.2784725-3-jgross@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260312122240.2784725-3-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0242.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a7::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_|IA3PR03MB8454:EE_
X-MS-Office365-Filtering-Correlation-Id: d6a69eff-1e67-4d84-2619-08de8037325f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|56012099003|22082099003|18002099003|7053199007;
X-Microsoft-Antispam-Message-Info:
	mp2jx+RM/3KfZgqW4794dKxa4nJwwgLG7s6FB+I8CSmg80gMaXIpbCv/w+pGgWJlOF4d205qja40rXIgtr0Gb6Qh6VbqOELcm+msZJsaY5Ufr87GZzyKxHxuogKkyUM2uQgY8eATt+vX16e8vTMzOpfV4NskF1AHK659S6jrZXH4CTC0ry2rPzQT+u1KXoIs8HaL4cYFDqrpOtu17wMDzw9VuOePLecB1CEQC1Nr2cKHQ+Lb5BN5AtjrZp1O4Xi+W7g/CtT3JdhDEjqRZb7RZEpJvnkL3GU9JSnao4eH1t+l4UDWMtzltaXOp46qDLIhu9wVlfiWi6sDH5s00sK7MzrMaCBEHpGwkQJQTCYc7QqsLbuHvNuTxEcY1WUPApVk2CyRw2d0G3mv2ibSZM2RMNeTdq8jhdfEiTsITm99wKRIqmsDao5SaB/DfcQ1NI/7i5iF3fha5Te9DW2rBckg2mEbQDUN9DmbdcKcFzzhtla9Xngrfg0FyKEZvalvqnvekctYsCw5zYy/R2igQH5YyUMUqdWVuD9B/D+gtClNOOgXOqu5QMTfkfmcWAySTU2L3XmtQxUSfyzsPw1RduNHVhVTaeUwbE3ZnBpqHVzAQyfG69MgjYf4j2Q6+ydkQyGDil7WDu9ZRp0b2Gh0Rgr0O01EsrkotLcn/6/N3YPEJuayyhLpXXr2UrTVa+W5wlY6Q/m+9Kz0lmUpabjLyy4hVsrH28XV29iohPMYhuSFFmz+qg7ZAdXuWZU/bDWoCao2
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(56012099003)(22082099003)(18002099003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?di9yV0xFV2l1cExTMTBSOWM3aTJHcFpqcDJGK1NJRk9FNk9RWGhENjBWQTFr?=
 =?utf-8?B?c2UvNTVFVlkrUnozM2FhQ0JiM0Vxd3JnUHJmTTdmMTlUQUtkOXowSmVoMC9N?=
 =?utf-8?B?TkhnT0kvOSs5SmZ6UTRCYWltYWp0QlB4cGhSVTByeTc0QzdyczRlcmVlcUJZ?=
 =?utf-8?B?M1Z3Z29DZ3RWZW1YdGlWcW1VdVVOUVVsTGJsYWdlR3ZTSVdNMUdZUk1EVElU?=
 =?utf-8?B?M0RBSG56ZEVlVlhGSjMwNHFEQ0hRdDAycVpOQjdSbjlKMnVidC81bmFlQkpI?=
 =?utf-8?B?WFhZU3YyTytJV1piVWg4TmFJVDZFNkdJTU0ycUFBckJaZmNrdlplMFFlYzNW?=
 =?utf-8?B?cnRpekpXa0IrNTYyRGd2Q3NCSzUrenNBZFducmc2S3d0eWRDMDlJN05wUUhZ?=
 =?utf-8?B?cnNYRXk1MGcyRldjRnoxWS9ZSXNuUHZBY3lYMlNLalRic040RHlGNmF0UU9F?=
 =?utf-8?B?ZlFCczZTb0d6cnNxVEhYTWU5ZlBDdUxBakpwQ0Z2MGhqbHZMWmJtU1lkUGRv?=
 =?utf-8?B?V01Dc0ZUK05wN0JOOXFZNGlaWmpCUENReXNCSFFoakFUMU43V2llaW9EY2NC?=
 =?utf-8?B?RDNvMFNaK0kwQkZUaU1kdzloWXIrc2pzWHFLMytmU3VLdWdKb2hsTUJ4Mk1T?=
 =?utf-8?B?T3FsNHUyMmltM01OL2NKSS9kelhJakIxeko0amk4d2NJSFhZRk9WZkl2Y1Bx?=
 =?utf-8?B?c0plelpIbjhNYnpKYktTTlRQUjhDNjB6NWh5VGhRWGZieStLNFN2VUtaSWxF?=
 =?utf-8?B?MEU5MVpLWVFrZUNTYmhKWUlLOVlLOGtqRjAycWh3cDJjWWFrM3pFVjdFenhZ?=
 =?utf-8?B?bERlWXRJM0Q3SEo5cVhMTUw4RjI1ZU1Nb1gxY2JzMWhVQ1FJUXlDSVZMd1oy?=
 =?utf-8?B?MFEzSUxKd0hzdDlTci9POHhOMS9WUnN0Q0E1UERkb1pEeXFaTCsrVDM0NWdL?=
 =?utf-8?B?WU5EaUI2SWFwY3lmTnk0bVBkb0VFRlo3K2JaaTRyN2FJWktBK2QvSjlualJm?=
 =?utf-8?B?RExDYVlFSkJkQjdmTHFmZVJaOEpuZ2toRHBGRWVCU2Qvc3Roc29DRm8zdGFh?=
 =?utf-8?B?TDBRd0xhSU5Tdjg0N3hwMEFYeHNDc1RhQThPcVNwc0pKT1ZBeDJNOXJzMzhz?=
 =?utf-8?B?MmpMNHZXdUdYMHhodG1lbHJzazZJUmlqdUV3eGVjWmlxaXlkL1FnTWN2ZVlj?=
 =?utf-8?B?Q1BFWkFvOXFQMGRLV1hvdzZkamFZS1NWYmZGeHp6ZWRuQ1oyTG42TDdmMGw4?=
 =?utf-8?B?SjFVSXA0RFdTNHc4emtPMWpvcEZYVGpZNWhJOWJVTXBlSWJ6Q25KWTh4ZWpI?=
 =?utf-8?B?OFIrdkUwdGtlYmNMZjdPT3BGYitNclVuZDVObXJVbEtLc1U2MkJNTWhRSjQ0?=
 =?utf-8?B?dkwxWThzd1lHVGpueWc3dHZIR0k1emQ5M1ZSTHJZdHVMNldxTGE4S3grYUp6?=
 =?utf-8?B?dkhsS1lQbXdHdFNpSmdKZEpVVWw2cXIvR2EvbFh2ZGFkUTZ6bHBxTlBIc3hU?=
 =?utf-8?B?djE1eExrQXBHcEJhc2dGTGFaSVRHbW5ObmxuQVRXaHdnT1dzNVJGNUlLZGdX?=
 =?utf-8?B?MXFSVmJiTDFGamFpd0tZQ1B3eWRjaUVDUjNTN25QYUY2cVBURXlwM2syd2Np?=
 =?utf-8?B?WjZNbisxOS9BVWtkS0swd3JmaHRialdaMUgvZlM0VWI4TE5EQ3FYYkxLOE0v?=
 =?utf-8?B?dHNZa0M3UCswZkxyWGhKRThvd3V5N0VJajd0YVdzZmF4alNkdEpQdm1aa2lp?=
 =?utf-8?B?UEpFblpCcVM2M200dFJPbUUxRUVETXVRU1ozTzBCVUgwNzB0VmJtODB3TEhB?=
 =?utf-8?B?NlYxTFBwMWhWazNObWZDVysvV3djZ2Z1aU9ORTZPamlGeWxzdy96bDlBRjZN?=
 =?utf-8?B?YkxLbTQxNG0zN2xHZDRvZUVUcytRQXNVNFM1UWdmUGxwUStSbWgxRTRtRmQz?=
 =?utf-8?B?OEp4V0kxRDRPVlhZaER3RGFhaGVkNXlUWWNGeDczT1kyb3BuRG85UERUbkdn?=
 =?utf-8?B?QUcvT1MrSFpvanJJdkhFZEhwRTEzK2hEdUJ2bFBWRUd6dmY1NVJkOGRWUUI4?=
 =?utf-8?B?bVZjRDUyTEwxMmdUS2xyWmxxTHNrSXBpb29TbVRzVjNTdmI1UENZVkxEUXVz?=
 =?utf-8?B?N056cTNoN1hjNE5FWjhsd2xPWTFsT0pmL0pxNTRZcHdvZS9laEdkVlBRdWVX?=
 =?utf-8?B?NVMvN2FTU0FxTWpyaldoWVlYZ090a0Z1K0JENUVOK2Vkb2tsM1Z0RjBENWxC?=
 =?utf-8?B?djZ4aUpRRjI5bFhTUjI1SWowcm0wTktxRkpIN3N5ZUovemF4ZmZqcG41Tm9L?=
 =?utf-8?B?elE5bFBoRWxaa2tWRy9ITDFPN29FQ1ZBQk85UFlleXV4VWFoY2krZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d6a69eff-1e67-4d84-2619-08de8037325f
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 12:59:29.1747
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: SvnIgGK5wGaIYdUsCN6he1/mtW8PldTR9tGApUZ19ytSUSv0nSoHco8PfpZffJMO0f9Ri1QDOpNKlwZn1hoN6rrxkEkvFrHqIOAfa9gGhIg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR03MB8454

On 12/03/2026 12:22 pm, Juergen Gross wrote:
> There is no man page for xenstore-list, add it.
>
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>  docs/man/xenstore-list.1.pod | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
>  create mode 100644 docs/man/xenstore-list.1.pod
>
> diff --git a/docs/man/xenstore-list.1.pod b/docs/man/xenstore-list.1.pod
> new file mode 100644
> index 0000000000..4bc1ff9846
> --- /dev/null
> +++ b/docs/man/xenstore-list.1.pod
> @@ -0,0 +1,24 @@
> +=head1 NAME
> +
> +xenstore-list - list Xenstore key children
> +
> +=head1 SYNOPSIS
> +
> +B<xenstore-list> [I<OPTION>]... [I<PATH>]...
> +
> +=head1 DESCRIPTION
> +
> +List direct children of one or more Xenstore I<PATH>s, one child per line.
> +
> +=over
> +
> +=item B<-p>
> +
> +List the full Xenstore path of each listed path.
> +
> +=back
> +
> +=head1 BUGS
> +
> +Send bugs to xen-devel@lists.xenproject.org, see
> +https://wiki.xenproject.org/wiki/Reporting_Bugs_against_Xen_Project on how to send bug reports.

I had no idea we even had this...  Why on earth do we have both
xenstore-ls and xenstore-list, and for them to be different?

Even for the options; xenstore-ls uses -f for full path and -p for
permissions.


Having both is gross error on behalf of whomever accepted the code in
the first place.  It's a bad enough usability problem that I think we
should seriously consider deleting the binary rather than allowing
accepting it's existance.

But as I expect that to be controversial, at a minimum both of the
manpages need some kind of "do not confuse $THIS with $OTHER" warning.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 13:11:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 13:11:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252357.1549065 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0fot-0007Yo-Br; Thu, 12 Mar 2026 13:11:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252357.1549065; Thu, 12 Mar 2026 13: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 1w0fot-0007Yh-80; Thu, 12 Mar 2026 13:11:19 +0000
Received: by outflank-mailman (input) for mailman id 1252357;
 Thu, 12 Mar 2026 13: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=QGPq=BM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0fos-0007Yb-36
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 13:11:18 +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 f30d6d02-1e14-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 14:11:15 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-662abedbeb7so1527296a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 06:11:15 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b972de0be28sm124936866b.2.2026.03.12.06.11.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 06:11:14 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f30d6d02-1e14-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773321075; x=1773925875; 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=tIzH29nIfpfJjU5VABVztv25nHjzZ9uRbtu8g+T+bks=;
        b=GfI3RFZE1WLZeuekyYaAdl/+VmwWjD0pX4pl2CzS5pUkDVzQwi9GpoB69a8533g9tN
         Jftjbh7UIFj4E9OMw0zxDFjfRg5bDZ6NP4xGKVAn4nsq3M1DR7KE1vwMuQaC9DQpoAdV
         vv6oh1m3ZmgvNnuUBdkuzOap8aAtTmcDucc59NQ9BbsQQu/yDCRdg99R5jbMylyfY39j
         qPYrbP+VQXwKnn9KwXYlyFCkGhLGGWAEFsaTojK+EhryUACmYBqWSKGWNOl1TEkwCEjf
         GjxAUZu6zchXJWH39K1LOJ6egMqsKIXMdfiHr4ATsdVaq3c/QfIoxh9P6O4aKDa7CFl8
         AC7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773321075; x=1773925875;
        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=tIzH29nIfpfJjU5VABVztv25nHjzZ9uRbtu8g+T+bks=;
        b=n6V3O1ZFcjtNkuWduTbx4FOuOOsYCtX6uQiU2/sAM3q6SKZ8KRacW7C7Cq/EFsoxpR
         pHhN068oKgnCO2s9oI5x2G5p5s4m/LrVxBNlfdZmP3i/y5sH+bnOGk98mE/fs91zyOVr
         Ybk1JG27duJTXvhoBCJnCJxJ1xHWGX4rjpCGrH07CVvNZKiwpvnZR76T0xhXK3pAKdFl
         Jt5/7awt1c+0QXf2jRryFjPfJdjwMZCNJcn/1IWMADTUqsLLDx1qHCrV0zOWZnaxkudw
         7Q4XhurJs3sYAI6jj96Eh/hxzk+9yCdy1jYvTsvAmpnWztDGeIDKu6qlVg+mOyqkCBx2
         Gywg==
X-Forwarded-Encrypted: i=1; AJvYcCVEL4NYPF7/SjrlkotR/QN/s4zyFD7ntGrKqimfh0l/8aj7U5vQ40VCxvVLTsZ6ETLwH9wMcQurXQA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyVCKGxXOp405+Fl84/1SMKVUne9/TfwuBn6veVpyg72dbYy6A0
	co8uynsasXhdRfgW4zEJ44aW32+kIpTrSvlI7rm3ze+mouaVe8uMVUmIL670w1OUEUI=
X-Gm-Gg: ATEYQzy0gFgJIYzT/9XtP4VGxX3kAdgdKGyYHqiGzml0F4Y4StOVyyUpF8rXzmB+s05
	/pW7KkFJIXgFM5VMnE6bNpcOoCR2Hziw7Ak9HykLUBwsM1ozRNIKpxN9HC3ytgXf+9gHbiyvjUU
	lF8R3z8s8hanLDElN9k+Y949eVb9KI0FkulDc5QKTPh7IH5F5VPihv+PjU/xNQlajh+2ES8Qvf/
	uNkH7Wu/R0n8YTULksjOVhfdf8gZPZh/rUV96tZIEn7mTH4iIb+szgs8BGAJuiHkyzk6c2eWV6Q
	lQV4Ad1BdKQpZv0frf3R5389yNlJEcBZD8MYiaTcd5s8eLbO3tWILBWM5WmTrzBeqeHwLzs9qx1
	qt8J8fBZf5nyZp62S5aj+K0xJAfiLe7lQ+jYsrMAOeo0QVEdySMBBzmuY6QgQ14IPHio4vRVw9H
	a6LpZeStqZbhHKeILvLO6Vj7zM6eEY1kgamhchtFeD1Ld30p9m8k5/tLAI0wOcj5+hbgAKl3Oqy
	PSteWI6CpnNmErOGt3Pu3JNzBQcZyVbYkC5kVyGQPyv1Q+2TROs1A==
X-Received: by 2002:a17:907:3f24:b0:b94:cfd:f37b with SMTP id a640c23a62f3a-b972e531cf1mr339412066b.45.1773321074479;
        Thu, 12 Mar 2026 06:11:14 -0700 (PDT)
Message-ID: <7040a30b-4a20-4542-9ae0-3a4a30e82455@suse.com>
Date: Thu, 12 Mar 2026 14:11:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/4] docs: add man page for xenstore-exists
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <20260312122240.2784725-1-jgross@suse.com>
 <20260312122240.2784725-2-jgross@suse.com>
 <9e209a46-0896-4ebe-a366-4638b562778f@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: <9e209a46-0896-4ebe-a366-4638b562778f@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------t0a8Oo01OuQks3gm0tUAxfMn"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------t0a8Oo01OuQks3gm0tUAxfMn
Content-Type: multipart/mixed; boundary="------------AvJDn0pdVPgFx9DWZfPZqXxH";
 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: <7040a30b-4a20-4542-9ae0-3a4a30e82455@suse.com>
Subject: Re: [PATCH 1/4] docs: add man page for xenstore-exists
References: <20260312122240.2784725-1-jgross@suse.com>
 <20260312122240.2784725-2-jgross@suse.com>
 <9e209a46-0896-4ebe-a366-4638b562778f@citrix.com>
In-Reply-To: <9e209a46-0896-4ebe-a366-4638b562778f@citrix.com>

--------------AvJDn0pdVPgFx9DWZfPZqXxH
Content-Type: multipart/mixed; boundary="------------P2YbY9D1M1yuHqe0e1AlBbYh"

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

T24gMTIuMDMuMjYgMTM6MzEsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDEyLzAzLzIw
MjYgMTI6MjIgcG0sIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBUaGVyZSBpcyBubyBtYW4g
cGFnZSBmb3IgeGVuc3RvcmUtZXhpc3RzLCBhZGQgaXQuDQo+Pg0KPj4gU2lnbmVkLW9mZi1i
eTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPg0KPj4gLS0tDQo+PiAgIGRvY3Mv
bWFuL3hlbnN0b3JlLWV4aXN0cy4xLnBvZCB8IDE3ICsrKysrKysrKysrKysrKysrDQo+PiAg
IDEgZmlsZSBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspDQo+PiAgIGNyZWF0ZSBtb2RlIDEw
MDY0NCBkb2NzL21hbi94ZW5zdG9yZS1leGlzdHMuMS5wb2QNCj4+DQo+PiBkaWZmIC0tZ2l0
IGEvZG9jcy9tYW4veGVuc3RvcmUtZXhpc3RzLjEucG9kIGIvZG9jcy9tYW4veGVuc3RvcmUt
ZXhpc3RzLjEucG9kDQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gaW5kZXggMDAwMDAw
MDAwMC4uYzRkOWVlZWNhZg0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIvZG9jcy9tYW4v
eGVuc3RvcmUtZXhpc3RzLjEucG9kDQo+PiBAQCAtMCwwICsxLDE3IEBADQo+PiArPWhlYWQx
IE5BTUUNCj4+ICsNCj4+ICt4ZW5zdG9yZS1leGlzdHMgLSB0ZXN0IFhlbnN0b3JlIGtleSB0
byBleGlzdA0KPiANCj4gVGhpcyBpcyBhd2t3YXJkIGdyYW1tYXIuDQo+IA0KPiBJIHN1Z2dl
c3QgInRlc3Qgd2hldGhlciBhIFhlbnN0b3JlIGtleSBleGlzdHMiDQoNCkZpbmUgd2l0aCBt
ZS4NCg0KDQpKdWVyZ2VuDQo=
--------------P2YbY9D1M1yuHqe0e1AlBbYh
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-----

--------------P2YbY9D1M1yuHqe0e1AlBbYh--

--------------AvJDn0pdVPgFx9DWZfPZqXxH--

--------------t0a8Oo01OuQks3gm0tUAxfMn
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/Ey8FAmmyu3EFAwAAAAAACgkQsN6d1ii/Ey9c
hQf/Y39Md8wPhBkWSc8rNRnHENIq6XZb9T1ZWO9DVuhSC8T+qOOo9XdeO/vjeBNJUXN/1At1YJMN
71iCzAKKoAGwuQJgiAZoiPiLu5IxG1RemYvg2qvIeD/1B4asB6kuiGH3R/0RJH9dArL6yeGzM4CW
GDfUWOFNOwDBtgSPYyZHPRDPWLFf0NQo8sf/t52bX1MmVGU4ZZjRLQ7UCoZR0e1ryvsHkwmyLmz+
Wya5jFaAPVsbnnOGUbY1URNGYHLQmnri2qHtuCjE7PBK+EpoGlzZNn5Tjgs7nbSEwBejITdnnjdI
N5zfLaUAz9jAY174oMoUp+Ey0DAeIKwvYLGDEFftDA==
=l8HJ
-----END PGP SIGNATURE-----

--------------t0a8Oo01OuQks3gm0tUAxfMn--


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 13:16:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 13:16:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252369.1549073 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0ftn-0008AY-0s; Thu, 12 Mar 2026 13:16:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252369.1549073; Thu, 12 Mar 2026 13:16:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0ftm-0008AR-UH; Thu, 12 Mar 2026 13:16:22 +0000
Received: by outflank-mailman (input) for mailman id 1252369;
 Thu, 12 Mar 2026 13:16: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=QGPq=BM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0ftl-0008AL-7E
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 13:16:21 +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 a89467f4-1e15-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 14:16:19 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-6638ce09a31so837385a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 06:16:19 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b972e14dc3asm134768266b.39.2026.03.12.06.16.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 06:16:18 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a89467f4-1e15-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773321379; x=1773926179; 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=3uwHSAWv6v00M47Dk0NabAzM+7r9zNBmpu0MGE9Jeio=;
        b=gpTuYanlnpp9uwoUFYNkg7VYLjib9f5ZEleu4UidFkuCwxO5ZW07KXAU3AcYoOeABR
         A4rIpYdHM7z8w0idHCLx4IPqQ5P2Zr7kWuJqgJOfv9R1dOtEJ3+z0bhJ0YoXRxFp9nSB
         n1rDo6itiVm4Nc52/QkpSzBRJ/NUHlRFQEf4EmpalQK7qw0j6nDDGzlej6sYoAATmHPM
         YWQGLCCd38JHsaMTJq7DRwh2Fz5+rrBUeMGI7uVxb66Qf3tDMTbL+542Bn4tlU2bs2aa
         cGfUGCM3KfGSSeKow6HtfmO1cP+8YBxrkSIHetZGiYVLiCZvQQDB5XF7qMLPUBuVaUZL
         2Itw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773321379; x=1773926179;
        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=3uwHSAWv6v00M47Dk0NabAzM+7r9zNBmpu0MGE9Jeio=;
        b=dzJzuB25i4NWUcXjOJAk/V2l7EunIf9HDlUI/Nrbx4yVxNEGK4mqNH5xMlu9q3vXpy
         xLMwEn45KcToyv8+ddDc8fIzirL5tMAakS/KhXSzdIxXPVGHhqIFleRBbB3D6WUP1Ad5
         dKfckVsEgWK702A7RaO6qTuLtNQlaVBA+2Wa9iA/6JvcXQuSIbCgrED6746F+jmuJMLH
         mdlQMgeZ6IF29I9J2Dm0DKqqdQA9JNVZqQfjVRej9ApcYzPSBS3YIKQQg2ZNSSEH/D4U
         gGlSAtxKVTkwCY8pxrhKZ9Kr5azBWSM1Kk2NQmf284Jl+IeGP82usKYdKgjEpMw/vEgs
         vIqg==
X-Forwarded-Encrypted: i=1; AJvYcCVvvKdlR3PRutjMCmqsyS07IHv3rsvYVSeeOMiqd6PmtFQKEoNnvm59pdM8MiBdfnioxBSXawlXbSk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzusZsa1yJ4jk2xJI3svD0a130z1d+aiJc2ITnK909tYwtoLvn9
	vAC05gBQywhn9fv/bJjbwumXXoKuuXNhK0o5LjTawMzIPdI5G6cEWUmBJhGS1ARlvQAcF1W44Fn
	JJssI
X-Gm-Gg: ATEYQzxi2WPLcmvDilqxu/zLL9q1hXm6rGt3l9xaBIWunl7yYapH4HNlNbB2CEyI9wI
	XIuCmqh179QydrW1nPtJOm06+BXju8l188Drx69yS49SJsYZUwJihYPAxDItB8Gf0eabBjmgH+f
	/yXCoe9sMI92884p813EXaptDxYM3A2RJJ+ng/ZG7MS/yRBxVhEzHZsTN5gHN5MuC+wb2ZoQI86
	4hXi2Csl+bX6BVUqvWw8BoSnvdKX5tWBAra4jKgyaDRBjp3eiY2ifiKcuSpRF/VZKgBL8w4Shd8
	6vIzTA7Fw8/uEFiQVSqHCsjgkR/gbNa2GF0O+29h8/T7pnur1zR0784yyy3IoX+2zIiN1afTIRb
	mC4UkOYL9bo40bjplu7PcpC15MnqBAEnNTksiKO+fyCcFXZyxvNSki3GUaPiIhoNMraK8sbJxNQ
	wQRnt0WbTeH1yeWjTRE2lnQwlbL4wDZmxovkgwsC2YCwaoJBIsMem63nc7Lf38UqLTTn5QNaR/R
	LVndPdO+y248DwzWP6zoh/fUNTgSq+ohM4KEnNtlwVvn2kigKaRDw==
X-Received: by 2002:a17:907:f815:b0:b94:3836:1672 with SMTP id a640c23a62f3a-b972e2c23acmr383012466b.37.1773321379026;
        Thu, 12 Mar 2026 06:16:19 -0700 (PDT)
Message-ID: <33b5fe0f-d3d0-4823-8a3a-8414365360a7@suse.com>
Date: Thu, 12 Mar 2026 14:16:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/4] docs: add man page for xenstore-list
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <20260312122240.2784725-1-jgross@suse.com>
 <20260312122240.2784725-3-jgross@suse.com>
 <9e9b4a3c-1ccf-41f2-a846-ce855a64f726@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: <9e9b4a3c-1ccf-41f2-a846-ce855a64f726@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------IRCvABarFFOIaAwwhrwydgH5"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------IRCvABarFFOIaAwwhrwydgH5
Content-Type: multipart/mixed; boundary="------------DwR84ipFeU0iF7zgyWbaFZTd";
 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: <33b5fe0f-d3d0-4823-8a3a-8414365360a7@suse.com>
Subject: Re: [PATCH 2/4] docs: add man page for xenstore-list
References: <20260312122240.2784725-1-jgross@suse.com>
 <20260312122240.2784725-3-jgross@suse.com>
 <9e9b4a3c-1ccf-41f2-a846-ce855a64f726@citrix.com>
In-Reply-To: <9e9b4a3c-1ccf-41f2-a846-ce855a64f726@citrix.com>

--------------DwR84ipFeU0iF7zgyWbaFZTd
Content-Type: multipart/mixed; boundary="------------vP0He5e0E20IM0eylkQpww4L"

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

T24gMTIuMDMuMjYgMTM6NTksIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDEyLzAzLzIw
MjYgMTI6MjIgcG0sIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBUaGVyZSBpcyBubyBtYW4g
cGFnZSBmb3IgeGVuc3RvcmUtbGlzdCwgYWRkIGl0Lg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6
IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCj4+IC0tLQ0KPj4gICBkb2NzL21h
bi94ZW5zdG9yZS1saXN0LjEucG9kIHwgMjQgKysrKysrKysrKysrKysrKysrKysrKysrDQo+
PiAgIDEgZmlsZSBjaGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspDQo+PiAgIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBkb2NzL21hbi94ZW5zdG9yZS1saXN0LjEucG9kDQo+Pg0KPj4gZGlmZiAtLWdp
dCBhL2RvY3MvbWFuL3hlbnN0b3JlLWxpc3QuMS5wb2QgYi9kb2NzL21hbi94ZW5zdG9yZS1s
aXN0LjEucG9kDQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gaW5kZXggMDAwMDAwMDAw
MC4uNGJjMWZmOTg0Ng0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIvZG9jcy9tYW4veGVu
c3RvcmUtbGlzdC4xLnBvZA0KPj4gQEAgLTAsMCArMSwyNCBAQA0KPj4gKz1oZWFkMSBOQU1F
DQo+PiArDQo+PiAreGVuc3RvcmUtbGlzdCAtIGxpc3QgWGVuc3RvcmUga2V5IGNoaWxkcmVu
DQo+PiArDQo+PiArPWhlYWQxIFNZTk9QU0lTDQo+PiArDQo+PiArQjx4ZW5zdG9yZS1saXN0
PiBbSTxPUFRJT04+XS4uLiBbSTxQQVRIPl0uLi4NCj4+ICsNCj4+ICs9aGVhZDEgREVTQ1JJ
UFRJT04NCj4+ICsNCj4+ICtMaXN0IGRpcmVjdCBjaGlsZHJlbiBvZiBvbmUgb3IgbW9yZSBY
ZW5zdG9yZSBJPFBBVEg+cywgb25lIGNoaWxkIHBlciBsaW5lLg0KPj4gKw0KPj4gKz1vdmVy
DQo+PiArDQo+PiArPWl0ZW0gQjwtcD4NCj4+ICsNCj4+ICtMaXN0IHRoZSBmdWxsIFhlbnN0
b3JlIHBhdGggb2YgZWFjaCBsaXN0ZWQgcGF0aC4NCj4+ICsNCj4+ICs9YmFjaw0KPj4gKw0K
Pj4gKz1oZWFkMSBCVUdTDQo+PiArDQo+PiArU2VuZCBidWdzIHRvIHhlbi1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZywgc2VlDQo+PiAraHR0cHM6Ly93aWtpLnhlbnByb2plY3Qub3Jn
L3dpa2kvUmVwb3J0aW5nX0J1Z3NfYWdhaW5zdF9YZW5fUHJvamVjdCBvbiBob3cgdG8gc2Vu
ZCBidWcgcmVwb3J0cy4NCj4gDQo+IEkgaGFkIG5vIGlkZWEgd2UgZXZlbiBoYWQgdGhpcy4u
LsKgIFdoeSBvbiBlYXJ0aCBkbyB3ZSBoYXZlIGJvdGgNCj4geGVuc3RvcmUtbHMgYW5kIHhl
bnN0b3JlLWxpc3QsIGFuZCBmb3IgdGhlbSB0byBiZSBkaWZmZXJlbnQ/DQoNCkkgd291bGQg
dGhpbmsgdGhlIHVzZSBjYXNlcyBhcmUgZGlmZmVyZW50LCBidXQgdGhpcyBpcyBwdXJlIHNw
ZWN1bGF0aW9uLg0KDQp4ZW5zdG9yZS1saXN0IG1pZ2h0IGJlIGludGVuZGVkIHRvIGJlIHVz
ZWQgYnkgc2NyaXB0cywgd2hpbGUgeGVuc3RvcmUtbHMNCnNlZW1zIHRvIHRhcmdldCBodW1h
biByZWFkZXJzIG9mIHRoZSBvdXRwdXQuDQoNCj4gRXZlbiBmb3IgdGhlIG9wdGlvbnM7IHhl
bnN0b3JlLWxzIHVzZXMgLWYgZm9yIGZ1bGwgcGF0aCBhbmQgLXAgZm9yDQo+IHBlcm1pc3Np
b25zLg0KDQpZZXMsIHRoaXMgaXMgd2VpcmQuIEFuZCAieGVuc3RvcmUtbGlzdCAtcCAvIiB3
aWxsIHByaW50Og0KDQovL2xvY2FsDQovL3Rvb2xzDQoNCndoaWNoIGlzIG5vdCB3aGF0IEkn
ZCBleHBlY3QuIDotKA0KDQo+IEhhdmluZyBib3RoIGlzIGdyb3NzIGVycm9yIG9uIGJlaGFs
ZiBvZiB3aG9tZXZlciBhY2NlcHRlZCB0aGUgY29kZSBpbg0KPiB0aGUgZmlyc3QgcGxhY2Uu
wqAgSXQncyBhIGJhZCBlbm91Z2ggdXNhYmlsaXR5IHByb2JsZW0gdGhhdCBJIHRoaW5rIHdl
DQo+IHNob3VsZCBzZXJpb3VzbHkgY29uc2lkZXIgZGVsZXRpbmcgdGhlIGJpbmFyeSByYXRo
ZXIgdGhhbiBhbGxvd2luZw0KPiBhY2NlcHRpbmcgaXQncyBleGlzdGFuY2UuDQo+IA0KPiBC
dXQgYXMgSSBleHBlY3QgdGhhdCB0byBiZSBjb250cm92ZXJzaWFsLCBhdCBhIG1pbmltdW0g
Ym90aCBvZiB0aGUNCj4gbWFucGFnZXMgbmVlZCBzb21lIGtpbmQgb2YgImRvIG5vdCBjb25m
dXNlICRUSElTIHdpdGggJE9USEVSIiB3YXJuaW5nLg0KDQpJdHMgbm90IGFzIGlmIG9uZSBv
ZiB0aG9zZSB3b3VsZCBjYXVzZSBhbnkgaGFybS4NCg0KDQpKdWVyZ2VuDQo=
--------------vP0He5e0E20IM0eylkQpww4L
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-----

--------------vP0He5e0E20IM0eylkQpww4L--

--------------DwR84ipFeU0iF7zgyWbaFZTd--

--------------IRCvABarFFOIaAwwhrwydgH5
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/Ey8FAmmyvKIFAwAAAAAACgkQsN6d1ii/Ey/B
pwf/TK8w0mtyu7kDWTQlgszGCmMlB4V157RZTCaaGbIEomp6VXHpQ7gry9Z0Ou2k9UNMc3dYufd5
3/HNvKcjpXjNU9je35DX3+L5eIRlmmJ/X7pLUSXbMVwfCQqKqVahenJfDDAAfnoiSO/WOAahxk55
qtCsFfy+6VMnwqzeg0A20SmnrSccSSS6WOCNHC0l34+sqjRNci7yfWVXJTpzLpjRxblNCa6yF3Ze
MyFB7fDafPLAkeH4bGOWc0A1+xsJ/oYCD5hbUUt2zBj01uOko60An6IXelX/VO4KMLs1heTj+13Q
EYJ7exnpT3JRa5XKc+BJ5SntMPkwWOqz5QZrINtVGw==
=DXBW
-----END PGP SIGNATURE-----

--------------IRCvABarFFOIaAwwhrwydgH5--


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 13:22:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 13:22:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252381.1549082 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0fzt-0001O4-LG; Thu, 12 Mar 2026 13:22:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252381.1549082; Thu, 12 Mar 2026 13: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 1w0fzt-0001Nx-I2; Thu, 12 Mar 2026 13:22:41 +0000
Received: by outflank-mailman (input) for mailman id 1252381;
 Thu, 12 Mar 2026 13:22:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cgz6=BM=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w0fzr-0001Nr-Vg
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 13:22:39 +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 89ef8956-1e16-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 14:22:38 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BL1PR03MB6023.namprd03.prod.outlook.com (2603:10b6:208:31b::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.15; Thu, 12 Mar
 2026 13:22:31 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9700.013; Thu, 12 Mar 2026
 13:22: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: 89ef8956-1e16-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=E7+ugwDgoNY8AkRksLvZmi+o8hVv0liTjgOdetPOh/oNfJuDWnmk/B1CTxkcIRxeBRneKoEu+W1kvxj/Dd/XC2eOK7ibtebwx75voMmk+F1+/HO73jhyGNtsv3R70SJ0UWt9ZywmGtikpoFMy/vRY/mJfUASFi9mg8krecf21fMKQSKIkSNgZ+crpJvCQB5aTzASxfBEb+aHN55K0CcEWo12dr6zflcA16DTfIU64Uvb4kHTq00NPYsRY4nSezyWoBFKQ25J2sW8QJ9/X5WwHGOfBPgHcoLTodA8dk4ddFDmvVMVV1bhjZr+ZV0iDSuvVQsxmICX2ncKZeHdsC095g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=V00vEOcDnCEcyt0UCegcczHt7TbBGG3md43HW5Fnsqw=;
 b=xNjaD3mcE2Uvus2ddfzWMdh2RdHM4ean+UovPmXgCKlODg1D5BCOjMg+gLTkX1ROPTyEP508marp0gD9VuihWirCB9wY0NKoyUsHRkWYIi3zMzgW7ZMBqaLwLkrKKSIGRJeol4n7X5xuxK2RsKBTs1XHBSjGZHiPhSI5aqU7eSWCW1EtoFILIqty2OUR5WGvwDh5bPPahICyG/5LhnPR1Myn1T2kxBsOW8DYmhwT7AsmRM69tedAyrWOLswsGtOTs/kK80v4eOcl0yU0hG0mrkW7t62hM0yA2RxtFKq6jdfXEoNs73vn9weLndKGzzPXGqTys1GlhYp4RqYUEln9dw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=V00vEOcDnCEcyt0UCegcczHt7TbBGG3md43HW5Fnsqw=;
 b=YZySFWhf3cKK4FnqyChzm6zUNaUoegrl3pgcdmgfM0ftxn3VymKKdkqafyqOsklplFPW25/+FqTN+6VLRKYCT77fw6+RAsJUAIT7RgJ4XJPOCiz9US8SDvMQd6nhXkmRwjYfIfjOj/RllafnmM43RsN5ID3HGYGW6qfuNcF2Z1Y=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <0748a784-eaf0-47d9-b683-067c28eeb44c@citrix.com>
Date: Thu, 12 Mar 2026 13:22:30 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 3/4] docs: add man page for xenstore-rm
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <20260312122240.2784725-1-jgross@suse.com>
 <20260312122240.2784725-4-jgross@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260312122240.2784725-4-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0597.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:295::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_|BL1PR03MB6023:EE_
X-MS-Office365-Filtering-Correlation-Id: d11ea487-3ead-4677-46ef-08de803a6b89
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|7053199007|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	IYqZXn5853EumyVBdh26tddNlg62uzJc8mwMV1HrHaHD4TkpjIayTe04XjvANsrehLyTucau168+KT60fNr5aJD2Dj8OPuIegNJ1RrVnWzq0aDoFn4CN7Bz8FEBptfKMDg7Y+Z4tIZwzsSIwqW8RFQPA6m2GVcrkuKvwKtDfXvBQBrxLHyLb1MGVM4QnVYDSMpa2F6fKeN3Or3GapUXoRq0/62xLg1rS6DFwrevTgwRA3e5VTng9JTx6XQ80peJWlKhWb+9XH6Lsvw+bbrP4Q+qRHEBj/Z/vVD7pPRwF/Aa5AP7PGqbjwYfUHKO6d0tX8L4uQJJel2lYCHF5jBc9r3cotG1gxhq9z7II3olBoMTyQ/wDYldYOcujg3zN575oyvv+nKNqrKAtXtVjgIrzVhVGmtzahjFUKzEHwsROkPje2ICNowIF6f+fhstZNxv+W/yqAFP9ooXHBbsRe7yfCSbm+GMsiil6Ytha98/hpIGhvK0TDKCWjTHhtVXzsj4qA1t6OMWZECCHkvxKlKMUr5D0YFgobyngima7CfD+B0FZ6BlBB/Am87SBNJ9PRJV//HkU8HAu9HkUB/8pCR39t4JOmV3oVfvwaI5qRzSkC2Cr8Ong3UCFvo4MEZDq5Wc/kpbYDGgCHaHb56jtyLGBjxmbEzQZyrv3Z7ElFGxSRVaYrIBmszsON9t+zgT5XrAGnYP5YpUJnNf8jgHdURgIsRgHSWdl+szzB6uG8/oNHGhbc1DzXT/jZqSCjnDc8vzm
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)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NVVodFNZOVVubTRUL0VnT3BVUVRtR2tpY0FMQU5IT29maGRUM1NPTWl4VnNJ?=
 =?utf-8?B?azkrZmsvVGJ6M2I2cFYzMTRFb0VhempSc0xkdHFweU1Yc3kyTi9KTGhic1FB?=
 =?utf-8?B?bUx3Z3FGTTZTcVo4RDlYOTY3SGI5RnNSRWxWQ21mSlBYeDZXS3FQUmtJQlMw?=
 =?utf-8?B?Ym9ZOHlpVE1rRUhOVXdLemdPbHRITmlJVjV2YjU5U1BmdXppNngySG5YT1hP?=
 =?utf-8?B?c05LMGxnSWZvZ0VMUlRZdnRlM0hIM3Y3QkdLOXFBZ2JobVlFeGEvMjhDZmRT?=
 =?utf-8?B?ZDA2a1c1Rys1R21Qcm1sVithVVRmbStSNEVGWm1tdHFpQjNsU1k5SHhjTjVz?=
 =?utf-8?B?VTJBR0MzWTZXUGx4Mk1zS3FlNEZvTTRxSUoxUktpR0hPRStKQm8rMXc1dW80?=
 =?utf-8?B?Z2gzTmJuelJ3MmlWSEN3dDR1bU1oTUkyZkRmNkpvVHJvQkY2d2VmYk5XaEhL?=
 =?utf-8?B?K1A2RzAwUmJ5RitSczhZaUo0cFl4eUk1cHVoZCtkN2VuVktIS2V0UXJzVmdr?=
 =?utf-8?B?Q0NVTHRaYlhRQmxWQlUwK2NEUXc2bkxyWTY0T3dHVi9URTM3bExqZm5LY3ps?=
 =?utf-8?B?ckNicVA2SFpCZUdQeGg4N2RLWXlOSExuK2Z1VHN4aHVJY0lXZXorU0pqcG9E?=
 =?utf-8?B?QTVoMk1TSjRLOTR6QUM1Mlh3ZzZvWmRLd1pFUjNDMm5ZV1A1WmsxRmdaRWIz?=
 =?utf-8?B?NG9GUkJRNkJZQ1M2bDY2SXRFdXZ3VitTaFFEcWpOa0NYeWR5OGd3NE5MTWRS?=
 =?utf-8?B?NUphM3BiL0YyV1U0RURDYnZHVW03cG56TVY1RE1rOGJ2NFQybDh6WHNJdFl6?=
 =?utf-8?B?K3B1VVlZZ2szei9adUl2cjlDZFRXbmFET3k2WjhxaXZDcnluY3p2OWY1REpQ?=
 =?utf-8?B?NVl4NUdQNjkzUk1IUDdJd0xJVGl6TUdiSFlHOVVqTDRabXhhcmRZbUdBV3N4?=
 =?utf-8?B?dDdFUSs1UTZ3QzkrT0w0aTN3NDQzSGlXOUFtc1dseDhRaGYyb1RSODhNQVFv?=
 =?utf-8?B?MmQ1dkZWa0FnV01oWjUwM1hLTmFwOGtXSGFQeWQ4S2xObksxZktMdTRZOXF4?=
 =?utf-8?B?TytIRTBreUNGRlRCc3FVRVk2WGszQkFXWlVzbnBGQVdPUFJYRjU5cG9PbUtj?=
 =?utf-8?B?NVZURFNyNldnTzYwT0o2N2dzSndTQkhSN3hHR3hIYmErM0VVSTh4Tm5QMDZD?=
 =?utf-8?B?TGMwL3dQcmd3OXlLSDY5NXdxZFFyem52NFByS3AvckV3eUs2Tk1qUTFlVk5F?=
 =?utf-8?B?TjFXSHlTVHVzTW9acG0rL2cvc3c2OGJLM3J6M3BSVlkxNHJXVTR1NzdnNEt0?=
 =?utf-8?B?OFRPYm81OENwSVhaelBnWnNCeExEY3BMTGdjNjlaREZtbDlMbHJGQzBHRjNZ?=
 =?utf-8?B?b0ROMEVzMUU1OXg1YTRBYkcvcjFnSlFuR0QyL1ZpRVFWckFwMkh1YjFQb3NK?=
 =?utf-8?B?OTRmRXlNRmtoVFlnQjNVWnBSTE9nYllPREY5NVYyc3Q3TTZ6bmMwRWJReWhy?=
 =?utf-8?B?K0lUTkhKRWMyNUdad1dCZ3AvOW0wZUl2ekRDSTU5RGtSZDJERWtvZnMzQnh2?=
 =?utf-8?B?RTIzN3BndWVnUEthelBXaWQ4ZmdNcVRndEhUeXdOTUF0clZaNjJwTkZLSzVQ?=
 =?utf-8?B?YVdsN3B5VkdIWU5zekVQUU8vSWVYZG02S1d2a25DVURZY3ZRUlFTRmdNWk5P?=
 =?utf-8?B?U3RteW5UTzA1VURRSFVjaWZURUQ0UTlvaWVuRk9jUWs4VWJvQzRHdzh1c0J1?=
 =?utf-8?B?MC9ENFFYMlM2L09telhJVlRoSnVqWGlaVlE1U3NqanNhOHlYdGo0d29nak82?=
 =?utf-8?B?TTlmUHBvMmUvYVd5R1NzdnVKeEpQY0Jra25KQ01LZ2V2V2Q3enkyUUxreWl3?=
 =?utf-8?B?MXAvd0syRHpTNyt3T2NlUXczYnhYNEFSQm9NeDEyc1ZkYTRTTjM5ZENYMkJm?=
 =?utf-8?B?QWhEK09HUEdXS20wVDR3NmVHY2RnQkpFZllHcWtKVlBvaisyUTdjQmNmdjhG?=
 =?utf-8?B?UFFZeXgxWE4vV2NQeExHeWNjN05UTE84cXJTUWlGUkhCYTBraE1wWEh0ZVBT?=
 =?utf-8?B?eXJmNmNTS0lzZG9XdWh1dTRIMm1ybDRGK3lVWDF0Ry9xSWZSbU1OdTF0MXh0?=
 =?utf-8?B?NWx0TXJoNWdhQysvcUsvMUhhTDRyNFRnL1ByUEpWQnpIbFAxN3dDak02SG1Y?=
 =?utf-8?B?RUFJM3ZZcDUxMTlaM2JJeDhTdzJLRzNhSnFXMDhSVWxnWWNYT3JBT05nNnJY?=
 =?utf-8?B?OUQ0UE9IT0ZkaSszV3pkU3RNaGhjVGNOVGdYZktIbFZVZ0kwS3ZLZUlJY0xC?=
 =?utf-8?B?ek44alQ0aUpUR1RXejNkcS83a0Z1WjlCNy9qRmwrSGdrVXBMTmZjdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d11ea487-3ead-4677-46ef-08de803a6b89
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 13:22:33.8366
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: zbXVSTxDgsX/v7s0/QdoA2sVOmW3hszXTNepo9qxxyvwMNN31sSAlXctHAJqWs4zMrrx9OcU4MZY+0ICn7rK3EZ9SpY3xzZOfFEOrxy6N+8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR03MB6023

On 12/03/2026 12:22 pm, Juergen Gross wrote:
> There is no man page for xenstore-rm, add it.
>
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>  docs/man/xenstore-rm.1.pod | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
>  create mode 100644 docs/man/xenstore-rm.1.pod
>
> diff --git a/docs/man/xenstore-rm.1.pod b/docs/man/xenstore-rm.1.pod
> new file mode 100644
> index 0000000000..a85b971113
> --- /dev/null
> +++ b/docs/man/xenstore-rm.1.pod
> @@ -0,0 +1,24 @@
> +=head1 NAME
> +
> +xenstore-rm - remove Xenstore keys
> +
> +=head1 SYNOPSIS
> +
> +B<xenstore-rm> [I<OPTION>]... [I<PATH>]...
> +
> +=head1 DESCRIPTION
> +
> +Remove one or more Xenstore B<PATH>s.
> +
> +=over
> +
> +=item B<-t>
> +
> +Tidy up Xenstore keys which got all children removed.
> +
> +=back
> +
> +=head1 BUGS
> +
> +Send bugs to xen-devel@lists.xenproject.org, see
> +https://wiki.xenproject.org/wiki/Reporting_Bugs_against_Xen_Project on how to send bug reports.

# xenstore-rm
xenstore-rm: Usage: xenstore-rm [-h] [-t] key [...]

Looking at xenstore_client.c, this is common to all.  Shouldn't it be
included in the manpages ?

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 13:49:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 13:49:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252401.1549091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0gPi-0004Xn-LG; Thu, 12 Mar 2026 13:49:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252401.1549091; Thu, 12 Mar 2026 13:49: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 1w0gPi-0004Xf-GV; Thu, 12 Mar 2026 13:49:22 +0000
Received: by outflank-mailman (input) for mailman id 1252401;
 Thu, 12 Mar 2026 13:49: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=QGPq=BM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0gPh-0004XZ-2e
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 13:49:21 +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 447ab8d4-1e1a-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 14:49:19 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b96f02b4329so167759666b.2
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 06:49:19 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9736e2ca31sm103355166b.37.2026.03.12.06.49.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 06:49:18 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 447ab8d4-1e1a-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773323359; x=1773928159; 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=XQnM73uK5SUOCMzPiJWpKm6VsOp+n8sXGISqkUzLwcw=;
        b=McOxHWbTb7wLw86KXR/zdv1uuuANGWzR+o+sjGHVJ0mjkbAwNZnTu+9yTWuCcCgaVP
         1g+jDYKB7FVZBj8+O0bvpZH5JjM2ZT1o7sregWMKvvqybgLefoKEI4K34SeKDlLOsdO2
         l0axXpbtvuLdgCI0gtqutbFzSHPwb3sriJ+fgDYB/cMnar11H+LWkNO0f+mhz1daeHso
         Ll4OSi8hR1G33YZtyVsLSzjNpvmNs5yDcKf3CSstKTBuKwC7Y1XRsKoy7+qUUriIHVQh
         mI4G+vYcW8Poso2mzMvXZi3m0A1IwO6MyxR0PERv8GWHjHmxH7QAVRS1SPOJtUKtf0XT
         DKqQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773323359; x=1773928159;
        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=XQnM73uK5SUOCMzPiJWpKm6VsOp+n8sXGISqkUzLwcw=;
        b=KqwnyEmwJx8Z/48LcCXcKoh12BwRDZTVlI5/EcDzVsKOQk4tz94BchVFttFjIGSNlK
         2tyiqt/DTpljFA8Hoi+2Lp8kSHeCIExDG1GyUJbnk7aoLZ2OFwrIAbuIQuzhLV+B4U1A
         IC+GjczjxhGFYuwikMjKT+Sj1dswrlIXsfE+t8dD6nbijrvbINJfMOFW6YFbpLee3dhq
         8sMVA1dfAXtVFpbqc4WEFRHNVn7skFPwoVZXX4eshUB/GbCx9qWcj6W/CsbqiaEtC5As
         WiQ1jzGM4NEaGmJsTBO4Tjawm/Y8RnQkdMzZI8eea78sIzsnSlayzoxzbU18zWg9BocP
         Y2Zw==
X-Forwarded-Encrypted: i=1; AJvYcCUsBoKwagk79NBgrGRa7O3lyq8gHQwSQwubwxWXOnm9M1sLxxoV3GqphDJ4CKywEqjbZTEFS824FC0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzjgk24Pi7MKWg/9x9Qbwak6j1qVgl3ZWdAaIwS3C5nKqWFsSPa
	61pPK+TU/+wYO2HofO7PHIYnjesz8WeuBTR1k567m2BDFwA99bdpm5JvNZ5kVAksAog=
X-Gm-Gg: ATEYQzwea2mpxhGU6lOZl2ILAnuk9K8LTySqXN31uu1SiihB+4KWM6vvZLfiO64dZw/
	0WpjNXKBVbNG8cgCts5VzLYQnqwDGTMmA4g9c/O+zdHhcObMy/japk2PopIiknBlFjdgCateRV2
	MyH9TchL9ReIH8K5cxHI9PUb6EAsSl4STprxA+1t4RCXJDPl4Glg+apHT9fCPLITTnFgBtcG2xm
	2eoLRTO5yvcwoTMx45Jl+BcZG7Y8z7xq1Xus4sLZkiL3Dxa9ABSTRWsK57WYwzUhMX6X5YKHr8v
	5sDAK1Qz5PCfj5tIunhfH1f//cZWwwyUQqcJdJ4YzzWsx5bj8kLf9+K9Odh5sDLoAbbVpKLk0tr
	5rnAx/uflYt46vjncXuY2Hk4oRLALTt0sjXufpyJ3uQTBltkgJ1fdak383be6gbVi9Yab/zgJJ8
	T7eltm2ushrZ7ywrvfSpRQB9n1tnemXfyw/QQPtv+qVPolWGzmhWiFmoiAgbCOD+7auUF3Ap9kc
	RwqtsveaxAOSV0HjVEY2r5p8iYO8/B5HnyObHASlPjfDpF1GlCdEuUWaBz1ugKf
X-Received: by 2002:a17:907:70b:b0:b94:1224:c605 with SMTP id a640c23a62f3a-b972e1b1347mr331116166b.19.1773323358559;
        Thu, 12 Mar 2026 06:49:18 -0700 (PDT)
Message-ID: <fb001622-e2b2-490c-ab19-f56a36304baa@suse.com>
Date: Thu, 12 Mar 2026 14:49:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/4] docs: add man page for xenstore-rm
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <20260312122240.2784725-1-jgross@suse.com>
 <20260312122240.2784725-4-jgross@suse.com>
 <0748a784-eaf0-47d9-b683-067c28eeb44c@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: <0748a784-eaf0-47d9-b683-067c28eeb44c@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------hAtZdAzSVGSEgSdwKB0B0LQ0"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------hAtZdAzSVGSEgSdwKB0B0LQ0
Content-Type: multipart/mixed; boundary="------------mEwUuV7lKvjhYdm1DdoQZUYW";
 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: <fb001622-e2b2-490c-ab19-f56a36304baa@suse.com>
Subject: Re: [PATCH 3/4] docs: add man page for xenstore-rm
References: <20260312122240.2784725-1-jgross@suse.com>
 <20260312122240.2784725-4-jgross@suse.com>
 <0748a784-eaf0-47d9-b683-067c28eeb44c@citrix.com>
In-Reply-To: <0748a784-eaf0-47d9-b683-067c28eeb44c@citrix.com>

--------------mEwUuV7lKvjhYdm1DdoQZUYW
Content-Type: multipart/mixed; boundary="------------vxLnf8KexsL7jOqVo8i2LW5n"

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

T24gMTIuMDMuMjYgMTQ6MjIsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDEyLzAzLzIw
MjYgMTI6MjIgcG0sIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBUaGVyZSBpcyBubyBtYW4g
cGFnZSBmb3IgeGVuc3RvcmUtcm0sIGFkZCBpdC4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBK
dWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQo+PiAtLS0NCj4+ICAgZG9jcy9tYW4v
eGVuc3RvcmUtcm0uMS5wb2QgfCAyNCArKysrKysrKysrKysrKysrKysrKysrKysNCj4+ICAg
MSBmaWxlIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKykNCj4+ICAgY3JlYXRlIG1vZGUgMTAw
NjQ0IGRvY3MvbWFuL3hlbnN0b3JlLXJtLjEucG9kDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL2Rv
Y3MvbWFuL3hlbnN0b3JlLXJtLjEucG9kIGIvZG9jcy9tYW4veGVuc3RvcmUtcm0uMS5wb2QN
Cj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+PiBpbmRleCAwMDAwMDAwMDAwLi5hODViOTcx
MTEzDQo+PiAtLS0gL2Rldi9udWxsDQo+PiArKysgYi9kb2NzL21hbi94ZW5zdG9yZS1ybS4x
LnBvZA0KPj4gQEAgLTAsMCArMSwyNCBAQA0KPj4gKz1oZWFkMSBOQU1FDQo+PiArDQo+PiAr
eGVuc3RvcmUtcm0gLSByZW1vdmUgWGVuc3RvcmUga2V5cw0KPj4gKw0KPj4gKz1oZWFkMSBT
WU5PUFNJUw0KPj4gKw0KPj4gK0I8eGVuc3RvcmUtcm0+IFtJPE9QVElPTj5dLi4uIFtJPFBB
VEg+XS4uLg0KPj4gKw0KPj4gKz1oZWFkMSBERVNDUklQVElPTg0KPj4gKw0KPj4gK1JlbW92
ZSBvbmUgb3IgbW9yZSBYZW5zdG9yZSBCPFBBVEg+cy4NCj4+ICsNCj4+ICs9b3Zlcg0KPj4g
Kw0KPj4gKz1pdGVtIEI8LXQ+DQo+PiArDQo+PiArVGlkeSB1cCBYZW5zdG9yZSBrZXlzIHdo
aWNoIGdvdCBhbGwgY2hpbGRyZW4gcmVtb3ZlZC4NCj4+ICsNCj4+ICs9YmFjaw0KPj4gKw0K
Pj4gKz1oZWFkMSBCVUdTDQo+PiArDQo+PiArU2VuZCBidWdzIHRvIHhlbi1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZywgc2VlDQo+PiAraHR0cHM6Ly93aWtpLnhlbnByb2plY3Qub3Jn
L3dpa2kvUmVwb3J0aW5nX0J1Z3NfYWdhaW5zdF9YZW5fUHJvamVjdCBvbiBob3cgdG8gc2Vu
ZCBidWcgcmVwb3J0cy4NCj4gDQo+ICMgeGVuc3RvcmUtcm0NCj4geGVuc3RvcmUtcm06IFVz
YWdlOiB4ZW5zdG9yZS1ybSBbLWhdIFstdF0ga2V5IFsuLi5dDQo+IA0KPiBMb29raW5nIGF0
IHhlbnN0b3JlX2NsaWVudC5jLCB0aGlzIGlzIGNvbW1vbiB0byBhbGwuwqAgU2hvdWxkbid0
IGl0IGJlDQo+IGluY2x1ZGVkIGluIHRoZSBtYW5wYWdlcyA/DQoNCkhtbSwgbWF5YmUgYSBn
b29kIGlkZWEuDQoNCkknbGwgYWRkIGEgcGF0Y2ggYWRkaW5nIGl0IHRvIHRoZSBhbHJlYWR5
IGV4aXN0aW5nIG1hbiBwYWdlcyBhbmQgYWRkIGl0DQppbiBlYWNoIG9mIHRoZSA0IG5ldyBt
YW4gcGFnZXMuDQoNCg0KSnVlcmdlbg0KDQo=
--------------vxLnf8KexsL7jOqVo8i2LW5n
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-----

--------------vxLnf8KexsL7jOqVo8i2LW5n--

--------------mEwUuV7lKvjhYdm1DdoQZUYW--

--------------hAtZdAzSVGSEgSdwKB0B0LQ0
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/Ey8FAmmyxF4FAwAAAAAACgkQsN6d1ii/Ey+W
RAf/WmRYpS1qhLAgn5geDPXeMdROfD+JpLn97JVYZC6sYilM9HGt9+W3U9XaF5T2QUHWqNM52WIE
bcSQhbzH0Qi0vhtrz0lI1cNQrUEUYCN36TbeQmNMvnyrsladIEy1RS0rDB1yCgUkK6+9DNCZGwLw
uVabjCKvt5N9m8QH1/7ZNbIAvgijQ1cjDwwAOT5eXYkXYJoY/S6HNpB62UIpXVrhgwfDuhfqtSF5
hsbGk5aCnEs9CU14nq8QJ5GZ5+u62joaRaW+BIzXMRUt4Ei+/aWZFqcFWBzg57fy3fKvNfbbzzuV
c9X961phfix5j8G+kCGr33IEP5Wq0dMdYW98gvJuFg==
=HExR
-----END PGP SIGNATURE-----

--------------hAtZdAzSVGSEgSdwKB0B0LQ0--


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 13:50:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 13:50:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252408.1549100 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0gQu-00062Q-W2; Thu, 12 Mar 2026 13:50:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252408.1549100; Thu, 12 Mar 2026 13: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 1w0gQu-00062J-TP; Thu, 12 Mar 2026 13:50:36 +0000
Received: by outflank-mailman (input) for mailman id 1252408;
 Thu, 12 Mar 2026 13:50: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=17Qz=BM=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1w0gQt-000628-ML
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 13:50:35 +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 7002c2a1-1e1a-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 14:50:33 +0100 (CET)
Received: from BYAPR02CA0060.namprd02.prod.outlook.com (2603:10b6:a03:54::37)
 by LV8PR12MB9081.namprd12.prod.outlook.com (2603:10b6:408:188::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.4; Thu, 12 Mar
 2026 13:50:28 +0000
Received: from SJ5PEPF000001F1.namprd05.prod.outlook.com
 (2603:10b6:a03:54:cafe::8e) by BYAPR02CA0060.outlook.office365.com
 (2603:10b6:a03:54::37) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.27 via Frontend Transport; Thu,
 12 Mar 2026 13:50:28 +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.9678.18 via Frontend Transport; Thu, 12 Mar 2026 13:50:27 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar
 2026 08:50:19 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7002c2a1-1e1a-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Lts2hOeEooK5cdjHD5svNT5XN/8Pbt37zKVH4hER71TCka+QbpuCYJDyBlXgMHo+KyREXlkXAU+nO4rx+WHi+55sMv2xBdKs6gEZ6vbmOzoEZzzEjlX88U9E74R5j9f6cnD77d9VZqpwU3rPvtnta+2dOJcXOYa5Ob/mMrdLonZPIEptpKLFekx4QF9V9eFDpJOR6Yw5RHIl7YqLcHoaJ92hLWCGlqPA1WutVAsKwmND8SrJiVBUamhzIyeHShryymCZ7QfdddZS40BWXX4BzLuzzZa7G4rfEDYg1faPJMdAhMKrpICqA5nLI+SOelCiVLDTb9irz/a7QjRNcXkCWw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mWAqciHDj/rPLHpzZWTBXdYeHhPDbCPzvP3OS9/0ZqE=;
 b=a1L+ek6pCCxpBX9MAQvNOFFmLiMYC+dXs7YX1Roz+nziCXPkOlCDSb3yg5JvFsQfGnU8VLG/Ee5U9YIxna5oiTWvp9ce81yYQunoZxloPVPwJxMNpN04KlidkTmR0FMfa/U+QBda0l4CWCrBhzQ2QT/N2tBRn5qZtvulEt+vR63cZxjndci6i30t2fHV2u09C5S51yTnzKT9yrEI5y3aCf/fgW77iR16zN+UxCJfrM9EycJSITaxEj15LjR6bJrAPqW6EfZhk/VrW8dd5P9pt5Qsr7ZAlHyis/brTxbqJXiZnHwsP/TJm9mYmt5RGswTvXR0SpkQSawTCALOGHfqXg==
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=mWAqciHDj/rPLHpzZWTBXdYeHhPDbCPzvP3OS9/0ZqE=;
 b=goFBfRMZa2ddZF7Rft9sUiDr39CIljZd9WitLEWMSGB2xPYinIT32ohhB0C+WvGQVPyvLIVR26EGn9Ea834nKIj53Cf+0LYTsXZdYZBaVKwyS7o0oGNc6otnoyjwGu2fgVi3NYyqbWn9e8YfLFQrnfqYBMgh9nc48vOaoMU8Fgs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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 v5 6/5] x86/hvm: Add a non-FEP path to the #UD handler
Date: Thu, 12 Mar 2026 14:45:32 +0100
Message-ID: <20260312134731.38475-1-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260312112116.22563-1-alejandro.garciavallejo@amd.com>
References: <20260312112116.22563-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: SJ5PEPF000001F1:EE_|LV8PR12MB9081:EE_
X-MS-Office365-Filtering-Correlation-Id: f6f644ae-54f9-4e24-edcd-08de803e5162
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700016|82310400026|1800799024|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	45y+UOPSUMZqbIYQ4/S+jeUG3K7Eu+WDwoxQtcgpHvIN3ctyuRzh3U0TXvSr+L98Q7++Wb9lJQAoAldhdRPj94scs+Mm+3u3R4yxsAVwvfObSL9BGZFfIQAoxt44Qa7iWYeQqLmYiTiQB2CO8I2vwoXA0Z/ajVis5zmARx5eJPUR6/WaGUL+aLU2BUEz03XtYb9lv+rbRWXEbzTGGSkaHvuagQr2cr/oKdRCSSElWOAnL7CBJqNaZDSyEUwdMIqiJc7mMXn3ITvy2RcdRBI3saRzgF4S5Z8mM2wGw0kRJhZ5NRu5l/X+14wNReedZyA1pMuoICYO3ntWK1HA4YUcimjJb4sXFqDRWV3UTAADBvar1JiTs4nA836oi/BT1I54vdZEjGDVXc3HkD+vElBWTKsel40AO8X8O3Vf2oYZ/ezUkeS2q88Pm4KXUwZQRPljJSL2Mbbszn8CEszPlj3l/is9OwyWk9ZMZgxIZnP77k3yZ3h2BPC8u6QLE1luGwqx5vHztaYQwCQVLhfYjti3AXUKBNbrb1pJa4+vb9qC1qzftBmRe1fnQw76ya6lLph8seq8/tCqzEu33Y+p6Olm510WC0nS79EtuMRBNErte5E41JTg7xgKQhd2RBplD71XfrFZ9C0I6uzf8vFESsVrSrehOXEKBCkt9pnU9UmAaoKDvwmtfck8nGepPZrzjVs/1ujnredoY0s5BcJXslwLiO/mX0wW6jxLF9K5XIF/CKhL4StO05Bu+D64xofGwrbBMlSEvERbz/aWTmXc6NEmKA==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700016)(82310400026)(1800799024)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ERaXtcZcwu6gIXKunYsRPcFnK45DLXcRVdkZuXYG3tzNYidgADF2JHdan0cGiFBwNMSzbqtXFXmIR715Zh+/knhwhNhNlEgYXznVIyffu8DbgoKEEwYCTVA9l8BhhQltamWOTm9/MPhl8KvqwcSLjEbj1/3ugYlnk/JffhIF7EjNTTlruR1Jpxxw2GX/KaOVow6bc1IyboEUfmGy5erl8MUk9h6zBKgMpXf//k0PhjpVr4uPP0mputtBueXRotDqY6OfY7ziBvaM//WrZd+pGkMngr15NeLZnU9f8qOwI9p9g2Z5iYugfQJMNJRz6324MFVEXW3PZPhXbd41VJ4CYc4OrXHUqwuqKh1KzCuIP1lLtSpFBNnE7fGUVL7nN3cKJ965DyPGkG+dDW5VEfQfdZiA9LlqrboKVpAZYwf01QnSwLBV+z+027+c0Dmwb7jQ
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 13:50:27.4192
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f6f644ae-54f9-4e24-edcd-08de803e5162
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-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: LV8PR12MB9081

While the #UD handler is dead code when CONFIG_HVM_FEP is disabled it's
helpful to keep the function around. Reinject #UD in the non-FEP case so
DCE can remove the rest.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/hvm/hvm.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 4c00cf4c4fe..0eaeb728382 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3835,13 +3835,18 @@ int hvm_descriptor_access_intercept(uint64_t exit_info,
 void hvm_ud_intercept(struct cpu_user_regs *regs)
 {
     struct vcpu *cur = current;
-    bool should_emulate = false;
     struct hvm_emulate_ctxt ctxt;
     const struct segment_register *cs;
     uint32_t walk;
     unsigned long addr;
     char sig[5]; /* ud2; .ascii "xen" */
 
+    if ( !opt_hvm_fep )
+    {
+        ASSERT_UNREACHABLE();
+        goto reinject;
+    }
+
     hvm_emulate_init_once(&ctxt, NULL, regs);
 
     cs = &ctxt.seg_reg[x86_seg_cs];
@@ -3863,20 +3868,15 @@ void hvm_ud_intercept(struct cpu_user_regs *regs)
             regs->rip = (uint32_t)regs->rip;
 
         add_taint(TAINT_HVM_FEP);
-
-        should_emulate = true;
-    }
-
-    if ( !should_emulate )
-    {
-        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
-        return;
     }
+    else
+        goto reinject;
 
     switch ( hvm_emulate_one(&ctxt, VIO_no_completion) )
     {
     case X86EMUL_UNHANDLEABLE:
     case X86EMUL_UNIMPLEMENTED:
+    reinject:
         hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
         break;
     case X86EMUL_EXCEPTION:
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 13:52:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 13:52:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252419.1549110 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0gSg-0006Zl-AZ; Thu, 12 Mar 2026 13:52:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252419.1549110; Thu, 12 Mar 2026 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 1w0gSg-0006Zc-6q; Thu, 12 Mar 2026 13:52:26 +0000
Received: by outflank-mailman (input) for mailman id 1252419;
 Thu, 12 Mar 2026 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=17Qz=BM=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1w0gSf-0006ZF-FA
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 13:52:25 +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 ae098a05-1e1a-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 14:52:17 +0100 (CET)
Received: from BYAPR11CA0065.namprd11.prod.outlook.com (2603:10b6:a03:80::42)
 by CH3PR12MB7642.namprd12.prod.outlook.com (2603:10b6:610:14a::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.4; Thu, 12 Mar
 2026 13:52:08 +0000
Received: from SJ5PEPF000001F0.namprd05.prod.outlook.com
 (2603:10b6:a03:80:cafe::ef) by BYAPR11CA0065.outlook.office365.com
 (2603:10b6:a03:80::42) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.27 via Frontend Transport; Thu,
 12 Mar 2026 13:52:08 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ5PEPF000001F0.mail.protection.outlook.com (10.167.242.68) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Thu, 12 Mar 2026 13:52: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, 12 Mar
 2026 08:46:59 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ae098a05-1e1a-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=P8Bt0CGDWKMjjaSrupmh8BYS+xeRs4IVAPQSsRsgWCYbknwUrUlmIgl4nWbguG+srs9gs0SFjPlt61bDoRLtcVlEOj7Z740j67qTYuaX+aHJQzjfngAHy3myXyEK0tNjJtCBmaOHKuW6dAb3WaB6yOWej2EWsVFYzUagVACYjc3Hnk6q4sQLpflhPIS/UZMMEYFd/qTEzqf/AKJCu5Ry32gn+V1cHbJrcP0O++9/36SVpIhSw8Eag4xDUQPm8IseYKaoCkszhpr/UUcwUVLtlwvSqxY9cClRIevhAIyk/l/AsfHFvi1xqudNIjmjeo6YJj+Wev15cfeWQ8bI9EZe9A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5c78gyJyjJPVki7MSV5aMA7te6tXb/lJRa6LnCuKiyg=;
 b=ZAKtSVXcQtKHPlppMSSoWsgmSAo55w+0swVQN3tpAm54fNbdBwdIb9eNpcTmwpQh13v0SjTwWwFp808Q/F9Nxq03NGxjG+y4egK0il4LqATR2yD61e6dQUfi2nmq0t4f/QEveXoJ9dyDWf8MnEMQy32NNq8MRSBRdnfEMaZtFBo4YdvGM/k0JlKNXN+WaUZo+Mr73B+WH5Srk2+llIe3ddMGPz0qB5A9rNeI+G4AcDuLpsusIHXwGRqGnJsgHSP+uUy5dHpTxrQqYbM+HuKkBdV98/3LdjXRC8mIu4sAMPDx87Xiop3tDVZO919lINo/n6j2dLLR7ofN4UN35Y5WwQ==
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=5c78gyJyjJPVki7MSV5aMA7te6tXb/lJRa6LnCuKiyg=;
 b=aQal+vDRoSK3uXyoeiJAGW2ZgSigzR2Gbkw5y9TR2af8dlGSoDxLtlZ1fM50QChCjvkJNpY2Cne3gJaB1cjoeUfM9Ro3EqHdrjyTT3mRN7Klhq9BuQkj6ojNTSsGC3C8YWEszLoqMT6Kw6dUNApstra04drdm0UmA300RrwcvYQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 12 Mar 2026 14:46:59 +0100
Message-ID: <DH0UM8GB3R1O.3N6FZA0BKY3E1@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>, Community Manager
	<community.manager@xenproject.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jason
 Andryuk" <jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v5 0/5] x86: Drop cross-vendor support
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
X-Mailer: aerc 0.20.1
References: <20260312112116.22563-1-alejandro.garciavallejo@amd.com>
 <18fbb44c-92b8-4298-9931-6db1c252b043@suse.com>
In-Reply-To: <18fbb44c-92b8-4298-9931-6db1c252b043@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: SJ5PEPF000001F0:EE_|CH3PR12MB7642:EE_
X-MS-Office365-Filtering-Correlation-Id: 12a6ae4c-bc3b-4a41-ce4c-08de803e8da5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700016|376014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	xOqoKFC8yWJ5vITbKf/UEYleWk8f95aXomPfOMwnSpcxY7RV+z156J0L0dmBqRnJPP2PDA2HlrspzV83TT6qS0M/oFNOchCIHbIhuPE7HdZRNl1GoeND9FmnQhOqaAyk8SBN6drUSHFvxMxrz6AYQxUBW3XHgNpBxEZSeWA5RPTHirntV7or6sd54EhBS9AzbQ08inOqKp+5CMBGsWmkGFmQ3VrQW4X03aSgRYjf8/SJcNd568SpZBBCs9SRU4wI4eL1hA8y/kOchfmaPnbbkiSzgVkkVTmqV5lCYtnjvUZwF+Xs09zfbvr/JR8ax3tSQyV6rcNbZhv6VwSiAvXOR3kxl+07zG2URfUcvNSEP94R8L9Wyn0GpzSQRD7VkwQUFYq6OooYDHZEXNOuhEWaeX2T1aSum0wS+a2SNnn73FFbzD1D+tMEOf4us1qghxCzF85T6jg+GgwoggByv8q2lV5eq0c/TNSh97M1AT3jJTtP36wjyaS1eEkP7nx0LYcMNFqIQbAS8t7N7a9qZ7w+FctwKIxoppS+iPdNxwpv++uaxcGsrPtN3Ucm6Emvk+ZFDib2w3Sklp8J1nOko+NR1IwF/qsEx4oQdYeiZwztpH+9aXYm8zX8TiWJAApXlh0FKS3PfthUjNiooyiXiOwoJWraX/qlNJzbCUcJ5LTNWgt1zDic8THD7BEOL+uwmLp3VuH1l7LMf+f3PPa6YPaNdhLTaWQSkX/DI1c579wxVl6Sj0ix01wrtlabTZVEK0OG1vetzhOm5cVujw4RQfZ68Q==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(376014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	0uwAtiBxFBSX2a7xcxIHtsEfHsK5FfN42uPut5HcxsbIgd4DnV4zE7zIre7Xq+cyA5oEIqwnkbji42st1cu4vuVTPvWvPs8XmFgAn98jGXk9Rbl8JK+Kq4q1qs+yCcDKwKtr3Q2m5xTTfxjROKFV4bSPUvMWpJiFmOjEChejg1IZDvgkSFnFFO4+ekGnBajfJmoKUMiaFqvTCNvn+EiFFo0T4wqJlNhTISFNUX+ZszDJ82N+mF3XYnd5YXclmCuiUHgoslwu5BK952mZx1k5T0SOr00WduJQXmO+2hAuuihvj097z1/A6ho3vgB4RvXLHI37kCilW1Dh4IxiA7qS4DAh3u5ibFePGTIv3wDwHorvpSdDWl+plCly4MBoEWpP4A5L6XH/wx+zKL5iqajHujsXSrp0HuD40rvqbI6EHbOUtOxW9Xt1HWtOtCM18qFT
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 13:52:08.4570
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 12a6ae4c-bc3b-4a41-ce4c-08de803e8da5
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF000001F0.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7642

On Thu Mar 12, 2026 at 12:35 PM CET, Jan Beulich wrote:
> On 12.03.2026 12:21, Alejandro Vallejo wrote:
>> Patches 2, 4 and 5 missing acks.
>
> What's missing for patch 4?
>
> Jan

Ah, nothing. Just off by one patch. That's meant to be 2, 5 and 6.
There's a sixth patch missing.

Incoming...

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 14:04:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 14:04:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252434.1549117 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0gdv-0008QE-8l; Thu, 12 Mar 2026 14:04:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252434.1549117; Thu, 12 Mar 2026 14:04: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 1w0gdv-0008Q7-67; Thu, 12 Mar 2026 14:04:03 +0000
Received: by outflank-mailman (input) for mailman id 1252434;
 Thu, 12 Mar 2026 14:04:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGPq=BM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0gdu-0008Q1-0f
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 14:04:02 +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 5147b3c1-1e1c-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 15:03:59 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-661cfb9f3aaso1483325a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 07:03:59 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-6639fe6dcb5sm122043a12.18.2026.03.12.07.02.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 07:02:46 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5147b3c1-1e1c-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773324239; x=1773929039; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:content-language:references:cc:to:from
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=DHs5cO1llEziioN+pBX/qNd2pqwkTbM2SiJUujfbay0=;
        b=dZQbYllDlD2B7xiWte/y9+sQFQiglJVXHLHNHoX/X9EKtECaQYyCucdWFezcmt6LJ1
         vj6GvDLBftg3b2zjwBCEtoh8ro5pFObBir04f/ktID8ahEJc5wvO8KT1MThNiaoE2tXw
         3eJW38cqDlM6IuUmcsT8ml6oOiMIsvI3K48Jl8UilW1qQf5TSEdg/sIw19WOfu9G0Wb1
         Q5rBgQGdQo7PhKP7bsYCII8X9ZgADQeS2mQhcbWmqmqT9iZkyQZWc9PvPGbcdslyicK7
         NljMBIpvwlL1924YriQk9wAO1tzc15Be1+rVBGR4qchbPnTR+b1ZZaHByZM6OY2VG/3E
         Bw2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773324239; x=1773929039;
        h=in-reply-to:autocrypt:content-language:references:cc:to:from
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=DHs5cO1llEziioN+pBX/qNd2pqwkTbM2SiJUujfbay0=;
        b=B8nBj/Wi0lWdIgam7ppH0FwbwqAjEKjQOcj0OAPy0dvg1tWdho9UxvmPhn7oka4A1f
         8hzzIBBF031bHedEN9ghqX22oScly5aRh9JED1JNbG1vBCinSnSps141GSM/Ru1lZkbE
         tHTh5m9nLtm8bkWsSGzppJaG0KUxwWabgebcaO/iPuM8t4+13IRk2rgK6sIF7EskYkg5
         21YTbVjDjHbg1ViwvXDpaRNxZJCb+lvf0TqgavVJyjZOFxK9gesQTp62GGwvKME2+eqc
         SB9smc6QKEAO6SZJLGFrxYKikhwI2AqDMzVVeFyVPHzdTeUi3GW9HQBUSHluSSxdLN3Q
         sqfg==
X-Forwarded-Encrypted: i=1; AJvYcCX+A4Z7KaBvwElj7hhc11c11b4fiVpYDaLf6bRtbwk1uFX5ABxbyXedrzSjvZRpaerD3BoDvJrCOJA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy4JcxL/oXwo+gko2Z6usD9L09ra5KFNMjAqx+X8voCqq93pmVL
	LzFSD5894+MGW5+6UGPZnJqxCMQlCHw0XUk1nR8dQjILFOY48JUbdclNOUFPAYnO4mI=
X-Gm-Gg: ATEYQzxpm6o5zfYHkYGod5utENwY4miePdjVk9hGSQLMsWkHmPmp06fXqf7BvZFOKE9
	6Yml/sjDG9CZTe+Pf6MwQjg/CzfVJqm8ABZMahz3ULMFcTcqjycJc8a5sFZ/J0XhLGDL/x8N0cb
	WIwiPlMn397m9m9LGcSCA0cm52ClzkxhK/bWKyGbEJ4UKGO1n/Fwd5NzjULdv205+vfdoTFvWlN
	7QeQrHHoXBPKPyQR8o8aR9isW0EXCSeiw6zLY6AWbB8snlp66V/ZdhLjM+qr5r06P392clSGeEc
	4H86+oxyuklSG1pca3JbLz+jb/nkpO04cNxo+SV3332b28JD6QCWoryQ4lIeAUJMOeQtUeNibjD
	wKhAvwHC4npepAhtLsMP3HdMpfi/Zb+CbcyIZi+eZakFOzm2n/hEeI8/AkJiPxjQqzACnrlCo/c
	op9KXTrX2BzQS0zaJqVuWYktmawAedwdsEfgBHoe70tIPp06JsHzayNCTtnYCEgwOc+l5LvBqDA
	nkG6zHF/gJjodTT/hiUrQ6lyFYPJ1w9oHKBNrZHuL2jJQcAAi+64tv07Hrud0DB
X-Received: by 2002:a05:6402:2750:b0:65c:668d:c78d with SMTP id 4fb4d7f45d1cf-66319dce062mr3550124a12.20.1773324167117;
        Thu, 12 Mar 2026 07:02:47 -0700 (PDT)
Message-ID: <daf06c16-f857-43b0-ac58-6ecc21970df3@suse.com>
Date: Thu, 12 Mar 2026 15:02:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/4] docs: add man page for xenstore-rm
From: Juergen Gross <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <20260312122240.2784725-1-jgross@suse.com>
 <20260312122240.2784725-4-jgross@suse.com>
 <0748a784-eaf0-47d9-b683-067c28eeb44c@citrix.com>
 <fb001622-e2b2-490c-ab19-f56a36304baa@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: <fb001622-e2b2-490c-ab19-f56a36304baa@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------03l2AUf50XLwJXPc5kLhoiMv"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------03l2AUf50XLwJXPc5kLhoiMv
Content-Type: multipart/mixed; boundary="------------hp78ziEHFT0y5i3Il0lboAMg";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
Message-ID: <daf06c16-f857-43b0-ac58-6ecc21970df3@suse.com>
Subject: Re: [PATCH 3/4] docs: add man page for xenstore-rm
References: <20260312122240.2784725-1-jgross@suse.com>
 <20260312122240.2784725-4-jgross@suse.com>
 <0748a784-eaf0-47d9-b683-067c28eeb44c@citrix.com>
 <fb001622-e2b2-490c-ab19-f56a36304baa@suse.com>
In-Reply-To: <fb001622-e2b2-490c-ab19-f56a36304baa@suse.com>

--------------hp78ziEHFT0y5i3Il0lboAMg
Content-Type: multipart/mixed; boundary="------------1CVwYl9NBCfyoyEOzUPJi9JP"

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

T24gMTIuMDMuMjYgMTQ6NDksIErDvHJnZW4gR3Jvw58gd3JvdGU6DQo+IE9uIDEyLjAzLjI2
IDE0OjIyLCBBbmRyZXcgQ29vcGVyIHdyb3RlOg0KPj4gT24gMTIvMDMvMjAyNiAxMjoyMiBw
bSwgSnVlcmdlbiBHcm9zcyB3cm90ZToNCj4+PiBUaGVyZSBpcyBubyBtYW4gcGFnZSBmb3Ig
eGVuc3RvcmUtcm0sIGFkZCBpdC4NCj4+Pg0KPj4+IFNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4g
R3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCj4+PiAtLS0NCj4+PiDCoCBkb2NzL21hbi94ZW5z
dG9yZS1ybS4xLnBvZCB8IDI0ICsrKysrKysrKysrKysrKysrKysrKysrKw0KPj4+IMKgIDEg
ZmlsZSBjaGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspDQo+Pj4gwqAgY3JlYXRlIG1vZGUgMTAw
NjQ0IGRvY3MvbWFuL3hlbnN0b3JlLXJtLjEucG9kDQo+Pj4NCj4+PiBkaWZmIC0tZ2l0IGEv
ZG9jcy9tYW4veGVuc3RvcmUtcm0uMS5wb2QgYi9kb2NzL21hbi94ZW5zdG9yZS1ybS4xLnBv
ZA0KPj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+Pj4gaW5kZXggMDAwMDAwMDAwMC4uYTg1
Yjk3MTExMw0KPj4+IC0tLSAvZGV2L251bGwNCj4+PiArKysgYi9kb2NzL21hbi94ZW5zdG9y
ZS1ybS4xLnBvZA0KPj4+IEBAIC0wLDAgKzEsMjQgQEANCj4+PiArPWhlYWQxIE5BTUUNCj4+
PiArDQo+Pj4gK3hlbnN0b3JlLXJtIC0gcmVtb3ZlIFhlbnN0b3JlIGtleXMNCj4+PiArDQo+
Pj4gKz1oZWFkMSBTWU5PUFNJUw0KPj4+ICsNCj4+PiArQjx4ZW5zdG9yZS1ybT4gW0k8T1BU
SU9OPl0uLi4gW0k8UEFUSD5dLi4uDQo+Pj4gKw0KPj4+ICs9aGVhZDEgREVTQ1JJUFRJT04N
Cj4+PiArDQo+Pj4gK1JlbW92ZSBvbmUgb3IgbW9yZSBYZW5zdG9yZSBCPFBBVEg+cy4NCj4+
PiArDQo+Pj4gKz1vdmVyDQo+Pj4gKw0KPj4+ICs9aXRlbSBCPC10Pg0KPj4+ICsNCj4+PiAr
VGlkeSB1cCBYZW5zdG9yZSBrZXlzIHdoaWNoIGdvdCBhbGwgY2hpbGRyZW4gcmVtb3ZlZC4N
Cj4+PiArDQo+Pj4gKz1iYWNrDQo+Pj4gKw0KPj4+ICs9aGVhZDEgQlVHUw0KPj4+ICsNCj4+
PiArU2VuZCBidWdzIHRvIHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZywgc2VlDQo+
Pj4gK2h0dHBzOi8vd2lraS54ZW5wcm9qZWN0Lm9yZy93aWtpL1JlcG9ydGluZ19CdWdzX2Fn
YWluc3RfWGVuX1Byb2plY3Qgb24gaG93IA0KPj4+IHRvIHNlbmQgYnVnIHJlcG9ydHMuDQo+
Pg0KPj4gIyB4ZW5zdG9yZS1ybQ0KPj4geGVuc3RvcmUtcm06IFVzYWdlOiB4ZW5zdG9yZS1y
bSBbLWhdIFstdF0ga2V5IFsuLi5dDQo+Pg0KPj4gTG9va2luZyBhdCB4ZW5zdG9yZV9jbGll
bnQuYywgdGhpcyBpcyBjb21tb24gdG8gYWxsLsKgIFNob3VsZG4ndCBpdCBiZQ0KPj4gaW5j
bHVkZWQgaW4gdGhlIG1hbnBhZ2VzID8NCj4gDQo+IEhtbSwgbWF5YmUgYSBnb29kIGlkZWEu
DQo+IA0KPiBJJ2xsIGFkZCBhIHBhdGNoIGFkZGluZyBpdCB0byB0aGUgYWxyZWFkeSBleGlz
dGluZyBtYW4gcGFnZXMgYW5kIGFkZCBpdA0KPiBpbiBlYWNoIG9mIHRoZSA0IG5ldyBtYW4g
cGFnZXMuDQoNCkhtbSwgYW5kIEkgdGhpbmsgaXQgaXMgbm90IGFwcHJvcHJpYXRlIHRvIGV4
aXQgd2l0aCAiMSIgd2hlbiB1c2luZyB0aGUNCiItaCIgcGFyYW1ldGVyLiBJJ2xsIGFkZCBh
bm90aGVyIHBhdGNoIHRvIGZpeCB0aGF0Lg0KDQoNCkp1ZXJnZW4NCg==
--------------1CVwYl9NBCfyoyEOzUPJi9JP
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-----

--------------1CVwYl9NBCfyoyEOzUPJi9JP--

--------------hp78ziEHFT0y5i3Il0lboAMg--

--------------03l2AUf50XLwJXPc5kLhoiMv
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/Ey8FAmmyx4YFAwAAAAAACgkQsN6d1ii/Ey9K
lwf+Mi38JgO8QFNdMskHoFKhL7Pq9R7jvHuU2cG+xcv9/CgvrykKh4M+vwvFFhPi3/ZSuAKi4Lv+
Wxv0glA2EHTl+INlWanZK6RJ9eSp85fz6KcwuZyZO1qQ77scGGHvcn1ZfJbyw2Dudkk0DAJ3IhUH
A1vP+N0Fa9X43MX7qwQYua9Mcgoc3dIB81UfHkJ2CwJ/ofdmGj8fvXKVkRexKw6/AO9cbFI8m1dG
T16+F6a4dFrtV29v/uGcoPMPhKvZG+/V45HyXxQnl46NQDvmT11gnKFGS3IfP5IeKaoqEDj5/kfk
OYo8R3/KRMmLDLSPul6hXqAMMzzbGrbQg6W4cKgTmQ==
=pyqD
-----END PGP SIGNATURE-----

--------------03l2AUf50XLwJXPc5kLhoiMv--


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 14:11:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 14:11:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252447.1549126 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0gl8-0001lG-2M; Thu, 12 Mar 2026 14:11:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252447.1549126; Thu, 12 Mar 2026 14: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 1w0gl7-0001l9-Vm; Thu, 12 Mar 2026 14:11:29 +0000
Received: by outflank-mailman (input) for mailman id 1252447;
 Thu, 12 Mar 2026 14: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=17Qz=BM=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1w0gl6-0001l3-Qu
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 14:11:28 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5a8861dd-1e1d-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 15:11:26 +0100 (CET)
Received: from CH0PR03CA0019.namprd03.prod.outlook.com (2603:10b6:610:b0::24)
 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.9723.6; Thu, 12 Mar
 2026 14:11:17 +0000
Received: from CH3PEPF0000000C.namprd04.prod.outlook.com
 (2603:10b6:610:b0:cafe::99) by CH0PR03CA0019.outlook.office365.com
 (2603:10b6:610:b0::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.28 via Frontend Transport; Thu,
 12 Mar 2026 14:11:10 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF0000000C.mail.protection.outlook.com (10.167.244.39) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Thu, 12 Mar 2026 14:11:17 +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, 12 Mar
 2026 09:11:10 -0500
Received: from localhost (10.180.168.240) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar
 2026 07:02:38 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5a8861dd-1e1d-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vpmd9RGo7BiJyRPhdE3gvBIryy7pFAD6al1gukHKtG1h6gPM4qfPOv2/ctHAWjnb4DNs2KwbvZFmjwMf77irMObj91wyDGhXJMzkdXxLEURm8h1Cz0h1DlrhV4S3wBY34c9ytJwWv1iDXP8J7no11jQ+fCOJWjcplOsOLBPBf7UPR/nmXm8TkG6cBjaSNPQqOdYp6CS87GEt2R07gJ0ROBvYgHHAw8cD8qv4ltxOf/6ZvCLwrAexN5B1TQ1HhgFDbcUkLY4A75pOrbYVFhAzXOTCfIBuIl+WFMQ7XdRcM5uWVdJhKlJOF3Cj9uXGwRuOJBZV0+t643L5wUFdvTfaRw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ygk6T4hWc/DWYmyFTOeqWe2L6qfEZIP82s69SGYY8OU=;
 b=eTRBb1Ps85l3CM8vjMvbkWmrtlP/18jfL+fJgESr9ZVc7pZN9cmW8xC4Ms+mEXMwY36yffnoNblk5Y5zsyaFTBRyl/uSVDAlsaI664NxJOiSMBfge4w3HfZgD5zZqMcja9R4cDxEKit9XiJ9QUY/WT8WdK3Z+pXF9g0YeqQUbtDRRZMIxiNnKFwiESeu8naLIQ0DL7fTW2G+ienZu4f3l1SfNp40EOlgWqLpPrGml6CnqsF/c74BCJJvo9manhddiYOlx5qWr9X2/dJHMrsXM36i6BSplWy8MxCDBiCdxdJ3mceXKetGhNuaGMCQ7p8xsBicR8I6CW87eiptyaHsRg==
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=Ygk6T4hWc/DWYmyFTOeqWe2L6qfEZIP82s69SGYY8OU=;
 b=JYMRVU1/TobHKRNql4xl9KdGrdl22VfWTPbrk0aSGMPMsHwskV1De5X3szAmWvhOl8RVQfxVe32pJots09gXYlWRsSN2PpNVm9aTYkwcJ9pV0R7HrbX0dTvTfN6SZhm1GshX1/AA6y3RHjK7TGaXePAeHnUDLS3Czb7eDzQVXac=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 12 Mar 2026 15:02:36 +0100
Message-ID: <DH0UY76CXR3S.2VR0A0K912P8R@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 v5 5/5] x86/hvm: Un-indent the HVM_FEP block in the #UD
 handler
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20260312112116.22563-1-alejandro.garciavallejo@amd.com>
 <20260312112116.22563-6-alejandro.garciavallejo@amd.com>
 <12ed74c0-1ea2-4458-881e-ccb7e59e0088@suse.com>
In-Reply-To: <12ed74c0-1ea2-4458-881e-ccb7e59e0088@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb09.amd.com
 (10.181.42.218)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PEPF0000000C:EE_|DS0PR12MB9057:EE_
X-MS-Office365-Filtering-Correlation-Id: 55eae381-80d9-409a-e080-08de80413aa0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700016|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	mv+VWNt6yWxkGeRibxlM456wH+T37Me3t+p2wn6FlYFiZZsUNl+aD1NdNTbPjHueqoa0V67jkI8MHQl4Rq60lmDr7qrZ0NFkfeV1uyTN74iLU52ht1FvVuy8sD3eF3YStQYf0H0HrEKlROQcYsUjY5EEvzLsL8pPwszLEpxLD8ygiEYgkaKmvd0H8qvQ3qQGeVItmGupUz1W8knuuD/v2VxjEZ7u5mZ8CWOPv8XuuI7DcKrGqvFq2IZn0Qryh8WbDPiha0ljr8qeVrnTfsmU5xwfJZIWWTK3t+Iaqmpnfepzd//xe/3NKIV3IQCUpUXuczYRBIRLEv5gDH3Q9YxGymqaw0+I0uUQcYKewJP4sSjaBSMPl9rGszob1X3cdGurvdb/98Z/sEEfDt6qxqj3ihLbt8CjZ+gQvurqqGbCG5o+GwJMdC4WBW2iZkyqJ3ikxr/WA66KKfKiBm36VcGiUC2jrxemd2mdlFL9NKnxkDYEhSYfNB+WkuXvaoJALUMGCbucRTx9k1fMBtmgTkrA6uubZCdcCzjdLW0e/jRMOO3xFJQ+39a8nlsTqfyRvCwxquUWnGLEPE1h8spYclHQF7FAyEpd07DkSJHAJUa6c3LfIdPKiJWw2zLS0151CD8EjmcSzDR8xfJ4arIEXNOTOh5B1j8V/3prN/zboLlLDRewkEtLZo+V3Xb0tBRvs03zJFEp9dLj8glwGFFj/exFKr1VUcsgjF2IfkiqqhPKkApP+iwreun/dimWwPItoNSk3Jq7jn6EpXoIJvFWXhZ6QQ==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(376014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	7vsOIiIL/mZsSodla8WIpj9j4ROVfIIpNWpfpwxy2GAVl/wZDpNBrvarEVyKzP1RqF9H8xcRSkccx3bEiUWRW6jFV/GEFABFdkvjOkewB6RyVW/V0jETkbVSHvllJBtufoe+zEi9njhLdtph4fHeE7wi596yeHhF+qs/RGsV837hm7ugl4uzSM5oplpMyuB1goB9hLxsV0gs7JYkvvbd/liOM3aZmlRB3MH+FCwB3LezmutwnafCKinqGeT7KKowWmWi1jXOixzP+4eZSXhJR5sQkv2LIf7rMpq5pyJt+XZGHkpEZE77ol8Kmt/IsHxNQXNl7l7XVA1VfBJdkiObBHxUV7thfLOngrdFHqFFEIzEfr1acKN+Vuwj58if3pqjTTPLXeJht9xs181eAvORLodrme0XpYDIxW2fF8D5YB43e5OtbbtrrjEDpGLBTEMG
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 14:11:17.7497
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 55eae381-80d9-409a-e080-08de80413aa0
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH3PEPF0000000C.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB9057

On Thu Mar 12, 2026 at 12:42 PM CET, Jan Beulich wrote:
> On 12.03.2026 12:21, Alejandro Vallejo wrote:
>> --- a/xen/arch/x86/hvm/hvm.c
>> +++ b/xen/arch/x86/hvm/hvm.c
>> @@ -3837,35 +3837,34 @@ void hvm_ud_intercept(struct cpu_user_regs *regs=
)
>>      struct vcpu *cur =3D current;
>>      bool should_emulate =3D false;
>>      struct hvm_emulate_ctxt ctxt;
>> +    const struct segment_register *cs;
>> +    uint32_t walk;
>> +    unsigned long addr;
>> +    char sig[5]; /* ud2; .ascii "xen" */
>> =20
>>      hvm_emulate_init_once(&ctxt, NULL, regs);
>> =20
>> -    if ( opt_hvm_fep )
>> +    cs =3D &ctxt.seg_reg[x86_seg_cs];
>> +    walk =3D ((ctxt.seg_reg[x86_seg_ss].dpl =3D=3D 3)
>> +            ? PFEC_user_mode : 0) | PFEC_insn_fetch;
>
> While of course functionally everything's fine this way, I'm now entirely=
 lost:
> Why are what were ...
>
>> +    if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip,
>> +                                    sizeof(sig), hvm_access_insn_fetch,
>> +                                    cs, &addr) &&
>> +         (hvm_copy_from_guest_linear(sig, addr, sizeof(sig),
>> +                                     walk, NULL) =3D=3D HVMTRANS_okay) =
&&
>> +         (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) =3D=3D 0) )
>>      {
>> -        const struct segment_register *cs =3D &ctxt.seg_reg[x86_seg_cs]=
;
>> -        uint32_t walk =3D ((ctxt.seg_reg[x86_seg_ss].dpl =3D=3D 3)
>> -                         ? PFEC_user_mode : 0) | PFEC_insn_fetch;
>
> ... initializers before not initializers anymore, when all you're doing i=
s
> (supposedly) re-indentation (and, necessarily, moving decls up to the top=
 of
> the scope they need to live in)?

walk cannot be initialised at the delcaration site because it relies on
hvm_emulate_init_once() having run and you made a strong argument to preser=
ve
the current form so I left cs next to walk, as it was before.

>
>> -        unsigned long addr;
>> -        char sig[5]; /* ud2; .ascii "xen" */
>> -
>> -        if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip,
>> -                                        sizeof(sig), hvm_access_insn_fe=
tch,
>> -                                        cs, &addr) &&
>> -             (hvm_copy_from_guest_linear(sig, addr, sizeof(sig),
>> -                                         walk, NULL) =3D=3D HVMTRANS_ok=
ay) &&
>> -             (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) =3D=3D 0) )
>> -        {
>> -            regs->rip +=3D sizeof(sig);
>> -            regs->eflags &=3D ~X86_EFLAGS_RF;
>> +        regs->rip +=3D sizeof(sig);
>> +        regs->eflags &=3D ~X86_EFLAGS_RF;
>> =20
>> -            /* Zero the upper 32 bits of %rip if not in 64bit mode. */
>> -            if ( !(hvm_long_mode_active(cur) && cs->l) )
>> -                regs->rip =3D (uint32_t)regs->rip;
>> +        /* Zero the upper 32 bits of %rip if not in 64bit mode. */
>> +        if ( !(hvm_long_mode_active(cur) && cs->l) )
>> +            regs->rip =3D (uint32_t)regs->rip;
>> =20
>> -            add_taint(TAINT_HVM_FEP);
>> +        add_taint(TAINT_HVM_FEP);
>> =20
>> -            should_emulate =3D true;
>> -        }
>> +        should_emulate =3D true;
>>      }
>> =20
>>      if ( !should_emulate )
>
> With this, the purpose of the should_emulate variable effectively vanishe=
s,
> without it actually being purged (unlike you had it earlier).

That goes away with patch 6, that I neglected to send before.

>
> Jan



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 14:18:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 14:18:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252464.1549137 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0gru-0002TV-PB; Thu, 12 Mar 2026 14:18:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252464.1549137; Thu, 12 Mar 2026 14: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 1w0gru-0002TO-LF; Thu, 12 Mar 2026 14:18:30 +0000
Received: by outflank-mailman (input) for mailman id 1252464;
 Thu, 12 Mar 2026 14:18: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=+mtD=BM=oss.qualcomm.com=dmitry.baryshkov@srs-se1.protection.inumbo.net>)
 id 1w0grt-0002TD-6O
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 14:18:29 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 558c08e2-1e1e-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 15:18:26 +0100 (CET)
Received: from pps.filterd (m0279870.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62CDrlRb1740509
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 14:18:25 GMT
Received: from mail-ua1-f71.google.com (mail-ua1-f71.google.com
 [209.85.222.71])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cumvdhq8s-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 14:18:25 +0000 (GMT)
Received: by mail-ua1-f71.google.com with SMTP id
 a1e0cc1a2514c-94ad0ada31bso19024843241.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 07:18:25 -0700 (PDT)
Received: from umbar.lan
 (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi.
 [2001:14ba:a073:af00:264b:feff:fe8b:be8a])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-5a15602e268sm977710e87.21.2026.03.12.07.18.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 12 Mar 2026 07:18:22 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 558c08e2-1e1e-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	y7xFTGXb5DPsTd4oxsCvF8mg+z4yb1CrqE2iNac3ooo=; b=pC9s3oCR3E3pJGcF
	6UBJOzneozRH8yHPflsxqstBz8NmkNtzIcCOMzWl7Mf8bniEEG3tg1o8Gf6eOER8
	iEH5SI48La5x3ShD7d2U00BqfTQnGC86RMZBVy2//Y+3lQg8W+seoMLrQOG0EE+z
	dNM8ykzfkh7kNSve4jqCX2isXmsW6au2z2aD2Vl0RhkvgqBsHAjer2W60uOZM/ou
	G8q60QJZpk6R8OE+8EDLj6gFvBCIXS+427OcZgRvCgssFzBbiFfuWMcbTcw+C5VY
	9kymaHldyvZ6go56cowbutM/NN/MqcTN7b0pv0p53rwa2PzV2geT4iFmeTzVyLMA
	ChezqA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1773325105; x=1773929905; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=y7xFTGXb5DPsTd4oxsCvF8mg+z4yb1CrqE2iNac3ooo=;
        b=DKdgrxc3/U7i14WxkJX93Nr/Y5+SWDTAJGsH9MUZDlZ75EauNuZanMzo6SybNKW55k
         6h2l2jENigpvWekhHvtViaDciVTNIM1YmdXHhVlGz5pC5/vf8rBMA8yqIG6oA1+qAuGj
         kvprI3Yno0MCJ/EgCaiO8V0KU6JSV6hUi+ElpiHy9Wfv+ZTqie4mSCaxRDiCQQNeo2Uv
         PkI+hS1RPCYmfuvYRvf538jhU9OAoAhmFoDk3Y9hlZq/WRcE2fQrFcynUFCk1jKetqKN
         QBCAVEiCx7zW0cjtbPpbyuzkFsyFZ8U/s9PyVPB9+2H8/PBrUmCHQSFZJdAhZVTyckk3
         9NVw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773325105; x=1773929905;
        h=in-reply-to:content-transfer-encoding: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=y7xFTGXb5DPsTd4oxsCvF8mg+z4yb1CrqE2iNac3ooo=;
        b=HlXk7GDhYP95zr2FdJdQhxzpwFsv4tQ/VqhMMRWzQqpLnfwUiCscdM3WiHb4PkCJTM
         8qWHFhNBWkpflkHwmaGOw+UEaJFXEFoW25i21S6oBsM04ExyKY8Z6ajAvG8uu4nD/B18
         I7RI2BqvMOufPMdNULSZupQjCGMaXMeHqkDcJdykMGYoPG2tjQhTgfz9zGmZmzUlsPeU
         uLnwn4xRW5EMm+BWcjeSzWHpJZhv9RB/Ud1wyN8O3ws9b+gYuEaa/RmrNPxo2ZlbKhKM
         tKc6gHCqnF6FyT7/1VG9bjUjaCuaNSG50kCQgE3yDM2K5704I8vYrsBCJCmBO6sssXoM
         4Qgg==
X-Forwarded-Encrypted: i=1; AJvYcCWtjcFDGdZo3hI7ufxnTvIyBx7JJQXZw4ufIsuODA+d9opEqWyxGAv4ivGWUGpU9Y5TYy/5YqEuLX8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyj6z6f1t1Hc9IcKTMIV7+4Cadcm4brUUZQcFCgoOXSQd+DorIb
	y4d/G5rLjTc/ujLqzBQaymTCF//frrjJwZ+0BTje+3Ge0w5/ckxHCSTZ8AqB/PEnbNnXxpeRsfh
	jrnIFLgBKKosbpSW+/rdTSIdJM/8TAiTeGqtjIT0Euj0REbA7iFdb/xiF7nbXDRzvbVxxbw==
X-Gm-Gg: ATEYQzxUbhojKNuFf1p4Z84DE4elS+3B4h2Mh8YsBCnP6qwAUQZH1tpheCHxKLd7gIL
	6ZddagrUIyjtXI6gisBdHIAs5Ee9wFGdsBZ/SURb5TOmu84mDAGlAqbJw0A05yZEe0UfG9HoMwM
	7Si18BX+9tc6sTPnE2te2bxotf5PFklShUQuAJMBlcepASCgIYLBRdt7zFOnauoG1lLKF3aiGhY
	zUSHfOUP5YIp9Q8e6KYys4IeGByRBSfV3W87xu4OJFB9wlCCLfvWckFYvZWCAyRPp3ruQ0r/YUL
	goJibnGUcIoAjf4a0LVjQE4lNpvMfh31+KRNYUNS03LQXazf9HIIfKo5RiW98uC4vCJFLrNXjjO
	gANIMuQoqzqbJgAyRWQa/FDyctbGjXa9HohlpeG4LFoS0iBtHXqiHknnI3VKnFTVfY40Jy7RQEB
	7PlnYZYrByyNHfdBR/bRsvxWmJc0ujwo1g2DM=
X-Received: by 2002:a05:6102:f11:b0:5ff:eaf0:6e77 with SMTP id ada2fe7eead31-601f4a44a79mr1406623137.17.1773325104576;
        Thu, 12 Mar 2026 07:18:24 -0700 (PDT)
X-Received: by 2002:a05:6102:f11:b0:5ff:eaf0:6e77 with SMTP id ada2fe7eead31-601f4a44a79mr1406556137.17.1773325104042;
        Thu, 12 Mar 2026 07:18:24 -0700 (PDT)
Date: Thu, 12 Mar 2026 16:18:20 +0200
From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Cc: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Subject: Re: [PATCH v10 2/3] of: factor arguments passed to of_map_id() into
 a struct
Message-ID: <dyjdwxaq4oc7ahri3iuhnmobh3gwmn6drhox7t2elep4rlqhuq@fe4gp5t7q5r5>
References: <20260309-parse_iommu_cells-v10-0-c62fcaa5a1d8@oss.qualcomm.com>
 <20260309-parse_iommu_cells-v10-2-c62fcaa5a1d8@oss.qualcomm.com>
 <esfzpgpgenydif2sxahsetkglz6kewsgjhkmzr6ulrrkctnkbq@a4zsfdmhbxui>
 <27edd195-b0d3-4214-9df3-74a84da1e3e1@oss.qualcomm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <27edd195-b0d3-4214-9df3-74a84da1e3e1@oss.qualcomm.com>
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzEyMDExNCBTYWx0ZWRfX/JrZjcCWHsfk
 yjnhNL5JhJ4RxbXw1x0taQx9jqMbzSThcNTTf/BAV14VQFeFrhM15f1VJnvzRMettdaGWY7/n7R
 POtbu6xlgOh6654NpwlZpGQiEt2FsEeGKDY7GwZOg7tIQ+rHKcDtJTfRWjfnEBzOs++XMHWjZpd
 pBezH7NJui+RbmbUkZLR94qXxkgZWe0RNDTuEn20abUtbhNox84lmcphXmZsU3Jz/rwHAHAqofT
 HzaO2HXs3JdxymsmTNtsTNgsmInRq6c4mSb4HsbO1nIBZq15WaJAD9D2VzSAEq/3ugWtgTmsHCK
 6bqRTi33lx4495P2JESuuQDlBaNKCxZZQ24oPJuVCDEJwyE3ewIsuk1YHARTD5uKEZoR7KqKgmM
 csbe65mOVcp+VS4tZwNUQ0aMnObij52mmMJR8Aq8L5Kgb3IATjqhWneXqCYAv82IkiqXQCSw7vh
 E+8qGzmygWdbcGz70aA==
X-Proofpoint-GUID: 0Ju4sdRhMROkeyidv1YF4FpnhN13vHsi
X-Proofpoint-ORIG-GUID: 0Ju4sdRhMROkeyidv1YF4FpnhN13vHsi
X-Authority-Analysis: v=2.4 cv=XsT3+FF9 c=1 sm=1 tr=0 ts=69b2cb31 cx=c_pps
 a=KB4UBwrhAZV1kjiGHFQexw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10
 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8
 a=VwQbUJbxAAAA:8 a=KPxCMH61eqygQ3DODZ0A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=o1xkdb1NAhiiM49bd1HK:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-12_01,2026-03-12_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 phishscore=0 spamscore=0 bulkscore=0 clxscore=1015 adultscore=0
 priorityscore=1501 impostorscore=0 lowpriorityscore=0 malwarescore=0
 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001
 definitions=main-2603120114

On Thu, Mar 12, 2026 at 05:12:51PM +0530, Vijayanand Jitta wrote:
> 
> 
> On 3/10/2026 2:53 AM, Dmitry Baryshkov wrote:
> > On Mon, Mar 09, 2026 at 01:03:38AM +0530, Vijayanand Jitta wrote:
> >> From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> >>
> >> Change of_map_id() to take a pointer to struct of_phandle_args
> >> instead of passing target device node and translated IDs separately.
> >> Update all callers accordingly.
> >>
> >> Subsequent patch will make use of the args_count field in
> >> struct of_phandle_args.
> >>
> >> Suggested-by: Rob Herring (Arm) <robh@kernel.org>
> >> Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> >> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
> >> ---
> >>  drivers/cdx/cdx_msi.c                    |  5 ++-
> >>  drivers/iommu/of_iommu.c                 |  2 +-
> >>  drivers/irqchip/irq-gic-its-msi-parent.c | 11 ++++--
> >>  drivers/of/base.c                        | 63 ++++++++++++++++----------------
> >>  drivers/of/irq.c                         |  8 +++-
> >>  drivers/pci/controller/dwc/pci-imx6.c    | 16 ++++++--
> >>  drivers/pci/controller/pcie-apple.c      |  5 ++-
> >>  drivers/xen/grant-dma-ops.c              |  4 +-
> >>  include/linux/of.h                       | 12 +++---
> >>  9 files changed, 76 insertions(+), 50 deletions(-)
> >>
> >> diff --git a/drivers/cdx/cdx_msi.c b/drivers/cdx/cdx_msi.c
> >> index 63b3544ec997..03232b5ffbca 100644
> >> --- a/drivers/cdx/cdx_msi.c
> >> +++ b/drivers/cdx/cdx_msi.c
> >> @@ -121,6 +121,7 @@ static int cdx_msi_prepare(struct irq_domain *msi_domain,
> >>  			   struct device *dev,
> >>  			   int nvec, msi_alloc_info_t *info)
> >>  {
> >> +	struct of_phandle_args msi_spec = { .np = NULL };
> > 
> > Why do you need to set it? Parse functions ignore passed args, don't
> > they?
> > 
> 
> The parse function does check arg->np on input — if it is non-NULL,
> it is used to match only entries targeting that specific node.
> 
> Also, there is this existing path in drivers/pci/msi/irqdomain.c which
> pre-sets the node and passes it as input to of_msi_xlate(), so the node
> pointer is not ignored by the parse code:

Is it only being used for MSIs? If so, can we make that explicit in the
API by having the 'filter' device_node pointer?

> 
> u32 pci_msi_domain_get_msi_rid(struct irq_domain *domain, struct pci_dev *pdev)
> {
>         struct device_node *of_node;
>         u32 rid = pci_dev_id(pdev);
> 
>         pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid);
> 
>         of_node = irq_domain_get_of_node(domain);
>         rid = of_node ? of_msi_xlate(&pdev->dev, &of_node, rid) :
>                         iort_msi_map_id(&pdev->dev, rid);
> 
>         return rid;
> }
> 

-- 
With best wishes
Dmitry


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 15:24:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 15:24:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252518.1549145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0htm-0002go-DF; Thu, 12 Mar 2026 15:24:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252518.1549145; Thu, 12 Mar 2026 15:24:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0htm-0002gh-9E; Thu, 12 Mar 2026 15:24:30 +0000
Received: by outflank-mailman (input) for mailman id 1252518;
 Thu, 12 Mar 2026 15:24: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=jTts=BM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0htl-0002gb-UY
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 15:24:29 +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 8f380d24-1e27-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 16:24:28 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-439b790af67so1893485f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 08:24:28 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439fe1abf84sm8889305f8f.14.2026.03.12.08.24.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 08:24:27 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8f380d24-1e27-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773329067; x=1773933867; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5oLVtQpLqy428cgp/RNfUqKk5b/GyZ/2Zw1sXCyk+Vg=;
        b=JDg46vYufsvc/3c3C284SfnQsnGjpg3l0PSZaCIZX152SSkHhweF0lntIQeMHf8qBG
         Kfhiji56dSgUmXGbDkuix3WE1J5HLkCfFH/KxeVFzvgNJ2/j5ZtmWmd/SPZm7LY/lSm/
         cd60hyuxgdqjrVUI6XW+15xddIft8LHT2boDZ+FA84Jc/cbGVgwHFPdGQhJI6LdsLlfD
         OkjOGeSN/CV1Bh7I61jHX6G9hBOMJHGWLs6jPZ1OMvJfeKC6STKt7I40amZvzDYbAe4R
         ZHdOoNHSliSpOnmYnnUuFprd08guLVU6xY9blxhugoo8btssJeoP/LDJZYAr4GjajQ1V
         h0zw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773329067; x=1773933867;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5oLVtQpLqy428cgp/RNfUqKk5b/GyZ/2Zw1sXCyk+Vg=;
        b=RkUmnpoi6CzvWXR+X+I+xCRAK2iZMtQQXvh4VyR11xMvjI/WYAiBtAfplyMfCX0R0R
         +oHScW6Kmq9IT1WyXDobmUHhD62fq/TR4on0hNsOcdJNgzMaiv2GkHGUjaXxLZseTvbB
         3f5uiDVVASwDBYSnnOggjuaHEXoK4GQI/jxIv6rA77Z4LnKyJrej9s5xET/wYeHg2qrf
         jS77piht3NMvsHQhjqi0EAfJMwvemsAeacSGyJIqBvyCOTOr7yCIzyHzW4jZA2dUnFEK
         x9lpOcrkDoOivpi0FyC7DCTvdy3157YtwyP36QkP1F55bIYkK0jOKQqHrjMIYLv5Na0c
         rDXg==
X-Forwarded-Encrypted: i=1; AJvYcCXUAK56DEBJi0/F6vX4/CGJYa8FlQnq1QwmdmEG8rUn5UdlvsRfmGbXZg2bL917obOmDVf+Z9GVoJ8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwCEiBcwqbj77iobcPWZFa625H1uY84I1ui6Ip0uPCKfGN9Lnux
	4uQwKxWRrinp3uKGDsGtAr4g0wOdn8HSjc4DRwtQx1Y3C2j3K2oUAm2TzIFRVnMAOA==
X-Gm-Gg: ATEYQzyH17BVolmvny27J34TzJ3WS6P4M33mGxovVCC4qbNBEGeWCVIWVJa8NZsvrvo
	GXCHwpe93M13PlnLunHJdyq16tZnioklV/NsE5te/oEsQ/OpV1Gr8crPSza1Z9T8WG9OuJVUqgE
	cAcoRnP8C92VyeMIi1pGEJv2Ky2pZjhmKxyDH2FZRjkYWeJNK3C67Ecyp+ziSC7NclPe0ejRygb
	3UA+zYGYquW9U6563DOHRyEk7kZeLRp5GYxK1kgIwuHd6CW9/dTpsEAdbIJo+z+n8kqByxoyYsp
	kJ71/Ub14cZXaf1fHQp3uEzJu5hBKsxkeLtSHkrc+j38vlK+8wMh6piioV1eikDqNPtv8oKyvlE
	8LGxv46f61ynr3VTF2w4sOFxMSNQTf5shFdvWAoAjsea1tv+TRsUH2Bqk2IC4odSmJAtjJQfEUf
	6C7elUs3rUWF35DtZlKDWFfhF6lPw1eTfl3HrHiPkFx1DRjfPopxWiBCQ44UBkBPXgYOpci9gOp
	/RDV11ioat6MHTNNT/xxCzGEQ==
X-Received: by 2002:a05:6000:40cb:b0:437:7719:ca82 with SMTP id ffacd0b85a97d-43a04d752b5mr193700f8f.3.1773329067606;
        Thu, 12 Mar 2026 08:24:27 -0700 (PDT)
Message-ID: <d4f81997-5e4d-4d7c-ac11-6961145e6420@suse.com>
Date: Thu, 12 Mar 2026 16:24:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 6/5] x86/hvm: Add a non-FEP path to the #UD handler
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: <20260312112116.22563-1-alejandro.garciavallejo@amd.com>
 <20260312134731.38475-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: <20260312134731.38475-1-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.03.2026 14:45, Alejandro Vallejo wrote:
> While the #UD handler is dead code when CONFIG_HVM_FEP is disabled it's
> helpful to keep the function around. Reinject #UD in the non-FEP case so
> DCE can remove the rest.

For the code change - I don't think this should be a separate change. I also
didn't understand Andrew's earlier request to split the original change to
go this far.

As to the "dead code" aspect (using Misra terminology it's really
"unreachable code" aiui), we may need to deal with that, as we've accepted
that rule. Yes, Eclair is unlikely to be able to spot this, yet that doesn't
make the issue go away.

Jan

> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -3835,13 +3835,18 @@ int hvm_descriptor_access_intercept(uint64_t exit_info,
>  void hvm_ud_intercept(struct cpu_user_regs *regs)
>  {
>      struct vcpu *cur = current;
> -    bool should_emulate = false;
>      struct hvm_emulate_ctxt ctxt;
>      const struct segment_register *cs;
>      uint32_t walk;
>      unsigned long addr;
>      char sig[5]; /* ud2; .ascii "xen" */
>  
> +    if ( !opt_hvm_fep )
> +    {
> +        ASSERT_UNREACHABLE();
> +        goto reinject;
> +    }
> +
>      hvm_emulate_init_once(&ctxt, NULL, regs);
>  
>      cs = &ctxt.seg_reg[x86_seg_cs];
> @@ -3863,20 +3868,15 @@ void hvm_ud_intercept(struct cpu_user_regs *regs)
>              regs->rip = (uint32_t)regs->rip;
>  
>          add_taint(TAINT_HVM_FEP);
> -
> -        should_emulate = true;
> -    }
> -
> -    if ( !should_emulate )
> -    {
> -        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
> -        return;
>      }
> +    else
> +        goto reinject;
>  
>      switch ( hvm_emulate_one(&ctxt, VIO_no_completion) )
>      {
>      case X86EMUL_UNHANDLEABLE:
>      case X86EMUL_UNIMPLEMENTED:
> +    reinject:
>          hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
>          break;
>      case X86EMUL_EXCEPTION:



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 15:51:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 15:51:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252541.1549163 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iJf-0006ko-KW; Thu, 12 Mar 2026 15:51:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252541.1549163; Thu, 12 Mar 2026 15:51:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iJf-0006kf-HP; Thu, 12 Mar 2026 15:51:15 +0000
Received: by outflank-mailman (input) for mailman id 1252541;
 Thu, 12 Mar 2026 15:51:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGPq=BM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0iJe-0006Wy-SV
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 15:51:14 +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 4ac5963a-1e2b-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 16:51:11 +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 16F815BF65;
 Thu, 12 Mar 2026 15:51:11 +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 E6F5D40047;
 Thu, 12 Mar 2026 15:51: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 w9fRNu7gsmnyTAAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 12 Mar 2026 15:51:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4ac5963a-1e2b-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773330671; 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=0+JIAs1pcc2G6ixxT0YQyIlB5jR3EwTDQy9/ZF90Iog=;
	b=ON+CzDybp8wGKKYzLSH92G/yDt81Sz6JxmUCQ71OB7E54cwLxECDubPYvcUJZO9Bp4fx/s
	LSMdXu37qONVpLhfFlW18tTR5jIj7hnlDk1/tvsAhVhX6MzS+6oyeyEJsJDRXAlT66gvjS
	+gGgZRUNhQ6N5v+M0mKOsqkq/66bVXc=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773330671; 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=0+JIAs1pcc2G6ixxT0YQyIlB5jR3EwTDQy9/ZF90Iog=;
	b=ON+CzDybp8wGKKYzLSH92G/yDt81Sz6JxmUCQ71OB7E54cwLxECDubPYvcUJZO9Bp4fx/s
	LSMdXu37qONVpLhfFlW18tTR5jIj7hnlDk1/tvsAhVhX6MzS+6oyeyEJsJDRXAlT66gvjS
	+gGgZRUNhQ6N5v+M0mKOsqkq/66bVXc=
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 1/8] docs: add -h parameter description to xenstore-* man pages
Date: Thu, 12 Mar 2026 16:50:55 +0100
Message-ID: <20260312155102.2862824-2-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260312155102.2862824-1-jgross@suse.com>
References: <20260312155102.2862824-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.995];
	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)[imap1.dmz-prg2.suse.org:helo,suse.com:mid,suse.com:email];
	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: 

The "-h" parameter is missing in the man pages of the xenstore-*
programs.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- new patch
---
 docs/man/xenstore-chmod.1.pod | 4 ++++
 docs/man/xenstore-ls.1.pod    | 4 ++++
 docs/man/xenstore-read.1.pod  | 4 ++++
 docs/man/xenstore-write.1.pod | 4 ++++
 4 files changed, 16 insertions(+)

diff --git a/docs/man/xenstore-chmod.1.pod b/docs/man/xenstore-chmod.1.pod
index d221f5dffc..ca1a2172f9 100644
--- a/docs/man/xenstore-chmod.1.pod
+++ b/docs/man/xenstore-chmod.1.pod
@@ -42,6 +42,10 @@ write, and set permissions).
 
 =over
 
+=item B<-h>
+
+Show the usage information for xenstore-chmod and exit the program.
+
 =item B<-r>
 
 Apply the permissions to the key and all its I<children>.
diff --git a/docs/man/xenstore-ls.1.pod b/docs/man/xenstore-ls.1.pod
index a9f8b32653..b070e8368c 100644
--- a/docs/man/xenstore-ls.1.pod
+++ b/docs/man/xenstore-ls.1.pod
@@ -13,6 +13,10 @@ using a nested, tree-like view.
 
 =over
 
+=item B<-h>
+
+Show the usage information for xenstore-ls and exit the program.
+
 =item B<-f>
 
 Show the full path for all keys.
diff --git a/docs/man/xenstore-read.1.pod b/docs/man/xenstore-read.1.pod
index c7768cbbe5..7fe63268bd 100644
--- a/docs/man/xenstore-read.1.pod
+++ b/docs/man/xenstore-read.1.pod
@@ -12,6 +12,10 @@ Read values of one or more Xenstore I<PATH>s.
 
 =over
 
+=item B<-h>
+
+Show the usage information for xenstore-read and exit the program.
+
 =item B<-p>
 
 Prefix value with key name.
diff --git a/docs/man/xenstore-write.1.pod b/docs/man/xenstore-write.1.pod
index 74f80f7b1b..33a8af2db4 100644
--- a/docs/man/xenstore-write.1.pod
+++ b/docs/man/xenstore-write.1.pod
@@ -13,6 +13,10 @@ provided to write them at once - in one Xenstore transaction.
 
 =over
 
+=item B<-h>
+
+Show the usage information for xenstore-write and exit the program.
+
 =item B<-R>
 
 Write raw value, skip parsing escaped characters (\x..).
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 15:51:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 15:51:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252540.1549153 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iJd-0006XB-Dn; Thu, 12 Mar 2026 15:51:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252540.1549153; Thu, 12 Mar 2026 15:51:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iJd-0006X4-BE; Thu, 12 Mar 2026 15:51:13 +0000
Received: by outflank-mailman (input) for mailman id 1252540;
 Thu, 12 Mar 2026 15:51: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=QGPq=BM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0iJc-0006Wy-J2
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 15:51:12 +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 47969df3-1e2b-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 16:51:06 +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 86F6E4D40A;
 Thu, 12 Mar 2026 15:51:05 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 5D44940047;
 Thu, 12 Mar 2026 15:51:05 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id Zcw7FengsmntTAAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 12 Mar 2026 15:51:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 47969df3-1e2b-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773330665; 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=TQU4G2RSwxCfUXXUKJGE4oEooMml3JLP9LP1/mmSleA=;
	b=dZj3aAuMFQYuyNd6Tb6i49iyQp53Uq+TscmnBaHqSx9skFQN0q29d6mWorUkIlQ+VRe9Xn
	1i3Snjw3AUYyj3/QYArI+sgUtti/gQjL82JcjxSEuxwG/LEvhg2qE7I3coU9xubZY2sNMB
	F663GHmgDdhoZafRAZ6nfMD9qWwHH0Q=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=dZj3aAuM
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773330665; 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=TQU4G2RSwxCfUXXUKJGE4oEooMml3JLP9LP1/mmSleA=;
	b=dZj3aAuMFQYuyNd6Tb6i49iyQp53Uq+TscmnBaHqSx9skFQN0q29d6mWorUkIlQ+VRe9Xn
	1i3Snjw3AUYyj3/QYArI+sgUtti/gQjL82JcjxSEuxwG/LEvhg2qE7I3coU9xubZY2sNMB
	F663GHmgDdhoZafRAZ6nfMD9qWwHH0Q=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Julien Grall <julien@xen.org>
Subject: [PATCH v2 0/8] tools/xs-clients: add some man pages and fixes
Date: Thu, 12 Mar 2026 16:50:54 +0100
Message-ID: <20260312155102.2862824-1-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	MIME_TRACE(0.00)[0:+];
	TO_DN_SOME(0.00)[];
	ARC_NA(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	RCVD_TLS_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns,suse.com:dkim,suse.com:mid]
X-Rspamd-Queue-Id: 86F6E4D40A
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Spam-Level: 

For some of the Xenstore client programs the man pages are missing
entirely, the existing man pages don't mention the "-h" parameter.

Additionally fix some other minor bugs in the code. Those bugs seem
to exist since roughly 20 years now, so I didn't do a thorough
archaeological examination for finding the exact commits introducing
them, as any potential backport candidate will need to go to all
still supported Xen versions anyway.

Changes in V2:
- new patches 1 and 6-8
- some small fixes in the other patches

Juergen Gross (8):
  docs: add -h parameter description to xenstore-* man pages
  docs: add man page for xenstore-exists
  docs: add man page for xenstore-list
  docs: add man page for xenstore-rm
  docs: add man page for xenstore-watch
  tools/xs-clients: don't exit with error when using -h parameter
  tools/xs-clients: fix usage information of xenstore-exists
  tools/xs-clients: fix output of "xenstore-list -p /"

 docs/man/xenstore-chmod.1.pod      |  4 +++
 docs/man/xenstore-exists.1.pod     | 25 ++++++++++++++++
 docs/man/xenstore-list.1.pod       | 28 +++++++++++++++++
 docs/man/xenstore-ls.1.pod         |  4 +++
 docs/man/xenstore-read.1.pod       |  4 +++
 docs/man/xenstore-rm.1.pod         | 28 +++++++++++++++++
 docs/man/xenstore-watch.1.pod      | 29 ++++++++++++++++++
 docs/man/xenstore-write.1.pod      |  4 +++
 tools/xs-clients/xenstore_client.c | 48 ++++++++++++++++--------------
 9 files changed, 152 insertions(+), 22 deletions(-)
 create mode 100644 docs/man/xenstore-exists.1.pod
 create mode 100644 docs/man/xenstore-list.1.pod
 create mode 100644 docs/man/xenstore-rm.1.pod
 create mode 100644 docs/man/xenstore-watch.1.pod

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 15:51:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 15:51:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252542.1549172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iJk-00070e-Qi; Thu, 12 Mar 2026 15:51:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252542.1549172; Thu, 12 Mar 2026 15:51:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iJk-00070X-Nu; Thu, 12 Mar 2026 15:51:20 +0000
Received: by outflank-mailman (input) for mailman id 1252542;
 Thu, 12 Mar 2026 15: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=QGPq=BM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0iJi-0006Wy-To
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 15:51:18 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de
 [2a07:de40:b251:101:10:150:64:1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4e243145-1e2b-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 16:51: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-out1.suse.de (Postfix) with ESMTPS id 9AD9D4D425;
 Thu, 12 Mar 2026 15:51:16 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 768F140047;
 Thu, 12 Mar 2026 15:51:16 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id FppjG/Tgsmn7TAAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 12 Mar 2026 15:51:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4e243145-1e2b-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773330676; 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=64En+YQYgXvNWq4oftoVnzADngq8/UtZY61tW+VANyE=;
	b=feB459sCfIJ+OVVPLAdMzwxMFhNaAG4MmbbL+WfbDZ3oiJxZ+lfPQgtXlXXT3mMm7XnuQZ
	sI8nR7VWjqBZ02NhhNNwevN20PDJ3Gm16TREV2+zlSwZlt5Nfd4qb3Z4kIJvc1O4+J8vIq
	kSBZaTAMlrjZgeKIlAvm4vi63MgD4Ns=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773330676; 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=64En+YQYgXvNWq4oftoVnzADngq8/UtZY61tW+VANyE=;
	b=feB459sCfIJ+OVVPLAdMzwxMFhNaAG4MmbbL+WfbDZ3oiJxZ+lfPQgtXlXXT3mMm7XnuQZ
	sI8nR7VWjqBZ02NhhNNwevN20PDJ3Gm16TREV2+zlSwZlt5Nfd4qb3Z4kIJvc1O4+J8vIq
	kSBZaTAMlrjZgeKIlAvm4vi63MgD4Ns=
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/8] docs: add man page for xenstore-exists
Date: Thu, 12 Mar 2026 16:50:56 +0100
Message-ID: <20260312155102.2862824-3-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260312155102.2862824-1-jgross@suse.com>
References: <20260312155102.2862824-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)[-0.991];
	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)[imap1.dmz-prg2.suse.org:helo,suse.com:mid,suse.com:email];
	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: 

There is no man page for xenstore-exists, add it.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- fix title grammar (Andrew Coopoer)
- add -h parameter description (Andrew Cooper)
---
 docs/man/xenstore-exists.1.pod | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)
 create mode 100644 docs/man/xenstore-exists.1.pod

diff --git a/docs/man/xenstore-exists.1.pod b/docs/man/xenstore-exists.1.pod
new file mode 100644
index 0000000000..a6eeb7ff96
--- /dev/null
+++ b/docs/man/xenstore-exists.1.pod
@@ -0,0 +1,25 @@
+=head1 NAME
+
+xenstore-exists - test whether Xenstore key exists
+
+=head1 SYNOPSIS
+
+B<xenstore-exists> I<PATH>
+
+=head1 DESCRIPTION
+
+Tests whether the specified Xenstore I<PATH> is readable and sets
+the exit value accordingly (B<0> if I<PTAH> is readable, B<1> if not).
+
+=over
+
+=item B<-h>
+
+Show the usage information for xenstore-exists and exit the program.
+
+=back
+
+=head1 BUGS
+
+Send bugs to xen-devel@lists.xenproject.org, see
+https://wiki.xenproject.org/wiki/Reporting_Bugs_against_Xen_Project on how to send bug reports.
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 15:51:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 15:51:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252544.1549181 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iJq-0007Ik-38; Thu, 12 Mar 2026 15:51:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252544.1549181; Thu, 12 Mar 2026 15:51:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iJp-0007IX-Vw; Thu, 12 Mar 2026 15:51:25 +0000
Received: by outflank-mailman (input) for mailman id 1252544;
 Thu, 12 Mar 2026 15:51: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=QGPq=BM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0iJo-0006Wy-UI
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 15:51:24 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5166f76d-1e2b-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 16:51:22 +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 28FE54D427;
 Thu, 12 Mar 2026 15:51:22 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 0493D40047;
 Thu, 12 Mar 2026 15:51:21 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id RtkmO/ngsmn/TAAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 12 Mar 2026 15:51: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: 5166f76d-1e2b-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773330682; 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=RFA8GMbJpS5je5Wh1bQcfi+ogP8qDDA8yZb799muM/M=;
	b=Zzu/RnUFxzAH1bN3hqPjKcvtzk9+89MjjXSkRMDOLqBepNLWCrnd6niv37uWwKRiMSCQYW
	URlCDHNoaw9NnrJqAGcsTMxZBwcRU1/h+882jA2LLKETYYPDZzGMXSEmz/SPbFrR6fmndS
	ivtcIq3uI5tPQ7U0VVWeM7OKUfcuNH4=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773330682; 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=RFA8GMbJpS5je5Wh1bQcfi+ogP8qDDA8yZb799muM/M=;
	b=Zzu/RnUFxzAH1bN3hqPjKcvtzk9+89MjjXSkRMDOLqBepNLWCrnd6niv37uWwKRiMSCQYW
	URlCDHNoaw9NnrJqAGcsTMxZBwcRU1/h+882jA2LLKETYYPDZzGMXSEmz/SPbFrR6fmndS
	ivtcIq3uI5tPQ7U0VVWeM7OKUfcuNH4=
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/8] docs: add man page for xenstore-list
Date: Thu, 12 Mar 2026 16:50:57 +0100
Message-ID: <20260312155102.2862824-4-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260312155102.2862824-1-jgross@suse.com>
References: <20260312155102.2862824-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.80
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.991];
	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)[imap1.dmz-prg2.suse.org:helo,suse.com:mid,suse.com:email];
	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

There is no man page for xenstore-list, add it.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- add -h parameter description (Andrew Cooper)
---
 docs/man/xenstore-list.1.pod | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 docs/man/xenstore-list.1.pod

diff --git a/docs/man/xenstore-list.1.pod b/docs/man/xenstore-list.1.pod
new file mode 100644
index 0000000000..ea2853a1fc
--- /dev/null
+++ b/docs/man/xenstore-list.1.pod
@@ -0,0 +1,28 @@
+=head1 NAME
+
+xenstore-list - list Xenstore key children
+
+=head1 SYNOPSIS
+
+B<xenstore-list> [I<OPTION>]... [I<PATH>]...
+
+=head1 DESCRIPTION
+
+List direct children of one or more Xenstore I<PATH>s, one child per line.
+
+=over
+
+=item B<-h>
+
+Show the usage information for xenstore-list and exit the program.
+
+=item B<-p>
+
+List the full Xenstore path of each listed path.
+
+=back
+
+=head1 BUGS
+
+Send bugs to xen-devel@lists.xenproject.org, see
+https://wiki.xenproject.org/wiki/Reporting_Bugs_against_Xen_Project on how to send bug reports.
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 15:51:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 15:51:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252547.1549189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iJv-0007eI-8x; Thu, 12 Mar 2026 15:51:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252547.1549189; Thu, 12 Mar 2026 15:51:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iJv-0007e7-5r; Thu, 12 Mar 2026 15:51:31 +0000
Received: by outflank-mailman (input) for mailman id 1252547;
 Thu, 12 Mar 2026 15:51:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QGPq=BM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0iJt-0006Wy-Jg
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 15:51:29 +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 54b4ca6f-1e2b-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 16:51:28 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id AC93E5BF7A;
 Thu, 12 Mar 2026 15:51:27 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 8951F40047;
 Thu, 12 Mar 2026 15:51:27 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id wYbBH//gsmkVTQAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 12 Mar 2026 15:51: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: 54b4ca6f-1e2b-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773330687; 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=nQq/loq1VwDHyExW6Q4R4bNBp1JsxtumbefcmiHlO18=;
	b=NnxV0x5IxGnFdEcfobVuERpZ350qGEmh6n42tcHB9nN86K6eOYdQg2jN260rqJ9Hn5t/lg
	cVifJGmjJdV0II8QwFCA8TiZ0yUMp5GIpyEih/lPEtaYjwfTxIvuCCgAJvZWk+HaJlBAWR
	7NNeatICLGBFw5J//9uxGSLVnoI063Q=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=NnxV0x5I
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773330687; 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=nQq/loq1VwDHyExW6Q4R4bNBp1JsxtumbefcmiHlO18=;
	b=NnxV0x5IxGnFdEcfobVuERpZ350qGEmh6n42tcHB9nN86K6eOYdQg2jN260rqJ9Hn5t/lg
	cVifJGmjJdV0II8QwFCA8TiZ0yUMp5GIpyEih/lPEtaYjwfTxIvuCCgAJvZWk+HaJlBAWR
	7NNeatICLGBFw5J//9uxGSLVnoI063Q=
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 4/8] docs: add man page for xenstore-rm
Date: Thu, 12 Mar 2026 16:50:58 +0100
Message-ID: <20260312155102.2862824-5-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260312155102.2862824-1-jgross@suse.com>
References: <20260312155102.2862824-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns];
	FROM_HAS_DN(0.00)[];
	ARC_NA(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)[];
	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];
	RCVD_COUNT_TWO(0.00)[2];
	RCVD_TLS_ALL(0.00)[];
	RCPT_COUNT_THREE(0.00)[3];
	DKIM_TRACE(0.00)[suse.com:+]
X-Rspamd-Queue-Id: AC93E5BF7A
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Spam-Level: 

There is no man page for xenstore-rm, add it.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- add -h parameter description (Andrew Cooper)
---
 docs/man/xenstore-rm.1.pod | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 docs/man/xenstore-rm.1.pod

diff --git a/docs/man/xenstore-rm.1.pod b/docs/man/xenstore-rm.1.pod
new file mode 100644
index 0000000000..40e3e581eb
--- /dev/null
+++ b/docs/man/xenstore-rm.1.pod
@@ -0,0 +1,28 @@
+=head1 NAME
+
+xenstore-rm - remove Xenstore keys
+
+=head1 SYNOPSIS
+
+B<xenstore-rm> [I<OPTION>]... [I<PATH>]...
+
+=head1 DESCRIPTION
+
+Remove one or more Xenstore B<PATH>s.
+
+=over
+
+=item B<-h>
+
+Show the usage information for xenstore-rm and exit the program.
+
+=item B<-t>
+
+Tidy up Xenstore keys which got all children removed.
+
+=back
+
+=head1 BUGS
+
+Send bugs to xen-devel@lists.xenproject.org, see
+https://wiki.xenproject.org/wiki/Reporting_Bugs_against_Xen_Project on how to send bug reports.
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 15:51:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 15:51:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252554.1549199 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iK0-00084Y-I8; Thu, 12 Mar 2026 15:51:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252554.1549199; Thu, 12 Mar 2026 15: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 1w0iK0-00084L-Em; Thu, 12 Mar 2026 15:51:36 +0000
Received: by outflank-mailman (input) for mailman id 1252554;
 Thu, 12 Mar 2026 15:51: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=QGPq=BM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0iJz-0006Wy-3o
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 15:51:35 +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 5802642e-1e2b-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 16:51:33 +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 3CCCE5BF78;
 Thu, 12 Mar 2026 15:51:33 +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 17D3140047;
 Thu, 12 Mar 2026 15:51:33 +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 oBJEBAXhsmlFTQAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 12 Mar 2026 15:51: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: 5802642e-1e2b-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773330693; 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=R7AkpMLYUCg9U/TuLd24tXnRN78cZgI9ZdfIFLQokTk=;
	b=kSVxdU/+xtRELQvXNRr33Vuqbv4dV42vRrWa71olS+ee+FAm0dZpzPh9fEw+ZY2xQeqdC1
	to4UZ1UoKlvrkBMfSlC/mgFVZoJcxhJ/J/RcBWsScnahu1Ow4RSzmqKSH9FaU881GlubrR
	RZmTDMvxd6OUfV2mvFhollWIM2me8Ko=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b="kSVxdU/+"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773330693; 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=R7AkpMLYUCg9U/TuLd24tXnRN78cZgI9ZdfIFLQokTk=;
	b=kSVxdU/+xtRELQvXNRr33Vuqbv4dV42vRrWa71olS+ee+FAm0dZpzPh9fEw+ZY2xQeqdC1
	to4UZ1UoKlvrkBMfSlC/mgFVZoJcxhJ/J/RcBWsScnahu1Ow4RSzmqKSH9FaU881GlubrR
	RZmTDMvxd6OUfV2mvFhollWIM2me8Ko=
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 5/8] docs: add man page for xenstore-watch
Date: Thu, 12 Mar 2026 16:50:59 +0100
Message-ID: <20260312155102.2862824-6-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260312155102.2862824-1-jgross@suse.com>
References: <20260312155102.2862824-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns];
	FROM_HAS_DN(0.00)[];
	ARC_NA(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)[];
	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];
	RCVD_COUNT_TWO(0.00)[2];
	RCVD_TLS_ALL(0.00)[];
	RCPT_COUNT_THREE(0.00)[3];
	DKIM_TRACE(0.00)[suse.com:+]
X-Rspamd-Queue-Id: 3CCCE5BF78
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Spam-Level: 

There is no man page for xenstore-watch, add it.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- add -h parameter description (Andrew Cooper)
---
 docs/man/xenstore-watch.1.pod | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 docs/man/xenstore-watch.1.pod

diff --git a/docs/man/xenstore-watch.1.pod b/docs/man/xenstore-watch.1.pod
new file mode 100644
index 0000000000..de28d380b7
--- /dev/null
+++ b/docs/man/xenstore-watch.1.pod
@@ -0,0 +1,29 @@
+=head1 NAME
+
+xenstore-watch - wait for Xenstore watch events
+
+=head1 SYNOPSIS
+
+B<xenstore-watch> [I<OPTION>]... [I<PATH>]...
+
+=head1 DESCRIPTION
+
+Set Xenstore watches to the specified I<PATH>s and print the path for each
+event happening.
+
+=over
+
+=item B<-h>
+
+Show the usage information for xenstore-watch and exit the program.
+
+=item B<-n> B<NR>
+
+Stop waiting after having received B<NR> watch events.
+
+=back
+
+=head1 BUGS
+
+Send bugs to xen-devel@lists.xenproject.org, see
+https://wiki.xenproject.org/wiki/Reporting_Bugs_against_Xen_Project on how to send bug reports.
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 15:51:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 15:51:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252560.1549207 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iK4-0008W0-TY; Thu, 12 Mar 2026 15:51:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252560.1549207; Thu, 12 Mar 2026 15: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 1w0iK4-0008Vr-QV; Thu, 12 Mar 2026 15:51:40 +0000
Received: by outflank-mailman (input) for mailman id 1252560;
 Thu, 12 Mar 2026 15:51: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=QGPq=BM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0iK4-0007Yh-1t
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 15:51:40 +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 5b4c35ec-1e2b-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 16:51:39 +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 C2ED94D422;
 Thu, 12 Mar 2026 15:51:38 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 989B34004A;
 Thu, 12 Mar 2026 15:51:38 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id 1XqzIwrhsmmETQAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 12 Mar 2026 15:51: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: 5b4c35ec-1e2b-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773330698; 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=536CC7FPa9EY0f440nvgYhoisCibNAKp2N047ggM1Lo=;
	b=h16lj+687PEh5/wSkXFmhFppRKRDh0gvc8nB2GhYxXlF6m9EQIbUI7NTA+QMfHC+Eu5NCW
	8ye203t+bNtyQjAJ4T9ZXf/GXJ6+NRF2spv9cZcqwBcTzTirxbfpp6iqlSuRpVOeE6wcWf
	kt6nn+5m0S+ZOSg7/xHGTK2cKVYG298=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773330698; 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=536CC7FPa9EY0f440nvgYhoisCibNAKp2N047ggM1Lo=;
	b=h16lj+687PEh5/wSkXFmhFppRKRDh0gvc8nB2GhYxXlF6m9EQIbUI7NTA+QMfHC+Eu5NCW
	8ye203t+bNtyQjAJ4T9ZXf/GXJ6+NRF2spv9cZcqwBcTzTirxbfpp6iqlSuRpVOeE6wcWf
	kt6nn+5m0S+ZOSg7/xHGTK2cKVYG298=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v2 6/8] tools/xs-clients: don't exit with error when using -h parameter
Date: Thu, 12 Mar 2026 16:51:00 +0100
Message-ID: <20260312155102.2862824-7-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260312155102.2862824-1-jgross@suse.com>
References: <20260312155102.2862824-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.80
X-Spam-Level: 
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.996];
	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,imap1.dmz-prg2.suse.org:helo];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCPT_COUNT_THREE(0.00)[4];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO

The "-h" parameter of the xenstore-* programs is explicitly meant to
show the usage information of the programs. This use case should not
result in an error of the program's exit code.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- new patch
---
 tools/xs-clients/xenstore_client.c | 40 +++++++++++++++---------------
 1 file changed, 20 insertions(+), 20 deletions(-)

diff --git a/tools/xs-clients/xenstore_client.c b/tools/xs-clients/xenstore_client.c
index a104cf6487..1794451d43 100644
--- a/tools/xs-clients/xenstore_client.c
+++ b/tools/xs-clients/xenstore_client.c
@@ -214,37 +214,37 @@ output_raw(const char *data, int len)
 }
 
 static void
-usage(enum mode mode, int incl_mode, const char *progname)
+usage(int eval, enum mode mode, int incl_mode, const char *progname)
 {
     const char *mstr = NULL;
 
     switch (mode) {
     case MODE_unknown:
-	errx(1, "Usage: %s <mode> [-h] [...]", progname);
+	errx(eval, "Usage: %s <mode> [-h] [...]", progname);
     case MODE_read:
 	mstr = incl_mode ? "read " : "";
-	errx(1, "Usage: %s %s[-h] [-p] [-R] key [...]", progname, mstr);
+	errx(eval, "Usage: %s %s[-h] [-p] [-R] key [...]", progname, mstr);
     case MODE_write:
 	mstr = incl_mode ? "write " : "";
-	errx(1, "Usage: %s %s[-h] [-R] key value [...]", progname, mstr);
+	errx(eval, "Usage: %s %s[-h] [-R] key value [...]", progname, mstr);
     case MODE_rm:
 	mstr = incl_mode ? "rm " : "";
-	errx(1, "Usage: %s %s[-h] [-t] key [...]", progname, mstr);
+	errx(eval, "Usage: %s %s[-h] [-t] key [...]", progname, mstr);
     case MODE_exists:
 	mstr = incl_mode ? "exists " : "";
 	/* fallthrough */
     case MODE_list:
 	mstr = mstr ? : incl_mode ? "list " : "";
-	errx(1, "Usage: %s %s[-h] [-p] key [...]", progname, mstr);
+	errx(eval, "Usage: %s %s[-h] [-p] key [...]", progname, mstr);
     case MODE_ls:
 	mstr = mstr ? : incl_mode ? "ls " : "";
-	errx(1, "Usage: %s %s[-h] [-f] [-p] [path]", progname, mstr);
+	errx(eval, "Usage: %s %s[-h] [-f] [-p] [path]", progname, mstr);
     case MODE_chmod:
 	mstr = incl_mode ? "chmod " : "";
-	errx(1, "Usage: %s %s[-h] [-u] [-r] key <mode [modes...]>", progname, mstr);
+	errx(eval, "Usage: %s %s[-h] [-u] [-r] key <mode [modes...]>", progname, mstr);
     case MODE_watch:
 	mstr = incl_mode ? "watch " : "";
-	errx(1, "Usage: %s %s[-h] [-n NR] key", progname, mstr);
+	errx(eval, "Usage: %s %s[-h] [-n NR] key", progname, mstr);
     }
 }
 
@@ -685,7 +685,7 @@ main(int argc, char **argv)
 	command = command + strlen("xenstore-");
     }
     else if (argc < 2)
-	usage(MODE_unknown, 0, argv[0]);
+	usage(1, MODE_unknown, 0, argv[0]);
     else
     {
 	command = argv[1];
@@ -715,7 +715,7 @@ main(int argc, char **argv)
 
 	switch (c) {
 	case 'h':
-	    usage(mode, switch_argv, argv[0]);
+	    usage(0, mode, switch_argv, argv[0]);
 	    /* NOTREACHED */
         case 'f':
 	    if ( mode == MODE_ls ) {
@@ -723,44 +723,44 @@ main(int argc, char **argv)
 		desired_width = 0;
 		show_whole_path = 1;
 	    } else {
-		usage(mode, switch_argv, argv[0]);
+		usage(1, mode, switch_argv, argv[0]);
 	    }
             break;
 	case 'p':
 	    if ( mode == MODE_read || mode == MODE_list || mode == MODE_ls )
 		prefix = 1;
 	    else
-		usage(mode, switch_argv, argv[0]);
+		usage(1, mode, switch_argv, argv[0]);
 	    break;
 	case 't':
 	    if ( mode == MODE_rm )
 		tidy = 1;
 	    else
-		usage(mode, switch_argv, argv[0]);
+		usage(1, mode, switch_argv, argv[0]);
 	    break;
 	case 'u':
 	    if ( mode == MODE_chmod )
 		upto = 1;
 	    else
-		usage(mode, switch_argv, argv[0]);
+		usage(1, mode, switch_argv, argv[0]);
 	    break;
 	case 'r':
 	    if ( mode == MODE_chmod )
 		recurse = 1;
 	    else
-		usage(mode, switch_argv, argv[0]);
+		usage(1, mode, switch_argv, argv[0]);
 	    break;
 	case 'n':
 	    if ( mode == MODE_watch )
 		nr_watches = atoi(optarg);
 	    else
-		usage(mode, switch_argv, argv[0]);
+		usage(1, mode, switch_argv, argv[0]);
 	    break;
 	case 'R':
 	    if ( mode == MODE_read || mode == MODE_write )
 		raw = 1;
 	    else
-		usage(mode, switch_argv, argv[0]);
+		usage(1, mode, switch_argv, argv[0]);
 	    break;
 	}
     }
@@ -770,13 +770,13 @@ main(int argc, char **argv)
 	break;
     case MODE_write:
 	if ((argc - switch_argv - optind) % 2 == 1) {
-	    usage(mode, switch_argv, argv[0]);
+	    usage(1, mode, switch_argv, argv[0]);
 	    /* NOTREACHED */
 	}
 	/* DROP-THRU */
     default:
 	if (optind == argc - switch_argv) {
-	    usage(mode, switch_argv, argv[0]);
+	    usage(1, mode, switch_argv, argv[0]);
 	    /* NOTREACHED */
 	}
     }
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 15:51:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 15:51:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252567.1549217 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iKB-0000dR-5P; Thu, 12 Mar 2026 15:51:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252567.1549217; Thu, 12 Mar 2026 15: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 1w0iKB-0000dG-2G; Thu, 12 Mar 2026 15:51:47 +0000
Received: by outflank-mailman (input) for mailman id 1252567;
 Thu, 12 Mar 2026 15:51: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=QGPq=BM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0iK9-0007Yh-63
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 15:51:45 +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 5ea2c491-1e2b-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 16:51:44 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 58BCB4D427;
 Thu, 12 Mar 2026 15:51:44 +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 2C2344004B;
 Thu, 12 Mar 2026 15:51:44 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id gNM5CRDhsmkxTgAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 12 Mar 2026 15:51: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: 5ea2c491-1e2b-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773330704; 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=FQsTKa0///LGiIF+n+xK56M52snk+N3Xd7rOsp9V8tw=;
	b=iONHjMJft3B3v6PcKT8EAyXAXkdMfAeCCmQeTHPkzMOi2eOp4qLT28YW7sYTKjRXDRLyLM
	oTPrnZwSoAoPjTOY45re0Dg7AE0THktwK2wLWsjZEWbw79Tu6oAhMiN/FzLH1PrvlyYUwP
	Xd8BM57NLtOrlL65hqC0FQiy4ivqkVE=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=iONHjMJf
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773330704; 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=FQsTKa0///LGiIF+n+xK56M52snk+N3Xd7rOsp9V8tw=;
	b=iONHjMJft3B3v6PcKT8EAyXAXkdMfAeCCmQeTHPkzMOi2eOp4qLT28YW7sYTKjRXDRLyLM
	oTPrnZwSoAoPjTOY45re0Dg7AE0THktwK2wLWsjZEWbw79Tu6oAhMiN/FzLH1PrvlyYUwP
	Xd8BM57NLtOrlL65hqC0FQiy4ivqkVE=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v2 7/8] tools/xs-clients: fix usage information of xenstore-exists
Date: Thu, 12 Mar 2026 16:51:01 +0100
Message-ID: <20260312155102.2862824-8-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260312155102.2862824-1-jgross@suse.com>
References: <20260312155102.2862824-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:dkim,suse.com:email,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns];
	FROM_HAS_DN(0.00)[];
	ARC_NA(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)[];
	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];
	RCVD_COUNT_TWO(0.00)[2];
	RCVD_TLS_ALL(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	DKIM_TRACE(0.00)[suse.com:+]
X-Rspamd-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: 58BCB4D427

The usage information of xenstore-exists is just wrong, as the "-p"
option is not supported by xenstore-exists.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- new patch
---
 tools/xs-clients/xenstore_client.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/xs-clients/xenstore_client.c b/tools/xs-clients/xenstore_client.c
index 1794451d43..3b02d3a196 100644
--- a/tools/xs-clients/xenstore_client.c
+++ b/tools/xs-clients/xenstore_client.c
@@ -232,7 +232,7 @@ usage(int eval, enum mode mode, int incl_mode, const char *progname)
 	errx(eval, "Usage: %s %s[-h] [-t] key [...]", progname, mstr);
     case MODE_exists:
 	mstr = incl_mode ? "exists " : "";
-	/* fallthrough */
+	errx(eval, "Usage: %s %s[-h] key", progname, mstr);
     case MODE_list:
 	mstr = mstr ? : incl_mode ? "list " : "";
 	errx(eval, "Usage: %s %s[-h] [-p] key [...]", progname, mstr);
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 15:51:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 15:51:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252573.1549226 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iKF-00010y-HA; Thu, 12 Mar 2026 15:51:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252573.1549226; Thu, 12 Mar 2026 15:51:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iKF-00010p-DL; Thu, 12 Mar 2026 15:51:51 +0000
Received: by outflank-mailman (input) for mailman id 1252573;
 Thu, 12 Mar 2026 15: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=QGPq=BM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0iKE-0007Yh-V1
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 15:51:50 +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 61f33052-1e2b-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 16:51: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 E1A2E5BF6E;
 Thu, 12 Mar 2026 15:51:49 +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 B640B40047;
 Thu, 12 Mar 2026 15:51:49 +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 2H/xKhXhsmk0TgAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 12 Mar 2026 15: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: 61f33052-1e2b-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773330709; 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=nbkAscoNejZs6bhgSJdq6eOm+4nfCFdywVAJjLWBgu4=;
	b=Q6dm5VnkAtxVDfcyUHMZrNEsdbVHl3rRihInZ1jKFkTlcJYiSuIvSJX6ujXxqNJNNoXdEO
	nXRaNR/hjr5ljGR5CbqwCCu+HSTCtSucFqVGG3XqZM6I8IwiZjW/FYz3hPxb6qpBNVV1rZ
	9hekkPrDq4+/+uno9hwh8kqB8ZcKBlA=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=Q6dm5Vnk
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773330709; 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=nbkAscoNejZs6bhgSJdq6eOm+4nfCFdywVAJjLWBgu4=;
	b=Q6dm5VnkAtxVDfcyUHMZrNEsdbVHl3rRihInZ1jKFkTlcJYiSuIvSJX6ujXxqNJNNoXdEO
	nXRaNR/hjr5ljGR5CbqwCCu+HSTCtSucFqVGG3XqZM6I8IwiZjW/FYz3hPxb6qpBNVV1rZ
	9hekkPrDq4+/+uno9hwh8kqB8ZcKBlA=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v2 8/8] tools/xs-clients: fix output of "xenstore-list -p /"
Date: Thu, 12 Mar 2026 16:51:02 +0100
Message-ID: <20260312155102.2862824-9-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260312155102.2862824-1-jgross@suse.com>
References: <20260312155102.2862824-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns,suse.com:mid,suse.com:dkim,suse.com:email];
	FROM_HAS_DN(0.00)[];
	ARC_NA(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)[];
	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];
	RCVD_COUNT_TWO(0.00)[2];
	RCVD_TLS_ALL(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	DKIM_TRACE(0.00)[suse.com:+]
X-Rspamd-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: E1A2E5BF6E

When calling "xenstore-list -p /" it will prepend all listed keys
with "//" instead of "/".

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- new patch
---
 tools/xs-clients/xenstore_client.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/tools/xs-clients/xenstore_client.c b/tools/xs-clients/xenstore_client.c
index 3b02d3a196..29d840df84 100644
--- a/tools/xs-clients/xenstore_client.c
+++ b/tools/xs-clients/xenstore_client.c
@@ -568,13 +568,17 @@ perform(enum mode mode, int optind, int argc, char **argv, struct xs_handle *xsh
         case MODE_list: {
             unsigned int i, num;
             char **list = xs_directory(xsh, xth, argv[optind], &num);
+            const char *pref = argv[optind];
+
             if (list == NULL) {
                 warnx("could not list path %s", argv[optind]);
                 return 1;
             }
+            if (prefix && !strcmp(pref, "/"))
+                pref = "";
             for (i = 0; i < num; i++) {
                 if (prefix)
-                    output("%s/", argv[optind]);
+                    output("%s/", pref);
                 output("%s\n", list[i]);
             }
             free(list);
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 15:58:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 15:58:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252622.1549235 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iQf-0002z9-6Z; Thu, 12 Mar 2026 15:58:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252622.1549235; Thu, 12 Mar 2026 15:58: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 1w0iQf-0002z2-3R; Thu, 12 Mar 2026 15:58:29 +0000
Received: by outflank-mailman (input) for mailman id 1252622;
 Thu, 12 Mar 2026 15:58: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=cgz6=BM=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w0iQe-0002yw-4U
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 15:58:28 +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 4dab9022-1e2c-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 16:58:27 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV8PR03MB8138.namprd03.prod.outlook.com (2603:10b6:408:296::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.12; Thu, 12 Mar
 2026 15:58:21 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9700.013; Thu, 12 Mar 2026
 15:58: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: 4dab9022-1e2c-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nU872e6YYWED9TeegPUm6RfZEhBDAnRO4mNxQqiM61S6c2gdR5m5BQ2alQ0eCKSFrF9HHgZjwmzTB32MEiD/MPzDeCnVYllIOUt5HeQUlMEoXsqf2pfGfFqdvVzrJC5hpFVlk9/fNM6m49VcthfFugkvfZExsrgeQ/sPCc5beyXJxovloA1nsI9U2JnJ7WHi/MRlMLK5mPa3LQmgLdVdueo6TvdpbqKNG0WViLdVP0L+lIba0W1oVGcYzFpB+9B8ZHqYFt4CHY225tguWOPR7BhLnBBbJJssdg7gJF8E/OPV2DWXZjU6wC77ny/V8i/2pw72h0ppKO20ttyU+ARWtw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EZbWXyvBuykD8oq86koLhFGcDhNU9YbXOw0H9aSp3RM=;
 b=dv7m/gwir0JnOSfFGMKDx4qExVagEA6i4Tm5ezznRWreMqA5lXxzOHFXU5zQbt5rzTQXatkCvxAJ0Wl71EEhVjwsVgEE238Z0bBjONW1UW2XIfkuOv+NjSfyo9DzHtehaFRVCk9B1bxyHJeFr/YU3G1rrPjX7YcHnlfKALRkYTN9n6rgNTi6pS/zFGLNq8Q+D1ecSHT/p5t78U/gZuS0YALUtiLDiCahQvwJmKN1JJ95UFHWLqUDKDNvqc+sKKEoyWbwzS8ltDnt10QKcIkCuq01F0F/SWX6mH5yGlA0UL1tyK514zgwcLXLjcrDXlto4hcpOOe2vF7ukMabkvXfyg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=EZbWXyvBuykD8oq86koLhFGcDhNU9YbXOw0H9aSp3RM=;
 b=cB4yluGewPNNdYnzsYqPIJw1CVBgBd1qH9DAXtrxNrJX+NBFuXLzYxOrdNesPWjwST9tqhSsKV1ycHWjm90wuG4qaIDUNYG76SvwjfI4ggzxn1WDDG16aqBUm9DS6vx2y9JeBxTc9oyvvBdBkWhlDCJIEjBiqfLXlG7xwowkwVI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <3aabdda1-7153-4be2-ba78-57b290fda509@citrix.com>
Date: Thu, 12 Mar 2026 15:58:18 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH v2 4/8] docs: add man page for xenstore-rm
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <20260312155102.2862824-1-jgross@suse.com>
 <20260312155102.2862824-5-jgross@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260312155102.2862824-5-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PR3PR09CA0003.eurprd09.prod.outlook.com
 (2603:10a6:102:b7::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_|LV8PR03MB8138:EE_
X-MS-Office365-Filtering-Correlation-Id: abbb2570-22da-4205-e472-08de80502f5a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	jKG/uWrU2G4XIE3z5cNtXbyyiwnpa9Mo7YyhggmI3wYiCtuVgD9eMHpWteATRAfOiI4poJiujK1nqj/vmF4+smR+PlrDpl9P3RQAlm9h7g3RfiQWPXGlD7H+XjT7YpS3WWQcqpmv4LCDvqQgRPSFmfMvxfWuXa/bdW03xaG/1YEGdbnvmUFjLG6XyEtFq0M8ON7QybWuTDCcltZnjI+qPxVg2TrBFxLd67licf+1ulovsb+DeQ1FWqMnrhyA2S8XO0yhKashqnZuu8H3ACZG6XJP9U8K6Yi5sd08NLLPaVBvf7IthP8ns9wjaeSA9Q4lq32dB5kJcKxU1Xo0oACH9I2S75jrsZISaznLuZ2wQQHvW4NbW6r9i2Cl5lLuYDPm7LLL1DFMAuEaIfn1nab9gs5KyHS1z04CuAL97F1n3UNwNxZSZ8PdJJceOZfNKqFoSkF7EGbHabvnTMn+2YsOueuhK8PfbYEyIWYsgqorX4ZsHxB2ZXQv2GclTTkZCcOgiJnb4/pz/l7dy0Iu10qWOCsPyYnL/kyuXWnHrGcI5JeL8JJj9LuevvBjrYu8PAAy5erxtETGdrOgEUS/kDjSgixSqAZk2qowu+wVC9NUWFMpfh3YO8O6L2ub5G7fQFRFhIp/9Coq+8EBAz6yGQfG7Bkn4ly4blC6xUTGeWk/G7k3Y0bJMx0JsWu1kz7unYRqn4F6YOWOJnrNXmkwNY5j8gDIn3puoPO/lPzCSLOnqGA=
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)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WFN5dkNtaVcvUGVFWDgzZTdObTZETTR2ZkdRK3pKOCs2VzV6WmtxTFJKc0tG?=
 =?utf-8?B?dW9IMi83R1V0TlBFQkFrZkIwdHhLTUh3Z1F4bDBZZUhBUkxNTE8vOXo5QWRt?=
 =?utf-8?B?WDQvTlpaNnRheHkxQVp0NnNYWitiUXl1R3VibjFWVVdaSndLbWZlSitXZ0Rx?=
 =?utf-8?B?SDVZaWRmTWdyaTd3d1JnTlhIdjdkWFhDN0xJS3JUNmswNjBIaHNMeVhVTUUx?=
 =?utf-8?B?UjhwOW1aSGY4eVZtT01ET0dJY213ZWdudXJGaVB3bEd0NklFYzVnYWZFdmlF?=
 =?utf-8?B?SCtmKysrZFAvNDB3ZGdqVDBQNTdxNVpZMi92NE1KU1dpa29jOG5PU1dwYWM3?=
 =?utf-8?B?cVBzWGp3ZElZM3gwZmh3S2Q4WlFMMDNjQXdDUzFaOVEvaWJsdEhoOFZvN01I?=
 =?utf-8?B?V2JqQnI2Rlp4aGdjd3lxUTBOa3FMUngvRnpNd1FIeHZwcytacU0xTFFUNEl6?=
 =?utf-8?B?MWZMQWE1WHB1b3dkY0tZSXBFSEpQZHpuUm9vVkw5dEw5aFB0ajVmdWRBdUpl?=
 =?utf-8?B?QXNRaFRZcEJ2UEFNZ1hwalJmS0dxOW94Ny94NDdHM1ZPclZPdGwwdlU5VHgy?=
 =?utf-8?B?YlEydmx0czY0Q2t0dmlRQlZ6SEptb3U3WXpMditDdXdBQlY3cWp4YkdZUXdD?=
 =?utf-8?B?d0FheTloK3lqc0dxMnVXbjZEMXNDTUVGRyt4WWNNVFZUQW1YY0dYR2lDNG9z?=
 =?utf-8?B?TWJOaEIzUXJzVDVYWFhXUGtDWXl4YjNtblBONXBRbXFtT05Rc2gybFNrcm5x?=
 =?utf-8?B?SktSR0Y5bTFrTmlOTmFMczRPTVVFazd1eE13aUdrVzMvdkpCUTZGcmlKclFa?=
 =?utf-8?B?T0RIckIwNVdSYkY3NXZic2I5QWZBTlZ3cDdGVDE1TmFaQjE4VStVRFJISlVq?=
 =?utf-8?B?c0FFaDhCa21ZcXlkK05uN3hmcXZrc05kM3E4dzg0RHFoM0NKR0d1VHpkdzNZ?=
 =?utf-8?B?aDFKQ0FNbGFyZjkxMkE5b0JLSFMvTEpaWXgyTU1RTzQyWVVReWhCSDFWM2x6?=
 =?utf-8?B?UUNhVGxocU5zOURybE5haHpZV04zbllxVmkvWjE0cEZpTitoMjMyOFhpb3ho?=
 =?utf-8?B?TU1qb1MyNENVc1QwcVlMQlVPNE4yZ1VsZkYyTXJLc09PalpGRDdXekVMSE5j?=
 =?utf-8?B?WURzdXVhYTVUc2I0UDFZY1F5S3R0SEVCWjhndHZtSk9sa01BalFBanlvUlpk?=
 =?utf-8?B?Z3d1bzZxYlFSekR2TE5IV1dRdldiaDlCOG9CNzNCTE9sVWFTcDFIQ3BBcUEw?=
 =?utf-8?B?aWdJR2pYWno3anoxV3A1SG1zTjJ6NmNMUmRESUhsUFhxT05JWnBDVy9pcm9B?=
 =?utf-8?B?eVoyK3IxdU92dzBhWGduQVU1UzBPUmNiU3NYMlRYcGdSenF5US9QOHhrdlNF?=
 =?utf-8?B?bmhIRTlzUzhJRC9EcHlwSVUybFRtVy9JcFVpeVdPOHhleVBKSW0rOW1uNytk?=
 =?utf-8?B?Z2xDTm9EcCtZVFc2Z1FoSjR4R21rNVFvdjNsK21QeTcveUp2bDRmYUl3c2ty?=
 =?utf-8?B?L25RSlZ3MkpNMEtsYjQ0WHlpVy9relAweHlRUUpDUE5qM3dTNzlIYVN2ZStl?=
 =?utf-8?B?UjRsUHY4RTREY1NWdFc2a1p0eTA4aTlIa3hHVG5MbzhuR1JySzZuV1NNUzRp?=
 =?utf-8?B?ODNjVFNFRVZEc1IxWVZVTlB1U2trV2YzUWMwQUFZa3dkQjZUU3kwSE5oazJ0?=
 =?utf-8?B?eTJhbHpBMDR3K09QQ0dITlFwdCtkTlprbHA4Szk2aXFSbkIyejQ2dXBUTHNC?=
 =?utf-8?B?bWVqWDMvdmg2am1aQmZOdnpzMk1CSWZUc0dZN3d6NEJuakVEUmdjUEhOSlFE?=
 =?utf-8?B?U0pGY203UzNKTGRCOS9zUUpISlQrRzZQeHZqa0p4QlU3RDVCckFWVExLcUFT?=
 =?utf-8?B?ZjdMNVJzdlh3bWNaY0hrcmZhbzhiaXR6VVpnZFNCZ2hmL1JFTjJFTTEremxi?=
 =?utf-8?B?RDhmUDVhbkZkVEU1eW1FajU2eXVjU0h2cHNxa0FxOXhQcFE3QUJZZU5ycm9t?=
 =?utf-8?B?U1dPZldNNE9ubXJjMUNTVjdEemxkYzlRNHN5UWl2emhxTTl6N0pLWlVhcXg0?=
 =?utf-8?B?M2xBNloySUowMnR5QUZIN3RqTmMzZTlFSlJlSG1RT2J6Y3hjRmdtMFF0RmZ3?=
 =?utf-8?B?bnQ2b1ZPYkpPczFGYXZEMmJHUjB2c1Y1dUlmQXQzTVlCZk5FWWFSYU5jTVNx?=
 =?utf-8?B?aHJJWk9nQW9qUUpDU0QrWW1NVTkxQVc2eVo4cEFzbEFUQmx6ZmRIS204TWlP?=
 =?utf-8?B?SGhOdU52RXBQcGhEdU91dHZXLytDWEhrTjR6Sys3dGdxZWNvc1NLWG9UUnhR?=
 =?utf-8?B?OWpFMXhESE1ERlJGNTVLNVpYSDgzZ2laNkxOS3UwVFZhZkcrRjR4WDdWNzVD?=
 =?utf-8?Q?L9MQ70dI+PwFZdiw=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: abbb2570-22da-4205-e472-08de80502f5a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 15:58:21.4143
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: z8tYviHhTVVUwr9XrfMI09x2oyn9qC8xSON3yJPwh8D+OBIchwgVofrqXAOdquZBccHoNJ/6CFDLc99uEXtnafSnYJdiCTIPQ3lq1E33eNM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR03MB8138

On 12/03/2026 3:50 pm, Juergen Gross wrote:
> diff --git a/docs/man/xenstore-rm.1.pod b/docs/man/xenstore-rm.1.pod
> new file mode 100644
> index 0000000000..40e3e581eb
> --- /dev/null
> +++ b/docs/man/xenstore-rm.1.pod
> @@ -0,0 +1,28 @@
> +=head1 NAME
> +
> +xenstore-rm - remove Xenstore keys
> +
> +=head1 SYNOPSIS
> +
> +B<xenstore-rm> [I<OPTION>]... [I<PATH>]...
> +
> +=head1 DESCRIPTION
> +
> +Remove one or more Xenstore B<PATH>s.
> +
> +=over
> +
> +=item B<-h>
> +
> +Show the usage information for xenstore-rm and exit the program.
> +
> +=item B<-t>
> +
> +Tidy up Xenstore keys which got all children removed.

Sorry for not spotting this before.  "which had all".

Also it occurs to me that "Tidy up" is not sufficiently close to
delete/remove for the behaviour to be apparent to everyone.  Perhaps
"Tidy up (i.e. remove) Xenstore ..."  ?

The phrase "Tidy up" does need to stay at the start of the sentence
because otherwise there's no hope of knowing what -t stands for.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 16:00:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 16:00:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252639.1549244 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iSs-00058f-Kp; Thu, 12 Mar 2026 16:00:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252639.1549244; Thu, 12 Mar 2026 16: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 1w0iSs-00058Y-I3; Thu, 12 Mar 2026 16:00:46 +0000
Received: by outflank-mailman (input) for mailman id 1252639;
 Thu, 12 Mar 2026 16: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=cgz6=BM=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w0iSr-00053J-0Z
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 16:00:45 +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 9d0e3503-1e2c-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 17:00:40 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH3PR03MB7460.namprd03.prod.outlook.com (2603:10b6:610:199::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.13; Thu, 12 Mar
 2026 16:00:35 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9700.013; Thu, 12 Mar 2026
 16:00: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: 9d0e3503-1e2c-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pKst5KfYt5jwl8NuT8Xrz68IsARmIqdD8XvAnVWss+vfgMYBGlztG9zFs9727i1KbGtspH+N4Dk+P51v5wmcJQVSBJdARkfQ6ujwchGz5YhR6o1wjR6e++VTfPT4O4EPsis2nfZZ9XOyJoWwJb2zQbqtlHf/8YG5i/QgrAPG2123LgvZdXAqtcj/L3HZt0K+AkcS+TyqBqGDjedDhyMqtebrBMhc5aYNpxawmkAlOP9yLg7lYAQA963jpxbnw61BgdZYXwiXUrxIvDDQ9K/ivrQvLhVW7AbZ/rTaXcYP7bMr3ZRrpNg7SuCsqT5Xa2r9ET1conAl+UEuHYJTJwnqww==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tt+qVBv15qMf88SL/5sDZ1jpbbnkCfDyWx7rgW2Gw4M=;
 b=KRyn4UWD0yG3pOTVIiUq8NWBW5yynk8GzarfwmP1elnO519fYi/r9Fk1UenW+IJTDbY0TAMrU+cmsecLp6lmZE6fzvrpEHLgPPZN9e8EEKosn87aWUAzxf8InjqnlTi6MKJt05IytzTO8gjqxP1qCKDZ1WjeFqmodf+JUeDaciukMFjSGXTTKZIWEeyhxwGLDEwFGuji7563sJPVHzLcuBkqffKdLHL0iEPDCDzslwMGZoni74NmgeYgwqkM4ykYh0fcCfh+Uq6OwDBrbEZGfBn+ZZa7Pns1uMj4rHsTCXkJG3ijVg8vJKUv+WjzKBtst725U6rG2yjIAdIg3H+ZqQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tt+qVBv15qMf88SL/5sDZ1jpbbnkCfDyWx7rgW2Gw4M=;
 b=mS6J/hQbRHrj4xDkRUEzccNZnCGNgouZHY4WaBNonStOJy4yCUDdVqL5+ng8YLV2uAr78g06sLUz10c8j6i8kZ4LcPyY7dNI9ltw2lRmTqsoU38ipsDHG5A32RSz/xzWp6dZctlh00e4HDsZUDd+u5HOtb24+7+JJXcmzBqcf0w=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <6afc5c69-230c-460d-980e-2673434e6b4a@citrix.com>
Date: Thu, 12 Mar 2026 16:00:31 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH v2 6/8] tools/xs-clients: don't exit with error when using
 -h parameter
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <20260312155102.2862824-1-jgross@suse.com>
 <20260312155102.2862824-7-jgross@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260312155102.2862824-7-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0531.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:2c5::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_|CH3PR03MB7460:EE_
X-MS-Office365-Filtering-Correlation-Id: 2903432f-2f8f-44a5-6eb7-08de80507e12
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	nCsigT/FWzJ06eEth10MvTffiZf4mgNHgWABvPbemlInn3SG5EMzV3HOQvKl5pgwsq+96WDxZEpW5lo70q1AbpAhnXebusOh/ttDprVh6FNPCYAIMunBWsPpKo509hC7C6l33nDOoSRSy1tuVrF45AbPlkqgpkLxmMiT4ARwJyjqmiSfHP6zstejDlF6dRDFJe0RMmKX9pPdfR1zX1Ls3M2AwksYurChluZ+eZa2gZvIkjCzWkLeW2PEOtZbx0qQgC9K8y5tr+a2mVgZi6zWQPp/7bb3E2NqXZi1MXHg6FW/Hfez/UICQ0TuqNLThQ9fImRwJxJRopaCyDCBiQ3V7Ru6BzbaLj93hQZ3/UdQicnYBFj/5U1JNfEQ1109CEOrdlkt2WaJwhQdcDdg96+EcPZe/Xx8/7P4xaerz0RIlXYfyQhSC3JQSAO42niUiBjmzYiitv0jUvpq5dRUKHEb9wqS3uDcMczDWZMFiScMP6u2/3iT8RCpU5C5i1INHu6DrTBo4GjRsxkPrmtvjW3i3nImgwj1cZPAJeXHQUVJaHkDrKNuuPpSRz8PUTi07Z0Qv71sprxrJcCNlnLOXiP5oLHPiQ75NN/2foXaTQmFIiHieRR0xLKU1ShdG+3iLfrR7YVPiI5eH3dC8H8nAe5CYornYgWx6lCkPx98zjr8BiD0KPbPBptiPY18oJ7jsOk5ap8ijNWqUnyO3CjHmsOlr0uBykAktoYCOPSdAORHL9Y=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NlZndGlsWHBBWmJEUWVCSk9EdDFYd0dTUldTTlVranQwaVU5dVZoRE1KV1Jh?=
 =?utf-8?B?bE9hNVpnWVJGYnhMWjh2YS82QWdxMDZjYjBVVWlPV2JJRHBtdlEydzlSTEl6?=
 =?utf-8?B?K2pIazJmMXd2MVI0a25MZzQrWjdtSzVuS1ZXeGx2TU5oWk5HY29HQnBHL2E0?=
 =?utf-8?B?YmRYc0JJRjYwSFBPSnVxbVhsdFRqUWdCczBuekptN21ibjNSZDhCaXBvM1RH?=
 =?utf-8?B?cDRkWnZPeE1lWERxTEh1V2h6QUR6NjliZDh5NDlnNXczRkRGd1IwZVp5SDBv?=
 =?utf-8?B?Y3lSQzdnaDlGSFJzNGJKQTJEME5Ecy9oVkY3RWpyejFyZmNlUFdZbjFuYkk3?=
 =?utf-8?B?TEptc1RmVHViSndJWTNscHZBNHcxcHJRWVpNUTBHL3BTSTFJVkZiYWg5T1pC?=
 =?utf-8?B?eTRmSVhGcUprNE1RUjRaYTJ5dkM3NWd6OGJ2bnpMLzc1clZlTXgzcE0rZFJK?=
 =?utf-8?B?K2hWNmwvSjN4MWVuTWZTMHIybkdPTGtZMWdhRHJpMVNMc2JselBySkFLNUNk?=
 =?utf-8?B?Mzk4OE5Wck8veUlJMkhwbElReWhMVUVDeGI5V1dIVUJLQ3JUSnczZTJ4bzNE?=
 =?utf-8?B?dm13bW92TDBXSGVXQU5IRFdscVo2K2p4TGp2M1ExbkNKeTlyWXFZTmNtR3RT?=
 =?utf-8?B?SEkxbVE1dG1YVCtDMDBWS3dBYzFidmxRaGExMmZvN24yeXRjQ0VmRzFreDB0?=
 =?utf-8?B?aUx6ZU1qV21pK0p4KytESVhQNXlRMlB6TjVhWG8yQjN6cnZIeUZBYmZtbElO?=
 =?utf-8?B?VjhtbENsTkY3T25VeTYxclF0M0lsbWFmdTI3SXRJdmdHaHR5S28yMlRhdDFh?=
 =?utf-8?B?dVNmSGx0ZGFLZkRPSVV6bk5PeG5MWHhnMU1SSGlpa2Q0ZVJBc2pycUhkYnVK?=
 =?utf-8?B?NVlSYUJMNWZ3VS9VcS9JWWt2V09nUGNFZ1h5SUlJaVFnSHVSd0Y0c0V6OHZ3?=
 =?utf-8?B?TDNxNUMxOVBEWExyZkltdFlaWmJyck9FWmdRYnpMU09IUk85Y0NCVkExZUUz?=
 =?utf-8?B?TFJ2SGdQQXY3c3FKWnc0Zk9TeXhuZkJnUjFzRjMvL3pwSmVkY1Q2R0V3VWdn?=
 =?utf-8?B?Z21mZEx4aDc0bWZqbzN4UWo0MFVZRnhTL08rNTRGVnJLSTZ2Um4yT05mNDdT?=
 =?utf-8?B?SjlNaVg2UzdiS0tveFFjbnFSaXdBd1F4UUdOQVByR2EyVlM2NGMzQlp5ZTha?=
 =?utf-8?B?dEVtaFFYVHUvdm1EajBROWVNajFpSmlvT1MrS2RKSEtUbGk1aFdGd3A4RHZL?=
 =?utf-8?B?cnFXM1dqRmZibzZmRTNFQnR6d0tPdE1jajRvelEybzJUQmdhY3llM0NlSDND?=
 =?utf-8?B?TEpvTlJGUEd4d2ZHMHJSdnppQUtXZ1c3bWo2Q3VSWm5QQXhBRkZrNk1SRW9Q?=
 =?utf-8?B?MlFFd2lxV2s4SVBQTXhaeTRsTHNHakVGTTVWMkFJUWgzc0UvNXIxYzdKK21t?=
 =?utf-8?B?ck1JYTJvRWtwVHA4YjdQbnpUVURRUDlwUWlwSkVyaks3MWlSTksySGFGa01M?=
 =?utf-8?B?NkVmb3lEbnpwWlRYRFBuV2NFRG81cFEvNmpjZUFaZWIrZUc2VXJTcmpFakNO?=
 =?utf-8?B?K3YxbDJZcWJkSDdFZ0hSTTRicit3VS94dklyaGhFekZ1ek9hMU4xWm9Zb3h4?=
 =?utf-8?B?b0tqSkNMZEpkUFFxTzFmWVRKeUdtR1hwamNKMWt4Q3gwMFREbkJxUXhDYUdo?=
 =?utf-8?B?clljZ05VOEZ4Nkl4QzRPcENnNlUrMS82citOTnVxZVpva1YxdnN4K052bnVn?=
 =?utf-8?B?SHFBTVEyelRRbml4aHZ0TzI4QmYramRPTC93ckF0RUxrWDl0TncveGpvN1B3?=
 =?utf-8?B?NDlNNEpyOUdLZGhtS0JvcE5nTCtYZUhEWGpJcUZsL2d5N21meC9XM1BPd3ZR?=
 =?utf-8?B?QjdZOVlPNThNUjZkRGtVRk51NVJZa1RURFNtcG5VMnU3clVwaDF6VmtlZTJO?=
 =?utf-8?B?UDdPUzNMM3o5ejFacGtFSWZTb0ZOQVpRd1doUi9ld1FvMTByalIvdUhTSExL?=
 =?utf-8?B?bklFWThzNFlYRGRERkg5TzJHTUJCeC9MVmxkSjNROEdmQlJlQ3JUN2RMUTRY?=
 =?utf-8?B?d0pGME4xMGp1SWZIZW5qRDRSTWNUMURTWW11R1BDNTJ2TzF0NFo5V093QTJD?=
 =?utf-8?B?Q3BaL3RDT3J2ZHcvNkZnNml2ejJMUjRBZERueGRBNlRvalFWZS9XcDZ3TC9i?=
 =?utf-8?B?T01Tby9TbGlkUXFwMVpjZVN3L3pUZGpMcTZGME4rUkVUbVljNG96dEcyTXdx?=
 =?utf-8?B?OVUzUWdHSXltS0NzOWcrN21KcUhmWkE2NXY1eE12d2hJT2VZWTlqQXgvS0ow?=
 =?utf-8?B?V3c2SVlVQmlFK0dQSUIwNnNxUitiWTU5cUhzL09Odncwc0R6N05zdjByWkk4?=
 =?utf-8?Q?FOBd3cHFrBCUbtsw=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2903432f-2f8f-44a5-6eb7-08de80507e12
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 16:00:33.5731
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 85d3a2pSAo3x1vPQUtoRExFqajwodNm/iv8c4FHLTeojLlnNCgGxULe4iYgknhaM3MPjOWTZ6da4EvEHcxkIp5I7IOSappg8BYPo8sMxoRw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR03MB7460

On 12/03/2026 3:51 pm, Juergen Gross wrote:
> diff --git a/tools/xs-clients/xenstore_client.c b/tools/xs-clients/xenstore_client.c
> index a104cf6487..1794451d43 100644
> --- a/tools/xs-clients/xenstore_client.c
> +++ b/tools/xs-clients/xenstore_client.c
> @@ -214,37 +214,37 @@ output_raw(const char *data, int len)
>  }
>  
>  static void
> -usage(enum mode mode, int incl_mode, const char *progname)
> +usage(int eval, enum mode mode, int incl_mode, const char *progname)
>  {
>      const char *mstr = NULL;
>  
>      switch (mode) {
>      case MODE_unknown:
> -	errx(1, "Usage: %s <mode> [-h] [...]", progname);
> +	errx(eval, "Usage: %s <mode> [-h] [...]", progname);
>      case MODE_read:
>  	mstr = incl_mode ? "read " : "";
> -	errx(1, "Usage: %s %s[-h] [-p] [-R] key [...]", progname, mstr);
> +	errx(eval, "Usage: %s %s[-h] [-p] [-R] key [...]", progname, mstr);
>      case MODE_write:
>  	mstr = incl_mode ? "write " : "";
> -	errx(1, "Usage: %s %s[-h] [-R] key value [...]", progname, mstr);
> +	errx(eval, "Usage: %s %s[-h] [-R] key value [...]", progname, mstr);
>      case MODE_rm:
>  	mstr = incl_mode ? "rm " : "";
> -	errx(1, "Usage: %s %s[-h] [-t] key [...]", progname, mstr);
> +	errx(eval, "Usage: %s %s[-h] [-t] key [...]", progname, mstr);
>      case MODE_exists:
>  	mstr = incl_mode ? "exists " : "";
>  	/* fallthrough */
>      case MODE_list:
>  	mstr = mstr ? : incl_mode ? "list " : "";
> -	errx(1, "Usage: %s %s[-h] [-p] key [...]", progname, mstr);
> +	errx(eval, "Usage: %s %s[-h] [-p] key [...]", progname, mstr);
>      case MODE_ls:
>  	mstr = mstr ? : incl_mode ? "ls " : "";
> -	errx(1, "Usage: %s %s[-h] [-f] [-p] [path]", progname, mstr);
> +	errx(eval, "Usage: %s %s[-h] [-f] [-p] [path]", progname, mstr);
>      case MODE_chmod:
>  	mstr = incl_mode ? "chmod " : "";
> -	errx(1, "Usage: %s %s[-h] [-u] [-r] key <mode [modes...]>", progname, mstr);
> +	errx(eval, "Usage: %s %s[-h] [-u] [-r] key <mode [modes...]>", progname, mstr);
>      case MODE_watch:
>  	mstr = incl_mode ? "watch " : "";
> -	errx(1, "Usage: %s %s[-h] [-n NR] key", progname, mstr);
> +	errx(eval, "Usage: %s %s[-h] [-n NR] key", progname, mstr);
>      }
>  }

I'd not even spotted this, but I agree it wants fixing.  Could I
possibly talk you into naming the parameter err_val, seeing as eval
commonly means something very different.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 16:02:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 16:02:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252649.1549252 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iUA-0005cx-UR; Thu, 12 Mar 2026 16:02:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252649.1549252; Thu, 12 Mar 2026 16: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 1w0iUA-0005cq-Rr; Thu, 12 Mar 2026 16:02:06 +0000
Received: by outflank-mailman (input) for mailman id 1252649;
 Thu, 12 Mar 2026 16: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=QGPq=BM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0iU9-0005cg-Ef
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 16:02:05 +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 cfc9c0f7-1e2c-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 17:02:04 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-b941ec6a368so159401566b.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 09:02:04 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b972e14ab46sm142466266b.33.2026.03.12.09.02.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 09:02:02 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cfc9c0f7-1e2c-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773331323; x=1773936123; 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=AvTUR/JWXm8OQp4ELD+2WbKZtx+yU8EvABnJ1WiOQmM=;
        b=Lnvzuw67Y7BGJ8Cbut5ijhO4KjA2PMPANSAADsKkO1N5oVs8Zhk84+W0HRzCoMzWQz
         lyYaEwdB7BUbQuW1dFdh6pcfmAVA1fN6TtK11G5sf9JtCZZy+bfGaH8irDcYpBqKKbPS
         qFXzpZ6MUUcbls77P2GZSGqljIfjQeJc7fWczcARw1tKuRRym6MbAJ7uCLwt6s9/+upO
         n0ggWAzvvoxSgoIh8p+zBa2MX24Xb7HrJeYNPhmhzthUB3odbVBTM3C6dZ6aW9u+M+pC
         wybeCuFclH5SAhTozzIdk8kvBzK2/HrpBGiLqZnFUExLeMDSBXBcSlqmg8GE6oSaEhAd
         /tRQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773331323; x=1773936123;
        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=AvTUR/JWXm8OQp4ELD+2WbKZtx+yU8EvABnJ1WiOQmM=;
        b=YVb243VdwTGMFyvSLZv5BW6BuJRnkfqpaAigk263qvwlyHgAFT/98RqwbYpdaeiPP2
         Z6DY9nMKMRVtRQxCydyXMCBCj0Nd9GRta/Z+J8K3iOqT3YfF/4/6ZYPlXQWWPmL+CMdW
         m6Zh4TN4PTPHYEiz0kaVZKYMpJ3T4HLIvjsT44F5xbYzj5CvvVqdUnega1BEdGthcL9D
         gRoUzxSPWYzvYKqfBYMLfAhKKgIXuyzcr+z39hRl1FA6P7HfuyQJBkj5HUDiDDqCRc3x
         g2Myr+4Z77X5cUVwF9qNfE1YIfDo2ce/j5fZbU1OlerZu7Dw50q8lp+Tcz8m0HwTtzTE
         pJLQ==
X-Forwarded-Encrypted: i=1; AJvYcCVK0CdSHJTiWP4af7XQlF/T7Q1kFnQsw9tcRBVLupe2vfVlRr2tV+erU5FmCx7SkNh40Hwk5H5qlfY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxtx+At1drTeEfeappVfNHcSU7CTXXFzWzy54MK5eMc4kr07x/B
	zZV1lqyvbanvUGlpXas/I8XMsovzfkLMB01dUycg26YT49kiuYhFk11GfdqfYIi6H2sQQkrDoYH
	cn2yA
X-Gm-Gg: ATEYQzxhVGU0CpKLETEFhCieApSAGSKD90V2v3GhY6cmYL8sgNQ2uCS8XgunCXL5Xg6
	jVlPgm9uWxcnhrAwl1a6vxfQFdJQSw7zZix4leOBeBtMOyHdSgNmeoOkNpl95QvnfuHYOJ968ov
	Gtml4OmreCbvFhr2egSPssu4ugbWIEnnkeCJby07mLbieOsIB4bNMQ/6PHAdmqY0SN/+oTElIix
	0/K0u6waP5T0z+V3dh6m0VhgU8Hq3j0RlUelkGyb2sMsUkGcFqLo/0aDgosBYeLfrgmrkrpS4wN
	NJXMWNxMmI0RkJryYmYg/HSVetn8MiaNQ4xeAmTkoEy1eBfkwFf/lKg2C9mja3C39un5SY1Vxcm
	3oFEpkEBDXrc+nKhRhRHeAolTV5HwsPPm5NEtaaqiiL/txCLDq+gMPSXrGQhRxFT8XC+2ZOH6QM
	ZajmV9wZkmf/twAUZRWPIpsmvpJthEc3w1NRlxXY627RvpKy1yGjRMbio3P9sUhq94Kpx+AXc72
	yJKhoAjQSGFZ7AAQwybliJ7LitKrK41lfjjak+Q3OzAB6Q9sMPBHw==
X-Received: by 2002:a17:907:94c6:b0:b97:1d24:c015 with SMTP id a640c23a62f3a-b972e560f72mr422433966b.40.1773331322878;
        Thu, 12 Mar 2026 09:02:02 -0700 (PDT)
Message-ID: <f29443d0-911b-412f-91c8-fe668883bbc7@suse.com>
Date: Thu, 12 Mar 2026 17:02:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/8] docs: add man page for xenstore-rm
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <20260312155102.2862824-1-jgross@suse.com>
 <20260312155102.2862824-5-jgross@suse.com>
 <3aabdda1-7153-4be2-ba78-57b290fda509@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: <3aabdda1-7153-4be2-ba78-57b290fda509@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------jLwZa5pkIaqwBptMApjMraOh"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------jLwZa5pkIaqwBptMApjMraOh
Content-Type: multipart/mixed; boundary="------------343sBXnuGQB0XIqsQbjB9X7A";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
Message-ID: <f29443d0-911b-412f-91c8-fe668883bbc7@suse.com>
Subject: Re: [PATCH v2 4/8] docs: add man page for xenstore-rm
References: <20260312155102.2862824-1-jgross@suse.com>
 <20260312155102.2862824-5-jgross@suse.com>
 <3aabdda1-7153-4be2-ba78-57b290fda509@citrix.com>
In-Reply-To: <3aabdda1-7153-4be2-ba78-57b290fda509@citrix.com>

--------------343sBXnuGQB0XIqsQbjB9X7A
Content-Type: multipart/mixed; boundary="------------e1BOCqwZ0KUgNPdB9dwbMKRJ"

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

T24gMTIuMDMuMjYgMTY6NTgsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDEyLzAzLzIw
MjYgMzo1MCBwbSwgSnVlcmdlbiBHcm9zcyB3cm90ZToNCj4+IGRpZmYgLS1naXQgYS9kb2Nz
L21hbi94ZW5zdG9yZS1ybS4xLnBvZCBiL2RvY3MvbWFuL3hlbnN0b3JlLXJtLjEucG9kDQo+
PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gaW5kZXggMDAwMDAwMDAwMC4uNDBlM2U1ODFl
Yg0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIvZG9jcy9tYW4veGVuc3RvcmUtcm0uMS5w
b2QNCj4+IEBAIC0wLDAgKzEsMjggQEANCj4+ICs9aGVhZDEgTkFNRQ0KPj4gKw0KPj4gK3hl
bnN0b3JlLXJtIC0gcmVtb3ZlIFhlbnN0b3JlIGtleXMNCj4+ICsNCj4+ICs9aGVhZDEgU1lO
T1BTSVMNCj4+ICsNCj4+ICtCPHhlbnN0b3JlLXJtPiBbSTxPUFRJT04+XS4uLiBbSTxQQVRI
Pl0uLi4NCj4+ICsNCj4+ICs9aGVhZDEgREVTQ1JJUFRJT04NCj4+ICsNCj4+ICtSZW1vdmUg
b25lIG9yIG1vcmUgWGVuc3RvcmUgQjxQQVRIPnMuDQo+PiArDQo+PiArPW92ZXINCj4+ICsN
Cj4+ICs9aXRlbSBCPC1oPg0KPj4gKw0KPj4gK1Nob3cgdGhlIHVzYWdlIGluZm9ybWF0aW9u
IGZvciB4ZW5zdG9yZS1ybSBhbmQgZXhpdCB0aGUgcHJvZ3JhbS4NCj4+ICsNCj4+ICs9aXRl
bSBCPC10Pg0KPj4gKw0KPj4gK1RpZHkgdXAgWGVuc3RvcmUga2V5cyB3aGljaCBnb3QgYWxs
IGNoaWxkcmVuIHJlbW92ZWQuDQo+IA0KPiBTb3JyeSBmb3Igbm90IHNwb3R0aW5nIHRoaXMg
YmVmb3JlLsKgICJ3aGljaCBoYWQgYWxsIi4NCj4gDQo+IEFsc28gaXQgb2NjdXJzIHRvIG1l
IHRoYXQgIlRpZHkgdXAiIGlzIG5vdCBzdWZmaWNpZW50bHkgY2xvc2UgdG8NCj4gZGVsZXRl
L3JlbW92ZSBmb3IgdGhlIGJlaGF2aW91ciB0byBiZSBhcHBhcmVudCB0byBldmVyeW9uZS7C
oCBQZXJoYXBzDQo+ICJUaWR5IHVwIChpLmUuIHJlbW92ZSkgWGVuc3RvcmUgLi4uIsKgID8N
Cj4gDQo+IFRoZSBwaHJhc2UgIlRpZHkgdXAiIGRvZXMgbmVlZCB0byBzdGF5IGF0IHRoZSBz
dGFydCBvZiB0aGUgc2VudGVuY2UNCj4gYmVjYXVzZSBvdGhlcndpc2UgdGhlcmUncyBubyBo
b3BlIG9mIGtub3dpbmcgd2hhdCAtdCBzdGFuZHMgZm9yLg0KDQpJJ20gZmluZSB3aXRoIGFs
bCBvZiB5b3VyIGVuaGFuY2VtZW50cy4NCg0KDQpKdWVyZ2VuDQo=
--------------e1BOCqwZ0KUgNPdB9dwbMKRJ
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-----

--------------e1BOCqwZ0KUgNPdB9dwbMKRJ--

--------------343sBXnuGQB0XIqsQbjB9X7A--

--------------jLwZa5pkIaqwBptMApjMraOh
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/Ey8FAmmy43oFAwAAAAAACgkQsN6d1ii/Ey/+
hQf/WrsROBfkoDnZ+GWrgKQYPKbAnVcOQiGXgGeLe93V8qlTMSuiWgC95JhEKpN1Fj4hFEwxtOwt
/ei/t1xQ/d38/sKkgcx/D+vw4kYk6yCdmv0R8yYrygXv7Wn+W88VZ53s9cuAAi11GH0V8+u03L2E
4gY6NzEIJ9q59sb8mlkDtu9r/aBpl2LT7rFcyIg6rrPt6yHPChsS8QBgt8twH3KHyEY9Ob4Qlysb
fhfQ4w43z8B0Vx0jXfrq7wDlBO8DD9WKASARjq/bWsQ2uc1Y9zRGozWjUnLy5c3ogeuriRcSCwcU
R54ZkkdO+mcQg9TfAFc7+FCbVXy2hke0I2zoP1QcUA==
=MMXO
-----END PGP SIGNATURE-----

--------------jLwZa5pkIaqwBptMApjMraOh--


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 16:02:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 16:02:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252654.1549262 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iUd-00060c-6W; Thu, 12 Mar 2026 16:02:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252654.1549262; Thu, 12 Mar 2026 16:02:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iUd-00060V-3Y; Thu, 12 Mar 2026 16:02:35 +0000
Received: by outflank-mailman (input) for mailman id 1252654;
 Thu, 12 Mar 2026 16:02: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=cgz6=BM=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w0iUc-0005ca-0u
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 16:02:34 +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 e08f32ee-1e2c-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 17:02:32 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH3PR03MB7460.namprd03.prod.outlook.com (2603:10b6:610:199::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.13; Thu, 12 Mar
 2026 16:02:27 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9700.013; Thu, 12 Mar 2026
 16:02:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e08f32ee-1e2c-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=efVoAg7JBhQUjeJqDsTUI2bpaXF1ZKRT2L4S6WyIUZHODOAikbAJVL6L15xDI3yV86Bd8TjfJxzJQRCyfSIzGzRSANnbjxh/wh7Elg0/5e4XgE4pXrygGdj08K0vJmbxomWI6IUvENLRuM0wrwN7eME0d+s6O54jCK+B4SCftl8J+0+z1qYmDt47eCLGeRp5jGPy8KCF1GSTekDxoMhssL52OTIEY8btxC7HZbbVpd9muws1IoQYAQP9TzF0g5i6qjLr1upHPHepXwztJlsy9kt/epBecy690fUW59emsX3Oy4w51EiMEsia2+AZNh5CZAMvSiqYBtLYVC30w0rRJw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BB7gtCRowD6Dq30amHt+wgRUOuqwYw33JUSa5zOhmN0=;
 b=h7qncnbnrFV0g9kDh+owHBRcLo6ug5cywb7L4249v5zOVSsA35ZneDOuqu5JwfQT/tkXZ31jles5chSF/9R+VJUKKRVHR1WjOr51c2/dcuD8G1wvZjW/1Vbr229W9W10OVpVTGanfuC8sLxQNQ/Si2G+g656lDMCEluBpKqjVsQFjlIXXfNxTUFHwAsxES69zORUBf9JBrIhmpgsiAMxUNYkjjKVnxOBoeAdiQ6jjdaMVYf+vfIWSprvZzgbjekzEpVqhVPV8y2GrYp99/iKQJzW7kkGSR3tWhO0l28+BvH04CDdIrBFym2LeWRaYgLq84vgFnId7+YcbJsT96qRFg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BB7gtCRowD6Dq30amHt+wgRUOuqwYw33JUSa5zOhmN0=;
 b=W9DkMQADLYVTt4CRbeGmPiTX9BB3U5Q0e75OHvAsnRs9sR32XTtDwd3ujcnUp9OHAmiweRwDnPL13zz0qroEmW0zEucs/faJ/ns6OO3LDMegyZwqWU/pANS17veCuXimAY5Gs4SeAGuP6OWn4QoMU/k0Gk3xpEVU1+oPF6JyMVM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <5dc86501-dd23-494b-ad40-ee59aab3dabe@citrix.com>
Date: Thu, 12 Mar 2026 16:02:24 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH v2 0/8] tools/xs-clients: add some man pages and fixes
To: xen-devel@lists.xenproject.org
References: <20260312155102.2862824-1-jgross@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260312155102.2862824-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0536.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:2c5::16) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH3PR03MB7460:EE_
X-MS-Office365-Filtering-Correlation-Id: 2950c126-9bc2-42da-9d55-08de8050c1dc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	BvQ2Z0uKTVddXPP2vJaGjah7jj9St3C1xiXkpPHIFlm40oR7q3XKGVAvb+0euTyHfYEVvDuqZC/y4WaqGc3k00QWYho1ITcGyL1KsXtt3yZLtQFrK11zKZtQCr6tXfJA/96HCbT5Fh0E22KrhXs7giGIYMgjTw/Mo5AERyWO09bqGvR9I683P/+Ex6GZ/AW2sJiCwCdoV+8wUhSmPR6TtcrJqbttn5BFs+eRtaSxSswCsAvjzXvDK0ztKu+NMmSBdgImN8PHmNOzqrV6o0nozFIops87bXKa7Wnj7NeoRDci1YS8Gsuoc8evqQq/JNB6jX8kqyo2kdD3TbkGZkRhDWesQgnRcj6yNvbkmGLbR+xUJFetE+TqTNmbtRd+5W+tq/PSxmKpzzQWrY8AtZj34NGhbIOV5Fwye4N/RbnJA3Z1cXkQUfG3M+r0PXAcCemAjjZ37q8QhQOYgagalxo4jZL3889qYprBTYfcmpQ+xTpBppdZCqms0k+Xyh0mnwj8/O04RDJ9y4dO6zaDH6WNSBq+EyeD9/o2gahKJ+5sgoeDVng/C+lUik/7WVaHNW9EEum5RL8ZpCxkAgWeoeS+LjTI25q1zBlix+YMcBYspiTTChbyKAeuqi+/NI/F9kQC/XdB9+MKWMnqTVPEfanw/7q9A/1ppXAC7/wuZinOh2F7pTOzZzhEGxwyRGntIOTI+nxeUEEX2IZin+J1eHQMUCk0RmSIr1N19GfFbn6bSEM=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VS94Zmc4dnludzlzWUpPSjZUSDErNTVHZVhoVHJNRXkwQzhENGhFdko0c0hY?=
 =?utf-8?B?N3h4RUEzVkFGNFpOUTVvcjd3cmZCZkJwRUtrZlVQbk4wQkZ6aTBvUTN3OXVU?=
 =?utf-8?B?RUIweXQ2ekoyMG9Fb2ZuenFVTlZVYXBsM1BHMGloa2h6eWxhdzdHQXpOR0xN?=
 =?utf-8?B?QTUvNHpTajRaY1lKb1N0Wk5ST3l5MEdaS1p0YlAyMWMzWWhlVU5MMm1SVzB1?=
 =?utf-8?B?V200UWxQVVdoa3J5cFJFR0FQUUNuMTNUeC9xK0thSG5va2QzOVliSnc5eEJs?=
 =?utf-8?B?NjMzeHFaOTdETXZ4VGJwejUrOWU5Z2ErRzRNc2d4ZDh3eXdvQzZtc0UzR3dD?=
 =?utf-8?B?aTdCWndpVGxOL2JpdnlpTE1VdHlXZVhHWDlaRjhzWlF1QnZ2MjZNQzZEL0xj?=
 =?utf-8?B?Sml1N1ZaU1psb1BBR3ZXOXFNdjBKY2FFM1NqdFQ4dkNjYk42MUZFeU1RNjJ1?=
 =?utf-8?B?bVd4MmJoUFd1NVVDcTgrdGcxRGVxVStJTVZhK1BMZTltc0VjUjVpUEI3UUxr?=
 =?utf-8?B?a3ZIbGNIcVdhTnhnL2pka21QdmNMTnh0U0xzUk5uSEFPdE04OFd3NFdTMDdU?=
 =?utf-8?B?VXNwdmk3K0RobEZiSVk4dGJUZFNQRm5udmhzMURsWVlmYkdDMFZJdUhwOHNs?=
 =?utf-8?B?bHFsMWJLZ1h2ejR6M1VXWWJYTTJhMDlIdVhFQlgrTjhNVWFEYURQSXRTSFZR?=
 =?utf-8?B?eWJpUHhWVXMzWkQ4a3gzeEN6Y0M3MTYzRVVYMEc0b1IvbFE0WDFQSERIU21r?=
 =?utf-8?B?U1c0Y1E2NllGS0NSY0Z5aG81L0h0VlFjUnhORkVQUDRpQzBHL2tMbEE1U1kr?=
 =?utf-8?B?YkJocVhzVDFna0psTllQeHdlaGN2Z1prUTVYcU9KR3JhTE5ISXE3NWV0Z0dZ?=
 =?utf-8?B?anVIZm16OEIyb1hheDF3RG5wSENTR2x6YWlhU2Z1UktYcWdtdHJaaHdqRWpT?=
 =?utf-8?B?ZzNTeWRNbXMvRXRoU2gycUQ5YXZkOFlZYXNqZ1JjZGdGQ3BNVWxZaERHd05G?=
 =?utf-8?B?aVMvalNoTFhKeTRFd3NjUVNvT3QvWEYycXB5UDdiN3RNOXRLSjdUUDBuaW4r?=
 =?utf-8?B?eUNKeXpqN3BWbFRuS2VyNmJuenFkQi9nWEZJSGMybGpUMFpRL2YzOGVIQUd5?=
 =?utf-8?B?VTh1MWZWcnI4TDduTFZvUlBQcTc4MTBYUmNxcVREL0JPbC93Zm85MHBoWHpZ?=
 =?utf-8?B?TmhqZmRvbUlDenVOV08wbWR2Vkh6Z0lSSGxmMWpXWDRWSFdDZGk2Q3BaaVlE?=
 =?utf-8?B?eFBlN1BPZlV3YkNiTTFFR09aOHJrbVRDaGg1eVV4RDJBWnJ2dzF0Rmo3VSto?=
 =?utf-8?B?bE5sZTdRZE1HeldxWGpocE55SHpGS2dIa0dLNWJRZmszS2xWSXhSQ2ZTS0No?=
 =?utf-8?B?K0R1VzZTYWlQSTlKWXl1TndmZVZuM0EwTllnb2YwZEQ1bHBaazRNZEFEZ1F6?=
 =?utf-8?B?RHJSbTlFT0lVeGlzUjNLaTR3ekxaekk2S2VhTFREcm1lYWQ0NzRmZmtmVjhY?=
 =?utf-8?B?K1RPSm45eU9vdEl2azRLYU81TWpIcThsQlhKTWZlYlBON0JvaHVnTzh3T1NY?=
 =?utf-8?B?dk5WVG1EV3FPQk8xcXppZ2p5U093R0pOZXI1WmNMdlQvK0NYSTViNVZvUTNB?=
 =?utf-8?B?aW9VempqOFRVSzhCbXk3azM1bTZxcnJYaUR0SVoxTnFKcVlZc3ZGZHR6bkgw?=
 =?utf-8?B?Tm84RUVFRUkySTFwTGV2U2J3L0tvdkxVREZFSTZaQUU0Q281TTQ2RW92ZVdp?=
 =?utf-8?B?K0xXeHpYSGZMWmtSYnB4VDAySnc3RkFJTU5EbmlSUCt5T0ZKNXpNOGNDSVRG?=
 =?utf-8?B?V3ZVVlRhclBWWldoK1J1cDVqZ25Xd04vRXZBNnN4R1c2YVFmTzNhbitHL0RL?=
 =?utf-8?B?QjBsZnU0MFBpbWxJamlObTRnOTVCZVJickErUHdBbEpKTW5FdlBjVVZxaVJh?=
 =?utf-8?B?TGp2SkRVSEc0QzZNQndMMDBlczB4cWorc3JDLzJCZ0FZcHBQUmdReVBPOEI1?=
 =?utf-8?B?ekgzdWpoWElsSTkweDZ1eUdOeTdwWUJ0STJsWGpXWEFDbmFDc0dtMG5DbEd4?=
 =?utf-8?B?d1VJZGFBaE9HYVE1MDZ6RjVBckZBNldYVExhT2psOHFEdktweHQvdVQzaEI3?=
 =?utf-8?B?aFZ2MjUxSXV2aFhRR0hLWEhqT1ZQZC91UjN3Z3JTbk1tNUlHTjBPbnZkdHVR?=
 =?utf-8?B?V2oxdjQyYWhpU3RkeE5oVkp4dmJXSnM3RTFYT1BjYzVobjlzMXFpZllwNVVr?=
 =?utf-8?B?KzJoUXhEQ2ZFcDRrNmU5MVB2T1pkN0w1TG5XdEx0Z0xZVEZ5SUZhUWhqM2xx?=
 =?utf-8?B?QjRvZFV6emg5bnQ1cEgxMW40NlIxdkcyL1NYT0tTdm9wSHNaNERTM2hOeXpT?=
 =?utf-8?Q?UK8+PVEdqzsaOeNI=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2950c126-9bc2-42da-9d55-08de8050c1dc
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 16:02:27.3399
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: DpHVJddxzkYuWU4cX33OPZ0r1vz5VRk0IRKrRyrx9y8Av8tsJ1kcdJkaA6VFGz7OMSmoMOtVCMQB8//uMEmCVrP/GbGO+VYlomoAcQQOvo4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR03MB7460

On 12/03/2026 3:50 pm, Juergen Gross wrote:
> Juergen Gross (8):
>   docs: add -h parameter description to xenstore-* man pages
>   docs: add man page for xenstore-exists
>   docs: add man page for xenstore-list
>   docs: add man page for xenstore-rm
>   docs: add man page for xenstore-watch
>   tools/xs-clients: don't exit with error when using -h parameter
>   tools/xs-clients: fix usage information of xenstore-exists
>   tools/xs-clients: fix output of "xenstore-list -p /"

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

Two minor comments, both of which I can fix on commit if you're happy? 
(With the patch 6 knock-on to patch 7).

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 16:04:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 16:04:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252668.1549272 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iWk-0006iD-OY; Thu, 12 Mar 2026 16:04:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252668.1549272; Thu, 12 Mar 2026 16:04: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 1w0iWk-0006i6-Kc; Thu, 12 Mar 2026 16:04:46 +0000
Received: by outflank-mailman (input) for mailman id 1252668;
 Thu, 12 Mar 2026 16:04: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=QGPq=BM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0iWj-0006hw-4D
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 16:04:45 +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 2f18a723-1e2d-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 17:04:43 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b955351e0a6so199039766b.3
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 09:04:43 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b972e18e435sm147712266b.53.2026.03.12.09.04.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 09:04:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2f18a723-1e2d-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773331483; x=1773936283; 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=mnTCbE6w2dR+SRnkwLx4Eoq6Rfg4WwLEV71NK9c/aDQ=;
        b=M3upRXrROy0dIjA5yY2giq9lXwbpODwbS03zJTja2sPwQmC9jKcD0RzBJB0x87z+sk
         VHEh8drqsAFJ5/xksp3EKvdBu/JWRnHh03fbrpKuW8Kx01PGhKaVzr5KZeV4hkw7FvTB
         dWtmeLMclcv+KuPFRLsEOrnyixt6pzCLhFTT5PzVg5444gEceu3rwi8B3uWHPIBY9cMO
         PX7qeM6l58zXqWCR9XJ124XZrZN+yGuK39SMDrRVz9A3bxfH+FLKqm4jKoSBAqz+lhcQ
         bml6+ol2PGNGa4A4DT4yvuFYW68DpYqwrT4iuipyzUVI6ESwEPDDLdquZwjrf2U3Lbku
         0QTw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773331483; x=1773936283;
        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=mnTCbE6w2dR+SRnkwLx4Eoq6Rfg4WwLEV71NK9c/aDQ=;
        b=ETnlIxSTDfKyb87w3LcDfRrzyysRC+hYxSGV+P2+hg9BX/PGeCyP3scg+u2yakaOft
         1CvBZupdE8hlyRoEmx+WspwaC9JnR9wgr4ID6bNggSRx4FStVgOK/mLb+NkbRx4a36Lj
         PF/5ykJg/iyEojVNcfwMTDPxvuPcFVyMCWkFmrRv90yZMmhOTIitX43dabUbyhFaCt7u
         nplX5jOgG3XH89r0MO7WhkCbUQ01bJqKrSMQT0f7Ktl6dFhL0g1XJigjXNcWUMOpanui
         NToWT8rkzUevmBVvuH7AoT3YgkVzrl5HuGb1WSyZPqemg1aufZn2dfH4Nw3jiT/n3ksr
         RcGA==
X-Forwarded-Encrypted: i=1; AJvYcCXQHI9fG+2sDxxlxVBU3NSG1ouyvsegv91PDN4VDMe6d53aCLZmRScktj77RCM6Gmd88BhS227ZzYg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxDL3JyUCmDYdX0WlX6cmDtHvfCIWlGBlPAMpjaUkitUCaBX0w8
	+kUvGB2EBLzNNelZkkORf/CXpyCRevr0pgsDCGeBCbZwN+KpmDPAtSeLyKL0J47mL+o=
X-Gm-Gg: ATEYQzw19ESlvyv+Oq4rEWQZ8XjOKn5ypcT4rwvDG742zrMzZPdLHftDmhNv/PvIbCg
	qkk7azQ9Kdvhaqn2h7Z+8+D97twdClnoyr3EjSy80v9NO4CogxwopINaIjRMaa71hzccl6r1r3x
	LaNb7l2oepsag1novJ0V4/tW8nwxF42y/tg0ePJGP5P5zUtmLHsoiStFHhQJXlTt+5CULZ51lXV
	YC6kiesbgGdcstf7VsveMkwpy+B+7oLynMYh2wuRJtSPo04vZbYqespWx7w/N4QxkUU4O+a80yt
	r6mnMdd1OSxJX+EIzn0r7Zx8VJ/2Fds1dwfr5XgItfaZreHdqoGov1sn7s2rEy3BL1606IES3lU
	eNdJfLXvIDCCRLxJRRTolEIAca7T5JtAwCSOgqe9XFRF6bUuNoOVqlkDtiOjlmWhiJup2u0sX9L
	tV/6cqjYQnuLFZWtSG0kXd3+R4OkufZ71NaVEsCB3XkHB+3yzWLjlCEwb+aPGUyQ0EbO1zqK3XS
	lTyRMFVf+RJajCEHTB1bowoKcv4oHaI3zuWtixQLpGGEJQIrImTQQ==
X-Received: by 2002:a17:907:3d4b:b0:b8e:3d49:25db with SMTP id a640c23a62f3a-b972e5ab6camr389440066b.54.1773331482912;
        Thu, 12 Mar 2026 09:04:42 -0700 (PDT)
Message-ID: <26fb3140-9731-42f0-8147-20f64e71ffdd@suse.com>
Date: Thu, 12 Mar 2026 17:04:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 6/8] tools/xs-clients: don't exit with error when using
 -h parameter
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
References: <20260312155102.2862824-1-jgross@suse.com>
 <20260312155102.2862824-7-jgross@suse.com>
 <6afc5c69-230c-460d-980e-2673434e6b4a@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: <6afc5c69-230c-460d-980e-2673434e6b4a@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------d4H1EdoiAF9YmsdRcpOJp6SF"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------d4H1EdoiAF9YmsdRcpOJp6SF
Content-Type: multipart/mixed; boundary="------------00XGarkhZumGpgKFBBHlz4m3";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
Message-ID: <26fb3140-9731-42f0-8147-20f64e71ffdd@suse.com>
Subject: Re: [PATCH v2 6/8] tools/xs-clients: don't exit with error when using
 -h parameter
References: <20260312155102.2862824-1-jgross@suse.com>
 <20260312155102.2862824-7-jgross@suse.com>
 <6afc5c69-230c-460d-980e-2673434e6b4a@citrix.com>
In-Reply-To: <6afc5c69-230c-460d-980e-2673434e6b4a@citrix.com>

--------------00XGarkhZumGpgKFBBHlz4m3
Content-Type: multipart/mixed; boundary="------------oNdDpmAxO7W9kNlKFw2j1ywL"

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

T24gMTIuMDMuMjYgMTc6MDAsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDEyLzAzLzIw
MjYgMzo1MSBwbSwgSnVlcmdlbiBHcm9zcyB3cm90ZToNCj4+IGRpZmYgLS1naXQgYS90b29s
cy94cy1jbGllbnRzL3hlbnN0b3JlX2NsaWVudC5jIGIvdG9vbHMveHMtY2xpZW50cy94ZW5z
dG9yZV9jbGllbnQuYw0KPj4gaW5kZXggYTEwNGNmNjQ4Ny4uMTc5NDQ1MWQ0MyAxMDA2NDQN
Cj4+IC0tLSBhL3Rvb2xzL3hzLWNsaWVudHMveGVuc3RvcmVfY2xpZW50LmMNCj4+ICsrKyBi
L3Rvb2xzL3hzLWNsaWVudHMveGVuc3RvcmVfY2xpZW50LmMNCj4+IEBAIC0yMTQsMzcgKzIx
NCwzNyBAQCBvdXRwdXRfcmF3KGNvbnN0IGNoYXIgKmRhdGEsIGludCBsZW4pDQo+PiAgIH0N
Cj4+ICAgDQo+PiAgIHN0YXRpYyB2b2lkDQo+PiAtdXNhZ2UoZW51bSBtb2RlIG1vZGUsIGlu
dCBpbmNsX21vZGUsIGNvbnN0IGNoYXIgKnByb2duYW1lKQ0KPj4gK3VzYWdlKGludCBldmFs
LCBlbnVtIG1vZGUgbW9kZSwgaW50IGluY2xfbW9kZSwgY29uc3QgY2hhciAqcHJvZ25hbWUp
DQo+PiAgIHsNCj4+ICAgICAgIGNvbnN0IGNoYXIgKm1zdHIgPSBOVUxMOw0KPj4gICANCj4+
ICAgICAgIHN3aXRjaCAobW9kZSkgew0KPj4gICAgICAgY2FzZSBNT0RFX3Vua25vd246DQo+
PiAtCWVycngoMSwgIlVzYWdlOiAlcyA8bW9kZT4gWy1oXSBbLi4uXSIsIHByb2duYW1lKTsN
Cj4+ICsJZXJyeChldmFsLCAiVXNhZ2U6ICVzIDxtb2RlPiBbLWhdIFsuLi5dIiwgcHJvZ25h
bWUpOw0KPj4gICAgICAgY2FzZSBNT0RFX3JlYWQ6DQo+PiAgIAltc3RyID0gaW5jbF9tb2Rl
ID8gInJlYWQgIiA6ICIiOw0KPj4gLQllcnJ4KDEsICJVc2FnZTogJXMgJXNbLWhdIFstcF0g
Wy1SXSBrZXkgWy4uLl0iLCBwcm9nbmFtZSwgbXN0cik7DQo+PiArCWVycngoZXZhbCwgIlVz
YWdlOiAlcyAlc1staF0gWy1wXSBbLVJdIGtleSBbLi4uXSIsIHByb2duYW1lLCBtc3RyKTsN
Cj4+ICAgICAgIGNhc2UgTU9ERV93cml0ZToNCj4+ICAgCW1zdHIgPSBpbmNsX21vZGUgPyAi
d3JpdGUgIiA6ICIiOw0KPj4gLQllcnJ4KDEsICJVc2FnZTogJXMgJXNbLWhdIFstUl0ga2V5
IHZhbHVlIFsuLi5dIiwgcHJvZ25hbWUsIG1zdHIpOw0KPj4gKwllcnJ4KGV2YWwsICJVc2Fn
ZTogJXMgJXNbLWhdIFstUl0ga2V5IHZhbHVlIFsuLi5dIiwgcHJvZ25hbWUsIG1zdHIpOw0K
Pj4gICAgICAgY2FzZSBNT0RFX3JtOg0KPj4gICAJbXN0ciA9IGluY2xfbW9kZSA/ICJybSAi
IDogIiI7DQo+PiAtCWVycngoMSwgIlVzYWdlOiAlcyAlc1staF0gWy10XSBrZXkgWy4uLl0i
LCBwcm9nbmFtZSwgbXN0cik7DQo+PiArCWVycngoZXZhbCwgIlVzYWdlOiAlcyAlc1staF0g
Wy10XSBrZXkgWy4uLl0iLCBwcm9nbmFtZSwgbXN0cik7DQo+PiAgICAgICBjYXNlIE1PREVf
ZXhpc3RzOg0KPj4gICAJbXN0ciA9IGluY2xfbW9kZSA/ICJleGlzdHMgIiA6ICIiOw0KPj4g
ICAJLyogZmFsbHRocm91Z2ggKi8NCj4+ICAgICAgIGNhc2UgTU9ERV9saXN0Og0KPj4gICAJ
bXN0ciA9IG1zdHIgPyA6IGluY2xfbW9kZSA/ICJsaXN0ICIgOiAiIjsNCj4+IC0JZXJyeCgx
LCAiVXNhZ2U6ICVzICVzWy1oXSBbLXBdIGtleSBbLi4uXSIsIHByb2duYW1lLCBtc3RyKTsN
Cj4+ICsJZXJyeChldmFsLCAiVXNhZ2U6ICVzICVzWy1oXSBbLXBdIGtleSBbLi4uXSIsIHBy
b2duYW1lLCBtc3RyKTsNCj4+ICAgICAgIGNhc2UgTU9ERV9sczoNCj4+ICAgCW1zdHIgPSBt
c3RyID8gOiBpbmNsX21vZGUgPyAibHMgIiA6ICIiOw0KPj4gLQllcnJ4KDEsICJVc2FnZTog
JXMgJXNbLWhdIFstZl0gWy1wXSBbcGF0aF0iLCBwcm9nbmFtZSwgbXN0cik7DQo+PiArCWVy
cngoZXZhbCwgIlVzYWdlOiAlcyAlc1staF0gWy1mXSBbLXBdIFtwYXRoXSIsIHByb2duYW1l
LCBtc3RyKTsNCj4+ICAgICAgIGNhc2UgTU9ERV9jaG1vZDoNCj4+ICAgCW1zdHIgPSBpbmNs
X21vZGUgPyAiY2htb2QgIiA6ICIiOw0KPj4gLQllcnJ4KDEsICJVc2FnZTogJXMgJXNbLWhd
IFstdV0gWy1yXSBrZXkgPG1vZGUgW21vZGVzLi4uXT4iLCBwcm9nbmFtZSwgbXN0cik7DQo+
PiArCWVycngoZXZhbCwgIlVzYWdlOiAlcyAlc1staF0gWy11XSBbLXJdIGtleSA8bW9kZSBb
bW9kZXMuLi5dPiIsIHByb2duYW1lLCBtc3RyKTsNCj4+ICAgICAgIGNhc2UgTU9ERV93YXRj
aDoNCj4+ICAgCW1zdHIgPSBpbmNsX21vZGUgPyAid2F0Y2ggIiA6ICIiOw0KPj4gLQllcnJ4
KDEsICJVc2FnZTogJXMgJXNbLWhdIFstbiBOUl0ga2V5IiwgcHJvZ25hbWUsIG1zdHIpOw0K
Pj4gKwllcnJ4KGV2YWwsICJVc2FnZTogJXMgJXNbLWhdIFstbiBOUl0ga2V5IiwgcHJvZ25h
bWUsIG1zdHIpOw0KPj4gICAgICAgfQ0KPj4gICB9DQo+IA0KPiBJJ2Qgbm90IGV2ZW4gc3Bv
dHRlZCB0aGlzLCBidXQgSSBhZ3JlZSBpdCB3YW50cyBmaXhpbmcuwqAgQ291bGQgSQ0KPiBw
b3NzaWJseSB0YWxrIHlvdSBpbnRvIG5hbWluZyB0aGUgcGFyYW1ldGVyIGVycl92YWwsIHNl
ZWluZyBhcyBldmFsDQo+IGNvbW1vbmx5IG1lYW5zIHNvbWV0aGluZyB2ZXJ5IGRpZmZlcmVu
dC4NCg0KSSB0b29rIHRoZSBwYXJhbWV0ZXIgbmFtZSBmcm9tIHRoZSBlcnJ4KCkgbWFuIHBh
Z2UgKEkgYmVsaWV2ZSAiZXZhbCIgaXMgYW4NCmFiYnJldmlhdGlvbiBvZiAiZXhpdC12YWx1
ZSIpLg0KDQpJJ20gZmluZSByZW5hbWluZyBpdCwgdGhvdWdoLg0KDQoNCkp1ZXJnZW4NCg==

--------------oNdDpmAxO7W9kNlKFw2j1ywL
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-----

--------------oNdDpmAxO7W9kNlKFw2j1ywL--

--------------00XGarkhZumGpgKFBBHlz4m3--

--------------d4H1EdoiAF9YmsdRcpOJp6SF
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/Ey8FAmmy5BoFAwAAAAAACgkQsN6d1ii/Ey8a
Ugf+IAvW6+UV7uoTvIlP7uZeJKvmUaPGH49k0VQAAC+BIz1OIqYoBAD3gposx4X1zZ0Dv5qwWAZk
plyU9cdF7rgR4bw8kN4FQEeXBiQyXT3hUZMnVn4bsHjW4o4IrsnR9pHIu1fSYf/QBACi8Y++wJnH
xM4OntrPj+i2MJPdq3S4maDP6mJkDe4kP9NCooCnWDY5+eZxtCXPEyL95kChZQLcMiTMoIFaVp6f
fNDf8neygjX+WL5Z3btpIyeR7Q1isv09ElO3/B3y+pmPMdMpCCPCEXFxDQ0g/v8dr0hCBtDaMMX3
vY0yi1//1//jMozoKncC6IAtz0U7wV/FF5fyzLpymg==
=5QWl
-----END PGP SIGNATURE-----

--------------d4H1EdoiAF9YmsdRcpOJp6SF--


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 16:05:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 16:05:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252673.1549280 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iXA-00074m-Uu; Thu, 12 Mar 2026 16:05:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252673.1549280; Thu, 12 Mar 2026 16: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 1w0iXA-00074f-S8; Thu, 12 Mar 2026 16:05:12 +0000
Received: by outflank-mailman (input) for mailman id 1252673;
 Thu, 12 Mar 2026 16:05:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=17Qz=BM=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1w0iXA-00071k-25
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 16:05:12 +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 3c294d73-1e2d-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 17:05:06 +0100 (CET)
Received: from CH5P220CA0009.NAMP220.PROD.OUTLOOK.COM (2603:10b6:610:1ef::11)
 by CY8PR12MB8340.namprd12.prod.outlook.com (2603:10b6:930:7a::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.4; Thu, 12 Mar
 2026 16:05:01 +0000
Received: from CH1PEPF0000AD83.namprd04.prod.outlook.com
 (2603:10b6:610:1ef:cafe::d6) by CH5P220CA0009.outlook.office365.com
 (2603:10b6:610:1ef::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.28 via Frontend Transport; Thu,
 12 Mar 2026 16:04:57 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH1PEPF0000AD83.mail.protection.outlook.com (10.167.244.85) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9678.18 via Frontend Transport; Thu, 12 Mar 2026 16:05:00 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar
 2026 11:04:49 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3c294d73-1e2d-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=l7WcySXcTTbN9DIT3WRgV1dLrSnat9fwtgaLHxGyVjypOnF/oB2QFOpceOVjjj7vRHSXytN699v/PYh+ES3WO+EDT0d5lpCo3dN9aTexC+O2nwAN9rosVHGFviLZtUmh2NNTKnblS+nIZvVQufJyoe7v8RokWNlUFRQkMidzPnRsw0Lf/B6F+1N+dfanmAzSIRa/35b566AgPzIq/8AB5kVEO7rkTJcKTIyfSQEnv9pxMEcdMT0R1ZIEazhmO5X140Jqyji3cVg9YMZbE7GLU/+ZhydLlP0i/qt6XvlOedkuF9I+NvZCxLhT7LtTQl7/njdZoHVNcfU+fslMUBPkUQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gTafdTz+0ZZlyxfGtijQUxFXhgBLGfhYtTNqWiEj30w=;
 b=Vp8l3lap3/LvOjEIaym0E5SFbfvwFct/aLTuoJsqFaJGXHuiPBykH5Yll+4WZAbXoXuECcEjJzWfgQL3P0LqyeQx+3v08FTmW+s6AIoq4EBjwbIUDYj4bsCo1gWmDd5sXTd97QbJRVq1eml85WuQw4FP6WnAxzInRjaxjpRTp2q1xCsLgvI8HvAe4sZSeKChI5aAdNqGvJuHiYT7rAoPLJIHUkKTkUu0mZ1NbOHIdbhx5Jr8/guSnLtTZAT/ZgGfZiBfSIBarEetmnYhU6iBxAPCn1kU/uJOmEShk0zecmIE/LW3jiAVgANnWpkhFG0aP11UlQ4aIDzHS47LPTUDrQ==
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=gTafdTz+0ZZlyxfGtijQUxFXhgBLGfhYtTNqWiEj30w=;
 b=u4PXBCsLrGkZpe9ui5H9h525FnFv51/LowQAvgIhk+8vm3uVKz/MDTQR8PQK6YhDBApHCAPJUl32PI9uHdiuIadjo7ulXUpiYH/wdMAAV+Q8HMWV8DkvFmAq7iv/Uc8I4lDsil6jSyb26LpJDmy0ZISvWUAkSffAZy4TQYn5VAc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 12 Mar 2026 17:04:48 +0100
Message-ID: <DH0XJR5GSRRF.1MP31OHI1BLQW@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 v5 6/5] x86/hvm: Add a non-FEP path to the #UD handler
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20260312112116.22563-1-alejandro.garciavallejo@amd.com>
 <20260312134731.38475-1-alejandro.garciavallejo@amd.com>
 <d4f81997-5e4d-4d7c-ac11-6961145e6420@suse.com>
In-Reply-To: <d4f81997-5e4d-4d7c-ac11-6961145e6420@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: CH1PEPF0000AD83:EE_|CY8PR12MB8340:EE_
X-MS-Office365-Filtering-Correlation-Id: e8df37f3-e52b-4d13-74f4-08de80511d99
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700016|376014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	McfsJPDci551miOer0doj84kSbgey1USkxKC5FNlK9Pz6+0fkrNDfrM5RQpXQiEajreY6tZjcd1nWPJK2o5mC7ZCZvO+gNJcAlUyxgcGNeoeZagyQ0lqPcuRUPlnzfer4q+S/VURESGuuSRQhgeAX/nl8Ll/7lZyqAMnUtOtGMbm5/8UzW2uPD1aux3ZUvHTN5VIcoIdvELoLCC+vEco6M1Wx809+P9ZPcwnakrGu7fGjJbE7GISZcsVGfmdjxA5kKbmQVJtknI3TFX+sqBEdjur7XfAnEXSXy3MuBnLRZEGHkJkQp1lZjzeGUJIs7hLJ+Jj/u2un+7v0RREvt2TUb8gBkuNgf6ef38laVaIbSSoKMWomMNvf6LsRYOz8y4OBhR3XF2V40tL7bJBj7VgTNC/Rjc+L0i4hEpuk/RjtiwQsOPF+k2JKw9NWbz3qh4z3T5NA/awbJBexxFCqq8iM1dLWkgXdlIbrcsRLPxooFEwB74aapabA3bkl+WW4RPgCGfoY5VoldWtaNXO5vwgyUVTp5x8YUBBFg2eOo6cKBJjLDpCtlHZi4/BKA2LN2oYthcwTx0OMpfaf8I6qocCRYcSL5b0BGzWbrIu06pX8nmeC6XyWw3ohlAsWNLbA9Qd5AqAl4UU1xctb95fiRTlJpZ1wsbo+e39WRpQXPqce3qwjUANXbfoGQtEJV1OtThfjmiFd8zRRNxPc69pS95cMUz7DrMMjO/9h1r6Le1wDlulGy4pUB9H3oAGkNAzC/J35MtTnFMwtWsKjXqn2ElV+Q==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(376014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	mRm3z4yx996SywpvjRgOyOGFof+oJbaIUzcosQKVHpDMA2/AAVA/uOsWQoJRJjY7G8gj0RvzsbrbSqkAXkICn+EDKHUv7+Z1NacTP7wrlfbTJFoHWHTyFthuHSMwa/8cJLUDD9ZkJmlfZIe/S/fHCbHwKnTMvGL0NoZpOs/9EDeCiIwBShQttJaIB7UMTGMSwshA8OBfr0AA+Cn8K55qzNFkO0Z6jOXHtcSln2fjlQH9arETeivqgvkf/8sKkD7iogYdITUksBBuyxyEHn7mN/X6LGkdamPjCh3McnvM6kjdoWM6cE1tjXEqHxxIemPt2FN6v0d9GBDwWqd6atHHrYwtSDQ/RvwH8ACuOdssvpy4VjMXRfAYdNU4TajADY58vN/MjYgeNGSSq3MxexBgjCRbvl54AjSFm9fxDcaprJbDhIwPqG/WPG40hIYc8A36
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 16:05:00.9939
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e8df37f3-e52b-4d13-74f4-08de80511d99
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000AD83.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB8340

On Thu Mar 12, 2026 at 4:24 PM CET, Jan Beulich wrote:
> On 12.03.2026 14:45, Alejandro Vallejo wrote:
>> While the #UD handler is dead code when CONFIG_HVM_FEP is disabled it's
>> helpful to keep the function around. Reinject #UD in the non-FEP case so
>> DCE can remove the rest.
>
> For the code change - I don't think this should be a separate change. I a=
lso
> didn't understand Andrew's earlier request to split the original change t=
o
> go this far.

I don't mind either way. Fold it with the prior patch if you think it's bet=
ter
that way.

>
> As to the "dead code" aspect (using Misra terminology it's really
> "unreachable code" aiui), we may need to deal with that, as we've accepte=
d
> that rule. Yes, Eclair is unlikely to be able to spot this, yet that does=
n't
> make the issue go away.

That's also the case for handlers of other VMEXIT error codes under certain
configurations. The original patch I sent fully removed the #UD handler to
restrict the unreachable part to just a BUG_ON(). But even that was incompl=
ete.

The solution is some creative filtering at the switch condition, but that's
something I haven't had time to experiment with yet.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 16:08:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 16:08:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252690.1549289 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iaY-0007zZ-DQ; Thu, 12 Mar 2026 16:08:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252690.1549289; Thu, 12 Mar 2026 16:08:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0iaY-0007zS-A7; Thu, 12 Mar 2026 16:08:42 +0000
Received: by outflank-mailman (input) for mailman id 1252690;
 Thu, 12 Mar 2026 16:08: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=QGPq=BM=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0iaX-0007zM-Ct
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 16:08:41 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bbea4dea-1e2d-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 17:08:40 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b9382e59c0eso192883466b.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 09:08:40 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b972e14ab67sm141547666b.44.2026.03.12.09.08.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 09:08:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bbea4dea-1e2d-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773331719; x=1773936519; 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=H0WdEqqlF87tUnD1zgBx+Ug45tY1vEgZU7Vdh3Mx3GY=;
        b=ast/eHi10vlS/xsQSo+a2WPGmZKuA+v5c3JLWK4C2RWr66kG/fqA40vIM84wEZOeyc
         iBVDg1yqao0t0YuL94RB1b79R4IDx087OsY3KrBGAeDbztqeqNtFm8hbwhTBGzDDYq39
         QRZpFJosVT65Liyz408uonPPUIcLFQpjsYguE1gk0Nkh3o+ymm9nHJ1C7luNtVq6S8BT
         DceKD1DBOSG9gbkgaBi9Fyut+y4D01fXG8nEm3eMAZxae6teccIa+vSIZU88FcyWPlle
         69xp+k+vJOp/aC6bQkB5aMohbbKr8+10rW2NkG3fWUxbXlPEnspMBPkj126xb6oBgNO4
         erqQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773331719; x=1773936519;
        h=in-reply-to:autocrypt:from:content-language:references:to:subject
         :user-agent:mime-version:date:message-id:x-gm-gg:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=H0WdEqqlF87tUnD1zgBx+Ug45tY1vEgZU7Vdh3Mx3GY=;
        b=axZJUhIV7WNXHCP3UZpg19s0ZtEs7hmH/QjqR/4ctx8bgMa3f6kwAniH5ZfInx9Fnc
         zshkDiskBiWpK/6y5eQqyquI0DuMzMuRYa4IF58Rmtg9QZtgr0vz6m15e6NaMUffCBKN
         +Aojt9o2Q7fIV4dveMcKhkUZTNZOP//rg9hAZFIZaG8c1gT/TXu75sxjMBqF/59rkqln
         gl2V0itoJmZYJa7aGJUxYYR9wMp1rZU+DYl+9RKSTipzEBuxNvPO7679P6mxVhs4KKPK
         jAK3mHRl84djVPPbxOqJArmBhmAQbBNNVBHmhOZrBYejYG4HpiFkstOoKQKdS+40SHEA
         iAsw==
X-Forwarded-Encrypted: i=1; AJvYcCXwsFpu8dao42PDuzvsi2ZwR2IgpNCdr56DrMDg/eRhczVkhBJUGeru2bDJmWqDoBNAIbO8ZV7M6CE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxjctwB4BTG7Qtln9sztnJfuYPgGf2cU1GWUB5i5zYL454tG+1u
	GLTMTkJvaoKQFiSF9YWUY5HWXQNpbz+Dv/NjGtdZI25HZ7QctQxtar95wlrMN1Gyzh+lY/LW50q
	d1rVh
X-Gm-Gg: ATEYQzwAGZWukQyLosrKKdkhzO/D++rsailjFtwnPUNrVq+RIqCbPKohiVkLn4/Uvxq
	85XiHEZKl6w4VWULpJWKD9U2bN0Hb1f9wxZgU6QX2eazAPv4bSUFjPd77K+wmPBS2cQ4tHpS7p/
	4Xl+NjDrKaw9YuFMkpWO0WmqQ/GmFrhNJbnjnVV/u3RMgdvbCzz/dvHjXZ3n9hGQYeKu7FSrKwb
	wyPUFl0MSpnmmdS2q+45ozW60fCXWr3lTJEwdr3bsSCDreAJ8ahNlcLzH/4kjOZqhS/9tjGjnsX
	IALEvAR4ryiG5BzH+mJwrRQ3Qv7MiUPLVT5meHzEm+ajJWAAyxtrsT8l1IbBHWBDNYQ/lCBgX7t
	By2dWsOy/vZtvVzBuOvhaYhO8GFo55yciJtqGNizihiFqibsSgr6yWdtU4W7pT9HJdiuIxtLrTe
	DQoULHeh8k3w2yeUzLRn0sk89mrXENUfnMKgNjIE02tIidLrYt72jscLrvgF7t1QkZOMRck7UGd
	HuGcK03P/Ot9Wb4idYeOVBupFF6xB1vtD2DCpFoPpxvzDPHmkrKIQ==
X-Received: by 2002:a17:907:1c16:b0:b87:7485:b4bf with SMTP id a640c23a62f3a-b9764b41327mr3198666b.0.1773331719210;
        Thu, 12 Mar 2026 09:08:39 -0700 (PDT)
Message-ID: <40510d6c-ad72-439b-93a3-1a61be45a0e8@suse.com>
Date: Thu, 12 Mar 2026 17:08:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/8] tools/xs-clients: add some man pages and fixes
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20260312155102.2862824-1-jgross@suse.com>
 <5dc86501-dd23-494b-ad40-ee59aab3dabe@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: <5dc86501-dd23-494b-ad40-ee59aab3dabe@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------CdpBLASn0aGBPVGYLQM4bab1"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------CdpBLASn0aGBPVGYLQM4bab1
Content-Type: multipart/mixed; boundary="------------oN2vc4gMI5LK6dwpney9izlX";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Message-ID: <40510d6c-ad72-439b-93a3-1a61be45a0e8@suse.com>
Subject: Re: [PATCH v2 0/8] tools/xs-clients: add some man pages and fixes
References: <20260312155102.2862824-1-jgross@suse.com>
 <5dc86501-dd23-494b-ad40-ee59aab3dabe@citrix.com>
In-Reply-To: <5dc86501-dd23-494b-ad40-ee59aab3dabe@citrix.com>

--------------oN2vc4gMI5LK6dwpney9izlX
Content-Type: multipart/mixed; boundary="------------TddWtYRmd0n87FVkXqkIftJl"

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

T24gMTIuMDMuMjYgMTc6MDIsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDEyLzAzLzIw
MjYgMzo1MCBwbSwgSnVlcmdlbiBHcm9zcyB3cm90ZToNCj4+IEp1ZXJnZW4gR3Jvc3MgKDgp
Og0KPj4gICAgZG9jczogYWRkIC1oIHBhcmFtZXRlciBkZXNjcmlwdGlvbiB0byB4ZW5zdG9y
ZS0qIG1hbiBwYWdlcw0KPj4gICAgZG9jczogYWRkIG1hbiBwYWdlIGZvciB4ZW5zdG9yZS1l
eGlzdHMNCj4+ICAgIGRvY3M6IGFkZCBtYW4gcGFnZSBmb3IgeGVuc3RvcmUtbGlzdA0KPj4g
ICAgZG9jczogYWRkIG1hbiBwYWdlIGZvciB4ZW5zdG9yZS1ybQ0KPj4gICAgZG9jczogYWRk
IG1hbiBwYWdlIGZvciB4ZW5zdG9yZS13YXRjaA0KPj4gICAgdG9vbHMveHMtY2xpZW50czog
ZG9uJ3QgZXhpdCB3aXRoIGVycm9yIHdoZW4gdXNpbmcgLWggcGFyYW1ldGVyDQo+PiAgICB0
b29scy94cy1jbGllbnRzOiBmaXggdXNhZ2UgaW5mb3JtYXRpb24gb2YgeGVuc3RvcmUtZXhp
c3RzDQo+PiAgICB0b29scy94cy1jbGllbnRzOiBmaXggb3V0cHV0IG9mICJ4ZW5zdG9yZS1s
aXN0IC1wIC8iDQo+IA0KPiBSZXZpZXdlZC1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNv
b3BlcjNAY2l0cml4LmNvbT4NCg0KVGhhbmtzLg0KDQo+IA0KPiBUd28gbWlub3IgY29tbWVu
dHMsIGJvdGggb2Ygd2hpY2ggSSBjYW4gZml4IG9uIGNvbW1pdCBpZiB5b3UncmUgaGFwcHk/
DQo+IChXaXRoIHRoZSBwYXRjaCA2IGtub2NrLW9uIHRvIHBhdGNoIDcpLg0KDQpZZXMsIHN1
cmUuDQoNCg0KSnVlcmdlbg0K
--------------TddWtYRmd0n87FVkXqkIftJl
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-----

--------------TddWtYRmd0n87FVkXqkIftJl--

--------------oN2vc4gMI5LK6dwpney9izlX--

--------------CdpBLASn0aGBPVGYLQM4bab1
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/Ey8FAmmy5QYFAwAAAAAACgkQsN6d1ii/Ey+e
BQf/dPkvSfnBepbZiVw//HT2TDN9BiL7R8W+TycazhewwoNptr0v89hfQFeYnRsDFUlEDxDwSkq5
tjtHc6+1JSiiD5LNVSeLY7RsZTjm+5/2BBI0iAwhsm9duUr7BZj1/meI+fz9NnGx6uS4EdvOmI4Y
VpQgncsv6+Xa/EMKj+XIUsxHPMS4j12DJO3yMl67Kn4kmNsuBe50l5w5YTUKry3uOOLaWzLtJwUE
2Y3xforDcIHJJOxiidGbf/1R6Ejd2ntmuYJQ8vp+Mgx/BwEDNn34D0Yms4KQATHQ3o3WfI12RlaL
UxpyPN1HGLOvQ7cwJhF74VAfBuWgXVXs38Ft7ngWOg==
=GIMY
-----END PGP SIGNATURE-----

--------------CdpBLASn0aGBPVGYLQM4bab1--


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 16:53:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 16:53:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252735.1549298 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0jI7-0007Wq-ME; Thu, 12 Mar 2026 16:53:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252735.1549298; Thu, 12 Mar 2026 16:53:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0jI7-0007Wj-JC; Thu, 12 Mar 2026 16:53:43 +0000
Received: by outflank-mailman (input) for mailman id 1252735;
 Thu, 12 Mar 2026 16:53: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=jTts=BM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0jI6-0007Wd-1E
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 16:53:42 +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 0560d3e6-1e34-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 17:53:40 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-439b2965d4bso976835f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 09:53:40 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439fe23afc5sm10757053f8f.39.2026.03.12.09.53.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 09:53:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0560d3e6-1e34-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773334420; x=1773939220; 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=/BpLIOLtb7nPeXHrmlJGGriAAXn/4R/2jNjQ2xEcAaw=;
        b=D4vqlhmAPk4WWfXgzHFN4CxLRqNxjJRe76Zr7mQzrckxTL81sw62NOv0zy4TNTo6Zj
         h1opYfyDr+vzPdf58ThtrlditvDSpLiLY9XTDZ6V8oZBkYYVyJlnBv3wpW8mDMLLNjPG
         nCPoi5CrBOAMWwnUBdw2ZuGs7YkiWiAUrIb6f+0BI9a9Em2rXWtOaMfOjioZddul4luN
         pXE9/PyP0j9XdCokn57l+MiLpcJu8g69OnG9nC6sk8LKExqmbsN7F6wUgBSioxvqTNjB
         vkQWB2Lkg/fbBd1w9pIOyzUAEQZkEvdl2vNf5kUYJVXW1mi9dSxkqalfrVR0Y4WSmqU5
         LpAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773334420; x=1773939220;
        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=/BpLIOLtb7nPeXHrmlJGGriAAXn/4R/2jNjQ2xEcAaw=;
        b=TpnBKu5Om4olfmNXoridjVRMmOA50FTzTgG56fc3+44O5pK/WcVlORkZy3BMAOtSnR
         NaSTtw69W0wSz+23r7hUuGLmUHf56Vg3sWWQKXrpshJjl4i/OzUPS23+eaj+y8ThHOrR
         7n5j86bxtSqNb6oujKkDcgV5NeZgOPcJSPa+8HzecXA+0xZasiA2UJWYVUIzkLsaG7IX
         w5amY8McL+2J70hYo3thlCCbZ+9EJbOSPqDPAd2fhXiTCL/C4Wa38wGivd8bzvm/KBdp
         JTHITEuRrgRgsRGuXOoga/9XnC47OIyccfyxEHvCj9NExrBu6XNcHVr4pNGc+QeR3NPa
         EKaQ==
X-Gm-Message-State: AOJu0YzNR7/eS79vzH0UhyoKkJVIbWG3k9d0tIWofZQns/KaeASpfhdM
	XQTOWlDwJ7xu7jv3S7xNVI1L+dxp2FqKll9IFYLfg7eUSFZitJ9LUl0atj/FK2XMeY8eaweRNOr
	hzp0=
X-Gm-Gg: ATEYQzz6YaIM0QRIr8dM60ncyNnxODoAiCJu+uReUiNSGT9ZkF8vEp7IwdIto51Uht3
	0F08G+HVhgWOOvO6FFU9tL2XGWBQndeWCA0a/W6Pyn3OHsV7qY4PzTX7TqpWj3Ly4ayjLR8O7Ls
	O/z3aB4bQZrxN8dBY2ACDB0izpA9z7RgAbWqON8RHorMxdbBQXzaN0G2/rtHZ3PcFR0R2Gx1wlM
	TYFUaE15VzIqa1v+XC7cRiz0l8FeDb22pp/OIrgDFCKCMbDiAhXL+RF1QgnIS28kv5V7pZ6NzIl
	bi4GdJ6+aqt+30iw3S4aOZn2qXbjgWKy6Nl2bxXG0GOpQYpo1hh5+6g/XioQysvyVeAjG2V5cpF
	ostcCWv0d2mO0TeKExaLerkak1SDbjTSXxcc2hbP6HZPUjkVkJegqMiCUU0xBqbNuQWOMNoaqGX
	sFDw8kNF8qjOdS2m16WRiyJOWp4Dj98xQjdV2JO1iMKDQ4faOpLsdn6zIVJfObp+MVKDnLs6z/s
	uoJL5xoCH69VJQ=
X-Received: by 2002:a05:6000:26d3:b0:439:c550:d933 with SMTP id ffacd0b85a97d-43a04dc3108mr697922f8f.41.1773334419609;
        Thu, 12 Mar 2026 09:53:39 -0700 (PDT)
Message-ID: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@suse.com>
Date: Thu, 12 Mar 2026 17:53:32 +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/9] x86/mwait-idle: sync up with Linux 7.0-rc
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Includes a few custom changes, too.

1: arrange for BSP MSR adjustments during S3 resume
2: clean up BYT/CHT auto demotion disable
3: latch struct idle_cpu contents
4: move pre-initialized struct idle_cpu instances
5: Remove unused driver version constant
6: Remove the 'preferred_cstates' parameter
7: drop const from struct cpuidle_state arrays
8: Add cmdline option to adjust C-states table
9: Add C-states validation

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 12 16:54:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 16:54:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252746.1549308 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0jJ0-00080g-1C; Thu, 12 Mar 2026 16:54:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252746.1549308; Thu, 12 Mar 2026 16:54:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0jIz-00080W-Rj; Thu, 12 Mar 2026 16:54:37 +0000
Received: by outflank-mailman (input) for mailman id 1252746;
 Thu, 12 Mar 2026 16:54: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=jTts=BM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0jIy-0007oX-6x
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 16:54:36 +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 24c33f1e-1e34-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 17:54:33 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-485392de558so7899425e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 09:54:33 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4854e2537c3sm130839255e9.15.2026.03.12.09.54.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 09:54:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 24c33f1e-1e34-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773334472; x=1773939272; 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=dmoB6PX7E346IlhtAnwu7loC1BtwOSw/XEBFSLwwDtY=;
        b=alFQUu+/YbCrNDl2LsdSAiAbljmNzUAZTnKIIEiMSQMlokUkSDGPXZvbwzcLxmheiv
         ZhoWAbkGEr1BKgfEG/qK7bS2Uo/qF3NMB8j69Uq7Hh2Mu21rM12+7by4lOrELM/klKzQ
         tfbvOey4adGG1faI91n+ViX+7JBe1v2OQiCIjQWKSFKThKLow/SZKFdOmu9p8yVedc4b
         2lu2LSop8sZ7lFwo505eMMh5//hL3RfjDYXHeVamwXWWmFDGUImdXydVCgfptz/jMg0B
         iCH1k9M6wbOubkVQeKIhg7tNImujlarEpYk5DRV//inmRojsLFTPYf/Z0K3ojds241Tl
         qHNw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773334472; x=1773939272;
        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=dmoB6PX7E346IlhtAnwu7loC1BtwOSw/XEBFSLwwDtY=;
        b=l7simorpG+vB12wmpC09UeVVf51RwlvL6/jWnBnLQ01iv2C78zrc20/C/No3sjoVCV
         p+Ul6fjRIeVOnVIkoz4yW48okgVHNoEQN8UJxcxIjraKpmtQo1Zq/a/fOc9TleqXZt5C
         dQazl8X+JWteAXBitTgaX3pnHk/CCP23KZt+bdCOinkOGtQUW78gstfIzcNEVQFXybjv
         5klHVStqm9NrH+FdRBpM+kV66z5jNquaNAzKIzX5XUO/xdiCNOSnQP00w0Czlv3FTDNY
         G1n+kV5GZfqaTTsuOtubUT1vydPcNc8Vh4tOIjyGg4yyqkl03eJZsx7pwmPYCaD/Yqvx
         9n3g==
X-Gm-Message-State: AOJu0YwZZaTFfl3b+1bqYQGiZ5xNAU0/w5nHXvrMW97VVcE3mNsgI4IW
	fBDnVp5VIgtYERJf6Gwg9nRh29S+bsZ5xaDmgAvrxgcnWv9xWjLMz2ZgZlZsdHsWH40XGYVS5k0
	81ks=
X-Gm-Gg: ATEYQzymRYQPNBLSpUrd6wXSJzmpR2AtNUU8SDFWNV4MA3KeERF3SuZHcoq1xWCsgoT
	HRu06ccHe82pconInj+n0KxNgmeyf6yO6sosYyFQDbSL1lToVwHzymI6sbygCzYZ/atV6Dy15r/
	ZsqdevTERGaKM8KtgdEndejKALWxmJJc/sikXX5dbEBASvOu+VV7oG4TBEN+715lTK+1bZNlg8D
	Q83b1geOmcSmHcRNaUK94t/SRjVyWOgcVNNjHufwOGBaJ5QQjSKmC6HnnhVcJl7siTPl68++y+E
	oFki39ui0L+bC5hTqzTbe8E1K8Tbm1GHgDaaOjSEGR/EDm2ENZh54+ci5P6VWdPavWN8tp+pfOm
	NKTIbMi58BYmrq4gHOInveYTKCyRYMswS8ZGyhuC5SqmZ8zO9jhT8TIqRw/YUrc/jKGaaJMb+RX
	NDEFb2zVKKwTTXjFiQIAziV1261MGnQrLtYeuCjPi6rP/CHJYcYxst4O9QTvxaFkFcDTENWOH7+
	e3rdwpGlsjmXEI=
X-Received: by 2002:a05:600c:45cb:b0:483:703e:4ad5 with SMTP id 5b1f17b1804b1-4854b109d3fmr114189105e9.22.1773334472428;
        Thu, 12 Mar 2026 09:54:32 -0700 (PDT)
Message-ID: <e5e03239-1d4e-4ab2-8f16-83d280f23b24@suse.com>
Date: Thu, 12 Mar 2026 17:54:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 1/9] x86/mwait-idle: arrange for BSP MSR adjustments during S3
 resume
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@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: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

mwait_idle_cpu_init() is only called for APs, yet MSR writes will
typically need re-doing post-S3 even for the BSP. When multiple cores /
threads are present (and to come back online) in a package, for package
scope MSRs this may be covered by APs doing the writes, but we can't rely
on that.

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

--- a/xen/arch/x86/acpi/power.c
+++ b/xen/arch/x86/acpi/power.c
@@ -28,6 +28,7 @@
 #include <asm/io_apic.h>
 #include <asm/irq.h>
 #include <asm/microcode.h>
+#include <asm/mwait.h>
 #include <asm/prot-key.h>
 #include <asm/spec_ctrl.h>
 #include <asm/tboot.h>
@@ -299,6 +300,7 @@ static int enter_state(u32 state)
     acpi_sleep_post(state);
     if ( hvm_cpu_up() )
         BUG();
+    mwait_idle_resume();
     cpufreq_add_cpu(0);
 
  enable_cpu:
--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -1680,6 +1680,28 @@ static int __init mwait_idle_probe(void)
 	return 0;
 }
 
+static void mwait_idle_cpu_tweak(unsigned int cpu)
+{
+	if (icpu->auto_demotion_disable_flags)
+		on_selected_cpus(cpumask_of(cpu), auto_demotion_disable, NULL, 1);
+
+	if (icpu->byt_auto_demotion_disable_flag)
+		on_selected_cpus(cpumask_of(cpu), byt_auto_demotion_disable, NULL, 1);
+
+	switch (icpu->c1e_promotion) {
+	case C1E_PROMOTION_DISABLE:
+		on_selected_cpus(cpumask_of(cpu), c1e_promotion_disable, NULL, 1);
+		break;
+
+	case C1E_PROMOTION_ENABLE:
+		on_selected_cpus(cpumask_of(cpu), c1e_promotion_enable, NULL, 1);
+		break;
+
+	case C1E_PROMOTION_PRESERVE:
+		break;
+	}
+}
+
 static int cf_check mwait_idle_cpu_init(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
@@ -1762,24 +1784,7 @@ static int cf_check mwait_idle_cpu_init(
 		dev->count++;
 	}
 
-	if (icpu->auto_demotion_disable_flags)
-		on_selected_cpus(cpumask_of(cpu), auto_demotion_disable, NULL, 1);
-
-	if (icpu->byt_auto_demotion_disable_flag)
-		on_selected_cpus(cpumask_of(cpu), byt_auto_demotion_disable, NULL, 1);
-
-	switch (icpu->c1e_promotion) {
-	case C1E_PROMOTION_DISABLE:
-		on_selected_cpus(cpumask_of(cpu), c1e_promotion_disable, NULL, 1);
-		break;
-
-	case C1E_PROMOTION_ENABLE:
-		on_selected_cpus(cpumask_of(cpu), c1e_promotion_enable, NULL, 1);
-		break;
-
-	case C1E_PROMOTION_PRESERVE:
-		break;
-	}
+	mwait_idle_cpu_tweak(cpu);
 
 	return NOTIFY_DONE;
 }
@@ -1811,6 +1816,14 @@ int __init mwait_idle_init(struct notifi
 	return err;
 }
 
+void mwait_idle_resume(void)
+{
+	if (!icpu)
+		return;
+
+	mwait_idle_cpu_tweak(smp_processor_id());
+}
+
 /* Helper function for HPET. */
 bool __init mwait_pc10_supported(void)
 {
--- a/xen/arch/x86/include/asm/mwait.h
+++ b/xen/arch/x86/include/asm/mwait.h
@@ -14,9 +14,12 @@
 #define MWAIT_ECX_INTERRUPT_BREAK	0x1
 
 void mwait_idle_with_hints(unsigned int eax, unsigned int ecx);
+
 #ifdef CONFIG_INTEL
+void mwait_idle_resume(void);
 bool mwait_pc10_supported(void);
 #else
+static inline void mwait_idle_resume(void) {}
 static inline bool mwait_pc10_supported(void)
 {
     return false;



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 16:55:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 16:55:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252755.1549315 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0jJO-0008QD-5P; Thu, 12 Mar 2026 16:55:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252755.1549315; Thu, 12 Mar 2026 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 1w0jJO-0008Q6-2S; Thu, 12 Mar 2026 16:55:02 +0000
Received: by outflank-mailman (input) for mailman id 1252755;
 Thu, 12 Mar 2026 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=jTts=BM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0jJN-0007oX-5H
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 16:55:01 +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 3469e879-1e34-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 17:54:59 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-439b9cf8cb5so1397636f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 09:54:59 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439fe2187aasm8766001f8f.30.2026.03.12.09.54.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 09:54: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: 3469e879-1e34-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773334499; x=1773939299; 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=R5UX7rhqlDYYvqPxFRQg96W4qwOAL8dxcHZMY3uLDNc=;
        b=a7VUtB1184aqabHp4Dvm4UelGYdqdKthkAQxEm4OFy+hrAEU0VuE0ADfYvscDLVLzK
         A4gxMD/C/QVQfFYLm1dJ9lVjT+CGpmFLmo59VKohcWPLk2+OUnh3Sx8FmAWCKbWZEmIT
         nGKlp8NLHKZevqrlIbdsT86wnpMquJM7gWIyoItrEThgOPajAJqHKa+Fu2ai9WPdf6ES
         KLAQDHDIK2z5VIk2L5UWyRUYlF+aY/ydxlFB6MuJYCf9OiWG6iEDbgSjQDX5aK89vUoU
         LRry9HX7JRalhHxDXFHl50uQIiLRZAh8J/p6dc0AowaM9nLoe6Pjinrp2lEcwtWbtaQU
         NZ6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773334499; x=1773939299;
        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=R5UX7rhqlDYYvqPxFRQg96W4qwOAL8dxcHZMY3uLDNc=;
        b=lqIWjhbsNMvVDG8Sq8Z7dtXl/Lj9sO7b05jdF6IDAtH6fMoGwseGDLpB9Kc2Xyadop
         5WMTRzSwcam+TbQgBz9JdWdGAi793H62RwC4VMUDYeTUiGhy4vKcmPKKPGgAJqBv6RtB
         BHACIHErDXrG1zT+AEER7qnuykKirW/7IRkCeYJQ3oM5m5M6rmcq10Uq/z0d8oOGQ/GT
         GGIHcOHmkgA0jj0b8A78RH6NXjBYPeGb9QWPqx5B1Hwo5nH3kM/zU8ci8maJAFWr0CLR
         EjgFzoIkUw55SBIjNPrUtX8+86KAqs93U0cP5xQkFffyGIWxkYpdfcnCpzBWlCAd21vP
         SHuA==
X-Gm-Message-State: AOJu0YzDqNy+t9u8Sm9jWtwLop23zf8QF0nH14kXjgLv0SY+r0FH+diu
	TOvc2N2lFkzmP8LLlMe+N1vVMsDhmhvgEhyDPLWx3RAE5yrhDEEidAf/DsIdZSN1t5uiXOJhPGC
	2pe4=
X-Gm-Gg: ATEYQzyM13wVHweRjUb3Noo0GW0gFierL4CkLNpTuuVYPVt0figM2wQGLIVRCQARnG/
	t/AvnnTD9qmLx7njUm3d0aKT7mgks7qaWyjrQXogQ3PflwOx8+tINQ7k65mGXtbFZJ+LHYaeg71
	c2e2wNkjPW+ApDx+1MvF/OtA7WVwynxwitL3WuHPRHuaAztfCCROH+LLrt7kQd4evVEyF/okzDH
	LVKjISBe8DZ/xlTXStr4g9vIavQgonB7OJiQLmb1Rfb8VOmibrKYYWOv8/cY9R+owAdovoU1uvq
	1ILBUySmJyHR1biakhYjFys8+inQLkAr+kClN0coKpPo8ZlMXCM7eZ52LtaJtdsQMA3LxhSY8Fw
	KD4hnFojGCjK39q0Ar9Mg+JOpadgalHsObDlm7QGfKvzlOPd/hmyVHhsIQOlpzSEbH3hX1nRF2h
	HxGV0SDnWX+QUrG4um1kzBRprgv05+ZGHDIqG5uC+ia4w80+Lz2dN03mmUsvCKoTkuI4dQwPkdt
	oMSLlt39CJhxt4=
X-Received: by 2002:a05:6000:240e:b0:439:a95b:3c44 with SMTP id ffacd0b85a97d-43a04db618cmr685748f8f.30.1773334498673;
        Thu, 12 Mar 2026 09:54:58 -0700 (PDT)
Message-ID: <b906c3d5-5256-4ddf-9186-b52d8280e2ec@suse.com>
Date: Thu, 12 Mar 2026 17:54:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 2/9] x86/mwait-idle: clean up BYT/CHT auto demotion disable
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@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: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Bay Trail (BYT) and Cherry Trail (CHT) platforms have a very specific way
of disabling auto-demotion via specific MSR bits. Clean up the code so that
BYT/CHT-specifics do not show up in the common 'struct idle_cpu' data
structure.

Remove the 'byt_auto_demotion_disable_flag' flag from 'struct idle_cpu',
because a better coding pattern is to avoid very case-specific fields like
'bool byt_auto_demotion_disable_flag' in a common data structure, which is
used for all platforms, not only BYT/CHT. The code is just more readable
when common data structures contain only commonly used fields.

Instead, match BYT/CHT in the 'intel_idle_init_cstates_icpu()' function,
and introduce a small helper to take care of BYT/CHT auto-demotion. This
is consistent with how platform-specific things are done for other
platforms.

No intended functional changes.

Inspired by (and description largely taken from) Linux'es c93d13b661a6
("intel_idle: clean up BYT/CHT auto demotion disable").

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

--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -104,7 +104,6 @@ struct idle_cpu {
 	 * Indicate which enable bits to clear here.
 	 */
 	unsigned long auto_demotion_disable_flags;
-	bool byt_auto_demotion_disable_flag;
 	enum c1e_promotion c1e_promotion;
 };
 
@@ -1144,7 +1143,7 @@ static void cf_check auto_demotion_disab
 	wrmsrl(MSR_PKG_CST_CONFIG_CONTROL, msr_bits);
 }
 
-static void cf_check byt_auto_demotion_disable(void *dummy)
+static void byt_cht_auto_demotion_disable(void)
 {
 	wrmsrl(MSR_CC6_DEMOTION_POLICY_CONFIG, 0);
 	wrmsrl(MSR_MC6_DEMOTION_POLICY_CONFIG, 0);
@@ -1195,13 +1194,11 @@ static const struct idle_cpu idle_cpu_sn
 static const struct idle_cpu idle_cpu_byt = {
 	.state_table = byt_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
-	.byt_auto_demotion_disable_flag = true,
 };
 
 static const struct idle_cpu idle_cpu_cht = {
 	.state_table = cht_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
-	.byt_auto_demotion_disable_flag = true,
 };
 
 static const struct idle_cpu idle_cpu_ivb = {
@@ -1680,14 +1677,11 @@ static int __init mwait_idle_probe(void)
 	return 0;
 }
 
-static void mwait_idle_cpu_tweak(unsigned int cpu)
+static void mwait_idle_cpu_tweak(unsigned int cpu, bool bsp)
 {
 	if (icpu->auto_demotion_disable_flags)
 		on_selected_cpus(cpumask_of(cpu), auto_demotion_disable, NULL, 1);
 
-	if (icpu->byt_auto_demotion_disable_flag)
-		on_selected_cpus(cpumask_of(cpu), byt_auto_demotion_disable, NULL, 1);
-
 	switch (icpu->c1e_promotion) {
 	case C1E_PROMOTION_DISABLE:
 		on_selected_cpus(cpumask_of(cpu), c1e_promotion_disable, NULL, 1);
@@ -1700,12 +1694,24 @@ static void mwait_idle_cpu_tweak(unsigne
 	case C1E_PROMOTION_PRESERVE:
 		break;
 	}
+
+	/* Pkg-scope MSRs on 1-socket-only systems need writing only once. */
+	if (!bsp)
+		return;
+
+	switch (boot_cpu_data.vfm) {
+	case INTEL_ATOM_SILVERMONT:
+	case INTEL_ATOM_AIRMONT:
+		byt_cht_auto_demotion_disable();
+		break;
+	}
 }
 
 static int cf_check mwait_idle_cpu_init(
     struct notifier_block *nfb, unsigned long action, void *hcpu)
 {
 	unsigned int cpu = (unsigned long)hcpu, cstate;
+	static bool first;
 	struct acpi_processor_power *dev = processor_powers[cpu];
 
 	switch (action) {
@@ -1784,7 +1790,8 @@ static int cf_check mwait_idle_cpu_init(
 		dev->count++;
 	}
 
-	mwait_idle_cpu_tweak(cpu);
+	mwait_idle_cpu_tweak(cpu, first);
+	first = false;
 
 	return NOTIFY_DONE;
 }
@@ -1821,7 +1828,7 @@ void mwait_idle_resume(void)
 	if (!icpu)
 		return;
 
-	mwait_idle_cpu_tweak(smp_processor_id());
+	mwait_idle_cpu_tweak(smp_processor_id(), true);
 }
 
 /* Helper function for HPET. */



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 16:55:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 16:55:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252764.1549324 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0jJn-0000Qs-Cy; Thu, 12 Mar 2026 16:55:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252764.1549324; Thu, 12 Mar 2026 16:55:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0jJn-0000Ql-AI; Thu, 12 Mar 2026 16:55:27 +0000
Received: by outflank-mailman (input) for mailman id 1252764;
 Thu, 12 Mar 2026 16:55: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=jTts=BM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0jJm-0000EC-CS
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 16:55:26 +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 43f8a4e1-1e34-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 17:55:25 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-439c56e822eso1282164f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 09:55:25 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439fe228986sm7866764f8f.35.2026.03.12.09.55.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 09:55:23 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 43f8a4e1-1e34-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773334525; x=1773939325; 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=YORkC10FLOdP4ZPuyWf26dj7CDdAeRGQhEwwoPkwu48=;
        b=bwiC1ev88ZAmCC54nAdIPSUgd+azdNzx3ds6x8WyxKX3Ax7saCHi20rYp6kDb8/TrY
         hXt5zrd2ojJSutiB7v6exc/iyZeddbYmlr5kcSJCQl93n+lpEatj87+JBYkDhP13VIEb
         Cbv6GlnDpReFYpSeLxzcXcfRpgmgH0KIffll7H3onFFspzWXxuflKt2/tNIi1DuaRN9d
         VnlsScMo7N/CWpt2vjBL5VufYHd3GUIrU0IM4fRPZ5JIYTn41DspDJrYec367fprp8Or
         7i8nZJ173QcRCvuqAZ3/nNu4IA3un/hP7Sn9Fu0n3dv7/AOBCkZl6n5pW6flFg/4uD4s
         +MCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773334525; x=1773939325;
        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=YORkC10FLOdP4ZPuyWf26dj7CDdAeRGQhEwwoPkwu48=;
        b=w2p3Nik7v6BlayR4kEtIeSQApfsLGHFB0jfvUVsfmWhgYKuqyAb09fBN0unLWt9ygT
         R1P7zLTuXYuuSOIVuE9TG1Wd8akPQCnlgl9HNuJ7GADJbARy1Z9wdL4vP6+2vyf1elTn
         1Q7CRceo1a8PJQ7NKV0SPFhrOJey4M1ND09OOTSCsv369tM7y3Fne94P3o4gN8Su2pOL
         VaR/NVBYKY0qDJHrL11UwKE2DzCFbkLb/PfcZNuiF9XY39hE/VVsgX+KFiCrt33dCcLE
         GFxg8RRdnexzlMcovIZUFgn95kUNhDE4VPRv/4kTRB7MHU0cBTFQb1lsvHqp38YtcK2u
         PmfQ==
X-Gm-Message-State: AOJu0YzoHnYEs0iLXBCsBBnbw946/UBqQvPCI9aDliRGzP+QCdlmz4s4
	GWuR1pQLOacPvrvAZsjGPGQpzilT7NcDqt0PZ/ktPtc/Fv4Sd1yjF0opzeUjzAd6qqOEJX+2+2Z
	lWa4=
X-Gm-Gg: ATEYQzxfgaNc6sK6VbBTGeP0E1ObaeNadbnMnHafZRXJGl0UkSvupVrnfgQHf0bGMiW
	B9dG2ocYER+FV9xmUXsYnJfphBbUHv/6KvwUDceOQ/2u/e6xreF0PeUe3PAbIe9D2DmP5/Lj/If
	Xn/xh8jdLuDaigSIiOa8H5VX51+a6jbJ7wFaQPY/JNuCJZhd8lTtotN717VhkCZVqp945RaNut/
	HFYwThBh0tHEk8kKUvCBNNAwDiPZlqKydXaeMZxkxp9o5piJoTV8sLxgCWHOG0Sw44wVjcOo6af
	uwpPF8SAHJksyhIWAe3TJXbRhVgCuSNqEshCjPiRSqMbCPzTHSpz7WUw9o3fV/NoSrKHh4XJvGR
	7vVw92mgrOH4po1W6FOnU30+DAfrxPcM4NnXAvHDjZDymCbZbJVBltOpJT9wwsiKvE41nuQHbrj
	pyAeA89nNeJkJlXJPI34nCN2/N/DgH8fTxAqQqH7By6NeRFSq5NKwQxpsNh7D0OqBGHyUnjT96i
	CRU+cnQ6iq2fAoxHP0wYPqaDg==
X-Received: by 2002:a05:6000:178b:b0:439:b7c9:2edc with SMTP id ffacd0b85a97d-43a04dc0b96mr751381f8f.48.1773334524773;
        Thu, 12 Mar 2026 09:55:24 -0700 (PDT)
Message-ID: <5d12d537-7c6b-4730-b963-a4a9e13a7413@suse.com>
Date: Thu, 12 Mar 2026 17:55:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 3/9] x86/mwait-idle: latch struct idle_cpu contents
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@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: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Rather than storing a pointer (and needing to keep all struct instances in
memory post-init), and rather than (like the Linux counterpart has it)
keeping individual variables, simply copy the respective structure
instance. By implication, subsequent updates now need doing to the copy.

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

--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -107,14 +107,14 @@ struct idle_cpu {
 	enum c1e_promotion c1e_promotion;
 };
 
-static const struct idle_cpu *__ro_after_init icpu;
+static struct idle_cpu __ro_after_init icpu;
 
-static const struct cpuidle_state {
+struct cpuidle_state {
 	char		name[16];
 	unsigned int	flags;
 	unsigned int	exit_latency; /* in US */
 	unsigned int	target_residency; /* in US */
-} *__ro_after_init cpuidle_state_table;
+};
 
 #define CPUIDLE_FLAG_DISABLED		0x1
 /*
@@ -1097,7 +1097,7 @@ static void cf_check mwait_idle(void)
 	 * leave_mm() to avoid costly and often unnecessary wakeups
 	 * for flushing the user TLB's associated with the active mm.
 	 */
-	if (cpuidle_state_table[].flags & CPUIDLE_FLAG_TLB_FLUSHED)
+	if (icpu.state_table[].flags & CPUIDLE_FLAG_TLB_FLUSHED)
 		leave_mm(cpu);
 #endif
 
@@ -1139,7 +1139,7 @@ static void cf_check auto_demotion_disab
 	u64 msr_bits;
 
 	rdmsrl(MSR_PKG_CST_CONFIG_CONTROL, msr_bits);
-	msr_bits &= ~(icpu->auto_demotion_disable_flags);
+	msr_bits &= ~icpu.auto_demotion_disable_flags;
 	wrmsrl(MSR_PKG_CST_CONFIG_CONTROL, msr_bits);
 }
 
@@ -1371,10 +1371,10 @@ static void __init ivt_idle_state_table_
 		/* 1 and 2 socket systems use default ivt_cstates */
 		break;
 	case 2: case 3:
-		cpuidle_state_table = ivt_cstates_4s;
+		icpu.state_table = ivt_cstates_4s;
 		break;
 	default:
-		cpuidle_state_table = ivt_cstates_8s;
+		icpu.state_table = ivt_cstates_8s;
 		break;
 	}
 }
@@ -1525,14 +1525,12 @@ static void __init adl_idle_state_table_
 		adl_l_cstates[1].flags |= CPUIDLE_FLAG_DISABLED;
 
 		/* Disable C1E by clearing the "C1E promotion" bit. */
-		idle_cpu_adl.c1e_promotion = C1E_PROMOTION_DISABLE;
-		idle_cpu_adl_l.c1e_promotion = C1E_PROMOTION_DISABLE;
+		icpu.c1e_promotion = C1E_PROMOTION_DISABLE;
 		return;
 	}
 
 	/* Make sure C1E is enabled by default */
-	idle_cpu_adl.c1e_promotion = C1E_PROMOTION_ENABLE;
-	idle_cpu_adl_l.c1e_promotion = C1E_PROMOTION_ENABLE;
+	icpu.c1e_promotion = C1E_PROMOTION_ENABLE;
 }
 
 /*
@@ -1593,6 +1591,7 @@ static int __init mwait_idle_probe(void)
 {
 	unsigned int eax, ebx, ecx;
 	const struct x86_cpu_id *id;
+	const struct idle_cpu *idle_cpu;
 	const char *str;
 
 	if (boot_cpu_data.vendor != X86_VENDOR_INTEL)
@@ -1627,8 +1626,8 @@ static int __init mwait_idle_probe(void)
 
 	pr_debug(PREFIX "MWAIT substates: %#x\n", mwait_substates);
 
-	icpu = id->driver_data;
-	cpuidle_state_table = icpu->state_table;
+	idle_cpu = id->driver_data;
+	icpu = *idle_cpu;
 
 	if (boot_cpu_has(X86_FEATURE_XEN_ARAT))
 		lapic_timer_reliable_states = LAPIC_TIMER_ALWAYS_RELIABLE;
@@ -1647,7 +1646,7 @@ static int __init mwait_idle_probe(void)
 		const char *ss;
 
 		do {
-			const struct cpuidle_state *state = icpu->state_table;
+			const struct cpuidle_state *state = idle_cpu->state_table;
 			unsigned int bit = 1;
 
 			ss = strchr(str, ',');
@@ -1679,10 +1678,10 @@ static int __init mwait_idle_probe(void)
 
 static void mwait_idle_cpu_tweak(unsigned int cpu, bool bsp)
 {
-	if (icpu->auto_demotion_disable_flags)
+	if (icpu.auto_demotion_disable_flags)
 		on_selected_cpus(cpumask_of(cpu), auto_demotion_disable, NULL, 1);
 
-	switch (icpu->c1e_promotion) {
+	switch (icpu.c1e_promotion) {
 	case C1E_PROMOTION_DISABLE:
 		on_selected_cpus(cpumask_of(cpu), c1e_promotion_disable, NULL, 1);
 		break;
@@ -1735,11 +1734,11 @@ static int cf_check mwait_idle_cpu_init(
 
 	dev->count = 1;
 
-	for (cstate = 0; cpuidle_state_table[cstate].target_residency; ++cstate) {
+	for (cstate = 0; icpu.state_table[cstate].target_residency; ++cstate) {
 		unsigned int num_substates, hint, state;
 		struct acpi_processor_cx *cx;
 
-		hint = flg2MWAIT(cpuidle_state_table[cstate].flags);
+		hint = flg2MWAIT(icpu.state_table[cstate].flags);
 		state = MWAIT_HINT2CSTATE(hint) + 1;
 
 		if (state > max_cstate) {
@@ -1755,10 +1754,10 @@ static int cf_check mwait_idle_cpu_init(
 			continue;
 
 		/* if state marked as disabled, skip it */
-		if (cpuidle_state_table[cstate].flags &
+		if (icpu.state_table[cstate].flags &
 		    CPUIDLE_FLAG_DISABLED) {
 			printk(XENLOG_DEBUG PREFIX "state %s is disabled\n",
-			       cpuidle_state_table[cstate].name);
+			       icpu.state_table[cstate].name);
 			continue;
 		}
 
@@ -1776,15 +1775,15 @@ static int cf_check mwait_idle_cpu_init(
 		cx->type = state;
 		cx->address = hint;
 		cx->entry_method = ACPI_CSTATE_EM_FFH;
-		cx->latency = cpuidle_state_table[cstate].exit_latency;
+		cx->latency = icpu.state_table[cstate].exit_latency;
 		cx->target_residency =
-			cpuidle_state_table[cstate].target_residency;
-		if ((cpuidle_state_table[cstate].flags &
+			icpu.state_table[cstate].target_residency;
+		if ((icpu.state_table[cstate].flags &
 		     CPUIDLE_FLAG_IRQ_ENABLE) &&
 		    /* cstate_restore_tsc() needs to be a no-op */
 		    boot_cpu_has(X86_FEATURE_NONSTOP_TSC))
 			cx->irq_enable_early = true;
-		if (cpuidle_state_table[cstate].flags & CPUIDLE_FLAG_IBRS)
+		if (icpu.state_table[cstate].flags & CPUIDLE_FLAG_IBRS)
 			cx->ibrs_disable = true;
 
 		dev->count++;
@@ -1825,7 +1824,7 @@ int __init mwait_idle_init(struct notifi
 
 void mwait_idle_resume(void)
 {
-	if (!icpu)
+	if (!icpu.state_table)
 		return;
 
 	mwait_idle_cpu_tweak(smp_processor_id(), true);



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 16:55:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 16:55:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252772.1549334 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0jKF-0000vb-Pr; Thu, 12 Mar 2026 16:55:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252772.1549334; Thu, 12 Mar 2026 16:55:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0jKF-0000vU-Lo; Thu, 12 Mar 2026 16:55:55 +0000
Received: by outflank-mailman (input) for mailman id 1252772;
 Thu, 12 Mar 2026 16:55: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=jTts=BM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0jKE-0000EC-1y
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 16:55:54 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 547a5fb3-1e34-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 17:55:53 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4853510b4f3so16238635e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 09:55:53 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48541aa73dasm693358825e9.2.2026.03.12.09.55.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 09:55:51 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 547a5fb3-1e34-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773334552; x=1773939352; 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=Zqpvz5INomrf1w7sEL/xZCVv7pCruy4Bd5QH3mgXqjc=;
        b=GdJFuQ08B6/lyk/mNyxz+jG/rxUGjossdmGtp8RVU/aJqMRlL9daUTcGUMl1I8PVsz
         yQx8gJY/wirGaE5dGJrEuio7+kY9j6khIv4PRaxgYS4cXDJS9ZlfmjnmUxr16DNzo8lI
         /zReHFS0k3UPaSjKQbL4XgKZfFa44CaYRV94p0pg4Ox+yZJ4WaJpqT+Da14VrnVbGVqQ
         w98a/ZKVgxWlViAwrP7Z5pOv/Mc/m54rLvwdub/2hQFmxgQfYfTyy8vQC9qVkihZZUaB
         FfY7l9eoY9N4jABB5tCYtthHsQk85EI/6+HxEDVYlWEQ3x+Yzp5fPjAGR8Pjdtrzqoln
         FaUw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773334552; x=1773939352;
        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=Zqpvz5INomrf1w7sEL/xZCVv7pCruy4Bd5QH3mgXqjc=;
        b=OPmyZbPOoDtQLXw3T/TFgYlBGf7tx9o2P01gDkYMmEksawsi1YVBdTDLq4D45eJc4P
         FOL5FZgkv4/rlRJ0Cyj5hIZA/gYhtcgQEPXdeqQB59ouovpxyRDiKUDHwGEAGpybIIHs
         /fHS1me2P86NVxArr0SIoCk9CT7rSaUENChxi51sTI0ZwDgAfCnH2NJeGJ80alYTOnJZ
         sQrBH7h2MQzd7MyUaRFNHKD2h6aA6h8zrUxZSi4Ve6SvhNoOLwhNnsLvfAwOWgrlSwlP
         2IILiMpYGkyJOuC/3TlT9oJFiOU7N3y0ajCOPUHU74rbOGPXPfHZy9mLhxOZIPseEwz7
         NwMA==
X-Gm-Message-State: AOJu0YwF8FwYrgkJQBG8Hb2ti+LRR1x37kfSCn2NyJDLS5dwNKEyS4XC
	dFvtG9ke92CfWc+YubRqqUpjdxM15cBCUSQ8vcRI9klgE0dr0QV7kBDDNM7QaRvNGhl+Bl7AL6r
	xueE=
X-Gm-Gg: ATEYQzxCNydjNg+bti+Qk2I55imkp0Gu5UPTNr1ajy49RDK7CYFRygr0tGqbvYhr9+T
	Dt8cGCUT0Yl2WLrK8i4XanMkUz0AJdZTEse8XrFvni3NE+1Uwp0xg/Fe5d7DOWAxiQQk+FUpFJF
	ImewlFlWgxbznK9RtLIWxAWVnrj+rP9tPJJi80xG3FAgcMqahle/n0SRauDz1ORIAbjbNg9BHL8
	MhoeYa/2tUhKhrARpmm60cFm3wHMOyIjaju6fsCoFemzmbHKI1d/ZoocY7x/AEyXo0gVyMJmH+i
	LvU1HmZ+TR8t/j3T4Non+P6mRrD72sWuUUCeKXNMFbkVVh9Y/ufrUqhRg441SHLp/kJORzlYmEJ
	swH6uT+tB8cGw9SB63LSYb9O9U/kbLdmQPAE3pDBJiBV/hbHaxo7ljTe24Kuok0rIu+Iwq1xq54
	a1M7GsJV9NDw3go2MB1q3F5J/GxhjEDU2k3ji6LD1JG2YPgqtsfHsexlEqKlNIiNw6Z45tHNZyQ
	f4uRKXlw8U16w8=
X-Received: by 2002:a05:600c:4fc6:b0:477:5b0a:e616 with SMTP id 5b1f17b1804b1-485566d2f96mr272825e9.5.1773334552485;
        Thu, 12 Mar 2026 09:55:52 -0700 (PDT)
Message-ID: <797f444b-886f-46ed-9672-a0f302d47336@suse.com>
Date: Thu, 12 Mar 2026 17:55:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 4/9] x86/mwait-idle: move pre-initialized struct idle_cpu
 instances
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@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: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Now that they're not referenced anymore post-init, they can themselves
move into .init.rodata. (idle_cpu_adl{,_l} can also become const in the
first place.)

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

--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -1167,132 +1167,132 @@ static void cf_check c1e_promotion_disab
 	wrmsrl(MSR_IA32_POWER_CTL, msr_bits);
 }
 
-static const struct idle_cpu idle_cpu_nehalem = {
+static const struct idle_cpu __initconstrel idle_cpu_nehalem = {
 	.state_table = nehalem_cstates,
 	.auto_demotion_disable_flags = NHM_C1_AUTO_DEMOTE | NHM_C3_AUTO_DEMOTE,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_atom = {
+static const struct idle_cpu __initconstrel idle_cpu_atom = {
 	.state_table = atom_cstates,
 };
 
-static const struct idle_cpu idle_cpu_tangier = {
+static const struct idle_cpu __initconstrel idle_cpu_tangier = {
 	.state_table = tangier_cstates,
 };
 
-static const struct idle_cpu idle_cpu_lincroft = {
+static const struct idle_cpu __initconstrel idle_cpu_lincroft = {
 	.state_table = atom_cstates,
 	.auto_demotion_disable_flags = ATM_LNC_C6_AUTO_DEMOTE,
 };
 
-static const struct idle_cpu idle_cpu_snb = {
+static const struct idle_cpu __initconstrel idle_cpu_snb = {
 	.state_table = snb_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_byt = {
+static const struct idle_cpu __initconstrel idle_cpu_byt = {
 	.state_table = byt_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_cht = {
+static const struct idle_cpu __initconstrel idle_cpu_cht = {
 	.state_table = cht_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_ivb = {
+static const struct idle_cpu __initconstrel idle_cpu_ivb = {
 	.state_table = ivb_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_ivt = {
+static const struct idle_cpu __initconstrel idle_cpu_ivt = {
 	.state_table = ivt_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_hsw = {
+static const struct idle_cpu __initconstrel idle_cpu_hsw = {
 	.state_table = hsw_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_bdw = {
+static const struct idle_cpu __initconstrel idle_cpu_bdw = {
 	.state_table = bdw_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_skl = {
+static const struct idle_cpu __initconstrel idle_cpu_skl = {
 	.state_table = skl_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_skx = {
+static const struct idle_cpu __initconstrel idle_cpu_skx = {
 	.state_table = skx_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_icx = {
+static const struct idle_cpu __initconstrel idle_cpu_icx = {
 	.state_table = icx_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static struct idle_cpu __ro_after_init idle_cpu_adl = {
+static const struct idle_cpu __initconstrel idle_cpu_adl = {
 	.state_table = adl_cstates,
 };
 
-static struct idle_cpu __ro_after_init idle_cpu_adl_l = {
+static const struct idle_cpu __initconstrel idle_cpu_adl_l = {
 	.state_table = adl_l_cstates,
 };
 
-static const struct idle_cpu idle_cpu_mtl_l = {
+static const struct idle_cpu __initconstrel idle_cpu_mtl_l = {
 	.state_table = mtl_l_cstates,
 };
 
-static const struct idle_cpu idle_cpu_gmt = {
+static const struct idle_cpu __initconstrel idle_cpu_gmt = {
 	.state_table = gmt_cstates,
 };
 
-static const struct idle_cpu idle_cpu_spr = {
+static const struct idle_cpu __initconstrel idle_cpu_spr = {
 	.state_table = spr_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_gnr = {
+static const struct idle_cpu __initconstrel idle_cpu_gnr = {
 	.state_table = gnr_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_gnrd = {
+static const struct idle_cpu __initconstrel idle_cpu_gnrd = {
 	.state_table = gnrd_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_avn = {
+static const struct idle_cpu __initconstrel idle_cpu_avn = {
 	.state_table = avn_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_bxt = {
+static const struct idle_cpu __initconstrel idle_cpu_bxt = {
 	.state_table = bxt_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_dnv = {
+static const struct idle_cpu __initconstrel idle_cpu_dnv = {
 	.state_table = dnv_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_snr = {
+static const struct idle_cpu __initconstrel idle_cpu_snr = {
 	.state_table = snr_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_grr = {
+static const struct idle_cpu __initconstrel idle_cpu_grr = {
 	.state_table = grr_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };
 
-static const struct idle_cpu idle_cpu_srf = {
+static const struct idle_cpu __initconstrel idle_cpu_srf = {
 	.state_table = srf_cstates,
 	.c1e_promotion = C1E_PROMOTION_DISABLE,
 };



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 16:57:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 16:57:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252785.1549343 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0jLi-0001fk-2Y; Thu, 12 Mar 2026 16:57:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252785.1549343; Thu, 12 Mar 2026 16:57:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0jLh-0001fd-Vz; Thu, 12 Mar 2026 16:57:25 +0000
Received: by outflank-mailman (input) for mailman id 1252785;
 Thu, 12 Mar 2026 16:57:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jTts=BM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0jLg-0001fS-0j
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 16:57:24 +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 8921ff55-1e34-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 17:57:21 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4852b81c73aso10860795e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 09:57:21 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48541ab9f9esm251451895e9.4.2026.03.12.09.57.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 09:57:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8921ff55-1e34-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773334641; x=1773939441; 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=W72JevWeU/QiLig4xhCD0an3/J6aVnjef/9hQUIbYAo=;
        b=XLkxS1d44mJSLviwzmOXRgoPggmonBVEb+WZ781Gg9CNNbGickzQuc2ghHZYYRNpJ+
         HD+Qw6xrXrhEOcvN1mYWne7HT8BkW7OXAq0O9sj3YuINWYzePGVRJ+cIrzQ/QLTwgOu2
         GKm93RPvx9PwBlUsZTyBSTxBNk0qdkbSOmNaAlfA+r1+Tte/jbHqWvLNAFZPDl9hbjW2
         fxvzXMmx/GKYFTUoJ8EOK0YAw3Uspa1+yZ4nG/nvbCmxAfdHZcBi8o/3SWwApSfFy+Db
         V6WqtlNoQLIxIzGKipJI5RM9RFopNDS2HyPusSNNT2eqPwyFBXxuE1UyLMMWEOe5WJnE
         1Qfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773334641; x=1773939441;
        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=W72JevWeU/QiLig4xhCD0an3/J6aVnjef/9hQUIbYAo=;
        b=DElH9eVI6EB2nxtvBl0GYe9BSvUhAJXcJovYgkYZ6hNeELtjaQ0IvD8zDJH7KYNA8F
         Np3x0brAvXdKCH/6t7nQEECAPyeJLAeX3lmW0FU3ZeUw6HGAfqL7vWFK5kPsry0V/9VQ
         1clzLrTujU0TRv+dFdlPvpJU3ZC93DqT1ZEA+hTCNv4zVIVDormjOII1yxdtn8ITHIHp
         6kJMUg7JwlUK6uommgeNv/m40GV72HxGyOg5Ajfu7DXadi73NkYcms266I2MmzngsiY1
         741Pe2tFsPrSFmXpcho8B835Idp4x/ahV15EqysCxCLCDOibkk1m9sCq44ueqrHrKmfb
         eVTg==
X-Gm-Message-State: AOJu0YzP1fnwzbuISScefD825KGPN2MQc+D/LKIneevxD6ib2jHq0CuW
	Kq68AvEOTtDAfKtoL+cQD1bs3M3fuc3CF1VHkWyF4oJEAYEnJvueId9p++NqC6Q0s3SGLCyQvRR
	z0dk=
X-Gm-Gg: ATEYQzwnvXZzBK4U6mwmrRP8SpYYnQGLXUAAnXe2Hdf2vZjq+ikv6xJ5kTGyiFpzshm
	EjYnegOqr5MdTd6Rmn3ssaEazh9dG0LGqxks1i9W+idrXseRJovzKerTRHVBaBwZtqwCIVoBOUV
	Ty4kd+Y4USdnNhGVWF8M9jznybQDYtC9pu9p1mRh73sEkyFdgYVQmcWjNBnzAAnqx1zA/V14moJ
	YHf+6IvhPgAWBSsdyAD6vwt4hPKMaldLX/0GSVnfrSrwP4Rbimt5BPbpqyprpQOKsevOUVfAs3Z
	sE5djI+oiHlKLAHL7m/lwlAKG3Bgy+zUEz6KByy5lQGSLu1fP5HB4+nbncw3Y/rk4LCEWMRvYR0
	1YNm+64jBguodd8DeW4EhBPYf9TBVhOcTbT5yJ0GB+B2BiwtKUTiaWUlNLFO0J260Sg5A8M9Ucw
	HYeAYL8m/MQBGb8P1eDvCBP3ytFrRoG1pc3FBmKkV0QZIwfh43qStJew5B3GrQetfvAMmieXi1i
	7IdQiEOuNUfQT0=
X-Received: by 2002:a05:600c:8714:b0:485:389b:ee5f with SMTP id 5b1f17b1804b1-485566cf89fmr386065e9.2.1773334640845;
        Thu, 12 Mar 2026 09:57:20 -0700 (PDT)
Message-ID: <5516d0a1-8fac-48ff-bbe1-85726b730e94@suse.com>
Date: Thu, 12 Mar 2026 17:57:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 7/9] x86/mwait-idle: drop const from struct cpuidle_state
 arrays
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@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: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

A subsequent change will want to be able to alter them based on a new
command line option. (Note that some were __ro_after_init already.)

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

--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -83,7 +83,7 @@ enum c1e_promotion {
 };
 
 struct idle_cpu {
-	const struct cpuidle_state *state_table;
+	struct cpuidle_state *state_table;
 
 	/*
 	 * Hardware C-state auto-demotion may not always be optimal.
@@ -139,7 +139,7 @@ struct cpuidle_state {
  * which is also the index into the MWAIT hint array.
  * Thus C0 is a dummy.
  */
-static const struct cpuidle_state nehalem_cstates[] = {
+static struct cpuidle_state __ro_after_init nehalem_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -167,7 +167,7 @@ static const struct cpuidle_state nehale
 	{}
 };
 
-static const struct cpuidle_state snb_cstates[] = {
+static struct cpuidle_state __ro_after_init snb_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -201,7 +201,7 @@ static const struct cpuidle_state snb_cs
 	{}
 };
 
-static const struct cpuidle_state byt_cstates[] = {
+static struct cpuidle_state __ro_after_init byt_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -235,7 +235,7 @@ static const struct cpuidle_state byt_cs
 	{}
 };
 
-static const struct cpuidle_state cht_cstates[] = {
+static struct cpuidle_state __ro_after_init cht_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -269,7 +269,7 @@ static const struct cpuidle_state cht_cs
 	{}
 };
 
-static const struct cpuidle_state ivb_cstates[] = {
+static struct cpuidle_state __ro_after_init ivb_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -303,7 +303,7 @@ static const struct cpuidle_state ivb_cs
 	{}
 };
 
-static const struct cpuidle_state ivt_cstates[] = {
+static struct cpuidle_state __ro_after_init ivt_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -331,7 +331,7 @@ static const struct cpuidle_state ivt_cs
 	{}
 };
 
-static const struct cpuidle_state ivt_cstates_4s[] = {
+static struct cpuidle_state __ro_after_init ivt_cstates_4s[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -359,7 +359,7 @@ static const struct cpuidle_state ivt_cs
 	{}
 };
 
-static const struct cpuidle_state ivt_cstates_8s[] = {
+static struct cpuidle_state __ro_after_init ivt_cstates_8s[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -387,7 +387,7 @@ static const struct cpuidle_state ivt_cs
 	{}
 };
 
-static const struct cpuidle_state hsw_cstates[] = {
+static struct cpuidle_state __ro_after_init hsw_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -439,7 +439,7 @@ static const struct cpuidle_state hsw_cs
 	{}
 };
 
-static const struct cpuidle_state bdw_cstates[] = {
+static struct cpuidle_state __ro_after_init bdw_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -565,7 +565,7 @@ static struct cpuidle_state __ro_after_i
 	{}
 };
 
-static const struct cpuidle_state icx_cstates[] = {
+static struct cpuidle_state __ro_after_init icx_cstates[] = {
        {
                .name = "C1",
                .flags = MWAIT2flg(0x00) | CPUIDLE_FLAG_IRQ_ENABLE,
@@ -665,7 +665,7 @@ static struct cpuidle_state __ro_after_i
 	{}
 };
 
-static const struct cpuidle_state mtl_l_cstates[] = {
+static struct cpuidle_state __ro_after_init mtl_l_cstates[] = {
 	{
 		.name = "C1E",
 		.flags = MWAIT2flg(0x01),
@@ -687,7 +687,7 @@ static const struct cpuidle_state mtl_l_
 	{}
 };
 
-static const struct cpuidle_state gmt_cstates[] = {
+static struct cpuidle_state __ro_after_init gmt_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00) | CPUIDLE_FLAG_DISABLED,
@@ -743,7 +743,7 @@ static struct cpuidle_state __ro_after_i
 	{}
 };
 
-static const struct cpuidle_state gnr_cstates[] = {
+static struct cpuidle_state __ro_after_init gnr_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -771,7 +771,7 @@ static const struct cpuidle_state gnr_cs
 	{}
 };
 
-static const struct cpuidle_state gnrd_cstates[] = {
+static struct cpuidle_state __ro_after_init gnrd_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -799,7 +799,7 @@ static const struct cpuidle_state gnrd_c
 	{}
 };
 
-static const struct cpuidle_state atom_cstates[] = {
+static struct cpuidle_state __ro_after_init atom_cstates[] = {
 	{
 		.name = "C1E",
 		.flags = MWAIT2flg(0x00),
@@ -827,7 +827,7 @@ static const struct cpuidle_state atom_c
 	{}
 };
 
-static const struct cpuidle_state tangier_cstates[] = {
+static struct cpuidle_state __ro_after_init tangier_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -861,7 +861,7 @@ static const struct cpuidle_state tangie
 	{}
 };
 
-static const struct cpuidle_state avn_cstates[] = {
+static struct cpuidle_state __ro_after_init avn_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -923,7 +923,7 @@ static struct cpuidle_state __ro_after_i
 	{}
 };
 
-static const struct cpuidle_state dnv_cstates[] = {
+static struct cpuidle_state __ro_after_init dnv_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -949,7 +949,7 @@ static const struct cpuidle_state dnv_cs
  * Note, depending on HW and FW revision, SnowRidge SoC may or may not support
  * C6, and this is indicated in the CPUID mwait leaf.
  */
-static const struct cpuidle_state snr_cstates[] = {
+static struct cpuidle_state __ro_after_init snr_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -971,7 +971,7 @@ static const struct cpuidle_state snr_cs
 	{}
 };
 
-static const struct cpuidle_state grr_cstates[] = {
+static struct cpuidle_state __ro_after_init grr_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),
@@ -993,7 +993,7 @@ static const struct cpuidle_state grr_cs
 	{}
 };
 
-static const struct cpuidle_state srf_cstates[] = {
+static struct cpuidle_state __ro_after_init srf_cstates[] = {
 	{
 		.name = "C1",
 		.flags = MWAIT2flg(0x00),



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 16:58:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 16:58:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252793.1549351 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0jMG-0002CN-AL; Thu, 12 Mar 2026 16:58:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252793.1549351; Thu, 12 Mar 2026 16: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 1w0jMG-0002CG-7I; Thu, 12 Mar 2026 16:58:00 +0000
Received: by outflank-mailman (input) for mailman id 1252793;
 Thu, 12 Mar 2026 16: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=jTts=BM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0jME-0001v3-AX
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 16:57:58 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9e78f7eb-1e34-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 17:57:57 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4853e1ce427so14010975e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 09:57:57 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4854e2537c3sm131081495e9.15.2026.03.12.09.57.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 09:57:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9e78f7eb-1e34-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773334677; x=1773939477; 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=qOP/T1HJZb7a2znFHzhzofDtcxTuReCcTpVKKooOuJM=;
        b=YpdDVmHrUl1fnaN0b7UEfpc2B69zzq4PDWMIVLkSH/OE8f+KUyAoAWj5qwOmxHKOXO
         WIQPbOdi464bN8i5u/QnVdhMxRITYuJiCKC2ZVa2qWepZrhOWDfUUrij873xQx+B2AL0
         HZX5uJkOL2HSjq8gMZedlpPboKvx22K3KzD9a7mZhBHoaArriFUCMNfjgYNWnHyIjszF
         eG178JYq08MK63n1rAQSW4bQSPOOLNystY4V8MAfcB4Ymq8Pl/YZzI6iGVd9LkaW3bLq
         VxB9VdQK4z/tI4eRiP5z5ievC3Ifnj1dl6BdAmV5c1Sx+jXTyaXIWYqXIGeIsgnAQLQN
         /Iww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773334677; x=1773939477;
        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=qOP/T1HJZb7a2znFHzhzofDtcxTuReCcTpVKKooOuJM=;
        b=owYw5N7z1YdrYAU7hCeVr+JKRWOOy+EWA6p/RI6UqF3FQlZKlUhCJKZRih66Lolg74
         Pv4M04ZMIbRQj0541XGOu5RCT4wrIZ9Qrj4sBp3HOxyJ2QeNcSlS6g7WHh7nmhwHONLY
         padvp1EwQeWHdaQJGIP7+lEa0MChQKZ0wtPRHDH0ZNqVJFgaeievXi5ex3Km0SnWg48P
         zQXnZbczz8g1+z3V6cko3x1HrMjDihBYINaPOY8BY7+6HHh3MNqgrL1fXs/RCA11Iz+A
         3BV+6bXyVQ3itgUkw4NfQ7J5V4rHTZOzoEZIBBCzfwXiwGHGt6j/ZOKbctVe3A9mzGP8
         AZtQ==
X-Gm-Message-State: AOJu0Yy8ixg6R3HxrvIFNl6ITUpP6fRdrxOyoAdmADQtb7pVWLzPMpAK
	qw3ahf/5xRs+FEWh+NI2MLZvFCJdE6Hi3dAqMjbuM71lHlTBsqvWdTFvf0v2yVJojKw7prP4uM6
	Ob3Q=
X-Gm-Gg: ATEYQzz57WU74fMJ3As8n1t4tvM61WWSqgsxrFRLNH+CARShxddczd6oJK53xY4yhbr
	Awh7pj/nNYeYLrqc7ypBPJVTdfOosPmz7qEQrPlBFcZXIxL5E2I3YhpnF5JzCYs8niNJzG7lr6v
	nfnjUOaEJvqqjur+WUAinOLRT+ZUaz2mJw8PlTuEV+O5KnAnahQ6Sz18YXETDUFNmr+PPLa2zDZ
	iQnaYommdv6UAqJUQHtgTDmkqfYuo0XeTAia1/XkSu+kMJrPSxVJzyAtMEf3lQNKPZ8x54MoHAx
	00jbE0IOEO73BRRwIjEvW9Z44LC1aHuXRWwDploxmjH0cxDlVsixmJ/uyNcRnOL2lieZ8lS/9BC
	mP7ya6NaWOG3IhRnAhwU5YG9ZqqrQVR9pjkJi2eKjaadr+9K5M1ANgHfzH12tNRfKbEzqgy/v5G
	Gf71TTbD8G+WR1ynJov9r6pJdYqq7/qkdHFJdMp6krrbdFU7nvr43WcbiaONmk4RRpr2y/5py8t
	wyJNMNsyxhaKuM=
X-Received: by 2002:a05:600c:3490:b0:477:9b4a:a82 with SMTP id 5b1f17b1804b1-4854b13e5d7mr112510495e9.35.1773334676486;
        Thu, 12 Mar 2026 09:57:56 -0700 (PDT)
Message-ID: <addfdc9f-7f03-4b84-b998-1fdbef2edc78@suse.com>
Date: Thu, 12 Mar 2026 17:57:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 8/9] x86/mwait-idle: Add cmdline option to adjust C-states
 table
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@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: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

Add a new module parameter that allows adjusting the C-states table used by
the driver.

Currently, the C-states table is hardcoded in the driver based on the CPU
model. The goal is to have good enough defaults for most users.

However, C-state characteristics, such as exit latency and residency, can
vary between different variants of the same CPU model and BIOS settings.
Moreover, different platform usage models and user preferences may benefit
from different C-state target_residency values.

Provide a way for users to adjust the C-states table via a module parameter
"table". The general format is:
"state1:latency1:target_residency1,state2:latency2:target_residency2,..."

In other words, represent each C-state by its name, exit latency (in
microseconds), and target residency (in microseconds), separated by colons.
Separate multiple C-states by commas.

For example, suppose a CPU has 3 C-states with the following
characteristics:
  C1:  exit_latency=1, target_residency=2
  C1E: exit_latency=10, target_residency=10
  C6:  exit_latency=100, target_residency=500

Users can specify a custom C-states table as follows:

1. intel_idle.table="C1:2:2,C1E:5:20,C6:150:600"
   Result: C1:  exit_latency=2, target_residency=2
           C1E: exit_latency=5, target_residency=20
           C6:  exit_latency=150, target_residency=600
2. intel_idle.table="C6::400"
   Result: C1:  exit_latency=1, target_residency=2 (unchanged)
           C1E: exit_latency=10, target_residency=10 (unchanged)
           C6:  exit_latency=100, target_residency=400
                (only target_residency changed)

Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Link: https://patch.msgid.link/20251216080402.156988-3-dedekind1@gmail.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 111f77a23348

Add __init to get_cmdline_field(). Put cmdline_table_str[] in .init.data.
Other adjustments to fit our env.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
For the initial attempt, I've left the new option as a standalone one. It
may be worth integrating with "mwait-idle", but I think much of the
parsing would then want doing differently. It'll then likely be much
harder to apply future Linux changes there.

--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -1928,6 +1928,23 @@ Print boot time MTRR state.
 Use the MWAIT idle driver (with model specific C-state knowledge) instead
 of the ACPI based one.
 
+### mwait-idle.table (x86)
+> `= <string>`
+
+ Define the C-states table from a user input string. Expected format is
+ 'name:latency:residency', where:
+ - name: The C-state name.
+ - latency: The C-state exit latency in us.
+ - residency: The C-state target residency in us.
+
+ Multiple C-states can be defined by separating them with commas:
+ 'name1:latency1:residency1,name2:latency2:residency2'
+
+ Example: intel_idle.table=C1:1:1,C1E:5:10,C6:100:600
+
+ To leave latency or residency unchanged, use an empty field, for example:
+ 'C1:1:1,C1E::10' - leaves C1E latency unchanged.
+
 ### nmi (x86)
 > `= ignore | dom0 | fatal`
 
--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -70,6 +70,11 @@
 static __initdata bool opt_mwait_idle = true;
 boolean_param("mwait-idle", opt_mwait_idle);
 
+/* The maximum allowed length for the 'table' module parameter  */
+#define MAX_CMDLINE_TABLE_LEN 256
+static char cmdline_table_str[MAX_CMDLINE_TABLE_LEN] __initdata;
+string_param("mwait-idle.table", cmdline_table_str);
+
 static unsigned int mwait_substates;
 
 #define LAPIC_TIMER_ALWAYS_RELIABLE 0xFFFFFFFF
@@ -122,6 +127,9 @@ struct cpuidle_state {
  */
 #define CPUIDLE_FLAG_IBRS		0x20000
 
+/* C-states data from the 'mwait-idle.table' cmdline parameter */
+static struct cpuidle_state cmdline_states[ACPI_PROCESSOR_MAX_POWER] __initdata;
+
 /*
  * MWAIT takes an 8-bit "hint" in EAX "suggesting"
  * the C-state (top nibble) and sub-state (bottom nibble)
@@ -1546,6 +1554,161 @@ static void __init mwait_idle_state_tabl
 	}
 }
 
+ /**
+  * get_cmdline_field - Get the current field from a cmdline string.
+  * @args: The cmdline string to get the current field from.
+  * @field: Pointer to the current field upon return.
+  * @sep: The fields separator character.
+  *
+  * Examples:
+  *   Input: args="C1:1:1,C1E:2:10", sep=':'
+  *   Output: field="C1", return "1:1,C1E:2:10"
+  *   Input: args="C1:1:1,C1E:2:10", sep=','
+  *   Output: field="C1:1:1", return "C1E:2:10"
+  *   Ipnut: args="::", sep=':'
+  *   Output: field="", return ":"
+  *
+  * Return: The continuation of the cmdline string after the field or NULL.
+  */
+static char *__init get_cmdline_field(char *args, char **field, char sep)
+{
+	unsigned int i;
+
+	for (i = 0; args[i] && !isspace(args[i]); i++) {
+		if (args[i] == sep)
+			break;
+	}
+
+	*field = args;
+
+	if (args[i] != sep)
+		return NULL;
+
+	args[i] = '\0';
+	return args + i + 1;
+}
+
+/**
+ * cmdline_table_adjust - Adjust the C-states table with data from cmdline.
+ *
+ * Adjust the C-states table with data from the 'mwait-idle.table' parameter
+ * (if specified).
+ */
+static void __init cmdline_table_adjust(void)
+{
+	char *args = cmdline_table_str;
+	struct cpuidle_state *state;
+	unsigned int i, state_count;
+
+	if (args[0] == '\0')
+		/* The 'mwait-idle.table' module parameter was not specified */
+		return;
+
+	/* Create a copy of the C-states table */
+	for (i = 0;
+	     i < ARRAY_SIZE(cmdline_states) && icpu.state_table[i].name[0];
+	     i++)
+		cmdline_states[i] = icpu.state_table[i];
+
+	state_count = i;
+
+	/*
+	 * Adjust the C-states table copy with data from the 'mwait-idle.table'
+	 * module parameter.
+	 */
+	while (args) {
+		char *fields, *name, *val;
+
+		/*
+		 * Get the next C-state definition, which is expected to be
+		 * '<name>:<latency_us>:<target_residency_us>'. Treat "empty"
+		 * fields as unchanged. For example,
+		 * '<name>::<target_residency_us>' leaves the latency unchanged.
+		 */
+		args = get_cmdline_field(args, &fields, ',');
+
+		/* name */
+		fields = get_cmdline_field(fields, &name, ':');
+		if (!fields)
+			goto error;
+
+		/* Find the C-state by its name */
+		state = NULL;
+		for (i = 0; i < state_count; i++) {
+			if (!strcmp(name, cmdline_states[i].name)) {
+				state = &cmdline_states[i];
+				break;
+			}
+		}
+
+		if (!state) {
+			printk(XENLOG_ERR PREFIX "C-state '%s' was not found\n",
+			       name);
+			continue;
+		}
+
+		/* Latency */
+		fields = get_cmdline_field(fields, &val, ':');
+		if (!fields)
+			goto error;
+
+		if (*val) {
+			const char *end;
+			unsigned long n = simple_strtoul(val, &end, 0);
+
+			state->exit_latency = n;
+			if (*end || state->exit_latency != n)
+				goto error;
+		}
+
+		/* Target residency */
+		fields = get_cmdline_field(fields, &val, ':');
+
+		if (*val) {
+			const char *end;
+			unsigned long n = simple_strtoul(val, &end, 0);
+
+			state->target_residency = n;
+			if (*end || state->target_residency != n)
+				goto error;
+		}
+
+		/*
+		 * Allow for 3 more fields, but ignore them. Helps to make
+		 * possible future extensions of the cmdline format backward
+		 * compatible.
+		 */
+		for (i = 0; fields && i < 3; i++) {
+			fields = get_cmdline_field(fields, &val, ':');
+			if (!fields)
+				break;
+		}
+
+		if (fields) {
+			printk(XENLOG_ERR PREFIX
+			       "Too many fields for C-state '%s'\n",
+			       state->name);
+			goto error;
+		}
+
+		printk(XENLOG_INFO PREFIX
+		       "C-state from cmdline: name=%s, latency=%u, residency=%u\n",
+		       state->name, state->exit_latency, state->target_residency);
+	}
+
+	/* Copy the adjusted C-states table back */
+	for (i = 0; i < state_count; i++)
+		icpu.state_table[i] = cmdline_states[i];
+
+	printk(XENLOG_INFO PREFIX
+	       "Adjusted C-states with data from 'mwait-idle.table'\n");
+	return;
+
+ error:
+	printk(PREFIX
+	       "Failed to adjust C-states with data from 'mwait-idle.table'\n");
+}
+
 static int __init mwait_idle_probe(void)
 {
 	unsigned int eax, ebx, ecx;
@@ -1595,6 +1758,8 @@ static int __init mwait_idle_probe(void)
 
 	mwait_idle_state_table_update();
 
+	cmdline_table_adjust();
+
 	return 0;
 }
 



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 16:58:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 16:58:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252806.1549361 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0jMh-0002oz-Lf; Thu, 12 Mar 2026 16:58:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252806.1549361; Thu, 12 Mar 2026 16: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 1w0jMh-0002os-Hw; Thu, 12 Mar 2026 16:58:27 +0000
Received: by outflank-mailman (input) for mailman id 1252806;
 Thu, 12 Mar 2026 16: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=jTts=BM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0jMg-0002Yf-51
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 16:58:26 +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 ae87bdf4-1e34-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 17:58:24 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4853e1ce427so14015765e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 09:58:24 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48541b6f708sm342809325e9.11.2026.03.12.09.58.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 09:58:22 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ae87bdf4-1e34-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773334703; x=1773939503; 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=vVYFfqfJHLEO9z5Th4OdzRW5ThSuFwagPEe2uUt1u9I=;
        b=fckAaDC8XWNt1oby6kWMJtv+EKjtz+eyidP04x5bb2UEKsn/FkFjYl73bYkt1SbSvQ
         MO5nQ0vC2GDGUqe0emxCs6ZMictVbTfPozj7Fsi4YgKlOPeOOw8mWYjcekyTfD8/8rIn
         nfzzydd/CmI0CNVdFJWyBpssc12i6GZUvA8ZY8YV+xSPW9aHg+DQCrmrmmZZETsDNiWb
         Y0DNDBs27YAqvwaAm248gD0v0xQfc/3/lEXm1aHVQRy4koSXUk/qQDv/be/VyERHOh3S
         MbokkLPbqV2xamUjJNHj1+fmtfDOBNr8L9hV/NxGGZiDb+KOzFdCb0dm9TJeb6bi+eC2
         lq3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773334703; x=1773939503;
        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=vVYFfqfJHLEO9z5Th4OdzRW5ThSuFwagPEe2uUt1u9I=;
        b=C0Na1srSV5OvY5KhHfbWrK2ya91fRo3MjfnWUKVYXHZ2xfBDgJaiP3KgGOMygiDnOm
         BXfyZufDAAn0iUDWpBNyFDAHRoFD0rCMZYhcIFzJvzU5ZJ6LZchNL0dX60+5tWaQVICz
         6xHtGTZ6yZWCQbrLSjzarF2DJXx+ocgxlGG1b7tzbr3Zypl2G4jqM2nULqvOd3TS+eX2
         UfVQEvbhm/KrtQRFpGbiVjYbd5l8+Q8pAdeBq+U2EyHHSmoXePR12knaLx+wflramjzk
         y4lSzRm1/AzE0GXYDeREJ6GmTb7D9qZ0KSeGRoIuj++FBhw6CTUFPyv8kDo+1PpP8gGM
         rAPA==
X-Gm-Message-State: AOJu0YygwCO7PZDcs7QBckNRN22VsOYbVHK6JQq9fBCV0zAgOdHlGUce
	Bg0h1cHC429BxOwex8fgqH9At6AWjDJN/fzD/IqhdyzsgmZBkz73lFSF7EH7A3wAxi73pJWXjye
	yKvQ=
X-Gm-Gg: ATEYQzzDT8IvxpjBSBOZIqowFjGgoL8Zp7wY0ATmSOJMpWlkZ6fScYsZaGLkEth0MQT
	yKXw3MEI9+Dky4WmYK5Gk4E5rRglYtPDpqFYEv2T8GzONSr+bE0kGsNLBENsnJVP+gD2259ixRe
	jlulxCzn5fm7rENxt/1EB7kn49jEj76dkOtas7i6ldfN0dLHXTCRiccwVTpvekhmVqOLsvfD4xe
	3ikycEGnaH7SfLXyFFEIzHzUfy90kieEHjw6IgzbhYcEjpSWrwKZ5lgdIesCUA7n/TGkQ9HeNTP
	A0OxQCmQ3CmaOgYxayaPJ3X9/k1oqbE3thacXlxY042241JAe4lAKUru5M14zb8cbq+5kM1ZFae
	r3EqQOEAa+guUMnBWmHjPWoorl64RJD4+FcWEFtUG/ELqRxBI4TeaBJU5tEHiqhsE/0QOnBafG4
	y0Ea8Kxy7NNhps0jTe8bNHtYr+BOX34QQH7v4A1b45vCplRWLUWujye5RKb2ME3AxgiZ92P0SYZ
	iEYjZUAkF2Q1Eg=
X-Received: by 2002:a05:600c:c3cc:10b0:485:54cc:2e7c with SMTP id 5b1f17b1804b1-48554cc2e8cmr25076595e9.24.1773334703593;
        Thu, 12 Mar 2026 09:58:23 -0700 (PDT)
Message-ID: <d13912c9-8820-44e7-8aad-d8ee9ea17980@suse.com>
Date: Thu, 12 Mar 2026 17:58:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 9/9] x86/mwait-idle: Add C-states validation
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@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: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

Add validation for C-states specified via the "table=" module parameter.
Treat this module parameter as untrusted input and validate it thoroughly.

Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Link: https://patch.msgid.link/20251216080402.156988-4-dedekind1@gmail.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git be6a150829b3

Add __init to validate_cmdline_cstate(). Other adjustments to fit our env.

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

--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -72,6 +72,11 @@ boolean_param("mwait-idle", opt_mwait_id
 
 /* The maximum allowed length for the 'table' module parameter  */
 #define MAX_CMDLINE_TABLE_LEN 256
+/* Maximum allowed C-state latency */
+#define MAX_CMDLINE_LATENCY_US (5 * 1000 /* USEC_PER_MSEC */)
+/* Maximum allowed C-state target residency */
+#define MAX_CMDLINE_RESIDENCY_US (100 * 1000 /* USEC_PER_MSEC */)
+
 static char cmdline_table_str[MAX_CMDLINE_TABLE_LEN] __initdata;
 string_param("mwait-idle.table", cmdline_table_str);
 
@@ -1589,6 +1594,41 @@ static char *__init get_cmdline_field(ch
 }
 
 /**
+ * validate_cmdline_cstate - Validate a C-state from cmdline.
+ * @state: The C-state to validate.
+ * @prev_state: The previous C-state in the table or NULL.
+ *
+ * Return: 0 if the C-state is valid or -EINVAL otherwise.
+ */
+static int __init validate_cmdline_cstate(struct cpuidle_state *state,
+					  struct cpuidle_state *prev_state)
+{
+	if (state->exit_latency == 0)
+		/* Exit latency 0 can only be used for the POLL state */
+		return -EINVAL;
+
+	if (state->exit_latency > MAX_CMDLINE_LATENCY_US)
+		return -EINVAL;
+
+	if (state->target_residency > MAX_CMDLINE_RESIDENCY_US)
+		return -EINVAL;
+
+	if (state->target_residency < state->exit_latency)
+		return -EINVAL;
+
+	if (!prev_state)
+		return 0;
+
+	if (state->exit_latency <= prev_state->exit_latency)
+		return -EINVAL;
+
+	if (state->target_residency <= prev_state->target_residency)
+		return -EINVAL;
+
+	return 0;
+}
+
+/**
  * cmdline_table_adjust - Adjust the C-states table with data from cmdline.
  *
  * Adjust the C-states table with data from the 'mwait-idle.table' parameter
@@ -1696,6 +1736,21 @@ static void __init cmdline_table_adjust(
 		       state->name, state->exit_latency, state->target_residency);
 	}
 
+	/* Validate the adjusted C-states */
+	for (i = 0; i < state_count; i++) {
+		struct cpuidle_state *prev_state;
+
+		state = &cmdline_states[i];
+		prev_state = i ? &cmdline_states[i - 1] : NULL;
+
+		if (validate_cmdline_cstate(state, prev_state)) {
+			printk(XENLOG_ERR PREFIX
+			       "C-state '%s' validation failed\n",
+			       state->name);
+			goto error;
+		}
+	}
+
 	/* Copy the adjusted C-states table back */
 	for (i = 0; i < state_count; i++)
 		icpu.state_table[i] = cmdline_states[i];



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 16:58:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 16:58:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252815.1549370 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0jMr-0003B0-Rr; Thu, 12 Mar 2026 16:58:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252815.1549370; Thu, 12 Mar 2026 16:58:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0jMr-0003At-Oq; Thu, 12 Mar 2026 16:58:37 +0000
Received: by outflank-mailman (input) for mailman id 1252815;
 Thu, 12 Mar 2026 16:58:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jTts=BM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0jLH-0000EC-Dk
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 16:56:59 +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 7b72d5c6-1e34-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 17:56:58 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-439bcec8613so1030894f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 09:56:58 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439fe22529csm9002078f8f.31.2026.03.12.09.56.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 09:56:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b72d5c6-1e34-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773334618; x=1773939418; 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=4O5ib0lx1V0XU83S5mr85hWtGtQTwPLl/vPSyc15n5c=;
        b=fL1NxqKmO58LBqrG7Lzs744fEAmR/LX8aG1J2QpcX0+9R/fwwhWl4pkbBLQoCc/WQI
         ZZL98FRev1asaKcToPiRLC/FPRumF4KK86cu7zKtA8w7ioYagfdMCPW6FhJO7aZ1Cb1B
         9DxAnZTZgLOvx7i0JynvicsfcgsjNzGSDksUF68qfd7LY/i1M4QMyOfB++hdXXTI9g0x
         Oib4xiur/evG7M2/CVV7q+9Vphtw6UBNPhRVPW8gAuawrlAKPUjODRYVkEGueT7v5dZ+
         XN+fi2Qh8b2O93azIYNeq/YW160HmGNkwZ/woLu2yAD1d85BYdoCLXG5cRgbPQczDYXV
         Gn1g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773334618; x=1773939418;
        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=4O5ib0lx1V0XU83S5mr85hWtGtQTwPLl/vPSyc15n5c=;
        b=w1j3fIcysj3ej/frRYNibT3G7VB3n1CXZCVY2J8BrpiRQOoVTuw/vC+am40ujCRpne
         SHnB9cwmFaXUl3GZOOtnwV7ROP/OinoEb+JJoLA2V2d6kZR6/xk5E7CdfUOXnF2gSg0y
         5iZVVeoGdpeSY1zuOAsj49BQIOb/MJu0AOAf5FN4c6LyCaGplmQJCweWUgXjAFAnyvZP
         wrlIOZ5lM7NV1tj0eapjmm2ljc17HrWU8XD6FD4jHI9sryvOeiIETjw6+JqS958yYj9e
         RWS6x3EjRmvInRpwgbWjHVqwixVAOdjdZ6P56V/OCKkDCxUEEYLvGFPdS6oZ8CEXc7TY
         UNrA==
X-Gm-Message-State: AOJu0YzgySWnPd17+LMcA8AvrnbRNmSgqYZJVkt35Zao3x5lqQmWovc3
	c28CmQk5VbtCEGfwuUoKuIzAU8qagOiIDB+yRUCnMTGzkNxGNm2CQ9mZJBvseD1pYODhKpgxD8D
	QxL0=
X-Gm-Gg: ATEYQzyuk+UJcIY1nf5TOfucFAW2OWimIRPQoCNk77Z5CqmBsOz2k+8FjMr/wusDpgN
	UFhAbRf8RtXUHMkI+LNZlpIMi7e9076wewoPFR1c0tRfJZLeD/bI1+CPDeNbhiI3oRCF886r3ys
	VHb3/rpo1G3yrgwIAl+6u6FvHunyzbVRxyxo+aEJUx4oQQ7ZM3QwESJRXXQApfIMPdnFBzLY6CX
	wbwSqfHn7N91ox64w7aVJTkWfWBek2EN+z+n+Hv0O71F+h0x3ouqDcDhwTh0sRwLVsmD/AtT7lI
	7hD7wIl+veGJFmDapmpqduTSEA5R21i4/n5CcmjwAK315PW/NJISqadbhWlNFuoJmhYQf5qja+7
	7kv7oOuZvOTCC+p9UcdH4opkVQTzz0hQVbhIg5EgbEpi47TfrI/8iYrV6hcnsaiOqB3hlIWeWJz
	decrO9zxuEItknP3mKo3csjOxo15RRjCFTTtvzwZ+/JjCKCdRWyQJgpDpdHOtPJUvJfuSWWjW7q
	j9CgCI6BtUMpMY=
X-Received: by 2002:a05:6000:2003:b0:439:ca85:8848 with SMTP id ffacd0b85a97d-43a04d895ecmr837918f8f.16.1773334617801;
        Thu, 12 Mar 2026 09:56:57 -0700 (PDT)
Message-ID: <62702a0e-a43f-4a15-90c7-e5778bbefb4f@suse.com>
Date: Thu, 12 Mar 2026 17:56:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 6/9] x86/mwait-idle: Remove the 'preferred_cstates' parameter
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@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: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

Remove the 'preferred_cstates' module parameter as it is not really useful.

The parameter currently only affects Alder Lake, where it controls C1/C1E
preference, with C1E being the default. The parameter does not support any
other platform. For example, Meteor Lake has a similar C1/C1E limitation,
but the parameter does not support Meteor Lake. This indicates that the
parameter is not very useful.

Generally, independent C1 and C1E are important for server platforms where
low latency is key. However, they are not as important for client platforms,
like Alder Lake, where C1E providing better energy savings is generally
preferred.

The parameter was originally introduced for Sapphire Rapids Xeon:
da0e58c038e6 intel_idle: add 'preferred_cstates' module argument

Later it was added to Alder Lake:
d1cf8bbfed1ed ("intel_idle: Add AlderLake support")

But it was removed from Sapphire Rapids when firmware fixed the C1/C1E
limitation:
1548fac47a114 ("intel_idle: make SPR C1 and C1E be independent")

So Alder Lake is the only platform left where this parameter has any effect.
Remove this parameter to simplify the driver and reduce maintenance burden.

Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Link: https://patch.msgid.link/20251215111300.132803-1-dedekind1@gmail.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git a36dc37b5672
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2083,12 +2083,6 @@ compression is selected at build time fr
 ### ple_window (Intel)
 > `= <integer>`
 
-### preferred-cstates (x86)
-> `= ( <integer> | List of ( C1 | C1E | C2 | ... )`
-
-This is a mask of C-states which are to be used preferably.  This option is
-applicable only on hardware were certain C-states are exclusive of one another.
-
 ### probe-port-aliases (x86)
 > `= <boolean>`
 
--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -72,19 +72,6 @@ boolean_param("mwait-idle", opt_mwait_id
 
 static unsigned int mwait_substates;
 
-/*
- * Some platforms come with mutually exclusive C-states, so that if one is
- * enabled, the other C-states must not be used. Example: C1 and C1E on
- * Sapphire Rapids platform. This parameter allows for selecting the
- * preferred C-states among the groups of mutually exclusive C-states - the
- * selected C-states will be registered, the other C-states from the mutually
- * exclusive group won't be registered. If the platform has no mutually
- * exclusive C-states, this parameter has no effect.
- */
-static unsigned int __ro_after_init preferred_states_mask;
-static char __initdata preferred_states[64];
-string_param("preferred-cstates", preferred_states);
-
 #define LAPIC_TIMER_ALWAYS_RELIABLE 0xFFFFFFFF
 /* Reliable LAPIC Timer States, bit 1 for C1 etc. Default to only C1. */
 static unsigned int lapic_timer_reliable_states = (1 << 1);
@@ -1511,28 +1498,6 @@ static void __init skx_idle_state_table_
 }
 
 /*
- * adl_idle_state_table_update - Adjust AlderLake idle states table.
- */
-static void __init adl_idle_state_table_update(void)
-{
-	/* Check if user prefers C1 over C1E. */
-	if ((preferred_states_mask & BIT(1, U)) &&
-	    !(preferred_states_mask & BIT(2, U))) {
-		adl_cstates[0].flags &= ~CPUIDLE_FLAG_DISABLED;
-		adl_cstates[1].flags |= CPUIDLE_FLAG_DISABLED;
-		adl_l_cstates[0].flags &= ~CPUIDLE_FLAG_DISABLED;
-		adl_l_cstates[1].flags |= CPUIDLE_FLAG_DISABLED;
-
-		/* Disable C1E by clearing the "C1E promotion" bit. */
-		icpu.c1e_promotion = C1E_PROMOTION_DISABLE;
-		return;
-	}
-
-	/* Make sure C1E is enabled by default */
-	icpu.c1e_promotion = C1E_PROMOTION_ENABLE;
-}
-
-/*
  * spr_idle_state_table_update - Adjust Sapphire Rapids idle states table.
  */
 static void __init spr_idle_state_table_update(void)
@@ -1578,11 +1543,6 @@ static void __init mwait_idle_state_tabl
 	case INTEL_EMERALDRAPIDS_X:
 		spr_idle_state_table_update();
 		break;
-	case INTEL_ALDERLAKE:
-	case INTEL_ALDERLAKE_L:
-	case INTEL_ATOM_GRACEMONT:
-		adl_idle_state_table_update();
-		break;
 	}
 }
 
@@ -1591,7 +1551,6 @@ static int __init mwait_idle_probe(void)
 	unsigned int eax, ebx, ecx;
 	const struct x86_cpu_id *id;
 	const struct idle_cpu *idle_cpu;
-	const char *str;
 
 	if (boot_cpu_data.vendor != X86_VENDOR_INTEL)
 		return -ENODEV;
@@ -1634,39 +1593,6 @@ static int __init mwait_idle_probe(void)
 	pr_debug(PREFIX "lapic_timer_reliable_states %#x\n",
 		 lapic_timer_reliable_states);
 
-	str = preferred_states;
-	if (isdigit(str[0]))
-		preferred_states_mask = simple_strtoul(str, &str, 0);
-	else if (str[0])
-	{
-		const char *ss;
-
-		do {
-			const struct cpuidle_state *state = idle_cpu->state_table;
-			unsigned int bit = 1;
-
-			ss = strchr(str, ',');
-			if (!ss)
-				ss = strchr(str, '\0');
-
-			for (; state->name[0]; ++state) {
-				bit <<= 1;
-				if (!cmdline_strcmp(str, state->name)) {
-					preferred_states_mask |= bit;
-					break;
-				}
-			}
-			if (!state->name[0])
-				break;
-
-			str = ss + 1;
-		} while (*ss);
-
-		str -= str == ss + 1;
-	}
-	if (str[0])
-		printk("unrecognized \"preferred-cstates=%s\"\n", str);
-
 	mwait_idle_state_table_update();
 
 	return 0;



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 16:58:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 16:58:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252822.1549379 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0jN3-0003ej-22; Thu, 12 Mar 2026 16:58:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252822.1549379; Thu, 12 Mar 2026 16:58:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0jN2-0003eY-VX; Thu, 12 Mar 2026 16:58:48 +0000
Received: by outflank-mailman (input) for mailman id 1252822;
 Thu, 12 Mar 2026 16:58:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jTts=BM=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0jKn-0000EC-KQ
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 16:56:29 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 69d59ee0-1e34-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 17:56:28 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-48540d21f7dso14833185e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Mar 2026 09:56:28 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48556404816sm1338845e9.5.2026.03.12.09.56.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Mar 2026 09:56:26 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 69d59ee0-1e34-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773334588; x=1773939388; 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=RnDXh0w+MBk68hIH+3zSVNLZToon9goIJ9Tbk6Ty0ts=;
        b=RB4J0TxoDLh/Z4N0wxOPqeEgmu5X23KqamBAxE0hlbl80fGLv32EonezrZpLahdT4Y
         HJ9Al4IcGpnsUURAykMvYTdv5Ieu4C8GODtt5tWkxAPk7jlmgCbK6UHJJTvDLEYjroc6
         b1mSntfLghobuA7sxnFq74qvHXQ86/K4Vw8h0TfsynJjIWsTb6ONPLPcrlx1aisRNP3m
         lbF3Y/u8gqP3u/6P8mR4Sbelh0UuulU5/1+dgISM/w6aEg0MlqdKFfrTAP2FImSFiOQ1
         By40xI/o/JqGGFYDcX6TAEn8msr3WrnWaDMjlYn7pLXk0qlEoUZOCG+Me1bC1Q8w26Et
         RSJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1773334588; x=1773939388;
        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=RnDXh0w+MBk68hIH+3zSVNLZToon9goIJ9Tbk6Ty0ts=;
        b=NhzyLDN3h1/wdF+1Qn0/xd8Z9POLCX5dbhpt8qyWL/OGEUuEJkw5ne8VLv4J9ONnZP
         TkeuKrgB6dhpQ/ohzPVdrXHBBGgdArG+POxY0l9rXdNciLcbw5itiHI8U6URk/tstnaP
         3zR8frc7XtTLMXnLJxhAGWIiCm6FreAsoG0yR9qNIsjUyhK8PLTng0lk0qKJUZ0tus6d
         XcLPCE33JKN3sWzeTRiVRqUQPWXHSbQyNE7vNNXPheHkCFZde996S+6kEVdY6QSiOk6h
         qRdZx45z4pI0NWXJ9hhB0iUFmkRT001mKNhhnH4K+Pw25TDI8hDt6M5DRCHD8ofJdPpl
         sJlg==
X-Gm-Message-State: AOJu0Yw5THFJF04C1dt4tj/xKrGv+4AuqD0afQE3ijQI2hLTmutO5E+w
	+LntvUObp4UC9cq4baGeHGLbM5aD2widLo+aVN+qZXY5owpsNVu9qGdMu+BdIV03CRg59pU2HN8
	eDqE=
X-Gm-Gg: ATEYQzz71ODKRJK4BhdpgRlFhBWQruuTXE03EIo1+LYT3j6NaGSyz2Locs4GpF+aghu
	tcy8g1jiank6ptlU5zFZmV9bGua5aYt23yiw//hX+23CAZXrItArSUrkum9TYrk/mVdfK8aD8PE
	JY/w5NO+ATe5eo3zVDDTBon32S7J8YyKA2FMUUTTwpFwyRriY32CrVPhavBI3WE4VKI+4byy0hY
	zaDMgNptr3eFoYEWFMd8LoezkwfiNlP8V2VhgmIk/3XZQ3OYDmGsYwrsxRPwrmLH/bhDFAzjH4V
	u3t+ciGkpgmw/l82wpQiQhCSnCIyX/QjVxBBqnC2GWQvvExD41XtqNdl/KG3f6SoZdoyWK6VWLG
	LjvlZ8ByrnwUTB48kAUiXjvH4Q876+guIjEHw/4i8CDROMP9r+WdEGIVAWiThIosLLWiO002JSL
	I3Rp93+D0AwIrOAYRIpz2pdwt3zOLx3Ux0tTjUAxM9prlb7GnhEuae5BteBjqEROZOlqOqJYnkN
	jQr6ainhzxBbLk=
X-Received: by 2002:a05:600c:8b65:b0:483:6d42:25c6 with SMTP id 5b1f17b1804b1-4854b10f1ffmr122762335e9.23.1773334588272;
        Thu, 12 Mar 2026 09:56:28 -0700 (PDT)
Message-ID: <d9c97191-853b-470c-9ef1-25eab98c08ba@suse.com>
Date: Thu, 12 Mar 2026 17:56:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 5/9] x86/mwait-idle: Remove unused driver version constant
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: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@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: <7b7a677e-a5b9-42c8-beec-3c506b4eac52@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

The MWAIT_IDLE_VERSION constant has not been updated since 2016 and serves
no useful purpose. The driver version is implicitly defined by the
hypervisor version, making this constant redundant.

Remove the constant to eliminate potential confusion about version
tracking.

Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Link: https://patch.msgid.link/20251215111229.132705-1-dedekind1@gmail.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 25ff69011ddf

Adjust description to fit our code base.

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

--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -58,7 +58,6 @@
 
 #include <acpi/cpufreq/cpufreq.h>
 
-#define MWAIT_IDLE_VERSION "0.4.1"
 #undef PREFIX
 #define PREFIX "mwait-idle: "
 
@@ -1632,9 +1631,6 @@ static int __init mwait_idle_probe(void)
 	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",
-		 boot_cpu_data.x86_model);
-
 	pr_debug(PREFIX "lapic_timer_reliable_states %#x\n",
 		 lapic_timer_reliable_states);
 



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 17:40:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 17:40:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252859.1549387 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0k1e-0002M2-01; Thu, 12 Mar 2026 17:40:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252859.1549387; Thu, 12 Mar 2026 17:40:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0k1d-0002Lv-TZ; Thu, 12 Mar 2026 17:40:45 +0000
Received: by outflank-mailman (input) for mailman id 1252859;
 Thu, 12 Mar 2026 17: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=5Gzm=BM=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1w0k1c-0002Lm-FX
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 17:40:44 +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 9436aed2-1e3a-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Mar 2026 18:40:38 +0100 (CET)
Received: from MN2PR01CA0066.prod.exchangelabs.com (2603:10b6:208:23f::35) by
 IA1PR12MB6211.namprd12.prod.outlook.com (2603:10b6:208:3e5::5) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9723.7; Thu, 12 Mar 2026 17:40:32 +0000
Received: from BN3PEPF0000B06C.namprd21.prod.outlook.com
 (2603:10b6:208:23f:cafe::bc) by MN2PR01CA0066.outlook.office365.com
 (2603:10b6:208:23f::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.27 via Frontend Transport; Thu,
 12 Mar 2026 17:40:33 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN3PEPF0000B06C.mail.protection.outlook.com (10.167.243.71) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9723.1 via Frontend Transport; Thu, 12 Mar 2026 17:40:32 +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, 12 Mar
 2026 12:40:25 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 12 Mar
 2026 12:36:15 -0500
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, 12 Mar 2026 12:36:13 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9436aed2-1e3a-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sg8uF+fEJLpMLAmcI23RxViePufPtat9MchzkTBk7UpFttNlcazkvPCvn4u456q5nTr8yh2ENfvzEeZEk1vSb7SllMG/4ZOs+YATz+SvlbX3HtbIE0BRENfN5zJNJG+UauGLE5pMdK9yA/jDgMgT+Dk1zCxI4KtIXh84+UfiS1EeQxh/GGu8ClVpzN6zKEUIGI4Hb6AlUnc2SqYWxZtlTGj2LUF9cpXSpVftQdjDmwcAzTU45DNSQw96Go/qNOFzd6WYPjSh0hxw1z2Et/zMtqTQf4uAGd8Pr0WwUVnt3wJY/OYnJ0tZaFdyxrfRYVcDQBPFErxFcu5FjOo2ifZbxw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=07vyBeJURv8H6MFtvs6x930jEhHUd3uoBFGZSqh7bsQ=;
 b=J4WSCBwD1+wEVEZIg9OLjcabtRlHw2/ot4CV9bPZFoFKyZfp6xQosE71yxBuqAULsK6Br370uw8zwJkLb20x3HqOACMZX+g3ZlS6xeWks5D/D3+EozGyP2yMNq1CzfSbJEzW3ARy0L1zO+60Rnf8R0vmNToxm5gfp46RGb0L+pFHBtMlVoN4x1ZzQwcTxQoFjgYPSVcOcaueJ561y2e/9VmuGLvQnltJPOgzuN+Mt6KVuXQ15LwvdvK5+q5gFIL2G4SFFaL/xnGDmNoQlZ1QHMmb68BTwIU0E7fs6luVv5hBeimmh2Q4LqDZulVQuF5ppivw6lJ9pPoC+104vLs3hg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=linuxfoundation.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=07vyBeJURv8H6MFtvs6x930jEhHUd3uoBFGZSqh7bsQ=;
 b=tFkT9u02dDgQNoikKUp9dnGg9b3GdI1uKD6suq0li7IZl3fsNK4dOJ9499/HykDcGz464jIW/YgkXCAOxJecpyuTyt2Vx4rit6Qw3otyZjSmMqPmZOuOb+sDnjo9mn5UGbuaBn3wV2M4ptguZq07xHTbqFNBCnI0VXZ7/mAsHU8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Jiri Slaby
	<jirislaby@kernel.org>, Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>
CC: Jason Andryuk <jason.andryuk@amd.com>, <linuxppc-dev@lists.ozlabs.org>,
	<linux-kernel@vger.kernel.org>, <linux-serial@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>
Subject: [PATCH] hvc/xen: Check console connection flag
Date: Thu, 12 Mar 2026 13:38:44 -0400
Message-ID: <20260312173845.47235-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
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: BN3PEPF0000B06C:EE_|IA1PR12MB6211:EE_
X-MS-Office365-Filtering-Correlation-Id: 2d4849b2-c6fd-4998-a035-08de805e75a8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|30052699003|36860700016|1800799024|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	ymtyRnfE3ZvQUhU1pERSLT7qLhoAJ8g+hmJl/BfwnAjMx0BV+l4EKysHcFWfZlccmVCiZlFv/zcqtRE38nvlOieIwnlzILJQ0Zdqfg+BOMfGWjHiKtkYkHkw14yjx8fCA4J8EgaRrHrpd35JY1fDkl6iJ8DwEH+i/BSijn/geceaDZ97RDYa1OHI4RqOPI+udOGw+dDN+rRnMknjV7f2jpo9E0YzLdqSsOFLuVEO2bit72BxZUwuPqVfUnXD6M56hy8Lzkz9U/xe0jkMTh009HIiwa+vs/RJU5eAG+7kfCfqbfmFDgeE43j8IAF3I2Prioh9zL2lfSfZmeThl15QyRndGOOJF+nwfPtylgIZbWtG3Hquf0i4r4+Vbp+QCDYNzWrMdoKtOcOZBVKhxHI2ncuWTH4Bx0OJbt8NJdOnHQrCRzXkk88Lg2amz5gBNs4VMNIrbDlGHPKQAFU5NAJJcYme4qyxpDFuOJL9B+cGZqzevfil2+37Prqafrc9u5PTkcxKVfI3HwNhwy+98EblccjtB2QeFOnJ0EUQ5j7AtReq8wxKnJzrvrkCilUn5Id3TRdzSLV5yVbMTgpi1osJsL6QTuNuAjkoaG6d1AxXkpw6kmOEPTSXSLiIPvsJ9cAPtBKon21strWohTSPEQIIhg93+9NkLE+gmCF67kHASAJbYFpFwSnx4/MDXvLM+L/q5ZR71W0is7trAt2Cpm49WMQsffxmI5zbFWoGxMfBaqU9rMM8KRy/Sp+xjxz/JMbTh6gHq5k/5Ml+wSTiXNc+Kw==
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)(30052699003)(36860700016)(1800799024)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	KgGtq4XNktfI7JVL0t7pdU+cJRf26J3nng+D5I13pZK+pCkB0kmwNvYQoEFoztC7GEJQU/qZl2YPBm1YIQpasWp/0tPWSNTPXysFk/yRGSTIPqCxSYudm/rXFrQMC7o8+7krF8kemS+S9HCnnu/pLYrUeH1ujPe507wXXxBKI2+Rkv6MqPXmiAlk2k1zYaAJvxPzDJJiNcRKnXSEyg0mLRfEZyCtd84dOzuXPGeDFIX1zeYqskuMyv74jP8rAopWBb/oO3/pO3IEBUYFYdL6UqCF3QMnrLfbO82+fcvw5RGy0TWHmgSXJCQ/fLUzi7DUlQ9G6RD1s/iBEdbvADGAsek4R4K+FMrUb6XrMiLwkcnMRk/WaVfQR9n19n17vq5rlr0t/fMKGeXkakOcZo1KROIRlDSJCKaZJWmXzBR67GU8hduVFMbLIpa/dRji+zVS
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 17:40:32.1929
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2d4849b2-c6fd-4998-a035-08de805e75a8
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B06C.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6211

When the console out buffer is filled, __write_console() will return 0
as it cannot send any data.  domU_write_console() will then spin in
`while (len)` as len doesn't decrement until xenconsoled attaches.  This
would block a domU and nullify the parallelism of Hyperlaunch until dom0
userspace starts xenconsoled, which empties the buffer.

Xen 4.21 added a connection field to the xen console page.  This is set
to XENCONSOLED_DISCONNECTED (1) when a domain is built, and xenconsoled
will set it to XENCONSOLED_CONNECTED (0) when it connects.

Update the hvc_xen driver to check the field.  When the field is
disconnected, drop the write with -ENOTCONN.  We only drop the write
when the field is XENCONSOLED_DISCONNECTED (1) to try for maximum
compatibility.  The Xen toolstack has historically zero initialized the
console, so it should see XENCONSOLED_CONNECTED (0) by default.  If an
implemenation used uninitialized memory, only checking for
XENCONSOLED_DISCONNECTED could have the lowest chance of not connecting.

This lets the hyperlaunched domU boot without stalling.  Once dom0
starts xenconsoled, xl console can be used to access the domU's hvc0.

Update the console.h header to bring in the new field.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
 drivers/tty/hvc/hvc_xen.c          |  3 +++
 include/xen/interface/io/console.h | 13 +++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
index 7f0b6262488c..c407592442cd 100644
--- a/drivers/tty/hvc/hvc_xen.c
+++ b/drivers/tty/hvc/hvc_xen.c
@@ -139,6 +139,9 @@ static ssize_t domU_write_console(uint32_t vtermno, const u8 *data, size_t len)
 	if (cons == NULL)
 		return -EINVAL;
 
+	if (cons->intf->connection == XENCONSOLE_DISCONNECTED)
+		return -ENOTCONN;
+
 	/*
 	 * Make sure the whole buffer is emitted, polling if
 	 * necessary.  We don't ever want to rely on the hvc daemon
diff --git a/include/xen/interface/io/console.h b/include/xen/interface/io/console.h
index cf17e89ed861..687949bdebb1 100644
--- a/include/xen/interface/io/console.h
+++ b/include/xen/interface/io/console.h
@@ -19,6 +19,19 @@ struct xencons_interface {
     char out[2048];
     XENCONS_RING_IDX in_cons, in_prod;
     XENCONS_RING_IDX out_cons, out_prod;
+/*
+ * Flag values signaling from backend to frontend whether the console is
+ * connected.  i.e. Whether it will be serviced and emptied.
+ *
+ * The flag starts as disconnected.
+ */
+#define XENCONSOLE_DISCONNECTED 1
+/*
+ * The flag is set to connected when the backend connects and the console
+ * will be serviced.
+ */
+#define XENCONSOLE_CONNECTED    0
+    uint8_t connection;
 };
 
 #endif /* __XEN_PUBLIC_IO_CONSOLE_H__ */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 20:44:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 20:44:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252992.1549406 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0msp-0006PQ-Kw; Thu, 12 Mar 2026 20:43:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252992.1549406; Thu, 12 Mar 2026 20: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 1w0msp-0006PJ-Hq; Thu, 12 Mar 2026 20:43:51 +0000
Received: by outflank-mailman (input) for mailman id 1252992;
 Thu, 12 Mar 2026 20:43: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=QBWs=BM=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1w0mso-0006Bj-R5
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 20:43:50 +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 2c12d2c9-1e54-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 21:43:50 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by PH0PR03MB6870.namprd03.prod.outlook.com (2603:10b6:510:167::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.12; Thu, 12 Mar
 2026 20:43:47 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9700.010; Thu, 12 Mar 2026
 20:43: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: 2c12d2c9-1e54-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zC4N0+KpIErUAGBoiI1IzbDaWDTfqrMxTAoB7JOBmgWwh6R+8l6Mo3UL3xD23IbTl0AD912geiIXd/Cbxta01vG8wr3RhBxU3PdiR3bJZ+NqbpUfUe0vAEWpmpWd39AKn7ZF5BQsCLVTWsW8nMVWzWayK7GR4ZEoIxVQzUje7K++QKQ3IXIP51AZ6Ueh0A/hCLycOwsL7bQzjp7N2oy/XHv+zdXlAGqigzU/BVNpTbD1CGdRVF5ngMKNBOk9AHHH5xduOfdXKRC3JrxDmuHqrs441weWHz9W//WQGda69D1fkaTFQd9CrTToW7u08sSvgxKPFPp2e06xrogHCpZm3g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SdfTNX5aLajDFtunCfhU7/bkqi/fSCRzyyG5ed6hYgM=;
 b=gOcumTv6tP9a3c52t5OM9HxH3Plhg/KDVPqgeKxXWd9n4cyCmnkVhXpkconrpkzxga551F5p1M43Bzt3KGcS2SUumEzgwqFj8FAiaEpaj84dIGaNaAmIdUTeUkYiJ+6Ns6TsPQS+A1g43/s88+Sm+1E0tNypyQKy2mQ4EjtEZWwOh2lkOYNTIixWX70SUEMFFpM0bIb9kxMho+PR+/MJ3uclYmg7L7DOvjGuVr/ZaiRfTD8/k+HPPV+J4DyoeuR8Mqp3rZjpYYZA99prtUGIyeNM4lvrnF1Y+PBR/IcXbwWNWoLpvUkt1MTKgvBdIf9+vi0xeFWuVELgrw7JRbPixQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SdfTNX5aLajDFtunCfhU7/bkqi/fSCRzyyG5ed6hYgM=;
 b=tmawjSc5Q6O0USlm1pR+VoHlEPaT6VS5hrixJngMP8zRNNP5Ana0IZpi++CzZhETZOU2oDWvf5S3qYMPtuHZavS5//3tfDEGmbv6dkZ7iy4g9nVLq9NARi8+5F3VSMMWK7zvJTropumenQooksEF3EldBAeF1tkAL67vkpFMPGs=
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 v v2 1/7] x86: Remove x86 prefixed names from mcheck code
Date: Thu, 12 Mar 2026 20:43:33 +0000
Message-ID: <20260312204339.740403-2-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20260312204339.740403-1-kevin.lampis@citrix.com>
References: <20260312204339.740403-1-kevin.lampis@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0565.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:33b::19) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|PH0PR03MB6870:EE_
X-MS-Office365-Filtering-Correlation-Id: bca96d51-6321-4ce1-6cd2-08de80780ef1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	VD3EYehW3wOntt3z82QG80344ixukKX2Q9HKkPZffZwRQv538tsZSKlk1pfJCEuvgJzVlsX4ivApLAc2XWLGO1gQ+hx7iV9IhVkB/UXGbZDLohSqxGS2FVLRZmy2acTrReByFLpqUlg1cPHwUti1lf1OuBKRhki2NUtR8OVfExOxJGdUsdSH9rhoTnne9UlfxIjkPP5MixtF3Jq6E1MmFgT3HGNAqHqJqXKmp59u2k5UfKwq3ZijZMb+wzOj5SFG+cvSrp3759vJOyhXiZIdyHwrbVHcsxmGzEgppzBS+zEI7wubwY9/hGeqDxYQHkbkwwEaY8VwRx5VFH1wJYT5ePhJdg5dG0HQzKXJpAJyjPVpxDnwrG1nTak0MDThh2v2Eg6BUiEAq8tUS+pIC3QbizaOsViwSbqP31dOiHiscnCCF3e8kXQDxIyjEgE92KNt6sjR2/Rhf0G3WNxlrDiqG6uCQNJxqmnC18CMX1/EWz1fA8iJaQTGKtdwSFILnWBOGyuWFhVO7vdnZPIL1OiLsuj12ib2/pOBBQMmyuu5gLCeEiL75mn8ORLINC34Zpd+GuuCy2YsVEDTwYTWzAhsL4dYB5K8Yff4P1Qfpj/rp/BdKxoNt1m++x+QE5UQNcaMnTi0mGjEZJQ44s3EuIzPYBYhL9O7ORGCKUqmFK7wiB7xCD+1MXWltZHaxIhikZ4a70bLugFb/QcQLKxLsflGyfWMmylMDoQp2NGGoOcpJ5A=
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)(376014)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?EUUqLP0RU25jXdaNrkvjf9trJ0/kaKLDVLfmKoYVzf7KF9AveFIkrrEQPHED?=
 =?us-ascii?Q?n1n9CwpKSff9luN3bR5K5RDBBtoy+G1LZ8MSXrc54jCEt6xbydfufCqsSuuO?=
 =?us-ascii?Q?Xf9WW5/5qY16fp1yotZs2q5wzcxCnkyOfxmh1pJSx+lSeeCszfFkJi/vecwu?=
 =?us-ascii?Q?WwLNTXmg053EkVnK5FyfV5rP7YXm1rGPGCmBJzMOlrBGSrU7+L0EXPT4ewsS?=
 =?us-ascii?Q?J1Uuh5uHIttorKgYlNgQJHIv8bhVdS2n07uzhaA5XQYMwpnTFYyGeoWQBTFg?=
 =?us-ascii?Q?VjI7YP/zo8Hz8oObF4tJKGConAiTUSIb1V0O3MIfk6YX5NsgdAKWE+JzHnym?=
 =?us-ascii?Q?xeeaxU0Ec4tVB+jVQApM0zLwGKfCwlV3JUwyaYbbkgLBlvMKrAq5qQidZ021?=
 =?us-ascii?Q?Ev/OXjuRBppwPGSOTsEWVOtQYZB9mbZf4Wk5t2kls7PQpdEeBQ1uPwqUbMVJ?=
 =?us-ascii?Q?HwOJ6nDe3CbZ2wBDxvfpv4+/7/7ZrkhiN09Theccby9/qH5XggWS9H2wBIob?=
 =?us-ascii?Q?zJHsdcsIcdnlPTq2tLSDwEjYAz/lFlMpo8VVQ8XeTfdZcfGQDmt8JTLw3uq4?=
 =?us-ascii?Q?gN9+r0S5nM7SdZbtJ6IjU98UkTWFNrhybwo6tIfVTlxE7oZUwa5c8BP9dBly?=
 =?us-ascii?Q?t80/zGJPKO8E/fQ6gTJ9cdZi3hrpDR/fEIqYmclAW6gufZdxipCDyPuR+ulw?=
 =?us-ascii?Q?ZuIlib1TpwGBXrux2khgih+3iX2vPDeDD2bB6o97SLXFJ6LvZUJk2n9fHMhX?=
 =?us-ascii?Q?N0WUQKTPB/hSdOrYFhdHQvZhj4jE8oyK5eQkOrvV02FQH82dTKgz4RrIcRwH?=
 =?us-ascii?Q?118wPZaWuf+a86aHtLFYEqyztMUM8pPth6WoM/jI7tQRURrii9djvlfORBPV?=
 =?us-ascii?Q?p8sQy7ThKXabcKdwiaiNkgRk0tK6qelxNenX79Yw2KhsdLJ9Uz5OA/2Ay4EB?=
 =?us-ascii?Q?O7aXttNKF7JP2QrEkm5ccM6uMIzh11ji1glm+mAiXkv7c6MvZbAqwK9KXdix?=
 =?us-ascii?Q?gTqpLUcveVgLsOf0B1r2O00N6JVvGDIzWu3tdiRc1bCzAyNxjXj3u3XTH7s0?=
 =?us-ascii?Q?f9dffUX4uPNELSspLAJ7ejVdnkXf/aQLHyg6nx5IS/xyXmzGdj4YBY5Yw78J?=
 =?us-ascii?Q?X5rWBdWT8LNnR/LAjHKcgHvD/TuGA9FDqpn6mQUH2AfSIBFjlNCwPjzr8Mt1?=
 =?us-ascii?Q?nCMlKIWTrqXtoSymCBaTnkWiTLaSi1tEHQEvQLJ3fpbvyGn2i1FwgYLPA9Ky?=
 =?us-ascii?Q?o6k5oWBRD9uWRxzBz1zSNZv9kEQ9mzdtk1B308w8gkmERqmuJR4sqolS3t2g?=
 =?us-ascii?Q?/4lfoAm+hXwUI5Fbjng2rxqQJt7TQMIF05fOa4T7ZgT5fRt70UxVW/QteT1y?=
 =?us-ascii?Q?pF8izdM/mfBNwCPmwzFah4K4DEIDD00rxFRvZLI80rQ2EStuYaijVTlyVRPr?=
 =?us-ascii?Q?FWOR7xjatddEEWUDSjoYyQvBtC5MBRsS+tvdSzt+ERM94AJgtEN212X7wEgd?=
 =?us-ascii?Q?LLifs4E911C+NAcM9owZaMoVdzJTIMT6KzxbeBDuAG8YqX3l/H4EBzbSAzXC?=
 =?us-ascii?Q?+vuNuhhAdkB6AKs9dc/cmWwqXJEACZiLnDRYyV4FgiI3TzItenSuYEk+LqsO?=
 =?us-ascii?Q?mHv9gyeSVCLf1WtPAhenvEPd5cZOYIjJ1ahmC/gN2zw20RmNXnrv8FsXi967?=
 =?us-ascii?Q?M+XJZWXReP4af1rRBfJcUC9fJpedbWOzkN6tsc+9lX4FMBoIWY5XRXFcGB3g?=
 =?us-ascii?Q?6ZWjPAVblg=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bca96d51-6321-4ce1-6cd2-08de80780ef1
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:43:46.9387
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: XKgmWZnB5gShpFhVefocRZg2VGBJR57qN4MteWsYvW4xHV0rNS+lLVU/PCjC4RM7OhVOKCV63b67VkpaftYu1Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6870

struct cpuinfo_x86
  .x86        => .family
  .x86_vendor => .vendor
  .x86_model  => .model
  .x86_mask   => .stepping

No functional change.

This work is part of making Xen safe for Intel family 18/19.

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
Changes in v2:
- Undo the family != 5 check in mcheck_init()
- Change model range check in mce_firstbank()
---
 xen/arch/x86/cpu/mcheck/amd_nonfatal.c |  2 +-
 xen/arch/x86/cpu/mcheck/mcaction.c     |  2 +-
 xen/arch/x86/cpu/mcheck/mce.c          | 30 +++++++++++++-------------
 xen/arch/x86/cpu/mcheck/mce.h          |  2 +-
 xen/arch/x86/cpu/mcheck/mce_amd.c      | 16 +++++++-------
 xen/arch/x86/cpu/mcheck/mce_intel.c    |  5 +----
 xen/arch/x86/cpu/mcheck/non-fatal.c    |  2 +-
 xen/arch/x86/cpu/mcheck/vmce.c         |  8 +++----
 8 files changed, 32 insertions(+), 35 deletions(-)

diff --git a/xen/arch/x86/cpu/mcheck/amd_nonfatal.c b/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
index 7d48c9ab5f..fb52639e13 100644
--- a/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
+++ b/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
@@ -191,7 +191,7 @@ static void cf_check mce_amd_work_fn(void *data)
 
 void __init amd_nonfatal_mcheck_init(struct cpuinfo_x86 *c)
 {
-	if (!(c->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)))
+	if (!(c->vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)))
 		return;
 
 	/* Assume we are on K8 or newer AMD or Hygon CPU here */
diff --git a/xen/arch/x86/cpu/mcheck/mcaction.c b/xen/arch/x86/cpu/mcheck/mcaction.c
index bf7a0de965..236424569a 100644
--- a/xen/arch/x86/cpu/mcheck/mcaction.c
+++ b/xen/arch/x86/cpu/mcheck/mcaction.c
@@ -101,7 +101,7 @@ mc_memerr_dhandler(struct mca_binfo *binfo,
                       * not always precise. In that case, fallback to broadcast.
                       */
                      global->mc_domid != bank->mc_domid ||
-                     (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
+                     (boot_cpu_data.vendor == X86_VENDOR_INTEL &&
                       (!(global->mc_gstatus & MCG_STATUS_LMCE) ||
                        !(d->vcpu[mc_vcpuid]->arch.vmce.mcg_ext_ctl &
                          MCG_EXT_CTL_LMCE_EN))) )
diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
index 9a91807cfb..8a41116aa4 100644
--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -23,6 +23,7 @@
 #include <asm/apic.h>
 #include <asm/msr.h>
 #include <asm/p2m.h>
+#include <asm/intel-family.h>
 
 #include "mce.h"
 #include "barrier.h"
@@ -334,7 +335,7 @@ mcheck_mca_logout(enum mca_source who, struct mca_banks *bankmask,
                 mca_init_global(mc_flags, mig);
                 /* A hook here to get global extended msrs */
                 if ( IS_ENABLED(CONFIG_INTEL) &&
-                     boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+                     boot_cpu_data.vendor == X86_VENDOR_INTEL )
                     intel_get_extended_msrs(mig, mci);
             }
         }
@@ -564,8 +565,7 @@ bool mce_available(const struct cpuinfo_x86 *c)
  */
 unsigned int mce_firstbank(struct cpuinfo_x86 *c)
 {
-    return c->x86 == 6 &&
-           c->x86_vendor == X86_VENDOR_INTEL && c->x86_model < 0x1a;
+    return c->vendor == X86_VENDOR_INTEL && c->vfm < INTEL_NEHALEM_EP;
 }
 
 static int show_mca_info(int inited, struct cpuinfo_x86 *c)
@@ -596,7 +596,7 @@ static int show_mca_info(int inited, struct cpuinfo_x86 *c)
         case mcheck_amd_famXX:
         case mcheck_hygon:
             printk("%s%s Fam%xh machine check reporting enabled\n",
-                   prefix, type_str[inited], c->x86);
+                   prefix, type_str[inited], c->family);
             break;
 
         case mcheck_none:
@@ -766,7 +766,7 @@ void mcheck_init(struct cpuinfo_x86 *c, bool bsp)
     else if ( cpu_bank_alloc(cpu) )
         panic("Insufficient memory for MCE bank allocations\n");
 
-    switch ( c->x86_vendor )
+    switch ( c->vendor )
     {
 #ifdef CONFIG_AMD
     case X86_VENDOR_AMD:
@@ -777,7 +777,7 @@ void mcheck_init(struct cpuinfo_x86 *c, bool bsp)
 
 #ifdef CONFIG_INTEL
     case X86_VENDOR_INTEL:
-        switch ( c->x86 )
+        switch ( c->family )
         {
         case 6:
         case 15:
@@ -882,7 +882,7 @@ static void x86_mcinfo_apei_save(
     memset(&m, 0, sizeof(struct mce));
 
     m.cpu = mc_global->mc_coreid;
-    m.cpuvendor = xen2linux_vendor(boot_cpu_data.x86_vendor);
+    m.cpuvendor = xen2linux_vendor(boot_cpu_data.vendor);
     m.cpuid = cpuid_eax(1);
     m.socketid = mc_global->mc_socketid;
     m.apicid = mc_global->mc_apicid;
@@ -983,10 +983,10 @@ static void cf_check __maybe_unused do_mc_get_cpu_info(void *v)
                         &xcp->mc_apicid, &xcp->mc_ncores,
                         &xcp->mc_ncores_active, &xcp->mc_nthreads);
     xcp->mc_cpuid_level = c->cpuid_level;
-    xcp->mc_family = c->x86;
-    xcp->mc_vendor = xen2linux_vendor(c->x86_vendor);
-    xcp->mc_model = c->x86_model;
-    xcp->mc_step = c->x86_mask;
+    xcp->mc_family = c->family;
+    xcp->mc_vendor = xen2linux_vendor(c->vendor);
+    xcp->mc_model = c->model;
+    xcp->mc_step = c->stepping;
     xcp->mc_cache_size = c->x86_cache_size;
     xcp->mc_cache_alignment = c->x86_cache_alignment;
     memcpy(xcp->mc_vendorid, c->x86_vendor_id, sizeof xcp->mc_vendorid);
@@ -1142,7 +1142,7 @@ static bool __maybe_unused x86_mc_msrinject_verify(struct xen_mc_msrinject *mci)
 
         if ( IS_MCA_BANKREG(reg, mci->mcinj_cpunr) )
         {
-            if ( c->x86_vendor == X86_VENDOR_AMD )
+            if ( c->vendor == X86_VENDOR_AMD )
             {
                 /*
                  * On AMD we can set MCi_STATUS_WREN in the
@@ -1177,15 +1177,15 @@ static bool __maybe_unused x86_mc_msrinject_verify(struct xen_mc_msrinject *mci)
             case MSR_F10_MC4_MISC1:
             case MSR_F10_MC4_MISC2:
             case MSR_F10_MC4_MISC3:
-                if ( c->x86_vendor != X86_VENDOR_AMD )
+                if ( c->vendor != X86_VENDOR_AMD )
                     reason = "only supported on AMD";
-                else if ( c->x86 < 0x10 )
+                else if ( c->family < 0x10 )
                     reason = "only supported on AMD Fam10h+";
                 break;
 
             /* MSRs that the HV will take care of */
             case MSR_K8_HWCR:
-                if ( c->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
+                if ( c->vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
                     reason = "HV will operate HWCR";
                 else
                     reason = "only supported on AMD or Hygon";
diff --git a/xen/arch/x86/cpu/mcheck/mce.h b/xen/arch/x86/cpu/mcheck/mce.h
index 920b075355..3b61b12487 100644
--- a/xen/arch/x86/cpu/mcheck/mce.h
+++ b/xen/arch/x86/cpu/mcheck/mce.h
@@ -137,7 +137,7 @@ void x86_mcinfo_dump(struct mc_info *mi);
 
 static inline int mce_vendor_bank_msr(const struct vcpu *v, uint32_t msr)
 {
-    switch (boot_cpu_data.x86_vendor) {
+    switch (boot_cpu_data.vendor) {
     case X86_VENDOR_INTEL:
         if (msr >= MSR_IA32_MC0_CTL2 &&
             msr < MSR_IA32_MCx_CTL2(v->arch.vmce.mcg_cap & MCG_CAP_COUNT) )
diff --git a/xen/arch/x86/cpu/mcheck/mce_amd.c b/xen/arch/x86/cpu/mcheck/mce_amd.c
index 25c29eb3d2..2d17832d9c 100644
--- a/xen/arch/x86/cpu/mcheck/mce_amd.c
+++ b/xen/arch/x86/cpu/mcheck/mce_amd.c
@@ -160,17 +160,17 @@ mcequirk_lookup_amd_quirkdata(const struct cpuinfo_x86 *c)
 {
     unsigned int i;
 
-    BUG_ON(c->x86_vendor != X86_VENDOR_AMD);
+    BUG_ON(c->vendor != X86_VENDOR_AMD);
 
     for ( i = 0; i < ARRAY_SIZE(mce_amd_quirks); i++ )
     {
-        if ( c->x86 != mce_amd_quirks[i].cpu_family )
+        if ( c->family != mce_amd_quirks[i].cpu_family )
             continue;
         if ( (mce_amd_quirks[i].cpu_model != ANY) &&
-             (mce_amd_quirks[i].cpu_model != c->x86_model) )
+             (mce_amd_quirks[i].cpu_model != c->model) )
             continue;
         if ( (mce_amd_quirks[i].cpu_stepping != ANY) &&
-             (mce_amd_quirks[i].cpu_stepping != c->x86_mask) )
+             (mce_amd_quirks[i].cpu_stepping != c->stepping) )
                 continue;
         return mce_amd_quirks[i].quirk;
     }
@@ -291,13 +291,13 @@ amd_mcheck_init(const struct cpuinfo_x86 *c, bool bsp)
     uint32_t i;
     enum mcequirk_amd_flags quirkflag = 0;
 
-    if ( c->x86_vendor != X86_VENDOR_HYGON )
+    if ( c->vendor != X86_VENDOR_HYGON )
         quirkflag = mcequirk_lookup_amd_quirkdata(c);
 
     /* Assume that machine check support is available.
      * The minimum provided support is at least the K8. */
     if ( bsp )
-        mce_handler_init(c->x86 == 0xf ? &k8_callbacks : &k10_callbacks);
+        mce_handler_init(c->family == 0xf ? &k8_callbacks : &k10_callbacks);
 
     for ( i = 0; i < this_cpu(nr_mce_banks); i++ )
     {
@@ -311,7 +311,7 @@ amd_mcheck_init(const struct cpuinfo_x86 *c, bool bsp)
         }
     }
 
-    if ( c->x86 == 0xf )
+    if ( c->family == 0xf )
         return mcheck_amd_k8;
 
     if ( quirkflag == MCEQUIRK_F10_GART )
@@ -337,6 +337,6 @@ amd_mcheck_init(const struct cpuinfo_x86 *c, bool bsp)
             ppin_msr = MSR_AMD_PPIN;
     }
 
-    return c->x86_vendor == X86_VENDOR_HYGON ?
+    return c->vendor == X86_VENDOR_HYGON ?
             mcheck_hygon : mcheck_amd_famXX;
 }
diff --git a/xen/arch/x86/cpu/mcheck/mce_intel.c b/xen/arch/x86/cpu/mcheck/mce_intel.c
index 839a0e5ba9..4d6b7d588e 100644
--- a/xen/arch/x86/cpu/mcheck/mce_intel.c
+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
@@ -711,10 +711,7 @@ static bool mce_is_broadcast(struct cpuinfo_x86 *c)
      * DisplayFamily_DisplayModel encoding of 06H_EH and above,
      * a MCA signal is broadcast to all logical processors in the system
      */
-    if ( c->x86_vendor == X86_VENDOR_INTEL && c->x86 == 6 &&
-         c->x86_model >= 0xe )
-        return true;
-    return false;
+    return c->vendor == X86_VENDOR_INTEL && c->vfm >= INTEL_CORE_YONAH;
 }
 
 static bool intel_enable_lmce(void)
diff --git a/xen/arch/x86/cpu/mcheck/non-fatal.c b/xen/arch/x86/cpu/mcheck/non-fatal.c
index a9ee9bb94f..4e7c64abef 100644
--- a/xen/arch/x86/cpu/mcheck/non-fatal.c
+++ b/xen/arch/x86/cpu/mcheck/non-fatal.c
@@ -23,7 +23,7 @@ static int __init cf_check init_nonfatal_mce_checker(void)
 	/*
 	 * Check for non-fatal errors every MCE_RATE s
 	 */
-	switch (c->x86_vendor) {
+	switch (c->vendor) {
 #ifdef CONFIG_AMD
 	case X86_VENDOR_AMD:
 	case X86_VENDOR_HYGON:
diff --git a/xen/arch/x86/cpu/mcheck/vmce.c b/xen/arch/x86/cpu/mcheck/vmce.c
index 1a7e92506a..84776aeec8 100644
--- a/xen/arch/x86/cpu/mcheck/vmce.c
+++ b/xen/arch/x86/cpu/mcheck/vmce.c
@@ -45,7 +45,7 @@ void vmce_init_vcpu(struct vcpu *v)
     int i;
 
     /* global MCA MSRs init */
-    if ( boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+    if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
         v->arch.vmce.mcg_cap = INTEL_GUEST_MCG_CAP;
     else
         v->arch.vmce.mcg_cap = AMD_GUEST_MCG_CAP;
@@ -63,7 +63,7 @@ int vmce_restore_vcpu(struct vcpu *v, const struct hvm_vmce_vcpu *ctxt)
 {
     unsigned long guest_mcg_cap;
 
-    if ( boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+    if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
         guest_mcg_cap = INTEL_GUEST_MCG_CAP | MCG_LMCE_P;
     else
         guest_mcg_cap = AMD_GUEST_MCG_CAP;
@@ -136,7 +136,7 @@ static int bank_mce_rdmsr(const struct vcpu *v, uint32_t msr, uint64_t *val)
         break;
 
     default:
-        switch ( boot_cpu_data.x86_vendor )
+        switch ( boot_cpu_data.vendor )
         {
 #ifdef CONFIG_INTEL
         case X86_VENDOR_CENTAUR:
@@ -273,7 +273,7 @@ static int bank_mce_wrmsr(struct vcpu *v, uint32_t msr, uint64_t val)
         break;
 
     default:
-        switch ( boot_cpu_data.x86_vendor )
+        switch ( boot_cpu_data.vendor )
         {
 #ifdef CONFIG_INTEL
         case X86_VENDOR_INTEL:
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 20:44:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 20:44:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252991.1549397 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0mso-0006CO-Cy; Thu, 12 Mar 2026 20:43:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252991.1549397; Thu, 12 Mar 2026 20: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 1w0mso-0006CH-97; Thu, 12 Mar 2026 20:43:50 +0000
Received: by outflank-mailman (input) for mailman id 1252991;
 Thu, 12 Mar 2026 20:43: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=QBWs=BM=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1w0msm-0006Bj-Tj
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 20:43:49 +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 2ae14ef8-1e54-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 21:43:47 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by PH0PR03MB6870.namprd03.prod.outlook.com (2603:10b6:510:167::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.12; Thu, 12 Mar
 2026 20:43:41 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9700.010; Thu, 12 Mar 2026
 20:43: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: 2ae14ef8-1e54-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eGf/mwDyAxINgSyzaYTGJnGnmixWrLchijbMrgcW/B3ICoAbfxC69f8l400uPpaDqKw1ZxxpYtJ2uD1ItxE3ETX9f11pzHLPqiF2R0zuSe2filfMWX4hZsZeOqkNuzTP1ZAXUm++K4MzutBnLPzHgB8BwJ9Ctk3pKuy7i4IRgAPfd3SiJtMFZZSBW1orsNssI5XU/L8CvsCz5JFAvWbQWMGRgOLqFa6XrqanqcG16AQ63MTgSVpD5V9wRuXSP1XV45zW3amqgO2uhCwxVYhbrA8KP9knnF0AXkJbnWGASC3QBBAkMoS7nnSLQQeoox6VcZ/zW7S2yJsqsmH5hzoBsw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vvFBMjf1ft6LJLJ/hREPupitDQ4FviVQPCRmbRd33PU=;
 b=cpYrdmJYsg6Q50MljJnKapeMimkpjbOh6AMjWdjnFZIOqF+B9Q9/KpUuwfYfLDmYmKwqL2iT6utqjRFGlv/HFUOsPi4NLhLXrll3qgx4ryB09AYKnkVu6vObdp+I8cD4U5eLZIZGh7qJJJ4h1uF7R1ZgoEYve04mIcvZ1N7e9aMPLtnkqcU0Wb0qnRckuWpcSOQv7VKGC9yjnOWUKGUeoTnlokz/a0v24GOFkqoRoY9M0gSyxlZGptDB0Zbzgg9NuWD4GChBoaw5rnfpwTuxIDkZNfXxd0rIaRuA2LHs+n7HyoIO15D0DFTKO91EJSDq756fccgnYHgW+FCIm8/zxA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vvFBMjf1ft6LJLJ/hREPupitDQ4FviVQPCRmbRd33PU=;
 b=AgSZn4GI0xS5mdvKi/7B4ePqWpAhcakKqSM4rNSDgl+PS3ya5UX+QPP3y5TUfP6nQqZ+LKUCH9IkWPc0oMpsruw/uMPcILxK0m/Wyi7rWqwfhR/djsHmS7sJGtesfFDmn0SG/RxTiAekRv4E6kV7J757uRb3GrhnvPhD7pvhuvs=
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 v v2 0/7] Remove x86 prefixed names from cpuinfo
Date: Thu, 12 Mar 2026 20:43:32 +0000
Message-ID: <20260312204339.740403-1-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0553.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:33b::7) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|PH0PR03MB6870:EE_
X-MS-Office365-Filtering-Correlation-Id: 620c0013-b602-47d2-df9c-08de80780b99
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	uPp6Q+1NxoTpsjB3cYRrcs21u3ZgHSk8gETDqAl6t82p+H80RX8OqmIKiQcOxA0ygwRYS/YcREp92k9ZxVsMXEO+bkNx5JrpNY4HUsVfiXFK6oxHxFMVim1M0ZGXWwcXzRmkrEUGoBRqIi9ZNM2o1x7hc1cGh32/qVAWkPNtsmHjHqlnwB484NbgzQu4sGT2kdC2UQRjwhicUB1C2P1sTLixWno7fayYGLu3KpGSrZ0Bp4YG+AekWa5G23wiPooF1lFfkPDUzsvJP4TRAWUGXPSG8NJDLkX2SNvqV9OlHVQ0r1JRQxKonsSV8r5EkjF0sEIkPTGNqQKYJ1j+zOGv4C8EPyShR/vzdhyfghJSDkvK2SyaNf+GldeL/OBxPffYzf40Mw2FQ4rtaGfJV8zsP2+zDs3DGUPm6DAaGm3U3WkRRWm6kQ0/df3x5CyQdhGL8TVZX8jDanlOCVWOiETKutdWx+c10QBrIh8nBjHBpWA2iNSMaDLygb2ZsJPVaxSOvClzQtqhqduOSMCtRr+57Yx6bqQA6iVpfWKLt600CAC2oS0hbgHyKInbrNIQAKs9vVPfP2Z5g5tVZbhSGtVgeV6Ipy6ptSnnHCe2hS90gETk3LSuAsouRfK6x2JOpnNmTV8sOa6kPnJk8JT56ULRZeTqF6HTjai2xdKhMlnUQvz2/u3WxXJPLEj1HcKeVz8ZpbfOhf/A9fg/iXME5w55tNrKnBJvpcQ86zxBUbOv7sg=
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)(376014)(1800799024)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?5ZQDxZzmp0UBOnfvRs1+TU/75W0Matmm8gt+HjGKPAkt5s1BBA5mwhDT0wp0?=
 =?us-ascii?Q?EuC+Y3CFnK/FhwDn8T5xhvEV3jshxut0B6trAxeemcDsxw4wPjjXGztUf8Kg?=
 =?us-ascii?Q?Hvm9QieOo2zGYxba3vOouQUzAmifYOPpCaY5IX2S47Yp8bB8vop7LtbQhzJ2?=
 =?us-ascii?Q?XYvHnMDSqRGcRD/bQjOe/gzz4kxdSIP8DPeYTbXo0gsSpd+FxL1v4fp9X5fc?=
 =?us-ascii?Q?WE4r+2VQSL4NesVilL4U8w/smog47np25fwn5EYe2fzCJr0RyhuV0gxJzXwL?=
 =?us-ascii?Q?/pyX8ma8h0lKQfHRE/6kKlZiYplK6BneYIYkdRshZpAW5MJk/7gENo/nzH1O?=
 =?us-ascii?Q?2un4NpIYGayWSeyG3WSVr4/jy8AELBXiSl011OkI7wNDmNmlXe2TwbyEad2r?=
 =?us-ascii?Q?gFSbGD5+TYIbuXAvWP4cwe28ZducrdK30N477oejv95WT4iyM0djMcBB0ANn?=
 =?us-ascii?Q?v+JZZl63JoETQA/Ytla84IIJxIiZDYVmvmX3A0mijkLh2XZ30GqqvzSUll2b?=
 =?us-ascii?Q?gDaxnxblIhhabd3/hrY3WgKaIp7WbOaU/VLBSQ7EACooduqILszhngnD0Uji?=
 =?us-ascii?Q?9bsecIgmAqojQcX1Iz6rwIBzvxTF6Rhhh9QdeMgStDmrga4jzCyEKbPh4yzL?=
 =?us-ascii?Q?0hDLT8l4uM1wl85iV9of5bgSTdWFOTDEL8Q3K6okUcbBcoi/CDbx6XgsVTun?=
 =?us-ascii?Q?m5HqHybXpGVFc9Hgh90ZLZ5w+SBIug6Gu5shgInTF4woVSMfspy8Dy8aa6lG?=
 =?us-ascii?Q?D6nLI4aq+fMvx/l30lXgQc4g+hLy0xaeECOpDH5yyBQyUSqu5xb4V9RRlFU/?=
 =?us-ascii?Q?mPyFXJTP02UR18pUUxbzPNLO1WrNsyHy9Mhaupc0d3H7ITFPzIDktCek6oYC?=
 =?us-ascii?Q?F05x6Wr1HktRbz1baoH3S8uvdb/XCkppTl5bzjs9mWjGuaFvpqRRPSkjVoDB?=
 =?us-ascii?Q?D/gMLlYGFbdIqkLqLv+9CQjjf0T60dG3rgTOGic1DdWm6NBTEgLHxtmjs9g/?=
 =?us-ascii?Q?+Op8I/awkKJVJlcUGZSP82vR7sOzMYGrcE0zc747vm95wQKJQ2T0YGfr9JP2?=
 =?us-ascii?Q?g8ES/Co8YjyCTqFveJIgu/dy2c1/iC/pYRII11EKndlvNaZ8cjv0ITJ6Yb45?=
 =?us-ascii?Q?l5uxI9d1aMjdBYnLD2j16jR5ElVjnABFZnqmgkUKhXqCuC7S2Vfn+7LyLTAJ?=
 =?us-ascii?Q?ep9nyar6g4bvlUnTZphWFmpKsd9EiYD5wuF3onbowuSPgoAOeDLUe/hPc+xs?=
 =?us-ascii?Q?qo9Co48yqCIkVZwY9HpPfNtdwJF7Bg4biY4myfoizlHIWPeXIa7W4LBwBTtC?=
 =?us-ascii?Q?Wpomd5c/5T6XiKht21agSkocEJtdQhmDD2OwEn0cTx3WgE95WFCn496aSyOX?=
 =?us-ascii?Q?FKhY4DwJsBLRbt05Rpybxb2uhRS9rdOvKOgQbYcqP/gajrHx/w2OnYOqEB0v?=
 =?us-ascii?Q?bSSsJ5tZnaz47hJe1JER1IWUhG4Xu9Y2fQEZVR19Kvib9TqpAc4Z45fSJplu?=
 =?us-ascii?Q?B5W4KWvn2WewSdyG+CH1AgoWb+s74p6LlpZHh2r/YgJbgZGo6tX4lLcRG3Rn?=
 =?us-ascii?Q?dulbpeoD8XGBnx8fw4A8U14lelW79NYxb+4MWjB3PGAIgPZoVeXjBr2Yjo+x?=
 =?us-ascii?Q?q4mGcpUJXLvhaPtCN13cSdfhDjAeuD+bl7UJGmYSRHNqIw4aDau9vBbTWQDK?=
 =?us-ascii?Q?r0YAiT7m0mmtEAgc2cVAUzEv6xzmK8BeDH77DC65PZ2zbDLQqkowPXmhb/cC?=
 =?us-ascii?Q?PkBMaIuxvg=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 620c0013-b602-47d2-df9c-08de80780b99
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:43:41.3345
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Acj/Nj+WNFDBio4jBi8HFQgFEZuwrLQHYcTmVtFFi+Y7rs5Q1xK34UwuWK/6zw5L9AKgdE+OCGVtbKTmtS+E2A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6870

Remove x86 prefixed names from cpuinfo and all the places it is used.
This work is part of making Xen safe for Intel family 18/19.

Kevin Lampis (7):
  x86: Remove x86 prefixed names from mcheck code
  x86: Remove x86 prefixed names from acpi code
  x86: Remove Intel 0x65, 0x6e, 0x5d from VMX code
  x86: Remove x86 prefixed names from hvm code
  x86: Remove x86 prefixed names from x86/cpu/ files
  x86: Remove x86 prefixed names from cpuinfo
  x86: relax some CPU checks for non-64 bit CPUs

 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/acpi/cpufreq/powernow.c   |   4 +-
 xen/arch/x86/cpu/centaur.c             |   4 +-
 xen/arch/x86/cpu/hygon.c               |   4 +-
 xen/arch/x86/cpu/intel_cacheinfo.c     |   6 +-
 xen/arch/x86/cpu/mcheck/amd_nonfatal.c |   2 +-
 xen/arch/x86/cpu/mcheck/mcaction.c     |   2 +-
 xen/arch/x86/cpu/mcheck/mce.c          |  36 ++--
 xen/arch/x86/cpu/mcheck/mce.h          |   2 +-
 xen/arch/x86/cpu/mcheck/mce_amd.c      |  16 +-
 xen/arch/x86/cpu/mcheck/mce_intel.c    |   5 +-
 xen/arch/x86/cpu/mcheck/non-fatal.c    |   2 +-
 xen/arch/x86/cpu/mcheck/vmce.c         |   8 +-
 xen/arch/x86/cpu/mtrr/generic.c        |   5 +-
 xen/arch/x86/cpu/mwait-idle.c          |   4 +-
 xen/arch/x86/cpu/vpmu.c                |   4 +-
 xen/arch/x86/cpu/vpmu_amd.c            |   6 +-
 xen/arch/x86/cpu/vpmu_intel.c          |   4 +-
 xen/arch/x86/hvm/hvm.c                 |   2 +-
 xen/arch/x86/hvm/svm/svm.c             |   6 +-
 xen/arch/x86/hvm/vmx/vmcs.c            |   4 +-
 xen/arch/x86/hvm/vmx/vmx.c             | 280 ++++++++++++-------------
 xen/arch/x86/include/asm/cpufeature.h  |  21 +-
 25 files changed, 214 insertions(+), 238 deletions(-)

-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 20:44:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 20:44:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252993.1549415 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0msv-0006fN-W7; Thu, 12 Mar 2026 20:43:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252993.1549415; Thu, 12 Mar 2026 20: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 1w0msv-0006fG-RS; Thu, 12 Mar 2026 20:43:57 +0000
Received: by outflank-mailman (input) for mailman id 1252993;
 Thu, 12 Mar 2026 20:43:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QBWs=BM=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1w0msu-0006Bj-K4
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 20:43: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 2fa2e1f9-1e54-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 21:43:56 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by PH0PR03MB6870.namprd03.prod.outlook.com (2603:10b6:510:167::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.12; Thu, 12 Mar
 2026 20:43:53 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9700.010; Thu, 12 Mar 2026
 20:43: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: 2fa2e1f9-1e54-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YSuvM7DAq43oqqxbqB2rALqSiZg9l3VWvp9XU5dFqGGh+eP+Dynia4l75Dno/tJVcTka43dg21cDzql9Ee6yGwyoEIip43HbsJJOntcZvHRKJdhJJXduWu3K2FrWYN/39eoGSCzjfx51S5Xjxh1dRhGg6dwffcIM4IunnXavwLScpcF/792ZQRR6OcnaRuP1T7RUFIvra8XXk01jEwI2Hs5O5lSFLhZQoPog1RnnQanRvBB4bIc+X0evgPAEo914GsFXBZVWBOcvN4urW1L1RkIyBANieA8dBXqOEzW+eQOZoLAs7KI2fb2BxtwKKXqOvOdrXB+jsXLWmn6FRdAsiw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=S6RMyHcSBKFmR8hWUKR8tGOBt8z2Q01OO6dOkO90IPg=;
 b=UW7Ve0lKAOFQ2GuXbDLzUMtmUba+to0Un5E/BvF24uvmI2nanCdwCPdE4weKcWPzcea5PVlO9Wrrd1wTFRoEFn4oyXm1uCdJho3jlPBD1sowQDmQCq2W5OVMeyoFI8HA4RreJx8m6iItyI3O9joEcN2RTf4TUfeUlVJinjhtaEfBDjtP/8aQikTwzxg4YSgixc2wA1YOoJmQ6N0zkj++jpXcBI9VcHUPkD8vzn00d7Bp4ck6kwww1/OYQe5jnSmv30N6y/UVQVr+VCremqqv3gbSbJeg/EZ8ntLFnDgdfxica975m6+NlSGxgNMGpy/jvhRVEzwj1yOvIOgINSc+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=S6RMyHcSBKFmR8hWUKR8tGOBt8z2Q01OO6dOkO90IPg=;
 b=O7XNRQQYjscMuStnx2t4qbXwk75Lr6dPrVLg47b8iWa8TR2991E6lornMOvPvWSyOzSgR/QzYKtzx/1Rx56H905xTzavOiLYd6EA4Ih2Av9MqIV7H2mJlZ22K1ROlIoU9B3u0rCXBuPRkm5qe9hEEYKPin82zr6D5/KKSsM7Jjk=
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 v v2 2/7] x86: Remove x86 prefixed names from acpi code
Date: Thu, 12 Mar 2026 20:43:34 +0000
Message-ID: <20260312204339.740403-3-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20260312204339.740403-1-kevin.lampis@citrix.com>
References: <20260312204339.740403-1-kevin.lampis@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0207.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a5::14) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|PH0PR03MB6870:EE_
X-MS-Office365-Filtering-Correlation-Id: a3ade90e-379d-40f6-6575-08de8078128a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	MlIyfEXv/KQe9iGC6CuwFeIS3/ijjcofUyXn1rm+4NQusILF1/y0u66vjWxKqSlJPRHU7Yio8mpXiLXYSWmmrzSbOSNO584kN9upG1K8myyoXQlf+oMhYXjGoXekBhLfln/jPr5deTpY1j+6SVCkuANBHc24QWe+Kxq3Upt68RnCT/EfCYtnmq/j7RK6G22CiPqOjNbu9hk+Cuetkvf10o+OphDozUXZeVnuSORo8e2iXKbWWJjymMT91qPHQIIrLxTDnpy0MTSX6YNl2psg/C/KSrJ0rbr1Is95nWGIn6jxqWDhpwIUUBi7eL3o92xWLwvF+/XX/5VrNOGSDg5cq+amgRLmoa7c13zfiNqmEwmJOVWHu/RJwHeVwnEisppC3ycm7Y+hZEDhlO3FOey+P9KV5LH7uljEg8kwOCHzWUYkJhyTTrUdzotQ54NE27+/NFChKVjYhW8z0Tbs1TizG7DOdIbncnOQPi8fpHSfp1rSZGKzyvplSjwZxAXGXXyPcA189gNv3OdjEKscVI7Ui7KgsMzY95robnlzBkFWWizgy8g0lLBkcVVH6lVoMXKSdYh0eOXrD6CGSXqn3lb1z62qPfkDgpbSg8y7kfKb0dx5FS7A+9IdI6Q5W2nCgE4UE3HI14sYND/wtzlVvroeiyq+GwOCG1Ix7qZ/8hOxHiWshd23jeEXivQmjs6ymAOZXpuw2ia6i0FNw1HW/CVwfAixSmSQ+06FW0mCtVZk4A0=
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)(376014)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Y2qci0uMmsvtc0/sEipz+AMrvitCBLIIx9PrEhIeQenAskfFsvdh5IvPVM8L?=
 =?us-ascii?Q?+b8PFBtiGjD5dp61cDZJQFMs/+MaMFS+Zhd2PrERKjFg7bgHlS1MJRMtHv0D?=
 =?us-ascii?Q?1Umbig7ekZmIjH1Qdfa7ErDWxqIWZBxpRGHROIObR99p9a2byJ7uTDAd50wi?=
 =?us-ascii?Q?nIyeetqhl/UCZOR1Re+5kBHkA6BiNLYX69W1tZJcTgVs/oZycbXpD3Hg2+p1?=
 =?us-ascii?Q?aPpO+++aDoqU9uRzpxeSY5On9BXrP5agRglKraom8blU+lRu6nMMv1h85ZFo?=
 =?us-ascii?Q?6f8a7zs1PvomsZOI69kE39K5cczRPLE6QkZPSdZM1BnylB+qIfI4BllmD2X+?=
 =?us-ascii?Q?VaJuwfqUS3k6cqSV4BDwwLBcqxU1GvVSKq4T61/V6Ht+aePqfqgeKvvp7WLM?=
 =?us-ascii?Q?GKDyUAJI9nyRdTsmStRLYdBKe1XdN2QJ02x9ocR131FUI59wvnHsdd3wc530?=
 =?us-ascii?Q?kp9d9p0nKEtOGCij2/JfdgV3M9COuJAWthBaecBcL3SXc2vpSBjM3x/M8Mab?=
 =?us-ascii?Q?zir4LU6EP63YiYQ+iq7nq48wwjQvGBIViqymmE6ojyTDw86Ogk1XgZeUEV24?=
 =?us-ascii?Q?xDuyaw6MEs9KU1KCKA6IuGrwM0Um5j0fh5+Rz/N5SBVcxprqdtXeDe8KVbvh?=
 =?us-ascii?Q?GkvRUXF95jtfe7eEvnsSKmhQiWS3N6BlvXruGGKo/KnrDakRe+04nhCBPL1t?=
 =?us-ascii?Q?vvB00u+pis8wKSsiYfllEv9dhlpIPdiP1IUuPAk2UrHF2kdKMF/mFWyCnqUw?=
 =?us-ascii?Q?uPcDCo3ko87VxBqXMaLV4n7MPjTAi1ssVlBeK8hjDgJHWGcM3pXyZhSEyVtK?=
 =?us-ascii?Q?u5vvgcFrkdBnSeuyZUGtmDaZFzryZ5jclCIrB+a0g8wwgQ2bugwH8O9isPV5?=
 =?us-ascii?Q?rG/HtWuRIL+B/gyTvs2iG85hkFtnMardvl8Vs+zSEhko9O3LYCEWoLstPcvm?=
 =?us-ascii?Q?UW0sHlcl8ykOuVBiag59qKeL13k0sDRUgiH1acfF4yM9OHDFgKf/ZsVWMMX2?=
 =?us-ascii?Q?/MeE+04AyjmW6jiGNRYtSupg+hBKXOFIw4LsA7pbTo9ASXdrFZDWsxDZuZJk?=
 =?us-ascii?Q?K18RTfhxp94bh1qzYmNA0IJSzBxhQP5SCaswzRWcvI3HVykzj4rKzQJC4sF+?=
 =?us-ascii?Q?KzGFIdDxZv8Z7dB1xSukp73vaEnb+6/D88AJeZS1dCwvKmG5BYBcHJqi+vjB?=
 =?us-ascii?Q?dmFMNeWPzGjet90FBsZw47/J8unvxmNVvX+rCAB4VYrt5P6E/rddz3sHXr2B?=
 =?us-ascii?Q?oWI5c60lNSmK2EoxKwc1GH8z30gI2cgtX2/L8uyW+GqkJkVOMDGdHNCa/MT4?=
 =?us-ascii?Q?hgc1Z4T6mdqyBa+AyG695aAI2VnLB3KIjcRl9zpnH54g4Gpb2e5fyhMlulst?=
 =?us-ascii?Q?kcOo7sBGdunhX6LPCzp0YYaZo0P/6V74AQ3LorP/+qKmIn7zO/qH2pMu+pGt?=
 =?us-ascii?Q?JmSx0BGZPVyqFcitYqD1FJ16idAleWDEwP7bJka4RSsZi4mwKkF8MkrQ4d7l?=
 =?us-ascii?Q?iDXBLf9x8QeEOJIgH4rdK5XVQQkrAZ1mqC/Sx++cSH3cjXzc48sP83EwWB08?=
 =?us-ascii?Q?o5qzkxY4kH9rhtuP9t408JNRVn1gkJSIXWMpdmw9CB5D5v10b1pc9ThPQD4e?=
 =?us-ascii?Q?gIkRyqhgiRtXfm6xn8meF9GrAMJIIjCZPItA06xs7dUKAEv2IpsCBa9/l9ho?=
 =?us-ascii?Q?EiXC0IdhPqQBcPmXcVxg33LEKtRZdsprGwZlgCjylLC3xfnj9Ir7DFpBfVyc?=
 =?us-ascii?Q?sBS15HjCaQ=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a3ade90e-379d-40f6-6575-08de8078128a
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:43:52.9548
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: qxxgPiqlAu8BpeApekkYJsF5JCVxXjvU4NScenej9Tb4ICnlubz3snioTs+toUSoJoFEzZBTminbanVGnzGk2A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6870

struct cpuinfo_x86
  .x86        => .family
  .x86_vendor => .vendor
  .x86_model  => .model
  .x86_mask   => .stepping

No functional change.

This work is part of making Xen safe for Intel family 18/19.

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
Changes in v2:
- Remove the XXX comments
---
 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/acpi/cpufreq/powernow.c |  4 ++--
 4 files changed, 14 insertions(+), 15 deletions(-)

diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
index 0b3d0631dd..6622965ace 100644
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -178,10 +178,10 @@ static void cf_check do_get_hw_residencies(void *arg)
     struct cpuinfo_x86 *c = &current_cpu_data;
     struct hw_residencies *hw_res = arg;
 
-    if ( c->x86_vendor != X86_VENDOR_INTEL || c->x86 != 6 )
+    if ( c->vendor != X86_VENDOR_INTEL || c->family != 6 )
         return;
 
-    switch ( c->x86_model )
+    switch ( c->model )
     {
     /* 4th generation Intel Core (Haswell) */
     case 0x45:
@@ -915,7 +915,7 @@ void cf_check acpi_dead_idle(void)
             mwait(cx->address, 0);
         }
     }
-    else if ( (current_cpu_data.x86_vendor &
+    else if ( (current_cpu_data.vendor &
                (X86_VENDOR_AMD | X86_VENDOR_HYGON)) &&
               cx->entry_method == ACPI_CSTATE_EM_SYSIO )
     {
@@ -1042,8 +1042,8 @@ static void acpi_processor_power_init_bm_check(struct acpi_processor_flags *flag
     flags->bm_check = 0;
     if ( num_online_cpus() == 1 )
         flags->bm_check = 1;
-    else if ( (c->x86_vendor == X86_VENDOR_INTEL) ||
-              ((c->x86_vendor == X86_VENDOR_AMD) && (c->x86 == 0x15)) )
+    else if ( (c->vendor == X86_VENDOR_INTEL) ||
+              ((c->vendor == X86_VENDOR_AMD) && (c->family == 0x15)) )
     {
         /*
          * Today all MP CPUs that support C3 share cache.
@@ -1059,8 +1059,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 &&
-        (c->x86 > 0x6 || (c->x86 == 6 && c->x86_model >= 14)) )
+    if ( c->vendor == X86_VENDOR_INTEL && c->vfm >= INTEL_CORE_YONAH )
             flags->bm_control = 0;
 }
 
@@ -1416,12 +1415,12 @@ static void amd_cpuidle_init(struct acpi_processor_power *power)
     if ( vendor_override < 0 )
         return;
 
-    switch ( c->x86 )
+    switch ( c->family )
     {
     case 0x1a:
     case 0x19:
     case 0x18:
-        if ( boot_cpu_data.x86_vendor != X86_VENDOR_HYGON )
+        if ( boot_cpu_data.vendor != X86_VENDOR_HYGON )
         {
     default:
             vendor_override = -1;
@@ -1648,7 +1647,7 @@ static int cf_check cpu_callback(
         break;
 
     case CPU_ONLINE:
-        if ( (boot_cpu_data.x86_vendor &
+        if ( (boot_cpu_data.vendor &
               (X86_VENDOR_AMD | X86_VENDOR_HYGON)) &&
              processor_powers[cpu] )
             amd_cpuidle_init(processor_powers[cpu]);
diff --git a/xen/arch/x86/acpi/cpufreq/acpi.c b/xen/arch/x86/acpi/cpufreq/acpi.c
index d0ca660db1..de67f1aee2 100644
--- a/xen/arch/x86/acpi/cpufreq/acpi.c
+++ b/xen/arch/x86/acpi/cpufreq/acpi.c
@@ -454,7 +454,7 @@ static int cf_check acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
 
     /* Check for APERF/MPERF support in hardware
      * also check for boost support */
-    if (c->x86_vendor == X86_VENDOR_INTEL && c->cpuid_level >= 6)
+    if (c->vendor == X86_VENDOR_INTEL && c->cpuid_level >= 6)
         on_selected_cpus(cpumask_of(cpu), feature_detect, policy, 1);
 
     /*
diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/cpufreq/cpufreq.c
index 5740c0d438..9ef62b3538 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -133,7 +133,7 @@ static int __init cf_check cpufreq_driver_init(void)
 
         ret = -ENOENT;
 
-        switch ( boot_cpu_data.x86_vendor )
+        switch ( boot_cpu_data.vendor )
         {
         case X86_VENDOR_INTEL:
             for ( i = 0; i < cpufreq_xen_cnt; i++ )
@@ -252,7 +252,7 @@ __initcall(cpufreq_driver_late_init);
 int cpufreq_cpu_init(unsigned int cpu)
 {
     /* Currently we only handle Intel, AMD and Hygon processor */
-    if ( boot_cpu_data.x86_vendor &
+    if ( boot_cpu_data.vendor &
          (X86_VENDOR_INTEL | X86_VENDOR_AMD | X86_VENDOR_HYGON) )
         return cpufreq_add_cpu(cpu);
 
diff --git a/xen/arch/x86/acpi/cpufreq/powernow.c b/xen/arch/x86/acpi/cpufreq/powernow.c
index beab6cac36..55166eac72 100644
--- a/xen/arch/x86/acpi/cpufreq/powernow.c
+++ b/xen/arch/x86/acpi/cpufreq/powernow.c
@@ -143,7 +143,7 @@ static void amd_fixup_frequency(struct xen_processor_px *px)
     int index = px->control & 0x00000007;
     const struct cpuinfo_x86 *c = &current_cpu_data;
 
-    if ((c->x86 != 0x10 || c->x86_model >= 10) && c->x86 != 0x11)
+    if ((c->family != 0x10 || c->model >= 10) && c->family != 0x11)
         return;
 
     val = rdmsr(MSR_PSTATE_DEF_BASE + index);
@@ -157,7 +157,7 @@ static void amd_fixup_frequency(struct xen_processor_px *px)
 
     fid = val & 0x3f;
     did = (val >> 6) & 7;
-    if (c->x86 == 0x10)
+    if (c->family == 0x10)
         px->core_frequency = (100 * (fid + 16)) >> did;
     else
         px->core_frequency = (100 * (fid + 8)) >> did;
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 20:44:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 20:44:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252995.1549424 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0mt1-0006x5-AX; Thu, 12 Mar 2026 20:44:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252995.1549424; Thu, 12 Mar 2026 20:44: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 1w0mt1-0006wV-5c; Thu, 12 Mar 2026 20:44:03 +0000
Received: by outflank-mailman (input) for mailman id 1252995;
 Thu, 12 Mar 2026 20: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=QBWs=BM=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1w0msz-0006Bj-NL
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 20:44:01 +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 327e1d0a-1e54-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 21:44:00 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by PH0PR03MB6870.namprd03.prod.outlook.com (2603:10b6:510:167::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.12; Thu, 12 Mar
 2026 20:43:57 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9700.010; Thu, 12 Mar 2026
 20:43:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 327e1d0a-1e54-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eCUmT5gviEyKBzndMK6THM3brdJ8BIZWpsTG9nUEckB3641RlhwyGMrDestVRvEN5ituHGrswBqmnvCNfIXKE1yaetA5QAU0xSrDT9BaO7I/LgrVKigdYEbQw6ktYjKRRS7UwfGaH8F+o1YtqFpLhQl5gqgo9cx/SW+mtLim+Kh44XuBU6M68bn112AG5CzhB6Qgjnkoe8em51PY2f0IW+Beom0AI0MNJOIDYqvDgtfpi+mf1qPQPoaI0s2Rg7hAoUdcUa2zvErV6nPtcSGECOzOr3V+1fwO3V3iV6uwfibRUS/JldJNuBhE/ykVAFLyTg0ZdOguQPUqRq+R2mhCCw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4bnrZNvGq+Vb9DJ9a2Zhmk9lhgnLVZNUoXX5pa4kBHY=;
 b=NMoHz/3Y6427ofoyaQogUTxEBuM7UkDFFDxCAaws21wUIDkeNZntvHEttiuWjXWvMq3xGfpHCT/c9ua+I6GYtY1lZJ8B+9AVxvfbr59GZLvrNPB6xLI4x1JKqEdF51Ywzx8orjb/e+7t3bWdkGgN+NnvWoKjc2d5WTUwLajk3PotolkPeG43iU8bbQ764C30ROEIUe606hYzmyCzqPEOje+yOS8tnKfpY70RuD+FnTi9dYnQDxnYr3WYzCdUeW8dGkRm+umRCu0XPG8T9rVBdqTfHffKCYnyxwqgCgImEscyCtFeoSDZKgnm+hy6jhy8s41RQeSl2VgLfIhKuR5spw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4bnrZNvGq+Vb9DJ9a2Zhmk9lhgnLVZNUoXX5pa4kBHY=;
 b=tNaK9LuNPb/DLthJmIzTXIyIQZGx5NFPe535tuFLHKg2oYVMOy481cBXetthyBoj2GphPRwrSokXkska5gPek8K8dhP8V8ZDSvgAvX1kIR9fxCRDRFkkIr1/P5AZOJfKLbNrbJ3IZzQ8RKZFXufoPvra/yrSj8P2PXiHe/fIXO8=
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 v v2 3/7] x86: Remove Intel 0x65, 0x6e, 0x5d from VMX code
Date: Thu, 12 Mar 2026 20:43:35 +0000
Message-ID: <20260312204339.740403-4-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20260312204339.740403-1-kevin.lampis@citrix.com>
References: <20260312204339.740403-1-kevin.lampis@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0202.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a5::9) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|PH0PR03MB6870:EE_
X-MS-Office365-Filtering-Correlation-Id: d4b828d5-4979-4d03-266e-08de80781507
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	vYGxs2EtMFW7PeqeaOA4GmxuWQrMO9lswagB8V1ippmHZaJo9/N58JRoLqRXYTCU1deDwSWHF5HtVsZIFwXDVlJi49PRe559TVhAs2GTpolcs+4OAPYLjex2iSFd6TmAfRVbrBl9zAvj7IdKEPCLC27lPBf0N9+GcFHTK2All291CXFxHwWwHSlz1AFDtcqbFtx2KV6vbIqRX0Wg7bWPzZCxSHQk4xl5eGlXJEX69tN2xU3VEa6NzrC8i+oNhnCzBfx8J0/w0v8rYj/9nM6W1lXKSDqnC/1nfINbJlVZKUlVX9+j0qHvmqb9GRAlBTP4kkr8ETvJW6TmYN+TwA3GIVJ7BXEkvtBHfemCe/TzUSRfSb72AUZa4o0tI0vRyYJcer1YGYkFfPDaA+ThDIWVfW1DRNumgcSmpMgA3R5KAC4CUxqrqdA1WAGAzCPDwPFTdog863gkQEB4ay+zbIYlw50/zg7lFb1E6munam1swv6lrGu4wcO5CHugoSZuWR2TdhI2iFZy/EHpdCMjHiN5K23lxDUmTQ3rIfCyK1MrPejUeq99bqVGc0fxjFsoGyWf5BuDsd2cGRcrnJwuCD7EPr8Ad7z/1aU5aMq8AF2t8nmiFdm763zgpndWkYXt/YQPdIxqVR7dqpjldYcMOaSPMh44aTbYuT9oTiNsfJQIHclU9KBtdkpYHSxi5apCbTZ3+3h2qmITobMJNLhFfswD/nAxFDN7sEPDNRj1Nvf9lOg=
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)(376014)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?ATVvHdzGKSuWZcgtC7OhA3XbBoICBCoXZ8fejyS9EIE+Q3IJdnEA8BJHLxjc?=
 =?us-ascii?Q?BsBDxb/HJl/WKCmAW5jddTt+omthl8VS5+etj+tuT8xMpmxmNwI0HTnW6349?=
 =?us-ascii?Q?1sVpa51sirFeedFED3ZWVnlbORLukWulQc57bXgwnfXhYloxkUAPvQSkADnl?=
 =?us-ascii?Q?FNgnhMCepb1/rke3dCV9mJKa110OcnKrS9lRlLzoNhIjvo55YLKog49oUdK2?=
 =?us-ascii?Q?V+jUFtofqSANHdKBIkJ9wveuQOJQHbcLQLRh2EeP1lbDJ/OQ6bQJXgfCEi+d?=
 =?us-ascii?Q?rWDcv4EwsefSIrT7r3tvBUKZjc7DgEEJTVRvJJ+WTYp4Z8xPgPfp8eHpL7HE?=
 =?us-ascii?Q?jRgXv0zIAli35FOwJtOB6shY9Yp2oWM6qMcc+P2Z4EVzJIqfgXz/V2jbcbCW?=
 =?us-ascii?Q?AxAeiGUDWObqchYpA70bFhIY1MC59Z2yjECz1BnEDuQ7xqfKkM/nMjE54bQQ?=
 =?us-ascii?Q?21GyBaOS8Gn1YHwZA5a6QcoliHTzIO6pNpUGYAYUMClHhG+hxXsBM4n7k6Ty?=
 =?us-ascii?Q?/udSsgjEMkjxHuq0ufyYh+WyiKdRLjwbnGLqICosZYCRNt2n5Cp/0LCpPjnZ?=
 =?us-ascii?Q?z4641L1t6FZCuLLQT/uzhnku2bBkxmRXx05A5ldUiodx1q+MVaxK6yyR7siI?=
 =?us-ascii?Q?ZKpzfC4pEEw+GCcHpBiAmNXm99vVxdrFtoxV7BO2J5naoqaLJ0Z6vL0gQj4p?=
 =?us-ascii?Q?WjUGyqjw+ogwZ04ptrj8arD9CLZ5MKWymflsl3uEhpYG3tQjZDlXJqmUGSG4?=
 =?us-ascii?Q?ycsCKhSmCkInHbx60jG04GFTccaYQyeYRA2vx2+5uhzGPDsM1j5s2cJNh214?=
 =?us-ascii?Q?hz5MZJPUOdEAeNqz4NU+MBD2nr64rnZnmT8y2auXhmCAkYz65N9b0Olxn662?=
 =?us-ascii?Q?AKJr2liRoBgvohcG+X74+1jI7SCkcdr6d0fGL+Uwy6HGXKMo8f8YfdCQBvNj?=
 =?us-ascii?Q?4eZypCmrltvTSLuDrgbcoto6zfcchPANzqigN3Ub9Eo8Zx0liptXQbEX/swi?=
 =?us-ascii?Q?Cjk1oBt97wduTkFASOQEOIz7W94J+K4OLZxBbpYZQbBidH9yh11eKy71oL7c?=
 =?us-ascii?Q?pcFVSWKMC40BgTM+DqYkAQYFov+e7re4UDObRYIsMbR2eIRFfq18yZlqS1uD?=
 =?us-ascii?Q?n6qnT8uscylFrBEZOd+jM99zT9vHtkC1dYmR7TcTfxhcHeoBz1S6PJfkmfpO?=
 =?us-ascii?Q?FkFLbKaSBdPQ7VF6N80+zPj0E6h6VbmQsiux30rGwYgbictMnYcoJ24beHvB?=
 =?us-ascii?Q?uW+h8j7ypyK392COoY2hs6HGFmgCmkcFaXER1uJyigbf1QM5qfvV0szzFPBU?=
 =?us-ascii?Q?Ytl+Eh7MsxSBxqwr9pFqO58LLDSP5LOi8QoJhJf+tm5NhMH01EsC16VKyA9y?=
 =?us-ascii?Q?cG9HVEUfgGRmLGN1LaFrar+G+r+8Qh32QMmbNFoVgD0ksEav4aIh9Dt7pvts?=
 =?us-ascii?Q?CR505RnMVF6zSP2MW//YOlVqZsRV7oNZYEJXKCNnr8zuhPo4p/g1lT7EdUWZ?=
 =?us-ascii?Q?EZhfSG/antutHyIC/aIlmZK2mRVHgRI7ztMW+MOUigWeRt9vO6zDUULw9fmG?=
 =?us-ascii?Q?BcYmBp5QgqYZkSMbX0oTQHJZQqJ64WfhjAhBleeuWxhxuPvyqEvTiLS0quWx?=
 =?us-ascii?Q?D1Y1YSmy6jewfMsZBsfbmUFxtOmDLgSViI3OYIWo4Mk4ZAl7wIQKF+Q3Imrx?=
 =?us-ascii?Q?2fo7sJdKRFLNt0MSXtNOZNXi+qhraZQwzndAm5C7lcVkZ7CsJuKaePoMoyPv?=
 =?us-ascii?Q?I8TzM85dfQ=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d4b828d5-4979-4d03-266e-08de80781507
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:43:57.1308
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: m/yPSJECyAI5YnuPjia7ZCBY3CD3hOg3JgAyYBnJt56EoOBqsxvhO7agQPmjm45yMhIv0rnnqLLhA4TTngVEaQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6870

These Intel models were used in cellular basestations and not regarded as
general purpose processors.
- 0x5d (SoFIA LTE AOSP)
- 0x6e (Cougar Mountain)
- 0x5d (SoFIA 3G Granite/ES2.1)

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
Changes in v2:
- New patch based on review comments
---
 xen/arch/x86/hvm/vmx/vmx.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 82c55f49ae..e45060d403 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -550,7 +550,7 @@ static const struct lbr_info *__init get_model_specific_lbr(void)
         case 0x1c: case 0x26: case 0x27: case 0x35: case 0x36:
             return at_lbr;
         /* Silvermont */
-        case 0x37: case 0x4a: case 0x4d: case 0x5a: case 0x5d:
+        case 0x37: case 0x4a: case 0x4d: case 0x5a:
         /* Airmont */
         case 0x4c:
             return sm_lbr;
@@ -3126,10 +3126,7 @@ static bool __init has_if_pschange_mc(void)
     case 0x4a: /* Merrifield */
     case 0x5a: /* Moorefield */
     case 0x5c: /* Goldmont */
-    case 0x5d: /* SoFIA 3G Granite/ES2.1 */
-    case 0x65: /* SoFIA LTE AOSP */
     case 0x5f: /* Denverton */
-    case 0x6e: /* Cougar Mountain */
     case 0x75: /* Lightning Mountain */
     case 0x7a: /* Gemini Lake */
     case 0x86: /* Jacobsville */
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 20:44:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 20:44:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1252998.1549433 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0mt9-0007MS-IJ; Thu, 12 Mar 2026 20:44:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1252998.1549433; Thu, 12 Mar 2026 20:44:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0mt9-0007MJ-Dm; Thu, 12 Mar 2026 20:44:11 +0000
Received: by outflank-mailman (input) for mailman id 1252998;
 Thu, 12 Mar 2026 20:44: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=QBWs=BM=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1w0mt7-0006Bj-3z
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 20:44:09 +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 36872b5c-1e54-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 21:44:07 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by PH0PR03MB6979.namprd03.prod.outlook.com (2603:10b6:510:169::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Thu, 12 Mar
 2026 20:44:02 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9700.010; Thu, 12 Mar 2026
 20:44: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: 36872b5c-1e54-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QTABYxefRgz+caiV6A8n0fC8NPIcaiEOayj+Jk2RMeU7f4SN63gKdK1+6v+nVjjIAPMNr1olVOOcbVU4b1AXfmwPE4kXPpsR0Msykuvf4S8gsVj45Z7P2UDipitfV84aRawzMrez8wVGZfOmaqUyG7ek0lYl5nI82pBkGV/oFEP0mpe881PSfInfX5vAsDZdWJoGqMnwG8N5ivY7G07WMWeEPfscjxUR9shCjzlgQ3qpvig6TmxdNoSBR8Beh9d3DzaahMhIO/WThSnik2S4BokdG16PMrj9PRRFWHgABUElpAROQ4vfmxv4uNOQ3jyByVwpse2iYmFPRnaNplqJQA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=I56d0W50ljTEtq6zSKU8BUWqQNcOEh+rwGgmRDXjn/0=;
 b=Pk/uEyETf45EB8HLTPmgzAfB/M801AL/3kw/pWAAQVM2O+B5g01zPJHI9mfC8ua5xshB3FJyUfXPTiWY2HvPCYrFGlJ2pUulLFHMuoaFFKcuV+iSdQMJz2Jvo3rKlOfq960u7fqSw6Gp15FrGqJi73/CmyqdA8HKtbyd3N2uIC1V9GX0cwwLp+0AxyRoBR9w1Ne+VVZkTdyNvTG/UvYg/fNTDZ8lh+cZYaeqIv9xJTm656AydywPTD1MKPm5nzr/aVD4amUH78LaDcGCBn9YlM82pxN9rug2cpNFLilWmJnowxEM+xcvpkHbC6RdnV77VBuA668YIby3aAVJTeQ3cg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=I56d0W50ljTEtq6zSKU8BUWqQNcOEh+rwGgmRDXjn/0=;
 b=tIFKHSs8RK6sAuUA2WRIqwh2MZn6pXVf08R/UP7aOd6OijmtTvsTjIhfbeJGA6Tp70f+6bCEGu3rMyYGXQ/OJ3I7K7XBB2iVoy18tLLQyd7WsJSWdU//2oS8+4nBY6uIKdxhArBj6V/R1IFnRDFe5FMoZilFwGKFTWRBh8IyPUA=
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 v v2 4/7] x86: Remove x86 prefixed names from hvm code
Date: Thu, 12 Mar 2026 20:43:36 +0000
Message-ID: <20260312204339.740403-5-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20260312204339.740403-1-kevin.lampis@citrix.com>
References: <20260312204339.740403-1-kevin.lampis@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO3P265CA0001.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:bb::6) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|PH0PR03MB6979:EE_
X-MS-Office365-Filtering-Correlation-Id: b0ca2fed-caa1-46d1-bd20-08de807817ba
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	xgZN8KO+FslGQjMxjt1pEECouLWRRcSfO2cJyyWQQeOCi+Ov9VCpnj/tffOG1qqyOewykMEmdSvso/mlbapwjYGAArHEBmQc0sl7hSsvtG5YHetsPUBDGfGc9Nkk1HerF+2lvXpxlI7VA+4SNhdjdIv5DhZMDRclX8X4Cd0k9Co5FqKdf/m5WdX518xVGz4NtebMaWb/zygZF20Fr9LQK43WXB7VEn00pJthU+xR/zECz03Sq213QRwo1LFdTqeaVCsjiXUHO3A9lYKZEy+BAX2AeS+3I3DJcrSn4wqJSIA0xubM+wTG/3WvRcYvPthNGsdH+iBXnq65GKTHPe4OUaQQXFiJsS5ojfh77FcST5j79NHGDy1GFiX0r61CfDI2uJ0Yit5qbgunh0Ocv/VsOdwQ/zkFVMJuNbT+sQv/hvHbMVDRLMsKpHDUQUsTTvSvkTATEciPhEP2iUs2jnDZC34NIZRBxz3q39PAza/rnXRf9Kt0qP4Z3Spq9qO0Y2sEEm2lYqOyRlTrbLBnMLvghu7dJW1HhaXsJbW65Z2jJFYkBA0k3yvQhn8g1P7QrUopzc1CTxi+GaJjP+rVUx5qOaBK6QKVPAnd0XMogPSlJF+qG5lOB6xvosPUGxVcxqDVZ7VAGqCetGJUO/yOC28lJb7UzpxxmXi/z2yyLuOia4lw9rXZzf6p5REy7/brqNVGA//7zMZtNfKz26sprrnKWDchiHN/pXV19/DKQYlrSzk=
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)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?YlomapYLIuQCbvtccQpnrCzmXjF8xGqcCNtNoRqrc2R74KMixUhVxVUzuY8/?=
 =?us-ascii?Q?+fg7YEtxEIg1MjFoHGrHqqt59ptYGEF9sI212OCY2wJ7GTaowDc8mVeQuDVN?=
 =?us-ascii?Q?/0Wg89mH+ZRfbJrTFqoZ5+qhc3uIYGtI1DUu09QqylfqLMeWpiwS/twyXjIp?=
 =?us-ascii?Q?6q/prAMgw+eIZ9euFWASG8H3fqBfdxi6YZPTzDRQ6dXkCbOtHBGWA5UnWHbP?=
 =?us-ascii?Q?bauqtz9dYpv5cysZIBxUpcgeAILF6RyXUsT6k1Q+UiHvxQpMRWIVHSrYGfTl?=
 =?us-ascii?Q?1X3bleGnZ0W/jFP+RD78ualL3B1RClEVLWeZ9u80omrhWMWYU+6a7XDZ0bo9?=
 =?us-ascii?Q?ZFed95Mn0Te3MvblUKMNpQK6UKxrEy6jBUn2yy6lpb9QJhS1A0mGwhQkacIg?=
 =?us-ascii?Q?tz2O7DAyzCJMvgcNoMh0Kp4OLPoZyqzLOfQMdHyt+9Ze9qw8iWGOMZys34BB?=
 =?us-ascii?Q?lyI4WenObnQ9VMI3s5iFdRY9L3YB2RMmdu0mX/3ZJsa/OwWXpP/hOXwsEbU6?=
 =?us-ascii?Q?q+Fbyh3pMzMBSGYFP09nPqUV9ZfZ0I0WPTKQEqnxfDm5cwg55M65L1X/CxWt?=
 =?us-ascii?Q?KwaRfIWF0BBghdPGJtbG1te7jBXeNEyDoDWt7LyJnxlpd/VL9aQdMOD0CFQb?=
 =?us-ascii?Q?VMPhbZ+68uK7vIgh+0Gh76AecKw6XBhqZwM/7+80f8vMC/l6t2ArQOpvpoFk?=
 =?us-ascii?Q?sYKgq8djKd8CFodOXlfASH4byBXv5FjpSFabu2wi3VAoRXcTqzjt6LAnZTFE?=
 =?us-ascii?Q?Z0rZb6XMvdJd3xlbJD4d/jwliEltdYlBRkwo+OAUAMK4M/tMpKi1szOzTu7B?=
 =?us-ascii?Q?kUDgaHWv1I6FAGuszk029ja97BY1Do8dan+4jehySf8TgacyuZ8sFSeUGkQQ?=
 =?us-ascii?Q?kwSQjrAEAQDAyPRbFzfO4NUz0ZhCDuE0Tgwj0GXYVAgM8t9YwIS6lqRYioRy?=
 =?us-ascii?Q?ADKZmD1BjZSyQRMDAcXxnph6jsMSwEhpT/zHARqgu4l0hFb8p5ZiVOZxQQD4?=
 =?us-ascii?Q?tmMeln9aNPIUUoJYarCCCjz+HEquLB99jWEsi2mtVIf8GzMYaQjcaFMWqHBz?=
 =?us-ascii?Q?YmaPCzLQyezBeW5oV0pN1aQ9eyvHA/X/t7AXjACYiETNX5bf73V0WSZ3fhrB?=
 =?us-ascii?Q?Kf3zEEO62yXNS5tk330Ehn8k69RW0H7OCWpOcd752lhn0WCrTWSNCI8f+kh/?=
 =?us-ascii?Q?lQBD7VTUA0eb9LAxMCF9e5bpEx/MUi/f56WZb9EuFtcVa8+YH296SSYOR35B?=
 =?us-ascii?Q?l9SOxPEs4fk0MFe7/a3gWws2L5DgyHtpm1w2KWkHVT80DFL1kNwhCye8F7Zk?=
 =?us-ascii?Q?eQZena5z2Z6hnPGcJK0l7x9FekJ8HkPORYruiUgJhbVE0qaUMIy22GnD3Wme?=
 =?us-ascii?Q?h8soKFT9gtb5i/biXoLuw877dD7iqBPkXfLrIn4z9cSi5firkpJwuM2NCHZz?=
 =?us-ascii?Q?VUEStXLkuma0Ir9tnWcqeXMhyJl9fkmqm20ppQFptiyXsGz9c2WZMUySspR7?=
 =?us-ascii?Q?F4KQy3sDjIXaPGk2+y9yqzJlG3Z/rNT75/zMsp8ymN0QuD4aHq5nQ6sSdE6+?=
 =?us-ascii?Q?FmmKz4JbKodYogSwl68OFXnwWI8ziQEESdTZg01svv4az0HiqDERoaybD8Xk?=
 =?us-ascii?Q?1UGtjBLr4niDZKX9FApeqyB20MDQVbLp9L23W7hc47ByY0pU2c2b64C6VKYT?=
 =?us-ascii?Q?Un7q6oO18ZSy50CLjzzlpDFN0cY6ykADsx3d/EemxdZjy8SjtMzskKRzyRHo?=
 =?us-ascii?Q?y2B9ycA3pA=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b0ca2fed-caa1-46d1-bd20-08de807817ba
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:44:01.7036
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: aBLlv7y8XDtgqzxceLWNihQNhcb9MM5Nhc13P9vsQducmy3Lr8LLlv7ongMaCwwiM6IhXMYxUtE8VnDihEB9uw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6979

struct cpuinfo_x86
  .x86        => .family
  .x86_vendor => .vendor
  .x86_model  => .model
  .x86_mask   => .stepping

No functional change.

This work is part of making Xen safe for Intel family 18/19.

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
Changes in v2:
- Group Silvermonts, Airmonts, Goldmonts in the switch statement
- Restore Errata info in lbr_tsx_fixup_check() and ler_to_fixup_check()
---
 xen/arch/x86/hvm/hvm.c      |   2 +-
 xen/arch/x86/hvm/svm/svm.c  |   6 +-
 xen/arch/x86/hvm/vmx/vmcs.c |   4 +-
 xen/arch/x86/hvm/vmx/vmx.c  | 277 ++++++++++++++++++------------------
 4 files changed, 146 insertions(+), 143 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 4d37a93c57..6ad52e1197 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3850,7 +3850,7 @@ void hvm_ud_intercept(struct cpu_user_regs *regs)
 {
     struct vcpu *cur = current;
     bool should_emulate =
-        cur->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor;
+        cur->domain->arch.cpuid->x86_vendor != boot_cpu_data.vendor;
     struct hvm_emulate_ctxt ctxt;
 
     hvm_emulate_init_once(&ctxt, opt_hvm_fep ? NULL : is_cross_vendor, regs);
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 243c41fb13..5e4d8b3c52 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -590,7 +590,7 @@ static void cf_check svm_cpuid_policy_changed(struct vcpu *v)
     u32 bitmap = vmcb_get_exception_intercepts(vmcb);
 
     if ( opt_hvm_fep ||
-         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor) )
+         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.vendor) )
         bitmap |= (1U << X86_EXC_UD);
     else
         bitmap &= ~(1U << X86_EXC_UD);
@@ -1057,7 +1057,7 @@ static void svm_guest_osvw_init(struct domain *d)
      * be conservative here and therefore we tell the guest that erratum 298
      * is present (because we really don't know).
      */
-    if ( osvw_length == 0 && boot_cpu_data.x86 == 0x10 )
+    if ( osvw_length == 0 && boot_cpu_data.family == 0x10 )
         svm->osvw.status |= 1;
 
     spin_unlock(&osvw_lock);
@@ -1805,7 +1805,7 @@ static int cf_check svm_msr_read_intercept(
         if ( !rdmsr_safe(msr, msr_content) )
             break;
 
-        if ( boot_cpu_data.x86 == 0xf )
+        if ( boot_cpu_data.family == 0xf )
         {
             /*
              * Win2k8 x64 reads this MSR on revF chips, where it wasn't
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index c2e7f9aed3..d3b1730f1d 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -26,6 +26,7 @@
 #include <asm/hvm/vmx/vmx.h>
 #include <asm/hvm/vmx/vvmx.h>
 #include <asm/idt.h>
+#include <asm/intel-family.h>
 #include <asm/monitor.h>
 #include <asm/msr.h>
 #include <asm/processor.h>
@@ -2163,8 +2164,7 @@ int __init vmx_vmcs_init(void)
 
     if ( opt_ept_ad < 0 )
         /* Work around Erratum AVR41 on Avoton processors. */
-        opt_ept_ad = !(boot_cpu_data.x86 == 6 &&
-                       boot_cpu_data.x86_model == 0x4d);
+        opt_ept_ad = !(boot_cpu_data.vfm == INTEL_ATOM_SILVERMONT_D);
 
     ret = _vmx_cpu_up(true);
 
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index e45060d403..3d308e149c 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -34,6 +34,7 @@
 #include <asm/hvm/vmx/vmcs.h>
 #include <asm/hvm/vmx/vmx.h>
 #include <asm/hvm/vpt.h>
+#include <asm/intel-family.h>
 #include <asm/io.h>
 #include <asm/iocap.h>
 #include <asm/mce.h>
@@ -502,72 +503,74 @@ static const struct lbr_info *__ro_after_init model_specific_lbr;
 
 static const struct lbr_info *__init get_model_specific_lbr(void)
 {
-    switch ( boot_cpu_data.x86 )
+    switch ( boot_cpu_data.vfm )
     {
-    case 6:
-        switch ( boot_cpu_data.x86_model )
-        {
-        /* Core2 Duo */
-        case 0x0f:
-        /* Enhanced Core */
-        case 0x17:
-        /* Xeon 7400 */
-        case 0x1d:
-            return c2_lbr;
-        /* Nehalem */
-        case 0x1a: case 0x1e: case 0x1f: case 0x2e:
-        /* Westmere */
-        case 0x25: case 0x2c: case 0x2f:
-        /* Sandy Bridge */
-        case 0x2a: case 0x2d:
-        /* Ivy Bridge */
-        case 0x3a: case 0x3e:
-        /* Haswell */
-        case 0x3c: case 0x3f: case 0x45: case 0x46:
-        /* Broadwell */
-        case 0x3d: case 0x47: case 0x4f: case 0x56:
-            return nh_lbr;
-        /* Skylake */
-        case 0x4e: case 0x5e:
-        /* Xeon Scalable */
-        case 0x55:
-        /* Cannon Lake */
-        case 0x66:
-        /* Goldmont Plus */
-        case 0x7a:
-        /* Ice Lake */
-        case 0x6a: case 0x6c: case 0x7d: case 0x7e:
-        /* Tiger Lake */
-        case 0x8c: case 0x8d:
-        /* Tremont */
-        case 0x86:
-        /* Kaby Lake */
-        case 0x8e: case 0x9e:
-        /* Comet Lake */
-        case 0xa5: case 0xa6:
-            return sk_lbr;
-        /* Atom */
-        case 0x1c: case 0x26: case 0x27: case 0x35: case 0x36:
-            return at_lbr;
-        /* Silvermont */
-        case 0x37: case 0x4a: case 0x4d: case 0x5a:
-        /* Airmont */
-        case 0x4c:
-            return sm_lbr;
-        /* Goldmont */
-        case 0x5c: case 0x5f:
-            return gm_lbr;
-        }
-        break;
-
-    case 15:
-        switch ( boot_cpu_data.x86_model )
-        {
-        /* Pentium4/Xeon with em64t */
-        case 3: case 4: case 6:
-            return p4_lbr;
-        }
-        break;
+    case INTEL_CORE2_DUNNINGTON:
+    case INTEL_CORE2_MEROM:
+    case INTEL_CORE2_PENRYN:
+        return c2_lbr;
+
+    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:
+    case INTEL_SANDYBRIDGE:
+    case INTEL_SANDYBRIDGE_X:
+    case INTEL_IVYBRIDGE:
+    case INTEL_IVYBRIDGE_X:
+    case INTEL_HASWELL:
+    case INTEL_HASWELL_G:
+    case INTEL_HASWELL_L:
+    case INTEL_HASWELL_X:
+    case INTEL_BROADWELL:
+    case INTEL_BROADWELL_D:
+    case INTEL_BROADWELL_G:
+    case INTEL_BROADWELL_X:
+        return nh_lbr;
+
+    case INTEL_SKYLAKE:
+    case INTEL_SKYLAKE_L:
+    case INTEL_SKYLAKE_X:
+    case INTEL_CANNONLAKE_L:
+    case INTEL_ATOM_GOLDMONT_PLUS:
+    case INTEL_ICELAKE:
+    case INTEL_ICELAKE_D:
+    case INTEL_ICELAKE_L:
+    case INTEL_ICELAKE_X:
+    case INTEL_TIGERLAKE:
+    case INTEL_TIGERLAKE_L:
+    case INTEL_ATOM_TREMONT_D:
+    case INTEL_KABYLAKE:
+    case INTEL_KABYLAKE_L:
+    case INTEL_COMETLAKE:
+    case INTEL_COMETLAKE_L:
+        return sk_lbr;
+
+    case INTEL_ATOM_BONNELL:
+    case INTEL_ATOM_BONNELL_MID:
+    case INTEL_ATOM_SALTWELL:
+    case INTEL_ATOM_SALTWELL_MID:
+    case INTEL_ATOM_SALTWELL_TABLET:
+        return at_lbr;
+
+    case INTEL_ATOM_SILVERMONT:
+    case INTEL_ATOM_SILVERMONT_MID:
+    case INTEL_ATOM_SILVERMONT_D:
+    case INTEL_ATOM_SILVERMONT_MID2:
+    case INTEL_ATOM_AIRMONT:
+        return sm_lbr;
+
+    case INTEL_ATOM_GOLDMONT:
+    case INTEL_ATOM_GOLDMONT_D:
+        return gm_lbr;
+
+    case INTEL_P4_PRESCOTT:
+    case INTEL_P4_PRESCOTT_2M:
+    case INTEL_P4_CEDARMILL:
+        return p4_lbr;
     }
 
     return NULL;
@@ -804,7 +807,7 @@ static void cf_check vmx_cpuid_policy_changed(struct vcpu *v)
     int rc = 0;
 
     if ( opt_hvm_fep ||
-         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor) )
+         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.vendor) )
         v->arch.hvm.vmx.exception_bitmap |= (1U << X86_EXC_UD);
     else
         v->arch.hvm.vmx.exception_bitmap &= ~(1U << X86_EXC_UD);
@@ -3073,68 +3076,68 @@ static bool __init has_if_pschange_mc(void)
      * IF_PSCHANGE_MC is only known to affect Intel Family 6 processors at
      * this time.
      */
-    if ( boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
-         boot_cpu_data.x86 != 6 )
+    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
+         boot_cpu_data.family != 6 )
         return false;
 
-    switch ( boot_cpu_data.x86_model )
+    switch ( boot_cpu_data.vfm )
     {
         /*
          * Core processors since at least Nehalem are vulnerable.
          */
-    case 0x1f: /* Auburndale / Havendale */
-    case 0x1e: /* Nehalem */
-    case 0x1a: /* Nehalem EP */
-    case 0x2e: /* Nehalem EX */
-    case 0x25: /* Westmere */
-    case 0x2c: /* Westmere EP */
-    case 0x2f: /* Westmere EX */
-    case 0x2a: /* SandyBridge */
-    case 0x2d: /* SandyBridge EP/EX */
-    case 0x3a: /* IvyBridge */
-    case 0x3e: /* IvyBridge EP/EX */
-    case 0x3c: /* Haswell */
-    case 0x3f: /* Haswell EX/EP */
-    case 0x45: /* Haswell D */
-    case 0x46: /* Haswell H */
-    case 0x3d: /* Broadwell */
-    case 0x47: /* Broadwell H */
-    case 0x4f: /* Broadwell EP/EX */
-    case 0x56: /* Broadwell D */
-    case 0x4e: /* Skylake M */
-    case 0x5e: /* Skylake D */
-    case 0x55: /* Skylake-X / Cascade Lake */
-    case 0x7d: /* Ice Lake */
-    case 0x7e: /* Ice Lake */
-    case 0x8e: /* Kaby / Coffee / Whiskey Lake M */
-    case 0x9e: /* Kaby / Coffee / Whiskey Lake D */
-    case 0xa5: /* Comet Lake H/S */
-    case 0xa6: /* Comet Lake U */
+    case INTEL_NEHALEM_G:
+    case INTEL_NEHALEM:
+    case INTEL_NEHALEM_EP:
+    case INTEL_NEHALEM_EX:
+    case INTEL_WESTMERE:
+    case INTEL_WESTMERE_EP:
+    case INTEL_WESTMERE_EX:
+    case INTEL_SANDYBRIDGE:
+    case INTEL_SANDYBRIDGE_X:
+    case INTEL_IVYBRIDGE:
+    case INTEL_IVYBRIDGE_X:
+    case INTEL_HASWELL:
+    case INTEL_HASWELL_X:
+    case INTEL_HASWELL_L:
+    case INTEL_HASWELL_G:
+    case INTEL_BROADWELL:
+    case INTEL_BROADWELL_G:
+    case INTEL_BROADWELL_X:
+    case INTEL_BROADWELL_D:
+    case INTEL_SKYLAKE_L:
+    case INTEL_SKYLAKE:
+    case INTEL_SKYLAKE_X:
+    case INTEL_ICELAKE:
+    case INTEL_ICELAKE_L:
+    case INTEL_KABYLAKE_L:
+    case INTEL_KABYLAKE:
+    case INTEL_COMETLAKE:
+    case INTEL_COMETLAKE_L:
         return true;
 
         /*
          * Atom processors are not vulnerable.
          */
-    case 0x1c: /* Pineview */
-    case 0x26: /* Lincroft */
-    case 0x27: /* Penwell */
-    case 0x35: /* Cloverview */
-    case 0x36: /* Cedarview */
-    case 0x37: /* Baytrail / Valleyview (Silvermont) */
-    case 0x4d: /* Avaton / Rangely (Silvermont) */
-    case 0x4c: /* Cherrytrail / Brasswell */
-    case 0x4a: /* Merrifield */
-    case 0x5a: /* Moorefield */
-    case 0x5c: /* Goldmont */
-    case 0x5f: /* Denverton */
-    case 0x75: /* Lightning Mountain */
-    case 0x7a: /* Gemini Lake */
-    case 0x86: /* Jacobsville */
+    case INTEL_ATOM_BONNELL:
+    case INTEL_ATOM_BONNELL_MID:
+    case INTEL_ATOM_SALTWELL_MID:
+    case INTEL_ATOM_SALTWELL_TABLET:
+    case INTEL_ATOM_SALTWELL:
+    case INTEL_ATOM_SILVERMONT:
+    case INTEL_ATOM_SILVERMONT_D:
+    case INTEL_ATOM_SILVERMONT_MID:
+    case INTEL_ATOM_SILVERMONT_MID2:
+    case INTEL_ATOM_GOLDMONT:
+    case INTEL_ATOM_GOLDMONT_D:
+    case INTEL_ATOM_GOLDMONT_PLUS:
+    case INTEL_ATOM_AIRMONT:
+    case INTEL_ATOM_AIRMONT_NP:
+    case INTEL_ATOM_TREMONT_D:
         return false;
 
     default:
         printk("Unrecognised CPU model %#x - assuming vulnerable to IF_PSCHANGE_MC\n",
-               boot_cpu_data.x86_model);
+               boot_cpu_data.model);
         return true;
     }
 }
@@ -3428,23 +3431,23 @@ static void __init lbr_tsx_fixup_check(void)
      * fixed up as well.
      */
     if ( cpu_has_hle || cpu_has_rtm ||
-         boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
-         boot_cpu_data.x86 != 6 )
+         boot_cpu_data.vendor != X86_VENDOR_INTEL ||
+         boot_cpu_data.family != 6 )
         return;
 
-    switch ( boot_cpu_data.x86_model )
+    switch ( boot_cpu_data.vfm )
     {
-    case 0x3c: /* HSM182, HSD172 - 4th gen Core */
-    case 0x3f: /* HSE117 - Xeon E5 v3 */
-    case 0x45: /* HSM182 - 4th gen Core */
-    case 0x46: /* HSM182, HSD172 - 4th gen Core (GT3) */
-    case 0x3d: /* BDM127 - 5th gen Core */
-    case 0x47: /* BDD117 - 5th gen Core (GT3)
-                  BDW117 - Xeon E3-1200 v4 */
-    case 0x4f: /* BDF85  - Xeon E5-2600 v4
-                  BDH75  - Core-i7 for LGA2011-v3 Socket
-                  BDX88  - Xeon E7-x800 v4 */
-    case 0x56: /* BDE105 - Xeon D-1500 */
+    case INTEL_HASWELL:     /* HSM182, HSD172 - 4th gen Core */
+    case INTEL_HASWELL_X:   /* HSE117 - Xeon E5 v3 */
+    case INTEL_HASWELL_L:   /* HSM182 - 4th gen Core */
+    case INTEL_HASWELL_G:   /* HSM182, HSD172 - 4th gen Core (GT3) */
+    case INTEL_BROADWELL:   /* BDM127 - 5th gen Core */
+    case INTEL_BROADWELL_G: /* BDD117 - 5th gen Core (GT3)
+                               BDW117 - Xeon E3-1200 v4 */
+    case INTEL_BROADWELL_X: /* BDF85  - Xeon E5-2600 v4
+                               BDH75  - Core-i7 for LGA2011-v3 Socket
+                               BDX88  - Xeon E7-x800 v4 */
+    case INTEL_BROADWELL_D: /* BDE105 - Xeon D-1500 */
         break;
     default:
         return;
@@ -3473,19 +3476,19 @@ static void __init ler_to_fixup_check(void)
      * that are not equal to bit[47].  Attempting to context switch this value
      * may cause a #GP.  Software should sign extend the MSR.
      */
-    if ( boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
-         boot_cpu_data.x86 != 6 )
+    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
+         boot_cpu_data.family != 6 )
         return;
 
-    switch ( boot_cpu_data.x86_model )
+    switch ( boot_cpu_data.vfm )
     {
-    case 0x3d: /* BDM131 - 5th gen Core */
-    case 0x47: /* BDD??? - 5th gen Core (H-Processor line)
-                  BDW120 - Xeon E3-1200 v4 */
-    case 0x4f: /* BDF93  - Xeon E5-2600 v4
-                  BDH80  - Core-i7 for LGA2011-v3 Socket
-                  BDX93  - Xeon E7-x800 v4 */
-    case 0x56: /* BDE??? - Xeon D-1500 */
+    case INTEL_BROADWELL:   /* BDM131 - 5th gen Core */
+    case INTEL_BROADWELL_G: /* BDD??? - 5th gen Core (H-Processor line)
+                             * BDW120 - Xeon E3-1200 v4 */
+    case INTEL_BROADWELL_X: /* BDF93  - Xeon E5-2600 v4
+                             * BDH80  - Core-i7 for LGA2011-v3 Socket
+                             * BDX93  - Xeon E7-x800 v4 */
+    case INTEL_BROADWELL_D: /* BDE??? - Xeon D-1500 */
         ler_to_fixup_needed = true;
         break;
     }
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 20:44:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 20:44:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253006.1549442 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0mtD-0007kl-2K; Thu, 12 Mar 2026 20:44:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253006.1549442; Thu, 12 Mar 2026 20: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 1w0mtC-0007kd-SV; Thu, 12 Mar 2026 20:44:14 +0000
Received: by outflank-mailman (input) for mailman id 1253006;
 Thu, 12 Mar 2026 20:44:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QBWs=BM=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1w0mtB-0006Bj-PA
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 20:44:13 +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 39ec5d5d-1e54-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 21:44:13 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by PH0PR03MB6979.namprd03.prod.outlook.com (2603:10b6:510:169::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Thu, 12 Mar
 2026 20:44:10 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9700.010; Thu, 12 Mar 2026
 20: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: 39ec5d5d-1e54-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cwG5oXut7vqbXe8pKmroMCzc2RJRkWXAi0FWwK8tcLl/qL4gzhhcPomh+vMVZuU9YRNjof6IRH1mRdpU7igwScVhGc6ls+Rm5YKjiAKy1xWiX0nujIN3Q306xyQIFfAjgNTjDPTAztI3w1RzVPoQDRJ2MpLTvJTUoiTJwIHZHL6UPCROEyohQsEfzChUHDH3d5GrHVSxuQLbL/aMB2BxWIPRONC0IjqDTsPnGJMaKvEwUX8t/alKsBMaMqrbMh96zPCyrXfyYb3E/pezUQrXLMhyQxmR7SlMcfEPwpd4Y+RKivSJQm2tBmS0BTvrY+Pd9tnovOgI/8KSSXS1mqNacw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=U0o9ybYsubF19k60JOis6AlLc6jRcwgP3O3U/ssKhw4=;
 b=uinerQgjhulfa+OEa6ETFDEJPvfwyZy0CtX4wWA048lZVIUhdJIotVcbgKJtrYCetBMKFM+jldkXajsM+Ve9LcSDfcuEyxGvQ5qPcZNml+Gtm3WM3dS40TJzP/J4tc28qu7qyNh9y0OtmyplM4w/rVoOeCWukZAoWc8CC4NLX0AWG/JZ/BYuD5b/ioxmSafEc0OqnOda5PuNbBPhdw0ZV3oEH8kZmPV6Np8m+OAzLLQOXqdY6gt2syRmwHSEuCzk//Dcl1HhZk4HXf9BDUPZBCeYExcXsS6twOxSju4BIIAT5nogySi0nbo97ppXOZFQt/sD2+P7nj2+IDGpP6HJFg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=U0o9ybYsubF19k60JOis6AlLc6jRcwgP3O3U/ssKhw4=;
 b=y+HjgRKIjBB3dUFd5PB9yN757Q2AYaY9kuIb6kIp3A+8CKk/oxwIEVxKx/0gOdapDca7W8PAPPlkjMf68LAkCuno1EfJLzZ+4ricXWk9tJsHSVcerpfemyWAru6BiXL/nhrx4Jik+kl5mR9nuFOakW34qMkzBXyBgsTKxL4Nu+E=
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 v v2 5/7] x86: Remove x86 prefixed names from x86/cpu/ files
Date: Thu, 12 Mar 2026 20:43:37 +0000
Message-ID: <20260312204339.740403-6-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20260312204339.740403-1-kevin.lampis@citrix.com>
References: <20260312204339.740403-1-kevin.lampis@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO0P265CA0008.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:355::11) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|PH0PR03MB6979:EE_
X-MS-Office365-Filtering-Correlation-Id: fc3b4f0c-1591-4fbb-f92c-08de80781cc1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	34l+ql4KHgVLMDMiqPXKo0oyvVGpL+bCXc6jcScFCyoPQWdrHuf4HLaddNAuuQ6FUXr44wHgFUhi5ibgB6U8BoGBaGcVMFQunc1Rx4hX6tgcQS068LVrsSam/o0M79RZ3BSBojR/4BXSwUGrt4PEy0/kZzSD7D43MRj6DQFQB+56rPjZ5o0oMZNy17QBKl6RtCh2LZIVVaYh1p/M+UnfyMUKG0nhS4TRWmBR87VOkSGf4SbACTes8D4ABEYzOYsIvyYVMMyqN5PB5o048Xw1jVfRQzZc8BRurPEND+atB1LQj4f4dK3b/st8Q6gUJhG9n6d/PYTh5wAoSuGg6d1yuP2YwQaQey/8z7PPoha304sCDmx1imb5fAvj5MDViGHU3a2nupg4IUYjgdP3Wbm0PStbCV8O4DQrjIg+OuyCxR5pHJlUpjV6XAKkoTvoGZCyy4Wh65VRGjV12K1KGCqdqOw5HddYphm5klwAjn/xwDkDXtYHi6Wipw5OARBh4S95rVnwLREfF1crr9Gz6/wkB1Pu6CE1XmMZGDQzIRLvjk4wifkWISZJGM8d2Z3ZywOsR1mU5IzaQdg9fxE7EpOb6PlzjBklBxW0/lThE/rm7XB2Jf3kZp43evYXtp0DDmug7fvbOePCeYGfv35p1u7FzPWMal2QRbkuzJtAJ/UgUw1Epm9zZe2AmyTJtjOawS+NbccKVdzhN6qoVCpvdFkb1hr+nQc7A0Mt3y/UbPzipTo=
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)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?P8fNO/MINTdSdgkyGvrqrhQahlb9MG08lsQf9WCIOl0vLnNl6rcbrWk5WprI?=
 =?us-ascii?Q?OClFl8CDZA18J0wvcPd4VqlExrHU17Et/LLvYBaAcXcvFj0nYMV0IxXtZ265?=
 =?us-ascii?Q?vrkiHg1ycVw8LO5Auh7cYOwkTgH9/Gie3Fiepv65ileAUMzWHBvVQ8c/Ik5w?=
 =?us-ascii?Q?4CWjKp1tSsJkk/2PhSPS7Lm/JBTXkXFwlIpPdqtekwSAYBRiC+T9hFf+F7aY?=
 =?us-ascii?Q?LKb/0Aw33YSYyA08r7vDRUBCIjSkquCTsck3iiASgLfHIwUcDwzqYUjS70/U?=
 =?us-ascii?Q?o4k5aNhki1peiSc7LEG6LS+9RvpKngLbR1T+c03K87Wbl4Axe9WjxdUpSjgb?=
 =?us-ascii?Q?FArp6a1y565y7xvL064Rbc38yJrmtyQquGOQRyzDUocnC27vz+ovArPuB9aC?=
 =?us-ascii?Q?8fXXcT+TfRjg4DfNmJ5MEYjnB5FCNSztsW5Ro/sjaDe5tN1IgmT8F67M2BXx?=
 =?us-ascii?Q?7LEC+CN6GtraitXXWYZr6jSA8WBYRkRWspxt2UOUHYgUigb25Ij3Z2IFEqQo?=
 =?us-ascii?Q?XIn+Pc04R5+7GvpS9fc8KkEq1YsR0vhZko3QiuIvAkND+D5P8ByQ6NrQAc7e?=
 =?us-ascii?Q?j7dEGuziojMJvgcz351lHTrA35XPvP1KGN7uIFfU+EYoG8mitOdFWzkuL+IY?=
 =?us-ascii?Q?NAEV6vB7j7Bx3KISUzD/plm2+CEGWXJSB8+KDOKoxC8FDnudl2nmqC51GUFI?=
 =?us-ascii?Q?zqZLfEsCG6PqPs+V/9rzKNUsq27X5n3fUMoDfqDZ/9o/A0/dobaBriaLTzDz?=
 =?us-ascii?Q?OYaREx7XXLbgDgH1g0x0Oenp6TGqWFcBbaW+BTZ8W5UoN7YrAfFlQMG2nnNl?=
 =?us-ascii?Q?u4lzWxClKSBOLZuT4a6ARb83UASh1RygUxjAjETY84t8MgWQLPe3zRRuILu0?=
 =?us-ascii?Q?tBXsQ13lIWJsSUGoLgX/Gp69MQugP2gQhry4+S6b2JqGCZS0/DCfMo7wJXIX?=
 =?us-ascii?Q?1JP1Y1q3sqSy2Fw+4pn5B4XGdvZ60jyH6hKpuKBNegB+4OuMeqY6TP8Ch2Wm?=
 =?us-ascii?Q?8AGBcLCKP5MCtaNC0JhEj1gsl7/PQaMoONOWukvMOVZxUTun4Vy007J/Ylt2?=
 =?us-ascii?Q?9ETWe8QEqT1vcqFTqRKWr7jy/Zxvq2tgVZZ7NJRFf2Ut06IhBBFurY6CWZK0?=
 =?us-ascii?Q?+Qpu5Ftkt04sH12ktu8jlr7vgp4Hu82WvAlVU362gLbpyedD+E0xutAkEVE5?=
 =?us-ascii?Q?kIKh6wmbqbVKg4fCVIyfXvamTDGGKeiWEDoZOIaX9f1RoNnMrw3yawFt+vi6?=
 =?us-ascii?Q?5cvaJ3Q+z5JEHAJbDYLR03p3aW9krKRLokPyzFwB/bEZ2DA3O+VwHJD1OMBh?=
 =?us-ascii?Q?U6YMGBeSUcZhhsQYHx8mkqjQBxG5Q9d6fy0wFJ2E4wKC+soAI66ZpOnqG+De?=
 =?us-ascii?Q?85q+r1LWIlsbA1s2euJFEq140nW1M1yNgcDqv4lmrkCB3MgSWe/mutXHCpgd?=
 =?us-ascii?Q?ZhJSUdGtoTOAoN6TMcOIIUaX0c8AChxJ5z2SqLMGjN8SJWIwCRTzsz1e4O7+?=
 =?us-ascii?Q?9bc8xwh+TBMudfqZDNBcUzfio4KUmMUsOTI++sb5qPboQjt38A2hw23zbedI?=
 =?us-ascii?Q?F3eGuIxdC+zySaS9G8JidqXPOjnR/FsPPG1OY+scU/N9Uue8Ug2qhc2+iq6K?=
 =?us-ascii?Q?fXLDzdNDUwnBwHWD040VSj+cfI2UH9LYw9kXA7ecOVMMXZobeX+iv1TBXSfx?=
 =?us-ascii?Q?v37qyWbmiBfoOgeYHSu+jApTmdKOzJv7wys1ADZHCaNA4Z/iBzwNRuHuNgVQ?=
 =?us-ascii?Q?tf/UXC3QSw=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fc3b4f0c-1591-4fbb-f92c-08de80781cc1
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:44:10.1132
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: eKzbMzWF+yQ4WduBdhHupxlD54RuCX4hJjRi1w65mJIN7D+SJMH0mcGjifPrAvrLXL6Ja66ZR93fZGrQGWfGdg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6979

struct cpuinfo_x86
  .x86        => .family
  .x86_vendor => .vendor
  .x86_model  => .model
  .x86_mask   => .stepping

No functional change.

This work is part of making Xen safe for Intel family 18/19.

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
Changes in v2:
- Switch uint8_t to unsigned int in vpmu_arch_initialise()
- Switch int to unsigned int in vpmu_init()
- Remove XXX comments
---
 xen/arch/x86/cpu/centaur.c         | 4 ++--
 xen/arch/x86/cpu/hygon.c           | 4 ++--
 xen/arch/x86/cpu/intel_cacheinfo.c | 6 +++---
 xen/arch/x86/cpu/mtrr/generic.c    | 6 +++---
 xen/arch/x86/cpu/mwait-idle.c      | 4 ++--
 xen/arch/x86/cpu/vpmu.c            | 4 ++--
 xen/arch/x86/cpu/vpmu_amd.c        | 6 +++---
 xen/arch/x86/cpu/vpmu_intel.c      | 4 ++--
 8 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/xen/arch/x86/cpu/centaur.c b/xen/arch/x86/cpu/centaur.c
index d2e7c8ec99..9123b05dc1 100644
--- a/xen/arch/x86/cpu/centaur.c
+++ b/xen/arch/x86/cpu/centaur.c
@@ -41,7 +41,7 @@ static void init_c3(struct cpuinfo_x86 *c)
 		}
 	}
 
-	if (c->x86 == 0x6 && c->x86_model >= 0xf) {
+	if (c->family == 0x6 && c->model >= 0xf) {
 		c->x86_cache_alignment = c->x86_clflush_size * 2;
 		__set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
 	}
@@ -52,7 +52,7 @@ static void init_c3(struct cpuinfo_x86 *c)
 
 static void cf_check init_centaur(struct cpuinfo_x86 *c)
 {
-	if (c->x86 == 6)
+	if (c->family == 6)
 		init_c3(c);
 }
 
diff --git a/xen/arch/x86/cpu/hygon.c b/xen/arch/x86/cpu/hygon.c
index b99d83ed4d..7a9fc25d31 100644
--- a/xen/arch/x86/cpu/hygon.c
+++ b/xen/arch/x86/cpu/hygon.c
@@ -41,12 +41,12 @@ static void cf_check init_hygon(struct cpuinfo_x86 *c)
 
 	/* Probe for NSCB on Zen2 CPUs when not virtualised */
 	if (!cpu_has_hypervisor && !cpu_has_nscb && c == &boot_cpu_data &&
-	    c->x86 == 0x18)
+	    c->family == 0x18)
 		detect_zen2_null_seg_behaviour();
 
 	/*
 	 * TODO: Check heuristic safety with Hygon first
-	if (c->x86 == 0x18)
+	if (c->family == 0x18)
 		amd_init_spectral_chicken();
 	 */
 
diff --git a/xen/arch/x86/cpu/intel_cacheinfo.c b/xen/arch/x86/cpu/intel_cacheinfo.c
index e88faa7545..a81d0764fb 100644
--- a/xen/arch/x86/cpu/intel_cacheinfo.c
+++ b/xen/arch/x86/cpu/intel_cacheinfo.c
@@ -168,15 +168,15 @@ void init_intel_cacheinfo(struct cpuinfo_x86 *c)
 	 * Don't use cpuid2 if cpuid4 is supported. For P4, we use cpuid2 for
 	 * trace cache
 	 */
-	if ((num_cache_leaves == 0 || c->x86 == 15) && c->cpuid_level > 1 &&
-	    c->x86_vendor != X86_VENDOR_SHANGHAI)
+	if ((num_cache_leaves == 0 || c->family == 15) && c->cpuid_level > 1 &&
+	    c->vendor != X86_VENDOR_SHANGHAI)
 	{
 		/* supports eax=2  call */
 		unsigned int i, j, n, regs[4];
 		unsigned char *dp = (unsigned char *)regs;
 		int only_trace = 0;
 
-		if (num_cache_leaves != 0 && c->x86 == 15)
+		if (num_cache_leaves != 0 && c->family == 15)
 			only_trace = 1;
 
 		/* Number of times to iterate */
diff --git a/xen/arch/x86/cpu/mtrr/generic.c b/xen/arch/x86/cpu/mtrr/generic.c
index c587e9140e..190be7f1b4 100644
--- a/xen/arch/x86/cpu/mtrr/generic.c
+++ b/xen/arch/x86/cpu/mtrr/generic.c
@@ -218,9 +218,9 @@ static void __init print_mtrr_state(const char *level)
 			printk("%s  %u disabled\n", level, i);
 	}
 
-	if ((boot_cpu_data.x86_vendor == X86_VENDOR_AMD &&
-	     boot_cpu_data.x86 >= 0xf) ||
-	     boot_cpu_data.x86_vendor == X86_VENDOR_HYGON) {
+	if ((boot_cpu_data.vendor == X86_VENDOR_AMD &&
+	     boot_cpu_data.family >= 0xf) ||
+	     boot_cpu_data.vendor == X86_VENDOR_HYGON) {
 		uint64_t syscfg, tom2;
 
 		rdmsrl(MSR_K8_SYSCFG, syscfg);
diff --git a/xen/arch/x86/cpu/mwait-idle.c b/xen/arch/x86/cpu/mwait-idle.c
index 5962ec1db9..6776eeb9ac 100644
--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -1637,7 +1637,7 @@ static int __init mwait_idle_probe(void)
 		lapic_timer_reliable_states = LAPIC_TIMER_ALWAYS_RELIABLE;
 
 	pr_debug(PREFIX "v" MWAIT_IDLE_VERSION " model %#x\n",
-		 boot_cpu_data.x86_model);
+		 boot_cpu_data.model);
 
 	pr_debug(PREFIX "lapic_timer_reliable_states %#x\n",
 		 lapic_timer_reliable_states);
@@ -1816,7 +1816,7 @@ bool __init mwait_pc10_supported(void)
 {
 	unsigned int ecx, edx, dummy;
 
-	if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
+	if (boot_cpu_data.vendor != X86_VENDOR_INTEL ||
 	    !cpu_has_monitor ||
 	    boot_cpu_data.cpuid_level < CPUID_MWAIT_LEAF)
 		return false;
diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c
index c28192ea26..470f5ec98d 100644
--- a/xen/arch/x86/cpu/vpmu.c
+++ b/xen/arch/x86/cpu/vpmu.c
@@ -398,7 +398,7 @@ int vpmu_load(struct vcpu *v, bool from_guest)
 static int vpmu_arch_initialise(struct vcpu *v)
 {
     struct vpmu_struct *vpmu = vcpu_vpmu(v);
-    uint8_t vendor = current_cpu_data.x86_vendor;
+    unsigned int vendor = current_cpu_data.vendor;
     int ret;
 
     BUILD_BUG_ON(sizeof(struct xen_pmu_intel_ctxt) > XENPMU_CTXT_PAD_SZ);
@@ -815,7 +815,7 @@ static struct notifier_block cpu_nfb = {
 
 static int __init cf_check vpmu_init(void)
 {
-    int vendor = current_cpu_data.x86_vendor;
+    unsigned int vendor = current_cpu_data.vendor;
     const struct arch_vpmu_ops *ops = NULL;
 
     if ( !opt_vpmu_enabled )
diff --git a/xen/arch/x86/cpu/vpmu_amd.c b/xen/arch/x86/cpu/vpmu_amd.c
index d1f6bd5495..943a0f4ebe 100644
--- a/xen/arch/x86/cpu/vpmu_amd.c
+++ b/xen/arch/x86/cpu/vpmu_amd.c
@@ -532,7 +532,7 @@ static const struct arch_vpmu_ops *__init common_init(void)
     if ( !num_counters )
     {
         printk(XENLOG_WARNING "VPMU: Unsupported CPU family %#x\n",
-               current_cpu_data.x86);
+               current_cpu_data.family);
         return ERR_PTR(-EINVAL);
     }
 
@@ -557,7 +557,7 @@ static const struct arch_vpmu_ops *__init common_init(void)
 
 const struct arch_vpmu_ops *__init amd_vpmu_init(void)
 {
-    switch ( current_cpu_data.x86 )
+    switch ( current_cpu_data.family )
     {
     case 0x15:
     case 0x17:
@@ -585,7 +585,7 @@ const struct arch_vpmu_ops *__init amd_vpmu_init(void)
 
 const struct arch_vpmu_ops *__init hygon_vpmu_init(void)
 {
-    switch ( current_cpu_data.x86 )
+    switch ( current_cpu_data.family )
     {
     case 0x18:
         num_counters = F15H_NUM_COUNTERS;
diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c
index 1e3b06ef8e..ed9f62b936 100644
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -917,7 +917,7 @@ const struct arch_vpmu_ops *__init core2_vpmu_init(void)
         return ERR_PTR(-EINVAL);
     }
 
-    if ( current_cpu_data.x86 != 6 )
+    if ( current_cpu_data.family != 6 )
     {
         printk(XENLOG_WARNING "VPMU: only family 6 is supported\n");
         return ERR_PTR(-EINVAL);
@@ -958,7 +958,7 @@ const struct arch_vpmu_ops *__init core2_vpmu_init(void)
               sizeof(struct xen_pmu_cntr_pair) * arch_pmc_cnt;
 
     /* TODO: It's clearly incorrect for this to quirk all Intel Fam6 CPUs. */
-    pmc_quirk = current_cpu_data.x86 == 6;
+    pmc_quirk = current_cpu_data.family == 6;
 
     if ( sizeof(struct xen_pmu_data) + sizeof(uint64_t) * fixed_pmc_cnt +
          sizeof(struct xen_pmu_cntr_pair) * arch_pmc_cnt > PAGE_SIZE )
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 20:44:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 20:44:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253014.1549451 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0mtJ-0008Dn-B1; Thu, 12 Mar 2026 20:44:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253014.1549451; Thu, 12 Mar 2026 20:44:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0mtJ-0008Dg-85; Thu, 12 Mar 2026 20:44:21 +0000
Received: by outflank-mailman (input) for mailman id 1253014;
 Thu, 12 Mar 2026 20:44: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=QBWs=BM=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1w0mtH-0006Bj-9O
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 20:44:19 +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 3d1e406e-1e54-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 21:44:18 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by PH0PR03MB6979.namprd03.prod.outlook.com (2603:10b6:510:169::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Thu, 12 Mar
 2026 20:44:14 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9700.010; Thu, 12 Mar 2026
 20:44:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d1e406e-1e54-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RSye53M99Gu5WnsdM3B1OI2RnrAVDbjQBM2XAJuKdj0yPEnZAtRC251x2PifeQhFjyCpVtQueSIfpppCmzQEVE2OEKCD8mZ595L5KA/dD88+9YmO35KW7PMkXww3C3wv2UVShV8VGTp22OaKbkxHLbY6DQw6OrcNlsaMnog2JwaRREZMORfDhZW/Tl0jkz6lzvr0e75rtHW+huLToV8ao3sNCDVMngbcRw2FyFE1PJMVI2yI+PfyowJ8g2rCZlcmw66xYSHPZSSHddQ+c2H7tvTfldvRzO3SE/bGMxkxInF6MIkPLzwnwWUaLt0sb4E4vg6S/Yz5gAzzLg/So5HBHA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7fJg8okjUbsXwQL72YI3Ef64Z5xJVF476Y9inw/GDl0=;
 b=Lc5qX6Y6lasGmrf3EWGg4V6TUPWIqtvOie1MkT1bA+tPc88WJkn2w38Nbvd4YkHtUS03QCWwG2YhjSPaSZpuWC2cK1XS0AWPEFag2ijYWXwORU3LcCcP0pkm0GciB9BmB9XIPJgACbx/+SFoJTN92CYpxSH8tcix56pXk4kxSzTP6SQQOmgK3SS8uqVuaL1NatVCTzCKA3c3DgsqFTwHEUtje4dKjdxezUWR4orLZRTu3TKfwtghKLykdk8SLNoiJ/wHLscr0CF2u3cw28sQ1fT7W1QV6NhcAmIMlMez1TWFnu0hdfgW1l5yCAPzbM7+VLxjj1OeRRlsGXKFrt6/Qw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7fJg8okjUbsXwQL72YI3Ef64Z5xJVF476Y9inw/GDl0=;
 b=WtesFeQHiuzyP7YxDH0KEMVZ91VHup9b0yH8Uwizy1ZaaROxOlSGCcuN+ze04VAtVcs256Ias7nlQ4qOBqGBZQBIE8dx9zSuSBnWV1+S6bNGc9MYHRtZH1hzyEKRPbJXvNOxG/sxNphUFRlhsxdw7TF4iXI8+h/qfJKKreLpiJg=
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 v v2 6/7] x86: Remove x86 prefixed names from cpuinfo
Date: Thu, 12 Mar 2026 20:43:38 +0000
Message-ID: <20260312204339.740403-7-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20260312204339.740403-1-kevin.lampis@citrix.com>
References: <20260312204339.740403-1-kevin.lampis@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0386.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18f::13) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|PH0PR03MB6979:EE_
X-MS-Office365-Filtering-Correlation-Id: 86638b2c-b4c2-49e1-fdeb-08de80781f79
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	FO136Cpi/WbXf8rWWQgutBD8IZFx9Zl1Tl0mg/d8NrBGINexHnUFtPfeA1HnkG2cDVZGkYS2w13eobL22gONpRtZZM+lL5YWaFCgHX6BTePhv0gKzdW7eCvJyZcNpGUGE/hMX9/4Sb5FGfOIlc6B8E7VHMHCHqDxEIqD5NTaHF1KfPa2/W9jwYM5Z3MgBDJOGXkoLLpCZxr64KaapIs151sRJ+ILuneD637uj4/ivzfrrJlKWpoNB0uEjH9MafY7m4xeIccaSVcyNTm3EFaSME4YWtMCcr/IxntkzJHq1jxiaPBxaY4MrEnoIHJTGuZNsGt2722wrJO8bovPDSBPngAsTBodCy6IPRb4CvopOnnzqtbBPkxYbtUMIi068LoZISPeK25qgKxAolHVwtPuTDMVXCO5zK4sjRUyHlwRNMvgrlBjqJafLE4uopCScGechYP/hscqrOGdZ27IWRsDVN3YGnYADLRWQUEQTzOaT5V+kVAPE6364dwd66FS6gZshshAF8lONJswwSLXb4vFhG7FuRgWMxB3hpfZPTy90+bxkFn/XeDp8MLREvutVDzipiqfZxrGfVB+PsVsxh4stEbH0zf6KsUI3AX2DEn28/skNO+KOgmOi41CkBwahgPMbf0Em2beAnXyQenUVVPffiGc691SMqcWUVVGSHaZFBe+2mHf2/07EsEr2W2FzWR37Qf3YAQMwzIvl/uV7TF0bznFyuMGJRe8n0ZxpMTg3TY=
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)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?x9o2mq9G8OfQ3daj75c1gkpr6hawwAECZI96DQL9pYyIvDsSNf/V8ZtTJLsE?=
 =?us-ascii?Q?XhbrrNFm/LGhpWbhqYwMFEXoIZxLaU2adeNnzaQ49UqSKB7U+ylwY4Xuy1vU?=
 =?us-ascii?Q?EDkN9bUZga0EN5C+r3Zi9mroQwB9/0BrFiJjBGdRu2KYNWIviqZzSdzHnBYn?=
 =?us-ascii?Q?/+0PyfsMzqCvE7tOJruGf7wZ9QBHnUgkfy3QQHX5GCSy8+sRF5XW2ZLGn0KT?=
 =?us-ascii?Q?j9mPbbhOu4raBeHzqv6uv5C8oJaNLroiUizdIDqe8PSTGjLd2f+uhSxO4lVL?=
 =?us-ascii?Q?QnzMDM8VsxnsPk373jADclT7Z0o03kW/4EEnX5StfsCg5quyEymRYCKMMEXt?=
 =?us-ascii?Q?xmMLF6xB4Cl/tWFoUIkDrrxMskiDLDjUIrZ6K+zdXgf8w8s0XW8JxIXteguZ?=
 =?us-ascii?Q?k0Xatiiw+rncqqrbTWyeAN5hUhrm1MuPM3N4ZWp+GvMUHrE4NyhFnj6LxLdM?=
 =?us-ascii?Q?5ka75LqLNp/PsrUnQPUoHSk5sxOnwTIBHdPd41vBaIheHT8X9Ysea6FIolUK?=
 =?us-ascii?Q?rTnknwiYTbfDFDMzvWIsQjPAlv1EOxTn1P+/RRMfefe5ey0KmFqdVjVC+37n?=
 =?us-ascii?Q?eCYnOZvxnFjOP+3QTwACFSczxO67AxALR0OToG2NjmDWxUEjmbqPA5IB8SXp?=
 =?us-ascii?Q?wyhr63Lu7QZxJ+TqPJNCNC6WQ/Howb4Dm87e91IKH/edzL8J2mfmZRE3MG+O?=
 =?us-ascii?Q?r257g7bWwktd40ad0dJ8ytKMtncuaDsr5+vHduS1YoOg/uUXXDBnHir9UCQa?=
 =?us-ascii?Q?H/+cZrCxH4ywo4ChJdLRItD9dnjA7E/5AQx9JnljWxKbzAlwz8yyRIDl+I5w?=
 =?us-ascii?Q?nMR4m+AyFRyMaM4ZN1C19tp5FUuZ/ra+0JC2+l5ubP1vW4ybhzJ/BB3EVJCd?=
 =?us-ascii?Q?EaE7292zA7lK1GxkIH5xSSXWvTFGSAmvqkqM5un1a0Xm3g41k8mntSeFueEt?=
 =?us-ascii?Q?6DK8eACq74FJwMp+7fiQuLJ4eOcAusgyCDj58tA+aisrMe6ZxwruhWFpIRfS?=
 =?us-ascii?Q?o6yT5Qf/hpuR0DPxEfGaxjRr3SvabZmkHn0khDKZVoxwX4TXPOKL1WZ7Vqd8?=
 =?us-ascii?Q?89mhCgltkT+4Ttk2sh37JZCcxif/dN3LhaBN/Nw9YYRksesfI/tyHtE9z1Td?=
 =?us-ascii?Q?r/yEQmaXQxsDTGyPHlehaozf07XPdUqQXH9Ydskpu2t0Cz3SbJA7e5pdmDpy?=
 =?us-ascii?Q?r0lpdBoMPgY2kAzP/XomkQhuoSvxnF42N+aod0dPhQMY5WInoF4eytc/621x?=
 =?us-ascii?Q?dozFQQP0HubKfk+jiWaWY0V5DSBA1v9uz9KUJgBL+mXuOvezmFgmu2AZ3EUk?=
 =?us-ascii?Q?N6P/Wq4xCcKGSeddhFz7nmuKqghVRp4AGRGUH6DB7yem235aSQ8JzNs1+Qt7?=
 =?us-ascii?Q?1EdSUfp9kTEtgH/oMrfVqLzRSQfDQh7eLo9jQqAkkNPQd5kH7fa1iPED70ru?=
 =?us-ascii?Q?rdu/EiFCvha7ve97gAlTeKpX7sw+IV1M+1zOR7/qPry5x+p5qO30cY/7dFQZ?=
 =?us-ascii?Q?4fTvfZ2lXdCAIBNL1cEJyQ5WZuGpjRJb23ndt4bUdK40bZj8T4RPp26JqFv6?=
 =?us-ascii?Q?UMj1th67Zn1D9t/4q4Va6FfyW6NC27vI66b15YUaUKyuGwOaerEmOCnW7rwB?=
 =?us-ascii?Q?Cc32XVgXi7mQl6l48/m7Mky2kMNHA48cyoko3iDeENnh1xppxZIWiSMV6kC/?=
 =?us-ascii?Q?yjHVhrQPejbxWykhzUUIpdqRTXZ+O44h91PuZ1N8aNbUzdOlXHhhqZ3IGIdY?=
 =?us-ascii?Q?i9sDf0wmSw=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 86638b2c-b4c2-49e1-fdeb-08de80781f79
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:44:14.6724
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Hq/BR2iWmf7kSh4xtWDbUlJfSmj1UI6BALpCU7FiyY/l6264P7hM0Blv0Z9z8m4UQZ8eEUN+ffIWvRXogFFAmQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6979

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
Changes in v2:
- Remove the unneeded unions
---
 xen/arch/x86/include/asm/cpufeature.h | 21 ++++-----------------
 1 file changed, 4 insertions(+), 17 deletions(-)

diff --git a/xen/arch/x86/include/asm/cpufeature.h b/xen/arch/x86/include/asm/cpufeature.h
index dcd223d84f..11661a114f 100644
--- a/xen/arch/x86/include/asm/cpufeature.h
+++ b/xen/arch/x86/include/asm/cpufeature.h
@@ -43,29 +43,16 @@
 #ifndef __ASSEMBLER__
 
 struct cpuinfo_x86 {
-    /* TODO: Phase out the x86 prefixed names. */
     union {
         struct {
-            union {
-                uint8_t x86_model;
-                uint8_t model;
-            };
-            union {
-                uint8_t x86;
-                uint8_t family;
-            };
-            union {
-                uint8_t x86_vendor;
-                uint8_t vendor;
-            };
+            uint8_t model;
+            uint8_t family;
+            uint8_t vendor;
             uint8_t _rsvd;             /* Use of this needs coordinating with VFM_MAKE() */
         };
         uint32_t vfm;                  /* Vendor Family Model */
     };
-    union {
-        uint8_t x86_mask;
-        uint8_t stepping;
-    };
+    uint8_t stepping;
 
     unsigned int cpuid_level;          /* Maximum supported CPUID level */
     unsigned int extended_cpuid_level; /* Maximum supported CPUID extended level */
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 20:47:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 20:47:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253046.1549460 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0mwH-0001RJ-Sx; Thu, 12 Mar 2026 20:47:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253046.1549460; Thu, 12 Mar 2026 20:47:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0mwH-0001RC-PT; Thu, 12 Mar 2026 20:47:25 +0000
Received: by outflank-mailman (input) for mailman id 1253046;
 Thu, 12 Mar 2026 20:47: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=QBWs=BM=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1w0mtJ-0006Bj-Ri
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 20:44:21 +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 3ebe399f-1e54-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 21:44:21 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by PH0PR03MB6979.namprd03.prod.outlook.com (2603:10b6:510:169::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Thu, 12 Mar
 2026 20:44:18 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9700.010; Thu, 12 Mar 2026
 20:44: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: 3ebe399f-1e54-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Jm1T4zb/POnqnOUD0H0yjBgtkrb0ewgECKYD5Ctn7e+ioCVZgij/DaEp97a0ikN/zCmdpFAgtkZTWALB6imv1aOlbZ5BS2h2zbZCeQxmket5qwwWFE8TwyyjhFW1jX+5QztFSWkgXJMdDpSVVlevVcIS/zHETDEKB4Dz3OWp3H9xbHwzDufNwt3ZY4iOTRHH+yhcerYmSwOleQwddRRXx17a3+V0oz7pLybq3p5Ws81YHYtmL8o0ZYyHk7JH6HdpFrF2YXmpwtp6RJ/NhYpBQ9Sa9zvOk59fbpWhPlc5C6I0cf8zO71JLg0L2iWJfGvIHIYUBBQrJ4sXPunqo765IQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pkexYGptCHbgLndtPlhEQnAVvgf8/mTkKb/te38N9IQ=;
 b=gFAxtI7kWRhoLvKn69JokvtWXRdTugfINxrGGYZo1EbIO1ZOiO6MviNYoOTELLNKdTWpsnQLhZXyglnFPEx7LIuufuO0Ypsd2LaZf8DdlzmSAqNV0NLkVGEHGITloyYPdpMBhwUqr7uU0gJmOgiqO2gNgEwQ4zDgbEacaTj2tDAtkmc1BexP6OK5gKprSqJvgv33n4PB3yYSYwtQjyKDFg4obtwywLsZfcZg87rMNRuq3IaNcigiJ/nFfIwodvbyXKtrEFBBZJb4j7yCQwpENuw4jLynaK1c/8TUKLfNwWJvT7r99rGu4mGhbNUtWnQTv3i4VqztRHMnOXTKZtE6lQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pkexYGptCHbgLndtPlhEQnAVvgf8/mTkKb/te38N9IQ=;
 b=aaYnpm4hx66R4qehByBCcYn786JTN71LoB7QkiFaXTLo0LjfeLHe3G7nxU8oPmCC55FzAmOreO8zW+As75+KtvN7tO4GLClj7MUY6Dwe+lYIsGjGwkytKeIZ2lUfH/H4/Csd5iFJPyHOOUF1FCQDsD2vZ9MgRNBYdEnzvLBKgew=
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 v v2 7/7] x86: relax some CPU checks for non-64 bit CPUs
Date: Thu, 12 Mar 2026 20:43:39 +0000
Message-ID: <20260312204339.740403-8-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20260312204339.740403-1-kevin.lampis@citrix.com>
References: <20260312204339.740403-1-kevin.lampis@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0397.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:189::6) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|PH0PR03MB6979:EE_
X-MS-Office365-Filtering-Correlation-Id: 336731d1-0c8c-4079-c365-08de807821e7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	VYU0VFfgG1ayuXg3aofDvX0H0O8tsINDkbSa9GsFzFLtRLlUEOSLDtCud4vnHaijCec8eeXU1iDOdAPFrkyOah9QdPoYCePtzjGi72DZVQJAQsto0tO2hsxwJHrbHz++WL3BY5D8RhL6ckYkHyZJCYip1Yl9oLEi+D1YxBGgU9ted0o6641kFTw3P7+TflCnZU/v7ZJ2ZRRs8k5ZUr8cBWYfjQKMax74NUYoV2l8ANORHrvMto4Ejb1ueLGWNwa/7CQy+ceswl6SMB0YjOBaKMlB1Ns6NhN1xP/3YaKLZEASR6R3dG98Gi7vVqUIGaiWSBcDX2NsNGTpZi4mLllb8woNkIi99KmI7EhuSmRjpg5fYWCwogFjU9T8aiikAtt1Vh9KfbTjWUBabmCMy11tx7WGDxeHDqVI551Q6sxVYH3w0UCR9jA9V/n56bGi54q2npScYWxyN/K9UFZ3SaCkn4jhnhL+yIsIgPi6xsrweQ85FHj1g4rGd0EkaeqBSlmQx5GnV0PJKyzuts5md0MsXYLkCKGtNCU1YXh+peDIDUxNhPQhLROo/w578TaZ1qos9Ejsb18eMUk5Z2QBKkGh1b+DmUh7xOtdBAztfDu2n+dRnk4/SAe635sHlHWq06lARp6jFX4TGZRRnOUHEOEbYhhtNYOT527fKxPkpvuCJF4Wj+A5jw63V7cYfmD4Q6yYPWm28kucF9sSg19qGVWQ6tRp9qPekhnUvzrr50MUjJc=
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)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?r2NY/es+XDL5AP9usvG06HXvhNHipNGL+bwqxPTWFKOFSDteNWwx+LBDOn9S?=
 =?us-ascii?Q?4QSH1n0Ii4KLb8PwvyV37lzui+jGuO8RyBdLpKxDVGyb3vc5T3LYUTLpU3oY?=
 =?us-ascii?Q?l8C9KSby4vujArD8o1TwyhJFiqCTf+KqOwGnz2Kx+bRQhojpWCMSGtHcj7uf?=
 =?us-ascii?Q?ZZBwaL4tuej1nJHe8MtpeaIrTFAHo+cYfByoXPHunlvTnGKUzN8mvgB0qnq/?=
 =?us-ascii?Q?GZfCGGsZ3sIkKVT+5oiHkMdSIrLOkyUR3cN/RlMjQOQGLWWrziou6XI7T7Y5?=
 =?us-ascii?Q?KAN8rJmbNlUwYbyXxfJXDYYfGjAfsjwOPL3AshCAqitQu1o87Q5tK52UBI6L?=
 =?us-ascii?Q?ZYEhZ9YjKV2mL54C3lC4BXNRSsvk2Lbr0YVX16++2/1KwIw64Z5dVOmQcWTO?=
 =?us-ascii?Q?8VpRd7sqIicVXHqmcjhvBrGooqINidGk8FESJjJ8mRhrcxYu4sMhnpONME3j?=
 =?us-ascii?Q?W4RlvT5rMWPE1wkFzZNtDwZuCJZb0cCZrCGpG0TtIshgcr+JSXIUnoaIiTMW?=
 =?us-ascii?Q?3tzNQcb79jkViBnMrkVjGyKnfz+/IjN70GyJagtm+yOVbVdH/lLvlrZUNjsQ?=
 =?us-ascii?Q?Nxw1GudgsIJhy2sT0+7YeeNnB0husr9IPHbF/2wxaO5XqVR/i2n0mNOQ6MmL?=
 =?us-ascii?Q?3ZeYPwkR+2Fg/xyIPd2yXaoQE/79pSVjq9MbCdH6u07kiSHemUZXOsw8H+xo?=
 =?us-ascii?Q?BDSEyrY+nG6RaWNnlM1BlQCRT7fsPENfbY/e1H7A7eX67TFnuV2TTz5shqVq?=
 =?us-ascii?Q?icvTGtkQZ2vAncWfSOx4R4nYn3FF85NkpF34g9Rm8K6qUMAE/Wkj0GYTsbmP?=
 =?us-ascii?Q?GJDZJWGv8ffGcEV5HoFL1Y5C6/4Q3h8LWwPUd56zQ4AiMtbRbWasmZtZHv05?=
 =?us-ascii?Q?NugN8FPs6Zc/Lnk2eOl8vAdPBPcwHHi9uQwp5/NpAp3jrEBIMCL8NF9BCBEU?=
 =?us-ascii?Q?EU01YmPaIdmS2ZJv+yX2DZzu1lc5HkGPTyDDGBgzy42Lij6Ze06Pu3ijLXYN?=
 =?us-ascii?Q?D4BGSZ79EO0ZNAw6NjiOu4fpI01kMMGvC3r1ZSkdPDOEKDMnLBsBEKbPpyJW?=
 =?us-ascii?Q?oNQqDeGxB3QqxNFhLcpZwsvTxEoMztJa0ch3ujqdCwtCE0nov2D5tq4pSjaK?=
 =?us-ascii?Q?iWYAJPXzDcZAHy8XnoCb/H48HJzQ4nb/LqiNi9bolBqRlfdIUcdXPOKra1yc?=
 =?us-ascii?Q?ze5pUNo0FFQg4Vhc5+vgG3d/d+wN2UpH8JRooO3NIBRJtFxVXhURfJ3rEyOp?=
 =?us-ascii?Q?LFATrIUOeKpgiANQtTH97jurovwFu/63NdWKbc18xP2x+9iUKB2fV4ysMi73?=
 =?us-ascii?Q?5fEU2Eeo/b0ajgnOUUs6NtF3ZASNa2TYZB8sIwDXjtwa+mD/rs5J0Lj64gfC?=
 =?us-ascii?Q?IJP6n4+Hwrw8y7ZQEtmWvdXiUS9ZJOqSE6lbc4mZEb7DjWAw+5JKZ7b90LpD?=
 =?us-ascii?Q?Fz/sxC6f8I9c5Nr0FsJj4gxGzZpHQKJQkV0nKvn18sH2OoYOszfyB+ydC7aR?=
 =?us-ascii?Q?zjdEOSn3ncdVSjx/RBXcMPexGiVpa2g+rr1SORohJS6EA0mHjKuxWrb5UAyf?=
 =?us-ascii?Q?GR8eteV/gr1kJKM6Bmh5J+Ssfu3bImvWnRB92Up7Y6hrVdpcBwDO5MWDA7UN?=
 =?us-ascii?Q?PktziG1jrVKeMGyLwfALg9dZ6bI/89tonvJEfjMyTSidRxUVCNhoUJq3YANX?=
 =?us-ascii?Q?UsI99jlsG7bSu2P4q/g2kpKonF2rJ5EfJHfklklrQaNPDzUkS0GnnKdhNyEO?=
 =?us-ascii?Q?LLco3ENkgA=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 336731d1-0c8c-4079-c365-08de807821e7
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:44:18.7532
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: k/TJmI2lvtRfRZ9fkGCWh7cB7QO+E5xeFwXDD0JMMN7uzvH5UruxqOQVmYXk0lTgLYfJ8hgm1DNWR1wwWTt/eA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6979

These old non-64 bit CPU models are not supported by Xen anymore so the
checks are no longer needed.

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
Changes in v2:
- New patch based on review comments
---
 xen/arch/x86/acpi/cpu_idle.c    | 2 +-
 xen/arch/x86/cpu/mcheck/mce.c   | 8 +-------
 xen/arch/x86/cpu/mtrr/generic.c | 3 +--
 3 files changed, 3 insertions(+), 10 deletions(-)

diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
index 6622965ace..640935c40c 100644
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -1059,7 +1059,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->vendor == X86_VENDOR_INTEL && c->vfm >= INTEL_CORE_YONAH )
+    if ( c->vendor == X86_VENDOR_INTEL )
             flags->bm_control = 0;
 }
 
diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
index 8a41116aa4..9f45ca5be1 100644
--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -777,13 +777,7 @@ void mcheck_init(struct cpuinfo_x86 *c, bool bsp)
 
 #ifdef CONFIG_INTEL
     case X86_VENDOR_INTEL:
-        switch ( c->family )
-        {
-        case 6:
-        case 15:
-            inited = intel_mcheck_init(c, bsp);
-            break;
-        }
+        inited = intel_mcheck_init(c, bsp);
         break;
 #endif
 
diff --git a/xen/arch/x86/cpu/mtrr/generic.c b/xen/arch/x86/cpu/mtrr/generic.c
index 190be7f1b4..23c279eb9a 100644
--- a/xen/arch/x86/cpu/mtrr/generic.c
+++ b/xen/arch/x86/cpu/mtrr/generic.c
@@ -218,8 +218,7 @@ static void __init print_mtrr_state(const char *level)
 			printk("%s  %u disabled\n", level, i);
 	}
 
-	if ((boot_cpu_data.vendor == X86_VENDOR_AMD &&
-	     boot_cpu_data.family >= 0xf) ||
+	if (boot_cpu_data.vendor == X86_VENDOR_AMD ||
 	     boot_cpu_data.vendor == X86_VENDOR_HYGON) {
 		uint64_t syscfg, tom2;
 
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 12 21:01:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Mar 2026 21:01:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253078.1549468 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0n9j-0004lT-6Q; Thu, 12 Mar 2026 21:01:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253078.1549468; Thu, 12 Mar 2026 21:01: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 1w0n9j-0004lM-2s; Thu, 12 Mar 2026 21:01:19 +0000
Received: by outflank-mailman (input) for mailman id 1253078;
 Thu, 12 Mar 2026 21:01: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=cgz6=BM=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w0n9h-0004jg-O6
 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2026 21:01:17 +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 9c361664-1e56-11f1-b164-2bf370ae4941;
 Thu, 12 Mar 2026 22:01:17 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB5879.namprd03.prod.outlook.com (2603:10b6:510:35::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.14; Thu, 12 Mar
 2026 21:01:03 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9700.013; Thu, 12 Mar 2026
 21:01: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: 9c361664-1e56-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HQi54E4rNaAlR9LFArbSco/aTdj+hlGGnWa2pnBOQvXA/eLr5E2eWZMG2JgizIUgc/lpQZSWr1I0G79+2+ylekk+9XCUCNyT4b0a2c7GD9ZNLPqmNEm4SAwNs2p5tWyn1sV0qZ1NTuqyzH6rlwDKwV95NQ1jAbgUHykQ4C8W4XcSg8R42qrqpQ4uh8A9D4MMS85SnejRvk0E+NGwQL+GNS18xHYAMx2qUnTlin73jZPAQLeKF6t7eqjrhl7+b3RxD9Q/QDlRPp/QolGOG9CWKalE+RTgaDrEAMIHkEIutvGT0kqR36bciHAwpCJR8xlRS2DRoEAMHfVGdLmN5uKYUg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gfT1ETw5Og2ImKkH6+AgTkKWLROrF18UPYPwKSrpohQ=;
 b=Lzo+2olsIBcIWmQFNw4odbf0S5p0MiJ1c2TmU6RmoiuUCoX8zUgMrvlbs2dBDe4aBnIo+72tHxXAnxv4SUyLgN3+Fej9Bw7quOiRGmwoNS4Y4nZaKKNCO0O4ElqyN7ulVUOlmP7Ac7bvYS9jgS1o9VuzNiXii2zsK0aXNb+PbWWEZE8kgAZgLrvF47JwYa+0F2FlHfoeNN4UjBVrHaQ8K2HZxxkXReDFEgvE44inuR6S+D+kF5qb5qREwf/11y9obhrt57UMfiufvHYhBRBJWPW1iWHnYKtP01kHgCgqyeuo1Fwkb38O9+mrqxelx0R6nWx7kRVnoKztJj3viz0XoQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gfT1ETw5Og2ImKkH6+AgTkKWLROrF18UPYPwKSrpohQ=;
 b=iGsXMIih8WtuDsWX3MaRvdUV3dd/LaGX/u3zE5j0vr7qjWSz8QTf5MbEFNy8B9SM5/WxO+e3vzZ+XnyilZkzNNlJ8ZO2IKxcOc9Ae/K75GQW+l1N362RZ2Ilh0No+QMfPZkQGj+P20zZdKahVCpWWw+f8FgSrihyIlMnyZ04smo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <92d21438-9573-45ce-a589-d292d1c31ecf@citrix.com>
Date: Thu, 12 Mar 2026 21:01:08 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH v5 1/5] x86: Reject CPU policies with vendors other than
 the host's
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 xen-devel@lists.xenproject.org
References: <20260312112116.22563-1-alejandro.garciavallejo@amd.com>
 <20260312112116.22563-2-alejandro.garciavallejo@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260312112116.22563-2-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0414.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a0::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_|PH0PR03MB5879:EE_
X-MS-Office365-Filtering-Correlation-Id: 7f28f894-cc0f-4d81-b3a2-08de807a7d23
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|13003099007|18002099003|56012099003|22082099003|7053199007;
X-Microsoft-Antispam-Message-Info:
	xGvqGz1+QxqFUFFkUOBtIuFfDqVZxSs4om5pGBsE4kxyWGoyGCwjWmO9J/AYwVXq9w6kLOj9mGYhBkV1vQhwQ2aQxtQNqTJj8+0hZspjXH5MDwRsO3ZVPzYqEaZ5LHuA8Cj+LWdfLKX0tyWJOO+CSv3DxEpJndB/hCdxdKj8GvObvkHF60CW0ssJHDs20byFE6ooifU3/GcHjr7JthJVGXnzyYuW3VqJSl/yiWLlZQxvQs2sG6uerQRogZu4Vzp7KyasmO0hIBZmqQZtNYn5ePWxkcuzbeRhb3n3maSdXzEMWVAqRU/BdgXWDNG969zMv2o7fkY5jpHY0pch4nCtkkxbAPImM8c0Swq2Hp/w+gbzGTitkbCqOkg33Hlj+iWrQ9meVzNMhjR6nEXZTHh0paF93hTbawAlQYZ5SfIxAYaeS6UuVxe+nkIUnH0F9WfxGgtKzL5YI791bKfUs2CKYHDA/C14FCt7RMOjVldD+ZwC/WbafcoPkKu1QvmXYv8SggmzJXGDjfHZ7BNsm6dV+MU0vhKS0It1B8DRTCtjEo8S30FjnFmrIljHy6EhCJ6t87oNUBNsS/pF56/oHWWhMyobp8OYQah5tnkvNXscyubyC1Dn/YUuuEJqnMtkSx3A5UESJMCNaln7ZYAg/SNxU6QMEt4LG99WSUW/Dt+VN2aiof0uKa4OnaNLZbBVeFFE
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)(13003099007)(18002099003)(56012099003)(22082099003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dFZkc2ZhcU9sRkJKcit5OXlOMG96ZS9FSEJ2SkcrQWEveC9MTjJFU01ESFRV?=
 =?utf-8?B?RFA4RUtNYVN0ek9uenpaVHFUelo5Z3lvY1N1cElDTmV5cEYvM2lMek9BU2t6?=
 =?utf-8?B?cVZyTnBCV1JmQ3pnSG85V1JOeXIwWHh5aFZTUERoYmpxSHErL1FNc09NZjc0?=
 =?utf-8?B?aWpSblprRzNKNUlQYUlmdzh6dVFNNWszRzZPSXY1dU1RbVhWaEJodmRwK1Jh?=
 =?utf-8?B?Z2NGMkJsVWhqUEJ2TlM1bHVkSFlnU2FDaU9NNENqL1dwb0U2OTd1a1g5Wkx4?=
 =?utf-8?B?cWsxQkFOWkJUZ1k0UThCY2hPMHZ3MHVTWlU1MVFUQWFoYW9RSlg1UDNhRFFY?=
 =?utf-8?B?R2txZEZpdjJXT2gycTkxaDRXOHBKMzBId3o4Y1A3ZFAzQlZFMmR4QTE3NFA1?=
 =?utf-8?B?cFVpczhDSndNY040MU1xdDNQZ01oeXRsWVpyTnk3b0pOUlhPU0t2c3lCY21a?=
 =?utf-8?B?Y3pFL0dXU3FFU0IzN0x3dEFzc3I4dm5vc3NRUmUzVEt6OHIrTFpGcEExVlF2?=
 =?utf-8?B?bkl1T3hjN2pWMWFlVXNSRUFPZ0loSGJJMWppVGh4c0o4T3F1ZVdxeHFlSWxY?=
 =?utf-8?B?emtWdDkrdTlxY0QyT2N0aVhHK3dhZzlmK0h3NXg0Mi96OWNoK1BHVkFPU01n?=
 =?utf-8?B?TnQ5SG9yNzJpaG5Eek1YNXpGd0M5c3I5K1JURDg1ajJodnA0SUZRbWx3b3dI?=
 =?utf-8?B?QXNzNFNKNU1rdkNNNjl0bHpnL0tuczFtaStiWFdWNXRnaGdyWUJOZVlhNHRX?=
 =?utf-8?B?SXBJOXNBRC9UcWZrbUo0bk4yQnp4bGZBMVRBMTFxTVZCZktKcFI1WmlMNnBs?=
 =?utf-8?B?dEVTMnloQS9UYlhZczBzc25jT3VOYmY1YzQzY2NrakdFRFBsUmhPSXRmVFVt?=
 =?utf-8?B?ekdjclAvQzFyZVRUOTg3Z0NENkFFL05mOU9CTTZ3d1BWSmh1eWtxL3RQdkRQ?=
 =?utf-8?B?bEJIckxZTnFxWmVJZFNUTzd1MzFzdVQreE9iSFM5Rjh0Mk1pekIrMG91U1VT?=
 =?utf-8?B?VytvOXRGWXlwRnJjOXpPUC9ZQVlHQS8vU05PWUdVMHZ2L2tpOTRrcVZiWmEz?=
 =?utf-8?B?M2ZuM0FYYWFxNlZESmpQQ1hRQzlDMDJBbWJRVE5sZ0RweExOcXdXZGoxamxL?=
 =?utf-8?B?WTQ5TTdra1hLbnpXYTJWN2dXSktlYXJWcnNUQ2xDVkVGTVRydXJtQjBHNkpU?=
 =?utf-8?B?cXYxaUJnNDJVazk3d3VTVUM2aVp2Mk12OU0wT2F0YkM1OFIwR2lpdWlLNTly?=
 =?utf-8?B?TXQ4VUZueWJoRjZZbnpRcGRiOWJIanhDbnZ5bU1wN0d2VWNUOWJ0SS9MdHY0?=
 =?utf-8?B?V21DdzEvOXM5emJYMnlXU3lna0hISDUrS0ovZzF1eGRjblNCZlRNRy9veUJn?=
 =?utf-8?B?eTFtNUtSeCtjdUluSVl2emF4bUhGVndORTVJdG1pZ094T2MzaThTdkhFRFNI?=
 =?utf-8?B?SFVhRFAyQ081ZFhEb0tqYlBaQ1dOUHRHNWdLamtaOTNTUmFHVXRmZDNoaVBt?=
 =?utf-8?B?cDdJcTVQZ3Z3VWk5VXZVak53ZDBnT2w5eXRsdWcvRmdjaW9HZ1pwQkpYaVZn?=
 =?utf-8?B?WGphUWJMTlFKeDR1MlUxZTdHU0NaYzVSa3orTGVVeVZINUlheW1hU01Eb0py?=
 =?utf-8?B?dHZjZ0hhaHNmZmtvUzdpbUQwS2lwYnJUUkF1bm5MN1JmV3JwR0Ztckk5V2pT?=
 =?utf-8?B?empoRWtQTkhZSFdBTkNyN1F1UjIrNTFlcVZPeGh2RGgzSWFNSHhvOXg4MVlh?=
 =?utf-8?B?eCtGOUltQjM0eFhOWXpYOWhFNjZpTUNyR3RIb0xLVGQ3R2ZFWnJ3Mjk1U3Vh?=
 =?utf-8?B?Zi8xUGZ6anN1ZUd6RTZzRmxvaDhMNGFTWm4vaHk3NmQ1SlNmMERNQ3pQaisv?=
 =?utf-8?B?VnlpRHRVQzZXeTZEaUU2dnZmSzY2UHVodkdDMWU5M01rT256RTYrVDU3c0Y0?=
 =?utf-8?B?WitJVzVMTE5Xd2tRNWVPM0JZc242UmdIZmkxME9RNjNjTGRWVGJKU2wzMGha?=
 =?utf-8?B?K05TK2tiWkNGVEcvZnZ1Y0R5TkQ3MTVpNTJORUp2WkVtcGFPK1hLYzNVV0hz?=
 =?utf-8?B?d0lRZ3E3dDM1OU1qVVJtN2FZeVovLzhqcUY5eGsrQWs2NjhzdFFQaE1EaE16?=
 =?utf-8?B?SDlqZlpLZzRoV1hPenFLVi9WYjNTQkUzWmowU2cxRWZGQk9GV2p3ZDRHbEI0?=
 =?utf-8?B?eW93bWhNUDRQdWVGZlFnT2J1ZFFIK1dITm56Tm1EUTdOUERZcDQzaWR6Wjd5?=
 =?utf-8?B?MWZ0ZDh3LzQrY3RjQzJ4Qm5JSllWRWtIa2dJQUFrOXhLVEFZazVxMDJBWDFw?=
 =?utf-8?B?dkVMbTJURzhRMVQ5TUh0QlkrV2RFRGtBZFhDVkFFYmttcXdLeWgvci9NNEJ2?=
 =?utf-8?Q?u9f+cQZshqPpiaVM=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7f28f894-cc0f-4d81-b3a2-08de807a7d23
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 21:01:10.7771
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Lo1lkd9v9wRrf6D28LphEsbXKtG2dSreA2pAuSVmGR1qn7xLKU3XJhAe4pT5aNCo0APOkATA9k7AgZbiRZ4leKOJPW1yasOulE9CHgTXWZM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB5879

On 12/03/2026 11:21 am, Alejandro Vallejo wrote:
> While in principle it's possible to have a vendor virtualising another,
> this is fairly tricky in practice and comes with the world's supply of
> security issues.
>
> Reject any CPU policy with vendors not matching the host's.
>
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> ---
>  CHANGELOG.md                             |  5 +++++
>  tools/tests/cpu-policy/test-cpu-policy.c | 27 ++++++++++++++++++++++++
>  xen/arch/x86/lib/cpu-policy/policy.c     |  5 ++++-
>  3 files changed, 36 insertions(+), 1 deletion(-)
>
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index c191e504aba..90ba5da69e4 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -23,6 +23,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>     - Xenoprofile support.  Oprofile themselves removed support for Xen in 2014
>       prior to the version 1.0 release, and there has been no development since
>       before then in Xen.
> +   - Domains can no longer run on a system with CPUs of a vendor different from
> +     the one they were initially launched on. This affects live migrations and
> +     save/restore workflows across mixed-vendor hosts. Cross-vendor emulation
> +     has always been unreliable, but since 2017 with the advent of speculation
> +     security it became unsustainably so.

c/s 0f1cb96e9785294f149ab3c7feb90c0eb9daeede was when it got added to Xen.

I'm certain there's a whitepaper somewhere from AMD about this, but I
can't locate it.  It was partly marketing about how you could buy AMD
hardware (which was cheaper) and live-migrate your Intel VMs without
interruption.  It would have been nice to find for posterity.

For the changelog, can I suggest this:

diff --git a/CHANGELOG.md b/CHANGELOG.md
index c191e504aba9..377711d40953 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -23,6 +23,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    - Xenoprofile support.  Oprofile themselves removed support for Xen in 2014
      prior to the version 1.0 release, and there has been no development since
      before then in Xen.
+   - Cross-vendor support; guests can now only be configured as the same
+     vendor as the host CPU.  When added back in 2009, with enough trickery
+     Intel and AMD CPUs could be made to be compatible enough to live migrate
+     a guest, but the vendors have been diverging since then in ways that Xen
+     cannot compensate for, and the advent of speculative security issues has
+     put to rest any possibility of this being a viable option.
 
  - Removed xenpm tool on non-x86 platforms as it doesn't actually provide
    anything useful outside of x86.


which is closer to the style of the surrounding bullet points.  Also
s/domain/guest/ which is a subtle but important distinction made by the
Security Team when discussing configurations.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Mar 13 00:01:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 00:01:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253142.1549478 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0py3-0001P8-7s; Fri, 13 Mar 2026 00:01:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253142.1549478; Fri, 13 Mar 2026 00: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 1w0py3-0001P0-3A; Fri, 13 Mar 2026 00:01:27 +0000
Received: by outflank-mailman (input) for mailman id 1253142;
 Fri, 13 Mar 2026 00:01: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=N2jY=BN=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w0py0-0001Os-Ti
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 00:01:25 +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 c2bd3660-1e6f-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 01:01:19 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA2PR03MB5689.namprd03.prod.outlook.com (2603:10b6:806:119::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.15; Fri, 13 Mar
 2026 00:01:11 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9700.013; Fri, 13 Mar 2026
 00:01:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c2bd3660-1e6f-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DAundYrdPnch3CbjKMhGVBb6DoymJKFWvqYtNobuYsvtXsgcwBU+WscgprqvmeciYzFYZanr96oH9YgnV3cpAjNltP6t77Nq2jERQTcS/p7rfhzFIlUDPapclnixb84gxUw0kXrp66un0VPXfRfp+g3RfhHBI6eQBxV6xWYZSVbKXz1qDcs+F2Kt717gNre/SRsKLCJd+u3PQJdbRD31Ahkq4ulKahZ32jsUUf7vluq/aRU5vDGSoMX5cVIhfAnqyESFrqpE77/PdFS4MhyyFQrv1X0YiNRWaSQ7XXueI7QUq9igK2AD3EcIDjicsbeY5Tdl4n1+hatk1ZShKhQAgA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cWYMl+9F6/FUqWqvRpyhGOMiN+6iTBhV64lLKmpc+zk=;
 b=SeMittNCBlhvYUSjFuhYCNpjL4A8KwkmAe1O31nFOzGLzdETGJkiSf/gKgU71Eobr2fRHsdsqNLHTcvGnw5g//lWstzOrpHvr9ZZ2w5Wq2T+L85p3G20UiQBiDWA6I7yknO37bgjkRJz082mbUnnNcc1drSZA1EEEpDymzFbj8YUovYYYndTggXjXnPQCWUXMSnnS3ZNPKNMnMx3W1/zaIvq9OB/GGCRji8I9NkafHPSBK4otOnORE1665uRzfwrYiw57XYhspXrR/PBgoXPWDX2vTcVR0XU6ZPUR5QsfpT0bfdCmpKI/D9BzMGSMc0O8vOyaKIY1LHHcK1M8RBCZA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cWYMl+9F6/FUqWqvRpyhGOMiN+6iTBhV64lLKmpc+zk=;
 b=GwvYFycnC4ztIpTDlcWVdgxmP7bdhEYK3moDp7HpDEFLnjk5trjZvub4guyLsgdmkow25w/qfLhDX1p5S0vm8ANex3Bt2z07y4Wx+7ZeHPuILZ/AsdUiCqnEQ9q161wdTB0o7jR1UcKDuWAzpRWa48ccPciuh81Bsra8zfYZKaM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <abbcce95-836f-4a06-a250-4480061ac3cf@citrix.com>
Date: Fri, 13 Mar 2026 00:01:11 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, jbeulich@suse.com,
 roger.pau@citrix.com
Subject: Re: [PATCH v v2 1/7] x86: Remove x86 prefixed names from mcheck code
To: Kevin Lampis <kevin.lampis@citrix.com>, xen-devel@lists.xenproject.org
References: <20260312204339.740403-1-kevin.lampis@citrix.com>
 <20260312204339.740403-2-kevin.lampis@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260312204339.740403-2-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: PA7P264CA0173.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:36f::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_|SA2PR03MB5689:EE_
X-MS-Office365-Filtering-Correlation-Id: 5f0c5898-8097-46de-37ef-08de8093a456
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	c2r0ieh9aVtrnYKRP2fp+uxa7V4mL41k53gYxuD3UxSZ4r8WKzJUAWHqTvz9OJTtdF9ZZXSiuXSViahiiKGf4aci7nUQ+/1vziWRTJNjbRrH96hzipNjPY/uwKl5DiW2gW12BFIhC/KrEni8L/UR/vHtkAtDK5e8++sgRcV3V/rrkUXZbNBmcaV31h+YlpTcSYYyw80i36T9Jx/HfSLiJ/TZAESMqu9A/SkZ2+Hu5gHB/qTSTfYc5Q9sY8XPpUPgkQVMWOOuBwzjBhAi7caiNQWBLgYP6OCOjCa1RcfLHZ3E0IvxqETXSNIdQPA5zpmDVSHXgYwXDMpF7feY/Ee4S7JWrweXtCPQbJdmXq7m2JhUajQEF/VcclZJiCOW6E3fdHLL3D+O/aJjNpE67nuoU0woQ6i7yNXvdSW98GrQYcCJDioMuYRE1ss0IlQ45utCVLZnnVhDZD7GKxTK0SeVSGgUhM6QQLiQwiMqIVm2IwrhItNS8rpyToe6wbrxV0cD2WjN8P9ZKYyuGDnRLCVmFPeo4FS/HEIkgTXK5Ac/lMgvSLEJfsGvP34QbQdRMyErKon61/OQ2sJOpIdwG+AUy/QaWeIY1+4ghPGrBSN4q4x9NWcl4uO8Skch2pLyJa7So3ObcAI3KLnjGOK7eS4j2U66JAQKLgbocpCWlwjHbZS3ZOyA3eM8jedPRDG7zMUNsfrqgpEl59Lg01DoG/259hay6kFFzQhJrytkwNvFeeA=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WDhYQlFaVkdzNDNRck8ySG1UYTJ3N0dKV0hieGNwYlFXV3BlenpGaEp3TENV?=
 =?utf-8?B?TjY0aFB0WjdDdnJ3QmFtdklzUFg2N3VlcEF0ZldZYTZSTElHcFc3MUNKK2lW?=
 =?utf-8?B?bTM3a243SUllTnRiV3EweXQyQzc3Y0dCUE1IbmhMR2RXTVJXd1N4c3BNOHpj?=
 =?utf-8?B?bDJKVGlxS2dvbTRlTmxWT3o3L1NUQmhScjNONlFrWC9FVHI2RE8xbllGOVdO?=
 =?utf-8?B?d1dFYmgxZHdWUjBuOVVFUmM2R1pQckp1Y29zZ3R0S1NmdnM5UmJoZXdEcWFx?=
 =?utf-8?B?V1E0MExFT05BcGF0RUx2NVR2ZitNVHhTenhrU0o3djlkK1lidnpjcll5M1A0?=
 =?utf-8?B?S0EzTXBwMGVJSE1PSG1sV0VlNkR0Qi9zeUxoS0dlNDNIZlVzSHZ2R3BaSTVO?=
 =?utf-8?B?dzBCTFVDbVRSTDJCZG9XNUoyVHA2Zi9nQ1BXa3JRcXFENSs5UktQY29PQ1BP?=
 =?utf-8?B?aXZjaVhpcUxYbXpNYVVLbDFpRFRpT0ltMVpMelFlNml6T0ZmQ2FjTVl3RXMw?=
 =?utf-8?B?Y3VCRC9FaHRpN2Y0VDlMN3Zzdm1OR05Fc0FHemFUMWJidTRIcHU5WndxSXVh?=
 =?utf-8?B?V0VtU2lTcjNYcUN0SXo3eWxZajlaU1dUTUg3akpaaFphTXlNZ1Fqbk8zOTBt?=
 =?utf-8?B?NkFFdlYwQzFiVXZ5TG94RkVLSUl2YUttTUY2VVVVdE1ybGF6L3czUWZwdk5w?=
 =?utf-8?B?VFFnbk5keStXek1jVDNTU2Y0OStaZGpsTitmaDhCZzZ1QktZalVtR29GeXA3?=
 =?utf-8?B?dFUxWWlCVTlxMzdoUjJoTisxOVpxazFjd01nUjNuQko1ZzB2TW5hRjRzWVZN?=
 =?utf-8?B?dFVQZUZsSGl4czBlRXpVVE1zcm9RWUJIc0dENUhOcFJ3bGdsaW16S2hhcDB4?=
 =?utf-8?B?b0dlb2FZMklHNFl6cC9sMnFLOHZRcE9SLzNmNXhHUVhOdTFjYU9ya3hpS3FS?=
 =?utf-8?B?ZWk1ZTBjaWxkL2JKZmx4UFBjNGVZNXA3K25JZVJDQ3hvdDVaUzVJQnB4bko0?=
 =?utf-8?B?cTB2Y3BDUXRSTVlMOVl1R1ZlWXozZDJscnpwZHFhYTh3dHlVTWE1SHNieVpi?=
 =?utf-8?B?MmlBa1REMnM2S01pTkRTSU9zMC9jeFc1RnBtQ3N6WUtDSnFGeXZUTjg5TTJx?=
 =?utf-8?B?UzIrMktjZmRGa1VGMk5UKzAxVlBqb1JEZEJEVFZseHI3SndiVmNsSk40OWRF?=
 =?utf-8?B?eXBzcnNWZXNwYmRVTCtoSExSWENIekVvVnpmbVJDV2lrcytkM25RbHJpR0Jy?=
 =?utf-8?B?TEplblBMY1JhTFFOYjdiaHlCdHViU2hUL0dTa2NXc00zZHZsazhna080anRZ?=
 =?utf-8?B?aHRzek1HUXA5Q1h1WlNMblVxeWlvdjZobWJIK2NNYTJzNE1LQUJ5TTJqTzFu?=
 =?utf-8?B?Vk5xemJoSWhrWWh4cWNsK1JWSE1QYkUrUkoxS3VScTdvOWhpVERQdCtndkZi?=
 =?utf-8?B?R3dzejI1OEl1RGE2LzhpbTBjKy9FZUNPSkxtR2xERDgxRnoyOE9VUlpVNU02?=
 =?utf-8?B?TjhGL29OK255QnlWUCt2SUxVbXREcis1a0VyU01GREZuNkllT0FqZnJqYVJY?=
 =?utf-8?B?SzY3RnQ0SGV1RVFlNDNUcEJsVTRabmU1Zk5ZNmFYUExkc3VqbXFHWFlXS2Ur?=
 =?utf-8?B?RUVzWFNFbmhubVVzYlJxamY0TGdhSlhFbUlMWE8zQlYrRUY4ZHdNTGJsY3hW?=
 =?utf-8?B?aWdtQnJhNW1sTGt3ZTYyVGVzQ1pHT0hva3BDQTlrMEp4ZVpjY2pJSVZEdFBT?=
 =?utf-8?B?WHA4WnN1dGNBSlNKSlhSTEhVMFZYS0hWS1FiK2dDdUtYOHNGOEY3L3IvTEYy?=
 =?utf-8?B?MnpCY01VSGl5aWIwdWtodHNCTUV0cjh5VjRCaVNQeG0ya0dTYW5YbU9DaVpt?=
 =?utf-8?B?WWdkbEhaVXF5YW5mWEZkZk52b1RvcmNOcjFGcFBIWk9BaVpaaUFhWFlCMDE2?=
 =?utf-8?B?UkVwaDNLTUtQby9kMFU2R0xjSU50TkFReCtXNFJ0a3I5SVI4ejEwM2wvQ2ox?=
 =?utf-8?B?MlY2amp5aTZHVTlJdzhZMXVSZE11enZqSVUvSGswb3loWUZkOWFzQ1FqNkZs?=
 =?utf-8?B?NUZzVkFEV3JmMzc3ckcwTlB4ZCtmYU9xZW1WMVd3dUVpOWhNeGluM3dubHVB?=
 =?utf-8?B?V2JtY09Ua3czZGxXTTVhQTJTZ1JMWU1tVVFaY2N1M2xWbUVPNVJtQTBtNTZK?=
 =?utf-8?B?N2RmK1RUeHBGdm9GclA4a2ZjUVNpS1QyYis0bGN0dTRITXErQ2hpZEtvdXRI?=
 =?utf-8?B?Z2xNREl6N21tazQyNnFHK1hhVjZWcFFEUXJUeStTVGtnRWtydTZ1SUdkVWZj?=
 =?utf-8?B?MkdXNTI0LzB5enRqVkxzWjVtbVJMU1N2TXhNZ2JzOVFOMWYxV1JsYjVUMks1?=
 =?utf-8?Q?OXQrEqv/ilMk9mAI=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5f0c5898-8097-46de-37ef-08de8093a456
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Mar 2026 00:01:13.9808
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: HtLzZXiIT4uTj4Uy84kdJgkksea4rxHHKZolZzUOzM57/lJYMp/BAShgeWHj+WFVO5czKGPbrqqBqpRuAcgBvDAbuGoGns92nJg/3U0ueKs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5689

On 12/03/2026 8:43 pm, Kevin Lampis wrote:
> diff --git a/xen/arch/x86/cpu/mcheck/mce_intel.c b/xen/arch/x86/cpu/mcheck/mce_intel.c
> index 839a0e5ba9..4d6b7d588e 100644
> --- a/xen/arch/x86/cpu/mcheck/mce_intel.c
> +++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
> @@ -711,10 +711,7 @@ static bool mce_is_broadcast(struct cpuinfo_x86 *c)
>       * DisplayFamily_DisplayModel encoding of 06H_EH and above,
>       * a MCA signal is broadcast to all logical processors in the system
>       */
> -    if ( c->x86_vendor == X86_VENDOR_INTEL && c->x86 == 6 &&
> -         c->x86_model >= 0xe )
> -        return true;
> -    return false;
> +    return c->vendor == X86_VENDOR_INTEL && c->vfm >= INTEL_CORE_YONAH;
>  }

This breaks P4.

It is not safe to write expressions like this, and I've already
explained why.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Mar 13 02:22:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 02:22:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253180.1549513 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0sAF-0000wP-GH; Fri, 13 Mar 2026 02:22:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253180.1549513; Fri, 13 Mar 2026 02:22: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 1w0sAF-0000wC-Dh; Fri, 13 Mar 2026 02:22:11 +0000
Received: by outflank-mailman (input) for mailman id 1253180;
 Fri, 13 Mar 2026 02:22:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OImI=BN=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w0sAD-0000ET-Sl
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 02:22:09 +0000
Received: from canpmsgout12.his.huawei.com (canpmsgout12.his.huawei.com
 [113.46.200.227]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 66cd214d-1e83-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 03:21:55 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.127])
 by canpmsgout12.his.huawei.com (SkyGuard) with ESMTPS id 4fX7Q96jr8znTWy;
 Fri, 13 Mar 2026 10:16:17 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id AE6D540363;
 Fri, 13 Mar 2026 10:21:52 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Fri, 13 Mar 2026 10:21: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: 66cd214d-1e83-11f1-9ccf-f158ae23cfc8
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=JidVbBwVWveb8Q2cCRvXnGJEce6/x2QeOrZ9sxuCXM4=;
	b=DpIEqq/CrkmJmL6LwCkEqHToQvDHHqUkv8mgheeY48ustZyxQm4BMOWiV2XfvPN2Dd8om+p9b
	BEJfQQ0MewxBLdkRV249slzpfq+sdlXsm0e88Er/IjZQ59ICTIEb+b40XL6ZKBJufecu6Y2mK9R
	FZhvGCrURkH6S3xH8txS9qA=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>, Paul
 Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou
	<aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>, Thomas Gleixner
	<tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Sohil
 Mehta <sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>,
	Robin Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>,
	Besar Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei
 Huang <wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <kees@kernel.org>,
	<punit.agrawal@oss.qualcomm.com>, <guohanjun@huawei.com>,
	<suzuki.poulose@arm.com>, <ryan.roberts@arm.com>, <chenl311@chinatelecom.cn>,
	<masahiroy@kernel.org>, <wangyuquan1236@phytium.com.cn>,
	<anshuman.khandual@arm.com>, <heinrich.schuchardt@canonical.com>,
	<Eric.VanTassell@amd.com>, <jonathan.cameron@huawei.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v7 2/3] x86: Implement acpi_get_cpu_uid()
Date: Fri, 13 Mar 2026 10:21:43 +0800
Message-ID: <20260313022144.40942-3-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260313022144.40942-1-fengchengwen@huawei.com>
References: <20260313022144.40942-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100001.china.huawei.com (7.221.188.238) To
 kwepemk500009.china.huawei.com (7.202.194.94)

Add acpi_get_cpu_uid() implementation for x86, replacing the existing
cpu_acpi_id() function. This completes the unified ACPI Processor UID
retrieval interface across all ACPI-enabled architectures.

Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 arch/x86/include/asm/cpu.h   |  1 -
 arch/x86/include/asm/smp.h   |  1 -
 arch/x86/kernel/acpi/boot.c  | 20 ++++++++++++++++++++
 arch/x86/xen/enlighten_hvm.c |  5 +++--
 include/linux/acpi.h         |  2 --
 5 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h
index ad235dda1ded..57a0786dfd75 100644
--- a/arch/x86/include/asm/cpu.h
+++ b/arch/x86/include/asm/cpu.h
@@ -11,7 +11,6 @@
 
 #ifndef CONFIG_SMP
 #define cpu_physical_id(cpu)			boot_cpu_physical_apicid
-#define cpu_acpi_id(cpu)			0
 #endif /* CONFIG_SMP */
 
 #ifdef CONFIG_HOTPLUG_CPU
diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
index 84951572ab81..05d1d479b4cf 100644
--- a/arch/x86/include/asm/smp.h
+++ b/arch/x86/include/asm/smp.h
@@ -130,7 +130,6 @@ __visible void smp_call_function_interrupt(struct pt_regs *regs);
 __visible void smp_call_function_single_interrupt(struct pt_regs *r);
 
 #define cpu_physical_id(cpu)	per_cpu(x86_cpu_to_apicid, cpu)
-#define cpu_acpi_id(cpu)	per_cpu(x86_cpu_to_acpiid, cpu)
 
 /*
  * This function is needed by all SMP systems. It must _always_ be valid
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index a3f2fb1fea1b..ceba24f65ae3 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -1848,3 +1848,23 @@ void __iomem * (*acpi_os_ioremap)(acpi_physical_address phys, acpi_size size) =
 	x86_acpi_os_ioremap;
 EXPORT_SYMBOL_GPL(acpi_os_ioremap);
 #endif
+
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
+{
+	u32 acpi_id;
+
+	if (cpu >= nr_cpu_ids)
+		return -EINVAL;
+
+#ifdef CONFIG_SMP
+	acpi_id = per_cpu(x86_cpu_to_acpiid, cpu);
+	if (acpi_id == CPU_ACPIID_INVALID)
+		return -ENODEV;
+#else
+	acpi_id = 0;
+#endif
+
+	*uid = acpi_id;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
diff --git a/arch/x86/xen/enlighten_hvm.c b/arch/x86/xen/enlighten_hvm.c
index fe57ff85d004..2f9fa27e5a3c 100644
--- a/arch/x86/xen/enlighten_hvm.c
+++ b/arch/x86/xen/enlighten_hvm.c
@@ -151,6 +151,7 @@ static void xen_hvm_crash_shutdown(struct pt_regs *regs)
 
 static int xen_cpu_up_prepare_hvm(unsigned int cpu)
 {
+	u32 cpu_uid;
 	int rc = 0;
 
 	/*
@@ -161,8 +162,8 @@ static int xen_cpu_up_prepare_hvm(unsigned int cpu)
 	 */
 	xen_uninit_lock_cpu(cpu);
 
-	if (cpu_acpi_id(cpu) != CPU_ACPIID_INVALID)
-		per_cpu(xen_vcpu_id, cpu) = cpu_acpi_id(cpu);
+	if (acpi_get_cpu_uid(cpu, &cpu_uid) == 0)
+		per_cpu(xen_vcpu_id, cpu) = cpu_uid;
 	else
 		per_cpu(xen_vcpu_id, cpu) = cpu;
 	xen_vcpu_setup(cpu);
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 035094a55f18..90a1fdcb7eb9 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -324,7 +324,6 @@ int acpi_unmap_cpu(int cpu);
 
 acpi_handle acpi_get_processor_handle(int cpu);
 
-#ifndef CONFIG_X86
 /*
  * acpi_get_cpu_uid() - Get ACPI Processor UID of a specified CPU from MADT table
  * @cpu: Logical CPU number (0-based)
@@ -335,7 +334,6 @@ acpi_handle acpi_get_processor_handle(int cpu);
  *         -ENODEV if the ACPI Processor UID for the specified CPU is not found.
  */
 int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
-#endif
 
 #ifdef CONFIG_ACPI_HOTPLUG_IOAPIC
 int acpi_get_ioapic_id(acpi_handle handle, u32 gsi_base, u64 *phys_addr);
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 02:22:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 02:22:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253179.1549505 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0sA9-0000fK-8v; Fri, 13 Mar 2026 02:22:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253179.1549505; Fri, 13 Mar 2026 02:22:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0sA9-0000fD-5p; Fri, 13 Mar 2026 02:22:05 +0000
Received: by outflank-mailman (input) for mailman id 1253179;
 Fri, 13 Mar 2026 02:22:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OImI=BN=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w0sA8-0000ET-0N
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 02:22:04 +0000
Received: from canpmsgout09.his.huawei.com (canpmsgout09.his.huawei.com
 [113.46.200.224]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 685836ec-1e83-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 03:21:58 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.163])
 by canpmsgout09.his.huawei.com (SkyGuard) with ESMTPS id 4fX7Qv3vtcz1cyPF;
 Fri, 13 Mar 2026 10:16:55 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 9FC214048B;
 Fri, 13 Mar 2026 10:21:51 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Fri, 13 Mar 2026 10:21:50 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 685836ec-1e83-11f1-9ccf-f158ae23cfc8
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=QjrGSLk+yOhOI441CfjS5P5KG0hkwXI+k0WuGTLs9Ws=;
	b=cHC9CGJlkw77fmcnNreSFKjdDqRfDH0LYEvCWRpuJfoHwv5cPUyubXZ7H1RRgbaveAHnEQh51
	bmB5ABXpAWB4EhekKEBGenq2CEn8mTWvHAORfdx3zvZPfnbIIiabcms9YiXvd0fpBRPgTjiKSm+
	WvkqhccMHQki9ryvVlEYYWw=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>, Paul
 Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou
	<aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>, Thomas Gleixner
	<tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Sohil
 Mehta <sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>,
	Robin Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>,
	Besar Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei
 Huang <wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <kees@kernel.org>,
	<punit.agrawal@oss.qualcomm.com>, <guohanjun@huawei.com>,
	<suzuki.poulose@arm.com>, <ryan.roberts@arm.com>, <chenl311@chinatelecom.cn>,
	<masahiroy@kernel.org>, <wangyuquan1236@phytium.com.cn>,
	<anshuman.khandual@arm.com>, <heinrich.schuchardt@canonical.com>,
	<Eric.VanTassell@amd.com>, <jonathan.cameron@huawei.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v7 1/3] ACPI: Refactor get_acpi_id_for_cpu() to acpi_get_cpu_uid() on non-x86
Date: Fri, 13 Mar 2026 10:21:42 +0800
Message-ID: <20260313022144.40942-2-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260313022144.40942-1-fengchengwen@huawei.com>
References: <20260313022144.40942-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100001.china.huawei.com (7.221.188.238) To
 kwepemk500009.china.huawei.com (7.202.194.94)

Unify CPU ACPI ID retrieval interface across architectures by
refactoring get_acpi_id_for_cpu() to acpi_get_cpu_uid() on
arm64/riscv/loongarch:
- Add input parameter validation
- Adjust interface to int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
  (old: u32 get_acpi_id_for_cpu(unsigned int cpu), no input check)

This refactoring (not a pure rename) enhances interface robustness while
preparing for consistent ACPI Processor UID retrieval across all
ACPI-enabled platforms. Valid inputs retain original behavior.

Note: Move the ARM64-specific get_cpu_for_acpi_id() implementation to
      arch/arm64/kernel/acpi_numa.c to fix compilation errors from
      circular header dependencies introduced by the rename.

Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 arch/arm64/include/asm/acpi.h      | 16 +---------
 arch/arm64/kernel/acpi.c           | 16 ++++++++++
 arch/arm64/kernel/acpi_numa.c      | 14 +++++++++
 arch/loongarch/include/asm/acpi.h  |  5 ---
 arch/loongarch/kernel/acpi.c       |  9 ++++++
 arch/riscv/include/asm/acpi.h      |  4 ---
 arch/riscv/kernel/acpi.c           | 16 ++++++++++
 arch/riscv/kernel/acpi_numa.c      |  9 ++++--
 drivers/acpi/pptt.c                | 50 ++++++++++++++++++++++--------
 drivers/acpi/riscv/rhct.c          |  7 ++++-
 drivers/perf/arm_cspmu/arm_cspmu.c |  6 ++--
 include/linux/acpi.h               | 13 ++++++++
 12 files changed, 122 insertions(+), 43 deletions(-)

diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
index c07a58b96329..106a08556cbf 100644
--- a/arch/arm64/include/asm/acpi.h
+++ b/arch/arm64/include/asm/acpi.h
@@ -114,22 +114,8 @@ static inline bool acpi_has_cpu_in_madt(void)
 }
 
 struct acpi_madt_generic_interrupt *acpi_cpu_get_madt_gicc(int cpu);
-static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
-{
-	return	acpi_cpu_get_madt_gicc(cpu)->uid;
-}
-
-static inline int get_cpu_for_acpi_id(u32 uid)
-{
-	int cpu;
-
-	for (cpu = 0; cpu < nr_cpu_ids; cpu++)
-		if (acpi_cpu_get_madt_gicc(cpu) &&
-		    uid == get_acpi_id_for_cpu(cpu))
-			return cpu;
 
-	return -EINVAL;
-}
+int get_cpu_for_acpi_id(u32 uid);
 
 static inline void arch_fix_phys_package_id(int num, u32 slot) { }
 void __init acpi_init_cpus(void);
diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
index af90128cfed5..f3866606fc46 100644
--- a/arch/arm64/kernel/acpi.c
+++ b/arch/arm64/kernel/acpi.c
@@ -458,3 +458,19 @@ int acpi_unmap_cpu(int cpu)
 }
 EXPORT_SYMBOL(acpi_unmap_cpu);
 #endif /* CONFIG_ACPI_HOTPLUG_CPU */
+
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
+{
+	struct acpi_madt_generic_interrupt *gicc;
+
+	if (cpu >= nr_cpu_ids)
+		return -EINVAL;
+
+	gicc = acpi_cpu_get_madt_gicc(cpu);
+	if (!gicc)
+		return -ENODEV;
+
+	*uid = gicc->uid;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
diff --git a/arch/arm64/kernel/acpi_numa.c b/arch/arm64/kernel/acpi_numa.c
index 2465f291c7e1..41d1e46a4338 100644
--- a/arch/arm64/kernel/acpi_numa.c
+++ b/arch/arm64/kernel/acpi_numa.c
@@ -34,6 +34,20 @@ int __init acpi_numa_get_nid(unsigned int cpu)
 	return acpi_early_node_map[cpu];
 }
 
+int get_cpu_for_acpi_id(u32 uid)
+{
+	u32 cpu_uid;
+	int ret;
+
+	for (int cpu = 0; cpu < nr_cpu_ids; cpu++) {
+		ret = acpi_get_cpu_uid(cpu, &cpu_uid);
+		if (ret == 0 && uid == cpu_uid)
+			return cpu;
+	}
+
+	return -EINVAL;
+}
+
 static int __init acpi_parse_gicc_pxm(union acpi_subtable_headers *header,
 				      const unsigned long end)
 {
diff --git a/arch/loongarch/include/asm/acpi.h b/arch/loongarch/include/asm/acpi.h
index 7376840fa9f7..eda9d4d0a493 100644
--- a/arch/loongarch/include/asm/acpi.h
+++ b/arch/loongarch/include/asm/acpi.h
@@ -40,11 +40,6 @@ extern struct acpi_madt_core_pic acpi_core_pic[MAX_CORE_PIC];
 
 extern int __init parse_acpi_topology(void);
 
-static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
-{
-	return acpi_core_pic[cpu_logical_map(cpu)].processor_id;
-}
-
 #endif /* !CONFIG_ACPI */
 
 #define ACPI_TABLE_UPGRADE_MAX_PHYS ARCH_LOW_ADDRESS_LIMIT
diff --git a/arch/loongarch/kernel/acpi.c b/arch/loongarch/kernel/acpi.c
index 1367ca759468..058f0dbe8e8f 100644
--- a/arch/loongarch/kernel/acpi.c
+++ b/arch/loongarch/kernel/acpi.c
@@ -385,3 +385,12 @@ int acpi_unmap_cpu(int cpu)
 EXPORT_SYMBOL(acpi_unmap_cpu);
 
 #endif /* CONFIG_ACPI_HOTPLUG_CPU */
+
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
+{
+	if (cpu >= nr_cpu_ids)
+		return -EINVAL;
+	*uid = acpi_core_pic[cpu_logical_map(cpu)].processor_id;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
diff --git a/arch/riscv/include/asm/acpi.h b/arch/riscv/include/asm/acpi.h
index 6e13695120bc..26ab37c171bc 100644
--- a/arch/riscv/include/asm/acpi.h
+++ b/arch/riscv/include/asm/acpi.h
@@ -61,10 +61,6 @@ static inline void arch_fix_phys_package_id(int num, u32 slot) { }
 
 void acpi_init_rintc_map(void);
 struct acpi_madt_rintc *acpi_cpu_get_madt_rintc(int cpu);
-static inline u32 get_acpi_id_for_cpu(int cpu)
-{
-	return acpi_cpu_get_madt_rintc(cpu)->uid;
-}
 
 int acpi_get_riscv_isa(struct acpi_table_header *table,
 		       unsigned int cpu, const char **isa);
diff --git a/arch/riscv/kernel/acpi.c b/arch/riscv/kernel/acpi.c
index 71698ee11621..322ea92aa39f 100644
--- a/arch/riscv/kernel/acpi.c
+++ b/arch/riscv/kernel/acpi.c
@@ -337,3 +337,19 @@ int raw_pci_write(unsigned int domain, unsigned int bus,
 }
 
 #endif	/* CONFIG_PCI */
+
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
+{
+	struct acpi_madt_rintc *rintc;
+
+	if (cpu >= nr_cpu_ids)
+		return -EINVAL;
+
+	rintc = acpi_cpu_get_madt_rintc(cpu);
+	if (!rintc)
+		return -ENODEV;
+
+	*uid = rintc->uid;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
diff --git a/arch/riscv/kernel/acpi_numa.c b/arch/riscv/kernel/acpi_numa.c
index 130769e3a99c..6a2d4289f806 100644
--- a/arch/riscv/kernel/acpi_numa.c
+++ b/arch/riscv/kernel/acpi_numa.c
@@ -37,11 +37,14 @@ static int __init acpi_numa_get_nid(unsigned int cpu)
 
 static inline int get_cpu_for_acpi_id(u32 uid)
 {
-	int cpu;
+	u32 cpu_uid;
+	int ret;
 
-	for (cpu = 0; cpu < nr_cpu_ids; cpu++)
-		if (uid == get_acpi_id_for_cpu(cpu))
+	for (int cpu = 0; cpu < nr_cpu_ids; cpu++) {
+		ret = acpi_get_cpu_uid(cpu, &cpu_uid);
+		if (ret == 0 && uid == cpu_uid)
 			return cpu;
+	}
 
 	return -EINVAL;
 }
diff --git a/drivers/acpi/pptt.c b/drivers/acpi/pptt.c
index de5f8c018333..7bd5bc1f225a 100644
--- a/drivers/acpi/pptt.c
+++ b/drivers/acpi/pptt.c
@@ -459,11 +459,14 @@ static void cache_setup_acpi_cpu(struct acpi_table_header *table,
 {
 	struct acpi_pptt_cache *found_cache;
 	struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id;
 	struct cacheinfo *this_leaf;
 	unsigned int index = 0;
 	struct acpi_pptt_processor *cpu_node = NULL;
 
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+		return;
+
 	while (index < get_cpu_cacheinfo(cpu)->num_leaves) {
 		this_leaf = this_cpu_ci->info_list + index;
 		found_cache = acpi_find_cache_node(table, acpi_cpu_id,
@@ -546,7 +549,10 @@ static int topology_get_acpi_cpu_tag(struct acpi_table_header *table,
 				     unsigned int cpu, int level, int flag)
 {
 	struct acpi_pptt_processor *cpu_node;
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id;
+
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+		return -ENOENT;
 
 	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 	if (cpu_node) {
@@ -614,18 +620,22 @@ static int find_acpi_cpu_topology_tag(unsigned int cpu, int level, int flag)
  *
  * Check the node representing a CPU for a given flag.
  *
- * Return: -ENOENT if the PPTT doesn't exist, the CPU cannot be found or
- *	   the table revision isn't new enough.
+ * Return: -ENOENT if can't get CPU's ACPI Processor UID, the PPTT doesn't
+ *	   exist, the CPU cannot be found or the table revision isn't new
+ *	   enough.
  *	   1, any passed flag set
  *	   0, flag unset
  */
 static int check_acpi_cpu_flag(unsigned int cpu, int rev, u32 flag)
 {
 	struct acpi_table_header *table;
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id;
 	struct acpi_pptt_processor *cpu_node = NULL;
 	int ret = -ENOENT;
 
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+		return -ENOENT;
+
 	table = acpi_get_pptt();
 	if (!table)
 		return -ENOENT;
@@ -651,7 +661,8 @@ static int check_acpi_cpu_flag(unsigned int cpu, int rev, u32 flag)
  * in the PPTT. Errors caused by lack of a PPTT table, or otherwise, return 0
  * indicating we didn't find any cache levels.
  *
- * Return: -ENOENT if no PPTT table or no PPTT processor struct found.
+ * Return: -ENOENT if no PPTT table, can't get CPU's ACPI Process UID or no PPTT
+ *	   processor struct found.
  *	   0 on success.
  */
 int acpi_get_cache_info(unsigned int cpu, unsigned int *levels,
@@ -671,7 +682,9 @@ int acpi_get_cache_info(unsigned int cpu, unsigned int *levels,
 
 	pr_debug("Cache Setup: find cache levels for CPU=%d\n", cpu);
 
-	acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id))
+		return -ENOENT;
+
 	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 	if (!cpu_node)
 		return -ENOENT;
@@ -780,8 +793,9 @@ int find_acpi_cpu_topology_package(unsigned int cpu)
  * It may not exist in single CPU systems. In simple multi-CPU systems,
  * it may be equal to the package topology level.
  *
- * Return: -ENOENT if the PPTT doesn't exist, the CPU cannot be found
- * or there is no toplogy level above the CPU..
+ * Return: -ENOENT if the PPTT doesn't exist, can't get CPU's ACPI
+ * Processor UID, the CPU cannot be found or there is no toplogy level
+ * above the CPU.
  * Otherwise returns a value which represents the package for this CPU.
  */
 
@@ -797,7 +811,9 @@ int find_acpi_cpu_topology_cluster(unsigned int cpu)
 	if (!table)
 		return -ENOENT;
 
-	acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+		return -ENOENT;
+
 	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 	if (!cpu_node || !cpu_node->parent)
 		return -ENOENT;
@@ -872,7 +888,9 @@ static void acpi_pptt_get_child_cpus(struct acpi_table_header *table_hdr,
 	cpumask_clear(cpus);
 
 	for_each_possible_cpu(cpu) {
-		acpi_id = get_acpi_id_for_cpu(cpu);
+		if (acpi_get_cpu_uid(cpu, &acpi_id) != 0)
+			continue;
+
 		cpu_node = acpi_find_processor_node(table_hdr, acpi_id);
 
 		while (cpu_node) {
@@ -966,10 +984,13 @@ int find_acpi_cache_level_from_id(u32 cache_id)
 	for_each_possible_cpu(cpu) {
 		bool empty;
 		int level = 1;
-		u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+		u32 acpi_cpu_id;
 		struct acpi_pptt_cache *cache;
 		struct acpi_pptt_processor *cpu_node;
 
+		if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+			continue;
+
 		cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 		if (!cpu_node)
 			continue;
@@ -1030,10 +1051,13 @@ int acpi_pptt_get_cpumask_from_cache_id(u32 cache_id, cpumask_t *cpus)
 	for_each_possible_cpu(cpu) {
 		bool empty;
 		int level = 1;
-		u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+		u32 acpi_cpu_id;
 		struct acpi_pptt_cache *cache;
 		struct acpi_pptt_processor *cpu_node;
 
+		if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+			continue;
+
 		cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 		if (!cpu_node)
 			continue;
diff --git a/drivers/acpi/riscv/rhct.c b/drivers/acpi/riscv/rhct.c
index caa2c16e1697..8f3f38c64a88 100644
--- a/drivers/acpi/riscv/rhct.c
+++ b/drivers/acpi/riscv/rhct.c
@@ -44,10 +44,15 @@ int acpi_get_riscv_isa(struct acpi_table_header *table, unsigned int cpu, const
 	struct acpi_rhct_isa_string *isa_node;
 	struct acpi_table_rhct *rhct;
 	u32 *hart_info_node_offset;
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id;
+	int ret;
 
 	BUG_ON(acpi_disabled);
 
+	ret = acpi_get_cpu_uid(cpu, &acpi_cpu_id);
+	if (ret != 0)
+		return ret;
+
 	if (!table) {
 		rhct = acpi_get_rhct();
 		if (!rhct)
diff --git a/drivers/perf/arm_cspmu/arm_cspmu.c b/drivers/perf/arm_cspmu/arm_cspmu.c
index 34430b68f602..ed72c3d1f796 100644
--- a/drivers/perf/arm_cspmu/arm_cspmu.c
+++ b/drivers/perf/arm_cspmu/arm_cspmu.c
@@ -1107,15 +1107,17 @@ static int arm_cspmu_acpi_get_cpus(struct arm_cspmu *cspmu)
 {
 	struct acpi_apmt_node *apmt_node;
 	int affinity_flag;
+	u32 cpu_uid;
 	int cpu;
+	int ret;
 
 	apmt_node = arm_cspmu_apmt_node(cspmu->dev);
 	affinity_flag = apmt_node->flags & ACPI_APMT_FLAGS_AFFINITY;
 
 	if (affinity_flag == ACPI_APMT_FLAGS_AFFINITY_PROC) {
 		for_each_possible_cpu(cpu) {
-			if (apmt_node->proc_affinity ==
-			    get_acpi_id_for_cpu(cpu)) {
+			ret = acpi_get_cpu_uid(cpu, &cpu_uid);
+			if (ret == 0 && apmt_node->proc_affinity == cpu_uid) {
 				cpumask_set_cpu(cpu, &cspmu->associated_cpus);
 				break;
 			}
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 4d2f0bed7a06..035094a55f18 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -324,6 +324,19 @@ int acpi_unmap_cpu(int cpu);
 
 acpi_handle acpi_get_processor_handle(int cpu);
 
+#ifndef CONFIG_X86
+/*
+ * acpi_get_cpu_uid() - Get ACPI Processor UID of a specified CPU from MADT table
+ * @cpu: Logical CPU number (0-based)
+ * @uid: Pointer to store the ACPI Processor UID (valid only on successful return)
+ *
+ * Return: 0 on successful retrieval (the ACPI Processor ID is stored in *uid);
+ *         -EINVAL if the CPU number is invalid or out of range;
+ *         -ENODEV if the ACPI Processor UID for the specified CPU is not found.
+ */
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
+#endif
+
 #ifdef CONFIG_ACPI_HOTPLUG_IOAPIC
 int acpi_get_ioapic_id(acpi_handle handle, u32 gsi_base, u64 *phys_addr);
 #endif
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 02:22:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 02:22:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253177.1549487 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0sA7-0000Eo-Q7; Fri, 13 Mar 2026 02:22:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253177.1549487; Fri, 13 Mar 2026 02:22:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0sA7-0000Ee-Kt; Fri, 13 Mar 2026 02:22:03 +0000
Received: by outflank-mailman (input) for mailman id 1253177;
 Fri, 13 Mar 2026 02:22: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=OImI=BN=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w0sA6-0000ET-BE
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 02:22:02 +0000
Received: from canpmsgout03.his.huawei.com (canpmsgout03.his.huawei.com
 [113.46.200.218]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 65cd992c-1e83-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 03:21:55 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.162.140])
 by canpmsgout03.his.huawei.com (SkyGuard) with ESMTPS id 4fX7QX0pcgzpTJ7;
 Fri, 13 Mar 2026 10:16:36 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 9A98E2022B;
 Fri, 13 Mar 2026 10:21:50 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Fri, 13 Mar 2026 10:21:49 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 65cd992c-1e83-11f1-9ccf-f158ae23cfc8
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=2rcpAa1TtZWLDIvssxD1LEn5AvFd7LlqWNSfVu4tX3w=;
	b=k2FbFqJDheDFD8ZQ1TIKD7MLAMU7NtAmyzZS79wyrByImlG/9Oz+7Ht/PCD+SNciSCiVeFaBq
	3VV/zPoCsVqgcC+m0j9DJ69/4Lo6oVqnv6AFub2EAZnQ3hPUkQ+J/R+M/YieceCx1b3KO4HESDm
	4ZRimNSFXHPkX5qqZZQWUsU=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>, Paul
 Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou
	<aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>, Thomas Gleixner
	<tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Sohil
 Mehta <sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>,
	Robin Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>,
	Besar Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei
 Huang <wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <kees@kernel.org>,
	<punit.agrawal@oss.qualcomm.com>, <guohanjun@huawei.com>,
	<suzuki.poulose@arm.com>, <ryan.roberts@arm.com>, <chenl311@chinatelecom.cn>,
	<masahiroy@kernel.org>, <wangyuquan1236@phytium.com.cn>,
	<anshuman.khandual@arm.com>, <heinrich.schuchardt@canonical.com>,
	<Eric.VanTassell@amd.com>, <jonathan.cameron@huawei.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v7 0/3] Fix get cpu steer-tag fail on ARM64 platform
Date: Fri, 13 Mar 2026 10:21:41 +0800
Message-ID: <20260313022144.40942-1-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100001.china.huawei.com (7.221.188.238) To
 kwepemk500009.china.huawei.com (7.202.194.94)

This patchset fixes the failure of CPU steer tag retrieval on ARM64
platforms. The series is structured as follows:

1. First commit: Refactor the ACPI Processor UID retrieval interface
   (no functional changes when input valid) to align naming conventions
   across arm64/riscv/loongarch architectures;
2. Second commit: Implement acpi_get_cpu_uid() for the x86 platform to
   complete the unified ACPI Processor UID interface across all
   ACPI-enabled architectures;
3. Third commit: Implement the core fix for the CPU steer tag retrieval
   logic on ARM64 (the root cause of the retrieval failure).

The refactor and x86 implementation lay the groundwork for the unified
ACPI interface required by the ARM64 steer tag fix, ensuring consistent
CPU UID retrieval across architectures before addressing the functional
bug.

---
Changes in v7:
- Refine first commit which address Jonathan's reviews
- Fix x86 implement bug (not consider INVALID-ID) which address Peter's
  review
- Fix CI error of x86 implement by moving function to acpi/boot.c

Changes in v6:
- Rename existing get_acpi_id_for_cpu() to acpi_get_cpu_uid()
- Split x86's modify as one commit

Changes in v5:
- Refine commit-log of commit 2/2
- Replace cpu_acpi_id() by acpi_get_cpu_acpi_id() on x86

Changes in v4:
- Split the rename into a separate commit.

Changes in v3:
- Rename existing get_acpi_id_for_cpu() to acpi_get_cpu_acpi_id() other
  than add one new API.

Changes in v2:
- Add ECN _DSM reference doc name and its URL.
- Separate implement acpi_get_cpu_acpi_id() in each arch which supports
  ACPI.
- Refine commit-log

Chengwen Feng (3):
  ACPI: Refactor get_acpi_id_for_cpu() to acpi_get_cpu_uid() on non-x86
  x86: Implement acpi_get_cpu_uid()
  PCI/TPH: Fix get cpu steer-tag fail on ARM64 platform

 Documentation/PCI/tph.rst          |  4 +--
 arch/arm64/include/asm/acpi.h      | 16 +---------
 arch/arm64/kernel/acpi.c           | 16 ++++++++++
 arch/arm64/kernel/acpi_numa.c      | 14 +++++++++
 arch/loongarch/include/asm/acpi.h  |  5 ---
 arch/loongarch/kernel/acpi.c       |  9 ++++++
 arch/riscv/include/asm/acpi.h      |  4 ---
 arch/riscv/kernel/acpi.c           | 16 ++++++++++
 arch/riscv/kernel/acpi_numa.c      |  9 ++++--
 arch/x86/include/asm/cpu.h         |  1 -
 arch/x86/include/asm/smp.h         |  1 -
 arch/x86/kernel/acpi/boot.c        | 20 ++++++++++++
 arch/x86/xen/enlighten_hvm.c       |  5 +--
 drivers/acpi/pptt.c                | 50 ++++++++++++++++++++++--------
 drivers/acpi/riscv/rhct.c          |  7 ++++-
 drivers/pci/tph.c                  | 16 +++++++---
 drivers/perf/arm_cspmu/arm_cspmu.c |  6 ++--
 include/linux/acpi.h               | 11 +++++++
 include/linux/pci-tph.h            |  4 +--
 19 files changed, 158 insertions(+), 56 deletions(-)

-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 02:22:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 02:22:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253178.1549490 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0sA7-0000Hr-Vc; Fri, 13 Mar 2026 02:22:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253178.1549490; Fri, 13 Mar 2026 02:22:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0sA7-0000G5-Rw; Fri, 13 Mar 2026 02:22:03 +0000
Received: by outflank-mailman (input) for mailman id 1253178;
 Fri, 13 Mar 2026 02:22: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=OImI=BN=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w0sA7-0000ET-0D
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 02:22:03 +0000
Received: from canpmsgout02.his.huawei.com (canpmsgout02.his.huawei.com
 [113.46.200.217]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 672e008e-1e83-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 03:21:56 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.162.223])
 by canpmsgout02.his.huawei.com (SkyGuard) with ESMTPS id 4fX7QJ21J1zcb2r;
 Fri, 13 Mar 2026 10:16:24 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id B187F40569;
 Fri, 13 Mar 2026 10:21:53 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Fri, 13 Mar 2026 10:21: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: 672e008e-1e83-11f1-9ccf-f158ae23cfc8
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=yK49JnkLKpYBZOqDDiJ5tuFkHdnhSIg09tqBvQIMd28=;
	b=kKHyA/oBTEDBLkGyt6IF5Mfl/9NSCdKjuLiy/HF08xBMphI4nGy1HFAwxMG51XNjBjkBo5mE1
	yjJ8Kunab1b6+Q35VPZpdNjHq9uHYBsa/8T6vWVzXsQpo9LPA6UF2V4Yh93oUHRXBNRvgd2kM7T
	N9D++v+eloU19GgyjqKPnrA=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>, Paul
 Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou
	<aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>, Thomas Gleixner
	<tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Sohil
 Mehta <sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>,
	Robin Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>,
	Besar Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei
 Huang <wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <kees@kernel.org>,
	<punit.agrawal@oss.qualcomm.com>, <guohanjun@huawei.com>,
	<suzuki.poulose@arm.com>, <ryan.roberts@arm.com>, <chenl311@chinatelecom.cn>,
	<masahiroy@kernel.org>, <wangyuquan1236@phytium.com.cn>,
	<anshuman.khandual@arm.com>, <heinrich.schuchardt@canonical.com>,
	<Eric.VanTassell@amd.com>, <jonathan.cameron@huawei.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v7 3/3] PCI/TPH: Fix get cpu steer-tag fail on ARM64 platform
Date: Fri, 13 Mar 2026 10:21:44 +0800
Message-ID: <20260313022144.40942-4-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260313022144.40942-1-fengchengwen@huawei.com>
References: <20260313022144.40942-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100001.china.huawei.com (7.221.188.238) To
 kwepemk500009.china.huawei.com (7.202.194.94)

pcie_tph_get_cpu_st() is broken on ARM64:
1. pcie_tph_get_cpu_st() passes cpu_uid to the PCI ACPI DSM method.
   cpu_uid should be the ACPI Processor UID [1].
2. In BNXT, pcie_tph_get_cpu_st() is passed a cpu_uid obtained via
   cpumask_first(irq->cpu_mask) - the logical CPU ID of a CPU core,
   generated and managed by kernel (e.g., [0,255] for a system  with 256
   logical CPU cores).
3. On ARM64 platforms, ACPI assigns Processor UID to cores listed in the
   MADT table, and this UID may not match the kernel's logical CPU ID.
   When this occurs, the mismatch results in the wrong CPU steer-tag.
4. On AMD x86 the logical CPU ID is identical to the ACPI Processor UID
   so the mismatch is not seen.

Resolution:
1. Use acpi_get_cpu_uid() in pcie_tph_get_cpu_st() to translate from
   logical CPU ID to ACPI Processor UID needed for the DSM call.
2. Rename pcie_tpu_get_cpu_st() parameter from cpu_uid to cpu to
   reflect that it is a logical CPU_ID.

[1] According to ECN_TPH-ST_Revision_20200924
    (https://members.pcisig.com/wg/PCI-SIG/document/15470), the input
    is defined as: "If the target is a processor, then this field
    represents the ACPI Processor UID of the processor as specified in
    the MADT. If the target is a processor container, then this field
    represents the ACPI Processor UID of the processor container as
    specified in the PPTT."

Fixes: d2e8a34876ce ("PCI/TPH: Add Steering Tag support")
Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 Documentation/PCI/tph.rst |  4 ++--
 drivers/pci/tph.c         | 16 +++++++++++-----
 include/linux/pci-tph.h   |  4 ++--
 3 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/Documentation/PCI/tph.rst b/Documentation/PCI/tph.rst
index e8993be64fd6..b6cf22b9bd90 100644
--- a/Documentation/PCI/tph.rst
+++ b/Documentation/PCI/tph.rst
@@ -79,10 +79,10 @@ To retrieve a Steering Tag for a target memory associated with a specific
 CPU, use the following function::
 
   int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type type,
-                          unsigned int cpu_uid, u16 *tag);
+                          unsigned int cpu, u16 *tag);
 
 The `type` argument is used to specify the memory type, either volatile
-or persistent, of the target memory. The `cpu_uid` argument specifies the
+or persistent, of the target memory. The `cpu` argument specifies the
 CPU where the memory is associated to.
 
 After the ST value is retrieved, the device driver can use the following
diff --git a/drivers/pci/tph.c b/drivers/pci/tph.c
index ca4f97be7538..b67c9ad14bda 100644
--- a/drivers/pci/tph.c
+++ b/drivers/pci/tph.c
@@ -236,21 +236,27 @@ static int write_tag_to_st_table(struct pci_dev *pdev, int index, u16 tag)
  * with a specific CPU
  * @pdev: PCI device
  * @mem_type: target memory type (volatile or persistent RAM)
- * @cpu_uid: associated CPU id
+ * @cpu: associated CPU id
  * @tag: Steering Tag to be returned
  *
  * Return the Steering Tag for a target memory that is associated with a
- * specific CPU as indicated by cpu_uid.
+ * specific CPU as indicated by cpu.
  *
  * Return: 0 if success, otherwise negative value (-errno)
  */
 int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type mem_type,
-			unsigned int cpu_uid, u16 *tag)
+			unsigned int cpu, u16 *tag)
 {
 #ifdef CONFIG_ACPI
 	struct pci_dev *rp;
 	acpi_handle rp_acpi_handle;
 	union st_info info;
+	u32 cpu_uid;
+	int ret;
+
+	ret = acpi_get_cpu_uid(cpu, &cpu_uid);
+	if (ret != 0)
+		return ret;
 
 	rp = pcie_find_root_port(pdev);
 	if (!rp || !rp->bus || !rp->bus->bridge)
@@ -265,9 +271,9 @@ int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type mem_type,
 
 	*tag = tph_extract_tag(mem_type, pdev->tph_req_type, &info);
 
-	pci_dbg(pdev, "get steering tag: mem_type=%s, cpu_uid=%d, tag=%#04x\n",
+	pci_dbg(pdev, "get steering tag: mem_type=%s, cpu=%d, tag=%#04x\n",
 		(mem_type == TPH_MEM_TYPE_VM) ? "volatile" : "persistent",
-		cpu_uid, *tag);
+		cpu, *tag);
 
 	return 0;
 #else
diff --git a/include/linux/pci-tph.h b/include/linux/pci-tph.h
index ba28140ce670..be68cd17f2f8 100644
--- a/include/linux/pci-tph.h
+++ b/include/linux/pci-tph.h
@@ -25,7 +25,7 @@ int pcie_tph_set_st_entry(struct pci_dev *pdev,
 			  unsigned int index, u16 tag);
 int pcie_tph_get_cpu_st(struct pci_dev *dev,
 			enum tph_mem_type mem_type,
-			unsigned int cpu_uid, u16 *tag);
+			unsigned int cpu, u16 *tag);
 void pcie_disable_tph(struct pci_dev *pdev);
 int pcie_enable_tph(struct pci_dev *pdev, int mode);
 u16 pcie_tph_get_st_table_size(struct pci_dev *pdev);
@@ -36,7 +36,7 @@ static inline int pcie_tph_set_st_entry(struct pci_dev *pdev,
 { return -EINVAL; }
 static inline int pcie_tph_get_cpu_st(struct pci_dev *dev,
 				      enum tph_mem_type mem_type,
-				      unsigned int cpu_uid, u16 *tag)
+				      unsigned int cpu, u16 *tag)
 { return -EINVAL; }
 static inline void pcie_disable_tph(struct pci_dev *pdev) { }
 static inline int pcie_enable_tph(struct pci_dev *pdev, int mode)
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 02:30:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 02:30:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253214.1549522 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0sIH-0003VH-DR; Fri, 13 Mar 2026 02:30:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253214.1549522; Fri, 13 Mar 2026 02: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 1w0sIH-0003VA-Ab; Fri, 13 Mar 2026 02:30:29 +0000
Received: by outflank-mailman (input) for mailman id 1253214;
 Fri, 13 Mar 2026 02:30:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OImI=BN=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w0sIG-0003V4-Mx
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 02:30:28 +0000
Received: from canpmsgout09.his.huawei.com (canpmsgout09.his.huawei.com
 [113.46.200.224]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 964348b8-1e84-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 03:30:26 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.163])
 by canpmsgout09.his.huawei.com (SkyGuard) with ESMTPS id 4fX7cg31mZz1cynf;
 Fri, 13 Mar 2026 10:25:23 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 847034048B;
 Fri, 13 Mar 2026 10:30:19 +0800 (CST)
Received: from [10.67.121.161] (10.67.121.161) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Fri, 13 Mar 2026 10:30: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: 964348b8-1e84-11f1-b164-2bf370ae4941
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=CVkB4K6yegSE+n79ThisbSxU7cMPDcr1n6IOBQnBrIM=;
	b=2MIeAfhQxyTndrqGx6t5o31MFsRiG77XtXY34XUO7DkiajhwGBA/mw3XKKYJw98GhroY7x9oR
	ZDuUg+PHLgfHz6ntw9twsM8tzX3A2VuZkh9UNQOhbLPswsT/Z5MluwK4Fi4c98OhfzTrgVYMsZA
	OvT6o9I1lcIszGmULdjTf3M=
Message-ID: <699a428a-6271-4369-83f4-8b1f2e1bfa42@huawei.com>
Date: Fri, 13 Mar 2026 10:30:16 +0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 1/3] ACPI: Rename get_acpi_id_for_cpu() to
 acpi_get_cpu_uid() on non-x86
To: Jonathan Cameron <jonathan.cameron@huawei.com>
CC: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>, Jonathan Corbet <corbet@lwn.net>, Shuah Khan
	<skhan@linuxfoundation.org>, Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui
	<kernel@xen0n.name>, Paul Walmsley <pjw@kernel.org>, Palmer Dabbelt
	<palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, Alexandre Ghiti
	<alex@ghiti.fr>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar
	<mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, Dave Hansen
	<dave.hansen@linux.intel.com>, <x86@kernel.org>, "H . Peter Anvin"
	<hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris Ostrovsky
	<boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V L
	<sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Kees Cook
	<kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>, Sean Christopherson
	<seanjc@google.com>, Kai Huang <kai.huang@intel.com>, Tom Lendacky
	<thomas.lendacky@amd.com>, Thomas Huth <thuth@redhat.com>, Thorsten Blum
	<thorsten.blum@linux.dev>, Kevin Loughlin <kevinloughlin@google.com>, Zheyun
 Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra <peterz@infradead.org>, Pawan
 Gupta <pawan.kumar.gupta@linux.intel.com>, Xin Li <xin@zytor.com>, "Ahmed S .
 Darwish" <darwi@linutronix.de>, Sohil Mehta <sohil.mehta@intel.com>, Ilkka
 Koskinen <ilkka@os.amperecomputing.com>, Robin Murphy <robin.murphy@arm.com>,
	James Clark <james.clark@linaro.org>, Besar Wicaksono
	<bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <linux-pci@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <loongarch@lists.linux.dev>,
	<linux-riscv@lists.infradead.org>, <xen-devel@lists.xenproject.org>,
	<linux-acpi@vger.kernel.org>, <linux-perf-users@vger.kernel.org>,
	<stable@vger.kernel.org>
References: <20260312072316.4806-1-fengchengwen@huawei.com>
 <20260312072316.4806-2-fengchengwen@huawei.com>
 <20260312110742.00002716@huawei.com>
Content-Language: en-US
From: fengchengwen <fengchengwen@huawei.com>
In-Reply-To: <20260312110742.00002716@huawei.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.67.121.161]
X-ClientProxiedBy: kwepems500001.china.huawei.com (7.221.188.70) To
 kwepemk500009.china.huawei.com (7.202.194.94)

On 3/12/2026 7:07 PM, Jonathan Cameron wrote:
> On Thu, 12 Mar 2026 15:23:14 +0800
> Chengwen Feng <fengchengwen@huawei.com> wrote:
> 
>> To unify the CPU ACPI ID retrieval interface across architectures,
>> rename the existing get_acpi_id_for_cpu() function to
>> acpi_get_cpu_uid() on arm64/riscv/loongarch platforms.
>>
>> This is a pure rename with no functional change, preparing for a
> 
> It's not just a rename.  This should mention that the addition of error
> checks and hence the resulting signature change.

Sorry for overlooking this, it has already been fixed in v7.
And v7 also fix below review comments.

Thanks

> 
>> consistent ACPI Processor UID retrieval interface across all ACPI-enabled
>> platforms.
>>
>> Note: Move the ARM64-specific get_cpu_for_acpi_id() implementation to
>>       arch/arm64/kernel/acpi_numa.c to fix compilation errors from
>>       circular header dependencies introduced by the rename.
>>
>> Cc: stable@vger.kernel.org
>> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
>> Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
> From a reread, a few minor style consistency things inline.
> 

...

> 



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 02:32:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 02:32:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253221.1549533 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0sKX-00040S-QZ; Fri, 13 Mar 2026 02:32:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253221.1549533; Fri, 13 Mar 2026 02: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 1w0sKX-00040L-MA; Fri, 13 Mar 2026 02:32:49 +0000
Received: by outflank-mailman (input) for mailman id 1253221;
 Fri, 13 Mar 2026 02:32:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OImI=BN=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w0sKV-00040F-Oj
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 02:32:48 +0000
Received: from canpmsgout06.his.huawei.com (canpmsgout06.his.huawei.com
 [113.46.200.221]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e6984d2d-1e84-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 03:32:40 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.162.223])
 by canpmsgout06.his.huawei.com (SkyGuard) with ESMTPS id 4fX7gG3N0zzRhQS;
 Fri, 13 Mar 2026 10:27:38 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 0A2E040569;
 Fri, 13 Mar 2026 10:32:34 +0800 (CST)
Received: from [10.67.121.161] (10.67.121.161) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Fri, 13 Mar 2026 10:32: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: e6984d2d-1e84-11f1-9ccf-f158ae23cfc8
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=droVX0NUC4A+GNH3y57ZGeXheGPpw9m67aw4WCFjXtI=;
	b=kwa1qp22L/gdJGPkqfbGAAXcu+LyOqhrEw20HKvhNdqzvoQKMdK9OzPtPhARsHhl6j2D6P+Zr
	j6GC+HeoE9kX8IxSB+U4y21CjsurYvoSHiov38HwUlAKYHAcTB7jnvqfYq4tyu+pAfwUx7PDu7P
	JI+N0ZgVvFlAzWAcsIeXyiI=
Message-ID: <90505ea3-d842-4092-9743-6ed58c59ca55@huawei.com>
Date: Fri, 13 Mar 2026 10:32:31 +0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] x86: Implement acpi_get_cpu_uid()
To: Peter Zijlstra <peterz@infradead.org>
CC: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>, Jonathan Corbet <corbet@lwn.net>, Shuah Khan
	<skhan@linuxfoundation.org>, Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui
	<kernel@xen0n.name>, Paul Walmsley <pjw@kernel.org>, Palmer Dabbelt
	<palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, Alexandre Ghiti
	<alex@ghiti.fr>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar
	<mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, Dave Hansen
	<dave.hansen@linux.intel.com>, <x86@kernel.org>, "H . Peter Anvin"
	<hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris Ostrovsky
	<boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V L
	<sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Jonathan
 Cameron <jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>, Yanteng
 Si <si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>, Kai Huang
	<kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>, Thomas Huth
	<thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>, Kevin Loughlin
	<kevinloughlin@google.com>, Zheyun Shen <szy0127@sjtu.edu.cn>, Pawan Gupta
	<pawan.kumar.gupta@linux.intel.com>, Xin Li <xin@zytor.com>, "Ahmed S .
 Darwish" <darwi@linutronix.de>, Sohil Mehta <sohil.mehta@intel.com>, Ilkka
 Koskinen <ilkka@os.amperecomputing.com>, Robin Murphy <robin.murphy@arm.com>,
	James Clark <james.clark@linaro.org>, Besar Wicaksono
	<bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <linux-pci@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <loongarch@lists.linux.dev>,
	<linux-riscv@lists.infradead.org>, <xen-devel@lists.xenproject.org>,
	<linux-acpi@vger.kernel.org>, <linux-perf-users@vger.kernel.org>,
	<stable@vger.kernel.org>
References: <20260312072316.4806-1-fengchengwen@huawei.com>
 <20260312072316.4806-3-fengchengwen@huawei.com>
 <20260312110205.GG606826@noisy.programming.kicks-ass.net>
Content-Language: en-US
From: fengchengwen <fengchengwen@huawei.com>
In-Reply-To: <20260312110205.GG606826@noisy.programming.kicks-ass.net>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.67.121.161]
X-ClientProxiedBy: kwepems500001.china.huawei.com (7.221.188.70) To
 kwepemk500009.china.huawei.com (7.202.194.94)

On 3/12/2026 7:02 PM, Peter Zijlstra wrote:
> On Thu, Mar 12, 2026 at 03:23:15PM +0800, Chengwen Feng wrote:
>> Add acpi_get_cpu_uid() implementation for x86, replacing the existing
>> cpu_acpi_id() function. This completes the unified ACPI Processor UID
>> retrieval interface across all ACPI-enabled architectures.
>>
>> Cc: stable@vger.kernel.org
>> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
>> ---
>>  arch/x86/include/asm/cpu.h   |  1 -
>>  arch/x86/include/asm/smp.h   |  1 -
>>  arch/x86/kernel/cpu/common.c | 15 +++++++++++++++
>>  arch/x86/xen/enlighten_hvm.c |  5 +++--
>>  include/linux/acpi.h         |  2 --
>>  5 files changed, 18 insertions(+), 6 deletions(-)
>>
>> diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h
>> index ad235dda1ded..57a0786dfd75 100644
>> --- a/arch/x86/include/asm/cpu.h
>> +++ b/arch/x86/include/asm/cpu.h
>> @@ -11,7 +11,6 @@
>>  
>>  #ifndef CONFIG_SMP
>>  #define cpu_physical_id(cpu)			boot_cpu_physical_apicid
>> -#define cpu_acpi_id(cpu)			0
>>  #endif /* CONFIG_SMP */
>>  
>>  #ifdef CONFIG_HOTPLUG_CPU
>> diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
>> index 84951572ab81..05d1d479b4cf 100644
>> --- a/arch/x86/include/asm/smp.h
>> +++ b/arch/x86/include/asm/smp.h
>> @@ -130,7 +130,6 @@ __visible void smp_call_function_interrupt(struct pt_regs *regs);
>>  __visible void smp_call_function_single_interrupt(struct pt_regs *r);
>>  
>>  #define cpu_physical_id(cpu)	per_cpu(x86_cpu_to_apicid, cpu)
>> -#define cpu_acpi_id(cpu)	per_cpu(x86_cpu_to_acpiid, cpu)
>>  
>>  /*
>>   * This function is needed by all SMP systems. It must _always_ be valid
>> diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
>> index 1c3261cae40c..3081557542c7 100644
>> --- a/arch/x86/kernel/cpu/common.c
>> +++ b/arch/x86/kernel/cpu/common.c
>> @@ -28,6 +28,7 @@
>>  #include <linux/stackprotector.h>
>>  #include <linux/utsname.h>
>>  #include <linux/efi.h>
>> +#include <linux/acpi.h>
>>  
>>  #include <asm/alternative.h>
>>  #include <asm/cmdline.h>
>> @@ -57,6 +58,7 @@
>>  #include <asm/asm.h>
>>  #include <asm/bugs.h>
>>  #include <asm/cpu.h>
>> +#include <asm/smp.h>
>>  #include <asm/mce.h>
>>  #include <asm/msr.h>
>>  #include <asm/cacheinfo.h>
>> @@ -2643,3 +2645,16 @@ void __init arch_cpu_finalize_init(void)
>>  	 */
>>  	mem_encrypt_init();
>>  }
>> +
>> +int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
>> +{
>> +	if (cpu >= nr_cpu_ids)
>> +		return -EINVAL;
>> +#ifndef CONFIG_SMP
>> +	*uid = 0;
>> +#else
>> +	*uid = per_cpu(x86_cpu_to_acpiid, cpu);
>> +#endif
>> +	return 0;
>> +}
>> +EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
>> diff --git a/arch/x86/xen/enlighten_hvm.c b/arch/x86/xen/enlighten_hvm.c
>> index fe57ff85d004..2f9fa27e5a3c 100644
>> --- a/arch/x86/xen/enlighten_hvm.c
>> +++ b/arch/x86/xen/enlighten_hvm.c
>> @@ -151,6 +151,7 @@ static void xen_hvm_crash_shutdown(struct pt_regs *regs)
>>  
>>  static int xen_cpu_up_prepare_hvm(unsigned int cpu)
>>  {
>> +	u32 cpu_uid;
>>  	int rc = 0;
>>  
>>  	/*
>> @@ -161,8 +162,8 @@ static int xen_cpu_up_prepare_hvm(unsigned int cpu)
>>  	 */
>>  	xen_uninit_lock_cpu(cpu);
>>  
>> -	if (cpu_acpi_id(cpu) != CPU_ACPIID_INVALID)
>> -		per_cpu(xen_vcpu_id, cpu) = cpu_acpi_id(cpu);
>> +	if (acpi_get_cpu_uid(cpu, &cpu_uid) == 0)
>> +		per_cpu(xen_vcpu_id, cpu) = cpu_uid;
>>  	else
>>  		per_cpu(xen_vcpu_id, cpu) = cpu;
>>  	xen_vcpu_setup(cpu);
> 
> This doesn't look right, it will now set CPU_ACPIID_INVALID, while
> previously it would not.

This is indeed an issue, it has been fixed in v7 (by treating CPU_ACPIID_INVALID as an error).

Thanks

> 
> 



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 07:05:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 07:05:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253268.1549541 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0wa4-0002kn-SC; Fri, 13 Mar 2026 07:05:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253268.1549541; Fri, 13 Mar 2026 07: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 1w0wa4-0002kg-Ph; Fri, 13 Mar 2026 07:05:08 +0000
Received: by outflank-mailman (input) for mailman id 1253268;
 Fri, 13 Mar 2026 07:05: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=uwFZ=BN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0wa3-0002ka-E0
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 07:05:07 +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 f3df72d5-1eaa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 08:05:01 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4852ff06541so17970525e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 00:05:01 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48557c66583sm13953565e9.21.2026.03.13.00.04.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 13 Mar 2026 00:04:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f3df72d5-1eaa-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773385500; x=1773990300; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=N8jOkHiXd1EfrhPo3SajjKBWEjcQ9wGxmz6VVii8k3M=;
        b=Zr01AhX4fVcBAPE1WqHZ3Oj08Z37Sq/6R+kJQzd72zRLqdER49rEMrRiUMRtenkf95
         Yw3g6c+clQ+PF/+MflGdidpK/N2+T3nOKvU5j4o6zhU7+p7HT5USIQQk91qseCCTca+9
         8Ri2ZINTmuX6Arx5YJVXweoD9fIcv6M3PEfVI9zcLOIMppMXgdNNbAFGbCRTj/aGuz1J
         Yyg9r9hot6XG0RdwW23ullJWzO915fGHUPL7bnQdqDYHPBiubk4e/mGopNoMZzL9wtgX
         YzqfVV880l65QHIQ93RkZLB7WHCQrDqWyZ1GdWca/H3IHUqkxn0AHtKxri3pAGyJjdTd
         7LsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773385500; x=1773990300;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=N8jOkHiXd1EfrhPo3SajjKBWEjcQ9wGxmz6VVii8k3M=;
        b=dw8PAMd2bpVbDqPutIgaFyOTPodg+M/hh6B0SgAyGjflNjaExPlp7bjQWjfnAtOuA6
         P//eZJIMBsLGik5K7lK31ZlXl0lrOPg1DBW/EQyPxH3ndCafj+OwhsosxfLv/+/b2L2o
         AJ/L7v6j7pVmp0si+QvifPGSeVwVmOvW9bKPSgdyusNowlCkdAwA23GenCJMSs0+SZur
         T90tseA/R+6MhzMeLtlXx4zAXt+IBMqo5qnMvMnWvGkn75d457wfWWb3epATD9rSB/HQ
         a+pGMpNgbEG5hxaXpir9eYHwEnAfmEp8B2GOGfwUuN8Z2UD+X62Pa/jnGLZMsXt59lGq
         iiWg==
X-Forwarded-Encrypted: i=1; AJvYcCWuUOOs7+8nk+ehc0xoiR31UsaTV0MyvCrsO02Rkhb4Q8R+f3lUDtnm04WE1uOgB9SBWiC8oeW2geQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyWgLbsbQNQGkN727z6pV0/FowXR8vLsu6Lg4EKha5x0H8WKAR5
	BGYYtSpENL2VaG+KBtE5etRKzpZMZmZagpOY+Cv2ZMuCNxM+AuWpfT/IbXCYkE2L7Q==
X-Gm-Gg: ATEYQzzaoHLJlkEjVv0kDSaMrelIhrYsHWaj3dCqYWUoyKHQ52dqOPQUKKpWVKGjYka
	pzDuif6/up+mfjSdBuejOuA9h9NOVxqyA1R4QVNv1cGd4ttRZjbNA+Y56lc9eHuQESefUMABsD7
	CTmSO/9Ht+Bq7dxXJoQgmrCk5XKaaIpWB7tou0UF8tNJJ4FJRRrtmS5fvoUEsN2B+6lukl1w0id
	bXimN2abumN/WGF3pbfa9btb178xNdMYV3StDU7pnmJRJOn8QT6FP7kkUmprPvHKvAL7I6czH4B
	pmSQM0rv9FTWPOOPRoJNppL8/qs42JuW+1kScaXI6+9EnpD3K+N2KRXGJ5TX+SAU2+8G2SOCJM8
	hYiFkxXM/y/iQDKfXL6nVl1p8gC+sZQS6TPz0FkwqEWATWnBIjXLjMJW9FRgl8k5aeQNtrI6JZs
	rpYL35tbjb5cumPGaouYSq4BKW4CWB4l6yWU1X2jcvBoJhSyrVm8mLUYdBnhZ3rtN7FdZjkoXWR
	m7wvy6/fq/Y5YI=
X-Received: by 2002:a05:600c:3487:b0:485:4eaf:eb14 with SMTP id 5b1f17b1804b1-485567052f6mr31803335e9.21.1773385500532;
        Fri, 13 Mar 2026 00:05:00 -0700 (PDT)
Message-ID: <7d4bd6e2-efcb-470b-a82e-83e693d28993@suse.com>
Date: Fri, 13 Mar 2026 08:04:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v v2 1/7] x86: Remove x86 prefixed names from mcheck code
To: Kevin Lampis <kevin.lampis@citrix.com>
Cc: roger.pau@citrix.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20260312204339.740403-1-kevin.lampis@citrix.com>
 <20260312204339.740403-2-kevin.lampis@citrix.com>
 <abbcce95-836f-4a06-a250-4480061ac3cf@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <abbcce95-836f-4a06-a250-4480061ac3cf@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.03.2026 01:01, Andrew Cooper wrote:
> On 12/03/2026 8:43 pm, Kevin Lampis wrote:
>> diff --git a/xen/arch/x86/cpu/mcheck/mce_intel.c b/xen/arch/x86/cpu/mcheck/mce_intel.c
>> index 839a0e5ba9..4d6b7d588e 100644
>> --- a/xen/arch/x86/cpu/mcheck/mce_intel.c
>> +++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
>> @@ -711,10 +711,7 @@ static bool mce_is_broadcast(struct cpuinfo_x86 *c)
>>       * DisplayFamily_DisplayModel encoding of 06H_EH and above,
>>       * a MCA signal is broadcast to all logical processors in the system
>>       */
>> -    if ( c->x86_vendor == X86_VENDOR_INTEL && c->x86 == 6 &&
>> -         c->x86_model >= 0xe )
>> -        return true;
>> -    return false;
>> +    return c->vendor == X86_VENDOR_INTEL && c->vfm >= INTEL_CORE_YONAH;
>>  }
> 
> This breaks P4.
> 
> It is not safe to write expressions like this, and I've already
> explained why.

Plus I had asked whether the comparison needs to stay at all, seeing how
Xen has been 64-bit only for a pretty long while.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Mar 13 07:10:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 07:10:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253278.1549550 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0wfd-0004Ii-Fc; Fri, 13 Mar 2026 07:10:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253278.1549550; Fri, 13 Mar 2026 07:10:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0wfd-0004Ib-BG; Fri, 13 Mar 2026 07:10:53 +0000
Received: by outflank-mailman (input) for mailman id 1253278;
 Fri, 13 Mar 2026 07:10: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=uwFZ=BN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0wfc-0004IT-8p
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 07:10:52 +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 c4163377-1eab-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 08:10:50 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4852ff06541so18018185e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 00:10:51 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439fe20b544sm16037226f8f.20.2026.03.13.00.10.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 13 Mar 2026 00:10:49 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c4163377-1eab-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773385850; x=1773990650; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IkELls+cI5NtJoMoohsJg9eiOC1UmK6cR3HNcFjiUX0=;
        b=OB93GFTUVDeYHUveOnK/IlNToflKll3Z2qoftyNgavoEu3d6EYp7SC+X0EUsA08k1r
         bKE+eGpoo6NSlxZs7LittOulb6UGQX6Il6oc6p5BQe+1qfZnV5kk1okS4AU2uBfaagAJ
         818Nbbguf7S/kkt4yuQYQ9H/qJTQgjvTtpOGnFVX7G4vKHY/ZBNrtpr0n57bqe9sLGbe
         Ih3M/3mFGXE0k8wn3ZwkZ0puavnirgQgBWH3BPm+VjLpSRu64PmGC9XW0gn4h0/HS5fu
         zs9Hv6Ye/bwhZs7d/h6xqGCCLZIFIDGHJ9Isw0TgcWbYHQHmyMr7a2f+C0diYYSN7RZK
         cNQA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773385850; x=1773990650;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IkELls+cI5NtJoMoohsJg9eiOC1UmK6cR3HNcFjiUX0=;
        b=Hkwa+IjggJ36AwwEkvZ8rm/BoOEL6mWIu8K71M1uiWH85WfOdLCF17/o6AHXyzybQ/
         6RFk5LMQ98EoLzhnaiqpChF6zqZYZp5P63PyF35RV+xeWk5SESw7/0TkSbLVn2Gf0YgA
         qvISs6Rz45Yj1qGdIg3k/9yWs2ik3ZJ9afh33ql6/IrNqaPDBJumC43PgA05COw6rJ5O
         DGtNbYKpZJmTIpXAzNCnGzj7iNj2oG/bD8QOKuy35mKySTHeq8zeeC5CPfv1eTZH9zWR
         1fx9svsVLmvSiKAgVfR9Ipkzfrgu/3tDdWD3Wp2wDY6HetvpsB8OJpsG+YvUTU/RUBqy
         enGQ==
X-Forwarded-Encrypted: i=1; AJvYcCXbe1zU6LDS+VudgYgXSDHR6FjHGerFpYcqMxjIBf4qP4Ih0VYOybq19g0nWkMGNxYaWnl4Sgt1wh0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwUCVp2+zA1n7s3um+NBSBRi6740CnbAG6jG6Hk1lnZDKw+7xWp
	ZkHKvZPfVnkF6Kx48qvv0LLuxiH7Lp5DXDLdJWK45+pBOL/zuKAVzvBMzAbA+AJXzz1Y4K1RBA8
	VgJw=
X-Gm-Gg: ATEYQzxsuz5/vGWODGoXun6W82CzNlRAAknKSYK+zN6qL6l7Bsq3dpElGzTODImmG86
	YUSSNFPT1BmEcXVDFVZRV2H9OdFKxrK4ZZAKNeoe4Ze+Z8GMS9mDk/2VSg9SoIaGywmJIELbraW
	6vTNkap1uuRj1Z12wYUhYb6UrxJDUiw4kUPRnR0YDEWDViYBc9cBuX/Rt9HyscT/GNUp6vHXOYN
	5XrxotvsWNuv5RyZWYciNJIKmWVz9BS2CM6dIgdnydGLxRv2KjUAemnSOqT0/lja52eGXIf82EA
	VMTdwvwgx07KzJJcCk2A9CJY/OgyjQK2Eh9WqwGRpvROMPdpTQu9mpH4MMwJfRnM/1PjByhEAn3
	qgHk1047cz/tZcbNfRsH8G9JTT+3gbU5CWToVxDVwxo5QtJUXpJZflNCKBwXdyFXfiefYfN2S+x
	iqoXlhdsjFqb46PBxL+vcGQJXp8F2z0LXJkbY3FlKI5YueeZltj3Dr6vIw9DtcrQdHmS/zCLWcS
	ZlTLuw2zOx/nzU=
X-Received: by 2002:a05:600c:64cd:b0:485:4533:9c47 with SMTP id 5b1f17b1804b1-48556705203mr31220845e9.22.1773385850347;
        Fri, 13 Mar 2026 00:10:50 -0700 (PDT)
Message-ID: <60349979-7dc9-4ff2-9043-957cfc039c6a@suse.com>
Date: Fri, 13 Mar 2026 08:10:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v v2 2/7] x86: Remove x86 prefixed names from acpi code
To: Kevin Lampis <kevin.lampis@citrix.com>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com,
 xen-devel@lists.xenproject.org
References: <20260312204339.740403-1-kevin.lampis@citrix.com>
 <20260312204339.740403-3-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: <20260312204339.740403-3-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.03.2026 21:43, Kevin Lampis wrote:
> @@ -1059,8 +1059,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 &&
> -        (c->x86 > 0x6 || (c->x86 == 6 && c->x86_model >= 14)) )
> +    if ( c->vendor == X86_VENDOR_INTEL && c->vfm >= INTEL_CORE_YONAH )
>              flags->bm_control = 0;

Similar issue to patch 1: Here it ought to be possible to leave just the vendor
check.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Mar 13 07:13:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 07:13:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253284.1549558 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0wiE-0004o5-PZ; Fri, 13 Mar 2026 07:13:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253284.1549558; Fri, 13 Mar 2026 07:13: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 1w0wiE-0004ny-N2; Fri, 13 Mar 2026 07:13:34 +0000
Received: by outflank-mailman (input) for mailman id 1253284;
 Fri, 13 Mar 2026 07:13:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uwFZ=BN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0wiD-0004nn-GD
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 07:13:33 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8c4d09f0-1eab-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 08:09:16 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-439b97a8a8cso1866786f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 00:09:16 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439fe1a78cesm14389330f8f.11.2026.03.13.00.09.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 13 Mar 2026 00:09:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8c4d09f0-1eab-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773385756; x=1773990556; 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=rNQqkakXkY5AZuL5k/v2o9SVFrUQhvFa7P0eANxrizM=;
        b=ekv468Oxeb5Z5DzlSnrmk691A0fpC9UdUb4GdNzmoSAufyVAJx1NzMjCwdIg7by4n9
         T7OYfTNwsl/6kI73dhV4TReCuVZ4PRO0Uud6M7ggyZAzVqD9+MTm06/PiT8KTBF0Ai9a
         HD9aNqd8L8iP8VKUhuS1K/y/zMzgjtEjAT4ALDKvBr7xI5SucmJDe1dpy/eL1x/KpCQY
         QA+stSSj0vFXYit2VZt6T2GPTLVYpMufvA6ai13/PF3swvUN553Na4td+5/DCPKipium
         gGqZA4z6G8HyNqdmONH4gs4HRP2WSviNcN7jF5IcFUY8qjZBACV4uNxEp98PW6dO9UG4
         nMHg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773385756; x=1773990556;
        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=rNQqkakXkY5AZuL5k/v2o9SVFrUQhvFa7P0eANxrizM=;
        b=Ed7VaXtGsVG1Z3eLXJ1quDAEAoGlrXK+t/EsON617qq0wRctCEF2TklfTBPC7FqNHW
         7osjnusuFFNpdkd8t3YQhVr4dtek0IINyy91NfGqbLVHCLO9OOpg0hdVlv7JxtDso13+
         YNPLffvYUu64BI/2MuhfCod5nmakBU0kPTlSkayMDTxxnzI0RGwppfwFsJD0iHXHxWJB
         lAkxKm3hpva6oGcIb/Z3i0sXm3px3JYKSArItCC2DZYvgdwC+IdumkDI04ZBlOfKFiv2
         Q5yPn1cBtMVofAPTK2SSwROt3t2Q2TBDtyTwlNa3VC4WYbLEwCnnXRux/RMb1q3fXQWg
         LJSQ==
X-Forwarded-Encrypted: i=1; AJvYcCXeZMfqt5k3JP6XhTIqYflerjwQA2n77BKmjjC5rRPkCa4UaD8OZpcSJvOdttAbIHEanNp/axkMe5w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxPDwrRAopCX6gJ56+M8rDc+XwZyxS6qLnpgJGFPCB5Wr/BwwaI
	2ZNPhXByYX4z/0fh+fAmDKNHuZWu+YWwkv4nQbuMeBFnEzgCOJ3CI/RIzRo4zv16QQ==
X-Gm-Gg: ATEYQzzAx6fYtdwtcpsLtwc16PbPLuPQ+lm6vABhdVHE3yNIu6UHaHls3D9E1MrWhhJ
	xG8rhDGeb2moXzDjkyaAA6nTdzreMd+pgwYPEY/XReJcnbl8H6FrDfuTAfVl17ftz0T+FqNyvBo
	Hgi3i29VhWfuAij3dekEXtBwxPiMuf+9Kr0Cq7EW/kh5wK8/WWTckF2MK6Zd16SXJb/5m7FRQTr
	kBIxw+RPK6EZCHQtBYNNGTLMVH+YblLPhWz0+calXbho0dueT2dNzpysOw5duXcvJWr7C7YyWBw
	p/TcF8L/644P7gj9hPqlt14s65orJ936WB/uoCjNUIpLI1PDFvKhOqnDgww1u8urborzdYh/Cyt
	1QSW+mOgZfeRXK5UcWfe9/HG8yYX62sOuPF2dvIGzkMNBSzsUVIn+Wo6vJxtbOOcEvxO6vuQhJ5
	n4rfAIR0DrtThZR4FD2uCU4f/U86teE8Mr8QKOeHbvyQDWoSbQjoXVoQUPcHygaiiTBnag53qOv
	P8gJ+85NY17RVs=
X-Received: by 2002:a05:6000:1847:b0:439:bc31:a056 with SMTP id ffacd0b85a97d-43a04dcb7fcmr3876604f8f.51.1773385756169;
        Fri, 13 Mar 2026 00:09:16 -0700 (PDT)
Message-ID: <71ca64fe-63ae-4644-96ab-6912ecc0c8b4@suse.com>
Date: Fri, 13 Mar 2026 08:09:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v v2 1/7] x86: Remove x86 prefixed names from mcheck code
From: Jan Beulich <jbeulich@suse.com>
To: Kevin Lampis <kevin.lampis@citrix.com>
Cc: roger.pau@citrix.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20260312204339.740403-1-kevin.lampis@citrix.com>
 <20260312204339.740403-2-kevin.lampis@citrix.com>
 <abbcce95-836f-4a06-a250-4480061ac3cf@citrix.com>
 <7d4bd6e2-efcb-470b-a82e-83e693d28993@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: <7d4bd6e2-efcb-470b-a82e-83e693d28993@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.03.2026 08:04, Jan Beulich wrote:
> On 13.03.2026 01:01, Andrew Cooper wrote:
>> On 12/03/2026 8:43 pm, Kevin Lampis wrote:
>>> diff --git a/xen/arch/x86/cpu/mcheck/mce_intel.c b/xen/arch/x86/cpu/mcheck/mce_intel.c
>>> index 839a0e5ba9..4d6b7d588e 100644
>>> --- a/xen/arch/x86/cpu/mcheck/mce_intel.c
>>> +++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
>>> @@ -711,10 +711,7 @@ static bool mce_is_broadcast(struct cpuinfo_x86 *c)
>>>       * DisplayFamily_DisplayModel encoding of 06H_EH and above,
>>>       * a MCA signal is broadcast to all logical processors in the system
>>>       */
>>> -    if ( c->x86_vendor == X86_VENDOR_INTEL && c->x86 == 6 &&
>>> -         c->x86_model >= 0xe )
>>> -        return true;
>>> -    return false;
>>> +    return c->vendor == X86_VENDOR_INTEL && c->vfm >= INTEL_CORE_YONAH;
>>>  }
>>
>> This breaks P4.
>>
>> It is not safe to write expressions like this, and I've already
>> explained why.
> 
> Plus I had asked whether the comparison needs to stay at all, seeing how
> Xen has been 64-bit only for a pretty long while.

I realize dropping it altogether would break P4 too. Looks like it wants to
be c->family != 0xf (assuming families 18 and 19 are to be included).

Jan


From xen-devel-bounces@lists.xenproject.org Fri Mar 13 07:13:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 07:13:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253287.1549567 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0wiH-00052D-5m; Fri, 13 Mar 2026 07:13:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253287.1549567; Fri, 13 Mar 2026 07:13: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 1w0wiH-000526-2M; Fri, 13 Mar 2026 07:13:37 +0000
Received: by outflank-mailman (input) for mailman id 1253287;
 Fri, 13 Mar 2026 07:13: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=uwFZ=BN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0wiG-0004nn-4s
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 07:13:36 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 03ff099f-1eac-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 08:12:37 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-439aa2f8ebaso1168176f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 00:12:37 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439fe19abbasm13926207f8f.6.2026.03.13.00.12.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 13 Mar 2026 00:12:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 03ff099f-1eac-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773385957; x=1773990757; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GGhBrb7u1rRYduAazJAX011huIjgs2Tgg7Xm7GSHAKM=;
        b=XfrCi9jyW/QTNdiIoR3HDZO5Agk8uYHPtZ1Uh+JY5rKnqY+r0Kfk3qvg7m73iO99m8
         Wwgk5asu+kN+SxKGeIp3HD8gV47f3aoluvTjlK66tKEJ6YmLbYDL8IYXaoZkLoukiYZv
         BquzUTZIIeGLA4rFLQfS6KjWrpm6MLd70b1EjsUq4hczRpCAI7aXkEsL1NjAFk2Sq85U
         zHRZDfstijB5IBp/SKw02Tkt5+P1g7G1mRBfoxQRdX0XMeMkGSm+FZSwrxI0jzxAldn0
         w1HBBYRWRk9vBdVtuOfoh+fTIWg16MVCnbFdhJ7EERXdM/IV5NAwsELfRdZbffaoPElv
         9+gQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773385957; x=1773990757;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GGhBrb7u1rRYduAazJAX011huIjgs2Tgg7Xm7GSHAKM=;
        b=EHKmaGAbh4U2t4/sivg0B/6duYw0VAKJ7+R2h1J4dNTV2LExBs80dg1ecxiizq+qNp
         40MD5BZPPa3oxYH1lYhFHM76u1kpy8OSyONsEBbyxybdCfLEpzv/hw7Q1/N11AEMQtQu
         ZWL344qlBbtCxz+LD12+VWmw6NscuFt9gB4LfB2t7TImKu12rYHDC05fmpYZAATRQeZ/
         jd7ekRCAH/KYin4Cczz/FpDjbUkDU23qu5wa3NscN9amHRKoi8dB2OTCBsABFSnSpnaL
         +hrq5ejcPk3kcCxEv4J0+9v07Evaoao+8HS8glEbiS+gV001jklxaNw8xcK6C+1BdbgU
         9CeQ==
X-Forwarded-Encrypted: i=1; AJvYcCXEPl+RGVNyEvhF9wVpjte8xxBoxivSVlYNmYCeh2U6bdrHCUCk3m6BlhqHdP6yrbnVLEVfGet7N5s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyV1hjwfLvfjJ9t6XdZ0XJugm1oYlYSHnn44mfmAvOqi3HaosYp
	2Hr7UDiMEOYvgjA560iY2Xl5GQQsiHLrhgYVINoMkFyIlJURNB+dkcSke+Vn7twzKg==
X-Gm-Gg: ATEYQzwKsCeFjd70B5+lFstf0LcrnsfOYMDWRlROmpV9jEHhvWhqXs7fgw5XdYFqUxS
	kbzUJUSQLC0f151c0JbAx4FauPJgQjqxPun34PDvVGAzQtQLV+g+ePGADq6UAru+DGnOUakwvL7
	HOh/m227Q9rLXIXaZE9TJZpW8wZfAvTngcJoUwp3GD3NbpjrPHsLihqyupVStySuACmFhKxpurb
	d/Lobv9gxH/skg11ztCgpuJg105BL7tMF8yoFKaU7t3uSrhDqLGBlVWzpSMCOe1Mx420UiZiExX
	bT4AoYkC34dxCAnxktGmoyO43jY3UygZBPe7D1fjkzvAQdpditNts7qMII53SQ5h8EJWloG3phx
	MlQc6zzUfAuZ1j0WmSeMNwsjcvabnX0R9FX8BZcCKaTVxlzoqd73ApyVp3QZRwkfPN9sPYPlXIe
	EHtHvctnovTXL+HUtPtwVMEzEn0ZPeUXQpjv3f0/Nllg1Z7dRbQJ6wg/HhbUOalc7BGpkNGPYkE
	B+JUfHaDrWYsts=
X-Received: by 2002:a05:6000:381:b0:439:afc1:ec64 with SMTP id ffacd0b85a97d-43a04dc8ab0mr3945842f8f.53.1773385957113;
        Fri, 13 Mar 2026 00:12:37 -0700 (PDT)
Message-ID: <01bc5b3e-52c2-40b7-8639-0c42c21ded12@suse.com>
Date: Fri, 13 Mar 2026 08:12:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v v2 4/7] x86: Remove x86 prefixed names from hvm code
To: Kevin Lampis <kevin.lampis@citrix.com>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com,
 xen-devel@lists.xenproject.org
References: <20260312204339.740403-1-kevin.lampis@citrix.com>
 <20260312204339.740403-5-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: <20260312204339.740403-5-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.03.2026 21:43, Kevin Lampis wrote:
> struct cpuinfo_x86
>   .x86        => .family
>   .x86_vendor => .vendor
>   .x86_model  => .model
>   .x86_mask   => .stepping
> 
> No functional change.
> 
> This work is part of making Xen safe for Intel family 18/19.
> 
> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 07:23:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 07:23:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253305.1549576 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0wrm-00075M-0U; Fri, 13 Mar 2026 07:23:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253305.1549576; Fri, 13 Mar 2026 07: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 1w0wrl-00075F-U4; Fri, 13 Mar 2026 07:23:25 +0000
Received: by outflank-mailman (input) for mailman id 1253305;
 Fri, 13 Mar 2026 07: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=uwFZ=BN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0wrl-000759-2j
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 07:23:25 +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 848c9721-1ead-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 08:23:23 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-439af7d77f0so1499460f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 00:23:23 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439fe1a78cesm14490137f8f.11.2026.03.13.00.23.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 13 Mar 2026 00:23:22 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 848c9721-1ead-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773386603; x=1773991403; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3Cy7NXRUUo5T2iDvhcxNwt86vTSqUu0LuvJ3y52AN6c=;
        b=QUIRctsymibWKECAZji8aGULQ2Z3TDBVSx6t5BadBiOwDSVh6EB+/dBcLTUXIqyZmk
         ibc4mmLn2dGK6T/ZOmRGLSqYVw+qVIdOe8sj04lmVmKyRoNVawbD9pOC0py7W6+x/KsM
         1V/GiU810CW6tiGrjPpTAwtg5+ZjBrKSJRcGQC5MyAZN8gF9pAgW9Jc1oIzYQ/F53eKx
         9Y8CiWDHsPrDO6FXsvHVeOEHZyN7C7Yy8L+P0PFZ66KEh8UWUNoD/Cyo6YF+EnUib3Sk
         rmu1vws0CIpEdCyaLVs4lnxhrB+ic9Fjyj4hg1ixB/faHKijTQH3/lmTAsUYE/mb85nT
         FXJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773386603; x=1773991403;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3Cy7NXRUUo5T2iDvhcxNwt86vTSqUu0LuvJ3y52AN6c=;
        b=tAVadVOV6albKUkJ80UKpula4srSAV8NS5p8kgaLV0sD/mMYOxqEBXomiYpzB65QeU
         lc3k56ojal9yhkB5tvIVELMLs54w21bHDI/KPqvB/od3gdYtxuDWHy0hjJZ/ygtwIRgC
         kq/F39520to1U4sY9bC08ZkWEj8NgIP1KOXlt5T5OZUBjSLUiEwrd+5VTWDXioUjUUhf
         wynCo0VO6/JnSC0eznTec2ofZFhtyrL9dJLaR6Pnit2DrUwaGmk4ynuvX5iPEoNntpyZ
         yrjrc1107SrHFjnrx72yfSgwfONXgB6NxO46kKDHMiIX5oLgyDCHaD3WWp1TcZgqJOLf
         B2aA==
X-Forwarded-Encrypted: i=1; AJvYcCXvCUQWrUHHRgu/jhKr+9Vfrw7bgM4VKp61ywsrjhGvXG+e2fo77xhtYcGowlP387ylwcVWnKkyTWE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwRsRhhHao6uDgGsxlwdbX9DuuxCdDCc4PxDzr3mASc6F1994ki
	0T3/c2vcbXb6/CKPOIRf4uJtFYtAMLPJmMxyY1NQOjcFQRDPoSSK6OzgVrJgw6gCjA==
X-Gm-Gg: ATEYQzyrLVkUpr6wAAQGDxlig8c2e9hfYclgPHtNs0q2pPysR+RzYJ9VdVxm1su5oTF
	8DcrUHso7RkLJ05WMfsgzhZwsTd/PsbWLGSrsFF6kxP0kxuF80YWcTfhTQnMshhRR42toldWsrR
	Im5CH1QXEan+5yXUbiQ658ZmICwK7K0WnfIpznQPSfBgdD8VKhzdZ5v6jWoKNJddWepTPu+6MGD
	LCtEHZQNXTERII5iDaupP3OYHxy/GX3U05GzXjDOBSt9exa1C5QmIqHVuQGGmNAtwXX11bwiVU+
	DSGMRIvNLKH6wZbRvBptRqvjFEyOQ5ItO8Ybe9qCFoNNQ89zg8yKn10nsQrCfwDKOBc4Wc0lh61
	3YfOuwiTX9XiQ6QUprfEbgJuccel3yDII2A12jZvg2315Sj/kefZLaZsVPT3I+M7UVN9E3CTHF6
	KHJ3JSsaMSksOrm0ci9OK8NGY8Qtge3NMkTv5AD79O2AKYHdWW21HyDfXMG4bKDCIdSazqBNHIw
	PRlgxdILyQIRWE=
X-Received: by 2002:a05:6000:2508:b0:439:b940:8bf7 with SMTP id ffacd0b85a97d-43a04d78f7emr4283594f8f.11.1773386602822;
        Fri, 13 Mar 2026 00:23:22 -0700 (PDT)
Message-ID: <8ebb34ea-77c0-49e3-b6b4-98d1f6723277@suse.com>
Date: Fri, 13 Mar 2026 08:23:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v v2 3/7] x86: Remove Intel 0x65, 0x6e, 0x5d from VMX code
To: Kevin Lampis <kevin.lampis@citrix.com>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com,
 xen-devel@lists.xenproject.org
References: <20260312204339.740403-1-kevin.lampis@citrix.com>
 <20260312204339.740403-4-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: <20260312204339.740403-4-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.03.2026 21:43, Kevin Lampis wrote:
> These Intel models were used in cellular basestations and not regarded as
> general purpose processors.
> - 0x5d (SoFIA LTE AOSP)
> - 0x6e (Cougar Mountain)
> - 0x5d (SoFIA 3G Granite/ES2.1)

0x5d appears twice, while 0x65 is missing.

Further, 0x5d being listed in the SDM, I think there's a little more to be said
there. I wouldn't be surprised if there were multiple flavors, distinguished by
stepping.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Mar 13 07:24:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 07:24:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253314.1549587 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0wt8-0007aE-Ar; Fri, 13 Mar 2026 07:24:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253314.1549587; Fri, 13 Mar 2026 07: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 1w0wt8-0007a7-6m; Fri, 13 Mar 2026 07:24:50 +0000
Received: by outflank-mailman (input) for mailman id 1253314;
 Fri, 13 Mar 2026 07: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=uwFZ=BN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0wt7-0007Zw-7u
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 07:24:49 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b695261c-1ead-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 08:24:46 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-48534b59cf3so16376535e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 00:24:46 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4854e2537c3sm181300245e9.15.2026.03.13.00.24.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 13 Mar 2026 00:24: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: b695261c-1ead-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773386686; x=1773991486; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GGhBrb7u1rRYduAazJAX011huIjgs2Tgg7Xm7GSHAKM=;
        b=YTzzdQrwELeXHMD+gbOfVQLDYbLHUe1dftVf3DOafw3Upus8rqGOJFBBSV2DLtwSC1
         XQjgdjC/Su5Wl/pX2QpOI77tJwrmkpB9uLvee38j4L5St8feUOKYyQypRKOAEEDITWcN
         NXS5WzSSTXw68VIer8hRkpO6uFv/L43emJNwvTs+UfCeyS08yRZ1g8aXulQvETbGWfIu
         hcD3DdUvf/16y7nBVRdwBpUURV7fkwQlEwMMXmSHbElNzPpWWDOFuykfpvSwgKzDB3JU
         rDDC8pGXHEcud726JPMT06+j4gdToinLJc09xTdi0rRnWRj7SHmGfSX57zJgKUTp+mUi
         46wQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773386686; x=1773991486;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GGhBrb7u1rRYduAazJAX011huIjgs2Tgg7Xm7GSHAKM=;
        b=Tsr+3pEwaHbcoMeMzbEEkG8ScDD8WXekpTe7fIdE1defq7eJCid2E+U1U+uR1f+Yp9
         OZDVomQfjm9T+vZXzg2AojGc3urBdBEqwL1C5rjDmdr5BdQ+NtsNHXnOI379O5rPqG2h
         eRXYXLNepA6CCDKJ4N7I0reTUuMyyC9nJhGTSUXh56BYUnGanLmsl+jj7vGOMbEa0Dfg
         5rftboXO23I7GVRIk5O1CQtJNRvU/bcOcvuhDDQwHUZ8YZDpGB3jULzvHxyCINHj4sfa
         iD1X63DkfcPHI4AU4vVPmW7ChUcOvP91B4npOLOZD+6UvPHIxcqqReo25H8G6rkrmtSo
         ogcA==
X-Forwarded-Encrypted: i=1; AJvYcCWDWswI1Soi40oF2dE4J8o2wCtl2gd5/4liNeutYO4jDOEkhfIIy2iNQyIPKZgyk8mtczgjFinV6LA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzLK7DA+OW9b9C2/fDFv1p2Xsi5cxzTUP6m6p/WX4MreQJONdaf
	2gCWDUCQ97mvjKYQq09fRfat2NLVFqV0Bk0DCwANbIP5ANj3OdHE3m6nK4FWk9OEpg==
X-Gm-Gg: ATEYQzzue0549zNlld650++ZEp7u/0fNMvZLojfJBBlgVV0jqpAsNBXTHYpYEn7TfVC
	bmEaHwzynUOgebHi+tuLiGnehCcRFH4kdaKY9qP9KsBtn5/a4tRIP+BYfZa6ACIX9xTX+WsDAau
	lFn07oOTgLMUUEXl9Dg5zGGP46b8OBEKDL8xRSVm7KeWxKUHypJImrI9MdvYaQUZ1m8YP74e4Ci
	R1gxFAMpuLNRUGP0sGZQ7Ot9lpxz5Boy7LzMbfn+LHcLsIyu0IsM3C+oJDs6TxQuB2D2tI1Uqk6
	4lmuhNBTGzYGpVBQioSSakZtPsrhQX9SfKXo3iKS7sGKLodCAYbuN1LGruKRoc3xjXc4scWqn8d
	J3VX0rNnqTpNxhUAorL4Fy3kz7itrP/XhSgUCNSrzR2wNebgGIcZRhJ1uNozsuwVm7JHqLL8kil
	loal2LiVzATPLA8duBw7CiBjVB0AnEBn9d9ESen7mqplfxpjJ76tvUAzcz0vX9tPLZo/aXmg+Ll
	N9bZH7AmYliLGg=
X-Received: by 2002:a05:600c:4f8f:b0:485:3423:727d with SMTP id 5b1f17b1804b1-4855670c095mr33038965e9.26.1773386686185;
        Fri, 13 Mar 2026 00:24:46 -0700 (PDT)
Message-ID: <9b6f5586-d941-4c26-a089-1a4b04be5bf4@suse.com>
Date: Fri, 13 Mar 2026 08:24:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v v2 5/7] x86: Remove x86 prefixed names from x86/cpu/
 files
To: Kevin Lampis <kevin.lampis@citrix.com>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com,
 xen-devel@lists.xenproject.org
References: <20260312204339.740403-1-kevin.lampis@citrix.com>
 <20260312204339.740403-6-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: <20260312204339.740403-6-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.03.2026 21:43, Kevin Lampis wrote:
> struct cpuinfo_x86
>   .x86        => .family
>   .x86_vendor => .vendor
>   .x86_model  => .model
>   .x86_mask   => .stepping
> 
> No functional change.
> 
> This work is part of making Xen safe for Intel family 18/19.
> 
> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 07:25:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 07:25:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253320.1549594 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0wtc-000812-Gv; Fri, 13 Mar 2026 07:25:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253320.1549594; Fri, 13 Mar 2026 07: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 1w0wtc-00080v-E7; Fri, 13 Mar 2026 07:25:20 +0000
Received: by outflank-mailman (input) for mailman id 1253320;
 Fri, 13 Mar 2026 07: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=uwFZ=BN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0wtb-0007Zw-AV
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 07:25:19 +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 c8f60740-1ead-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 08:25:17 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-48534b59cf3so16380205e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 00:25:17 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4855638cebcsm31565965e9.0.2026.03.13.00.25.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 13 Mar 2026 00:25:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c8f60740-1ead-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773386717; x=1773991517; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fBIM0cz8SulZ6LTCbPlvvw+7SrAlHgp+BnCEcAiWuAI=;
        b=UUAmrVkuQDcXS7LQwzF0yX/PIpC0ALptV1E13sI8jfP4S48uNhbLLWfz8D/k6fSiMy
         qcOV6e7reDgsrRzACY8xJm8CYsVA7pvhh4lflg65GR6Zed/EmiwEbsZGLHEQBzL2ZoQO
         sUeE1P0k1TL23dPwRUTIMpYoVLiHnlsPUPLCQGOHC4zwYNiZqI/ded1c2vMjTAQgb2LG
         YegaKg+Iqo3hiMOzinUYcT3/L0YZlFfVzASP1s5hfxL7b1UnD6KGIXV52/sQxElHlHbq
         bKR95fQbNZpQJZCDluhmJoZFFVMOlrGI9gDMoUSdA7cc0rQJQEAq4r6MVTcbt/TTfJjK
         6UiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773386717; x=1773991517;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fBIM0cz8SulZ6LTCbPlvvw+7SrAlHgp+BnCEcAiWuAI=;
        b=USSn+nfKKASsooYxqGFoPK/zRCZcucaXlFmnXIMwIvfz3/giM+TvhKQ0LgZhmlgmRG
         ebP0UNxbt7ydbJAfIVyL20jfmb+SQfF+cORqJ/efbxMd1FMqSBAUsDf/kDKrhRBDLS6K
         WtP8uQ7SsNlyQlfhsZiBOhq7EQWECan1zJXJt8TydQM4AYZFN+GMPzN2kWBX4Yo7luDn
         riZcgkIXLOv5QSadntbvdzQR8hB2PJdpBLLaXXo5cTou7nWWea80NLaf969kCwjlD4KK
         Bwiz/EpheZGsNcnDFsjdGiYU6tUSvyg2Qj8MVHM5mThq/IhiRJFQjElIwP3bGn6vnNea
         mC7g==
X-Forwarded-Encrypted: i=1; AJvYcCXBqya9l3ETPm1ct7GP3+4nlJ4nak/lgEAnzn6tbOVzXgS0boCLcXkVulf4cXW8w6slRxvdkEBG0dw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw7yzJfdnQEIgc5bcgwvwgHX/wjRBe6TT+aVWE/pCdIjGCi1Wus
	LbUifYja7A5czJB/VgGCOcgEJE6IRwIiPBI444s7XMt5QhnPlTyTmshWfRnZuAp3QA==
X-Gm-Gg: ATEYQzy66Ymv2CkfdAox7qGCpYjoZYgwnB3MdO9Iz5mIu2Rbdju8Bncquxk4le7SN2J
	iEhLOdGmPAMELVMpoVEQ+4rIHyYEh5KpODIzsngk8VhhIDtkRuV/ED7rcwuNS0uMDdnricFjfsY
	wfEaIUZA6si1iXhaoZuE37EADjxLSC0H9KNbaqhlZyAQThMJqyYx/MxopH7QgrJG//eyFbSlJKB
	DMfvziiXtV7JmZ3/joqcl2ao/ky4w8whn50yNy4714ouJwUUx+GJIi9ENBNzGR9T6VVwwSVFB5z
	HzdlKqxr88HoovHpP/2957YvlralWRUzf4RRZQQYb+UqxjFQqr66A5NM+tRVFp2H+INvtAoFBQT
	ELqQDXXBHaj7vkn2+tP6kmPmc5X+5HcJuYFZzBYN3vIZrCTPNOGCQoTXzSNPdPsuXPN5xBvZ3MV
	sFz0epqtB6PCI51+TUMdTQwzu1Al28fjwdI7SpvUB/EMU8yUeLZ5IninQg0onJQKfslhigrM/qd
	qnlfO9/U+ritPY=
X-Received: by 2002:a05:600c:3b14:b0:485:3aa1:a7f0 with SMTP id 5b1f17b1804b1-485566cfbadmr31426855e9.4.1773386717086;
        Fri, 13 Mar 2026 00:25:17 -0700 (PDT)
Message-ID: <867de2ae-4eaa-4e39-abcb-5f8b824e37c9@suse.com>
Date: Fri, 13 Mar 2026 08:25:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v v2 6/7] 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: <20260312204339.740403-1-kevin.lampis@citrix.com>
 <20260312204339.740403-7-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: <20260312204339.740403-7-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.03.2026 21:43, Kevin Lampis wrote:
> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 07:26:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 07:26:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253332.1549604 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0wun-00009q-Q6; Fri, 13 Mar 2026 07:26:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253332.1549604; Fri, 13 Mar 2026 07:26:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0wun-00009j-Mc; Fri, 13 Mar 2026 07:26:33 +0000
Received: by outflank-mailman (input) for mailman id 1253332;
 Fri, 13 Mar 2026 07:26: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=uwFZ=BN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w0wum-0007rC-7Y
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 07:26: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 f4f66194-1ead-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 08:26:31 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4852fdb36a8so20774575e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 00:26:31 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4855778eda8sm22431495e9.5.2026.03.13.00.26.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 13 Mar 2026 00:26:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f4f66194-1ead-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773386791; x=1773991591; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=UaB+waiIaSfCog6i3FZ0eGm06HNKC0UMQUfwQujiN9o=;
        b=YrOqHl3v29aVWBZG6+PE0MG+sfno7qreue8G2vS+g2rKaFCycCefCJU1jSdZasX6yW
         BwhcJUU5rRuFMYit2MYL6TYRicXM+qWwZQpaiyLm8y39Hxrf0Jv767WrS6EtBZOeOiyg
         npR5lT82eMLx/JHnncL6FGoHgiKinqayb6O8TeoGsjNTG6jQ/5UwcqydW2UuDESUhyU3
         c1IOLLgzAx75D6CwS2TbiVblzy+r8BcB6OpI3botav8J8cOl6Cg9dEhnTKntld9AQbWs
         gyYITw6C2jiRhgvEs87gIAg2HAkfRNv//37dmELlrs7OeQE/SrHRR4OVKXgtin38E+/N
         Fetw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773386791; x=1773991591;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UaB+waiIaSfCog6i3FZ0eGm06HNKC0UMQUfwQujiN9o=;
        b=Tb/sHXt0EWJ49b2U3OVg11sAa00eC1ioRSOZ+NjuQd+u6mceIB6cNn0Rmu34e1cpTK
         wtVaUzacfC1fQjHhOvWvwx9PNTivLtDZYUmsGdYMGdeQKjJHuoj3ZBhOlG2uhcskQLD/
         fZ0fbWJeUX2u0IIGQa7smxiEyLI/LwiYNBwmXFx5NeOK4avYP0hkr8P0bCcw+8962zAP
         +sKrX0TeZjb3tyh/bt+1fUUTblemHg+Sv3N+70ggDXvh7TvYnXq2mRHIQWw4qX3UPTA5
         Dnjg9rJZ9jZGB2eO1quWxqdKh9SNeEOSvxUkLKheuog1MxHzs8TPBgusxBlutcmgs6Rd
         6msA==
X-Forwarded-Encrypted: i=1; AJvYcCWcS1VntyEsNbmyGkaFTsbFxO3yOyMjsoVj92WeA2QRqtAh+oL3dR2GrS0EEv0qNZ/e963pI+pkmqM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxRPjjwa7A0Grjmkr1cX7cEVM5vISLEppZojoeis7exkZHpD66a
	XWi55RgOOF2U/Mf9ZHXXQxn8KHj/0ucBg/ABipbWZdsE/vgTAZJlIA7GeJldZMRckqSi4OwUaoB
	GBPA=
X-Gm-Gg: ATEYQzxgXmMMQEcEGAZHbUCIFtnW+E9a7SG9L5/oNiKxcBHgTPVeM47jSNBayEDb7eU
	yvHv2XxaexYk8mYMinvP9BD/skYHYNzZTexjUjUySTIKisMElz7NMM2zOiR2rzLdagaAa+o17Bw
	XAFOLDFbFLlSH09/dC6VzP7HXxj1ujjvrmXCZeeWlXAPEXKwouG3xqN/naK2KTYLze6l1yXdWIw
	shY7Rd5YMHCuytSJ2saHFFX5uOhz6QBrc8EMJyLSq4fcI3rx9z4tQdw2TtIZ7/0iDz3BxfWHUgN
	TiDUZgXJbVUtbfIlKx+2zeY+lANMApgxhDED6wPU+BIaW16rU45H9MD5dIbG1ln0CkW0qB5+bJq
	fIIyEnwEiBqjT/goYf2CsiMXVNnN1wTP1hSle4/envk42WZfy9nYb6OFHHNdzkNqHn5vxtaHYGQ
	gfUTrSM4UPLjE7ddMI00YZy+Ag3y/jzARGJ6P+WZnYqV2O/OHDfURTft4/+Zv1kG8nsuPA2Yff9
	7A+Vyk2GsjkjQU=
X-Received: by 2002:a05:600c:3550:b0:483:709e:f238 with SMTP id 5b1f17b1804b1-4855670c971mr35017985e9.29.1773386790872;
        Fri, 13 Mar 2026 00:26:30 -0700 (PDT)
Message-ID: <62266ed8-6c77-451d-8a73-c0d29308f56f@suse.com>
Date: Fri, 13 Mar 2026 08:26:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v v2 7/7] x86: relax some CPU checks for non-64 bit CPUs
To: Kevin Lampis <kevin.lampis@citrix.com>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com,
 xen-devel@lists.xenproject.org
References: <20260312204339.740403-1-kevin.lampis@citrix.com>
 <20260312204339.740403-8-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: <20260312204339.740403-8-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.03.2026 21:43, Kevin Lampis wrote:
> These old non-64 bit CPU models are not supported by Xen anymore so the
> checks are no longer needed.
> 
> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>

I think this wants to move first, to resolve (avoid) issues pointed out in
earlier patches.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Mar 13 07:48:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 07:48:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253347.1549622 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0xFa-0003ht-NG; Fri, 13 Mar 2026 07:48:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253347.1549622; Fri, 13 Mar 2026 07:48: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 1w0xFa-0003hm-KQ; Fri, 13 Mar 2026 07:48:02 +0000
Received: by outflank-mailman (input) for mailman id 1253347;
 Fri, 13 Mar 2026 07:48: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=CqhT=BN=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0xFZ-0003h2-U2
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 07:48:01 +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 f4c34d4d-1eb0-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 08:47: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-out1.suse.de (Postfix) with ESMTPS id 0D0BC4E3F0;
 Fri, 13 Mar 2026 07:47:59 +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 CA916403F6;
 Fri, 13 Mar 2026 07:47: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 KjFkMC7Bs2mpGAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 13 Mar 2026 07:47:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f4c34d4d-1eb0-11f1-9ccf-f158ae23cfc8
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 1/8] tools/xenstored: allow domU to get own features
Date: Fri, 13 Mar 2026 08:47:44 +0100
Message-ID: <20260313074751.2904215-2-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260313074751.2904215-1-jgross@suse.com>
References: <20260313074751.2904215-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: 0D0BC4E3F0
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Rspamd-Action: no action
X-Spam-Score: -4.00
X-Spam-Level: 
X-Spam-Flag: NO
X-Spamd-Result: default: False [-4.00 / 50.00];
	REPLY(-4.00)[]
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org

Expand the XS_GET_FEATURE command to allow an unprivileged domain to
read its own available features. While this information is available
via the related field in the shared page used for communication with
Xenstore, user land components of the domU would need special support
in the related kernel driver to obtain that data. With supporting the
XS_GET_FEATURE for that purpose, only an up to date libxenstore is
needed.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 docs/misc/xenstore.txt   |  9 +++++----
 tools/xenstored/core.c   |  3 +--
 tools/xenstored/domain.c | 16 +++++++++++-----
 3 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/docs/misc/xenstore.txt b/docs/misc/xenstore.txt
index 4eccbc2f7f..8a2c19d116 100644
--- a/docs/misc/xenstore.txt
+++ b/docs/misc/xenstore.txt
@@ -427,13 +427,14 @@ SET_FEATURE		<domid>|<value>|
 	to set a bit for a feature not being supported by the running
 	Xenstore will be denied. Providing no <domid> with the
 	GET_FEATURE command will return the features which are supported
-	by Xenstore.
+	by Xenstore for the domain issuing the command.
 
 	SET_FEATURE for a domain will be rejected after the INTRODUCE
-	command for this domain has been sent to xenstored.
+	command for this domain has been sent to xenstored. This has the
+	effect that dom0 will always have all supported features enabled.
 
-	xenstored prevents the use of GET_FEATURE and SET_FEATURE other
-	than by dom0.
+	xenstored prevents the use of GET_FEATURE with a domid specified
+	and SET_FEATURE other than by dom0.
 
 GET_QUOTA		[[<domid>|]<quota>|]	<value>|
 SET_QUOTA		[<domid>|]<quota>|<value>|
diff --git a/tools/xenstored/core.c b/tools/xenstored/core.c
index e283d47184..09f1390f14 100644
--- a/tools/xenstored/core.c
+++ b/tools/xenstored/core.c
@@ -2030,8 +2030,7 @@ static struct {
 	    { "SET_TARGET",    do_set_target,   XS_FLAG_PRIV },
 	[XS_RESET_WATCHES]     = { "RESET_WATCHES",     do_reset_watches },
 	[XS_DIRECTORY_PART]    = { "DIRECTORY_PART",    send_directory_part },
-	[XS_GET_FEATURE]       =
-	    { "GET_FEATURE",   do_get_feature,  XS_FLAG_PRIV },
+	[XS_GET_FEATURE]       = { "GET_FEATURE",       do_get_feature },
 	[XS_SET_FEATURE]       =
 	    { "SET_FEATURE",   do_set_feature,  XS_FLAG_PRIV },
 	[XS_GET_QUOTA]         =
diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index c0bc8a3eb7..ebeced3228 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -1293,17 +1293,23 @@ int do_get_feature(const void *ctx, struct connection *conn,
 	char *result;
 
 	n_args = get_strings(in, vec, ARRAY_SIZE(vec));
-	if (n_args > 1)
-		return EINVAL;
 
-	if (n_args == 1) {
+	if (!n_args) {
+		features = conn->domain ? conn->domain->features
+					: XENSTORE_FEATURES;
+	} else {
+		if (domain_is_unprivileged(conn))
+			return EACCES;
+
+		if (n_args > 1)
+			return EINVAL;
+
 		domid = atoi(vec[0]);
 		domain = find_or_alloc_existing_domain(domid);
 		if (!domain)
 			return ENOENT;
 		features = domain->features;
-	} else
-		features = XENSTORE_FEATURES;
+	}
 
 	result = talloc_asprintf(ctx, "%u", features);
 	if (!result)
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 07:48:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 07:48:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253346.1549612 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0xFU-0003TT-Gx; Fri, 13 Mar 2026 07:47:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253346.1549612; Fri, 13 Mar 2026 07:47:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0xFU-0003TM-EL; Fri, 13 Mar 2026 07:47:56 +0000
Received: by outflank-mailman (input) for mailman id 1253346;
 Fri, 13 Mar 2026 07:47: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=CqhT=BN=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0xFT-0003TG-T3
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 07:47:55 +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 f17c9c2c-1eb0-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 08:47: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-out1.suse.de (Postfix) with ESMTPS id 862AD4E3F0;
 Fri, 13 Mar 2026 07:47: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 4581A403F6;
 Fri, 13 Mar 2026 07:47: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 b3ACDynBs2mfGAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 13 Mar 2026 07:47: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: f17c9c2c-1eb0-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773388073; 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=vM0JxtxepxxjPoRZ8g1TfJI80befLzmI/O84xGr4URQ=;
	b=lDrWQ3b1XwPjnOiJAxy7BrEOi9hnp6YZcpOBTrvn+GWTGlqJidgrMP9hZQ1DAxobOqWqpy
	GkFItCjcS3O7PzpV4jA0E2NRaY+gJAkis5WEfGncceZhNbRkdmBEMjLUZQPZXZo2HTGHVc
	HnzGcj/TAWXf1pllfjxY4FyskrRff94=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773388073; 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=vM0JxtxepxxjPoRZ8g1TfJI80befLzmI/O84xGr4URQ=;
	b=lDrWQ3b1XwPjnOiJAxy7BrEOi9hnp6YZcpOBTrvn+GWTGlqJidgrMP9hZQ1DAxobOqWqpy
	GkFItCjcS3O7PzpV4jA0E2NRaY+gJAkis5WEfGncceZhNbRkdmBEMjLUZQPZXZo2HTGHVc
	HnzGcj/TAWXf1pllfjxY4FyskrRff94=
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 0/8] tools/xenstored: add support for watch depth feature
Date: Fri, 13 Mar 2026 08:47:43 +0100
Message-ID: <20260313074751.2904215-1-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.80
X-Spam-Level: 
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)[-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,imap1.dmz-prg2.suse.org:helo];
	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

In order to reduce excessive number of watch events the watch depth
feature has been defined, allowing the user to limit the number of
node levels below the watched node to cause events.

This series is implementing this feature for xenstored (including the
PV and PVH stubdom variants).

Possible users are:

- xl/libxl: use domid information for the special @introduceDomain and
  @releaseDomain watches, which will be available when using depth = 1

- xenconsoled, like xl/libxl

- any PV-device backends watching directories for added devices (no
  watch events when any device specific node is modified)

- any PV-device frontend and backend watching the "state" node of the
  other side, in case the other side plays dirty games by building
  large sub-trees beneath the "state" node

This series has been tested with a modified xenstore-watch client.
The modification will be sent as soon as the pending series of the
xs-clients has been applied.

Note that the watch depth series depends on the still pending series
"tools: add support for per-domain xenstore quota".

Juergen Gross (8):
  tools/xenstored: allow domU to get own features
  docs: clarify Xenstore watch depth feature
  tools/libs/store: add support to use watches with a depth parameter
  tools/xenstored: add depth information to watches
  tools/xenstored: add depth handling to XS_WATCH
  tools/xenstored: replace the fire_watches() exact parameter
  tools/xenstored: expand special watch handling with depth feature
  tools/xenstored: make XENSTORE_SERVER_FEATURE_WATCHDEPTH available

 docs/man/xl.cfg.5.pod.in         |   6 ++
 docs/misc/xenstore.txt           |  14 ++-
 tools/include/xenstore.h         |  16 +++
 tools/libs/store/libxenstore.map |   2 +
 tools/libs/store/xs.c            | 116 ++++++++++++++++++----
 tools/xenstored/core.c           |  15 ++-
 tools/xenstored/domain.c         |  64 +++++++++---
 tools/xenstored/domain.h         |   2 +
 tools/xenstored/lu.c             |   3 +
 tools/xenstored/transaction.c    |  14 +--
 tools/xenstored/transaction.h    |   4 +-
 tools/xenstored/watch.c          | 161 ++++++++++++++++++++++---------
 tools/xenstored/watch.h          |  10 +-
 xen/include/public/io/xs_wire.h  |   2 +
 14 files changed, 328 insertions(+), 101 deletions(-)

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 07:48:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 07:48:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253348.1549630 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0xFf-0003yl-TX; Fri, 13 Mar 2026 07:48:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253348.1549630; Fri, 13 Mar 2026 07: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 1w0xFf-0003ye-QS; Fri, 13 Mar 2026 07:48:07 +0000
Received: by outflank-mailman (input) for mailman id 1253348;
 Fri, 13 Mar 2026 07:48:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CqhT=BN=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0xFe-0003h2-MZ
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 07:48:06 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de
 [2a07:de40:b251:101:10:150:64:1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f7db8808-1eb0-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 08:48:04 +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 922454E3F0;
 Fri, 13 Mar 2026 07:48: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 5B0DF403F6;
 Fri, 13 Mar 2026 07:48:04 +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 jIcPFTTBs2mtGAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 13 Mar 2026 07:48:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f7db8808-1eb0-11f1-9ccf-f158ae23cfc8
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 2/8] docs: clarify Xenstore watch depth feature
Date: Fri, 13 Mar 2026 08:47:45 +0100
Message-ID: <20260313074751.2904215-3-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260313074751.2904215-1-jgross@suse.com>
References: <20260313074751.2904215-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-4.00 / 50.00];
	REPLY(-4.00)[]
X-Rspamd-Queue-Id: 922454E3F0
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: 

Make it explicit that for watching the @releaseDomain/<domid> special
node, the XENSTORE_SERVER_FEATURE_WATCHDEPTH is needed.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 docs/misc/xenstore.txt | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/docs/misc/xenstore.txt b/docs/misc/xenstore.txt
index 8a2c19d116..dba6471387 100644
--- a/docs/misc/xenstore.txt
+++ b/docs/misc/xenstore.txt
@@ -266,7 +266,8 @@ WATCH			<wpath>|<token>|[<depth>|]?
 	decimal value of 0 or larger): it denotes the directory levels
 	below <wpath> to consider for a match ("0" would not match for
 	a child of <wpath>, "1" would match only for a direct child,
-	etc.).
+	etc.).  The depth specification is possible only, if the
+	XENSTORE_SERVER_FEATURE_WATCHDEPTH feature is available.
 
 	<wpath> can be a <path> to watch or @<wspecial>.  In the
 	latter case <wspecial> may have any syntax but it matches
@@ -284,6 +285,8 @@ WATCH			<wpath>|<token>|[<depth>|]?
 	values are not supported.
 	For @releaseDomain it is possible to watch only for a specific
 	domain by specifying @releaseDomain/<domid> for the path.
+	This requires the XENSTORE_SERVER_FEATURE_WATCHDEPTH to be
+	available.
 
 	When a watch is first set up it is triggered once straight
 	away, with <path> equal to <wpath>.  Watches may be triggered
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 07:48:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 07:48:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253351.1549639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0xFl-0004GZ-4P; Fri, 13 Mar 2026 07:48:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253351.1549639; Fri, 13 Mar 2026 07:48:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0xFl-0004GS-1k; Fri, 13 Mar 2026 07:48:13 +0000
Received: by outflank-mailman (input) for mailman id 1253351;
 Fri, 13 Mar 2026 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=CqhT=BN=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0xFj-0003TG-DM
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 07:48:11 +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 fb1de7e2-1eb0-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 08:48: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-out2.suse.de (Postfix) with ESMTPS id 0BB825CEF2;
 Fri, 13 Mar 2026 07:48: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 DEF51403F6;
 Fri, 13 Mar 2026 07:48: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 x6BCNTnBs2m1GAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 13 Mar 2026 07:48:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fb1de7e2-1eb0-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773388090; 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=pOMNch7LDMhlMuA7/SnfhE7VtklPTC8Mp2JthrXp6FM=;
	b=mv1paiadsjWVfW8yV3KF2x9/U5KPiDFrjBM2mhfK5Q4HkuKa1iyPzd/jP/OfeK3S7RTIHN
	ukbOc+khzCJbf4bjLfGAPF1RU+38nrQ/DEQ3OlxjLMScnnRH2BACo660X1Ro5qIhc+ShkW
	zF2PEdbxVZbnAqRp3rGbN2H1t71x97M=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773388090; 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=pOMNch7LDMhlMuA7/SnfhE7VtklPTC8Mp2JthrXp6FM=;
	b=mv1paiadsjWVfW8yV3KF2x9/U5KPiDFrjBM2mhfK5Q4HkuKa1iyPzd/jP/OfeK3S7RTIHN
	ukbOc+khzCJbf4bjLfGAPF1RU+38nrQ/DEQ3OlxjLMScnnRH2BACo660X1Ro5qIhc+ShkW
	zF2PEdbxVZbnAqRp3rGbN2H1t71x97M=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Julien Grall <julien@xen.org>
Subject: [PATCH 3/8] tools/libs/store: add support to use watches with a depth parameter
Date: Fri, 13 Mar 2026 08:47:46 +0100
Message-ID: <20260313074751.2904215-4-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260313074751.2904215-1-jgross@suse.com>
References: <20260313074751.2904215-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)[4];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.com:mid,suse.com:email];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -6.80
X-Spam-Level: 

Add a new xs_watch_depth() function to libxenstore allowing to limit
the scope of a Xenstore watch. It can be used only in case Xenstore is
supporting the XENSTORE_SERVER_FEATURE_WATCHDEPTH feature.

For convenience add a xs_watch_try_depth() wrapper, which will call
xs_watch_depth() if supported and xs_watch() otherwise.

Cache the supported features of Xenstore in order not having to get
them from Xenstore for each call of one of the new functions.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 docs/man/xl.cfg.5.pod.in         |   6 ++
 tools/include/xenstore.h         |  16 +++++
 tools/libs/store/libxenstore.map |   2 +
 tools/libs/store/xs.c            | 116 ++++++++++++++++++++++++++-----
 xen/include/public/io/xs_wire.h  |   2 +
 5 files changed, 123 insertions(+), 19 deletions(-)

diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index 3aac0bc4fb..2f77016ecf 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -740,6 +740,12 @@ Xenstore is capable to reconnect to a guest.
 Xenstore will present an error value in case it disconnects due to an error
 condition.
 
+=item B<0x00000004>
+
+Xenstore supports to set watches with a limited depth (depth 0 matches
+only the watched node, depth 1 matches the node and its direct children,
+etc.).
+
 =back
 
 The features supported by the running Xenstore instance can be retrieved
diff --git a/tools/include/xenstore.h b/tools/include/xenstore.h
index 6b661e5895..8a6afd97f5 100644
--- a/tools/include/xenstore.h
+++ b/tools/include/xenstore.h
@@ -177,6 +177,22 @@ bool xs_set_permissions(struct xs_handle *h, xs_transaction_t t,
  */
 bool xs_watch(struct xs_handle *h, const char *path, const char *token);
 
+/* Same as xs_watch(), but with limiting the matching for modified
+ * children to a specified depth (depth 0 only matches the node itself,
+ * depth 1 will additionally match direct children of the node, etc.).
+ * Only supported if the XENSTORE_SERVER_FEATURE_WATCHDEPTH (4) is set
+ * in the returned features of xs_get_features_supported().
+ */
+bool xs_watch_depth(struct xs_handle *h, const char *path, const char *token,
+		    unsigned int depth);
+
+/* If supported, same as xs_watch_depth(), use xs_watch() otherwise.
+ * As a result watches might trigger for nodes below the watched path, too.
+ * Not to be used for special watches!
+ */
+bool xs_watch_try_depth(struct xs_handle *h, const char *path,
+			const char *token, unsigned int depth);
+
 /* Return the FD to poll on to see if a watch has fired. */
 int xs_fileno(struct xs_handle *h);
 
diff --git a/tools/libs/store/libxenstore.map b/tools/libs/store/libxenstore.map
index a08ddd549f..7067068998 100644
--- a/tools/libs/store/libxenstore.map
+++ b/tools/libs/store/libxenstore.map
@@ -52,4 +52,6 @@ VERS_4.2 {
 		xs_set_global_quota;
 		xs_get_domain_quota;
 		xs_set_domain_quota;
+		xs_watch_depth;
+		xs_watch_try_depth;
 } VERS_4.1;
diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
index dda37f7526..0bea464a33 100644
--- a/tools/libs/store/xs.c
+++ b/tools/libs/store/xs.c
@@ -984,37 +984,29 @@ bool xs_restrict(struct xs_handle *h, unsigned domid)
 	return false;
 }
 
-/* Watch a node for changes (poll on fd to detect, or call read_watch()).
- * When the node (or any child) changes, fd will become readable.
- * Token is returned when watch is read, to allow matching.
- * Returns false on failure.
- */
-bool xs_watch(struct xs_handle *h, const char *path, const char *token)
+static bool xs_watch_helper(struct xs_handle *h)
 {
-	struct xsd_sockmsg msg = { .type = XS_WATCH };
-	struct iovec iov[3];
-
 #ifdef USE_PTHREAD
+	sigset_t set, old_set;
+	pthread_attr_t attr;
+	static size_t stack_size;
+#ifdef USE_DLSYM
+	size_t (*getsz)(pthread_attr_t *attr);
+#endif
+
 #define DEFAULT_THREAD_STACKSIZE (16 * 1024)
 /* NetBSD doesn't have PTHREAD_STACK_MIN. */
 #ifndef PTHREAD_STACK_MIN
 # define PTHREAD_STACK_MIN 0
 #endif
 
-#define READ_THREAD_STACKSIZE 					\
-	((DEFAULT_THREAD_STACKSIZE < PTHREAD_STACK_MIN) ? 	\
+#define READ_THREAD_STACKSIZE					\
+	((DEFAULT_THREAD_STACKSIZE < PTHREAD_STACK_MIN) ?	\
 	 PTHREAD_STACK_MIN : DEFAULT_THREAD_STACKSIZE)
 
 	/* We dynamically create a reader thread on demand. */
 	mutex_lock(&h->request_mutex);
 	if (!h->read_thr_exists) {
-		sigset_t set, old_set;
-		pthread_attr_t attr;
-		static size_t stack_size;
-#ifdef USE_DLSYM
-		size_t (*getsz)(pthread_attr_t *attr);
-#endif
-
 		if (pthread_attr_init(&attr) != 0) {
 			mutex_unlock(&h->request_mutex);
 			return false;
@@ -1050,16 +1042,89 @@ bool xs_watch(struct xs_handle *h, const char *path, const char *token)
 	mutex_unlock(&h->request_mutex);
 #endif
 
+	return true;
+}
+
+/* Watch a node for changes (poll on fd to detect, or call read_watch()).
+ * When the node (or any child) changes, fd will become readable.
+ * Token is returned when watch is read, to allow matching.
+ * Returns false on failure.
+ */
+bool xs_watch(struct xs_handle *h, const char *path, const char *token)
+{
+	struct xsd_sockmsg msg = { .type = XS_WATCH };
+	struct iovec iov[3];
+
+	if (!xs_watch_helper(h))
+		return false;
+
+	iov[0].iov_base = &msg;
+	iov[0].iov_len  = sizeof(msg);
+	iov[1].iov_base = (void *)path;
+	iov[1].iov_len  = strlen(path) + 1;
+	iov[2].iov_base = (void *)token;
+	iov[2].iov_len  = strlen(token) + 1;
+
+	return xs_bool(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL));
+}
+
+/* Same as xs_watch(), but with limiting the matching for modified
+ * children to a specified depth (depth 0 only matches the node itself,
+ * depth 1 will additionally match direct children of the node, etc.).
+ * Only supported if the XENSTORE_SERVER_FEATURE_WATCHDEPTH (4) is set
+ * in the returned features of xs_get_features_supported().
+ */
+bool xs_watch_depth(struct xs_handle *h, const char *path, const char *token,
+		    unsigned int depth)
+{
+	struct xsd_sockmsg msg = { .type = XS_WATCH };
+	struct iovec iov[4];
+	char depthstr[MAX_STRLEN(depth)];
+	static bool depth_supported;
+
+	if (!xs_watch_helper(h))
+		return false;
+
+	if (!depth_supported) {
+		unsigned int features;
+
+		if (!xs_get_features_supported(h, &features))
+			return false;
+		if (!(features & XENSTORE_SERVER_FEATURE_WATCHDEPTH))
+			return false;
+		depth_supported = true;
+	}
+
+	snprintf(depthstr, sizeof(depthstr), "%u", depth);
+
 	iov[0].iov_base = &msg;
 	iov[0].iov_len  = sizeof(msg);
 	iov[1].iov_base = (void *)path;
 	iov[1].iov_len  = strlen(path) + 1;
 	iov[2].iov_base = (void *)token;
 	iov[2].iov_len  = strlen(token) + 1;
+	iov[3].iov_base = depthstr;
+	iov[3].iov_len = strlen(depthstr) + 1;
 
 	return xs_bool(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL));
 }
 
+/* If supported, same as xs_watch_depth(), use xs_watch() otherwise.
+ * As a result watches might trigger for nodes below the watched path, too.
+ * Not to be used for special watches!
+ */
+bool xs_watch_try_depth(struct xs_handle *h, const char *path,
+			const char *token, unsigned int depth)
+{
+	unsigned int features;
+
+	if (xs_get_features_supported(h, &features) &&
+	    (features & XENSTORE_SERVER_FEATURE_WATCHDEPTH) &&
+	    xs_watch_depth(h, path, token, depth))
+		return true;
+
+	return xs_watch(h, path, token);
+}
 
 /* Clear the pipe token if there are no more pending watchs.
  * We suppose the watch_mutex is already taken.
@@ -1420,13 +1485,26 @@ static bool xs_uint(char *reply, unsigned int *uintval)
 
 bool xs_get_features_supported(struct xs_handle *h, unsigned int *features)
 {
+	static unsigned int own_features = 0;
+	static bool features_valid = false;
 	struct xsd_sockmsg msg = { .type = XS_GET_FEATURE };
 	struct iovec iov[1];
 
+	if (features_valid) {
+		*features = own_features;
+		return true;
+	}
+
 	iov[0].iov_base = &msg;
 	iov[0].iov_len  = sizeof(msg);
 
-	return xs_uint(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL), features);
+	if (!xs_uint(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL), &own_features))
+		return false;
+
+	features_valid = true;
+	*features = own_features;
+
+	return true;
 }
 
 bool xs_get_features_domain(struct xs_handle *h, unsigned int domid,
diff --git a/xen/include/public/io/xs_wire.h b/xen/include/public/io/xs_wire.h
index d2e2b8b9eb..2e763bc877 100644
--- a/xen/include/public/io/xs_wire.h
+++ b/xen/include/public/io/xs_wire.h
@@ -124,6 +124,8 @@ struct xenstore_domain_interface {
 #define XENSTORE_SERVER_FEATURE_RECONNECTION 1
 /* The presence of the "error" field in the ring page */
 #define XENSTORE_SERVER_FEATURE_ERROR        2
+/* The XS_WATCH command can be used with a <depth> parameter */
+#define XENSTORE_SERVER_FEATURE_WATCHDEPTH   4
 
 /* Valid values for the connection field */
 #define XENSTORE_CONNECTED 0 /* the steady-state */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 07:48:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 07:48:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253354.1549650 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0xFq-0004jd-Kx; Fri, 13 Mar 2026 07:48:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253354.1549650; Fri, 13 Mar 2026 07:48:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0xFq-0004jW-Fq; Fri, 13 Mar 2026 07:48:18 +0000
Received: by outflank-mailman (input) for mailman id 1253354;
 Fri, 13 Mar 2026 07:48: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=CqhT=BN=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0xFo-0003TG-G4
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 07:48:16 +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 fe548862-1eb0-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 08:48:15 +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 79DA24D656;
 Fri, 13 Mar 2026 07:48:15 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 5794B403F6;
 Fri, 13 Mar 2026 07:48:15 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id NQ08FD/Bs2m5GAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 13 Mar 2026 07:48:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fe548862-1eb0-11f1-b164-2bf370ae4941
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>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 4/8] tools/xenstored: add depth information to watches
Date: Fri, 13 Mar 2026 08:47:47 +0100
Message-ID: <20260313074751.2904215-5-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260313074751.2904215-1-jgross@suse.com>
References: <20260313074751.2904215-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-4.00 / 50.00];
	REPLY(-4.00)[]
X-Rspamd-Queue-Id: 79DA24D656
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: 

Add the depth for matching subdirectories of a watch to the watch
handling. A depth value of -1 is used for the current model of no
limit.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/xenstored/lu.c    |   3 ++
 tools/xenstored/watch.c | 110 ++++++++++++++++++++++++++++------------
 tools/xenstored/watch.h |   1 +
 3 files changed, 81 insertions(+), 33 deletions(-)

diff --git a/tools/xenstored/lu.c b/tools/xenstored/lu.c
index eaffdbc69e..7d9f086a59 100644
--- a/tools/xenstored/lu.c
+++ b/tools/xenstored/lu.c
@@ -183,6 +183,9 @@ void lu_read_state(void)
 		case XS_STATE_TYPE_WATCH:
 			read_state_watch(ctx, state.buf);
 			break;
+		case XS_STATE_TYPE_WATCH_EXT:
+			read_state_watch_ext(ctx, state.buf);
+			break;
 		case XS_STATE_TYPE_TA:
 			xprintf("live-update: ignore transaction record\n");
 			break;
diff --git a/tools/xenstored/watch.c b/tools/xenstored/watch.c
index 36e4d33f22..3f1049911b 100644
--- a/tools/xenstored/watch.c
+++ b/tools/xenstored/watch.c
@@ -39,26 +39,35 @@ struct watch
 	/* Offset into path for skipping prefix (used for relative paths). */
 	unsigned int prefix_len;
 
+	int depth;	/* -1: no depth limit. */
 	char *token;
 	char *node;
 };
 
 /* Is child a subnode of parent, or equal? */
-static bool is_child(const char *child, const char *parent)
+static bool is_child(const char *child, const char *parent, int depth)
 {
-	unsigned int len = strlen(parent);
-
-	/*
-	 * / should really be "" for this algorithm to work, but that's a
-	 * usability nightmare.
-	 */
-	if (streq(parent, "/"))
-		return true;
+	unsigned int len = strlen(parent);	/* len == 1 if parent is "/". */
+	unsigned int sub_levels = (len == 1) ? 1 : 0;
 
 	if (strncmp(child, parent, len) != 0)
 		return false;
 
-	return child[len] == '/' || child[len] == '\0';
+	if (child[len] != '/' && child[len] != '\0' && len > 1)
+		return false;
+
+	if (depth < 0 || child[len] == '\0')
+		return true;
+
+	while (sub_levels <= depth) {
+		if (child[len] == '\0')
+			return true;
+		if (child[len] == '/')
+			sub_levels++;
+		len++;
+	}
+
+	return false;
 }
 
 static const char *get_watch_path(const struct watch *watch, const char *name)
@@ -145,7 +154,7 @@ void fire_watches(struct connection *conn, const void *ctx, const char *name,
 						   get_watch_path(watch, name),
 						   watch->token);
 			} else {
-				if (is_child(name, watch->node))
+				if (is_child(name, watch->node, watch->depth))
 					send_event(req, i,
 						   get_watch_path(watch, name),
 						   watch->token);
@@ -170,7 +179,7 @@ static int check_watch_path(struct connection *conn, const void *ctx,
 }
 
 static struct watch *add_watch(struct connection *conn, const char *path,
-			       const char *token, bool relative,
+			       const char *token, int depth, bool relative,
 			       bool no_quota_check)
 {
 	struct watch *watch;
@@ -178,6 +187,7 @@ static struct watch *add_watch(struct connection *conn, const char *path,
 	watch = talloc(conn, struct watch);
 	if (!watch)
 		goto nomem;
+	watch->depth = depth;
 	watch->node = talloc_strdup(watch, path);
 	watch->token = talloc_strdup(watch, token);
 	if (!watch->node || !watch->token)
@@ -204,6 +214,7 @@ int do_watch(const void *ctx, struct connection *conn, struct buffered_data *in)
 {
 	struct watch *watch;
 	const char *vec[2];
+	int depth = -1;
 	bool relative;
 
 	if (get_strings(in, vec, ARRAY_SIZE(vec)) != ARRAY_SIZE(vec))
@@ -223,7 +234,7 @@ int do_watch(const void *ctx, struct connection *conn, struct buffered_data *in)
 	if (domain_check_quota_add(conn->domain, ACC_WATCH, 1))
 		return ENOSPC;
 
-	watch = add_watch(conn, vec[0], vec[1], relative, false);
+	watch = add_watch(conn, vec[0], vec[1], depth, relative, false);
 	if (!watch)
 		return errno;
 
@@ -287,28 +298,47 @@ const char *dump_state_watches(FILE *fp, struct connection *conn,
 	const char *ret = NULL;
 	struct watch *watch;
 	struct xs_state_watch sw;
+	struct xs_state_watch_ext swe;
 	struct xs_state_record_header head;
 	const char *path;
-
-	head.type = XS_STATE_TYPE_WATCH;
+	size_t path_len, token_len;
 
 	list_for_each_entry(watch, &conn->watches, list) {
-		head.length = sizeof(sw);
-
-		sw.conn_id = conn_id;
 		path = get_watch_path(watch, watch->node);
-		sw.path_length = strlen(path) + 1;
-		sw.token_length = strlen(watch->token) + 1;
-		head.length += sw.path_length + sw.token_length;
+		path_len = strlen(path) + 1;
+		token_len = strlen(watch->token) + 1;
+
+		if (watch->depth >= 0) {
+			head.type = XS_STATE_TYPE_WATCH_EXT;
+			head.length = sizeof(swe);
+			swe.conn_id = conn_id;
+			swe.path_length = path_len;
+			swe.token_length = token_len;
+			swe.depth = watch->depth;
+		} else {
+			head.type = XS_STATE_TYPE_WATCH;
+			head.length = sizeof(sw);
+			sw.conn_id = conn_id;
+			sw.path_length = path_len;
+			sw.token_length = token_len;
+		}
+
+		head.length += path_len + token_len;
 		head.length = ROUNDUP(head.length, 3);
 		if (fwrite(&head, sizeof(head), 1, fp) != 1)
 			return "Dump watch state error";
-		if (fwrite(&sw, sizeof(sw), 1, fp) != 1)
-			return "Dump watch state error";
 
-		if (fwrite(path, sw.path_length, 1, fp) != 1)
+		if (watch->depth >= 0) {
+			if (fwrite(&swe, sizeof(sw), 1, fp) != 1)
+				return "Dump watch state ext error";
+		} else {
+			if (fwrite(&sw, sizeof(sw), 1, fp) != 1)
+				return "Dump watch state error";
+		}
+
+		if (fwrite(path, path_len, 1, fp) != 1)
 			return "Dump watch path error";
-		if (fwrite(watch->token, sw.token_length, 1, fp) != 1)
+		if (fwrite(watch->token, token_len, 1, fp) != 1)
 			return "Dump watch token error";
 
 		ret = dump_state_align(fp);
@@ -319,27 +349,41 @@ const char *dump_state_watches(FILE *fp, struct connection *conn,
 	return ret;
 }
 
-void read_state_watch(const void *ctx, const void *state)
+static void process_state_watch(const void *ctx, unsigned int conn_id,
+				const char *path, const char *token,
+				int depth)
 {
-	const struct xs_state_watch *sw = state;
 	struct connection *conn;
-	const char *path, *token;
 	bool relative;
 
-	conn = get_connection_by_id(sw->conn_id);
+	conn = get_connection_by_id(conn_id);
 	if (!conn)
 		barf("connection not found for read watch");
 
-	path = (char *)sw->data;
-	token = path + sw->path_length;
-
 	/* Don't check success, we want the relative information only. */
 	check_watch_path(conn, ctx, &path, &relative);
 	if (!path)
 		barf("allocation error for read watch");
 
-	if (!add_watch(conn, path, token, relative, true))
+	if (!add_watch(conn, path, token, depth, relative, true))
 		barf("error adding watch");
+
+}
+
+void read_state_watch(const void *ctx, const void *state)
+{
+	const struct xs_state_watch *sw = state;
+
+	process_state_watch(ctx, sw->conn_id, (char *)sw->data,
+			    (char *)sw->data + sw->path_length, -1);
+}
+
+void read_state_watch_ext(const void *ctx, const void *state)
+{
+	const struct xs_state_watch_ext *swe = state;
+
+	process_state_watch(ctx, swe->conn_id, (char *)swe->data,
+			    (char *)swe->data + swe->path_length, swe->depth);
 }
 
 /*
diff --git a/tools/xenstored/watch.h b/tools/xenstored/watch.h
index d9ac6a334a..afdfdc6b2f 100644
--- a/tools/xenstored/watch.h
+++ b/tools/xenstored/watch.h
@@ -37,5 +37,6 @@ const char *dump_state_watches(FILE *fp, struct connection *conn,
 			       unsigned int conn_id);
 
 void read_state_watch(const void *ctx, const void *state);
+void read_state_watch_ext(const void *ctx, const void *state);
 
 #endif /* _XENSTORED_WATCH_H */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 07:48:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 07:48:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253364.1549659 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0xFu-0005Ba-Vr; Fri, 13 Mar 2026 07:48:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253364.1549659; Fri, 13 Mar 2026 07: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 1w0xFu-0005Ah-No; Fri, 13 Mar 2026 07:48:22 +0000
Received: by outflank-mailman (input) for mailman id 1253364;
 Fri, 13 Mar 2026 07:48: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=CqhT=BN=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0xFt-0003TG-OP
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 07:48:21 +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 0192254f-1eb1-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 08:48:21 +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 E69B94E3F0;
 Fri, 13 Mar 2026 07:48: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 C5051403F6;
 Fri, 13 Mar 2026 07:48: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 7LTxLkTBs2nAGAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 13 Mar 2026 07:48:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0192254f-1eb1-11f1-b164-2bf370ae4941
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>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 5/8] tools/xenstored: add depth handling to XS_WATCH
Date: Fri, 13 Mar 2026 08:47:48 +0100
Message-ID: <20260313074751.2904215-6-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260313074751.2904215-1-jgross@suse.com>
References: <20260313074751.2904215-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-4.00 / 50.00];
	REPLY(-4.00)[]
X-Rspamd-Queue-Id: E69B94E3F0
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: 

In case XENSTORE_SERVER_FEATURE_WATCHDEPTH is set, allow XS_WATCH to
have "depth" as 3rd parameter.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/xenstored/domain.c |  8 ++++++++
 tools/xenstored/domain.h |  2 ++
 tools/xenstored/watch.c  | 11 +++++++++--
 3 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index ebeced3228..866c0aa908 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -387,6 +387,14 @@ void wrl_apply_debit_trans_commit(struct connection *conn)
 	wrl_apply_debit_actual(conn->domain);
 }
 
+bool feature_available(const struct connection *conn, unsigned int feature)
+{
+	if (!conn->domain)
+		return XENSTORE_FEATURES & feature;
+
+	return conn->domain->features & feature;
+}
+
 static unsigned int domain_get_soft_quota(struct domain *d, enum accitem what)
 {
 	if (d && d->acc[what].val[Q_IDX_SOFT] != Q_VAL_DISABLED)
diff --git a/tools/xenstored/domain.h b/tools/xenstored/domain.h
index 6a06b0d1af..15d8f1a5b2 100644
--- a/tools/xenstored/domain.h
+++ b/tools/xenstored/domain.h
@@ -192,4 +192,6 @@ struct hashtable *domain_check_acc_init(void);
 void domain_check_acc_add(const struct node *node, struct hashtable *domains);
 void domain_check_acc(struct hashtable *domains);
 
+bool feature_available(const struct connection *conn, unsigned int feature);
+
 #endif /* _XENSTORED_DOMAIN_H */
diff --git a/tools/xenstored/watch.c b/tools/xenstored/watch.c
index 3f1049911b..5de386370d 100644
--- a/tools/xenstored/watch.c
+++ b/tools/xenstored/watch.c
@@ -213,11 +213,18 @@ static struct watch *add_watch(struct connection *conn, const char *path,
 int do_watch(const void *ctx, struct connection *conn, struct buffered_data *in)
 {
 	struct watch *watch;
-	const char *vec[2];
+	const char *vec[3];
+	unsigned int n_pars;
 	int depth = -1;
 	bool relative;
 
-	if (get_strings(in, vec, ARRAY_SIZE(vec)) != ARRAY_SIZE(vec))
+	n_pars = get_strings(in, vec, ARRAY_SIZE(vec));
+	if (n_pars == 3 &&
+	    feature_available(conn, XENSTORE_SERVER_FEATURE_WATCHDEPTH)) {
+		depth = atoi(vec[2]);
+		if (depth < 0)
+			return EINVAL;
+	} else if (n_pars != 2)
 		return EINVAL;
 
 	errno = check_watch_path(conn, ctx, &(vec[0]), &relative);
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 07:48:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 07:48:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253371.1549667 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0xG1-0005ZX-48; Fri, 13 Mar 2026 07:48:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253371.1549667; Fri, 13 Mar 2026 07:48:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0xG1-0005ZK-15; Fri, 13 Mar 2026 07:48:29 +0000
Received: by outflank-mailman (input) for mailman id 1253371;
 Fri, 13 Mar 2026 07:48:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CqhT=BN=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0xFz-0003TG-Gi
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 07:48:27 +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 04da738e-1eb1-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 08:48:26 +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 59CFD4D656;
 Fri, 13 Mar 2026 07:48: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 3AB7C403F6;
 Fri, 13 Mar 2026 07:48: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 ESM7DUrBs2nVGAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 13 Mar 2026 07:48: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: 04da738e-1eb1-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773388106; 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=h47Wy2/aIsr5uL9mIHAZhtR7cjBvlkykAr4Iab8gBlE=;
	b=MhtAHwKXqc3JN+tOPK19oGJl6h4eekw1GpDYzkcQIdE2ZH4KisVZgAEtQ2MrZBfw4LwVIQ
	7GyZRDsoT4nzTrjm+lE5OVyd/MxwogcENtORAlue2VlfHmq5OyN+X1AZIJoNcLTzZBO7Ak
	KUksYaJY6OFzhh7eA7lMX+jPtS4BJPM=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773388106; 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=h47Wy2/aIsr5uL9mIHAZhtR7cjBvlkykAr4Iab8gBlE=;
	b=MhtAHwKXqc3JN+tOPK19oGJl6h4eekw1GpDYzkcQIdE2ZH4KisVZgAEtQ2MrZBfw4LwVIQ
	7GyZRDsoT4nzTrjm+lE5OVyd/MxwogcENtORAlue2VlfHmq5OyN+X1AZIJoNcLTzZBO7Ak
	KUksYaJY6OFzhh7eA7lMX+jPtS4BJPM=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 6/8] tools/xenstored: replace the fire_watches() exact parameter
Date: Fri, 13 Mar 2026 08:47:49 +0100
Message-ID: <20260313074751.2904215-7-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260313074751.2904215-1-jgross@suse.com>
References: <20260313074751.2904215-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -6.80
X-Spam-Level: 
X-Spamd-Result: default: False [-6.80 / 50.00];
	REPLY(-4.00)[];
	BAYES_HAM(-3.00)[100.00%];
	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)[4];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO

Today fire_watches() has the boolean "exact" parameter specifying how
the matching of the modified node with registered watches is to be
handled (only the exact node name is matching or all nodes being
in the subtree beneath the watched node).

For the handling of <special-watch>/<domid> watch events 2 additional
matching possibility needs to be added, as those events should only
be delivered to clients having requested such events, either by
watching <special-watch> with the depth=1 parameter, or by directly
watching for <special-watch>/<domid>, while the traditional special
watch events should NOT delivered to those watchers.

For this purpose rename the "exact" parameter to "match" and make it
an enum with four possible values.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/xenstored/core.c        | 12 +++++-----
 tools/xenstored/transaction.c | 14 +++++++-----
 tools/xenstored/transaction.h |  4 +++-
 tools/xenstored/watch.c       | 42 +++++++++++++++++++++++++----------
 tools/xenstored/watch.h       |  9 +++++++-
 5 files changed, 55 insertions(+), 26 deletions(-)

diff --git a/tools/xenstored/core.c b/tools/xenstored/core.c
index 09f1390f14..109e319f8c 100644
--- a/tools/xenstored/core.c
+++ b/tools/xenstored/core.c
@@ -1612,7 +1612,7 @@ static int do_write(const void *ctx, struct connection *conn,
 			return errno;
 	}
 
-	fire_watches(conn, ctx, name, node, false, NULL);
+	fire_watches(conn, ctx, name, node, MATCH_SUBTREE, NULL);
 	send_ack(conn, XS_WRITE);
 
 	return 0;
@@ -1636,7 +1636,7 @@ static int do_mkdir(const void *ctx, struct connection *conn,
 		node = create_node(conn, ctx, name, NULL, 0);
 		if (!node)
 			return errno;
-		fire_watches(conn, ctx, name, node, false, NULL);
+		fire_watches(conn, ctx, name, node, MATCH_SUBTREE, NULL);
 	}
 	send_ack(conn, XS_MKDIR);
 
@@ -1682,7 +1682,7 @@ static int delnode_sub(const void *ctx, struct connection *conn,
 		       struct node *node, void *arg)
 {
 	const char *root = arg;
-	bool watch_exact;
+	enum watch_match watch_match;
 	int ret;
 	const char *db_name;
 
@@ -1702,8 +1702,8 @@ static int delnode_sub(const void *ctx, struct connection *conn,
 	 * This fine as we are single threaded and the next possible read will
 	 * be handled only after the node has been really removed.
 	*/
-	watch_exact = strcmp(root, node->name);
-	fire_watches(conn, ctx, node->name, node, watch_exact, NULL);
+	watch_match = strcmp(root, node->name) ? MATCH_EXACT : MATCH_SUBTREE;
+	fire_watches(conn, ctx, node->name, node, watch_match, NULL);
 
 	return WALK_TREE_RM_CHILDENTRY;
 }
@@ -1857,7 +1857,7 @@ static int do_set_perms(const void *ctx, struct connection *conn,
 	if (write_node(conn, node, NODE_MODIFY, false))
 		return errno;
 
-	fire_watches(conn, ctx, name, node, false, &old_perms);
+	fire_watches(conn, ctx, name, node, MATCH_SUBTREE, &old_perms);
 	send_ack(conn, XS_SET_PERMS);
 
 	return 0;
diff --git a/tools/xenstored/transaction.c b/tools/xenstored/transaction.c
index ccf93a1132..7e15aa8a2c 100644
--- a/tools/xenstored/transaction.c
+++ b/tools/xenstored/transaction.c
@@ -134,7 +134,7 @@ struct accessed_node
 
 	/* Watch event flags. */
 	bool fire_watch;
-	bool watch_exact;
+	enum watch_match watch_match;
 };
 
 struct transaction
@@ -327,8 +327,10 @@ err:
  * A watch event should be fired for a node modified inside a transaction.
  * Set the corresponding information. A non-exact event is replacing an exact
  * one, but not the other way round.
+ * No special watch handling needed here, so MATCH_DEPTH is no issue.
  */
-void queue_watches(struct connection *conn, const char *name, bool watch_exact)
+void queue_watches(struct connection *conn, const char *name,
+		   enum watch_match watch_match)
 {
 	struct accessed_node *i;
 
@@ -340,9 +342,9 @@ void queue_watches(struct connection *conn, const char *name, bool watch_exact)
 
 	if (!i->fire_watch) {
 		i->fire_watch = true;
-		i->watch_exact = watch_exact;
-	} else if (!watch_exact) {
-		i->watch_exact = false;
+		i->watch_match = watch_match;
+	} else if (watch_match == MATCH_SUBTREE) {
+		i->watch_match = MATCH_SUBTREE;
 	}
 }
 
@@ -419,7 +421,7 @@ static int finalize_transaction(struct connection *conn,
 				db_delete(conn, i->node, NULL);
 		}
 		if (i->fire_watch)
-			fire_watches(conn, trans, i->node, NULL, i->watch_exact,
+			fire_watches(conn, trans, i->node, NULL, i->watch_match,
 				     i->perms.p ? &i->perms : NULL);
 
 		list_del(&i->list);
diff --git a/tools/xenstored/transaction.h b/tools/xenstored/transaction.h
index 90435b4fc9..b4f5f757e2 100644
--- a/tools/xenstored/transaction.h
+++ b/tools/xenstored/transaction.h
@@ -18,6 +18,7 @@
 #ifndef _XENSTORED_TRANSACTION_H
 #define _XENSTORED_TRANSACTION_H
 #include "core.h"
+#include "watch.h"
 
 enum node_access_type {
     NODE_ACCESS_READ,
@@ -44,7 +45,8 @@ int __must_check access_node(struct connection *conn, struct node *node,
                              enum node_access_type type, const char **db_name);
 
 /* Queue watches for a modified node. */
-void queue_watches(struct connection *conn, const char *name, bool watch_exact);
+void queue_watches(struct connection *conn, const char *name,
+		   enum watch_match watch_match);
 
 /* Prepend the transaction to name if appropriate. */
 const char *transaction_prepend(struct connection *conn, const char *name);
diff --git a/tools/xenstored/watch.c b/tools/xenstored/watch.c
index 5de386370d..342b283285 100644
--- a/tools/xenstored/watch.c
+++ b/tools/xenstored/watch.c
@@ -128,7 +128,8 @@ static bool watch_permitted(struct connection *conn, const void *ctx,
  * watch event, too.
  */
 void fire_watches(struct connection *conn, const void *ctx, const char *name,
-		  const struct node *node, bool exact, struct node_perms *perms)
+		  const struct node *node, enum watch_match match,
+		  struct node_perms *perms)
 {
 	struct connection *i;
 	struct buffered_data *req;
@@ -136,7 +137,7 @@ void fire_watches(struct connection *conn, const void *ctx, const char *name,
 
 	/* During transactions, don't fire watches, but queue them. */
 	if (conn && conn->transaction) {
-		queue_watches(conn, name, exact);
+		queue_watches(conn, name, match);
 		return;
 	}
 
@@ -148,17 +149,34 @@ void fire_watches(struct connection *conn, const void *ctx, const char *name,
 			continue;
 
 		list_for_each_entry(watch, &i->watches, list) {
-			if (exact) {
-				if (streq(name, watch->node))
-					send_event(req, i,
-						   get_watch_path(watch, name),
-						   watch->token);
-			} else {
-				if (is_child(name, watch->node, watch->depth))
-					send_event(req, i,
-						   get_watch_path(watch, name),
-						   watch->token);
+			bool send = false;
+
+			switch (match) {
+			case MATCH_EXACT:
+				send = streq(name, watch->node);
+				break;
+
+			case MATCH_SUBTREE:
+				send = is_child(name, watch->node,
+						watch->depth);
+				break;
+
+			case MATCH_DEPTH:
+				send = streq(name, watch->node) ||
+				       (watch->depth > 0 &&
+					is_child(name, watch->node,
+						 watch->depth));
+				break;
+
+			case MATCH_NODEPTH:
+				send = streq(name, watch->node) &&
+				       watch->depth < 0;
+				break;
 			}
+
+			if (send)
+				send_event(req, i, get_watch_path(watch, name),
+					   watch->token);
 		}
 	}
 }
diff --git a/tools/xenstored/watch.h b/tools/xenstored/watch.h
index afdfdc6b2f..692343389f 100644
--- a/tools/xenstored/watch.h
+++ b/tools/xenstored/watch.h
@@ -27,8 +27,15 @@ int do_unwatch(const void *ctx, struct connection *conn,
 	       struct buffered_data *in);
 
 /* Fire all watches: !exact means all the children are affected (ie. rm). */
+enum watch_match {
+	MATCH_EXACT,
+	MATCH_SUBTREE,
+	MATCH_DEPTH,	/* watches with depth > 0, MATCH_SUBTREE semantics */
+	MATCH_NODEPTH	/* watches with no depth, MATCH_EXACT semantics */
+};
+
 void fire_watches(struct connection *conn, const void *tmp, const char *name,
-		  const struct node *node, bool exact,
+		  const struct node *node, enum watch_match match,
 		  struct node_perms *perms);
 
 void conn_delete_all_watches(struct connection *conn);
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 07:48:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 07:48:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253379.1549676 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0xG7-000675-B4; Fri, 13 Mar 2026 07:48:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253379.1549676; Fri, 13 Mar 2026 07:48: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 1w0xG7-00066v-7A; Fri, 13 Mar 2026 07:48:35 +0000
Received: by outflank-mailman (input) for mailman id 1253379;
 Fri, 13 Mar 2026 07: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=CqhT=BN=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0xG5-0003h2-Mc
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 07:48:33 +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 081c0d37-1eb1-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 08:48:32 +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 C46755CF3A;
 Fri, 13 Mar 2026 07:48: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 A3F84403F6;
 Fri, 13 Mar 2026 07:48:31 +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 jozfJk/Bs2nxGAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 13 Mar 2026 07:48:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 081c0d37-1eb1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773388111; 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=Wtc5vtg54h365QFdm8hm6MolP6XIgjTyDkWMll2qEbc=;
	b=IFXiqIDBBFWrVLnDa2TDp0llCHTngEsRKlAA6/8Goi95/zxhfJW0wSvjmYPXIp5XYeH4ya
	6IF+YyI2lywmpGm/crQt+24oJBhu4IaP6cNtClfIKibfr/XbV7ohmzD+BsywkdEGjPZWfL
	uCcRGjbycsgRz9o9i/CSmI+ae4yUhII=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773388111; 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=Wtc5vtg54h365QFdm8hm6MolP6XIgjTyDkWMll2qEbc=;
	b=IFXiqIDBBFWrVLnDa2TDp0llCHTngEsRKlAA6/8Goi95/zxhfJW0wSvjmYPXIp5XYeH4ya
	6IF+YyI2lywmpGm/crQt+24oJBhu4IaP6cNtClfIKibfr/XbV7ohmzD+BsywkdEGjPZWfL
	uCcRGjbycsgRz9o9i/CSmI+ae4yUhII=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 7/8] tools/xenstored: expand special watch handling with depth feature
Date: Fri, 13 Mar 2026 08:47:50 +0100
Message-ID: <20260313074751.2904215-8-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260313074751.2904215-1-jgross@suse.com>
References: <20260313074751.2904215-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)[4];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -6.80
X-Spam-Level: 

With XENSTORE_SERVER_FEATURE_WATCHDEPTH available, special watch
handling needs to be extended:

- when a special watch is set with depth = 1, the domid is added to
  the watch event

- it is possible to watch for @releaseDomain/<domid>

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/xenstored/domain.c | 37 ++++++++++++++++++++++++++++---------
 1 file changed, 28 insertions(+), 9 deletions(-)

diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index 866c0aa908..1fe8abbea9 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -613,7 +613,12 @@ static void domain_tree_remove(struct domain *domain)
 	walk_node_tree(domain, NULL, "@introduceDomain", &walkfuncs, domain);
 }
 
-static void fire_special_watches(const char *name)
+#define WATCH_NODOM	1	/* Fire watches without <domid> extension. */
+#define WATCH_DOM	2	/* Fire watches with <domid> extension. */
+#define WATCH_BOTH	(WATCH_NODOM | WATCH_DOM)
+
+static void fire_special_watches(const char *name, unsigned int domid,
+				 unsigned int watchdom_flag)
 {
 	void *ctx = talloc_new(NULL);
 	const struct node *node;
@@ -623,9 +628,19 @@ static void fire_special_watches(const char *name)
 
 	node = read_node_const(NULL, ctx, name);
 
-	if (node)
-		fire_watches(NULL, ctx, name, node, true, NULL);
-	else
+	if (node) {
+		if (watchdom_flag & WATCH_NODOM)
+			fire_watches(NULL, ctx, name, node, MATCH_NODEPTH,
+				     NULL);
+		if (watchdom_flag & WATCH_DOM) {
+			char name_dom[24]; /* max. "@introduceDomain/domid" */
+
+			snprintf(name_dom, sizeof(name_dom),
+				 "%s/%u", name, domid);
+			fire_watches(NULL, ctx, name_dom, node, MATCH_DEPTH,
+				     NULL);
+		}
+	} else
 		log("special node %s not found\n", name);
 
 	talloc_free(ctx);
@@ -650,7 +665,7 @@ static int destroy_domain(void *_domain)
 	if (domain->interface)
 		unmap_interface(domain->domid, domain->interface);
 
-	fire_special_watches("@releaseDomain");
+	fire_special_watches("@releaseDomain", domain->domid, WATCH_BOTH);
 
 	wrl_domain_destroy(domain);
 
@@ -678,10 +693,13 @@ static int do_check_domain(struct domain *domain, bool *notify,
 		if ((state & XENMANAGE_GETDOMSTATE_STATE_SHUTDOWN)
 		    && !domain->shutdown) {
 			domain->shutdown = true;
+			fire_special_watches("@releaseDomain", domain->domid,
+					     WATCH_DOM);
 			*notify = true;
 		}
-		if (!(state & XENMANAGE_GETDOMSTATE_STATE_DEAD))
+		if (!(state & XENMANAGE_GETDOMSTATE_STATE_DEAD)) {
 			return 0;
+		}
 	}
 	if (domain->conn) {
 		/* domain is a talloc child of domain->conn. */
@@ -720,7 +738,7 @@ void check_domains(void)
 		;
 
 	if (notify)
-		fire_special_watches("@releaseDomain");
+		fire_special_watches("@releaseDomain", 0, WATCH_NODOM);
 }
 
 static struct domain *find_domain_struct(unsigned int domid)
@@ -744,7 +762,7 @@ static void do_check_domains(void)
 	}
 
 	if (notify)
-		fire_special_watches("@releaseDomain");
+		fire_special_watches("@releaseDomain", 0, WATCH_NODOM);
 }
 
 /* We scan all domains rather than use the information given here. */
@@ -1097,7 +1115,8 @@ static struct domain *introduce_domain(const void *ctx,
 		talloc_steal(domain->conn, domain);
 
 		if (!is_priv_domain && !restore)
-			fire_special_watches("@introduceDomain");
+			fire_special_watches("@introduceDomain", domid,
+					     WATCH_BOTH);
 	} else {
 		/* Use XS_INTRODUCE for recreating the xenbus event-channel. */
 		if (domain->port)
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 07:58:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 07:58:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253419.1549686 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0xPT-0000TD-Cr; Fri, 13 Mar 2026 07:58:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253419.1549686; Fri, 13 Mar 2026 07:58:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0xPT-0000T6-8i; Fri, 13 Mar 2026 07:58:15 +0000
Received: by outflank-mailman (input) for mailman id 1253419;
 Fri, 13 Mar 2026 07:58: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=CqhT=BN=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w0xGB-0003TG-If
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 07:48:39 +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 0b5917f6-1eb1-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 08:48:37 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 43F825CF3C;
 Fri, 13 Mar 2026 07:48: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 1AD62403F6;
 Fri, 13 Mar 2026 07:48:37 +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 ppJ+BVXBs2k1GQAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 13 Mar 2026 07:48: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: 0b5917f6-1eb1-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773388117; 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=yQy01lSorBeCu75rYkVAGdbd34BdLsmg0CaWqBI6wwU=;
	b=WAhxk8oYy6gXZ9sygI9gnvp/GZUEehkI3dIR1RA84eQnixk7QKXRsPC3ZI7CNRt+ywvdxg
	JBPjvp/cfbVAy2H+Bv5+ItFrO8Kt90uXE1/tr9ULU5MgT/JNCHwcPs99z0mE5q8lPiU0Nb
	SWoPcVXUSXyOpaOQWnpIbmgJ6PeTGrs=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773388117; 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=yQy01lSorBeCu75rYkVAGdbd34BdLsmg0CaWqBI6wwU=;
	b=WAhxk8oYy6gXZ9sygI9gnvp/GZUEehkI3dIR1RA84eQnixk7QKXRsPC3ZI7CNRt+ywvdxg
	JBPjvp/cfbVAy2H+Bv5+ItFrO8Kt90uXE1/tr9ULU5MgT/JNCHwcPs99z0mE5q8lPiU0Nb
	SWoPcVXUSXyOpaOQWnpIbmgJ6PeTGrs=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 8/8] tools/xenstored: make XENSTORE_SERVER_FEATURE_WATCHDEPTH available
Date: Fri, 13 Mar 2026 08:47:51 +0100
Message-ID: <20260313074751.2904215-9-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260313074751.2904215-1-jgross@suse.com>
References: <20260313074751.2904215-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -6.80
X-Spam-Level: 
X-Spamd-Result: default: False [-6.80 / 50.00];
	REPLY(-4.00)[];
	BAYES_HAM(-3.00)[100.00%];
	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)[4];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO

Add XENSTORE_SERVER_FEATURE_WATCHDEPTH to the available features now
that all needed support has been added.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/xenstored/domain.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index 1fe8abbea9..d02ac247c5 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -43,7 +43,8 @@
 #include <mini-os/xenbus.h>
 #endif
 
-#define XENSTORE_FEATURES	XENSTORE_SERVER_FEATURE_ERROR
+#define XENSTORE_FEATURES	(XENSTORE_SERVER_FEATURE_ERROR |	\
+				 XENSTORE_SERVER_FEATURE_WATCHDEPTH)
 
 static xenmanage_handle *xm_handle;
 xengnttab_handle **xgt_handle;
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 08:33:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 08:33:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253449.1549695 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0xxR-0006SO-69; Fri, 13 Mar 2026 08:33:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253449.1549695; Fri, 13 Mar 2026 08:33: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 1w0xxR-0006SH-28; Fri, 13 Mar 2026 08:33:21 +0000
Received: by outflank-mailman (input) for mailman id 1253449;
 Fri, 13 Mar 2026 08:33: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=GpL4=BN=kernel.org=jirislaby@srs-se1.protection.inumbo.net>)
 id 1w0xxP-0006SB-Mu
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 08:33:19 +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 45b90518-1eb7-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 09:33:13 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 91FB34023C;
 Fri, 13 Mar 2026 08:33:11 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 98979C19421;
 Fri, 13 Mar 2026 08:33:09 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 45b90518-1eb7-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1773390791;
	bh=h5B+Q34OJ/9ZfyBFa9p5JECO17+rGiviv61mrDR5FG0=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=NZDZWOS6qaZ/o6xl26zpKpfVm601rbfc2WwNQLAEZbkKQ+S6cJAHOpCzHNPeSGjUx
	 Moy74d9OJcHJ97UCN52hDl7SEKZnOEIwN7U0V09w7Ix8iKHQhdtgj2cQArXuGvJ9vV
	 2IcPEOZLXBBnFwvf1oAmACddoTjYvsbgsH1uV2EwpVadqvmP2oyBu+PNskowl3wr00
	 ZzDUnW0CcAmwvObR7Q7Wha6OFE/MCEq8R3Cpa7Akhl82kXF0voofjA38To1jqAnv5n
	 n6OEV+vcDXnmSul/U31URWMTQFLotDowLfyUQTp8MZl9sVKJBdlb9MIJKyQUGl6YSn
	 mXpcOqeoriWcA==
Message-ID: <8e5974b1-da6d-4718-9140-1f943cdd2404@kernel.org>
Date: Fri, 13 Mar 2026 09:33:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] hvc/xen: Check console connection flag
To: Jason Andryuk <jason.andryuk@amd.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
 linux-serial@vger.kernel.org, xen-devel@lists.xenproject.org
References: <20260312173845.47235-1-jason.andryuk@amd.com>
Content-Language: en-US
From: Jiri Slaby <jirislaby@kernel.org>
Autocrypt: addr=jirislaby@kernel.org; keydata=
 xsFNBE6S54YBEACzzjLwDUbU5elY4GTg/NdotjA0jyyJtYI86wdKraekbNE0bC4zV+ryvH4j
 rrcDwGs6tFVrAHvdHeIdI07s1iIx5R/ndcHwt4fvI8CL5PzPmn5J+h0WERR5rFprRh6axhOk
 rSD5CwQl19fm4AJCS6A9GJtOoiLpWn2/IbogPc71jQVrupZYYx51rAaHZ0D2KYK/uhfc6neJ
 i0WqPlbtIlIrpvWxckucNu6ZwXjFY0f3qIRg3Vqh5QxPkojGsq9tXVFVLEkSVz6FoqCHrUTx
 wr+aw6qqQVgvT/McQtsI0S66uIkQjzPUrgAEtWUv76rM4ekqL9stHyvTGw0Fjsualwb0Gwdx
 ReTZzMgheAyoy/umIOKrSEpWouVoBt5FFSZUyjuDdlPPYyPav+hpI6ggmCTld3u2hyiHji2H
 cDpcLM2LMhlHBipu80s9anNeZhCANDhbC5E+NZmuwgzHBcan8WC7xsPXPaiZSIm7TKaVoOcL
 9tE5aN3jQmIlrT7ZUX52Ff/hSdx/JKDP3YMNtt4B0cH6ejIjtqTd+Ge8sSttsnNM0CQUkXps
 w98jwz+Lxw/bKMr3NSnnFpUZaxwji3BC9vYyxKMAwNelBCHEgS/OAa3EJoTfuYOK6wT6nadm
 YqYjwYbZE5V/SwzMbpWu7Jwlvuwyfo5mh7w5iMfnZE+vHFwp/wARAQABzSFKaXJpIFNsYWJ5
 IDxqaXJpc2xhYnlAa2VybmVsLm9yZz7CwXcEEwEIACEFAlW3RUwCGwMFCwkIBwIGFQgJCgsC
 BBYCAwECHgECF4AACgkQvSWxBAa0cEnVTg//TQpdIAr8Tn0VAeUjdVIH9XCFw+cPSU+zMSCH
 eCZoA/N6gitEcnvHoFVVM7b3hK2HgoFUNbmYC0RdcSc80pOF5gCnACSP9XWHGWzeKCARRcQR
 4s5YD8I4VV5hqXcKo2DFAtIOVbHDW+0okOzcecdasCakUTr7s2fXz97uuoc2gIBB7bmHUGAH
 XQXHvdnCLjDjR+eJN+zrtbqZKYSfj89s/ZHn5Slug6w8qOPT1sVNGG+eWPlc5s7XYhT9z66E
 l5C0rG35JE4PhC+tl7BaE5IwjJlBMHf/cMJxNHAYoQ1hWQCKOfMDQ6bsEr++kGUCbHkrEFwD
 UVA72iLnnnlZCMevwE4hc0zVhseWhPc/KMYObU1sDGqaCesRLkE3tiE7X2cikmj/qH0CoMWe
 gjnwnQ2qVJcaPSzJ4QITvchEQ+tbuVAyvn9H+9MkdT7b7b2OaqYsUP8rn/2k1Td5zknUz7iF
 oJ0Z9wPTl6tDfF8phaMIPISYrhceVOIoL+rWfaikhBulZTIT5ihieY9nQOw6vhOfWkYvv0Dl
 o4GRnb2ybPQpfEs7WtetOsUgiUbfljTgILFw3CsPW8JESOGQc0Pv8ieznIighqPPFz9g+zSu
 Ss/rpcsqag5n9rQp/H3WW5zKUpeYcKGaPDp/vSUovMcjp8USIhzBBrmI7UWAtuedG9prjqfO
 wU0ETpLnhgEQAM+cDWLL+Wvc9cLhA2OXZ/gMmu7NbYKjfth1UyOuBd5emIO+d4RfFM02XFTI
 t4MxwhAryhsKQQcA4iQNldkbyeviYrPKWjLTjRXT5cD2lpWzr+Jx7mX7InV5JOz1Qq+P+nJW
 YIBjUKhI03ux89p58CYil24Zpyn2F5cX7U+inY8lJIBwLPBnc9Z0An/DVnUOD+0wIcYVnZAK
 DiIXODkGqTg3fhZwbbi+KAhtHPFM2fGw2VTUf62IHzV+eBSnamzPOBc1XsJYKRo3FHNeLuS8
 f4wUe7bWb9O66PPFK/RkeqNX6akkFBf9VfrZ1rTEKAyJ2uqf1EI1olYnENk4+00IBa+BavGQ
 8UW9dGW3nbPrfuOV5UUvbnsSQwj67pSdrBQqilr5N/5H9z7VCDQ0dhuJNtvDSlTf2iUFBqgk
 3smln31PUYiVPrMP0V4ja0i9qtO/TB01rTfTyXTRtqz53qO5dGsYiliJO5aUmh8swVpotgK4
 /57h3zGsaXO9PGgnnAdqeKVITaFTLY1ISg+Ptb4KoliiOjrBMmQUSJVtkUXMrCMCeuPDGHo7
 39Xc75lcHlGuM3yEB//htKjyprbLeLf1y4xPyTeeF5zg/0ztRZNKZicgEmxyUNBHHnBKHQxz
 1j+mzH0HjZZtXjGu2KLJ18G07q0fpz2ZPk2D53Ww39VNI/J9ABEBAAHCwV8EGAECAAkFAk6S
 54YCGwwACgkQvSWxBAa0cEk3tRAAgO+DFpbyIa4RlnfpcW17AfnpZi9VR5+zr496n2jH/1ld
 wRO/S+QNSA8qdABqMb9WI4BNaoANgcg0AS429Mq0taaWKkAjkkGAT7mD1Q5PiLr06Y/+Kzdr
 90eUVneqM2TUQQbK+Kh7JwmGVrRGNqQrDk+gRNvKnGwFNeTkTKtJ0P8jYd7P1gZb9Fwj9YLx
 jhn/sVIhNmEBLBoI7PL+9fbILqJPHgAwW35rpnq4f/EYTykbk1sa13Tav6btJ+4QOgbcezWI
 wZ5w/JVfEJW9JXp3BFAVzRQ5nVrrLDAJZ8Y5ioWcm99JtSIIxXxt9FJaGc1Bgsi5K/+dyTKL
 wLMJgiBzbVx8G+fCJJ9YtlNOPWhbKPlrQ8+AY52Aagi9WNhe6XfJdh5g6ptiOILm330mkR4g
 W6nEgZVyIyTq3ekOuruftWL99qpP5zi+eNrMmLRQx9iecDNgFr342R9bTDlb1TLuRb+/tJ98
 f/bIWIr0cqQmqQ33FgRhrG1+Xml6UXyJ2jExmlO8JljuOGeXYh6ZkIEyzqzffzBLXZCujlYQ
 DFXpyMNVJ2ZwPmX2mWEoYuaBU0JN7wM+/zWgOf2zRwhEuD3A2cO2PxoiIfyUEfB9SSmffaK/
 S4xXoB6wvGENZ85Hg37C7WDNdaAt6Xh2uQIly5grkgvWppkNy4ZHxE+jeNsU7tg=
In-Reply-To: <20260312173845.47235-1-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 12. 03. 26, 18:38, Jason Andryuk wrote:
> --- a/include/xen/interface/io/console.h
> +++ b/include/xen/interface/io/console.h
> @@ -19,6 +19,19 @@ struct xencons_interface {
>       char out[2048];
>       XENCONS_RING_IDX in_cons, in_prod;
>       XENCONS_RING_IDX out_cons, out_prod;
> +/*
> + * Flag values signaling from backend to frontend whether the console is
> + * connected.  i.e. Whether it will be serviced and emptied.
> + *
> + * The flag starts as disconnected.
> + */
> +#define XENCONSOLE_DISCONNECTED 1
> +/*
> + * The flag is set to connected when the backend connects and the console
> + * will be serviced.
> + */
> +#define XENCONSOLE_CONNECTED    0

This all should be an enum. And you can document it using kernel-doc 
properly then.

> +    uint8_t connection;

And type check as well.

thanks,
-- 
js
suse labs


From xen-devel-bounces@lists.xenproject.org Fri Mar 13 09:48:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 09:48:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253474.1549703 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w0z7X-0006et-A4; Fri, 13 Mar 2026 09:47:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253474.1549703; Fri, 13 Mar 2026 09:47: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 1w0z7X-0006em-6g; Fri, 13 Mar 2026 09:47:51 +0000
Received: by outflank-mailman (input) for mailman id 1253474;
 Fri, 13 Mar 2026 09:47: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=Q06f=BN=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1w0z7V-0006eg-Cp
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 09:47:49 +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 aecda6f2-1ec1-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 10:47:43 +0100 (CET)
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by GVXPR03MB11627.eurprd03.prod.outlook.com (2603:10a6:150:310::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.15; Fri, 13 Mar
 2026 09:47:41 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%5]) with mapi id 15.20.9700.010; Fri, 13 Mar 2026
 09:47: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: aecda6f2-1ec1-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fGOP2Y+fkmCbdAx9mraAeL+xfFhd/20qODl79DRUZ4d8m4/fqmiRkhE2OfH3wjEv/uLVB0+9CoHKmWO+OfALzsNJuIs9Rler6pkGq4lpZYI5eznn1kn80ZRuJS+nshdtluDK6CUdFhNSv+5JgpviXeV+1eX2+8SbMprt5WNe1utSBQkLnbHUE//XVuV7WQXwHkEwJob8HBrvS4h9w4A/ZJmGFT8t3EsC1XiiIqkuFIrayaIexosE7YULVi8URc7PSM3uvwu0LEgxvywEDtPlE2L/whzmtO6g3AGgQODWRE4bg9lDOk+CXYEVIW9Fx31rPbPJ0ECuYJjlj1Ac+CfZZQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rUsdyvpnIikzo0pSsEdPSpYumfroyUemSD3sWoJp5xs=;
 b=scHxA4IWp0rNZUYlUsfJ3tMqrs7+b4kom0M4biJun98C0bXEEaJvsEosgq+2wGI6xvkshsHFKlX+SGNN22oYRQ2HandGC7L3HQ2N5PVvsa/XfhYnYF/FFJ9q4Xoxs/sN48pwh0P2Wkd4WNYGwpKZPo4MxOIAkmkgp6PxXDkA4gQdJDGOT+QPmRQaGWLsHm73VljvH9IG+ZJMTc4Tyf7C3GF0op9Ot3efdy2M/XsD/s2wALS57tGYC9QuJEy1sVoeK6+RuszoIuvnYH2agpUUsTeqKePNuUcQSRafY8qtseAL0l012KaGlLHWYn8WdIyU1+84m3QE28Xb2lnKx6mx/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=rUsdyvpnIikzo0pSsEdPSpYumfroyUemSD3sWoJp5xs=;
 b=fSt6FCMoNmmxMieV71ghiYSFjfs3KgZ5s7RX6Hd31Vlew8Bvr7WbvSFstDORp1QLzj4gv2S/TW6RHfj4fViLTQVI1OpKaNbRlmu9Ytv6hzvij1MLJmMlaJFhgBeLQVYii/0tIOdHX8tJpysYcVK/PVb+5VowvOq0setMAkXl8nIdIXEkgLve+uLoAgIAnIqklO+CVwXZPijUbDb/2CftkvAOn8N4NkV0UwqmUlv/g2lYcgCOzZgiRAGCFIaAGyQOOv7Kv1CEThgA+puDpsFVDEltqt3zB9Sl/kwcU7o924YWBSS5FGViAc2l0pWNNzJ90/oejh8s3R7eZNUvQPIVJA==
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>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Jens Wiklander <jens.wiklander@linaro.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: [PATCH] arm/ffa: deviate violation of MISRA C Rule 20.12
Thread-Topic: [PATCH] arm/ffa: deviate violation of MISRA C Rule 20.12
Thread-Index: AQHcss5tR2+5DPx62k6x27kB0BQ6vQ==
Date: Fri, 13 Mar 2026 09:47:38 +0000
Message-ID:
 <5c415313cb818323b70c59c2a9c26e6122bdc434.1773393963.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_|GVXPR03MB11627:EE_
x-ms-office365-filtering-correlation-id: 8ca98e24-1922-407f-ac5b-08de80e59064
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|42112799006|376014|366016|38070700021|18002099003|56012099003;
x-microsoft-antispam-message-info:
 4RNrBc4MT+mUqd3TGyY2kPBbSMlhE7d94vD7XYs3ammSb1PvUkR3rtoacfYv3EwWb/qlflvPZjBHmswUUGuS5S3XIpds0ywcOnO07acrpmWWQb6k8BstKnuvE3phznH9aYVdcDlCU00WO+b03ONpN68K8gevpemQQiJ+L9BSyUqVw8QBCP2y3gAR5NUKZhZvgJPxsMeQPAhVOuv8tf3sc8XvttIIzusedgdlPPOldVEALfDeSi4Z8BHjLal90wXfKQyjUXzayyDL3ZJn0vLNi3eCnI2MkxOwqUe/od9jF+ownf30voUgFxTJEUcRH8nxwZgAI6ARthsGXjcVJstsIVTOdsmNprmvl7rLrITSyf6qNp0VFzmReLWupvOLOcKoHHlXhp/sIUYOmlKeVsdhJqRRH7edl/dClybb90IvffylzfVpH0HvVVu2WtztBgCFWuWLe1xzD2qTsmj+EebAr9Hc21jq0/3HjXc4VnHQluoYWWPOHIEb67xrGa0jplCGHhuE2MATtdz5+LtqOttLcWg2R0q9vtN0g9rqduSAaFa/K8mPKEoiRRnIPTNxWjXtfDWfokm5xMhRzceQceewGBJFc39SI7PgVoW1waPxqp3jwbcfuF6nS2SU9rRsJ7ZKZKh7RLbri6Tx8Sp8pXqD8UtCZ2DC5TY4VkOaLGcEXJUfVtzpUCAsr5E/AoMmdD6WVz4VYqKSlIqeEw0ZAFo7S47w/zy+hHFNKitRNg7TBMMFLh+9lKGKywaW9DAb8HEwvIiL56bG+nuhtpIfRZQYNfi/xd9lnsZt0lCsSYDtBiY=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(42112799006)(376014)(366016)(38070700021)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?B77x2U/lQTWt8d/Z40FtUCmgkKCWcbo7TY3z/XmgRl6gEXFlP9xnEmdAGy?=
 =?iso-8859-1?Q?OkqUk73JncA6wrG8g9ZB6ruQUzwKT70CH5xaq6wWEm2qmd47CNO0/hKi50?=
 =?iso-8859-1?Q?x7W39uR7cvVfOUOA9fzk9Btbt58tbVJgoDS9/eNuRxLVuCVOdevijgTw+0?=
 =?iso-8859-1?Q?MRRyQse/o5cYpJcojQVT5HXFjw+meh1e0rlXWkSBNLEelM4saaLfApLiDj?=
 =?iso-8859-1?Q?QzvJ3wa0n59+31HZQeDZk2EqYq6Aj9qMG/bALj5P++gvTD7nRaMKv1Rgky?=
 =?iso-8859-1?Q?bT1AiluFyt7hc33/rMj7s3Xh7N9JVgsEEmOYD3jMxGZz1/pDO/fZhausz9?=
 =?iso-8859-1?Q?buV8hr+FfnLRaebKFw4Mb1zeKP07oS7sbERYkT7W9KQh4p0Pbm7zX/MVYV?=
 =?iso-8859-1?Q?9z96Aav2vWeVCLHRnOB7jLkCnGLsS8iySX/bb4g+LrMOUb87I6eaMr6B5q?=
 =?iso-8859-1?Q?NTjTt3rilgoDpYlD6suETHnELHhEh6JPwoJhRYZOB1RIUK9ZJCZjOhHCvI?=
 =?iso-8859-1?Q?esdFrnvgH509HABbE9jXR/r2/u5SAgWXVkT3he7tFz4rTEeDPO75tvMD2G?=
 =?iso-8859-1?Q?yJN5QjirKt6DMZV3shZI7pu6BvXsImyjW4dg4BIDi2iwrg+4pcYSE6Aicr?=
 =?iso-8859-1?Q?Yb2j7IQ4xUcsmr+Mn01jdBZXLcAvy+r7QmJV/sffIDCtGU3ksPqNh3TGHT?=
 =?iso-8859-1?Q?M5s+Lq8tgjUjvoHtp6y1NInuiRKIk4bsmwW59pw4KR7aAGEOdvcDyGlNQV?=
 =?iso-8859-1?Q?0cYMFxYSIun8HXvhrUxam9aitiHptA0rCnu0FNuAZiUnlIV8q5le0WcXxw?=
 =?iso-8859-1?Q?6qkjM6rYaSY8gvAOzU4pO0SA58YTUdaBM4g6Trkxc/lOKNEHbTCW5FpsIW?=
 =?iso-8859-1?Q?MB59hAQYO1NNLePpsgvcpgHsN70WiaNE5urYfJerRSSMu3dli+m5kB2urt?=
 =?iso-8859-1?Q?bMl4HFXCiJBJ82HYyJVK6igc5l5tkXThoATJRo4zQH8a+Tf/VNMGURHk5V?=
 =?iso-8859-1?Q?fb4IngBQvE6E80iGwBLzb57QJziCoWblpQW+/YQbpgeUCR7ha7Tzler4bn?=
 =?iso-8859-1?Q?1Lqqmn1UdMFtFE5MhUbTTMw5BPbyHCNNZFsGkZhI+E3VLyYUahv124OyBD?=
 =?iso-8859-1?Q?JMGhkBjwT0EEMrn4jWpRVSKjFzi079I7OztQCf/0eF35L7TCAyNPFF2BXN?=
 =?iso-8859-1?Q?BJ9UhY7BAB+vpmOomJMeISQCG2LQ+mw9UmyQIOUspAJQh7S4KRrU8XCz+q?=
 =?iso-8859-1?Q?kv5ep4F3wmrvRQz2Pb6tLegPIB+p+hczhdyP9lFgHitqVPofp/EwyzUGLN?=
 =?iso-8859-1?Q?ZduPEa26X/JQL1a52sG94q7vOB8ES9cbeQdaaMmDTurffwpecKL71ZKHv6?=
 =?iso-8859-1?Q?OHrfsREaqzobG/Qpy1PvYUCIBEDdQz6tLEzCmDBb9sNRRTFe7YH63O/dQj?=
 =?iso-8859-1?Q?Ku9lBJshnouSlq9ccMGBEhmp2IXu+4yU28Id0jKOOHfv/4n1QZc6yOPmZ9?=
 =?iso-8859-1?Q?23RHGIDykLwtDs0BD9pKGhxFHxCmjZZKbNc7GTxHZc5hsb5n411xmcOmy8?=
 =?iso-8859-1?Q?t7MFnLw8PJ97fdW7GNpiNB4f+JC1ANyvx1brRpAi4AJwMej+/jaBHDZlUS?=
 =?iso-8859-1?Q?KHcd4Lu96RBj7/g6NVRGYRMbcPmWeDdthn62CHCwLWJlIT+PBpTWYycvhw?=
 =?iso-8859-1?Q?P6EeTzXSlQ/HJRC2RmQMFZyJFQ69h6CVTD1XwT+j9hunQJCRe2ZlIE/CDL?=
 =?iso-8859-1?Q?/6KdhIdjtKzekJJbgRFHA7XYHWVVH8EA1If9jor3oCdzSP1t7BZXA3UAiQ?=
 =?iso-8859-1?Q?9Z5nBaqtSyJKwioZ22cYH5pL6LkAons=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: 8ca98e24-1922-407f-ac5b-08de80e59064
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Mar 2026 09:47:39.1253
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: FwnUG4j7b6qCll/DJPVXBIqQnmFvNY8HCFGhM//Z9EuYRdXSRH/Emi1NMqeyXOOX0kH/F5QAMi1K2KRwLgKeppTI4HshvAeueJiRW/G4MHs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB11627

MISRA C Rule 20.12 states: "A macro parameter used as an operand to
the # or ## operators, which is itself subject to further macro replacement=
,
shall only be used as an operand to these operators".

In this case the 'FFA_*' macros are used both as a regular macro argument a=
nd
as an operand for '#' stringification in the expansion of 'FW_ABI()'.
This is deviated using a SAF-x-safe comment.

No functional changes.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Test CI pipeline:
https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/2383141997
---
 xen/arch/arm/tee/ffa.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index aa43ae2595..d4a77206c6 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -80,6 +80,7 @@ struct ffa_fw_abi {
     const char *name;
 };
=20
+/* SAF-6-safe Rule 20.12 expansion of macro FFA_* with FW_ABI */
 #define FW_ABI(abi) {abi,#abi}
=20
 /* List of ABI we use from the firmware */
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Fri Mar 13 10:44:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 10:44:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253510.1549712 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w100F-0005ch-6l; Fri, 13 Mar 2026 10:44:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253510.1549712; Fri, 13 Mar 2026 10: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 1w100F-0005ca-48; Fri, 13 Mar 2026 10:44:23 +0000
Received: by outflank-mailman (input) for mailman id 1253510;
 Fri, 13 Mar 2026 10: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=N2jY=BN=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w100D-0005cU-Pg
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 10:44:21 +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 9412b5b9-1ec9-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 11:44:16 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM6PR03MB5372.namprd03.prod.outlook.com (2603:10b6:5:24f::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.17; Fri, 13 Mar
 2026 10:44:01 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9700.017; Fri, 13 Mar 2026
 10:44:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9412b5b9-1ec9-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xcq9Z38JlzuZ5qw7AEMK018kujswaJL4eFK86JEV+lY3mdVFxGN/26kvjvWO7ajtit7WbMDRJWVTGFyXxU/1NJ5eWChJsHKbSpcG/gaffLlfPttG6JbFHpIPMPunF+fULcQIHn9oO3Z+XLvnU37NirFA39t/VY50//0f7JsgdJclCEhu2sDpfnzsRYW5S63kxIwIah3uTN+8hxP/WHjviWL1Vwi28BQvym90jSmYzOsuYxEB7ejXsjpLclZbxb4lDkfj/Q4mn9wbf3mx9RxjZbxx4RWuZTr5n30DpuObPGpBhDZSyHSC+77GdMweejoxrOz5SvpViWWnMTCERP5iDw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jlkCAird6sp2vbBjC8j0enw65qF8za2p7ncRhVr2gj4=;
 b=IgB53z+E86d4YQRb/BRnECf9/Wt/F7ujEsG33eXHQfq83j0JD/bgzJR/CrFV/BTrbEjPQ4GoHpzQWwbAe90LHqRcviAJ7nXJv/RaUjtGqOEKmj6BlvseJ2qm64q6pgB3EoHwIs12yKVScs0g0itT7gBBAtHHsMlnPvprEJk2mE0MbaLZbu3N4oOJ5ajLsnRBA9SX/AKIsl/ViTqxJxvqBCQ+CKveHI8EmGGu2COSyhl/WA5wLXAp8tZy2I1AbrOHUnCP0uCdjkqEhE5BBipPqNXcIrFulu1SPLcHQeKW7Y+u0Ax7QKNjSKFmV5YLjbWLPbd1ea9/X3kTW+XFSan9Og==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jlkCAird6sp2vbBjC8j0enw65qF8za2p7ncRhVr2gj4=;
 b=NyJLFKorSFJoDdUJmSCvlCESdKokmIOxg2R8KtZaxT2zyMCoS44gBr3pLbirsy5EEnsxXZculXqgNo3EjpQIWpKfcy/S69V/5bJenVd71s2QXU3YSnIjsAeiSbyg2wdvTI5GneWEDo+D6RcgnYFYUvQrvujC4OFleEfMgrsarOw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <ff1cce61-abb4-463d-adce-0e5fc0a326df@citrix.com>
Date: Fri, 13 Mar 2026 10:44:06 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, linuxppc-dev@lists.ozlabs.org,
 linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH] hvc/xen: Check console connection flag
To: Jiri Slaby <jirislaby@kernel.org>, Jason Andryuk <jason.andryuk@amd.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
References: <20260312173845.47235-1-jason.andryuk@amd.com>
 <8e5974b1-da6d-4718-9140-1f943cdd2404@kernel.org>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <8e5974b1-da6d-4718-9140-1f943cdd2404@kernel.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0079.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:8::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_|DM6PR03MB5372:EE_
X-MS-Office365-Filtering-Correlation-Id: e8e8a078-9104-4d73-47f4-08de80ed7498
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|7416014|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	8fGUf62pqmXp9I5+1WUu5UR6dct6IXlXHRoUQvqq9oFdxT/XBnwFIN2iuvFniJ3vSl6DVdH1tSFoPh45AyY7kq4EJcHxotQgeYnll19lrMDugcLuQBZ01jbgcyMaS/2oIx7RJW3icLUuGRdkE5IswGXCaDct85rgylnOrBZrhW2nJ6exfs9A1tZ0q1YPZDERtYZI2JNvOU4SuTb3kO/y4waZDLCUINDadARAjVhuPNIFpT2SYqcHQq9Y40sjmmH6dSJeCtLX4V/FVnYILhufihYGzPtlqnltzSUMKpJDwOwfG80AyyQClExOtCbZngWKqfCrVTXoQg/cmIxgK3jaG4LIZjgZSeM/g//v7cUABd9o/i4iB8luFfaUlOE6nRA8XDUaTx/BfnxzAEa8r2ne/PIJI1jLjDNHdXuRvUGg36XsP8Qhrr5gFILLz1X7ygeSQvk88S8HSrMnJ7YzKxjt+dyjc8p2mLWRHpwbVPUBpN0I+XY+4wLkdPcdPX0+UwhCO9G8uZX519nVrOeni7i5MfIxZeo0svtdAMdJ1Ps35tactqLo900qyC7shVgSQ9xNIHn2o6FgDH1wjipPZc5ZeB6qaj4oqP4NQWMNLfMIzRKtToZjxpgoJt0+1kNPJAfLZGABVL0f59MKbed40xqFJq4gUBDXuYGS6gm+2ZkiJmPDwIM79Z2nbCb7o76nSeW3vAzccDPbgvQsRZST1P/zkVfECMEjcf8zzgems9xalx4=
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)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?R2FGZDFLUWU1V2Z1aWJ4cWlGYmUxQmlDc2h2Ritkcm03NnowMWh5V2t0VWlm?=
 =?utf-8?B?VUtUR05Nc3U4QUd4eUFlekVLTE9NM0dSbGF5L01DRXYyMlh0MlpVdVJ0aTFH?=
 =?utf-8?B?dTJ6YzdyOGNFYjBBQzlwYzRYM2tOUEtqaVYvR3lwWklIUEk0K2doNndzcnpC?=
 =?utf-8?B?UVRQUmFZUTRSMlY4djZrOGJOU3RDaFJObnFmeHVkdlZIaDJTWVRySlFCZzFh?=
 =?utf-8?B?L3RVSlpveVFwaWtkTWwvUVkwbEJPNU1XOTJzck1WbmlRSHhnaFBBVFhNQ3Vz?=
 =?utf-8?B?YnV5MVo0QlpWZnRyWXVOQW1nWTNCN3JxWXE4YWpGTE5RdnBDbjBEZ25USUtH?=
 =?utf-8?B?a3ZPM0xhTE9vK0Y0QW1NSUhZVWQ2Q3FyenlsZVEwdFZ2OERBQUNBQytXTVpW?=
 =?utf-8?B?V0QrZkd1RXJNcmRQT1JVK0l2U0dJWmQ2MlFHSWdFT3c2NExmTDNPWE9iVXZY?=
 =?utf-8?B?c1BUOUFMMGVrb29pd1M2L1VIZmFNVHgzMkU0UXJyQnB6YVNmS2plRmZsd2ZT?=
 =?utf-8?B?bDB1NHBxcTNlYmxQN085WjU5RHVYMlZoRHlpWjVkMTE0eEdENy9lRVVWejB4?=
 =?utf-8?B?MjFnamkrSFQ0MnJ6MEZ5bG82RkNiQW5Lak9JS2JZd0duSk51dXArQmJJamQr?=
 =?utf-8?B?RFdGVnUwS012K0l6QWMzSEFBQUFUVXQ4MUI2aEcyMWZOejQ3WWJPdE4wZXIv?=
 =?utf-8?B?TDViendKb21mRHNJeUZ0d0F0RlgyQ0FHd2xOSWNDUU1PcXlmSVpiejVrQjZj?=
 =?utf-8?B?aWN6NXZ3TzcwQTFydlk4NXZkSmhMa3NpNGhVVGlrT0JQU2FYZlM4Wko3T3BY?=
 =?utf-8?B?SnZoZUZrSE4yZDVPSnU4a3pxazd6bzdINTZMakFPdm9uMEFQQi9xZWRMMXJx?=
 =?utf-8?B?MXhiWERUcEZKUUR2QldYd0ZPa013bnpsRDNtWEh0YWorbzhDMi9wQ000T2NY?=
 =?utf-8?B?MzJlTXVscE1GVXNhbWFnVGo2UkJYZkt3Vzc3MmFzanNFR3pXbzhWcTZhOGtw?=
 =?utf-8?B?aG8xRXp6THFtQ3E4b1lHckNrVHY5eGZXL2hmRGQ4UU5MNDlFelJDQjIycGRM?=
 =?utf-8?B?T2xZVDhnZmpsODVsdDFzNVdsWDgzbVlXWXBKcVVzZG9US1dMMnJJUEhONjZK?=
 =?utf-8?B?dlpOVlJnOGhKaVlxNEdFV0d4Tm9pQ3RkK2tGRXA5dXpNQVZnaXdUTkxPVXlv?=
 =?utf-8?B?TVcwR3NkeTNBN2VaRGxqeXRLZjhkWjZMZCtTUFloU1A4K3UrUmhwOUZjWlRh?=
 =?utf-8?B?dTR5TkNWWStuRFBsSUJyQ3E5SS9hZmRFQkxDRzNlVGR0aDYvL08rYll0endw?=
 =?utf-8?B?YXR3dXd0MjhoVVpyOWZPeHZnbmUvQXZ6MzJHQjA2S3Z5ZWt4OFR0ais3NldN?=
 =?utf-8?B?NXFlR1FPK0tEcml4QTlNbGFMazBzekt4YU8vaU5JalNQNGgxY2FrUEE4VHRP?=
 =?utf-8?B?dzhleUFmUDNwRmptRjFBamxVWjd0eUwvUlgwMW4vcHpIakVBU0dtMEJsS3RK?=
 =?utf-8?B?cVFpZ1N1dHdCSlRwOGh4ZGFqQ1JNMmFTdHBlTVJ1cVdqV0RyalhGODhhcVU4?=
 =?utf-8?B?aGIrOXVMVVBDa3BWV0ZMN1FRZnN4cnZDUWFLN1cyNHFxWFNYUU5qRXNmT0xV?=
 =?utf-8?B?Q3JLeGdqY21xMzUxZU8wbGhUd1JHVHZrYklwZW03TXEvN2cyTzQwV2kyT0Y3?=
 =?utf-8?B?UkpGbjM0eXNjTGgzb3hDN0hSUC9OT2xlTitPbXVuZGVXRTY0bi9rclBiOUli?=
 =?utf-8?B?Snd1Q0k5SzhlVXBGNjlKUTZGL1dndldJcmJJOVB5N3lKbEVrd0FhSkxITVhR?=
 =?utf-8?B?bHhCckt3K05kVGpNZWh3anFOaTNZUTZnQ1FrTFdZQWZRQno1U2pTK1VHbytQ?=
 =?utf-8?B?ejBuaE9nWjlHV2xJaitETEdQa0hBT0o5ZGlURDRabVN2WVdMbW5yV2tsMFUy?=
 =?utf-8?B?Y3BvbU5yQmNXMnpDbHUxYnA4QllteTVQOG03dW8wcXR0WVlMVTE1N1dkN3Vr?=
 =?utf-8?B?cWlYcUZQcGh0UHNGczF0RVcybWg1Tis3Y1I5K2RRa3I4ck5kUXJZVnpjUktS?=
 =?utf-8?B?K3ZMTTBvdnh4WVlSTlBKRm1UbDhOMy9qRkFFa1hiUFZndm1wK3JOKzJCbStU?=
 =?utf-8?B?T29qWVhtbFpkdzYrQkNiQ3NwanFuUjhkVmdHL1BjalUrZlVXSk9RbnF4YVVE?=
 =?utf-8?B?dk1jalZwbmorRUE4ZGxnSWZadjlsMlpicC82VHRRQ0Jab3FZelNTNG9mdjVa?=
 =?utf-8?B?QkIrdlM5OFljQmd3ME1TK2cwenpxYUU4SHloNW1vUDc1dFdqeHdLVkZrVkpi?=
 =?utf-8?B?ZER0M2RHSlU3QzJyTW1qaUVpdTJ5SjlGcmJLME11Y2NJdkVTVXZ0Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e8e8a078-9104-4d73-47f4-08de80ed7498
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Mar 2026 10:44:08.6626
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: JfAo5RM1mmInd401JM8NLq05nx2pqDENBmY4jakZ6kf6ciSKz+RV9yKsFxpSugAII3JyyhJdTaZAiUQrs74vbDJLgeLQn1KBsG86+8NZdfA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5372

On 13/03/2026 8:33 am, Jiri Slaby wrote:
> On 12. 03. 26, 18:38, Jason Andryuk wrote:
>> --- a/include/xen/interface/io/console.h
>> +++ b/include/xen/interface/io/console.h
>> @@ -19,6 +19,19 @@ struct xencons_interface {
>>       char out[2048];
>>       XENCONS_RING_IDX in_cons, in_prod;
>>       XENCONS_RING_IDX out_cons, out_prod;
>> +/*
>> + * Flag values signaling from backend to frontend whether the
>> console is
>> + * connected.  i.e. Whether it will be serviced and emptied.
>> + *
>> + * The flag starts as disconnected.
>> + */
>> +#define XENCONSOLE_DISCONNECTED 1
>> +/*
>> + * The flag is set to connected when the backend connects and the
>> console
>> + * will be serviced.
>> + */
>> +#define XENCONSOLE_CONNECTED    0
>
> This all should be an enum. And you can document it using kernel-doc
> properly then.
>
>> +    uint8_t connection;
>
> And type check as well.

This is a non-Linux header file being re-sync'd with it's original source.

It describes an ABI between VMs, where things like enum are forbidden.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Mar 13 10:50:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 10:50:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253520.1549721 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w105g-0006NB-TE; Fri, 13 Mar 2026 10:50:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253520.1549721; Fri, 13 Mar 2026 10:50:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w105g-0006N4-Pd; Fri, 13 Mar 2026 10:50:00 +0000
Received: by outflank-mailman (input) for mailman id 1253520;
 Fri, 13 Mar 2026 10:49:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RFGv=BN=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1w105e-0006Mw-RL
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 10:49:58 +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 60422c07-1eca-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 11:49:57 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4853f2826f7so19617025e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 03:49:57 -0700 (PDT)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48541b7f255sm306357955e9.12.2026.03.13.03.49.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Mar 2026 03:49:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 60422c07-1eca-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1773398997; x=1774003797; 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=cCc6Rsu6njgY2i55JlN7uSjh8xb1A//upegbhHr/ukE=;
        b=nfPQYh3wQq/FCQ2gJ3ufnV940l5eBNezWNlPRQ5Et1Lhw+8lkaPp17ljjG4+uOuQy4
         4jMCt57/SiTlFQyVVrVR/FopPAvNoCIUm4QJiuqPKY+D4+43oZNEH0KxUeAmgSAeF1qg
         cXWsaXPNIIYNo54KW9lcZaT+xIYdyx8pGIlAs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773398997; x=1774003797;
        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=cCc6Rsu6njgY2i55JlN7uSjh8xb1A//upegbhHr/ukE=;
        b=RFJFcTQ2VpDnak8nfVQkXJ7wmIdtQJxnUXvgXRaVCpJ0KbrGGw+xiy+VbE+G6Kr7GE
         8BCAXrHz1TfybmxPtAvqWgubfMbOTnE5OHIFp3wWT67x8q05C8bLE1rYUjkQ7dhB1ELT
         BiLebrSc1o2UxK+lVnvjyJlg3oiZG0d9AMScuyftodMTmkZSXuKaaxSGkQ0YmFjFyW8d
         rpXQTAhqsU17v169n241ksnlRTl7+RTpzbWdF613C/o5IvMDvZNdGfjI+UKiZ1kZRMP8
         l0YP96gaZAjKxieizrgk2CE13JKa0dET1zjVoSjqkGHFcJj7atlGh0AOvZZWovdwPDfW
         YMcA==
X-Gm-Message-State: AOJu0Yz6Lm9z+HsEk5eyGcsRpaWN0qBu7+WGdVWnYyBAdXSdCL1ImV2u
	Hzlc3VTDQUX+vDdWkhmwyPpiHfnI57zq3aB0u6diHx5bWPij+S1SamrlDNd710lVjKeNF5Ebk9y
	99kYG
X-Gm-Gg: ATEYQzwAY7EFKn15ffqpr+Ga/HXpzxfreRyRMWf+eYUV1xai07ZthVoMOJzf7FqvvBF
	leASEd7LCjOQxyg4900ixGdSOnP1Md7rVeb1EJMcouKPfyB3Y9tDh5HQ5EvqK8UekwejnZRARPT
	lFxRCk4xv/Rea6AjyGEz5d37pVaGfwWz40AWdEInVAR9UfEmSaQXtAfFGMjh488A2hljPd20r2p
	ztvWy5RMmrNOWT8Ho1DfSZibs9jGm4QlTNKaukglrb1/eJqxJIEskEl76ZGs0cl4zFvoDgZq6lG
	SG+1E+uz1uL1BhEA601buKOmJFhwMdsjVHyxEdIultkx4g3nt7aUUt8Yr7MwHvdQApJAdck8lR1
	q8pkCP7/P1b+8IpE04AnOkynoxGoqQPC4WyVPM3gnj4IMjQFpMJC+rXSsF74mSY+iZu7YBIU+KZ
	kMJPnB73lW/R9RGwno756dMccAs1U42wB0RNRjjIl23debQFRfrKwVCNo6OGDJKKZd3Si2M9c=
X-Received: by 2002:a05:600c:45d5:b0:485:4535:73d with SMTP id 5b1f17b1804b1-485566cfb8amr43531425e9.2.1773398996418;
        Fri, 13 Mar 2026 03:49:56 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] x86/mce: Fix buggy error path in cpu_bank_alloc() leading to UAF
Date: Fri, 13 Mar 2026 10:49:54 +0000
Message-Id: <20260313104954.590855-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

When cleaning up from a mcabanks_alloc() failure, the memory is freed but
stale pointers are left in the percpu variables.

Use cpu_bank_free() which is idempotent and behaves correctly.

Fixes: 2e6c8f182c9c ("x86: distinguish CPU offlining from CPU removal")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

2e6c8f182c9c updated the success path but missed the associated error path.

Prior to that, the paths were at least consistent since their introduction in
commit 78c579426fb5 ("x86/MCE: Implement clearbank callback for AMD").
---
 xen/arch/x86/cpu/mcheck/mce.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
index 9a91807cfb33..684871b216a4 100644
--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -694,8 +694,7 @@ static int cpu_bank_alloc(unsigned int cpu)
 
     if ( !poll || !clr )
     {
-        mcabanks_free(poll);
-        mcabanks_free(clr);
+        cpu_bank_free(cpu);
         return -ENOMEM;
     }
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 11:27:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 11:27:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253551.1549729 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w10g4-0003J5-IR; Fri, 13 Mar 2026 11:27:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253551.1549729; Fri, 13 Mar 2026 11:27:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w10g4-0003Iy-Fl; Fri, 13 Mar 2026 11:27:36 +0000
Received: by outflank-mailman (input) for mailman id 1253551;
 Fri, 13 Mar 2026 11:27: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=SvP/=BN=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1w10g3-0003Is-G3
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 11:27: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 a0089034-1ecf-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 12:27:33 +0100 (CET)
Received: from DS7P220CA0042.NAMP220.PROD.OUTLOOK.COM (2603:10b6:8:223::35) by
 LVUPR12MB999162.namprd12.prod.outlook.com (2603:10b6:408:3a2::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.4; Fri, 13 Mar
 2026 11:27:27 +0000
Received: from DS1PEPF00017093.namprd03.prod.outlook.com
 (2603:10b6:8:223:cafe::34) by DS7P220CA0042.outlook.office365.com
 (2603:10b6:8:223::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.16 via Frontend Transport; Fri,
 13 Mar 2026 11:27:27 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS1PEPF00017093.mail.protection.outlook.com (10.167.17.136) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9700.17 via Frontend Transport; Fri, 13 Mar 2026 11:27: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; Fri, 13 Mar
 2026 06:27:25 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a0089034-1ecf-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ISx8sNcd4K1X5/YRgiDM9Gl0no0EYtAViZxW08zqm8/8LDHfLuLiGsVTaKCh6S0azxCw72fR5DxFlI0XZ3f3c0LwCuCpdFv4hdZHxAnBs38Z1MZ43G9Fh9cRBpygUtM28EXqzir7mXfy3qdb6+nhPoNzlie8fdvxDk3TSVmPvsQboEpbwiWIg8U6IBBy5laweZvP4rCv3PmfY6jmkzGNy9GZX3aOHTfZM2QJh7d4O31hDdSO7ytDQAQu/mFndDUqIgk7MPW2xGvqyGNe2SrhLSTdAwCW2YBzymrimXOcNQexDcLYWzM2cjwngtbuhwAarHVhjLWPAvxTLwVSkr/ZNg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=k7jeo7FjACy6+3xAmpUGqOgAc/b1qt2HxxFvx8aSx5U=;
 b=JiOC/ddw7NhZuelGqlUb5FGR19+I+UFEjK/GJYvpDwOF1cVR2WVTeGA/cRZVal6vrKza/L44KvZx8u2FCu+WGe6UxgeQsMBW+Kp1ppSXj8HQV4Vb8yyFW4IzcGnjQYlj1UfPZE5I8YwYMpvt0xGmwUG8iYQmFYb+0O7cDePV0ak8TVURUHe9YgU57WpJm2D5JRXqrl1nv7VdIkyMkN87wZztS4FlpMYUBDvnyPkhWKuoCpGVTCAm0nlGVriwi3+w1ZGZRruCUCGqE7rWguUN44VMyBwOaHJsD/O9cXI17IhjcIvzpMY1A+1nDOJOSAjCq4VWaaNyTVRAHDUWsdH11g==
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=k7jeo7FjACy6+3xAmpUGqOgAc/b1qt2HxxFvx8aSx5U=;
 b=UdsHncO7Wl68t/E7SKdRJ1Y+sHB3uLGyAMgr7V5IFTpoq80jIDBRfRgZdA0lol4UeKgTkJOOjukYAwqO7hcKHz5PoZMcoLl1oAWpa8oMQW8sLmM5o/zvLyCZhkBLxq2UKAauEc+lCJJmphTBq1DD6Z/TyWokWYs50oBzkmwXSJE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Fri, 13 Mar 2026 12:27:24 +0100
Message-ID: <DH1M9WRZYYCB.2345TIX8OTAGA@amd.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>, Community Manager
	<community.manager@xenproject.org>, Jan Beulich <jbeulich@suse.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>
Subject: Re: [PATCH v5 1/5] x86: Reject CPU policies with vendors other than
 the host's
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: <20260312112116.22563-1-alejandro.garciavallejo@amd.com>
 <20260312112116.22563-2-alejandro.garciavallejo@amd.com>
 <92d21438-9573-45ce-a589-d292d1c31ecf@citrix.com>
In-Reply-To: <92d21438-9573-45ce-a589-d292d1c31ecf@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: DS1PEPF00017093:EE_|LVUPR12MB999162:EE_
X-MS-Office365-Filtering-Correlation-Id: 267a16f5-90d9-4f0b-8761-08de80f381a9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700016|82310400026|1800799024|18002099003|56012099003|22082099003|13003099007;
X-Microsoft-Antispam-Message-Info:
	6H6s2igukdcMz6ZCgjBWAaYg70Stwt6I3Dva6Ci+m11j7Wbs8FYJdnL0fR33babJqWoHINpzqFNh1YtLZon98SNymQsmnJgLn7ud+/p8KBpAfVpzi5V7fCVx0Y0nN4vKhE4ZBRSwmDicY3+wsasswJcfaZJdljrvC/C7wKKHNlBtTuV89clcHP8JhBGWLTXWIEENKDktcNhmxuPcyPaS6OH9s2q98GmVC+rgUFR5Hi9a3cc+jFG3+pOBTwG+SNXks7unFD6Rjp7wTFOy5r5KD7FDg3cjWnXodQR5VO4+9L7rgdGysuxUUXgH+tqkEDF0J0FdsNtpEUSNZmRjtglYUqR18p7rVagqo4LgNLq+iETvxZxrxcPLaWNbAxVeptLPdfA8JvsZtmRccendq53IVkTaW4gFhKDClQ+2YTRh3W7iojFqB7P086gIk8BQGIlNqMu8dUL0fktD0Hn47GLtzLZ0D3kZ2AE21t5W2lGaa6tZqNmA8VtNkUg+R5Ly5LGYTP0nBZCJWiE5JAXPD6SLqlE0tz0iFwtp3q6idQ5bL2Qe7AeAQQGkQitBQ8tVYnuk0WSHYfxfc/4k1I152G6YTZkPwYAjdiY/3lxDdNLQDztURrxWVfHut38ZDqlddO/kPPRzuulu9gzmby+d9gigNZY6h7S/DPmHHFo/Jf7YgI8HfH+4+hlV1gOVM6PyCCKqWrj66gjUQV6Ay21NOjCD2uDmJo1wLhNG+Yf1CoUp58U=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700016)(82310400026)(1800799024)(18002099003)(56012099003)(22082099003)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	o66xJ+OU4X+dgN2mDM8J+R7/zHut4ZeucmbVqep6i7gVlX0yRTCODD6ilPPQRZPIsozVN4nozCwydvxDqoK9weXqIbs5oni/KWKBnn0W5WJJa5TrxmOCbfcNkGtWt6PCYwzuz4Nf/Hhp/Fl8jwtYESprWfQpHDoB6xXOZd00h9OzhZ9KZyyl6LauMIIZqtyd13f7ekB5soCc8J9awldHktc3i+KmSTG3k2tZIqRi5WZrwTAWUWSCSyVfHKxwVwCWdic7jSBZZXcIbziZVB54506pf0de2UW3H+kW555rYCj+rwtUeI8q+1YnEgdcv/1Ie3V7Ue4XMkGdhRH4XldWbiEZKchaKzI5qP9hxWfqWQ7moN9/WMFoYhZVfnM9b08LcVlhMLG/l8U/iP1GWFP9wUbZX0Wj/IzFDSuJnRMqOPeZOxgQAhCTzVIIzCrp4BUa
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Mar 2026 11:27:27.3169
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 267a16f5-90d9-4f0b-8761-08de80f381a9
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS1PEPF00017093.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LVUPR12MB999162

On Thu Mar 12, 2026 at 10:01 PM CET, Andrew Cooper wrote:
> On 12/03/2026 11:21 am, Alejandro Vallejo wrote:
>> While in principle it's possible to have a vendor virtualising another,
>> this is fairly tricky in practice and comes with the world's supply of
>> security issues.
>>
>> Reject any CPU policy with vendors not matching the host's.
>>
>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>> ---
>>  CHANGELOG.md                             |  5 +++++
>>  tools/tests/cpu-policy/test-cpu-policy.c | 27 ++++++++++++++++++++++++
>>  xen/arch/x86/lib/cpu-policy/policy.c     |  5 ++++-
>>  3 files changed, 36 insertions(+), 1 deletion(-)
>>
>> diff --git a/CHANGELOG.md b/CHANGELOG.md
>> index c191e504aba..90ba5da69e4 100644
>> --- a/CHANGELOG.md
>> +++ b/CHANGELOG.md
>> @@ -23,6 +23,11 @@ The format is based on [Keep a Changelog](https://kee=
pachangelog.com/en/1.0.0/)
>>     - Xenoprofile support.  Oprofile themselves removed support for Xen =
in 2014
>>       prior to the version 1.0 release, and there has been no developmen=
t since
>>       before then in Xen.
>> +   - Domains can no longer run on a system with CPUs of a vendor differ=
ent from
>> +     the one they were initially launched on. This affects live migrati=
ons and
>> +     save/restore workflows across mixed-vendor hosts. Cross-vendor emu=
lation
>> +     has always been unreliable, but since 2017 with the advent of spec=
ulation
>> +     security it became unsustainably so.
>
> c/s 0f1cb96e9785294f149ab3c7feb90c0eb9daeede was when it got added to Xen=
.
>
> I'm certain there's a whitepaper somewhere from AMD about this, but I
> can't locate it.=C2=A0 It was partly marketing about how you could buy AM=
D
> hardware (which was cheaper) and live-migrate your Intel VMs without
> interruption.=C2=A0 It would have been nice to find for posterity.
>
> For the changelog, can I suggest this:
>
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index c191e504aba9..377711d40953 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -23,6 +23,12 @@ The format is based on [Keep a Changelog](https://keep=
achangelog.com/en/1.0.0/)
> =C2=A0 =C2=A0 - Xenoprofile support.=C2=A0 Oprofile themselves removed su=
pport for Xen in 2014
> =C2=A0 =C2=A0 =C2=A0 prior to the version 1.0 release, and there has been=
 no development since
> =C2=A0 =C2=A0 =C2=A0 before then in Xen.
> +=C2=A0 =C2=A0- Cross-vendor support; guests can now only be configured a=
s the same
> +=C2=A0 =C2=A0 =C2=A0vendor as the host CPU.=C2=A0 When added back in 200=
9, with enough trickery
> +=C2=A0 =C2=A0 =C2=A0Intel and AMD CPUs could be made to be compatible en=
ough to live migrate
> +=C2=A0 =C2=A0 =C2=A0a guest, but the vendors have been diverging since t=
hen in ways that Xen
> +=C2=A0 =C2=A0 =C2=A0cannot compensate for, and the advent of speculative=
 security issues has
> +=C2=A0 =C2=A0 =C2=A0put to rest any possibility of this being a viable o=
ption.
> =C2=A0
> =C2=A0 - Removed xenpm tool on non-x86 platforms as it doesn't actually p=
rovide
> =C2=A0 =C2=A0 anything useful outside of x86.
>
>
> which is closer to the style of the surrounding bullet points.=C2=A0 Also
> s/domain/guest/ which is a subtle but important distinction made by the
> Security Team when discussing configurations.

Sure on both accounts. I don't mind the contents so long as there is any.

Should I consider these on the "doable on commit" camp? Or do you want a v6=
?

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Mar 13 11:44:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 11:44:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253572.1549747 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w10wM-0006DJ-4V; Fri, 13 Mar 2026 11:44:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253572.1549747; Fri, 13 Mar 2026 11:44:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w10wM-0006DC-1x; Fri, 13 Mar 2026 11:44:26 +0000
Received: by outflank-mailman (input) for mailman id 1253572;
 Fri, 13 Mar 2026 11:44:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Q06f=BN=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1w10wK-0005zu-OF
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 11:44:24 +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 fb21e65d-1ed1-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 12:44:23 +0100 (CET)
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by DU5PR03MB10219.eurprd03.prod.outlook.com (2603:10a6:10:51b::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.16; Fri, 13 Mar
 2026 11:44:17 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%5]) with mapi id 15.20.9700.010; Fri, 13 Mar 2026
 11: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: fb21e65d-1ed1-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ne+5rdChiqpoBE41dI6xMEUACodZ0jf9kMigVwMJISg40RT818AqFJkbuC1Nke99OGf+88hS/2DY9tg/nX87TAk1h4z1AeRllb3ZJj48MYH4YcoeJBJInaSqorVOLMNEuZpd1t/pNkSvIpgsB4IFQqJ3zMX1YvXwSOOr/Q2jQoctlbvEHnulJalnNlvXmi6fPgHUjgh327690Efld0ubnFtcq6kEXiJJvWAbuNontROOhiqVYV6uEQzy3ZsKgimE+6MgPfhqHHn+jIkPkhoo4p/uqB7cx44D1AW4puApmnejSEXepXBzbBb+aKgMFwMyZ2DC4LmqNlR8BcFdLDd+oA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ImfwjO5yizsGwgyTir/GZv6N41PvSfvoDoYndUw3Pi8=;
 b=t5+PKFxABdcLP37OqQ7q5gzxC+tBGBTqFuh8LrCsCWQSA4xeLgqzLGp4Ul0xTt+HbLhEF7/OxY0M16pRUGLqfu4sV7jj54wbXwY4kti3WfosQeUaHoGoIQyvEN8oh9FzoT6gFPT18y7TihW/iCrZFQ1A8NwdqNqqOwMYiwQt2zVnoOZtbGOdGWjkOuPE3vt4h9aMTBCe4sIe/+s0hguZOSh9D6NH4hg/QsyjdgVS3XUBDMP/3eAjHgNKjaANFaWB5nCzndJH3aOQAkgukyOvT0l/Tm0SdzpnEV4v6rT+pZFNJW03xukkOcD6Vxk1X2eb1/vRPf01iCGjIW5XtmAxtA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ImfwjO5yizsGwgyTir/GZv6N41PvSfvoDoYndUw3Pi8=;
 b=NEs/9J12UrYYgCZFSXLOTZz3/aWoyrcepHk49enN4qPKjJjfxGegRYdpiU2Z0PUbrMG0A0nc4oVZbjF3RoJsFtV0SGWoGlfY5OnK67/Gk/LmUU7b8WRrjL/kJNkpUZ7aimO4f0/gOV2j7/kttogUqrkFnHo3Cac2iXdSXswJciJ8z5dRGj1VCiFOTUqnhsM+5tAmQnh3UPCl1Wcvwa3dJ8lDAAWo9O/K3nOkL70BjJH/RH8UXppsAfYRwKVDw3bjCWu3L87FI4ereHzvN6EFznoQXj2OePtvXVL67io4XHC5TUwMcCPEJpWfaZwH35vsn7Yfl3d6VpfNO7QD7UeeRQ==
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>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH 0/2] Address violations of MISRA C Rule 20.7
Thread-Topic: [PATCH 0/2] Address violations of MISRA C Rule 20.7
Thread-Index: AQHcst645g7QlNxsOkmEje6S743Qyw==
Date: Fri, 13 Mar 2026 11:44:15 +0000
Message-ID: <cover.1773399567.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_|DU5PR03MB10219:EE_
x-ms-office365-filtering-correlation-id: 99ea81c6-7164-4a92-6e2c-08de80f5dab4
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|42112799006|376014|366016|38070700021|18002099003|56012099003;
x-microsoft-antispam-message-info:
 6b8U4gVNHAXF72zhLZUa+IKvzxczJBdmN0X1vEWqNhl8nhOVW65Wdnqh6auxYehsmhmV8JP9YyhuVaZWvqmXl7+hYW5UvTIHh0ZsEXoeC3Pcx14VqRrq7qH07GA8Ji948muYUO98iL/XpyEaSwhTkkIJmq7mfeDdHwAbqlJUY+hBU/IUn3NsYJn8qPWzk093fqmo3TBouqTZBIywmrQ07v+ZLyGAYYOzc+c5wBO0s5RCTHYkm5ozOW5GhHAuGK/Mi/RXUO12OqNWEG9inEi4xePklDHeyYck2+JTxP/exsRVi2IvuroNH+QzyUIAsy1rzZeQHyg+uwY3FjrrU0aP+nlzj/n/FsG2aexuVH+1VshFeGTidpKBapqSaISfnfPvYSrH4AICZG9+0jL8M28xbUQsQfUEBZEKv+Zgyk4mFd0M9jtK3apzwYzC8O8hRltfPucg4T+k2PfGgrO/zKDYQ7bOnaSL4nN9HWA/xgZde5j0QajHSACQKJaF9OI41RCmPuyd8Y+PVQURL5ZF5WXD+JypMlzwap7zBJpuqKsjqUYwRNIe4S76OKIpOAcVCvcgG/xc6Ty8aVGkyhrR9iZwcvgwTMhUBdJCLtUZukKjBIsa00/+IqifjZxX6WBhHA2+B6IZ44kvSk5JLajoaby0RA60O5uWQtvT1E9pZEJn8X0Tezu6L6ocP8kKvAfPE6MOOUsncujVUpUqnl8X/AaRYRQGtHiYxjScoNUxJIIIYg/AfP6OQZ9W5Rgtp8OOygwBmmiVXpln2YFNUhydPnsJY/2UC8bf7J2FfOjlsfsVfFQ=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(42112799006)(376014)(366016)(38070700021)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?JhfTbasKz1Z2nYg3Y5KgvtJZPJEJzQJuxh2932neJ8V4usUtqQFTWJzad+?=
 =?iso-8859-1?Q?J/V5sS80/Z6Z3RtNZgtHO50+IQ2HMKqx174dPjxlW5C7iZR+f13Y5gEo1h?=
 =?iso-8859-1?Q?IuhmdasuWjrFAl3cUeaHx7DccvmzcqxbhvQOzuwVbkSexP/abwLbg9g6hd?=
 =?iso-8859-1?Q?K8Wqs1VMENgWu78EUoUqSL3Ko1diEYL8EDXUW5c4cVUHsBLU+l/7KDa8w6?=
 =?iso-8859-1?Q?ncPjDvcnd4AI5Zgb+f1hhEtV6rKWb+aBz199hmfJ63RWwQuABoM5ddntka?=
 =?iso-8859-1?Q?WwLn4ZAL49FHwDAm2kkn0RdBVMSXD+LQRiFzQZgpgNmdrP4IOGV3VhcQlQ?=
 =?iso-8859-1?Q?7vlLOeZtOxFe8Rf+1thDK7RE1y1KXWz/2IR++ZJpOx7Y/7Uq1+dqW1A7Wc?=
 =?iso-8859-1?Q?F7761CTVwLvqpol2vvxhM4Tt1giRr5H81gGe89Bnsw+b5OCPrljL8Qswkk?=
 =?iso-8859-1?Q?crkuMG8ak1/9VzNN0EExA+EJCj5ZK7uxVnQfzpVRu+qvHkNMqtcxbwEtjS?=
 =?iso-8859-1?Q?P/FIOvsf6TX6zVmc14wi9IzIoxLBGiW0Q+B0GySBWppaJGl2dOL/Usspn1?=
 =?iso-8859-1?Q?sdHr+yCnDaYHJDeDEyZRSQiH4xNG2RHTX6SbyQ7DelC6v2G75s8usGY5Eb?=
 =?iso-8859-1?Q?bvNxwSR410pnY9Y9SDOxlTQdnXht+gOQXJ9+MieI4eCJE5plcWRfk4bvLR?=
 =?iso-8859-1?Q?SDfZYqvw7/I8NDI1WnNzYF6AwR4DXT1DQRnD5eGa0LHfDlPDGsmmDWjDI6?=
 =?iso-8859-1?Q?fc36rW84XIyZ8Z7UbV4UkAzDVbgCLXQh0K9uGRrxyrY45RqahOtAc+CG8w?=
 =?iso-8859-1?Q?DzoQaDqLPqNraZtyuqh0FZw0WZE7Y0NCjr69LEsqDjZvzv6z4FVNBciqVS?=
 =?iso-8859-1?Q?B7NSBhRJEtDhO50hHZPD25O5oOflel0A5OEAbhESPsn2dpxxEbzUq9f+sn?=
 =?iso-8859-1?Q?OeK0z4gOBJRvL40CcGKLW5fjCaX9gc+taY9T0l2LG7BlaDB/rfcTezqJJA?=
 =?iso-8859-1?Q?5zVkCvXN8vMy8RgBJ8lqBkd9MCuBnt+9c0Hk9fHGiVSRPgp8rKixga84g9?=
 =?iso-8859-1?Q?Wk+sJFzdiEyHzcvsdQlFYBK3CqSt23ZN40h1XFZIAMq4TWljdJrJRCEcJ0?=
 =?iso-8859-1?Q?KBd01ZDmR2fcwhr3rzyf6qyAtgSSwD030KBtzUrKt81FLtkf3A4kk5I5ti?=
 =?iso-8859-1?Q?BmqborMZS4OBXWcwGV5w5Sqs3Im5PoOef6QscPqs7sFoY1oAnVG4ko+eeh?=
 =?iso-8859-1?Q?+Z5sz2P04AayqWPOJIxbUQShLDem0q2AkwSrf8kV6bnzymiYqqLxaaS0wk?=
 =?iso-8859-1?Q?qhsND+ZScL9qulSuXvoRuFjgO2kYEStzBVj2FyaMbGhASaOQu4i1Dccv+/?=
 =?iso-8859-1?Q?TI7RyCGTTWLGZhhGYUYDRcL6Y1ofpRbODlGQgBLjHnvXuYRlydbLVdFwwY?=
 =?iso-8859-1?Q?kW6unWS3Qvg33a/+rM4POb6+MEqJq4ATneSL0V1yviFa9TubhEkvSDVfNF?=
 =?iso-8859-1?Q?0z6P1OgIdVFk2nTMpcJ7NvC5LC1r6Yz/ssnQjGeCS43g5uPbjCTEWjpqiS?=
 =?iso-8859-1?Q?vvQNe3QW+S2gZ62yt9leWKpmek6MQDHSKr9Rb3SnKKfALVPPi47VPbi1IU?=
 =?iso-8859-1?Q?K/HIxJeZ4YwFPTQmtrpORl3NV8bjYh7DfhKJ8rW7gnKr+q2GurgOFnft5+?=
 =?iso-8859-1?Q?LgWZ/zTXpCMcAOPqTwORATjo1fwWgrIa5EJq0n0yGyDCaVMZSJ9RjOBT0r?=
 =?iso-8859-1?Q?/u2CQbrpAZW8H4bPpKnz/WpKbfp7zlAGV7jvQdYEgxrrGm734Q0sliLRBf?=
 =?iso-8859-1?Q?SMnzBzrlQQlZITRaN7V9AT3fFJU02jk=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: 99ea81c6-7164-4a92-6e2c-08de80f5dab4
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Mar 2026 11:44:15.7429
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: xxzu0Hn1D/8dR7FyFt8mza05jzm4DPBqxc5jnXunSG3osGz+gZXIH7E/7xg/lZByUxr2hgxxUtb/1Mo1Y6mt4xpJrVWonINoYkYnJ7mQg9w=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR03MB10219

This series fixes some MISRA C Rule 20.7.

Test CI pipeline:
https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/2383264392

Dmytro Prokopchuk (2):
  arm/pci: address violations of MISRA C Rule 20.7
  livepatch: address violations of MISRA C Rule 20.7

 xen/arch/arm/pci/pci-access.c |  6 +++---
 xen/common/livepatch.c        | 18 +++++++++---------
 2 files changed, 12 insertions(+), 12 deletions(-)

--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Fri Mar 13 11:44:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 11:44:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253571.1549739 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w10wK-00060G-Ut; Fri, 13 Mar 2026 11:44:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253571.1549739; Fri, 13 Mar 2026 11:44:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w10wK-000609-RL; Fri, 13 Mar 2026 11:44:24 +0000
Received: by outflank-mailman (input) for mailman id 1253571;
 Fri, 13 Mar 2026 11:44:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Q06f=BN=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1w10wK-0005zu-4E
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 11:44:24 +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 f997c11c-1ed1-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 12:44:22 +0100 (CET)
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by DU5PR03MB10219.eurprd03.prod.outlook.com (2603:10a6:10:51b::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.16; Fri, 13 Mar
 2026 11:44:17 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%5]) with mapi id 15.20.9700.010; Fri, 13 Mar 2026
 11:44: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: f997c11c-1ed1-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ArIJI9AR0YpY+YcJY+h/pI0RZvU8qv3/9/neYoTfl2ENb+7V9TDlZplhFKx3p7u8991VqCRqcccv9q0zKu0GasIfOiYAdR82qZaZIPm2plrFxoAo8lG3gYr7fnkXK34yqcFxJjfdMLtaKQVzHCoSQCtJ+ve315wgf80N0P5skvy9+HDhRHt8Lc3whOVK49G+wfn6xnkC0YrGAvamn0qAzitzL3NHSSa8CClNIhB09HSbDV2XWpvbIoeTQeR8uORuBNUZOsAIgFV4qb3/bMXcliRB3DQXvfLUnOogeeM3z8SdiY9FfgJnfzL1NxBUU0m0UuyRN2o6jlmQJ40vebwDQg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qrKVILKrNRmJjdA+LChhKJaM/U+KPX5v9tqb88jBfxw=;
 b=sgO1JI0U9mgT9sAJ66et/CujC3gVVvkh23Bd7jm96yGkavo9z7+L0z/j3J7aTW3M9l6cPbm5NDkPnDzz16Q4kGwfLPcFkIFSXJ4yT5lTXgTcCR3bNAUWtiG1TiyFuhjbeWeQya8UT4TZkd/MhFVTcD8B4AxNQ0Fs+Ft2WW9Dq/pr2kCQo6PZXjDmSAou/9P0q3tLpyABaoQEpphceR5syZqKQkQr2nJta6BLpq5wFrLrg8ixN8wW+vGooIgWOYhEBT/MoE4uCg2MqDaRDfPMWmAJTrzvLzdk8Ej4jZiHgi97zFTxFCPm1YkFBQqlEUko5knOdd85RI/GwyLZNEAGuQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qrKVILKrNRmJjdA+LChhKJaM/U+KPX5v9tqb88jBfxw=;
 b=QRRKCVkOQt7lcKu51eUASAy4H8pv98jzrfTNT7dmQ9mX/Wdg17/neRYYpCaKEQ09PCWrdsmKl5A9tH+AWGSgEMxtpF5GEPPeq9RVQirfHI8RYPYuN55xvS4qN9cdL4q6Y/O6wgoG6wzVDnsjal3geeKmiOG6QPy2z+zYefy8+FpU36WMne9XowXXUXk+Y719CUfhZCWI7BK5zSCkUaEvYiVlZegqPLhYQJN8dwJK72KKGrXwIbgUAPpNNFfdDec2vJimi5dnzTIEbKmtfFh7gz9DomKGzoMCflE6qRuay62xGEblR6HuxYjBORRFIgWFtKZHxe2g4dLYv3Is9h0xaQ==
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 1/2] arm/pci: address violations of MISRA C Rule 20.7
Thread-Topic: [PATCH 1/2] arm/pci: address violations of MISRA C Rule 20.7
Thread-Index: AQHcst65V5mePVDA4kuP+Yr3akM65g==
Date: Fri, 13 Mar 2026 11:44:17 +0000
Message-ID:
 <e2ff9382c0427114fb569fd07f8f44f76d8c5d74.1773399567.git.dmytro_prokopchuk1@epam.com>
References: <cover.1773399567.git.dmytro_prokopchuk1@epam.com>
In-Reply-To: <cover.1773399567.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_|DU5PR03MB10219:EE_
x-ms-office365-filtering-correlation-id: 16d13566-c7dd-479b-7499-08de80f5dbe3
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|42112799006|376014|366016|38070700021|18002099003|56012099003|22082099003;
x-microsoft-antispam-message-info:
 bZabSIOfRcc2Mhu3XR60msO+xh+0tyJAZ5hEXzoFt1ney3XOtcaU4NGTy4qKyJ92y/RJan8vP6LQ8e7C5x+f89BV2KT6n9FtpunURQB6YoGoolCnsqUqbWMu+3UouQalC1TtTPBYkypNk30EwX2L3VuIr99WR9/VK91yh8vU47gaarbVuRLIJhHyQ+wd+przk9HpT/p5xU7CJE+CGS4ZQjcEqEbfGO5qAoFpFO3MwrRpntlrG2DL1cFbHBn4ejjaLlIfkxG9yMgUBuEGWi/scje7I0YUFsNXWvmJIFF8a4T8EwB8VQCr4kvilSTEVsdRaUyeCSSJEEf63c9Fgbd53MCFxwlFyQB6PPfGzx1gZoGhaSbLFcqnXlwJbFIPOo6xkkzN3YIF09HqpbYlc0X8246RD9JX/m0asydeqriySCGaX7AvHQA1vtQ+ErHWKWpKVAMuP0grX98+mYabtHeDgu/VaqIuSaOX4p2VfqcL0pWyl7yUlJV3OvIy8U7kSsrxsbbcW2iVWYtrbuI9/moHNzXMD1hQoIRWHMRjdRXlfV/LwLDl5djg9jSVSPRQGue8RKaOSawYLM5+vSQ/pUlgONo2cj9CENS5mOCV45si+VXXfvVYfj8axUJXFGiSziHlPcyIjg7JswVWvAoAp7eVEMXpRx4CfgpQyHzBy0+RkRx5GSsR1WIVKqGdG20WMtec3kuMMu9+UzRDm2vU51KbhtwYPnhqrKlHsK0fyTf24R+SqqrvcDkSROUmWWkw5aFNI0GneEVCGGQ+LJW4xVk4JushQzCtVl9Olq2VgrgDVOk=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(42112799006)(376014)(366016)(38070700021)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?6pw0ocfNqg+ZUngde7xrxqhvO/Byj5W+EjXZYYKi/f3mwaOr5qsiLcKGQf?=
 =?iso-8859-1?Q?BPjJCuYWRwCF2v//dxursoAI88eh2ZDsqP9QuHrwcQCaqzHMhxyQXN3I89?=
 =?iso-8859-1?Q?aVuOVwqb7O+pNNpUJJho+Qcwp+ZCLiN2n0LXXdTTbkgIC3OTutEazfkABK?=
 =?iso-8859-1?Q?ZqLsD3GhcS2mB4MnsKYlujgKRmP355ogw8jtQ9EwbE2qGwykdAv7i6kc3v?=
 =?iso-8859-1?Q?g2E6M89vn4CY6peQodQFOOZCXMe7Anju6nxnMT8Se7x+1kdvXt0fIH3QI9?=
 =?iso-8859-1?Q?BKTgS/PMNX2rvsHYVzXb5+UpYRPOZ5m6ikMWhXoK3EKA5UbtgUEhtiDVVK?=
 =?iso-8859-1?Q?ovdIz+Xa/eBgXAR7IMNlFo2UqQSdf9HUVrYa4338LP0Pnq89APeVoZUXeZ?=
 =?iso-8859-1?Q?qGtEz3eIS0kv7iG0rJ7jIn3FNiAtqi62OmG47/9Es3B2Q5IRIw7MQwCIJg?=
 =?iso-8859-1?Q?VlplcNc8msR5CVfr2PWnVHduq4b7OaPkCoty/PVW448OWtpixwPPK8EKaC?=
 =?iso-8859-1?Q?xl54a6s4NRLOKIBa+GiqlURxBGNh4RDIV76NNvC+M5RhciqYHmYwtHaF7q?=
 =?iso-8859-1?Q?8BgfcXbgGnHWH08OFjJObU3RsaTkJfK3AsYsJ0z3ENGMEvicnClagnwVee?=
 =?iso-8859-1?Q?N/77+7Vf+wVn9KqzXjUDHwUW80x1tLpmF33fU383mh0lwiL0ihS2SawX0f?=
 =?iso-8859-1?Q?GQkRN2Wd71SGt/JsM9XFKIZxSY5eXB/fjEkIYlAfXV61UG4pFBc4Km6mjm?=
 =?iso-8859-1?Q?P/hT5DHigGGc+MsehZmaRGzTrY6W/Nsiy+sFFAwevYZ33drCbb6bOJ+qBd?=
 =?iso-8859-1?Q?B5B7CKffvq0QGe9fEgVAnzerS8CDZ8Sg/ylUG1A+J7HFjn5IrQBC6w1yvQ?=
 =?iso-8859-1?Q?fkI1/wuwBIEqsCD8QxalGA0OF9kip0vHmWCJEV6dumsPYzYGOmTOLe0ymz?=
 =?iso-8859-1?Q?UB8DgcCljcIfhYG0BX0bfxcvneCsM2fjAFE8FM/VRW1QQO3vHPWkzZvKyw?=
 =?iso-8859-1?Q?7G2exNA47EtN+xPuODBUxIZQ9v4c/wP+WXYXZcyNUQtf6nkl0Z5aGJCelp?=
 =?iso-8859-1?Q?9tMAtK0vWfdqRmSNl8KmWKAz9jGnTHKyg2uEpeS9aw8bz0L5TJcmo5kKHk?=
 =?iso-8859-1?Q?qi8P0T4yB4Pyn0Cdg0/VHD+ETnxHeTHrGTzprds4XiaCzMU7t9V8XInrT3?=
 =?iso-8859-1?Q?4qKf/aH6MISNsTPl2l0i/vJQqqFt/WhWCKfNIvvBqheDAaNGS4DUvVTkHk?=
 =?iso-8859-1?Q?XjXJv40AIKh4srh3e14058HpSdl4HyTyCDP+3nrhKjucWYp+t8spHAslaI?=
 =?iso-8859-1?Q?jkYp+VQg6qZMnvz9wHOoojHxE284CHkURGm+7i/kPk2nYIHTqXQaN09DBm?=
 =?iso-8859-1?Q?NyGq2FOkYf7GNhNA4F0lw1vJIu86dAN68oLSK6+66Du+Xf+VsJD97MbKl9?=
 =?iso-8859-1?Q?kVB9ZYM/9iV4bR2BAnac6RL71O5OmsjD4Cl6kQtM19QVKZedDp6ivYCt0k?=
 =?iso-8859-1?Q?Mee6WQ7RdNIJrVxbNLwG9Nqz0dOG0Qyg2GMmqRF0cvOuzkh22hA5MtrelT?=
 =?iso-8859-1?Q?+nA+5AZ/6PaAUlqXrNkCwF5G+HCzgSPJfUFSlSqT5XIBcPn+/uCK4pMmaf?=
 =?iso-8859-1?Q?U3ikNdtMK4EmZncsKp2f5EkwGewRlrqXDY85aztCvpmgNufr89ZI5tyBje?=
 =?iso-8859-1?Q?cZt6nlh9XlhtCZ7GrSUHO9DIbds2oUcNgNX9OcPM6FfwyuVaNT/eDt3CvD?=
 =?iso-8859-1?Q?A/JYSE0nUyTjRrDqmjVzZZMWDnWeds1RFTX2Bz5pYwwWrp88N3zgxsPxo4?=
 =?iso-8859-1?Q?55i2ono+KwQm+2acGDYUHGoFx7F0Jp4=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: 16d13566-c7dd-479b-7499-08de80f5dbe3
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Mar 2026 11:44:17.2987
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: JePiNyvFOSYqgUGg2yW//K3900VjqjJtmJHtgaD1lFYic/PYDuc2L+zOr4OmmxCjMus6QAzvH2lKLc1mcwRFeWZLMXM9s4ZqieQ9ZGQw6Uk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR03MB10219

MISRA C Rule 20.7 states: "Expressions resulting from the expansion
of macro parameters shall be enclosed in parentheses".

In macros PCI_ERR_VALUE(), PCI_OP_WRITE() and PCI_OP_READ() add the
parentheses around the macro's parameter to prevent against unintended
expansions.

No functional changes.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
 xen/arch/arm/pci/pci-access.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/pci/pci-access.c b/xen/arch/arm/pci/pci-access.c
index 2b23d552bb..7074fd9c09 100644
--- a/xen/arch/arm/pci/pci-access.c
+++ b/xen/arch/arm/pci/pci-access.c
@@ -16,7 +16,7 @@
 #include <asm/io.h>
=20
 #define INVALID_VALUE (~0U)
-#define PCI_ERR_VALUE(len) GENMASK(0, len * 8)
+#define PCI_ERR_VALUE(len) GENMASK(0, (len) * 8)
=20
 static const struct pci_ops *get_ops(struct pci_host_bridge *bridge,
                                      pci_sbdf_t sbdf)
@@ -139,14 +139,14 @@ static void pci_config_write(pci_sbdf_t sbdf, unsigne=
d int reg,
     void pci_conf_write##size(pci_sbdf_t sbdf,              \
                               unsigned int reg, type data)  \
 {                                                           \
-    pci_config_write(sbdf, reg, size / 8, data);            \
+    pci_config_write(sbdf, reg, (size) / 8, data);            \
 }
=20
 #define PCI_OP_READ(size, type)                             \
     type pci_conf_read##size(pci_sbdf_t sbdf,               \
                               unsigned int reg)             \
 {                                                           \
-    return pci_config_read(sbdf, reg, size / 8);            \
+    return pci_config_read(sbdf, reg, (size) / 8);            \
 }
=20
 PCI_OP_READ(8, uint8_t)
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Fri Mar 13 11:44:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 11:44:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253573.1549756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w10wN-0006Ry-Hd; Fri, 13 Mar 2026 11:44:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253573.1549756; Fri, 13 Mar 2026 11:44: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 1w10wN-0006Rr-Dq; Fri, 13 Mar 2026 11:44:27 +0000
Received: by outflank-mailman (input) for mailman id 1253573;
 Fri, 13 Mar 2026 11:44:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Q06f=BN=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1w10wL-0005zu-OI
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 11:44:25 +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 fb5d0844-1ed1-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 12:44:24 +0100 (CET)
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by DU5PR03MB10219.eurprd03.prod.outlook.com (2603:10a6:10:51b::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.16; Fri, 13 Mar
 2026 11:44:18 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%5]) with mapi id 15.20.9700.010; Fri, 13 Mar 2026
 11:44: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: fb5d0844-1ed1-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VAxu/PAhwEzb+JP05VQXQ4Fia53vo+yOhdNsbUZqGcfmUXzFoRcODGKgiNczNQFv9Y7AeL2ubyjwiw8u2+QQqjmIUhW4PsBUFcXuEff3oJDnE6Eq+QAm3MECEB5cpafGMDYDFN08BcRkUK9ZcerS0wKTU5kocEuFFFp39Q+cfYeOkvPyRKYG5SJ9m+yth2fhA4YC5kMXzSC5jDzpzPTQ4x7Hw4ad/EwPI59xWvUKWLD60zfdwacXs7OpNSRptaxY6WdkbpIoJRPUY4Vw3RRr2sspc98qvse0mg9vCtI18uDpnM98Cr/QSRF4ZkIk8kgdW9DW8cXOMdM+xjyPVKz4wg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vshbixKweyTpuWP1WiS0HOtqU2yyfMLBFnxs6AU9Xi0=;
 b=k+RuaBpKs7Zks5F0VCQgM0zibZ6wUZh5tWhLMk5tC9YYfyP2c4Lqm0eh6/WtE2Hinlg8dcE7QuqfuAFLU56FvHTbwDKaMUa8u/wW/GCHZ2cUp91yjSTGEWE0P6p1Q0myMUOVE+mJFGKsC+XlhEcSBM13wOv97xh3qZXQnfxpS+sgzCQOKQUcLNviuAV/c1kV9KYh54FKYUtBo8hbj3/tZairyRVUoOBKfoA4JTSpnHAd4VLggui4q8PvtpXd+L5jOnpEWJqbAGDbTrFqW527kvN3JyT2GJt4EBPbuJ8V2ohdhpylbmQ1A3+jmVXKWHz0GzpkqPGaHW2H32hIBKcc4g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vshbixKweyTpuWP1WiS0HOtqU2yyfMLBFnxs6AU9Xi0=;
 b=Yxfa5nOuOOlZvadBuRfgHxSU3fR+m17m1QGeUL7LoQno9/d4XErFYolL4rkie0ceZ05ij52048TZGqsBtSJl8nDa9PBsNT3JhtB2kIp42IwOVyxEe+5QattTJE+p/Y7YH/kY+mgDcDvVscXW/ekSfnORDLBwUdmqh6j9opnHaf92Nv5FHbZ7+hM2YEHssaeKTS7O5cOyT2YdRx82mRKe2IvdYsF7ByTreEY1XWDEHOC9va6oqUyflUHFjn6rYuPIrLAVgVD7ovVSiL+Rhwt/PCRAX13yo3USNPFTqMnHq0AuHY0j7PENB7bYls7M6G8M19k3Z5BF87jzHyy+EaY0Yw==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Ross Lagerwall
	<ross.lagerwall@citrix.com>
Subject: [PATCH 2/2] livepatch: address violations of MISRA C Rule 20.7
Thread-Topic: [PATCH 2/2] livepatch: address violations of MISRA C Rule 20.7
Thread-Index: AQHcst66E5OKF88ZqUOMQkXYvVhPMw==
Date: Fri, 13 Mar 2026 11:44:18 +0000
Message-ID:
 <a495a577f68e23dcbbc92cc4d0ace8b9fb46e711.1773399567.git.dmytro_prokopchuk1@epam.com>
References: <cover.1773399567.git.dmytro_prokopchuk1@epam.com>
In-Reply-To: <cover.1773399567.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_|DU5PR03MB10219:EE_
x-ms-office365-filtering-correlation-id: e3ff2352-74d5-48b6-b83d-08de80f5dc8c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|42112799006|376014|366016|38070700021|18002099003|56012099003|22082099003;
x-microsoft-antispam-message-info:
 m0YyqNAanap/PorJinnPSn9KuQlIRIphFEt6Ib6cYVDkZoHFsY3lyl+zpUoT5pY9e+TddfzIwzH6vPL0gqeumEyq9skmuxqlXSYBr1yprILG8x6JMvGlQgWBR3hzZBKtPud4CKxBkGQVhw6YSxT0yor6toTOhTPy6TeGfHAn85NdiB7vD/qDOxYDaTDoGl1z9hrkOj/3Hkcgt+OgbbWkGrF+qZud6TNAPKrf31ZodcRha/Gt3F0aDNV+jpcWxnhAfzhQwM51/Xw4QsjalEWGdgIv+bsn83oeJ+iEvC9tbny6+VKYVLPcmiMYcCbysEl21f4kdCZsUdGtIEZ43Ww34qOS06q7PB6saPQAUOqrVp11uq+DerjVEWb32G2AXEH9zvyr0eN20lfxOWF7fSmUXgMdo4zBPag5/ObYLkfSOAWSYT4jl0xPwV2um0G1EHPEppzDeypZaNAslBdPxqYnaS/el6PTW26jqDYt2kjHQ5u/4SteY7LOB5K0SUTIZLBAuJPx79a3fT9lh6uWxMlEGUHu0mgxsd2fWvsSB/Zlp86sSjcNjj98FuVG3qi1ixXxAG2TyY3hbNX32qyivdyUbaeAHCBRH3I1SyPgP05KzL8Sb50Vqa3d5o+CuN6hyWbpccpcLZbcyySZ9C0kNvzPIhVz/oYC+Y1QikPiAEmnV7POFthuVRTgVu9lkPhOvuI3cIFfM5vRifJ6QymtX7eZ6kV5G9o3AieYHyLp8uOaBL+vPNWEoQTw8E019RX7By+m3XXxGcUwymxxpP6psrejyPsJ65DOgLVb/2sDv5LZ7x4=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(42112799006)(376014)(366016)(38070700021)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?pem9iAB0cjOQ0vWJgznuoB/Ef/ibHqyJRKKl90gmad4FLYTCMnqMAdr2XN?=
 =?iso-8859-1?Q?lwS8EbWqZPtT3oCD1fCCkaAedfGDBmUQiUHCaROjXvtWX5u6CFPUW/hNg6?=
 =?iso-8859-1?Q?9ZgM6wWFwRceAq8j5bdH77WBG1BzfW3EVJsBOJt+xtAzH6TmEFWeRbor1z?=
 =?iso-8859-1?Q?oMeFt57vAEX27tSk5TeQ8SeQZMJ1J4wuuC6qB9hVt2O9U9264AlbQBplXo?=
 =?iso-8859-1?Q?jbvJY4CdsSd7gfiDP/CB82gd2RRBH3cLnW30eJr0Zi9/3xk4lnwvxf8h3C?=
 =?iso-8859-1?Q?6ehMOZdgLM9FoVmdJ/MFaGlMeSnABaptfWZcQBDSTrAWxFMTRKwuDclbUm?=
 =?iso-8859-1?Q?2Dh7k3A+GKONviFMpLA3L92JTOMr2I16XV1lDAgVXH0/LAqRJqh2fS3wTP?=
 =?iso-8859-1?Q?RNB15X4eyDOYFJkPjCsQyQvoinb+2C7z8qAMa8Q8t6Z5IH+kzCwQnt6zFc?=
 =?iso-8859-1?Q?6zkZOTK9xg7tbD6fh8h2NkZypMEWxEuk0XzT1hnD92FqjkFiSeMuNcslJy?=
 =?iso-8859-1?Q?MO5tnFShQ+t7T3FT6Mju4YqNf8BVIw+eDZDgdi9B3MKTMU7ViouLUiTPb6?=
 =?iso-8859-1?Q?OlAZS6ptXTg2E7lZSxk7o8ed/Kkt97O9E21SLQErLN2wwTO518C/6Ju3a9?=
 =?iso-8859-1?Q?ehvgVOMZt1kEpu4cfHcRhYkzp/NfBsbw1TJ1vZkOOGnrHnveG35xuBSHSE?=
 =?iso-8859-1?Q?/0s9J5Vh8GXALk1hbmDDMzysp8I+AZzHJFWL1DMo9hrf9O4S6aIEOQdoLI?=
 =?iso-8859-1?Q?me2uf3Vqbje81ATuSQ/vfnGad+r+5f6oIm0Y8rfENOB6qb8N/w5Vg7TUxR?=
 =?iso-8859-1?Q?BX/eF4cG8MnTZygqoJ4XQIBI5QbR33k6m/7letmsX6R4+TexleiMZlfX9u?=
 =?iso-8859-1?Q?X6RAHgGe3iD6dfcBG3+rdvrAnwotAEdH+5tDlFfYZxXMiJe7mnt02hQW+a?=
 =?iso-8859-1?Q?UCB0SlMiYiBOhLURJvJ7kkSC6VotISooqR1novPouMaOqjYRZIA/c60fAa?=
 =?iso-8859-1?Q?e3fsNJv/USOOvK4aJzrXahF7b5hzcCYpWDIoLO5+0GO1VVAGN5cr+XKUOg?=
 =?iso-8859-1?Q?rC8bqFE5287KrFg6cit0sG0XEqqlcel8PP3RpCUn5+pmfx0wzd+Yg9yaPl?=
 =?iso-8859-1?Q?S5rCp1eHA966ciLAw4KoE6roz8009xd+T5EBXeA3w1a+h+1P0215LuiLso?=
 =?iso-8859-1?Q?tKEP26OKjaaXnOQC3Mc1oBjWLL1aG3DGE8UMiNNP+ciJ3b4B8a3R8jhwTz?=
 =?iso-8859-1?Q?c7RNAGKBQm6irb8E4TIxQ4y2jTsnNPOc2VIhtlupxLsyPTL1L5GgRZmaD8?=
 =?iso-8859-1?Q?oQrSJjKm4CrsEVzWN4LtjjOc0/ghjJraTbefLxWMO1BoK7yNVcdk5CyLO7?=
 =?iso-8859-1?Q?jjaql++JF4moALhb3R+kaEXaEBpWpUbHdlVIE+x+iFoM8FtvzpV4h4j4Va?=
 =?iso-8859-1?Q?+8oVN326piw9BnjZjfUT7pH84eick8bSk2WZwJUbuKp83CkRB1ndOYQX93?=
 =?iso-8859-1?Q?B/d+qWmaKGTIXSJUX+ZR4jv3btXlYRN0Lts4dXc+KXi+WjBWuSlOGpyfoX?=
 =?iso-8859-1?Q?uAzHZW4kCqSpqMOPbV/tMgRFO8euhzR2qweDM9qXHOhNhD5hPAWUKgXNMo?=
 =?iso-8859-1?Q?he6B647cPUsCOss3CaTsZzGNeRI7JDX92ApxzKW8Hwx4DJDa5fz5iHN5CR?=
 =?iso-8859-1?Q?ZozPn89zdJG2ubi7b4sRsXfqu+SzTPBLHqYQpQaFOSby3gHGkxWuWn/XSv?=
 =?iso-8859-1?Q?vAt5ZbvII2MA7nkexgDJDhb45OHV3Ax0gwBhBDXXx65jbO05ETmGVVi7kN?=
 =?iso-8859-1?Q?yGxrr474JZg1OQwftHyK+Iv1dibZK7E=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: e3ff2352-74d5-48b6-b83d-08de80f5dc8c
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Mar 2026 11:44:18.8159
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: O+xOVGB1UVuycixMFBG5ulky8pxeWavKNASiBSLjJOrkPoftUvuVf8XB7s4SP2lFyUWmxkXN6HVakLclRm5OcjVGeuInSiKRajdVcaPB/Ko=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR03MB10219

MISRA C Rule 20.7 states: "Expressions resulting from the expansion
of macro parameters shall be enclosed in parentheses".

In macros LIVEPATCH_ASSIGN_SINGLE_HOOK() and LIVEPATCH_ASSIGN_MULTI_HOOK()
add parentheses around the macro's parameter 'hook' to prevent against
unintended expansions.

No functional changes.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
 xen/common/livepatch.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c
index 7446533c8c..a9986c2aa8 100644
--- a/xen/common/livepatch.c
+++ b/xen/common/livepatch.c
@@ -660,13 +660,13 @@ static inline int livepatch_check_expectations(const =
struct payload *payload)
  * Perform section pointer and size validation: single hook sections must =
contain a
  * single pointer only.
  */
-#define LIVEPATCH_ASSIGN_SINGLE_HOOK(elf, hook, section_name) do {        =
                \
-    const struct livepatch_elf_sec *__sec =3D livepatch_elf_sec_by_name(el=
f, section_name); \
-    if ( !__sec )                                                         =
                \
-        break;                                                            =
                \
-    if ( !section_ok(elf, __sec, sizeof(*hook)) || __sec->sec->sh_size !=
=3D sizeof(*hook) ) \
-        return -EINVAL;                                                   =
                \
-    hook =3D __sec->addr;                                                 =
                  \
+#define LIVEPATCH_ASSIGN_SINGLE_HOOK(elf, hook, section_name) do {        =
                    \
+    const struct livepatch_elf_sec *__sec =3D livepatch_elf_sec_by_name(el=
f, section_name);     \
+    if ( !__sec )                                                         =
                    \
+        break;                                                            =
                    \
+    if ( !section_ok(elf, __sec, sizeof(*(hook))) || __sec->sec->sh_size !=
=3D sizeof(*(hook)) ) \
+        return -EINVAL;                                                   =
                    \
+    hook =3D __sec->addr;                                                 =
                      \
 } while (0)
=20
 /*
@@ -678,10 +678,10 @@ static inline int livepatch_check_expectations(const =
struct payload *payload)
     const struct livepatch_elf_sec *__sec =3D livepatch_elf_sec_by_name(el=
f, section_name); \
     if ( !__sec )                                                         =
                \
         break;                                                            =
                \
-    if ( !section_ok(elf, __sec, sizeof(*hook)) )                         =
                \
+    if ( !section_ok(elf, __sec, sizeof(*(hook))) )                       =
                \
         return -EINVAL;                                                   =
                \
     hook =3D __sec->addr;                                                 =
                  \
-    nhooks =3D __sec->sec->sh_size / sizeof(*hook);                       =
                  \
+    nhooks =3D __sec->sec->sh_size / sizeof(*(hook));                     =
                  \
 } while (0)
=20
 static int prepare_payload(struct payload *payload,
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Fri Mar 13 12:19:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 12:19:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253631.1549766 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w11Tq-00039l-73; Fri, 13 Mar 2026 12:19:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253631.1549766; Fri, 13 Mar 2026 12:19:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w11Tq-00039d-3O; Fri, 13 Mar 2026 12:19:02 +0000
Received: by outflank-mailman (input) for mailman id 1253631;
 Fri, 13 Mar 2026 12:19:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uwFZ=BN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w11Tp-00039W-4l
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 12:19:01 +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 cfedd9a2-1ed6-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 13:18:58 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-439c9bdc1eeso2072727f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 05:18:58 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439fe23afc5sm19128232f8f.39.2026.03.13.05.18.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 13 Mar 2026 05:18: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: cfedd9a2-1ed6-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773404338; x=1774009138; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=52jXBomZWL3JEa/wyjMyxyAZPY7yH4Sam9twuFIZvpI=;
        b=ca8GnyF6Rp1DK0R8kzQXipyQzuR2tRyY+NvXzsW1AfNv4jC3teSQRddKfVMFKnYd39
         bDZAG/gnpHzUPk5+kJBxVws/Pksp+tcoNW6WxrGgTaMYfZCK8aDPXxQzFxVC/fqVk8Ne
         KOFbr+7zEhdtWkh5DEu1ZqaiWvHudxnFySsPOUwRajWIzI+9RIhGR/eZ33eF+jNxqCK0
         VMbC8/WmXXSHEkeWRcmDlXwOD0gAHzqeepLwN155w05SYywWajrSX6nJPjWxIMu7cX+t
         xvk4x4i4c1L26nFdltKKuIL+qmcUEuL4iEEkjHgRG0WCqIg6q4kqapF2etU0mr5YE6+J
         o3Mg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773404338; x=1774009138;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=52jXBomZWL3JEa/wyjMyxyAZPY7yH4Sam9twuFIZvpI=;
        b=jKrbPELe+cMmr7k0b5uezAur50kISg8mUmd3uGk9ooYLAPOXOmgEs+YkLF+aZK+Nky
         wXHOKhEoELbAmAi1lzekm9Ck8DUADWUQltCCz+RGtsrs/SOS4OX4Q7d1DFno4piCMETN
         JckvsdRCOg5gt8LAdzh2/wL2bEzC6z3AVQ2LlVE3je7R2ZjsFZarf02H8brOCaBtaZtq
         n8Lphyv7fruJmt9YsRxU1tCZfFwsOuGaE1b3chVUkKlw2w3fbPDaa7i5tQbltaK8MRbo
         QtCJzm/LmpEv/bBTYKz4iGAp2xEpxo1alH1HpdEKwyK3KUUK9kGqSzW3iARWUkUV+pdg
         /f8A==
X-Forwarded-Encrypted: i=1; AJvYcCVy08sVs/rrmmCsBdiGQKLgHgxq2p7+qKrTTFVxwiyvK4iJ2zG8iRoSRmR0FyT+BQezcEzg5g7zzRk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwZwuCUsMNswJFnjQj4CfT4PkiqpZRYN0e3N56loJmM41A8UyE5
	jJkgHsXq5/Obu8Jyswqo0PNuwoY2QYv9v87pVILOiEIEafwMd8mMxgshvtD/6CHdVQ==
X-Gm-Gg: ATEYQzyC+fwlqIFYqjjgoI48BoSEeoMHNcHSPLGEIBGnjN77g2LyPV0iIeQHoWo/hxI
	Gf6qFegKFz8z2oqfv9BM+A4jk/b8hfu2FuhrXedpY4Vx7juF1BoGSkQc7YE6NO8KCC+H7K3VNpX
	BRenvOOv5LIWGbiPdC8Lsy5ScIQ8xxno8w0qaUXLlUivKp7pKkuq6y1VJBPIjCBcrzUwUuccHbV
	fTCz61YlKg39uqDWioaRgvSIG+WITMSJga0qA8vZLanI2i9CYBdWcRQOnW9RG/7C9DstTIvy85G
	i6OfIiPld3wo79XnaoVSqYKOfHDuHiM9Zzg+vwDk5CHtbAdnf39S7AhhC7GJtqZNKk1UFCEi7gW
	HwY9U1MpkMzvZYd2MRg9KdLsaId6KRtu2S8yc52ZYsBKf7usrb+PwYG3mtV4rGayZA8IUT5HkqA
	N66cMhBaIkJyOmOcjotMTuGiWt+5QymTkD/esqT52T2gdm+q8fkM0E80LrWr344v1L6D0r4pP9D
	1nkp3X6R8cHLWc=
X-Received: by 2002:a05:6000:2511:b0:439:d74f:da94 with SMTP id ffacd0b85a97d-43a04d78fc2mr6154010f8f.5.1773404338006;
        Fri, 13 Mar 2026 05:18:58 -0700 (PDT)
Message-ID: <812694e4-e1bd-42d3-aae5-5bcbaee85678@suse.com>
Date: Fri, 13 Mar 2026 13:18:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] arm/pci: address violations of MISRA C Rule 20.7
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1773399567.git.dmytro_prokopchuk1@epam.com>
 <e2ff9382c0427114fb569fd07f8f44f76d8c5d74.1773399567.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: <e2ff9382c0427114fb569fd07f8f44f76d8c5d74.1773399567.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.03.2026 12:44, Dmytro Prokopchuk1 wrote:
> @@ -139,14 +139,14 @@ static void pci_config_write(pci_sbdf_t sbdf, unsigned int reg,
>      void pci_conf_write##size(pci_sbdf_t sbdf,              \
>                                unsigned int reg, type data)  \
>  {                                                           \
> -    pci_config_write(sbdf, reg, size / 8, data);            \
> +    pci_config_write(sbdf, reg, (size) / 8, data);            \
>  }
>  
>  #define PCI_OP_READ(size, type)                             \
>      type pci_conf_read##size(pci_sbdf_t sbdf,               \
>                                unsigned int reg)             \
>  {                                                           \
> -    return pci_config_read(sbdf, reg, size / 8);            \
> +    return pci_config_read(sbdf, reg, (size) / 8);            \
>  }

I guess the trailing backslashes would better stay aligned? (Can likely be
addressed while committing.)

Jan


From xen-devel-bounces@lists.xenproject.org Fri Mar 13 12:21:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 12:21:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253638.1549775 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w11WR-0004du-Ir; Fri, 13 Mar 2026 12:21:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253638.1549775; Fri, 13 Mar 2026 12:21:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w11WR-0004dn-Fj; Fri, 13 Mar 2026 12:21:43 +0000
Received: by outflank-mailman (input) for mailman id 1253638;
 Fri, 13 Mar 2026 12:21: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=N2jY=BN=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w11WQ-0004dZ-6E
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 12:21:42 +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 2f5675ef-1ed7-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 13:21:39 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA0PR03MB5530.namprd03.prod.outlook.com (2603:10b6:806:b0::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Fri, 13 Mar
 2026 12:21:36 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9700.017; Fri, 13 Mar 2026
 12:21: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: 2f5675ef-1ed7-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=THaHTbPQnVM8ZAiTSEUwbBrhi93tnM0lZX+pkyD6keDehngevAEMjjZDyL3Y0zm+BFmy7wZIQEnJqOaocBOTRpIwo5f7Vg2ViX57dZzO/u+keXF0AGrViKdWdn2UEFeaphMdQDgWpgFZkAmQYKvQlREu9qnxs8UblsuQYutoSvWcUAZz+auhaX/R0raGeRFdZpn0Ql6CkOpIxsdqGnjuwC2QwpRmawtCg6dhG0VL5fvS3cNH24bLhCKjxdccQYHLNM1caB1e51lFFd4hoi+RX6hc+Axo2Wjr7xys/FcJA7jbvHYLzM7LQitVgT0MqW6P9jFEDxaom2JGVvr17owZpQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fplFEIvjjDKQQLDpehSWu+MTWPuXT2/3nbAlnqn4e2I=;
 b=PJnK/AXXPaH4h1V1df8sIVV+veknbAps3tQ2wbUdQtj4HAeUkjlYkkERVVhP2J2ly1kdV9KxhpZHCPOpaaPVHqJyWaD3pklCnCyqEeEq3JLpmSY4c77PCnHoTJ+tG1Qv/HD5F60eAHjBEDusp9wta86JaIFO/HpaHORyDlgW1ZQHFAdqByZkRy7AZdzlidHnE5jThB0taI9e78qOnthyEewNZD0HNYhUDDaLs57agNreR/VtNdbmO0UOK6geJKq50PO43tgaSTJuDuOYVsy7D90TjFAaMuqhQ9mOji6TH6l3RhYHfQcn5CBeNn+QxzeJltBZucdho2b04c9jo/8vng==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fplFEIvjjDKQQLDpehSWu+MTWPuXT2/3nbAlnqn4e2I=;
 b=VAjh7pab2SVZZQJHuGY1fRNCIgvu9pYSNfu6Vr/m362gxv/BGkMbDaoQtS/8Drw0b5laAoISjmYc79XcEyUM14APQpOMwpE+W05tIZDyE3LjOZ0oi2nkF5a33JWNOTs2HtvpiS4L6vGC8y1mJmP17U6aohDwxz//MkkMRx6SpNk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <f1b8985c-cb61-47a1-9ecf-28c7cbb9cf63@citrix.com>
Date: Fri, 13 Mar 2026 12:21:32 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: Re: [PATCH 0/2] Address violations of MISRA C Rule 20.7
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1773399567.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <cover.1773399567.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: PR1P264CA0045.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:2cb::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_|SA0PR03MB5530:EE_
X-MS-Office365-Filtering-Correlation-Id: 02b01b4b-cb48-4251-6a56-08de80fb1092
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	lTdjj46xZLl8LgIMYM2dwqJLSazNihH6aYlO11vggu6HrX7qQ30E2mvJnrw+C+a3blzYcU5BHnsXEIF1vAh0LwkthOL03XimnvDnk3PkiXK2aYrBhgaaYAmoTtSwNF5KjuKly6g8YCl3VHEKocLq9u828/OXGIY/XLTpqvUwyPjXigdzb07LLmW+kLQkceogXnGu55GPdhut/ZWkT/dD9SIkhtCLflYxJ8CfFVo4UvWtuRSKqppKOKA4UvklLmaCQy94Y4eBHwGBjwy6pBKxUVEug02mRvie0cW7+cc36Pyk+xGKN2X3lnxYM39t94crRQ8cV00gf3nDyWhuPSYfVOoktLFUHMePfuC4V2fUWZhC8jPOzseAvvgOOlV4wtGAssNRkpYjwrikCuPyepkbQOqC9HDrKG4k5MUl729qDX1u8s3iwKio6f9Jt2Ubx/+tpGr5O3swh/QvUFxIXXDgRl5QzVLcP+Oloik/cmNj0pvuuIZy2vCKaZMmSvaqIOxsFfncraRrNogGCE/G7w+rn14xts4oMrr/0oetBQMBjbAnpU1h0xXVkZSIEYq0tlBpdiWUs4KEQCRwMcFi3oeYU50jp2AeJDgD8V2oy7qKLagoXRa3haPB9XlsQtA2zRIlmeaMCt5L+/+SOvjYT6XzP5o2YpfWQm/CQZb3L7S6DfTeOWkfGjuKR9OQLgVeIDIXijvN1u7BzgcHFzglWIRE6l5vzU5fWbhEbe8LuL6snuw=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?KzMrZ0dUbTc1TzRqc2UwYy85UUVpRWx3MVMzQVUvQnQ1bGV3MjNYSWMrRzI5?=
 =?utf-8?B?VGZoV1VvK0hZNUhRM0NzRjQvTXZ4K1graHlVKzNzVnhyb2ZZTE9MNzh3cjRY?=
 =?utf-8?B?MS84c0xFelJTaHJ6Z2JFdDJob1ZNZFBKY3cxNm5pNGNSTFkrMklGYjBDcXYz?=
 =?utf-8?B?aTVtY0FBVSt0bURXcVpOdFZtTU11aHNEMGszbEpVWmxWb09vdW5lRXZkZnQw?=
 =?utf-8?B?MktZanVsYzQyd1FnMWpPU3JIZkl1TGJ6T2RpdkVCUXdHUE1Nb2pvSDJRcTBF?=
 =?utf-8?B?U0NxUVF5SStmMmVheXMvSE5WM09CSHJDdG8wdlZGclB5RXVsZTJndG5DKzlu?=
 =?utf-8?B?aVdHSi9laEJyaUJkSnFpYTF6bEhMZUFHMVRJL2J1UGFmMVRzZnZPR3hTV3Zn?=
 =?utf-8?B?OW9zTFRqVDBsc3o1ZW90YktCMnRuejZoYnNmSTI3cU94ei9EWEg1Zys3RGYw?=
 =?utf-8?B?ejIyNzVUNVY4aWV1eWw5cGNJVWxqTWsvYy9GSU5paTFBNG9vaHM4L3BOT1pC?=
 =?utf-8?B?ck4rUnJLWlkzZTBENjJmcUgzMVVNUmV0SnJMUkRvV1ltd2dlVzRVUEsvTWtH?=
 =?utf-8?B?Vkc1dFM0WHV4bnN4ZUYzVkJ5VjgvRmlRRHZIdVJTS2QxK082ZEswb3d6SVhC?=
 =?utf-8?B?WW9zNVNJSjczWXp6NUhBTThibENoZEN6K0VWWEF6cU81K0RHOElCMC92Y3pN?=
 =?utf-8?B?VGQ3a0hjbVF0eHNGZ3VVSEVrckczZE0wSDhxOVBaT3NMem44RGhVSjkxRTlN?=
 =?utf-8?B?OVdVeXEyeW9CWTBxOTh5OHh3UVBocG5yUHJJbXJYN0lIRk05M3o2Y0h6RjVB?=
 =?utf-8?B?Y2NrM0RzdFdZek9od3ZTcUpqQnZFOG85SXhMUkY1OTFKRU9OdjJDYXNBa1Vr?=
 =?utf-8?B?eEFxVjhUaXRyUUdkMmlGa2hCZTdHQmhPSUlhSlZ2SzZ6a004QkQrZUxjQllN?=
 =?utf-8?B?Y0xMU21wTS9uVDZaRmNidlpWSGZSelNMWGJsN2FldEdIdll5WDZuWXlWMTl2?=
 =?utf-8?B?QnlwbkorLzRvd1U1TSt6VHZuaW11MVJHZk1TZWVub2JEZ3VyWmtUMXNyT3hH?=
 =?utf-8?B?VjgxR1pkU2grZzhWeXZhSlJuRGxsYm5GYmQ2Y013RnkweTZPYXRoVzVqeFZs?=
 =?utf-8?B?WGNwQUtocmliaXZFVDgvbWxTeXd2ODJOd2VuY2E4dVZ5VldyRTBQNzZUNHVr?=
 =?utf-8?B?MEJrSlcyUUNtUEtPV0Z3OTFEalNhcFlxMHdVaUpQckhCSXY5UXJvYVNOYlZw?=
 =?utf-8?B?RkZEbHNlRE1LOE92ODZUWVlWMklWZ04vWVhCMThPT2JLSE9CUW9mb3hrbEt2?=
 =?utf-8?B?ek0vUUR0NUZhb2tSY05ZdldCOXZpcW9hWDU4d1N0T0UweDlrcVdsNUJNL0RM?=
 =?utf-8?B?WWlHMksrS0ZtRENwTGwxVW5RU1FuTUNFdUZuYVVtVXdsaGtqSitkcGdjZ0lm?=
 =?utf-8?B?dXZwSncrZXI4ZCtTTE9za1pDNGlhWlJmM21KcmRENEh2VFo2RGIwS1ZUa3hp?=
 =?utf-8?B?VHV0WkdKUmJYbFAvYjMxYmoralhUelB4MzNWVmQ3Nk5yaUgrTTRDcTB1QXJZ?=
 =?utf-8?B?aGJrUnlEY0ZYbytOdjRoSHZTbEVGbXBYeFlVQVovNW10OVVVQ0pvZ1ZCblll?=
 =?utf-8?B?QTlKL3NoWTYyUWxCeWxBVXJuZVdRRXFkYUNVNU9nd2U3NlVGVFRsb0RyYXpw?=
 =?utf-8?B?UnN1RHM1b3RRaHJyUVhZWVhHb3NLZzI4WVRtT1M5KzhYbzhjQ2NKTVVESXVz?=
 =?utf-8?B?Z1I0djE1SE5EZ2o2Y1pKN24xN3UzOTdTYmFzaDdoWlZLLytnVDlnUVVmdmtj?=
 =?utf-8?B?UGw0Y3BjR3VJYnIzNHduc05ic1VFNmQ3cllZZnF0bVBGTnFYcndyZ01PanZJ?=
 =?utf-8?B?cU9vNHZtdVNrb3FXRy9CZHVZNWQyUFJuNTVJREFjVVNzZXRycHlsWEhPWW1C?=
 =?utf-8?B?N3FnM2tESTM0ZnJWTzdTNHNWUWtLb2pSYTlrZDgrb1BRODJrNEN0L0h4RDlR?=
 =?utf-8?B?Z09YeHdhN1VuSWpVMWVZTEhOZFdyUVlBKy9sNU83QjZSajgzZWxaVDBXWVND?=
 =?utf-8?B?RG1ENmVXUWNIdzgweG9vb0pRSWRtaGhBc2dCZFpDUE05TDRnbGxRV1p2Y3ln?=
 =?utf-8?B?YmtxSm1BV3lLeXQ1R09nWEdFbk5uazh6VCtRSEdqeVZ2RWhRM1JmU2RKL1ZV?=
 =?utf-8?B?TmJuNDZRMnZ3QnIyb2o4WnFhQVNZbVFzZlVlLzZMaFdNYktVQTdLSG93TXpi?=
 =?utf-8?B?d1B6anlUU2Q3aEQya3Mzam9aVHpjOEgxcFdaNW4vbXZ2MnhGUDVEV2h4UnUr?=
 =?utf-8?B?OWdFZ2lxdUJYZGR1T1NoKzZRbWZISnNVZ1dsUDl3REg2ckwwbTdKL1MzQ2pz?=
 =?utf-8?Q?OdbalNir92eIohnc=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 02b01b4b-cb48-4251-6a56-08de80fb1092
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Mar 2026 12:21:33.7226
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: kXneJKbEZ0SIaVyhKJz24teI155B6InI+AkfEmKryTWOreb9AADg6GJmzHAjozJQXfBfpkq7HD0AMD3etrWYD2Ki5QyGBS2zTwv7dplztc0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR03MB5530

On 13/03/2026 11:44 am, Dmytro Prokopchuk1 wrote:
> This series fixes some MISRA C Rule 20.7.
>
> Test CI pipeline:
> https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/2383264392
>
> Dmytro Prokopchuk (2):
>   arm/pci: address violations of MISRA C Rule 20.7
>   livepatch: address violations of MISRA C Rule 20.7

I already have patches pending for these and more.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Mar 13 12:32:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 12:32:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253653.1549784 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w11h1-0006Nb-GN; Fri, 13 Mar 2026 12:32:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253653.1549784; Fri, 13 Mar 2026 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 1w11h1-0006NU-Cx; Fri, 13 Mar 2026 12:32:39 +0000
Received: by outflank-mailman (input) for mailman id 1253653;
 Fri, 13 Mar 2026 12:32:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=uwFZ=BN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w11gz-0006Mn-Q4
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 12:32:37 +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 b774216f-1ed8-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 13:32:36 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4852b81c73aso18628625e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 05:32:36 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4854e2537c3sm201893065e9.15.2026.03.13.05.32.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 13 Mar 2026 05:32:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b774216f-1ed8-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773405156; x=1774009956; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ep6eypw7pkKRyXmq3ejZV2pA2P85QpEPtRG7N6TlKgo=;
        b=Hh5tNC+suz58uG9mN5DACy2rL2Ly7rdH3oGC8SCRcF3BuGDpWEpGK29tSMKyCwLNKj
         wWRCka03772f3pYUelX8vAR/lPSH9S1CxGBIcKln9e+Q2/YhjMhrfxIiJHC6uPz/cKid
         ssuq8gd0gjfPVl53zCbShXhfYs7TIQhQoi8/vbdiThQd4pAkLdI204RZBwEq17so11Fk
         J261gyWH3c/42DjbkGw5iT51RRN1JxCnGcVI0fMtsyzmcsO4zwllYj2GZEM98EJpGA1i
         KKOUHt5eySfVI10QmHtezXgCyONW2esG4r29uqDc+3GRzAQPT9rsI6YRTaF+31dMVX/p
         oB0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773405156; x=1774009956;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ep6eypw7pkKRyXmq3ejZV2pA2P85QpEPtRG7N6TlKgo=;
        b=dkcMayr0N1vx7Ral1O4thP/Lfo78dJyOq7nDZZbNLffn4LatrOsbIZMx4GoOyTbQNc
         sCVCKRk79ljroUtWOfE8JlyH6KWAcWgl2WQVCt1l76M+vRg4Ud8Lmx+Tbpks9PzX8oSV
         paCohJeREPAQ9BLrWW07G9FJ2md7Tfd0CYDaXjVgofCzN/CLfxRHUlP5jSn91nz3fSyT
         TDpKRt6nQH5EHos8RN4vKtPgr3FtzzZ0jhz1tTkCjERKRsAx/sIaKM7Q5Q4VF78UdpDm
         w7FEyW9nmbc9u8LjfmRlkdAjWNm5ZxFrWkfOUSpIzIp5OKDvQst4utSNR80w1/7J6P1k
         N/vQ==
X-Forwarded-Encrypted: i=1; AJvYcCU0s1SIVYf6fQX2X3cd3AqhWvU2stcQZCuxWWgQ5jFj09bmAh7V77CISuAfyRrcjCiYi/3nWYer4i4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzCZptgag2PNkOHx8EFkZIbvKXNsoZAB2Ixgsl4GaXlfHuDzOT9
	SLgI/8ur7AyV2s35Ol8eHJaBaMfLQofxtr4PAPUQJ2ZFiaS5wrQiUdDdTNIgRabYqg==
X-Gm-Gg: ATEYQzxaL/9a4n0ObWEKZnYmWRxCFvIWVxinmnOdOK2Bxaoi0lDn3bnE1bg/PTVoqqp
	AdeRz8OEDgg5WK2bVCdhhoH5seI52aAg/YhldOh4UZYcaRbHcEc+Wx5x5SD7zEgh7rqmzlYO606
	gNn4+3HajtvuOENm9w/g4iTlg5QXe77BCzK6A2ajSADVKMFNbzZW3Q2bsEFpisC10D4Lmmkiffa
	taA7/NJtrmp+0uLdpuWLH1FaUJ/SkwKL3BcrSttiRVr6ZQYi7dIbPijXhQWHRyLn2X795sOER12
	iSutVTDFLdtD/MK5/kq8NM7xeDZnGGRwwd5vweyPHxCUM4doIoYCQZe6MPYIy4LCvs0/gvThkkR
	TG3ax3i3Ck5K4LKePtPSfB5H1PzN2jdCu6l9n6q3XPsB+Wjg0Nx+kWYbH26J0sN2zrEDFtJCsEG
	dYgVWIAr69JUZ7WRj7oOxBinAWWuPeRwglSa02k7IOBTSOcXEMs8+g5DeV2rT/f+ANIeoo8S/Ld
	I3VhUvJVRlHkhmughzMYd/3xQ==
X-Received: by 2002:a05:600c:4583:b0:485:439b:683f with SMTP id 5b1f17b1804b1-48556700c23mr44227245e9.20.1773405156053;
        Fri, 13 Mar 2026 05:32:36 -0700 (PDT)
Message-ID: <81e3b3da-3958-4250-9d00-73df85c96442@suse.com>
Date: Fri, 13 Mar 2026 13:32:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/mce: Fix buggy error path in cpu_bank_alloc() leading
 to UAF
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: <20260313104954.590855-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: <20260313104954.590855-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.03.2026 11:49, Andrew Cooper wrote:
> When cleaning up from a mcabanks_alloc() failure, the memory is freed but
> stale pointers are left in the percpu variables.
> 
> Use cpu_bank_free() which is idempotent and behaves correctly.
> 
> Fixes: 2e6c8f182c9c ("x86: distinguish CPU offlining from CPU removal")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> 
> 2e6c8f182c9c updated the success path but missed the associated error path.

I don't think so, see below.

> Prior to that, the paths were at least consistent since their introduction in
> commit 78c579426fb5 ("x86/MCE: Implement clearbank callback for AMD").
> ---
>  xen/arch/x86/cpu/mcheck/mce.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
> index 9a91807cfb33..684871b216a4 100644
> --- a/xen/arch/x86/cpu/mcheck/mce.c
> +++ b/xen/arch/x86/cpu/mcheck/mce.c
> @@ -694,8 +694,7 @@ static int cpu_bank_alloc(unsigned int cpu)
>  
>      if ( !poll || !clr )
>      {
> -        mcabanks_free(poll);
> -        mcabanks_free(clr);
> +        cpu_bank_free(cpu);

But this way we'll leak the allocation that may have succeeded, as the per-CPU
data is updated only afterwards. Yet it's those per-CPU items which
cpu_bank_free() reads.

I don't think there's any bug to fix here: Neither of the two pointers is
allocated anywhere else, so the per-CPU slots are always both NULL or both
non-NULL.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Mar 13 13:13:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 13:13:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253692.1549793 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w12KP-0003OG-CQ; Fri, 13 Mar 2026 13:13:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253692.1549793; Fri, 13 Mar 2026 13: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 1w12KP-0003O9-99; Fri, 13 Mar 2026 13:13:21 +0000
Received: by outflank-mailman (input) for mailman id 1253692;
 Fri, 13 Mar 2026 13:13: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=Q06f=BN=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1w12KN-0003O3-BX
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 13:13:19 +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 66ccc023-1ede-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 14:13:18 +0100 (CET)
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by DBBPR03MB6988.eurprd03.prod.outlook.com (2603:10a6:10:1f5::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.12; Fri, 13 Mar
 2026 13:13:14 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%5]) with mapi id 15.20.9700.010; Fri, 13 Mar 2026
 13:13:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 66ccc023-1ede-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wohzpw2CR+bZn+3ZQiOzxtabIFLcNQ5K+M86pxMCKilFMom1WhqUCifjHSR4ivNkk3M6OVUXbCT3nfE4PGllbjaREsdQ/kCWI9r8djVLRs81oD4VYUDZlBX5oQ/A0fiTMnOaya6Lzy2RJkyPvrvpqy2eXIUVDpD3TraLi3NEYv/YuNMPugB2BBgQjjloSrQwCPH1aT0AapMYfFivtXfLr/7RL7Cvy+KY1Bcg0qLC69jXpce1oauj0OInQaFzEjhGwwEd4xeFUHdWrZUiznAgS1Nzj5jYR2wsV5+rIk+IrfW2DVr5XsYA70ddckpxzTdUOYVx25ph2pHEobPX/uEgHA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wzDoGlGQzT88v3W1tp3fO1drcFdstJ2VpFyyksAvniQ=;
 b=kHslB2U9ERkFAV7FneM7HDYJPIQpQS0w5dE4PBF0mag0IC9m16s1YTcr8RNYTmEBq9UZrMAu//mLVu8j/YXpgui2z75uYI+jufDlb9824M/oGz5ptvsKMn5DPnpVx7sJmEDT8yTcHgl8okpH9RtwLv0kd49zncJ/laxSAf6eeRmE+9UuqzuQleAG2sPGA7bsbBV6nlx4e3/BGddi4Oko6piW53Bl2NBDzUPBsRwSqICUwLHYTdv7f0le27000D4GqRdmHRssNp0eu9Hcu11Ue3JTqmhT0Zhf5aejgk5JkQ1NN09oD/ZfJrvzf16f9GmneVzw7i2toSDnyVgynjf9pw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wzDoGlGQzT88v3W1tp3fO1drcFdstJ2VpFyyksAvniQ=;
 b=sWkb2ViScuq/F1hR7zBmxmmD/met8cq3oaf/rXuuZGGqJ/0eUiPfH27eTzS9hMrVX3gOEgkaWbQH3e9nAjSqnt8v+1YhC2HzDHm1kZxf7W5CBEvbiVg+kUQLfzGIjIyV5H62paMvQUtab3roJyYul2piVKNbDsHHFG+OWK9DJqM0ve+OKmdB9xhyRws95E9+osW5UQmRHFNc25ct4jy/7nHkNBf2VuCSLuuec1GedoxBTL99xX1ALoJWYWYvJ368ep5zlUdyXedeULsyeJemu7YEKQSUcrYxTaKZlkWYJezM29WpTYf5Sv88aNAdkaXTcdYEWYQNuHJ/v9LYr9Zcrg==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Ross Lagerwall
	<ross.lagerwall@citrix.com>
Subject: Re: [PATCH 0/2] Address violations of MISRA C Rule 20.7
Thread-Topic: [PATCH 0/2] Address violations of MISRA C Rule 20.7
Thread-Index: AQHcst645g7QlNxsOkmEje6S743Qy7WsYhwAgAAOcYA=
Date: Fri, 13 Mar 2026 13:13:14 +0000
Message-ID: <2632e6a3-5447-49e9-aa39-bc3ea24c908f@epam.com>
References: <cover.1773399567.git.dmytro_prokopchuk1@epam.com>
 <f1b8985c-cb61-47a1-9ecf-28c7cbb9cf63@citrix.com>
In-Reply-To: <f1b8985c-cb61-47a1-9ecf-28c7cbb9cf63@citrix.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|DBBPR03MB6988:EE_
x-ms-office365-filtering-correlation-id: b95a030a-d343-4e72-4c82-08de810248fb
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|42112799006|1800799024|38070700021|56012099003|18002099003|22082099003;
x-microsoft-antispam-message-info:
 WAJcvOYSsmOiXRZstn2UGVBWH/l7asVWEKa8ZWtUTf+ui05GWc3xV/Ha5u6cZe9XXWRFv9JVdL2B0PYTrx6XB5FATc0bR6voeqaRUHfBK96ScYmOpsKOMJJTr9H+d0EFd1h6/94wzDoMIfPoJD+Djn5bMEMPqZSlt3VsPtcUQoQ61k+O55zoUudthDqDkQlOJUfUw/lfpyaogl+IgXv9tfG3+id/aE15OV691ndMz8KPOmBL28nidbtz5HYnHh6T301Et/pUuKKlyVf6bUTGSj+1FiozGz+hVlkEJDN+Z+RRvZwsnXWj63/+MP8y3bq2Jt0+TCnDiIqg0u+xw1T8fLv6fv0G7DN4Df+0T4LcKLLs3akC72pG75zlOeLknP5j9mY139AP+A14gMTQBjeDay0Kx3/uOQLmP0NXThQS+acCrMpmiW1lWfv4ydymk1hDgjJEiYira6gRYmOsyi2FuG9Ro5PoG2mteW4ZY0ONp1RvW4ukW4YNphuPukvr1GH8ilRB+976Qwm7/tujMzoGSpKA3KOqf2/vBlBYMGQDUmb1lTRmy8xCfPLwDWkhZuRsBVtsXKxWQUetDZM2K3jlifd18QcWj5pokQP1kmldeYa11gz+xu8oq/BCbo42YH6F7iK//mMzO6QEbUxGcXUFsvpBKNDKkzNPCGwXq04Vli+YGir61GJt67WtzX4rL39jITgtT18eR4mcZYx96eg+CDVqtv8bp+Pzixn4+eEwxYCzkrAnqgH3+ZjC7ItKBcbLd1hwa0fxtc3AKiWo7NRn/mdjePdJKTq9cGgsOLzomkM=
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)(42112799006)(1800799024)(38070700021)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?SmpqUlJwNWVyNUwrWDkxcnpJTllOb21WQ2l3djAxd09CNE43TFVHYzVySFhX?=
 =?utf-8?B?K0plTlVLcjBaakw2Ri90OVdnZVdGZUJsYkNNZXdRbkx5UnFOWG9WQ1dzTGhK?=
 =?utf-8?B?Rjk4VTNtb3Y4dUdSUW16YVp6UCtTR1FraVRyT0M5b2VrOGNlSFRWQ2VOc0xU?=
 =?utf-8?B?Z3Qza1dBQTZrSHlpazQ2NndxNE1wRm1kdkxDM25KdHBuMWdxc3Vac2hOYk9z?=
 =?utf-8?B?WitIcVh3MXRnOVlZNVBlcnB4c2dGT1ZXSWYxcFlOQWF6SGc0T0I1dndqak1h?=
 =?utf-8?B?ZjBWOHNvYy9GQU5NNWRORGpMYVZ2eDd1S1BzcmIyQktrQUh5UTl5R3gwcmt4?=
 =?utf-8?B?bDFIRWhGRncrMG51dkVrOUthNzJZeGl0OFFTZitZYkptdTI3N1pReS9JUCto?=
 =?utf-8?B?WWNGUitJU3JHWXA2QjlRYmFqdFMwSEt4SkFTT1lQTVJVbzY0MEM5VUxZOFpr?=
 =?utf-8?B?cGdNR3VBUUJBZnpkOVRDajIwRFJNRlQrUG10WEYybkFYN1ZuR2dxR0JYS1JK?=
 =?utf-8?B?WU9rcEcvS3p0aWJNUFF3TWlDYzZBaEQvc3BrVERIUnF1bWMvdW5sVFk4WWFo?=
 =?utf-8?B?QWsrWkpReXBZdzJ1ejBmYjZnaTM0cEY1Z1MzanJmVlpmNXhPU2RNS3ladnhI?=
 =?utf-8?B?K0RralJGK0p1cXo2eXJmQU1uTFNNcHNMUUwreDJiSCtjVmlBZHNjVkZOeG9J?=
 =?utf-8?B?WGU1V0N4b0U0ZERKcnh0TWVRdE5jOHluM203K1hQTmk2cUdwOEhWZkFWOUtI?=
 =?utf-8?B?Rmx2bXdJQVNBMTJ5Um5nSmhUL2svZE02T2JwMVRGUmR4S24zV1o0NEJJSDBa?=
 =?utf-8?B?VVlaeTh2MzZZL0FwODVMTXFqR2ZFTkEyd21mbS9rdk9uT2xwQnlNYXZ0Si96?=
 =?utf-8?B?Yyt1YmwrTUw5ZTZLalJOMWk4STFHYldiWHVna3FMc0JvMkMvb0l2SzBSOHUw?=
 =?utf-8?B?SURkRXJuMzV0dGdLQS9ybW45emZJaTN4a2JSNU51MmxGY3FkZlhxemlZZFhz?=
 =?utf-8?B?VUVZTFNoWHN1QlpJaGxhRmQwR2hVTDNpY2MwVVdOaXJsMjVVeDQ2MWppRUhS?=
 =?utf-8?B?QXBpRzV3VUUvcGpvSjRkVElpbHFLQVYza1NmendpbHdwMTZDVlZtbWF2Wnhz?=
 =?utf-8?B?RXFiTG9lM0tITXlCbFYrNk9kUk5xb1pOTkF5SElFU2Q5NUU4VWhsaGsvYy9F?=
 =?utf-8?B?eHorMlJPVDFxZGtGM3VXZjRtNm9rajJaajhMYU85RWpqNC9yNjRDc1lOb21T?=
 =?utf-8?B?QU1OanRsbXp1TXd4SFlLdjVjeGdKTDNmczRMZUUxWVhnUkVIN2g0TDZHb3ZP?=
 =?utf-8?B?T0RiVUtJQWN6RjV2d1FWNlFkOTlFb2piY2tsOVU3UkV1OHA5dTZZczEyVmth?=
 =?utf-8?B?d3J6Wm9YR0EzNUIvTms5ZVdScWJIZWJ6aC9zTjgrUkdVWllkVlR3YSs4dXY0?=
 =?utf-8?B?TW1YUlRmRTllR2M2TUpyc2U2N2JzZHg5a2l5enI3WGFIYkowWmNpaWIwM083?=
 =?utf-8?B?Vy8wT29pRm1mVlBTTzd4YW9aUU13S215bjc3SDdGRzQ1T0h5SiswaTNmV0hj?=
 =?utf-8?B?am11NTZoaEtBbVJUWnUxUEp5NWd2RGtOcVZGOXRxQXo0d2dVVDM1RXp3c0Nv?=
 =?utf-8?B?eUxOUTFmNmJlWlFRTnFGeVU2a00vWWxqL3hJd1pWZDRsMHl0WEtkYnVzVGtF?=
 =?utf-8?B?NXkvU29TRVlkT01ubWtmU2laMEV2M1N4VG9WclVIVStRcjBIaElnS3hJMHZE?=
 =?utf-8?B?WEs5TE9pRmMxVXJua0xsbnJWOE9vWjhtQkYwZjdVY2x2aHV2eGhXdEQ0ZFly?=
 =?utf-8?B?NUN3d3IyTzViV1pLUk5hUUJVcVZWVjJ6Um41V2FSbG92U2M3akk4NXNpdlJx?=
 =?utf-8?B?WDRnS0l4QjNlbEFoOE1jYVVEa0lkVG42aDhpT3FlQnVpRWM4bTB4R29kL1Bz?=
 =?utf-8?B?cTU4VHVvbEs2YWM4ZjZCMzVLZ1hLZ2ozZXJrOGYvZStVQ2syWWtOZVZlcE9p?=
 =?utf-8?B?VndZeGVxM3FOQXNpRks3byt6TUNDSFYrZ051ZkFVODVLS2d2S1NVWCtyQTYr?=
 =?utf-8?B?SHRLVUp4ZEdvbkwrcmFwZENkTnZtSnZiMVdkRm14WXJnOE5VL0FhUmM1MlUv?=
 =?utf-8?B?M0RVK2RSVFVtRkI4WGVubXZpaEtlcWt6Y0QwZnNpVEhWcXo1cXpvVTdGbGgr?=
 =?utf-8?B?NjdYc3lreVdUdDB2YlVORElhRy9LaCtrcWxmRTBSRUZXeWxYeTBJTFloSWJ4?=
 =?utf-8?B?WmhCNHJPY3dhVExITmExMzhzY0p1TE1TL1VvYXpuUDZKNUxUcnFHUFRzWDg0?=
 =?utf-8?B?WlJYQUxxeDlXNGtlYlZ3TTZwS2s4R0F3N3pGa0RhV0pBcVdZK2RLUGwvKyth?=
 =?utf-8?Q?njN5fkraGvsTW634=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <81A4E89CC1B4AD44A51871D09D371653@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: b95a030a-d343-4e72-4c82-08de810248fb
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Mar 2026 13:13:14.7346
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: gexz4L/YQ1u+3fHpdx+rTuOtGFrqQ4fIOp5xjyQtHpAYv3npF5wm2h82WDGtBS7+tiVVlZdhJvbyuZcBnrlGnU9IboW8VF55tGLsH1T5kzo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR03MB6988

DQoNCk9uIDMvMTMvMjYgMTQ6MjEsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDEzLzAzLzIw
MjYgMTE6NDQgYW0sIERteXRybyBQcm9rb3BjaHVrMSB3cm90ZToNCj4+IFRoaXMgc2VyaWVzIGZp
eGVzIHNvbWUgTUlTUkEgQyBSdWxlIDIwLjcuDQo+Pg0KPj4gVGVzdCBDSSBwaXBlbGluZToNCj4+
IGh0dHBzOi8vZ2l0bGFiLmNvbS94ZW4tcHJvamVjdC9wZW9wbGUvZGltYXBya3A0ay94ZW4vLS9w
aXBlbGluZXMvMjM4MzI2NDM5Mg0KPj4NCj4+IERteXRybyBQcm9rb3BjaHVrICgyKToNCj4+ICAg
IGFybS9wY2k6IGFkZHJlc3MgdmlvbGF0aW9ucyBvZiBNSVNSQSBDIFJ1bGUgMjAuNw0KPj4gICAg
bGl2ZXBhdGNoOiBhZGRyZXNzIHZpb2xhdGlvbnMgb2YgTUlTUkEgQyBSdWxlIDIwLjcNCj4NCj4g
SSBhbHJlYWR5IGhhdmUgcGF0Y2hlcyBwZW5kaW5nIGZvciB0aGVzZSBhbmQgbW9yZS4NCj4NCj4g
fkFuZHJldw0KDQpIZWxsbyBBbmRyZXcsDQoNCnNvcnJ5LCBteSBiYWQuIEp1c3QgaWdub3JlIG15
IHBhdGNoZXMuDQoNCkJSLCBEbXl0cm8uDQo=


From xen-devel-bounces@lists.xenproject.org Fri Mar 13 13:49:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 13:49:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253735.1549801 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w12ss-0007fA-2r; Fri, 13 Mar 2026 13:48:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253735.1549801; Fri, 13 Mar 2026 13:48:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w12sr-0007f3-W3; Fri, 13 Mar 2026 13:48:57 +0000
Received: by outflank-mailman (input) for mailman id 1253735;
 Fri, 13 Mar 2026 13:48: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=VEVP=BN=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1w12sq-0007ex-EW
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 13:48:56 +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 5efe064d-1ee3-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 14:48:53 +0100 (CET)
Received: from AS4P195CA0002.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:5e2::6)
 by PAVPR08MB8920.eurprd08.prod.outlook.com (2603:10a6:102:328::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.17; Fri, 13 Mar
 2026 13:48:45 +0000
Received: from AMS1EPF00000043.eurprd04.prod.outlook.com
 (2603:10a6:20b:5e2:cafe::84) by AS4P195CA0002.outlook.office365.com
 (2603:10a6:20b:5e2::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.29 via Frontend Transport; Fri,
 13 Mar 2026 13:48:41 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS1EPF00000043.mail.protection.outlook.com (10.167.16.40) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.17
 via Frontend Transport; Fri, 13 Mar 2026 13:48:44 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AS8PR08MB9865.eurprd08.prod.outlook.com (2603:10a6:20b:5a9::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.15; Fri, 13 Mar
 2026 13:47:41 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9700.010; Fri, 13 Mar 2026
 13:47: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: 5efe064d-1ee3-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=bkTpzgM5wyCkLQSlaZpXucJYI2alOu91TMxCZ/saGMuueqXxF2zD0O8POrVa+jUxmGIACC7rZbS41i3N3uDtnGqJ6wsczrXO+7lBm+biXxzEtGXnLF9qt7wWGxYFeZnEz6fIA3UvqzehUcPcbj6OjPFgfDJRpMPqHc+7gfD0KPJQkP+FcgycnwUXouqktXeFqc15GPTiynuMnNyH1TuzBhVJ6WpFnY2NuJoTEgtPjS5Fdnt74eMJU0gjA4QggwB3hEneIAxBWy+izYnSeR6jrhSUOiqnYcXRo/RP4ytkmzaehUhWFYEqpH9mzfPbZfy/z4MmV6AG67QmBUoo7KHSBQ==
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=IAvZr++PS8HJGN2RBjUK5uwFOBMEtFwQQvyRsdE2Zos=;
 b=WCi1g8rFmMNSimdHmVvePuRsJ98jlXqncy3jrfrELknquqVS94ICAlnRfoDaS70SyG6KyztgEJ0imyL1sGLcTegdWV3XzCkjTM13irxaFnv9U8a1HfWjNXAgYF/6bbWg1Y9/RQqHa8rsNrG2TDm6Wn+4aiXdED7ACEdamRT2fKohLpiudQdAW5mOUzzLpstDPsJVqqWQQtjXflxLmcATrTb61hU0rHJQVLpBVfT7hFkKNOS84Cr/5qLVLODRdytgcdLFNDjqoDsZR25KpPjmP5mDbdK13NwOMmFSF5euN2YxZrd2qrq7WycIbKxQAX5IMMYPQ5dng6aIdMCFC3vb6Q==
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=IAvZr++PS8HJGN2RBjUK5uwFOBMEtFwQQvyRsdE2Zos=;
 b=Buaalwo2Py9ORB6+xgkIc5vXmxsNvIecYBwabOkAugeL+oLXa7F4sc3BuMIPMuHgVbcSYtt2LRLnnTItNaEsj7kmuxjz1MU/qjXEylBkLudOBytAJ3VT49tk6N9zR0yTloBHyEyk1rkoPaJ/6iJvyhlI2V5G6nVx3THmkL9ZCzY=
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=f8Dl5l9G3lrwSGow0v+1ueRpn/Gx91lb3+zz10Hj68OtDEskGiIz48cpSxpW88nLjyKZqp0RV6SfvH7jn1YdXK5WkDBdBHq7l/SldUcjxHLbdk6/nQWanWPh7wtYI1+nwTkNZtXT6yuLHX+HyWVZJBz46UcKKjm8sRpAG8Q3nnkf7/bhM7A4D8jvT2c9ZEmRxTpTEGsh1s8C7FPitZXp+ydG0MjEb5Bwb5Q6jQiNuIs9C/NiAZNiGehs/PVLEfSwiAKxC92c+FSudNjPb3gan7lcOlmavLDHTqFn2wtSP6yV+UL/d1Lw2uGvbA+lTUxCXSJF3+AhVsh+MUVBQZXevw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IAvZr++PS8HJGN2RBjUK5uwFOBMEtFwQQvyRsdE2Zos=;
 b=ao8bn9hEuynwHiardN5Ud3dCQuTiTqp57DGEp4wA0pMV3gRyWFWNN8BhqP/2Dmx4ywkz4caveoqZWbG3jd4uzVWb9oImG42P9NMlfEyVBJMlyOPXiEqAi+6GS2HslzOjO2KMhtTl9hloqWcrPUdPvjDHpZy0q82M1Y438r67u9bSsJ4d4ifiRr+DXQ20+LZ8i2XLF1U22Htxz7blCLT8ezzfkinxJUHFDGIp5r8aZJkmW2JnBsw8oqMH+6H91OJBdaQmeTnlcGBEZQGzC5ahTPLe4YgbsnD2IzUSrpQo4WFJJLM5Z3+80whdYiVXIl2UFIjtm3FIqXj99lRdFj4lUQ==
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=IAvZr++PS8HJGN2RBjUK5uwFOBMEtFwQQvyRsdE2Zos=;
 b=Buaalwo2Py9ORB6+xgkIc5vXmxsNvIecYBwabOkAugeL+oLXa7F4sc3BuMIPMuHgVbcSYtt2LRLnnTItNaEsj7kmuxjz1MU/qjXEylBkLudOBytAJ3VT49tk6N9zR0yTloBHyEyk1rkoPaJ/6iJvyhlI2V5G6nVx3THmkL9ZCzY=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Jens Wiklander
	<jens.wiklander@linaro.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH] arm/ffa: deviate violation of MISRA C Rule 20.12
Thread-Topic: [PATCH] arm/ffa: deviate violation of MISRA C Rule 20.12
Thread-Index: AQHcss5tR2+5DPx62k6x27kB0BQ6vbWsekIA
Date: Fri, 13 Mar 2026 13:47:40 +0000
Message-ID: <548021A8-AF47-4466-A8A2-C924B7BCBF9F@arm.com>
References:
 <5c415313cb818323b70c59c2a9c26e6122bdc434.1773393963.git.dmytro_prokopchuk1@epam.com>
In-Reply-To:
 <5c415313cb818323b70c59c2a9c26e6122bdc434.1773393963.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.3864.400.21)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AS8PR08MB9865:EE_|AMS1EPF00000043:EE_|PAVPR08MB8920:EE_
X-MS-Office365-Filtering-Correlation-Id: 13cb5fc7-2071-4da3-b1bc-08de81073e92
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info-Original:
 GfapNKisQRS0udRLdjWBWWuSq0RpzR9pYDHFu3x7dzjB2yhnb7NUGCwhpho5gzIdp/vA613fE5v+HIt4Qd/0d4xhXt/JeoHbTgXUnyrypk/HygJkXQzqV5tlg7rMCVXCO1Hh4YL5Vllqvilgnw8Q0bmq50xCGP41DqVWLQdqqaWjH7fIKTvrK+lLF3A5LDxi1PYgukRgKHgH59kOXjXig76OGoNReA0al94GaWk6rAKeqmCH5EHXw5Ubhc3uJFwN/PhCFpBrCpYKScItO28E+k/6ToLlK1qJtOhHkSGsW9fPaKpR7U93Jiu+EJ0MAfIrWhtqdWZzs3gTttVWVuqxivPZS74HPZaDDzS7hkVRAjFr6f3Vz3GgSxgL3/DojE5+RpNIa12t6O4cJ6Kx0oxSODyTSvzOe2fpUdv10YckFDRwd8DTIK9jyqjzCJlRXac/hqcX6LR6xZcha7kIM2ZfcQPW869ULIMWVYgxs5ZKd2rkiU2x6NR66hCIOcNZOW4Y0MAuDYey1zUlyM6/7JMhO/lbeR7BaNt+FV5oPt5zhW5BWPAO1as25KHzpNbHtRsFAf7rGIfQXLRRD4nU+M7i4RuyFVJNr0nGtZOHPIujkKi1pYGMPQZYlYpIsMIsC45JbVQVPlB+SaQ3Itczgtzqj1Ue3U52RwiqPFTuaDSxru4TvIW3ZeAb+6A8CbLB97Ks3iIq6VsoHMUlrfsN9MOtRFdhciJ2Yz5lbzxWQdN1GKOObGCWt+cf2lCeYnbQiQxDziwowgeQdGyGVwv9vcKZ4KbSQqwZBmlrFDrryZVBBek=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <555351D173AB974AB20CD731B23AA00A@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 pMcsKwy9NVx/pLbE25kLQHbKMfGVdS9adcWvTSEekYRtykrw6p3X8UNu+38drzxD8jqNYHeFlpDuGRNC+XBcX0Pkd3wxnk6wis4rRH4reEpfNXCDfvfzDqsuLmt0MEBtPUDZ+Fbg/C3P14YYe6cwTUxFlG6vnDxte+lQ4TfFGVkUV/mJ5oDVne9CtCgaPs1npHtWZUdpn2Snp5lNvt37EMuaI+fHRX7YrpSXonMQx4y8LIuK1gIzf6YD1rjIxinuGmgLL2+5Ep1Xy3zQp7KLj4mOQYGAqk07FYozTYtbV1ddyn6KfDYrXJ50PHw6f2V8XRr/AVW3h2NV27b+Dkkxfw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9865
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS1EPF00000043.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	5a83217e-2a01-46a6-0c81-08de81071868
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|14060799003|36860700016|35042699022|13003099007|7053199007|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	BnwjBxpkuTmL6n+ZopFuBkTDJ0VcdDICtyhIwWzX1dU17FSCaoZzShs/AdE9rNGJm/5bF8bbIYAIubBCfd0BfMVGwGXhGZI0JQonrTm58JIrcOdcLL7v+Cnbs07hqfi4WAJ4+nVeid+EXMX4x2WC1qI1Aj5+kQWYx7ioSlIeWpTJlBh05k7EAE09WPHIk0wZfG+wix7yJyhVNqcz1V7m4IMn2Zqv/N0POpBGeYcQ7jCBNAa2F28UHx8mhXlMnXe9593cgpiXqnWcmF9kDHh4vEVNlnxtoC8+ZBDEnGtkk8GkX/4RtjL68AHwzAj2l7f5BCCL9hhixF+n4pqvavCR9LfZ0kJVe1YuRxWjXptp0JGejkGgQI/K8HOE6+GlDiiwHQVtuPcIyuLU2XAnh/MLbv0iEb3piNG0l9zTbQ6jrOpmMSLdVbrZ9e0jtl2/eaKwNGu9hA050hzA+DgA6jLOIWBEej5dBjXooUIUXtkOTF+BAf/rT503t6ZuVKPuUC4pNY8brGq56MFfQOqV43EI5jNn91rFQfe+xpdpJS7PqE4SpzOpedzTCW33kurg3lQ0U78ziHV50zMm6RZ5QuWPEVwfx1MrNU0SQmTnvRcWmcANcn9RxJ3I+ymSnajybqhGnR5Z7wkv4YOXBqiBRZ+n/Gb+bqdgLYnDwe1PrTdcEhSc49yxd9Gpy+yLNV3wo6IWIRxJ51heKbquaq2OhqFnUImgBV6gozWD6mXMJS6+fsSA1IAB9l6QbI5DT93Cl/A+5Wesz+tsTQ4dv54xd5FC6g==
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(14060799003)(36860700016)(35042699022)(13003099007)(7053199007)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	fUkGb+qOTpbszvYOBmzEugm+B1Qygy02uCVFvujJp/qwpmd7yrDTkNIyXFDgW2UTDw4svJMdTcfiZOuhY85rgo132YpmZLJFo26+6EzjDGPWbPKbJAk9BTVo3gUbx9GKmIvPy/NWlZxtQcOhXWMu2rYFDUZklr76WvD5TJ6Mw20EXXppzFJrmI6RiEZY0MjdFSLupJlw8YnNsWiKCRw4h0SVMZj0wWZUcx+mr9kLxxcja8MdobaIzzzbHMvwnPju+uIUEcVE/A/6Yp/Fj/15BEXDKn1DfEkucbhy3aQwgrDMhQJaKjhi3MKE7ZYhB0J4IIUbcyQ4WC4HCclSJ12C4Vtr7ecfa9VyzDgJenTSyia+PgdhylX656b1nZrPJqqRTevGQ9ifhtpoSH6X9nK4zhoD/D38Me3GFS6L73/lKu9MicY4OpVCZ8f2HP4W5Y/m
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Mar 2026 13:48:44.6736
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 13cb5fc7-2071-4da3-b1bc-08de81073e92
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS1EPF00000043.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB8920

Hi Dmytro,

> On 13 Mar 2026, at 10:47, Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com=
> wrote:
>=20
> MISRA C Rule 20.12 states: "A macro parameter used as an operand to
> the # or ## operators, which is itself subject to further macro replaceme=
nt,
> shall only be used as an operand to these operators".
>=20
> In this case the 'FFA_*' macros are used both as a regular macro argument=
 and
> as an operand for '#' stringification in the expansion of 'FW_ABI()'.
> This is deviated using a SAF-x-safe comment.
>=20
> No functional changes.
>=20
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>

Thanks for that :-)

Looks good to me.

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

Cheers
Bertrand

> ---
> Test CI pipeline:
> https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/23831419=
97
> ---
> xen/arch/arm/tee/ffa.c | 1 +
> 1 file changed, 1 insertion(+)
>=20
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index aa43ae2595..d4a77206c6 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -80,6 +80,7 @@ struct ffa_fw_abi {
>     const char *name;
> };
>=20
> +/* SAF-6-safe Rule 20.12 expansion of macro FFA_* with FW_ABI */
> #define FW_ABI(abi) {abi,#abi}
>=20
> /* List of ABI we use from the firmware */
> --=20
> 2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 13:51:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 13:51:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253742.1549811 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w12vf-0000jJ-F9; Fri, 13 Mar 2026 13:51:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253742.1549811; Fri, 13 Mar 2026 13:51:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w12vf-0000jC-CX; Fri, 13 Mar 2026 13:51:51 +0000
Received: by outflank-mailman (input) for mailman id 1253742;
 Fri, 13 Mar 2026 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=rc6w=BN=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1w12ve-0000j6-Er
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 13:51:50 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c105::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c53c53db-1ee3-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 14:51:45 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by DM6PR03MB5132.namprd03.prod.outlook.com (2603:10b6:5:1e4::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.16; Fri, 13 Mar
 2026 13:51:30 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9700.015; Fri, 13 Mar 2026
 13:51: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: c53c53db-1ee3-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=w9iJ1M+40aHljvlBqqx0bR1ngDhoDJwUs1shxrUEszYYcmdN3ZmF1L7AuTmY7xku5eA0WFKT14RucgseZBXUga/HESoNk5CnI/yvK9eOgsK0T/aO890B7OaCEhoIcXl485H8vfW1cjR5IFazpwIXAvGfUg4msf/39xrsIrQ9Ad3kwLZE36psztLmKoePJkHrsSIbwF/BIhTYtMfGxsDHSP14OVjIGCrqyTe82T3WafAwm0fqMwgNCxj3s/COOml45eOQZh6PSzsHqm/u6pS5TvVzp4vdV2ZveJuxDXU0WbXhU7mjHneIONwJXboQ3KHbqlANRppvqmYyZcYzWJxAdA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sBMjWIV5DbwwQRt9PenOijdXap2/xcZHjGWEN0gQWlA=;
 b=OfQ0qpk4pn+r9Su9SL+pRoIu0O0KvabK65iemmB0N6EnIZKETETiLP7zG5MAVpPe+3DWFVHH+wgY8830JqJwye4tPCsSihwX9X6MCCtMTXYVAFlTvp+C5p9/vaBB01aJRiPeEY0wrWYmsPvfPjVp+sHtoFlOAoHf58Tfp8CIimTNpqn+Iko4eDuOAyyWmYPVY65kqlI+m3a9m1iGMqSuuKNXKU3edlFge++/SZ/Pnjey1zxpBnqZlkx9HMfIgB5EJ3qynZWyL9O6laZkKdtlgFOLWOEhFq/gh+4NO0KYmVvegpWaVKQFkj/19nTN9pt+nos+QHp2FIpbtOmNB7IHqw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sBMjWIV5DbwwQRt9PenOijdXap2/xcZHjGWEN0gQWlA=;
 b=HPqbYhSIafTpMbRGO+rxOLEQiVIe25C2fqepzIQpNt1O96OdbjGa1zm5tphDelfgGPkfWHxBesr04Wup5z4gblIHBsO57QNUmj+zZpF6/kEY2UgVSilbXHtt7tdczkc9Ot4ZpgYK2Jej6nODHPr6xtfBrlSmcD42KZ79Ie4y+LY=
From: Kevin Lampis <kevin.lampis@citrix.com>
To: Andrew Cooper <andrew.cooper3@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 v v2 1/7] x86: Remove x86 prefixed names from mcheck code
Thread-Topic: [PATCH v v2 1/7] x86: Remove x86 prefixed names from mcheck code
Thread-Index: AQHcsmDsLyrsERR4wkGR6TwdeRLYp7WrlD6AgADkKjA=
Date: Fri, 13 Mar 2026 13:51:36 +0000
Message-ID:
 <BY1PR03MB799679D004858F9E772F3F9AF345A@BY1PR03MB7996.namprd03.prod.outlook.com>
References: <20260312204339.740403-1-kevin.lampis@citrix.com>
 <20260312204339.740403-2-kevin.lampis@citrix.com>
 <abbcce95-836f-4a06-a250-4480061ac3cf@citrix.com>
In-Reply-To: <abbcce95-836f-4a06-a250-4480061ac3cf@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_|DM6PR03MB5132:EE_
x-ms-office365-filtering-correlation-id: 8f577c6a-1b6e-4683-714e-08de8107a4ef
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|38070700021|22082099003|18002099003|56012099003;
x-microsoft-antispam-message-info:
 2YRrzAXp2zhkSXga12KI4UTngzH0Fd2J2utLohywiFC0rp/aWlKThWe17RQzrI89LMXsmVxtsPOo17zdFbetz3Xx/igE3tsCAUtHuB+dpTOkwHMc8bPx1+No7OuoqjB9w6RF5DlM7Elm9ZKhMOU7ybIhNtRxMM9Zgwx++fEKmqlswVM1knZL6MU6PGwRy+ARuPuf3WS6ecCnvGvtrCwprgBQbXGIZanWmfDQsL5NEJ13zohtrFAuxwT4kHoY561WN2+M2C1dadfvLIuIpXCzj5gXbF+UhfKgPlYJii+dEf0FEvKP9XbyllVHn9EpsmirUTZtWSF1779wdPz9DWS8PByoZ6hFej7B6BCNWxNGwSbDw+kKZUACaJAmrUiTyxlHOnnZCh8KEZqCjtj/0nPoxL8M0RyRlU6PPCj+D4CnV1JHVZ0aKslP5IFXccetSmdSUAQObszELM41WKc3zxbYyjtlqrRQxkNu/1fppjWVrkr5WmvoMm6SZZXm3JfcsgTzGhJKfAA5LPVLvyEiIDjNgoO28lTY4253vJwPkZNnkPw1ZLokpYchmZkDzIK4/GGonTydMHYVzVvxRwWehJynsznJHgloeoD9yHtZSi25cWafy4/Ctjb76O8bhTp0Iq85nW7dOEmLpDWvt/cqgaXeGUyI3THOsVzXp4SSLN7Zg5rfPvJADAag3DCOCsU7thTQmjEFR1nXM7ooJGWPRlswqEieAmHctGzofmXve032e6KwwbZKQ1VaehCPRZswVAAEsUOeKATmwtQZNoo+Ow8sNopcz95FHEwZL3QEDvtEAdw=
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)(38070700021)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?x7aJNrUndtYB8DHtn11Ay0G0cV/RMR6sdYNmU3qfGShU05WTugNKittdL5?=
 =?iso-8859-1?Q?/0SQNWe/n4o1adKvprlZhfjQNtttWoz0iV51qYUM32iJy+94p6wozVhB7o?=
 =?iso-8859-1?Q?Kn6Uqm/wDSOT5MUG9CH4dAYuQ0ZYfaYc5L6N6688gJtSSne1rVkGprBv60?=
 =?iso-8859-1?Q?B9DJyL6USJDLberee5YGsGfVtQia7Aro31X0lImO+qzcIZ8lDM17Jv2iee?=
 =?iso-8859-1?Q?EN+xJoFGGZd1QV6hDgaOI1yy7MrQ6qTH7oK0879KdxfPKbKdfQwWiBvfX3?=
 =?iso-8859-1?Q?wRVxVVLMN8OG3WzgdoVfXaVnuB+4jiX9kdxLDcdidKx+J2MyQgqhmNHxca?=
 =?iso-8859-1?Q?WX+uUmq7jCZOriKiyskVKNOoh7aQUMNtsDgyRnKYEOIjdtQGMXtYe7m64V?=
 =?iso-8859-1?Q?lHLoieLUd8s+Lq+Kq7GNs8R2wFzZFRkAE41BUedRSFL8tiofixGMJMPZCw?=
 =?iso-8859-1?Q?aCHwPpnFzbaaF4vJvCfNJlOaxv/gie+YZj56RxgAdphwlRK/MjFSrevun5?=
 =?iso-8859-1?Q?OWnblmXsfoXoYF+WDL+mKqWY5jYlqUU+AI4lZ+cPcwb9BTNKG7hxC+X+RF?=
 =?iso-8859-1?Q?R8JRzz44AVk+ElTRaOi4XHNDKDANlMbtpjg5n5PWB/9rYs8b0QkSqQoajZ?=
 =?iso-8859-1?Q?2GlgOvYK44aHCFdkyrDGZgWVTFwqTvNDehKXii6RYQWo27sA0YraJKSE4j?=
 =?iso-8859-1?Q?J0Do91TkgYALq/OZulJU/Z5JT5+3R4VrHm6u0m+O7I72x8mxhg2WQ5K4iD?=
 =?iso-8859-1?Q?ynhNoQBeH/TNCWu8QAn4QgymDf9BmJrcVU2E+2LmOvNZOitJxeN1hdHEBf?=
 =?iso-8859-1?Q?B2ct7+jUHbmtk23IbuYPBbpb1uc9pPC/e3s7ShC3c+vB+X8ZifHbONUsR7?=
 =?iso-8859-1?Q?gJhEVFVOi4rOz8K7UpigRDjJMf+Ch2/9AydDHsEZoN1NTBRkXy+UBXx5ra?=
 =?iso-8859-1?Q?mLMaeJ+eQCJVlUnennVP0FyBXkQbUFelIAG/hGNyI3X0aJqzPKf2V9LfSX?=
 =?iso-8859-1?Q?SqaXTt/xig/CoKrH5JTzL8sI/AbJX+9eU509n9unGiv9su+ipTDkL8kySR?=
 =?iso-8859-1?Q?tdsbPHDIKigclPEX+4PHlC/blRBKuWwi4VjprwbIEezrk+FentbBtLVW38?=
 =?iso-8859-1?Q?ju1zi5QyH5MhvFiX9ukL/HWkG2eHiwMOaT43P648WQVSFcfscuXhUEqRnf?=
 =?iso-8859-1?Q?5kydEJffsvxVUJBu/DdW8uNGdBQ9tKj8A0Qi9romm2tsjBJbYGm3iwT0W7?=
 =?iso-8859-1?Q?XOjDNWuLkYhphuJTebnQyGMK2i3hPYjLldQh3LgYJYLYRTVeuF4bDJ0Ypa?=
 =?iso-8859-1?Q?XSSRu7HmJKTWYp8G9/pZ2upOXB18kZVTO5Yft5Z+DEB3xcInv2F8RNsbMQ?=
 =?iso-8859-1?Q?Vlq1Q06e5Sn48xu0zgPdlTx+pCjUncskn10q6dNHVjk6HIcNCw3TdQFnKj?=
 =?iso-8859-1?Q?GVPN4pKIeISAu/SxA2xOumnX6mOZ+iZAuP4rE7u5eM0b110FA6FBqOV8ZZ?=
 =?iso-8859-1?Q?CMnFMWJDSsW194vghMdFMusSI/cpRMV06PLVD9U73D034n0sllK4BaKEAH?=
 =?iso-8859-1?Q?2FGoPjlMsFZXJyWz+s4cQffB+/P/1PZBfVuTtTdLx7xdGy1QmhDRR8dTEI?=
 =?iso-8859-1?Q?XJ/VdZE4ufa1dekEhc8VAbZAG0y6vjIu+PuugKn+sBCCg13vwrS+DCgXBp?=
 =?iso-8859-1?Q?l8HJQnSzpT+EZJHSEH64oQWOQLkyNIdwxp1+Uwhs3JkNC7qYNfAFIr10gs?=
 =?iso-8859-1?Q?/SxME9jVbcMXdjfKIf+b3mvzRChQibGvrwrMpVdncrAWNfIFUlNndkwhUJ?=
 =?iso-8859-1?Q?rrMN/3ympQ=3D=3D?=
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: 8f577c6a-1b6e-4683-714e-08de8107a4ef
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Mar 2026 13:51:36.4551
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: u+mbDBaJu59or1wcMOqeISvmvBxBdUpTNuVqU2KWRvlec9KfGyoZvXv4QIFttY5grlKsMA77pXzeeiJUOb3iLA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5132

>> -=A0=A0=A0 if ( c->x86_vendor =3D=3D X86_VENDOR_INTEL && c->x86 =3D=3D 6=
 &&=0A=
>> -=A0=A0=A0=A0=A0=A0=A0=A0 c->x86_model >=3D 0xe )=0A=
>> -=A0=A0=A0=A0=A0=A0=A0 return true;=0A=
>> -=A0=A0=A0 return false;=0A=
>> +=A0=A0=A0 return c->vendor =3D=3D X86_VENDOR_INTEL && c->vfm >=3D INTEL=
_CORE_YONAH;=0A=
>>=A0 }=0A=
>=0A=
>This breaks P4.=0A=
>=0A=
>It is not safe to write expressions like this, and I've already=0A=
>explained why.=0A=
=0A=
Last time you said it's not safe to drop the `vendor =3D=3D X86_VENDOR_INTE=
L`=0A=
part because `vmf >=3D ...` by itself will pull in other vendors. Sorry, I =
should=0A=
have realised the same logic applies to the family field too.=0A=
This "breaks P4" because Pentium 4 NetBurst is family 15 and will now match=
=0A=
this new `vfm >=3D ...` expression when it didn't before.=0A=
=0A=
I'll take Jan's suggestion below to match `vendor =3D=3D Intel` and `family=
 !=3D 15`.=


From xen-devel-bounces@lists.xenproject.org Fri Mar 13 14:24:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 14:24:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253777.1549820 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w13Qi-0004v4-Q4; Fri, 13 Mar 2026 14:23:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253777.1549820; Fri, 13 Mar 2026 14:23:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w13Qi-0004ux-Mb; Fri, 13 Mar 2026 14:23:56 +0000
Received: by outflank-mailman (input) for mailman id 1253777;
 Fri, 13 Mar 2026 14:23: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=tXKZ=BN=bounce.vates.tech=bounce-md_30504962.69b41df4.v1-8886886fd04a4b10a8bd71ea1b6e1887@srs-se1.protection.inumbo.net>)
 id 1w13Qh-0004ur-FD
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 14:23:55 +0000
Received: from mail136-12.atl41.mandrillapp.com
 (mail136-12.atl41.mandrillapp.com [198.2.136.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 409e3ba3-1ee8-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 15:23:49 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-12.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4fXRYc0fVdz5QkZZT
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 14:23:48 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 8886886fd04a4b10a8bd71ea1b6e1887; Fri, 13 Mar 2026 14:23:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 409e3ba3-1ee8-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773411828; x=1773681828;
	bh=ArK9VrbgTO4J/ByfYUdZR7SXRclopXmghM4bDQiv6b0=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=faWaHwbOZ3/isk3CnW05L49oK4COLhGubq9T5xm8svFKCMhZk9V0eAlmhHTTlu7+b
	 gY6yOIMkIF1VSyr9LD3bBde4HsZ88VWmbrNSrEyzvVMJaiYNz8jfQ0xGYo6Pkr5P9p
	 LkjAl5OmRv15kBDRuPqjzVRE2Pc7wj/HiW7czbov4rgYilS68dxTTplM1ow9ZMa1ww
	 LiDmtgoKi+Al8oC7jfcucJNcK6g/PPCGURmRBkARv7RnvPmCUuenntqf7o1viYx9t6
	 IsXdEzcZ3m75XYNF3FgSfSZmT4Bgu1h0gV9OoHdoO/RusmDRSQgA1kV7poKv4e+hl2
	 BPOycqtaZx12g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773411828; x=1773672328; i=anthony.perard@vates.tech;
	bh=ArK9VrbgTO4J/ByfYUdZR7SXRclopXmghM4bDQiv6b0=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=Cbv95xzU7znPvmjE1RJBpqRhAj3fQ9PQTURs7PHbq7vrMkbfiV/zSQelKr73ytPSC
	 f/mtnSv8hA45q7n1h3hmJZ6xPLekUhEfIrtqC5FQ8CQ9LOt1chNkOa+ytjcgqyTjvf
	 +twhW4w1ULYTvcmsldlBcyaEegp8dt/oCaGlsfxpW3SzSd2l7UiVFEx/ioaXW6ZmYO
	 Y/y/V0pp4LLifG5eGaZLTa3OwSjqC+aZIeyvQW9TVCUTvzYzc21oFb0s10h501HZKD
	 mbu9fhmuLqrXOpphvVtpy8h3JScxNS1xB45VMJ1w+BvMd9olbezNbW4/Kstm8CYHhZ
	 zQ5N9fcn72TWw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2001/11]=20tools/libs/store:=20add=20get-=20and=20set-quota=20related=20functions?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773411827419
To: "Juergen Gross" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, "Julien Grall" <julien@xen.org>
Message-Id: <abQd82Z8x3_9CY2Q@l14>
References: <20260305135208.2208663-1-jgross@suse.com> <20260305135208.2208663-2-jgross@suse.com>
In-Reply-To: <20260305135208.2208663-2-jgross@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.8886886fd04a4b10a8bd71ea1b6e1887?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 14:23:48 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Mar 05, 2026 at 02:51:58PM +0100, Juergen Gross wrote:
> diff --git a/tools/include/xenstore.h b/tools/include/xenstore.h
> index 423422dc50..6b661e5895 100644
> --- a/tools/include/xenstore.h
> +++ b/tools/include/xenstore.h
> @@ -277,6 +277,25 @@ bool xs_get_features_domain(struct xs_handle *h, unsigned int domid,
>  bool xs_set_features_domain(struct xs_handle *h, unsigned int domid,
>  			    unsigned int features);
>  
> +/* Get names of supported quota. */
> +char **xs_get_quota_names(struct xs_handle *h, unsigned int *num);
> +
> +/* Get the value of one global quota. */
> +bool xs_get_global_quota(struct xs_handle *h, char *quota,
> +			 unsigned int *value);
> +
> +/* Set the value of one global quota. */
> +bool xs_set_global_quota(struct xs_handle *h, char *quota,
> +			 unsigned int value);
> +
> +/* Get the value of one domain quota. */
> +bool xs_get_domain_quota(struct xs_handle *h, unsigned int domid,
> +			 char *quota, unsigned int *value);
> +
> +/* Set the value of one domain quota. */
> +bool xs_set_domain_quota(struct xs_handle *h, unsigned int domid,
> +			 char *quota, unsigned int value);
> +

Do you think all those new prototype could get a bit more descriptions?
Which parameter are actually output (and not input), what does it mean
to return false, do they set errno, is there something to do with the
return value of xs_get_quota_names?

For output arguments, libxl have a convention (well at least a mention
in the coding style) to suffix argument names with `_r` or `_out`.

For the strings, could we use `const char *` instead of non-const one?

> diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
> index 8f4b90a3cf..dda37f7526 100644
> --- a/tools/libs/store/xs.c
> +++ b/tools/libs/store/xs.c
> @@ -1456,6 +1456,117 @@ bool xs_set_features_domain(struct xs_handle *h, unsigned int domid,
>  	return xs_bool(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL));
>  }
>  
> +char **xs_get_quota_names(struct xs_handle *h, unsigned int *num)
> +{
> +	struct xsd_sockmsg msg = { .type = XS_GET_QUOTA };
> +	struct iovec iov[1];
> +	char **quota;
> +	char *reply;
> +	char *c;
> +	unsigned int i;
> +
> +	iov[0].iov_base = &msg;
> +	iov[0].iov_len  = sizeof(msg);
> +
> +	reply = xs_talkv(h, iov, ARRAY_SIZE(iov), NULL);
> +	if (!reply)
> +		return NULL;
> +
> +	*num = 1;
> +	for (c = reply; *c; c++)
> +		if (*c == ' ')
> +			(*num)++;
> +
> +	quota = malloc(*num * sizeof(char *) + strlen(reply) + 1);
> +	c = (char *)(quota + *num);
> +	strcpy(c, reply);
> +	for (i = 0; i < *num; i++) {
> +		quota[i] = c;
> +		c = strchr(c, ' ');
> +		if (c) {

If `c` is NULL, it's likely that this is the last iteration of the `for`
loop. But just in case, should we prevent the code from doing another
round and prevent `strchr(NULL, ' ')`? (Or just check that `c` is !NULL,
and let the loop finish set NULL for the remaining slot in `quota`)

> +			*c = 0;
> +			c++;
> +		}
> +	}
> +
> +	return quota;
> +}
> +
> +bool xs_get_global_quota(struct xs_handle *h, char *quota,
> +			 unsigned int *value)
> +{
> +	struct xsd_sockmsg msg = { .type = XS_GET_QUOTA };
> +	struct iovec iov[2];
> +
> +	iov[0].iov_base = &msg;
> +	iov[0].iov_len  = sizeof(msg);
> +	iov[1].iov_base = quota;
> +	iov[1].iov_len  = strlen(quota) + 1;
> +
> +	return xs_uint(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL), value);
> +}
> +
> +bool xs_set_global_quota(struct xs_handle *h, char *quota,
> +			 unsigned int value)
> +{
> +	struct xsd_sockmsg msg = { .type = XS_SET_QUOTA };
> +	char val_str[MAX_STRLEN(value)];

MAX_STRLEN doesn't have a great name, I wounder what is was :-). And
it's not about a maximum size of payload that could go on xs wire or
something, it's actually the maximum string size that can take a
numerical value, when converted to charaters.


The rest looks fine to me.

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 15:02:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 15:02:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253810.1549828 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w141c-0001op-KE; Fri, 13 Mar 2026 15:02:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253810.1549828; Fri, 13 Mar 2026 15:02:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w141c-0001oi-Gi; Fri, 13 Mar 2026 15:02:04 +0000
Received: by outflank-mailman (input) for mailman id 1253810;
 Fri, 13 Mar 2026 15:02:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=r3Rt=BN=bounce.vates.tech=bounce-md_30504962.69b426e3.v1-ea619ec38c7b4a838135114e8deeaa63@srs-se1.protection.inumbo.net>)
 id 1w141b-0001oY-AP
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 15:02:03 +0000
Received: from mail136-12.atl41.mandrillapp.com
 (mail136-12.atl41.mandrillapp.com [198.2.136.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 942fdc53-1eed-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 16:01:57 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-12.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4fXSPb5qvpz5RCsX6
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 15:01:55 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 ea619ec38c7b4a838135114e8deeaa63; Fri, 13 Mar 2026 15:01: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: 942fdc53-1eed-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773414115; x=1773684115;
	bh=FMFqKBqdqq8KF747t14e/qHbgGEqxUwmV/FQ8SvjIiU=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=dNwvLIcxA55/UIu0EfVPQ81+xAgUD6MEErjTw8KL342W8ZB/17fME5DlU3eYniKst
	 XRRbLB3x2hB300uCOFti10vnBUM+1das7F1aY3PXxLZfUA0GeV2snPfsq9P8j8NxMr
	 4d3fR/eo37iahANVUZCyo8er7TequGGMiwzc1QCU85NYYqzaDd0TAnIbBJPk2bhe2E
	 GGgDzE0I83qwwsVjjMh6FniWiDIYE8EDaSBhRZBSHDi72tLhJd4CH789knpiqi4F5y
	 Jj1CgjUyfPsgO0jDkm99gwmIZACQHXsRX5UL8w6YcxevKOY2G1uCn2cLVvXJbvKtSm
	 IRpxLdXYkNapw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773414115; x=1773674615; i=anthony.perard@vates.tech;
	bh=FMFqKBqdqq8KF747t14e/qHbgGEqxUwmV/FQ8SvjIiU=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=gt9WhvNHFNn6QGIUr8mZcru+sDDDs4iT82Ss2GbM2IVNfi0R/whxXw4RrVBVD0H3e
	 93rvEIZhAqvxsKkrvVxL/HkLJ3FyzW8RJNUXSM9tBbLf+d2YBXQnK+gjkAYunDSZA/
	 SnnPUZGCaK7CfOpIGzCFW37p2R/f8sFDYkKgjBONNB97m9v9CLBCnJ4rLsmF1g1wqd
	 90Ha/QTA4Crsxd4UOLUswJAH1yeVVAdE38G6TXFLq5Ds7eLcygHOT3Lcmw/gh4ayDO
	 CP66c1u+amtYp/pXp+ZVjhzzPAbjQDHU5twi39WxATlw6G9NJsVfVBXF/1A8cjje1n
	 aFhZ9XjTj7aug==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2002/11]=20tools/xenstored:=20add=20central=20quota=20check=20functions?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773414115137
To: "Juergen Gross" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, "Julien Grall" <julien@xen.org>
Message-Id: <abQm4h7nmKvYSSxl@l14>
References: <20260305135208.2208663-1-jgross@suse.com> <20260305135208.2208663-3-jgross@suse.com>
In-Reply-To: <20260305135208.2208663-3-jgross@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.ea619ec38c7b4a838135114e8deeaa63?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 15:01:55 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Mar 05, 2026 at 02:51:59PM +0100, Juergen Gross wrote:
> Add central functions for checking a value (either an absolute one or
> the current domain value plus an offset) against a specific quota.
> 
> This is in preparation of introducing per-domain quota.
> 
> The required changes allow to drop the "update" parameter from
> domain_nbentry_fix().

This patch changes the return value of do_watch(), from E2BIG to ENOSPC,
but that's not mention.

> diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
> index e453b3061f..1df9265ad5 100644
> --- a/tools/xenstored/domain.c
> +++ b/tools/xenstored/domain.c
> @@ -490,10 +509,9 @@ static bool domain_can_read(struct connection *conn)
>  	if (domain_is_unprivileged(conn)) {
>  		if (domain->wrl_credit < 0)
>  			return false;
> -		if (domain->acc[ACC_OUTST].val >= hard_quotas[ACC_OUTST].val)
> +		if (domain_check_quota_add(domain, ACC_OUTST, 0))

Is this change fixing a potential bug? As now we check if there's a
quota for OUTST.

>  			return false;
> -		if (domain->acc[ACC_MEM].val >= hard_quotas[ACC_MEM].val &&
> -		    hard_quotas[ACC_MEM].val)
> +		if (domain_check_quota_add(domain, ACC_MEM, 0))
>  			return false;
>  	}
>  
> diff --git a/tools/xenstored/watch.c b/tools/xenstored/watch.c
> index b66a9f1a39..36e4d33f22 100644
> --- a/tools/xenstored/watch.c
> +++ b/tools/xenstored/watch.c
> @@ -220,8 +220,8 @@ int do_watch(const void *ctx, struct connection *conn, struct buffered_data *in)
>  			return EEXIST;
>  	}
>  
> -	if (domain_watch(conn) > hard_quotas[ACC_WATCH].val)
> -		return E2BIG;
> +	if (domain_check_quota_add(conn->domain, ACC_WATCH, 1))
> +		return ENOSPC;

Change of return value here not mentionned, even if it now aligned with
the value returned in other places.

>  
>  	watch = add_watch(conn, vec[0], vec[1], relative, false);
>  	if (!watch)

Patch looks fine to me:
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 15:37:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 15:37:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253848.1549837 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w14ZT-0005zc-7U; Fri, 13 Mar 2026 15:37:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253848.1549837; Fri, 13 Mar 2026 15:37:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w14ZT-0005zV-4m; Fri, 13 Mar 2026 15:37:03 +0000
Received: by outflank-mailman (input) for mailman id 1253848;
 Fri, 13 Mar 2026 15:37: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=Qi/i=BN=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1w14ZS-0005zP-1S
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 15:37:02 +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 79071234-1ef2-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 16:36:59 +0100 (CET)
Received: from DS7PR05CA0078.namprd05.prod.outlook.com (2603:10b6:8:57::24) by
 CH1PR12MB9718.namprd12.prod.outlook.com (2603:10b6:610:2b2::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.8; Fri, 13 Mar
 2026 15:36:52 +0000
Received: from DS1PEPF0001709B.namprd05.prod.outlook.com
 (2603:10b6:8:57:cafe::bd) by DS7PR05CA0078.outlook.office365.com
 (2603:10b6:8:57::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.17 via Frontend Transport; Fri,
 13 Mar 2026 15:36:51 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 DS1PEPF0001709B.mail.protection.outlook.com (10.167.18.105) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9700.17 via Frontend Transport; Fri, 13 Mar 2026 15:36:51 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Mar
 2026 10:36:51 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Mar
 2026 08:36:50 -0700
Received: from [172.31.96.139] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 13 Mar 2026 10:36:49 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 79071234-1ef2-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bDKVeuAfwihw/uOaeZtvDlB56BoFnf9jRI4HnSFbsjEJ24WCKaiSM0CenB6hQWxagCknqR/ywDN7rxY10gW505yUOyOZXmYCvUGedZlfGHmrGUbHinJRYbBuVS0mO753tgJxXDEwuSWUnwmdFIZO0VQVf5ffod2QoJHNTMRnAZvYXYaBXxRHjYxmPkPWy+1cvdinkcz2ql+5vVqZG56DwfNJzBzFCr7i8rqFx5EH4fOjIhdIYV5tWrC7fZwPTCS50nyE4uTFu3iNyhZ3KX1pxCuoVhyQO3dXoAUU623aQFD5R6Z5LpfiA9oaj+6dG556+Xbzp2HLNQ6qGnsjOf3qRg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SnCtm0yzjBseWVLNICpKiuO4CjGyHKEWrxJhQw43Ny8=;
 b=SfETW9KLZVqwM88S9MHc5mxFZrAt96KrGEWT7p2uvoBO+4wXzyZPkxbAivGObRkNXIIH86RuFcmR1HBw9dCUsTUky1D2qLA1695BACSHwK50kNNRKQX48d+Rc0NCMbtW+RsBO2ZE4koZH3yctg7ypwhVJ7yPgYjKStup/JM5EZY7g0I7JrIKthJe9uT6rQsCzk3uTssfnGcFQ9+a9NQ8t1rAGvnIWX9d2/Uuea84d+PHG4n1V7mTabV/b2A9BymcCGCO4QkR/Z/A+1sywPnXliiY99ADwMZtm9jwo0AKFn7Va9dpTPGdRcEgCRz+GAn4v3jFk7gXcLdjujx87/s/PA==
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=SnCtm0yzjBseWVLNICpKiuO4CjGyHKEWrxJhQw43Ny8=;
 b=yavLp5nCpL3xoYcIO2FScReEPua3wDvn+EstUmba8hM22KYHN5ZtX3+1plQOwc/l5R2qsccxsFjzlNNZoEcYkVEechbcko9LM8j9OOJjlLE0CvbPB/HTDoYg+lPnORRYhr/qgQBPntCfRi7v5QHwm/DRRjm+iUQEE9etSA0NDw4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <0552a259-16ee-4b87-834f-def9cadaca1b@amd.com>
Date: Fri, 13 Mar 2026 11:36:49 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] hvc/xen: Check console connection flag
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jiri Slaby
	<jirislaby@kernel.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Juergen Gross <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
CC: <linuxppc-dev@lists.ozlabs.org>, <linux-kernel@vger.kernel.org>,
	<linux-serial@vger.kernel.org>, <xen-devel@lists.xenproject.org>
References: <20260312173845.47235-1-jason.andryuk@amd.com>
 <8e5974b1-da6d-4718-9140-1f943cdd2404@kernel.org>
 <ff1cce61-abb4-463d-adce-0e5fc0a326df@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <ff1cce61-abb4-463d-adce-0e5fc0a326df@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: DS1PEPF0001709B:EE_|CH1PR12MB9718:EE_
X-MS-Office365-Filtering-Correlation-Id: 72fca0ed-e9b1-4812-9aa0-08de81165936
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|7416014|1800799024|36860700016|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	79occZ3Y9ko3ZJ8eeFxzhz73g+Q/h0JrJ10HQCkC+FJIBve88L72RnZ3J2BXPxIDuqmhnefDDpbyepszyI7ubqj9B0LazhfcX7buwaYrFmvAy2Tx0F1RTdfcA4DTvrkUdabuDX4m74OJkgzKd8k39G6wZxSCNzJU5x5/ZUkZxXPLnqZlHv9Yi6Nhz18PW3SiOsuUpz1KhKp33hyiQKiPAYkqJNyUc/MdHkclM0OajfJkpc1FCG4PZi7FdiuCNdGLDO/TTDmzEtJPlmUfyjI/2X+WFybURmCVT1+Bl15aaQMbwhQ7ka3gnzWqjP5WkBqMNzOBpRUHSS2DFkV6lK9AwcZYnwq70r/OrE83cA1KZqK0PCAxaGfG/Ia1AZTHCICrIdIjyb0dGgbgvpf0h90o19IEsYYgINcQPq9tyD94IF7q/v9Zj3u6K0+V7gSUeWHRDNXFvU02YQXpr/UnT/QRf2dIpglmWghGKsnf37Nh8UlsnitrBPcncGG70b5bLCVQfiyxrBqwjx91f1fsm392FyShTWcKEChmw/jnny3sNoEteOvpn0kcH5wgYxw3/r8uZbSElwQTaCHhFJijxw/wYyIjpkGv1ztYfi+VcJDaNEGGXf9f3IJB+4ac618ZXoN2e/l1wHMTVxaVMdD7BHRs5PgK7X5jG20oYAvNJxnd0Qld+TyQWWcHXrdVDgIzD0K3RZFKSFU9oV0vjG7M/aaVhZhLk0SyVRE3ND1Whmjbg8ILvccJr+2tl4FZnvjp6SiZfRHf3YArBugF/MgjBldXmA==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(1800799024)(36860700016)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	cStaS04QRskcp2qCnjBqvqiQxCvNWJpfc650XJqlTRqrMpDTt0KBWlI2Fjq6YtdNqNkZqhQLilKP2Ge8AhYQ3qGlHuLOlm0WytxXMPlbT/a7PDC/sZLU48jukTtFfe8tzJSJOyTquxTwS9UBBlhxH3xVtrpcEgKt7g/Kj/HqEPZoit3UZiq53jphXcboSzMD7RZ8fpLnj4JMSbS4k0FHJQMnRKArSUCPbBO6hF/beX9uN/+lMu2tKFd+2/QMLWkPRxroy2ysm/2azLZDPWqINvBVN8b8mLbCRHS1pZzLXLANPQKDcrMWA2rtPi3o6UD5PrVJfoclutT3Mxb0ewcbRXSbye2vYsliT1BkhtgQ3L/wJHzEDxWCHHKH6fN5ZZwZ9ssb/Rorj54p8Xgo0QgPhhXI3Tezlzc024qyIcTMjj+AyB5Sw5U2hB2VyD0djCya
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Mar 2026 15:36:51.8471
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 72fca0ed-e9b1-4812-9aa0-08de81165936
X-MS-Exchange-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:
	DS1PEPF0001709B.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PR12MB9718

On 2026-03-13 06:44, Andrew Cooper wrote:
> On 13/03/2026 8:33 am, Jiri Slaby wrote:
>> On 12. 03. 26, 18:38, Jason Andryuk wrote:
>>> --- a/include/xen/interface/io/console.h
>>> +++ b/include/xen/interface/io/console.h
>>> @@ -19,6 +19,19 @@ struct xencons_interface {
>>>        char out[2048];
>>>        XENCONS_RING_IDX in_cons, in_prod;
>>>        XENCONS_RING_IDX out_cons, out_prod;
>>> +/*
>>> + * Flag values signaling from backend to frontend whether the
>>> console is
>>> + * connected.  i.e. Whether it will be serviced and emptied.
>>> + *
>>> + * The flag starts as disconnected.
>>> + */
>>> +#define XENCONSOLE_DISCONNECTED 1
>>> +/*
>>> + * The flag is set to connected when the backend connects and the
>>> console
>>> + * will be serviced.
>>> + */
>>> +#define XENCONSOLE_CONNECTED    0
>>
>> This all should be an enum. And you can document it using kernel-doc
>> properly then.
>>
>>> +    uint8_t connection;
>>
>> And type check as well.
> 
> This is a non-Linux header file being re-sync'd with it's original source.
> 
> It describes an ABI between VMs, where things like enum are forbidden.

Yes, it is as Andrew wrote.  I included "Update the console.h header to 
bring in the new field." in the commit message to try in indicate that. 
"Sync console.h from the xen repo to bring in the new field." would 
better explain its origin.

I only brought in the needed part.  There is an emacs variable block 
that is not synced for other headers.  There is also an ifdef block for
XEN_WANT_FLEX_CONSOLE_RING that isn't used by linux, which I did not sync.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:09:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:09:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253887.1549847 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w1555-0002Ja-K3; Fri, 13 Mar 2026 16:09:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253887.1549847; Fri, 13 Mar 2026 16: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 1w1555-0002JT-GL; Fri, 13 Mar 2026 16:09:43 +0000
Received: by outflank-mailman (input) for mailman id 1253887;
 Fri, 13 Mar 2026 16:09:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Yb2q=BN=bounce.vates.tech=bounce-md_30504962.69b436be.v1-5c3b9378c03a49cd8354a292b2c09f88@srs-se1.protection.inumbo.net>)
 id 1w1554-0002JN-1J
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:09:42 +0000
Received: from mail179-36.suw41.mandrillapp.com
 (mail179-36.suw41.mandrillapp.com [198.2.179.36])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 075f3bc9-1ef7-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:09:36 +0100 (CET)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-36.suw41.mandrillapp.com (Mailchimp) with ESMTP id 4fXTvf5xlMzlfk15
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:09:34 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 5c3b9378c03a49cd8354a292b2c09f88; Fri, 13 Mar 2026 16:09: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: 075f3bc9-1ef7-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773418174; x=1773688174;
	bh=D0qC/theo3h956Bl6+OqebRtvIjKvfjXng6e2rmfBwo=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=OcRsO9LUc4pq48y8jnKm03pGxqlXTcH1nCx2QAuGee02qlHmFiIm3dKbknOYqNAjs
	 EZBo6cWyiSvRqgR/RoiSS8NY8sEd8Kr7LIaPY1c3pcSK2uGnQMfgP96m+XwoIUWl2U
	 DzyOBSAX6L+GKYoABMMlj+Em5FUYtdBLKNvhD0+tZ0lbxJs8dndUYi1t9zP+WarQd8
	 s5/gFnLPl6SE/KcLthwEvDvcIIjA5UAyfuLf4gQhc/bp7n+pdSLV93spW59QnLlsma
	 FdOPDCxaY1vEEh+IM3uwviPpjd3dCqP1mtvJdwek4dAlJQ5CeLcoWQ4THEzGFYYVfn
	 5E9T29EWe0mWA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773418174; x=1773678674; i=anthony.perard@vates.tech;
	bh=D0qC/theo3h956Bl6+OqebRtvIjKvfjXng6e2rmfBwo=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=DluaJF2qBnK5kQMOlEDirGaXt00XUKDr0V6FFF6OSr8gLL6jfDx+F+bM16ls10oOA
	 lnr9I1GAp6/pccv1zddadC+uXyjaWrnx+Vg6NtJT4sfb7MROLozl8ZaQ3R4CF91wFz
	 gssPj5I3BNXn2XY/Yspn2m5uXawVtzxSpiygLAKCbOmgSAjySi1lkNhvbsJeRaT1Vw
	 QL4I/ND1KpqG2hcIGfoEu7GArZNk7Sd1a/bT/ZrD7wZ2cAPFWMoHU6+jHUu8JQkrX6
	 pbVcwtLYeix2XXEiWUArSh/NWIXFz179Rz6wly0ylTjEodRsnxvqVf82Ejt0l5q/y2
	 42hbfA4pAkGuQ==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2003/11]=20tools/xenstored:=20rework=20hard=5Fquotas=20and=20soft=5Fquotas=20arrays?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773418174127
To: "Juergen Gross" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, "Julien Grall" <julien@xen.org>
Message-Id: <abQ2vcxWKW1j_KeJ@l14>
References: <20260305135208.2208663-1-jgross@suse.com> <20260305135208.2208663-4-jgross@suse.com>
In-Reply-To: <20260305135208.2208663-4-jgross@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.5c3b9378c03a49cd8354a292b2c09f88?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:09:34 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Mar 05, 2026 at 02:52:00PM +0100, Juergen Gross wrote:
> Instead of having one array for hard quotas and one for soft quotas,
> split them differently: have one array with the quota names and
> descriptions, and one with the quota values (soft and hard) and the
> maximum value so far.
> 
> This is in preparation of supporting per-domain quotas, as the layout
> of the second array elements will be reused in the domain data.
> 
> While at it add an accessor for getting a soft quota value, as this
> will be needed for per-domain quotas, too.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:35:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:35:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253912.1549901 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15Tj-0007KS-4H; Fri, 13 Mar 2026 16:35:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253912.1549901; Fri, 13 Mar 2026 16:35:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15Ti-0007Jm-VD; Fri, 13 Mar 2026 16:35:10 +0000
Received: by outflank-mailman (input) for mailman id 1253912;
 Fri, 13 Mar 2026 16:35:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HapF=BN=bounce.vates.tech=bounce-md_30504962.69b43cb9.v1-f3d1f1e41b594d69b286bae8494a8c00@srs-se1.protection.inumbo.net>)
 id 1w15Tg-0006Ps-UM
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:35:08 +0000
Received: from mail179-36.suw41.mandrillapp.com
 (mail179-36.suw41.mandrillapp.com [198.2.179.36])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 98bb3473-1efa-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 17:35:07 +0100 (CET)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-36.suw41.mandrillapp.com (Mailchimp) with ESMTP id 4fXVT52GHlzlfhqS
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:35:05 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 f3d1f1e41b594d69b286bae8494a8c00; Fri, 13 Mar 2026 16:35: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: 98bb3473-1efa-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773419705; x=1773689705;
	bh=z20eYvkhwyKw++a+c98wvdYw/gsjZHxgfR6V0/vLjGg=;
	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=c2lhrOE3EcoU+EqduNWxBC4UypXSqQYjFiRydu7L4GjSJUyhHHxgFzNJ6l4az03c/
	 OYBjJMh8l3Nh8sDPLqZPhbRdJ5yJUr+YaUx9j7SDFlC0XKFtlFJCWFJq1nOuPBwEtr
	 V5eC1kjAvHVZufGS9CfvWEpIc/80X2R0kbQtYHM9FmqzXKav43vEKjA08hlzhys9hA
	 d64PDAuTvQAOd0sYFDwK9B4lt8VBWWRBYJgfJ6Jz7Qo+Jb8w3ethpTiIBFb40hApLd
	 MCBrSrXGZYpZgYa/hGUYaVjQvy72phdyE+K2QGlOR18gI9kwXhfP9Xl+SVJwVdxdca
	 E1mFLVoUKEruQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773419705; x=1773680205; i=thierry.escande@vates.tech;
	bh=z20eYvkhwyKw++a+c98wvdYw/gsjZHxgfR6V0/vLjGg=;
	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=WeBWCsYS+nyPsnO9wjCuwyRnDA6FRr+o2IeHHhTkO42qeoVJOHN0IhNIViAOHnb5g
	 +f2eyy77/jJIj9Gg1dwJf8/iiyW2TVR5vedTpLqSyyGItdbc6oi7ai/ymtqx7+lzEP
	 Oy/bFqfy770baXYkhgXCvnwLmg4NCeH/eUHTLJuB3+qS5mMOzzUgjrFxcNnCftLrg+
	 JxU4vQFSLtqsuAoTkUBI0eJmmnGzJbxJCSjaB7M1EI9eP6Xrm4RDYlHyHKrEC3dwgM
	 pGtucqvZRfTKWv7Tu2JPryvGI9nrsD9bMSUDsC7u/I/Ae61lTNBqVO0jrkn8djijjP
	 s63ZCyLJZEr3Q==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=2016/17]=20Handle=20PCIe=20ECAM=20space=20access=20from=20guests?=
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: 1773419704539
To: xen-devel@lists.xenproject.org
Cc: "Thierry Escande" <thierry.escande@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: <20260313163455.790692-17-thierry.escande@vates.tech>
In-Reply-To: <20260313163455.790692-1-thierry.escande@vates.tech>
References: <20260313163455.790692-1-thierry.escande@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.f3d1f1e41b594d69b286bae8494a8c00?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:35:05 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This patch adds the logic to decode MMIO-based PCIe ECAM accesses. If
the IOREQ_TYPE_COPY request is within the ECAM address space configured
by hvmloader, the ioreq type is set to XEN_DMOP_IO_RANGE_PCI and the
sbdf decoded from the accessed address.

Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
---
 xen/arch/x86/hvm/ioreq.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c
index a5fa97e149..022fe05222 100644
--- a/xen/arch/x86/hvm/ioreq.c
+++ b/xen/arch/x86/hvm/ioreq.c
@@ -268,6 +268,8 @@ bool arch_ioreq_server_get_type_addr(const struct domain *d,
                                      uint64_t *addr)
 {
     unsigned int cf8 = d->arch.hvm.pci_cf8;
+    unsigned long mmio_start = (p->type == IOREQ_TYPE_COPY) ?
+                                ioreq_mmio_first_byte(p) : 0;
 
     if ( p->type != IOREQ_TYPE_COPY && p->type != IOREQ_TYPE_PIO )
         return false;
@@ -298,6 +300,19 @@ bool arch_ioreq_server_get_type_addr(const struct domain *d,
                 *addr |= CF8_ADDR_HI(cf8);
         }
     }
+    else if ( p->type == IOREQ_TYPE_COPY &&
+              (mmio_start >= d->arch.ecam_addr &&
+               mmio_start < (d->arch.ecam_addr + d->arch.ecam_size)) )
+    {
+        pci_sbdf_t sbdf;
+        unsigned int reg = mmio_start & ~PAGE_MASK;
+
+        sbdf.bdf =  (((mmio_start - d->arch.ecam_addr) & 0x0ffff000) >> 12);
+        sbdf.seg = 0;
+
+        *type = XEN_DMOP_IO_RANGE_PCI;
+        *addr = ((uint64_t)sbdf.sbdf << 32) | reg;
+    }
     else
     {
         *type = (p->type == IOREQ_TYPE_PIO) ?
-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:35:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:35:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253910.1549879 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15Th-0006i7-BA; Fri, 13 Mar 2026 16:35:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253910.1549879; Fri, 13 Mar 2026 16: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 1w15Th-0006hb-5j; Fri, 13 Mar 2026 16:35:09 +0000
Received: by outflank-mailman (input) for mailman id 1253910;
 Fri, 13 Mar 2026 16:35: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=fZ8g=BN=bounce.vates.tech=bounce-md_30504962.69b43cb8.v1-59b3d60feaeb4f9283ad2ed0cc719c6c@srs-se1.protection.inumbo.net>)
 id 1w15Tg-0006Ps-9T
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:35:08 +0000
Received: from mail179-36.suw41.mandrillapp.com
 (mail179-36.suw41.mandrillapp.com [198.2.179.36])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 97848431-1efa-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 17:35:06 +0100 (CET)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-36.suw41.mandrillapp.com (Mailchimp) with ESMTP id 4fXVT457MqzlfgFM
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:35:04 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 59b3d60feaeb4f9283ad2ed0cc719c6c; Fri, 13 Mar 2026 16:35:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 97848431-1efa-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773419704; x=1773689704;
	bh=oACyCsIVsnwSUu/TjdHiufId4TiklazXrlevhafTKHs=;
	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=LR0cXLuQPXiCs/hQvAs5Ib+He1LVsnXEdISk+MtdSZu3OYmcbf5hyENSkayKq70tR
	 Tc53IbnybhxF1NrcA9rIe0+BXO7RwwJud6ZZBDT6O6OA08VPMBwKVTwCTk8fafdJOq
	 tZfTjn+PJR1Ci9V6VknsKphBZaoIouvo72dNGBsfDFR/N2uqOi6CrWB6dlGTOoxUTN
	 UJqlm4xkLP8pysBnSmLDGqymeiNgqqaslHtpTe2z+t8JDN7kZ2gfaeMJBukTzpIkH6
	 hWk3C41NRczl6jS3kv2vHVB0pDQIpQnzBxIttHUsnn3HxEDQnz2P83f1l/rsed1mJs
	 rYBWiR3IWoCXQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773419704; x=1773680204; i=thierry.escande@vates.tech;
	bh=oACyCsIVsnwSUu/TjdHiufId4TiklazXrlevhafTKHs=;
	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=dIoncJw2UWsY2zZT+HwGlQQRrmkkp2NkD5vkRdPk+SXb1CXLMEscVx1w+Jpgj9hyp
	 pSRR7+ERsbXw+CLEUP47xONrCpLVd/xIRv84qJ+hES9CfvkhRnbUT8qIZY1BGLosd3
	 3NmgLPtKc8IBzMrU2ASfjmDKnSsMS2wA1b5+hkk/+bhMIaTQVdjK0RH4aU+UYiHMYY
	 5AgNMWb8uyGL93wUaOw6zUACyeG+xv4NlvHzjQfqAO52yuR5QOQszzBWb55MK/2lbR
	 NPmtm/KayNElsEmAEGyzhkLDfze7Pla8rpxqBpHpm+j8ROdjWQBGjar/euaHPeTb+R
	 HXExTYpA89E4w==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=2014/17]=20libacpi:=20build=20ACPI=20MCFG=20table=20if=20requested?=
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: 1773419704069
To: xen-devel@lists.xenproject.org
Cc: "Thierry Escande" <thierry.escande@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Alexey Gerasimenko" <x1917x@gmail.com>
Message-Id: <20260313163455.790692-15-thierry.escande@vates.tech>
In-Reply-To: <20260313163455.790692-1-thierry.escande@vates.tech>
References: <20260313163455.790692-1-thierry.escande@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.59b3d60feaeb4f9283ad2ed0cc719c6c?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:35:04 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This adds construct_mcfg() function to libacpi which allows to build MCFG
table for a given mmconfig_addr/mmconfig_len pair if the ACPI_HAS_MCFG
flag was specified in acpi_config struct.

The maximum bus number is calculated from mmconfig_size using
MCFG_SIZE_TO_NUM_BUSES macro (1MByte of MMIO space per bus).

Signed-off-by: Alexey Gerasimenko <x1917x@gmail.com>
Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
---
 tools/libacpi/acpi2_0.h | 17 ++++++++++++++++
 tools/libacpi/build.c   | 43 +++++++++++++++++++++++++++++++++++++++++
 tools/libacpi/libacpi.h |  6 ++++++
 3 files changed, 66 insertions(+)

diff --git a/tools/libacpi/acpi2_0.h b/tools/libacpi/acpi2_0.h
index 51623e2a8a..2b16bd636a 100644
--- a/tools/libacpi/acpi2_0.h
+++ b/tools/libacpi/acpi2_0.h
@@ -442,6 +442,21 @@ struct acpi_20_slit {
     uint8_t entry[0];
 };
 
+/*
+ * PCI Express Memory Mapped Configuration Description Table
+ */
+struct acpi_10_mcfg {
+    struct acpi_header header;
+    uint8_t reserved[8];
+    struct {
+        uint64_t base_address;
+        uint16_t pci_segment;
+        uint8_t  start_pci_bus_num;
+        uint8_t  end_pci_bus_num;
+        uint32_t reserved;
+    } entries[1];
+};
+
 /*
  * Table Signatures.
  */
@@ -457,6 +472,7 @@ struct acpi_20_slit {
 #define ACPI_2_0_WAET_SIGNATURE ASCII32('W','A','E','T')
 #define ACPI_2_0_SRAT_SIGNATURE ASCII32('S','R','A','T')
 #define ACPI_2_0_SLIT_SIGNATURE ASCII32('S','L','I','T')
+#define ACPI_MCFG_SIGNATURE     ASCII32('M','C','F','G')
 
 /*
  * Table revision numbers.
@@ -472,6 +488,7 @@ struct acpi_20_slit {
 #define ACPI_1_0_FADT_REVISION 0x01
 #define ACPI_2_0_SRAT_REVISION 0x01
 #define ACPI_2_0_SLIT_REVISION 0x01
+#define ACPI_1_0_MCFG_REVISION 0x01
 
 #pragma pack ()
 
diff --git a/tools/libacpi/build.c b/tools/libacpi/build.c
index 95188e217e..90080c76c4 100644
--- a/tools/libacpi/build.c
+++ b/tools/libacpi/build.c
@@ -295,6 +295,37 @@ static struct acpi_20_slit *construct_slit(struct acpi_ctxt *ctxt,
     return slit;
 }
 
+static struct acpi_10_mcfg *construct_mcfg(struct acpi_ctxt *ctxt,
+                                        const struct acpi_config *config)
+{
+    struct acpi_10_mcfg *mcfg;
+
+    /* Warning: this code expects that we have only one PCI segment */
+    mcfg = ctxt->mem_ops.alloc(ctxt, sizeof(*mcfg), 16);
+    if ( !mcfg )
+        return NULL;
+
+    memset(mcfg, 0, sizeof(*mcfg));
+    mcfg->header.signature        = ACPI_MCFG_SIGNATURE;
+    mcfg->header.revision         = ACPI_1_0_MCFG_REVISION;
+    mcfg->header.creator_id       = ACPI_CREATOR_ID;
+    mcfg->header.creator_revision = ACPI_CREATOR_REVISION;
+    mcfg->header.length           = sizeof(*mcfg);
+    mcfg->header.oem_revision     = ACPI_OEM_REVISION;
+    fixed_strcpy(mcfg->header.oem_id, ACPI_OEM_ID);
+    fixed_strcpy(mcfg->header.oem_table_id, ACPI_OEM_TABLE_ID);
+
+    mcfg->entries[0].base_address      = config->mmconfig_addr;
+    mcfg->entries[0].pci_segment       = 0;
+    mcfg->entries[0].start_pci_bus_num = 0;
+    mcfg->entries[0].end_pci_bus_num   =
+        MCFG_SIZE_TO_NUM_BUSES(config->mmconfig_size) - 1;
+
+    set_checksum(mcfg, offsetof(struct acpi_header, checksum), sizeof(*mcfg));
+
+    return mcfg;
+}
+
 static int construct_passthrough_tables(struct acpi_ctxt *ctxt,
                                         unsigned long *table_ptrs,
                                         int nr_tables,
@@ -343,6 +374,7 @@ static int construct_secondary_tables(struct acpi_ctxt *ctxt,
     struct acpi_20_waet *waet;
     struct acpi_20_tcpa *tcpa;
     struct acpi_20_tpm2 *tpm2;
+    struct acpi_10_mcfg *mcfg;
     unsigned char *ssdt;
     void *lasa;
 
@@ -402,6 +434,17 @@ static int construct_secondary_tables(struct acpi_ctxt *ctxt,
         memcpy(ssdt, ssdt_laptop_slate, sizeof(ssdt_laptop_slate));
         table_ptrs[nr_tables++] = ctxt->mem_ops.v2p(ctxt, ssdt);
     }
+
+    /* MCFG */
+    if ( config->table_flags & ACPI_HAS_MCFG )
+    {
+        mcfg = construct_mcfg(ctxt, config);
+        if ( !mcfg )
+            return -1;
+
+        table_ptrs[nr_tables++] = ctxt->mem_ops.v2p(ctxt, mcfg);
+    }
+
     /* TPM and its SSDT. */
     if ( config->table_flags & ACPI_HAS_TPM )
     {
diff --git a/tools/libacpi/libacpi.h b/tools/libacpi/libacpi.h
index deda39e5db..b2abda90b1 100644
--- a/tools/libacpi/libacpi.h
+++ b/tools/libacpi/libacpi.h
@@ -27,6 +27,9 @@
 #define ACPI_HAS_8042              (1<<13)
 #define ACPI_HAS_CMOS_RTC          (1<<14)
 #define ACPI_HAS_SSDT_LAPTOP_SLATE (1<<15)
+#define ACPI_HAS_MCFG              (1<<16)
+
+#define MCFG_SIZE_TO_NUM_BUSES(size)  ((size) >> 20)
 
 struct xen_vmemrange;
 struct acpi_numa {
@@ -89,6 +92,9 @@ struct acpi_config {
     uint32_t ioapic_base_address;
     uint16_t pci_isa_irq_mask;
     uint8_t ioapic_id;
+
+    uint64_t mmconfig_addr;
+    uint32_t mmconfig_size;
 };
 
 int acpi_build_tables(struct acpi_ctxt *ctxt, struct acpi_config *config);
-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:35:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:35:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253909.1549874 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15Th-0006fY-10; Fri, 13 Mar 2026 16:35:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253909.1549874; Fri, 13 Mar 2026 16:35: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 1w15Tg-0006fR-TW; Fri, 13 Mar 2026 16:35:08 +0000
Received: by outflank-mailman (input) for mailman id 1253909;
 Fri, 13 Mar 2026 16: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=UGzF=BN=bounce.vates.tech=bounce-md_30504962.69b43cb6.v1-67f6cedc721c42edbf171055fee92f62@srs-se1.protection.inumbo.net>)
 id 1w15Tf-0006Ek-Mo
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:35:07 +0000
Received: from mail134-15.atl141.mandrillapp.com
 (mail134-15.atl141.mandrillapp.com [198.2.134.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 95fd48a8-1efa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:35:03 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-15.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4fXVT26z4fzPm0Tfk
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:35:02 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 67f6cedc721c42edbf171055fee92f62; Fri, 13 Mar 2026 16:35: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: 95fd48a8-1efa-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773419703; x=1773689703;
	bh=JfHFYvtudm5KF8F0VORCJcQt4zo5UBXTcc/C8TzmeOA=;
	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=Cr7ix8mpoVVF1RvAhtUe+IUrYgBDRBNVWvATBUdkAJ2uY6+EBxGn1JyzvK2jr/hK0
	 +2FzWg9tElDWxwwrdRNVOYCacTF3/82Jr1yYNtVciklRlwa76WKeuMfgOH35LAnsfR
	 kJZUYEIppgxM8XI1W2ONvjARsMfksjiZ6yj/7FKz2Jvr62mXAsbpgf+t6OA4a1AZea
	 tG9ubT5uxIPHTlM6yFCZtq+EiDTSqNgxx7i5EBdX2pKNaSOUuDRZvP1pfGPO6gdqNB
	 PDkBzqYxCtPkwPXi8c/+HvBrAezSR07XaiAHoEr7qKfpqkziTqNDEhhMqku2etTE78
	 jRZP6fZdIFBfA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773419703; x=1773680203; i=thierry.escande@vates.tech;
	bh=JfHFYvtudm5KF8F0VORCJcQt4zo5UBXTcc/C8TzmeOA=;
	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=VJqFJtu2xGYuVcLOW7Apox2ntOVpWsXdMGjhm68+C5UgmO5mOaBcuv3T0zQZR55gc
	 yPFw+iutjQLdj4RnAMKg2UHJlCj8QlPVXMG8eTqeU77Qz0CPBYIGC6qZWEI1493Uit
	 wH/nKlGTZIS0Gwr6uKAtcP1/fDpdOSiOxR+wCV06PEFufh6galoubakN6LrigCxmU9
	 DtxBSMegYH4bSHnqwUkOdTMHc6YSIUhNB84cFFpWkjravbnWHjzIQCC0pun01LF9YE
	 xNjUgRrPw0l5C0C0yXIyG8AgkgUMQvYOI8+kcmuuVe1Kxyt4GRTZhNUvRBJ6ysacMv
	 2a1rsCMbBZZGQ==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=2005/17]=20hvmloader:=20add=20Q35=20DSDT=20table=20loading?=
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: 1773419701817
To: xen-devel@lists.xenproject.org
Cc: "Thierry Escande" <thierry.escande@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>, "Alexey Gerasimenko" <x1917x@gmail.com>
Message-Id: <20260313163455.790692-6-thierry.escande@vates.tech>
In-Reply-To: <20260313163455.790692-1-thierry.escande@vates.tech>
References: <20260313163455.790692-1-thierry.escande@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.67f6cedc721c42edbf171055fee92f62?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:35:02 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This patch allows to select Q35 DSDT table in the function
hvmloader_acpi_build_tables(). The machine_type global variable is used
to select a proper table (i440/q35).

As we are bound to the qemu-xen device model for Q35, there is no need
to initialize config->dsdt_15cpu/config->dsdt_15cpu_len fields.

Signed-off-by: Alexey Gerasimenko <x1917x@gmail.com>
Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
---
 tools/firmware/hvmloader/util.c | 17 +++++++++++++++--
 tools/firmware/hvmloader/util.h |  2 ++
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/tools/firmware/hvmloader/util.c b/tools/firmware/hvmloader/util.c
index f9116bea4d..45519ea583 100644
--- a/tools/firmware/hvmloader/util.c
+++ b/tools/firmware/hvmloader/util.c
@@ -885,8 +885,21 @@ void hvmloader_acpi_build_tables(struct acpi_config *config,
     s = xenstore_read("platform/device-model", "");
     if ( !strncmp(s, "qemu_xen", 9) )
     {
-        config->dsdt_anycpu = dsdt_i440_anycpu_qemu_xen;
-        config->dsdt_anycpu_len = dsdt_i440_anycpu_qemu_xen_len;
+        switch ( machine_type )
+        {
+        case MACHINE_TYPE_Q35:
+            config->dsdt_anycpu = dsdt_q35_anycpu_qemu_xen;
+            config->dsdt_anycpu_len = dsdt_q35_anycpu_qemu_xen_len;
+            break;
+        case MACHINE_TYPE_I440:
+            config->dsdt_anycpu = dsdt_i440_anycpu_qemu_xen;
+            config->dsdt_anycpu_len = dsdt_i440_anycpu_qemu_xen_len;
+            break;
+        default:
+            /* Not likely to happen */
+            BUG();
+        }
+
         config->dsdt_15cpu = NULL;
         config->dsdt_15cpu_len = 0;
     }
diff --git a/tools/firmware/hvmloader/util.h b/tools/firmware/hvmloader/util.h
index 2f37504aca..4641ca0c46 100644
--- a/tools/firmware/hvmloader/util.h
+++ b/tools/firmware/hvmloader/util.h
@@ -393,7 +393,9 @@ bool check_overlap(uint64_t start, uint64_t size,
                    uint64_t reserved_start, uint64_t reserved_size);
 
 extern const unsigned char dsdt_i440_anycpu_qemu_xen[], dsdt_anycpu[], dsdt_15cpu[];
+extern const unsigned char dsdt_q35_anycpu_qemu_xen[];
 extern const int dsdt_i440_anycpu_qemu_xen_len, dsdt_anycpu_len, dsdt_15cpu_len;
+extern const int dsdt_q35_anycpu_qemu_xen_len;
 
 unsigned long acpi_pages_allocated(void);
 
-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:35:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:35:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253908.1549860 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15Tf-0006IC-M8; Fri, 13 Mar 2026 16:35:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253908.1549860; Fri, 13 Mar 2026 16:35:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15Tf-0006I1-IE; Fri, 13 Mar 2026 16:35:07 +0000
Received: by outflank-mailman (input) for mailman id 1253908;
 Fri, 13 Mar 2026 16:35: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=tQrp=BN=bounce.vates.tech=bounce-md_30504962.69b43cb5.v1-73f22918691e4f6590e71139c2bbb6cf@srs-se1.protection.inumbo.net>)
 id 1w15Te-0006Ek-Mi
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:35:06 +0000
Received: from mail134-15.atl141.mandrillapp.com
 (mail134-15.atl141.mandrillapp.com [198.2.134.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 958cdc8b-1efa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:35:03 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-15.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4fXVT156HszPm0PrP
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:35:01 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 73f22918691e4f6590e71139c2bbb6cf; Fri, 13 Mar 2026 16:35: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: 958cdc8b-1efa-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773419701; x=1773689701;
	bh=xkR51huuZGxHmTSzRvJUtjlM0MP/Kew4xYHp0fhpCbg=;
	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=YNiAtf/nxp0NJtbCaQGLI2VrUUiUBaeDLqB3ZduynhWp2LTonNfA9A/Oky/7m/dr6
	 tLer3bn0irCv6unTBWcy5ZWCxI9ho1Af0IYu2KDVR7zylhktrlbAuPj3VBztQwgkIR
	 gU/ZdL/EbnYAOHEqhVRHWsh395nc++FsVQ059wU2x74iXabqDHWDT64a7tiPfiNpHZ
	 cLibmdl4SPAcRgB6ZkanNk+fskL+DUfTI2oXaUg1COCKRr4mnzs+8/3XcWMaaC8E6Y
	 GvlTtko2QUUgGcD/CeoByhJA9vsRYovWFsJeLPwvNiwm5JTFSvc5JDmfTrjEiS3TEX
	 LWYtcc6X6+G6w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773419701; x=1773680201; i=thierry.escande@vates.tech;
	bh=xkR51huuZGxHmTSzRvJUtjlM0MP/Kew4xYHp0fhpCbg=;
	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=aDCJyBCXYWddBWvMz/tk43hGiVkQL1U5pAV1Ibh9eF+MbSUU8CpG7UFonw0PNyaLr
	 MJP/h1AKv1Eb/f59DJfQfwwNzgqUdPexZgpdxyCHsUUzWz/50uRMfqScLxg5xAq9Rd
	 YLC8b8BTe4f9itCS3vcrj4O59LoCNCI71rNVAaO5w26x3hBsgsdmVhSRTzGJwv03zo
	 1pevTZSlZQ1b0LzWXYlarkXpMQ9IaWjWcXRmDeRg4J8pQKsT4DAsu6P5oJ0YMdw2FF
	 BK6FPTtEN5jMpom8Pr6EL2Resjc7faV1MQhjU5Ov/TXU2r9ad+Mm1Zo6D3L044IcSm
	 ZZ3+82MzfuTNg==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=2001/17]=20libacpi:=20Split=20dsdt.asl=20file=20and=20extract=20i440=20specific=20parts?=
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: 1773419700638
To: xen-devel@lists.xenproject.org
Cc: "Thierry Escande" <thierry.escande@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>
Message-Id: <20260313163455.790692-2-thierry.escande@vates.tech>
In-Reply-To: <20260313163455.790692-1-thierry.escande@vates.tech>
References: <20260313163455.790692-1-thierry.escande@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.73f22918691e4f6590e71139c2bbb6cf?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:35:01 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

In order to factorize the common parts between i440 and q35 dsdt files,
this patch splits dsdt.asl and put the i440 specific parts into
dsdt_i400.asl.

This also makes use of #include directives instead of file
concatenations to build the asl files.

Also, the anycpu asl files generation makes use of makefile pattern
rules to avoid duplication for i440 and q35.

Becuase the LPC controller BDF (which differs between i440 and q35) must
be set at device declaration, it is still set in dsdt.asl by checking
for a MACHINE_TYPE_I440 macro defined in dsdt_i400.asl.

Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
---
 tools/firmware/hvmloader/Makefile  |  2 +-
 tools/firmware/hvmloader/ovmf.c    |  4 ++--
 tools/firmware/hvmloader/seabios.c |  4 ++--
 tools/firmware/hvmloader/util.c    |  4 ++--
 tools/firmware/hvmloader/util.h    |  4 ++--
 tools/libacpi/Makefile             | 10 ++++-----
 tools/libacpi/dsdt.asl             | 25 ++++-----------------
 tools/libacpi/dsdt_i440.asl        | 36 ++++++++++++++++++++++++++++++
 8 files changed, 53 insertions(+), 36 deletions(-)
 create mode 100644 tools/libacpi/dsdt_i440.asl

diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile
index 21de72187d..bdc33a877f 100644
--- a/tools/firmware/hvmloader/Makefile
+++ b/tools/firmware/hvmloader/Makefile
@@ -78,7 +78,7 @@ rombios.o: roms.inc
 smbios.o: CFLAGS += -D__SMBIOS_DATE__="\"$(SMBIOS_REL_DATE)\""
 
 ACPI_PATH = ../../libacpi
-DSDT_FILES += dsdt_anycpu_qemu_xen.c
+DSDT_FILES += dsdt_i440_anycpu_qemu_xen.c
 ACPI_OBJS = $(patsubst %.c,%.o,$(DSDT_FILES)) build.o static_tables.o
 $(ACPI_OBJS): CFLAGS += -iquote . -DLIBACPI_STDUTILS=\"$(CURDIR)/util.h\"
 CFLAGS += -I$(ACPI_PATH)
diff --git a/tools/firmware/hvmloader/ovmf.c b/tools/firmware/hvmloader/ovmf.c
index 23610a0717..d264a50c73 100644
--- a/tools/firmware/hvmloader/ovmf.c
+++ b/tools/firmware/hvmloader/ovmf.c
@@ -119,8 +119,8 @@ static void ovmf_load(const struct bios_config *config,
 static void ovmf_acpi_build_tables(void)
 {
     struct acpi_config config = {
-        .dsdt_anycpu = dsdt_anycpu_qemu_xen,
-        .dsdt_anycpu_len = dsdt_anycpu_qemu_xen_len,
+        .dsdt_anycpu = dsdt_i440_anycpu_qemu_xen,
+        .dsdt_anycpu_len = dsdt_i440_anycpu_qemu_xen_len,
         .dsdt_15cpu = NULL, 
         .dsdt_15cpu_len = 0
     };
diff --git a/tools/firmware/hvmloader/seabios.c b/tools/firmware/hvmloader/seabios.c
index 444d118ddb..74b0406b5a 100644
--- a/tools/firmware/hvmloader/seabios.c
+++ b/tools/firmware/hvmloader/seabios.c
@@ -90,8 +90,8 @@ static void seabios_acpi_build_tables(void)
 {
     uint32_t rsdp = (uint32_t)scratch_alloc(sizeof(struct acpi_20_rsdp), 0);
     struct acpi_config config = {
-        .dsdt_anycpu = dsdt_anycpu_qemu_xen,
-        .dsdt_anycpu_len = dsdt_anycpu_qemu_xen_len,
+        .dsdt_anycpu = dsdt_i440_anycpu_qemu_xen,
+        .dsdt_anycpu_len = dsdt_i440_anycpu_qemu_xen_len,
         .dsdt_15cpu = NULL,
         .dsdt_15cpu_len = 0,
     };
diff --git a/tools/firmware/hvmloader/util.c b/tools/firmware/hvmloader/util.c
index e651342681..f1ed1eb48d 100644
--- a/tools/firmware/hvmloader/util.c
+++ b/tools/firmware/hvmloader/util.c
@@ -843,8 +843,8 @@ void hvmloader_acpi_build_tables(struct acpi_config *config,
     s = xenstore_read("platform/device-model", "");
     if ( !strncmp(s, "qemu_xen", 9) )
     {
-        config->dsdt_anycpu = dsdt_anycpu_qemu_xen;
-        config->dsdt_anycpu_len = dsdt_anycpu_qemu_xen_len;
+        config->dsdt_anycpu = dsdt_i440_anycpu_qemu_xen;
+        config->dsdt_anycpu_len = dsdt_i440_anycpu_qemu_xen_len;
         config->dsdt_15cpu = NULL;
         config->dsdt_15cpu_len = 0;
     }
diff --git a/tools/firmware/hvmloader/util.h b/tools/firmware/hvmloader/util.h
index 765a013ddd..3c5eeff5e7 100644
--- a/tools/firmware/hvmloader/util.h
+++ b/tools/firmware/hvmloader/util.h
@@ -381,8 +381,8 @@ extern struct e820map memory_map;
 bool check_overlap(uint64_t start, uint64_t size,
                    uint64_t reserved_start, uint64_t reserved_size);
 
-extern const unsigned char dsdt_anycpu_qemu_xen[], dsdt_anycpu[], dsdt_15cpu[];
-extern const int dsdt_anycpu_qemu_xen_len, dsdt_anycpu_len, dsdt_15cpu_len;
+extern const unsigned char dsdt_i440_anycpu_qemu_xen[], dsdt_anycpu[], dsdt_15cpu[];
+extern const int dsdt_i440_anycpu_qemu_xen_len, dsdt_anycpu_len, dsdt_15cpu_len;
 
 unsigned long acpi_pages_allocated(void);
 
diff --git a/tools/libacpi/Makefile b/tools/libacpi/Makefile
index b21a64c6b4..d3d4bc9543 100644
--- a/tools/libacpi/Makefile
+++ b/tools/libacpi/Makefile
@@ -11,7 +11,7 @@ endif
 
 MK_DSDT = $(ACPI_BUILD_DIR)/mk_dsdt
 
-C_SRC-$(CONFIG_X86) = dsdt_anycpu.c dsdt_15cpu.c dsdt_anycpu_qemu_xen.c dsdt_pvh.c
+C_SRC-$(CONFIG_X86) = dsdt_anycpu.c dsdt_15cpu.c dsdt_i440_anycpu_qemu_xen.c dsdt_pvh.c
 C_SRC-$(CONFIG_ARM_64) = dsdt_anycpu_arm.c
 DSDT_FILES ?= $(C_SRC-y)
 C_SRC = $(addprefix $(ACPI_BUILD_DIR)/, $(DSDT_FILES))
@@ -39,18 +39,16 @@ $(H_SRC): $(ACPI_BUILD_DIR)/%.h: %.asl
 $(MK_DSDT): mk_dsdt.c
 	$(HOSTCC) $(HOSTCFLAGS) $(MKDSDT_CFLAGS-y) $(CFLAGS_xeninclude) -D__XEN_TOOLS__ -o $@ mk_dsdt.c
 
-$(ACPI_BUILD_DIR)/dsdt_anycpu_qemu_xen.asl: dsdt.asl dsdt_acpi_info.asl $(MK_DSDT)
+$(ACPI_BUILD_DIR)/dsdt_%_anycpu_qemu_xen.asl: dsdt_%.asl dsdt.asl dsdt_acpi_info.asl $(MK_DSDT)
 	# Remove last bracket
 	awk 'NR > 1 {print s} {s=$$0}' $< > $@.$(TMP_SUFFIX)
-	cat dsdt_acpi_info.asl >> $@.$(TMP_SUFFIX)
 	$(MK_DSDT) --debug=$(debug) --dm-version qemu-xen >> $@.$(TMP_SUFFIX)
 	mv -f $@.$(TMP_SUFFIX) $@
 
 # NB. awk invocation is a portable alternative to 'head -n -1'
-$(ACPI_BUILD_DIR)/dsdt_%cpu.asl: dsdt.asl dsdt_acpi_info.asl  $(MK_DSDT)
+$(ACPI_BUILD_DIR)/dsdt_%cpu.asl: dsdt_i440.asl dsdt.asl dsdt_acpi_info.asl  $(MK_DSDT)
 	# Remove last bracket
 	awk 'NR > 1 {print s} {s=$$0}' $< > $@.$(TMP_SUFFIX)
-	cat dsdt_acpi_info.asl >> $@.$(TMP_SUFFIX)
 	$(MK_DSDT) --debug=$(debug) --maxcpu $*  >> $@.$(TMP_SUFFIX)
 	mv -f $@.$(TMP_SUFFIX) $@
 
@@ -65,7 +63,7 @@ $(ACPI_BUILD_DIR)/dsdt_anycpu_arm.asl: $(MK_DSDT)
 	mv -f $@.$(TMP_SUFFIX) $@
 
 $(C_SRC): $(ACPI_BUILD_DIR)/%.c: $(ACPI_BUILD_DIR)/%.asl
-	$(IASL) -vs -p $(ACPI_BUILD_DIR)/$*.$(TMP_SUFFIX) -tc $<
+	$(IASL) -vs -I $(CURDIR) -p $(ACPI_BUILD_DIR)/$*.$(TMP_SUFFIX) -tc $<
 	sed -e 's/AmlCode/$*/g' -e 's/_aml_code//g' $(ACPI_BUILD_DIR)/$*.hex > $@.$(TMP_SUFFIX)
 	echo "int $*_len=sizeof($*);" >> $@.$(TMP_SUFFIX)
 	mv -f $@.$(TMP_SUFFIX) $@
diff --git a/tools/libacpi/dsdt.asl b/tools/libacpi/dsdt.asl
index 32b42f85ae..130826fdcc 100644
--- a/tools/libacpi/dsdt.asl
+++ b/tools/libacpi/dsdt.asl
@@ -5,8 +5,6 @@
  * Copyright (c) 2004, Intel Corporation.
  */
 
-DefinitionBlock ("DSDT.aml", "DSDT", 2, "Xen", "HVM", 0)
-{
     Name (\PMBS, 0x0C00)
     Name (\PMLN, 0x08)
     Name (\IOB1, 0x00)
@@ -199,7 +197,10 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, "Xen", "HVM", 0)
 
             Device (ISA)
             {
-                Name (_ADR, 0x00010000) /* device 1, fn 0 */
+                /* Error will be raised if the machine type is not defined */
+                #ifdef MACHINE_TYPE_I440
+                    Name (_ADR, 0x00010000) /* device 1, fn 0 */
+                #endif
 
                 OperationRegion(PIRQ, PCI_Config, 0x60, 0x4)
                 Scope(\) {
@@ -329,23 +330,6 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, "Xen", "HVM", 0)
                     })
                 }
 
-                Device (FDC0)
-                {
-                    Name (_HID, EisaId ("PNP0700"))
-                    Method (_STA, 0, NotSerialized)
-                    {
-                          Return (0x0F)
-                    }
-
-                    Name (_CRS, ResourceTemplate ()
-                    {
-                        IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
-                        IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
-                        IRQNoFlags () {6}
-                        DMA (Compatibility, NotBusMaster, Transfer8) {2}
-                    })
-                }
-
                 Device (UAR1)
                 {
                     Name (_HID, EisaId ("PNP0501"))
@@ -444,4 +428,3 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, "Xen", "HVM", 0)
     Method(_PIC, 1) {
         Store(Arg0, PICD)
     }
-}
diff --git a/tools/libacpi/dsdt_i440.asl b/tools/libacpi/dsdt_i440.asl
new file mode 100644
index 0000000000..e80c454ad9
--- /dev/null
+++ b/tools/libacpi/dsdt_i440.asl
@@ -0,0 +1,36 @@
+/* SPDX-License-Identifier: LGPL-2.1-only */
+/******************************************************************************
+ * DSDT for Xen with Qemu device model (for i440 machine)
+ *
+ * Copyright (c) 2004, Intel Corporation.
+ */
+
+DefinitionBlock ("DSDT.aml", "DSDT", 2, "Xen", "HVM", 0)
+{
+    #define MACHINE_TYPE_I440
+
+    #include "dsdt.asl"
+
+    Scope (\_SB.PCI0.ISA)
+    {
+         Device (FDC0)
+         {
+             Name (_HID, EisaId ("PNP0700"))
+
+             Method (_STA, 0, NotSerialized)
+             {
+                   Return (0x0F)
+             }
+
+             Name (_CRS, ResourceTemplate ()
+             {
+                 IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
+                 IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
+                 IRQNoFlags () {6}
+                 DMA (Compatibility, NotBusMaster, Transfer8) {2}
+             })
+        }
+    }
+
+    #include "dsdt_acpi_info.asl"
+}
-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:35:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:35:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253907.1549855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15Tf-0006F5-ED; Fri, 13 Mar 2026 16:35:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253907.1549855; Fri, 13 Mar 2026 16:35:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15Tf-0006Ey-BI; Fri, 13 Mar 2026 16:35:07 +0000
Received: by outflank-mailman (input) for mailman id 1253907;
 Fri, 13 Mar 2026 16:35: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=6RdW=BN=bounce.vates.tech=bounce-md_30504962.69b43cb6.v1-3400e0b633134c63b4737acb401da8d3@srs-se1.protection.inumbo.net>)
 id 1w15Te-0006Ek-1y
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:35:06 +0000
Received: from mail179-36.suw41.mandrillapp.com
 (mail179-36.suw41.mandrillapp.com [198.2.179.36])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 959554c3-1efa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:35:03 +0100 (CET)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-36.suw41.mandrillapp.com (Mailchimp) with ESMTP id 4fXVT20tXpzlfcYX
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:35:02 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 3400e0b633134c63b4737acb401da8d3; Fri, 13 Mar 2026 16:35: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: 959554c3-1efa-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773419702; x=1773689702;
	bh=ZFode1C11grIE/JKanD6R+1CjHsHBuSPqCWIftB9HSk=;
	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=fFmc8jZsv3oHWELzoOSyw3b6GGkZrB0/Dvc6ayoQWpuVXfi+25ZMr+keBZsclO34/
	 1Tnw57+Qq+WzZilPFVEw8phSCQ/Ao8hlmal3vIjYcYl0IdNEi9EidRiFQl7LGR7IXQ
	 MQsHvlv5KoER3jJllVtqgEubuC5pUTxRf/qZjvdGSv+kxSGokcFj/oX/GRYBfPPZ+J
	 Nbi8Kn3aYorsL//OVvLG9ZIvzxJjr4h8z30Zk4mW4ZaVHGbEeu+KZYFpXRLFf8rEmg
	 Ox3JalRM5fCABhVYDdEzwT5dnVhYhzYlJteOLguAMtdiCuzH6r0ZDSGwBmWDuZHNIE
	 U/MJRq952W7Uw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773419702; x=1773680202; i=thierry.escande@vates.tech;
	bh=ZFode1C11grIE/JKanD6R+1CjHsHBuSPqCWIftB9HSk=;
	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=b4MczgNqHmRiJMLVpSOlr2OCMAYtVQVZWqBlTzi8rKRpQbwzm4zBAh3qFqJEDI/q8
	 DpG1dVL5ak6/PTIr6dJZP+DWHxanjVHOIPOCfMbdLiqB9prKlH/K6mS6yJwyxDeM7N
	 F3fZ6a27RDd5nJ/AgOnNWlegpRP+iINykW8a60nzv0BVWfEVnZWnWUoJe95FUVpAiN
	 /2zl26GcSnlXV67Eo8ji3Hk0ZeUQbMdl9CQT2aJhnWLYs0hihDSIP01zWNwE6JRqZi
	 9kEcoCTEsQpGZnf0hzZvCdCSzSGewsw3g7qMuZAqeenV8CDes2XjR1A+0C/LI1xre5
	 uYhC0x9/8cNRg==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=2002/17]=20libacpi:=20new=20DSDT=20ACPI=20table=20for=20Q35?=
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: 1773419700964
To: xen-devel@lists.xenproject.org
Cc: "Thierry Escande" <thierry.escande@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>, "Alexey Gerasimenko" <x1917x@gmail.com>
Message-Id: <20260313163455.790692-3-thierry.escande@vates.tech>
In-Reply-To: <20260313163455.790692-1-thierry.escande@vates.tech>
References: <20260313163455.790692-1-thierry.escande@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.3400e0b633134c63b4737acb401da8d3?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:35:02 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This patch adds the DSDT table for Q35 (new tools/libacpi/dsdt_q35.asl
file). It only contains the specific Q35 parts that differ from i440).
At the moment, these are:

- BDF location of LPC Controller
- Minor changes related to FDC detection
- Addition of _OSC method to inform OSPM about PCIe features supported

As we are still using 4 PCI router links and their corresponding
device/register addresses are same (offset 0x60), no need to change PCI
routing descriptions.

Note that '15cpu' ACPI tables are only applicable to qemu-traditional
(which have no support for Q35), so we need to use 'anycpu' version only.

Signed-off-by: Alexey Gerasimenko <x1917x@gmail.com>
Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
---
 tools/firmware/hvmloader/Makefile |   2 +-
 tools/libacpi/Makefile            |   2 +-
 tools/libacpi/dsdt.asl            |   3 +
 tools/libacpi/dsdt_q35.asl        | 130 ++++++++++++++++++++++++++++++
 4 files changed, 135 insertions(+), 2 deletions(-)
 create mode 100644 tools/libacpi/dsdt_q35.asl

diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile
index bdc33a877f..99f045efaa 100644
--- a/tools/firmware/hvmloader/Makefile
+++ b/tools/firmware/hvmloader/Makefile
@@ -78,7 +78,7 @@ rombios.o: roms.inc
 smbios.o: CFLAGS += -D__SMBIOS_DATE__="\"$(SMBIOS_REL_DATE)\""
 
 ACPI_PATH = ../../libacpi
-DSDT_FILES += dsdt_i440_anycpu_qemu_xen.c
+DSDT_FILES += dsdt_i440_anycpu_qemu_xen.c dsdt_q35_anycpu_qemu_xen.c
 ACPI_OBJS = $(patsubst %.c,%.o,$(DSDT_FILES)) build.o static_tables.o
 $(ACPI_OBJS): CFLAGS += -iquote . -DLIBACPI_STDUTILS=\"$(CURDIR)/util.h\"
 CFLAGS += -I$(ACPI_PATH)
diff --git a/tools/libacpi/Makefile b/tools/libacpi/Makefile
index d3d4bc9543..e6c4a3fd8b 100644
--- a/tools/libacpi/Makefile
+++ b/tools/libacpi/Makefile
@@ -11,7 +11,7 @@ endif
 
 MK_DSDT = $(ACPI_BUILD_DIR)/mk_dsdt
 
-C_SRC-$(CONFIG_X86) = dsdt_anycpu.c dsdt_15cpu.c dsdt_i440_anycpu_qemu_xen.c dsdt_pvh.c
+C_SRC-$(CONFIG_X86) = dsdt_anycpu.c dsdt_15cpu.c dsdt_i440_anycpu_qemu_xen.c dsdt_q35_anycpu_qemu_xen.c dsdt_pvh.c
 C_SRC-$(CONFIG_ARM_64) = dsdt_anycpu_arm.c
 DSDT_FILES ?= $(C_SRC-y)
 C_SRC = $(addprefix $(ACPI_BUILD_DIR)/, $(DSDT_FILES))
diff --git a/tools/libacpi/dsdt.asl b/tools/libacpi/dsdt.asl
index 130826fdcc..dc764881c9 100644
--- a/tools/libacpi/dsdt.asl
+++ b/tools/libacpi/dsdt.asl
@@ -201,6 +201,9 @@
                 #ifdef MACHINE_TYPE_I440
                     Name (_ADR, 0x00010000) /* device 1, fn 0 */
                 #endif
+                #ifdef MACHINE_TYPE_Q35
+                    Name (_ADR, 0x001f0000) /* device 31, fn 0 */
+                #endif
 
                 OperationRegion(PIRQ, PCI_Config, 0x60, 0x4)
                 Scope(\) {
diff --git a/tools/libacpi/dsdt_q35.asl b/tools/libacpi/dsdt_q35.asl
new file mode 100644
index 0000000000..7cefe63506
--- /dev/null
+++ b/tools/libacpi/dsdt_q35.asl
@@ -0,0 +1,130 @@
+/* SPDX-License-Identifier: LGPL-2.1-only */
+/******************************************************************************
+ * DSDT for Xen with Qemu device model (for Q35 machine)
+ */
+
+DefinitionBlock ("DSDT.aml", "DSDT", 2, "Xen", "HVM", 0)
+{
+    #define MACHINE_TYPE_Q35
+
+    #include "dsdt.asl"
+
+    Scope (\_SB.PCI0)
+    {
+       /* _OSC, modified from ASL sample in ACPI spec */
+       Name (SUPP, 0) /* PCI _OSC Support Field value */
+       Name (CTRL, 0) /* PCI _OSC Control Field value */
+       Method (_OSC, 4) {
+           /* Create DWORD-addressable fields from the Capabilities Buffer */
+           CreateDWordField (Arg3, 0, CDW1)
+
+           /* Switch by UUID.
+            * Only PCI Host Bridge Device capabilities UUID used for now
+            */
+           If (LEqual (Arg0, ToUUID ("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) {
+               /* Create DWORD-addressable fields from the Capabilities Buffer */
+               CreateDWordField (Arg3, 4, CDW2)
+               CreateDWordField (Arg3, 8, CDW3)
+
+               /* Save Capabilities DWORD2 & 3 */
+               Store (CDW2, SUPP)
+               Store (CDW3, CTRL)
+
+               /* Validate Revision DWORD */
+               If (LNotEqual (Arg1, One)) {
+                   /* Unknown revision */
+                   /* Support and Control DWORDs will be returned anyway */
+                   Or (CDW1, 0x08, CDW1)
+               }
+
+               /* Control field bits are:
+                * bit 0    PCI Express Native Hot Plug control
+                * bit 1    SHPC Native Hot Plug control
+                * bit 2    PCI Express Native Power Management Events control
+                * bit 3    PCI Express Advanced Error Reporting control
+                * bit 4    PCI Express Capability Structure control
+                */
+
+               /* Always allow native PME, AER (no dependencies)
+                * Never allow SHPC (no SHPC controller in this system)
+                * Do not allow PCIe Capability Structure control for now
+                * Also, ACPI hotplug is used for now instead of PCIe
+                * Native Hot Plug
+                */
+               And (CTRL, 0x0C, CTRL)
+
+               If (LNotEqual (CDW3, CTRL)) {
+                   /* Some of Capabilities bits were masked */
+                   Or (CDW1, 0x10, CDW1)
+               }
+               /* Update DWORD3 in the buffer */
+               Store (CTRL, CDW3)
+           } Else {
+               Or (CDW1, 4, CDW1) /* Unrecognized UUID */
+           }
+           Return (Arg3)
+       }
+       /* end of _OSC */
+    }
+
+    /****************************************************************
+     * LPC ISA bridge
+     ****************************************************************/
+
+    Scope (\_SB.PCI0.ISA)
+    {
+        /*
+         LPC ISA bridge
+
+         PCI Interrupt Routing Register 2 (PIRQE..PIRQH) cannot be
+         used because of existing Xen IRQ limitations (4 PCI links
+         only)
+        */
+
+        /* LPC_I/O: I/O Decode Ranges Register */
+        OperationRegion (LPCD, PCI_Config, 0x80, 0x2)
+        Field (LPCD, AnyAcc, NoLock, Preserve) {
+            COMA,   3,
+                ,   1,
+            COMB,   3,
+
+            Offset(0x01),
+            LPTD,   2,
+                ,   2,
+            FDCD,   2
+        }
+
+        /* LPC_EN: LPC I/F Enables Register */
+        OperationRegion(LPCE, PCI_Config, 0x82, 0x2)
+        Field(LPCE, AnyAcc, NoLock, Preserve) {
+            CAEN,   1,
+            CBEN,   1,
+            LPEN,   1,
+            FDEN,   1
+        }
+
+        Device (FDC0)
+        {
+            Name (_HID, EisaId ("PNP0700"))
+            Method (_STA, 0, NotSerialized)
+            {
+                Store (FDEN, Local0)
+                If (LEqual (Local0, 0)) {
+                    Return (0x00)
+                } Else {
+                    Return (0x0F)
+                }
+           }
+
+           Name (_CRS, ResourceTemplate ()
+           {
+               IO (Decode16, 0x03F2, 0x03F2, 0x00, 0x04)
+               IO (Decode16, 0x03F7, 0x03F7, 0x00, 0x01)
+               IRQNoFlags () {6}
+               DMA (Compatibility, NotBusMaster, Transfer8) {2}
+           })
+        }
+    }
+
+    #include "dsdt_acpi_info.asl"
+}
-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:35:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:35:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253913.1549907 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15Tj-0007Pr-Ii; Fri, 13 Mar 2026 16:35:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253913.1549907; Fri, 13 Mar 2026 16:35:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15Tj-0007PE-B4; Fri, 13 Mar 2026 16:35:11 +0000
Received: by outflank-mailman (input) for mailman id 1253913;
 Fri, 13 Mar 2026 16:35: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=WDTR=BN=bounce.vates.tech=bounce-md_30504962.69b43cb6.v1-be292d3c77f841e39b0ebfacbd36f6a1@srs-se1.protection.inumbo.net>)
 id 1w15Th-0006Ek-N8
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:35:09 +0000
Received: from mail136-12.atl41.mandrillapp.com
 (mail136-12.atl41.mandrillapp.com [198.2.136.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 95ec48ac-1efa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:35:03 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-12.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4fXVT26G1Rz5QlqMM
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:35:02 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 be292d3c77f841e39b0ebfacbd36f6a1; Fri, 13 Mar 2026 16:35: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: 95ec48ac-1efa-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773419702; x=1773689702;
	bh=qbZoeBv8SgU3eWXReXQKgYvL+qyJ7a3Zk9GQ6xJBpd4=;
	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=0WwwoKl5Gg/CHOMM9d7EBMCDk3yE9YP2PwHUU/ZBrkTr2630+XXSVWVUBX7YopKAi
	 7QWFjfczxzdDo+dRgdrGELUxF2+zLVX4e6SR+yvn3QV0Q/4/E95WeM+MKT4hdLrncw
	 Y9hDbSx6Q06xmMPVcPzXsYpX5oHXck2MNScbg7KE2iJKc2+amV/GiuCcWrODLQcv8x
	 rFbs8QC3QuEv+krEK7IWf9VzsEeWbCNao77K1SqEOhCDfqDrkR0ydIhhJdWR8G3G7G
	 +sE4Uugh21fnsC5JbU0zEyB4xDOfC2TYZ5dMBV8Slxn8uAN63mwuz1xsy+Nqqx1tGB
	 sOvO6ESEVnSRA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773419702; x=1773680202; i=thierry.escande@vates.tech;
	bh=qbZoeBv8SgU3eWXReXQKgYvL+qyJ7a3Zk9GQ6xJBpd4=;
	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=l9mt3IbMuetvw+obqEF3dVhNccAKFpxQjr7taWJQFUEetrltAOyhs8jY1wheecsmw
	 TsbETwCC+GBgtDNako0VEMJV0DaGIFRgaWf/hd54SjqfBWwwt8DwpU67XMZ9s2iA+A
	 x32KWc7RTkIdrpVIW3mRnSVNkU/cnrfETtA4cGPOXlNF2os0Sn6Gy258SYjYfdzZuN
	 VUBwSkhXM4s4L9MuX25ZYy2eWgXophPT7TFUjwD10sJ3gmh1J65euyzCn8MhwgxnqK
	 Ym5G7rl/UUP9c5AZA0wvXyYPGnaHwXRHnhii5SVv3RaeOQKmHFRiG7MSFBLxFTyTZN
	 p/4gxWcpgI2tg==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=2006/17]=20hvmloader:=20Move=20pci=20devices=20setup=20to=20a=20separate=20function?=
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: 1773419702054
To: xen-devel@lists.xenproject.org
Cc: "Thierry Escande" <thierry.escande@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>
Message-Id: <20260313163455.790692-7-thierry.escande@vates.tech>
In-Reply-To: <20260313163455.790692-1-thierry.escande@vates.tech>
References: <20260313163455.790692-1-thierry.escande@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.be292d3c77f841e39b0ebfacbd36f6a1?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:35:02 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

For readability and code simplification, this patch moves PCI-device
specific initializations out of the pci_setup() function to a new
function class_specific_pci_device_setup().

Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
---
 tools/firmware/hvmloader/pci.c      | 117 +++++++++++++++-------------
 tools/firmware/hvmloader/pci_regs.h |   4 +
 2 files changed, 68 insertions(+), 53 deletions(-)

diff --git a/tools/firmware/hvmloader/pci.c b/tools/firmware/hvmloader/pci.c
index c41c8d946a..a76d051bdf 100644
--- a/tools/firmware/hvmloader/pci.c
+++ b/tools/firmware/hvmloader/pci.c
@@ -84,12 +84,71 @@ static int find_next_rmrr(uint32_t base)
     return next_rmrr;
 }
 
+static void class_specific_pci_device_setup(uint16_t vendor_id,
+                                            uint16_t device_id,
+                                            uint16_t class,
+                                            uint8_t bus,
+                                            uint8_t devfn, uint8_t *vga_devfn)
+{
+    switch ( class )
+    {
+    case PCI_CLASS_DISPLAY_VGA:
+        /* If emulated VGA is found, preserve it as primary VGA. */
+        if ( (vendor_id == 0x1234) && (device_id == 0x1111) )
+        {
+            *vga_devfn = devfn;
+            virtual_vga = VGA_std;
+        }
+        else if ( (vendor_id == 0x1013) && (device_id == 0xb8) )
+        {
+            *vga_devfn = devfn;
+            virtual_vga = VGA_cirrus;
+        }
+        else if ( virtual_vga == VGA_none )
+        {
+            *vga_devfn = devfn;
+            virtual_vga = VGA_pt;
+            if ( vendor_id == 0x8086 )
+            {
+                igd_opregion_pgbase = mem_hole_alloc(IGD_OPREGION_PAGES);
+                /*
+                 * Write the the OpRegion offset to give the opregion
+                 * address to the device model. The device model will trap
+                 * and map the OpRegion at the give address.
+                 */
+                pci_writel(*vga_devfn, PCI_INTEL_OPREGION,
+                           igd_opregion_pgbase << PAGE_SHIFT);
+            }
+        }
+        break;
+    case PCI_CLASS_BRIDGE_OTHER:
+        /* PIIX4 ACPI PM. Special device with special PCI config space. */
+        ASSERT((vendor_id == 0x8086) && (device_id == 0x7113));
+        pci_writew(devfn, 0x20, 0x0000); /* No smb bus IO enable */
+        pci_writew(devfn, 0xd2, 0x0000); /* No smb bus IO enable */
+        pci_writew(devfn, 0x22, 0x0000);
+        pci_writew(devfn, 0x3c, 0x0009); /* Hardcoded IRQ9 */
+        pci_writew(devfn, 0x3d, 0x0001);
+        pci_writel(devfn, 0x40, ACPI_PM1A_EVT_BLK_ADDRESS_V1 | 1);
+        pci_writeb(devfn, 0x80, 0x01); /* enable PM io space */
+        break;
+    case PCI_CLASS_STORAGE_IDE:
+        if ( vendor_id == 0x8086 )
+        {
+            /* Intel ICHs since PIIX3: enable IDE legacy mode. */
+            pci_writew(devfn, 0x40, 0x8000); /* enable IDE0 */
+            pci_writew(devfn, 0x42, 0x8000); /* enable IDE1 */
+        }
+        break;
+    }
+}
+
 void pci_setup(void)
 {
     uint8_t is_64bar, using_64bar, bar64_relocate = 0;
     uint32_t devfn, bar_reg, cmd, bar_data, bar_data_upper;
     uint64_t base, bar_sz, bar_sz_upper, mmio_total = 0;
-    uint32_t vga_devfn = 256;
+    uint8_t vga_devfn = 0xff;
     uint16_t class, vendor_id, device_id;
     unsigned int bar, pin, link, isa_irq;
     uint8_t pci_devfn_decode_type[256] = {};
@@ -170,57 +229,9 @@ void pci_setup(void)
         ASSERT((devfn != PCI_ISA_DEVFN) ||
                ((vendor_id == 0x8086) && (device_id == 0x7000)));
 
-        switch ( class )
-        {
-        case 0x0300:
-            /* If emulated VGA is found, preserve it as primary VGA. */
-            if ( (vendor_id == 0x1234) && (device_id == 0x1111) )
-            {
-                vga_devfn = devfn;
-                virtual_vga = VGA_std;
-            }
-            else if ( (vendor_id == 0x1013) && (device_id == 0xb8) )
-            {
-                vga_devfn = devfn;
-                virtual_vga = VGA_cirrus;
-            }
-            else if ( virtual_vga == VGA_none )
-            {
-                vga_devfn = devfn;
-                virtual_vga = VGA_pt;
-                if ( vendor_id == 0x8086 )
-                {
-                    igd_opregion_pgbase = mem_hole_alloc(IGD_OPREGION_PAGES);
-                    /*
-                     * Write the the OpRegion offset to give the opregion
-                     * address to the device model. The device model will trap 
-                     * and map the OpRegion at the give address.
-                     */
-                    pci_writel(vga_devfn, PCI_INTEL_OPREGION,
-                               igd_opregion_pgbase << PAGE_SHIFT);
-                }
-            }
-            break;
-        case 0x0680:
-            /* PIIX4 ACPI PM. Special device with special PCI config space. */
-            ASSERT((vendor_id == 0x8086) && (device_id == 0x7113));
-            pci_writew(devfn, 0x20, 0x0000); /* No smb bus IO enable */
-            pci_writew(devfn, 0xd2, 0x0000); /* No smb bus IO enable */
-            pci_writew(devfn, 0x22, 0x0000);
-            pci_writew(devfn, 0x3c, 0x0009); /* Hardcoded IRQ9 */
-            pci_writew(devfn, 0x3d, 0x0001);
-            pci_writel(devfn, 0x40, ACPI_PM1A_EVT_BLK_ADDRESS_V1 | 1);
-            pci_writeb(devfn, 0x80, 0x01); /* enable PM io space */
-            break;
-        case 0x0101:
-            if ( vendor_id == 0x8086 )
-            {
-                /* Intel ICHs since PIIX3: enable IDE legacy mode. */
-                pci_writew(devfn, 0x40, 0x8000); /* enable IDE0 */
-                pci_writew(devfn, 0x42, 0x8000); /* enable IDE1 */
-            }
-            break;
-        }
+        class_specific_pci_device_setup(vendor_id, device_id, class,
+                                        0 /* virt_bus support TBD */,
+                                        devfn, &vga_devfn);
 
         /*
          * It is recommended that BAR programming be done whilst decode
@@ -583,7 +594,7 @@ void pci_setup(void)
                           ((pci_hi_mem_start & -pci_hi_mem_start) - 1)) + 1;
     }
 
-    if ( vga_devfn != 256 )
+    if ( vga_devfn != 0xff )
     {
         /*
          * VGA registers live in I/O space so ensure that primary VGA
diff --git a/tools/firmware/hvmloader/pci_regs.h b/tools/firmware/hvmloader/pci_regs.h
index 4d4dc0cd01..c94278855b 100644
--- a/tools/firmware/hvmloader/pci_regs.h
+++ b/tools/firmware/hvmloader/pci_regs.h
@@ -111,6 +111,10 @@
 #define PCI_DEVICE_ID_INTEL_82441        0x1237
 #define PCI_DEVICE_ID_INTEL_Q35_MCH      0x29c0
 
+#define PCI_CLASS_STORAGE_IDE            0x0101
+#define PCI_CLASS_DISPLAY_VGA            0x0300
+#define PCI_CLASS_BRIDGE_OTHER           0x0680
+
 #endif /* __HVMLOADER_PCI_REGS_H__ */
 
 /*
-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:35:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:35:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253911.1549883 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15Th-0006q8-NM; Fri, 13 Mar 2026 16:35:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253911.1549883; Fri, 13 Mar 2026 16: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 1w15Th-0006oJ-GI; Fri, 13 Mar 2026 16:35:09 +0000
Received: by outflank-mailman (input) for mailman id 1253911;
 Fri, 13 Mar 2026 16:35:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rFLP=BN=bounce.vates.tech=bounce-md_30504962.69b43cb6.v1-a80daf2a6a5d488eb90b6254a9f1b77a@srs-se1.protection.inumbo.net>)
 id 1w15Tg-0006Ek-My
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:35:08 +0000
Received: from mail136-12.atl41.mandrillapp.com
 (mail136-12.atl41.mandrillapp.com [198.2.136.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 95a21f94-1efa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:35:03 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-12.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4fXVT21jsdz5QmHBy
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:35:02 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 a80daf2a6a5d488eb90b6254a9f1b77a; Fri, 13 Mar 2026 16:35: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: 95a21f94-1efa-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773419702; x=1773689702;
	bh=EZV6VZwcVdA/V+iWTxOZ0DDZfDnD1N74CpP85tJ1xcs=;
	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=nBTvzgCXtgVPKD443WZh7ijLbsZv+RQ2NglOoLl/d7+/UWjEAbZvpov+QeZGj6Ntj
	 lXsGfAhgbRxLhvQwYTe2fDXufxeOb1hmUGVZTmTmmrAiRmSrt6zNeUwjzKzEx4x3Oc
	 NP7uhuW5V5iVrmGb1fiZAMS+uEq5Kbaf144Owtp3HMaIP20Sqh3HvcstJEGO0YdSxX
	 XdRWmu81ZJfND1bzTQFIJO046ZeGpSGVFC0wYAUaI0PwH5OgQK0SbBg3iQ8gQD2q3/
	 MVzNKU/7V54hIa2nOrPbTagqOikmp9ro8C9duSAkJxEg89QRmOug5forCLuWOwKBFv
	 5308YFMqwVK2g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773419702; x=1773680202; i=thierry.escande@vates.tech;
	bh=EZV6VZwcVdA/V+iWTxOZ0DDZfDnD1N74CpP85tJ1xcs=;
	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=Jg01yOHajDuGeiFFDGKRfwE1G1TxOV9qEttlhxL4WQfH0W5HO1giUTnCYHNBRIHBU
	 yIfpSa1SK21cU/52PhYIAzc5HKt6Ukw4t5QIDUelOPeSXEa6m/44A6bg429fXLnqE7
	 CK+1ZSORo2VFCmP+silLs5/2G0qD8gGhDeHJ4jC7F7QKje/Dp3J9hsmBd1fqDywi+T
	 BDsJt7lYDobAyvzmaO970S5tLsSne+J41DB8HMzl5gii7rJG7KZuH0Hwh3SK+CsQfN
	 DrYuZNPAQTpTfuAg+UmFWvuSLa2vSXVkPd/70vfKW1enQSxwne7K3/D+NdIoa4XeLR
	 Y7PTIfAhvIjvw==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=2003/17]=20hvmloader:=20add=20function=20to=20set=20the=20emulated=20machine=20type=20(i440/Q35)?=
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: 1773419701312
To: xen-devel@lists.xenproject.org
Cc: "Thierry Escande" <thierry.escande@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>, "Alexey Gerasimenko" <x1917x@gmail.com>
Message-Id: <20260313163455.790692-4-thierry.escande@vates.tech>
In-Reply-To: <20260313163455.790692-1-thierry.escande@vates.tech>
References: <20260313163455.790692-1-thierry.escande@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.a80daf2a6a5d488eb90b6254a9f1b77a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:35:02 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This adds a new function init_pc_machine_type() which allows to
determine and set the emulated chipset type. Possible values are
MACHINE_TYPE_I440 and MACHINE_TYPE_Q35 and stored in the global variable
machine_type.

The machine_type variable will be used from multiple places in following
commits.

Signed-off-by: Alexey Gerasimenko <x1917x@gmail.com>
Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
---
 tools/firmware/hvmloader/hvmloader.c |  2 ++
 tools/firmware/hvmloader/pci_regs.h  |  4 +++
 tools/firmware/hvmloader/util.c      | 42 ++++++++++++++++++++++++++++
 tools/firmware/hvmloader/util.h      | 11 ++++++++
 4 files changed, 59 insertions(+)

diff --git a/tools/firmware/hvmloader/hvmloader.c b/tools/firmware/hvmloader/hvmloader.c
index 6d23150fc9..626cc53649 100644
--- a/tools/firmware/hvmloader/hvmloader.c
+++ b/tools/firmware/hvmloader/hvmloader.c
@@ -332,6 +332,8 @@ int main(void)
 
     init_hypercalls();
 
+    init_pc_machine_type();
+
     memory_map_setup();
 
     xenbus_setup();
diff --git a/tools/firmware/hvmloader/pci_regs.h b/tools/firmware/hvmloader/pci_regs.h
index 7bf2d873ab..4d4dc0cd01 100644
--- a/tools/firmware/hvmloader/pci_regs.h
+++ b/tools/firmware/hvmloader/pci_regs.h
@@ -107,6 +107,10 @@
 
 #define PCI_INTEL_OPREGION 0xfc /* 4 bits */
 
+#define PCI_VENDOR_ID_INTEL              0x8086
+#define PCI_DEVICE_ID_INTEL_82441        0x1237
+#define PCI_DEVICE_ID_INTEL_Q35_MCH      0x29c0
+
 #endif /* __HVMLOADER_PCI_REGS_H__ */
 
 /*
diff --git a/tools/firmware/hvmloader/util.c b/tools/firmware/hvmloader/util.c
index f1ed1eb48d..f9116bea4d 100644
--- a/tools/firmware/hvmloader/util.c
+++ b/tools/firmware/hvmloader/util.c
@@ -22,6 +22,7 @@
 #include "hypercall.h"
 #include "ctype.h"
 #include "vnuma.h"
+#include "pci_regs.h"
 #include <acpi2_0.h>
 #include <libacpi.h>
 #include <stdint.h>
@@ -648,6 +649,47 @@ void __bug(const char *file, int line)
     crash();
 }
 
+machine_type_t machine_type;
+
+void init_pc_machine_type(void)
+{
+    uint16_t vendor_id;
+    uint16_t device_id;
+
+    if ( machine_type != MACHINE_TYPE_UNDEFINED )
+        return;
+
+    vendor_id = pci_readw(0, PCI_VENDOR_ID);
+    device_id = pci_readw(0, PCI_DEVICE_ID);
+
+    /* only Intel platforms are emulated currently */
+    if ( vendor_id != PCI_VENDOR_ID_INTEL )
+        goto error;
+
+    switch ( device_id )
+    {
+    case PCI_DEVICE_ID_INTEL_82441:
+        machine_type = MACHINE_TYPE_I440;
+        printf("Detected i440 chipset\n");
+        break;
+
+    case PCI_DEVICE_ID_INTEL_Q35_MCH:
+        machine_type = MACHINE_TYPE_Q35;
+        printf("Detected Q35 chipset\n");
+        break;
+
+    default:
+        goto error;
+    }
+
+    return;
+
+error:
+    printf("Unknown emulated chipset encountered, VID=%04Xh, DID=%04Xh\n",
+           vendor_id, device_id);
+    BUG();
+}
+
 static void validate_hvm_info(struct hvm_info_table *t)
 {
     uint8_t *ptr = (uint8_t *)t;
diff --git a/tools/firmware/hvmloader/util.h b/tools/firmware/hvmloader/util.h
index 3c5eeff5e7..2f37504aca 100644
--- a/tools/firmware/hvmloader/util.h
+++ b/tools/firmware/hvmloader/util.h
@@ -170,6 +170,17 @@ void pci_write(uint32_t devfn, uint32_t reg, uint32_t len, uint32_t val);
 #define pci_writew(devfn, reg, val) pci_write(devfn, reg, 2, (uint16_t)(val))
 #define pci_writel(devfn, reg, val) pci_write(devfn, reg, 4, (uint32_t)(val))
 
+/* Emulated machine types */
+typedef enum {
+    MACHINE_TYPE_UNDEFINED = 0,
+    MACHINE_TYPE_I440,
+    MACHINE_TYPE_Q35,
+} machine_type_t;
+
+extern machine_type_t machine_type;
+
+void init_pc_machine_type(void);
+
 /* Get a pointer to the shared-info page */
 struct shared_info *get_shared_info(void) __attribute__ ((const));
 
-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:35:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:35:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253914.1549912 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15Tk-0007VK-1N; Fri, 13 Mar 2026 16:35:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253914.1549912; Fri, 13 Mar 2026 16:35:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15Tj-0007U5-M2; Fri, 13 Mar 2026 16:35:11 +0000
Received: by outflank-mailman (input) for mailman id 1253914;
 Fri, 13 Mar 2026 16:35:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=H/wq=BN=bounce.vates.tech=bounce-md_30504962.69b43cb5.v1-dee8f2259b93467080f6b231169e5ae3@srs-se1.protection.inumbo.net>)
 id 1w15Ti-0006Ek-NG
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:35:10 +0000
Received: from mail179-36.suw41.mandrillapp.com
 (mail179-36.suw41.mandrillapp.com [198.2.179.36])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 95403724-1efa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:35:02 +0100 (CET)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-36.suw41.mandrillapp.com (Mailchimp) with ESMTP id 4fXVT13g0nzlfcWc
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:35:01 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 dee8f2259b93467080f6b231169e5ae3; Fri, 13 Mar 2026 16:35: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: 95403724-1efa-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773419701; x=1773689701;
	bh=REkocrI6Nk2YpoA8OynAjGyLNwNnZKPqQ6VDiOkj00E=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=Q31graVI6AFMeCAtOCGvkHRYQf/+xCA8xFi2Rjrep2kzpBn5xgZ++aGaiwtGaemUa
	 DgGlRI3GTn3mAhhvA6Ymg0GeBZJVlzjroTZoydrVawge2fnnn1cY0NImKYZ7wKDAo0
	 8HQemOGAYRfLVkvXlE/Oczdj9O8io1xcSCFBXZDe+GSuXhzHDBXw/oC/ywGqwJmJNn
	 9nSsAw22rXk9ARvYLhpJZB76kgLX3+Mmzck4k+D7zi8StQgvj9UYDn4Vg8VvE/BiVG
	 bEv/KtLlM8/4jKtwPxOIozWfvVyWPdrTfEXuB68PO++9PcjL9bhCB6l7do3okjCThm
	 Jy0Nwr7k3WX6w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773419701; x=1773680201; i=thierry.escande@vates.tech;
	bh=REkocrI6Nk2YpoA8OynAjGyLNwNnZKPqQ6VDiOkj00E=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=LjklmnpcnUd3nisXU/GCwH0RUgbk4L4Bar+lOQVEKHoJww+laau1dTNDuxiAuQhlZ
	 ogLBptd9v52pinNDvxZDAMuRVtYb2b69QQLdd292lZwBbRxlwZoe/J/V3WLZhgoYXd
	 cMLOBuUgTEUhQlnbmyMlRIwbU70vpWZcHRxpcbD8yC/9FF7cl/X6/HCbgESsntQ0mk
	 mC/zh7ISCUYIKJGQKhVLOg4jIShnrSutJRZuHpSB1S2FfAOXd1P8O/SW2rUCrC7eEJ
	 auPTrEX1ItB6ZI/sQky3v4YYTzeXnDW+0gHJ6zEFYb7h4BYPBBbSVZNQtHN2ukafJK
	 9VP5+yjUxOisg==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=2000/17]=20Q35=20initial=20support=20for=20HVM=20guests?=
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: 1773419700304
To: xen-devel@lists.xenproject.org
Cc: "Thierry Escande" <thierry.escande@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, "Juergen Gross" <jgross@suse.com>
Message-Id: <20260313163455.790692-1-thierry.escande@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.dee8f2259b93467080f6b231169e5ae3?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:35:01 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This series introduces initial Q35 chipset support for HVM guests, based on the
patchset at [1] by Alexey Gerasimenko.

Basic support means that this patchset allows to start an HVM guest that
emulates a Q35 chipset via Qemu and implements access to PCIe extended
configuration space for such devices emulated by Qemu.

Support for PCIe device passthrough is not implemented yet. This is planned but
implies modifications in the hypervisor and the firmwares, mainly for the
support of multiple PCI buses.

In order to create a Q35 guest, a new domain config option has been added,
named 'device_model_machine'. Possible values are:
- "i440" - i440 emulation (default)
- "q35"  - emulate a Q35 machine

If the option is omitted it defaults to "i440", not impacting existing domain
configuration files.

DSDT files for Q35 and i440 are largely similar so the existing file dsdt.asl
has been split with i440 and q35 specific parts put in seperated files.

The PCIe MMCONFIG area is configured by hvmloader and its base address and size
are set in Xen using a new pair of hypercalls HVMOP_get|set_ecam_space. Access
to the MMCONFIG area from a guest is trapped by Xen and transfered to the
emulator as XEN_DMOP_IO_RANGE_PCI ioreq type.

[1] https://lore.kernel.org/xen-devel/cover.1520867740.git.x1917x@gmail.com/

Thierry Escande (17):
  libacpi: Split dsdt.asl file and extract i440 specific parts
  libacpi: new DSDT ACPI table for Q35
  hvmloader: add function to set the emulated machine type (i440/Q35)
  hvmloader: add ACPI enabling for Q35
  hvmloader: add Q35 DSDT table loading
  hvmloader: Move pci devices setup to a separate function
  hvmloader: add basic Q35 support
  hvmloader: Extend PCI BAR struct
  xev/hvm: Add HVMOP_get|set_ecam_space hypercalls
  hvmloader: Add support for HVMOP_set|get_ecam_space hypercalls
  hvmloader: allocate MMCONFIG area in the MMIO hole
  libxl: Q35 support (new option device_model_machine)
  libxl: Add xen-platform device for Q35 machine
  libacpi: build ACPI MCFG table if requested
  hvmloader: Set MCFG in ACPI table
  Handle PCIe ECAM space access from guests
  docs: provide description for device_model_machine option

 docs/man/xl.cfg.5.pod.in             |  27 +++
 tools/firmware/hvmloader/Makefile    |   2 +-
 tools/firmware/hvmloader/config.h    |   5 +
 tools/firmware/hvmloader/e820.c      |  11 ++
 tools/firmware/hvmloader/hvmloader.c |  21 ++-
 tools/firmware/hvmloader/ovmf.c      |   4 +-
 tools/firmware/hvmloader/pci.c       | 264 +++++++++++++++++++--------
 tools/firmware/hvmloader/pci_regs.h  |  16 ++
 tools/firmware/hvmloader/seabios.c   |   4 +-
 tools/firmware/hvmloader/util.c      |  94 +++++++++-
 tools/firmware/hvmloader/util.h      |  21 ++-
 tools/libacpi/Makefile               |  10 +-
 tools/libacpi/acpi2_0.h              |  17 ++
 tools/libacpi/build.c                |  43 +++++
 tools/libacpi/dsdt.asl               |  28 +--
 tools/libacpi/dsdt_i440.asl          |  36 ++++
 tools/libacpi/dsdt_q35.asl           | 130 +++++++++++++
 tools/libacpi/libacpi.h              |   6 +
 tools/libs/light/libxl_dm.c          |  22 ++-
 tools/libs/light/libxl_types.idl     |   7 +
 tools/xl/xl_parse.c                  |  14 ++
 xen/arch/x86/hvm/hvm.c               |  52 ++++++
 xen/arch/x86/hvm/ioreq.c             |  15 ++
 xen/arch/x86/include/asm/domain.h    |   4 +
 xen/include/public/hvm/hvm_op.h      |  11 ++
 25 files changed, 739 insertions(+), 125 deletions(-)
 create mode 100644 tools/libacpi/dsdt_i440.asl
 create mode 100644 tools/libacpi/dsdt_q35.asl

-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:35:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:35:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253915.1549923 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15Tl-0007wE-98; Fri, 13 Mar 2026 16:35:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253915.1549923; Fri, 13 Mar 2026 16:35: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 1w15Tl-0007uq-5N; Fri, 13 Mar 2026 16:35:13 +0000
Received: by outflank-mailman (input) for mailman id 1253915;
 Fri, 13 Mar 2026 16:35:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+wtC=BN=bounce.vates.tech=bounce-md_30504962.69b43cb7.v1-13f6336bd29a454d82ff99a76d7c914a@srs-se1.protection.inumbo.net>)
 id 1w15Tj-0006Ek-NP
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:35:11 +0000
Received: from mail134-15.atl141.mandrillapp.com
 (mail134-15.atl141.mandrillapp.com [198.2.134.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 978d3106-1efa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:35:06 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-15.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4fXVT32wgCzPm0V3Q
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:35:03 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 13f6336bd29a454d82ff99a76d7c914a; Fri, 13 Mar 2026 16:35: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: 978d3106-1efa-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773419703; x=1773689703;
	bh=XSxhFtwRrj4zOawhkcLVYmXGgE7mrKTe8uCJzHl6uzM=;
	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=GEwEssXItslynmjuKGy/aZ/dAPc+3HTMuIe4WFj28tg7zvdGzahLUIhm1t9Z3kxzF
	 M3z7590meT4QdQPlPmkLno72dANXvcOZBACF6y8O+zdaXSUtt3CPXa5OFaWPDiNyJf
	 wHH6Sm6eKWC+7ySt8ai8FG7o5exOdtHASb6Pa+vviS2eiKa68r+jb7i61USRoBgwtj
	 am8qFRTNvh8LIr3+tjo50NcqAwOowHxgnuezveMjMPh4FnUBmboQgpWnb4TiPEtRUt
	 M6bOna8ce8cEhsM7+EJvJnOO4SKbm9Wrx7+fyDkWqI4iEfbQKrFgFqsdB1n2KpKb/4
	 zcxWF+Uj/6ZUg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773419703; x=1773680203; i=thierry.escande@vates.tech;
	bh=XSxhFtwRrj4zOawhkcLVYmXGgE7mrKTe8uCJzHl6uzM=;
	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=rIvyUy/+W/ptLxicvQIJmGkXSGZisW0Y8CyCAW64IANEbmAc8T8i+VNPEUBBe5N64
	 ja8Z2g3JtRNeN83hGX50x/Q7PBaRuALnaSY+4Rw3daOngxsRCaWSC+my6IdPvr44A9
	 cnKwxQcu1CZCXYdsiDEqFbJx6zybsxuTRviNJUVxuBlboug7eFIbplFAJKx7LnA6NA
	 8jd8nt6pg5i4EbudOLDP/NCXDHlm2pHNUEGCusgFRDsLLE7/JfBj9VVcz4C8SqeNOd
	 dxBu0VHDbSvXVeHc62C7KSM6OC0GA5ctcFVhyhWGTva0BiAPNXltZe8hyJXKdmejR2
	 X0qtlj41R7CeQ==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=2007/17]=20hvmloader:=20add=20basic=20Q35=20support?=
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: 1773419702314
To: xen-devel@lists.xenproject.org
Cc: "Thierry Escande" <thierry.escande@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>, "Alexey Gerasimenko" <x1917x@gmail.com>
Message-Id: <20260313163455.790692-8-thierry.escande@vates.tech>
In-Reply-To: <20260313163455.790692-1-thierry.escande@vates.tech>
References: <20260313163455.790692-1-thierry.escande@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.13f6336bd29a454d82ff99a76d7c914a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:35:03 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

The current hvmloader implementation assumes a fixed PCI-to-ISA bridge
at 00:01.0 (PIIX3). This patch introduces support for the ICH9 LPC
bridge used in Q35 machine types, which resides at 00:1f.0.

It also initializes PIRQA...{PIRQD, PIRQH} routing accordingly to the
emulated south bridge (either located on PCI_ISA_DEVFN or
PCI_ICH9_LPC_DEVFN).

Signed-off-by: Alexey Gerasimenko <x1917x@gmail.com>
Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
---
 tools/firmware/hvmloader/config.h   |  1 +
 tools/firmware/hvmloader/pci.c      | 34 ++++++++++++++++++++++++-----
 tools/firmware/hvmloader/pci_regs.h |  1 +
 3 files changed, 31 insertions(+), 5 deletions(-)

diff --git a/tools/firmware/hvmloader/config.h b/tools/firmware/hvmloader/config.h
index c159db30ee..baaed91c7f 100644
--- a/tools/firmware/hvmloader/config.h
+++ b/tools/firmware/hvmloader/config.h
@@ -54,6 +54,7 @@ extern uint32_t *cpu_to_apicid;
 
 #define PCI_ISA_DEVFN       0x08    /* dev 1, fn 0 */
 #define PCI_ISA_IRQ_MASK    0x0c20U /* ISA IRQs 5,10,11 are PCI connected */
+#define PCI_ICH9_LPC_DEVFN  0xf8    /* dev 31, fn 0 */
 
 #define ACPI_TIS_HDR_ADDRESS 0xFED40F00UL
 
diff --git a/tools/firmware/hvmloader/pci.c b/tools/firmware/hvmloader/pci.c
index a76d051bdf..91c7fd2171 100644
--- a/tools/firmware/hvmloader/pci.c
+++ b/tools/firmware/hvmloader/pci.c
@@ -84,6 +84,10 @@ static int find_next_rmrr(uint32_t base)
     return next_rmrr;
 }
 
+#define SCI_EN_IOPORT  (ACPI_PM1A_EVT_BLK_ADDRESS_V1 + 0x30)
+#define GBL_SMI_EN     (1 << 0)
+#define APMC_EN        (1 << 5)
+
 static void class_specific_pci_device_setup(uint16_t vendor_id,
                                             uint16_t device_id,
                                             uint16_t class,
@@ -140,6 +144,17 @@ static void class_specific_pci_device_setup(uint16_t vendor_id,
             pci_writew(devfn, 0x42, 0x8000); /* enable IDE1 */
         }
         break;
+    case PCI_CLASS_BRIDGE_ISA:
+        /* LPC bridge */
+        if ( vendor_id == 0x8086 && device_id == 0x2918 )
+        {
+            pci_writeb(devfn, 0x3c, 0x09); /* Hardcoded IRQ9 */
+            pci_writeb(devfn, 0x3d, 0x01);
+            pci_writel(devfn, 0x40, ACPI_PM1A_EVT_BLK_ADDRESS_V1 | 1);
+            pci_writeb(devfn, 0x44, 0x80); /* enable PM io space */
+            outl(SCI_EN_IOPORT, inl(SCI_EN_IOPORT) | GBL_SMI_EN | APMC_EN);
+        }
+        break;
     }
 }
 
@@ -152,6 +167,7 @@ void pci_setup(void)
     uint16_t class, vendor_id, device_id;
     unsigned int bar, pin, link, isa_irq;
     uint8_t pci_devfn_decode_type[256] = {};
+    int is_running_on_q35 = (machine_type == MACHINE_TYPE_Q35);
 
     /* Resources assignable to PCI devices via BARs. */
     struct resource {
@@ -209,7 +225,16 @@ void pci_setup(void)
     {
         do { isa_irq = (isa_irq + 1) & 15;
         } while ( !(PCI_ISA_IRQ_MASK & (1U << isa_irq)) );
-        pci_writeb(PCI_ISA_DEVFN, 0x60 + link, isa_irq);
+
+        if ( is_running_on_q35 )
+        {
+            pci_writeb(PCI_ICH9_LPC_DEVFN, 0x60 + link, isa_irq);
+        }
+        else
+        {
+            pci_writeb(PCI_ISA_DEVFN, 0x60 + link, isa_irq);
+        }
+
         printf("PCI-ISA link %u routed to IRQ%u\n", link, isa_irq);
     }
 
@@ -226,9 +251,6 @@ void pci_setup(void)
         if ( (vendor_id == 0xffff) && (device_id == 0xffff) )
             continue;
 
-        ASSERT((devfn != PCI_ISA_DEVFN) ||
-               ((vendor_id == 0x8086) && (device_id == 0x7000)));
-
         class_specific_pci_device_setup(vendor_id, device_id, class,
                                         0 /* virt_bus support TBD */,
                                         devfn, &vga_devfn);
@@ -362,7 +384,9 @@ void pci_setup(void)
         {
             /* This is the barber's pole mapping used by Xen. */
             link = ((pin - 1) + (devfn >> 3)) & 3;
-            isa_irq = pci_readb(PCI_ISA_DEVFN, 0x60 + link);
+            isa_irq = pci_readb(is_running_on_q35 ?
+                                PCI_ICH9_LPC_DEVFN : PCI_ISA_DEVFN,
+                                0x60 + link);
             pci_writeb(devfn, PCI_INTERRUPT_LINE, isa_irq);
             printf("pci dev %02x:%x INT%c->IRQ%u\n",
                    devfn>>3, devfn&7, 'A'+pin-1, isa_irq);
diff --git a/tools/firmware/hvmloader/pci_regs.h b/tools/firmware/hvmloader/pci_regs.h
index c94278855b..d217b8f1a4 100644
--- a/tools/firmware/hvmloader/pci_regs.h
+++ b/tools/firmware/hvmloader/pci_regs.h
@@ -114,6 +114,7 @@
 #define PCI_CLASS_STORAGE_IDE            0x0101
 #define PCI_CLASS_DISPLAY_VGA            0x0300
 #define PCI_CLASS_BRIDGE_OTHER           0x0680
+#define PCI_CLASS_BRIDGE_ISA             0x0601
 
 #endif /* __HVMLOADER_PCI_REGS_H__ */
 
-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:35:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:35:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253916.1549932 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15Tm-00087n-6S; Fri, 13 Mar 2026 16:35:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253916.1549932; Fri, 13 Mar 2026 16: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 1w15Tl-00085C-PG; Fri, 13 Mar 2026 16:35:13 +0000
Received: by outflank-mailman (input) for mailman id 1253916;
 Fri, 13 Mar 2026 16: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=HW2+=BN=bounce.vates.tech=bounce-md_30504962.69b43cb8.v1-ee742bd0e8e04fb0b2288f6f2cdd7ad3@srs-se1.protection.inumbo.net>)
 id 1w15Tk-0006Ek-NW
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:35:12 +0000
Received: from mail136-12.atl41.mandrillapp.com
 (mail136-12.atl41.mandrillapp.com [198.2.136.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 97a09214-1efa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:35:06 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-12.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4fXVT43Vybz5Rb3ST
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:35:04 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 ee742bd0e8e04fb0b2288f6f2cdd7ad3; Fri, 13 Mar 2026 16:35:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 97a09214-1efa-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773419704; x=1773689704;
	bh=9d+OJots/k384GAeF2LH1TnTIC8qi57D6qknmRoe2hc=;
	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=u+P0My+Lkw6MMAr/LeetpFtzceuJWbRpbiUDSNi/JIX5BTkKd2A7MWGC+rbauPLB5
	 5vmZYl3F5iAk/K0/qP7BeVPLcp7t9bVuUkXDhncPpiZZL7vytHZRfqFzAQq66F3c84
	 pOecnHt33RHlj+yvqX4ncRQQG+GhMAyCQ3Gl1CykOT1MZdAJ1h9jL9iIGN5Czc50CM
	 DiEBmzJhRLUhLXtGMcVY98yISSbT2/yDrRxDiCz4FDzIJBdMc0Opdkci5yC5gMNe1o
	 ZO+EhBTSQtuDxAsmSgaxOmEoHJyHH0vTRpQfAHr0KAetmmbQcjSfKuGZqdym5C0e9/
	 JASJaL3D8d9Tg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773419704; x=1773680204; i=thierry.escande@vates.tech;
	bh=9d+OJots/k384GAeF2LH1TnTIC8qi57D6qknmRoe2hc=;
	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=A019VsH6dSG6YnTwJHlebFuP8rlPdNvnhXsEHuBdoEz/A1NI6iN7Yn7KPF3MzRuWf
	 jAOlrvsNBk3tNfZFjv9+PsVZV6lHizg5kyhRVIKpW150YLM6kZNZaKNw64/nGgOfz3
	 4DMBklH+3g2jBrd116azWAqarkMSU8psm2rXvvT43C+4Fn3Eaoz68mXqfMqkekBKUA
	 QidGqWnmARVYsUr8BniRv6uhgdBy/3BbSfG/Lh8ax0gaGMw6XfJWX1bYyo6azODxj0
	 fVmfuF49zm7O9jKZFBSQN5Xm4RW40wYoYlaiDFZE+C67jCfymev2VEP2TBlTW8SANc
	 OmpV8uaahPgWA==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=2011/17]=20hvmloader:=20allocate=20MMCONFIG=20area=20in=20the=20MMIO=20hole?=
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: 1773419703422
To: xen-devel@lists.xenproject.org
Cc: "Thierry Escande" <thierry.escande@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>, "Alexey Gerasimenko" <x1917x@gmail.com>
Message-Id: <20260313163455.790692-12-thierry.escande@vates.tech>
In-Reply-To: <20260313163455.790692-1-thierry.escande@vates.tech>
References: <20260313163455.790692-1-thierry.escande@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.ee742bd0e8e04fb0b2288f6f2cdd7ad3?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:35:04 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

The actual MMCONFIG size depends on the number of PCI buses available
which should be covered by ECAM. Possible options are 64MB, 128MB and
256MB. As Xen is limited to the bus 0 currently, the lowest possible
setting is used (64MB), defined via PCI_MAX_MCFG_BUSES in
hvmloader/config.h. When multiple PCI buses support for Xen will be
implemented, PCI_MAX_MCFG_BUSES may be replaced by a calculation of the
number of buses according to PCI devices enumeration.

The MMCONFIG entry is inserted into bars array in the same manner like
for any other BARs. In this case, the devfn field will point to MCH PCI
device and bar_reg will contain PCIEXBAR register offset. It will be
assigned a slot in the MMIO hole later in a very same way like for plain
PCI BARs, with respect to its size and alignment. At this point, the
actual base address and size of the ECAM space are passed to Xen using
the HVMOP_set_ecam_space hypercall.

Signed-off-by: Alexey Gerasimenko <x1917x@gmail.com>
Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
---
 tools/firmware/hvmloader/config.h   |  4 +++
 tools/firmware/hvmloader/pci.c      | 55 +++++++++++++++++++++++++++++
 tools/firmware/hvmloader/pci_regs.h |  7 ++++
 3 files changed, 66 insertions(+)

diff --git a/tools/firmware/hvmloader/config.h b/tools/firmware/hvmloader/config.h
index baaed91c7f..aa3158bca5 100644
--- a/tools/firmware/hvmloader/config.h
+++ b/tools/firmware/hvmloader/config.h
@@ -55,6 +55,10 @@ extern uint32_t *cpu_to_apicid;
 #define PCI_ISA_DEVFN       0x08    /* dev 1, fn 0 */
 #define PCI_ISA_IRQ_MASK    0x0c20U /* ISA IRQs 5,10,11 are PCI connected */
 #define PCI_ICH9_LPC_DEVFN  0xf8    /* dev 31, fn 0 */
+#define PCI_MCH_DEVFN       0       /* bus 0, dev 0, func 0 */
+
+/* possible values are: 64, 128, 256 */
+#define PCI_MAX_MCFG_BUSES  64
 
 #define ACPI_TIS_HDR_ADDRESS 0xFED40F00UL
 
diff --git a/tools/firmware/hvmloader/pci.c b/tools/firmware/hvmloader/pci.c
index 6e6720adae..54c23ffdd8 100644
--- a/tools/firmware/hvmloader/pci.c
+++ b/tools/firmware/hvmloader/pci.c
@@ -413,6 +413,58 @@ void pci_setup(void)
         pci_devfn_decode_type[devfn] |= PCI_COMMAND_MASTER;
     }
 
+    /*
+     *  Calculate MMCONFIG area size and squeeze it into the bars array
+     *  for assigning a slot in the MMIO hole
+     */
+    if ( is_running_on_q35 )
+    {
+        /* disable PCIEXBAR decoding for now */
+        pci_writel(PCI_MCH_DEVFN, PCI_MCH_PCIEXBAR, 0);
+        pci_writel(PCI_MCH_DEVFN, PCI_MCH_PCIEXBAR + 4, 0);
+
+        switch ( PCI_MAX_MCFG_BUSES )
+        {
+        case 64:
+            bar_data = PCIEXBAR_64_BUSES | PCIEXBAR_ENABLE;
+            bar_sz = MB(64);
+            break;
+
+        case 128:
+            bar_data = PCIEXBAR_128_BUSES | PCIEXBAR_ENABLE;
+            bar_sz = MB(128);
+            break;
+
+        case 256:
+            bar_data = PCIEXBAR_256_BUSES | PCIEXBAR_ENABLE;
+            bar_sz = MB(256);
+            break;
+
+        default:
+            /* unsupported number of buses specified */
+            BUG();
+        }
+
+        addr_mask = ~(bar_sz - 1);
+
+        for ( i = 0; i < nr_bars; i++ )
+            if ( bars[i].bar_sz < bar_sz )
+                break;
+
+        if ( i != nr_bars )
+            memmove(&bars[i+1], &bars[i], (nr_bars-i) * sizeof(*bars));
+
+        bars[i].is_mem    = 1;
+        bars[i].devfn     = PCI_MCH_DEVFN;
+        bars[i].bar_reg   = PCI_MCH_PCIEXBAR;
+        bars[i].bar_sz    = bar_sz;
+        bars[i].addr_mask = addr_mask;
+        bars[i].bar_data  = bar_data;
+
+        mmio_total += bar_sz;
+        nr_bars++;
+    }
+
     if ( mmio_hole_size )
     {
         uint64_t max_ram_below_4g = GB(4) - mmio_hole_size;
@@ -592,6 +644,9 @@ void pci_setup(void)
             }
         }
 
+        if ( bar_reg == PCI_MCH_PCIEXBAR )
+            hvm_set_ecam_space(base, bar_sz);
+
         bar_data |= (uint32_t) (base & bars[i].addr_mask);
         bar_data_upper = (uint32_t)(base >> 32);
         base += bar_sz;
diff --git a/tools/firmware/hvmloader/pci_regs.h b/tools/firmware/hvmloader/pci_regs.h
index d217b8f1a4..86e04f8bbd 100644
--- a/tools/firmware/hvmloader/pci_regs.h
+++ b/tools/firmware/hvmloader/pci_regs.h
@@ -116,6 +116,13 @@
 #define PCI_CLASS_BRIDGE_OTHER           0x0680
 #define PCI_CLASS_BRIDGE_ISA             0x0601
 
+#define PCI_MCH_PCIEXBAR   0x60
+
+#define PCIEXBAR_64_BUSES  0x04
+#define PCIEXBAR_128_BUSES 0x02
+#define PCIEXBAR_256_BUSES 0x00
+#define PCIEXBAR_ENABLE    0x01
+
 #endif /* __HVMLOADER_PCI_REGS_H__ */
 
 /*
-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:35:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:35:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253917.1549943 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15Tn-0008Uu-D0; Fri, 13 Mar 2026 16:35:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253917.1549943; Fri, 13 Mar 2026 16:35: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 1w15Tn-0008SY-7u; Fri, 13 Mar 2026 16:35:15 +0000
Received: by outflank-mailman (input) for mailman id 1253917;
 Fri, 13 Mar 2026 16:35: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=hv33=BN=bounce.vates.tech=bounce-md_30504962.69b43cb7.v1-977f1deb1d244fa8b6af82292b76ac72@srs-se1.protection.inumbo.net>)
 id 1w15Tl-0006Ek-Nd
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:35:13 +0000
Received: from mail134-15.atl141.mandrillapp.com
 (mail134-15.atl141.mandrillapp.com [198.2.134.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9798a939-1efa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:35:06 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-15.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4fXVT35JmGzPm0V3V
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:35:03 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 977f1deb1d244fa8b6af82292b76ac72; Fri, 13 Mar 2026 16:35: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: 9798a939-1efa-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773419703; x=1773689703;
	bh=vBvMj1s8yDbIqTjPGPxPkkkz4nmbCVdKzy+th6j4Qis=;
	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=nW97KB39JLhzIedqNpJLFmUTGNw0mrDbP4riYn684Z+TfnYnnmpZn08mQB9CDv+ct
	 +jMWbH2HdYMkoTsmOyXMzobBGKNCZCPT7nRZ251Cf5Vqn7imPhbF6H2S+UTQf3Hioq
	 HpEdHH96QEIIRluvY/PMEd87nDQUswlDVXsPHyHNWpJR+UzGKnoO13ZQhW6TYYjrhP
	 Z+iMCi8Ber8kb/t2ZomvDzIdYFfPPoByBItzy6i+VJ0naogiCOxIHs3xatn+ztRVbj
	 8lhdCESE9qq22XRPagWOOeEbfe+UVQCES6VZCRAix6U92I4yQ4HLrzh+5UjfZKhJIE
	 aRXvAHlWt6iQw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773419703; x=1773680203; i=thierry.escande@vates.tech;
	bh=vBvMj1s8yDbIqTjPGPxPkkkz4nmbCVdKzy+th6j4Qis=;
	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=mr3OMuMwONIlQMIgUASU69/UPpBr2wwvjoZFyrTQcMwEjthGpYeL3wsN5A6Yy+1Wc
	 yREliV5fA8X1Kbur6XdKOMFbODDEhVKYxVFvSiKAdIcniSQHtfW918CmyZAn/HOcYH
	 kiZiqOyKV7QlL8RqQr7FFfAkMkWBWGdl9uECP2K1D3eNXFCdDGTwtTRRiWADMtlbXs
	 aGpP+Zr7CxDliUOfrdYGLILFtTRCxCzwTHqqTZb18CULxBLQBVDWwGNVBG39Ql/ZiN
	 ibBwGwGnkw4QbIxJaokEFUkQrsIsFixhZWqOyxEmj9XISuf+d2HKRGAYTolKKAWsAr
	 z+GinmlUoqWQA==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=2008/17]=20hvmloader:=20Extend=20PCI=20BAR=20struct?=
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: 1773419702568
To: xen-devel@lists.xenproject.org
Cc: "Thierry Escande" <thierry.escande@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>, "Alexey Gerasimenko" <x1917x@gmail.com>
Message-Id: <20260313163455.790692-9-thierry.escande@vates.tech>
In-Reply-To: <20260313163455.790692-1-thierry.escande@vates.tech>
References: <20260313163455.790692-1-thierry.escande@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.977f1deb1d244fa8b6af82292b76ac72?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:35:03 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

For the upcoming allocation of the MMCONFIG range in MMIO hole, this
patch extends the 'bars' structure to make it universal for any
arbitrary BAR type. Either IO, MMIO, ROM or a chipset-specific resource.

One important new field is addr_mask, which tells which bits of the base
address can (should) be written. Different address types (ROM, MMIO BAR,
PCIEXBAR) will have different addr_mask values.

For every assignable BAR range we store its size, PCI device BDF (devfn
actually) to which it belongs, BAR type (mem/io/mem64) and corresponding
register offset in device PCI conf space.

Also, to reduce code complexity, all long mem/mem64 BAR flags checks are
replaced by simple bars[i] field probing, eg.:
-        if ( (bar_reg == PCI_ROM_ADDRESS) ||
-             ((bar_data & PCI_BASE_ADDRESS_SPACE) ==
-              PCI_BASE_ADDRESS_SPACE_MEMORY) )
+        if ( bars[i].is_mem )

Signed-off-by: Alexey Gerasimenko <x1917x@gmail.com>
Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
---
 tools/firmware/hvmloader/pci.c | 58 ++++++++++++++++++++--------------
 1 file changed, 35 insertions(+), 23 deletions(-)

diff --git a/tools/firmware/hvmloader/pci.c b/tools/firmware/hvmloader/pci.c
index 91c7fd2171..6e6720adae 100644
--- a/tools/firmware/hvmloader/pci.c
+++ b/tools/firmware/hvmloader/pci.c
@@ -160,9 +160,10 @@ static void class_specific_pci_device_setup(uint16_t vendor_id,
 
 void pci_setup(void)
 {
-    uint8_t is_64bar, using_64bar, bar64_relocate = 0;
+    uint8_t is_64bar, using_64bar, bar64_relocate = 0, is_mem;
     uint32_t devfn, bar_reg, cmd, bar_data, bar_data_upper;
     uint64_t base, bar_sz, bar_sz_upper, mmio_total = 0;
+    uint64_t addr_mask;
     uint8_t vga_devfn = 0xff;
     uint16_t class, vendor_id, device_id;
     unsigned int bar, pin, link, isa_irq;
@@ -176,10 +177,13 @@ void pci_setup(void)
 
     /* Create a list of device BARs in descending order of size. */
     struct bars {
-        uint32_t is_64bar;
         uint32_t devfn;
         uint32_t bar_reg;
         uint64_t bar_sz;
+        uint64_t addr_mask; /* which bits of the base address can be written */
+        uint32_t bar_data;  /* initial value - BAR flags here */
+        uint8_t  is_64bar;
+        uint8_t  is_mem;
     } *bars = (struct bars *)scratch_start;
     unsigned int i, nr_bars = 0;
     uint64_t mmio_hole_size = 0;
@@ -278,13 +282,21 @@ void pci_setup(void)
                 bar_reg = PCI_ROM_ADDRESS;
 
             bar_data = pci_readl(devfn, bar_reg);
+
+            is_mem = !!(((bar_data & PCI_BASE_ADDRESS_SPACE) ==
+                       PCI_BASE_ADDRESS_SPACE_MEMORY) ||
+                       (bar_reg == PCI_ROM_ADDRESS));
+
             if ( bar_reg != PCI_ROM_ADDRESS )
             {
-                is_64bar = !!((bar_data & (PCI_BASE_ADDRESS_SPACE |
-                             PCI_BASE_ADDRESS_MEM_TYPE_MASK)) ==
-                             (PCI_BASE_ADDRESS_SPACE_MEMORY |
+                is_64bar = !!(is_mem &&
+                             ((bar_data & PCI_BASE_ADDRESS_MEM_TYPE_MASK) ==
                              PCI_BASE_ADDRESS_MEM_TYPE_64));
+
                 pci_writel(devfn, bar_reg, ~0);
+
+                addr_mask = is_mem ? PCI_BASE_ADDRESS_MEM_MASK
+                                   : PCI_BASE_ADDRESS_IO_MASK;
             }
             else
             {
@@ -292,15 +304,16 @@ void pci_setup(void)
                 pci_writel(devfn, bar_reg,
                            (bar_data | PCI_ROM_ADDRESS_MASK) &
                            ~PCI_ROM_ADDRESS_ENABLE);
+
+                addr_mask = PCI_ROM_ADDRESS_MASK;
             }
+
             bar_sz = pci_readl(devfn, bar_reg);
             pci_writel(devfn, bar_reg, bar_data);
 
             if ( bar_reg != PCI_ROM_ADDRESS )
-                bar_sz &= (((bar_data & PCI_BASE_ADDRESS_SPACE) ==
-                            PCI_BASE_ADDRESS_SPACE_MEMORY) ?
-                           PCI_BASE_ADDRESS_MEM_MASK :
-                           (PCI_BASE_ADDRESS_IO_MASK & 0xffff));
+                bar_sz &= is_mem ? PCI_BASE_ADDRESS_MEM_MASK :
+                                   (PCI_BASE_ADDRESS_IO_MASK & 0xffff);
             else
                 bar_sz &= PCI_ROM_ADDRESS_MASK;
             if (is_64bar) {
@@ -314,6 +327,9 @@ void pci_setup(void)
             if ( bar_sz == 0 )
                 continue;
 
+            /* leave only memtype/enable bits etc */
+            bar_data &= ~addr_mask;
+
             if ( !xenpci_bar_uc &&
                  ((bar_data & PCI_BASE_ADDRESS_SPACE) ==
                    PCI_BASE_ADDRESS_SPACE_MEMORY) &&
@@ -359,16 +375,17 @@ void pci_setup(void)
             if ( i != nr_bars )
                 memmove(&bars[i+1], &bars[i], (nr_bars-i) * sizeof(*bars));
 
-            bars[i].is_64bar = is_64bar;
             bars[i].devfn   = devfn;
             bars[i].bar_reg = bar_reg;
             bars[i].bar_sz  = bar_sz;
+            bars[i].is_64bar  = is_64bar;
+            bars[i].is_mem    = is_mem;
+            bars[i].addr_mask = addr_mask;
+            bars[i].bar_data  = bar_data;
 
             if ( is_64bar && bar_sz > BAR_RELOC_THRESH )
                 bar64_relocate = 1;
-            else if ( ((bar_data & PCI_BASE_ADDRESS_SPACE) ==
-                       PCI_BASE_ADDRESS_SPACE_MEMORY) ||
-                      (bar_reg == PCI_ROM_ADDRESS) )
+            else if ( is_mem )
                 mmio_total += bar_sz;
 
             nr_bars++;
@@ -531,10 +548,10 @@ void pci_setup(void)
         using_64bar = bars[i].is_64bar && bar64_relocate &&
             (mmio_total > (mem_resource.max - mem_resource.base) ||
              bar_sz > BAR_RELOC_THRESH);
-        bar_data = pci_readl(devfn, bar_reg);
 
-        if ( (bar_data & PCI_BASE_ADDRESS_SPACE) ==
-             PCI_BASE_ADDRESS_SPACE_MEMORY )
+        bar_data = bars[i].bar_data;
+
+        if ( bars[i].is_mem )
         {
             /* Mapping high memory if PCI device is 64 bits bar */
             if ( using_64bar ) {
@@ -544,11 +561,9 @@ void pci_setup(void)
                 if ( !pci_hi_mem_start )
                     pci_hi_mem_start = high_mem_resource.base;
                 resource = &high_mem_resource;
-                bar_data &= ~PCI_BASE_ADDRESS_MEM_MASK;
             } 
             else {
                 resource = &mem_resource;
-                bar_data &= ~PCI_BASE_ADDRESS_MEM_MASK;
             }
             if ( bar_sz <= BAR_RELOC_THRESH )
                 mmio_total -= bar_sz;
@@ -556,7 +571,6 @@ void pci_setup(void)
         else
         {
             resource = &io_resource;
-            bar_data &= ~PCI_BASE_ADDRESS_IO_MASK;
         }
 
         base = (resource->base  + bar_sz - 1) & ~(uint64_t)(bar_sz - 1);
@@ -578,7 +592,7 @@ void pci_setup(void)
             }
         }
 
-        bar_data |= (uint32_t)base;
+        bar_data |= (uint32_t) (base & bars[i].addr_mask);
         bar_data_upper = (uint32_t)(base >> 32);
         base += bar_sz;
 
@@ -600,9 +614,7 @@ void pci_setup(void)
                PRIllx_arg(bar_sz),
                bar_data_upper, bar_data);
 			
-        if ( (bar_reg == PCI_ROM_ADDRESS) ||
-             ((bar_data & PCI_BASE_ADDRESS_SPACE) ==
-              PCI_BASE_ADDRESS_SPACE_MEMORY) )
+        if ( bars[i].is_mem )
             pci_devfn_decode_type[devfn] |= PCI_COMMAND_MEMORY;
         else
             pci_devfn_decode_type[devfn] |= PCI_COMMAND_IO;
-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:35:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:35:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253918.1549955 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15To-0000PF-Rt; Fri, 13 Mar 2026 16:35:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253918.1549955; Fri, 13 Mar 2026 16:35: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 1w15To-0000O4-IT; Fri, 13 Mar 2026 16:35:16 +0000
Received: by outflank-mailman (input) for mailman id 1253918;
 Fri, 13 Mar 2026 16:35: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=Uwc8=BN=bounce.vates.tech=bounce-md_30504962.69b43cb7.v1-344d125658814570b3612034e846277e@srs-se1.protection.inumbo.net>)
 id 1w15Tm-0006Ps-NA
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:35:14 +0000
Received: from mail136-12.atl41.mandrillapp.com
 (mail136-12.atl41.mandrillapp.com [198.2.136.12])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 979dae23-1efa-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 17:35:06 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-12.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4fXVT36mzZz5Qkjg4
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:35:03 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 344d125658814570b3612034e846277e; Fri, 13 Mar 2026 16:35: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: 979dae23-1efa-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773419703; x=1773689703;
	bh=SJNwp/e+ZZuXxiujULGF+OAKlHbvuetBMvexQHhjjo8=;
	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=VtsccEyU7+GNTAHs4flCl0OeOQylMdjXtK3xTaGgkOt+kYYO462N6VEtbGvBaPXoU
	 50bUH5TgVxX1ZIM3cPKW61GchWLiBZazkDjJuZ5bL+c+fyLmRf2k3AZPtZIb2NkDLe
	 fDA140diy5tmrsrfRnqA3RVIZocKA2a6sFdK3R1oo9LVb8Y6fnf6BBD53Tb6xV8NhT
	 GzfzQmr8YeakG5WfBeDpby03k5BlRCitz8Y4Y8VAa2bIArVX3HfsU3QGpD5AP5p1p2
	 COQTLeC1mSJzb0hz6mV1bRgLo86pyu/5A3YzEFXC+UCtLS3eRmV+au32lO58yxYVUa
	 akRBQlMlnFn6Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773419703; x=1773680203; i=thierry.escande@vates.tech;
	bh=SJNwp/e+ZZuXxiujULGF+OAKlHbvuetBMvexQHhjjo8=;
	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=lhkiGL07AiVnT6o0YW6293mnSd4WF2oA6yZIZXZaH7eUj250uCYW5OAtKbC7Nr83p
	 nmj9NaOyLkL0EuRONTiFZ2slExNmGAQbSluFxJ4o73DtLxLS4BfWfD38vOZ2R+RCAQ
	 9yA3l+X7Q3ArUQGgGaq9V3J+Z23B9MFJEHjjjQF+eEbtzcYKwP52aVlHM6uSUtJ+u6
	 fl71oFIEI8VChyctmq/bC0AOiHJgP/sFH1Vk+FtX5gKslnYsGdimR+Kg/F0Nk3TIL3
	 Ngbci2xTgcRCvisrb/6x01ms8DljL0fxO/W1CAZTi2aN2Q/84BD5q0ksB75OHwXUTD
	 ibH2w8VBIK9LA==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=2010/17]=20hvmloader:=20Add=20support=20for=20HVMOP=5Fset|get=5Fecam=5Fspace=20hypercalls?=
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: 1773419703166
To: xen-devel@lists.xenproject.org
Cc: "Thierry Escande" <thierry.escande@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>
Message-Id: <20260313163455.790692-11-thierry.escande@vates.tech>
In-Reply-To: <20260313163455.790692-1-thierry.escande@vates.tech>
References: <20260313163455.790692-1-thierry.escande@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.344d125658814570b3612034e846277e?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:35:03 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This patch adds wrappers in hvmloader for the hypercalls used to set and
get the ECAM space base address and size.

Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
---
 tools/firmware/hvmloader/util.c | 26 ++++++++++++++++++++++++++
 tools/firmware/hvmloader/util.h |  4 ++++
 2 files changed, 30 insertions(+)

diff --git a/tools/firmware/hvmloader/util.c b/tools/firmware/hvmloader/util.c
index 45519ea583..ee7a09b5bc 100644
--- a/tools/firmware/hvmloader/util.c
+++ b/tools/firmware/hvmloader/util.c
@@ -690,6 +690,32 @@ error:
     BUG();
 }
 
+int hvm_set_ecam_space(uint64_t addr, uint32_t size)
+{
+    xen_hvm_ecam_space_t ecam;
+
+    ecam.domid = DOMID_SELF;
+    ecam.addr = addr;
+    ecam.size = size;
+    return hypercall_hvm_op(HVMOP_set_ecam_space, &ecam);
+}
+
+int hvm_get_ecam_space(uint64_t *addr, uint32_t *size)
+{
+    struct xen_hvm_ecam_space e = { };
+    int ret;
+
+    e.domid = DOMID_SELF;
+
+    ret = hypercall_hvm_op(HVMOP_get_ecam_space, &e);
+    if ( ret == 0 ) {
+        *addr = e.addr;
+        *size = e.size;
+    }
+
+    return ret;
+}
+
 static void validate_hvm_info(struct hvm_info_table *t)
 {
     uint8_t *ptr = (uint8_t *)t;
diff --git a/tools/firmware/hvmloader/util.h b/tools/firmware/hvmloader/util.h
index 4641ca0c46..f63fdd3fbf 100644
--- a/tools/firmware/hvmloader/util.h
+++ b/tools/firmware/hvmloader/util.h
@@ -403,6 +403,10 @@ struct acpi_config;
 void hvmloader_acpi_build_tables(struct acpi_config *config,
                                  unsigned int physical);
 
+/* Pass ecam space information to Xen */
+int hvm_get_ecam_space(uint64_t *addr, uint32_t *size);
+int hvm_set_ecam_space(uint64_t addr, uint32_t size);
+
 #endif /* __HVMLOADER_UTIL_H__ */
 
 /*
-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:35:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:35:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253919.1549958 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15Tp-0000VB-AP; Fri, 13 Mar 2026 16:35:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253919.1549958; Fri, 13 Mar 2026 16:35:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15Tp-0000TO-2B; Fri, 13 Mar 2026 16:35:17 +0000
Received: by outflank-mailman (input) for mailman id 1253919;
 Fri, 13 Mar 2026 16:35: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=poTc=BN=bounce.vates.tech=bounce-md_30504962.69b43cb9.v1-27f9226dc476489280796f4f05794d27@srs-se1.protection.inumbo.net>)
 id 1w15Tm-0006Ek-Nl
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:35:14 +0000
Received: from mail179-36.suw41.mandrillapp.com
 (mail179-36.suw41.mandrillapp.com [198.2.179.36])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 98d2f523-1efa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:35:08 +0100 (CET)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-36.suw41.mandrillapp.com (Mailchimp) with ESMTP id 4fXVT53gDVzlfjbT
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:35:05 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 27f9226dc476489280796f4f05794d27; Fri, 13 Mar 2026 16:35: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: 98d2f523-1efa-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773419705; x=1773689705;
	bh=peVzH/RSknOHNSKTQdaYXevRTD3ymuxiEuHEUoR9BgM=;
	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=E4iTtJ8OJ+U52Jcmqe6F4/4D2tExf3Njg8tyNOGH/opfEnDxh4V3DdqBHFlkE2BkT
	 LNYjx8uVG2RpsNDlUdo6RktLw3fuNAZlP7nkOPh2vnMIJFJo3BoLlkI271XT+iovI4
	 oCP8cbVbTTVMNS68tAfUPjPjkZh8/3NWoJj+bGnfGOsrBnXalIyP7RucDl18QeCpf6
	 JQ5dMlNeIVaxbWXBrK5Dqjl/8xEfXab206rcNjXzuv82YpKAFBgkktTNEAdB+KAq9V
	 KLLpSnwv+mMAFWIAyjV0J7lRFp0KidcGh0+B/F1mLIM0HBp94ZoSNzDBizIQNOZdLT
	 zpD/7qWCutmZQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773419705; x=1773680205; i=thierry.escande@vates.tech;
	bh=peVzH/RSknOHNSKTQdaYXevRTD3ymuxiEuHEUoR9BgM=;
	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=IAG8VVPYvK2e73qkhrFw4a55QbxAeF4tgwa1P3vkuEuENpJbMTUKozO2PM2rHpPWe
	 NtNq6i8c/u1K4AvnIrMwYrlM5IeZCfkw+I5plnttlBYUfwPzs9UJ5/vonOUBG9/Hbn
	 84tP8B+6d/sz7oPhyTK1yR0cypIQ8M4pfuKl719qIhIEuQAIihJlB6IDMQI5pTte8q
	 ayILS8tgVK9exOEJ9E5vc0m2vqOeVHSDpkjaTp2uBzankU3oqKN9smZ+yS17x0cNcX
	 Pyl6zjDo8lB1hwBs4wtKmPHaoTItPAP55A/gMmQMAccVlyxVPHCeHud6AgBG09O6zS
	 JFF3QHCCPpK5w==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=2004/17]=20hvmloader:=20add=20ACPI=20enabling=20for=20Q35?=
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: 1773419701560
To: xen-devel@lists.xenproject.org
Cc: "Thierry Escande" <thierry.escande@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>, "Alexey Gerasimenko" <x1917x@gmail.com>
Message-Id: <20260313163455.790692-5-thierry.escande@vates.tech>
In-Reply-To: <20260313163455.790692-1-thierry.escande@vates.tech>
References: <20260313163455.790692-1-thierry.escande@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.27f9226dc476489280796f4f05794d27?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:35:05 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

In order to turn on ACPI for OS, we need to write a chipset-specific value
to SMI_CMD register (sort of imitation of the APM->ACPI switch on real
systems). Modify acpi_enable_sci() function to support both i440 and Q35
emulation.

Signed-off-by: Alexey Gerasimenko <x1917x@gmail.com>
Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
---
 tools/firmware/hvmloader/hvmloader.c | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/tools/firmware/hvmloader/hvmloader.c b/tools/firmware/hvmloader/hvmloader.c
index 626cc53649..f6cc3fa4b9 100644
--- a/tools/firmware/hvmloader/hvmloader.c
+++ b/tools/firmware/hvmloader/hvmloader.c
@@ -258,9 +258,24 @@ static const struct bios_config *detect_bios(void)
 static void acpi_enable_sci(void)
 {
     uint8_t pm1a_cnt_val;
+    uint8_t acpi_enable_val;
 
-#define PIIX4_SMI_CMD_IOPORT 0xb2
+#define SMI_CMD_IOPORT       0xb2
 #define PIIX4_ACPI_ENABLE    0xf1
+#define ICH9_ACPI_ENABLE     0x02
+
+    switch ( machine_type )
+    {
+    case MACHINE_TYPE_Q35:
+        acpi_enable_val = ICH9_ACPI_ENABLE;
+        break;
+    case MACHINE_TYPE_I440:
+        acpi_enable_val = PIIX4_ACPI_ENABLE;
+        break;
+    default:
+        /* Not likely to happen */
+        BUG();
+    }
 
     /*
      * PIIX4 emulation in QEMU has SCI_EN=0 by default. We have no legacy
@@ -268,7 +283,7 @@ static void acpi_enable_sci(void)
      */
     pm1a_cnt_val = inb(ACPI_PM1A_CNT_BLK_ADDRESS_V1);
     if ( !(pm1a_cnt_val & ACPI_PM1C_SCI_EN) )
-        outb(PIIX4_SMI_CMD_IOPORT, PIIX4_ACPI_ENABLE);
+        outb(SMI_CMD_IOPORT, acpi_enable_val);
 
     pm1a_cnt_val = inb(ACPI_PM1A_CNT_BLK_ADDRESS_V1);
     BUG_ON(!(pm1a_cnt_val & ACPI_PM1C_SCI_EN));
-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:36:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:36:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253991.1549973 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15VE-00049S-50; Fri, 13 Mar 2026 16:36:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253991.1549973; Fri, 13 Mar 2026 16: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 1w15VE-00049H-1x; Fri, 13 Mar 2026 16:36:44 +0000
Received: by outflank-mailman (input) for mailman id 1253991;
 Fri, 13 Mar 2026 16: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=rc6w=BN=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1w15VC-00040A-RV
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:36: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 cdb9cf81-1efa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:36:37 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by CH2PR03MB5271.namprd03.prod.outlook.com (2603:10b6:610:95::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.17; Fri, 13 Mar
 2026 16:36:27 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9700.015; Fri, 13 Mar 2026
 16: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: cdb9cf81-1efa-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VeJzfOhq0v1nD5dAgUpULM6bHwWcVQpKZcfb6Vlb5xFtngcdpadc+PKT/+I05ny4CY2DLE7SfxLodMGxjKnVPEHXMe2fMhnDEeWVXsmrhLZxGefO+tWph+kozuvy0EOg+wPTSbdAOpFHvCYbxhpav/xzad7knkKKfMBdKBboTYYAuNpS81GX+d2ucsp/gDwkTgiQUdHjIi5lWlEBSnfaqBwaRgb+HkJ8Z/1aoCGs6qKwoeuTUPbR0K6f/lwEBiAYd5IhG4hRTMTY8yw3Z4zu/4QenPWC9wo04FGoF8/BRr7NeZqBxnMI3ngTTzbDfjJ5jeVPOPCyDvgqCjv55ctpJA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rAGJbO//KWTn14NI8yrsqMSsRTI1UMXqBSznXwprmUs=;
 b=gJnpytLYCwFBaRQ+YTeQTBmJgYRChXo69pZ7EUs4A3+jzRmiEd5gjTTBHwKyHxC0Uc7zG5WOcHAbmcuAjGMihgNgLFBqCl58I4p/JDcuyNdf6WPihRoHOiTErwQJMyTK2GQWtLm5jxZjicyKWFgzQJP/R+oUKgLiC0zt1LHdg6MGKdp72Qf2jW+IxlLapWOLnwav3TKCbD7FRf3zFlx4qM3YjI6pIqR/q9kQa5mu7PUYfrujoTDxSdVh36TZWJqmkp+TOtouNgpfZtVLXmV3R83jVaIwssihXpYq1eoWDL91uBuM6YgWWA4H2T3m7RIPPYrsXWT1XBdgueFuWOPKIg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rAGJbO//KWTn14NI8yrsqMSsRTI1UMXqBSznXwprmUs=;
 b=sbLnbOn9BXUI2dh9fBIuNfbFBkNDo4q9FEWyIVmARkSDdVweu7J/CH+Y5DAX9wotx6sNukN5ju4leecW5sw076h+WjLtThdPjSdtTO972iQOaKNP0kgJ63B7D6wPbNqIaMqh4ekNS0/L6GARDDjj0wTwlMLA8iuQ70EKqwDCvDU=
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 v v3 0/7] Remove x86 prefixed names from cpuinfo
Date: Fri, 13 Mar 2026 16:36:23 +0000
Message-ID: <20260313163630.1073019-1-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO2P265CA0312.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a5::36) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|CH2PR03MB5271:EE_
X-MS-Office365-Filtering-Correlation-Id: b78f5879-0b94-43ea-670a-08de811eae8c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	B/+Kdm4iMFsSDcOMpiZ8wF6TnNn+uErPAF5u2lpwuHHg1iqr8ticHRS9Z3HxEgr0GgJlWwuYoXrKREKI79+ubJqeGdlG2yTqZtm4jWhz55CgDjJl9Pog8vXgwahCfpzu5vYWqqr1nAtt4aTuyg722odV3gnmPuzs0QWcVQwQc3xBw91634j5kxoF5V0mZQG4s5SRHmk6MjXX4/qt3Se/EAlaevU0GGwL6MwPAsKIM2s0UUblGUvhce2z2kIYaocJYAgg1V+fCvRbb3ysSs0yXBRSnjGEieJ1rMm3+N1fb3bhm1iHF8dLKZyJsNwjq6+GpAIimGWUuJxZJ/AV/ih1Enn2dO0qyNwLkkkr6hHdX75EqR1Zhp/Ln4f+4lRUvw8XEKaPfRNTie3Fkl6gzAZBp9Cryb9pzMn0xRQbknpB2aj0ZUoLT6+yh70rAMx18JO3t9YFi2qM0cmjc2NHceny5fvao5O0BZKbI47o4r8/1ZX+2GMquAZyhElePOtRBhNZRQdPUNCEih5gy7OpVXUyHctK+/O2RtlgPHDwHoneXpWGHvleZSrU/RIfxFu1a1i6y/uk4sf1pASybiUPYqM7w3rWp9pJs2cRQ9KGvbvQOVXDJj5uTiYPBiEVGcQUhoVziofLfYM3cWA+FoxVYZbKlvxJY2D87OYBDS17AmivFlHi1PM4VnAoHTs2KWuBMWttvX9+le2wyaGmkis6suS1vaF6qjvtD2zV+Q3n8FIdE70=
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)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?WoKMJtn2xwQVXrg6jJHdeIltjbyTePlSP4YmR9WF7d7zqRZdi9ln0MatN6pk?=
 =?us-ascii?Q?x8sDHx8uHCbkv9xHXs1KuIfGJdg0yo4lSN7lfv4ZUZG6IgIk/G4rVqbQR2IE?=
 =?us-ascii?Q?EIEpjdtjFu7JlkUcz109/R4trOBXlM7IrtjGxX96+74yy11Bdq9MdqWgN+e0?=
 =?us-ascii?Q?mj7IJkWtCBqFPPUKCkFYJvzo/l3RavL6hFFBnoPXe9pH9PcKbv0Di29PARt1?=
 =?us-ascii?Q?Y5xANCehHs4CiF+oXEl+2WT8Jf7S7AefX8rCbYeZf+zNBj1Toz/AlG7diE3a?=
 =?us-ascii?Q?aUlog6N6PN74310gW+t082Yp+V6ef6tA14GRL0CYCwDOW6rNkMjZS5Sr9XeE?=
 =?us-ascii?Q?CjuMns6GwogGuRbT3xOlx811KnlP4JUVtxgd8w1JjjCZRmaAoBJoSPsA5ztY?=
 =?us-ascii?Q?EuNN/GelHgxwyuDUZrCgYMBfwaHGfdhsAWmyA3pPUTTyUYY4cX2ajzz3OHJm?=
 =?us-ascii?Q?SU28yv554gbzLDnhtZ9GZi/zAKaeUVc2SoKzNxCP68oeYHkXpFdrPPwAAwDb?=
 =?us-ascii?Q?b0J/4MhDD0Lktf06XYzTctQzclkGpJ7xqrfqSl+V9jq86MI0mKwMWe3sXjKw?=
 =?us-ascii?Q?eIeBvqPgaGqYWWFjR//IoggPG8OTKXDye3lF2o0Qs9fX01HCUW2wNWI7DKe8?=
 =?us-ascii?Q?u1ehnThAcYJCcrh66kVjL7GBmvGXw+VX1XSOMfwtkoqaM/1W7ir5VWG+g8NH?=
 =?us-ascii?Q?bxoE2+m2l6k7bIOW+I3LCSZizRlnfxjvpbGCV5gKnciNQ9hn7kJgWONm8BBA?=
 =?us-ascii?Q?xnV4mezBzQ0VBsS2pgQJn+EQ66KQeyRm58L3JvIH5MGb5BxFfcbQJRvSvJZb?=
 =?us-ascii?Q?AUMJIa8QBK8BeNgXIJ21qWoAdLB5Fb4TYnZ52QEp6D2cpP492jA/0K5cXLdR?=
 =?us-ascii?Q?yKkzTGC4JFcG3uN2zph2vQLS31Ui2ehYz6NKJdHQZSjCN0fF82QAQWnS4fYe?=
 =?us-ascii?Q?2JgaBHbPZdXHke06ZRSVrCOJIriIqCZCHCJDLaCXcsxGjjisJ2Al0n6H8owf?=
 =?us-ascii?Q?hCiU0inSCzce46nQR73rM2CBVQy5w80cPvb7c8VrXxsUFAvDLyRIwcByRtHI?=
 =?us-ascii?Q?9fAVvKVGoErZmn9C3SWj1y6fzE28LFDZaSdePfq2zH736wlC7eYtBvkY+Xap?=
 =?us-ascii?Q?wS+K/VaAk0yCsCgT5gJDwG9H1JARtiHdX+K5CTp0A23SZPkbJDklY+ItCbRs?=
 =?us-ascii?Q?9vt4jqmurUwy6RkycG5Lb1gAYzD9hLzrSOkJfTybL3EjvRpJ8w/KCaUeiBfu?=
 =?us-ascii?Q?ycT/0usbvVgc5yoNH2J4oirwjnCtJBdwQJEClN4Hh3xrKL/FG7i+OgcFdilk?=
 =?us-ascii?Q?ihZHugh0BT0ryZHJ4So5BCm2fLfoXHx2gqwQ+YSEXJaMvhb9IEDAZSQwutH3?=
 =?us-ascii?Q?JUbaaxNaF3YJhRgckIor/rUJ4Jr7hfh5ATrI27WJVu6eqd87gUDO4qVs34hO?=
 =?us-ascii?Q?0W44wKq5dQRdxY02oDMfY28s6UasoyG24yxQS2VZRFlD5FUsTrNQdHX86SJe?=
 =?us-ascii?Q?w/BVBJkhjRyQ/3jGQ2Tr4mnlND6y+5M3MlHZtCxxIkxj36IZ19N2X4dyLHz5?=
 =?us-ascii?Q?scwKmC926P4eXD6AKkbvR7SCR24oH8qHsJis53Wcr6wZTf1Yc6s3lzIY7Tr4?=
 =?us-ascii?Q?LFQe696YyOpgc6iUcE1fYfFxh2ff1QOIuxk7YKyGDqMEy7Z4MantnvEBdLZ8?=
 =?us-ascii?Q?YA3I5O0q/Df+BXCUTNH0dM1t7alDR6EBKkEvy7uiXmnOXPMzPqfrYUvIK5W2?=
 =?us-ascii?Q?ysJab7O49g=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b78f5879-0b94-43ea-670a-08de811eae8c
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Mar 2026 16:36:31.2222
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: DDipIl9JCTAQhHgaAcMGzf7zJIxtoX6zqQYt1LqBmDg+KqjO8fikSqeCigDU1o/yNCW3y8xsqkPMvNbYzsDx0w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5271

Remove x86 prefixed names from cpuinfo and all the places it is used.
This work is part of making Xen safe for Intel family 18/19.

Kevin Lampis (7):
  x86: relax some CPU checks for non-64 bit CPUs
  x86: Remove x86 prefixed names from mcheck code
  x86: Remove x86 prefixed names from acpi code
  x86: Remove Intel 0x65, 0x6e, 0x5d from VMX code
  x86: Remove x86 prefixed names from hvm code
  x86: Remove x86 prefixed names from x86/cpu/ files
  x86: Remove x86 prefixed names from cpuinfo

 xen/arch/x86/acpi/cpu_idle.c           |  21 +-
 xen/arch/x86/acpi/cpufreq/acpi.c       |   2 +-
 xen/arch/x86/acpi/cpufreq/cpufreq.c    |   4 +-
 xen/arch/x86/acpi/cpufreq/powernow.c   |   4 +-
 xen/arch/x86/cpu/centaur.c             |   4 +-
 xen/arch/x86/cpu/hygon.c               |   4 +-
 xen/arch/x86/cpu/intel_cacheinfo.c     |   6 +-
 xen/arch/x86/cpu/mcheck/amd_nonfatal.c |   2 +-
 xen/arch/x86/cpu/mcheck/mcaction.c     |   2 +-
 xen/arch/x86/cpu/mcheck/mce.c          |  36 ++--
 xen/arch/x86/cpu/mcheck/mce.h          |   2 +-
 xen/arch/x86/cpu/mcheck/mce_amd.c      |  16 +-
 xen/arch/x86/cpu/mcheck/mce_intel.c    |   5 +-
 xen/arch/x86/cpu/mcheck/non-fatal.c    |   2 +-
 xen/arch/x86/cpu/mcheck/vmce.c         |   8 +-
 xen/arch/x86/cpu/mtrr/generic.c        |   5 +-
 xen/arch/x86/cpu/mwait-idle.c          |   4 +-
 xen/arch/x86/cpu/vpmu.c                |   4 +-
 xen/arch/x86/cpu/vpmu_amd.c            |   6 +-
 xen/arch/x86/cpu/vpmu_intel.c          |   4 +-
 xen/arch/x86/hvm/hvm.c                 |   2 +-
 xen/arch/x86/hvm/svm/svm.c             |   6 +-
 xen/arch/x86/hvm/vmx/vmcs.c            |   4 +-
 xen/arch/x86/hvm/vmx/vmx.c             | 280 ++++++++++++-------------
 xen/arch/x86/include/asm/cpufeature.h  |  21 +-
 25 files changed, 215 insertions(+), 239 deletions(-)

-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:36:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:36:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253992.1549982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15VF-0004N5-D8; Fri, 13 Mar 2026 16:36:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253992.1549982; Fri, 13 Mar 2026 16: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 1w15VF-0004Ms-9r; Fri, 13 Mar 2026 16:36:45 +0000
Received: by outflank-mailman (input) for mailman id 1253992;
 Fri, 13 Mar 2026 16: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=rc6w=BN=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1w15VE-00040A-MH
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:36: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 d1618e46-1efa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:36:43 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by CH2PR03MB5271.namprd03.prod.outlook.com (2603:10b6:610:95::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.17; Fri, 13 Mar
 2026 16:36:32 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9700.015; Fri, 13 Mar 2026
 16: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: d1618e46-1efa-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qQJlUQS8ehx+pUCBIsVHP8+mSpFc0HTohzg6FKiiI1O0O+WzppWQVrfiF/wSSksRHp7TbqcEAlJ6YPveNf535aqPI6356GflNiAv1ymMI8x8Pb6fsFhQ9hEV5ln9r0MN+2khA55wu7O9w6rjpkr/IfvKGMwY5Vnf7GpBfMw6Rd3hr/XBPSwh2a/ltn+27mdvKlKgWE4zhfFp8XdfT20aXH0EqAH/6QriI+J7UTBaegJ5GNDUj/JsjBxatsnZQ//RHQJc/hHNBVBv+jizM6sJYBPAASRnuDOOsrrOjYiRigWu0+opj6I6uUuEgCjQ7nYVt138VYnV8SfxAq4Ag963FA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uBGZdbGxyCmYWqSQzp9nF0WnQDqrWAjMlDpiE89Jvo8=;
 b=v2GlEE+Gm77nSt812oCUToHLhXxqd3Rbs+JHr9xBaNHVS5IcOR/ezDRTF/MMedRl7sLbIjVzNAHoxir1hnIxuPl7VEjqt+oyBuhLvF90QVeOJpWsTeWDLp/LZCzwcWDn8FEb/gI08p4P2wCtX9sHumD9gTGA/9JYctfZ5NM+8BCcHZ5mZnOi3JNT9eleinM5gsiGI8Rkgb8Oozrm/Eue+gptuzr56F9RDcDoBKSPM6DwOJmxB8iqLFSulbXPR10vHRV+MQ8l3uHCodP/r0CP3p9zi8IzBEFC6K4GwzK1Nar5wP4Zs7eh1f99mGnqRhq8bfh+lzz4iDeYYazlEhJMbw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uBGZdbGxyCmYWqSQzp9nF0WnQDqrWAjMlDpiE89Jvo8=;
 b=y9gjQGcP/Ha/V2CS9KydQH5HNgG7Zvj5jLK0T2bZtUIm9+o2tShnkK6JdQ9pm48hlPzRbMt0kgwzQdgbknGwaMaLpdbDw6EfFfSFapw3Awc4moZ0d5AeOtw4B4gegV+splRrFgA5YF+Vzof/rjv5LuWOVz04PPfXMEMuIbSDogo=
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 v v3 1/7] x86: relax some CPU checks for non-64 bit CPUs
Date: Fri, 13 Mar 2026 16:36:24 +0000
Message-ID: <20260313163630.1073019-2-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20260313163630.1073019-1-kevin.lampis@citrix.com>
References: <20260313163630.1073019-1-kevin.lampis@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO2P265CA0495.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:13a::20) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|CH2PR03MB5271:EE_
X-MS-Office365-Filtering-Correlation-Id: f46e3f2c-a352-4378-27fe-08de811eb16b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	ED95+5zo9HncVDuRw4JCrjo3FvRpDBwJTHkWplIpE6pd+RhVupf6Pp7cqxgDRPh1uVe0F6j9kWCu73tVYhFhSVlVLLQloL6DU8hGRnns6Yu1l7xODfo/7pk5Ccuc7gji2tXaSIG0lvFFEcJmixnlP6T91GOofDuhkOmrNwIHKiFNqxmsklL06C81lT+EWE+7/XIsftHffWhxHstajzh5VlYk9nSuY1Mcmsa9R3LWO+no/i4MjmF/T2ASLyn2t/nCscebcDirEa1wlJLL3Y869a/5p7tO7+JLXjeP15FfBwGPhagkOinNybK4cPwY33Bs+1J5t5nngbw3SNhb84Bohu05HPAdq3QCRXX+RsYJLkPqOjAnU7aOdIHT29wjnvVP9TnpaqDyZsofufgguhBDOwqQwd3H+jt2NX9hZDerLxCXGBaY8i2aDmmu6g44YWklsdaXS6svQ10tiTRfCekho4ywFHdT52xmSjbKqNSnBwB3n/PYjZAL6qQrU/I334komVSgic3r6p0ly1+PuJ9YfJbRRmOIcghJ0+TdiPbjcYz8eCZ42QmLmRdFgcg0KPHOE0P6u+hnM76BLbIFkT5i5tDrrWvGmcFSe6boJi+GYNWiiU2i6+wF6qTAcXiLFPn6fyqDvnBxPmrfLP+rBnt5BvlNTHr7j3Zbs1URpPQrZI7lZE3lSxxzKc1rThFeKPfPSj8a8Xvgd22Y8MS/faoEFa8vkEXhf+RNva6XaTVHi5g=
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)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?W7TdgVj5FCobwCD+AA7jQ38YlCkxN7fs/5wpoXU0o6NWUpt/ihRo+yFrRlaf?=
 =?us-ascii?Q?o34XpKkZ5S6kCTG/r3NUfL4MBgRsKJflfktey3fGZkLiH0B0ewvvdnxXUCai?=
 =?us-ascii?Q?Vd+aFDk8JaeHSbanPiFpgFeqUzOgYEI8SkUt+HHYL4BzFVuQcZ5yZK2y34Ig?=
 =?us-ascii?Q?FeJDI0xwc3ePwkVMj5u+NbtSYyrxSSIx8qeZtjxazLkXO7tm/zW+4czWE8WP?=
 =?us-ascii?Q?72vS7Iy/vCU8YlOC49cLiFAl7iUoLrC08De/0iG4LWY1tdynmKrui4atXuOk?=
 =?us-ascii?Q?3ssB26s8n0EjCbcGyQ1OmE0SON25QazzB441DnaJBkv86s9xbabJFHNemehL?=
 =?us-ascii?Q?8xUg5qr7VEz0NPwv+EVzpXWAzXtYjS/7le1eoHnQ1bFf8psEgURKPIcSMlVB?=
 =?us-ascii?Q?MWj9QJundG3xK+MuQbwucIUyPwygPutx9A8ZK4M6J+jX33pf/D8niVEbOXVH?=
 =?us-ascii?Q?ZPG5In6J/sEyle6vAhSmPskxihYT37SIQZnh9gCM09rk6rRL22lUx/w3LvKA?=
 =?us-ascii?Q?kD+zdXWAmFdCc5fiz745JCiPwO4qbdwiPdR7UfEazWmPN54HJgnMhDeBnM5S?=
 =?us-ascii?Q?PHgjaSLe9j0FfQYs5MpDZkixb3/mf3640D9BOqDy5B1Jrd0AZeZPGfT2o140?=
 =?us-ascii?Q?1plEZH4PehviFLPO6edSdU5MTfDqZA8dwO3S1wJKTNw9gnOwP4Z4pDNFNntL?=
 =?us-ascii?Q?mgAJUEJrg2cFaFS2p4yozAih5xOEeW2xdsP9dYxAfoFB7hZm2xMt1Bl170Lw?=
 =?us-ascii?Q?Jl6zWaUzM9qSw5N/xt1LGQFMurNxzf29EjciUQeDSLvPpBReXUiPmIr0aeW1?=
 =?us-ascii?Q?kVzE+963SsYgoIuW220KwDbOfLE3bH9nv9PDryI8r+dJnEGtYX/LRgnwu6rz?=
 =?us-ascii?Q?hxpLz5xrRr02PP86r90CwbLdk2P9OBsI/og6vDU48kAgdE/0CIfj8rs8+nbZ?=
 =?us-ascii?Q?7N9z7pGIQmmo4E20KP2RFxry8JmFJL9sOUii/FXStSGjukJZiFsZ9yVXKXXf?=
 =?us-ascii?Q?Bqhs2CWLRuX20wPL3aLpvGEKsAtsFH4irD3mdwsBSyAbaRS3yGZyOe01SppE?=
 =?us-ascii?Q?WK+w3qqK8rd9KXArl21ODX0ZMcOOOH85QLsIElYFCJb9W6RZORC+KAyUeyXO?=
 =?us-ascii?Q?MzP7J0e8SHuh9M2nFc1SXl2Bk4+7vjcR7n/hh7TfvCHx48Z0xewseKKhMFTt?=
 =?us-ascii?Q?eLdyqvb3VtRE67sXIaCUVhmcL4E7gN1avnKb38ATiUjqmeLhjhBMLj5jRyaB?=
 =?us-ascii?Q?r81bgLs8uMBHlm0eGppB8wCPn/OUtGlWp6q35GcfcM0rp+dBvX3FebFGPlNf?=
 =?us-ascii?Q?W9uoPweBwR7r0Mw4G9G2YT6miFMZD1V0GTvZxTgQAxp1k7ZL2uPVa/EYnv46?=
 =?us-ascii?Q?CgzBZSFMyh1fDbnEhBTZ2q147eK3rjILotKLWbAniEuP/95eVYYWurvEvCKV?=
 =?us-ascii?Q?vHSTgh4W1ERRG45oN1Mny7wv8MJqfpHkCZaCpU2gQ6RfIa7yyGGcWeAqqDzl?=
 =?us-ascii?Q?KmPq0eFqKmB5tglmwC0r8uvQscU227sXjo0jY5w+HR8Tc4eOOnLApAAWUJfU?=
 =?us-ascii?Q?gA/c6CK0jzOP5cnRJ5K6sI/LZTLR12/uFPrf0T+Ltq+pf7JB6M/idKbsGUj7?=
 =?us-ascii?Q?GkHsoePgjBIozkVC0BXn2jw34btjTs+v77D7LjtBhTF+95R7IT/0ed+jaRco?=
 =?us-ascii?Q?3UnjD+A78S5FagZnSaQbDZ5FCrVdq2LHEKtk+4nJXPxoVsIOA0VrPPPQ9MSp?=
 =?us-ascii?Q?1dy03SEavg=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f46e3f2c-a352-4378-27fe-08de811eb16b
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Mar 2026 16:36: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: TZ0gVouyWtItMtOIzQxFTABxo+PrDUjfXCvM0NcMjFEUADFVppUmTziO/pSFmiLlxJ7G3gR/LsHHIKtkCR9PDA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5271

These checks were guarding against non-64 bit CPU models but they are
not supported by Xen anymore so the checks are no longer needed.

The switch statement was removed from mcheck_init()
to support Intel family 18/19.

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
Changes in v2:
- New patch based on review comments

Changes in v3:
- Moved patch to front of the series
---
 xen/arch/x86/acpi/cpu_idle.c    | 5 ++---
 xen/arch/x86/cpu/mcheck/mce.c   | 8 +-------
 xen/arch/x86/cpu/mtrr/generic.c | 3 +--
 3 files changed, 4 insertions(+), 12 deletions(-)

diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
index 0b3d0631dd..46749ca337 100644
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -1059,9 +1059,8 @@ static void acpi_processor_power_init_bm_check(struct acpi_processor_flags *flag
      * is not required while entering C3 type state on
      * P4, Core and beyond CPUs
      */
-    if ( c->x86_vendor == X86_VENDOR_INTEL &&
-        (c->x86 > 0x6 || (c->x86 == 6 && c->x86_model >= 14)) )
-            flags->bm_control = 0;
+    if ( c->x86_vendor == X86_VENDOR_INTEL )
+        flags->bm_control = 0;
 }
 
 #define VENDOR_INTEL                   (1)
diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
index 9a91807cfb..c4b3b687a2 100644
--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -777,13 +777,7 @@ void mcheck_init(struct cpuinfo_x86 *c, bool bsp)
 
 #ifdef CONFIG_INTEL
     case X86_VENDOR_INTEL:
-        switch ( c->x86 )
-        {
-        case 6:
-        case 15:
-            inited = intel_mcheck_init(c, bsp);
-            break;
-        }
+        inited = intel_mcheck_init(c, bsp);
         break;
 #endif
 
diff --git a/xen/arch/x86/cpu/mtrr/generic.c b/xen/arch/x86/cpu/mtrr/generic.c
index c587e9140e..0ca6a2083f 100644
--- a/xen/arch/x86/cpu/mtrr/generic.c
+++ b/xen/arch/x86/cpu/mtrr/generic.c
@@ -218,8 +218,7 @@ static void __init print_mtrr_state(const char *level)
 			printk("%s  %u disabled\n", level, i);
 	}
 
-	if ((boot_cpu_data.x86_vendor == X86_VENDOR_AMD &&
-	     boot_cpu_data.x86 >= 0xf) ||
+	if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD ||
 	     boot_cpu_data.x86_vendor == X86_VENDOR_HYGON) {
 		uint64_t syscfg, tom2;
 
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:36:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:36:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253993.1549990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15VH-0004cI-JV; Fri, 13 Mar 2026 16:36:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253993.1549990; Fri, 13 Mar 2026 16:36:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15VH-0004c2-Ge; Fri, 13 Mar 2026 16:36:47 +0000
Received: by outflank-mailman (input) for mailman id 1253993;
 Fri, 13 Mar 2026 16:36: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=rc6w=BN=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1w15VG-00040A-Na
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:36:46 +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 d2764de2-1efa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:36:44 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by CH2PR03MB5271.namprd03.prod.outlook.com (2603:10b6:610:95::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.17; Fri, 13 Mar
 2026 16:36:36 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9700.015; Fri, 13 Mar 2026
 16:36: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: d2764de2-1efa-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=P+8w5R6bbjtk9ltBsUD9vjpqPsSlxbpVs7WjEbFjLrojnUhb2xjlR2j776VTh4OixIZXscQh3b1oJKNymLuDDNVv3SSktQDVO05Wwr0HGGw3O5xIJsJGosIVDdMjiSrS7dOeB095tGQNFCG6I2I9Nz1mHmfzK2eIL5Pad/HkGcP3H5VFW8NvNO02Yz/zWHOovyE+Xc/1v5c2a+Mcv1ilSamcnIUUOpAw11OXkCOKR+cGTvXeB7gj4c01vV9a5JvHFF987/oepxeVZEbjTtmu76zUlFq8APN2US9gINB+eqrhEPqSqbqcbfm8/JfccLjzwaeGb4hEtA94wPpPLMP4ew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mbVxtmV6Qv5YAYFByzMFnBP2CUWtNib/VVmLwmUb988=;
 b=lblLao2AccfUN4dul18vK6aw9p5TgW004l6UgOulOCSOgu1joZ4dE8lBZCVxVEIeb8HNYeSvBWAvOeBMTtJOKIbwOEm9vfRuuX11aXiQ4Ln/YRlX+TSrLlCK4glImsBnsDDYJhO7V7kh0MSuSWbaR2weO4AMZc/qFoDuYU+jbhN1IDUJor9w3jR6wAKyMhMVHyvKD9bcp3KThpNLlYhHk8XabGG3C7zQd3rJgvQUI1bO80flVXTcfJhsi7dV/nf5KdCGeh1KsO2wWjj3Vb73ltwb+l7v8z0Amu21G2V48Vo45u3Hxr7k3y6c1QVpGemBr2sLmXL+CCmnG2KiDQJnQQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mbVxtmV6Qv5YAYFByzMFnBP2CUWtNib/VVmLwmUb988=;
 b=MEA9/POROVpXmsZjvgxgWRPVnjBgxg0644WTxkmXCICH2x6wsnvZsAujVzrXtdeEk6CJ176Zgi4zMpA2kOcwJPV83HEROpDwhKGdewhRyqtMDvXxwcEfmA+syZkQf8qK6/RekbZUANlbTGmaEIQ7Ro8uGATpHV7P93/R6B+MhOs=
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 v v3 2/7] x86: Remove x86 prefixed names from mcheck code
Date: Fri, 13 Mar 2026 16:36:25 +0000
Message-ID: <20260313163630.1073019-3-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20260313163630.1073019-1-kevin.lampis@citrix.com>
References: <20260313163630.1073019-1-kevin.lampis@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO2P265CA0484.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:13a::9) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|CH2PR03MB5271:EE_
X-MS-Office365-Filtering-Correlation-Id: d404ed38-6d7d-40b9-eb3f-08de811eb3f5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	7F1TQW57bwjFKfMgxhrsXR78SuRZD3fvzvowm4QX6nGqLRZs/7it+BIZI3FKKIyzl24V96hgkxuhZjAOCGkYoiObZVyIUHeNEFbwtsmhB8X0nrpALPkow9CikLm6nD3gLBy+4qCfBmHnjM8HPWrJOEgZzm3VmixIdFqJHAys2gxWjAudG8TT8LUPzc+6cp9m2GHZ/oKZFoZb0BWix02bxIc7gHBehoEkAxiv+tpAz1LFo9xerP4pzMKtuxYBvwCwrJ97Mpb1ZAiEoenTiU0hf78tNG62hqulmomL+3KA6rQAn4g8UR84IJHH2CU+L1vEvm0ukCzNwQe75S4haz1/lGwPejAi6w8ocPt7TFNnegkI7bqLwrb+yBYwvz4gvRYfvk/wrLQ8l7czcnPqekfOYMdMIiM+OTQiT2VPsUGtr0gc7CR/1wtKttd2iQ997YaiEKpkVT4C9NmvOv4xlgZdjkrV/aC4wOYmouh/gmxZCp5wgM0Oni0tCnCGNMeFGe3FUnT6V31p7JAn0Y02ji4SP1a+HFu1PLB3D/iy/gt1dIO9SEdLsR7Te/DSM4l8V3TNambfHcgweJRbtJZiKJu6EqY2X44Xq34/WClt/uhq72HFw7p0GUJJo51NIqtSzP6hEicGavK+uHaf6D82iCkq/bhqURZwZ8yEIrkysrnAdsY/HhV4B85JfYJJwAqxYQUYrPJYLhojkO8OtLhtaqAqQH1mMN62itwkiJEdywaj9MA=
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)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?I0hTehMrJOxSc24LsWRtBms4RBWGMBjl6mS4PJDIdg1f2phCsmAjggeqfj6f?=
 =?us-ascii?Q?CMdxSjOiYZvXy69MjpIOayjaUZlFDjRP5qArWjex44aTVK0x/Y78TYtos7N8?=
 =?us-ascii?Q?zieWECW9EExaklxVj8Fe8S3G1Pe2uKZuIiri0dOOKI3jDQ9iQl65ibaKnU8m?=
 =?us-ascii?Q?fLETDQX6HhLX+vCNwZ0qmX9ut7U59KkjkGBTB3cRUJOzLJtYPde5zEWVJtMr?=
 =?us-ascii?Q?hDPeCkrGlGlB4IX01yVzukfe0HKz2vjVbM+mWl3II0F/3X7e09fB8NFHf57G?=
 =?us-ascii?Q?jXu6JvELmZxSqybKy0tRr46zbPyJ/vXJ2EKXv/dRtVkrBksx3Qx+MjruXam7?=
 =?us-ascii?Q?l4P3TO/EU9JXTQ+LFnnVR1evxrJ+4ZLhYQjzqPDbEvYwgU/FNsCTaWtV8Yih?=
 =?us-ascii?Q?m9zk6fxXYu88NmQBmZTSNLlehuDJzjaxqdzeBUNimEbDEA30sNXXrTWJNgQc?=
 =?us-ascii?Q?1famdjARVY/NGu7DBOhNYkD0gJZns09+6Cb9yk2wKNE42UdDbNoQa3ZC8jxr?=
 =?us-ascii?Q?9XkBBnZ50LYF71OAjphxdWnwSsDAX5hRcdBG5ylaf1/HsZ1GXSK28SfMh4MG?=
 =?us-ascii?Q?Nhse+WYjbUVMU4sCSU6J7gG6iv1SzQzAnu+b8HVtO69/h1ZsEunnnBFnLFz4?=
 =?us-ascii?Q?RLn0lGCyLeuJapnBeKHoFRlovwzRZI67jmUZNOHpP8WZB9bc2knLe5DRjhns?=
 =?us-ascii?Q?7kiGw3na9MiCv7AGY9fr9ygqBKJZvKXlhpVDz5j+IONo7M9mACKkfD9SzEB9?=
 =?us-ascii?Q?Se43jTBaloYn9M+jMOxO4kHEO+mvt8Qd2RN3niBNhjnGKeSFLl7Y/RfianFy?=
 =?us-ascii?Q?U0+/gsgKR3IovcGoQrlHKv293C0KL9YlKvL3chQ0PYBiFi5+ujiNwXWxUQFb?=
 =?us-ascii?Q?ihcMK4kcso3xK3kdCwgu6AhugdwufK7QJT/cJ3BeIhx/t6NY1Ue13XVNCSag?=
 =?us-ascii?Q?oenXg3+e9UCeCu45cMLqGZkNrRVf30OukuVqYMN3AdMGNQNfKFaQIj+RECQu?=
 =?us-ascii?Q?y39BMM/ovhX7umS3fu8LuV4wvmkbCnz2285sG9mwoLwAUZApmXkhfnzZhj6/?=
 =?us-ascii?Q?9UjTAn3kVH5PZQw3K2CMqkiSbO8OxXIraFc9Jvnrz0vz8k0Q98GJOZL98FzO?=
 =?us-ascii?Q?05HNQMWZYNVzgvU1TTRYKda6WuOPb4VtfBTbbF3+p199q/RWVCUKR858PUxg?=
 =?us-ascii?Q?2DEbzcsr83fzv3o81QjdLVOfCwai6IYcMg95EslAN5VFy7CZdReCyT8ShTCR?=
 =?us-ascii?Q?okHLMKPXfUBzFzjXpRGsszlhWa66hvVX3m3GSkWhA6IjNNZgcUOcFB+TmY5z?=
 =?us-ascii?Q?A/IeIiWkH7kM5cFkfbMWRLrWxyC88Jq762ae3xB83wRLuotBrGVhTFkSNqNA?=
 =?us-ascii?Q?HgBe4Qhu9RB1pfe9mEwxL0vREk1HygfCmMmnBHtkn/Vfdr8NfrQbzHhEIVF+?=
 =?us-ascii?Q?H0LxFYmTmFsEiP2CQ3KZUfuxoCyh2J8vdG8xX2jlsmuCPyA2jZrcdtBilxB7?=
 =?us-ascii?Q?UZ34CLXUn90FifsHFzKqwdsA35x2ICm6BlpbAnyDt/yCfcdRFxNgY66HX5ng?=
 =?us-ascii?Q?Jc8nJ/K3/U9pSmoB9NQOJj52F4H3UioJQgREKL1f8HQqc5M5PPPKsx/a3dvv?=
 =?us-ascii?Q?xVhMPdGkcqit0ku3QQC7rG1h7T7EK3cGlLn6grtTB+7IF9uae+gVAgNGI0iY?=
 =?us-ascii?Q?5IoSUp8ar8MtID4SPmddQVYKZl4f6QtK5f6kGFSuzgKQW4wyBImfhHYS5VuH?=
 =?us-ascii?Q?vkzzMwnwHQ=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d404ed38-6d7d-40b9-eb3f-08de811eb3f5
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Mar 2026 16:36:40.2441
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: HmrzYPO357iTOqQha9SWm7tIG7Qr481LCA4cz3LsvNzeTBtBRwo18QWj8VZyioDpZdeHLbTac/MAnDPpEiO1Aw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5271

struct cpuinfo_x86
  .x86        => .family
  .x86_vendor => .vendor
  .x86_model  => .model
  .x86_mask   => .stepping

No functional change.

This work is part of making Xen safe for Intel family 18/19.

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
Changes in v2:
- Undo the family != 5 check in mcheck_init()
- Change model range check in mce_firstbank()

Changes in v3:
- In check for family != 0xf in mce_is_broadcast()
---
 xen/arch/x86/cpu/mcheck/amd_nonfatal.c |  2 +-
 xen/arch/x86/cpu/mcheck/mcaction.c     |  2 +-
 xen/arch/x86/cpu/mcheck/mce.c          | 28 +++++++++++++-------------
 xen/arch/x86/cpu/mcheck/mce.h          |  2 +-
 xen/arch/x86/cpu/mcheck/mce_amd.c      | 16 +++++++--------
 xen/arch/x86/cpu/mcheck/mce_intel.c    |  5 +----
 xen/arch/x86/cpu/mcheck/non-fatal.c    |  2 +-
 xen/arch/x86/cpu/mcheck/vmce.c         |  8 ++++----
 8 files changed, 31 insertions(+), 34 deletions(-)

diff --git a/xen/arch/x86/cpu/mcheck/amd_nonfatal.c b/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
index 7d48c9ab5f..fb52639e13 100644
--- a/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
+++ b/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
@@ -191,7 +191,7 @@ static void cf_check mce_amd_work_fn(void *data)
 
 void __init amd_nonfatal_mcheck_init(struct cpuinfo_x86 *c)
 {
-	if (!(c->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)))
+	if (!(c->vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)))
 		return;
 
 	/* Assume we are on K8 or newer AMD or Hygon CPU here */
diff --git a/xen/arch/x86/cpu/mcheck/mcaction.c b/xen/arch/x86/cpu/mcheck/mcaction.c
index bf7a0de965..236424569a 100644
--- a/xen/arch/x86/cpu/mcheck/mcaction.c
+++ b/xen/arch/x86/cpu/mcheck/mcaction.c
@@ -101,7 +101,7 @@ mc_memerr_dhandler(struct mca_binfo *binfo,
                       * not always precise. In that case, fallback to broadcast.
                       */
                      global->mc_domid != bank->mc_domid ||
-                     (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
+                     (boot_cpu_data.vendor == X86_VENDOR_INTEL &&
                       (!(global->mc_gstatus & MCG_STATUS_LMCE) ||
                        !(d->vcpu[mc_vcpuid]->arch.vmce.mcg_ext_ctl &
                          MCG_EXT_CTL_LMCE_EN))) )
diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
index c4b3b687a2..2c70964a82 100644
--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -23,6 +23,7 @@
 #include <asm/apic.h>
 #include <asm/msr.h>
 #include <asm/p2m.h>
+#include <asm/intel-family.h>
 
 #include "mce.h"
 #include "barrier.h"
@@ -334,7 +335,7 @@ mcheck_mca_logout(enum mca_source who, struct mca_banks *bankmask,
                 mca_init_global(mc_flags, mig);
                 /* A hook here to get global extended msrs */
                 if ( IS_ENABLED(CONFIG_INTEL) &&
-                     boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+                     boot_cpu_data.vendor == X86_VENDOR_INTEL )
                     intel_get_extended_msrs(mig, mci);
             }
         }
@@ -564,8 +565,7 @@ bool mce_available(const struct cpuinfo_x86 *c)
  */
 unsigned int mce_firstbank(struct cpuinfo_x86 *c)
 {
-    return c->x86 == 6 &&
-           c->x86_vendor == X86_VENDOR_INTEL && c->x86_model < 0x1a;
+    return c->vfm >= INTEL_PENTIUM_PRO && c->vfm < INTEL_NEHALEM_EP;
 }
 
 static int show_mca_info(int inited, struct cpuinfo_x86 *c)
@@ -596,7 +596,7 @@ static int show_mca_info(int inited, struct cpuinfo_x86 *c)
         case mcheck_amd_famXX:
         case mcheck_hygon:
             printk("%s%s Fam%xh machine check reporting enabled\n",
-                   prefix, type_str[inited], c->x86);
+                   prefix, type_str[inited], c->family);
             break;
 
         case mcheck_none:
@@ -766,7 +766,7 @@ void mcheck_init(struct cpuinfo_x86 *c, bool bsp)
     else if ( cpu_bank_alloc(cpu) )
         panic("Insufficient memory for MCE bank allocations\n");
 
-    switch ( c->x86_vendor )
+    switch ( c->vendor )
     {
 #ifdef CONFIG_AMD
     case X86_VENDOR_AMD:
@@ -876,7 +876,7 @@ static void x86_mcinfo_apei_save(
     memset(&m, 0, sizeof(struct mce));
 
     m.cpu = mc_global->mc_coreid;
-    m.cpuvendor = xen2linux_vendor(boot_cpu_data.x86_vendor);
+    m.cpuvendor = xen2linux_vendor(boot_cpu_data.vendor);
     m.cpuid = cpuid_eax(1);
     m.socketid = mc_global->mc_socketid;
     m.apicid = mc_global->mc_apicid;
@@ -977,10 +977,10 @@ static void cf_check __maybe_unused do_mc_get_cpu_info(void *v)
                         &xcp->mc_apicid, &xcp->mc_ncores,
                         &xcp->mc_ncores_active, &xcp->mc_nthreads);
     xcp->mc_cpuid_level = c->cpuid_level;
-    xcp->mc_family = c->x86;
-    xcp->mc_vendor = xen2linux_vendor(c->x86_vendor);
-    xcp->mc_model = c->x86_model;
-    xcp->mc_step = c->x86_mask;
+    xcp->mc_family = c->family;
+    xcp->mc_vendor = xen2linux_vendor(c->vendor);
+    xcp->mc_model = c->model;
+    xcp->mc_step = c->stepping;
     xcp->mc_cache_size = c->x86_cache_size;
     xcp->mc_cache_alignment = c->x86_cache_alignment;
     memcpy(xcp->mc_vendorid, c->x86_vendor_id, sizeof xcp->mc_vendorid);
@@ -1136,7 +1136,7 @@ static bool __maybe_unused x86_mc_msrinject_verify(struct xen_mc_msrinject *mci)
 
         if ( IS_MCA_BANKREG(reg, mci->mcinj_cpunr) )
         {
-            if ( c->x86_vendor == X86_VENDOR_AMD )
+            if ( c->vendor == X86_VENDOR_AMD )
             {
                 /*
                  * On AMD we can set MCi_STATUS_WREN in the
@@ -1171,15 +1171,15 @@ static bool __maybe_unused x86_mc_msrinject_verify(struct xen_mc_msrinject *mci)
             case MSR_F10_MC4_MISC1:
             case MSR_F10_MC4_MISC2:
             case MSR_F10_MC4_MISC3:
-                if ( c->x86_vendor != X86_VENDOR_AMD )
+                if ( c->vendor != X86_VENDOR_AMD )
                     reason = "only supported on AMD";
-                else if ( c->x86 < 0x10 )
+                else if ( c->family < 0x10 )
                     reason = "only supported on AMD Fam10h+";
                 break;
 
             /* MSRs that the HV will take care of */
             case MSR_K8_HWCR:
-                if ( c->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
+                if ( c->vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
                     reason = "HV will operate HWCR";
                 else
                     reason = "only supported on AMD or Hygon";
diff --git a/xen/arch/x86/cpu/mcheck/mce.h b/xen/arch/x86/cpu/mcheck/mce.h
index 920b075355..3b61b12487 100644
--- a/xen/arch/x86/cpu/mcheck/mce.h
+++ b/xen/arch/x86/cpu/mcheck/mce.h
@@ -137,7 +137,7 @@ void x86_mcinfo_dump(struct mc_info *mi);
 
 static inline int mce_vendor_bank_msr(const struct vcpu *v, uint32_t msr)
 {
-    switch (boot_cpu_data.x86_vendor) {
+    switch (boot_cpu_data.vendor) {
     case X86_VENDOR_INTEL:
         if (msr >= MSR_IA32_MC0_CTL2 &&
             msr < MSR_IA32_MCx_CTL2(v->arch.vmce.mcg_cap & MCG_CAP_COUNT) )
diff --git a/xen/arch/x86/cpu/mcheck/mce_amd.c b/xen/arch/x86/cpu/mcheck/mce_amd.c
index 25c29eb3d2..2d17832d9c 100644
--- a/xen/arch/x86/cpu/mcheck/mce_amd.c
+++ b/xen/arch/x86/cpu/mcheck/mce_amd.c
@@ -160,17 +160,17 @@ mcequirk_lookup_amd_quirkdata(const struct cpuinfo_x86 *c)
 {
     unsigned int i;
 
-    BUG_ON(c->x86_vendor != X86_VENDOR_AMD);
+    BUG_ON(c->vendor != X86_VENDOR_AMD);
 
     for ( i = 0; i < ARRAY_SIZE(mce_amd_quirks); i++ )
     {
-        if ( c->x86 != mce_amd_quirks[i].cpu_family )
+        if ( c->family != mce_amd_quirks[i].cpu_family )
             continue;
         if ( (mce_amd_quirks[i].cpu_model != ANY) &&
-             (mce_amd_quirks[i].cpu_model != c->x86_model) )
+             (mce_amd_quirks[i].cpu_model != c->model) )
             continue;
         if ( (mce_amd_quirks[i].cpu_stepping != ANY) &&
-             (mce_amd_quirks[i].cpu_stepping != c->x86_mask) )
+             (mce_amd_quirks[i].cpu_stepping != c->stepping) )
                 continue;
         return mce_amd_quirks[i].quirk;
     }
@@ -291,13 +291,13 @@ amd_mcheck_init(const struct cpuinfo_x86 *c, bool bsp)
     uint32_t i;
     enum mcequirk_amd_flags quirkflag = 0;
 
-    if ( c->x86_vendor != X86_VENDOR_HYGON )
+    if ( c->vendor != X86_VENDOR_HYGON )
         quirkflag = mcequirk_lookup_amd_quirkdata(c);
 
     /* Assume that machine check support is available.
      * The minimum provided support is at least the K8. */
     if ( bsp )
-        mce_handler_init(c->x86 == 0xf ? &k8_callbacks : &k10_callbacks);
+        mce_handler_init(c->family == 0xf ? &k8_callbacks : &k10_callbacks);
 
     for ( i = 0; i < this_cpu(nr_mce_banks); i++ )
     {
@@ -311,7 +311,7 @@ amd_mcheck_init(const struct cpuinfo_x86 *c, bool bsp)
         }
     }
 
-    if ( c->x86 == 0xf )
+    if ( c->family == 0xf )
         return mcheck_amd_k8;
 
     if ( quirkflag == MCEQUIRK_F10_GART )
@@ -337,6 +337,6 @@ amd_mcheck_init(const struct cpuinfo_x86 *c, bool bsp)
             ppin_msr = MSR_AMD_PPIN;
     }
 
-    return c->x86_vendor == X86_VENDOR_HYGON ?
+    return c->vendor == X86_VENDOR_HYGON ?
             mcheck_hygon : mcheck_amd_famXX;
 }
diff --git a/xen/arch/x86/cpu/mcheck/mce_intel.c b/xen/arch/x86/cpu/mcheck/mce_intel.c
index 839a0e5ba9..d49737f24a 100644
--- a/xen/arch/x86/cpu/mcheck/mce_intel.c
+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
@@ -711,10 +711,7 @@ static bool mce_is_broadcast(struct cpuinfo_x86 *c)
      * DisplayFamily_DisplayModel encoding of 06H_EH and above,
      * a MCA signal is broadcast to all logical processors in the system
      */
-    if ( c->x86_vendor == X86_VENDOR_INTEL && c->x86 == 6 &&
-         c->x86_model >= 0xe )
-        return true;
-    return false;
+    return c->vendor == X86_VENDOR_INTEL && c->family != 0xf;
 }
 
 static bool intel_enable_lmce(void)
diff --git a/xen/arch/x86/cpu/mcheck/non-fatal.c b/xen/arch/x86/cpu/mcheck/non-fatal.c
index a9ee9bb94f..4e7c64abef 100644
--- a/xen/arch/x86/cpu/mcheck/non-fatal.c
+++ b/xen/arch/x86/cpu/mcheck/non-fatal.c
@@ -23,7 +23,7 @@ static int __init cf_check init_nonfatal_mce_checker(void)
 	/*
 	 * Check for non-fatal errors every MCE_RATE s
 	 */
-	switch (c->x86_vendor) {
+	switch (c->vendor) {
 #ifdef CONFIG_AMD
 	case X86_VENDOR_AMD:
 	case X86_VENDOR_HYGON:
diff --git a/xen/arch/x86/cpu/mcheck/vmce.c b/xen/arch/x86/cpu/mcheck/vmce.c
index 1a7e92506a..84776aeec8 100644
--- a/xen/arch/x86/cpu/mcheck/vmce.c
+++ b/xen/arch/x86/cpu/mcheck/vmce.c
@@ -45,7 +45,7 @@ void vmce_init_vcpu(struct vcpu *v)
     int i;
 
     /* global MCA MSRs init */
-    if ( boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+    if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
         v->arch.vmce.mcg_cap = INTEL_GUEST_MCG_CAP;
     else
         v->arch.vmce.mcg_cap = AMD_GUEST_MCG_CAP;
@@ -63,7 +63,7 @@ int vmce_restore_vcpu(struct vcpu *v, const struct hvm_vmce_vcpu *ctxt)
 {
     unsigned long guest_mcg_cap;
 
-    if ( boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+    if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
         guest_mcg_cap = INTEL_GUEST_MCG_CAP | MCG_LMCE_P;
     else
         guest_mcg_cap = AMD_GUEST_MCG_CAP;
@@ -136,7 +136,7 @@ static int bank_mce_rdmsr(const struct vcpu *v, uint32_t msr, uint64_t *val)
         break;
 
     default:
-        switch ( boot_cpu_data.x86_vendor )
+        switch ( boot_cpu_data.vendor )
         {
 #ifdef CONFIG_INTEL
         case X86_VENDOR_CENTAUR:
@@ -273,7 +273,7 @@ static int bank_mce_wrmsr(struct vcpu *v, uint32_t msr, uint64_t val)
         break;
 
     default:
-        switch ( boot_cpu_data.x86_vendor )
+        switch ( boot_cpu_data.vendor )
         {
 #ifdef CONFIG_INTEL
         case X86_VENDOR_INTEL:
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:36:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:36:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253995.1550000 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15VN-0004xb-2i; Fri, 13 Mar 2026 16:36:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253995.1550000; Fri, 13 Mar 2026 16: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 1w15VM-0004xS-VO; Fri, 13 Mar 2026 16:36:52 +0000
Received: by outflank-mailman (input) for mailman id 1253995;
 Fri, 13 Mar 2026 16: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=rc6w=BN=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1w15VL-00040A-AM
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:36:51 +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 d5391a2b-1efa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:36:49 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by CH2PR03MB5271.namprd03.prod.outlook.com (2603:10b6:610:95::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.17; Fri, 13 Mar
 2026 16:36:41 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9700.015; Fri, 13 Mar 2026
 16:36: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: d5391a2b-1efa-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=epJbFbv7QRKMbIhnkEEcYHcJYNUFjDe/98/S0eOi5e/MzYxP6ooPcWdRjLb44LqReNstp2twlTkHm0Pt+JD3Jh/8v2sxNzntbUDtQ3pmseHlaNmTA8nY2Z2Gwn0yknx4o1cg5A9CXKUVnfpYEkaWJdh3nkAy9zSPqPBzrjhXrdR7VE/OhNWd8RXZaBPYF78SLsMk8DAK/VV7SNGuKIYa0A+6oikbabvak+1LJG+PU9ZSk+FabTQS+0fGuTaWTduyWMkq+wrkPGiV1WakgmaZfcSe86C6RI8LHxdU7N0Ru6Yx/2APQZ0kC7eq1sHD1Jk7t0deExOqHQN572wHSvBFlQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4DCI1IPGGhbSXpfhfNCCCnchGXNmQEqfWuu8VgQvnxI=;
 b=lIOTwRnanDe95C5EkrLq8b15h5+qV6+17kkHlPBJxTsRVD1ifnL8te3FAbq/Ae1YeSFdkrhuqx/kSnlK2g8m4hZnZygH7U2uDOc6qFA9CEIVL7/M0erUVVOlOAXj0LafmzbAZ0D90Jpoof3ShffFX46oIBf6AUwudzVZZiXOoip4+6AwH9Zl+sZw2V6mitKOjxF+i4G2x0FtzCSPp2hfHq9aTSDmeG+Fpg0pqfE/cNRFzbl7QzdcYqBVyfbMqc2F/KJejimq0JRJGwLdukxnt/gxB+Z0AmNvAMFCrT1VZlCd1kofz7FfLNlbuYrDAE6he2fk2/X0KP3uDIVQEy9FtQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4DCI1IPGGhbSXpfhfNCCCnchGXNmQEqfWuu8VgQvnxI=;
 b=YEr0zdRienXEqrjYx1/VfjifkIf8S/gU1vzbR07Ca4YILsqMrXsF6+aCJweeBNVLaIggmXMRFo1Q+jSGLiFeXHEuA9korcDJx/vItMiC2ATWQ7RRKoqtlADpmHti+kOOWj4BeHU8tXPHtjpLPOT9Wvu/Yihli/K7gl6FomR65Pk=
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 v v3 3/7] x86: Remove x86 prefixed names from acpi code
Date: Fri, 13 Mar 2026 16:36:26 +0000
Message-ID: <20260313163630.1073019-4-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20260313163630.1073019-1-kevin.lampis@citrix.com>
References: <20260313163630.1073019-1-kevin.lampis@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO2P123CA0037.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600::25)
 To BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|CH2PR03MB5271:EE_
X-MS-Office365-Filtering-Correlation-Id: 9aaf5cc7-04c8-40dd-fb75-08de811eb6a8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	geLG66UgyZ8omc0ZS8VUpgiwHtbhPDv3XKMBuR5nWrHEcwNkrWBL9PvtyNkLvcabrToSwHQEzoFwvuih6OrJq2KGohcRGT/ZSLa6eIY0ygO2EXJ9rxY/f/XFPoSellWTj4VIxvyIA3RXdgDgWLmOq/8B8PvbUcl/n5tuk3usVlw56b2FNKZ2LtONXyQyNSZeZMikDy9UTcbnc5K5RcAYSTSZc7KtP84GgBL4mayoJJ/bnCNQaP4t0xu9PVyiMQX2n/V24Uy9X2xeTUQVEjcOUlcw/zZWdCC2R5rGPP+nUIVWGBN0Dx+DNRRBLT8OKFfORN3t44a7QmmBV6hzHtP9h1z2xEthTn2HgwEhGb1Rab0wWnlLIjN0uVwKSdO9bxtM7rrxCgXX0nTeqOVWEw0mwk39QLvtv/GETf8Edq29VXnOUTl8Jsk7DB0tRFIDrbEKj3+sHEShqXjFBQNiZIJ79V6axqmE8H++LySz0qSby32bq88IvCvpuJbVsU5etVhYw1T9/d/Iia9GEl7r7i4VVWx1tpIFfrOuBIOXjd7MQSVNfP77T6liAl/amnS6EiwQPx63uY5kx11I4A6IOeZdC2Df2GRIMIdIe5cBW5H5SAL9FoiVrb5tSlZt3+dSnr6GQJk8U9FAF6Fn23z8mTN/6HBFLCcAJ4VioIEM3jtvDoBZUzHTqx7sAiaqD6HgoLQKNqrbLBkb2c9zo073P4pzBySlxX5aGPYvXZ8578W6ET4=
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)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?JWnvTIHPBkKgg6bXtdaYry6cXs+j/fuaSTE2Odh5vTm8TgjTSBCg2WttpPV1?=
 =?us-ascii?Q?rahebqEzc8r9IwnV8Co78eWgrtl6432iL5kd/NeJli7LwvqfjasmiZ7cuASI?=
 =?us-ascii?Q?Z7rctSsaT77nlOotrMFowqT24/AyDOT9OXaQovNyOwqzn+Zcgg5HflaTpb5a?=
 =?us-ascii?Q?n8L1UAIThQr9m8NBjJCgaacd2rRZPxS/cxQilJbsDjl47YnoCQ1lMkXiS1V5?=
 =?us-ascii?Q?WJy30QFsCJdH2lzTUtRkdMd+tYdB2Dfi1txSlRZ31mZpsAz8GiS5wjthjznT?=
 =?us-ascii?Q?DmY24dWg61rhFwe+PD5Psz5vQlOouyv50QFw9fT4RDDD92gHJShkcTj0Quz3?=
 =?us-ascii?Q?ox/yQImwjx2qxGIJow1tH5vcW7cUxgUYkHnk91hGd5BjlUCrQd7Jd9OaDz/x?=
 =?us-ascii?Q?/xQB73JluyMNgJKi3+VIgHHWwiF6dLxvVdPi6k3hj5+Z1IN+NZCasT9vvSr+?=
 =?us-ascii?Q?ZFTYF3obHfX+A1I1nTboq7cYWy1XyD2h8yuC2AXED2e6QI3xGyyEq9vrNYh/?=
 =?us-ascii?Q?bfoUg4ndcPM98lAW87X25zeToYQ9QmqG4us9bZsMj7AjU/fC487nNL3NsPe2?=
 =?us-ascii?Q?R1aYM4I5+HxlZbHZAgKNlqqRJfLtvRlzQ9G2AiDICDJSR+W3rK2raz0QAEvq?=
 =?us-ascii?Q?WyjOHUvzd/VGoUi1CL1iWCKkUDmirvo4GvniyM78KicAjzXGDZvMKeOW7fIr?=
 =?us-ascii?Q?yteOtiy3zbRuPFTtRf2PNdXreEvF6OnxZFqk7iqEirFBkBZU90dZ/mVAG6pU?=
 =?us-ascii?Q?lY5IXvnk0cWdoDXc5SQ2HW8F59uTstZCho7MgnuJ2lJbRIAcc40AfWyFNxuX?=
 =?us-ascii?Q?yefEqXMP7oHBae/7kgRh/hDQGbl+39Ds318VoVf/5UaqY8fP/sughGBRSfCI?=
 =?us-ascii?Q?sqVJ3dSTWUPT3lPFBQhpGKuPxYvlzY2jPpR+p8rzQLoO/LkWeUwRQTpXGer7?=
 =?us-ascii?Q?F+lwwJKyGV6LGQjm4oN4FuatmcN8V1wwGfJPzIilTuYSbhOOChsoxGRZTxGQ?=
 =?us-ascii?Q?G/EUF2v8MOsd3cd7Bzpk8XXiply+yZ7NAkdNH8fNWBFHebphfxJmXlBAbwpw?=
 =?us-ascii?Q?gd1PKMnLTyPFiKEyyIy3iJKAcQaZ0W8X4PGgR9Lq+RsL0rJuNzqDMjKHy+T8?=
 =?us-ascii?Q?bM2HzQdcWb9DXYTjTuUoPZGDjys0OcA9pitfH86ztbctqCWeeXtphZqwDQyc?=
 =?us-ascii?Q?m6FCvhgVWwupwOEVuzJoSLWqMKqmGW6hp5Zcc8Z3rNh5schUcOf6LAqNMui9?=
 =?us-ascii?Q?2Aj6M8LcuccW++YNq8ymerXsjWyeTaAXImq0shY5A5xcp1xvrUaPYJJboq8K?=
 =?us-ascii?Q?66wNHALbbCdEQ/whgF3wJ6I7bf4BLl3T5RJoGMd29yEYFvpaeVwPFaNsXQ0X?=
 =?us-ascii?Q?HzYQf/llUZs3hhHYQYtvqNoKyzhHPgehJEE8P66RAYiBTOIb58AaOw2jfkUc?=
 =?us-ascii?Q?UPU+wCt16mNRd91sMfMSzftdRCqETTcFIA9vMK43iHsCk+dTuC4/em6uqnOy?=
 =?us-ascii?Q?DbzUFE9jNaUOghNaltp/iFU3fFs+fBVOPX9C6xP4jQEFWUNS50WDHWhF8/r4?=
 =?us-ascii?Q?qwtGR3ky/RqdzYnLyYQ7UEkH7qZacn+F9X49Hdz+4xIkU2d0HuehVSI2YcXH?=
 =?us-ascii?Q?984G0wtgGdZjp2mNf4k1011lF4nU99MZzTdoty9I/dyXHY4OVRsW/W/7i7rT?=
 =?us-ascii?Q?t4lnC6wFCOG8hSb3OxcQlrMERdek6Zab6ZETeytYPxEgbEZdXZd00MgPrbsV?=
 =?us-ascii?Q?0GVmjlVg3Q=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9aaf5cc7-04c8-40dd-fb75-08de811eb6a8
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Mar 2026 16:36:44.7923
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: I1PKbhf8t7T9imsZibNkEza97C4BS6jDyadfyXI85yjVXk7EEF4IQWl2ue7kr9ZinZTpwpraJ82E0mB7cnWfcw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5271

struct cpuinfo_x86
  .x86        => .family
  .x86_vendor => .vendor
  .x86_model  => .model
  .x86_mask   => .stepping

No functional change.

This work is part of making Xen safe for Intel family 18/19.

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
Changes in v2:
- Remove the XXX comments

Changes in v3:
- No changes
---
 xen/arch/x86/acpi/cpu_idle.c         | 18 +++++++++---------
 xen/arch/x86/acpi/cpufreq/acpi.c     |  2 +-
 xen/arch/x86/acpi/cpufreq/cpufreq.c  |  4 ++--
 xen/arch/x86/acpi/cpufreq/powernow.c |  4 ++--
 4 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
index 46749ca337..3001e98a6e 100644
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -178,10 +178,10 @@ static void cf_check do_get_hw_residencies(void *arg)
     struct cpuinfo_x86 *c = &current_cpu_data;
     struct hw_residencies *hw_res = arg;
 
-    if ( c->x86_vendor != X86_VENDOR_INTEL || c->x86 != 6 )
+    if ( c->vendor != X86_VENDOR_INTEL || c->family != 6 )
         return;
 
-    switch ( c->x86_model )
+    switch ( c->model )
     {
     /* 4th generation Intel Core (Haswell) */
     case 0x45:
@@ -915,7 +915,7 @@ void cf_check acpi_dead_idle(void)
             mwait(cx->address, 0);
         }
     }
-    else if ( (current_cpu_data.x86_vendor &
+    else if ( (current_cpu_data.vendor &
                (X86_VENDOR_AMD | X86_VENDOR_HYGON)) &&
               cx->entry_method == ACPI_CSTATE_EM_SYSIO )
     {
@@ -1042,8 +1042,8 @@ static void acpi_processor_power_init_bm_check(struct acpi_processor_flags *flag
     flags->bm_check = 0;
     if ( num_online_cpus() == 1 )
         flags->bm_check = 1;
-    else if ( (c->x86_vendor == X86_VENDOR_INTEL) ||
-              ((c->x86_vendor == X86_VENDOR_AMD) && (c->x86 == 0x15)) )
+    else if ( (c->vendor == X86_VENDOR_INTEL) ||
+              ((c->vendor == X86_VENDOR_AMD) && (c->family == 0x15)) )
     {
         /*
          * Today all MP CPUs that support C3 share cache.
@@ -1059,7 +1059,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 ( c->vendor == X86_VENDOR_INTEL )
         flags->bm_control = 0;
 }
 
@@ -1415,12 +1415,12 @@ static void amd_cpuidle_init(struct acpi_processor_power *power)
     if ( vendor_override < 0 )
         return;
 
-    switch ( c->x86 )
+    switch ( c->family )
     {
     case 0x1a:
     case 0x19:
     case 0x18:
-        if ( boot_cpu_data.x86_vendor != X86_VENDOR_HYGON )
+        if ( boot_cpu_data.vendor != X86_VENDOR_HYGON )
         {
     default:
             vendor_override = -1;
@@ -1647,7 +1647,7 @@ static int cf_check cpu_callback(
         break;
 
     case CPU_ONLINE:
-        if ( (boot_cpu_data.x86_vendor &
+        if ( (boot_cpu_data.vendor &
               (X86_VENDOR_AMD | X86_VENDOR_HYGON)) &&
              processor_powers[cpu] )
             amd_cpuidle_init(processor_powers[cpu]);
diff --git a/xen/arch/x86/acpi/cpufreq/acpi.c b/xen/arch/x86/acpi/cpufreq/acpi.c
index d0ca660db1..de67f1aee2 100644
--- a/xen/arch/x86/acpi/cpufreq/acpi.c
+++ b/xen/arch/x86/acpi/cpufreq/acpi.c
@@ -454,7 +454,7 @@ static int cf_check acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
 
     /* Check for APERF/MPERF support in hardware
      * also check for boost support */
-    if (c->x86_vendor == X86_VENDOR_INTEL && c->cpuid_level >= 6)
+    if (c->vendor == X86_VENDOR_INTEL && c->cpuid_level >= 6)
         on_selected_cpus(cpumask_of(cpu), feature_detect, policy, 1);
 
     /*
diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/cpufreq/cpufreq.c
index 5740c0d438..9ef62b3538 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -133,7 +133,7 @@ static int __init cf_check cpufreq_driver_init(void)
 
         ret = -ENOENT;
 
-        switch ( boot_cpu_data.x86_vendor )
+        switch ( boot_cpu_data.vendor )
         {
         case X86_VENDOR_INTEL:
             for ( i = 0; i < cpufreq_xen_cnt; i++ )
@@ -252,7 +252,7 @@ __initcall(cpufreq_driver_late_init);
 int cpufreq_cpu_init(unsigned int cpu)
 {
     /* Currently we only handle Intel, AMD and Hygon processor */
-    if ( boot_cpu_data.x86_vendor &
+    if ( boot_cpu_data.vendor &
          (X86_VENDOR_INTEL | X86_VENDOR_AMD | X86_VENDOR_HYGON) )
         return cpufreq_add_cpu(cpu);
 
diff --git a/xen/arch/x86/acpi/cpufreq/powernow.c b/xen/arch/x86/acpi/cpufreq/powernow.c
index beab6cac36..55166eac72 100644
--- a/xen/arch/x86/acpi/cpufreq/powernow.c
+++ b/xen/arch/x86/acpi/cpufreq/powernow.c
@@ -143,7 +143,7 @@ static void amd_fixup_frequency(struct xen_processor_px *px)
     int index = px->control & 0x00000007;
     const struct cpuinfo_x86 *c = &current_cpu_data;
 
-    if ((c->x86 != 0x10 || c->x86_model >= 10) && c->x86 != 0x11)
+    if ((c->family != 0x10 || c->model >= 10) && c->family != 0x11)
         return;
 
     val = rdmsr(MSR_PSTATE_DEF_BASE + index);
@@ -157,7 +157,7 @@ static void amd_fixup_frequency(struct xen_processor_px *px)
 
     fid = val & 0x3f;
     did = (val >> 6) & 7;
-    if (c->x86 == 0x10)
+    if (c->family == 0x10)
         px->core_frequency = (100 * (fid + 16)) >> did;
     else
         px->core_frequency = (100 * (fid + 8)) >> did;
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:36:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:36:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253997.1550009 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15VQ-0005Gl-Ai; Fri, 13 Mar 2026 16:36:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253997.1550009; Fri, 13 Mar 2026 16:36:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15VQ-0005GU-6h; Fri, 13 Mar 2026 16:36:56 +0000
Received: by outflank-mailman (input) for mailman id 1253997;
 Fri, 13 Mar 2026 16:36:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rc6w=BN=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1w15VP-00040A-Fu
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:36:55 +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 d75fe006-1efa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:36:53 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by CH2PR03MB5271.namprd03.prod.outlook.com (2603:10b6:610:95::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.17; Fri, 13 Mar
 2026 16:36:46 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9700.015; Fri, 13 Mar 2026
 16:36: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: d75fe006-1efa-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=N7JoNPxH48fj35dgdyeqjZkIo3VFqKVkXgplr8xQBO3d2xxEm/tvztb5ZARvw0uukrt/nLuSN6CFCK5frQGkfq6KLpLsAKOALoloqiJt7VNQuk3XP4rsa88/lf+QppD9AaibxwA6Dn8tU8lq7wYM7j4Zh1uc1fTuH1ntxudmiAvoG4+abEmvty26BkPxV/h/4B/1NIc/53tMMYhFtYR2tQUgCZ1XqhvEyvH3oK2rRS3xBeyBn69PuM4FjRn5YPlvfGwxGqlDkR7yeUxJqLz59pdK/O9/Eei0Iw5CMOmxD3ORGmozi8xmia07yONmfuuGIJ0+208KBlLhGeuLR2dScg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zKvNKrMMq+iJ/izQetqNBCBeOqEbJlez3gi0nUvgvwo=;
 b=uk/9HA3EdRKnlrqG1OJiL0X7WcF/IW0/tPfqr1sQRWvDfqrrqb+jeCu1ZlgiUR/uo1q8bBQ+8AzGyWx1h8mUZqLX+KowhZbSIjFl30JbG6fs9Nff54bUiZolifkDTDrgqjr+ZNwCQL+pFlvh7i+6UavOQQr+BgqWRScCC/UTMLhECgn1Qs1NwoHhkXiUkSIKkKgOiCaXKwhbIwuI3WmS6v8KJMFVM0VJ0fNBDTuJZLatj2KEqOrzGucZX0IaMEeMYzLMmBXCCZkCaXCKUVlN034Lwtt9LDjIovbnOaHQ1eNo0FLOgyF1eHR21GGNuaEvkBFDfqt+aLv6nCn6uJt2SQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zKvNKrMMq+iJ/izQetqNBCBeOqEbJlez3gi0nUvgvwo=;
 b=cZAvpEzNJBY1rrMRCeYMSf0sQiZ+KzaY8m4uQtlDZ5cqQNt35tsAKc9XfcAg7NdiKIWJohagW7hpoIt6ZpGRt1AYqDb6PkHiPtKPJYbxg5bTUAHjncDqGLOELJuQU0LOS6uuOVhDxoOdP2JngyXC2LhroHh22v7LfZVgW+lRbBs=
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 v v3 4/7] x86: Remove Intel 0x65, 0x6e, 0x5d from VMX code
Date: Fri, 13 Mar 2026 16:36:27 +0000
Message-ID: <20260313163630.1073019-5-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20260313163630.1073019-1-kevin.lampis@citrix.com>
References: <20260313163630.1073019-1-kevin.lampis@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO2P123CA0028.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600::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_|CH2PR03MB5271:EE_
X-MS-Office365-Filtering-Correlation-Id: 3825baf0-e1a8-4b41-fe06-08de811eb975
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	pbkr5dipB2INxc1S0hkt4JH2SQeFUF23E3MtRq3kZfW/g+INUQspug16zCyyTU6f98FtY4A8xKkTDYuATsw6h6N36o3pApc78wkkGK+kCQ58tyE3b/2KKxpCQWSr5/HRcVKi8Gb7sIK6sS1f17Ds/EdGmD6DEM0qDH8hLo+7iPShKIrDNNDqzR+QiNdiOo4dHv10HNNMaeWgCOnBP4AtyUAsTfnFW0N+m2FAXEsqDIEgpYtLrYyC8hdP2fvPWNGj/VYpyRahDRPUudOzEErt/fcud9iYjnUWuPY+zwAyIUxtP/fK6htD8LGRqQeSi6OrcDqfh4IJggTySrfv1ciFd0lsAIutHkZKJyBiQe3ido7GRuy6P/QTppcQcFiN/BG/f0t27Afe+ta1wm0rlV4F9hiGB162weaRCUGAZP243buvx1DaYAejCHuZ1VScY7YPgLDVttJcdRetC2JKtRJch7CZnuIjtEo4g08qO42NqLe9HFkmTfrzeK1u8l6ncO2h+S2K4cI6KtUkdQmPDev2YabipURHTNmXEh/KwbrjZqQhKiCqrUM7eg4gm8gS+I0PTxwPN0T1tc2HaB6SGr+Lkn/U6JboG5JiG27iWEI327npOZnUzeZbS3VCrtpMKpsuFyVHhjDkLhjDyU98K6IsIhNsE7o+pSIpK8DhJuZY0lfCOhbqTmph6v3lTwoQN39KYHYEOKkghfW4kMCwsAnQhddnzaHD68doGDdtIToynXE=
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)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Y3P6hoCSrWmXs0cSCGtF5b4fbl1jcEDQC2VN25ocmCZ1YiRbdCjju7KtktCF?=
 =?us-ascii?Q?cNjBbzlFNNqbSKCBPDb4Q+40n5s8KztPIHSvQoA3bra5ikUu/1UX6lVrZPrn?=
 =?us-ascii?Q?sRVzL/xCp8eOlgtqFBZUFsjsCVFM0g4niCzv8+WXI6Rc8CuNluIG6J8Yvj+x?=
 =?us-ascii?Q?mbFdcIzRhY2v2vJ8Cn09dWlUpLC+L9BH+jjQU2100JYn8XzAelOcFv2WK77Y?=
 =?us-ascii?Q?d1QkxKtYfYKoqn5y/kp7NKRmUPBI9RynucMhHooPC4SSdQaeBv4N14d7tY/k?=
 =?us-ascii?Q?mnmoOH719PdS7vL0rV8n2Mw+NYxe7XhaCniZW3tuhlu278CnRqpipkUqn882?=
 =?us-ascii?Q?JfWOOIL1U98I9scEYePcXLwe0pnLBPNvFXO+alT/r1a1sbP62Zky6EPE+NsC?=
 =?us-ascii?Q?mJzfJZk7DFBlnx6tqlLpPPTbDs0KRnvj3gyej3UnclD/RbbTQx7byPlH4bpP?=
 =?us-ascii?Q?Qdjjc11J8kVJuQVCpdbk3tfj3ePmbwd702RXQDVL2YkTsPPlhBItwI5sHUH2?=
 =?us-ascii?Q?2cD9Sl1apf2u+ZyH4XXImGngxwIUoH1l+tbo/lcrfR5KF0/s+oR+z82tIQ2H?=
 =?us-ascii?Q?aIJp/raqa7pBMxxsC2kHQDSF0szpHYOEGrYIro/zol769lr9Wjrm/RAXwevb?=
 =?us-ascii?Q?y21eQRsf9Bst64mWjE+GyyUlJSuD66qdEyYYOIy7NAEDE3CsUhqz0dFf/pg3?=
 =?us-ascii?Q?TmMGXO2cYMVEnl78fggesh8MSEtCZK7IdWaqJgLSnrZUtIf/odj4RH1jV4yg?=
 =?us-ascii?Q?C488gAyrDZHdWU4Z/jWc9VfHNnqK636BGBM1LnArIhF5eHnOFilUYe6ewKbC?=
 =?us-ascii?Q?EMNhENJcfl4VNSiJw/6f2yvKBxHVhP3NClpizukb5j6G1P6BI8Xun6Jx3yw2?=
 =?us-ascii?Q?G0IYX3GqQ/glgQLqqpwLcCF0jmvd/7AQ6Jpudu2y5V5TiHV+NDGOhCu7JJOc?=
 =?us-ascii?Q?qjrAl6MHEpoBmShElMMmItCe0htQrsp6gCZIAe192dWS9IwasH+uwzZHNPeD?=
 =?us-ascii?Q?CwivpnYcK2qR/z3SGQ2Z03vv+h3ZQHhgNo1IIIuH+z5IeIOLw3MYXqZOHedv?=
 =?us-ascii?Q?Q1z0+HqjJygxgZgbJDwOJvE/dKBFbkA2/NwbYVsYqYX1PK+vJjvVGdZp4o7H?=
 =?us-ascii?Q?mbxTFvIAOltwBS9GQynB72yXX5O1zQMCfDyUjnZ0ijk1C9vnNsNyjYa8kPYm?=
 =?us-ascii?Q?90GlMvW7Byz8k2LisIxMn33W1fX8SvNVCgp7hqR/KHqeUI2XKwnUxLcnDUA1?=
 =?us-ascii?Q?NW3I1jNuDSRiO8eN0DmdM1J5fkfk5jmgnBEtJ9XdRF9yWx3+asTFGTuOZfmc?=
 =?us-ascii?Q?Pfr6TVu7I2/d4DgtSvnTb4ksNpjRsLXYCWyQtMLlbz6M8QHFiwCT7heNGrWF?=
 =?us-ascii?Q?ialQq+PlxT0O9WFHtmMWsUMArN8E5j3ON4lQuSapxyz9DxTz68SdiO+iRdxM?=
 =?us-ascii?Q?6p4gngC5+HPLQhM7n9dzAj0KLZ2r2mYnxohxoKi2RB33yyIirww8uOMaXj8q?=
 =?us-ascii?Q?pT8y4B/r0ewMNjuerRRfjJpEKjM7j4lmYiqDfG2TizUgW0Mk+qIIhfl9RGfK?=
 =?us-ascii?Q?wZxZ6DqrMLKNsspER3L08CHk2MJnm2yuNNcQ2l7Nsf1nnouSF01Kko25/kcj?=
 =?us-ascii?Q?y2GjagDBWaV3O3lcKjDHBZVFOovAv3OiXavmHetpRCr+Z8OMtCgl1BAZCHp0?=
 =?us-ascii?Q?xRDbbnA1SCjfJz156TzGWQjdNGk09jujCunsqlp3beEIaCoVi7gzZDS6wxRz?=
 =?us-ascii?Q?o8Kv1uHIpg=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3825baf0-e1a8-4b41-fe06-08de811eb975
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Mar 2026 16:36:49.5714
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: sty4+Y5YKAgLAXc6YQvd7+EGQaYQDZvd335o6QpOP/1i+fJzlZvtvqDTkuUUVAHCeX1O5On78018vWLI50ONAg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5271

These Intel models were used in telecoms and not regarded as
general purpose processors.
- 0x5d (SoFIA 3G Granite/ES2.1)
- 0x65 (SoFIA LTE AOSP)
- 0x6e (Cougar Mountain)

Model 06_5DH does appear in the Intel Software Developers Manuals but
Linux has declined to take these models into intel-family.h because
they're not general purpose.

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
Changes in v2:
- New patch based on review comments

Changes in v3:
- Expanded the commit message
---
 xen/arch/x86/hvm/vmx/vmx.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 82c55f49ae..e45060d403 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -550,7 +550,7 @@ static const struct lbr_info *__init get_model_specific_lbr(void)
         case 0x1c: case 0x26: case 0x27: case 0x35: case 0x36:
             return at_lbr;
         /* Silvermont */
-        case 0x37: case 0x4a: case 0x4d: case 0x5a: case 0x5d:
+        case 0x37: case 0x4a: case 0x4d: case 0x5a:
         /* Airmont */
         case 0x4c:
             return sm_lbr;
@@ -3126,10 +3126,7 @@ static bool __init has_if_pschange_mc(void)
     case 0x4a: /* Merrifield */
     case 0x5a: /* Moorefield */
     case 0x5c: /* Goldmont */
-    case 0x5d: /* SoFIA 3G Granite/ES2.1 */
-    case 0x65: /* SoFIA LTE AOSP */
     case 0x5f: /* Denverton */
-    case 0x6e: /* Cougar Mountain */
     case 0x75: /* Lightning Mountain */
     case 0x7a: /* Gemini Lake */
     case 0x86: /* Jacobsville */
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:37:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:37:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1253999.1550018 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15VV-0005hb-KX; Fri, 13 Mar 2026 16:37:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1253999.1550018; Fri, 13 Mar 2026 16: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 1w15VV-0005hL-FX; Fri, 13 Mar 2026 16:37:01 +0000
Received: by outflank-mailman (input) for mailman id 1253999;
 Fri, 13 Mar 2026 16: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=rc6w=BN=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1w15VU-00040A-IX
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:37:00 +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 da26976c-1efa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:36:58 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by CH2PR03MB5271.namprd03.prod.outlook.com (2603:10b6:610:95::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.17; Fri, 13 Mar
 2026 16:36:50 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9700.015; Fri, 13 Mar 2026
 16:36: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: da26976c-1efa-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BQ/7PY4vtnUg1fkLeDaNUSml3FfDlbDbCLBcPeyuRBGo5voqIORNS4LamcFU4tNzI+vymhlNKfRTcWW8Wil4ozZrqPguUPhihP8X2EeLzwOggshf8rXikZy60+13GCPfYClh0ghA2TxjWFE+zcKosHcQoLI2SixU1AU8A4mVgKEXWLM9F20SoJQymWt6E6ApTMhT39XySJtnmiPdTfe4L6r/O91ndhXQfeoSWExoro9C8D9qivk6DZlSkb69AgUIt68NwXlG28MbWJps1lCl3r2dyE88HM5DD+uR2AgIDbL7PGzpkqLAwXSMPiGtr0f9GmEDrl0k+h091RNnTOzTbg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rjEqapidBPBMCON99YM5//X9D18Zsigu9iVOPUrCt94=;
 b=whwarTJxqTv91pruyBqUe6GnYjnOKj6wtgGF74WubcJ9VyI8V/xfRsRDeLfW8o+Szuk+ZaMXt0gctT3O0TJE3uIQEUzzwoO/O7B7zI9QdtxnH0V5DDi3a/uluYzsyTLG2dObql7iMYuYr6afHT1AgeqS/9lPZdbHdzaY31/rWTzP7d1OcXq5WCD1dGwflh90sXEXJiOt4hwL9Ow0M3ZipdU0oXCIAh02dPWxCHiUR/iUx6a7w+rpFoeRbPAD6mNuCqgOdWuOI7w0eT9iglNBra1qiiPUpcCR8gewAvdlsTlCCUY6ABI9PorQc9oGuEDzDCN6ThwCYgD9F8PfUbHJXA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rjEqapidBPBMCON99YM5//X9D18Zsigu9iVOPUrCt94=;
 b=eoHabhJzRZocPZBgTvVqZM01rVg6NSAilD/jneCjuXonCi+EeENBtTwWy2ek/k4IU8n3zQB1JgWkvkD48NnEJRt/VuiGDHeQ7b4Gk9QG1JIHzkvRFpGpPSg1rXvzRtCFv9M/yaITqX8LxbjHsiIAGmM8gXGyAawVj/nQv+uoEaM=
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 v v3 5/7] x86: Remove x86 prefixed names from hvm code
Date: Fri, 13 Mar 2026 16:36:28 +0000
Message-ID: <20260313163630.1073019-6-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20260313163630.1073019-1-kevin.lampis@citrix.com>
References: <20260313163630.1073019-1-kevin.lampis@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO6P123CA0029.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:313::14) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|CH2PR03MB5271:EE_
X-MS-Office365-Filtering-Correlation-Id: d536bb8f-6cf9-46af-cd7b-08de811ebc37
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	pcLtY/ZvD648ObQVtI97ovr3dbVVy5nNFYQpmzXlKN+LxmuMwM8EHlG4FK75WtIdzfYBQ7XptYfDo68TXlMiagpl7sOQA5O5Lt3Zf0J0ukeSHgTLoHK/l8Ancbal3pwg16zWzyofZPhd52ISAZdwmU773/0Fwqd/PHQXSmo/i1drYaR5S9z9tZDuaGmYu1sXkw3UqgysqB2x2CMTS0T5lW5aG4Wl551lQtZae3OSPXXiJJb5QEeFh2Nh3l3WfUAwdF+8nWQnon8sF26uEPu7t8ms/E0EBuWyG921U5HJOzCyO/9AvzSXpbNmOiSWHLyyM0pdNJH5FFKslMdnF8VEkmTGzgnI5UeyQtBs627eaHAEp67Z272LHKYJ5G9FL/3kJlWKWX/A0YNE5wf885d2YRwLtQt/zf9YYVZmfpPBC1L1Qyjpgr8LzIRxf7yaqTHxD/dISGX5GusqhLVtlMImKLfnK/25DM/VswqcGuh/bhE0teP3TzEzE+M/nFuJfV/p2Qss8gWyd1u9dwc2I1cBDbrp3o/q3t/cKRKKV/Wuxn6LqEvC9TiO5wNbSq5N/N6NY+i+kZlSLLTjL3y1NUItJ47DTOdJzkrRbEZ3SKvpGxmRez/OvDszDjU1ip2KtgJW5JFZ+XiPJHo+sQGNkCxQc8R2H0mV2VA7PsmCYNDAzEHIjGiAnJ6uZ1YTfGjuA/wJrD+3n3RSg8ejSaxWkpiX1nCYakme31Hj5n2XykEk5sc=
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)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?TXvnf4TYhQeI79tFgT+9jU3x2/8CBQn5aa+x6nu6B62BhW6/ejENd6rL++C+?=
 =?us-ascii?Q?ciTbKjiLiv+F39hshmFizljRe/3yLAO7eQDXn9DKg2gaQ9YUNTNLatIjKN6T?=
 =?us-ascii?Q?xYP6Xr0KJ+3kJOGnTcyPrwSFQo7etlYjc+kXm1JsmQlXyIhvvwLwV94pEgDh?=
 =?us-ascii?Q?puB/JDQQJbItlnZxxDy7cyy3IUA0U2ag8vj23xUV3eYv/eooPZ8wQPF+pzP+?=
 =?us-ascii?Q?hd8CrUScEaWmJ9Dz1+TTygG2/56R4e/nlZh5Xfm07n06mn8j/FstJYmr4aPP?=
 =?us-ascii?Q?BGnM+eJgW7z6CZwKnqGnEo13HHWXSOZ2vxxulrDvuXpc1Kar4NOiTV1AT6Ch?=
 =?us-ascii?Q?MPyjcs/Rasjn5FieBCpFz1xKp7Kev9XoIULlgGeQXGEpUekXH0s0Dh9wsZw3?=
 =?us-ascii?Q?SBBV3+AhBGQCk6s3sbpmBOu4mF9iXypZOxnxGUqzKwIAQ3Bdb0ETRcuOw5Cp?=
 =?us-ascii?Q?WFTe95yVCP/no8QIZFeblCr9soFkFJ9Hs/0iLnwwY6F+3tRTWEhYpe4IChP5?=
 =?us-ascii?Q?7RxTGLLyPJDIPT420Lc/be/5IsB5MsNP0ZuAc08BBnFb2GiUursn9kZlYbsX?=
 =?us-ascii?Q?Be1aJPLOBFrDw5d3nXiDvMnYtDV+YJcE5yoRDtkTmu9Uef4s6EmbF2jCuOBD?=
 =?us-ascii?Q?7N4n6+fBZNJyT0bBQlVWUY94t7xoUXwOwVAuKhD8XhvPyuE36c9TXxOWnMcE?=
 =?us-ascii?Q?5HvHY5uS3XtpcxuAjqN86kUe39RB7ixM2WytyHDpMqLODSS9uqo80LQuNBFT?=
 =?us-ascii?Q?xZSGgdZ2zpq7ireFc4QtLOaIDn5RrvBxyM+fHx5VQUBvmPxACDsRRHMSLqe9?=
 =?us-ascii?Q?Ze4f2Cc7VeO68NHVgMb1BKXIF35Fg5XzPByxArHwbIVXUOXTbtKLXzoPtlfh?=
 =?us-ascii?Q?gOXG0rzk81Lbp+q6pEeakdXvN3BYWnx8hvkT12mLHDRMvg6mhLm2jNX3ZsBA?=
 =?us-ascii?Q?MfAuVQah5wRHQA7deBP6Ymi0XLRTEq/4xrzHK3+jQhnURY2i1NiXqUYJLYSw?=
 =?us-ascii?Q?vSiergfbAzo+4pwvBf8w8ve8uPk06xvVlDISBxThBSQ6Js/KKO8uO+LsxNWZ?=
 =?us-ascii?Q?1GbkBkyqLY3zpwJW+fydOBBmARk5Kjwfr7UtzUDYuLBWjZGS7yjP6p7rw3oL?=
 =?us-ascii?Q?ysAornTOxgByiQHA2UOb+o/BxPshu2efPoF3QsAwNCb9H1KJl9xrbdN4n5xY?=
 =?us-ascii?Q?+C/wuVoH0dPDUS2Q17vKj55r/6cHC7PVZeW6UdhGvvk8YQouft4EmTqjkfQk?=
 =?us-ascii?Q?ULo9SBgZemfTk73QPMr4QPbxMxgtBItG22IzdRjRwk+qU4ec9eP9t4DsbLxF?=
 =?us-ascii?Q?Jj/jANG7kBu89/12tHsD4Lu8o2eoM4qvePq2qYkySPZfXgbz8qBaVOjcjn7i?=
 =?us-ascii?Q?Y93fZVCSJ7lNSjlU2zvse4K7gi7Nb5IjnUYDZh6iJhbwLp3O/55X/IJxVYpG?=
 =?us-ascii?Q?JSuFmyNlWFhZNJryuykrt5w1PW6HMARfH0R46vszAe1NbCn105pJvI+4eyPZ?=
 =?us-ascii?Q?e+Qq4umaTw/PkiLed+r4MTiDUGzmKcn5XZyvhIhiBJLJkErGATNoe+eyGFcW?=
 =?us-ascii?Q?7zIolprBUH+R5e++mOSBIrZVM+MrOQ3kqpuk/dM6geGPzKX1sLHKBTE24gpc?=
 =?us-ascii?Q?ZOhRi3PR2BjX1aFAWWtWt4tNALbHzvkehJSA9Ny+BrnqpuLMahFWejCvDlxP?=
 =?us-ascii?Q?m0XbSUTIjHelbHg21IZZy+o29gyL3TVTjeIFNaNu62YkJsRCnlhIIglNCnjv?=
 =?us-ascii?Q?kF9H2oKsyQ=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d536bb8f-6cf9-46af-cd7b-08de811ebc37
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Mar 2026 16:36:54.0910
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: DxXOP35SiiaCj9nXP8iHQgbgarYx8HfAhyVkQtM/5O52PhaicC9y12vnaj24aQ7bZs3i5eN151MbV6Y+Xzgy2A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5271

struct cpuinfo_x86
  .x86        => .family
  .x86_vendor => .vendor
  .x86_model  => .model
  .x86_mask   => .stepping

No functional change.

This work is part of making Xen safe for Intel family 18/19.

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
Changes in v2:
- Group Silvermonts, Airmonts, Goldmonts in the switch statement
- Restore Errata info in lbr_tsx_fixup_check() and ler_to_fixup_check()

Changes in v3:
- No changes
---
 xen/arch/x86/hvm/hvm.c      |   2 +-
 xen/arch/x86/hvm/svm/svm.c  |   6 +-
 xen/arch/x86/hvm/vmx/vmcs.c |   4 +-
 xen/arch/x86/hvm/vmx/vmx.c  | 277 ++++++++++++++++++------------------
 4 files changed, 146 insertions(+), 143 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 4d37a93c57..6ad52e1197 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3850,7 +3850,7 @@ void hvm_ud_intercept(struct cpu_user_regs *regs)
 {
     struct vcpu *cur = current;
     bool should_emulate =
-        cur->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor;
+        cur->domain->arch.cpuid->x86_vendor != boot_cpu_data.vendor;
     struct hvm_emulate_ctxt ctxt;
 
     hvm_emulate_init_once(&ctxt, opt_hvm_fep ? NULL : is_cross_vendor, regs);
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 243c41fb13..5e4d8b3c52 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -590,7 +590,7 @@ static void cf_check svm_cpuid_policy_changed(struct vcpu *v)
     u32 bitmap = vmcb_get_exception_intercepts(vmcb);
 
     if ( opt_hvm_fep ||
-         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor) )
+         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.vendor) )
         bitmap |= (1U << X86_EXC_UD);
     else
         bitmap &= ~(1U << X86_EXC_UD);
@@ -1057,7 +1057,7 @@ static void svm_guest_osvw_init(struct domain *d)
      * be conservative here and therefore we tell the guest that erratum 298
      * is present (because we really don't know).
      */
-    if ( osvw_length == 0 && boot_cpu_data.x86 == 0x10 )
+    if ( osvw_length == 0 && boot_cpu_data.family == 0x10 )
         svm->osvw.status |= 1;
 
     spin_unlock(&osvw_lock);
@@ -1805,7 +1805,7 @@ static int cf_check svm_msr_read_intercept(
         if ( !rdmsr_safe(msr, msr_content) )
             break;
 
-        if ( boot_cpu_data.x86 == 0xf )
+        if ( boot_cpu_data.family == 0xf )
         {
             /*
              * Win2k8 x64 reads this MSR on revF chips, where it wasn't
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index c2e7f9aed3..d3b1730f1d 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -26,6 +26,7 @@
 #include <asm/hvm/vmx/vmx.h>
 #include <asm/hvm/vmx/vvmx.h>
 #include <asm/idt.h>
+#include <asm/intel-family.h>
 #include <asm/monitor.h>
 #include <asm/msr.h>
 #include <asm/processor.h>
@@ -2163,8 +2164,7 @@ int __init vmx_vmcs_init(void)
 
     if ( opt_ept_ad < 0 )
         /* Work around Erratum AVR41 on Avoton processors. */
-        opt_ept_ad = !(boot_cpu_data.x86 == 6 &&
-                       boot_cpu_data.x86_model == 0x4d);
+        opt_ept_ad = !(boot_cpu_data.vfm == INTEL_ATOM_SILVERMONT_D);
 
     ret = _vmx_cpu_up(true);
 
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index e45060d403..3d308e149c 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -34,6 +34,7 @@
 #include <asm/hvm/vmx/vmcs.h>
 #include <asm/hvm/vmx/vmx.h>
 #include <asm/hvm/vpt.h>
+#include <asm/intel-family.h>
 #include <asm/io.h>
 #include <asm/iocap.h>
 #include <asm/mce.h>
@@ -502,72 +503,74 @@ static const struct lbr_info *__ro_after_init model_specific_lbr;
 
 static const struct lbr_info *__init get_model_specific_lbr(void)
 {
-    switch ( boot_cpu_data.x86 )
+    switch ( boot_cpu_data.vfm )
     {
-    case 6:
-        switch ( boot_cpu_data.x86_model )
-        {
-        /* Core2 Duo */
-        case 0x0f:
-        /* Enhanced Core */
-        case 0x17:
-        /* Xeon 7400 */
-        case 0x1d:
-            return c2_lbr;
-        /* Nehalem */
-        case 0x1a: case 0x1e: case 0x1f: case 0x2e:
-        /* Westmere */
-        case 0x25: case 0x2c: case 0x2f:
-        /* Sandy Bridge */
-        case 0x2a: case 0x2d:
-        /* Ivy Bridge */
-        case 0x3a: case 0x3e:
-        /* Haswell */
-        case 0x3c: case 0x3f: case 0x45: case 0x46:
-        /* Broadwell */
-        case 0x3d: case 0x47: case 0x4f: case 0x56:
-            return nh_lbr;
-        /* Skylake */
-        case 0x4e: case 0x5e:
-        /* Xeon Scalable */
-        case 0x55:
-        /* Cannon Lake */
-        case 0x66:
-        /* Goldmont Plus */
-        case 0x7a:
-        /* Ice Lake */
-        case 0x6a: case 0x6c: case 0x7d: case 0x7e:
-        /* Tiger Lake */
-        case 0x8c: case 0x8d:
-        /* Tremont */
-        case 0x86:
-        /* Kaby Lake */
-        case 0x8e: case 0x9e:
-        /* Comet Lake */
-        case 0xa5: case 0xa6:
-            return sk_lbr;
-        /* Atom */
-        case 0x1c: case 0x26: case 0x27: case 0x35: case 0x36:
-            return at_lbr;
-        /* Silvermont */
-        case 0x37: case 0x4a: case 0x4d: case 0x5a:
-        /* Airmont */
-        case 0x4c:
-            return sm_lbr;
-        /* Goldmont */
-        case 0x5c: case 0x5f:
-            return gm_lbr;
-        }
-        break;
-
-    case 15:
-        switch ( boot_cpu_data.x86_model )
-        {
-        /* Pentium4/Xeon with em64t */
-        case 3: case 4: case 6:
-            return p4_lbr;
-        }
-        break;
+    case INTEL_CORE2_DUNNINGTON:
+    case INTEL_CORE2_MEROM:
+    case INTEL_CORE2_PENRYN:
+        return c2_lbr;
+
+    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:
+    case INTEL_SANDYBRIDGE:
+    case INTEL_SANDYBRIDGE_X:
+    case INTEL_IVYBRIDGE:
+    case INTEL_IVYBRIDGE_X:
+    case INTEL_HASWELL:
+    case INTEL_HASWELL_G:
+    case INTEL_HASWELL_L:
+    case INTEL_HASWELL_X:
+    case INTEL_BROADWELL:
+    case INTEL_BROADWELL_D:
+    case INTEL_BROADWELL_G:
+    case INTEL_BROADWELL_X:
+        return nh_lbr;
+
+    case INTEL_SKYLAKE:
+    case INTEL_SKYLAKE_L:
+    case INTEL_SKYLAKE_X:
+    case INTEL_CANNONLAKE_L:
+    case INTEL_ATOM_GOLDMONT_PLUS:
+    case INTEL_ICELAKE:
+    case INTEL_ICELAKE_D:
+    case INTEL_ICELAKE_L:
+    case INTEL_ICELAKE_X:
+    case INTEL_TIGERLAKE:
+    case INTEL_TIGERLAKE_L:
+    case INTEL_ATOM_TREMONT_D:
+    case INTEL_KABYLAKE:
+    case INTEL_KABYLAKE_L:
+    case INTEL_COMETLAKE:
+    case INTEL_COMETLAKE_L:
+        return sk_lbr;
+
+    case INTEL_ATOM_BONNELL:
+    case INTEL_ATOM_BONNELL_MID:
+    case INTEL_ATOM_SALTWELL:
+    case INTEL_ATOM_SALTWELL_MID:
+    case INTEL_ATOM_SALTWELL_TABLET:
+        return at_lbr;
+
+    case INTEL_ATOM_SILVERMONT:
+    case INTEL_ATOM_SILVERMONT_MID:
+    case INTEL_ATOM_SILVERMONT_D:
+    case INTEL_ATOM_SILVERMONT_MID2:
+    case INTEL_ATOM_AIRMONT:
+        return sm_lbr;
+
+    case INTEL_ATOM_GOLDMONT:
+    case INTEL_ATOM_GOLDMONT_D:
+        return gm_lbr;
+
+    case INTEL_P4_PRESCOTT:
+    case INTEL_P4_PRESCOTT_2M:
+    case INTEL_P4_CEDARMILL:
+        return p4_lbr;
     }
 
     return NULL;
@@ -804,7 +807,7 @@ static void cf_check vmx_cpuid_policy_changed(struct vcpu *v)
     int rc = 0;
 
     if ( opt_hvm_fep ||
-         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor) )
+         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.vendor) )
         v->arch.hvm.vmx.exception_bitmap |= (1U << X86_EXC_UD);
     else
         v->arch.hvm.vmx.exception_bitmap &= ~(1U << X86_EXC_UD);
@@ -3073,68 +3076,68 @@ static bool __init has_if_pschange_mc(void)
      * IF_PSCHANGE_MC is only known to affect Intel Family 6 processors at
      * this time.
      */
-    if ( boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
-         boot_cpu_data.x86 != 6 )
+    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
+         boot_cpu_data.family != 6 )
         return false;
 
-    switch ( boot_cpu_data.x86_model )
+    switch ( boot_cpu_data.vfm )
     {
         /*
          * Core processors since at least Nehalem are vulnerable.
          */
-    case 0x1f: /* Auburndale / Havendale */
-    case 0x1e: /* Nehalem */
-    case 0x1a: /* Nehalem EP */
-    case 0x2e: /* Nehalem EX */
-    case 0x25: /* Westmere */
-    case 0x2c: /* Westmere EP */
-    case 0x2f: /* Westmere EX */
-    case 0x2a: /* SandyBridge */
-    case 0x2d: /* SandyBridge EP/EX */
-    case 0x3a: /* IvyBridge */
-    case 0x3e: /* IvyBridge EP/EX */
-    case 0x3c: /* Haswell */
-    case 0x3f: /* Haswell EX/EP */
-    case 0x45: /* Haswell D */
-    case 0x46: /* Haswell H */
-    case 0x3d: /* Broadwell */
-    case 0x47: /* Broadwell H */
-    case 0x4f: /* Broadwell EP/EX */
-    case 0x56: /* Broadwell D */
-    case 0x4e: /* Skylake M */
-    case 0x5e: /* Skylake D */
-    case 0x55: /* Skylake-X / Cascade Lake */
-    case 0x7d: /* Ice Lake */
-    case 0x7e: /* Ice Lake */
-    case 0x8e: /* Kaby / Coffee / Whiskey Lake M */
-    case 0x9e: /* Kaby / Coffee / Whiskey Lake D */
-    case 0xa5: /* Comet Lake H/S */
-    case 0xa6: /* Comet Lake U */
+    case INTEL_NEHALEM_G:
+    case INTEL_NEHALEM:
+    case INTEL_NEHALEM_EP:
+    case INTEL_NEHALEM_EX:
+    case INTEL_WESTMERE:
+    case INTEL_WESTMERE_EP:
+    case INTEL_WESTMERE_EX:
+    case INTEL_SANDYBRIDGE:
+    case INTEL_SANDYBRIDGE_X:
+    case INTEL_IVYBRIDGE:
+    case INTEL_IVYBRIDGE_X:
+    case INTEL_HASWELL:
+    case INTEL_HASWELL_X:
+    case INTEL_HASWELL_L:
+    case INTEL_HASWELL_G:
+    case INTEL_BROADWELL:
+    case INTEL_BROADWELL_G:
+    case INTEL_BROADWELL_X:
+    case INTEL_BROADWELL_D:
+    case INTEL_SKYLAKE_L:
+    case INTEL_SKYLAKE:
+    case INTEL_SKYLAKE_X:
+    case INTEL_ICELAKE:
+    case INTEL_ICELAKE_L:
+    case INTEL_KABYLAKE_L:
+    case INTEL_KABYLAKE:
+    case INTEL_COMETLAKE:
+    case INTEL_COMETLAKE_L:
         return true;
 
         /*
          * Atom processors are not vulnerable.
          */
-    case 0x1c: /* Pineview */
-    case 0x26: /* Lincroft */
-    case 0x27: /* Penwell */
-    case 0x35: /* Cloverview */
-    case 0x36: /* Cedarview */
-    case 0x37: /* Baytrail / Valleyview (Silvermont) */
-    case 0x4d: /* Avaton / Rangely (Silvermont) */
-    case 0x4c: /* Cherrytrail / Brasswell */
-    case 0x4a: /* Merrifield */
-    case 0x5a: /* Moorefield */
-    case 0x5c: /* Goldmont */
-    case 0x5f: /* Denverton */
-    case 0x75: /* Lightning Mountain */
-    case 0x7a: /* Gemini Lake */
-    case 0x86: /* Jacobsville */
+    case INTEL_ATOM_BONNELL:
+    case INTEL_ATOM_BONNELL_MID:
+    case INTEL_ATOM_SALTWELL_MID:
+    case INTEL_ATOM_SALTWELL_TABLET:
+    case INTEL_ATOM_SALTWELL:
+    case INTEL_ATOM_SILVERMONT:
+    case INTEL_ATOM_SILVERMONT_D:
+    case INTEL_ATOM_SILVERMONT_MID:
+    case INTEL_ATOM_SILVERMONT_MID2:
+    case INTEL_ATOM_GOLDMONT:
+    case INTEL_ATOM_GOLDMONT_D:
+    case INTEL_ATOM_GOLDMONT_PLUS:
+    case INTEL_ATOM_AIRMONT:
+    case INTEL_ATOM_AIRMONT_NP:
+    case INTEL_ATOM_TREMONT_D:
         return false;
 
     default:
         printk("Unrecognised CPU model %#x - assuming vulnerable to IF_PSCHANGE_MC\n",
-               boot_cpu_data.x86_model);
+               boot_cpu_data.model);
         return true;
     }
 }
@@ -3428,23 +3431,23 @@ static void __init lbr_tsx_fixup_check(void)
      * fixed up as well.
      */
     if ( cpu_has_hle || cpu_has_rtm ||
-         boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
-         boot_cpu_data.x86 != 6 )
+         boot_cpu_data.vendor != X86_VENDOR_INTEL ||
+         boot_cpu_data.family != 6 )
         return;
 
-    switch ( boot_cpu_data.x86_model )
+    switch ( boot_cpu_data.vfm )
     {
-    case 0x3c: /* HSM182, HSD172 - 4th gen Core */
-    case 0x3f: /* HSE117 - Xeon E5 v3 */
-    case 0x45: /* HSM182 - 4th gen Core */
-    case 0x46: /* HSM182, HSD172 - 4th gen Core (GT3) */
-    case 0x3d: /* BDM127 - 5th gen Core */
-    case 0x47: /* BDD117 - 5th gen Core (GT3)
-                  BDW117 - Xeon E3-1200 v4 */
-    case 0x4f: /* BDF85  - Xeon E5-2600 v4
-                  BDH75  - Core-i7 for LGA2011-v3 Socket
-                  BDX88  - Xeon E7-x800 v4 */
-    case 0x56: /* BDE105 - Xeon D-1500 */
+    case INTEL_HASWELL:     /* HSM182, HSD172 - 4th gen Core */
+    case INTEL_HASWELL_X:   /* HSE117 - Xeon E5 v3 */
+    case INTEL_HASWELL_L:   /* HSM182 - 4th gen Core */
+    case INTEL_HASWELL_G:   /* HSM182, HSD172 - 4th gen Core (GT3) */
+    case INTEL_BROADWELL:   /* BDM127 - 5th gen Core */
+    case INTEL_BROADWELL_G: /* BDD117 - 5th gen Core (GT3)
+                               BDW117 - Xeon E3-1200 v4 */
+    case INTEL_BROADWELL_X: /* BDF85  - Xeon E5-2600 v4
+                               BDH75  - Core-i7 for LGA2011-v3 Socket
+                               BDX88  - Xeon E7-x800 v4 */
+    case INTEL_BROADWELL_D: /* BDE105 - Xeon D-1500 */
         break;
     default:
         return;
@@ -3473,19 +3476,19 @@ static void __init ler_to_fixup_check(void)
      * that are not equal to bit[47].  Attempting to context switch this value
      * may cause a #GP.  Software should sign extend the MSR.
      */
-    if ( boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
-         boot_cpu_data.x86 != 6 )
+    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
+         boot_cpu_data.family != 6 )
         return;
 
-    switch ( boot_cpu_data.x86_model )
+    switch ( boot_cpu_data.vfm )
     {
-    case 0x3d: /* BDM131 - 5th gen Core */
-    case 0x47: /* BDD??? - 5th gen Core (H-Processor line)
-                  BDW120 - Xeon E3-1200 v4 */
-    case 0x4f: /* BDF93  - Xeon E5-2600 v4
-                  BDH80  - Core-i7 for LGA2011-v3 Socket
-                  BDX93  - Xeon E7-x800 v4 */
-    case 0x56: /* BDE??? - Xeon D-1500 */
+    case INTEL_BROADWELL:   /* BDM131 - 5th gen Core */
+    case INTEL_BROADWELL_G: /* BDD??? - 5th gen Core (H-Processor line)
+                             * BDW120 - Xeon E3-1200 v4 */
+    case INTEL_BROADWELL_X: /* BDF93  - Xeon E5-2600 v4
+                             * BDH80  - Core-i7 for LGA2011-v3 Socket
+                             * BDX93  - Xeon E7-x800 v4 */
+    case INTEL_BROADWELL_D: /* BDE??? - Xeon D-1500 */
         ler_to_fixup_needed = true;
         break;
     }
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:37:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:37:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254026.1550027 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15Vt-0007J7-5d; Fri, 13 Mar 2026 16:37:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254026.1550027; Fri, 13 Mar 2026 16: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 1w15Vt-0007IC-1a; Fri, 13 Mar 2026 16:37:25 +0000
Received: by outflank-mailman (input) for mailman id 1254026;
 Fri, 13 Mar 2026 16:37: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=rc6w=BN=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1w15Vg-00040A-VV
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:37:12 +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 e1601c20-1efa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:37:11 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by CH3PR03MB7412.namprd03.prod.outlook.com (2603:10b6:610:198::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Fri, 13 Mar
 2026 16:36:44 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9700.015; Fri, 13 Mar 2026
 16:37: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: e1601c20-1efa-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HujcbZVQlkiQ4pwQH9DE3gv7KcvxEatO3ZsNp5wda7TkwrnF2g0b3zZQZdd236NU9uhzu2rsY9k/51PSNyaPppVcCERJYDAyfp1ZX9bTMg2N1o4nFjBQc8aQRYxaioKTBfXfn0ugeuFFy4qiN1vWfbzhk1zoqwpf0HsBlvZ/FyTAs7hc1ycr1bOht/hNsYSfUd2ZjmKQFJInFczJZzZBVm9OA2kxRapOXTWeLvBE2YvDekq7jp3RE+VI7KHPPDnQMNueICna26cDOeM+JVMXVJadcTIv9wKw4tnwN78XJi5LqMK/klyN9iMtcqYfCuNcCDVsC6wh68BF8JBhxO6Qmg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Yd8n5uLy2YBtVrAJOKIpy1iVYTwPAmDskE+Dkrm1v1c=;
 b=wikCIBkDNBhVhrB7RBKFnsn46Z7d8wGbJwIEdN3SVb0Ky20hvsHnaNDDyBJTpfakcKQhXAj9dgxTNu+9Z7sDp5Ka8u0Dk8bLerFyJj8Z1pyuJHwcQ8fpvRtS0x2ZY5BSFMJ+3IJH9oWwLtfP3xLR/N9yZV6XTs0933+FnVDn60pj3cn9avqZjH1CyBbCtrU9++5Wx5gOuwshKcdRfWOt/41tFI2Y74oLRNmLKX2YX5f2qi56a9fFFq6h5DifFdtBvx1rxQdI+d7JvpQJzyAn1rXn4O1/UbTHpxZgTmbyGBWFr/lUyTdTEO3FWrKY+A2QwXS5BLHEfhf5S/asxIR6/A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Yd8n5uLy2YBtVrAJOKIpy1iVYTwPAmDskE+Dkrm1v1c=;
 b=dKNqnz7gi25nKxkUEYmQnstz9cowR53FGQ4Jgqsm52VaSeOncr+YWDm7xC6fxaHre5F9MZLqhy9P1Tuns0KfUDq/3cDrje8/15GnCqf0ExgbIi2xz2tXjOya0hEx4prZZg7hEBQG6JbvbTKojCZjdIZ/DwMdVJJfi9beG1094O0=
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 v v3 7/7] x86: Remove x86 prefixed names from cpuinfo
Date: Fri, 13 Mar 2026 16:36:30 +0000
Message-ID: <20260313163630.1073019-8-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20260313163630.1073019-1-kevin.lampis@citrix.com>
References: <20260313163630.1073019-1-kevin.lampis@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0308.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:197::7) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|CH3PR03MB7412:EE_
X-MS-Office365-Filtering-Correlation-Id: 8c28bd30-667a-405d-a693-08de811ec1aa
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	rlkNn/n0nqb/H9RqKcNWbEagWf83eRo8Hp8EO/d79NjWFxxfgRkaAbtHUuHB6nkjT+o+Afo2a9s5RSzSA92ukDCzzBSwZgEIGR9GXjkkdv8CXTemveS3yTzat6a7CwQ84DbkAHAUwKhFqpwZyVsEMmeEQ4HS958mHTstm1o+I/7yKAOxb/0aFjRa1ZCHZTh3vwYSuXPZxpF3nFUDx/KOsv/sPe6zkbOKYEPpCagaZqe7n+/RIt2uYsFFIiQ7ZYFoQzyEPWb5rebU+COhveKNH03ooIMxDTDxVug1P3+JpkD5ks8uol1A4DHP9s5c5GMYTgrVUbFKD/G/VRO+9oaY9B4REYEwjHun9ux72J12agwNsgEDPAwkHc2pKD2M9M9bVC5KnyHM+2N9DOyuy08U4iTAqowF/6m+zbt/C81d6rnhEUu2qRnS2FElAciKXVgNcMN2XDJbL09K0lt6PMXWUspq1HWMnV9s2Fst9VxXvOhk7kQ0aKQauuwPDAe/w+LHRhrxzkVgsnrs2ahbhVIvbuutsRm7sHVlynkn3anwzI6ORJF/p3GbN00AR98jJHSC+PVD5n+DzknqUm1uobVzEEzPbtdT2k7NBEpVzFZQ4FF29T2Ziv7FcbqCDOiVajZROeK8zp6XtTG4UAR1IdE2psXBOSOTo1uZWRUHTkFgl2H4bXs4AbTzp7hwtj2Dw6mK2oUJIczIJrYTuYlFXW7nCLRw3RE3Ngq5ZPeMHCbyPlE=
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)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?fL5UP2X4258NefnzQ90Agk85sctdBd4LR9e0Nn6Z77eeBV+2LBLmtRAF68L7?=
 =?us-ascii?Q?VzsvIttNINBCWpGN+n9A7bSi4+70PkAhyWkcO10CTuXSbKvsaTF6Vmzb7RGZ?=
 =?us-ascii?Q?uLL+NiSAnlqK1ZUVjLETaHPFKntMK2QKOWl+/lgItuB0rdBKYmFwsnnHoeFW?=
 =?us-ascii?Q?O5k4TtjmYsUFrTnp5puE4OJsuG3tf2kzxgNr2mC5jqEVAcqz8zANcKsIqLxW?=
 =?us-ascii?Q?vDbpCCVOLCGRiKbf0EECbhxzsRHF7Re9xTNUvE9wyBpNpOxqfMIj+r8QgMPF?=
 =?us-ascii?Q?VUv6u/JcXu9OMVQ5nxOr1I1BOAm8LxZM/vOhUVDyyk1mQbgBceTVSlBjuAwR?=
 =?us-ascii?Q?VylJpmf6MXD6MFIvDIs3Vms/JfENN9z/iwMF/LXYPXlHsmeObA0kRPBxWtFV?=
 =?us-ascii?Q?sCUnovp5hK6q34hdxQKpx/EAqdpxriQiKMVnGIJ+EHR7sZp7VbumvLmB3ToA?=
 =?us-ascii?Q?fVHZ1gZO7Q2rJjhaOucTeDTLxLtKLyDsj/66lhxXBSAHnPOUa0fr+iF6wOxv?=
 =?us-ascii?Q?dusbWccNNE/RGjuUskfnvS6bOXkwoNK0rGBsbaQUadsersk7x+eMGZl5ICCB?=
 =?us-ascii?Q?wfM/azeMVDtKTaEFblilzyWjDsoymezcy+Z3/hEmLHKkQaz2UOaYEfu5mG6v?=
 =?us-ascii?Q?3rO3pmh8dsGk0uLtkS9KM4VFg/YROWBLXKcAQYLdkupj+qNJXx+KlZsO+2Wx?=
 =?us-ascii?Q?no4uqfaB4p7bWpiTETMKapPXilaXz2sXV1Ej+ZrTecWXVV+2ML6FtLJdQmnQ?=
 =?us-ascii?Q?N5r+gOyzP2v7Qkm6huoMeQW/x4w93H7dmKhNddOoZ0HLAW3Y6/epxxWpYItt?=
 =?us-ascii?Q?6gqWIRGiADK6++8TP9a18M5QY39lOMwGTpJXCDAb33sauWMyrYyChsyJjvk2?=
 =?us-ascii?Q?mNtqRjp0orPZB+tqix2QMz/2at4JNXzDm17dO0aBak1T06UxlYdi0bErgGdG?=
 =?us-ascii?Q?wUyK/RNZ3aFdBhoPujkmTNhX9LAGy7VvOvukbrlLU4nk7xImKROtMLucw6Zw?=
 =?us-ascii?Q?J6IdeGu8fMnF+3BULxxkgbtfrfPhKO5r2unxEMl+kkPjFIj68nmosVMf1bfb?=
 =?us-ascii?Q?1o1tHq31rIxQDiEfniOVZ4GWyYcHMYOJFtDZ+bb1qzj4qJ6/VCnmD1PjxMdx?=
 =?us-ascii?Q?h7CT8rzzQw5GjodJjvKWMfwdt5Yv6x89lerVrSwqm17jgZ4Hom2CBtjw5WE0?=
 =?us-ascii?Q?czIBkEC3Y/dWimXZOM9MVzf2xJ1m5Fvps0zEbodGSS9DiDGeNNqWmoBoHqHF?=
 =?us-ascii?Q?bf099d46mROkIvwM9j0i3K9JIrsAQIF8H6Vta1rs0c9TqZU+4zLr2c5BbrcI?=
 =?us-ascii?Q?HpavBLAJGc40Pl+/Q8hy5b9KPB+8nXSGF7giJw3jLzXV5U8nOz+NxRii/Uvz?=
 =?us-ascii?Q?K2IGTvoOCDMysecn+MkijVSGhQcT4aBAnsxQYdx4MC1gQ83urLHtYE184Sue?=
 =?us-ascii?Q?uRs3kPkSp1Shtb+NuyDfYW3ti+CCRC96oc7LfKUkX3iOXQvDkOSjeDiyjwho?=
 =?us-ascii?Q?B1MBUlwy+j/pOvYDnC+5OfOVN5+bvLGQ5siL9UfiiAel1IIxrQ2ztXCUTIOl?=
 =?us-ascii?Q?zSwKuw7GSc9DauJOknXq7hzG3bxCRbczLJtAr0P97ivAYggZhi2/t50OaHo3?=
 =?us-ascii?Q?GC9EiWB4TfPisCF4DYJZX+2GWdP4P5p5DSIdF5hrc+YfL9ZX2ZtWt5dkCD5y?=
 =?us-ascii?Q?9LkacNYUdUkJHWhHcWTv1WU4UTi8oZFR/PfRYx0VttFBMWKYNoF6HNH5qIqX?=
 =?us-ascii?Q?T6bbJ5JPYQ=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8c28bd30-667a-405d-a693-08de811ec1aa
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Mar 2026 16:37:03.2855
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: snsrs0O6E+0fUmQq6A90BcItMWtw4DnLvCq/Mm3OzAi+IfdzxPijcEBv79h+24l+N8WmLSKXKkDpzhEazudQyw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR03MB7412

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
Changes in v2:
- Remove the unneeded unions

Changes in v3:
- No changes
---
 xen/arch/x86/include/asm/cpufeature.h | 21 ++++-----------------
 1 file changed, 4 insertions(+), 17 deletions(-)

diff --git a/xen/arch/x86/include/asm/cpufeature.h b/xen/arch/x86/include/asm/cpufeature.h
index dcd223d84f..11661a114f 100644
--- a/xen/arch/x86/include/asm/cpufeature.h
+++ b/xen/arch/x86/include/asm/cpufeature.h
@@ -43,29 +43,16 @@
 #ifndef __ASSEMBLER__
 
 struct cpuinfo_x86 {
-    /* TODO: Phase out the x86 prefixed names. */
     union {
         struct {
-            union {
-                uint8_t x86_model;
-                uint8_t model;
-            };
-            union {
-                uint8_t x86;
-                uint8_t family;
-            };
-            union {
-                uint8_t x86_vendor;
-                uint8_t vendor;
-            };
+            uint8_t model;
+            uint8_t family;
+            uint8_t vendor;
             uint8_t _rsvd;             /* Use of this needs coordinating with VFM_MAKE() */
         };
         uint32_t vfm;                  /* Vendor Family Model */
     };
-    union {
-        uint8_t x86_mask;
-        uint8_t stepping;
-    };
+    uint8_t stepping;
 
     unsigned int cpuid_level;          /* Maximum supported CPUID level */
     unsigned int extended_cpuid_level; /* Maximum supported CPUID extended level */
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:37:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:37:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254031.1550029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15Vt-0007LF-CO; Fri, 13 Mar 2026 16:37:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254031.1550029; Fri, 13 Mar 2026 16: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 1w15Vt-0007KX-9L; Fri, 13 Mar 2026 16:37:25 +0000
Received: by outflank-mailman (input) for mailman id 1254031;
 Fri, 13 Mar 2026 16:37: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=+CwN=BN=bounce.vates.tech=bounce-md_30504962.69b43cb8.v1-4c742f4a7f4f4904ac3549a756e6bd0d@srs-se1.protection.inumbo.net>)
 id 1w15To-0006Ek-Nv
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:35:16 +0000
Received: from mail134-15.atl141.mandrillapp.com
 (mail134-15.atl141.mandrillapp.com [198.2.134.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9947323d-1efa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:35:08 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-15.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4fXVT42HJpzPm0V3p
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:35:04 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 4c742f4a7f4f4904ac3549a756e6bd0d; Fri, 13 Mar 2026 16:35:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9947323d-1efa-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773419704; x=1773689704;
	bh=Hgw6ALXwahveH8XpeaP1oYUCpV9mVDJR9YzEbJZFSCM=;
	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=Mw1wDR5DHu8B4KkyqcCPxxNRFao0l9qHnuMzUvOEDFGgGAN4p8xZ7tWMBSSDTzm1f
	 bvhCjJsH1efWgoJQ6KRhB/yt+CT5gOT59mKx5PsOpnkruvxo3m7XpLNBl8CEItgPKK
	 7+rSslNK6mh/aLYc2nq51CXrVZ2kft2WEAYZUWscRdGaHyRSYhdwsHSchSE9PqzIgO
	 UKIe0jccpuhd/bZ7vWlskZcf0kBVeAEeaQvIfRPdHdXt3mliQbQVNL9HAxz6NZhtFf
	 Cd0OdZc8ut1N7z7Q+Xs92/+A8oH9YgG78C2U0LX1hTKbJ5JPL3aeSGFkqHjgvHcZkc
	 3MiEIXYpyAXtA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773419704; x=1773680204; i=thierry.escande@vates.tech;
	bh=Hgw6ALXwahveH8XpeaP1oYUCpV9mVDJR9YzEbJZFSCM=;
	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=BEn/o7TCPtwEkYCRFfTyo80k7wi0W1aCZ8bJzjbv272Vg+pZKFrYx/wBtmsYO/CU+
	 dHXvdJtKNEn+8ui23EFuXwbZHEGliqNY7m4QpOn3s6dcp4QG+aLLsf0c0JFWwWEPAO
	 PE7F4AQhKywwk0w2t01HOcPqqmdxygPL5qCYpI1D2jo6E9pBX+HatfUp/Izy8LO7ij
	 7LpevsfSpK9ENg9AWlDBzSWdACdtvNyszxXWbtLFxcedk5r5HoLjbjfVb1IU/Mzjxr
	 C7PYxVfEhQMjiaHN3LVXEZEh/RIqEyiXcfjZ8afe3nAfF75foUosFcC43c+BLS6/ku
	 1WQV9hkKxtntQ==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=2009/17]=20xev/hvm:=20Add=20HVMOP=5Fget|set=5Fecam=5Fspace=20hypercalls?=
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: 1773419702933
To: xen-devel@lists.xenproject.org
Cc: "Thierry Escande" <thierry.escande@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: <20260313163455.790692-10-thierry.escande@vates.tech>
In-Reply-To: <20260313163455.790692-1-thierry.escande@vates.tech>
References: <20260313163455.790692-1-thierry.escande@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.4c742f4a7f4f4904ac3549a756e6bd0d?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:35:04 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This patch adds 2 HVMOP hypercalls, HVMOP_get|set_ecam_space, used to
set and get the base address and size of the PCIe ECAM space as
configured by hvmloader.

Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
---
 xen/arch/x86/hvm/hvm.c            | 52 +++++++++++++++++++++++++++++++
 xen/arch/x86/include/asm/domain.h |  4 +++
 xen/include/public/hvm/hvm_op.h   | 11 +++++++
 3 files changed, 67 insertions(+)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 4d37a93c57..a46dfa955d 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -5195,6 +5195,58 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
         rc = current->hcall_compat ? compat_altp2m_op(arg) : do_altp2m_op(arg);
         break;
 
+    case HVMOP_set_ecam_space: {
+        xen_hvm_ecam_space_t ecam;
+        struct domain *d;
+
+        if ( copy_from_guest( &ecam, guest_handle_cast(arg, xen_hvm_ecam_space_t), 1 ) )
+            return -EFAULT;
+
+        d = rcu_lock_domain_by_any_id(ecam.domid);
+        if ( d == NULL )
+            return -ESRCH;
+
+        if ( d->arch.ecam_addr ) {
+            rcu_unlock_domain(d);
+            return -EFAULT;
+        }
+
+        if ( (ecam.size >> 28) || (!ecam.addr) ) {
+            rcu_unlock_domain(d);
+            return -EINVAL;
+        }
+
+        d->arch.ecam_addr = ecam.addr;
+        d->arch.ecam_size = ecam.size;
+
+        rcu_unlock_domain(d);
+        break;
+    }
+
+    case HVMOP_get_ecam_space: {
+        xen_hvm_ecam_space_t ecam;
+        struct domain *d;
+
+        if ( copy_from_guest( &ecam, guest_handle_cast(arg, xen_hvm_ecam_space_t), 1 ) )
+            return -EFAULT;
+
+        d = rcu_lock_domain_by_any_id(ecam.domid);
+        if ( d == NULL )
+            return -ESRCH;
+
+        if ( ! d->arch.ecam_addr || ! d->arch.ecam_size ) {
+            rcu_unlock_domain(d);
+            return -EINVAL;
+        }
+
+        ecam.addr = d->arch.ecam_addr;
+        ecam.size = d->arch.ecam_size;
+        rc = __copy_to_guest(arg, &ecam, 1) ? -EFAULT : 0;
+
+        rcu_unlock_domain(d);
+        break;
+    }
+
     default:
         rc = -ENOSYS;
         break;
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index ad7f6adb2c..24ec33fc4d 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -476,6 +476,10 @@ struct arch_domain
 
     /* Emulated devices enabled bitmap. */
     uint32_t emulation_flags;
+
+    /* PCI ECAM space emulation */
+    uint64_t ecam_addr;
+    uint32_t ecam_size;
 } __cacheline_aligned;
 
 #ifdef CONFIG_HVM
diff --git a/xen/include/public/hvm/hvm_op.h b/xen/include/public/hvm/hvm_op.h
index e22adf0319..c84febc37c 100644
--- a/xen/include/public/hvm/hvm_op.h
+++ b/xen/include/public/hvm/hvm_op.h
@@ -166,6 +166,17 @@ struct xen_hvm_get_mem_type {
 typedef struct xen_hvm_get_mem_type xen_hvm_get_mem_type_t;
 DEFINE_XEN_GUEST_HANDLE(xen_hvm_get_mem_type_t);
 
+#define HVMOP_set_ecam_space    16
+#define HVMOP_get_ecam_space    17
+struct xen_hvm_ecam_space {
+    domid_t  domid;
+    uint16_t pad[3]; /* align next field on 8-byte boundary */
+    uint64_t addr;
+    uint32_t size;
+};
+typedef struct xen_hvm_ecam_space xen_hvm_ecam_space_t;
+DEFINE_XEN_GUEST_HANDLE(xen_hvm_ecam_space_t);
+
 /* Following tools-only interfaces may change in future. */
 #if defined(__XEN__) || defined(__XEN_TOOLS__)
 
-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:37:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:37:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254032.1550035 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15Vt-0007Q2-Mk; Fri, 13 Mar 2026 16:37:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254032.1550035; Fri, 13 Mar 2026 16: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 1w15Vt-0007OE-Iw; Fri, 13 Mar 2026 16:37:25 +0000
Received: by outflank-mailman (input) for mailman id 1254032;
 Fri, 13 Mar 2026 16:37: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=vzHK=BN=bounce.vates.tech=bounce-md_30504962.69b43cb9.v1-444c273532074034b177761798950319@srs-se1.protection.inumbo.net>)
 id 1w15Tr-0006Ek-OD
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:35:19 +0000
Received: from mail134-15.atl141.mandrillapp.com
 (mail134-15.atl141.mandrillapp.com [198.2.134.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9b963385-1efa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:35:12 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-15.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4fXVT53DRJzPm0VQy
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:35:05 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 444c273532074034b177761798950319; Fri, 13 Mar 2026 16:35: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: 9b963385-1efa-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773419705; x=1773689705;
	bh=zCToo0BUt48GgGQBpWxoSVCEuPxLKsIzXwRS6hk9B5M=;
	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=kK1q9Z6xLekpynpevRex7JTlsukH91Fx35HwdyBHKHuuD2dWWaQDF4vnoFaocAtF4
	 TltRooNr2fn1uTGl+udUA9UwV8dzvHn0y//mDLmD4us/OC8vrmNFaiYwC9YA5MVv9T
	 Rz7TY/hT/t6rwIuor21WAzHC5ZIJIz5+15+tkipYZldQvno/Ekv8o6xl4sd//Zm2Pl
	 dGH+37qCjBx/Uv0f0d1jm8iqldvU5+KtSmxM1dYqMp0XZr3hX3gRf77akaq8Vt7Jms
	 UTcJ36e2Niliudpniz/hdzg8QFO9kHBR9wAJ56VGeVi4KlkYrr+tkkw3zvES6rK/z4
	 w8w0A4LZ0rX+Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773419705; x=1773680205; i=thierry.escande@vates.tech;
	bh=zCToo0BUt48GgGQBpWxoSVCEuPxLKsIzXwRS6hk9B5M=;
	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=HrYXqO+KVPt/1J6K75FQMSUAtjTQtazfmHaheTF5Pg2nm6sIC5UbSE67B2mW9sN5O
	 r9OtUiJfo2ZovCd/BUHGREH1IDxS8IjJ577zYKqKUyr/QQnTmFjKmSgApD4GnZjCUW
	 vvX2J1Zi45jYSzlTgmiDnFMhvirvR9JHqNOmg3ijNjFl1vTmrzTcRQVm4fW7rrrAw/
	 DEYoJBv1ATrEe0tuEO5oKL5BSXUWijnV5gqhoOeDKqnN1I3+gR9kB4JfBbvrPpnW0z
	 NHPeDLdpbukBtH32NvbsKH2UGW1qGLBBosobFsZ0p5b7x3kyblxFmwUJd3EgS7Nb5R
	 xEjpdRvQTA7Bw==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=2017/17]=20docs:=20provide=20description=20for=20device=5Fmodel=5Fmachine=20option?=
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: 1773419704742
To: xen-devel@lists.xenproject.org
Cc: "Thierry Escande" <thierry.escande@vates.tech>, "Anthony PERARD" <anthony.perard@vates.tech>, "Alexey Gerasimenko" <x1917x@gmail.com>
Message-Id: <20260313163455.790692-18-thierry.escande@vates.tech>
In-Reply-To: <20260313163455.790692-1-thierry.escande@vates.tech>
References: <20260313163455.790692-1-thierry.escande@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.444c273532074034b177761798950319?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:35:05 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This patch adds description for 'device_model_machine' option which allows
to control which chipset will be emulated by device model.

Signed-off-by: Alexey Gerasimenko <x1917x@gmail.com>
Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
---
 docs/man/xl.cfg.5.pod.in | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index 27c455210b..67a5bc54a5 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -2963,6 +2963,33 @@ you have existing guests then, depending on the nature of the guest
 Operating System, you may wish to force them to use the device
 model which they were installed with.
 
+=item B<device_model_machine="STRING">
+
+Selects which chipset the device model should emulate for this
+guest.
+
+Valid options are:
+
+=over 4
+
+=item B<"i440">
+
+Use i440 emulation (a default setting)
+
+=item B<"q35">
+
+Use Q35/ICH9 emulation. This enables additional features for
+PCIe device passthrough
+
+=back
+
+Note that omitting device_model_machine parameter means i440 system
+by default, so the default behavior doesn't change for old domain
+config files.
+
+It is recommended to install the guest OS from scratch to avoid issues
+due to the emulated platform change.
+
 =item B<device_model_override="PATH">
 
 Override the path to the binary to be used as the device-model running in
-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:37:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:37:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254035.1550044 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15Vu-0007bY-Bv; Fri, 13 Mar 2026 16:37:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254035.1550044; Fri, 13 Mar 2026 16:37:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15Vu-0007YY-1z; Fri, 13 Mar 2026 16:37:26 +0000
Received: by outflank-mailman (input) for mailman id 1254035;
 Fri, 13 Mar 2026 16:37: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=wk8P=BN=bounce.vates.tech=bounce-md_30504962.69b43cb8.v1-2bcbd756c26342c989cfe55e6cc82acb@srs-se1.protection.inumbo.net>)
 id 1w15Tp-0006Ek-O4
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:35:17 +0000
Received: from mail134-15.atl141.mandrillapp.com
 (mail134-15.atl141.mandrillapp.com [198.2.134.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9a79d599-1efa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:35:10 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-15.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4fXVT42nVczPm0V3w
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:35:04 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 2bcbd756c26342c989cfe55e6cc82acb; Fri, 13 Mar 2026 16:35:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9a79d599-1efa-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773419704; x=1773689704;
	bh=LlYPKk0xH8yJMporrB500MvTCwnh+CM9hoJ6qpHIVMQ=;
	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=hPzO+XdGGHvtKFO1fOJgo0kn40j1p7JS0jnOI/cOk+iPYBCdCWyvEYlpIh16M8yt8
	 yB7xy16VrFIzVtjjGO9cBoe3HEARG3Z3N/q89InuJOFVCV0o6S7O2CIufJi/gsXusi
	 b9KRUBqXzoET0JovhnURvBaKkGCnpomfbImSrhtQRBQJoiA3G4n6vDYzimT/X7DJ6q
	 ak4M8dhmzRT1dCL8+v6BCI0Gb/85AI6kW7YZpJx6bDQo/qmiwJAF67H5zYr29M5cwI
	 c0Hwe6I2SR8jFRWM0QtJRfCTqIbnfeajxw3UnWT6PBbzELN//WYhdHwCSubS0KOLqX
	 wAwgBA5Y3kdlA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773419704; x=1773680204; i=thierry.escande@vates.tech;
	bh=LlYPKk0xH8yJMporrB500MvTCwnh+CM9hoJ6qpHIVMQ=;
	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=YnPrZi1NG75A8b7T72/WH8GTlzBXWpWMNj9KPFvcXXpO4uyrhNwbz/XJ6DTImMNGZ
	 99vT2Nz2DRHLs8CDuvCjiNmpeKhMHoJroKOf4q64qGtNvttBpE7IxZnbjJyr+Lzi/i
	 GRsBkc9NWNZbZ8yiw3Lf73gZtjyHl07waYrgCMX7k6Qk4kK/qhneRKDDZgl3oW9vLM
	 CJMLApsEdmjyMcN6ncMYM2OInoqfv7VdWr8N5ZFdTzX7DjF53F4HTf/LqLDbbgE9nB
	 /mGFXQX5gXEQhK9cwP4RTAIdL4xdLOvPYYwCB0nRGlgmKqfXuLekJJBO4deoCzXzHu
	 fTmgyYr4kdilg==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=2013/17]=20libxl:=20Add=20xen-platform=20device=20for=20Q35=20machine?=
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: 1773419703848
To: xen-devel@lists.xenproject.org
Cc: "Thierry Escande" <thierry.escande@vates.tech>, "Anthony PERARD" <anthony.perard@vates.tech>, "Juergen Gross" <jgross@suse.com>
Message-Id: <20260313163455.790692-14-thierry.escande@vates.tech>
In-Reply-To: <20260313163455.790692-1-thierry.escande@vates.tech>
References: <20260313163455.790692-1-thierry.escande@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.2bcbd756c26342c989cfe55e6cc82acb?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:35:04 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Current Xen/QEMU method to control Xen Platform device is done by
setting the 'xen_platform_device' option value that modifies QEMU
emulated machine type, namely xenfv <--> pc.

In order to avoid multiplying machine types, this patch supplies
'-device xen-platform' directly to Qemu. To maintain backward
compatibility with existing Xen/QEMU setups, this is currently only
applicable to q35 machine. i440 emulation uses the old method (xenfv/pc
machine) to control Xen Platform device.

Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
---
 tools/libs/light/libxl_dm.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/tools/libs/light/libxl_dm.c b/tools/libs/light/libxl_dm.c
index 36f2813cde..a64e4779d0 100644
--- a/tools/libs/light/libxl_dm.c
+++ b/tools/libs/light/libxl_dm.c
@@ -1811,6 +1811,12 @@ static int libxl__build_device_model_args_new(libxl__gc *gc,
                 flexarray_append(dm_args, state->dm_runas);
             }
         }
+
+        if (b_info->device_model_machine == LIBXL_DEVICE_MODEL_MACHINE_Q35 &&
+            libxl_defbool_val(b_info->u.hvm.xen_platform_pci)) {
+            flexarray_append(dm_args, "-device");
+            flexarray_append(dm_args, "xen-platform");
+        }
     }
     flexarray_append(dm_args, NULL);
     *args = (char **) flexarray_contents(dm_args);
-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:37:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:37:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254052.1550063 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15W4-0000Nt-Gn; Fri, 13 Mar 2026 16:37:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254052.1550063; Fri, 13 Mar 2026 16:37: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 1w15W4-0000Nj-CS; Fri, 13 Mar 2026 16:37:36 +0000
Received: by outflank-mailman (input) for mailman id 1254052;
 Fri, 13 Mar 2026 16:37: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=L2ae=BN=bounce.vates.tech=bounce-md_30504962.69b43cb8.v1-fdb286a6cc10436981f303e25614d07d@srs-se1.protection.inumbo.net>)
 id 1w15Tn-0006Ek-Nt
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:35:15 +0000
Received: from mail134-15.atl141.mandrillapp.com
 (mail134-15.atl141.mandrillapp.com [198.2.134.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9952ad39-1efa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:35:08 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-15.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4fXVT42VDCzPm0V3t
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:35:04 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 fdb286a6cc10436981f303e25614d07d; Fri, 13 Mar 2026 16:35:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9952ad39-1efa-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773419704; x=1773689704;
	bh=R5584u5biB3YH5gAUKEPnNqwevOZ2xVZukEW5ifg0cU=;
	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=K8fmtxl4tV4VUw1ecE5JmTIfKzMctA4yaJpZEuc1zolpDAYI7O5Rh8nnqVu6/xuoA
	 Mxa9pKq6ieNdc0UnkXW6SBSZP+6O0kFSspQr8P7afj+tAgZIGgWjUt1u019whoLcLx
	 5vmN8WGf2+nkd+C9xFYZKUeQ4NgrqWsl3C9QornuBENSbfe6nfLDEa3jLE9madLfFK
	 SX4lx5l7vjQHKpRaXOkuiPVTv+UAfbpA3SDpNwsLW8iszld2OsHi+av65+yqqFE12L
	 lQKmnsfj/3uVXk3cs6oWY+7rj/jLuw5RzVeGJGK+MUH6rjIp55NvxJSJvboYkNxv53
	 mY06geEHGf4Nw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773419704; x=1773680204; i=thierry.escande@vates.tech;
	bh=R5584u5biB3YH5gAUKEPnNqwevOZ2xVZukEW5ifg0cU=;
	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=wzVwF4Kn0wqWWPxDk4RbPZB5FJ9YfNjPsIDIxv8xSXqqtOhv8STPnZes+IhMa0W3p
	 I4baaUD7usvgCeooAE90QKR5luoUiZVHRPOjUaLTyGiKTV/GJVJErBIxg2fEiU5qCN
	 VTmlr1KFvJIS+xLMAA632t09nYEsFPg0OpdR1PpjQNnBlD3PdkNhQLyXBcQbXDcrYr
	 kcfeuGmrHxgmI06gVePzooylPkxuNfX3bQMYbKHUp5bxbEC53AuTyHX5bvc12w62Qv
	 kAtKGsK1MeQXx0VtUUAaXDlAEnMrWyR7a2ek+wYkNXEF8UwWu5O7aK88VwB7WtNX8A
	 gUTVu/DULUS5A==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=2012/17]=20libxl:=20Q35=20support=20(new=20option=20device=5Fmodel=5Fmachine)?=
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: 1773419703641
To: xen-devel@lists.xenproject.org
Cc: "Thierry Escande" <thierry.escande@vates.tech>, "Anthony PERARD" <anthony.perard@vates.tech>, "Juergen Gross" <jgross@suse.com>, "Alexey Gerasimenko" <x1917x@gmail.com>
Message-Id: <20260313163455.790692-13-thierry.escande@vates.tech>
In-Reply-To: <20260313163455.790692-1-thierry.escande@vates.tech>
References: <20260313163455.790692-1-thierry.escande@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.fdb286a6cc10436981f303e25614d07d?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:35:04 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Provide a new domain config option to select the emulated machine type,
device_model_machine. It has following possible values:
- "i440" - i440 emulation (default)
- "q35" - emulate a Q35 machine. By default, the storage interface is
AHCI.

Note that omitting device_model_machine parameter means i440 system
by default, so the default behavior doesn't change for existing domain
config files.

Setting device_model_machine to "q35" sends '-machine q35,accel=xen'
argument to QEMU. Unlike i440, there is no separated machine type to
enable/disable Xen platform device, it is controlled via a machine
property only. See 'libxl: Add xen-platform device for Q35 machine'
patch for a detailed description.

Signed-off-by: Alexey Gerasimenko <x1917x@gmail.com>
Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
---
 tools/libs/light/libxl_dm.c      | 16 ++++++++++------
 tools/libs/light/libxl_types.idl |  7 +++++++
 tools/xl/xl_parse.c              | 14 ++++++++++++++
 3 files changed, 31 insertions(+), 6 deletions(-)

diff --git a/tools/libs/light/libxl_dm.c b/tools/libs/light/libxl_dm.c
index 511ec76a65..36f2813cde 100644
--- a/tools/libs/light/libxl_dm.c
+++ b/tools/libs/light/libxl_dm.c
@@ -1562,13 +1562,17 @@ static int libxl__build_device_model_args_new(libxl__gc *gc,
             flexarray_append(dm_args, b_info->extra_pv[i]);
         break;
     case LIBXL_DOMAIN_TYPE_HVM:
-        if (!libxl_defbool_val(b_info->u.hvm.xen_platform_pci)) {
-            /* Switching here to the machine "pc" which does not add
-             * the xen-platform device instead of the default "xenfv" machine.
-             */
-            machinearg = libxl__strdup(gc, "pc,accel=xen,suppress-vmdesc=on");
+        if (b_info->device_model_machine == LIBXL_DEVICE_MODEL_MACHINE_Q35) {
+            machinearg = libxl__sprintf(gc, "q35,accel=xen");
         } else {
-            machinearg = libxl__strdup(gc, "xenfv,suppress-vmdesc=on");
+            if (!libxl_defbool_val(b_info->u.hvm.xen_platform_pci)) {
+                /* Switching here to the machine "pc" which does not add
+                 * the xen-platform device instead of the default "xenfv" machine.
+                 */
+                machinearg = libxl__strdup(gc, "pc,accel=xen,suppress-vmdesc=on");
+            } else {
+                machinearg = libxl__strdup(gc, "xenfv,suppress-vmdesc=on");
+            }
         }
         if (b_info->u.hvm.mmio_hole_memkb) {
             uint64_t max_ram_below_4g = (1ULL << 32) -
diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
index d64a573ff3..f9cd881b66 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -109,6 +109,12 @@ libxl_device_model_version = Enumeration("device_model_version", [
     (2, "QEMU_XEN"),             # Upstream based qemu-xen device model
     ])
 
+libxl_device_model_machine = Enumeration("device_model_machine", [
+    (0, "UNKNOWN"),
+    (1, "I440"),
+    (2, "Q35"),
+    ])
+
 libxl_console_type = Enumeration("console_type", [
     (0, "UNKNOWN"),
     (1, "SERIAL"),
@@ -613,6 +619,7 @@ libxl_domain_build_info = Struct("domain_build_info",[
     ("device_model_ssidref", uint32),
     ("device_model_ssid_label", string),
     ("device_model_user", string),
+    ("device_model_machine", libxl_device_model_machine),
 
     # extra parameters pass directly to qemu, NULL terminated
     ("extra",            libxl_string_list),
diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index 1a2ea8b5d5..a4346d1693 100644
--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -2813,6 +2813,20 @@ skip_usbdev:
     if (!xlu_cfg_get_long (config, "stubdomain_memory", &l, 0))
         b_info->stubdomain_memkb = l * 1024;
 
+    if (!xlu_cfg_get_string (config, "device_model_machine", &buf, 0)) {
+        if (!strcmp(buf, "i440")) {
+            b_info->device_model_machine = LIBXL_DEVICE_MODEL_MACHINE_I440;
+        } else if (!strcmp(buf, "q35")) {
+            b_info->device_model_machine = LIBXL_DEVICE_MODEL_MACHINE_Q35;
+        } else {
+            fprintf(stderr,
+                    "Unknown device_model_machine \"%s\" specified\n", buf);
+            exit(1);
+        }
+    } else {
+        b_info->device_model_machine = LIBXL_DEVICE_MODEL_MACHINE_UNKNOWN;
+    }
+
 #define parse_extra_args(type)                                            \
     e = xlu_cfg_get_list_as_string_list(config, "device_model_args"#type, \
                                     &b_info->extra##type, 0);            \
-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:37:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:37:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254053.1550072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15W7-0000lG-Ur; Fri, 13 Mar 2026 16:37:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254053.1550072; Fri, 13 Mar 2026 16:37:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15W7-0000l9-Qz; Fri, 13 Mar 2026 16:37:39 +0000
Received: by outflank-mailman (input) for mailman id 1254053;
 Fri, 13 Mar 2026 16:37: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=rc6w=BN=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1w15Va-00040A-7a
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:37:06 +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 dd861051-1efa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:37:04 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by CH2PR03MB5271.namprd03.prod.outlook.com (2603:10b6:610:95::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.17; Fri, 13 Mar
 2026 16:36:55 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9700.015; Fri, 13 Mar 2026
 16:36: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: dd861051-1efa-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fjtSxWna1caQMNXSbYGG1e7WzEV0itBxQjTaeOVHTlbc5SK0Vg5q7Z5oVaLFBmZHfpMYeZ5LpLMsEDRFtJyTLFJJRxIAY86oAN8bXFVkK7pdggOlxqIvtpijKuj83CO6edISv3J1tOuckKU3UIzeUpYhbq/Mh3npqrpH0W5s4htvK2ikIQfuo4P8k5pik6QADtE692ue0DR/iiq8itJ8ClqEavvLDckUu14zgARPcDq0lmtoZy2vRs90cNVb3gBWTBdicx94GqvBe2SGISjekRARXIqQ9Au5FqZGhtZOColROcG+UBhEnJCC464Oy9WadGmKuwelBnsUp7Sr/DRewg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8vfe7iZju8xm+2/r7rcAXdCT0DwXxs44MCyRUGYGVnc=;
 b=yYtr8EtYA2PiTQC9w6Ey5TmsjV7WiegYMIFiI36yVDbBi96/BQASfR2PXB3e9ml8+2i+DVRX4QbPUAWBKj0T5e/o/KKcKRuCreOC4yLAhfMvLRcFBscyqFrO5dNnQDgud/CDdnMMi7vmW9cqn8bWMOca4thz6qi8CS5h7TbCJHNjYXcuPdzwPVl0fF9XJZbZVhzKP/7j/ouQiAp2c2S68lHK/G/cu7J7xozokfQLLAmD/T3LP9Z/XyNTr4+nXkjYJ5J2b4CVzOBswY1ldKzdQINRQ2fa1iXY3xOoVzCN75Ea53I6aX4fsjurmtdfnZcWZvBEyqL1Z64fJyTI09EcsQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8vfe7iZju8xm+2/r7rcAXdCT0DwXxs44MCyRUGYGVnc=;
 b=Rc/RJX0esPu1nAs7kNBo0ASfuFTwtIPysCkDX45Hn9s0DxuxeWa2HKsSNDVA4UzZRTMWK24QujbfYlrPTm1o+nZ6Yv+Ze5zFCdLTNbe67ONWTk8pGn1KyP7/TTM6gah7R2IY3jmJuYsz2IQYL+8ALBLUqkggfCgL2mEmUG7WFYg=
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 v v3 6/7] x86: Remove x86 prefixed names from x86/cpu/ files
Date: Fri, 13 Mar 2026 16:36:29 +0000
Message-ID: <20260313163630.1073019-7-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20260313163630.1073019-1-kevin.lampis@citrix.com>
References: <20260313163630.1073019-1-kevin.lampis@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO6P123CA0018.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:313::11) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|CH2PR03MB5271:EE_
X-MS-Office365-Filtering-Correlation-Id: 941a1d77-25b8-43b1-f484-08de811ebee6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	68/QAPABejauYqz7xkMnylWfWySCfNYUSkmo00WW8XwPHKF7tqGpTjJVDzHNBi7kVA9ty4E2DfHkdHM7M79NeoaIfbpOzLhPfM6Q04j/LG549/L3NMshxeqkTDs0R46h4J5iHydz6k65Fna4KgP8JE9/+TbjprJiijg35+uAWrrraGtFn2NrHcz37Eiy2VT+KqO3V5+QtQ6h2r6I8ZfXm2lZmi+Il84t7G0UXINtKSXG/F57gbjcPLT4UNS+2r0LzhypQZBYd4U+3wr2m75kMMOrMiMNvjuTf5kRN1t9p89yZ10KD3T38uez0i99HlDujegWbto+ziivGa6kjFlizbYq5g5QN6F16hQhO4znYuwBfhcfIKdzDR77R/C/EBLClpAfOur8ExDmqrO+PL3LYvcfNmY3b626dnXhWS8a9da6WewMBNaGDCKOV7jnctwqmlT4ZV/rJWNkOMvWwa+UbA+tscZGTcfyTM8emVzRyPqMSLWrtQ2GQI6O3qSIjAgFnMlPaWRdm78af8jFuNsSNV+QBfYvEH5p9vOOHdWuyMHw/6BYlJ+EkGJELx/6fhXYg0KFvgTrR0XKD16ErM2LcoC98F/LLXOm+FUk/Y3hGriHrfN6zkGWUvb1oxzqvpBQkgDMPnWjyCb4UTS3z5nB5dpCU434RBlpON1Zz9s41W2WhqjWTgmpzlJ3ddUnxnCqSNlflq9RwJexNMAb+vmYL3o/bU8XvD0p4IyiP6bvgoM=
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)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?DJPu+h+XLVzwgdXLgIDwMmMKgoRNfZg8T+nPrQKUJoqpozkHWT3pJuu+vnzj?=
 =?us-ascii?Q?/XcnuD8JV7um0IfIUbAKiwgMtbx2MOeORwtCC/5uEKs8b4h8GRXjZkJZLtj/?=
 =?us-ascii?Q?wqKvidhWL71dzXoWCgDc37Sr7Ar5HftyDgmy5XN5yK+jKToh79MW4mzwNKMd?=
 =?us-ascii?Q?rAWkk7Qd05pkvdTwnjFQypqf+7Yq6CID+CYRntwGPEHfr6/L/3Hi+DZ2jxeW?=
 =?us-ascii?Q?DqP5eiufWqSGJDCa9bDs0rtPE6woM2r/RwUsuSFwzUZlmaSLv05cpNgeFy4y?=
 =?us-ascii?Q?eeDxGEdBs14xnbXHzGKcXiEDBPpl6LpLz4Pv3dT9HNFOsvHHu3gFSJLFqWKg?=
 =?us-ascii?Q?1EBtDn3lv2VjCJAZ0mtcFu7d4gAEpvNwkjMKSV7y7kPiKSwFP1ye45Xwj1GX?=
 =?us-ascii?Q?+O/31fqg0Hi1VCCinlWGQRswMnGLMao5MOfBOwMCwtxtGOF/+X6NcOFkQNPO?=
 =?us-ascii?Q?bKiWq/Lj6c4z9mrtRiS91kNPozKJwouYkAQ+TxmSX9yzWrVn8k4A5CI07iXn?=
 =?us-ascii?Q?IJOIFbVRzbpwDp/95HtGdxBvJdXcrK0A0is70fxUxqiFhNgfy68gVeh28ZKm?=
 =?us-ascii?Q?szHr4UDTH/vC0tbkMplpRVQSZVBGcTk1cQRiEd6NEJ9jmUZvkx6eS1OUas5I?=
 =?us-ascii?Q?YLmZol7vWQVlLVatOREVnJSDb6jGZSG3jQvN6fVXhGFIxuXNvQhD/p92vMHL?=
 =?us-ascii?Q?ilG3ct8DXYjmWB1V4+Om/BQQ8sQhHiWq+UNKz3qS1eh1VwXizMRIhYTCUHKX?=
 =?us-ascii?Q?yjkbx10J2yWQaJ1VxGDBtS9R8g+wq4uLJyDGyrhJEBQh4U7a+8tGEwgqcSkz?=
 =?us-ascii?Q?Yv+03J6lEKp2R6XHBZR0qerC3ulhO+Yp/0nurRQEUSUhYvonxJntgTG6e1X7?=
 =?us-ascii?Q?q/epbEO3khCtiUishwZm3bySq48scVtmSxwCCBXFoiZOjl4bU1PRz/QCVI1V?=
 =?us-ascii?Q?9cEluOKBiR9BP8rGhT1QcveKv5xNnuXauENkGvRkY35UibI3Mz3x8ry/DOpf?=
 =?us-ascii?Q?JFmiHG0CmWsmGHLoEinGyDLXRiXjl/YL+2u2ZBMqN01IeLftdKg2NnslfL0h?=
 =?us-ascii?Q?Xd0otCT6XH+Krk13E6qecgB0726sO8sopagJwiJs5r2l8YEwpYWMp4Y8vHCf?=
 =?us-ascii?Q?7+0rjXxnA/sCG5ovriTm0hqWwjvw064OBttxSFlFNA6ZG7/Fo70ZtSqbBg+3?=
 =?us-ascii?Q?yN5Ucw0yDw/0G9Gi67T3Dv9NAh/ALNvP6SkoIDwEhDqnJESU4VoekNpZ9bq4?=
 =?us-ascii?Q?uokY/9OHV+TWcbp1F9E7zPFjveXeIl4155jrzyUeiNwWOyYG1TA8dijVBpyY?=
 =?us-ascii?Q?7htuln0yZgDah1HoKV+f0FeEDtNGXU+f7F7EqTdqZRauDsNzHmvRQuCLEYan?=
 =?us-ascii?Q?KUGklO8KABPFEUajcAYjG8WxRfcGpphyKJdAEXVl7x3eyBNxtw1GwWJ5ruqz?=
 =?us-ascii?Q?P1zSnJOt5QiFbLVUu8C1xWyNRDwou0dEFdxZlr4HLInRrBfBmsv+13fNV4+y?=
 =?us-ascii?Q?2+1oDD3v3+7Gcivowh/WpKUnzF1EfKYqsmstscJTLSpivCadbwKvleweD/E1?=
 =?us-ascii?Q?Yah2Ea/GF7g2SSNZxl64taux+AnWHUlTCErD9fSxYNkA3ylt+iXok9ZD3VLV?=
 =?us-ascii?Q?Sm01LkojUYXYv0YA6rjdsaAx7NxMFoMqXsJwwBNZisM+EYfOZ94IJMjJFTn3?=
 =?us-ascii?Q?wsmwTPRWz1J7WYQd7d/2yd9Df0MEOu0MAS5tRvRYvW7bFlZgrLLK2DcAoGG3?=
 =?us-ascii?Q?v2t4ARxBtw=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 941a1d77-25b8-43b1-f484-08de811ebee6
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Mar 2026 16:36:58.6177
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 0pyVO/wnya28DO590rg2qGyBRHh6OjcxBsL7/O947YGG3yq0NeG7avLss8I2OuOFtrxUByvhqmqTWT1vImueug==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5271

struct cpuinfo_x86
  .x86        => .family
  .x86_vendor => .vendor
  .x86_model  => .model
  .x86_mask   => .stepping

No functional change.

This work is part of making Xen safe for Intel family 18/19.

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
Changes in v2:
- Switch uint8_t to unsigned int in vpmu_arch_initialise()
- Switch int to unsigned int in vpmu_init()
- Remove XXX comments

Changes in v3:
- No changes
---
 xen/arch/x86/cpu/centaur.c         | 4 ++--
 xen/arch/x86/cpu/hygon.c           | 4 ++--
 xen/arch/x86/cpu/intel_cacheinfo.c | 6 +++---
 xen/arch/x86/cpu/mtrr/generic.c    | 4 ++--
 xen/arch/x86/cpu/mwait-idle.c      | 4 ++--
 xen/arch/x86/cpu/vpmu.c            | 4 ++--
 xen/arch/x86/cpu/vpmu_amd.c        | 6 +++---
 xen/arch/x86/cpu/vpmu_intel.c      | 4 ++--
 8 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/xen/arch/x86/cpu/centaur.c b/xen/arch/x86/cpu/centaur.c
index d2e7c8ec99..9123b05dc1 100644
--- a/xen/arch/x86/cpu/centaur.c
+++ b/xen/arch/x86/cpu/centaur.c
@@ -41,7 +41,7 @@ static void init_c3(struct cpuinfo_x86 *c)
 		}
 	}
 
-	if (c->x86 == 0x6 && c->x86_model >= 0xf) {
+	if (c->family == 0x6 && c->model >= 0xf) {
 		c->x86_cache_alignment = c->x86_clflush_size * 2;
 		__set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
 	}
@@ -52,7 +52,7 @@ static void init_c3(struct cpuinfo_x86 *c)
 
 static void cf_check init_centaur(struct cpuinfo_x86 *c)
 {
-	if (c->x86 == 6)
+	if (c->family == 6)
 		init_c3(c);
 }
 
diff --git a/xen/arch/x86/cpu/hygon.c b/xen/arch/x86/cpu/hygon.c
index b99d83ed4d..7a9fc25d31 100644
--- a/xen/arch/x86/cpu/hygon.c
+++ b/xen/arch/x86/cpu/hygon.c
@@ -41,12 +41,12 @@ static void cf_check init_hygon(struct cpuinfo_x86 *c)
 
 	/* Probe for NSCB on Zen2 CPUs when not virtualised */
 	if (!cpu_has_hypervisor && !cpu_has_nscb && c == &boot_cpu_data &&
-	    c->x86 == 0x18)
+	    c->family == 0x18)
 		detect_zen2_null_seg_behaviour();
 
 	/*
 	 * TODO: Check heuristic safety with Hygon first
-	if (c->x86 == 0x18)
+	if (c->family == 0x18)
 		amd_init_spectral_chicken();
 	 */
 
diff --git a/xen/arch/x86/cpu/intel_cacheinfo.c b/xen/arch/x86/cpu/intel_cacheinfo.c
index e88faa7545..a81d0764fb 100644
--- a/xen/arch/x86/cpu/intel_cacheinfo.c
+++ b/xen/arch/x86/cpu/intel_cacheinfo.c
@@ -168,15 +168,15 @@ void init_intel_cacheinfo(struct cpuinfo_x86 *c)
 	 * Don't use cpuid2 if cpuid4 is supported. For P4, we use cpuid2 for
 	 * trace cache
 	 */
-	if ((num_cache_leaves == 0 || c->x86 == 15) && c->cpuid_level > 1 &&
-	    c->x86_vendor != X86_VENDOR_SHANGHAI)
+	if ((num_cache_leaves == 0 || c->family == 15) && c->cpuid_level > 1 &&
+	    c->vendor != X86_VENDOR_SHANGHAI)
 	{
 		/* supports eax=2  call */
 		unsigned int i, j, n, regs[4];
 		unsigned char *dp = (unsigned char *)regs;
 		int only_trace = 0;
 
-		if (num_cache_leaves != 0 && c->x86 == 15)
+		if (num_cache_leaves != 0 && c->family == 15)
 			only_trace = 1;
 
 		/* Number of times to iterate */
diff --git a/xen/arch/x86/cpu/mtrr/generic.c b/xen/arch/x86/cpu/mtrr/generic.c
index 0ca6a2083f..23c279eb9a 100644
--- a/xen/arch/x86/cpu/mtrr/generic.c
+++ b/xen/arch/x86/cpu/mtrr/generic.c
@@ -218,8 +218,8 @@ static void __init print_mtrr_state(const char *level)
 			printk("%s  %u disabled\n", level, i);
 	}
 
-	if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD ||
-	     boot_cpu_data.x86_vendor == X86_VENDOR_HYGON) {
+	if (boot_cpu_data.vendor == X86_VENDOR_AMD ||
+	     boot_cpu_data.vendor == X86_VENDOR_HYGON) {
 		uint64_t syscfg, tom2;
 
 		rdmsrl(MSR_K8_SYSCFG, syscfg);
diff --git a/xen/arch/x86/cpu/mwait-idle.c b/xen/arch/x86/cpu/mwait-idle.c
index 5962ec1db9..6776eeb9ac 100644
--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -1637,7 +1637,7 @@ static int __init mwait_idle_probe(void)
 		lapic_timer_reliable_states = LAPIC_TIMER_ALWAYS_RELIABLE;
 
 	pr_debug(PREFIX "v" MWAIT_IDLE_VERSION " model %#x\n",
-		 boot_cpu_data.x86_model);
+		 boot_cpu_data.model);
 
 	pr_debug(PREFIX "lapic_timer_reliable_states %#x\n",
 		 lapic_timer_reliable_states);
@@ -1816,7 +1816,7 @@ bool __init mwait_pc10_supported(void)
 {
 	unsigned int ecx, edx, dummy;
 
-	if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
+	if (boot_cpu_data.vendor != X86_VENDOR_INTEL ||
 	    !cpu_has_monitor ||
 	    boot_cpu_data.cpuid_level < CPUID_MWAIT_LEAF)
 		return false;
diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c
index c28192ea26..470f5ec98d 100644
--- a/xen/arch/x86/cpu/vpmu.c
+++ b/xen/arch/x86/cpu/vpmu.c
@@ -398,7 +398,7 @@ int vpmu_load(struct vcpu *v, bool from_guest)
 static int vpmu_arch_initialise(struct vcpu *v)
 {
     struct vpmu_struct *vpmu = vcpu_vpmu(v);
-    uint8_t vendor = current_cpu_data.x86_vendor;
+    unsigned int vendor = current_cpu_data.vendor;
     int ret;
 
     BUILD_BUG_ON(sizeof(struct xen_pmu_intel_ctxt) > XENPMU_CTXT_PAD_SZ);
@@ -815,7 +815,7 @@ static struct notifier_block cpu_nfb = {
 
 static int __init cf_check vpmu_init(void)
 {
-    int vendor = current_cpu_data.x86_vendor;
+    unsigned int vendor = current_cpu_data.vendor;
     const struct arch_vpmu_ops *ops = NULL;
 
     if ( !opt_vpmu_enabled )
diff --git a/xen/arch/x86/cpu/vpmu_amd.c b/xen/arch/x86/cpu/vpmu_amd.c
index d1f6bd5495..943a0f4ebe 100644
--- a/xen/arch/x86/cpu/vpmu_amd.c
+++ b/xen/arch/x86/cpu/vpmu_amd.c
@@ -532,7 +532,7 @@ static const struct arch_vpmu_ops *__init common_init(void)
     if ( !num_counters )
     {
         printk(XENLOG_WARNING "VPMU: Unsupported CPU family %#x\n",
-               current_cpu_data.x86);
+               current_cpu_data.family);
         return ERR_PTR(-EINVAL);
     }
 
@@ -557,7 +557,7 @@ static const struct arch_vpmu_ops *__init common_init(void)
 
 const struct arch_vpmu_ops *__init amd_vpmu_init(void)
 {
-    switch ( current_cpu_data.x86 )
+    switch ( current_cpu_data.family )
     {
     case 0x15:
     case 0x17:
@@ -585,7 +585,7 @@ const struct arch_vpmu_ops *__init amd_vpmu_init(void)
 
 const struct arch_vpmu_ops *__init hygon_vpmu_init(void)
 {
-    switch ( current_cpu_data.x86 )
+    switch ( current_cpu_data.family )
     {
     case 0x18:
         num_counters = F15H_NUM_COUNTERS;
diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c
index 1e3b06ef8e..ed9f62b936 100644
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -917,7 +917,7 @@ const struct arch_vpmu_ops *__init core2_vpmu_init(void)
         return ERR_PTR(-EINVAL);
     }
 
-    if ( current_cpu_data.x86 != 6 )
+    if ( current_cpu_data.family != 6 )
     {
         printk(XENLOG_WARNING "VPMU: only family 6 is supported\n");
         return ERR_PTR(-EINVAL);
@@ -958,7 +958,7 @@ const struct arch_vpmu_ops *__init core2_vpmu_init(void)
               sizeof(struct xen_pmu_cntr_pair) * arch_pmc_cnt;
 
     /* TODO: It's clearly incorrect for this to quirk all Intel Fam6 CPUs. */
-    pmc_quirk = current_cpu_data.x86 == 6;
+    pmc_quirk = current_cpu_data.family == 6;
 
     if ( sizeof(struct xen_pmu_data) + sizeof(uint64_t) * fixed_pmc_cnt +
          sizeof(struct xen_pmu_cntr_pair) * arch_pmc_cnt > PAGE_SIZE )
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:37:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:37:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254064.1550081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15WB-0001Ny-AQ; Fri, 13 Mar 2026 16:37:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254064.1550081; Fri, 13 Mar 2026 16:37:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15WB-0001Nn-62; Fri, 13 Mar 2026 16:37:43 +0000
Received: by outflank-mailman (input) for mailman id 1254064;
 Fri, 13 Mar 2026 16:37: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=99UC=BN=bounce.vates.tech=bounce-md_30504962.69b43cb9.v1-0d58c467262f41fd83129dba59f499f8@srs-se1.protection.inumbo.net>)
 id 1w15Tq-0006Ek-OL
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:35:18 +0000
Received: from mail134-15.atl141.mandrillapp.com
 (mail134-15.atl141.mandrillapp.com [198.2.134.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9a83c461-1efa-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:35:10 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-15.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4fXVT52z3lzPm0VQt
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:35:05 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 0d58c467262f41fd83129dba59f499f8; Fri, 13 Mar 2026 16:35: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: 9a83c461-1efa-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773419705; x=1773689705;
	bh=7Tb9FoFWUrTG8bVI2BmSiKFAzIP/VrW/gdQM1MC0oms=;
	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=tVTR8ZL+tGzsruvdEkBKwXPgUz58kYymfrscpoGZzQfkjym4/vkwPUmFlpPLnNSLM
	 DEgYLBS31r/pv1MzcJ+cmYvGeY2FiRxT+O3F2CkwCmPCWNB8nOSMd6DXbMBL4HIazj
	 grMJ4BxQ6kttNnlEb/zyNBI2CQfU4EBMG/mfo8CBHMb3uNYSMX8whGn/YjuqjJktqM
	 Bgq0K6D+GvFucvA4tj+mhmhjYkpr+HDqlw95UPFLdJYbIcgcysYX0nc+0txsTEw07a
	 u9/LVT6rytYUN248JbVKq7pCNOO047mRFdJfw2ESrpxi2xljvnnMVswnQPsiuTjzL4
	 PBqZNHLYYNIEA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773419705; x=1773680205; i=thierry.escande@vates.tech;
	bh=7Tb9FoFWUrTG8bVI2BmSiKFAzIP/VrW/gdQM1MC0oms=;
	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=n7hT4u57+/WziwtTPyLi72zdqfKdJdi+w4ywlBQDjtIBMzrlWuDnKpfDljbg3IpQl
	 OSJ7wMdvfGFt+zCxmgd7p5RXMFC/K1FVMxSoLhleX1h5vef/I8fZUsfigDVHjnIKw1
	 a50UV4tuBp4YU/eTScAnCikpsXCxE0ljkkBsS1kNFb/mUs8VuAab0ywgdyhdtO7xy8
	 PF6+rj1gdeCCfdJ5eh0LGvmAljng2+Zci7YjLYhfB0SNQ/qpp3kQtmFK8g5Pgwa208
	 HR1+ONeFHgjSmGZ3UaC77NOz33QwV/rFE+SSqdap+jbna1f3xsYh4sTxUWLWNOG6wH
	 yC08iq99W8UNw==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=2015/17]=20hvmloader:=20Set=20MCFG=20in=20ACPI=20table?=
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: 1773419704313
To: xen-devel@lists.xenproject.org
Cc: "Thierry Escande" <thierry.escande@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>
Message-Id: <20260313163455.790692-16-thierry.escande@vates.tech>
In-Reply-To: <20260313163455.790692-1-thierry.escande@vates.tech>
References: <20260313163455.790692-1-thierry.escande@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.0d58c467262f41fd83129dba59f499f8?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:35:05 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This patch extends hvmloader_acpi_build_tables() to detect if MMCONFIG
is available by obtaining its base address and size from the hypercall
HVMOP_get_ecam_space and sets the flag ACPI_HAS_MCFG in the ACPI config
if needed.

This also sets the MMCONFIG area in E820 map using the same method.

Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
---
 tools/firmware/hvmloader/e820.c | 11 +++++++++++
 tools/firmware/hvmloader/util.c |  9 +++++++++
 2 files changed, 20 insertions(+)

diff --git a/tools/firmware/hvmloader/e820.c b/tools/firmware/hvmloader/e820.c
index 86d39544e8..ff5c270f57 100644
--- a/tools/firmware/hvmloader/e820.c
+++ b/tools/firmware/hvmloader/e820.c
@@ -158,6 +158,8 @@ int build_e820_table(struct e820entry *e820,
     unsigned long acpi_mem_end = acpi_enabled ?
         ACPI_MEMORY_DYNAMIC_START + (acpi_pages_allocated() << PAGE_SHIFT) :
         RESERVED_MEMBASE;
+    uint64_t mmconfig_addr;
+    uint32_t mmconfig_size;
 
     if ( !lowmem_reserved_base )
             lowmem_reserved_base = 0xA0000;
@@ -260,6 +262,15 @@ int build_e820_table(struct e820entry *e820,
         nr++;
     }
 
+    /* mark MMCONFIG area */
+    if ( ! hvm_get_ecam_space(&mmconfig_addr, &mmconfig_size) )
+    {
+        e820[nr].addr = mmconfig_addr;
+        e820[nr].size = mmconfig_size;
+        e820[nr].type = E820_RESERVED;
+        nr++;
+    }
+
     /* Low RAM goes here. Reserve space for special pages. */
     BUG_ON(low_mem_end < MB(2));
 
diff --git a/tools/firmware/hvmloader/util.c b/tools/firmware/hvmloader/util.c
index ee7a09b5bc..2cd1cadfc3 100644
--- a/tools/firmware/hvmloader/util.c
+++ b/tools/firmware/hvmloader/util.c
@@ -903,6 +903,8 @@ void hvmloader_acpi_build_tables(struct acpi_config *config,
     struct acpi_ctxt ctxt;
     long long tpm_version;
     char *end;
+    uint64_t mmconfig_addr;
+    uint32_t mmconfig_size;
 
     /* Allocate and initialise the acpi info area. */
     mem_hole_populate_ram(ACPI_INFO_PHYSICAL_ADDRESS >> PAGE_SHIFT, 1);
@@ -953,6 +955,13 @@ void hvmloader_acpi_build_tables(struct acpi_config *config,
         config->pci_hi_len = pci_hi_mem_end - pci_hi_mem_start;
     }
 
+    if ( ! hvm_get_ecam_space(&mmconfig_addr, &mmconfig_size) )
+    {
+        config->table_flags |= ACPI_HAS_MCFG;
+        config->mmconfig_addr = mmconfig_addr;
+        config->mmconfig_size = mmconfig_size;
+    }
+
     s = xenstore_read("platform/generation-id", "0:0");
     if ( s )
     {
-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:44:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:44:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254117.1550099 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15d6-0004Lw-7V; Fri, 13 Mar 2026 16:44:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254117.1550099; Fri, 13 Mar 2026 16: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 1w15d6-0004Ln-4E; Fri, 13 Mar 2026 16:44:52 +0000
Received: by outflank-mailman (input) for mailman id 1254117;
 Fri, 13 Mar 2026 16:44:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=p3qR=BN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w15d4-0004GG-OC
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:44:50 +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 f2a23535-1efb-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:44:48 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-661b16ac011so4257325a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 09:44:48 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-66350b86008sm1394733a12.28.2026.03.13.09.44.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Mar 2026 09:44:46 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f2a23535-1efb-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773420287; x=1774025087; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yfsWIAex3jEpm8GQ6vF4++T74O/B/5LjYy46X+zBd0E=;
        b=CC7GYogW2mcvpVF9v+qXkIgNbWXtWjm/LXSnMAHo5Qr5DyQQDsyyFufada7WvyZJBz
         O8g1uNNl6VVvSrhl9obFNJQqw6sQ6pqYMx5QLe3JU5bRxJGSmSjCOc3XMgkAl6kAAd4/
         MelV/nsty13qKMAs/VWUxR1hNltNFU2gec6vAW06fRDq+hPujeoUPAVG9MOP+FkFgrxX
         +XjWP/G1nkcUBSz4CoqfA1t3UxwxL+AtRvUqfA+v+2VdeFttiNeebvXtM9KTsUG9d+59
         +uU78SQaGogLw6XO10fHIXHyYD3HEHh18wnDb13J3ZVOPcrRp8a33BK1nYv2ERd8jHpF
         cSpw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773420287; x=1774025087;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=yfsWIAex3jEpm8GQ6vF4++T74O/B/5LjYy46X+zBd0E=;
        b=I5fxY3N8SBLCVxj6XtiUKIsd0vqNepLNZWKfU1jqdofcEllAHWllk5k0DouUHmARrI
         Z/f9cGJLxQ5kE7AKPZCmtuNm+flMp9DRyrYIoKy1epRzqgG1x6hjlNDtfcyKTf1kmzTF
         B7d4FMczzu95zRVxPIrXZTnqKDAxNsHgiug58zZyMzC0eRm4wcl1oy/icMD7QFPlRQiJ
         p+IlrcNoTYOLGJs5ocTKe1e+qQIVK3YWr69UDbLKAlL2eQ7UzQsm9ORRgTdy8/uy1D2T
         7VF6x2Emwh3lorxWqRw9qNG4oikI7Q6Q1ejjUCfNOUJgoEKd1pbyAMzD/IOisr3ksqQd
         qHsA==
X-Gm-Message-State: AOJu0YxvYQi/P6hQZs/fdwwha2RpBvYeJ+F/26lyJJvcfVH8VwTDb7nv
	y7wBl4Kpk2cS9hALfEsEUT4n0caPScVhEXc3KoiSKnuBzxd3qGWR6wEsJ9vfZQ==
X-Gm-Gg: ATEYQzxgIKCa/Nv3rEadHEnoukAvuAyrPF36xxEzuUilUY+xn1ykHybXwQ9M3qfwIaf
	qStV8/CR8PVRcR9EjhdHPwAqJClqOcwSLt9kSyDJckm18HkiUW36MPqnw1ONfexuXjQFdRyDo98
	Of4KQJJuZ0bTh5zGochPX3D4VB4AML/sjbmx3fOnA0ftzyg5EGI4MKywZcbp6zYCwLt14jwBNHO
	1w901QwH8Ygfn77Uk/c59grqLlHD2kuteVVllbwiNXF+29nDu1NdYc9OWZ8MDHyw94RyulJFbRB
	jGXZlPI7vH47jeBUA/338lbBjlGVIDwmul4XqQWJCr014uxbX8SQdGJr66rOzzBD0X53GtkwSfh
	3JWHfi5gWAAGdeEWFyrX1QTcIwIC3PwABKaas+VADkzm1nX0QI0YNmrmLdv1ldhjE4gWY8jwyPo
	57hWBe6dFiyBBpkKihIkLE9H6gNzyQRZ5K/rEqcxieH4eFISQ5pot17d5QsV/uaCKGKg==
X-Received: by 2002:a05:6402:5414:b0:659:5c63:e103 with SMTP id 4fb4d7f45d1cf-663ba9b6e96mr2330711a12.11.1773420287152;
        Fri, 13 Mar 2026 09:44:47 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 1/4] xen/riscv: add exception table support
Date: Fri, 13 Mar 2026 17:44:35 +0100
Message-ID: <c6d30625371d56bb8345c987ac6d8095cc7301d2.1773419622.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773419622.git.oleksii.kurochko@gmail.com>
References: <cover.1773419622.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce exception table handling for RISC-V so faults from selected
instructions can be recovered via fixup handlers instead of being
treated as fatal.

Add the RISC-V exception table format, sorting at boot to allow binary
search used furthuer, and lookup from the trap handler. Update the
linker script to emit the .ex_table section using introduced common
EX_TABLE macro shared with other architectures.

Also, the __start___ext_table is aligned now by POINTER_ALIGN instead
of just using hard-coded 8 as there is no too much sense to align
__start___ext_table by 8 for 32-bit systems.

This implementation is based on Linux 6.16.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Open question:

With some renaming the following could be generic, at least, between
x86 and RISC-V:
 - ASM_EXTABLE() definition
 - All what is conencted with sort_extable().
 - With some change of how x86 searchs an extension this cmp_ex_search()
   could also go to common file.

Does it make sense to introduce xen/extable.h and common/extable.c?
---
 xen/arch/riscv/Kconfig                |  1 +
 xen/arch/riscv/Makefile               |  1 +
 xen/arch/riscv/extables.c             | 85 +++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/extables.h | 72 +++++++++++++++++++++++
 xen/arch/riscv/setup.c                |  3 +
 xen/arch/riscv/traps.c                |  3 +
 xen/arch/riscv/xen.lds.S              |  3 +
 xen/arch/x86/xen.lds.S                |  6 +-
 xen/include/xen/xen.lds.h             | 10 ++++
 9 files changed, 179 insertions(+), 5 deletions(-)
 create mode 100644 xen/arch/riscv/extables.c
 create mode 100644 xen/arch/riscv/include/asm/extables.h

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index 89876b32175d..a5e87c1757f7 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -4,6 +4,7 @@ config RISCV
 	select GENERIC_BUG_FRAME
 	select GENERIC_UART_INIT
 	select HAS_DEVICE_TREE_DISCOVERY
+	select HAS_EX_TABLE
 	select HAS_PMAP
 	select HAS_UBSAN
 	select HAS_VMAP
diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index ffbd7062e214..6b3f3ed90bdb 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -3,6 +3,7 @@ obj-y += cpufeature.o
 obj-y += domain.o
 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
 obj-y += entry.o
+obj-$(CONFIG_HAS_EX_TABLE) += extables.o
 obj-y += imsic.o
 obj-y += intc.o
 obj-y += irq.o
diff --git a/xen/arch/riscv/extables.c b/xen/arch/riscv/extables.c
new file mode 100644
index 000000000000..5e6e453ead29
--- /dev/null
+++ b/xen/arch/riscv/extables.c
@@ -0,0 +1,85 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/init.h>
+#include <xen/bsearch.h>
+#include <xen/lib.h>
+#include <xen/sort.h>
+#include <xen/virtual_region.h>
+
+#include <asm/extables.h>
+#include <asm/processor.h>
+
+#define EX_FIELD(ptr, field) ((unsigned long)&(ptr)->field + (ptr)->field)
+
+static inline unsigned long ex_insn(const struct exception_table_entry *ex)
+{
+    return EX_FIELD(ex, insn);
+}
+
+static inline unsigned long ex_fixup(const struct exception_table_entry *ex)
+{
+    return EX_FIELD(ex, fixup);
+}
+
+static void __init cf_check swap_ex(void *a, void *b)
+{
+    struct exception_table_entry *x = a, *y = b, tmp;
+    int delta = b - a;
+
+    tmp = *x;
+    x->insn = y->insn + delta;
+    y->insn = tmp.insn - delta;
+
+    x->fixup = y->fixup + delta;
+    y->fixup = tmp.fixup - delta;
+}
+
+static int __init cf_check cmp_ex_sort(const void *a, const void *b)
+{
+    const unsigned long l = ex_insn(a);
+    const unsigned long r = ex_insn(b);
+
+    /* avoid overflow */
+    return (l > r) - (l < r);
+}
+
+void __init sort_extable(void)
+{
+    sort(__start___ex_table,  __stop___ex_table - __start___ex_table,
+         sizeof(struct exception_table_entry), cmp_ex_sort, swap_ex);
+}
+
+static int cf_check cmp_ex_search(const void *key, const void *elt)
+{
+    const unsigned long k = *(const unsigned long *)key;
+    const unsigned long insn = ex_insn(elt);
+
+    /* avoid overflow */
+    return (k > insn) - (k < insn);
+}
+
+static bool ex_handler_fixup(const struct exception_table_entry *ex,
+			                 struct cpu_user_regs *regs)
+{
+	regs->sepc = ex_fixup(ex);
+
+	return true;
+}
+
+bool fixup_exception(struct cpu_user_regs *regs)
+{
+    unsigned long pc = regs->sepc;
+    const struct virtual_region *region = find_text_region(pc);
+    const struct exception_table_entry *ex;
+
+    if ( !region || !region->ex )
+        return false;
+
+    ex = bsearch(&pc, region->ex, region->ex_end - region->ex,
+                 sizeof(struct exception_table_entry), cmp_ex_search);
+
+    if ( !ex )
+        return false;
+
+    return ex_handler_fixup(ex, regs);
+}
diff --git a/xen/arch/riscv/include/asm/extables.h b/xen/arch/riscv/include/asm/extables.h
new file mode 100644
index 000000000000..139764f3808d
--- /dev/null
+++ b/xen/arch/riscv/include/asm/extables.h
@@ -0,0 +1,72 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef ASM__RISCV__ASM_EXTABLES_H
+#define ASM__RISCV__ASM_EXTABLES_H
+
+#ifdef __ASSEMBLER__
+
+#define ASM_EXTABLE(insn, fixup)    \
+    .pushsection .ex_table, "a";    \
+    .balign     4;                  \
+    .long		((insn) - .);       \
+    .long		((fixup) - .);      \
+    .popsection;
+.endm
+
+#else /* __ASSEMBLER__ */
+
+#include <xen/bug.h>
+#include <xen/stringify.h>
+
+struct cpu_user_regs;
+
+#define ASM_EXTABLE(insn, fixup)        \
+    ".pushsection .ex_table, \"a\"\n"   \
+    ".balign    4\n"                    \
+    ".long      ((" #insn ") - .)\n"     \
+    ".long      ((" #fixup ") - .)\n"    \
+    ".popsection\n"
+
+/*
+ * The exception table consists of pairs of relative offsets: the first
+ * is the relative offset to an instruction that is allowed to fault,
+ * and the second is the relative offset at which the program should
+ * continue. No registers are modified, so it is entirely up to the
+ * continuation code to figure out what to do.
+ *
+ * All the routines below use bits of fixup code that are out of line
+ * with the main instruction path.  This means when everything is well,
+ * we don't even have to jump over them.  Further, they do not intrude
+ * on our cache or tlb entries.
+ */
+struct exception_table_entry {
+	int32_t insn, fixup;
+};
+
+extern struct exception_table_entry __start___ex_table[];
+extern struct exception_table_entry __stop___ex_table[];
+
+#ifdef CONFIG_HAS_EX_TABLE
+
+void sort_extable(void);
+bool fixup_exception(struct cpu_user_regs *regs);
+
+#else /* CONFIG_HAS_EX_TABLE */
+
+static inline void sort_extable(void)
+{
+    printk("%s: We don't support .ex_table\n", __func__);
+}
+
+static inline bool fixup_exception(struct cpu_user_regs *regs)
+{
+    dprintk("%s: We don't support .ex_table\n", __func__);
+
+    return false;
+}
+
+#endif /* CONFIG_HAS_EX_TABLE */
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* ASM__RISCV__ASM_EXTABLES_H */
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index cae49bb29626..4be6aa5a434e 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -19,6 +19,7 @@
 
 #include <public/version.h>
 
+#include <asm/extables.h>
 #include <asm/cpufeature.h>
 #include <asm/early_printk.h>
 #include <asm/fixmap.h>
@@ -81,6 +82,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     smp_prepare_boot_cpu();
 
+    sort_extable();
+
     set_cpuid_to_hartid(0, bootcpu_id);
 
     trap_init();
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index 326f2be62823..242af0a7a5f3 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -12,6 +12,7 @@
 #include <xen/sched.h>
 #include <xen/softirq.h>
 
+#include <asm/extables.h>
 #include <asm/cpufeature.h>
 #include <asm/intc.h>
 #include <asm/processor.h>
@@ -217,6 +218,8 @@ void do_trap(struct cpu_user_regs *cpu_regs)
 
             break;
         }
+        else if ( fixup_exception(cpu_regs) )
+            break;
         fallthrough;
     default:
         if ( cause & CAUSE_IRQ_FLAG )
diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
index 331a7d63d3c9..65f136dce9f7 100644
--- a/xen/arch/riscv/xen.lds.S
+++ b/xen/arch/riscv/xen.lds.S
@@ -74,6 +74,9 @@ SECTIONS
     .data.ro_after_init : {
         __ro_after_init_start = .;
         *(.data.ro_after_init)
+
+        EX_TABLE
+
         . = ALIGN(PAGE_SIZE);
         __ro_after_init_end = .;
     } : text
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index c326538ebbb2..b9e888e5962f 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -113,11 +113,7 @@ SECTIONS
        __ro_after_init_start = .;
        *(.data.ro_after_init)
 
-       . = ALIGN(8);
-       /* Exception table */
-       __start___ex_table = .;
-       *(.ex_table)
-       __stop___ex_table = .;
+       EX_TABLE
 
        . = ALIGN(PAGE_SIZE);
        __ro_after_init_end = .;
diff --git a/xen/include/xen/xen.lds.h b/xen/include/xen/xen.lds.h
index 136849ecd515..85800f942aae 100644
--- a/xen/include/xen/xen.lds.h
+++ b/xen/include/xen/xen.lds.h
@@ -219,4 +219,14 @@
 #define VPCI_ARRAY
 #endif
 
+#ifdef CONFIG_HAS_EX_TABLE
+#define EX_TABLE                  \
+        . = ALIGN(POINTER_ALIGN); \
+        __start___ex_table = .;   \
+        *(.ex_table)              \
+        __stop___ex_table = .;
+#else
+#define EX_TABLE
+#endif
+
 #endif /* __XEN_LDS_H__ */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:44:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:44:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254118.1550105 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15d6-0004Sc-N6; Fri, 13 Mar 2026 16:44:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254118.1550105; Fri, 13 Mar 2026 16: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 1w15d6-0004Rm-Hq; Fri, 13 Mar 2026 16:44:52 +0000
Received: by outflank-mailman (input) for mailman id 1254118;
 Fri, 13 Mar 2026 16: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=p3qR=BN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w15d5-0004GG-CC
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:44:51 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f339755f-1efb-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:44:49 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-6642c9254c2so1346891a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 09:44:49 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-66350b86008sm1394733a12.28.2026.03.13.09.44.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Mar 2026 09:44:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f339755f-1efb-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773420288; x=1774025088; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iuU0sIa/VVlWbkh1TAky3TiyUmxNd2Qh9VKL5gjHn0k=;
        b=loPICnzuKd343iWNPlJjaz33BKshEr3w55lwx81Vx1L8DJlYD+Xj8yZ1WWxL6m8w1c
         QmKkrkGz8odl2XG4ygR8VIIbhQ8or1AwgN+NaJDU4OuCxB/u0PLBbUiD5eigJS3zS1Kl
         gMdKaWIZHTzG/Dpd0nz5DvkgxfFygAZHoEbFSsCDTA6qbVAglL6hUi3liDJbvxVtKtev
         L5oQ90PillVZuhth7ofS7r7H4seGToHKYlneB56Fs5slSc1jOC6XGpyCnq7pTwJqTeyz
         sYYOL9LYIHRhpH9wUsr+gG9aAXbEUfA0LQV7+9u0laOV4Cn8Duqh5IhvaoJgqG7FnMxV
         NRlQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773420288; x=1774025088;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=iuU0sIa/VVlWbkh1TAky3TiyUmxNd2Qh9VKL5gjHn0k=;
        b=qXLo0fT1mShYtzutR/wqxW4lwYM3NANAnhEbvZ1DE4Cx3MXyJns21rTjD8LYaYS5RB
         xij4EXh2vycupr1/t/m2T6YExNuWrmYEXIhfGMWSwisR08GxeXMaEg2ZtfzS9/PZjjBJ
         yjeJ0H1SDkPNRx+X6RNPC+MesSHVuoWRbLiAoiPslMYXjdzos+Pkt89rPSknf5sR81VM
         DPBCCDgN4HhcKc1dZ1xYBLkej0mf/uKkhsogvbGV8KCE4U5L9FtRSbsA29r/pKn/TTA8
         jurHppnQFcTyAhUcks0tl7oLlnv4CRGgo5+oMMhq1PBRe1TtbchANk4bJuHSTdMRvEhL
         wp3A==
X-Gm-Message-State: AOJu0YzoX3UOlwXEPt8sU9Xqt8Bji6bDNnybHunoUI4JmZr7SfIo5aZq
	p1OQ7dim268B3SJwERwQhpg7+yKgk9RLx71ieK1dBT+g/aWUwcsUiJDJddAMUg==
X-Gm-Gg: ATEYQzynBJVmfcAzl4RaWR68gt42aLpUM464+JwyErMi7VtSE2CcqGapHrvKV0hcOQ+
	RkEYHvJWrLeqfkLETQPwHPrui9bEAzYeqbLmJVwsq5/AlfQVXMZ3bzuwZeUthGvJW7KI1TF+p6P
	8+ZhDZ7aLZJww1r7KH3F2mZi4yH2lrURDCFR4ICO0ccgIQO086d8SM2QoQ5zW/C5Dmh4WNg46PN
	fX2WgGAJddiMpaov+tAXHXb4mQvBnUsVDzRJJ6VrmvkwCrRNIG8Gs+O6b/YlfSMKrJtd7Klv5Lb
	yDU03z3NkC0PBgaR5Jy8407yX9IopAEDxlzEPKXVAYz5KuI2I3y3Sb5LuZ7lnK/FyeurnObgiYg
	yflk5SUcsVi+9OYe/c0AEQ2NxgHb3DayMhXJTIQashCs9Tn5tUUoYNSkdPNY2ZQmJqtIm2alIlm
	VM4o/AIgAQHU4rSVexi0yNbOOFRr66YIJhy+j0asQl1VUHv9unUKMrrzaqkzGi1y9WaTS8itOyE
	iAnLAw7
X-Received: by 2002:a05:6402:1e96:b0:662:fd15:1ae with SMTP id 4fb4d7f45d1cf-663babf76afmr2209158a12.21.1773420288310;
        Fri, 13 Mar 2026 09:44:48 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 2/4] xen/riscv: add csr_allowed_read() helper
Date: Fri, 13 Mar 2026 17:44:36 +0100
Message-ID: <2ea34e564533accb33ccee66b4a8c7a750733ae0.1773419622.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773419622.git.oleksii.kurochko@gmail.com>
References: <cover.1773419622.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Accessing some CSRs may trap when the corresponding extension is not
implemented or enabled. Introduce csr_allowed_read() which attempts to
read a CSR and relies on the exception table mechanism to safely recover
if the access faults.

This helper allows Xen to probe CSR availability without taking a fatal
trap and will be used for feature detection during early boot as we
can't always rely on what is in riscv,isa string in DTS.

While touching the header, reorder the include directives to follow the
usual Xen style.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/include/asm/csr.h | 34 +++++++++++++++++++++++++++++++-
 1 file changed, 33 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/include/asm/csr.h b/xen/arch/riscv/include/asm/csr.h
index 01876f828981..b9bee3d25d21 100644
--- a/xen/arch/riscv/include/asm/csr.h
+++ b/xen/arch/riscv/include/asm/csr.h
@@ -6,8 +6,10 @@
 #ifndef ASM__RISCV__CSR_H
 #define ASM__RISCV__CSR_H
 
-#include <asm/asm.h>
 #include <xen/const.h>
+
+#include <asm/asm.h>
+#include <asm/extables.h>
 #include <asm/riscv_encoding.h>
 
 #ifndef __ASSEMBLER__
@@ -78,6 +80,36 @@
                            : "memory" );                        \
 })
 
+static always_inline bool csr_allowed_read(unsigned long csr,
+                                           unsigned long *val)
+{
+    bool error = false;
+
+    /*
+     * Use "+" as a constraint instead of "=" to ensure the compiler passes the
+     * initial value into the asm volatile block. Otherwise, if the instruction
+     * (at label 1) faults, the variable 'error' may contain an undefined value
+     * instead of 0.
+     * If reading of CSR register was failed, we don't care about val, so "="
+     * constraint could be used in asm volatile block to not force always init.
+     * val argument before being passed to csr_allowed_read() functions.
+     *
+     * This avoids the need for an additional instruction inside the asm block
+     * to explicitly initialize 'error' to 0 before executing the potentially
+     * faulting instruction.
+     */
+    asm volatile (
+        "1: csrr %[val], %[csr]\n"
+        "   li %[err], 1\n"
+        "2:\n"
+        ASM_EXTABLE(1b, 2b)
+        : [val] "=&r" (*val), [err] "+&r" (error)
+        : [csr] "i" (csr)
+        : "memory" );
+
+    return error;
+}
+
 #endif /* __ASSEMBLER__ */
 
 #endif /* ASM__RISCV__CSR_H */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:44:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:44:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254119.1550111 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15d7-0004XD-1Y; Fri, 13 Mar 2026 16:44:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254119.1550111; Fri, 13 Mar 2026 16: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 1w15d6-0004Wr-RJ; Fri, 13 Mar 2026 16:44:52 +0000
Received: by outflank-mailman (input) for mailman id 1254119;
 Fri, 13 Mar 2026 16:44:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=p3qR=BN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w15d5-00048B-Pw
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:44:51 +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 f435c1fd-1efb-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 17:44:50 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-66174cf4549so4941958a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 09:44:50 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-66350b86008sm1394733a12.28.2026.03.13.09.44.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Mar 2026 09:44:49 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f435c1fd-1efb-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773420290; x=1774025090; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=egLBPEab6gTvn7B0yNjcrbib+hRrlZdbL6l46eIKhHg=;
        b=PCUXyVC2uvQ+ozJDii+Px996LuQlkOdk6UdUymyowukD2LOJ9Y9Xh6VCnXDU1SsZWv
         cbED5sVTUp4c6OWXy6D3a5vGhkXWGB6HaLuZhG+kdVl8TqehOzuZT3GuBmBIA6pjMCNd
         PZfZ2vvo1PLdFUQQmH4AfVAiQ6olhGuK8yMxAdp93aKomX6QhBuOr7QWqcXWeuth5pcH
         dxQiRUvtAOZM7T1PcSaGqKPrG1rWMIquN2SFsjyMAqsxHfFqiH2PBPuCX85ql6v/UCkF
         5hSHgaVwK1RBlb/QSsr9dsirgXKgTNN72LPncm5c3CGdkzOt/qdw59lRPid0VdIoMlBf
         QMPg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773420290; x=1774025090;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=egLBPEab6gTvn7B0yNjcrbib+hRrlZdbL6l46eIKhHg=;
        b=iliqa567zrjuUQUKokjcwy1wUU/wNh6/IkJfSpjYNrp3kYeBDfN9eTTwqgPXSKoMB2
         n626ljDoQiiopCMZnzfV44i1z31I4y+0Rj1nUtmPxaaEX/X6wdUigCdZosehiZz7O/vo
         FoTIqZuyJXiKW2Ly1Q37ebL/71uOLR27PV8gI2j5tRo5nbjxG7Yh/Aq1Nr2AqTCSTni4
         THHeICHnriMbRQF1awHK8yyv6pNh76Lc1fqdkopmjXx0XhjXSym+x9hNEXlxeISm+DNb
         Wb8rSnPy57YNrQYaTHX01Br73/4GxfJWjNJjI0bTbKGUUP4CW40u5XzVWD3JqGZwzRCT
         E08A==
X-Gm-Message-State: AOJu0YwXo4CIYIB/SxQSVFcLlFsWYSu/JxarOq63jmFjevymYmi03gy6
	mdXOGdXFbkIaTzwqaQIEkfpoWoIE3XwDlfVk5rIqjqaltq9do+gzW5bmVR9yNg==
X-Gm-Gg: ATEYQzy5tUsM8Uq3Iz8Vu+Q7MjIja0I184M2Q7bsqvebAtoGlaCp9i3ol/7qyrjI93i
	sVPRAQaBDhMH25F24/e/6oIqkpxtxPUBedrfzkZbF1JlqVlSbTCqEO7f+/7BXh57WpI7BSX2omg
	P7SM726+hAY9eNymaIEtClHCzWWsjr9ql/3MVfXz3HAvG9tMgm2R8eLOBFviMRfhXosTrzRQbMC
	kRLuhgCyKHkXLJL+tyo/7Xdq/Qc1Qv4Zkdd2nv+JrIwPhVbVnyMtd3FhNKsqM/EylS+y4Ia7EFy
	izTIXSIxwwTtB06N9RQY2nIFuLqivQ9T8Fa2Z0YmlvmJ0sOYpnpmpgiT5ru5Tl+s+MZmBCFuuCC
	LQetyXaNwuCzBsPLPrAcGQu2GQ6sWK7XizflZUe8v3w3Em6GZBTSH8oEW5A6r9pEtnpVv0Nr+qo
	utgJFzH83KPFCmhA0B4/pq81VQHxc0uzbVTB+jH4wsfVWRfl0cTG7DBh/zZ328P01+QA==
X-Received: by 2002:a05:6402:42cc:b0:660:f351:758d with SMTP id 4fb4d7f45d1cf-663b6f7ffafmr2600176a12.7.1773420289901;
        Fri, 13 Mar 2026 09:44:49 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 3/4] xen/riscv: allow Xen to use SSTC while hiding it from guests
Date: Fri, 13 Mar 2026 17:44:37 +0100
Message-ID: <0f0849b53625f9f9f939000f29579e264e522fd2.1773419622.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773419622.git.oleksii.kurochko@gmail.com>
References: <cover.1773419622.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

OpenSBI currently does not advertise the SSTC extension via the device
tree. Additionally, SSTC can no longer be reliably disabled by removing
the "sstc" string from riscv,isa, as OpenSBI probes support by attempting
to access CSR_STIMECMP.

Introduce a runtime probe in Xen to determine whether SSTC is available.
The probe attempts to read CSR_STIMECMP using csr_allowed_read(). If the
access succeeds, SSTC is considered available; if a trap occurs, it is
treated as unsupported.

When SSTC is detected, Xen may use it internally to program timers.
However, the extension is not exposed to guests because the required
context switch handling for the SSTC CSRs is not yet implemented.

To prevent guests from using SSTC, RISCV_ISA_EXT_sstc is cleared from the
riscv_isa bitmap. As a result, the corresponding HENVCFG bit is not set
and guests fall back to the SBI timer interface. Timer requests are then
handled by Xen via the usual SBI interception path.

Introduce set_xen_timer() to abstract how the timer is programmed,
either via the SSTC extension or an SBI call. This also reduces the
number of if statements in reprogram_timer().

The set_xen_timer function pointer is selected based on
csr_allowed_read() rather than riscv_isa_extension(). The latter
reflects features supported by both Xen and the guest, while SSTC is
currently only supported for Xen. Therefore, relying solely on
riscv_isa_extension() would not reliably determine whether SSTC can be
used.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/cpufeature.c                 | 33 +++++++++++++++++++
 xen/arch/riscv/domain.c                     |  3 ++
 xen/arch/riscv/include/asm/cpufeature.h     |  1 +
 xen/arch/riscv/include/asm/riscv_encoding.h |  2 ++
 xen/arch/riscv/time.c                       | 36 +++++++++++++--------
 xen/arch/riscv/vtimer.c                     |  7 +++-
 6 files changed, 67 insertions(+), 15 deletions(-)

diff --git a/xen/arch/riscv/cpufeature.c b/xen/arch/riscv/cpufeature.c
index 03e27b037be0..a7aa2358b73b 100644
--- a/xen/arch/riscv/cpufeature.c
+++ b/xen/arch/riscv/cpufeature.c
@@ -17,6 +17,7 @@
 #include <xen/sections.h>
 
 #include <asm/cpufeature.h>
+#include <asm/csr.h>
 
 #ifdef CONFIG_ACPI
 # error "cpufeature.c functions should be updated to support ACPI"
@@ -139,6 +140,7 @@ const struct riscv_isa_ext_data __initconst riscv_isa_ext[] = {
     RISCV_ISA_EXT_DATA(smaia),
     RISCV_ISA_EXT_DATA(smstateen),
     RISCV_ISA_EXT_DATA(ssaia),
+    RISCV_ISA_EXT_DATA(sstc),
     RISCV_ISA_EXT_DATA(svade),
     RISCV_ISA_EXT_DATA(svpbmt),
 };
@@ -483,6 +485,7 @@ void __init riscv_fill_hwcap(void)
     unsigned int i;
     const size_t req_extns_amount = ARRAY_SIZE(required_extensions);
     bool all_extns_available = true;
+    unsigned long tmp;
 
     riscv_fill_hwcap_from_isa_string();
 
@@ -495,6 +498,36 @@ void __init riscv_fill_hwcap(void)
         panic("HW capabilities parsing failed: %s\n", failure_msg);
     }
 
+    if ( csr_allowed_read(CSR_STIMECMP, &tmp) )
+    {
+        printk("SSTC is detected but is supported only for Xen usage not for "
+               "a guest.\n");
+
+        /*
+         * As SSTC for guest isn't supported it is needed temprorary to:
+         *
+         * 1. Clear bit RISCV_ISA_EXT_sstc in riscv_isa as theoretuically it
+         *    could be that OpenSBI (it doesn't pass it now) or whatever ran
+         *    before Xen will add SSTC to riscv,isa string. This bit  clear
+         *    willn't allow guest to use SSTC extension as vtimer context
+         *    switch and restore isn't ready for that.
+         */
+        __clear_bit(RISCV_ISA_EXT_sstc, riscv_isa);
+
+        /*
+         * 2. A VS-timer interrupt becomes pending whenever the value of
+         *    (time + htimedelta) is greater than or equal to vstimecmp CSR.
+         *    Thereby to avoid spurious VS-timer irqs set vstimecmp CSR to
+         *    -1.
+         *
+         * It should be dropped when SSTC for guests will be supported.
+         */
+        csr_write(CSR_VSTIMECMP, ULONG_MAX);
+#ifdef CONFIG_RISCV_32
+        csr_write(CSR_VSTIMECMPH, ULONG_MAX);
+#endif
+    }
+
     for ( i = 0; i < req_extns_amount; i++ )
     {
         const struct riscv_isa_ext_data ext = required_extensions[i];
diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index c327f44d07ca..5f15dda88c8e 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -99,6 +99,9 @@ static void vcpu_csr_init(struct vcpu *v)
     if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_svpbmt) )
         v->arch.henvcfg = ENVCFG_PBMTE & csr_masks.henvcfg;
 
+    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_sstc) )
+        v->arch.henvcfg |= ENVCFG_STCE & csr_masks.henvcfg;
+
     if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
     {
         /* Allow guest to access CSR_SENVCFG */
diff --git a/xen/arch/riscv/include/asm/cpufeature.h b/xen/arch/riscv/include/asm/cpufeature.h
index ef02a3e26d2c..0c48d57a03bb 100644
--- a/xen/arch/riscv/include/asm/cpufeature.h
+++ b/xen/arch/riscv/include/asm/cpufeature.h
@@ -38,6 +38,7 @@ enum riscv_isa_ext_id {
     RISCV_ISA_EXT_smaia,
     RISCV_ISA_EXT_smstateen,
     RISCV_ISA_EXT_ssaia,
+    RISCV_ISA_EXT_sstc,
     RISCV_ISA_EXT_svade,
     RISCV_ISA_EXT_svpbmt,
     RISCV_ISA_EXT_MAX
diff --git a/xen/arch/riscv/include/asm/riscv_encoding.h b/xen/arch/riscv/include/asm/riscv_encoding.h
index dd15731a86fa..7fc379cab588 100644
--- a/xen/arch/riscv/include/asm/riscv_encoding.h
+++ b/xen/arch/riscv/include/asm/riscv_encoding.h
@@ -396,6 +396,8 @@
 #define CSR_VSTVAL			0x243
 #define CSR_VSIP			0x244
 #define CSR_VSATP			0x280
+#define CSR_VSTIMECMP		0x24D
+#define CSR_VSTIMECMPH		0x25D
 
 /* Virtual Interrupts and Interrupt Priorities (H-extension with AIA) */
 #define CSR_HVIEN			0x608
diff --git a/xen/arch/riscv/time.c b/xen/arch/riscv/time.c
index 7efa76fdbcb1..98eca2887d5c 100644
--- a/xen/arch/riscv/time.c
+++ b/xen/arch/riscv/time.c
@@ -13,6 +13,20 @@
 unsigned long __ro_after_init cpu_khz; /* CPU clock frequency in kHz. */
 uint64_t __ro_after_init boot_clock_cycles;
 
+static int cf_check sstc_set_xen_timer(uint64_t deadline)
+{
+#ifdef CONFIG_RISCV_32
+    csr_write(CSR_STIMECMP, deadline & 0xFFFFFFFF);
+    csr_write(CSR_STIMECMPH, deadline >> 32);
+#else
+    csr_write(CSR_STIMECMP, deadline);
+#endif
+
+    return 0;
+}
+
+int (* __ro_after_init set_xen_timer)(uint64_t deadline);
+
 s_time_t get_s_time(void)
 {
     uint64_t ticks = get_cycles() - boot_clock_cycles;
@@ -61,20 +75,7 @@ int reprogram_timer(s_time_t timeout)
     if ( deadline <= now )
         return 0;
 
-    /*
-     * TODO: When the SSTC extension is supported, it would be preferable to
-     *       use the supervisor timer registers directly here for better
-     *       performance, since an SBI call and mode switch would no longer
-     *       be required.
-     *
-     *       This would also reduce reliance on a specific SBI implementation.
-     *       For example, it is not ideal to panic() if sbi_set_timer() returns
-     *       a non-zero value. Currently it can return 0 or -ENOSUPP, and
-     *       without SSTC we still need an implementation because only the
-     *       M-mode timer is available, and it can only be programmed in
-     *       M-mode.
-     */
-    if ( (rc = sbi_set_timer(deadline)) )
+    if ( (rc = set_xen_timer(deadline)) )
         panic("%s: timer wasn't set because: %d\n", __func__, rc);
 
     /* Enable timer interrupt */
@@ -85,10 +86,17 @@ int reprogram_timer(s_time_t timeout)
 
 void __init preinit_xen_time(void)
 {
+    unsigned long tmp;
+
     if ( acpi_disabled )
         preinit_dt_xen_time();
     else
         panic("%s: ACPI isn't supported\n", __func__);
 
     boot_clock_cycles = get_cycles();
+
+    if ( csr_allowed_read(CSR_STIMECMP, &tmp) )
+        set_xen_timer = sstc_set_xen_timer;
+    else
+        set_xen_timer = sbi_set_timer;
 }
diff --git a/xen/arch/riscv/vtimer.c b/xen/arch/riscv/vtimer.c
index afd8a53a7387..c065052afeb7 100644
--- a/xen/arch/riscv/vtimer.c
+++ b/xen/arch/riscv/vtimer.c
@@ -4,6 +4,7 @@
 #include <xen/sched.h>
 #include <xen/timer.h>
 
+#include <asm/cpufeature.h>
 #include <asm/vtimer.h>
 
 static void vtimer_expired(void *data)
@@ -75,12 +76,16 @@ void vtimer_ctxt_switch_from(struct vcpu *p)
 {
     ASSERT(!is_idle_vcpu(p));
 
-    /* Nothing to do at the moment as SSTC isn't supported now. */
+    BUG_ON(riscv_isa_extension_available(NULL, RISCV_ISA_EXT_sstc));
+
+    /* Nothing to do at the moment as SSTC for guests isn't supported now */
 }
 
 void vtimer_ctxt_switch_to(struct vcpu *n)
 {
     ASSERT(!is_idle_vcpu(n));
 
+    BUG_ON(riscv_isa_extension_available(NULL, RISCV_ISA_EXT_sstc));
+
     migrate_timer(&n->arch.vtimer.timer, n->processor);
 }
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:44:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:44:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254116.1550090 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15d3-00048O-V8; Fri, 13 Mar 2026 16:44:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254116.1550090; Fri, 13 Mar 2026 16:44: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 1w15d3-00048H-SU; Fri, 13 Mar 2026 16:44:49 +0000
Received: by outflank-mailman (input) for mailman id 1254116;
 Fri, 13 Mar 2026 16:44: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=p3qR=BN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w15d2-00048B-Kb
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:44:48 +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 f20268b9-1efb-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 17:44:47 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-6611f41eebcso3200281a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 09:44:47 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-66350b86008sm1394733a12.28.2026.03.13.09.44.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Mar 2026 09:44: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: f20268b9-1efb-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773420286; x=1774025086; 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=nvusB8amxANk2/hw0DyBVCpoKjQxhuOgDtnr4JFcqBM=;
        b=L1BY/W0e2Vctn0m3KQzKHUug6kxYCCMGIOQNRjWuw+hhBH2KAsuGOJZI7XjTdIQF+o
         17h7Qzgx+Rrq7MejimTCOAdCaIe488/LxBccIhNQ+0oHRD0WtSWirTtGmeDMhmM+7+7L
         V/VALccSHfceTR/kQwFpzM20G9x3E6AuWokfa6L4AEPJBsE9Sp5WwBBzu+3TFD2+nKgZ
         DLXDjfPIgoeZaT/RZ9QKpvUh7MuNQnJkaG17a0yAW/yctM/Ql4rBQcVKdxq8B2c4I5Vp
         0CoTmqJN0+O+vNoy7JP3JE9HKkkWq60gfbX4cZ33oyB+zFzcWb+kJx/nKTsDtWtXAp47
         hVRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773420286; x=1774025086;
        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=nvusB8amxANk2/hw0DyBVCpoKjQxhuOgDtnr4JFcqBM=;
        b=CAh3+z5Y1cNu8I2WJMDqN+0EkkYxRaLhWiZ7bV48X9sF/a89YGlXdaFmRDlMkZjLcr
         4miFFUv7wX3IGrX5RbfQp815DTpp2CZ+3YWUJDzYxR3L2MgEr9R3MAAyxPPL6LbX6/XA
         DZw84Q5bCy7pidpGjNA8oUcbCQisFJofFvJKRgv/t4sLOID/Ovnyu2J1JH9FQMreV+JF
         dPN3jtBHDhpZrOKpX4qe4VMaSKoO1EKYl8TgIUnWFwQ7kaK6vYiYDSeZbcMRsEBOv6Gz
         j0HJMGJ0hYZia2OPpGh4lqbZ/5yfmsYfM6VRS2BUFnd/7TJenOnucPQNdHZ4uJDU90ZH
         1yUw==
X-Gm-Message-State: AOJu0YzkYfCyJK27imm6kl4xasoq+s5jOKawMLez+BwPQwfV6shgjGil
	YqYuKCl02ydsf3PLm/JhyzPLP0zdEA4nqD7UfL74SbdJy8ZYKf5o9gzhVhpfyQ==
X-Gm-Gg: ATEYQzxnKr5IvAdDJDBU+llx4Dsa7awaKT+4hplTB4Gc3jf9KuoeTqEMxtPzyD4jbLr
	6Z4KyY2GHvWZnyQHjV+UBGl6xf6Jtr6ifyPNKcbcvzhmi5OITMZDCipIqaM0zUEUCD4jybvjiC5
	B1aSCcLCBS969Jb7nCgaSvKSm+GM2WTKDLUD9qWwfn22KRT+TaQHM3Frjnxg8CT/KCTqXPKf8Y7
	/IxTD9m6bGkulIW9ensP09NgtqVJ/ybbfHj44WyV6/ketlDx2daeaAO8MvetnSDPUl8YJAkp3v0
	9HC8LwheK8yX2FHQ+4R8gCn6EnGjUgrdvjIR0Gdgz+aOTelPj0CAWhWt/aX5EVELqMI5yjl3d6W
	T6UXzrMBVgLBYvWBHdBwx7NfQIxhJeiCF6d1ku3j0ApGqUlK/aYsiaJewr03gMyDpD+i29ZtD9e
	CWCBw8qkWQ9d9X9jsqPZ7+B7f+4bTA0HNM6kZeOFK/L8eOEQdk/El/Bp3yfP0CSb5Kow==
X-Received: by 2002:a17:907:da07:b0:b94:1224:c605 with SMTP id a640c23a62f3a-b976500fa5bmr219134666b.19.1773420286041;
        Fri, 13 Mar 2026 09:44:46 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 0/4] RISCV: Intrdouce SSTC support in Xen
Date: Fri, 13 Mar 2026 17:44:34 +0100
Message-ID: <cover.1773419622.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch series is created based on [1] and the aim is to make Xen properly
works when SSTC extension is available.

It is needed to do in this way as OpenSBI doesn't pass that it supports SSTC
by DTS to Xen and there is no easy way to turn off support of SSTC support.

Also, as a part of this patch series intrdouce suggested [2] by Jan B.
improvements of init_csr_masks().

[1] https://lore.kernel.org/xen-devel/cover.1772814110.git.oleksii.kurochko@gmail.com/T/#mc14576ef43a83b344c5f31626005b995e2ccbeaa
[2] https://lore.kernel.org/xen-devel/cover.1772814110.git.oleksii.kurochko@gmail.com/T/#m9c18d2d7a98958befec16419f5deccc40f6c8c3e

Oleksii Kurochko (4):
  xen/riscv: add exception table support
  xen/riscv: add csr_allowed_read() helper
  xen/riscv: allow Xen to use SSTC while hiding it from guests
  xen/riscv: init_csr_masks()-related improvements

 xen/arch/riscv/Kconfig                      |  1 +
 xen/arch/riscv/Makefile                     |  1 +
 xen/arch/riscv/cpufeature.c                 | 33 ++++++++
 xen/arch/riscv/domain.c                     | 32 ++++----
 xen/arch/riscv/extables.c                   | 85 +++++++++++++++++++++
 xen/arch/riscv/include/asm/cpufeature.h     |  1 +
 xen/arch/riscv/include/asm/csr.h            | 34 ++++++++-
 xen/arch/riscv/include/asm/extables.h       | 72 +++++++++++++++++
 xen/arch/riscv/include/asm/riscv_encoding.h |  2 +
 xen/arch/riscv/setup.c                      |  3 +
 xen/arch/riscv/time.c                       | 36 +++++----
 xen/arch/riscv/traps.c                      |  3 +
 xen/arch/riscv/vtimer.c                     |  7 +-
 xen/arch/riscv/xen.lds.S                    |  3 +
 xen/arch/x86/xen.lds.S                      |  6 +-
 xen/include/xen/xen.lds.h                   | 10 +++
 16 files changed, 294 insertions(+), 35 deletions(-)
 create mode 100644 xen/arch/riscv/extables.c
 create mode 100644 xen/arch/riscv/include/asm/extables.h

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:44:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:44:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254120.1550126 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15dC-000579-86; Fri, 13 Mar 2026 16:44:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254120.1550126; Fri, 13 Mar 2026 16:44:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15dC-000570-3y; Fri, 13 Mar 2026 16:44:58 +0000
Received: by outflank-mailman (input) for mailman id 1254120;
 Fri, 13 Mar 2026 16:44: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=p3qR=BN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w15dB-0004GG-4W
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:44:57 +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 f5170cf2-1efb-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:44:52 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-66391baf250so2038238a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 09:44:52 -0700 (PDT)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-66350b86008sm1394733a12.28.2026.03.13.09.44.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Mar 2026 09:44:50 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f5170cf2-1efb-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773420292; x=1774025092; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WC9Q7UDifDEqfqwQFhunvL4KaBDnJAUUS0hjUL4t6mI=;
        b=ZP0kBdpNmwu+l6bfZZVSXm8+/xwfs5sdGlQZuz7GNKQGcT1FGN98IVpCFDn4h6IXLe
         NL2tcUsknjW8bv32fm/RvWD1N0ZEVFaTmcz+a4Wca/xHFVeAZpNldW/VNoQsVdLAahYH
         YIHWNuA3ddBNb04Jmn/IpeIjDp0TIYVZD3HP69ZypXotLmOtIyCUAhyauLVJIbTGtats
         S/NqkyhW/bijXWpCOiUzJpCUNPR8OMngEj2fasTCzAL5VGrecMhzn9SwBhgJfrTocIFZ
         3EB0XWyR33QgLPuldGIb2gEsgLRQ+ZLwYsIHal1hYBGytv5gfTNXD1AO/l+Jc8OrMXyG
         h3Fg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773420292; x=1774025092;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=WC9Q7UDifDEqfqwQFhunvL4KaBDnJAUUS0hjUL4t6mI=;
        b=iYYO95Imr3qq6V+Wp4AKKYUhYQ/Am/JPH6FoQ9Ig8CkjIM89Zc9t9PgwXaQf48BEUW
         2O8V9s6LFpG1+d5i7D9KPOi9jfS5KD1g74JUbcWP7l1heoRg/6OGVDl+buTtsiyPcuaq
         ev8QI8QNE2H1YCd5Kpz4wbxwAYW5AxBf40uS9jjPk23GBo7X+Bp3OXaVY15ZDV66muim
         UD+QYaa28sadRl7iUpj4xNBl4efVAcSs35Elhgpl666Qku+htwLKczqV/2Dbb7PS1az6
         Bj8InvYumc0kqneNzR6IjQYjejkMOa0Ejw/AoEisRq/6VtVcKKFx3KfgZMPz6IdIKFhJ
         zKMg==
X-Gm-Message-State: AOJu0Yw1XS7ovVLrROzkamAH/WwtbHW4XZUDBudLXdoJ2vZ4/zUt2CDs
	gQ7VCACm/75tuq5x1fXg2HppIpCmkYoTGk+VPg5PdbVV/9eF74SNHNXbBYQEeg==
X-Gm-Gg: ATEYQzzTtXyXTWq/x7BS497pHq/j/oUxx8BPE75RstKFy+Qc5HV/Y8tSh4ILFOmd/9V
	Q157VX7q/Wn35CpD+Pub0g78vBIhVvAcfIWx/7A62mF8z2fuODA/5bTywPtOl+OfbMps7yH+mEX
	5fKkuzJJg9Qty881my4fZ86cZkPuvsi43VE0bpg/mGCc7ecPwTF2cyYQABBn9YfAVFupn21FT36
	s/JCgAkyO1aEwvOuPzeW7vP989W8HhqCa2cIKcid0dU+72YVieqWOjPoaIE2Wv7PTxYXS2GHyzB
	LOUX9wW1O/1YsJhW93H5HHDYa7L+0Bdt+t4j9DYIhaNpwA27ms+NYUVv91ArlZ0dVNLC5qBvsOL
	TchZ+4KNsrYapoVmAzRbdTwHL87H9JgexGx89voGpdc2WjwS4/RQJwlIW9W3r4yk7hbtRR4z0Fo
	GnQlixKqAJbQDkF6WNwwHDrdoBvepAfkwEM6QxVvvmFtkYJPYn00tAzhJ+729pMAL5jg==
X-Received: by 2002:a05:6402:254f:b0:661:d0a4:ad45 with SMTP id 4fb4d7f45d1cf-663babb8965mr2319469a12.10.1773420291271;
        Fri, 13 Mar 2026 09:44:51 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 4/4] xen/riscv: init_csr_masks()-related improvements
Date: Fri, 13 Mar 2026 17:44:38 +0100
Message-ID: <b283d6a8d59d66010f6249161245e4a7f4219589.1773419622.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1773419622.git.oleksii.kurochko@gmail.com>
References: <cover.1773419622.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

There is no reason to use _UL() in define-s sitting in C file hence use UL
prefix instead.

Drop 3d argument of INIT_CSR_MASK() and INIT_RO_ONE_MASK() to reduce risk
of incomplete editing after copy-and-paste, or other typo-ing.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/domain.c | 29 +++++++++++++++--------------
 1 file changed, 15 insertions(+), 14 deletions(-)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 5f15dda88c8e..70d0e55ed1bc 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -42,10 +42,10 @@ struct csr_masks {
 
 static struct csr_masks __ro_after_init csr_masks;
 
-#define HEDELEG_AVAIL_MASK ULONG_MAX
-#define HIDELEG_AVAIL_MASK ULONG_MAX
-#define HENVCFG_AVAIL_MASK _UL(0xE0000003000000FF)
-#define HSTATEEN0_AVAIL_MASK _UL(0xDE00000000000007)
+#define HEDELEG_VALID_MASK ULONG_MAX
+#define HIDELEG_VALID_MASK ULONG_MAX
+#define HENVCFG_VALID_MASK (0xE0000003000000FFUL)
+#define HSTATEEN0_VALID_MASK (0xDE00000000000007UL)
 
 void __init init_csr_masks(void)
 {
@@ -57,25 +57,26 @@ void __init init_csr_masks(void)
      * fields that must be preserved. Any write to the full register must
      * therefore retain the original values of those fields.
      */
-#define INIT_CSR_MASK(csr, field, mask) do { \
-        register_t old = csr_read_set(CSR_ ## csr, mask); \
+#define INIT_CSR_MASK(csr, field) do { \
+        register_t old = csr_read_set(CSR_ ## csr, csr ## _VALID_MASK); \
         csr_masks.field = csr_swap(CSR_ ## csr, old); \
     } while (0)
 
-#define INIT_RO_ONE_MASK(csr, field, mask) do { \
-        register_t old = csr_read_clear(CSR_ ## csr, mask); \
-        csr_masks.ro_one.field = csr_swap(CSR_ ## csr, old) & mask; \
+#define INIT_RO_ONE_MASK(csr, field) do { \
+        register_t old = csr_read_clear(CSR_ ## csr, csr ## _VALID_MASK); \
+        csr_masks.ro_one.field = csr_swap(CSR_ ## csr, old) & \
+                                 csr ## _VALID_MASK; \
     } while (0)
 
-    INIT_CSR_MASK(HEDELEG, hedeleg, HEDELEG_AVAIL_MASK);
-    INIT_CSR_MASK(HIDELEG, hideleg, HIDELEG_AVAIL_MASK);
+    INIT_CSR_MASK(HEDELEG, hedeleg);
+    INIT_CSR_MASK(HIDELEG, hideleg);
 
-    INIT_CSR_MASK(HENVCFG, henvcfg, HENVCFG_AVAIL_MASK);
+    INIT_CSR_MASK(HENVCFG, henvcfg);
 
     if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
     {
-        INIT_CSR_MASK(HSTATEEN0, hstateen0, HSTATEEN0_AVAIL_MASK);
-        INIT_RO_ONE_MASK(HSTATEEN0, hstateen0, HSTATEEN0_AVAIL_MASK);
+        INIT_CSR_MASK(HSTATEEN0, hstateen0);
+        INIT_RO_ONE_MASK(HSTATEEN0, hstateen0);
     }
 
 #undef INIT_CSR_MASK
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:47:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:47:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254160.1550136 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15fF-0006hF-Lu; Fri, 13 Mar 2026 16:47:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254160.1550136; Fri, 13 Mar 2026 16:47:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15fF-0006h8-HJ; Fri, 13 Mar 2026 16:47:05 +0000
Received: by outflank-mailman (input) for mailman id 1254160;
 Fri, 13 Mar 2026 16:47:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=NiiW=BN=bounce.vates.tech=bounce-md_30504962.69b43f80.v1-f694fcadf41d4c61a465fb8a145c2819@srs-se1.protection.inumbo.net>)
 id 1w15fD-0006dJ-HC
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:47:03 +0000
Received: from mail134-15.atl141.mandrillapp.com
 (mail134-15.atl141.mandrillapp.com [198.2.134.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3f69439c-1efc-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:46:57 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-15.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4fXVkm1XQTzPm0PqM
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:46:56 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 f694fcadf41d4c61a465fb8a145c2819; Fri, 13 Mar 2026 16:46: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: 3f69439c-1efc-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773420416; x=1773690416;
	bh=YVESgmaHRMpbf7+5tHUgQMMGFPJarDui+ShzAbAzOzM=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=BRC6lsby6gFZ4a8xXvpuYAQHzKvFgNyR/cjJzmjMCocAY17z7n/pqkzpbWmzeY7iT
	 JQKEhIjHDRGLwYUMnVSHlk7Gm9Nu8GE8T7i3M7iRr/1Y2y9jPteuYJizawLBvsvIy2
	 94sMvbB47GELxFL4nGVBpn4KP8gi8lISSlYVIq1JmSr9nYbXVL3RaeY68HR0D5SUH0
	 OPM9Kz74oU4FPAtNlpIlt/zmeGZ/b7FoJ2XmwKAYs3YqJcOPLTfiHHBkMoVM06r953
	 K67YUEG6ACoDpWQ3NhWX8yTgmDIFOEpZ6YkZscJQxyNf9kRko4STGTmKUZy6juUkOo
	 eaWZuGbJcY3rQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773420416; x=1773680916; i=thierry.escande@vates.tech;
	bh=YVESgmaHRMpbf7+5tHUgQMMGFPJarDui+ShzAbAzOzM=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=IujO/Oye3h8RZR2kw8gwBbwpAYTcodSvj/J5aHf1R0naDYFbLmt+VMbYd+yCen+Nm
	 Xq5QSQwlX9N5U/ubQi+weCDmXgjxBuBHTUv1XE3WsmOe1p8K//Kh+D2Nj0bmuI8LDm
	 zaTIfaqNoKp3GoH+/lW0huJ4x41G4ZeuHDr/2YViOlhIxM0VfOC8goH6BKrgtFtlsA
	 z1tFxMXWTTgYsLQlTNxOaRmxs5nuA9hGxkv5u16HIgLg6dF4MDpKfyzwU5mjP2a1zl
	 DXeXJYX9dDswCum7OJWDn2zw/nk3YsI9BiKudTYoi7YvMu9Vf2JJeiPL9mzgHFaS5O
	 xP4Sjruv0JKWQ==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=200/4]=20Xen:=20Add=20Q35=20initial=20support=20for=20HVM=20guests?=
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: 1773420415146
To: qemu-devel@nongnu.org
Cc: "Thierry Escande" <thierry.escande@vates.tech>, "Paolo Bonzini" <pbonzini@redhat.com>, "Richard Henderson" <richard.henderson@linaro.org>, "Michael S. Tsirkin" <mst@redhat.com>, "Eduardo Habkost" <eduardo@habkost.net>, "Anthony PERARD" <anthony@xenproject.org>, xen-devel@lists.xenproject.org
Message-Id: <20260313164649.794591-1-thierry.escande@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.f694fcadf41d4c61a465fb8a145c2819?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:46:56 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This patch series introduces Q35 chipset support for Xen HVM guests. This is
based on the work from Alexey Gerasimenko (See patchset [1] for reference).

This series does not implement device passthrough as this will need more work
on the Xen side to support multiple PCI buses. Since Q35 chipset does not
support device hotplugging and with current Xen mechanism for device
passthrough, they have to be plugged to a new PCIe root port, i.e. not the PCI
bus 0.

As a first step for Q35 guests support, this series implements:
- Legacy interrupt routing for the ICH9 LPC bridge (i.e. not IOAPIC)
- Xen HVM machine initialization in pc_q35_init()
- Access to PCIe Extended Config Space
- Fix for incorrect values and usage for PCIEXBAR masks

The corresponding patchset for the Xen Project has been posted at [2].

[1] https://lore.kernel.org/xen-devel/cover.1520867740.git.x1917x@gmail.com/
[2] https://lore.kernel.org/xen-devel/20260313163455.790692-1-thierry.escande@vates.tech/

Alexey Gerasimenko (2):
  pc/xen: Xen Q35 support: provide IRQ handling for PCI devices
  q35: Fix incorrect values for PCIEXBAR masks

Thierry Escande (2):
  q35/xen: Add Xen support for Q35
  xen: Handle PCIe config space size in cpu_ioreq_config()

 hw/i386/pc_piix.c         |  2 --
 hw/i386/pc_q35.c          | 12 +++++++++++-
 hw/i386/xen/xen-hvm.c     | 38 ++++++++++++++++++++++++++++++++++++++
 hw/isa/lpc_ich9.c         | 16 +++++++++++++---
 hw/pci-host/q35.c         |  6 +++---
 hw/xen/xen-hvm-common.c   | 11 +++++++----
 include/hw/pci-host/q35.h |  4 ++--
 include/hw/xen/xen.h      |  5 +++++
 stubs/xen-hw-stub.c       |  4 ++++
 9 files changed, 83 insertions(+), 15 deletions(-)

-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:47:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:47:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254161.1550144 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15fK-0006wg-V4; Fri, 13 Mar 2026 16:47:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254161.1550144; Fri, 13 Mar 2026 16: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 1w15fK-0006wX-Rs; Fri, 13 Mar 2026 16:47:10 +0000
Received: by outflank-mailman (input) for mailman id 1254161;
 Fri, 13 Mar 2026 16:47:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8v75=BN=bounce.vates.tech=bounce-md_30504962.69b43f8b.v1-0118508a42d54da1a844b7f27097d1e0@srs-se1.protection.inumbo.net>)
 id 1w15fK-0006dJ-CA
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:47:10 +0000
Received: from mail134-15.atl141.mandrillapp.com
 (mail134-15.atl141.mandrillapp.com [198.2.134.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 45afdb7e-1efc-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 17:47:08 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-15.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4fXVkz1vGhzPm0Pr5
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:47:07 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 0118508a42d54da1a844b7f27097d1e0; Fri, 13 Mar 2026 16:47:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 45afdb7e-1efc-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773420427; x=1773690427;
	bh=B1fZqJL36gLjyygjzjPY/WHbUmBzonK71fAY1TCjXcI=;
	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=Nzp0JDE45Zx44s8jrK143spt1uvUCtMqqhBlIK+aG/9duFiB23hhggAZ4W+uCWKo9
	 QfP7uzBQo0PiQAcW+7dkILIaaRHj1y/1esxc7t2EgnPWSh1c7OpYBygvWL9vzIPVAw
	 imY+B6mecylxmM1UMutwFHYwK7pTwtEhPdz3QCH9QjUfH4w5P6CTCn5ZN7BXD36bni
	 1TTayukUzKA3fjIaa3pDsmpvBgi0rTMrWv4bvZnpisWWPTJBVEBqCFivyfI+UdXYkp
	 hz8Ga8kFrL1ftzV9iewE51HA3YxVRG2DorZYhJwH2IOG7HbN5gl06lQq00884mbe+h
	 NGMrDS+jfpz7Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773420427; x=1773680927; i=thierry.escande@vates.tech;
	bh=B1fZqJL36gLjyygjzjPY/WHbUmBzonK71fAY1TCjXcI=;
	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=zDYb8qxoF4KjqvLStQ+Or7YsG/BV3GDd/z35iPo/DBevuXqsYBg2Wle4sU+mmxgAb
	 WB0IrzGAEwtboUxZi4wXzLgqnWel1bYYr8i5IWqREwDmzQBeZxTyN/3ZgLjw/09W5T
	 tat8cjKPdk3QS00WAS8GS9sbItFhb9Jq3dh3/w9Tvi2FdPg+ydtFPNgJQ8ubkMmCmO
	 vgUQ6OKJMGZ4BgRtJR2iK/4RbHOp10m/fUjZzWc2svLr/AM98mmsttPxzqf3Mdo1my
	 OLc6x1DbIt3ku9SepM872qup7kJePcEHxC/tJj7cojMs+CAjYTVQY8fbLyQlAFOSUP
	 wsGIRfvlP0tKQ==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=201/4]=20pc/xen:=20Xen=20Q35=20support:=20provide=20IRQ=20handling=20for=20PCI=20devices?=
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: 1773420425990
To: qemu-devel@nongnu.org
Cc: "Alexey Gerasimenko" <x1917x@gmail.com>, "Paolo Bonzini" <pbonzini@redhat.com>, "Richard Henderson" <richard.henderson@linaro.org>, "Michael S. Tsirkin" <mst@redhat.com>, "Eduardo Habkost" <eduardo@habkost.net>, "Anthony PERARD" <anthony@xenproject.org>, xen-devel@lists.xenproject.org, "Thierry Escande" <thierry.escande@vates.tech>
Message-Id: <20260313164649.794591-2-thierry.escande@vates.tech>
In-Reply-To: <20260313164649.794591-1-thierry.escande@vates.tech>
References: <20260313164649.794591-1-thierry.escande@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.0118508a42d54da1a844b7f27097d1e0?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:47:07 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

From: Alexey Gerasimenko <x1917x@gmail.com>

This patch introduces support for ICH9 LPC PCI interrupt routing when
running under Xen. This intercepts writes to the PIRQA-D routing
registers and propagates routing changes to the Xen device model via
xen_set_pci_link_route().

A major difference between i440 and Q35 is the number of PIRQ inputs and
PIRQ routers (PCI IRQ links in terms of ACPI) available. i440 has 4 PCI
interrupt links, while Q35 has 8 (PIRQA...PIRQH). Currently Xen has
support for only 4 PCI links, so we describe only 4 of 8 PCI links in
ACPI tables. Also, hvmloader disables PIRQ routing for PIRQE..PIRQH by
writing 80h into corresponding PIRQ[n]_ROUT registers.

All this PCI interrupt routing stuff largely concerns legacy mechanism
from PIC era. It's hardly worth to extend number of PCI links supported
as we normally deal with APIC mode and/or MSI interrupts.

The only useful thing to do with PIRQE..PIRQH routing currently is to
check if guest actually attempts to use it for some reason (despite ACPI
PCI routing information provided). In this case, a warning is reported.

This has been tested on Linux guests with noapic and pci=nomsi kernel
parameters set.

Signed-off-by: Alexey Gerasimenko <x1917x@gmail.com>
Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
---
 hw/i386/pc_piix.c     |  2 --
 hw/i386/xen/xen-hvm.c | 38 ++++++++++++++++++++++++++++++++++++++
 hw/isa/lpc_ich9.c     | 16 +++++++++++++---
 include/hw/xen/xen.h  |  5 +++++
 stubs/xen-hw-stub.c   |  4 ++++
 5 files changed, 60 insertions(+), 5 deletions(-)

diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 4d71e0d51a..a65e09e46c 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -66,8 +66,6 @@
 #include "hw/i386/acpi-build.h"
 #include "target/i386/cpu.h"
 
-#define XEN_IOAPIC_NUM_PIRQS 128ULL
-
 static GlobalProperty pc_piix_compat_defaults[] = {
     { TYPE_RAMFB_DEVICE, "use-legacy-x86-rom", "true" },
     { TYPE_VFIO_PCI_NOHOTPLUG, "use-legacy-x86-rom", "true" },
diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c
index 67d3e836eb..2dba289e09 100644
--- a/hw/i386/xen/xen-hvm.c
+++ b/hw/i386/xen/xen-hvm.c
@@ -18,6 +18,7 @@
 #include "hw/core/hw-error.h"
 #include "hw/i386/pc.h"
 #include "hw/core/irq.h"
+#include "hw/southbridge/ich9.h"
 #include "hw/i386/apic-msidef.h"
 #include "hw/xen/xen-x86.h"
 #include "qemu/range.h"
@@ -87,6 +88,43 @@ int xen_set_pci_link_route(uint8_t link, uint8_t irq)
     return xendevicemodel_set_pci_link_route(xen_dmod, xen_domid, link, irq);
 }
 
+void xen_ich9_pci_write_config_client(PCIDevice *pci_dev, uint32_t address, uint32_t val, int len)
+{
+    static bool pirqe_f_warned = false;
+    int i;
+
+    if (ranges_overlap(address, len, ICH9_LPC_PIRQA_ROUT, 4)) {
+        /* handle PIRQA..PIRQD routing */
+        /* Scan for updates to PCI link routes (0x60-0x63). */
+        for (i = 0; i < len; i++) {
+            uint8_t v = (val >> (8 * i)) & 0xff;
+            if (v & 0x80) {
+                v = 0;
+            }
+            v &= 0xf;
+            if (((address + i) >= ICH9_LPC_PIRQA_ROUT) &&
+                ((address + i) <= ICH9_LPC_PIRQD_ROUT)) {
+                xen_set_pci_link_route(address + i - ICH9_LPC_PIRQA_ROUT, v);
+            }
+        }
+    } else if (ranges_overlap(address, len, ICH9_LPC_PIRQE_ROUT, 4)) {
+        while (len--) {
+            if (range_covers_byte(ICH9_LPC_PIRQE_ROUT, 4, address) &&
+                (val & 0x80) == 0) {
+                /* print warning only once */
+                if (!pirqe_f_warned) {
+                    pirqe_f_warned = true;
+                    warn_report("WARNING: guest domain attempted to use PIRQ%c "
+                                "routing which is not supported for Xen/Q35 currently\n",
+                                (char)(address - ICH9_LPC_PIRQE_ROUT + 'E'));
+                    break;
+                }
+            }
+            address++, val >>= 8;
+        }
+    }
+}
+
 int xen_is_pirq_msi(uint32_t msi_data)
 {
     /* If vector is 0, the msi is remapped into a pirq, passed as
diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c
index 51dc680029..8c627f0734 100644
--- a/hw/isa/lpc_ich9.c
+++ b/hw/isa/lpc_ich9.c
@@ -46,8 +46,10 @@
 #include "hw/acpi/ich9_timer.h"
 #include "hw/pci/pci_bus.h"
 #include "hw/core/qdev-properties.h"
+#include "hw/xen/xen.h"
 #include "system/runstate.h"
 #include "system/system.h"
+#include "system/xen.h"
 #include "hw/core/cpu.h"
 #include "hw/nvram/fw_cfg.h"
 #include "qemu/cutils.h"
@@ -569,6 +571,9 @@ static void ich9_lpc_config_write(PCIDevice *d,
     ICH9LPCState *lpc = ICH9_LPC_DEVICE(d);
     uint32_t rcba_old = pci_get_long(d->config + ICH9_LPC_RCBA);
 
+    if (xen_enabled()){
+        xen_ich9_pci_write_config_client(d, addr, val, len);
+    }
     pci_default_write_config(d, addr, val, len);
     if (ranges_overlap(addr, len, ICH9_LPC_PMBASE, 4) ||
         ranges_overlap(addr, len, ICH9_LPC_ACPI_CTRL, 1)) {
@@ -762,9 +767,14 @@ static void ich9_lpc_realize(PCIDevice *d, Error **errp)
     irq = object_property_get_uint(OBJECT(&lpc->rtc), "irq", &error_fatal);
     isa_connect_gpio_out(ISA_DEVICE(&lpc->rtc), 0, irq);
 
-    pci_bus_irqs(pci_bus, ich9_lpc_set_irq, d, ICH9_LPC_NB_PIRQS);
-    pci_bus_map_irqs(pci_bus, ich9_lpc_map_irq);
-    pci_bus_set_route_irq_fn(pci_bus, ich9_route_intx_pin_to_irq);
+    if (xen_enabled()) {
+        pci_bus_irqs(pci_bus, xen_intx_set_irq, d, XEN_IOAPIC_NUM_PIRQS);
+        pci_bus_map_irqs(pci_bus, xen_pci_slot_get_pirq);
+    } else {
+        pci_bus_irqs(pci_bus, ich9_lpc_set_irq, d, ICH9_LPC_NB_PIRQS);
+        pci_bus_map_irqs(pci_bus, ich9_lpc_map_irq);
+        pci_bus_set_route_irq_fn(pci_bus, ich9_route_intx_pin_to_irq);
+    }
 
     ich9_lpc_pm_init(lpc);
 }
diff --git a/include/hw/xen/xen.h b/include/hw/xen/xen.h
index e94c6e5a31..910289b54d 100644
--- a/include/hw/xen/xen.h
+++ b/include/hw/xen/xen.h
@@ -24,6 +24,8 @@
 #define __XEN_INTERFACE_VERSION__ 0x00040e00
 #endif
 
+#define XEN_IOAPIC_NUM_PIRQS 128ULL
+
 /* xen-machine.c */
 enum xen_mode {
     XEN_DISABLED = 0, /* xen support disabled (default) */
@@ -39,6 +41,9 @@ extern bool xen_is_stubdomain;
 int xen_pci_slot_get_pirq(PCIDevice *pci_dev, int irq_num);
 int xen_set_pci_link_route(uint8_t link, uint8_t irq);
 void xen_intx_set_irq(void *opaque, int irq_num, int level);
+void xen_ich9_pci_write_config_client(PCIDevice *pci_dev,
+                                      uint32_t address, uint32_t val,
+                                      int len);
 void xen_hvm_inject_msi(uint64_t addr, uint32_t data);
 int xen_is_pirq_msi(uint32_t msi_data);
 
diff --git a/stubs/xen-hw-stub.c b/stubs/xen-hw-stub.c
index 6cf0e9a4c1..a74209d01e 100644
--- a/stubs/xen-hw-stub.c
+++ b/stubs/xen-hw-stub.c
@@ -24,6 +24,10 @@ int xen_set_pci_link_route(uint8_t link, uint8_t irq)
     return -1;
 }
 
+void xen_ich9_pci_write_config_client(PCIDevice *pci_dev, uint32_t address, uint32_t val, int len)
+{
+}
+
 int xen_is_pirq_msi(uint32_t msi_data)
 {
     return 0;
-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:47:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:47:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254162.1550153 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15fP-0007DB-5n; Fri, 13 Mar 2026 16:47:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254162.1550153; Fri, 13 Mar 2026 16:47:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15fP-0007D4-2L; Fri, 13 Mar 2026 16:47:15 +0000
Received: by outflank-mailman (input) for mailman id 1254162;
 Fri, 13 Mar 2026 16:47:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tB25=BN=bounce.vates.tech=bounce-md_30504962.69b43f8f.v1-9da3346c299f433282428ef7ed5b675a@srs-se1.protection.inumbo.net>)
 id 1w15fN-0006fv-Ps
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:47:13 +0000
Received: from mail134-15.atl141.mandrillapp.com
 (mail134-15.atl141.mandrillapp.com [198.2.134.15])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 488de31f-1efc-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 17:47:13 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-15.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4fXVl36qcFzPm0PrJ
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:47:11 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 9da3346c299f433282428ef7ed5b675a; Fri, 13 Mar 2026 16:47: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: 488de31f-1efc-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773420432; x=1773690432;
	bh=DC1CKIcFBppLbjt/OuTdGZjS7i/aioQOlGzfj9vAJWw=;
	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=DHcafeb2jsW8ePN6TSPuXt+3/Zsn94Zbs2W3vE1NYyL+A/vszksw6iM5iCeaK70l+
	 QIZJ3C+2fMFnMa4AkMWXe7YLJkpYNMMArD2ItuPscpDYtnIqulIbSb05M64CZkcQZK
	 1ZZM1ecUZ/s+8hHtzW1njm0BF/rKN65DCe3LnO3YWeo8fUvnjc1P2n+nrQqtD1Liev
	 mCaDr20y/nihr7AwI9H8U8KCffbz7zmexTJe8iPAEwqftIA+Ke45MUIU0eUZX7MhwT
	 svBdfUF6CYFbKr47+R/dk0gN9lxhu8oaCXJmy6ONnUk1zZmXlggE0hWgxmIjyjeGK+
	 RQfAanWIrs+1g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773420432; x=1773680932; i=thierry.escande@vates.tech;
	bh=DC1CKIcFBppLbjt/OuTdGZjS7i/aioQOlGzfj9vAJWw=;
	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=jCgcUw+5Z/HD50i3W59KgMwRQe20btR+deRevV1za7jt5holRqhr/vydfmN9rMGS+
	 L+yaCLidmV6FL8EqZdhZLRlsHvW+DRj6XhucEeq9BYAyqTJxXxbiuTxsxAinxTtith
	 Eqwb4K//tLKZzxoDpafNzvmbT0/HeTBieITPZTuC/XAabj7S6rDbsjN/jTKfgINYlR
	 Jy4pEwoScH4zW/PIfy6qQKK0pLPiQdUqR6a8yXvspeNDapp9rGrPaRofB5isxGE+Jw
	 iTylEKcMQNgVr4ndCXGipfzLLNMvK0atfjvYGusva9b/hvYGH9U+OTFjfHTINVXLxR
	 uDC71unpe+dag==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=202/4]=20q35/xen:=20Add=20Xen=20support=20for=20Q35?=
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: 1773420431033
To: qemu-devel@nongnu.org
Cc: "Thierry Escande" <thierry.escande@vates.tech>, "Paolo Bonzini" <pbonzini@redhat.com>, "Richard Henderson" <richard.henderson@linaro.org>, "Michael S. Tsirkin" <mst@redhat.com>, "Eduardo Habkost" <eduardo@habkost.net>, "Anthony PERARD" <anthony@xenproject.org>, xen-devel@lists.xenproject.org
Message-Id: <20260313164649.794591-3-thierry.escande@vates.tech>
In-Reply-To: <20260313164649.794591-1-thierry.escande@vates.tech>
References: <20260313164649.794591-1-thierry.escande@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.9da3346c299f433282428ef7ed5b675a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:47:11 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This patch intializes HVM pc machine in pc_q35_init() if Xen support is
enabled.

As done for i440 machine, this also cleanups unrealized flash devices.
See commit dd29b5c30c (xen: cleanup unrealized flash devices).

Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
---
 hw/i386/pc_q35.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index cb23322f5a..89dd736d95 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -35,8 +35,10 @@
 #include "hw/core/loader.h"
 #include "hw/i2c/smbus_eeprom.h"
 #include "hw/rtc/mc146818rtc.h"
+#include "hw/xen/xen-x86.h"
 #include "system/tcg.h"
 #include "system/kvm.h"
+#include "system/xen.h"
 #include "hw/i386/kvm/clock.h"
 #include "hw/pci-host/q35.h"
 #include "hw/pci/pcie_port.h"
@@ -190,6 +192,10 @@ static void pc_q35_init(MachineState *machine)
         x86ms->below_4g_mem_size = machine->ram_size;
     }
 
+    if (xen_enabled()) {
+        xen_hvm_init_pc(pcms, &machine->ram);
+    }
+
     pc_machine_init_sgx_epc(pcms);
     x86_cpus_init(x86ms, pcmc->default_cpu_version);
 
@@ -206,7 +212,11 @@ static void pc_q35_init(MachineState *machine)
 
     /* allocate ram and load rom/bios */
     memory_region_init(pci_memory, NULL, "pci", UINT64_MAX);
-    pc_memory_init(pcms, system_memory, pci_memory, pci_hole64_size);
+    if (!xen_enabled()) {
+        pc_memory_init(pcms, system_memory, pci_memory, pci_hole64_size);
+    } else {
+        pc_system_flash_cleanup_unused(pcms);
+    }
 
     object_property_add_child(OBJECT(machine), "q35", phb);
     object_property_set_link(phb, PCI_HOST_PROP_RAM_MEM,
-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:47:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:47:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254164.1550162 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15fT-0007Vd-CC; Fri, 13 Mar 2026 16:47:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254164.1550162; Fri, 13 Mar 2026 16:47:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15fT-0007VV-8w; Fri, 13 Mar 2026 16:47:19 +0000
Received: by outflank-mailman (input) for mailman id 1254164;
 Fri, 13 Mar 2026 16:47: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=Lzbp=BN=bounce.vates.tech=bounce-md_30504962.69b43f94.v1-e6b761e1b1f7448687105735495f9699@srs-se1.protection.inumbo.net>)
 id 1w15fS-0006fv-9B
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:47:18 +0000
Received: from mail134-15.atl141.mandrillapp.com
 (mail134-15.atl141.mandrillapp.com [198.2.134.15])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4b4cbd9d-1efc-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 17:47:17 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-15.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4fXVl84knrzPm0PqM
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:47:16 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 e6b761e1b1f7448687105735495f9699; Fri, 13 Mar 2026 16:47: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: 4b4cbd9d-1efc-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773420436; x=1773690436;
	bh=tBqT15VgX6aHPkE4gLQnkO0oJx1PmUhyS6eAmAg6IcA=;
	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=GX5lVS29RUTKr/vbIVOLwFzgCUUFqxSTOIUfJoV4hu8dmQbu4bIFWZvsVBzTHy705
	 c7CbqOt5zCXc+RADwUEFKsp7IhgxU4LszeIRGWb04GkkMdzeMtWgY3BUhlKenWhGU+
	 ckx68gKYyJvt/kvLkjh7u432Br5QvCD1DnZAM8zIYYHVDaAtoccCow8c1w24rTJEc+
	 L1GTcfQu567K9NAIDHe1cuC14Sn2Zsx0fQIQuEIgE0X+1ME6n5Y6Hwni4cg6qzidNe
	 MCD3mW3jj4q8jnINAFrR1TE/7MYUmQNDgZvyairJ0wY4g0Vj460xeC+m9cktaHeHGM
	 KlvQMXMDfLcHg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773420436; x=1773680936; i=thierry.escande@vates.tech;
	bh=tBqT15VgX6aHPkE4gLQnkO0oJx1PmUhyS6eAmAg6IcA=;
	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=IKvtfnlQuiiJnkVOazyhGMevNQOw1IbmwXhVJ+rkVMRg8YN18RLN3qm6mN6H5FJzo
	 GVjDkvZRx8JWrq2jL4IiuPKUTWsrmYgO8WeaAV+6wt9Gm5paIBDh9X6u/Pjo5TVVeQ
	 FnHiM6+siNRiJgZ3bC+N4RYkY2aWkPXBt0FWc0woKXD4IlMuE2iJICHJtMM5jnDor7
	 9xaMX12kSskk4dQyohROhI5GC4IIbnWIDsk3fMl8ConzdyjBI9hgOBpjXYOkFsm++L
	 e6febQyGMYropNNEGkfGa5XnPI261xljXJ+gg8hoxgEDX/hyYIi/qVOvBu0QH5zYBY
	 kv62fwCxdzYOA==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=203/4]=20q35:=20Fix=20incorrect=20values=20for=20PCIEXBAR=20masks?=
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: 1773420435540
To: qemu-devel@nongnu.org
Cc: "Alexey Gerasimenko" <x1917x@gmail.com>, "Paolo Bonzini" <pbonzini@redhat.com>, "Richard Henderson" <richard.henderson@linaro.org>, "Michael S. Tsirkin" <mst@redhat.com>, "Eduardo Habkost" <eduardo@habkost.net>, "Anthony PERARD" <anthony@xenproject.org>, xen-devel@lists.xenproject.org, "Thierry Escande" <thierry.escande@vates.tech>
Message-Id: <20260313164649.794591-4-thierry.escande@vates.tech>
In-Reply-To: <20260313164649.794591-1-thierry.escande@vates.tech>
References: <20260313164649.794591-1-thierry.escande@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.e6b761e1b1f7448687105735495f9699?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:47:16 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

From: Alexey Gerasimenko <x1917x@gmail.com>

There are two small issues in PCIEXBAR address mask handling:
- wrong bit positions for address mask bits (see PCIEXBAR description
  in Q35 datasheet)
- incorrect usage of 64ADR_MASK

Due to this, attempting to write a valid PCIEXBAR address may cause it
to shift to another address, causing memory layout corruption where
emulated MMIO regions may overlap real (passed through) MMIO ranges. Fix
this by providing correct values.

Signed-off-by: Alexey Gerasimenko <x1917x@gmail.com>
Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
---
 hw/pci-host/q35.c         | 6 +++---
 include/hw/pci-host/q35.h | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c
index e85e4227b3..7368e3c598 100644
--- a/hw/pci-host/q35.c
+++ b/hw/pci-host/q35.c
@@ -306,12 +306,12 @@ static void mch_update_pciexbar(MCHPCIState *mch)
         break;
     case MCH_HOST_BRIDGE_PCIEXBAR_LENGTH_128M:
         length = 128 * 1024 * 1024;
-        addr_mask |= MCH_HOST_BRIDGE_PCIEXBAR_128ADMSK |
-            MCH_HOST_BRIDGE_PCIEXBAR_64ADMSK;
+        addr_mask |= MCH_HOST_BRIDGE_PCIEXBAR_128ADMSK;
         break;
     case MCH_HOST_BRIDGE_PCIEXBAR_LENGTH_64M:
         length = 64 * 1024 * 1024;
-        addr_mask |= MCH_HOST_BRIDGE_PCIEXBAR_64ADMSK;
+        addr_mask |= MCH_HOST_BRIDGE_PCIEXBAR_64ADMSK |
+            MCH_HOST_BRIDGE_PCIEXBAR_128ADMSK;
         break;
     case MCH_HOST_BRIDGE_PCIEXBAR_LENGTH_RVD:
         qemu_log_mask(LOG_GUEST_ERROR, "Q35: Reserved PCIEXBAR LENGTH\n");
diff --git a/include/hw/pci-host/q35.h b/include/hw/pci-host/q35.h
index ddafc3f2e3..f31a71010b 100644
--- a/include/hw/pci-host/q35.h
+++ b/include/hw/pci-host/q35.h
@@ -100,8 +100,8 @@ struct Q35PCIHost {
 #define MCH_HOST_BRIDGE_PCIEXBAR_DEFAULT       0xb0000000
 #define MCH_HOST_BRIDGE_PCIEXBAR_MAX           (0x10000000) /* 256M */
 #define MCH_HOST_BRIDGE_PCIEXBAR_ADMSK         Q35_MASK(64, 35, 28)
-#define MCH_HOST_BRIDGE_PCIEXBAR_128ADMSK      ((uint64_t)(1 << 26))
-#define MCH_HOST_BRIDGE_PCIEXBAR_64ADMSK       ((uint64_t)(1 << 25))
+#define MCH_HOST_BRIDGE_PCIEXBAR_128ADMSK      ((uint64_t)(1 << 27))
+#define MCH_HOST_BRIDGE_PCIEXBAR_64ADMSK       ((uint64_t)(1 << 26))
 #define MCH_HOST_BRIDGE_PCIEXBAR_LENGTH_MASK   ((uint64_t)(0x3 << 1))
 #define MCH_HOST_BRIDGE_PCIEXBAR_LENGTH_256M   ((uint64_t)(0x0 << 1))
 #define MCH_HOST_BRIDGE_PCIEXBAR_LENGTH_128M   ((uint64_t)(0x1 << 1))
-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 16:47:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 16:47:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254170.1550172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w15fX-0007tx-Pi; Fri, 13 Mar 2026 16:47:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254170.1550172; Fri, 13 Mar 2026 16:47: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 1w15fX-0007t9-Gq; Fri, 13 Mar 2026 16:47:23 +0000
Received: by outflank-mailman (input) for mailman id 1254170;
 Fri, 13 Mar 2026 16:47: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=4COx=BN=bounce.vates.tech=bounce-md_30504962.69b43f98.v1-bf408e4098ba45c6b365cef3c2c3e264@srs-se1.protection.inumbo.net>)
 id 1w15fW-0006fv-3I
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:47:22 +0000
Received: from mail134-15.atl141.mandrillapp.com
 (mail134-15.atl141.mandrillapp.com [198.2.134.15])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4d8262f6-1efc-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 17:47:21 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-15.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4fXVlD2XPwzPm0PqH
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 16:47:20 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 bf408e4098ba45c6b365cef3c2c3e264; Fri, 13 Mar 2026 16:47:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4d8262f6-1efc-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773420440; x=1773690440;
	bh=BfeVwu07GpLrZnkbH1KHTfsb175OP+VcYPCDwc2bXBA=;
	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=VAcI6tTSK5w/V8dPnfOqMa21UdpOI2JaiSrxCu7eQ3wFafekWG+SxYK52H/Zf8rg7
	 CnBLKL1u4vBT73Y9Zjo8O7IOLmwhPQfyBAGPNesgcdAQ0GvnB7AUAHU/rEWx6VwHEz
	 o6kQBZWIlxdHh984pS7XBkknLRGEqLxfaXaCWFHIS/7tCMS506geVhNUTSBJXYSy3X
	 LzbMDHMmczBaHo12e2PU2W9ZsvLq4MuMjjhVvbSajt6I1kcKAc1MiFyT9M5rlWzMav
	 qxy7PWELKEeBlkegmYNDuh+AL9Ri+xpETxFrrO5uDQPux5oeXIGaKhjelyCP+zcm4M
	 aSSPm9ElW77cA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773420440; x=1773680940; i=thierry.escande@vates.tech;
	bh=BfeVwu07GpLrZnkbH1KHTfsb175OP+VcYPCDwc2bXBA=;
	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=0C1+M/hNJ/PXKbzmhP1sAXXgIql9jwyvWMNpfI2vxpF9AD/AA962uysI/jC+VQebX
	 FqcPSQxXBxiolMmCKxkr3ND4x06E/zhBZvHsi5VqNokF/7pEKffJpHw4XaPIYAaDWE
	 JRnDIyKTJABlUXIHGt693E8Wa0eJl4vI4vkje7nKCq0W/ktlyLg26NwDT97WkYGFFW
	 /7RtJa+oW30dsQVLERRKtuj+dKeFSGjer2aCwiMliuwvyj6st6++9el9x8C/sKGwOU
	 3JMRjBvvmZxghq174rWYGjRvEI7fQeab9FgTU4z4aneVMcHuJ16Tb/0OvAtiRvJyVi
	 NuHtUhAUnzJFA==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=204/4]=20xen:=20Handle=20PCIe=20config=20space=20size=20in=20cpu=5Fioreq=5Fconfig()?=
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: 1773420439492
To: qemu-devel@nongnu.org
Cc: "Thierry Escande" <thierry.escande@vates.tech>, "Paolo Bonzini" <pbonzini@redhat.com>, "Richard Henderson" <richard.henderson@linaro.org>, "Michael S. Tsirkin" <mst@redhat.com>, "Eduardo Habkost" <eduardo@habkost.net>, "Anthony PERARD" <anthony@xenproject.org>, xen-devel@lists.xenproject.org
Message-Id: <20260313164649.794591-5-thierry.escande@vates.tech>
In-Reply-To: <20260313164649.794591-1-thierry.escande@vates.tech>
References: <20260313164649.794591-1-thierry.escande@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.bf408e4098ba45c6b365cef3c2c3e264?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 16:47:20 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This change allows to read and write to the extended config space of PCI
Express devices by setting the size limit to 4096 bytes. The size limit
remains 256 bytes for non PCIe devices.

Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
---
 hw/xen/xen-hvm-common.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/hw/xen/xen-hvm-common.c b/hw/xen/xen-hvm-common.c
index 62d88804c4..15090d77cf 100644
--- a/hw/xen/xen-hvm-common.c
+++ b/hw/xen/xen-hvm-common.c
@@ -396,6 +396,7 @@ static void cpu_ioreq_config(XenIOState *state, ioreq_t *req)
 {
     uint32_t sbdf = req->addr >> 32;
     uint32_t reg = req->addr;
+    uint32_t limit;
     XenPciDevice *xendev;
 
     if (req->size != sizeof(uint8_t) && req->size != sizeof(uint16_t) &&
@@ -412,10 +413,12 @@ static void cpu_ioreq_config(XenIOState *state, ioreq_t *req)
             continue;
         }
 
+        limit = pci_is_express(xendev->pci_dev) ?
+                    PCIE_CONFIG_SPACE_SIZE : PCI_CONFIG_SPACE_SIZE;
         if (!req->data_is_ptr) {
             if (req->dir == IOREQ_READ) {
                 req->data = pci_host_config_read_common(
-                    xendev->pci_dev, reg, PCI_CONFIG_SPACE_SIZE,
+                    xendev->pci_dev, reg, limit,
                     req->size);
                 trace_cpu_ioreq_config_read(req, xendev->sbdf, reg,
                                             req->size, req->data);
@@ -423,7 +426,7 @@ static void cpu_ioreq_config(XenIOState *state, ioreq_t *req)
                 trace_cpu_ioreq_config_write(req, xendev->sbdf, reg,
                                              req->size, req->data);
                 pci_host_config_write_common(
-                    xendev->pci_dev, reg, PCI_CONFIG_SPACE_SIZE,
+                    xendev->pci_dev, reg, limit,
                     req->data, req->size);
             }
         } else {
@@ -431,7 +434,7 @@ static void cpu_ioreq_config(XenIOState *state, ioreq_t *req)
 
             if (req->dir == IOREQ_READ) {
                 tmp = pci_host_config_read_common(
-                    xendev->pci_dev, reg, PCI_CONFIG_SPACE_SIZE,
+                    xendev->pci_dev, reg, limit,
                     req->size);
                 trace_cpu_ioreq_config_read(req, xendev->sbdf, reg,
                                             req->size, tmp);
@@ -441,7 +444,7 @@ static void cpu_ioreq_config(XenIOState *state, ioreq_t *req)
                 trace_cpu_ioreq_config_write(req, xendev->sbdf, reg,
                                              req->size, tmp);
                 pci_host_config_write_common(
-                    xendev->pci_dev, reg, PCI_CONFIG_SPACE_SIZE,
+                    xendev->pci_dev, reg, limit,
                     tmp, req->size);
             }
         }
-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 17:09:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 17:09:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254253.1550179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w160U-0005u3-Fp; Fri, 13 Mar 2026 17:09:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254253.1550179; Fri, 13 Mar 2026 17:09:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w160U-0005tw-DD; Fri, 13 Mar 2026 17:09:02 +0000
Received: by outflank-mailman (input) for mailman id 1254253;
 Fri, 13 Mar 2026 17:09: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=wKdL=BN=bounce.vates.tech=bounce-md_30504962.69b444a6.v1-178a66325a344b6b960ba37226dc3e35@srs-se1.protection.inumbo.net>)
 id 1w160T-0005o9-Ed
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 17:09:01 +0000
Received: from mail134-15.atl141.mandrillapp.com
 (mail134-15.atl141.mandrillapp.com [198.2.134.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 511cc212-1eff-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 18:08:56 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-15.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4fXWD64KsgzPm0Phg
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 17:08:54 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 178a66325a344b6b960ba37226dc3e35; Fri, 13 Mar 2026 17:08:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 511cc212-1eff-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773421734; x=1773691734;
	bh=e/Ez2g9MExEAxfNprdVfmmx4B+dsCdtLWpwiqA59DZk=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=DCK2A/sxFtR/hJjPa+9hHcd4ppfneMB2w5I6xlYJ+r4S2xhSzpp+9qq9NdWxP+ATM
	 LDSjwTyJE7To7rkDj8y6k35KzW6s40ADAwdmLrZOCWXPitTUBsNqoDF8bYS54TIm1n
	 P9pfi2GyrTp3N9Swbg4T9Fe8j7pYtcayREntIbtbQLxqDTLsuU0hG4XUDfl4vo/TvW
	 aALmkPBji3L++rZVFOgPcO+AThVxuoh8qwpwfO90zU9XzfomQLM6pX5hofg+9mSrwb
	 hwfHQNcjJerObwVGODxj1KcS6VWsLIDZcOCJ5f0fh12YZH8spkCJE6qqnDGLvCeiAk
	 DX9d4GTVCJLuQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773421734; x=1773682234; i=anthony.perard@vates.tech;
	bh=e/Ez2g9MExEAxfNprdVfmmx4B+dsCdtLWpwiqA59DZk=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=0wK/5gdDwwY8OxIgdZ0+fFT7MEI3v+vAcrYCDvLjyxNtXF1hLdI8t1evMtDqpmiJp
	 qczbQ+MAz8GzTLkrk6A/PWOP5q/W1NXhmyDhAKzVlEMt7ZsRvSylzTUCWoGGtxTFeo
	 IptypmwsJwRLEaygdi7PnqYiS1RHKlVZsqhk7amhqv2h++ZBTTCjlIjlgTbVWmvoej
	 b2AvSWM7sdfGxaUtJ9cEdJbmPzeuNEyKgQp8G8qdW0FKy1QLT6LpG7FsEsBaVFiLK/
	 wqRzRRC0hyQvNWA4aVXfmqybgvHWOCVeb5rdO9HqTRl8/Pl7Ibkp/qz8NFaAJIbLc0
	 x1JyrXlPLMXZw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2004/11]=20tools/xenstored:=20add=20GLOBAL=5FQUOTA=5FDATA=20record=20for=20live=20update?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773421733897
To: "Juergen Gross" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, "Julien Grall" <julien@xen.org>
Message-Id: <abREpWtSt0eLWo4q@l14>
References: <20260305135208.2208663-1-jgross@suse.com> <20260305135208.2208663-5-jgross@suse.com>
In-Reply-To: <20260305135208.2208663-5-jgross@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.178a66325a344b6b960ba37226dc3e35?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 17:08:54 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Mar 05, 2026 at 02:52:01PM +0100, Juergen Gross wrote:
> diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
> index acdcaa769e..694ae58973 100644
> --- a/tools/xenstored/domain.c
> +++ b/tools/xenstored/domain.c
> @@ -1332,6 +1332,27 @@ int do_set_feature(const void *ctx, struct connection *conn,
>  	return 0;
>  }
>  
> +static bool parse_quota_name(const char *name, unsigned int *qidx,
> +			     unsigned int *idx)
> +{
> +	unsigned int q;

What do you think of using something like:
    const char soft_prefix[] = "soft-";
    const size_t soft_prefix_len = sizeof(soft_prefix) - 1;
to explain the `5`, here and in e.g. the function build_quota_data() ?
We used this in libxl in one place:
    https://elixir.bootlin.com/xen/v4.21.0/source/tools/libs/light/libxl_qmp.c#L1288

But it's fine to leave it like that, as the '5's are close enought to
the prefix that we can guess easly enough.

> +
> +	if (strncmp(name, "soft-", 5)) {
> +		*idx = Q_IDX_HARD;
> +	} else {
> +		*idx = Q_IDX_SOFT;
> +		name += 5;
> +	}
> +	for (q = 0; q < ACC_N; q++) {
> +		if (quota_adm[q].name && !strcmp(quota_adm[q].name, name)) {
> +			*qidx = q;
> +			return false;
> +		}
> +	}
> +
> +	return true;
> +}
> +
>  static int close_xgt_handle(void *_handle)
>  {
>  	xengnttab_close(*(xengnttab_handle **)_handle);
> @@ -2001,6 +2022,61 @@ void read_state_connection(const void *ctx, const void *state)
>  	}
>  }
>  
> +static unsigned int get_quota_size(struct quota *quota, unsigned int *len)
> +{
> +	unsigned int q;
> +	unsigned int n = 0;
> +
> +	for (q = 0; q < ACC_N; q++) {
> +		if (!quota_adm[q].name)
> +			continue;
> +		if (quota[q].val[Q_IDX_HARD] != Q_VAL_DISABLED) {
> +			n++;
> +			*len += strlen(quota_adm[q].name) + 1;
> +		}
> +		if (quota[q].val[Q_IDX_SOFT] != Q_VAL_DISABLED) {
> +			n++;
> +			*len += strlen(quota_adm[q].name) + 5 + 1;

The value 5 here isn't explained. A comment would be nice.

> +		}
> +	}
> +
> +	return n;
> +}
> +
> +static void build_quota_data(struct quota *quota, uint32_t *val, char *name)

I guess we will need a leap of faith to trust that `val` is big enough,
after finding out that it's actually an output of multiple values, and
not an input of a single value.

And `name` seems to also be an output, and this is actually impossible
to guess from the prototype.

> +{
> +	unsigned int q;
> +	unsigned int n = 0;
> +
> +	for (q = 0; q < ACC_N; q++) {
> +		if (!quota_adm[q].name)
> +			continue;
> +		if (quota[q].val[Q_IDX_HARD] != Q_VAL_DISABLED) {
> +			val[n++] = quota[q].val[Q_IDX_HARD];
> +			strcpy(name, quota_adm[q].name);
> +			name += strlen(name) + 1;
> +		}
> +		if (quota[q].val[Q_IDX_SOFT] != Q_VAL_DISABLED) {
> +			val[n++] = quota[q].val[Q_IDX_SOFT];
> +			strcpy(name, "soft-");
> +			strcpy(name + 5, quota_adm[q].name);
> +			name += strlen(name) + 1;
> +		}
> +	}
> +}
> +
> +static void parse_quota_data(const uint32_t *val, const char *name,
> +			     unsigned int n, struct quota *quota)
> +{
> +	unsigned int i, q, idx;
> +
> +	for (i = 0; i < n; i++) {
> +		if (!parse_quota_name(name, &q, &idx))
> +			quota[q].val[idx] = val[i];
> +		name += strlen(name) + 1;

So for `val`, we have a size. But, we don't have a size for `name`, are
we sure that it's safe to keep reading past `NUL` characters ? Is the
size of name available somewhere?

> +	}
> +}
> +
>  static int dump_state_domain(const void *k, void *v, void *arg)
>  {
>  	struct domain *domain = v;
> @@ -2049,6 +2125,53 @@ void read_state_domain(const void *ctx, const void *state, unsigned int version)
>  		domain->features = sd->features;
>  }
>  
> +const char *dump_state_glb_quota(FILE *fp)
> +{
> +	struct xs_state_record_header *head;
> +	struct xs_state_glb_quota *glb;
> +	void *record;
> +	unsigned int n_quota;
> +	unsigned int len = sizeof(*glb);
> +	size_t ret;
> +
> +	n_quota = get_quota_size(quotas, &len);

So, get_quota_size is actually an "add" the size to this variable, and
not "store" the size in this variable. That's not confusing at all.

> +	len += n_quota * sizeof(glb->quota_val[0]);
> +	len = ROUNDUP(len, 3);
> +
> +	record = talloc_size(NULL, len + sizeof(*head));
> +	if (!record)
> +		return "Dump global quota allocation error";
> +
> +	head = record;
> +	head->type = XS_STATE_TYPE_GLB_QUOTA;
> +	head->length = len;
> +
> +	glb = (struct xs_state_glb_quota *)(head + 1);
> +	glb->n_dom_quota = n_quota;
> +	glb->n_glob_quota = 0;

Shouldn't `n_quota` be assigned to `n_glob_quota` instead? We don't have
per-domain quota yet, and only have global quota, right?

> +
> +	build_quota_data(quotas, glb->quota_val,
> +			 (char *)(glb->quota_val + n_quota));
> +
> +	ret = fwrite(record, len + sizeof(*head), 1, fp);
> +
> +	talloc_free(record);
> +
> +	if (ret != 1 || dump_state_align(fp))
> +		return "Dump global quota error";
> +
> +	return NULL;
> +}
> +
> +void read_state_glb_quota(const void *ctx, const void *state)
> +{
> +	const struct xs_state_glb_quota *glb = state;
> +	unsigned int n_quota = glb->n_dom_quota + glb->n_glob_quota;
> +	const char *name = (const char *)(glb->quota_val + n_quota);
> +
> +	parse_quota_data(glb->quota_val, name, n_quota, quotas);
> +}
> +

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 17:16:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 17:16:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254263.1550189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w167H-0007gk-6M; Fri, 13 Mar 2026 17:16:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254263.1550189; Fri, 13 Mar 2026 17:16:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w167H-0007gd-3Q; Fri, 13 Mar 2026 17:16:03 +0000
Received: by outflank-mailman (input) for mailman id 1254263;
 Fri, 13 Mar 2026 17:16: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=w9UI=BN=bounce.vates.tech=bounce-md_30504962.69b4464e.v1-e5ac64dadfbf4569aed401b63a593563@srs-se1.protection.inumbo.net>)
 id 1w167F-0007gX-KN
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 17:16:01 +0000
Received: from mail134-15.atl141.mandrillapp.com
 (mail134-15.atl141.mandrillapp.com [198.2.134.15])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4e3f5306-1f00-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 18:16:00 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-15.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4fXWNH0c8PzPm0Pr9
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 17:15:59 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 e5ac64dadfbf4569aed401b63a593563; Fri, 13 Mar 2026 17:15: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: 4e3f5306-1f00-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773422159; x=1773692159;
	bh=tE2e4A6RQlJDuxiYQ0qjv7al0p4qz5Tb+9MzYknAow4=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=kQU2lD8pLnpvWn0ZlG0FHsHEbmgOcPtgMAyN5cUPSXMLkYBG5X0N7/nhq4pMtOobk
	 8gxjywqf+6lRFXBHUvBcQCMvH3bbgf2pJpEyw5fj+SFTNUgBBQsN7nESN3Dcs8L7f1
	 ADpPiS+8u7GF/uWr91FSnuLhxT96F27UQKdJ6q+cFrhUYun7RVZzZ/5rING+qLtSeR
	 tLveZ2ejNDecdxnmoEkpDEfdm+sT2O/qFy5PTtw+ytZ502RszolvGgYoioKU13N2G3
	 w6VFpGTO60ukRiED1+eaCS7ZDstiz3zXm/L9KFPqxcrB7SnlVso0GABJwSbtETQj7N
	 O58r7rzJJ8YFA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773422159; x=1773682659; i=anthony.perard@vates.tech;
	bh=tE2e4A6RQlJDuxiYQ0qjv7al0p4qz5Tb+9MzYknAow4=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=ZC02SthzFFBOu+pYTdYuHbdN2th0x0Q0YG/6m52QfkWP3IZfpcGBjXrG3XfhtOGsV
	 GzN+rbk6gk2yR96dYtV6fbsPMMJ60C4RahHPFUn65pFinULlA6ah8SCzaByaZUYXPH
	 x09hd4WY68Axm2lnps0dl36I+BlS2FLLu+2QDfvX2rhfb80gFcfH+YBbrXXnt9BcbH
	 3+skf5rE83jPVP7AO54bXTs8Ujdb5ahzOE2jFC6Jeo7j4cbVhNGhWB5JYAiqMRmWAK
	 fcGrwGFci1j9Cp9ub3Szip82tnQ+Gev8a73OCE9BU6lMsWqjweGmZGxnYrUOa50u/i
	 qppGhfiA1D0mg==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2005/11]=20tools/xenstored:=20split=20acc[]=20array=20in=20struct=20domain?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773422158432
To: "Juergen Gross" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, "Julien Grall" <julien@xen.org>
Message-Id: <abRGTofDcyVxRarZ@l14>
References: <20260305135208.2208663-1-jgross@suse.com> <20260305135208.2208663-6-jgross@suse.com>
In-Reply-To: <20260305135208.2208663-6-jgross@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.e5ac64dadfbf4569aed401b63a593563?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 17:15:58 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Mar 05, 2026 at 02:52:02PM +0100, Juergen Gross wrote:
> Prepare using per-domain quota by splitting the acc[] array in struct
> domain into an array with the current accounting data, and an array
> of type struct quota for the per-domain quota and the seen max value
> of the domain.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 17:25:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 17:25:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254289.1550247 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w16G2-0001p0-G7; Fri, 13 Mar 2026 17:25:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254289.1550247; Fri, 13 Mar 2026 17: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 1w16G2-0001ot-Cc; Fri, 13 Mar 2026 17:25:06 +0000
Received: by outflank-mailman (input) for mailman id 1254289;
 Fri, 13 Mar 2026 17:25: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=3LYz=BN=bounce.vates.tech=bounce-md_30504962.69b4486d.v1-992b3fd75b61474193ed23f45f990027@srs-se1.protection.inumbo.net>)
 id 1w16G0-0001on-Fo
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 17:25:04 +0000
Received: from mail134-15.atl141.mandrillapp.com
 (mail134-15.atl141.mandrillapp.com [198.2.134.15])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9163679e-1f01-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 18:25:02 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-15.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4fXWZj2XMKzPm0PqZ
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 17:25:01 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 992b3fd75b61474193ed23f45f990027; Fri, 13 Mar 2026 17:25:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9163679e-1f01-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773422701; x=1773692701;
	bh=6peDlQT9ickBq/NI+sv4l1/9hjip/fcjxW/bBanvJ+A=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=xSp64EMPyDXrSOnBZDXX9IMfvb1kv89k9wKF+9F54oERa59l+hXBFb17iLMt65yVR
	 Xfj3q8J/kP/wc8dmlm13BvZg46Ba7z8q+w+T0MvFPrs1rQDrBNeG1bnEyKA7eaHSof
	 IPDtpMb50HG16Njodsa0nOPYLh1iOkooR5Og498ZMZJcs8YG79sq4/1oZUDqtsydJa
	 FchBg4mNCysa0hs5bghKhBwHyIWFdjA2FdC0mdfjEJbzls1SeZiBBuUBMlO7/364Ms
	 m0gZtpoKXknIyf0i0IhW31WDHoIm1LkEW4cZPMAfJLXE8PfxWjjmnqTXpO+e6mYplt
	 iU4RTUG6cnpCA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773422701; x=1773683201; i=thierry.escande@vates.tech;
	bh=6peDlQT9ickBq/NI+sv4l1/9hjip/fcjxW/bBanvJ+A=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=yXoGa6BNaZLchYIb4y5ZZ8d3CpUxYoz0CT6dPo+HL+7Pp8qdFAD3KwSEtE+O7F722
	 IWgjqWSrsS2Igx0UaD+CYmZgmZok/T2wgwPsJQlpISg9Nv/USky8SQo77p3dH5BFzP
	 FCR6hFXtJXCx9ZrybH9m8d5iJUB99Uh+jYN9PCS9olsj5/L1bIBGr9hknfuxjbB91h
	 ngj7PD69xJToo8l5lA66k2JjiHvMBt3kQY7QYa2QKEyqsB7jZW1X0QQ4VRaBiyBCjD
	 mFhN9gGfhcxTvtFIxlziDM23XLQDKSXEEQb/eGZEqJ+8+auP5Shtb7PfHX5hg+MipJ
	 ipTsmLdtLdPyw==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH]=20install.sh:=20Preserve=20directory=20symlinks?=
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: 1773422700428
To: xen-devel@lists.xenproject.org
Cc: "Thierry Escande" <thierry.escande@vates.tech>, "Anthony PERARD" <anthony.perard@vates.tech>
Message-Id: <20260313172456.871518-1-thierry.escande@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.992b3fd75b61474193ed23f45f990027?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 17:25:01 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

In various distros (i.e. Debian) some folders like /lib or /var/run are
symlinks. Using the tar option --keep-directory-symlink preserves these
symlinks.

Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
---
 install.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install.sh b/install.sh
index 3e11c4d46f..5d0b7a4933 100644
--- a/install.sh
+++ b/install.sh
@@ -27,7 +27,7 @@ tmp="`mktemp -d`"
 echo "Installing Xen from '$src' to '$dst'..."
 (cd $src; tar -cf - * ) | tar -C "$tmp" -xf -
 
-(cd $tmp; tar -cf - *) | tar --no-same-owner -C "$dst" -xf -
+(cd $tmp; tar -cf - *) | tar --no-same-owner -C "$dst" --keep-directory-symlink -xf -
 rm -rf "$tmp"
 
 echo "All done."
-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 17:32:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 17:32:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254307.1550255 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w16NC-0003ld-5p; Fri, 13 Mar 2026 17:32:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254307.1550255; Fri, 13 Mar 2026 17:32: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 1w16NC-0003lW-2M; Fri, 13 Mar 2026 17:32:30 +0000
Received: by outflank-mailman (input) for mailman id 1254307;
 Fri, 13 Mar 2026 17:32:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tRrs=BN=bounce.vates.tech=bounce-md_30504962.69b44a25.v1-2ac2ba2f48654a9b800d54a15b46151f@srs-se1.protection.inumbo.net>)
 id 1w16NB-0003lQ-0r
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 17:32:29 +0000
Received: from mail179-36.suw41.mandrillapp.com
 (mail179-36.suw41.mandrillapp.com [198.2.179.36])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 97a04208-1f02-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 18:32:22 +0100 (CET)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-36.suw41.mandrillapp.com (Mailchimp) with ESMTP id 4fXWl91bRZzlfjbY
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 17:32:21 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 2ac2ba2f48654a9b800d54a15b46151f; Fri, 13 Mar 2026 17:32: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: 97a04208-1f02-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773423141; x=1773693141;
	bh=R6WJv1Sh2zodKrqqhzmlPYhdr0GPqC5QgGThaZ6xJ74=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=W5vg0tc2V2FTdmpazRnMee+vn3F1BIzy4hpYD89SF+CTLQ74TXVojbt/5gT2UEvi5
	 /crTzZeIhFVfcLwerancj+ZQPK8BUxCKeKzusoyaAPvHYgCXXvhwCK8OM7AlXsR5Pq
	 9nvd3aDFTGCH6OjdLRn7QIFQhgI47rfOpx13jnlUp6t0/94p99GEwfmN1kZ6Ton2zG
	 Su9eak4Mpez8NgVN6RucnVe8HE9vSkwMm2JHjsMXp33YDB1AH12WUf96Gz/iv1b9VW
	 jlfm9ci62lG1G9AgGUqfkCdqLZCvNvYOA7fjcM2KWJPBiA3oEXLFLcitPheglX8lpZ
	 pAKTHoPfJUwoQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773423141; x=1773683641; i=anthony.perard@vates.tech;
	bh=R6WJv1Sh2zodKrqqhzmlPYhdr0GPqC5QgGThaZ6xJ74=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=fyI4oVKhhcCB9C0KQ/xI3sOSw6BpdNorfP6ph+7vU8uRFWmSkORUS4rkBgVCBWQpb
	 YZOFTG9zEPJs+UWoiivg3TH2ZmqozrrudE/n8H+a0oO1DseSB/o891zaEV//jf/Ru0
	 OlRWYVUKDeiiKef4R4qtyhAAlAyMzQXWoQUr6gKduolUAitGxgC7/L9bb2m57OSPj8
	 BbGwoIbxO0t+xNs5h/ll5km7QFI906dVgLOqp5p4UwzeNGVnmy5k9yL4sihO+nBH+2
	 BN4cWk4c7azg/HhnGB3h1S+OIZfAcNtKcMEWmmVEFUJUpaseIdOdeGu97EJc2JmbKP
	 oBTFqK9F09UWA==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2006/11]=20tools/xenstored:=20add=20infrastructure=20for=20per-domain=20quotas?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773423140491
To: "Juergen Gross" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, "Julien Grall" <julien@xen.org>
Message-Id: <abRKJPlQOWgyxIdb@l14>
References: <20260305135208.2208663-1-jgross@suse.com> <20260305135208.2208663-7-jgross@suse.com>
In-Reply-To: <20260305135208.2208663-7-jgross@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.2ac2ba2f48654a9b800d54a15b46151f?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260313:md
Date: Fri, 13 Mar 2026 17:32:21 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Mar 05, 2026 at 02:52:03PM +0100, Juergen Gross wrote:
> Add the needed structures and helper functions for supporting quotas
> per domain.

I don't see any new struct or new helpers. What this patch do now is
updating the existing helpers to take per-domain quota into account. I
guess that comment was from an earlier iteration of the patch before it
got split into smaller ones, and easier to review.

> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Mar 13 21:22:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 21:22:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254539.1550312 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w19xe-0007ie-5r; Fri, 13 Mar 2026 21:22:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254539.1550312; Fri, 13 Mar 2026 21:22: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 1w19xe-0007iX-29; Fri, 13 Mar 2026 21:22:22 +0000
Received: by outflank-mailman (input) for mailman id 1254539;
 Fri, 13 Mar 2026 21:22: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=Qi/i=BN=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1w19xc-0007iR-7S
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 21:22:20 +0000
Received: from BN8PR05CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c110::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b0b8b83f-1f22-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Mar 2026 22:22:09 +0100 (CET)
Received: from SJ0PR03CA0215.namprd03.prod.outlook.com (2603:10b6:a03:39f::10)
 by SJ5PPFABE38415D.namprd12.prod.outlook.com
 (2603:10b6:a0f:fc02::99e) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.6; Fri, 13 Mar
 2026 21:22:04 +0000
Received: from MWH0EPF000C6188.namprd02.prod.outlook.com
 (2603:10b6:a03:39f:cafe::29) by SJ0PR03CA0215.outlook.office365.com
 (2603:10b6:a03:39f::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.16 via Frontend Transport; Fri,
 13 Mar 2026 21:21:59 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MWH0EPF000C6188.mail.protection.outlook.com (10.167.249.120) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9700.17 via Frontend Transport; Fri, 13 Mar 2026 21:22:04 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Mar
 2026 16:22:01 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Mar
 2026 14:22:01 -0700
Received: from [172.31.96.139] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 13 Mar 2026 16:22:00 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b0b8b83f-1f22-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=U0vGFm8r2bIRwvefxB/LV4zZmDQsoGlLPCo76QFzO/5Jo026RfPBufvZfGvVpZI+ILCAr33hFt6a52gzOwu35zVhF2Q0EX84yKuwrDF0iRt6CVYgWjM47Z4b1N3nsDtYDgA/9x3CA5XGLX8W2fCvLQQBzJIJ8KAX26MJZ6cMJxxquzbguXv7wfdtBoh89sAr++/d/7OUVGKMzkokSMCUVKiGG+VEQa5dfqppCiuLgYd6Eb/y4tlrf2wyGIkf564f0dRRJVD3XeQw9wn7r+cqFiGfB0sA9DI7y+BKcbFJW3qLqRZe5DWBh5nA268BNITBEJ5E1P8s9cM0QD7P88P7lQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Xvd9igOVGt5yIkkA6IPxQ0vwUtUeB67QYH/xMRh2gnU=;
 b=sKQQw8ZnaUA3s2qvvllwRbmHfSTjoelMlnun9/xqKarRusSzcIKGBIkgqDsEBwqsNbNVWEq6CjNhKEuYD+kSXA65L0J1uxpRJOz12HXWjYyt819DMFth4kHRdrCd7PLgBcgoM3ATlG1fUzwD9pjRKovX4Ynw9xidqUtOndlJO4FUvc3UxQhyMwJDz7vwiN/y3YyRxKlsJhULpFEkfdrW6aRT8BVFuuNJCVo2aJwaQaGThO4nl3/6L/hXmcNRWrLQPNHC3PMh+YcqBCkzj1imAnhepB4FVxkwEP6IzhrdHFUuJr8rTInoNGZoOqgV+6iqRdsAHW4MWAiEIzGJGRggZA==
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=Xvd9igOVGt5yIkkA6IPxQ0vwUtUeB67QYH/xMRh2gnU=;
 b=tglDAx2oFIc7aBA0JoA3ZgQ8hoyX/Ob0MSePAdvL7YO5cVhOGr64zV6shsUTeyo5LxBbtBBKlnGItslRn2PefjxiNv62ij4kPUqp4cHjqcYyaGogSe/ys6jTpi/lqkKX7vL+hbcWkuJAb7Zt9AnG3UXGK1SCxDb0w30PvNZl8pY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <735cfce6-28db-4fb9-9e0d-d3f3f18403a2@amd.com>
Date: Fri, 13 Mar 2026 17:22:00 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/11] tools/xenstored: add central quota check functions
To: Juergen Gross <jgross@suse.com>, <xen-devel@lists.xenproject.org>
CC: Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-3-jgross@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20260305135208.2208663-3-jgross@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000C6188:EE_|SJ5PPFABE38415D:EE_
X-MS-Office365-Filtering-Correlation-Id: 2165522d-569f-4dac-7d2f-08de814692ad
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700016|1800799024|18002099003|22082099003|56012099003|7053199007;
X-Microsoft-Antispam-Message-Info:
	MdMQ5fnusIhmmCyL/3imLGDIpX0HhDS/HB8MDIWW1vqA8Ea6Zz4J9FzP+e28GzZvnq2IQw2dlKPOo8XHiu4pr4HNbxZCbQMkuovE+IwtaeQXGoF2+AyHYrBynnn7nH9AFaqQkAuAIg8JytveBGck4DybL47uQzOpLOaS2U4+mQBF+Pvq7nBnSTzxecb3jcYLyjiX2wNcaaLT+8dyuWiJqJr9mvSIBLHt2WW10NmxFyHdbQhjLGHmBkVGy62S6D2AyF6Zd0wxGp+PQIAjogNu4Yry+WPXihKhXujEDFxWiiM3hOdRmio0sd73JNgEoNwy+TEMqWMlwl6FfPy89uwcTyWSzqrxJN8F6Xl0W3evFSv+MFopNdauXOaK5g78Ueo5ZH1o0sknkHzWwVzENMoGU7td+nB07INAUCPbo9tcEj7tdLtDvYWsfeqUKbXAyHWvzaTjjgFarPYdVU4Abrh7PXbHKOf7JjBW46/6+wRBDHw/XmMCDVFTAT9m0iraX2uDerOp0IBzuIH6HYdBPbt4i+WoyAvRNtmbvdLKjw4G7UqXy8N30Q64rTKT5tUEoP4mV9CS96zfaC6g7EcKARql0oj4uaauBUc0QBsX0Q0KFYhzv0Wf6Kco8R7Fg74jaUXaYdrwf0v8nk8OesWD68eKYCNei8f0v4BG2ekWqSfQprr4sMXMe+jBXaG97Ll48og/gD/tu1aVy2iIKYtBvbWm15X+/7TO9KZf408xWAdeW29Dwhw/zZdFOXLjDYsgFMhZRYql2R3hKKNhBY5UdYQjug==
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)(36860700016)(1800799024)(18002099003)(22082099003)(56012099003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	wMJNKTGFDDh19PNGdtYv7c/aqBgCkYFuH1NqL8TAwWi0r5I7rJ3K0rMpzwyTnAQCmvx+X8TdjHjVistC50Jmx3MhrTQIPsPTKO5o25oc0RnAcpR0Y7xR0aq8U02f761yqtZ4wwSUg5DJJ0UnPgdS3qJF8H5EyjVjuqW5z8kxw9URdLMND+uxvl4o0vr5Z5k67FNhTCLWE+mDVm4wy+vC3wuya/IMoiEb0Z7hZRUVfKvHKQLaphdyIZNfLuFsjvAibJbi9CM9LfTwXfIV8ZIAjE/gb68IYRCzdHa/ENwaE/BBzD8K0ClVdkgDb63uL9zDRWEl13jYe85xfHldahR1S2mqaWc2LLVfiQuIBJgUOfUol5gmUMCO7fI06Cr5VHPA87BY3RuJPrGNeaKAJfzbYPTuT8N9BTNFE+A8n7+cbPAygYs5Cl6SHFl19OKfTaGG
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Mar 2026 21:22:04.0395
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2165522d-569f-4dac-7d2f-08de814692ad
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000C6188.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFABE38415D

On 2026-03-05 08:51, Juergen Gross wrote:
> Add central functions for checking a value (either an absolute one or
> the current domain value plus an offset) against a specific quota.
> 
> This is in preparation of introducing per-domain quota.
> 
> The required changes allow to drop the "update" parameter from
> domain_nbentry_fix().
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

> diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
> index e453b3061f..1df9265ad5 100644
> --- a/tools/xenstored/domain.c
> +++ b/tools/xenstored/domain.c
> @@ -389,6 +389,25 @@ void wrl_apply_debit_trans_commit(struct connection *conn)
>   	wrl_apply_debit_actual(conn->domain);
>   }
>   
> +static bool domain_check_quota_val(struct domain *d, enum accitem what,
> +				   unsigned int val)
> +{
> +	unsigned int quota = hard_quotas[what].val;
> +
> +	if (!quota || !domid_is_unprivileged(d->domid))
> +		return false;
> +
> +	return val >= quota;

Personally, I don't like the naming of *check* where the "good" return 
is false.  That seems backwards from what I expect.  So I'd suggest 
either flipping the return value or renaming.  domain_quota_fail() or 
something?

> +}
> +
> +bool domain_check_quota_add(struct domain *d, enum accitem what, int add)
> +{
> +	if (add < 0 || !d)
> +		return false;
> +
> +	return domain_check_quota_val(d, what, d->acc[what].val + add);
> +}
> +
>   static bool check_indexes(XENSTORE_RING_IDX cons, XENSTORE_RING_IDX prod)
>   {
>   	return ((prod - cons) <= XENSTORE_RING_SIZE);

As an example, here "good" is true.

I see Anthony already gave an R-b, so just consider it as a suggestion.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Fri Mar 13 22:35:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Mar 2026 22:35:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254586.1550321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w1B6a-0007uF-AA; Fri, 13 Mar 2026 22:35:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254586.1550321; Fri, 13 Mar 2026 22:35:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w1B6a-0007u8-6j; Fri, 13 Mar 2026 22:35:40 +0000
Received: by outflank-mailman (input) for mailman id 1254586;
 Fri, 13 Mar 2026 22:35: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=hEuA=BN=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1w1B6Y-0007u2-4J
 for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 22:35:38 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f39e365a-1f2c-11f1-b164-2bf370ae4941;
 Fri, 13 Mar 2026 23:35:35 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 8179A6183E;
 Fri, 13 Mar 2026 22:35:34 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 03834C19421;
 Fri, 13 Mar 2026 22:35: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: f39e365a-1f2c-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1773441334;
	bh=NCbvP5f6b/mCFhMJmC9j3yAfcF6UdIqCTsj5FlU2tpw=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=VcP2stPLlc45efG1ATlBlz89qWp35F/JjEqHryh0F3Y9bmzCUrIvK8yF87waJcNGc
	 SjKO/CMF5u+aetYSJTviVylA5gODS1qGJBfnvoDJ/NXbDFgzMrRFnbTTCztAzTGJ+T
	 K/N6GhQ/HtDORPD/UDERYQzIFc8WQxkHxYYOhfJgoUSmJ8TFt0GP6Y9MJNbkc07Cj6
	 8ufjgksNohKApFW9NTPO4YC8qdeh9jcKhG7/rW9wjkQFs/VzzyrgiRB9uQ0UNA4nwm
	 r0d3OefD5V5LYb1e3xz0prUX/BxkOyU6H9u07+GAenyFQYk5we8A19XiohfzUuwj/+
	 9F2EnCXuH/ZYA==
Date: Fri, 13 Mar 2026 15:35:26 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jason Andryuk <jason.andryuk@amd.com>
cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
    Jiri Slaby <jirislaby@kernel.org>, Juergen Gross <jgross@suse.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, 
    linux-serial@vger.kernel.org, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] hvc/xen: Check console connection flag
In-Reply-To: <20260312173845.47235-1-jason.andryuk@amd.com>
Message-ID: <alpine.DEB.2.22.394.2603131535200.1759048@ubuntu-linux-20-04-desktop>
References: <20260312173845.47235-1-jason.andryuk@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 11 Mar 2026, Jason Andryuk wrote:
> When the console out buffer is filled, __write_console() will return 0
> as it cannot send any data.  domU_write_console() will then spin in
> `while (len)` as len doesn't decrement until xenconsoled attaches.  This
> would block a domU and nullify the parallelism of Hyperlaunch until dom0
> userspace starts xenconsoled, which empties the buffer.
> 
> Xen 4.21 added a connection field to the xen console page.  This is set
> to XENCONSOLED_DISCONNECTED (1) when a domain is built, and xenconsoled
> will set it to XENCONSOLED_CONNECTED (0) when it connects.

It should be XENCONSOLE_DISCONNECTED


> Update the hvc_xen driver to check the field.  When the field is
> disconnected, drop the write with -ENOTCONN.  We only drop the write
> when the field is XENCONSOLED_DISCONNECTED (1) to try for maximum
> compatibility.  The Xen toolstack has historically zero initialized the
> console, so it should see XENCONSOLED_CONNECTED (0) by default.  If an
> implemenation used uninitialized memory, only checking for
> XENCONSOLED_DISCONNECTED could have the lowest chance of not connecting.
> 
> This lets the hyperlaunched domU boot without stalling.  Once dom0
> starts xenconsoled, xl console can be used to access the domU's hvc0.
> 
> Update the console.h header to bring in the new field.
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

Aside from the minor comment on the commit message:

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


> ---
>  drivers/tty/hvc/hvc_xen.c          |  3 +++
>  include/xen/interface/io/console.h | 13 +++++++++++++
>  2 files changed, 16 insertions(+)
> 
> diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
> index 7f0b6262488c..c407592442cd 100644
> --- a/drivers/tty/hvc/hvc_xen.c
> +++ b/drivers/tty/hvc/hvc_xen.c
> @@ -139,6 +139,9 @@ static ssize_t domU_write_console(uint32_t vtermno, const u8 *data, size_t len)
>  	if (cons == NULL)
>  		return -EINVAL;
>  
> +	if (cons->intf->connection == XENCONSOLE_DISCONNECTED)
> +		return -ENOTCONN;
> +
>  	/*
>  	 * Make sure the whole buffer is emitted, polling if
>  	 * necessary.  We don't ever want to rely on the hvc daemon
> diff --git a/include/xen/interface/io/console.h b/include/xen/interface/io/console.h
> index cf17e89ed861..687949bdebb1 100644
> --- a/include/xen/interface/io/console.h
> +++ b/include/xen/interface/io/console.h
> @@ -19,6 +19,19 @@ struct xencons_interface {
>      char out[2048];
>      XENCONS_RING_IDX in_cons, in_prod;
>      XENCONS_RING_IDX out_cons, out_prod;
> +/*
> + * Flag values signaling from backend to frontend whether the console is
> + * connected.  i.e. Whether it will be serviced and emptied.
> + *
> + * The flag starts as disconnected.
> + */
> +#define XENCONSOLE_DISCONNECTED 1
> +/*
> + * The flag is set to connected when the backend connects and the console
> + * will be serviced.
> + */
> +#define XENCONSOLE_CONNECTED    0
> +    uint8_t connection;
>  };
>  
>  #endif /* __XEN_PUBLIC_IO_CONSOLE_H__ */
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Sat Mar 14 04:33:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 14 Mar 2026 04:33:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254651.1550330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w1GgS-00083c-1C; Sat, 14 Mar 2026 04:33:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254651.1550330; Sat, 14 Mar 2026 04: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 1w1GgR-00083U-SL; Sat, 14 Mar 2026 04:33:03 +0000
Received: by outflank-mailman (input) for mailman id 1254651;
 Sat, 14 Mar 2026 04:33: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=897t=BO=gmail.com=soumyajyotisarkar23@srs-se1.protection.inumbo.net>)
 id 1w1GgQ-00083O-Cg
 for xen-devel@lists.xenproject.org; Sat, 14 Mar 2026 04:33:02 +0000
Received: from mail-ej1-x644.google.com (mail-ej1-x644.google.com
 [2a00:1450:4864:20::644])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e1691fae-1f5e-11f1-9ccf-f158ae23cfc8;
 Sat, 14 Mar 2026 05:32:59 +0100 (CET)
Received: by mail-ej1-x644.google.com with SMTP id
 a640c23a62f3a-b8f9568e074so410995166b.0
 for <xen-devel@lists.xenproject.org>; Fri, 13 Mar 2026 21:32:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e1691fae-1f5e-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1773462779; cv=none;
        d=google.com; s=arc-20240605;
        b=cEs5K96UOcnTlTZCCck+G0k6m23tWcDpeDIUU4s5Mmr73RpSDIkXIIGx3UmIHIKkUc
         TW1UZqBiu6hRFmdh/X/xG77uzRYnv4LlqKk78KUUn0toHs4BF4hzjfVKJAx1mr76obBf
         u2Pj1DjlteyE47/3NZwsKqGw4XsTh/zHsb8EfTPN5YNgYU+osfcP6mgxIyjCXg8XiuR2
         Npy1/O9ctNGyAKAx0tbunraEhoAP2Olk/3PYVQ476SQOcyx/fKxO69O5TuVv3UAV2zD6
         03RgUfDkrS2sQiwzdj4ij3j4PWekLVX+HRPZqcGWd3lttg88Bgbuip8bPZROX3X9mDIt
         4FRQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:dkim-signature;
        bh=g+uUj6Qhw0hrc1O9RaPvQ6mWIY2a49BwjJrjk6y0Uas=;
        fh=1NQfMiWH/3en9AsQV7JkzTQpCunktBXjRX5/hTKo/rs=;
        b=L7JFAQfPSHSsg/4IemnwA3mZv/8x6lCqQtxgTT70MstwJ+jjHlyWKOOheAWKcxXnkh
         WHNvutLnE9M9twRFOl1BxTA7juOF7SwkcOLJTv2kYprIUN1Jz55VqPAsyj5pQ/hgkDSS
         d8jqNGP/a3F2vJ2NLhsS3plGPFINglid+szCKXV3Buo2K/+VRoVeKluuNC2nTZFjgGZc
         FUxBsrHY160khdigq7IFQchcLIYxaiPGq4SC7LE5JYD85bS7k+5Yy8LVncLooC46TCFm
         I5ylBbi6LStshwiVdHfOnkShvst7eTn+iDCw8moKMjtlQaauAOtPV6VElYE6zJiuCURN
         ggwA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773462779; x=1774067579; 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=g+uUj6Qhw0hrc1O9RaPvQ6mWIY2a49BwjJrjk6y0Uas=;
        b=YcZbus9VdR6hUrXRTDKchXzczEmQBF/U2JkqT1TEt4Gf2BeKKiB3Wc0Qe0jIuXOGC6
         TjlxT02oNFT22lDsyb0wCbSeez7wPyAliFE1mNa/dWDtF4xTYJcf2KeSSEE9QlvelY6Y
         rwP3S1L7PHAcH9f1j2jWCu92zoa1+aC1/YNaZWYdHyFpJfiwXNgTVocinhHa85OJsjsq
         59ksCj8csIPXC6xNF3A1QXC6iM5wEXLVnssmJUt0NP0aO5awbUil79tbhF1ToLzkA+N7
         BKANoNl0P20wF1vO9Pm0/n7uZIyiq27OTSB5SAKo6dwP9XPWsm9Sq891i9JmRjbskb7q
         qNFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773462779; x=1774067579;
        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=g+uUj6Qhw0hrc1O9RaPvQ6mWIY2a49BwjJrjk6y0Uas=;
        b=X9ZVcb/slQks5ElcORww9ojUCLeWY27omkok44RKEy7kjLfmU8R2VNOrNjcHZbJyzi
         fposjjU78zG3EU1NcTLUKtM2ryYZhFrI8QshwTID1PIeT9ks8w+34skq29LG+hGnHunu
         WoP4QcnjsZo4AlhfYSPK8SNJTkf+trwDQPCAO3Kd43hNtbJzHLgd0i9naVsIoy9yFLX4
         u4l+LwC010dYSOp1w1HtB6tbIcubY/3fExT6i+hhbXVaALbdcwaXHbRWfwxxW0ulGSiI
         5d8gbgA/jwlmncIK27M88gK0j35telEbjkqgic+GlwIjyx45SSWwmFagvt9Bm3BH0qbQ
         rcAw==
X-Forwarded-Encrypted: i=1; AJvYcCVpLEXbjbWupVN5oJ/kv7RzMQNSZyvvkH+p3R3fM7gfF03FwNL5IS7zWzNyt005NF3uQdOF3H95eKc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzFd4LuIlM37Zds8oO7rLFRy5+ivHBftg9rNeEpsw/mjVQ6eAup
	mWWQmz6M2kpdgEKANLEzzWhbfu8iGm//v5DBBJCeX0NdkMWkancX3fr+Fu0Qs0zT9xMtxpPoZjh
	VtCGjJqx/vodX/p90Bf7F5ACi0x/lzfM=
X-Gm-Gg: ATEYQzzm80Sz8uW6rDM5ppA1MVmK4UxdXAEJrK0Bo9Fgh61S5bjfw1vg91zYYEr4w68
	d+8kFHxdZJQHLtJvdoOnJ/z4MlE5YXQ0lSyB0klHoqi9YywaXcAL4c1VnBfXcSHR/w2rYLBdXpJ
	0/oaDg24dulqwW5TwRDHNLVtOHatmbFiN97cYgVOvIJSPmh1NfA++ulBxbYxn/CNsFaYrzMdCxt
	XHsfcbSMkA17uDLgAhA5yo6qHVY/09jHBqSeGQSIzdt125vtIwYSAzUPUhRNeRLfCTk6vklr4Jd
	YW0hE+EFYBnVH85tx3JWoRq7wOKSLBqTE5DMg1zUa9LuVVb+7l0fyYTFZR0a7XJtib+Jt30hKGI
	sT6n97r/rOrVbIPoqbmPj5p/NGXNd5LqobgUtT5Ab6GosMbFKxu8nVEy7UftolxuDq8e0ANvaSr
	lDaf8xrzo=
X-Received: by 2002:a17:907:3f03:b0:b97:1db4:e5bf with SMTP id
 a640c23a62f3a-b976539185bmr326521066b.34.1773462778806; Fri, 13 Mar 2026
 21:32:58 -0700 (PDT)
MIME-Version: 1.0
References: <20260305191810.31033-1-soumyajyotisarkar23@gmail.com>
 <20260305191810.31033-2-soumyajyotisarkar23@gmail.com> <aa3AKoCFFhwD4-LX@mail-itl>
 <609060f4-d94b-4b65-a10b-5126f10307db@suse.com> <CAGkZZ+sGLY==UxBJ=BGLjfKQTTMMZ7zRzaZ1MAjWT7Ak_gytyQ@mail.gmail.com>
 <7adc329e-6690-46ad-b706-74548dc7ccbc@suse.com>
In-Reply-To: <7adc329e-6690-46ad-b706-74548dc7ccbc@suse.com>
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Date: Sat, 14 Mar 2026 10:02:46 +0530
X-Gm-Features: AaiRm50kAvC7ynemla-Qx2lmVREWVv4P3fNecEfJrcb1kpa_sJiLQPURvn_LieE
Message-ID: <CAGkZZ+v9rDGXo-HJgD_Nkf9=xxTwr_EweTdYJVe4hOH73+CYxw@mail.gmail.com>
Subject: Re: [PATCH 1/3] x86/efi: Add BGRT image preservation during boot
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com, 
	"Daniel P . Smith" <dpsmith@apertussolutions.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>
Content-Type: multipart/alternative; boundary="000000000000f40714064cf47ab3"

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

On Tue, 10 Mar, 2026, 7:44=E2=80=AFpm Jan Beulich, <jbeulich@suse.com> wrot=
e:

> On 10.03.2026 14:05, Soumyajyotii Ssarkar wrote:
> > On Mon, Mar 9, 2026 at 1:01=E2=80=AFPM Jan Beulich <jbeulich@suse.com> =
wrote:
> >
> >> On 08.03.2026 19:30, Marek Marczykowski-G=C3=B3recki wrote:
> >>> On Fri, Mar 06, 2026 at 12:48:08AM +0530, Soumyajyotii Ssarkar wrote:
> >>>> --- a/xen/common/efi/boot.c
> >>>> +++ b/xen/common/efi/boot.c
> >>>> @@ -7,6 +7,7 @@
> >>>>  #include <xen/ctype.h>
> >>>>  #include <xen/dmi.h>
> >>>>  #include <xen/domain_page.h>
> >>>> +#include <xen/errno.h>
> >>>>  #include <xen/init.h>
> >>>>  #include <xen/keyhandler.h>
> >>>>  #include <xen/lib.h>
> >>>> @@ -173,6 +174,14 @@ static struct file __initdata ramdisk;
> >>>>  static struct file __initdata xsm;
> >>>>  static const CHAR16 __initconst newline[] =3D L"\r\n";
> >>>>
> >>>> +static __initdata struct {
> >>>> +    bool preserved;
> >>>> +    uint64_t old_addr;
> >>>> +    uint64_t new_addr;
> >>>> +    uint32_t size;
> >>>> +    const char *failure_reason;
> >>>> +} bgrt_debug_info;
> >>>> +
> >>>>  static void __init PrintStr(const CHAR16 *s)
> >>>>  {
> >>>>      StdOut->OutputString(StdOut, (CHAR16 *)s );
> >>>> @@ -747,6 +756,171 @@ static void __init
> >> efi_relocate_esrt(EFI_SYSTEM_TABLE *SystemTable)
> >>>>      efi_bs->FreePool(memory_map);
> >>>>  }
> >>>>
> >>>> +struct bmp_header {
> >>>> +    uint16_t signature;
> >>>> +    uint32_t file_size;
> >>>> +    uint16_t reserved_1;
> >>>> +    uint16_t reserved_2;
> >>>> +    uint32_t data_offset;
> >>>> +} __attribute__((packed));
> >>>> +
> >>>> +/*
> >>>> + * ACPI Structures - defined locally,
> >>>> + * since we cannot include acpi headers
> >>>> + * in EFI Context.
> >>>> + */
> >>>> +
> >>>> +struct acpi_rsdp {
> >>>> +    char signature[8];
> >>>> +    uint8_t checksum;
> >>>> +    char oem_id[6];
> >>>> +    uint8_t revision;
> >>>> +    uint32_t rsdt_physical_address;
> >>>> +    uint32_t length;
> >>>> +    uint64_t xsdt_physical_address;
> >>>> +    uint8_t extended_checksum;
> >>>> +    uint8_t reserved[3];
> >>>> +} __attribute__((packed));
> >>>> +
> >>>> +struct acpi_table_header {
> >>>> +    char signature[4];
> >>>> +    uint32_t length;
> >>>> +    uint8_t revision;
> >>>> +    uint8_t checksum;
> >>>> +    char oem_id[6];
> >>>> +    char oem_table_id[8];
> >>>> +    uint32_t oem_revision;
> >>>> +    uint32_t asl_compiler_id;
> >>>> +    uint32_t asl_compiler_revision;
> >>>> +} __attribute__((packed));
> >>>> +
> >>>> +struct acpi_xsdt {
> >>>> +    struct acpi_table_header header;
> >>>> +    uint64_t table_offset_entry[1]; /* Variable array length */
> >>>
> >>> uint64_t table_offset_entry[];
> >>>
> >>> BTW, do we have some canonical place with list of files imported (and
> >>> kept in sync) with other projects? xen/include/acpi/actbl.h doesn't
> >>> exactly follow Xen coding style, but it's unclear to me if it needs t=
o
> >>> stay this way.
> >>
> >> I don't really understand why the headers we've got can't be used. Eve=
n
> >> some of the library-like code under xen/acpi/ may be usable here.
> >>
> >> While we don't exactly keep xen/include/acpi/ in sync with Linux, when
> >> things are added we preferably add them in the way Linux has them.
> >>
> >>
> > I was trying to avoid including the headers from the xen/include/acpi/
> > since it was specified in the comment. to not include them.
> > Specific comment specified below this paragraph.
> > Also since acpi was using datatypes like "u32" while boot.c had types o=
f
> > "uint32", so it felt a bit non-standardized.
> > I checked the rest of the boot.c which followed the same manner. So I
> went
> > with this choice.
> >
> > /* * Keep this arch-specific modified include in the common file, as
> moving
> >  * it to the arch specific include file would obscure that special care
> is
> >  * taken to include it with __ASSEMBLER__ defined.
> > */
> > #define __ASSEMBLER__ /* avoid pulling in ACPI stuff (conflicts with EF=
I)
> > */
> > #include <asm/fixmap.h>
> > #undef __ASSEMBLER__
> > #endif
> >
> > The ACPI headers in /xen/include/acpi uses defines such
> > as ACPI_NAME_SIZE, ACPI_OEM_ID_SIZE
> > and ACPI_OEM_TABLE_ID_SIZE these require adding additional
> > <acpi/acconfig.h> header.
> > Also since their is no acpi headers included in the boot.c file, so i
> > thought to I avoid it.
> >
> > Thus to get it fully working with ACPI headers from the xen/include/acp=
i
> I
> > would require these three headers.
> > #include <acpi/acconfig.h>
> > #include <acpi/actbl.h>
> > #include <acpi/actbl3.h>
> >
> > I thought this would lead to cross contamination, and confusing to
> further
> > modifications in future so weighing my options I thought best to redefi=
ne
> > them,
> > for code clarity.
> > Can you suggest me best option to move forward, should I redefine them =
as
> > is or include the headers?
>
>
>
> First - see about re-using ACPI functions we already have. Then put new
> ACPI
> code you need to add in a file different from the EFI one.
>
> Jan
>

Hey Jan,
Referring to the latest BGRT RFC patch series (RFC v3): as you had
suggested, I have reused the ACPI headers and made the changes you advised.
I hope this version looks satisfactory.

If that approach seems acceptable, I would proceed with introducing a new
file and moving the related changes there as part of the next patch series.

In that case, it might also make sense to involve the ESRT maintainers?
Since I could lay the foundation for the new file and they could extend it
by migrating the ESRT related code their? This might help keep boot.c
cleaner?
I would be interested to know others think on this.

Thank you,
Soumyajyotii Ssarkar

>

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

<div dir=3D"auto"><div><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D=
"gmail_attr">On Tue, 10 Mar, 2026, 7:44=E2=80=AFpm Jan Beulich, &lt;<a href=
=3D"mailto:jbeulich@suse.com" rel=3D"noreferrer noreferrer" target=3D"_blan=
k">jbeulich@suse.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quo=
te" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"=
>On 10.03.2026 14:05, Soumyajyotii Ssarkar wrote:<br>
&gt; On Mon, Mar 9, 2026 at 1:01=E2=80=AFPM Jan Beulich &lt;<a href=3D"mail=
to:jbeulich@suse.com" rel=3D"noreferrer noreferrer noreferrer" target=3D"_b=
lank">jbeulich@suse.com</a>&gt; wrote:<br>
&gt; <br>
&gt;&gt; On 08.03.2026 19:30, Marek Marczykowski-G=C3=B3recki wrote:<br>
&gt;&gt;&gt; On Fri, Mar 06, 2026 at 12:48:08AM +0530, Soumyajyotii Ssarkar=
 wrote:<br>
&gt;&gt;&gt;&gt; --- a/xen/common/efi/boot.c<br>
&gt;&gt;&gt;&gt; +++ b/xen/common/efi/boot.c<br>
&gt;&gt;&gt;&gt; @@ -7,6 +7,7 @@<br>
&gt;&gt;&gt;&gt;=C2=A0 #include &lt;xen/ctype.h&gt;<br>
&gt;&gt;&gt;&gt;=C2=A0 #include &lt;xen/dmi.h&gt;<br>
&gt;&gt;&gt;&gt;=C2=A0 #include &lt;xen/domain_page.h&gt;<br>
&gt;&gt;&gt;&gt; +#include &lt;xen/errno.h&gt;<br>
&gt;&gt;&gt;&gt;=C2=A0 #include &lt;xen/init.h&gt;<br>
&gt;&gt;&gt;&gt;=C2=A0 #include &lt;xen/keyhandler.h&gt;<br>
&gt;&gt;&gt;&gt;=C2=A0 #include &lt;xen/lib.h&gt;<br>
&gt;&gt;&gt;&gt; @@ -173,6 +174,14 @@ static struct file __initdata ramdisk=
;<br>
&gt;&gt;&gt;&gt;=C2=A0 static struct file __initdata xsm;<br>
&gt;&gt;&gt;&gt;=C2=A0 static const CHAR16 __initconst newline[] =3D L&quot=
;\r\n&quot;;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; +static __initdata struct {<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 bool preserved;<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 uint64_t old_addr;<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 uint64_t new_addr;<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 uint32_t size;<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 const char *failure_reason;<br>
&gt;&gt;&gt;&gt; +} bgrt_debug_info;<br>
&gt;&gt;&gt;&gt; +<br>
&gt;&gt;&gt;&gt;=C2=A0 static void __init PrintStr(const CHAR16 *s)<br>
&gt;&gt;&gt;&gt;=C2=A0 {<br>
&gt;&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 StdOut-&gt;OutputString(StdOut, (CHAR1=
6 *)s );<br>
&gt;&gt;&gt;&gt; @@ -747,6 +756,171 @@ static void __init<br>
&gt;&gt; efi_relocate_esrt(EFI_SYSTEM_TABLE *SystemTable)<br>
&gt;&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 efi_bs-&gt;FreePool(memory_map);<br>
&gt;&gt;&gt;&gt;=C2=A0 }<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; +struct bmp_header {<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 uint16_t signature;<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 uint32_t file_size;<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 uint16_t reserved_1;<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 uint16_t reserved_2;<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 uint32_t data_offset;<br>
&gt;&gt;&gt;&gt; +} __attribute__((packed));<br>
&gt;&gt;&gt;&gt; +<br>
&gt;&gt;&gt;&gt; +/*<br>
&gt;&gt;&gt;&gt; + * ACPI Structures - defined locally,<br>
&gt;&gt;&gt;&gt; + * since we cannot include acpi headers<br>
&gt;&gt;&gt;&gt; + * in EFI Context.<br>
&gt;&gt;&gt;&gt; + */<br>
&gt;&gt;&gt;&gt; +<br>
&gt;&gt;&gt;&gt; +struct acpi_rsdp {<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 char signature[8];<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 uint8_t checksum;<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 char oem_id[6];<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 uint8_t revision;<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 uint32_t rsdt_physical_address;<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 uint32_t length;<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 uint64_t xsdt_physical_address;<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 uint8_t extended_checksum;<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 uint8_t reserved[3];<br>
&gt;&gt;&gt;&gt; +} __attribute__((packed));<br>
&gt;&gt;&gt;&gt; +<br>
&gt;&gt;&gt;&gt; +struct acpi_table_header {<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 char signature[4];<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 uint32_t length;<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 uint8_t revision;<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 uint8_t checksum;<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 char oem_id[6];<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 char oem_table_id[8];<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 uint32_t oem_revision;<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 uint32_t asl_compiler_id;<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 uint32_t asl_compiler_revision;<br>
&gt;&gt;&gt;&gt; +} __attribute__((packed));<br>
&gt;&gt;&gt;&gt; +<br>
&gt;&gt;&gt;&gt; +struct acpi_xsdt {<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 struct acpi_table_header header;<br>
&gt;&gt;&gt;&gt; +=C2=A0 =C2=A0 uint64_t table_offset_entry[1]; /* Variable=
 array length */<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; uint64_t table_offset_entry[];<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; BTW, do we have some canonical place with list of files import=
ed (and<br>
&gt;&gt;&gt; kept in sync) with other projects? xen/include/acpi/actbl.h do=
esn&#39;t<br>
&gt;&gt;&gt; exactly follow Xen coding style, but it&#39;s unclear to me if=
 it needs to<br>
&gt;&gt;&gt; stay this way.<br>
&gt;&gt;<br>
&gt;&gt; I don&#39;t really understand why the headers we&#39;ve got can&#3=
9;t be used. Even<br>
&gt;&gt; some of the library-like code under xen/acpi/ may be usable here.<=
br>
&gt;&gt;<br>
&gt;&gt; While we don&#39;t exactly keep xen/include/acpi/ in sync with Lin=
ux, when<br>
&gt;&gt; things are added we preferably add them in the way Linux has them.=
<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt; I was trying to avoid including the headers from the xen/include/acpi/=
<br>
&gt; since it was specified in the comment. to not include them.<br>
&gt; Specific comment specified below this paragraph.<br>
&gt; Also since acpi was using datatypes like &quot;u32&quot; while boot.c =
had types of<br>
&gt; &quot;uint32&quot;, so it felt a bit non-standardized.<br>
&gt; I checked the rest of the boot.c which followed the same manner. So I =
went<br>
&gt; with this choice.<br>
&gt; <br>
&gt; /* * Keep this arch-specific modified include in the common file, as m=
oving<br>
&gt;=C2=A0 * it to the arch specific include file would obscure that specia=
l care is<br>
&gt;=C2=A0 * taken to include it with __ASSEMBLER__ defined.<br>
&gt; */<br>
&gt; #define __ASSEMBLER__ /* avoid pulling in ACPI stuff (conflicts with E=
FI)<br>
&gt; */<br>
&gt; #include &lt;asm/fixmap.h&gt;<br>
&gt; #undef __ASSEMBLER__<br>
&gt; #endif<br>
&gt; <br>
&gt; The ACPI headers in /xen/include/acpi uses defines such<br>
&gt; as ACPI_NAME_SIZE, ACPI_OEM_ID_SIZE<br>
&gt; and ACPI_OEM_TABLE_ID_SIZE these require adding additional<br>
&gt; &lt;acpi/acconfig.h&gt; header.<br>
&gt; Also since their is no acpi headers included in the boot.c file, so i<=
br>
&gt; thought to I avoid it.<br>
&gt; <br>
&gt; Thus to get it fully working with ACPI headers from the xen/include/ac=
pi I<br>
&gt; would require these three headers.<br>
&gt; #include &lt;acpi/acconfig.h&gt;<br>
&gt; #include &lt;acpi/actbl.h&gt;<br>
&gt; #include &lt;acpi/actbl3.h&gt;<br>
&gt; <br>
&gt; I thought this would lead to cross contamination, and confusing to fur=
ther<br>
&gt; modifications in future so weighing my options I thought best to redef=
ine<br>
&gt; them,<br>
&gt; for code clarity.<br>
&gt; Can you suggest me best option to move forward, should I redefine them=
 as<br>
&gt; is or include the headers?<br><br><br><br>
First - see about re-using ACPI functions we already have. Then put new ACP=
I<br>
code you need to add in a file different from the EFI one.<br>
<br>
Jan<br></blockquote></div></div><div dir=3D"auto"><br></div><div dir=3D"aut=
o"><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"ma=
rgin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"></blockquote><=
/div></div><div dir=3D"auto">Hey Jan,</div><div dir=3D"auto">Referring to t=
he latest BGRT RFC patch series (RFC v3): as you had suggested, I have reus=
ed the ACPI headers and made the changes you advised. I hope this version l=
ooks satisfactory.</div><div dir=3D"auto"><br></div><div dir=3D"auto">If th=
at approach seems acceptable, I would proceed with introducing a new file a=
nd moving the related changes there as part of the next patch series.=C2=A0=
</div><div dir=3D"auto"><br></div><div dir=3D"auto">In that case, it might =
also make sense to involve the ESRT maintainers? Since I could lay the foun=
dation for the new file and they could extend it by migrating the ESRT rela=
ted code their? This might help keep boot.c cleaner?</div><div dir=3D"auto"=
>I would be interested to know others think on this.</div><div dir=3D"auto"=
><br></div><div dir=3D"auto">Thank you,</div><div dir=3D"auto">Soumyajyotii=
 Ssarkar</div><div dir=3D"auto"><div class=3D"gmail_quote"><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;pad=
ding-left:1ex">
</blockquote></div></div></div>

--000000000000f40714064cf47ab3--


From xen-devel-bounces@lists.xenproject.org Sat Mar 14 11:57:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 14 Mar 2026 11:57:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254742.1550339 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w1Nca-0000lb-1U; Sat, 14 Mar 2026 11:57:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254742.1550339; Sat, 14 Mar 2026 11:57:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w1NcZ-0000lO-SE; Sat, 14 Mar 2026 11:57:31 +0000
Received: by outflank-mailman (input) for mailman id 1254742;
 Sat, 14 Mar 2026 11:57: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=TBtM=BO=kernel.org=rafael@srs-se1.protection.inumbo.net>)
 id 1w1NcY-0000lI-Nv
 for xen-devel@lists.xenproject.org; Sat, 14 Mar 2026 11:57:30 +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 f9012a89-1f9c-11f1-b164-2bf370ae4941;
 Sat, 14 Mar 2026 12:57:28 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 2171340A8B;
 Sat, 14 Mar 2026 11:57:27 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9A6D2C116C6;
 Sat, 14 Mar 2026 11:57:25 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f9012a89-1f9c-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1773489447;
	bh=EsHwFVcOQ4Wxdsc84ge5jVHkcdmVeRF8NmEV5Gg+6aM=;
	h=From:To:Cc:Subject:Date:From;
	b=aW7ABgskz2oAgNzm8fnf8LB55FmzAiNcm0elrONcrIDR65uTXre2ggvfMmsoYUXfh
	 WrGrLkeMycyXDSf9ueVWkC8h6OXcx4Czntq/O4k2TbobKR8YZPCRdtPFkLBNomGyv4
	 C79II8XwT/wG3jjNmwuOrjy1ziw7LfSkffV8Qx4lG/BOcy3FEPwjs7HenWS3BEzCiA
	 th1ddIjewuvG8P8Q4em6kv1XMb+L0MzSHFOaQNrCF5yOeHNXYDFwNFX5tMmosXzPFB
	 MPUjFexIuRqT7WlzAtH2lxSHxWOioGIDhOfpe3uofJr/zVc01uHyS0tRhG5y/Th42N
	 aVBHbjGd5XN2w==
From: "Rafael J. Wysocki" <rafael@kernel.org>
To: Linux ACPI <linux-acpi@vger.kernel.org>, xen-devel@lists.xenproject.org
Cc: LKML <linux-kernel@vger.kernel.org>, Juergen Gross <jgross@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Subject: [PATCH v1] ACPI: PAD: xen: Convert to a platform driver
Date: Sat, 14 Mar 2026 12:57:23 +0100
Message-ID: <8683270.T7Z3S40VBb@rafael.j.wysocki>
Organization: Linux Kernel Development
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="UTF-8"

From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>

In all cases in which a struct acpi_driver is used for binding a driver
to an ACPI device object, a corresponding platform device is created by
the ACPI core and that device is regarded as a proper representation of
underlying hardware.  Accordingly, a struct platform_driver should be
used by driver code to bind to that device.  There are multiple reasons
why drivers should not bind directly to ACPI device objects [1].

Overall, it is better to bind drivers to platform devices than to their
ACPI companions, so convert the Xen ACPI processor aggregator device
(PAD) driver to a platform one.

While this is not expected to alter functionality, it changes sysfs
layout and so it will be visible to user space.

Link: https://lore.kernel.org/all/2396510.ElGaqSPkdT@rafael.j.wysocki/ [1]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---

Note that the original ACPI PAD driver has been a platform driver for
quite some time already.

---
 drivers/xen/xen-acpi-pad.c | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/drivers/xen/xen-acpi-pad.c b/drivers/xen/xen-acpi-pad.c
index ede69a5278d3..75a39862c1df 100644
--- a/drivers/xen/xen-acpi-pad.c
+++ b/drivers/xen/xen-acpi-pad.c
@@ -11,6 +11,7 @@
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/acpi.h>
+#include <linux/platform_device.h>
 #include <xen/xen.h>
 #include <xen/interface/version.h>
 #include <xen/xen-ops.h>
@@ -107,8 +108,9 @@ static void acpi_pad_notify(acpi_handle handle, u32 event,
 	}
 }
 
-static int acpi_pad_add(struct acpi_device *device)
+static int acpi_pad_probe(struct platform_device *pdev)
 {
+	struct acpi_device *device = ACPI_COMPANION(&pdev->dev);
 	acpi_status status;
 
 	strcpy(acpi_device_name(device), ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME);
@@ -122,13 +124,13 @@ static int acpi_pad_add(struct acpi_device *device)
 	return 0;
 }
 
-static void acpi_pad_remove(struct acpi_device *device)
+static void acpi_pad_remove(struct platform_device *pdev)
 {
 	mutex_lock(&xen_cpu_lock);
 	xen_acpi_pad_idle_cpus(0);
 	mutex_unlock(&xen_cpu_lock);
 
-	acpi_remove_notify_handler(device->handle,
+	acpi_remove_notify_handler(ACPI_HANDLE(&pdev->dev),
 		ACPI_DEVICE_NOTIFY, acpi_pad_notify);
 }
 
@@ -137,13 +139,12 @@ static const struct acpi_device_id pad_device_ids[] = {
 	{"", 0},
 };
 
-static struct acpi_driver acpi_pad_driver = {
-	.name = "processor_aggregator",
-	.class = ACPI_PROCESSOR_AGGREGATOR_CLASS,
-	.ids = pad_device_ids,
-	.ops = {
-		.add = acpi_pad_add,
-		.remove = acpi_pad_remove,
+static struct platform_driver acpi_pad_driver = {
+	.probe = acpi_pad_probe,
+	.remove = acpi_pad_remove,
+	.driver = {
+		.name = "acpi_processor_aggregator",
+		.acpi_match_table = pad_device_ids,
 	},
 };
 
@@ -157,6 +158,6 @@ static int __init xen_acpi_pad_init(void)
 	if (!xen_running_on_version_or_later(4, 2))
 		return -ENODEV;
 
-	return acpi_bus_register_driver(&acpi_pad_driver);
+	return platform_driver_register(&acpi_pad_driver);
 }
 subsys_initcall(xen_acpi_pad_init);
-- 
2.51.0






From xen-devel-bounces@lists.xenproject.org Sat Mar 14 14:16:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 14 Mar 2026 14:16:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1254817.1550348 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w1Pn0-00019U-Ly; Sat, 14 Mar 2026 14:16:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1254817.1550348; Sat, 14 Mar 2026 14:16:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w1Pn0-00019M-IY; Sat, 14 Mar 2026 14:16:26 +0000
Received: by outflank-mailman (input) for mailman id 1254817;
 Sat, 14 Mar 2026 14:16: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=+adF=BO=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1w1Pmz-00019G-9J
 for xen-devel@lists.xenproject.org; Sat, 14 Mar 2026 14:16:25 +0000
Received: from fhigh-b1-smtp.messagingengine.com
 (fhigh-b1-smtp.messagingengine.com [202.12.124.152])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6024af3f-1fb0-11f1-b164-2bf370ae4941;
 Sat, 14 Mar 2026 15:16:22 +0100 (CET)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 6F1397A00FB;
 Sat, 14 Mar 2026 10:16:20 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-04.internal (MEProxy); Sat, 14 Mar 2026 10:16:20 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat,
 14 Mar 2026 10:16:18 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6024af3f-1fb0-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1773497780;
	 x=1773584180; bh=sf82I9ielwEQ0Cw5LxIK/iZzAvwMluuaFrzpBg1ujW8=; b=
	SIMgl6ZamTaJFLnMhsuKOaGKcJMfke20yvnUT/853q6cT1LYsowvoPrKNrhLiaix
	FJLEc0xBsSsRa1/LPTINDzr4nRaK5kX3tItkA4scP79n9X3U3GGi7e1q+oXT1Kq4
	Cjp5VhvjcmCXB9pgR+JtSiSDDn/oYz7TFV28+HRaqrxibxf3Cm3XaCV0QEt4s2BV
	ELkuslLt/gpYWrr3+kaf2t+92SrU/HKP7IFvYCgk2Zjcg4X5rGyboaSJRXIQpDXT
	nqKc2MIhvZiyC7UmwSKn2IX9AbFiBedamIxTDzN3Rk3fGJwErt25ZrkQVkQKYdo4
	g8OEOpU89xiuUs6vyU4cCw==
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=
	1773497780; x=1773584180; bh=sf82I9ielwEQ0Cw5LxIK/iZzAvwMluuaFrz
	pBg1ujW8=; b=fpnPT6+FKWjtB2euxb+1DikzfGuq1CQ0TJu9zQlKwU+XEj0Nayf
	ESzqL2s1I4Fdc6O91qEMvA+seBJLEnKw7yx9xjF8Vyiqfab2JqiJP3t22QDZTjv1
	3o4BttjzK/HdnZSHfcxoO5MhboUk1m+lcOEzmMMzPEtpMqscFoIkXj3KxhfYGyIb
	DgdgiUUpNerl03pq9w/W7X8D0yRlXKwbT0gOkHx0tidmIWZAA/pQ+EEeGi2as+nU
	Z3BlTxXoNNSkcXYJvT6Ck3VjAi1xSU7U2IJQaG+w8+pc0XZZEOJYiJidBmodKabb
	PBNnzHuT+u5G8izleFGzjUWAzZHbQIzCbfg==
X-ME-Sender: <xms:s221aQBORmXAnBVn-EvHn5-Nlxi-Qcc8TGN_NTRN5slJQG-tiuGOpQ>
    <xme:s221aRkxbL_VHGGl89NeHfdY4KUb2BTDtYvWfuiNaVjkpeui7aPQGOygomGqVpoar
    p30nKTcjthYhXfqzTGYxuK5s_lHs5icv5wKSMYSSiVhERbD>
X-ME-Received: <xmr:s221aZwbxjk1HbsLXmsFpzQ1pmTk2DQ7N3ZUuRlwowE6nafWvL-gvDqAOs26bSThWmTT4Sqmz3nLOZRh-JthpHb-HyCU6pgm_gc>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvledvjeelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepkedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepthhhihgvrhhrhidrvghstggrnhguvges
    vhgrthgvshdrthgvtghhpdhrtghpthhtohepqhgvmhhuqdguvghvvghlsehnohhnghhnuh
    drohhrghdprhgtphhtthhopehpsghonhiiihhnihesrhgvughhrghtrdgtohhmpdhrtghp
    thhtoheprhhitghhrghrugdrhhgvnhguvghrshhonheslhhinhgrrhhordhorhhgpdhrtg
    hpthhtohepmhhsthesrhgvughhrghtrdgtohhmpdhrtghpthhtohepvgguuhgrrhguohes
    hhgrsghkohhsthdrnhgvthdprhgtphhtthhopegrnhhthhhonhihseigvghnphhrohhjvg
    gtthdrohhrghdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhr
    ohhjvggtthdrohhrgh
X-ME-Proxy: <xmx:s221aTQH4caK-AprXHR6iWk8O4weVQwfgBpBW6OiYekiVP68OgqUaw>
    <xmx:s221aZ9Xd76PM23kW1Z6hJgPahas9FYoirEtwoVfENzW-ZOlKwIrTg>
    <xmx:s221aZsm1dpfASGjSqKXAhyjd6lDREe4hzK-5vJDEsx1V7SR8K9TCw>
    <xmx:s221aZMCGDFK6MeIh4mTG6QYpdrg1a7mRc0vaH7c2QkNGXeLPy8fbg>
    <xmx:tG21aeU4IT2zjpz3VkMPduk5qbmR3Z5VZpXiURfBJF08MnsCCVoBKELo>
Feedback-ID: i1568416f:Fastmail
Date: Sat, 14 Mar 2026 15:16:15 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Thierry Escande <thierry.escande@vates.tech>
Cc: qemu-devel@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Anthony PERARD <anthony@xenproject.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 0/4] Xen: Add Q35 initial support for HVM guests
Message-ID: <abVtsK31t9tWgsaY@mail-itl>
References: <20260313164649.794591-1-thierry.escande@vates.tech>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="82oef0c++DDw9SXs"
Content-Disposition: inline
In-Reply-To: <20260313164649.794591-1-thierry.escande@vates.tech>


--82oef0c++DDw9SXs
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sat, 14 Mar 2026 15:16:15 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Thierry Escande <thierry.escande@vates.tech>
Cc: qemu-devel@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	Anthony PERARD <anthony@xenproject.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 0/4] Xen: Add Q35 initial support for HVM guests

On Fri, Mar 13, 2026 at 04:46:56PM +0000, Thierry Escande wrote:
> This patch series introduces Q35 chipset support for Xen HVM guests. This=
 is
> based on the work from Alexey Gerasimenko (See patchset [1] for reference=
).
>=20
> This series does not implement device passthrough as this will need more =
work
> on the Xen side to support multiple PCI buses. Since Q35 chipset does not
> support device hotplugging and with current Xen mechanism for device
> passthrough, they have to be plugged to a new PCIe root port, i.e. not th=
e PCI
> bus 0.

I always found it weird that Xen does hot-plugging of PCI passthrough
devices... Wouldn't it be easier to change this (connect them from the
very start, via QEMU cmdline) and declare hotplug as unsupported (at
least at this time)? I realize it's more complex change at the toolstack
side, but overall may simplify things and maybe even improve
reliability.

In any case, it's probably not worth blocking initial support on this.

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

--82oef0c++DDw9SXs
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmm1bbAACgkQ24/THMrX
1ywG2Qf9HeEIoighs7imZKLP80u2BXOmsxS5olpQKk2WNfonDrnzngS/WalGuUoA
2/oVsk8aQFNGL5YXl7VKSLnwT4IZCstMtK+XhuqDVHoEdx+rUnrOoTzbNs55V9nT
LjQzPWgL02G6RwhZ2F5XK03S4jGNNI07Un1G2pFAQTM4uTobQAJb0mC67sxE8En+
GP73r7svgXwFGvZ1Gtm/50jPvyUUIzJ5MNaaT1p+OorQ9EKeSvj15C77ceEXEqxb
M5jGaoCde5GhtKz5SOj8UQaGqgSyXh4LcLEcLdfXmnTwtF08aIbMKdio9B0VOaO/
xvVBzhNeVJjp43BbOcazmDEk2dQU7Q==
=NocA
-----END PGP SIGNATURE-----

--82oef0c++DDw9SXs--


From xen-devel-bounces@lists.xenproject.org Sun Mar 15 17:08:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 15 Mar 2026 17:08:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255256.1550357 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w1oww-0004tN-4s; Sun, 15 Mar 2026 17:08:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255256.1550357; Sun, 15 Mar 2026 17:08: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 1w1owv-0004tE-WA; Sun, 15 Mar 2026 17:08:22 +0000
Received: by outflank-mailman (input) for mailman id 1255256;
 Sun, 15 Mar 2026 17:08:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hpBg=BP=oss.qualcomm.com=vijayanand.jitta@srs-se1.protection.inumbo.net>)
 id 1w1owu-0004t7-7L
 for xen-devel@lists.xenproject.org; Sun, 15 Mar 2026 17:08:20 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8f054677-2091-11f1-b164-2bf370ae4941;
 Sun, 15 Mar 2026 18:08:17 +0100 (CET)
Received: from pps.filterd (m0279868.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62F6TFuS1106578
 for <xen-devel@lists.xenproject.org>; Sun, 15 Mar 2026 17:08:16 GMT
Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com
 [209.85.214.197])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cw04235dw-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Sun, 15 Mar 2026 17:08:16 +0000 (GMT)
Received: by mail-pl1-f197.google.com with SMTP id
 d9443c01a7336-2aec8d85199so19160875ad.0
 for <xen-devel@lists.xenproject.org>; Sun, 15 Mar 2026 10:08:15 -0700 (PDT)
Received: from hu-vjitta-hyd.qualcomm.com ([202.46.23.25])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2aece56c393sm78973035ad.17.2026.03.15.10.08.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 15 Mar 2026 10:08:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8f054677-2091-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:message-id
	:mime-version:subject:to; s=qcppdkim1; bh=thJzkvW9uOc7ANNbvpiJj/
	JZWbmF086MfCsEV/kb1PM=; b=Amnfi7m0rPnXRh+qwWteFyKXFGRtWdWJPLHVgi
	3X3StFtnBtdGAP3Vk7NREEwWfihYkgnwEA7QAWFi46mPrZp9eA2/lUA8HlJX9TxU
	lq7Id5YO7BlZHa7YPPEqihviIVmDqJV8GytlpdfCGy41/Gfmd22lP3iZ0sd/ADBS
	9uenNtpdCqDzntK2Ia1c0NA1NyblfMJ8+sTAvMGgpjkVDlvZv/IO76Wsgwo7NZRu
	7bAm9wy+Qx/3iT8JyCoPTl3FkAvGAvMMQiVUlHw5/gomHywQN/V2INbXM5FWDeUC
	eX4WYAy3dJqalyon/Ax8+4aiFxj2d6Bmr6g1IQfy3Kpvw6qg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1773594495; x=1774199295; darn=lists.xenproject.org;
        h=cc:to:message-id:content-transfer-encoding:mime-version:subject
         :date:from:from:to:cc:subject:date:message-id:reply-to;
        bh=thJzkvW9uOc7ANNbvpiJj/JZWbmF086MfCsEV/kb1PM=;
        b=VqUlM+lX5yvHBQos8dtApwtE4+GmCPbJPiWFcGQzMuxb3E2D38Q9vez8kgAgPW62m9
         +4nR0Oda5tW10wpe9aMUHPyrCIznzPkZSlZ8Sp6sTCeGWDBi0A+gIzxpCw9ipv4l7pvQ
         ao1YlgSvnVRXWJR4VL1MyN5+8rGLZI5EO5TvZIAIbK8LP+M7J09LIKPHDR35GWNLoBv3
         RZpiIQT1mXdrY7apU1vYg31FFJbaoYBhhSE2/60o7Fz/p5KPz4GU6bFiDzg3irHxW6S5
         YR6ZhCUw5csrxgB8ov5/0904Qf+ZSHsq9inPMWy7QGUr+5I8xNtcERE1Fano3u0lHV8N
         D0wg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773594495; x=1774199295;
        h=cc:to:message-id:content-transfer-encoding:mime-version:subject
         :date:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=thJzkvW9uOc7ANNbvpiJj/JZWbmF086MfCsEV/kb1PM=;
        b=b25NJUgRWEpavm6Hlhxgrzk6CY7RtG76zSVMuolhDLJ3qQPqBHB2mnnGawoJU/FanN
         m8YQLXoNudGK1lrV85TM3IUBzp0zxbjtF0KlLWmL/ctunVkzltHDKP6Lssslg3+EKeps
         BSwWjewtcz5TRDyWuOo5J+O3IMZIVOt2o9gBuA9H46yQqLkKpBKW3gbFCNGr+udC02bL
         53ZTcbi5tOJoD4tvpivPX4ZlSfuahkopAYd8JOR5ftrX2wOR7IfWp7QHbYBqpQ/GnsVI
         K4SJB8XS0qmw5r3867ruR0wy31226yKgiUBVM+5PK22fI4JeSOfrnNkAb/KJSs6qA7Ad
         5UWg==
X-Forwarded-Encrypted: i=1; AJvYcCVUeoqWiq6rUGm1tZuS6gN07fxQ/sQqOjq3Swv8An01mdA3U4lo47eTQdECE7ygTOjW9807EEcYQWs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxrZSnh2Rs3lNBLXImyF/PARNcLPerSpfNyuicviDTinAvvSoCs
	VpL69s15hHxJaxIzPBMY4U5KcpJ+vlaozj8Xrihm4CxuaM3Jpgm856Hj1WST8EIJIWCGPbBO2LT
	0/CKN/6KnLTQ8sISRdQnPcsu+akj2AtF4n8Z5a/SR0hWJIg0PV6dOCAaTNRx1LKVNe/m6mA==
X-Gm-Gg: ATEYQzyvSIRranRt1zca/WqptubG0v8BiVc9rHS9CeAJQzEQG1MxsXEIMm0QLJeEIjD
	1s6h+YLp9Bd36MCrbju4i9VYvIH1WD2LbEHkGc31o+bqhVgksoPHJiJ+1EJDenZkbeGoqHghDwa
	e+PYuEIFaTjYYK8BI5wZ2t4UKtlg5Gp20hqsxDBhwPaMR+WsYcn9MkScPgjRDLSyVBz08MGhesT
	OtT5GutugjSrV73UAVwiWT/kn2MjsR8wfGdN4+9r9dNHkIMDCXzG5Ty8DBIylnms24wDCbOIlJ+
	zsz2g6gX4uJiOom7Li9OJN7aSCjUn4rayRrrq7JTwxAdIWnD/1Lm9wW8dBSCGauljma7/8oAc7y
	jqJn4kkkDwyRaQMj41n5wua+3KNzOGWMyia9wEmJRJLJQuuuCSWD+75pv
X-Received: by 2002:a17:903:1b68:b0:2b0:5306:5f20 with SMTP id d9443c01a7336-2b0530674cemr17093155ad.18.1773594494908;
        Sun, 15 Mar 2026 10:08:14 -0700 (PDT)
X-Received: by 2002:a17:903:1b68:b0:2b0:5306:5f20 with SMTP id d9443c01a7336-2b0530674cemr17092635ad.18.1773594494295;
        Sun, 15 Mar 2026 10:08:14 -0700 (PDT)
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Date: Sun, 15 Mar 2026 22:37:43 +0530
Subject: [PATCH v2] of/iommu: support multiple iommu-map entries per input
 ID
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260315-iommu_multi_map-v2-1-51b98cb79331@oss.qualcomm.com>
X-B4-Tracking: v=1; b=H4sIAF7ntmkC/6tWKk4tykwtVrJSqFYqSi3LLM7MzwNyjHQUlJIzE
 vPSU3UzU4B8JSMDIzMDY0NT3cz83NzS+NzSnJLM+NzEAl2LZMskcwsTS4PE5FQloK6CotS0zAq
 widGxtbUA+zWOvmEAAAA=
To: Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Rob Herring <robh@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Marc Zyngier <maz@kernel.org>,
        Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: linux-arm-msm@vger.kernel.org, iommu@lists.linux.dev,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
        imx@lists.linux.dev, xen-devel@lists.xenproject.org,
        linux-arm-msm@vger.kernel.org,
        Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
X-Mailer: b4 0.12.3
X-Developer-Signature: v=1; a=ed25519-sha256; t=1773594484; l=11143;
 i=vijayanand.jitta@oss.qualcomm.com; s=20260301; h=from:subject:message-id;
 bh=SoPi6EZR36E7NYzW7ROn+VXlsuvtsMeKrxme0hCMUPk=;
 b=xJyzCudAB+iilqpGW9jjZhvmYkMUYUWeUOH6tnG/x8TC/YIZ05rxJXUEds5TaDqR7UknSPvcR
 OdGCrfnovcbBbST29yWlUwSy457WFOvR6FoxeZZsHPtfMKGP1PCqCGz
X-Developer-Key: i=vijayanand.jitta@oss.qualcomm.com; a=ed25519;
 pk=Lpi7Cs3wHe8KZtqvyci7FTOLzsKpEHKGCaPNZw+1zRI=
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzE1MDEzNSBTYWx0ZWRfX3fEKTBVtNwpT
 +26OC0b5Tw6XsDtWAhvbtqWOVjNWj6dqqbzJ7hQEuNtHs6/btWxRqvGy/U0/pb82tEsRnbOsvWU
 9gifU9WJSVplij/l/xwXNLzx34yxMYOoReAmd0iZJhYLbenFPfhVW8O33rAUvUZszLSamqUfJlG
 4hNQ021EHsg3AJ7ZIV6Km7B7wc76wEZ+uJ3Z3vGrLJBjdJqvvRVQ5j0Abih2oWx9p2jIe0aeS9+
 v+hhORIKqG2UKFQmIlta+J58MvzW6vZcBkNQG9OjZH2pSSoFhjJy9H3DzCc0/IqNC0q826OMZY4
 Nc0gCINTO7ZZ7lEpXFtExlzy5N2Ir49UG2xqFkHb4t8nkkfZNpI/skxbOp38Ty3a2tCE5bZesN2
 2fJXowzJtlcAgkJ9yk7Rq2hwVU1kOjerPuxtScX1se9T96nPQvKt/eHmkz+xbys8L1t7Dbd/WPM
 OaPeXUZ0LGSj/Cg1uNg==
X-Proofpoint-GUID: EqZjFfSRRNYEbVfiDr_xlHalRxNLFdG5
X-Authority-Analysis: v=2.4 cv=SJJPlevH c=1 sm=1 tr=0 ts=69b6e780 cx=c_pps
 a=cmESyDAEBpBGqyK7t0alAg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22
 a=VwQbUJbxAAAA:8 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=kIQn9afXKFv-EtykHQIA:9
 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 a=TjNXssC_j7lpFel5tvFf:22
X-Proofpoint-ORIG-GUID: EqZjFfSRRNYEbVfiDr_xlHalRxNLFdG5
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-15_06,2026-03-13_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 suspectscore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 adultscore=0
 impostorscore=0 priorityscore=1501 malwarescore=0 bulkscore=0 spamscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603150135

When multiple mappings are present for an input ID, linux matches
just the first one. There is a usecase [1] where all the mappings
are to be maintained in parallel for an iommu-map entry of a same
input id.

Add a next_offset iterator parameter to of_map_iommu_id() and
refactor of_map_id() internals into a static helper to carry it.
Update of_iommu_configure_dev_id() to loop over all matching
entries to support this case. All other callers pass NULL and
are unaffected.

[1] https://lore.kernel.org/all/20250627-video_cb-v3-0-51e18c0ffbce@quicinc.com/

Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
---
On Qualcomm kaanapali, the VPU hardware has multiple internal blocks
that generate different stream IDs for the same input ID. The device
tree encodes them as separate iommu-map entries sharing the same input
ID:

  iommu-map = <0x100 &apps_smmu 0x1940 0x1>,
              <0x100 &apps_smmu 0x1a20 0x1>, ...

This requires multiple iommu-map entries per device.
of_iommu_configure_dev_id() currently stops at the first match,
so only one stream ID gets registered with the IOMMU.

The v1 series [1] addressed this with a callback threaded through
of_map_id().

This patch uses a next_offset iterator on of_map_iommu_id() instead,
keeping of_map_id() unchanged, and updates of_iommu_configure_dev_id()
to loop over all matching entries.

This patch also depends on iommu-cells series [4].

Changes since v1:
      - Split patches 2/7 [2] and 3/7 [3] out into this standalone series.
      - Dropped the callback (of_map_id_cb / of_map_id_arg) entirely.
      - Replaced with a next_offset iterator on of_map_iommu_id()
    	only; of_map_id() public API is unchanged.
      - of_iommu_configure_dev_id() now loops explicitly; no
        bus-type heuristic (dev_is_platform()) needed.

[1] https://lore.kernel.org/all/20260126-kaanapali-iris-v1-0-e2646246bfc1@oss.qualcomm.com/
[2] https://lore.kernel.org/all/20260126-kaanapali-iris-v1-2-e2646246bfc1@oss.qualcomm.com/
[3] https://lore.kernel.org/all/20260126-kaanapali-iris-v1-3-e2646246bfc1@oss.qualcomm.com/
[4] https://lore.kernel.org/all/ce25b963-0e8e-4411-a406-7b466eadb1f9@oss.qualcomm.com/

Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
---
 drivers/iommu/of_iommu.c              | 20 +++++++----
 drivers/of/base.c                     | 65 ++++++++++++++++++++++++++++++-----
 drivers/pci/controller/dwc/pci-imx6.c |  2 +-
 drivers/pci/controller/pcie-apple.c   |  2 +-
 drivers/xen/grant-dma-ops.c           |  2 +-
 include/linux/of.h                    |  4 +--
 6 files changed, 75 insertions(+), 20 deletions(-)

diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
index a18bb60f6f3d..947eedd9a88b 100644
--- a/drivers/iommu/of_iommu.c
+++ b/drivers/iommu/of_iommu.c
@@ -46,14 +46,22 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
 				     const u32 *id)
 {
 	struct of_phandle_args iommu_spec = {};
-	int err;
+	int offset = 0, err;
+	bool found = false;
 
-	err = of_map_iommu_id(master_np, *id, &iommu_spec);
-	if (err)
-		return err;
+	while (!(err = of_map_iommu_id(master_np, *id, &iommu_spec, &offset))) {
+		err = of_iommu_xlate(dev, &iommu_spec);
+		of_node_put(iommu_spec.np);
+		iommu_spec.np = NULL;
+		if (err)
+			return err;
+		found = true;
+	}
+
+	/* -ENODEV means all entries exhausted; success if at least one was processed */
+	if (err == -ENODEV && found)
+		return 0;
 
-	err = of_iommu_xlate(dev, &iommu_spec);
-	of_node_put(iommu_spec.np);
 	return err;
 }
 
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 9c44eb6d445d..71175e670757 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -2146,13 +2146,13 @@ static bool of_check_bad_map(const __be32 *map, int len)
  *
  * Return: 0 on success or a standard error code on failure.
  */
-int of_map_id(const struct device_node *np, u32 id,
-	       const char *map_name, const char *cells_name,
-	       const char *map_mask_name,
-	       struct of_phandle_args *arg)
+static int of_map_id_next(const struct device_node *np, u32 id,
+			  const char *map_name, const char *cells_name,
+			  const char *map_mask_name,
+			  struct of_phandle_args *arg, int *next_offset)
 {
 	u32 map_mask, masked_id;
-	int map_bytes, map_len, offset = 0;
+	int map_bytes, map_len, offset = next_offset ? *next_offset : 0;
 	bool bad_map = false;
 	const __be32 *map = NULL;
 
@@ -2161,7 +2161,7 @@ int of_map_id(const struct device_node *np, u32 id,
 
 	map = of_get_property(np, map_name, &map_bytes);
 	if (!map) {
-		if (arg->np)
+		if (arg->np || next_offset)
 			return -ENODEV;
 		/* Otherwise, no map implies no translation */
 		arg->args[0] = id;
@@ -2262,9 +2262,16 @@ int of_map_id(const struct device_node *np, u32 id,
 		pr_debug("%pOF: %s, using mask %08x, id-base: %08x, out-base: %08x, length: %08x, id: %08x -> %08x\n",
 			np, map_name, map_mask, id_base, be32_to_cpup(out_base),
 			id_len, id, id_off + be32_to_cpup(out_base));
+
+		if (next_offset)
+			*next_offset = offset;	/* caller resumes from here */
 		return 0;
 	}
 
+	/* no (more) matches found in the map */
+	if (next_offset)
+		return -ENODEV;
+
 	pr_info("%pOF: no %s translation for id 0x%x on %pOF\n", np, map_name,
 		id, arg->np);
 
@@ -2276,6 +2283,38 @@ int of_map_id(const struct device_node *np, u32 id,
 	pr_err("%pOF: Error: Bad %s length: %d\n", np, map_name, map_bytes);
 	return -EINVAL;
 }
+
+/**
+ * of_map_id - Translate an ID through a downstream mapping.
+ * @np: root complex device node.
+ * @id: device ID to map.
+ * @map_name: property name of the map to use.
+ * @cells_name: property name of target specifier cells.
+ * @map_mask_name: optional property name of the mask to use.
+ * @arg: pointer to a &struct of_phandle_args. On input, @arg->np may be
+ *	set to a target device node to match, or NULL to match any. On
+ *	success, @arg->np will be set to the matched target node (with a
+ *	reference held), @arg->args_count will be set to the number of
+ *	output specifier cells as defined by @cells_name in the target node,
+ *	and @arg->args[0..args_count-1] will contain the translated output
+ *	specifier values.
+ *
+ * Given a device ID, look up the appropriate implementation-defined
+ * platform ID and/or the target device which receives transactions on that
+ * ID, as per the "iommu-map" and "msi-map" bindings. If @arg->np points to
+ * a non-NULL device node, only entries targeting that node will be matched;
+ * if it is NULL, it will receive the device node of the first matching
+ * target phandle, with a reference held.
+ *
+ * Return: 0 on success or a standard error code on failure.
+ */
+int of_map_id(const struct device_node *np, u32 id,
+	      const char *map_name, const char *cells_name,
+	      const char *map_mask_name,
+	      struct of_phandle_args *arg)
+{
+	return of_map_id_next(np, id, map_name, cells_name, map_mask_name, arg, NULL);
+}
 EXPORT_SYMBOL_GPL(of_map_id);
 
 /**
@@ -2285,15 +2324,23 @@ EXPORT_SYMBOL_GPL(of_map_id);
  * @arg: pointer to a &struct of_phandle_args for the result. On success,
  *	@arg->np holds a reference to the target node that the caller must
  *	release with of_node_put().
+ * @next_offset: if non-NULL, on success it is set to the map offset just
+ *	past the matched entry. Pass this value back on the next call to
+ *	resume scanning from where the previous call left off, allowing all
+ *	matching entries for the same @id to be iterated. Pass NULL (or a
+ *	pointer to 0) to find only the first match.
  *
- * Convenience wrapper around of_map_id() using "iommu-map" and "iommu-map-mask".
+ * Wrapper around the internal iommu-map scanner using "iommu-map" and
+ * "iommu-map-mask". When @next_offset is non-NULL, returns -ENODEV once
+ * all matching entries have been exhausted.
  *
  * Return: 0 on success or a standard error code on failure.
  */
 int of_map_iommu_id(const struct device_node *np, u32 id,
-		    struct of_phandle_args *arg)
+		    struct of_phandle_args *arg, int *next_offset)
 {
-	return of_map_id(np, id, "iommu-map", "#iommu-cells", "iommu-map-mask", arg);
+	return of_map_id_next(np, id, "iommu-map", "#iommu-cells",
+			      "iommu-map-mask", arg, next_offset);
 }
 EXPORT_SYMBOL_GPL(of_map_iommu_id);
 
diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
index 5f8a11774eb5..0d7f5e6d037a 100644
--- a/drivers/pci/controller/dwc/pci-imx6.c
+++ b/drivers/pci/controller/dwc/pci-imx6.c
@@ -1146,7 +1146,7 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
 	u32 sid = 0;
 
 	target = NULL;
-	err_i = of_map_iommu_id(dev->of_node, rid, &iommu_spec);
+	err_i = of_map_iommu_id(dev->of_node, rid, &iommu_spec, NULL);
 	if (!err_i) {
 		target = iommu_spec.np;
 		sid_i = iommu_spec.args[0];
diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
index 2e86f8fd300b..c780e3f9d14d 100644
--- a/drivers/pci/controller/pcie-apple.c
+++ b/drivers/pci/controller/pcie-apple.c
@@ -765,7 +765,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
 	dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
 		pci_name(pdev->bus->self), port->idx);
 
-	err = of_map_iommu_id(port->pcie->dev->of_node, rid, &iommu_spec);
+	err = of_map_iommu_id(port->pcie->dev->of_node, rid, &iommu_spec, NULL);
 	if (err)
 		return err;
 
diff --git a/drivers/xen/grant-dma-ops.c b/drivers/xen/grant-dma-ops.c
index 36547d7cf1d6..062beb5825f5 100644
--- a/drivers/xen/grant-dma-ops.c
+++ b/drivers/xen/grant-dma-ops.c
@@ -325,7 +325,7 @@ static int xen_dt_grant_init_backend_domid(struct device *dev,
 		struct pci_dev *pdev = to_pci_dev(dev);
 		u32 rid = PCI_DEVID(pdev->bus->number, pdev->devfn);
 
-		if (of_map_iommu_id(np, rid, &iommu_spec)) {
+		if (of_map_iommu_id(np, rid, &iommu_spec, NULL)) {
 			dev_dbg(dev, "Cannot translate ID\n");
 			return -ESRCH;
 		}
diff --git a/include/linux/of.h b/include/linux/of.h
index 953f2dbe0e86..990849f00e74 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -467,7 +467,7 @@ int of_map_id(const struct device_node *np, u32 id,
 	       struct of_phandle_args *arg);
 
 int of_map_iommu_id(const struct device_node *np, u32 id,
-		    struct of_phandle_args *arg);
+		    struct of_phandle_args *arg, int *next_offset);
 
 int of_map_msi_id(const struct device_node *np, u32 id,
 		  struct of_phandle_args *arg);
@@ -943,7 +943,7 @@ static inline int of_map_id(const struct device_node *np, u32 id,
 }
 
 static inline int of_map_iommu_id(const struct device_node *np, u32 id,
-				  struct of_phandle_args *arg)
+				  struct of_phandle_args *arg, int *next_offset)
 {
 	return -EINVAL;
 }

---
base-commit: 9e94742cffb7541f55fa904a40c1ca9d836d303d
change-id: 20260315-iommu_multi_map-8c9b78490ace

Best regards,
-- 
Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>



From xen-devel-bounces@lists.xenproject.org Sun Mar 15 22:44:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 15 Mar 2026 22:44:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255413.1550382 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w1uBk-00033R-MD; Sun, 15 Mar 2026 22:44:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255413.1550382; Sun, 15 Mar 2026 22:44:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w1uBk-00033J-Hp; Sun, 15 Mar 2026 22:44:00 +0000
Received: by outflank-mailman (input) for mailman id 1255413;
 Sun, 15 Mar 2026 22:43:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=vTDb=BP=gmail.com=x1917x@srs-se1.protection.inumbo.net>)
 id 1w1uBj-00033D-64
 for xen-devel@lists.xenproject.org; Sun, 15 Mar 2026 22:43:59 +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 7319f318-20c0-11f1-b164-2bf370ae4941;
 Sun, 15 Mar 2026 23:43:56 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-48540d21f7dso46733735e9.0
 for <xen-devel@lists.xenproject.org>; Sun, 15 Mar 2026 15:43:56 -0700 (PDT)
Received: from LinuxLaptop ([156.146.63.148]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-485696a12d0sm9329865e9.13.2026.03.15.15.43.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 15 Mar 2026 15:43:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7319f318-20c0-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773614636; x=1774219436; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:organization:references
         :in-reply-to:message-id:subject:cc:to:from:date:from:to:cc:subject
         :date:message-id:reply-to;
        bh=R+oKftX9fWed4q1JFI6dnkZ5cVOEANix0J2Szgkj1kw=;
        b=Dd35wY4NsWP/uDxbPKxtLcemqgyEE6+K8ZGcYmnGHM486PGEjIigplwzWmY0e7xySJ
         2LicqrxEj6zNjNwK+sYscDGAZ5jv+6RAMp7YFCP+n6Psz+YtBJfGuKxUjZqR2PYadLDk
         QfNwtU+inPRbRDjWfqLNHRq17HUW6NvjWl37maTKr4dYsVgxflWoIP9PILE1V13yQRPh
         6KM1DnqV2/NHuK3J67G0k/vhRnIZzLS74+gmuqdrl5fgxaU2Fye4BaCc4s5f270Jfxgx
         4n0vrXG1hZyfHp8WulXG62WQPRzo7FqR2VBbZfyY7lHRgeKiYUqmNfFAuEa0verkbK+3
         mvzQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773614636; x=1774219436;
        h=content-transfer-encoding:mime-version:organization:references
         :in-reply-to:message-id:subject:cc:to:from:date:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=R+oKftX9fWed4q1JFI6dnkZ5cVOEANix0J2Szgkj1kw=;
        b=jD7MRYOk/7m4lkpp1J/78jUJkb5DxBbhbBDWpUeQr6kk4fmj7R3tdRxrd9ZSV6eoM4
         zEsuahwL2kBnsMtAQj5t/BL6bEE1j0Bdf+vt1CrNsd5b9JObmdhMHCSgT69sEyCZFi2A
         5mC3gr28SPcmF74bhngNOWg8zF8R9HDCdDbGkgcXJTMpVXuS8y86szQJZbC7p7OY/4G1
         YdQhI+T3brPCGpJMfD36mdnpeyfftMaXnda6X9w/IrDb64sHujAZpLac6Gle57vtQDPq
         K9d4phtpS1oNqNpzzyDtipp4QQr5KcIWcT9zxlgodThc4RtNFUziCZgSpAGyiMXlI/8I
         y/7w==
X-Gm-Message-State: AOJu0YxrG+uQo6tFAEiUacPp09ku0RsC1MhgbH9VFkz34TQhdFz63jkQ
	gJ8ipO4+C3l14DUNXSKVlaljI2mfi1Q8jjQ20VX9YvBMsRyDsIQwUb1/
X-Gm-Gg: ATEYQzxlkdVnON5mIRLrLGDKQHwnwgWjCtNaWb4tLfuVgwZD045DLFMtU8cxZOhRDHz
	ajKrAAifNNN2a4/GIVwcA1Pdzi0ec497t+C1C+/Zv5Q2Rv2rniYA0SDcWCp+AoDTD2iGHQAGrEP
	mozkTfRB7VQEwr90xbocCd0Z73i3YOQKSW8pdiFo/j4ZZcKD+V/l5FUg/267rc8pGgT88L0bG64
	HMLxQZvLA9oJ6MKsNf6QaGmy5OC7kRN4u/HLjO/CR2gCDgJ/hk3D42Jz7kph0VYVH0kT/S40JNg
	WgjJp1gYiNa0IZcoecosm50buofXVbVMFW7QBkolqR2fJLSYR7YAhO3i2/XxUEXKwcKNMUBBwp5
	iWgdXPtEwGXHqaTuSL7dX2rYbzIRJhD8gixzWwUulikPgYSFRqvXtVm+c3HrdHXTXlMbQ1R0apK
	dedk18KamWjAG+F8VOGw==
X-Received: by 2002:a05:600c:a09:b0:485:3f72:324d with SMTP id 5b1f17b1804b1-485566ddac0mr199693975e9.14.1773614635407;
        Sun, 15 Mar 2026 15:43:55 -0700 (PDT)
Date: Sun, 15 Mar 2026 23:43:49 +0100
From: Alexey G <x1917x@gmail.com>
To: "Thierry Escande" <thierry.escande@vates.tech>
Cc: xen-devel@lists.xenproject.org, "Jan Beulich" <jbeulich@suse.com>,
 "Andrew Cooper" <andrew.cooper3@citrix.com>, "Roger Pau =?UTF-8?B?TW9u?=
 =?UTF-8?B?bsOp?=" <roger.pau@citrix.com>, "Anthony PERARD"
 <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>,
 "Juergen Gross" <jgross@suse.com>
Subject: Re: [PATCH 00/17] Q35 initial support for HVM guests
Message-ID: <20260315234349.36c0dd8b@LinuxLaptop>
In-Reply-To: <20260313163455.790692-1-thierry.escande@vates.tech>
References: <20260313163455.790692-1-thierry.escande@vates.tech>
Organization: none
X-Mailer: Claws Mail 4.3.1 (GTK 3.24.38; x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

Hello,

I'm glad someone wants to commit these patches (and surprised that
they're still applicable after so many years), thank you for this
effort. Feel free to proceed, it would be good if you manage to upstream
them to Xen/QEMU code. But be prepared that it won't be an easy
task - the patches cross multiple areas of responsibility, so it will
require some effort to make all involved Xen/QEMU maintainers happy.
I don't work on virtualization/x86 anymore and I barely remember
anything after 8 years, so I probably won't be able to help much, but
I'll keep an eye on the email thread.


Some historical background for the Q35 patches:

The project I was working on was relying on Xen for PCIe device
passthrough (mostly GPUs, NICs and storage controllers) to HVM guests.
So PCIe passthrough and HVM were the top priority - it affected many
of my decisions.

IIRC, there were 2 major obstacles to successfully passthrough any PCIe device:

1. Even back then, there were **multiple PCIe devices whose drivers
were attempting to read/write registers from their device's PCIe
extended config space** (offsets above 100h). Supporting this feature
required to have MMCONFIG/ECAM working, which was something only
available for Q35 emulation at that time => hence Q35 support was
added, with mostly PCIe passthrough in mind. In the process I also
discovered that dreadful "PCIe topology check" issue which was bypassed
by presenting the passed through PCIe device to the OS as a chipset
built-in device. This solution was a bit hacky, but allowed to
successfully pass through PCIe devices to a Q35 HVM guest.

2. Some devices had mirrors of BAR registers' values _accessed through
a proprietary mechanism_, like reading them through device-specific
MMIO registers. As such, their drivers do not read a BAR value from
the PCI conf space but rather get it directly from eg. MMIO, whose
layout is completely unknown to us. This makes all BAR emulation in the
hypervisor useless for such device - the hypervisor returns one value
for BARs read via PCI conf space, but the driver sees the real values
as it bypasses the PCI conf space. Among such devices were Nvidia GPUs
BTW - but not including the "pro" models AFAIR, which were more
virtualization-friendly.

That "BAR desync" problem was tricky - I solved it by implementing an
option (in the domain config file) for a passed through device which,
when turned on, was basically enabling 1:1 matching between virtual and
physical BAR values for a given device, without affecting other devices
(be it PT or emulated). This way virtual physical addresses in BARs
match the real ones - hence the device driver sees the same values
either in the PCI conf space or proprietary registers.

But it wasn't that simple, unfortunately - having a specific "locked"
BAR value means we need to adjust the MMIO hole size for the guest
accordingly. A straightforward approach is to make the MMIO hole size
very big. This in turn brought another problems to solve:

2.1. when a recent (back then) Windows OS sees PCI BAR allocation which
is far from perfect - it can completely reallocate all BARs of all
devices to other, very different addresses. They were calling this
feature as PCIe "resource rebalancing" IIRC. This breaks 1:1 mirroring
of given device's virtual/physical BARs - it's ok to present BARs with
real physical addresses (the sneaky device driver knows them via MMIO
registers anyway), but allowing to modify values in BARs is a no go, of
course.

Luckily, this problem was solved by a specific PCI BAR allocation - the
idea was to keep the MMIO hole as small as possible while avoiding
large unused gaps inside it, not claimed by any BAR. It was implemented
inside hvmloader, which was populating the MMIO hole while taking into
account both fixed and freely modifiable BARs and then reported the new
RAM/MMIO hole layout back to Xen. This allowed to prevent the PCI BAR
reallocation from the OS - and hotplugging was still working thanks to
the high MMIO hole (above 4Gb).

2.2. after experimenting with dynamic resizing of the MMIO hole, I
realized that Xen and QEMU have their own vision of the system memory
layout which can get out of sync. And MMIO hole resize was creating
this bad situation in fact, giving some hard to debug/reproduce bugs
with unexpected guest memory corruption.

The way I fixed this memory mismatch was emulating the real Q35
facility for this - namely, chipset's REMAP register which was designed
precisely for this goal - to reconfigure the MMIO hole size/position
while relocating underlying RAM memory to another range (so no RAM is
wasted). As the chipset was emulated by QEMU and the whole idea of HVM
was to emulate real hardware as close as possible, this was the obvious
solution - we do it in the way like it's done in a real firmware and
then QEMU knows the RAM/MMIO hole layout, allowing to sync it with
Xen's. There were some other fixed issues relying on this feature -
AFAIR, I needed it also to make 'populate on demand' working with
(hotplugged?) PT devices.

I was planning to send patches for this feature too, after settling the
Q35 patches. I'll try to find the relevant code/notes, maybe they will
be helpful.

On Fri, 13 Mar 2026 16:35:01 +0000
"Thierry Escande" <thierry.escande@vates.tech> wrote:

>This series introduces initial Q35 chipset support for HVM guests, based on the
>patchset at [1] by Alexey Gerasimenko.
>
>Basic support means that this patchset allows to start an HVM guest that
>emulates a Q35 chipset via Qemu and implements access to PCIe extended
>configuration space for such devices emulated by Qemu.
>
>Support for PCIe device passthrough is not implemented yet. This is planned but
>implies modifications in the hypervisor and the firmwares, mainly for the
>support of multiple PCI buses.
>
>In order to create a Q35 guest, a new domain config option has been added,
>named 'device_model_machine'. Possible values are:
>- "i440" - i440 emulation (default)
>- "q35"  - emulate a Q35 machine
>
>If the option is omitted it defaults to "i440", not impacting existing domain
>configuration files.
>
>DSDT files for Q35 and i440 are largely similar so the existing file dsdt.asl
>has been split with i440 and q35 specific parts put in seperated files.
>
>The PCIe MMCONFIG area is configured by hvmloader and its base address and size
>are set in Xen using a new pair of hypercalls HVMOP_get|set_ecam_space. Access
>to the MMCONFIG area from a guest is trapped by Xen and transfered to the
>emulator as XEN_DMOP_IO_RANGE_PCI ioreq type.
>
>[1] https://lore.kernel.org/xen-devel/cover.1520867740.git.x1917x@gmail.com/
>
>Thierry Escande (17):
>  libacpi: Split dsdt.asl file and extract i440 specific parts
>  libacpi: new DSDT ACPI table for Q35
>  hvmloader: add function to set the emulated machine type (i440/Q35)
>  hvmloader: add ACPI enabling for Q35
>  hvmloader: add Q35 DSDT table loading
>  hvmloader: Move pci devices setup to a separate function
>  hvmloader: add basic Q35 support
>  hvmloader: Extend PCI BAR struct
>  xev/hvm: Add HVMOP_get|set_ecam_space hypercalls
>  hvmloader: Add support for HVMOP_set|get_ecam_space hypercalls
>  hvmloader: allocate MMCONFIG area in the MMIO hole
>  libxl: Q35 support (new option device_model_machine)
>  libxl: Add xen-platform device for Q35 machine
>  libacpi: build ACPI MCFG table if requested
>  hvmloader: Set MCFG in ACPI table
>  Handle PCIe ECAM space access from guests
>  docs: provide description for device_model_machine option



From xen-devel-bounces@lists.xenproject.org Mon Mar 16 07:51:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 07:51:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255434.1550391 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w22je-0007Dg-T6; Mon, 16 Mar 2026 07:51:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255434.1550391; Mon, 16 Mar 2026 07:51:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w22je-0007DZ-Oy; Mon, 16 Mar 2026 07:51:34 +0000
Received: by outflank-mailman (input) for mailman id 1255434;
 Mon, 16 Mar 2026 07:51: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=6b3Y=BQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w22jd-0007DT-Om
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 07:51:33 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ed355c2a-210c-11f1-b164-2bf370ae4941;
 Mon, 16 Mar 2026 08:51:23 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-b93698bb57aso795262066b.0
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 00:51:22 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9796cd0f3asm371655766b.7.2026.03.16.00.51.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Mar 2026 00:51:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ed355c2a-210c-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773647482; x=1774252282; 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=gVf7eqXFsNSUtVS+T8qM4oUWc9TUdMrRyi21/3vzEys=;
        b=IY9ui6KOCHfzX9cH/a7mPgd0b/jFW5yVH23Xx71X3Tu4+wYgdxh8lI9hoJ+sqL3UDd
         tSnkK4a4Km1AO47zYrJNC0Y5ubEHXIC0Khx4yZZvWnFFk4PXJZy/XEsruiviWBoYtA/l
         mhfP+BMlqp+kfhNa0QAqoJ/en/sfVnH/hWPQ9hrWvjw/9CY9k11ak4oFz+yNPhfKz/f0
         ieWCgGb3iTCY0u3D3C+HrcC6gtQZXRI/+tTWrpERWDFTyiMEnqwqaOIvtbQzVEe8+Tyx
         nsT+jDl3V8rLWrqruzgA8595SEAr0S1GBEmlPgIHF5cOPDTRSm7Cjwhi1lYxhr3qEOGn
         SO+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773647482; x=1774252282;
        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=gVf7eqXFsNSUtVS+T8qM4oUWc9TUdMrRyi21/3vzEys=;
        b=Gezz7gYh5lOETI/MOamn7phBzB4RmvBktGEsKCPrBsZafomiOjAKWZSLf5esPZLiwJ
         i86czTGiFQhbMuAtVY6/mwjdY0mAvincVYFB+zcXtZGDadLQuGjPQ03YwzO89k0ugXH2
         PePMGi/levuV6YTHj487GHlKW5xu1kA7QZLJUIakyaAVeecsFj22PLuF7jw+Wvult4WH
         /+z+7m7G3GGLfBb2zREY3/4TVHshq2Fnpnp0cfRMioF6zFpn7jpNhHh9bWW9YJ8dNSJo
         Ch2YDSUEBau2nD1TduiNglB9hh16zJWgL5KbqHZkuIIQP7dIvIIkwsyZcCXBLyXIA7g8
         g3yw==
X-Gm-Message-State: AOJu0YxfT/cHJJSyS/uJBwlFkUYFhXzn7KCl28pAKUMelZHYTNXnEpTp
	EKYIzSEXMeD0lQ1vPKqWQJTZPwVYV8XYds3FHWHAucv7vRg2dN9GOd792BciO81oteMx+CXf4Cw
	PzBLK
X-Gm-Gg: ATEYQzwE+unebjI3VE7uMsma4VbTkCVIOv13c/ZUThsEMgqxi2fSlBAOC1Ws4U+CVbp
	rzZ9C46/Rkmq7debUay4babo7GfbZoRbkYm9BNbVziV+z4IGYHNlsCrc3tctqZ10oP0ZigFSBf9
	sRggUcalrqu1H2cklnJSdUgpHNEGHYvyqUlAC8WC5qr0sTroo+JB+t98FriQbrX3bB1O1a3P7n3
	rDgiPAYU7XqkZDAYO4kd5T829Ya+lTBmE8jx4IMfc9ymgFwwULG6wEo/Wqbk3p9vckL3KB2BJSH
	+UX4z8dFfEPl2EE/4LB5PiVvMedISr+8pG+V/BEfy0DRmUnhbPwxSl1ETadrRyrEdfP4JYMxSi2
	AJQviHPsuLjkX8WWtIbjUO1gYTMSF+ue7ErtMkDeutdc4OcdLkSCj99VkJ3pa8siJeLsRS3Y28X
	vpYeDGtwRmjSH0Yu8h+G5qr8RkfXdo9fWswVyta60gQxqsE7KaYdUeMGygZSSwqMGN39OOpvbvC
	OHuu93RZK9neM6L8ozMr0rb81KCcDneHnCOuK28tBFJ4rpAi5idpg==
X-Received: by 2002:a17:907:6ea4:b0:b97:b149:4e72 with SMTP id a640c23a62f3a-b97b14977d6mr204643966b.28.1773647482139;
        Mon, 16 Mar 2026 00:51:22 -0700 (PDT)
Message-ID: <c7870ce3-fc52-4bda-997f-4791fe3020a1@suse.com>
Date: Mon, 16 Mar 2026 08:51:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 01/11] tools/libs/store: add get- and set-quota related
 functions
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-2-jgross@suse.com> <abQd82Z8x3_9CY2Q@l14>
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: <abQd82Z8x3_9CY2Q@l14>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------wX2RZAj9dCG09f7FRF200Hqc"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------wX2RZAj9dCG09f7FRF200Hqc
Content-Type: multipart/mixed; boundary="------------ItyVOjejs0x0CYt0HSY5Bsr1";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>
Message-ID: <c7870ce3-fc52-4bda-997f-4791fe3020a1@suse.com>
Subject: Re: [PATCH 01/11] tools/libs/store: add get- and set-quota related
 functions
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-2-jgross@suse.com> <abQd82Z8x3_9CY2Q@l14>
In-Reply-To: <abQd82Z8x3_9CY2Q@l14>

--------------ItyVOjejs0x0CYt0HSY5Bsr1
Content-Type: multipart/mixed; boundary="------------RJfLw1K0oAtZZfZT0NOujJJO"

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

T24gMTMuMDMuMjYgMTU6MjMsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBPbiBUaHUsIE1h
ciAwNSwgMjAyNiBhdCAwMjo1MTo1OFBNICswMTAwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
Pj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUveGVuc3RvcmUuaCBiL3Rvb2xzL2luY2x1
ZGUveGVuc3RvcmUuaA0KPj4gaW5kZXggNDIzNDIyZGM1MC4uNmI2NjFlNTg5NSAxMDA2NDQN
Cj4+IC0tLSBhL3Rvb2xzL2luY2x1ZGUveGVuc3RvcmUuaA0KPj4gKysrIGIvdG9vbHMvaW5j
bHVkZS94ZW5zdG9yZS5oDQo+PiBAQCAtMjc3LDYgKzI3NywyNSBAQCBib29sIHhzX2dldF9m
ZWF0dXJlc19kb21haW4oc3RydWN0IHhzX2hhbmRsZSAqaCwgdW5zaWduZWQgaW50IGRvbWlk
LA0KPj4gICBib29sIHhzX3NldF9mZWF0dXJlc19kb21haW4oc3RydWN0IHhzX2hhbmRsZSAq
aCwgdW5zaWduZWQgaW50IGRvbWlkLA0KPj4gICAJCQkgICAgdW5zaWduZWQgaW50IGZlYXR1
cmVzKTsNCj4+ICAgDQo+PiArLyogR2V0IG5hbWVzIG9mIHN1cHBvcnRlZCBxdW90YS4gKi8N
Cj4+ICtjaGFyICoqeHNfZ2V0X3F1b3RhX25hbWVzKHN0cnVjdCB4c19oYW5kbGUgKmgsIHVu
c2lnbmVkIGludCAqbnVtKTsNCj4+ICsNCj4+ICsvKiBHZXQgdGhlIHZhbHVlIG9mIG9uZSBn
bG9iYWwgcXVvdGEuICovDQo+PiArYm9vbCB4c19nZXRfZ2xvYmFsX3F1b3RhKHN0cnVjdCB4
c19oYW5kbGUgKmgsIGNoYXIgKnF1b3RhLA0KPj4gKwkJCSB1bnNpZ25lZCBpbnQgKnZhbHVl
KTsNCj4+ICsNCj4+ICsvKiBTZXQgdGhlIHZhbHVlIG9mIG9uZSBnbG9iYWwgcXVvdGEuICov
DQo+PiArYm9vbCB4c19zZXRfZ2xvYmFsX3F1b3RhKHN0cnVjdCB4c19oYW5kbGUgKmgsIGNo
YXIgKnF1b3RhLA0KPj4gKwkJCSB1bnNpZ25lZCBpbnQgdmFsdWUpOw0KPj4gKw0KPj4gKy8q
IEdldCB0aGUgdmFsdWUgb2Ygb25lIGRvbWFpbiBxdW90YS4gKi8NCj4+ICtib29sIHhzX2dl
dF9kb21haW5fcXVvdGEoc3RydWN0IHhzX2hhbmRsZSAqaCwgdW5zaWduZWQgaW50IGRvbWlk
LA0KPj4gKwkJCSBjaGFyICpxdW90YSwgdW5zaWduZWQgaW50ICp2YWx1ZSk7DQo+PiArDQo+
PiArLyogU2V0IHRoZSB2YWx1ZSBvZiBvbmUgZG9tYWluIHF1b3RhLiAqLw0KPj4gK2Jvb2wg
eHNfc2V0X2RvbWFpbl9xdW90YShzdHJ1Y3QgeHNfaGFuZGxlICpoLCB1bnNpZ25lZCBpbnQg
ZG9taWQsDQo+PiArCQkJIGNoYXIgKnF1b3RhLCB1bnNpZ25lZCBpbnQgdmFsdWUpOw0KPj4g
Kw0KPiANCj4gRG8geW91IHRoaW5rIGFsbCB0aG9zZSBuZXcgcHJvdG90eXBlIGNvdWxkIGdl
dCBhIGJpdCBtb3JlIGRlc2NyaXB0aW9ucz8NCj4gV2hpY2ggcGFyYW1ldGVyIGFyZSBhY3R1
YWxseSBvdXRwdXQgKGFuZCBub3QgaW5wdXQpLCB3aGF0IGRvZXMgaXQgbWVhbg0KPiB0byBy
ZXR1cm4gZmFsc2UsIGRvIHRoZXkgc2V0IGVycm5vLCBpcyB0aGVyZSBzb21ldGhpbmcgdG8g
ZG8gd2l0aCB0aGUNCj4gcmV0dXJuIHZhbHVlIG9mIHhzX2dldF9xdW90YV9uYW1lcz8NCg0K
T2ggeWVzLCBvZiBjb3Vyc2UuDQoNCj4gRm9yIG91dHB1dCBhcmd1bWVudHMsIGxpYnhsIGhh
dmUgYSBjb252ZW50aW9uICh3ZWxsIGF0IGxlYXN0IGEgbWVudGlvbg0KPiBpbiB0aGUgY29k
aW5nIHN0eWxlKSB0byBzdWZmaXggYXJndW1lbnQgbmFtZXMgd2l0aCBgX3JgIG9yIGBfb3V0
YC4NCg0KSG1tLCBJIGRvbid0IHRoaW5rIEknZCBsaWtlIHRvIGNoYW5nZSBzdHlsZSBub3cu
IFRoaXMgaXMgbm90IGxpYnhsIGFmdGVyDQphbGwuDQoNCj4gRm9yIHRoZSBzdHJpbmdzLCBj
b3VsZCB3ZSB1c2UgYGNvbnN0IGNoYXIgKmAgaW5zdGVhZCBvZiBub24tY29uc3Qgb25lPw0K
DQpZZXMuDQoNCj4gDQo+PiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9zdG9yZS94cy5jIGIv
dG9vbHMvbGlicy9zdG9yZS94cy5jDQo+PiBpbmRleCA4ZjRiOTBhM2NmLi5kZGEzN2Y3NTI2
IDEwMDY0NA0KPj4gLS0tIGEvdG9vbHMvbGlicy9zdG9yZS94cy5jDQo+PiArKysgYi90b29s
cy9saWJzL3N0b3JlL3hzLmMNCj4+IEBAIC0xNDU2LDYgKzE0NTYsMTE3IEBAIGJvb2wgeHNf
c2V0X2ZlYXR1cmVzX2RvbWFpbihzdHJ1Y3QgeHNfaGFuZGxlICpoLCB1bnNpZ25lZCBpbnQg
ZG9taWQsDQo+PiAgIAlyZXR1cm4geHNfYm9vbCh4c190YWxrdihoLCBpb3YsIEFSUkFZX1NJ
WkUoaW92KSwgTlVMTCkpOw0KPj4gICB9DQo+PiAgIA0KPj4gK2NoYXIgKip4c19nZXRfcXVv
dGFfbmFtZXMoc3RydWN0IHhzX2hhbmRsZSAqaCwgdW5zaWduZWQgaW50ICpudW0pDQo+PiAr
ew0KPj4gKwlzdHJ1Y3QgeHNkX3NvY2ttc2cgbXNnID0geyAudHlwZSA9IFhTX0dFVF9RVU9U
QSB9Ow0KPj4gKwlzdHJ1Y3QgaW92ZWMgaW92WzFdOw0KPj4gKwljaGFyICoqcXVvdGE7DQo+
PiArCWNoYXIgKnJlcGx5Ow0KPj4gKwljaGFyICpjOw0KPj4gKwl1bnNpZ25lZCBpbnQgaTsN
Cj4+ICsNCj4+ICsJaW92WzBdLmlvdl9iYXNlID0gJm1zZzsNCj4+ICsJaW92WzBdLmlvdl9s
ZW4gID0gc2l6ZW9mKG1zZyk7DQo+PiArDQo+PiArCXJlcGx5ID0geHNfdGFsa3YoaCwgaW92
LCBBUlJBWV9TSVpFKGlvdiksIE5VTEwpOw0KPj4gKwlpZiAoIXJlcGx5KQ0KPj4gKwkJcmV0
dXJuIE5VTEw7DQo+PiArDQo+PiArCSpudW0gPSAxOw0KPj4gKwlmb3IgKGMgPSByZXBseTsg
KmM7IGMrKykNCj4+ICsJCWlmICgqYyA9PSAnICcpDQo+PiArCQkJKCpudW0pKys7DQo+PiAr
DQo+PiArCXF1b3RhID0gbWFsbG9jKCpudW0gKiBzaXplb2YoY2hhciAqKSArIHN0cmxlbihy
ZXBseSkgKyAxKTsNCj4+ICsJYyA9IChjaGFyICopKHF1b3RhICsgKm51bSk7DQo+PiArCXN0
cmNweShjLCByZXBseSk7DQo+PiArCWZvciAoaSA9IDA7IGkgPCAqbnVtOyBpKyspIHsNCj4+
ICsJCXF1b3RhW2ldID0gYzsNCj4+ICsJCWMgPSBzdHJjaHIoYywgJyAnKTsNCj4+ICsJCWlm
IChjKSB7DQo+IA0KPiBJZiBgY2AgaXMgTlVMTCwgaXQncyBsaWtlbHkgdGhhdCB0aGlzIGlz
IHRoZSBsYXN0IGl0ZXJhdGlvbiBvZiB0aGUgYGZvcmANCj4gbG9vcC4gQnV0IGp1c3QgaW4g
Y2FzZSwgc2hvdWxkIHdlIHByZXZlbnQgdGhlIGNvZGUgZnJvbSBkb2luZyBhbm90aGVyDQo+
IHJvdW5kIGFuZCBwcmV2ZW50IGBzdHJjaHIoTlVMTCwgJyAnKWA/IChPciBqdXN0IGNoZWNr
IHRoYXQgYGNgIGlzICFOVUxMLA0KPiBhbmQgbGV0IHRoZSBsb29wIGZpbmlzaCBzZXQgTlVM
TCBmb3IgdGhlIHJlbWFpbmluZyBzbG90IGluIGBxdW90YWApDQoNCk5vdCBzdXJlIHRoaXMg
aXMgcmVhbGx5IG5lZWRlZC4gKm51bSBpcyBzZXQganVzdCBhIGZldyBsaW5lcyBmdXJ0aGVy
IHVwDQp1c2luZyB0aGUgc2FtZSB3YXkgdG8gY291bnQgdGhlIG51bWJlciBvZiBzdHJpbmdz
LiBEbyB3ZSByZWFsbHkgbmVlZCB0byBkbw0KY29uc2lzdGVuY3kgY2hlY2tzIG9mIGludGVy
bWVkaWF0ZSByZXN1bHRzIGluIHN1Y2ggYSBzaG9ydCBmdW5jdGlvbj8NCg0KPiANCj4+ICsJ
CQkqYyA9IDA7DQo+PiArCQkJYysrOw0KPj4gKwkJfQ0KPj4gKwl9DQo+PiArDQo+PiArCXJl
dHVybiBxdW90YTsNCj4+ICt9DQo+PiArDQo+PiArYm9vbCB4c19nZXRfZ2xvYmFsX3F1b3Rh
KHN0cnVjdCB4c19oYW5kbGUgKmgsIGNoYXIgKnF1b3RhLA0KPj4gKwkJCSB1bnNpZ25lZCBp
bnQgKnZhbHVlKQ0KPj4gK3sNCj4+ICsJc3RydWN0IHhzZF9zb2NrbXNnIG1zZyA9IHsgLnR5
cGUgPSBYU19HRVRfUVVPVEEgfTsNCj4+ICsJc3RydWN0IGlvdmVjIGlvdlsyXTsNCj4+ICsN
Cj4+ICsJaW92WzBdLmlvdl9iYXNlID0gJm1zZzsNCj4+ICsJaW92WzBdLmlvdl9sZW4gID0g
c2l6ZW9mKG1zZyk7DQo+PiArCWlvdlsxXS5pb3ZfYmFzZSA9IHF1b3RhOw0KPj4gKwlpb3Zb
MV0uaW92X2xlbiAgPSBzdHJsZW4ocXVvdGEpICsgMTsNCj4+ICsNCj4+ICsJcmV0dXJuIHhz
X3VpbnQoeHNfdGFsa3YoaCwgaW92LCBBUlJBWV9TSVpFKGlvdiksIE5VTEwpLCB2YWx1ZSk7
DQo+PiArfQ0KPj4gKw0KPj4gK2Jvb2wgeHNfc2V0X2dsb2JhbF9xdW90YShzdHJ1Y3QgeHNf
aGFuZGxlICpoLCBjaGFyICpxdW90YSwNCj4+ICsJCQkgdW5zaWduZWQgaW50IHZhbHVlKQ0K
Pj4gK3sNCj4+ICsJc3RydWN0IHhzZF9zb2NrbXNnIG1zZyA9IHsgLnR5cGUgPSBYU19TRVRf
UVVPVEEgfTsNCj4+ICsJY2hhciB2YWxfc3RyW01BWF9TVFJMRU4odmFsdWUpXTsNCj4gDQo+
IE1BWF9TVFJMRU4gZG9lc24ndCBoYXZlIGEgZ3JlYXQgbmFtZSwgSSB3b3VuZGVyIHdoYXQg
aXMgd2FzIDotKS4gQW5kDQo+IGl0J3Mgbm90IGFib3V0IGEgbWF4aW11bSBzaXplIG9mIHBh
eWxvYWQgdGhhdCBjb3VsZCBnbyBvbiB4cyB3aXJlIG9yDQo+IHNvbWV0aGluZywgaXQncyBh
Y3R1YWxseSB0aGUgbWF4aW11bSBzdHJpbmcgc2l6ZSB0aGF0IGNhbiB0YWtlIGENCj4gbnVt
ZXJpY2FsIHZhbHVlLCB3aGVuIGNvbnZlcnRlZCB0byBjaGFyYXRlcnMuDQoNClVuZm9ydHVu
YXRlbHkgdGhlIE1BWF9TVFJMRU4oKSBtYWNybyBpcyBkZWZpbmVkIGluIGEgcHVibGljIGhl
YWRlciBmaWxlLg0KSSBjb3VsZCBkZWZpbmUgYW5vdGhlciBtYWNybyB3aXRoIGEgZGlmZmVy
ZW50IG5hbWUgZG9pbmcgdGhlIHNhbWUgYW5kDQp1c2UgdGhhdCBoZXJlLCBidXQgTUFYX1NU
UkxFTigpIHdvdWxkIHN0aWxsIGJlIHRoZXJlLg0KDQpXaGF0IGlzIHlvdXIgcHJlZmVyZW5j
ZT8NCg0KDQpKdWVyZ2VuDQo=
--------------RJfLw1K0oAtZZfZT0NOujJJO
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-----

--------------RJfLw1K0oAtZZfZT0NOujJJO--

--------------ItyVOjejs0x0CYt0HSY5Bsr1--

--------------wX2RZAj9dCG09f7FRF200Hqc
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/Ey8FAmm3tnkFAwAAAAAACgkQsN6d1ii/Ey/f
tQf+OwXYZ8rIrIOR5AW+wRe30/jKhwFhADxFB0c0lP9tFz33rC/b26480zmtfUkB2Hekm/IckbXY
6baLv9GhNCPazXlWhTcDzOL/qaBcLgSERyQVCCniDTr0FKG3EYUXpBWI5iQW36ek8wkgC+op3viA
Qslz1V1evAfeqqCtSnIj6Y3C06VH19xwBzWJfmREDlGBpdK34mAkX+iSODPoGtX02Im5OfQEBue7
P5foZUoWSJZwnkcaw/yFaiObhh7yLbE+ncDQq/5Kktyk11fKqhio9fTli385jKy4QhGotR75gAUW
oqDAT3HWVY9WHdGiAyVelUnji0lY5YRCy4YlCwf4SQ==
=Q3Fg
-----END PGP SIGNATURE-----

--------------wX2RZAj9dCG09f7FRF200Hqc--


From xen-devel-bounces@lists.xenproject.org Mon Mar 16 07:53:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 07:53:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255441.1550400 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w22lo-0007hB-6Z; Mon, 16 Mar 2026 07:53:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255441.1550400; Mon, 16 Mar 2026 07: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 1w22lo-0007h4-3o; Mon, 16 Mar 2026 07:53:48 +0000
Received: by outflank-mailman (input) for mailman id 1255441;
 Mon, 16 Mar 2026 07:53:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=6b3Y=BQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w22lm-0007gy-OR
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 07:53:46 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4241da30-210d-11f1-b164-2bf370ae4941;
 Mon, 16 Mar 2026 08:53:45 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-b976536806cso492979266b.0
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 00:53:45 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b976cc2b902sm515317166b.29.2026.03.16.00.53.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Mar 2026 00:53:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4241da30-210d-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773647625; x=1774252425; 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=AudLTosuD+ocYQ1uQtgEW+nhyiQn8yLaW0KwnVQnOHs=;
        b=TPcXcv03HZWhFJput/CpPQ9SOTpCqtZxfrYDe/S1+uTTH5N7YeKcp9GSdkVnf3FwSC
         7xliav1M4CmPWp2SkmwwfvdvGiLoJ34e82BJzBrgrr36n/mykchxN8oo4toF9ofTQDyt
         97a6y+7sGnEWhmfuQbvhJbIp+WJ7aUpUNiNxifvm3jPJXlumWQoThXzmhmSYU8DOR1+i
         P2bUZ4OwNjS8xt/SCXgahdruwh/Kx6i0UteHbGfq4BFjqCJXM1fYm7EMEPJDxdXt6VgN
         8rQ+fkp+yZAbe2IKouKI4/7UnJ2ogRUEcQqZKZPaQe82SpQvlD0bTbywrEpA6MjQsRj4
         NlBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773647625; x=1774252425;
        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=AudLTosuD+ocYQ1uQtgEW+nhyiQn8yLaW0KwnVQnOHs=;
        b=jqOmjvpthjZuFoLeNlmgwCqDpppglsiNBKD4kM+hgR12SFAmwnNE90AW4zV1pFMo/9
         DzkTdg7k+vwTdm3C9Qv1LNLVNNIY9/qpUinrRQFCWYpWKz9XexNGVaEWIFn6BoIaLqDl
         RarCdrIQ8hPL3abyvHVXA+zmHgS5rGmFx/+hBOuSQIcIhkSL+55PKA+IbS2ZSRO+ATx+
         HG85+q59FJ2tScn4mdNAE5oxMxAm3FXHGPbLPQjWVrYB4qkWWtPYbZSBGc67shYoo1fs
         //XwQPqbE2yRc68HTsGTn4Mlclvfhvp+7I91emBIVii0SYgV9fAWHE5FlQF6XedwPPPZ
         KEhw==
X-Gm-Message-State: AOJu0Ywi3hgz/9WCupgaPzNNAeFdsguZp5rcDPTKWsde8HetX7jY0/cD
	Z6HYHeg88ZJusijAsS7JxgDkZMTH20KFmElC/cPdrZfSd3v2U27aoVUIFp/hQCquPs8=
X-Gm-Gg: ATEYQzwaCFwHIYXpIVDzWACS9adBTbbT/9oLA0PgM53KmV1Xvri8JYFUntzGpIiPJ56
	4I7qtLsXiaqwbckCHQnPGHJe9y7ZKWh26BOayBoaA/VO6lr6P8UuXFTFaNEmVRVyxJVKbLTBREQ
	qIO3erbYgTFXOBdniu6eJhOVIfV9+ZOUEA+A9+7yMFgBLJ9cxof8XqeTZRCNadqPNRS9lRuP1GZ
	TXD69mIkUqSZ6SyzSmGVYdFcq67Y2vf+sP2HUQztLrirFyQ4MskDFlGGkUhBy5KLt4PJPOUvVYu
	NTaGLUvgOMwRL70P2Metf+E66Rv0Il78fjHY9mW/sXEsC+HA2ETJHCYoJXugsZeIC3TNFT4sI20
	ftxRXAYCrPvTrWBxxWK9cChvvvQeaAocPybq4JtqChmEnROPur0dqqpnuVsgKNzR6X1pN3J5HYo
	Wd6P36aJIWPHPRhsLRm5UdLQGSaZto+u++pQdWWORN8e56dHDIyvvutQN+fvYrQcI7Wez8DEtZc
	lgj79l0tt5GfNFDxWLnK1ofsW1RAhUiTyrU8l/D9KXfm6yGCobMA42m9Nq5WetX
X-Received: by 2002:a17:906:c109:b0:b97:bffb:b265 with SMTP id a640c23a62f3a-b97bffc38b1mr116533566b.36.1773647624983;
        Mon, 16 Mar 2026 00:53:44 -0700 (PDT)
Message-ID: <5709c947-9063-46df-b8cc-6f6d7cfe9910@suse.com>
Date: Mon, 16 Mar 2026 08:53:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/11] tools/xenstored: add central quota check functions
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-3-jgross@suse.com> <abQm4h7nmKvYSSxl@l14>
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: <abQm4h7nmKvYSSxl@l14>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------NJiO5i11Gu0dwDRyE0cj05I8"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------NJiO5i11Gu0dwDRyE0cj05I8
Content-Type: multipart/mixed; boundary="------------nAAXU0m0peaFQ1kCYmHslrA7";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>
Message-ID: <5709c947-9063-46df-b8cc-6f6d7cfe9910@suse.com>
Subject: Re: [PATCH 02/11] tools/xenstored: add central quota check functions
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-3-jgross@suse.com> <abQm4h7nmKvYSSxl@l14>
In-Reply-To: <abQm4h7nmKvYSSxl@l14>

--------------nAAXU0m0peaFQ1kCYmHslrA7
Content-Type: multipart/mixed; boundary="------------z8J0GGE0Xrdcmss56Jd3ZFMs"

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

T24gMTMuMDMuMjYgMTY6MDEsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBPbiBUaHUsIE1h
ciAwNSwgMjAyNiBhdCAwMjo1MTo1OVBNICswMTAwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
Pj4gQWRkIGNlbnRyYWwgZnVuY3Rpb25zIGZvciBjaGVja2luZyBhIHZhbHVlIChlaXRoZXIg
YW4gYWJzb2x1dGUgb25lIG9yDQo+PiB0aGUgY3VycmVudCBkb21haW4gdmFsdWUgcGx1cyBh
biBvZmZzZXQpIGFnYWluc3QgYSBzcGVjaWZpYyBxdW90YS4NCj4+DQo+PiBUaGlzIGlzIGlu
IHByZXBhcmF0aW9uIG9mIGludHJvZHVjaW5nIHBlci1kb21haW4gcXVvdGEuDQo+Pg0KPj4g
VGhlIHJlcXVpcmVkIGNoYW5nZXMgYWxsb3cgdG8gZHJvcCB0aGUgInVwZGF0ZSIgcGFyYW1l
dGVyIGZyb20NCj4+IGRvbWFpbl9uYmVudHJ5X2ZpeCgpLg0KPiANCj4gVGhpcyBwYXRjaCBj
aGFuZ2VzIHRoZSByZXR1cm4gdmFsdWUgb2YgZG9fd2F0Y2goKSwgZnJvbSBFMkJJRyB0byBF
Tk9TUEMsDQo+IGJ1dCB0aGF0J3Mgbm90IG1lbnRpb24uDQoNCkkgY2FuIGFkZCBhIHJlbWFy
ayB0byB0aGUgY29tbWl0IG1lc3NhZ2UuDQoNCj4gDQo+PiBkaWZmIC0tZ2l0IGEvdG9vbHMv
eGVuc3RvcmVkL2RvbWFpbi5jIGIvdG9vbHMveGVuc3RvcmVkL2RvbWFpbi5jDQo+PiBpbmRl
eCBlNDUzYjMwNjFmLi4xZGY5MjY1YWQ1IDEwMDY0NA0KPj4gLS0tIGEvdG9vbHMveGVuc3Rv
cmVkL2RvbWFpbi5jDQo+PiArKysgYi90b29scy94ZW5zdG9yZWQvZG9tYWluLmMNCj4+IEBA
IC00OTAsMTAgKzUwOSw5IEBAIHN0YXRpYyBib29sIGRvbWFpbl9jYW5fcmVhZChzdHJ1Y3Qg
Y29ubmVjdGlvbiAqY29ubikNCj4+ICAgCWlmIChkb21haW5faXNfdW5wcml2aWxlZ2VkKGNv
bm4pKSB7DQo+PiAgIAkJaWYgKGRvbWFpbi0+d3JsX2NyZWRpdCA8IDApDQo+PiAgIAkJCXJl
dHVybiBmYWxzZTsNCj4+IC0JCWlmIChkb21haW4tPmFjY1tBQ0NfT1VUU1RdLnZhbCA+PSBo
YXJkX3F1b3Rhc1tBQ0NfT1VUU1RdLnZhbCkNCj4+ICsJCWlmIChkb21haW5fY2hlY2tfcXVv
dGFfYWRkKGRvbWFpbiwgQUNDX09VVFNULCAwKSkNCj4gDQo+IElzIHRoaXMgY2hhbmdlIGZp
eGluZyBhIHBvdGVudGlhbCBidWc/IEFzIG5vdyB3ZSBjaGVjayBpZiB0aGVyZSdzIGENCj4g
cXVvdGEgZm9yIE9VVFNULg0KDQpUaGlzIGlzIGp1c3QgY2hhbmdpbmcgaG93IHRoZSBxdW90
YSBpcyB0ZXN0ZWQuDQoNCj4gDQo+PiAgIAkJCXJldHVybiBmYWxzZTsNCj4+IC0JCWlmIChk
b21haW4tPmFjY1tBQ0NfTUVNXS52YWwgPj0gaGFyZF9xdW90YXNbQUNDX01FTV0udmFsICYm
DQo+PiAtCQkgICAgaGFyZF9xdW90YXNbQUNDX01FTV0udmFsKQ0KPj4gKwkJaWYgKGRvbWFp
bl9jaGVja19xdW90YV9hZGQoZG9tYWluLCBBQ0NfTUVNLCAwKSkNCj4+ICAgCQkJcmV0dXJu
IGZhbHNlOw0KPj4gICAJfQ0KPj4gICANCj4+IGRpZmYgLS1naXQgYS90b29scy94ZW5zdG9y
ZWQvd2F0Y2guYyBiL3Rvb2xzL3hlbnN0b3JlZC93YXRjaC5jDQo+PiBpbmRleCBiNjZhOWYx
YTM5Li4zNmU0ZDMzZjIyIDEwMDY0NA0KPj4gLS0tIGEvdG9vbHMveGVuc3RvcmVkL3dhdGNo
LmMNCj4+ICsrKyBiL3Rvb2xzL3hlbnN0b3JlZC93YXRjaC5jDQo+PiBAQCAtMjIwLDggKzIy
MCw4IEBAIGludCBkb193YXRjaChjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9u
ICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pDQo+PiAgIAkJCXJldHVybiBFRVhJ
U1Q7DQo+PiAgIAl9DQo+PiAgIA0KPj4gLQlpZiAoZG9tYWluX3dhdGNoKGNvbm4pID4gaGFy
ZF9xdW90YXNbQUNDX1dBVENIXS52YWwpDQo+PiAtCQlyZXR1cm4gRTJCSUc7DQo+PiArCWlm
IChkb21haW5fY2hlY2tfcXVvdGFfYWRkKGNvbm4tPmRvbWFpbiwgQUNDX1dBVENILCAxKSkN
Cj4+ICsJCXJldHVybiBFTk9TUEM7DQo+IA0KPiBDaGFuZ2Ugb2YgcmV0dXJuIHZhbHVlIGhl
cmUgbm90IG1lbnRpb25uZWQsIGV2ZW4gaWYgaXQgbm93IGFsaWduZWQgd2l0aA0KPiB0aGUg
dmFsdWUgcmV0dXJuZWQgaW4gb3RoZXIgcGxhY2VzLg0KPiANCj4+ICAgDQo+PiAgIAl3YXRj
aCA9IGFkZF93YXRjaChjb25uLCB2ZWNbMF0sIHZlY1sxXSwgcmVsYXRpdmUsIGZhbHNlKTsN
Cj4+ICAgCWlmICghd2F0Y2gpDQo+IA0KPiBQYXRjaCBsb29rcyBmaW5lIHRvIG1lOg0KPiBS
ZXZpZXdlZC1ieTogQW50aG9ueSBQRVJBUkQgPGFudGhvbnkucGVyYXJkQHZhdGVzLnRlY2g+
DQoNClRoYW5rcw0KDQoNCkp1ZXJnZW4NCg==
--------------z8J0GGE0Xrdcmss56Jd3ZFMs
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-----

--------------z8J0GGE0Xrdcmss56Jd3ZFMs--

--------------nAAXU0m0peaFQ1kCYmHslrA7--

--------------NJiO5i11Gu0dwDRyE0cj05I8
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/Ey8FAmm3twgFAwAAAAAACgkQsN6d1ii/Ey/1
GQgAg5DVqG897rC2iHela59nLUrB1Pwp7/D9NkbnDH0FshxNU3qBZSC60zHAwTunAZPrSo3bRMCf
rBIyYtiVHUTpOjyPjwrHZMehdZHhcYRxJ4D/b6N73JjsD12kA57Bp5nVAi86isiceXejNOdMpVNY
LmbNkTHVTV46z+Q9a21vPhH21KYWakVuORk3QXgnaWziZD6Zj87lz3BVPkQh97hLFj7ClOl1RVDQ
czgXp6pds8C/ffqIUmpxWphstev32O2gMX7JjItrcGzf8NZzVfFJtJ8N/QH2ezSV8PK70P3/VRTW
SUkIe/ENjFulZ2UhhDIJGFHDKogBwqgSVsySgqTmRA==
=Xyy2
-----END PGP SIGNATURE-----

--------------NJiO5i11Gu0dwDRyE0cj05I8--


From xen-devel-bounces@lists.xenproject.org Mon Mar 16 08:15:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 08:15:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255462.1550408 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w237A-0002nt-73; Mon, 16 Mar 2026 08:15:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255462.1550408; Mon, 16 Mar 2026 08: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 1w237A-0002nm-4B; Mon, 16 Mar 2026 08:15:52 +0000
Received: by outflank-mailman (input) for mailman id 1255462;
 Mon, 16 Mar 2026 08: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=6b3Y=BQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w2379-0002nQ-34
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 08:15:51 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5762b0cb-2110-11f1-b164-2bf370ae4941;
 Mon, 16 Mar 2026 09:15:49 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-b8f97c626aaso662576666b.2
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 01:15:49 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9791c108f9sm411538166b.8.2026.03.16.01.15.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Mar 2026 01:15:48 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5762b0cb-2110-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773648949; x=1774253749; 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=xTKMugorEyR3xlXed/uc5awOxdGIKpbnGckWGnd57Hk=;
        b=UBvEZzhqkebaAMwyhOBk2GFJTm2o/hCZQrG3McfTyIg06Tn8U7xxluVEhcKikF+90y
         muhwYbp9TbbcoQcwXSNH4HIjNBOdIgQ2VXZCl19Ms+HRSWoFUfihgQs2xp4ca/y0IhZc
         Jdu8G4SpTJSBt6UdvTu48V20rY50X8oPL60Yg1lI0WW159tdKFJM+5LdYq9w3HutNxGZ
         okBH0+e2iNxWnZJcKL/ALjaxBh+Nwea1JVQ7YsFd9QKLEUMQG9FyOBzQuyyObQnJphG8
         8XVRkM47Jfe7+WvGa/WyrniES//SMeebFoLP0IiNzmKfmbcBwhK9O2kGANJ49SMfonzs
         cF3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773648949; x=1774253749;
        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=xTKMugorEyR3xlXed/uc5awOxdGIKpbnGckWGnd57Hk=;
        b=lhkkz4mps680r7L91YoVjVdtaNCUUncOYfcrCpNY2IHFqFiIqtdH0eks//LavaqJV5
         8uf2NnYpyLtgw8bqZlH0OjBoOoZf5IBmieLwIPEfZ77wHuG5J3KjzXMhrsOM/Mh+kxOU
         LbBgc1H4TbBsdw5vqZg4Blv7vIt+8ykSVYbvG8UdMfMMDEqhlTFbLWOSr9SYzSY67f5z
         F3uSUKJe/nDJhkYaeUh9QYwQetFHojZ+F2YUwZ6UGk1MeO5IjPNOKk46TXEEbCOChFRI
         hCmQf5X4sMK8v3MK6PU83e1hfpxdM4XZXvgHuDV9wj5DE6saVjlLX0WqC4NGD7ACLLtK
         O/Dw==
X-Gm-Message-State: AOJu0YyWmKZGdGsagRUM5IQ11278SyBmaqFIMrxtD83HlwZs9JRLqbXA
	ng6smVya0vEjazKPCU0jV2c0hqAM78VoNErcyBSyAPTVpMeoK935IXK33uYMxy89Wsn/X4Rfp6I
	Lrw4z
X-Gm-Gg: ATEYQzzOWHt3NuNWm7eympb50wKcNDeoa/geuAyXNpCMZZ6DlAyptCsz5MGXopDFc4K
	LEDgzJO5Rb/97V0E0d/3rT/D3KEduIH3xeyQ5CGJZtyyZ2MxlzHOLZ8YhnIH/00ewxdKRh4FITz
	92Jd1W+y7i1+8VkwUd/YrRIOuUf4KB7dzTUr9YiMLJlL1wn6/u879cuPZhnUaBBZaEqHbR1KvRd
	8nva3e1NBwi8c7Y1O6aKXbB/SQXsu2SI5LZruNyBDyMG84HXdLuNjlky8IX4YjQBIbMbnuuUbfQ
	GD+xxbQNnkxPJjwnzmlMOnzJggzzc6wh+FknEgSJaLfhLMhQydDWOnoMgNqnSV16iRJ6QgVyACt
	hN5rLJ1thmtzHzGE/0cdUzxqoIcmWF0JhghHbSRAMbBWOtF+oV7KPp+Znd4da1c0DTwcrReuerU
	Nf7qoWCWdGtu4obHHkKtWfwpeJtxiEKvUyDWcMwDQV0lNGrTfu2kiPEBJjQAeUaJII47BT9Dz7s
	ILeEXoqTNbahfvRCp86VSeHkZm9yJb9uPAoWCyG2pwEeJ5UdN2Xa6BETu5YnmQE
X-Received: by 2002:a17:907:1187:b0:b96:f488:18f6 with SMTP id a640c23a62f3a-b976534685fmr568943266b.34.1773648948759;
        Mon, 16 Mar 2026 01:15:48 -0700 (PDT)
Message-ID: <c065d0bd-2cbd-438f-adda-9e17a8294727@suse.com>
Date: Mon, 16 Mar 2026 09:15:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 04/11] tools/xenstored: add GLOBAL_QUOTA_DATA record for
 live update
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-5-jgross@suse.com> <abREpWtSt0eLWo4q@l14>
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: <abREpWtSt0eLWo4q@l14>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------9RsVUVrsItfRZOnhc76LVYg3"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------9RsVUVrsItfRZOnhc76LVYg3
Content-Type: multipart/mixed; boundary="------------GQZBIOYk3CMRFAAwv8kNWMor";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>
Message-ID: <c065d0bd-2cbd-438f-adda-9e17a8294727@suse.com>
Subject: Re: [PATCH 04/11] tools/xenstored: add GLOBAL_QUOTA_DATA record for
 live update
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-5-jgross@suse.com> <abREpWtSt0eLWo4q@l14>
In-Reply-To: <abREpWtSt0eLWo4q@l14>

--------------GQZBIOYk3CMRFAAwv8kNWMor
Content-Type: multipart/mixed; boundary="------------16xZPGRaf8ZDujsNf46jHx8u"

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

T24gMTMuMDMuMjYgMTg6MDgsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBPbiBUaHUsIE1h
ciAwNSwgMjAyNiBhdCAwMjo1MjowMVBNICswMTAwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
Pj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnN0b3JlZC9kb21haW4uYyBiL3Rvb2xzL3hlbnN0
b3JlZC9kb21haW4uYw0KPj4gaW5kZXggYWNkY2FhNzY5ZS4uNjk0YWU1ODk3MyAxMDA2NDQN
Cj4+IC0tLSBhL3Rvb2xzL3hlbnN0b3JlZC9kb21haW4uYw0KPj4gKysrIGIvdG9vbHMveGVu
c3RvcmVkL2RvbWFpbi5jDQo+PiBAQCAtMTMzMiw2ICsxMzMyLDI3IEBAIGludCBkb19zZXRf
ZmVhdHVyZShjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLA0KPj4g
ICAJcmV0dXJuIDA7DQo+PiAgIH0NCj4+ICAgDQo+PiArc3RhdGljIGJvb2wgcGFyc2VfcXVv
dGFfbmFtZShjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25lZCBpbnQgKnFpZHgsDQo+PiArCQkJ
ICAgICB1bnNpZ25lZCBpbnQgKmlkeCkNCj4+ICt7DQo+PiArCXVuc2lnbmVkIGludCBxOw0K
PiANCj4gV2hhdCBkbyB5b3UgdGhpbmsgb2YgdXNpbmcgc29tZXRoaW5nIGxpa2U6DQo+ICAg
ICAgY29uc3QgY2hhciBzb2Z0X3ByZWZpeFtdID0gInNvZnQtIjsNCj4gICAgICBjb25zdCBz
aXplX3Qgc29mdF9wcmVmaXhfbGVuID0gc2l6ZW9mKHNvZnRfcHJlZml4KSAtIDE7DQo+IHRv
IGV4cGxhaW4gdGhlIGA1YCwgaGVyZSBhbmQgaW4gZS5nLiB0aGUgZnVuY3Rpb24gYnVpbGRf
cXVvdGFfZGF0YSgpID8NCj4gV2UgdXNlZCB0aGlzIGluIGxpYnhsIGluIG9uZSBwbGFjZToN
Cj4gICAgICBodHRwczovL2VsaXhpci5ib290bGluLmNvbS94ZW4vdjQuMjEuMC9zb3VyY2Uv
dG9vbHMvbGlicy9saWdodC9saWJ4bF9xbXAuYyNMMTI4OA0KPiANCj4gQnV0IGl0J3MgZmlu
ZSB0byBsZWF2ZSBpdCBsaWtlIHRoYXQsIGFzIHRoZSAnNSdzIGFyZSBjbG9zZSBlbm91Z2h0
IHRvDQo+IHRoZSBwcmVmaXggdGhhdCB3ZSBjYW4gZ3Vlc3MgZWFzbHkgZW5vdWdoLg0KDQpJ
IGNhbiBjaGFuZ2UgaXQsIGJ1dCBJJ2QgcHJlZmVyIHRvIHVzZSBtYWNyb3MgZm9yIHRoYXQg
cHVycG9zZS4NCg0KPiANCj4+ICsNCj4+ICsJaWYgKHN0cm5jbXAobmFtZSwgInNvZnQtIiwg
NSkpIHsNCj4+ICsJCSppZHggPSBRX0lEWF9IQVJEOw0KPj4gKwl9IGVsc2Ugew0KPj4gKwkJ
KmlkeCA9IFFfSURYX1NPRlQ7DQo+PiArCQluYW1lICs9IDU7DQo+PiArCX0NCj4+ICsJZm9y
IChxID0gMDsgcSA8IEFDQ19OOyBxKyspIHsNCj4+ICsJCWlmIChxdW90YV9hZG1bcV0ubmFt
ZSAmJiAhc3RyY21wKHF1b3RhX2FkbVtxXS5uYW1lLCBuYW1lKSkgew0KPj4gKwkJCSpxaWR4
ID0gcTsNCj4+ICsJCQlyZXR1cm4gZmFsc2U7DQo+PiArCQl9DQo+PiArCX0NCj4+ICsNCj4+
ICsJcmV0dXJuIHRydWU7DQo+PiArfQ0KPj4gKw0KPj4gICBzdGF0aWMgaW50IGNsb3NlX3hn
dF9oYW5kbGUodm9pZCAqX2hhbmRsZSkNCj4+ICAgew0KPj4gICAJeGVuZ250dGFiX2Nsb3Nl
KCooeGVuZ250dGFiX2hhbmRsZSAqKilfaGFuZGxlKTsNCj4+IEBAIC0yMDAxLDYgKzIwMjIs
NjEgQEAgdm9pZCByZWFkX3N0YXRlX2Nvbm5lY3Rpb24oY29uc3Qgdm9pZCAqY3R4LCBjb25z
dCB2b2lkICpzdGF0ZSkNCj4+ICAgCX0NCj4+ICAgfQ0KPj4gICANCj4+ICtzdGF0aWMgdW5z
aWduZWQgaW50IGdldF9xdW90YV9zaXplKHN0cnVjdCBxdW90YSAqcXVvdGEsIHVuc2lnbmVk
IGludCAqbGVuKQ0KPj4gK3sNCj4+ICsJdW5zaWduZWQgaW50IHE7DQo+PiArCXVuc2lnbmVk
IGludCBuID0gMDsNCj4+ICsNCj4+ICsJZm9yIChxID0gMDsgcSA8IEFDQ19OOyBxKyspIHsN
Cj4+ICsJCWlmICghcXVvdGFfYWRtW3FdLm5hbWUpDQo+PiArCQkJY29udGludWU7DQo+PiAr
CQlpZiAocXVvdGFbcV0udmFsW1FfSURYX0hBUkRdICE9IFFfVkFMX0RJU0FCTEVEKSB7DQo+
PiArCQkJbisrOw0KPj4gKwkJCSpsZW4gKz0gc3RybGVuKHF1b3RhX2FkbVtxXS5uYW1lKSAr
IDE7DQo+PiArCQl9DQo+PiArCQlpZiAocXVvdGFbcV0udmFsW1FfSURYX1NPRlRdICE9IFFf
VkFMX0RJU0FCTEVEKSB7DQo+PiArCQkJbisrOw0KPj4gKwkJCSpsZW4gKz0gc3RybGVuKHF1
b3RhX2FkbVtxXS5uYW1lKSArIDUgKyAxOw0KPiANCj4gVGhlIHZhbHVlIDUgaGVyZSBpc24n
dCBleHBsYWluZWQuIEEgY29tbWVudCB3b3VsZCBiZSBuaWNlLg0KDQpVc2luZyB0aGUgbWFj
cm8gbWVudGlvbmVkIGFib3ZlIHdpbGwgbWFrZSBpdCBtb3JlIGRlc2NyaXB0aXZlLg0KDQo+
IA0KPj4gKwkJfQ0KPj4gKwl9DQo+PiArDQo+PiArCXJldHVybiBuOw0KPj4gK30NCj4+ICsN
Cj4+ICtzdGF0aWMgdm9pZCBidWlsZF9xdW90YV9kYXRhKHN0cnVjdCBxdW90YSAqcXVvdGEs
IHVpbnQzMl90ICp2YWwsIGNoYXIgKm5hbWUpDQo+IA0KPiBJIGd1ZXNzIHdlIHdpbGwgbmVl
ZCBhIGxlYXAgb2YgZmFpdGggdG8gdHJ1c3QgdGhhdCBgdmFsYCBpcyBiaWcgZW5vdWdoLA0K
PiBhZnRlciBmaW5kaW5nIG91dCB0aGF0IGl0J3MgYWN0dWFsbHkgYW4gb3V0cHV0IG9mIG11
bHRpcGxlIHZhbHVlcywgYW5kDQo+IG5vdCBhbiBpbnB1dCBvZiBhIHNpbmdsZSB2YWx1ZS4N
Cg0KVGhhdCdzIHdoYXQgZ2V0X3F1b3RhX3NpemUoKSBpcyBjYWxjdWxhdGluZy4NCg0KPiAN
Cj4gQW5kIGBuYW1lYCBzZWVtcyB0byBhbHNvIGJlIGFuIG91dHB1dCwgYW5kIHRoaXMgaXMg
YWN0dWFsbHkgaW1wb3NzaWJsZQ0KPiB0byBndWVzcyBmcm9tIHRoZSBwcm90b3R5cGUuDQoN
ClRydWUuIFdoYXQgYWJvdXQgbmFtZXM/DQoNCj4gDQo+PiArew0KPj4gKwl1bnNpZ25lZCBp
bnQgcTsNCj4+ICsJdW5zaWduZWQgaW50IG4gPSAwOw0KPj4gKw0KPj4gKwlmb3IgKHEgPSAw
OyBxIDwgQUNDX047IHErKykgew0KPj4gKwkJaWYgKCFxdW90YV9hZG1bcV0ubmFtZSkNCj4+
ICsJCQljb250aW51ZTsNCj4+ICsJCWlmIChxdW90YVtxXS52YWxbUV9JRFhfSEFSRF0gIT0g
UV9WQUxfRElTQUJMRUQpIHsNCj4+ICsJCQl2YWxbbisrXSA9IHF1b3RhW3FdLnZhbFtRX0lE
WF9IQVJEXTsNCj4+ICsJCQlzdHJjcHkobmFtZSwgcXVvdGFfYWRtW3FdLm5hbWUpOw0KPj4g
KwkJCW5hbWUgKz0gc3RybGVuKG5hbWUpICsgMTsNCj4+ICsJCX0NCj4+ICsJCWlmIChxdW90
YVtxXS52YWxbUV9JRFhfU09GVF0gIT0gUV9WQUxfRElTQUJMRUQpIHsNCj4+ICsJCQl2YWxb
bisrXSA9IHF1b3RhW3FdLnZhbFtRX0lEWF9TT0ZUXTsNCj4+ICsJCQlzdHJjcHkobmFtZSwg
InNvZnQtIik7DQo+PiArCQkJc3RyY3B5KG5hbWUgKyA1LCBxdW90YV9hZG1bcV0ubmFtZSk7
DQo+PiArCQkJbmFtZSArPSBzdHJsZW4obmFtZSkgKyAxOw0KPj4gKwkJfQ0KPj4gKwl9DQo+
PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyB2b2lkIHBhcnNlX3F1b3RhX2RhdGEoY29uc3QgdWlu
dDMyX3QgKnZhbCwgY29uc3QgY2hhciAqbmFtZSwNCj4+ICsJCQkgICAgIHVuc2lnbmVkIGlu
dCBuLCBzdHJ1Y3QgcXVvdGEgKnF1b3RhKQ0KPj4gK3sNCj4+ICsJdW5zaWduZWQgaW50IGks
IHEsIGlkeDsNCj4+ICsNCj4+ICsJZm9yIChpID0gMDsgaSA8IG47IGkrKykgew0KPj4gKwkJ
aWYgKCFwYXJzZV9xdW90YV9uYW1lKG5hbWUsICZxLCAmaWR4KSkNCj4+ICsJCQlxdW90YVtx
XS52YWxbaWR4XSA9IHZhbFtpXTsNCj4+ICsJCW5hbWUgKz0gc3RybGVuKG5hbWUpICsgMTsN
Cj4gDQo+IFNvIGZvciBgdmFsYCwgd2UgaGF2ZSBhIHNpemUuIEJ1dCwgd2UgZG9uJ3QgaGF2
ZSBhIHNpemUgZm9yIGBuYW1lYCwgYXJlDQo+IHdlIHN1cmUgdGhhdCBpdCdzIHNhZmUgdG8g
a2VlcCByZWFkaW5nIHBhc3QgYE5VTGAgY2hhcmFjdGVycyA/IElzIHRoZQ0KPiBzaXplIG9m
IG5hbWUgYXZhaWxhYmxlIHNvbWV3aGVyZT8NCg0KWWVzLiBnZXRfcXVvdGFfc2l6ZSgpIGNh
bGN1bGF0ZWQgdGhhdCBhcyB3ZWxsLg0KDQo+IA0KPj4gKwl9DQo+PiArfQ0KPj4gKw0KPj4g
ICBzdGF0aWMgaW50IGR1bXBfc3RhdGVfZG9tYWluKGNvbnN0IHZvaWQgKmssIHZvaWQgKnYs
IHZvaWQgKmFyZykNCj4+ICAgew0KPj4gICAJc3RydWN0IGRvbWFpbiAqZG9tYWluID0gdjsN
Cj4+IEBAIC0yMDQ5LDYgKzIxMjUsNTMgQEAgdm9pZCByZWFkX3N0YXRlX2RvbWFpbihjb25z
dCB2b2lkICpjdHgsIGNvbnN0IHZvaWQgKnN0YXRlLCB1bnNpZ25lZCBpbnQgdmVyc2lvbikN
Cj4+ICAgCQlkb21haW4tPmZlYXR1cmVzID0gc2QtPmZlYXR1cmVzOw0KPj4gICB9DQo+PiAg
IA0KPj4gK2NvbnN0IGNoYXIgKmR1bXBfc3RhdGVfZ2xiX3F1b3RhKEZJTEUgKmZwKQ0KPj4g
K3sNCj4+ICsJc3RydWN0IHhzX3N0YXRlX3JlY29yZF9oZWFkZXIgKmhlYWQ7DQo+PiArCXN0
cnVjdCB4c19zdGF0ZV9nbGJfcXVvdGEgKmdsYjsNCj4+ICsJdm9pZCAqcmVjb3JkOw0KPj4g
Kwl1bnNpZ25lZCBpbnQgbl9xdW90YTsNCj4+ICsJdW5zaWduZWQgaW50IGxlbiA9IHNpemVv
ZigqZ2xiKTsNCj4+ICsJc2l6ZV90IHJldDsNCj4+ICsNCj4+ICsJbl9xdW90YSA9IGdldF9x
dW90YV9zaXplKHF1b3RhcywgJmxlbik7DQo+IA0KPiBTbywgZ2V0X3F1b3RhX3NpemUgaXMg
YWN0dWFsbHkgYW4gImFkZCIgdGhlIHNpemUgdG8gdGhpcyB2YXJpYWJsZSwgYW5kDQo+IG5v
dCAic3RvcmUiIHRoZSBzaXplIGluIHRoaXMgdmFyaWFibGUuIFRoYXQncyBub3QgY29uZnVz
aW5nIGF0IGFsbC4NCg0KV291bGQgaXQgYmUgYmV0dGVyIGlmIGxlbiBpcyByZW5hbWVkIHRv
IG5hbWVzX2xlbiAoYm90aCBoZXJlIGFuZCB0aGUNCnBhcmFtZXRlciBvZiBnZXRfcXVvdGFf
c2l6ZSgpKT8NCg0KPiANCj4+ICsJbGVuICs9IG5fcXVvdGEgKiBzaXplb2YoZ2xiLT5xdW90
YV92YWxbMF0pOw0KPj4gKwlsZW4gPSBST1VORFVQKGxlbiwgMyk7DQo+PiArDQo+PiArCXJl
Y29yZCA9IHRhbGxvY19zaXplKE5VTEwsIGxlbiArIHNpemVvZigqaGVhZCkpOw0KPj4gKwlp
ZiAoIXJlY29yZCkNCj4+ICsJCXJldHVybiAiRHVtcCBnbG9iYWwgcXVvdGEgYWxsb2NhdGlv
biBlcnJvciI7DQo+PiArDQo+PiArCWhlYWQgPSByZWNvcmQ7DQo+PiArCWhlYWQtPnR5cGUg
PSBYU19TVEFURV9UWVBFX0dMQl9RVU9UQTsNCj4+ICsJaGVhZC0+bGVuZ3RoID0gbGVuOw0K
Pj4gKw0KPj4gKwlnbGIgPSAoc3RydWN0IHhzX3N0YXRlX2dsYl9xdW90YSAqKShoZWFkICsg
MSk7DQo+PiArCWdsYi0+bl9kb21fcXVvdGEgPSBuX3F1b3RhOw0KPj4gKwlnbGItPm5fZ2xv
Yl9xdW90YSA9IDA7DQo+IA0KPiBTaG91bGRuJ3QgYG5fcXVvdGFgIGJlIGFzc2lnbmVkIHRv
IGBuX2dsb2JfcXVvdGFgIGluc3RlYWQ/IFdlIGRvbid0IGhhdmUNCj4gcGVyLWRvbWFpbiBx
dW90YSB5ZXQsIGFuZCBvbmx5IGhhdmUgZ2xvYmFsIHF1b3RhLCByaWdodD8NCg0KV2UgYXJl
IGFwcGx5aW5nIGFsbCBnbG9iYWwgcXVvdGEgdmFsdWVzIHRvIHRoZSBkb21haW5zLCBzbyB0
aGlzIGlzIGZpbmUuDQoNCkl0IGlzbid0IGFib3V0IHdoZXJlIHdlIHN0b3JlIHRoZSBxdW90
YSAocGVyIGRvbWFpbiBvciBnbG9iYWxseSksIGJ1dA0KaG93IHRoZSBxdW90YSB2YWx1ZXMg
YXJlIHVzZWQuDQoNCkl0IHdvdWxkIGJlIHBvc3NpYmxlIHRvIGhhdmUgZS5nLiAidG90YWxf
bWVtb3J5IiBvciAidG90YWxfbm9kZXMiIHF1b3RhDQp3aGljaCB3b3VsZCBub3QgYXBwbHkg
dG8gc2luZ2xlIGRvbWFpbnMsIGJ1dCB0byBhbGwgb2YgeGVuc3RvcmUuIFRob3NlDQp3b3Vs
ZCBuZWVkIHRvIGJlIGNvdW50ZWQgYnkgbl9nbG9iX3F1b3RhLg0KDQo+IA0KPj4gKw0KPj4g
KwlidWlsZF9xdW90YV9kYXRhKHF1b3RhcywgZ2xiLT5xdW90YV92YWwsDQo+PiArCQkJIChj
aGFyICopKGdsYi0+cXVvdGFfdmFsICsgbl9xdW90YSkpOw0KPj4gKw0KPj4gKwlyZXQgPSBm
d3JpdGUocmVjb3JkLCBsZW4gKyBzaXplb2YoKmhlYWQpLCAxLCBmcCk7DQo+PiArDQo+PiAr
CXRhbGxvY19mcmVlKHJlY29yZCk7DQo+PiArDQo+PiArCWlmIChyZXQgIT0gMSB8fCBkdW1w
X3N0YXRlX2FsaWduKGZwKSkNCj4+ICsJCXJldHVybiAiRHVtcCBnbG9iYWwgcXVvdGEgZXJy
b3IiOw0KPj4gKw0KPj4gKwlyZXR1cm4gTlVMTDsNCj4+ICt9DQo+PiArDQo+PiArdm9pZCBy
ZWFkX3N0YXRlX2dsYl9xdW90YShjb25zdCB2b2lkICpjdHgsIGNvbnN0IHZvaWQgKnN0YXRl
KQ0KPj4gK3sNCj4+ICsJY29uc3Qgc3RydWN0IHhzX3N0YXRlX2dsYl9xdW90YSAqZ2xiID0g
c3RhdGU7DQo+PiArCXVuc2lnbmVkIGludCBuX3F1b3RhID0gZ2xiLT5uX2RvbV9xdW90YSAr
IGdsYi0+bl9nbG9iX3F1b3RhOw0KPj4gKwljb25zdCBjaGFyICpuYW1lID0gKGNvbnN0IGNo
YXIgKikoZ2xiLT5xdW90YV92YWwgKyBuX3F1b3RhKTsNCj4+ICsNCj4+ICsJcGFyc2VfcXVv
dGFfZGF0YShnbGItPnF1b3RhX3ZhbCwgbmFtZSwgbl9xdW90YSwgcXVvdGFzKTsNCj4+ICt9
DQo+PiArDQoNCkp1ZXJnZW4NCg==
--------------16xZPGRaf8ZDujsNf46jHx8u
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-----

--------------16xZPGRaf8ZDujsNf46jHx8u--

--------------GQZBIOYk3CMRFAAwv8kNWMor--

--------------9RsVUVrsItfRZOnhc76LVYg3
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/Ey8FAmm3vDQFAwAAAAAACgkQsN6d1ii/Ey+/
Ewf/TM+KSC7+k3yhVk4siGJzL5AjMsX6RC6RZoVXaNTw2ccpDqyNnnY3vfaMie/yVuevb1DrCz1t
r89ZsORAu3jwshurAbssyWoXUXTC/XCwWXQ2ag2vZeIt8DV9g9TqWuCpd/h78aUkPILeChbOpuIP
KaajCJ6qX7I1et7b6GXWwPgvUvV3TlBH2SzEXGV9+qkRNvGCuCP4eeLwSLpMNLqmUEyp/qPkqpPB
e72/SIvtZK8ZKa20NRcGtnCdF8Usy2mxnvVnIje8I1P4OUr0xUHGp5rREo+RCm5hnYhO7p8yKhfC
V1QcFGu7wvAx1I6OT4RlEUfh2fMzSvIDAXMmeFRVhA==
=NDOd
-----END PGP SIGNATURE-----

--------------9RsVUVrsItfRZOnhc76LVYg3--


From xen-devel-bounces@lists.xenproject.org Mon Mar 16 08:17:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 08:17:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255470.1550418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w238X-0003I2-GK; Mon, 16 Mar 2026 08:17:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255470.1550418; Mon, 16 Mar 2026 08:17:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w238X-0003Hv-DN; Mon, 16 Mar 2026 08:17:17 +0000
Received: by outflank-mailman (input) for mailman id 1255470;
 Mon, 16 Mar 2026 08:17: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=6b3Y=BQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w238W-0003Hi-9y
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 08:17:16 +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 89fda588-2110-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Mar 2026 09:17:14 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-664f8bef4e7so1490099a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 01:17:14 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b97bd361a61sm134341666b.32.2026.03.16.01.17.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Mar 2026 01:17:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 89fda588-2110-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773649034; x=1774253834; 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=3VoomB7eXvq3W7Sgap3NmFlgw13VsmLnhaPpsSNcl9M=;
        b=AabnncfIY23U/2bjk2EfBM14JKzq70VWCiPFltFuETeJov3t4MvylWpOBAQIATnO4Z
         im6dFpr8Kz1KNw2/4bSxafB/sXtHbL4Klz1Us4bwc+cL44JxL7tGZYGokjshjY+8V0x0
         vXhS2y88BmBsajeb1ofAF8eJtVD5rV3MgKtf6OvTNYur+NCHI1edU8jIpaqS2XchSdN+
         cB9gl3x+387idG2vilAMs+0zVS7QZjhqACNuxn5J5EmK/4pbrRThvSROvubG37Lf31so
         HY4/jAFR3+thWDn9wsqirx8SyWno065dsYL/e3Seh7U70oymtIF+uCsC33AN6jNdujOm
         Bzkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773649034; x=1774253834;
        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=3VoomB7eXvq3W7Sgap3NmFlgw13VsmLnhaPpsSNcl9M=;
        b=k+6kMP/13lMd5hvcAu/+1/34b3PqbDAPJmF9Tje+PBxJBaCZ4MeVxHblwFh0piqtig
         pfAuGgU2DlK6FTSBZk1GIM0IZlxxB6MUbuHz1nHsRhvRyiUgXqzwZ+uUEIlzhLSzLL0W
         hnm09Y/E8AISKy+9x18wSz4FnSbfCOR60ywSwf27Q7eMpkm0eY7GYHh+aMUh7MI+RCKy
         2vcDDe20XT57353jmmXtPSpLMYneGuPMWgqoe0FANjAiEwWOqaN39AbyrbVT0Owva5NV
         Por+jPGFzYDo9zfQxr9CX6h6dOwDQZBXm29WzMPqxmbCUqtwgmlMG0RP6x8S//01AfFJ
         AAMA==
X-Gm-Message-State: AOJu0YyOmcKroQLmhUFmIdQi2TpmcakwNDpMTdoUfsTnCAjs2BPImGlu
	mlXVqN+C93vYtcx3hEsJB2HvVVGot77EFZATMSqdW6cwW5KW+W1VI/O04hPieBtqtGE=
X-Gm-Gg: ATEYQzy55fqXKfWYId460f6veZXlZHyeOe2D4/jNemQq7QwqEg7o9vS7bTxsmSPx1RQ
	mL6sApgUaQ6DtO0bVIWKiUJSIHJGwo8Uw/TjDHZo92WNSKaBTqtOw8OXiLaG8qZ37rt0JDSO5D+
	MPwsgjSMEX05ctP6h1jhkW2SvqSIREWlnqRq1oT+m9kEQ/2E4UUxUEZ9LNlsV+Hdmdz1X0BZIv9
	5hnEfAbngYsZ9zWKXmupNG2/dWRNSIqPA3/bibWQjqP/aKTasaMClHO7UwNGGccWJua7/djJMmS
	F++Ht5PZS6+3IJ/mLcwPz0Pih4PiJPnUK+Ltr8iZmvv2JW6ITgnDx7WYxbIZpy/8MgiJ5uD6PYc
	lXXmHwfKvTxTmyoW1qYw4bnqMeNz8P0PC3KXrFxuXSP8hOCCiIvhWMjDl9XvwJfbvX6cN+VSZsD
	6LYac0h3k7AWAdZBVXn5JelChyAVhH1r3mmI/2eaiCtKMzzeNQOaAY10mZpT3UPnNq5J/hpF2EI
	io3ySfHGUCUzj+7gby/WytUSaUy+oMkwM6m7ea9IYQ+cgzSuoESxQ==
X-Received: by 2002:a17:907:7f8e:b0:b97:b720:41a1 with SMTP id a640c23a62f3a-b97b7205b94mr171689766b.38.1773649033736;
        Mon, 16 Mar 2026 01:17:13 -0700 (PDT)
Message-ID: <3c9f335a-3cfe-4b2f-ad1a-d71df96431a1@suse.com>
Date: Mon, 16 Mar 2026 09:17:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 06/11] tools/xenstored: add infrastructure for per-domain
 quotas
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-7-jgross@suse.com> <abRKJPlQOWgyxIdb@l14>
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: <abRKJPlQOWgyxIdb@l14>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------DzdItlMd0Ci2Z7HIfJdTtWdW"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------DzdItlMd0Ci2Z7HIfJdTtWdW
Content-Type: multipart/mixed; boundary="------------xZ72YpTWDnjRSDGBxcIJjcTq";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>
Message-ID: <3c9f335a-3cfe-4b2f-ad1a-d71df96431a1@suse.com>
Subject: Re: [PATCH 06/11] tools/xenstored: add infrastructure for per-domain
 quotas
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-7-jgross@suse.com> <abRKJPlQOWgyxIdb@l14>
In-Reply-To: <abRKJPlQOWgyxIdb@l14>

--------------xZ72YpTWDnjRSDGBxcIJjcTq
Content-Type: multipart/mixed; boundary="------------SV0hAB8JHZiONhrdYO0XkOkv"

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

T24gMTMuMDMuMjYgMTg6MzIsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBPbiBUaHUsIE1h
ciAwNSwgMjAyNiBhdCAwMjo1MjowM1BNICswMTAwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
Pj4gQWRkIHRoZSBuZWVkZWQgc3RydWN0dXJlcyBhbmQgaGVscGVyIGZ1bmN0aW9ucyBmb3Ig
c3VwcG9ydGluZyBxdW90YXMNCj4+IHBlciBkb21haW4uDQo+IA0KPiBJIGRvbid0IHNlZSBh
bnkgbmV3IHN0cnVjdCBvciBuZXcgaGVscGVycy4gV2hhdCB0aGlzIHBhdGNoIGRvIG5vdyBp
cw0KPiB1cGRhdGluZyB0aGUgZXhpc3RpbmcgaGVscGVycyB0byB0YWtlIHBlci1kb21haW4g
cXVvdGEgaW50byBhY2NvdW50LiBJDQo+IGd1ZXNzIHRoYXQgY29tbWVudCB3YXMgZnJvbSBh
biBlYXJsaWVyIGl0ZXJhdGlvbiBvZiB0aGUgcGF0Y2ggYmVmb3JlIGl0DQo+IGdvdCBzcGxp
dCBpbnRvIHNtYWxsZXIgb25lcywgYW5kIGVhc2llciB0byByZXZpZXcuDQoNCkluZGVlZC4N
Cg0KV2lsbCBjaGFuZ2UgdGhlIGNvbW1pdCBtZXNzYWdlLg0KDQo+IA0KPj4NCj4+IFNpZ25l
ZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCj4gDQo+IFJldmll
d2VkLWJ5OiBBbnRob255IFBFUkFSRCA8YW50aG9ueS5wZXJhcmRAdmF0ZXMudGVjaD4NCg0K
VGhhbmtzLA0KDQoNCkp1ZXJnZW4NCg==
--------------SV0hAB8JHZiONhrdYO0XkOkv
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-----

--------------SV0hAB8JHZiONhrdYO0XkOkv--

--------------xZ72YpTWDnjRSDGBxcIJjcTq--

--------------DzdItlMd0Ci2Z7HIfJdTtWdW
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/Ey8FAmm3vIgFAwAAAAAACgkQsN6d1ii/Ey82
SQgAjTZsZlDThKdE2eJjoTHzWkicbz3nwz24npJLsYM5WMAFAeRBSxXX/NdSrCfICm0C6nUgryFs
YwLMgfoe43tDcmz7SfCTpUAZOdeXNnWD7Xl77nZHQQHr/gXt6oWZGTxKzKVGy7NocWDaAbHkhs2j
OiRSNn5FnhrVIyfwprm3ZdQ6Iuk82rD1/SrWlls+qOliUYpn3cjz9+eIv1fAXDDTP4hcpQvhPYIx
K84ZpPm6eKaFXCjr4kKyNoPeerqaAgWV1m1LrjsAzkvOG+J1krt/7Rsvajf//6By3meKLWdcPq51
sEllYXV28Lk32Iqj9qVyiyKKZli+Krq2TXl0iiZQgg==
=gKkS
-----END PGP SIGNATURE-----

--------------DzdItlMd0Ci2Z7HIfJdTtWdW--


From xen-devel-bounces@lists.xenproject.org Mon Mar 16 08:18:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 08:18:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255479.1550426 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w239o-0003uQ-TM; Mon, 16 Mar 2026 08:18:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255479.1550426; Mon, 16 Mar 2026 08:18:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w239o-0003uJ-QN; Mon, 16 Mar 2026 08:18:36 +0000
Received: by outflank-mailman (input) for mailman id 1255479;
 Mon, 16 Mar 2026 08:18: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=6b3Y=BQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w239o-0003uB-1i
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 08:18:36 +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 b94ff07b-2110-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Mar 2026 09:18:33 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-b979d16dd0cso213036566b.1
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 01:18:33 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b976cdb1d20sm518700466b.41.2026.03.16.01.18.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Mar 2026 01:18:32 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b94ff07b-2110-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773649113; x=1774253913; 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=CvDuAouVbU+9uOzuCq2awZj3v5+z7MwPRUHgf/QlgUA=;
        b=EVZLWaB7n4kg4TS7VRkMTGaGpy9S7XOSfcRLDmrDFPEOV81sADtKJLf62YIm1ZN6PP
         zNvyTW8lKBPucapSeLrwgb6UxHBokEtWWDMDklvEvibJSu1m7NiqMn+07nMw/mV2i0p4
         GtUAm7hF1q+ugEqR8CjVlofA7Pd1uzCcBTDoaqz8ger+OTZ8PVr2Uw5/7HevE/ntK0pf
         fLxjV+az/eKiNTyEtVqfW3fc2al5Pr50noVvmcDdlQX95gF3BayYvXrrtAMhcd/GXKLh
         c2Af3Ecnl9/Y+CN7tjfb2ZrFJ730F7kgenZx8Rh/4+Qlpc2tXNkRkUyvixPWG0ulvvZh
         gnqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773649113; x=1774253913;
        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=CvDuAouVbU+9uOzuCq2awZj3v5+z7MwPRUHgf/QlgUA=;
        b=fSxK0bM2aafyZ2V5n3rnUCat0Vy8/uhiK+51ma/NTLnLIT1T10HErUOE3hvzHQq6gY
         Wub6pw5c9SQJTs6rdX277D0xGpBP0Uql+C6RN7vdGKgTbAs7w3pyCD7wIGRHKn0AfLxk
         /cDc4LgFPRN1tnpRpfsVtlm4/DxXdaziXtDiFVJYjzNOSF8viKhWKW47fwnLRBr7YuFT
         /jykiXwF9RPVV+l5CDtm/9JtV0DDZcxho0IZMbecTZvXyQIPLCpiKY7slJBHmYxt6tOZ
         ESiY0QKE+lVGPoLL44kX5PW9R/GbLLlYibLEe91g0SdueNQQwOajDlLdLKqhUP5prv6I
         A6FQ==
X-Forwarded-Encrypted: i=1; AJvYcCUaZXq8YGYlDeQ1UmH/GVlmZPVmKBfI9/MvVrkSOhfmn16mamwPbmvDOceJWVceGcbJPvO//wPycfs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxQsRX3Rv9UnR5apCWYg1uke9yOg5pGBBEgguFeHWo8p032eu1J
	Ay1jr+9P8fqlionwrPtHBOK6eY0CbDJt6QJbyx5D8lGBC3gqIOB51VsiB0pZAhl8Jys=
X-Gm-Gg: ATEYQzw9hcBJZ4zDtv3y4f2f9dvMGJLHbtTTtflX6uNuEpEPMe1CIPLTFi6Z0yIXEq+
	/6GEf+fZNM4s7ZmFkYz4I6rRAeR0xecyWyKTgVXXI0zdldRGeBmVYMZyXgkOMidL5GmmKIibHCF
	S8Ay+5nrAZu31McwM/aoMLTGzyGBou2ygfIWgF7lJX2diGjo6gxfn3LGE83a1I8f9+/9EAHciHy
	qrWkjn04PnQfrcYZ9R5IYr45pMdKKxv0nDFyh9mNVkFreQsab7Ns72L9LwOwfYE2YZ6DiMLj9dj
	FjSzEePqEaU6q6AxD11P1Pwhy+smUESM8nRQC43IL49KaY9boBu8FSy2gu4BGSW4Ortx+p0Z/oW
	LtgD7ppi/q9Zh2ZQjy+rcxlqxiKhZwmeklzJW8fEiBAXuGD1nLha5SGuTTH224WnkiLZob2j60n
	ZLUAt1yEdfRXyYfLVzH/b/8lc0demqKkuHBaMYwbhqOUurLf5HKlHQn0+JVj0JkRVHyvk+15XQG
	EDAJdI5L0oYRzd4JCGdaLKKoGlc81Y+wrkPYi8APTdso4K3Tg7WTQ==
X-Received: by 2002:a17:907:934b:b0:b83:1433:78de with SMTP id a640c23a62f3a-b9764f4b53emr687528866b.12.1773649112987;
        Mon, 16 Mar 2026 01:18:32 -0700 (PDT)
Message-ID: <d39a245d-695e-4011-aabc-75faca955a97@suse.com>
Date: Mon, 16 Mar 2026 09:18:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/11] tools/xenstored: add central quota check functions
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: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-3-jgross@suse.com>
 <735cfce6-28db-4fb9-9e0d-d3f3f18403a2@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: <735cfce6-28db-4fb9-9e0d-d3f3f18403a2@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------poJWC87c8uR5WDB2ZmAqBq6i"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------poJWC87c8uR5WDB2ZmAqBq6i
Content-Type: multipart/mixed; boundary="------------DComwpie8X70GXGm78gsFI8o";
 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: <d39a245d-695e-4011-aabc-75faca955a97@suse.com>
Subject: Re: [PATCH 02/11] tools/xenstored: add central quota check functions
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-3-jgross@suse.com>
 <735cfce6-28db-4fb9-9e0d-d3f3f18403a2@amd.com>
In-Reply-To: <735cfce6-28db-4fb9-9e0d-d3f3f18403a2@amd.com>

--------------DComwpie8X70GXGm78gsFI8o
Content-Type: multipart/mixed; boundary="------------6Hi0Ced0vbUZxngCR0nlQQZ0"

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

T24gMTMuMDMuMjYgMjI6MjIsIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IE9uIDIwMjYtMDMt
MDUgMDg6NTEsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBBZGQgY2VudHJhbCBmdW5jdGlv
bnMgZm9yIGNoZWNraW5nIGEgdmFsdWUgKGVpdGhlciBhbiBhYnNvbHV0ZSBvbmUgb3INCj4+
IHRoZSBjdXJyZW50IGRvbWFpbiB2YWx1ZSBwbHVzIGFuIG9mZnNldCkgYWdhaW5zdCBhIHNw
ZWNpZmljIHF1b3RhLg0KPj4NCj4+IFRoaXMgaXMgaW4gcHJlcGFyYXRpb24gb2YgaW50cm9k
dWNpbmcgcGVyLWRvbWFpbiBxdW90YS4NCj4+DQo+PiBUaGUgcmVxdWlyZWQgY2hhbmdlcyBh
bGxvdyB0byBkcm9wIHRoZSAidXBkYXRlIiBwYXJhbWV0ZXIgZnJvbQ0KPj4gZG9tYWluX25i
ZW50cnlfZml4KCkuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdy
b3NzQHN1c2UuY29tPg0KPiANCj4+IGRpZmYgLS1naXQgYS90b29scy94ZW5zdG9yZWQvZG9t
YWluLmMgYi90b29scy94ZW5zdG9yZWQvZG9tYWluLmMNCj4+IGluZGV4IGU0NTNiMzA2MWYu
LjFkZjkyNjVhZDUgMTAwNjQ0DQo+PiAtLS0gYS90b29scy94ZW5zdG9yZWQvZG9tYWluLmMN
Cj4+ICsrKyBiL3Rvb2xzL3hlbnN0b3JlZC9kb21haW4uYw0KPj4gQEAgLTM4OSw2ICszODks
MjUgQEAgdm9pZCB3cmxfYXBwbHlfZGViaXRfdHJhbnNfY29tbWl0KHN0cnVjdCBjb25uZWN0
aW9uICpjb25uKQ0KPj4gwqDCoMKgwqDCoCB3cmxfYXBwbHlfZGViaXRfYWN0dWFsKGNvbm4t
PmRvbWFpbik7DQo+PiDCoCB9DQo+PiArc3RhdGljIGJvb2wgZG9tYWluX2NoZWNrX3F1b3Rh
X3ZhbChzdHJ1Y3QgZG9tYWluICpkLCBlbnVtIGFjY2l0ZW0gd2hhdCwNCj4+ICvCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgaW50IHZhbCkNCj4+ICt7
DQo+PiArwqDCoMKgIHVuc2lnbmVkIGludCBxdW90YSA9IGhhcmRfcXVvdGFzW3doYXRdLnZh
bDsNCj4+ICsNCj4+ICvCoMKgwqAgaWYgKCFxdW90YSB8fCAhZG9taWRfaXNfdW5wcml2aWxl
Z2VkKGQtPmRvbWlkKSkNCj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gZmFsc2U7DQo+PiAr
DQo+PiArwqDCoMKgIHJldHVybiB2YWwgPj0gcXVvdGE7DQo+IA0KPiBQZXJzb25hbGx5LCBJ
IGRvbid0IGxpa2UgdGhlIG5hbWluZyBvZiAqY2hlY2sqIHdoZXJlIHRoZSAiZ29vZCIgcmV0
dXJuIGlzIA0KPiBmYWxzZS7CoCBUaGF0IHNlZW1zIGJhY2t3YXJkcyBmcm9tIHdoYXQgSSBl
eHBlY3QuwqAgU28gSSdkIHN1Z2dlc3QgZWl0aGVyIGZsaXBwaW5nIA0KPiB0aGUgcmV0dXJu
IHZhbHVlIG9yIHJlbmFtaW5nLsKgIGRvbWFpbl9xdW90YV9mYWlsKCkgb3Igc29tZXRoaW5n
Pw0KDQpJJ2xsIGdvIHdpdGggZG9tYWluX3F1b3RhX2V4Y2VlZGVkKCkuDQoNClRoYW5rcywN
Cg0KDQpKdWVyZ2VuDQo=
--------------6Hi0Ced0vbUZxngCR0nlQQZ0
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-----

--------------6Hi0Ced0vbUZxngCR0nlQQZ0--

--------------DComwpie8X70GXGm78gsFI8o--

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

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

wsB3BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmm3vNgFAwAAAAAACgkQsN6d1ii/Ey83
5QfwmSWuOABUfgfOM8bR+GiN2RyafjIFbeUNMyz2qKL1RWXAVvHDrmfZfzHgtjtE1VJmbtKhwR42
CAUzvuHTesuqujITUm1Kw2NmgbMJWnKAuipljKHcE7IhLzl11JO2xl+gJjJaMVWmAqVY9lT8emgk
HjCHXPLxeucMn5KMiwVWRfzySVzd2BjPUW/+NPKGN95io32faTTgAhrRgGDs9GtCNm1v7m+JWBPg
kbU4+SfFA+Wzy5zwcInpJadI9KgMZxmkXWGXHg0rhZgCPMYzqAU74FNGKOyk9iUxnO1EA3eaf4hK
+MUChgBoH2XIDzO4SokoZ4TRLupRS537TNDBrOo=
=hnYW
-----END PGP SIGNATURE-----

--------------poJWC87c8uR5WDB2ZmAqBq6i--


From xen-devel-bounces@lists.xenproject.org Mon Mar 16 11:17:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 11:17:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255501.1550436 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w25wj-00080b-3d; Mon, 16 Mar 2026 11:17:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255501.1550436; Mon, 16 Mar 2026 11:17:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w25wj-00080U-0C; Mon, 16 Mar 2026 11:17:17 +0000
Received: by outflank-mailman (input) for mailman id 1255501;
 Mon, 16 Mar 2026 11:17: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=cZEx=BQ=bounce.vates.tech=bounce-md_30504962.69b7e6ac.v1-f9e7604dea514ce6a47de6ca2a96bfec@srs-se1.protection.inumbo.net>)
 id 1w25wg-00080D-TQ
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 11:17:15 +0000
Received: from mail134-15.atl141.mandrillapp.com
 (mail134-15.atl141.mandrillapp.com [198.2.134.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a75eee81-2129-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Mar 2026 12:17:01 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-15.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4fZCGh4H9jzPm0YZj
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 11:17:00 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 f9e7604dea514ce6a47de6ca2a96bfec; Mon, 16 Mar 2026 11:17: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: a75eee81-2129-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773659820; x=1773929820;
	bh=+jyFTwFYuserZEOMpVEgWJSZYL1w2mjTqGK6jzypT0I=;
	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/rioPjRFM71JvbNPuslFzKgTlmrGWg2V8o4bkdM6WxuijC+eK6DGxOQn47645q/N
	 czv3nhJ69suuZzBLBWAgD8jLQrfbRGEQiDnN7HAj09jRZMooModCGhtsptThXilng+
	 PCC0WLPbCHm64zQA+MjGa/aYzqP3gb5kMJsWQr0RDf1ux414eO/M3ICXhsl1DhDPRe
	 vsoDz2axejzYZI0yw1InI+SZX7PVlwZ3KzbF2oSKqpucy+qXTMbHB7EXRpEbV/S2si
	 hh1bQhQXAc/63UP+48v17qmAeo+xwQwPaXmsri7MERPf+tSrXRTu3Xujsepmt/KC8l
	 ArFkIhiF3gj7w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773659820; x=1773920320; i=julian.vetter@vates.tech;
	bh=+jyFTwFYuserZEOMpVEgWJSZYL1w2mjTqGK6jzypT0I=;
	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=DOrnxcJNpUJbY4mR1svKfLZ8HBP7FvExNnXxzF7n0rPr65bHWrqaAh4E3URo9aeIj
	 FucUDuZkR/As4TdHB8yf1lC0zqgdzPc6n6w8TG7XkBlU9P4NOxSufBPKodIwZ9w6da
	 tp3GyFkJMh+TSkE1v/f5xnDBnz307aVsH62yVTTNleiw28oTNiHQdEkIXxYpIs8xON
	 Cq9/8+bZhWSy3IhaoYx8QLtUGM1SKcPHDsJ++SSYDa2sGcf3JBuk0CvqVlKec9xR/r
	 n0reaqjZZHL2kJCbjF6g+ip70VH99Nhovmd0HbmJcFwsEnMFXqHh6Z2DO8hTaNUwXi
	 tdD18KwTVITzw==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v5=202/3]=20ioreq:=20Indent=20ioreq=5Fserver=5F{alloc,free}=5Fmfn()=20body=20one=20level=20deeper?=
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: 1773659819392
To: xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20260316111653.178104-3-julian.vetter@vates.tech>
In-Reply-To: <20260316111653.178104-1-julian.vetter@vates.tech>
References: <20260316111653.178104-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.f9e7604dea514ce6a47de6ca2a96bfec?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260316:md
Date: Mon, 16 Mar 2026 11:17:00 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

No functional change. It adds a wrapping block to prepare for the loop
that the subsequent patch introduces to handle multiple ioreq pages.

Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
---
Changes in v5
- Added proper commit message and fixed commit title
---
 xen/common/ioreq.c | 40 ++++++++++++++++++++++------------------
 1 file changed, 22 insertions(+), 18 deletions(-)

diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
index 5b026fc1b2..b22f656701 100644
--- a/xen/common/ioreq.c
+++ b/xen/common/ioreq.c
@@ -277,22 +277,24 @@ static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
         return 0;
     }
 
-    page = alloc_domheap_page(s->target, MEMF_no_refcount);
+    {
+        page = alloc_domheap_page(s->target, MEMF_no_refcount);
 
-    if ( !page )
-        return -ENOMEM;
+        if ( !page )
+            return -ENOMEM;
 
-    if ( !get_page_and_type(page, s->target, PGT_writable_page) )
-    {
-        /*
-         * The domain can't possibly know about this page yet, so failure
-         * here is a clear indication of something fishy going on.
-         */
-        domain_crash(s->emulator);
-        return -ENODATA;
-    }
+        if ( !get_page_and_type(page, s->target, PGT_writable_page) )
+        {
+            /*
+             * The domain can't possibly know about this page yet, so failure
+             * here is a clear indication of something fishy going on.
+             */
+            domain_crash(s->emulator);
+            return -ENODATA;
+        }
 
-    mfn = page_to_mfn(page);
+        mfn = page_to_mfn(page);
+    }
     iorp->va = vmap(&mfn, 1);
     if ( !iorp->va )
         goto fail;
@@ -315,12 +317,14 @@ static void ioreq_server_free_mfn(struct ioreq_server *s, bool buf)
     if ( !iorp->va )
         return;
 
-    page = vmap_to_page(iorp->va);
-    vunmap(iorp->va);
-    iorp->va = NULL;
+    {
+        page = vmap_to_page(iorp->va);
+        vunmap(iorp->va);
+        iorp->va = NULL;
 
-    put_page_alloc_ref(page);
-    put_page_and_type(page);
+        put_page_alloc_ref(page);
+        put_page_and_type(page);
+    }
 }
 
 bool is_ioreq_server_page(struct domain *d, const struct page_info *page)
-- 
2.51.0



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 16 11:17:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 11:17:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255502.1550440 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w25wj-00083a-An; Mon, 16 Mar 2026 11:17:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255502.1550440; Mon, 16 Mar 2026 11:17:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w25wj-00082j-7T; Mon, 16 Mar 2026 11:17:17 +0000
Received: by outflank-mailman (input) for mailman id 1255502;
 Mon, 16 Mar 2026 11:17: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=di6d=BQ=bounce.vates.tech=bounce-md_30504962.69b7e6ac.v1-096817dc48ee470daf05cea08c53910a@srs-se1.protection.inumbo.net>)
 id 1w25wh-00080D-Fc
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 11:17:15 +0000
Received: from mail136-12.atl41.mandrillapp.com
 (mail136-12.atl41.mandrillapp.com [198.2.136.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a7533da5-2129-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Mar 2026 12:17:01 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-12.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4fZCGh2Mgfz5QkT4q
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 11:17:00 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 096817dc48ee470daf05cea08c53910a; Mon, 16 Mar 2026 11:17: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: a7533da5-2129-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773659820; x=1773929820;
	bh=1rdsgYGrdZ+Aj6vu34GfiCU8HteOHeBAK+Ods8sd53g=;
	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=KsoMc2o9rnN1cBHUFtsRMm0buK7ivoy7p+CFHHXmhGwQrtDGvzuYw2clTd47xw562
	 z7hsc38a+9+l9K9orfmcOFch5uxY1qZPqZuAX9n0jhPyP87YKL3aycAJZfxJfa9L6R
	 zPJuC/dKhlGZMlZS3KlRADuAmzCAHpOVeAEYcm1MnVDfm7MQROBQOR6XtNN78UctnX
	 Ci+CNVzEneh6prBdX1YN1KQGsk0VPJ5FPZdLR+7zMWFQgzHkFKSrIK8lIM9xvm+W7r
	 RnPxH8b1LK4XXRqwmwIWfqkj6BdAZKealS7vMdGs7f8hk+I8TgUHX8DuUDqHaqlusd
	 oBDMfK19xUoDw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773659820; x=1773920320; i=julian.vetter@vates.tech;
	bh=1rdsgYGrdZ+Aj6vu34GfiCU8HteOHeBAK+Ods8sd53g=;
	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=Bxl3/X9AGtgxVEiWpx+oJf9jqOyGEY6Im/amXa19x+ahVssXvRvIqto+OwgcCrVVy
	 olQ7R7Z3oraWvce6WEOvsEK73wo+5Wn4NHlIIo+5qEz6+NssA2rNhNGsKNlUdXa30d
	 umq6uIgRSrqCN4pZRuW//ir54uHyaY7FKS9yhIz9Z9nqW51k9KQSsCuhiWfNUe3rkW
	 CnFYbHqYzEG7KoJGhp9X4RklHR7aBNa4jIo1FQh49SIaohvoqkGIjgytT47mimnB8g
	 VqJq9JrvX8rnvnb9vd8qKUMbmMSAnJ8aLQBGZdMzsp9Bmf2oVKXcy0YUHVh/ka8ZDQ
	 6xsX7tKZ/+GVA==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v5=201/3]=20ioreq:=20Unify=20buf=20and=20non-buf=20ioreq=20page=20management?=
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: 1773659819095
To: xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20260316111653.178104-2-julian.vetter@vates.tech>
In-Reply-To: <20260316111653.178104-1-julian.vetter@vates.tech>
References: <20260316111653.178104-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.096817dc48ee470daf05cea08c53910a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260316:md
Date: Mon, 16 Mar 2026 11:17:00 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Switch the ioreq page mapping in hvm_map_ioreq_gfn() from
prepare_ring_for_helper() / __map_domain_page_global() to explicit
vmap(), aligning it with ioreq_server_alloc_mfn() which already
allocates domain-heap pages and will now also map them via vmap().

With both paths using vmap(), vmap_to_page() can recover the struct
page_info * uniformly during teardown, removing the need to cache the
page pointer in struct ioreq_page. So, drop the 'page' field from struct
ioreq_page and update all callers accordingly.

Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
---
Changes in v5:
- New patch that unforms the buf and non-buf code path
---
 xen/arch/x86/hvm/ioreq.c | 57 ++++++++++++++++++++++++++++++++--------
 xen/common/ioreq.c       | 36 +++++++++++++------------
 xen/include/xen/ioreq.h  |  1 -
 3 files changed, 65 insertions(+), 29 deletions(-)

diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c
index a5fa97e149..145dcba5c1 100644
--- a/xen/arch/x86/hvm/ioreq.c
+++ b/xen/arch/x86/hvm/ioreq.c
@@ -15,6 +15,7 @@
 #include <xen/sched.h>
 #include <xen/softirq.h>
 #include <xen/trace.h>
+#include <xen/vmap.h>
 #include <xen/vpci.h>
 
 #include <asm/hvm/emulate.h>
@@ -128,8 +129,9 @@ static void hvm_unmap_ioreq_gfn(struct ioreq_server *s, bool buf)
     if ( gfn_eq(iorp->gfn, INVALID_GFN) )
         return;
 
-    destroy_ring_for_helper(&iorp->va, iorp->page);
-    iorp->page = NULL;
+    put_page_and_type(vmap_to_page(iorp->va));
+    vunmap(iorp->va);
+    iorp->va = NULL;
 
     hvm_free_ioreq_gfn(s, iorp->gfn);
     iorp->gfn = INVALID_GFN;
@@ -139,9 +141,13 @@ static int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
 {
     struct domain *d = s->target;
     struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
+    struct page_info *page;
+    p2m_type_t p2mt;
+    gfn_t base_gfn;
+    mfn_t mfn;
     int rc;
 
-    if ( iorp->page )
+    if ( iorp->va )
     {
         /*
          * If a page has already been allocated (which will happen on
@@ -157,17 +163,45 @@ static int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
     if ( d->is_dying )
         return -EINVAL;
 
-    iorp->gfn = hvm_alloc_ioreq_gfn(s);
+    base_gfn = hvm_alloc_ioreq_gfn(s);
 
-    if ( gfn_eq(iorp->gfn, INVALID_GFN) )
+    if ( gfn_eq(base_gfn, INVALID_GFN) )
         return -ENOMEM;
 
-    rc = prepare_ring_for_helper(d, gfn_x(iorp->gfn), &iorp->page,
-                                 &iorp->va);
-
+    /*
+     * vmap() is used for the Xen-side mapping so that vmap_to_page() can
+     * recover the struct page_info * during teardown, consistent with
+     * ioreq_server_alloc_mfn().
+     */
+    rc = check_get_page_from_gfn(d, base_gfn, false, &p2mt, &page);
     if ( rc )
-        hvm_unmap_ioreq_gfn(s, buf);
+    {
+        if ( rc == -EAGAIN )
+            rc = -ENOENT;
+        goto fail;
+    }
+
+    if ( !get_page_type(page, PGT_writable_page) )
+    {
+        put_page(page);
+        rc = -EINVAL;
+        goto fail;
+    }
+
+    mfn = page_to_mfn(page);
+    iorp->va = vmap(&mfn, 1);
+    if ( !iorp->va )
+    {
+        put_page_and_type(page);
+        rc = -ENOMEM;
+        goto fail;
+    }
+
+    iorp->gfn = base_gfn;
+    return 0;
 
+ fail:
+    hvm_free_ioreq_gfn(s, base_gfn);
     return rc;
 }
 
@@ -179,7 +213,7 @@ static void hvm_remove_ioreq_gfn(struct ioreq_server *s, bool buf)
     if ( gfn_eq(iorp->gfn, INVALID_GFN) )
         return;
 
-    if ( p2m_remove_page(d, iorp->gfn, page_to_mfn(iorp->page), 0) )
+    if ( p2m_remove_page(d, iorp->gfn, page_to_mfn(vmap_to_page(iorp->va)), 0) )
         domain_crash(d);
     clear_page(iorp->va);
 }
@@ -195,7 +229,8 @@ static int hvm_add_ioreq_gfn(struct ioreq_server *s, bool buf)
 
     clear_page(iorp->va);
 
-    rc = p2m_add_page(d, iorp->gfn, page_to_mfn(iorp->page), 0, p2m_ram_rw);
+    rc = p2m_add_page(d, iorp->gfn, page_to_mfn(vmap_to_page(iorp->va)), 0,
+                      p2m_ram_rw);
     if ( rc == 0 )
         paging_mark_pfn_dirty(d, _pfn(gfn_x(iorp->gfn)));
 
diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
index f5fd30ce12..5b026fc1b2 100644
--- a/xen/common/ioreq.c
+++ b/xen/common/ioreq.c
@@ -17,11 +17,11 @@
  */
 
 #include <xen/domain.h>
-#include <xen/domain_page.h>
 #include <xen/event.h>
 #include <xen/init.h>
 #include <xen/ioreq.h>
 #include <xen/irq.h>
+#include <xen/vmap.h>
 #include <xen/lib.h>
 #include <xen/paging.h>
 #include <xen/sched.h>
@@ -262,8 +262,9 @@ static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
 {
     struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
     struct page_info *page;
+    mfn_t mfn;
 
-    if ( iorp->page )
+    if ( iorp->va )
     {
         /*
          * If a guest frame has already been mapped (which may happen
@@ -291,11 +292,11 @@ static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
         return -ENODATA;
     }
 
-    iorp->va = __map_domain_page_global(page);
+    mfn = page_to_mfn(page);
+    iorp->va = vmap(&mfn, 1);
     if ( !iorp->va )
         goto fail;
 
-    iorp->page = page;
     clear_page(iorp->va);
     return 0;
 
@@ -309,14 +310,13 @@ static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
 static void ioreq_server_free_mfn(struct ioreq_server *s, bool buf)
 {
     struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
-    struct page_info *page = iorp->page;
+    struct page_info *page;
 
-    if ( !page )
+    if ( !iorp->va )
         return;
 
-    iorp->page = NULL;
-
-    unmap_domain_page_global(iorp->va);
+    page = vmap_to_page(iorp->va);
+    vunmap(iorp->va);
     iorp->va = NULL;
 
     put_page_alloc_ref(page);
@@ -333,7 +333,8 @@ bool is_ioreq_server_page(struct domain *d, const struct page_info *page)
 
     FOR_EACH_IOREQ_SERVER(d, id, s)
     {
-        if ( (s->ioreq.page == page) || (s->bufioreq.page == page) )
+        if ( (s->ioreq.va && vmap_to_page(s->ioreq.va) == page) ||
+             (s->bufioreq.va && vmap_to_page(s->bufioreq.va) == page) )
         {
             found = true;
             break;
@@ -626,11 +627,12 @@ static void ioreq_server_deinit(struct ioreq_server *s)
     /*
      * NOTE: It is safe to call both arch_ioreq_server_unmap_pages() and
      *       ioreq_server_free_pages() in that order.
-     *       This is because the former will do nothing if the pages
-     *       are not mapped, leaving the page to be freed by the latter.
-     *       However if the pages are mapped then the former will set
-     *       the page_info pointer to NULL, meaning the latter will do
-     *       nothing.
+     *       arch_ioreq_server_unmap_pages() handles the GFN-mapped path
+     *       (iorp->gfn != INVALID_GFN) and clears iorp->va on completion,
+     *       so ioreq_server_free_pages() will find iorp->va == NULL and
+     *       do nothing. Conversely, pages allocated via the resource path
+     *       have iorp->gfn == INVALID_GFN, so arch_ioreq_server_unmap_pages()
+     *       is a no-op and ioreq_server_free_pages() handles the teardown.
      */
     arch_ioreq_server_unmap_pages(s);
     ioreq_server_free_pages(s);
@@ -819,12 +821,12 @@ int ioreq_server_get_frame(struct domain *d, ioservid_t id,
         if ( !HANDLE_BUFIOREQ(s) )
             goto out;
 
-        *mfn = page_to_mfn(s->bufioreq.page);
+        *mfn = page_to_mfn(vmap_to_page(s->bufioreq.va));
         rc = 0;
         break;
 
     case XENMEM_resource_ioreq_server_frame_ioreq(0):
-        *mfn = page_to_mfn(s->ioreq.page);
+        *mfn = page_to_mfn(vmap_to_page(s->ioreq.va));
         rc = 0;
         break;
 
diff --git a/xen/include/xen/ioreq.h b/xen/include/xen/ioreq.h
index e86f0869fa..d63fa4729e 100644
--- a/xen/include/xen/ioreq.h
+++ b/xen/include/xen/ioreq.h
@@ -25,7 +25,6 @@
 
 struct ioreq_page {
     gfn_t gfn;
-    struct page_info *page;
     void *va;
 };
 
-- 
2.51.0



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 16 11:17:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 11:17:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255504.1550462 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w25wn-0000Do-20; Mon, 16 Mar 2026 11:17:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255504.1550462; Mon, 16 Mar 2026 11:17: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 1w25wm-0000Df-UP; Mon, 16 Mar 2026 11:17:20 +0000
Received: by outflank-mailman (input) for mailman id 1255504;
 Mon, 16 Mar 2026 11: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=8mIq=BQ=bounce.vates.tech=bounce-md_30504962.69b7e6ac.v1-2848ffd7a12249e187719e471bba1343@srs-se1.protection.inumbo.net>)
 id 1w25wl-00080D-88
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 11:17:19 +0000
Received: from mail136-12.atl41.mandrillapp.com
 (mail136-12.atl41.mandrillapp.com [198.2.136.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a74fbc47-2129-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Mar 2026 12:17:01 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-12.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4fZCGh1TFcz5QkT4l
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 11:17:00 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 2848ffd7a12249e187719e471bba1343; Mon, 16 Mar 2026 11:17: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: a74fbc47-2129-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773659820; x=1773929820;
	bh=m+XRXNPj2npkVGU0el+wj52+hillU7MVSf6508UQkBw=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=TvgbkD9nD8cAk2KDMWvKBk1f3YYpEX8MVA3hAkUXasvfAucmDxIUbNinf4vmx2YdA
	 TKuuGZXXp+SjMC6wgN1LQja2Hs/WcoHADoMfyy+UEdN+JC0ZqH8eugst/hrZ+RDtN3
	 A+sDsFoQpMp/CVgeyy7fm9tgwzLfcQ0f4sxN3q00LKPXqWs6afTNWIR1jCuN1Dcpuy
	 o7qaalMaXHJti0PbFHcU2RJ3V94Wjf7YUKToziwlSsOJkqsFkQ4khQxv1DuQLf6eet
	 nF+4rFCVxM9SjiVPdOglBieYzkU/e2Iq1RKIJbVylaNSnZUBwLHFrskDIec28o3BHm
	 ESUwOxTAMl0sw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773659820; x=1773920320; i=julian.vetter@vates.tech;
	bh=m+XRXNPj2npkVGU0el+wj52+hillU7MVSf6508UQkBw=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=Ni3jG04n78tC5VinDGjB0K0iaGqdpBQPMLdPpfPy1kmdEU3dTjsM8UskrDvJVa0TT
	 GrkuDbFux69jqVCV1YXBFrYAH1CXEoelkHmbiVMmbGHJOeS+NpNO8Qk5KPjUuziZWw
	 uDPrLoeYob8xr8+DjsP2nj/nd7EF6bqmjZL/ccQPsd2DjDMNRb6kDvOvZwPiF9wXt9
	 xZ+mX4r4E3sbmDoVdtGP+5aQ04mc/0I920E8v9CR/VyDTNyj0mC9AB6CEJHZHqedt+
	 7lbgiVHBhrfS80Z0bfxoGCqozmaE7a6+HzEH1cVdauBtRBrdUrkFbySMnTmJoegXXp
	 ZvxN+ac7mDnTw==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v5=200/3]=20Extend=20ioreq=20server=20to=20support=20multiple=20ioreq=20pages?=
X-Mailer: git-send-email 2.51.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773659818688
To: xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20260316111653.178104-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.2848ffd7a12249e187719e471bba1343?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260316:md
Date: Mon, 16 Mar 2026 11:17:00 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Thank you again Jan for you feedback on the series! As you suggested I
have kept the struct ioreq_page fully intakt and just dropped the struct
page_info *page, because I have replaced the __map_domain_page_global()
by an explicit vmap(). So, the page can be recovered via vmap_to_page().
My only concern with my patch series is that in non-debug builds on x86,
map_domain_page_global() avoids vmap overhead for low MFNs by directly
returning a directmap address. But when switching to vmap()
unconditionally this optimization is gone. But this is required so that
vmap_to_page() works correctly and can recover the struct page_info *
uniformly at teardown. What do you think?

Julian Vetter (3):
  ioreq: Unify buf and non-buf ioreq page management
  ioreq: Indent ioreq_server_{alloc,free}_mfn() body one level deeper
  x86/ioreq: Extend ioreq server to support multiple ioreq pages

 xen/arch/x86/hvm/ioreq.c |  65 +++++++++++++++---
 xen/common/ioreq.c       | 141 +++++++++++++++++++++++++++------------
 xen/include/xen/ioreq.h  |   7 +-
 3 files changed, 158 insertions(+), 55 deletions(-)

-- 
2.51.0



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 16 11:17:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 11:17:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255503.1550448 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w25wj-0008Dj-Q4; Mon, 16 Mar 2026 11:17:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255503.1550448; Mon, 16 Mar 2026 11:17:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w25wj-0008C7-Kp; Mon, 16 Mar 2026 11:17:17 +0000
Received: by outflank-mailman (input) for mailman id 1255503;
 Mon, 16 Mar 2026 11:17:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+yLr=BQ=bounce.vates.tech=bounce-md_30504962.69b7e6ac.v1-384f3c454f2b4e7a96bf99f610f55f96@srs-se1.protection.inumbo.net>)
 id 1w25wi-00080O-HU
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 11:17:16 +0000
Received: from mail136-12.atl41.mandrillapp.com
 (mail136-12.atl41.mandrillapp.com [198.2.136.12])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id af652f1c-2129-11f1-b164-2bf370ae4941;
 Mon, 16 Mar 2026 12:17:15 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-12.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4fZCGh5gmcz5QkW27
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 11:17:00 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 384f3c454f2b4e7a96bf99f610f55f96; Mon, 16 Mar 2026 11:17: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: af652f1c-2129-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773659820; x=1773929820;
	bh=6RYWc6Fjxgy8OveMTnPi/ksrvu05Heao6RIo3wosYw8=;
	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=pvkx76ahf78bKM6fYZmuZ+wRuUNX+O6vpujMXp8XfA9jurWPMN6l2p1/r17IYvKt/
	 u5GsiPew3GZWQpMVBUt/HBd6XD9/jZ7o2jY//lpm0YjqMttqY9WjwQ2BOWWhpm+oFv
	 jxpZ/wvRgZighI1wY8TuodkidWbwAtOuQ8ASwuRBCVJwX96XwCBeNEavpBGwLSxBFM
	 ZLfXhJp+r9Yf7FM8DN0xEgOfKqJApD5/g7uyZy3ua9ubptLd9MUzxVjlzFe/RMJ/Kc
	 5Wcw174sM7Xxb7omove/6hHpY5+EX+4soSmWv7mzHmkqyHSRRrIIFy2H7B92jfmfOl
	 4LhJs45priH3A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773659820; x=1773920320; i=julian.vetter@vates.tech;
	bh=6RYWc6Fjxgy8OveMTnPi/ksrvu05Heao6RIo3wosYw8=;
	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=XzCqO8EqfeFZCh5tfbSRLQGEIxJ8xbxHAnfIL3u3MjHI3fgViqivWyelLgVFivG2x
	 +ROtvIb+dX3jqMa6kfum4LU1TEW+sIt1r0LnnxCIOBzZst8G2m3s4YGwJSAiCX+W7P
	 1E8DSsnxNPsj/NNlgTfkZU10GTkGqjIbJckcRV2YA856duhEjR4XVcPsRH2aoTct5d
	 20ZarZGw/CY8+0T/N1rfr+H6fcHFVlMjmlSfpl7BqUN7SVCY1VUSPFYlWZbSo6fLUV
	 HPPUyEKINZkVbSTa36uzCr2RshR0jIMsXTnFeJMrEu0eikGg6QMNaRgzbSy0+Fajfx
	 IQsSTIyjVZPnw==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v5=203/3]=20x86/ioreq:=20Extend=20ioreq=20server=20to=20support=20multiple=20ioreq=20pages?=
X-Mailer: git-send-email 2.51.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773659819650
To: xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20260316111653.178104-4-julian.vetter@vates.tech>
In-Reply-To: <20260316111653.178104-1-julian.vetter@vates.tech>
References: <20260316111653.178104-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.384f3c454f2b4e7a96bf99f610f55f96?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260316:md
Date: Mon, 16 Mar 2026 11:17:00 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

A domain with more than (PAGE_SIZE / sizeof(ioreq_t)) vCPUs needs more
than one ioreq page to hold all per-vCPU ioreq slots. In order to
support this a number of changes have been made:

1. Add nr_ioreq_pages() to compute the required number of pages, defined
   as DIV_ROUND_UP(d->max_vcpus, PAGE_SIZE / sizeof(ioreq_t))
2. ioreq_server_alloc_mfn() now allocates nr_ioreq_pages() pages for the
   non-buf case, builds an mfn_t array, and calls vmap() to map them
   contiguously. The buf path remains single-page.
3. ioreq_server_free_mfn() uses vmap_size() to determine how many pages
   to release.
4. is_ioreq_server_page() loops over all mapped ioreq pages using
   vmap_size() and vmap_to_page() with per-page offsets
5. ioreq_server_get_frame() now handles idx values in the range
   [XENMEM_resource_ioreq_server_frame_ioreq(0),
   XENMEM_resource_ioreq_server_frame_ioreq(nr_pages - 1)], returning
   the MFN via vmap_to_mfn() with the appropriate page offset.

The legacy GFN path (hvm_map_ioreq_gfn) is restricted to single-page.
Domains with more vCPUs must use XENMEM_acquire_resource!

Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
---
Changes in v5:
- Reduced complexity a lot because there is no distinction between buf
  and !buf case
- Directly use va and gfn from struct ioreq_page, dropped additional
  members in struct ioreq_server
---
 xen/arch/x86/hvm/ioreq.c |   8 +++
 xen/common/ioreq.c       | 103 +++++++++++++++++++++++++++++----------
 xen/include/xen/ioreq.h  |   6 +++
 3 files changed, 90 insertions(+), 27 deletions(-)

diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c
index 145dcba5c1..872247e300 100644
--- a/xen/arch/x86/hvm/ioreq.c
+++ b/xen/arch/x86/hvm/ioreq.c
@@ -163,6 +163,14 @@ static int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
     if ( d->is_dying )
         return -EINVAL;
 
+    /*
+     * The legacy GFN path supports only a single ioreq page. Guests requiring
+     * more ioreq slots must use the resource mapping interface
+     * (XENMEM_acquire_resource).
+     */
+    if ( !buf && nr_ioreq_pages(d) > 1 )
+        return -EOPNOTSUPP;
+
     base_gfn = hvm_alloc_ioreq_gfn(s);
 
     if ( gfn_eq(base_gfn, INVALID_GFN) )
diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
index b22f656701..71fac2bc7b 100644
--- a/xen/common/ioreq.c
+++ b/xen/common/ioreq.c
@@ -261,8 +261,9 @@ bool vcpu_ioreq_handle_completion(struct vcpu *v)
 static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
 {
     struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
-    struct page_info *page;
-    mfn_t mfn;
+    unsigned int i, nr_pages = buf ? 1 : nr_ioreq_pages(s->target);
+    mfn_t *mfns;
+    int rc;
 
     if ( iorp->va )
     {
@@ -277,11 +278,20 @@ static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
         return 0;
     }
 
+    mfns = xmalloc_array(mfn_t, nr_pages);
+    if ( !mfns )
+        return -ENOMEM;
+
+    for ( i = 0; i < nr_pages; i++ )
     {
-        page = alloc_domheap_page(s->target, MEMF_no_refcount);
+        struct page_info *page = alloc_domheap_page(s->target,
+                                                    MEMF_no_refcount);
 
         if ( !page )
-            return -ENOMEM;
+        {
+            rc = -ENOMEM;
+            goto fail;
+        }
 
         if ( !get_page_and_type(page, s->target, PGT_writable_page) )
         {
@@ -290,41 +300,60 @@ static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
              * here is a clear indication of something fishy going on.
              */
             domain_crash(s->emulator);
-            return -ENODATA;
+            rc = -ENODATA;
+            goto fail;
         }
 
-        mfn = page_to_mfn(page);
+        mfns[i] = page_to_mfn(page);
     }
-    iorp->va = vmap(&mfn, 1);
+
+    iorp->va = vmap(mfns, nr_pages);
     if ( !iorp->va )
+    {
+        rc = -ENOMEM;
         goto fail;
+    }
+
+    xfree(mfns);
+
+    for ( i = 0; i < nr_pages; i++ )
+        clear_page((char *)iorp->va + i * PAGE_SIZE);
 
-    clear_page(iorp->va);
     return 0;
 
  fail:
-    put_page_alloc_ref(page);
-    put_page_and_type(page);
+    while ( i-- )
+    {
+        struct page_info *page = mfn_to_page(mfns[i]);
+
+        put_page_alloc_ref(page);
+        put_page_and_type(page);
+    }
+    xfree(mfns);
 
-    return -ENOMEM;
+    return rc;
 }
 
 static void ioreq_server_free_mfn(struct ioreq_server *s, bool buf)
 {
     struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
-    struct page_info *page;
+    unsigned int i, nr_pages;
 
     if ( !iorp->va )
         return;
 
+    nr_pages = vmap_size(iorp->va);
+
+    for ( i = 0; i < nr_pages; i++ )
     {
-        page = vmap_to_page(iorp->va);
-        vunmap(iorp->va);
-        iorp->va = NULL;
+        struct page_info *page = vmap_to_page(iorp->va + i * PAGE_SIZE);
 
         put_page_alloc_ref(page);
         put_page_and_type(page);
     }
+
+    vunmap(iorp->va);
+    iorp->va = NULL;
 }
 
 bool is_ioreq_server_page(struct domain *d, const struct page_info *page)
@@ -337,12 +366,28 @@ bool is_ioreq_server_page(struct domain *d, const struct page_info *page)
 
     FOR_EACH_IOREQ_SERVER(d, id, s)
     {
-        if ( (s->ioreq.va && vmap_to_page(s->ioreq.va) == page) ||
-             (s->bufioreq.va && vmap_to_page(s->bufioreq.va) == page) )
+        if ( s->bufioreq.va && vmap_to_page(s->bufioreq.va) == page )
         {
             found = true;
             break;
         }
+
+        if ( s->ioreq.va )
+        {
+            unsigned int i;
+
+            for ( i = 0; i < vmap_size(s->ioreq.va); i++ )
+            {
+                if ( vmap_to_page(s->ioreq.va + i * PAGE_SIZE) == page )
+                {
+                    found = true;
+                    break;
+                }
+            }
+
+            if ( found )
+                break;
+        }
     }
 
     rspin_unlock(&d->ioreq_server.lock);
@@ -818,26 +863,30 @@ int ioreq_server_get_frame(struct domain *d, ioservid_t id,
     if ( rc )
         goto out;
 
-    switch ( idx )
+    if ( idx == XENMEM_resource_ioreq_server_frame_bufioreq )
     {
-    case XENMEM_resource_ioreq_server_frame_bufioreq:
         rc = -ENOENT;
         if ( !HANDLE_BUFIOREQ(s) )
             goto out;
 
         *mfn = page_to_mfn(vmap_to_page(s->bufioreq.va));
         rc = 0;
-        break;
+    }
+    else if ( idx >= XENMEM_resource_ioreq_server_frame_ioreq(0) &&
+              idx < XENMEM_resource_ioreq_server_frame_ioreq(nr_ioreq_pages(d)) )
+    {
+        unsigned int page_idx = idx - XENMEM_resource_ioreq_server_frame_ioreq(0);
+        if ( page_idx >= vmap_size(s->ioreq.va) )
+        {
+            rc = -EINVAL;
+            goto out;
+        }
 
-    case XENMEM_resource_ioreq_server_frame_ioreq(0):
-        *mfn = page_to_mfn(vmap_to_page(s->ioreq.va));
+        *mfn = vmap_to_mfn(s->ioreq.va + page_idx * PAGE_SIZE);
         rc = 0;
-        break;
-
-    default:
-        rc = -EINVAL;
-        break;
     }
+    else
+        rc = -EINVAL;
 
  out:
     rspin_unlock(&d->ioreq_server.lock);
diff --git a/xen/include/xen/ioreq.h b/xen/include/xen/ioreq.h
index d63fa4729e..c12480472d 100644
--- a/xen/include/xen/ioreq.h
+++ b/xen/include/xen/ioreq.h
@@ -19,6 +19,7 @@
 #ifndef __XEN_IOREQ_H__
 #define __XEN_IOREQ_H__
 
+#include <xen/macros.h>
 #include <xen/sched.h>
 
 #include <public/hvm/dm_op.h>
@@ -82,6 +83,11 @@ static inline bool ioreq_needs_completion(const ioreq_t *ioreq)
 #define HANDLE_BUFIOREQ(s) \
     ((s)->bufioreq_handling != HVM_IOREQSRV_BUFIOREQ_OFF)
 
+static inline unsigned int nr_ioreq_pages(const struct domain *d)
+{
+    return DIV_ROUND_UP(d->max_vcpus, PAGE_SIZE / sizeof(ioreq_t));
+}
+
 bool domain_has_ioreq_server(const struct domain *d);
 
 bool vcpu_ioreq_pending(struct vcpu *v);
-- 
2.51.0



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 16 11:49:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 11:49:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255538.1550473 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w26Rc-0005HU-De; Mon, 16 Mar 2026 11:49:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255538.1550473; Mon, 16 Mar 2026 11:49:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w26Rc-0005HM-9e; Mon, 16 Mar 2026 11:49:12 +0000
Received: by outflank-mailman (input) for mailman id 1255538;
 Mon, 16 Mar 2026 11:49: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=gqRC=BQ=arm.com=robin.murphy@srs-se1.protection.inumbo.net>)
 id 1w26Ra-0005HG-4b
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 11:49:10 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 230bc144-212e-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Mar 2026 12:49: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 DA0B01477;
 Mon, 16 Mar 2026 04:48:59 -0700 (PDT)
Received: from [10.57.61.116] (unknown [10.57.61.116])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2A63B3F778;
 Mon, 16 Mar 2026 04:49:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 230bc144-212e-11f1-9ccf-f158ae23cfc8
Message-ID: <be41a533-46a8-411b-bf6c-d56b550691a7@arm.com>
Date: Mon, 16 Mar 2026 11:48:58 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] of/iommu: support multiple iommu-map entries per input
 ID
To: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>,
 Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
 Rob Herring <robh@kernel.org>, Saravana Kannan <saravanak@kernel.org>,
 Richard Zhu <hongxing.zhu@nxp.com>, Lucas Stach <l.stach@pengutronix.de>,
 Lorenzo Pieralisi <lpieralisi@kernel.org>,
 =?UTF-8?Q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
 Manivannan Sadhasivam <mani@kernel.org>, Bjorn Helgaas
 <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
 Sascha Hauer <s.hauer@pengutronix.de>,
 Pengutronix Kernel Team <kernel@pengutronix.de>,
 Fabio Estevam <festevam@gmail.com>, Marc Zyngier <maz@kernel.org>,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
 Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
 Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
 Conor Dooley <conor+dt@kernel.org>, Krzysztof Kozlowski
 <krzk+dt@kernel.org>, Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
 Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: linux-arm-msm@vger.kernel.org, iommu@lists.linux.dev,
 linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
 linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
 imx@lists.linux.dev, xen-devel@lists.xenproject.org
References: <20260315-iommu_multi_map-v2-1-51b98cb79331@oss.qualcomm.com>
From: Robin Murphy <robin.murphy@arm.com>
Content-Language: en-GB
In-Reply-To: <20260315-iommu_multi_map-v2-1-51b98cb79331@oss.qualcomm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 2026-03-15 5:07 pm, Vijayanand Jitta wrote:
> When multiple mappings are present for an input ID, linux matches
> just the first one. There is a usecase [1] where all the mappings
> are to be maintained in parallel for an iommu-map entry of a same
> input id.
> 
> Add a next_offset iterator parameter to of_map_iommu_id() and
> refactor of_map_id() internals into a static helper to carry it.
> Update of_iommu_configure_dev_id() to loop over all matching
> entries to support this case. All other callers pass NULL and
> are unaffected.
> 
> [1] https://lore.kernel.org/all/20250627-video_cb-v3-0-51e18c0ffbce@quicinc.com/

That series doesn't even reference "iommu-map" though?

Once again, NAK to this - the purpose of "iommu-map"/"msi-map" is to 
describe a translation from one hardware ID space to another, where a 
one-to-many mapping of IDs to a single target would never make sense. 
While it is in principle possible for a single device to map to multiple 
different *targets*, that is ambiguous as to what it means - is it 
giving the OS a choice to use whichever one it prefers, or implying they 
must all be configured identically at all times? - so depending on how 
you prefer to look at it, we either do not support that, or we have 
chosen the first option.

> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
> ---
> On Qualcomm kaanapali, the VPU hardware has multiple internal blocks
> that generate different stream IDs for the same input ID. The device
> tree encodes them as separate iommu-map entries sharing the same input
> ID:

And all that means is that your invented notion of "input IDs" is 
clearly wrong. Please stop this abuse of common bindings and just come 
up with a proper way to describe your hardware appropriately for what it 
actually is and does.

Thanks,
Robin.

>    iommu-map = <0x100 &apps_smmu 0x1940 0x1>,
>                <0x100 &apps_smmu 0x1a20 0x1>, ...
> 
> This requires multiple iommu-map entries per device.
> of_iommu_configure_dev_id() currently stops at the first match,
> so only one stream ID gets registered with the IOMMU.
> 
> The v1 series [1] addressed this with a callback threaded through
> of_map_id().
> 
> This patch uses a next_offset iterator on of_map_iommu_id() instead,
> keeping of_map_id() unchanged, and updates of_iommu_configure_dev_id()
> to loop over all matching entries.
> 
> This patch also depends on iommu-cells series [4].
> 
> Changes since v1:
>        - Split patches 2/7 [2] and 3/7 [3] out into this standalone series.
>        - Dropped the callback (of_map_id_cb / of_map_id_arg) entirely.
>        - Replaced with a next_offset iterator on of_map_iommu_id()
>      	only; of_map_id() public API is unchanged.
>        - of_iommu_configure_dev_id() now loops explicitly; no
>          bus-type heuristic (dev_is_platform()) needed.
> 
> [1] https://lore.kernel.org/all/20260126-kaanapali-iris-v1-0-e2646246bfc1@oss.qualcomm.com/
> [2] https://lore.kernel.org/all/20260126-kaanapali-iris-v1-2-e2646246bfc1@oss.qualcomm.com/
> [3] https://lore.kernel.org/all/20260126-kaanapali-iris-v1-3-e2646246bfc1@oss.qualcomm.com/
> [4] https://lore.kernel.org/all/ce25b963-0e8e-4411-a406-7b466eadb1f9@oss.qualcomm.com/
> 
> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
> ---
>   drivers/iommu/of_iommu.c              | 20 +++++++----
>   drivers/of/base.c                     | 65 ++++++++++++++++++++++++++++++-----
>   drivers/pci/controller/dwc/pci-imx6.c |  2 +-
>   drivers/pci/controller/pcie-apple.c   |  2 +-
>   drivers/xen/grant-dma-ops.c           |  2 +-
>   include/linux/of.h                    |  4 +--
>   6 files changed, 75 insertions(+), 20 deletions(-)
> 
> diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
> index a18bb60f6f3d..947eedd9a88b 100644
> --- a/drivers/iommu/of_iommu.c
> +++ b/drivers/iommu/of_iommu.c
> @@ -46,14 +46,22 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
>   				     const u32 *id)
>   {
>   	struct of_phandle_args iommu_spec = {};
> -	int err;
> +	int offset = 0, err;
> +	bool found = false;
>   
> -	err = of_map_iommu_id(master_np, *id, &iommu_spec);
> -	if (err)
> -		return err;
> +	while (!(err = of_map_iommu_id(master_np, *id, &iommu_spec, &offset))) {
> +		err = of_iommu_xlate(dev, &iommu_spec);
> +		of_node_put(iommu_spec.np);
> +		iommu_spec.np = NULL;
> +		if (err)
> +			return err;
> +		found = true;
> +	}
> +
> +	/* -ENODEV means all entries exhausted; success if at least one was processed */
> +	if (err == -ENODEV && found)
> +		return 0;
>   
> -	err = of_iommu_xlate(dev, &iommu_spec);
> -	of_node_put(iommu_spec.np);
>   	return err;
>   }
>   
> diff --git a/drivers/of/base.c b/drivers/of/base.c
> index 9c44eb6d445d..71175e670757 100644
> --- a/drivers/of/base.c
> +++ b/drivers/of/base.c
> @@ -2146,13 +2146,13 @@ static bool of_check_bad_map(const __be32 *map, int len)
>    *
>    * Return: 0 on success or a standard error code on failure.
>    */
> -int of_map_id(const struct device_node *np, u32 id,
> -	       const char *map_name, const char *cells_name,
> -	       const char *map_mask_name,
> -	       struct of_phandle_args *arg)
> +static int of_map_id_next(const struct device_node *np, u32 id,
> +			  const char *map_name, const char *cells_name,
> +			  const char *map_mask_name,
> +			  struct of_phandle_args *arg, int *next_offset)
>   {
>   	u32 map_mask, masked_id;
> -	int map_bytes, map_len, offset = 0;
> +	int map_bytes, map_len, offset = next_offset ? *next_offset : 0;
>   	bool bad_map = false;
>   	const __be32 *map = NULL;
>   
> @@ -2161,7 +2161,7 @@ int of_map_id(const struct device_node *np, u32 id,
>   
>   	map = of_get_property(np, map_name, &map_bytes);
>   	if (!map) {
> -		if (arg->np)
> +		if (arg->np || next_offset)
>   			return -ENODEV;
>   		/* Otherwise, no map implies no translation */
>   		arg->args[0] = id;
> @@ -2262,9 +2262,16 @@ int of_map_id(const struct device_node *np, u32 id,
>   		pr_debug("%pOF: %s, using mask %08x, id-base: %08x, out-base: %08x, length: %08x, id: %08x -> %08x\n",
>   			np, map_name, map_mask, id_base, be32_to_cpup(out_base),
>   			id_len, id, id_off + be32_to_cpup(out_base));
> +
> +		if (next_offset)
> +			*next_offset = offset;	/* caller resumes from here */
>   		return 0;
>   	}
>   
> +	/* no (more) matches found in the map */
> +	if (next_offset)
> +		return -ENODEV;
> +
>   	pr_info("%pOF: no %s translation for id 0x%x on %pOF\n", np, map_name,
>   		id, arg->np);
>   
> @@ -2276,6 +2283,38 @@ int of_map_id(const struct device_node *np, u32 id,
>   	pr_err("%pOF: Error: Bad %s length: %d\n", np, map_name, map_bytes);
>   	return -EINVAL;
>   }
> +
> +/**
> + * of_map_id - Translate an ID through a downstream mapping.
> + * @np: root complex device node.
> + * @id: device ID to map.
> + * @map_name: property name of the map to use.
> + * @cells_name: property name of target specifier cells.
> + * @map_mask_name: optional property name of the mask to use.
> + * @arg: pointer to a &struct of_phandle_args. On input, @arg->np may be
> + *	set to a target device node to match, or NULL to match any. On
> + *	success, @arg->np will be set to the matched target node (with a
> + *	reference held), @arg->args_count will be set to the number of
> + *	output specifier cells as defined by @cells_name in the target node,
> + *	and @arg->args[0..args_count-1] will contain the translated output
> + *	specifier values.
> + *
> + * Given a device ID, look up the appropriate implementation-defined
> + * platform ID and/or the target device which receives transactions on that
> + * ID, as per the "iommu-map" and "msi-map" bindings. If @arg->np points to
> + * a non-NULL device node, only entries targeting that node will be matched;
> + * if it is NULL, it will receive the device node of the first matching
> + * target phandle, with a reference held.
> + *
> + * Return: 0 on success or a standard error code on failure.
> + */
> +int of_map_id(const struct device_node *np, u32 id,
> +	      const char *map_name, const char *cells_name,
> +	      const char *map_mask_name,
> +	      struct of_phandle_args *arg)
> +{
> +	return of_map_id_next(np, id, map_name, cells_name, map_mask_name, arg, NULL);
> +}
>   EXPORT_SYMBOL_GPL(of_map_id);
>   
>   /**
> @@ -2285,15 +2324,23 @@ EXPORT_SYMBOL_GPL(of_map_id);
>    * @arg: pointer to a &struct of_phandle_args for the result. On success,
>    *	@arg->np holds a reference to the target node that the caller must
>    *	release with of_node_put().
> + * @next_offset: if non-NULL, on success it is set to the map offset just
> + *	past the matched entry. Pass this value back on the next call to
> + *	resume scanning from where the previous call left off, allowing all
> + *	matching entries for the same @id to be iterated. Pass NULL (or a
> + *	pointer to 0) to find only the first match.
>    *
> - * Convenience wrapper around of_map_id() using "iommu-map" and "iommu-map-mask".
> + * Wrapper around the internal iommu-map scanner using "iommu-map" and
> + * "iommu-map-mask". When @next_offset is non-NULL, returns -ENODEV once
> + * all matching entries have been exhausted.
>    *
>    * Return: 0 on success or a standard error code on failure.
>    */
>   int of_map_iommu_id(const struct device_node *np, u32 id,
> -		    struct of_phandle_args *arg)
> +		    struct of_phandle_args *arg, int *next_offset)
>   {
> -	return of_map_id(np, id, "iommu-map", "#iommu-cells", "iommu-map-mask", arg);
> +	return of_map_id_next(np, id, "iommu-map", "#iommu-cells",
> +			      "iommu-map-mask", arg, next_offset);
>   }
>   EXPORT_SYMBOL_GPL(of_map_iommu_id);
>   
> diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
> index 5f8a11774eb5..0d7f5e6d037a 100644
> --- a/drivers/pci/controller/dwc/pci-imx6.c
> +++ b/drivers/pci/controller/dwc/pci-imx6.c
> @@ -1146,7 +1146,7 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
>   	u32 sid = 0;
>   
>   	target = NULL;
> -	err_i = of_map_iommu_id(dev->of_node, rid, &iommu_spec);
> +	err_i = of_map_iommu_id(dev->of_node, rid, &iommu_spec, NULL);
>   	if (!err_i) {
>   		target = iommu_spec.np;
>   		sid_i = iommu_spec.args[0];
> diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
> index 2e86f8fd300b..c780e3f9d14d 100644
> --- a/drivers/pci/controller/pcie-apple.c
> +++ b/drivers/pci/controller/pcie-apple.c
> @@ -765,7 +765,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
>   	dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
>   		pci_name(pdev->bus->self), port->idx);
>   
> -	err = of_map_iommu_id(port->pcie->dev->of_node, rid, &iommu_spec);
> +	err = of_map_iommu_id(port->pcie->dev->of_node, rid, &iommu_spec, NULL);
>   	if (err)
>   		return err;
>   
> diff --git a/drivers/xen/grant-dma-ops.c b/drivers/xen/grant-dma-ops.c
> index 36547d7cf1d6..062beb5825f5 100644
> --- a/drivers/xen/grant-dma-ops.c
> +++ b/drivers/xen/grant-dma-ops.c
> @@ -325,7 +325,7 @@ static int xen_dt_grant_init_backend_domid(struct device *dev,
>   		struct pci_dev *pdev = to_pci_dev(dev);
>   		u32 rid = PCI_DEVID(pdev->bus->number, pdev->devfn);
>   
> -		if (of_map_iommu_id(np, rid, &iommu_spec)) {
> +		if (of_map_iommu_id(np, rid, &iommu_spec, NULL)) {
>   			dev_dbg(dev, "Cannot translate ID\n");
>   			return -ESRCH;
>   		}
> diff --git a/include/linux/of.h b/include/linux/of.h
> index 953f2dbe0e86..990849f00e74 100644
> --- a/include/linux/of.h
> +++ b/include/linux/of.h
> @@ -467,7 +467,7 @@ int of_map_id(const struct device_node *np, u32 id,
>   	       struct of_phandle_args *arg);
>   
>   int of_map_iommu_id(const struct device_node *np, u32 id,
> -		    struct of_phandle_args *arg);
> +		    struct of_phandle_args *arg, int *next_offset);
>   
>   int of_map_msi_id(const struct device_node *np, u32 id,
>   		  struct of_phandle_args *arg);
> @@ -943,7 +943,7 @@ static inline int of_map_id(const struct device_node *np, u32 id,
>   }
>   
>   static inline int of_map_iommu_id(const struct device_node *np, u32 id,
> -				  struct of_phandle_args *arg)
> +				  struct of_phandle_args *arg, int *next_offset)
>   {
>   	return -EINVAL;
>   }
> 
> ---
> base-commit: 9e94742cffb7541f55fa904a40c1ca9d836d303d
> change-id: 20260315-iommu_multi_map-8c9b78490ace
> 
> Best regards,



From xen-devel-bounces@lists.xenproject.org Mon Mar 16 12:06:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 12:06:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255561.1550481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w26i3-0008EN-Ul; Mon, 16 Mar 2026 12:06:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255561.1550481; Mon, 16 Mar 2026 12:06:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w26i3-0008EF-S0; Mon, 16 Mar 2026 12:06:11 +0000
Received: by outflank-mailman (input) for mailman id 1255561;
 Mon, 16 Mar 2026 12:06: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=49j5=BQ=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1w26i2-0008E9-HW
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 12:06:10 +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 847d9a08-2130-11f1-b164-2bf370ae4941;
 Mon, 16 Mar 2026 13:06:09 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4855dbfc129so20868975e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 05:06:09 -0700 (PDT)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4855640d915sm91540365e9.4.2026.03.16.05.06.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 16 Mar 2026 05:06: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: 847d9a08-2130-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1773662768; x=1774267568; 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=0rWbpJ2be8sUH/WQvbkRx6j6nRNRuf+/YSo/lRPoWO4=;
        b=lq0avIugbPVTFIkF54Y8exXm1EQFWMPdWkRBOVxCATkeOVdoNjBaWEWxEqYi2YaI/B
         cmVtEv6C8LwrfWjGWul1Fk/+InCyWYIVooKASfVAwS6otLfECAynm6MNJYCzvOpHa+Yz
         NzAEOgrFdF/YrTP1WQEqL6yzEgjPaKnwSV/RM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773662768; x=1774267568;
        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=0rWbpJ2be8sUH/WQvbkRx6j6nRNRuf+/YSo/lRPoWO4=;
        b=VtUHVkFNgtA/EbLs5R/6l45f1DanANFGSoXuoIJS1JJyIfrOUHReCzGtyYq+7F1xJX
         UyHEoGFUutjGrteRBAIR/uyMZkF9atdNCX0A80E4wN2Ma8LgSf9iI8rx6SAf5I4yczKR
         JIm6DEuwVx7/Yiwm1+iFdbn1w73dTNweexWfQ4FRJ5h0GYEf5qFyWoYo332Ir4OVKW9l
         WF1uepKm7fZhh2mGxijhAlSq5joAPva5ShrG8bQoKvR+r9xjYzWBLJJEH/G3bspHILkG
         cLJIvDa3o1uRGv0YwYuAls1pCafj9xrfGMF18tPOD5rJq6TFq1ZJq92H6U+Fz3WuA2f9
         ZFBQ==
X-Gm-Message-State: AOJu0YyuxhWaTaJacfFPxA4wReOeR+6iQUp5isVys68UsT2wSBI152pY
	kaZWTFM4oJFjLytfuchcD6V+ODrxFNSKjkVpYkrbtGwHVW/gVUM+D+0qVUWNuRTuSs6LxdeN9ez
	hopuz
X-Gm-Gg: ATEYQzzlFjobwkQ2g9Nu0j/ExijxHkRhmkV7vJcLnsf0sYghItrhiw2aNllu2hLjE9D
	KPcTcxEmYIftyW0RqsgjhyV8aVS0OtwjSov9Edej7A2zKjXSQIo5bosXYAFnTxDTw+yxJLG52/E
	qOKA3uaRSGwNrbw2dG5EQg1/uYURJ0Q6ofZDOtdiiCGABJGIfnA+qwtUvzMUoNxmm7wXQybe3RM
	fWUYNg+eKqPaGpweC22aUxk+DQjLPZX3uICWYBrUcwbwvmJoCcxqvdJdJ8ew8v99QfpJAHbkm/4
	nDJVbjnQqAZd4n9EJMgl378R1KsflkWxeGxsgeY4GXRhZTOjOy5m17i80lcpGb5kFYGqs/DbcES
	ZZEbRVrox7GZGaO1dUSHsWB/qzEMXRNCXTV5/s77f+W+8VHHVUjSf+ef4mPzlZK/kghm5Ue9uRz
	o7jMQj/+//ZqCEYSs21oTssuoxNITbuHMNODa0LAOQ6uPZlhupuC+tkUAY5FZ/1SdUcVal4+Sms
	iMrq6JaUQ==
X-Received: by 2002:a05:600c:4fc6:b0:485:3fc8:de9c with SMTP id 5b1f17b1804b1-485566d520cmr199054845e9.12.1773662768233;
        Mon, 16 Mar 2026 05:06:08 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] x86/ucode: Exclude Zen6 from entrysign mitigations
Date: Mon, 16 Mar 2026 12:06:05 +0000
Message-Id: <20260316120605.661823-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

Family 0x1a covers both Zen5 and Zen6, but the latter is not believed to be
vulnerable to entrysign.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

This does want backporting, but it depends on 8e4775d118c327 which collects
leaf 7a1 early enough to be used in this way.  So, it should hold off for the
moment until the FRED backports are finalised.
---
 xen/arch/x86/cpu/microcode/amd.c | 6 ++++--
 xen/arch/x86/include/asm/amd.h   | 4 ++++
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/amd.c b/xen/arch/x86/cpu/microcode/amd.c
index 90f10ac8be37..2ba1fa825f2f 100644
--- a/xen/arch/x86/cpu/microcode/amd.c
+++ b/xen/arch/x86/cpu/microcode/amd.c
@@ -20,6 +20,7 @@
 #include <xen/mm.h> /* TODO: Fix asm/tlbflush.h breakage */
 #include <xen/sha2.h>
 
+#include <asm/amd.h>
 #include <asm/msr.h>
 
 #include "private.h"
@@ -576,7 +577,7 @@ void __init ucode_probe_amd(struct microcode_ops *ops)
      */
     if ( IS_ENABLED(CONFIG_MICROCODE_LOADING) &&
          boot_cpu_data.family >= 0x17 && boot_cpu_data.family <= 0x1a &&
-         !opt_digest_check )
+         !is_zen6_uarch() && !opt_digest_check )
     {
         printk(XENLOG_WARNING
                "Microcode patch additional digest checks disabled\n");
@@ -618,7 +619,8 @@ void __init amd_check_entrysign(void)
     if ( !IS_ENABLED(CONFIG_MICROCODE_LOADING)  ||
          boot_cpu_data.vendor != X86_VENDOR_AMD ||
          boot_cpu_data.family < 0x17            ||
-         boot_cpu_data.family > 0x1a )
+         boot_cpu_data.family > 0x1a            ||
+         is_zen6_uarch() )
         return;
 
     /*
diff --git a/xen/arch/x86/include/asm/amd.h b/xen/arch/x86/include/asm/amd.h
index 4036dd549835..d21df0741a32 100644
--- a/xen/arch/x86/include/asm/amd.h
+++ b/xen/arch/x86/include/asm/amd.h
@@ -59,6 +59,8 @@
  * For Zen3 and Zen4 (Fam19h) the heuristic is the presence of AutoIBRS, as
  * it's Zen4-specific.
  *
+ * For Zen5 and Zen6 (Fam1ah) the heuristic is the presence of FRED.
+ *
  * The caller is required to perform the appropriate vendor/family checks
  * first.
  */
@@ -66,6 +68,8 @@
 #define is_zen2_uarch()   boot_cpu_has(X86_FEATURE_AMD_STIBP)
 #define is_zen3_uarch() (!boot_cpu_has(X86_FEATURE_AUTO_IBRS))
 #define is_zen4_uarch()   boot_cpu_has(X86_FEATURE_AUTO_IBRS)
+#define is_zen5_uarch() (!boot_cpu_has(X86_FEATURE_FRED))
+#define is_zen6_uarch()   boot_cpu_has(X86_FEATURE_FRED)
 
 struct cpuinfo_x86;
 int cpu_has_amd_erratum(const struct cpuinfo_x86 *cpu, int osvw_id, ...);
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Mar 16 14:34:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 14:34:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255588.1550489 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w291K-0000W3-Sb; Mon, 16 Mar 2026 14:34:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255588.1550489; Mon, 16 Mar 2026 14:34:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w291K-0000Vw-Pd; Mon, 16 Mar 2026 14:34:14 +0000
Received: by outflank-mailman (input) for mailman id 1255588;
 Mon, 16 Mar 2026 14:34:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PwZs=BQ=bounce.vates.tech=bounce-md_30504962.69b814df.v1-d94525953523425bb436d36834fbbc98@srs-se1.protection.inumbo.net>)
 id 1w291I-0000Vg-PO
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 14:34:13 +0000
Received: from mail136-12.atl41.mandrillapp.com
 (mail136-12.atl41.mandrillapp.com [198.2.136.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 30e3f0b1-2145-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Mar 2026 15:34:08 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-12.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4fZHf74kpvz5QkLb6
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 14:34:07 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d94525953523425bb436d36834fbbc98; Mon, 16 Mar 2026 14:34: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: 30e3f0b1-2145-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773671647; x=1773941647;
	bh=gwdv71sUMq3fhmfuQTOxzGGx0ecKOIqyx3qkAuUr2jA=;
	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=IAS7NtCtYXyfYBfpwT1at8dsKTN4cUES1U3STkCLnEKIwNvQnCCXLpJwZplYZAlRO
	 VNcimgWVyRT2jYxGum08Y0vPtEvsHGvyu5srbYUNhOe66BFiwtILfgioMf55AzReEt
	 l/Nd5ifp42bxJOI0l2j14PhwmtXoFxPagVfs3InW3Jn+LdjUNnuko9Wu73G9umYfnA
	 hR39YpFsHumGC4cWzduaE1OAE3eMhPgC6R4KUzBQcwA+H8go7CArAMcKkUS+MiURJR
	 OMj2szJpPT3lL3G69SxP3tNzZfj6FrugFHHZG2RYeWtIjorCL9VUFn9LyzttkoUIux
	 ITvI79PIQZCOA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773671647; x=1773932147; i=teddy.astie@vates.tech;
	bh=gwdv71sUMq3fhmfuQTOxzGGx0ecKOIqyx3qkAuUr2jA=;
	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=kcbdoPkmnO4cdwhDD42+tFfVaG0WjCJSpdSBa8RCTB0o8vM0ti9vxwE2q9xbWIMRV
	 OnjPlDtbpZOe3DTBOac3wr30OLfzPf2RDSvLPR/hcNIZ0cvgN52NJyy7b2TsV+vPtU
	 uegkz09QOpoWwMrfvvQstNFXgvvKsAJzriXkWMM27xW29MZnzmQixlk2pTNARN9EGS
	 nzbED8094uXxisCM6eZj+VHr9/pLTe8S+5H3d7hnnpMIhQ1ZlRpaHpZN4FTzkrAYc+
	 T+i1Cy05f0IMTN8HVWu0GXJI+phTZXHY/VgQ/20MJBJvMNLwKlYNAkTZJNzc0+yKIE
	 wVKXQa8BRr5gQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v9=202/3]=20xenpm:=20Use=20EXIT=5F{SUCCESS,FAILURE}=20instead=20of=20errno=20as=20=20exit=20codes?=
X-Mailer: git-send-email 2.53.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773671646918
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Anthony PERARD" <anthony.perard@vates.tech>, "Jan Beulich" <jbeulich@suse.com>
Message-Id: <cafb3c93e212a20e314517418dc2ab9f316708b1.1773671343.git.teddy.astie@vates.tech>
In-Reply-To: <d7d0fa8ca02d59d34bd3be7ecfacd5c0376fafc0.1773671343.git.teddy.astie@vates.tech>
References: <d7d0fa8ca02d59d34bd3be7ecfacd5c0376fafc0.1773671343.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.d94525953523425bb436d36834fbbc98?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260316:md
Date: Mon, 16 Mar 2026 14:34:07 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

errno is not unified accross platforms, which makes error codes actually
platform specific. C standard defines EXIT_SUCCESS and EXIT_FAILURE
(respectively 0 and 1) as standard errors codes, even though it only reports
whether it failed or not.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
v9:
 - Introduced

 tools/misc/xenpm.c | 36 +++++++++++++++++++-----------------
 1 file changed, 19 insertions(+), 17 deletions(-)

diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
index 682d092479..e4902d2e82 100644
--- a/tools/misc/xenpm.c
+++ b/tools/misc/xenpm.c
@@ -112,7 +112,7 @@ static void parse_cpuid(const char *arg, int *cpuid)
         if ( strcasecmp(arg, "all") )
         {
             fprintf(stderr, "Invalid CPU identifier: '%s'\n", arg);
-            exit(EINVAL);
+            exit(EXIT_FAILURE);
         }
         *cpuid = -1;
     }
@@ -124,7 +124,7 @@ static void parse_cpuid_and_int(int argc, char *argv[],
     if ( argc == 0 )
     {
          fprintf(stderr, "Missing %s\n", what);
-         exit(EINVAL);
+         exit(EXIT_FAILURE);
     }
 
     if ( argc > 1 )
@@ -133,7 +133,7 @@ static void parse_cpuid_and_int(int argc, char *argv[],
     if ( sscanf(argv[argc > 1], "%d", val) != 1 )
     {
         fprintf(stderr, "Invalid %s '%s'\n", what, argv[argc > 1]);
-        exit(EINVAL);
+        exit(EXIT_FAILURE);
     }
 }
 
@@ -662,7 +662,7 @@ static void signal_int_handler(int signo)
 out:
     free(cputopo);
     xc_interface_close(xc_handle);
-    exit(0);
+    exit(EXIT_SUCCESS);
 }
 
 void start_gather_func(int argc, char *argv[])
@@ -1154,7 +1154,7 @@ void scaling_governor_func(int argc, char *argv[])
     else
     {
         fprintf(stderr, "Missing argument(s)\n");
-        exit(EINVAL);
+        exit(EXIT_FAILURE);
     }
 
     if ( cpuid < 0 )
@@ -1215,7 +1215,7 @@ void cpu_topology_func(int argc, char *argv[])
 out:
     free(cputopo);
     if ( rc )
-        exit(rc);
+        exit(EXIT_FAILURE);
 }
 
 void set_sched_smt_func(int argc, char *argv[])
@@ -1224,7 +1224,7 @@ void set_sched_smt_func(int argc, char *argv[])
 
     if ( argc != 1 ) {
         fprintf(stderr, "Missing or invalid argument(s)\n");
-        exit(EINVAL);
+        exit(EXIT_FAILURE);
     }
 
     if ( !strcasecmp(argv[0], "disable") )
@@ -1234,7 +1234,7 @@ void set_sched_smt_func(int argc, char *argv[])
     else
     {
         fprintf(stderr, "Invalid argument: %s\n", argv[0]);
-        exit(EINVAL);
+        exit(EXIT_FAILURE);
     }
 
     if ( !xc_set_sched_opt_smt(xc_handle, value) )
@@ -1254,12 +1254,12 @@ void set_vcpu_migration_delay_func(int argc, char *argv[])
 
     if ( argc != 1 || (value = atoi(argv[0])) < 0 ) {
         fprintf(stderr, "Missing or invalid argument(s)\n");
-        exit(EINVAL);
+        exit(EXIT_FAILURE);
     }
 
     if ( xc_sched_credit_params_get(xc_handle, 0, &sparam) < 0 ) {
         fprintf(stderr, "getting Credit scheduler parameters failed\n");
-        exit(EINVAL);
+        exit(EXIT_FAILURE);
     }
     sparam.vcpu_migr_delay_us = value;
 
@@ -1304,7 +1304,7 @@ void set_max_cstate_func(int argc, char *argv[])
            : (subval = XEN_SYSCTL_CX_UNLIMITED, strcmp(argv[1], "unlimited")))) )
     {
         fprintf(stderr, "Missing, excess, or invalid argument(s)\n");
-        exit(EINVAL);
+        exit(EXIT_FAILURE);
     }
 
     snprintf(buf, ARRAY_SIZE(buf), "C%d", value);
@@ -1575,7 +1575,7 @@ static void cppc_set_func(int argc, char *argv[])
     uint32_t set_params;
 
     if ( parse_cppc_opts(&set_cppc, &cpuid, argc, argv) )
-        exit(EINVAL);
+        exit(EXIT_FAILURE);
 
     if ( cpuid != -1 )
     {
@@ -1637,7 +1637,7 @@ int main(int argc, char *argv[])
     if ( !xc_handle )
     {
         fprintf(stderr, "failed to get the handler\n");
-        return EIO;
+        return EXIT_FAILURE;
     }
 
     ret = xc_physinfo(xc_handle, &physinfo);
@@ -1647,7 +1647,7 @@ int main(int argc, char *argv[])
         fprintf(stderr, "failed to get processor information (%d - %s)\n",
                 ret, strerror(ret));
         xc_interface_close(xc_handle);
-        return ret;
+        return EXIT_FAILURE;
     }
     max_cpu_nr = physinfo.max_cpu_id + 1;
 
@@ -1662,7 +1662,8 @@ int main(int argc, char *argv[])
         for ( i = 0; i < nr_matches; i++ )
             fprintf(stderr, " %s", main_options[matches_main_options[i]].name);
         fprintf(stderr, "\n");
-        ret = EINVAL;
+        xc_interface_close(xc_handle);
+        return EXIT_FAILURE;
     }
     else if ( nr_matches == 1 )
         /* dispatch to the corresponding function handler */
@@ -1670,10 +1671,11 @@ int main(int argc, char *argv[])
     else
     {
         show_help();
-        ret = EINVAL;
+        xc_interface_close(xc_handle);
+        return EXIT_FAILURE;
     }
 
     xc_interface_close(xc_handle);
-    return ret;
+    return EXIT_SUCCESS;
 }
 
-- 
2.53.0



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 16 14:34:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 14:34:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255590.1550501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w291L-0000dX-D5; Mon, 16 Mar 2026 14:34:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255590.1550501; Mon, 16 Mar 2026 14:34: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 1w291L-0000cn-6f; Mon, 16 Mar 2026 14:34:15 +0000
Received: by outflank-mailman (input) for mailman id 1255590;
 Mon, 16 Mar 2026 14:34:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tk1S=BQ=bounce.vates.tech=bounce-md_30504962.69b814e1.v1-b18f5b09c0604483807fcecab1c85ec0@srs-se1.protection.inumbo.net>)
 id 1w291J-0000Vg-KF
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 14:34:13 +0000
Received: from mail134-15.atl141.mandrillapp.com
 (mail134-15.atl141.mandrillapp.com [198.2.134.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 320fa13e-2145-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Mar 2026 15:34:10 +0100 (CET)
Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail134-15.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4fZHf95VtQzPm0YCX
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 14:34:09 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 b18f5b09c0604483807fcecab1c85ec0; Mon, 16 Mar 2026 14:34: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: 320fa13e-2145-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773671649; x=1773941649;
	bh=bDNF/5Vy1gLBiqNe5tEBVim+dhZH1Kyasg4KXkbniuU=;
	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=d5IYVnuHCRnlfMvmbZky4YbZZuKnDgnvazIDZ4sIdyQT6K2wboMwAZff+qr3K7aZ9
	 9bTPaZXev7OTEuDZEUaWhpqTM7+z7g+pVOlr3qozZPRElGmrwk8tGrExoqoN1MNTco
	 OlB1iOrmKOter941EtWXISFN3oO3KQ7mR+u9f2ctrUZ0fzyIgGYANbz7ya+V9Nd0wo
	 pTwZSM3kftcsPjh06sJeAb0enVbxCh8UQr35W5VsBQQksXYzQwW/3H+gKG13DEHhxC
	 c5p8ojOiK+QgwDa1Y8eli7zi0nc0xZ7zjrAoDzmqbfyMErsrTt13DodYoGT3/Mc2w6
	 52TojOR+qWtfA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773671649; x=1773932149; i=teddy.astie@vates.tech;
	bh=bDNF/5Vy1gLBiqNe5tEBVim+dhZH1Kyasg4KXkbniuU=;
	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=do2f2rtkaADnvAEOiX4boBqG242GOrtchJY8SAc405NCVciTimiI9RocLTnl08owY
	 chOTC82nvm/LyJTeuI4RZrn+2t5FDvSNeNlMOoYz/OAc+4/v5I+DhcC7hzEzoZqaHg
	 FvGhVwuFLxDigkWnow4E60gcXX6IHBPJ9At4ptM2qOSabzWB7q0YuGEohHcZFWC3PZ
	 8EudNqxtDoU8aa6OJ7exQK4cibXpyUZpvAjh8YwQxWNcRqcgegRmJWm8qRMGRIeWOc
	 gLCRXVWfo3E+JUSPbA0TTu8VI/UI+PodhbNo4x3XfiGLd9REwUMP7AQ85m3SJQEVMH
	 94JCi8mTeHR4Q==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v9=203/3]=20xenpm:=20Add=20get-core-temp=20subcommand?=
X-Mailer: git-send-email 2.53.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773671648961
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, "Community Manager" <community.manager@xenproject.org>, "Anthony PERARD" <anthony.perard@vates.tech>, "Jan Beulich" <jbeulich@suse.com>
Message-Id: <97e34958e8070ee8771157e5ece78e7db1308174.1773671343.git.teddy.astie@vates.tech>
In-Reply-To: <d7d0fa8ca02d59d34bd3be7ecfacd5c0376fafc0.1773671343.git.teddy.astie@vates.tech>
References: <d7d0fa8ca02d59d34bd3be7ecfacd5c0376fafc0.1773671343.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.b18f5b09c0604483807fcecab1c85ec0?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260316:md
Date: Mon, 16 Mar 2026 14:34:09 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

get-core-temp allows querying the per-core CPU temperature and
per-package one on processors that supports Digital Temperature Sensors
(most Intel processors; as usual Dom0 drivers cannot work due to
misalignment between Dom0 vCPU and pCPUs).

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
CC: Jan Beulich <jbeulich@suse.com>

v4: https://lore.kernel.org/xen-devel/cover.1766158766.git.teddy.astie@vate=
s.tech/
v5: Removed trailing whitespace.
v6: Report errors through errno and use strerror() to display them
v7:
 - Rename get-intel-temp with get-dts-temp
 - handle properly errno
 - make process return a error code if no data
v8:
 - update Changelog
 - improve error handling
 - rename core-dts-temp with get-core-temp
v9:
 - exit with EXIT_{SUCCESS,FAILURE} instead of errno

 CHANGELOG.md       |   2 +
 tools/misc/xenpm.c | 128 ++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 129 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index c191e504ab..69cce1c874 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,8 @@ The format is based on [Keep a Changelog](https://keepach=
angelog.com/en/1.0.0/)
      mitigate (by rate-limiting) the system wide impact of an HVM guest
      misusing atomic instructions.
    - Support for CPIO microcode in discrete multiboot modules.
+   - Introduce get-core-temp to xenpm to query CPU temperatures on Intel
+     platforms.
 
 ### Removed
  - On x86:
diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
index e4902d2e82..37f484b362 100644
--- a/tools/misc/xenpm.c
+++ b/tools/misc/xenpm.c
@@ -32,11 +32,14 @@
 
 #include <xen-tools/common-macros.h>
 
+#include <xen/asm/msr-index.h>
+
 #define MAX_PKG_RESIDENCIES 12
 #define MAX_CORE_RESIDENCIES 8
 
 static xc_interface *xc_handle;
 static unsigned int max_cpu_nr;
+static xc_physinfo_t physinfo;
 
 /* help message */
 void show_help(void)
@@ -93,6 +96,7 @@ void show_help(void)
             "                                           units default to \=
"us\" if unspecified.\n"
             "                                           truncates un-repre=
sentable values.\n"
             "                                           0 lets the hardwar=
e decide.\n"
+            " get-core-temp          [cpuid]      get CPU temperature for =
<cpuid> or all (Intel only)\n"
             " start [seconds]                     start collect Cx/Px stat=
istics,\n"
             "                                     output after CTRL-C or S=
IGINT or several seconds.\n"
             " enable-turbo-mode     [cpuid]       enable Turbo Mode for pr=
ocessors that support it.\n"
@@ -1354,6 +1358,128 @@ void enable_turbo_mode(int argc, char *argv[])
                 errno, strerror(errno));
 }
 
+static int fetch_dts_temp(xc_interface *xch, uint32_t cpu, bool package, i=
nt *temp)
+{
+    xc_resource_entry_t entries[] =3D {
+        { .idx =3D package ? MSR_PACKAGE_THERM_STATUS : MSR_IA32_THERM_STA=
TUS },
+        { .idx =3D MSR_TEMPERATURE_TARGET },
+    };
+    struct xc_resource_op ops =3D {
+        .cpu =3D cpu,
+        .entries =3D entries,
+        .nr_entries =3D ARRAY_SIZE(entries),
+    };
+    int tjmax;
+
+    int ret =3D xc_resource_op(xch, 1, &ops);
+
+    switch ( ret )
+    {
+    case 0:
+        /* This CPU isn't online or can't query this MSR */
+        errno =3D ENODATA;
+        return -1;
+
+    case 1:
+    {
+        /*
+         * The CPU doesn't support MSR_TEMPERATURE_TARGET, we assume it's =
100
+         * which is correct aside a few selected Atom CPUs. Check Linux
+         * kernel's coretemp.c for more information.
+         */
+        static bool has_reported_once =3D false;
+
+        if ( !has_reported_once )
+        {
+            fprintf(stderr, "MSR_TEMPERATURE_TARGET is not supported, assu=
me "
+                            "tjmax =3D 100, readings may be incorrect.\n")=
;
+            has_reported_once =3D true;
+        }
+
+        tjmax =3D 100;
+        break;
+    }
+
+    case 2:
+        tjmax =3D (entries[1].val >> 16) & 0xff;
+        break;
+
+    default:
+        if ( ret > 0 )
+        {
+            fprintf(stderr, "Got unexpected xc_resource_op return value: %=
d", ret);
+            errno =3D EINVAL;
+        }
+        return -1;
+    }
+
+    *temp =3D tjmax - ((entries[0].val >> 16) & 0xff);
+    return 0;
+}
+
+static void get_core_temp(int argc, char *argv[])
+{
+    int temp =3D -1, cpu =3D -1;
+    unsigned int socket;
+    bool has_data =3D false;
+
+    if ( argc > 0 )
+        parse_cpuid(argv[0], &cpu);
+
+    if ( cpu !=3D -1 )
+    {
+        if ( !fetch_dts_temp(xc_handle, cpu, false, &temp) )
+            printf("CPU%d: %d=C2=B0C\n", cpu, temp);
+        else
+        {
+            fprintf(stderr, "Unable to fetch temperature (%d - %s)\n",
+                    errno, strerror(errno));
+            printf("No data\n");
+            exit(EXIT_FAILURE);
+        }
+        return;
+    }
+
+    /* Per socket measurement */
+    for ( socket =3D 0, cpu =3D 0; cpu < max_cpu_nr;
+          socket++, cpu +=3D physinfo.cores_per_socket * physinfo.threads_=
per_core )
+    {
+        if ( fetch_dts_temp(xc_handle, cpu, true, &temp) )
+        {
+            fprintf(stderr,
+                    "[Package%u] Unable to fetch temperature (%d - %s)\n",
+                    cpu, errno, strerror(errno));
+            continue;
+        }
+
+        has_data =3D true;
+        printf("Package%u: %d=C2=B0C\n", socket, temp);
+    }
+
+    if ( has_data )
+        /* Avoid inserting a trailing line if we have nothing */
+        printf("\n");
+
+    for ( cpu =3D 0; cpu < max_cpu_nr; cpu +=3D physinfo.threads_per_core =
)
+    {
+        if ( fetch_dts_temp(xc_handle, cpu, false, &temp) )
+        {
+            fprintf(stderr, "[CPU%d] Unable to fetch temperature (%d - %s)=
\n",
+                    cpu, errno, strerror(errno));
+            continue;
+        }
+
+        has_data =3D true;
+        printf("CPU%d: %d=C2=B0C\n", cpu, temp);
+    }
+
+    if ( !has_data )
+    {
+        printf("No data\n");
+        exit(EXIT_FAILURE);
+    }
+}
+
 void disable_turbo_mode(int argc, char *argv[])
 {
     int cpuid =3D -1;
@@ -1618,12 +1744,12 @@ struct {
     { "set-max-cstate", set_max_cstate_func},
     { "enable-turbo-mode", enable_turbo_mode },
     { "disable-turbo-mode", disable_turbo_mode },
+    { "get-core-temp", get_core_temp },
 };
 
 int main(int argc, char *argv[])
 {
     int i, ret =3D 0;
-    xc_physinfo_t physinfo;
     int nr_matches =3D 0;
     int matches_main_options[ARRAY_SIZE(main_options)];
 
-- 
2.53.0



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Mar 16 14:34:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 14:34:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255589.1550495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w291L-0000ZH-3W; Mon, 16 Mar 2026 14:34:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255589.1550495; Mon, 16 Mar 2026 14:34: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 1w291K-0000Yd-Vr; Mon, 16 Mar 2026 14:34:14 +0000
Received: by outflank-mailman (input) for mailman id 1255589;
 Mon, 16 Mar 2026 14:34:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1JYG=BQ=bounce.vates.tech=bounce-md_30504962.69b814dd.v1-32c867f81d6248ee9399a3f3f549431a@srs-se1.protection.inumbo.net>)
 id 1w291J-0000Vg-Ck
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 14:34:13 +0000
Received: from mail136-12.atl41.mandrillapp.com
 (mail136-12.atl41.mandrillapp.com [198.2.136.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2f8525ab-2145-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Mar 2026 15:34:06 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-12.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4fZHf516jZz5QkT3f
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 14:34:05 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 32c867f81d6248ee9399a3f3f549431a; Mon, 16 Mar 2026 14:34:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2f8525ab-2145-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773671645; x=1773941645;
	bh=w+BKKtFI0vu/fLApqTU/xbShaAQvgsXeuvs+d59KFx0=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=kba9RbepLDqbep8omQBtFWXrDOn2uI+rJtvbvZEKrf5mgkorUo9g5kMcS7JVeZCM4
	 hYsTMHBsZwo8jJsdC/geF+7MvYXAXXTQL895o5raZB3pimwDDK1xh9kAs3aFpESZel
	 FcP8ebjv3hj/7YOV2m0m+k6P81wUkWjJOBZsjOtep8ky8bbT2G/fD6n2YFdhL0l7N7
	 KB6lck2vPByaqOqx5dO5ayZY6jAa1+iFnEAiYqDis3ZTMadDPOvq+V6Oxw/BXp3jsR
	 XJFNn8RPwCFysMfWVrFIkpirj0nDzCGKKbkUw5MD2YoDOFtM6PdqVVbXYy7VcA9mKY
	 KMwTcAnMl8yHg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773671645; x=1773932145; i=teddy.astie@vates.tech;
	bh=w+BKKtFI0vu/fLApqTU/xbShaAQvgsXeuvs+d59KFx0=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=1HQoXE5quGo3LtlouCrjWbaKRfyJ9VAxtD/TgKf54/rZkKfUkF4RCVcvkWX5l8ePS
	 uJatYR8SWbe0OurGOyeYJD6N9e2/YK4x+mrexXUm54Eb2dsEzHxRAV7WbDbe6OUYeJ
	 5/4L02/s1HYlyORCM1B5Ks8jeRM5udO/BmG8uH+MJLlPREEJtASNimzttBwOkp/2dO
	 kX4Er+5TG/sNGvQI2K0sIFmkgZwc9E7+jK+9iD/VJIpGDry6A860I1bOJS1yqGRuLu
	 FaokhzpKfkwKhWppHtcTBT1D52fPzmBXSK13MygE8wGBulDIy1auRIp/GiogbEfYpk
	 FQPjMFjtJvXoA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v9=201/3]=20libxc:=20Report=20EINVAL=20in=20invalid=20xc=5Fresource=5Fop=20use?=
X-Mailer: git-send-email 2.53.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773671644458
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Anthony PERARD" <anthony.perard@vates.tech>, "Juergen Gross" <jgross@suse.com>
Message-Id: <d7d0fa8ca02d59d34bd3be7ecfacd5c0376fafc0.1773671343.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.32c867f81d6248ee9399a3f3f549431a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260316:md
Date: Mon, 16 Mar 2026 14:34:05 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

xc_report_op doesn't update errno when called with 0 operations
(even though it returns -1).

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 tools/libs/ctrl/xc_resource.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/libs/ctrl/xc_resource.c b/tools/libs/ctrl/xc_resource.c
index cb6a97202b..f65127f91c 100644
--- a/tools/libs/ctrl/xc_resource.c
+++ b/tools/libs/ctrl/xc_resource.c
@@ -137,6 +137,7 @@ int xc_resource_op(xc_interface *xch, uint32_t nr_ops, xc_resource_op_t *ops)
     if ( nr_ops > 1 )
         return xc_resource_op_multi(xch, nr_ops, ops);
 
+    errno = EINVAL;
     return -1;
 }
 
-- 
2.53.0



--
 | Vates

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 16 15:06:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 15:06:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255619.1550516 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w29WQ-0005p2-PU; Mon, 16 Mar 2026 15:06:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255619.1550516; Mon, 16 Mar 2026 15:06:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w29WQ-0005ov-Mj; Mon, 16 Mar 2026 15:06:22 +0000
Received: by outflank-mailman (input) for mailman id 1255619;
 Mon, 16 Mar 2026 15:06: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=4Dji=BQ=bounce.vates.tech=bounce-md_30504962.69b81c69.v1-271f0506bb074d7e981029c0320f1b4c@srs-se1.protection.inumbo.net>)
 id 1w29WP-0005op-JU
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 15:06:21 +0000
Received: from mail136-12.atl41.mandrillapp.com
 (mail136-12.atl41.mandrillapp.com [198.2.136.12])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id af9449ee-2149-11f1-b164-2bf370ae4941;
 Mon, 16 Mar 2026 16:06:19 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-12.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4fZJMF6nMBz5QkW2Q
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 15:06:17 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 271f0506bb074d7e981029c0320f1b4c; Mon, 16 Mar 2026 15:06: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: af9449ee-2149-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773673577; x=1773943577;
	bh=8V88MMOnEVAEXfQpk4zoBHdDg3/63NOPBcKopCaDPG8=;
	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=Ss9wE/uFayCf0VXV4qhWKOGLli6dnPlxSLd0bm9a8BqloDhinkBw82LwAl670TE6h
	 93fj2Yjswz7c2H5yk9rpg/31K2W3OLhLK3aRhr+WaAndxoMVGysubDyhTEh6tiAGm9
	 /+GOJujszo4ZPzsW8EaxZOlycTAp8muHS/zuibhJpHVF63VNuQ1kcCrEomECcz7UBM
	 P/VvUCJ8rqIc7eXpCg/Rhyn7XS6Dq1XGrl8p7avxSZ42H1SEfrxuaf1qN1a4sEtAfn
	 HuPiI5Y7lU3lz6tMiR+49IlgujAGkQlCis0nXNgslC9bLRkm4uX1hRfFBR3ipvD5bU
	 DBkZtvuFYfYlQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773673577; x=1773934077; i=julian.vetter@vates.tech;
	bh=8V88MMOnEVAEXfQpk4zoBHdDg3/63NOPBcKopCaDPG8=;
	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=oljvqHrqklepyFZKcCRdQs+Zg/GlyKivxYRg9OH3Kyu7eLAdZYaeNne8BK1fDVC5H
	 aEEp4BAn8uum7Wot4ub3PPH7kc/8oql9EA/BL+/rTAQMe82GV58Nkl8Y+Qu7ayJlHU
	 Rxsq4qXBm7+ytSiJNytiCtLIXJYigR5XJC6ke/TYZSn+o2zr0Ea5dJVXK14M9c8CGP
	 RZjDV9iqYeT2BnOQPXmxWYKeSpkltnab2eIdMi0pEFNtU+7jK5CktMIgxD2u8g9VRP
	 O1Qk0NSWY1BjlCfl6/pS4ntqlu9i1zP2Sfq+TVxjiFu08fbIbFgd2WnPby5wqkCaQw
	 PJm72qNntr6Bg==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v3=203/7]=20x86/hvm:=20Support=20extended=20destination=20IDs=20in=20virtual=20MSI=20and=20IO-APIC?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773673576518
Message-Id: <635f1e21-f1e0-451a-9374-c91b33784894@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Juergen Gross" <jgross@suse.com>, "Julien Grall" <julien@xen.org>, xen-devel@lists.xenproject.org
References: <20260309123055.880050-1-julian.vetter@vates.tech> <20260309123055.880050-3-julian.vetter@vates.tech> <1e371e65-ca79-42a0-93f9-804f73084033@suse.com> <9f40fbec-008f-4a50-bfb2-27c35d88f2a2@suse.com>
In-Reply-To: <9f40fbec-008f-4a50-bfb2-27c35d88f2a2@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.271f0506bb074d7e981029c0320f1b4c?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260316:md
Date: Mon, 16 Mar 2026 15:06:17 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On 3/12/26 12:15 PM, Jan Beulich wrote:
> On 11.03.2026 16:27, Jan Beulich wrote:
>> On 09.03.2026 13:31, Julian Vetter wrote:
>>> @@ -618,6 +620,21 @@ static int cf_check ioapic_check(const struct domain *d, hvm_domain_context_t *h
>>>                e->fields.reserved[0] || e->fields.reserved[1] ||
>>>                e->fields.reserved[2] || e->fields.reserved2 )
>>>               return -EINVAL;
>>> +
>>> +        /*
>>> +         * An RTE in the saved state has ext_dest_id bits set. Check that
>>> +         * the destination Xen has extended destination ID support enabled,
>>> +         * otherwise interrupt routing to APIC IDs > 255 would be broken
>>> +         * after restore.
>>> +         */
>>> +        if ( e->fields.ext_dest_id && !d->arch.hvm.ext_dest_id_enabled )

Thank you for your feedback Jan! Yes, right the 'ext_dest_id_enabled' 
must be defined before it can be checked. I have rearranged this in my 
patch set.

>>
>> This won't build, as the ext_dest_id_enabled field appears only in patch 6.
>> But yes, that looks to be the opt-in mechanism I mentioned above.
> 
> Actually no, how could it be. That's for the DM to invoke.

But this comment here I'm not sure I fully understand. You mean that 
checking 'if ( e->fields.ext_dest_id && !d->arch.hvm.ext_dest_id_enabled 
)' is not enough? This check only verifies that if the target domain 
doesn't support ext_dest_id_enabled, no RTE in the source domain is 
allowed to have a ext_dest_id set. But now we also have to check that if 
the source domain has ext_dest_id_enabled, the target also have to 
announce it, right? So,

if ( s->ext_dest_id_enabled && !d->arch.hvm.ext_dest_id_enabled )
{
     //ERROR
}

Is this what you meant?

Julian

> 
> Jan



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 16 15:08:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 15:08:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255626.1550526 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w29YA-0006N6-2u; Mon, 16 Mar 2026 15:08:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255626.1550526; Mon, 16 Mar 2026 15:08:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w29Y9-0006Mz-WE; Mon, 16 Mar 2026 15:08:10 +0000
Received: by outflank-mailman (input) for mailman id 1255626;
 Mon, 16 Mar 2026 15:08:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lC2O=BQ=bounce.vates.tech=bounce-md_30504962.69b81cd5.v1-6a3f9db5333c4ded9245fee67960302f@srs-se1.protection.inumbo.net>)
 id 1w29Y9-0006Mr-7f
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 15:08:09 +0000
Received: from mail136-12.atl41.mandrillapp.com
 (mail136-12.atl41.mandrillapp.com [198.2.136.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ef907441-2149-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Mar 2026 16:08:06 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-12.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4fZJPK44YYz5QkLR2
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 15:08:05 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 6a3f9db5333c4ded9245fee67960302f; Mon, 16 Mar 2026 15:08: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: ef907441-2149-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773673685; x=1773943685;
	bh=Fz3JBKPQMyeowZWRMqZh8FyijgWgZh/CEClLY+5GdN0=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=L/Et4zMvJMuMI0aqYJu0LKSplnE/VOALGYoUh9KnUKNIIf9M6IPcuv1fPn7QqWgrt
	 Rwp6zfs4/6OxDx1kTy2p8KHvFszSgQpEz1jHwW2KfMNHpUqRj45iFFDX5P8bOnG+ek
	 A1WxR2Bn4FsmXF7dStD1DNGfWMR0gG6qlIPEwREvLFQdBaHCUhJTmI5xyWlxrphjEV
	 THAonOIyjUMMGf2gcsbEn+khpTPtanw3V/9BoAZUiTaQPSwAVIncsChJMxCGTFgXRo
	 EA3uTr/iLS4UVXDfaDUjBMDvchVe6FV7p5VZZx35xVme/s8GVd/TC2YMu1RqcRgXrW
	 5DCfYtAOuW1tQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773673685; x=1773934185; i=anthony.perard@vates.tech;
	bh=Fz3JBKPQMyeowZWRMqZh8FyijgWgZh/CEClLY+5GdN0=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=qaJT7yQ0KMY/7RkbXPmSXezvTcVoDptf1tBWB9IJIG1iFddqdVIP5gKpOxy58s4+Y
	 hCo5o8NnYKMTycaeVmMLTsVq2uJt+sR4muZ2WrHlAxzhz8Lzh0idadKQOkqD8aA0Qk
	 3bu3UQzU/nxWS49n6Cj84Sw3B0f9rJx61IsQci75KxITd5CGK+4hrg39amqLGqLExc
	 zXWa2KU9m542AkxkGx2Qyfh+jxLZLBj83Zp0VndR9p28PA7DklSnsTkHKecmdBTpYW
	 MUTlEbZViLoXZ0IjH82Jgn1X5+k+6knjIxhfz/JEMACatPsYm1rkVUjAXvY9JR2xiJ
	 IYvS6XsUFFzVw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2007/11]=20tools/xenstored:=20implement=20the=20GET/SET=5FQUOTA=20commands?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773673684981
To: "Juergen Gross" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, "Julien Grall" <julien@xen.org>
Message-Id: <abgc1Azehzw_m9Ff@l14>
References: <20260305135208.2208663-1-jgross@suse.com> <20260305135208.2208663-8-jgross@suse.com>
In-Reply-To: <20260305135208.2208663-8-jgross@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.6a3f9db5333c4ded9245fee67960302f?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260316:md
Date: Mon, 16 Mar 2026 15:08:05 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Mar 05, 2026 at 02:52:04PM +0100, Juergen Gross wrote:
> diff --git a/tools/xenstored/core.c b/tools/xenstored/core.c
> index 8a06b35808..e283d47184 100644
> --- a/tools/xenstored/core.c
> +++ b/tools/xenstored/core.c
> @@ -2034,6 +2034,10 @@ static struct {
>  	    { "GET_FEATURE",   do_get_feature,  XS_FLAG_PRIV },
>  	[XS_SET_FEATURE]       =
>  	    { "SET_FEATURE",   do_set_feature,  XS_FLAG_PRIV },
> +	[XS_GET_QUOTA]         =
> +	    { "GET_QUOTA",     do_get_quota,    XS_FLAG_PRIV },
> +	[XS_SET_QUOTA]         =
> +	    { "SET_QUOTA",     do_set_quota,    XS_FLAG_PRIV },
>  };
>  
>  static const char *sockmsg_string(enum xsd_sockmsg_type type)
> diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
> index 8e52351695..c0bc8a3eb7 100644
> --- a/tools/xenstored/domain.c
> +++ b/tools/xenstored/domain.c
> @@ -1363,6 +1363,112 @@ static bool parse_quota_name(const char *name, unsigned int *qidx,
>  	return true;
>  }
>  
> +int do_get_quota(const void *ctx, struct connection *conn,
> +		 struct buffered_data *in)
> +{
> +	const char *vec[2];
> +	unsigned int n_pars;
> +	unsigned int domid;
> +	unsigned int q;
> +	unsigned int idx;
> +	char *resp;
> +	const char *name;
> +	const struct quota *quota;
> +	const struct domain *domain;
> +
> +	n_pars = get_strings(in, vec, ARRAY_SIZE(vec));
> +
> +	if (n_pars > 2)
> +		return EINVAL;
> +
> +	if (n_pars == 0) {
> +		resp = talloc_asprintf(ctx, "%s", "");

This could be written with talloc_strdup() instead, since there's no
formatting involve.

> +		if (!resp)
> +			return ENOMEM;
> +		for (q = 0; q < ACC_N; q++) {
> +			if (!quota_adm[q].name)
> +				continue;
> +			if (quotas[q].val[Q_IDX_HARD] != Q_VAL_DISABLED) {

Having set internally a value of Q_VAL_DISABLED, does it mean the named
quota is unsupported?

> +				resp = talloc_asprintf_append(resp, "%s%s",
> +					*resp ? " " : "", quota_adm[q].name);
> +				if (!resp)
> +					return ENOMEM;
> +			}
> +			if (quotas[q].val[Q_IDX_SOFT] != Q_VAL_DISABLED) {
> +				resp = talloc_asprintf_append(resp, "%ssoft-%s",
> +					*resp ? " " : "", quota_adm[q].name);
> +				if (!resp)
> +					return ENOMEM;
> +			}
> +		}
> +	} else {
> +		if (n_pars == 1) {
> +			quota = quotas;
> +			name = vec[0];
> +		} else {
> +			domid = atoi(vec[0]);

Shall we check that vec[0] actually contain a plausible domid? (An
integer between 0..65535). Right now, this accept everything, and would
return 0 if there's not a single digit.

> +			domain = find_or_alloc_existing_domain(domid);
> +			if (!domain)
> +				return ENOENT;
> +			quota = domain->acc;
> +			name = vec[1];
> +		}
> +
> +		if (parse_quota_name(name, &q, &idx))
> +			return EINVAL;
> +
> +		resp = talloc_asprintf(ctx, "%u", quota[q].val[idx]);

Why do we return 4294967295 for disabled quota check when the spec say
to return "0" when a quota check is disabled? That is for quota names
that are supposed to be not supported (if we ask "GET_QUOTA" first).

> +		if (!resp)
> +			return ENOMEM;
> +	}
> +
> +	send_reply(conn, XS_GET_QUOTA, resp, strlen(resp) + 1);
> +
> +	return 0;
> +}
> +
> +int do_set_quota(const void *ctx, struct connection *conn,
> +		 struct buffered_data *in)
> +{
> +	const char *vec[3];
> +	unsigned int n_pars;
> +	unsigned int domid;
> +	unsigned int q;
> +	unsigned int idx;
> +	const char *name;
> +	unsigned int val;
> +	struct quota *quota;
> +	struct domain *domain;
> +
> +	n_pars = get_strings(in, vec, ARRAY_SIZE(vec));
> +
> +	if (n_pars < 2 || n_pars > 3)
> +		return EINVAL;
> +
> +	if (n_pars == 2) {
> +		quota = quotas;
> +		name = vec[0];
> +		val = atoi(vec[1]);

We should check that vec[1] is a valid quota value, and also not an
internal value. Otherwise, we can just have "-1" on the wire, and have
unexpected changes for example. Only "0" is documented as a quota been
disabled, "-1" or "4294967295" isn't.

> +	} else {
> +		domid = atoi(vec[0]);
> +		domain = find_or_alloc_existing_domain(domid);
> +		if (!domain)
> +			return ENOENT;
> +		quota = domain->acc;
> +		name = vec[1];
> +		val = atoi(vec[2]);
> +	}
> +
> +	if (parse_quota_name(name, &q, &idx))
> +		return EINVAL;
> +
> +	quota[q].val[idx] = val;
> +
> +	send_ack(conn, XS_SET_QUOTA);
> +
> +	return 0;
> +}
> +
>  static int close_xgt_handle(void *_handle)
>  {
>  	xengnttab_close(*(xengnttab_handle **)_handle);
> diff --git a/tools/xenstored/domain.h b/tools/xenstored/domain.h
> index 62ce3b3166..6a06b0d1af 100644
> --- a/tools/xenstored/domain.h
> +++ b/tools/xenstored/domain.h
> @@ -93,6 +93,14 @@ int do_get_feature(const void *ctx, struct connection *conn,
>  int do_set_feature(const void *ctx, struct connection *conn,
>  		   struct buffered_data *in);
>  
> +/* Get quota names or value */

This could say "implement GET_QUOTA" or something instead. But a
comment here isn't going to give much value for internal functions.

> +int do_get_quota(const void *ctx, struct connection *conn,
> +		 struct buffered_data *in);
> +
> +/* Set quota value */
> +int do_set_quota(const void *ctx, struct connection *conn,
> +		 struct buffered_data *in);
> +
>  void domain_early_init(void);
>  void domain_init(int evtfd);
>  void init_domains(bool live_update);


Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 16 15:27:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 15:27:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255636.1550535 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w29rD-0001CC-L3; Mon, 16 Mar 2026 15:27:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255636.1550535; Mon, 16 Mar 2026 15:27: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 1w29rD-0001C5-Gm; Mon, 16 Mar 2026 15:27:51 +0000
Received: by outflank-mailman (input) for mailman id 1255636;
 Mon, 16 Mar 2026 15:27: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=6b3Y=BQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w29rB-0001Bz-TZ
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 15:27:50 +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 ae4fcf9b-214c-11f1-b164-2bf370ae4941;
 Mon, 16 Mar 2026 16:27:45 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b9795ca4e6dso359056566b.2
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 08:27:45 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b97b3f4bc31sm245305266b.20.2026.03.16.08.27.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Mar 2026 08:27:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ae4fcf9b-214c-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773674865; x=1774279665; 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=cJkrp9pq6DJe33OGIuAmiRaPG/VeME2Suru45EBKzDE=;
        b=Pk3XTOlCi0lBgeRelnLEIPbaikbWBb1jV//aasbAIZOXUH8Z7q1XKaPHUvtXDlJGZ9
         u4AakG4ke1xE+8XOffWlDSilfn3x/k6NbEmGQv1FrIHLgOGq3RKO2xzvgHJSSpzNnkkV
         Hz62H0JY8XoYBf6dPuYC8vHXDsgwjQnbOoqVp16mytKJaueO9Vs5WffYedwIHzt9OC66
         CT/o/K+WRALCB2CRq4fJ4w0cUAj3kN/lRHNmTRsO84yb7+7EcpzrrJO1WMipkim/VzIx
         sGwHykeZRnpMyRB2kGdUxnOWyw9ev4MNMOZixm0xWKfPlAstD0fSkaMm2tKS5//+0lyi
         X/hA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773674865; x=1774279665;
        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=cJkrp9pq6DJe33OGIuAmiRaPG/VeME2Suru45EBKzDE=;
        b=km+i1SRY+JQDDJEIdzv3F01lKdIJuseYhDwIRpH1bUu5dbtt/2PNDL1jk/G1DCpKI8
         5fSFLVorPboKVyGWvG2R0Caxp4wmPD6b9LYUquAs+s3Ntxb8Kdv7l7kwogJe2hB2fcgh
         YAxzJFIvgd0hc8/+swTG49V/iiVSEK0AcveMgBRgmDeWyO1gA3xILN0RNy1YnNG8iz70
         sy0JCByIlGaemvLQ1PzWPstjKTgVykxxF845Nx9rxK1IvhPZ5H2CdOhLKQcYJXurVdB+
         1z4gmGtpVqnKiQULdS24htRh/bcN0qWmAOAbD81yk3Wx8huNdB+M91LPnXQoqei+7ibB
         N9Ow==
X-Gm-Message-State: AOJu0YxZEwEgV7YzWV3cgVhJxsNpDLG/sCeX2mt195471mp/QnKPXGgI
	9jo8xkHNmJQi6TLz47cw5FFBV0hnLW6fD/JpRcyN1AAq8Nvgy1GWtjKh5eYMv+T5YCw=
X-Gm-Gg: ATEYQzz4b5gdSL50f0L88GXyZQWEemxrqe5KywfLHMUxX82DNj3huF9shuPPNPuQ6Hv
	9vMtPsQlbIE7p99SJzn7vF7CcNmel+KqDkj0DipnjVX+h+fjZJ5B1DASiLfl4w4tQ7NggKyvPMg
	vRdADX8o6jAdlFhamB72efCxASM6MLCbeRa7Hm6dxM97KoiWac8ff3iMCSu8dlo75938yJ3brCS
	iwq0UBhE1QYzE5yGJxc1LFEILX8VJRNCMeUG9CgDR+0NUw37gFMAA/GQeeHAqz8QaZ47AndRiop
	z7Ro0IL+MbsQHrgC3MoHQyUJVMXn2YMdpJABrMXv8bpzZOWC5Vs2Y7Rl1T4Y7fmI2iT/m4wGQBj
	EKwEN7m4wX+z+US5Lzp/zNDwUJpSpSMBNiVyEJV8hHShiud9KCsQ8b5b/VH9bc2BPe3f50n1ONK
	sxzLyKK11MIehCFIcY6rvfmjFdLfs6cpYI38/x3mcs/moZfHGu+hS2WUmMzw4OmBvc/AT9nHMaD
	i1L07ZoVuZMbaGj55U2vTNK6dqq15CMlBevUxEF7MuI77CZ7ZQuOg==
X-Received: by 2002:a17:907:2d90:b0:b97:b03d:d264 with SMTP id a640c23a62f3a-b97b03dd8d2mr322135266b.4.1773674864423;
        Mon, 16 Mar 2026 08:27:44 -0700 (PDT)
Message-ID: <b0c02185-1ce0-416f-8bff-34b57de57e8f@suse.com>
Date: Mon, 16 Mar 2026 16:27:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 07/11] tools/xenstored: implement the GET/SET_QUOTA
 commands
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-8-jgross@suse.com> <abgc1Azehzw_m9Ff@l14>
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: <abgc1Azehzw_m9Ff@l14>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------uMGZF4063yCugDi0LfUFJzYh"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------uMGZF4063yCugDi0LfUFJzYh
Content-Type: multipart/mixed; boundary="------------wVkoSJuDoqeUhvQH39Md02eL";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>
Message-ID: <b0c02185-1ce0-416f-8bff-34b57de57e8f@suse.com>
Subject: Re: [PATCH 07/11] tools/xenstored: implement the GET/SET_QUOTA
 commands
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-8-jgross@suse.com> <abgc1Azehzw_m9Ff@l14>
In-Reply-To: <abgc1Azehzw_m9Ff@l14>

--------------wVkoSJuDoqeUhvQH39Md02eL
Content-Type: multipart/mixed; boundary="------------IrHlqgskTrdNRN77Ax9QwgiV"

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

T24gMTYuMDMuMjYgMTY6MDgsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBPbiBUaHUsIE1h
ciAwNSwgMjAyNiBhdCAwMjo1MjowNFBNICswMTAwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
Pj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnN0b3JlZC9jb3JlLmMgYi90b29scy94ZW5zdG9y
ZWQvY29yZS5jDQo+PiBpbmRleCA4YTA2YjM1ODA4Li5lMjgzZDQ3MTg0IDEwMDY0NA0KPj4g
LS0tIGEvdG9vbHMveGVuc3RvcmVkL2NvcmUuYw0KPj4gKysrIGIvdG9vbHMveGVuc3RvcmVk
L2NvcmUuYw0KPj4gQEAgLTIwMzQsNiArMjAzNCwxMCBAQCBzdGF0aWMgc3RydWN0IHsNCj4+
ICAgCSAgICB7ICJHRVRfRkVBVFVSRSIsICAgZG9fZ2V0X2ZlYXR1cmUsICBYU19GTEFHX1BS
SVYgfSwNCj4+ICAgCVtYU19TRVRfRkVBVFVSRV0gICAgICAgPQ0KPj4gICAJICAgIHsgIlNF
VF9GRUFUVVJFIiwgICBkb19zZXRfZmVhdHVyZSwgIFhTX0ZMQUdfUFJJViB9LA0KPj4gKwlb
WFNfR0VUX1FVT1RBXSAgICAgICAgID0NCj4+ICsJICAgIHsgIkdFVF9RVU9UQSIsICAgICBk
b19nZXRfcXVvdGEsICAgIFhTX0ZMQUdfUFJJViB9LA0KPj4gKwlbWFNfU0VUX1FVT1RBXSAg
ICAgICAgID0NCj4+ICsJICAgIHsgIlNFVF9RVU9UQSIsICAgICBkb19zZXRfcXVvdGEsICAg
IFhTX0ZMQUdfUFJJViB9LA0KPj4gICB9Ow0KPj4gICANCj4+ICAgc3RhdGljIGNvbnN0IGNo
YXIgKnNvY2ttc2dfc3RyaW5nKGVudW0geHNkX3NvY2ttc2dfdHlwZSB0eXBlKQ0KPj4gZGlm
ZiAtLWdpdCBhL3Rvb2xzL3hlbnN0b3JlZC9kb21haW4uYyBiL3Rvb2xzL3hlbnN0b3JlZC9k
b21haW4uYw0KPj4gaW5kZXggOGU1MjM1MTY5NS4uYzBiYzhhM2ViNyAxMDA2NDQNCj4+IC0t
LSBhL3Rvb2xzL3hlbnN0b3JlZC9kb21haW4uYw0KPj4gKysrIGIvdG9vbHMveGVuc3RvcmVk
L2RvbWFpbi5jDQo+PiBAQCAtMTM2Myw2ICsxMzYzLDExMiBAQCBzdGF0aWMgYm9vbCBwYXJz
ZV9xdW90YV9uYW1lKGNvbnN0IGNoYXIgKm5hbWUsIHVuc2lnbmVkIGludCAqcWlkeCwNCj4+
ICAgCXJldHVybiB0cnVlOw0KPj4gICB9DQo+PiAgIA0KPj4gK2ludCBkb19nZXRfcXVvdGEo
Y29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwNCj4+ICsJCSBzdHJ1
Y3QgYnVmZmVyZWRfZGF0YSAqaW4pDQo+PiArew0KPj4gKwljb25zdCBjaGFyICp2ZWNbMl07
DQo+PiArCXVuc2lnbmVkIGludCBuX3BhcnM7DQo+PiArCXVuc2lnbmVkIGludCBkb21pZDsN
Cj4+ICsJdW5zaWduZWQgaW50IHE7DQo+PiArCXVuc2lnbmVkIGludCBpZHg7DQo+PiArCWNo
YXIgKnJlc3A7DQo+PiArCWNvbnN0IGNoYXIgKm5hbWU7DQo+PiArCWNvbnN0IHN0cnVjdCBx
dW90YSAqcXVvdGE7DQo+PiArCWNvbnN0IHN0cnVjdCBkb21haW4gKmRvbWFpbjsNCj4+ICsN
Cj4+ICsJbl9wYXJzID0gZ2V0X3N0cmluZ3MoaW4sIHZlYywgQVJSQVlfU0laRSh2ZWMpKTsN
Cj4+ICsNCj4+ICsJaWYgKG5fcGFycyA+IDIpDQo+PiArCQlyZXR1cm4gRUlOVkFMOw0KPj4g
Kw0KPj4gKwlpZiAobl9wYXJzID09IDApIHsNCj4+ICsJCXJlc3AgPSB0YWxsb2NfYXNwcmlu
dGYoY3R4LCAiJXMiLCAiIik7DQo+IA0KPiBUaGlzIGNvdWxkIGJlIHdyaXR0ZW4gd2l0aCB0
YWxsb2Nfc3RyZHVwKCkgaW5zdGVhZCwgc2luY2UgdGhlcmUncyBubw0KPiBmb3JtYXR0aW5n
IGludm9sdmUuDQoNClJpZ2h0Lg0KDQo+IA0KPj4gKwkJaWYgKCFyZXNwKQ0KPj4gKwkJCXJl
dHVybiBFTk9NRU07DQo+PiArCQlmb3IgKHEgPSAwOyBxIDwgQUNDX047IHErKykgew0KPj4g
KwkJCWlmICghcXVvdGFfYWRtW3FdLm5hbWUpDQo+PiArCQkJCWNvbnRpbnVlOw0KPj4gKwkJ
CWlmIChxdW90YXNbcV0udmFsW1FfSURYX0hBUkRdICE9IFFfVkFMX0RJU0FCTEVEKSB7DQo+
IA0KPiBIYXZpbmcgc2V0IGludGVybmFsbHkgYSB2YWx1ZSBvZiBRX1ZBTF9ESVNBQkxFRCwg
ZG9lcyBpdCBtZWFuIHRoZSBuYW1lZA0KPiBxdW90YSBpcyB1bnN1cHBvcnRlZD8NCg0KWWVz
LiBSaWdodCBub3cgYWxsIGhhcmQgcXVvdGEgYXJlIHN1cHBvcnRlZCBhbmQgb25seSBvbmUg
c29mdCBxdW90YQ0KaXMgc3VwcG9ydGVkLg0KDQo+IA0KPj4gKwkJCQlyZXNwID0gdGFsbG9j
X2FzcHJpbnRmX2FwcGVuZChyZXNwLCAiJXMlcyIsDQo+PiArCQkJCQkqcmVzcCA/ICIgIiA6
ICIiLCBxdW90YV9hZG1bcV0ubmFtZSk7DQo+PiArCQkJCWlmICghcmVzcCkNCj4+ICsJCQkJ
CXJldHVybiBFTk9NRU07DQo+PiArCQkJfQ0KPj4gKwkJCWlmIChxdW90YXNbcV0udmFsW1Ff
SURYX1NPRlRdICE9IFFfVkFMX0RJU0FCTEVEKSB7DQo+PiArCQkJCXJlc3AgPSB0YWxsb2Nf
YXNwcmludGZfYXBwZW5kKHJlc3AsICIlc3NvZnQtJXMiLA0KPj4gKwkJCQkJKnJlc3AgPyAi
ICIgOiAiIiwgcXVvdGFfYWRtW3FdLm5hbWUpOw0KPj4gKwkJCQlpZiAoIXJlc3ApDQo+PiAr
CQkJCQlyZXR1cm4gRU5PTUVNOw0KPj4gKwkJCX0NCj4+ICsJCX0NCj4+ICsJfSBlbHNlIHsN
Cj4+ICsJCWlmIChuX3BhcnMgPT0gMSkgew0KPj4gKwkJCXF1b3RhID0gcXVvdGFzOw0KPj4g
KwkJCW5hbWUgPSB2ZWNbMF07DQo+PiArCQl9IGVsc2Ugew0KPj4gKwkJCWRvbWlkID0gYXRv
aSh2ZWNbMF0pOw0KPiANCj4gU2hhbGwgd2UgY2hlY2sgdGhhdCB2ZWNbMF0gYWN0dWFsbHkg
Y29udGFpbiBhIHBsYXVzaWJsZSBkb21pZD8gKEFuDQo+IGludGVnZXIgYmV0d2VlbiAwLi42
NTUzNSkuIFJpZ2h0IG5vdywgdGhpcyBhY2NlcHQgZXZlcnl0aGluZywgYW5kIHdvdWxkDQo+
IHJldHVybiAwIGlmIHRoZXJlJ3Mgbm90IGEgc2luZ2xlIGRpZ2l0Lg0KDQpJIGhhdmUgZm9s
bG93ZWQgdGhlIHBhdHRlcm4gdXNlZCBpbiBvdGhlciBwbGFjZXMgd2hlcmUgYSBkb21pZCBp
cyBleHBlY3RlZC4NCg0KSW4gdGhlIGVuZCBub3RoaW5nIHdpbGwgcmVhbGx5IGJyZWFrLg0K
DQpBbnkgaW50ZWdlciBub3QgYmVpbmcgYSBkb21pZCB3aWxsIHJlc3VsdCBpbiBFTk9FTlQs
IHdoaWxlIHRoZSBjYXNlIG9mIG5vdA0KYSBkaWdpdCBpcyBhIGJ1ZyBpbiBwcml2aWxlZ2Vk
IHNvZnR3YXJlIChkb21pZHMgY2FuIGJlIHNwZWNpZmllZCBieSBkb20wDQpvbmx5KS4NCg0K
PiANCj4+ICsJCQlkb21haW4gPSBmaW5kX29yX2FsbG9jX2V4aXN0aW5nX2RvbWFpbihkb21p
ZCk7DQo+PiArCQkJaWYgKCFkb21haW4pDQo+PiArCQkJCXJldHVybiBFTk9FTlQ7DQo+PiAr
CQkJcXVvdGEgPSBkb21haW4tPmFjYzsNCj4+ICsJCQluYW1lID0gdmVjWzFdOw0KPj4gKwkJ
fQ0KPj4gKw0KPj4gKwkJaWYgKHBhcnNlX3F1b3RhX25hbWUobmFtZSwgJnEsICZpZHgpKQ0K
Pj4gKwkJCXJldHVybiBFSU5WQUw7DQo+PiArDQo+PiArCQlyZXNwID0gdGFsbG9jX2FzcHJp
bnRmKGN0eCwgIiV1IiwgcXVvdGFbcV0udmFsW2lkeF0pOw0KPiANCj4gV2h5IGRvIHdlIHJl
dHVybiA0Mjk0OTY3Mjk1IGZvciBkaXNhYmxlZCBxdW90YSBjaGVjayB3aGVuIHRoZSBzcGVj
IHNheQ0KPiB0byByZXR1cm4gIjAiIHdoZW4gYSBxdW90YSBjaGVjayBpcyBkaXNhYmxlZD8g
VGhhdCBpcyBmb3IgcXVvdGEgbmFtZXMNCj4gdGhhdCBhcmUgc3VwcG9zZWQgdG8gYmUgbm90
IHN1cHBvcnRlZCAoaWYgd2UgYXNrICJHRVRfUVVPVEEiIGZpcnN0KS4NCg0KcGFyc2VfcXVv
dGFfbmFtZSgpIHNob3VsZCBoYXZlIHJldHVybmVkIHRydWUgaW4gdGhpcyBjYXNlLCBzbyBF
SU5WQUwgc2hvdWxkDQpiZSByZXR1cm5lZC4NCg0KV2lsbCBmaXggdGhhdC4NCg0KPiANCj4+
ICsJCWlmICghcmVzcCkNCj4+ICsJCQlyZXR1cm4gRU5PTUVNOw0KPj4gKwl9DQo+PiArDQo+
PiArCXNlbmRfcmVwbHkoY29ubiwgWFNfR0VUX1FVT1RBLCByZXNwLCBzdHJsZW4ocmVzcCkg
KyAxKTsNCj4+ICsNCj4+ICsJcmV0dXJuIDA7DQo+PiArfQ0KPj4gKw0KPj4gK2ludCBkb19z
ZXRfcXVvdGEoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwNCj4+
ICsJCSBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pDQo+PiArew0KPj4gKwljb25zdCBjaGFy
ICp2ZWNbM107DQo+PiArCXVuc2lnbmVkIGludCBuX3BhcnM7DQo+PiArCXVuc2lnbmVkIGlu
dCBkb21pZDsNCj4+ICsJdW5zaWduZWQgaW50IHE7DQo+PiArCXVuc2lnbmVkIGludCBpZHg7
DQo+PiArCWNvbnN0IGNoYXIgKm5hbWU7DQo+PiArCXVuc2lnbmVkIGludCB2YWw7DQo+PiAr
CXN0cnVjdCBxdW90YSAqcXVvdGE7DQo+PiArCXN0cnVjdCBkb21haW4gKmRvbWFpbjsNCj4+
ICsNCj4+ICsJbl9wYXJzID0gZ2V0X3N0cmluZ3MoaW4sIHZlYywgQVJSQVlfU0laRSh2ZWMp
KTsNCj4+ICsNCj4+ICsJaWYgKG5fcGFycyA8IDIgfHwgbl9wYXJzID4gMykNCj4+ICsJCXJl
dHVybiBFSU5WQUw7DQo+PiArDQo+PiArCWlmIChuX3BhcnMgPT0gMikgew0KPj4gKwkJcXVv
dGEgPSBxdW90YXM7DQo+PiArCQluYW1lID0gdmVjWzBdOw0KPj4gKwkJdmFsID0gYXRvaSh2
ZWNbMV0pOw0KPiANCj4gV2Ugc2hvdWxkIGNoZWNrIHRoYXQgdmVjWzFdIGlzIGEgdmFsaWQg
cXVvdGEgdmFsdWUsIGFuZCBhbHNvIG5vdCBhbg0KPiBpbnRlcm5hbCB2YWx1ZS4gT3RoZXJ3
aXNlLCB3ZSBjYW4ganVzdCBoYXZlICItMSIgb24gdGhlIHdpcmUsIGFuZCBoYXZlDQo+IHVu
ZXhwZWN0ZWQgY2hhbmdlcyBmb3IgZXhhbXBsZS4gT25seSAiMCIgaXMgZG9jdW1lbnRlZCBh
cyBhIHF1b3RhIGJlZW4NCj4gZGlzYWJsZWQsICItMSIgb3IgIjQyOTQ5NjcyOTUiIGlzbid0
Lg0KDQpSaWdodCwgSSdsbCBjaGVjayBmb3IgdmFsICE9IFFfVkFMX0RJU0FCTEVELg0KDQo+
IA0KPj4gKwl9IGVsc2Ugew0KPj4gKwkJZG9taWQgPSBhdG9pKHZlY1swXSk7DQo+PiArCQlk
b21haW4gPSBmaW5kX29yX2FsbG9jX2V4aXN0aW5nX2RvbWFpbihkb21pZCk7DQo+PiArCQlp
ZiAoIWRvbWFpbikNCj4+ICsJCQlyZXR1cm4gRU5PRU5UOw0KPj4gKwkJcXVvdGEgPSBkb21h
aW4tPmFjYzsNCj4+ICsJCW5hbWUgPSB2ZWNbMV07DQo+PiArCQl2YWwgPSBhdG9pKHZlY1sy
XSk7DQo+PiArCX0NCj4+ICsNCj4+ICsJaWYgKHBhcnNlX3F1b3RhX25hbWUobmFtZSwgJnEs
ICZpZHgpKQ0KPj4gKwkJcmV0dXJuIEVJTlZBTDsNCj4+ICsNCj4+ICsJcXVvdGFbcV0udmFs
W2lkeF0gPSB2YWw7DQo+PiArDQo+PiArCXNlbmRfYWNrKGNvbm4sIFhTX1NFVF9RVU9UQSk7
DQo+PiArDQo+PiArCXJldHVybiAwOw0KPj4gK30NCj4+ICsNCj4+ICAgc3RhdGljIGludCBj
bG9zZV94Z3RfaGFuZGxlKHZvaWQgKl9oYW5kbGUpDQo+PiAgIHsNCj4+ICAgCXhlbmdudHRh
Yl9jbG9zZSgqKHhlbmdudHRhYl9oYW5kbGUgKiopX2hhbmRsZSk7DQo+PiBkaWZmIC0tZ2l0
IGEvdG9vbHMveGVuc3RvcmVkL2RvbWFpbi5oIGIvdG9vbHMveGVuc3RvcmVkL2RvbWFpbi5o
DQo+PiBpbmRleCA2MmNlM2IzMTY2Li42YTA2YjBkMWFmIDEwMDY0NA0KPj4gLS0tIGEvdG9v
bHMveGVuc3RvcmVkL2RvbWFpbi5oDQo+PiArKysgYi90b29scy94ZW5zdG9yZWQvZG9tYWlu
LmgNCj4+IEBAIC05Myw2ICs5MywxNCBAQCBpbnQgZG9fZ2V0X2ZlYXR1cmUoY29uc3Qgdm9p
ZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwNCj4+ICAgaW50IGRvX3NldF9mZWF0
dXJlKGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sDQo+PiAgIAkJ
ICAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKTsNCj4+ICAgDQo+PiArLyogR2V0IHF1b3Rh
IG5hbWVzIG9yIHZhbHVlICovDQo+IA0KPiBUaGlzIGNvdWxkIHNheSAiaW1wbGVtZW50IEdF
VF9RVU9UQSIgb3Igc29tZXRoaW5nIGluc3RlYWQuIEJ1dCBhDQo+IGNvbW1lbnQgaGVyZSBp
c24ndCBnb2luZyB0byBnaXZlIG11Y2ggdmFsdWUgZm9yIGludGVybmFsIGZ1bmN0aW9ucy4N
Cg0KSWYgbm9ib2R5IG9iamVjdHMgSSdsbCBkcm9wIHRoZSBjb21tZW50Lg0KDQo+IA0KPj4g
K2ludCBkb19nZXRfcXVvdGEoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAq
Y29ubiwNCj4+ICsJCSBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pOw0KPj4gKw0KPj4gKy8q
IFNldCBxdW90YSB2YWx1ZSAqLw0KPj4gK2ludCBkb19zZXRfcXVvdGEoY29uc3Qgdm9pZCAq
Y3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwNCj4+ICsJCSBzdHJ1Y3QgYnVmZmVyZWRf
ZGF0YSAqaW4pOw0KPj4gKw0KPj4gICB2b2lkIGRvbWFpbl9lYXJseV9pbml0KHZvaWQpOw0K
Pj4gICB2b2lkIGRvbWFpbl9pbml0KGludCBldnRmZCk7DQo+PiAgIHZvaWQgaW5pdF9kb21h
aW5zKGJvb2wgbGl2ZV91cGRhdGUpOw0KDQpUaGFua3MsDQoNCg0KSnVlcmdlbg0K
--------------IrHlqgskTrdNRN77Ax9QwgiV
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-----

--------------IrHlqgskTrdNRN77Ax9QwgiV--

--------------wVkoSJuDoqeUhvQH39Md02eL--

--------------uMGZF4063yCugDi0LfUFJzYh
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/Ey8FAmm4IW8FAwAAAAAACgkQsN6d1ii/Ey/p
ZAf/Z9tO0KcVojJ/PUiDvkDwJXCAYnwqDMzmEy5c/38adX9WoibAVbZQGJb9XtQmSFbwQwAiF4x3
qiwYApbEQtvETl+41Ib4ipAR2rK0FjhlSnHC84baPymNEwT0ARjfi0Y6DKS+ia+xsTW2tnMxfhhx
cPsLi3rD7oC6yWtC1Wgfs+iWIPXcD8/d4J3mdxRhf2+rVAYcJQs+3kO62amnPN1QYrSCU8M1yTsK
B31tOmWdxRs8Crh6ruNGvHJxKW3DV6EodTHBLm5IkrX4iCDP2a/7xnrWt6/lW9QvJyk8YLCOLAT5
B8FJkXUmDZF3M1r4796t7PNpWq3pJs0nzrBaJSAg4w==
=pAES
-----END PGP SIGNATURE-----

--------------uMGZF4063yCugDi0LfUFJzYh--


From xen-devel-bounces@lists.xenproject.org Mon Mar 16 15:37:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 15:37:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255649.1550543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2A0B-0002pU-JE; Mon, 16 Mar 2026 15:37:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255649.1550543; Mon, 16 Mar 2026 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 1w2A0B-0002pN-GW; Mon, 16 Mar 2026 15:37:07 +0000
Received: by outflank-mailman (input) for mailman id 1255649;
 Mon, 16 Mar 2026 15:37:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5v8r=BQ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1w2A09-0002pH-JD
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 15:37: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 fa39bc0e-214d-11f1-b164-2bf370ae4941;
 Mon, 16 Mar 2026 16:37:03 +0100 (CET)
Received: from SJ0PR13CA0075.namprd13.prod.outlook.com (2603:10b6:a03:2c4::20)
 by DM4PR12MB7600.namprd12.prod.outlook.com (2603:10b6:8:108::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.16; Mon, 16 Mar
 2026 15:36:58 +0000
Received: from SJ1PEPF000023CC.namprd02.prod.outlook.com
 (2603:10b6:a03:2c4:cafe::9d) by SJ0PR13CA0075.outlook.office365.com
 (2603:10b6:a03:2c4::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.24 via Frontend Transport; Mon,
 16 Mar 2026 15:36:54 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF000023CC.mail.protection.outlook.com (10.167.244.6) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9700.17 via Frontend Transport; Mon, 16 Mar 2026 15:36:58 +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, 16 Mar
 2026 10:36:43 -0500
Received: from [172.29.224.195] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 16 Mar 2026 10:36:43 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fa39bc0e-214d-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OrZnrfoPWqsbo8gCEW2mIe7dvGvQ8KjoINO82bKvOtM+dLCkmgH3I6jhxNFPTL/8YCo8eqGm7rC7w+XHiVq4cKaWesnq18WkgPYnWnZWwjLCN1YesFrCTxmvPx2XqXVuyRBVhTsL9Scp4epvv8HvIBnXcHyJpMYO5Em9sj4KqSmvBI4r6wOrrGCwqXqfKm4AoZm+I6aRN9JUJWNBiAlc6qaoDWwB0pOvQFHdN49UV77XDd0qbrkDGkYkPtOUbn8Kb7ySQhuhD/jYNYot3QAJ88IdmAFFB30OHNHM6l4Q166nkQ/pQJtcNqKADR1lZAGh7FpQj9/6k1LQK0vceCA8Vg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Dpu8iTh2sFvUOhDWYTcPAeVJmYYtyW1UMq5u+rOi40A=;
 b=js/aLWr0RyWt2WsJBPt+uvlCLtBiGJUAbheQbYwAe2VZFeSHrLZNcsAexa8vRA7sm3ngDhR24ClJ0n8GlGzJPbf/Ih6E/nP2c8XqRmzW6Esu00fk2tVajoZJdIITwgenE/mfV2IW+9gyKvgbAHFG+BDL0i8y+iEmx08XBhOrw6EeskyAlCn1thOIxADbyvluJurTK7N8KFO2mgHsyyelzYXIe/SVLyG4Vke+EWapUjf/2her9OA//t6iWZwkT11P3c1fx7e4SWE4pNhx0OfyXGqmS/+duSvma1A6nB1YeGxLskbe3TfGqYZrWGBs2xsBwThTzS+wjfIOYoWoH0S5zg==
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=Dpu8iTh2sFvUOhDWYTcPAeVJmYYtyW1UMq5u+rOi40A=;
 b=gx/KlwDB88l9uKUVWNBHg0M3z9mmuAtcVLkfCiCobPnLH1hVmhNN5l0N4FArEKNaWRk4OIKt/OHs2/SOHt7YSHqJN2KeZIL87wsjBAuA759CE7fKyj1zyWw6qcVtqjzomx5zNJwSFr+DYNzsnHhbpf65YUe9CY2juUfM0CJyJRA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <56e0c738-76cc-4883-afc9-1d76d211ee0e@amd.com>
Date: Mon, 16 Mar 2026 11:36:42 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] install.sh: Preserve directory symlinks
To: Thierry Escande <thierry.escande@vates.tech>,
	<xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>
References: <20260313172456.871518-1-thierry.escande@vates.tech>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20260313172456.871518-1-thierry.escande@vates.tech>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000023CC:EE_|DM4PR12MB7600:EE_
X-MS-Office365-Filtering-Correlation-Id: 816e3b47-4e99-4658-fef4-08de8371dc56
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|1800799024|82310400026|376014|18002099003|56012099003|22082099003|7053199007;
X-Microsoft-Antispam-Message-Info:
	GQIZGPMuHr8lCbXff4yIIxv6iVNJ9YAheS8Wnk5D694LsQgtQvf1JMXgxKfXckR422VqFzizoO5kSEE0MkgTKfrJms9vD91VQZiNegNKltQbq91I6Ug3k3kTbKpznm7cYLbTkCRqIlyf5DrcKcapDiEh7pqHRyyhYwgcWyBGCUSXadTH9A+Zu5H1+VrunLIH/46xa2lqAckNWR2YCC9svBx6ZOZbEmfDxfTmtXrOVii1aI8R7XynWlQZ1mrw/lq94mUzPA1BOVt+ccRIeDh4SUHk8zYDU2saA+fkiGHvS0QtUNKWFbR3gMJ4c3EZ/lovdaeN7ZMkJgVNr3OtH2l+kJKBkX0XRIyeHblClBfDPV9QO9zhOd5cQvf0Yq/g/nwIGugdYSCSRVYLDOGTGpvWQs5SB79uB4CdTJeHgJelS/WrCQkMT5/IT4ERGFTZaMa409qBsgCzkUWOviMhrXG+eTnKlsVNSIui8PPMQ79KKXcfvbGw3ZE1GGgUOJVJ7DiQqMonEuAbFDvFXamh0QuHPZf/BwgwIGs4kROj6UbjlAUfNO0N5+Y3N1KWk8btpAEG7rjHENRgSk8RuLAeqfA0wiI/YYBJ0/v/axRS26ed+Hh9RWURdfTK1/kZ2A2zHiFmYC1GLUS4KKi8CwwVSecmoOx4INCoABFWckcibfPF3niqMCTgzHEYvYvI2YryMj7d7gcEwE0yWOrtyb5G+oYGaYpGkH3R4Kf8SuSazGRccuZEmrlN7cprh+Thv5waCpVvbp99vTMXgQyZidyH3VfF/Q==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(1800799024)(82310400026)(376014)(18002099003)(56012099003)(22082099003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	7UWjJJ5EynoAz7ecQ9k/IxKT0N6TigvmTMrXl2UBrM/xDcvdbFdMaiWlncofmQ9kHLJGKUZILiJtYLlF1qN/JYI4QjjIWdNZV86+E/uJZfBKHDFF4dRr0en/Cz54VKKrkp/NvpV1+9pJHt1/ySYvpaJjFykTbB4Ff/eOF+LZ5Dggi9U23Vj625Le/DSi0XeGFqy1cSU3MuyXEY63/w9+8PtG+GsYKr0t3HlSBbfEXUORQ/MgdV4WfV4c5MRlr7e4MoXJQ2aH4Q3ElNIYHE1re2NYNyHI+Aj/vzZeyhI89CawbeZBi8Ihf5SHRweSsoZjDW/TRlf++ToWJ1Zw30fq45S+d8STviw2do5i2Iz3jeL1uBUqMhJkNnTZD86ZJ0S4HZwyIhzUHBwzeDlGmwyW90kBBWvgH7qJONEfBG4Up9rzLZgPqr7O1NC/3rpTsTec
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Mar 2026 15:36:58.3634
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 816e3b47-4e99-4658-fef4-08de8371dc56
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF000023CC.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7600

On 2026-03-13 13:25, Thierry Escande wrote:
> In various distros (i.e. Debian) some folders like /lib or /var/run are
> symlinks. Using the tar option --keep-directory-symlink preserves these
> symlinks.
> 
> Signed-off-by: Thierry Escande <thierry.escande@vates.tech>

Coincidentally, I hit this last week.  I think the commit message should 
be expanded because it resulted in a non-functioning system.  I switched 
to make debball, but thanks for fixing this.

I saw Ubuntu's /lib -> /usr/lib symlink replaced with a directory for 
/lib/systemd/system/xen-watchdog-sleep.sh.  With /lib broken, systemd 
(/sbin/init) could not start and boot fails.

The fix was easy -  just restoring the /lib symlink.

So maybe add "Replacing the /lib symlink with a directory results in a 
non-functioning system."?

I thought /var/run was addressed by:
Fixes: 9d628ff6cc21 ("tools: Fix install.sh for systemd")
It hasn't been an issue for me since that change.

For /lib a fixes is either:
Fixes: e54a6cd6a1f3 ("systemd: Add hooks to stop/start xen-watchdog on 
suspend/resume")

or

Fixes: b34bde262c8c ("systemd: fall back to default system-sleep dir 
without systemd-devel")

It might have only been the second one that defaulted to /lib causing 
the problem.  Though the issue is more general.

I do think a fixes and backport are warranted.  With the commit message 
updated:

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
Tested-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks,
Jason

> ---
>   install.sh | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/install.sh b/install.sh
> index 3e11c4d46f..5d0b7a4933 100644
> --- a/install.sh
> +++ b/install.sh
> @@ -27,7 +27,7 @@ tmp="`mktemp -d`"
>   echo "Installing Xen from '$src' to '$dst'..."
>   (cd $src; tar -cf - * ) | tar -C "$tmp" -xf -
>   
> -(cd $tmp; tar -cf - *) | tar --no-same-owner -C "$dst" -xf -
> +(cd $tmp; tar -cf - *) | tar --no-same-owner -C "$dst" --keep-directory-symlink -xf -
>   rm -rf "$tmp"
>   
>   echo "All done."



From xen-devel-bounces@lists.xenproject.org Mon Mar 16 17:08:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 17:08:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255669.1550553 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2BPt-0005t8-UC; Mon, 16 Mar 2026 17:07:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255669.1550553; Mon, 16 Mar 2026 17:07:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2BPt-0005sz-PQ; Mon, 16 Mar 2026 17:07:45 +0000
Received: by outflank-mailman (input) for mailman id 1255669;
 Mon, 16 Mar 2026 17:07: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=O1rk=BQ=oss.qualcomm.com=vijayanand.jitta@srs-se1.protection.inumbo.net>)
 id 1w2BPs-0005st-QA
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 17:07:44 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a4ed33db-215a-11f1-b164-2bf370ae4941;
 Mon, 16 Mar 2026 18:07:43 +0100 (CET)
Received: from pps.filterd (m0279873.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62GF2bE81533915
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 17:07:41 GMT
Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com
 [209.85.215.199])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cxm5k0fwr-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 17:07:41 +0000 (GMT)
Received: by mail-pg1-f199.google.com with SMTP id
 41be03b00d2f7-c73935acff2so2708734a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 10:07:41 -0700 (PDT)
Received: from [192.168.1.12] ([38.254.186.229])
 by smtp.gmail.com with ESMTPSA id
 d2e1a72fcca58-82a072418e9sm14954842b3a.3.2026.03.16.10.07.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Mar 2026 10:07:39 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a4ed33db-215a-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	n1xeMoYeUM0iSmvPxnEiOO/lpTwBXAxToBC2I8g5MT0=; b=X+Nlgmj4OOaKssRg
	4e+d6j+YInLZbUUYEhBCPUFKoIM4YtGoc99GwqQ10TJmPjB/CmSuHpPwmbV7wSg+
	gmPOqgVaLk8ZRcWDLGYwb4WoBNwYGGAQu9LwjKdtBF4Vq/PP8ILX80VePosnAn9/
	VUBBXlO9VluIzXokZac37bTWrwu/A3+s3GmM9CEKFq++6YzLLn0yfllLDnndTx2S
	kyronXorVd/CLR6pMaqTIWmB5SUN5szZpHBFg6AuY1JRWB88ClPlvnATCqj73Fae
	8wnwP1NqnvRuRn/MfB0lX8kaZ0Fjrfu8XnfDTCed23SOC09MYiYYPVBbVNuAGwNZ
	/Pg+zA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1773680861; x=1774285661; 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=n1xeMoYeUM0iSmvPxnEiOO/lpTwBXAxToBC2I8g5MT0=;
        b=A35/X7sdQsR2OC6SC35xgegf+gTg1HCd31LARJU/GrcHKqE4S1G12wlVxEHCqC5Kp8
         Xyi7VLC5YSbLnoT01NUE6JMa3zGi0tjHSS8RyyLc6Xum07DGBUHKlMICs1E9HJKVD/CR
         u2VnURKoFTywqm5P0zjRNsRLrBS6lRgcDni/gx64Tik4qJjNWVx5rbKKPdfuQM6xYtTw
         WE0sWKge6JKGJNjeNlf7buA1YcOym1V8qJfxHrKak4CgS8aKJ+TJzt0EgDLVhZFgGNp4
         psbqeGrXI0UB1VH7Y0goFVzIXKY4FGZ6PhpH4ZKNcdE2YTdmtImtT/84mkM5lqscr2Ed
         nuYA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773680861; x=1774285661;
        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=n1xeMoYeUM0iSmvPxnEiOO/lpTwBXAxToBC2I8g5MT0=;
        b=hHT/vZDyeg4qCh8gufshx3C71jIvLnpGlu8fpLmdYCCY7DimCIb5pKF0cf7JXOlU//
         0ondJrcFAexBGtNKE2hxVNGihj//3OR1IwuWZv2B6LJnpH2do9UFUsKzi9Z90vX9ymi+
         3XZHeee/4ZxbtpT5IOLhfJkk7iB0pxMdi+p+e6en2whGfOEFaUUHXMJyShwvxY0L5n6T
         HJ/bdSww7qiKXm6zCN/3QzzZwNHZwlqpXiFAqEO2DeDYC+GrTdTCgXSrVlScOrfrJ9lK
         Vk6xFVnl4ymW16obE6SpNa7VHVNVpE0gMSNXGdLbP+ZDU5SfaI9a4/2T2Aw8MF+YWYLn
         TfmQ==
X-Forwarded-Encrypted: i=1; AJvYcCX5GU1+Ax4oGruBey6yEgFqIs6qbV5V7IzyfFdAySpb+czL0qCd1v6ueteWKF4qMoL52hmi4GM1hL4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx+ZRf9dcJ2PuOUHaAUtQE8ndaG4zAOy6ub9vCAvZ53nczcwvyK
	ca1iVD6y7Ek2LM12dyhrVoK+qAJ8nS3XHaLdaAXcc0Lq4fktWTTl9r80aeN9/Lorh0LXG3D66YF
	NfMDNayUyCWS1Ql0ETiU3BXaF++tEUGNccdKmK/x3/hE5kySO6T7kaMPjV3sabvk7LewUuw==
X-Gm-Gg: ATEYQzxuBo7/rMvsJ4PdcxKZe8nWjaCmD5Qy6u6gD/UTZcSUNtj79Z2p0woxu+ZEZ1Y
	7M0mogx1H+YDpwAHXvyAXBGGuiVvy82DyM5t0cMIDgqlX6BewLu6gx6dmK1xlLeBwTSs699bk0z
	XHN3+AQHf6bJKS2w2Yq/Oyw1J3g4fxLrX5Lhr3bTvHVLC2i6ndQHnquHFy8hpqAX0u8QNIzPgZs
	dEDoBERcJim3ZYtVfRB32J9vkBiMOd+bw3DuUlxSf1yw9s9T4xLdj+Zbt1zksYOYDbstkJeub/W
	h4zNgrIX8+ATvcOyV+XSOppHFRj9kdmqHoLPynmJR1fukMAlmjWfNO4bi0Y5G3pWP/Dq4GMIT3L
	3Pwo/mvi/tOEg5qA+9FQAOS0gw4TUs/C6LB9GHu8vTHYjtOyBVkTiMe3yWQ==
X-Received: by 2002:a05:6a00:854:b0:81e:81fb:b392 with SMTP id d2e1a72fcca58-82a196d9795mr12519520b3a.11.1773680860304;
        Mon, 16 Mar 2026 10:07:40 -0700 (PDT)
X-Received: by 2002:a05:6a00:854:b0:81e:81fb:b392 with SMTP id d2e1a72fcca58-82a196d9795mr12519484b3a.11.1773680859759;
        Mon, 16 Mar 2026 10:07:39 -0700 (PDT)
Message-ID: <dbfcbc9c-2175-49a3-aee4-434b69cbaece@oss.qualcomm.com>
Date: Mon, 16 Mar 2026 22:37:25 +0530
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 2/3] of: factor arguments passed to of_map_id() into a
 struct
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: Nipun Gupta <nipun.gupta@amd.com>,
        Nikhil Agarwal
 <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?UTF-8?Q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas
 <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
References: <20260309-parse_iommu_cells-v10-0-c62fcaa5a1d8@oss.qualcomm.com>
 <20260309-parse_iommu_cells-v10-2-c62fcaa5a1d8@oss.qualcomm.com>
 <esfzpgpgenydif2sxahsetkglz6kewsgjhkmzr6ulrrkctnkbq@a4zsfdmhbxui>
 <27edd195-b0d3-4214-9df3-74a84da1e3e1@oss.qualcomm.com>
 <dyjdwxaq4oc7ahri3iuhnmobh3gwmn6drhox7t2elep4rlqhuq@fe4gp5t7q5r5>
Content-Language: en-US
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
In-Reply-To: <dyjdwxaq4oc7ahri3iuhnmobh3gwmn6drhox7t2elep4rlqhuq@fe4gp5t7q5r5>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Authority-Analysis: v=2.4 cv=fJ00HJae c=1 sm=1 tr=0 ts=69b838dd cx=c_pps
 a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=FuYIH7Xx0xzBSkYrynBYgw==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22
 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=GQrJT2J37VpXmJLvS4cA:9 a=3ZKOabzyN94A:10
 a=QEXdDO2ut3YA:10 a=_Vgx9l1VpLgwpw_dHYaR:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzE2MDEzMyBTYWx0ZWRfXzPV3/SP2yudL
 IZLajUsGZLqAjZhNtwmY6q6+dBIisyiPIrrFC2ES222WumAwZ9Yxo5sisTdjiU/yWQ07tSqmUfm
 RtLpYAncqKxqBnymfAaKX6ZSm3cU02v8OXHraL33FOLJOcIs5aB2nnarKxEnfCI/TFQNQFQLDI5
 jkFnNFPN6J1X8AM7n6uwJvwytBpcqjW9RZhIJl8htsLfo4aqQ7LbwLwloOcZF7pssIKgJt/GhC3
 ZI85M/Kp4YTInt8meRmDBCobf5Bz827sdPYmzdMlomKvXBaBl/q1Wj/uTSd2ELXZch0PplbWtX5
 cvy5dVkBKzX5ISETgsalSOGZPMM3FHei4VXJLDsS5shNHpUMv6iPy/xE/VuJpB5qVppZvM2bLqV
 nmzk0wBIoqHPMW9Dd6jSRwrKyx0DOQEdELFJA9+KKZH00IcqMUrCbbJdWWYlUifDMiJ2GbIkCUP
 9QlrgvwhLhR40+pp5Pg==
X-Proofpoint-GUID: EJ6PbtZf79aibYy7y6pihTahqogIvTS4
X-Proofpoint-ORIG-GUID: EJ6PbtZf79aibYy7y6pihTahqogIvTS4
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-16_04,2026-03-16_04,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 spamscore=0 clxscore=1015 malwarescore=0 suspectscore=0 phishscore=0
 lowpriorityscore=0 priorityscore=1501 impostorscore=0 adultscore=0
 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound
 adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001
 definitions=main-2603160133



On 3/12/2026 7:48 PM, Dmitry Baryshkov wrote:
> On Thu, Mar 12, 2026 at 05:12:51PM +0530, Vijayanand Jitta wrote:
>>
>>
>> On 3/10/2026 2:53 AM, Dmitry Baryshkov wrote:
>>> On Mon, Mar 09, 2026 at 01:03:38AM +0530, Vijayanand Jitta wrote:
>>>> From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
>>>>
>>>> Change of_map_id() to take a pointer to struct of_phandle_args
>>>> instead of passing target device node and translated IDs separately.
>>>> Update all callers accordingly.
>>>>
>>>> Subsequent patch will make use of the args_count field in
>>>> struct of_phandle_args.
>>>>
>>>> Suggested-by: Rob Herring (Arm) <robh@kernel.org>
>>>> Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
>>>> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
>>>> ---
>>>>  drivers/cdx/cdx_msi.c                    |  5 ++-
>>>>  drivers/iommu/of_iommu.c                 |  2 +-
>>>>  drivers/irqchip/irq-gic-its-msi-parent.c | 11 ++++--
>>>>  drivers/of/base.c                        | 63 ++++++++++++++++----------------
>>>>  drivers/of/irq.c                         |  8 +++-
>>>>  drivers/pci/controller/dwc/pci-imx6.c    | 16 ++++++--
>>>>  drivers/pci/controller/pcie-apple.c      |  5 ++-
>>>>  drivers/xen/grant-dma-ops.c              |  4 +-
>>>>  include/linux/of.h                       | 12 +++---
>>>>  9 files changed, 76 insertions(+), 50 deletions(-)
>>>>
>>>> diff --git a/drivers/cdx/cdx_msi.c b/drivers/cdx/cdx_msi.c
>>>> index 63b3544ec997..03232b5ffbca 100644
>>>> --- a/drivers/cdx/cdx_msi.c
>>>> +++ b/drivers/cdx/cdx_msi.c
>>>> @@ -121,6 +121,7 @@ static int cdx_msi_prepare(struct irq_domain *msi_domain,
>>>>  			   struct device *dev,
>>>>  			   int nvec, msi_alloc_info_t *info)
>>>>  {
>>>> +	struct of_phandle_args msi_spec = { .np = NULL };
>>>
>>> Why do you need to set it? Parse functions ignore passed args, don't
>>> they?
>>>
>>
>> The parse function does check arg->np on input — if it is non-NULL,
>> it is used to match only entries targeting that specific node.
>>
>> Also, there is this existing path in drivers/pci/msi/irqdomain.c which
>> pre-sets the node and passes it as input to of_msi_xlate(), so the node
>> pointer is not ignored by the parse code:
> 
> Is it only being used for MSIs? If so, can we make that explicit in the
> API by having the 'filter' device_node pointer?
> 

Yes, I see this is used only in the MSI path via of_msi_xlate(). 

By filter do you mean the below changes ? here of_map_id() and of_map_msi_id() would accept the filter
as a separate parameter so that arg becomes a pure output:


int of_map_id(const struct device_node *np, u32 id, const char *map_name,
              const char *cells_name, const char *map_mask_name,
              const struct device_node *filter_np, struct of_phandle_args *arg);

int of_map_msi_id(const struct device_node *np, u32 id,
                  const struct device_node *filter_np, struct of_phandle_args *arg);

of_msi_xlate() would then pass *msi_np as filter_np down to of_map_msi_id
and IOMMU callers would pass NULL to of_map_id. 

Does this look fine ? I can include this in v11.

Thanks,
Vijay

>>
>> u32 pci_msi_domain_get_msi_rid(struct irq_domain *domain, struct pci_dev *pdev)
>> {
>>         struct device_node *of_node;
>>         u32 rid = pci_dev_id(pdev);
>>
>>         pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid);
>>
>>         of_node = irq_domain_get_of_node(domain);
>>         rid = of_node ? of_msi_xlate(&pdev->dev, &of_node, rid) :
>>                         iort_msi_map_id(&pdev->dev, rid);
>>
>>         return rid;
>> }
>>
> 



From xen-devel-bounces@lists.xenproject.org Mon Mar 16 18:50:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 18:50:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255708.1550562 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2D0z-0001fu-RO; Mon, 16 Mar 2026 18:50:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255708.1550562; Mon, 16 Mar 2026 18: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 1w2D0z-0001fn-NO; Mon, 16 Mar 2026 18:50:09 +0000
Received: by outflank-mailman (input) for mailman id 1255708;
 Mon, 16 Mar 2026 18:50: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=080e=BQ=oss.qualcomm.com=dmitry.baryshkov@srs-se1.protection.inumbo.net>)
 id 1w2D0y-0001fh-Hu
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 18:50:08 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f25c564f-2168-11f1-b164-2bf370ae4941;
 Mon, 16 Mar 2026 19:50:06 +0100 (CET)
Received: from pps.filterd (m0279873.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62GF2hJ31534044
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 18:50:04 GMT
Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com
 [209.85.222.199])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cxm5k0tpb-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 18:50:04 +0000 (GMT)
Received: by mail-qk1-f199.google.com with SMTP id
 af79cd13be357-8cd773dd39bso3817325885a.2
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 11:50:04 -0700 (PDT)
Received: from umbar.lan
 (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi.
 [2001:14ba:a073:af00:264b:feff:fe8b:be8a])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-38a67e5ec94sm32925111fa.22.2026.03.16.11.50.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 16 Mar 2026 11:50:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f25c564f-2168-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	hl0a6sUmp0DkvLU0LqWwqkjbWyZqCa4rM7hGljELxLU=; b=YeiJiSl5ylcjuBqo
	JLCCCjdfyaY0P7hSHeH9IsIXsowGuZ7DxN4Hw0YYDQAfI5pKIsvUrizF79RnYmA3
	xKqITLewGKcEa6O7/m5ptwZevfgf5vi8dU9mxQKcf4xE3fwUee4s2YVwZC2t5PRp
	X9EbLF0gW0P6ZfJBdslzoZzfh/1VmhUfqNekM1VO9F991759geoCm/DY9HC+GJ39
	bFGi3McuYPJ2rYewW580PglNRMztWqV9a604wjvJ/ixY7SW7Y7QXt1PfTdi0L9zY
	NyLtR0ACN+inYv6Z3RgaP7jAmTbrFwvlZ2bxwI8fMoHknW5edwWeONwWeFmMJPSY
	KTKvVQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1773687004; x=1774291804; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=hl0a6sUmp0DkvLU0LqWwqkjbWyZqCa4rM7hGljELxLU=;
        b=WanuIcizAEmG8nYzm4QnPhyZ74Og6UKM2BIkbOjgdNUR7oDgIe6zNqfyL0ztx8X6Ne
         EpZnsg/xXBjH7q3nkbEAcWHl7bvm4F4MeCZ29eDCzVu4Ps33E008L9kaOtHrD50losdb
         w6NDPnfY+NAe4+0b6Qxq57G/CR0o/tn4dUSWqmiQ5SotetTZjAcVqM1haD24h0DTy1Kc
         s4sdlVOaM5oP1fi0CUID4/b+YuY+Z86PYh1r23trYzKPyI7ttiDOdPA/HLznshXEHg0e
         PYzRc16kRI34ceQaVtqAPmE0bp+knDRn6NIn/RwbKmzhBPiqLPolraYCSag6ZArAan1p
         +4SQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773687004; x=1774291804;
        h=in-reply-to:content-transfer-encoding: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=hl0a6sUmp0DkvLU0LqWwqkjbWyZqCa4rM7hGljELxLU=;
        b=RbSsGyJCeHAD6EaRTzFIfX4xPMN0ySuKdvP0+FYgCnFXdaNYQxfTl7cNgKjjaiAoTK
         4gtwA5s+/eNWJ0RqLHVGRlN1M9Qu3HUWL/MmYwP5QvMhgsID0r/YY6/nnkTWrZHUpsPY
         8HWmfCWLcSHd9/dkx7hvlHMH6XfqVyebsRnJIocY42bJGJuKXyRScXYOnMcC6EQ8osdA
         HiSQoTYEZZQGsc8vWDs/9gVp5xB219JIv7Nn9MyoQT+CinHh1xRfU37F73yZo8uu33Md
         aDKDQFu5liixQFiUvvJv7C8iwSFKoKi5lpiO1yZY/8bOaYHYmQFZngGo1GpAVFZWjpGX
         dGbA==
X-Forwarded-Encrypted: i=1; AJvYcCXcNHX9JzeRxnq/nISfvBvQMBT3HkYZngTy/Vi9ykEjWCeSaG3IAm6CzE7QjI4zXLL7rocmqasrIbI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YycqvsoPyLt2DlNCKa8fNnZu6k65sqYfEQy3+7rdI+mKMRirPLS
	EqcKmPUQ5OwkXXAmDAX9hCQ3msD9iqmnmy428rxgxFE7whOZJfKgo52O9T9y04rExYWpmNtXgPI
	mnzmJP4Cw4jN71zWCyLyayoUHexY23VFtjKmBJBzvB+TMYGYTk7pIdL68qIlm1JjLwKxjfw==
X-Gm-Gg: ATEYQzzAFw/92RTEH5W75dk2mi7vevssG4Q8aAOyuefMZiwxj3meZBU+cfoTlAEcaJ3
	FaS5N9upRdnKI0b3hhPIzj14Def8QQX4ZmKFxSh/Fr6iEaSrCuBuXQ3NtY2txv9IhCr624Y8tdv
	gkWTJQZwZxihg3sqjLJskjAL/Ay9kc4gIQby+jrViXHBy+gW/3FkFfCeLEgvpUmbOEF16jQAGvs
	6K2JrozBrXwjBuRMtSVYsDrmJGyvtZYUB9MU6pqWh3yCYkhsj7OSuVEQCj6ULS61hNtG+ut4UYY
	mezivwZDV+6nRyVicgOlWd1UEGDzsRDrWo8afnz1OtOUMmnlgqNuNnkdFyQHk4zYSu7Ymi8b7KS
	Y/6nC2vHFbSvWIjByUTb7TlaCUG8gleF0zzHtbxpplLXwkugaX4W3MykUEe8lu4rAH3zm+h0pyH
	aemhuK6Qi9Gq7CCjcxWzE27IEry7er/s2Nv0g=
X-Received: by 2002:a05:620a:711a:b0:8cb:62c3:3690 with SMTP id af79cd13be357-8cdb5a4fac5mr1890959385a.13.1773687003770;
        Mon, 16 Mar 2026 11:50:03 -0700 (PDT)
X-Received: by 2002:a05:620a:711a:b0:8cb:62c3:3690 with SMTP id af79cd13be357-8cdb5a4fac5mr1890952785a.13.1773687003057;
        Mon, 16 Mar 2026 11:50:03 -0700 (PDT)
Date: Mon, 16 Mar 2026 20:49:59 +0200
From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Cc: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Subject: Re: [PATCH v10 2/3] of: factor arguments passed to of_map_id() into
 a struct
Message-ID: <scvvpx72isnlqm4f4eub7syezmhtw5xd3agj34lonhcc5s5zj5@nsbfsbgidnw4>
References: <20260309-parse_iommu_cells-v10-0-c62fcaa5a1d8@oss.qualcomm.com>
 <20260309-parse_iommu_cells-v10-2-c62fcaa5a1d8@oss.qualcomm.com>
 <esfzpgpgenydif2sxahsetkglz6kewsgjhkmzr6ulrrkctnkbq@a4zsfdmhbxui>
 <27edd195-b0d3-4214-9df3-74a84da1e3e1@oss.qualcomm.com>
 <dyjdwxaq4oc7ahri3iuhnmobh3gwmn6drhox7t2elep4rlqhuq@fe4gp5t7q5r5>
 <dbfcbc9c-2175-49a3-aee4-434b69cbaece@oss.qualcomm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <dbfcbc9c-2175-49a3-aee4-434b69cbaece@oss.qualcomm.com>
X-Authority-Analysis: v=2.4 cv=fJ00HJae c=1 sm=1 tr=0 ts=69b850dc cx=c_pps
 a=HLyN3IcIa5EE8TELMZ618Q==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10
 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8
 a=VwQbUJbxAAAA:8 a=VXU4VRlCQCtIJetfhaMA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=bTQJ7kPSJx9SKPbeHEYW:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzE2MDE0OSBTYWx0ZWRfXwMbNyV15KBYu
 sYnrsX0e6HUKW/mhPjNKWcMYe7eUuKT/yGRyO2rsPa8seVLM+40blCwIZmjUeJvSz3BjYlxLcoi
 KQhZJqSJ74DF3sC4YsmbU6BF2HnTwvNFENUfmrabqowZcxSqHtK6EkvxfVRsen/WQK6/TLG+xRr
 NzMaEZJokN5MrdVjZklApaffU9LxL8sIJiHPPgIHAw8mx8/52iuA9tHigxWGiqig99PWzbAYu7c
 btqvy0lLQFTUXntk4c6SuNddQS8AuTkFS8dpxKKijvBRZO6T3hW/gw41nvzn+2asP/X2qeoJUeI
 Uo9g0U0Gp3DgQaMhBriV1gA7m759JA6bYqxP9tJ3TI/jLuIoIzsKxfrBQfwzeb4bS19QJMMb6lo
 NlEC67YIZBFNUt3XmVBQgw4r/xl4DWUe0MKAJpmyzmtmaELs3XX+zPQOewWXMLKhSl4FKip2ziH
 odDQjTUHyqwwC1IDnhg==
X-Proofpoint-GUID: nL_pommrbTIE2fhstu-vpmhY-gT4DbBA
X-Proofpoint-ORIG-GUID: nL_pommrbTIE2fhstu-vpmhY-gT4DbBA
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-16_05,2026-03-16_06,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 spamscore=0 clxscore=1015 malwarescore=0 suspectscore=0 phishscore=0
 lowpriorityscore=0 priorityscore=1501 impostorscore=0 adultscore=0
 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound
 adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001
 definitions=main-2603160149

On Mon, Mar 16, 2026 at 10:37:25PM +0530, Vijayanand Jitta wrote:
> 
> 
> On 3/12/2026 7:48 PM, Dmitry Baryshkov wrote:
> > On Thu, Mar 12, 2026 at 05:12:51PM +0530, Vijayanand Jitta wrote:
> >>
> >>
> >> On 3/10/2026 2:53 AM, Dmitry Baryshkov wrote:
> >>> On Mon, Mar 09, 2026 at 01:03:38AM +0530, Vijayanand Jitta wrote:
> >>>> From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> >>>>
> >>>> Change of_map_id() to take a pointer to struct of_phandle_args
> >>>> instead of passing target device node and translated IDs separately.
> >>>> Update all callers accordingly.
> >>>>
> >>>> Subsequent patch will make use of the args_count field in
> >>>> struct of_phandle_args.
> >>>>
> >>>> Suggested-by: Rob Herring (Arm) <robh@kernel.org>
> >>>> Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> >>>> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
> >>>> ---
> >>>>  drivers/cdx/cdx_msi.c                    |  5 ++-
> >>>>  drivers/iommu/of_iommu.c                 |  2 +-
> >>>>  drivers/irqchip/irq-gic-its-msi-parent.c | 11 ++++--
> >>>>  drivers/of/base.c                        | 63 ++++++++++++++++----------------
> >>>>  drivers/of/irq.c                         |  8 +++-
> >>>>  drivers/pci/controller/dwc/pci-imx6.c    | 16 ++++++--
> >>>>  drivers/pci/controller/pcie-apple.c      |  5 ++-
> >>>>  drivers/xen/grant-dma-ops.c              |  4 +-
> >>>>  include/linux/of.h                       | 12 +++---
> >>>>  9 files changed, 76 insertions(+), 50 deletions(-)
> >>>>
> >>>> diff --git a/drivers/cdx/cdx_msi.c b/drivers/cdx/cdx_msi.c
> >>>> index 63b3544ec997..03232b5ffbca 100644
> >>>> --- a/drivers/cdx/cdx_msi.c
> >>>> +++ b/drivers/cdx/cdx_msi.c
> >>>> @@ -121,6 +121,7 @@ static int cdx_msi_prepare(struct irq_domain *msi_domain,
> >>>>  			   struct device *dev,
> >>>>  			   int nvec, msi_alloc_info_t *info)
> >>>>  {
> >>>> +	struct of_phandle_args msi_spec = { .np = NULL };
> >>>
> >>> Why do you need to set it? Parse functions ignore passed args, don't
> >>> they?
> >>>
> >>
> >> The parse function does check arg->np on input — if it is non-NULL,
> >> it is used to match only entries targeting that specific node.
> >>
> >> Also, there is this existing path in drivers/pci/msi/irqdomain.c which
> >> pre-sets the node and passes it as input to of_msi_xlate(), so the node
> >> pointer is not ignored by the parse code:
> > 
> > Is it only being used for MSIs? If so, can we make that explicit in the
> > API by having the 'filter' device_node pointer?
> > 
> 
> Yes, I see this is used only in the MSI path via of_msi_xlate(). 
> 
> By filter do you mean the below changes ? here of_map_id() and of_map_msi_id() would accept the filter
> as a separate parameter so that arg becomes a pure output:
> 
> 
> int of_map_id(const struct device_node *np, u32 id, const char *map_name,
>               const char *cells_name, const char *map_mask_name,
>               const struct device_node *filter_np, struct of_phandle_args *arg);
> 
> int of_map_msi_id(const struct device_node *np, u32 id,
>                   const struct device_node *filter_np, struct of_phandle_args *arg);
> 
> of_msi_xlate() would then pass *msi_np as filter_np down to of_map_msi_id
> and IOMMU callers would pass NULL to of_map_id. 
> 
> Does this look fine ? I can include this in v11.

As this changes the params, you will also need to change the semantics,
removing the of_node_put() from the function and making the caller
release the reference (as it should be).

-- 
With best wishes
Dmitry


From xen-devel-bounces@lists.xenproject.org Mon Mar 16 19:43:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 19:43:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255727.1550571 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2Dq9-0007pG-ML; Mon, 16 Mar 2026 19:43:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255727.1550571; Mon, 16 Mar 2026 19:43:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2Dq9-0007p9-J8; Mon, 16 Mar 2026 19:43:01 +0000
Received: by outflank-mailman (input) for mailman id 1255727;
 Mon, 16 Mar 2026 19:42: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=080e=BQ=oss.qualcomm.com=dmitry.baryshkov@srs-se1.protection.inumbo.net>)
 id 1w2Dq7-0007p3-Pi
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 19:42:59 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 53915b07-2170-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Mar 2026 20:42:56 +0100 (CET)
Received: from pps.filterd (m0279873.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62GF2clC1533932
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 19:42:54 GMT
Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com
 [209.85.222.200])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cxm5k0ymw-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 19:42:54 +0000 (GMT)
Received: by mail-qk1-f200.google.com with SMTP id
 af79cd13be357-8cd858e8709so5302954085a.3
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 12:42:53 -0700 (PDT)
Received: from umbar.lan
 (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi.
 [2001:14ba:a073:af00:264b:feff:fe8b:be8a])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-5a155f33be6sm3676665e87.7.2026.03.16.12.42.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 16 Mar 2026 12:42: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: 53915b07-2170-11f1-9ccf-f158ae23cfc8
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=+cnQIkFDXwporw30NasLf4kS
	q8rzFR+Uzt/PemH3SE8=; b=TZMBzrho1ZI9j3MecyDJMrQhyfYnbp7F+HbgPg7R
	mqfG+xh/rvJqlW2mwKsCyVLwfzrC53QO8yBljjCYZZZjYabFv0bm9U5n4/bMcabq
	YF91ns+etwVEXWpgUnVfpVioCHWVnw7Cx0EpIQWBBbaQQV+X0Z4FCLk/ECUB2gu9
	IFz9s4XLYnswCOPX/A5G3JbjNPfwmH51uRI3xjMeiVaFLgWnjFPeSppW8kGt/5db
	2TR/0eQePYHL75VvPioyDrfUy4lTd5GC02JHxagrRGm3bXDSnk3HmHyicFSh+ZvW
	B756UKaOFmyJet8cUhVlEyPQtuuFGVvOCTwZLpwxvLTArw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1773690173; x=1774294973; 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=+cnQIkFDXwporw30NasLf4kSq8rzFR+Uzt/PemH3SE8=;
        b=GRLUSEYk99XDlGyyLyaVDHxAzZ359PV4X8Sxy2xxA8XPQ0Zdpo0zN1ch+dHaw9RIdV
         9kLms5VVnk8+WGTrxVZgt9pO2J9oy6bCxfc+4E0iWFZcY/ae05LNAtzPNAfKYDFSPJjH
         HOYuqpi5hUeuuKb4IPUhV7l/Ffp7C0chWwXf6fThinmw589yW2c6KQeFRNFzJqcH2irS
         2E1bfcO61dgZCo2maBOgQuT3z1PmAAxwtlu72uTM05aeU77MKifDQoZIrKH7cgbpGobI
         d3g1dfpZHBLdJXz1T90XdcT3sW/jRdHJT8I1dYohFmwkpzkN8D1lqdrvh5SaawvESHhV
         wLNw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773690173; x=1774294973;
        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=+cnQIkFDXwporw30NasLf4kSq8rzFR+Uzt/PemH3SE8=;
        b=fjEXr7UhGDyW4CSOuqhjN692+CjPF6lanXcOyVYZxRfB3xrBB7eY2+HxI3v5nvHJ0a
         OkcPmRq2PH/6Hzbc+jkZZkJxSSU7R8UuIzXN/h3PpFvjBEfcINIXJ0TX5KzcrDX9nOgQ
         EpQ8PgMmAhs2tHGmfXYguIVQZ1LDzaXDj4k6spzfDyimuVbAuZn1E9YrYtWcXJUtCNf7
         3Vf5Q/9bmPpMc9Y3fhYCevH8eytH+14WFy3UPC5W+CknakFrndARxTxMDH5iUOGG5h6w
         ujV3eNkgzjgfuVGsq0LxG5u0yOemJ6h/eQKFLtiMJdONujBXCH/YwpX2p+vOmxxL+cfQ
         f4KA==
X-Forwarded-Encrypted: i=1; AJvYcCXxf66T+uXiw7IbSX2fhizNwxl//xCESvD09bCnuZ+hrvVn9LwCTGjPsI9fzbwEdK0Q6ACHaSecyCI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YysfoxqiRjR1udug2nKraTt+wuVfJxy2juXA5iH9WE7Ws7QMXTu
	oVik2g4BSLiXGPTzeAxYRL2uJA/yBOKgalBDLQs44UYIIdQOchA7oVQ5+Zb3WoHLYm2uqchjeNU
	g+yxF+jaAXeWwigiX6SQKS3ciuJuYQl/Yl1sx1wDVqKkOe3qtTcrLyqZZYF8MqOatWl4nWw==
X-Gm-Gg: ATEYQzzZ+8DjFkVQDXMxOLCK0JZgrRd+ntAgmfgXRoT5Wa0nDfsaR+h6ZPYxurLdnBJ
	aQ18dpL5hB1C18oOcN4VLrNj6yVdLl0pohQeTVVYQnklwD7HkXz+fwCZCwpj1zGHUcTGvuuy8xD
	ioUPJdKZSw9UKwffdS8bTuuIFrrUbdrqruJYWdDskLJg9VZUE+D01vAxZ1F+drQIn8ZQYof14/i
	q6xqSWkEE7JdgxQTk7Ad1g48JfaC4d6WCUhmXTSf956/hXbWPuNUnl9JJcrSLUz/gPdghcZrDLW
	8DwgxoCcOhFvH7VXaxlja4RBBbEjWoiCsVtl0Jiurr4e453UpAqTopF+e2SRm4GjwG59smwXB/d
	nluW7N8y8RDdO6vQc2xcw6NiACAkO5yXch4HiL00m1dD4171vGkpq5yv6nph1Z+rqlQYh0jHNkN
	oFQCr/GLK79mtP4r0qRaPcsRDq9P/X5JfZuOI=
X-Received: by 2002:a05:620a:28cc:b0:8cb:72b2:2a14 with SMTP id af79cd13be357-8cdb5a4b8f1mr1825087285a.16.1773690173095;
        Mon, 16 Mar 2026 12:42:53 -0700 (PDT)
X-Received: by 2002:a05:620a:28cc:b0:8cb:72b2:2a14 with SMTP id af79cd13be357-8cdb5a4b8f1mr1825082085a.16.1773690172393;
        Mon, 16 Mar 2026 12:42:52 -0700 (PDT)
Date: Mon, 16 Mar 2026 21:42:49 +0200
From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Cc: Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Rob Herring <robh@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Marc Zyngier <maz@kernel.org>,
        Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
        linux-arm-msm@vger.kernel.org, iommu@lists.linux.dev,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
        imx@lists.linux.dev, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2] of/iommu: support multiple iommu-map entries per
 input ID
Message-ID: <z4eqsfnxiprfktxi5g7miqqukhjsqqbivs4jqmox6r75x6pbyd@hgtkiy3ltyzu>
References: <20260315-iommu_multi_map-v2-1-51b98cb79331@oss.qualcomm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260315-iommu_multi_map-v2-1-51b98cb79331@oss.qualcomm.com>
X-Authority-Analysis: v=2.4 cv=fJ00HJae c=1 sm=1 tr=0 ts=69b85d3e cx=c_pps
 a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10
 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=VwQbUJbxAAAA:8
 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=b47Md4NF8ZsVKqcXDakA:9 a=CjuIK1q_8ugA:10
 a=PEH46H7Ffwr30OY-TuGO:22 a=TjNXssC_j7lpFel5tvFf:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzE2MDE1OCBTYWx0ZWRfX5Tu7pUsiBTd3
 ZvuoV/lyeDZbHlnwWs4cGnnf8moRecFDtIgh4Bkgju6gqoqJVwXyooP7fmA7sLP0FRaluJKU/Qx
 tDR1KT94fRMnk2AEES2Cj33aF6IzeM7cLw3zCZ31/LBnLVF7FeUsskvRifTvnmOnAewuZFQYAoj
 8uH/Z3Sv8HpK8yUtrkjqwXQpsQ5qK1OlftfVYKIJBJvLu8XOV3Y4x8arK8fJ31uAI3NAX41F89X
 2Loa3MRWXmiHydMdLoDxjh4rbRNEXoWBKVmDXBJaN/1N6t8IpozkSBCYp2vMgZPQCIaaWXVfQ6u
 OU6VpyUXh4ZgoI4kh/AvNAUi3SE1vd/WuDOhijQsrowXJUI60Td9tYPBeI0iZXgGaqO73yfwaVC
 FmI3/D2cktB10jfkoPqHzoB+jlTW8v7o00LUU3f6JufCmj0MDC+KL4K12EC3ZbZ7IpzeLn0YTZq
 Qq1HQTMi11/TBimaS3g==
X-Proofpoint-GUID: q_rFwqkcR5ud9gn_e-5l8US1jaQla2od
X-Proofpoint-ORIG-GUID: q_rFwqkcR5ud9gn_e-5l8US1jaQla2od
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-16_05,2026-03-16_06,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 spamscore=0 clxscore=1015 malwarescore=0 suspectscore=0 phishscore=0
 lowpriorityscore=0 priorityscore=1501 impostorscore=0 adultscore=0
 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound
 adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001
 definitions=main-2603160158

On Sun, Mar 15, 2026 at 10:37:43PM +0530, Vijayanand Jitta wrote:
> When multiple mappings are present for an input ID, linux matches
> just the first one. There is a usecase [1] where all the mappings
> are to be maintained in parallel for an iommu-map entry of a same
> input id.
> 
> Add a next_offset iterator parameter to of_map_iommu_id() and
> refactor of_map_id() internals into a static helper to carry it.
> Update of_iommu_configure_dev_id() to loop over all matching
> entries to support this case. All other callers pass NULL and
> are unaffected.
> 
> [1] https://lore.kernel.org/all/20250627-video_cb-v3-0-51e18c0ffbce@quicinc.com/
> 
> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
> ---
> On Qualcomm kaanapali, the VPU hardware has multiple internal blocks
> that generate different stream IDs for the same input ID. The device
> tree encodes them as separate iommu-map entries sharing the same input
> ID:

Vijayanand, even I would not understand what you mean here. What is the
"input ID". Please describe the issue _exactly_, which blocks, what do
they genrate and when.

> 
>   iommu-map = <0x100 &apps_smmu 0x1940 0x1>,
>               <0x100 &apps_smmu 0x1a20 0x1>, ...
> 
> This requires multiple iommu-map entries per device.
> of_iommu_configure_dev_id() currently stops at the first match,
> so only one stream ID gets registered with the IOMMU.
> 

-- 
With best wishes
Dmitry


From xen-devel-bounces@lists.xenproject.org Mon Mar 16 20:04:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 20:04:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255742.1550580 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2EAr-0002Ls-AY; Mon, 16 Mar 2026 20:04:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255742.1550580; Mon, 16 Mar 2026 20:04:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2EAr-0002Ll-7C; Mon, 16 Mar 2026 20:04:25 +0000
Received: by outflank-mailman (input) for mailman id 1255742;
 Mon, 16 Mar 2026 20:04: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=QYmb=BQ=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1w2EAq-0002La-Hh
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 20:04:24 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 510a60ff-2173-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Mar 2026 21:04:20 +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 62GK3bl6095401
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Mon, 16 Mar 2026 16:03:43 -0400 (EDT) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.18.1/8.15.2/Submit) id 62GK3bFC095400;
 Mon, 16 Mar 2026 13:03:37 -0700 (PDT) (envelope-from ehem)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 510a60ff-2173-11f1-9ccf-f158ae23cfc8
Date: Mon, 16 Mar 2026 13:03:37 -0700
From: Elliott Mitchell <ehem+xen@m5p.com>
To: David Thomson <dt@linux-mail.net>
Cc: jgross@suse.com, boris.ostrovsky@oracle.com, olekstysh@gmail.com,
        tglx@linutronix.de, jbeulich@suse.com, xen-devel@lists.xenproject.org,
        linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] xen/acpi-processor: fix _CST detection using
 undersized evaluation buffer
Message-ID: <abhiGd_AOyR45ZyN@mattapan.m5p.com>
References: <20260224093707.19679-1-dt@linux-mail.net>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260224093707.19679-1-dt@linux-mail.net>
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 Tue, Feb 24, 2026 at 09:37:11AM +0000, David Thomson wrote:
> 
> On a system with dom0_max_vcpus=2 and 8 physical CPUs, only PCPUs 0-1
> receive C-state data. PCPUs 2-7 are stuck in C0/C1 idle, unable to
> enter C2/C3. This costs measurable wall power (4W observed on an Intel
> Core Ultra 7 265K with Xen 4.20).
> 
> The function never uses the _CST return value -- it only needs to know
> whether _CST exists. Replace the broken acpi_evaluate_object() call with
> acpi_has_method(), which correctly detects _CST presence using
> acpi_get_handle() without any buffer allocation. This brings C-state
> detection to parity with the P-state path, which already works correctly
> for Phase 2 CPUs.
> 
> Fixes: 59a568029181 ("xen/acpi-processor: C and P-state driver that uploads said data to hypervisor.")
> Signed-off-by: David Thomson <dt@linux-mail.net>

Tested-by: Elliott Mitchell <ehem+xen@m5p.com>

The window of opportunity happened and I confirmed it fixed the issue for
me.  I don't know whether this already got in though.

> -	status = acpi_evaluate_object(handle, "_CST", NULL, &buffer);
> -	if (ACPI_FAILURE(status)) {
> -		if (!pblk)
> -			return AE_OK;
> -	}
> +	if (!pblk && !acpi_has_method(handle, "_CST"))
> +		return AE_OK;
>  	/* .. and it has a C-state */
>  	__set_bit(acpi_id, acpi_id_cst_present);

I had traced the problem to this spot a while back, but I didn't know
what an appropriate change was.  Since I had a workaround this wasn't
urgent.  I do know this effects many others, I don't know how urgent this
bug is for everyone else.


-- 
(\___(\___(\______          --=> 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 Mon Mar 16 20:12:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 20:12:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255757.1550589 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2EI8-0003zD-3s; Mon, 16 Mar 2026 20:11:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255757.1550589; Mon, 16 Mar 2026 20:11:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2EI8-0003z6-1A; Mon, 16 Mar 2026 20:11:56 +0000
Received: by outflank-mailman (input) for mailman id 1255757;
 Mon, 16 Mar 2026 20:11:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QYmb=BQ=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1w2EI6-0003yx-QK
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 20:11:54 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5ed099f8-2174-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Mar 2026 21:11:52 +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 62GKBhlo095463
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Mon, 16 Mar 2026 16:11:48 -0400 (EDT) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.18.1/8.15.2/Submit) id 62GKBgnw095462;
 Mon, 16 Mar 2026 13:11:42 -0700 (PDT) (envelope-from ehem)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5ed099f8-2174-11f1-9ccf-f158ae23cfc8
Date: Mon, 16 Mar 2026 13:11:42 -0700
From: Elliott Mitchell <ehem+xen@m5p.com>
To: xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH] tools: remove setup_physical_bridge_port() function
Message-ID: <abhj_os9fUw0JH1i@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

Only the setup_virtual_bridge_port() function was used.  As such merge
that with _setup_bridge_port() and leave that as the remaining function.

Signed-off-by: Elliott Mitchell <ehem+xen@m5p.com>
---
Since the script originates with the Xen Project, I would like to draw
attention to Debian bug #1067152:

https://bugs.debian.org/1067152

In different words, the issue is the vif#.# interfaces end up getting
autogenerated IPv6 link-local addresses which they shouldn't have.  This
doesn't effect IPv6 connectivity for the front-end network devices.
---
 tools/hotplug/Linux/vif-bridge            |  2 +-
 tools/hotplug/Linux/vif-openvswitch       |  2 +-
 tools/hotplug/Linux/xen-network-common.sh | 22 ++++++----------------
 3 files changed, 8 insertions(+), 18 deletions(-)

diff --git a/tools/hotplug/Linux/vif-bridge b/tools/hotplug/Linux/vif-bridge
index 906047e82f..6164c7a52f 100644
--- a/tools/hotplug/Linux/vif-bridge
+++ b/tools/hotplug/Linux/vif-bridge
@@ -78,7 +78,7 @@ fi
 
 case "$command" in
     add|online)
-        setup_virtual_bridge_port "$dev"
+        setup_bridge_port "$dev"
         set_mtu "$bridge" "$dev" "$type_if"
         add_to_bridge "$bridge" "$dev"
         ;;
diff --git a/tools/hotplug/Linux/vif-openvswitch b/tools/hotplug/Linux/vif-openvswitch
index 18bfb6cefb..a8aea2acb5 100644
--- a/tools/hotplug/Linux/vif-openvswitch
+++ b/tools/hotplug/Linux/vif-openvswitch
@@ -88,7 +88,7 @@ add_to_openvswitch () {
 case "$command" in
     add|online)
         check_tools
-        setup_virtual_bridge_port $dev
+        setup_bridge_port $dev
         add_to_openvswitch $dev
         ;;
 
diff --git a/tools/hotplug/Linux/xen-network-common.sh b/tools/hotplug/Linux/xen-network-common.sh
index 42fa704e8d..0150a4840e 100644
--- a/tools/hotplug/Linux/xen-network-common.sh
+++ b/tools/hotplug/Linux/xen-network-common.sh
@@ -79,32 +79,22 @@ find_dhcpd_arg_file()
 }
 
 # configure interfaces which act as pure bridge ports:
-_setup_bridge_port() {
+setup_bridge_port() {
     local dev="$1"
-    local virtual="$2"
 
     # take interface down ...
     ip link set dev ${dev} down
 
-    if [ $virtual -ne 0 ] ; then
-        # Initialise a dummy MAC address. We choose the numerically
-        # largest non-broadcast address to prevent the address getting
-        # stolen by an Ethernet bridge for STP purposes.
-        # (FE:FF:FF:FF:FF:FF)
-        ip link set dev ${dev} address fe:ff:ff:ff:ff:ff || true
-    fi
+    # Initialise a dummy MAC address. We choose the numerically
+    # largest non-broadcast address to prevent the address getting
+    # stolen by an Ethernet bridge for STP purposes.
+    # (FE:FF:FF:FF:FF:FF)
+    ip link set dev ${dev} address fe:ff:ff:ff:ff:ff || true
 
     # ... and configure it
     ip address flush dev ${dev}
 }
 
-setup_physical_bridge_port() {
-    _setup_bridge_port $1 0
-}
-setup_virtual_bridge_port() {
-    _setup_bridge_port $1 1
-}
-
 # Usage: create_bridge bridge
 create_bridge () {
     local bridge=$1
-- 


-- 
(\___(\___(\______          --=> 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 Mon Mar 16 20:29:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 20:29:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255771.1550598 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2EYf-0005mk-EL; Mon, 16 Mar 2026 20:29:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255771.1550598; Mon, 16 Mar 2026 20:29:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2EYf-0005md-B5; Mon, 16 Mar 2026 20:29:01 +0000
Received: by outflank-mailman (input) for mailman id 1255771;
 Mon, 16 Mar 2026 20: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=q2TG=BQ=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1w2EYd-0005mE-NL
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 20:28:59 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id be9c4d40-2176-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Mar 2026 21:28:52 +0100 (CET)
Received: from DS7PR03CA0269.namprd03.prod.outlook.com (2603:10b6:5:3b3::34)
 by BY5PR12MB4099.namprd12.prod.outlook.com (2603:10b6:a03:20f::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.10; Mon, 16 Mar
 2026 20:28:44 +0000
Received: from DM2PEPF00003FC2.namprd04.prod.outlook.com
 (2603:10b6:5:3b3:cafe::77) by DS7PR03CA0269.outlook.office365.com
 (2603:10b6:5:3b3::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.25 via Frontend Transport; Mon,
 16 Mar 2026 20:28:41 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DM2PEPF00003FC2.mail.protection.outlook.com (10.167.23.20) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9700.17 via Frontend Transport; Mon, 16 Mar 2026 20:28:44 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 16 Mar
 2026 15:28:43 -0500
Received: from [10.71.193.38] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 16 Mar 2026 15:28:42 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: be9c4d40-2176-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tFp1Ysxc5RIJnkUL9PtIEXpViYR1Qenr9RGF3ecZC9SYpGfH4Zy61/60/tff5HgVcqYQ2cjeRELu4vGbZm0B3/CFopZo50uPS/37AXTrEsmwQ6J4WOwLyISG8hINRlVP64ohOupjGeiIXFQJCfDO8yWVf9fRww/aH7tRpVPp78iXRLt6fq0dUuG586o0DMvQuiVtSK1wJKZ0IDzOWZQYxhX9C/F4dXloBIeT6cuz2cpXu51e33qihiZi9S3YYNziTbPo3qnBfdj/hiozADWTs7sHktoyrT78YBnknMPp5+7PpDGM/3Td6aJ1MO8/WzvasQO1xXIPSSc6Kx6jNanUVQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=m44h3OqLUiCX1s8EY92rgHXZNQz8VnSD4clCQ3A2cWI=;
 b=P8YTl0CY5f3Oal6dNAkbNjCXQtuTi4f8DNecGVZqwuti+QQ5x8TCIrupLSdmrV2xVAMF8DGGx3UwjUGFIncgFaEoHvPyL1zqG+dIvr3dm71JE8AqfN9kstT6Nqx5pF9w7yIGVuoyeGpUNwE6ZdJAB2i3PW8+Qtlni5lD7amDwxdv14tNWdieFAyJVTETKDv4cF/cD2P7DD6bGU2KfC0tg+Dz9tmXf4YtGrsU3PGfDodQ2dvO2oJOljJcHzZvdrJxvum/vmuMXTfnu8L9guw6TgSEjQWjuE+V32d1OGWqO5Tcpwopx+kL8P6dYfRSFLQ5vGbrvRQeaf53iDQoDacXgA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=xen.org smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=m44h3OqLUiCX1s8EY92rgHXZNQz8VnSD4clCQ3A2cWI=;
 b=rKUsNMNNg8d8Qthtbr0vhjFH/rMC2URbScsw2H5GQ5c3E719+6ewSCVuTyguHi/N28OFB1aVgtqAAWHF7PvTClVzGqSbWQS8ctmMwf+KIn+rnXNLjvAmsLMMt7UvqQ1TUGWfsNeCHJgeQQ19u0Afb29LJ7/hqzAcRCVoMa0OgC8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <f8f95b11-95ba-4a57-8425-21bb7fc241f5@amd.com>
Date: Mon, 16 Mar 2026 20:28:42 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen: gic-v3: Introduce CONFIG_GICV3_NR_LRS
To: Julien Grall <julien@xen.org>, Ayan Kumar Halder
	<ayan.kumar.halder@amd.com>, <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>
References: <20260305194358.2564387-1-ayan.kumar.halder@amd.com>
 <f1a5a509-bc6d-4616-872c-c5bb1ecf9da7@xen.org>
 <f10e2a5e-446c-42f2-b9ce-44498acbfb1e@amd.com>
 <c075f47f-09f1-443b-949f-936534f75ded@xen.org>
 <e577e8ab-6c90-41ab-b42c-b018d911341d@amd.com>
 <343c868a-61ef-4c9d-b6ab-96c35aa66de6@xen.org>
Content-Language: en-US
From: "Halder, Ayan Kumar" <ayankuma@amd.com>
In-Reply-To: <343c868a-61ef-4c9d-b6ab-96c35aa66de6@xen.org>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM2PEPF00003FC2:EE_|BY5PR12MB4099:EE_
X-MS-Office365-Filtering-Correlation-Id: 54a9e6f7-17db-4e60-aaef-08de839a9e8d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|30052699003|376014|82310400026|36860700016|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	+SFnZRVneUfTsGeMPq7b85IrBWgxUNFFu1h0y3MmKByaD9qLi46P7hVvg3ezG5RZ3VQq7Ns1lMvM6RD+MreWEdh03oGOpOFsbcxHrvxfoc/tqgTp5CgUhxwAlOSOjSPywVqlceKHStlgpDAfHVVZMi6vKBnQj3yTggDLttOiDsZs8/QDex8SUH1eCqU9YA3ToESYofrXpqBWGSGmgwzOgAaxSKMAO630SAs8NmxFwqOhfof/9JO5j09E0C1tlWLuPgFXcLENVtFImBDXSDnaS3wNHS+doqs8ixPg9iqC8RkZSQUge3Xxhqp99x8wWW4RtQakm7pDUsnWQfuiaW7Wj6dvoT6vgavJrUmzU1+kK/HKNfqt6zf6CxO9Z5jGMXZd+uopwEiQSIh4XBm7BL87xEkWsoP/OLKCVUXerVKE8V4iMmSQW117Wa1qNrJTqYLVc71v8O5QwTSAZGiYf5D4JL2Jo0yledJP9PWWANCy0x5jb4Oimslqm+M7oJ26QKDrh7rt2rAVuQ2D1/sT+qZLDBezVG8+pjFxDSqjwwj8UYle7/jhaJ/siJ//uvqoy9CzKztu5JKiuWO/PeqdUf1U5rB9h2Zzcgy7NvX/TkjEM4aV+755FqyEJrPzM1SBuTbRfadgPPEnaP+hVqtZ15AlzXzrVRq8bxYlDAHaQoqiISy5l5pvsICMYrfmQ3qbyZ285kaOANTHOJxOGmiuYa6QzXU49DT4nsjLf3+yeMsBynzWpBHQBj5BOcZqyw/pxegHk8nv4xvre/Yaacr/uy0jzA==
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)(30052699003)(376014)(82310400026)(36860700016)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	QaQZguKkXfpYbVr07UOYn6+X44TCfQPjElq2zeKQMZki7d4XMMyLfa5GecjvDidPyTF7hvXSZnieoIDFsOXB7riDfAhMscMYwKIH7bTEKJU4CLaoBlhCAKikhfRKPnC67K3dgfOAdNwAV7eREOfNdwGRxYucUqzudcp8kkW6wGbXJLbEbW4+x2aZumYczIugHrfn0XJDymg1DsVeqEJxnZTMjfrYVsVCiOyZXbDP8sImibOZiPgAYy9iXOFiW5tRxirHe9EguO76vuEeoyXFgbtrYpPdwJuIndCe+r4D+U1xRYFhO5TAuXw4rGO9ZM534SO2SoetSUEFjfihJpq8FvXnJOjgVwulBDPclHLY9ZHWcpuZfckRBQOhvuI9Pv0m+SYVjl4xK+CFJCS+XrJKmOO4Gq5kal4FI0oqd0rcNdXxChM1fubdAc2eTudlfaTC
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Mar 2026 20:28:44.0629
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 54a9e6f7-17db-4e60-aaef-08de839a9e8d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DM2PEPF00003FC2.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4099


On 06/03/2026 17:53, Julien Grall wrote:
> Hi Ayan,
Hi Julien,
>
> On 06/03/2026 17:19, Halder, Ayan Kumar wrote:
>>
>> On 06/03/2026 10:40, Julien Grall wrote:
>>> Hi Ayan,
>> Hi Julien,
>>>
>>> On 06/03/2026 09:51, Halder, Ayan Kumar wrote:
>>>>
>>>> On 06/03/2026 09:24, Julien Grall wrote:
>>>>> Hi Ayan,
>>>> Hi Julien,
>>>>>
>>>>> On 05/03/2026 19:43, Ayan Kumar Halder wrote:
>>>>>> Set GICV3_NR_LRS as per the number of list registers in the 
>>>>>> supported
>>>>>> hardware. This ensures:
>>>>>>
>>>>>> 1. In gicv3_save_lrs()/gicv3_restore_lrs(), use the number of list
>>>>>> registers from GICV3_NR_LRS (if defined) instead of 
>>>>>> gicv3_info.nr_lrs.
>>>>>> This ensures that if the hardware does not support more than 4 LRs
>>>>>> (for example), the code accessing LR 4-15 is never reached. The
>>>>>> compiler can eliminate the unsupported cases as the switch case 
>>>>>> uses a
>>>>>> constant conditional.
>>>>>>
>>>>>> 2. Similarly In gicv3_ich_read_lr()/gicv3_ich_write_lr() , we can
>>>>>> justify that the unsupported LRs (4-15) will never be reached as Xen
>>>>>> will panic if the runtime value (lr) exceeds GICV3_NR_LRS. Some
>>>>>> compiler can eliminate the code accessing LR 4-15.
>>>>>> In this situation, using panic() is better than accessing a list
>>>>>> register which is not present in the hardware
>>>>>>
>>>>>> 3. Whenever GICV3_NR_LRS is defined, the default condition and the
>>>>>> related BUG() cannot be reached at all.
>>>>>
>>>>> I am not sure how this is better. You will still crash Xen is 'lr' 
>>>>> >= GICV3_NR_LRS. Can you provide some details?
>>>>>
>>>>> > > As part of functional safety effort, we are trying to enable 
>>>>> system
>>>>>> integrator to configure Xen for a specific platform with a predefind
>>>>>> set of GICv3 list registers. So that we can minimize the chance of
>>>>>> runtime issues and reduce the codesize that will execute.
>>>>>>
>>>>>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>>>>>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>>>>>> ---
>>>>>>   xen/arch/arm/Kconfig  |  9 +++++++++
>>>>>>   xen/arch/arm/gic-v3.c | 12 ++++++++++--
>>>>>>   2 files changed, 19 insertions(+), 2 deletions(-)
>>>>>>
>>>>>> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
>>>>>> index 2f2b501fda..6540013f97 100644
>>>>>> --- a/xen/arch/arm/Kconfig
>>>>>> +++ b/xen/arch/arm/Kconfig
>>>>>> @@ -276,6 +276,15 @@ config PCI_PASSTHROUGH
>>>>>>     endmenu
>>>>>>   +config GICV3_NR_LRS
>>>>>> +    int "Number of GICv3 Link Registers supported" if EXPERT
>>>>>> +    depends on GICV3
>>>>>> +    range 0 16
>>>>>> +    default 0
>>>>>> +    help
>>>>>> +      Controls the number of Link registers to be accessed.
>>>>>> +      Keep it set to 0 to use a value obtained from a hardware 
>>>>>> register.
>>>>>> +
>>>>>>   menu "ARM errata workaround via the alternative framework"
>>>>>>       depends on HAS_ALTERNATIVE
>>>>>>   diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
>>>>>> index bc07f97c16..fb2985fd52 100644
>>>>>> --- a/xen/arch/arm/gic-v3.c
>>>>>> +++ b/xen/arch/arm/gic-v3.c
>>>>>> @@ -51,6 +51,8 @@ static DEFINE_PER_CPU(void __iomem*, rbase);
>>>>>>   #define GICD                   (gicv3.map_dbase)
>>>>>>   #define GICD_RDIST_BASE        (this_cpu(rbase))
>>>>>>   #define GICD_RDIST_SGI_BASE    (GICD_RDIST_BASE + SZ_64K)
>>>>>> +#define lrs                    (CONFIG_GICV3_NR_LRS ?: \
>>>>>> +                                gicv3_info.nr_lrs)
>>>>>
>>>>> We should avoid lowercase define, in particular with generic names 
>>>>> like 'lrs'. I think in this case, I would rather update 
>>>>> gicv3_info.nr_lrs:
>>>>>
>>>>> gicv3_info.nr_lrs = min(gv3_info.nr_lrs, CONFIG_GICV3_NR_LRS);
>>>>
>>>> But we want to enforce the user to set CONFIG_GICV3_NR_LRS , so 
>>>> that we don't have to rely on gicv3_info.nr_lrs.
>>>> > The only reason to use gicv3_info.nr_lrs is for backward 
>>>> compatibility
>>>> i.e. when the user forgot to set the config and as a result it used 
>>>> the default value as 0. We don't want to allow this for the safety 
>>>> use cases.
>>>
>>> Xen upstream has to support various use cases. One of the use-case 
>>> is Linux distributions where they want one Xen binary booting on 
>>> multiple HW. So "gicv3_info.nr_lrs" will have to stay forever.
>> We can default to using gicv3_info.nr_lrs if the user does not set a 
>> value in GICV3_NR_LRS. This is what I am trying to do in the patch.
>
> I am still missing something. Why can't we just write GICV3_NR_LRS in 
> gicv3_info.nr_lrs? This would simplify the code and avoid unnecessary 
> churn.

I am trying to use compiler to do dead code elimination using constant 
conditional. Refer the snippet:

  static inline void gicv3_save_lrs(struct vcpu *v)
  {
      /* Fall through for all the cases */
     switch ( lrs )

Here the pre-processor evaluates lrs to a compile time constant 
(GICV3_NR_LRS). Thus, the compiler eliminates the code to access 
ich_lr4_el2, etc when GICV3_NR_LRS == 4.

Is there a better way to achieve DCE ?

>
>>>
>>> Now with CONFIG_GICV3_NR_LRS in place, I am concerned that someone 
>>> will try to configure the value to let say 16 but their HW support 
>>> only 4.
>>
>> If the user has set it to an incorrect value, then imo Xen should 
>> trust the value that user has set. And then any malfunction caused 
>> will be the responsibility of the user.
> > > IOW, we want to put the responsibility on the user to provide the
>> correct values.
>
> I think this is the same things as the device-tree. We could trust the 
> user didn't shoot itself in the foot (e.g. asking for a feature which 
> doesn't exist). But at least for Xen on Arm, we try to be nice and 
> tell the user that something is wrong early.
>
> I don't see why we should diverge here. This is defense in depth which 
> would save a crash during steady state if this was missed. I am 
> assuming that it is better to crash while your car is parked than 
> while you are driving ;).
Yes, I am fine to put a ASSERT() or BUG_ON() in gicv3_hyp_init()
>
>>>>> This would solve another problem where you don't sanity check that 
>>>>> the system effectively support CONFIG_GICV3_NR_LRS.
>>>>>
>>>>>> @@ -121,7 +123,7 @@ static inline void gicv3_save_lrs(struct vcpu 
>>>>>> *v)
>>>>>>   static inline void gicv3_restore_lrs(const struct vcpu *v)
>>>>>>   {
>>>>>>       /* Fall through for all the cases */
>>>>>> -    switch ( gicv3_info.nr_lrs )
>>>>>> +    switch ( lrs )
>>>>>>       {
>>>>>>       case 16:
>>>>>>           WRITE_SYSREG_LR(v->arch.gic.v3.lr[15], 15);
>>>>>> @@ -178,6 +180,9 @@ static inline void gicv3_restore_lrs(const 
>>>>>> struct vcpu *v)
>>>>>>     static uint64_t gicv3_ich_read_lr(int lr)
>>>>>>   {
>>>>>> +    if ( lr >= lrs )
>>>>>> +        panic("Unsupported number of LRs\n");
>>>>>
>>>>> Do we really have to panic in production build? Wouldn't it be 
>>>>> better to return '0' and maybe use ASSERT for a crash in debug 
>>>>> build? Same below.
>>>> You are right, we may not need this. One option I am thinking is ...
>>>>>
>>>>>> +
>>>>>>       switch ( lr )
>>>>
>>>> switch ( lr & (lrs - 1) )
>>>>
>>>> This ensures that we do not hit the unsupported cases.
>>>
>>> What about implementing it as RAZ-WI? 
>>
>> You mean
>>
>>   case 4: (lr >= lrs) ? 0 : READ_SYSREG_LR(4); /* read */
>>
>>   case 4 : (lr >= lrs) ? :  WRITE_SYSREG_LR(val, 4); /* write */
>
> I was thinking to do the check before the 'switch' as i don't think it 
> needs to be duplicated per 'case'.

Yes, I agree.

- Ayan



From xen-devel-bounces@lists.xenproject.org Mon Mar 16 21:03:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 21:03:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255788.1550608 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2F67-0002Jd-3S; Mon, 16 Mar 2026 21:03:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255788.1550608; Mon, 16 Mar 2026 21:03:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2F66-0002JW-Uu; Mon, 16 Mar 2026 21:03:34 +0000
Received: by outflank-mailman (input) for mailman id 1255788;
 Mon, 16 Mar 2026 21:03: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=3wxl=BQ=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1w2F65-0002JQ-Nq
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 21:03:33 +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 93dd78a8-217b-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Mar 2026 22:03:28 +0100 (CET)
Received: from BL1PR13CA0026.namprd13.prod.outlook.com (2603:10b6:208:256::31)
 by PH7PR12MB5831.namprd12.prod.outlook.com (2603:10b6:510:1d6::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.14; Mon, 16 Mar
 2026 21:03:23 +0000
Received: from BN2PEPF00004FBA.namprd04.prod.outlook.com
 (2603:10b6:208:256:cafe::eb) by BL1PR13CA0026.outlook.office365.com
 (2603:10b6:208:256::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.24 via Frontend Transport; Mon,
 16 Mar 2026 21:03:10 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN2PEPF00004FBA.mail.protection.outlook.com (10.167.243.180) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9700.17 via Frontend Transport; Mon, 16 Mar 2026 21:03:23 +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, 16 Mar
 2026 16:03:23 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 16 Mar
 2026 16:03:22 -0500
Received: from [172.24.66.250] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 16 Mar 2026 16:03:22 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 93dd78a8-217b-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NOAc80PM1Yj+l4g4sE7WkZexS9RlTzhgokyCtFRYewg7B8MwHsNL+Q4Sl6WnMZJ3PDUqHfvmbK8J54TKDggS8ZWT2nN/aYDQRqsymwLCbNB376Hl/aP+ggzJxJzctN2yIos3/FqZbUEf3yuGW4fP+URRdhYkGSwwaAM0ZjTgbpqc+neR9S30freoR+WYGKyXjiE4E1mUSp1EjI08MhAhpkeOB3efvkjIshxfTK2vQgCAYDnuLmTUWYAZTS5/AIzJfHB6M423/9AByGnUIAHiEjTq0VCDzOAyT9CBwQ8J+PO7FDU/BMLGjSUMz6XocImOcMGIK77J2cwOEbeEeinfYQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2VJ2/ZaIa1tp7HHB3+IanEReRu7K+Mb6xw3f4L1LBWw=;
 b=hfSl9zgcnNyY7vmQ4gsO8udU3Wg1lcphwQ8wNJ/ee25Q8EoylW0u+/JFaR2E109vBVrgZspl+37cn7LACLhI7XDz607+eNnOHd7jwQNEQ8YspWGea5LSv+mjPE8GboDDhr5raxZT3onP5qB/6QFvKqfd77etSpSnBhuHrO7FkMdU93nvW19HIQBB0n6nwidZupyYnPO5nFPWC7hsUVDTREbPJxe72Sq/FKBajSfbvdMge9d9fYM9HlNg1j11Jlps7pTNJl76obi64C5wujXX7VflZuY6DaUyjZW/iiKpiQdF6OB2dJT8NV5GhurnD7nc+XMn1BZ22cSdwbsNz+uWlQ==
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=2VJ2/ZaIa1tp7HHB3+IanEReRu7K+Mb6xw3f4L1LBWw=;
 b=2ZJK+GYwPhGZu0Eqhc3T4Bgg8fYTUf/gulXZqKCzpPXdj8uklbD8/TRxHnhQ2wGm5xyEZYmEFIayJw+BxtOlxgIXBCpVtbNpnP8wi+fEbYvitYgqvKHECPkpf2zX7ETTG2ocwug6J7DPBJJkFup0fmTbHTsy25JA4RANKHIR13s=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <1fbb8e3d-f43d-4ffc-87a3-d363b46baeb0@amd.com>
Date: Mon, 16 Mar 2026 17:03:29 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/8] vpci: rename and export vpci_modify_bars
To: Mykyta Poturai <Mykyta_Poturai@epam.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: <cover.1772806036.git.mykyta_poturai@epam.com>
 <f4d48063a4091cf851eab7ad9bf53364df8d1568.1772806036.git.mykyta_poturai@epam.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <f4d48063a4091cf851eab7ad9bf53364df8d1568.1772806036.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF00004FBA:EE_|PH7PR12MB5831:EE_
X-MS-Office365-Filtering-Correlation-Id: 907a410b-2bc0-49fe-3db3-08de839f75de
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|82310400026|376014|1800799024|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	fJYKwP2NYdt12bK/BH1zpGO1NizLQoRjjTAES4qFSZ9aoBRjeYR5+etPkTwrlC218YsEMy1U/POfreH+PCiCGURDgQ0GWlBPxbAsP+ZGS0PMRvCf6dSqNvAMTvdOgmNHvY61vJkyiU3rExx+6nmLU/+zvlYXWcoDvN5Db7SP8ixs0uHocWiCt4DKLkFLpAeJn0D5tG12UTA6QT9I5TrAW5bjwHyBCYnqX2MdPKoYPocuIVhMPfkySLTpDw0gejIr3M6DUPWwmRmrTmWiJY7B1kHim5yVWCvw7GElPgc+fUGlIpaOKqnVxuqDA0A/iQ27EGLLbudxSkEBNIzcXgKljJc3gM+ADkMkWRTYH/YA7N2sOhctQSeGhMhNvUozUHP96D7TdvR6+yunUsTm1Sz/MfcEkyAylHJwIhf8KTcbarE2JZpFgfs2zHrrQdL80dYU+OmAgAxM9LGDxdnf2Vu5/Y7h9IvVxZuS+6XP9BjGTTh9Cum0Xu/pphQtBDeun7kuZIMatkWzrvYazhItTBCPLi/WNkIzWd+SvA5pZuWYvRPBLMLcU41CIlL2PJCLLs2ABVNjKRKnf2Cj2+O7E8DsT86FpAkWtx8mMbHQnv45JRbnFG2ypdMS6OENq+ZtgGoHO+9AoKmGZA9NXypB58ExmFrw5JDAyM4lGCxVX9wrASYrtce1X/Hu3pU+V6aFuptAHrMrrY6pU7rq26knyHwA+HCwKjNnvOBMLiTEicea/uK0kORg+p6yBjTFKd8dJ6YBbYmhdOq43GshqQshb9pujA==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(82310400026)(376014)(1800799024)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ApjKdoPdd6JU8cHsdxGbqPP2KyZkGGcsvLS86SvW0KfOAHn+58v4OZb3tE6BZtP5B2KvWys2Blk2mmn2vfTj2qTpk9XAbXjBFY5SFdSc/3e3/QFfwx8kV9+UB10ka3DCrjcLvVJQKy4AeP9wK4cNz4PwQqx1VoxGh5bZlDeuqyvlNGVOoN6ysnDjO5Gb4X/lDhWiTU7pUdDQNjuw++N9peoqLjm9rMF+aq7PDbkTFPQ7/pV88cCswFIIlIMlUrfurvslDA49aZj8LD1t6toXgGD9v9p8/bmEMdh6QZCJTgH9xFvLv5HRKRqNk3Omtdxc85DN4QLsbFPe2fJ2xkqyNRGantDzgFTW4L8p3BvbvwoQSOURk1+Gb0sx5GwzUwXFbnp9p/t35h8BPx4n63iVo6go8Ou/fAa9jhQS4xLggbX/RjuJz8Qv9Zpfuqnao2ZN
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Mar 2026 21:03:23.3215
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 907a410b-2bc0-49fe-3db3-08de839f75de
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF00004FBA.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5831

On 3/9/26 07:08, Mykyta Poturai wrote:
> diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
> index d6310104ea..a98ddbb32e 100644
> --- a/xen/include/xen/vpci.h
> +++ b/xen/include/xen/vpci.h
> @@ -295,6 +295,9 @@ bool vpci_ecam_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int len,
>  bool vpci_ecam_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int len,
>                      unsigned long *data);
>  
> +/* Map/unmap the BARs of a vPCI device. */
> +int vpci_modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only);

This prototype should be moved to private.h

> +
>  #endif /* __XEN__ */
>  
>  #else /* !CONFIG_HAS_VPCI */



From xen-devel-bounces@lists.xenproject.org Mon Mar 16 21:05:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 21:05:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255795.1550615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2F7S-0002nw-CE; Mon, 16 Mar 2026 21:04:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255795.1550615; Mon, 16 Mar 2026 21:04: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 1w2F7S-0002np-9Z; Mon, 16 Mar 2026 21:04:58 +0000
Received: by outflank-mailman (input) for mailman id 1255795;
 Mon, 16 Mar 2026 21:04: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=3wxl=BQ=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1w2F7Q-0002nh-Q5
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 21:04:56 +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 c78e4243-217b-11f1-b164-2bf370ae4941;
 Mon, 16 Mar 2026 22:04:55 +0100 (CET)
Received: from BN0PR04CA0096.namprd04.prod.outlook.com (2603:10b6:408:ec::11)
 by DS5PPF23E22D637.namprd12.prod.outlook.com (2603:10b6:f:fc00::647)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.14; Mon, 16 Mar
 2026 21:04:44 +0000
Received: from BN2PEPF00004FC1.namprd04.prod.outlook.com
 (2603:10b6:408:ec:cafe::2e) by BN0PR04CA0096.outlook.office365.com
 (2603:10b6:408:ec::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.25 via Frontend Transport; Mon,
 16 Mar 2026 21:04:36 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN2PEPF00004FC1.mail.protection.outlook.com (10.167.243.187) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9700.17 via Frontend Transport; Mon, 16 Mar 2026 21:04:44 +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, 16 Mar
 2026 16:04:44 -0500
Received: from [172.24.66.250] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 16 Mar 2026 16:04:43 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c78e4243-217b-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sEAOf0A12cqQ6a2hOnxbEkQqalRX0qWZSb9+rdH7RVqqDNMp3lfCM6qVuiiGCHnBkjS0ZU6oOGzQO+Fd434PIuce/dgQxgFJ0PvLGZc2eWRpXVOSRZojvyQxa4KDotiJPWoiI5kF17JkY64qNk0qqLH9vclS5jSCKvRa5WIo0huhcHfFXZ95FJJS1gmd7MzOcc4W/nPQS7R48F18594Mf5S3tYMiQQel4wBpGJHngKayChl7BCOn3N8xa1SIkV4wQ8hv8GDPb4CelKyQBBG0Y05LCEMK43UsLuU6vNHN0QRkU7x0jihQfSe1pFoeLexVf6wf2LNxpnxVXr6XdfM6ag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kGh0AX302Hg/MgMyDPISw9Gh+5rLTH/67c0brE04ato=;
 b=k1xwtCuk5iU0HMHj0fMmDOddmIjmc1WWkqS4nrIqa19VVFREANb0UDlfBAUx6twANC3WjN02GB46GcLtpBD9Rlt64sZd9CN98/LbOI9LAoNjh5+XUGCKj5oOXZXTytoSUskodKPlgV600L/o4u6c1sy+TtBwBFlc8nF1iTds7ApqZTYYmL6s2RUNIsqU5HOP2xtsSCl46OAnh4U5tToxEQkDAPDwhalZpYagtGvvO2WKeUBfFyV/ZIFLG/nkBEe/3nvrQuxeYza6mm2Lv/UZsIaWYg52u14dgJcHHH+NxNJz1V9sZnloqX1WtVgtNOY3Z8dHNJPWjtu813JwUz24Vw==
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=kGh0AX302Hg/MgMyDPISw9Gh+5rLTH/67c0brE04ato=;
 b=NY1FPu6sTLFX44CHoonTl0eM+kDA+J0Y7BVNNd454I68nOTDqLbk25gvZER2rUzEYSechkRDurt7qHRGAPNhm3Wl6jsBjNCFVKVgttcdLuO0CHL8hNKQ4A5sTFixqR84bmSTKN0fLm5ErtYITptVtly/JlfdLabZf2swD9PxvG4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <a989079d-bf59-4e25-986b-b3a60f8e1d1a@amd.com>
Date: Mon, 16 Mar 2026 17:04:50 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/8] vpci: rename and export
 vpci_guest_mem_bar_{read,write}
To: Mykyta Poturai <Mykyta_Poturai@epam.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: <cover.1772806036.git.mykyta_poturai@epam.com>
 <5f364e8fddc83b9a7ae08945a91c38ae1648442a.1772806036.git.mykyta_poturai@epam.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <5f364e8fddc83b9a7ae08945a91c38ae1648442a.1772806036.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF00004FC1:EE_|DS5PPF23E22D637:EE_
X-MS-Office365-Filtering-Correlation-Id: 1c71c691-81db-4d43-c9aa-08de839fa643
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|82310400026|36860700016|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	nlwh/9XDTxbm+F0iCs34WnmqCWHoYPbWyuQ4UQqlDhOpKGg9RsKtgBdoGAEOC6iNGCsL8ogOjIcFGKWYzVsvjkMOTXPQC94+0hwV+GrHeaVa6n7+/Rf8l2A/BJN7DNvv2Y5t0yHDllcJW7jNw8+Xm0mojVPMCysxAQbgcD9vapNC5jz8QH5yYnNiy7fg+zAGYXcaedV735bluIlYItyTNPqJpxQ+7PqGV/LcFYucaKPFr2OMR6aZ4gTho4+jqsJ1Obazs6PvdOyZxpVDViOBRGyotZgJtlRjBDXiidjY4OcjmkPljeIv+zyRNwh4RwPSRkoGZAv2G0pU1k4g9hPg6rsEN7ezHUeQcXrwUUnlgyA9YQmM/bmjJya3FzOhXTQdh+OlmRveJ+cqnD7WEITMzjdhKdUmOyImCI4fJ4dxa3tqmmc3HoxBzfz69wTNsST+/EJYeUiQNj1ioqfHPpZWuBWm9rZKtwuz4gWC0/+bEzJ4Mm5Yb59Ir+PDAzDZdcaVnF9YAtjl9ObRpox/aMoOXQzI9NtDAxlL6JCV9adwO4waeNJW5jAWrvqZTQrPKhLSo0FtxAuUk8TfkU9RDFOnM5cy2jULWGUtiFV/lU4cCNlAF2/CUGpgnZl7RjZteMjr4nU37bKKcDlevVVqjmod3l7fjvQI4J+A06OMvlOcW4H3eB+IKPrkvszM4oZEzGCq3gH+maXEbLzXL/WvlPFY/TEBYOkwm0RNQqEXF2hrUEBYGlse81D/DbWROTvmje5MyifOZIhwYXQ66+6+HAUfCw==
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)(36860700016)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	BXp7ZOYENyGXligJ1DyiAhJomgrHYMTNOXQ8guYmYiZyQwOQ/dHuVG4fk30vpzmkwnX6MTzp+QCrbAeH99+eUSnFeQ/Fb4eia7yGPKk+js3vX132PQJ7o7dvA0Ef3DrPLWDb/FTbFsrgvgshWeLJ0KvzJhyZWzFaEJESeCdPW1p7PFNjO8JOFoCy7z+mvNWiMIdXXWEwKP1M4L2jM3LJkvhRNzLWvVrt3E7b5yaDgKT1ipY4AVF7RqyPkoXQm9f04WV2XCDV9W0m5riCyna+FPRD557vJcj848ASS4Or7KPvMns1JRVn4rkwzFbxVVdJq3aXGJ5C/QA9lqcJblwgQmskJlWjaA2yzes+6+fi0EJJia56R1kORC92XfeYGwX1jGbisFsuJy8D0pQT100qSZSHU4FRvXd5VhsSA8pbkNNrDa8stKHdT2eeRMgykJ4a
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Mar 2026 21:04:44.5261
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1c71c691-81db-4d43-c9aa-08de839fa643
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF00004FC1.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS5PPF23E22D637

On 3/9/26 07:08, Mykyta Poturai wrote:
> diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
> index a98ddbb32e..dd233b8b03 100644
> --- a/xen/include/xen/vpci.h
> +++ b/xen/include/xen/vpci.h
> @@ -78,6 +78,12 @@ void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int size,
>  uint32_t cf_check vpci_read_val(
>      const struct pci_dev *pdev, unsigned int reg, void *data);
>  
> +void cf_check vpci_guest_mem_bar_write(const struct pci_dev *pdev,
> +                                       unsigned int reg, uint32_t val,
> +                                       void *data);
> +uint32_t cf_check vpci_guest_mem_bar_read(const struct pci_dev *pdev,
> +                                          unsigned int reg, void *data);
> +

These prototypes should be moved to private.h

>  /* Passthrough handlers. */
>  uint32_t cf_check vpci_hw_read8(
>      const struct pci_dev *pdev, unsigned int reg, void *data);



From xen-devel-bounces@lists.xenproject.org Mon Mar 16 21:37:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 21:37:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255812.1550625 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2Fcf-0006hO-QF; Mon, 16 Mar 2026 21:37:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255812.1550625; Mon, 16 Mar 2026 21:37:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2Fcf-0006hH-NT; Mon, 16 Mar 2026 21:37:13 +0000
Received: by outflank-mailman (input) for mailman id 1255812;
 Mon, 16 Mar 2026 21:37: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=3wxl=BQ=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1w2Fce-0006hB-5q
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 21:37:12 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4852c03e-2180-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Mar 2026 22:37:09 +0100 (CET)
Received: from CH0PR03CA0272.namprd03.prod.outlook.com (2603:10b6:610:e6::7)
 by SN7PR12MB7371.namprd12.prod.outlook.com (2603:10b6:806:29a::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.5; Mon, 16 Mar
 2026 21:36:53 +0000
Received: from DS3PEPF000099E2.namprd04.prod.outlook.com
 (2603:10b6:610:e6:cafe::73) by CH0PR03CA0272.outlook.office365.com
 (2603:10b6:610:e6::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.24 via Frontend Transport; Mon,
 16 Mar 2026 21:36:49 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS3PEPF000099E2.mail.protection.outlook.com (10.167.17.201) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9700.17 via Frontend Transport; Mon, 16 Mar 2026 21:36:53 +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, 16 Mar
 2026 16:36:52 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 16 Mar
 2026 16:36:52 -0500
Received: from [172.24.66.250] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 16 Mar 2026 16:36:51 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4852c03e-2180-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lOs9YQRlo3lVyBz1vSj4b83aujd64gH3kce+l2iwo4cZ50SnRYkxjKXiYg+DF+yl1O98tEuvYNj7vpxLp19Q4M0F6noEQ0rrdlz2sjkNAg+VBaswftTPmTEVfp+ZG8uiSg+FThzOi76+XsBE7OcEles5m/EEJk1qIYXsCmtVSn88+qJ5VSOCBsYcaTRJNF9qdsdjs4pfDnsg7e+kgkcxsOKKFRvXEhBSICqw22o55tOoma8ej22yxxQ0QK6fZVgIEMwQkfHBVYRhb/PDrrwmUvqe/r+r9Z7Dp1FP4xhjb7aT4t9ko1IcQWh/s2efTs0coZCLRsrkkPI7ItI7z9gHeA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7PMWSnaDhlLMDhDpWY6r+RsR0wkz8VRoSVDbqagQo1E=;
 b=Q/XdZZpHH5tW7NP4CkBOx2kaK3BaMYif8ZydOfCYIe4u8qwHuPdbUiriiVhtn+4wzZzbR33IjxB1mq0ubpZYiI16APyXIC5hIFxmJoOPRv0J4bxnywMNBlnLCrcHu/PTfzIqMXFgrPBIweNL9FL8ZfYay7Wzm7CZQWb10y2qnhoEM4+Khd/NtJiBml/+9iT6G7hwa0Izg1r3la3PGErnRFsnc3YgStWLSpda5gHZJg+y7hnSr435xI112tLjTwf2VH3leJiVX/2Wk3n1ULZKiHK1Negx2xDFr6JccBcsGnXCoqrgdfrDJLv1kTiMg7Ke6iGT5eSgYIfUyr+BdynStg==
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=7PMWSnaDhlLMDhDpWY6r+RsR0wkz8VRoSVDbqagQo1E=;
 b=KuraBnMn5zuUnHscRgu2kZxWmjm8eZsHboaCXUNlvw+FJWfq+QnCBus2VpQvT1ZujgWLrv2ppG5aGcV9VH7L2kvwADPegefUTDXpchEKZmZ3GpWZUSOVTtb7ZaULySZ4DRLLZs8bw/7mF0ci8rOwiMBwoYHP+9gzu/L888WBkZ0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <9e3c18ce-814d-420e-81af-7ef8691a6efa@amd.com>
Date: Mon, 16 Mar 2026 17:36:53 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/8] vpci: Use pervcpu ranges for BAR mapping
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>, Julien Grall <julien@xen.org>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>
References: <cover.1772806036.git.mykyta_poturai@epam.com>
 <43ce584a124f0bd07e641934e15e5ab56548e1ba.1772806036.git.mykyta_poturai@epam.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <43ce584a124f0bd07e641934e15e5ab56548e1ba.1772806036.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF000099E2:EE_|SN7PR12MB7371:EE_
X-MS-Office365-Filtering-Correlation-Id: 5834e19d-e62b-4c00-f40d-08de83a423d4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700016|13003099007|7053199007|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	/XV6H/X3W6X0mTpJuJrVG7OpQ0WoKl5QzV6adySWKqLWJuL3jqrKTNmqhdWxfuQOvhJRKofWjm6aJouJviDltQ2bakqEI0mn5xmoEag/bfY/xEtHFNJZKsjJWRlb1CZiw+bJJ7gDR9BbBQCwMEaU8rOs5I5MYoFAQPQWqmEmDP9jHTHgmlJULrP7QjpunPJN/UPt0Z0B1x4yIlO2A+1AJ6NEMq/EJOD8IUPVZyAV7kkZoG29TP1iEeJUSZlArL6h08I9sduTNcfcy1iXmCMf0E09b/gxz4ndUUoEgKOs6oJeAmxVMpYDSavp9n2KqEwlgalVnYtQFhKqoUP6SAtiCj3xZnjcKF0nHK0WPkzwOZpBe30uzc2xNkNNQd8Ukzmyv0atPk/WNDqE4w6c4EwbHYaWAF/rNURGJ734K7PzULwPO1UDf6zZjBxOIwFneX2PYSBymkwS3evYhh2EjXPvHv4mAgKGkRc6Ct7SWdBaih3QtCu5WbW7v1VUzrRsu9rug3Lzoj84cobWxk2Sbpf1M5/thiy0yirfq8SZI0S1Qz0JIy18l89x2sDf0Jebk/znhOQMOKrTcd1OdrWTXtyuJKV1ZEg3XwYrKAgtGUr72dB2pSTV/ukrL4DP4sJS6JLB4HLWfMqHB9Dn4EULalBZf6/gHego/kkNiw6fptCbOyHvfDfCmBaGQA02BBW1/xQrPuwo7zMbOvNmuMLp2T6Uk2dNrSKTC7QlHuWlzC+JtGYZahMUqKKyPCiayji4ZRNzgRmISH8WfXxOB7ea6PQxifMNChZu+TeXDG0Vlz28ao8=
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)(36860700016)(13003099007)(7053199007)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	CdjTvrWx9l1oqiTiFpxjRkqaDBkRbe3LW1zx5AcrkjSpBtSM8VfwuAs9euZv28DrtVt0iSJw3pjADCH+qZRPbvrfnUz7smTPyhy9Ds1YokA2x+jKJVW5M9LT22Od2kVEICniixgHQww/Ia+y/tpAUE2JOvAxH9/z5jatsmISqiIl+JltjwHj42qNPgMQXr6PaopQjFB06x+dj53VCi5SEdNE7vbcdltWs7nIwHuw7MROIFbjKa8jkWSTSYZV7pKwbglQ3uW55+0vevn8kl9nCDv110c7JJ481XG4it8OQ6x2JRPiYJK8YXkd8x2euoCrwheX9PFQcuodv8bhYSVtjxBgZo16jAXX5Yxq5fWk06nnF/egTe6Uh7fGadpo0rOob2zYlOK61nXp/CUO3gFxI+1tsVoVK2AhGRTk1DKEwG2my4b8kyPzNi6/SmfLpAvp
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Mar 2026 21:36:53.1690
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5834e19d-e62b-4c00-f40d-08de83a423d4
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF000099E2.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7371

On 3/9/26 07:08, Mykyta Poturai wrote:
> There is no need to store ranges for each PCI device, as they are only
> used during the mapping/unmapping process and can be reused for each
> device. This also allows to avoid the need to allocate and destroy
> rangesets for each device.
> 

Thank you for this.

Consider adding this tag:
Amends: 622bdd962822 ("vpci/header: handle p2m range sets per BAR")

> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
> v1->v2:
> * new patch
> ---
>  xen/common/domain.c       | 24 ++++++++++++++
>  xen/drivers/vpci/header.c | 66 ++++++++++++++-------------------------
>  xen/drivers/vpci/vpci.c   |  3 --
>  xen/include/xen/vpci.h    |  4 ++-
>  4 files changed, 51 insertions(+), 46 deletions(-)
> 
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index e06174fca7..76b0163616 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -454,6 +454,14 @@ static int vcpu_teardown(struct vcpu *v)
>   */
>  static void vcpu_destroy(struct vcpu *v)
>  {
> +#ifdef CONFIG_HAS_VPCI
> +    int i;
> +
> +    for ( i = 0; i < ARRAY_SIZE(v->vpci.bar_mem); i++ )
> +        if ( v->vpci.bar_mem[i] )
> +            rangeset_destroy(v->vpci.bar_mem[i]);

Paraphrasing some previous feedback from [1], you might additionally want:

    v->vpci.bar_mem[i] = NULL;

or introduce a RANGESET_DESTROY() similar to XFREE().

[1] https://lore.kernel.org/xen-devel/20250723163744.13095-1-stewart.hildebrand@amd.com/T/#t

> +
> +#endif
>      free_vcpu_struct(v);
>  }
>  
> @@ -511,6 +519,22 @@ struct vcpu *vcpu_create(struct domain *d, unsigned int vcpu_id)
>      if ( arch_vcpu_create(v) != 0 )
>          goto fail_sched;
>  
> +#ifdef CONFIG_HAS_VPCI

Would it make sense to introduce a vpci_* function instead of #ifdef? Same for
the deallocation above.

> +    {

I'm not sure it's necessary to start a new block here.

> +        int i;
> +
> +        for ( i = 0; i < ARRAY_SIZE(v->vpci.bar_mem); i++ )
> +        {
> +            char str[32];
> +
> +            snprintf(str, sizeof(str), "%pv:BAR%u", v, i);
> +            v->vpci.bar_mem[i] = rangeset_new(d, str, RANGESETF_no_print);

This seems to be performing an allocation for vPCI even for domains that don't
have vPCI.

> +            if ( !v->vpci.bar_mem[i] )
> +                goto fail_sched;
> +        }
> +    }
> +#endif
> +
>      d->vcpu[vcpu_id] = v;
>      if ( vcpu_id != 0 )
>      {
> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
> index 07ec991a12..cb64d9b9fc 100644
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -195,6 +195,7 @@ bool vpci_process_pending(struct vcpu *v)
>      for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
>      {
>          struct vpci_bar *bar = &header->bars[i];
> +        struct rangeset *mem = v->vpci.bar_mem[i];
>          struct map_data data = {
>              .d = v->domain,
>              .map = v->vpci.cmd & PCI_COMMAND_MEMORY,
> @@ -202,10 +203,10 @@ bool vpci_process_pending(struct vcpu *v)
>          };
>          int rc;
>  
> -        if ( rangeset_is_empty(bar->mem) )
> +        if ( rangeset_is_empty(mem) )
>              continue;
>  
> -        rc = rangeset_consume_ranges(bar->mem, map_range, &data);
> +        rc = rangeset_consume_ranges(mem, map_range, &data);
>  
>          if ( rc == -ERESTART )
>          {
> @@ -223,8 +224,8 @@ bool vpci_process_pending(struct vcpu *v)
>  
>              /* Clean all the rangesets */
>              for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
> -                if ( !rangeset_is_empty(header->bars[i].mem) )
> -                     rangeset_purge(header->bars[i].mem);
> +                if ( !rangeset_is_empty(v->vpci.bar_mem[i]) )
> +                     rangeset_purge(v->vpci.bar_mem[i]);
>  
>              v->vpci.pdev = NULL;
>  
> @@ -259,13 +260,14 @@ static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
>      for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
>      {
>          struct vpci_bar *bar = &header->bars[i];
> +        struct rangeset *mem = current->vpci.bar_mem[i];
>          struct map_data data = { .d = d, .map = true, .bar = bar };
>  
> -        if ( rangeset_is_empty(bar->mem) )
> +        if ( rangeset_is_empty(mem) )
>              continue;
>  
> -        while ( (rc = rangeset_consume_ranges(bar->mem, map_range,
> -                                              &data)) == -ERESTART )
> +        while ( (rc = rangeset_consume_ranges(mem, map_range, &data)) ==
> +                -ERESTART )
>          {
>              /*
>               * It's safe to drop and reacquire the lock in this context
> @@ -330,12 +332,13 @@ int vpci_modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>      for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
>      {
>          struct vpci_bar *bar = &header->bars[i];
> +        struct rangeset *mem = current->vpci.bar_mem[i];
>          unsigned long start = PFN_DOWN(bar->addr);
>          unsigned long end = PFN_DOWN(bar->addr + bar->size - 1);
>          unsigned long start_guest = PFN_DOWN(bar->guest_addr);
>          unsigned long end_guest = PFN_DOWN(bar->guest_addr + bar->size - 1);
>  
> -        if ( !bar->mem )
> +        if ( !mem )
>              continue;
>  
>          if ( !MAPPABLE_BAR(bar) ||
> @@ -353,7 +356,7 @@ int vpci_modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>              continue;
>          }
>  
> -        ASSERT(rangeset_is_empty(bar->mem));
> +        ASSERT(rangeset_is_empty(mem));
>  
>          /*
>           * Make sure that the guest set address has the same page offset
> @@ -368,7 +371,7 @@ int vpci_modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>              return -EINVAL;
>          }
>  
> -        rc = rangeset_add_range(bar->mem, start_guest, end_guest);
> +        rc = rangeset_add_range(mem, start_guest, end_guest);
>          if ( rc )
>          {
>              printk(XENLOG_G_WARNING "Failed to add [%lx, %lx]: %d\n",
> @@ -379,12 +382,12 @@ int vpci_modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>          /* Check for overlap with the already setup BAR ranges. */
>          for ( j = 0; j < i; j++ )
>          {
> -            struct vpci_bar *prev_bar = &header->bars[j];
> +            struct rangeset *prev_mem = current->vpci.bar_mem[j];
>  
> -            if ( rangeset_is_empty(prev_bar->mem) )
> +            if ( rangeset_is_empty(prev_mem) )
>                  continue;
>  
> -            rc = rangeset_remove_range(prev_bar->mem, start_guest, end_guest);
> +            rc = rangeset_remove_range(prev_mem, start_guest, end_guest);
>              if ( rc )
>              {
>                  gprintk(XENLOG_WARNING,
> @@ -394,7 +397,7 @@ int vpci_modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>              }
>          }
>  
> -        rc = pci_sanitize_bar_memory(bar->mem);
> +        rc = pci_sanitize_bar_memory(mem);
>          if ( rc )
>          {
>              gprintk(XENLOG_WARNING,
> @@ -411,14 +414,14 @@ int vpci_modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>          unsigned long end = PFN_DOWN(vmsix_table_addr(pdev->vpci, i) +
>                                       vmsix_table_size(pdev->vpci, i) - 1);
>  
> -        for ( j = 0; j < ARRAY_SIZE(header->bars); j++ )
> +        for ( j = 0; j < ARRAY_SIZE(current->vpci.bar_mem); j++ )
>          {
> -            const struct vpci_bar *bar = &header->bars[j];
> +            struct rangeset *mem = current->vpci.bar_mem[j];
>  
> -            if ( rangeset_is_empty(bar->mem) )
> +            if ( rangeset_is_empty(mem) )
>                  continue;
>  
> -            rc = rangeset_remove_range(bar->mem, start, end);
> +            rc = rangeset_remove_range(mem, start, end);
>              if ( rc )
>              {
>                  gprintk(XENLOG_WARNING,
> @@ -468,8 +471,9 @@ int vpci_modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>                  for ( j = 0; j < ARRAY_SIZE(header->bars); j++)
>                  {
>                      const struct vpci_bar *bar = &header->bars[j];
> +                    struct rangeset *mem = current->vpci.bar_mem[j];
>  
> -                    if ( !rangeset_overlaps_range(bar->mem, start, end) ||
> +                    if ( !rangeset_overlaps_range(mem, start, end) ||
>                           /*
>                            * If only the ROM enable bit is toggled check against
>                            * other BARs in the same device for overlaps, but not
> @@ -480,7 +484,7 @@ int vpci_modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>                            bar->type == VPCI_BAR_ROM) )
>                          continue;
>  
> -                    rc = rangeset_remove_range(bar->mem, start, end);
> +                    rc = rangeset_remove_range(mem, start, end);
>                      if ( rc )
>                      {
>                          gprintk(XENLOG_WARNING,
> @@ -733,18 +737,6 @@ static void cf_check rom_write(
>      }
>  }
>  
> -static int bar_add_rangeset(const struct pci_dev *pdev, struct vpci_bar *bar,
> -                            unsigned int i)
> -{
> -    char str[32];
> -
> -    snprintf(str, sizeof(str), "%pp:BAR%u", &pdev->sbdf, i);
> -
> -    bar->mem = rangeset_new(pdev->domain, str, RANGESETF_no_print);
> -
> -    return !bar->mem ? -ENOMEM : 0;
> -}
> -
>  static int vpci_init_capability_list(struct pci_dev *pdev)
>  {
>      int rc;
> @@ -989,10 +981,6 @@ int vpci_init_header(struct pci_dev *pdev)
>          else
>              bars[i].type = VPCI_BAR_MEM32;
>  
> -        rc = bar_add_rangeset(pdev, &bars[i], i);
> -        if ( rc )
> -            goto fail;
> -
>          rc = pci_size_mem_bar(pdev->sbdf, reg, &addr, &size,
>                                (i == num_bars - 1) ? PCI_BAR_LAST : 0);
>          if ( rc < 0 )
> @@ -1046,12 +1034,6 @@ int vpci_init_header(struct pci_dev *pdev)
>                                 4, rom);
>          if ( rc )
>              rom->type = VPCI_BAR_EMPTY;
> -        else
> -        {
> -            rc = bar_add_rangeset(pdev, rom, num_bars);
> -            if ( rc )
> -                goto fail;
> -        }
>      }
>      else if ( !is_hwdom )
>      {
> diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
> index f66f50c8ba..af61b521b0 100644
> --- a/xen/drivers/vpci/vpci.c
> +++ b/xen/drivers/vpci/vpci.c
> @@ -357,9 +357,6 @@ void vpci_deassign_device(struct pci_dev *pdev)
>      }
>      spin_unlock(&pdev->vpci->lock);
>  
> -    for ( i = 0; i < ARRAY_SIZE(pdev->vpci->header.bars); i++ )
> -        rangeset_destroy(pdev->vpci->header.bars[i].mem);
> -
>      xfree(pdev->vpci);
>      pdev->vpci = NULL;
>  }
> diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
> index dd233b8b03..fa654545e5 100644
> --- a/xen/include/xen/vpci.h
> +++ b/xen/include/xen/vpci.h
> @@ -118,7 +118,6 @@ struct vpci {
>              uint64_t guest_addr;
>              uint64_t size;
>              uint64_t resizable_sizes;
> -            struct rangeset *mem;
>              enum {
>                  VPCI_BAR_EMPTY,
>                  VPCI_BAR_IO,
> @@ -212,6 +211,9 @@ struct vpci {
>  struct vpci_vcpu {
>      /* Per-vcpu structure to store state while {un}mapping of PCI BARs. */
>      const struct pci_dev *pdev;
> +#ifdef __XEN__

Why not enclose the whole vpci_vcpu struct inside __XEN__?

> +    struct rangeset *bar_mem[PCI_HEADER_NORMAL_NR_BARS + 1];

Maybe add a brief comment explaining the + 1 ?

> +#endif
>      uint16_t cmd;
>      bool rom_only : 1;
>  };



From xen-devel-bounces@lists.xenproject.org Mon Mar 16 23:54:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Mar 2026 23:54:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255836.1550635 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2HlO-0005v1-3G; Mon, 16 Mar 2026 23:54:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255836.1550635; Mon, 16 Mar 2026 23:54:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2HlN-0005ut-VA; Mon, 16 Mar 2026 23:54:21 +0000
Received: by outflank-mailman (input) for mailman id 1255836;
 Mon, 16 Mar 2026 23: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=49j5=BQ=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1w2HlL-0005un-Sq
 for xen-devel@lists.xenproject.org; Mon, 16 Mar 2026 23:54:20 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 71ba9a6a-2193-11f1-b164-2bf370ae4941;
 Tue, 17 Mar 2026 00:54:18 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-48535a0ef86so42951995e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 16 Mar 2026 16:54:18 -0700 (PDT)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b3a09e453sm24080003f8f.0.2026.03.16.16.54.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 16 Mar 2026 16:54:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 71ba9a6a-2193-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1773705257; x=1774310057; 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=VpDc41qTU05GQGpVEGDvS9cNjnVRzouYB5NsVGwgUmw=;
        b=gDKuFhvMEhK380Tb1DK11/8pl0Z8tiDw9KHgrTZYd04HZml1GFn4tbRt9G0Cz5Xcxh
         SlRWNJGc8OXrMEtP2GGSNG0Uv1FhLSU0AUJfLSURu/v6yEIzCkQslCDpBtrqUuwgHinE
         /DLhv0Kfd1/hoClFdEFtodeevjdPRbINqYsxg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773705257; x=1774310057;
        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=VpDc41qTU05GQGpVEGDvS9cNjnVRzouYB5NsVGwgUmw=;
        b=nL/nwJH2BVbQeSDmbEt9JlSYqINKMOXtJMy1HBiSO1ZC0Yxm0Jy2w+nFtM8nun0JPN
         hK2+ND6dGhxX7QUSvX8T8OrGRRkdseEh3QR/R3fN/Sn6blQL1wPkxzCTDt/wzieIEn2o
         ILM4oE3W3VV0NfVEhrD843uEVTWTrLdAAkkI3v8rZydSq95O6/8JximzrRja1e1xV/Nf
         BVkCoWvBBSr6s/4feLuv52o7Ly7ukP6/W9K+240MPrIK1UhNZudZGba0pihPsPJjSTj5
         0jfYVqclIDmtwTSWfG8rhBOYU3M4Qiys0Ua15ToRxaiGVsnTPkZwGfMBj6LjswlpfohG
         ZK3w==
X-Gm-Message-State: AOJu0YwdH2H1pmvIgljNxM+wkWeKJ3OVeIaGoI/7N3UWxrhc7YrHHkga
	yczw7/hZ3RcLdmmBR17ceIbMLPXYtV+441/14QVYkeuLJO7US+xfqxUkrejwaGGQUFzD4uaI1xk
	8IU3i
X-Gm-Gg: ATEYQzxSfZbS4Yz3ytr2rt+0FDYbgiXTCpInYqmIS4YK50kI/azci2V8xQgkIWaoc+x
	hGecVSbIl2xM5DA5MxfFn0tXIMhIiLEi93gspIICic8HzxhZWfBTDJ/8jaFIx5+uLJBTGlpp5B3
	MAyxuA9IVHHZjszgfZHhBZz/XmE77sJgFeEBcUhrGXmOdc4Fbs4KcodYs53dWD9ACWhMOWIW5uS
	C9dErhC6YUzjrydTL2hU4bU17ynMcFga76I4HIgaMpUTpgFL9bFofdC+2jKg5lGC2Z47jgjWqfr
	xORoR0ZKHzsCJC4dRPo4Og6ZirAusrQIg6vO3sMKsfCWTg1FlkuMKIeIul8hjRR3TyVDI4Biqvk
	6lhRR2QS4oTDTJZ+P0RNFJ0i1lCF3z4P1uJcMCvGLu8yKmKcbBt1jNlzW6pUw+LAUEuqTXZ7m+I
	bXvqcapXeovsX1n4mQIKoVm7CGKSgGz+3HjB8kv/F6/qchryuf35wH3lL0IcXewJ66KfUSeW8=
X-Received: by 2002:a05:6000:2086:b0:439:b791:f920 with SMTP id ffacd0b85a97d-43a04d88460mr27429963f8f.17.1773705256758;
        Mon, 16 Mar 2026 16:54:16 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@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/coverage: Drop support for older GCOV
Date: Mon, 16 Mar 2026 23:54:14 +0000
Message-Id: <20260316235414.683426-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

With the GCC toolchain baseline now at 5.1, gcc_3_4.o (covering 3.4 through
4.6) will never get chosen.  Drop it.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
---
 xen/common/coverage/Makefile  |   2 +-
 xen/common/coverage/gcc_3_4.c | 367 ----------------------------------
 2 files changed, 1 insertion(+), 368 deletions(-)
 delete mode 100644 xen/common/coverage/gcc_3_4.c

diff --git a/xen/common/coverage/Makefile b/xen/common/coverage/Makefile
index d729afc9c7a0..26bc1b7c04cd 100644
--- a/xen/common/coverage/Makefile
+++ b/xen/common/coverage/Makefile
@@ -1,7 +1,7 @@
 obj-y += coverage.o
 ifneq ($(CONFIG_CC_IS_CLANG),y)
 obj-y += gcov_base.o gcov.o
-obj-y += $(call cc-ifversion,-lt,0407, gcc_3_4.o, gcc_4_7.o)
+obj-y += gcc_4_7.o
 else
 obj-y += llvm.o
 endif
diff --git a/xen/common/coverage/gcc_3_4.c b/xen/common/coverage/gcc_3_4.c
deleted file mode 100644
index 3631f4bc2535..000000000000
--- a/xen/common/coverage/gcc_3_4.c
+++ /dev/null
@@ -1,367 +0,0 @@
-/*
- *  This code provides functions to handle gcc's profiling data format
- *  introduced with gcc 3.4. Future versions of gcc may change the gcov
- *  format (as happened before), so all format-specific information needs
- *  to be kept modular and easily exchangeable.
- *
- *  This file is based on gcc-internal definitions. Functions and data
- *  structures are defined to be compatible with gcc counterparts.
- *  For a better understanding, refer to gcc source: gcc/gcov-io.h.
- *
- *    Copyright IBM Corp. 2009
- *    Author(s): Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
- *
- *    Uses gcc-internal data definitions.
- *
- *  Imported from Linux and modified for Xen by
- *    Wei Liu <wei.liu2@citrix.com>
- */
-
-
-#include <xen/lib.h>
-
-#include "gcov.h"
-
-#if !(GCC_VERSION >= 30400 && GCC_VERSION < 40700)
-#error "Wrong version of GCC used to compile gcov"
-#endif
-
-#define GCOV_COUNTERS 5
-
-static struct gcov_info *gcov_info_head;
-
-/**
- * struct gcov_fn_info - profiling meta data per function
- * @ident: object file-unique function identifier
- * @checksum: function checksum
- * @n_ctrs: number of values per counter type belonging to this function
- *
- * This data is generated by gcc during compilation and doesn't change
- * at run-time.
- */
-struct gcov_fn_info
-{
-    unsigned int ident;
-    unsigned int checksum;
-    unsigned int n_ctrs[0];
-};
-
-/**
- * struct gcov_ctr_info - profiling data per counter type
- * @num: number of counter values for this type
- * @values: array of counter values for this type
- * @merge: merge function for counter values of this type (unused)
- *
- * This data is generated by gcc during compilation and doesn't change
- * at run-time with the exception of the values array.
- */
-struct gcov_ctr_info
-{
-    unsigned int num;
-    gcov_type *values;
-    void (*merge)(gcov_type *, unsigned int);
-};
-
-/**
- * struct gcov_info - profiling data per object file
- * @version: gcov version magic indicating the gcc version used for compilation
- * @next: list head for a singly-linked list
- * @stamp: time stamp
- * @filename: name of the associated gcov data file
- * @n_functions: number of instrumented functions
- * @functions: function data
- * @ctr_mask: mask specifying which counter types are active
- * @counts: counter data per counter type
- *
- * This data is generated by gcc during compilation and doesn't change
- * at run-time with the exception of the next pointer.
- */
-struct gcov_info
-{
-    unsigned int              version;
-    struct gcov_info          *next;
-    unsigned int              stamp;
-    const char                *filename;
-    unsigned int              n_functions;
-    const struct gcov_fn_info *functions;
-    unsigned int              ctr_mask;
-    struct gcov_ctr_info      counts[0];
-};
-
-/**
- * struct type_info - iterator helper array
- * @ctr_type: counter type
- * @offset: index of the first value of the current function for this type
- *
- * This array is needed to convert the in-memory data format into the in-file
- * data format:
- *
- * In-memory:
- *   for each counter type
- *     for each function
- *       values
- *
- * In-file:
- *   for each function
- *     for each counter type
- *       values
- *
- * See gcc source gcc/gcov-io.h for more information on data organization.
- */
-struct type_info {
-    int ctr_type;
-    unsigned int offset;
-};
-
-/**
- * struct gcov_iterator - specifies current file position in logical records
- * @info: associated profiling data
- * @record: record type
- * @function: function number
- * @type: counter type
- * @count: index into values array
- * @num_types: number of counter types
- * @type_info: helper array to get values-array offset for current function
- */
-struct gcov_iterator {
-    const struct gcov_info *info;
-
-    int record;
-    unsigned int function;
-    unsigned int type;
-    unsigned int count;
-
-    int num_types;
-    struct type_info type_info[GCOV_COUNTERS];
-};
-
-/* Mapping of logical record number to actual file content. */
-#define RECORD_FILE_MAGIC       0
-#define RECORD_GCOV_VERSION     1
-#define RECORD_TIME_STAMP       2
-#define RECORD_FUNCTION_TAG     3
-#define RECORD_FUNCTON_TAG_LEN  4
-#define RECORD_FUNCTION_IDENT   5
-#define RECORD_FUNCTION_CHECK   6
-#define RECORD_COUNT_TAG        7
-#define RECORD_COUNT_LEN        8
-#define RECORD_COUNT            9
-
-static int counter_active(const struct gcov_info *info, unsigned int type)
-{
-    return (1 << type) & info->ctr_mask;
-}
-
-static unsigned int num_counter_active(const struct gcov_info *info)
-{
-    unsigned int i;
-    unsigned int result = 0;
-
-    for ( i = 0; i < GCOV_COUNTERS; i++ )
-        if ( counter_active(info, i) )
-            result++;
-
-    return result;
-}
-
-void gcov_info_link(struct gcov_info *info)
-{
-    info->next = gcov_info_head;
-    gcov_info_head = info;
-}
-
-struct gcov_info *gcov_info_next(const struct gcov_info *info)
-{
-    if ( !info )
-        return gcov_info_head;
-
-    return info->next;
-}
-
-const char *gcov_info_filename(const struct gcov_info *info)
-{
-    return info->filename;
-}
-
-void gcov_info_reset(struct gcov_info *info)
-{
-    unsigned int active = num_counter_active(info);
-    unsigned int i;
-
-    for ( i = 0; i < active; i++ )
-        memset(info->counts[i].values, 0,
-               info->counts[i].num * sizeof(gcov_type));
-}
-
-static size_t get_fn_size(const struct gcov_info *info)
-{
-    size_t size;
-
-    size = sizeof(struct gcov_fn_info) + num_counter_active(info) *
-        sizeof(unsigned int);
-    if ( __alignof__(struct gcov_fn_info) > sizeof(unsigned int) )
-        size = ROUNDUP(size, __alignof__(struct gcov_fn_info));
-    return size;
-}
-
-static struct gcov_fn_info *get_fn_info(const struct gcov_info *info,
-                                        unsigned int fn)
-{
-    return (struct gcov_fn_info *)
-        ((char *) info->functions + fn * get_fn_size(info));
-}
-
-static struct gcov_fn_info *get_func(struct gcov_iterator *iter)
-{
-    return get_fn_info(iter->info, iter->function);
-}
-
-static struct type_info *get_type(struct gcov_iterator *iter)
-{
-    return &iter->type_info[iter->type];
-}
-
-/**
- * gcov_iter_next - advance file iterator to next logical record
- * @iter: file iterator
- *
- * Return zero if new position is valid, non-zero if iterator has reached end.
- */
-static int gcov_iter_next(struct gcov_iterator *iter)
-{
-    switch ( iter->record )
-    {
-    case RECORD_FILE_MAGIC:
-    case RECORD_GCOV_VERSION:
-    case RECORD_FUNCTION_TAG:
-    case RECORD_FUNCTON_TAG_LEN:
-    case RECORD_FUNCTION_IDENT:
-    case RECORD_COUNT_TAG:
-        /* Advance to next record */
-        iter->record++;
-        break;
-    case RECORD_COUNT:
-        /* Advance to next count */
-        iter->count++;
-        /* fall through */
-    case RECORD_COUNT_LEN:
-        if ( iter->count < get_func(iter)->n_ctrs[iter->type] )
-        {
-            iter->record = 9;
-            break;
-        }
-        /* Advance to next counter type */
-        get_type(iter)->offset += iter->count;
-        iter->count = 0;
-        iter->type++;
-        /* fall through */
-    case RECORD_FUNCTION_CHECK:
-        if ( iter->type < iter->num_types )
-        {
-            iter->record = 7;
-            break;
-        }
-        /* Advance to next function */
-        iter->type = 0;
-        iter->function++;
-        /* fall through */
-    case RECORD_TIME_STAMP:
-        if ( iter->function < iter->info->n_functions )
-            iter->record = 3;
-        else
-            iter->record = -1;
-        break;
-    }
-    /* Check for EOF. */
-    if ( iter->record == -1 )
-        return -EINVAL;
-    else
-        return 0;
-}
-
-/**
- * gcov_iter_write - write data to buffer
- * @iter: file iterator
- * @buf: buffer to write to, if it is NULL, nothing is written
- * @pos: position inside buffer to start writing
- *
- * Return number of bytes written into buffer.
- */
-static size_t gcov_iter_write(struct gcov_iterator *iter, char *buf,
-                              size_t pos)
-{
-    size_t ret = 0;
-
-    switch ( iter->record )
-    {
-    case RECORD_FILE_MAGIC:
-        ret = gcov_store_uint32(buf, pos, GCOV_DATA_MAGIC);
-        break;
-    case RECORD_GCOV_VERSION:
-        ret = gcov_store_uint32(buf, pos, iter->info->version);
-        break;
-    case RECORD_TIME_STAMP:
-        ret = gcov_store_uint32(buf, pos, iter->info->stamp);
-        break;
-    case RECORD_FUNCTION_TAG:
-        ret = gcov_store_uint32(buf, pos, GCOV_TAG_FUNCTION);
-        break;
-    case RECORD_FUNCTON_TAG_LEN:
-        ret = gcov_store_uint32(buf, pos, 2);
-        break;
-    case RECORD_FUNCTION_IDENT:
-        ret = gcov_store_uint32(buf, pos, get_func(iter)->ident);
-        break;
-    case RECORD_FUNCTION_CHECK:
-        ret = gcov_store_uint32(buf, pos, get_func(iter)->checksum);
-        break;
-    case RECORD_COUNT_TAG:
-        ret = gcov_store_uint32(buf, pos,
-                                GCOV_TAG_FOR_COUNTER(get_type(iter)->ctr_type));
-        break;
-    case RECORD_COUNT_LEN:
-        ret = gcov_store_uint32(buf, pos,
-                                get_func(iter)->n_ctrs[iter->type] * 2);
-        break;
-    case RECORD_COUNT:
-        ret = gcov_store_uint64(buf, pos, iter->info->counts[iter->type].
-                                values[iter->count + get_type(iter)->offset]);
-        break;
-    }
-
-    return ret;
-}
-
-/* If buffer is NULL, no data is written. */
-size_t gcov_info_to_gcda(char *buffer, const struct gcov_info *info)
-{
-    struct gcov_iterator iter = { .info = info };
-    unsigned int i;
-    size_t pos = 0;
-
-    for ( i = 0; i < GCOV_COUNTERS; i++ )
-    {
-        if ( counter_active(info, i) )
-        {
-            iter.type_info[iter.num_types].ctr_type = i;
-            iter.type_info[iter.num_types].offset = 0;
-            iter.num_types++;
-        }
-    }
-
-    do {
-        pos += gcov_iter_write(&iter, buffer, pos);
-    } while ( gcov_iter_next(&iter) == 0 );
-
-    return pos;
-}
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * tab-width: 4
- * indent-tabs-mode: nil
- * End:
- */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Mar 17 00:36:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Mar 2026 00:36:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255844.1550643 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2IQ2-0003AJ-5O; Tue, 17 Mar 2026 00:36:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255844.1550643; Tue, 17 Mar 2026 00: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 1w2IQ2-0003AC-1Y; Tue, 17 Mar 2026 00:36:22 +0000
Received: by outflank-mailman (input) for mailman id 1255844;
 Tue, 17 Mar 2026 00:36: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=wERr=BR=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1w2IQ0-0003A6-Gc
 for xen-devel@lists.xenproject.org; Tue, 17 Mar 2026 00:36:20 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4bbe2e9b-2199-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Mar 2026 01:36:11 +0100 (CET)
Received: from CH2PR14CA0038.namprd14.prod.outlook.com (2603:10b6:610:56::18)
 by CH3PR12MB9079.namprd12.prod.outlook.com (2603:10b6:610:1a1::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.13; Tue, 17 Mar
 2026 00:36:04 +0000
Received: from CH3PEPF00000015.namprd21.prod.outlook.com
 (2603:10b6:610:56:cafe::a3) by CH2PR14CA0038.outlook.office365.com
 (2603:10b6:610:56::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.25 via Frontend
 Transport; Tue, 17 Mar 2026 00:35:58 +0000
Received: from satlexmb08.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.9745.0 via Frontend Transport; Tue, 17 Mar 2026 00:36:00 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 16 Mar
 2026 19:35:59 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 16 Mar
 2026 17:35:59 -0700
Received: from [172.24.66.250] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 16 Mar 2026 19:35:58 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4bbe2e9b-2199-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rRHwIB+4hj+ZDL+mf5Aew1jKIJSSi7mTSYqGvBzMd66ZAG3VnoB+Z/tOVhd4K1IPhFpPCfE7hKtRTqlE9xqXFe9altCU4aoBf8wm5jHCp8T3uS+uUmKwmgMEzP5ZYifH6Se7VxC7V7mK/zsrpSc22mJgHAcDhENPOtlHcGqMas/2pv0DBeS1q1MmXK/5nMHYa6ppV0szYL2TSI2A7+DGZ2Vmk9StX1/rEIIYRO6L3Q+uGLIsmpP5rCUbxQOMMD2bk7jusEq55Va4oUUhmuDX+LpkC+lCl/JaqL67tk3Qe0sbTLUZ9Wh5Wp7C8BULCSZVqUVaxLdAYx/AZiyhW1zaow==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XUMtEea3a+YnlF3/9rKfmZaz3dVFSAle/v99I03LFEc=;
 b=lcU7d16XZdkj0Jl1ERGegzK8+JxPjul3q7Y36rjK3odRtFqaXXVtMEyVXbZUODwCKGHbpwMrCU79CwCEnjHOP0dmCfSdyb7TnVEF12vkUA1QJ0EZZAg9LfP+udG7DrgcEwYDT49U8yP18KdSEWkhiie9vSp05FjmuDngEzfkj1NGwmiTpTMtceDO/hldZ4o6KBSy0pkPe2QdIl7vhBIa+W7MszeSpVvy3Ev0t+28URk8Y1Z4oHU0uSelUiABpxMIpTbQNf7yNLJEzFpvWJxr9z0hLau6G0yoTicIFf3KLMzHH6xpzdV22x6VA3nISxFJH4U9EK/5zNJw4X1wcH/tbw==
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=XUMtEea3a+YnlF3/9rKfmZaz3dVFSAle/v99I03LFEc=;
 b=tr8UK26MwJf4KxExy+TWxI6N6ajQ9ISj2Na9euKHE1P+A9sVjC5Tl3Imjh0UxYKDXgg33KqdPa05iDgD9QfKRZLYGSm/p37U40iWqrwOSQ7iKRYL4+JKI2MpGHKnTg+ZzI7V8dP5gXZ28xAN0HzO83CvY5nvoAQtTGj+J559Hbo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <d4e9f2dd-803e-41b6-8093-6f3b67e941e3@amd.com>
Date: Mon, 16 Mar 2026 20:36:06 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/8] vpci: Use pervcpu ranges for BAR mapping
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>, Julien Grall <julien@xen.org>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>
References: <cover.1772806036.git.mykyta_poturai@epam.com>
 <43ce584a124f0bd07e641934e15e5ab56548e1ba.1772806036.git.mykyta_poturai@epam.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <43ce584a124f0bd07e641934e15e5ab56548e1ba.1772806036.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PEPF00000015:EE_|CH3PR12MB9079:EE_
X-MS-Office365-Filtering-Correlation-Id: 9015ab85-1ceb-4865-2983-08de83bd299a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|82310400026|36860700016|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	krD3Os5vdt5gCyFxMagTVVHEjH61s2TvZvEPSIhn1Q4cZNJ0V4PFPPbIukpM8lgRRM1SHXdpJPUvu5DyOLeXtAqOk6lCV55skgN25N2Vw09xykxkSaFtCMV4UUZONWAC179yRTQtqY7J1n4MjU5/UuW9bhp2fqSrMz1Rk/XLuSZjTIu+9FjG7IBrhd3bxfUFrnoTgBvKASP3CjRAUYOPykadjzXpEIN3sCtUB5WxsHCwF/MPWIGgeIx/ZqMD2HyCqiNPYv2YSHTZldgGJ0ssIz3NLx0IGA5I5F14cbK9fVVJcAh1IWWktw2Os9wpZXy3oD4Co16ulYzmgUnxyoIzd4x6P/ceDD/Zk6ZcmxO3GPB62PdTAnytvSu9n3S7Wvh31CTFxCUroLXNkg/wEvWoX+cDStjXsHcZ5Kc7fln2jBlmTrUArPzXOGAx8xzL4GNOuThST1oJW20QYtuIuOSuRE39B4i5EniaJviS92rUguXPBmrMV416rrY2jdUZjlurTK81pQWfwFegqTkooOxvvosIVjbozeGe5G77AHESezviQrmk7NnbbohWjgW6OC9M5v8nWx5zRn4+Hqx50wOz5ILFNQDOZNLxfXNNOUhpfjUkbQWcaZ5tjs/aia0RwAro140XgInMokEdQ4K9QYbypuzvbVswoRr4a/Kc0C7fpUUkl1X3M7YdJc7fKOrtRHuDvfwOWWBDTfqaPwzgVFWFfONSaSdtnyYhZ4nCI4AlMR/PRKGg2NRdvsF9EaFC/lvG9Q/ju8d718W0eUfVXlQ9Pg==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700016)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	/pGHk/JJSZLeoUK5N/jOVK9r4arkXDszJHcXyymcjBaCmhkfwqRWEQCdURtHuZD0ibLL8rbxQhG8xnkRZCvNd6LqNBVTTWSiOQ+KBNARFUVq4+1OSMX2Xqp99wXzDiJTwrLw/nU7Nk3yEZNNFqS5EEa9JvKIEIcv1WytQd0bv5K3VMBBls2SriPGbVb/vtFEeZK+jfcfZnBC1FeIIkA+ZN9QYIGoPChWbv2K3Mx7IJI2BUScgapT1bOij2hbXS7IXnrp60SYx3phJ9QlBId4EC+buwtfEe2T+p9bp0thnL/8vDSwbvdpfYjZlXQELldcZSG/fxkvkZFPyBMaWXS58G7V+8qxyzr+CkIGmJXeKMuP9ax/THVO8wAfZ+aC9GQy53FNDBDDoBihov5hyR7oRapPrFC05LcZlsvhuObi2X2Vyqqn238pniMcR6kolxOW
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2026 00:36:00.2684
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9015ab85-1ceb-4865-2983-08de83bd299a
X-MS-Exchange-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:
	CH3PEPF00000015.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9079

On 3/9/26 07:08, Mykyta Poturai wrote:
> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
> index 07ec991a12..cb64d9b9fc 100644
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c

... snip ...

> @@ -330,12 +332,13 @@ int vpci_modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>      for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
>      {
>          struct vpci_bar *bar = &header->bars[i];
> +        struct rangeset *mem = current->vpci.bar_mem[i];
>          unsigned long start = PFN_DOWN(bar->addr);
>          unsigned long end = PFN_DOWN(bar->addr + bar->size - 1);
>          unsigned long start_guest = PFN_DOWN(bar->guest_addr);
>          unsigned long end_guest = PFN_DOWN(bar->guest_addr + bar->size - 1);
>  
> -        if ( !bar->mem )
> +        if ( !mem )

Since all the members of the bar_mem array are allocated unconditionally in
vcpu_create, is the check here still necessary?


From xen-devel-bounces@lists.xenproject.org Tue Mar 17 08:16:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Mar 2026 08:16:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255865.1550653 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2PbN-0005cv-Su; Tue, 17 Mar 2026 08:16:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255865.1550653; Tue, 17 Mar 2026 08:16: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 1w2PbN-0005co-Ox; Tue, 17 Mar 2026 08:16:33 +0000
Received: by outflank-mailman (input) for mailman id 1255865;
 Tue, 17 Mar 2026 08:16:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=U9f7=BR=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1w2PbL-0005ci-KM
 for xen-devel@lists.xenproject.org; Tue, 17 Mar 2026 08:16:31 +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 97f772bb-21d9-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Mar 2026 09:16:26 +0100 (CET)
Received: from CH2PR12CA0006.namprd12.prod.outlook.com (2603:10b6:610:57::16)
 by DS0PR12MB8413.namprd12.prod.outlook.com (2603:10b6:8:f9::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9723.17; Tue, 17 Mar 2026 08:16:20 +0000
Received: from DS3PEPF000099DF.namprd04.prod.outlook.com
 (2603:10b6:610:57:cafe::3e) by CH2PR12CA0006.outlook.office365.com
 (2603:10b6:610:57::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.27 via Frontend Transport; Tue,
 17 Mar 2026 08:16:07 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 DS3PEPF000099DF.mail.protection.outlook.com (10.167.17.202) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9700.17 via Frontend Transport; Tue, 17 Mar 2026 08:16:20 +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, 17 Mar
 2026 03:16:20 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 17 Mar
 2026 03:16:19 -0500
Received: from [10.71.194.215] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 17 Mar 2026 03:16:18 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 97f772bb-21d9-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ffCHkjJsIKuwKRH9Z22A6f5LpzSuvK5MIWj1zJgB7wDn0JAUr1nDuKzFifxn+xGMCt79eGDQeCyM5Txsazp6Ikm9m7q76P3UOipkKKETGYmfkz8tDXpQ2pBLQPvJ0mhSTbzbh8ZdNIjdYdB2MRPncOWv5D5H3QX0OtYWfhme0GOs8GgzgDdfOSowewU39WuV3CSZl6476/mWmIqS+TWoAs00azULH4Y/yLPooY1DrO0PWJt8e1dCYrv5aA5wiY2939kV2Qxve+cATgC7nkmVNUYHhue39oXruWj+sWXznWVIeyHPqZe+6+KRgK1K3Q4JLx/nD34QGf/CRO06H8Gbuw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=I2g1VpWtynCcCFbQRfm/X1d7vaggBKUojTzUMnV3lCw=;
 b=uwxu+PwUbSMvzkREiCTVeR9EwyfmdKi10EgoNcPnyiIyHScclpBhaaqYi0Z+GmKk98IDoKyjCwO0g+UT1nuhvFpVSUwmgITVK+OhlRxvI8tvT82zgs4GyXS25oAPlNKWCbdwwwvrJ5HUAbA4d40SOhbm20EhBkVdiztroifJc8Z8j6P9Zw8iW+80q1GVZdswoMX1JfPYuJ0tIK0HKNjEDt4W1sh5frEUFIzWtCMk4aek75Y6pekKzNRly0xKLOlZ59OkboHxrazvmR73ExqQ/WRKcSUpk9SIe0PCnBhvapNAnajFdGzalRwCXgfSDfRc9/6cT6Bd88JVqSgFTYifdw==
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=I2g1VpWtynCcCFbQRfm/X1d7vaggBKUojTzUMnV3lCw=;
 b=DU4vsyR8mLt2BBAdidmbfe8FxsOAZp/fiqH/I6gDGzjULR+nC+w0D4vxUxPIpUMGrSTE2bMd/Cy+qKYet/csI/CZBTydodqhNruQ2cKyAJD5CXtdFYn2Yei57FM0b+1ChS+FYr433wHhkmQZQxo9N/gx4o+WPdnGYCJlCNG+QNc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <f1644c53-4895-40af-b2a9-746592c78fe0@amd.com>
Date: Tue, 17 Mar 2026 09:16:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/coverage: Drop support for older GCOV
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>
References: <20260316235414.683426-1-andrew.cooper3@citrix.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260316235414.683426-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF000099DF:EE_|DS0PR12MB8413:EE_
X-MS-Office365-Filtering-Correlation-Id: fcbad4e7-a88d-4b21-1209-08de83fd7894
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|82310400026|1800799024|18002099003|22082099003|56012099003|7053199007;
X-Microsoft-Antispam-Message-Info:
	tfGzYTfV3nOEeIP/w3RvtaypaOwuxulA5qA6Pf+bRehh1mfqjBqlRVwNL50aWmcdOSAv2YH8IunZZPfNUaKlyGJOySX3YHabFDM0UEPJ817MY5ovfukAa0MFBLSMbVPCcaKyiq+nS6i7fsQreKJEI7QrL2Q4dUlpSLvFZbkwc0KkWYKMTLOJxtEI1C87T7roukeVBaaQ2yjgaD7+msTRnpdgZeWN7G403M0Kf5PnSyYegNv88zP6w1rw4lOwXmez5uFYTpPSHHFJPFUujqIlIuM8oYUg8x/kqcGZ2NssyreGwbqzeMqBk3QyyOrKYExuhSytpzSmntq7JApkNiLjmx8LPntcZQ5sGKUMWImP+iqPQF+LQm1jNiGb6S0JprIH8pTqpZ2HLPAxvuHXLnPRf9qt6hhf2PjejiBGK+1m4lxbJM20DOm5QkWHyJBgJZSM8Pp09FvloTfJz+r5okuxdJAPjFbxzPASUi2+tFxDW6a6iY/7abO8e6jYHiNkSqiEWDRpoBF6/aoqFVJLVajGfRZyBfMh3Le+9aJ3O0poPO9tpvAF0HpuNijcLyjygTQ2zImrTRyrjErp7S7wAtVp9BIOnBtcO+6U7e6TkGMGZMTaopJ3cNgii4dnJr3dEzhYI2+bAstfZ/TgBqGBi2e6wOXAVwQ8NW+eHhh9txeeujt6ERW/QfAQQ+B+MdobB6jJOzXisNYXAxN6HuBz1AB0uq7uh96CyEWIZdlwcOvl4eJnJFeNE0xRZxpFpNtEszFbUmPvIu5PGvC7qzHmkRSeag==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(82310400026)(1800799024)(18002099003)(22082099003)(56012099003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	3vjajIqOr7TdelSlsOYtm1gaPeMmeKNtjG4uYJ9Kmf9zeBWyBngT2OXOWf7GH8TLlC4mR8vu0BBDFcyvJKQ1EOgXBfnKjYEPa7CvhdJinmwGQv/tV5Ztv3VwjvJKT3VieAfXR6awNOywhuhq4dnsn66BjW90qbosX/XyMFLFTeEBQJKR17UeDZ6UKgdxd2ak8NGA6WsGzQk3Tb7dTKGFXLYRyXKRFvy+4/HEa8avAl67NiCTroLomuKxTSzaHvhNUYNj+O6KJM3DDTqDqSE9dX+u7XyORfaKhJg1ywm+BqTyRT8r7blEq+j7tZNxfNHMJ+hsk5GS2NG/mCeGZqph/gfpAjyRnx+6k1gayBz90D1wJKImXa02hItHj7ocZ3KPquMaU+vzLYeprTqYUf1Pc2ZrRZRKCGxYT9bYbA6u49udaqcv5D/WxEL8bvxmbaq2
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2026 08:16:20.5496
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fcbad4e7-a88d-4b21-1209-08de83fd7894
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF000099DF.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8413



On 17/03/2026 00:54, Andrew Cooper wrote:
> With the GCC toolchain baseline now at 5.1, gcc_3_4.o (covering 3.4 through
> 4.6) will never get chosen.  Drop it.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Mar 17 09:11:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Mar 2026 09:11:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255882.1550661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2QSS-0004kc-RT; Tue, 17 Mar 2026 09:11:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255882.1550661; Tue, 17 Mar 2026 09:11: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 1w2QSS-0004kV-Ns; Tue, 17 Mar 2026 09:11:24 +0000
Received: by outflank-mailman (input) for mailman id 1255882;
 Tue, 17 Mar 2026 09: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=kl79=BR=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1w2QSR-0004kP-79
 for xen-devel@lists.xenproject.org; Tue, 17 Mar 2026 09:11:23 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 43ff0f0b-21e1-11f1-b164-2bf370ae4941;
 Tue, 17 Mar 2026 10:11:21 +0100 (CET)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-5a13a06fc85so6401099e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 17 Mar 2026 02:11:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 43ff0f0b-21e1-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1773738681; cv=none;
        d=google.com; s=arc-20240605;
        b=Cuq5e9yuK5hVPuzTj55PmHKjrCcPvpy+DqH9V8z/FiUUH0lgcTNjfbVRMlpEm/PZAB
         undCQ+VO1OLeJeHUOA0cBPBBzkPfa9fcV9RktWgafgJGSYpRWQHfjbhs8tCyFa10SJsY
         XZJQRpZUCMAn3Wmu8Vxnt5FbwRxxSQqkTHKCl749+I55YfXy/OCgMxvcTpI2MmBi+vvU
         VRmfLb+AJZDTLqOdwJenk7WHuw6SIfvW240GM1llC1PjFcNT8KUgZGiAf29wrnBeU+bc
         DlmFUQRX0ghtSnlgDWisaTgTYNICuYd3BjUh1fVab0ShoRNkEjPfSN2kN/fReDOJ9zVw
         z1JQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=nkEcKtGK7W0itPlp7juniLRhOMlFw+Hwy8TtIl/2+bc=;
        fh=faZgaLXBunWRu2fOSvCD2+wee1cBQ6SxC+e4j/V67JQ=;
        b=hmcPLQ/ydgpBb7iFUxzqWfCkWVV3t5ycDM4UDpQELErHItMYEbz9ZwBC2ATg17XHHr
         EsYG/C7othDBp2M3TsVajQ2Mwgqz91nWbwyv0clPVFTP0zIb5LKyB7gYctO9iDbVGf+H
         Regxzi2SeyVJiJGItkqdsMaNBGYs/dK2daC8k1xyGr6xpBm2aEsZQiYfpfwz1/eMzqJH
         tIk5i0lUxQigBXKVtbkPYFQlHe+kOUG1/xvyTZhADKsVt6bqrSFJ9/E8q2yg1Ro6e3e0
         MkNT4cZIdEGuuIPKxCVT5Mo1kGcvhPZICC8zFnoWoFc3YneDoPht+FdhqzhN/Que7Ak5
         gf3g==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773738681; x=1774343481; 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=nkEcKtGK7W0itPlp7juniLRhOMlFw+Hwy8TtIl/2+bc=;
        b=X0nRyIp/fJwLHKY5W5vnFCeGLq0VCblBQGJNZZ19wfvParEfQdGlJM1yVMLOO4P1Po
         1oyOh/YmAwDOkEZE6kcRnFbWY5aoVatPJ3OMkWPQ18kYLx8HPOehM2rOSNXUA+gQCm5A
         llAf6YTm5t9iYlXAbKAHCDIV6uot7NEsJI0nQDfAlNwhmBQx7WsyNRTsgzvXT9r0Fw2f
         HoSGSRgqiffrMIhbWeW1Dk2IWxygdNtaupmHEVyDdovg+7zPXCg8Fq163k9N1hA7aHYk
         d8jJZBOaLTyu3e0QSYsJTnx3pgDE3Ivqz9+Rm1ZzsE/gJRU5+xEC6D6CZHIUpaUV/G/Q
         GxSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773738681; x=1774343481;
        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=nkEcKtGK7W0itPlp7juniLRhOMlFw+Hwy8TtIl/2+bc=;
        b=Q2vpcQCc7//0pkVUqmL8U8vNJUABaDA+tJ2hp0aGQP7ImLWDJrpM2WST/h7wEye3Qg
         Lgk59Px4zqlV7h2BEbfA0kJeFs/juOiPYZKm4H05rUIMEAbTNYbaavVY+huSka1zC3OV
         BkKSRRZxMwop+pou52iDd4SVFF1ocsfK7VawBlLKfRZrM7KZNWJGviB2PN6z6hYFr62+
         0GHZ/UQO3b4XGXCup4kuTXhB0LJgGxI0XF1Tardr0W2SBNemhhpxRO0WPROTAIbfsgwx
         FwsUmMWs6knPj8DUU6xBOO/SSjh91yG3TDbUOdAl5LPl/MXyaTBDeZK5fsbzcy9uDunz
         PDvQ==
X-Forwarded-Encrypted: i=1; AJvYcCVPvcZhmuHu7JGq7mHMabpTP1KYdk+kYjv0dui2bGREXPwHrqTLtwNMFBjQLSKz5TJUkwF4hb7sSg8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyhmqIrCs3pGdwS4ZJgVP08eEYITrlj0XAZT8eQ+obIVu8LUC4y
	JYMHoK5yc9AnzHkoZT6hYGMXAuV5IjkIDCwTUEVVL14MXP6u7JHdRZsbqR3B5RCe960RgTLz8hD
	CwjKyjchR4AfvKFJY+3eAQJbLxR2fJok=
X-Gm-Gg: ATEYQzwudA4Busx+7n67ZSJ74mnlILeWwBarTVGiHzFFWgN5MGisCoSHE7ejZJSD4Ok
	ehcu8PCXGmr+b97b5sZ/ca6DjynP06zKvVZB4aDbK5V6KXVZv7GnpzZg4Vd5YtkNz4DsNUSmTa1
	efxAt3nWwSqFy7b4HFq8d/A47tPYWs0+GWQdB6XEoswIIfpNDT8737VeeDg/bvQzmreXIa3kfFZ
	fyR8iWioIXV+lbUa686EquPgXWVPQDuOaQMCyaeGKXsXfuJ0wmfnRZVca5Ygv6LqZEaOmScfPqV
	/yUpBWo=
X-Received: by 2002:a05:6512:3ba4:b0:5a1:3134:923f with SMTP id
 2adb3069b0e04-5a162b24c07mr5308582e87.40.1773738680825; Tue, 17 Mar 2026
 02:11:20 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1770046465.git.mykyta_poturai@epam.com> <AC263D87-9EE3-4F32-BC5D-1A290781C48B@arm.com>
In-Reply-To: <AC263D87-9EE3-4F32-BC5D-1A290781C48B@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 17 Mar 2026 11:11:09 +0200
X-Gm-Features: AaiRm51BvAY87TTNqn85G45hupOR8_oL6EbbB1xjRRPC4u4fig0uXpxb01cGnlA
Message-ID: <CAGeoDV_a-tUGrQai8+VzQwwGHSGwbJ04Y6uWg-pr5mVi52dsaw@mail.gmail.com>
Subject: Re: [RFC PATCH 00/19] GICv4 Support for Xen
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: Mykyta Poturai <Mykyta_Poturai@epam.com>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Tue, Feb 3, 2026 at 12:02=E2=80=AFPM Bertrand Marquis
<Bertrand.Marquis@arm.com> wrote:
>
> Hi Mykyta,
>
> We have a number of series from you which have not been merged yet and
> reviewing them all in parallel might be challenging.
>
> Would you mind giving us a status and maybe priorities on them.
>
> I could list the following series:
> - GICv4
> - CPU Hotplug on arm
> - PCI enumeration on arm
> - IPMMU for pci on arm
> - dom0less for pci passthrough on arm
> - SR-IOV for pvh
> - SMMU for pci on arm
> - MSI injection on arm
> - suspend to ram on arm
>
> There might be others feel free to complete the list.
>
> On GICv4...
>
> > On 2 Feb 2026, at 17:14, Mykyta Poturai <Mykyta_Poturai@epam.com> wrote=
:
> >
> > This series introduces GICv4 direct LPI injection for Xen.
> >
> > Direct LPI injection relies on the GIC tracking the mapping between phy=
sical and
> > virtual CPUs. Each VCPU requires a VPE that is created and registered w=
ith the
> > GIC via the `VMAPP` ITS command. The GIC is then informed of the curren=
t
> > VPE-to-PCPU placement by programming `VPENDBASER` and `VPROPBASER` in t=
he
> > appropriate redistributor. LPIs are associated with VPEs through the `V=
MAPTI`
> > ITS command, after which the GIC handles delivery without trapping into=
 the
> > hypervisor for each interrupt.
> >
> > When a VPE is not scheduled but has pending interrupts, the GIC raises =
a per-VPE
> > doorbell LPI. Doorbells are owned by the hypervisor and prompt reschedu=
ling so
> > the VPE can drain its pending LPIs.
> >
> > Because GICv4 lacks a native doorbell invalidation mechanism, this seri=
es
> > includes a helper that invalidates doorbell LPIs via synthetic =E2=80=
=9Cproxy=E2=80=9D devices,
> > following the approach used until GICv4.1.
> >
> > All of this work is mostly based on the work of Penny Zheng
> > <penny.zheng@arm.com> and Luca Fancellu <luca.fancellu@arm.com>. And al=
so from
> > Linux patches by Mark Zyngier.
> >
> > Some patches are still a little rough and need some styling fixes and m=
ore
> > testing, as all of them needed to be carved line by line from a giant ~=
4000 line
> > patch. This RFC is directed mostly to get a general idea if the propose=
d
> > approach is suitable and OK with everyone. And there is still an open q=
uestion
> > of how to handle Signed-off-by lines for Penny and Luca, since they hav=
e not
> > indicated their preference yet.
>
> I would like to ask how much performance benefits you could
> have with this.
> Adding GICv4 support is adding a lot of code which will have to be mainta=
ined
> and tested and there should be a good improvement to justify this.
>
> Did you do some benchmarks ? what are the results ?
>
> At the time where we started to work on that at Arm, we ended up in the c=
onclusion
> that the complexity in Xen compared to the benefit was not justifying it =
hence why
> this work was stopped in favor of other features that we thought would be=
 more
> beneficial to Xen (like PCI passthrough or SMMUv3).

I have been asked to run benchmarks for this series, so here is a short
update from my side.

Test setup:

- AWS c7g bare metal
- Linux bare-metal reference and Xen dom0 runs
- fio random-read workloads on an NVMe-backed EBS volume (gp3, 160G, 80k io=
ps)
- Main workloads:

- 4k, iodepth=3D1
- 16k, iodepth=3D1
- 4k, iodepth=3D4
- 4k, iodepth=3D1, numjobs=3D4
- 5 repetitions per configuration, looking mainly at median values
- Main Xen comparison was done with the default scheduler (credit2),
direct LPIs OFF vs ON

Summary:

- With credit2, enabling direct LPIs gave a small but repeatable IOPS
improvement across all tested workloads, roughly in the 0.8-1.1% range.
- Mean completion latency also improved consistently.
- The clearest gain was in tail latency. In the 4k randread,
iodepth=3D1, numjobs=3D4 case, p99.9 improved by about 41% and p99.99 by
about 34% with direct LPIs enabled.
- In this setup, switching from credit2 to null did not materially change
median throughput, so the observed improvement appears to come primarily
from the interrupt delivery path rather than from the scheduler choice.

A few caveats:

- This was a low-contention setup with only dom0 using 8 CPUs, so it did no=
t
exercise heavy VCPU migration or scheduler pressure.
- I also tried an artificially constrained NVMe host queue depth
configuration, but I am treating that only as a stress/control case and
not as the main result.

A full benchmark report is available here:
https://github.com/xakep-amatop/giv4-benchmark/blob/main/report.pdf

The same repository also contains the raw benchmark result archives used fo=
r
the analysis.

So, based on these measurements, there does appear to be a measurable
benefit from direct LPI injection, with the strongest effect showing up in
tail latency rather than in median throughput.

If you need any additional benchmark results or specific test cases, please
let me know.

Best regards,
Mykola

>
> Cheers
> Bertrand
>


From xen-devel-bounces@lists.xenproject.org Tue Mar 17 10:22:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Mar 2026 10:22:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255894.1550670 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2RZB-0004vO-MX; Tue, 17 Mar 2026 10:22:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255894.1550670; Tue, 17 Mar 2026 10: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 1w2RZB-0004vH-Jm; Tue, 17 Mar 2026 10:22:25 +0000
Received: by outflank-mailman (input) for mailman id 1255894;
 Tue, 17 Mar 2026 10: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=rXng=BR=bounce.vates.tech=bounce-md_30504962.69b92b5c.v1-02b8f13e50e84a3b8a35fff1d9082418@srs-se1.protection.inumbo.net>)
 id 1w2RZA-0004vB-GT
 for xen-devel@lists.xenproject.org; Tue, 17 Mar 2026 10:22:24 +0000
Received: from mail136-12.atl41.mandrillapp.com
 (mail136-12.atl41.mandrillapp.com [198.2.136.12])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2f12a997-21eb-11f1-b164-2bf370ae4941;
 Tue, 17 Mar 2026 11:22:22 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-12.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4fZp1853Kmz5QkLq0
 for <xen-devel@lists.xenproject.org>; Tue, 17 Mar 2026 10:22:20 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 02b8f13e50e84a3b8a35fff1d9082418; Tue, 17 Mar 2026 10: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: 2f12a997-21eb-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773742940; x=1774012940;
	bh=SB8tee7BVwumhyB+qrZNJF8OpTB0mvIkzO0/xMyjFX4=;
	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=XypLha3UJXljlUm3pYPBdTokSnEI5jZTHCvocl9ntTCjUlLW6+fRhqufXlDSFGZ5F
	 9THjqrIu8PFUZ85EGt0/sggJh+iVazOO/nfMdT1k2syDtKWhYlfUj2rpVrjDmp6RgA
	 AyMI1311UCZU0wsZUOVH3GkXTxFI+BVGGqlrUv0IlTwfDx6lUF7WI5cPBs23hX5ogs
	 tzuOPBWE7pzRi8ln59F/jxjzDA2UR7bg5yjif6o33KTEqNW+JXrTMHMi3dhmk7VwrY
	 DZlTArXhnmUCbzsukDUEfy4RKUWJMZieZy4ObW4RAYWB78FR+fZm+/iI8rpNUgGC/V
	 +coCciOMkehiw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773742940; x=1774003440; i=julian.vetter@vates.tech;
	bh=SB8tee7BVwumhyB+qrZNJF8OpTB0mvIkzO0/xMyjFX4=;
	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=minwlhCbxB8zHxzKqsjQhu83U4EpTfy8i+W4n2pfR9/BcLyUegx8+PkBDytBzUaw+
	 mQ7j6I5VSpHd5L5QUh7Gwk7xUQwOsdS7vja0OXqxSuvVcKkriYUrmCfIObzwQxfPjl
	 A/bCOW6r1uI1ECf6div4mOfIGfcddrAHgCDH/MfCPtw8VMlEJbWGQD7bJ6Tb2CuPI1
	 abhO0hWFEzrA2QqQJlYyOx6odEvEfu5J8LERl43rCcVyNegaX6ZswHvrbRgXFiBQeM
	 DYkzmVdmcrfo5zKxoy3YmTcp/Pp8MAqUMdTl8/rWgZTB2MLcBly0hQntH9VJECneYo
	 0iDv76pGWoOpQ==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v3=206/7]=20x86/dmop:=20Add=20XEN=5FDMOP=5Fenable=5Fext=5Fdest=5Fid=20DM=20op?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773742939233
Message-Id: <1124b3b3-6593-4ef0-ad9a-28d21e06bbfd@vates.tech>
To: "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Juergen Gross" <jgross@suse.com>, "Julien Grall" <julien@xen.org>
References: <20260309123055.880050-1-julian.vetter@vates.tech> <20260309123055.880050-6-julian.vetter@vates.tech> <aa7KcQQoc3-HwlcE@macbook.local>
In-Reply-To: <aa7KcQQoc3-HwlcE@macbook.local>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.02b8f13e50e84a3b8a35fff1d9082418?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260317:md
Date: Tue, 17 Mar 2026 10:22:20 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 3/9/26 14:29, Roger Pau Monn=C3=A9 wrote:
> On Mon, Mar 09, 2026 at 12:31:03PM +0000, Julian Vetter wrote:
>> Xen cannot simply advertise XEN_HVM_CPUID_EXT_DEST_ID to the guest
>> without knowing that the device model will handle extended destination
>> IDs correctly for passthrough MSIs. A device model that still uses
>> XEN_DOMCTL_bind_pt_irq would pass only the low 8 bits of the destination
>> ID, misrouting interrupts to vCPUs with APIC IDs greater than 255. So,
>> add a DM op XEN_DMOP_enable_ext_dest_id that the device model can call
>> during domain setup (before vCPUs are started) to signal that it will
>> use XEN_DMOP_bind_pt_msi_irq for all passthrough MSI bindings. When
>> called, Xen sets ext_dest_id_enabled in struct hvm_domain, so it's
>> visible to the guest via CPUID.
> 
> Have you considered whether you could re-use the padding in
> XEN_DMOP_create_ioreq_server to signal whether the device model
> supports Extended ID parsing?
> 
> Also, you might want some negotiation between multiple ioreq servers
> on the same domain.  IOW: is multiple ioreq servers are registered
> ahead of the domain having finished creation you could level whether
> extended ID should be announced.  For ioreqs that are registered after
> the domain have started you need to enforce the currently set Extended
> ID support.  If the domain is running, and Extended ID is advertised
> you must prevent registering any new ioreq that doesn't support
> Extended ID.
> 

Thank you Roger for your feedback! It's very appreciated! This was a 
good idea. I have implemented this now. I have used one of the reserved 
bytes and use it as a flag field.

But I have a remaining question/concern, which maybe you can clarify.
If server A (e.g., a secondary emulator) registers WITH ext_dest_id 
before the domain starts, hvm_ext_dest_id_enabled() returns true and the 
guest will be advertised XEN_HVM_CPUID_EXT_DEST_ID. If QEMU's primary 
ioreq server then registers WITHOUT the flag and goes on to use 
XEN_DOMCTL_bind_pt_irq, pass-through MSIs will be misrouted (or rejected 
if I then refuse calls to XEN_DOMCTL_bind_pt_irq for that domain). My 
implementation allows this combination before 'd->creation_finished'.

I have added a check in ioreq_server_dm_op() for the 
XEN_DMOP_create_ioreq_server case for the "runtime" case as you 
suggested. If one of the existing ioreq servers announces it, and a new 
server wants to join, that doesn't have this flag set, it will be 
rejected with -EINVAL:

if ( d->creation_finished && hvm_ext_dest_id_enabled(d) &&
      !(data->flags & XEN_DMOP_IOREQ_SERVER_EXT_DEST_ID) )
     break;

But what happens to the first case I described, how can I reasonably 
negotiate between different ioreq servers or determine who is the "main" 
server? In practice, usually if QEMU ("the only" server that matters for 
pass-through) opted in, the feature is enabled. If it didn't, no other 
server would have opted in either, no? The only "sort of" issue would be 
if someone wrote a secondary emulator that sets ext_dest_id to basically 
"lock out" a QEMU that doesn't support the new XEN_DMs?

Thank you!

Julian

> Thanks, Roger.
> 



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Tue Mar 17 12:05:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Mar 2026 12:05:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255915.1550738 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2TAp-0001JX-9l; Tue, 17 Mar 2026 12:05:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255915.1550738; Tue, 17 Mar 2026 12:05:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2TAp-0001JK-6C; Tue, 17 Mar 2026 12:05:23 +0000
Received: by outflank-mailman (input) for mailman id 1255915;
 Tue, 17 Mar 2026 12:05: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=pa/0=BR=xenbits.xen.org=andrewcoop@srs-se1.protection.inumbo.net>)
 id 1w2TAn-0008QI-1U
 for xen-devel@lists.xen.org; Tue, 17 Mar 2026 12:05:21 +0000
Received: from mail.xenproject.org (mail.xenproject.org [104.130.215.37])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8d8f2755-21f9-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Mar 2026 13:05: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 1w2TAa-00D7eo-2J;
 Tue, 17 Mar 2026 12:05:08 +0000
Received: from andrewcoop by xenbits.xenproject.org with local (Exim 4.96)
 (envelope-from <andrewcoop@xenbits.xen.org>) id 1w2TAa-00DbYI-1T;
 Tue, 17 Mar 2026 12:05:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8d8f2755-21f9-11f1-9ccf-f158ae23cfc8
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 481 v2 (CVE-2026-23555) - Xenstored DoS by
 unprivileged domain
Message-Id: <E1w2TAa-00DbYI-1T@xenbits.xenproject.org>
Date: Tue, 17 Mar 2026 12:05:08 +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-2026-23555 / XSA-481
                               version 2

                 Xenstored DoS by unprivileged domain

UPDATES IN VERSION 2
====================

Public release.

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

Any guest issuing a Xenstore command accessing a node using the
(illegal) node path "/local/domain/", will crash xenstored due to a
clobbered error indicator in xenstored when verifying the node path.

Note that the crash is forced via a failing assert() statement in
xenstored. In case xenstored is being built with NDEBUG #defined,
an unprivileged guest trying to access the node path "/local/domain/"
will result in it no longer being serviced by xenstored, other guests
(including dom0) will still be serviced, but xenstored will use up
all cpu time it can get.

IMPACT
======

Any unprivileged domain can cause xenstored to crash, causing a
DoS (denial of service) for any Xenstore action. This will result
in an inability to perform further domain administration on the host.

In case xenstored has been built with NDEBUG defined, an unprivileged
domain can force xenstored to be 100% busy, but without harming
xenstored functionality for other guests otherwise.

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

All Xen systems from Xen 4.18 onwards are vulnerable. Systems up to
Xen 4.17 are not vulnerable.

Systems using the C variant of xenstored are vulnerable. Systems using
xenstore-stubdom or the OCaml variant of Xenstore (oxenstored) are not
vulnerable.

MITIGATION
==========

There is no known mitigation available.

CREDITS
=======

This issue was discovered by Marek Marczykowski-Góreckiof
Invisible Things Lab.

RESOLUTION
==========

Applying the appropriate attached patch 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.

xsa481.patch         xen-unstable - Xen 4.18.x

$ sha256sum xsa481*
148147e4545a4670578c0f24aa136f67bc203c7b18ec980b8cc80cfbb04ace68  xsa481.patch
$

DEPLOYMENT DURING EMBARGO
=========================

Deployment of the patch described above (or
others which are substantially similar) is permitted during the
embargo, even on public-facing systems with untrusted guest users and
administrators.

But: Distribution of updated software is prohibited (except to other
members of the predisclosure list).

Predisclosure list members who wish to deploy significantly different
patches and/or mitigations, please contact the Xen Project Security
Team.

Switching xenstored with oxenstored or xenstore-stubdom is not permitted
as a mitigation, as this is a guest visible change of the configuration.

(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmm5Q1sMHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZKmYIAKOrz2ZWyIQyEJCuci+pavN6zG8/qgBhoRhzB2gJ
piwk6CDr0gB2LseEePPLbl+yoGmNxNVtXjgCNyWVbCA2HaCnPsENOOkZkUhwffN/
fXVMJHC43YdiaknKTKc8QoRn0poiPLIBQE2eXpIMVo9J7FoPkqQZYM1DS6B5x/q3
FWyKjHWwnGRv2pzRAm6mx22bu6wNpzYsfD2qCUe4d08njC3+iFLn1az+9XwF+Yw6
nS51gB2KjzRoGNhfepwzHC9R2cysYQdySFbAbskcGBTTD2FI9D+k6fBbXc7Tuj4T
v+JqgQMkmQitJepE875VWxfFAR2PTRcBbL2ev6tQvA1x5mQ=
=Bv72
-----END PGP SIGNATURE-----

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

RnJvbSAwY2ZmMTZmMGE5OTdmMWIwODcxYjYyMWExZDYwNTA2NTI1MzBlNWQ5
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWVyZ2VuIEdyb3Nz
IDxqZ3Jvc3NAc3VzZS5jb20+CkRhdGU6IFRodSwgMTIgRmViIDIwMjYgMDg6
Mjk6MzggKzAxMDAKU3ViamVjdDogW1BBVENIXSB0b29scy94ZW5zdG9yZWQ6
IGZpeCBjYW5vbmljYWxpemUoKSBlcnJvciB0ZXN0aW5nCk1JTUUtVmVyc2lv
bjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYt
OApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpUaGUgc2V0dGlu
ZyBvZiBlcnJubyBpbiBjYW5vbmljYWxpemUoKSBpcyByYXRoZXIgZnJhZ2ls
ZSBhbmQgc2VlbXMgdG8KYmUgZXZlbiB3cm9uZyBpbiBvbmUgY29ybmVyIGNh
c2U6IHdoZW4gdGhlIGludmFsaWQgcGF0aCAiL2xvY2FsL2RvbWFpbi8iCmlz
IHBhc3NlZCwgc3NjYW5mKCkgd2lsbCBzZXQgZXJybm8gdG8gMCwgcmVzdWx0
aW5nIGluIGNhbm9uaWNhbGl6ZSgpIHRvCnJldHVybiBOVUxMIHdpdGggZXJy
bm8gYmVpbmcgMC4gVGhpcyBjYW4gcmVzdWx0IGluIHRyaWdnZXJpbmcgdGhl
CmFzc2VydChjb25uLT5pbiA9PSBOVUxMKSBpbiBjb25zaWRlcl9tZXNzYWdl
KCkuCgpEb24ndCBhc3N1bWUgdGhlIGluaXRpYWwgc2V0dGluZyBvZiBlcnJu
byB0byAiRUlOVkFMIiB3aWxsIHN0YXkgdmFsaWQKaW4gYWxsIGNhc2VzIGFu
ZCBzZXQgaXQgdG8gRUlOVkFMIG9ubHkgd2hlbiByZXR1cm5pbmcgTlVMTCBk
dWUgdG8gYW4KaW52YWxpZCBwYXRoLgoKVGhpcyBpcyBYU0EtNDgxL0NWRS0y
MDI2LTIzNTU1CgpSZXBvcnRlZC1ieTogTWFyZWsgTWFyY3p5a293c2tpLUfD
s3JlY2tpIDxtYXJtYXJla0BpbnZpc2libGV0aGluZ3NsYWIuY29tPgpTaWdu
ZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+ClJl
dmlld2VkLWJ5OiBKdWxpZW4gR3JhbGwgPGp1bGllbkB4ZW4ub3JnPgotLS0K
IHRvb2xzL3hlbnN0b3JlZC9jb3JlLmMgfCA1ICsrKy0tCiAxIGZpbGUgY2hh
bmdlZCwgMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL3Rvb2xzL3hlbnN0b3JlZC9jb3JlLmMgYi90b29scy94ZW5zdG9y
ZWQvY29yZS5jCmluZGV4IDY0YzQ3OGE4MDEuLjJlODI2Zjk5ZWIgMTAwNjQ0
Ci0tLSBhL3Rvb2xzL3hlbnN0b3JlZC9jb3JlLmMKKysrIGIvdG9vbHMveGVu
c3RvcmVkL2NvcmUuYwpAQCAtMTI0MCwxMSArMTI0MCwxMCBAQCBjb25zdCBj
aGFyICpjYW5vbmljYWxpemUoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIGNv
bnN0IHZvaWQgKmN0eCwKIAkgKiAtIGlsbGVnYWwgY2hhcmFjdGVyIGluIG5v
ZGUKIAkgKiAtIHN0YXJ0cyB3aXRoICdAJyBidXQgbm8gc3BlY2lhbCBub2Rl
IGFsbG93ZWQKIAkgKi8KLQllcnJubyA9IEVJTlZBTDsKIAlpZiAoIW5vZGUg
fHwKIAkgICAgIXZhbGlkX2NoYXJzKG5vZGUpIHx8CiAJICAgIChub2RlWzBd
ID09ICdAJyAmJiAhYWxsb3dfc3BlY2lhbCkpCi0JCXJldHVybiBOVUxMOwor
CQlnb3RvIGludmFsOwogCiAJaWYgKG5vZGVbMF0gIT0gJy8nICYmIG5vZGVb
MF0gIT0gJ0AnKSB7CiAJCW5hbWUgPSB0YWxsb2NfYXNwcmludGYoY3R4LCAi
JXMvJXMiLCBnZXRfaW1wbGljaXRfcGF0aChjb25uKSwKQEAgLTEyNzIsNiAr
MTI3MSw4IEBAIGNvbnN0IGNoYXIgKmNhbm9uaWNhbGl6ZShzdHJ1Y3QgY29u
bmVjdGlvbiAqY29ubiwgY29uc3Qgdm9pZCAqY3R4LAogCWlmIChuYW1lICE9
IG5vZGUpCiAJCXRhbGxvY19mcmVlKG5hbWUpOwogCisgaW52YWw6CisJZXJy
bm8gPSBFSU5WQUw7CiAJcmV0dXJuIE5VTEw7CiB9CiAKLS0gCjIuNTMuMAoK

--=separator--


From xen-devel-bounces@lists.xenproject.org Tue Mar 17 12:05:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Mar 2026 12:05:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1255911.1550685 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2TAl-0008Tl-0i; Tue, 17 Mar 2026 12:05:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1255911.1550685; Tue, 17 Mar 2026 12:05:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2TAk-0008Te-Ts; Tue, 17 Mar 2026 12:05:18 +0000
Received: by outflank-mailman (input) for mailman id 1255911;
 Tue, 17 Mar 2026 12:05: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=pa/0=BR=xenbits.xen.org=andrewcoop@srs-se1.protection.inumbo.net>)
 id 1w2TAj-0008QI-0T
 for xen-devel@lists.xen.org; Tue, 17 Mar 2026 12:05:17 +0000
Received: from mail.xenproject.org (mail.xenproject.org [104.130.215.37])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8b95c952-21f9-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Mar 2026 13:05:11 +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 1w2TAW-00D7eF-1U;
 Tue, 17 Mar 2026 12:05:04 +0000
Received: from andrewcoop by xenbits.xenproject.org with local (Exim 4.96)
 (envelope-from <andrewcoop@xenbits.xen.org>) id 1w2TAW-00DbXG-0N;
 Tue, 17 Mar 2026 12: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: 8b95c952-21f9-11f1-9ccf-f158ae23cfc8
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 480 v3 (CVE-2026-23554) - Use after free of
 paging structures in EPT
Message-Id: <E1w2TAW-00DbXG-0N@xenbits.xenproject.org>
Date: Tue, 17 Mar 2026 12:05:04 +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-2026-23554 / XSA-480
                               version 3

              Use after free of paging structures in EPT

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

Public release.

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

The Intel EPT paging code uses an optimization to defer flushing of any cached
EPT state until the p2m lock is dropped, so that multiple modifications done
under the same locked region only issue a single flush.

Freeing of paging structures however is not deferred until the flushing is
done, and can result in freed pages transiently being present in cached state.
Such stale entries can point to memory ranges not owned by the guest, thus
allowing access to unintended memory regions.

IMPACT
======

Privilege escalation, Denial of Service (DoS) affecting the entire host,
and information leaks.

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

Xen 4.17 and onwards are vulnerable.  Xen 4.16 and older are not vulnerable.

Only x86 Intel systems with EPT support are vulnerable.

Only x86 HVM/PVH guests using HAP can leverage the vulnerability on affected
systems.

MITIGATION
==========

There are no mitigations.

CREDITS
=======

This issue was discovered by Roger Pau Monné of XenServer.

RESOLUTION
==========

Applying the attached patch 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.

xsa480.patch           xen-unstable - Xen 4.17.x

$ sha256sum xsa480*
578f8fec3f34656e085419f6376d43987ffd6ed32e067b4024d3c83ce03a5901  xsa480.patch
$

DEPLOYMENT DURING EMBARGO
=========================

Deployment of the patches and/or mitigations described above (or
others which are substantially similar) is permitted during the
embargo, even on public-facing systems with untrusted guest users and
administrators.

But: Distribution of updated software is prohibited (except to other
members of the predisclosure list).

Predisclosure list members who wish to deploy significantly different
patches and/or mitigations, please contact the Xen Project Security
Team.

(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmm5Q1MMHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZKDgH/jDFwjlPNV0IQor3c5j9D7L++i5dFugypaF5OI+Q
nboD7VEe6y1KexRsPa/a7UAvuabgGdudeS18IS3W34/9TZILZRITo9s3IgEnTfQR
qqFlCTxymFuCn8Iptq8SJh37fG3nc9OJ/v28s+0+X9ERnjjjVcjhwcbQ5gQSpKU0
7fAe+IpsO3YOMGb3fgpjhCWMjh9UTHnKOBmObNeDGZ3sXgh8+FYkt6snRs0bYwW4
IcGpmEEgK+Id6n/0sG07Ntntb02EcCz3Vl8G0OflNQj/XOxHBuXbkFc36K2vpUDp
dGrzGkIznA00Oz2UNlZrSrMWAQtKuHbB9+H2tU+7BNq+ag8=
=RFix
-----END PGP SIGNATURE-----

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

RnJvbSA0NWY2ODY2ZTM0YjdlOWVlOGI2YWMxNmQ2NDZhMmU5NTRjOTdlNDhl
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSb2dlciBQYXUgTW9u
bmUgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpEYXRlOiBUdWUsIDE3IEZlYiAy
MDI2IDA5OjMzOjQzICswMTAwClN1YmplY3Q6IFtQQVRDSF0geDg2L3AybTog
aXNzdWUgYSBzeW5jIGZsdXNoIGJlZm9yZSBmcmVlaW5nIHBhZ2luZyBwYWdl
cwpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47
IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJp
dAoKSW4gdGhlIEVQVCBpbXBsZW1lbnRhdGlvbiwgdGhlIGRlZmVyIGZsdXNo
aW5nIGxvZ2ljIGlzIHVzZWQKdW5jb25kaXRpb25hbGx5LCBhbmQgdGhhdCB3
b3VsZCBsZWFkIHRvIHBhZ2luZyBtZW1vcnkgYmVpbmcgcmV0dXJuZWQgdG8g
dGhlCnBhZ2luZyBwb29sIGJlZm9yZSBpdHMgcmVmZXJlbmNlcyBoYWQgYmVl
biBmbHVzaGVkLgoKSXNzdWUgYW55IHBlbmRpbmcgZmx1c2hlcyBiZWZvcmUg
ZnJlZWluZyB0aGUgcGFnaW5nIG1lbW9yeSBiYWNrIHRvIHRoZQpwb29sLgoK
Tm90ZSBBTUQgKE5QVCkgYW5kIFNoYWRvdyBwYWdpbmcgYXJlIG5vdCBhZmZl
Y3RlZCwgYXMgdGhleSBkb24ndCBpbXBsZW1lbnQKdGhlIGRlZmVycmVkIGZs
dXNoaW5nIGxvZ2ljLgoKVGhpcyBpcyBYU0EtNDgwIC8gQ1ZFLTIwMjYtMjM1
NTQKCkZpeGVzOiA0YTU5ZTZiYjNhOTYgKCJ4ODYvRVBUOiBzcXVhc2ggbWVh
bmluZ2xlc3MgVExCIGZsdXNoIikKU2lnbmVkLW9mZi1ieTogUm9nZXIgUGF1
IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBK
YW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci0tLQogeGVuL2FyY2gv
eDg2L21tL3AybS5jIHwgNSArKysrKwogMSBmaWxlIGNoYW5nZWQsIDUgaW5z
ZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0u
YyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwppbmRleCBlOTE1ZGEyNmE4MzIu
LmZkZGVjZGY5NzhlYyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3Ay
bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwpAQCAtNDc5LDYgKzQ3
OSwxMSBAQCB2b2lkIHAybV9mcmVlX3B0cChzdHJ1Y3QgcDJtX2RvbWFpbiAq
cDJtLCBzdHJ1Y3QgcGFnZV9pbmZvICpwZykKICAgICBBU1NFUlQocDJtLT5k
b21haW4pOwogICAgIEFTU0VSVChwMm0tPmRvbWFpbi0+YXJjaC5wYWdpbmcu
ZnJlZV9wYWdlKTsKIAorICAgIC8qCisgICAgICogSXNzdWUgYW55IHBlbmRp
bmcgZmx1c2ggaGVyZSwgaW4gY2FzZSBpdCB3YXMgZGVmZXJyZWQgYmVmb3Jl
LiAgVGhlIHBhZ2UKKyAgICAgKiB3aWxsIGJlIHJldHVybmVkIHRvIHRoZSBw
YWdpbmcgcG9vbCBub3cuCisgICAgICovCisgICAgcDJtX3RsYl9mbHVzaF9z
eW5jKHAybSk7CiAgICAgcGFnZV9saXN0X2RlbChwZywgJnAybS0+cGFnZXMp
OwogICAgIHAybS0+ZG9tYWluLT5hcmNoLnBhZ2luZy5mcmVlX3BhZ2UocDJt
LT5kb21haW4sIHBnKTsKIAotLSAKMi41MS4wCgo=

--=separator--


From xen-devel-bounces@lists.xenproject.org Tue Mar 17 12:49:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Mar 2026 12:49:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256102.1550802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2Trd-0001AO-74; Tue, 17 Mar 2026 12:49:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256102.1550802; Tue, 17 Mar 2026 12:49:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2Trd-0001AH-46; Tue, 17 Mar 2026 12:49:37 +0000
Received: by outflank-mailman (input) for mailman id 1256102;
 Tue, 17 Mar 2026 12: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=O8en=BR=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w2Trb-0001AA-CA
 for xen-devel@lists.xenproject.org; Tue, 17 Mar 2026 12:49:35 +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 bf38b455-21ff-11f1-b164-2bf370ae4941;
 Tue, 17 Mar 2026 13:49:33 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-48334ee0aeaso50524975e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 17 Mar 2026 05:49:33 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4856eaa4fb0sm69406085e9.12.2026.03.17.05.49.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Mar 2026 05:49:32 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bf38b455-21ff-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773751773; x=1774356573; 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=340Z7SYxTrLvTn40QEDHoPgyt7oFXcQVpMKjn0Y3oV4=;
        b=K+eteeE3tKuPs2/UguiLrsajGZ4T6B/TdPQV2+Vh6KDpBvAVr+f8+ZjpXEfaO6oKkY
         l7Q4GyyTlXQA2y4jH080Jtxiz5vpUE7V4IX42D+ogwJ+Klx/Tb4nnW2jPG0UI1SmA23p
         491aP+xBmGA4Hf532dr7nbu0XnIJAKquiSom8AU8pSc8BCCH/SC0hsAOk+yRgZRNgVel
         6/HAdj/wcJl/PzS0jQGvfgRAEKyxq0Qhafl6e4v4jQFIU0Ob4W8wi/AFTq9nMfSX8sSh
         K35LBT1gQVMrAQjei+wfFahQHHmvr7CIfhldsecOjTf/2Y4pwANOeEllWJF9pju9Z4R4
         gCrw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773751773; x=1774356573;
        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=340Z7SYxTrLvTn40QEDHoPgyt7oFXcQVpMKjn0Y3oV4=;
        b=j6asx9q+/KT6VgXEMH/x7+ONsTmsAF3eTH06GVCgyTEPyq15rli/W03VKZvxsmy2au
         BYNa7ThulItVcAzxuh8uRgzQEAtHc1WSR1C6MXlRDXyMWVQ5C8C8Sdc4vXEPWb8pKYwa
         SFFha2/ea5QwZD53Xjls2e15W9nexlu1FiBRODA668cb5pZUrfL+2Crp+MRT7jM1al5w
         +315qee1PwjGAAMVF9wVXkOJH1y1vJw4+tqVAPwEKBV8jSop8/ot1lR0rG26vwEsO9Jl
         gFhdQQRQDMJDDLy94Q2Dsrbz4bH+Nqdp1656ad4FctJrmtFerb16q3WkYK9hVtVqHc9q
         5wnQ==
X-Forwarded-Encrypted: i=1; AJvYcCWKMJlg6ZNQ8af21JMERx11CnRf3B3l+6FzjqRdZmccw4Rhdp4o6yPa3GntYMnKq4cgwwrpAswEcl4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz4wnRYHwf50K84Vg6ruHkP06cl3heYmRsuTJx+3BNDPWGXfkGi
	JIJS02awrmHuvfgiZPSXmU6Bk9/ZD08oAt1FZeIpBLKz2O/JvNsWWZsm
X-Gm-Gg: ATEYQzyCf2CeiZlYtJxpHXjSkKZGSsacEBnHjBPAf5C7T+a3IHIUwd9PKTbekoreJ4q
	Itflty0xjMTSRLen7yUFZLbKGoxV1HWiaP0H4uWJ17Wo0Blh3Ov6YYckwBiDOwB3x+bsxQdRi+g
	5O2QT74Lx7j3YVjhpMFQhyE19mj6aZ4KboxSijH2JmGZ78KeBfCDoQqtVFx133TFmXeXbm+GkNy
	2u17TtTEDJRYv2joLFCMgXEbUG7Ek3mh7E8W8WBzkj10WTx5CJ0/PTvQHcEWmCM4YlzkzJzfQwL
	X9D8TJlmRGHEK8lm5t+sTrItjtb1aGO3lacpei3AcNrHFLS+2nCSZybbW+h/xNs484tNAjDcVJb
	0q5zuvQcr038DkQqftuNd6O2SKlv50zkci0Yb28RvrCApv4X5d8LKTxTLTL+ucqio5Vxseo9B9/
	hgiu8LgkfyHvsnBR2F/70XoFm9wvYs5sd8mUmoqi5S7vI+H0uerji1PcyF5ACOUvDsiLpfxQrZX
	ZDtVO+NQUeGYg==
X-Received: by 2002:a05:600c:1e8b:b0:485:4278:24f0 with SMTP id 5b1f17b1804b1-48556728bf7mr283490375e9.30.1773751772291;
        Tue, 17 Mar 2026 05:49:32 -0700 (PDT)
Message-ID: <ad59c5ea-ae8c-4e6e-8b49-dcd0eefc3197@gmail.com>
Date: Tue, 17 Mar 2026 13:49:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 6/6] xen/riscv: enable DOMAIN_BUILD_HELPERS
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <6ab04f3584e45795dc82c25f62a6c950913f5c7d.1770821989.git.oleksii.kurochko@gmail.com>
 <aac9b5ac-6660-4ec0-b88e-605903217588@suse.com>
 <b4ac883d-ce90-40b0-93fc-95c925c7ac61@gmail.com>
 <a35d5566-7da1-406d-abf7-13b423d013f8@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <a35d5566-7da1-406d-abf7-13b423d013f8@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/13/26 2:11 PM, Jan Beulich wrote:
>>>> +#define GUEST_RAM0_BASE   xen_mk_ullong(0x80000000) /* 2GB of low RAM @ 2GB */
>>>> +#define GUEST_RAM0_SIZE   xen_mk_ullong(0x80000000)
>>>> +
>>>> +#define GUEST_RAM_BANK_BASES   { GUEST_RAM0_BASE }
>>>> +#define GUEST_RAM_BANK_SIZES   { GUEST_RAM0_SIZE }

(cut)

> If all you want are 2Gb guests, why would such guests be 64-bit? And with
> (iirc) RV32 permitting more than 4Gb (via PPN being 22 bits wide), perhaps
> even a 32-bit hypervisor would suffice?

Btw, shouldn't we look at VPN width?

My understanding is that we should take GUEST_RAM0_BASE as sgfn address
and then map it to mfn's page (allocated by alloc_domheap_pages())? And then
repeat this process until we won't map GUEST_RAM0_SIZE.

In this case for RV32 VPN (which is GFN in the current context) is 32-bit
wide as RV32 supports only Sv32, what is 2^32 - 1, what is almost 4gb.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Mar 17 13:26:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Mar 2026 13:26:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256115.1550815 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2UR6-00068I-UL; Tue, 17 Mar 2026 13:26:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256115.1550815; Tue, 17 Mar 2026 13: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 1w2UR6-00068B-RF; Tue, 17 Mar 2026 13:26:16 +0000
Received: by outflank-mailman (input) for mailman id 1256115;
 Tue, 17 Mar 2026 13:26:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vPV1=BR=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1w2UR4-000682-Pg
 for xen-devel@lists.xenproject.org; Tue, 17 Mar 2026 13:26:14 +0000
Received: from fout-a3-smtp.messagingengine.com
 (fout-a3-smtp.messagingengine.com [103.168.172.146])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dd61fde5-2204-11f1-b164-2bf370ae4941;
 Tue, 17 Mar 2026 14:26:12 +0100 (CET)
Received: from phl-compute-12.internal (phl-compute-12.internal [10.202.2.52])
 by mailfout.phl.internal (Postfix) with ESMTP id A9FC3EC01DB;
 Tue, 17 Mar 2026 09:26:10 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-12.internal (MEProxy); Tue, 17 Mar 2026 09:26:10 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 17 Mar 2026 09:26:08 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dd61fde5-2204-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1773753970;
	 x=1773840370; bh=II9/LYsuzrJHS5+ItRRewIdo70SGmby1E+yml1dRBOE=; b=
	lZ+2PzHd/+/IAqhPn1I5/+fnIPxqLv9o0rCdLPuV7jfk1bEb33hx4PzddLmqDcTN
	NCPTcEaI97BBC6vx66b9MtUrMW3tHvZJMuc6bOdiAYs44wdmVdg9TiJtPpvbmHni
	fQ9shA0pu1uO2M/Lz5A2xR2UX9OeNFXr4TI7FJuxy4lEpCitF8tqzyPEDdPX5Etk
	3HqEAsgPB7pAFtocELb56pAcLZPwspx3shpaS3OsFqA+PZUAvRXfe416oMVV4QIy
	CNozTL6g+6z9NpROa9tc+rrO3PfMuJKKGSI3APGsM3wElLLiMlPwSdnfmEdsJzHw
	OI7wRvmn4DIHeRvF/dcOjg==
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=
	1773753970; x=1773840370; bh=II9/LYsuzrJHS5+ItRRewIdo70SGmby1E+y
	ml1dRBOE=; b=00pH3jSWLQZ1NpaQ2f40AaV2y3O3iajtU8U9PFXoHi3YuKHzb5C
	gWGQE6cSqoSJPvi8uQiB5QC8Ce6D9lbDJZYJqpsjbGP0kpXR5txZ0BsNgffMopDA
	4Sh0ArCg97KkAq/tZi0w8VY3amfSe5BgXVKagWbZEJuMpoii0WQTFa4Lh5jyQPJT
	L+e/Pkzw2mfztRlBKvucLJ6BfTfutWT7mmj1N+aks5/feb+HcbCozN6hG1rSwnEA
	VWOSJQGXSxweI6sj/gTulQVAVejIKBw3cBjfOIwjGwE53smVc1tsJ2ql9nlVlM0o
	YNLD2/57qhBi01WjrPZYrQkPjAlp1/zs/7g==
X-ME-Sender: <xms:cla5aX6TasairNVoCZaermR5mZq_05dD6DjNgKgW8JQRL2fdyn3JIQ>
    <xme:cla5afIE2nY-PwLvEc1UwXQcnMya_XDovxUnZdSRzMRl-1fgpOwm04aYmu7tkdYsF
    Yrj-0L4Z4m2qbcXG5BqkYr6xRJM9yRNoZnVOAZlON2gTZQh>
X-ME-Received: <xmr:cla5aQtjodEUCt79R4O3qNnZ-NIWmOuMAsV7D3BvjcUA8ouCZ5KwQO77_T5-FrxdfFI7DWXAJ6jcwCbxATC5JkmU-8wXUzfOspg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeftddufeejucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepleehueff
    gffftdffffffteehvdekjeevhfekleduueevgeffgeeuleeggeeljeehnecuffhomhgrih
    hnpehgihhthhhusgdrtghomhdpphgrthgthhgvfidrohhrghdpghhithhlrggsrdgtohhm
    necuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrh
    hmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghp
    thhtohepjedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepshhouhhmhigrjhihoh
    htihhsrghrkhgrrhdvfeesghhmrghilhdrtghomhdprhgtphhtthhopeigvghnqdguvghv
    vghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehsrghrkh
    grrhhsohhumhihrghjhihothhivdefsehgmhgrihhlrdgtohhmpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopeguphhsmh
    hithhhsegrphgvrhhtuhhsshholhhuthhiohhnshdrtghomhdprhgtphhtthhopehjsggv
    uhhlihgthhesshhushgvrdgtohhmpdhrtghpthhtoheprhhoghgvrhdrphgruhestghith
    hrihigrdgtohhm
X-ME-Proxy: <xmx:cla5aeJ7hqe_KUkf9xofYE1_C4PAhT8h-9kBG_ipiZEAvGrlTwhyLA>
    <xmx:cla5aZ-fnJ8aIbiqVfkGOWqk3ka7TBG16Uqkn2IEkdieUkdFay6T0w>
    <xmx:cla5aXww-ge1qHwEwoM3AxxDV9O76I5NWrkZguv1u6AwCERADzXLKQ>
    <xmx:cla5aW5oQNuVbhKKescqG24i97OaXMrT31E75vanHlldrMbbA2okkA>
    <xmx:cla5aQXsXfHZtNaZ-XGTZ8sEhvIVzcVu3QY-eCL9AK1UunHg1LsMCyOc>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 17 Mar 2026 14:26:07 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <jbeulich@suse.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [RFC PATCH v3 0/3] Fixing ACPI BGRT (Boot Graphics Resource
 Table) corruption
Message-ID: <ablWb3STcioss8Jj@mail-itl>
References: <20260312111414.17808-1-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="8hN24WjD+uI3YMbO"
Content-Disposition: inline
In-Reply-To: <20260312111414.17808-1-soumyajyotisarkar23@gmail.com>


--8hN24WjD+uI3YMbO
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 17 Mar 2026 14:26:07 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <jbeulich@suse.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [RFC PATCH v3 0/3] Fixing ACPI BGRT (Boot Graphics Resource
 Table) corruption

On Thu, Mar 12, 2026 at 04:44:11PM +0530, Soumyajyotii Ssarkar wrote:
> This RFC series plans to addres ACPI BGRT (Boot Graphics Resource Table) =
corruption,
> that occured when Xen reuses the memory containing the boot logo
> image before dom0 is able to parse ACPI tables.
>=20
> The BGRT table contains a pointer to a BMP image stored in
> BootServicesData memory. When Xen reclaims this memory early in boot,
> the pointer becomes invalid, causing Linux dom0 to report:
> Xen: `(XEN) ACPI: BGRT: invalidating v1 image at 0x47cc2018`
> Linux (dom0): `ACPI BIOS Warning (bug): Incorrect checksum
> in table [BGRT] - 0xF9, should be 0xB4 (20250807/utcksum-58)`
>=20
> This series:
> 1. Adds BGRT image preservation infrastructure during EFI boot
> (validates BMP format, allocates EfiACPIReclaimMemory, stores pointers)
>=20
> 2. Integrates preservation with ACPI subsystem
> (clarifies acpi_invalidate_bgrt() safety net behavior,
> adds status reporting via efi_bgrt_status_info())
>=20
> 3. Provides opt-out mechanism
> (-nobgrt for xen.efi direct boot, efi=3Dno-bgrt
> for multiboot2, both via early EFI-phase parsing)
>=20
> The preservation is enabled by default to fix the corruption for all
> users, with minimal overhead (~1MB). Also, servers that don't need boot
> graphics can disable it using the "efi=3Dno-bgrt" option.
>=20
> Thank you everyone for the constructive feedback! It is really helpful,
> I hope this RFC series is upto standards, I would greatly appriciate furt=
her feedback.
>=20
> Changes since v1:
> - The BGRT invalidation behaviour should still presist
>   and server as a safety net when "efi=3Dno-bgrt" or the
>   preservation fails for some reason thus: Add Clarify comment
>   for BGRT invalidation behavior with preservation.
> Reported-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab=
=2Ecom>
>=20
> Changes since v2:
> - Use existing ACPI headers (actbl.h, actbl3.h) instead of custom structs
> - Modify the function names and code in function to conform with Coding S=
tyle.
> - Reuse efi.acpi20 from efi_tables() instead of manual RSDP search
> - Use appropriate types: EFI types for firmware code, unsigned int for
>   loop counters (matching ESRT pattern)
> - Used of sizeof(<expression>) over sizeof(<type>)
> - Remove fixed-type widths & limited typecasting
> - Add Blank line ahead of the main return statement of a function.
> - Better wording error message for image cap size
> - Remove parse_boolean(no-bgrt) since it could be bit misleading
> - Add const qualifiers throughout for safety
> - Use %p format for pointers (32-bit compatibility)
> - Initialize failure_reason with string literal for proper relocation
> - Use memcmp() with ACPI_SIG_* constants for signature checks
> - Add direct Xen.efi calling.
> - Add opt-out mechanism with proper early parsing during EFI phase.
>=20
> Reported-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab=
=2Ecom>
> Reported-by: Jan Beulich=C2=A0<jbeulich@suse.com>
>=20
> Please refer to QubesOS Issue for more context:
> https://github.com/QubesOS/qubes-issues/issues/10764
>=20
> This is a companion series to Linux Kernel side at
> https://patchew.org/linux/cover.751f45ebbb644244b1d9da3aff289d6b66db4c6b.=
1773058629.git-series.marmarek@invisiblethingslab.com/
>=20
> Testing:
> - Verified on Intel UEFI system with Fedora 43 dom0
> - Before: ACPI checksum errors in dom0
> - After: Clean boot, no ACPI warnings
> - Memory overhead: ~972 KB (preserved image size)
>=20
> Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>

Hi,

I've pushed this series to CI, and it fails to build in several targets:
https://gitlab.com/xen-project/people/marmarek/xen/-/pipelines/2390562809

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

--8hN24WjD+uI3YMbO
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmm5Vm8ACgkQ24/THMrX
1yxgbwf6A835c9cFWek5xGt5j+pqG6tAo6JzbrM+7Z21qBUDhYMgkLYWVidtGvBm
YJaBkq/SfQNDm0VCXmOohrJT0pztgmFo1nx3VRUkYYyY4VANZgG32wCKxw3Dbrhf
DTdm7xolenXd/ffmf13FRMkni7QH34esOy+iLQMXNkoXfl7rgkNCHzYR8lxxq740
2RsbpT57ubTcOWiEvtkXnun/10VrZszdE35f0Pm9OFpgPWjmRcetf7LVOOJweFkj
7pvC5qdAM15sO+Tn0Jb7Yzk5Bk/HgghZ6F4ztzRm3L1OdBdHkkQl/wBok4lENkqr
vDyzL6azh9fkunAIzv7CcecP0xXNJw==
=CFRG
-----END PGP SIGNATURE-----

--8hN24WjD+uI3YMbO--


From xen-devel-bounces@lists.xenproject.org Tue Mar 17 13:47:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Mar 2026 13:47:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256127.1550824 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2Ul8-0000gh-K6; Tue, 17 Mar 2026 13:46:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256127.1550824; Tue, 17 Mar 2026 13: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 1w2Ul8-0000ga-HV; Tue, 17 Mar 2026 13:46:58 +0000
Received: by outflank-mailman (input) for mailman id 1256127;
 Tue, 17 Mar 2026 13: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=lT9B=BR=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w2Ul7-0000gU-LJ
 for xen-devel@lists.xenproject.org; Tue, 17 Mar 2026 13:46:57 +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 c2de5e06-2207-11f1-b164-2bf370ae4941;
 Tue, 17 Mar 2026 14:46:56 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS6PR03MB989093.namprd03.prod.outlook.com (2603:10b6:8:368::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.25; Tue, 17 Mar
 2026 13:46:40 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9723.018; Tue, 17 Mar 2026
 13:46: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: c2de5e06-2207-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CBe24odqEaTA707Bbu6Tqdm7lIv/rmLewo1AcAi+BY5vfpJQ48DE4uL0lgvA84vpZCfk/M2hpJRWtYbuRbu3tH3n7tI6lqpdw6EBMzrRQ1tKCAdlPYa4rvAA80ZeoZ7qjKeXXxd94Pml6mtqTxWAmoxs1tDjmXaMSZztCVCbyWYaSi+6b5fjKz5yueJCYCVOM4TiYfNuJCe3GE80qwTnImLW8KIjEme7CBr/RGAYALUaxaAuRfkkIVjvASJuDk2QvUaukdX+fbIcVWugbuEHtJTO1mHfepKqDKg1H6QmkebjqKSrzEZ3PrpT7D2x8YJHYKXYYk9RisvaOTnmrVvsrw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kuNjVif0kI6xoqMZ8+Ck7gPk3cNBabG+q045428FfXE=;
 b=lEdDnvnmxBheqf4Aa1no8DNWZ7MrDnO2oR7u2l+6/Qn3XOvzkdXc/a7Tj/It3cwR5KpU7bVdZNNgKT5ncQR9PH/PFVkzI2sWbIO3jhEPlvb14zyIjOqWaYg43XN6o0QBTaJwRegEBSvNmGv0BoWOFxXsU6lXSXnR1o06prLgVQNLCgdNFyJARv6O750wLn3NbKzVAvgyECNuESMMgjZOT2UnAKaMhgCF+bNTPWz0LXGkDy/jvDsdp1Yo9AQZy1YV6C9Yk1YdQvie85TXpurwSE5bPiJLDzEll9ZM7XZdLo9rh9cbBooL6zaXgmeTQEV8vHnw5qdqYNOIk6W0tsB+Vw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kuNjVif0kI6xoqMZ8+Ck7gPk3cNBabG+q045428FfXE=;
 b=Ns72vTUgpDHAuFk7e56+EErCBWKLpwvrJJ2q26fgg23d0XKfdUOwM6B/BCqlcivA9gH4x7xzpf2e2j1JQHEWSNT0n3zKPq1+Cab6fWRthoNX0MzCLbOKe7BmrS8ZbMXzF4lMPVzR6dXAY/qvIGNeoSPC7qilzyAIf91jdcPKjWE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <dd928382-48a4-4bda-83ec-928bb98d7b7e@citrix.com>
Date: Tue, 17 Mar 2026 13:46:48 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [RFC PATCH v3 2/3] x86/acpi: Integrate BGRT preservation with
 status reporting
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>,
 xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com
References: <20260312111414.17808-1-soumyajyotisarkar23@gmail.com>
 <20260312111414.17808-3-soumyajyotisarkar23@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260312111414.17808-3-soumyajyotisarkar23@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PA7P264CA0431.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:37d::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_|DS6PR03MB989093:EE_
X-MS-Office365-Filtering-Correlation-Id: 1913b41c-6005-4358-6978-08de842ba593
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	fY6/GdZT9M+rGNS+m44rqG+SfQHUzPhrDPGAS12H+E4YMNklePv3vm2FlhxjOV7uY86IT5ySziyQusEZfej6EZaR/iCcduvaTt2dp1c2nsAwsFqg8l4gYUS0q8HyQKEfeHY/LEzWY05wIcBqH4BWYeCrT4/4GkOC+weNKQl7v+oerLbJML2pAINwKkbijdzSpHf0C60nGMNzAZlLQz+HZfhmANmarHdva/RiDt59xTgi7kg/+WMppEowduWHkoz84fB3G1cjJecJdEAopfhL0CQACieoOOBJtR7ve/r09Pp4PueqNH1UTC/UgULX2XhsWNMwlDt48fN49gRRrydd2QOYbvjxf658yoAUwdKnMjYY0RozAFybnTaWEQh/5+Qj2/z+OaD953GqJeSB7EqUdo2EoHvevSMH7IClJ98+a9jarySlSCAibA4XU/PNZKinrvjJLivIUQKzI60dABudD+A6rysaw+uQcmzXr4JzYeKbm4IUgbf8HG64OWJoGfZ+PgmBF1EBdAfgJ2QskWV/1AG0zjb1W31G4yXsjm9AUAVzdTWu4iuyB8Lba5m41zsXeB4LBZFKAR7wRxD30X+wIKy10GHTz7gZwQtL2ABTcD4ozzLvSw37pBN0WW9XUDixnTeGy2E8180QNmlBAI84wq2s3hNeYh4+8uCOl3GEenxFcW5/TBXd1Cm/faVd7ErQT26DctH4RKC3EqeoLy3ywiVtMAytv9u1Gf9VWQIDiuU=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SGphdnBYYm9PZHRzd1FtK2g2QmM4N2h3bjdRalhvWmxCYzhvR0N1eGlGV3N0?=
 =?utf-8?B?akV4ZDZGc1M2VWpWNE50UktzaWl1LzVnb2dlWktYa0RTVUQ5K2dIZzBSZlps?=
 =?utf-8?B?QlV6Q29tNm93bDJ1TjlESlFZT1RyRDZ5azRqdmhDTXROc3JxNC9PT2VxOENR?=
 =?utf-8?B?ak1yYlJpQXBJYmZMSWZ1ZlhZVVdacVZBczlPZTZSbStNeStvYkZjeVc0ditj?=
 =?utf-8?B?aE9iVW9qLy9mRmZrdnREbmFWV1hCcWZ1alp0VmQ2L2Q0d1h3NUlUTWM5SGJE?=
 =?utf-8?B?TVduT2JXMWxoR3NaZTg4VHRQTnc1RlB2Uk56ZXMyY0wwSDFSUmFjY1QyQ3Q4?=
 =?utf-8?B?MGJZdkpraUpkd05sSWswSlpwVGx5N3V4UTZxYitpb3V6NERoSUxEUjRhay9w?=
 =?utf-8?B?N0JvYnlkU0VoNHRGaDZpNFdSNm5KL0RRRE5XRFI3MGUwb3d1NXBLay9RbmZZ?=
 =?utf-8?B?ZXBGdk1yZWpwTzNzNU0vNUwyQmpLY2h6bEwwZlVzN214MWdZOHF6YzdTY255?=
 =?utf-8?B?WmQzdStuay9ha1JsNy90UExxZys4Q1JPUThzZFVPVEhJNFR3UEdLOGFuYmU3?=
 =?utf-8?B?VDk5RkdSY0VrOGpMamYxb3J6V042LzgyUXMyS1ZJUGFhZUlXTWRkQkM2Uk8z?=
 =?utf-8?B?Mndmb29uRUExU3hsRFkxWGhvdmRtWm9RNUdCYkpMVXpBODErdlZOZE53ZnpZ?=
 =?utf-8?B?bVhkSzk5K2Q2Kzl4ZU9kN0J3d1M0QzNubWVhNmc0RzNZNFhPRWsrUTU5YzdC?=
 =?utf-8?B?eUNDUkVhd1BoU01ZeUxmbnRtMGxBaWsvN1JubGZRMmN0T0ptZ2RDQkZ0QWJV?=
 =?utf-8?B?cDkxeExZMWxmc01kK0VCNDUwZjJPL25jaEc2ZDBydDJIaGlDVmlXNnBIUDRW?=
 =?utf-8?B?ZUtMcjgvUFNWN05UVWlTNDcxck8ySVhCVSt0STQyNWg5TW45S2UyOElKdVNP?=
 =?utf-8?B?dmpENHYvU2V1MjZFaERTQTU1ZUU5Syt3bUUrZHFtbmFBbDRVbU53bENNelFv?=
 =?utf-8?B?b1ZHZUZkRzYramhEMnB3SmJ3M0VFYzcrUE5rTDErVFdjNlRyaWl4NmJMZktR?=
 =?utf-8?B?eklhR2RiQ1dQS2l4SVVMbUZMZlhqdlhIZG9MUXRxSmhwdzZSSGxsSmo5SDBW?=
 =?utf-8?B?djNOTW5RZWg2czNtdDBwbTB3ZVFBekZ4bVJCUUFLVlU2V0FqV0hXOUJUQnVL?=
 =?utf-8?B?bGFJZ0Fnc0lZYXd4QUV5dGtjZ0M0N2RPNUt6aFZ2clc5ME9BbHBEMy9sUWh6?=
 =?utf-8?B?bVJwMFN5SnM5YWRHcEFYRGNZSUw0VWJ3SkVMQnpnTGtER0ROMjNSeCt0M29l?=
 =?utf-8?B?VEdWbk95b2w5Z3JjRzJBTzJDZFo2OHlJancvNnBMWDNkREtVcDQzWXNzSlFJ?=
 =?utf-8?B?Y2M3WExIT2JHbFNaQ0FsVEZuL1YweGw3S21hbmQ5d2dqKzdTa3hicXZ2cyta?=
 =?utf-8?B?eHBtYmtYdm9lZUNJRFRheXFKMlVnQVErZ1BMODJBSVVSMStVTEw4R05Wa1Jn?=
 =?utf-8?B?VlBPQk9FZzh1OUE1RHVpdEc5MGdBUC9jbnU1M0pRSDVOK2N4b3N0RjN5Ujg5?=
 =?utf-8?B?akxyVVowSURyL0VQcWdTNm9wVVBBVXRZeFNXMVg1bUpPenZwYzBpKy9zcHdF?=
 =?utf-8?B?RDUrVVhKRytyQ2NISlVqUEYwS3hFQ2ZFN3VFRWlGQUpHNEJSRHJKSzZpNkl5?=
 =?utf-8?B?QUdlOHFQa0c1czVCRXRCS2pEQ1A4K0dheFRTa0s1c0JZZVdwYWZCYXhXeU02?=
 =?utf-8?B?K2ZnTUdVdTJLV0hyNWx3aGVqRVlzczJnUFI2WSsvVUM1bjgxRnE0aEhkanJG?=
 =?utf-8?B?QjFpaWZLbHdBaHhiQk91SFllSlBNcGhVa1VpTVNiNXJncG5CSy8xTjlsNjdp?=
 =?utf-8?B?L2lhVXBhWHIrL1hkQVB2MnhKQUdadGlwRFhJU1UwQXdTVFpzdFNTMTE5OVdY?=
 =?utf-8?B?UWdiMlk5d3ZJMGtJQjNtYnlxUUpiaWxZaUdMR29JbHR5Zk10emxqVWZ2cXd4?=
 =?utf-8?B?TmIrZmY3ejF1UmZ4amlqTEFRdGpYR1o4WTh1Wm9YaHgrY05yVkJpS29TSFFT?=
 =?utf-8?B?cmJMSDU2anZSTkZ3V1hNZ0RzL1d1Sm0vdy9EK2t2RkxIVC9QZTVQd01GbVVx?=
 =?utf-8?B?NjZwMmRDRkd0cGJibWhFL29ubWpUNEo5dE44SEl3QzNoSWJ2ekR6VFAvaDYw?=
 =?utf-8?B?S1hIUUFhbXkrR0tmN3QyZnJJa0E3RXVoNmhHMWMzdVV2MWdvdHptY0poOHhY?=
 =?utf-8?B?WlpiSUJsOGtOM1pTSHJDd1NGeWJ0VVJDcFYwMFdQUHlyN1c4TzNORnpUSzhx?=
 =?utf-8?B?WlF5RUl3S0VFYjFuMzcrZ3hBN245MmpFNEtDRlFmRSs5ZWk2ck9GZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1913b41c-6005-4358-6978-08de842ba593
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2026 13:46:53.1455
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: UHLUdYeVs9JQ3FYMa2+AnM8mGwi5g3ru/gLPexbcYITR34pGhZA+z8BMvaaUFp4YAjGC2BIxFwHWTjem+7JXgqNVCx9x9jicbKSuyaEjRDQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS6PR03MB989093

On 12/03/2026 11:14 am, Soumyajyotii Ssarkar wrote:
> diff --git a/xen/arch/x86/acpi/boot.c b/xen/arch/x86/acpi/boot.c
> index 1ca2360e00..20afe79db9 100644
> --- a/xen/arch/x86/acpi/boot.c
> +++ b/xen/arch/x86/acpi/boot.c
>  static int __init cf_check acpi_invalidate_bgrt(struct acpi_table_header *table)
>  {
>  	struct acpi_table_bgrt *bgrt_tbl =
> @@ -754,5 +760,7 @@ int __init acpi_boot_init(void)
>
>  	acpi_table_parse(ACPI_SIG_BGRT, acpi_invalidate_bgrt);
>
> +	efi_bgrt_status_info();

To help with your build failure, given this call from outside EFI code,
you need...

> +
>  	return 0;
>  }
> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> index e6451130ce..68e06d707c 100644
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -1911,6 +1911,22 @@ static bool __init cf_check rt_range_valid(unsigned long smfn, unsigned long emf
>      return true;
>  }
>
> +void __init efi_bgrt_status_info(void)
> +{
> +    if ( !efi_enabled(EFI_BOOT) )
> +        return;
> +
> +    if ( bgrt_info.preserved )
> +    {
> +        printk(XENLOG_INFO "EFI: BGRT image preserved: %lu KB\n",
> +               bgrt_info.size / 1024);
> +        printk(XENLOG_INFO "EFI: BGRT relocated from %p to %p\n",
> +               bgrt_info.old_addr, bgrt_info.new_addr);
> +    }
> +    else if ( bgrt_info.failure_reason[0] )
> +        printk(XENLOG_WARNING "EFI: BGRT preservation failed: %s\n",
> +               bgrt_info.failure_reason);
> +}

... a matching stub function in xen/common/efi/common-stub.c

xen.efi is constructed by taking non-efi Xen and linking in a few more
object files.  It is not a full rebuild with different toolchain settings.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Mar 17 14:02:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Mar 2026 14:02:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256135.1550833 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2V0R-0003dr-S6; Tue, 17 Mar 2026 14:02:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256135.1550833; Tue, 17 Mar 2026 14:02: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 1w2V0R-0003dk-PJ; Tue, 17 Mar 2026 14:02:47 +0000
Received: by outflank-mailman (input) for mailman id 1256135;
 Tue, 17 Mar 2026 14:02: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=wERr=BR=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1w2V0P-0003de-Ss
 for xen-devel@lists.xenproject.org; Tue, 17 Mar 2026 14:02:46 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f72ada8d-2209-11f1-b164-2bf370ae4941;
 Tue, 17 Mar 2026 15:02:43 +0100 (CET)
Received: from SA9PR13CA0157.namprd13.prod.outlook.com (2603:10b6:806:28::12)
 by DM6PR12MB4417.namprd12.prod.outlook.com (2603:10b6:5:2a4::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Tue, 17 Mar
 2026 14:02:39 +0000
Received: from SN1PEPF0002BA50.namprd03.prod.outlook.com
 (2603:10b6:806:28:cafe::fa) by SA9PR13CA0157.outlook.office365.com
 (2603:10b6:806:28::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.27 via Frontend Transport; Tue,
 17 Mar 2026 14:02:37 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SN1PEPF0002BA50.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.9700.17 via Frontend Transport; Tue, 17 Mar 2026 14:02:39 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 17 Mar
 2026 09:02:38 -0500
Received: from [172.24.66.250] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 17 Mar 2026 09:02:38 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f72ada8d-2209-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=B1NXYDbV9zjjwoa0Sx7DwBkSuM8RvDILkDjVG8XSL/QeUK+J4Hz41PIsm+hDl9Ndf9UoBTOjpZm4w9OfIAD88222GTrAeh4xKxiVPQ1BuqlhDFgnsUTZouEzN/wM5WdA1Ac2EPUs8pysF6rLzXef50XA112bN2WUuPurqJ28RWKyhlz+cCxGQ6O/A9wk1Yjvj7Xba0cOzp3WWV99vrTrHn6QHpJaZferUUtxJmhE1j7eeLLDlkOPf7dz4uoXAzw7O/wVvWHYu2ubLv1znaKPnoH68+OC0U8Y6FzcUP/El8PAgo9r/i4ZoDaQBpVq5DTFhe3TaW4ixqOl/GrCAJLORg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2WnqgkijuWbeWnj3nAVyJNEqnrR8a2gTEYVrpA262Xg=;
 b=eOZnlR66m4NaW50Iz1B5ZgcsIwOdL4WM3UaE3DqhzZuFixe8SUUteQvPCll6jDADa4pJM9/uEnSbT3N19Dx67slSgtpqOciUefVkcxfiEW5IPChXD3hbnPLVn2WuKDdXsmCzxCldKNtSJOT2H0GpQDuXurWaR/jeYp2LpeK2yTjso4B8Ogfz5vPFoeEt91Nn1gmap2taHq4fuOP/xEZOON3nqrbVgnaduC/3IiKVZDw3DE9tQEppR2SWnJgCi7umI4X2PUiaBLgn81gk+gZUipPTgu8tWNljDA8czSKR1wXVynNbhZxXRe+ak+hNPzCjSwBe3YHiij6XY/e4g7HCPA==
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=2WnqgkijuWbeWnj3nAVyJNEqnrR8a2gTEYVrpA262Xg=;
 b=tVqEAHNVUYSlKhKn4BKX39PSKskqiYQqARbfjhlr8xaN1y8Fy8gZsY1PMfBMw5tY8kGY5Rm9UlqpX13wDSGJ2z2Kof9uP2RbZp5E4OomNpIE9Y/l/p1eNPaXp7qTRVunOZkaXdEty2/sN1ZMkMuwzD4ceLeSUWl095GVry4n8/w=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <251fa26d-dffa-434c-ba51-f4826282f82a@amd.com>
Date: Tue, 17 Mar 2026 10:02:50 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/8] vpci: add a wait operation to the vpci vcpu
 pending actions
To: Mykyta Poturai <Mykyta_Poturai@epam.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: <cover.1772806036.git.mykyta_poturai@epam.com>
 <ec941fbf4f8bde23fc3867e47f5ada028f8003aa.1772806036.git.mykyta_poturai@epam.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <ec941fbf4f8bde23fc3867e47f5ada028f8003aa.1772806036.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA50:EE_|DM6PR12MB4417:EE_
X-MS-Office365-Filtering-Correlation-Id: 6b75f39b-0ae0-4b0c-de57-08de842dd996
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|82310400026|376014|1800799024|56012099003|18002099003|22082099003|7053199007;
X-Microsoft-Antispam-Message-Info:
	KVq9Ccd1T15ulOfRvqt6vqTU5SgoyQuGUdMAXAJoXW9bbW8/tmIMw0xcrAg4CP/8MCZUh6TK53CCYFKt//EHvecO2+5dW4SDndaV6kj5T7XxGBWTYcVeTWvqfpivUnXMOE6XjeofWSRzxGQHJVd6lp/OSUEEHGbx9MO5Al/6wiUU6gqhDV1P56J2QTvkuDMlXW252Ias+MOXmgyLKE/14A1/5ZGBiEauvSkoOKZW/GKuORkq7TIuRwfWJHPXFS1SJkR1ws1mMPwQwUnCOQSsaVWLcQ0hD1VUVOaKeCqY5GhjHmV54dd7LPAGpjHV3PzA2930Oiz8YXRbEWRipZ2yfkB4WSTUHbX9Ab16Fqf6w8StomUVZK+jdxv/GqdLI4vj5JxKQppBpXn+XJMvhwRRP5X95R5JvZhtG20AgsWM2hLY954eJC6fMLLtvMqQ6JzAJqi+3zFfsKNRBAVb7gUb+MN5s7xjSkjBqzqA0VlnU9CiCUp/j1nz22zQ2GwrR8f2qpbn9cFKug3MzX5jrX7F1g7dUWe/DGPSPGsWMI1lGnKg7AlUDRiS5K+NCs9RMs2DDgiF9Cw0NmPizwW4PC09ufTY0XTS0Pivd03YDp63mCshBU73+siU0lnGgg1E1tL29KeE2KtOGI4q+4/9jEQ4EWzzeXzuSrafaq4Aaso/jrQ7TqeaKeBiHwRt1lx7H9wWUpzaotdhfwaWNbaTV7boRPsQTMxxYKovyO9R5bdIfKjPVjOvzfvlMndq5fsg/P0l0YRlrslwkzH6PLT77K/5Gw==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(82310400026)(376014)(1800799024)(56012099003)(18002099003)(22082099003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	iGvy+Xs1G+alYDHGnhQ5n2Y5G8heVXwgkr4FDkxuBeVSYEyq3vJXvUR3eVvvcJF0Xm4wZfRCnoEMCLSrNnwm5Xeg6aJe+Tcf/zIp55nwosKMmvedfi72p90KYAZZh0O3WuqDF9F0YPeijbfsIlVnyysuiFols4l2bdE7JsIyz8jiT3ep7nixyE7uLinn0BrWNWJ+h71XWf/vFgWT0jBLPwZ7XK9l0chsLcjEQVDKGfJFKRIYaX9XFPvVQKP2tUxeu+9URsSEUySqOpcWjm1ikzsMEGodRjciZf3NGnrOUQa2/H0zd6K+0aTokNiU2FQNyUionGV8x0FZHkAHbsQ10R54OYAOPtutA+8ZdMRWLdFbhqtGALm6TrErKCqFhagdX1HyfgcGZBmJXn0PNamEhJDKxjUib8oMvA2tiEUqqXXGORDpuzPyMUySUKNjoNYU
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2026 14:02:39.1816
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6b75f39b-0ae0-4b0c-de57-08de842dd996
X-MS-Exchange-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:
	SN1PEPF0002BA50.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4417

On 3/9/26 07:08, Mykyta Poturai wrote:
> This allows waiting a specified number of cycles on the vcpu. Once the
> wait has finished a callback is executed.
> 
> Note that this is still not used, but introduced here in order to
> simplify the complexity of the patches that actually make use of it.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
> v1->v2:
> * new patch
> ---
>  xen/drivers/vpci/header.c | 125 ++++++++++++++++++++++----------------
>  xen/include/xen/vpci.h    |  19 ++++++
>  2 files changed, 90 insertions(+), 54 deletions(-)
> 
> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
> index cb64d9b9fc..284964f0d4 100644
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -175,76 +175,92 @@ static void modify_decoding(const struct pci_dev *pdev, uint16_t cmd,
>  
>  bool vpci_process_pending(struct vcpu *v)
>  {
> -    const struct pci_dev *pdev = v->vpci.pdev;
> -    struct vpci_header *header = NULL;
> -    unsigned int i;
> -
> -    if ( !pdev )
> -        return false;
> -
> -    read_lock(&v->domain->pci_lock);
> -
> -    if ( !pdev->vpci || (v->domain != pdev->domain) )
> +    switch ( v->vpci.task )
>      {
> -        v->vpci.pdev = NULL;
> -        read_unlock(&v->domain->pci_lock);
> -        return false;
> -    }
> -
> -    header = &pdev->vpci->header;
> -    for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
> +    case MODIFY_MEMORY:
>      {
> -        struct vpci_bar *bar = &header->bars[i];
> -        struct rangeset *mem = v->vpci.bar_mem[i];
> -        struct map_data data = {
> -            .d = v->domain,
> -            .map = v->vpci.cmd & PCI_COMMAND_MEMORY,
> -            .bar = bar,
> -        };
> -        int rc;
> +        const struct pci_dev *pdev = v->vpci.memory.pdev;
> +        struct vpci_header *header = NULL;
> +        unsigned int i;
>  
> -        if ( rangeset_is_empty(mem) )
> -            continue;
> +        if ( !pdev )
> +            break;
>  
> -        rc = rangeset_consume_ranges(mem, map_range, &data);
> +        read_lock(&v->domain->pci_lock);
>  
> -        if ( rc == -ERESTART )
> +        if ( !pdev->vpci || (v->domain != pdev->domain) )
>          {
> +            v->vpci.memory.pdev = NULL;
>              read_unlock(&v->domain->pci_lock);
> -            return true;
> +            break;
>          }
>  
> -        if ( rc )
> +        header = &pdev->vpci->header;
> +        for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
>          {
> -            spin_lock(&pdev->vpci->lock);
> -            /* Disable memory decoding unconditionally on failure. */
> -            modify_decoding(pdev, v->vpci.cmd & ~PCI_COMMAND_MEMORY,
> -                            false);
> -            spin_unlock(&pdev->vpci->lock);
> +            struct vpci_bar *bar = &header->bars[i];
> +            struct rangeset *mem = v->vpci.bar_mem[i];
> +            struct map_data data = {
> +                .d = v->domain,
> +                .map = v->vpci.memory.cmd & PCI_COMMAND_MEMORY,
> +                .bar = bar,
> +            };
> +            int rc;
> +
> +            if ( rangeset_is_empty(mem) )
> +                continue;
>  
> -            /* Clean all the rangesets */
> -            for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
> -                if ( !rangeset_is_empty(v->vpci.bar_mem[i]) )
> -                     rangeset_purge(v->vpci.bar_mem[i]);
> +            rc = rangeset_consume_ranges(mem, map_range, &data);
>  
> -            v->vpci.pdev = NULL;
> +            if ( rc == -ERESTART )
> +            {
> +                read_unlock(&v->domain->pci_lock);
> +                return true;
> +            }
>  
> -            read_unlock(&v->domain->pci_lock);
> +            if ( rc )
> +            {
> +                spin_lock(&pdev->vpci->lock);
> +                /* Disable memory decoding unconditionally on failure. */
> +                modify_decoding(pdev, v->vpci.memory.cmd & ~PCI_COMMAND_MEMORY,
> +                                false);
> +                spin_unlock(&pdev->vpci->lock);
> +
> +                /* Clean all the rangesets */
> +                for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
> +                    if ( !rangeset_is_empty(v->vpci.bar_mem[i]) )
> +                        rangeset_purge(v->vpci.bar_mem[i]);
> +
> +                v->vpci.memory.pdev = NULL;
> +
> +                read_unlock(&v->domain->pci_lock);
>  
> -            if ( !is_hardware_domain(v->domain) )
> -                domain_crash(v->domain);
> +                if ( !is_hardware_domain(v->domain) )
> +                    domain_crash(v->domain);
>  
> -            return false;
> +                break;
> +            }
>          }
> -    }
> -    v->vpci.pdev = NULL;
> +        v->vpci.memory.pdev = NULL;
>  
> -    spin_lock(&pdev->vpci->lock);
> -    modify_decoding(pdev, v->vpci.cmd, v->vpci.rom_only);
> -    spin_unlock(&pdev->vpci->lock);
> +        spin_lock(&pdev->vpci->lock);
> +        modify_decoding(pdev, v->vpci.memory.cmd, v->vpci.memory.rom_only);
> +        spin_unlock(&pdev->vpci->lock);
>  
> -    read_unlock(&v->domain->pci_lock);
> +        read_unlock(&v->domain->pci_lock);
> +
> +        break;
> +    }

Nit: this is a lot of churn for a relatively small number of changes. Could the
indentation level be retained (reducing churn) by putting the block in a new
function?

> +    case WAIT:
> +        if ( NOW() < v->vpci.wait.end )
> +            return true;
> +        v->vpci.wait.callback(v->vpci.wait.data);
> +        break;
> +    case NONE:
> +        return false;
> +    }
>  
> +    v->vpci.task = NONE;
>      return false;
>  }
>  
> @@ -295,9 +311,10 @@ static void defer_map(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>       * is mapped. This can lead to parallel mapping operations being
>       * started for the same device if the domain is not well-behaved.
>       */
> -    curr->vpci.pdev = pdev;
> -    curr->vpci.cmd = cmd;
> -    curr->vpci.rom_only = rom_only;
> +    curr->vpci.memory.pdev = pdev;
> +    curr->vpci.memory.cmd = cmd;
> +    curr->vpci.memory.rom_only = rom_only;
> +    curr->vpci.task = MODIFY_MEMORY;
>      /*
>       * Raise a scheduler softirq in order to prevent the guest from resuming
>       * execution with pending mapping operations, to trigger the invocation
> diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
> index fa654545e5..47cdb54d42 100644
> --- a/xen/include/xen/vpci.h
> +++ b/xen/include/xen/vpci.h
> @@ -212,7 +212,26 @@ struct vpci_vcpu {
>      /* Per-vcpu structure to store state while {un}mapping of PCI BARs. */
>      const struct pci_dev *pdev;

pdev can now be removed from here

>  #ifdef __XEN__
> +    enum {
> +        NONE,
> +        MODIFY_MEMORY,
> +        WAIT,
> +    } task;
>      struct rangeset *bar_mem[PCI_HEADER_NORMAL_NR_BARS + 1];
> +    union {
> +        struct {
> +            /* Store state while {un}mapping of PCI BARs. */
> +            const struct pci_dev *pdev;
> +            uint16_t cmd;
> +            bool rom_only : 1;
> +        } memory;
> +        struct {
> +            /* Store wait state. */
> +            s_time_t end;
> +            void (*callback)(void *);
> +            void *data;
> +        } wait;
> +    };
>  #endif
>      uint16_t cmd;
>      bool rom_only : 1;

cmd and rom_only can be removed from here


From xen-devel-bounces@lists.xenproject.org Tue Mar 17 14:18:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Mar 2026 14:18:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256145.1550851 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2VFm-0005Re-8p; Tue, 17 Mar 2026 14:18:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256145.1550851; Tue, 17 Mar 2026 14:18:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2VFm-0005RX-5V; Tue, 17 Mar 2026 14:18:38 +0000
Received: by outflank-mailman (input) for mailman id 1256145;
 Tue, 17 Mar 2026 14:18: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=vPV1=BR=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1w2VFk-0005RR-EX
 for xen-devel@lists.xenproject.org; Tue, 17 Mar 2026 14:18:36 +0000
Received: from fout-a3-smtp.messagingengine.com
 (fout-a3-smtp.messagingengine.com [103.168.172.146])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2d540db5-220c-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Mar 2026 15:18:32 +0100 (CET)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfout.phl.internal (Postfix) with ESMTP id 501C4EC052C;
 Tue, 17 Mar 2026 10:18:31 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-04.internal (MEProxy); Tue, 17 Mar 2026 10:18:31 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 17 Mar 2026 10:18:29 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2d540db5-220c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1773757111;
	 x=1773843511; bh=H8ojiy+nUshNj92qbh6PJ54d8DQ9lgoMwsIQKTFLn1w=; b=
	UVUK5uOkT79Z9YnBrShKRfaePb9ziEarWcHeJ+TF6uQH8n3OE8xAtz0Sioetp8Ac
	K+WrkuyzYRiiTSx8yqLzsh1dvgjyMDA8nKIpvAsKP3Cq8S34f64DCGh7dywloLXK
	+rIWQINndOK6DisTQfWA1wjI4NCynFfG8F/DDdY6r9KdpKCzNchiuBycVhODqmxF
	o9YeaykjnIoMW5gxqjPoHT0SsUlcZ06D4fMwq0mTfIQnr6YdyS6ydZcIZ9l0+b2b
	OtVk4LdEn2fLtss05yT3Fdj/V1juOfOL6f7oPAWyPqzZBr2v4JNdbEyNDghohj+5
	VRV0O1ckAT4lHno8IhGA1g==
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=
	1773757111; x=1773843511; bh=H8ojiy+nUshNj92qbh6PJ54d8DQ9lgoMwsI
	QKTFLn1w=; b=cshhVT/dd5H7xmShYmQIaHxarlyFTw/xsrHwzmqkcp1zncVlsM/
	7rYlA9GxtNPLtIgcgL0HlNDZlcyDhat+4MnfoKgQD6DVDhcPyjDjF3KpEXRAwnGz
	Sk6zhH17Dc3IlOGJ5HAnGrBUQXlSoXhSUfUzKidU17LhvfPh4GVdnQvjdjzbWA4p
	H6E3pYE4+tOdRaUC/04gi5ur3Cg4MlGkwYk57fwRMry4WV6ujgoELx3qXFC6YvL9
	j14q/i6EON4FYLSu4Ob0dM1VB+nh5v83tmKjihy1A0sls3m57MiTkRg3ObskBgSr
	0Hg6qrTSZIRL9+B74RcfgGbQDrZtV0myg1A==
X-ME-Sender: <xms:t2K5adHHoIPd5Ca_AvcED5hPRN5ngP8d---7VGw5JHUqXg6_W3B64g>
    <xme:t2K5af616txm-TuxP3z5xpO909QlPjBUPdvJtfn6HpDQQe16SwIkeuI477DTEKJqp
    7-yiBKy_4Z5ExBNA1Z4ZHdHieRRFlFpkhWLXeEh5O14E_nL4A>
X-ME-Received: <xmr:t2K5aVkfSYhHayUnNC7IN-NJzhfgu1rOoqehqyIutYf2XCroxhGwTCFskdZqiX_ggg6yzJv0MVGGAXQNIZb3_HljdiIKG6AU9Os>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeftddugeejucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepjedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepshhouhhmhigrjhihohhtihhsrghrkhgr
    rhdvfeesghhmrghilhdrtghomhdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsth
    hsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehsrghrkhgrrhhsohhumhih
    rghjhihothhivdefsehgmhgrihhlrdgtohhmpdhrtghpthhtoheprghnughrvgifrdgtoh
    hophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopeguphhsmhhithhhsegrphgv
    rhhtuhhsshholhhuthhiohhnshdrtghomhdprhgtphhtthhopehjsggvuhhlihgthhessh
    hushgvrdgtohhmpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhm
X-ME-Proxy: <xmx:t2K5aUojDRUXSz_huD4jCVE0qdbdrv2Hv3spJ3ndlDFQEPCCFi9pLg>
    <xmx:t2K5aUvi0coTy-ifkfLPF73KPNhdTur0ui7_90f9Okl67qKV9jzhaQ>
    <xmx:t2K5aZEXqwens2cAbncQ1SO8LtrljrceLnSFLxLiPgYLlip_k3E4nA>
    <xmx:t2K5adZJGgEVUjRgvn1cmhfawz7bESeQaYsRRmg-G_ow6-uh90wa6Q>
    <xmx:t2K5aZQsc32GQgGqqWulGyHzbGO7UnWS2obZB3EDoLjjhIwKbmgGfKFf>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 17 Mar 2026 15:18:28 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <jbeulich@suse.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [RFC PATCH v3 1/3] x86/efi: Add BGRT image preservation
 infrastructure
Message-ID: <ablitN6qZAOOG2ZZ@mail-itl>
References: <20260312111414.17808-1-soumyajyotisarkar23@gmail.com>
 <20260312111414.17808-2-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="cDMhCax8aa77tv0c"
Content-Disposition: inline
In-Reply-To: <20260312111414.17808-2-soumyajyotisarkar23@gmail.com>


--cDMhCax8aa77tv0c
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 17 Mar 2026 15:18:28 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <jbeulich@suse.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [RFC PATCH v3 1/3] x86/efi: Add BGRT image preservation
 infrastructure

On Thu, Mar 12, 2026 at 04:44:12PM +0530, Soumyajyotii Ssarkar wrote:
> Add core EFI boot services code to preserve BGRT (Boot Graphics Resource
> Table) images during Xen boot. The BGRT contains a pointer to a boot logo
> stored in BootServicesData memory. Without preservation, this memory is
> reclaimed causing ACPI checksum errors in dom0.
>=20
> Implementation:
> - Walk XSDT to locate BGRT table (reusing efi.acpi20 from efi_tables())
> - Validate BMP image signature and size constraints (max 16MB)
> - Allocate EfiACPIReclaimMemory and copy image data
> - Update BGRT table with new address and recalculate checksum
>=20
> The preservation follows the ESRT pattern, running before
> ExitBootServices() to ensure image remains accessible.
>=20
> Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
> ---
>  xen/arch/x86/efi/efi-boot.h |   2 +
>  xen/common/efi/boot.c       | 133 ++++++++++++++++++++++++++++++++++++
>  2 files changed, 135 insertions(+)
>=20

=2E..

> +static void __init efi_preserve_bgrt_img(void)
> +{
> +    const struct acpi_table_bgrt *bgrt;
> +    const BMP_HEADER *bmp;
> +    const void *old_image;
> +    void *new_image;
> +    UINTN image_size;
> +    EFI_STATUS status;
> +    UINT8 checksum;
> +    unsigned int i;
> +
> +    bgrt_info.preserved =3D false;
> +
> +    bgrt =3D efi_get_bgrt();
> +    if ( !bgrt )
> +    {
> +        bgrt_info.failure_reason =3D "BGRT table not found";
> +        return;
> +    }
> +
> +    if ( !bgrt->image_address )
> +        return;
> +
> +    old_image =3D (const void *)bgrt->image_address;
> +    bmp =3D old_image;
> +
> +    if ( bmp->signature !=3D BMP_SIGNATURE )
> +    {
> +        bgrt_info.failure_reason =3D "Invalid BMP signature";
> +        return;
> +    }
> +
> +    image_size =3D bmp->file_size;
> +    if ( !image_size || image_size > MAX_BGRT_IMAGE_SIZE )
> +    {
> +        bgrt_info.failure_reason =3D "Image size exceeds limit";
> +        return;
> +    }
> +
> +    /*
> +     * Allocate memory of type EfiACPIReclaimMemory so that the image
> +     * will remain available for the OS after ExitBootServices().
> +     */
> +    status =3D efi_bs->AllocatePool(EfiACPIReclaimMemory, image_size, &n=
ew_image);
> +    if ( EFI_ERROR(status) )
> +    {
> +        bgrt_info.failure_reason =3D "Memory allocation failed";
> +        return;
> +    }
> +    memcpy(new_image, old_image, image_size);
> +    ((struct acpi_table_bgrt *)bgrt)->image_address =3D (UINTN)new_image;
> +    ((struct acpi_table_bgrt *)bgrt)->header.checksum =3D 0;

Question to MISRA experts here - is this casting away of const okay
here? Or maybe better be done on the `bgrt` local variable? Or some
other way?

> +    checksum =3D 0;
> +
> +    for ( i =3D 0; i < bgrt->header.length; i++ )
> +        checksum +=3D ((const UINT8 *)bgrt)[i];
> +
> +    ((struct acpi_table_bgrt *)bgrt)->header.checksum =3D -checksum;
> +
> +    /* Filling the debug struct for printing later */
> +    bgrt_info.preserved =3D true;
> +    bgrt_info.old_addr =3D old_image;
> +    bgrt_info.new_addr =3D new_image;
> +    bgrt_info.size =3D image_size;
> +}
> +
>  /*
>   * Include architecture specific implementation here, which references t=
he
>   * static globals defined above.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmm5YrQACgkQ24/THMrX
1yzN/AgAgS5jpNVn+rIN6L7pQu6+M5fmeTAi4+xZXjX9L2I1RveuY70e7+RYEL67
15+G1ef/Cv5RZHH4J9nMDsESmTHRIjNXNw6C/U4KTg9jX28Bcyg00RfxEGq+3wDn
j5UBogoDMJpIhZCvIuoZUbtbXXvfIIKZ7UqAodnv5t56iXlwMMsyCMoOHtMp3M7F
crkt0HCrrli48yuMbzQH/eT6WSOoQCB4CWLq5WSXNuu9Qq9m7+JYmEoy6g8YlNxe
MDvuPfC18ItPZo7Vci2aMM+mOdKeTlnHwDICNeQyCXIz18wIutAkaBATBVS0WT6G
hXVkOI1e+uGvjCQU7W9dn6L6s9pzuw==
=kJtp
-----END PGP SIGNATURE-----

--cDMhCax8aa77tv0c--


From xen-devel-bounces@lists.xenproject.org Tue Mar 17 14:33:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Mar 2026 14:33:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256156.1550860 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2VUL-0008Eh-Jx; Tue, 17 Mar 2026 14:33:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256156.1550860; Tue, 17 Mar 2026 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 1w2VUL-0008Ea-Gw; Tue, 17 Mar 2026 14:33:41 +0000
Received: by outflank-mailman (input) for mailman id 1256156;
 Tue, 17 Mar 2026 14:33: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=/XzQ=BR=bounce.vates.tech=bounce-md_30504962.69b9663e.v1-60c5da4bde924900a8e998088ebd28d4@srs-se1.protection.inumbo.net>)
 id 1w2VUJ-0008EU-UC
 for xen-devel@lists.xenproject.org; Tue, 17 Mar 2026 14:33:40 +0000
Received: from mail136-12.atl41.mandrillapp.com
 (mail136-12.atl41.mandrillapp.com [198.2.136.12])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 48064eb8-220e-11f1-b164-2bf370ae4941;
 Tue, 17 Mar 2026 15:33:36 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-12.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4fZvb26Rngz5QkT4K
 for <xen-devel@lists.xenproject.org>; Tue, 17 Mar 2026 14:33:34 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 60c5da4bde924900a8e998088ebd28d4; Tue, 17 Mar 2026 14:33:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 48064eb8-220e-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773758014; x=1774028014;
	bh=yP02+0uBPHUXsiASIR73DDkx2uRR822xGjQSXWhWDpc=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=ZPofbuxn/SMw/KVXd9rqtltVNNRz4RPZQ/2sa/5FWysElJrhWY7/TMXuPHzdOHPch
	 gTtpqfhNEbeEXBZGX30R/49shVtry8TxTMIAxozVueyJ0AtSuwN0nMGVJ1xkT04T47
	 JFCv88IsPpL+uRTYvRmqnGbNgYHv+qsRm32PFIjD4NqU6aHd0T+MC0A7Eq814S08OS
	 RUAbtkxyKGLmPxMbNkRPZwW04ugrK1uqDhNLINYZE7SyDviRgJC0c9Fr8d/QkhxCYA
	 Fwx0jTSghHCeQA81I7y53GLW8niN6ivaHEv4U4DrwevMp3BNa8QpF8ZahN+3xJGGDj
	 LM9p4Gz5dTbtw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773758014; x=1774018514; i=teddy.astie@vates.tech;
	bh=yP02+0uBPHUXsiASIR73DDkx2uRR822xGjQSXWhWDpc=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=GWrn76jU91H9kGJj4h2vp1vkReuccrB9/U0fEf52rrQHhWvoA68jE4edRNhgrWxqK
	 eREL5n5zZJldbqMjuCph44W7Wveav4+eUFF4/1w95ILFEZDlreOIOXIae/yXvDKPOP
	 VtAVdQnu2oOkBzEfy91d29f6vLU2S8NFJAMM0m+7DYORBHIRI+9x7GAMEtBzHrm93/
	 dEEYZbkrn+J59lC+y9k/VrLJeOyC61HPKMrpdl9tXqmrJwj6byLD2sP+gZvfG8MZ9N
	 Ua6bfJUX85mRfpNu5KOjm6QOznmuRszdVricFnIIZvBM6SEzXy/2YWFiEsLjB6lduw
	 p9I+6DgtWDH8g==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2]=20efi:=20Enable=20EFI=5FSET=5FVIRTUAL=5FADDRESS=5FMAP=20by=20default?=
X-Mailer: git-send-email 2.53.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773758013577
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: <14146a9dd53d1662d1e35220125d816045b2f184.1773757913.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.60c5da4bde924900a8e998088ebd28d4?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260317:md
Date: Tue, 17 Mar 2026 14:33:34 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Many machines fails to boot if this option is disabled.
It's off by default as it was deemed too risky for being enabled
by default late in the Xen 4.13 cycle, but found out to be safe.
As there are no known drawback by having this option on, enable
it by default.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
v2:
 - review commit description
 - drop "If unsure" note

 xen/common/Kconfig | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index d7e79e752a..0a20aa0a12 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -363,14 +363,13 @@ config KEXEC
 
 config EFI_SET_VIRTUAL_ADDRESS_MAP
     bool "EFI: call SetVirtualAddressMap()" if EXPERT
+    default y
     help
       Call EFI SetVirtualAddressMap() runtime service to setup memory map for
       further runtime services. According to UEFI spec, it isn't strictly
       necessary, but many UEFI implementations misbehave when this call is
       missing.
 
-      If unsure, say N.
-
 config XSM
 	bool "Xen Security Modules support"
 	default ARM
-- 
2.53.0



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Tue Mar 17 15:42:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Mar 2026 15:42:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256178.1550879 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2WYD-0008Vf-78; Tue, 17 Mar 2026 15:41:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256178.1550879; Tue, 17 Mar 2026 15:41:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2WYD-0008VY-4E; Tue, 17 Mar 2026 15:41:45 +0000
Received: by outflank-mailman (input) for mailman id 1256178;
 Tue, 17 Mar 2026 15:41:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lT9B=BR=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w2WYB-0008VR-BR
 for xen-devel@lists.xenproject.org; Tue, 17 Mar 2026 15:41:43 +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 c7352082-2217-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Mar 2026 16:41:36 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MN2PR03MB5312.namprd03.prod.outlook.com (2603:10b6:208:1e9::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Tue, 17 Mar
 2026 15:41:30 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9723.018; Tue, 17 Mar 2026
 15:41: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: c7352082-2217-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qcHz1C7YagK2Kcp55Ap2oQ23UM+TWzMG5XxYzHho+IhCKSyhwVVFnjj3GOqjChyGfTrNhoeQwYDQu9lyhIhSNQhWTOyqcZZ4tBMhT8ijXReCsZodBgqLD8WbdXek9GC83ez3CsV3Y/QqtX7QsprcLWWaYsMqYVSUq9vxKO6zjvyO0+MAzj8qLZBMVJOkGS0KztTui5axCDBrlRv7WYT//825XtoO5nnWm23Xc/V+wUBdKbRdMONep+pDZ+pfgpcukRiutaP0YcsWGgYwRswVeX4GTvN0N4yKF42A7HOmwlSLWZutdKIx/UvwWpoRbUou/BXGibxQ3zypy1hbdXY60Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GstyDCrXQ93AcDzVdPdE1572Xd/IfL3MoAZgm7QvYzg=;
 b=DCNvPw3i71CYe9U8zzAqcztfTahsuO3a/rjiEfuoJ3bnAKv0l5IfCVeACre5hM53FXzZpblYwqZ61ybzfHswhN/bhTry9Du0kE8LVTpIyolwc2H/kmulvD+/CWItobqdfnBlS7950QR1UVHzS+GkhMpQLjP0RSRbRrFd5cjeNv+lEiA0q/AOoOCTICSyFrEHwQyivjkJlQAmWHd1fY5MRFNKwwp4nH1xcIP7+mEykKiUhy6+iUs9V49/wZTsEI0IjzeQgXiMJjl8pNMWsRAKplyvd4ygNKm/M2LNXuGJVp57P1FVVvxay/4lCr9cCNmRv48Sdfw3xsZGN5ekLQSxWw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GstyDCrXQ93AcDzVdPdE1572Xd/IfL3MoAZgm7QvYzg=;
 b=eFE9FThGultm+SQCL+U6hUYB47RQ7M1yzVl5U7/XqV6pZ4dIKD692LnYeI/kuzIxZC6+AtYG/nIMZp9AQAy4gRKxI2cEHxcHo9KolT4DIKj0r9k6yOMLcal7NSWUS6TjjMbV3kT28N3OndbL+2pVNmelJr7D/kKdKD0NRpD+Xos=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <31624c02-8144-4a85-a1e6-9a690a9195d5@citrix.com>
Date: Tue, 17 Mar 2026 15:41:27 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Subject: Re: [RFC PATCH v3 1/3] x86/efi: Add BGRT image preservation
 infrastructure
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
References: <20260312111414.17808-1-soumyajyotisarkar23@gmail.com>
 <20260312111414.17808-2-soumyajyotisarkar23@gmail.com>
 <ablitN6qZAOOG2ZZ@mail-itl>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <ablitN6qZAOOG2ZZ@mail-itl>
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_|MN2PR03MB5312:EE_
X-MS-Office365-Filtering-Correlation-Id: 2023bb84-6e24-4796-0c3d-08de843ba907
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	8KacEGT6o59j4Ad/9/q2gc+fOrxSM4V+/ah58SHwrA9Pa3ZF4z+p+ANq7k4AJxSKnqbsdlxiCwex8biPmyi44BA0xoyOevAVpkc3UYWOBGcaqZa+r5FKS6vS1ajH9luFhqmg8R/Y3S2/o19oH1vDIpC5KWIhix0AEj3p0Q1gmvLFwHClvZjz8/OkYJ3V31UvqK3u3fkTjsYePEqHlDzGByeSORGspG/lxOaBnuxQS0pEh02BGXC706k/BO2AmLwX+gHd9JEvs8YRRSBKvbStZ5meG2bGijRyRgDp/fZ9y/oIQOzV0Fx/5+WELCa5lsj5YQsQ03gNvAk8dX+YE19kJJO6DpHHGdZPJQXXgC3Ao7ov+EhFEGide51OYrbCtFT9qiNyX8sbfE2T8mw30bTBSQ3uIcVHqnpy3onxxCg3TovUPRWRlHyWQwm99PeeMDz051fPkxEFEp4V/j8j4/C2ANMs37hPzsMmSa1xHDNNhST00+kZ2znMu0KpsjCdwAlW8px1I/1X0GORTJy+TsTa0DB/CRoQwvg6xWwvvOcdfPcKzzyWF72HGvfSgvJqvf1pLI0ECIB+0JjmBxpGXslIX2pOnKal0jsRsUgDEmTIbkju8BDFXDyssf36Au59hKp3LtvSXa87NRjJb3N6hlgmSyslM05RAU64Hxkxjd9xfF3eme3RHdU4fiarO5FrbBcjMSWBSo3hvIqKpeL1pQ1RbJ/iHlbHM9whD2Vh8czf704=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MGhSWmNjVzFTM0ZOTmQzc1dkUGFjK1JEME9aeXdsVU5majFPNFM1bEgyWjlF?=
 =?utf-8?B?a2xMeENDMmxkWFMrNkx1Y1FPb1RmT29zZEFVYWtsMktiTFptOERrbTF3Sjds?=
 =?utf-8?B?M1prWnhGU284WXZ2QTZFZTFMb2hRK0ViWW9LdGxWSXBBK1JVQmdOWDdoZmRQ?=
 =?utf-8?B?OTA3VllORmM4eEJmbWxscU5KUDFRcFlIMHJPRGlVN3Q1aS9pZG1aN3Y5OXlS?=
 =?utf-8?B?cjF6V1dGVTZtTHJkZTJTS0NGcW8xZUsxam1wQ3M5SWJxdjlBdDNpSDBuRjNT?=
 =?utf-8?B?amMrUENidVZEa2ZQdUM0Z2ZJS0hHK0ZCbFFUZzQ5VzR0Q2F2bDRZWnZQTUU2?=
 =?utf-8?B?QXhzbHU0bFpxOVVSNjJ1dS9lNUE3cVkxK2hydGJ5aU15T1pvOExBdnJ2aHFO?=
 =?utf-8?B?VG0rd0lIemJyT0hMNXRhaDV6dzZMZ0N3NzZXQ0l2d3FYVS9tRWJ0a2ZvdmNj?=
 =?utf-8?B?amFzM2IrTzNqeXA0Y1pRWDJ5OFBYdzhXc3RLUGRLbHRQOExJdTM2Y2V4bkgw?=
 =?utf-8?B?WVF6WnhzN0h3bmkwcXVIUHdUQldPMHU1WndENEZtYlphZkY0dVJyS1BLbjRp?=
 =?utf-8?B?SS9Ca2Z3YlhITU1Ma0NNOUhSQ09NcTJ2ajZzVjByQmZpR2pRS1dZZzR3MGNC?=
 =?utf-8?B?ZkpwOEJTcG05QTRyZDQyMFZGblFaUFB0dDRPekRVM0JkaTAreUdnVDhVM1dr?=
 =?utf-8?B?bjFTa3BmYTcxeW1qMmdxaGg1UmRXUjhWMkdJai9vY21zNEppMVFsMjRXS2J0?=
 =?utf-8?B?ZzBhVVJ1eTV6RGFJM1JHYi9lWWJwVS9ibkdOcmpmcHhML01vOVRGZjh3cDdl?=
 =?utf-8?B?MVFYS2hHbDRUS3lvc2pkbVZ4WEx5eWUvaVByYUFFNndqU0loc3BJWTNEajFS?=
 =?utf-8?B?MHJtZUU1Q2lzR1ROT00vRXVEQlhFY2dsMTBibVRZNU9sVklCU1hFT1VaRUwy?=
 =?utf-8?B?KzJUb29uVUNQdkNrOHo5bVVMWnc3amdaL2orTG1OdUFjdFBsR2hGQndWUDNq?=
 =?utf-8?B?UjRMaG1ldkhqQml2RkcrY25UYmNBM3RPNDY5R3dPaGtQaFB1UHVCV3dvOXhn?=
 =?utf-8?B?SEtCcTVhQUJibkszak1hUyszQUIxWHJCYTErVTBFOGRONk5JeWMwSDk1dzdU?=
 =?utf-8?B?S1VZNkU1SU05YTZsYTd4aW0zdXVlS1pZRllYSUszS21LVzZQb3pxaEg4Ui9L?=
 =?utf-8?B?U3ozdG9nc0RjTzF3VnVKNlpNMmdZeWtoV3BwNWsrZ3lYak8rUHk3S09wcmZa?=
 =?utf-8?B?emxiKy9MeDB4YnlBOXk2QlMzS0hPb0Q3bHdQTHR2eFE2RkJIb0MrekVKUllE?=
 =?utf-8?B?bkpDQmJwVnpQRlV3NFh5cWlGMFdvUFNSQ003Y2lOQUVHN1pZVjNtUlFtUEZE?=
 =?utf-8?B?eW9KUmUxMnlKaDgxOWRpbUtEM1VVeUszUklkY3ZRam52QUVkUjdIcGNqY0lz?=
 =?utf-8?B?bEUxY1JuNXV2N3BGcmFkcTZPNlNjY3RSZGZFUm9GdUp6cUhQQkUxYXp3a1pR?=
 =?utf-8?B?eVVRK1Nzb3FrLzF3TEdYY2RHYU9qY2hvTG5vR2ZiQkYvZjlNR2V3RWx0cEd1?=
 =?utf-8?B?S1FINFZXbEFCVHorTWNaMkZpR2JnU2c1SWM3K0NkVHJzcDMxb2FDSnAwcm8r?=
 =?utf-8?B?VWpxNHNlTkFDdE1VWFJncGNXTmxwaXZtRFBuYTMyQVR6Ymllc0VlYXdCQjJi?=
 =?utf-8?B?OSsvaU1SVnMrM090NkQrOGlSWkZTYURJNFRPSUIrRFdkenQ1RTlWVm5oRm9U?=
 =?utf-8?B?dUFSYzdxRVorRHFuQjhNTnM4WndvQjE2QnhDTmtzRWlxRFpRWXprNzE0am0r?=
 =?utf-8?B?M2VmMFB1cEJQVlp1VmxDT1RFdVJMdUNhbFdFdGNkM29hVXd4U2pRTmxMKzUv?=
 =?utf-8?B?ZnRwTTJpRXJURVBxNXYwbTFDYUgwVHFIb0JBbWF3K1k3c3AwcTg3alM4Y3dm?=
 =?utf-8?B?dmhveHg0YkxQNzVLTDlyOHB6cDNrMENIbllXOG9qSzl5RkpKeU5lOTNGS1pY?=
 =?utf-8?B?UnllOTc1QkJ0Y0VMMDZRQ2tYcEJIVnNhd0FpNXFmcGJNWmFPcE8xcm53YkFN?=
 =?utf-8?B?TXdkbHIrckd4cjZJMjBWajFTN1g4eUYvQTZQbC9RY1NPdlk5eEo2cDZqTmcz?=
 =?utf-8?B?NGFZMktIZmZHTTU4YUdnTFNMeXQ4dyswajZkSXRPeXRvZlZiL29xVnZRU3Vs?=
 =?utf-8?B?TTFmZktsNGVQbXFoYzg3RjJ4Tmx3NEV0MEUyaWcwVG04UmtXZnhOQ1VYUFA5?=
 =?utf-8?B?a0FYUU9xaENucG12TEVkWHlnUzlJNkM4d0t6RFluaTFjMk5WOVFBQnBVMTZr?=
 =?utf-8?B?ZkNsOEhTS3IwT1BMOTlJZjlkNnVMd0xnY1VjaERINWdxSEN2OTlaQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2023bb84-6e24-4796-0c3d-08de843ba907
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2026 15:41:30.7953
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: C4w3NUaG6XcJSfXglOQ5a5ukm3R3D0uNRe6I1xSCdXz1SONykE8bsHLBSVSQHJwXeN5SxBR/AFUgrg4e1r4o0nDYr3w53t0S8REXvuhAUPI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5312

On 17/03/2026 2:18 pm, Marek Marczykowski-Górecki wrote:
> On Thu, Mar 12, 2026 at 04:44:12PM +0530, Soumyajyotii Ssarkar wrote:
>> Add core EFI boot services code to preserve BGRT (Boot Graphics Resource
>> Table) images during Xen boot. The BGRT contains a pointer to a boot logo
>> stored in BootServicesData memory. Without preservation, this memory is
>> reclaimed causing ACPI checksum errors in dom0.
>>
>> Implementation:
>> - Walk XSDT to locate BGRT table (reusing efi.acpi20 from efi_tables())
>> - Validate BMP image signature and size constraints (max 16MB)
>> - Allocate EfiACPIReclaimMemory and copy image data
>> - Update BGRT table with new address and recalculate checksum
>>
>> The preservation follows the ESRT pattern, running before
>> ExitBootServices() to ensure image remains accessible.
>>
>> Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
>> ---
>>  xen/arch/x86/efi/efi-boot.h |   2 +
>>  xen/common/efi/boot.c       | 133 ++++++++++++++++++++++++++++++++++++
>>  2 files changed, 135 insertions(+)
>>
> ...
>
>> +static void __init efi_preserve_bgrt_img(void)
>> +{
>> +    const struct acpi_table_bgrt *bgrt;
>> +    const BMP_HEADER *bmp;
>> +    const void *old_image;
>> +    void *new_image;
>> +    UINTN image_size;
>> +    EFI_STATUS status;
>> +    UINT8 checksum;
>> +    unsigned int i;
>> +
>> +    bgrt_info.preserved = false;
>> +
>> +    bgrt = efi_get_bgrt();
>> +    if ( !bgrt )
>> +    {
>> +        bgrt_info.failure_reason = "BGRT table not found";
>> +        return;
>> +    }
>> +
>> +    if ( !bgrt->image_address )
>> +        return;
>> +
>> +    old_image = (const void *)bgrt->image_address;
>> +    bmp = old_image;
>> +
>> +    if ( bmp->signature != BMP_SIGNATURE )
>> +    {
>> +        bgrt_info.failure_reason = "Invalid BMP signature";
>> +        return;
>> +    }
>> +
>> +    image_size = bmp->file_size;
>> +    if ( !image_size || image_size > MAX_BGRT_IMAGE_SIZE )
>> +    {
>> +        bgrt_info.failure_reason = "Image size exceeds limit";
>> +        return;
>> +    }
>> +
>> +    /*
>> +     * Allocate memory of type EfiACPIReclaimMemory so that the image
>> +     * will remain available for the OS after ExitBootServices().
>> +     */
>> +    status = efi_bs->AllocatePool(EfiACPIReclaimMemory, image_size, &new_image);
>> +    if ( EFI_ERROR(status) )
>> +    {
>> +        bgrt_info.failure_reason = "Memory allocation failed";
>> +        return;
>> +    }
>> +    memcpy(new_image, old_image, image_size);
>> +    ((struct acpi_table_bgrt *)bgrt)->image_address = (UINTN)new_image;
>> +    ((struct acpi_table_bgrt *)bgrt)->header.checksum = 0;
> Question to MISRA experts here - is this casting away of const okay
> here? Or maybe better be done on the `bgrt` local variable? Or some
> other way?

Casting away const is not ok.  The bug is in patch 1, with
efi_get_bgrt() returning a const pointer.

You should never lose the mutable pointer, and it is only objects in
rodata which legitimately lack a mutable pointer in the first place. 
Everything else is strictly mutable from C's point of view.

First fix the build issues, then run Eclair on the result.  There are
other issues in the series, I think.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Mar 17 18:50:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Mar 2026 18:50:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256204.1550921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2ZUj-0005yo-CG; Tue, 17 Mar 2026 18:50:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256204.1550921; Tue, 17 Mar 2026 18:50:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2ZUj-0005yg-7i; Tue, 17 Mar 2026 18:50:21 +0000
Received: by outflank-mailman (input) for mailman id 1256204;
 Tue, 17 Mar 2026 17: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=W07a=BR=oss.qualcomm.com=vikash.garodia@srs-se1.protection.inumbo.net>)
 id 1w2YLU-0005Fh-M2
 for xen-devel@lists.xenproject.org; Tue, 17 Mar 2026 17:36:44 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d9189751-2227-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Mar 2026 18:36:37 +0100 (CET)
Received: from pps.filterd (m0279868.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62HDo9r43124391
 for <xen-devel@lists.xenproject.org>; Tue, 17 Mar 2026 17:36:36 GMT
Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com
 [209.85.214.198])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cy2fbtb4f-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 17 Mar 2026 17:36:35 +0000 (GMT)
Received: by mail-pl1-f198.google.com with SMTP id
 d9443c01a7336-2b064f043adso14753865ad.0
 for <xen-devel@lists.xenproject.org>; Tue, 17 Mar 2026 10:36:35 -0700 (PDT)
Received: from [192.168.0.172] ([49.205.248.224])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2b06e603937sm1236095ad.57.2026.03.17.10.36.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Mar 2026 10:36: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: d9189751-2227-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	zytiUP8Xce3T94fCwbA24WE4ff9eD1E8/ytUb5yxkwI=; b=DDNrKG6TBGPThpBu
	Qyx6FFRxPlo9Lsw9cg7D1U2tm8zxL8j42xvmYJAy8i0iWCAzgnYY0vH7Ul9raj6Z
	HwxUqbkaynZU+WVWdLr+MRDq4tz5iJzOfAFFTHtkdpJPhbSqh1/UMsdv4OMIufdB
	CvX5TsvYNSq4goCEBNHBJRVHgWt74xDg8XJsMHx9HGYEGWXYd4gS/ozpnjbkVYGC
	QnHJ/bTannKFVM7Z/DLt8BomcdqaqKYgFGrYJkse2i7sHtxmK6ZTs/FbkI1hFi3T
	brQEIdXMSyoL7duC5cni/eKj+yoGMQCFnf5reegtKcrLp16GOY3KvF58shbTVtD+
	sTIEqA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1773768995; x=1774373795; 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=zytiUP8Xce3T94fCwbA24WE4ff9eD1E8/ytUb5yxkwI=;
        b=hS7d9xRjnFSCdhtqfR85hG83PvvAFNtD6MJyPGq45xAEh8q/75S2WfjQ+Ph8CtCx5/
         lALsaReg/ftrigfKLLWUa+oHGf/DX5LWMVy2ompDlITQyznSmlrW9lveDOFa6BzT30tr
         +ruWW3MwqoBUvSWzCHswIGg25fi86XykyCRoJuoewlw8Elah/FAFkPsmF13x/eLUzLH+
         UFzmNF5X1keSQj0NIBcVXnE0RKcKeobwh9OjkMPXF1okkncdPPv5kQeav7YBBhg82iWR
         q3fH6SIAMAgc4NvrSZ+NEHkkmauBkjWoiOJjMZdFWc97juFFOykKsJWxCvdS3Bxh9cOy
         qmrg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773768995; x=1774373795;
        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=zytiUP8Xce3T94fCwbA24WE4ff9eD1E8/ytUb5yxkwI=;
        b=Mskr1XAizNqp3KgWLQJJL1203xjPy6g/ZdzpnrOZbkNtmwV5mX4YooFPcIBa25oDo0
         Ig1mkgmLF6xoRch9SS6wKFnfT8/ea19yIrM5DHXa8P8m4eN5i2HWqDoCItI4qbNiW5no
         QQlbEjJHKk0hlOHd4dzPAERJ3sK3rzfurE24EPUKOoyXv8aisbrxXj/0uAOiCT34WDTs
         KmAH4b3YoGp53E0cCzyAdkhEef4/irYIBMMdc1/d1Ytg24Fw2R8QapP9HWRF/F0K80YH
         43R1vw4UmVeaSSknv+95FlB3+EEUEYjUUEqNBg+5XzLSI8QNnGvHGbrsc9xRDKm+wgbG
         eOeg==
X-Forwarded-Encrypted: i=1; AJvYcCWDYRmt1wH7FFLdP1YOfcg5qsRRVCpNSD4UUqPZpEiKuE1FQQQHsTP/Q7YmVzgovTXCEivIDgiHolk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxM0iqugFX0oyRaYjZn4ivdYt3/B6ylxjYjWXaYjQokJ8YXVkbB
	UAhhXr7Kn1UNxHhIdcINXc7CHo2Nug5RkJKYdQaWzp+T0MfUPtlenQlLAO3dlC9hhM/fxCidvkh
	C840kxqiUTOCUX63IEo4C8Y7T2E/nMa5/HV6HGAvljo5EpusO9e3N0xsVwiMhyJZx7hKqsA==
X-Gm-Gg: ATEYQzw2ZUZPg4Nd3PWFSFuaO6A/M5twXo7MIBAHCx9pP4ocdelkP/X7B9x1Lxg+xiG
	CQlasjHOwl6hnDHm3IVDYy/89i0h+rmgehhDTDY4k9yL1fCjTIAlPTcjj2N195Y7OYJwL58NLoy
	z2jh+fNAdBi1APGsZfHEcR6HIQfvp2ilU6i8nCvo14FOATGJySN86QcX96HKYUbTkJS5AC849Ah
	Z1p1jxJX0qfJsJLYkN3GEEkFJ829mF8DecCPij13IviGW9bCZVL4uQHmIUmcnKFXRxIJChY2mk2
	4Aq9BAG5jJO6fUS1oVGSD8eXNE1oulFHJzdvmBAYwgDtV9K0V9NY4pYCVdV4QF0i49iDkPoXFbQ
	a1gy5X3PXISyEsDa/GlY9kh+bMWS0X8VIPexGVzLP8k9ZRZMnSssophiv
X-Received: by 2002:a17:903:1a67:b0:2b0:5a4c:726a with SMTP id d9443c01a7336-2b06e41afc9mr2520795ad.43.1773768994518;
        Tue, 17 Mar 2026 10:36:34 -0700 (PDT)
X-Received: by 2002:a17:903:1a67:b0:2b0:5a4c:726a with SMTP id d9443c01a7336-2b06e41afc9mr2520265ad.43.1773768993782;
        Tue, 17 Mar 2026 10:36:33 -0700 (PDT)
Message-ID: <e2f5a1ab-2b1f-484c-b476-6c453abf0087@oss.qualcomm.com>
Date: Tue, 17 Mar 2026 23:06:21 +0530
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] of/iommu: support multiple iommu-map entries per input
 ID
To: Robin Murphy <robin.murphy@arm.com>,
        Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Rob Herring <robh@kernel.org>, Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        =?UTF-8?Q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas
 <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Marc Zyngier <maz@kernel.org>,
        Juergen Gross <jgross@suse.com>,
        Stefano Stabellini
 <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski
 <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>
Cc: linux-arm-msm@vger.kernel.org, iommu@lists.linux.dev,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
        imx@lists.linux.dev, xen-devel@lists.xenproject.org
References: <20260315-iommu_multi_map-v2-1-51b98cb79331@oss.qualcomm.com>
 <be41a533-46a8-411b-bf6c-d56b550691a7@arm.com>
Content-Language: en-US
From: Vikash Garodia <vikash.garodia@oss.qualcomm.com>
In-Reply-To: <be41a533-46a8-411b-bf6c-d56b550691a7@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Proofpoint-ORIG-GUID: V8CbklrlXHheyJtt7--f2BdRe-Jhv7Ex
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzE3MDE1NCBTYWx0ZWRfX2+kPkOArsTeO
 UZAJrFTnb0vJZj8UeIahaAVmxTHyctYJPoKUusydTKBnj4DTSE3s1DifQ8Sci0eG5bxrviizNcm
 ayoajurzXCxqdfIaL1FZKKje3OVRBVihnctZpW8sDIaxVqCbyKGqRF1phGyt1qaI32dGATlNywZ
 ye0A/EDcffhKm4L2pgr40pUP9Q7gzj1tu8r4eDNDW9PCroDeCXUNKSC2YVecGvKu8aXGK2COQo7
 ZdQ/kLdwPMxZvnMcCtGgFLxXorDKbXWJfii2WkWBTO5agrUhWdZUBM08MUf0qr1W7w1R3XuMMie
 GBgwHAooi/5atFqY9nC1vg2EpsNTH5cRFRIqpSany3X7UsXwiEd+glNEJHkk06+zDsF/i2p2lHp
 n31Ib5CEs5pK6QvWKamviiYf42TllZv9V6err98LPASVQVygw/WW6MsuW4pfigfu+4ooUvTVxbj
 RhWhsfYUdb6SXD/HnPA==
X-Authority-Analysis: v=2.4 cv=fa6gCkQF c=1 sm=1 tr=0 ts=69b99123 cx=c_pps
 a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=L0D9IIo8dDxUtxRzEGqq2w==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22
 a=VwQbUJbxAAAA:8 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=dbrUTAiK8tO8QfTRFOUA:9
 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22
 a=TjNXssC_j7lpFel5tvFf:22
X-Proofpoint-GUID: V8CbklrlXHheyJtt7--f2BdRe-Jhv7Ex
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-17_03,2026-03-17_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 phishscore=0 priorityscore=1501 spamscore=0 lowpriorityscore=0
 impostorscore=0 adultscore=0 bulkscore=0 malwarescore=0 suspectscore=0
 clxscore=1011 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001
 definitions=main-2603170154

Hello Robin,

On 3/16/2026 5:18 PM, Robin Murphy wrote:
> On 2026-03-15 5:07 pm, Vijayanand Jitta wrote:
>> When multiple mappings are present for an input ID, linux matches
>> just the first one. There is a usecase [1] where all the mappings
>> are to be maintained in parallel for an iommu-map entry of a same
>> input id.
>>
>> Add a next_offset iterator parameter to of_map_iommu_id() and
>> refactor of_map_id() internals into a static helper to carry it.
>> Update of_iommu_configure_dev_id() to loop over all matching
>> entries to support this case. All other callers pass NULL and
>> are unaffected.
>>
>> [1] https://lore.kernel.org/all/20250627-video_cb- 
>> v3-0-51e18c0ffbce@quicinc.com/
> 
> That series doesn't even reference "iommu-map" though?
> 
> Once again, NAK to this - the purpose of "iommu-map"/"msi-map" is to 
> describe a translation from one hardware ID space to another, where a 
> one-to-many mapping of IDs to a single target would never make sense. 
> While it is in principle possible for a single device to map to multiple 
> different *targets*, that is ambiguous as to what it means - is it 
> giving the OS a choice to use whichever one it prefers, or implying they 
> must all be configured identically at all times? - so depending on how 
> you prefer to look at it, we either do not support that, or we have 
> chosen the first option.
> 

Ideally that should be the way to have unique hardware ID should be 
mapped to unique single target. In case of VPU hardware, there are few 
sub hardwares blocks, 2 of them would be bitstream engine (BE) and 
tensilica (XS). They generates unique ID as 0x1940 and 0x1a20 
respectively. There is a *single register interface* to program a mapped 
device address which both these hardware would access and processes on 
the data. To accomplish this, these unique stream-ids are being mapped 
to single target so as to generate single device address.
We can call this out as VPU hardware limitation, but thats how it is 
currently designed.

If you could please suggest any alternate way to acheive this, it would 
help us conclude.

Regards,
Vikash

>> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
>> ---
>> On Qualcomm kaanapali, the VPU hardware has multiple internal blocks
>> that generate different stream IDs for the same input ID. The device
>> tree encodes them as separate iommu-map entries sharing the same input
>> ID:
> 
> And all that means is that your invented notion of "input IDs" is 
> clearly wrong. Please stop this abuse of common bindings and just come 
> up with a proper way to describe your hardware appropriately for what it 
> actually is and does.
> 
> Thanks,
> Robin.
> 
>>    iommu-map = <0x100 &apps_smmu 0x1940 0x1>,
>>                <0x100 &apps_smmu 0x1a20 0x1>, ...
>>
>> This requires multiple iommu-map entries per device.
>> of_iommu_configure_dev_id() currently stops at the first match,
>> so only one stream ID gets registered with the IOMMU.
>>
>> The v1 series [1] addressed this with a callback threaded through
>> of_map_id().
>>
>> This patch uses a next_offset iterator on of_map_iommu_id() instead,
>> keeping of_map_id() unchanged, and updates of_iommu_configure_dev_id()
>> to loop over all matching entries.
>>
>> This patch also depends on iommu-cells series [4].
>>
>> Changes since v1:
>>        - Split patches 2/7 [2] and 3/7 [3] out into this standalone 
>> series.
>>        - Dropped the callback (of_map_id_cb / of_map_id_arg) entirely.
>>        - Replaced with a next_offset iterator on of_map_iommu_id()
>>          only; of_map_id() public API is unchanged.
>>        - of_iommu_configure_dev_id() now loops explicitly; no
>>          bus-type heuristic (dev_is_platform()) needed.
>>
>> [1] https://lore.kernel.org/all/20260126-kaanapali-iris-v1-0- 
>> e2646246bfc1@oss.qualcomm.com/
>> [2] https://lore.kernel.org/all/20260126-kaanapali-iris-v1-2- 
>> e2646246bfc1@oss.qualcomm.com/
>> [3] https://lore.kernel.org/all/20260126-kaanapali-iris-v1-3- 
>> e2646246bfc1@oss.qualcomm.com/
>> [4] https://lore.kernel.org/all/ce25b963-0e8e-4411- 
>> a406-7b466eadb1f9@oss.qualcomm.com/
>>
>> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
>> ---
>>   drivers/iommu/of_iommu.c              | 20 +++++++----
>>   drivers/of/base.c                     | 65 +++++++++++++++++++++++++ 
>> +++++-----
>>   drivers/pci/controller/dwc/pci-imx6.c |  2 +-
>>   drivers/pci/controller/pcie-apple.c   |  2 +-
>>   drivers/xen/grant-dma-ops.c           |  2 +-
>>   include/linux/of.h                    |  4 +--
>>   6 files changed, 75 insertions(+), 20 deletions(-)
>>
>> diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
>> index a18bb60f6f3d..947eedd9a88b 100644
>> --- a/drivers/iommu/of_iommu.c
>> +++ b/drivers/iommu/of_iommu.c
>> @@ -46,14 +46,22 @@ static int of_iommu_configure_dev_id(struct 
>> device_node *master_np,
>>                        const u32 *id)
>>   {
>>       struct of_phandle_args iommu_spec = {};
>> -    int err;
>> +    int offset = 0, err;
>> +    bool found = false;
>> -    err = of_map_iommu_id(master_np, *id, &iommu_spec);
>> -    if (err)
>> -        return err;
>> +    while (!(err = of_map_iommu_id(master_np, *id, &iommu_spec, 
>> &offset))) {
>> +        err = of_iommu_xlate(dev, &iommu_spec);
>> +        of_node_put(iommu_spec.np);
>> +        iommu_spec.np = NULL;
>> +        if (err)
>> +            return err;
>> +        found = true;
>> +    }
>> +
>> +    /* -ENODEV means all entries exhausted; success if at least one 
>> was processed */
>> +    if (err == -ENODEV && found)
>> +        return 0;
>> -    err = of_iommu_xlate(dev, &iommu_spec);
>> -    of_node_put(iommu_spec.np);
>>       return err;
>>   }
>> diff --git a/drivers/of/base.c b/drivers/of/base.c
>> index 9c44eb6d445d..71175e670757 100644
>> --- a/drivers/of/base.c
>> +++ b/drivers/of/base.c
>> @@ -2146,13 +2146,13 @@ static bool of_check_bad_map(const __be32 
>> *map, int len)
>>    *
>>    * Return: 0 on success or a standard error code on failure.
>>    */
>> -int of_map_id(const struct device_node *np, u32 id,
>> -           const char *map_name, const char *cells_name,
>> -           const char *map_mask_name,
>> -           struct of_phandle_args *arg)
>> +static int of_map_id_next(const struct device_node *np, u32 id,
>> +              const char *map_name, const char *cells_name,
>> +              const char *map_mask_name,
>> +              struct of_phandle_args *arg, int *next_offset)
>>   {
>>       u32 map_mask, masked_id;
>> -    int map_bytes, map_len, offset = 0;
>> +    int map_bytes, map_len, offset = next_offset ? *next_offset : 0;
>>       bool bad_map = false;
>>       const __be32 *map = NULL;
>> @@ -2161,7 +2161,7 @@ int of_map_id(const struct device_node *np, u32 id,
>>       map = of_get_property(np, map_name, &map_bytes);
>>       if (!map) {
>> -        if (arg->np)
>> +        if (arg->np || next_offset)
>>               return -ENODEV;
>>           /* Otherwise, no map implies no translation */
>>           arg->args[0] = id;
>> @@ -2262,9 +2262,16 @@ int of_map_id(const struct device_node *np, u32 
>> id,
>>           pr_debug("%pOF: %s, using mask %08x, id-base: %08x, out- 
>> base: %08x, length: %08x, id: %08x -> %08x\n",
>>               np, map_name, map_mask, id_base, be32_to_cpup(out_base),
>>               id_len, id, id_off + be32_to_cpup(out_base));
>> +
>> +        if (next_offset)
>> +            *next_offset = offset;    /* caller resumes from here */
>>           return 0;
>>       }
>> +    /* no (more) matches found in the map */
>> +    if (next_offset)
>> +        return -ENODEV;
>> +
>>       pr_info("%pOF: no %s translation for id 0x%x on %pOF\n", np, 
>> map_name,
>>           id, arg->np);
>> @@ -2276,6 +2283,38 @@ int of_map_id(const struct device_node *np, u32 
>> id,
>>       pr_err("%pOF: Error: Bad %s length: %d\n", np, map_name, 
>> map_bytes);
>>       return -EINVAL;
>>   }
>> +
>> +/**
>> + * of_map_id - Translate an ID through a downstream mapping.
>> + * @np: root complex device node.
>> + * @id: device ID to map.
>> + * @map_name: property name of the map to use.
>> + * @cells_name: property name of target specifier cells.
>> + * @map_mask_name: optional property name of the mask to use.
>> + * @arg: pointer to a &struct of_phandle_args. On input, @arg->np may be
>> + *    set to a target device node to match, or NULL to match any. On
>> + *    success, @arg->np will be set to the matched target node (with a
>> + *    reference held), @arg->args_count will be set to the number of
>> + *    output specifier cells as defined by @cells_name in the target 
>> node,
>> + *    and @arg->args[0..args_count-1] will contain the translated output
>> + *    specifier values.
>> + *
>> + * Given a device ID, look up the appropriate implementation-defined
>> + * platform ID and/or the target device which receives transactions 
>> on that
>> + * ID, as per the "iommu-map" and "msi-map" bindings. If @arg->np 
>> points to
>> + * a non-NULL device node, only entries targeting that node will be 
>> matched;
>> + * if it is NULL, it will receive the device node of the first matching
>> + * target phandle, with a reference held.
>> + *
>> + * Return: 0 on success or a standard error code on failure.
>> + */
>> +int of_map_id(const struct device_node *np, u32 id,
>> +          const char *map_name, const char *cells_name,
>> +          const char *map_mask_name,
>> +          struct of_phandle_args *arg)
>> +{
>> +    return of_map_id_next(np, id, map_name, cells_name, 
>> map_mask_name, arg, NULL);
>> +}
>>   EXPORT_SYMBOL_GPL(of_map_id);
>>   /**
>> @@ -2285,15 +2324,23 @@ EXPORT_SYMBOL_GPL(of_map_id);
>>    * @arg: pointer to a &struct of_phandle_args for the result. On 
>> success,
>>    *    @arg->np holds a reference to the target node that the caller 
>> must
>>    *    release with of_node_put().
>> + * @next_offset: if non-NULL, on success it is set to the map offset 
>> just
>> + *    past the matched entry. Pass this value back on the next call to
>> + *    resume scanning from where the previous call left off, allowing 
>> all
>> + *    matching entries for the same @id to be iterated. Pass NULL (or a
>> + *    pointer to 0) to find only the first match.
>>    *
>> - * Convenience wrapper around of_map_id() using "iommu-map" and 
>> "iommu-map-mask".
>> + * Wrapper around the internal iommu-map scanner using "iommu-map" and
>> + * "iommu-map-mask". When @next_offset is non-NULL, returns -ENODEV once
>> + * all matching entries have been exhausted.
>>    *
>>    * Return: 0 on success or a standard error code on failure.
>>    */
>>   int of_map_iommu_id(const struct device_node *np, u32 id,
>> -            struct of_phandle_args *arg)
>> +            struct of_phandle_args *arg, int *next_offset)
>>   {
>> -    return of_map_id(np, id, "iommu-map", "#iommu-cells", "iommu-map- 
>> mask", arg);
>> +    return of_map_id_next(np, id, "iommu-map", "#iommu-cells",
>> +                  "iommu-map-mask", arg, next_offset);
>>   }
>>   EXPORT_SYMBOL_GPL(of_map_iommu_id);
>> diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/ 
>> controller/dwc/pci-imx6.c
>> index 5f8a11774eb5..0d7f5e6d037a 100644
>> --- a/drivers/pci/controller/dwc/pci-imx6.c
>> +++ b/drivers/pci/controller/dwc/pci-imx6.c
>> @@ -1146,7 +1146,7 @@ static int imx_pcie_add_lut_by_rid(struct 
>> imx_pcie *imx_pcie, u32 rid)
>>       u32 sid = 0;
>>       target = NULL;
>> -    err_i = of_map_iommu_id(dev->of_node, rid, &iommu_spec);
>> +    err_i = of_map_iommu_id(dev->of_node, rid, &iommu_spec, NULL);
>>       if (!err_i) {
>>           target = iommu_spec.np;
>>           sid_i = iommu_spec.args[0];
>> diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/ 
>> controller/pcie-apple.c
>> index 2e86f8fd300b..c780e3f9d14d 100644
>> --- a/drivers/pci/controller/pcie-apple.c
>> +++ b/drivers/pci/controller/pcie-apple.c
>> @@ -765,7 +765,7 @@ static int apple_pcie_enable_device(struct 
>> pci_host_bridge *bridge, struct pci_d
>>       dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
>>           pci_name(pdev->bus->self), port->idx);
>> -    err = of_map_iommu_id(port->pcie->dev->of_node, rid, &iommu_spec);
>> +    err = of_map_iommu_id(port->pcie->dev->of_node, rid, &iommu_spec, 
>> NULL);
>>       if (err)
>>           return err;
>> diff --git a/drivers/xen/grant-dma-ops.c b/drivers/xen/grant-dma-ops.c
>> index 36547d7cf1d6..062beb5825f5 100644
>> --- a/drivers/xen/grant-dma-ops.c
>> +++ b/drivers/xen/grant-dma-ops.c
>> @@ -325,7 +325,7 @@ static int xen_dt_grant_init_backend_domid(struct 
>> device *dev,
>>           struct pci_dev *pdev = to_pci_dev(dev);
>>           u32 rid = PCI_DEVID(pdev->bus->number, pdev->devfn);
>> -        if (of_map_iommu_id(np, rid, &iommu_spec)) {
>> +        if (of_map_iommu_id(np, rid, &iommu_spec, NULL)) {
>>               dev_dbg(dev, "Cannot translate ID\n");
>>               return -ESRCH;
>>           }
>> diff --git a/include/linux/of.h b/include/linux/of.h
>> index 953f2dbe0e86..990849f00e74 100644
>> --- a/include/linux/of.h
>> +++ b/include/linux/of.h
>> @@ -467,7 +467,7 @@ int of_map_id(const struct device_node *np, u32 id,
>>              struct of_phandle_args *arg);
>>   int of_map_iommu_id(const struct device_node *np, u32 id,
>> -            struct of_phandle_args *arg);
>> +            struct of_phandle_args *arg, int *next_offset);
>>   int of_map_msi_id(const struct device_node *np, u32 id,
>>             struct of_phandle_args *arg);
>> @@ -943,7 +943,7 @@ static inline int of_map_id(const struct 
>> device_node *np, u32 id,
>>   }
>>   static inline int of_map_iommu_id(const struct device_node *np, u32 id,
>> -                  struct of_phandle_args *arg)
>> +                  struct of_phandle_args *arg, int *next_offset)
>>   {
>>       return -EINVAL;
>>   }
>>
>> ---
>> base-commit: 9e94742cffb7541f55fa904a40c1ca9d836d303d
>> change-id: 20260315-iommu_multi_map-8c9b78490ace
>>
>> Best regards,
> 



From xen-devel-bounces@lists.xenproject.org Tue Mar 17 21:21:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Mar 2026 21:21:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256238.1550939 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2bqz-0006eT-KT; Tue, 17 Mar 2026 21:21:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256238.1550939; Tue, 17 Mar 2026 21: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 1w2bqz-0006eM-Gc; Tue, 17 Mar 2026 21:21:29 +0000
Received: by outflank-mailman (input) for mailman id 1256238;
 Tue, 17 Mar 2026 21:21: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=qk6r=BR=arm.com=jeremy.linton@srs-se1.protection.inumbo.net>)
 id 1w2bqy-0006eG-8J
 for xen-devel@lists.xenproject.org; Tue, 17 Mar 2026 21:21:28 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 3e3ec424-2247-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Mar 2026 22:21: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 1E1F81477;
 Tue, 17 Mar 2026 14:21:14 -0700 (PDT)
Received: from [172.27.42.179] (usa-sjc-mx-foss1.foss.arm.com [172.31.20.19])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id
 5E1313F73B; Tue, 17 Mar 2026 14:21:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3e3ec424-2247-11f1-9ccf-f158ae23cfc8
Message-ID: <48f70869-6628-46ec-9ab1-cb3fefa99ba2@arm.com>
Date: Tue, 17 Mar 2026 16:21:14 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 1/3] ACPI: Refactor get_acpi_id_for_cpu() to
 acpi_get_cpu_uid() on non-x86
To: Chengwen Feng <fengchengwen@huawei.com>,
 Bjorn Helgaas <bhelgaas@google.com>,
 Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>,
 "Rafael J . Wysocki" <rafael@kernel.org>
Cc: Jonathan Corbet <corbet@lwn.net>, Shuah Khan <skhan@linuxfoundation.org>,
 Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>,
 Paul Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>,
 Albert Ou <aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H . Peter Anvin" <hpa@zytor.com>,
 Juergen Gross <jgross@suse.com>, Sohil Mehta <sohil.mehta@intel.com>,
 Ilkka Koskinen <ilkka@os.amperecomputing.com>,
 Robin Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>,
 Besar Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>,
 Wei Huang <wei.huang2@amd.com>,
 Andy Gospodarek <andrew.gospodarek@broadcom.com>,
 Somnath Kotur <somnath.kotur@broadcom.com>, kees@kernel.org,
 punit.agrawal@oss.qualcomm.com, guohanjun@huawei.com,
 suzuki.poulose@arm.com, ryan.roberts@arm.com, chenl311@chinatelecom.cn,
 masahiroy@kernel.org, wangyuquan1236@phytium.com.cn,
 anshuman.khandual@arm.com, heinrich.schuchardt@canonical.com,
 Eric.VanTassell@amd.com, jonathan.cameron@huawei.com,
 wangzhou1@hisilicon.com, wanghuiqiang@huawei.com, liuyonglong@huawei.com,
 linux-pci@vger.kernel.org, linux-doc@vger.kernel.org,
 linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
 loongarch@lists.linux.dev, linux-riscv@lists.infradead.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-perf-users@vger.kernel.org, stable@vger.kernel.org
References: <20260313022144.40942-1-fengchengwen@huawei.com>
 <20260313022144.40942-2-fengchengwen@huawei.com>
Content-Language: en-US
From: Jeremy Linton <jeremy.linton@arm.com>
In-Reply-To: <20260313022144.40942-2-fengchengwen@huawei.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 3/12/26 9:21 PM, Chengwen Feng wrote:
> Unify CPU ACPI ID retrieval interface across architectures by
> refactoring get_acpi_id_for_cpu() to acpi_get_cpu_uid() on
> arm64/riscv/loongarch:
> - Add input parameter validation
> - Adjust interface to int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
>    (old: u32 get_acpi_id_for_cpu(unsigned int cpu), no input check)
> 
> This refactoring (not a pure rename) enhances interface robustness while
> preparing for consistent ACPI Processor UID retrieval across all
> ACPI-enabled platforms. Valid inputs retain original behavior.
> 
> Note: Move the ARM64-specific get_cpu_for_acpi_id() implementation to
>        arch/arm64/kernel/acpi_numa.c to fix compilation errors from
>        circular header dependencies introduced by the rename.

I moved get_cpu_for_acpi_id() into arm64/kernel/acpi.c, and granted 
didn't test a wide range of configs, but i'm not seeing the circular 
dependency, what is causing that?

> 
> Cc: stable@vger.kernel.org
> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
> Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
> ---
>   arch/arm64/include/asm/acpi.h      | 16 +---------
>   arch/arm64/kernel/acpi.c           | 16 ++++++++++
>   arch/arm64/kernel/acpi_numa.c      | 14 +++++++++
>   arch/loongarch/include/asm/acpi.h  |  5 ---
>   arch/loongarch/kernel/acpi.c       |  9 ++++++
>   arch/riscv/include/asm/acpi.h      |  4 ---
>   arch/riscv/kernel/acpi.c           | 16 ++++++++++
>   arch/riscv/kernel/acpi_numa.c      |  9 ++++--
>   drivers/acpi/pptt.c                | 50 ++++++++++++++++++++++--------
>   drivers/acpi/riscv/rhct.c          |  7 ++++-
>   drivers/perf/arm_cspmu/arm_cspmu.c |  6 ++--
>   include/linux/acpi.h               | 13 ++++++++
>   12 files changed, 122 insertions(+), 43 deletions(-)
> 
> diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
> index c07a58b96329..106a08556cbf 100644
> --- a/arch/arm64/include/asm/acpi.h
> +++ b/arch/arm64/include/asm/acpi.h
> @@ -114,22 +114,8 @@ static inline bool acpi_has_cpu_in_madt(void)
>   }
>   
>   struct acpi_madt_generic_interrupt *acpi_cpu_get_madt_gicc(int cpu);
> -static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
> -{
> -	return	acpi_cpu_get_madt_gicc(cpu)->uid;
> -}
> -
> -static inline int get_cpu_for_acpi_id(u32 uid)
> -{
> -	int cpu;
> -
> -	for (cpu = 0; cpu < nr_cpu_ids; cpu++)
> -		if (acpi_cpu_get_madt_gicc(cpu) &&
> -		    uid == get_acpi_id_for_cpu(cpu))
> -			return cpu;
>   
> -	return -EINVAL;
> -}
> +int get_cpu_for_acpi_id(u32 uid);
>   
>   static inline void arch_fix_phys_package_id(int num, u32 slot) { }
>   void __init acpi_init_cpus(void);
> diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
> index af90128cfed5..f3866606fc46 100644
> --- a/arch/arm64/kernel/acpi.c
> +++ b/arch/arm64/kernel/acpi.c
> @@ -458,3 +458,19 @@ int acpi_unmap_cpu(int cpu)
>   }
>   EXPORT_SYMBOL(acpi_unmap_cpu);
>   #endif /* CONFIG_ACPI_HOTPLUG_CPU */
> +
> +int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
> +{
> +	struct acpi_madt_generic_interrupt *gicc;
> +
> +	if (cpu >= nr_cpu_ids)
> +		return -EINVAL;
I think this should be cpu_possible() because we have a number of 
for_each_possible() calls that end up in here and AFAIK nr_cpu_ids can 
be more restrictive than the possible list.> +
> +	gicc = acpi_cpu_get_madt_gicc(cpu);
> +	if (!gicc)
> +		return -ENODEV;
So, on arm64, I didn't think it was possible to have a logical cpu 
lookup that didn't map to a gicc uid, because the logical core couldn't 
exist otherwise and (AFAIK) we don't have holes in the possible cpu 
mask. Once you know the logical core is less than nr_cpu_ids it must 
have a MADT mapping. So check this is redundant too, no?

But, if its possible to call this with an invalid logical cpu then we 
probably want to know that, so nr_cpu_ids/cpu_possible() check should 
have pr_warn_once() because there is a bug somewhere, particularly from 
all the pptt calls below where I guess there is an implication there is 
an ID mismatch between the MADT and the PPTT or simply that the user has 
clamped max cpus less than the for_each_possible() calls in the pptt/etc 
code.


> +
> +	*uid = gicc->uid;
> +	return 0;
> +}
> +EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
> diff --git a/arch/arm64/kernel/acpi_numa.c b/arch/arm64/kernel/acpi_numa.c
> index 2465f291c7e1..41d1e46a4338 100644
> --- a/arch/arm64/kernel/acpi_numa.c
> +++ b/arch/arm64/kernel/acpi_numa.c
> @@ -34,6 +34,20 @@ int __init acpi_numa_get_nid(unsigned int cpu)
>   	return acpi_early_node_map[cpu];
>   }
>   
> +int get_cpu_for_acpi_id(u32 uid)
> +{
> +	u32 cpu_uid;
> +	int ret;
> +
> +	for (int cpu = 0; cpu < nr_cpu_ids; cpu++) {
> +		ret = acpi_get_cpu_uid(cpu, &cpu_uid);
This change is redundant, no? Your walking a limited list of possible 
CPUs that have GICC entries and checking to see if one of the known 
logical cores has a matching ACPI id. AKA you can't have an invalid 
logical core here, so the previous call must have a valid acpi id. But 
at the same time so was the acpi_cpu_get_madt_gicc() check in there 
before, which was probably left over from when the tables were being 
mapped rather than cached.

> +		if (ret == 0 && uid == cpu_uid)
> +			return cpu;
> +	}
> +
> +	return -EINVAL;
> +}
> +
I didn't actually manage to hit the case here that keeps this from 
compiling cleanly in acpi.c above if its placed immediately following 
acpi_get_cpu_uid(). IMHO, these two functions are kept close to each 
other since they are so conceptually related.

>   static int __init acpi_parse_gicc_pxm(union acpi_subtable_headers *header,
>   				      const unsigned long end)
>   {
> diff --git a/arch/loongarch/include/asm/acpi.h b/arch/loongarch/include/asm/acpi.h
> index 7376840fa9f7..eda9d4d0a493 100644
> --- a/arch/loongarch/include/asm/acpi.h
> +++ b/arch/loongarch/include/asm/acpi.h
> @@ -40,11 +40,6 @@ extern struct acpi_madt_core_pic acpi_core_pic[MAX_CORE_PIC];
>   
>   extern int __init parse_acpi_topology(void);
>   
> -static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
> -{
> -	return acpi_core_pic[cpu_logical_map(cpu)].processor_id;
> -}
> -
>   #endif /* !CONFIG_ACPI */
>   
>   #define ACPI_TABLE_UPGRADE_MAX_PHYS ARCH_LOW_ADDRESS_LIMIT
> diff --git a/arch/loongarch/kernel/acpi.c b/arch/loongarch/kernel/acpi.c
> index 1367ca759468..058f0dbe8e8f 100644
> --- a/arch/loongarch/kernel/acpi.c
> +++ b/arch/loongarch/kernel/acpi.c
> @@ -385,3 +385,12 @@ int acpi_unmap_cpu(int cpu)
>   EXPORT_SYMBOL(acpi_unmap_cpu);
>   
>   #endif /* CONFIG_ACPI_HOTPLUG_CPU */
> +
> +int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
> +{
> +	if (cpu >= nr_cpu_ids)
> +		return -EINVAL;
> +	*uid = acpi_core_pic[cpu_logical_map(cpu)].processor_id;
> +	return 0;
> +}
> +EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
> diff --git a/arch/riscv/include/asm/acpi.h b/arch/riscv/include/asm/acpi.h
> index 6e13695120bc..26ab37c171bc 100644
> --- a/arch/riscv/include/asm/acpi.h
> +++ b/arch/riscv/include/asm/acpi.h
> @@ -61,10 +61,6 @@ static inline void arch_fix_phys_package_id(int num, u32 slot) { }
>   
>   void acpi_init_rintc_map(void);
>   struct acpi_madt_rintc *acpi_cpu_get_madt_rintc(int cpu);
> -static inline u32 get_acpi_id_for_cpu(int cpu)
> -{
> -	return acpi_cpu_get_madt_rintc(cpu)->uid;
> -}
>   
>   int acpi_get_riscv_isa(struct acpi_table_header *table,
>   		       unsigned int cpu, const char **isa);
> diff --git a/arch/riscv/kernel/acpi.c b/arch/riscv/kernel/acpi.c
> index 71698ee11621..322ea92aa39f 100644
> --- a/arch/riscv/kernel/acpi.c
> +++ b/arch/riscv/kernel/acpi.c
> @@ -337,3 +337,19 @@ int raw_pci_write(unsigned int domain, unsigned int bus,
>   }
>   
>   #endif	/* CONFIG_PCI */
> +
> +int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
> +{
> +	struct acpi_madt_rintc *rintc;
> +
> +	if (cpu >= nr_cpu_ids)
> +		return -EINVAL;
> +
> +	rintc = acpi_cpu_get_madt_rintc(cpu);
> +	if (!rintc)
> +		return -ENODEV;
> +
> +	*uid = rintc->uid;
> +	return 0;
> +}
> +EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
> diff --git a/arch/riscv/kernel/acpi_numa.c b/arch/riscv/kernel/acpi_numa.c
> index 130769e3a99c..6a2d4289f806 100644
> --- a/arch/riscv/kernel/acpi_numa.c
> +++ b/arch/riscv/kernel/acpi_numa.c
> @@ -37,11 +37,14 @@ static int __init acpi_numa_get_nid(unsigned int cpu)
>   
>   static inline int get_cpu_for_acpi_id(u32 uid)
>   {
> -	int cpu;
> +	u32 cpu_uid;
> +	int ret;
>   
> -	for (cpu = 0; cpu < nr_cpu_ids; cpu++)
> -		if (uid == get_acpi_id_for_cpu(cpu))
> +	for (int cpu = 0; cpu < nr_cpu_ids; cpu++) {
> +		ret = acpi_get_cpu_uid(cpu, &cpu_uid);
> +		if (ret == 0 && uid == cpu_uid)
>   			return cpu;
> +	}
>   
>   	return -EINVAL;
>   }
> diff --git a/drivers/acpi/pptt.c b/drivers/acpi/pptt.c
> index de5f8c018333..7bd5bc1f225a 100644
> --- a/drivers/acpi/pptt.c
> +++ b/drivers/acpi/pptt.c
> @@ -459,11 +459,14 @@ static void cache_setup_acpi_cpu(struct acpi_table_header *table,
>   {
>   	struct acpi_pptt_cache *found_cache;
>   	struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
> -	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
> +	u32 acpi_cpu_id;
>   	struct cacheinfo *this_leaf;
>   	unsigned int index = 0;
>   	struct acpi_pptt_processor *cpu_node = NULL;
>   
> +	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
> +		return;
> +
>   	while (index < get_cpu_cacheinfo(cpu)->num_leaves) {
>   		this_leaf = this_cpu_ci->info_list + index;
>   		found_cache = acpi_find_cache_node(table, acpi_cpu_id,
> @@ -546,7 +549,10 @@ static int topology_get_acpi_cpu_tag(struct acpi_table_header *table,
>   				     unsigned int cpu, int level, int flag)
>   {
>   	struct acpi_pptt_processor *cpu_node;
> -	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
> +	u32 acpi_cpu_id;
> +
> +	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
> +		return -ENOENT;
>   
>   	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
>   	if (cpu_node) {
> @@ -614,18 +620,22 @@ static int find_acpi_cpu_topology_tag(unsigned int cpu, int level, int flag)
>    *
>    * Check the node representing a CPU for a given flag.
>    *
> - * Return: -ENOENT if the PPTT doesn't exist, the CPU cannot be found or
> - *	   the table revision isn't new enough.
> + * Return: -ENOENT if can't get CPU's ACPI Processor UID, the PPTT doesn't
> + *	   exist, the CPU cannot be found or the table revision isn't new
> + *	   enough.
>    *	   1, any passed flag set
>    *	   0, flag unset
>    */
>   static int check_acpi_cpu_flag(unsigned int cpu, int rev, u32 flag)
>   {
>   	struct acpi_table_header *table;
> -	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
> +	u32 acpi_cpu_id;
>   	struct acpi_pptt_processor *cpu_node = NULL;
>   	int ret = -ENOENT;
>   
> +	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
> +		return -ENOENT;
> +
>   	table = acpi_get_pptt();
>   	if (!table)
>   		return -ENOENT;
> @@ -651,7 +661,8 @@ static int check_acpi_cpu_flag(unsigned int cpu, int rev, u32 flag)
>    * in the PPTT. Errors caused by lack of a PPTT table, or otherwise, return 0
>    * indicating we didn't find any cache levels.
>    *
> - * Return: -ENOENT if no PPTT table or no PPTT processor struct found.
> + * Return: -ENOENT if no PPTT table, can't get CPU's ACPI Process UID or no PPTT
> + *	   processor struct found.
>    *	   0 on success.
>    */
>   int acpi_get_cache_info(unsigned int cpu, unsigned int *levels,
> @@ -671,7 +682,9 @@ int acpi_get_cache_info(unsigned int cpu, unsigned int *levels,
>   
>   	pr_debug("Cache Setup: find cache levels for CPU=%d\n", cpu);
>   
> -	acpi_cpu_id = get_acpi_id_for_cpu(cpu);
> +	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id))
> +		return -ENOENT;
> +
>   	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
>   	if (!cpu_node)
>   		return -ENOENT;
> @@ -780,8 +793,9 @@ int find_acpi_cpu_topology_package(unsigned int cpu)
>    * It may not exist in single CPU systems. In simple multi-CPU systems,
>    * it may be equal to the package topology level.
>    *
> - * Return: -ENOENT if the PPTT doesn't exist, the CPU cannot be found
> - * or there is no toplogy level above the CPU..
> + * Return: -ENOENT if the PPTT doesn't exist, can't get CPU's ACPI
> + * Processor UID, the CPU cannot be found or there is no toplogy level
> + * above the CPU.
>    * Otherwise returns a value which represents the package for this CPU.
>    */
>   
> @@ -797,7 +811,9 @@ int find_acpi_cpu_topology_cluster(unsigned int cpu)
>   	if (!table)
>   		return -ENOENT;
>   
> -	acpi_cpu_id = get_acpi_id_for_cpu(cpu);
> +	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
> +		return -ENOENT;
> +
>   	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
>   	if (!cpu_node || !cpu_node->parent)
>   		return -ENOENT;
> @@ -872,7 +888,9 @@ static void acpi_pptt_get_child_cpus(struct acpi_table_header *table_hdr,
>   	cpumask_clear(cpus);
>   
>   	for_each_possible_cpu(cpu) {
> -		acpi_id = get_acpi_id_for_cpu(cpu);
> +		if (acpi_get_cpu_uid(cpu, &acpi_id) != 0)
> +			continue;
> +
>   		cpu_node = acpi_find_processor_node(table_hdr, acpi_id);
>   
>   		while (cpu_node) {
> @@ -966,10 +984,13 @@ int find_acpi_cache_level_from_id(u32 cache_id)
>   	for_each_possible_cpu(cpu) {
>   		bool empty;
>   		int level = 1;
> -		u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
> +		u32 acpi_cpu_id;
>   		struct acpi_pptt_cache *cache;
>   		struct acpi_pptt_processor *cpu_node;
>   
> +		if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
> +			continue;
> +
>   		cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
>   		if (!cpu_node)
>   			continue;
> @@ -1030,10 +1051,13 @@ int acpi_pptt_get_cpumask_from_cache_id(u32 cache_id, cpumask_t *cpus)
>   	for_each_possible_cpu(cpu) {
>   		bool empty;
>   		int level = 1;
> -		u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
> +		u32 acpi_cpu_id;
>   		struct acpi_pptt_cache *cache;
>   		struct acpi_pptt_processor *cpu_node;
>   
> +		if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
> +			continue;
> +
>   		cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
>   		if (!cpu_node)
>   			continue;
> diff --git a/drivers/acpi/riscv/rhct.c b/drivers/acpi/riscv/rhct.c
> index caa2c16e1697..8f3f38c64a88 100644
> --- a/drivers/acpi/riscv/rhct.c
> +++ b/drivers/acpi/riscv/rhct.c
> @@ -44,10 +44,15 @@ int acpi_get_riscv_isa(struct acpi_table_header *table, unsigned int cpu, const
>   	struct acpi_rhct_isa_string *isa_node;
>   	struct acpi_table_rhct *rhct;
>   	u32 *hart_info_node_offset;
> -	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
> +	u32 acpi_cpu_id;
> +	int ret;
>   
>   	BUG_ON(acpi_disabled);
>   
> +	ret = acpi_get_cpu_uid(cpu, &acpi_cpu_id);
> +	if (ret != 0)
> +		return ret;
> +
>   	if (!table) {
>   		rhct = acpi_get_rhct();
>   		if (!rhct)
> diff --git a/drivers/perf/arm_cspmu/arm_cspmu.c b/drivers/perf/arm_cspmu/arm_cspmu.c
> index 34430b68f602..ed72c3d1f796 100644
> --- a/drivers/perf/arm_cspmu/arm_cspmu.c
> +++ b/drivers/perf/arm_cspmu/arm_cspmu.c
> @@ -1107,15 +1107,17 @@ static int arm_cspmu_acpi_get_cpus(struct arm_cspmu *cspmu)
>   {
>   	struct acpi_apmt_node *apmt_node;
>   	int affinity_flag;
> +	u32 cpu_uid;
>   	int cpu;
> +	int ret;
>   
>   	apmt_node = arm_cspmu_apmt_node(cspmu->dev);
>   	affinity_flag = apmt_node->flags & ACPI_APMT_FLAGS_AFFINITY;
>   
>   	if (affinity_flag == ACPI_APMT_FLAGS_AFFINITY_PROC) {
>   		for_each_possible_cpu(cpu) {
> -			if (apmt_node->proc_affinity ==
> -			    get_acpi_id_for_cpu(cpu)) {
> +			ret = acpi_get_cpu_uid(cpu, &cpu_uid);
> +			if (ret == 0 && apmt_node->proc_affinity == cpu_uid) {
>   				cpumask_set_cpu(cpu, &cspmu->associated_cpus);
>   				break;
>   			}
> diff --git a/include/linux/acpi.h b/include/linux/acpi.h
> index 4d2f0bed7a06..035094a55f18 100644
> --- a/include/linux/acpi.h
> +++ b/include/linux/acpi.h
> @@ -324,6 +324,19 @@ int acpi_unmap_cpu(int cpu);
>   
>   acpi_handle acpi_get_processor_handle(int cpu);
>   
> +#ifndef CONFIG_X86
> +/*
> + * acpi_get_cpu_uid() - Get ACPI Processor UID of a specified CPU from MADT table
> + * @cpu: Logical CPU number (0-based)
> + * @uid: Pointer to store the ACPI Processor UID (valid only on successful return)
> + *
> + * Return: 0 on successful retrieval (the ACPI Processor ID is stored in *uid);
> + *         -EINVAL if the CPU number is invalid or out of range;
> + *         -ENODEV if the ACPI Processor UID for the specified CPU is not found.
> + */
> +int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
> +#endif
> +
>   #ifdef CONFIG_ACPI_HOTPLUG_IOAPIC
>   int acpi_get_ioapic_id(acpi_handle handle, u32 gsi_base, u64 *phys_addr);
>   #endif



From xen-devel-bounces@lists.xenproject.org Tue Mar 17 21:38:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Mar 2026 21:38:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256247.1550948 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2c7G-0008MI-VX; Tue, 17 Mar 2026 21:38:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256247.1550948; Tue, 17 Mar 2026 21:38: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 1w2c7G-0008MB-RL; Tue, 17 Mar 2026 21:38:18 +0000
Received: by outflank-mailman (input) for mailman id 1256247;
 Tue, 17 Mar 2026 21: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=qk6r=BR=arm.com=jeremy.linton@srs-se1.protection.inumbo.net>)
 id 1w2c7F-0008M5-LG
 for xen-devel@lists.xenproject.org; Tue, 17 Mar 2026 21:38:17 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 9a132e3a-2249-11f1-b164-2bf370ae4941;
 Tue, 17 Mar 2026 22:38: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 419131477;
 Tue, 17 Mar 2026 14:38:07 -0700 (PDT)
Received: from [172.27.42.179] (usa-sjc-mx-foss1.foss.arm.com [172.31.20.19])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id
 E05563F73B; Tue, 17 Mar 2026 14:38:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9a132e3a-2249-11f1-b164-2bf370ae4941
Message-ID: <e4b0aefa-7108-47b4-ad5d-d62d385b8f33@arm.com>
Date: Tue, 17 Mar 2026 16:38:11 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 1/3] ACPI: Refactor get_acpi_id_for_cpu() to
 acpi_get_cpu_uid() on non-x86
To: Chengwen Feng <fengchengwen@huawei.com>,
 Bjorn Helgaas <bhelgaas@google.com>,
 Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>,
 "Rafael J . Wysocki" <rafael@kernel.org>
Cc: punit.agrawal@oss.qualcomm.com, guohanjun@huawei.com,
 suzuki.poulose@arm.com, ryan.roberts@arm.com, chenl311@chinatelecom.cn,
 masahiroy@kernel.org, wangyuquan1236@phytium.com.cn,
 anshuman.khandual@arm.com, heinrich.schuchardt@canonical.com,
 Eric.VanTassell@amd.com, jonathan.cameron@huawei.com,
 wangzhou1@hisilicon.com, wanghuiqiang@huawei.com, liuyonglong@huawei.com,
 linux-pci@vger.kernel.org, linux-doc@vger.kernel.org,
 linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
 loongarch@lists.linux.dev, linux-riscv@lists.infradead.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-perf-users@vger.kernel.org, stable@vger.kernel.org
References: <20260313022144.40942-1-fengchengwen@huawei.com>
 <20260313022144.40942-2-fengchengwen@huawei.com>
Content-Language: en-US
From: Jeremy Linton <jeremy.linton@arm.com>
In-Reply-To: <20260313022144.40942-2-fengchengwen@huawei.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

Lets try this again, since the last one looks like it got caught in the 
moderation system and wasn't quite right anyway.

On 3/12/26 9:21 PM, Chengwen Feng wrote:
> Unify CPU ACPI ID retrieval interface across architectures by
> refactoring get_acpi_id_for_cpu() to acpi_get_cpu_uid() on
> arm64/riscv/loongarch:
> - Add input parameter validation
> - Adjust interface to int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
>    (old: u32 get_acpi_id_for_cpu(unsigned int cpu), no input check)
> 
> This refactoring (not a pure rename) enhances interface robustness while
> preparing for consistent ACPI Processor UID retrieval across all
> ACPI-enabled platforms. Valid inputs retain original behavior.
> 
> Note: Move the ARM64-specific get_cpu_for_acpi_id() implementation to
>        arch/arm64/kernel/acpi_numa.c to fix compilation errors from
>        circular header dependencies introduced by the rename.
> 
> Cc: stable@vger.kernel.org
> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
> Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
> ---
>   arch/arm64/include/asm/acpi.h      | 16 +---------
>   arch/arm64/kernel/acpi.c           | 16 ++++++++++
>   arch/arm64/kernel/acpi_numa.c      | 14 +++++++++
>   arch/loongarch/include/asm/acpi.h  |  5 ---
>   arch/loongarch/kernel/acpi.c       |  9 ++++++
>   arch/riscv/include/asm/acpi.h      |  4 ---
>   arch/riscv/kernel/acpi.c           | 16 ++++++++++
>   arch/riscv/kernel/acpi_numa.c      |  9 ++++--
>   drivers/acpi/pptt.c                | 50 ++++++++++++++++++++++--------
>   drivers/acpi/riscv/rhct.c          |  7 ++++-
>   drivers/perf/arm_cspmu/arm_cspmu.c |  6 ++--
>   include/linux/acpi.h               | 13 ++++++++
>   12 files changed, 122 insertions(+), 43 deletions(-)
> 
> diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
> index c07a58b96329..106a08556cbf 100644
> --- a/arch/arm64/include/asm/acpi.h
> +++ b/arch/arm64/include/asm/acpi.h
> @@ -114,22 +114,8 @@ static inline bool acpi_has_cpu_in_madt(void)
>   }
>   
>   struct acpi_madt_generic_interrupt *acpi_cpu_get_madt_gicc(int cpu);
> -static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
> -{
> -	return	acpi_cpu_get_madt_gicc(cpu)->uid;
> -}
> -
> -static inline int get_cpu_for_acpi_id(u32 uid)
> -{
> -	int cpu;
> -
> -	for (cpu = 0; cpu < nr_cpu_ids; cpu++)
> -		if (acpi_cpu_get_madt_gicc(cpu) &&
> -		    uid == get_acpi_id_for_cpu(cpu))
> -			return cpu;
>   
> -	return -EINVAL;
> -}
> +int get_cpu_for_acpi_id(u32 uid);
>   
>   static inline void arch_fix_phys_package_id(int num, u32 slot) { }
>   void __init acpi_init_cpus(void);
> diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
> index af90128cfed5..f3866606fc46 100644
> --- a/arch/arm64/kernel/acpi.c
> +++ b/arch/arm64/kernel/acpi.c
> @@ -458,3 +458,19 @@ int acpi_unmap_cpu(int cpu)
>   }
>   EXPORT_SYMBOL(acpi_unmap_cpu);
>   #endif /* CONFIG_ACPI_HOTPLUG_CPU */
> +
> +int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
> +{
> +	struct acpi_madt_generic_interrupt *gicc;
> +
> +	if (cpu >= nr_cpu_ids)
> +		return -EINVAL;
If this actually happens, its probably useful to know it with a 
pr_warn/pr_warn_once.> +
> +	gicc = acpi_cpu_get_madt_gicc(cpu);
> +	if (!gicc)
I think this check is redundant because we can't have logical cpu's that 
aren't in the cpu_possible() list, which on arm64 doesn't AFAIK have 
holes. In the past this might have made sense if we weren't maintaining 
a copy of the gicc structure from the MADT for each core.> +		return 
-ENODEV;
> +
> +	*uid = gicc->uid;
> +	return 0;
> +}
> +EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
> diff --git a/arch/arm64/kernel/acpi_numa.c b/arch/arm64/kernel/acpi_numa.c
> index 2465f291c7e1..41d1e46a4338 100644
> --- a/arch/arm64/kernel/acpi_numa.c
> +++ b/arch/arm64/kernel/acpi_numa.c
> @@ -34,6 +34,20 @@ int __init acpi_numa_get_nid(unsigned int cpu)
>   	return acpi_early_node_map[cpu];
>   }
>   
> +int get_cpu_for_acpi_id(u32 uid)
> +{
> +	u32 cpu_uid;
> +	int ret;
> +
> +	for (int cpu = 0; cpu < nr_cpu_ids; cpu++) {
> +		ret = acpi_get_cpu_uid(cpu, &cpu_uid);
This might have been a simplification, but since we are basically doing 
a for_each_possible_cpu(cpu) and every possible cpu will have a GICC 
entry before it becomes 'possible' there will be a UID, so all the error 
checking AFAIK, is impossible here.> +		if (ret == 0 && uid == cpu_uid)
> +			return cpu;
> +	}
> +
> +	return -EINVAL;
> +}
> +
I also moved this below acpi_get_cpu_uid() in acpi.c and I don't see the 
a forward error issue you mentioned. It seems to me that they should be 
kept close to each other since they are basically inverses of each other.


From xen-devel-bounces@lists.xenproject.org Wed Mar 18 01:04:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Mar 2026 01:04:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256264.1550956 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2fKi-0006vr-24; Wed, 18 Mar 2026 01:04:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256264.1550956; Wed, 18 Mar 2026 01:04:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2fKh-0006vj-Si; Wed, 18 Mar 2026 01:04:23 +0000
Received: by outflank-mailman (input) for mailman id 1256264;
 Wed, 18 Mar 2026 01:04:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JLcR=BS=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1w2fKh-0006vd-14
 for xen-devel@lists.xenproject.org; Wed, 18 Mar 2026 01:04:23 +0000
Received: from fhigh-b5-smtp.messagingengine.com
 (fhigh-b5-smtp.messagingengine.com [202.12.124.156])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5de16ec1-2266-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Mar 2026 02:04:09 +0100 (CET)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 1B81E7A00F4;
 Tue, 17 Mar 2026 21:04:06 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-04.internal (MEProxy); Tue, 17 Mar 2026 21:04:07 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 17 Mar 2026 21:04:04 -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: 5de16ec1-2266-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1773795846;
	 x=1773882246; bh=4E/oYgX7RURloo9ZVyizIvmsI1VUSG37wAU60yZqilk=; b=
	RO3GmVi0SdhFk06UixJH4AqPLRj/PdV9dJ5mtOY4ekJa1L8XjwNsaNANEIzGnSJZ
	KskdmWMR9eFQhAlbiRVozFwMJyH+Uo7I18TrTM7knMYTUpI73bLSiTriUcsk0ezU
	whQOPld5pz9eTDFs7kBdoeYGM1mIN5YjvU8qVUgmvFwuKEWB1MOpb1Xj7LqnRA7x
	QtxVwb8AiALNFx0SW3jEsvwsD2mQ+Q4WZ9othWdVM8CvL4abPYvgEi+nnmmqbjDj
	dhGEaB43Yv8WenXpxXhS7sUohCtgnRjK/QZvnK1B4BJlftN9pvk8vYPW/ZZvLWk7
	wghMVTfGw8bfd7xdTjcoVg==
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=
	1773795846; x=1773882246; bh=4E/oYgX7RURloo9ZVyizIvmsI1VUSG37wAU
	60yZqilk=; b=1OdEaaT1dAAO7ckBCOUAMZ80VgHA0mZIjqxzmqwLUg9GhLks2Z5
	TLYe/LvUlK4gmgIvHUItexA69FT1h9l0PLsjrE/UZgReNaKDFUxLC01BHqJShcZ0
	Sj9r31nrUPeSmneXL7tEMaJniFmS/9/2lymJk/jZ6nMVYoRm+BMI5QKu4ou/lN1U
	2BPoddZxqIuOf1d/5lqo47PS6m9EFuJDdtFFLzxQWtLYhWynNEk3kue2utmahk5c
	6HhGQRtEwemuO6/QsszzwXI2HAdEVQE0pekOht7JtgQjSxLN5Rvw8+nhOq5pqcpL
	Y7WyXQ5Xeq6l6ZsVbH4sMEyMRo8wCeOpZNQ==
X-ME-Sender: <xms:Bvq5aeretq2nWAevY-pemzmwp7gOBVmJoEY_g_aFs7CYH6BTEAG_4A>
    <xme:Bvq5afMFj-HoTU0jszuVm2K8qq7B5prq2mjl5s0vTQk0DgmMwl-YOvGM3AQ0zM95P
    RfbKC68KJM-1eTHD8pOf-hMiQ5JqoWF7GIOoHxhHfaBY6Pj>
X-ME-Received: <xmr:Bvq5aW2vX0aYrQxZHWrn0JCR20mFPoFXVTHJfwBZmr55RQCvV7BnrQIzaRUJcVY5MxDtK5uATgDzcfp536yjnGzhKm0jmTMQHHE>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeftddvjeeiucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfffhfek
    veffudelleeggfelueevuefgkeegfeejgeeigfevveefkeelffffffdvnecuffhomhgrih
    hnpehvrghtvghsrdhtvggthhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhep
    mhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrg
    gsrdgtohhmpdhnsggprhgtphhtthhopeelpdhmohguvgepshhmthhpohhuthdprhgtphht
    thhopehtvgguugihrdgrshhtihgvsehvrghtvghsrdhtvggthhdprhgtphhtthhopeigvg
    hnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthho
    pegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtoheprg
    hnthhhohhnhidrphgvrhgrrhgusehvrghtvghsrdhtvggthhdprhgtphhtthhopehmihgt
    hhgrlhdrohhriigvlhesrghmugdrtghomhdprhgtphhtthhopehjsggvuhhlihgthhessh
    hushgvrdgtohhmpdhrtghpthhtohepjhhulhhivghnseigvghnrdhorhhgpdhrtghpthht
    oheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpdhrtghpthhtohepshhsthgrsg
    gvlhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:Bvq5aeBUYjogiQk_DijurLkcE7z83rFC35WKtgMuStnTxB6Di0__3Q>
    <xmx:Bvq5aTKTHzTAO4Nnx23d2ZKPm8qKPwAhgEaGXmQhyhp0TkrPYvXdRA>
    <xmx:Bvq5aXlOaq9Nypof95ES8vfVOBzpYAMIf1rPMaRVmdDSUZZHBbtPfQ>
    <xmx:Bvq5acYbV0GI6SdUSU0gCzqXpyclhfUSDbKPidknCkvRPMfyt8Vw5Q>
    <xmx:Bvq5aafqlTOKWYHB1YZH2u1XuWBRTSFqMXrUHMxDRJocWodlmf89QZb4>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 18 Mar 2026 02:04:02 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Teddy Astie <teddy.astie@vates.tech>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v2] efi: Enable EFI_SET_VIRTUAL_ADDRESS_MAP by default
Message-ID: <abn6Aj4TzSHF2KLe@mail-itl>
References: <14146a9dd53d1662d1e35220125d816045b2f184.1773757913.git.teddy.astie@vates.tech>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="gUCD34k0ZGhT3ikn"
Content-Disposition: inline
In-Reply-To: <14146a9dd53d1662d1e35220125d816045b2f184.1773757913.git.teddy.astie@vates.tech>


--gUCD34k0ZGhT3ikn
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 18 Mar 2026 02:04:02 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Teddy Astie <teddy.astie@vates.tech>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v2] efi: Enable EFI_SET_VIRTUAL_ADDRESS_MAP by default

On Tue, Mar 17, 2026 at 02:33:34PM +0000, Teddy Astie wrote:
> Many machines fails to boot if this option is disabled.
> It's off by default as it was deemed too risky for being enabled
> by default late in the Xen 4.13 cycle, but found out to be safe.
> As there are no known drawback by having this option on, enable
> it by default.
>=20
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>

I think this is enough for this change to go in. If somebody wants to do
more archaeology, mailing list archives exist, there is no point in
summarizing it all here.

Acked-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>

> ---
> v2:
>  - review commit description
>  - drop "If unsure" note
>=20
>  xen/common/Kconfig | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>=20
> diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> index d7e79e752a..0a20aa0a12 100644
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -363,14 +363,13 @@ config KEXEC
> =20
>  config EFI_SET_VIRTUAL_ADDRESS_MAP
>      bool "EFI: call SetVirtualAddressMap()" if EXPERT
> +    default y
>      help
>        Call EFI SetVirtualAddressMap() runtime service to setup memory ma=
p for
>        further runtime services. According to UEFI spec, it isn't strictly
>        necessary, but many UEFI implementations misbehave when this call =
is
>        missing.
> =20
> -      If unsure, say N.
> -
>  config XSM
>  	bool "Xen Security Modules support"
>  	default ARM
> --=20
> 2.53.0
>=20
>=20
>=20
> --
> Teddy Astie | Vates XCP-ng Developer
>=20
> XCP-ng & Xen Orchestra - Vates solutions
>=20
> web: https://vates.tech
>=20
>=20

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmm5+gIACgkQ24/THMrX
1ywv7Af+NPWZtpLH0VYvwRIx+VtsHnnbWt54HM27LxzN4SIUyGUpPF1V/E8kYGVb
7qZOC4tLR4/B8OqexEbLCpO9mYUCGJGemBX1aDq350qNdqslfHu6ogpqMOn8vXYs
6npzG5J+yKgW1l5QrhtqHkEmzDacO3V6rHDnk7fB1l+e8SEZDdvCIztP0Q3kJSFm
txdztMMCJrpAHItUSuiIWcChXoEeswhqLcrrZvbawR7NoJK7q2Dg+2hfn+IV6Ug4
D3ju1eOS2DFESuhl70uSjTZFLq7D26+di65w8rJuOQIAsOrs5fzoZmzqY+CDh2LZ
G5zVi27sXCdKPkuUT7++X6ivQu4QMw==
=FuL+
-----END PGP SIGNATURE-----

--gUCD34k0ZGhT3ikn--


From xen-devel-bounces@lists.xenproject.org Wed Mar 18 02:03:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Mar 2026 02:03:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256277.1550964 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2gFU-0006KD-9W; Wed, 18 Mar 2026 02:03:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256277.1550964; Wed, 18 Mar 2026 02:03:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2gFU-0006K6-6Y; Wed, 18 Mar 2026 02:03:04 +0000
Received: by outflank-mailman (input) for mailman id 1256277;
 Wed, 18 Mar 2026 02:03: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=6/lf=BS=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w2gFS-0006Jy-Rw
 for xen-devel@lists.xenproject.org; Wed, 18 Mar 2026 02:03:03 +0000
Received: from canpmsgout01.his.huawei.com (canpmsgout01.his.huawei.com
 [113.46.200.216]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 94016018-226e-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Mar 2026 03:02:58 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.162.144])
 by canpmsgout01.his.huawei.com (SkyGuard) with ESMTPS id 4fbBmC73pYz1T4Gh;
 Wed, 18 Mar 2026 09:57:31 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id C20BD40538;
 Wed, 18 Mar 2026 10:02:52 +0800 (CST)
Received: from [10.67.121.161] (10.67.121.161) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Wed, 18 Mar 2026 10:02: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: 94016018-226e-11f1-9ccf-f158ae23cfc8
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=tZ0YkW6QzHvviEShl9PgGlFvkR04UgvTgl/eoJfCubk=;
	b=aCEWYkJ57RU+jYD6xeuAmQT6QWYhWukuC1lqL25B1ZrxDqI0Vs3NTfKvJ5AlwQLdM8pehEYQe
	55n1qFUEZVHwC/PnTOrkKqsbc9EydqwCPUchnbkZH2IVuBilQdsFrdI/yQDCCC98dkWUvhAxjOH
	sHTmJrb+EsIdeC3eKd+Ehz4=
Message-ID: <c9eb7f53-db46-4229-b9ef-8faa1138aca7@huawei.com>
Date: Wed, 18 Mar 2026 10:02:51 +0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 1/3] ACPI: Refactor get_acpi_id_for_cpu() to
 acpi_get_cpu_uid() on non-x86
To: Jeremy Linton <jeremy.linton@arm.com>, Bjorn Helgaas
	<bhelgaas@google.com>, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon
	<will@kernel.org>, "Rafael J . Wysocki" <rafael@kernel.org>
CC: <punit.agrawal@oss.qualcomm.com>, <guohanjun@huawei.com>,
	<suzuki.poulose@arm.com>, <ryan.roberts@arm.com>, <chenl311@chinatelecom.cn>,
	<masahiroy@kernel.org>, <wangyuquan1236@phytium.com.cn>,
	<anshuman.khandual@arm.com>, <heinrich.schuchardt@canonical.com>,
	<Eric.VanTassell@amd.com>, <jonathan.cameron@huawei.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <linux-pci@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <loongarch@lists.linux.dev>,
	<linux-riscv@lists.infradead.org>, <xen-devel@lists.xenproject.org>,
	<linux-acpi@vger.kernel.org>, <linux-perf-users@vger.kernel.org>,
	<stable@vger.kernel.org>
References: <20260313022144.40942-1-fengchengwen@huawei.com>
 <20260313022144.40942-2-fengchengwen@huawei.com>
 <e4b0aefa-7108-47b4-ad5d-d62d385b8f33@arm.com>
Content-Language: en-US
From: fengchengwen <fengchengwen@huawei.com>
In-Reply-To: <e4b0aefa-7108-47b4-ad5d-d62d385b8f33@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.67.121.161]
X-ClientProxiedBy: kwepems200001.china.huawei.com (7.221.188.67) To
 kwepemk500009.china.huawei.com (7.202.194.94)

Hi,

On 3/18/2026 5:38 AM, Jeremy Linton wrote:
> Hi,
> 
> Lets try this again, since the last one looks like it got caught in the moderation system and wasn't quite right anyway.
> 
> On 3/12/26 9:21 PM, Chengwen Feng wrote:
>> Unify CPU ACPI ID retrieval interface across architectures by
>> refactoring get_acpi_id_for_cpu() to acpi_get_cpu_uid() on
>> arm64/riscv/loongarch:
>> - Add input parameter validation
>> - Adjust interface to int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
>>    (old: u32 get_acpi_id_for_cpu(unsigned int cpu), no input check)
>>
>> This refactoring (not a pure rename) enhances interface robustness while
>> preparing for consistent ACPI Processor UID retrieval across all
>> ACPI-enabled platforms. Valid inputs retain original behavior.
>>
>> Note: Move the ARM64-specific get_cpu_for_acpi_id() implementation to
>>        arch/arm64/kernel/acpi_numa.c to fix compilation errors from
>>        circular header dependencies introduced by the rename.
>>
>> Cc: stable@vger.kernel.org
>> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
>> Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
>> ---
>>   arch/arm64/include/asm/acpi.h      | 16 +---------
>>   arch/arm64/kernel/acpi.c           | 16 ++++++++++
>>   arch/arm64/kernel/acpi_numa.c      | 14 +++++++++
>>   arch/loongarch/include/asm/acpi.h  |  5 ---
>>   arch/loongarch/kernel/acpi.c       |  9 ++++++
>>   arch/riscv/include/asm/acpi.h      |  4 ---
>>   arch/riscv/kernel/acpi.c           | 16 ++++++++++
>>   arch/riscv/kernel/acpi_numa.c      |  9 ++++--
>>   drivers/acpi/pptt.c                | 50 ++++++++++++++++++++++--------
>>   drivers/acpi/riscv/rhct.c          |  7 ++++-
>>   drivers/perf/arm_cspmu/arm_cspmu.c |  6 ++--
>>   include/linux/acpi.h               | 13 ++++++++
>>   12 files changed, 122 insertions(+), 43 deletions(-)
>>
>> diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
>> index c07a58b96329..106a08556cbf 100644
>> --- a/arch/arm64/include/asm/acpi.h
>> +++ b/arch/arm64/include/asm/acpi.h
>> @@ -114,22 +114,8 @@ static inline bool acpi_has_cpu_in_madt(void)
>>   }
>>     struct acpi_madt_generic_interrupt *acpi_cpu_get_madt_gicc(int cpu);
>> -static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
>> -{
>> -    return    acpi_cpu_get_madt_gicc(cpu)->uid;
>> -}
>> -
>> -static inline int get_cpu_for_acpi_id(u32 uid)
>> -{
>> -    int cpu;
>> -
>> -    for (cpu = 0; cpu < nr_cpu_ids; cpu++)
>> -        if (acpi_cpu_get_madt_gicc(cpu) &&
>> -            uid == get_acpi_id_for_cpu(cpu))
>> -            return cpu;
>>   -    return -EINVAL;
>> -}
>> +int get_cpu_for_acpi_id(u32 uid);
>>     static inline void arch_fix_phys_package_id(int num, u32 slot) { }
>>   void __init acpi_init_cpus(void);
>> diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
>> index af90128cfed5..f3866606fc46 100644
>> --- a/arch/arm64/kernel/acpi.c
>> +++ b/arch/arm64/kernel/acpi.c
>> @@ -458,3 +458,19 @@ int acpi_unmap_cpu(int cpu)
>>   }
>>   EXPORT_SYMBOL(acpi_unmap_cpu);
>>   #endif /* CONFIG_ACPI_HOTPLUG_CPU */
>> +
>> +int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
>> +{
>> +    struct acpi_madt_generic_interrupt *gicc;
>> +
>> +    if (cpu >= nr_cpu_ids)
>> +        return -EINVAL;
> If this actually happens, its probably useful to know it with a pr_warn/pr_warn_once.> +

The function maybe called from userspace which on later roadmap, so I prefer not add
warning or error here.
BTW: the function will return -EINVAL, so caller could know the case.

>> +    gicc = acpi_cpu_get_madt_gicc(cpu);
>> +    if (!gicc)
> I think this check is redundant because we can't have logical cpu's that aren't in the cpu_possible() list, which on arm64 doesn't AFAIK have holes. In the past this might have made sense if we weren't maintaining a copy of the gicc structure from the MADT for each core.> +        return -ENODEV;

This commit will backport to stable branch at least 6.6. So I think it's OK to keep it.

>> +
>> +    *uid = gicc->uid;
>> +    return 0;
>> +}
>> +EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
>> diff --git a/arch/arm64/kernel/acpi_numa.c b/arch/arm64/kernel/acpi_numa.c
>> index 2465f291c7e1..41d1e46a4338 100644
>> --- a/arch/arm64/kernel/acpi_numa.c
>> +++ b/arch/arm64/kernel/acpi_numa.c
>> @@ -34,6 +34,20 @@ int __init acpi_numa_get_nid(unsigned int cpu)
>>       return acpi_early_node_map[cpu];
>>   }
>>   +int get_cpu_for_acpi_id(u32 uid)
>> +{
>> +    u32 cpu_uid;
>> +    int ret;
>> +
>> +    for (int cpu = 0; cpu < nr_cpu_ids; cpu++) {
>> +        ret = acpi_get_cpu_uid(cpu, &cpu_uid);
> This might have been a simplification, but since we are basically doing a for_each_possible_cpu(cpu) and every possible cpu will have a GICC entry before it becomes 'possible' there will be a UID, so all the error checking AFAIK, is impossible here.> +        if (ret == 0 && uid == cpu_uid)

I prefer to keep the current impl, as it may catch future error.

>> +            return cpu;
>> +    }
>> +
>> +    return -EINVAL;
>> +}
>> +
> I also moved this below acpi_get_cpu_uid() in acpi.c and I don't see the a forward error issue you mentioned. It seems to me that they should be kept close to each other since they are basically inverses of each other.

As long as you ensure that it is not placed in asm/acpi.h, that's fine.
So it's OK to move this function to acpi.c

But I just checked the callers of this function again and found that there are
all in acpi_numa.c, so I will now add the static keyword to this function and
make it an internal function.

Thanks

> 



From xen-devel-bounces@lists.xenproject.org Wed Mar 18 04:04:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Mar 2026 04:04:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256287.1550974 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2i9B-0003cP-LA; Wed, 18 Mar 2026 04:04:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256287.1550974; Wed, 18 Mar 2026 04:04: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 1w2i9B-0003cI-Hu; Wed, 18 Mar 2026 04:04:41 +0000
Received: by outflank-mailman (input) for mailman id 1256287;
 Wed, 18 Mar 2026 04:04: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=6/lf=BS=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w2i99-0003cC-85
 for xen-devel@lists.xenproject.org; Wed, 18 Mar 2026 04:04:40 +0000
Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 92175009-227f-11f1-b164-2bf370ae4941;
 Wed, 18 Mar 2026 05:04:37 +0100 (CET)
Received: from canpmsgout03.his.huawei.com (unknown [172.19.92.159])
 by szxga01-in.huawei.com (SkyGuard) with ESMTPS id 4fbFYk0CbGz1BFSt
 for <xen-devel@lists.xenproject.org>; Wed, 18 Mar 2026 12:03:38 +0800 (CST)
Received: from mail.maildlp.com (unknown [172.19.162.197])
 by canpmsgout03.his.huawei.com (SkyGuard) with ESMTPS id 4fbFSC5sDgzpTMG;
 Wed, 18 Mar 2026 11:58:51 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 19BFD40569;
 Wed, 18 Mar 2026 12:04:15 +0800 (CST)
Received: from [10.67.121.161] (10.67.121.161) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Wed, 18 Mar 2026 12:04:14 +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: 92175009-227f-11f1-b164-2bf370ae4941
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=XZKg5HSzqw961TE78Y1nHw4DDOpQ3KVITP3+xW3FZMU=;
	b=tgKSLKH3FRXeuZflU+YmXS6o6Nivgvm0hUbiV+64ojQwdlRuj748sRRNImMTKVJ0zSqQ4mFD9
	vyWfROqFApjH8PJl/yObRR3ZUwmsw9hG0AiTaunIlNM5kOdnbqS/nXO8pxQZ0gDOyc2ERqq/FSD
	tUkS7f1ubwBj8AMZrIXLpUM=
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=XZKg5HSzqw961TE78Y1nHw4DDOpQ3KVITP3+xW3FZMU=;
	b=tgKSLKH3FRXeuZflU+YmXS6o6Nivgvm0hUbiV+64ojQwdlRuj748sRRNImMTKVJ0zSqQ4mFD9
	vyWfROqFApjH8PJl/yObRR3ZUwmsw9hG0AiTaunIlNM5kOdnbqS/nXO8pxQZ0gDOyc2ERqq/FSD
	tUkS7f1ubwBj8AMZrIXLpUM=
Message-ID: <0744ee77-78ee-4e3d-9f0d-e8fe44be1c28@huawei.com>
Date: Wed, 18 Mar 2026 12:04:13 +0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 1/3] ACPI: Refactor get_acpi_id_for_cpu() to
 acpi_get_cpu_uid() on non-x86
From: fengchengwen <fengchengwen@huawei.com>
To: Jeremy Linton <jeremy.linton@arm.com>, Bjorn Helgaas
	<bhelgaas@google.com>, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon
	<will@kernel.org>, "Rafael J . Wysocki" <rafael@kernel.org>
CC: <punit.agrawal@oss.qualcomm.com>, <guohanjun@huawei.com>,
	<suzuki.poulose@arm.com>, <ryan.roberts@arm.com>, <chenl311@chinatelecom.cn>,
	<masahiroy@kernel.org>, <wangyuquan1236@phytium.com.cn>,
	<anshuman.khandual@arm.com>, <heinrich.schuchardt@canonical.com>,
	<Eric.VanTassell@amd.com>, <jonathan.cameron@huawei.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <linux-pci@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <loongarch@lists.linux.dev>,
	<linux-riscv@lists.infradead.org>, <xen-devel@lists.xenproject.org>,
	<linux-acpi@vger.kernel.org>, <linux-perf-users@vger.kernel.org>,
	<stable@vger.kernel.org>
References: <20260313022144.40942-1-fengchengwen@huawei.com>
 <20260313022144.40942-2-fengchengwen@huawei.com>
 <e4b0aefa-7108-47b4-ad5d-d62d385b8f33@arm.com>
 <c9eb7f53-db46-4229-b9ef-8faa1138aca7@huawei.com>
Content-Language: en-US
In-Reply-To: <c9eb7f53-db46-4229-b9ef-8faa1138aca7@huawei.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.67.121.161]
X-ClientProxiedBy: kwepems100002.china.huawei.com (7.221.188.206) To
 kwepemk500009.china.huawei.com (7.202.194.94)

Sorry to self-reply

On 3/18/2026 10:02 AM, fengchengwen wrote:
> Hi,
> 
> On 3/18/2026 5:38 AM, Jeremy Linton wrote:
>> Hi,
>>
>> Lets try this again, since the last one looks like it got caught in the moderation system and wasn't quite right anyway.
>>
>> On 3/12/26 9:21 PM, Chengwen Feng wrote:
>>> Unify CPU ACPI ID retrieval interface across architectures by
>>> refactoring get_acpi_id_for_cpu() to acpi_get_cpu_uid() on
>>> arm64/riscv/loongarch:
>>> - Add input parameter validation
>>> - Adjust interface to int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
>>>    (old: u32 get_acpi_id_for_cpu(unsigned int cpu), no input check)
>>>
>>> This refactoring (not a pure rename) enhances interface robustness while
>>> preparing for consistent ACPI Processor UID retrieval across all
>>> ACPI-enabled platforms. Valid inputs retain original behavior.
>>>
>>> Note: Move the ARM64-specific get_cpu_for_acpi_id() implementation to
>>>        arch/arm64/kernel/acpi_numa.c to fix compilation errors from
>>>        circular header dependencies introduced by the rename.
>>>
>>> Cc: stable@vger.kernel.org
>>> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
>>> Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
>>> ---
>>>   arch/arm64/include/asm/acpi.h      | 16 +---------
>>>   arch/arm64/kernel/acpi.c           | 16 ++++++++++
>>>   arch/arm64/kernel/acpi_numa.c      | 14 +++++++++
>>>   arch/loongarch/include/asm/acpi.h  |  5 ---
>>>   arch/loongarch/kernel/acpi.c       |  9 ++++++
>>>   arch/riscv/include/asm/acpi.h      |  4 ---
>>>   arch/riscv/kernel/acpi.c           | 16 ++++++++++
>>>   arch/riscv/kernel/acpi_numa.c      |  9 ++++--
>>>   drivers/acpi/pptt.c                | 50 ++++++++++++++++++++++--------
>>>   drivers/acpi/riscv/rhct.c          |  7 ++++-
>>>   drivers/perf/arm_cspmu/arm_cspmu.c |  6 ++--
>>>   include/linux/acpi.h               | 13 ++++++++
>>>   12 files changed, 122 insertions(+), 43 deletions(-)
>>>
>>> diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
>>> index c07a58b96329..106a08556cbf 100644
>>> --- a/arch/arm64/include/asm/acpi.h
>>> +++ b/arch/arm64/include/asm/acpi.h
>>> @@ -114,22 +114,8 @@ static inline bool acpi_has_cpu_in_madt(void)
>>>   }
>>>     struct acpi_madt_generic_interrupt *acpi_cpu_get_madt_gicc(int cpu);
>>> -static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
>>> -{
>>> -    return    acpi_cpu_get_madt_gicc(cpu)->uid;
>>> -}
>>> -
>>> -static inline int get_cpu_for_acpi_id(u32 uid)
>>> -{
>>> -    int cpu;
>>> -
>>> -    for (cpu = 0; cpu < nr_cpu_ids; cpu++)
>>> -        if (acpi_cpu_get_madt_gicc(cpu) &&
>>> -            uid == get_acpi_id_for_cpu(cpu))
>>> -            return cpu;
>>>   -    return -EINVAL;
>>> -}
>>> +int get_cpu_for_acpi_id(u32 uid);
>>>     static inline void arch_fix_phys_package_id(int num, u32 slot) { }
>>>   void __init acpi_init_cpus(void);
>>> diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
>>> index af90128cfed5..f3866606fc46 100644
>>> --- a/arch/arm64/kernel/acpi.c
>>> +++ b/arch/arm64/kernel/acpi.c
>>> @@ -458,3 +458,19 @@ int acpi_unmap_cpu(int cpu)
>>>   }
>>>   EXPORT_SYMBOL(acpi_unmap_cpu);
>>>   #endif /* CONFIG_ACPI_HOTPLUG_CPU */
>>> +
>>> +int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
>>> +{
>>> +    struct acpi_madt_generic_interrupt *gicc;
>>> +
>>> +    if (cpu >= nr_cpu_ids)
>>> +        return -EINVAL;
>> If this actually happens, its probably useful to know it with a pr_warn/pr_warn_once.> +
> 
> The function maybe called from userspace which on later roadmap, so I prefer not add
> warning or error here.
> BTW: the function will return -EINVAL, so caller could know the case.
> 
>>> +    gicc = acpi_cpu_get_madt_gicc(cpu);
>>> +    if (!gicc)
>> I think this check is redundant because we can't have logical cpu's that aren't in the cpu_possible() list, which on arm64 doesn't AFAIK have holes. In the past this might have made sense if we weren't maintaining a copy of the gicc structure from the MADT for each core.> +        return -ENODEV;
> 
> This commit will backport to stable branch at least 6.6. So I think it's OK to keep it.
> 
>>> +
>>> +    *uid = gicc->uid;
>>> +    return 0;
>>> +}
>>> +EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
>>> diff --git a/arch/arm64/kernel/acpi_numa.c b/arch/arm64/kernel/acpi_numa.c
>>> index 2465f291c7e1..41d1e46a4338 100644
>>> --- a/arch/arm64/kernel/acpi_numa.c
>>> +++ b/arch/arm64/kernel/acpi_numa.c
>>> @@ -34,6 +34,20 @@ int __init acpi_numa_get_nid(unsigned int cpu)
>>>       return acpi_early_node_map[cpu];
>>>   }
>>>   +int get_cpu_for_acpi_id(u32 uid)
>>> +{
>>> +    u32 cpu_uid;
>>> +    int ret;
>>> +
>>> +    for (int cpu = 0; cpu < nr_cpu_ids; cpu++) {
>>> +        ret = acpi_get_cpu_uid(cpu, &cpu_uid);
>> This might have been a simplification, but since we are basically doing a for_each_possible_cpu(cpu) and every possible cpu will have a GICC entry before it becomes 'possible' there will be a UID, so all the error checking AFAIK, is impossible here.> +        if (ret == 0 && uid == cpu_uid)
> 
> I prefer to keep the current impl, as it may catch future error.
> 
>>> +            return cpu;
>>> +    }
>>> +
>>> +    return -EINVAL;
>>> +}
>>> +
>> I also moved this below acpi_get_cpu_uid() in acpi.c and I don't see the a forward error issue you mentioned. It seems to me that they should be kept close to each other since they are basically inverses of each other.
> 
> As long as you ensure that it is not placed in asm/acpi.h, that's fine.
> So it's OK to move this function to acpi.c
> 
> But I just checked the callers of this function again and found that there are
> all in acpi_numa.c, so I will now add the static keyword to this function and
> make it an internal function.

I just found drivers/irqchip/irq-gic-v3.c has a call for get_cpu_for_acpi_id,
so We should not marking as static.

According to your advise, I moved it in acpi.c in v8.

Thanks

> 
> Thanks
> 
>>
> 



From xen-devel-bounces@lists.xenproject.org Wed Mar 18 04:19:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Mar 2026 04:19:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256295.1550982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2iN1-0005Rx-Qg; Wed, 18 Mar 2026 04:18:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256295.1550982; Wed, 18 Mar 2026 04: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 1w2iN1-0005Rq-O1; Wed, 18 Mar 2026 04:18:59 +0000
Received: by outflank-mailman (input) for mailman id 1256295;
 Wed, 18 Mar 2026 04:18: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=GHH+=BS=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1w2iN0-0005Rk-7z
 for xen-devel@lists.xenproject.org; Wed, 18 Mar 2026 04:18:58 +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 8d474b79-2281-11f1-b164-2bf370ae4941;
 Wed, 18 Mar 2026 05:18:44 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DU7PR03MB10945.eurprd03.prod.outlook.com
 (2603:10a6:10:5b2::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.24; Wed, 18 Mar
 2026 04:18:39 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3%7]) with mapi id 15.20.9700.020; Wed, 18 Mar 2026
 04:18: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: 8d474b79-2281-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=STKfH7a4Bu5CPB69czBcRuLJjWbnyzy5fz2Hrs4fk+MifNUyH4viN/Ii4pDXRDbyIgq/+tE4lR1Uwaih/jtV5HK6TgiTi7+q4nTdkPGL0Uz/BUACJQFF6H+TgBjRhbZN2YWz1aCABKPTGgg4bYU/VjrWgSIE9LBUfVButFFYA5lh5BAQrWx2TofjVJjtPQGQUyfqwjR+DMZs0p1k9f+VCbqvcZLoaxWnShFs0piakwFkL4ZNZ1m65H7HpG0wn2wN0raRHe9fxEz4N9ruLEDp9VWn+trVLdp9xRmp6vY/8CuuRsz96UW9Cgb60egPEQ9CbL3IFKEoWEMt7LiJpuZltQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VFcW23XxqOB9dyWc8Hb9kjf6vZdaZNC/g3dMuEXNCvg=;
 b=E6B4Zff0l+oL2y2X6UGnriytoqZCjjx+fkGDHuF23c8ke41jQodP/iY7TrUICF28fpvRLRTVg4oMrI73jThwrXTCrO4zvWlz0zaiavSeZs2KDtM8klxw/UJcvgXhrRfUSHdAT8L3JRh8WqVmeHi+OL4jgjPpEKOEKZruEQFlJZuanCnNqO/3a5q3F9EUT8HiaaV7LlAkLixxOcwwPrKq436+gscn5RSENZZfDR6Kj7KA5U7UOVs0xkI/Xhbxu+oGxNrTCSerqxQN34jyvOWWtsJrD+Snv8jBJdhlO2+mp4fbF8f6Re+XAED4FM8XnCdtq1sGOCQ2c7azr7VHq0vJXg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=VFcW23XxqOB9dyWc8Hb9kjf6vZdaZNC/g3dMuEXNCvg=;
 b=B1XJY3DdpxuZ29x+lIX67BfpCPgtfS3lhEcE9Dv51oPvpor70cCeE3xUj2TCb3JIK3g/AOUQq6zbv6eYEkTYmP6ZKtsVfzED0XOufA3nPdPZsqHBbMs3Yq0EQUuSilclfryYgLoif0D7FQuTHLzkNazdG9X1Ln36sibJeY/ANxjBnpttZNanA6Kk6x5NFHT8IqzFbgYLDhuIauOxiT/VDeJ3Vln/MnfRGHmoNkORwlDkdZnL3r5+E+E+5tTGOcwx/PM/mzQJUlbxhMzx4gBxUg2C1qhHaQZkdeDv/PZTZLEYYMo/ZkAxGPi8RP31jnw7NO3fhRPjreMDvoOF68gV7Q==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <Mykola_Kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: Re: [PATCH v16 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
Thread-Topic: [PATCH v16 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
Thread-Index: AQHca2pkIbZvzRBq5kGPbXWSwbNafQ==
Date: Wed, 18 Mar 2026 04:18:38 +0000
Message-ID: <87jyv9kbxe.fsf@epam.com>
References: <cover.1765533584.git.mykola_kvach@epam.com>
	<f1d118552f84e2b894ec7163000f6dba98d0e3fa.1765533584.git.mykola_kvach@epam.com>
In-Reply-To:
 <f1d118552f84e2b894ec7163000f6dba98d0e3fa.1765533584.git.mykola_kvach@epam.com>
	(Mykola Kvach's message of "Fri, 12 Dec 2025 15:18:18 +0200")
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV1PR03MB10456:EE_|DU7PR03MB10945:EE_
x-ms-office365-filtering-correlation-id: 39671178-bce6-4d24-9954-08de84a56e50
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|7416014|366016|42112799006|1800799024|38070700021|56012099003|22082099003|18002099003;
x-microsoft-antispam-message-info:
 yygLZYpu2yEpTzI8pXDPqRUHjAb6ewPj3XDGd2gA/Pr4z8rfKZzIbt0lg8Yus6LqyjH20SS2tzINOfhuYbMzBK3+xCBZB9jiJ+WOy0jTQ03dsSD8GTxoVS+Ydx3V72CzLxgkEvIc0cySUGHrpFKOLQdZsj0squh4ieyaw7IEppXm9IKgNsvHtYvgxYR7+asnLIwynmqD3rAL899MmaeUl+Uis2vNqnkRk+sJDpy+10RKVNT4aP35lqc2FLf1VXz6kg8iU2ww2zq+a39Gz+n0QobmydMDBOja8ViRKhzEiEVt06iaxpe133z1j4yjn6IjELkgXSIpktBc0il62dJx8/FUa22arWgtoGB0+S+Ks2JS8ZYpD8j2DOifMUTKZs323eG3DPNFeDpLVva04wgfN7SNR8p07+4ZDopf1VroheHrQxHzXIEIIJTl5ksJxqJLN08snnAfGqnqWl4p78hz2L6/NtyxLK7/3vNShdKENGf2J6KRmV79d0xyoPH6ibOnrQM38aKXavuWsNJQ97Hvm5ZBkl+B2gvsja2tpllkSIcJMxzj6ejoF3BqmaB4JopbzExx0kf6S3yq+WMVG/81tCwcX5fRQTapgQBSITKcHYT/BDh6IGaSt1MHyDInLfqrJGHSd4dF/HZNXbiy+HKkHfEd4KZ6ZnGihANNGS5/HDNIEcPH6hEqEiP22soGDtcDslI8E+DOfbvnqgPQWZRtFUszNB0kLAcpFgH2cAUjzvuypV7umVkdu99dOX/vws0cmmNus9zycKV+vCA5hZINe8/rkvBDBUA2kgi86JQMVT0=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(42112799006)(1800799024)(38070700021)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?CZbyG4G84y8rQS2oAf9mXUKUB/MGRvjxi9jrv5ge3QUsGIs2Tt6oeSWZL8?=
 =?iso-8859-1?Q?N9rWdrs1Kdo+BThV7EDgB/ezmReONW+TvnoUmOzwAaIzH9qpoo5dJyuEkK?=
 =?iso-8859-1?Q?2CtX/1ANMn7TdJzJAy/x1cbgVmEab4u2chHhAxE1v5ULavF9VJW2d318Cz?=
 =?iso-8859-1?Q?SaaLXC+BS5+nYYp3d9EtSvUuXSHnqGWMD+F7hzWv+25cdEbxhQ0HvvY08q?=
 =?iso-8859-1?Q?8qkB+HAVmJRPCBG4CV4YpDvULLgSfjx267izuquNAqrQMIxnpOs7cBrP/t?=
 =?iso-8859-1?Q?mF4nYumrE5FWVctZ+wNlfTQbqZzuTOumOtLGkt+KHv8hD7pPDtTzy4Zjqe?=
 =?iso-8859-1?Q?fFo5xQOtAbwboBJcMGcBTluCcSnOzvttXIf70FjZ7+VKgqPyReogyBpcAN?=
 =?iso-8859-1?Q?MIiC91coXxmH5v+W/7mTjpsWquZ+6MaLvM4JDthGhUOhyEHVEZNLO7X7Jm?=
 =?iso-8859-1?Q?mdxhZeQwLQoLrupkLRE6OY0TIncbjcR5/FkqGV1L9mgPlO0im/UzY+cD1S?=
 =?iso-8859-1?Q?qKIyYMmAgR2L7Esclz8CNwQe/NayU+qOQ5EvaboibxSlh91u88nOcp3blk?=
 =?iso-8859-1?Q?gh0OmMUSsnONLJCRBWuCeSRqzT4hSW2wvpwleXqzeL6wX/xnkLJv0m8HaM?=
 =?iso-8859-1?Q?hLckyj5KzhdycJf1Goelqkrd186SR0GKrrk3Dbiwc4+U9fACOt/T6jL33a?=
 =?iso-8859-1?Q?I3uXAlx4xLFcSMNRv4ULpFRf4aS18d/gyR0cjxyybBZptmPcVeCojI08db?=
 =?iso-8859-1?Q?IWXUldM2Nvo3iORY7Vg9cGh+FahjRWZVStV1+IRkeNjk34Y+6dPoSh3u2D?=
 =?iso-8859-1?Q?ybwGubu6phxMkDNOVZw3tJgJrhl/ME2lo2UcDxkainxIp+BPNmibNC1IuR?=
 =?iso-8859-1?Q?LilFEpELbLnpCwEoLh4rE1WH6Wd2yP2nA8FT9RwCCDxE8pMlC7oGgpO98u?=
 =?iso-8859-1?Q?jHsVfCdF2ecMyBspdceEbHhS02gDlT0iAi5wynLcOHRZpQ9PdgD/18KZwm?=
 =?iso-8859-1?Q?KQo7cMnSEdu7ck52ksJohk/6nRiidjVfCsFu2AR1R14DhgpwtKqjqRTsX/?=
 =?iso-8859-1?Q?SQNApD8k2x/yhKb9qJq4s1jndY05MQSsVyj+LX1PEjBwNhEDYlYkw6tKR9?=
 =?iso-8859-1?Q?VtBgDgswyUeh9XzWcolbiU+itQe5e4UyCkaw6DTUckRF60BlLMQBE5SLdP?=
 =?iso-8859-1?Q?lzcIuc+4SBn+s9eUrNRLDTjEtnIjEc6+0RrGRRWwbtsQ2Bnl/48ywxoefb?=
 =?iso-8859-1?Q?HL5pEpIGb7ZMllYI5KRqx8xWgbHYPK/+ABj1ycp8D5vi4gy9Dt6Jl2hy1K?=
 =?iso-8859-1?Q?FZAwnxKYAhJ7bILiobru9Q1/7rp3mdyhpz47E9rGuF6mkTZf6iYfumJEr2?=
 =?iso-8859-1?Q?9fPQDakJlql7p6DG8DIyd82Z/ODKt0VroUCwjwu7Ou4+5/z7JX9ps2qTDd?=
 =?iso-8859-1?Q?WCtQjIOw70WURb26rWnRZ2Wxes+7kJ2/sez+J58eUjFdFsblVzyiYKvvV5?=
 =?iso-8859-1?Q?Gnn1nYC2jvVr71jH1OqkVA46nY97+QVQd6Rb8er5nZEwSGX+uH3gOOeTFa?=
 =?iso-8859-1?Q?RB8acIH0Hvhe0SY3PXBOMVgdpYQ9z3hH7NP24SG7ZyQvlcsTRewAmfIouk?=
 =?iso-8859-1?Q?9q7nyAI4NZApw0bIA45CiDvk9mcojaN57wAbm5RLMTu6EJQ9kj9jkpeRVS?=
 =?iso-8859-1?Q?rgRFixA5QrBALykEBrQpWCVXtulPdoVioJsDyJhROMFx1bOzzK9Xxl9EMX?=
 =?iso-8859-1?Q?UrPXELDMRb7U/W+xYI06ld2Etvg9tQUXSSKXOHBMOuywDFPXgSScH61Obk?=
 =?iso-8859-1?Q?5cGjW0mQa38m58QxTn6fQPUOvHfjr4o=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: 39671178-bce6-4d24-9954-08de84a56e50
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Mar 2026 04:18:38.7810
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 55zJeSwbfTxGqzmmyHhb644FhOlvAXQiLsnNvIPvGL2GhEboR8UaRpEQuadbRi4zv45BLQdL9X+FglMfLuGDCsGgO9l9xHqQbfnjZ19gpuE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU7PR03MB10945

Hi Mykola.

Mykola Kvach <xakep.amatop@gmail.com> writes:

> From: Mykola Kvach <mykola_kvach@epam.com>
>
> Add support for the PSCI SYSTEM_SUSPEND function in the vPSCI interface,
> allowing guests to request suspend via the PSCI v1.0+ SYSTEM_SUSPEND call
> (both 32-bit and 64-bit variants).
>
> Implementation details:
> - Add SYSTEM_SUSPEND function IDs to PSCI definitions
> - Trap and handle SYSTEM_SUSPEND in vPSCI
> - Allow only non-hardware domains to invoke SYSTEM_SUSPEND; return
>   PSCI_NOT_SUPPORTED for the hardware domain to avoid halting the system
>   in hwdom_shutdown() via domain_shutdown
> - Require all secondary VCPUs of the calling domain to be offline before
>   suspend, as mandated by the PSCI specification
>
> The arch_domain_resume() function is an architecture-specific hook that i=
s
> invoked during domain resume to perform any necessary setup or restoratio=
n
> steps required by the platform. arch_domain_resume() stays int to propaga=
te
> errno-style detail into common logging; preserving the integer keeps the
> reason visible and leaves room for future arch-specific failures or riche=
r
> handling.
>
> The new vpsci_vcpu_up_prepare() helper is called on the resume path to se=
t up
> the vCPU context (such as entry point, some system regs and context ID) b=
efore
> resuming a suspended guest. This keeps ARM/vPSCI-specific logic out of co=
mmon
> code and avoids intrusive changes to the generic resume flow.
>
> Usage:
>
> For Linux-based guests, suspend can be initiated with:
>     echo mem > /sys/power/state
> or via:
>     systemctl suspend
>
> Resuming the guest is performed from control domain using:
>       xl resume <domain>
>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> Changes in V16:
> - Refactor error handling in domain_resume: move logging to generic code,
>   use explicit return code checking.
> - Make context clearing conditional on success in arch_domain_resume.
> - The 'int' return type is retained for arch_domain_resume for consistenc=
y
>   with other arch hooks and to allow for specific negative error codes.
> ---
>  xen/arch/arm/domain.c                 |  39 +++++++++
>  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    |  27 ++++++
>  xen/arch/arm/include/asm/vpsci.h      |   5 +-
>  xen/arch/arm/vpsci.c                  | 116 +++++++++++++++++++++-----
>  xen/common/domain.c                   |  10 +++
>  xen/include/xen/suspend.h             |  25 ++++++
>  9 files changed, 205 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 47973f99d9..f903e7d4f0 100644
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -12,6 +12,8 @@
>  #include <xen/softirq.h>
>  #include <xen/wait.h>
> =20
> +#include <public/sched.h>
> +
>  #include <asm/arm64/sve.h>
>  #include <asm/cpuerrata.h>
>  #include <asm/cpufeature.h>
> @@ -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>
> =20
>  #include "vpci.h"
> @@ -851,6 +855,41 @@ void arch_domain_creation_finished(struct domain *d)
>      p2m_domain_creation_finished(d);
>  }
> =20
> +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_suspend =
)
> +    {
> +        dprintk(XENLOG_WARNING,
> +                "%pd: Invalid domain state for resume: is_shutting_down=
=3D%u, shutdown_code=3D%u\n",
> +                d, d->is_shutting_down, d->shutdown_code);
> +        return -EINVAL;
> +    }
> +
> +    /*
> +     * It is still possible to call domain_shutdown() with a suspend rea=
son
> +     * via some hypercalls, such as SCHEDOP_shutdown or SCHEDOP_remote_s=
hutdown.
> +     * In these cases, the resume context will be empty.
> +     * This is not expected to cause any issues, so we just notify about=
 the
> +     * situation and return without error, allowing the existing logic t=
o
> +     * proceed as expected.
> +     */
> +    if ( !ctx->wake_cpu )
> +    {
> +        dprintk(XENLOG_INFO, "%pd: Wake CPU pointer context was not prov=
ided\n",
> +                d);
> +        return 0;
> +    }
> +
> +    rc =3D vpsci_vcpu_up_prepare(ctx->wake_cpu , ctx->ep, ctx->cid);
> +    if ( !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 758ad807e4..66b1246892 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
> =20
> +    struct resume_info resume_ctx;
>  }  __cacheline_aligned;
> =20
>  struct arch_vcpu
> diff --git a/xen/arch/arm/include/asm/perfc_defn.h b/xen/arch/arm/include=
/asm/perfc_defn.h
> index effd25b69e..8dfcac7e3b 100644
> --- a/xen/arch/arm/include/asm/perfc_defn.h
> +++ b/xen/arch/arm/include/asm/perfc_defn.h
> @@ -33,6 +33,7 @@ PERFCOUNTER(vpsci_system_reset,        "vpsci: system_r=
eset")
>  PERFCOUNTER(vpsci_cpu_suspend,         "vpsci: cpu_suspend")
>  PERFCOUNTER(vpsci_cpu_affinity_info,   "vpsci: cpu_affinity_info")
>  PERFCOUNTER(vpsci_features,            "vpsci: features")
> +PERFCOUNTER(vpsci_system_suspend,      "vpsci: system_suspend")
> =20
>  PERFCOUNTER(vcpu_kick,                 "vcpu: notify other vcpu")
> =20
> diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/p=
sci.h
> index 4780972621..48a93e6b79 100644
> --- a/xen/arch/arm/include/asm/psci.h
> +++ b/xen/arch/arm/include/asm/psci.h
> @@ -47,10 +47,12 @@ void call_psci_system_reset(void);
>  #define PSCI_0_2_FN32_SYSTEM_OFF          PSCI_0_2_FN32(8)
>  #define PSCI_0_2_FN32_SYSTEM_RESET        PSCI_0_2_FN32(9)
>  #define PSCI_1_0_FN32_PSCI_FEATURES       PSCI_0_2_FN32(10)
> +#define PSCI_1_0_FN32_SYSTEM_SUSPEND      PSCI_0_2_FN32(14)
> =20
>  #define PSCI_0_2_FN64_CPU_SUSPEND         PSCI_0_2_FN64(1)
>  #define PSCI_0_2_FN64_CPU_ON              PSCI_0_2_FN64(3)
>  #define PSCI_0_2_FN64_AFFINITY_INFO       PSCI_0_2_FN64(4)
> +#define PSCI_1_0_FN64_SYSTEM_SUSPEND      PSCI_0_2_FN64(14)
> =20
>  /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */
>  #define PSCI_0_2_AFFINITY_LEVEL_ON      0
> diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/as=
m/suspend.h
> new file mode 100644
> index 0000000000..313d03ea59
> --- /dev/null
> +++ b/xen/arch/arm/include/asm/suspend.h
> @@ -0,0 +1,27 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#ifndef ARM_SUSPEND_H
> +#define ARM_SUSPEND_H
> +
> +struct domain;
> +struct vcpu;
> +
> +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>
> =20
>  /* Number of function implemented by virtual PSCI (only 0.2 or later) */
> -#define VPSCI_NR_FUNCS  12
> +#define VPSCI_NR_FUNCS  14
> =20
>  /* Functions handle PSCI calls from the guests */
>  bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
>  bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid);
> =20
> +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
> +                          register_t context_id);
> +
>  #endif /* __ASM_VPSCI_H__ */
> =20
>  /*
> diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
> index 7ba9ccd94b..c4d616ec68 100644
> --- a/xen/arch/arm/vpsci.c
> +++ b/xen/arch/arm/vpsci.c
> @@ -10,32 +10,16 @@
> =20
>  #include <public/sched.h>
> =20
> -static int do_common_cpu_on(register_t target_cpu, register_t entry_poin=
t,
> -                            register_t context_id)
> +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
> +                          register_t context_id)
>  {
> -    struct vcpu *v;
> -    struct domain *d =3D current->domain;
> -    struct vcpu_guest_context *ctxt;
>      int rc;
> +    struct domain *d =3D 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;
> =20
>      if ( (ctxt =3D alloc_vcpu_guest_context()) =3D=3D NULL )
> -        return PSCI_DENIED;
> -
> -    vgic_clear_pending_irqs(v);
> +        return -ENOMEM;
> =20
>      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, reg=
ister_t entry_point,
>      free_vcpu_guest_context(ctxt);
> =20
>      if ( rc < 0 )
> +        return rc;
> +
> +    return 0;
> +}
> +
> +static int do_common_cpu_on(register_t target_cpu, register_t entry_poin=
t,
> +                            register_t context_id)
> +{
> +    struct vcpu *v;
> +    struct domain *d =3D current->domain;
> +    int rc;
> +    bool is_thumb =3D entry_point & 1;
> +    register_t vcpuid;
> +
> +    vcpuid =3D vaffinity_to_vcpuid(target_cpu);
> +
> +    if ( (v =3D domain_vcpu(d, vcpuid)) =3D=3D NULL )
> +        return PSCI_INVALID_PARAMETERS;
> +
> +    /* THUMB set is not allowed with 64-bit domain */
> +    if ( is_64bit_domain(d) && is_thumb )
> +        return PSCI_INVALID_ADDRESS;
> +
> +    if ( !test_bit(_VPF_down, &v->pause_flags) )
> +        return PSCI_ALREADY_ON;
> +
> +    rc =3D vpsci_vcpu_up_prepare(v, entry_point, context_id);
> +    if ( rc )
>          return PSCI_DENIED;
> =20
> +    vgic_clear_pending_irqs(v);
>      vcpu_wake(v);
> =20
>      return PSCI_SUCCESS;
> @@ -197,6 +210,48 @@ static void do_psci_0_2_system_reset(void)
>      domain_shutdown(d,SHUTDOWN_reboot);
>  }
> =20
> +static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t =
cid)
> +{
> +    int32_t rc;
> +    struct vcpu *v;
> +    struct domain *d =3D current->domain;
> +    bool is_thumb =3D epoint & 1;
> +
> +    /* THUMB set is not allowed with 64-bit domain */
> +    if ( is_64bit_domain(d) && is_thumb )
> +        return PSCI_INVALID_ADDRESS;
> +
> +    /* SYSTEM_SUSPEND is not supported for the hardware domain yet */
> +    if ( is_hardware_domain(d) )
> +        return PSCI_NOT_SUPPORTED;
> +
> +    /* Ensure that all CPUs other than the calling one are offline */
> +    domain_lock(d);
> +    for_each_vcpu ( d, v )
> +    {
> +        if ( v !=3D current && is_vcpu_online(v) )
> +        {
> +            domain_unlock(d);
> +            return PSCI_DENIED;
> +        }
> +    }
> +    domain_unlock(d);
> +
> +    rc =3D domain_shutdown(d, SHUTDOWN_suspend);
> +    if ( rc )
> +        return PSCI_DENIED;
> +
> +    d->arch.resume_ctx.ep =3D epoint;
> +    d->arch.resume_ctx.cid =3D cid;
> +    d->arch.resume_ctx.wake_cpu =3D current;
> +
> +    gprintk(XENLOG_DEBUG,
> +            "SYSTEM_SUSPEND requested, epoint=3D%#"PRIregister", cid=3D%=
#"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_fun=
c_id)
>      case PSCI_0_2_FN32_SYSTEM_OFF:
>      case PSCI_0_2_FN32_SYSTEM_RESET:
>      case PSCI_1_0_FN32_PSCI_FEATURES:
> +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
>      case ARM_SMCCC_VERSION_FID:
>          return 0;
>      default:
> @@ -344,6 +401,23 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, u=
int32_t fid)
>          return true;
>      }
> =20
> +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
> +    {
> +        register_t epoint =3D PSCI_ARG(regs, 1);
> +        register_t cid =3D PSCI_ARG(regs, 2);
> +
> +        if ( fid =3D=3D PSCI_1_0_FN32_SYSTEM_SUSPEND )
> +        {
> +            epoint &=3D GENMASK(31, 0);
> +            cid &=3D GENMASK(31, 0);
> +        }
> +
> +        perfc_incr(vpsci_system_suspend);
> +        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid));
> +        return true;
> +    }
> +
>      default:
>          return false;
>      }
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 93c71bc766..09ad0a26ee 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>
> @@ -1374,6 +1375,7 @@ int domain_shutdown(struct domain *d, u8 reason)
>  void domain_resume(struct domain *d)
>  {
>      struct vcpu *v;
> +    int rc;
> =20
>      /*
>       * Some code paths assume that shutdown status does not get reset un=
der
> @@ -1383,6 +1385,13 @@ void domain_resume(struct domain *d)
> =20
>      spin_lock(&d->shutdown_lock);
> =20
> +    rc =3D arch_domain_resume(d);
> +    if ( rc )
> +    {
> +        printk("%pd: Failed to resume domain (ret %d)\n", d, rc);

I am wondering about this error path... Domain clearly can't be resumed
anymore. Should we crash it in this case? But domain is already shut
down, so domain_crash() would do nothing.

Probably it is better to ensure that arch_domain_resume() will not
return an error by doing all required checks beforehand. Actually you
already doing this. So how we can get an error realistically?

> +        goto fail;
> +    }
> +
>      d->is_shutting_down =3D d->is_shut_down =3D 0;
>      d->shutdown_code =3D SHUTDOWN_CODE_INVALID;
> =20
> @@ -1393,6 +1402,7 @@ void domain_resume(struct domain *d)
>          v->paused_for_shutdown =3D 0;
>      }
> =20
> + fail:
>      spin_unlock(&d->shutdown_lock);
> =20
>      domain_unpause(d);
> diff --git a/xen/include/xen/suspend.h b/xen/include/xen/suspend.h
> new file mode 100644
> index 0000000000..528879c2a9
> --- /dev/null
> +++ b/xen/include/xen/suspend.h
> @@ -0,0 +1,25 @@
> +/* 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 */
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * tab-width: 4
> + * indent-tabs-mode: nil
> + * End:
> + */

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Wed Mar 18 06:02:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Mar 2026 06:02:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256310.1551015 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2jyt-0002eE-MJ; Wed, 18 Mar 2026 06:02:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256310.1551015; Wed, 18 Mar 2026 06:02:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2jyt-0002dw-IX; Wed, 18 Mar 2026 06:02:11 +0000
Received: by outflank-mailman (input) for mailman id 1256310;
 Wed, 18 Mar 2026 06:02:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6/lf=BS=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w2jys-0002Ah-5q
 for xen-devel@lists.xenproject.org; Wed, 18 Mar 2026 06:02:10 +0000
Received: from canpmsgout01.his.huawei.com (canpmsgout01.his.huawei.com
 [113.46.200.216]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fcc25644-228f-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Mar 2026 07:02:07 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.162.223])
 by canpmsgout01.his.huawei.com (SkyGuard) with ESMTPS id 4fbJ480tSwz1T4g5;
 Wed, 18 Mar 2026 13:56:40 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 2521240569;
 Wed, 18 Mar 2026 14:02:01 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Wed, 18 Mar 2026 14:01: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: fcc25644-228f-11f1-9ccf-f158ae23cfc8
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=JidVbBwVWveb8Q2cCRvXnGJEce6/x2QeOrZ9sxuCXM4=;
	b=DpIEqq/CrkmJmL6LwCkEqHToQvDHHqUkv8mgheeY48ustZyxQm4BMOWiV2XfvPN2Dd8om+p9b
	BEJfQQ0MewxBLdkRV249slzpfq+sdlXsm0e88Er/IjZQ59ICTIEb+b40XL6ZKBJufecu6Y2mK9R
	FZhvGCrURkH6S3xH8txS9qA=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Ingo Molnar <mingo@redhat.com>, Juergen
 Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Len
 Brown <lenb@kernel.org>, Sunil V L <sunilvl@ventanamicro.com>, Mark Rutland
	<mark.rutland@arm.com>, Jonathan Cameron <jonathan.cameron@huawei.com>, Kees
 Cook <kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>, Sean
 Christopherson <seanjc@google.com>, Kai Huang <kai.huang@intel.com>, Tom
 Lendacky <thomas.lendacky@amd.com>, Thomas Huth <thuth@redhat.com>, Thorsten
 Blum <thorsten.blum@linux.dev>, Kevin Loughlin <kevinloughlin@google.com>,
	Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra <peterz@infradead.org>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin Li <xin@zytor.com>,
	"Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v8 2/3] x86: Implement acpi_get_cpu_uid()
Date: Wed, 18 Mar 2026 14:01:50 +0800
Message-ID: <20260318060151.29438-3-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260318060151.29438-1-fengchengwen@huawei.com>
References: <20260318060151.29438-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100001.china.huawei.com (7.221.188.238) To
 kwepemk500009.china.huawei.com (7.202.194.94)

Add acpi_get_cpu_uid() implementation for x86, replacing the existing
cpu_acpi_id() function. This completes the unified ACPI Processor UID
retrieval interface across all ACPI-enabled architectures.

Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 arch/x86/include/asm/cpu.h   |  1 -
 arch/x86/include/asm/smp.h   |  1 -
 arch/x86/kernel/acpi/boot.c  | 20 ++++++++++++++++++++
 arch/x86/xen/enlighten_hvm.c |  5 +++--
 include/linux/acpi.h         |  2 --
 5 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h
index ad235dda1ded..57a0786dfd75 100644
--- a/arch/x86/include/asm/cpu.h
+++ b/arch/x86/include/asm/cpu.h
@@ -11,7 +11,6 @@
 
 #ifndef CONFIG_SMP
 #define cpu_physical_id(cpu)			boot_cpu_physical_apicid
-#define cpu_acpi_id(cpu)			0
 #endif /* CONFIG_SMP */
 
 #ifdef CONFIG_HOTPLUG_CPU
diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
index 84951572ab81..05d1d479b4cf 100644
--- a/arch/x86/include/asm/smp.h
+++ b/arch/x86/include/asm/smp.h
@@ -130,7 +130,6 @@ __visible void smp_call_function_interrupt(struct pt_regs *regs);
 __visible void smp_call_function_single_interrupt(struct pt_regs *r);
 
 #define cpu_physical_id(cpu)	per_cpu(x86_cpu_to_apicid, cpu)
-#define cpu_acpi_id(cpu)	per_cpu(x86_cpu_to_acpiid, cpu)
 
 /*
  * This function is needed by all SMP systems. It must _always_ be valid
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index a3f2fb1fea1b..ceba24f65ae3 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -1848,3 +1848,23 @@ void __iomem * (*acpi_os_ioremap)(acpi_physical_address phys, acpi_size size) =
 	x86_acpi_os_ioremap;
 EXPORT_SYMBOL_GPL(acpi_os_ioremap);
 #endif
+
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
+{
+	u32 acpi_id;
+
+	if (cpu >= nr_cpu_ids)
+		return -EINVAL;
+
+#ifdef CONFIG_SMP
+	acpi_id = per_cpu(x86_cpu_to_acpiid, cpu);
+	if (acpi_id == CPU_ACPIID_INVALID)
+		return -ENODEV;
+#else
+	acpi_id = 0;
+#endif
+
+	*uid = acpi_id;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
diff --git a/arch/x86/xen/enlighten_hvm.c b/arch/x86/xen/enlighten_hvm.c
index fe57ff85d004..2f9fa27e5a3c 100644
--- a/arch/x86/xen/enlighten_hvm.c
+++ b/arch/x86/xen/enlighten_hvm.c
@@ -151,6 +151,7 @@ static void xen_hvm_crash_shutdown(struct pt_regs *regs)
 
 static int xen_cpu_up_prepare_hvm(unsigned int cpu)
 {
+	u32 cpu_uid;
 	int rc = 0;
 
 	/*
@@ -161,8 +162,8 @@ static int xen_cpu_up_prepare_hvm(unsigned int cpu)
 	 */
 	xen_uninit_lock_cpu(cpu);
 
-	if (cpu_acpi_id(cpu) != CPU_ACPIID_INVALID)
-		per_cpu(xen_vcpu_id, cpu) = cpu_acpi_id(cpu);
+	if (acpi_get_cpu_uid(cpu, &cpu_uid) == 0)
+		per_cpu(xen_vcpu_id, cpu) = cpu_uid;
 	else
 		per_cpu(xen_vcpu_id, cpu) = cpu;
 	xen_vcpu_setup(cpu);
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 035094a55f18..90a1fdcb7eb9 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -324,7 +324,6 @@ int acpi_unmap_cpu(int cpu);
 
 acpi_handle acpi_get_processor_handle(int cpu);
 
-#ifndef CONFIG_X86
 /*
  * acpi_get_cpu_uid() - Get ACPI Processor UID of a specified CPU from MADT table
  * @cpu: Logical CPU number (0-based)
@@ -335,7 +334,6 @@ acpi_handle acpi_get_processor_handle(int cpu);
  *         -ENODEV if the ACPI Processor UID for the specified CPU is not found.
  */
 int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
-#endif
 
 #ifdef CONFIG_ACPI_HOTPLUG_IOAPIC
 int acpi_get_ioapic_id(acpi_handle handle, u32 gsi_base, u64 *phys_addr);
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Wed Mar 18 06:02:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Mar 2026 06:02:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256307.1550991 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2jys-0002B4-0A; Wed, 18 Mar 2026 06:02:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256307.1550991; Wed, 18 Mar 2026 06:02:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2jyr-0002Ax-Tm; Wed, 18 Mar 2026 06:02:09 +0000
Received: by outflank-mailman (input) for mailman id 1256307;
 Wed, 18 Mar 2026 06:02:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6/lf=BS=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w2jyp-0002Ah-R5
 for xen-devel@lists.xenproject.org; Wed, 18 Mar 2026 06:02:08 +0000
Received: from canpmsgout09.his.huawei.com (canpmsgout09.his.huawei.com
 [113.46.200.224]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fb2d3782-228f-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Mar 2026 07:02:04 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.200])
 by canpmsgout09.his.huawei.com (SkyGuard) with ESMTPS id 4fbJ4W2hvhz1cyPH;
 Wed, 18 Mar 2026 13:56:59 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 977F440563;
 Wed, 18 Mar 2026 14:01:58 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Wed, 18 Mar 2026 14:01: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: fb2d3782-228f-11f1-9ccf-f158ae23cfc8
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=51eH/vXNC8aaQ91ItRMmRPmictkivabhFOJxc6D8Mp8=;
	b=6fTeFP44IoJsvDAdRh47nierWtD+9KW/YhKmVm3CljAYOKdZ4GqiBOQezvzJgt345BlcTX0c9
	sqo1T5w49CDOlLZL5PCwxq+rmA2hUOPVW1XSpK6wHYAeFPbLvzMiDwH6WcNVyBgPKuYcNIEpADM
	/v9i0v/GTO4oeuEhIfZZc8k=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Ingo Molnar <mingo@redhat.com>, Juergen
 Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Len
 Brown <lenb@kernel.org>, Sunil V L <sunilvl@ventanamicro.com>, Mark Rutland
	<mark.rutland@arm.com>, Jonathan Cameron <jonathan.cameron@huawei.com>, Kees
 Cook <kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>, Sean
 Christopherson <seanjc@google.com>, Kai Huang <kai.huang@intel.com>, Tom
 Lendacky <thomas.lendacky@amd.com>, Thomas Huth <thuth@redhat.com>, Thorsten
 Blum <thorsten.blum@linux.dev>, Kevin Loughlin <kevinloughlin@google.com>,
	Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra <peterz@infradead.org>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin Li <xin@zytor.com>,
	"Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v8 0/3] Fix get cpu steer-tag fail on ARM64 platform
Date: Wed, 18 Mar 2026 14:01:48 +0800
Message-ID: <20260318060151.29438-1-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100001.china.huawei.com (7.221.188.238) To
 kwepemk500009.china.huawei.com (7.202.194.94)

This patchset fixes the failure of CPU steer tag retrieval on ARM64
platforms. The series is structured as follows:

1. First commit: Refactor the ACPI Processor UID retrieval interface
   (no functional changes when input valid) to align naming conventions
   across arm64/riscv/loongarch architectures;
2. Second commit: Implement acpi_get_cpu_uid() for the x86 platform to
   complete the unified ACPI Processor UID interface across all
   ACPI-enabled architectures;
3. Third commit: Implement the core fix for the CPU steer tag retrieval
   logic on ARM64 (the root cause of the retrieval failure).

The refactor and x86 implementation lay the groundwork for the unified
ACPI interface required by the ARM64 steer tag fix, ensuring consistent
CPU UID retrieval across architectures before addressing the functional
bug.

---
Changes in v8:
- Moving arm64's get_cpu_for_acpi_id() to kernel/acpi.c which address
  Jeremy's review

Changes in v7:
- Refine first commit which address Jonathan's reviews
- Fix x86 implement bug (not consider INVALID-ID) which address Peter's
  review
- Fix CI error of x86 implement by moving function to acpi/boot.c

Changes in v6:
- Rename existing get_acpi_id_for_cpu() to acpi_get_cpu_uid()
- Split x86's modify as one commit

Chengwen Feng (3):
  ACPI: Refactor get_acpi_id_for_cpu() to acpi_get_cpu_uid() on non-x86
  x86: Implement acpi_get_cpu_uid()
  PCI/TPH: Fix get cpu steer-tag fail on ARM64 platform

 Documentation/PCI/tph.rst          |  4 +--
 arch/arm64/include/asm/acpi.h      | 16 +---------
 arch/arm64/kernel/acpi.c           | 30 ++++++++++++++++++
 arch/loongarch/include/asm/acpi.h  |  5 ---
 arch/loongarch/kernel/acpi.c       |  9 ++++++
 arch/riscv/include/asm/acpi.h      |  4 ---
 arch/riscv/kernel/acpi.c           | 16 ++++++++++
 arch/riscv/kernel/acpi_numa.c      |  9 ++++--
 arch/x86/include/asm/cpu.h         |  1 -
 arch/x86/include/asm/smp.h         |  1 -
 arch/x86/kernel/acpi/boot.c        | 20 ++++++++++++
 arch/x86/xen/enlighten_hvm.c       |  5 +--
 drivers/acpi/pptt.c                | 50 ++++++++++++++++++++++--------
 drivers/acpi/riscv/rhct.c          |  7 ++++-
 drivers/pci/tph.c                  | 16 +++++++---
 drivers/perf/arm_cspmu/arm_cspmu.c |  6 ++--
 include/linux/acpi.h               | 11 +++++++
 include/linux/pci-tph.h            |  4 +--
 18 files changed, 158 insertions(+), 56 deletions(-)

-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Wed Mar 18 06:02:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Mar 2026 06:02:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256309.1551010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2jyt-0002b4-EL; Wed, 18 Mar 2026 06:02:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256309.1551010; Wed, 18 Mar 2026 06:02:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2jyt-0002aw-BJ; Wed, 18 Mar 2026 06:02:11 +0000
Received: by outflank-mailman (input) for mailman id 1256309;
 Wed, 18 Mar 2026 06:02: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=6/lf=BS=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w2jyr-0002Ah-I1
 for xen-devel@lists.xenproject.org; Wed, 18 Mar 2026 06:02:09 +0000
Received: from canpmsgout11.his.huawei.com (canpmsgout11.his.huawei.com
 [113.46.200.226]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fb3a52f9-228f-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Mar 2026 07:02:04 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.127])
 by canpmsgout11.his.huawei.com (SkyGuard) with ESMTPS id 4fbJ4W5jvZzKm5D;
 Wed, 18 Mar 2026 13:56:59 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id D8BD4402AB;
 Wed, 18 Mar 2026 14:01:59 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Wed, 18 Mar 2026 14:01: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: fb3a52f9-228f-11f1-9ccf-f158ae23cfc8
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=lq8+mB8L5QD5TKk2hjTSB9K5OeYtZIvRCv3T5i9Ol/w=;
	b=uMq8Dpdcb9nDAM0yfNrKdfQyyOMODsWH8DpwAh30vkNpg67AdeaYHmfPqmJB/Uogbag4OqWbY
	1kSl1RvszpVyZhCEbjK8ETdiSfD3+SwQh7Joj9Hu0pmNvVfOnAANWFsWd1mUQotdW5IMg6nFeFE
	pWNN5mph5VlYkebg+v0xeZo=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Ingo Molnar <mingo@redhat.com>, Juergen
 Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Len
 Brown <lenb@kernel.org>, Sunil V L <sunilvl@ventanamicro.com>, Mark Rutland
	<mark.rutland@arm.com>, Jonathan Cameron <jonathan.cameron@huawei.com>, Kees
 Cook <kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>, Sean
 Christopherson <seanjc@google.com>, Kai Huang <kai.huang@intel.com>, Tom
 Lendacky <thomas.lendacky@amd.com>, Thomas Huth <thuth@redhat.com>, Thorsten
 Blum <thorsten.blum@linux.dev>, Kevin Loughlin <kevinloughlin@google.com>,
	Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra <peterz@infradead.org>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin Li <xin@zytor.com>,
	"Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v8 1/3] ACPI: Refactor get_acpi_id_for_cpu() to acpi_get_cpu_uid() on non-x86
Date: Wed, 18 Mar 2026 14:01:49 +0800
Message-ID: <20260318060151.29438-2-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260318060151.29438-1-fengchengwen@huawei.com>
References: <20260318060151.29438-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100001.china.huawei.com (7.221.188.238) To
 kwepemk500009.china.huawei.com (7.202.194.94)

Unify CPU ACPI ID retrieval interface across architectures by
refactoring get_acpi_id_for_cpu() to acpi_get_cpu_uid() on
arm64/riscv/loongarch:
- Add input parameter validation
- Adjust interface to int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
  (old: u32 get_acpi_id_for_cpu(unsigned int cpu), no input check)

This refactoring (not a pure rename) enhances interface robustness while
preparing for consistent ACPI Processor UID retrieval across all
ACPI-enabled platforms. Valid inputs retain original behavior.

Note: Move the ARM64-specific get_cpu_for_acpi_id() implementation to
      arch/arm64/kernel/acpi.c to fix compilation errors from circular
      header dependencies introduced by the rename.

Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 arch/arm64/include/asm/acpi.h      | 16 +---------
 arch/arm64/kernel/acpi.c           | 30 ++++++++++++++++++
 arch/loongarch/include/asm/acpi.h  |  5 ---
 arch/loongarch/kernel/acpi.c       |  9 ++++++
 arch/riscv/include/asm/acpi.h      |  4 ---
 arch/riscv/kernel/acpi.c           | 16 ++++++++++
 arch/riscv/kernel/acpi_numa.c      |  9 ++++--
 drivers/acpi/pptt.c                | 50 ++++++++++++++++++++++--------
 drivers/acpi/riscv/rhct.c          |  7 ++++-
 drivers/perf/arm_cspmu/arm_cspmu.c |  6 ++--
 include/linux/acpi.h               | 13 ++++++++
 11 files changed, 122 insertions(+), 43 deletions(-)

diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
index c07a58b96329..106a08556cbf 100644
--- a/arch/arm64/include/asm/acpi.h
+++ b/arch/arm64/include/asm/acpi.h
@@ -114,22 +114,8 @@ static inline bool acpi_has_cpu_in_madt(void)
 }
 
 struct acpi_madt_generic_interrupt *acpi_cpu_get_madt_gicc(int cpu);
-static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
-{
-	return	acpi_cpu_get_madt_gicc(cpu)->uid;
-}
-
-static inline int get_cpu_for_acpi_id(u32 uid)
-{
-	int cpu;
-
-	for (cpu = 0; cpu < nr_cpu_ids; cpu++)
-		if (acpi_cpu_get_madt_gicc(cpu) &&
-		    uid == get_acpi_id_for_cpu(cpu))
-			return cpu;
 
-	return -EINVAL;
-}
+int get_cpu_for_acpi_id(u32 uid);
 
 static inline void arch_fix_phys_package_id(int num, u32 slot) { }
 void __init acpi_init_cpus(void);
diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
index af90128cfed5..24b9d934be54 100644
--- a/arch/arm64/kernel/acpi.c
+++ b/arch/arm64/kernel/acpi.c
@@ -458,3 +458,33 @@ int acpi_unmap_cpu(int cpu)
 }
 EXPORT_SYMBOL(acpi_unmap_cpu);
 #endif /* CONFIG_ACPI_HOTPLUG_CPU */
+
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
+{
+	struct acpi_madt_generic_interrupt *gicc;
+
+	if (cpu >= nr_cpu_ids)
+		return -EINVAL;
+
+	gicc = acpi_cpu_get_madt_gicc(cpu);
+	if (!gicc)
+		return -ENODEV;
+
+	*uid = gicc->uid;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
+
+int get_cpu_for_acpi_id(u32 uid)
+{
+	u32 cpu_uid;
+	int ret;
+
+	for (int cpu = 0; cpu < nr_cpu_ids; cpu++) {
+		ret = acpi_get_cpu_uid(cpu, &cpu_uid);
+		if (ret == 0 && uid == cpu_uid)
+			return cpu;
+	}
+
+	return -EINVAL;
+}
diff --git a/arch/loongarch/include/asm/acpi.h b/arch/loongarch/include/asm/acpi.h
index 7376840fa9f7..eda9d4d0a493 100644
--- a/arch/loongarch/include/asm/acpi.h
+++ b/arch/loongarch/include/asm/acpi.h
@@ -40,11 +40,6 @@ extern struct acpi_madt_core_pic acpi_core_pic[MAX_CORE_PIC];
 
 extern int __init parse_acpi_topology(void);
 
-static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
-{
-	return acpi_core_pic[cpu_logical_map(cpu)].processor_id;
-}
-
 #endif /* !CONFIG_ACPI */
 
 #define ACPI_TABLE_UPGRADE_MAX_PHYS ARCH_LOW_ADDRESS_LIMIT
diff --git a/arch/loongarch/kernel/acpi.c b/arch/loongarch/kernel/acpi.c
index 1367ca759468..058f0dbe8e8f 100644
--- a/arch/loongarch/kernel/acpi.c
+++ b/arch/loongarch/kernel/acpi.c
@@ -385,3 +385,12 @@ int acpi_unmap_cpu(int cpu)
 EXPORT_SYMBOL(acpi_unmap_cpu);
 
 #endif /* CONFIG_ACPI_HOTPLUG_CPU */
+
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
+{
+	if (cpu >= nr_cpu_ids)
+		return -EINVAL;
+	*uid = acpi_core_pic[cpu_logical_map(cpu)].processor_id;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
diff --git a/arch/riscv/include/asm/acpi.h b/arch/riscv/include/asm/acpi.h
index 6e13695120bc..26ab37c171bc 100644
--- a/arch/riscv/include/asm/acpi.h
+++ b/arch/riscv/include/asm/acpi.h
@@ -61,10 +61,6 @@ static inline void arch_fix_phys_package_id(int num, u32 slot) { }
 
 void acpi_init_rintc_map(void);
 struct acpi_madt_rintc *acpi_cpu_get_madt_rintc(int cpu);
-static inline u32 get_acpi_id_for_cpu(int cpu)
-{
-	return acpi_cpu_get_madt_rintc(cpu)->uid;
-}
 
 int acpi_get_riscv_isa(struct acpi_table_header *table,
 		       unsigned int cpu, const char **isa);
diff --git a/arch/riscv/kernel/acpi.c b/arch/riscv/kernel/acpi.c
index 71698ee11621..322ea92aa39f 100644
--- a/arch/riscv/kernel/acpi.c
+++ b/arch/riscv/kernel/acpi.c
@@ -337,3 +337,19 @@ int raw_pci_write(unsigned int domain, unsigned int bus,
 }
 
 #endif	/* CONFIG_PCI */
+
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
+{
+	struct acpi_madt_rintc *rintc;
+
+	if (cpu >= nr_cpu_ids)
+		return -EINVAL;
+
+	rintc = acpi_cpu_get_madt_rintc(cpu);
+	if (!rintc)
+		return -ENODEV;
+
+	*uid = rintc->uid;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
diff --git a/arch/riscv/kernel/acpi_numa.c b/arch/riscv/kernel/acpi_numa.c
index 130769e3a99c..6a2d4289f806 100644
--- a/arch/riscv/kernel/acpi_numa.c
+++ b/arch/riscv/kernel/acpi_numa.c
@@ -37,11 +37,14 @@ static int __init acpi_numa_get_nid(unsigned int cpu)
 
 static inline int get_cpu_for_acpi_id(u32 uid)
 {
-	int cpu;
+	u32 cpu_uid;
+	int ret;
 
-	for (cpu = 0; cpu < nr_cpu_ids; cpu++)
-		if (uid == get_acpi_id_for_cpu(cpu))
+	for (int cpu = 0; cpu < nr_cpu_ids; cpu++) {
+		ret = acpi_get_cpu_uid(cpu, &cpu_uid);
+		if (ret == 0 && uid == cpu_uid)
 			return cpu;
+	}
 
 	return -EINVAL;
 }
diff --git a/drivers/acpi/pptt.c b/drivers/acpi/pptt.c
index de5f8c018333..7bd5bc1f225a 100644
--- a/drivers/acpi/pptt.c
+++ b/drivers/acpi/pptt.c
@@ -459,11 +459,14 @@ static void cache_setup_acpi_cpu(struct acpi_table_header *table,
 {
 	struct acpi_pptt_cache *found_cache;
 	struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id;
 	struct cacheinfo *this_leaf;
 	unsigned int index = 0;
 	struct acpi_pptt_processor *cpu_node = NULL;
 
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+		return;
+
 	while (index < get_cpu_cacheinfo(cpu)->num_leaves) {
 		this_leaf = this_cpu_ci->info_list + index;
 		found_cache = acpi_find_cache_node(table, acpi_cpu_id,
@@ -546,7 +549,10 @@ static int topology_get_acpi_cpu_tag(struct acpi_table_header *table,
 				     unsigned int cpu, int level, int flag)
 {
 	struct acpi_pptt_processor *cpu_node;
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id;
+
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+		return -ENOENT;
 
 	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 	if (cpu_node) {
@@ -614,18 +620,22 @@ static int find_acpi_cpu_topology_tag(unsigned int cpu, int level, int flag)
  *
  * Check the node representing a CPU for a given flag.
  *
- * Return: -ENOENT if the PPTT doesn't exist, the CPU cannot be found or
- *	   the table revision isn't new enough.
+ * Return: -ENOENT if can't get CPU's ACPI Processor UID, the PPTT doesn't
+ *	   exist, the CPU cannot be found or the table revision isn't new
+ *	   enough.
  *	   1, any passed flag set
  *	   0, flag unset
  */
 static int check_acpi_cpu_flag(unsigned int cpu, int rev, u32 flag)
 {
 	struct acpi_table_header *table;
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id;
 	struct acpi_pptt_processor *cpu_node = NULL;
 	int ret = -ENOENT;
 
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+		return -ENOENT;
+
 	table = acpi_get_pptt();
 	if (!table)
 		return -ENOENT;
@@ -651,7 +661,8 @@ static int check_acpi_cpu_flag(unsigned int cpu, int rev, u32 flag)
  * in the PPTT. Errors caused by lack of a PPTT table, or otherwise, return 0
  * indicating we didn't find any cache levels.
  *
- * Return: -ENOENT if no PPTT table or no PPTT processor struct found.
+ * Return: -ENOENT if no PPTT table, can't get CPU's ACPI Process UID or no PPTT
+ *	   processor struct found.
  *	   0 on success.
  */
 int acpi_get_cache_info(unsigned int cpu, unsigned int *levels,
@@ -671,7 +682,9 @@ int acpi_get_cache_info(unsigned int cpu, unsigned int *levels,
 
 	pr_debug("Cache Setup: find cache levels for CPU=%d\n", cpu);
 
-	acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id))
+		return -ENOENT;
+
 	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 	if (!cpu_node)
 		return -ENOENT;
@@ -780,8 +793,9 @@ int find_acpi_cpu_topology_package(unsigned int cpu)
  * It may not exist in single CPU systems. In simple multi-CPU systems,
  * it may be equal to the package topology level.
  *
- * Return: -ENOENT if the PPTT doesn't exist, the CPU cannot be found
- * or there is no toplogy level above the CPU..
+ * Return: -ENOENT if the PPTT doesn't exist, can't get CPU's ACPI
+ * Processor UID, the CPU cannot be found or there is no toplogy level
+ * above the CPU.
  * Otherwise returns a value which represents the package for this CPU.
  */
 
@@ -797,7 +811,9 @@ int find_acpi_cpu_topology_cluster(unsigned int cpu)
 	if (!table)
 		return -ENOENT;
 
-	acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+		return -ENOENT;
+
 	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 	if (!cpu_node || !cpu_node->parent)
 		return -ENOENT;
@@ -872,7 +888,9 @@ static void acpi_pptt_get_child_cpus(struct acpi_table_header *table_hdr,
 	cpumask_clear(cpus);
 
 	for_each_possible_cpu(cpu) {
-		acpi_id = get_acpi_id_for_cpu(cpu);
+		if (acpi_get_cpu_uid(cpu, &acpi_id) != 0)
+			continue;
+
 		cpu_node = acpi_find_processor_node(table_hdr, acpi_id);
 
 		while (cpu_node) {
@@ -966,10 +984,13 @@ int find_acpi_cache_level_from_id(u32 cache_id)
 	for_each_possible_cpu(cpu) {
 		bool empty;
 		int level = 1;
-		u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+		u32 acpi_cpu_id;
 		struct acpi_pptt_cache *cache;
 		struct acpi_pptt_processor *cpu_node;
 
+		if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+			continue;
+
 		cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 		if (!cpu_node)
 			continue;
@@ -1030,10 +1051,13 @@ int acpi_pptt_get_cpumask_from_cache_id(u32 cache_id, cpumask_t *cpus)
 	for_each_possible_cpu(cpu) {
 		bool empty;
 		int level = 1;
-		u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+		u32 acpi_cpu_id;
 		struct acpi_pptt_cache *cache;
 		struct acpi_pptt_processor *cpu_node;
 
+		if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+			continue;
+
 		cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 		if (!cpu_node)
 			continue;
diff --git a/drivers/acpi/riscv/rhct.c b/drivers/acpi/riscv/rhct.c
index caa2c16e1697..8f3f38c64a88 100644
--- a/drivers/acpi/riscv/rhct.c
+++ b/drivers/acpi/riscv/rhct.c
@@ -44,10 +44,15 @@ int acpi_get_riscv_isa(struct acpi_table_header *table, unsigned int cpu, const
 	struct acpi_rhct_isa_string *isa_node;
 	struct acpi_table_rhct *rhct;
 	u32 *hart_info_node_offset;
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id;
+	int ret;
 
 	BUG_ON(acpi_disabled);
 
+	ret = acpi_get_cpu_uid(cpu, &acpi_cpu_id);
+	if (ret != 0)
+		return ret;
+
 	if (!table) {
 		rhct = acpi_get_rhct();
 		if (!rhct)
diff --git a/drivers/perf/arm_cspmu/arm_cspmu.c b/drivers/perf/arm_cspmu/arm_cspmu.c
index 34430b68f602..ed72c3d1f796 100644
--- a/drivers/perf/arm_cspmu/arm_cspmu.c
+++ b/drivers/perf/arm_cspmu/arm_cspmu.c
@@ -1107,15 +1107,17 @@ static int arm_cspmu_acpi_get_cpus(struct arm_cspmu *cspmu)
 {
 	struct acpi_apmt_node *apmt_node;
 	int affinity_flag;
+	u32 cpu_uid;
 	int cpu;
+	int ret;
 
 	apmt_node = arm_cspmu_apmt_node(cspmu->dev);
 	affinity_flag = apmt_node->flags & ACPI_APMT_FLAGS_AFFINITY;
 
 	if (affinity_flag == ACPI_APMT_FLAGS_AFFINITY_PROC) {
 		for_each_possible_cpu(cpu) {
-			if (apmt_node->proc_affinity ==
-			    get_acpi_id_for_cpu(cpu)) {
+			ret = acpi_get_cpu_uid(cpu, &cpu_uid);
+			if (ret == 0 && apmt_node->proc_affinity == cpu_uid) {
 				cpumask_set_cpu(cpu, &cspmu->associated_cpus);
 				break;
 			}
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 4d2f0bed7a06..035094a55f18 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -324,6 +324,19 @@ int acpi_unmap_cpu(int cpu);
 
 acpi_handle acpi_get_processor_handle(int cpu);
 
+#ifndef CONFIG_X86
+/*
+ * acpi_get_cpu_uid() - Get ACPI Processor UID of a specified CPU from MADT table
+ * @cpu: Logical CPU number (0-based)
+ * @uid: Pointer to store the ACPI Processor UID (valid only on successful return)
+ *
+ * Return: 0 on successful retrieval (the ACPI Processor ID is stored in *uid);
+ *         -EINVAL if the CPU number is invalid or out of range;
+ *         -ENODEV if the ACPI Processor UID for the specified CPU is not found.
+ */
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
+#endif
+
 #ifdef CONFIG_ACPI_HOTPLUG_IOAPIC
 int acpi_get_ioapic_id(acpi_handle handle, u32 gsi_base, u64 *phys_addr);
 #endif
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Wed Mar 18 06:02:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Mar 2026 06:02:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256308.1550997 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2jys-0002E8-9B; Wed, 18 Mar 2026 06:02:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256308.1550997; Wed, 18 Mar 2026 06:02:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2jys-0002Co-3n; Wed, 18 Mar 2026 06:02:10 +0000
Received: by outflank-mailman (input) for mailman id 1256308;
 Wed, 18 Mar 2026 06:02: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=6/lf=BS=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w2jyr-0002Ah-15
 for xen-devel@lists.xenproject.org; Wed, 18 Mar 2026 06:02:09 +0000
Received: from canpmsgout04.his.huawei.com (canpmsgout04.his.huawei.com
 [113.46.200.219]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fd173ac4-228f-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Mar 2026 07:02:06 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.104])
 by canpmsgout04.his.huawei.com (SkyGuard) with ESMTPS id 4fbJ4X5C7bz1prKw;
 Wed, 18 Mar 2026 13:57:00 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 6988B4056D;
 Wed, 18 Mar 2026 14:02:02 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Wed, 18 Mar 2026 14:02: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: fd173ac4-228f-11f1-9ccf-f158ae23cfc8
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=yK49JnkLKpYBZOqDDiJ5tuFkHdnhSIg09tqBvQIMd28=;
	b=kKHyA/oBTEDBLkGyt6IF5Mfl/9NSCdKjuLiy/HF08xBMphI4nGy1HFAwxMG51XNjBjkBo5mE1
	yjJ8Kunab1b6+Q35VPZpdNjHq9uHYBsa/8T6vWVzXsQpo9LPA6UF2V4Yh93oUHRXBNRvgd2kM7T
	N9D++v+eloU19GgyjqKPnrA=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Ingo Molnar <mingo@redhat.com>, Juergen
 Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Len
 Brown <lenb@kernel.org>, Sunil V L <sunilvl@ventanamicro.com>, Mark Rutland
	<mark.rutland@arm.com>, Jonathan Cameron <jonathan.cameron@huawei.com>, Kees
 Cook <kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>, Sean
 Christopherson <seanjc@google.com>, Kai Huang <kai.huang@intel.com>, Tom
 Lendacky <thomas.lendacky@amd.com>, Thomas Huth <thuth@redhat.com>, Thorsten
 Blum <thorsten.blum@linux.dev>, Kevin Loughlin <kevinloughlin@google.com>,
	Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra <peterz@infradead.org>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin Li <xin@zytor.com>,
	"Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v8 3/3] PCI/TPH: Fix get cpu steer-tag fail on ARM64 platform
Date: Wed, 18 Mar 2026 14:01:51 +0800
Message-ID: <20260318060151.29438-4-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260318060151.29438-1-fengchengwen@huawei.com>
References: <20260318060151.29438-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100001.china.huawei.com (7.221.188.238) To
 kwepemk500009.china.huawei.com (7.202.194.94)

pcie_tph_get_cpu_st() is broken on ARM64:
1. pcie_tph_get_cpu_st() passes cpu_uid to the PCI ACPI DSM method.
   cpu_uid should be the ACPI Processor UID [1].
2. In BNXT, pcie_tph_get_cpu_st() is passed a cpu_uid obtained via
   cpumask_first(irq->cpu_mask) - the logical CPU ID of a CPU core,
   generated and managed by kernel (e.g., [0,255] for a system  with 256
   logical CPU cores).
3. On ARM64 platforms, ACPI assigns Processor UID to cores listed in the
   MADT table, and this UID may not match the kernel's logical CPU ID.
   When this occurs, the mismatch results in the wrong CPU steer-tag.
4. On AMD x86 the logical CPU ID is identical to the ACPI Processor UID
   so the mismatch is not seen.

Resolution:
1. Use acpi_get_cpu_uid() in pcie_tph_get_cpu_st() to translate from
   logical CPU ID to ACPI Processor UID needed for the DSM call.
2. Rename pcie_tpu_get_cpu_st() parameter from cpu_uid to cpu to
   reflect that it is a logical CPU_ID.

[1] According to ECN_TPH-ST_Revision_20200924
    (https://members.pcisig.com/wg/PCI-SIG/document/15470), the input
    is defined as: "If the target is a processor, then this field
    represents the ACPI Processor UID of the processor as specified in
    the MADT. If the target is a processor container, then this field
    represents the ACPI Processor UID of the processor container as
    specified in the PPTT."

Fixes: d2e8a34876ce ("PCI/TPH: Add Steering Tag support")
Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 Documentation/PCI/tph.rst |  4 ++--
 drivers/pci/tph.c         | 16 +++++++++++-----
 include/linux/pci-tph.h   |  4 ++--
 3 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/Documentation/PCI/tph.rst b/Documentation/PCI/tph.rst
index e8993be64fd6..b6cf22b9bd90 100644
--- a/Documentation/PCI/tph.rst
+++ b/Documentation/PCI/tph.rst
@@ -79,10 +79,10 @@ To retrieve a Steering Tag for a target memory associated with a specific
 CPU, use the following function::
 
   int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type type,
-                          unsigned int cpu_uid, u16 *tag);
+                          unsigned int cpu, u16 *tag);
 
 The `type` argument is used to specify the memory type, either volatile
-or persistent, of the target memory. The `cpu_uid` argument specifies the
+or persistent, of the target memory. The `cpu` argument specifies the
 CPU where the memory is associated to.
 
 After the ST value is retrieved, the device driver can use the following
diff --git a/drivers/pci/tph.c b/drivers/pci/tph.c
index ca4f97be7538..b67c9ad14bda 100644
--- a/drivers/pci/tph.c
+++ b/drivers/pci/tph.c
@@ -236,21 +236,27 @@ static int write_tag_to_st_table(struct pci_dev *pdev, int index, u16 tag)
  * with a specific CPU
  * @pdev: PCI device
  * @mem_type: target memory type (volatile or persistent RAM)
- * @cpu_uid: associated CPU id
+ * @cpu: associated CPU id
  * @tag: Steering Tag to be returned
  *
  * Return the Steering Tag for a target memory that is associated with a
- * specific CPU as indicated by cpu_uid.
+ * specific CPU as indicated by cpu.
  *
  * Return: 0 if success, otherwise negative value (-errno)
  */
 int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type mem_type,
-			unsigned int cpu_uid, u16 *tag)
+			unsigned int cpu, u16 *tag)
 {
 #ifdef CONFIG_ACPI
 	struct pci_dev *rp;
 	acpi_handle rp_acpi_handle;
 	union st_info info;
+	u32 cpu_uid;
+	int ret;
+
+	ret = acpi_get_cpu_uid(cpu, &cpu_uid);
+	if (ret != 0)
+		return ret;
 
 	rp = pcie_find_root_port(pdev);
 	if (!rp || !rp->bus || !rp->bus->bridge)
@@ -265,9 +271,9 @@ int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type mem_type,
 
 	*tag = tph_extract_tag(mem_type, pdev->tph_req_type, &info);
 
-	pci_dbg(pdev, "get steering tag: mem_type=%s, cpu_uid=%d, tag=%#04x\n",
+	pci_dbg(pdev, "get steering tag: mem_type=%s, cpu=%d, tag=%#04x\n",
 		(mem_type == TPH_MEM_TYPE_VM) ? "volatile" : "persistent",
-		cpu_uid, *tag);
+		cpu, *tag);
 
 	return 0;
 #else
diff --git a/include/linux/pci-tph.h b/include/linux/pci-tph.h
index ba28140ce670..be68cd17f2f8 100644
--- a/include/linux/pci-tph.h
+++ b/include/linux/pci-tph.h
@@ -25,7 +25,7 @@ int pcie_tph_set_st_entry(struct pci_dev *pdev,
 			  unsigned int index, u16 tag);
 int pcie_tph_get_cpu_st(struct pci_dev *dev,
 			enum tph_mem_type mem_type,
-			unsigned int cpu_uid, u16 *tag);
+			unsigned int cpu, u16 *tag);
 void pcie_disable_tph(struct pci_dev *pdev);
 int pcie_enable_tph(struct pci_dev *pdev, int mode);
 u16 pcie_tph_get_st_table_size(struct pci_dev *pdev);
@@ -36,7 +36,7 @@ static inline int pcie_tph_set_st_entry(struct pci_dev *pdev,
 { return -EINVAL; }
 static inline int pcie_tph_get_cpu_st(struct pci_dev *dev,
 				      enum tph_mem_type mem_type,
-				      unsigned int cpu_uid, u16 *tag)
+				      unsigned int cpu, u16 *tag)
 { return -EINVAL; }
 static inline void pcie_disable_tph(struct pci_dev *pdev) { }
 static inline int pcie_enable_tph(struct pci_dev *pdev, int mode)
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Wed Mar 18 06:35:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Mar 2026 06:35:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256343.1551029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2kVM-00083k-BP; Wed, 18 Mar 2026 06:35:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256343.1551029; Wed, 18 Mar 2026 06: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 1w2kVM-00083c-6q; Wed, 18 Mar 2026 06:35:44 +0000
Received: by outflank-mailman (input) for mailman id 1256343;
 Wed, 18 Mar 2026 06:35: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=SizD=BS=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1w2kVL-00083U-5A
 for xen-devel@lists.xenproject.org; Wed, 18 Mar 2026 06:35:43 +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 ae86b726-2294-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Mar 2026 07:35:40 +0100 (CET)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-5a277379151so949216e87.2
 for <xen-devel@lists.xenproject.org>; Tue, 17 Mar 2026 23:35:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ae86b726-2294-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1773815740; cv=none;
        d=google.com; s=arc-20240605;
        b=WNHW5r8bU1nR6lrVYASGwxl8VRztUXVM4uPCLHonM6QxgeJXCvR7DOaFWFFjaU4hSe
         IrlRxBqo4/RpJvMYLuE1msFUu9Me+j0Nfw2y+qf2w+1v/MHntXxqFP+pGYGvxYFNGcgq
         +zdXyd7UXfmOTVqG4guaX/9hoOgbHqdjhJhfmfPsRwkBxg3K5dIfMFsdi2iorfz9tFMV
         Gcn9lEVJ9HRDWdt2cjmcwP9w0IFT0/prv9+C312dM43YE5fkXZoncDPygsu90+X2MkD/
         V2qidagMqCJS4iOfrhv+0zHOrYJ074N4l+YwvlWyC1ZMWMAGLshURbtWmaDAp+yvREwR
         YaXw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=xj/8qjLdJUYlFeq1ZqVOoJIykQbkpgeynPOtdumGMBM=;
        fh=+z1me4HcwmMh3qCmrOCycJuAlwnlec/5AtLzgU3s9w0=;
        b=CMGIpIt0xt52LlJCPb9r43K0ZDjC7yLme4pU6HxPzIu/pbF0xnxtj5N3jZ86lb5qrB
         Sc9LW0iRsqVZKMbqO1VdabTiEqDh5Wq5S4dbJPm2pKnVRU27PQX76L87gIDqngXg7foK
         FnLEVhXtoB/zv3MihZyXuZvTXaGxQINkk6xqtaJGsJVMNOvzfbq1H2ae7l4xbsDfuNh9
         wB73FIDnO//xVLKzXeBUDIZJPvbXE3DkZNz8sMdf+8bmrYhkkoAgH1FwjuJ0qUlho7zG
         iViaJmrARyWp5StWWyC6+oa9pcRFrsbSlkAPwMSxeEkfWfYX3cGXh6pnrSumKncITZM0
         /yeA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773815740; x=1774420540; 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=xj/8qjLdJUYlFeq1ZqVOoJIykQbkpgeynPOtdumGMBM=;
        b=d+ALUCGCxaQBQQfyz4+WgzZd/8r09eH7T0naIzktEycXwN1Mijq5miMEOw6wXQpeoU
         KlzRzj5g2a8r/tfJmoi6yzDyWNtEb7p/WYWAVytVzCg9RLP5ExBJkV/EF/R8XjhLFVnV
         i5NVGI0kF/da2x24I5sdkoXF9AVYvJW4EpJKBOhQH6DVZ7NOa5++qgjHSm97cbmFCY24
         rJ6HsgHGeqCL41p+5QKYGBOyXwLXy9I6vAsiJT3HSE8RSSiZFJNrok20Z6n2NpBODoyo
         3xs86D1lQheb3g3o8AT2w1BZ6mbUS1JKzMs4l32WDYTA9kn85OZ6jbzPfZrKCOQD6hz9
         CmbQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773815740; x=1774420540;
        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=xj/8qjLdJUYlFeq1ZqVOoJIykQbkpgeynPOtdumGMBM=;
        b=SrKDtcpAwAK4sTPEpxmCTPB2+L6V/OR2VU+PA6aPUOXI8PUTaagQb4mJPJvv3jHVA5
         ExntD5wAM/MfR2XaV+PByCsNu37yI/yHP2Hq1I52Wbcg1rKrHbRHkXAHe3iPrZNQbneM
         BofLLKuupoUZGy2aGeWIajtSiCzKEVmoHTkrHxApZp96hjq4RIHCgAke3s9GdYx5p1zs
         VyQKRXYVabRl+WxG2QM1TkrIhQLQozV35brq8yuRc6ayaASFMEHTk5rk5QAeKDzrDh0K
         zD37LEkvVqYrkvNvIPWJxoYZ1aNrASZcZUyEFGDERebZAz4ajG1no/hTOwitHHJoW7g9
         4Ssw==
X-Gm-Message-State: AOJu0Yyzmva/kx0JEkX0c4Mq5kEeTkwvHVv8E00Gj21vnw/6Rxq1j/tl
	Hp4RKFGnLmYkz8mevIHyozCIjXzVSB/nQxyKVpFsgqUibgyQui/i+2yTe5O4rHgfOYRWmQ4mtAG
	zPfVq1BqHhhWrfSx/M6vX93m4RNIV7v4=
X-Gm-Gg: ATEYQzzuKLZqW2emdpQyP4Zdn5TyeheZPzb1ofEBjOFTFi2o1QlvSdtk97PkgqQEcsz
	q8MFy3fACHbdE5yolAl2fHqhobuxZVguJxqbQyH9NmnZ643ep91XDgWA1LKbBmBHeRgLXk++mLx
	wEjFu10+hXV//7qQYdDvblbn8QDpAQN+0ppo873cRqH03jxiyVVtEBPaBM0lUPp5CVoUAcXFlBo
	jBcKTrgJcZ6ZdXaPICKXQX0OXyOCsJvHZHJJmZnvTAjOl9Mewx72k141smPNL7WeQtJheWUQzY6
	LsH42Pk=
X-Received: by 2002:a05:6512:20c9:b0:5a1:23fe:b04c with SMTP id
 2adb3069b0e04-5a27958b7f8mr762787e87.18.1773815739297; Tue, 17 Mar 2026
 23:35:39 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1765533584.git.mykola_kvach@epam.com> <f1d118552f84e2b894ec7163000f6dba98d0e3fa.1765533584.git.mykola_kvach@epam.com>
 <87jyv9kbxe.fsf@epam.com>
In-Reply-To: <87jyv9kbxe.fsf@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Wed, 18 Mar 2026 08:35:27 +0200
X-Gm-Features: AaiRm53Egc9ZaBeax5JzNHHp1WzLacIeqmEvw0AWkyfatQaFr8fG6h3_s5sK60k
Message-ID: <CAGeoDV-znwz8pG9VfrOOC57O2hp83vMuE9QZEtZMxc70VtDuKA@mail.gmail.com>
Subject: Re: [PATCH v16 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <Mykola_Kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Volodymyr,

Thank you for the review.

On Wed, Mar 18, 2026 at 6:18=E2=80=AFAM Volodymyr Babchuk
<Volodymyr_Babchuk@epam.com> wrote:
>
> Hi Mykola.
>
> Mykola Kvach <xakep.amatop@gmail.com> writes:
>
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > 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. arch_domain_resume() stays int to propa=
gate
> > errno-style detail into common logging; preserving the integer keeps th=
e
> > reason visible and leaves room for future arch-specific failures or ric=
her
> > handling.
> >
> > 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 V16:
> > - Refactor error handling in domain_resume: move logging to generic cod=
e,
> >   use explicit return code checking.
> > - Make context clearing conditional on success in arch_domain_resume.
> > - The 'int' return type is retained for arch_domain_resume for consiste=
ncy
> >   with other arch hooks and to allow for specific negative error codes.
> > ---
> >  xen/arch/arm/domain.c                 |  39 +++++++++
> >  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    |  27 ++++++
> >  xen/arch/arm/include/asm/vpsci.h      |   5 +-
> >  xen/arch/arm/vpsci.c                  | 116 +++++++++++++++++++++-----
> >  xen/common/domain.c                   |  10 +++
> >  xen/include/xen/suspend.h             |  25 ++++++
> >  9 files changed, 205 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 47973f99d9..f903e7d4f0 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"
> > @@ -851,6 +855,41 @@ 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%u, shutdown_code=3D%u\n",
> > +                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 notify abo=
ut 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 )
> > +        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 758ad807e4..66b1246892 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..313d03ea59
> > --- /dev/null
> > +++ b/xen/arch/arm/include/asm/suspend.h
> > @@ -0,0 +1,27 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +
> > +#ifndef ARM_SUSPEND_H
> > +#define ARM_SUSPEND_H
> > +
> > +struct domain;
> > +struct vcpu;
> > +
> > +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/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..c4d616ec68 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)
> >  {
> > -    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=3D%#"PRIregister", cid=
=3D%#"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_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 93c71bc766..09ad0a26ee 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>
> > @@ -1374,6 +1375,7 @@ int domain_shutdown(struct domain *d, u8 reason)
> >  void domain_resume(struct domain *d)
> >  {
> >      struct vcpu *v;
> > +    int rc;
> >
> >      /*
> >       * Some code paths assume that shutdown status does not get reset =
under
> > @@ -1383,6 +1385,13 @@ void domain_resume(struct domain *d)
> >
> >      spin_lock(&d->shutdown_lock);
> >
> > +    rc =3D arch_domain_resume(d);
> > +    if ( rc )
> > +    {
> > +        printk("%pd: Failed to resume domain (ret %d)\n", d, rc);
>
> I am wondering about this error path... Domain clearly can't be resumed
> anymore. Should we crash it in this case? But domain is already shut
> down, so domain_crash() would do nothing.
>
> Probably it is better to ensure that arch_domain_resume() will not
> return an error by doing all required checks beforehand. Actually you
> already doing this. So how we can get an error realistically?

vpsci_vcpu_up_prepare() can still fail on the resume path, currently due
to alloc_vcpu_guest_context() or arch_set_info_guest().

So I agree with your point: it would be better to move all failure-prone
preparation and validation to the suspend path, so that
arch_domain_resume() does not need to return an error in normal
operation.

The approach I see is:
- allocate and populate the guest context during suspend;
- split arch_set_info_guest() into two parts, something like
    arch_validate_vcpu_guest_context() and
    arch_apply_vcpu_guest_context();
- call only the validation step during suspend;
- on resume, only apply the already validated guest context and then
free it.

This should make the resume path effectively non-failing and avoid the
questionable error handling there.

Does this sound like the right direction?

Best regards,
Mykola


>
> > +        goto fail;
> > +    }
> > +
> >      d->is_shutting_down =3D d->is_shut_down =3D 0;
> >      d->shutdown_code =3D SHUTDOWN_CODE_INVALID;
> >
> > @@ -1393,6 +1402,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..528879c2a9
> > --- /dev/null
> > +++ b/xen/include/xen/suspend.h
> > @@ -0,0 +1,25 @@
> > +/* 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 */
> > +
> > +/*
> > + * Local variables:
> > + * mode: C
> > + * c-file-style: "BSD"
> > + * c-basic-offset: 4
> > + * tab-width: 4
> > + * indent-tabs-mode: nil
> > + * End:
> > + */
>
> --
> WBR, Volodymyr


From xen-devel-bounces@lists.xenproject.org Wed Mar 18 08:07:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Mar 2026 08:07:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256363.1551037 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2lvX-0003F4-St; Wed, 18 Mar 2026 08:06:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256363.1551037; Wed, 18 Mar 2026 08:06:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2lvX-0003Ex-PU; Wed, 18 Mar 2026 08:06:51 +0000
Received: by outflank-mailman (input) for mailman id 1256363;
 Wed, 18 Mar 2026 08:06: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=cC/N=BS=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1w2lvW-0003Er-8I
 for xen-devel@lists.xenproject.org; Wed, 18 Mar 2026 08:06:50 +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 697033eb-22a1-11f1-b164-2bf370ae4941;
 Wed, 18 Mar 2026 09:06:48 +0100 (CET)
Received: from AS4PR09CA0011.eurprd09.prod.outlook.com (2603:10a6:20b:5e0::13)
 by AM8PR08MB6419.eurprd08.prod.outlook.com (2603:10a6:20b:316::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.27; Wed, 18 Mar
 2026 08:06:44 +0000
Received: from AMS0EPF000001B7.eurprd05.prod.outlook.com
 (2603:10a6:20b:5e0:cafe::31) by AS4PR09CA0011.outlook.office365.com
 (2603:10a6:20b:5e0::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.27 via Frontend Transport; Wed,
 18 Mar 2026 08:06:39 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF000001B7.mail.protection.outlook.com (10.167.16.171) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.17
 via Frontend Transport; Wed, 18 Mar 2026 08:06:43 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PAWPR08MB10209.eurprd08.prod.outlook.com (2603:10a6:102:365::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Wed, 18 Mar
 2026 08:05:39 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9723.018; Wed, 18 Mar 2026
 08:05:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 697033eb-22a1-11f1-b164-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=jJkQvYHqGymcKuGeH91/4+GpQHFC+Y5ELkiD6X8dCiIWWvexg354i7mLsVkuvE2R67fZcJ0HUB6SGEhatvtT2s6lvaCOsKAwJT6Mc/d2bscU1cIpdteA6EeCFLso4g5Y+O+oECJNPBTf2rtrojT9EYZJcah6z9XPtsvRAZS3i/pO4jqDQPAb0QEsk5xvpDUSCCcSor5AbOWT18njSDO+nyEX5tIMFeH298UlYpXQo3SO8YTj5TBPZ/FnQCpk3kkfKpBXGnHhWB2kvQ5LZ66PnsHhExh2Y7b1cibaGQkxLR+HAFA42MQ+1JTJurA+Vkc7VJ/wynZowlpbxyrRLbbs/g==
ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=e06hFaaSWzx0NqsxDjm0VeDdRrxM/xNlXBEnh3vcgR8=;
 b=L6cr1V4y7QC8lInIMs+ARtGLEIby0/HqSk93uB/KK7zjPR68ocl5kwFfXapIboIMJCp2NmgtMyduWNAjzQxQY/xHHfqgGf0AkkRwwvY7jx6CQ5yhdRoyLiee8RGvegRgl+XdIGBTLzGIIrr/NiSMSdtbAtMTD3erslPlHnvVezwmG+Txm/rjQBHH/cUcPaMSIq8V58ThvbeDJoxnyc2nm0y+59eYc3PPBxJ6GNgY0m0k1+KxA4jXTa5AU3kDwqOiEzsb87GcMVc8yLDna+9Fuc6nUo1BCObLgKbd8F4osoiPLGXW3n5HjStrVTTbi8rPLiix+ljQKqHK3iGCP7LfLg==
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=e06hFaaSWzx0NqsxDjm0VeDdRrxM/xNlXBEnh3vcgR8=;
 b=GW+D6Ur2G+LA4ZKQ7KElTjbvEW2+U51NFl2P0HAwMNRwme11EQinwtZ6lip5vDBsRgPCpH0zpTOVAGr6Jnx5N8l9MuA80Org6Y384ehlSBZ6WCa3kFEJpg+ras4UmqPA43YYPMtqwN0QhA/l7gsIW7Fi1IxstQMw7xcsEEGYNkc=
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=G6uK+LT1CMkp8SZd5Ny2m4rZgu4u0EKaShjPRiO80CUdu+jtyHXh9Icort6lHEOfjucYyLTG26EVgbfwU+octV0kD/Dg8X4BCc+7K8aQqhXasn2RuWIuuUdmX4zmAwEIUfjBpVF0hAh0tDx9xoSusBg+gclLpSdnBCmI3xktiQKDHQdhExpNGavM5g7ceAQWjh3f57IlmjYx8VhiME5u4LbwVz5AbWGPElsrqLxLLzedorPKs0mfmTjeWCP6pwnTYJ5AEAAKt2KW83fW1pv0Z9mpqoWcXTOi7guxYGp5g6sVCV39XCN3f/C+yLlorpsHjqsPT/LBGaQ1Qj0nCfmMCA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=e06hFaaSWzx0NqsxDjm0VeDdRrxM/xNlXBEnh3vcgR8=;
 b=frbz163zXzpy5oHa3CQ324WiLnLbj7oQhBcS5ZlbZDFgvwKb2qVSqJZEthw3ITd570aCUvx/Rr5U9npZz8Ae1ruTVQrDkJqQTSwdprHZvnbpQeUJiC9JkS/f4LCs/El+s1r80/s+MsQ3se8CyolJb9A9IEbO/DxRBQ+dbdivX4IvtR13f/w39uRjh30VwjChbCpklve9mIQvgmm80csDLlkeJuXvFJ1iXA39frzXOwRYtr2yeNSVNSonH4LOcrZnLlQ49egJjJFGrzQ6K2sk1+M4zARcaeex7FLBBcsNvRaN8t0jqPiHQ1Sce2R2CBoNrOmMh0r4bRnn2ocLVJpXwA==
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=e06hFaaSWzx0NqsxDjm0VeDdRrxM/xNlXBEnh3vcgR8=;
 b=GW+D6Ur2G+LA4ZKQ7KElTjbvEW2+U51NFl2P0HAwMNRwme11EQinwtZ6lip5vDBsRgPCpH0zpTOVAGr6Jnx5N8l9MuA80Org6Y384ehlSBZ6WCa3kFEJpg+ras4UmqPA43YYPMtqwN0QhA/l7gsIW7Fi1IxstQMw7xcsEEGYNkc=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v6 1/5] arm/irq: Keep track of irq affinities
Thread-Topic: [PATCH v6 1/5] arm/irq: Keep track of irq affinities
Thread-Index: AQHcsgQfYo2+uc7QB0+uZY6Wrq2BgrWz9+2A
Date: Wed, 18 Mar 2026 08:05:37 +0000
Message-ID: <63FE871D-35EB-45F4-A2E1-3359116C44CB@arm.com>
References: <cover.1773307749.git.mykyta_poturai@epam.com>
 <733d58a26766a1d15e47447ed4f3cd299dc28cf7.1773307749.git.mykyta_poturai@epam.com>
In-Reply-To:
 <733d58a26766a1d15e47447ed4f3cd299dc28cf7.1773307749.git.mykyta_poturai@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PAWPR08MB10209:EE_|AMS0EPF000001B7:EE_|AM8PR08MB6419:EE_
X-MS-Office365-Filtering-Correlation-Id: 4c02eb26-b975-4484-3fb8-08de84c54af5
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info-Original:
 XH9Tjo73jkBYOK3EIwrxcpbh+OBPdKCtGwkoVktzjWOmIPhy6Eliy6psRgfkCbZhPU0dhIGlic69LKxbc/V97CKnC8E4ydX0H9eNiP8UpGKLQl2oVfAFjdfE0JPiMFuNDD2qFnlhoLsMWXGk4NLZrp+0L5tHEGmtYKkILJ6w7ox3Dx45a0RR8pmI9Pca3RRpviq38T5otf+8A7QqaZPZ8jOnl79sWofkKtPg/EhsjquGgMRx7UQaNYZhQJJ2FsUCpq24M0rvCqCHD18NzrtTfqfDdGj3NrCxVdTlhPnqSywv/xosoDAmZwsKKcvwRKlhIkZHooJrGcoMP5jKL2/pF36M587l6ymSMTKSj9GjP2xWEyDIRXCBEpghAErr2pxo3C5X7p0R+irwp0AufEaSE9hw81/9aX1nnr98zAiQHrDut78jHCjFUq4LBOkhQVeZ+o9MggIKY35tEdqADUAaKu6Jxy9B4Ba5rUnlaTx6zj03LQ9yIWw4gixVwA1LaOiq6RlJyqQUy1yNVsqGh8TG5A9hp4PGxfpr4ZD8SflhCW7QSp0VJZv0yrF/9AmbifAj0x1QE13XWAl8tbBCZytaBFLm3SNh8CTiFZhcL7WFId644qgRy4Kx++sdAqjqsoNGsfQ4nAcaH2k58l6EpObAHzpaxYrSumVauJyT4Ky3uQ7UFBcqg6Vyd374b+0gbfarfwQeu7VKiyIFkSjPzkNYjKle9S3n+xWwWvipE65W3paENO2rpQM5WRsaD5yNUQDZGq3mcpnvFX1EluERB0ehGs5tG9vm6QdJtDJP4tGovVA=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <E6CB80E92B8ABB47AEB3DC5E2B7BCFDF@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 D4O3vfIemz4Dx8YXVvC3N2Me8eSMV3sI+GKWP3WN2cmzdhPXF5gelriPrieWRBQJGE0AQolOAGWsvbqcFVuc7DmrOyU607cqrUKbRj9Ac5dwh8F4NNLGrUKh9UpgOXRxz4k2Rhl1vUJFLFIBwOimtvWwMmX90EjH4ew74Ow9LOE39ZE6Hmdbh36cm8JRI96FnzQGcTLVGbZWrj+ub91/ubY7IwcxQUgG/x9Xi319mstPs+TjjhVR6xoCu+x2h2noiTaqxl5lYwMAZglP1xaTvd9kYuB4kvHQpRnh/k4bENqYMUtLqIRf5YwQHIay96CuHkzU+73mh2fGOFb4EIUDfA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB10209
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001B7.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	06353ab7-539b-41ba-b552-08de84c523e4
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|36860700016|35042699022|376014|1800799024|82310400026|22082099003|18002099003|56012099003|7053199007;
X-Microsoft-Antispam-Message-Info:
	HAmlSCdom+vG8gfoZHSVk3yP7eBABPFehHLZ5PbQ4Opo17wOPOQ650tkt0u1tMMJ92TDi2U00qr0UsUwxO5IJIquxM4Th4ZxGuT40CqWNnVomWN8W00MNJjdXgJKSb4UwOtXTYlUgsAF6v1fDSR0BA9arPXB0w1wc4pGECFQd4CqZTgp8tTsTRf90DOKzE5xh1rX9ilPXmBTCevDk9yckrHp+WEpRoa6YmLcfeM32bkOiatV4aV6eJ8AKodKyxho3+g5PO85v2fwJrriRFUFv0IZD9OQMnLtPyHU1bahaZN7+8MOVAMs9B0eki6pHL2nWeIqXG2ianXob0sCszZfRB9Y7IUcoFkEk8s1YjVp1CCIEpSSGQ95/MmmZ/OitxTsE2tnKlm439yCDwrgL7VGUUnlATDHKjI5K4kLu1cs++I7lhwA8ODyalAbMHRCZ+Mcp6RrkwQQtG0qZu/vjZtzp2keh6WiwubiQSYvp27A0vmOVVnDoQxpB0zXdoi24vMkmCGq0WvkZSyLSOip6vUFI5X2wv36oGK+6utSjRY+Oum9nGG3w21SsOj4ebJfgxA2ynC/Zs6xEDYwhGbcxk1DD1Y05Ploqvuul0ie/xMPfDoABaTJT09DaQzDl71me04AcHaXI/3ftkXVTqNc8L1Ynk1y0AWbJQYHqJxEaJjAaM9CzNvK0amiJVSa5meSm7PAtDlRwPKxYwAkDG9Qo2d90oNMRj8kxAMUqAfAZZ/8SxedkIXbi/RAG/wF5BaiE0UbMZowY+UPjYlVWxXiJnhfiQ==
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(36860700016)(35042699022)(376014)(1800799024)(82310400026)(22082099003)(18002099003)(56012099003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	qy5UCfzya8P9nH6u6o+PqZ87gBjozQYutIj49YXVydvH3MtDAjvi+wXPk0+Mf60lDBi4UNG0FrSkyML5mnnfXirTp4fzy8Bunf8SJSvpAXR60U1XXw+sqs2jQOLlg8zJ3U5FPyQx6nScKMleMi7q5MFuijOXqAcj593UTvzciTMIjDtCbZ1x4cc0gBCjaWM6Y4Dq7IMJ5p9LB3zZPUe0Wy7v57p6fgw1KXCGk1CkyRsbaT3yl7wSUgZ7OszzwJrQ3vV2iAUXDI3S/BcYGLK+4j1eakPg/hcs+9JOD4CVv+OqrZeNNt0FxDBO3vNieKJlT/12ISFPq+c4uMJF1uVqE+KtsjaMj89CSvQtMjAAnWtE27g87CuG6p6ltCZut6sN3BSN7RRvXzk8xJqd/+MEEj0UD4pM0ckKW+WEuc0pTLAzUlLTEQpCdvrF1QNBaz56
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Mar 2026 08:06:43.3115
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4c02eb26-b975-4484-3fb8-08de84c54af5
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF000001B7.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6419

Hi Mykyta,

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

The commit message here should also explain what has changed regarding
locks and irq affinity and justify why code is modified in other places (vg=
ic.c,
vgic-mmio) to follow the new locking requirements for it.

>=20
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
>=20

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

Cheers
Bertrand

> ---
> v5->v6:
> * add missing locking around irq_set_affinity calls
>=20
> v4->v5:
> * add locking
>=20
> v3->v4:
> * patch introduced
> ---
> xen/arch/arm/gic-vgic.c          |  2 ++
> xen/arch/arm/irq.c               |  9 +++++++--
> xen/arch/arm/vgic.c              | 14 ++++++++++++--
> xen/arch/arm/vgic/vgic-mmio-v2.c | 11 +++++------
> xen/arch/arm/vgic/vgic.c         | 15 ++++++++-------
> 5 files changed, 34 insertions(+), 17 deletions(-)
>=20
> diff --git a/xen/arch/arm/gic-vgic.c b/xen/arch/arm/gic-vgic.c
> index ea48c5375a..5253caf002 100644
> --- a/xen/arch/arm/gic-vgic.c
> +++ b/xen/arch/arm/gic-vgic.c
> @@ -232,7 +232,9 @@ static void gic_update_one_lr(struct vcpu *v, int i)
>             if ( test_bit(GIC_IRQ_GUEST_MIGRATING, &p->status) )
>             {
>                 struct vcpu *v_target =3D vgic_get_target_vcpu(v, irq);
> +                spin_lock(&p->desc->lock);
>                 irq_set_affinity(p->desc, cpumask_of(v_target->processor)=
);
> +                spin_unlock(&p->desc->lock);
>                 clear_bit(GIC_IRQ_GUEST_MIGRATING, &p->status);
>             }
>         }
> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
> index 73e58a5108..7204bc2b68 100644
> --- a/xen/arch/arm/irq.c
> +++ b/xen/arch/arm/irq.c
> @@ -216,10 +216,15 @@ static inline struct domain *irq_get_domain(struct =
irq_desc *desc)
>     return irq_get_guest_info(desc)->d;
> }
>=20
> +/* Must be called with desc->lock held */
> void irq_set_affinity(struct irq_desc *desc, const cpumask_t *mask)
> {
> -    if ( desc !=3D NULL )
> -        desc->handler->set_affinity(desc, mask);
> +    if ( desc =3D=3D NULL )
> +        return;
> +
> +    ASSERT(spin_is_locked(&desc->lock));
> +    cpumask_copy(desc->affinity, mask);
> +    desc->handler->set_affinity(desc, mask);
> }
>=20
> int request_irq(unsigned int irq, unsigned int irqflags,
> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
> index 6647071ad4..c59f6873db 100644
> --- a/xen/arch/arm/vgic.c
> +++ b/xen/arch/arm/vgic.c
> @@ -445,7 +445,9 @@ bool vgic_migrate_irq(struct vcpu *old, struct vcpu *=
new, unsigned int irq)
>=20
>     if ( list_empty(&p->inflight) )
>     {
> +        spin_lock(&p->desc->lock);
>         irq_set_affinity(p->desc, cpumask_of(new->processor));
> +        spin_unlock(&p->desc->lock);
>         spin_unlock_irqrestore(&old->arch.vgic.lock, flags);
>         return true;
>     }
> @@ -453,7 +455,9 @@ bool vgic_migrate_irq(struct vcpu *old, struct vcpu *=
new, unsigned int irq)
>     if ( !list_empty(&p->lr_queue) )
>     {
>         vgic_remove_irq_from_queues(old, p);
> +        spin_lock(&p->desc->lock);
>         irq_set_affinity(p->desc, cpumask_of(new->processor));
> +        spin_unlock(&p->desc->lock);
>         spin_unlock_irqrestore(&old->arch.vgic.lock, flags);
>         vgic_inject_irq(new->domain, new, irq, true);
>         return true;
> @@ -473,6 +477,7 @@ void arch_move_irqs(struct vcpu *v)
>     struct domain *d =3D v->domain;
>     struct pending_irq *p;
>     struct vcpu *v_target;
> +    unsigned long flags;
>     int i;
>=20
>     /*
> @@ -494,7 +499,13 @@ void arch_move_irqs(struct vcpu *v)
>         p =3D irq_to_pending(v_target, virq);
>=20
>         if ( v_target =3D=3D v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p->=
status) )
> +        {
> +            if ( !p->desc )
> +                continue;
> +            spin_lock_irqsave(&p->desc->lock, flags);
>             irq_set_affinity(p->desc, cpu_mask);
> +            spin_unlock_irqrestore(&p->desc->lock, flags);
> +        }
>     }
> }
>=20
> @@ -574,8 +585,8 @@ void vgic_enable_irqs(struct vcpu *v, uint32_t r, uns=
igned int n)
>         spin_unlock_irqrestore(&v_target->arch.vgic.lock, flags);
>         if ( p->desc !=3D NULL )
>         {
> -            irq_set_affinity(p->desc, cpumask_of(v_target->processor));
>             spin_lock_irqsave(&p->desc->lock, flags);
> +            irq_set_affinity(p->desc, cpumask_of(v_target->processor));
>             /*
>              * The irq cannot be a PPI, we only support delivery of SPIs
>              * to guests.
> @@ -944,4 +955,3 @@ void vgic_check_inflight_irqs_pending(struct vcpu *v,=
 unsigned int rank, uint32_
>  * indent-tabs-mode: nil
>  * End:
>  */
> -
> diff --git a/xen/arch/arm/vgic/vgic-mmio-v2.c b/xen/arch/arm/vgic/vgic-mm=
io-v2.c
> index b7c2d7ce99..fc04741ca1 100644
> --- a/xen/arch/arm/vgic/vgic-mmio-v2.c
> +++ b/xen/arch/arm/vgic/vgic-mmio-v2.c
> @@ -159,24 +159,23 @@ static void vgic_mmio_write_target(struct vcpu *vcp=
u,
>     for ( i =3D 0; i < len; i++ )
>     {
>         struct vgic_irq *irq =3D vgic_get_irq(vcpu->domain, NULL, intid +=
 i);
> +        struct irq_desc *desc =3D irq_to_desc(irq->hwintid);
>=20
> -        spin_lock_irqsave(&irq->irq_lock, flags);
> +        spin_lock_irqsave(&desc->lock, flags);
> +        spin_lock(&irq->irq_lock);
>=20
>         irq->targets =3D (val >> (i * 8)) & cpu_mask;
>         if ( irq->targets )
>         {
>             irq->target_vcpu =3D vcpu->domain->vcpu[ffs(irq->targets) - 1=
];
>             if ( irq->hw )
> -            {
> -                struct irq_desc *desc =3D irq_to_desc(irq->hwintid);
> -
>                 irq_set_affinity(desc, cpumask_of(irq->target_vcpu->proce=
ssor));
> -            }
>         }
>         else
>             irq->target_vcpu =3D NULL;
>=20
> -        spin_unlock_irqrestore(&irq->irq_lock, flags);
> +        spin_unlock(&irq->irq_lock);
> +        spin_unlock_irqrestore(&desc->lock, flags);
>         vgic_put_irq(vcpu->domain, irq);
>     }
> }
> diff --git a/xen/arch/arm/vgic/vgic.c b/xen/arch/arm/vgic/vgic.c
> index b2c0e1873a..81ba4099ef 100644
> --- a/xen/arch/arm/vgic/vgic.c
> +++ b/xen/arch/arm/vgic/vgic.c
> @@ -812,21 +812,22 @@ void arch_move_irqs(struct vcpu *v)
>     {
>         struct vgic_irq *irq =3D vgic_get_irq(d, NULL, i + VGIC_NR_PRIVAT=
E_IRQS);
>         unsigned long flags;
> +        irq_desc_t *desc;
>=20
>         if ( !irq )
>             continue;
>=20
> -        spin_lock_irqsave(&irq->irq_lock, flags);
> +        desc =3D irq_to_desc(irq->hwintid);
>=20
> -        /* Only hardware mapped vIRQs that are targeting this vCPU. */
> -        if ( irq->hw && irq->target_vcpu =3D=3D v)
> -        {
> -            irq_desc_t *desc =3D irq_to_desc(irq->hwintid);
> +        spin_lock_irqsave(&desc->lock, flags);
> +        spin_lock(&irq->irq_lock);
>=20
> +        /* Only hardware mapped vIRQs that are targeting this vCPU. */
> +        if ( irq->hw && irq->target_vcpu =3D=3D v )
>             irq_set_affinity(desc, cpumask_of(v->processor));
> -        }
>=20
> -        spin_unlock_irqrestore(&irq->irq_lock, flags);
> +        spin_unlock(&irq->irq_lock);
> +        spin_unlock_irqrestore(&desc->lock, flags);
>         vgic_put_irq(d, irq);
>     }
> }
> --=20
> 2.51.2



From xen-devel-bounces@lists.xenproject.org Wed Mar 18 08:14:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Mar 2026 08:14:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256371.1551045 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2m2f-0004sy-I5; Wed, 18 Mar 2026 08:14:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256371.1551045; Wed, 18 Mar 2026 08:14:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2m2f-0004sr-FM; Wed, 18 Mar 2026 08:14:13 +0000
Received: by outflank-mailman (input) for mailman id 1256371;
 Wed, 18 Mar 2026 08:14: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=cC/N=BS=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1w2m2d-0004sl-Fe
 for xen-devel@lists.xenproject.org; Wed, 18 Mar 2026 08:14:11 +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 6e6116d4-22a2-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Mar 2026 09:14:05 +0100 (CET)
Received: from AS9PR06CA0567.eurprd06.prod.outlook.com (2603:10a6:20b:485::35)
 by DB9PR08MB7607.eurprd08.prod.outlook.com (2603:10a6:10:30a::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.21; Wed, 18 Mar
 2026 08:13:58 +0000
Received: from AMS0EPF000001B3.eurprd05.prod.outlook.com
 (2603:10a6:20b:485:cafe::e5) by AS9PR06CA0567.outlook.office365.com
 (2603:10a6:20b:485::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.27 via Frontend Transport; Wed,
 18 Mar 2026 08:13:36 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF000001B3.mail.protection.outlook.com (10.167.16.167) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.17
 via Frontend Transport; Wed, 18 Mar 2026 08:13:56 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AS8PR08MB7742.eurprd08.prod.outlook.com (2603:10a6:20b:50a::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.21; Wed, 18 Mar
 2026 08:12:51 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9723.018; Wed, 18 Mar 2026
 08:12: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: 6e6116d4-22a2-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=uiT2R5ZIi1O5Dc816utQ3d6aKj+P/1bPnJGn7eLQai07UIn7Oix0+LjuslDbdKKTIryjl3pxLrOdQVIK/WUb5PrWQr+t9ctVcdaV+ueL2whgON/tN0jB7p63NeA1mUwUbSjnU1q/4XD+gPBwhko7PNcWuUSWMp5d6FExgRUwjqJB+YcEVtriNXTEHfy9aRorkgDs/6Gi0ObOSf5ZCoVMrNFYDDbqhkiuvuiR6BiBb7p9FUoKsJVp8ww5mD4ZS8vQukb1oAyjkDWne0xv6fT9fTOutejC7XKEq/CmSV6lK0jolvDtyeOGYcc0kx0wVWANhB7AnHllmeoncrHgqKH3jQ==
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=K8ca9/rqyVn1q82sLTToHf+MDI+kOURQrnhg38Kx8R8=;
 b=O3ppodTt1BjvIGbG7W4cXFcTA0u+yj/tNjeLMo9KufYGEYTRtmeI+FQOzvVHUsM/4JKbr/HjSwyHxaB0UZkoOHAmu7y5FO2Gd9iXNs4XJsKmDRDl4pX3udVpJGbNpRJu0pI9X1naZP5JKhEgr219XGA8YA7k6ZPJGiUR64OKLvp2UL+z5Dz6y7HD/esUScLyMaQjmcy/6v9uMNAfLlY2MpTCsPRpSLwimhw8lOlmdLnO0I6rUgi+GJ8le0RGikKxhiomOw0k5pnqJyZyLGzP1h7sIJtdzNXM2+IKOciYnu1aNuBwtYu+UJ/bxlGtwYk5ElOCVaCqCy+1J1m5kFQJLg==
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=K8ca9/rqyVn1q82sLTToHf+MDI+kOURQrnhg38Kx8R8=;
 b=YXSVfmX4Dpti2eir8h/SU+y9VQwwPIPdQfYFO6bT2+6ZXM4Yz3X2+oe3oNWzH7DWeAKm2bdxtngSkX+B+UvgmeYZM4Ye2VkVKqFwbaBYr2H3YkWbMij/XjPu6PM2J20sP1WV14mzAjJEgfT4QWs2rH4UzDfKb09d0Nlq8nafnUY=
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=M5LBaGhSjtLjJzVpL/GeITO4m8rnHg5vAotR2mh2amg+KqfJnYkvzlDPlwyLf24uEEddM/FgkesS4lSBPV/JwLgP45zat7zYRcjeegItgKDEHhxKpWwlOesUmEwvKLmALjdauVg/Yye5xOMz/tu3FZAtg7cpVHlQXHbCT9tLQc1b8yGBBJnfq7YynedMq3hgCkhKxUoytw6g4veIw842zHtYFQQnIc4pkqMhfIQIOVkNyIzp0fv6TNyGJ1GQR65avT/AJrT3qxERRzzidwW6wL6xUIiuXiKqEKKKAKGTpDHkY9wQyF9Dg6mRzUoYQM1nBY4ow6F2QkYb0gHmYobPwQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=K8ca9/rqyVn1q82sLTToHf+MDI+kOURQrnhg38Kx8R8=;
 b=nqw4tbqsFv6BwxWS7IB+P7RakeAHj3USwlVi8aITB5v9px/o+foL192fL1VgS3SFmJn21Nz+a9NIXhFuuwLNonV/IGoRx2WIUR6Do0ryEXBoY+0XrLtJRHpMAhTv7opBz5uZ2PXJ8JcYnUNHrIHddfuo96AAsqtrPPNEwshVos6XE+wqt18NuxJtNe2jtBItYiyOYhtJ7kvuA64fwSEuOsfElfTlIZYWUkhwJ/y/qru1e7ctOs+8Ow4uVbscQjaAUnSOtAu5EyXQgyBcUNrb/+kXpySc2QrPSukZVZuKfSfhkfpI/gtsZco+xXHkn2D/M3RY8vFAHCx0aQbqKAF8Xw==
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=K8ca9/rqyVn1q82sLTToHf+MDI+kOURQrnhg38Kx8R8=;
 b=YXSVfmX4Dpti2eir8h/SU+y9VQwwPIPdQfYFO6bT2+6ZXM4Yz3X2+oe3oNWzH7DWeAKm2bdxtngSkX+B+UvgmeYZM4Ye2VkVKqFwbaBYr2H3YkWbMij/XjPu6PM2J20sP1WV14mzAjJEgfT4QWs2rH4UzDfKb09d0Nlq8nafnUY=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v6 2/5] arm/irq: Migrate IRQs during CPU up/down
 operations
Thread-Topic: [PATCH v6 2/5] arm/irq: Migrate IRQs during CPU up/down
 operations
Thread-Index: AQHcsgQkvTQo5LmM30WarGXZRjK5SbWz+fKA
Date: Wed, 18 Mar 2026 08:12:51 +0000
Message-ID: <E21F47AB-6848-442F-876D-34AE6AE06662@arm.com>
References: <cover.1773307749.git.mykyta_poturai@epam.com>
 <4e35d2a56d9ab1497dd1a706b80695a38ee90f60.1773307749.git.mykyta_poturai@epam.com>
In-Reply-To:
 <4e35d2a56d9ab1497dd1a706b80695a38ee90f60.1773307749.git.mykyta_poturai@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AS8PR08MB7742:EE_|AMS0EPF000001B3:EE_|DB9PR08MB7607:EE_
X-MS-Office365-Filtering-Correlation-Id: 555f05a7-663f-480d-4b92-08de84c64d6e
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|22082099003|56012099003|18002099003|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 Bltc6LD3jnBi6wUdZeXpiSkwZmdrhvpLVqc4sfHUAlCqXl60Rx4bXyrUIFhUQ1g5fvx4kEnJsu6SZkIlYCzES4EXql0CYhmu/cZphHfun5xODltl1SDiWEXe/A5I5B/nwp0HSHe8okPyy5Bk2ZS6u0ru2uYc74FJ8jExFYC9nbLhtTkVdZDt4S250rPvnzwyJVEr07FG9uTFQZ9OUh2Zg02vkElKjHZqj+NtSXVH/VYlJb3jndGZemF82GylX+6VK25VNu3LPJQH1LYataH5eoRLzZSq/jwwUUk5dxQy58DIBAPa2gjzdtd//nwPvWrVifzSktT2SOA5B7+TF3PnILvrRxlBpsM0AzjtpS3zKiQzURoe3BZMaWTV8/yY+QXUPD5kKlslruK2rIbnxYsnU8OXF+8JYe0lcsPDs6kXdcGmw6oF1rJeXb2RMcLehflqjWYHLoQm93JbdL5ZY7jIJq5fcY6O/tM3V+4X+3pr7kvzhIacZFeVLUbOX4d0o8cz3TR7ttlaUHDUd0QlaeaVRmZ7jX8K7ZRAmlyCKnGg4V3axPQi/w+mUWqhhDebEJyDLQUowguCjW5h38xeDO1RlU3xZyeQHnCC+y8lRbmm76fWe17M9vnaeqYPfb3prTKQLLMYSbk04+vHnhlxMfu0kVBQSd5LCrLMTjiVRgUCY3HkA0MPBjNU1TFSY9xHx46kCAnnfRFaIFzvSTiVpG6bNCBAihrbY7sZeByu0Sl1tzp1/0toXgMCz4j83yM2nJ13XI1tf35XdfDcZqE3zB/kcGlyeTirNA0P1sKQOutFyjU=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(22082099003)(56012099003)(18002099003)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <7CCEAFCFE0A0C8478B1A6F93C9F537C1@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 u8D+BJud1qvNRu0o/MWcdVIrxPI3MJfeE3i2Ob4E2OGN7gV3j9nb8MO7c9OIJCMLUUiTO6cHyDioPSJCYAI5JHngeuhb9xiBczFcd4g1X2/zwdLgsyL0i1/iWEltgb4dSNxr9P/pahIBbHdUNjgP0gMlgfzZAFU2m4sOlwO6CWfA8eELPV/Vm0bSvMovShYZ1AS7rtfg0kS3WNu5WeVsIwIEHKf7x9qkRXIS+6NX2s3xhdJp64yrZo6hNtjkxnyEvoFvFEcDn70AXQE4ZQi+7RBYqHG8uZMgCIJ/IOn/IHv78dbpwrJxseUAl4jCPM6GdF90W2PCRB51wsCbZJ/q6w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB7742
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001B3.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	996de40b-9b0c-4936-ce6d-08de84c62653
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|1800799024|376014|14060799003|82310400026|35042699022|7053199007|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	/jupCfgwwrsU2AlqhMScfAtQpDho7oVPtaAhdR3ia7i1T7/2Le9AWRTgEts68DTG4NyUQOshpJ4avsC8zzCSeLwK25aoi661DqbuyaqqQkSCcE+qRBJjIlpwNo3btBhPP4y+PLMThGo/bHlgWJplMmg2TF0i3zW387usGvWhFLtbQeYO93fAne74NR+wOcnLRItXabUHrT4cIbYcDvgcdKaK5p7uKeb7YPyFefqG686wevGEyK9RVUW2ktdIsSVfNDU17dSINx563v9Py8+dbUMXsscDBMla/iseBAiSZnx/ajub33PDcE09SWogPDmbGzWb1O9990GYIhomjabtBgFSJkdQJAIdAi0soZUGIdtW7X3bT3btX1LL2JGyNWUV/Y+iNXxvxGL0OE+Hxa+/IYILgtSVIg/L3dGq9X0IrTBA3K35If0qI81Akq6ytSEZrdwb0jqY1vnpPEcUPKE62TVJ+Jv4eGRQQQIVxgTNgj7FKG3sXOpfTjA64usBW7/VVhZ+KBH+U1JeNv5qErJJvOvtQgIS59AHvUV++6c4NqV4ZbrxWu+CXOBLIV6ZQhS9npwLdb9J1JKx9zfDjLmRgOApwoUfOHCcsXtCY2b2TRmFRBOjAIXuD6ZzlTSaIEv8nHIARKjePs1h5qethEqgOymRi5r7H61GYqXfQeMowAjwwrx65ru+66Hc3D0IvApWO41se1yK8mBq5s2rjfK57BOkBPTtTmsFH1DyqgWQOUPiAG4Ozf6G9R647bdaK67jhyHGlZEsSZoe4HdsNqI+Yg==
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(1800799024)(376014)(14060799003)(82310400026)(35042699022)(7053199007)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	3PSY8DO/YXAO3WyvyrLYaotHrCxecZuuOUo0uPPtHMb20QrrC7z72PgxSqUunH3GmWqRVA5EtoZ3i3JLEltIGBsbx2VEe8mchy2Laj4I+wS6WYoHQaZHIqm9XjTVoLjnuJE5Ne19UiN/EBl5j57K7+TzhPgxbN6LUfUBPo1sgEsWy3hrlEVkEHut4NoBEPeoTnrmJEFv5CQ69SrpVNTmMra0x6SgS95biMzGunlF2v+GR4bm/kNnmCcsWk1mvd4UNW2K6gZIi4+2tkKbkA1KypHMRMgXH9FqmbkbvAd2q6TaPuyOfHCX087/bH/gUX3Tw6LGTkX9GGHvWMNKIil4jPJm38bTc3hDcS5tMQ2KDeJlO+7pB4ENK51PXzmXOLI5q23DA0/6KhJZT+pDadE5xbCzLzGzC3UCy6a8pZnBt224dwINcbmU6q6bKKFApd+z
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Mar 2026 08:13:56.9514
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 555f05a7-663f-480d-4b92-08de84c64d6e
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:
	AMS0EPF000001B3.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7607

Hi Mykyta,

> On 12 Mar 2026, at 10:39, Mykyta Poturai <Mykyta_Poturai@epam.com> wrote:
>=20
> Move IRQs from dying CPU to the online ones when a CPU is getting
> offlined. When onlining, rebalance all IRQs in a round-robin fashion.
> Guest-bound IRQs are already handled by scheduler in the process of
> moving vCPUs to active pCPUs, so we only need to handle IRQs used by Xen
> itself.
>=20
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
> v5->v6:
> * don't do any balancing on boot
> * only do balancing when cpu hotplug is enabled
>=20
> v4->v5:
> * handle CPU onlining as well
> * more comments
> * fix crash when ESPI is disabled
> * don't assume CPU 0 is a boot CPU
> * use insigned int for irq number
> * remove assumption that all irqs a bound to CPU 0 by default from the
>  commit message
>=20
> v3->v4:
> * patch introduced
> ---
> xen/arch/arm/include/asm/irq.h |  4 +++
> xen/arch/arm/irq.c             | 60 ++++++++++++++++++++++++++++++++++
> xen/arch/arm/smpboot.c         |  8 +++++
> 3 files changed, 72 insertions(+)
>=20
> diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/ir=
q.h
> index 09788dbfeb..a3897ec62d 100644
> --- a/xen/arch/arm/include/asm/irq.h
> +++ b/xen/arch/arm/include/asm/irq.h
> @@ -126,6 +126,10 @@ bool irq_type_set_by_domain(const struct domain *d);
> void irq_end_none(struct irq_desc *irq);
> #define irq_end_none irq_end_none
>=20
> +#ifdef CONFIG_CPU_HOTPLUG
> +void rebalance_irqs(unsigned int from, bool up);
> +#endif

Could you make here something like:
#else
static inline void rebalance_irqs(unsigned int from, bool up) {}
#endif

so that ...

> +
> #endif /* _ASM_HW_IRQ_H */
> /*
>  * Local variables:
> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
> index 7204bc2b68..d428d3118b 100644
> --- a/xen/arch/arm/irq.c
> +++ b/xen/arch/arm/irq.c
> @@ -158,6 +158,60 @@ static int init_local_irq_data(unsigned int cpu)
>     return 0;
> }
>=20
> +#ifdef CONFIG_CPU_HOTPLUG
> +static int cpu_next;
> +
> +static void balance_irq(int irq, unsigned int from, bool up)
> +{
> +    struct irq_desc *desc =3D irq_to_desc(irq);
> +    unsigned long flags;
> +
> +    ASSERT(!cpumask_empty(&cpu_online_map));
> +
> +    spin_lock_irqsave(&desc->lock, flags);
> +    if ( likely(!desc->action) )
> +        goto out;
> +
> +    if ( likely(test_bit(_IRQ_GUEST, &desc->status) ||
> +                test_bit(_IRQ_MOVE_PENDING, &desc->status)) )
> +        goto out;
> +
> +    /*
> +     * Setting affinity to a mask of multiple CPUs causes the GIC driver=
s to
> +     * select one CPU from that mask. If the dying CPU was included in t=
he IRQ's
> +     * affinity mask, we cannot determine exactly which CPU the interrup=
t is
> +     * currently routed to, as GIC drivers lack a concrete get_affinity =
API. So
> +     * to be safe we must reroute it to a new, definitely online, CPU. I=
n the
> +     * case of CPU going down, we move only the interrupt that could res=
ide on
> +     * it. Otherwise, we rearrange all interrupts in a round-robin fashi=
on.
> +     */
> +    if ( !up && !cpumask_test_cpu(from, desc->affinity) )
> +        goto out;
> +
> +    cpu_next =3D cpumask_cycle(cpu_next, &cpu_online_map);
> +    irq_set_affinity(desc, cpumask_of(cpu_next));
> +
> +out:
> +    spin_unlock_irqrestore(&desc->lock, flags);
> +}
> +
> +void rebalance_irqs(unsigned int from, bool up)
> +{
> +    int irq;
> +
> +    if ( cpumask_empty(&cpu_online_map) )
> +        return;
> +
> +    for ( irq =3D NR_LOCAL_IRQS; irq < NR_IRQS; irq++ )
> +        balance_irq(irq, from, up);
> +
> +#ifdef CONFIG_GICV3_ESPI
> +    for ( irq =3D ESPI_BASE_INTID; irq < ESPI_MAX_INTID; irq++ )
> +        balance_irq(irq, from, up);
> +#endif
> +}
> +#endif /* CONFIG_CPU_HOTPLUG */
> +
> static int cpu_callback(struct notifier_block *nfb, unsigned long action,
>                         void *hcpu)
> {
> @@ -172,6 +226,12 @@ static int cpu_callback(struct notifier_block *nfb, =
unsigned long action,
>             printk(XENLOG_ERR "Unable to allocate local IRQ for CPU%u\n",
>                    cpu);
>         break;
> +    case CPU_ONLINE:
> +#ifdef CONFIG_CPU_HOTPLUG
> +        if ( system_state >=3D SYS_STATE_active )
> +            rebalance_irqs(cpu, true);
> +#endif
> +        break;

This ifdef could be switched to if IS_ENABLED

>     }
>=20
>     return notifier_from_errno(rc);
> diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
> index 7f3cfa812e..f17e88e678 100644
> --- a/xen/arch/arm/smpboot.c
> +++ b/xen/arch/arm/smpboot.c
> @@ -425,6 +425,14 @@ void __cpu_disable(void)
>=20
>     smp_mb();
>=20
> +    /*
> +     * Now that the interrupts are cleared and the CPU marked as offline=
,
> +     * move interrupts out of it
> +     */
> +#ifdef CONFIG_CPU_HOTPLUG
> +    rebalance_irqs(cpu, false);
> +#endif

and this one to.

Doing it without the static inline will end up in an error and i think it i=
s clearer
to have IS_ENABLED here so that it is clear from the code that nothing is d=
one
if the config is not enabled.

But happy to remove the IS_ENABLED part if other think differently.

Cheers
Bertrand

> +
>     /* Return to caller; eventually the IPI mechanism will unwind and the=
=20
>      * scheduler will drop to the idle loop, which will call stop_cpu(). =
*/
> }
> --=20
> 2.51.2



From xen-devel-bounces@lists.xenproject.org Wed Mar 18 08:24:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Mar 2026 08:24:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256382.1551056 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2mCQ-0006gz-JL; Wed, 18 Mar 2026 08:24:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256382.1551056; Wed, 18 Mar 2026 08:24: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 1w2mCQ-0006gs-Eq; Wed, 18 Mar 2026 08:24:18 +0000
Received: by outflank-mailman (input) for mailman id 1256382;
 Wed, 18 Mar 2026 08:24:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cC/N=BS=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1w2mCP-0006gk-4b
 for xen-devel@lists.xenproject.org; Wed, 18 Mar 2026 08:24:17 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d9979f9b-22a3-11f1-b164-2bf370ae4941;
 Wed, 18 Mar 2026 09:24:15 +0100 (CET)
Received: from AM6PR10CA0080.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:8c::21)
 by AS2PR08MB8309.eurprd08.prod.outlook.com (2603:10a6:20b:554::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Wed, 18 Mar
 2026 08:24:07 +0000
Received: from AMS0EPF000001A9.eurprd05.prod.outlook.com
 (2603:10a6:209:8c:cafe::a2) by AM6PR10CA0080.outlook.office365.com
 (2603:10a6:209:8c::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.27 via Frontend Transport; Wed,
 18 Mar 2026 08:24:05 +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.9700.17
 via Frontend Transport; Wed, 18 Mar 2026 08:24:07 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PA4PR08MB7643.eurprd08.prod.outlook.com (2603:10a6:102:261::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.22; Wed, 18 Mar
 2026 08:23:03 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9723.018; Wed, 18 Mar 2026
 08:23: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: d9979f9b-22a3-11f1-b164-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=mjgHQUOJi1HRJxU76bDSg/RA8J35tDV1xYI7SXr4Ts382I3Ny4jFCLQC0X9NUlX+EKDHQKwGXEvB8/kh8LXB3fkIyuybkTfAbMOUJMY0VUylupDFGNGJi8DZqK9rO9f/8nuzvatKbpHEmV46FWlWzo184NMDHg66l6u2FOzbQtj3sAElRtikefzubOrKBvB6B6Hxq+pnGevqWVHQflMR5Xxlb4la1Sq3eUV3bqbz/b5JxRXBcT8UlYxuQZirChTulGImSPnGbJn0V3sSL77IWTFfV3T74P7MAuu7wE/IWV51DMv3YelZ+liECBrOArIgcM92VvZKxjWxeWQ9BPOo4g==
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=GtaGb9PXEb1Llg2Wp3eP4ELTAhLAmxG8cgEzoFAImbs=;
 b=KfhpGE5oqhalaNl+fBCSG4q/Q1+XORAPGqX/IYEdVqsqNVa0wwnrmZk9TZNZ+HR1jQ1BUjFcSIbz4VS2U2naibkQMoEJdGdorSOzB7tcHTva2kPbn4hZsehNFkqX95ndwPA7wJjXScefWKeyAJ0hOokofTAOWJfFjgC9KgFLFUmB8dWfXDv5Ld9LyJU8if+KPwrtSpR11XMZNItaRBhlyf4esv9IKev1AKaF3anz2Nem0AzLejCDA8NDSLvyRD1P9i53NFu5X7M8BK/a5CJPh6RHQ1rczS/BpoVqOiU2dg6sghYSSY33kl9fYfUaEOouEaSl2IgWTR6UeenuiC/Y2Q==
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=GtaGb9PXEb1Llg2Wp3eP4ELTAhLAmxG8cgEzoFAImbs=;
 b=Wn2hq27Msxc/UWijw3y7ED7VsEn/dMdAz8vSbdQpjaOayLC0WWDqiAEMa5QB1HS1JeEXkONEcFUEHDm7JADoqXhnUEZiBPQ4+VvinpPqMJMSpM7pxdCPH4avsTIG/qgZaZRK7ERIOcrhflK1UfdEUpdT9SqfD/vgVySJBQXWFow=
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=Aq0vymqEcxNYStp6K6sETu66kzuoKRTamax9TK228+ZNrPr6RWneEf6ToplkwNyhyZj4pEYBgRVkZzB9lQhlFC14Bvo0XwF4NJor0byJTcr/vAMEKF+oiTeemSAOZ0GQBnzlUzmz0/DP1AJp/8IXlT/oKmBwEq+95yyb3b3LiXJjkBYDCUzkMu0doxquTyaA3Y3Lkl5atZpHDUACRAQ2S79Hjb2sfjMI7KP+PlTSC7c/zUsXv0BayW9DamVLI4JyF0rt4ec28Fsm2B7CVBqADD48EEsD8P8YeM9k/aKVzREIepQlc3ZrNg26two4h8mjp+Ymf1e9kC+cmtYpLfq7pw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GtaGb9PXEb1Llg2Wp3eP4ELTAhLAmxG8cgEzoFAImbs=;
 b=lyHqVzbfTBDl0XczKyZE9Bft+QywUhH99Qlql6ukaD5NI+T+VThi+GPhpXN3hgSMsMg2kIAhDziPlwbRUZPWX+n+7Nj6QiJd+lVtq+decxk19O7JUqbzeptHFSWrmeWiwAMf3HWWyPX+izxaNMfFNCzf59ug39GWSAglPQiloko2HTXAfZ63XRvCD2zhpXol4NTGXZjWJ+MXhrVlMVU/qfTdR8H/PseBgTKCZ/vpyeTFTvQXcRYtvczHLA6SidvSVYx6226SRob6BsUwiEgTpC1PUu6VPNit175rTmxQJ0m+XnwbNfw8f3uP/beoBeXtaGZbIEQGqX/6pP/TgA62Pg==
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=GtaGb9PXEb1Llg2Wp3eP4ELTAhLAmxG8cgEzoFAImbs=;
 b=Wn2hq27Msxc/UWijw3y7ED7VsEn/dMdAz8vSbdQpjaOayLC0WWDqiAEMa5QB1HS1JeEXkONEcFUEHDm7JADoqXhnUEZiBPQ4+VvinpPqMJMSpM7pxdCPH4avsTIG/qgZaZRK7ERIOcrhflK1UfdEUpdT9SqfD/vgVySJBQXWFow=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Connor Davis <connojdavis@gmail.com>, Oleksii
 Kurochko <oleksii.kurochko@gmail.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
Subject: Re: [PATCH v6 3/5] arm/sysctl: Implement cpu hotplug ops
Thread-Topic: [PATCH v6 3/5] arm/sysctl: Implement cpu hotplug ops
Thread-Index: AQHcsgQlrSHMHm92lE+sySYP2damirWz/MsA
Date: Wed, 18 Mar 2026 08:23:03 +0000
Message-ID: <4E68F534-3851-4FB3-9ADC-A01DC323F819@arm.com>
References: <cover.1773307749.git.mykyta_poturai@epam.com>
 <206261ba0b60ebcff25e083c22d9e9b885645199.1773307749.git.mykyta_poturai@epam.com>
In-Reply-To:
 <206261ba0b60ebcff25e083c22d9e9b885645199.1773307749.git.mykyta_poturai@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PA4PR08MB7643:EE_|AMS0EPF000001A9:EE_|AS2PR08MB8309:EE_
X-MS-Office365-Filtering-Correlation-Id: 285d25be-b061-4ef7-aa9b-08de84c7b91e
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|7416014|376014|366016|38070700021|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info-Original:
 QSK93Fc6xPaD9tLLc0FE42U6OCh5rifrKD+/zfGMn7nWU6FXiN9+plqLaSE6L4rl7ng9j4MU/LputY/+OiKLaEEu9PmMXiF+oIBJuXwxnqQvv1ul2vXD82v7T0aBWCHH+fxglJ4OFnUdLb5CwO6G6YudP3/GhBz9qelhbR9e8zhHhVsPRlUAiHoq+w3XJWzkIiLikzniEMXwNkLVMYUw3vLYdRGw2sBgK3okLxeAAwFqrlGwBVEdTjerr8Drw3ySoH9b1yBVvPubXA1K5f2iVrEn8PuScn1wWr386WfFK9HqMRltM8FHTwth0AylE2XBDwJtNdJ5tYKGSjol0+O8EJ96eeiQym/XK4B53FgxTbyf68Cn+mjRA2iDreazGp8kqO02reVteGK4+hgM0tpQMuZsK1mTO4JgnmITwti2z3/zQfeH54TTB7SVthdmoHigU0z534hqvNVuTOjSKfdTil9lfJgzJI2yEhue1KHyaG2EjTdDJ1i32SzvYyVHzh6o+FnjSqr+hvG+saSiXMYZTOgnWtgDmaAcOWj+pNsTY9Rdi9bRmmRlcJWSRjysWIhSHrE8aU2SoMqN5PKA7QiSRXeWLKacpTYE8r7fzxJ062F957MDUj6TKwgPd03hdmafB1AYKAJaVMVyskrfqmI0xrl/dYzY4pJGnn7IS40Ev3cT8ltSu/B48uyRqas3h04v+pmBivP60XpYWmFUXeSvZSWCVwdKndhDNdYMMFGM+LQGVIRdui6M+YtxSYZhWOfYcMz8/Naxb3F3hA6hXH2PAYpi3logcJ3M72kRx1gFv1Y=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(38070700021)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <52134D3A5AC95B4AB21A99AA8856E926@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 GKLqPMBdxzLKIK876gYmRW2bgAYi4lrDYb6RXY9VQYbUoEjTHCfxD4JLheeThzAv6fHNLjrxVb/sj/rLT8dwAecq5pdBSUHcmjNScC4ElHLOQqB3zF8UbWXOcDHjsj1J7qdI9YaMWzul3IGiITKqooEZQ0uU4GMvDrh7glfW73xa3A/fM3ufMPwzxyKwl8HecUKwGsAhJGnsXdefJVlubJv8orEBxNfRTwuUZFE5OfIbmpPjRe5tBQWc2SynMHsZlCc7ADE2rCv1a0V0Mqn+clyOeBtExWExl7vrzy20RKz1Gec3ECyNkrmiFxDs/oiGIhJCFXu+X3R1gs84le2fHw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB7643
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001A9.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	8d3bcd9a-d2d6-4701-8b79-08de84c79306
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|82310400026|376014|14060799003|35042699022|36860700016|1800799024|7053199007|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	vv8kfHOjKmePD9Yv66O8gr9kv9Z2DDy8Iw3mU2AmvUoeGNP030rkVJAeEe0P0EDsUyuNjiAEJvaMtN7qO0N0XKT6r4o9EODsu4FbJ/ZF/C/Q8cgIEqyI/hq9f3sYHnmFdqkL0dAmLjl2RVSfZOngMn7esBm+1bL6rvGiBim/rB5jRV8F7Yz1agAKpdJ/JBk/3cyR9oGUigRcTWQePwHwgiExyh/IwTPu9avchU65WOR45t0++Y3NO1yqnbWpyZfD3n8DemtOVRibbK1f6E2orr158+p+144xAHGa3QNi6oGn8fQmFAGrX40WDPh3K+TSzqTro1ygMICCskxX7MYfnVcLuCL3d96KYmLNmTevhA9AW+AYC/nyl/rzA2rGs2n6QTaARsaLyhrHKK4yJyRzDqc89gD4ie07txXIIUOQEuVPcYRf2bOXPNBwc1Qc7WuVfMaWVGFGLX1gaiN8YKxqGlsS85qwRMXZbkaL+FBeV2KN78jKKkH8uDuu4rR62z9/5HjFFncVwLldwdJT8l+L+CF8lhpXl3xKkhkQN7bv95CyCadKrTRAujRgTkC0jTiqkNAYEjWeY/pWfFpU4CFTNbTYKXlVwlZtRYWEVHBdsnZlNhJrhXYElcSTLF/d7gXWrQWLKjfC3Whi1Qr3M9p8CLkjNv+6bJsecNz/XsN6A/p3JbVQ/PWf3UV9kvR/wo9DM+kcXeLN2z7hpaR7+GC9KhNBvjTvTKzylMwItn+Hxq/QATYhQo2wiEF7o4vS3oN6cBO09K4ugEH2ZttxsTUWJQ==
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)(82310400026)(376014)(14060799003)(35042699022)(36860700016)(1800799024)(7053199007)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	u5fvsfUZwfvE2UqwMWeqCEqyFPeRwFLi+6NA96PIXfYGgdDc2hDrQ2Ygj27slHhve4f0WhW+8T649x3ghlVsNf5V57aaTTO13/xjLKz38vWa5Ae4M7b19RQMoUBz8iyojaobhWV0Ty2jvBKl56DomC1y9TecK4lJ3jd0Cc4TDAACI1uDANQE7N15wqqkIHx1o0PfE4uV8jTj86lX59wGCrdTwC/osr/vgEIl+D7938ZmLpHwT9iNgfgp9HxbCccOpPtW3Lnz9Qa/R8ftdAFWM1nJDdPIQD/Cmq0aKtghRyXgNyiHpz2SgDkPfnjtJrNjOhuNJuBDWplPzW5z16l6DomwQeTRd8p+gEHk3nwO4f8xRY6mAr6ZMm6LLV5dgbncVVpTMgr7l0jFzhaS4naahj6fjdgSMkU6Lrn3peJwrFbacwZbpHCjSgY+6DVe7zkW
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Mar 2026 08:24:07.1200
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 285d25be-b061-4ef7-aa9b-08de84c7b91e
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: AS2PR08MB8309

Hi Mykyta,

> On 12 Mar 2026, at 10:39, Mykyta Poturai <Mykyta_Poturai@epam.com> wrote:
>=20
> Move XEN_SYSCTL_CPU_HOTPLUG_{ONLINE,OFFLINE} handlers to common code to
> allow for enabling/disabling CPU cores in runtime on Arm64.
>=20
> SMT-disable enforcement check is moved into a separate
> architecture-specific function.
>=20
> 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.
>=20
> Create a Kconfig option CPU_HOTPLUG that reflects this
> constraints. On X86 the option is enabled unconditionally.
>=20
> As cpu hotplug now has its own config option, switch flask to allow
> XEN_SYSCTL_cpu_hotplug depending on CONFIG_CPU_HOTPLUG, so it can work
> not only on x86.
>=20
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
>=20
> ---
>=20
> v5->v6:
> * fix style issues
> * rename arch_smt_cpu_disable -> arch_cpu_can_stay_online and invert the
>  logic
> * use IS_ENABLED istead of ifdef
> * remove explicit list af arch-specific SYSCTL_CPU_HOTPLUG_* options
>  from the common handler
> * fix flask issue
>=20
> v4->v5:
> * move handling to common code
> * rename config to CPU_HOTPUG
> * merge with "smp: Move cpu_up/down helpers to common code"
>=20
> v3->v4:
> * don't reimplement cpu_up/down helpers
> * add Kconfig option
> * fixup formatting
>=20
> v2->v3:
> * no changes
>=20
> v1->v2:
> * remove SMT ops
> * remove cpu =3D=3D 0 checks
> * add XSM hooks
> * only implement for 64bit Arm
> ---
> xen/arch/arm/smp.c                |  9 ++++++
> xen/arch/ppc/stubs.c              |  4 +++
> xen/arch/riscv/stubs.c            |  5 ++++
> xen/arch/x86/include/asm/smp.h    |  3 --
> xen/arch/x86/platform_hypercall.c | 12 ++++++++
> xen/arch/x86/smp.c                | 33 ++--------------------
> xen/arch/x86/sysctl.c             | 21 ++++++++------
> xen/common/Kconfig                |  6 ++++
> xen/common/smp.c                  | 35 +++++++++++++++++++++++
> xen/common/sysctl.c               | 46 +++++++++++++++++++++++++++++++
> xen/include/xen/smp.h             |  4 +++
> xen/xsm/flask/hooks.c             |  2 +-
> 12 files changed, 137 insertions(+), 43 deletions(-)
>=20
> diff --git a/xen/arch/arm/smp.c b/xen/arch/arm/smp.c
> index b372472188..984f863a9a 100644
> --- a/xen/arch/arm/smp.c
> +++ b/xen/arch/arm/smp.c
> @@ -44,6 +44,15 @@ void smp_send_call_function_mask(const cpumask_t *mask=
)
>     }
> }
>=20
> +/*
> + * We currently don't support SMT on ARM so we don't need any special lo=
gic for
> + * CPU disabling
> + */
> +bool arch_cpu_can_stay_online(unsigned int cpu)
> +{
> +    return true;
> +}
> +
> /*
>  * Local variables:
>  * mode: C
> diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
> index a333f06119..8f280ba080 100644
> --- a/xen/arch/ppc/stubs.c
> +++ b/xen/arch/ppc/stubs.c
> @@ -101,6 +101,10 @@ void smp_send_call_function_mask(const cpumask_t *ma=
sk)
>     BUG_ON("unimplemented");
> }
>=20
> +bool arch_cpu_can_stay_online(unsigned int cpu)
> +{
> +    BUG_ON("unimplemented");
> +}
> /* irq.c */
>=20
> void irq_ack_none(struct irq_desc *desc)
> diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
> index daadff0138..7c3cda7bc5 100644
> --- a/xen/arch/riscv/stubs.c
> +++ b/xen/arch/riscv/stubs.c
> @@ -70,6 +70,11 @@ void smp_send_call_function_mask(const cpumask_t *mask=
)
>     BUG_ON("unimplemented");
> }
>=20
> +bool arch_cpu_can_stay_online(unsigned int cpu)
> +{
> +    BUG_ON("unimplemented");
> +}
> +
> /* irq.c */
>=20
> void irq_ack_none(struct irq_desc *desc)
> diff --git a/xen/arch/x86/include/asm/smp.h b/xen/arch/x86/include/asm/sm=
p.h
> index 3f16e62696..cb3e0fed19 100644
> --- a/xen/arch/x86/include/asm/smp.h
> +++ b/xen/arch/x86/include/asm/smp.h
> @@ -50,9 +50,6 @@ int cpu_add(uint32_t apic_id, uint32_t acpi_id, uint32_=
t pxm);
>=20
> void __stop_this_cpu(void);
>=20
> -long cf_check cpu_up_helper(void *data);
> -long cf_check cpu_down_helper(void *data);
> -
> long cf_check core_parking_helper(void *data);
> bool core_parking_remove(unsigned int cpu);
> uint32_t get_cur_idle_nums(void);
> diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hy=
percall.c
> index cd4f0ae5e5..e745151790 100644
> --- a/xen/arch/x86/platform_hypercall.c
> +++ b/xen/arch/x86/platform_hypercall.c
> @@ -735,6 +735,12 @@ ret_t do_platform_op(
>     {
>         int cpu =3D op->u.cpu_ol.cpuid;
>=20
> +        if ( !IS_ENABLED(CONFIG_CPU_HOTPLUG) )
> +        {
> +            ret =3D -EOPNOTSUPP;
> +            break;
> +        }
> +
>         ret =3D xsm_resource_plug_core(XSM_HOOK);
>         if ( ret )
>             break;
> @@ -761,6 +767,12 @@ ret_t do_platform_op(
>     {
>         int cpu =3D op->u.cpu_ol.cpuid;
>=20
> +        if ( !IS_ENABLED(CONFIG_CPU_HOTPLUG) )
> +        {
> +            ret =3D -EOPNOTSUPP;
> +            break;
> +        }
> +
>         ret =3D xsm_resource_unplug_core(XSM_HOOK);
>         if ( ret )
>             break;
> diff --git a/xen/arch/x86/smp.c b/xen/arch/x86/smp.c
> index 7936294f5f..b781e933f2 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_cpu_can_stay_online(unsigned int cpu)
> {
> -    unsigned int cpu =3D (unsigned long)data;
> -    int ret =3D cpu_up(cpu);
> -
> -    /* Have one more go on EBUSY. */
> -    if ( ret =3D=3D -EBUSY )
> -        ret =3D cpu_up(cpu);
> -
> -    if ( !ret && !opt_smt &&
> -         cpu_data[cpu].compute_unit_id =3D=3D INVALID_CUID &&
> -         cpumask_weight(per_cpu(cpu_sibling_mask, cpu)) > 1 )
> -    {
> -        ret =3D cpu_down_helper(data);
> -        if ( ret )
> -            printk("Could not re-offline CPU%u (%d)\n", cpu, ret);
> -        else
> -            ret =3D -EPERM;
> -    }
> -
> -    return ret;
> -}
> -
> -long cf_check cpu_down_helper(void *data)
> -{
> -    int cpu =3D (unsigned long)data;
> -    int ret =3D cpu_down(cpu);
> -    /* Have one more go on EBUSY. */
> -    if ( ret =3D=3D -EBUSY )
> -        ret =3D cpu_down(cpu);
> -    return ret;
> +    return opt_smt || cpu_data[cpu].compute_unit_id !=3D INVALID_CUID ||
> +           cpumask_weight(per_cpu(cpu_sibling_mask, cpu)) <=3D 1;
> }
> diff --git a/xen/arch/x86/sysctl.c b/xen/arch/x86/sysctl.c
> index 1b04947516..35239b73c1 100644
> --- a/xen/arch/x86/sysctl.c
> +++ b/xen/arch/x86/sysctl.c
> @@ -49,6 +49,7 @@ static void cf_check l3_cache_get(void *arg)
>=20
> static long cf_check smt_up_down_helper(void *data)
> {
> +    #ifdef CONFIG_CPU_HOTPLUG
>     bool up =3D (bool)data;
>     unsigned int cpu, sibling_mask =3D boot_cpu_data.x86_num_siblings - 1=
;
>     int ret =3D 0;
> @@ -89,6 +90,8 @@ static long cf_check smt_up_down_helper(void *data)
>                up ? "enabled" : "disabled", CPUMASK_PR(&cpu_online_map));
>=20
>     return ret;
> +    #endif /* CONFIG_CPU_HOTPLUG */
> +    return 0;
> }
>=20
> void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
> @@ -115,24 +118,24 @@ long arch_do_sysctl(
>=20
>     case XEN_SYSCTL_cpu_hotplug:
>     {
> -        unsigned int cpu =3D sysctl->u.cpu_hotplug.cpu;
>         unsigned int op  =3D sysctl->u.cpu_hotplug.op;
>         bool plug;
>         long (*fn)(void *data);
>         void *hcpu;
>=20
> -        switch ( op )
> +        if ( !IS_ENABLED(CONFIG_CPU_HOTPLUG) )
>         {
> -        case XEN_SYSCTL_CPU_HOTPLUG_ONLINE:
> -            plug =3D true;
> -            fn =3D cpu_up_helper;
> -            hcpu =3D _p(cpu);
> +            ret =3D -EOPNOTSUPP;
>             break;
> +        }
>=20
> +        switch ( op )
> +        {
> +        case XEN_SYSCTL_CPU_HOTPLUG_ONLINE:
>         case XEN_SYSCTL_CPU_HOTPLUG_OFFLINE:
> -            plug =3D false;
> -            fn =3D cpu_down_helper;
> -            hcpu =3D _p(cpu);
> +            /* Handled by common code */
> +            ASSERT_UNREACHABLE();
> +            ret =3D -EOPNOTSUPP;
>             break;
>=20
>         case XEN_SYSCTL_CPU_HOTPLUG_SMT_ENABLE:
> diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> index d7e79e752a..bb73990355 100644
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -637,6 +637,12 @@ config SYSTEM_SUSPEND
>=20
>  If unsure, say N.
>=20
> +config CPU_HOTPLUG
> + bool "Enable CPU hotplug"
> + depends on (X86 || ARM_64) && !FFA && !TEE && !HAS_ITS
> + default y

I do not see this as something that should be enabled on arm or
depend on any of this.

FFA could work, conditions depend more on the rest of the system
than on FFA code, same for tee which depends on TEE (and actually
FFA depends on TEE).

So i would rather see this as default n on ARM64 and only depend
on HAS_ITS and maybe flag this feature as EXPERT on arm64.

What are others thinking here ?

Cheers
Bertrand

> +
> +
> menu "Supported hypercall interfaces"
> visible if EXPERT
>=20
> diff --git a/xen/common/smp.c b/xen/common/smp.c
> index a011f541f1..e2bf82856e 100644
> --- a/xen/common/smp.c
> +++ b/xen/common/smp.c
> @@ -16,6 +16,7 @@
>  * GNU General Public License for more details.
>  */
>=20
> +#include <xen/cpu.h>
> #include <asm/hardirq.h>
> #include <asm/processor.h>
> #include <xen/spinlock.h>
> @@ -104,6 +105,40 @@ void smp_call_function_interrupt(void)
>     irq_exit();
> }
>=20
> +#ifdef CONFIG_CPU_HOTPLUG
> +long cf_check cpu_up_helper(void *data)
> +{
> +    unsigned int cpu =3D (unsigned long)data;
> +    int ret =3D cpu_up(cpu);
> +
> +    /* Have one more go on EBUSY. */
> +    if ( ret =3D=3D -EBUSY )
> +        ret =3D cpu_up(cpu);
> +
> +    if ( !ret && !arch_cpu_can_stay_online(cpu) )
> +    {
> +        ret =3D cpu_down_helper(data);
> +        if ( ret )
> +            printk("Could not re-offline CPU%u (%d)\n", cpu, ret);
> +        else
> +            ret =3D -EPERM;
> +    }
> +
> +    return ret;
> +}
> +
> +long cf_check cpu_down_helper(void *data)
> +{
> +    unsigned int cpu =3D (unsigned long)data;
> +    int ret =3D cpu_down(cpu);
> +
> +    /* Have one more go on EBUSY. */
> +    if ( ret =3D=3D -EBUSY )
> +        ret =3D cpu_down(cpu);
> +    return ret;
> +}
> +#endif /* CONFIG_CPU_HOTPLUG */
> +
> /*
>  * Local variables:
>  * mode: C
> diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
> index 5207664252..51a3dd699a 100644
> --- a/xen/common/sysctl.c
> +++ b/xen/common/sysctl.c
> @@ -483,6 +483,52 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) =
u_sysctl)
>             copyback =3D 1;
>         break;
>=20
> +    case XEN_SYSCTL_cpu_hotplug:
> +    {
> +        unsigned int cpu =3D op->u.cpu_hotplug.cpu;
> +        unsigned int hp_op =3D op->u.cpu_hotplug.op;
> +        bool plug;
> +        long (*fn)(void *data);
> +        void *hcpu;
> +
> +        ret =3D -EOPNOTSUPP;
> +        if ( !IS_ENABLED(CONFIG_CPU_HOTPLUG) )
> +            break;
> +
> +        switch ( hp_op )
> +        {
> +        case XEN_SYSCTL_CPU_HOTPLUG_ONLINE:
> +            plug =3D true;
> +            fn =3D cpu_up_helper;
> +            hcpu =3D _p(cpu);
> +            break;
> +
> +        case XEN_SYSCTL_CPU_HOTPLUG_OFFLINE:
> +            plug =3D false;
> +            fn =3D cpu_down_helper;
> +            hcpu =3D _p(cpu);
> +            break;
> +
> +        default:
> +            fn =3D NULL;
> +            break;
> +        }
> +
> +        if ( fn )
> +        {
> +            ret =3D plug ? xsm_resource_plug_core(XSM_HOOK)
> +                       : xsm_resource_unplug_core(XSM_HOOK);
> +
> +            if ( !ret )
> +                ret =3D continue_hypercall_on_cpu(0, fn, hcpu);
> +
> +            break;
> +        }
> +
> +        /* Use the arch handler for cases not handled here */
> +        fallthrough;
> +    }
> +
>     default:
>         ret =3D arch_do_sysctl(op, u_sysctl);
>         copyback =3D 0;
> diff --git a/xen/include/xen/smp.h b/xen/include/xen/smp.h
> index 2ca9ff1bfc..04530738c9 100644
> --- a/xen/include/xen/smp.h
> +++ b/xen/include/xen/smp.h
> @@ -76,4 +76,8 @@ extern void *stack_base[NR_CPUS];
> void initialize_cpu_data(unsigned int cpu);
> int setup_cpu_root_pgt(unsigned int cpu);
>=20
> +bool arch_cpu_can_stay_online(unsigned int cpu);
> +long cf_check cpu_up_helper(void *data);
> +long cf_check cpu_down_helper(void *data);
> +
> #endif /* __XEN_SMP_H__ */
> diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
> index b250b27065..36d357cae8 100644
> --- a/xen/xsm/flask/hooks.c
> +++ b/xen/xsm/flask/hooks.c
> @@ -835,7 +835,7 @@ static int cf_check flask_sysctl(int cmd)
>     case XEN_SYSCTL_getdomaininfolist:
>     case XEN_SYSCTL_page_offline_op:
>     case XEN_SYSCTL_scheduler_op:
> -#ifdef CONFIG_X86
> +#ifdef CONFIG_CPU_HOTPLUG
>     case XEN_SYSCTL_cpu_hotplug:
> #endif
>         return 0;
> --=20
> 2.51.2



From xen-devel-bounces@lists.xenproject.org Wed Mar 18 08:29:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Mar 2026 08:29:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256390.1551064 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2mHb-0007Oz-4b; Wed, 18 Mar 2026 08:29:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256390.1551064; Wed, 18 Mar 2026 08:29: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 1w2mHb-0007Os-1p; Wed, 18 Mar 2026 08:29:39 +0000
Received: by outflank-mailman (input) for mailman id 1256390;
 Wed, 18 Mar 2026 08:29: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=cC/N=BS=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1w2mHZ-0007Om-Hs
 for xen-devel@lists.xenproject.org; Wed, 18 Mar 2026 08:29: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 97e8e6b1-22a4-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Mar 2026 09:29:34 +0100 (CET)
Received: from DU2PR04CA0183.eurprd04.prod.outlook.com (2603:10a6:10:28d::8)
 by AS2PR08MB9048.eurprd08.prod.outlook.com (2603:10a6:20b:5fe::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.27; Wed, 18 Mar
 2026 08:29:29 +0000
Received: from DB5PEPF00014B97.eurprd02.prod.outlook.com
 (2603:10a6:10:28d:cafe::41) by DU2PR04CA0183.outlook.office365.com
 (2603:10a6:10:28d::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.27 via Frontend Transport; Wed,
 18 Mar 2026 08:29:05 +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.9723.19
 via Frontend Transport; Wed, 18 Mar 2026 08:29:28 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AM8PR08MB6371.eurprd08.prod.outlook.com (2603:10a6:20b:363::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Wed, 18 Mar
 2026 08:28:21 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9723.018; Wed, 18 Mar 2026
 08:28:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 97e8e6b1-22a4-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=otyivtTRkLAB/8IGI+9hZPi8/RbSXfgaKC2kfo7ncTcxHHXntyXao3qoQW7hv2EwWgMMp5/ExI4Q6/72vX8rPcIvgmAIniy57sIeaqFxoXoVmjCwWhCNRGgruS6/COlXJS7e25rhBA6kE94XDb0DlllylWI1RxVShZAb/RfGrFRVhPRdFm7brOwRB0eYcG5co6i6UDeu2GFESiDtR9edgWZX/QMvVQbVJ2mC4K4C5ZCMbHSiDkEsoidvNqbRjD1qekjpIzSN3OLxxrbu9m9U+1d+gFBWFpED+iXaXkJNld6eeIsw8FQbAScfzsee5wR1acIX6Do1wQOsEyFLEnUVog==
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=erRJBGYa/wMcdr+S45LfWALzLyTSxg9xvHhSLIyqtt8=;
 b=TWgnyQHtP9MHpnRHIo1Xe7MrbeQNqvoNGH2/LbC/XvT7fd5riVTL8GXGgJ8mzaOWHv5ji6takMwNqFhtkcMugq5Bdmqyazag5yBoIVfCZsryqu8ceNxidhWKALPFpIf8vP3DmTcRJA9BPG5PMa4as1kWg0S0uNUWDI2RXZkOi62db9DeJGL5XiMlD5lAOLl8ED/STQIDlS7TMTfktdVKH23tsOfFI0NGHrw8Z54nfjpKmw3yfouhg9w5w4NWVhbkhR1HQ6KL/5nnIqU1Y+IVE2FQHlc3gfJu3+WpxKl7n73CtTc+/Jm1uFGeH+yGO++pkhcN84n/6htXx4y9s4hLaw==
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=erRJBGYa/wMcdr+S45LfWALzLyTSxg9xvHhSLIyqtt8=;
 b=bVdE0ynKzRUb/qSGlPrsuh8wuHR25O349sJsUWswlpGmeawLoJ5mAve4PtgAsuv4rwiiXLcosVQ/UikNICHnbIWsCmdfUWx/lqMF4g0Zv1SqCxq7LUV6SZ9fOTtRumTye49AV21Ji81Apmd7Z10WzbZmCie38Emw6rSdhpfamAU=
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=I+tnbuOoWQ3j5GrpeZKkfkSDFsIElEjWtS4iR9DdLb22K74OuGOelBEsJjNBVDZvhGisR2aIkKcX2mOGBfh91rIpudUUhzFD1xbk9kdglOMClt5/P/l8Odozwe/AY7Yy3yckgVwyvUJXnQPLI03ywTxWxL7V5kMfwzrZRdH5rjg85PAt3KmY9KZW/c+jHrzkMeD26dDOeYIJtt+egLfI75B+ZmFNAUn4YIEXojJI/7BgJgvoFUNm0aeZIto2ltxB1DOTuf4xj9PC6BNN4m1bQbZ855Zs6R0UMJeah+M7mI7hNFciYQ6eyoKvJJFRN88PWVDIPFSxBbPcs/oYD0yMLw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=erRJBGYa/wMcdr+S45LfWALzLyTSxg9xvHhSLIyqtt8=;
 b=aSFgj9UTmZp3gLOe7M8qNnR4wTbOxYgIDyhjfxrBzfKiSn2ZjgbnhdX+BzC3kCRslSio1JpCWP5z+U1XoPs5F/ZSFFByLNASuc13KEBoY2XPeU4IfFyNwh4iUs+rTNbdDwqH0DuVuMeVUy14FqVysUz7kSmY7mm5aX7T8lI1tHPUlDKXGQPV9OW2VB3S0LhLqFm/5U6b4Nt9YHXKjyGIZU8cOijzKcqAplvLEWgi2hr0ug3HvBpI0F3Z/UWjnyCcgunR/HWkoOZDLHtWSy0q/xckN6bYnlG4VkWwkqxdw6kJgs//bE8hfBof1RA8oXeLOqPKZsgOkJCUKkJ2orqwog==
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=erRJBGYa/wMcdr+S45LfWALzLyTSxg9xvHhSLIyqtt8=;
 b=bVdE0ynKzRUb/qSGlPrsuh8wuHR25O349sJsUWswlpGmeawLoJ5mAve4PtgAsuv4rwiiXLcosVQ/UikNICHnbIWsCmdfUWx/lqMF4g0Zv1SqCxq7LUV6SZ9fOTtRumTye49AV21Ji81Apmd7Z10WzbZmCie38Emw6rSdhpfamAU=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>
Subject: Re: [PATCH v6 5/5] docs: Document CPU hotplug
Thread-Topic: [PATCH v6 5/5] docs: Document CPU hotplug
Thread-Index: AQHcsgQvuWVORvDa+Um30EZkSgxRE7Wz/keA
Date: Wed, 18 Mar 2026 08:28:21 +0000
Message-ID: <24524A8E-6A01-4066-8F21-615E1C1E3633@arm.com>
References: <cover.1773307749.git.mykyta_poturai@epam.com>
 <4857e0c10c59f283e4a3686bf9188a1809a9fd55.1773307749.git.mykyta_poturai@epam.com>
In-Reply-To:
 <4857e0c10c59f283e4a3686bf9188a1809a9fd55.1773307749.git.mykyta_poturai@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AM8PR08MB6371:EE_|DB5PEPF00014B97:EE_|AS2PR08MB9048:EE_
X-MS-Office365-Filtering-Correlation-Id: 4f7c9b25-0bcb-461d-9b79-08de84c87860
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|56012099003|18002099003|22082099003|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 1TSCzfmPXLaMIlFOmLje35mwsSDWh01VWQyeMHW6e3IHemdzoMnEl7VJWOEL7njfm5SojvN/xggbuuspD11iOEzbMcAtZ0jRe7EyTmiBPp5BMZh+j016Fnz29YTSDeq1/xJ8wyXYS5l2u8pDPAF5VecH5zB+51Yz84DPCG011n1UmyK9U4bpEYIkQ/IS+eaYZenFVUzFsQgEtrNpoS2g2vKv1zf9vUpBoAAWkIVXsltF2EfEZ6fii10ZK6i2z7c0O6MhJ0pf6lux9PaGIWxEJ2Qg4BqEb9thSTyNDhG2QvoyVf6/MsK296NYePY4F0j0scoCslJg7DGpXAI2/LIs5ZJFz7VwpR1Rokl9fIEXAGRrl3tKwz+uYeYtyZkjuvwRtnAISbYcpV8nLF2RCmtuVi0TgVryxY6jkf1jh9GhaGEaJJttYLipNCtlA2vP9sOeNUDliOXyDc6vBWgBMPT7TtQotSM1khPrdjWfZMi54CjiNTFilWl3UuG+5csgqMzml3bXtQPDISm9GauQr3yTuUnL84Z5O4jejrYefbQ6Tn74enptRugq55kan0nR0Oc2oqndwE1b74a0Q1/6+PPfc1jFrjz/db2R3WpYu27estlLDVTIMIrmuL066ZozPprxDbHKmPSYxh6nkfmxwu20CzbVOd5wEu34lDt56w6f9B7Xzvhd5GgV9ujVCYFY690yTKBgNBgkU2S1LPljiBJqo6wNa/BupyqEbFeJCf1NtScOeR7Xp9hyztvTXI3dRCwLhirSGkwT1Geq/v4IMt4M1/P/U/YlCQMeQkx1gXgDtoM=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(56012099003)(18002099003)(22082099003)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <1B56E4123745594FAF8F9D83A509AC40@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 TTJ8eXkhANGz6jb6VzOHi1miQmuf5sgz2cx2jNgRxJghIIEJBTuGTVrTs/JSZLCPw7CbilTYjuKVXpZsbeuKBzlktdPApGKLypbxjM4Bm8gLKMj6RjgVBmGttBKdU36rJfx6pxN/b856NCWu34W+I79fd6tEW8yMeImYWfAWMzy3r+JzK+a0CkktCt7YHA3RZyd89iz5Zt+RGd2rhmXlISdq6S11moCt3LJBzH7bdDoqGm7/vcV6w3ZUQk+qT3HXghiChNTkriBpBo2NxK/ITs3GXb1Uo1XweY6ncp50if/9Mf65NfHOdR3FwiIRfrFBtOy08PsZ/WOli8RuslyjkA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6371
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B97.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	50237e22-7f43-4554-548c-08de84c850c5
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|82310400026|1800799024|376014|35042699022|36860700016|7053199007|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	YtSuMbFVrDls+HfMczH0U33Dl+REyN/Eq088ftGRDOP1r8CILLJH7YyvFhTgGYaSrYnTTIk8QUHVR18NZoZRRmsH+HVbowbBRiLMAHYMqQox64e5cqduvdqwUC+cqoXYNIr9xybXagz7kuYWEHnYTYdlpjvnWnM51et1OZE3Kgh5VXwAbvgBdbRXDf9I1GpCrm/yqBmEUBsBishRCJ1kgKm8X4PPQ7/UniQziot49HbsIM7flLMOeH3KWXjkrKrv/1zhSBmYKTCk2yA+r/KXLV9sUFhstKzsD2t7iBIk77JFMQLLvKfBcobm33HoDwkv52nxQz84noxsqkenaLSdLQqYs9TdmiFYHBrxg/phK8NsnMQRlae2rYXKK4Ckb2N9tTMlkIV7YYxkirDWEFgyiiLpyEuNyclSxnmldZnH77WHPWMBTDNCQrSckfIO/4XcH8zWDchLcccqEosYQV8gDm2+GqlTOK6NXfrHn0Wxixhq+HqOqHrnGKjcGpfmyDc3HGKw9oTcI6BjWNDdXgE2PuRnbPGeaOPDhQOk+dgqoyildDrzdm8nCmZ9EI1TZuyOKMu6/6Hi/SLj2fVtWPDFA/4AkAXtAv6Xu3CDpxvkEoSRy+DZPLnf3/vSNH6n4WxWQwVmJTBabK0TtLONIEJzV+/7HpUDMJEY9ME9+MdnbvE954kGctF5DhsULwLT7P0mUfkXqLWe9P+Peha9lv/MrzeG7JUZ5/HtS8jh1atHkH9U7H2jlM0eQLWh42pPg0SPQMf3WY534iSzLVDvbOvZZA==
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(82310400026)(1800799024)(376014)(35042699022)(36860700016)(7053199007)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	mEYABCbJnjvt92lrrfDhFt4s6XeHrvmT1o6bL4qmjoO2MHpt1r2st6iCx5EaeaHXjeB9RFebk3G/AmDz+uQjw/hWSqe01jNzblAoeakyJBADRFghTiiGZaNscbLtoYnVobicEqx/AKx+CfC1vzJwazuxcV421e0lAMX7ur7l+jeGD4WT+4ERKbsiB0vrzDt3sgyorLUlzMJn6BRQBcvEduk9Q/lNh+BGyH7OykJn3ituPDrud/VfHueLWdypmvZvqjJXQkrAvkeyHM1h9c0xGGnJznXPTNfO+zHXmI2F2/nzSNDHmVOltZfyySGb9DhBd4CcgQfLXrSjKzEd6kdUtCOR0rs1ukt2KWR+9AGRYjKiMxe3ULQ2MXZCAci0b3fvuColCxZNHdMuqOaVw9OPXBcFa8TzP9yRgH7/w+yoIX6BT+KErDBIjqDfsCi6XtKw
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Mar 2026 08:29:28.0081
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4f7c9b25-0bcb-461d-9b79-08de84c87860
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: AS2PR08MB9048

Hi Mykyta,

> On 12 Mar 2026, at 10:39, Mykyta Poturai <Mykyta_Poturai@epam.com> wrote:
>=20
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
>=20
> v5->v6:
> * no changes
>=20
> v4->v5:
> * s/supported/implemented/
> * update SUPPORT.md
>=20
> v3->v4:
> * update configuration section
>=20
> v2->v3:
> * patch introduced
> ---
> SUPPORT.md                |  1 +
> docs/misc/cpu-hotplug.txt | 50 +++++++++++++++++++++++++++++++++++++++
> 2 files changed, 51 insertions(+)
> create mode 100644 docs/misc/cpu-hotplug.txt
>=20
> diff --git a/SUPPORT.md b/SUPPORT.md
> index d441bccf37..7b93ae69e7 100644
> --- a/SUPPORT.md
> +++ b/SUPPORT.md
> @@ -52,6 +52,7 @@ For the Cortex A77 r0p0 - r1p0, see Errata 1508412.
> ### ACPI CPU Hotplug
>=20
>     Status, x86: Experimental
> +    Status, Arm64: Experimental
>=20
> ### Physical Memory
>=20
> diff --git a/docs/misc/cpu-hotplug.txt b/docs/misc/cpu-hotplug.txt
> new file mode 100644
> index 0000000000..45f20c2002
> --- /dev/null
> +++ b/docs/misc/cpu-hotplug.txt
> @@ -0,0 +1,50 @@
> +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 remove=
d from a
> +running system without requiring a reboot. It is implemented on x86 and =
Arm64
> +architectures.
> +
> +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 the boo=
t core.
> +Sysctl calls are routed to the boot core before doing any actual up/down
> +operations on other cores.
> +
> +Configuration
> +-------------
> +
> +The presence of the feature is controlled by CONFIG_CPU_HOTPLUG option. =
It is
> +enabled by default on x86 architecture. On Arm64, the option is enabled =
by
> +default when ITS, FFA, and TEE configs are disabled.
> +xen-hptool userspace tool is built unconditionally.
> +
> +Usage
> +-----
> +
> +Disable core:
> +
> +$ xen-hptool cpu-offline 2
> +Prepare to offline CPU 2
> +(XEN) Removing cpu 2 from runqueue 0
> +CPU 2 offlined successfully
> +
> +Enable core:
> +
> +$ xen-hptool cpu-online 2
> +Prepare to online CPU 2
> +(XEN) Bringing up CPU2
> +(XEN) GICv3: CPU2: Found redistributor in region 0 @00000a004005c000
> +(XEN) CPU2: Guest atomics will try 1 times before pausing the domain
> +(XEN) CPU 2 booted.
> +(XEN) Adding cpu 2 to runqueue 0
> +CPU 2 onlined successfully

It would be good to mention here what has been tested and what was out of s=
cope
or not supported at all (ITS for example).
As part of this list i would mention:
- TEE in general (FFA or optee)
- passthrough (unless you did some tests but you did not answer to my quest=
ion on
that on the previous version of the serie)

And maybe even describe quickly how the tests were executed.

Just so that people are aware of what scope is currently realist to try.

Cheers
Bertrand

> --=20
> 2.51.2
>=20



From xen-devel-bounces@lists.xenproject.org Wed Mar 18 12:16:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Mar 2026 12:16:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256437.1551072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2ppD-00022X-On; Wed, 18 Mar 2026 12:16:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256437.1551072; Wed, 18 Mar 2026 12:16:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2ppD-00022Q-M1; Wed, 18 Mar 2026 12:16:35 +0000
Received: by outflank-mailman (input) for mailman id 1256437;
 Wed, 18 Mar 2026 12:16:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/BnF=BS=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w2ppC-00022K-13
 for xen-devel@lists.xenproject.org; Wed, 18 Mar 2026 12:16:34 +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 4ce7405d-22c4-11f1-b164-2bf370ae4941;
 Wed, 18 Mar 2026 13:16:32 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-661d20c9787so9944737a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 18 Mar 2026 05:16:32 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-667aecbcc17sm1831540a12.5.2026.03.18.05.16.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 18 Mar 2026 05:16:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4ce7405d-22c4-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773836192; x=1774440992; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:content-language:references:cc:to:from
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=IDbbWjaUCa/NhBRNgLeh143VaZhNGwq41wrmPpDJO0o=;
        b=OfwVtHZX+5wy2OrHm6Stc0oaWSxK+Pu55akJW2dBJNdhmcFp5Bn+ZqkDq7QiHAFCKt
         4bViGyq8gvk4/fcXaANLhBU/MD5j4I8VA57hg7Uvlzalom7oWFwjJYRRqv24ueytdt57
         Xj7YnPhi/ipe/CPWdqgFY0UMMpipe5+2f5vTBQR8srqdKoUQ0KsmY39phkmRM24XtkLH
         SwRYTCimx4PY/mhQZEdfIBfBLF3dSSpZuex1P01MW4MEqEFh5jV3h21M045cY0xnft3G
         XhOTsE8ZA2QXRIPXw9KXBbTe92YeU5JhP4MeEztpvkiXBmrkzAneTkKU6KVo7ju9VX/O
         7RTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773836192; x=1774440992;
        h=in-reply-to:autocrypt:content-language:references:cc:to:from
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=IDbbWjaUCa/NhBRNgLeh143VaZhNGwq41wrmPpDJO0o=;
        b=f0OkRWI5R4wJu+fLTPpGOz2eDLOhPpgYb70JiZ7btlazS+uYWoJwI9RZMxTpgkiX+f
         7sJsgzEyQHvkD6f6MK7yWRs5LT3d2lW+T/7t6NpdGcLE/uZqZUyy+S5kL6aYBl9Sdr4T
         DNEfeK5WrICw/kMp6R4/jmgKA+SYO/l0hpz5+NpA1/yMbw/GEror7PrnvEgWhcpfP0/k
         ypS+aQbbyjgNuH1jqHOpt354au8z2RZ+wsJbfN91TKmz+0PcrcRT3b4Kf45szA9kQHP2
         eq8TMWM3NBpa+mPYk7Fhn7GbdzSwJrxzdk/GUhYoBltXJzrA5nVSKF/TcCDQgcZK1ePp
         rGQg==
X-Gm-Message-State: AOJu0Yzl1QWZldMM33TlNyfAUXC4JezzR3Fedjt/f0bYN32b3pTLmLGS
	wcwXkSxCGz8940ZaXoI6+ZItF58pzjTP8uD94sBxSOSSsWAgRfG48aLUOqsUtTBtGJoqc+dXvNu
	kPKic
X-Gm-Gg: ATEYQzwMS8ks7o74XVeSrHt/45cfHFoiDhy4LykuR0VGM4VvNc6JmkapzlG94ONjuDz
	O0wjDCisK8ZiQENDOLq2xOkGmDJqgtoJJnQOBsBVsxoMgtNN2/dKso0odpou6KY5Ad/qmG/IGlu
	KQLPD7T9P/Qd05tXgHzauASayehvIaTnqSLDSQ9PbP/Lk7ChbjeKfUGMbdQzAgYWx2iMY9RAmSP
	hYPFSn0Xye0v+h53JFzEiPJwOFhKWTMjIGV1fxFvgh+S7ufbcbeposiyK8C9v3lSjoSG7QpPUHf
	cTGx7z6mgPxMR1CDuIaUnS9ArDqKcx1vIhqtfcY1nt4RurwluROg3hR8ETJcuzX8eQFP5klLeoN
	a1k0YfvhUitIHmXMnsEL2z2ijVNFvxgO+XQX88yfe1lZl+jQ95M2R5XPeZP0Jw+amxNGyFRdVlJ
	bevCEdhJCKdgYkc+H6dDVYA+BaXHhXZJApGqeOelpD9Nkc40uQHUD0MJ/sJgj8qFJ3A0+47RJau
	1k+m1nP8AF7w62tKaAF/TtS2iHts2N7cOg3uEZyKVGjD5MRcmSUUA==
X-Received: by 2002:a05:6402:2805:b0:667:447d:cbb1 with SMTP id 4fb4d7f45d1cf-667b1e65353mr2289249a12.1.1773836191779;
        Wed, 18 Mar 2026 05:16:31 -0700 (PDT)
Message-ID: <52da8abd-a9d0-4a7d-8213-93a94b489fc6@suse.com>
Date: Wed, 18 Mar 2026 13:16:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 04/11] tools/xenstored: add GLOBAL_QUOTA_DATA record for
 live update
From: Juergen Gross <jgross@suse.com>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-5-jgross@suse.com> <abREpWtSt0eLWo4q@l14>
 <c065d0bd-2cbd-438f-adda-9e17a8294727@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: <c065d0bd-2cbd-438f-adda-9e17a8294727@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------5hoFOdae0TcTYJVx5rAqg2X0"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------5hoFOdae0TcTYJVx5rAqg2X0
Content-Type: multipart/mixed; boundary="------------XhY50a0RNZgHE0gJpiPK9s3R";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>
Message-ID: <52da8abd-a9d0-4a7d-8213-93a94b489fc6@suse.com>
Subject: Re: [PATCH 04/11] tools/xenstored: add GLOBAL_QUOTA_DATA record for
 live update
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-5-jgross@suse.com> <abREpWtSt0eLWo4q@l14>
 <c065d0bd-2cbd-438f-adda-9e17a8294727@suse.com>
In-Reply-To: <c065d0bd-2cbd-438f-adda-9e17a8294727@suse.com>

--------------XhY50a0RNZgHE0gJpiPK9s3R
Content-Type: multipart/mixed; boundary="------------kG9MgR5866jDepR1rRfwxm5u"

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

T24gMTYuMDMuMjYgMDk6MTUsIErDvHJnZW4gR3Jvw58gd3JvdGU6DQo+IE9uIDEzLjAzLjI2
IDE4OjA4LCBBbnRob255IFBFUkFSRCB3cm90ZToNCj4+IE9uIFRodSwgTWFyIDA1LCAyMDI2
IGF0IDAyOjUyOjAxUE0gKzAxMDAsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+Pj4gZGlmZiAt
LWdpdCBhL3Rvb2xzL3hlbnN0b3JlZC9kb21haW4uYyBiL3Rvb2xzL3hlbnN0b3JlZC9kb21h
aW4uYw0KPj4+IGluZGV4IGFjZGNhYTc2OWUuLjY5NGFlNTg5NzMgMTAwNjQ0DQo+Pj4gLS0t
IGEvdG9vbHMveGVuc3RvcmVkL2RvbWFpbi5jDQo+Pj4gKysrIGIvdG9vbHMveGVuc3RvcmVk
L2RvbWFpbi5jDQo+Pj4gQEAgLTEzMzIsNiArMTMzMiwyNyBAQCBpbnQgZG9fc2V0X2ZlYXR1
cmUoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiANCj4+PiAqY29ubiwNCj4+
PiDCoMKgwqDCoMKgIHJldHVybiAwOw0KPj4+IMKgIH0NCj4+PiArc3RhdGljIGJvb2wgcGFy
c2VfcXVvdGFfbmFtZShjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25lZCBpbnQgKnFpZHgsDQo+
Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGludCAqaWR4
KQ0KPj4+ICt7DQo+Pj4gK8KgwqDCoCB1bnNpZ25lZCBpbnQgcTsNCj4+DQo+PiBXaGF0IGRv
IHlvdSB0aGluayBvZiB1c2luZyBzb21ldGhpbmcgbGlrZToNCj4+IMKgwqDCoMKgIGNvbnN0
IGNoYXIgc29mdF9wcmVmaXhbXSA9ICJzb2Z0LSI7DQo+PiDCoMKgwqDCoCBjb25zdCBzaXpl
X3Qgc29mdF9wcmVmaXhfbGVuID0gc2l6ZW9mKHNvZnRfcHJlZml4KSAtIDE7DQo+PiB0byBl
eHBsYWluIHRoZSBgNWAsIGhlcmUgYW5kIGluIGUuZy4gdGhlIGZ1bmN0aW9uIGJ1aWxkX3F1
b3RhX2RhdGEoKSA/DQo+PiBXZSB1c2VkIHRoaXMgaW4gbGlieGwgaW4gb25lIHBsYWNlOg0K
Pj4gwqDCoMKgwqAgaHR0cHM6Ly9lbGl4aXIuYm9vdGxpbi5jb20veGVuL3Y0LjIxLjAvc291
cmNlL3Rvb2xzL2xpYnMvbGlnaHQvIA0KPj4gbGlieGxfcW1wLmMjTDEyODgNCj4+DQo+PiBC
dXQgaXQncyBmaW5lIHRvIGxlYXZlIGl0IGxpa2UgdGhhdCwgYXMgdGhlICc1J3MgYXJlIGNs
b3NlIGVub3VnaHQgdG8NCj4+IHRoZSBwcmVmaXggdGhhdCB3ZSBjYW4gZ3Vlc3MgZWFzbHkg
ZW5vdWdoLg0KPiANCj4gSSBjYW4gY2hhbmdlIGl0LCBidXQgSSdkIHByZWZlciB0byB1c2Ug
bWFjcm9zIGZvciB0aGF0IHB1cnBvc2UuDQo+IA0KPj4NCj4+PiArDQo+Pj4gK8KgwqDCoCBp
ZiAoc3RybmNtcChuYW1lLCAic29mdC0iLCA1KSkgew0KPj4+ICvCoMKgwqDCoMKgwqDCoCAq
aWR4ID0gUV9JRFhfSEFSRDsNCj4+PiArwqDCoMKgIH0gZWxzZSB7DQo+Pj4gK8KgwqDCoMKg
wqDCoMKgICppZHggPSBRX0lEWF9TT0ZUOw0KPj4+ICvCoMKgwqDCoMKgwqDCoCBuYW1lICs9
IDU7DQo+Pj4gK8KgwqDCoCB9DQo+Pj4gK8KgwqDCoCBmb3IgKHEgPSAwOyBxIDwgQUNDX047
IHErKykgew0KPj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAocXVvdGFfYWRtW3FdLm5hbWUgJiYg
IXN0cmNtcChxdW90YV9hZG1bcV0ubmFtZSwgbmFtZSkpIHsNCj4+PiArwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCAqcWlkeCA9IHE7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0
dXJuIGZhbHNlOw0KPj4+ICvCoMKgwqDCoMKgwqDCoCB9DQo+Pj4gK8KgwqDCoCB9DQo+Pj4g
Kw0KPj4+ICvCoMKgwqAgcmV0dXJuIHRydWU7DQo+Pj4gK30NCj4+PiArDQo+Pj4gwqAgc3Rh
dGljIGludCBjbG9zZV94Z3RfaGFuZGxlKHZvaWQgKl9oYW5kbGUpDQo+Pj4gwqAgew0KPj4+
IMKgwqDCoMKgwqAgeGVuZ250dGFiX2Nsb3NlKCooeGVuZ250dGFiX2hhbmRsZSAqKilfaGFu
ZGxlKTsNCj4+PiBAQCAtMjAwMSw2ICsyMDIyLDYxIEBAIHZvaWQgcmVhZF9zdGF0ZV9jb25u
ZWN0aW9uKGNvbnN0IHZvaWQgKmN0eCwgY29uc3Qgdm9pZCANCj4+PiAqc3RhdGUpDQo+Pj4g
wqDCoMKgwqDCoCB9DQo+Pj4gwqAgfQ0KPj4+ICtzdGF0aWMgdW5zaWduZWQgaW50IGdldF9x
dW90YV9zaXplKHN0cnVjdCBxdW90YSAqcXVvdGEsIHVuc2lnbmVkIGludCAqbGVuKQ0KPj4+
ICt7DQo+Pj4gK8KgwqDCoCB1bnNpZ25lZCBpbnQgcTsNCj4+PiArwqDCoMKgIHVuc2lnbmVk
IGludCBuID0gMDsNCj4+PiArDQo+Pj4gK8KgwqDCoCBmb3IgKHEgPSAwOyBxIDwgQUNDX047
IHErKykgew0KPj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIXF1b3RhX2FkbVtxXS5uYW1lKQ0K
Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnRpbnVlOw0KPj4+ICvCoMKgwqDCoMKg
wqDCoCBpZiAocXVvdGFbcV0udmFsW1FfSURYX0hBUkRdICE9IFFfVkFMX0RJU0FCTEVEKSB7
DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbisrOw0KPj4+ICvCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgICpsZW4gKz0gc3RybGVuKHF1b3RhX2FkbVtxXS5uYW1lKSArIDE7DQo+Pj4g
K8KgwqDCoMKgwqDCoMKgIH0NCj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKHF1b3RhW3FdLnZh
bFtRX0lEWF9TT0ZUXSAhPSBRX1ZBTF9ESVNBQkxFRCkgew0KPj4+ICvCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIG4rKzsNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqbGVuICs9IHN0
cmxlbihxdW90YV9hZG1bcV0ubmFtZSkgKyA1ICsgMTsNCj4+DQo+PiBUaGUgdmFsdWUgNSBo
ZXJlIGlzbid0IGV4cGxhaW5lZC4gQSBjb21tZW50IHdvdWxkIGJlIG5pY2UuDQo+IA0KPiBV
c2luZyB0aGUgbWFjcm8gbWVudGlvbmVkIGFib3ZlIHdpbGwgbWFrZSBpdCBtb3JlIGRlc2Ny
aXB0aXZlLg0KPiANCj4+DQo+Pj4gK8KgwqDCoMKgwqDCoMKgIH0NCj4+PiArwqDCoMKgIH0N
Cj4+PiArDQo+Pj4gK8KgwqDCoCByZXR1cm4gbjsNCj4+PiArfQ0KPj4+ICsNCj4+PiArc3Rh
dGljIHZvaWQgYnVpbGRfcXVvdGFfZGF0YShzdHJ1Y3QgcXVvdGEgKnF1b3RhLCB1aW50MzJf
dCAqdmFsLCBjaGFyICpuYW1lKQ0KPj4NCj4+IEkgZ3Vlc3Mgd2Ugd2lsbCBuZWVkIGEgbGVh
cCBvZiBmYWl0aCB0byB0cnVzdCB0aGF0IGB2YWxgIGlzIGJpZyBlbm91Z2gsDQo+PiBhZnRl
ciBmaW5kaW5nIG91dCB0aGF0IGl0J3MgYWN0dWFsbHkgYW4gb3V0cHV0IG9mIG11bHRpcGxl
IHZhbHVlcywgYW5kDQo+PiBub3QgYW4gaW5wdXQgb2YgYSBzaW5nbGUgdmFsdWUuDQo+IA0K
PiBUaGF0J3Mgd2hhdCBnZXRfcXVvdGFfc2l6ZSgpIGlzIGNhbGN1bGF0aW5nLg0KPiANCj4+
DQo+PiBBbmQgYG5hbWVgIHNlZW1zIHRvIGFsc28gYmUgYW4gb3V0cHV0LCBhbmQgdGhpcyBp
cyBhY3R1YWxseSBpbXBvc3NpYmxlDQo+PiB0byBndWVzcyBmcm9tIHRoZSBwcm90b3R5cGUu
DQo+IA0KPiBUcnVlLiBXaGF0IGFib3V0IG5hbWVzPw0KDQpJIGhhdmUgY2hvc2VuIG5hbWVz
X2J1ZiBpbnN0ZWFkLCBtYWtpbmcgaXQgbW9yZSBjbGVhciB0aGF0IHRoaXMgaXMgYW4NCm91
dHB1dCBwYXJhbWV0ZXIgZm9yIG11bHRpcGxlIG5hbWVzLg0KDQo+IA0KPj4NCj4+PiArew0K
Pj4+ICvCoMKgwqAgdW5zaWduZWQgaW50IHE7DQo+Pj4gK8KgwqDCoCB1bnNpZ25lZCBpbnQg
biA9IDA7DQo+Pj4gKw0KPj4+ICvCoMKgwqAgZm9yIChxID0gMDsgcSA8IEFDQ19OOyBxKysp
IHsNCj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCFxdW90YV9hZG1bcV0ubmFtZSkNCj4+PiAr
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb250aW51ZTsNCj4+PiArwqDCoMKgwqDCoMKgwqAg
aWYgKHF1b3RhW3FdLnZhbFtRX0lEWF9IQVJEXSAhPSBRX1ZBTF9ESVNBQkxFRCkgew0KPj4+
ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZhbFtuKytdID0gcXVvdGFbcV0udmFsW1FfSURY
X0hBUkRdOw0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cmNweShuYW1lLCBxdW90
YV9hZG1bcV0ubmFtZSk7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbmFtZSArPSBz
dHJsZW4obmFtZSkgKyAxOw0KPj4+ICvCoMKgwqDCoMKgwqDCoCB9DQo+Pj4gK8KgwqDCoMKg
wqDCoMKgIGlmIChxdW90YVtxXS52YWxbUV9JRFhfU09GVF0gIT0gUV9WQUxfRElTQUJMRUQp
IHsNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2YWxbbisrXSA9IHF1b3RhW3FdLnZh
bFtRX0lEWF9TT0ZUXTsNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJjcHkobmFt
ZSwgInNvZnQtIik7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RyY3B5KG5hbWUg
KyA1LCBxdW90YV9hZG1bcV0ubmFtZSk7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
bmFtZSArPSBzdHJsZW4obmFtZSkgKyAxOw0KPj4+ICvCoMKgwqDCoMKgwqDCoCB9DQo+Pj4g
K8KgwqDCoCB9DQo+Pj4gK30NCj4+PiArDQo+Pj4gK3N0YXRpYyB2b2lkIHBhcnNlX3F1b3Rh
X2RhdGEoY29uc3QgdWludDMyX3QgKnZhbCwgY29uc3QgY2hhciAqbmFtZSwNCj4+PiArwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgaW50IG4sIHN0cnVjdCBx
dW90YSAqcXVvdGEpDQo+Pj4gK3sNCj4+PiArwqDCoMKgIHVuc2lnbmVkIGludCBpLCBxLCBp
ZHg7DQo+Pj4gKw0KPj4+ICvCoMKgwqAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgew0KPj4+
ICvCoMKgwqDCoMKgwqDCoCBpZiAoIXBhcnNlX3F1b3RhX25hbWUobmFtZSwgJnEsICZpZHgp
KQ0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHF1b3RhW3FdLnZhbFtpZHhdID0gdmFs
W2ldOw0KPj4+ICvCoMKgwqDCoMKgwqDCoCBuYW1lICs9IHN0cmxlbihuYW1lKSArIDE7DQo+
Pg0KPj4gU28gZm9yIGB2YWxgLCB3ZSBoYXZlIGEgc2l6ZS4gQnV0LCB3ZSBkb24ndCBoYXZl
IGEgc2l6ZSBmb3IgYG5hbWVgLCBhcmUNCj4+IHdlIHN1cmUgdGhhdCBpdCdzIHNhZmUgdG8g
a2VlcCByZWFkaW5nIHBhc3QgYE5VTGAgY2hhcmFjdGVycyA/IElzIHRoZQ0KPj4gc2l6ZSBv
ZiBuYW1lIGF2YWlsYWJsZSBzb21ld2hlcmU/DQo+IA0KPiBZZXMuIGdldF9xdW90YV9zaXpl
KCkgY2FsY3VsYXRlZCB0aGF0IGFzIHdlbGwuDQo+IA0KPj4NCj4+PiArwqDCoMKgIH0NCj4+
PiArfQ0KPj4+ICsNCj4+PiDCoCBzdGF0aWMgaW50IGR1bXBfc3RhdGVfZG9tYWluKGNvbnN0
IHZvaWQgKmssIHZvaWQgKnYsIHZvaWQgKmFyZykNCj4+PiDCoCB7DQo+Pj4gwqDCoMKgwqDC
oCBzdHJ1Y3QgZG9tYWluICpkb21haW4gPSB2Ow0KPj4+IEBAIC0yMDQ5LDYgKzIxMjUsNTMg
QEAgdm9pZCByZWFkX3N0YXRlX2RvbWFpbihjb25zdCB2b2lkICpjdHgsIGNvbnN0IHZvaWQg
DQo+Pj4gKnN0YXRlLCB1bnNpZ25lZCBpbnQgdmVyc2lvbikNCj4+PiDCoMKgwqDCoMKgwqDC
oMKgwqAgZG9tYWluLT5mZWF0dXJlcyA9IHNkLT5mZWF0dXJlczsNCj4+PiDCoCB9DQo+Pj4g
K2NvbnN0IGNoYXIgKmR1bXBfc3RhdGVfZ2xiX3F1b3RhKEZJTEUgKmZwKQ0KPj4+ICt7DQo+
Pj4gK8KgwqDCoCBzdHJ1Y3QgeHNfc3RhdGVfcmVjb3JkX2hlYWRlciAqaGVhZDsNCj4+PiAr
wqDCoMKgIHN0cnVjdCB4c19zdGF0ZV9nbGJfcXVvdGEgKmdsYjsNCj4+PiArwqDCoMKgIHZv
aWQgKnJlY29yZDsNCj4+PiArwqDCoMKgIHVuc2lnbmVkIGludCBuX3F1b3RhOw0KPj4+ICvC
oMKgwqAgdW5zaWduZWQgaW50IGxlbiA9IHNpemVvZigqZ2xiKTsNCj4+PiArwqDCoMKgIHNp
emVfdCByZXQ7DQo+Pj4gKw0KPj4+ICvCoMKgwqAgbl9xdW90YSA9IGdldF9xdW90YV9zaXpl
KHF1b3RhcywgJmxlbik7DQo+Pg0KPj4gU28sIGdldF9xdW90YV9zaXplIGlzIGFjdHVhbGx5
IGFuICJhZGQiIHRoZSBzaXplIHRvIHRoaXMgdmFyaWFibGUsIGFuZA0KPj4gbm90ICJzdG9y
ZSIgdGhlIHNpemUgaW4gdGhpcyB2YXJpYWJsZS4gVGhhdCdzIG5vdCBjb25mdXNpbmcgYXQg
YWxsLg0KPiANCj4gV291bGQgaXQgYmUgYmV0dGVyIGlmIGxlbiBpcyByZW5hbWVkIHRvIG5h
bWVzX2xlbiAoYm90aCBoZXJlIGFuZCB0aGUNCj4gcGFyYW1ldGVyIG9mIGdldF9xdW90YV9z
aXplKCkpPw0KDQpJbiB0aGUgZW5kIEkgaGF2ZSBjaG9zZW4gdG8gYWRkIGEgY29tbWVudCBh
Ym92ZSBnZXRfcXVvdGFfc2l6ZSgpIGFuZA0KcmVuYW1lICJsZW4iIHRvICJyZWNfbGVuIiBp
biBkdW1wX3N0YXRlX2dsYl9xdW90YSgpLg0KDQoNCkp1ZXJnZW4NCg==
--------------kG9MgR5866jDepR1rRfwxm5u
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-----

--------------kG9MgR5866jDepR1rRfwxm5u--

--------------XhY50a0RNZgHE0gJpiPK9s3R--

--------------5hoFOdae0TcTYJVx5rAqg2X0
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/Ey8FAmm6l58FAwAAAAAACgkQsN6d1ii/Ey9P
IAf/dPRZXxpxOTJkztugGpENUlqFb7WXrFAD3MlREBdxgvgu9hHjzXJ2okxLaSslBojiBLAM4LVm
41hEb30qvB3ncV/9Qsm1wQh+qmPasMXFd+ahI2c/rfF4mbixr3hZUIMNDnsfFWEnx02CtLjoyfO5
vRuJCN28PYyC+atsuexjHJXRVHsjvGFqg3eS5NtZb2x1oBXRVEf7U0h0yVokMmLYzooDEDt/rp6n
uX7M+bwWeREOZDPMzxXdaKjRkxUfKxGwiffwXQ6OI7d3kiP32J1/OWnG27XMrRnhERx3HhGw/XIE
VPTkcpMPUV/g0Ln/SEnSYS19GgXx5JWi3LPUNlRHAw==
=Stnk
-----END PGP SIGNATURE-----

--------------5hoFOdae0TcTYJVx5rAqg2X0--


From xen-devel-bounces@lists.xenproject.org Wed Mar 18 14:09:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Mar 2026 14:09:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256458.1551082 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2raK-0006q2-B3; Wed, 18 Mar 2026 14:09:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256458.1551082; Wed, 18 Mar 2026 14:09: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 1w2raK-0006pv-8F; Wed, 18 Mar 2026 14:09:20 +0000
Received: by outflank-mailman (input) for mailman id 1256458;
 Wed, 18 Mar 2026 14:09:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hS3n=BS=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1w2raI-0006pp-DU
 for xen-devel@lists.xenproject.org; Wed, 18 Mar 2026 14:09:18 +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 0bdd8969-22d4-11f1-b164-2bf370ae4941;
 Wed, 18 Mar 2026 15:09:16 +0100 (CET)
Received: from BN0PR04CA0145.namprd04.prod.outlook.com (2603:10b6:408:ed::30)
 by SJ5PPF1C7838BF6.namprd12.prod.outlook.com
 (2603:10b6:a0f:fc02::98d) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.6; Wed, 18 Mar
 2026 14:09:07 +0000
Received: from MN1PEPF0000ECD8.namprd02.prod.outlook.com
 (2603:10b6:408:ed:cafe::22) by BN0PR04CA0145.outlook.office365.com
 (2603:10b6:408:ed::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.27 via Frontend Transport; Wed,
 18 Mar 2026 14:08:42 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MN1PEPF0000ECD8.mail.protection.outlook.com (10.167.242.137) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9700.17 via Frontend Transport; Wed, 18 Mar 2026 14:09:06 +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, 18 Mar
 2026 09:09:03 -0500
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via
 Frontend Transport; Wed, 18 Mar 2026 09:09:02 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0bdd8969-22d4-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MrpWwajzbVdYSn6F+40iQzIXWX9tMVtJ3+DXWQwctZyeOpLgVRB7v9sgt41sNoZmYPP1KDgAFtJdp+0dBc1ZzGAKckyt7Hdvh6U2x/nqwcEDp4LEIBKCTcPSW+CYDBWhKmk/wWnNU/A5fcp2ZtSSANhZ8fCqqubVWdBrnBXw9eaY9mn59jdAw3uHc+meK6ckRyXCD0/vw8zDM/curAibcLglYxh94IRWjHlEpmQKOOl/CZyBzodenep/a8cJWB9IsCYeqClrxtEr00W9lhpYkaXMwSo0Q1K7pv5FRsZgaUywiUUDDa5FlueCIhxYhCCAJXIEAIes6vhp8ax11CBrTw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6aYC1HHbr1idJJrMJlTLs3JBJFF5ROIIc3NXYS2c74o=;
 b=pDFYgHfa8QIPVJHzEfYTnPhuZO5o0nHk/cc6ML+XPgahNjzngqcUGmA6nX2HUJf0Uhg69vgTNT93YoEjFbLmcikF32DjJyh0JFK5/OuokA6Zf6FAUa23VjVOM12CQl4w6Si97UKhahflnkQjvNFROyqd3b3aolcdKD8M/cudxs4wgluLOLbFys9Mp7sLh0X/hLRq57Cleihjd/I/c0pZawYYrvBGblBXTBlSfRx2aq2GqcB/mC6YfPqnhpmTcotb6INRjBD9SdCDoyy9HFDzJWK6KwR6L+pTwYNc1kmVbbN6P8PskawxoSs5yUt0AGHZ0pyKcDmuqwfG9ht6leo4jg==
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=6aYC1HHbr1idJJrMJlTLs3JBJFF5ROIIc3NXYS2c74o=;
 b=fzsNo4cIFCIsj8YW2thIcskBsofuk9Ibal+loA9H8Qz1paR+SwlHuhz+a1QRvuf0MOFDpJomQTf7+PxceoS/uuIHMRUqeR8R9khWu03tgdBQjvF5ds8Ub1GI7LykehmHtEu4Es2QtZXSN+f4oJvEIunLhSqLZK504e80kruJqPA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@amd.com>, Stefano Stabellini
	<sstabellini@kernel.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: gic-v3: Introduce CONFIG_GICV3_NR_LRS
Date: Wed, 18 Mar 2026 14:09:00 +0000
Message-ID: <20260318140900.3795710-1-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000ECD8:EE_|SJ5PPF1C7838BF6:EE_
X-MS-Office365-Filtering-Correlation-Id: 3f1e9178-ddb3-420d-4a4c-08de84f7ea98
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|1800799024|82310400026|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	LKBmQNoafsEF0CdL1XtWlrm8Mhv9rZ9WnG54XWZeyKwlJBLXSn0ll6CBw9QQPWwqHbXmfFcKTXKNigl2iKF45NEkXwjCGw6rmy/7yWqFJXD/k6Ztl4PtX6kjxRP+l0TP8BzJCEuqgJHhLOL6ttXQTpwMobgtrJBZPdmy1mgC9LCNRkfx7SJ2hm1GkUdWEJLQH/qDBhuJxACxm01z2mJy66nDeTLgox7qxV5Uh6ft0ZAoOyTkXhbed33P+xO3OeM1z+l47RLv7xz8hOGQrozpWLljXRWwpz4Wf0N6dSTaqY/JQOmc7zGqhdjOyFjbusfrQOLWjwz9rEM78BMqaQsYpYdNBKPtRIKtoK5sj3ucGCNUMIBfONLg9/n097Rs1buDPd8MkU3o8YTcklTGo0RJ1vhSImBviwCzXmXZiSJMe9gul6d7RiqLyyDpNpwMkqlGg73B3KAV23e3sK1iNSBWEHFtAYdBLtPccgiCF2JvKPOUR6Hh/c0AeGbVl6kOLEYreU3HTUnbERKOV1IYikvDAeufwbYvl5bJirXptOvLnFifxnrCyuj6KRRixWctSzpwLOyAozRG16krrqLBoB2lOj2PnvdT8yl8Ba1BkkoFnfrpN+Mc3e3pu9ygO/fdViLv6whUcTzOCtg9VyyrFLTkOqTpJSQSE8GyEp0rysFnFbcmiYf0CR1b7tNd7nLJlOdwWxO7jyhhvbDPZ2uwCjC0nnGIKfSavqs0/EOQbwegwzcOkJn1gwPLxdD/WT2eAxtnzaaXRALkD/W6PHNRuTitQw==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(1800799024)(82310400026)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	/HfMqN3UQ17edVRVeQEjm2L5ulT+sb/n35lNikbTFF7qGJmB75Hl8mIaTPE5IwrZfX6O7H+QBiyQErUy7LdXCPSYcEzgtz7QJLGnC+i87QDksOw8lZ3RfJ6aNkSh5iE3er2Cr1R6pHgIWxJlBPyO+kJ7yba/BzDA02HN7ABAPQPCL8l45UxsGsE4Zz7/By1Rs5rF6JL43LjLnUra/r37UAIs0KHKIg7f+ubNKw43Qyihd+wdAxt33YN0hhE5M0UxjaaGb3VKczxwdFgdsnpYJwP+9BrreAtoWz6QXGuuWt78E/iPtawC7UxxBS1q1Uq+EBnwOld67C4TRfi1LjBBslYVUVhYGkUvJxM2WSz/z9R6Zn/WSd3UHXM33LAuLuhnHOAa0m7lw8AVRi07HI8CRSyKNgq12zWp1UsKqs/jQGXgKt7a8SzLhlluuK0OQXOr
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Mar 2026 14:09:06.0380
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3f1e9178-ddb3-420d-4a4c-08de84f7ea98
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000ECD8.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF1C7838BF6

One key requirement of Xen functional safety is to reduce the number
of lines of code to be safety certified. Besides, a safety certified
Xen requires a static hardware configuration to be defined. This static
hardware configuration is described as per the test hardware/emulator
hardware configuration against which Xen is verified.

Introduce GICV3_NR_LRS with the two aims in mind:
1. User should set the number of GICV3 list registers as per the test
hardware so that the unwanted code can be removed using GCC's dead
code elimination or preprocessor's config.
2. By doing #1, one can ensure that there is no untested code due to
unsupported hardware platform and thus there is no safety impact due
to untested code.

However if the user does not set GICV3_NR_LRS, then it is set to 0.
Thus Xen will fallback to the default scenario (i.e. read the hardware
register to determine the number of LRS).

1. In gicv3_save_lrs()/gicv3_restore_lrs(), use the number of list
registers from GICV3_NR_LRS (if defined) instead of gicv3_info.nr_lrs.
This ensures that if the hardware does not support more than 4 LRs
(for example), the code accessing LR 4-15 is never reached. The
compiler can eliminate the unsupported cases as the switch case uses a
constant conditional.

2. RAZ/WI for the unsupported LRs.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
Changelog:

v1 - 1. s/lrs/LRS
2. Implement RAZ/WI instead of panic

Few comments which were not addressed
1. Do "gicv3_info.nr_lrs to LRS" in gicv3_hyp_init() and keep the code
unchanged in gicv3_save_lrs()/gicv3_restore_lrs() -- This prevents the
compiler from doing dead code elimination as the switch condition cannot
be evaluated at compile time.
I am not sure how to get around this issue.

 xen/arch/arm/Kconfig  |  9 +++++++++
 xen/arch/arm/gic-v3.c | 14 ++++++++++++--
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 2f2b501fda..6540013f97 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -276,6 +276,15 @@ config PCI_PASSTHROUGH
 
 endmenu
 
+config GICV3_NR_LRS
+	int "Number of GICv3 Link Registers supported" if EXPERT
+	depends on GICV3
+	range 0 16
+	default 0
+	help
+	  Controls the number of Link registers to be accessed.
+	  Keep it set to 0 to use a value obtained from a hardware register.
+
 menu "ARM errata workaround via the alternative framework"
 	depends on HAS_ALTERNATIVE
 
diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index bc07f97c16..eaae95eb4d 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -51,6 +51,8 @@ static DEFINE_PER_CPU(void __iomem*, rbase);
 #define GICD                   (gicv3.map_dbase)
 #define GICD_RDIST_BASE        (this_cpu(rbase))
 #define GICD_RDIST_SGI_BASE    (GICD_RDIST_BASE + SZ_64K)
+#define LRS                    (CONFIG_GICV3_NR_LRS ?: \
+                                gicv3_info.nr_lrs)
 
 /*
  * Saves all 16(Max) LR registers. Though number of LRs implemented
@@ -59,7 +61,7 @@ static DEFINE_PER_CPU(void __iomem*, rbase);
 static inline void gicv3_save_lrs(struct vcpu *v)
 {
     /* Fall through for all the cases */
-    switch ( gicv3_info.nr_lrs )
+    switch ( LRS )
     {
     case 16:
         v->arch.gic.v3.lr[15] = READ_SYSREG_LR(15);
@@ -121,7 +123,7 @@ static inline void gicv3_save_lrs(struct vcpu *v)
 static inline void gicv3_restore_lrs(const struct vcpu *v)
 {
     /* Fall through for all the cases */
-    switch ( gicv3_info.nr_lrs )
+    switch ( LRS )
     {
     case 16:
         WRITE_SYSREG_LR(v->arch.gic.v3.lr[15], 15);
@@ -178,6 +180,10 @@ static inline void gicv3_restore_lrs(const struct vcpu *v)
 
 static uint64_t gicv3_ich_read_lr(int lr)
 {
+    /* RAZ for unsupported LR */
+    if ( lr >= LRS )
+        return 0;
+
     switch ( lr )
     {
     case 0: return READ_SYSREG_LR(0);
@@ -203,6 +209,10 @@ static uint64_t gicv3_ich_read_lr(int lr)
 
 static void gicv3_ich_write_lr(int lr, uint64_t val)
 {
+    /* WI for unsupported LR */
+    if ( lr >= LRS )
+        return;
+
     switch ( lr )
     {
     case 0:
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Mar 18 17:14:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Mar 2026 17:14:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256497.1551091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2uSp-0004MH-OZ; Wed, 18 Mar 2026 17:13:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256497.1551091; Wed, 18 Mar 2026 17: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 1w2uSp-0004MA-LK; Wed, 18 Mar 2026 17:13:47 +0000
Received: by outflank-mailman (input) for mailman id 1256497;
 Wed, 18 Mar 2026 17:13:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EGn0=BS=citrix.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1w2uSo-0004M4-4h
 for xen-devel@lists.xenproject.org; Wed, 18 Mar 2026 17:13: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 d1bc3c5a-22ed-11f1-b164-2bf370ae4941;
 Wed, 18 Mar 2026 18:13:44 +0100 (CET)
Received: from LV4PR03MB8282.namprd03.prod.outlook.com (2603:10b6:408:2d8::11)
 by SJ2PR03MB7355.namprd03.prod.outlook.com (2603:10b6:a03:557::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Wed, 18 Mar
 2026 17:13:31 +0000
Received: from LV4PR03MB8282.namprd03.prod.outlook.com
 ([fe80::19b5:9cc6:3b73:3489]) by LV4PR03MB8282.namprd03.prod.outlook.com
 ([fe80::19b5:9cc6:3b73:3489%4]) with mapi id 15.20.9723.018; Wed, 18 Mar 2026
 17:13: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: d1bc3c5a-22ed-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Xt3ew7OZnw7ZkJvIgqyqd9Fo8cf0/2pWgWzSNkvS71Gue3tmO+AxAT3yehqZM4IgfVIaJ5ExvlZ7ZHBqEyzGOU8RVBiE4sdDo33xqrQXtQyJx96pfRrqrIb2wv3yN59rfGczsplrd6LDhPzf6HKuQowJS1gESEPjcqBNo+owzbRs+yheLrmMHOxV9oPZdMirPoXFHTZrWVpugnenMnaqULrXLSV1BexFP36KWX3Vj0cc8qwZ3UgNuZ7imOjZ3gt4c4EJEWQKjHYjTlsjKn4b2yKJxWlIfrkecIXwtATG+bD03x1hlTEOqspGidSaWM2lehcl2qGVMaVUDhlNYCXGiw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xOSY9UtMZS1bFLCO9xPmBX9fiyIoFhDZrdg9EpZdgfU=;
 b=fkE9Y97BjQI7DOqPkqp6YQN6G0cNBTH3D9HDzAcnZV1NMz7pHlhZDMar1rxQA7oW/3hXjfUSY07qUy0oma6TE9O7lPKZW2IOsrkUkm7VPIMXzA3qUCpKW+ew89MoyDZxLt+SlOK2yDj8zN9vNn60rXO+VEKgnS1SV93hhuoVqrRwhWcqbsQUHYFKqvMynp66OvKlY577rKgAXsone2bIVKFvmfYCvXIQQRmAR754uCUXlHAuVotWQ6+IRdd9HS+Cv2qSlhZ5TctUBXHVf1uZbh+43EtF+sE66GxMS2GqnxAY1Rbrzv7rEycYVju/3YJwjH4fyRcWG1zHKXhBZ/pyUw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xOSY9UtMZS1bFLCO9xPmBX9fiyIoFhDZrdg9EpZdgfU=;
 b=TFooy/DP8VLgONQ166+szextElhQgONrm7/uHNIF8y1lI09WjbAaDiwIQ6DqmFV0AWs86sUDvdZvm8k2nihY9fQqYOmyI6UqrWe2J0hgCDqVMuY71jdneSWk3uryIBTb7TbTg3hqYj/agS9wKsjypa1mFiUbj03JD0CObr1fu48=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] x86/hap: Defer P2M TLB flushes
Date: Wed, 18 Mar 2026 17:13:24 +0000
Message-ID: <20260318171324.1362219-1-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0611.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:314::10) To LV4PR03MB8282.namprd03.prod.outlook.com
 (2603:10b6:408:2d8::11)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: LV4PR03MB8282:EE_|SJ2PR03MB7355:EE_
X-MS-Office365-Filtering-Correlation-Id: dcbba424-1c62-4157-0929-08de8511aee4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	vdSWkOD2CoLKQu1XWyhOaXm6GL9FvnBI3EWw6Psu5pKWMaupHMUG9dS6puhPxmAU1DD7xwd2pJ0C/k/RSu4aDXpOXmuwmnBAs6PSbQRdihR/HESffFm5//lWcCQRCpHAfHDcNp8HnFSc54Ks8O/CGRK64o/gQQ8Hl1F73SDgVPTUe9sRnpWntKRatA3a7T1Y0IkFzenoBqJDh+9NUs7DfVIKnTmEXCSmMQmiygz376Fslsf+8TDj2vza41fDrup2tDae/0iOm9wUD02TSD86gKUecsKhzcTeR9kMVMV/ww/r2dgIDkV92YwtFcokNBmymzMKFnNIaMm/ADyQ/WAp+wONPBQckcA3lBMeEDQdmdgaZD16/TeclCmwcE+wOZ7PrKV7U53TPXWsktUsPX/m/wzYzuBaJEJzhsXAsSZB95UCyKZYdm+1sy3pfMY4A3YHJ2mLmZIfYsz9osz7a4aTtHi4hx+0CqsZgoa07BotJxtcpCyAw2zwFyqoyKaCK7mZ0mGnbBLKZRjF0xWWsW4MDcZz3HbcVXFMrhi5WE5tbIsttUYiB/yWy/Od2iSEmIyrsdY/vkVaSax95ciqA+ZpHFdXl+P4Rhi7sGeJwuPIIAAUFhWLf75jiEbsYJAwhTayMLG3GT9lgmDT4Hk7m06Y2PZDn/28dzIwhXd/YDo33ENC9b6x3ZEwl7pYRtWHjwFDgCjNdMTjm78DKhzMdeudp3l016iXo5pS9yZJgoBypXE=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV4PR03MB8282.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?uX7p8kDbT+wCy9gzya3wtl38Ey6KFCjV7jZ1u22zWKTwg4DbsmR92p3dzd/z?=
 =?us-ascii?Q?uwA8BLRt1CqJkfHqUsXFGB6QfZXfUkVawy/6JrMMwDojSSSuyRyWkilps4t7?=
 =?us-ascii?Q?Cmk4lZRclbuiliG5MCeaxmc5Hd6BVF66pQUNazHH88F8LVMs4RtjGnHuyet6?=
 =?us-ascii?Q?lBn9+G1Yw9i3Yzwen/jtzOJWEJsn1hHgiYZf4r5o0TNZn5wteGlQw4QJ5vaj?=
 =?us-ascii?Q?QPj6Xxyh/FITvP1MYWaet80MVYfpLOuz6jTv6jhCvUq57EijYAZWmKlOmus1?=
 =?us-ascii?Q?N5vQpA83r3wqBBpTf6J8BuUUWPDHJ22BQH3UGsCLM+mYz5RSz0G0YDFjIv5F?=
 =?us-ascii?Q?73BHirKLJ3EbpDCo+vyDgQXC5YlHNcGERe2aKg4/OnwXKCNeu9p7w5BmJOp3?=
 =?us-ascii?Q?YX4Er49poS1dCTkuMxrnEkp0pX7k666ojPjy24/Gk5SfVtx5srXcLsl5+zlb?=
 =?us-ascii?Q?73m+8BQc3Ar8uc2sDi4oI69jD997Tgcu+Usue0IRQxMxArTUXsENmTKtbUTR?=
 =?us-ascii?Q?s0h1XQLQayEnaXHNuqF9kUXBG2m3v9M1I8gL9Fv7vnukmpqO1MvnKLi9ArO2?=
 =?us-ascii?Q?OIfcdCBr3d3k6P5YU1jHdDtd1JZ3sQCGLZu6uMcFCjGCIApzhLLUmwXLfr1h?=
 =?us-ascii?Q?2/C0TJtte6A3ojfP3fSz+aJ4y76SdwJtdiOgNgjfAbz7dKPFT1T0VrIprp+Q?=
 =?us-ascii?Q?Mp1Ia9IddOv+ycQssMFrk6y4Csduz7hwSId20ngzGxGvna6V2ma6FfDvUslU?=
 =?us-ascii?Q?7jPUuAsJTUXVnxxx7b2ObZsdIrKYXqkBb2rgTD/PCcjNsU3V/cJ9UDZHpvoY?=
 =?us-ascii?Q?Ows5mTBge3DQA75m6499OnTHuUUyZjHemr48pY2VMBP5GlXoLhrRrbx5bj48?=
 =?us-ascii?Q?aOMFCQvuVX7Man7CXI2fXcS5CjfsZbwTvdW1f3hzbDbS8W0Gr4s/7r6C+6TC?=
 =?us-ascii?Q?nwOX7lY40X4zmvlMTvSlccDD7j5qj05RN3/E09+cveEg8I7b0bbePiPCYFBR?=
 =?us-ascii?Q?mwOp+th+UPwhqo5flL0X09iQ9/1JHsUnBK0veNohEC203++BaBTrx6/8gN2+?=
 =?us-ascii?Q?S7jmGu6PQNvWrZ5EGlYFZGZ7/OcMnj0KagwYoVfg7nylyUAxCMbP3p+/p/0A?=
 =?us-ascii?Q?y/QtZLzTtFA63MzYK6kxzPehBetnLy8xm7lvzHrU8hlJ5/SwU7YLPWylRRHB?=
 =?us-ascii?Q?4raFbYfEKEzEAVj7WvH2bSPZNFBM2gnfI4UmycZ/+ui4TZElfWnLWATeiWFn?=
 =?us-ascii?Q?M7Xq0rAWtFo5y/LRCUbv+Q0GBPK6GwBwBRUj+ybliwx+86dYK+g+ZtlO8bqE?=
 =?us-ascii?Q?Yf4qpMWc1KkZAIfSC1mOAE0es3/WQhMhew9dZFXPhTugu85oWwIbfaYFCDKn?=
 =?us-ascii?Q?4mamacqvxJeElnJYDw4+FGGX5N+nU9tzL1c8R2hnopDQcos+eXxAomA+epY6?=
 =?us-ascii?Q?IDtDzCFP9/qrI1slnrf++Ca7ECQvZc+ww0+aEG7mcSyCITdCXmAQ65PtsZSs?=
 =?us-ascii?Q?F05NajwN9cY5IbYdntIDoSC0BW1CRPA/BrSv4PriSKSfOtNYzxyYDf0Eqh5Y?=
 =?us-ascii?Q?+SQsxcOekY99iEGsImoaUwDo2Ldiydgit8eNrd6fmKaBMozkx96tvp5aJkwb?=
 =?us-ascii?Q?/by7mBPyDRwXBgcRq7oriwWUB3D1VMsRO3k6O4H/+Otca2PXisMro0O5lR72?=
 =?us-ascii?Q?MgbjGPPH+T8P7zU40I/hh0qyfghdCXp+7ypG6Vy8neTpmQtDDAA9NMtBGNSd?=
 =?us-ascii?Q?OvRGjlPe3Yg0RNM+0yd/L4kXeyTG15c=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dcbba424-1c62-4157-0929-08de8511aee4
X-MS-Exchange-CrossTenant-AuthSource: LV4PR03MB8282.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Mar 2026 17:13:32.9541
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: HunjT+JC1/zw0rWIJzyDImwSQSVmuP9qD3qY/IFYwU10KiuPxuRc/RfDGXbQX7bFBooXiLDtdDukrNIDrBWFqvHS9WZf9Z+ZU7MwfMHqzkg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR03MB7355

Like the EPT code, defer TLB flushes to reduce the number of flushes and
avoid holding the P2M lock while flushing. This can substantially
improve performance in some scenarios.

The cases where the TLB needs to be flushed without deferring are
already handled by the call to p2m_tlb_flush_sync() in p2m_free_ptp().

Suggested-by: Roger Pau Monne <roger.pau@citrix.com>
Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/arch/x86/mm/hap/hap.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
index a337752bf488..1eba995c7b39 100644
--- a/xen/arch/x86/mm/hap/hap.c
+++ b/xen/arch/x86/mm/hap/hap.c
@@ -813,16 +813,26 @@ static void cf_check hap_update_paging_modes(struct vcpu *v)
 
 static void cf_check
 hap_write_p2m_entry_post(struct p2m_domain *p2m, unsigned int oflags)
+{
+    if ( oflags & _PAGE_PRESENT )
+    {
+        ASSERT(p2m->defer_flush);
+        p2m->need_flush = true;
+    }
+}
+
+static void cf_check
+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);
+    guest_flush_tlb_mask(d, d->dirty_cpumask);
 }
 
 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(
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 18 18:59:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Mar 2026 18:59:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256523.1551100 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2w7B-0000CU-K4; Wed, 18 Mar 2026 18:59:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256523.1551100; Wed, 18 Mar 2026 18: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 1w2w7B-0000CN-G0; Wed, 18 Mar 2026 18:59:33 +0000
Received: by outflank-mailman (input) for mailman id 1256523;
 Wed, 18 Mar 2026 18:59: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=SizD=BS=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1w2w79-0000CH-Ov
 for xen-devel@lists.xenproject.org; Wed, 18 Mar 2026 18:59:31 +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 97f884a0-22fc-11f1-b164-2bf370ae4941;
 Wed, 18 Mar 2026 19:59:30 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-b97e5956208so13057666b.2
 for <xen-devel@lists.xenproject.org>; Wed, 18 Mar 2026 11:59:30 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.197])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-667b12ade0dsm2392839a12.30.2026.03.18.11.59.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 18 Mar 2026 11:59:28 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 97f884a0-22fc-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773860369; x=1774465169; 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=m9vYhoGM8dW0LVBBOLhz8aVHBpT/7+h1R1jT8z35yWA=;
        b=BJYN68P/pN0SWXWDtztB64RGftbv7FXIJFuKuyuqwZr9VWIi0GqvL7QEtMxV+G7BUI
         XtQ8y4jIVisNVqUTbXrKEeMzPzUFyryHjE+yQZd7JfCbumYSowu0O0Io9awbjuteKz+u
         a2KSZeEvOnjTTaRK/5d+HOufJSnT1ft6V23EPQg6HmftkXDIZuJoYbGBSB7zywVqyWdZ
         CI3Qz1Yml7gc/7Bn+bc/6fXgmA4CzQu71OIL4eEV4VLgRlT5FOBjGs6ZZHTdBxhYYx92
         wKL/6RWMMfi21ZAUjEROoihMLjW8tRzyowt5GGRueiyHB44BMeHQPJ88LccV+mA2A+Ux
         ESYA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773860369; x=1774465169;
        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=m9vYhoGM8dW0LVBBOLhz8aVHBpT/7+h1R1jT8z35yWA=;
        b=C9zTeRWXvcjrhigXVQc2W4rrL8ijEx6tJxdYJQfdoRGwe9egjJcURjP2nPGZc46zWS
         h3WCggf06incICAj5hB9oYFXwuN2vOVvWhDREQ+pjVlqG4GaTSEhqmy93mV/FAwchuxw
         jlvDOrBmXh3CfovlvZ+mDhNVbS1MUI/W5J7tzzPmrb+B82qRtFihvC3fMYmQxXQBgT2D
         PJxqn7nLvSjAnH0XFzIxIZ6bADttXKpNJ1coMjEFYldpPzH78E+c7I3JbJL5odwlVfjp
         Hg/NNcWZO/q6lCC1rnroagy/WtCTdfPcoEZ/54tL6YKXd6PO6gBaV5eelJMdG97Xhvu4
         2oFQ==
X-Gm-Message-State: AOJu0YyfS5z3IdSDnQgquYSvzQjh2R3fMkk6J2f6Ik99gbNI6MFeL2XG
	k3l91sWF/CwPxDykqIxewu2cw+VSnVx+Bb+eMCCAlrtYHOMnhGYWsF6h3LpP/w==
X-Gm-Gg: ATEYQzxOqTi3nHqtf5dSYoDFUmsp4qiPlLEr5GQCtD3yXL3s5EtyIJ6NLdhlif9D/u0
	8V8pgNmrekF5U05e+SnZz+gAnB7wAgUtIEIkkvNZZogGKyffrS1XvzQsMbyi56glsue23sjkL73
	ldGhLdRXB+bnJUnnTaz77DZ8JP3JDuz25rkGmImSXBCnnK/5mypDQTOJguFA6rZxBqG3r3HpZDC
	mxWf2WvjYkV2JCydprPg7hr9yzUH+/pF+fkMNRSwdD8l3Jp7aK1/BVNtt8rSp5UdSnvg75pjliQ
	XHttrxHKTJSSULhh91AnWep5t/OjfP20qlhNTkOJzRfGzk+9ZAIuRSB07DfMje64XzsGBOg+WS9
	PGZBd8XMNQxrAOFUSsY+gNjSFhKsA8/SSCzmQOWYo0Kwsbd23frDjrgsNojr7kEhoFrKtc0v1tI
	GfVCbB8xrxtMQW7BeV3igizk24Naw=
X-Received: by 2002:a17:907:8e96:b0:b97:acca:fcf4 with SMTP id a640c23a62f3a-b97f4796681mr259901566b.11.1773860369067;
        Wed, 18 Mar 2026 11:59:29 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH] xen/arm: vpsci: ignore upper 32 bits for SMC32 PSCI arguments
Date: Wed, 18 Mar 2026 20:56:11 +0200
Message-ID: <3a3180b0f77d815e92c0c232a8f854d34ab7c2ea.1773860069.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

SMCCC DEN0028G, section 3.1, states that for AArch64 SMC/HVC calls
using Wn, only the least significant 32 bits are significant and the
upper 32 bits must be ignored by the implementation.

So for SMC32 PSCI calls, Xen must not treat non-zero upper bits in the
argument registers as an error. Instead, they should be discarded when
decoding the arguments.

Arm ARM DDI 0487J.a (D1-5406) also notes that the upper 32 bits may be
implementation defined when entering from AArch32. Xen zeros them on
entry, but that guarantee is only relevant for 32-bit domains.

Update PSCI v0.2+ CPU_ON, CPU_SUSPEND and AFFINITY_INFO to read SMC32
arguments via PSCI_ARG32(), while keeping the SMC64 handling unchanged.

Suggested-by: Julien Grall <julien@xen.org>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Link to discussion: https://patchew.org/Xen/cover.1751020456.git.mykola._5Fkvach@epam.com/072270e0940b6bcc2743d56a336363f4719ba60a.1751020456.git.mykola._5Fkvach@epam.com/#7070f416-119c-49f8-acd0-82c6e31f0fc6@xen.org
---
 xen/arch/arm/vpsci.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
index 7ba9ccd94b..1e844ed571 100644
--- a/xen/arch/arm/vpsci.c
+++ b/xen/arch/arm/vpsci.c
@@ -303,9 +303,10 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
     case PSCI_0_2_FN32_CPU_ON:
     case PSCI_0_2_FN64_CPU_ON:
     {
-        register_t vcpuid = PSCI_ARG(regs, 1);
-        register_t epoint = PSCI_ARG(regs, 2);
-        register_t cid = PSCI_ARG(regs, 3);
+        bool smc32 = (fid == PSCI_0_2_FN32_CPU_ON);
+        register_t vcpuid = smc32 ? PSCI_ARG32(regs, 1) : PSCI_ARG(regs, 1);
+        register_t epoint = smc32 ? PSCI_ARG32(regs, 2) : PSCI_ARG(regs, 2);
+        register_t cid = smc32 ? PSCI_ARG32(regs, 3) : PSCI_ARG(regs, 3);
 
         perfc_incr(vpsci_cpu_on);
         PSCI_SET_RESULT(regs, do_psci_0_2_cpu_on(vcpuid, epoint, cid));
@@ -315,9 +316,10 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
     case PSCI_0_2_FN32_CPU_SUSPEND:
     case PSCI_0_2_FN64_CPU_SUSPEND:
     {
+        bool smc32 = (fid == PSCI_0_2_FN32_CPU_SUSPEND);
         uint32_t pstate = PSCI_ARG32(regs, 1);
-        register_t epoint = PSCI_ARG(regs, 2);
-        register_t cid = PSCI_ARG(regs, 3);
+        register_t epoint = smc32 ? PSCI_ARG32(regs, 2) : PSCI_ARG(regs, 2);
+        register_t cid = smc32 ? PSCI_ARG32(regs, 3) : PSCI_ARG(regs, 3);
 
         perfc_incr(vpsci_cpu_suspend);
         PSCI_SET_RESULT(regs, do_psci_0_2_cpu_suspend(pstate, epoint, cid));
@@ -327,7 +329,8 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
     case PSCI_0_2_FN32_AFFINITY_INFO:
     case PSCI_0_2_FN64_AFFINITY_INFO:
     {
-        register_t taff = PSCI_ARG(regs, 1);
+        bool smc32 = (fid == PSCI_0_2_FN32_AFFINITY_INFO);
+        register_t taff = smc32 ? PSCI_ARG32(regs, 1) : PSCI_ARG(regs, 1);
         uint32_t laff = PSCI_ARG32(regs, 2);
 
         perfc_incr(vpsci_cpu_affinity_info);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 18 21:35:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Mar 2026 21:35:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256550.1551109 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2yXo-00029Q-U2; Wed, 18 Mar 2026 21:35:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256550.1551109; Wed, 18 Mar 2026 21:35:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w2yXo-00029J-Pn; Wed, 18 Mar 2026 21:35:12 +0000
Received: by outflank-mailman (input) for mailman id 1256550;
 Wed, 18 Mar 2026 21:35:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0BOk=BS=kernel.org=helgaas@srs-se1.protection.inumbo.net>)
 id 1w2yXn-00029D-C9
 for xen-devel@lists.xenproject.org; Wed, 18 Mar 2026 21:35:11 +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 517af195-2312-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Mar 2026 22:35:05 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 98F88444AA;
 Wed, 18 Mar 2026 21:34:59 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 426C5C19421;
 Wed, 18 Mar 2026 21:34: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: 517af195-2312-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1773869699;
	bh=Z0sKaJzTVL625RHeAqUXkWbk+PwyTXe6rgvq5zdqspk=;
	h=Date:From:To:Cc:Subject:In-Reply-To:From;
	b=enhKUZI1jj3ieMY8eJQdZfts0UzqIVpSvb7BNpwyEo6cCVUZVq3lzrQXsNun9R5Xp
	 zd1CJufEu7ggTl02IPQL02vxNO8ijzyn4l07satVwgFMF1cs1W5f73zso2t4w92x37
	 nW9Kzojr52ITf2ngCjyoU4hz3kfWo+O19Dc0ZQK0o8gIVL13XBhMcjbxkgr0GHNqIu
	 hEJuTBn5+/ESMFoAFZ6lP1pdiNYZWtgiw9hZDF+BjOitYdv5OaH9l66Jisr4d8N69E
	 931It9dGXXcbbh64ru+9TYZtZ9D7WNdsZ1R2sNYyXF+JT++5BxxX6xv1zaHGAsLqPN
	 Qgvd979U3ojbw==
Date: Wed, 18 Mar 2026 16:34:58 -0500
From: Bjorn Helgaas <helgaas@kernel.org>
To: Chengwen Feng <fengchengwen@huawei.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Jonathan Corbet <corbet@lwn.net>, Ingo Molnar <mingo@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Len Brown <lenb@kernel.org>, Sunil V L <sunilvl@ventanamicro.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Jonathan Cameron <jonathan.cameron@huawei.com>,
	Kees Cook <kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>,
	Sean Christopherson <seanjc@google.com>,
	Kai Huang <kai.huang@intel.com>,
	Tom Lendacky <thomas.lendacky@amd.com>,
	Thomas Huth <thuth@redhat.com>,
	Thorsten Blum <thorsten.blum@linux.dev>,
	Kevin Loughlin <kevinloughlin@google.com>,
	Zheyun Shen <szy0127@sjtu.edu.cn>,
	Peter Zijlstra <peterz@infradead.org>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>,
	Xin Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>,
	Sohil Mehta <sohil.mehta@intel.com>,
	Ilkka Koskinen <ilkka@os.amperecomputing.com>,
	Robin Murphy <robin.murphy@arm.com>,
	James Clark <james.clark@linaro.org>,
	Besar Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>,
	Wei Huang <wei.huang2@amd.com>,
	Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>,
	punit.agrawal@oss.qualcomm.com, guohanjun@huawei.com,
	suzuki.poulose@arm.com, ryan.roberts@arm.com,
	chenl311@chinatelecom.cn, masahiroy@kernel.org,
	wangyuquan1236@phytium.com.cn, anshuman.khandual@arm.com,
	heinrich.schuchardt@canonical.com, Eric.VanTassell@amd.com,
	wangzhou1@hisilicon.com, wanghuiqiang@huawei.com,
	liuyonglong@huawei.com, linux-pci@vger.kernel.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev,
	linux-riscv@lists.infradead.org, xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org, linux-perf-users@vger.kernel.org,
	stable@vger.kernel.org
Subject: Re: [PATCH v8 1/3] ACPI: Refactor get_acpi_id_for_cpu() to
 acpi_get_cpu_uid() on non-x86
Message-ID: <20260318213458.GA474040@bhelgaas>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260318060151.29438-2-fengchengwen@huawei.com>

On Wed, Mar 18, 2026 at 02:01:49PM +0800, Chengwen Feng wrote:
> Unify CPU ACPI ID retrieval interface across architectures by
> refactoring get_acpi_id_for_cpu() to acpi_get_cpu_uid() on
> arm64/riscv/loongarch:
> - Add input parameter validation
> - Adjust interface to int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
>   (old: u32 get_acpi_id_for_cpu(unsigned int cpu), no input check)
> 
> This refactoring (not a pure rename) enhances interface robustness while
> preparing for consistent ACPI Processor UID retrieval across all
> ACPI-enabled platforms. Valid inputs retain original behavior.
> 
> Note: Move the ARM64-specific get_cpu_for_acpi_id() implementation to
>       arch/arm64/kernel/acpi.c to fix compilation errors from circular
>       header dependencies introduced by the rename.
> 
> Cc: stable@vger.kernel.org
> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
> Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
> ---
>  arch/arm64/include/asm/acpi.h      | 16 +---------
>  arch/arm64/kernel/acpi.c           | 30 ++++++++++++++++++
>  arch/loongarch/include/asm/acpi.h  |  5 ---
>  arch/loongarch/kernel/acpi.c       |  9 ++++++
>  arch/riscv/include/asm/acpi.h      |  4 ---
>  arch/riscv/kernel/acpi.c           | 16 ++++++++++
>  arch/riscv/kernel/acpi_numa.c      |  9 ++++--
>  drivers/acpi/pptt.c                | 50 ++++++++++++++++++++++--------
>  drivers/acpi/riscv/rhct.c          |  7 ++++-
>  drivers/perf/arm_cspmu/arm_cspmu.c |  6 ++--
>  include/linux/acpi.h               | 13 ++++++++
>  11 files changed, 122 insertions(+), 43 deletions(-)

There's a lot going on in this single patch, which makes it hard to
review.  I think this might make more sense as several patches:

  - arm64: declare acpi_get_cpu_uid() in arch/arm64/include, implement
    it, and use in drivers/perf/arm_cspmu/arm_cspmu.c

  - loongarch: declare acpi_get_cpu_uid() in arch/loongarch/include
    and implement

  - riscv: declare acpi_get_cpu_uid() in arch/riscv/include, implement
    it, and use in rhct.c, riscv/kernel/acpi_numa.c

  - x86: declare acpi_get_cpu_uid() in arch/x86/include, implement it,
    and use in xen

  - declare acpi_get_cpu_uid() in include/linux/acpi.h, remove
    declarations from arm64, loongarch, riscv, x86

  - convert acpi/pptt.c to use acpi_get_cpu_uid(), remove unused
    get_acpi_id_for_cpu() from arm64, loongarch, riscv

  - use acpi_get_cpu_uid() in tph.c

Doc nit below.

> diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
> index c07a58b96329..106a08556cbf 100644
> --- a/arch/arm64/include/asm/acpi.h
> +++ b/arch/arm64/include/asm/acpi.h
> @@ -114,22 +114,8 @@ static inline bool acpi_has_cpu_in_madt(void)
>  }
>  
>  struct acpi_madt_generic_interrupt *acpi_cpu_get_madt_gicc(int cpu);
> -static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
> -{
> -	return	acpi_cpu_get_madt_gicc(cpu)->uid;
> -}
> -
> -static inline int get_cpu_for_acpi_id(u32 uid)
> -{
> -	int cpu;
> -
> -	for (cpu = 0; cpu < nr_cpu_ids; cpu++)
> -		if (acpi_cpu_get_madt_gicc(cpu) &&
> -		    uid == get_acpi_id_for_cpu(cpu))
> -			return cpu;
>  
> -	return -EINVAL;
> -}
> +int get_cpu_for_acpi_id(u32 uid);
>  
>  static inline void arch_fix_phys_package_id(int num, u32 slot) { }
>  void __init acpi_init_cpus(void);
> diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
> index af90128cfed5..24b9d934be54 100644
> --- a/arch/arm64/kernel/acpi.c
> +++ b/arch/arm64/kernel/acpi.c
> @@ -458,3 +458,33 @@ int acpi_unmap_cpu(int cpu)
>  }
>  EXPORT_SYMBOL(acpi_unmap_cpu);
>  #endif /* CONFIG_ACPI_HOTPLUG_CPU */
> +
> +int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
> +{
> +	struct acpi_madt_generic_interrupt *gicc;
> +
> +	if (cpu >= nr_cpu_ids)
> +		return -EINVAL;
> +
> +	gicc = acpi_cpu_get_madt_gicc(cpu);
> +	if (!gicc)
> +		return -ENODEV;
> +
> +	*uid = gicc->uid;
> +	return 0;
> +}
> +EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
> +
> +int get_cpu_for_acpi_id(u32 uid)
> +{
> +	u32 cpu_uid;
> +	int ret;
> +
> +	for (int cpu = 0; cpu < nr_cpu_ids; cpu++) {
> +		ret = acpi_get_cpu_uid(cpu, &cpu_uid);
> +		if (ret == 0 && uid == cpu_uid)
> +			return cpu;
> +	}
> +
> +	return -EINVAL;
> +}
> diff --git a/arch/loongarch/include/asm/acpi.h b/arch/loongarch/include/asm/acpi.h
> index 7376840fa9f7..eda9d4d0a493 100644
> --- a/arch/loongarch/include/asm/acpi.h
> +++ b/arch/loongarch/include/asm/acpi.h
> @@ -40,11 +40,6 @@ extern struct acpi_madt_core_pic acpi_core_pic[MAX_CORE_PIC];
>  
>  extern int __init parse_acpi_topology(void);
>  
> -static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
> -{
> -	return acpi_core_pic[cpu_logical_map(cpu)].processor_id;
> -}
> -
>  #endif /* !CONFIG_ACPI */
>  
>  #define ACPI_TABLE_UPGRADE_MAX_PHYS ARCH_LOW_ADDRESS_LIMIT
> diff --git a/arch/loongarch/kernel/acpi.c b/arch/loongarch/kernel/acpi.c
> index 1367ca759468..058f0dbe8e8f 100644
> --- a/arch/loongarch/kernel/acpi.c
> +++ b/arch/loongarch/kernel/acpi.c
> @@ -385,3 +385,12 @@ int acpi_unmap_cpu(int cpu)
>  EXPORT_SYMBOL(acpi_unmap_cpu);
>  
>  #endif /* CONFIG_ACPI_HOTPLUG_CPU */
> +
> +int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
> +{
> +	if (cpu >= nr_cpu_ids)
> +		return -EINVAL;
> +	*uid = acpi_core_pic[cpu_logical_map(cpu)].processor_id;
> +	return 0;
> +}
> +EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
> diff --git a/arch/riscv/include/asm/acpi.h b/arch/riscv/include/asm/acpi.h
> index 6e13695120bc..26ab37c171bc 100644
> --- a/arch/riscv/include/asm/acpi.h
> +++ b/arch/riscv/include/asm/acpi.h
> @@ -61,10 +61,6 @@ static inline void arch_fix_phys_package_id(int num, u32 slot) { }
>  
>  void acpi_init_rintc_map(void);
>  struct acpi_madt_rintc *acpi_cpu_get_madt_rintc(int cpu);
> -static inline u32 get_acpi_id_for_cpu(int cpu)
> -{
> -	return acpi_cpu_get_madt_rintc(cpu)->uid;
> -}
>  
>  int acpi_get_riscv_isa(struct acpi_table_header *table,
>  		       unsigned int cpu, const char **isa);
> diff --git a/arch/riscv/kernel/acpi.c b/arch/riscv/kernel/acpi.c
> index 71698ee11621..322ea92aa39f 100644
> --- a/arch/riscv/kernel/acpi.c
> +++ b/arch/riscv/kernel/acpi.c
> @@ -337,3 +337,19 @@ int raw_pci_write(unsigned int domain, unsigned int bus,
>  }
>  
>  #endif	/* CONFIG_PCI */
> +
> +int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
> +{
> +	struct acpi_madt_rintc *rintc;
> +
> +	if (cpu >= nr_cpu_ids)
> +		return -EINVAL;
> +
> +	rintc = acpi_cpu_get_madt_rintc(cpu);
> +	if (!rintc)
> +		return -ENODEV;
> +
> +	*uid = rintc->uid;
> +	return 0;
> +}
> +EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
> diff --git a/arch/riscv/kernel/acpi_numa.c b/arch/riscv/kernel/acpi_numa.c
> index 130769e3a99c..6a2d4289f806 100644
> --- a/arch/riscv/kernel/acpi_numa.c
> +++ b/arch/riscv/kernel/acpi_numa.c
> @@ -37,11 +37,14 @@ static int __init acpi_numa_get_nid(unsigned int cpu)
>  
>  static inline int get_cpu_for_acpi_id(u32 uid)
>  {
> -	int cpu;
> +	u32 cpu_uid;
> +	int ret;
>  
> -	for (cpu = 0; cpu < nr_cpu_ids; cpu++)
> -		if (uid == get_acpi_id_for_cpu(cpu))
> +	for (int cpu = 0; cpu < nr_cpu_ids; cpu++) {
> +		ret = acpi_get_cpu_uid(cpu, &cpu_uid);
> +		if (ret == 0 && uid == cpu_uid)
>  			return cpu;
> +	}
>  
>  	return -EINVAL;
>  }
> diff --git a/drivers/acpi/pptt.c b/drivers/acpi/pptt.c
> index de5f8c018333..7bd5bc1f225a 100644
> --- a/drivers/acpi/pptt.c
> +++ b/drivers/acpi/pptt.c
> @@ -459,11 +459,14 @@ static void cache_setup_acpi_cpu(struct acpi_table_header *table,
>  {
>  	struct acpi_pptt_cache *found_cache;
>  	struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
> -	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
> +	u32 acpi_cpu_id;
>  	struct cacheinfo *this_leaf;
>  	unsigned int index = 0;
>  	struct acpi_pptt_processor *cpu_node = NULL;
>  
> +	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
> +		return;
> +
>  	while (index < get_cpu_cacheinfo(cpu)->num_leaves) {
>  		this_leaf = this_cpu_ci->info_list + index;
>  		found_cache = acpi_find_cache_node(table, acpi_cpu_id,
> @@ -546,7 +549,10 @@ static int topology_get_acpi_cpu_tag(struct acpi_table_header *table,
>  				     unsigned int cpu, int level, int flag)
>  {
>  	struct acpi_pptt_processor *cpu_node;
> -	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
> +	u32 acpi_cpu_id;
> +
> +	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
> +		return -ENOENT;
>  
>  	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
>  	if (cpu_node) {
> @@ -614,18 +620,22 @@ static int find_acpi_cpu_topology_tag(unsigned int cpu, int level, int flag)
>   *
>   * Check the node representing a CPU for a given flag.
>   *
> - * Return: -ENOENT if the PPTT doesn't exist, the CPU cannot be found or
> - *	   the table revision isn't new enough.
> + * Return: -ENOENT if can't get CPU's ACPI Processor UID, the PPTT doesn't
> + *	   exist, the CPU cannot be found or the table revision isn't new
> + *	   enough.
>   *	   1, any passed flag set
>   *	   0, flag unset
>   */
>  static int check_acpi_cpu_flag(unsigned int cpu, int rev, u32 flag)
>  {
>  	struct acpi_table_header *table;
> -	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
> +	u32 acpi_cpu_id;
>  	struct acpi_pptt_processor *cpu_node = NULL;
>  	int ret = -ENOENT;
>  
> +	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
> +		return -ENOENT;
> +
>  	table = acpi_get_pptt();
>  	if (!table)
>  		return -ENOENT;
> @@ -651,7 +661,8 @@ static int check_acpi_cpu_flag(unsigned int cpu, int rev, u32 flag)
>   * in the PPTT. Errors caused by lack of a PPTT table, or otherwise, return 0
>   * indicating we didn't find any cache levels.
>   *
> - * Return: -ENOENT if no PPTT table or no PPTT processor struct found.
> + * Return: -ENOENT if no PPTT table, can't get CPU's ACPI Process UID or no PPTT
> + *	   processor struct found.
>   *	   0 on success.
>   */
>  int acpi_get_cache_info(unsigned int cpu, unsigned int *levels,
> @@ -671,7 +682,9 @@ int acpi_get_cache_info(unsigned int cpu, unsigned int *levels,
>  
>  	pr_debug("Cache Setup: find cache levels for CPU=%d\n", cpu);
>  
> -	acpi_cpu_id = get_acpi_id_for_cpu(cpu);
> +	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id))
> +		return -ENOENT;
> +
>  	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
>  	if (!cpu_node)
>  		return -ENOENT;
> @@ -780,8 +793,9 @@ int find_acpi_cpu_topology_package(unsigned int cpu)
>   * It may not exist in single CPU systems. In simple multi-CPU systems,
>   * it may be equal to the package topology level.
>   *
> - * Return: -ENOENT if the PPTT doesn't exist, the CPU cannot be found
> - * or there is no toplogy level above the CPU..
> + * Return: -ENOENT if the PPTT doesn't exist, can't get CPU's ACPI
> + * Processor UID, the CPU cannot be found or there is no toplogy level
> + * above the CPU.
>   * Otherwise returns a value which represents the package for this CPU.
>   */
>  
> @@ -797,7 +811,9 @@ int find_acpi_cpu_topology_cluster(unsigned int cpu)
>  	if (!table)
>  		return -ENOENT;
>  
> -	acpi_cpu_id = get_acpi_id_for_cpu(cpu);
> +	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
> +		return -ENOENT;
> +
>  	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
>  	if (!cpu_node || !cpu_node->parent)
>  		return -ENOENT;
> @@ -872,7 +888,9 @@ static void acpi_pptt_get_child_cpus(struct acpi_table_header *table_hdr,
>  	cpumask_clear(cpus);
>  
>  	for_each_possible_cpu(cpu) {
> -		acpi_id = get_acpi_id_for_cpu(cpu);
> +		if (acpi_get_cpu_uid(cpu, &acpi_id) != 0)
> +			continue;
> +
>  		cpu_node = acpi_find_processor_node(table_hdr, acpi_id);
>  
>  		while (cpu_node) {
> @@ -966,10 +984,13 @@ int find_acpi_cache_level_from_id(u32 cache_id)
>  	for_each_possible_cpu(cpu) {
>  		bool empty;
>  		int level = 1;
> -		u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
> +		u32 acpi_cpu_id;
>  		struct acpi_pptt_cache *cache;
>  		struct acpi_pptt_processor *cpu_node;
>  
> +		if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
> +			continue;
> +
>  		cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
>  		if (!cpu_node)
>  			continue;
> @@ -1030,10 +1051,13 @@ int acpi_pptt_get_cpumask_from_cache_id(u32 cache_id, cpumask_t *cpus)
>  	for_each_possible_cpu(cpu) {
>  		bool empty;
>  		int level = 1;
> -		u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
> +		u32 acpi_cpu_id;
>  		struct acpi_pptt_cache *cache;
>  		struct acpi_pptt_processor *cpu_node;
>  
> +		if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
> +			continue;
> +
>  		cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
>  		if (!cpu_node)
>  			continue;
> diff --git a/drivers/acpi/riscv/rhct.c b/drivers/acpi/riscv/rhct.c
> index caa2c16e1697..8f3f38c64a88 100644
> --- a/drivers/acpi/riscv/rhct.c
> +++ b/drivers/acpi/riscv/rhct.c
> @@ -44,10 +44,15 @@ int acpi_get_riscv_isa(struct acpi_table_header *table, unsigned int cpu, const
>  	struct acpi_rhct_isa_string *isa_node;
>  	struct acpi_table_rhct *rhct;
>  	u32 *hart_info_node_offset;
> -	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
> +	u32 acpi_cpu_id;
> +	int ret;
>  
>  	BUG_ON(acpi_disabled);
>  
> +	ret = acpi_get_cpu_uid(cpu, &acpi_cpu_id);
> +	if (ret != 0)
> +		return ret;
> +
>  	if (!table) {
>  		rhct = acpi_get_rhct();
>  		if (!rhct)
> diff --git a/drivers/perf/arm_cspmu/arm_cspmu.c b/drivers/perf/arm_cspmu/arm_cspmu.c
> index 34430b68f602..ed72c3d1f796 100644
> --- a/drivers/perf/arm_cspmu/arm_cspmu.c
> +++ b/drivers/perf/arm_cspmu/arm_cspmu.c
> @@ -1107,15 +1107,17 @@ static int arm_cspmu_acpi_get_cpus(struct arm_cspmu *cspmu)
>  {
>  	struct acpi_apmt_node *apmt_node;
>  	int affinity_flag;
> +	u32 cpu_uid;
>  	int cpu;
> +	int ret;
>  
>  	apmt_node = arm_cspmu_apmt_node(cspmu->dev);
>  	affinity_flag = apmt_node->flags & ACPI_APMT_FLAGS_AFFINITY;
>  
>  	if (affinity_flag == ACPI_APMT_FLAGS_AFFINITY_PROC) {
>  		for_each_possible_cpu(cpu) {
> -			if (apmt_node->proc_affinity ==
> -			    get_acpi_id_for_cpu(cpu)) {
> +			ret = acpi_get_cpu_uid(cpu, &cpu_uid);
> +			if (ret == 0 && apmt_node->proc_affinity == cpu_uid) {
>  				cpumask_set_cpu(cpu, &cspmu->associated_cpus);
>  				break;
>  			}
> diff --git a/include/linux/acpi.h b/include/linux/acpi.h
> index 4d2f0bed7a06..035094a55f18 100644
> --- a/include/linux/acpi.h
> +++ b/include/linux/acpi.h
> @@ -324,6 +324,19 @@ int acpi_unmap_cpu(int cpu);
>  
>  acpi_handle acpi_get_processor_handle(int cpu);
>  
> +#ifndef CONFIG_X86
> +/*
> + * acpi_get_cpu_uid() - Get ACPI Processor UID of a specified CPU from MADT table
> + * @cpu: Logical CPU number (0-based)
> + * @uid: Pointer to store the ACPI Processor UID (valid only on successful return)

This would normally go at the implementation, but it probably does
make sense here because each arch has its own implementation.

Should start with "/**" to make it kernel-doc though.

Wrap to fit in 78 columns, like other comments in this file.

> + * Return: 0 on successful retrieval (the ACPI Processor ID is stored in *uid);
> + *         -EINVAL if the CPU number is invalid or out of range;
> + *         -ENODEV if the ACPI Processor UID for the specified CPU is not found.
> + */
> +int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
> +#endif


From xen-devel-bounces@lists.xenproject.org Wed Mar 18 23:28:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Mar 2026 23:28:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256569.1551117 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w30JK-0006rL-Me; Wed, 18 Mar 2026 23:28:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256569.1551117; Wed, 18 Mar 2026 23: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 1w30JK-0006rE-Jm; Wed, 18 Mar 2026 23:28:22 +0000
Received: by outflank-mailman (input) for mailman id 1256569;
 Wed, 18 Mar 2026 23:28:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SizD=BS=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1w30JI-0006r8-Pw
 for xen-devel@lists.xenproject.org; Wed, 18 Mar 2026 23:28:21 +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 237ca3f8-2322-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 00:28:18 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-b886fc047d5so55418966b.3
 for <xen-devel@lists.xenproject.org>; Wed, 18 Mar 2026 16:28:15 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.24.197])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b97f16899c6sm313469566b.38.2026.03.18.16.28.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 18 Mar 2026 16:28:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 237ca3f8-2322-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773876494; x=1774481294; 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=MrVXBVnBRQ9hbewM6tMXzLlCIA8yU23/tid1kSCpFQQ=;
        b=G/Mko9JO6nJjknlKRvYtM6jZdc9aN5AYQuz2hyz7qfv9PvF45/Qe6dsaQ50Ymy/VPA
         pipUdImTz7Ca2puCblQcQe0xgAISoxPDQ8Fq2p7yD5Px4JAA5AIRp0sMWbd06JKwrIDO
         nbv3FgnX8zu2/1+DMuNX0dgV0SfmR4WnYmm3eHFunfg+i4b8wjp/BhgBh6MkWMvyiyeX
         IRbRZw8yN+d+pu6+MRt/1IhnHvOY8XT0d9ubqbnRQrjrUSWGpLFq6BqzEvD5wfyAyrS3
         WcvLRh0yTgIMvYKlzOiV+soMPmmz3ltuZJEqskGTrby29JGQxxVpqs+i4fvvJx4IOEG2
         1Acg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773876494; x=1774481294;
        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=MrVXBVnBRQ9hbewM6tMXzLlCIA8yU23/tid1kSCpFQQ=;
        b=Hgq9FoZRTfB4uaBts31OSUeVBA7tGqY8O/huAx67COjCG3gy+z7fy7Tm4bXen7eVj0
         dEjI72NBuPsFai++d+4EbFU39aGBhns+TGZZCl03ajV+dXZjk93PMfobikD8jpk7HQKS
         8xfJELDOJ5X9PMURqJaR3Cuz++zUvyiyaS+9Khtv8sbmEuJniCHWoqf1dYHn6ES/rSza
         //sKJ2LP2xghjhULYe2TyGzJXeddwGEiSVx8UgDwEPs92nMKYGkqm0sAGkrn1NXKzOi6
         gXO9rpkdod03sx2GO+MlQVmpqKFahDM+T2cDoBHZulP1zA5WJhijg3934V5fCsXVerSz
         PrsA==
X-Gm-Message-State: AOJu0Ywj1yDHMF+V+iEDaLszQl6GJoNXsH2zWX03h3kusLQ1wV3vY4F1
	1bx+Ev5PfWLBEqS2byDjsGKo/jYZtd2zc2uBavesKuqgsj+/0KoEsQuSnRc+wQ==
X-Gm-Gg: ATEYQzyBjO/LKsWJplneW+KV4xlxUDlXr1rhT82JJ/QWR2jMgf1iPXL7quXX9NqWzGi
	WuxBZ3pmhApObOihWcQ3YecwjwyvN5XEqdelPk+AIzRtemswryKTJXZaPfRsCjinS3FMAmGmFdF
	fAXqAv+M2UBo13UODRpQqOYOV+NZVFr1xCZ3XnOesChhpSrmz8WhNQt1y+XV30ai5byaYBHHBOn
	SZUS5l+0PllEEak2jTRZe+IcThvTJrd50sm1qMIBpG2LaG1Id5d4NQZ9wVp8EQyEm8HbkjxdgQo
	JBj9Bu0cVPjp5FpVTB/GifknbQx32U0QIp+HUs+8ci8wCA4r+hTPwmun5oH70mHvEzOgUnq+9JT
	DHPfPPxpdKSgKWSEwsFKPb/L0VvCFAnHTf04bJ+pf60dyhobfQS2q2QL7sSyf+klb8dI+A+CUmj
	bzp/UJ0vXNjQlri79oHENy1aOqHnsxxd9Lt9Qw5w==
X-Received: by 2002:a17:907:2d1e:b0:b97:b378:62ba with SMTP id a640c23a62f3a-b97f4a7451emr277551466b.33.1773876494048;
        Wed, 18 Mar 2026 16:28:14 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Paul Durrant <paul@xen.org>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Tim Deegan <tim@xen.org>,
	Dario Faggioli <dfaggioli@suse.com>,
	Juergen Gross <jgross@suse.com>,
	George Dunlap <gwd@xenproject.org>
Subject: [PATCH] xen/domain: make shutdown state explicit
Date: Thu, 19 Mar 2026 01:25:40 +0200
Message-ID: <2004584dbbe393c9de4b3231bf91a24f6e5de5de.1773875416.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

The domain shutdown flow currently overloads is_shutting_down and
is_shut_down to represent multiple phases of the shutdown lifecycle,
while some users treat is_shutting_down as a broader "domain is no
longer normal" condition.

Make the shutdown lifecycle explicit by introducing
enum domain_shutdown_state and converting the existing users to helper
predicates describing whether shutdown is in progress, complete, or
active.

At the same time, make domain_resume() validate its input state and
return an error to its callers. Resume is now accepted only from the
fully shut down state.

This removes the implicit coupling between unrelated users of
is_shutting_down and makes the shutdown/resume state transitions
self-describing.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Link to discussion: https://patchew.org/Xen/cover.1756392094.git.mykola._5Fkvach@epam.com/bb53d9911b00879c7b25f5258d0e3e48005671f9.1756392094.git.mykola._5Fkvach@epam.com/#a64cff9f-df5f-467b-a944-74e803c64ab9@suse.com
---
 xen/arch/x86/hvm/viridian/time.c |  2 +-
 xen/arch/x86/mm.c                |  2 +-
 xen/arch/x86/mm/hap/hap.c        |  2 +-
 xen/arch/x86/mm/shadow/common.c  |  5 ++--
 xen/arch/x86/mm/shadow/multi.c   | 12 +++++----
 xen/common/domain.c              | 46 +++++++++++++++++++++++---------
 xen/common/domctl.c              |  4 +--
 xen/common/sched/core.c          |  2 +-
 xen/drivers/passthrough/iommu.c  |  8 +++---
 xen/drivers/passthrough/pci.c    |  2 +-
 xen/include/xen/sched.h          | 30 +++++++++++++++++----
 11 files changed, 80 insertions(+), 35 deletions(-)

diff --git a/xen/arch/x86/hvm/viridian/time.c b/xen/arch/x86/hvm/viridian/time.c
index 9311858d63..c786ebd2af 100644
--- a/xen/arch/x86/hvm/viridian/time.c
+++ b/xen/arch/x86/hvm/viridian/time.c
@@ -102,7 +102,7 @@ static void time_ref_count_thaw(const struct domain *d)
     struct viridian_domain *vd = d->arch.hvm.viridian;
     struct viridian_time_ref_count *trc = &vd->time_ref_count;
 
-    if ( d->is_shutting_down ||
+    if ( domain_shutdown_active(d) ||
          test_and_set_bit(_TRC_running, &trc->flags) )
         return;
 
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 4c404b6c13..039b4ffb00 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -1219,7 +1219,7 @@ void put_page_from_l1e(l1_pgentry_t l1e, struct domain *l1e_owner)
      */
 #if _PAGE_GNTTAB
     if ( (l1e_get_flags(l1e) & _PAGE_GNTTAB) &&
-         !l1e_owner->is_shutting_down && !l1e_owner->is_dying )
+         !domain_shutdown_active(l1e_owner) && !l1e_owner->is_dying )
     {
         gprintk(XENLOG_WARNING,
                 "Attempt to implicitly unmap %pd's grant PTE %" PRIpte "\n",
diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
index a337752bf4..205b33de0d 100644
--- a/xen/arch/x86/mm/hap/hap.c
+++ b/xen/arch/x86/mm/hap/hap.c
@@ -414,7 +414,7 @@ static mfn_t hap_make_monitor_table(struct vcpu *v)
 
  oom:
     if ( !d->is_dying &&
-         (!d->is_shutting_down || d->shutdown_code != SHUTDOWN_crash) )
+         (!domain_shutdown_active(d) || d->shutdown_code != SHUTDOWN_crash) )
     {
         printk(XENLOG_G_ERR "%pd: out of memory building monitor pagetable\n",
                d);
diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
index dd2d04d049..a09aab46d2 100644
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -164,7 +164,7 @@ void shadow_promote(struct domain *d, mfn_t gmfn, unsigned int type)
     /* We should never try to promote a gmfn that has writeable mappings */
     ASSERT((page->u.inuse.type_info & PGT_type_mask) != PGT_writable_page
            || (page->u.inuse.type_info & PGT_count_mask) == 0
-           || d->is_shutting_down);
+           || domain_shutdown_active(d));
 
     /* Is the page already shadowed? */
     if ( !test_and_set_bit(_PGC_shadowed_pt, &page->count_info) )
@@ -442,7 +442,8 @@ bool shadow_prealloc(struct domain *d, unsigned int type, unsigned int count)
         count += paging_logdirty_levels();
 
     ret = _shadow_prealloc(d, count);
-    if ( !ret && (!d->is_shutting_down || d->shutdown_code != SHUTDOWN_crash) )
+    if ( !ret && (!domain_shutdown_active(d) ||
+                  d->shutdown_code != SHUTDOWN_crash) )
         /*
          * Failing to allocate memory required for shadow usage can only result in
          * a domain crash, do it here rather that relying on every caller to do it.
diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.c
index 80cd3299fa..7cc3024455 100644
--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -2373,7 +2373,8 @@ static int cf_check sh_page_fault(
      * already used for some special purpose (ioreq pages, or granted pages).
      * If that happens we'll have killed the guest already but it's still not
      * safe to propagate entries out of the guest PT so get out now. */
-    if ( unlikely(d->is_shutting_down && d->shutdown_code == SHUTDOWN_crash) )
+    if ( unlikely(domain_shutdown_active(d) &&
+                  d->shutdown_code == SHUTDOWN_crash) )
     {
         SHADOW_PRINTK("guest is shutting down\n");
         goto propagate;
@@ -2483,7 +2484,7 @@ static int cf_check sh_page_fault(
 #if GUEST_PAGING_LEVELS == 3
         sh_update_cr3(v, false);
 #else
-        ASSERT(d->is_shutting_down);
+        ASSERT(domain_shutdown_active(d));
         sh_trace_va(TRC_SHADOW_DOMF_DYING, va);
 #endif
         paging_unlock(d);
@@ -2497,7 +2498,8 @@ static int cf_check sh_page_fault(
          && ft == ft_demand_write )
         sh_unsync(v, gmfn);
 
-    if ( unlikely(d->is_shutting_down && d->shutdown_code == SHUTDOWN_crash) )
+    if ( unlikely(domain_shutdown_active(d) &&
+                  d->shutdown_code == SHUTDOWN_crash) )
     {
         /* We might end up with a crashed domain here if
          * sh_remove_shadows() in a previous sh_resync() call has
@@ -3269,7 +3271,7 @@ static pagetable_t cf_check sh_update_cr3(struct vcpu *v, bool noflush)
                                        sh_make_shadow);
     if ( unlikely(pagetable_is_null(v->arch.paging.shadow.shadow_table[0])) )
     {
-        ASSERT(d->is_dying || d->is_shutting_down);
+        ASSERT(d->is_dying || domain_shutdown_active(d));
         return old_entry;
     }
     if ( !paging_mode_external(d) && !is_pv_32bit_domain(d) )
@@ -3336,7 +3338,7 @@ static pagetable_t cf_check sh_update_cr3(struct vcpu *v, bool noflush)
     ASSERT(pagetable_is_null(old_entry));
     if ( unlikely(pagetable_is_null(v->arch.paging.shadow.shadow_table[0])) )
     {
-        ASSERT(d->is_dying || d->is_shutting_down);
+        ASSERT(d->is_dying || domain_shutdown_active(d));
         return old_entry;
     }
 #else
diff --git a/xen/common/domain.c b/xen/common/domain.c
index ab910fcf93..fb6eb7b89a 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -190,7 +190,7 @@ static void set_domain_state_info(struct xen_domctl_get_domain_state *info,
                                   const struct domain *d)
 {
     info->state = XEN_DOMCTL_GETDOMSTATE_STATE_EXIST;
-    if ( d->is_shut_down )
+    if ( domain_shutdown_complete(d) )
         info->state |= XEN_DOMCTL_GETDOMSTATE_STATE_SHUTDOWN;
     if ( d->is_dying == DOMDYING_dying )
         info->state |= XEN_DOMCTL_GETDOMSTATE_STATE_DYING;
@@ -281,14 +281,14 @@ static void __domain_finalise_shutdown(struct domain *d)
 
     BUG_ON(!spin_is_locked(&d->shutdown_lock));
 
-    if ( d->is_shut_down )
+    if ( domain_shutdown_complete(d) )
         return;
 
     for_each_vcpu ( d, v )
         if ( !v->paused_for_shutdown )
             return;
 
-    d->is_shut_down = 1;
+    d->shutdown_state = DOMSHUTDOWN_complete;
     domain_changed_state(d);
     if ( (d->shutdown_code == SHUTDOWN_suspend) && d->suspend_evtchn )
         evtchn_send(d, d->suspend_evtchn);
@@ -302,7 +302,7 @@ static void vcpu_check_shutdown(struct vcpu *v)
 
     spin_lock(&d->shutdown_lock);
 
-    if ( d->is_shutting_down )
+    if ( domain_shutdown_in_progress(d) )
     {
         if ( !v->paused_for_shutdown )
             vcpu_pause_nosync(v);
@@ -1355,7 +1355,7 @@ int domain_kill(struct domain *d)
 
 void __domain_crash(struct domain *d)
 {
-    if ( d->is_shutting_down )
+    if ( domain_shutdown_active(d) )
     {
         /* Print nothing: the domain is already shutting down. */
     }
@@ -1393,13 +1393,13 @@ int domain_shutdown(struct domain *d, u8 reason)
     if ( is_hardware_domain(d) )
         hwdom_shutdown(reason);
 
-    if ( d->is_shutting_down )
+    if ( domain_shutdown_active(d) )
     {
         spin_unlock(&d->shutdown_lock);
         return 0;
     }
 
-    d->is_shutting_down = 1;
+    d->shutdown_state = DOMSHUTDOWN_in_progress;
 
     smp_mb(); /* set shutdown status /then/ check for per-cpu deferrals */
 
@@ -1422,9 +1422,12 @@ int domain_shutdown(struct domain *d, u8 reason)
     return 0;
 }
 
-void domain_resume(struct domain *d)
+int domain_resume(struct domain *d)
 {
     struct vcpu *v;
+    enum domain_shutdown_state shutdown_state;
+    unsigned int shutdown_code;
+    int rc = 0;
 
     /*
      * Some code paths assume that shutdown status does not get reset under
@@ -1434,7 +1437,18 @@ void domain_resume(struct domain *d)
 
     spin_lock(&d->shutdown_lock);
 
-    d->is_shutting_down = d->is_shut_down = 0;
+    shutdown_state = d->shutdown_state;
+    shutdown_code = d->shutdown_code;
+
+    if ( shutdown_state != DOMSHUTDOWN_complete ||
+         (shutdown_code != SHUTDOWN_suspend &&
+          shutdown_code != SHUTDOWN_soft_reset) )
+    {
+        rc = -EINVAL;
+        goto out_unlock;
+    }
+
+    d->shutdown_state = DOMSHUTDOWN_none;
     d->shutdown_code = SHUTDOWN_CODE_INVALID;
 
     for_each_vcpu ( d, v )
@@ -1444,9 +1458,17 @@ void domain_resume(struct domain *d)
         v->paused_for_shutdown = 0;
     }
 
+out_unlock:
     spin_unlock(&d->shutdown_lock);
 
     domain_unpause(d);
+
+    if ( rc )
+        dprintk(XENLOG_WARNING,
+                "%pd: Invalid domain state for resume: shutdown_state=%u, shutdown_code=%u\n",
+                d, shutdown_state, shutdown_code);
+
+    return rc;
 }
 
 int vcpu_start_shutdown_deferral(struct vcpu *v)
@@ -1456,7 +1478,7 @@ int vcpu_start_shutdown_deferral(struct vcpu *v)
 
     v->defer_shutdown = 1;
     smp_mb(); /* set deferral status /then/ check for shutdown */
-    if ( unlikely(v->domain->is_shutting_down) )
+    if ( unlikely(domain_shutdown_in_progress(v->domain)) )
         vcpu_check_shutdown(v);
 
     return v->defer_shutdown;
@@ -1466,7 +1488,7 @@ void vcpu_end_shutdown_deferral(struct vcpu *v)
 {
     v->defer_shutdown = 0;
     smp_mb(); /* clear deferral status /then/ check for shutdown */
-    if ( unlikely(v->domain->is_shutting_down) )
+    if ( unlikely(domain_shutdown_in_progress(v->domain)) )
         vcpu_check_shutdown(v);
 }
 
@@ -1798,7 +1820,7 @@ int domain_soft_reset(struct domain *d, bool resuming)
 
     rc = arch_domain_soft_reset(d);
     if ( !rc )
-        domain_resume(d);
+        rc = domain_resume(d);
     else
         domain_crash(d);
 
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 93738931c5..23686bb603 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -86,7 +86,7 @@ void getdomaininfo(struct domain *d, struct xen_domctl_getdomaininfo *info)
 
     info->flags = (info->nr_online_vcpus ? flags : 0) |
         ((d->is_dying == DOMDYING_dead) ? XEN_DOMINF_dying     : 0) |
-        (d->is_shut_down                ? XEN_DOMINF_shutdown  : 0) |
+        (domain_shutdown_complete(d)    ? XEN_DOMINF_shutdown  : 0) |
         (d->controller_pause_count > 0  ? XEN_DOMINF_paused    : 0) |
         (d->debugger_attached           ? XEN_DOMINF_debugged  : 0) |
         (is_xenstore_domain(d)          ? XEN_DOMINF_xs_domain : 0) |
@@ -404,7 +404,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
         if ( d == current->domain ) /* no domain_pause() */
             ret = -EINVAL;
         else
-            domain_resume(d);
+            ret = domain_resume(d);
         break;
 
     case XEN_DOMCTL_createdomain:
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index a57d5dd929..48f5b4f738 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -1540,7 +1540,7 @@ static void cf_check domain_watchdog_timeout(void *data)
 
     BUILD_BUG_ON(alignof(*d) < PAGE_SIZE);
 
-    if ( d->is_shutting_down || d->is_dying )
+    if ( domain_shutdown_active(d) || d->is_dying )
         return;
 
     printk("Watchdog timer %u fired for %pd\n", id, d);
diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
index c9425d6971..f70d970b0e 100644
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -355,7 +355,7 @@ long iommu_map(struct domain *d, dfn_t dfn0, mfn_t mfn0,
         if ( likely(!rc) )
             continue;
 
-        if ( !d->is_shutting_down && printk_ratelimit() )
+        if ( !domain_shutdown_active(d) && printk_ratelimit() )
             printk(XENLOG_ERR
                    "d%d: IOMMU mapping dfn %"PRI_dfn" to mfn %"PRI_mfn" failed: %d\n",
                    d->domain_id, dfn_x(dfn), mfn_x(mfn), rc);
@@ -427,7 +427,7 @@ long iommu_unmap(struct domain *d, dfn_t dfn0, unsigned long page_count,
         if ( likely(!err) )
             continue;
 
-        if ( !d->is_shutting_down && printk_ratelimit() )
+        if ( !domain_shutdown_active(d) && printk_ratelimit() )
             printk(XENLOG_ERR
                    "d%d: IOMMU unmapping dfn %"PRI_dfn" failed: %d\n",
                    d->domain_id, dfn_x(dfn), err);
@@ -492,7 +492,7 @@ int iommu_iotlb_flush(struct domain *d, dfn_t dfn, unsigned long page_count,
                     flush_flags);
     if ( unlikely(rc) )
     {
-        if ( !d->is_shutting_down && printk_ratelimit() )
+        if ( !domain_shutdown_active(d) && printk_ratelimit() )
             printk(XENLOG_ERR
                    "d%d: IOMMU IOTLB flush failed: %d, dfn %"PRI_dfn", page count %lu flags %x\n",
                    d->domain_id, rc, dfn_x(dfn), page_count, flush_flags);
@@ -517,7 +517,7 @@ int iommu_iotlb_flush_all(struct domain *d, unsigned int flush_flags)
                     flush_flags | IOMMU_FLUSHF_all);
     if ( unlikely(rc) )
     {
-        if ( !d->is_shutting_down && printk_ratelimit() )
+        if ( !domain_shutdown_active(d) && printk_ratelimit() )
             printk(XENLOG_ERR
                    "d%d: IOMMU IOTLB flush all failed: %d\n",
                    d->domain_id, rc);
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 464bb0fee4..c22f45109c 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -1746,7 +1746,7 @@ void iommu_dev_iotlb_flush_timeout(struct domain *d, struct pci_dev *pdev)
 
     pdev->broken = true;
 
-    if ( !d->is_shutting_down && printk_ratelimit() )
+    if ( !domain_shutdown_active(d) && printk_ratelimit() )
         printk(XENLOG_ERR "dom%d: ATS device %pp flush failed\n",
                d->domain_id, &pdev->sbdf);
     if ( !is_hardware_domain(d) )
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 40a35fc15c..d774fdd43c 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -226,7 +226,7 @@ struct vcpu
     bool             force_context_switch;
     /* Require shutdown to be deferred for some asynchronous operation? */
     bool             defer_shutdown;
-    /* VCPU is paused following shutdown request (d->is_shutting_down)? */
+    /* VCPU is paused following a domain shutdown request? */
     bool             paused_for_shutdown;
     /* VCPU need affinity restored */
     uint8_t          affinity_broken;
@@ -386,6 +386,12 @@ struct domain_console {
     char buf[256];
 };
 
+enum domain_shutdown_state {
+    DOMSHUTDOWN_none,
+    DOMSHUTDOWN_in_progress,
+    DOMSHUTDOWN_complete,
+};
+
 struct domain
 {
     domid_t          domain_id;
@@ -552,10 +558,9 @@ struct domain
     struct rangeset *iomem_caps;
     struct rangeset *irq_caps;
 
-    /* Guest has shut down (inc. reason code)? */
+    /* Guest shutdown state and associated reason code. */
     spinlock_t       shutdown_lock;
-    bool             is_shutting_down; /* in process of shutting down? */
-    bool             is_shut_down;     /* fully shut down? */
+    enum domain_shutdown_state shutdown_state;
 #define SHUTDOWN_CODE_INVALID ~0u
     unsigned int     shutdown_code;
 
@@ -674,6 +679,21 @@ struct domain
     unsigned int pending_scrub_index;
 } __aligned(PAGE_SIZE);
 
+static inline bool domain_shutdown_in_progress(const struct domain *d)
+{
+    return d->shutdown_state == DOMSHUTDOWN_in_progress;
+}
+
+static inline bool domain_shutdown_complete(const struct domain *d)
+{
+    return d->shutdown_state == DOMSHUTDOWN_complete;
+}
+
+static inline bool domain_shutdown_active(const struct domain *d)
+{
+    return d->shutdown_state != DOMSHUTDOWN_none;
+}
+
 static inline struct page_list_head *page_to_list(
     struct domain *d, const struct page_info *pg)
 {
@@ -828,7 +848,7 @@ static inline void put_pg_owner(struct domain *pg_owner)
 void domain_destroy(struct domain *d);
 int domain_kill(struct domain *d);
 int domain_shutdown(struct domain *d, u8 reason);
-void domain_resume(struct domain *d);
+int domain_resume(struct domain *d);
 
 int domain_soft_reset(struct domain *d, bool resuming);
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 18 23:50:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Mar 2026 23:50:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256579.1551127 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w30f4-0002H4-E9; Wed, 18 Mar 2026 23:50:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256579.1551127; Wed, 18 Mar 2026 23: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 1w30f4-0002Gx-Ac; Wed, 18 Mar 2026 23:50:50 +0000
Received: by outflank-mailman (input) for mailman id 1256579;
 Wed, 18 Mar 2026 23: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=h/6n=BS=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1w30f3-0002Gr-D3
 for xen-devel@lists.xenproject.org; Wed, 18 Mar 2026 23: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 48162b14-2325-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 00:50:47 +0100 (CET)
Received: from BLAPR03CA0083.namprd03.prod.outlook.com (2603:10b6:208:329::28)
 by MN2PR12MB4359.namprd12.prod.outlook.com (2603:10b6:208:265::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.9; Wed, 18 Mar
 2026 23:50:38 +0000
Received: from MN1PEPF0000F0E2.namprd04.prod.outlook.com
 (2603:10b6:208:329:cafe::7a) by BLAPR03CA0083.outlook.office365.com
 (2603:10b6:208:329::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.27 via Frontend Transport; Wed,
 18 Mar 2026 23:50:30 +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.9723.19 via Frontend Transport; Wed, 18 Mar 2026 23:50:37 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 18 Mar
 2026 18:50:37 -0500
Received: from amd-BIRMANPLUS.mshome.net (10.180.168.240) by
 satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17
 via Frontend Transport; Wed, 18 Mar 2026 18:50:36 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 48162b14-2325-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hBzBtaG702yy45jke0ewfT8X7DiQeQVoXUt2JuY8ikUfhfTI3jXmRSfFHHoLRfe2cAy1tSNy08pCqkniTuRl0SfbpkMTSrdblUqL+hI6hOCMcR5UKfrKpAJLcO5vK9wJhJD9lrsGIlZ+4TM2Xes+e4EV3P+3ltbbYdLVsl7DfMCYmHQ1wRvYLXI+FEaC28lAwlT4OaefcC3IPJlQ3CAUrTannyelXfNHhVGYJYZs38uKSo4xNgDUAo3aJcxUnukJecSedlDb77i6mjYO1Xt8bKj+n0hf8OLpLsv7zyfxT4SFQNwOTZSWvKOjyVAMSSobfJKVbJ7IwrpeyFB2vCjJTQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nLbg1HDH6l1jiTK+VlQOSblYz6M6mENO37elpcq0i8w=;
 b=vXP4jftYwy+QIsCiGSlyXR96xHP4UFvWn4+im5iT6Ykq2EfQ8ul2gq/6JbcaE6NSnOlDISz18+meiroCRWKYvNqoEUKrCrHDd37Lp03Frd9SEYdWGCKaOnVr7ykLUYV7gdQavuoIRuxeLSespB61weCkYZQpcpthwgtlJoeh2jK0ImJ5VxG2T2jnUGmnCa/oKYmWEf4IMiq7v/s6MXmw2sGwla+qEGPFvWGU+l9xQ78iuZjaocwHhPNq0Y2ZXcEDUtquM546Crfeq7uNeJZ/nN+0XKmcjUvQH6OfOkZ3INNJ/jMz7zB3NB+yzBso1aYP4Bb5ooT3U6ck3J6Wx5ETdQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=linuxfoundation.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nLbg1HDH6l1jiTK+VlQOSblYz6M6mENO37elpcq0i8w=;
 b=wKpv8XDlNd5MrHitoRRfdUbJ7/T0NCLSYao+CZFh92ssSdHBM8kTz+ae6RmhYzahF/+3owUR6jHwKuTfBgXVwZ/QZExc6/lXK57s/TZ2aKUm+cp899bhFIpbwnO8R08jdtnFsL8AJs2SHscsrBDMsjxn5Y9mqLlylNF/pK6yKmQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Jiri Slaby
	<jirislaby@kernel.org>, Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>
CC: Jason Andryuk <jason.andryuk@amd.com>, <linuxppc-dev@lists.ozlabs.org>,
	<linux-kernel@vger.kernel.org>, <linux-serial@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>
Subject: [PATCH v2] hvc/xen: Check console connection flag
Date: Wed, 18 Mar 2026 19:53:26 -0400
Message-ID: <20260318235326.14568-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: MN1PEPF0000F0E2:EE_|MN2PR12MB4359:EE_
X-MS-Office365-Filtering-Correlation-Id: 1b892e22-8846-4191-c11f-08de854927bf
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|82310400026|1800799024|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	JkpSHBDnsSk4aQuRibFmwQXefmYAh6y5Xn1e11gx4juQwNPfvxDVrn5/fmALEA4rhp95KsS4HR73G2/gtxikIZeBvXrE4I2tH+WrboeZnPUvokSTwQdllxEjJwrEIl31NeZm1MZgJ4kKkKpYJQBGPeGzSV0i3wZ5w2YB/VBF54OCPeQoKt/hS2X66M50emcTi2+oligKZAeDbX2ETviI98fATgQrsjag6iXoWtv4/vz3A6FYvalQ5wLi0g6yRN2MWh7pLNqjZTL7M9bDSdsk/GDJ77IHKEzZBlrwOJ6JtXOIxnMw3VffbyXvJZg/c/DF7TSQi4GTKfidCkOKaNuhs5o+F5rn0fQgFXPcfwIYaIB0BnhiFu44BNS49/jpsdpWL/vmdbdcK8lSe4eNmrSh/kMvpNsrK1NMUSERKhCT+ZCv9xtLngWD+OEEjvC+PyK62U9tnqtmUEw3LJyXqmhjcTMG5zD8CZVNaGlMbm0i1GroMHJ9qZeSzhtnxiwRSuqsuVQFr/R976a0jsgdfthhqU1JPFExXVBXhDpkJq1kn5czvZvCtsNUt3xaKIx2YTaCXsSgb9UEgHtL8sItqncw91Dz7FwokLIZBcwrtqviSE0R/tHpC0rIKOWxooXypwgOJhfKC/c+iGcnEI1UvqUAKTWI/ZRHHbtfjKMTAqHOuMxsX2nBGqwPE1yBuXZnw10oAHUoLZ+VOSIOejs1IE/tGBL7HMu0e8FCKSZkGhKHo/s7uBIa9gptvno3fbNJcHmq8MFkXldRhscT4Oh7TwyQXg==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(82310400026)(1800799024)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	re72hxWdptHIQ8P0TrugEA9BkVeKN6QYE49F6BlYwS38FuCoV+FnEbeNfWLmzCILrqnVDCDRtwTN5KDMI9eoM68Dbysezgyflkxt6qMw9u/9gCLxxeNkI1VixNFdJYpeC0FJ5D7TdgQzxgo77AauPFMAFSlPEca3ufcNboYbBXNRodihLoguxCbGIJq88uGjBBxRFfN+/k9HouYnJVUnUz4mUchYLrlFgsPRG1uNxyTTfhZxbRhhlUJa3WWhypnhgYH80bf+ZP4ImoZVJYC9KRr+1yzAA+y4YGuLuWgskIFgJx576w4HlrkHFmPGcHtbTaqM1Zs1kSD1cacQTbNHwkrYSUmdNLHvmh/HP5dHoJbktaoXHERrqqeU6Lq40KZfMkTVtGduh5mtRXPu8mPTrBpEGx2KSwVHNkSLdqNZAxNmFgyGZ6j1t4gpgIw2H4U2
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Mar 2026 23:50:37.8718
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1b892e22-8846-4191-c11f-08de854927bf
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-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: MN2PR12MB4359

When the console out buffer is filled, __write_console() will return 0
as it cannot send any data.  domU_write_console() will then spin in
`while (len)` as len doesn't decrement until xenconsoled attaches.  This
would block a domU and nullify the parallelism of Hyperlaunch until dom0
userspace starts xenconsoled, which empties the buffer.

Xen 4.21 added a connection field to the xen console page.  This is set
to XENCONSOLE_DISCONNECTED (1) when a domain is built, and xenconsoled
will set it to XENCONSOLE_CONNECTED (0) when it connects.

Update the hvc_xen driver to check the field.  When the field is
disconnected, drop the write with -ENOTCONN.  We only drop the write
when the field is XENCONSOLE_DISCONNECTED (1) to try for maximum
compatibility.  The Xen toolstack has historically zero initialized the
console, so it should see XENCONSOLE_CONNECTED (0) by default.  If an
implemenation used uninitialized memory, only checking for
XENCONSOLE_DISCONNECTED could have the lowest chance of not connecting.

This lets the hyperlaunched domU boot without stalling.  Once dom0
starts xenconsoled, xl console can be used to access the domU's hvc0.

Paritally sync console.h from xen.git to bring in the new field.

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v2:
s/XENCONSOLED/XENCONSOLE/ in commit message
Mention sync from xen.git in commit message
R-b: Stefano
---
 drivers/tty/hvc/hvc_xen.c          |  3 +++
 include/xen/interface/io/console.h | 13 +++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
index 7f0b6262488c..c407592442cd 100644
--- a/drivers/tty/hvc/hvc_xen.c
+++ b/drivers/tty/hvc/hvc_xen.c
@@ -139,6 +139,9 @@ static ssize_t domU_write_console(uint32_t vtermno, const u8 *data, size_t len)
 	if (cons == NULL)
 		return -EINVAL;
 
+	if (cons->intf->connection == XENCONSOLE_DISCONNECTED)
+		return -ENOTCONN;
+
 	/*
 	 * Make sure the whole buffer is emitted, polling if
 	 * necessary.  We don't ever want to rely on the hvc daemon
diff --git a/include/xen/interface/io/console.h b/include/xen/interface/io/console.h
index cf17e89ed861..687949bdebb1 100644
--- a/include/xen/interface/io/console.h
+++ b/include/xen/interface/io/console.h
@@ -19,6 +19,19 @@ struct xencons_interface {
     char out[2048];
     XENCONS_RING_IDX in_cons, in_prod;
     XENCONS_RING_IDX out_cons, out_prod;
+/*
+ * Flag values signaling from backend to frontend whether the console is
+ * connected.  i.e. Whether it will be serviced and emptied.
+ *
+ * The flag starts as disconnected.
+ */
+#define XENCONSOLE_DISCONNECTED 1
+/*
+ * The flag is set to connected when the backend connects and the console
+ * will be serviced.
+ */
+#define XENCONSOLE_CONNECTED    0
+    uint8_t connection;
 };
 
 #endif /* __XEN_PUBLIC_IO_CONSOLE_H__ */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 01:14:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 01:14:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256599.1551136 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w31xt-0003VM-3H; Thu, 19 Mar 2026 01:14:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256599.1551136; Thu, 19 Mar 2026 01:14:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w31xs-0003VC-UV; Thu, 19 Mar 2026 01:14:20 +0000
Received: by outflank-mailman (input) for mailman id 1256599;
 Thu, 19 Mar 2026 01:14: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=3tHx=BT=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1w31xq-0003V6-QG
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 01:14:19 +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 f2db09c6-2330-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 02:14:17 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AM9PR03MB7632.eurprd03.prod.outlook.com
 (2603:10a6:20b:413::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Thu, 19 Mar
 2026 01:14:13 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3%7]) with mapi id 15.20.9700.020; Thu, 19 Mar 2026
 01:14:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f2db09c6-2330-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kd8CQkRC8p0ljR0E4KnxHHgO0XSaAI2llbG/C1opVEX9XLbEUTo6La36z/OPCbw6qxRS9rnKkqTdfgMOV0DCq+4Um1znLscR3N94Kihyi9i5rhu9P/JVxoWG7Fljqe6R2iYzo76BJ6h1VO4EvOMhkX/uqTeh54vL9ozlNH92zfuSPitj0kRHTzlyMsrVinI4Ej3/nNsfW01RKwLSggfT2oc5j7BTE3+RPe0zVkeEQ2089EI8klL2wNjSo5q4FzCZqERYun3UBOZabXlC+a/bSWf9sT5uZL03bftdRZWKsUl2BcU38anwbCZtSsM+bfdBWJooPeDeWC3i2iiF1c+p6A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hz7+aIIiuhwdr7IrJVLJdVGF1UrGtpwdl7U/fwiClwc=;
 b=y6zr0ZZqHS5yuLo08XRTFp3qtETF17fX3FgzqoacLE3mSNBVysS8jGChhOV818XHmfavtdqadDWGWGQxaOC5sYCVOtl/gGEqRSxaTx98AOr/20P6tqNsnHSug667rvQz8c9lm9VIWhJpnzRodXEegGDxjO/p8WW45vtJTi+ODQ0cyGXpT1d/pojaIrSQ/EEvRsDYLt1lNK6Z4f1cxPL/k93lC3NhFQ6u71yUML7ZqcVSBB9C/tNqi3YSjHfMdV8X+woeCDe8CnzpsYkwAmceKyrPjJUS8Nw8eTdsqbXEPwprnCNYtDBRN14DGtIKbxrQLK/ANf9j2o3E6yyDQZLhKA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hz7+aIIiuhwdr7IrJVLJdVGF1UrGtpwdl7U/fwiClwc=;
 b=bJk+BjSFFsrldDZXMwGRn7e4Vd6io5pFHNkTbWfSftK/oWhCNYU8wPMjFcC7ftuJ8sBJtieia26cagyIv7yqAWOSUUPeDQNLGJaqZ/sSHRD4couF7BJVm69ENKOx3aeyi0rA6LCUHzTJrUPl1ViQP/qs8VxSrqibjss61GFzrLvzBLatsmCYUA5Pv8ZXf1Z1br/ndgXrYK9N0jDDgKPv9D2oNYXlVr/aX4amRQxKivDGl+2jCQzDKD/WZdC0TO04UqdQG7pJYREEKgOmoPN3EYFgU6KZneiuNkpKTDfOGiyekyxhNYQ//kepRJuMgV4XCt5G00JjNOmYR17FUOeHDA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <Mykola_Kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>
Subject: Re: [PATCH v16 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
Thread-Topic: [PATCH v16 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
Thread-Index: AQHca2pkIbZvzRBq5kGPbXWSwbNafQ==
Date: Thu, 19 Mar 2026 01:14:12 +0000
Message-ID: <87cy10k4d8.fsf@epam.com>
References: <cover.1765533584.git.mykola_kvach@epam.com>
	<f1d118552f84e2b894ec7163000f6dba98d0e3fa.1765533584.git.mykola_kvach@epam.com>
	<87jyv9kbxe.fsf@epam.com>
	<CAGeoDV-znwz8pG9VfrOOC57O2hp83vMuE9QZEtZMxc70VtDuKA@mail.gmail.com>
In-Reply-To:
 <CAGeoDV-znwz8pG9VfrOOC57O2hp83vMuE9QZEtZMxc70VtDuKA@mail.gmail.com>	(Mykola
 Kvach's message of "Wed, 18 Mar 2026 08:35:27 +0200")
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV1PR03MB10456:EE_|AM9PR03MB7632:EE_
x-ms-office365-filtering-correlation-id: abb1a458-65d0-43d4-760d-08de8554d4dc
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|42112799006|7416014|1800799024|376014|38070700021|22082099003|56012099003|18002099003;
x-microsoft-antispam-message-info:
 nPnPl+ynetp60VQC8WJgsGs9DsaFHbTIN3kEQDbtbLYWGwra8q2elFOuKc6LxDCzsVax0pHAT5h2pPW65G3KsnLjaLCVrvzt9Y4wIIFVClcemLFgH6Qg7h3zSmdgOP5TgXqmpkdxfyjKu7YgsMoDsFBsxgnyrE+Ahs8NCr8uZAQYMONtdGM1wMV1Jbj5BkNlb9snX0dfBr9aGi5v6mLwTXTKo+4CVfvokMPBSJ3FRGRIUa/ynIYyITXkynSzYcLc/6/Ute9ZzMH1LRvsRgLmSqoRGwptY5Yy0oydvmYHHSX6LxMkrrjXXHlpyg1beuK67oDpo/8elK1qi3zk1/Zw29JfIIS/9mh7/gsZgtZ/iPz8gd9gU78OgLuu29SzO/Cd3V9vKV+OiR/QfLio7Sq9iOVhcl7Jy5uzC0mf4goNgxTni4xOmca3qTYWoex7Kk49uCe/EOu5HZ9LfOnw54jcYilQ80HL02h+JxiveVF6XXFyRoOX2nHgDZ+drKnjwyB5fUMu/vIo64gUUqf/iTrZVnMS2iwT0j2V0x74vbqUsplG8EwtBXg80+sKLZDZuXUcQ1FYkLdat3qAxGGNjDsHrcNgYZU6anwBgJ0qdhN+18rpiX1Nd1l5S/BJt5lAft6E2qAhzXqjPalWQWDYTbJSA7Qi8IkKLjU5Wpi5ykkW9cwAimdDNVwcqFjAtupHAS+6nWA31Ue5WKYSVUWHhvHgpFJ7WHEHFPHkUyWJkP9+cXvGCjuI8cI82SNGIEjCA6UaDwEhoCr9z1U4Y1rzEBMVE07IxRGDOmIVnn7riPZ+zek=
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)(1800799024)(376014)(38070700021)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?eUpQZFg3ckwvNEg3dThiMlgxakg4bUltUU12NzgrRFhKWDNKSmVrbWZjUy9G?=
 =?utf-8?B?MElvKzBZRkVaMlRCQXJhNUh3TndZZENPUWZTQURIL0U0bVphaG5sTUsxb0Yx?=
 =?utf-8?B?a3ZHc0hPMlJpUGJpQk5GU25DQUlLWGZMbCtBY1IvcWtZdTdrdjJOWEpzQlNk?=
 =?utf-8?B?Ym1aWWlNNi9aRU1MMUtOUHFNckNsMmlhSnJ6a0V4L3ZMdVhXVWk1Syt4dC9W?=
 =?utf-8?B?VWdDUjJLZDdYck9JcVAvaDd4RnFpNEVpQW02N0xRaVR3TlpraG96UWxoMVpp?=
 =?utf-8?B?d1BZWXYwbmZlZ3YrNFdadWRHRlZ0UnFuSllUNlJVVnhtbUd1QmNWV3FSZU9l?=
 =?utf-8?B?MU9EZ0VBYWkxSTdZeXlXdUxURVA4akZwZzVVR09TeEFScnFLNEp5TFZKQTZh?=
 =?utf-8?B?MFR6WGxYZkVKTjdkQ2huenNHZDhlQU40RjJOcnJMMmRvOWluYUx4K2kzUlJs?=
 =?utf-8?B?SG9oREVBdmdnOFRBbzVFTjIxVXhSQXgyRlpzckxvSm5UbzRteEFTM0s2S0VM?=
 =?utf-8?B?QjJRV1BHY3B0Z3BXTGR5bHVxRFRQLzBicUd5b0YweWEyR0ZuNmV4b05VRll3?=
 =?utf-8?B?bFU1Qms3aXJpR1BOR0dpUFNiTUk2MmZnMFdJK0NOTzBFSnJGWDlqMXp6Z0Nw?=
 =?utf-8?B?cFhmV1lwTlRJOXc4VEczMzFKNlpmRHlvSzkxV0hUY0pHZWttZ2JZWmVPWWFj?=
 =?utf-8?B?V2dESktNWHhpRFdwZUNId2FUUjdTb2djY1pqclBXb1NscW5UVWRQdWJDcjRE?=
 =?utf-8?B?TmFZRVZxOGFUellncFZtNWQ3TWl4anlObkpyNmZnR3psMFRzdVZ0R2lJTDk1?=
 =?utf-8?B?RlRUVHZweTZsUEMvaU1kZW1yTGkvYko3R3FPVkJLMzZwNzZuLzAveXZRMmd6?=
 =?utf-8?B?WTFucXJOUkx5ZkNZM0pHdEpwZFVYTHRobWtVWmZtNmxHWXFjdTltWnh6aUE2?=
 =?utf-8?B?elY2OE05cGJiS1RYWlFPUzhLcGlkYkVmTzkyYVlja3JQaFVvWXd4eG1MR2p3?=
 =?utf-8?B?RWJ4TldrcVh0bnVsdzUxL0tTdWgrMzFqYU9KQVEzcEZyanVObWtSN2lqUEQy?=
 =?utf-8?B?K2VCcE8zcVZXUFg1L1JRMEh4emo3bGEyVzd0eXNOWm1xdE9qOGRpZDJwQ0dN?=
 =?utf-8?B?bm1iTWhHNTB5MDJvK2ZUZW5wQUw2TkFvbExRZmxkVGVZaXVjMUMrSUFVTkJa?=
 =?utf-8?B?UGl0Tmw2Q09ITFdBbkxJMFluVVY0Q3FFTjkySkZMd09Eb1kyVjhrU0RQNDZG?=
 =?utf-8?B?WEIxUXNsQmUvNzZ5b2tyU0ZjbHR4QXNpNzI4aGlNa3hhZVNxNHN2NkhrcTFO?=
 =?utf-8?B?ckFkSzhuZFZwTjAwZ3RLYlB2RkcvclVoanhxSTg2WGt6K3pVK3RsOEZGQ2U3?=
 =?utf-8?B?QzkvbXR0UEJpdjF1dzBIdjVnL1hTN0J1M0lmbHUxV3ZuMEk4Nld2enhLSTBy?=
 =?utf-8?B?emF4WFZZbHJNWkZodVgzK0krSzIyV3BLbXlVSlhSVm9ZRk8yQ0cvZ0dxb0Z3?=
 =?utf-8?B?ckh1UDdCdmFvS0Jvazl4b3VOcG1mR3ZGRlA5UjhhTW5SZWdkUmtVTmRTWUFs?=
 =?utf-8?B?SE93RytraG9LOFB0bW9ta3BadUZGL0hCdlVVbndPTithK0w2WjdtQ2lFc0V0?=
 =?utf-8?B?Z0dLOGZPN1N6UjdLRkdoZjVqSU5hMUw2UndaOU0xNGk5bTU5VUJ0bmJjOWdK?=
 =?utf-8?B?UXo1S2o1NDlDKzNVVFlGWXFod1lSU2VqN290WlQwNzdHYVRSUGlrYVBqWUxO?=
 =?utf-8?B?cWRNakI1Ti83QWM3dmp5OTJGRVRqU3UyOHNxQTE2S3BiZkhCRDJFN0k0ckFX?=
 =?utf-8?B?U21BTTE1aWljYjNRU0ZmUkRjV0h2bnFjM1pHQkNoOWhncnZCRVJsNUdReS9E?=
 =?utf-8?B?UndKVkVDSFFoTDA3c0IxdFNKOVk3c2tjdXZUVFVTb1JRTlhrdSt5azBUak1S?=
 =?utf-8?B?SS9uNG5IV0YxMVR0aW9hREdvd25zdHpidTVOcjFYdkppVVVHNmFsTElMSzVW?=
 =?utf-8?B?MXpjTkZVM2NvMFhhYjlkTk4wSS9Ybk8zWWdHQTRndzBvT29RNUwxRGJodVox?=
 =?utf-8?B?eWtObmVudnNOMEc5eVZFVzluY0ROaXdweWdkWWZPMCt2RVZhUVFGSm9XZ2g3?=
 =?utf-8?B?T0ZPTzNnaFB3QTFlbGpRVzlIVUgzZWFNbHRzeTFnRzQ1RFJQb0g3ZlNHdkJ1?=
 =?utf-8?B?SlAzR1V5enA3MUlBU0RwOU9sLzR6WUplYjFEbExZMXkycXJMakJwY3J4MDZD?=
 =?utf-8?B?dmszTVVGMGJEeEppd0pOK1hKemQvOGxyM3daTjFzK3VOSHBiMjdNL0sxeUYw?=
 =?utf-8?B?ZmkrM09aTC8raTgyMzFQZC9VekhGblpNR1cxR3NQdjhPU0hacHlaVVh4emps?=
 =?utf-8?Q?RK+F/8eAqyUnnvcM=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <2C7899FCFCBE9A45BC8894F34298E777@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: abb1a458-65d0-43d4-760d-08de8554d4dc
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Mar 2026 01:14:12.7321
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: wltDLUtcQckvKWNn+XRbFv1JyAxcmH68ndah9FIQnlN3ftgNy4c1p78Qu0g1YgP7kwdRA2jNjk5v5HcVST78QBvv/shTLktDhPORaRFiGnQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7632

SGkgTXlrb2xhLA0KDQpNeWtvbGEgS3ZhY2ggPHhha2VwLmFtYXRvcEBnbWFpbC5jb20+IHdyaXRl
czoNCg0KPiBIaSBWb2xvZHlteXIsDQo+DQo+IFRoYW5rIHlvdSBmb3IgdGhlIHJldmlldy4NCj4N
Cj4gT24gV2VkLCBNYXIgMTgsIDIwMjYgYXQgNjoxOOKAr0FNIFZvbG9keW15ciBCYWJjaHVrDQo+
IDxWb2xvZHlteXJfQmFiY2h1a0BlcGFtLmNvbT4gd3JvdGU6DQo+Pg0KPj4gSGkgTXlrb2xhLg0K
Pj4NCj4+IE15a29sYSBLdmFjaCA8eGFrZXAuYW1hdG9wQGdtYWlsLmNvbT4gd3JpdGVzOg0KPj4N
Cj4+ID4gRnJvbTogTXlrb2xhIEt2YWNoIDxteWtvbGFfa3ZhY2hAZXBhbS5jb20+DQo+PiA+DQo+
PiA+IEFkZCBzdXBwb3J0IGZvciB0aGUgUFNDSSBTWVNURU1fU1VTUEVORCBmdW5jdGlvbiBpbiB0
aGUgdlBTQ0kgaW50ZXJmYWNlLA0KPj4gPiBhbGxvd2luZyBndWVzdHMgdG8gcmVxdWVzdCBzdXNw
ZW5kIHZpYSB0aGUgUFNDSSB2MS4wKyBTWVNURU1fU1VTUEVORCBjYWxsDQo+PiA+IChib3RoIDMy
LWJpdCBhbmQgNjQtYml0IHZhcmlhbnRzKS4NCj4+ID4NCj4+ID4gSW1wbGVtZW50YXRpb24gZGV0
YWlsczoNCj4+ID4gLSBBZGQgU1lTVEVNX1NVU1BFTkQgZnVuY3Rpb24gSURzIHRvIFBTQ0kgZGVm
aW5pdGlvbnMNCj4+ID4gLSBUcmFwIGFuZCBoYW5kbGUgU1lTVEVNX1NVU1BFTkQgaW4gdlBTQ0kN
Cj4+ID4gLSBBbGxvdyBvbmx5IG5vbi1oYXJkd2FyZSBkb21haW5zIHRvIGludm9rZSBTWVNURU1f
U1VTUEVORDsgcmV0dXJuDQo+PiA+ICAgUFNDSV9OT1RfU1VQUE9SVEVEIGZvciB0aGUgaGFyZHdh
cmUgZG9tYWluIHRvIGF2b2lkIGhhbHRpbmcgdGhlIHN5c3RlbQ0KPj4gPiAgIGluIGh3ZG9tX3No
dXRkb3duKCkgdmlhIGRvbWFpbl9zaHV0ZG93bg0KPj4gPiAtIFJlcXVpcmUgYWxsIHNlY29uZGFy
eSBWQ1BVcyBvZiB0aGUgY2FsbGluZyBkb21haW4gdG8gYmUgb2ZmbGluZSBiZWZvcmUNCj4+ID4g
ICBzdXNwZW5kLCBhcyBtYW5kYXRlZCBieSB0aGUgUFNDSSBzcGVjaWZpY2F0aW9uDQo+PiA+DQo+
PiA+IFRoZSBhcmNoX2RvbWFpbl9yZXN1bWUoKSBmdW5jdGlvbiBpcyBhbiBhcmNoaXRlY3R1cmUt
c3BlY2lmaWMgaG9vayB0aGF0IGlzDQo+PiA+IGludm9rZWQgZHVyaW5nIGRvbWFpbiByZXN1bWUg
dG8gcGVyZm9ybSBhbnkgbmVjZXNzYXJ5IHNldHVwIG9yIHJlc3RvcmF0aW9uDQo+PiA+IHN0ZXBz
IHJlcXVpcmVkIGJ5IHRoZSBwbGF0Zm9ybS4gYXJjaF9kb21haW5fcmVzdW1lKCkgc3RheXMgaW50
IHRvIHByb3BhZ2F0ZQ0KPj4gPiBlcnJuby1zdHlsZSBkZXRhaWwgaW50byBjb21tb24gbG9nZ2lu
ZzsgcHJlc2VydmluZyB0aGUgaW50ZWdlciBrZWVwcyB0aGUNCj4+ID4gcmVhc29uIHZpc2libGUg
YW5kIGxlYXZlcyByb29tIGZvciBmdXR1cmUgYXJjaC1zcGVjaWZpYyBmYWlsdXJlcyBvciByaWNo
ZXINCj4+ID4gaGFuZGxpbmcuDQo+PiA+DQo+PiA+IFRoZSBuZXcgdnBzY2lfdmNwdV91cF9wcmVw
YXJlKCkgaGVscGVyIGlzIGNhbGxlZCBvbiB0aGUgcmVzdW1lIHBhdGggdG8gc2V0IHVwDQo+PiA+
IHRoZSB2Q1BVIGNvbnRleHQgKHN1Y2ggYXMgZW50cnkgcG9pbnQsIHNvbWUgc3lzdGVtIHJlZ3Mg
YW5kIGNvbnRleHQgSUQpIGJlZm9yZQ0KPj4gPiByZXN1bWluZyBhIHN1c3BlbmRlZCBndWVzdC4g
VGhpcyBrZWVwcyBBUk0vdlBTQ0ktc3BlY2lmaWMgbG9naWMgb3V0IG9mIGNvbW1vbg0KPj4gPiBj
b2RlIGFuZCBhdm9pZHMgaW50cnVzaXZlIGNoYW5nZXMgdG8gdGhlIGdlbmVyaWMgcmVzdW1lIGZs
b3cuDQo+PiA+DQo+PiA+IFVzYWdlOg0KPj4gPg0KPj4gPiBGb3IgTGludXgtYmFzZWQgZ3Vlc3Rz
LCBzdXNwZW5kIGNhbiBiZSBpbml0aWF0ZWQgd2l0aDoNCj4+ID4gICAgIGVjaG8gbWVtID4gL3N5
cy9wb3dlci9zdGF0ZQ0KPj4gPiBvciB2aWE6DQo+PiA+ICAgICBzeXN0ZW1jdGwgc3VzcGVuZA0K
Pj4gPg0KPj4gPiBSZXN1bWluZyB0aGUgZ3Vlc3QgaXMgcGVyZm9ybWVkIGZyb20gY29udHJvbCBk
b21haW4gdXNpbmc6DQo+PiA+ICAgICAgIHhsIHJlc3VtZSA8ZG9tYWluPg0KPj4gPg0KPj4gPiBT
aWduZWQtb2ZmLWJ5OiBNeWtvbGEgS3ZhY2ggPG15a29sYV9rdmFjaEBlcGFtLmNvbT4NCj4+ID4g
LS0tDQo+PiA+IENoYW5nZXMgaW4gVjE2Og0KPj4gPiAtIFJlZmFjdG9yIGVycm9yIGhhbmRsaW5n
IGluIGRvbWFpbl9yZXN1bWU6IG1vdmUgbG9nZ2luZyB0byBnZW5lcmljIGNvZGUsDQo+PiA+ICAg
dXNlIGV4cGxpY2l0IHJldHVybiBjb2RlIGNoZWNraW5nLg0KPj4gPiAtIE1ha2UgY29udGV4dCBj
bGVhcmluZyBjb25kaXRpb25hbCBvbiBzdWNjZXNzIGluIGFyY2hfZG9tYWluX3Jlc3VtZS4NCj4+
ID4gLSBUaGUgJ2ludCcgcmV0dXJuIHR5cGUgaXMgcmV0YWluZWQgZm9yIGFyY2hfZG9tYWluX3Jl
c3VtZSBmb3IgY29uc2lzdGVuY3kNCj4+ID4gICB3aXRoIG90aGVyIGFyY2ggaG9va3MgYW5kIHRv
IGFsbG93IGZvciBzcGVjaWZpYyBuZWdhdGl2ZSBlcnJvciBjb2Rlcy4NCj4+ID4gLS0tDQo+PiA+
ICB4ZW4vYXJjaC9hcm0vZG9tYWluLmMgICAgICAgICAgICAgICAgIHwgIDM5ICsrKysrKysrKw0K
Pj4gPiAgeGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2RvbWFpbi5oICAgICB8ICAgMiArDQo+PiA+
ICB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vcGVyZmNfZGVmbi5oIHwgICAxICsNCj4+ID4gIHhl
bi9hcmNoL2FybS9pbmNsdWRlL2FzbS9wc2NpLmggICAgICAgfCAgIDIgKw0KPj4gPiAgeGVuL2Fy
Y2gvYXJtL2luY2x1ZGUvYXNtL3N1c3BlbmQuaCAgICB8ICAyNyArKysrKysNCj4+ID4gIHhlbi9h
cmNoL2FybS9pbmNsdWRlL2FzbS92cHNjaS5oICAgICAgfCAgIDUgKy0NCj4+ID4gIHhlbi9hcmNo
L2FybS92cHNjaS5jICAgICAgICAgICAgICAgICAgfCAxMTYgKysrKysrKysrKysrKysrKysrKysr
LS0tLS0NCj4+ID4gIHhlbi9jb21tb24vZG9tYWluLmMgICAgICAgICAgICAgICAgICAgfCAgMTAg
KysrDQo+PiA+ICB4ZW4vaW5jbHVkZS94ZW4vc3VzcGVuZC5oICAgICAgICAgICAgIHwgIDI1ICsr
KysrKw0KPj4gPiAgOSBmaWxlcyBjaGFuZ2VkLCAyMDUgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRp
b25zKC0pDQo+PiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNt
L3N1c3BlbmQuaA0KPj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9pbmNsdWRlL3hlbi9zdXNw
ZW5kLmgNCj4+ID4NCj4+ID4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9kb21haW4uYyBiL3hl
bi9hcmNoL2FybS9kb21haW4uYw0KPj4gPiBpbmRleCA0Nzk3M2Y5OWQ5Li5mOTAzZTdkNGYwIDEw
MDY0NA0KPj4gPiAtLS0gYS94ZW4vYXJjaC9hcm0vZG9tYWluLmMNCj4+ID4gKysrIGIveGVuL2Fy
Y2gvYXJtL2RvbWFpbi5jDQo+PiA+IEBAIC0xMiw2ICsxMiw4IEBADQo+PiA+ICAjaW5jbHVkZSA8
eGVuL3NvZnRpcnEuaD4NCj4+ID4gICNpbmNsdWRlIDx4ZW4vd2FpdC5oPg0KPj4gPg0KPj4gPiAr
I2luY2x1ZGUgPHB1YmxpYy9zY2hlZC5oPg0KPj4gPiArDQo+PiA+ICAjaW5jbHVkZSA8YXNtL2Fy
bTY0L3N2ZS5oPg0KPj4gPiAgI2luY2x1ZGUgPGFzbS9jcHVlcnJhdGEuaD4NCj4+ID4gICNpbmNs
dWRlIDxhc20vY3B1ZmVhdHVyZS5oPg0KPj4gPiBAQCAtMjQsMTAgKzI2LDEyIEBADQo+PiA+ICAj
aW5jbHVkZSA8YXNtL3BsYXRmb3JtLmg+DQo+PiA+ICAjaW5jbHVkZSA8YXNtL3Byb2NpbmZvLmg+
DQo+PiA+ICAjaW5jbHVkZSA8YXNtL3JlZ3MuaD4NCj4+ID4gKyNpbmNsdWRlIDxhc20vc3VzcGVu
ZC5oPg0KPj4gPiAgI2luY2x1ZGUgPGFzbS9maXJtd2FyZS9zY2kuaD4NCj4+ID4gICNpbmNsdWRl
IDxhc20vdGVlL3RlZS5oPg0KPj4gPiAgI2luY2x1ZGUgPGFzbS92ZnAuaD4NCj4+ID4gICNpbmNs
dWRlIDxhc20vdmdpYy5oPg0KPj4gPiArI2luY2x1ZGUgPGFzbS92cHNjaS5oPg0KPj4gPiAgI2lu
Y2x1ZGUgPGFzbS92dGltZXIuaD4NCj4+ID4NCj4+ID4gICNpbmNsdWRlICJ2cGNpLmgiDQo+PiA+
IEBAIC04NTEsNiArODU1LDQxIEBAIHZvaWQgYXJjaF9kb21haW5fY3JlYXRpb25fZmluaXNoZWQo
c3RydWN0IGRvbWFpbiAqZCkNCj4+ID4gICAgICBwMm1fZG9tYWluX2NyZWF0aW9uX2ZpbmlzaGVk
KGQpOw0KPj4gPiAgfQ0KPj4gPg0KPj4gPiAraW50IGFyY2hfZG9tYWluX3Jlc3VtZShzdHJ1Y3Qg
ZG9tYWluICpkKQ0KPj4gPiArew0KPj4gPiArICAgIGludCByYzsNCj4+ID4gKyAgICBzdHJ1Y3Qg
cmVzdW1lX2luZm8gKmN0eCA9ICZkLT5hcmNoLnJlc3VtZV9jdHg7DQo+PiA+ICsNCj4+ID4gKyAg
ICBpZiAoICFkLT5pc19zaHV0dGluZ19kb3duIHx8IGQtPnNodXRkb3duX2NvZGUgIT0gU0hVVERP
V05fc3VzcGVuZCApDQo+PiA+ICsgICAgew0KPj4gPiArICAgICAgICBkcHJpbnRrKFhFTkxPR19X
QVJOSU5HLA0KPj4gPiArICAgICAgICAgICAgICAgICIlcGQ6IEludmFsaWQgZG9tYWluIHN0YXRl
IGZvciByZXN1bWU6IGlzX3NodXR0aW5nX2Rvd249JXUsIHNodXRkb3duX2NvZGU9JXVcbiIsDQo+
PiA+ICsgICAgICAgICAgICAgICAgZCwgZC0+aXNfc2h1dHRpbmdfZG93biwgZC0+c2h1dGRvd25f
Y29kZSk7DQo+PiA+ICsgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPj4gPiArICAgIH0NCj4+ID4g
Kw0KPj4gPiArICAgIC8qDQo+PiA+ICsgICAgICogSXQgaXMgc3RpbGwgcG9zc2libGUgdG8gY2Fs
bCBkb21haW5fc2h1dGRvd24oKSB3aXRoIGEgc3VzcGVuZCByZWFzb24NCj4+ID4gKyAgICAgKiB2
aWEgc29tZSBoeXBlcmNhbGxzLCBzdWNoIGFzIFNDSEVET1Bfc2h1dGRvd24gb3IgU0NIRURPUF9y
ZW1vdGVfc2h1dGRvd24uDQo+PiA+ICsgICAgICogSW4gdGhlc2UgY2FzZXMsIHRoZSByZXN1bWUg
Y29udGV4dCB3aWxsIGJlIGVtcHR5Lg0KPj4gPiArICAgICAqIFRoaXMgaXMgbm90IGV4cGVjdGVk
IHRvIGNhdXNlIGFueSBpc3N1ZXMsIHNvIHdlIGp1c3Qgbm90aWZ5IGFib3V0IHRoZQ0KPj4gPiAr
ICAgICAqIHNpdHVhdGlvbiBhbmQgcmV0dXJuIHdpdGhvdXQgZXJyb3IsIGFsbG93aW5nIHRoZSBl
eGlzdGluZyBsb2dpYyB0bw0KPj4gPiArICAgICAqIHByb2NlZWQgYXMgZXhwZWN0ZWQuDQo+PiA+
ICsgICAgICovDQo+PiA+ICsgICAgaWYgKCAhY3R4LT53YWtlX2NwdSApDQo+PiA+ICsgICAgew0K
Pj4gPiArICAgICAgICBkcHJpbnRrKFhFTkxPR19JTkZPLCAiJXBkOiBXYWtlIENQVSBwb2ludGVy
IGNvbnRleHQgd2FzIG5vdCBwcm92aWRlZFxuIiwNCj4+ID4gKyAgICAgICAgICAgICAgICBkKTsN
Cj4+ID4gKyAgICAgICAgcmV0dXJuIDA7DQo+PiA+ICsgICAgfQ0KPj4gPiArDQo+PiA+ICsgICAg
cmMgPSB2cHNjaV92Y3B1X3VwX3ByZXBhcmUoY3R4LT53YWtlX2NwdSAsIGN0eC0+ZXAsIGN0eC0+
Y2lkKTsNCj4+ID4gKyAgICBpZiAoICFyYyApDQo+PiA+ICsgICAgICAgIG1lbXNldChjdHgsIDAs
IHNpemVvZigqY3R4KSk7DQo+PiA+ICsNCj4+ID4gKyAgICByZXR1cm4gcmM7DQo+PiA+ICt9DQo+
PiA+ICsNCj4+ID4gIHN0YXRpYyBpbnQgaXNfZ3Vlc3RfcHYzMl9wc3IodWludDMyX3QgcHNyKQ0K
Pj4gPiAgew0KPj4gPiAgICAgIHN3aXRjaCAocHNyICYgUFNSX01PREVfTUFTSykNCj4+ID4gZGlm
ZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9kb21haW4uaCBiL3hlbi9hcmNoL2Fy
bS9pbmNsdWRlL2FzbS9kb21haW4uaA0KPj4gPiBpbmRleCA3NThhZDgwN2U0Li42NmIxMjQ2ODky
IDEwMDY0NA0KPj4gPiAtLS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vZG9tYWluLmgNCj4+
ID4gKysrIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2RvbWFpbi5oDQo+PiA+IEBAIC01LDYg
KzUsNyBAQA0KPj4gPiAgI2luY2x1ZGUgPHhlbi90aW1lci5oPg0KPj4gPiAgI2luY2x1ZGUgPGFz
bS9wYWdlLmg+DQo+PiA+ICAjaW5jbHVkZSA8YXNtL3AybS5oPg0KPj4gPiArI2luY2x1ZGUgPGFz
bS9zdXNwZW5kLmg+DQo+PiA+ICAjaW5jbHVkZSA8YXNtL3ZmcC5oPg0KPj4gPiAgI2luY2x1ZGUg
PGFzbS9tbWlvLmg+DQo+PiA+ICAjaW5jbHVkZSA8YXNtL2dpYy5oPg0KPj4gPiBAQCAtMTI2LDYg
KzEyNyw3IEBAIHN0cnVjdCBhcmNoX2RvbWFpbg0KPj4gPiAgICAgIHZvaWQgKnNjaV9kYXRhOw0K
Pj4gPiAgI2VuZGlmDQo+PiA+DQo+PiA+ICsgICAgc3RydWN0IHJlc3VtZV9pbmZvIHJlc3VtZV9j
dHg7DQo+PiA+ICB9ICBfX2NhY2hlbGluZV9hbGlnbmVkOw0KPj4gPg0KPj4gPiAgc3RydWN0IGFy
Y2hfdmNwdQ0KPj4gPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3BlcmZj
X2RlZm4uaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9wZXJmY19kZWZuLmgNCj4+ID4gaW5k
ZXggZWZmZDI1YjY5ZS4uOGRmY2FjN2UzYiAxMDA2NDQNCj4+ID4gLS0tIGEveGVuL2FyY2gvYXJt
L2luY2x1ZGUvYXNtL3BlcmZjX2RlZm4uaA0KPj4gPiArKysgYi94ZW4vYXJjaC9hcm0vaW5jbHVk
ZS9hc20vcGVyZmNfZGVmbi5oDQo+PiA+IEBAIC0zMyw2ICszMyw3IEBAIFBFUkZDT1VOVEVSKHZw
c2NpX3N5c3RlbV9yZXNldCwgICAgICAgICJ2cHNjaTogc3lzdGVtX3Jlc2V0IikNCj4+ID4gIFBF
UkZDT1VOVEVSKHZwc2NpX2NwdV9zdXNwZW5kLCAgICAgICAgICJ2cHNjaTogY3B1X3N1c3BlbmQi
KQ0KPj4gPiAgUEVSRkNPVU5URVIodnBzY2lfY3B1X2FmZmluaXR5X2luZm8sICAgInZwc2NpOiBj
cHVfYWZmaW5pdHlfaW5mbyIpDQo+PiA+ICBQRVJGQ09VTlRFUih2cHNjaV9mZWF0dXJlcywgICAg
ICAgICAgICAidnBzY2k6IGZlYXR1cmVzIikNCj4+ID4gK1BFUkZDT1VOVEVSKHZwc2NpX3N5c3Rl
bV9zdXNwZW5kLCAgICAgICJ2cHNjaTogc3lzdGVtX3N1c3BlbmQiKQ0KPj4gPg0KPj4gPiAgUEVS
RkNPVU5URVIodmNwdV9raWNrLCAgICAgICAgICAgICAgICAgInZjcHU6IG5vdGlmeSBvdGhlciB2
Y3B1IikNCj4+ID4NCj4+ID4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9w
c2NpLmggYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vcHNjaS5oDQo+PiA+IGluZGV4IDQ3ODA5
NzI2MjEuLjQ4YTkzZTZiNzkgMTAwNjQ0DQo+PiA+IC0tLSBhL3hlbi9hcmNoL2FybS9pbmNsdWRl
L2FzbS9wc2NpLmgNCj4+ID4gKysrIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3BzY2kuaA0K
Pj4gPiBAQCAtNDcsMTAgKzQ3LDEyIEBAIHZvaWQgY2FsbF9wc2NpX3N5c3RlbV9yZXNldCh2b2lk
KTsNCj4+ID4gICNkZWZpbmUgUFNDSV8wXzJfRk4zMl9TWVNURU1fT0ZGICAgICAgICAgIFBTQ0lf
MF8yX0ZOMzIoOCkNCj4+ID4gICNkZWZpbmUgUFNDSV8wXzJfRk4zMl9TWVNURU1fUkVTRVQgICAg
ICAgIFBTQ0lfMF8yX0ZOMzIoOSkNCj4+ID4gICNkZWZpbmUgUFNDSV8xXzBfRk4zMl9QU0NJX0ZF
QVRVUkVTICAgICAgIFBTQ0lfMF8yX0ZOMzIoMTApDQo+PiA+ICsjZGVmaW5lIFBTQ0lfMV8wX0ZO
MzJfU1lTVEVNX1NVU1BFTkQgICAgICBQU0NJXzBfMl9GTjMyKDE0KQ0KPj4gPg0KPj4gPiAgI2Rl
ZmluZSBQU0NJXzBfMl9GTjY0X0NQVV9TVVNQRU5EICAgICAgICAgUFNDSV8wXzJfRk42NCgxKQ0K
Pj4gPiAgI2RlZmluZSBQU0NJXzBfMl9GTjY0X0NQVV9PTiAgICAgICAgICAgICAgUFNDSV8wXzJf
Rk42NCgzKQ0KPj4gPiAgI2RlZmluZSBQU0NJXzBfMl9GTjY0X0FGRklOSVRZX0lORk8gICAgICAg
UFNDSV8wXzJfRk42NCg0KQ0KPj4gPiArI2RlZmluZSBQU0NJXzFfMF9GTjY0X1NZU1RFTV9TVVNQ
RU5EICAgICAgUFNDSV8wXzJfRk42NCgxNCkNCj4+ID4NCj4+ID4gIC8qIFBTQ0kgdjAuMiBhZmZp
bml0eSBsZXZlbCBzdGF0ZSByZXR1cm5lZCBieSBBRkZJTklUWV9JTkZPICovDQo+PiA+ICAjZGVm
aW5lIFBTQ0lfMF8yX0FGRklOSVRZX0xFVkVMX09OICAgICAgMA0KPj4gPiBkaWZmIC0tZ2l0IGEv
eGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3N1c3BlbmQuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRl
L2FzbS9zdXNwZW5kLmgNCj4+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+ID4gaW5kZXggMDAw
MDAwMDAwMC4uMzEzZDAzZWE1OQ0KPj4gPiAtLS0gL2Rldi9udWxsDQo+PiA+ICsrKyBiL3hlbi9h
cmNoL2FybS9pbmNsdWRlL2FzbS9zdXNwZW5kLmgNCj4+ID4gQEAgLTAsMCArMSwyNyBAQA0KPj4g
PiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqLw0KPj4gPiArDQo+
PiA+ICsjaWZuZGVmIEFSTV9TVVNQRU5EX0gNCj4+ID4gKyNkZWZpbmUgQVJNX1NVU1BFTkRfSA0K
Pj4gPiArDQo+PiA+ICtzdHJ1Y3QgZG9tYWluOw0KPj4gPiArc3RydWN0IHZjcHU7DQo+PiA+ICsN
Cj4+ID4gK3N0cnVjdCByZXN1bWVfaW5mbyB7DQo+PiA+ICsgICAgcmVnaXN0ZXJfdCBlcDsNCj4+
ID4gKyAgICByZWdpc3Rlcl90IGNpZDsNCj4+ID4gKyAgICBzdHJ1Y3QgdmNwdSAqd2FrZV9jcHU7
DQo+PiA+ICt9Ow0KPj4gPiArDQo+PiA+ICtpbnQgYXJjaF9kb21haW5fcmVzdW1lKHN0cnVjdCBk
b21haW4gKmQpOw0KPj4gPiArDQo+PiA+ICsjZW5kaWYgLyogQVJNX1NVU1BFTkRfSCAqLw0KPj4g
PiArDQo+PiA+ICsvKg0KPj4gPiArICogTG9jYWwgdmFyaWFibGVzOg0KPj4gPiArICogbW9kZTog
Qw0KPj4gPiArICogYy1maWxlLXN0eWxlOiAiQlNEIg0KPj4gPiArICogYy1iYXNpYy1vZmZzZXQ6
IDQNCj4+ID4gKyAqIHRhYi13aWR0aDogNA0KPj4gPiArICogaW5kZW50LXRhYnMtbW9kZTogbmls
DQo+PiA+ICsgKiBFbmQ6DQo+PiA+ICsgKi8NCj4+ID4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2Fy
bS9pbmNsdWRlL2FzbS92cHNjaS5oIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3Zwc2NpLmgN
Cj4+ID4gaW5kZXggMGNjYTVlNjgzMC4uZDc5MGFiMzcxNSAxMDA2NDQNCj4+ID4gLS0tIGEveGVu
L2FyY2gvYXJtL2luY2x1ZGUvYXNtL3Zwc2NpLmgNCj4+ID4gKysrIGIveGVuL2FyY2gvYXJtL2lu
Y2x1ZGUvYXNtL3Zwc2NpLmgNCj4+ID4gQEAgLTIzLDEyICsyMywxNSBAQA0KPj4gPiAgI2luY2x1
ZGUgPGFzbS9wc2NpLmg+DQo+PiA+DQo+PiA+ICAvKiBOdW1iZXIgb2YgZnVuY3Rpb24gaW1wbGVt
ZW50ZWQgYnkgdmlydHVhbCBQU0NJIChvbmx5IDAuMiBvciBsYXRlcikgKi8NCj4+ID4gLSNkZWZp
bmUgVlBTQ0lfTlJfRlVOQ1MgIDEyDQo+PiA+ICsjZGVmaW5lIFZQU0NJX05SX0ZVTkNTICAxNA0K
Pj4gPg0KPj4gPiAgLyogRnVuY3Rpb25zIGhhbmRsZSBQU0NJIGNhbGxzIGZyb20gdGhlIGd1ZXN0
cyAqLw0KPj4gPiAgYm9vbCBkb192cHNjaV8wXzFfY2FsbChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAq
cmVncywgdWludDMyX3QgZmlkKTsNCj4+ID4gIGJvb2wgZG9fdnBzY2lfMF8yX2NhbGwoc3RydWN0
IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIHVpbnQzMl90IGZpZCk7DQo+PiA+DQo+PiA+ICtpbnQgdnBz
Y2lfdmNwdV91cF9wcmVwYXJlKHN0cnVjdCB2Y3B1ICp2LCByZWdpc3Rlcl90IGVudHJ5X3BvaW50
LA0KPj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpc3Rlcl90IGNvbnRleHRfaWQp
Ow0KPj4gPiArDQo+PiA+ICAjZW5kaWYgLyogX19BU01fVlBTQ0lfSF9fICovDQo+PiA+DQo+PiA+
ICAvKg0KPj4gPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3Zwc2NpLmMgYi94ZW4vYXJjaC9h
cm0vdnBzY2kuYw0KPj4gPiBpbmRleCA3YmE5Y2NkOTRiLi5jNGQ2MTZlYzY4IDEwMDY0NA0KPj4g
PiAtLS0gYS94ZW4vYXJjaC9hcm0vdnBzY2kuYw0KPj4gPiArKysgYi94ZW4vYXJjaC9hcm0vdnBz
Y2kuYw0KPj4gPiBAQCAtMTAsMzIgKzEwLDE2IEBADQo+PiA+DQo+PiA+ICAjaW5jbHVkZSA8cHVi
bGljL3NjaGVkLmg+DQo+PiA+DQo+PiA+IC1zdGF0aWMgaW50IGRvX2NvbW1vbl9jcHVfb24ocmVn
aXN0ZXJfdCB0YXJnZXRfY3B1LCByZWdpc3Rlcl90IGVudHJ5X3BvaW50LA0KPj4gPiAtICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyX3QgY29udGV4dF9pZCkNCj4+ID4gK2ludCB2
cHNjaV92Y3B1X3VwX3ByZXBhcmUoc3RydWN0IHZjcHUgKnYsIHJlZ2lzdGVyX3QgZW50cnlfcG9p
bnQsDQo+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyX3QgY29udGV4dF9p
ZCkNCj4+ID4gIHsNCj4+ID4gLSAgICBzdHJ1Y3QgdmNwdSAqdjsNCj4+ID4gLSAgICBzdHJ1Y3Qg
ZG9tYWluICpkID0gY3VycmVudC0+ZG9tYWluOw0KPj4gPiAtICAgIHN0cnVjdCB2Y3B1X2d1ZXN0
X2NvbnRleHQgKmN0eHQ7DQo+PiA+ICAgICAgaW50IHJjOw0KPj4gPiArICAgIHN0cnVjdCBkb21h
aW4gKmQgPSB2LT5kb21haW47DQo+PiA+ICAgICAgYm9vbCBpc190aHVtYiA9IGVudHJ5X3BvaW50
ICYgMTsNCj4+ID4gLSAgICByZWdpc3Rlcl90IHZjcHVpZDsNCj4+ID4gLQ0KPj4gPiAtICAgIHZj
cHVpZCA9IHZhZmZpbml0eV90b192Y3B1aWQodGFyZ2V0X2NwdSk7DQo+PiA+IC0NCj4+ID4gLSAg
ICBpZiAoICh2ID0gZG9tYWluX3ZjcHUoZCwgdmNwdWlkKSkgPT0gTlVMTCApDQo+PiA+IC0gICAg
ICAgIHJldHVybiBQU0NJX0lOVkFMSURfUEFSQU1FVEVSUzsNCj4+ID4gLQ0KPj4gPiAtICAgIC8q
IFRIVU1CIHNldCBpcyBub3QgYWxsb3dlZCB3aXRoIDY0LWJpdCBkb21haW4gKi8NCj4+ID4gLSAg
ICBpZiAoIGlzXzY0Yml0X2RvbWFpbihkKSAmJiBpc190aHVtYiApDQo+PiA+IC0gICAgICAgIHJl
dHVybiBQU0NJX0lOVkFMSURfQUREUkVTUzsNCj4+ID4gLQ0KPj4gPiAtICAgIGlmICggIXRlc3Rf
Yml0KF9WUEZfZG93biwgJnYtPnBhdXNlX2ZsYWdzKSApDQo+PiA+IC0gICAgICAgIHJldHVybiBQ
U0NJX0FMUkVBRFlfT047DQo+PiA+ICsgICAgc3RydWN0IHZjcHVfZ3Vlc3RfY29udGV4dCAqY3R4
dDsNCj4+ID4NCj4+ID4gICAgICBpZiAoIChjdHh0ID0gYWxsb2NfdmNwdV9ndWVzdF9jb250ZXh0
KCkpID09IE5VTEwgKQ0KPj4gPiAtICAgICAgICByZXR1cm4gUFNDSV9ERU5JRUQ7DQo+PiA+IC0N
Cj4+ID4gLSAgICB2Z2ljX2NsZWFyX3BlbmRpbmdfaXJxcyh2KTsNCj4+ID4gKyAgICAgICAgcmV0
dXJuIC1FTk9NRU07DQo+PiA+DQo+PiA+ICAgICAgbWVtc2V0KGN0eHQsIDAsIHNpemVvZigqY3R4
dCkpOw0KPj4gPiAgICAgIGN0eHQtPnVzZXJfcmVncy5wYzY0ID0gKHU2NCkgZW50cnlfcG9pbnQ7
DQo+PiA+IEBAIC03Niw4ICs2MCwzNyBAQCBzdGF0aWMgaW50IGRvX2NvbW1vbl9jcHVfb24ocmVn
aXN0ZXJfdCB0YXJnZXRfY3B1LCByZWdpc3Rlcl90IGVudHJ5X3BvaW50LA0KPj4gPiAgICAgIGZy
ZWVfdmNwdV9ndWVzdF9jb250ZXh0KGN0eHQpOw0KPj4gPg0KPj4gPiAgICAgIGlmICggcmMgPCAw
ICkNCj4+ID4gKyAgICAgICAgcmV0dXJuIHJjOw0KPj4gPiArDQo+PiA+ICsgICAgcmV0dXJuIDA7
DQo+PiA+ICt9DQo+PiA+ICsNCj4+ID4gK3N0YXRpYyBpbnQgZG9fY29tbW9uX2NwdV9vbihyZWdp
c3Rlcl90IHRhcmdldF9jcHUsIHJlZ2lzdGVyX3QgZW50cnlfcG9pbnQsDQo+PiA+ICsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJfdCBjb250ZXh0X2lkKQ0KPj4gPiArew0KPj4g
PiArICAgIHN0cnVjdCB2Y3B1ICp2Ow0KPj4gPiArICAgIHN0cnVjdCBkb21haW4gKmQgPSBjdXJy
ZW50LT5kb21haW47DQo+PiA+ICsgICAgaW50IHJjOw0KPj4gPiArICAgIGJvb2wgaXNfdGh1bWIg
PSBlbnRyeV9wb2ludCAmIDE7DQo+PiA+ICsgICAgcmVnaXN0ZXJfdCB2Y3B1aWQ7DQo+PiA+ICsN
Cj4+ID4gKyAgICB2Y3B1aWQgPSB2YWZmaW5pdHlfdG9fdmNwdWlkKHRhcmdldF9jcHUpOw0KPj4g
PiArDQo+PiA+ICsgICAgaWYgKCAodiA9IGRvbWFpbl92Y3B1KGQsIHZjcHVpZCkpID09IE5VTEwg
KQ0KPj4gPiArICAgICAgICByZXR1cm4gUFNDSV9JTlZBTElEX1BBUkFNRVRFUlM7DQo+PiA+ICsN
Cj4+ID4gKyAgICAvKiBUSFVNQiBzZXQgaXMgbm90IGFsbG93ZWQgd2l0aCA2NC1iaXQgZG9tYWlu
ICovDQo+PiA+ICsgICAgaWYgKCBpc182NGJpdF9kb21haW4oZCkgJiYgaXNfdGh1bWIgKQ0KPj4g
PiArICAgICAgICByZXR1cm4gUFNDSV9JTlZBTElEX0FERFJFU1M7DQo+PiA+ICsNCj4+ID4gKyAg
ICBpZiAoICF0ZXN0X2JpdChfVlBGX2Rvd24sICZ2LT5wYXVzZV9mbGFncykgKQ0KPj4gPiArICAg
ICAgICByZXR1cm4gUFNDSV9BTFJFQURZX09OOw0KPj4gPiArDQo+PiA+ICsgICAgcmMgPSB2cHNj
aV92Y3B1X3VwX3ByZXBhcmUodiwgZW50cnlfcG9pbnQsIGNvbnRleHRfaWQpOw0KPj4gPiArICAg
IGlmICggcmMgKQ0KPj4gPiAgICAgICAgICByZXR1cm4gUFNDSV9ERU5JRUQ7DQo+PiA+DQo+PiA+
ICsgICAgdmdpY19jbGVhcl9wZW5kaW5nX2lycXModik7DQo+PiA+ICAgICAgdmNwdV93YWtlKHYp
Ow0KPj4gPg0KPj4gPiAgICAgIHJldHVybiBQU0NJX1NVQ0NFU1M7DQo+PiA+IEBAIC0xOTcsNiAr
MjEwLDQ4IEBAIHN0YXRpYyB2b2lkIGRvX3BzY2lfMF8yX3N5c3RlbV9yZXNldCh2b2lkKQ0KPj4g
PiAgICAgIGRvbWFpbl9zaHV0ZG93bihkLFNIVVRET1dOX3JlYm9vdCk7DQo+PiA+ICB9DQo+PiA+
DQo+PiA+ICtzdGF0aWMgaW50MzJfdCBkb19wc2NpXzFfMF9zeXN0ZW1fc3VzcGVuZChyZWdpc3Rl
cl90IGVwb2ludCwgcmVnaXN0ZXJfdCBjaWQpDQo+PiA+ICt7DQo+PiA+ICsgICAgaW50MzJfdCBy
YzsNCj4+ID4gKyAgICBzdHJ1Y3QgdmNwdSAqdjsNCj4+ID4gKyAgICBzdHJ1Y3QgZG9tYWluICpk
ID0gY3VycmVudC0+ZG9tYWluOw0KPj4gPiArICAgIGJvb2wgaXNfdGh1bWIgPSBlcG9pbnQgJiAx
Ow0KPj4gPiArDQo+PiA+ICsgICAgLyogVEhVTUIgc2V0IGlzIG5vdCBhbGxvd2VkIHdpdGggNjQt
Yml0IGRvbWFpbiAqLw0KPj4gPiArICAgIGlmICggaXNfNjRiaXRfZG9tYWluKGQpICYmIGlzX3Ro
dW1iICkNCj4+ID4gKyAgICAgICAgcmV0dXJuIFBTQ0lfSU5WQUxJRF9BRERSRVNTOw0KPj4gPiAr
DQo+PiA+ICsgICAgLyogU1lTVEVNX1NVU1BFTkQgaXMgbm90IHN1cHBvcnRlZCBmb3IgdGhlIGhh
cmR3YXJlIGRvbWFpbiB5ZXQgKi8NCj4+ID4gKyAgICBpZiAoIGlzX2hhcmR3YXJlX2RvbWFpbihk
KSApDQo+PiA+ICsgICAgICAgIHJldHVybiBQU0NJX05PVF9TVVBQT1JURUQ7DQo+PiA+ICsNCj4+
ID4gKyAgICAvKiBFbnN1cmUgdGhhdCBhbGwgQ1BVcyBvdGhlciB0aGFuIHRoZSBjYWxsaW5nIG9u
ZSBhcmUgb2ZmbGluZSAqLw0KPj4gPiArICAgIGRvbWFpbl9sb2NrKGQpOw0KPj4gPiArICAgIGZv
cl9lYWNoX3ZjcHUgKCBkLCB2ICkNCj4+ID4gKyAgICB7DQo+PiA+ICsgICAgICAgIGlmICggdiAh
PSBjdXJyZW50ICYmIGlzX3ZjcHVfb25saW5lKHYpICkNCj4+ID4gKyAgICAgICAgew0KPj4gPiAr
ICAgICAgICAgICAgZG9tYWluX3VubG9jayhkKTsNCj4+ID4gKyAgICAgICAgICAgIHJldHVybiBQ
U0NJX0RFTklFRDsNCj4+ID4gKyAgICAgICAgfQ0KPj4gPiArICAgIH0NCj4+ID4gKyAgICBkb21h
aW5fdW5sb2NrKGQpOw0KPj4gPiArDQo+PiA+ICsgICAgcmMgPSBkb21haW5fc2h1dGRvd24oZCwg
U0hVVERPV05fc3VzcGVuZCk7DQo+PiA+ICsgICAgaWYgKCByYyApDQo+PiA+ICsgICAgICAgIHJl
dHVybiBQU0NJX0RFTklFRDsNCj4+ID4gKw0KPj4gPiArICAgIGQtPmFyY2gucmVzdW1lX2N0eC5l
cCA9IGVwb2ludDsNCj4+ID4gKyAgICBkLT5hcmNoLnJlc3VtZV9jdHguY2lkID0gY2lkOw0KPj4g
PiArICAgIGQtPmFyY2gucmVzdW1lX2N0eC53YWtlX2NwdSA9IGN1cnJlbnQ7DQo+PiA+ICsNCj4+
ID4gKyAgICBncHJpbnRrKFhFTkxPR19ERUJVRywNCj4+ID4gKyAgICAgICAgICAgICJTWVNURU1f
U1VTUEVORCByZXF1ZXN0ZWQsIGVwb2ludD0lIyJQUklyZWdpc3RlciIsIGNpZD0lIyJQUklyZWdp
c3RlciJcbiIsDQo+PiA+ICsgICAgICAgICAgICBlcG9pbnQsIGNpZCk7DQo+PiA+ICsNCj4+ID4g
KyAgICByZXR1cm4gcmM7DQo+PiA+ICt9DQo+PiA+ICsNCj4+ID4gIHN0YXRpYyBpbnQzMl90IGRv
X3BzY2lfMV8wX2ZlYXR1cmVzKHVpbnQzMl90IHBzY2lfZnVuY19pZCkNCj4+ID4gIHsNCj4+ID4g
ICAgICAvKiAvIVwgT3JkZXJlZCBieSBmdW5jdGlvbiBJRCBhbmQgbm90IG5hbWUgKi8NCj4+ID4g
QEAgLTIxNCw2ICsyNjksOCBAQCBzdGF0aWMgaW50MzJfdCBkb19wc2NpXzFfMF9mZWF0dXJlcyh1
aW50MzJfdCBwc2NpX2Z1bmNfaWQpDQo+PiA+ICAgICAgY2FzZSBQU0NJXzBfMl9GTjMyX1NZU1RF
TV9PRkY6DQo+PiA+ICAgICAgY2FzZSBQU0NJXzBfMl9GTjMyX1NZU1RFTV9SRVNFVDoNCj4+ID4g
ICAgICBjYXNlIFBTQ0lfMV8wX0ZOMzJfUFNDSV9GRUFUVVJFUzoNCj4+ID4gKyAgICBjYXNlIFBT
Q0lfMV8wX0ZOMzJfU1lTVEVNX1NVU1BFTkQ6DQo+PiA+ICsgICAgY2FzZSBQU0NJXzFfMF9GTjY0
X1NZU1RFTV9TVVNQRU5EOg0KPj4gPiAgICAgIGNhc2UgQVJNX1NNQ0NDX1ZFUlNJT05fRklEOg0K
Pj4gPiAgICAgICAgICByZXR1cm4gMDsNCj4+ID4gICAgICBkZWZhdWx0Og0KPj4gPiBAQCAtMzQ0
LDYgKzQwMSwyMyBAQCBib29sIGRvX3Zwc2NpXzBfMl9jYWxsKHN0cnVjdCBjcHVfdXNlcl9yZWdz
ICpyZWdzLCB1aW50MzJfdCBmaWQpDQo+PiA+ICAgICAgICAgIHJldHVybiB0cnVlOw0KPj4gPiAg
ICAgIH0NCj4+ID4NCj4+ID4gKyAgICBjYXNlIFBTQ0lfMV8wX0ZOMzJfU1lTVEVNX1NVU1BFTkQ6
DQo+PiA+ICsgICAgY2FzZSBQU0NJXzFfMF9GTjY0X1NZU1RFTV9TVVNQRU5EOg0KPj4gPiArICAg
IHsNCj4+ID4gKyAgICAgICAgcmVnaXN0ZXJfdCBlcG9pbnQgPSBQU0NJX0FSRyhyZWdzLCAxKTsN
Cj4+ID4gKyAgICAgICAgcmVnaXN0ZXJfdCBjaWQgPSBQU0NJX0FSRyhyZWdzLCAyKTsNCj4+ID4g
Kw0KPj4gPiArICAgICAgICBpZiAoIGZpZCA9PSBQU0NJXzFfMF9GTjMyX1NZU1RFTV9TVVNQRU5E
ICkNCj4+ID4gKyAgICAgICAgew0KPj4gPiArICAgICAgICAgICAgZXBvaW50ICY9IEdFTk1BU0so
MzEsIDApOw0KPj4gPiArICAgICAgICAgICAgY2lkICY9IEdFTk1BU0soMzEsIDApOw0KPj4gPiAr
ICAgICAgICB9DQo+PiA+ICsNCj4+ID4gKyAgICAgICAgcGVyZmNfaW5jcih2cHNjaV9zeXN0ZW1f
c3VzcGVuZCk7DQo+PiA+ICsgICAgICAgIFBTQ0lfU0VUX1JFU1VMVChyZWdzLCBkb19wc2NpXzFf
MF9zeXN0ZW1fc3VzcGVuZChlcG9pbnQsIGNpZCkpOw0KPj4gPiArICAgICAgICByZXR1cm4gdHJ1
ZTsNCj4+ID4gKyAgICB9DQo+PiA+ICsNCj4+ID4gICAgICBkZWZhdWx0Og0KPj4gPiAgICAgICAg
ICByZXR1cm4gZmFsc2U7DQo+PiA+ICAgICAgfQ0KPj4gPiBkaWZmIC0tZ2l0IGEveGVuL2NvbW1v
bi9kb21haW4uYyBiL3hlbi9jb21tb24vZG9tYWluLmMNCj4+ID4gaW5kZXggOTNjNzFiYzc2Ni4u
MDlhZDBhMjZlZSAxMDA2NDQNCj4+ID4gLS0tIGEveGVuL2NvbW1vbi9kb21haW4uYw0KPj4gPiAr
KysgYi94ZW4vY29tbW9uL2RvbWFpbi5jDQo+PiA+IEBAIC0yNiw2ICsyNiw3IEBADQo+PiA+ICAj
aW5jbHVkZSA8eGVuL2h5cGVyY2FsbC5oPg0KPj4gPiAgI2luY2x1ZGUgPHhlbi9kZWxheS5oPg0K
Pj4gPiAgI2luY2x1ZGUgPHhlbi9zaHV0ZG93bi5oPg0KPj4gPiArI2luY2x1ZGUgPHhlbi9zdXNw
ZW5kLmg+DQo+PiA+ICAjaW5jbHVkZSA8eGVuL3BlcmNwdS5oPg0KPj4gPiAgI2luY2x1ZGUgPHhl
bi9tdWx0aWNhbGwuaD4NCj4+ID4gICNpbmNsdWRlIDx4ZW4vcmN1cGRhdGUuaD4NCj4+ID4gQEAg
LTEzNzQsNiArMTM3NSw3IEBAIGludCBkb21haW5fc2h1dGRvd24oc3RydWN0IGRvbWFpbiAqZCwg
dTggcmVhc29uKQ0KPj4gPiAgdm9pZCBkb21haW5fcmVzdW1lKHN0cnVjdCBkb21haW4gKmQpDQo+
PiA+ICB7DQo+PiA+ICAgICAgc3RydWN0IHZjcHUgKnY7DQo+PiA+ICsgICAgaW50IHJjOw0KPj4g
Pg0KPj4gPiAgICAgIC8qDQo+PiA+ICAgICAgICogU29tZSBjb2RlIHBhdGhzIGFzc3VtZSB0aGF0
IHNodXRkb3duIHN0YXR1cyBkb2VzIG5vdCBnZXQgcmVzZXQgdW5kZXINCj4+ID4gQEAgLTEzODMs
NiArMTM4NSwxMyBAQCB2b2lkIGRvbWFpbl9yZXN1bWUoc3RydWN0IGRvbWFpbiAqZCkNCj4+ID4N
Cj4+ID4gICAgICBzcGluX2xvY2soJmQtPnNodXRkb3duX2xvY2spOw0KPj4gPg0KPj4gPiArICAg
IHJjID0gYXJjaF9kb21haW5fcmVzdW1lKGQpOw0KPj4gPiArICAgIGlmICggcmMgKQ0KPj4gPiAr
ICAgIHsNCj4+ID4gKyAgICAgICAgcHJpbnRrKCIlcGQ6IEZhaWxlZCB0byByZXN1bWUgZG9tYWlu
IChyZXQgJWQpXG4iLCBkLCByYyk7DQo+Pg0KPj4gSSBhbSB3b25kZXJpbmcgYWJvdXQgdGhpcyBl
cnJvciBwYXRoLi4uIERvbWFpbiBjbGVhcmx5IGNhbid0IGJlIHJlc3VtZWQNCj4+IGFueW1vcmUu
IFNob3VsZCB3ZSBjcmFzaCBpdCBpbiB0aGlzIGNhc2U/IEJ1dCBkb21haW4gaXMgYWxyZWFkeSBz
aHV0DQo+PiBkb3duLCBzbyBkb21haW5fY3Jhc2goKSB3b3VsZCBkbyBub3RoaW5nLg0KPj4NCj4+
IFByb2JhYmx5IGl0IGlzIGJldHRlciB0byBlbnN1cmUgdGhhdCBhcmNoX2RvbWFpbl9yZXN1bWUo
KSB3aWxsIG5vdA0KPj4gcmV0dXJuIGFuIGVycm9yIGJ5IGRvaW5nIGFsbCByZXF1aXJlZCBjaGVj
a3MgYmVmb3JlaGFuZC4gQWN0dWFsbHkgeW91DQo+PiBhbHJlYWR5IGRvaW5nIHRoaXMuIFNvIGhv
dyB3ZSBjYW4gZ2V0IGFuIGVycm9yIHJlYWxpc3RpY2FsbHk/DQo+DQo+IHZwc2NpX3ZjcHVfdXBf
cHJlcGFyZSgpIGNhbiBzdGlsbCBmYWlsIG9uIHRoZSByZXN1bWUgcGF0aCwgY3VycmVudGx5IGR1
ZQ0KPiB0byBhbGxvY192Y3B1X2d1ZXN0X2NvbnRleHQoKSBvciBhcmNoX3NldF9pbmZvX2d1ZXN0
KCkuDQo+DQo+IFNvIEkgYWdyZWUgd2l0aCB5b3VyIHBvaW50OiBpdCB3b3VsZCBiZSBiZXR0ZXIg
dG8gbW92ZSBhbGwgZmFpbHVyZS1wcm9uZQ0KPiBwcmVwYXJhdGlvbiBhbmQgdmFsaWRhdGlvbiB0
byB0aGUgc3VzcGVuZCBwYXRoLCBzbyB0aGF0DQo+IGFyY2hfZG9tYWluX3Jlc3VtZSgpIGRvZXMg
bm90IG5lZWQgdG8gcmV0dXJuIGFuIGVycm9yIGluIG5vcm1hbA0KPiBvcGVyYXRpb24uDQo+DQo+
IFRoZSBhcHByb2FjaCBJIHNlZSBpczoNCj4gLSBhbGxvY2F0ZSBhbmQgcG9wdWxhdGUgdGhlIGd1
ZXN0IGNvbnRleHQgZHVyaW5nIHN1c3BlbmQ7DQo+IC0gc3BsaXQgYXJjaF9zZXRfaW5mb19ndWVz
dCgpIGludG8gdHdvIHBhcnRzLCBzb21ldGhpbmcgbGlrZQ0KPiAgICAgYXJjaF92YWxpZGF0ZV92
Y3B1X2d1ZXN0X2NvbnRleHQoKSBhbmQNCj4gICAgIGFyY2hfYXBwbHlfdmNwdV9ndWVzdF9jb250
ZXh0KCk7DQo+IC0gY2FsbCBvbmx5IHRoZSB2YWxpZGF0aW9uIHN0ZXAgZHVyaW5nIHN1c3BlbmQ7
DQo+IC0gb24gcmVzdW1lLCBvbmx5IGFwcGx5IHRoZSBhbHJlYWR5IHZhbGlkYXRlZCBndWVzdCBj
b250ZXh0IGFuZCB0aGVuDQo+IGZyZWUgaXQuDQo+DQo+IFRoaXMgc2hvdWxkIG1ha2UgdGhlIHJl
c3VtZSBwYXRoIGVmZmVjdGl2ZWx5IG5vbi1mYWlsaW5nIGFuZCBhdm9pZCB0aGUNCj4gcXVlc3Rp
b25hYmxlIGVycm9yIGhhbmRsaW5nIHRoZXJlLg0KPg0KPiBEb2VzIHRoaXMgc291bmQgbGlrZSB0
aGUgcmlnaHQgZGlyZWN0aW9uPw0KDQpZZXMsIHNvdW5kcyBnb29kIGZvciBtZS4NCg0KLS0gDQpX
QlIsIFZvbG9keW15cg==


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 01:34:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 01:34:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256613.1551146 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w32HG-0006Sd-OZ; Thu, 19 Mar 2026 01:34:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256613.1551146; Thu, 19 Mar 2026 01: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 1w32HG-0006SW-Jv; Thu, 19 Mar 2026 01:34:22 +0000
Received: by outflank-mailman (input) for mailman id 1256613;
 Thu, 19 Mar 2026 01:34:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3tHx=BT=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1w32HF-0006SQ-Rc
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 01:34:21 +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 bf7cfd79-2333-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 02:34:19 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PAVPR03MB9653.eurprd03.prod.outlook.com
 (2603:10a6:102:319::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Thu, 19 Mar
 2026 01:34:10 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3%7]) with mapi id 15.20.9700.020; Thu, 19 Mar 2026
 01:34: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: bf7cfd79-2333-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IPGPY30d4Nn6OH9Fw8GpZRku3oUJYUzri4t0uuQ0waSG+Ndi4rfgnritxHouXg70tLxJQfu287yOwUt14Z23KzUPfOpJhq4PKHS4f7V6/VAXOr8M1RiPF8fiXel1NEKwqDc7TotmcGTsBCmSW4Fbx2kScdXuf1UzUU6NekereQqRnxOhJ31ibnw5sE4um8D9eDYoG9uM7Rcdh0dqAlG6Pf95GJeHXpFLGekBPDx1nqeu2+ucminQkumaVUAMDogGRzOpxop+b6YC280oaOxhGCMVpLpBtk7c6j2xEjXtXFzKW+GrKj9NaH17GBLgmyGI/HxeOUGqsRtcXBbtYEiK5g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Gizkw0lbqJIAHyUoQh5IaArorurwfAP1FDIVo3b4zk4=;
 b=lT01Q2DnS7l20tVARdiaqk6NftoHaxEqFuoux7+z8Irmgt8BSrSewJYm5xNUb6xukm8nHlv29FtQnMwxd6sufkkVJc8BVhc6ILCz/i/8/SWXVkCVB00YQAx13dBiQ/hNpbmhklY6X8XeqOU93Ek0UlQf7U1F5deK6q6Mj7Yg8zxPPC/T6YPYXANvUD2fOCsBSu+1MVHPr4mP9Lht5qUXgDeczGg8lOXaZ3bN8yIC5Lk8P74/5cVa7Hcbx49yoeL3p6/UIZ2SqqRII1lB+JbFW62NMSYHngwrO0tHxO4/uYU+1UWj/ijyKzoUuvB7Y4o/2J7RUC9/5gYBRc0Jb5XNoA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Gizkw0lbqJIAHyUoQh5IaArorurwfAP1FDIVo3b4zk4=;
 b=RF8x4abAjOjJnG6RiJoNueLAS0oUWZ0gRf2FwNx2kI4U1njzkcDuWsvBX/IbazDvhgeElp8ycMRIfAsObHHoG7RnwVew7MUlqOBxWGE3StrN0xmxcKicYXK4y2SDL8n3xsFsrq2o4Mrz8D26BCQEbvtiwPmVEJ/obzYSUqt7FcKNTdyGIfaS7nWfBbzKjF1iMlTlF7uNDFCcUxCkvO9Skdkt9Uq+XQRUmOEB4czZMyLPyEb7rAbQy/LyYOQJuzWwP7JKumxUYSIQ8qEHj9j0JjnNPHlTs+wlXotBQTPespMowUuxPWBmbLe112U+0hhgJffAbgyj8j5N2sI0Tl3aWg==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v6 1/5] arm/irq: Keep track of irq affinities
Thread-Topic: [PATCH v6 1/5] arm/irq: Keep track of irq affinities
Thread-Index: AQHcsgQfYo2+uc7QB0+uZY6Wrq2Bgg==
Date: Thu, 19 Mar 2026 01:34:10 +0000
Message-ID: <877br8k3fy.fsf@epam.com>
References: <cover.1773307749.git.mykyta_poturai@epam.com>
	<733d58a26766a1d15e47447ed4f3cd299dc28cf7.1773307749.git.mykyta_poturai@epam.com>
In-Reply-To:
 <733d58a26766a1d15e47447ed4f3cd299dc28cf7.1773307749.git.mykyta_poturai@epam.com>
	(Mykyta Poturai's message of "Thu, 12 Mar 2026 09:39:29 +0000")
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV1PR03MB10456:EE_|PAVPR03MB9653:EE_
x-ms-office365-filtering-correlation-id: 1406c588-dcb5-4e39-cbcd-08de85579eb5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|42112799006|376014|38070700021|18002099003|22082099003|56012099003;
x-microsoft-antispam-message-info:
 LkfZdqUMcpLogEwovloCKoNV4tucOecH+eqsGanil1ZK7LiUjZWovyiKqDftp9R7xoTCw96yP5KDRdQ9N88LnRTv9Ly+zv3U9zUM1G9gh8nkaS6t5sdfALxRp97UcIIHamph+MT7Yf7xS93VpMhbdHROKX1KhGrXv84bpQHOnGY8rOXzHIJ4MrRNCUMopg2dfn+igz6Z8rfwIi+tKTVQQKpQx2Yjp++VU2qCpXMnkRDD2x06+UMfGpYCnXpdIIjAYkzzeOEI1dFGInKqcDk1rWfbQDzEqf6BctUBSY5mPHQrtj24ruat3NspqnXdDvzQ4L3ki24R3GaLzHoBizafhSjKz1R61O1ChL4nK8n0Qa2nVmvjEL4DjG8DI9i4d7NcRyPtptj/idNjK3Nc5LL6kLAnvHL3LjoJqANGZyftSu0CrySrrupZJy2C/LQw8A9C+3dvxGrZdK+rzRQBmGwwsY67Go/onq4O16K0eDrhB6r06d3EAuea/I6Gdh1x8cLRoD2ukLjM6dVoFWOVhS6LOC2mE4P3/CgR2e7vsyfF/duHnHaZG/N2PGH/JL7/4xxnqCKMfMAeDSvjTWeVxxFWwmtmqbWdUUo8GzLIVKmGvozR5/toqkYtV5TIiQ880MCVgG0vIHG8dAfjlwvg1GsA8EgqgqEmD1nkCPsNDHEds5s33E/1AXOLK9H7dQJT5VpYuORy7sCeSqPBbBpBs1fYtl9b4/+kODMbyJmCddbEqUjT0GwFwtYRG9X3i6mN9/d6W6VOgghbcrHQ6OtH4J0BLQyAecANenI4vHZtO/98QmI=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(42112799006)(376014)(38070700021)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?+wISz7eqTRkGWXiM1argZX+7DSPvibH0PX4zVT6ZLMLUjeqNaxGxnsvw3I?=
 =?iso-8859-1?Q?OV5eJeglEmprAxi5abZiXgZwsuEMvKUH+28c9vt/Sw4fFaM68ibiNRQMUE?=
 =?iso-8859-1?Q?V0uwZANrLNVpSIxfjHcy0Hvw9gjjqrTixmRc2FXFPE3o8H8jBe9KSiXG6I?=
 =?iso-8859-1?Q?p1rwdYMJ5QlN/AAK2dnJJazqaZTjtxhgd3RYn/HmupgDnw3W6jih6nGFYW?=
 =?iso-8859-1?Q?24ERcCFZdJBOiNrU3XECLTfd8WCTuem5MNBAPlwKT9NuH7N5oCGUhrwnet?=
 =?iso-8859-1?Q?jJA58e78QnRFOaPKggMC3syB2PqkhRla3UuNenv1u0kyhJVGFVhGFtDd3s?=
 =?iso-8859-1?Q?NNEIvrn5b5nE5/VHndrtw2Z2uCAtJStVrxITiX0pwHZbk+sMxKxhOH3R6X?=
 =?iso-8859-1?Q?yQ085ZF7SVixeTWY45Qv43vzNlQ+S8J88xKfofCiJjJzoOgJYlkfzmYECN?=
 =?iso-8859-1?Q?M66mTHyLFnk9aaXpfvkPy2gN+WAzVz3vfS9Udy4729uLEG79mVAk4hRLKk?=
 =?iso-8859-1?Q?cTIoN4QxG8iklauS2BTyi0rP57Dxr7lr03+wRTSVr//T6SOCw/7lbC+wsa?=
 =?iso-8859-1?Q?LROCElOD7jbtUJpgojx7hzDK9U25XH/1L9jdDB++0ilxlIFlUAxFj6USRP?=
 =?iso-8859-1?Q?EZOxhAElUgkjXjEN/l9L769NV0wHZ4Ldymm+UqdVE7MzZq4xH2nKYOof6p?=
 =?iso-8859-1?Q?Ug+EHB2GuS+7kWCScsGyh/9YUpnBZhXCznkDKlXdNP+EkQABc9R/6BGBHV?=
 =?iso-8859-1?Q?Nc5cfRfGjh1MmZYsDEAeKIPL9WYVBkkJ/jZG3itTWPJDODa9MqXOFDsFnb?=
 =?iso-8859-1?Q?Vg7e1Wm/22yxCaStV9vu30acUGENU55GksPZvgFWZw1+2fNaQCRwfEBbh3?=
 =?iso-8859-1?Q?N+EDJ8xbugKWsLkTT/W5fSnrk8daLTtTxWm+qqOqDjVK8lKqbJ30Mi4iGV?=
 =?iso-8859-1?Q?nwI2HKB+rpDNyfXdlu6XsG+6mj3TDx2Pl6/NcnyFYQpgf4Yb7KmbdVpJXO?=
 =?iso-8859-1?Q?jr5UtzwnmfczeeBljUD/C0ricCUZA7GXeXCb/cxTButuVXHZzGcJP7ROQR?=
 =?iso-8859-1?Q?83ASmSM05E2kBG5zup2667D9rB4tthxNVZ2x4pw6ChZF6p1FaTkfb/uWfK?=
 =?iso-8859-1?Q?0xjcZsQMnDY+4cDJ/JI39KmzH7zwT8Gzg9YReFJ89ODzd4tA/bbp372NTi?=
 =?iso-8859-1?Q?yxOlmY1REsI4pk1HOiNA0ikRjZMfq6MWFK96KHcHm07ocBGznssAtQjZz3?=
 =?iso-8859-1?Q?moM5weRutpNpC1raBtrGdK3EZp947cMtxRPNYtSpihbS8YruMPadoo1T3n?=
 =?iso-8859-1?Q?TpTL7/Y63k04AW7CWxxcIobvu3wNl2fzqmKo3Mc0uasO0taB4VHEAx1NHE?=
 =?iso-8859-1?Q?XcfrOIbWYb6cJpVTCWMfoe7deaaegzgJNPZMmad7l9DOwCf8WWXg2tItQK?=
 =?iso-8859-1?Q?DFk/09VlH9pysG6kHBpPiBqvekUiOy8St1U8kgnDQ/siF/KcN5wgyJgd2i?=
 =?iso-8859-1?Q?C4Inf9jwjgL2iE1xJxxVJOqZ+hGeD2UhGKCvRRQZbhy6+cxCYEukAmJyFz?=
 =?iso-8859-1?Q?8MJpOm9QzJo738T9jykpBfrugTZQiqBZCX76leq2qVCyFqqWErDTQv8Utu?=
 =?iso-8859-1?Q?pq1S94CSXwSdIpgkWaQ6XT+UCt+HNBEyl1WCz0ONR4OG4OfqCa8kwZXo2y?=
 =?iso-8859-1?Q?F+HT4XiO1gGAK5KJuvGLVJYjtLbv9jV5uuyE7ADhXgpWbI+KNI9TkotD5I?=
 =?iso-8859-1?Q?7VCRFmltd3Wg5rkgEDKHB0H14dSp4PH6KqcfHAcOAMMIJFN3pdpYKOgteK?=
 =?iso-8859-1?Q?Aw6ZrSFLUmMmyl3tF5i6ZZvkR+gWBlc=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: 1406c588-dcb5-4e39-cbcd-08de85579eb5
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Mar 2026 01:34:10.3935
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 3egVcJS4SuuzRGQNZOunIDC+nyBp/STIVrHDNir3Yo/78h/Y9Dhm7lVRuGAlmXxyNiZSLLLUMJkVEKYqGtx64z3MB/0pauFzpa5e5AA6fcg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9653

Hi Mykyta,

Mykyta Poturai <Mykyta_Poturai@epam.com> writes:

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

With this change you'll track affinity of hardware interrupts, but pure
virtual interrupts still will not be tracked. Is it intended behaviour?
I believe it should be mentioned in the commit message.

>
> Fix this by updating the field in irq_set_affinity.
>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
>
> ---
> v5->v6:
> * add missing locking around irq_set_affinity calls
>
> v4->v5:
> * add locking
>
> v3->v4:
> * patch introduced
> ---
>  xen/arch/arm/gic-vgic.c          |  2 ++
>  xen/arch/arm/irq.c               |  9 +++++++--
>  xen/arch/arm/vgic.c              | 14 ++++++++++++--
>  xen/arch/arm/vgic/vgic-mmio-v2.c | 11 +++++------
>  xen/arch/arm/vgic/vgic.c         | 15 ++++++++-------
>  5 files changed, 34 insertions(+), 17 deletions(-)
>
> diff --git a/xen/arch/arm/gic-vgic.c b/xen/arch/arm/gic-vgic.c
> index ea48c5375a..5253caf002 100644
> --- a/xen/arch/arm/gic-vgic.c
> +++ b/xen/arch/arm/gic-vgic.c
> @@ -232,7 +232,9 @@ static void gic_update_one_lr(struct vcpu *v, int i)
>              if ( test_bit(GIC_IRQ_GUEST_MIGRATING, &p->status) )
>              {
>                  struct vcpu *v_target =3D vgic_get_target_vcpu(v, irq);
> +                spin_lock(&p->desc->lock);
>                  irq_set_affinity(p->desc, cpumask_of(v_target->processor=
));
> +                spin_unlock(&p->desc->lock);
>                  clear_bit(GIC_IRQ_GUEST_MIGRATING, &p->status);
>              }
>          }
> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
> index 73e58a5108..7204bc2b68 100644
> --- a/xen/arch/arm/irq.c
> +++ b/xen/arch/arm/irq.c
> @@ -216,10 +216,15 @@ static inline struct domain *irq_get_domain(struct =
irq_desc *desc)
>      return irq_get_guest_info(desc)->d;
>  }
> =20
> +/* Must be called with desc->lock held */
>  void irq_set_affinity(struct irq_desc *desc, const cpumask_t *mask)
>  {
> -    if ( desc !=3D NULL )
> -        desc->handler->set_affinity(desc, mask);
> +    if ( desc =3D=3D NULL )
> +        return;
> +
> +    ASSERT(spin_is_locked(&desc->lock));
> +    cpumask_copy(desc->affinity, mask);
> +    desc->handler->set_affinity(desc, mask);
>  }
> =20
>  int request_irq(unsigned int irq, unsigned int irqflags,
> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
> index 6647071ad4..c59f6873db 100644
> --- a/xen/arch/arm/vgic.c
> +++ b/xen/arch/arm/vgic.c
> @@ -445,7 +445,9 @@ bool vgic_migrate_irq(struct vcpu *old, struct vcpu *=
new, unsigned int irq)
> =20
>      if ( list_empty(&p->inflight) )
>      {
> +        spin_lock(&p->desc->lock);
>          irq_set_affinity(p->desc, cpumask_of(new->processor));
> +        spin_unlock(&p->desc->lock);
>          spin_unlock_irqrestore(&old->arch.vgic.lock, flags);
>          return true;
>      }
> @@ -453,7 +455,9 @@ bool vgic_migrate_irq(struct vcpu *old, struct vcpu *=
new, unsigned int irq)
>      if ( !list_empty(&p->lr_queue) )
>      {
>          vgic_remove_irq_from_queues(old, p);
> +        spin_lock(&p->desc->lock);
>          irq_set_affinity(p->desc, cpumask_of(new->processor));
> +        spin_unlock(&p->desc->lock);
>          spin_unlock_irqrestore(&old->arch.vgic.lock, flags);
>          vgic_inject_irq(new->domain, new, irq, true);
>          return true;
> @@ -473,6 +477,7 @@ void arch_move_irqs(struct vcpu *v)
>      struct domain *d =3D v->domain;
>      struct pending_irq *p;
>      struct vcpu *v_target;
> +    unsigned long flags;
>      int i;
> =20
>      /*
> @@ -494,7 +499,13 @@ void arch_move_irqs(struct vcpu *v)
>          p =3D irq_to_pending(v_target, virq);
> =20
>          if ( v_target =3D=3D v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p-=
>status) )
> +        {
> +            if ( !p->desc )
> +                continue;
> +            spin_lock_irqsave(&p->desc->lock, flags);
>              irq_set_affinity(p->desc, cpu_mask);
> +            spin_unlock_irqrestore(&p->desc->lock, flags);
> +        }
>      }
>  }
> =20
> @@ -574,8 +585,8 @@ void vgic_enable_irqs(struct vcpu *v, uint32_t r, uns=
igned int n)
>          spin_unlock_irqrestore(&v_target->arch.vgic.lock, flags);
>          if ( p->desc !=3D NULL )
>          {
> -            irq_set_affinity(p->desc, cpumask_of(v_target->processor));
>              spin_lock_irqsave(&p->desc->lock, flags);
> +            irq_set_affinity(p->desc, cpumask_of(v_target->processor));
>              /*
>               * The irq cannot be a PPI, we only support delivery of SPIs
>               * to guests.
> @@ -944,4 +955,3 @@ void vgic_check_inflight_irqs_pending(struct vcpu *v,=
 unsigned int rank, uint32_
>   * indent-tabs-mode: nil
>   * End:
>   */
> -
> diff --git a/xen/arch/arm/vgic/vgic-mmio-v2.c b/xen/arch/arm/vgic/vgic-mm=
io-v2.c
> index b7c2d7ce99..fc04741ca1 100644
> --- a/xen/arch/arm/vgic/vgic-mmio-v2.c
> +++ b/xen/arch/arm/vgic/vgic-mmio-v2.c
> @@ -159,24 +159,23 @@ static void vgic_mmio_write_target(struct vcpu *vcp=
u,
>      for ( i =3D 0; i < len; i++ )
>      {
>          struct vgic_irq *irq =3D vgic_get_irq(vcpu->domain, NULL, intid =
+ i);
> +        struct irq_desc *desc =3D irq_to_desc(irq->hwintid);
> =20
> -        spin_lock_irqsave(&irq->irq_lock, flags);
> +        spin_lock_irqsave(&desc->lock, flags);
> +        spin_lock(&irq->irq_lock);
> =20
>          irq->targets =3D (val >> (i * 8)) & cpu_mask;
>          if ( irq->targets )
>          {
>              irq->target_vcpu =3D vcpu->domain->vcpu[ffs(irq->targets) - =
1];
>              if ( irq->hw )
> -            {
> -                struct irq_desc *desc =3D irq_to_desc(irq->hwintid);
> -
>                  irq_set_affinity(desc, cpumask_of(irq->target_vcpu->proc=
essor));
> -            }
>          }
>          else
>              irq->target_vcpu =3D NULL;
> =20
> -        spin_unlock_irqrestore(&irq->irq_lock, flags);
> +        spin_unlock(&irq->irq_lock);
> +        spin_unlock_irqrestore(&desc->lock, flags);
>          vgic_put_irq(vcpu->domain, irq);
>      }
>  }
> diff --git a/xen/arch/arm/vgic/vgic.c b/xen/arch/arm/vgic/vgic.c
> index b2c0e1873a..81ba4099ef 100644
> --- a/xen/arch/arm/vgic/vgic.c
> +++ b/xen/arch/arm/vgic/vgic.c
> @@ -812,21 +812,22 @@ void arch_move_irqs(struct vcpu *v)
>      {
>          struct vgic_irq *irq =3D vgic_get_irq(d, NULL, i + VGIC_NR_PRIVA=
TE_IRQS);
>          unsigned long flags;
> +        irq_desc_t *desc;
> =20
>          if ( !irq )
>              continue;
> =20
> -        spin_lock_irqsave(&irq->irq_lock, flags);
> +        desc =3D irq_to_desc(irq->hwintid);
> =20
> -        /* Only hardware mapped vIRQs that are targeting this vCPU. */
> -        if ( irq->hw && irq->target_vcpu =3D=3D v)
> -        {
> -            irq_desc_t *desc =3D irq_to_desc(irq->hwintid);
> +        spin_lock_irqsave(&desc->lock, flags);
> +        spin_lock(&irq->irq_lock);
> =20
> +        /* Only hardware mapped vIRQs that are targeting this vCPU. */
> +        if ( irq->hw && irq->target_vcpu =3D=3D v )
>              irq_set_affinity(desc, cpumask_of(v->processor));
> -        }
> =20
> -        spin_unlock_irqrestore(&irq->irq_lock, flags);
> +        spin_unlock(&irq->irq_lock);
> +        spin_unlock_irqrestore(&desc->lock, flags);
>          vgic_put_irq(d, irq);
>      }
>  }

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 01:39:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 01:39:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256621.1551153 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w32MV-0007DA-6g; Thu, 19 Mar 2026 01:39:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256621.1551153; Thu, 19 Mar 2026 01: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 1w32MV-0007D3-3t; Thu, 19 Mar 2026 01:39:47 +0000
Received: by outflank-mailman (input) for mailman id 1256621;
 Thu, 19 Mar 2026 01: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=3tHx=BT=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1w32MT-0007Cx-V7
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 01:39:45 +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 7e326875-2334-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 02:39:39 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PAVPR03MB9653.eurprd03.prod.outlook.com
 (2603:10a6:102:319::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Thu, 19 Mar
 2026 01:39:36 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3%7]) with mapi id 15.20.9700.020; Thu, 19 Mar 2026
 01: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: 7e326875-2334-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aLBD3td9Qt7ILUN6Dm4Vm6PzEZJ+NOwcjQzYjIOSKi8XB1sJ2hwP8wnG/eJK2SqVmtk8ha12ZNFPzGkrP0OpjMF6GBk4oobdly/DC1qCys/58CzLOJ2WPpQyJUL8+gLrgTForLRO6ubOiCB89ZIC6H9zTL2VJRQI8GBq041ZUKW3bMu6JRBKqxOFxMH55uaosbmekDcdRbODkdgzjEKdh55y6md5au45mEc+T6a5FdCf0GR8LvdC9PonsROGgRXLM8nuvV35/oVRb8Mb9uz9b+AMNc7MoSAZW7CF0riOyjkdY2KQ5Cya0L7S76BtCco4Gi/v15ptUxLMIKZkkTdrRQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4Qo/yFQTGxop5FACzR0QNg0zqFUMkZwrSIz5rqfIUiw=;
 b=W6PoGb+Uqd7MCb9jsJsIXaFpN/OS6c+7Myr4xsogF/PTJWEPqV7VsS36MJxcuJ59juUuzVMT5G3uUhgVkWfnXjyAYExd4P2W0ADS9YY+r4MD9MSoTsAzwCU9PqjOPmdxHkhRGEozW5TPcYJN+ZpUIcVBPkspfvKn12EbCmrQlNrXIMsGsUK5mvMXdu3VuQ0T1nz85LFiWGiNA5/4vSAZ/NZW1guv6Ik7prz82ydLgtU3Ohsxc0d8o4X8u8qMcDI7FKuxcsrYP0EMSoIeEP+bWKzYlhvq44Pd1tCLxXiZPBDUhR1/XbWjeRCTfha2iykr48UxGxgEVIOmM3Oxls1gNg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4Qo/yFQTGxop5FACzR0QNg0zqFUMkZwrSIz5rqfIUiw=;
 b=BByiGSTEktI5FOksDfQ5y6lAq+xABotwW7r2fhkn9kjQ2V+r7egXvCw/1WMW5QT2kNCoEEgnyA5hRIjkkIIlKEOjwAYG8mRr52xksa1gu8XxUckYBNlkuvopt2eLcBwIuZnoQzf5FTIbvd9aL/lfRCqgwEutBDpG/M0UjN5ElonpEz0HiZ15gHgTxke1Qlva2TFQBxrilKQQX4VSZk6BixI7w+Szvd+Feg3rs0rhmqyDgXl/bDRxEVdU0Y1Sl1mdRfHtQSuSvv3rhhbgmQa+a71fbM3lWQ6j6lyCrhCSVMbUOBwZur/TXUDg0LJWBNXRvzp4tycz4ONGfS11zYXxuQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v6 1/5] arm/irq: Keep track of irq affinities
Thread-Topic: [PATCH v6 1/5] arm/irq: Keep track of irq affinities
Thread-Index: AQHcsgQfYo2+uc7QB0+uZY6Wrq2Bgg==
Date: Thu, 19 Mar 2026 01:39:36 +0000
Message-ID: <871phgk36w.fsf@epam.com>
References: <cover.1773307749.git.mykyta_poturai@epam.com>
	<733d58a26766a1d15e47447ed4f3cd299dc28cf7.1773307749.git.mykyta_poturai@epam.com>
	<877br8k3fy.fsf@epam.com>
In-Reply-To: <877br8k3fy.fsf@epam.com> (Volodymyr Babchuk's message of "Thu,
	19 Mar 2026 03:34:09 +0200")
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV1PR03MB10456:EE_|PAVPR03MB9653:EE_
x-ms-office365-filtering-correlation-id: 57ddff04-c766-4741-34b8-08de85586103
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|42112799006|376014|38070700021|18002099003|22082099003|56012099003;
x-microsoft-antispam-message-info:
 IHig6ao+VuRfFfZfGwb/mRUF8lcVKgXoqv6H+z9w7jEpojVd4r7/fV82NxM+VsnrED87g5dq0xVQLr4dZ7llzRI8+twxdm9jQXJnBFR0CiyqfxJ0JZbG/HYw1VKRz1VG0mE6Bk3zN+igI4ymlFBO5WpivClS/LsKKP05kVW9c7qQLvuJxsmw1+5PjWS2bZLamt6FgwyCQGhk3Zz8V7YJliEiKucV8JxYhviNNcAfnbtpHvFm1Hw7tFTefLnDFl2Ul1PBufqJEcTxdAYlosNQ65FW+Sb+D0Wgy44KkyC5ugOs/QSQ0v48wKNczCdZsyuT0aU0d4onRw9cklf9zPD+XQxs4BFFKMhUR52Y/O2nZAnglKxYL8+Y2ecVoigw6ASZ248yzHG6FrwAImec1Q51H5JshDDkpbJxEVi9/HocWyB4Oqso+8mbw9S3B5VO3tQToegt3ghu5h5XN7TP29N/5mTX1z/awfY9tUJswC3ZTHEhAEiAxXlBQmoMgb2nN25OPcDFkt7onsL+Z+XjbWjID8s+Hltfrx4iMbAVZFC1KA3FGPAsit0m6kMpilAZwEKy0o+4laC8Qg0lt4jVvAQIwlGfO5XdNC8209/YBcWrNKndt861h+v0DNhcsHZiS3Tr7hq6QQzgPmV/wgtdotsWxgSpuQTEzG9qoKKYNc0VYWERfL5vb+IKvQ4o6AdpIRc5VVc813NQ7KlnUI5cVm6jyK07Ph8E/pihgXOGTeXUPToJl+UYXPu4UzQjcvICAIyePaxsnOj8D1RpfNLn1+XRz3CbvJOmBxBQ0w/efRgw/Ug=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(42112799006)(376014)(38070700021)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?xAVv5mxPEXRiC199kkWGnX8G1Yq+F7u2MJgjcpQL0xNP0GS/Z5iOYxsEUI?=
 =?iso-8859-1?Q?7Pq3UCnj/wGYFBBTtkDbIeQ/bGsDAIsdWCdZ4rNVfWjCViqUbFE5Sj7pt0?=
 =?iso-8859-1?Q?HI4uk0MHXbMImtI7cr6QLPe05bTUreVwX1+phjO+C1VMamwjcVsaFHbl30?=
 =?iso-8859-1?Q?28caVoi/qRSf0DC5jFypWt2l7p2Ox1PG1kS8Eh/3NJ3t7nbO/Slt8NYzKz?=
 =?iso-8859-1?Q?JRBMdJC1bsHfOZObAQMr5ZMQOXfoNruFtHqRnvuXASRTx90R25Ot9MwnRT?=
 =?iso-8859-1?Q?DIjanMM+db2G5qnU3YIlE/BnmXN+Wguu7xc92VSjz+f1EqQ4VEY5f1foIr?=
 =?iso-8859-1?Q?OKrIVcT5stomDpr8papVrtr/WAK+pGujClb3reH6ePVp+vth5D7Ex6uD7D?=
 =?iso-8859-1?Q?YyblYiCnzEwry1YydSvZXEzT9PnhqYyUPLnKBRnaGr2QlfAL8jrgPbUzUr?=
 =?iso-8859-1?Q?qgdas8Cnmr1mGIrsNSKuaYhshcCLxaCcKJcTEpsTwF7x/uCf7DfE2NQzPI?=
 =?iso-8859-1?Q?P5YSg+W85+mpwc9esEJ5OOmN2QcckxVWCUqoWEVDZIaNaOmeuoUf8GT6LP?=
 =?iso-8859-1?Q?i/UAsg4Gw68LY6ow63t1U+p2yBA2dgtP65gFiVxLY1v71BWfUw2ERO/b+h?=
 =?iso-8859-1?Q?fd+nYSh5tKXH4BBuZiO6azFz2LprIt4+KFKZTCftb5pRZAL6CDaFXkYHBZ?=
 =?iso-8859-1?Q?OjlX/VaVHHkWpuM14G5YutjaEnVQLIcAFD+WqTS1hu7spb3W+CKPM+8EU7?=
 =?iso-8859-1?Q?sdCWMadCOuoYeE3FxhpFRHcsYiCsKoWdRU5GB3U7D3IlrfaezPkgNx4RL9?=
 =?iso-8859-1?Q?BcxazZaLVCMDfRBd+/cjBG/LFuYnAhAFfBFgPHa7t34eCPGTs30aqUd8N4?=
 =?iso-8859-1?Q?csDEh9w+QZQ8KTHmL3g41zX1k0kYGefCsoUosO3Lr1BaPSKiJruzx7cfsZ?=
 =?iso-8859-1?Q?y1VJ1hLcB8c4gG4gl6+Pfyb5kVzbfdfG9tDr/ke7iKVe2YUvKBXBGM4kKx?=
 =?iso-8859-1?Q?XORW4EPnGOCurMhjdfrECOmdDNUpHtOvNQYz6VwDthKTdt2vixg2IC3rb3?=
 =?iso-8859-1?Q?ori0jEIprYAtrRPbXSmFHJJfPntDHoQ80/vPst/aEEbP8SlMqPXsxoVXIe?=
 =?iso-8859-1?Q?SpD+RlcpZiUi8zkZp54koX1qhvCasH8VnQpvtGadiT+47yISmiDaTfTFvM?=
 =?iso-8859-1?Q?bj4oQWIIdmbzAu/aUuZj3Fwr4sTKmZlkQbTGktrjK8XwSIUyFzj/Gi6E/P?=
 =?iso-8859-1?Q?cnvdBOBnVbPlO1Y+n7aHU6PTXZj9wCNs+5DV4ejGzJRemqZzavBiFklHIM?=
 =?iso-8859-1?Q?o1SMxopMHrqEr6ZftEzC8ReJLyUqlGjafAX7F0jzkxvSFSjsleBnFPK3Mm?=
 =?iso-8859-1?Q?tFC7Oglvq/oGlxOTGMzxtAb3SUdxbgO0E68UKyXrfso72PO9Zx7Zba22Jp?=
 =?iso-8859-1?Q?xnrTcWaDfyY3DePjS9Hhc7ASnUzQ9ARBdAEy9PwazjgNWSVZ0yYeqz6Rz7?=
 =?iso-8859-1?Q?4V1mKlyeRtJEJyMPltDmxRS6cONCVgKwvUW5P2SJEY/IjxJd7G03Zqapow?=
 =?iso-8859-1?Q?Mvp4DWtrm4ZbUuVcsyJ4kvEpvu/URNBBRW7k6eoQ3WzNfYsmIY7rDvpUM+?=
 =?iso-8859-1?Q?p4LHAAPBJP0+GeqKopg+3ewEo2wvu2wTmXLJzULPEv01pFh8e5WK5rXSeE?=
 =?iso-8859-1?Q?PR8bW9uqFa4qW+JtxzocOjtCIpq9sEsK4pz3apseeN4zgJf3NTfHRKhSjv?=
 =?iso-8859-1?Q?lwlRs/88tYBbXmxIeunui8FQyP/M2YClAiF0g6Q0VYv079yO6oNZasCcVj?=
 =?iso-8859-1?Q?lhHSDvUGaS0p19diDX1JqooVtUfOlx0=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: 57ddff04-c766-4741-34b8-08de85586103
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Mar 2026 01:39:36.3810
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: XMTAZCWmGd3nt/eoqSWTLMTp2iyc4rRVMKOoWkmrS850wAFxXCLOeSU6iLF4LjBZHZFJguMRF7MpLssUErT1G7xc/0aFSeI5fvAoJTifOhU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9653

Volodymyr Babchuk <volodymyr_babchuk@epam.com> writes:

> Hi Mykyta,
>
> Mykyta Poturai <Mykyta_Poturai@epam.com> writes:
>
>> 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.
>
> With this change you'll track affinity of hardware interrupts, but pure
> virtual interrupts still will not be tracked. Is it intended behaviour?
> I believe it should be mentioned in the commit message.

Well, that was blunder :( please disregard this.

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 06:58:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 06:58:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256665.1551203 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w37KT-0004mc-WD; Thu, 19 Mar 2026 06:58:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256665.1551203; Thu, 19 Mar 2026 06:58:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w37KT-0004lL-Rh; Thu, 19 Mar 2026 06:58:01 +0000
Received: by outflank-mailman (input) for mailman id 1256665;
 Thu, 19 Mar 2026 06:58: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=F4ko=BT=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w37KS-0003zM-Pd
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 06:58:00 +0000
Received: from canpmsgout10.his.huawei.com (canpmsgout10.his.huawei.com
 [113.46.200.225]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f2fc021e-2360-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 07:57:54 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.214])
 by canpmsgout10.his.huawei.com (SkyGuard) with ESMTPS id 4fbxFK6m2wz1K9Bp;
 Thu, 19 Mar 2026 14:51:49 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 7856240561;
 Thu, 19 Mar 2026 14:57:49 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Thu, 19 Mar 2026 14:57: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: f2fc021e-2360-11f1-b164-2bf370ae4941
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=exD33k43BuQzAEL6nsjKEJKqL7EfNu0IQKwl4k+YbJg=;
	b=TpkbNgrXuFHMaoSxLqV9Sehh2jyBNhzuFTjk04digWx+iZ4u7r0ZO97pTwpdiOPz3O6n3lNJ/
	4V3t97Mi4HDOAvKqXG7pd8g0EWINQftSU1qn9BC94Y+G026NOS1ZPVoH/xNOselntlRacsW/mDN
	uHBm/USFU8RvNhGQhD/mcZg=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>, Paul
 Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou
	<aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>, Thomas Gleixner
	<tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris
 Ostrovsky <boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V
 L <sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Jonathan
 Cameron <jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>, Yanteng
 Si <si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>, Kai Huang
	<kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>, Thomas Huth
	<thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>, Kevin Loughlin
	<kevinloughlin@google.com>, Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra
	<peterz@infradead.org>, Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin
 Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v9 3/7] riscv/acpi: Add acpi_get_cpu_uid() implementation and update users
Date: Thu, 19 Mar 2026 14:57:31 +0800
Message-ID: <20260319065735.45954-4-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260319065735.45954-1-fengchengwen@huawei.com>
References: <20260319065735.45954-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100001.china.huawei.com (7.221.188.238) To
 kwepemk500009.china.huawei.com (7.202.194.94)

Add arch-specific acpi_get_cpu_uid() for riscv:
- Declare acpi_get_cpu_uid() in arch/riscv/include/asm/acpi.h
- Implement acpi_get_cpu_uid() with input parameter validation
- Switch rhct.c and arch/riscv/kernel/acpi_numa.c to use
  acpi_get_cpu_uid() instead of get_acpi_id_for_cpu()

This aligns riscv with the unified ACPI CPU UID interface, improving
input validation and consistency across ACPI-enabled platforms.

Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 arch/riscv/include/asm/acpi.h |  1 +
 arch/riscv/kernel/acpi.c      | 16 ++++++++++++++++
 arch/riscv/kernel/acpi_numa.c |  9 ++++++---
 drivers/acpi/riscv/rhct.c     |  7 ++++++-
 4 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/arch/riscv/include/asm/acpi.h b/arch/riscv/include/asm/acpi.h
index 6e13695120bc..f3520cc85af3 100644
--- a/arch/riscv/include/asm/acpi.h
+++ b/arch/riscv/include/asm/acpi.h
@@ -65,6 +65,7 @@ static inline u32 get_acpi_id_for_cpu(int cpu)
 {
 	return acpi_cpu_get_madt_rintc(cpu)->uid;
 }
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
 
 int acpi_get_riscv_isa(struct acpi_table_header *table,
 		       unsigned int cpu, const char **isa);
diff --git a/arch/riscv/kernel/acpi.c b/arch/riscv/kernel/acpi.c
index 71698ee11621..322ea92aa39f 100644
--- a/arch/riscv/kernel/acpi.c
+++ b/arch/riscv/kernel/acpi.c
@@ -337,3 +337,19 @@ int raw_pci_write(unsigned int domain, unsigned int bus,
 }
 
 #endif	/* CONFIG_PCI */
+
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
+{
+	struct acpi_madt_rintc *rintc;
+
+	if (cpu >= nr_cpu_ids)
+		return -EINVAL;
+
+	rintc = acpi_cpu_get_madt_rintc(cpu);
+	if (!rintc)
+		return -ENODEV;
+
+	*uid = rintc->uid;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
diff --git a/arch/riscv/kernel/acpi_numa.c b/arch/riscv/kernel/acpi_numa.c
index 130769e3a99c..6a2d4289f806 100644
--- a/arch/riscv/kernel/acpi_numa.c
+++ b/arch/riscv/kernel/acpi_numa.c
@@ -37,11 +37,14 @@ static int __init acpi_numa_get_nid(unsigned int cpu)
 
 static inline int get_cpu_for_acpi_id(u32 uid)
 {
-	int cpu;
+	u32 cpu_uid;
+	int ret;
 
-	for (cpu = 0; cpu < nr_cpu_ids; cpu++)
-		if (uid == get_acpi_id_for_cpu(cpu))
+	for (int cpu = 0; cpu < nr_cpu_ids; cpu++) {
+		ret = acpi_get_cpu_uid(cpu, &cpu_uid);
+		if (ret == 0 && uid == cpu_uid)
 			return cpu;
+	}
 
 	return -EINVAL;
 }
diff --git a/drivers/acpi/riscv/rhct.c b/drivers/acpi/riscv/rhct.c
index caa2c16e1697..8f3f38c64a88 100644
--- a/drivers/acpi/riscv/rhct.c
+++ b/drivers/acpi/riscv/rhct.c
@@ -44,10 +44,15 @@ int acpi_get_riscv_isa(struct acpi_table_header *table, unsigned int cpu, const
 	struct acpi_rhct_isa_string *isa_node;
 	struct acpi_table_rhct *rhct;
 	u32 *hart_info_node_offset;
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id;
+	int ret;
 
 	BUG_ON(acpi_disabled);
 
+	ret = acpi_get_cpu_uid(cpu, &acpi_cpu_id);
+	if (ret != 0)
+		return ret;
+
 	if (!table) {
 		rhct = acpi_get_rhct();
 		if (!rhct)
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 06:58:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 06:58:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256666.1551209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w37KU-0004qH-AX; Thu, 19 Mar 2026 06:58:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256666.1551209; Thu, 19 Mar 2026 06:58:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w37KU-0004oJ-4a; Thu, 19 Mar 2026 06:58:02 +0000
Received: by outflank-mailman (input) for mailman id 1256666;
 Thu, 19 Mar 2026 06:58: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=F4ko=BT=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w37KT-0003m8-39
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 06:58:01 +0000
Received: from canpmsgout04.his.huawei.com (canpmsgout04.his.huawei.com
 [113.46.200.219]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f570148a-2360-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 07:57:58 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.104])
 by canpmsgout04.his.huawei.com (SkyGuard) with ESMTPS id 4fbxGY46TBz1prKM;
 Thu, 19 Mar 2026 14:52:53 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id DA7944056A;
 Thu, 19 Mar 2026 14:57:55 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Thu, 19 Mar 2026 14:57: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: f570148a-2360-11f1-9ccf-f158ae23cfc8
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=deqvN/mz2FJFsKRgusCQZVunNs0GKMrytgWIJYyKC38=;
	b=Q+InHx0t+fgSQtVLerCqnbpWuqjH25g8rq1c9ZrVB+5OCCEDVGxoUto5wjyaX4/Bl04WMbtaJ
	D5pQTQF9XcjGForLBwmJbjk2yPwBl1ETh0zu94i3cxgLe/S/32diWFN4CZVJMw0StBVGyVJ58gg
	PF0KAlLv+2qVOoGAxpaIJP4=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>, Paul
 Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou
	<aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>, Thomas Gleixner
	<tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris
 Ostrovsky <boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V
 L <sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Jonathan
 Cameron <jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>, Yanteng
 Si <si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>, Kai Huang
	<kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>, Thomas Huth
	<thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>, Kevin Loughlin
	<kevinloughlin@google.com>, Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra
	<peterz@infradead.org>, Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin
 Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v9 6/7] ACPI: PPTT: Use acpi_get_cpu_uid() and remove get_acpi_id_for_cpu()
Date: Thu, 19 Mar 2026 14:57:34 +0800
Message-ID: <20260319065735.45954-7-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260319065735.45954-1-fengchengwen@huawei.com>
References: <20260319065735.45954-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100001.china.huawei.com (7.221.188.238) To
 kwepemk500009.china.huawei.com (7.202.194.94)

- Convert acpi/pptt.c to use acpi_get_cpu_uid() instead of
  get_acpi_id_for_cpu()
- Remove unused get_acpi_id_for_cpu() implementations from
  arm64/loongarch/riscv

This completes the migration to the unified ACPI CPU UID interface for
PPTT code, and cleans up legacy unused functions to reduce technical
debt.

Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 arch/arm64/include/asm/acpi.h     |  4 ---
 arch/loongarch/include/asm/acpi.h |  5 ----
 arch/riscv/include/asm/acpi.h     |  4 ---
 drivers/acpi/pptt.c               | 50 +++++++++++++++++++++++--------
 4 files changed, 37 insertions(+), 26 deletions(-)

diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
index bdb0ecf95b5c..8a54ca6ba602 100644
--- a/arch/arm64/include/asm/acpi.h
+++ b/arch/arm64/include/asm/acpi.h
@@ -114,10 +114,6 @@ static inline bool acpi_has_cpu_in_madt(void)
 }
 
 struct acpi_madt_generic_interrupt *acpi_cpu_get_madt_gicc(int cpu);
-static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
-{
-	return	acpi_cpu_get_madt_gicc(cpu)->uid;
-}
 int get_cpu_for_acpi_id(u32 uid);
 
 static inline void arch_fix_phys_package_id(int num, u32 slot) { }
diff --git a/arch/loongarch/include/asm/acpi.h b/arch/loongarch/include/asm/acpi.h
index 7376840fa9f7..eda9d4d0a493 100644
--- a/arch/loongarch/include/asm/acpi.h
+++ b/arch/loongarch/include/asm/acpi.h
@@ -40,11 +40,6 @@ extern struct acpi_madt_core_pic acpi_core_pic[MAX_CORE_PIC];
 
 extern int __init parse_acpi_topology(void);
 
-static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
-{
-	return acpi_core_pic[cpu_logical_map(cpu)].processor_id;
-}
-
 #endif /* !CONFIG_ACPI */
 
 #define ACPI_TABLE_UPGRADE_MAX_PHYS ARCH_LOW_ADDRESS_LIMIT
diff --git a/arch/riscv/include/asm/acpi.h b/arch/riscv/include/asm/acpi.h
index 6e13695120bc..26ab37c171bc 100644
--- a/arch/riscv/include/asm/acpi.h
+++ b/arch/riscv/include/asm/acpi.h
@@ -61,10 +61,6 @@ static inline void arch_fix_phys_package_id(int num, u32 slot) { }
 
 void acpi_init_rintc_map(void);
 struct acpi_madt_rintc *acpi_cpu_get_madt_rintc(int cpu);
-static inline u32 get_acpi_id_for_cpu(int cpu)
-{
-	return acpi_cpu_get_madt_rintc(cpu)->uid;
-}
 
 int acpi_get_riscv_isa(struct acpi_table_header *table,
 		       unsigned int cpu, const char **isa);
diff --git a/drivers/acpi/pptt.c b/drivers/acpi/pptt.c
index de5f8c018333..7bd5bc1f225a 100644
--- a/drivers/acpi/pptt.c
+++ b/drivers/acpi/pptt.c
@@ -459,11 +459,14 @@ static void cache_setup_acpi_cpu(struct acpi_table_header *table,
 {
 	struct acpi_pptt_cache *found_cache;
 	struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id;
 	struct cacheinfo *this_leaf;
 	unsigned int index = 0;
 	struct acpi_pptt_processor *cpu_node = NULL;
 
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+		return;
+
 	while (index < get_cpu_cacheinfo(cpu)->num_leaves) {
 		this_leaf = this_cpu_ci->info_list + index;
 		found_cache = acpi_find_cache_node(table, acpi_cpu_id,
@@ -546,7 +549,10 @@ static int topology_get_acpi_cpu_tag(struct acpi_table_header *table,
 				     unsigned int cpu, int level, int flag)
 {
 	struct acpi_pptt_processor *cpu_node;
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id;
+
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+		return -ENOENT;
 
 	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 	if (cpu_node) {
@@ -614,18 +620,22 @@ static int find_acpi_cpu_topology_tag(unsigned int cpu, int level, int flag)
  *
  * Check the node representing a CPU for a given flag.
  *
- * Return: -ENOENT if the PPTT doesn't exist, the CPU cannot be found or
- *	   the table revision isn't new enough.
+ * Return: -ENOENT if can't get CPU's ACPI Processor UID, the PPTT doesn't
+ *	   exist, the CPU cannot be found or the table revision isn't new
+ *	   enough.
  *	   1, any passed flag set
  *	   0, flag unset
  */
 static int check_acpi_cpu_flag(unsigned int cpu, int rev, u32 flag)
 {
 	struct acpi_table_header *table;
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id;
 	struct acpi_pptt_processor *cpu_node = NULL;
 	int ret = -ENOENT;
 
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+		return -ENOENT;
+
 	table = acpi_get_pptt();
 	if (!table)
 		return -ENOENT;
@@ -651,7 +661,8 @@ static int check_acpi_cpu_flag(unsigned int cpu, int rev, u32 flag)
  * in the PPTT. Errors caused by lack of a PPTT table, or otherwise, return 0
  * indicating we didn't find any cache levels.
  *
- * Return: -ENOENT if no PPTT table or no PPTT processor struct found.
+ * Return: -ENOENT if no PPTT table, can't get CPU's ACPI Process UID or no PPTT
+ *	   processor struct found.
  *	   0 on success.
  */
 int acpi_get_cache_info(unsigned int cpu, unsigned int *levels,
@@ -671,7 +682,9 @@ int acpi_get_cache_info(unsigned int cpu, unsigned int *levels,
 
 	pr_debug("Cache Setup: find cache levels for CPU=%d\n", cpu);
 
-	acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id))
+		return -ENOENT;
+
 	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 	if (!cpu_node)
 		return -ENOENT;
@@ -780,8 +793,9 @@ int find_acpi_cpu_topology_package(unsigned int cpu)
  * It may not exist in single CPU systems. In simple multi-CPU systems,
  * it may be equal to the package topology level.
  *
- * Return: -ENOENT if the PPTT doesn't exist, the CPU cannot be found
- * or there is no toplogy level above the CPU..
+ * Return: -ENOENT if the PPTT doesn't exist, can't get CPU's ACPI
+ * Processor UID, the CPU cannot be found or there is no toplogy level
+ * above the CPU.
  * Otherwise returns a value which represents the package for this CPU.
  */
 
@@ -797,7 +811,9 @@ int find_acpi_cpu_topology_cluster(unsigned int cpu)
 	if (!table)
 		return -ENOENT;
 
-	acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+		return -ENOENT;
+
 	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 	if (!cpu_node || !cpu_node->parent)
 		return -ENOENT;
@@ -872,7 +888,9 @@ static void acpi_pptt_get_child_cpus(struct acpi_table_header *table_hdr,
 	cpumask_clear(cpus);
 
 	for_each_possible_cpu(cpu) {
-		acpi_id = get_acpi_id_for_cpu(cpu);
+		if (acpi_get_cpu_uid(cpu, &acpi_id) != 0)
+			continue;
+
 		cpu_node = acpi_find_processor_node(table_hdr, acpi_id);
 
 		while (cpu_node) {
@@ -966,10 +984,13 @@ int find_acpi_cache_level_from_id(u32 cache_id)
 	for_each_possible_cpu(cpu) {
 		bool empty;
 		int level = 1;
-		u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+		u32 acpi_cpu_id;
 		struct acpi_pptt_cache *cache;
 		struct acpi_pptt_processor *cpu_node;
 
+		if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+			continue;
+
 		cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 		if (!cpu_node)
 			continue;
@@ -1030,10 +1051,13 @@ int acpi_pptt_get_cpumask_from_cache_id(u32 cache_id, cpumask_t *cpus)
 	for_each_possible_cpu(cpu) {
 		bool empty;
 		int level = 1;
-		u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+		u32 acpi_cpu_id;
 		struct acpi_pptt_cache *cache;
 		struct acpi_pptt_processor *cpu_node;
 
+		if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+			continue;
+
 		cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 		if (!cpu_node)
 			continue;
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 06:58:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 06:58:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256661.1551172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w37KP-0003zm-Oi; Thu, 19 Mar 2026 06:57:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256661.1551172; Thu, 19 Mar 2026 06:57:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w37KP-0003zf-LI; Thu, 19 Mar 2026 06:57:57 +0000
Received: by outflank-mailman (input) for mailman id 1256661;
 Thu, 19 Mar 2026 06:57: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=F4ko=BT=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w37KO-0003zM-9B
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 06:57:56 +0000
Received: from canpmsgout05.his.huawei.com (canpmsgout05.his.huawei.com
 [113.46.200.220]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f067e6a6-2360-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 07:57:52 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.162.144])
 by canpmsgout05.his.huawei.com (SkyGuard) with ESMTPS id 4fbxFr4DTPz12LDD;
 Thu, 19 Mar 2026 14:52:16 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 6A5D340538;
 Thu, 19 Mar 2026 14:57:47 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Thu, 19 Mar 2026 14:57: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: f067e6a6-2360-11f1-b164-2bf370ae4941
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=OY+9eLOMu8D6VbbXOJYy45gDVG6RhQRdRz0wVTUZID0=;
	b=tGsdcrSPQ6/D7kDlywRLputfdp4O3BpSi06NDZOuqDq9RwNCdUmLUny90T52M93qSR0ELt1No
	0x3bYTk6cFBJRi0ff34XzxmQupT2nTllpT0EFZ4LwwYf9jApBTbyR8UDr6ucCdTiLKu6SG7E6Gm
	l+Gf3n5twSKDJEGOWeOXo9w=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>, Paul
 Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou
	<aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>, Thomas Gleixner
	<tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris
 Ostrovsky <boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V
 L <sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Jonathan
 Cameron <jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>, Yanteng
 Si <si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>, Kai Huang
	<kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>, Thomas Huth
	<thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>, Kevin Loughlin
	<kevinloughlin@google.com>, Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra
	<peterz@infradead.org>, Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin
 Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v9 2/7] loongarch/acpi: Add acpi_get_cpu_uid() declaration and implementation
Date: Thu, 19 Mar 2026 14:57:30 +0800
Message-ID: <20260319065735.45954-3-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260319065735.45954-1-fengchengwen@huawei.com>
References: <20260319065735.45954-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100001.china.huawei.com (7.221.188.238) To
 kwepemk500009.china.huawei.com (7.202.194.94)

Add arch-specific acpi_get_cpu_uid() for loongarch:
- Declare acpi_get_cpu_uid() in arch/loongarch/include/asm/acpi.h
- Implement acpi_get_cpu_uid() with input parameter validation

Align loongarch with the new unified ACPI CPU UID retrieval interface,
preparing for replacement of the legacy get_acpi_id_for_cpu() (to be
removed in follow-up patches).

Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 arch/loongarch/include/asm/acpi.h | 1 +
 arch/loongarch/kernel/acpi.c      | 9 +++++++++
 2 files changed, 10 insertions(+)

diff --git a/arch/loongarch/include/asm/acpi.h b/arch/loongarch/include/asm/acpi.h
index 7376840fa9f7..8bb101b4557e 100644
--- a/arch/loongarch/include/asm/acpi.h
+++ b/arch/loongarch/include/asm/acpi.h
@@ -44,6 +44,7 @@ static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
 {
 	return acpi_core_pic[cpu_logical_map(cpu)].processor_id;
 }
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
 
 #endif /* !CONFIG_ACPI */
 
diff --git a/arch/loongarch/kernel/acpi.c b/arch/loongarch/kernel/acpi.c
index 1367ca759468..058f0dbe8e8f 100644
--- a/arch/loongarch/kernel/acpi.c
+++ b/arch/loongarch/kernel/acpi.c
@@ -385,3 +385,12 @@ int acpi_unmap_cpu(int cpu)
 EXPORT_SYMBOL(acpi_unmap_cpu);
 
 #endif /* CONFIG_ACPI_HOTPLUG_CPU */
+
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
+{
+	if (cpu >= nr_cpu_ids)
+		return -EINVAL;
+	*uid = acpi_core_pic[cpu_logical_map(cpu)].processor_id;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 06:58:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 06:58:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256667.1551226 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w37KW-0005OZ-IU; Thu, 19 Mar 2026 06:58:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256667.1551226; Thu, 19 Mar 2026 06:58:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w37KW-0005OG-Dx; Thu, 19 Mar 2026 06:58:04 +0000
Received: by outflank-mailman (input) for mailman id 1256667;
 Thu, 19 Mar 2026 06:58: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=F4ko=BT=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w37KV-0003m8-Et
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 06:58:03 +0000
Received: from canpmsgout02.his.huawei.com (canpmsgout02.his.huawei.com
 [113.46.200.217]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f6b94a0f-2360-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 07:58:01 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.162.197])
 by canpmsgout02.his.huawei.com (SkyGuard) with ESMTPS id 4fbxFs2L2qzcZyY;
 Thu, 19 Mar 2026 14:52:17 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 004D440363;
 Thu, 19 Mar 2026 14:57:58 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Thu, 19 Mar 2026 14:57: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: f6b94a0f-2360-11f1-9ccf-f158ae23cfc8
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=yK49JnkLKpYBZOqDDiJ5tuFkHdnhSIg09tqBvQIMd28=;
	b=kKHyA/oBTEDBLkGyt6IF5Mfl/9NSCdKjuLiy/HF08xBMphI4nGy1HFAwxMG51XNjBjkBo5mE1
	yjJ8Kunab1b6+Q35VPZpdNjHq9uHYBsa/8T6vWVzXsQpo9LPA6UF2V4Yh93oUHRXBNRvgd2kM7T
	N9D++v+eloU19GgyjqKPnrA=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>, Paul
 Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou
	<aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>, Thomas Gleixner
	<tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris
 Ostrovsky <boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V
 L <sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Jonathan
 Cameron <jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>, Yanteng
 Si <si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>, Kai Huang
	<kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>, Thomas Huth
	<thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>, Kevin Loughlin
	<kevinloughlin@google.com>, Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra
	<peterz@infradead.org>, Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin
 Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v9 7/7] PCI/TPH: Fix get cpu steer-tag fail on ARM64 platform
Date: Thu, 19 Mar 2026 14:57:35 +0800
Message-ID: <20260319065735.45954-8-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260319065735.45954-1-fengchengwen@huawei.com>
References: <20260319065735.45954-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100001.china.huawei.com (7.221.188.238) To
 kwepemk500009.china.huawei.com (7.202.194.94)

pcie_tph_get_cpu_st() is broken on ARM64:
1. pcie_tph_get_cpu_st() passes cpu_uid to the PCI ACPI DSM method.
   cpu_uid should be the ACPI Processor UID [1].
2. In BNXT, pcie_tph_get_cpu_st() is passed a cpu_uid obtained via
   cpumask_first(irq->cpu_mask) - the logical CPU ID of a CPU core,
   generated and managed by kernel (e.g., [0,255] for a system  with 256
   logical CPU cores).
3. On ARM64 platforms, ACPI assigns Processor UID to cores listed in the
   MADT table, and this UID may not match the kernel's logical CPU ID.
   When this occurs, the mismatch results in the wrong CPU steer-tag.
4. On AMD x86 the logical CPU ID is identical to the ACPI Processor UID
   so the mismatch is not seen.

Resolution:
1. Use acpi_get_cpu_uid() in pcie_tph_get_cpu_st() to translate from
   logical CPU ID to ACPI Processor UID needed for the DSM call.
2. Rename pcie_tpu_get_cpu_st() parameter from cpu_uid to cpu to
   reflect that it is a logical CPU_ID.

[1] According to ECN_TPH-ST_Revision_20200924
    (https://members.pcisig.com/wg/PCI-SIG/document/15470), the input
    is defined as: "If the target is a processor, then this field
    represents the ACPI Processor UID of the processor as specified in
    the MADT. If the target is a processor container, then this field
    represents the ACPI Processor UID of the processor container as
    specified in the PPTT."

Fixes: d2e8a34876ce ("PCI/TPH: Add Steering Tag support")
Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 Documentation/PCI/tph.rst |  4 ++--
 drivers/pci/tph.c         | 16 +++++++++++-----
 include/linux/pci-tph.h   |  4 ++--
 3 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/Documentation/PCI/tph.rst b/Documentation/PCI/tph.rst
index e8993be64fd6..b6cf22b9bd90 100644
--- a/Documentation/PCI/tph.rst
+++ b/Documentation/PCI/tph.rst
@@ -79,10 +79,10 @@ To retrieve a Steering Tag for a target memory associated with a specific
 CPU, use the following function::
 
   int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type type,
-                          unsigned int cpu_uid, u16 *tag);
+                          unsigned int cpu, u16 *tag);
 
 The `type` argument is used to specify the memory type, either volatile
-or persistent, of the target memory. The `cpu_uid` argument specifies the
+or persistent, of the target memory. The `cpu` argument specifies the
 CPU where the memory is associated to.
 
 After the ST value is retrieved, the device driver can use the following
diff --git a/drivers/pci/tph.c b/drivers/pci/tph.c
index ca4f97be7538..b67c9ad14bda 100644
--- a/drivers/pci/tph.c
+++ b/drivers/pci/tph.c
@@ -236,21 +236,27 @@ static int write_tag_to_st_table(struct pci_dev *pdev, int index, u16 tag)
  * with a specific CPU
  * @pdev: PCI device
  * @mem_type: target memory type (volatile or persistent RAM)
- * @cpu_uid: associated CPU id
+ * @cpu: associated CPU id
  * @tag: Steering Tag to be returned
  *
  * Return the Steering Tag for a target memory that is associated with a
- * specific CPU as indicated by cpu_uid.
+ * specific CPU as indicated by cpu.
  *
  * Return: 0 if success, otherwise negative value (-errno)
  */
 int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type mem_type,
-			unsigned int cpu_uid, u16 *tag)
+			unsigned int cpu, u16 *tag)
 {
 #ifdef CONFIG_ACPI
 	struct pci_dev *rp;
 	acpi_handle rp_acpi_handle;
 	union st_info info;
+	u32 cpu_uid;
+	int ret;
+
+	ret = acpi_get_cpu_uid(cpu, &cpu_uid);
+	if (ret != 0)
+		return ret;
 
 	rp = pcie_find_root_port(pdev);
 	if (!rp || !rp->bus || !rp->bus->bridge)
@@ -265,9 +271,9 @@ int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type mem_type,
 
 	*tag = tph_extract_tag(mem_type, pdev->tph_req_type, &info);
 
-	pci_dbg(pdev, "get steering tag: mem_type=%s, cpu_uid=%d, tag=%#04x\n",
+	pci_dbg(pdev, "get steering tag: mem_type=%s, cpu=%d, tag=%#04x\n",
 		(mem_type == TPH_MEM_TYPE_VM) ? "volatile" : "persistent",
-		cpu_uid, *tag);
+		cpu, *tag);
 
 	return 0;
 #else
diff --git a/include/linux/pci-tph.h b/include/linux/pci-tph.h
index ba28140ce670..be68cd17f2f8 100644
--- a/include/linux/pci-tph.h
+++ b/include/linux/pci-tph.h
@@ -25,7 +25,7 @@ int pcie_tph_set_st_entry(struct pci_dev *pdev,
 			  unsigned int index, u16 tag);
 int pcie_tph_get_cpu_st(struct pci_dev *dev,
 			enum tph_mem_type mem_type,
-			unsigned int cpu_uid, u16 *tag);
+			unsigned int cpu, u16 *tag);
 void pcie_disable_tph(struct pci_dev *pdev);
 int pcie_enable_tph(struct pci_dev *pdev, int mode);
 u16 pcie_tph_get_st_table_size(struct pci_dev *pdev);
@@ -36,7 +36,7 @@ static inline int pcie_tph_set_st_entry(struct pci_dev *pdev,
 { return -EINVAL; }
 static inline int pcie_tph_get_cpu_st(struct pci_dev *dev,
 				      enum tph_mem_type mem_type,
-				      unsigned int cpu_uid, u16 *tag)
+				      unsigned int cpu, u16 *tag)
 { return -EINVAL; }
 static inline void pcie_disable_tph(struct pci_dev *pdev) { }
 static inline int pcie_enable_tph(struct pci_dev *pdev, int mode)
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 06:58:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 06:58:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256663.1551190 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w37KS-0004Rr-90; Thu, 19 Mar 2026 06:58:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256663.1551190; Thu, 19 Mar 2026 06: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 1w37KS-0004Rf-5M; Thu, 19 Mar 2026 06:58:00 +0000
Received: by outflank-mailman (input) for mailman id 1256663;
 Thu, 19 Mar 2026 06:57:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=F4ko=BT=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w37KR-0003zM-0b
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 06:57:59 +0000
Received: from canpmsgout06.his.huawei.com (canpmsgout06.his.huawei.com
 [113.46.200.221]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f43612db-2360-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 07:57:57 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.162.197])
 by canpmsgout06.his.huawei.com (SkyGuard) with ESMTPS id 4fbxGZ3YfYzRhVC;
 Thu, 19 Mar 2026 14:52:54 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id BB35540363;
 Thu, 19 Mar 2026 14:57:53 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Thu, 19 Mar 2026 14:57: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: f43612db-2360-11f1-b164-2bf370ae4941
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=oewhn2IMbmtF3+gd2nTsD3HCqK7a08k6f+Tu2Cay+iU=;
	b=oFXndCwr5vh34n8gkLHTXEqaV/0hW8+wBcd4nv9xiy4HlW6wnZujLWAqw5SOSdiBqNavOPkDN
	9/+jlDZPPrN8NNsh9km26BRhYie1bdqp34HdjgLcKvnwuGrBr4N5KNZvnUcjwwYV3Sn8Jltg1CS
	eKmjnoNFW6S+6Hh8gKOwc+M=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>, Paul
 Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou
	<aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>, Thomas Gleixner
	<tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris
 Ostrovsky <boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V
 L <sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Jonathan
 Cameron <jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>, Yanteng
 Si <si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>, Kai Huang
	<kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>, Thomas Huth
	<thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>, Kevin Loughlin
	<kevinloughlin@google.com>, Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra
	<peterz@infradead.org>, Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin
 Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v9 5/7] ACPI: Centralize acpi_get_cpu_uid() declaration in include/linux/acpi.h
Date: Thu, 19 Mar 2026 14:57:33 +0800
Message-ID: <20260319065735.45954-6-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260319065735.45954-1-fengchengwen@huawei.com>
References: <20260319065735.45954-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100001.china.huawei.com (7.221.188.238) To
 kwepemk500009.china.huawei.com (7.202.194.94)

- Add acpi_get_cpu_uid() prototype to include/linux/acpi.h (global
  scope)
- Remove arch-specific acpi_get_cpu_uid() declarations from
  arm64/loongarch/riscv/x86 asm/acpi.h

This centralizes the interface declaration for consistency, avoiding
duplicate prototypes across architectures and simplifying future
maintenance.

Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 arch/arm64/include/asm/acpi.h     |  1 -
 arch/loongarch/include/asm/acpi.h |  1 -
 arch/riscv/include/asm/acpi.h     |  1 -
 arch/x86/include/asm/acpi.h       |  2 --
 include/linux/acpi.h              | 11 +++++++++++
 5 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
index 2219a3301e72..bdb0ecf95b5c 100644
--- a/arch/arm64/include/asm/acpi.h
+++ b/arch/arm64/include/asm/acpi.h
@@ -118,7 +118,6 @@ static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
 {
 	return	acpi_cpu_get_madt_gicc(cpu)->uid;
 }
-int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
 int get_cpu_for_acpi_id(u32 uid);
 
 static inline void arch_fix_phys_package_id(int num, u32 slot) { }
diff --git a/arch/loongarch/include/asm/acpi.h b/arch/loongarch/include/asm/acpi.h
index 8bb101b4557e..7376840fa9f7 100644
--- a/arch/loongarch/include/asm/acpi.h
+++ b/arch/loongarch/include/asm/acpi.h
@@ -44,7 +44,6 @@ static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
 {
 	return acpi_core_pic[cpu_logical_map(cpu)].processor_id;
 }
-int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
 
 #endif /* !CONFIG_ACPI */
 
diff --git a/arch/riscv/include/asm/acpi.h b/arch/riscv/include/asm/acpi.h
index f3520cc85af3..6e13695120bc 100644
--- a/arch/riscv/include/asm/acpi.h
+++ b/arch/riscv/include/asm/acpi.h
@@ -65,7 +65,6 @@ static inline u32 get_acpi_id_for_cpu(int cpu)
 {
 	return acpi_cpu_get_madt_rintc(cpu)->uid;
 }
-int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
 
 int acpi_get_riscv_isa(struct acpi_table_header *table,
 		       unsigned int cpu, const char **isa);
diff --git a/arch/x86/include/asm/acpi.h b/arch/x86/include/asm/acpi.h
index 92b5c27c4fea..a03aa6f999d1 100644
--- a/arch/x86/include/asm/acpi.h
+++ b/arch/x86/include/asm/acpi.h
@@ -157,8 +157,6 @@ static inline bool acpi_has_cpu_in_madt(void)
 	return !!acpi_lapic;
 }
 
-int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
-
 #define ACPI_HAVE_ARCH_SET_ROOT_POINTER
 static __always_inline void acpi_arch_set_root_pointer(u64 addr)
 {
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 4d2f0bed7a06..74a73f0e5944 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -324,6 +324,17 @@ int acpi_unmap_cpu(int cpu);
 
 acpi_handle acpi_get_processor_handle(int cpu);
 
+/**
+ * acpi_get_cpu_uid() - Get ACPI Processor UID of from MADT table
+ * @cpu: Logical CPU number (0-based)
+ * @uid: Pointer to store ACPI Processor UID
+ *
+ * Return: 0 on success (ACPI Processor ID stored in *uid);
+ *         -EINVAL if CPU number is invalid or out of range;
+ *         -ENODEV if ACPI Processor UID for the CPU is not found.
+ */
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
+
 #ifdef CONFIG_ACPI_HOTPLUG_IOAPIC
 int acpi_get_ioapic_id(acpi_handle handle, u32 gsi_base, u64 *phys_addr);
 #endif
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 06:58:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 06:58:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256660.1551164 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w37KM-0003mL-FW; Thu, 19 Mar 2026 06:57:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256660.1551164; Thu, 19 Mar 2026 06: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 1w37KM-0003mE-BK; Thu, 19 Mar 2026 06:57:54 +0000
Received: by outflank-mailman (input) for mailman id 1256660;
 Thu, 19 Mar 2026 06:57: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=F4ko=BT=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w37KK-0003m8-V8
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 06:57:53 +0000
Received: from canpmsgout09.his.huawei.com (canpmsgout09.his.huawei.com
 [113.46.200.224]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ef0ac02a-2360-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 07:57:49 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.200])
 by canpmsgout09.his.huawei.com (SkyGuard) with ESMTPS id 4fbxGM2bnGz1cyq5;
 Thu, 19 Mar 2026 14:52:43 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 34AD840563;
 Thu, 19 Mar 2026 14:57:43 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Thu, 19 Mar 2026 14:57:40 +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: ef0ac02a-2360-11f1-9ccf-f158ae23cfc8
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=d2oQnHa+M701t1+AFct3mw+oRojrQxSf815aZIrcRXk=;
	b=PxLkfRfHbXPXHwaXz1Lf4WNBr5zpx65AfQJbRpiGgGp7dlUjDv37AxRS6TOPrAMO6e98o3bVY
	wROoFooN3Zk1pKb9aF8gGAVO20HhUuWlJFJrZPOJfTsBFYy9VO6CILxOhZ4mU3amRq6OgxLwfRE
	3fr94QlCnXjIwJfLE0IabAM=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>, Paul
 Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou
	<aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>, Thomas Gleixner
	<tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris
 Ostrovsky <boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V
 L <sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Jonathan
 Cameron <jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>, Yanteng
 Si <si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>, Kai Huang
	<kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>, Thomas Huth
	<thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>, Kevin Loughlin
	<kevinloughlin@google.com>, Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra
	<peterz@infradead.org>, Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin
 Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v9 0/7] ACPI: Unify CPU UID interface and fix ARM64 TPH steer-tag issue
Date: Thu, 19 Mar 2026 14:57:28 +0800
Message-ID: <20260319065735.45954-1-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100001.china.huawei.com (7.221.188.238) To
 kwepemk500009.china.huawei.com (7.202.194.94)

This patchset unifies ACPI Processor UID retrieval across
arm64/loongarch/riscv/x86 via acpi_get_cpu_uid() (with input validation)
and fixes ARM64 CPU steer-tag retrieval failure in PCI/TPH:

1-4: Add acpi_get_cpu_uid() for arm64/loongarch/riscv/x86 (update
     respective users)
5: Centralize acpi_get_cpu_uid() declaration in include/linux/acpi.h
6: Clean up ACPI/PPTT and remove unused get_acpi_id_for_cpu()
7: Fix ARM64 platform CPU steer-tag retrieval failure

The interface refactor ensures consistent CPU UID retrieval across
architectures (no functional changes for valid inputs) and provides the
unified interface required for the ARM64 TPH fix.

---
Changes in v9:
- Address Bjorn's review: split commits to each platform so that make
  them easy to review

Changes in v8:
- Moving arm64's get_cpu_for_acpi_id() to kernel/acpi.c which address
  Jeremy's review

Changes in v7:
- Refine first commit which address Jonathan's reviews
- Fix x86 implement bug (not consider INVALID-ID) which address Peter's
  review
- Fix CI error of x86 implement by moving function to acpi/boot.c

Changes in v6:
- Rename existing get_acpi_id_for_cpu() to acpi_get_cpu_uid()
- Split x86's modify as one commit

Chengwen Feng (7):
  arm64/acpi: Add acpi_get_cpu_uid() and switch arm_cspmu to use it
  loongarch/acpi: Add acpi_get_cpu_uid() declaration and implementation
  riscv/acpi: Add acpi_get_cpu_uid() implementation and update users
  x86/acpi: Add acpi_get_cpu_uid() implementation and update Xen users
  ACPI: Centralize acpi_get_cpu_uid() declaration in
    include/linux/acpi.h
  ACPI: PPTT: Use acpi_get_cpu_uid() and remove get_acpi_id_for_cpu()
  PCI/TPH: Fix get cpu steer-tag fail on ARM64 platform

 Documentation/PCI/tph.rst          |  4 +--
 arch/arm64/include/asm/acpi.h      | 17 +---------
 arch/arm64/kernel/acpi.c           | 30 ++++++++++++++++++
 arch/loongarch/include/asm/acpi.h  |  5 ---
 arch/loongarch/kernel/acpi.c       |  9 ++++++
 arch/riscv/include/asm/acpi.h      |  4 ---
 arch/riscv/kernel/acpi.c           | 16 ++++++++++
 arch/riscv/kernel/acpi_numa.c      |  9 ++++--
 arch/x86/include/asm/cpu.h         |  1 -
 arch/x86/include/asm/smp.h         |  1 -
 arch/x86/kernel/acpi/boot.c        | 20 ++++++++++++
 arch/x86/xen/enlighten_hvm.c       |  5 +--
 drivers/acpi/pptt.c                | 50 ++++++++++++++++++++++--------
 drivers/acpi/riscv/rhct.c          |  7 ++++-
 drivers/pci/tph.c                  | 16 +++++++---
 drivers/perf/arm_cspmu/arm_cspmu.c |  6 ++--
 include/linux/acpi.h               | 11 +++++++
 include/linux/pci-tph.h            |  4 +--
 18 files changed, 158 insertions(+), 57 deletions(-)

-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 06:58:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 06:58:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256664.1551199 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w37KT-0004fv-FZ; Thu, 19 Mar 2026 06:58:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256664.1551199; Thu, 19 Mar 2026 06:58:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w37KT-0004fn-Bi; Thu, 19 Mar 2026 06:58:01 +0000
Received: by outflank-mailman (input) for mailman id 1256664;
 Thu, 19 Mar 2026 06: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=F4ko=BT=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w37KS-0003m8-33
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 06:58:00 +0000
Received: from canpmsgout12.his.huawei.com (canpmsgout12.his.huawei.com
 [113.46.200.227]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ef43a9bb-2360-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 07:57:48 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.214])
 by canpmsgout12.his.huawei.com (SkyGuard) with ESMTPS id 4fbxFp1D5kznTZF;
 Thu, 19 Mar 2026 14:52:14 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 5103F40561;
 Thu, 19 Mar 2026 14:57:45 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Thu, 19 Mar 2026 14:57:43 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ef43a9bb-2360-11f1-9ccf-f158ae23cfc8
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=1LtXSgcAkmn0PF4spa6njy7dooXhT6HaBBUxjinTlGk=;
	b=Oa0avR/fuCpQTzS1Xgh5wf4j++7qZ/jAEVW8ijiRm8p6S+AYfiPzzTmjoGLIC6Sib+sqhvf4Z
	cMqAKYfN+c1Au0EeuJL4A3/AYuS/IaW/W2vsRf9IUiBmP7LGEt5BPPDsMSBx4yzrH8AlmATlZ5/
	RyDrj0/5gHMF4tFkUTFTf0M=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>, Paul
 Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou
	<aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>, Thomas Gleixner
	<tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris
 Ostrovsky <boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V
 L <sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Jonathan
 Cameron <jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>, Yanteng
 Si <si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>, Kai Huang
	<kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>, Thomas Huth
	<thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>, Kevin Loughlin
	<kevinloughlin@google.com>, Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra
	<peterz@infradead.org>, Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin
 Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v9 1/7] arm64/acpi: Add acpi_get_cpu_uid() and switch arm_cspmu to use it
Date: Thu, 19 Mar 2026 14:57:29 +0800
Message-ID: <20260319065735.45954-2-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260319065735.45954-1-fengchengwen@huawei.com>
References: <20260319065735.45954-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100001.china.huawei.com (7.221.188.238) To
 kwepemk500009.china.huawei.com (7.202.194.94)

Add arch-specific acpi_get_cpu_uid() for arm64, and update dependent
code:
- Declare acpi_get_cpu_uid() in arch/arm64/include/asm/acpi.h
- Implement acpi_get_cpu_uid() with input parameter validation
- Replace get_acpi_id_for_cpu() with acpi_get_cpu_uid() in
  drivers/perf/arm_cspmu/arm_cspmu.c
- Reimplement get_cpu_for_acpi_id() based on acpi_get_cpu_uid() (to
  align with new interface) and move its implementation next to
  acpi_get_cpu_uid()

This is the first step towards unifying ACPI CPU UID retrieval interface
across architectures, while adding input validation for robustness.

Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 arch/arm64/include/asm/acpi.h      | 14 ++------------
 arch/arm64/kernel/acpi.c           | 30 ++++++++++++++++++++++++++++++
 drivers/perf/arm_cspmu/arm_cspmu.c |  6 ++++--
 3 files changed, 36 insertions(+), 14 deletions(-)

diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
index c07a58b96329..2219a3301e72 100644
--- a/arch/arm64/include/asm/acpi.h
+++ b/arch/arm64/include/asm/acpi.h
@@ -118,18 +118,8 @@ static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
 {
 	return	acpi_cpu_get_madt_gicc(cpu)->uid;
 }
-
-static inline int get_cpu_for_acpi_id(u32 uid)
-{
-	int cpu;
-
-	for (cpu = 0; cpu < nr_cpu_ids; cpu++)
-		if (acpi_cpu_get_madt_gicc(cpu) &&
-		    uid == get_acpi_id_for_cpu(cpu))
-			return cpu;
-
-	return -EINVAL;
-}
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
+int get_cpu_for_acpi_id(u32 uid);
 
 static inline void arch_fix_phys_package_id(int num, u32 slot) { }
 void __init acpi_init_cpus(void);
diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
index af90128cfed5..24b9d934be54 100644
--- a/arch/arm64/kernel/acpi.c
+++ b/arch/arm64/kernel/acpi.c
@@ -458,3 +458,33 @@ int acpi_unmap_cpu(int cpu)
 }
 EXPORT_SYMBOL(acpi_unmap_cpu);
 #endif /* CONFIG_ACPI_HOTPLUG_CPU */
+
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
+{
+	struct acpi_madt_generic_interrupt *gicc;
+
+	if (cpu >= nr_cpu_ids)
+		return -EINVAL;
+
+	gicc = acpi_cpu_get_madt_gicc(cpu);
+	if (!gicc)
+		return -ENODEV;
+
+	*uid = gicc->uid;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
+
+int get_cpu_for_acpi_id(u32 uid)
+{
+	u32 cpu_uid;
+	int ret;
+
+	for (int cpu = 0; cpu < nr_cpu_ids; cpu++) {
+		ret = acpi_get_cpu_uid(cpu, &cpu_uid);
+		if (ret == 0 && uid == cpu_uid)
+			return cpu;
+	}
+
+	return -EINVAL;
+}
diff --git a/drivers/perf/arm_cspmu/arm_cspmu.c b/drivers/perf/arm_cspmu/arm_cspmu.c
index 34430b68f602..ed72c3d1f796 100644
--- a/drivers/perf/arm_cspmu/arm_cspmu.c
+++ b/drivers/perf/arm_cspmu/arm_cspmu.c
@@ -1107,15 +1107,17 @@ static int arm_cspmu_acpi_get_cpus(struct arm_cspmu *cspmu)
 {
 	struct acpi_apmt_node *apmt_node;
 	int affinity_flag;
+	u32 cpu_uid;
 	int cpu;
+	int ret;
 
 	apmt_node = arm_cspmu_apmt_node(cspmu->dev);
 	affinity_flag = apmt_node->flags & ACPI_APMT_FLAGS_AFFINITY;
 
 	if (affinity_flag == ACPI_APMT_FLAGS_AFFINITY_PROC) {
 		for_each_possible_cpu(cpu) {
-			if (apmt_node->proc_affinity ==
-			    get_acpi_id_for_cpu(cpu)) {
+			ret = acpi_get_cpu_uid(cpu, &cpu_uid);
+			if (ret == 0 && apmt_node->proc_affinity == cpu_uid) {
 				cpumask_set_cpu(cpu, &cspmu->associated_cpus);
 				break;
 			}
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 06:58:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 06:58:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256662.1551176 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w37KQ-00043L-0Y; Thu, 19 Mar 2026 06:57:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256662.1551176; Thu, 19 Mar 2026 06:57:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w37KP-00042n-T6; Thu, 19 Mar 2026 06:57:57 +0000
Received: by outflank-mailman (input) for mailman id 1256662;
 Thu, 19 Mar 2026 06:57: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=F4ko=BT=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w37KP-0003m8-0D
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 06:57:57 +0000
Received: from canpmsgout12.his.huawei.com (canpmsgout12.his.huawei.com
 [113.46.200.227]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f2e26a63-2360-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 07:57:54 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.162.92])
 by canpmsgout12.his.huawei.com (SkyGuard) with ESMTPS id 4fbxFw3N4cznTbj;
 Thu, 19 Mar 2026 14:52:20 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 9F1D140565;
 Thu, 19 Mar 2026 14:57:51 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Thu, 19 Mar 2026 14:57:49 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f2e26a63-2360-11f1-9ccf-f158ae23cfc8
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=PORbZUhpQhzjbuApsvH0fxa/MWQvKgK1Jvyh1G8ZdcY=;
	b=2/eFya07ZKYvHLC9suiHJtQiDz3ed6rQPINqksGFpjqlzmici8rg+USCdp4afGx6mnnjV7/8N
	sC1maDZx1p8D5i3n/VAxK7AGG3b5eYoCzJL0jLiVMNEZAWBMkdKSiKTNjyHPSvDA5R0kMbOaF3J
	gz4K2Ly5bUWgt/t5oBO27bI=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>, Paul
 Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou
	<aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>, Thomas Gleixner
	<tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris
 Ostrovsky <boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V
 L <sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Jonathan
 Cameron <jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>, Yanteng
 Si <si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>, Kai Huang
	<kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>, Thomas Huth
	<thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>, Kevin Loughlin
	<kevinloughlin@google.com>, Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra
	<peterz@infradead.org>, Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin
 Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v9 4/7] x86/acpi: Add acpi_get_cpu_uid() implementation and update Xen users
Date: Thu, 19 Mar 2026 14:57:32 +0800
Message-ID: <20260319065735.45954-5-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260319065735.45954-1-fengchengwen@huawei.com>
References: <20260319065735.45954-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100001.china.huawei.com (7.221.188.238) To
 kwepemk500009.china.huawei.com (7.202.194.94)

Add arch-specific acpi_get_cpu_uid() for x86:
- Declare acpi_get_cpu_uid() in arch/x86/include/asm/acpi.h
- Implement acpi_get_cpu_uid() with input parameter validation
- Replace cpu_acpi_id() with acpi_get_cpu_uid() in Xen-related code
- Remove the now-unused cpu_acpi_id() function

Extend the unified ACPI CPU UID interface to x86, ensuring consistent
error handling and input validation across all ACPI-enabled
architectures.

Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 arch/x86/include/asm/acpi.h  |  2 ++
 arch/x86/include/asm/cpu.h   |  1 -
 arch/x86/include/asm/smp.h   |  1 -
 arch/x86/kernel/acpi/boot.c  | 20 ++++++++++++++++++++
 arch/x86/xen/enlighten_hvm.c |  5 +++--
 5 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/arch/x86/include/asm/acpi.h b/arch/x86/include/asm/acpi.h
index a03aa6f999d1..92b5c27c4fea 100644
--- a/arch/x86/include/asm/acpi.h
+++ b/arch/x86/include/asm/acpi.h
@@ -157,6 +157,8 @@ static inline bool acpi_has_cpu_in_madt(void)
 	return !!acpi_lapic;
 }
 
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
+
 #define ACPI_HAVE_ARCH_SET_ROOT_POINTER
 static __always_inline void acpi_arch_set_root_pointer(u64 addr)
 {
diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h
index ad235dda1ded..57a0786dfd75 100644
--- a/arch/x86/include/asm/cpu.h
+++ b/arch/x86/include/asm/cpu.h
@@ -11,7 +11,6 @@
 
 #ifndef CONFIG_SMP
 #define cpu_physical_id(cpu)			boot_cpu_physical_apicid
-#define cpu_acpi_id(cpu)			0
 #endif /* CONFIG_SMP */
 
 #ifdef CONFIG_HOTPLUG_CPU
diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
index 84951572ab81..05d1d479b4cf 100644
--- a/arch/x86/include/asm/smp.h
+++ b/arch/x86/include/asm/smp.h
@@ -130,7 +130,6 @@ __visible void smp_call_function_interrupt(struct pt_regs *regs);
 __visible void smp_call_function_single_interrupt(struct pt_regs *r);
 
 #define cpu_physical_id(cpu)	per_cpu(x86_cpu_to_apicid, cpu)
-#define cpu_acpi_id(cpu)	per_cpu(x86_cpu_to_acpiid, cpu)
 
 /*
  * This function is needed by all SMP systems. It must _always_ be valid
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index a3f2fb1fea1b..ceba24f65ae3 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -1848,3 +1848,23 @@ void __iomem * (*acpi_os_ioremap)(acpi_physical_address phys, acpi_size size) =
 	x86_acpi_os_ioremap;
 EXPORT_SYMBOL_GPL(acpi_os_ioremap);
 #endif
+
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
+{
+	u32 acpi_id;
+
+	if (cpu >= nr_cpu_ids)
+		return -EINVAL;
+
+#ifdef CONFIG_SMP
+	acpi_id = per_cpu(x86_cpu_to_acpiid, cpu);
+	if (acpi_id == CPU_ACPIID_INVALID)
+		return -ENODEV;
+#else
+	acpi_id = 0;
+#endif
+
+	*uid = acpi_id;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
diff --git a/arch/x86/xen/enlighten_hvm.c b/arch/x86/xen/enlighten_hvm.c
index fe57ff85d004..2f9fa27e5a3c 100644
--- a/arch/x86/xen/enlighten_hvm.c
+++ b/arch/x86/xen/enlighten_hvm.c
@@ -151,6 +151,7 @@ static void xen_hvm_crash_shutdown(struct pt_regs *regs)
 
 static int xen_cpu_up_prepare_hvm(unsigned int cpu)
 {
+	u32 cpu_uid;
 	int rc = 0;
 
 	/*
@@ -161,8 +162,8 @@ static int xen_cpu_up_prepare_hvm(unsigned int cpu)
 	 */
 	xen_uninit_lock_cpu(cpu);
 
-	if (cpu_acpi_id(cpu) != CPU_ACPIID_INVALID)
-		per_cpu(xen_vcpu_id, cpu) = cpu_acpi_id(cpu);
+	if (acpi_get_cpu_uid(cpu, &cpu_uid) == 0)
+		per_cpu(xen_vcpu_id, cpu) = cpu_uid;
 	else
 		per_cpu(xen_vcpu_id, cpu) = cpu;
 	xen_vcpu_setup(cpu);
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 07:05:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 07:05:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256722.1551235 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w37Rr-0000Xt-Cc; Thu, 19 Mar 2026 07:05:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256722.1551235; Thu, 19 Mar 2026 07:05:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w37Rr-0000Xm-9F; Thu, 19 Mar 2026 07:05:39 +0000
Received: by outflank-mailman (input) for mailman id 1256722;
 Thu, 19 Mar 2026 07:05: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=2tj/=BT=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w37Rp-0000XN-Km
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 07:05:37 +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 06ecbf34-2362-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 08:05:35 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-6670ba39400so1129907a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 00:05:35 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-667b14976f1sm3306167a12.31.2026.03.19.00.05.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Mar 2026 00:05:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 06ecbf34-2362-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773903935; x=1774508735; 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=wByaUL24vrAyIuOx18rXl10HJ+lmVFi8kPhiaZgqoCk=;
        b=TGEUJ3gETgxCVkWnfNaYFpy5MbbRgo8fWJBPiU8QiI0HcDYtWTefFBzW8F08oEP1XH
         o+K/0zJGxQWBmBjnt2OojvLqclslHWX9Z6kfBZmY6W0cW9uS41De8lGdAa6yuVh0bARl
         JIt0ZPSBylGWHd6BofEBH+MVhccl+Pt41q5O2MQfwocFZJDXWE8Ol5kE4DfbjqimMAoi
         cFFGvtlbTwJTOhAvB3uXLnFD/lkOlm4aOo8/ZXMNToBOL2p1ewX4vLFDONQmaquLiNTp
         496wslzsBd1z6GNp9qWj1UPo/1xzMkq2b5kdCQPpBvjuVykFay1O9hzcM0J8ZTHH2hmo
         fGIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773903935; x=1774508735;
        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=wByaUL24vrAyIuOx18rXl10HJ+lmVFi8kPhiaZgqoCk=;
        b=ifTMxvmyH2+U9u+O95/EAXSXB2zqLmXJK99ljFdXs+ZWOGBXj1BD5BIReqYL5PMAoo
         hzF/RqtFuxUS9HgPSKBGwjVE6jx2gVfktBuSBpsR589KQgbfPmU6t9ZKlGP5AlQPnJ9Z
         YnH1HK4V8S67+Xmut+SHIGOctjSD93SM7AbxdQtR/W2Txxb9nCjLKcNhkPH3NxCpsfQ/
         RJFdZC/OLFZRTBfZeo1smPNo3iqMRQm6IaXJw2Koat2T25pUibOBG7z7lzrnObegTQSk
         LOYqQBOD8v9SgziDE52BqJxRcfjrmepcBuuNXPJuOXw5o8N6D4101QAfvcT5WOma1rug
         ieUA==
X-Forwarded-Encrypted: i=1; AJvYcCVpCFgk9DdaQ5ZqX/HRYLFdEfYiVjRVthQRsNZS/zNAhT8fBg9wt2ukP6I3qhUqVYpO6hC2f74pfvw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwcRpIAWwFVH9VLZo6d332zAXecjL3qiHnCg4AjFTWkCDxSE8pB
	cHycYQd8rlqVGdejH4Sdg0WFGrgpTnr5d90agDFcWhv/KePt4kMfzDh4LbxeXqkgCq0=
X-Gm-Gg: ATEYQzzLpj0Lib3lY6e+DjTrTYjtpcfQuHDO38oDzrXKSNGyY9g4LyRjj/Pm4HKJY9U
	0xQiOAOPIjfFWmBigVBYzpdXi/QRiH6N/xl49SlLG+5Qr/Dp/VKpUjlTsObFJz9DiLwuav9stGA
	ul6S6tBxpJCxcD85lLAOa9ge8ls6IyKgDdKwTv8Ue5mnQe5M2bhYPqqPNJqR2p5tDfNXhOuGwnO
	7E4Cg08zLgWtYXHu/4rvW8iPlqh0lhTYDY1Ck+8wAQcaDqVCXmu+ZxOvaRxh4LfQT1gObZs80n7
	UdpxITNZz1wFRQwVfk34cL5vpU7U2R1OSRCYIGIa3ABO5BCNLuGNK3ZvIz6SNXy4tM+X8uOHQ0Q
	fnD8hGkECcPWLXPDeby/SguWCch59XsN84yf3CF5spT8dFFvwloadybVXqigCQCOzrmxsvufTJ8
	oAwlPrxiGsXCHGAAkOSq0m9t4kMfByckpQ3kECTWRAuINagO7fdykNwabQ3LuvUSkA/CVvjkoQP
	J37d16kN9d9+C9tUQdRoBSRF6yg1mfXYpa60EOaHiRg3U8UsNu9fA==
X-Received: by 2002:a05:6402:458a:b0:668:58b6:5061 with SMTP id 4fb4d7f45d1cf-66858b651e5mr869453a12.23.1773903934927;
        Thu, 19 Mar 2026 00:05:34 -0700 (PDT)
Message-ID: <5f0ca1fc-9eb4-48ae-b578-f490a6ba5ea3@suse.com>
Date: Thu, 19 Mar 2026 08:05:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 4/7] x86/acpi: Add acpi_get_cpu_uid() implementation
 and update Xen users
To: Chengwen Feng <fengchengwen@huawei.com>,
 Bjorn Helgaas <bhelgaas@google.com>,
 Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>,
 "Rafael J . Wysocki" <rafael@kernel.org>
Cc: Jonathan Corbet <corbet@lwn.net>, Shuah Khan <skhan@linuxfoundation.org>,
 Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>,
 Paul Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>,
 Albert Ou <aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H . Peter Anvin" <hpa@zytor.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>,
 Sunil V L <sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>,
 Jonathan Cameron <jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>,
 Yanteng Si <si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>,
 Kai Huang <kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Thomas Huth <thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>,
 Kevin Loughlin <kevinloughlin@google.com>, Zheyun Shen
 <szy0127@sjtu.edu.cn>, Peter Zijlstra <peterz@infradead.org>,
 Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin Li <xin@zytor.com>,
 "Ahmed S . Darwish" <darwi@linutronix.de>,
 Sohil Mehta <sohil.mehta@intel.com>,
 Ilkka Koskinen <ilkka@os.amperecomputing.com>,
 Robin Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>,
 Besar Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>,
 Wei Huang <wei.huang2@amd.com>,
 Andy Gospodarek <andrew.gospodarek@broadcom.com>,
 Somnath Kotur <somnath.kotur@broadcom.com>, punit.agrawal@oss.qualcomm.com,
 guohanjun@huawei.com, suzuki.poulose@arm.com, ryan.roberts@arm.com,
 chenl311@chinatelecom.cn, masahiroy@kernel.org,
 wangyuquan1236@phytium.com.cn, anshuman.khandual@arm.com,
 heinrich.schuchardt@canonical.com, Eric.VanTassell@amd.com,
 wangzhou1@hisilicon.com, wanghuiqiang@huawei.com, liuyonglong@huawei.com,
 linux-pci@vger.kernel.org, linux-doc@vger.kernel.org,
 linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
 loongarch@lists.linux.dev, linux-riscv@lists.infradead.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-perf-users@vger.kernel.org, stable@vger.kernel.org
References: <20260319065735.45954-1-fengchengwen@huawei.com>
 <20260319065735.45954-5-fengchengwen@huawei.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: <20260319065735.45954-5-fengchengwen@huawei.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------3tp0T0MlZQxaVhr4dI0c0IO4"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------3tp0T0MlZQxaVhr4dI0c0IO4
Content-Type: multipart/mixed; boundary="------------T7ItBqu2YKFGEfwY3NGBxjdV";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Chengwen Feng <fengchengwen@huawei.com>,
 Bjorn Helgaas <bhelgaas@google.com>,
 Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>,
 "Rafael J . Wysocki" <rafael@kernel.org>
Cc: Jonathan Corbet <corbet@lwn.net>, Shuah Khan <skhan@linuxfoundation.org>,
 Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>,
 Paul Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>,
 Albert Ou <aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H . Peter Anvin" <hpa@zytor.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>,
 Sunil V L <sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>,
 Jonathan Cameron <jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>,
 Yanteng Si <si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>,
 Kai Huang <kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>,
 Thomas Huth <thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>,
 Kevin Loughlin <kevinloughlin@google.com>, Zheyun Shen
 <szy0127@sjtu.edu.cn>, Peter Zijlstra <peterz@infradead.org>,
 Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin Li <xin@zytor.com>,
 "Ahmed S . Darwish" <darwi@linutronix.de>,
 Sohil Mehta <sohil.mehta@intel.com>,
 Ilkka Koskinen <ilkka@os.amperecomputing.com>,
 Robin Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>,
 Besar Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>,
 Wei Huang <wei.huang2@amd.com>,
 Andy Gospodarek <andrew.gospodarek@broadcom.com>,
 Somnath Kotur <somnath.kotur@broadcom.com>, punit.agrawal@oss.qualcomm.com,
 guohanjun@huawei.com, suzuki.poulose@arm.com, ryan.roberts@arm.com,
 chenl311@chinatelecom.cn, masahiroy@kernel.org,
 wangyuquan1236@phytium.com.cn, anshuman.khandual@arm.com,
 heinrich.schuchardt@canonical.com, Eric.VanTassell@amd.com,
 wangzhou1@hisilicon.com, wanghuiqiang@huawei.com, liuyonglong@huawei.com,
 linux-pci@vger.kernel.org, linux-doc@vger.kernel.org,
 linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
 loongarch@lists.linux.dev, linux-riscv@lists.infradead.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-perf-users@vger.kernel.org, stable@vger.kernel.org
Message-ID: <5f0ca1fc-9eb4-48ae-b578-f490a6ba5ea3@suse.com>
Subject: Re: [PATCH v9 4/7] x86/acpi: Add acpi_get_cpu_uid() implementation
 and update Xen users
References: <20260319065735.45954-1-fengchengwen@huawei.com>
 <20260319065735.45954-5-fengchengwen@huawei.com>
In-Reply-To: <20260319065735.45954-5-fengchengwen@huawei.com>

--------------T7ItBqu2YKFGEfwY3NGBxjdV
Content-Type: multipart/mixed; boundary="------------dgRJU17tRiil2XqvArK0zE1P"

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

T24gMTkuMDMuMjYgMDc6NTcsIENoZW5nd2VuIEZlbmcgd3JvdGU6DQo+IEFkZCBhcmNoLXNw
ZWNpZmljIGFjcGlfZ2V0X2NwdV91aWQoKSBmb3IgeDg2Og0KPiAtIERlY2xhcmUgYWNwaV9n
ZXRfY3B1X3VpZCgpIGluIGFyY2gveDg2L2luY2x1ZGUvYXNtL2FjcGkuaA0KPiAtIEltcGxl
bWVudCBhY3BpX2dldF9jcHVfdWlkKCkgd2l0aCBpbnB1dCBwYXJhbWV0ZXIgdmFsaWRhdGlv
bg0KPiAtIFJlcGxhY2UgY3B1X2FjcGlfaWQoKSB3aXRoIGFjcGlfZ2V0X2NwdV91aWQoKSBp
biBYZW4tcmVsYXRlZCBjb2RlDQo+IC0gUmVtb3ZlIHRoZSBub3ctdW51c2VkIGNwdV9hY3Bp
X2lkKCkgZnVuY3Rpb24NCj4gDQo+IEV4dGVuZCB0aGUgdW5pZmllZCBBQ1BJIENQVSBVSUQg
aW50ZXJmYWNlIHRvIHg4NiwgZW5zdXJpbmcgY29uc2lzdGVudA0KPiBlcnJvciBoYW5kbGlu
ZyBhbmQgaW5wdXQgdmFsaWRhdGlvbiBhY3Jvc3MgYWxsIEFDUEktZW5hYmxlZA0KPiBhcmNo
aXRlY3R1cmVzLg0KPiANCj4gQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcNCj4gU2lnbmVk
LW9mZi1ieTogQ2hlbmd3ZW4gRmVuZyA8ZmVuZ2NoZW5nd2VuQGh1YXdlaS5jb20+DQo+IFJl
dmlld2VkLWJ5OiBKb25hdGhhbiBDYW1lcm9uIDxqb25hdGhhbi5jYW1lcm9uQGh1YXdlaS5j
b20+DQoNClJldmlld2VkLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQoN
Cg0KSnVlcmdlbg0K
--------------dgRJU17tRiil2XqvArK0zE1P
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-----

--------------dgRJU17tRiil2XqvArK0zE1P--

--------------T7ItBqu2YKFGEfwY3NGBxjdV--

--------------3tp0T0MlZQxaVhr4dI0c0IO4
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/Ey8FAmm7oD0FAwAAAAAACgkQsN6d1ii/Ey+T
4Af7BgRCEqltwxse9iwcB9WhOIH6KFt1MYOFZq112r1cJg+TH/WEse7TN58VY5qa+q1hJREPnezC
LCVT3XE6GrfGVi/BneCT3fapyoRpJo8WUFwvtqIj+QHgdvgl1ic3A6m/3x9PkqZwsbbueYZD9m57
EZQ6a1JXiStwakpyRJTmIi5kL4NFQJWMIgznjeOmWCYpg9vhkpfWZ/x7Tr+tb0OdX+DuqRw+ken9
0FrgxNuxF96ZiXq2q5PB2ntXKoNpSS2n+NIqcn2dsIAb8ICVS1sZHNu5TtbcKPMCz02KbrLaCYa/
WkP0G6aIrA3XQwzQDZddXKuFcNeZqR9TXz4FC71G4Q==
=cF9V
-----END PGP SIGNATURE-----

--------------3tp0T0MlZQxaVhr4dI0c0IO4--


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 07:13:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 07:13:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256745.1551243 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w37ZN-0002Y2-2w; Thu, 19 Mar 2026 07:13:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256745.1551243; Thu, 19 Mar 2026 07:13:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w37ZN-0002Xv-0M; Thu, 19 Mar 2026 07:13:25 +0000
Received: by outflank-mailman (input) for mailman id 1256745;
 Thu, 19 Mar 2026 07:13: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=F4ko=BT=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w37ZK-0002Xm-W1
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 07:13:24 +0000
Received: from canpmsgout09.his.huawei.com (canpmsgout09.his.huawei.com
 [113.46.200.224]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 185c9dc0-2363-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 08:13:17 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.127])
 by canpmsgout09.his.huawei.com (SkyGuard) with ESMTPS id 4fbxcD4jF6z1cyPP;
 Thu, 19 Mar 2026 15:08:12 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 8543840363;
 Thu, 19 Mar 2026 15:13:12 +0800 (CST)
Received: from [10.67.121.161] (10.67.121.161) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Thu, 19 Mar 2026 15:13: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: 185c9dc0-2363-11f1-9ccf-f158ae23cfc8
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=rOgEX5LRjbf3VsJc30kly4+FTpT24EGUmpEIfFvp8FU=;
	b=RRC8Qk+vDk32R8JHqebkm1tGtkV6aqC7Rw/5tqI1aHILlK2h2Fd3giMbyZt1JjR+/2C5nr3jN
	LCoxznkWL7DSqvcKp14FgIYEdmkocS9XrRO5OVujVzcsJ5/bSzagK1Q0OB6Ne0iQgcMvxD/5fTO
	P3k1x2ro3WxAtvbL88NnXM8=
Message-ID: <264525a9-aa36-4848-80c0-f8cf246f93b8@huawei.com>
Date: Thu, 19 Mar 2026 15:13:09 +0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 1/3] ACPI: Refactor get_acpi_id_for_cpu() to
 acpi_get_cpu_uid() on non-x86
To: Bjorn Helgaas <helgaas@kernel.org>
CC: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>, Jonathan Corbet <corbet@lwn.net>, Ingo Molnar
	<mingo@redhat.com>, Juergen Gross <jgross@suse.com>, Boris Ostrovsky
	<boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V L
	<sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Jonathan
 Cameron <jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>, Yanteng
 Si <si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>, Kai Huang
	<kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>, Thomas Huth
	<thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>, Kevin Loughlin
	<kevinloughlin@google.com>, Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra
	<peterz@infradead.org>, Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin
 Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <linux-pci@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <loongarch@lists.linux.dev>,
	<linux-riscv@lists.infradead.org>, <xen-devel@lists.xenproject.org>,
	<linux-acpi@vger.kernel.org>, <linux-perf-users@vger.kernel.org>,
	<stable@vger.kernel.org>
References: <20260318213458.GA474040@bhelgaas>
Content-Language: en-US
From: fengchengwen <fengchengwen@huawei.com>
In-Reply-To: <20260318213458.GA474040@bhelgaas>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.67.121.161]
X-ClientProxiedBy: kwepems200002.china.huawei.com (7.221.188.68) To
 kwepemk500009.china.huawei.com (7.202.194.94)

On 3/19/2026 5:34 AM, Bjorn Helgaas wrote:
> On Wed, Mar 18, 2026 at 02:01:49PM +0800, Chengwen Feng wrote:
>> Unify CPU ACPI ID retrieval interface across architectures by
>> refactoring get_acpi_id_for_cpu() to acpi_get_cpu_uid() on
>> arm64/riscv/loongarch:
>> - Add input parameter validation
>> - Adjust interface to int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
>>   (old: u32 get_acpi_id_for_cpu(unsigned int cpu), no input check)
>>
>> This refactoring (not a pure rename) enhances interface robustness while
>> preparing for consistent ACPI Processor UID retrieval across all
>> ACPI-enabled platforms. Valid inputs retain original behavior.
>>
>> Note: Move the ARM64-specific get_cpu_for_acpi_id() implementation to
>>       arch/arm64/kernel/acpi.c to fix compilation errors from circular
>>       header dependencies introduced by the rename.
>>
>> Cc: stable@vger.kernel.org
>> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
>> Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
>> ---
>>  arch/arm64/include/asm/acpi.h      | 16 +---------
>>  arch/arm64/kernel/acpi.c           | 30 ++++++++++++++++++
>>  arch/loongarch/include/asm/acpi.h  |  5 ---
>>  arch/loongarch/kernel/acpi.c       |  9 ++++++
>>  arch/riscv/include/asm/acpi.h      |  4 ---
>>  arch/riscv/kernel/acpi.c           | 16 ++++++++++
>>  arch/riscv/kernel/acpi_numa.c      |  9 ++++--
>>  drivers/acpi/pptt.c                | 50 ++++++++++++++++++++++--------
>>  drivers/acpi/riscv/rhct.c          |  7 ++++-
>>  drivers/perf/arm_cspmu/arm_cspmu.c |  6 ++--
>>  include/linux/acpi.h               | 13 ++++++++
>>  11 files changed, 122 insertions(+), 43 deletions(-)
> 
> There's a lot going on in this single patch, which makes it hard to
> review.  I think this might make more sense as several patches:
> 
>   - arm64: declare acpi_get_cpu_uid() in arch/arm64/include, implement
>     it, and use in drivers/perf/arm_cspmu/arm_cspmu.c
> 
>   - loongarch: declare acpi_get_cpu_uid() in arch/loongarch/include
>     and implement
> 
>   - riscv: declare acpi_get_cpu_uid() in arch/riscv/include, implement
>     it, and use in rhct.c, riscv/kernel/acpi_numa.c
> 
>   - x86: declare acpi_get_cpu_uid() in arch/x86/include, implement it,
>     and use in xen
> 
>   - declare acpi_get_cpu_uid() in include/linux/acpi.h, remove
>     declarations from arm64, loongarch, riscv, x86
> 
>   - convert acpi/pptt.c to use acpi_get_cpu_uid(), remove unused
>     get_acpi_id_for_cpu() from arm64, loongarch, riscv
> 
>   - use acpi_get_cpu_uid() in tph.c

Thanks for the detailed guidance, done in v9

> 
> Doc nit below.
> 

...

>> diff --git a/include/linux/acpi.h b/include/linux/acpi.h
>> index 4d2f0bed7a06..035094a55f18 100644
>> --- a/include/linux/acpi.h
>> +++ b/include/linux/acpi.h
>> @@ -324,6 +324,19 @@ int acpi_unmap_cpu(int cpu);
>>  
>>  acpi_handle acpi_get_processor_handle(int cpu);
>>  
>> +#ifndef CONFIG_X86
>> +/*
>> + * acpi_get_cpu_uid() - Get ACPI Processor UID of a specified CPU from MADT table
>> + * @cpu: Logical CPU number (0-based)
>> + * @uid: Pointer to store the ACPI Processor UID (valid only on successful return)
> 
> This would normally go at the implementation, but it probably does
> make sense here because each arch has its own implementation.
> 
> Should start with "/**" to make it kernel-doc though.
> 
> Wrap to fit in 78 columns, like other comments in this file.

done in v9

Thanks

> 
>> + * Return: 0 on successful retrieval (the ACPI Processor ID is stored in *uid);
>> + *         -EINVAL if the CPU number is invalid or out of range;
>> + *         -ENODEV if the ACPI Processor UID for the specified CPU is not found.
>> + */
>> +int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
>> +#endif
> 



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 07:48:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 07:48:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256754.1551253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w387K-0008A5-Kp; Thu, 19 Mar 2026 07:48:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256754.1551253; Thu, 19 Mar 2026 07:48:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w387K-00089y-HN; Thu, 19 Mar 2026 07:48:30 +0000
Received: by outflank-mailman (input) for mailman id 1256754;
 Thu, 19 Mar 2026 07:48: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=JyL5=BT=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1w387J-00089s-5S
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 07:48:29 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 013bcc00-2368-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 08:48:23 +0100 (CET)
Received: from CWLP265CA0461.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:1d4::9)
 by DU0PR08MB8495.eurprd08.prod.outlook.com (2603:10a6:10:404::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Thu, 19 Mar
 2026 07:48:17 +0000
Received: from AM3PEPF0000A79A.eurprd04.prod.outlook.com
 (2603:10a6:400:1d4:cafe::4) by CWLP265CA0461.outlook.office365.com
 (2603:10a6:400:1d4::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.27 via Frontend Transport; Thu,
 19 Mar 2026 07:47:58 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM3PEPF0000A79A.mail.protection.outlook.com (10.167.16.105) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.19
 via Frontend Transport; Thu, 19 Mar 2026 07:48:16 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AS8PR08MB7861.eurprd08.prod.outlook.com (2603:10a6:20b:52c::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Thu, 19 Mar
 2026 07:47:11 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9723.018; Thu, 19 Mar 2026
 07:47: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: 013bcc00-2368-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=xBoInOU5IkjT2gMhShto+sjmUXXeuPhlFkKMqstGkh2Fr19Pk3NJ7/BeHF7XpUUbhTQtzaM2GQ6UTvwKsYegfxiXetqCqhXGAFizIk9WOl07XId0qLZBfjaqwF6+GzxGpb27y4pL18Lnd+q6GHdRwAKNctz31n01FKBACM6X+z1IwHth/1y/mrf3xZ6TlFSBxi9nvvPh7pocXIOzHCYGfrw1+jEsZVtsT5CeKDWiKznH3mh6aDiC1Rp04lqva1GoQHQWpYGkZs8ItTWqM4O7VMbbQ80pwM9nRZ1XJbdS8GLAQBJzfALG0GOFWF42huxS5lluTEtgJYpF4Ga9YHN6zQ==
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=cQPdJtxXB9V0+Yj4MQEHKzhovQFu4weOJ15tMIijuvM=;
 b=R3UtOKcS2/jrvf6L4TFQj0WAujXKxWBDD4KOsrxgLZ0nknuXoLTknLI0OiPuXRHg6dFZlwNRlKKMwHyxD8kay95eej8xk2+EndgWgGrB03ObgyAo6vC9ALAwPbDXMnrB3DmPWg49bnb51LKFb81+wNEDs+N8F1h5U9XDh8B0i5IikcaSA6zEfwfHLXvSV3b00GHt9YuQPG8Pm8Ra2J2FjiION2hOiQO0OfiOLgaVapd25xg4ipBuG2edRTokVnOHEDBr8GnIHPu54MiE0KMUJ/TG4b4s2Md4fBQIW7y/+9t8B4/LN1N4LZIa6PAcxYj03BxrAOPZ5+OZoB7B40YkpQ==
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=cQPdJtxXB9V0+Yj4MQEHKzhovQFu4weOJ15tMIijuvM=;
 b=Q74dw2MGvSxPtPJ9eXR35NhKwTWggRkj11PWTxORp8Z8udCzP6P6r/YgiyBBznA6ApfmZcZzEeGmUL4deB6htqHesw8QJXV+Emguc9Y+8piTnnkyhhNhlBY+mqDlAST0/j8LeYKqwiHy3s2XimBYjtShIncA1OVM37+6Rc7kdVM=
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=ZyfNBRNECpiu3RUxS5sMTMrByba2BKroTb9DLOvzcF3/FrP7GDHgmnU3lj+mucWxy0Ed1zuXRYLSgp/ltzeKDteZ10DBIV6G/7a61WXglrSwY8tTXpjmHNSV5yuHZFZcj1G4Wt+YySN9Ca1Bmc1fb4pfm37cV0dAPXnMtTULgflSZ5sXOI8gic+veVUexyyDVbpJTcFmudidr76i5qviIEgT9YZ5W/52jk3lZIB+P3bG3mkBTcwOLOZXz6I6EQrxyissO/DCYgioVmvp1IHJApatgcgF+A2lyEmuiC3Xwbg2ihS9lhm43rd/Bh2jJYklNrF3ruUpcYZjrEjmlcSIQA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cQPdJtxXB9V0+Yj4MQEHKzhovQFu4weOJ15tMIijuvM=;
 b=EvF1+qLjxosPoRbsxeJGU5fCI1m2jUunlGNLPPomiKqdVnBDS+tTSCRcP66/4ZP/6DQNVX8KEXtzXgqDUVpPtM152hO5L5uVNFq6sK0NP8YW2GxhXvmfDvirNYg2iQCH9gQ6WfzNkkEQfAfZI45z06ZCi098JbrkHtHNZCu9aL8rpG+CQDr6tghjSR4Kjc1kcuZ0WyA8ho9dwa/X4hz4XLvc71gBlBw9RVTbWfOPN/ZKOFGk/Q1+LqvAvJh50CddJ0aNLo1FZ84iXdACgWCzz2jnwlfGYHu7E8WCmUE12u0ChJyfHnvv31a9R9Yyjzg9O72+kmaoPqrdlWPjfL4UzQ==
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=cQPdJtxXB9V0+Yj4MQEHKzhovQFu4weOJ15tMIijuvM=;
 b=Q74dw2MGvSxPtPJ9eXR35NhKwTWggRkj11PWTxORp8Z8udCzP6P6r/YgiyBBznA6ApfmZcZzEeGmUL4deB6htqHesw8QJXV+Emguc9Y+8piTnnkyhhNhlBY+mqDlAST0/j8LeYKqwiHy3s2XimBYjtShIncA1OVM37+6Rc7kdVM=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] xen/arm: vpsci: ignore upper 32 bits for SMC32 PSCI
 arguments
Thread-Topic: [PATCH] xen/arm: vpsci: ignore upper 32 bits for SMC32 PSCI
 arguments
Thread-Index: AQHctwleCTTA2E8kAkG0JnS9VhefnrW1exAA
Date: Thu, 19 Mar 2026 07:47:11 +0000
Message-ID: <F2AB3928-C65E-43DC-80F0-1F2F4DDC8037@arm.com>
References:
 <3a3180b0f77d815e92c0c232a8f854d34ab7c2ea.1773860069.git.mykola_kvach@epam.com>
In-Reply-To:
 <3a3180b0f77d815e92c0c232a8f854d34ab7c2ea.1773860069.git.mykola_kvach@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AS8PR08MB7861:EE_|AM3PEPF0000A79A:EE_|DU0PR08MB8495:EE_
X-MS-Office365-Filtering-Correlation-Id: 0978a6a3-08ef-4ba0-d585-08de858be1bc
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|366016|38070700021|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info-Original:
 9uEU7lJjw3CzbzR8Cv/kkKttygoN3QwMEqhXwTAuhzyhLbiUkmdlDDkdkmATiUHX2OsbSPtn7NY/mcFKi1M6glaS/mtcjABCnr/v6BwBcy5CgQkqiwwtKMm/+lhtSFaDGH5Zxa1yDqMKtzFyA7yTD/psnMEYTmwKKM2JqWq9Vz/q5cukH6p1Q9URMkHTZOgV0ktLpxCl5LGPMSqMZH/h//oeEzz+TBnP9shmVgX9+OHu89JYD3aZ8BURMbuyPmpS4n1xi6pXFVdnRLgBKvaQvcCOdHMs2xeqNYHeY8TvgjhX4UXnXVWTa4Ki40xn+sCVyQLbFos/PL4QIsYZO2WBnt49uklgTg0QfwPzq0dHm1RELLYAcBt64w5d6Z4MyT3EIIA9HMO3pf/abUYqpRXtJE00HucDTkI8ahRzB1ycGopn8TXVDY4dweKZa89xrf9oZjTkEUqIUkkwTZ/v2nXrGTDekNVsH+1XmCGXzBKhV1+cWo3X8qwMgurYUdnP5tGAPM8R/WI6rmOk7+LAHz8QcIbmc1EjCLP9udh6JnCDHnBy9lmlcXU4rZWDUDICHue4WT3qZhhQ6eqaQpge2arLQ8nNaeoCUZzKSZAqULcsphxzVfKBu2ZCDtx2jXkJNZ9K1p8n4CeQViJ12a1MxOi6gs2w7aep85Ki7cZz78+1+Bb3+4xKmvk3jIQzhhwDX0MWXgKVX3BUKDJW1jAkBCdK4ZjCCiA9X6UcTNv5DjS7i+Q=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <8D99F25B0C1A414CB5B1FAC968571810@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 QCEoY9+OZ4L3erSPOqBdQVYQkEATCpVb43gukCNwYhAe4oXl/UVBviTMhQTvEEwO2OJc7eB589syrz9hoppUkRtCTRBNu8ZYskZ1aI+eF2uFq6XRCkjnnxkcUXn8KKzJzfIUT24lS3e6+kJeyFySOsAc7SqPgTJk5r6Rwo7nR53UNjExyUr3Ek2qcifyQb+/tddTZsjLs6LJIsD18lSKNMEvP7qQrLjE8BiWDx4LiEE2DNgbiQCf+mHMTA3bh7c5JcwH5XVkOzkxEeR2vu/d1RzbXx+dCaxg5HSPrqgjOEshsXLyCNjprsF313OYOrLHn57/pwxg6fxKosiCl2/Q8A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB7861
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF0000A79A.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	7526ea5b-14a8-4a59-0d85-08de858bbada
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700016|14060799003|82310400026|376014|35042699022|7053199007|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	PPcNOsWIYrRWE/tHOvEura/XW4SCoPu4foDuuHobaBmKM3SzRZ4nZ8Gz5/CU8qg9HQM6/6IdZpaL3+UrkwYUl5RfKkHGAz9Eo6iwOfh0XLlsBJhBL4p8hHpdgVBvnDE5mIDYAzLyNnFDtm6CXViRY1EdZPdO+wZI2lWSvG+r75Ypou7+FgZwCfNYRk2RWKr2sUBvlpRpqlvjKYSYI+q8zarAyuPp9/8XS4sM0GZC6Qm3Jx5zZckrilLOSV6c5Fw9a51I1pkDvYPs+BVbMkwYF0i/pMfS6Xo8MvZElSZk2D7r8JyBTt2mqYdEqYDTj05KOZcKVjBycBu+IrPo8h4ju2zEF/oG8eUvWz6SuaBjSy2G/e1B/vsJlwluMcI6m6qmidZ7P0b/2Ke4QP5vRJ8CZO0fHWAVfoRF5DdqTau9A9r1Cpkrx7aV661NImNdqa6pJf68+z1K1oZM/fa2ppIuxwD7eYQbDxnZX7Vu2Cm8Npz/Ok8uH/KlCgTQLVrnp/pJ9U+Cs7FpdCpzyal+etbdPicM4TdLaG2Y6U2w3Dj+CNCsAhhxP+dQhYsnsWyGRd+f46rq4RKyjnIYRaB5f38SVeol5QzGK2rKN4Ssj6WzrqDxkyAc1ftgQwXuNQ8pHWA1xkJ7IuGxvHShDu1yJE6V6x+ihLDbw+1heE8Ipc3AdRBSqBUS1zZ8XF6X9MyD9Cw30pKxRp9z1QATjF6lHXq3HeCQj6p8anJU578csGaFo3c=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(14060799003)(82310400026)(376014)(35042699022)(7053199007)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	7q0KRBYnwjDJ2VkqnPCKS2Lp5bPaKwgHb6vBHGKU+krGYvdOhA4jTjwoTAnu8lQLx80gUf2ek5liTrVqoaNQrr1PbbzoqSb5RNDCe8w5ALTNB9TcEm3cXy56/sKJL5Dj0ol7hGohBGhZMszkZ0QSbu73ac7rYwD0YXqyPZjLnGrowHLJ0zcS6Hit19GXYlQ1syBspbKw4ZKBIQYYJgefxCx6VkK0hZXZxTrbiTBubGaF5YG7YnK5cJQ9PEGBrZilPfGxb97b6faw7m+BSzb7yk1PaPB/kf8Dn6Uz1pXTRlY3+SbCkxQt3J1pftAAhZHrNRMlfBp+RovTaWh8TaQXb2S/CKh3FoY/0UZ61G+8/896dQhv3e2flLCna2dJMqofw/PvVuARaZgtPVkr0v9M7KJaWezj3sBgvA8cR4xRul6TNoyvyxg+qR5i9p6Pgki6
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 07:48:16.6435
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0978a6a3-08ef-4ba0-d585-08de858be1bc
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM3PEPF0000A79A.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8495

Hi Mykola,

> On 18 Mar 2026, at 19:56, Mykola Kvach <xakep.amatop@gmail.com> wrote:
>=20
> From: Mykola Kvach <mykola_kvach@epam.com>
>=20
> SMCCC DEN0028G, section 3.1, states that for AArch64 SMC/HVC calls
> using Wn, only the least significant 32 bits are significant and the
> upper 32 bits must be ignored by the implementation.
>=20
> So for SMC32 PSCI calls, Xen must not treat non-zero upper bits in the
> argument registers as an error. Instead, they should be discarded when
> decoding the arguments.
>=20
> Arm ARM DDI 0487J.a (D1-5406) also notes that the upper 32 bits may be
> implementation defined when entering from AArch32. Xen zeros them on
> entry, but that guarantee is only relevant for 32-bit domains.
>=20
> Update PSCI v0.2+ CPU_ON, CPU_SUSPEND and AFFINITY_INFO to read SMC32
> arguments via PSCI_ARG32(), while keeping the SMC64 handling unchanged.
>=20
> Suggested-by: Julien Grall <julien@xen.org>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> Link to discussion: https://patchew.org/Xen/cover.1751020456.git.mykola._=
5Fkvach@epam.com/072270e0940b6bcc2743d56a336363f4719ba60a.1751020456.git.my=
kola._5Fkvach@epam.com/#7070f416-119c-49f8-acd0-82c6e31f0fc6@xen.org
> ---
> xen/arch/arm/vpsci.c | 15 +++++++++------
> 1 file changed, 9 insertions(+), 6 deletions(-)
>=20
> diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
> index 7ba9ccd94b..1e844ed571 100644
> --- a/xen/arch/arm/vpsci.c
> +++ b/xen/arch/arm/vpsci.c
> @@ -303,9 +303,10 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, u=
int32_t fid)
>     case PSCI_0_2_FN32_CPU_ON:
>     case PSCI_0_2_FN64_CPU_ON:
>     {
> -        register_t vcpuid =3D PSCI_ARG(regs, 1);
> -        register_t epoint =3D PSCI_ARG(regs, 2);
> -        register_t cid =3D PSCI_ARG(regs, 3);
> +        bool smc32 =3D (fid =3D=3D PSCI_0_2_FN32_CPU_ON);
> +        register_t vcpuid =3D smc32 ? PSCI_ARG32(regs, 1) : PSCI_ARG(reg=
s, 1);
> +        register_t epoint =3D smc32 ? PSCI_ARG32(regs, 2) : PSCI_ARG(reg=
s, 2);
> +        register_t cid =3D smc32 ? PSCI_ARG32(regs, 3) : PSCI_ARG(regs, =
3);

It might be nicer to modify PSCI_ARG to take a convention argument instead =
of
redoing the same test everywhere, this would make the code nicer and ensure=
 no PSCI_ARG
would have been forgotten.

At the end all those conventions are coming from smccc so we could:
- use smccc_is_conv_64(fid) from smccc.h to get 32 vs 64
- use smccc_get_fn to get the function id without the convention and reduce=
 the number of entries
in the switch

That would allow to get the convention and fn before the switch and simplif=
y a bit the code.

The smccc part is definitely not something i would enforce in this patch bu=
t could still be nice to do
it if you are willing to.

Cheers
Bertrand

>=20
>         perfc_incr(vpsci_cpu_on);
>         PSCI_SET_RESULT(regs, do_psci_0_2_cpu_on(vcpuid, epoint, cid));
> @@ -315,9 +316,10 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, u=
int32_t fid)
>     case PSCI_0_2_FN32_CPU_SUSPEND:
>     case PSCI_0_2_FN64_CPU_SUSPEND:
>     {
> +        bool smc32 =3D (fid =3D=3D PSCI_0_2_FN32_CPU_SUSPEND);
>         uint32_t pstate =3D PSCI_ARG32(regs, 1);
> -        register_t epoint =3D PSCI_ARG(regs, 2);
> -        register_t cid =3D PSCI_ARG(regs, 3);
> +        register_t epoint =3D smc32 ? PSCI_ARG32(regs, 2) : PSCI_ARG(reg=
s, 2);
> +        register_t cid =3D smc32 ? PSCI_ARG32(regs, 3) : PSCI_ARG(regs, =
3);
>=20
>         perfc_incr(vpsci_cpu_suspend);
>         PSCI_SET_RESULT(regs, do_psci_0_2_cpu_suspend(pstate, epoint, cid=
));
> @@ -327,7 +329,8 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, ui=
nt32_t fid)
>     case PSCI_0_2_FN32_AFFINITY_INFO:
>     case PSCI_0_2_FN64_AFFINITY_INFO:
>     {
> -        register_t taff =3D PSCI_ARG(regs, 1);
> +        bool smc32 =3D (fid =3D=3D PSCI_0_2_FN32_AFFINITY_INFO);
> +        register_t taff =3D smc32 ? PSCI_ARG32(regs, 1) : PSCI_ARG(regs,=
 1);
>         uint32_t laff =3D PSCI_ARG32(regs, 2);
>=20
>         perfc_incr(vpsci_cpu_affinity_info);
> --=20
> 2.43.0
>=20



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 07:58:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 07:58:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256764.1551261 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w38GZ-0001iH-JE; Thu, 19 Mar 2026 07:58:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256764.1551261; Thu, 19 Mar 2026 07:58: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 1w38GZ-0001iA-Fx; Thu, 19 Mar 2026 07:58:03 +0000
Received: by outflank-mailman (input) for mailman id 1256764;
 Thu, 19 Mar 2026 07:58:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=8LP9=BT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w38GY-0001i4-G4
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 07:58:02 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 58c0f07a-2369-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 08:57:59 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-486fba7ce4cso1894385e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 00:57:59 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-486f8b949e1sm85169095e9.9.2026.03.19.00.57.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Mar 2026 00:57:58 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 58c0f07a-2369-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773907079; x=1774511879; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=652ZLo0i5CyA4ak0MrhJcA+UpfuQMsgf28bdy2WtHsI=;
        b=MksdCy2VtBuouM/BRzBr8WrtUyU1a6ZC1/iEC6g327Zs28vZETprZ+UAPfTiy9ZP8G
         T1YfeP6KW9ZFWpF2U2j3nOhB1dmfzdQCfHdIa8pijLIAuNL1Ma/cJ3/REF6mS2tweDko
         K9AeT+jShSX4Js6APugYvcyXhuh2Zksqs6+ipLV4V/ozMddYCKJ68CmfNEuqNQwhn+63
         d+qKIBEgzhM7wFq8tk6kSC/0Ox6A3CB0naY1wPccIL4GIPglApGuk2I6o3qsj9+71bw3
         G9jXvf+dgPwZIWz/jNeL5xmZSvkWUEWBuS63LitQblD7ywB+uQbP9KSVAdjI6FkLhCaZ
         RA/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773907079; x=1774511879;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=652ZLo0i5CyA4ak0MrhJcA+UpfuQMsgf28bdy2WtHsI=;
        b=JO7mm0HjNYNJ+8dpHNGs3VLsPQIwUtqboR2H4qzv2xWxTM/mdIby8a94GWUtEURVxz
         KSVDqZHLj9QQjmC3CItTUxZ2zjWW4OMKXLpcd4WDMBfFeXkkAEyM8kc28vld4Wv9gKki
         0jzmkk0kQwf2Cl5EPNhg/ln62hpYj9UYk0YQFpQPpmtf24z/A/5tJSAB1l54Eu+expe6
         Jqbj5y6OiJ4NROQAIYqUz7MLRfxRpeR7QD2yQNDEz69W07d5ghc0f53ltgUPmYV7b3hN
         6SYP1DJIbuEyEXI1knu9AQBBwANNdqMqmlQnqgHarV9nBCtRrt/1fCiuFfLavBTnoHvw
         nOUQ==
X-Forwarded-Encrypted: i=1; AJvYcCXgUm2Am059y+VZbXQr8Q5rnlSGoNxQ6XL5epV3/pmtKK3G1GiLiZxgpb/TJl2GNZLWsKE3XAEx/1M=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzvGKvo1YZDGgCxaTVN02Sv0ns58qBogyoXd5ESjbVQhSk/CQjh
	MqdTjk/e80L4YVBwWu+ofbdsIdvBcXj1G55ObbCtyyEm5BrB4MYhwnP7dQQdq6migQ==
X-Gm-Gg: ATEYQzxy77XjkfiUmUOaegfoi7W/102AruPe3DR8cqGPlDayGpyOa5/JraDeTN1VYdA
	19+DJpLuMUI58RsgMgQjczSNhEEY5RD9z1zagrtb6Emou8i3EaB6NtEyN6KuNzZ9wNnx04We/xO
	nQtwfACSiLMss9UNNFHNsdswhYoUcpG9qioCu3iqas9cgr8X/SyumyV0wFdI9av3/qH0+7iFznl
	dQ+P+6x0KVWGLwQkII7KKPT1btcmNKlbAHIGuiFuP9XhNBxVemK6ERjF++x8sDcujeNDUZKx5nL
	IHXxEAC4+sM75MgJ5sQzcOIZtjjCDL9Fk687QNxY1nfMFAc+XkLSIksHlTFxhBDaUYu5W5sJYcL
	iOChQVk8Ol7HHzK+xBBKwdr9or0VjZKiNlrxoujQE5kR9kuxfZ+Ut8tB+7SpX2XNlhfvb9TDM7e
	daSdBkHTiX3ntJRiL+ZQty8tFjxotrtuL9nCdSxjTq4avg4Hyx9EeHhBNva2Qa0wB5CA9H5hNJj
	oe0NmTvyhaxd0A=
X-Received: by 2002:a05:600c:630a:b0:485:5574:8ccc with SMTP id 5b1f17b1804b1-486f445122amr99962215e9.13.1773907078761;
        Thu, 19 Mar 2026 00:57:58 -0700 (PDT)
Message-ID: <1efcb5eb-1b59-4def-a527-254a31efe2b7@suse.com>
Date: Thu, 19 Mar 2026 08:58:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 6/6] xen/riscv: enable DOMAIN_BUILD_HELPERS
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <6ab04f3584e45795dc82c25f62a6c950913f5c7d.1770821989.git.oleksii.kurochko@gmail.com>
 <aac9b5ac-6660-4ec0-b88e-605903217588@suse.com>
 <b4ac883d-ce90-40b0-93fc-95c925c7ac61@gmail.com>
 <a35d5566-7da1-406d-abf7-13b423d013f8@suse.com>
 <ad59c5ea-ae8c-4e6e-8b49-dcd0eefc3197@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: <ad59c5ea-ae8c-4e6e-8b49-dcd0eefc3197@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.03.2026 13:49, Oleksii Kurochko wrote:
> 
> On 2/13/26 2:11 PM, Jan Beulich wrote:
>>>>> +#define GUEST_RAM0_BASE   xen_mk_ullong(0x80000000) /* 2GB of low RAM @ 2GB */
>>>>> +#define GUEST_RAM0_SIZE   xen_mk_ullong(0x80000000)
>>>>> +
>>>>> +#define GUEST_RAM_BANK_BASES   { GUEST_RAM0_BASE }
>>>>> +#define GUEST_RAM_BANK_SIZES   { GUEST_RAM0_SIZE }
> 
> (cut)
> 
>> If all you want are 2Gb guests, why would such guests be 64-bit? And with
>> (iirc) RV32 permitting more than 4Gb (via PPN being 22 bits wide), perhaps
>> even a 32-bit hypervisor would suffice?
> 
> Btw, shouldn't we look at VPN width?
> 
> My understanding is that we should take GUEST_RAM0_BASE as sgfn address
> and then map it to mfn's page (allocated by alloc_domheap_pages())? And then
> repeat this process until we won't map GUEST_RAM0_SIZE.
> 
> In this case for RV32 VPN (which is GFN in the current context) is 32-bit
> wide as RV32 supports only Sv32, what is 2^32 - 1, what is almost 4gb.

??? (IOW - I fear I'm confused enough by the question that I don't know how
to respond.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 09:02:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 09:02:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256793.1551270 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w39H2-00033D-DI; Thu, 19 Mar 2026 09:02:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256793.1551270; Thu, 19 Mar 2026 09:02:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w39H2-000336-AM; Thu, 19 Mar 2026 09:02:36 +0000
Received: by outflank-mailman (input) for mailman id 1256793;
 Thu, 19 Mar 2026 09: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=8LP9=BT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w39H1-000330-Dh
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 09:02:35 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5dae0435-2372-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 10:02:33 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4852e09e23dso5170535e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 02:02:33 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-486f4bc96c6sm64498975e9.5.2026.03.19.02.02.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Mar 2026 02:02:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5dae0435-2372-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773910952; x=1774515752; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9DgtjIUdC3TKFqCbrlVPmz/AAoUU2Q5d0HjDWi74ZQU=;
        b=IJyn/Xd4DHMhuw0+uf0jMRqwK3S8juNTbXEGNmRlFdEYDle4/FmwchKS0NexszKLr2
         Uhg/IfbJkJnndgqDBwsP382YZeM1VFm7Gww10aUA15+bWLJMQ2LmU1nqVYPdgBCRdK/E
         PKdB6Vp+6wHhPXsrGXUG9pZuqzjSlFbLqcKTJf/GsPpUysIR4hdyL2Ql7fewAlwORoLS
         uXeUIrK73fXCse4fhj4qGS9bFfhcFyONltcWUAXN2Qy20dBwuViDzGgfPqsL/qCp2FJ7
         KslSvcT+TtahhOS4NVmnmVnfrmF9NU5xX6uPN2O5a4mg2irHBFdTEkEe1BnX7CRo9B0b
         33Uw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773910952; x=1774515752;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9DgtjIUdC3TKFqCbrlVPmz/AAoUU2Q5d0HjDWi74ZQU=;
        b=PEltxVejZ1wf7/rRTFZCYJLTTenLX00P1H7dxloNRyp/d2cNN/oS6Ps7fV+p/7eE1b
         4FzxURO5IElxAdV8jabDSkqPxtoCe9UzWQw16DitR5/J33PWes1xivM2pz6bMqvvWdKH
         ScbT66KaQoH5YIwtxAies2ceMqeHzpwQJISR444BC84FJ4J9ROdV/NNJdG1a0aBZz3wH
         vC70Kzk4ooMFdzzMeIj68qxMgvURkuDGC7b2NGJut8popmPBquOs4ckTGFppddHI2Onq
         VFvOX1lXec3ofAjKpSyzeXF9/f+paDySP2heFV16P1XoLJMkIixGky1TUVd0BmOmKhrI
         3ZlA==
X-Forwarded-Encrypted: i=1; AJvYcCUTKppcCM77ZCv8bgKhSxswZz3JMC9G6VpkGtTb3uXTqnog9r9PDvPpFaTmgKRkt/h4qGqfBBA6LSE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyODtPU3jApHB1IVkfoGLD2wfguavnLkiDqyJqHhUD60OvKr6+r
	/kgq6snPpqSRq0j0AQrjaBJPIHG34JsM7NPM2aX0PXR5q1HGZai3sEWCcMtUbRm1XQ==
X-Gm-Gg: ATEYQzy2FEwDB5hZecvrQtVea2p56nIE1X0FCRMl1TSI7NPQvriB4yGKlDFtE+zSx/J
	hdZzF+cNPJTXKPAfr6ut5PO36N5RUG/Yucalg+c9VEh1fVy4yUlw0cLSJI7RkbTwtpHfGjzwljr
	HjEFNneyfiPi5BAWlwHYMdUnVOO1iDGHDbIzWI/pQwRdL9lmTtVJD8QQ/QyNWyNBZErvqhyO82b
	1q49TkP6ccho4Zi10xEoAuZQMnE1TyCm3d1o3aWVbQ2aOcadST47oa90Tb/hKwL+i8vZra0RJVn
	ZnwFwK+ToiWdjfPkZYMEFmSebVEF6xrs6vTeMoX57QLy0u/Z1Ms/MF3RdVyTYuchIdAm67bI+B5
	KS8Sm44PIYlXybzkS6sZLm96SEPs1pjVadVWsKYQp84SSIUPbIxnS9ZLIBMa+xSfPlj8LdwvsEU
	PsDtDWkx34r+ZuIHHQQtpZfTqrhYPtFZlGQZgjLd4CyI44dxFFIkkjOH9Kx8k6GWtvxjwoeoR9H
	yaepYsVfjgmi0YKl4ymvUe/DQ==
X-Received: by 2002:a05:600c:8b0a:b0:485:3193:6ddb with SMTP id 5b1f17b1804b1-486f442207amr101268065e9.3.1773910952250;
        Thu, 19 Mar 2026 02:02:32 -0700 (PDT)
Message-ID: <325ee99b-f2a9-4eb1-8982-be25075f5ea4@suse.com>
Date: Thu, 19 Mar 2026 10:02:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/7] x86/hvm: Support extended destination IDs in
 virtual MSI and IO-APIC
To: Julian Vetter <julian.vetter@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
 <jgross@suse.com>, Julien Grall <julien@xen.org>,
 xen-devel@lists.xenproject.org
References: <20260309123055.880050-1-julian.vetter@vates.tech>
 <20260309123055.880050-3-julian.vetter@vates.tech>
 <1e371e65-ca79-42a0-93f9-804f73084033@suse.com>
 <9f40fbec-008f-4a50-bfb2-27c35d88f2a2@suse.com>
 <635f1e21-f1e0-451a-9374-c91b33784894@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: <635f1e21-f1e0-451a-9374-c91b33784894@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.03.2026 16:06, Julian Vetter wrote:
> On 3/12/26 12:15 PM, Jan Beulich wrote:
>> On 11.03.2026 16:27, Jan Beulich wrote:
>>> On 09.03.2026 13:31, Julian Vetter wrote:
>>>> @@ -618,6 +620,21 @@ static int cf_check ioapic_check(const struct domain *d, hvm_domain_context_t *h
>>>>                e->fields.reserved[0] || e->fields.reserved[1] ||
>>>>                e->fields.reserved[2] || e->fields.reserved2 )
>>>>               return -EINVAL;
>>>> +
>>>> +        /*
>>>> +         * An RTE in the saved state has ext_dest_id bits set. Check that
>>>> +         * the destination Xen has extended destination ID support enabled,
>>>> +         * otherwise interrupt routing to APIC IDs > 255 would be broken
>>>> +         * after restore.
>>>> +         */
>>>> +        if ( e->fields.ext_dest_id && !d->arch.hvm.ext_dest_id_enabled )
> 
> Thank you for your feedback Jan! Yes, right the 'ext_dest_id_enabled' 
> must be defined before it can be checked. I have rearranged this in my 
> patch set.
> 
>>>
>>> This won't build, as the ext_dest_id_enabled field appears only in patch 6.
>>> But yes, that looks to be the opt-in mechanism I mentioned above.
>>
>> Actually no, how could it be. That's for the DM to invoke.
> 
> But this comment here I'm not sure I fully understand. You mean that 
> checking 'if ( e->fields.ext_dest_id && !d->arch.hvm.ext_dest_id_enabled 
> )' is not enough? This check only verifies that if the target domain 
> doesn't support ext_dest_id_enabled, no RTE in the source domain is 
> allowed to have a ext_dest_id set. But now we also have to check that if 
> the source domain has ext_dest_id_enabled, the target also have to 
> announce it, right? So,
> 
> if ( s->ext_dest_id_enabled && !d->arch.hvm.ext_dest_id_enabled )
> {
>      //ERROR
> }
> 
> Is this what you meant?

No. What I tried to convey is that besides Xen <-> DM negotiation, there
also needs to be Xen <-> DomU negotiation. While they shouldn't, existing
domains can write non-zero values, and the behavior of such domains
shouldn't change with your extension.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 09:08:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 09:08:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256807.1551279 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w39N4-0003kw-W9; Thu, 19 Mar 2026 09:08:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256807.1551279; Thu, 19 Mar 2026 09:08:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w39N4-0003kp-TT; Thu, 19 Mar 2026 09:08:50 +0000
Received: by outflank-mailman (input) for mailman id 1256807;
 Thu, 19 Mar 2026 09:08: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=mbsH=BT=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1w39N4-0003kj-1R
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 09:08:50 +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 3db279c4-2373-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 10:08:49 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA6PR03MB7663.namprd03.prod.outlook.com (2603:10b6:806:436::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Thu, 19 Mar
 2026 09:08:45 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9723.018; Thu, 19 Mar 2026
 09:08: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: 3db279c4-2373-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EkUk2jrs2tnnNLC6QBVAlt26wEnq6CR+qObIfKDh3ZH6IT5AYlViJ1hWMHKS4PXeWa3HYRXD4QkCsm7zT5qF2p/wHdZwHHhtrHBdI4Vn+VnGgVB/2r52ETeEmWTLr+2gT2PcyYsqv7HFXZSxvQOnP8fvpH5vzsPKzkowjOGKqilJOYCSQa3Aqx3UI1AqkwdfPZ2x/u6vIpnI2oWo1v90uDcnnE42AqV4EZFy/A55UKWzvOM4WqwwdBHzD4ucHw16ISkhWnYnhNCgbVFbuebN5UBxP0VgtZlKveW9dDM9jsZw1W3AVeuById9I7AXi9qSJOB4pVJX6jSFm18zZuOtMA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7I/PDk8ghjn+CiK62ovORrPQlqhmJqQdCmbc/U8ZdqE=;
 b=iycYcfwUGgQM7bxP9pB1wVcYMrMGNU0KUI4u31R++TPfrmg26KJA5JAnedZuXxhFxZV0Ppys5UsgV2egpb2m7zVHksUcvj/cDqhI9Bk4EQGkW/t61SFiW7reiXzHTKoTK+heQOR6F2StnGvBTY5wvKMuPYcSwr9SRCFHg3nvFnLrXUeY9+DUh9vSRxiUzAYDGVD0tUBItYFBbOtH7Qql7RjAPSHxl76SUHQ6mMyJ8YLJHPLaEWk+qZyah7Yx32FIJkY3GG1+RGROvlCyVpz7PQP3ueEfIhvziu+dQcnXZuf2wktk7FeQT59M7bRqD2bgkn0AeAImQ5ZZfIOSCvPKTQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7I/PDk8ghjn+CiK62ovORrPQlqhmJqQdCmbc/U8ZdqE=;
 b=ylUNPvCW3u7brHJYA1G7HxqWp91DoPKax37HPxwoVPWgUGr/xvoP6xuDfcgUNwUQBa5aKZnfgEnIpOp0NTZu+53cG/C8Es7cp5vMCxZVc35dyRUsENdYK4O+2gNueopLfUMgVwPR+dp9deoESkU+7AkxgzNiAgHruPMAV1qONrA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 19 Mar 2026 10:08:42 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Ross Lagerwall <ross.lagerwall@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] x86/hap: Defer P2M TLB flushes
Message-ID: <abu9GpEm_z-7762N@macbook.local>
References: <20260318171324.1362219-1-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260318171324.1362219-1-ross.lagerwall@citrix.com>
X-ClientProxiedBy: MR1P264CA0027.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2f::14) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA6PR03MB7663:EE_
X-MS-Office365-Filtering-Correlation-Id: 5b189720-0ad0-4ef1-473b-08de85971fe8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	DMbiTi5xxLly42Q4kg3v+RiRjJN9a4UgJOXDceAKo0NHr65D3AegBrI3lpEjiy+Xp4OqBQZWKwe/2tB5RPMUIIlUg+x8WqIc4H8tzIW2nxPBaZgVcJzZyClOVePYvLlA+HyU2RfXYkZ7HWKKglMKTk9RIE16fgJp4Zd1nzyFnkEUDCx8OjRGO+IzQ42NxbQO/PmDoV5htsUTloSFWkoJvhT068aD9X7vvB6KA7cTzxQWWY69ZhkLToOb3JmtF9uctGHbIx05D9iWYu5MVw9kCfzOJt0dlkssSgz1KvWolS1TcxlbpapAP3XLZSW8QWgUOp4hw0RngYM4iOYhIxlC/59XK9W346cPLiEsLKQGfAFTHPso8jTUwjLH4Np07ONBvZaWYvonbFPJNcDXs7nPbDwtRZFg+WjwPHHUBoazTv3HBSM+UTgPwWZuaaUzDWkxf5Iv//iWBd5T+v6WyWQhIGCemxVk84ZcI40oQnwxsl5hTSAKeIwQIMQN5Hgiwl8tAgzOZ+GfJK9dbPkmfvsk2to2hbIeoJLRJOWBg90VGyUEKjqfS+VL95GhzSTlyYeBSSgwjkzFdm6/5jlX/gVVuE1zcWlF97TzZugWKEojrBoqyVUfvYZj8Lnu7smyuyxHZLWJh6VEEBVwDGVlSVcSEBEpFgFeRG4dOXihppNr4h2wjIkWKQp8dRQ6JddBVoEzATtBmh3dpBen/UNbQKQxyQWUTvXExPOceeKvEDnNzBU=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WXJ2K1IzOHg3NmI2Q20rdFdIMjNuNFB3MHlVRjhtVUUrc1N1OE9aYmNzVklo?=
 =?utf-8?B?dlMvOTZnVlQvL1RTRjU5NXk3L0xSS1BUT0pvKzNyNi9sZm5acFJITTFNb2Fp?=
 =?utf-8?B?UlJpUTR4N3F0clJKTEIzY0JWZFVpbUdnTXRURFFMVVpZUXVvdml4ZFJsNEZY?=
 =?utf-8?B?UUlXWHVuUmEvZCtzM21TTDlVWkR4QTVHaHY4U2NpZitvQ2hBZHhiejJPcTZt?=
 =?utf-8?B?cVJaUmdaZHE2Z2tHOHdienhBU25qQmhCVkxIQXdIdkNmS3ZtMjgraWhCSmVp?=
 =?utf-8?B?SjJ0NFR3cGQvaGtrRmJMenNOQmVDRHRSNk00R0hIYy8vcnBzYmhEOHh0Y0hQ?=
 =?utf-8?B?eUZ2MUt1SUx3eTE3YXhjVktCdG9pUEUxYzU0blVoc3FLcllNRDRBZlFXODVV?=
 =?utf-8?B?QU9tanRvRWxUcCtYY29LeDc5SjNTK0NUZERSdUliakpqOWxXd1VIRHRTNXRZ?=
 =?utf-8?B?eDlOU2lYenkxeGh0ZkZXSmtFT1NscHNYSDczb09YNDRVQmlwUGNPZXZ6RlZ4?=
 =?utf-8?B?NGV4VTBlb1lBOXZLN0lsVzZiYmUwdXVUbTErQ1kyNVdCU056d21nN0J6S1RY?=
 =?utf-8?B?dUQxN0IwbzhRZjZReXI5RGlvU0psREdoRjFhQ1dYVHBZR3ZvdTRGQTA0ZGpw?=
 =?utf-8?B?d25VcVA4TkxVZlJRRlJST1NkNjljOTlHYnRUQW1PTkR0OFVvT203aWZ5MmpC?=
 =?utf-8?B?WHY1eUtaTkZlRUxmcXJySnhkcFFTZmR5bnp3VUJYR2FHdWlhL3hpSmFLYWww?=
 =?utf-8?B?OVpReW03T3BCbkFKalFUa3U4QkpQcWdwaXMraGEyV1RUZnNxNGlSY25KMzJI?=
 =?utf-8?B?MURpY2hhQm5zOXRVdXVERlZ6REUvb2RUWGRZL3lZSlJoZkUwSkdlMmxUTUxZ?=
 =?utf-8?B?clVBWXpYN2QzY3lZS25wNzV4SStvVHBNMHkrNFhlMExmd3hYWlRSUkdzcnRR?=
 =?utf-8?B?ZENuRTBQUWlyZEx3dzdCb0Z2T2VqN002Y0RPWENOWlp0THY0WXZ6N2NiTDk5?=
 =?utf-8?B?RWo2MldRSktOb0tIaXNjTEl1K1kwQlBSaEhhanh0NlBWby9OT0ZjaHZtTzZ2?=
 =?utf-8?B?dmVpcFJNKzc5QWRZbjh2NUdMQjU5dkhsNXhZd1NFNlhMaGZaTWFtT1FJaE5K?=
 =?utf-8?B?enU4RVdVQkRYV01rWm5qcEJ2SXQ3Yml3N09UOURXKzhNZEEvMkxMemF1bFlt?=
 =?utf-8?B?b1RQT1BCOFEzV0VtbTA5N3VJRHRMVEx0MFhwTXA1UjJyNVk1Q2JrRDgwSk80?=
 =?utf-8?B?VEJiVEw2a2ZiSmxSR1h4cVloWk1oNU43YjBNWnZmcTFYUExVTDd0MkZxamJS?=
 =?utf-8?B?dERXZWN0NlBTem9Eb1g1SDJRVjVVUG9vckc2QWNqWGV2SXJ5MTNuc2lnWERW?=
 =?utf-8?B?L2hITG9GZUhpMHk0VnlLOWp2VFlhRXQ3M3cyWTRBL0hsaC9iY1JUQ1AwTTAr?=
 =?utf-8?B?UDl5SldzcE9OSW9iYkRoQWlDM2JOYVVkdVdNT1I5NHNDNkVTQW8yTlgraGNT?=
 =?utf-8?B?QWliM3JZampkQ1N5QXU3SktPd3prV0g2QW9pNVhqcW1TQTZobDMxSlVZVXI2?=
 =?utf-8?B?cEttZXFhUVF6TE9QRlJHSFNHZTR2M3VTZWNWSWIzbzRJbXd2anZndVVsMys0?=
 =?utf-8?B?MUFLeU0wUVNYUGx5UjFXRXE5d2wrekZuc09nNWUwVXZibTF6dzlKbjIva1hl?=
 =?utf-8?B?SVR0WVUwc2VkU1daSGwxUjE2LzNEK1R2SGlBcm5KSnU4R2hOZHBvUHNMbkVq?=
 =?utf-8?B?dEFPNlUya0NFNTZEMitDUDFwQ3hGSXdKQTNiRVRSYnBwQlBsNzJJZHU4YXFo?=
 =?utf-8?B?Mmd3WCtlL3hsRVlLUWlYQ0F3a0luT25GOUxOdngvYzBsZlBCMGYrc2xmMzBX?=
 =?utf-8?B?bTMvSSsyZWxseCtIaWJLdGdYR0VkV2xkdzdRSWRKL1I3WGp5MkFoWFRzTjVt?=
 =?utf-8?B?cnZNaithZm9ZblJ1OE9NV3hUYlNoejREZGN5TlR1dTRDdzJsVVBsdmVFcDUr?=
 =?utf-8?B?RER3ZzViOGJpdmJaRXVKeHZJRFd1OE10V1pucmF5a0FIZHpBMzFmdmJ1c0h6?=
 =?utf-8?B?Z1lWbjVpS01SVFhlRWViQy9TT1FmcFlhWUg1RWJqV0lMVXlrNVg0ZjhCc0hB?=
 =?utf-8?B?ckt5UWY2QkdjQldKbVU0SXoyU3RxNFc4Ry80d1RSZGh0bWVRdjNwZFp3ZnB1?=
 =?utf-8?B?ZUtpd0JMTE9GWDNHWkRKNGo3SUNUcFg2NzZTMVl4YkVpbSt0clJxVjNBMjBj?=
 =?utf-8?B?YmZVUjZUNEhBSXVoNnhhRlZ1MUZQQ3pObkdLUXFPSkVNM2dBakkwcjA4V3pR?=
 =?utf-8?B?QkozMXp1Q09nNkpibU82TVI5SVZBbDZJL2xEVm94L3h4Mm4zWS91UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5b189720-0ad0-4ef1-473b-08de85971fe8
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 09:08:45.7092
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Ll3PVp4lohC14iJAuhTo9/OGH4i4dGbQm9my4XZSAKcez8p9BDzm3OoJmVh3Xlwks4ZeLUXEervjLd8UUFPBdw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR03MB7663

The subject should possibly mention NPT, as reading HAP one would
assume it applies to both EPT and NPT (and the EPT side is already
done here):

x86/hap: Defer NPT P2M TLB flushes

On Wed, Mar 18, 2026 at 05:13:24PM +0000, Ross Lagerwall wrote:
> Like the EPT code, defer TLB flushes to reduce the number of flushes and
> avoid holding the P2M lock while flushing. This can substantially
> improve performance in some scenarios.
> 
> The cases where the TLB needs to be flushed without deferring are
> already handled by the call to p2m_tlb_flush_sync() in p2m_free_ptp().
> 
> Suggested-by: Roger Pau Monne <roger.pau@citrix.com>
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
> ---
>  xen/arch/x86/mm/hap/hap.c | 14 ++++++++++++--
>  1 file changed, 12 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
> index a337752bf488..1eba995c7b39 100644
> --- a/xen/arch/x86/mm/hap/hap.c
> +++ b/xen/arch/x86/mm/hap/hap.c
> @@ -813,16 +813,26 @@ static void cf_check hap_update_paging_modes(struct vcpu *v)
>  
>  static void cf_check
>  hap_write_p2m_entry_post(struct p2m_domain *p2m, unsigned int oflags)
> +{
> +    if ( oflags & _PAGE_PRESENT )
> +    {
> +        ASSERT(p2m->defer_flush);

Here I'm unsure whether we might want to do:

if ( !p2m->defer_flush )
{
    ASSERT_UNREACHABLE();
    guest_flush_tlb_mask(d, d->dirty_cpumask);
}

Instead of just asserting that the defer_flush field is set, to be on
the safe(r) side.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 09:12:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 09:12:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256816.1551288 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w39QD-0005K2-CG; Thu, 19 Mar 2026 09:12:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256816.1551288; Thu, 19 Mar 2026 09:12:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w39QD-0005Jv-9d; Thu, 19 Mar 2026 09:12:05 +0000
Received: by outflank-mailman (input) for mailman id 1256816;
 Thu, 19 Mar 2026 09: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=87pI=BT=bounce.vates.tech=bounce-md_30504962.69bbbdd8.v1-b0dfe5df6971463e95e172018731a3bd@srs-se1.protection.inumbo.net>)
 id 1w39QB-0005Jp-Ru
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 09:12:03 +0000
Received: from mail136-12.atl41.mandrillapp.com
 (mail136-12.atl41.mandrillapp.com [198.2.136.12])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ab623216-2373-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 10:11:53 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-12.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4fc0Lw0ybJz5Qkc82
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 09:11:52 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 b0dfe5df6971463e95e172018731a3bd; Thu, 19 Mar 2026 09:11: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: ab623216-2373-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773911512; x=1774181512;
	bh=JvP1c2ZHvz34dlQCj7CZVGcRmuz4UzHgCVvcx7e4N2w=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=rgYnl/O1vMU4rwTJ7Z5xgzLEKuuxiO/ERDAULp54n9PjRjgkRjRecpJ0yKaC+kksP
	 O51wz6jC32joXWgpOn7XXrJbBw7MfonjsO0ZzcVvIAtVx0HHK1JnqHyaoqm87j7XMP
	 1x9uVOqyNCqzyPEiIse4s595K2Ypx8uGHV3HJmRFmFZLJvDILdKnEkLpZVYzIsJBvI
	 +jvGazaIRXjMO3jep9ev+c/zWtIDT8zkpVVOtEzG6QxeMzzndMeu742VFqcJ+eawAB
	 1UY+J/4tjzBR3tlzuctRcI1BZuMunmyldBkOtrfjQe7vhqRoSMmZinmEoYv/IrRgCN
	 ndMliAxj8VPmQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773911512; x=1774172012; i=anthony.perard@vates.tech;
	bh=JvP1c2ZHvz34dlQCj7CZVGcRmuz4UzHgCVvcx7e4N2w=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=ISgTB1QVIqvnOoD9zImwNLjHbUoFkMBxV5Uh0Z1PoAMFYH6THazyAfHSa1m5f2khV
	 zz/KY5nLvXx1tZ74y6ItuwlqEGuKOcTsPAmRiidTN1MBC9OH3NG4jxp0smNXGcayG/
	 RqsSMtuYLkbKvPIc8lTUuOynCdjstNkeSBhTGgmgIk9Y/RcSsGx5ZYMGzGvS5Er8v1
	 eIauNRSa5k1HtZgxp3eR0wbrK5/FJozjPZSKgu/frMj/WG6DvcjLzDs+3CfdbNTqrK
	 KdH1hRJ1d7NC+uF5QRjmwmJ7XXY5Voyp/jzXQPSO4yO1zgOXOVXp9EieiWVzqQtmay
	 /sg4xYcGOkbGw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2008/11]=20tools/libxl:=20add=20functions=20for=20retrieving=20and=20setting=20xenstore=20quota?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773911511551
To: "Juergen Gross" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, "Nick Rosbrook" <enr0n@ubuntu.com>, "George Dunlap" <gwd@xenproject.org>
Message-Id: <abu9165dr7LfLfJf@l14>
References: <20260305135208.2208663-1-jgross@suse.com> <20260305135208.2208663-9-jgross@suse.com>
In-Reply-To: <20260305135208.2208663-9-jgross@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.b0dfe5df6971463e95e172018731a3bd?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260319:md
Date: Thu, 19 Mar 2026 09:11:52 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Mar 05, 2026 at 02:52:05PM +0100, Juergen Gross wrote:
> diff --git a/tools/include/libxl.h b/tools/include/libxl.h
> index bc35e412da..a70d9d347f 100644
> --- a/tools/include/libxl.h
> +++ b/tools/include/libxl.h
> @@ -1537,6 +1537,18 @@ void libxl_mac_copy(libxl_ctx *ctx, libxl_mac *dst, const libxl_mac *src);
>   */
>  #define LIBXL_HAVE_XEN_PLATFORM_PCI_BAR_UC
>  
> +/*
> + * LIBXL_HAVE_XENSTORE_QUOTA
> + *
> + * If this is defined the Xenstore quota related functions
> + * libxl_xsquota_global_get()
> + * libxl_xsquota_global_set()
> + * libxl_xsquota_domain_get()
> + * libxl_xsquota_domain_set()
> + * are available.
> + */
> +#define LIBXL_HAVE_XENSTORE_QUOTA
> +
>  typedef char **libxl_string_list;
>  void libxl_string_list_dispose(libxl_string_list *sl);
>  int libxl_string_list_length(const libxl_string_list *sl);
> @@ -3011,6 +3023,14 @@ static inline int libxl_qemu_monitor_command_0x041200(libxl_ctx *ctx,
>  #define libxl_qemu_monitor_command libxl_qemu_monitor_command_0x041200
>  #endif
>  
> +/* Get/set global and per-domain Xenstore quota. */
> +int libxl_xsquota_global_get(libxl_ctx *ctx, libxl_xs_quota_set *q);

Could you rename the second arg as "q_r" or "q_out" ?

> +int libxl_xsquota_global_set(libxl_ctx *ctx, libxl_xs_quota_set *q);
> +int libxl_xsquota_domain_get(libxl_ctx *ctx, uint32_t domid,
> +                             libxl_xs_quota_set *q);

Same here.

> +int libxl_xsquota_domain_set(libxl_ctx *ctx, uint32_t domid,
> +                             libxl_xs_quota_set *q);

Could we prefix them all with "libxl_xs_quota_" ? I would rather that we
only use "xs_quota" or "xsquota".

> +
>  #include <libxl_event.h>
>  
>  /*
> diff --git a/tools/libs/light/Makefile b/tools/libs/light/Makefile
> index bc60c46558..ca22a40c6c 100644
> --- a/tools/libs/light/Makefile
> +++ b/tools/libs/light/Makefile
> @@ -106,6 +106,7 @@ OBJS-y += libxl_pvcalls.o
>  OBJS-y += libxl_vsnd.o
>  OBJS-y += libxl_vkb.o
>  OBJS-y += libxl_virtio.o
> +OBJS-y += libxl_xsquota.o
>  OBJS-y += libxl_genid.o
>  OBJS-y += _libxl_types.o
>  OBJS-y += libxl_flask.o
> diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
> index d64a573ff3..c5ddc40f35 100644
> --- a/tools/libs/light/libxl_types.idl
> +++ b/tools/libs/light/libxl_types.idl
> @@ -574,6 +574,15 @@ libxl_altp2m_mode = Enumeration("altp2m_mode", [
>      (3, "limited"),
>      ], init_val = "LIBXL_ALTP2M_MODE_DISABLED")
>  
> +libxl_xs_quota_item = Struct("xs_quota_item", [
> +    ("name", string),
> +    ("val",  uint32),
> +    ])
> +
> +libxl_xs_quota_set = Struct("xs_quota_set", [

Could you use "_list" as a suffix instead? It's a bit confusing to have
the word "set" as a double meaning, with a _set() function that takes a
set.

> +    ("quota", Array(libxl_xs_quota_item, "num_quota"))
> +    ])
> +
>  libxl_domain_build_info = Struct("domain_build_info",[
>      ("max_vcpus",       integer),
>      ("avail_vcpus",     libxl_bitmap),
> diff --git a/tools/libs/light/libxl_xsquota.c b/tools/libs/light/libxl_xsquota.c
> new file mode 100644
> index 0000000000..b9afa1c914
> --- /dev/null
> +++ b/tools/libs/light/libxl_xsquota.c
> @@ -0,0 +1,102 @@
> +/* SPDX-License-Identifier: LGPL-2.1-only */
> +
> +/* Xenstore quota handling functions. */
> +
> +#include "libxl_internal.h"
> +
> +static int get_quota(libxl_ctx *ctx, unsigned int domid, libxl_xs_quota_set *q,
> +                     bool (func)(struct xs_handle *h, unsigned int domid,
> +                                 char *quota, unsigned int *value))
> +{
> +    char **names;
> +    unsigned int num, i;
> +    int rc = 0;

We don't init `rc` variable in libxl function. Set `rc` to 0 just before
the "out" label.

> +    GC_INIT(ctx);
> +
> +    names = xs_get_quota_names(ctx->xsh, &num);
> +    if (!names) {
> +        /* Xenstore quota support is optional! */
> +        if (errno != ENOSYS)
> +            rc = ERROR_FAIL;
> +        q->num_quota = 0;

It feels wrong to make changes to the output argument on error, if we
can avoid it. And here, I don't see any reason to change `q`.

> +        goto out;
> +    }
> +

Can you call libxl_xs_quota_set_init() first? As you call _dispose()
later.

> +    q->num_quota = num;
> +    q->quota = libxl__calloc(NOGC, num, sizeof(*q->quota));
> +    for (i = 0; i < num; i++) {
> +        q->quota[i].name = libxl__strdup(NOGC, names[i]);
> +        if (!func(ctx->xsh, domid, q->quota[i].name, &q->quota[i].val)) {

Could you store the return value of `func()` in `ok`, and test `ok` in the
if instead?

> +            libxl_xs_quota_set_dispose(q);
> +            rc = ERROR_FAIL;
> +            break;

This can be `goto out` once free(names) is moved to the out label.

> +        }
> +    }
> +
> +    free(names);

Could you do that after the "out" label? And init `names` to NULL.

> +
> + out:
> +    GC_FREE;
> +    return rc;
> +}
> +
> +static int set_quota(libxl_ctx *ctx, unsigned int domid, libxl_xs_quota_set *q,
> +                     bool (func)(struct xs_handle *h, unsigned int domid,
> +                                 char *quota, unsigned int value))
> +{
> +    unsigned int i;
> +    int rc = 0;
> +    GC_INIT(ctx);
> +
> +    for (i = 0; i < q->num_quota; i++) {
> +        if (!func(ctx->xsh, domid, q->quota[i].name, q->quota[i].val)) {
> +            rc = ERROR_FAIL;
> +            break;

It would be better to write `goto out` instead.

> +        }
> +    }
> +
> +    GC_FREE;
> +    return rc;
> +}

Thanks,


--
 | Vates

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 09:24:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 09:24:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256828.1551297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w39bq-0007DM-Em; Thu, 19 Mar 2026 09:24:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256828.1551297; Thu, 19 Mar 2026 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 1w39bq-0007DF-Bv; Thu, 19 Mar 2026 09:24:06 +0000
Received: by outflank-mailman (input) for mailman id 1256828;
 Thu, 19 Mar 2026 09:24: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=8LP9=BT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w39bp-0007D9-GN
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 09:24:05 +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 5ea52899-2375-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 10:24:03 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-439cd6b09f8so481469f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 02:24:03 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b518985f6sm15971232f8f.25.2026.03.19.02.24.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Mar 2026 02:24:02 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5ea52899-2375-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773912243; x=1774517043; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ETS9axMZ69u2y6opvi1e7W18NpRWVWLkA7t9NSxMuj0=;
        b=JVXA+mEo1MbfXlusSUaqN8mhnV5pABY0Mlk8jRGCWRzhpkCamNId5iL5j+2yQpP++y
         FzW1h3yJ1evxJeCJli/9i6T1CgLonC78DMT7XkpZHV92YAK+zX53CskA3P7Qyrikit6v
         MTycC/G5hShdIOIyhpMqD5xqvk2jrnkATgEVAiKaL/qElHioImD1yEH5Xx/CWIIy0NW7
         y1OK0t29EV7lscN+Tp5NFrO7q7TFnqMETpfRq9Jsi/rriUVAZeEZbxWeCnKudahhvFXj
         bCALZ1wYzV8KWDrYtsEF/wBTD3uYAQJjirBW7TSl6ES6yShoQ1A3/x35+SW+W2GZSc0P
         n5fA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773912243; x=1774517043;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ETS9axMZ69u2y6opvi1e7W18NpRWVWLkA7t9NSxMuj0=;
        b=EaHa/+pqnfhubdvpg/uD5CajJMDHrvh/6z7AWb7ddJ8jfreR5o4eN71+XrxYOCnNVE
         mdt4uvC8Xyb8T4wdAYsx8/DtQRIdG9tWLotFSEPxvZg/Ryg+9b7b2zkgr6iimBNCqHKR
         4fe4MMetuMj4oSJM4M0iplSnGQIx6Zst7X5OHwDLr3cxxp5Hv197aWG2QU7BwXfH+CPh
         qRJRLI2NFx/A/kQUp6+hamD2tWxwZTZVWASvaH6PzWjR6KaPqNQFbvEyRb1X7xOVC5bA
         ut+6dZZy+wFTIIsLcZ9hH6ZMMCl1pcriPpRnWkdOuGcwHoibBbfdHig9Nkrvmj5TnVg6
         jQTg==
X-Forwarded-Encrypted: i=1; AJvYcCUeoGvWI/qhuTGPLjPZ7zgYUiIw7rQZqyeBLsdBtN/ZBqlO4wuIpCSsBJS2biHOSbo85x/4vyUuQ8E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwtPLKP7yP76I6JJqeFuH8vraJ3K66xLVTckpo+2Cn78+hXilni
	vNBYlV2NRNTND3o7ruXACTKNVgf3od+cTpTzFu5GCmbxqDfmzU2uY5luP9A+UTFU99zmLs3Z1jd
	TEYk=
X-Gm-Gg: ATEYQzyHa8qCKaoMsYFCQhPuRtI6ho/53YcbMbPO0BSoJWmSjUJnQbtGlQoHxO+wZTd
	dU5UaxFoomtAaRVkHJfIjIDY5Uy6bnNenMINX405b73DitPWGxGuW1RKDq0ODWik3z3cLMXbP4T
	NmIObuFtHRZmEvOBCbobOuCRN249UEjtNzlFiYRWK48A74dHxtPb5h4o9bOUxoX8+oaL3Lce3NO
	7RxqsZ5DKiZA3VXFzlkANBguM+i6hhIV/3kYG7b8n9SW6RpEa9xZzOLlq8w3gDPFcQZUBvrySJ/
	YnoLgFK/twwyKPWdGfp1REtH9Z9CQS6L0nQfDpYEvk5ZHPfcnFLTMuiCiuRiJjRwA8FNe4KyIrK
	5O1f3i5wRUs0hrFgn/ffnkaVq4ajmZbDwk9PaNJLPnybCPvc74FvB246XSgHOhkaCUzcSaMn4QB
	hS7CQ8l/vhiVvNJ+OrwjQUwHHtP2yK4kIEPuvzyOgxMBXLK/BtZkVufHr9muf3gvni8k9YqJipM
	2dxmw4otF2gmIU=
X-Received: by 2002:a05:6000:2c03:b0:439:bcb8:54b7 with SMTP id ffacd0b85a97d-43b527a6266mr11518043f8f.15.1773912242605;
        Thu, 19 Mar 2026 02:24:02 -0700 (PDT)
Message-ID: <24885daa-5801-4e5b-9d16-bac70bab4f0a@suse.com>
Date: Thu, 19 Mar 2026 10:24:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v v3 6/7] x86: Remove x86 prefixed names from x86/cpu/
 files
To: Kevin Lampis <kevin.lampis@citrix.com>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com,
 xen-devel@lists.xenproject.org
References: <20260313163630.1073019-1-kevin.lampis@citrix.com>
 <20260313163630.1073019-7-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: <20260313163630.1073019-7-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.03.2026 17:36, Kevin Lampis wrote:
> struct cpuinfo_x86
>   .x86        => .family
>   .x86_vendor => .vendor
>   .x86_model  => .model
>   .x86_mask   => .stepping
> 
> No functional change.
> 
> This work is part of making Xen safe for Intel family 18/19.
> 
> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
> ---
> Changes in v2:
> - Switch uint8_t to unsigned int in vpmu_arch_initialise()
> - Switch int to unsigned int in vpmu_init()
> - Remove XXX comments
> 
> Changes in v3:
> - No changes

With that - where did the ack go?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 09:27:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 09:27:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256835.1551307 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w39ef-0007nD-RJ; Thu, 19 Mar 2026 09:27:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256835.1551307; Thu, 19 Mar 2026 09: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 1w39ef-0007n6-OE; Thu, 19 Mar 2026 09:27:01 +0000
Received: by outflank-mailman (input) for mailman id 1256835;
 Thu, 19 Mar 2026 09:26:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GEY9=BT=bounce.vates.tech=bounce-md_30504962.69bbc15f.v1-3cce8e40ec434d269c9e851992b0bde6@srs-se1.protection.inumbo.net>)
 id 1w39ed-0007mz-PJ
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 09:26:59 +0000
Received: from mail136-12.atl41.mandrillapp.com
 (mail136-12.atl41.mandrillapp.com [198.2.136.12])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c5d18994-2375-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 10:26:57 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-12.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4fc0hH423xz5QkLSW
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 09:26:55 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 3cce8e40ec434d269c9e851992b0bde6; Thu, 19 Mar 2026 09:26:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c5d18994-2375-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773912415; x=1774182415;
	bh=BDPqBepCOnJf7AdxDoz0lCGeWKsigInjP2+Wov2y/8Y=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=zpuS/aRDAzni4A8bkmmHuFEWRPdGiYM9rs5obdxC6gs1+uW9Iyfsl0291F/C+F+0K
	 nrnru9usF04YLoNfxzVL54kvakARiRAn9iHHkVfpBHkWjcB1Ih8TVDvgJxlr6jQJy8
	 TmtTrPD2huyxvVqFDyK16wzuMs8dS2lQnDBrkn5M2GDBmcT65HVETRsjSD5c0SmIhH
	 hHSH5h2uejP1tOMBsSfbnydZGwHpTULZ5CAI7R4LfIQnTVKHDGyddisKiVBXec2RB3
	 7grUKpgjtlRRicObG5q3d8b0Z0kO6FjnrrhQ3OFmq1Z7a/sqW/5tbcOlwXqCyq2tJu
	 QzTT45vmAPXeQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773912415; x=1774172915; i=anthony.perard@vates.tech;
	bh=BDPqBepCOnJf7AdxDoz0lCGeWKsigInjP2+Wov2y/8Y=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=SJd5snZk0g+AXLglUKlnTkm8TWI25ffbdlR98LimKpD2ZsUofpfhBNs1IVjrhJqqU
	 5y9d1FagslPHu2TWoMOiEYbzVM9BVNNEz/Cf1jC715W+pPiLN9hmJxYiluhAKvXFZU
	 zUSLH9qwqeBX6TIPgIVyEa2VOcKN4Qg84dOraT/HAI5vcml7kyg4kqeDdReLAlZwZo
	 /dtnK/lZPV8HDhidYV4EVYIh2/UHmf8GbgEpf3C+ryeAbm4vOqeyIFEpRyy5N1V70u
	 r/VxkhvyVC4H2OnX9eDDne35d0KvsvrbUfXCybJA0KtH1+G6Zhbg0X8wdczhvZYBLk
	 YSjW8bW5D2HXw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2009/11]=20tools/libxl:=20add=20support=20for=20xenstore=20quota=20in=20domain=5Fconfig?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773912414970
To: "Juergen Gross" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, "Nick Rosbrook" <enr0n@ubuntu.com>, "George Dunlap" <gwd@xenproject.org>
Message-Id: <abvBXjUXfHHJTE29@l14>
References: <20260305135208.2208663-1-jgross@suse.com> <20260305135208.2208663-10-jgross@suse.com>
In-Reply-To: <20260305135208.2208663-10-jgross@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.3cce8e40ec434d269c9e851992b0bde6?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260319:md
Date: Thu, 19 Mar 2026 09:26:55 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Mar 05, 2026 at 02:52:06PM +0100, Juergen Gross wrote:
> diff --git a/tools/libs/light/libxl_domain.c b/tools/libs/light/libxl_domain.c
> index 5be47f687f..86e43e7133 100644
> --- a/tools/libs/light/libxl_domain.c
> +++ b/tools/libs/light/libxl_domain.c
> @@ -2533,6 +2533,16 @@ static void retrieve_domain_configuration_end(libxl__egc *egc,
>          }
>      }
>  
> +    /* Xenstore quota */
> +    {
> +        libxl_xs_quota_set_dispose(&d_config->b_info.xenstore_quota);
> +        rc = libxl_xsquota_domain_get(CTX, domid, &d_config->b_info.xenstore_quota);
> +        if (rc) {
> +            LOGD(ERROR, domid, "Fail to get xenstore quota");

It would be useful to print "errno" with LOGED, right?

> +            goto out;
> +        }
> +    }
> +
>      /* Devices: disk, nic, vtpm, pcidev etc. */
>  
>      /* The MERGE macro implements following logic:
> diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
> index c5ddc40f35..ee8f89e462 100644
> --- a/tools/libs/light/libxl_types.idl
> +++ b/tools/libs/light/libxl_types.idl
> @@ -760,6 +760,7 @@ libxl_domain_build_info = Struct("domain_build_info",[
>      ("vpmu", libxl_defbool),
>      ("trap_unmapped_accesses", libxl_defbool),
>      ("xenstore_feature_mask", uint32, {'init_val': '~0U'}),
> +    ("xenstore_quota", libxl_xs_quota_set),

This would deserve a new LIBXL_HAVE_ macro, or a mention about the new
field in the macro added in the previous patch.

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 09:28:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 09:28:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256844.1551315 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w39gV-0008Rp-5O; Thu, 19 Mar 2026 09:28:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256844.1551315; Thu, 19 Mar 2026 09: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 1w39gV-0008Ri-2n; Thu, 19 Mar 2026 09:28:55 +0000
Received: by outflank-mailman (input) for mailman id 1256844;
 Thu, 19 Mar 2026 09:28: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=vYGS=BT=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1w39gT-0008RY-4q
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 09:28:53 +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 06c57243-2376-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 10:28:46 +0100 (CET)
Received: from PH8PR20CA0016.namprd20.prod.outlook.com (2603:10b6:510:23c::20)
 by LV8PR12MB9334.namprd12.prod.outlook.com (2603:10b6:408:20b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.9; Thu, 19 Mar
 2026 09:28:40 +0000
Received: from SN1PEPF000252A4.namprd05.prod.outlook.com
 (2603:10b6:510:23c:cafe::c1) by PH8PR20CA0016.outlook.office365.com
 (2603:10b6:510:23c::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.19 via Frontend Transport; Thu,
 19 Mar 2026 09:28:40 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SN1PEPF000252A4.mail.protection.outlook.com (10.167.242.11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9723.19 via Frontend Transport; Thu, 19 Mar 2026 09:28:40 +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, 19 Mar
 2026 04:28:39 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 19 Mar
 2026 02:28:39 -0700
Received: from [10.71.194.215] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 19 Mar 2026 04:28:37 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 06c57243-2376-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ASJ/cP5nVzsmCS8O9oH6VV17pl9JYgd6Mef/Yp3QdbltkNQOY+XbOmS+82ou7MdL8UJx1B2FLwO9RdthVISkkpqz43IAL36vKOwXDS8Gk/m0EGjwRr2YSMLuaxMZy3jIYD7VMn+pHgNTDHuYF+bADSIBvCEsV6UNy7nvj6WZPSCA0w/1BSRmEKAi+UDfYvXRa1weGzCBNRp00odxKNhyAXUKmts/igCa+WeP4aKQlTOMR8QYU5nD4unLz1LIWsosLkQoCQAVe6gFCwL+J9OEdkeuB6DoOejomZCb+6+2yc/IBo8AZ7c72EMxbOVFUPm2f0puVaAUhCB4gSeXdZiifw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SdkG7nBL4T4qmr2bx0P9gnAO44WwwubE14ca1IziGG4=;
 b=Ix1t1Krml8xdhKBTpIlJi29wQUO4JnBUnTdQjrarE7q+6UCk56xrY6Bd+EGq1nbcbxYlD/LbQFbg3r7X0SnSofXCixjDTZDfwj/uf7gvm6PaSsBldppzCMBQYtuZPaCCYR2bk8M8iUeEYRQa5jkl9KgUnQIIOgOPhsNiTBqDbOny4DyhWpQUIoJsKsUP8/mVn1IYjubq/X4hXCUkXRcR5G2FZ0XflYJ/UsSU7zeKkAMeOWwtUI/qhYfmE3W/R2me+8l/vvsNza2/0xQB2gpa79ImEqusHJGHmgF9w2D62lZrTu5RfmcdBOky/RiNpuYUWzIHTPPBf7NsjtKgSIgv1w==
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=SdkG7nBL4T4qmr2bx0P9gnAO44WwwubE14ca1IziGG4=;
 b=Yhg5BCb0e88BIcycsa1chNGH60SluN1hwjZbdabdLxdN7X3aXFk6XDmtluAx1EiGUnP5r6bTmODbOfWWv6fif13RIqerErb4vj/K595ue5KU9umddCuCuLV/cl1h6laBsQ2/khhnRCPurB5FqADw8z1mZtx+jiGk79vDqEIq8zA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <47887f58-5654-465b-bcf9-65605a4a2bb9@amd.com>
Date: Thu, 19 Mar 2026 10:28:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v16 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.1765533584.git.mykola_kvach@epam.com>
 <f1d118552f84e2b894ec7163000f6dba98d0e3fa.1765533584.git.mykola_kvach@epam.com>
 <806731b5-6c56-4274-98f1-120530cfe398@amd.com>
 <CAGeoDV8hCwBgjKDsms68f8MnY0tEus6oGWC2v1uYNSYiUfWBBw@mail.gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <CAGeoDV8hCwBgjKDsms68f8MnY0tEus6oGWC2v1uYNSYiUfWBBw@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF000252A4:EE_|LV8PR12MB9334:EE_
X-MS-Office365-Filtering-Correlation-Id: 74022975-1bfe-45a3-b952-08de8599e7ed
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|82310400026|376014|7416014|1800799024|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	1iwxOOj/D5ulF9oySt8WSoB3hEz0c8uuNIhmunNN0j9AQxTYywno4W3E4hQ9lm3ktHFmsy7mRn2hjXTeu87zO7igKxO6KGEfzcqodvRYGepDY42/xOD7lLnzjV5w3w9igs/QUSSCRDitulDqoreVbGGQ24NEdLCuMKclamg7jqJvYJ1xT2MY/+/H2ELauJRGOC49FQTYoxQ/+rnCKl5UW+ePMfvf3jL217ZPV0GHBCsbQVRr2ROfkuFZTafc81YBkz7cR2rrYNoap9TMjly9aff+swqwt3vAuDscZ4uy/AIg2bMxrwzhadNzVJNMa5Z0ZuwcOhAMnrDOJSMCMV0atUS66E0jZcynL/haQ2OvZUPwNYnBusjYUNHtsgPDUlHgFsA7PcAKWAAMvacY1P7SNEok1BkPDXqNlYU70hyqZrvJrZ77DtJggzaBXpztbwLMyFYuzgW+163WYqEU9xV6rOXvbMGIlviMUMU5K2xKODS2VtinaYsodJOsm9NtzfUesW6eruR0SEutYmN2w2AcvMGuQBdpGzq+/3aiIUvDssdcXakIEh541AHZBwAYV9omxixX9CSIGYe/0VixI+fLWdKO1M9d9iExeIkGayje42Q5xav6qg7PDrYSQntvNCCVkQb7he/u5z39Fyq0rGsa+wpvGzosiyCjsPmruYMnZAPwgwlDz6RRAWNB5AB9HIUBe47oy4+LsR2hjhaKg0j2FuhaV551SzB9+qiXZu2eARTcCvFppWfNqUzwZNmn0mfWcIGP8GxHIrndTPtok2X/kg==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(82310400026)(376014)(7416014)(1800799024)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	WF9nhbZoybApLkv4LtIcqdYtmCYoy71PDrUmBDX/SejWc7a16KAWazG2zPPl3IDS1uDKuz+r+oNBMaOi91Hhd3gQesQXsVLBnBDxL8dl+qj6/7nlg3Sw2pDjeg37yeKiF84hS5lwMbbi6cJwSPg1iCgYm6/GMTgm9otqzeX8D28sDd3yRO/k6/wH8eKV7IvfC+g71M8heoTaxplKWNRP1I7h/S17pfYxt14+mXEZ7yhyEfVgUTyepYkKCs6RGmxMjTTu/zZQoiTtoK8c11K7xmk1xzxa2u+MEpwyc8aL0OByjXHAvRdaAdIFlts1G3jyNZxi5ThbSxHcd9AyCtwdN0aRYjQHEnZ05ZCQgRwt57NOADaNvwZdB51LpNVdCAis+Z5JdxwlaaL0MK9vMnHeJqhRwzHebTNS2rBb4kC9LEzPbSw8ycORYR7tjFOSlMgE
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 09:28:40.0194
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 74022975-1bfe-45a3-b952-08de8599e7ed
X-MS-Exchange-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:
	SN1PEPF000252A4.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9334



On 29/01/2026 12:30, Mykola Kvach wrote:
> Hi Michal,
> 
> Thanks for the review -- I think there are two separate concerns here
> (domain state vs. ARM-specific resume context), and it’s easy to conflate
> them.
> 
> On Thu, Jan 15, 2026 at 11:03 AM Orzel, Michal <michal.orzel@amd.com> wrote:
>>
>>
>>
>> On 12/12/2025 14:18, 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. arch_domain_resume() stays int to propagate
>>> errno-style detail into common logging; preserving the integer keeps the
>>> reason visible and leaves room for future arch-specific failures or richer
>>> handling.
>>>
>>> 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 V16:
>>> - Refactor error handling in domain_resume: move logging to generic code,
>>>   use explicit return code checking.
>>> - Make context clearing conditional on success in arch_domain_resume.
>>> - The 'int' return type is retained for arch_domain_resume for consistency
>>>   with other arch hooks and to allow for specific negative error codes.
>>> ---
>>>  xen/arch/arm/domain.c                 |  39 +++++++++
>>>  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    |  27 ++++++
>>>  xen/arch/arm/include/asm/vpsci.h      |   5 +-
>>>  xen/arch/arm/vpsci.c                  | 116 +++++++++++++++++++++-----
>>>  xen/common/domain.c                   |  10 +++
>>>  xen/include/xen/suspend.h             |  25 ++++++
>>>  9 files changed, 205 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 47973f99d9..f903e7d4f0 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"
>>> @@ -851,6 +855,41 @@ 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 )
>> How does this check and returning -EINVAL correspond to...
> 
> The
> 
>   if ( !d->is_shutting_down || d->shutdown_code != SHUTDOWN_suspend )
> 
> guard is meant to validate the domain state for the DOMCTL resumedomain
> entry point (i.e. reject an xl resume on a domain that isn’t in the
> "suspend shutdown" state). Suspend requests issued via SCHEDOP_shutdown /
> SCHEDOP_remote_shutdown with reason SUSPEND still put the domain into
> is_shutting_down=1 and shutdown_code=SHUTDOWN_suspend, so they do pass
> this state check.
> 
> What the comment below was trying to say is different: those hypercall
> paths don’t go through vPSCI SYSTEM_SUSPEND, so they don’t populate the
> Arm-specific resume context (notably wake_cpu). In that case ctx->wake_cpu
> remains NULL and the Arm arch_domain_resume() returns early.
> 
>>
>>> +    {
>>> +        dprintk(XENLOG_WARNING,
>>> +                "%pd: Invalid domain state for resume: is_shutting_down=%u, shutdown_code=%u\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 comment? This patch assumes that we can now resume successfully (i.e. this
>> function returns 0 and common domain_resume can continue) only if the shutdown
>> was with SCHEDOP_shutdown. Anything else will infinitely keep the vCPUS paused.
> 
> Separately (and this is why I’m hesitant to make domain_resume()
> "suspend-only"): domain_resume() is also used by the soft-reset flow.
> Today soft-reset is effectively x86-only (gated by HAS_SOFT_RESET), but
> the core plumbing is in common code and is intentionally generic -- the
> soft-reset calling chain ends up using domain_resume() as a generic
> helper. If domain_resume() itself starts rejecting anything other than
> SHUTDOWN_suspend, it would also be a future trap if/when someone
> enables HAS_SOFT_RESET on Arm.
Ok, thanks for explanation.

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 09:31:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 09:31:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256854.1551324 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w39j7-0001YF-IM; Thu, 19 Mar 2026 09:31:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256854.1551324; Thu, 19 Mar 2026 09: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 1w39j7-0001Y8-Fk; Thu, 19 Mar 2026 09:31:37 +0000
Received: by outflank-mailman (input) for mailman id 1256854;
 Thu, 19 Mar 2026 09:31: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=8LP9=BT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w39j6-0001Y2-Ri
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 09:31:36 +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 6b9cafe4-2376-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 10:31:34 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-486fd27754bso689705e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 02:31:34 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-486f8c53324sm62619205e9.15.2026.03.19.02.31.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Mar 2026 02:31: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: 6b9cafe4-2376-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773912694; x=1774517494; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6U2/gkphmt+OxdfCk/0ysQl8TuA2+/rCO+v6bFng6IM=;
        b=DMSkg3Nf83iw9slWu68HUz8gxrcF4pwb/9+w4KLkMxo+kiOTiKs99psJX8IYwqUlVm
         aFsy7L8Nfu44gKtdIju3wDwtZOlJfnvTCTj2MxhMNM5XpiZtjZrzI/aHXYt97v+C54YT
         z51oG0szDC2D8Cq+CjN5o28SwR37ZQi3FwIf6oLCWuLSFlNeD4efnXsb7QchZRz3lf2t
         FdOlnGjkgVXW4gU66g59MsDia0nWVDi45INztCm5wXDDTo1+1lvIsCFO1K2uzV/28wkQ
         IgfBn07Fhbk8dMwRX5zdZxdUFrvrKFLWO/7pJ+UUTQtUO4yVoOhCdCTGaRwukM0/pokp
         qcHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773912694; x=1774517494;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6U2/gkphmt+OxdfCk/0ysQl8TuA2+/rCO+v6bFng6IM=;
        b=HavgsRyTYFDMY0v5RNJjQ91X2kV/Of1LdKJhe+gHGnBPWGrkrpecOzynFFMIGCdCjb
         s+A0CSPiKdGmNWTjQFgYNh0SF6fEn/H+aBJmo9VSN3Mo4YLUY+YWU9iY6ARdKU2wt0bG
         rw0K7L0gZhEYzKz69w9DdI+a2QW7vaV1IpVWTAMQPDcUUCmoOlvD3gg219Qigu4rTbJX
         gdt+2a1o75iOgUXg0Y7tBpfTPpAX+A1TPD5lKAY+vA9jKgwydF5gqe936U3XPeIIn1ze
         5zpQlijXU5ne29pSCinJSZIRI31br7wQKSg7BEEbliDlI+aNCx4QUP9sf5k+Kk/YxcY3
         P81w==
X-Forwarded-Encrypted: i=1; AJvYcCVYIF7I8pKNHTQSj6A0KGVx0p2RjwzGMX02yIkDWrP3wv9KyZ6SlbG55iz/sJ+jV6spHe++MRS4os0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzR0MdrDt0poagN36xp7FK5qzwbQcuVCj/WLaBO19aR8TN7/h8n
	zrrldDbLThMtSckppVmRSQJ2It0tEsMAPMbq9O9HDFvFaJ2FbE46b/5HRRcOF+8vbiQgOif1HkC
	Sy8Q=
X-Gm-Gg: ATEYQzyQXFHN/kkJFU7HUC4LbkNvFqV2W3Mkg1h7HtVNh894YFj1dHWCD03KlujJWU2
	65rQXk8SCc7Qcb347cZj0ZPOwQSUQIo8fEeqB4E/M1B6mFj3DL7nL7exenjGU83KAhTANOxiiC4
	wJOCBDYCsjXnwydAwwVQzcjslyK+nCpsA0iYqpHu/xxtPlzVSJNtNc4S6pVopMqk94FnWUJyTNx
	3luh7gGKuU9Oy7UD3O71OrDFIQEtaue4GwXDxKe/OSkehWWe/snuqWI4ORCRZ1Idy1DCcPJsWuw
	HfqcOa5kkeOaccKKpg67gEaaTaKGT7FX5/L61Zf145nmA3Z0hWRj3svv1Ar9g8ktLUU2ATEFzBs
	I6rOCSj54Bnh0TF40VDpY6wphuvjiGfUd4TyYXc0irvbvn4Z20RVnDRQJtredTDzdIjiWnQO9W+
	VDugKFe0yL64hID5mxMaWBpXORiH01BnnVu1nP4mFTt59uBoMUb5wIFwZsPigLq2272NWnOLaEK
	+lU4imWnEk2Ml4=
X-Received: by 2002:a05:600c:828e:b0:485:4533:9c47 with SMTP id 5b1f17b1804b1-486f4475401mr109038365e9.22.1773912693831;
        Thu, 19 Mar 2026 02:31:33 -0700 (PDT)
Message-ID: <7ee208c4-1f83-4bec-86db-bae22bd2040c@suse.com>
Date: Thu, 19 Mar 2026 10:31:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] install.sh: Preserve directory symlinks
To: Thierry Escande <thierry.escande@vates.tech>
Cc: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20260313172456.871518-1-thierry.escande@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260313172456.871518-1-thierry.escande@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.03.2026 18:25, Thierry Escande wrote:
> In various distros (i.e. Debian) some folders like /lib or /var/run are
> symlinks. Using the tar option --keep-directory-symlink preserves these
> symlinks.
> 
> Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
> ---
>  install.sh | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/install.sh b/install.sh
> index 3e11c4d46f..5d0b7a4933 100644
> --- a/install.sh
> +++ b/install.sh
> @@ -27,7 +27,7 @@ tmp="`mktemp -d`"
>  echo "Installing Xen from '$src' to '$dst'..."
>  (cd $src; tar -cf - * ) | tar -C "$tmp" -xf -
>  
> -(cd $tmp; tar -cf - *) | tar --no-same-owner -C "$dst" -xf -
> +(cd $tmp; tar -cf - *) | tar --no-same-owner -C "$dst" --keep-directory-symlink -xf -

How compatible (between flavors of tar as well as between versions of GNU
tar) is use of this option?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 09:37:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 09:37:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256864.1551334 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w39oV-0002FG-8w; Thu, 19 Mar 2026 09:37:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256864.1551334; Thu, 19 Mar 2026 09:37:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w39oV-0002F9-5I; Thu, 19 Mar 2026 09:37:11 +0000
Received: by outflank-mailman (input) for mailman id 1256864;
 Thu, 19 Mar 2026 09:37: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=vYGS=BT=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1w39oU-0002F1-Ce
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 09:37: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 306dfb54-2377-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 10:37:07 +0100 (CET)
Received: from CH5P220CA0013.NAMP220.PROD.OUTLOOK.COM (2603:10b6:610:1ef::27)
 by DM4PR12MB7718.namprd12.prod.outlook.com (2603:10b6:8:102::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.9; Thu, 19 Mar
 2026 09:36:59 +0000
Received: from CH2PEPF0000013B.namprd02.prod.outlook.com
 (2603:10b6:610:1ef:cafe::f1) by CH5P220CA0013.outlook.office365.com
 (2603:10b6:610:1ef::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.19 via Frontend Transport; Thu,
 19 Mar 2026 09:36:59 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CH2PEPF0000013B.mail.protection.outlook.com (10.167.244.68) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9723.19 via Frontend Transport; Thu, 19 Mar 2026 09:36:59 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Thu, 19 Mar
 2026 04:36:58 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 19 Mar
 2026 04:36:58 -0500
Received: from [10.71.194.215] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 19 Mar 2026 04:36:56 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 306dfb54-2377-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=viZPlW/XobJXW8cgzKAfnuPU+zmw1e3tEaYyqcsjv/LqR9p+qUy1fESvMNlnpl4sLsqhgSnB9txPjQePurMophsj/SjyA1G5WJ73NQ+taO8YUMgNNnBKrTe6euNxDDt99UgSCacBOtrpXyuJXNkuScU/AU+r/TvAw3XKMOwwt1xI6xBHLhAv9RnNSdNqPIihf6su9dTUYGSWBitx9n7RsYJu+qKfiPjnFiYeJwzR3ShVHmCDo2JfLcqtoqwC0fcEcFHyf4TfGqe756Ad8TavNEqaNt4uYufZiTqf5MZ3PPQZNEUKyIVcLv7gMbwsJ36mV/MpXtRIqKhcHDrLwveZpw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=F3+CPDj/zvZBVn5VzefgLdkIRIc/tCMUgZoQ0BF9v6A=;
 b=wSHJn16mPyVxQttzq1eSvoUc5oN/qA3618QYJyr011AwQL2RlTTFnxq9vJtXbhK7OgyGCxaEeAOeAH378dnnbXRLd9LIg99UPrJUO67UqvnqC3bK7IedGbgonfs/uE3BHAL9qF6F2IZz9lHCvUXHERQS5FGcx98qqPMpSsYy8ePUSi+VbuGFb/fBpJXjpe+uIVi0m8mnwpl5XHTQJDUUQxTHh0nBkB2TJgBc12uzfWPaRRSNgXj5FMINir+Rgn+1HmeFu00CLNrXcaUM6pCZK9uIA1f6eiY/bUFaTQqIWgi6F1JUTvkK9R9KNtXdnpxvQn6CRbZWqehYaeWD2lZSbg==
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=F3+CPDj/zvZBVn5VzefgLdkIRIc/tCMUgZoQ0BF9v6A=;
 b=vLEu+a1fopxwH/YXUy9NXRrZunRdxpQWr5XUQEWXeGqifjqx27+F/3IJ3xo8oFj0rAUPydkslog5bVyLF4H/vEuYBLpYy+HNu8TIaOO4RyJOBoZqfRp4ywzZyyqgrvi3ziIVY3jPag1Hj94Eu2X7OSHAwCbzmQKarUmbcv2//Gw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <04017286-885e-4e81-9e89-f012ee608287@amd.com>
Date: Thu, 19 Mar 2026 10:36:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v16 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.1765533584.git.mykola_kvach@epam.com>
 <f1d118552f84e2b894ec7163000f6dba98d0e3fa.1765533584.git.mykola_kvach@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <f1d118552f84e2b894ec7163000f6dba98d0e3fa.1765533584.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF0000013B:EE_|DM4PR12MB7718:EE_
X-MS-Office365-Filtering-Correlation-Id: 2bfc5c89-73b4-4634-2654-08de859b1179
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|7416014|1800799024|82310400026|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	RIVxS/kGXKum3gTn0a9bT6Ugj4JyxTSgwkUhlo6QpnAmcVLIk6sPPjP0mdftxGBQsYl7dFCmSOSw+ZHr2towTShnx/trOF3YSF/N+LihZqB27MMg/II+2gezADvlq6lc7dvkOd+TStuy5QLLx/j45mY/5fH74rrpbTcr+hl//pUceMu/eVDj3Qd+v5+AT1XvFLj/7IR5gsRYdKGoontk9IuZnstoe09ppij05AlxrrEvF03EU5/MaKTEARDqLGVHEDrgfK9+8GpnE1dIuNuCx1GI24ixVi4E0BMzJXcVonYPvInHlQeYxz0yLVum3XIm6lTxsXvdmtp/80xS0ZT6qIZ6NvPK4YxEwniL/CxwtwYwBpwp5xuH3/nOLrBRdum7l1pnjgZKOTCpXbY/J1ktdSkhf1SaG4R9t7xA2nXk4NfKagFHu4B8YuRRp3fPoaIu+6P1JKvQuqGCWy998ffrC9K/KR4qHiO7hBJ47qgYKOLUg/ZrjYCRONfPZaeAtnjgDJz/IJBAX9CrsO2/a0k/Uhz+C5UNmv3kzL0HkOunAUBPs7x53FysvkhIHCrhfSUlbksd0asMRU4E0wQK41d3qZnyNP8ne1HYelRtZ3kpbpc0m+5spVbljdTfooV8fI+Eof6Co4rv4iXgYSt+FMx3HByr9MY2aEOW2M4d+NWTA3D1z+hfLD+1/W2bNBeE5BY0fZJMiFqLFsvn1XuAGsZAj3NGgahBnRZXLIgTOCWfO8EIwx+ZgKUUkcu52DHc1I4OWgcCn712VcG8B2J4b8WnTQ==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(7416014)(1800799024)(82310400026)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	nk4L1enaqM9fie+9r5q7yMZ4JNSdoVXQGvagPKaI0F9a3Mj2jnaUu5lRajr4tlmUj9nPQtxwjYorowlyaLwTvAaCFol8BEjdvGoH6TDkZuTUDukX1wyEIYPwQMJbBq9+fKYZq+fzNFGM5I/2WsoR5+oT8jVSvb/bXyFR7D+/Mss7uxhPmccQlSqydS1L6mbXpj1rkPxaSHIonwXQ8aZvrzW3qfdBlIfo1bL/b8XHMfjKnsYGhM7TSTw/6j/SI6lCwGWBih3bkYTxdmO87fRu+b8K5YvkAbGksklCzexXygdWTirH5Iiz4e5KpwfOWl/fB9yHu3lanxfP8AonFG29NULho+9J9y5Szj+tPoQ+dmf/eh2ayCrTNbYyh0fytRosxEnPv25M1A1JD6c2u0pmHDgSMz1DW7zJ41v6vfpvPKWFiKtsorY2ay+2u1Hs4AEB
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 09:36:59.2226
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2bfc5c89-73b4-4634-2654-08de859b1179
X-MS-Exchange-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:
	CH2PEPF0000013B.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7718



On 12/12/2025 14:18, 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. arch_domain_resume() stays int to propagate
> errno-style detail into common logging; preserving the integer keeps the
> reason visible and leaves room for future arch-specific failures or richer
> handling.
> 
> 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 V16:
> - Refactor error handling in domain_resume: move logging to generic code,
>   use explicit return code checking.
> - Make context clearing conditional on success in arch_domain_resume.
> - The 'int' return type is retained for arch_domain_resume for consistency
>   with other arch hooks and to allow for specific negative error codes.
> ---
>  xen/arch/arm/domain.c                 |  39 +++++++++
>  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    |  27 ++++++
>  xen/arch/arm/include/asm/vpsci.h      |   5 +-
>  xen/arch/arm/vpsci.c                  | 116 +++++++++++++++++++++-----
>  xen/common/domain.c                   |  10 +++
>  xen/include/xen/suspend.h             |  25 ++++++
>  9 files changed, 205 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 47973f99d9..f903e7d4f0 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"
> @@ -851,6 +855,41 @@ 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=%u, shutdown_code=%u\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 notify 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 )
> +        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 758ad807e4..66b1246892 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..313d03ea59
> --- /dev/null
> +++ b/xen/arch/arm/include/asm/suspend.h
> @@ -0,0 +1,27 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#ifndef ARM_SUSPEND_H
> +#define ARM_SUSPEND_H
> +
> +struct domain;
> +struct vcpu;
> +
> +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..c4d616ec68 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);
There is a theoretical race between this and ...
> +    if ( rc )
> +        return PSCI_DENIED;
> +
> +    d->arch.resume_ctx.ep = epoint;
> +    d->arch.resume_ctx.cid = cid;
> +    d->arch.resume_ctx.wake_cpu = current;
setting up resume context. It is practically impossible but still we could move
setting up the context before domain_shutdown and clearing it on failure to be
race free. The race is about small window between domain_shutdown releasing the
shutdown_lock and other CPU calling domain_resume, taking the lock and running
arch_domain_resume before resume_ctx has been populated.

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 09:38:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 09:38:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256871.1551343 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w39pc-0002v7-HF; Thu, 19 Mar 2026 09:38:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256871.1551343; Thu, 19 Mar 2026 09: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 1w39pc-0002v0-EJ; Thu, 19 Mar 2026 09:38:20 +0000
Received: by outflank-mailman (input) for mailman id 1256871;
 Thu, 19 Mar 2026 09:38: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=8LP9=BT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w39pb-0002uq-9P
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 09:38:19 +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 5ad2b089-2377-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 10:38:15 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-486fb14227cso5019415e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 02:38:15 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-486f8b1fe65sm52722725e9.5.2026.03.19.02.38.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Mar 2026 02:38:14 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5ad2b089-2377-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773913095; x=1774517895; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0E1jdT84aMWdUrU+mv82LQHDdSY+qanWP01YXxfclZ8=;
        b=SY0y6maNPRbnWWVvu+/d5QYkx4srZvS3Y87J2ZRu7TWdeAf1N8JvLUYW8decP+5DTk
         ToqZ25OhlY81+BKXVOk7tsqolOni//5/hptZ5ZODhPsGvQTR7oQ7uNAIq/nZb0en+1hG
         BUJBw0FccUVqvwgoilTNmz/DeMv2HpenLbVxgLKKxxUkdxSN0UrkavW9Q+WXGq5VQD93
         gcdLxa7J/+FyIyICJN3zbTv2A4dPANgK+YnP5EBGcKmL+bt4mSxEbt3xd7hqLyzU0uJ/
         n2Rif0hyUD2eQEPVS0foJfXL20SJt50rsvNr8UWJmbGjONKUr7NSg6movhjIh6vuboRm
         NXLw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773913095; x=1774517895;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0E1jdT84aMWdUrU+mv82LQHDdSY+qanWP01YXxfclZ8=;
        b=dsIBFKUUtreA4QyTTB2Fjh1JAf2hfeBTds0DVH8K8Vdapp2HdXQINnysIX1HFoCCIX
         uHShYIuAbsLrikoGBeAdJ0W7MCqNVpHi13vRHgwBFFV+S9UZGCe2sw2atDAJ+PpinTdn
         ss9BM94NbObV784qPRDnGYBHSuveEqfmlE3cZbq3HEply+MC09IYPI94aFPqTb8R71ER
         E61PTJzQy+UefA6RbsFzCkl7RzNXh1Zt9UC5h+L6a1CspUnQvnX1bjoV7i3Y7sgpypB6
         ZKdzl8m8EkoVDqGvMiFLhl5Lf6Fmp2H7H7/POuXQoViWBDvruEV5rIuD3+Zqhc2uFlDQ
         isXA==
X-Forwarded-Encrypted: i=1; AJvYcCWP9OVGfd24ZJaWqN0IW9raxYWVBi/DhjjG/DiFSi5bxxhAB3bEg03eoITpIWxNodOGya8AeZQWiD8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyBPpgsq/Z5sQLPwyp39A0fU5M3nVmvwHZ2knvjtNWxL9H1hQ6Q
	o5t7G1kKO9eYlF71yYeAjekPEzkspDzaFuuwm2UXFzjzMIDv3GezoQZPT8yUpjjXKg==
X-Gm-Gg: ATEYQzxT0kslmHi4MandvJoI8TWFkzPdBO/w956kQrwCCcNXm+Lb5eeYtwetD8TC5sa
	0piMjZHr1QsImsSd0TsMuQbT3RJdbjZv3xDE4HtfoWAhBli6Z5u2rMjGFRVDt0Eab/OIE2ZSS+L
	YWwePialE+3fPuOYvnyFy+kbmSFL2b+EdAp+8wVA15VW9u4bYpYXrG5KqYGMJkdzzOKIEpWz8hb
	WlgXOMN459+albBZwTUfIDhl80zAF+8H8EF3JVPw/VmLpfHsZuwiiQDqRsHg4ZypIwPWMbKXS6v
	VmJ/X0RzBC2FQPYhnP/xHBohFqjlNJkuJoCsLjYrPpw60dFA/udXdZVBd+mBXXF3uReIFaYsqbW
	QpMO999KSBMHvIZcvAIoNyGh7MCV5HA94H8ua1xGIjQU90aZHdbb2JoLBhvm7Bl8TGGDO9eMojH
	io6fv7JVXzlIbnxyiqldlOL2o6z0qJRer42NMaVpWZSp5kHX81zaJZfJiQ5vGj+OO7KUWlU9JQa
	NQ3V56paknmNNQWwuGzrPYy0w==
X-Received: by 2002:a05:600c:19d2:b0:482:eec4:76d with SMTP id 5b1f17b1804b1-486f44435c8mr105289775e9.17.1773913095175;
        Thu, 19 Mar 2026 02:38:15 -0700 (PDT)
Message-ID: <03b9bdde-ad5f-40e7-afe0-107a471fc0a2@suse.com>
Date: Thu, 19 Mar 2026 10:38:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/ucode: Exclude Zen6 from entrysign mitigations
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: <20260316120605.661823-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: <20260316120605.661823-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.03.2026 13:06, Andrew Cooper wrote:
> Family 0x1a covers both Zen5 and Zen6, but the latter is not believed to be
> vulnerable to entrysign.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> This does want backporting, but it depends on 8e4775d118c327 which collects
> leaf 7a1 early enough to be used in this way.  So, it should hold off for the
> moment until the FRED backports are finalised.

Okay.

> --- a/xen/arch/x86/include/asm/amd.h
> +++ b/xen/arch/x86/include/asm/amd.h
> @@ -59,6 +59,8 @@
>   * For Zen3 and Zen4 (Fam19h) the heuristic is the presence of AutoIBRS, as
>   * it's Zen4-specific.
>   *
> + * For Zen5 and Zen6 (Fam1ah) the heuristic is the presence of FRED.
> + *
>   * The caller is required to perform the appropriate vendor/family checks
>   * first.
>   */
> @@ -66,6 +68,8 @@
>  #define is_zen2_uarch()   boot_cpu_has(X86_FEATURE_AMD_STIBP)
>  #define is_zen3_uarch() (!boot_cpu_has(X86_FEATURE_AUTO_IBRS))
>  #define is_zen4_uarch()   boot_cpu_has(X86_FEATURE_AUTO_IBRS)
> +#define is_zen5_uarch() (!boot_cpu_has(X86_FEATURE_FRED))
> +#define is_zen6_uarch()   boot_cpu_has(X86_FEATURE_FRED)

A more general remark here: This, I think, is one of the (rare) cases where
we may want to use the raw CPU policy, for the distinction to remain
unaffected by "cpuid=" command line options. Thoughts?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 09:40:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 09:40:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256879.1551352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w39rj-0004Ra-Vn; Thu, 19 Mar 2026 09:40:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256879.1551352; Thu, 19 Mar 2026 09:40:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w39rj-0004RS-QU; Thu, 19 Mar 2026 09:40:31 +0000
Received: by outflank-mailman (input) for mailman id 1256879;
 Thu, 19 Mar 2026 09:40:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mAdu=BT=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w39ri-0004Qs-CW
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 09:40:30 +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 a7d9ecbf-2377-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 10:40:25 +0100 (CET)
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by SA1PR03MB6321.namprd03.prod.outlook.com (2603:10b6:806:1b4::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.20; Thu, 19 Mar
 2026 09:40:15 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%6]) with mapi id 15.20.9723.018; Thu, 19 Mar 2026
 09:40: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: a7d9ecbf-2377-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=K3WmXYXzRFldYY7SaXCtWvVXeM+MpyTeQYLwtbHHgLt6SpRjweSZutuuaT16tirQQYrK9fKPTVvsFWL4fAysyLhWTFttBm3Kk6atN6yKhWdkLBcjy8e1psUxAIuE8x5amtBMHzJdWkLNB279mSQ1+SKOjulGFkz37UUb7LCsJDlrnBdsusn6JVJ/vlAhPeVPlDSKW8bYMfSmqZNBfGNp/mkaJSV8zMpq9YLFg6NxoZt6upVg5HIC6zoNE4iMP5yAzOKcFUcPYs62Pz0UqgvlV+GkMRX0Uni24nXbII/U5TUCKwghceAWtMaPzwTpkedN3H+GGCgMiU/D2NL62utyfg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6TjSp0R+1uGwYCPITivKPWItXdn3pkd514fk+WaY+iI=;
 b=jEad4CtoQ0aq3RctmxiyHlwva1t1xEBBziTKb6HWRiptajzWHXMxL1tvB4l28X4l8uZMEh7VeaJ5PQZHiNYHXUofRS3utOZ7D+5QakPVzY/COLNQfcYX3ehVwdiS3vmHYwtlQcHHMI9ULd2Z7vv10CHI4dKaEJKvFyBJRZS8bug7++gZheqJmHCV4JXvtrL4VlueiLLUPZIgcahfQlvFt4boXLwWoKb0Y2Y9BMzpfaJrKyokpGzao03ItHlLZBifYpF1dmpYD/Q8VLb4vgjM6Gs/jYr7ZGX6YzDHiwMj8iQgqtpOMjXX/Ho8SfL7ENo4/ItJmlvFrU/+7cUsn57rPQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6TjSp0R+1uGwYCPITivKPWItXdn3pkd514fk+WaY+iI=;
 b=xlkTYqBBbNcEO9Jr91/uD3uy7ElSkl8LffmqOXDh0xDXFgZgDIdqGmJLtFkhcTK4g1nXWvgI0kJMhiGwuyvFJ67/05n2rC5FwZtok7daK321Ih+2Pk3Cqkjpe3I/VK9UaOxABXypAernP/eV/0npGN1hc2Vnw14mCoIk5j1qvsk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <fe7df584-31b4-464c-adcb-dd90c0a4f47e@citrix.com>
Date: Thu, 19 Mar 2026 09:40:12 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] x86/ucode: Exclude Zen6 from entrysign mitigations
To: Jan Beulich <jbeulich@suse.com>
References: <20260316120605.661823-1-andrew.cooper3@citrix.com>
 <03b9bdde-ad5f-40e7-afe0-107a471fc0a2@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <03b9bdde-ad5f-40e7-afe0-107a471fc0a2@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PA7P264CA0489.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:3dc::21) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|SA1PR03MB6321:EE_
X-MS-Office365-Filtering-Correlation-Id: a5033903-203b-47fc-31c3-08de859b8680
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|56012099003|18002099003|7053199007;
X-Microsoft-Antispam-Message-Info:
	OKcx4TwALgZgKNU1tCP1AGFVMcN11459Ht9mWdrvGaIEv8c4So+4lo5WrRKoR+QmqSaUJ82p5bGU2QBIOXD2gNFA+qhcGrApXZmCszCvlHYix88gypV2AhYbjQOkavn7PC7Nvh8XKckw35IqaQAtMhC2Fpl3nh/TJFw3W89p2h0y0nQu+Fq2adLAuQ8kGQziCEOCQBw2SPuevqE5imicYz+Ns27lFSF/Hxg8asbk4wT1033CA96+k0AxfoQqiJYkFtpO1rIvrozm3mY2YsTicZDf0hlp1f5wYH21Rfv4K93hTwg3KnW1yYfnwggN65+rExLqQB6+25fwiC9yAQFhoKWGzi1a7yEzw075HXeHcJhholDujOY7GwUtlTPPFf9bNi8Q+cnLmmf/4Hz+N5yg+azXeRqPBYqVT1fxIf/f94twU9Bx9rNL+bQceV5nAs3jcHeQkSJMdw+nxvvrAY+cs3ZwCotlFYZIV8nalabIvYAI4Cwh2EHRhVsDz7e5e8qMR3gLYI2ejYGKTh7BjgdjjxWEDvzUHzwTi0E27y9Ec1lO04oPTfcjQHNMGuMGzpve1ZiEs2DFYmD2zFzlAgmygRUyLZmbNPh8LqgW0xeo6raL+5U1OhrY6Qdcb/niCu8crTWcaAkMcwalxvqIx3kYKUgaxnM6WQPaPgFFLLDad36QUjCM2E5PA6ctAUGMLMYbOxgisuTLoTCT3OTo9ATmbjwrX8vnhwgDOxckYaepgFI=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(56012099003)(18002099003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?djJuZVQ1d01QaFI1YWdNaUpsNkM5VUFoZTVzYkdVdW1MaDcyVWRUeER5aFRW?=
 =?utf-8?B?ckhMUmZEaG5va1VLWGpscGlxWXgwVURKQlVUZlpyQktNbTRxQWJpVUp3dEdr?=
 =?utf-8?B?dk04eTBGYjlkU2RmSFVlT2NjdGhQaFNxUXJqSXNqVzZzaEI3OHZtRXNQZkF5?=
 =?utf-8?B?YlBPdlVQT29ld3Uwbm1wekZ2RStOVDFUNUkyRlpPTE5tVnFUR1JQK0NZL0M2?=
 =?utf-8?B?ZzBVMDFmdzNEMk5sbXJjMEs4bjMreXhPLzRNSUVxRUZTUVc1NW5uMzRBMzls?=
 =?utf-8?B?bFlkU3dpV1drZkkva3hKMFlHcStpTFFKVGJPTkVJWVJrRkd3SkZxWUxseEFR?=
 =?utf-8?B?QmQ5QTdTYUx1OXJlV0xpRXk5RDJseU15NDcrM09Bckg1MmxZWWJaUlUzWHVT?=
 =?utf-8?B?UEkvcGQwOFFLeUFYclR3cmhseWNIblZsRG1QZGdTMGpTSGFZRnlQZUs0eEwx?=
 =?utf-8?B?YXhhd0ZTZlV2ZlJXTEtyREtTcUVtSFBIQjdkeWticWRkSC84aTNOaE9Id09X?=
 =?utf-8?B?NVZQbFIwVTltYlNUMmdpMkNGWHVtWkVRNXdsN1JoR1liRisxcVh2UE9VZmpQ?=
 =?utf-8?B?SW5BcjZvaGV0elpXMzhRNEt6OExPc3MrOWMzek1vL3Q1ZjVSanMvRWxBVS9a?=
 =?utf-8?B?YVlUWGNLNlVETU1ML3ZmWE5DQ3NOUGJaMFRTV2grZ0g2REtJV2pxSFQrODZV?=
 =?utf-8?B?TjlVOFBOaWZVU1ZCSk8xZUJYSTNxaUxVelMvL2FML1Z6VVhuaXp1OStGYjBD?=
 =?utf-8?B?VVZUR0JGU0s0VUNBT1R3L0Z3YTdIN0grdkN6ZzN6TkFJN3M1cHkrdWY0bFRz?=
 =?utf-8?B?d0R4MGFmOEVMbkI2amZMU2RMUVpMNE85TjlqWkFocGpuZ29VRG54ZVdDSFNK?=
 =?utf-8?B?YWk5VGJES3FFMUhOM1hHVklTR0hHSnROaFBSZjhtWEh4MEVEY1p6L0E5ZzFS?=
 =?utf-8?B?V2R1dnFUd1lRSmcrZWl6d1E1N1Fnc1Q2YnR0ek5NU25xOVZya1Byc0w0MVBT?=
 =?utf-8?B?TnVlUmVNM29pNE9XaVJnQThsT01tclFjc3h1UWxIQ1VyZlU3NUJWQnhIWG93?=
 =?utf-8?B?Y0l0QWhrWFpLZUlUSHJ3S0ZoZXVhT2NCV3lkNldOcWN6UnRueXlOSXN0MGdO?=
 =?utf-8?B?SzhJbS8zdWRKYVZZM3dKSFlURUE4WkNlejhwdjRuV1BNaUFUNzZqQkMzZWhm?=
 =?utf-8?B?S1p3azZtU3YvUGpuNFcvQVYzTmY5V1pPV2kyS3ZId2thOE1QdkIybHJtTXdB?=
 =?utf-8?B?KzVSaG1kak1ra2JldVNyeHVPTDhDbTliWlF1bmp6RHRVaWZOMkE1K0drMFZq?=
 =?utf-8?B?U29tWkI3R2JGUlJieldWdjV4Yk9UeFlYSUJScnE0VFZXWDV2S1FBRlViQ3cr?=
 =?utf-8?B?ZElweE96LytFdTlFMDFNcmtoYkt1VTFmYVFTSG1aZzB4K3VSTWwvUkVhVEJM?=
 =?utf-8?B?OUxSc1NHWXF1dWN0R1U3d3Y4cHlvd3pJQUdZNHVFTktMVm1WdUwrNGowY0Ez?=
 =?utf-8?B?WlZ4NFJ1TXZJczRySTFSRWcwb0VIWUdnc3VrdmpvSUxKREVnZUU5UTU1dFFl?=
 =?utf-8?B?U0IxOTJYdGhMQlc1R0tEN203VDNScjhBbDE4b2tqdXVGb2JObU4xK1RDMUFy?=
 =?utf-8?B?am1yWXdqVUhzcTl6aGZNNnJqRndhWXdNbDNHM0p5TWpPVTlMRXd5b2RjRDVY?=
 =?utf-8?B?TXZoM2RTOFVndVN2SWc2M1NvUlhZa3VKbVVyRmpIaTd1Mk9NYlZVbTY2ampV?=
 =?utf-8?B?RVEzNExLbWJHQ0NyS05HMXdXOGcvUUZ3Y0FwaHFFNVd3aTFyaGU3ZjFVejJW?=
 =?utf-8?B?ZHprRWNtVzU1M2p5L0RjZ1RPbFM0Mm5lTmxWam9SSU1PWFZQZ0VuWHFhaG1E?=
 =?utf-8?B?cnRneG00ZVMvcUNiNkpJRXNlWkZNVHZLVUxWcTZmVFZTTGVJMGNBRmNqN1Zy?=
 =?utf-8?B?Skt6YWtnbnViS0MwbElZaCt1Wm4zc1NUZzZINVArRkxvZkdHNkVVRzcyN2xY?=
 =?utf-8?B?cDhQby9qK2c4bnUyUFhBamdKNjBCK1RjcGRtUnBMVFVJb3lvUjNYZFJ5cE1W?=
 =?utf-8?B?aDFURmtNNENQMVUxK09BWnFScTNPbm1ob1hVWGNHNmpZanRTVnNkYnhVald3?=
 =?utf-8?B?MDVmNWphOW1iem0xeS95bXFNTUUweFBvZGt3ZVBFNW0vWTBmQnMxU0I4Z25s?=
 =?utf-8?B?a1cydTd6NWhtbDNhSHNxbFJoTVkzZmtrOHJRcDR6Ry9uYkFEOHJ1bS9aVFAx?=
 =?utf-8?B?YXFYckNvNHZIK1phWElYQ21xbktjOXJzNURqQVlERXpod25yRHB5QXVKcWJa?=
 =?utf-8?B?OWp3d1MxQU52OVl4VnVSUDYzaTErMXJqZEUvbEpzSmRVRGlPbm5xdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a5033903-203b-47fc-31c3-08de859b8680
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 09:40:16.2761
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 3mV+wz+IyX/2YS7dtzbA0FMQu9+kBHQqd7z+6PyChcRRnQmuXXU+q95mxvKqw6lb659xJ2+FStvlfgTH5p8HfDDDGhFxLWUcCj3TLqB6MWw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6321

On 19/03/2026 9:38 am, Jan Beulich wrote:
> On 16.03.2026 13:06, Andrew Cooper wrote:
>> Family 0x1a covers both Zen5 and Zen6, but the latter is not believed to be
>> vulnerable to entrysign.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

>
>> This does want backporting, but it depends on 8e4775d118c327 which collects
>> leaf 7a1 early enough to be used in this way.  So, it should hold off for the
>> moment until the FRED backports are finalised.
> Okay.
>
>> --- a/xen/arch/x86/include/asm/amd.h
>> +++ b/xen/arch/x86/include/asm/amd.h
>> @@ -59,6 +59,8 @@
>>   * For Zen3 and Zen4 (Fam19h) the heuristic is the presence of AutoIBRS, as
>>   * it's Zen4-specific.
>>   *
>> + * For Zen5 and Zen6 (Fam1ah) the heuristic is the presence of FRED.
>> + *
>>   * The caller is required to perform the appropriate vendor/family checks
>>   * first.
>>   */
>> @@ -66,6 +68,8 @@
>>  #define is_zen2_uarch()   boot_cpu_has(X86_FEATURE_AMD_STIBP)
>>  #define is_zen3_uarch() (!boot_cpu_has(X86_FEATURE_AUTO_IBRS))
>>  #define is_zen4_uarch()   boot_cpu_has(X86_FEATURE_AUTO_IBRS)
>> +#define is_zen5_uarch() (!boot_cpu_has(X86_FEATURE_FRED))
>> +#define is_zen6_uarch()   boot_cpu_has(X86_FEATURE_FRED)
> A more general remark here: This, I think, is one of the (rare) cases where
> we may want to use the raw CPU policy, for the distinction to remain
> unaffected by "cpuid=" command line options. Thoughts?

Yes, that's the plan, but raw is still collected too late right now. 
This is on the todo list.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 10:09:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 10:09:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256898.1551370 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3AJi-0008S0-F9; Thu, 19 Mar 2026 10:09:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256898.1551370; Thu, 19 Mar 2026 10:09: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 1w3AJi-0008Rs-Ap; Thu, 19 Mar 2026 10:09:26 +0000
Received: by outflank-mailman (input) for mailman id 1256898;
 Thu, 19 Mar 2026 10:09: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=vYGS=BT=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1w3AJh-0008Dm-1e
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 10:09:25 +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 b3acc3a8-237b-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 11:09:24 +0100 (CET)
Received: from DM6PR03CA0027.namprd03.prod.outlook.com (2603:10b6:5:40::40) by
 IA0PR12MB7579.namprd12.prod.outlook.com (2603:10b6:208:43c::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Thu, 19 Mar
 2026 10:09:16 +0000
Received: from DM2PEPF00003FC7.namprd04.prod.outlook.com
 (2603:10b6:5:40:cafe::5c) by DM6PR03CA0027.outlook.office365.com
 (2603:10b6:5:40::40) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.19 via Frontend Transport; Thu,
 19 Mar 2026 10:09:16 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 DM2PEPF00003FC7.mail.protection.outlook.com (10.167.23.24) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9723.19 via Frontend Transport; Thu, 19 Mar 2026 10:09:16 +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, 19 Mar
 2026 05:09:12 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 19 Mar
 2026 05:09:12 -0500
Received: from [10.71.194.215] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 19 Mar 2026 05:09:10 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b3acc3a8-237b-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=a7RKThrl7w/ktD+jSYbaFjCUy+XKC3mSYQMOeVbDwJBwjx2oKBtMGjRx4yHTl/CR2RoIuBZatIxoj89v48KediCNSPpztFF3uIlk2xp4RjDXRsa3S+bAu3fkhY6p6erxAcMC8ScXQppwTadCsVWubPLvj91ogXQ+t7j0LuotywX7mm7jqbaUxMD5VvYCarddAfEJjOqin2+Pjv0Jl9MDhw/SRBYH0o6OcGCDui8xjWE4CXr8RF1G8xoQEATJ5oFazMoDC3TLYhHkVAwT3Fp8Yt6PFL2juMEztjcRkjb2O4nuVI4VZbQOwFXrMSS7p+dmAYH5CFxOGN1NyOc1S+Dvtw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Hfm6QmnRtILbCzalGWpjoEwtNmGG9743U550ZpB9xa8=;
 b=TFzuAgHXOfB3X80P031G+9Zx9XsZsJrWGtTMFSjQDvckxFzRSNJWKzeRbHRWqLs3Pf+tuRekPz8ayjGCwQdyjNYLmSm5KCUfOI0wfWoA+uYDfNFQzruimMzxDiVMAQ0hEmfAWJZGQaa42Uyis3qJzuAJqSmhVa2nsgLNJA9Q286cue75S3V4RQxh2ibu87oNOEzWW30NIAu4/+5lVh/l9PaI9Sl3sxNS+F+l+j33mT+SfIutvw52SmQg3kHv6gqssjEHnapusQEGa1TNPYjzL0OEZsTq55YAE3A6qnUZcIve5jsrcWUMU+sNrroicWLSzO65GmYHhJqHiEUd8fkG4Q==
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=Hfm6QmnRtILbCzalGWpjoEwtNmGG9743U550ZpB9xa8=;
 b=O4RrZrprF4zqF62vO2E/F+Cq1d2R0bGcE+oG0LlxMy2rtX6J1V1ofpIeBKxuRX/8LaArFF5LbcjLsrazFWElj5UIpz9/wiDcVWBBcTxhLYB1jr4Z/acnoYxzglhAb/clUFe+Ci1g3OQ9pl7zowgKhTD59pXQbrtT0hyP34BJay0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <5bc8a4ab-3e23-494a-b5ce-d1aa5c6ec7de@amd.com>
Date: Thu, 19 Mar 2026 11:09:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/domain: make shutdown state explicit
To: Mykola Kvach <xakep.amatop@gmail.com>, <xen-devel@lists.xenproject.org>
CC: Mykola Kvach <mykola_kvach@epam.com>, Paul Durrant <paul@xen.org>, "Jan
 Beulich" <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Tim Deegan <tim@xen.org>, Dario
 Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, George Dunlap
	<gwd@xenproject.org>
References: <2004584dbbe393c9de4b3231bf91a24f6e5de5de.1773875416.git.mykola_kvach@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <2004584dbbe393c9de4b3231bf91a24f6e5de5de.1773875416.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM2PEPF00003FC7:EE_|IA0PR12MB7579:EE_
X-MS-Office365-Filtering-Correlation-Id: 3eb81651-0836-4998-fc3f-08de859f9448
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|82310400026|1800799024|36860700016|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	3YMJKZlohwTfjkN8qb+vxfIF/baE9RMDDWo775PVi+ZUxtsvL452pe+0pBnJtQKj9AhsO4lRjiehJ7m14vfKPGqzDZxSqRoO34EoVe/9fW9ZhwWn9hvnZT8HEugmVDdlUP/ju8v9/k39BALnpzKjyqwR8UqTlRg6CXvuAZ1Fe6XxpJ8E9cdbTWmt+GTKtGebaMymGsEmOMB/q/oZCDjgFnxnIAQlFTFiu3BeP7Omu/KG2QmVWKWYFJ+6+Z42bxe1VV/gfoWsQ4DWWJYsqwpuv5lwc7fM1jpHUefuemn2bE27Vob7EcjSB0r+PfAMD/S+PWnrFllY1yfsh04QDYZW2eDrTN5Q0mZXtOvG2QBUPCSjzq63LzgrDewmnXPWKD2HRyDjOdQRtqsCoSYIguHJFkHDT8RExKp3Oh8L03GwJvGQFl6NRRxfv9i/luzhDkVZvWCalus5LsTEo/EexjHc8dVizdM4jYtccfD9mvxwA4+D0e3KWGQCl4K1NMXL3Y4xiniC4KG1NeyWzBl5B/C3fDS7s1Jf5huyBKzwwOMYMsP/kMjgzoLlR5d/nSVfWRNTRsjMKXFCmJ/sTtnemiD6NdTsA5eOt68Hq81Ry8CdjUAFvrCIiI/UWFz+EjfZUmgpZkejvXybZW5vhF2xAVgOycvn4XWTTsuAiSP0nxLwo7PukZJtvrPh4QEYbFHC5JwTQ9pOsZ8DhriXsPVYvywdkXrdkIphIE/peVYoG6NncaAgDN3RTv8gVkgb3z4RFi1UjJeTTvKi85TxdQPscoRyGw==
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)(7416014)(82310400026)(1800799024)(36860700016)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	w9cxeTlpMS+4+QyA1VOU8QBhIS2hv9dRXVvw51NlqNTfDnvW7uFLIlxGFRAt6oa8QL7XQTBxx0p4/qmAt654kiAnQZD6oRP0efD67bpUrkF6ct8YYy3BoRNqi1/uAhVl+YP4GQBlwHzVFmc0cENscuj1fIPr5mR5N4v+L5eO01VT6x+7E2aqYPFc3r4oiuR/KpdrHNabqOfmKhoLdtP/KfSHPysss1ECrkJo2gbZ9oL43CanMAjt8fE/wTviWbsLONa89CJsVES8GuB0D8GGN5XuC8H4Pp2BjvucCFoavoq7qSs8wr3wmzlePHvoyfbCJgbkTDbkTm1oAP9kYm+SA/dYNpAnR22OafhVORhI25bhJuhfZaGc8HmOTSc8llrz4HKhGgo5ZFfq0/lewDFHy9EILEgpFYcqb53e20AMyNOaPcquIYtbzc7RmKPWpsdw
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 10:09:16.6874
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3eb81651-0836-4998-fc3f-08de859f9448
X-MS-Exchange-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:
	DM2PEPF00003FC7.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7579



On 19/03/2026 00:25, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> The domain shutdown flow currently overloads is_shutting_down and
> is_shut_down to represent multiple phases of the shutdown lifecycle,
> while some users treat is_shutting_down as a broader "domain is no
> longer normal" condition.
> 
> Make the shutdown lifecycle explicit by introducing
> enum domain_shutdown_state and converting the existing users to helper
> predicates describing whether shutdown is in progress, complete, or
> active.
> 
> At the same time, make domain_resume() validate its input state and
> return an error to its callers. Resume is now accepted only from the
> fully shut down state.
Also, you limit it now to SHUTDOWN_suspend or SHUTDOWN_soft_reset. Ideally you
should explain why i.e. resuming from crash/poweroff/reboot is semantically
meaningless.

> 
> This removes the implicit coupling between unrelated users of
> is_shutting_down and makes the shutdown/resume state transitions
> self-describing.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
This is mostly a mechanical change. I verified that correct helpers are used in
place of old flags.
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 10:09:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 10:09:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256897.1551360 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3AJe-0008Dz-74; Thu, 19 Mar 2026 10:09:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256897.1551360; Thu, 19 Mar 2026 10: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 1w3AJe-0008Ds-4G; Thu, 19 Mar 2026 10:09:22 +0000
Received: by outflank-mailman (input) for mailman id 1256897;
 Thu, 19 Mar 2026 10:09: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=vYGS=BT=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1w3AJc-0008Dm-Ss
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 10:09:20 +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 b1592d98-237b-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 11:09:19 +0100 (CET)
Received: from CH2PR17CA0012.namprd17.prod.outlook.com (2603:10b6:610:53::22)
 by SA5PPFAB8DFE4E8.namprd12.prod.outlook.com
 (2603:10b6:80f:fc04::8db) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Thu, 19 Mar
 2026 10:09:13 +0000
Received: from DM2PEPF00003FC2.namprd04.prod.outlook.com
 (2603:10b6:610:53:cafe::f1) by CH2PR17CA0012.outlook.office365.com
 (2603:10b6:610:53::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.27 via Frontend Transport; Thu,
 19 Mar 2026 10:09:13 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 DM2PEPF00003FC2.mail.protection.outlook.com (10.167.23.20) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9723.19 via Frontend Transport; Thu, 19 Mar 2026 10:09:12 +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, 19 Mar
 2026 05:09:12 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 19 Mar
 2026 03:09:12 -0700
Received: from [10.71.194.215] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 19 Mar 2026 05:09:10 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b1592d98-237b-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qKgISxUls9vyJjuLumeT+CveAf/OuT/R27ZHKxZnNlXxMpFjMjBpX2FHwEO5OgTUaDIf9OSudUJ25BroeFZFrj5R5kJg2mlyLx9WOp7vovt+vOQAeIlF2feKQerMh3C6FKkITJ+GyHkGmmE1RCQ2rA74canYmuzlbCl4u5Fd0zSS8lM1XAVCy1jL3NFz/BXgReyXA1NUm8XxMV5+yn9ZB+Em2CtxxTnIloOc9sJHoE4HmMFIfWvtAUh9Xe4gASPeGckcILlErosW7pehaaFc0B0wbBjG6C3y1+xT/UFlbP2rC/2EKsNA8iFSIYp4gEZNjzzcdcai4cgU0brv9U6GHQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Hfm6QmnRtILbCzalGWpjoEwtNmGG9743U550ZpB9xa8=;
 b=pgh6rpYbsjraB4w5kLeYz/d6ChPibmZ+YgUwHu0eaohiD4KtqxgaIPV3TfwIlCdnH0a9NZ+PVLZ7FJuUS3rIAlrBbDcdCwcbCMWFKL76H+Np7ibypA9/Y8f3vy/FhwpRpYj1aiok7aQWjXVe72bZHfFOdcRmy4gLShMkbgyfOCN33R7GVQbvIgSKGyP2Orgf3alhr50JBxfU9oqYQ5w9a73re9a3Q7zyiEvU6a4ZubfJdLEahOCBnLiZct6IRFjjQaZcsPoVuZtl6B/DWKQYEYVegEAqTUvgWSFKl3VrE+qWjlm69ZFoxtxcHWe6tcNa+/fCYmWyMbkUlYqvNTD73g==
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=Hfm6QmnRtILbCzalGWpjoEwtNmGG9743U550ZpB9xa8=;
 b=O4RrZrprF4zqF62vO2E/F+Cq1d2R0bGcE+oG0LlxMy2rtX6J1V1ofpIeBKxuRX/8LaArFF5LbcjLsrazFWElj5UIpz9/wiDcVWBBcTxhLYB1jr4Z/acnoYxzglhAb/clUFe+Ci1g3OQ9pl7zowgKhTD59pXQbrtT0hyP34BJay0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <5bc8a4ab-3e23-494a-b5ce-d1aa5c6ec7de@amd.com>
Date: Thu, 19 Mar 2026 11:09:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/domain: make shutdown state explicit
To: Mykola Kvach <xakep.amatop@gmail.com>, <xen-devel@lists.xenproject.org>
CC: Mykola Kvach <mykola_kvach@epam.com>, Paul Durrant <paul@xen.org>, "Jan
 Beulich" <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Tim Deegan <tim@xen.org>, Dario
 Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, George Dunlap
	<gwd@xenproject.org>
References: <2004584dbbe393c9de4b3231bf91a24f6e5de5de.1773875416.git.mykola_kvach@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <2004584dbbe393c9de4b3231bf91a24f6e5de5de.1773875416.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM2PEPF00003FC2:EE_|SA5PPFAB8DFE4E8:EE_
X-MS-Office365-Filtering-Correlation-Id: a76cb347-3213-4a59-dcd1-08de859f91f5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|7416014|1800799024|36860700016|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	EctQ+TiTnl1+LhnGJ/o91Cvju70bL2fDRvj87lFG6Nd7qipnaoRxIaBXmOs0nMLxIvg84fSRT4BWmp/8u5FVS84zsVEuVp1Yfl3ka6llyG+SledE8XBQndPHkGaPVmxKZP7uR3ALzvk6UEYg773ZwU+iwDE42Wg3+xlVOPCHDyTjIRTSf4EeEGwBon2tXZflVzHwit+cwNSK1WzKl676rBTVkZrjFBXo9zHoUvs00g5vUhJd+1qlLcw7a+Wbtu/ldI+FlDWoNzLwnNcz1p7HQeQh+Vl0rNhFEFi1FNo/bxSK6121cUudeWjwwSkjhXaTnddTde/KkvVrtu5W96v8Ni2NjpaYk7WGmBc+DD85enHJDMI8yM3DH/UNB8mavsMYAvYPxRICHr1NEyVo0bZCs0EDz8cEfGO0EiXNP87utAd+U0BSYNvZjcg1HmCwUe1Wiwp+a3K1wZjBSQ8o0lFVRJ5B95ge2ElGUtxS944zK6jtTuY/6q0abLvfURXGegKOIoGCEQZfumVhG+FqLM10YzI9VXIeGdddvL2xOtps33NX0Wz6AbOE0TQyrrs3C6EDmRQAIH/aBDEVCp5LSsGxS6CPU4KFQpvHiasdkxU0OaXPEdhO6JMogMLpYyLCcApIdaXA3Uvx7xr5RDv1pKOaRTbanoYQ/1ZE62GGRX95zvL9lth1wL0bdZ8bHqL1ydMfhbpw4Rf/+zr3DG00jX4gxMCCag1h0gV+7Yuu54BFLcYpf7eJr2VzCgZBlJ88pdB/wDp1Q3oZMqxYcNGdhWExmQ==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(1800799024)(36860700016)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	sKljijNlY90LO9j2kKyEFMft9DMaQbr1TK8iZ/PjgKXEPnIMcpUAeD5dpTc3G6Ges1I2C4a3AUoRGEQ6e4skGRTAg3dL+CAL6gWHlESyO12cZ1zmSZAxLdyLLAjz/lZvphw2rJEQQbZsAYdA7vAF4K7Jwr/w2Ai/tbE2A/v36jRynnRkAdZXDYDC+7wAoLhqsvpIhOmxuLXdad+zMXFcyilpBmVVTRv8ZE1b5kWlGe88n1aTYIslfhRlvTWBcbmeirC1eAI+TIWv1PrChWyo6Jcywjesn2I7lQQGd1hioHYmaT4li/3Jv0HpkGm4ClXiG9RoswV0xl46wE0QfgPheAXHxj+DAVyOb+CLo4Y72qizW3CuAJu5CvswRpzuuqQlj0EhmebG49fMsRJ+tgqYnN81QpZjndLTYicBDRkuwI9c4VyDax9hs5kHWUp+b9ZE
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 10:09:12.7543
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a76cb347-3213-4a59-dcd1-08de859f91f5
X-MS-Exchange-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:
	DM2PEPF00003FC2.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPFAB8DFE4E8



On 19/03/2026 00:25, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> The domain shutdown flow currently overloads is_shutting_down and
> is_shut_down to represent multiple phases of the shutdown lifecycle,
> while some users treat is_shutting_down as a broader "domain is no
> longer normal" condition.
> 
> Make the shutdown lifecycle explicit by introducing
> enum domain_shutdown_state and converting the existing users to helper
> predicates describing whether shutdown is in progress, complete, or
> active.
> 
> At the same time, make domain_resume() validate its input state and
> return an error to its callers. Resume is now accepted only from the
> fully shut down state.
Also, you limit it now to SHUTDOWN_suspend or SHUTDOWN_soft_reset. Ideally you
should explain why i.e. resuming from crash/poweroff/reboot is semantically
meaningless.

> 
> This removes the implicit coupling between unrelated users of
> is_shutting_down and makes the shutdown/resume state transitions
> self-describing.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
This is mostly a mechanical change. I verified that correct helpers are used in
place of old flags.
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 10:14:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 10:14:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256915.1551378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3AOq-0001tL-0s; Thu, 19 Mar 2026 10:14:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256915.1551378; Thu, 19 Mar 2026 10:14:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3AOp-0001tE-US; Thu, 19 Mar 2026 10:14:43 +0000
Received: by outflank-mailman (input) for mailman id 1256915;
 Thu, 19 Mar 2026 10: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=1n9k=BT=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1w3AOo-0001t8-Jg
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 10:14:42 +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 7136724e-237c-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 11:14:40 +0100 (CET)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-5a279ce9475so1557274e87.1
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 03:14:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7136724e-237c-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1773915280; cv=none;
        d=google.com; s=arc-20240605;
        b=cpNnqsQjpwgNGihWiEv8vGSC1AGo1tDZDsLXHWUo7zVSY70MIuT4K1d4C/FybsGEK4
         u0OCAYvIKAMln+riFVy0VdTV1xT53PIaMkebBP0P5xCZSst/FBoEDC/X9DcMJ4OLYMog
         E4O8cVynnrx/z9QZgOjucdtEwuUYn/35mGZcxabiiFzoHL7+crmVdVILNasClqZbhwip
         N7jzObf7oSqkca2eSi6EgPxCHTpsQ25Lc1Ymm4LIIJMfztLUJkCOOxxH0c7vlvxKx0Oi
         emvb9QmbsOklJsjPnTnwo1dV+qJuuRYk4pU6Oh0a6D16vfElWrHXk8FxMZyiG7wHZuWZ
         sOLQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=iLudv52DxGrfHYRIi9eHlPNqebBUto5d/XqXeWUEk7I=;
        fh=XPwOTaEPrdk2pN2RgjfihMkJ4NQu8t1nAUIywJrC5RY=;
        b=ECulBka5SoO/0VoHBSdX/w5RkizDGhnsWgKUgBe6YPlC+EodqEikGt+yuzd67uW1PB
         GxvCP2LbZvjs2XBaox4j62PY37eZUsTq9AbfhnyHviJu2cGzD/DJqIWcN8Kcf1brpQdk
         fLnIdboC7cKik0ltww9ShXnT66Yv8HTvRHo0Hd2ZS8LnGzoP1q0OW9Sv12jYj8eXtWj3
         kAJr1BLXejd12OVnwQv1oIdmPU0ZNvnq9htpARczekZ1HzBf11gP8YQ5bYMbGPvaf/+y
         aSX/J8GHc7JN6jpF9wNwlzBvbscMxtp4RlhI5JD+F888SfxjUDSUjCjDR765Y5XmkS/c
         7WvA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773915280; x=1774520080; 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=iLudv52DxGrfHYRIi9eHlPNqebBUto5d/XqXeWUEk7I=;
        b=ey64mlFAEWRz2KRAuvyF8YWzgQVCgz4ajNxYS2AQQzJPxFeyUycVEo5OgH94j+MYij
         ypdruEWjyFv70TvBq1gtM0O0ZB8TjHIrkq5Dm6NKggTbSS078rfxYVM0cADwwK9AcAqR
         995S1hWA3sHQkIwGq5JKVhWC0eLaEkgMAXqQhdC7OmNNX5hNGOGpYr/BR/LE2DmQzr6J
         efiXYvh4uuqYvDrN/hwFx/JzpFLRYJLKW2yYzvuRSO2+HbJum6ZOammKYLqV4kYYud/Q
         v5vc7jcXWx5eUAs2+X6KbkaAFlpggz1wXYQOMHTT7wfPdwSSrA1JwPbzmpr88Dufyf+E
         SQpw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773915280; x=1774520080;
        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=iLudv52DxGrfHYRIi9eHlPNqebBUto5d/XqXeWUEk7I=;
        b=lujBOMRJSvX8BtMWIzqpGm01GsOMADL/xvEri/G8Za4uTm4Hu3/ENuDGkvFSZG3jRM
         ebzKvKyErpj+RFTWZireTb9F3UCWsp5s/JYiKHZ9m/AfU2owdzKb2PO+WjzHB/gORbti
         OQEmyEoPxxYl+amFkXa1BR86nzM4cUHaU+2Dtv8uOefr9ZUk95q1OL1ugAEC/kd60czE
         hNtujOFjGRwphlyzQGfFDAi0zJ2DOHjBp6D3BdlrxWPQ6HgW0ynnhcaMnuOjYCKR4jR5
         8Hxx0SM/F9AZO935v2IkvwFPKb0JrYHc8JYcA02Gtgc53XEQDSfbGpKciVTOLlFQELK1
         l81w==
X-Gm-Message-State: AOJu0YzSdYHiz2vKzDqK146hlijU96FwK5EBCTtTJyBT0wnb9IzC7YIe
	LOSVLmUTffWJF35HHj2Vb8owbtgd6QfQ2oaKo4sQa9Olw9kEPdMpmzbclrnnWeyCuNAgl1dssL1
	0NwUa24nXMV54uCetGi7rw2cz1xO2O78=
X-Gm-Gg: ATEYQzxyBeuBAZUHg/pHKqdWhJYAOGVCtpEHpOcVaSUjOxv+6hI7itfqC0k3uepRzTn
	+rdOEqaYgASG5zADmLRHQJYxG8JEz4pAHI8G5OFAMoo5GVgp0YL3hgFGlDY24n3K1dBQoRez8Wg
	q5MMtBNKsrePFhHwEUqoXMJUi6wTpHX2Fyvuj3S3ShcPa4pCXRhwJUmtuGnjraIx50pYb89cwrd
	aG5ZQ4Zj1PBK5wWZZSc+pbD+pGTXLFzTW1sCgTWEFbPuH2Bc7dY6aEQh74QWCx9CcXI+dA5GNnJ
	93eV
X-Received: by 2002:ac2:4a84:0:b0:5a2:7d5a:3328 with SMTP id
 2adb3069b0e04-5a27de5dba3mr536254e87.24.1773915279732; Thu, 19 Mar 2026
 03:14:39 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1765533584.git.mykola_kvach@epam.com> <f1d118552f84e2b894ec7163000f6dba98d0e3fa.1765533584.git.mykola_kvach@epam.com>
 <04017286-885e-4e81-9e89-f012ee608287@amd.com>
In-Reply-To: <04017286-885e-4e81-9e89-f012ee608287@amd.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 19 Mar 2026 12:14:28 +0200
X-Gm-Features: AaiRm52l6stqVaVmdNKvunRjHl-gntzc7pYQ1k7iPi1eiU6X1KfdSuxkLWJi3oo
Message-ID: <CAGeoDV-oTMYnEJTibOyXFZqNKpyNA3Yf8ffUgEim=tsihs9W1A@mail.gmail.com>
Subject: Re: [PATCH v16 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 Thu, Mar 19, 2026 at 11:37=E2=80=AFAM Orzel, Michal <michal.orzel@amd.co=
m> wrote:
>
>
>
> On 12/12/2025 14:18, 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. arch_domain_resume() stays int to propa=
gate
> > errno-style detail into common logging; preserving the integer keeps th=
e
> > reason visible and leaves room for future arch-specific failures or ric=
her
> > handling.
> >
> > 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 V16:
> > - Refactor error handling in domain_resume: move logging to generic cod=
e,
> >   use explicit return code checking.
> > - Make context clearing conditional on success in arch_domain_resume.
> > - The 'int' return type is retained for arch_domain_resume for consiste=
ncy
> >   with other arch hooks and to allow for specific negative error codes.
> > ---
> >  xen/arch/arm/domain.c                 |  39 +++++++++
> >  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    |  27 ++++++
> >  xen/arch/arm/include/asm/vpsci.h      |   5 +-
> >  xen/arch/arm/vpsci.c                  | 116 +++++++++++++++++++++-----
> >  xen/common/domain.c                   |  10 +++
> >  xen/include/xen/suspend.h             |  25 ++++++
> >  9 files changed, 205 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 47973f99d9..f903e7d4f0 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"
> > @@ -851,6 +855,41 @@ 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%u, shutdown_code=3D%u\n",
> > +                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 notify abo=
ut 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 )
> > +        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 758ad807e4..66b1246892 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..313d03ea59
> > --- /dev/null
> > +++ b/xen/arch/arm/include/asm/suspend.h
> > @@ -0,0 +1,27 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +
> > +#ifndef ARM_SUSPEND_H
> > +#define ARM_SUSPEND_H
> > +
> > +struct domain;
> > +struct vcpu;
> > +
> > +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/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..c4d616ec68 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)
> >  {
> > -    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);
> There is a theoretical race between this and ...
> > +    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;
> setting up resume context. It is practically impossible but still we coul=
d move
> setting up the context before domain_shutdown and clearing it on failure =
to be
> race free. The race is about small window between domain_shutdown releasi=
ng the
> shutdown_lock and other CPU calling domain_resume, taking the lock and ru=
nning
> arch_domain_resume before resume_ctx has been populated.

I think the current flow is already serialized, so I don't believe
arch_domain_resume() can observe an uninitialized resume_ctx here.

A concurrent domain_resume() does not take shutdown_lock first. It starts
with domain_pause(d), and that path is synchronous: it walks all domain
vCPUs and uses vcpu_sleep_sync().

In the SYSTEM_SUSPEND path, the calling vCPU is still running after
domain_shutdown() returns, and it populates resume_ctx before leaving the
hypercall path. So if another CPU tries to resume the domain in that
window, it should block in domain_pause() until that vCPU stops running.
Only after that can it take shutdown_lock and proceed to
arch_domain_resume().

So, as far as I can see, arch_domain_resume() should not be able to
observe an uninitialized resume_ctx in the current flow.

Also, moving resume_ctx setup before domain_shutdown() would slightly
complicate the failure path, since we would then need to explicitly
clear/invalidate the pre-populated context if domain_shutdown() fails.

So unless we think this race is actually reachable, I would prefer to
keep the current ordering. That said, if you strongly prefer making the
ordering more explicit, I can rework it that way.

Best regards,
Mykola

>
> ~Michal
>


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 10:32:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 10:32:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256926.1551388 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Ag6-0005AC-Ga; Thu, 19 Mar 2026 10:32:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256926.1551388; Thu, 19 Mar 2026 10:32:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Ag6-0005A5-DB; Thu, 19 Mar 2026 10:32:34 +0000
Received: by outflank-mailman (input) for mailman id 1256926;
 Thu, 19 Mar 2026 10:32: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=8LP9=BT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w3Ag4-00059x-HY
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 10:32:32 +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 e5cc244a-237e-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 11:32:15 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-439b94a19fdso629338f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 03:32:15 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b51892273sm12617905f8f.19.2026.03.19.03.32.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Mar 2026 03:32:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e5cc244a-237e-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773916335; x=1774521135; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=p5VAcHaLINKkbo7TpgOVCHEQc5j00POVMOlPE9q9U70=;
        b=DoZAzlQsxHEZnuZh7L7We0l56ZR+No8/Tn9MwSJERxi6GH5Xc84R/bhwQZzTNFdBgI
         MtJvpgetdobWZhwyGJdyXsomih3QyRJCtMUpaG/RnYETshR0oKlSjkUPxKYzVQvD3oK1
         +e1sQHymIWgHu/m09zlddAldjB/hUkThd8HPhPqIFJrWW6/V5iFWlI+opBNcxgh8pmZK
         sOuMYPJ6qnY2oiNC04nBrGDVZ4DwNfBJu60p1zG8qg2wMYUCR4dFbPwIdddbwEY8+Zpn
         wEUR70UIVeFigz58X5h1e1zirD+dC2VT8diQ8wsrFAjxSCqqsAPLG4Z5IdyNeKPXdus8
         Wn1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773916335; x=1774521135;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=p5VAcHaLINKkbo7TpgOVCHEQc5j00POVMOlPE9q9U70=;
        b=cmeMxqQWBHp/DYo/1sSsXI28NYCbpPfEDqKDFvoBvTbzd3GOV5QPDgMmMGOzuGvlBh
         xc/QLH6pVQs1h0Z0O7Vrii9/nV1Pq4lRUakxN+udR85zAjCzAbNJz7Yo1c9Ao3dRwjGx
         JB2D2gyQOgRP+FRxqHHZHqrwNe4cnvC4+kRoEoXnP+IfC/9NXufDYFo9ySXoXsH32YOl
         TnmIXzu0jKyu+tixvhRt2giLLgleBsgOpbkGJJ+CoxfnV2jLAjpfyziXF7SzFGHLPn8C
         p2+9nHawlccXg3AR0jhdfoxesyzGJE9ShB8raKk76iym3JT6mAnVmZYJ0va4tn2kZX94
         99fA==
X-Forwarded-Encrypted: i=1; AJvYcCVR8leWGs0vzsm/bZfTQpH32YOCPBDHz3B81JueFkc+pM3vuqnNElPTcTG10jzLYjubu059mkko3RQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyieLZGdMFpBMCg9lslMJa4fUHiQOzS+uxF4Y3K3oW1p5VJ45Bk
	e7opv2RopuB4d6UgWSNMx1zCXvNvoYneUJlcMHmxa5Y0MnFRXRoQyx2CQxJmMuaHrQ==
X-Gm-Gg: ATEYQzxRzGE6unn1pfwyvq0g/GjSYdBWcOPcPBGT7vgRzZ3VWfA6sDkCadmrvsHzdMp
	jW049LZuZB8Kn9DB5pG7FuQDNAA6GVU7v+5uN03WUIWLPkoigs8LYJ0N/GKmvjI47BGmHRfcagL
	aEUlwqDhAMGjDjAdbsCBG5vQFETTD4tEwdGnTQ81BW/FbawfFJAKzwom8EGX52GhQe3I+cG1S1b
	o5QkC5x3lCFyX82PBUI0yhhvZAK6nAVDkXsZk0CpcffaKUIEE4lObjYHfR5sBunHgyLwB3gwT8h
	mrBizzkxioHeSjgKU1IT91+aomrVDUvFf8v2oaDQhpvSw6D+h3M632jGNeQza5o0BRya+h4QByU
	vhvAZFJGvk2B94X9Hy8qeptMZflduwfWymXvPnlWZ07ZC0/l8fE5t7HyhOjzZJ7B47iSlqWULx2
	bqVKL5zb59nFnFsdbg3zAB04ww/NJ0nDfRjf/oiLuG5jFNTLsaRq0fTr3If1B1ukNi7IaFqKL+L
	mK7HWsN40ggrGU=
X-Received: by 2002:a05:6000:288a:b0:43b:41b5:e023 with SMTP id ffacd0b85a97d-43b527a50dbmr12461039f8f.1.1773916334208;
        Thu, 19 Mar 2026 03:32:14 -0700 (PDT)
Message-ID: <c37859f7-bac6-4394-ae12-83e054a1743e@suse.com>
Date: Thu, 19 Mar 2026 11:32:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/domain: make shutdown state explicit
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>, Paul Durrant <paul@xen.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Tim Deegan <tim@xen.org>,
 Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>,
 George Dunlap <gwd@xenproject.org>, xen-devel@lists.xenproject.org
References: <2004584dbbe393c9de4b3231bf91a24f6e5de5de.1773875416.git.mykola_kvach@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <2004584dbbe393c9de4b3231bf91a24f6e5de5de.1773875416.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.03.2026 00:25, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> The domain shutdown flow currently overloads is_shutting_down and
> is_shut_down to represent multiple phases of the shutdown lifecycle,
> while some users treat is_shutting_down as a broader "domain is no
> longer normal" condition.
> 
> Make the shutdown lifecycle explicit by introducing
> enum domain_shutdown_state and converting the existing users to helper
> predicates describing whether shutdown is in progress, complete, or
> active.

Mind me asking what the distinction is between "active" and "in progress"?
They feel like synonyms to me. To me "is shutting down" vs "was shut down"
would be the clearer distinction (i.e. domain_shutting_down() and
domain_shut_down() or some such, albeit for the latter I could also live
with domain_shutdown_complete() as you have it, or maybe slightly less
ambiguously domain_shutdown_completed()). Yet then I'm not a native
speaker.

Further, I can't quite derive upon what criteria you chose whether
->is_shutting_down checks are to be converted to domain_shutdown_active()
vs domain_shutdown_in_progress(). This could do with writing down. (It
also might be easier with the suggested alternative naming.)

> @@ -1444,9 +1458,17 @@ void domain_resume(struct domain *d)
>          v->paused_for_shutdown = 0;
>      }
>  
> +out_unlock:

Nit (style): Labels indented by at least one blank please.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 10:58:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 10:58:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256937.1551398 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3B5U-0000Kf-Fe; Thu, 19 Mar 2026 10:58:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256937.1551398; Thu, 19 Mar 2026 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 1w3B5U-0000KX-BA; Thu, 19 Mar 2026 10:58:48 +0000
Received: by outflank-mailman (input) for mailman id 1256937;
 Thu, 19 Mar 2026 10:58: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=zhn1=BT=huawei.com=jonathan.cameron@srs-se1.protection.inumbo.net>)
 id 1w3B5S-0000KR-AP
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 10:58:46 +0000
Received: from frasgout.his.huawei.com (frasgout.his.huawei.com
 [185.176.79.56]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 95b50e2f-2382-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 11:58:40 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.18.224.83])
 by frasgout.his.huawei.com (SkyGuard) with ESMTPS id 4fc2jd203FzHnHKF;
 Thu, 19 Mar 2026 18:58:13 +0800 (CST)
Received: from dubpeml500005.china.huawei.com (unknown [7.214.145.207])
 by mail.maildlp.com (Postfix) with ESMTPS id 94D4A40569;
 Thu, 19 Mar 2026 18:58:36 +0800 (CST)
Received: from localhost (10.203.177.15) by dubpeml500005.china.huawei.com
 (7.214.145.207) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Thu, 19 Mar
 2026 10:58:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 95b50e2f-2382-11f1-9ccf-f158ae23cfc8
Date: Thu, 19 Mar 2026 10:58:32 +0000
From: Jonathan Cameron <jonathan.cameron@huawei.com>
To: Chengwen Feng <fengchengwen@huawei.com>
CC: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>, Jonathan Corbet <corbet@lwn.net>, Shuah Khan
	<skhan@linuxfoundation.org>, Huacai Chen <chenhuacai@kernel.org>, "WANG
 Xuerui" <kernel@xen0n.name>, Paul Walmsley <pjw@kernel.org>, "Palmer Dabbelt"
	<palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, "Alexandre Ghiti"
	<alex@ghiti.fr>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar
	<mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, Dave Hansen
	<dave.hansen@linux.intel.com>, <x86@kernel.org>, "H . Peter Anvin"
	<hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris Ostrovsky
	<boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V L
	<sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Kees Cook
	<kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>, Sean Christopherson
	<seanjc@google.com>, Kai Huang <kai.huang@intel.com>, Tom Lendacky
	<thomas.lendacky@amd.com>, Thomas Huth <thuth@redhat.com>, Thorsten Blum
	<thorsten.blum@linux.dev>, Kevin Loughlin <kevinloughlin@google.com>, Zheyun
 Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra <peterz@infradead.org>, Pawan
 Gupta <pawan.kumar.gupta@linux.intel.com>, Xin Li <xin@zytor.com>, "Ahmed S .
 Darwish" <darwi@linutronix.de>, Sohil Mehta <sohil.mehta@intel.com>, Ilkka
 Koskinen <ilkka@os.amperecomputing.com>, Robin Murphy <robin.murphy@arm.com>,
	James Clark <james.clark@linaro.org>, Besar Wicaksono
	<bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, "Wei Huang"
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <linux-pci@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <loongarch@lists.linux.dev>,
	<linux-riscv@lists.infradead.org>, <xen-devel@lists.xenproject.org>,
	<linux-acpi@vger.kernel.org>, <linux-perf-users@vger.kernel.org>,
	<stable@vger.kernel.org>
Subject: Re: [PATCH v9 0/7] ACPI: Unify CPU UID interface and fix ARM64 TPH
 steer-tag issue
Message-ID: <20260319105832.00002218@huawei.com>
In-Reply-To: <20260319065735.45954-1-fengchengwen@huawei.com>
References: <20260319065735.45954-1-fengchengwen@huawei.com>
X-Mailer: Claws Mail 4.3.0 (GTK 3.24.42; x86_64-w64-mingw32)
MIME-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.203.177.15]
X-ClientProxiedBy: lhrpeml500009.china.huawei.com (7.191.174.84) To
 dubpeml500005.china.huawei.com (7.214.145.207)

On Thu, 19 Mar 2026 14:57:28 +0800
Chengwen Feng <fengchengwen@huawei.com> wrote:

> This patchset unifies ACPI Processor UID retrieval across
> arm64/loongarch/riscv/x86 via acpi_get_cpu_uid() (with input validation)
> and fixes ARM64 CPU steer-tag retrieval failure in PCI/TPH:
> 
> 1-4: Add acpi_get_cpu_uid() for arm64/loongarch/riscv/x86 (update
>      respective users)
> 5: Centralize acpi_get_cpu_uid() declaration in include/linux/acpi.h
> 6: Clean up ACPI/PPTT and remove unused get_acpi_id_for_cpu()
> 7: Fix ARM64 platform CPU steer-tag retrieval failure
> 
> The interface refactor ensures consistent CPU UID retrieval across
> architectures (no functional changes for valid inputs) and provides the
> unified interface required for the ARM64 TPH fix.

Given the structure of the series has slowly evolved since I gave
tags, I took another look.  All looks good to me.
Nice work.

Jonathan


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 11:00:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 11:00:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256945.1551407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3B76-0001rU-QN; Thu, 19 Mar 2026 11:00:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256945.1551407; Thu, 19 Mar 2026 11: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 1w3B76-0001rN-LC; Thu, 19 Mar 2026 11:00:28 +0000
Received: by outflank-mailman (input) for mailman id 1256945;
 Thu, 19 Mar 2026 11:00:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=2tj/=BT=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w3B75-0001qa-AD
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 11:00:27 +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 d3299483-2382-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 12:00:22 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-b9358bc9c50so95620666b.1
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 04:00:22 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b97f13e9922sm419151966b.9.2026.03.19.04.00.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Mar 2026 04:00:20 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d3299483-2382-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773918021; x=1774522821; 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=oQpku00CgH42XMvtLguDOCAA0sZ1nvl+F1eh0qG8Ixg=;
        b=YDhj1E+Kr+0bWhhNWwfYPGt3bGiEvxzVPSuNapVN6eajiEHDqU/p81zKvXqbu2qx+Y
         /RU4o0roLdD3T2gvy4V6Sn/3gjrZByp5fkKOnBYUblqGDk9v7PMnlYRmQtE7BETQWFQM
         soFtiytOYcaMQAZ4B+Ah2aZGpJOProAcKpnVuKPxyFtfKjdTSYXY2xtR71rgIhhhAjga
         AJGUyJHg/d+4KG9Qphu5Lpmp4efSAQg4yVFI7ej125qjGQmCCq8C+GSvOOczRN4TEWSP
         Iomf+g7+vIFpDgWZkLGnswgJNJ3W/bryNNTQGE1bYMxygJt26h9Go53eYM2HeKB7vkH5
         NTcg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773918021; x=1774522821;
        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=oQpku00CgH42XMvtLguDOCAA0sZ1nvl+F1eh0qG8Ixg=;
        b=norUqIRPrHXKBxdqChJRfaRLCaOHQ1DvEwtUnTm3gzv2dsaCQvIQm1zB8LXh9QufGw
         CuwZTa+2TDhTiVoqqwCPLXkWYKbKvQeI2ZDZs+trTngIC2oU/gimfL1LD1ms2DRYFn89
         4T9qnRDLiXmB/ZI365xTTorTV5rNP6fGUml0XEIIacYxFHm8l8AGG7kzDUQHdX55pUA9
         Yia1i0i59j1+PpJYbStbf/udjNkTVOLG3+78rwIqVfqwJtBL1Qh/LKdgm/hLYN5mGW9T
         SSzYacb1mZcfSccQsbuCsLe96f29YXh5hN9s8uE+dpCziCMw+Ncdd7SmUrB/TNqDICor
         xvtQ==
X-Gm-Message-State: AOJu0Yw4ot71Od9Dk/CkcDCRXpMVhyCpokWWNhG8poouZofFs5TJELro
	yU+YJMwiA3bgNBcTEOyFUWkVQ3qDHEWoJ3n5+w/OLI3OgBGnPaPrpdqNVcwmoEAX0qA=
X-Gm-Gg: ATEYQzw+/1AkLp/kRmTZuPhGO2Q4fn9Tt6Ges7KXTzo5XBe+uzulnrWowawuwqiC3rz
	pmiVRo9BfGIZ54t1RF+43l9QzgjYAa09Lp94Ty1+ygReJflVEd0ditBjIBYhQ1G130Fz3VxiNjl
	v0IqShrK0oFmlyGoK6VDBct/n9IrA7us6xhIBxpVIfXmRKQipJCI+PzSGrGFjRMs5MU0rV5d379
	s1pwbiPwOKHdj77HLGELU+hxhq6Bvqv8q45LKEOmvZrPuiHHt00x/iAzk3FeEx68iFuRV30nXbr
	/xVZUWisVmPnp7cxQotEDBZLtYOPeb5shkXmLhjg4V5j6ULPNwLAzHXgq0KNckHzhDGk+Xvo2B+
	lB97Vcu/QF9j2JBHSnFAEVgvdX6xR4xUP1dh5nufihMIC9tk5u01dgI81CI7ivl67LkTjt1ypqw
	goPK/OiA9Aw6ilHyaOQghux8pzAfcj/0zvYS5g/uTfiXVAZg5zo4+FI0ZQ/U6PLxxBhHUcsLZDS
	ghKNBHkp1CVJSy6wxCZfawhqTKj0IbV8wQlef+aGF5nRY4W1tmA8A==
X-Received: by 2002:a17:907:3e9a:b0:b97:a428:b3c2 with SMTP id a640c23a62f3a-b97f4796110mr439239966b.4.1773918020543;
        Thu, 19 Mar 2026 04:00:20 -0700 (PDT)
Message-ID: <b07adf74-9d70-4aa9-a14c-854808c9e402@suse.com>
Date: Thu, 19 Mar 2026 12:00:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 08/11] tools/libxl: add functions for retrieving and
 setting xenstore quota
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Nick Rosbrook <enr0n@ubuntu.com>,
 George Dunlap <gwd@xenproject.org>
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-9-jgross@suse.com> <abu9165dr7LfLfJf@l14>
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: <abu9165dr7LfLfJf@l14>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------9EjT0FJce0vmbNa3iHW5k95Q"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------9EjT0FJce0vmbNa3iHW5k95Q
Content-Type: multipart/mixed; boundary="------------rbAoqNWWKpIG0c0s1Nt1JfXm";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Nick Rosbrook <enr0n@ubuntu.com>,
 George Dunlap <gwd@xenproject.org>
Message-ID: <b07adf74-9d70-4aa9-a14c-854808c9e402@suse.com>
Subject: Re: [PATCH 08/11] tools/libxl: add functions for retrieving and
 setting xenstore quota
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-9-jgross@suse.com> <abu9165dr7LfLfJf@l14>
In-Reply-To: <abu9165dr7LfLfJf@l14>

--------------rbAoqNWWKpIG0c0s1Nt1JfXm
Content-Type: multipart/mixed; boundary="------------LlUuiZnciYRwgBePSmyQtjeO"

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

T24gMTkuMDMuMjYgMTA6MTEsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBPbiBUaHUsIE1h
ciAwNSwgMjAyNiBhdCAwMjo1MjowNVBNICswMTAwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
Pj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUvbGlieGwuaCBiL3Rvb2xzL2luY2x1ZGUv
bGlieGwuaA0KPj4gaW5kZXggYmMzNWU0MTJkYS4uYTcwZDlkMzQ3ZiAxMDA2NDQNCj4+IC0t
LSBhL3Rvb2xzL2luY2x1ZGUvbGlieGwuaA0KPj4gKysrIGIvdG9vbHMvaW5jbHVkZS9saWJ4
bC5oDQo+PiBAQCAtMTUzNyw2ICsxNTM3LDE4IEBAIHZvaWQgbGlieGxfbWFjX2NvcHkobGli
eGxfY3R4ICpjdHgsIGxpYnhsX21hYyAqZHN0LCBjb25zdCBsaWJ4bF9tYWMgKnNyYyk7DQo+
PiAgICAqLw0KPj4gICAjZGVmaW5lIExJQlhMX0hBVkVfWEVOX1BMQVRGT1JNX1BDSV9CQVJf
VUMNCj4+ICAgDQo+PiArLyoNCj4+ICsgKiBMSUJYTF9IQVZFX1hFTlNUT1JFX1FVT1RBDQo+
PiArICoNCj4+ICsgKiBJZiB0aGlzIGlzIGRlZmluZWQgdGhlIFhlbnN0b3JlIHF1b3RhIHJl
bGF0ZWQgZnVuY3Rpb25zDQo+PiArICogbGlieGxfeHNxdW90YV9nbG9iYWxfZ2V0KCkNCj4+
ICsgKiBsaWJ4bF94c3F1b3RhX2dsb2JhbF9zZXQoKQ0KPj4gKyAqIGxpYnhsX3hzcXVvdGFf
ZG9tYWluX2dldCgpDQo+PiArICogbGlieGxfeHNxdW90YV9kb21haW5fc2V0KCkNCj4+ICsg
KiBhcmUgYXZhaWxhYmxlLg0KPj4gKyAqLw0KPj4gKyNkZWZpbmUgTElCWExfSEFWRV9YRU5T
VE9SRV9RVU9UQQ0KPj4gKw0KPj4gICB0eXBlZGVmIGNoYXIgKipsaWJ4bF9zdHJpbmdfbGlz
dDsNCj4+ICAgdm9pZCBsaWJ4bF9zdHJpbmdfbGlzdF9kaXNwb3NlKGxpYnhsX3N0cmluZ19s
aXN0ICpzbCk7DQo+PiAgIGludCBsaWJ4bF9zdHJpbmdfbGlzdF9sZW5ndGgoY29uc3QgbGli
eGxfc3RyaW5nX2xpc3QgKnNsKTsNCj4+IEBAIC0zMDExLDYgKzMwMjMsMTQgQEAgc3RhdGlj
IGlubGluZSBpbnQgbGlieGxfcWVtdV9tb25pdG9yX2NvbW1hbmRfMHgwNDEyMDAobGlieGxf
Y3R4ICpjdHgsDQo+PiAgICNkZWZpbmUgbGlieGxfcWVtdV9tb25pdG9yX2NvbW1hbmQgbGli
eGxfcWVtdV9tb25pdG9yX2NvbW1hbmRfMHgwNDEyMDANCj4+ICAgI2VuZGlmDQo+PiAgIA0K
Pj4gKy8qIEdldC9zZXQgZ2xvYmFsIGFuZCBwZXItZG9tYWluIFhlbnN0b3JlIHF1b3RhLiAq
Lw0KPj4gK2ludCBsaWJ4bF94c3F1b3RhX2dsb2JhbF9nZXQobGlieGxfY3R4ICpjdHgsIGxp
YnhsX3hzX3F1b3RhX3NldCAqcSk7DQo+IA0KPiBDb3VsZCB5b3UgcmVuYW1lIHRoZSBzZWNv
bmQgYXJnIGFzICJxX3IiIG9yICJxX291dCIgPw0KPiANCj4+ICtpbnQgbGlieGxfeHNxdW90
YV9nbG9iYWxfc2V0KGxpYnhsX2N0eCAqY3R4LCBsaWJ4bF94c19xdW90YV9zZXQgKnEpOw0K
Pj4gK2ludCBsaWJ4bF94c3F1b3RhX2RvbWFpbl9nZXQobGlieGxfY3R4ICpjdHgsIHVpbnQz
Ml90IGRvbWlkLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfeHNf
cXVvdGFfc2V0ICpxKTsNCj4gDQo+IFNhbWUgaGVyZS4NCj4gDQo+PiAraW50IGxpYnhsX3hz
cXVvdGFfZG9tYWluX3NldChsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsDQo+PiAr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF94c19xdW90YV9zZXQgKnEpOw0K
PiANCj4gQ291bGQgd2UgcHJlZml4IHRoZW0gYWxsIHdpdGggImxpYnhsX3hzX3F1b3RhXyIg
PyBJIHdvdWxkIHJhdGhlciB0aGF0IHdlDQo+IG9ubHkgdXNlICJ4c19xdW90YSIgb3IgInhz
cXVvdGEiLg0KPiANCj4+ICsNCj4+ICAgI2luY2x1ZGUgPGxpYnhsX2V2ZW50Lmg+DQo+PiAg
IA0KPj4gICAvKg0KPj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMvbGlnaHQvTWFrZWZpbGUg
Yi90b29scy9saWJzL2xpZ2h0L01ha2VmaWxlDQo+PiBpbmRleCBiYzYwYzQ2NTU4Li5jYTIy
YTQwYzZjIDEwMDY0NA0KPj4gLS0tIGEvdG9vbHMvbGlicy9saWdodC9NYWtlZmlsZQ0KPj4g
KysrIGIvdG9vbHMvbGlicy9saWdodC9NYWtlZmlsZQ0KPj4gQEAgLTEwNiw2ICsxMDYsNyBA
QCBPQkpTLXkgKz0gbGlieGxfcHZjYWxscy5vDQo+PiAgIE9CSlMteSArPSBsaWJ4bF92c25k
Lm8NCj4+ICAgT0JKUy15ICs9IGxpYnhsX3ZrYi5vDQo+PiAgIE9CSlMteSArPSBsaWJ4bF92
aXJ0aW8ubw0KPj4gK09CSlMteSArPSBsaWJ4bF94c3F1b3RhLm8NCj4+ICAgT0JKUy15ICs9
IGxpYnhsX2dlbmlkLm8NCj4+ICAgT0JKUy15ICs9IF9saWJ4bF90eXBlcy5vDQo+PiAgIE9C
SlMteSArPSBsaWJ4bF9mbGFzay5vDQo+PiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9saWdo
dC9saWJ4bF90eXBlcy5pZGwgYi90b29scy9saWJzL2xpZ2h0L2xpYnhsX3R5cGVzLmlkbA0K
Pj4gaW5kZXggZDY0YTU3M2ZmMy4uYzVkZGM0MGYzNSAxMDA2NDQNCj4+IC0tLSBhL3Rvb2xz
L2xpYnMvbGlnaHQvbGlieGxfdHlwZXMuaWRsDQo+PiArKysgYi90b29scy9saWJzL2xpZ2h0
L2xpYnhsX3R5cGVzLmlkbA0KPj4gQEAgLTU3NCw2ICs1NzQsMTUgQEAgbGlieGxfYWx0cDJt
X21vZGUgPSBFbnVtZXJhdGlvbigiYWx0cDJtX21vZGUiLCBbDQo+PiAgICAgICAoMywgImxp
bWl0ZWQiKSwNCj4+ICAgICAgIF0sIGluaXRfdmFsID0gIkxJQlhMX0FMVFAyTV9NT0RFX0RJ
U0FCTEVEIikNCj4+ICAgDQo+PiArbGlieGxfeHNfcXVvdGFfaXRlbSA9IFN0cnVjdCgieHNf
cXVvdGFfaXRlbSIsIFsNCj4+ICsgICAgKCJuYW1lIiwgc3RyaW5nKSwNCj4+ICsgICAgKCJ2
YWwiLCAgdWludDMyKSwNCj4+ICsgICAgXSkNCj4+ICsNCj4+ICtsaWJ4bF94c19xdW90YV9z
ZXQgPSBTdHJ1Y3QoInhzX3F1b3RhX3NldCIsIFsNCj4gDQo+IENvdWxkIHlvdSB1c2UgIl9s
aXN0IiBhcyBhIHN1ZmZpeCBpbnN0ZWFkPyBJdCdzIGEgYml0IGNvbmZ1c2luZyB0byBoYXZl
DQo+IHRoZSB3b3JkICJzZXQiIGFzIGEgZG91YmxlIG1lYW5pbmcsIHdpdGggYSBfc2V0KCkg
ZnVuY3Rpb24gdGhhdCB0YWtlcyBhDQo+IHNldC4NCj4gDQo+PiArICAgICgicXVvdGEiLCBB
cnJheShsaWJ4bF94c19xdW90YV9pdGVtLCAibnVtX3F1b3RhIikpDQo+PiArICAgIF0pDQo+
PiArDQo+PiAgIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvID0gU3RydWN0KCJkb21haW5fYnVp
bGRfaW5mbyIsWw0KPj4gICAgICAgKCJtYXhfdmNwdXMiLCAgICAgICBpbnRlZ2VyKSwNCj4+
ICAgICAgICgiYXZhaWxfdmNwdXMiLCAgICAgbGlieGxfYml0bWFwKSwNCj4+IGRpZmYgLS1n
aXQgYS90b29scy9saWJzL2xpZ2h0L2xpYnhsX3hzcXVvdGEuYyBiL3Rvb2xzL2xpYnMvbGln
aHQvbGlieGxfeHNxdW90YS5jDQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gaW5kZXgg
MDAwMDAwMDAwMC4uYjlhZmExYzkxNA0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIvdG9v
bHMvbGlicy9saWdodC9saWJ4bF94c3F1b3RhLmMNCj4+IEBAIC0wLDAgKzEsMTAyIEBADQo+
PiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IExHUEwtMi4xLW9ubHkgKi8NCj4+ICsN
Cj4+ICsvKiBYZW5zdG9yZSBxdW90YSBoYW5kbGluZyBmdW5jdGlvbnMuICovDQo+PiArDQo+
PiArI2luY2x1ZGUgImxpYnhsX2ludGVybmFsLmgiDQo+PiArDQo+PiArc3RhdGljIGludCBn
ZXRfcXVvdGEobGlieGxfY3R4ICpjdHgsIHVuc2lnbmVkIGludCBkb21pZCwgbGlieGxfeHNf
cXVvdGFfc2V0ICpxLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgIGJvb2wgKGZ1bmMpKHN0
cnVjdCB4c19oYW5kbGUgKmgsIHVuc2lnbmVkIGludCBkb21pZCwNCj4+ICsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpxdW90YSwgdW5zaWduZWQgaW50ICp2YWx1
ZSkpDQo+PiArew0KPj4gKyAgICBjaGFyICoqbmFtZXM7DQo+PiArICAgIHVuc2lnbmVkIGlu
dCBudW0sIGk7DQo+PiArICAgIGludCByYyA9IDA7DQo+IA0KPiBXZSBkb24ndCBpbml0IGBy
Y2AgdmFyaWFibGUgaW4gbGlieGwgZnVuY3Rpb24uIFNldCBgcmNgIHRvIDAganVzdCBiZWZv
cmUNCj4gdGhlICJvdXQiIGxhYmVsLg0KPiANCj4+ICsgICAgR0NfSU5JVChjdHgpOw0KPj4g
Kw0KPj4gKyAgICBuYW1lcyA9IHhzX2dldF9xdW90YV9uYW1lcyhjdHgtPnhzaCwgJm51bSk7
DQo+PiArICAgIGlmICghbmFtZXMpIHsNCj4+ICsgICAgICAgIC8qIFhlbnN0b3JlIHF1b3Rh
IHN1cHBvcnQgaXMgb3B0aW9uYWwhICovDQo+PiArICAgICAgICBpZiAoZXJybm8gIT0gRU5P
U1lTKQ0KPj4gKyAgICAgICAgICAgIHJjID0gRVJST1JfRkFJTDsNCj4+ICsgICAgICAgIHEt
Pm51bV9xdW90YSA9IDA7DQo+IA0KPiBJdCBmZWVscyB3cm9uZyB0byBtYWtlIGNoYW5nZXMg
dG8gdGhlIG91dHB1dCBhcmd1bWVudCBvbiBlcnJvciwgaWYgd2UNCj4gY2FuIGF2b2lkIGl0
LiBBbmQgaGVyZSwgSSBkb24ndCBzZWUgYW55IHJlYXNvbiB0byBjaGFuZ2UgYHFgLg0KPiAN
Cj4+ICsgICAgICAgIGdvdG8gb3V0Ow0KPj4gKyAgICB9DQo+PiArDQo+IA0KPiBDYW4geW91
IGNhbGwgbGlieGxfeHNfcXVvdGFfc2V0X2luaXQoKSBmaXJzdD8gQXMgeW91IGNhbGwgX2Rp
c3Bvc2UoKQ0KPiBsYXRlci4NCj4gDQo+PiArICAgIHEtPm51bV9xdW90YSA9IG51bTsNCj4+
ICsgICAgcS0+cXVvdGEgPSBsaWJ4bF9fY2FsbG9jKE5PR0MsIG51bSwgc2l6ZW9mKCpxLT5x
dW90YSkpOw0KPj4gKyAgICBmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspIHsNCj4+ICsgICAg
ICAgIHEtPnF1b3RhW2ldLm5hbWUgPSBsaWJ4bF9fc3RyZHVwKE5PR0MsIG5hbWVzW2ldKTsN
Cj4+ICsgICAgICAgIGlmICghZnVuYyhjdHgtPnhzaCwgZG9taWQsIHEtPnF1b3RhW2ldLm5h
bWUsICZxLT5xdW90YVtpXS52YWwpKSB7DQo+IA0KPiBDb3VsZCB5b3Ugc3RvcmUgdGhlIHJl
dHVybiB2YWx1ZSBvZiBgZnVuYygpYCBpbiBgb2tgLCBhbmQgdGVzdCBgb2tgIGluIHRoZQ0K
PiBpZiBpbnN0ZWFkPw0KPiANCj4+ICsgICAgICAgICAgICBsaWJ4bF94c19xdW90YV9zZXRf
ZGlzcG9zZShxKTsNCj4+ICsgICAgICAgICAgICByYyA9IEVSUk9SX0ZBSUw7DQo+PiArICAg
ICAgICAgICAgYnJlYWs7DQo+IA0KPiBUaGlzIGNhbiBiZSBgZ290byBvdXRgIG9uY2UgZnJl
ZShuYW1lcykgaXMgbW92ZWQgdG8gdGhlIG91dCBsYWJlbC4NCj4gDQo+PiArICAgICAgICB9
DQo+PiArICAgIH0NCj4+ICsNCj4+ICsgICAgZnJlZShuYW1lcyk7DQo+IA0KPiBDb3VsZCB5
b3UgZG8gdGhhdCBhZnRlciB0aGUgIm91dCIgbGFiZWw/IEFuZCBpbml0IGBuYW1lc2AgdG8g
TlVMTC4NCj4gDQo+PiArDQo+PiArIG91dDoNCj4+ICsgICAgR0NfRlJFRTsNCj4+ICsgICAg
cmV0dXJuIHJjOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgaW50IHNldF9xdW90YShsaWJ4
bF9jdHggKmN0eCwgdW5zaWduZWQgaW50IGRvbWlkLCBsaWJ4bF94c19xdW90YV9zZXQgKnEs
DQo+PiArICAgICAgICAgICAgICAgICAgICAgYm9vbCAoZnVuYykoc3RydWN0IHhzX2hhbmRs
ZSAqaCwgdW5zaWduZWQgaW50IGRvbWlkLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNoYXIgKnF1b3RhLCB1bnNpZ25lZCBpbnQgdmFsdWUpKQ0KPj4gK3sNCj4+
ICsgICAgdW5zaWduZWQgaW50IGk7DQo+PiArICAgIGludCByYyA9IDA7DQo+PiArICAgIEdD
X0lOSVQoY3R4KTsNCj4+ICsNCj4+ICsgICAgZm9yIChpID0gMDsgaSA8IHEtPm51bV9xdW90
YTsgaSsrKSB7DQo+PiArICAgICAgICBpZiAoIWZ1bmMoY3R4LT54c2gsIGRvbWlkLCBxLT5x
dW90YVtpXS5uYW1lLCBxLT5xdW90YVtpXS52YWwpKSB7DQo+PiArICAgICAgICAgICAgcmMg
PSBFUlJPUl9GQUlMOw0KPj4gKyAgICAgICAgICAgIGJyZWFrOw0KPiANCj4gSXQgd291bGQg
YmUgYmV0dGVyIHRvIHdyaXRlIGBnb3RvIG91dGAgaW5zdGVhZC4NCj4gDQo+PiArICAgICAg
ICB9DQo+PiArICAgIH0NCj4+ICsNCj4+ICsgICAgR0NfRlJFRTsNCj4+ICsgICAgcmV0dXJu
IHJjOw0KPj4gK30NCg0KVG8gYWxsIHlvdXIgcmVtYXJrczogeWVzLCB3aWxsIGRvLg0KDQoN
ClRoYW5rcywNCg0KSnVlcmdlbg0K
--------------LlUuiZnciYRwgBePSmyQtjeO
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-----

--------------LlUuiZnciYRwgBePSmyQtjeO--

--------------rbAoqNWWKpIG0c0s1Nt1JfXm--

--------------9EjT0FJce0vmbNa3iHW5k95Q
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/Ey8FAmm710IFAwAAAAAACgkQsN6d1ii/Ey/o
zgf8CR5d+CfLd8/2g9TJHRNZQ3kvWj+ABwPpX39ajFMDbc8JtxgN/gwZQ+0/EFoQoULQNj+2+O0z
R+fpDUQSLXfDf8YwRDmvS4nU7pNtJsiyrYbQHjk/PkHBSeTIgrttLwyxzZEFN80PFsEfKusN6CK/
g7/FXJ1fDWhxETAtlX0MNadb0pEGm9JMMQEMpJn6kjOIjkKyq10qb1kT2NhuT3l1+WAiIO87ALTQ
Hzhtv1i3acz24GaSPDx3Ksa2CTehk1EfnhiO03XQNM/xvSWihRr30oiFDQ+pP1+OUWzxEYENXT3Q
xA25slitMEFFRccaBnAFp+/YoIz7bi0uOdB8S/qmBg==
=WAbV
-----END PGP SIGNATURE-----

--------------9EjT0FJce0vmbNa3iHW5k95Q--


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 11:01:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 11:01:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256950.1551415 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3B7o-0002Lz-4Q; Thu, 19 Mar 2026 11:01:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256950.1551415; Thu, 19 Mar 2026 11: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 1w3B7o-0002Ls-1G; Thu, 19 Mar 2026 11:01:12 +0000
Received: by outflank-mailman (input) for mailman id 1256950;
 Thu, 19 Mar 2026 11:01: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=2tj/=BT=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w3B7m-0002Lf-Ga
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 11:01:10 +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 eeea5bfe-2382-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 12:01:08 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-b7cf4a975d2so106329666b.2
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 04:01:08 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b97f13edad8sm409503366b.6.2026.03.19.04.01.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Mar 2026 04:01:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eeea5bfe-2382-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773918068; x=1774522868; 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=nHOCizN5DbSZeHTb8WFC3vQPqxtTw6p89m26bd8GNIA=;
        b=ZKBkuSpFs33tgtm2VRKz2mOndCwdbpHIOSGN8Gw+/bfuFiMHr9o4qsbCUsfl+1z7o5
         JLDtSwF17v/UrErXqZ48D8ldU02T33SPXERGzZF3cGB3o9OQGDhgTADZBagUpdS0vSyB
         D5y/lGarhxtLkbqald9CRHtsR28aqwFo4fiKbnJEdlEAfgpvyljotNjE4N5Cu1EpLKo1
         IN5MH+42woyKGxaigOW6uTJaV5QQCNsOMqYk3G0lmoYQNaTtOtlFMRuMCAV3v7BDak1B
         IfsYEVqSxNlqpvbPJQz+mqDOJh+/HhqIyYn+SQfwCvw6vwJ8w/vXHwUTIm/+rocNI17W
         z+AA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773918068; x=1774522868;
        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=nHOCizN5DbSZeHTb8WFC3vQPqxtTw6p89m26bd8GNIA=;
        b=LnPl1+N1fGjAufYq4zmDA0x9zQdAUtxg3szlsSE/aN1RAR1pGcWVFSRJuSqVvOzPEK
         zDGMWsz0dBtUxwTqAzxFVvPoG31LDRu33Hanc3WZwZk0HNqECFxbrPo4gv4Dh8SLUROu
         UAdGjpub+4Op/1T/5kvhRV6YzOiiijQPb7DFjWbItsca+fIv0GD1t/zcz7E6Tod/eLQ1
         sF9jaYZ74xLVzcctVcgZR0gnql9BFxp8Htv/9ePuVRkFCoQE0IG2j3N8A5bLS4ZfZMop
         65exW2Mq6e0rgMFPB2DlEAC5ArYvrGXSl6m1/8650QK23XwaDKbwquZ99LuUNtNdoQNT
         2Z9g==
X-Gm-Message-State: AOJu0YwxzpNTb1bJBsdrxHRSlsIflwFMJgibad28scIFY6Uu8aZIBprz
	JOszhHcONuzU4zW/XnqH1n76bUDzk3OfpjqpsjxASgbOxBx1xInrQhYfb1DICT1KHqM=
X-Gm-Gg: ATEYQzw4EEekmzu2IcLEDlfedyDw4Md1+JhSYyCJaMKBnFRM28kYyRzuZZIyVJjMxaq
	HgyvfubODDyLyUvaUJGz87EQC8jKw2qHdro8FqvKuA6dc6faUDD1oSU3LI5mmP01IzyKJuixR2m
	b7wVYwh4K5lSzrlLAZmJVDBLwURF4uy4vwx868mwtNYois9zScD/1i0lGzL3GcqYTeaRP7oNZ4f
	yetPto7/woOBBtCzMzsbcEDr1Dn+ukw5ZRqCw15QyNz7tcsdYz66Wz837N+LL+fyPnlUrnTNIOz
	90Xgn6kfX0KKGSpJvszTghxu9dGEUTzjQFSFgDHD+VYSgq3c9mI5XdEGXQnB0cdCFC2mWJZY//j
	VJkfaHyAiPorxiE8hrbMffIg6kF1YnKiDJ5Vb1Pmt20IaEOW6MDoc9qgC2J7xnoJssWHuYX8L81
	JvWGgsYBUkURBc1kSEBsNWpmCNMRdvLRha/Yp9wyzU7nX33EG3XAjUkLI0bcSFqN8fPWT9RkaBp
	i/5f5fviH+C/1EA63pOLTjSY4CHScJoAQREqi3FJehPRe3JDQCPmQ==
X-Received: by 2002:a17:907:7b94:b0:b97:c431:b029 with SMTP id a640c23a62f3a-b97f4b70e45mr409536966b.57.1773918067710;
        Thu, 19 Mar 2026 04:01:07 -0700 (PDT)
Message-ID: <1ed6d9bf-31cf-4c9f-becf-ce885c085c13@suse.com>
Date: Thu, 19 Mar 2026 12:01:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/11] tools/libxl: add support for xenstore quota in
 domain_config
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Nick Rosbrook <enr0n@ubuntu.com>,
 George Dunlap <gwd@xenproject.org>
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-10-jgross@suse.com> <abvBXjUXfHHJTE29@l14>
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: <abvBXjUXfHHJTE29@l14>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------KeMfeV9AsayVDSgNuhrnEDgU"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------KeMfeV9AsayVDSgNuhrnEDgU
Content-Type: multipart/mixed; boundary="------------qMjCBxZNU0lxSl2Z4mtrgI0J";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Nick Rosbrook <enr0n@ubuntu.com>,
 George Dunlap <gwd@xenproject.org>
Message-ID: <1ed6d9bf-31cf-4c9f-becf-ce885c085c13@suse.com>
Subject: Re: [PATCH 09/11] tools/libxl: add support for xenstore quota in
 domain_config
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-10-jgross@suse.com> <abvBXjUXfHHJTE29@l14>
In-Reply-To: <abvBXjUXfHHJTE29@l14>

--------------qMjCBxZNU0lxSl2Z4mtrgI0J
Content-Type: multipart/mixed; boundary="------------02ZKOvjdOD0ui7Mar9fm1Ij2"

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

T24gMTkuMDMuMjYgMTA6MjYsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBPbiBUaHUsIE1h
ciAwNSwgMjAyNiBhdCAwMjo1MjowNlBNICswMTAwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
Pj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMvbGlnaHQvbGlieGxfZG9tYWluLmMgYi90b29s
cy9saWJzL2xpZ2h0L2xpYnhsX2RvbWFpbi5jDQo+PiBpbmRleCA1YmU0N2Y2ODdmLi44NmU0
M2U3MTMzIDEwMDY0NA0KPj4gLS0tIGEvdG9vbHMvbGlicy9saWdodC9saWJ4bF9kb21haW4u
Yw0KPj4gKysrIGIvdG9vbHMvbGlicy9saWdodC9saWJ4bF9kb21haW4uYw0KPj4gQEAgLTI1
MzMsNiArMjUzMywxNiBAQCBzdGF0aWMgdm9pZCByZXRyaWV2ZV9kb21haW5fY29uZmlndXJh
dGlvbl9lbmQobGlieGxfX2VnYyAqZWdjLA0KPj4gICAgICAgICAgIH0NCj4+ICAgICAgIH0N
Cj4+ICAgDQo+PiArICAgIC8qIFhlbnN0b3JlIHF1b3RhICovDQo+PiArICAgIHsNCj4+ICsg
ICAgICAgIGxpYnhsX3hzX3F1b3RhX3NldF9kaXNwb3NlKCZkX2NvbmZpZy0+Yl9pbmZvLnhl
bnN0b3JlX3F1b3RhKTsNCj4+ICsgICAgICAgIHJjID0gbGlieGxfeHNxdW90YV9kb21haW5f
Z2V0KENUWCwgZG9taWQsICZkX2NvbmZpZy0+Yl9pbmZvLnhlbnN0b3JlX3F1b3RhKTsNCj4+
ICsgICAgICAgIGlmIChyYykgew0KPj4gKyAgICAgICAgICAgIExPR0QoRVJST1IsIGRvbWlk
LCAiRmFpbCB0byBnZXQgeGVuc3RvcmUgcXVvdGEiKTsNCj4gDQo+IEl0IHdvdWxkIGJlIHVz
ZWZ1bCB0byBwcmludCAiZXJybm8iIHdpdGggTE9HRUQsIHJpZ2h0Pw0KDQpPa2F5Lg0KDQo+
IA0KPj4gKyAgICAgICAgICAgIGdvdG8gb3V0Ow0KPj4gKyAgICAgICAgfQ0KPj4gKyAgICB9
DQo+PiArDQo+PiAgICAgICAvKiBEZXZpY2VzOiBkaXNrLCBuaWMsIHZ0cG0sIHBjaWRldiBl
dGMuICovDQo+PiAgIA0KPj4gICAgICAgLyogVGhlIE1FUkdFIG1hY3JvIGltcGxlbWVudHMg
Zm9sbG93aW5nIGxvZ2ljOg0KPj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMvbGlnaHQvbGli
eGxfdHlwZXMuaWRsIGIvdG9vbHMvbGlicy9saWdodC9saWJ4bF90eXBlcy5pZGwNCj4+IGlu
ZGV4IGM1ZGRjNDBmMzUuLmVlOGY4OWU0NjIgMTAwNjQ0DQo+PiAtLS0gYS90b29scy9saWJz
L2xpZ2h0L2xpYnhsX3R5cGVzLmlkbA0KPj4gKysrIGIvdG9vbHMvbGlicy9saWdodC9saWJ4
bF90eXBlcy5pZGwNCj4+IEBAIC03NjAsNiArNzYwLDcgQEAgbGlieGxfZG9tYWluX2J1aWxk
X2luZm8gPSBTdHJ1Y3QoImRvbWFpbl9idWlsZF9pbmZvIixbDQo+PiAgICAgICAoInZwbXUi
LCBsaWJ4bF9kZWZib29sKSwNCj4+ICAgICAgICgidHJhcF91bm1hcHBlZF9hY2Nlc3NlcyIs
IGxpYnhsX2RlZmJvb2wpLA0KPj4gICAgICAgKCJ4ZW5zdG9yZV9mZWF0dXJlX21hc2siLCB1
aW50MzIsIHsnaW5pdF92YWwnOiAnfjBVJ30pLA0KPj4gKyAgICAoInhlbnN0b3JlX3F1b3Rh
IiwgbGlieGxfeHNfcXVvdGFfc2V0KSwNCj4gDQo+IFRoaXMgd291bGQgZGVzZXJ2ZSBhIG5l
dyBMSUJYTF9IQVZFXyBtYWNybywgb3IgYSBtZW50aW9uIGFib3V0IHRoZSBuZXcNCj4gZmll
bGQgaW4gdGhlIG1hY3JvIGFkZGVkIGluIHRoZSBwcmV2aW91cyBwYXRjaC4NCg0KSSdsbCBk
byB0aGUgbGF0dGVyLg0KDQoNClRoYW5rcywNCg0KSnVlcmdlbg0K
--------------02ZKOvjdOD0ui7Mar9fm1Ij2
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-----

--------------02ZKOvjdOD0ui7Mar9fm1Ij2--

--------------qMjCBxZNU0lxSl2Z4mtrgI0J--

--------------KeMfeV9AsayVDSgNuhrnEDgU
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/Ey8FAmm713IFAwAAAAAACgkQsN6d1ii/Ey8G
fwf/RGzYBDZb8OM4HShKDPLhm0WtRuaOG9NS8Q4s6nXaz2FEFuvAnwWcVwmHWB2fPlJdyW2udS5L
oU37e1ZZ1xSkJr7wyk2JFi4mm+3uZORjvcmS1sejwYW5QwUoXJKizz+72txCD8uqSHak5wBcqaGV
AioJnMZ7GylkI4ibfK6+60XsOYgLfjE6QywwrMh67532XzjJRiAFYEHpnzHvmzYvlrDDDRAq17PG
kZKvJWv2HpjCp6XXXStTqrQTwMN7Pjw2vedgL7TWnI+GP4z7KjPMBeefkn6PGk+rvjNRTYHSVI0Y
p0hSL6TTNdrSx4AC9bPMr7e4Do/BdrV4/dLlQbHQjA==
=p7Jz
-----END PGP SIGNATURE-----

--------------KeMfeV9AsayVDSgNuhrnEDgU--


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 11:23:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 11:23:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256971.1551425 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3BT1-0005ut-Pk; Thu, 19 Mar 2026 11:23:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256971.1551425; Thu, 19 Mar 2026 11:23: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 1w3BT1-0005um-LX; Thu, 19 Mar 2026 11:23:07 +0000
Received: by outflank-mailman (input) for mailman id 1256971;
 Thu, 19 Mar 2026 11:23: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=vYGS=BT=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1w3BT0-0005ug-6b
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 11:23:06 +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 fe225c54-2385-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 12:23:03 +0100 (CET)
Received: from BLAPR03CA0100.namprd03.prod.outlook.com (2603:10b6:208:32a::15)
 by IA1PR12MB7662.namprd12.prod.outlook.com (2603:10b6:208:425::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.9; Thu, 19 Mar
 2026 11:22:57 +0000
Received: from MN1PEPF0000F0E0.namprd04.prod.outlook.com
 (2603:10b6:208:32a:cafe::4f) by BLAPR03CA0100.outlook.office365.com
 (2603:10b6:208:32a::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.19 via Frontend Transport; Thu,
 19 Mar 2026 11:22:56 +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.9723.19 via Frontend Transport; Thu, 19 Mar 2026 11:22:57 +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, 19 Mar
 2026 06:22:56 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 19 Mar
 2026 04:22:56 -0700
Received: from [10.71.194.215] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 19 Mar 2026 06:22:54 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fe225c54-2385-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CLqLyLMjVVz7x+mXPQaDQJ3+3DLFoWK6v/b9QUeHdUkXOurqZgFPrP6CB5yj8/d7zR1lPU5c6XbQC2z+DckbpIDbnZIjWOR6Gr7qubFXOqOdGb7PZp0DoCgubMjn49y218hCFHRjak+Eqv8QhiXlYvsPDb9A3CZPlozAePOQoqQ0Wxn+W6DCNJYOXR8I030zHR3/mo+/1EQGde6DHghMfiaQAUkoRaTaiCOlwhRv+qEfGqn1bEp54yOL/xIRNypEqNM0OZWAOgCiXRv5k2/DKtsOa4/lSts5MEnXdCBEXwm7MooaFm4eSwKfmTlivp+UV0jH7PWBQP+4ZGRImUmCdQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yr3nO03A93G2llvy3nxhrHIoxFGUN3TDwPL0nuvAyRE=;
 b=R+hXaeTEG8pvyd0JygcHTwI+5GwsBTzwMtCu2atCuSFyLAbfRZFMpUeyA263QsiwNSyAaAm2eSVuszwPYhyU1L1EENIRw15peEMzvwUfjRhZTd/lhnsGH9QThfabS+LeZQEaD1pgfV+/qO0fcRtt8aL+6QrCr7lkLujKjLM+lCPrq9L51izsETWTJWolcKAJpDoh945nWa9Cwj3jO81bTnrpHDL4FK0Al20qVWt6vCEkDya4SywD9eJtJuXwn1t8d/JCVzQFyiHaHxsLGtud8am+7TA1aRqF0JJMwPmIzYqu/6HJcEZk4hWgiEeg/5VC8xxYeKrVSBlIlBgAwd2qgw==
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=yr3nO03A93G2llvy3nxhrHIoxFGUN3TDwPL0nuvAyRE=;
 b=3193wkfveP2N+cqeMZ90JHFS07b2FSRBF3JbE+aQXbr0ksf3kYBW+r1CVdYmQJLLX8X1/6lAoVHqJDJof+o3DVI/VlK5K7csW692D2TUamr0+0sBCM0uX69rqExKF/1QI8PxBhpT0FhWW+QVQbuAIyYVjYEMCHPJ6du6nS+5hTo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <07f32178-f265-431e-9e3b-9d2af4b0ec59@amd.com>
Date: Thu, 19 Mar 2026 12:22:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v16 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.1765533584.git.mykola_kvach@epam.com>
 <f1d118552f84e2b894ec7163000f6dba98d0e3fa.1765533584.git.mykola_kvach@epam.com>
 <04017286-885e-4e81-9e89-f012ee608287@amd.com>
 <CAGeoDV-oTMYnEJTibOyXFZqNKpyNA3Yf8ffUgEim=tsihs9W1A@mail.gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <CAGeoDV-oTMYnEJTibOyXFZqNKpyNA3Yf8ffUgEim=tsihs9W1A@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E0:EE_|IA1PR12MB7662:EE_
X-MS-Office365-Filtering-Correlation-Id: 37b4ba68-40de-4935-9d2d-08de85a9df15
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|7416014|36860700016|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	yUMj3RXVj1XcTuSWTppKwk3/oJo4cBkHesBlqiTHILnGiYAoleIGFflsbXf/58HS+5irCziNRnhSSC5jZMOiyCHAlcJLj76YjPmclptvWnHFiC+k2S0/KHu+fumo/gImaiNt/XAVVOBxSRN60H3b+P0pxvmP+WHTzvHDkO56L1bvH+OxkZmtOcb2uqD9xMYC298exGzqCdLTcpxVW5kH7DgIB9Q+4GLGKgJwwk6L25K6x6HsI2utr6ihIFvIytzYxHKMG1EAusyaSvALlCg0dGttvgHotqOdUoPfcsrSO4mZniQWgpkQ0d/trJOfh6R4XP04UgD2yvWyBYvrNFCZetAXl495iD01xuilTO1w7G9yeek6eVAiTbIQRHTgRKba4US5OvFw0A0V7r8yfFnlG8ucrPYi6hp36HpUL2kv0IJVZrJYb3ekIv8isgybwG+iv0fPE1aVfVabn6y32NrZ25f966hJF1DS58RPmY5/xXjxn/vH4zn+kvOYOYXqywO66g5ijity3v6+xuTztwpyz6qC7gy7KbE+zWHBlx39r3ikjXYSKCrX1pXh4gmYSIm3aWqWIrNFhqaW6dkBX1AkxZJe0Tpaz+h583L2kBd5BiZRz1nCpNYPngb6Ykyd8h7MPiwOf6I39d7PVTsoep6CpdE47/ezBZKW68KKWSkWhHrCmPNkAt0lWqkSsf7w8a1uPP8oLNjYX7b6yEzljtGABD8YiO0aLxE3MZLPKP4CF6eig/vHic4kKv4p27lC7xB4IXKmM080Vh308Ixba5bPPA==
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)(7416014)(36860700016)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	95jU+dz3WQpieEPn47sAAjJCKhOFePv5Z6RZgE+5LBJUNIl8Hw9/0lvKt6RM4SRdSHFy8PCfZznyYkmyUF0BExRI0IE6oelklaIXwFUfTpe/jKJ9wZoDTKU3aR/7cAOqvXws4GwNdJiYFK8xQBA/VHYvDwUlbhDaisr1YtvY4mE1b8I1D2BefTq/jbtlT9u6jzKbqRSRFUw0VcI/toGFNEAiJT6ywHJaavB97RPOLur5FhaqrMMbwA/GmuYK+TX+3NhKKxOHi174/htxi1FbldP7rGp9PoB+pP3asd2KMrl3xba7Zr8mnmavYc5ivq/6DK/Ps7uRmR+FzpcQA/wfWAGSFmH10msRZIVx56jNNIeYQpsugeblgaqYE8p96JaGEjBu0qCKzLfI42zJ+xmVjMc+gETuOiLrQQq1AJHJ/UfEk1kd/u1sEhAjDiy5AxLn
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 11:22:57.1448
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 37b4ba68-40de-4935-9d2d-08de85a9df15
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-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: IA1PR12MB7662



On 19/03/2026 11:14, Mykola Kvach wrote:
> On Thu, Mar 19, 2026 at 11:37 AM Orzel, Michal <michal.orzel@amd.com> wrote:
>>
>>
>>
>> On 12/12/2025 14:18, 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. arch_domain_resume() stays int to propagate
>>> errno-style detail into common logging; preserving the integer keeps the
>>> reason visible and leaves room for future arch-specific failures or richer
>>> handling.
>>>
>>> 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 V16:
>>> - Refactor error handling in domain_resume: move logging to generic code,
>>>   use explicit return code checking.
>>> - Make context clearing conditional on success in arch_domain_resume.
>>> - The 'int' return type is retained for arch_domain_resume for consistency
>>>   with other arch hooks and to allow for specific negative error codes.
>>> ---
>>>  xen/arch/arm/domain.c                 |  39 +++++++++
>>>  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    |  27 ++++++
>>>  xen/arch/arm/include/asm/vpsci.h      |   5 +-
>>>  xen/arch/arm/vpsci.c                  | 116 +++++++++++++++++++++-----
>>>  xen/common/domain.c                   |  10 +++
>>>  xen/include/xen/suspend.h             |  25 ++++++
>>>  9 files changed, 205 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 47973f99d9..f903e7d4f0 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"
>>> @@ -851,6 +855,41 @@ 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=%u, shutdown_code=%u\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 notify 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 )
>>> +        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 758ad807e4..66b1246892 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..313d03ea59
>>> --- /dev/null
>>> +++ b/xen/arch/arm/include/asm/suspend.h
>>> @@ -0,0 +1,27 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +
>>> +#ifndef ARM_SUSPEND_H
>>> +#define ARM_SUSPEND_H
>>> +
>>> +struct domain;
>>> +struct vcpu;
>>> +
>>> +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..c4d616ec68 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);
>> There is a theoretical race between this and ...
>>> +    if ( rc )
>>> +        return PSCI_DENIED;
>>> +
>>> +    d->arch.resume_ctx.ep = epoint;
>>> +    d->arch.resume_ctx.cid = cid;
>>> +    d->arch.resume_ctx.wake_cpu = current;
>> setting up resume context. It is practically impossible but still we could move
>> setting up the context before domain_shutdown and clearing it on failure to be
>> race free. The race is about small window between domain_shutdown releasing the
>> shutdown_lock and other CPU calling domain_resume, taking the lock and running
>> arch_domain_resume before resume_ctx has been populated.
> 
> I think the current flow is already serialized, so I don't believe
> arch_domain_resume() can observe an uninitialized resume_ctx here.
> 
> A concurrent domain_resume() does not take shutdown_lock first. It starts
> with domain_pause(d), and that path is synchronous: it walks all domain
> vCPUs and uses vcpu_sleep_sync().
> 
> In the SYSTEM_SUSPEND path, the calling vCPU is still running after
> domain_shutdown() returns, and it populates resume_ctx before leaving the
> hypercall path. So if another CPU tries to resume the domain in that
> window, it should block in domain_pause() until that vCPU stops running.
> Only after that can it take shutdown_lock and proceed to
> arch_domain_resume().
> 
> So, as far as I can see, arch_domain_resume() should not be able to
> observe an uninitialized resume_ctx in the current flow.
> 
> Also, moving resume_ctx setup before domain_shutdown() would slightly
> complicate the failure path, since we would then need to explicitly
> clear/invalidate the pre-populated context if domain_shutdown() fails.
> 
> So unless we think this race is actually reachable, I would prefer to
> keep the current ordering. That said, if you strongly prefer making the
> ordering more explicit, I can rework it that way.
No, you're right. Resuming CPU will block until the suspending vCPU has fully
stopped, so the race is impossible.

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 11:34:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 11:34:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256983.1551432 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Bdr-0007vx-Pl; Thu, 19 Mar 2026 11:34:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256983.1551432; Thu, 19 Mar 2026 11: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 1w3Bdr-0007vq-Mh; Thu, 19 Mar 2026 11:34:19 +0000
Received: by outflank-mailman (input) for mailman id 1256983;
 Thu, 19 Mar 2026 11: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=PKQd=BT=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1w3Bdp-0007vi-RU
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 11:34: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 8e67a54e-2387-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 12:34:15 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by PH0PR03MB5687.namprd03.prod.outlook.com (2603:10b6:510:39::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Thu, 19 Mar
 2026 11:34:10 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%5]) with mapi id 15.20.9723.018; Thu, 19 Mar 2026
 11:34:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8e67a54e-2387-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZSjOs5OpRNbUIzinDsJeGHS+7j7B+qKqXnJD/mme9LKGksuHYQ8ReRD64YZN2JCxRWhQs2P3RDaKC168LOznISImCC/iZHXa32QozFKreS7DgSXW1OQyVJZJ+BqrHhXYvEEAzwoFKoiogYYMBCe95p02Ek9M2ZgHEOhwEA2WowSIo1PPrwBzzAdG3tz8PgUgfdyfxxYp4Gej/PcQsqxFg7K7CXoqPm73TG97E+IlPo8FsEup1MGile3OAN1ohQVEHfxZ7kBs4qTb818MgOMD7d8FNXhZG0wT0wwcinT4nxT8Uxb71gbBfyzEPzYALDi7VDBtjh60MZtGjZE5t2UvzA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ET/koLEDsPyyNhHOJelRlIFI8eLlFU1aLVYQI3zloos=;
 b=rQGf2gry9fzXPsDDcNj+Jt3bdqvkhNfHaXoed/R0ER27KaulmpAC2PbXSYs+EN6aSfLIajcCM0pCHPRNaslvYHStPlFp/wN89t+ogFdgUql+1brNlxOr+pFqj2yYBUol0XqXK0mbmoSve/03SuGnSuNq7nYWTD1dJ6eNvhr0leaBiHv6AlyHdtrSRGzSQuJj9z0aG8svRUmUvjO8ZgqrhXGfEBcgwpDELH9knZYSalfEWmZb4EsGtYQPzxAPxpOLfFtrn3HD8uSseH2HugrAWSx1qIJiM1Iu1/KsFkcVxYhTSnm5IlaQ7oEa6gI/To8eH+igRn8acPfvXgPZqKdZrQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ET/koLEDsPyyNhHOJelRlIFI8eLlFU1aLVYQI3zloos=;
 b=HK/5IIJJ1NWESyN3P4WKf/cKfcxxAT4/FjqiTjMAkMFb9YK2SgDby7Os5U+AljpRDvDpJsPHrheLd1Q4itC0VKWebDybXJJrtYpSFsmtCk9B/51moWLCkcQQr/zpxxSgJYXdEHQFviaz04q0rA1EXbYo7h1R+Sp/8tMWfQqc1mU=
From: Kevin Lampis <kevin.lampis@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Roger Pau Monne
	<roger.pau@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v v3 6/7] x86: Remove x86 prefixed names from x86/cpu/
 files
Thread-Topic: [PATCH v v3 6/7] x86: Remove x86 prefixed names from x86/cpu/
 files
Thread-Index: AQHcswecdmV4lKk9K02HzyxI1bzrs7W1njQAgAAj5i4=
Date: Thu, 19 Mar 2026 11:34:08 +0000
Message-ID:
 <BY1PR03MB7996677156E710EAD8E3E8E0F34FA@BY1PR03MB7996.namprd03.prod.outlook.com>
References: <20260313163630.1073019-1-kevin.lampis@citrix.com>
 <20260313163630.1073019-7-kevin.lampis@citrix.com>
 <24885daa-5801-4e5b-9d16-bac70bab4f0a@suse.com>
In-Reply-To: <24885daa-5801-4e5b-9d16-bac70bab4f0a@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_|PH0PR03MB5687:EE_
x-ms-office365-filtering-correlation-id: afafcf98-26aa-4bcc-ae90-08de85ab6f4f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|376014|366016|56012099003|18002099003|22082099003|38070700021;
x-microsoft-antispam-message-info:
 352GUQYA7MKSpj7ePHTUlRO7+UsPxwdDkLkvBnlMUHgYL7iFf3znfP744RUqsZ2gKz3dKoLA/925rErzQBNnvbZDhbDxxwx3pm5trtqK75Rjb3p9sag9QjrVAJhvx5S2jJwv2k7fvL0Ygxu72Ot38YMvycFWJoKX46xynKPIamMPuvLCutUSJ3vSDo73BEOMavx2tTogrbXoWeQkWjsI+PIHlBNsbaKce15bDcbwuGpkqB+U2Tx33Y2R9YmWDepbOLYqQDIffQ5VD1DYVkNz027IUBwx0Z4yKWijPk+NLEyn1fJlUaibdLVjXgU7bh7gcMQCFvVNCjfR1cyHKuGiBSiPLQKRFjUgZyaXjR4+/hN0zcM4I3ebjjI+G9qBCR0OTQAG4VuWQxMb6wl/Y2kzI0Fvcma4u1EiPzVgB0Ua1Lp9bLalnbv6sjUz44qkXkrnw2NlpTFSqYrxbVF+Hv6KT9PkIoh2cvsH0JLd+anpZiI2cog0VA6UzB5HmEu12fzqtFDW/L/wjeqW0MmrR24aM56Fgce5r6x8vGMoLLKqHTbPmvmjCyscjc3mFy5vqkxbwpxFJo3aSNDUwAs2V6fYyOJuTxwAN+dm8c9iWcvEPNSicPmj0gMQyVwITD/j5tsMlEtn6wlP4dNLgq6eET56yP0cI6UxVTjSmzwL8znNFHrQBhWBPiPs0KWy8njxBpLPs1evgiItBMfv5DSeitFc3sDQ3S+4mkOBmpTN8vzryRq4WrZU2qv49HUrxcakksGtRJzDZJhOrz+S2kcyXMsnBrEwr4BZ1m+V9+uSfUFNy6E=
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)(56012099003)(18002099003)(22082099003)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?UORyDGSzzPdKaU28UkiCqe74PTOJdkZLFKcS8ZwyAXB2h3Ax22QbSsCO71?=
 =?iso-8859-1?Q?YnW7p4d0qtWCsSb5T3Ei195aC1FKUbvnZnMsMWkDF8c6EZG+kvnDEfENEM?=
 =?iso-8859-1?Q?iCGjcWYRclpdoayhMbNAWgSvjP3V9gnqkgCv9EM2CIZTTz8xB9PkH5uAhq?=
 =?iso-8859-1?Q?1RG6sJRfzVrVU07KXXKn3SP63F7mNB/WzxOQG+1RQmOeRkWnkKC40MTh1I?=
 =?iso-8859-1?Q?RBoXXLrqHugEBRFO/Rj4V7xR0SScNtZYsDgkRagoAxWvP1QafxqyMcqgAM?=
 =?iso-8859-1?Q?/IiCLLD3HlBr5HLw1CAcJlhd1vXWo+ezKC9aWbDW4JLb3m7ijP0ScaDjSq?=
 =?iso-8859-1?Q?FDRcqU8bnAna54yZue9ZPA4X2mpwSaxrkNE5VHaVSxpYiDf5YVbEjl33hA?=
 =?iso-8859-1?Q?rDp1kPCiO+KT3P+P36g406/JWZ/zrcQLiVfh4VbeJloHx2KHOfuyxRgowg?=
 =?iso-8859-1?Q?9Q3XOSBKPf80WITZSB7IMtG34JDQLahnvw75dJk2t3jJdq4RR2BlUib08y?=
 =?iso-8859-1?Q?tzecunSl1HpEQrERWrzQRUX32t2E9fw9lvDKlqiVCrvdzn+sluGFhUCxyz?=
 =?iso-8859-1?Q?NeTYv5hQFgiQryzX4JoLPHx0OOfScgIHK4THRxOSQLTf0j/XQvD/zW9zUW?=
 =?iso-8859-1?Q?6C6rsq393KFqytHFT8w/i1aBtvR2zo1ySalbXxMvCh8usG+6t2UbyoePfc?=
 =?iso-8859-1?Q?f2eiJzJqJjsZkRophBq3yYFEiHzoOW2pz4EP+/ecS/Vw4TLs6LMom7smvZ?=
 =?iso-8859-1?Q?WKNaFoNzvI7CwPxJZI+0fJ0DCokUY0c3QYTH66Gi+QmTNRNUWZQZoRRmTY?=
 =?iso-8859-1?Q?GGfYlJFPpQOczhdR4DpPtxr4YnJCDWUjBUo7ajLsDCzeC3micjLvEfvfQf?=
 =?iso-8859-1?Q?4vOQNRbdb0HAHli0HlvWxvfGdhPL3JqlaCAin39H6iR+41U+3qhAxb8h29?=
 =?iso-8859-1?Q?OeOwuU2qi7e2xWoJyIvW0JS1UmeOqom8qWxQG4EVYz1LuX1GHuzhJJ47f3?=
 =?iso-8859-1?Q?+dS626t52+31sa0henLZlR6TpInHINzUhVxnLZLePduRUDgb8qZ9PRGsIb?=
 =?iso-8859-1?Q?dwdCDj73lBgtSCGriMeB4IncQIxVX6AnX8q9Q+3fYQsKFUQlvG5v5Z4xad?=
 =?iso-8859-1?Q?3+r5b6Pt4kcyerUT9jQs9FG21NpndujtM/XiQKZOzqwSKXP9iDj+Ey7M52?=
 =?iso-8859-1?Q?AzQi4lrNNi4jAsAuhILtP+6sqfIq2DRSJTZPpAJzlSDiw4lZx2dOpTI8vC?=
 =?iso-8859-1?Q?Lihs8aHpwQCpTVTOwyhHReza2cOeWq3iSpL1YWroiz1IS/FxD6loCibYFZ?=
 =?iso-8859-1?Q?4x7WeuxqbMoXUy5DPwnJ+wjq2j+MJukI6ZB7EvvviozzqggRfR+Ga2/AIw?=
 =?iso-8859-1?Q?QUCYEKYxBPUDwNn2cZdYQyh+FnIpOBz/C0LPFMTPzAp3Y6GeX5XEsAftSq?=
 =?iso-8859-1?Q?oMKhR+JVXVNFVZmNfutPNEn6pBb0dUvzBh1bBsi7ZslpCuy1zop2gZMjaa?=
 =?iso-8859-1?Q?yYoFKk2Q3wQbVPdgb3u2cClnIB9V46i/atbNzAn+d5fthuxvd1+D0A7cuF?=
 =?iso-8859-1?Q?x3Sjal/pw/SUNAGgu4a6Xsg0MrjAd9eA7fstBswwwCZIthwFeEzhrSAGzU?=
 =?iso-8859-1?Q?O/bl01foMqPNFpzbtgTHLZfULDPDZ5H9PA1wifl1IG0VtC5V1+5zJjjsmj?=
 =?iso-8859-1?Q?pM9aUll/DnmFjp1NrEv33Irp7lksGDTR3EsCjq96LbvzVTjoD0DIjLMfcn?=
 =?iso-8859-1?Q?LslqzKbHPKlTWBtrwKRz1McMSy6dUQe8WuFLv0xjZMzHlI?=
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: afafcf98-26aa-4bcc-ae90-08de85ab6f4f
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Mar 2026 11:34:08.6124
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Z0uPen1SdW7arg1zXuuH4+N1mVn/k37V8+8h5yg0WnHURecNwnbTD2swVSBL4Zfy4ePycNw3scX68oO7xAiYgg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB5687

>With that - where did the ack go?=0A=
=0A=
When I post a new revision should I add the `Acked-by: ` line under my `Sig=
ned-off-by:` line in the commit message? Is that the right procedure?=


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 11:41:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 11:41:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1256991.1551441 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3BkZ-0001LW-Ek; Thu, 19 Mar 2026 11:41:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1256991.1551441; Thu, 19 Mar 2026 11:41:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3BkZ-0001LP-BP; Thu, 19 Mar 2026 11:41:15 +0000
Received: by outflank-mailman (input) for mailman id 1256991;
 Thu, 19 Mar 2026 11:41: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=wl8P=BT=citrix.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1w3BkX-0001LH-F0
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 11:41:13 +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 84777f81-2388-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 12:41:08 +0100 (CET)
Received: from DS0PR03MB8272.namprd03.prod.outlook.com (2603:10b6:8:28f::23)
 by SA0PR03MB5546.namprd03.prod.outlook.com (2603:10b6:806:bb::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.20; Thu, 19 Mar
 2026 11:41:03 +0000
Received: from DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654]) by DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654%5]) with mapi id 15.20.9723.019; Thu, 19 Mar 2026
 11:41: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: 84777f81-2388-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xMqH1yFbebxPmKeZyCQ5nEcH49E+Y5tm2dCHXlXNud4E6gyyGE1oaaJ0bgkLyC4uTMo2j2Bk1qF1ximu6CZsLkqCbB3w7f+O8gSY+2jXX8+xXKJehVUgNM6HhLGJ6BozxJmw/DCqXKTcBp+OddJMMuYwXpjWahjUaMpZ+UcrCH8fKz95dYwKym50SqSNOXODMsmUZmA2/pghWoKQlYNcEM24y6nQD6Ix86VOvyfAhphGeQUQgmIVwmXZwSzelpbgsTPK7hmZAyNtLEWACjAhjw/Kr4RTvQWmHoIli+aftkmop280vGB4ZsFoERb25GLCHnVtWtAayAaTk/c+/4pOfw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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/E3aQRMTWonx4vddCbikVgvVJo0XPTtSd/NZmXUx8=;
 b=dlg9xRVth9tAlfshSj9Suchbs+W9SK/sZgoGeCz2cfouxX++RAbLRG67Bbt52e9XXJDwkabuf3OW1sS+WGT3a2FTc9R0IboYJjyV+S+mCsjKpMmifjIHY2xDzeJGnC2D76D2KNgDP7vETmYkpix1BvDWsKfH4+ijAd0pnpacgJvsSek2pIQulmOmhnKfE6/PDJHTg5WggrZGz6XzGVAlxo8WDQeKOTMOdmhaUjiwwTA3+0pzknTa2fOXMlKCIjAYllEfq89WMiZjBqnPKRgEctjYApHiwnvXdvcSaWWncS/TvfaC4oMK23nSWr4HieUhV7w8LqEyyO0fgm3wBRBGFA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ad/E3aQRMTWonx4vddCbikVgvVJo0XPTtSd/NZmXUx8=;
 b=wrbMU+NplCw+7ultf5UUxB9ItmGpcgmj/6o2lihPSA9O76C+/iH2Sc+949BrkPdzdbCeKLE2nYHPtvwrlCEWBH2/767II06sWFQE7MIFqEgZJ5MlHAfoZAnX4xagZ8REoCHk0D4Ye4YFzxowBLpXCmKD+btD8nGElatMuypS2SI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2] x86/hap: Defer NPT P2M TLB flushes
Date: Thu, 19 Mar 2026 11:40:41 +0000
Message-ID: <20260319114041.1455593-1-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LNXP265CA0005.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:5e::17) To DS0PR03MB8272.namprd03.prod.outlook.com
 (2603:10b6:8:28f::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS0PR03MB8272:EE_|SA0PR03MB5546:EE_
X-MS-Office365-Filtering-Correlation-Id: 0f6d286d-ea64-4e3e-261d-08de85ac66be
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	tuTZmh3/WR25QyK/hdvRlTbRuFRa6crokzIIHxibGitjlMWrmfD8RZwMvn1ZW0zCcbQb3ymU0Isig57/z30s8AAWB/a1dd7bmxnvsq4UWvk06hZjIgUd0lnYDUepf8gLJGg9plj7Li0xeV9ymWfAvE69kKkMRFbbbNHPoTlMlnNdhEnawBPKMmTw/Iaykl39C7ifkcTJFbCJJHQhxYSmOw9gdJtdv+SJjUBsK062iL4AUOH7H+Vpl3p3STVBTWbYnZ2m125G2D8bCHzWvPZwLPXeT5z85iGC6J44uFGZQRpwC5CJ83pYE2uhb5ZkwaiegRc4RLKu5aN5R4r/y5MqFMGEujIdoHjJZaQyHNhWi7DYuhRM0hehMCTZuB+cRFyRdgnxUxvrMXkN8UXe/ipBpqB62LMw5l/5QQuTVl3Vb7Dww+2hROGB/Pz7Rch1b5dTvQhod5aKyHQf9gYHanfXRHA75jIQmWSpLx2e+TPJxCCEnHMaIlfoBOkvu0IDUdxyKwfP6S65k4voidmBN4mn9Ym7mp1lfe+oPPMmZhTCn4zpOAxk0bVGEjDYMyACeD0c2JlrJ0uQsRRNT7AnSn5rczb5OfZhixhySyvdq5TmDY78TmAaCMYkwB2VGcpC4s4tdhsjpNReZvB19I6hqaJj5HAPa2Dg3QYULkZJkzOtK78b39lYZhC5sajlUzsPwuq1S5Zjd8ow7mo1KJ/8EspHgZlMb8ks3GqNx/iMO41vfDQ=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR03MB8272.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Vp0MkHSoiLx4ZxwqoXK55bL7MQqqsjPBnIBJ5J5uDSlvck9lt3xT2QJlRvM9?=
 =?us-ascii?Q?0reWQAdMI3JzEsoc/f4yQYmzj+bXTQuu57THw+4xsgUs514DpII9MC3CG6of?=
 =?us-ascii?Q?GI4phg7GjFoXLofOQm9GEJYX0pdbz2SkLbwsurRJu14y99JM5GhItUUDwhe5?=
 =?us-ascii?Q?E4Ph975A6PAHjdTgxasfAgaC2bfzcfnGrH1eH29urDpm/bdUAqJssrVmalTc?=
 =?us-ascii?Q?ZjUwif/PNUabJmFCeR/SGPLGFT8oPpJYgR4JPhxgC7trldUf5Fva9RnebC9T?=
 =?us-ascii?Q?eAXSJ1OxuegmXlzDAl/uOLjBxb+AQR3AeiQvl4E0o4JV0QEshKonArottt+3?=
 =?us-ascii?Q?jSeu6Zyot8VhtDZUVzP5szPVPCJI2SAhtmNE/PostkPJidI23MXOMRRXshOr?=
 =?us-ascii?Q?XBlsfRkD43U4s3iZqaPRI3EPvBQgavDLbH0fnugCnHY4mr9sTy8TsJOJGG2R?=
 =?us-ascii?Q?i9lF1DCg4jjQzpb1saQuiucMwmmNAPed0J4W2H0VboGUiBL0utfNJ+AksAuC?=
 =?us-ascii?Q?BSjTyvd7OrMIbsFXCOVyv82U0L2N8W5A+hM1fSl58sCUfOZlPHLcKof9nksa?=
 =?us-ascii?Q?+yD+8YcSABEaeNQAsXL3uqF0j++dW6rg4nY1Nltm7+ZGaHm0L44nvWmr706i?=
 =?us-ascii?Q?TdKUZgdmb6W7+XEUbatsev+TF0Hz3MjeYvar7uL5sgSTxm6RuWKgullbp09u?=
 =?us-ascii?Q?fytvvJkx/GyLtZMa17RdiXix+v624OhP1+nZx8gAyzYVjFRi6t13wIj6SYNi?=
 =?us-ascii?Q?L7EeWg+OkywfVJhIZeRbxf71igMBTjI/XuJvXfmxolD/ouFx0TAw0pmi/hGY?=
 =?us-ascii?Q?3SibfPJeNxGt2MyWqmtI9w/MnunBw7hR8ZvYH11NfVyBYvymQbVVzoA+R8Vf?=
 =?us-ascii?Q?TRWuxWqGJwO2dpUetw0LR+DBnBlrLhuB8ft99xHoOLq0KWOvEj/LXZqV7cTI?=
 =?us-ascii?Q?kaDaXB/MTyNEmlhH4k0mmkQLWIFUFgruzKSuxtgJ/vc7PQaaW52iZBeXqNfS?=
 =?us-ascii?Q?7ZR/GD1cagn65EUjiZeFeahg2CR7M5BOoSYep4W0nBZYdKijn4NQuArJZLd1?=
 =?us-ascii?Q?vl8ntAx7wwVIuB+mYIuwCoskCdncQ01bQsjhaak4zRelPcE+f2emdCTzcX3S?=
 =?us-ascii?Q?SVJAybQel78KUD77wkQG1feDmBlLiydNK1YcGAH2n22B2pwUl6pnVdcbUHMY?=
 =?us-ascii?Q?Tm/S9ku7pGWgXY+ZloW8WGLHbJx+vy48bJhoJf4XyxGdSfknYP10sRzj82C5?=
 =?us-ascii?Q?iCcbG0fsd39YSzAfMmzDyDSePD+BTJuZKiXpq6dCRv9DdLibtd90zFU4AjvE?=
 =?us-ascii?Q?p1IOUCe4Q0qfHCVt4GY6vil/gtjYRyIP+Ea9UBTgBdKVBzpCr+2rNvPh1fqZ?=
 =?us-ascii?Q?aGvcFd7UhSi1CYgX9rKOD2FkesiPmYVx2Z6H6JeKjA2kZwKmDneFisj5ne2P?=
 =?us-ascii?Q?MnhgN2w9XrU8dE+UCmK45HTT4aOfu9n7Tb33tczbe518SIBygskWg5Secs/n?=
 =?us-ascii?Q?sQsYKq4fgBQxHTiOH0sEkR0BzWCporMVlBQIIw6MUbDGAgQzaFxYbTgc8rIA?=
 =?us-ascii?Q?I80+9xNU8vFf5AFzFIgRJo4KUbTuUyrSV5QA/Wx++YdfuAoqnMiJ43mn7PML?=
 =?us-ascii?Q?gbmf9yyHl8RyCsOX1lpgnE48hVO+4vTRsdasjzXv01T38fnqO+ydKO1STVzI?=
 =?us-ascii?Q?nsd1liiY4j+JQTFVm6emaeenQukgo3v640vZ9/C2zm5uawWnYA2oIKHdE0Ph?=
 =?us-ascii?Q?HbOxbPO/N5hzyZNJJQOcveLVVGat3oA=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0f6d286d-ea64-4e3e-261d-08de85ac66be
X-MS-Exchange-CrossTenant-AuthSource: DS0PR03MB8272.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 11:41:03.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: mNYfcgVR1dv8PiIUGHaC1IRRNCReYw9R1Z6X7I0HKnjQBuec+s1A7EOsx0VuSYieNCrBaww6tD18K66UVSdBhtyH06UeHihpQOyR7F6PCEQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR03MB5546

Like the EPT code, defer TLB flushes for NPT to reduce the number of
flushes and avoid holding the P2M lock while flushing. This can
substantially improve performance in some scenarios.

The cases where the TLB needs to be flushed without deferring are
already handled by the call to p2m_tlb_flush_sync() in p2m_free_ptp().

Suggested-by: Roger Pau Monne <roger.pau@citrix.com>
Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
In v2:
* Tweak commit message.
* Call guest_flush_tlb_mask() if the assertion fails.

 xen/arch/x86/mm/hap/hap.c | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
index a337752bf488..67137611d9db 100644
--- a/xen/arch/x86/mm/hap/hap.c
+++ b/xen/arch/x86/mm/hap/hap.c
@@ -814,15 +814,33 @@ static void cf_check hap_update_paging_modes(struct vcpu *v)
 static void cf_check
 hap_write_p2m_entry_post(struct p2m_domain *p2m, unsigned int oflags)
 {
-    struct domain *d = p2m->domain;
+    if ( !(oflags & _PAGE_PRESENT) )
+        return;
+
+    if ( unlikely(!p2m->defer_flush) )
+    {
+        struct domain *d = p2m->domain;
 
-    if ( oflags & _PAGE_PRESENT )
+        ASSERT_UNREACHABLE();
         guest_flush_tlb_mask(d, d->dirty_cpumask);
+        return;
+    }
+
+    p2m->need_flush = true;
+}
+
+static void cf_check
+hap_p2m_tlb_flush(struct p2m_domain *p2m)
+{
+    struct domain *d = p2m->domain;
+
+    guest_flush_tlb_mask(d, d->dirty_cpumask);
 }
 
 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(
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 12:26:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 12:26:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257011.1551460 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3CRp-0007r6-0R; Thu, 19 Mar 2026 12:25:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257011.1551460; Thu, 19 Mar 2026 12: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 1w3CRo-0007qz-Th; Thu, 19 Mar 2026 12:25:56 +0000
Received: by outflank-mailman (input) for mailman id 1257011;
 Thu, 19 Mar 2026 12: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=Yv1Q=BT=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1w3CRn-0007dl-I3
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 12:25:55 +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 c65eee1b-238e-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 13:25:54 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-486fd5360d4so2517205e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 05:25:54 -0700 (PDT)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-486f8c350aesm60831395e9.4.2026.03.19.05.25.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 19 Mar 2026 05:25:53 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c65eee1b-238e-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1773923154; x=1774527954; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DfzaREpgue5aOwMwONNRYs0JWFfpCu2AsihViVXhTqA=;
        b=jQulXTJyAiUaesbJ/uWRJCcVcZYa0XFWr2GPcdU795QS1uWDctqVWOANEC9FppQubO
         c95d4KXGMqEGbBy8FScP30iD/eo0Lf9iJnWICgJUpkzJxCpcuT1xKcNgBfKjEhczmCv3
         MbwqenpmksJmr736mcQ65dt1UCuPv9/vD7LWI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773923154; x=1774527954;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=DfzaREpgue5aOwMwONNRYs0JWFfpCu2AsihViVXhTqA=;
        b=CVQ5iQ6mX3pWXjT7j0lGE8EKwVGN9evUQYt+QHHwF8B4uRJQXp7Gkvu/HwZqmmBegU
         13GpALh5ISMg+U2i9PQuuwtANVrhF66kuRvRWmR02Bmdb6uDSJLPvYix1OLa+F/Wd+p9
         CqTXaeDbsirBrMicwAklwPB9ShzcsGSVWEn6ytrPsgUZdxI54RzsA0xRxasQqePOnmJ+
         QECoRGtEF+4GSAY1Is0nxtegWMN3MirVhTGsiLep4IdxCXqv2sfYKoRG5lBE8YeSpXCi
         lpKvulOxlAJvQFiSUGUvMXeDyADr78yvb6c5c9WnoYWTKRQXlb4CMt5r4H9S3wH2Nz6f
         7e1w==
X-Gm-Message-State: AOJu0YxdGigkZCYa9lb1a+3z4Ldq+mNQ9rYauoiVtyvIvsYDWG+p1fOP
	9GojqEUe+2gctSVhqIum2kQqpiABHEQI/tcF4Qj8DvxBSI7gOqLoiZ2ljL+9IaFppXFoqYV2zY6
	ajwse
X-Gm-Gg: ATEYQzxOoZZmPz7Dq7nnY2zQk/hPTNsybZlQ3PXJ45NQFisVaeUiOBVUxYDsKcGVptM
	55jhlyiAAUJw5Jqw3uFvK7DgRDb1PcZsLeNOm+NyrbfBLnAT53vjlX+EpVXq3mSzG6UNKp/enSp
	2Os960FhCqZ+77J20OAbQQPOcOXIA8P/A1Dstd2oLExem1S+L+y62MxlYh9OZlMsM2v/d1ux2pA
	EO4Kpul0kN3o9EXi6aZAhjIatpfRLSmUFxo8n4ynLzBQ5MMmJkFs3QnizTVKrP9O8L5NtMmwus0
	B5rOMIHHrqfZR0s4araOYeSOYL9L/lTQHvBWbbrm+oM59l5GV7yA5RSo4Cw2Eb6F42UhGSxe6RS
	9neXWBVB/nxeD7CDSfNdU9Py1l27OT15w9yDYmFxslkyzKfvKDl0o1T/nXNYekSHsC+UTBwbB1P
	GzQpWgs4l8KyKOi1pW8+hf0NfuHrgdDU8Jm0eJj0NTbWOLOI0vxXsx0WCL9tlcUQKOqkIQmxw=
X-Received: by 2002:a05:600c:8218:b0:47e:e57d:404 with SMTP id 5b1f17b1804b1-486f4475336mr131451655e9.16.1773923153601;
        Thu, 19 Mar 2026 05:25:53 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 3/4] x86/kexec: Invalidate the IDT earlier in kexec_reloc()
Date: Thu, 19 Mar 2026 12:25:48 +0000
Message-Id: <20260319122549.922724-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260319122549.922724-1-andrew.cooper3@citrix.com>
References: <20260319122549.922724-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

After switching stack, it is not safe to run any exception handlers, because
attempts to access the cpu_info block are out-of-bounds and will generate wild
accesses.

Invalidating the IDT in the common path means there's no need to do so again
in the 32bit path, so drop compat_mode_idt entirely.

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/x86_64/kexec_reloc.S | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/x86_64/kexec_reloc.S b/xen/arch/x86/x86_64/kexec_reloc.S
index d0951ea1e1c4..7a6dd2cbe736 100644
--- a/xen/arch/x86/x86_64/kexec_reloc.S
+++ b/xen/arch/x86/x86_64/kexec_reloc.S
@@ -44,6 +44,16 @@ FUNC(kexec_reloc, PAGE_SIZE)
 
         movq    %rcx, %rbp
 
+        /*
+         * Invalidate the IDT.  After switching off Xen's stacks, the
+         * exception handlers are unsafe to use, because there's no way to
+         * perform arithmetic on the stack pointer to find the cpu_info block.
+         */
+        push    $0
+        pushw   $0
+        lidt    (%rsp)
+        add     $10, %rsp
+
         /*
          * Move to the identity mapped stack.
          *
@@ -94,8 +104,6 @@ FUNC(kexec_reloc, PAGE_SIZE)
         jmp     *%rbp
 
 .L_call_32_bit:
-        /* Setup IDT. */
-        lidt    compat_mode_idt(%rip)
 
         /* Load compat GDT. */
         leaq    compat_mode_gdt(%rip), %rax
@@ -202,11 +210,6 @@ DATA_LOCAL(compat_mode_gdt, 8)
 .Lcompat_mode_gdt_end:
 END(compat_mode_gdt)
 
-DATA_LOCAL(compat_mode_idt)
-        .word 0                      /* limit */
-        .long 0                      /* base */
-END(compat_mode_idt)
-
         /*
          * 16 words of stack are more than enough.
          */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 12:26:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 12:26:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257010.1551450 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3CRn-0007e2-PB; Thu, 19 Mar 2026 12:25:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257010.1551450; Thu, 19 Mar 2026 12:25:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3CRn-0007dv-M7; Thu, 19 Mar 2026 12:25:55 +0000
Received: by outflank-mailman (input) for mailman id 1257010;
 Thu, 19 Mar 2026 12: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=Yv1Q=BT=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1w3CRm-0007dl-VN
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 12:25:55 +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 c5e68830-238e-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 13:25:53 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-48628ce9ab5so11741955e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 05:25:53 -0700 (PDT)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-486f8c350aesm60831395e9.4.2026.03.19.05.25.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 19 Mar 2026 05:25:52 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c5e68830-238e-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1773923153; x=1774527953; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0qQivWpVp8aJ0G+OuJqncSanArkeWmdPzppoMAV3zIE=;
        b=rrVH0g0l72BfdQK/QoSamnP+Xh5y1d6wSWipfFGq1ULhlKiRRy+r9qK3P4xob/V0ox
         7+J+kcCuEiPRDqKpV320cYrTKBbiNpbDpFxTFyLVd0BxTp2v+uoaeW7JfDvfU5kw6yp/
         UX1rpa31o3F3ePm6ucNUdU0NbTD/v5YkJmovk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773923153; x=1774527953;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=0qQivWpVp8aJ0G+OuJqncSanArkeWmdPzppoMAV3zIE=;
        b=KgMJiy4hC1bN/gfTcIIODJUQuHc5FNFdjBLHxjg0aVRXEY1Vaml/QcjdeZEFSsJjmf
         /3AWw0ajvf535eL6u5Skc2wHyCsBgPR8xIfOwIiaXJW5p7CmL0rPiIzSAqbUaenWZeHm
         See+fN6MlayhlF3ztV27RBvMFXMS/KCObjU3t9QF51rp3qDxehfIBaXT9Q6xj9CeHpNn
         tCrKe6EgrnJapCBR/3sfTGr2j4fUK3zU3rBKHc9TUqdqdSLpFAFDaV/YJ8NFSXcd4ZRk
         4qnvvrw5ZIzpdoBt9vL9yHPUjNNPhkpmpc1tTjQEvNMRH6xBWtpUlJL0ND7C0ssaJXdD
         7cxQ==
X-Gm-Message-State: AOJu0YzuDtWoaWHsR7w8GLVLxGM8lV1Gd7ShhwM7GqmPTGPc9PtUwm6G
	EJARQkWDcLCHtONkXZHYlKmiGVRq8M7OIWvEz9Ru5FzKRCSLBISl0xOaVbLZqPnlFgGw59miTIQ
	U2cFB
X-Gm-Gg: ATEYQzwo9aNdnf3LQM7Mgx3+4HYgKAM3e1Z5DxB09U7mKIIBgOTxEJI67xhBZLDy7co
	MXQwOhnablMYfCyBxbHL74tg/6FvUImqGWHH0d9fmnxJQL9VJdrL5ZIKWRhbzj7LTJnpFed/oJN
	EB9i/jf+fLi1NHLpG9FX9epAZMIeYZmeirVni+IEgBjE8n98Ea6FVYzer/dMhi95togTxWpGu+7
	OsVPrCjkHgbxyART4ig7K1vt52eo5pOIj8qapiw8wLkUoje2smJNIe2cZYpMB5x55qzzWRFessb
	ar8yY7fu87mw7Qqjq9W9xEZpXE+lwRfyrVxCQesDZ3NC6kcnWKr34b1DAFBdo8nq57QXU9axJZi
	RPmLuDEG5YWjAqtKmbn166cf4CqkjEmW56r07fZ35H0e0rJh9Vg2SiKjIdxgvbSU1AyLCrE9vS+
	zbvhOF1DVqBMfy9RtKl1PsZJaUMa63wCuZ7ivBwPDzJhSrsOQNPeEe/1lxYKvgXx+NKS69950=
X-Received: by 2002:a05:600c:8b65:b0:483:badb:618e with SMTP id 5b1f17b1804b1-486f44377dcmr117409865e9.8.1773923152313;
        Thu, 19 Mar 2026 05:25:52 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 1/4] x86/kexec: Stop hooking NMIs with trap_nop()
Date: Thu, 19 Mar 2026 12:25:46 +0000
Message-Id: <20260319122549.922724-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260319122549.922724-1-andrew.cooper3@citrix.com>
References: <20260319122549.922724-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

When FRED is active, it is not possible to hook NMIs like this.

NMI hooking in the crash path has undergone several revisions since its
introduction.  Notably since commit e7f147bf4ac7 ("x86/crash: Drop manual
hooking of exception_table[]") we use the regular nmi_callback()
infrastructure.

Instead of asserting that we don't enter do_nmi_crash() on the crashing CPU,
tolerate it and return early.  It's a marginally longer codepath but behaves
the same and is compatible with FRED.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

The other use of hooking the NMI handler like this is in play_dead() and
introduced by commit 73cb1383bf8d ("x86/idle: re-arrange dead-idle
handling").  It's unsafe, and the commit even mentions so for #MC.

On x86, we simply cannot free the per-cpu block for any CPU that hasn't been
put back into the wait-for-SIPI state.
---
 xen/arch/x86/crash.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/crash.c b/xen/arch/x86/crash.c
index 1e4b0eeff21b..04fd04393b29 100644
--- a/xen/arch/x86/crash.c
+++ b/xen/arch/x86/crash.c
@@ -37,14 +37,18 @@ static cpumask_t waiting_to_crash;
 static unsigned int crashing_cpu;
 static DEFINE_PER_CPU_READ_MOSTLY(bool, crash_save_done);
 
-/* This becomes the NMI handler for non-crashing CPUs, when Xen is crashing. */
-static int noreturn cf_check do_nmi_crash(
+/* This becomes the NMI handler for all CPUs when Xen is crashing. */
+static int cf_check do_nmi_crash(
     const struct cpu_user_regs *regs, int cpu)
 {
     stac();
 
-    /* nmi_shootdown_cpus() should ensure that this assertion is correct. */
-    ASSERT(cpu != crashing_cpu);
+    /*
+     * If we are the crashing CPU, do nothing.  We need to get back to the
+     * interrupted codepath to contine with the kexec transition.
+     */
+    if ( cpu == crashing_cpu )
+        return 1;
 
     /* Save crash information and shut down CPU.  Attempt only once. */
     if ( !this_cpu(crash_save_done) )
@@ -114,6 +118,8 @@ static int noreturn cf_check do_nmi_crash(
 
     for ( ; ; )
         halt();
+
+    unreachable();
 }
 
 static void nmi_shootdown_cpus(void)
@@ -130,11 +136,7 @@ static void nmi_shootdown_cpus(void)
 
     cpumask_andnot(&waiting_to_crash, &cpu_online_map, cpumask_of(cpu));
 
-    /*
-     * Disable IST for MCEs to avoid stack corruption race conditions, and
-     * change the NMI handler to a nop to avoid deviation from this codepath.
-     */
-    _set_gate_lower(&idt[X86_EXC_NMI], SYS_DESC_irq_gate, 0, &trap_nop);
+    /* Disable IST for MCEs to avoid stack corruption race conditions */
     set_ist(&idt[X86_EXC_MC], IST_NONE);
 
     set_nmi_callback(do_nmi_crash);
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 12:26:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 12:26:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257014.1551478 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3CRq-0008Da-Q5; Thu, 19 Mar 2026 12:25:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257014.1551478; Thu, 19 Mar 2026 12:25:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3CRq-0008CW-Lc; Thu, 19 Mar 2026 12:25:58 +0000
Received: by outflank-mailman (input) for mailman id 1257014;
 Thu, 19 Mar 2026 12:25: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=Yv1Q=BT=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1w3CRp-0007qy-PN
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 12:25:57 +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 c6c87e61-238e-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 13:25:55 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-486fd3a577eso2454285e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 05:25:55 -0700 (PDT)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-486f8c350aesm60831395e9.4.2026.03.19.05.25.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 19 Mar 2026 05:25:53 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c6c87e61-238e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1773923155; x=1774527955; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9p44d1QjTPa2JEIp8Q6GJVyP9/yGjHqxAPwdkkT/xok=;
        b=ButVIA7qQACsmmtZXOyCZTkpG/9yM4/ZMqjoHXCQWE33BBw1iWt5OBz5FRClTegjxH
         RWPbivp78mMWuJKo9eDPI+wmX32lGQUt5Mw7lD48TIltIGrdVJW7x2pIyQ2+NRJzDo+f
         SRjNxCUTheLPUoECcYuGg+WQDiv2sfM9n7cZc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773923155; x=1774527955;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=9p44d1QjTPa2JEIp8Q6GJVyP9/yGjHqxAPwdkkT/xok=;
        b=PF4D21Z3R8vZKr0gFuIMLkVkUnblW4X8IILk4SbAU8ABBnp2zYbK19Y4RytLElYHLV
         j7y07Sz9RUONCtYCv5M6dl2E+uSo+ta+P889UHcVM0fGfsvpz50CWy0iDl3ESVWVQc74
         v3JCtQ09uD4XLtdJqgXNHljoFm4pvg3OpTIsRW6KGgqSc3jWkSxN1+rVr95NDz/IZq1g
         M6IC0A2zo/y0gxHNzqLLP/y5j/eEd2lGmJLyQswG18nnlgY3Zm5OoVy2XTsqq+cU+ZGU
         PNPSbeMP+uPvo8b5y9nx8dEM5aRganUdOTgs9awgla2IfI9mjy1Lh7yBteFdavSlhJay
         0R+w==
X-Gm-Message-State: AOJu0YyA9heCCvK304QkCj+ct/2aOkcwIU1hpquZaOjQjTzZExE9EHRT
	zh6Rw+ndAfXG0x4l823/PdwEwWutQwlx+wlOI8ipD0fSMw1GckzdVlIsBqkkZFGA+GV1mQgLmFh
	2a9fj
X-Gm-Gg: ATEYQzxhe2wLM0XAYmlIjjEojwduunRxkiVqrBLSf7bD2KGvLu/YUE87WAnuRjnca6h
	9+k8GU02phEZHAvgiYkcQ42304/mr/n/tb1Bsbi1uVbGyW7VnIskTGhnLign0Ov47l/FgnRKizc
	tiJFKiSxgw73Ad/SmuWGoBbmwhIAu6nXJa1pDyiE5Ppi6I4iN3JOgV49PNTZEh1qrRdeqfuRCiu
	NoAoZPta+0p9fv8QTKz/dMF5Qo2Aqlj+BFnvpY4EsJ9JVWxGsRqSlfTsJWtYerE+F9eytUWJ6f5
	d+mUC3wCFpWB1kpJPvYSGs0/eyHz5+0HBe42Q7iQ9b8gTyP63tgUyCkkbIyAxY89AhSCn8JMJ+a
	zAPsLfyf8cKTcbxkpAgLmXBcoV9RpuyvIVffREsbcMi5UNUzCs3TP0oLQWxfVJa12ktsC1rKc5q
	gGdGiQMJrLFqKHfac6hjzjlQmBfvcBiUteCNIoTAWc6d905P9Hvslt/Oe5qvbADqY0rWkdtZI=
X-Received: by 2002:a05:600c:4507:b0:486:fb69:4960 with SMTP id 5b1f17b1804b1-486fb694a11mr28642655e9.19.1773923154081;
        Thu, 19 Mar 2026 05:25:54 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 4/4] x86/kexec: Disable FRED earlier in kexec_reloc()
Date: Thu, 19 Mar 2026 12:25:49 +0000
Message-Id: <20260319122549.922724-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260319122549.922724-1-andrew.cooper3@citrix.com>
References: <20260319122549.922724-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With FRED just as with IDT, it's unsafe to run the exception handlers after
switching stack.

To remove this unsafe window, %cr4 needs clearing earlier.  In turn, we may
need to switch to PCID 0 earlier too in order to be able to clear CR4.PCIDE.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

The pagetable switch cannot easily be moved to be earlier, as that leaves a
period of time where FRED is enabled but all stack pointers point to
non-existent mappings.
---
 xen/arch/x86/x86_64/kexec_reloc.S | 22 +++++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/x86_64/kexec_reloc.S b/xen/arch/x86/x86_64/kexec_reloc.S
index 7a6dd2cbe736..81da81a827de 100644
--- a/xen/arch/x86/x86_64/kexec_reloc.S
+++ b/xen/arch/x86/x86_64/kexec_reloc.S
@@ -54,6 +54,21 @@ FUNC(kexec_reloc, PAGE_SIZE)
         lidt    (%rsp)
         add     $10, %rsp
 
+        /* Move to PCID 0 if necessary, as a prerequisite to clearing CR4.PCIDE */
+        mov     %cr3, %rax
+        test    $0xfff, %eax
+        jz      1f
+        and     $~0xfff, %rax
+        mov     %rax, %cr3
+1:
+
+        /*
+         * Set CR4 to PAE only.  This may disable FRED, which must happen
+         * before switching off Xen's stack.
+         */
+        mov     $X86_CR4_PAE, %eax
+        mov     %rax, %cr4
+
         /*
          * Move to the identity mapped stack.
          *
@@ -86,13 +101,6 @@ FUNC(kexec_reloc, PAGE_SIZE)
         orl     $(X86_CR0_PG | X86_CR0_PE), %eax
         movq    %rax, %cr0
 
-        /*
-         * Set cr4 to a known state:
-         *  - physical address extension enabled
-         */
-        movl    $X86_CR4_PAE, %eax
-        movq    %rax, %cr4
-
         movq    %rdx, %rdi
         call    relocate_pages
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 12:26:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 12:26:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257013.1551474 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3CRq-00087K-Gu; Thu, 19 Mar 2026 12:25:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257013.1551474; Thu, 19 Mar 2026 12:25:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3CRq-00086P-By; Thu, 19 Mar 2026 12:25:58 +0000
Received: by outflank-mailman (input) for mailman id 1257013;
 Thu, 19 Mar 2026 12:25: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=Yv1Q=BT=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1w3CRp-0007qy-4g
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 12:25: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 c5a0426f-238e-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 13:25:53 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-482f454be5bso19531495e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 05:25:53 -0700 (PDT)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-486f8c350aesm60831395e9.4.2026.03.19.05.25.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 19 Mar 2026 05:25:51 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c5a0426f-238e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1773923152; x=1774527952; 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=Rf11YSHnRxDOMSevtCdzvsJWQN4vjp+wOdoo6LaGDtg=;
        b=MZFVv5xZT7CvEY/2h26tHPlHiui4hnXAxrUWZPYERBlQC6RKxU1dsZyPZhbbFPEmAz
         lMzZKlCwfxeXojIXfVlaCjVM8R64rwNNr7BSY93cGAnpSiQQCd3yI6G++VGvM6wvOPtk
         G70Z67WEnl6ubdFTW5xIdvHAPrtmjQNkNGjXs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773923152; x=1774527952;
        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=Rf11YSHnRxDOMSevtCdzvsJWQN4vjp+wOdoo6LaGDtg=;
        b=dShER4IWE+yypL+/VFH393M50lbo7V/kuhKvIN6DQ4wTeuu3lqptFS2nfV8O/l3RHu
         otDLdqeYvDkuz5gU7EdTAzDfE56zAjmnKrXIA3kCi1GcKtRaHUTcmjUpyP69WtHAb+R/
         5BkdKE08huVynIUwB0BQFqII9rDrIhfihPE3xKW5QXwVOl9abzyJnj6QqhB8scztMFdu
         kAu19axiCCQQGpBxrL1TLIPUof9rufNJSPbY3IcyHYybvKBIKW7qEbwF51wLR7n03OlQ
         rd2oUvNDnfYtFwlQ4jit6GkKYLEmXBUA0HN2H8grUyoUauKHDy6uAQgwMBnUVac9AAwc
         927A==
X-Gm-Message-State: AOJu0YzTqZ2SqO1JhfhNpFRngRcYv0wgywYNTg8AMUiQqfID7C2HPTD6
	j3MS/Y+Dc7lrUfpwSTx1pdlddBqj9vgCnLgHc4VOvpbm5JujS9vu6hTp6whihtT4BEOuZAJ8kpM
	e0dvt
X-Gm-Gg: ATEYQzyVrhN+g9aqBvfK+/cnCF0sfsy3CXWUIQRN6dXpSrLhbI/PF7Ez72C4jnFJkE6
	GXcDbTr6z1rCoI36iGhICEvJTvemzwZXR+9TEfO2Rhy5gQwy2QhHdNWC7ppGx+7DvxiLy9GaIpH
	3BMlHi1noRxZP/BhWBEd6cC5teBrV37CUM62Cel45Db93OFlxSsc9pfbRXB3ZNzCNWXfkNMV7rq
	SJ3iPRukWzMIyTBcVy++J0+eT7MSPoaDNwLjkXZU71SrumQFWK0Hdle6wU/cXSZNk/vG4L917jT
	n9ZT5epxt+g3sGjCPNKYjHYIB8XhOMwyHk6ROdqV06if+usrarJPubx1HKV5L8Jtj7+Psb7ZZBy
	vrYneGn81QiJoYW/IkX9KhU3XxwHLQ8HsFRBTqxP/XE8l6H9sHugSOdDAqLLexRyTaSWvDRW65t
	Sf3AuzIy5ry+Aop3V2aCxtNAXY4kCeWfGGVXzTJSSKYoTN/FOpe09eo0+vcWdJkdN5v4gzalo=
X-Received: by 2002:a05:600c:3f10:b0:485:3c2e:60d5 with SMTP id 5b1f17b1804b1-486f8b0b482mr56466255e9.2.1773923151735;
        Thu, 19 Mar 2026 05:25:51 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 0/4] x86/kexec: Improvements for FRED
Date: Thu, 19 Mar 2026 12:25:45 +0000
Message-Id: <20260319122549.922724-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

Kexec with FRED happens to already function.

Looking at the logic, several unsafe actions are occuring.  Fix the worst of
them.

Andrew Cooper (4):
  x86/kexec: Stop hooking NMIs with trap_nop()
  x86/kexec: Fix and expands comments for kexec_reloc()
  x86/kexec: Invalidate the IDT earlier in kexec_reloc()
  x86/kexec: Disable FRED earlier in kexec_reloc()

 xen/arch/x86/crash.c              | 20 +++++-----
 xen/arch/x86/x86_64/kexec_reloc.S | 62 ++++++++++++++++++++++---------
 2 files changed, 55 insertions(+), 27 deletions(-)

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 12:26:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 12:26:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257012.1551470 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3CRq-00084J-9T; Thu, 19 Mar 2026 12:25:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257012.1551470; Thu, 19 Mar 2026 12:25:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3CRq-00084B-4u; Thu, 19 Mar 2026 12:25:58 +0000
Received: by outflank-mailman (input) for mailman id 1257012;
 Thu, 19 Mar 2026 12:25:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Yv1Q=BT=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1w3CRo-0007dl-I6
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 12:25:56 +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 c673dd97-238e-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 13:25:54 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4852afd42ceso6482595e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 05:25:54 -0700 (PDT)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-486f8c350aesm60831395e9.4.2026.03.19.05.25.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 19 Mar 2026 05:25:52 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c673dd97-238e-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1773923154; x=1774527954; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sNvCSrOBffuTtzSMMrot8orJxzRk8BMjuPIbTAHvYz0=;
        b=RNlQOr+bemU/6niK4DzhTF2Od9gVL/MBhqUOzn9suiBZguQt2vtiVoFwiKR4/2xtbC
         A9VpZ4XFwBsgFWDM3VVCqztOJMs7T3LjMinREbNG8jCyanwu4sMEUa4/4kXa2BpTjIsM
         73Zyb3VBSt+4q0DCyyReAo7IUDb6JS+rOnHfI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773923154; x=1774527954;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=sNvCSrOBffuTtzSMMrot8orJxzRk8BMjuPIbTAHvYz0=;
        b=ZYcwk3kieH2lg2UFwiMEaZRVY30TO2m3TbPIgmW/jDik0g3PtyFaDC7sgVMbR59tI4
         yK8bRCNYG678g2ieGeqy9Wk8ih9ClxpoyaJdwD60kTvWseaireafMaRg9vaoivXOtNox
         TbV/uEUF9YiOEkRqNv9iYjbQz+Jef/UT5+fN9nOdKjX7YY+ZYXk5Ko4hYZwOiVW9RirC
         vThzSGK1Gaxf+7HXFsVkc9pMI8+Z7ckOswtf6nIRklJeZH8l6zYfr4/+wq2fO9TpBJ42
         dQDKr7D7zEHHKk/c3m6lv58QhXnM9fW9+CUwDLDRO8aQmC8RPUKY2E5vSg47AP7wbkL1
         oX9w==
X-Gm-Message-State: AOJu0YxNyqpbRK5ajzhPjDcBCqlEcoM1ff+muyFXL+i1sZ4qw8/bVd9g
	gs1jO5JT6jA262MKcwAEK25kzXJd4DpoAzDyuSsxDoMzjZswIDAYlPM7FQ52ZJdx06J2yrGCiaI
	3Ey7u
X-Gm-Gg: ATEYQzwGb2JlxZUqeKPYarVO3QR7lKAVuHFX+17f8Rc040d/gXrHR4sG9LCAJ629cI+
	ht1VEL+XwSTSFmr4wOXUTTqAPIxzaJJChmemI4DP+IcqHeizxRYa24LPotjwn7ksD+4tilbPkKh
	AK2jnMJhQq7TTlP+nBTxNkTWRj0F0lTzEzPnnJtx5TLNA3Ewd7yLk2OY42YQBPXJzdZfZV0fDp5
	GlsBCfJ2/tl3zUonNe0eC65wGwPmqYrCbIC0FBjFX0C3iEd0CvtfbQ9ZEaW1pz4OkgcJNF2f00y
	N/zeXvssYt517ZI2MFryK/Bd4fOJtTY4H/aAqBmSBmYo4Rh1qjaSvrm2vf+WzRmVPtjLlJQJD5y
	RsU+jW51SGAZ3FWZnQVswz4eJyRP8e5BZ0MQ3RdboFytXzH51LvcksPsTgh6EDb2UvaLAGKVMrx
	C7ujO41TgLHLAaEk74xg/X6IRnyf5/fB0atZ/tvsiX8fRqEzlJ/j3Tjdg8l+IoPbtOoIj019A=
X-Received: by 2002:a05:600c:4ed4:b0:485:3c2d:d02b with SMTP id 5b1f17b1804b1-486f4444050mr121170235e9.22.1773923153070;
        Thu, 19 Mar 2026 05:25:53 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 2/4] x86/kexec: Fix and expands comments for kexec_reloc()
Date: Thu, 19 Mar 2026 12:25:47 +0000
Message-Id: <20260319122549.922724-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260319122549.922724-1-andrew.cooper3@citrix.com>
References: <20260319122549.922724-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The order of shutdown is delicate.  Explain things a little better.

Fix two comments about leaving Long Mode.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/x86_64/kexec_reloc.S | 23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/x86_64/kexec_reloc.S b/xen/arch/x86/x86_64/kexec_reloc.S
index b52d31a654e0..d0951ea1e1c4 100644
--- a/xen/arch/x86/x86_64/kexec_reloc.S
+++ b/xen/arch/x86/x86_64/kexec_reloc.S
@@ -27,6 +27,14 @@
         .section .text.kexec, "ax", @progbits
         .code64
 
+        /*
+         * kexec_reloc() is entered in it's natural position within Xen.
+         *
+         * A copy of .text.kexec is identity mapped at %rdi within the
+         * pagetables in %rsi.  Xen's .text is mapped into %rsi at it's high
+         * alias allowing to pivot, but most other things including the stacks
+         * are not mapped.
+         */
 FUNC(kexec_reloc, PAGE_SIZE)
         /* %rdi - code page maddr */
         /* %rsi - page table maddr */
@@ -36,10 +44,17 @@ FUNC(kexec_reloc, PAGE_SIZE)
 
         movq    %rcx, %rbp
 
-        /* Setup stack. */
+        /*
+         * Move to the identity mapped stack.
+         *
+         * Note this mapping doesn't exist until the pagetable switch.
+         */
         leaq    (.Lreloc_stack_base - kexec_reloc)(%rdi), %rsp
 
-        /* Load reloc page table. */
+        /*
+         * Move to the relocation pagetables.  Xen's .text is mapped allowing
+         * the pivot, but very little else is.
+         */
         movq    %rsi, %cr3
 
         /* Jump to identity mapped code. */
@@ -153,12 +168,12 @@ FUNC_LOCAL(compatibility_mode)
         movl    %eax, %gs
         movl    %eax, %ss
 
-        /* Disable paging and therefore leave 64 bit mode. */
+        /* Disable paging and therefore leave long mode. */
         movl    %cr0, %eax
         andl    $~X86_CR0_PG, %eax
         movl    %eax, %cr0
 
-        /* Disable long mode */
+        /* Clear EFER.LME */
         movl    $MSR_EFER, %ecx
         rdmsr
         andl    $~EFER_LME, %eax
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 12:37:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 12:37:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257058.1551495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Cd1-0003Fd-Ux; Thu, 19 Mar 2026 12:37:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257058.1551495; Thu, 19 Mar 2026 12:37: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 1w3Cd1-0003FW-S5; Thu, 19 Mar 2026 12:37:31 +0000
Received: by outflank-mailman (input) for mailman id 1257058;
 Thu, 19 Mar 2026 12:37: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=6WKi=BT=bounce.vates.tech=bounce-md_30504962.69bbee02.v1-4a2b8f350ce14be786486e83321aca5e@srs-se1.protection.inumbo.net>)
 id 1w3Cd0-0003DN-H6
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 12:37:30 +0000
Received: from mail136-12.atl41.mandrillapp.com
 (mail136-12.atl41.mandrillapp.com [198.2.136.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 61347543-2390-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 13:37:24 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-12.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4fc4w30F2Tz5QkWpq
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 12:37:23 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 4a2b8f350ce14be786486e83321aca5e; Thu, 19 Mar 2026 12:37: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: 61347543-2390-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773923843; x=1774193843;
	bh=VasXoOCNPjEl5FNB56RHCMircohbyJZHP56MPTs32Ps=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=kIhrt3JTlEqmWapdAvtE778Lc3c02FFTqSX8RSCm4L5OSwK120rOZexh/Fb+rXbVT
	 HLSjbHExGcs/5gBzLF3RCxemQjPs81labcdtJmV60yR7JCc/N1touvWEuG2kk1bDbq
	 LGyrYTqZzf0MAgG4cSoq7sDY4RVhhvSkVb8kpqEeOBv1jxLk/K7+2wGhT55OgqqIom
	 g1SAUMM0ENpp+T2sX3Zg/uFosBWH5QyTAgb6mCYd04RxXddsVIhiOCWQ9wYHkpOlzM
	 IIL7WhaRJTXl6mfViQ6X51ilCZ0cpmnFdehDZV51hDSlR1Xtez7GTP+CrLw3qaBfV+
	 0NnRzAW7oPGhQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773923843; x=1774184343; i=anthony.perard@vates.tech;
	bh=VasXoOCNPjEl5FNB56RHCMircohbyJZHP56MPTs32Ps=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=McgI4Q2ciafGhCUGwzQ9eKKp5O1WsVaVkWaxHGH5xIXIfDqWy6QAsf4A90tHXrthn
	 4dPvSyB99+mtm4JycckY6pEAIwDLdsqrCtTA2qoiljuC3kf/BoKOEvNXVkK59WSnws
	 46UrwbRO9PJtRhMI6sLfn8y7gZgoKkc6d5I2rrV5DGp2gWuQflyupJeNdz8877ivB/
	 yE9r8PQEHFDitwnq5v7FCGDpJdXpABCMoQeXKlV9qggA5cM+L0fDV75qJDx14EWPYW
	 /oqjU/XcC6G3Ahwd2U76mMAljveZuTR2k5X/hvLREW8Z0agPy9FT1rv3PwVQQMg9n4
	 TJyMcrmJOZB3g==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2010/11]=20tools/xl:=20add=20xl=20commands=20for=20xenstore=20quota=20operations?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773923841955
To: "Juergen Gross" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org
Message-Id: <abvuAQJkihgFvSzj@l14>
References: <20260305135208.2208663-1-jgross@suse.com> <20260305135208.2208663-11-jgross@suse.com>
In-Reply-To: <20260305135208.2208663-11-jgross@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.4a2b8f350ce14be786486e83321aca5e?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260319:md
Date: Thu, 19 Mar 2026 12:37:22 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Mar 05, 2026 at 02:52:07PM +0100, Juergen Gross wrote:
> Add "xl xenstore-quota-get" and "xl xenstore-quota-set" commands for
> retrieving and setting global and per-domain Xenstore quota.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>  tools/xl/Makefile      |  1 +
>  tools/xl/xl.h          |  2 +
>  tools/xl/xl_cmdtable.c | 10 +++++
>  tools/xl/xl_parse.c    | 25 ++++++++++++
>  tools/xl/xl_parse.h    |  1 +
>  tools/xl/xl_xsquota.c  | 88 ++++++++++++++++++++++++++++++++++++++++++
>  6 files changed, 127 insertions(+)
>  create mode 100644 tools/xl/xl_xsquota.c
> 
> diff --git a/tools/xl/Makefile b/tools/xl/Makefile
> index 973ff0e1a2..e4eed8be13 100644
> --- a/tools/xl/Makefile
> +++ b/tools/xl/Makefile
> @@ -24,6 +24,7 @@ XL_OBJS += xl_sched.o xl_pci.o xl_vcpu.o xl_cdrom.o xl_mem.o
>  XL_OBJS += xl_info.o xl_console.o xl_misc.o
>  XL_OBJS += xl_vmcontrol.o xl_saverestore.o xl_migrate.o
>  XL_OBJS += xl_vdispl.o xl_vsnd.o xl_vkb.o
> +XL_OBJS += xl_xsquota.o
>  
>  $(XL_OBJS): CFLAGS += $(CFLAGS_libxentoollog)
>  $(XL_OBJS): CFLAGS += $(CFLAGS_XL)
> diff --git a/tools/xl/xl.h b/tools/xl/xl.h
> index 9000df00de..0efc07a6ba 100644
> --- a/tools/xl/xl.h
> +++ b/tools/xl/xl.h
> @@ -217,6 +217,8 @@ int main_psr_mba_set(int argc, char **argv);
>  int main_psr_mba_show(int argc, char **argv);
>  #endif
>  int main_qemu_monitor_command(int argc, char **argv);
> +int main_xsquota_get(int argc, char **argv);
> +int main_xsquota_set(int argc, char **argv);
>  
>  void help(const char *command);
>  
> diff --git a/tools/xl/xl_cmdtable.c b/tools/xl/xl_cmdtable.c
> index 06a0039718..3de12b12ae 100644
> --- a/tools/xl/xl_cmdtable.c
> +++ b/tools/xl/xl_cmdtable.c
> @@ -649,6 +649,16 @@ const struct cmd_spec cmd_table[] = {
>        "-h print this help\n"
>      },
>  #endif
> +    { "xenstore-quota-get",
> +      &main_xsquota_get, 0, 0,
> +      "List global or domain specific Xenstore quota data",

Maybe saying "quota values" instead of "quota data" would be slightly
better. Or maybe even "quotas" would be enough.

> +      "<Domain>|-g",
> +    },
> +    { "xenstore-quota-set",
> +      &main_xsquota_set, 0, 1,
> +      "Set global or domain specific Xenstore quota data",
> +      "<Domain>|-g <quota>=<val>...",
> +    },
>  };
>  
>  const int cmdtable_len = ARRAY_SIZE(cmd_table);
> diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
> index 1a2ea8b5d5..934ad4eeef 100644
> --- a/tools/xl/xl_parse.c
> +++ b/tools/xl/xl_parse.c
> @@ -1314,6 +1314,31 @@ out:
>      return ret;
>  }
>  
> +int parse_xsquota_item(const char *buf, struct libxl_xs_quota_item *item)
> +{
> +    const char *eq;
> +    char *endptr;
> +
> +    eq = strchr(buf, '=');
> +    if (!eq) {
> +        fprintf(stderr, "Quota specification \"%s\" lacks \"=\".\n", buf);
> +        return ERROR_INVAL;
> +    }
> +    errno = 0;
> +    item->name = strndup(buf, eq - buf);
> +    if (!item->name)
> +        return ERROR_NOMEM;
> +    item->val = strtoul(eq + 1, &endptr, 0);
> +    if (errno || !eq[1] || *endptr) {

I think we also need to check that the value returned by strtoul() can
actually be stored in `item->val`. It would be misleading to accept a
quota value and store a different one.

> +        fprintf(stderr,
> +                "Quota specification \"%s\" uses illegal value \"%s\".\n",
> +                buf, eq);
> +        return ERROR_INVAL;
> +    }
> +
> +    return 0;
> +}
> +
>  void parse_config_data(const char *config_source,
>                         const char *config_data,
>                         int config_len,
> diff --git a/tools/xl/xl_parse.h b/tools/xl/xl_parse.h
> index fe0d586cdd..57bb43a067 100644
> --- a/tools/xl/xl_parse.h
> +++ b/tools/xl/xl_parse.h
> @@ -36,6 +36,7 @@ int parse_nic_config(libxl_device_nic *nic, XLU_Config **config, char *token);
>  int parse_vdispl_config(libxl_device_vdispl *vdispl, char *token);
>  int parse_vsnd_item(libxl_device_vsnd *vsnd, const char *spec);
>  int parse_vkb_config(libxl_device_vkb *vkb, char *token);
> +int parse_xsquota_item(const char *buf, struct libxl_xs_quota_item *item);
>  
>  int match_option_size(const char *prefix, size_t len,
>                        char *arg, char **argopt);
> diff --git a/tools/xl/xl_xsquota.c b/tools/xl/xl_xsquota.c
> new file mode 100644
> index 0000000000..eaf19feac8
> --- /dev/null
> +++ b/tools/xl/xl_xsquota.c
> @@ -0,0 +1,88 @@
> +/* SPDX-License-Identifier: LGPL-2.1-only */
> +
> +#include <stdio.h>
> +#include <stdlib.h>
> +#include <libxl.h>
> +#include <libxlutil.h>
> +
> +#include "xl.h"
> +#include "xl_utils.h"
> +#include "xl_parse.h"
> +
> +int main_xsquota_get(int argc, char **argv)
> +{
> +    libxl_xs_quota_set q;
> +    unsigned int i;
> +    int rc;

You should call libxl_xs_quota_set_init(&q). (That would avoid a segv
later, when _disposed() is called.)

> +
> +    if (argc != 2) {
> +        fprintf(stderr, "Domain or \"-g\" must be specified.\n");
> +        return EXIT_FAILURE;
> +    }
> +
> +    if (!strcmp(argv[1], "-g")) {
> +        rc = libxl_xsquota_global_get(ctx, &q);
> +    } else {
> +        uint32_t domid = find_domain(argv[1]);
> +
> +        rc = libxl_xsquota_domain_get(ctx, domid, &q);
> +    }
> +
> +    if (rc) {
> +        fprintf(stderr, "Quota could not be obtained.\n");
> +        return EXIT_FAILURE;
> +    }
> +
> +    printf("Quota name           Quota value\n");
> +    printf("--------------------------------\n");
> +    for (i = 0; i < q.num_quota; i++)
> +        printf("%-20s %8u\n", q.quota[i].name, q.quota[i].val);
> +
> +    libxl_xs_quota_set_dispose(&q);
> +
> +    return EXIT_SUCCESS;
> +}
> +
> +int main_xsquota_set(int argc, char **argv)
> +{
> +    unsigned int i;
> +    libxl_xs_quota_set q;
> +    int rc = EXIT_FAILURE;
> +
> +    if (argc < 3) {
> +        fprintf(stderr, "Not enough parameters.\n");

I think you can call help("xenstore-quota-set") to provide the needed
info about what the parameters are.

> +        return EXIT_FAILURE;
> +    }
> +
> +    q.num_quota = argc - 2;
> +    q.quota = calloc(q.num_quota, sizeof(*q.quota));
> +    if (!q.quota) {
> +        fprintf(stderr, "Memory allocation failure!\n");
> +        goto err;
> +    }

There's `xcalloc() that can be use instead. It does check for memory
allocation failure.

(And that would avoid a segv in libxl_xs_quota_set_dispose() as
num_quota is set before quota is allocated.)


Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 12:44:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 12:44:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257066.1551505 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Cjk-0004sj-LG; Thu, 19 Mar 2026 12:44:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257066.1551505; Thu, 19 Mar 2026 12:44:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Cjk-0004sc-Hd; Thu, 19 Mar 2026 12:44:28 +0000
Received: by outflank-mailman (input) for mailman id 1257066;
 Thu, 19 Mar 2026 12:44:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1n9k=BT=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1w3Cjj-0004rk-4c
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 12:44:27 +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 5c7827b8-2391-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 13:44:25 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-66873d8cc9dso531435a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 05:44:25 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.25.82]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b97f173a3ccsm427458766b.59.2026.03.19.05.44.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 19 Mar 2026 05:44:24 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5c7827b8-2391-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773924265; x=1774529065; 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=1x/q7Pzqhcox5qVHHVmOplx8xc0kpk20cjnS3zV1gJ8=;
        b=nFhn9nFCIeHQuAFnMpQlnFXYmqv1KeLv60aa+kbzzbI6bMNXQJ+pDDddJSgEpFrdEe
         cAouMUg0VZYsJnr2k2kdHC7+BWxn2rwd+01w96TeA259x2gIhWPuPiJRS62qTS3UQZc2
         AYgXX7CkzWU4G9bwmi1OVlAieODYLzuTYuJAitktVdxt7drapADNGJh5+n+l9M9a/MIW
         WE7HURhe3s7hm52A2xVMpX0mmO7QCmCGu/xI9HbI3gyw2hAxJ1rw7dqdDUvnI82mwMs0
         y2IGEwP7ZnJO5JU5GjXcB0NeGSBY16dsmJJk/UoukBm6YW83IZIPiFaV2812fEyq+fyu
         9BlA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773924265; x=1774529065;
        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=1x/q7Pzqhcox5qVHHVmOplx8xc0kpk20cjnS3zV1gJ8=;
        b=UAPTyB2lwgUF8wMeHA67IUxMkEv8yjL/1oPnlDNG1O5pvO+APu4wz3SBsJywkDPBCf
         WQkgOaaPnecZnN5+csciNy8YqyTczDU5sZ2CMNRy/lAhflUi50fVCQY6XhqrTPnuFk1F
         s2pKdUkrOCXoR5MrLPhE9TJKSim3zLK2trPuoLncNLihOyA1bZPRYE+LwivPX1My5kLt
         j1HGyP8PIVWUtvi3pQSAnsl/Fd1u6bp8C+nIQ+ydSVMZcPeO1aWtce1ipDdOwgDKkl4D
         hCO36RWqQSz1bPEgHEB1D5itILKemIhjji72cW3XKseAai4A1InAyRP9/8fvFJG5u4yK
         HSVQ==
X-Gm-Message-State: AOJu0Yym4X40VqaN4ZLYf7ShdRuiDbfgPxcTcybnrwO3s3pWKc4qovJn
	f9xrDqZ2i9Mm8uUCotHRH8oBh1ucM5EenM7aX85Hwl1CDRwLXmWkYshWqDKLsQ==
X-Gm-Gg: ATEYQzyP2fGKrcoVZDCkyBoV7rp3XzG3sGCzXY748+y9rzDTnBNnuokipmqxI0oCFpR
	xyeOi1MjESJYmep/IHaoZ7GAz699WJkOkFtzz794D2UUrtuX0iOTqlEWIKQBNGRXE5eNr0Jre9o
	wQnW/LT4e6wSg0pRUJyuGl4kormLXJoeQRv5DQzLWSoikHarfQLoz9oCksmf3SGhGNUOWJoeur6
	O4JxldYhvxp94mAD3CN1i1fLgi9sD7apMhoa07b0bpLdYve51LHBIcPe60+CVdZvJpPP9NxGnAa
	IAHedf/yFiGEWzUjq8UjUAQohZoR4g2agGjEeQ9F8JHCzU9eE5h/bix3fnj0epOmhkDjiPLBPi1
	pwo09GKr089gDE5oDr4EZVZmu6VWwIJhwggcYtsJkKBWnCVtWhs9Y4kjFdhYw9UzOv6CRhIAnap
	lWCtqjaGvdkbSifQXrFRNth9KqMg==
X-Received: by 2002:a17:907:3e83:b0:b97:1d24:bfed with SMTP id a640c23a62f3a-b97f4ab766emr468172166b.41.1773924264359;
        Thu, 19 Mar 2026 05:44:24 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Dario Faggioli <dfaggioli@suse.com>,
	Juergen Gross <jgross@suse.com>,
	George Dunlap <gwd@xenproject.org>
Subject: [RFC PATCH] xen: handle domain_shutdown() return values
Date: Thu, 19 Mar 2026 14:42:13 +0200
Message-ID: <95dacecdce8f8417562548e16a4d3e11c41a3f27.1773923242.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Propagate domain_shutdown() return codes through the shutdown paths
which can still report errors to their callers, and log explicit
failures in fire-and-forget paths instead of silently discarding the
result.

This makes the shutdown contract explicit for callers which can report
errors, while preserving observable diagnostics for the remaining
fire-and-forget paths.

It also fixes MISRA Dir 4.7 and Rule 17.7 violations by ensuring that
the returned status is tested or otherwise used.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Link to discussion: https://patchew.org/Xen/cover.1748848482.git.mykola._5Fkvach@epam.com/7bd75ecfff5b0a75ea5abd7cc4934582d7e1250c.1748848482.git.mykola._5Fkvach@epam.com/#90048f71-8313-4110-924c-f956a2bec5a0@suse.com
---
 xen/arch/arm/vpsci.c    | 10 ++++++++--
 xen/arch/x86/compat.c   |  3 +--
 xen/arch/x86/hvm/dm.c   |  3 +--
 xen/arch/x86/hvm/hvm.c  | 13 +++++++++++--
 xen/common/domain.c     |  9 +++++++--
 xen/common/sched/core.c |  9 +++++++--
 6 files changed, 35 insertions(+), 12 deletions(-)

diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
index 7ba9ccd94b..03b4cb0986 100644
--- a/xen/arch/arm/vpsci.c
+++ b/xen/arch/arm/vpsci.c
@@ -188,13 +188,19 @@ static int32_t do_psci_0_2_migrate_info_type(void)
 static void do_psci_0_2_system_off( void )
 {
     struct domain *d = current->domain;
-    domain_shutdown(d,SHUTDOWN_poweroff);
+    int rc = domain_shutdown(d, SHUTDOWN_poweroff);
+
+    if ( unlikely(rc) )
+        gprintk(XENLOG_ERR, "PSCI SYSTEM_OFF failed: rc=%d\n", rc);
 }
 
 static void do_psci_0_2_system_reset(void)
 {
     struct domain *d = current->domain;
-    domain_shutdown(d,SHUTDOWN_reboot);
+    int rc = domain_shutdown(d, SHUTDOWN_reboot);
+
+    if ( unlikely(rc) )
+        gprintk(XENLOG_ERR, "PSCI SYSTEM_RESET failed: rc=%d\n", rc);
 }
 
 static int32_t do_psci_1_0_features(uint32_t psci_func_id)
diff --git a/xen/arch/x86/compat.c b/xen/arch/x86/compat.c
index 217b5b1fcc..1c203a028f 100644
--- a/xen/arch/x86/compat.c
+++ b/xen/arch/x86/compat.c
@@ -39,8 +39,7 @@ long do_sched_op_compat(int cmd, unsigned long arg)
     case SCHEDOP_shutdown:
         TRACE_TIME(TRC_SCHED_SHUTDOWN,
                    current->domain->domain_id, current->vcpu_id, arg);
-        domain_shutdown(current->domain, (u8)arg);
-        break;
+        return domain_shutdown(current->domain, (u8)arg);
 
     default:
         return -ENOSYS;
diff --git a/xen/arch/x86/hvm/dm.c b/xen/arch/x86/hvm/dm.c
index 3b53471af0..e32338efae 100644
--- a/xen/arch/x86/hvm/dm.c
+++ b/xen/arch/x86/hvm/dm.c
@@ -545,8 +545,7 @@ int dm_op(const struct dmop_args *op_args)
         const struct xen_dm_op_remote_shutdown *data =
             &op.u.remote_shutdown;
 
-        domain_shutdown(d, data->reason);
-        rc = 0;
+        rc = domain_shutdown(d, data->reason);
         break;
     }
 
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 4d37a93c57..d3e5dcc30f 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -1728,8 +1728,13 @@ void hvm_vcpu_down(struct vcpu *v)
     /* ... Shut down the domain if not. */
     if ( online_count == 0 )
     {
+        int rc;
+
         gdprintk(XENLOG_INFO, "All CPUs offline -- powering off.\n");
-        domain_shutdown(d, SHUTDOWN_poweroff);
+
+        rc = domain_shutdown(d, SHUTDOWN_poweroff);
+        if ( unlikely(rc) )
+            gdprintk(XENLOG_ERR, "Failed to power off: rc=%d\n", rc);
     }
 }
 
@@ -1758,12 +1763,16 @@ void hvm_triple_fault(void)
     struct vcpu *v = current;
     struct domain *d = v->domain;
     u8 reason = d->arch.hvm.params[HVM_PARAM_TRIPLE_FAULT_REASON];
+    int rc;
 
     gprintk(XENLOG_ERR,
             "Triple fault - invoking HVM shutdown action %d\n",
             reason);
     vcpu_show_execution_state(v);
-    domain_shutdown(d, reason);
+    rc = domain_shutdown(d, reason);
+    if ( unlikely(rc) )
+        gprintk(XENLOG_ERR,
+                "Failed to shut down after triple fault: rc=%d\n", rc);
 }
 
 void hvm_inject_event(const struct x86_event *event)
diff --git a/xen/common/domain.c b/xen/common/domain.c
index ab910fcf93..13198bcca5 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1355,6 +1355,8 @@ int domain_kill(struct domain *d)
 
 void __domain_crash(struct domain *d)
 {
+    int rc;
+
     if ( d->is_shutting_down )
     {
         /* Print nothing: the domain is already shutting down. */
@@ -1371,7 +1373,10 @@ void __domain_crash(struct domain *d)
                d->domain_id, current->domain->domain_id, smp_processor_id());
     }
 
-    domain_shutdown(d, SHUTDOWN_crash);
+    rc = domain_shutdown(d, SHUTDOWN_crash);
+    if ( unlikely(rc) )
+        printk(XENLOG_ERR
+               "Failed to shut down crashed domain %pd: rc=%d\n", d, rc);
 }
 
 
@@ -2194,7 +2199,7 @@ long common_vcpu_op(int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
 
         if ( !rc ) /* Last vcpu going down? */
         {
-            domain_shutdown(d, SHUTDOWN_poweroff);
+            rc = domain_shutdown(d, SHUTDOWN_poweroff);
             break;
         }
 
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index a57d5dd929..6df631d925 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -1537,6 +1537,7 @@ static void cf_check domain_watchdog_timeout(void *data)
      */
     struct domain *d = _p((unsigned long)data & PAGE_MASK);
     unsigned int id = (unsigned long)data & ~PAGE_MASK;
+    int rc;
 
     BUILD_BUG_ON(alignof(*d) < PAGE_SIZE);
 
@@ -1544,7 +1545,11 @@ static void cf_check domain_watchdog_timeout(void *data)
         return;
 
     printk("Watchdog timer %u fired for %pd\n", id, d);
-    domain_shutdown(d, SHUTDOWN_watchdog);
+
+    rc = domain_shutdown(d, SHUTDOWN_watchdog);
+    if ( unlikely(rc) )
+        printk(XENLOG_ERR
+               "Failed to shut down %pd after watchdog expiry: rc=%d\n", d, rc);
 }
 
 static long domain_watchdog(struct domain *d, uint32_t id, uint32_t timeout)
@@ -1977,7 +1982,7 @@ ret_t do_sched_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 
         ret = xsm_schedop_shutdown(XSM_DM_PRIV, current->domain, d);
         if ( likely(!ret) )
-            domain_shutdown(d, sched_remote_shutdown.reason);
+            ret = domain_shutdown(d, sched_remote_shutdown.reason);
 
         rcu_unlock_domain(d);
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 13:06:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 13:06:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257076.1551514 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3D5I-00088w-9r; Thu, 19 Mar 2026 13:06:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257076.1551514; Thu, 19 Mar 2026 13: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 1w3D5I-00088p-68; Thu, 19 Mar 2026 13:06:44 +0000
Received: by outflank-mailman (input) for mailman id 1257076;
 Thu, 19 Mar 2026 13: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=2tj/=BT=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w3D5G-00088j-9A
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 13:06:42 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 76c9d7dd-2394-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 14:06:38 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-66732a99928so1056015a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 06:06:38 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b97f173a3e3sm433226666b.61.2026.03.19.06.06.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Mar 2026 06:06:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 76c9d7dd-2394-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773925597; x=1774530397; 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=YZ2aVbDCO5mxgvSPBPZYmaTP3dWtkfnfuMwImdhSDiQ=;
        b=E2cgPSHbeuCSBtySrhzn2z8NyhErhaJa6Qs0m/+GR6Lx1ytdXmBVokXyhahQ3gMBhc
         v7tX+15TNF24Yw1UW2yCI086A/Vsp678oV8Tx0TzmMqtSu+8o4HIr0Xm3nlDFn1WCYee
         OzrPf3hiIS7domVvxnOeIZ4wGo9jGqp9aCxtd/hhK66xMEtFjJ+Q+Zy6QciIF5EJzXn1
         cTvHMiscq9QTqH4pJfrFXN2LynIBqLdak3h33+Q7M65xmRHchjVAAgC+Q+EW/HDmx9h6
         jUUxvXDsW3fE6gKzDY9R5FBZm6mFUk0WlCjBL6f9licW2ITSZvYqkE5IOOawd2cj+GuI
         ec5Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773925597; x=1774530397;
        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=YZ2aVbDCO5mxgvSPBPZYmaTP3dWtkfnfuMwImdhSDiQ=;
        b=je2F5+Yo1HbeanSyxdQtVp2JUS4CXeOyZR8hTTRgTnXl2iNPtvSgDI9AsmCnE5OUDx
         m+hCalKOrQiNM0/J/MfsYS1NGdfeBFTAhZhFGFSfCFyH0ThTLRToTWAtUB/pmuhrIOLC
         iuN+6QvVVPcUEXxQch0KVawJhWDcWuQwYMW6+YhehWCG4S4ufBYVB5JmN2Li5l8jRuuu
         aBWrWOGm9ZdGgRmVutY4vz6i9XAodezIKWFccukfKK1+wqWzGWn5yC3QHUqu3QTx0hKg
         F9BlhTGC/r87fMThpqEgsDnoS7HnclpBSR9dKVDnycaulaDQ4WG53dUo4ShbPAlfwQgb
         4jXg==
X-Gm-Message-State: AOJu0YxrsOoNmA6YLPpzDi69h/5nQIqx8PEV7L8MhHoyjM2SVe8Heech
	8RqNaN74gT1NhJgogK1GPghZmvVxPULHh88tPGU6cN5RB9An0mloPMZcePJDsIslOd/NV+qxKDg
	/nsDIyLQ=
X-Gm-Gg: ATEYQzwqZql1dIeBIqRvcA0B4jxV4tgacNs8Z4676Fq3kWf61pFBDFQmrSButyCKzNO
	7qS/v6Xzodgou1Ca8IwR7fw9EDsiTQ7Ey2w/4yUbdLtgxthpj//GZhJgZoj27IZucOyhqnd2wXD
	t2HiyjWNaoOtOyLUTQfqjT22yltk0AWv3WZimNFr4wSZcs8jSadJeSchCm7tFMPlyHHOmFeeEPK
	2qc/gx4aejBAmSCRvQ8SG4FVgCCFGss83ZMdczjx7uXvFtVaQKyjVDmT5JF6Lu1iwF2NNhK0VpE
	RrdfjTsB/rxn2bx/CKC1wjMM24YEDnZNSJ7oCi/4YSbS651tnxA0AU2RVD79bXo9QwqJbsyDSt1
	gw0hLH6cYJPiAKtr8iD/sEk1l1W0hMhnOeAJx5DVa+1QoDzgPpE7C+kZIiQSeVqxA2YA5bqcJqo
	aV11+g2eZiIjDaomE2SOiwDj35lLQ3Q8pyvgdS6cCwse0DL6txdDQFJwH3jGlMtj9a3iXc1tXLn
	QjxXMI+vhIIyCqybSo3v07rbo2yWVWH7lbCMZ9pup2ekBC9IUeOtw==
X-Received: by 2002:a17:907:cb02:b0:b97:914c:2949 with SMTP id a640c23a62f3a-b97f4885628mr347086966b.9.1773925597329;
        Thu, 19 Mar 2026 06:06:37 -0700 (PDT)
Message-ID: <8d9c33a5-3bf6-4056-9e94-e039a3e39606@suse.com>
Date: Thu, 19 Mar 2026 14:06:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 10/11] tools/xl: add xl commands for xenstore quota
 operations
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-11-jgross@suse.com> <abvuAQJkihgFvSzj@l14>
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: <abvuAQJkihgFvSzj@l14>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------94opsNtYHNJdDm4yVvnH1edR"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------94opsNtYHNJdDm4yVvnH1edR
Content-Type: multipart/mixed; boundary="------------K2ezLQ6R3FwJshPDF5cWi6E4";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org
Message-ID: <8d9c33a5-3bf6-4056-9e94-e039a3e39606@suse.com>
Subject: Re: [PATCH 10/11] tools/xl: add xl commands for xenstore quota
 operations
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-11-jgross@suse.com> <abvuAQJkihgFvSzj@l14>
In-Reply-To: <abvuAQJkihgFvSzj@l14>

--------------K2ezLQ6R3FwJshPDF5cWi6E4
Content-Type: multipart/mixed; boundary="------------4mPx5mGd94XFGYmHvjayo00m"

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

T24gMTkuMDMuMjYgMTM6MzcsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBPbiBUaHUsIE1h
ciAwNSwgMjAyNiBhdCAwMjo1MjowN1BNICswMTAwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
Pj4gQWRkICJ4bCB4ZW5zdG9yZS1xdW90YS1nZXQiIGFuZCAieGwgeGVuc3RvcmUtcXVvdGEt
c2V0IiBjb21tYW5kcyBmb3INCj4+IHJldHJpZXZpbmcgYW5kIHNldHRpbmcgZ2xvYmFsIGFu
ZCBwZXItZG9tYWluIFhlbnN0b3JlIHF1b3RhLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IEp1
ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCj4+IC0tLQ0KPj4gICB0b29scy94bC9N
YWtlZmlsZSAgICAgIHwgIDEgKw0KPj4gICB0b29scy94bC94bC5oICAgICAgICAgIHwgIDIg
Kw0KPj4gICB0b29scy94bC94bF9jbWR0YWJsZS5jIHwgMTAgKysrKysNCj4+ICAgdG9vbHMv
eGwveGxfcGFyc2UuYyAgICB8IDI1ICsrKysrKysrKysrKw0KPj4gICB0b29scy94bC94bF9w
YXJzZS5oICAgIHwgIDEgKw0KPj4gICB0b29scy94bC94bF94c3F1b3RhLmMgIHwgODggKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+PiAgIDYgZmlsZXMg
Y2hhbmdlZCwgMTI3IGluc2VydGlvbnMoKykNCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IHRv
b2xzL3hsL3hsX3hzcXVvdGEuYw0KPj4NCj4+IGRpZmYgLS1naXQgYS90b29scy94bC9NYWtl
ZmlsZSBiL3Rvb2xzL3hsL01ha2VmaWxlDQo+PiBpbmRleCA5NzNmZjBlMWEyLi5lNGVlZDhi
ZTEzIDEwMDY0NA0KPj4gLS0tIGEvdG9vbHMveGwvTWFrZWZpbGUNCj4+ICsrKyBiL3Rvb2xz
L3hsL01ha2VmaWxlDQo+PiBAQCAtMjQsNiArMjQsNyBAQCBYTF9PQkpTICs9IHhsX3NjaGVk
Lm8geGxfcGNpLm8geGxfdmNwdS5vIHhsX2Nkcm9tLm8geGxfbWVtLm8NCj4+ICAgWExfT0JK
UyArPSB4bF9pbmZvLm8geGxfY29uc29sZS5vIHhsX21pc2Mubw0KPj4gICBYTF9PQkpTICs9
IHhsX3ZtY29udHJvbC5vIHhsX3NhdmVyZXN0b3JlLm8geGxfbWlncmF0ZS5vDQo+PiAgIFhM
X09CSlMgKz0geGxfdmRpc3BsLm8geGxfdnNuZC5vIHhsX3ZrYi5vDQo+PiArWExfT0JKUyAr
PSB4bF94c3F1b3RhLm8NCj4+ICAgDQo+PiAgICQoWExfT0JKUyk6IENGTEFHUyArPSAkKENG
TEFHU19saWJ4ZW50b29sbG9nKQ0KPj4gICAkKFhMX09CSlMpOiBDRkxBR1MgKz0gJChDRkxB
R1NfWEwpDQo+PiBkaWZmIC0tZ2l0IGEvdG9vbHMveGwveGwuaCBiL3Rvb2xzL3hsL3hsLmgN
Cj4+IGluZGV4IDkwMDBkZjAwZGUuLjBlZmMwN2E2YmEgMTAwNjQ0DQo+PiAtLS0gYS90b29s
cy94bC94bC5oDQo+PiArKysgYi90b29scy94bC94bC5oDQo+PiBAQCAtMjE3LDYgKzIxNyw4
IEBAIGludCBtYWluX3Bzcl9tYmFfc2V0KGludCBhcmdjLCBjaGFyICoqYXJndik7DQo+PiAg
IGludCBtYWluX3Bzcl9tYmFfc2hvdyhpbnQgYXJnYywgY2hhciAqKmFyZ3YpOw0KPj4gICAj
ZW5kaWYNCj4+ICAgaW50IG1haW5fcWVtdV9tb25pdG9yX2NvbW1hbmQoaW50IGFyZ2MsIGNo
YXIgKiphcmd2KTsNCj4+ICtpbnQgbWFpbl94c3F1b3RhX2dldChpbnQgYXJnYywgY2hhciAq
KmFyZ3YpOw0KPj4gK2ludCBtYWluX3hzcXVvdGFfc2V0KGludCBhcmdjLCBjaGFyICoqYXJn
dik7DQo+PiAgIA0KPj4gICB2b2lkIGhlbHAoY29uc3QgY2hhciAqY29tbWFuZCk7DQo+PiAg
IA0KPj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3hsL3hsX2NtZHRhYmxlLmMgYi90b29scy94bC94
bF9jbWR0YWJsZS5jDQo+PiBpbmRleCAwNmEwMDM5NzE4Li4zZGUxMmIxMmFlIDEwMDY0NA0K
Pj4gLS0tIGEvdG9vbHMveGwveGxfY21kdGFibGUuYw0KPj4gKysrIGIvdG9vbHMveGwveGxf
Y21kdGFibGUuYw0KPj4gQEAgLTY0OSw2ICs2NDksMTYgQEAgY29uc3Qgc3RydWN0IGNtZF9z
cGVjIGNtZF90YWJsZVtdID0gew0KPj4gICAgICAgICAiLWggcHJpbnQgdGhpcyBoZWxwXG4i
DQo+PiAgICAgICB9LA0KPj4gICAjZW5kaWYNCj4+ICsgICAgeyAieGVuc3RvcmUtcXVvdGEt
Z2V0IiwNCj4+ICsgICAgICAmbWFpbl94c3F1b3RhX2dldCwgMCwgMCwNCj4+ICsgICAgICAi
TGlzdCBnbG9iYWwgb3IgZG9tYWluIHNwZWNpZmljIFhlbnN0b3JlIHF1b3RhIGRhdGEiLA0K
PiANCj4gTWF5YmUgc2F5aW5nICJxdW90YSB2YWx1ZXMiIGluc3RlYWQgb2YgInF1b3RhIGRh
dGEiIHdvdWxkIGJlIHNsaWdodGx5DQo+IGJldHRlci4gT3IgbWF5YmUgZXZlbiAicXVvdGFz
IiB3b3VsZCBiZSBlbm91Z2guDQo+IA0KPj4gKyAgICAgICI8RG9tYWluPnwtZyIsDQo+PiAr
ICAgIH0sDQo+PiArICAgIHsgInhlbnN0b3JlLXF1b3RhLXNldCIsDQo+PiArICAgICAgJm1h
aW5feHNxdW90YV9zZXQsIDAsIDEsDQo+PiArICAgICAgIlNldCBnbG9iYWwgb3IgZG9tYWlu
IHNwZWNpZmljIFhlbnN0b3JlIHF1b3RhIGRhdGEiLA0KPj4gKyAgICAgICI8RG9tYWluPnwt
ZyA8cXVvdGE+PTx2YWw+Li4uIiwNCj4+ICsgICAgfSwNCj4+ICAgfTsNCj4+ICAgDQo+PiAg
IGNvbnN0IGludCBjbWR0YWJsZV9sZW4gPSBBUlJBWV9TSVpFKGNtZF90YWJsZSk7DQo+PiBk
aWZmIC0tZ2l0IGEvdG9vbHMveGwveGxfcGFyc2UuYyBiL3Rvb2xzL3hsL3hsX3BhcnNlLmMN
Cj4+IGluZGV4IDFhMmVhOGI1ZDUuLjkzNGFkNGVlZWYgMTAwNjQ0DQo+PiAtLS0gYS90b29s
cy94bC94bF9wYXJzZS5jDQo+PiArKysgYi90b29scy94bC94bF9wYXJzZS5jDQo+PiBAQCAt
MTMxNCw2ICsxMzE0LDMxIEBAIG91dDoNCj4+ICAgICAgIHJldHVybiByZXQ7DQo+PiAgIH0N
Cj4+ICAgDQo+PiAraW50IHBhcnNlX3hzcXVvdGFfaXRlbShjb25zdCBjaGFyICpidWYsIHN0
cnVjdCBsaWJ4bF94c19xdW90YV9pdGVtICppdGVtKQ0KPj4gK3sNCj4+ICsgICAgY29uc3Qg
Y2hhciAqZXE7DQo+PiArICAgIGNoYXIgKmVuZHB0cjsNCj4+ICsNCj4+ICsgICAgZXEgPSBz
dHJjaHIoYnVmLCAnPScpOw0KPj4gKyAgICBpZiAoIWVxKSB7DQo+PiArICAgICAgICBmcHJp
bnRmKHN0ZGVyciwgIlF1b3RhIHNwZWNpZmljYXRpb24gXCIlc1wiIGxhY2tzIFwiPVwiLlxu
IiwgYnVmKTsNCj4+ICsgICAgICAgIHJldHVybiBFUlJPUl9JTlZBTDsNCj4+ICsgICAgfQ0K
Pj4gKyAgICBlcnJubyA9IDA7DQo+PiArICAgIGl0ZW0tPm5hbWUgPSBzdHJuZHVwKGJ1Ziwg
ZXEgLSBidWYpOw0KPj4gKyAgICBpZiAoIWl0ZW0tPm5hbWUpDQo+PiArICAgICAgICByZXR1
cm4gRVJST1JfTk9NRU07DQo+PiArICAgIGl0ZW0tPnZhbCA9IHN0cnRvdWwoZXEgKyAxLCAm
ZW5kcHRyLCAwKTsNCj4+ICsgICAgaWYgKGVycm5vIHx8ICFlcVsxXSB8fCAqZW5kcHRyKSB7
DQo+IA0KPiBJIHRoaW5rIHdlIGFsc28gbmVlZCB0byBjaGVjayB0aGF0IHRoZSB2YWx1ZSBy
ZXR1cm5lZCBieSBzdHJ0b3VsKCkgY2FuDQo+IGFjdHVhbGx5IGJlIHN0b3JlZCBpbiBgaXRl
bS0+dmFsYC4gSXQgd291bGQgYmUgbWlzbGVhZGluZyB0byBhY2NlcHQgYQ0KPiBxdW90YSB2
YWx1ZSBhbmQgc3RvcmUgYSBkaWZmZXJlbnQgb25lLg0KPiANCj4+ICsgICAgICAgIGZwcmlu
dGYoc3RkZXJyLA0KPj4gKyAgICAgICAgICAgICAgICAiUXVvdGEgc3BlY2lmaWNhdGlvbiBc
IiVzXCIgdXNlcyBpbGxlZ2FsIHZhbHVlIFwiJXNcIi5cbiIsDQo+PiArICAgICAgICAgICAg
ICAgIGJ1ZiwgZXEpOw0KPj4gKyAgICAgICAgcmV0dXJuIEVSUk9SX0lOVkFMOw0KPj4gKyAg
ICB9DQo+PiArDQo+PiArICAgIHJldHVybiAwOw0KPj4gK30NCj4+ICsNCj4+ICAgdm9pZCBw
YXJzZV9jb25maWdfZGF0YShjb25zdCBjaGFyICpjb25maWdfc291cmNlLA0KPj4gICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmNvbmZpZ19kYXRhLA0KPj4gICAgICAg
ICAgICAgICAgICAgICAgICAgIGludCBjb25maWdfbGVuLA0KPj4gZGlmZiAtLWdpdCBhL3Rv
b2xzL3hsL3hsX3BhcnNlLmggYi90b29scy94bC94bF9wYXJzZS5oDQo+PiBpbmRleCBmZTBk
NTg2Y2RkLi41N2JiNDNhMDY3IDEwMDY0NA0KPj4gLS0tIGEvdG9vbHMveGwveGxfcGFyc2Uu
aA0KPj4gKysrIGIvdG9vbHMveGwveGxfcGFyc2UuaA0KPj4gQEAgLTM2LDYgKzM2LDcgQEAg
aW50IHBhcnNlX25pY19jb25maWcobGlieGxfZGV2aWNlX25pYyAqbmljLCBYTFVfQ29uZmln
ICoqY29uZmlnLCBjaGFyICp0b2tlbik7DQo+PiAgIGludCBwYXJzZV92ZGlzcGxfY29uZmln
KGxpYnhsX2RldmljZV92ZGlzcGwgKnZkaXNwbCwgY2hhciAqdG9rZW4pOw0KPj4gICBpbnQg
cGFyc2VfdnNuZF9pdGVtKGxpYnhsX2RldmljZV92c25kICp2c25kLCBjb25zdCBjaGFyICpz
cGVjKTsNCj4+ICAgaW50IHBhcnNlX3ZrYl9jb25maWcobGlieGxfZGV2aWNlX3ZrYiAqdmti
LCBjaGFyICp0b2tlbik7DQo+PiAraW50IHBhcnNlX3hzcXVvdGFfaXRlbShjb25zdCBjaGFy
ICpidWYsIHN0cnVjdCBsaWJ4bF94c19xdW90YV9pdGVtICppdGVtKTsNCj4+ICAgDQo+PiAg
IGludCBtYXRjaF9vcHRpb25fc2l6ZShjb25zdCBjaGFyICpwcmVmaXgsIHNpemVfdCBsZW4s
DQo+PiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICphcmcsIGNoYXIgKiphcmdvcHQp
Ow0KPj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3hsL3hsX3hzcXVvdGEuYyBiL3Rvb2xzL3hsL3hs
X3hzcXVvdGEuYw0KPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+IGluZGV4IDAwMDAwMDAw
MDAuLmVhZjE5ZmVhYzgNCj4+IC0tLSAvZGV2L251bGwNCj4+ICsrKyBiL3Rvb2xzL3hsL3hs
X3hzcXVvdGEuYw0KPj4gQEAgLTAsMCArMSw4OCBAQA0KPj4gKy8qIFNQRFgtTGljZW5zZS1J
ZGVudGlmaWVyOiBMR1BMLTIuMS1vbmx5ICovDQo+PiArDQo+PiArI2luY2x1ZGUgPHN0ZGlv
Lmg+DQo+PiArI2luY2x1ZGUgPHN0ZGxpYi5oPg0KPj4gKyNpbmNsdWRlIDxsaWJ4bC5oPg0K
Pj4gKyNpbmNsdWRlIDxsaWJ4bHV0aWwuaD4NCj4+ICsNCj4+ICsjaW5jbHVkZSAieGwuaCIN
Cj4+ICsjaW5jbHVkZSAieGxfdXRpbHMuaCINCj4+ICsjaW5jbHVkZSAieGxfcGFyc2UuaCIN
Cj4+ICsNCj4+ICtpbnQgbWFpbl94c3F1b3RhX2dldChpbnQgYXJnYywgY2hhciAqKmFyZ3Yp
DQo+PiArew0KPj4gKyAgICBsaWJ4bF94c19xdW90YV9zZXQgcTsNCj4+ICsgICAgdW5zaWdu
ZWQgaW50IGk7DQo+PiArICAgIGludCByYzsNCj4gDQo+IFlvdSBzaG91bGQgY2FsbCBsaWJ4
bF94c19xdW90YV9zZXRfaW5pdCgmcSkuIChUaGF0IHdvdWxkIGF2b2lkIGEgc2Vndg0KPiBs
YXRlciwgd2hlbiBfZGlzcG9zZWQoKSBpcyBjYWxsZWQuKQ0KPiANCj4+ICsNCj4+ICsgICAg
aWYgKGFyZ2MgIT0gMikgew0KPj4gKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJEb21haW4g
b3IgXCItZ1wiIG11c3QgYmUgc3BlY2lmaWVkLlxuIik7DQo+PiArICAgICAgICByZXR1cm4g
RVhJVF9GQUlMVVJFOw0KPj4gKyAgICB9DQo+PiArDQo+PiArICAgIGlmICghc3RyY21wKGFy
Z3ZbMV0sICItZyIpKSB7DQo+PiArICAgICAgICByYyA9IGxpYnhsX3hzcXVvdGFfZ2xvYmFs
X2dldChjdHgsICZxKTsNCj4+ICsgICAgfSBlbHNlIHsNCj4+ICsgICAgICAgIHVpbnQzMl90
IGRvbWlkID0gZmluZF9kb21haW4oYXJndlsxXSk7DQo+PiArDQo+PiArICAgICAgICByYyA9
IGxpYnhsX3hzcXVvdGFfZG9tYWluX2dldChjdHgsIGRvbWlkLCAmcSk7DQo+PiArICAgIH0N
Cj4+ICsNCj4+ICsgICAgaWYgKHJjKSB7DQo+PiArICAgICAgICBmcHJpbnRmKHN0ZGVyciwg
IlF1b3RhIGNvdWxkIG5vdCBiZSBvYnRhaW5lZC5cbiIpOw0KPj4gKyAgICAgICAgcmV0dXJu
IEVYSVRfRkFJTFVSRTsNCj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAgICBwcmludGYoIlF1b3Rh
IG5hbWUgICAgICAgICAgIFF1b3RhIHZhbHVlXG4iKTsNCj4+ICsgICAgcHJpbnRmKCItLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7DQo+PiArICAgIGZvciAoaSA9IDA7
IGkgPCBxLm51bV9xdW90YTsgaSsrKQ0KPj4gKyAgICAgICAgcHJpbnRmKCIlLTIwcyAlOHVc
biIsIHEucXVvdGFbaV0ubmFtZSwgcS5xdW90YVtpXS52YWwpOw0KPj4gKw0KPj4gKyAgICBs
aWJ4bF94c19xdW90YV9zZXRfZGlzcG9zZSgmcSk7DQo+PiArDQo+PiArICAgIHJldHVybiBF
WElUX1NVQ0NFU1M7DQo+PiArfQ0KPj4gKw0KPj4gK2ludCBtYWluX3hzcXVvdGFfc2V0KGlu
dCBhcmdjLCBjaGFyICoqYXJndikNCj4+ICt7DQo+PiArICAgIHVuc2lnbmVkIGludCBpOw0K
Pj4gKyAgICBsaWJ4bF94c19xdW90YV9zZXQgcTsNCj4+ICsgICAgaW50IHJjID0gRVhJVF9G
QUlMVVJFOw0KPj4gKw0KPj4gKyAgICBpZiAoYXJnYyA8IDMpIHsNCj4+ICsgICAgICAgIGZw
cmludGYoc3RkZXJyLCAiTm90IGVub3VnaCBwYXJhbWV0ZXJzLlxuIik7DQo+IA0KPiBJIHRo
aW5rIHlvdSBjYW4gY2FsbCBoZWxwKCJ4ZW5zdG9yZS1xdW90YS1zZXQiKSB0byBwcm92aWRl
IHRoZSBuZWVkZWQNCj4gaW5mbyBhYm91dCB3aGF0IHRoZSBwYXJhbWV0ZXJzIGFyZS4NCj4g
DQo+PiArICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOw0KPj4gKyAgICB9DQo+PiArDQo+
PiArICAgIHEubnVtX3F1b3RhID0gYXJnYyAtIDI7DQo+PiArICAgIHEucXVvdGEgPSBjYWxs
b2MocS5udW1fcXVvdGEsIHNpemVvZigqcS5xdW90YSkpOw0KPj4gKyAgICBpZiAoIXEucXVv
dGEpIHsNCj4+ICsgICAgICAgIGZwcmludGYoc3RkZXJyLCAiTWVtb3J5IGFsbG9jYXRpb24g
ZmFpbHVyZSFcbiIpOw0KPj4gKyAgICAgICAgZ290byBlcnI7DQo+PiArICAgIH0NCj4gDQo+
IFRoZXJlJ3MgYHhjYWxsb2MoKSB0aGF0IGNhbiBiZSB1c2UgaW5zdGVhZC4gSXQgZG9lcyBj
aGVjayBmb3IgbWVtb3J5DQo+IGFsbG9jYXRpb24gZmFpbHVyZS4NCj4gDQo+IChBbmQgdGhh
dCB3b3VsZCBhdm9pZCBhIHNlZ3YgaW4gbGlieGxfeHNfcXVvdGFfc2V0X2Rpc3Bvc2UoKSBh
cw0KPiBudW1fcXVvdGEgaXMgc2V0IGJlZm9yZSBxdW90YSBpcyBhbGxvY2F0ZWQuKQ0KDQpJ
J20gZmluZSB3aXRoIGFsbCB5b3VyIHN1Z2dlc3Rpb25zLg0KDQpUaGFua3MsDQoNCkp1ZXJn
ZW4NCg==
--------------4mPx5mGd94XFGYmHvjayo00m
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-----

--------------4mPx5mGd94XFGYmHvjayo00m--

--------------K2ezLQ6R3FwJshPDF5cWi6E4--

--------------94opsNtYHNJdDm4yVvnH1edR
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/Ey8FAmm79NwFAwAAAAAACgkQsN6d1ii/Ey/q
8wf/XydjzDtypzv/lB9AKhQqXUW4tPT/hSk46lY86CM0gSi26yXpFfvh2s8B480bG7SYH+ZBC5z8
VShuyk+ITWIvy7VeSndvL2h8KnHnTJbnGnTnQQP7bmG0ZkXZ4bjnLfCzsrmy6C/11G8MNMjYHEfn
7T5baT4VyJF7ra9jykfFmAEhWo007gJRHDKP66GMbvJvsoTSz2d8UtK4w/itA61TpUWsOjZhq0l2
v0WqhV+h1id9dNFPBzp6k6CvVCiG1ub4wKgbkHzM0ca0jICsm5RGgGco31R2+QXk1Irq2AhJudiv
UKYNTDSe/CqSxY/on1Bz9lBPPtSwodj1OLlx8nmROg==
=aZNz
-----END PGP SIGNATURE-----

--------------94opsNtYHNJdDm4yVvnH1edR--


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 13:06:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 13:06:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257077.1551523 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3D5X-0008QA-K1; Thu, 19 Mar 2026 13:06:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257077.1551523; Thu, 19 Mar 2026 13:06:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3D5X-0008Q1-Gy; Thu, 19 Mar 2026 13:06:59 +0000
Received: by outflank-mailman (input) for mailman id 1257077;
 Thu, 19 Mar 2026 13:06: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=vWPZ=BT=bounce.vates.tech=bounce-md_30504962.69bbf4ee.v1-1a214337d7a644c185503db736c96a31@srs-se1.protection.inumbo.net>)
 id 1w3D5W-0008PT-1B
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 13:06:58 +0000
Received: from mail136-12.atl41.mandrillapp.com
 (mail136-12.atl41.mandrillapp.com [198.2.136.12])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8131d857-2394-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 14:06:56 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-12.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4fc5Z66PnWz5QkWpg
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 13:06:54 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 1a214337d7a644c185503db736c96a31; Thu, 19 Mar 2026 13:06: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: 8131d857-2394-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773925614; x=1774195614;
	bh=h6Nv3pzUuuG4oNJ5/0WmqZswyO6bOS7K6U7wXPbum9o=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=qteMZHYnaCBjKbJ0aVAImIQduxwwQ/nCq+BBAlT56TE/zyvVb/PNrDnP5ACUkvuFF
	 iiWJozwtTmxpKdt8TffeD1E2PcJPkNFC5UQuo2LB4zVNdRkM+HP7knHR2AmJ5A8k6y
	 Q7XJGkamkieGgJc08aSgTGEd9nvKubBwnQkF6W9N3gZc+hnl7Ia3pMvaZMX5S9HLfn
	 UCpVrMV3Zk3C5HwBwOBaeriHREXtZNU+u4zLJVxZGUKmI4C9aPv04qPaJC1DWLRgWU
	 XIvdgkPrK7/IcN9BMQ08z+msLk77Kie25frRWCWS/SEd9f7FvP3zwsSPCmy+GTv4G0
	 FdB9NgbxfvnmA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773925614; x=1774186114; i=anthony.perard@vates.tech;
	bh=h6Nv3pzUuuG4oNJ5/0WmqZswyO6bOS7K6U7wXPbum9o=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=GqQpgFc3ZD83z9wmOgQG5ACTCyPiMgObSpsOKvRpNrDRIzoO6sriqH5yUZNHiH/FY
	 1La8wEozUGwqqKFIXvRt0wt/J/IXZh1zT9RLGgcwsYKrgLnYgEB6pl6owC2fYdVBaP
	 Exk3EfFOS1wNVP8ciKfNK462JclYgXEMpmewQaVpLsifqSpehQDL5q6sGEppIGkg4x
	 WW5d3FwYXUKstFR6xjN1xntiJjNLthNvQxDJvE10MtPNcG/XWf1g4/hhX9PiMprE7k
	 RmQYVIlvbt0uAKd2bDTCmTL7B3q7XpY6KAF3i9FbEMV+xGeqdZOnAixB0+G39iQq/Y
	 FmrNTwdgnRAcQ==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2011/11]=20tools/xl:=20add=20support=20for=20xenstore=20quota=20setting=20via=20domain=20config?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773925613982
To: "Juergen Gross" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org
Message-Id: <abv07SIxrCVEZoK0@l14>
References: <20260305135208.2208663-1-jgross@suse.com> <20260305135208.2208663-12-jgross@suse.com>
In-Reply-To: <20260305135208.2208663-12-jgross@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.1a214337d7a644c185503db736c96a31?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260319:md
Date: Thu, 19 Mar 2026 13:06:54 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Mar 05, 2026 at 02:52:08PM +0100, Juergen Gross wrote:
> Add a new "xenstore-quota" domain config parameter for setting the

You mean `xenstore_quota` ^ here.

> Xenstore quota of a new domain via a list of <quota>=<val> items.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
> diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
> index 934ad4eeef..06a5b60736 100644
> --- a/tools/xl/xl_parse.c
> +++ b/tools/xl/xl_parse.c
> @@ -1467,6 +1468,26 @@ void parse_config_data(const char *config_source,
>      if (!xlu_cfg_get_long (config, "xenstore_feature_mask", &l, 0))
>          b_info->xenstore_feature_mask = l;
>  
> +    if (!xlu_cfg_get_list(config, "xenstore_quota", &xs_quota, &num_xs_quota, 0)) {
> +        b_info->xenstore_quota.num_quota = num_xs_quota;
> +        b_info->xenstore_quota.quota = calloc(num_xs_quota, sizeof(* b_info->xenstore_quota.quota));

You can call xcalloc() instead, and then not need to check for
allocation failure.

And with the two changes: Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 13:11:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 13:11:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257094.1551532 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3DA9-0001wR-64; Thu, 19 Mar 2026 13:11:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257094.1551532; Thu, 19 Mar 2026 13:11:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3DA9-0001wK-2Z; Thu, 19 Mar 2026 13:11:45 +0000
Received: by outflank-mailman (input) for mailman id 1257094;
 Thu, 19 Mar 2026 13:11: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=2tj/=BT=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w3DA8-0001wE-11
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 13:11:44 +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 2c276406-2395-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 14:11:42 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-65c0891f4e9so1841445a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 06:11:42 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-667afa57131sm3440869a12.12.2026.03.19.06.11.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Mar 2026 06:11:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2c276406-2395-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773925902; x=1774530702; 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=2cRNm3rBefjJpIqZX8XHJWtWDuBGM319iDYOg8ohwuI=;
        b=fkH/FnhqxW/pxR/1JH8suwpfTRFu75+uPf19UIl72igjtwMkbrR3GLgbmQU2Qd0uG5
         6atHn0LOYcr9QACgZpHO6vRrIttWp0cVBPE5SUoxERD1zp4GOTOFjgQSxIGBGWVZp0Xw
         hB28gEIJGPjLKDyY2smN6i9yksB0mgzt1vPxGKczCcOQkhzPQLtkC2U9sQD7uS6Ozn48
         GaaBR5FVqJcZ1fWOyxwn3wmx+nUDdJcO2ZgnIJvMiWAK+SjMX1aeeglaNqdXHhMs5kPZ
         gtrg+yvWUy6f2qkL/nfdEmWS3I28EDa1MWhqHdgfbK812MfT3E6oMZLZmeoIdtQJy+d4
         tk2g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773925902; x=1774530702;
        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=2cRNm3rBefjJpIqZX8XHJWtWDuBGM319iDYOg8ohwuI=;
        b=LGuzVkc924piHQBmafETZG4CTf8N5JExOlLOrX9NMtqrzQUnn8M/uKDOVJER/zniuO
         C9bQDAbJN51thvCHqKrNKslGGOR0e8ebwHP7zmjvHK8d8a+tbZl7Dbu9G+GVdIgJLiTF
         myp3x53VHfYpRDIT5LtyxAQ8paZ2itxIhbzIf4IAiJlDC6T6S5pXAcVD69T5IfKcTkI9
         236Q8rs7A60GEczpSc5zmYBeWTjhGY+KSZuh8Plh4iEiiMf0CTl15FKzfUlvxN3kpeVM
         Kj3rmTSTjLuczEg5YXTId73YyPfCjcS8Rinn7cmH9oCSXAY/MSOeaIsj8NLpbOWWkTKY
         SIxA==
X-Gm-Message-State: AOJu0YxIL/S1wZrX+d+AQFA9cjubTPe0wGdb4jPy91TjKsCWKnXDTKMj
	md4LBuMNPMvYAxJH1mcL8ZhAkdyvGexULbZC9oMNzLMz9QgNcA7/+kDTaOXFrOUpbks=
X-Gm-Gg: ATEYQzwponYtNZ8N6moXX5hruI4jMxg9BMZ7zqpb3/sx8jJ9MQZ7RibNpRLcXUuNNRf
	DoFUm7FEnrafNWHEls4d9VlxbhABzNO581koWYXcfHjjyvD+9bbZHhN8NVZST7FhGr9LfcpdfK6
	wF+XteBsl4X0BUI0uOT1ED3xZERzMO6N2bnqPGrs0UYq4Yw6bZT6paUlQelhpqMmZKBQ4sQbTho
	I+65diMNFIhTtUTXllkng2s+mg8ihEUtUhLgjVIFZorP2Cc4Qw5P5fAw4klW+P7jC+5cxAYT+jD
	b2i1KJUGMiqd+SIwWD2utFxFmVx34pVPEsPvgGbinaCVH4Ynp94/gVldgWlXE6GpQGhU575bSYU
	sjbP3wqVC2QwSZJKz2MbNjlQz9HYU3NNT6kumCmIwYqWwHviRON8IVu3Z67y2NyL8sgbuqp9xcR
	jNyQsvs8KeS9l3PUQDc7TTaQTi37xE8CaFytyILlkFeJiSwaM5bgvUx2FLdgF8ODZCkCPU3vBjS
	E9w/1rXGUXpElCXm41QbwsYmr0VDzpgO9tawYDbwOtsiKqSO0mX4A==
X-Received: by 2002:a17:907:a0e:b0:b97:f28c:fea6 with SMTP id a640c23a62f3a-b97f486677amr436366066b.8.1773925901748;
        Thu, 19 Mar 2026 06:11:41 -0700 (PDT)
Message-ID: <a24adbbd-8caf-4bd5-aba6-49c95f73675b@suse.com>
Date: Thu, 19 Mar 2026 14:11:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 11/11] tools/xl: add support for xenstore quota setting
 via domain config
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-12-jgross@suse.com> <abv07SIxrCVEZoK0@l14>
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: <abv07SIxrCVEZoK0@l14>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------DZV2VIIr0ItL1VSLWu50Stfq"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------DZV2VIIr0ItL1VSLWu50Stfq
Content-Type: multipart/mixed; boundary="------------C3GST06FDQ7onfjH3gGaiv3w";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org
Message-ID: <a24adbbd-8caf-4bd5-aba6-49c95f73675b@suse.com>
Subject: Re: [PATCH 11/11] tools/xl: add support for xenstore quota setting
 via domain config
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-12-jgross@suse.com> <abv07SIxrCVEZoK0@l14>
In-Reply-To: <abv07SIxrCVEZoK0@l14>

--------------C3GST06FDQ7onfjH3gGaiv3w
Content-Type: multipart/mixed; boundary="------------TlskU8FREYRT0rOTB4Dzvdyo"

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

T24gMTkuMDMuMjYgMTQ6MDYsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBPbiBUaHUsIE1h
ciAwNSwgMjAyNiBhdCAwMjo1MjowOFBNICswMTAwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
Pj4gQWRkIGEgbmV3ICJ4ZW5zdG9yZS1xdW90YSIgZG9tYWluIGNvbmZpZyBwYXJhbWV0ZXIg
Zm9yIHNldHRpbmcgdGhlDQo+IA0KPiBZb3UgbWVhbiBgeGVuc3RvcmVfcXVvdGFgIF4gaGVy
ZS4NCj4gDQo+PiBYZW5zdG9yZSBxdW90YSBvZiBhIG5ldyBkb21haW4gdmlhIGEgbGlzdCBv
ZiA8cXVvdGE+PTx2YWw+IGl0ZW1zLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4g
R3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCj4+IC0tLQ0KPj4gZGlmZiAtLWdpdCBhL3Rvb2xz
L3hsL3hsX3BhcnNlLmMgYi90b29scy94bC94bF9wYXJzZS5jDQo+PiBpbmRleCA5MzRhZDRl
ZWVmLi4wNmE1YjYwNzM2IDEwMDY0NA0KPj4gLS0tIGEvdG9vbHMveGwveGxfcGFyc2UuYw0K
Pj4gKysrIGIvdG9vbHMveGwveGxfcGFyc2UuYw0KPj4gQEAgLTE0NjcsNiArMTQ2OCwyNiBA
QCB2b2lkIHBhcnNlX2NvbmZpZ19kYXRhKGNvbnN0IGNoYXIgKmNvbmZpZ19zb3VyY2UsDQo+
PiAgICAgICBpZiAoIXhsdV9jZmdfZ2V0X2xvbmcgKGNvbmZpZywgInhlbnN0b3JlX2ZlYXR1
cmVfbWFzayIsICZsLCAwKSkNCj4+ICAgICAgICAgICBiX2luZm8tPnhlbnN0b3JlX2ZlYXR1
cmVfbWFzayA9IGw7DQo+PiAgIA0KPj4gKyAgICBpZiAoIXhsdV9jZmdfZ2V0X2xpc3QoY29u
ZmlnLCAieGVuc3RvcmVfcXVvdGEiLCAmeHNfcXVvdGEsICZudW1feHNfcXVvdGEsIDApKSB7
DQo+PiArICAgICAgICBiX2luZm8tPnhlbnN0b3JlX3F1b3RhLm51bV9xdW90YSA9IG51bV94
c19xdW90YTsNCj4+ICsgICAgICAgIGJfaW5mby0+eGVuc3RvcmVfcXVvdGEucXVvdGEgPSBj
YWxsb2MobnVtX3hzX3F1b3RhLCBzaXplb2YoKiBiX2luZm8tPnhlbnN0b3JlX3F1b3RhLnF1
b3RhKSk7DQo+IA0KPiBZb3UgY2FuIGNhbGwgeGNhbGxvYygpIGluc3RlYWQsIGFuZCB0aGVu
IG5vdCBuZWVkIHRvIGNoZWNrIGZvcg0KPiBhbGxvY2F0aW9uIGZhaWx1cmUuDQo+IA0KPiBB
bmQgd2l0aCB0aGUgdHdvIGNoYW5nZXM6IFJldmlld2VkLWJ5OiBBbnRob255IFBFUkFSRCA8
YW50aG9ueS5wZXJhcmRAdmF0ZXMudGVjaD4NCg0KVGhhbmtzLA0KDQoNCkp1ZXJnZW4NCg==

--------------TlskU8FREYRT0rOTB4Dzvdyo
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-----

--------------TlskU8FREYRT0rOTB4Dzvdyo--

--------------C3GST06FDQ7onfjH3gGaiv3w--

--------------DZV2VIIr0ItL1VSLWu50Stfq
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/Ey8FAmm79g0FAwAAAAAACgkQsN6d1ii/Ey8L
dgf+I37DMtulOpg30x/FMxr02IZxtHkjdI/suxTRunmirlS/XAy6ShvI+ngmQ430bc53vqcF6ow7
Rs8COXliGiAVOOpNQLSfBghG/nGyFGYfTQZvKTmrqAqRPkYeNXf6NKB8TgWHCaYpPpQNlXqk9mNW
sjQ/qdZYPVZ2ZcMY7ynjSw3SdXdG8JXvcBlCVm9DXqVFKVfO/An+9FGpQRqW+zBpHTrdNEaZnFXy
85ayJm5JtWUaYrbrBpSA6Oo/vI/jxqTHsH4kvXIxZ6awlFAsLaZHI8KkMba0TKjDAx9eQWoU0dqz
PXtTOty9F2w61HqA7QbVx0U/BVcswGIGmiqQxsNP6Q==
=A0oq
-----END PGP SIGNATURE-----

--------------DZV2VIIr0ItL1VSLWu50Stfq--


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 13:26:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 13:26:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257108.1551541 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3DO7-0003xU-C1; Thu, 19 Mar 2026 13:26:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257108.1551541; Thu, 19 Mar 2026 13: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 1w3DO7-0003xN-90; Thu, 19 Mar 2026 13:26:11 +0000
Received: by outflank-mailman (input) for mailman id 1257108;
 Thu, 19 Mar 2026 13:26: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=mYDz=BT=bounce.vates.tech=bounce-md_30504962.69bbf96e.v1-a9c5733f900f4ba888e7f2319c6e5b29@srs-se1.protection.inumbo.net>)
 id 1w3DO6-0003xG-9s
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 13:26:10 +0000
Received: from mail132-30.atl131.mandrillapp.com
 (mail132-30.atl131.mandrillapp.com [198.2.132.30])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2fa94aae-2397-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 14:26:08 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-30.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fc60G4Y6hzP0KHBq
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 13:26:06 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 a9c5733f900f4ba888e7f2319c6e5b29; Thu, 19 Mar 2026 13:26:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2fa94aae-2397-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773926766; x=1774196766;
	bh=ajKGarEyu8cTzFCIHiU/jBefMz7iBdwgCIu6aoXvaCY=;
	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=d9S2dEvGwj+1o9gmIvasD0kGpvS/k/NsGZwetSTNeXDlWoe4BatB20yrbd/Pwl6uU
	 hVFIFXPPSfvWsHhl1yhXU36K1Ac12iFcWywYVjTrP1vvLwhSDrAXRLnACzaoa0D3IA
	 OmFlhqHU8mtefL60nZo8XwJ/u0Iqo0RaKcfTPsdTZ5PhMSjwT/li2GbWw8QiB4KMgu
	 OtXXbV4UKNi4PJ0xHgc2H8oYatqiBfSnzi7tuF/6JWlWO9rLFUokPvbdPz9gosiBFI
	 H5QWoPmqlabiwWJC+9iKHSoC7q29lYztNREPc1muuxdch6/1L3wXt+bv6epfKyPemK
	 Xl6pe9K1NJ1iQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773926766; x=1774187266; i=thierry.escande@vates.tech;
	bh=ajKGarEyu8cTzFCIHiU/jBefMz7iBdwgCIu6aoXvaCY=;
	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=IkPzM3vt5mlLjztKsiWgZ/JrqTXz6gZS2jzdsyKfWb+CrHrc2KoKQr6LATFwA3P/z
	 iX1XnlxFMl/I0L0MwQZ27y5h/AVhZdE+0BnHS/jc98XYzgI7HlMz4d/rwjMYKz7Nhf
	 gTS0WXvhbqLta/Qyyo84ZvUDdS4dYUrEKGVaZ31XnRsGoIKCcVtY+lIc9ip7YaZe/7
	 5GngUO9zyMCXMPrUw3cLXYo4HBhIwutKnU0Wu+A6eo4UUMwfiC4AeXiU3GPuPz2fzf
	 n+oyx0zL6uvP2WcuhAHFPPGoQqB7eTLJwNRoce7GozUcs2FR5h2um7MLdMauvJ2R4Y
	 RgLTv1K11yliw==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20install.sh:=20Preserve=20directory=20symlinks?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773926766018
Message-Id: <3bc905c5-a0e5-4ca0-96f4-eb6bb73b2361@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20260313172456.871518-1-thierry.escande@vates.tech> <7ee208c4-1f83-4bec-86db-bae22bd2040c@suse.com>
In-Reply-To: <7ee208c4-1f83-4bec-86db-bae22bd2040c@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.a9c5733f900f4ba888e7f2319c6e5b29?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260319:md
Date: Thu, 19 Mar 2026 13:26:06 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit



On 3/19/26 10:31, Jan Beulich wrote:
> On 13.03.2026 18:25, Thierry Escande wrote:
>> In various distros (i.e. Debian) some folders like /lib or /var/run are
>> symlinks. Using the tar option --keep-directory-symlink preserves these
>> symlinks.
>>
>> Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
>> ---
>>  install.sh | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/install.sh b/install.sh
>> index 3e11c4d46f..5d0b7a4933 100644
>> --- a/install.sh
>> +++ b/install.sh
>> @@ -27,7 +27,7 @@ tmp="`mktemp -d`"
>>  echo "Installing Xen from '$src' to '$dst'..."
>>  (cd $src; tar -cf - * ) | tar -C "$tmp" -xf -
>>  
>> -(cd $tmp; tar -cf - *) | tar --no-same-owner -C "$dst" -xf -
>> +(cd $tmp; tar -cf - *) | tar --no-same-owner -C "$dst" --keep-directory-symlink -xf -
> 
> How compatible (between flavors of tar as well as between versions of GNU
> tar) is use of this option?

It's supported by GNU tar since version 1.27 (from ~12 years ago) but it
seems to be the only implementation that supports it. BSD and busybox
don't support it. I didn't check for other implementations.

I can add a flavor/version check if that makes sense.

Regards,


--
 | Vates

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 13:29:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 13:29:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257116.1551549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3DRR-0004of-PL; Thu, 19 Mar 2026 13:29:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257116.1551549; Thu, 19 Mar 2026 13: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 1w3DRR-0004oY-Mj; Thu, 19 Mar 2026 13:29:37 +0000
Received: by outflank-mailman (input) for mailman id 1257116;
 Thu, 19 Mar 2026 13:29: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=wl8P=BT=citrix.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1w3DRQ-0004oN-LK
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 13:29:36 +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 ab168b78-2397-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 14:29:35 +0100 (CET)
Received: from DS0PR03MB8272.namprd03.prod.outlook.com (2603:10b6:8:28f::23)
 by CH5PR03MB7816.namprd03.prod.outlook.com (2603:10b6:610:210::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.20; Thu, 19 Mar
 2026 13:29:25 +0000
Received: from DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654]) by DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654%5]) with mapi id 15.20.9723.019; Thu, 19 Mar 2026
 13:29: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: ab168b78-2397-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Fh/abOj6TbsJBERSuIRSREnZJWm9p5Ans47bJqSG/FYhN10M1dhJWOl8T1GLA1m9U0qglrXN2wsI5DmWcQ1W6ovwI8sViw7cWlw5grymStJy1XEUqtz42xA3kbIEVYQmlRLSl1df2uu/xbaa+NGfSKrIbm1K6PiYyk8agRQbHgiucfECSo5ROUjFkHA+WCnl3e2t9MQQ5t2C/N9BoXoCkTfMJTJ7jxnNeL3EF621j95IhNgwCtnA9tX0tfe7VRrm5Te2HbrO84Vk4a+5ygV3vHHS32HhVVQSJfuoGiSC7sDU+6DlKU1basjF2ZMrQJT0Kp+Yp9Le6Oc/B8CmFArS4g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xZYHh2nERUuC3aPj87t1rqwwMQkqw6AuIWVuFd7BOtY=;
 b=K/2rRVWPl/EjEb/RzYTwyFvRoWaUzTLcWuk5j1A9k0i0yg8Lg99ja+i86Mo6VyFaAUq7e+riY4JbyY5RxcEyUzy8n9BvUGL6t1f9WPLEU2R2rYIgZRxrK82/9uc9ZFBBcxlpj5g34NP4Lfg3x4CmIVdMoNTzDLD6CbNYUw92sXk5Sma6LicCChe6umicOJ0IbMrqX1GPbtIHyg/xBa2ihQW3m2OKYuBr0NhH4DPMW5gPH2PbTZGvQOuvcvL7EggF1TUg5oRAl40FGt1g+6YAdWrnm5p7bLCaUkttzAcsajwNi/3ym1++wHqZjef/f39QlXQdMoWh8+jsvreyK4SICQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xZYHh2nERUuC3aPj87t1rqwwMQkqw6AuIWVuFd7BOtY=;
 b=aWe8XWVMPfD2etaDucuTe4G+x+fUl4N1KrPjjZcWH9GrL3nfZMbm/9mWMmYyORUj9cOO2gV6eEpoKgOhWT9NwgFCXzCOfazLfURClrT+kx4ug9RvSK02txwmGFQgppPdpYuUcxnVxo/y7rxfeJT6+qoTtKjza8tw7vJ+zc7wc9Q=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v1 0/8] x86: Always use eager-fpu
Date: Thu, 19 Mar 2026 13:29:16 +0000
Message-ID: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P265CA0055.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2af::11) To DS0PR03MB8272.namprd03.prod.outlook.com
 (2603:10b6:8:28f::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS0PR03MB8272:EE_|CH5PR03MB7816:EE_
X-MS-Office365-Filtering-Correlation-Id: 82d757c3-ada7-464d-3ce3-08de85bb8b10
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	Th/on3hRMg8qcdVnkR04ZJXkyol+2XH+iQzC3DRCXYWeeB7WdkDYuVsOqni0hqGMyVuxmzDJfrhukCxqR3fZJ8RS9n/YjOFlGClYUUNEYau28f05In9FeMQ5SEGkYNEEtPcqmscUBQ5KFb3nZiyWUoqwJZHgdmMfMgQxweFYrARBwppLnnyKmiTBwbjtkT/nvmwYo57fLtVNHTywOnGm59zu9KI8X2OF6+46RbwnuAkDQzxe9vFOxnFja+q7YH5rprQgmOi4adgtTKq5nAIJq9wh3+ECO6MDhFLoYczw3HBwruQ6Xez6N0rxuWlyPF4Ax33RzggC8pM3sa29j4ki02fakPAqxI3XqLLHE6CAwnYN1k6X2z7CLBZ+lpU3K9bHAHaZ5ZuA3h3/ZsQ+qkjHVKBnjr3hxXEgrKn6ixrGYkOK1T6wfuI789pMKenyX+OjqlXVT1wW+7UGrZzRRVNuWEH2qZKAg6yoS6Gb2WW4dZdp/+YmIVyYmzpRc1r05YYulBn7ltpNDw/rnbgf9YoEwQdh7tZ1egaLa1uUoThJffWZvh4ZBKn0qZoNjArcq95An9klPc+oI2GaS2ABIJohgVM8ypVyvYJ5mz1Abe7Y4TQ0rhvbyhV0AOZa+cvobH4PHcFI1osr8Mb+4NQjLEDlThDeCjuu+qVf4QZvU6b+xekTu3rajO+FNlCckkzzOiJUe1lb4k529VubRxzJ9yIXChnGG/vMlktX/YEtr1edbL0=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR03MB8272.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?wYdQMd9Hb+bi7sjpoG6cv0uWl5AfgXrwm7wxjuBdvvCLOpkB+lbWAiAMKeXJ?=
 =?us-ascii?Q?ndmKHEgtKgWGisGbwpVtsM+AODFkl715XF67U8wgODeATKezAtEYLL2c+Acn?=
 =?us-ascii?Q?7+FpLVLSLaDbzWNmirAMlQxikHZ8t+/pbero/piQwoW8wHBMLGbYNsitEqMq?=
 =?us-ascii?Q?6WcwUAJpvvCIf4YMHEa04LqbkYUruO764Bx4oz9v4f6AZFpqpyh35e/85Qf8?=
 =?us-ascii?Q?BHE0sVln6N6TJ97x4ZiPdjMubphSjMnGkzITdZkKDcpwd5E8BXpX42sUuaA5?=
 =?us-ascii?Q?d5KLgS3YxEcGVk3eSSKa0KoetT6/9X/CAcTXHmQDYHsicooxNSi9cuz4rUqh?=
 =?us-ascii?Q?Bx2Osm7K3PLUMHr0LepAyQP0S2ubezan8bDR1s3yfd51ZrFVHPDWnQ7NxfVE?=
 =?us-ascii?Q?dHDIOBpHyvFIYlnh1ynXu6SFBS5moTXXhC4qqelCnK1bjjd4WPkaVq7FIhFU?=
 =?us-ascii?Q?sczYihZY0YFGo77/PKCb5hHw0ahUmp+TzCPSkY4+RiGHrY6eoAsr0eWbzy54?=
 =?us-ascii?Q?8s71m2dARCdL8pLmKtpD/KZoiw2C3rZN8oRSHV7a1N5cmBYSNPsv8J7TJz2C?=
 =?us-ascii?Q?bbUtoXmDSV/4kTLpgq65mgb+fJzwgLZN0jh59CRrCneUpBxG+KWom/dVKCFB?=
 =?us-ascii?Q?9uVr84sGSWFaRgCpS1y7029HKhBx8Mb2Mj/DvzCUgkC0zQffvvnx9DRmBhkM?=
 =?us-ascii?Q?No2ZH3uivz7kNW5DjTOjKhcucPIiGWnhzisQOrrT7YSnMok1KTnXmCayrmT6?=
 =?us-ascii?Q?KguowpM1NxMgTdvzuNZhbvlK4kMBmAP6Pzc5ZxMtJmsjYf/zT2WjkL8mwgkp?=
 =?us-ascii?Q?g847ino+8uUSIEv1q9/9DAwMc33YjI0v4uJCtDUMs7zlPZIcGbvb6YFFVZ73?=
 =?us-ascii?Q?adX92VgadB4Ut65DGaiqEmcEIPZFckmu5t0F1Af7KrPBj0VeIpk3MT3s1kDI?=
 =?us-ascii?Q?+NLtflQ2RkMZI9xKhpB8+RWFWXP7yKQJ0mE4g6sopg2V10XjcZIjiPhc/8Th?=
 =?us-ascii?Q?QWQNLVoUTbpeOV8AAjxDj6OHPYYlWelaM0aTeeOk8DNb6TFzQme9LAgbGEMy?=
 =?us-ascii?Q?IXqqPxGSwB5LtamSElFNT0LVNUIeZzRVi5AOjIgxkMzxItxK4Cz33Cgj9MQE?=
 =?us-ascii?Q?KbjEU2jHGrJ1D2BLpRE46ih2Gf50PBvfTGdc9YOREg9WVKmfEMsaf8EGaJ4w?=
 =?us-ascii?Q?pw5XeSfvbcbgaPgQoZ9FN7Xb79nL+i9uEF3WcI6JSN7ifd2CJSNM1z8GiuQs?=
 =?us-ascii?Q?ua3yZu7z/NuAsKYnIg38phCM9nwm3tCr9li66Lvm0mn7Msl/rTlQkt6U1won?=
 =?us-ascii?Q?kuof4ZM8a3STFoeaJedF0wxBjsfHREi9yaSHNyQqJ+4CMTtc2fnQSNPZ2oVZ?=
 =?us-ascii?Q?n5pDh+9GcNp4TkkLnbD543aWLVcj98OEIUDxW8LSdpoQuC4c0d25nDkXPQJ8?=
 =?us-ascii?Q?CK96YqNBs7R1qln0xjv6VElqZZjIwEv0lCj3pEa4rFLVzJKblu2uz2knoneA?=
 =?us-ascii?Q?jlhMX0sBqzIKqO4h52buwvInpm42yCMXXwg/YwD+I/W9h64Yd6NFrQQTFGEY?=
 =?us-ascii?Q?5Vl5bVEY3b5dIEQ9FitA4GjkptD4z/u26vw3JCzCRzswwjNqVQ4YhVSdBsij?=
 =?us-ascii?Q?HHDeojrKF5FWZsjabnDydk8evBjjHeRn1rY/jkje9ojPd/JPgbUj3AhJOFQW?=
 =?us-ascii?Q?LbAIlyHdXJLTHFDejlF9hSZWOTXxqABilqbGwnE4M8PMRZDwXEBVnu9zYS6Z?=
 =?us-ascii?Q?PbBn82JAhOmHipPM5PgL/BIFFlJPZck=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 82d757c3-ada7-464d-3ce3-08de85bb8b10
X-MS-Exchange-CrossTenant-AuthSource: DS0PR03MB8272.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 13:29:27.2856
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: OXPpaBl+qKVrb7ZaxwBL7gnlQEB7CZOkwjNJvqB0V7C6oAobKiFUHhlv9vs8WMBuqI6vInZLDG5LpCK7gf13k15dkICOaESQnJd95EZmvDQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH5PR03MB7816

Remove the eager-fpu option and cleanup the code accordingly.

The first patch removes the option and includes the justification.
The rest of the patches are cleanup and mostly have no functional change.

I measured a 0.7% geometric mean improvement with this series across a few
different benchmarks (Linux VMs on an AMD host). I'm not sure the
improvement is statistically significant, but it likely indicates it is
no worse than before.

A previous series to do this was submitted here:
https://lore.kernel.org/xen-devel/20240304091307.2295344-1-fouad.hilly@cloud.com/

With the exception of patch 4, I haven't kept authorship and sign-offs
since this is a reimplementation, albeit ending up at a similar place.

Thanks,
Ross


Ross Lagerwall (7):
  x86: Always use eager-fpu
  x86/vmx: Remove lazy FPU support
  x86/svm: Remove lazy FPU support
  x86: Remove fully_eager_fpu
  x86: Remove fpu_initialised/fpu_dirty
  x86/xstate: Stop tracking nonlazy xstate use
  x86: Cleanup cr0.TS flag handling

Wei Liu (1):
  x86/traps: Remove lazy FPU support

 docs/misc/hypfs-paths.pandoc             |   2 -
 docs/misc/xen-command-line.pandoc        |   7 +-
 xen/arch/x86/cpu/common.c                |   3 -
 xen/arch/x86/domain.c                    |   2 +-
 xen/arch/x86/domctl.c                    |   4 +-
 xen/arch/x86/hvm/emulate.c               |  38 +-------
 xen/arch/x86/hvm/hvm.c                   |  16 ++--
 xen/arch/x86/hvm/svm/nestedsvm.c         |  67 +-------------
 xen/arch/x86/hvm/svm/svm.c               |  81 +---------------
 xen/arch/x86/hvm/svm/vmcb.c              |   4 +-
 xen/arch/x86/hvm/vlapic.c                |   3 -
 xen/arch/x86/hvm/vmx/vmcs.c              |   8 +-
 xen/arch/x86/hvm/vmx/vmx.c               |  70 +-------------
 xen/arch/x86/hvm/vmx/vvmx.c              |  15 +--
 xen/arch/x86/i387.c                      | 112 ++---------------------
 xen/arch/x86/include/asm/domain.h        |   6 --
 xen/arch/x86/include/asm/hvm/hvm.h       |   3 -
 xen/arch/x86/include/asm/hvm/svm-types.h |   6 --
 xen/arch/x86/include/asm/hvm/vmx/vmcs.h  |   2 -
 xen/arch/x86/include/asm/i387.h          |   4 +-
 xen/arch/x86/include/asm/spec_ctrl.h     |   1 -
 xen/arch/x86/include/asm/xstate.h        |  17 +---
 xen/arch/x86/pv/misc-hypercalls.c        |   3 +-
 xen/arch/x86/spec_ctrl.c                 |  88 +-----------------
 xen/arch/x86/traps.c                     |  18 ++--
 xen/arch/x86/xstate.c                    |  24 +----
 xen/common/domain.c                      |   2 -
 xen/common/efi/runtime.c                 |   4 +-
 xen/include/xen/sched.h                  |   4 -
 29 files changed, 56 insertions(+), 558 deletions(-)

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 13:29:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 13:29:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257117.1551558 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3DRT-000528-54; Thu, 19 Mar 2026 13:29:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257117.1551558; Thu, 19 Mar 2026 13:29: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 1w3DRT-000521-28; Thu, 19 Mar 2026 13:29:39 +0000
Received: by outflank-mailman (input) for mailman id 1257117;
 Thu, 19 Mar 2026 13:29: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=wl8P=BT=citrix.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1w3DRR-0004oN-Ai
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 13:29:37 +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 ac4fabdd-2397-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 14:29:36 +0100 (CET)
Received: from DS0PR03MB8272.namprd03.prod.outlook.com (2603:10b6:8:28f::23)
 by CH5PR03MB7816.namprd03.prod.outlook.com (2603:10b6:610:210::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.20; Thu, 19 Mar
 2026 13:29:29 +0000
Received: from DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654]) by DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654%5]) with mapi id 15.20.9723.019; Thu, 19 Mar 2026
 13:29: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: ac4fabdd-2397-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sn5S4LLWoWAcwdsSLXvDqtVOZI/l10HD9JTXv4qfYSh+v/RWcXZZULRJalhaeaUg+xFNJwv10W3YTR5dbKX4zILYbB3n4Ov8zltbNLk9pRCQNmAetIcIK0oxd5gKg7UxHHLdcXPE7WhlWAKseLCJBuAUWqIpxySY/k5XGc+mz0BonSuvJKTk0iiZMyCLmrpu2GIg0OZsa2vm4C3ve9Lniib4qLS+XkpjqWwAYiVKo02keEEjEVWbEYH0WVFXixDiLs6pMn/I1r67Vxu5WUWSqEzyYo4FjBeKQCq9e3CEAkyBgvA/a+KAoKDWvD5IIDT3ifcEZPvgLYeFgeGXzh9cJA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vfpfp46eTyMy7pfSeQnpjON24kwtKz4/QB3um9t+Ie4=;
 b=eD9e5QlvoERmpy6EXDnoTGf84inSpdqTsY/6SB249Z2C4az/jkxWytdz1AOcy3q0FUoxk8w89RoGKGU9sqnAd7rdOW5886AYuLMb6B15SGjB8rissxnHZJOGcQGgidbE5BUvUr2JCWh4CFrYJKx81ya0yzOxa2KuNmcPLXbvlGd1gTPCPnrTKe828JO3mSK4DpJx9riW8PF0hnivJCsquh/DlDeJyTPeRosXmJWsFbpbV6qZCxPp+aCzEzul8idGZJAMy3MkTIxJRYYAQ/bD5ztuipGRrm+zheasTVQsc9ZOgcY8smqPhbHc+5XIzfZoCp2EGMt8OXFrLc+Gr4071w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vfpfp46eTyMy7pfSeQnpjON24kwtKz4/QB3um9t+Ie4=;
 b=E4pFsrRZ5OHol2JvI2LmcvMN3/GQPPh9K8LqdIpcAk+dLMRGAKc3xWyJ6h5zi3ld2/mSmSvwLnAD6s9881/U57tc6W5MGusRC5D89hoYQPvS2tqOSeARpiTVjtAPNxit+2u0eB2oovcUs2I9GJkVkd8YgFS1ITa9zSwto5+W2+U=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH v1 1/8] x86: Always use eager-fpu
Date: Thu, 19 Mar 2026 13:29:17 +0000
Message-ID: <20260319132924.1469809-2-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P265CA0059.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2af::15) To DS0PR03MB8272.namprd03.prod.outlook.com
 (2603:10b6:8:28f::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS0PR03MB8272:EE_|CH5PR03MB7816:EE_
X-MS-Office365-Filtering-Correlation-Id: 10c201f1-63c7-4458-1262-08de85bb8d6a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	PwctcuVXhW0DoRdJ4zFdxMrTtvo/JrGFXWRLB7mglFSZgmPRRvsBRkAZSpdS0W+mvTYaSCVxZiWEPI8iXY+SlEim7ulDso8MOlPMB6f90MEb58L8FzIZ59Sg7ev4V5Gaac+3EkZ+fRNHv9cXLHN1pucub3FThnUQRP2pUPiRNMz7Xgu1sfElBfug0Xucy0FSXzVfWiNqo+Cevyq3L96X/LhMgnL048cbA+fO5Yjqsvg2b8nLvWaazGF3viEamgYCj6bnCp5TxlINNQ4RkFdP3vYh6WdJaD97sXMdGZI9QMjzjlizXjEHEj3PAbi+/Vjge77s2sTWnF1NLPlG+d4lTGVTMVHft9xOM/oTVGLQE4NJoAltqZCPm7NYzKHEYBUOZdND0MF2/Qq8Gvw1/xR3rMNjne8iOUHLKR3sK8gGsar5J9eu5DUXc/A+XWWjr+j8bc+1/dDolC7OnsM50m80zRRqA5KvnWXXT+vLKQNPhEuHeDc/lK0ciK5+lyT4/rHMG0RnxrqO6vAekJQBmsHMjxL+DcCFX9EqhIoikgy7OIW+1uYx7/3uWIx/l2izKWHXnaFmuMBcl3mVeiV/Zghz6lSBBYtZCkHeV4yhqlku20FJmgsSikOVmLFkRY4y+6iO4YF7rbpHBwN7lmVu5XBv4qXKitIFfT7wheM8NJ0hs443KFCRVAp0bSrEVDqQpkgbz8UpltJeoulGabNBGPC1sRxHUcKTUF7vX6U/pR4h3bo=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR03MB8272.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?wI1uRyHvJdC2W1tMUoXdTmLy9tuydszLjrPktRBIwFqKBAPrqQIppbMmpnXU?=
 =?us-ascii?Q?ishS5ZZeDDq365NqnjG5Q3kHs9ymaPp5iyDRvRuFh1wp5ZgUQP115YjD3mMn?=
 =?us-ascii?Q?HKDs0h32cloglmLvmJsNn4BK3i6/MPomwPbrRDwq8bff9E4hj2QT+B4ij6tG?=
 =?us-ascii?Q?Wj596ESmF42PhGUXZdlfgPZBaPMTHDwIxrepRydZNbkhg5xqAB9mrC26+CL7?=
 =?us-ascii?Q?t6AubXXuFtqP/xU77dN8LMxiFjJ2vi7d5D72kEo9dJ3qftlT86d6ueqb7Z80?=
 =?us-ascii?Q?+aeri3OFxwZUmjEYZi1gPsYbqtBI82550LNn9wmk9W22WUaf9Z5FJW7aZyXu?=
 =?us-ascii?Q?PigDCxBrAcUycVKdKKlH+4efYNW7z/P476DWxrnswPBLjTjGY6EoCFuphxNk?=
 =?us-ascii?Q?pZYx/FQJHSx8gEsjTG7/6pmZK73e21ESVaxtM13SplKonmcR1dtLmqf2xK2l?=
 =?us-ascii?Q?KRdQvlnP7f6mdtxwvQKCr3u5IN/EzCoYmy47kvfAAxbcYwui9HUgpr1yMbG8?=
 =?us-ascii?Q?meQk7tJMpU9+d/cKIkzNV/G/0Dt68DIVcd4JkNcNnrot/H3Ow0wUWHyApWUi?=
 =?us-ascii?Q?Hmz9RzraUO4csnvrqckP8x/56wbz8etxO16Y9rc8caBy8GchV2phoPXqfy6B?=
 =?us-ascii?Q?TY0jsWtqkldxct7TaztzOfHA0ZX89q2evHHl0lpWTHVlF648MSvU+CZTiErP?=
 =?us-ascii?Q?ULHu2SbL7qixneaLRid2zm1XP9rGPz8JAmDiEQSNj34nbK9RPnvunUHRnwEr?=
 =?us-ascii?Q?XHXcG7ERCQkbk7t4zr81LNXy8YVGrU0+WOxPXU1l27kqQdU96sJlE5cN4ks6?=
 =?us-ascii?Q?kdUsj4zpiMxw31KIkz8W/cOp5K+85XJRwUFoHsXEOR2JgbqFVkQcDgP8Njdj?=
 =?us-ascii?Q?TMcceHqQ3groKiM71KA9EqizaZAN+UMMhN1tJSCm9tgU96abrIe059w1jLMF?=
 =?us-ascii?Q?BbDUOoFasE3flpArxcQ0ssreYyOlWS5dJyNzadB1KBimippXdZGFmD5YJqa0?=
 =?us-ascii?Q?nRkvsb/JEoVLszO+rE854KKdQmbJ9BbFe4nwAEdBXfdbmtnnKoSXjaqLy/l/?=
 =?us-ascii?Q?ShfnobhG0L8SKGERtdUaziABhB3aHPv6RCD5qfGjqlqzAfXLGYFVx8eektdA?=
 =?us-ascii?Q?KBl9MVNwEmYM7vcQoWs9y8HPDM801MpoA17IuH5xR8awVpvlDNVfM79vu0Sy?=
 =?us-ascii?Q?59OWZun8nhBB3sriCAuD7BFht8UhAV1ZOoPPO3obN69zNtsH7tx/fx/kwUyK?=
 =?us-ascii?Q?lDvAuPmZjmQLjJUTO5yWJVT5c6d4tPg7zT5rjj48SKFno4Rkjc0X4pWwY6wG?=
 =?us-ascii?Q?YEUbD6rn06OF4g/JK+S5p7xyK2BiKxHjQvKYEcmYkiLYzE291gzUOftuSrOs?=
 =?us-ascii?Q?xqwFDflR6+E0YCgKdWviMkHxA5BOS5BXBB87B7DS0bfjLdV2ud9E5x6PV1H2?=
 =?us-ascii?Q?pAFZAHxXbzE9BwhB2i4ykHoyS1D+y5xArlYEdEPAO1ZLEsjoW2msuyMKhZ4L?=
 =?us-ascii?Q?FJvdb1ct62DQR4bx19fSh6suc5uresiHSpYtPHtJdctk2lfcupKZ6FAkEDYu?=
 =?us-ascii?Q?CFSlO/E9EnuUt8NPIifvNYBGLcpB44547awG9vswKu2NhKD2NqP+q0D/epRG?=
 =?us-ascii?Q?sboAACnBnPXQwLDuzYDtyOa3w4UokA3xoigGyZj4UFvJninvG9PBfxI+7A9D?=
 =?us-ascii?Q?c/UnHgjsZf8j4teL25cTDCNdahcw/k2FjCVRDbJvVorAcVTpuZw6JxmgR8ru?=
 =?us-ascii?Q?l/Z8syziEQu92W0lmAbX70Cx772QcVI=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 10c201f1-63c7-4458-1262-08de85bb8d6a
X-MS-Exchange-CrossTenant-AuthSource: DS0PR03MB8272.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 13:29:31.1842
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 9ChuwEmEOZKBGmxyjhcmpaV0twMjOruI0xx83PK0o2Q1pL3D3GjHL0rMHix1v7nsZJTCSb6voIwpC2Sz4mxOB4Kj7lMKOv04MQw88Hhjg1w=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH5PR03MB7816

Lazy FPU avoids some work during a context switch but pushes the costs
elsewhere:

* For a workload running some Windows VMs, I measured about 83% of
  context switches out had used the FPU so most of the time the FPU
  save/restore is not avoided, just delayed.
* Setting/clearing the cr0.TS bit is serializing and reportedly slower
  than the processor optimized xsave/restore.
* Linux uses PKRU so a partial xsave/restore is performed on each
  context switch anyway, followed by a second xsave/restore at some
  point during execution.

There is no measurable performance benefit for using lazy FPU and it
adds unwanted complexity so remove the option and always use eager-fpu.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 docs/misc/hypfs-paths.pandoc         |  2 -
 docs/misc/xen-command-line.pandoc    |  7 +--
 xen/arch/x86/i387.c                  |  2 +-
 xen/arch/x86/include/asm/spec_ctrl.h |  1 -
 xen/arch/x86/spec_ctrl.c             | 88 ++--------------------------
 5 files changed, 6 insertions(+), 94 deletions(-)

diff --git a/docs/misc/hypfs-paths.pandoc b/docs/misc/hypfs-paths.pandoc
index e86f7d0dbef9..1553cb0bcb7f 100644
--- a/docs/misc/hypfs-paths.pandoc
+++ b/docs/misc/hypfs-paths.pandoc
@@ -108,12 +108,10 @@ A populated Xen hypervisor file system might look like the following example:
             active-hvm/      directory for mitigations active in hvm doamins
                 msr-spec-ctrl "No" or "Yes"
                 rsb          "No" or "Yes"
-                eager-fpu    "No" or "Yes"
                 md-clear     "No" or "Yes"
             active-pv/       directory for mitigations active in pv doamins
                 msr-spec-ctrl "No" or "Yes"
                 rsb          "No" or "Yes"
-                eager-fpu    "No" or "Yes"
                 md-clear     "No" or "Yes"
                 xpti         "No" or list of "dom0", "domU", "PCID-on"
                 l1tf-shadow  "No" or list of "dom0", "domU"
diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index ebdca007d26b..6c77129732bf 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2470,7 +2470,7 @@ By default SSBD will be mitigated at runtime (i.e `ssbd=runtime`).
 >              {msr-sc,rsb,verw,{ibpb,bhb}-entry}=<bool>|{pv,hvm}=<bool>,
 >              bti-thunk=retpoline|lfence|jmp,bhb-seq=short|tsx|long,
 >              {ibrs,ibpb,ssbd,psfd,
->              eager-fpu,l1d-flush,branch-harden,srb-lock,
+>              l1d-flush,branch-harden,srb-lock,
 >              unpriv-mmio,gds-mit,div-scrub,lock-harden,
 >              bhi-dis-s,bp-spec-reduce,ibpb-alt}=<bool> ]`
 
@@ -2574,11 +2574,6 @@ On hardware supporting IBPB (Indirect Branch Prediction Barrier), the `ibpb=`
 option can be used to force (the default) or prevent Xen from issuing branch
 prediction barriers on vcpu context switches.
 
-On all hardware, the `eager-fpu=` option can be used to force or prevent Xen
-from using fully eager FPU context switches.  This is currently implemented as
-a global control.  By default, Xen will choose to use fully eager context
-switches on hardware believed to speculate past #NM exceptions.
-
 On hardware supporting L1D_FLUSH, the `l1d-flush=` option can be used to force
 or prevent Xen from issuing an L1 data cache flush on each VMEntry.
 Irrespective of Xen's setting, the feature is virtualised for HVM guests to
diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
index b84cd6f7a9e1..954ba3b1799b 100644
--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -297,7 +297,7 @@ void save_fpu_enable(void)
 /* Initialize FPU's context save area */
 int vcpu_init_fpu(struct vcpu *v)
 {
-    v->arch.fully_eager_fpu = opt_eager_fpu;
+    v->arch.fully_eager_fpu = true;
 
     return xstate_alloc_save_area(v);
 }
diff --git a/xen/arch/x86/include/asm/spec_ctrl.h b/xen/arch/x86/include/asm/spec_ctrl.h
index 505e3ab863f0..8f82533c416a 100644
--- a/xen/arch/x86/include/asm/spec_ctrl.h
+++ b/xen/arch/x86/include/asm/spec_ctrl.h
@@ -79,7 +79,6 @@ static always_inline void spec_ctrl_new_guest_context(void)
 extern int8_t opt_ibpb_ctxt_switch;
 extern bool opt_ssbd;
 extern int8_t opt_bhi_dis_s;
-extern int8_t opt_eager_fpu;
 extern int8_t opt_l1d_flush;
 
 extern bool bsp_delay_spec_ctrl;
diff --git a/xen/arch/x86/spec_ctrl.c b/xen/arch/x86/spec_ctrl.c
index dd0413e1fc13..bc8538a56f0e 100644
--- a/xen/arch/x86/spec_ctrl.c
+++ b/xen/arch/x86/spec_ctrl.c
@@ -61,7 +61,6 @@ static int8_t __initdata opt_psfd = -1;
 int8_t __ro_after_init opt_bhi_dis_s = -1;
 
 int8_t __ro_after_init opt_ibpb_ctxt_switch = -1;
-int8_t __ro_after_init opt_eager_fpu = -1;
 int8_t __ro_after_init opt_l1d_flush = -1;
 static bool __initdata opt_branch_harden =
     IS_ENABLED(CONFIG_SPECULATIVE_HARDEN_BRANCH);
@@ -104,8 +103,6 @@ static int __init cf_check parse_spec_ctrl(const char *s)
             opt_msr_sc_pv = false;
             opt_msr_sc_hvm = false;
 
-            opt_eager_fpu = 0;
-
             if ( opt_xpti_hwdom < 0 )
                 opt_xpti_hwdom = 0;
             if ( opt_xpti_domu < 0 )
@@ -336,8 +333,6 @@ static int __init cf_check parse_spec_ctrl(const char *s)
         /* Misc settings. */
         else if ( (val = parse_boolean("ibpb", s, ss)) >= 0 )
             opt_ibpb_ctxt_switch = val;
-        else if ( (val = parse_boolean("eager-fpu", s, ss)) >= 0 )
-            opt_eager_fpu = val;
         else if ( (val = parse_boolean("l1d-flush", s, ss)) >= 0 )
             opt_l1d_flush = val;
         else if ( (val = parse_boolean("branch-harden", s, ss)) >= 0 )
@@ -648,32 +643,30 @@ static void __init print_details(enum ind_thunk thunk)
      * mitigation support for guests.
      */
 #ifdef CONFIG_HVM
-    printk("  Support for HVM VMs:%s%s%s%s%s%s%s%s\n",
+    printk("  Support for HVM VMs:%s%s%s%s%s%s%s\n",
            (boot_cpu_has(X86_FEATURE_SC_MSR_HVM) ||
             boot_cpu_has(X86_FEATURE_SC_RSB_HVM) ||
             boot_cpu_has(X86_FEATURE_IBPB_ENTRY_HVM) ||
             opt_bhb_entry_hvm || amd_virt_spec_ctrl ||
-            opt_eager_fpu || opt_verw_hvm)           ? ""               : " None",
+            opt_verw_hvm)                            ? ""               : " None",
            boot_cpu_has(X86_FEATURE_SC_MSR_HVM)      ? " MSR_SPEC_CTRL" : "",
            (boot_cpu_has(X86_FEATURE_SC_MSR_HVM) ||
             amd_virt_spec_ctrl)                      ? " MSR_VIRT_SPEC_CTRL" : "",
            boot_cpu_has(X86_FEATURE_SC_RSB_HVM)      ? " RSB"           : "",
-           opt_eager_fpu                             ? " EAGER_FPU"     : "",
            opt_verw_hvm                              ? " VERW"          : "",
            boot_cpu_has(X86_FEATURE_IBPB_ENTRY_HVM)  ? " IBPB-entry"    : "",
            opt_bhb_entry_hvm                         ? " BHB-entry"     : "");
 
 #endif
 #ifdef CONFIG_PV
-    printk("  Support for PV VMs:%s%s%s%s%s%s%s\n",
+    printk("  Support for PV VMs:%s%s%s%s%s%s\n",
            (boot_cpu_has(X86_FEATURE_SC_MSR_PV) ||
             boot_cpu_has(X86_FEATURE_SC_RSB_PV) ||
             boot_cpu_has(X86_FEATURE_IBPB_ENTRY_PV) ||
             opt_bhb_entry_pv ||
-            opt_eager_fpu || opt_verw_pv)            ? ""               : " None",
+            opt_verw_pv)                             ? ""               : " None",
            boot_cpu_has(X86_FEATURE_SC_MSR_PV)       ? " MSR_SPEC_CTRL" : "",
            boot_cpu_has(X86_FEATURE_SC_RSB_PV)       ? " RSB"           : "",
-           opt_eager_fpu                             ? " EAGER_FPU"     : "",
            opt_verw_pv                               ? " VERW"          : "",
            boot_cpu_has(X86_FEATURE_IBPB_ENTRY_PV)   ? " IBPB-entry"    : "",
            opt_bhb_entry_pv                          ? " BHB-entry"     : "");
@@ -959,75 +952,6 @@ static bool __init rsb_is_full_width(void)
     return true;
 }
 
-/* Calculate whether this CPU speculates past #NM */
-static bool __init should_use_eager_fpu(void)
-{
-    /*
-     * Assume all unrecognised processors are ok.  This is only known to
-     * affect Intel Family 6 processors.
-     */
-    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
-         boot_cpu_data.family != 6 )
-        return false;
-
-    switch ( boot_cpu_data.model )
-    {
-        /*
-         * Core processors since at least Nehalem are vulnerable.
-         */
-    case 0x1e: /* Nehalem */
-    case 0x1f: /* Auburndale / Havendale */
-    case 0x1a: /* Nehalem EP */
-    case 0x2e: /* Nehalem EX */
-    case 0x25: /* Westmere */
-    case 0x2c: /* Westmere EP */
-    case 0x2f: /* Westmere EX */
-    case 0x2a: /* SandyBridge */
-    case 0x2d: /* SandyBridge EP/EX */
-    case 0x3a: /* IvyBridge */
-    case 0x3e: /* IvyBridge EP/EX */
-    case 0x3c: /* Haswell */
-    case 0x3f: /* Haswell EX/EP */
-    case 0x45: /* Haswell D */
-    case 0x46: /* Haswell H */
-    case 0x3d: /* Broadwell */
-    case 0x47: /* Broadwell H */
-    case 0x4f: /* Broadwell EP/EX */
-    case 0x56: /* Broadwell D */
-    case 0x4e: /* Skylake M */
-    case 0x55: /* Skylake X */
-    case 0x5e: /* Skylake D */
-    case 0x66: /* Cannonlake */
-    case 0x67: /* Cannonlake? */
-    case 0x8e: /* Kabylake M */
-    case 0x9e: /* Kabylake D */
-        return true;
-
-        /*
-         * Atom processors are not vulnerable.
-         */
-    case 0x1c: /* Pineview */
-    case 0x26: /* Lincroft */
-    case 0x27: /* Penwell */
-    case 0x35: /* Cloverview */
-    case 0x36: /* Cedarview */
-    case 0x37: /* Baytrail / Valleyview (Silvermont) */
-    case 0x4d: /* Avaton / Rangely (Silvermont) */
-    case 0x4c: /* Cherrytrail / Brasswell */
-    case 0x4a: /* Merrifield */
-    case 0x5a: /* Moorefield */
-    case 0x5c: /* Goldmont */
-    case 0x5f: /* Denverton */
-    case 0x7a: /* Gemini Lake */
-        return false;
-
-    default:
-        printk("Unrecognised CPU model %#x - assuming vulnerable to LazyFPU\n",
-               boot_cpu_data.model);
-        return true;
-    }
-}
-
 /*
  * https://www.amd.com/content/dam/amd/en/documents/corporate/cr/speculative-return-stack-overflow-whitepaper.pdf
  */
@@ -2221,10 +2145,6 @@ void __init init_speculation_mitigations(void)
 
     div_calculations(hw_smt_enabled);
 
-    /* Check whether Eager FPU should be enabled by default. */
-    if ( opt_eager_fpu == -1 )
-        opt_eager_fpu = should_use_eager_fpu();
-
     /* (Re)init BSP state now that default_scf has been calculated. */
     init_shadow_spec_ctrl_state(get_cpu_info());
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 13:29:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 13:29:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257118.1551568 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3DRW-0005Hp-CZ; Thu, 19 Mar 2026 13:29:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257118.1551568; Thu, 19 Mar 2026 13: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 1w3DRW-0005Hi-8O; Thu, 19 Mar 2026 13:29:42 +0000
Received: by outflank-mailman (input) for mailman id 1257118;
 Thu, 19 Mar 2026 13:29:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wl8P=BT=citrix.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1w3DRU-0004oN-TQ
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 13:29:41 +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 ae87c39f-2397-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 14:29:40 +0100 (CET)
Received: from DS0PR03MB8272.namprd03.prod.outlook.com (2603:10b6:8:28f::23)
 by SA5PR03MB989126.namprd03.prod.outlook.com (2603:10b6:806:4d6::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.20; Thu, 19 Mar
 2026 13:29:35 +0000
Received: from DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654]) by DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654%5]) with mapi id 15.20.9723.019; Thu, 19 Mar 2026
 13:29: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: ae87c39f-2397-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JfYug00C0Q8CpFjiqJvXhD4PuEY5A8DP479OochV43ghXHXCuBkD+GcTTtrf0aUYY9F+mLTDlNsOn3L3+YpiVCGNu8tQxGkvnHX019mlzWUvvjKko6W3M+mNhM4qvEMcyNAVYJ7FXhzuID7BWUjuWdop2/LhQdpzRxb2XbYfFXW2wDB47ADr+8m3owciUkut2qIFT/DJFIabPQD0J9/oxWYQEUqwnLLZ9e0GjwEL4z6+n3mqhfZcWO8N1bP0pItlEo43Brf6FsbObMZPYM2eVwLyMB2HcKGtyZimxGnVozUyC9+7VLMuojHBHHTNOUKg2fmvFjD4xX0lcRfzhkRROg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/i+towAPeqocTRa3nc54VevaTAJAqB/WA315HCtvc0Q=;
 b=HidHL9Dhvza+l04Z/s52NDB8Na3WbSHfWMve99PLZFBTO5N3McnQPBszYH9CEfzGovjUK5VcS60Xs1VsO4/umhGqeuHGaTdCHeK+DUjiocf9V6FM6O5yHP/jzZYAPvVJXTy7dcR9ZCVSZFt1Gejw+2MSYqDTSiumdkadQsDhM6yrCDBUzARcwiY66q8WIxF54amMC4c4NioBIQseNBNQarXk+1ipdkbY8alGqvutyOD7mx4jeJ825rohS+DxCHIjwDW9ryYAI6PQ/9GUmz69fCKXzhIh6k/ZqhTcLM0eVjlqo7KrmQcze3252+uOmoeyNkOkwVeO5CEEGJiDrvKCuQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/i+towAPeqocTRa3nc54VevaTAJAqB/WA315HCtvc0Q=;
 b=EUubIL8q8eKTSbRFERfQfrZq7MLSRp/vJs+hfvaJeiA+BP62zyQvZACEzJY2rJSdN6CKkOA9TPyE0jfuasWvobqOzI8TbQLoO3ioaj3fLULheV8xH/YUrdMCeE6klAJdCBGwZfdSSlx2wroGCNwbXsgN7EdshhlJVVuDqCe42CA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH v1 2/8] x86/vmx: Remove lazy FPU support
Date: Thu, 19 Mar 2026 13:29:18 +0000
Message-ID: <20260319132924.1469809-3-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P265CA0068.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2af::22) To DS0PR03MB8272.namprd03.prod.outlook.com
 (2603:10b6:8:28f::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS0PR03MB8272:EE_|SA5PR03MB989126:EE_
X-MS-Office365-Filtering-Correlation-Id: 744ed12c-b5e4-4c91-37e2-08de85bb8fad
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	WLl6nY1+Ndg1QZNDbmd2DvPi+ENMpouAPzh0T5WmyrO6P0P3PP+SmI+6wG55Og7Q2dLUWXR+H6nQasU238WM1z9iK0KnAoR+XzFze94xigLCfeyyO6spt8u+Zv06YP15wNX4uJNKphrV3wOJ8UvHOYN/LMrJoGumJHg/JVYCve/ca7Vuz99r1leuRTiKPI8VpSGP56bz/KV/IKLGUpX2M9NWdz1PPxl4dnN0n1qAlHELCfDi1NTI3alWm2a/wWz2VWBHP1wORXvJXECNHHsggCaln/0vMkTsas/rgbhXLY1rQRfg0vW59sSYTeQXUHzTwov0UNS1/5Ov+ED5ROKoF5iX2WfrjIXqW6rxatPVPekky5YSnPB6PCfuZpoXmE3VacfU3NnnYN/InXKmIR23zrMf0Wwh98XSTDWKrASwoG2CSGfRsc5YyeS+pg1u5g2qnXusEXQDJH7nRtyfVTPYFGTIMe+gvikxN0A7W9ESDl9r+ejvbCFKcljuQEAWj3OXE4TL3bOBZws4i+u5ATa8ILaKSLy7xdDB59QOrFVPF6HzFYLt8rhFb2o1/2oFoLLTrNvDjsir9juRkbza/ZpDxHnbYg1fg8RJ71NJovXsDwWHLpIXl3d21K/G5qu9OEzSBA+gbNFn+cCmNasR/3PDHxYsKvV7XfivaU87EBy0nz2/tU2nyXIYNRJugRp5vFgtDbJndCUGvQisvHqIjORmssDm/BU3opikqSVk815K4Kg=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR03MB8272.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?sLNeTTBIYGINJ+HYWPfCfvGDq0PHF37IZ1A3m6Y5gsnO9ZalLUzioWhFld1i?=
 =?us-ascii?Q?D8WlQ8ZBnHXeQQ4ItRkADrMHshUGAHKZZ+iCha38mI20gngs6zRSqRXpidH1?=
 =?us-ascii?Q?NbAi2jJUJKHOUGLn4TWvJlI2NG+QZwvWkQzqryuN4LTkq72vrInTOfxuX0Ho?=
 =?us-ascii?Q?5eSRN0kjjdEkVn6VgQCMcvCADvV3rSofURunRExSpqVzkNURPILIXyxRelkH?=
 =?us-ascii?Q?MCMIyEXMpZ6v/StwJm7FiI5mwNHbzIZhFECaXCEs9bek3O/RKpAJ+yeXdcLC?=
 =?us-ascii?Q?IcdT4HGh8OIPbsdLKg9yJOCm6XFkDk0wOzNeIPMmYiw8XTJvtFXBIKptrYpA?=
 =?us-ascii?Q?JTcLL4PiwDbwqxg5M9IOC+zTGOj8eWmv80LhG3MrvVbKNkgY7D6UUyhjj9sa?=
 =?us-ascii?Q?kOeAJmpXSDDpwG9jxq4jNNtS1DuGupaWPNqjHcZcvfVL+k9SNGNnPQzRk1SL?=
 =?us-ascii?Q?br82OpIKOauEan/oL94MhMMx6hrnjTOKDz67MOjmQjhQ2Q9vP/M5gVV3xdQY?=
 =?us-ascii?Q?hWNKHPHSE6fkdoF4LZBnQ2tpVr8Ef+DDcDO9Pjt/DugMNq34LHchw5iVHfWr?=
 =?us-ascii?Q?IPjqxx0YcJ1w715+8L/APJ4DOmKVj94h7xjzcB/omQpAPImMU6101qlzWTsk?=
 =?us-ascii?Q?7vWQlrJcvPva3++eWor0Qzc6cIiMRL/pP5qhEKxuRWijbuY/YV7NBTOWVd7T?=
 =?us-ascii?Q?W5tUb9kyi4+Wx3C+FnX3KJj2uC4wcNYsLIIsb+sdJOS9LfOcixsjO/KWrKUV?=
 =?us-ascii?Q?sDmcDpicE7NKjKGTXhwu3TK4+Q6175PiHz6M18MFZ1kfa9SAA36CKBYeRxF2?=
 =?us-ascii?Q?h7oLn3UM5RoHuJ4WF83WXx+LjTn7HYO4N5dUsppXzS7CD6qOX/zj1hcHC9V1?=
 =?us-ascii?Q?D0h6D7GbP1bOp/aD96WZzvnTviYwdbOJN6h+hnPR9gFtOYSwVFRU2yKEdJe1?=
 =?us-ascii?Q?zp+zjEs5B2vqYGNFp3LSm2YPc/pCSngmFVmFfidP+JP32dSFCABcuNwpwFin?=
 =?us-ascii?Q?vtbjVAaZgyMS6VGkLiLoMO1Lkv0svLRLCPNUnwbz0Aejy/5gL7cAZ5J0pD59?=
 =?us-ascii?Q?wUcgDCfJyCidMiYVCs+el/lj78LMrtt5LJ+ld58ISAfuvwMyBoraa2fTEz1I?=
 =?us-ascii?Q?aK4vRxd2ldNykuPQ5u44sXFWGsApZ4GXr8d9lbRbESfwd6wOT/wJnbE0/UcJ?=
 =?us-ascii?Q?CFqmdta4c8CIM9D9unabLddOaKz1nmDc/bOty+ebVO/wiU9zkrKoMoI9Omwu?=
 =?us-ascii?Q?ub+MU3+c/Wl4jVtEyA51hm7frCm9YM1MZ0OpOCKepZy4dSE0MrgLWly92L6A?=
 =?us-ascii?Q?2pi0DNPBEl5i4jflTs+wVTiNQKNKiIsXtHiHYbHaFwUpA3G3BYsGVA5vP6E+?=
 =?us-ascii?Q?qLoIGPEHyXfJfSStTVjI+FRHKH3c98WKjq8ZFRTtLPv7CFHfTdAREGjau8UY?=
 =?us-ascii?Q?x2AxEN2EWkL1F8itZFyri2/ob/4lq3OCnS/DQqq68owknahvWtHtB+juDIea?=
 =?us-ascii?Q?+DapqA78GPKzKmH5kG7dph18P7a3zbMEaAiwBj5ynzSVVtCtk4lXU1HMhRJ5?=
 =?us-ascii?Q?zHP6YB5pEyce36/ADF5zhga0VjnAVisl+5ScPVq03J9NrXk1SmP3uvaU2Upa?=
 =?us-ascii?Q?n+SqWrmMsGxgNMZxxIh7Ko9k4kkoQdYU1hVIon9zy7eDQ/dMNosIdsdTB3Q6?=
 =?us-ascii?Q?3PA4gLvSCMgStBhgmfmVyapFRfQYi52tg+N0kM814DsAztiotGIk5yMIXIxP?=
 =?us-ascii?Q?uQ7491sbCZrbDMlS5fvUWmqn09g0SQI=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 744ed12c-b5e4-4c91-37e2-08de85bb8fad
X-MS-Exchange-CrossTenant-AuthSource: DS0PR03MB8272.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 13:29:35.2754
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: OOz5oP5S0DjtYyNcMp9k48tc+O4cjnaFhDN2r53/wXGpRIwFWMLkLka3o24FEa6cWqaB13oTX2KCj7kF8G/EZfqe9zztl7qBMib7TeyhlW8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PR03MB989126

Remove lazy FPU support from the VMX code since fully_eager_fpu is now
always true.

No functional change intended.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/arch/x86/hvm/vmx/vmcs.c             |  8 +--
 xen/arch/x86/hvm/vmx/vmx.c              | 70 +------------------------
 xen/arch/x86/hvm/vmx/vvmx.c             | 15 +-----
 xen/arch/x86/include/asm/hvm/vmx/vmcs.h |  2 -
 4 files changed, 5 insertions(+), 90 deletions(-)

diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index c2e7f9aed39f..8e52ef4d497a 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -1247,10 +1247,7 @@ static int construct_vmcs(struct vcpu *v)
     __vmwrite(HOST_TR_SELECTOR, TSS_SELECTOR);
 
     /* Host control registers. */
-    v->arch.hvm.vmx.host_cr0 = read_cr0() & ~X86_CR0_TS;
-    if ( !v->arch.fully_eager_fpu )
-        v->arch.hvm.vmx.host_cr0 |= X86_CR0_TS;
-    __vmwrite(HOST_CR0, v->arch.hvm.vmx.host_cr0);
+    __vmwrite(HOST_CR0, read_cr0());
     __vmwrite(HOST_CR4, mmu_cr4_features);
     if ( cpu_has_vmx_efer )
         __vmwrite(HOST_EFER, read_efer());
@@ -1330,8 +1327,7 @@ static int construct_vmcs(struct vcpu *v)
     __vmwrite(VMCS_LINK_POINTER, ~0UL);
 
     v->arch.hvm.vmx.exception_bitmap = HVM_TRAP_MASK
-              | (paging_mode_hap(d) ? 0 : (1U << X86_EXC_PF))
-              | (v->arch.fully_eager_fpu ? 0 : (1U << X86_EXC_NM));
+              | (paging_mode_hap(d) ? 0 : (1U << X86_EXC_PF));
 
     if ( cpu_has_vmx_notify_vm_exiting )
         __vmwrite(NOTIFY_WINDOW, vm_notify_window);
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 82c55f49aea9..03daf2f52bf2 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -68,7 +68,6 @@ static void cf_check vmx_update_guest_cr(
     struct vcpu *v, unsigned int cr, unsigned int flags);
 static void cf_check vmx_update_guest_efer(struct vcpu *v);
 static void cf_check vmx_wbinvd_intercept(void);
-static void cf_check vmx_fpu_dirty_intercept(void);
 static int cf_check vmx_msr_read_intercept(
     unsigned int msr, uint64_t *msr_content);
 static int cf_check vmx_msr_write_intercept(
@@ -1130,41 +1129,6 @@ static int cf_check vmx_load_vmcs_ctxt(struct vcpu *v, struct hvm_hw_cpu *ctxt)
     return 0;
 }
 
-static void vmx_fpu_enter(struct vcpu *v)
-{
-    vcpu_restore_fpu_lazy(v);
-    v->arch.hvm.vmx.exception_bitmap &= ~(1u << X86_EXC_NM);
-    vmx_update_exception_bitmap(v);
-    v->arch.hvm.vmx.host_cr0 &= ~X86_CR0_TS;
-    __vmwrite(HOST_CR0, v->arch.hvm.vmx.host_cr0);
-}
-
-static void cf_check vmx_fpu_leave(struct vcpu *v)
-{
-    ASSERT(!v->fpu_dirtied);
-    ASSERT(read_cr0() & X86_CR0_TS);
-
-    if ( !(v->arch.hvm.vmx.host_cr0 & X86_CR0_TS) )
-    {
-        v->arch.hvm.vmx.host_cr0 |= X86_CR0_TS;
-        __vmwrite(HOST_CR0, v->arch.hvm.vmx.host_cr0);
-    }
-
-    /*
-     * If the guest does not have TS enabled then we must cause and handle an
-     * exception on first use of the FPU. If the guest *does* have TS enabled
-     * then this is not necessary: no FPU activity can occur until the guest
-     * clears CR0.TS, and we will initialise the FPU when that happens.
-     */
-    if ( !(v->arch.hvm.guest_cr[0] & X86_CR0_TS) )
-    {
-        v->arch.hvm.hw_cr[0] |= X86_CR0_TS;
-        __vmwrite(GUEST_CR0, v->arch.hvm.hw_cr[0]);
-        v->arch.hvm.vmx.exception_bitmap |= (1u << X86_EXC_NM);
-        vmx_update_exception_bitmap(v);
-    }
-}
-
 static void cf_check vmx_ctxt_switch_from(struct vcpu *v)
 {
     /*
@@ -1187,8 +1151,6 @@ static void cf_check vmx_ctxt_switch_from(struct vcpu *v)
         vmx_vmcs_reload(v);
     }
 
-    if ( !v->arch.fully_eager_fpu )
-        vmx_fpu_leave(v);
     vmx_save_guest_msrs(v);
     vmx_restore_host_msrs();
     vmx_save_dr(v);
@@ -1771,17 +1733,6 @@ static void cf_check vmx_update_guest_cr(
         else
             nvmx_set_cr_read_shadow(v, 0);
 
-        if ( !(v->arch.hvm.guest_cr[0] & X86_CR0_TS) )
-        {
-            if ( v != current )
-            {
-                if ( !v->arch.fully_eager_fpu )
-                    hw_cr0_mask |= X86_CR0_TS;
-            }
-            else if ( v->arch.hvm.hw_cr[0] & X86_CR0_TS )
-                vmx_fpu_enter(v);
-        }
-
         realmode = !(v->arch.hvm.guest_cr[0] & X86_CR0_PE);
 
         if ( !vmx_unrestricted_guest(v) &&
@@ -2915,7 +2866,6 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
     .update_guest_cr      = vmx_update_guest_cr,
     .update_guest_efer    = vmx_update_guest_efer,
     .cpuid_policy_changed = vmx_cpuid_policy_changed,
-    .fpu_leave            = vmx_fpu_leave,
     .set_guest_pat        = vmx_set_guest_pat,
     .get_guest_pat        = vmx_get_guest_pat,
     .set_tsc_offset       = vmx_set_tsc_offset,
@@ -2927,7 +2877,6 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
     .cpu_up               = vmx_cpu_up,
     .cpu_down             = vmx_cpu_down,
     .wbinvd_intercept     = vmx_wbinvd_intercept,
-    .fpu_dirty_intercept  = vmx_fpu_dirty_intercept,
     .msr_read_intercept   = vmx_msr_read_intercept,
     .msr_write_intercept  = vmx_msr_write_intercept,
     .handle_cd            = vmx_handle_cd,
@@ -3281,20 +3230,6 @@ void update_guest_eip(void)
         hvm_inject_hw_exception(X86_EXC_DB, X86_EVENT_NO_EC);
 }
 
-static void cf_check vmx_fpu_dirty_intercept(void)
-{
-    struct vcpu *curr = current;
-
-    vmx_fpu_enter(curr);
-
-    /* Disable TS in guest CR0 unless the guest wants the exception too. */
-    if ( !(curr->arch.hvm.guest_cr[0] & X86_CR0_TS) )
-    {
-        curr->arch.hvm.hw_cr[0] &= ~X86_CR0_TS;
-        __vmwrite(GUEST_CR0, curr->arch.hvm.hw_cr[0]);
-    }
-}
-
 static void vmx_dr_access(unsigned long exit_qualification,
                           struct cpu_user_regs *regs)
 {
@@ -4543,10 +4478,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_regs *regs)
                 domain_pause_for_debugger();
             }
             break;
-        case X86_EXC_NM:
-            TRACE(TRC_HVM_TRAP, vector);
-            vmx_fpu_dirty_intercept();
-            break;
+
         case X86_EXC_PF:
             __vmread(EXIT_QUALIFICATION, &exit_qualification);
             __vmread(VM_EXIT_INTR_ERROR_CODE, &ecode);
diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
index 38952f06961e..e4cdfe55c18e 100644
--- a/xen/arch/x86/hvm/vmx/vvmx.c
+++ b/xen/arch/x86/hvm/vmx/vvmx.c
@@ -1238,9 +1238,6 @@ static void virtual_vmentry(struct cpu_user_regs *regs)
     regs->rsp = get_vvmcs(v, GUEST_RSP);
     regs->rflags = get_vvmcs(v, GUEST_RFLAGS);
 
-    /* updating host cr0 to sync TS bit */
-    __vmwrite(HOST_CR0, v->arch.hvm.vmx.host_cr0);
-
     /* Setup virtual ETP for L2 guest*/
     if ( nestedhvm_paging_mode_hap(v) )
         /* This will setup the initial np2m for the nested vCPU */
@@ -1468,9 +1465,6 @@ static void virtual_vmexit(struct cpu_user_regs *regs)
     /* VM exit clears all bits except bit 1 */
     regs->rflags = X86_EFLAGS_MBS;
 
-    /* updating host cr0 to sync TS bit */
-    __vmwrite(HOST_CR0, v->arch.hvm.vmx.host_cr0);
-
     if ( cpu_has_vmx_virtual_intr_delivery )
         nvmx_update_apicv(v);
 
@@ -2458,19 +2452,14 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs,
         __vmread(VM_EXIT_INTR_INFO, &intr_info);
         vector = intr_info & INTR_INFO_VECTOR_MASK;
         /*
-         * decided by L0 and L1 exception bitmap, if the vetor is set by
-         * both, L0 has priority on #PF and #NM, L1 has priority on others
+         * decided by L0 and L1 exception bitmap, if the vector is set by
+         * both, L0 has priority on #PF, L1 has priority on others
          */
         if ( vector == X86_EXC_PF )
         {
             if ( paging_mode_hap(v->domain) )
                 nvcpu->nv_vmexit_pending = 1;
         }
-        else if ( vector == X86_EXC_NM )
-        {
-            if ( v->fpu_dirtied )
-                nvcpu->nv_vmexit_pending = 1;
-        }
         else if ( (intr_info & valid_mask) == valid_mask )
         {
             exec_bitmap = get_vvmcs(v, EXCEPTION_BITMAP);
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
index 879ec10cefd0..88bded5190c9 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
@@ -149,8 +149,6 @@ struct vmx_vcpu {
     DECLARE_BITMAP(eoi_exit_bitmap, X86_IDT_VECTORS);
     struct pi_desc       pi_desc;
 
-    unsigned long        host_cr0;
-
     /* Do we need to tolerate a spurious EPT_MISCONFIG VM exit? */
     bool                 ept_spurious_misconfig;
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 13:29:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 13:29:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257119.1551574 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3DRW-0005Oq-RJ; Thu, 19 Mar 2026 13:29:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257119.1551574; Thu, 19 Mar 2026 13: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 1w3DRW-0005NB-Mh; Thu, 19 Mar 2026 13:29:42 +0000
Received: by outflank-mailman (input) for mailman id 1257119;
 Thu, 19 Mar 2026 13:29:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wl8P=BT=citrix.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1w3DRV-0004oN-Tb
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 13:29:42 +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 af03a94b-2397-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 14:29:41 +0100 (CET)
Received: from DS0PR03MB8272.namprd03.prod.outlook.com (2603:10b6:8:28f::23)
 by SA5PR03MB989126.namprd03.prod.outlook.com (2603:10b6:806:4d6::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.20; Thu, 19 Mar
 2026 13:29:38 +0000
Received: from DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654]) by DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654%5]) with mapi id 15.20.9723.019; Thu, 19 Mar 2026
 13:29:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af03a94b-2397-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Kq71nsJ3bJ8FdPAKjTH28AE4JyMDBsVrDJzA6LpI7JSbigC4ODil93SyZrGuNZArr80I3pcPI5HVnJ/yW5fQxcPYLyjWNRuFBxQyhrM2C/cNJCraFuqNYo5+C1dDXAaHUlTiIvqRt6fsEDzVrbPNME74dUoKQ+VepsxKRnSX6B0h8X6KHoojH5CsJISm5JTIKgWwfYnMS1pga5rEjHtWh572aQSLX/nIBaa6m2ytGV07DzLb7pp/5wJDqoc2UGbpudgNqVmq++L5/+WnyuHi8CRxUviU5rG3U0/dw8TSwzvehhcNLgvJDYU41IctMFEshtsqP92f4lSW8G4wc9lIPA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0h8Bzldeo2g56z78hFQUL+I8w6zT3orimQtvdwdMlEU=;
 b=DCmNK51ykbfuvEMbsv+fCxxs2LYJn/eG5qahz2hqW+dDeVSjYOvZ9aMik1KThcYc1ZI69Bt++qhRG9VE2ctrHb9iC4W0B5/LaYQL9Ct7IWtXSDYCs9s94qs5S+YOhGJEaVKHeUE721B65iFoSRH6ITz6bh9BocdwlzF/r2UGgK6IUgLh4Hi98W4h/KGlwGWXP1scUOD7vE5SvYt6VvMJ/jxG3WSn6lQiDvRhakfDtcdyuBSImTNKSrGuzzGm1qHSeLnGbCnwjvgKGap+ozh4h+cfOMi2LRh6r9t1KQ2rLn+l7YHgEEu+pXODXxTKN36JzH6oSCfmZJKu4V/esf8Yhw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0h8Bzldeo2g56z78hFQUL+I8w6zT3orimQtvdwdMlEU=;
 b=gctke2jlafU3xjKUnxFiCkMoOi7Nv9stSKcUFe6gXkqn7EkPvmQttM/8+pglwoiOwoDMshH4I7N2bp9T14hWS7cK33eaEfEOX6/ZF2v2ycEpgSeUYSUC8fjn66mhyoQ/c2+oLeQYntx2MC96pBkXXV2wAycGXP6Qi8+8Rf46Uh8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: 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>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH v1 3/8] x86/svm: Remove lazy FPU support
Date: Thu, 19 Mar 2026 13:29:19 +0000
Message-ID: <20260319132924.1469809-4-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0494.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1ab::13) To DS0PR03MB8272.namprd03.prod.outlook.com
 (2603:10b6:8:28f::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS0PR03MB8272:EE_|SA5PR03MB989126:EE_
X-MS-Office365-Filtering-Correlation-Id: 0b67ad83-e9a5-42d9-fafb-08de85bb923c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	rU6h+pELixuJxembCegilYDP86FaSdKqkKnEMj0tuIW9WeNT37qoDKxyb9aftDLGxotxrDg60DyTrB7u01abBJ/8AV/dntpRyaUtYpaB5//yx//1j4R5WyPTw7vcixfyzajD84LhlOrhZ/IESXme5DrjgLlDTiDlhC/VHlV4ZMsVSJUpsXVJtkfQkRJBnoMvJV7pmfimW8+WzmvjReeNp+sQ8V6DQOxgQ5rOSQwqZ0z3j5BL6K4phbrR1qIKS5bPULrrDN7l0r3TsvCGAQvXvXhoS+xe2Yq7mgGIgc5tdwkGsHVawu3763Xb8/XUmk6JDuKLVmlt8brVVTAoDwR3zjVLlAga4aDYFZAglCLk7Rwl1ixlsHqFQfrl/k+6KAngcTn74Y0S0jWBi5eGRvb0dq94jBxYN3W3GoiDH96C2KyLpZWUElwD90CPPBK5yK8/cTeFUK1AyHOJ8Aqnea2DWmbi6lqvkib7FMLHHoZxpCnNFjBpv2jcNo0yyLJQcq5/ghobsiSXPMili7ViHKvtWN4jhOg01sjNeQ6iCRsWpZtL9p9attFDXpeEH5iDBM5O2RKRagTYupj1bwQt4v3l+jI39en84GdVYjqGMfFzkp9VWJrXJEhy2uVHHsYXl4s5M04AJ1M9m7WyZr/O6YFFFTHj51lh0fFw3pwnPVbea0SabJvEQrJRu151lTIB5e/kzoCOJDIjDNaJi6RLkCu2SrHEyMJ/UvbwxDU8NVGBbZs=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR03MB8272.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Vcn+o99w+OR79yBuQ3LlTHAfbQ4EMXoPz4Dw6dROMtk6Wl9ad+5nOndqSIUM?=
 =?us-ascii?Q?nM6Sx3yHtsdLpR8RJozERDyZPhgRLf7SEam1ILRwG9jjJrJW20LQOxDy/tV9?=
 =?us-ascii?Q?7bdOZTujXBiCA/Su1tZut1IyEGiBL39FAQYiwZRCdigRa5gk1+Oq32QBNgoR?=
 =?us-ascii?Q?NDWAFt89481JRoBxkafuPMcapr9HLspmClHQBq4+QK8JxOdF1cKA6t02eD1A?=
 =?us-ascii?Q?AS6pkorLFYyXNr0AJXiwx3VcGDjCVZU1OkSFsmlr3D5QNIbU6leEMqeKtk6Y?=
 =?us-ascii?Q?PkIAMiNx/iEMoAdhLBpzQvj9MYa/zWFsRMLxNNjhEBVd+GRzeWzHoDGebIuI?=
 =?us-ascii?Q?mH7j/K7Pq4WLsA9JooQqZHPiKcc6kBHjO8S2izQfGd0khqBHYVOlmmtfMCQ6?=
 =?us-ascii?Q?pW0Aserv/3Eaj1X0XwBCZS6U/Lx9Omb81BvBzgwvQCDcikvWgrZrNm0qqmDl?=
 =?us-ascii?Q?1bqcHIX/BtoLctY3yFu8m+SZ7yqWS8CrDUdRL1hqZIAFlFzAlp3PhL44FUGv?=
 =?us-ascii?Q?X/k7LBAfW+Vy+0oLV16WHi7BPP7d1NPzlJ+B4fWuqIB0zJqQHiblfCJ1lpnv?=
 =?us-ascii?Q?Ox0qnZiwO1ai6i+Jt2xmxcBWuq02CrnyXs9ijBqIUj82BJE9FqCKFb7p0aSO?=
 =?us-ascii?Q?54Ajp9ZbCleDg4qPHbVZSty7nUCsN9jscBVoAXWeINmeoeldKEi5tXCNcKXc?=
 =?us-ascii?Q?6y6CjJQiBkABn6aokI1hfq1agGAJWe2XDDidzCmb95J6uYjs3ik0cXkSD2YO?=
 =?us-ascii?Q?snF7CUgcLMOHBPddzAJL8dg0h8/fyspOVbEYOI4CW0EgE7VuWHsFCAGJL1XI?=
 =?us-ascii?Q?VBBjI3AXJFE5nbbQgZcHM570qfK9TbzMrLkHuMZhJiweO7PwGNMx736P8++g?=
 =?us-ascii?Q?7QfNzDUUEHiFehbDNdTMq69+B9rcDO19RCSkrsBTqgaLHxCoBR4xF6e7gom6?=
 =?us-ascii?Q?D4OA5+4rjcTfyx4eFG3UP35I97CRV7K2u2be9ELR8n1YFoWi6MEiYcCv0ZJp?=
 =?us-ascii?Q?mTH1QorW1BVrdRVSaXil0aNB34cxVndbqGDgwalebebjTIrOjkoXexGd73qz?=
 =?us-ascii?Q?VBJ9Z8nWJmQjda94kMhftcSTD0/CCB5tLxPWGXRZ/UGLwvEk/autebxO9o0r?=
 =?us-ascii?Q?e7I4ULNhK0PQC8FxTJqx1mgXPa3lw8BF/in3vqENHTXpxbQmfLqtxCro1Uo0?=
 =?us-ascii?Q?SH8fOE26PfV/zuplo+Mpk97rNnmN2ErbeZHn3kIk9+5UobtYkM+ViOEeGLtY?=
 =?us-ascii?Q?juv5Tb9PHI2H13lp2b/PlTbTU6OunpOvJ8yAeutDF4DWSxG2wLL5Cj5ZlXO8?=
 =?us-ascii?Q?qN3tsFirfiQrwAoVdeOmLqcWEjv8Tf3ADp5hYRLb4rYWWCmJ4cQoIYXPEEOV?=
 =?us-ascii?Q?MrKm9Q+j7GLVpheVOj1zAHr23Qy9W91cSrurzJEyJs+dwv4UmOHRgiXnfH6y?=
 =?us-ascii?Q?HT3eU8vaddGxCQA9EPeEsCux+NUVW86D0bQjNkU+4mVgLTkW2lBX6D09SIsC?=
 =?us-ascii?Q?Si0MZdEViX5KHzoIGsKZ5kqegScH+jH2Xqd1GbdDrWmRuObKPwhdaL/6PrS+?=
 =?us-ascii?Q?srIpilKT+H13nkoRxABZWMjgTnpenq8GKfcp+iqkxvwTT6NmWMnL8AYP7K3K?=
 =?us-ascii?Q?B6Vz9l8srp8QcIP+0+lGz9pNLXteyXkdcX1dmLTUm/MjtsSP4ohunoLShrOv?=
 =?us-ascii?Q?fxdSacLadiy2CGtAKXHXyjGoM7R9TDJR5Y6Fk2wa8onjSCN8ebY29duz8jVD?=
 =?us-ascii?Q?29kRoi7oB52q1VSMLCJkEKWxcwV/TeQ=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0b67ad83-e9a5-42d9-fafb-08de85bb923c
X-MS-Exchange-CrossTenant-AuthSource: DS0PR03MB8272.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 13:29:39.3796
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 8y5GhCirtcctAS3mqdBB6P8JMeT8PQ1MdXyup/PQFItcxeTCAieHqE+yNxn6i//1oELeqxYGHeR+GhNLMToAKF+WS+GaGr6aCEOejAZi/XU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PR03MB989126

Remove lazy FPU support from the SVM code since fully_eager_fpu is now
always true.

No functional change intended.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/arch/x86/hvm/svm/nestedsvm.c         | 67 +-------------------
 xen/arch/x86/hvm/svm/svm.c               | 81 +-----------------------
 xen/arch/x86/hvm/svm/vmcb.c              |  4 +-
 xen/arch/x86/include/asm/hvm/svm-types.h |  6 --
 4 files changed, 4 insertions(+), 154 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c
index a63ec613465f..ef6fa5d23b67 100644
--- a/xen/arch/x86/hvm/svm/nestedsvm.c
+++ b/xen/arch/x86/hvm/svm/nestedsvm.c
@@ -165,58 +165,6 @@ int cf_check nsvm_vcpu_reset(struct vcpu *v)
     return 0;
 }
 
-static uint64_t nestedsvm_fpu_vmentry(uint64_t n1cr0,
-    struct vmcb_struct *vvmcb,
-    struct vmcb_struct *n1vmcb, struct vmcb_struct *n2vmcb)
-{
-    uint64_t vcr0;
-
-    vcr0 = vvmcb->_cr0;
-    if ( !(n1cr0 & X86_CR0_TS) && (n1vmcb->_cr0 & X86_CR0_TS) )
-    {
-        /*
-         * svm_fpu_leave() run while l1 guest was running.
-         * Sync FPU state with l2 guest.
-         */
-        vcr0 |= X86_CR0_TS;
-        n2vmcb->_exception_intercepts |= (1U << X86_EXC_NM);
-    }
-    else if ( !(vcr0 & X86_CR0_TS) && (n2vmcb->_cr0 & X86_CR0_TS) )
-    {
-        /*
-         * svm_fpu_enter() run while l1 guest was running.
-         * Sync FPU state with l2 guest.
-         */
-        vcr0 &= ~X86_CR0_TS;
-        n2vmcb->_exception_intercepts &= ~(1U << X86_EXC_NM);
-    }
-
-    return vcr0;
-}
-
-static void nestedsvm_fpu_vmexit(struct vmcb_struct *n1vmcb,
-    struct vmcb_struct *n2vmcb, uint64_t n1cr0, uint64_t guest_cr0)
-{
-    if ( !(guest_cr0 & X86_CR0_TS) && (n2vmcb->_cr0 & X86_CR0_TS) )
-    {
-        /*
-         * svm_fpu_leave() run while l2 guest was running.
-         * Sync FPU state with l1 guest.
-         */
-        n1vmcb->_cr0 |= X86_CR0_TS;
-        n1vmcb->_exception_intercepts |= (1U << X86_EXC_NM);
-    }
-    else if ( !(n1cr0 & X86_CR0_TS) && (n1vmcb->_cr0 & X86_CR0_TS) )
-    {
-        /*
-         * svm_fpu_enter() run while l2 guest was running.
-         * Sync FPU state with l1 guest.
-         */
-        n1vmcb->_cr0 &= ~X86_CR0_TS;
-        n1vmcb->_exception_intercepts &= ~(1U << X86_EXC_NM);
-    }
-}
-
 static int nsvm_vcpu_hostsave(struct vcpu *v, unsigned int inst_len)
 {
     struct nestedsvm *svm = &vcpu_nestedsvm(v);
@@ -246,7 +194,6 @@ static int nsvm_vcpu_hostsave(struct vcpu *v, unsigned int inst_len)
 static int nsvm_vcpu_hostrestore(struct vcpu *v, struct cpu_user_regs *regs)
 {
     struct nestedvcpu *nv = &vcpu_nestedhvm(v);
-    struct nestedsvm *svm = &vcpu_nestedsvm(v);
     struct vmcb_struct *n1vmcb, *n2vmcb;
     int rc;
 
@@ -281,8 +228,6 @@ static int nsvm_vcpu_hostrestore(struct vcpu *v, struct cpu_user_regs *regs)
         gdprintk(XENLOG_ERR, "hvm_set_cr4 failed, rc: %u\n", rc);
 
     /* CR0 */
-    nestedsvm_fpu_vmexit(n1vmcb, n2vmcb,
-        svm->ns_cr0, v->arch.hvm.guest_cr[0]);
     v->arch.hvm.guest_cr[0] = n1vmcb->_cr0 | X86_CR0_PE;
     n1vmcb->rflags &= ~X86_EFLAGS_VM;
     rc = hvm_set_cr0(n1vmcb->_cr0 | X86_CR0_PE, true);
@@ -290,7 +235,6 @@ static int nsvm_vcpu_hostrestore(struct vcpu *v, struct cpu_user_regs *regs)
         hvm_inject_hw_exception(X86_EXC_GP, 0);
     if ( rc != X86EMUL_OKAY )
         gdprintk(XENLOG_ERR, "hvm_set_cr0 failed, rc: %u\n", rc);
-    svm->ns_cr0 = v->arch.hvm.guest_cr[0];
 
     /* CR2 */
     v->arch.hvm.guest_cr[2] = n1vmcb->_cr2;
@@ -418,7 +362,6 @@ static int nsvm_vmcb_prepare4vmrun(struct vcpu *v, struct cpu_user_regs *regs)
     struct vmcb_struct *ns_vmcb, *n1vmcb, *n2vmcb;
     vmcbcleanbits_t clean = {};
     int rc;
-    uint64_t cr0;
 
     ns_vmcb = nv->nv_vvmcx;
     n1vmcb = nv->nv_n1vmcx;
@@ -452,7 +395,6 @@ static int nsvm_vmcb_prepare4vmrun(struct vcpu *v, struct cpu_user_regs *regs)
      *   safed here.
      * The overhead comes from (ordered from highest to lowest):
      * - svm_ctxt_switch_to (CPU context switching)
-     * - svm_fpu_enter, svm_fpu_leave (lazy FPU switching)
      * - emulated CLGI (clears VINTR intercept)
      * - host clears VINTR intercept
      * Test results show that the overhead is high enough that the
@@ -551,10 +493,8 @@ static int nsvm_vmcb_prepare4vmrun(struct vcpu *v, struct cpu_user_regs *regs)
         gdprintk(XENLOG_ERR, "hvm_set_cr4 failed, rc: %u\n", rc);
 
     /* CR0 */
-    svm->ns_cr0 = v->arch.hvm.guest_cr[0];
-    cr0 = nestedsvm_fpu_vmentry(svm->ns_cr0, ns_vmcb, n1vmcb, n2vmcb);
     v->arch.hvm.guest_cr[0] = ns_vmcb->_cr0;
-    rc = hvm_set_cr0(cr0, true);
+    rc = hvm_set_cr0(ns_vmcb->_cr0, true);
     if ( rc == X86EMUL_EXCEPTION )
         hvm_inject_hw_exception(X86_EXC_GP, 0);
     if ( rc != X86EMUL_OKAY )
@@ -1305,11 +1245,6 @@ nestedsvm_check_intercepts(struct vcpu *v, struct cpu_user_regs *regs,
     case VMEXIT_INTR:
     case VMEXIT_NMI:
         return NESTEDHVM_VMEXIT_HOST;
-    case VMEXIT_EXCEPTION_NM:
-        /* Host must handle lazy fpu context switching first.
-         * Then inject the VMEXIT if L1 guest intercepts this.
-         */
-        return NESTEDHVM_VMEXIT_HOST;
 
     case VMEXIT_NPF:
         if ( nestedhvm_paging_mode_hap(v) )
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 243c41fb13a8..2546705d245c 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -104,38 +104,6 @@ static void cf_check svm_cpu_down(void)
     write_efer(read_efer() & ~EFER_SVME);
 }
 
-static void svm_fpu_enter(struct vcpu *v)
-{
-    struct vmcb_struct *n1vmcb = vcpu_nestedhvm(v).nv_n1vmcx;
-
-    vcpu_restore_fpu_lazy(v);
-    vmcb_set_exception_intercepts(
-        n1vmcb,
-        vmcb_get_exception_intercepts(n1vmcb) & ~(1U << X86_EXC_NM));
-}
-
-static void cf_check svm_fpu_leave(struct vcpu *v)
-{
-    struct vmcb_struct *n1vmcb = vcpu_nestedhvm(v).nv_n1vmcx;
-
-    ASSERT(!v->fpu_dirtied);
-    ASSERT(read_cr0() & X86_CR0_TS);
-
-    /*
-     * If the guest does not have TS enabled then we must cause and handle an
-     * exception on first use of the FPU. If the guest *does* have TS enabled
-     * then this is not necessary: no FPU activity can occur until the guest
-     * clears CR0.TS, and we will initialise the FPU when that happens.
-     */
-    if ( !(v->arch.hvm.guest_cr[0] & X86_CR0_TS) )
-    {
-        vmcb_set_exception_intercepts(
-            n1vmcb,
-            vmcb_get_exception_intercepts(n1vmcb) | (1U << X86_EXC_NM));
-        vmcb_set_cr0(n1vmcb, vmcb_get_cr0(n1vmcb) | X86_CR0_TS);
-    }
-}
-
 static void cf_check svm_update_guest_cr(
     struct vcpu *v, unsigned int cr, unsigned int flags)
 {
@@ -145,20 +113,6 @@ static void cf_check svm_update_guest_cr(
     switch ( cr )
     {
     case 0:
-    {
-        unsigned long hw_cr0_mask = 0;
-
-        if ( !(v->arch.hvm.guest_cr[0] & X86_CR0_TS) )
-        {
-            if ( v != current )
-            {
-                if ( !v->arch.fully_eager_fpu )
-                    hw_cr0_mask |= X86_CR0_TS;
-            }
-            else if ( vmcb_get_cr0(vmcb) & X86_CR0_TS )
-                svm_fpu_enter(v);
-        }
-
         if ( paging_mode_hap(v->domain) )
         {
             uint32_t intercepts = vmcb_get_cr_intercepts(vmcb);
@@ -169,12 +123,12 @@ static void cf_check svm_update_guest_cr(
                vmcb_set_cr_intercepts(vmcb, intercepts | CR_INTERCEPT_CR3_WRITE);
         }
 
-        value = v->arch.hvm.guest_cr[0] | hw_cr0_mask;
+        value = v->arch.hvm.guest_cr[0];
         if ( paging_mode_shadow(v->domain) )
             value |= X86_CR0_PG | X86_CR0_WP;
         vmcb_set_cr0(vmcb, value);
         break;
-    }
+
     case 2:
         vmcb_set_cr2(vmcb, v->arch.hvm.guest_cr[2]);
         break;
@@ -909,9 +863,6 @@ static void cf_check svm_ctxt_switch_from(struct vcpu *v)
     if ( unlikely((read_efer() & EFER_SVME) == 0) )
         return;
 
-    if ( !v->arch.fully_eager_fpu )
-        svm_fpu_leave(v);
-
     svm_save_dr(v);
     svm_tsc_ratio_save(v);
 
@@ -1678,28 +1629,6 @@ static void svm_do_nested_pgfault(struct vcpu *v,
     domain_crash(v->domain);
 }
 
-static void cf_check svm_fpu_dirty_intercept(void)
-{
-    struct vcpu *v = current;
-    struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
-    struct vmcb_struct *n1vmcb = vcpu_nestedhvm(v).nv_n1vmcx;
-
-    svm_fpu_enter(v);
-
-    if ( vmcb != n1vmcb )
-    {
-       /* Check if l1 guest must make FPU ready for the l2 guest */
-       if ( v->arch.hvm.guest_cr[0] & X86_CR0_TS )
-           hvm_inject_hw_exception(X86_EXC_NM, X86_EVENT_NO_EC);
-       else
-           vmcb_set_cr0(n1vmcb, vmcb_get_cr0(n1vmcb) & ~X86_CR0_TS);
-       return;
-    }
-
-    if ( !(v->arch.hvm.guest_cr[0] & X86_CR0_TS) )
-        vmcb_set_cr0(vmcb, vmcb_get_cr0(vmcb) & ~X86_CR0_TS);
-}
-
 static void svm_vmexit_do_cr_access(
     struct vmcb_struct *vmcb, struct cpu_user_regs *regs)
 {
@@ -2459,7 +2388,6 @@ static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
     .update_guest_cr      = svm_update_guest_cr,
     .update_guest_efer    = svm_update_guest_efer,
     .cpuid_policy_changed = svm_cpuid_policy_changed,
-    .fpu_leave            = svm_fpu_leave,
     .set_guest_pat        = svm_set_guest_pat,
     .get_guest_pat        = svm_get_guest_pat,
     .set_tsc_offset       = svm_set_tsc_offset,
@@ -2469,7 +2397,6 @@ static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
     .get_pending_event    = svm_get_pending_event,
     .invlpg               = svm_invlpg,
     .wbinvd_intercept     = svm_wbinvd_intercept,
-    .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
@@ -2783,10 +2710,6 @@ void asmlinkage svm_vmexit_handler(void)
         }
         break;
 
-    case VMEXIT_EXCEPTION_NM:
-        svm_fpu_dirty_intercept();
-        break;
-
     case VMEXIT_EXCEPTION_PF:
     {
         unsigned long va = vmcb->ei.exc.cr2;
diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index e583ef8548c7..5ed7123d9a69 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -138,9 +138,7 @@ static int construct_vmcb(struct vcpu *v)
 
     paging_update_paging_modes(v);
 
-    vmcb->_exception_intercepts =
-        HVM_TRAP_MASK |
-        (v->arch.fully_eager_fpu ? 0 : (1U << X86_EXC_NM));
+    vmcb->_exception_intercepts = HVM_TRAP_MASK;
 
     if ( paging_mode_hap(v->domain) )
     {
diff --git a/xen/arch/x86/include/asm/hvm/svm-types.h b/xen/arch/x86/include/asm/hvm/svm-types.h
index 051b235d8f69..3ede62cade80 100644
--- a/xen/arch/x86/include/asm/hvm/svm-types.h
+++ b/xen/arch/x86/include/asm/hvm/svm-types.h
@@ -65,12 +65,6 @@ struct nestedsvm {
     /* Shadow io permission map */
     unsigned long *ns_iomap;
 
-     /*
-      * Cached guest_cr[0] of l1 guest while l2 guest runs.  Needed to handle
-      * FPU context switching.
-      */
-    uint64_t ns_cr0;
-
     /*
      * Cache guest cr3/host cr3 the guest sets up for the l2 guest.
      * Used by Shadow-on-Shadow and Nested-on-Nested.
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 13:29:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 13:29:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257121.1551586 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3DRe-0005tW-1Y; Thu, 19 Mar 2026 13:29:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257121.1551586; Thu, 19 Mar 2026 13:29:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3DRd-0005tD-UH; Thu, 19 Mar 2026 13:29:49 +0000
Received: by outflank-mailman (input) for mailman id 1257121;
 Thu, 19 Mar 2026 13:29: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=wl8P=BT=citrix.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1w3DRc-0004oN-Ep
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 13:29:48 +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 b1c9c9a4-2397-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 14:29:46 +0100 (CET)
Received: from DS0PR03MB8272.namprd03.prod.outlook.com (2603:10b6:8:28f::23)
 by SA5PR03MB989126.namprd03.prod.outlook.com (2603:10b6:806:4d6::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.20; Thu, 19 Mar
 2026 13:29:42 +0000
Received: from DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654]) by DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654%5]) with mapi id 15.20.9723.019; Thu, 19 Mar 2026
 13:29: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: b1c9c9a4-2397-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZwRf3gmv76rdVLHpa0GIDyEnYtyc10wzUaRbgJQMrIaIBFC+A4nxbRWBo0GLkDYVavBviU5OHM4n2ijFn17C69BtsB/bC6TCnY2j1tvOgjquywXfeKaXlWU2pMGJj3f57aSxq1GJ/Z0Dw/4HKwbYyC6V2g4YiAVfVTuYge2p76oJHXRTKYwRLoEZylv21v+Kmi3hPmEFcxOFYN2qLUhLh1Zw2l6h53pU9CfZPsKq4aiFtSEm6zNGF0P6ExiQEllu9P6q2BsgyF7VIx5vIsRc9d1K+J8f0IQ7rIGAClRQ5n4lWKWF4yAwd6Fh2exDNKmmswxxu04DTHKLupOHFN+AxQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8YfnAkxzcQ0xAkcNwPMSQuPca6ipQMOuXmrZeqRZo4U=;
 b=SC1Q/g2tdKwK9fBk9Y4k0W2qJ/+f64DFlFy/iChzKGvGfErnLRZHffv1tWkRivFpsQEwiTPCA85tRn+NNzgR0UMunurIzut4lSM5F1aguvFkK1FxMxcAiDWrldXBFwIErNjfe0mSsnSAa/y7V3a65pRoxOuYuncr67iveWap9vPHWkJ7oKZzMjRGtWG4Ooqs61k9Sm2tmwxxUWgAIH5oGVpFXgX+QHRSeuE9rpjTFMLFI7h8JLhBKCLULuieX639qjqdQaCwYaB0SQ0S0UdY2R+XBKCxkBRWo4iE0le8DIgomF6nLhGTY2/H8G9Q81eON7D8xh5Ji4Bb9NnX4NVLYg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8YfnAkxzcQ0xAkcNwPMSQuPca6ipQMOuXmrZeqRZo4U=;
 b=OufuCu5jCXq9rCLQRHCM7SVwrOwU3h+eNy4CjrvpJgMSHAgcfKNTNA2jNVgbyDObTmoKF3rQgQptsKLXNik6/i8oYqG16LeAzyDh5pu4rbWHo/1rMA2z1rOzOiY/O94aRJGUHKuQ1PTSNpPby9595A5aiMmXI+pvGwHrA3ZzRNE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH v1 4/8] x86/traps: Remove lazy FPU support
Date: Thu, 19 Mar 2026 13:29:20 +0000
Message-ID: <20260319132924.1469809-5-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0494.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1ab::13) To DS0PR03MB8272.namprd03.prod.outlook.com
 (2603:10b6:8:28f::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS0PR03MB8272:EE_|SA5PR03MB989126:EE_
X-MS-Office365-Filtering-Correlation-Id: 4520b830-22bd-43a4-b853-08de85bb942a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	b5Gj8vIGpIoMXqJp4RR9DdeWW/LVVZpqJSo1jinLK+f3r9UFIBO8dwNA3YKnF6gHqGuQ72Xm2wRbhpnd8PhFbAKvDndougL9YQ4xwFfEPm8CQqsJ8vvMolxxTCDqu2wmOuRRASJBl6GqvthRSUe+IFCw6ZJj6/zqqSwdM/HkxIJWgWCCVAVdJwsNUeXBVTFSHEvdG/hCaMwubrDQJilyTDHK9JNa4jdOOIgaVgRjpHFaCk0frN25xEqQBimdS7nBRB3nktek5pk4rxn6gjC0GU+9Iv5CSeYDBStzpfmMnuL8ndL6ASsCD+V7WvPVDjEKWiwI3r8FT1kdjiNXqlcfOWcsm4BIRIs2JMQuAooaxYRs7GuhdrJw0CirFDnJDocYVIcJ+VlWR4/m7oG7u9U45kRdVR2cH380Y+XuTEXH3nBaHwFJpcev2P99nS1g4wfDydSp9oYVkXaAP9RDt5olSPsJ+W6Myg6kc23TmSzlBvv+v3ZprxqzlVZuIoC3ERXko3Z/I4aFa1ILYb/WeIAVrFwEip8kM5Mytu0p2BiSrun6dBz2GHn05xZ8plwFD5Hrf7+yliFZzeM2iFCs8K9tcV/lCwsxHcm9yC121vXXJkkyYiJ23zdWlzqXuNNEZJlyiXC1ZfNITa421964eaifyjng/uPxZOgS0GEdatuXowB1Kq1E9B6jmotVi9QR804T1hr+FO6YfncUg1FCCO8quoBGK/LZbSZRpLD6Vpe29U4=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR03MB8272.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?nhVsvC44KngzlTcjqHrT+99Cf3G60h9FhnNswlExRvUZBtzFLd8aCTdhvrAF?=
 =?us-ascii?Q?DQumn5B1JGFB8elFtxUQR1zNORrvADoOyhdEnegXVZhXKepJ4F4KKZFN9So0?=
 =?us-ascii?Q?Qmk3zaDiTFF9BY9tV7/XY0aU1wN2pvTZTwy7BmlZ9/TdDmIoV1rvShZesCff?=
 =?us-ascii?Q?io3n+LBFpvxA/h/O5Vl+2SisjdFi07hnSIF6nxFA/5+J6u2uEUuBdk+KR+dA?=
 =?us-ascii?Q?tjISGa4nferibHkFTNJebd28RRPXRJrA9DoTUEnO7FXjLTn3k8oM+At0qYYK?=
 =?us-ascii?Q?LeP9DdXNjKzV83NKYuA846DHVeX8D6gW3fulE80Nd9mFwbZSwQ0+/LuwCLxp?=
 =?us-ascii?Q?O6ZtnKg8gU2JaU+VAt8YX5CxISkL2/dJzKaD9DTTys38A7qlaj0TdzT08L0D?=
 =?us-ascii?Q?WzS+NGpCX+UcNwhW8RAWzylCtG0Yfwq+OGZagFPKlAwXrYMqra5EvrsssEG+?=
 =?us-ascii?Q?eW6SqyAt8bUdU9H9cPj2QWKqwNI2Zr2MdIpGUu0eCVoRkw0wRwxHdbU99GtQ?=
 =?us-ascii?Q?hqakUoLOvRdvza3lcsaoPdPFu9Pv7NZnZXtHNH92QCD41NFLLh8LqY790EF0?=
 =?us-ascii?Q?zRdMjs0FQmV6J5pSmR0Q/alM0jQtykZKhkKVBzMG9yAkLh+yleHLijFUEBiM?=
 =?us-ascii?Q?Uk6UGj5uUsmeoN+ILB1dLfk3mRf+xiqgnwt6jkbC/Asb/3u4vqNgIHo/R2J5?=
 =?us-ascii?Q?K1THPRTsznhIX2A6h+k2oefROYDJKDgP5ofZqwMHeTdwh89wxKMmd3dCX+oW?=
 =?us-ascii?Q?sWCY4e9f4edecFDPRN7Uee+Rq06sNnjE5UHeC+7go46Xt+1EoZqCAZ27lFBd?=
 =?us-ascii?Q?AIV6TORnL7jV0Z+3bn/gazwQcG3JcbJYWij2mcoiyqlLTInzMfHZL+XEng5t?=
 =?us-ascii?Q?4Z+JWpKp03cXdcWjdiyizszKAXKI40D2NFkEsUBYJINnGHkFW8x+T/w+Zax2?=
 =?us-ascii?Q?zNoRLsd0+sqjX7q9PlR6RgKj8fzr+dXdDL5nLJzhGKhQWWg3+EcvDczyRbZT?=
 =?us-ascii?Q?WgWMqPRI/8nLnlv/H+MPgu7qEv9h6FmmBGBGcG6Bdf1Jpu3+GY9aT0ZM4zuM?=
 =?us-ascii?Q?wGBMsGuRCmgkW13+/zivy4SHtKLknU8lJUMJOmAsNMUde8iXjA/j6aHgXrZ5?=
 =?us-ascii?Q?p9CJrNU9m3oGOE9KhWaw1FjYSL+qv/Oh9rRzEg6OiMN9rY3F7Touk8iJEAct?=
 =?us-ascii?Q?RXF9Q9z8Q8it+ruA2hefl7oogvHCDzIgGEJaJc0xnle4X4vDj0135cou/NvC?=
 =?us-ascii?Q?9litSRaYRgQmFkCSWGfVk26NPGrSiTzrHbgoSDIZjlIz5UjsEaQUqQGag/PI?=
 =?us-ascii?Q?Ood9Y/anAkuYXay6sJefJVJ/VddJYwLnkAno6AhUWKsOHKx6IDoPKiwd/k6v?=
 =?us-ascii?Q?23ERrjwJMU/i0PFZAVu1ByM7zB/T1P3gfEAyvvPi5u5m6QO2IVG7C4xCus/x?=
 =?us-ascii?Q?AfNrSYuyTjiaN9B2PFe+30kQvQxezGc1ojBC5Oeg70wjyep36yTu+QkREI50?=
 =?us-ascii?Q?MZVagIH1oMPsU1BQB0p03OVkJ9lVXONOrzSIgnDKlMV8fsQm/f/OmCE/lqqC?=
 =?us-ascii?Q?sAnrEJXZOzR5bmEbWq+rbyPniN8RCnAWxQOkZVSm5GVFzcITL5Eld4OYaWgF?=
 =?us-ascii?Q?TnWQl13KVyE+zSdFk2D6qt66m2oCMpadPMbuejjQWsoqNkr9LXb1YPnXpNH9?=
 =?us-ascii?Q?KEs4GLOzD2QfrIUQGxtnBjThjqF5eE5BYM/wN5i2j3cnhfgiL5u3SKBQBipU?=
 =?us-ascii?Q?H27onJxm3FTldw/na1vt5FFPQjv1oWc=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4520b830-22bd-43a4-b853-08de85bb942a
X-MS-Exchange-CrossTenant-AuthSource: DS0PR03MB8272.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 13:29:42.7179
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: N3lGzq/pau+W9wGQ65S8GjPRosaJSN2j/Kvvp55Wpag8TPmTGJ67WqfKtlNOgP5WujEPVIMRoNqhSGMqwGzKVmFcSKCnlHafy9PdrscPW7Q=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PR03MB989126

From: Wei Liu <wei.liu2@citrix.com>

Remove lazy FPU support from the #DNA exception handler used by PV
guests since fully_eager_fpu is now always true.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 xen/arch/x86/i387.c               | 24 ------------------------
 xen/arch/x86/include/asm/i387.h   |  1 -
 xen/arch/x86/pv/misc-hypercalls.c |  3 +--
 xen/arch/x86/traps.c              | 18 ++++++++++--------
 4 files changed, 11 insertions(+), 35 deletions(-)

diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
index 954ba3b1799b..7da731865f73 100644
--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -234,30 +234,6 @@ void vcpu_restore_fpu_nonlazy(struct vcpu *v, bool need_stts)
         stts();
 }
 
-/* 
- * Restore FPU state when #NM is triggered.
- */
-void vcpu_restore_fpu_lazy(struct vcpu *v)
-{
-    ASSERT(!is_idle_vcpu(v));
-
-    /* Avoid recursion. */
-    clts();
-
-    if ( v->fpu_dirtied )
-        return;
-
-    ASSERT(!v->arch.fully_eager_fpu);
-
-    if ( cpu_has_xsave )
-        fpu_xrstor(v, XSTATE_LAZY);
-    else
-        fpu_fxrstor(v);
-
-    v->fpu_initialised = 1;
-    v->fpu_dirtied = 1;
-}
-
 /* 
  * On each context switch, save the necessary FPU info of VCPU being switch 
  * out. It dispatches saving operation based on CPU's capability.
diff --git a/xen/arch/x86/include/asm/i387.h b/xen/arch/x86/include/asm/i387.h
index 652d7ad2deb6..da0c7e945f95 100644
--- a/xen/arch/x86/include/asm/i387.h
+++ b/xen/arch/x86/include/asm/i387.h
@@ -28,7 +28,6 @@ struct ix87_env {
 };
 
 void vcpu_restore_fpu_nonlazy(struct vcpu *v, bool need_stts);
-void vcpu_restore_fpu_lazy(struct vcpu *v);
 void vcpu_save_fpu(struct vcpu *v);
 void save_fpu_enable(void);
 int vcpu_init_fpu(struct vcpu *v);
diff --git a/xen/arch/x86/pv/misc-hypercalls.c b/xen/arch/x86/pv/misc-hypercalls.c
index 7e915d86b724..34a0717540a9 100644
--- a/xen/arch/x86/pv/misc-hypercalls.c
+++ b/xen/arch/x86/pv/misc-hypercalls.c
@@ -42,8 +42,7 @@ long do_fpu_taskswitch(int set)
     else
     {
         v->arch.pv.ctrlreg[0] &= ~X86_CR0_TS;
-        if ( v->fpu_dirtied )
-            clts();
+        clts();
     }
 
     return 0;
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index b6b119769722..fb1b94245850 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -2045,15 +2045,17 @@ void asmlinkage do_device_not_available(struct cpu_user_regs *regs)
     }
 
 #ifdef CONFIG_PV
-    vcpu_restore_fpu_lazy(curr);
+    BUG_ON(!(curr->arch.pv.ctrlreg[0] & X86_CR0_TS));
 
-    if ( curr->arch.pv.ctrlreg[0] & X86_CR0_TS )
-    {
-        pv_inject_hw_exception(X86_EXC_NM, X86_EVENT_NO_EC);
-        curr->arch.pv.ctrlreg[0] &= ~X86_CR0_TS;
-    }
-    else
-        TRACE_TIME(TRC_PV_MATH_STATE_RESTORE);
+    /*
+     * PV ABI QUIRK: Classic Xen kernels (2.6.18 and SLES 11 SP4's
+     * 3.0) rely on Xen to clear TS. PVOPS kernels (3.0, 3.16 and 4.15
+     * are checked) always clear TS themselves.
+     */
+    clts();
+
+    pv_inject_hw_exception(X86_EXC_NM, X86_EVENT_NO_EC);
+    curr->arch.pv.ctrlreg[0] &= ~X86_CR0_TS;
 #else
     ASSERT_UNREACHABLE();
 #endif
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 13:29:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 13:29:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257122.1551595 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3DRf-00069J-DL; Thu, 19 Mar 2026 13:29:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257122.1551595; Thu, 19 Mar 2026 13:29: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 1w3DRf-000692-A1; Thu, 19 Mar 2026 13:29:51 +0000
Received: by outflank-mailman (input) for mailman id 1257122;
 Thu, 19 Mar 2026 13:29:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wl8P=BT=citrix.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1w3DRd-0004oN-F8
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 13:29:49 +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 b2f2930f-2397-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 14:29:47 +0100 (CET)
Received: from DS0PR03MB8272.namprd03.prod.outlook.com (2603:10b6:8:28f::23)
 by SA5PR03MB989126.namprd03.prod.outlook.com (2603:10b6:806:4d6::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.20; Thu, 19 Mar
 2026 13:29:45 +0000
Received: from DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654]) by DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654%5]) with mapi id 15.20.9723.019; Thu, 19 Mar 2026
 13:29: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: b2f2930f-2397-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ExD+OMXRCvsZguSFISVx2VoyHSRdpClxcaRMulIYjyRZR7x3P99OWvn9cp2IaAR9uPlKFCQF3e6JYkVFWooz3HBQbrRJwc9S8mi+HrZzYsZkTbqTLRavXj1YM3hHztzKimo3U/W5sEe6DsoQGgirN/+voJeS0jlj6NQLtu2MnVC+15JrVEtDz2bBL8BE9n3+s0hYReJH463nMy6t7J6bSluyYOcSjwxIU/SVI67fw4hXSxzWOSeTlit2cqaqSm1gy9TJO/VcjIg/Oumed3lPIIxypaUldBJkMw3foQZcA0S1WL2KfqGK2iQlLu7hWJba1HVDFlZcSRThF4t+G//UIA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=B7cITq8S4SbzEQfFivGFMCvfmxslS6DmBYa6hzW1TBw=;
 b=HOhXpVtU8Jf1vEVxYbivCTOGWvGAQZZjQBAyRrVlqrW4RrYXOEgoDbcn9Zas3IF+e/CchhD3rfIMuB5OcvUsajo9EmMWEAkhYS0vCAyT493PcoHdPJ3hztWnbpTbj6SKt741uq+UXgZwFiAgV+0o0HxzWWFYYhFnp2I2VdXPzONhWg5Vu2lT2S1V4P0Ch1/gvhO5NJuPpAQupnoltoOs3FDGythl5J/x/nx3zPmI/xXExqfZUcJcKBJ3thkZYKfsVQs2SmRis4SkVihWD9cdHcU9+qoTrLIUamPKVSiK04bqO8vAvGwwrqpHmCHCiEXItNYmGMdEIDYpTJ3An8q0xw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=B7cITq8S4SbzEQfFivGFMCvfmxslS6DmBYa6hzW1TBw=;
 b=H4Jtu5/tSZbu9IMX1uC53tiyYT0EvnmuS4CwB8PPd2qQ3ljFLCbFMYYvGyjrqsThkBNXK8mo9oJcRUFBzMfvCvy2jGEk9X/yUhEa6XsnjYep4pgX4Kgiuvt4TNtdSgoAGEnMBTZN/6bWxfZwB+tBP1oZcaYI6x/UjBJG1hOtrBs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: 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>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH v1 5/8] x86: Remove fully_eager_fpu
Date: Thu, 19 Mar 2026 13:29:21 +0000
Message-ID: <20260319132924.1469809-6-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0494.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1ab::13) To DS0PR03MB8272.namprd03.prod.outlook.com
 (2603:10b6:8:28f::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS0PR03MB8272:EE_|SA5PR03MB989126:EE_
X-MS-Office365-Filtering-Correlation-Id: 1c6808b9-8a3a-4e6e-79e6-08de85bb9618
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	7Jk04xFgYjszEZVIDtFHs2cmUlo3r3ALY3aqBq4y6jcMUhrCOU8hMTlNpQffq5hG+nCN3xdN3isircb+wyKiLUb89Y7CClwOOEpUEgsA/ZAPEHki2JKUxugY/cMUq3MbjOtaDthOHdB4tN+p/KUKpqUIB3oXygV8rs1mV8stqilFIg6A9km2AsdY1pIc4FR98DIqjQGYCdOB4W8meu+b0TX1I12zyGt1vvarxSNM9JeLzVo8ZtlGeyhLC9EhEaNJBuaT/HyFij3cyVIWt0CHMUvVrJcfQcb5rtEQZkJy2K8Oh4oDSC02zeyPFe8HLV89/OK1rIEe5dLRtyFHxvIFcofD954UsQ4xKxFL4qLxfGruMMUlxV3Q3WoBcStrDEwvO1PXENIyarsi5WCLZIVPAg1pcsgLoy3HCZN8eVUcTz5LalDm1yhpQ8GqBZm3afjw8we9fr83qv5byvLwcrB0ronpYCPC/KyME76j1zzYruFkd2B3XX2rEzNb47ORm23krFyHPn5a+4O+swDOf7NUNVnXudV2HO2819YUIvej38kWMhSedIMbY8FHUsl+EudVlBJ8Y1ev6z4dKpCT5VAwJgEiR0ACoHdHKWV+TZ/ml4tCDtyAkXtg+mB8wTYZE0pLwFgqUrkDlRQCODT9VnA3XBYorrikte7ajcr3E7qyrY9TIG1KZpEfP1W6icK5MCv1wbygqPMsJszh711c183SQ1euTnQyuhkXfGj5nSbeSPM=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR03MB8272.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?d4cq1yecXGPMg8X+4c2mQcTUeVubIGrdcdNODUP9qEBAW3qKziL6MO1ouc41?=
 =?us-ascii?Q?WYjFTNyXFd+GCv94lDwVW4HNwL/2v1jDvOJY6KAy9ImcIC0aJG/eDqEak/0O?=
 =?us-ascii?Q?e9yA1D9ryKfIgQPpMFg9bALCSfxOWg7CO9oI9w2Z8S6+yQYa328qGKL02FWR?=
 =?us-ascii?Q?HZbofEpIO4u1H6fUJspRswac6NeViJHGTQVyqLbTFR+so3xHUpzQQqWj95th?=
 =?us-ascii?Q?tGk9QRAZUdwBGNx8gDH064m2Nm/CUp7ExFIwLSTSN2/nN1Ksrz3BfcfYEDMz?=
 =?us-ascii?Q?zWrGpExBZW/W5tlaJ3oRYdRI/CiZ4uhn51GkIDouyqh966ELkflg48gGUaQp?=
 =?us-ascii?Q?dlVY0pwHJMbrXn3Y6apPY8Q4V2aa6ShsAOP9R/xboenh117cXbMWimyn2gZY?=
 =?us-ascii?Q?Sz+MA3xPIoaGbZItqea9wuRwW8iyEuQgsl66AmanoO38h01T0h27XbLRd2ra?=
 =?us-ascii?Q?o7xQNyQVW1HfDOneD8RzyMRdguhkz7JpV9sz/6aYCVwDkd6oBewu0yJNy6Is?=
 =?us-ascii?Q?HaPQdI5RxcGUX+h9Rw1DrFH6upAEtdr6GVtgqaIMNrIoI1/veZey4aqRZvOH?=
 =?us-ascii?Q?RKRt+SgG034ovg8zPlRCsx6PL8U/VMoP3IOzYV2w66W907+uf72bgoqAxhLA?=
 =?us-ascii?Q?TnstaNp5EHXigqRLy2s6Zg8Hg6mvxjr0JDDYCgXgMy52b4koiDY+S4hGgLjs?=
 =?us-ascii?Q?EHnBlo4k7bEqLjIVQ6hm3nsRCxYMcW5n1mwtxR/VhctzGSW6hJ2vuMGRKpsw?=
 =?us-ascii?Q?xNnJMw2LI5UfPKpengDNWp3zpDhbd3hIFmxcXvQ42BWEVLSH9KXLZJ6N6TR5?=
 =?us-ascii?Q?1a7HI3OCEzD8N0y6d++fIpoWE5gT43681rCx/IvYYtr1ZELTOA46o7568uZz?=
 =?us-ascii?Q?9xw7VDBJXH7Km9g0S5cPodFxqZSekDiLg3KQOve+PgRdN3whe06VCokKe3QN?=
 =?us-ascii?Q?OUZ7/THcfsDJGN/GbYWDGpF1Jz57KNTOZCHJN+o0Hcionr6e/iR2hZZfvXqo?=
 =?us-ascii?Q?Zj6YOuHTu//44VEqdc94JXyHSdiHx6GqxfhenX3N+9HAfWD/hYM6xlI/T0oi?=
 =?us-ascii?Q?2cdWrA51jyfQLcUFYWPTANomgPz5mU4A8znn2v1xAePtha+HvM1s9NvoDqu7?=
 =?us-ascii?Q?5bIG82IjpAaBLNIl5aPj9ikSX7mX0+hyKzH+sFcXUJuKQMZpsedNKUvvubNF?=
 =?us-ascii?Q?IBL4fULcPOXkg7o5UJYO5snZhouBtgdM/qm9mZjMI3kulVaHzqJYvz5YTbc5?=
 =?us-ascii?Q?hMnAc0yiTJrV/Nc2YFDGJhdpnETE9/Yn/JUmuvEqOVoJn4xYqfD4bWwuUBHB?=
 =?us-ascii?Q?NhHdnv6FqfybIDEHFGQlrWIKCBBShgR62axryLvbwpElnQMNLDkYnJQdYA7d?=
 =?us-ascii?Q?6hVF8WeMjurl+EVb6VQNerqg9VXW7f1O/zHCjiqBTYl3bF8tCYzML6M3BKap?=
 =?us-ascii?Q?rB+LhlLutb2tWunscOJU5+x0+n3S0RJ7+EqAaoEJefJYiHsW9jsLgKKnpmaJ?=
 =?us-ascii?Q?1rg/HgxMgJUEPG+d7atVbvkp6QsTcn1ih9bnKTdC8L2d+KVe9y9i8Lx3XhQg?=
 =?us-ascii?Q?3bVVE+E5zVG/3A0Y5jwZgaVkZbECfVDA4bbQCTaSZS6TOGdSa8U06S1IRzCY?=
 =?us-ascii?Q?MRTYpZ1nWkZoDyexm4jiF9ZO/pxeEQlPXEY9EP8h8aWtgXZdNFA+3SsT/sAA?=
 =?us-ascii?Q?KK40rrIiDcv4Crycf6tx0f1W48r/tRzSP0bMDpCkWBhNTs6H0sYf+Xc5x9Nu?=
 =?us-ascii?Q?54OLPsjUoMXvRCYaw36PETGzKwz1G5M=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1c6808b9-8a3a-4e6e-79e6-08de85bb9618
X-MS-Exchange-CrossTenant-AuthSource: DS0PR03MB8272.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 13:29:45.7544
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: txuoZf9Aril+4VuINNKll+Y/P6NjvCL/QWhglpl/CUSpC9Q/EOZXE4wJueSy2HeClDIMohpIGdlxnLEKUdRwAG9w+D9zwo+MwbSeaCzqFX4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PR03MB989126

Since fully_eager_fpu is always true, remove it and adjust the code
accordingly. At the same time, rename vcpu_restore_fpu_nonlazy since it
always does the full restore.

No functional change intended.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/arch/x86/domain.c              |  2 +-
 xen/arch/x86/hvm/emulate.c         | 18 +--------------
 xen/arch/x86/i387.c                | 35 ++++++++----------------------
 xen/arch/x86/include/asm/domain.h  |  3 ---
 xen/arch/x86/include/asm/hvm/hvm.h |  2 --
 xen/arch/x86/include/asm/i387.h    |  2 +-
 xen/common/efi/runtime.c           |  2 +-
 7 files changed, 13 insertions(+), 51 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 4664264b2f5d..a68b7a583294 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -2125,7 +2125,7 @@ static void __context_switch(void)
             if ( cpu_has_xsaves && is_hvm_vcpu(n) )
                 set_msr_xss(n->arch.msrs->xss.raw);
         }
-        vcpu_restore_fpu_nonlazy(n, false);
+        vcpu_restore_fpu(n);
         nd->arch.ctxt_switch->to(n);
     }
 
diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index 86b1f7535668..2daea084f15c 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -2630,23 +2630,7 @@ static void cf_check hvmemul_put_fpu(
     }
 
     if ( backout == X86EMUL_FPU_fpu )
-    {
-        /*
-         * To back out changes to the register file
-         * - in fully eager mode, restore original state immediately,
-         * - in lazy mode, simply adjust state such that upon next FPU insn
-         *   use by the guest we'll reload the state saved (or freshly loaded)
-         *   by hvmemul_get_fpu().
-         */
-        if ( curr->arch.fully_eager_fpu )
-            vcpu_restore_fpu_nonlazy(curr, false);
-        else
-        {
-            curr->fpu_dirtied = false;
-            stts();
-            alternative_vcall(hvm_funcs.fpu_leave, curr);
-        }
-    }
+        vcpu_restore_fpu(curr);
 }
 
 static int cf_check hvmemul_tlb_op(
diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
index 7da731865f73..88018397b1ad 100644
--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -194,12 +194,8 @@ static inline void fpu_fxsave(struct vcpu *v)
 /*       VCPU FPU Functions    */
 /*******************************/
 /* Restore FPU state whenever VCPU is schduled in. */
-void vcpu_restore_fpu_nonlazy(struct vcpu *v, bool need_stts)
+void vcpu_restore_fpu(struct vcpu *v)
 {
-    /* Restore nonlazy extended state (i.e. parts not tracked by CR0.TS). */
-    if ( !v->arch.fully_eager_fpu && !v->arch.nonlazy_xstate_used )
-        goto maybe_stts;
-
     ASSERT(!is_idle_vcpu(v));
 
     /* Avoid recursion */
@@ -210,27 +206,16 @@ void vcpu_restore_fpu_nonlazy(struct vcpu *v, bool need_stts)
      * above) we also need to restore full state, to prevent subsequently
      * saving state belonging to another vCPU.
      */
-    if ( v->arch.fully_eager_fpu || xstate_all(v) )
-    {
-        if ( cpu_has_xsave )
-            fpu_xrstor(v, XSTATE_ALL);
-        else
-            fpu_fxrstor(v);
-
-        v->fpu_initialised = 1;
-        v->fpu_dirtied = 1;
-
-        /* Xen doesn't need TS set, but the guest might. */
-        need_stts = is_pv_vcpu(v) && (v->arch.pv.ctrlreg[0] & X86_CR0_TS);
-    }
+    if ( cpu_has_xsave )
+        fpu_xrstor(v, XSTATE_ALL);
     else
-    {
-        fpu_xrstor(v, XSTATE_NONLAZY);
-        need_stts = true;
-    }
+        fpu_fxrstor(v);
 
- maybe_stts:
-    if ( need_stts )
+    v->fpu_initialised = 1;
+    v->fpu_dirtied = 1;
+
+    /* Xen doesn't need TS set, but the guest might. */
+    if ( is_pv_vcpu(v) && (v->arch.pv.ctrlreg[0] & X86_CR0_TS) )
         stts();
 }
 
@@ -273,8 +258,6 @@ void save_fpu_enable(void)
 /* Initialize FPU's context save area */
 int vcpu_init_fpu(struct vcpu *v)
 {
-    v->arch.fully_eager_fpu = true;
-
     return xstate_alloc_save_area(v);
 }
 
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index ad7f6adb2cb9..bd7b02085ef8 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -671,9 +671,6 @@ struct arch_vcpu
      * and thus should be saved/restored. */
     bool nonlazy_xstate_used;
 
-    /* Restore all FPU state (lazy and non-lazy state) on context switch? */
-    bool fully_eager_fpu;
-
     struct vmce vmce;
 
     struct paging_vcpu paging;
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index 7d9774df59fe..a9425c8cffe8 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -160,8 +160,6 @@ struct hvm_function_table {
 
     void (*cpuid_policy_changed)(struct vcpu *v);
 
-    void (*fpu_leave)(struct vcpu *v);
-
     int  (*get_guest_pat)(struct vcpu *v, uint64_t *gpat);
     int  (*set_guest_pat)(struct vcpu *v, uint64_t gpat);
 
diff --git a/xen/arch/x86/include/asm/i387.h b/xen/arch/x86/include/asm/i387.h
index da0c7e945f95..fe5e4419b6f4 100644
--- a/xen/arch/x86/include/asm/i387.h
+++ b/xen/arch/x86/include/asm/i387.h
@@ -27,7 +27,7 @@ struct ix87_env {
     uint16_t fds, _res6;
 };
 
-void vcpu_restore_fpu_nonlazy(struct vcpu *v, bool need_stts);
+void vcpu_restore_fpu(struct vcpu *v);
 void vcpu_save_fpu(struct vcpu *v);
 void save_fpu_enable(void);
 int vcpu_init_fpu(struct vcpu *v);
diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c
index ba27c62132d2..982e42e8f341 100644
--- a/xen/common/efi/runtime.c
+++ b/xen/common/efi/runtime.c
@@ -157,7 +157,7 @@ void efi_rs_leave(struct efi_rs_state *state)
     irq_exit();
     efi_rs_on_cpu = NR_CPUS;
     spin_unlock(&efi_rs_lock);
-    vcpu_restore_fpu_nonlazy(curr, true);
+    vcpu_restore_fpu(curr);
 }
 
 bool efi_rs_using_pgtables(void)
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 13:29:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 13:29:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257126.1551604 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3DRj-0006W0-Ni; Thu, 19 Mar 2026 13:29:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257126.1551604; Thu, 19 Mar 2026 13: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 1w3DRj-0006Vr-JG; Thu, 19 Mar 2026 13:29:55 +0000
Received: by outflank-mailman (input) for mailman id 1257126;
 Thu, 19 Mar 2026 13:29: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=wl8P=BT=citrix.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1w3DRi-0004oN-S8
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 13:29:54 +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 b638309f-2397-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 14:29:54 +0100 (CET)
Received: from DS0PR03MB8272.namprd03.prod.outlook.com (2603:10b6:8:28f::23)
 by SA5PR03MB989126.namprd03.prod.outlook.com (2603:10b6:806:4d6::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.20; Thu, 19 Mar
 2026 13:29:49 +0000
Received: from DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654]) by DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654%5]) with mapi id 15.20.9723.019; Thu, 19 Mar 2026
 13: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: b638309f-2397-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iuxU5EzPq8b9FEN07aCeTs0ZKRVVB4AB11e7K7OH/Mn9SdJVi3BOQ3pFXDzekQUHa5C1iRUexuQDglsfhNQ7GSX8ClcKKTGZNt1yx6ngYbNneKaoPrK3y6bqjZx4H12Me5CV0rbWmDdR/iO499bXO25jgGdsPjr7VUGa72+9X0eO3hsKzBnr02jfVs1G8/nb9D7n2pzECiZMip+NtSXyMhgq6oB79+QhRWWi7Ymz2OclX6vKFqgCSovjIWz9tfGzEp/+rPLMCSEYAIF6LF2NKx/bwKah7cgL8kQSuyFQgS1Qz7r3G4I5X1hN5JgeFTuRV3EzUY6sKxgbguDLY3aI3g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Mc/1C/5c7wG9Z7QnUUbSvdx08N7WHZhMNrFqZMOdkXk=;
 b=g/tITHJH1GgNjTdSpNgR79NPG8TWSBc5AaTyqMQ4Vgv2arzdWmOnlr6mXbMYf7fbzyBcFsxhaYgCyXx61zgplfjRFO4d8Gl1Vzd2LfzT5EiYsBZGyCSt0YO84SNfgamhF091ND4DAuy4pcCi1tBwRjF/vlzxa5U9fRbeIa5DmJSDp1MrlTryASCN3glYig4CWP/jJPDLMm6rfDX2SR1xcF4RAAQbJ9NbBwqXE/OxCrkQueZfX6GN0BcMZl+Qkf8U0StrVhG9nUs5PUBx3R5ptfGXRrwn93PeWusnD0600ySl4OMO/EdG7/G/1yiKWa/YOII6y4WWJs9D6+Ml3zH28A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Mc/1C/5c7wG9Z7QnUUbSvdx08N7WHZhMNrFqZMOdkXk=;
 b=TuMVa5poDHHcjxBfYFamvUwChRNCwrVbizOZ8w54aY1WodozQnXNWv+RUrIQX981a51lfPJiRDXZdzx+oa1taobNhucyxbdACd2WeyKUWcnbFP1Ae9EZ6d/hsNd2KzeIk8xThjSjpoT1CHvIXDy9DH1A3aVqvLD2w8sk7MXJwhA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: 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>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH v1 6/8] x86: Remove fpu_initialised/fpu_dirty
Date: Thu, 19 Mar 2026 13:29:22 +0000
Message-ID: <20260319132924.1469809-7-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P265CA0082.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2bd::15) To DS0PR03MB8272.namprd03.prod.outlook.com
 (2603:10b6:8:28f::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS0PR03MB8272:EE_|SA5PR03MB989126:EE_
X-MS-Office365-Filtering-Correlation-Id: ab7470f2-0ee8-49ca-75de-08de85bb9866
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	J5wFkUfV6IQSNX2ltyu/I1L9Q91GRedvsX3oRI0vFQW7RKJAoLCHfAi37S/nOxnsCRbQea9a+QKLDv22NNn7yQIeJMVSGyaRZJNVC8VkkZj8CwdjAqoU2G3vMOkgi6+/vBPZxm2qI08/Yv80AAl7UYo5Z5KIXQ090hhDu6sNhUtx/H54kR8QHtgx3p60ulUzw2BWmV3oOqo3CJTzjACQ/7eN1R1vzry4FXSxlnE63lq02Fro19ly7G18gPKV3y6EVP7H8j1lPM4WrQm+EBOW9j97uB4y9WVnLYMtegLo6aFrkefCt02ThlgzJCm4iwrV0vtvEvxb72hgN5DbBTlwb7j9ih9k+KCyGG0QXNhYl63bktCMgtI2tLKZU/KNTtlQCIbHajIkw1J/lcMq2DKbA4bMEIRlz15m2Ar7sRmyjjuI8cv0ilno/VBDYZpnnCgZrn77aMq72A7KBLzUCwMmucItZ/NRzM067iTonaljt821KeWh9GvlSh/a9uXNcS4l2jU7n5eoupGk3q6OtzpTbcRSxOibDw7b3rm2bIYjqMErlnstRpz5+OM3nS42cYL80BBWSjtMuVP6s1yBtpOxVnu3kxMw7PDO1eatRBy8RZ+CW7ObuYOIK/Ec3OTIwmamJtL2YEZk0jc2/c83+Et0QMMrj/BmbP/op+wYMgbNXYWq2zpK3N6RVElK1yMt2jGz8BpSZNB4MvqK7gL+ntVhxr3n1yZ6vO0XDbi0qGiaQjE=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR03MB8272.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?JM94VrhCBzTCNjVJXkmcDm1W0c3zSInerd+iATvMQxFaUWAZReKeG3QQnmIC?=
 =?us-ascii?Q?jCRJUC8egbXzfAYza/WLgxV3FjsIg4U/9ub2EwFDqR4agOT/+3tPYZsz2SD2?=
 =?us-ascii?Q?rRZBIqg186TK7ADgGIc1PRFk5ZaAMa7nAXH362khGK3pVrfRRyLFoaQOUR3I?=
 =?us-ascii?Q?vHkdUgjiTeyihx3NojOtow70q/HXHiY3GeKFNVqx7HHKnyTa0TQf3ccMzsIC?=
 =?us-ascii?Q?Rx09AizQ6RB0IWFz0JjhsfioZ9pSqymnf4niZ/PhYirEpWxirDO2rdOvG4Qm?=
 =?us-ascii?Q?GqnyoCDRNXmDrbgHEptFv4qnDQr6jEJq3iDUM3XzQH9BnFZ7669xpsUel9w7?=
 =?us-ascii?Q?K9TE3k5v6FosgbhH/wZdwYo6Tuih03cNJRk2KS7I4FX6i4zKFVg8bAhzzJxT?=
 =?us-ascii?Q?Ahzu8BKFLeAiqtRnmLuaMH+xXjBX1k3NoEenXWCvTMYRwQQm+ZciQ9xGlbVg?=
 =?us-ascii?Q?xHvRzxvusYzmYcR121InVSTOsklnXZqj3vlf7J9rXNU9t/G4tPb+nwFRa9Ci?=
 =?us-ascii?Q?M44BXZOMr0TUXcSJwZoKY26sYXVxqNW/CNzi18AiN0RjmN8RWWK1jb7U8n2j?=
 =?us-ascii?Q?9v5R2jgJYaJ6eJB+ligackTZsWpAgBYo1eZW63l0eU+83a1mEhbfjq3EgIpF?=
 =?us-ascii?Q?3fJSvGhKkPYzZgRik+UgWaRqyDNnNpnm7vkIkQd6AOWdaHBAfJiW8WpdJQ7o?=
 =?us-ascii?Q?QORMZ6ysoilOaHqxqHVRn+EtCqEd1NckCST6bC5tlEAcNN//SJ1XnxP+d3rR?=
 =?us-ascii?Q?9kaj9I+C3J63dJV2Ph8L0fx1LoB9TSbqdG96ShGi+G3AQTw0xoIkS/1QkgUr?=
 =?us-ascii?Q?sjDBbnI1MYdcV9mMmbmuMuOW8B04J/WP3KM5JTIhKeJ1ZRWIu+FdkW/FnoG3?=
 =?us-ascii?Q?GJRi/g9NR31/8rGpFxMUNBxeTHUu2T9zzhR/CqBQt/pXeXsK1toR+pp/8DwN?=
 =?us-ascii?Q?8cGvowssUsuIZR5RUpiADNe8U9unNP7opCJ8DuX6PVGBWEchXGufx2JkkUrY?=
 =?us-ascii?Q?OqB47c3YqFyYyIBoTc9WM6VRvkJ4gubIWwMFJt2Een0GrjEeKbJrKGgkerRP?=
 =?us-ascii?Q?7t8+zK62I7KAFRw91b5bqbldqba4/m9J9zvLYKTUrsQZMkI6Kvch77CrmkO9?=
 =?us-ascii?Q?BTldWflzPZA4chXgesRytB1qC9lZbxVxz14dx5dSpAvdrGgr+rG1Sogju24d?=
 =?us-ascii?Q?m1Yd2uF3G9ChPl7UKXxzs+aYxyBqsLg8Rzo62mf+EZlMbIXt0pkQtim7fD8N?=
 =?us-ascii?Q?uloGtMQugjAaiDta7ADur06xdTnKIdagy/3x5UZ7bSi8hQYEzs1RR6TZxgrj?=
 =?us-ascii?Q?1Cl59tWKVjuG+lYXsZGxCnf79Kl28J0I4rZfKVjkoRkjkaEyDkisoLdkJj++?=
 =?us-ascii?Q?skfdq27FklcvjqImoDZ4hwNanKTQoSH8j0oF3SgcKaMQE2FNCFcCx5aswybl?=
 =?us-ascii?Q?Nh1Uq0W/tBZ0YAZlwEBW88Vy49elsuTfW/SRN/G8yhWs2xJTx9IXorbR89jQ?=
 =?us-ascii?Q?PRDe+chLr+b1OaZ4mF/pl8Ithsjxwsjj4sEhxPm7g6l3KowLvPVTgjLDHeyc?=
 =?us-ascii?Q?TtC1aAt5/WRV0yWcqwcKNZL4HD4kError9y5hg8NGP1w4TrAJUWoANxUNagu?=
 =?us-ascii?Q?kCp2q3svUZ8wxQF+VYlivPDvH2ccbciPrsPF5wgCnENAwLUBtB9dVKo4qGlJ?=
 =?us-ascii?Q?9U85qqPAAZBozD6CqzlMLfmLHN8Byv5GYmQOV0q7yCSw+Rx71CtXNUu9QtR1?=
 =?us-ascii?Q?E43s6FAERj2TmHZg68RV6wMIber3llU=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ab7470f2-0ee8-49ca-75de-08de85bb9866
X-MS-Exchange-CrossTenant-AuthSource: DS0PR03MB8272.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 13:29:49.6922
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: TGpEV0HY4Q+q04PLAzr3bvTjcZeBNgtRDIorLo+34vy29ZFAMUo75lgqgvgunGzneobcEQhPsC5EXSaqLOV3RKCrV/DGnehMkNWih+fPpds=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PR03MB989126

With lazy FPU removed, fpu_initialised and fpu_dirty are always set to
true in vcpu_restore_fpu() so remove them and adjust the code
accordingly.

No functional change intended.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/arch/x86/domctl.c              |  3 +--
 xen/arch/x86/hvm/emulate.c         |  6 +-----
 xen/arch/x86/hvm/hvm.c             | 15 ++++++---------
 xen/arch/x86/hvm/vlapic.c          |  3 ---
 xen/arch/x86/i387.c                | 31 ++----------------------------
 xen/arch/x86/include/asm/hvm/hvm.h |  1 -
 xen/arch/x86/include/asm/xstate.h  | 11 -----------
 xen/arch/x86/xstate.c              | 21 +++++---------------
 xen/common/domain.c                |  2 --
 xen/include/xen/sched.h            |  4 ----
 10 files changed, 15 insertions(+), 82 deletions(-)

diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index 942f41c584d4..d9b08182ac1d 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -1409,8 +1409,7 @@ void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
         c(flags = v->arch.pv.vgc_flags & ~(VGCF_i387_valid|VGCF_in_kernel));
     else
         c(flags = 0);
-    if ( v->fpu_initialised )
-        c(flags |= VGCF_i387_valid);
+    c(flags |= VGCF_i387_valid);
     if ( !(v->pause_flags & VPF_down) )
         c(flags |= VGCF_online);
     if ( !compat )
diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index 2daea084f15c..48c7320360c7 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -2517,9 +2517,7 @@ static int cf_check hvmemul_get_fpu(
 {
     struct vcpu *curr = current;
 
-    if ( !curr->fpu_dirtied )
-        alternative_vcall(hvm_funcs.fpu_dirty_intercept);
-    else if ( type == X86EMUL_FPU_fpu )
+    if ( type == X86EMUL_FPU_fpu )
     {
         /* Has a fastpath for `current`, so there's no actual map */
         const struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(curr);
@@ -2537,8 +2535,6 @@ static int cf_check hvmemul_get_fpu(
          * masking of all exceptions by FNSTENV.)
          */
         save_fpu_enable();
-        curr->fpu_initialised = true;
-        curr->fpu_dirtied = true;
         if ( (fpu_ctxt->fcw & 0x3f) != 0x3f )
         {
             uint16_t fcw;
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 4d37a93c57a5..d4ba82845146 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -866,6 +866,7 @@ static int cf_check hvm_save_cpu_ctxt(struct vcpu *v, hvm_domain_context_t *h)
         .dr7 = v->arch.dr7,
         .msr_efer = v->arch.hvm.guest_efer,
     };
+    const struct xsave_struct *xsave_area;
 
     /*
      * We don't need to save state for a vcpu that is down; the restore
@@ -933,15 +934,11 @@ static int cf_check hvm_save_cpu_ctxt(struct vcpu *v, hvm_domain_context_t *h)
     ctxt.ldtr_base = seg.base;
     ctxt.ldtr_arbytes = seg.attr;
 
-    if ( v->fpu_initialised )
-    {
-        const struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(v);
-
-        BUILD_BUG_ON(sizeof(ctxt.fpu_regs) != sizeof(xsave_area->fpu_sse));
-        memcpy(ctxt.fpu_regs, &xsave_area->fpu_sse, sizeof(ctxt.fpu_regs));
-        VCPU_UNMAP_XSAVE_AREA(v, xsave_area);
-        ctxt.flags = XEN_X86_FPU_INITIALISED;
-    }
+    xsave_area = VCPU_MAP_XSAVE_AREA(v);
+    BUILD_BUG_ON(sizeof(ctxt.fpu_regs) != sizeof(xsave_area->fpu_sse));
+    memcpy(ctxt.fpu_regs, &xsave_area->fpu_sse, sizeof(ctxt.fpu_regs));
+    VCPU_UNMAP_XSAVE_AREA(v, xsave_area);
+    ctxt.flags = XEN_X86_FPU_INITIALISED;
 
     return hvm_save_entry(CPU, v->vcpu_id, h, &ctxt);
 }
diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
index 79697487ba90..885f5d304b2f 100644
--- a/xen/arch/x86/hvm/vlapic.c
+++ b/xen/arch/x86/hvm/vlapic.c
@@ -276,7 +276,6 @@ static void vlapic_init_sipi_one(struct vcpu *target, uint32_t icr)
     switch ( icr & APIC_DM_MASK )
     {
     case APIC_DM_INIT: {
-        bool fpu_initialised;
         int rc;
 
         /* No work on INIT de-assert for P4-type APIC. */
@@ -289,10 +288,8 @@ static void vlapic_init_sipi_one(struct vcpu *target, uint32_t icr)
         hvm_vcpu_down(target);
         domain_lock(target->domain);
         /* Reset necessary VCPU state. This does not include FPU state. */
-        fpu_initialised = target->fpu_initialised;
         rc = vcpu_reset(target);
         ASSERT(!rc);
-        target->fpu_initialised = fpu_initialised;
         vlapic_do_init(vcpu_vlapic(target));
         domain_unlock(target->domain);
         break;
diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
index 88018397b1ad..5e893a2aab94 100644
--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -110,22 +110,7 @@ static inline void fpu_fxrstor(struct vcpu *v)
 
 static inline uint64_t vcpu_xsave_mask(const struct vcpu *v)
 {
-    if ( v->fpu_dirtied )
-        return v->arch.nonlazy_xstate_used ? XSTATE_ALL : XSTATE_LAZY;
-
-    ASSERT(v->arch.nonlazy_xstate_used);
-
-    /*
-     * The offsets of components which live in the extended region of
-     * compact xsave area are not fixed. Xsave area may be overwritten
-     * when a xsave with v->fpu_dirtied set is followed by one with
-     * v->fpu_dirtied clear.
-     * In such case, if hypervisor uses compact xsave area and guest
-     * has ever used lazy states (checking xcr0_accum excluding
-     * XSTATE_FP_SSE), vcpu_xsave_mask will return XSTATE_ALL. Otherwise
-     * return XSTATE_NONLAZY.
-     */
-    return xstate_all(v) ? XSTATE_ALL : XSTATE_NONLAZY;
+    return v->arch.nonlazy_xstate_used ? XSTATE_ALL : XSTATE_LAZY;
 }
 
 /* Save x87 extended state */
@@ -201,19 +186,11 @@ void vcpu_restore_fpu(struct vcpu *v)
     /* Avoid recursion */
     clts();
 
-    /*
-     * When saving full state even with !v->fpu_dirtied (see vcpu_xsave_mask()
-     * above) we also need to restore full state, to prevent subsequently
-     * saving state belonging to another vCPU.
-     */
     if ( cpu_has_xsave )
         fpu_xrstor(v, XSTATE_ALL);
     else
         fpu_fxrstor(v);
 
-    v->fpu_initialised = 1;
-    v->fpu_dirtied = 1;
-
     /* Xen doesn't need TS set, but the guest might. */
     if ( is_pv_vcpu(v) && (v->arch.pv.ctrlreg[0] & X86_CR0_TS) )
         stts();
@@ -225,7 +202,7 @@ void vcpu_restore_fpu(struct vcpu *v)
  */
 static bool _vcpu_save_fpu(struct vcpu *v)
 {
-    if ( !v->fpu_dirtied && !v->arch.nonlazy_xstate_used )
+    if ( !v->arch.nonlazy_xstate_used )
         return false;
 
     ASSERT(!is_idle_vcpu(v));
@@ -238,8 +215,6 @@ static bool _vcpu_save_fpu(struct vcpu *v)
     else
         fpu_fxsave(v);
 
-    v->fpu_dirtied = 0;
-
     return true;
 }
 
@@ -265,7 +240,6 @@ void vcpu_reset_fpu(struct vcpu *v)
 {
     struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(v);
 
-    v->fpu_initialised = false;
     *xsave_area = (struct xsave_struct) {
         .xsave_hdr.xstate_bv = X86_XCR0_X87,
     };
@@ -282,7 +256,6 @@ void vcpu_setup_fpu(struct vcpu *v, const void *data)
 {
     struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(v);
 
-    v->fpu_initialised = true;
     *xsave_area = (struct xsave_struct) {
         .fpu_sse = *(const fpusse_t*)data,
         .xsave_hdr.xstate_bv = XSTATE_FP_SSE,
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index a9425c8cffe8..846b91ebefcc 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -184,7 +184,6 @@ struct hvm_function_table {
 
     /* Instruction intercepts: non-void return values are X86EMUL codes. */
     void (*wbinvd_intercept)(void);
-    void (*fpu_dirty_intercept)(void);
     int (*msr_read_intercept)(unsigned int msr, uint64_t *msr_content);
     int (*msr_write_intercept)(unsigned int msr, uint64_t msr_content);
     void (*handle_cd)(struct vcpu *v, unsigned long value);
diff --git a/xen/arch/x86/include/asm/xstate.h b/xen/arch/x86/include/asm/xstate.h
index e3b9745543d7..ca38c43ec1c3 100644
--- a/xen/arch/x86/include/asm/xstate.h
+++ b/xen/arch/x86/include/asm/xstate.h
@@ -132,17 +132,6 @@ xsave_area_compressed(const struct xsave_struct *xsave_area)
     return xsave_area->xsave_hdr.xcomp_bv & XSTATE_COMPACTION_ENABLED;
 }
 
-static inline bool xstate_all(const struct vcpu *v)
-{
-    /*
-     * XSTATE_FP_SSE may be excluded, because the offsets of XSTATE_FP_SSE
-     * (in the legacy region of xsave area) are fixed, so saving
-     * XSTATE_FP_SSE will not cause overwriting problem with XSAVES/XSAVEC.
-     */
-    return xsave_area_compressed(v->arch.xsave_area) &&
-           (v->arch.xcr0_accum & XSTATE_LAZY & ~XSTATE_FP_SSE);
-}
-
 /*
  * Fetch a pointer to a vCPU's XSAVE area
  *
diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
index e990abc9d18c..11d390cac985 100644
--- a/xen/arch/x86/xstate.c
+++ b/xen/arch/x86/xstate.c
@@ -994,28 +994,17 @@ int handle_xsetbv(u32 index, u64 new_bv)
     if ( new_bv & XSTATE_NONLAZY )
         curr->arch.nonlazy_xstate_used = 1;
 
-    mask &= curr->fpu_dirtied ? ~XSTATE_FP_SSE : XSTATE_NONLAZY;
+    mask &= ~XSTATE_FP_SSE;
     if ( mask )
     {
         unsigned long cr0 = read_cr0();
+        /* Has a fastpath for `current`, so there's no actual map */
+        struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(curr);
 
         clts();
-        if ( curr->fpu_dirtied )
-        {
-            /* Has a fastpath for `current`, so there's no actual map */
-            struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(curr);
 
-            asm ( "stmxcsr %0" : "=m" (xsave_area->fpu_sse.mxcsr) );
-            VCPU_UNMAP_XSAVE_AREA(curr, xsave_area);
-        }
-        else if ( xstate_all(curr) )
-        {
-            /* See the comment in i387.c:vcpu_restore_fpu_eager(). */
-            mask |= XSTATE_LAZY;
-            curr->fpu_initialised = 1;
-            curr->fpu_dirtied = 1;
-            cr0 &= ~X86_CR0_TS;
-        }
+        asm ( "stmxcsr %0" : "=m" (xsave_area->fpu_sse.mxcsr) );
+        VCPU_UNMAP_XSAVE_AREA(curr, xsave_area);
         xrstor(curr, mask);
         if ( cr0 & X86_CR0_TS )
             write_cr0(cr0);
diff --git a/xen/common/domain.c b/xen/common/domain.c
index ab910fcf9306..30cfea30459a 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1824,8 +1824,6 @@ int vcpu_reset(struct vcpu *v)
     clear_bit(v->vcpu_id, d->poll_mask);
     v->poll_evtchn = 0;
 
-    v->fpu_initialised = 0;
-    v->fpu_dirtied     = 0;
     v->is_initialised  = 0;
     if ( v->affinity_broken & VCPU_AFFINITY_OVERRIDE )
         vcpu_temporary_affinity(v, NR_CPUS, VCPU_AFFINITY_OVERRIDE);
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 40a35fc15c65..212c7d765c3e 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -212,10 +212,6 @@ struct vcpu
     struct guest_area runstate_guest_area;
     unsigned int     new_state;
 
-    /* Has the FPU been initialised? */
-    bool             fpu_initialised;
-    /* Has the FPU been used since it was last saved? */
-    bool             fpu_dirtied;
     /* Initialization completed for this VCPU? */
     bool             is_initialised;
     /* Currently running on a CPU? */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 13:30:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 13:30:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257143.1551614 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3DRw-0008JN-7k; Thu, 19 Mar 2026 13:30:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257143.1551614; Thu, 19 Mar 2026 13:30:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3DRw-0008Iq-19; Thu, 19 Mar 2026 13:30:08 +0000
Received: by outflank-mailman (input) for mailman id 1257143;
 Thu, 19 Mar 2026 13:30: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=wl8P=BT=citrix.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1w3DRu-0005xW-FU
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 13:30:06 +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 ba7e7215-2397-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 14:30:01 +0100 (CET)
Received: from DS0PR03MB8272.namprd03.prod.outlook.com (2603:10b6:8:28f::23)
 by SA5PR03MB989126.namprd03.prod.outlook.com (2603:10b6:806:4d6::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.20; Thu, 19 Mar
 2026 13:29:56 +0000
Received: from DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654]) by DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654%5]) with mapi id 15.20.9723.019; Thu, 19 Mar 2026
 13:29: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: ba7e7215-2397-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bBnJZqgSnRtO0bdrKgPa18PmnUWS77hc827QAUCsXVApARBzlqa22LbOOngP+nySDaa61FTpEI0x9oo/MRhBSM2Y2j24Ej08bc8fTm7N0O59gZ43f7wu8VTsqt8gGBwnDuJVhhsCUh0NhFwK7u0561F1pZXL/B/54uxES6Q1JZ5K1H+7YPHbp0vDkQ1wmOPe8f3QVPnmt9/mcZmjp9i6jv3Krk9/XVsSGBdAy34Ri/M2OTJz6DqKVTzE7XEynrZ6r5Shufua4tIBRWqjVYZCiU/48H91ihyTku0Mt2mbXRmQazc1YSRdWc9fufuWjKRNMea4lOvBxCQmEdm3lwLySg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xDL3Fzf65JF8lnT4GldiKUzpA+cDG9coVxidvC84mL8=;
 b=PH9xxObdw1vEakmzeBM9LlUllINs4lEC9zQhADSeeIck2KTScmcU2M1rCB2DwudK8jt0WWDfx2E6iiQNzHpLJ3MxSPvxxnC25SoSXPI20GE4l73A8aI+mXxlhOB1fB4ZkJoHanhpBk6Vp98y/bMpo6GsiEKCf7yntH7KXvNwx5O9Ohqq8xQkg0034XjYGtm5vXFM3t8Oidbn+DJszIQZijZQpjgH724KEnuxGcHzp8Uou0gEwtdgHqMIYE02vaLT1IpckL8AdDGwXcDJxlko881MVMuCd4cujwaW04XjfBkmqHtIm/r89vrMgUOi2KSgqxnsT14LUFO9B0F9ve+DDg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xDL3Fzf65JF8lnT4GldiKUzpA+cDG9coVxidvC84mL8=;
 b=P3jHAu1rl2Fpjxl0vmqtuwNugMdN8JnFhYKJ8KIboTrHRDWZJuT6q/1orR/AgYqRLyBvRskSsy3wXoeCmR4k9Y5Vu+ZAKWZbCw2MGZKwH3pM7avzRsW77ksVN9tpgzFYcn5VsqFIss3wbgNEYk0dzQ5noLUsQ1lwH6QYFPc4R1w=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: 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>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH v1 8/8] x86: Cleanup cr0.TS flag handling
Date: Thu, 19 Mar 2026 13:29:24 +0000
Message-ID: <20260319132924.1469809-9-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0386.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18f::13) To DS0PR03MB8272.namprd03.prod.outlook.com
 (2603:10b6:8:28f::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS0PR03MB8272:EE_|SA5PR03MB989126:EE_
X-MS-Office365-Filtering-Correlation-Id: d151aaed-d82d-476c-06b0-08de85bb9cea
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	K+D7OHr7VF72xv+793Yv9oP+I2jIrVZc459Fc6EpgKidupw4IEEzv6OgSf2+TNzdrQtoPrU+deL6ue7SsHs8L1Yw3+Lmkw/TPuiJEOAFv5bGuGZftthwHd89y+pvEoTHSpmaAkcceahPJK4zj9i6a6cGzCtt3Gyk5y3zIgk8LI14x+9KqJBTUU+o6zwqv5BpWrig490W134fhsrFx1WVc5Zp35Sb16L2uc2+cuuHPs6oHoVc1E+mzqw70v/czLp7ftaKE69/ovcMQnh9dU1uP1CTIiHsXuzFiYkZrEOePE95MFYXr+4LOSWcHm/y1xJAi1l6IPNn8brF9b8bpkYAmy11YqbIiwzPGFV+EnpypN58R3SoKBbONTU8ixcKvPsSqNc3/culPR10BEDiSO5KDevOO4vXscAChRPNQzpy+PVs2Ab1DUFU5w0jagGxG9lIYSr2j90FqJJkHE2lF5vCJyPn0CZyWhZxoySKJuFH8MDz1OeU1bvbOxlZxYDc/pvqu9DBjU6IFV8N+7r63rMAQcAJPqh1XUpb/L9FcCMb7OxlB2Wm6yr+wZpzXilGUi98FrxN3h+d3IhKpw13K7VBOPk6C6yhXuOfz+qfG0KPMBFZ/CJ4MWyyi09DHAJwIWpHbb1vvnryK2hn3MQEv9tnVaxHSy+HwdQu+pM3UYacBgkbA12auc5ejGObM48TK5IBntxT+/WnQbrZiUnFOu45yR9C1Efkqwm7IrxAP6da5xU=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR03MB8272.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Ef12OFxVfFFDQ1rOgTFtRAQxj+9czA+xQI1yjj7Bf5iGHS7mvsrP1L6QFgTr?=
 =?us-ascii?Q?cq1Tq5P5AdYG+pHWOYpZPKvxPWNEiF1qSnqLQeB+NkFKVYa/ZSDcgzhZ2+bc?=
 =?us-ascii?Q?Axm8rM29U01ucEF38lq6VVg4/p2jzNfAfn15w79PJn0fZ0KbDl1nXdI6oipM?=
 =?us-ascii?Q?qNGh4LaZegty0AxNTgQfL8T10MOroBCj1uy/gbVfxbuj25vHhyXzM8rEMg4A?=
 =?us-ascii?Q?w4CR6zPnUzVWAc+IiTp6/UbP4ekak3WS8C16O7v95f1eXWd25gRWc+E6aHrY?=
 =?us-ascii?Q?vGc0qFr74yp0XoBDa4yvFMjhmk3D0KF1bwOWbLisCBbrDYprmoFh0oDGlXvZ?=
 =?us-ascii?Q?vclhwiAMMpDhpoMVwxTbt8YMoxhWTU3CVemeYUdpXVxJf/gD59NPoPSbbjCg?=
 =?us-ascii?Q?hVZ4tP0grz507HsnrdBtoyRW8UQ3bsdyyz/dre+AP4eyDgt+Qd2f3zCe5mnJ?=
 =?us-ascii?Q?I5zmHnO4ycVDueIljLfjxzv8KF0frIAQnq75Sxu4AjbqPRRw4MALJoSL7Hfi?=
 =?us-ascii?Q?IB4O+9fWREXuQLMVQPlZgNth1uX5LKuBYhxA/wYF4c7lqU5SNSdrTAHLsuB8?=
 =?us-ascii?Q?0nkBa8G3M9U+ax5iLv4Hqvt48X2anxucDRC1kcF2S2Ls/UG/1q0vCmDIvdV6?=
 =?us-ascii?Q?srGIm7u7nc3EmJrNJTMANlIsUsI3JM0fsj2FDL91lb6yT1bXh/j22ObUMCfk?=
 =?us-ascii?Q?7q+WwvJnpUQmMdgEZgI3ILqjDrVNnY6GzCORwn57nkQKRabWZV8igI8IaMRM?=
 =?us-ascii?Q?/3sAvuhuP7Hf7SfWtrYl6zNitjld8fibinKlDbMfdIeuedSQ2A18nvmoOiLC?=
 =?us-ascii?Q?lJQ9+41dCXHZ26KA3ORmv9mhjq85CQsohQj8GxMb9Ll7JHDFkSwOvYw63GNB?=
 =?us-ascii?Q?jYPgDuphIIqVgV3YOxwKSMHr4iiJ/ZyC69rgnZX0PqQaILfEVe8PuA3sAaGP?=
 =?us-ascii?Q?xOq5HxpTShDuQYEka2Gt7j5F4uqa30HB++F9ukRuNQvtyRmVoxvLherFhtUP?=
 =?us-ascii?Q?KQ6u/HXuZZYVshkSNa+X/PfFPgHL7dqO3JTAy4vUjjT/HysaBavPT9y8e/Oa?=
 =?us-ascii?Q?+O/IZtBiM8Sz3j6K5Gb3CPN0a2qB+ENr7Eg/Ky1BXF0Mwcqe7S1wkCc7qEnF?=
 =?us-ascii?Q?aNniqvPQX8VVRTCY8b+nblhHvaKCBNsMLJ/3WsfvyFn9Qu53oKKiBtf4VSmy?=
 =?us-ascii?Q?WrWDbjyUkRQglFtZVfKf8fTWC7X855OAYtAMHZbPKktb2qEzzLYtB5TOFEcZ?=
 =?us-ascii?Q?Xtu1nX3t5wg732iHpoXQOuek89lCTG1jHrlsXt3lXX0Tq+tOwtby+yVyNBJH?=
 =?us-ascii?Q?iCqwllgOwRWKElOe/itpoflwlIGwaS6pM7zPghGTeyxqeIWD4ap7NDn+dBj9?=
 =?us-ascii?Q?N71exgO+DTicFCvZeA6raTfKH/AjfRNzESH3JHPobGjw4XSU5Veio+g5VKjQ?=
 =?us-ascii?Q?12HpI7+hnAubLyc0PhwXXVjYtcGCgktvgTmxsxrxDm4LtBOzXI875wCnoyEM?=
 =?us-ascii?Q?XTVT10RU36zOVymty0e/qeXkU98XKNl9k0yyBnxim4yOPUAT+MwMIYkpnZ4q?=
 =?us-ascii?Q?6nn5SyiG08+BRPs8S/pQ/fM0R+12hn5te3pyl40QTSJyz0HFMjudTLn8jJ7q?=
 =?us-ascii?Q?s7O4x8fLB+3k2xpON+Z95/ng5dnZLOLJPL8Vd+u/un6xBRYX7zppBFFb/Yrc?=
 =?us-ascii?Q?hDpDw1yYkEjLtqoWZ1+by9zb2Jpz4p6T2MwCxRZdYaART+2ZiEhwZX1KwYe5?=
 =?us-ascii?Q?Wr3+FO0o48SNaxx+mztfrzgYhsM6KOo=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d151aaed-d82d-476c-06b0-08de85bb9cea
X-MS-Exchange-CrossTenant-AuthSource: DS0PR03MB8272.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 13:29:57.2119
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: PTkdREKWE79enoV+NTP1i3SUmX4o2HOOz23zZiwtNAj43ot96hLoPnuNlj4BEAQD+g8tjymC1zbeU1A95b5DqpOUvva2L1AzK8HFsUMpaiU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PR03MB989126

With lazy FPU removed, Xen does not need to touch the cr0.TS flag on context
switch except when saving/restoring the FPU for a PV guest.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/arch/x86/cpu/common.c       |  3 ---
 xen/arch/x86/hvm/emulate.c      | 14 ++------------
 xen/arch/x86/i387.c             | 22 +++-------------------
 xen/arch/x86/include/asm/i387.h |  1 -
 xen/common/efi/runtime.c        |  2 +-
 5 files changed, 6 insertions(+), 36 deletions(-)

diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
index 5d0523a78b52..04a049f01c07 100644
--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -883,9 +883,6 @@ void cpu_init(void)
 	/* Install correct page table. */
 	write_ptbase(current);
 
-	/* Ensure FPU gets initialised for each domain. */
-	stts();
-
 	/* Reset debug registers: */
 	write_debugreg(0, 0);
 	write_debugreg(1, 0);
diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index 48c7320360c7..f3aae158e9f8 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -2527,14 +2527,8 @@ static int cf_check hvmemul_get_fpu(
          * Latch current register state so that we can back out changes
          * if needed (namely when a memory write fails after register state
          * has already been updated).
-         * NB: We don't really need the "enable" part of the called function
-         * (->fpu_dirtied set implies CR0.TS clear), but the additional
-         * overhead should be low enough to not warrant introduction of yet
-         * another slightly different function. However, we need to undo the
-         * ->fpu_dirtied clearing the function does as well as the possible
-         * masking of all exceptions by FNSTENV.)
          */
-        save_fpu_enable();
+        vcpu_save_fpu(curr);
         if ( (fpu_ctxt->fcw & 0x3f) != 0x3f )
         {
             uint16_t fcw;
@@ -2572,12 +2566,8 @@ static void cf_check hvmemul_put_fpu(
          * Latch current register state so that we can replace FIP/FDP/FOP
          * (which have values resulting from our own invocation of the FPU
          * instruction during emulation).
-         * NB: See also the comment in hvmemul_get_fpu(); we don't need to
-         * set ->fpu_dirtied here as it is going to be cleared below, and
-         * we also don't need to reload FCW as we're forcing full state to
-         * be reloaded anyway.
          */
-        save_fpu_enable();
+        vcpu_save_fpu(curr);
 
         if ( boot_cpu_has(X86_FEATURE_FDP_EXCP_ONLY) &&
              !(fpu_ctxt->fsw & ~fpu_ctxt->fcw & 0x003f) )
diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
index 9acaaf4673df..336bc83b6e13 100644
--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -176,9 +176,6 @@ void vcpu_restore_fpu(struct vcpu *v)
 {
     ASSERT(!is_idle_vcpu(v));
 
-    /* Avoid recursion */
-    clts();
-
     if ( cpu_has_xsave )
         fpu_xrstor(v, XSTATE_ALL);
     else
@@ -193,31 +190,18 @@ void vcpu_restore_fpu(struct vcpu *v)
  * On each context switch, save the necessary FPU info of VCPU being switch 
  * out. It dispatches saving operation based on CPU's capability.
  */
-static bool _vcpu_save_fpu(struct vcpu *v)
+void vcpu_save_fpu(struct vcpu *v)
 {
     ASSERT(!is_idle_vcpu(v));
 
     /* This can happen, if a paravirtualised guest OS has set its CR0.TS. */
-    clts();
+    if ( is_pv_vcpu(v) )
+        clts();
 
     if ( cpu_has_xsave )
         fpu_xsave(v);
     else
         fpu_fxsave(v);
-
-    return true;
-}
-
-void vcpu_save_fpu(struct vcpu *v)
-{
-    _vcpu_save_fpu(v);
-    stts();
-}
-
-void save_fpu_enable(void)
-{
-    if ( !_vcpu_save_fpu(current) )
-        clts();
 }
 
 /* Initialize FPU's context save area */
diff --git a/xen/arch/x86/include/asm/i387.h b/xen/arch/x86/include/asm/i387.h
index fe5e4419b6f4..0717005d31f0 100644
--- a/xen/arch/x86/include/asm/i387.h
+++ b/xen/arch/x86/include/asm/i387.h
@@ -29,7 +29,6 @@ struct ix87_env {
 
 void vcpu_restore_fpu(struct vcpu *v);
 void vcpu_save_fpu(struct vcpu *v);
-void save_fpu_enable(void);
 int vcpu_init_fpu(struct vcpu *v);
 void vcpu_destroy_fpu(struct vcpu *v);
 
diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c
index 982e42e8f341..0f1cc765ec5e 100644
--- a/xen/common/efi/runtime.c
+++ b/xen/common/efi/runtime.c
@@ -94,7 +94,7 @@ struct efi_rs_state efi_rs_enter(void)
         return state;
 
     state.cr3 = read_cr3();
-    save_fpu_enable();
+    vcpu_save_fpu(current);
     asm volatile ( "fnclex; fldcw %0" :: "m" (fcw) );
     asm volatile ( "ldmxcsr %0" :: "m" (mxcsr) );
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 13:32:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 13:32:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257167.1551622 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3DTn-0001VR-GV; Thu, 19 Mar 2026 13:32:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257167.1551622; Thu, 19 Mar 2026 13:32:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3DTn-0001VK-DW; Thu, 19 Mar 2026 13:32:03 +0000
Received: by outflank-mailman (input) for mailman id 1257167;
 Thu, 19 Mar 2026 13:32: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=+00E=BT=bounce.vates.tech=bounce-md_30504962.69bbfacb.v1-ca5698857e7d42dea41dce3c5d105453@srs-se1.protection.inumbo.net>)
 id 1w3DTl-0001Uk-S8
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 13:32:01 +0000
Received: from mail132-30.atl131.mandrillapp.com
 (mail132-30.atl131.mandrillapp.com [198.2.132.30])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ff6ef31b-2397-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 14:31:56 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-30.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fc66z11p2zP0Jw5X
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 13:31:55 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 ca5698857e7d42dea41dce3c5d105453; Thu, 19 Mar 2026 13:31: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: ff6ef31b-2397-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773927115; x=1774197115;
	bh=9p5tJHoQx4Uw1ylTQt9FJyHIksG7rvfPVCHL0TVAkwE=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=RdCjAnHuWJapLMvmG0U3hiv5SVNyxnE0binYuSGwMoQk4EGMngP0+m6tD+Jb7mOtP
	 3hSAz2AXumwjwiIG+RQ35LDDhcMMRXgCzhBhGgDDoYZ9K8aQWTsAmFqJidOs+oWgS/
	 kOgeS9hI5MSIozLUXwSrfJxyfaIQq5cLwVY90dBplGblu7CnZVu6u/REbApyrvG/ME
	 rPa4+0D025F040xb/qHFsAV6ix2prW2widtKlsSCXj/idQaHjCfnc/lkTTOiPVUfUr
	 5u4SZWRdlVz5Ni0ZWoAMGoGFuMTISeV8RvsXFCNLr4XrJTpa9uVWnuyLwQQuqEKRaw
	 Cic+6tR4v8xBA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773927115; x=1774187615; i=anthony.perard@vates.tech;
	bh=9p5tJHoQx4Uw1ylTQt9FJyHIksG7rvfPVCHL0TVAkwE=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=fcelPUD6yd7JiqsAZPLDLZlFa3hSvV72lnt9awJv5k7jKfnddTYNB+47Fv6aWgrSD
	 z46DZ4kNQIC6djp4YST1/6mYToeOCrQm/ASonwKU6nURWcn7Ookl8YyLWPBaRWw6ht
	 o0Tz0IogcWn/Bn4HcS9qlOPe47R2jr7SCJ6hU7sz27GgZ45d04bORi+nwREeLD1MQ/
	 CVUnRNlSXZHeVtakAk/b59Ggg4FFqg2nkYZxbd7M/8xH1tnXgsofYtkCPnRBE/4uYe
	 tSdu5qGyQNhH/xsiSi2WGnNDOrXrdyh/XR57gvYTGaS10Q1wH9sFaAo5yCpLBnOMlD
	 5RIVybI24D2Tw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2001/11]=20tools/libs/store:=20add=20get-=20and=20set-quota=20related=20functions?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773927114457
To: "=?utf-8?Q?J=C3=BCrgen=20Gro=C3=9F?=" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, "Julien Grall" <julien@xen.org>
Message-Id: <abv6ymdE8bYOIW_f@l14>
References: <20260305135208.2208663-1-jgross@suse.com> <20260305135208.2208663-2-jgross@suse.com> <abQd82Z8x3_9CY2Q@l14> <c7870ce3-fc52-4bda-997f-4791fe3020a1@suse.com>
In-Reply-To: <c7870ce3-fc52-4bda-997f-4791fe3020a1@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.ca5698857e7d42dea41dce3c5d105453?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260319:md
Date: Thu, 19 Mar 2026 13:31:55 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Mar 16, 2026 at 08:51:21AM +0100, J=C3=BCrgen Gro=C3=9F wrote:
> On 13.03.26 15:23, Anthony PERARD wrote:
> > On Thu, Mar 05, 2026 at 02:51:58PM +0100, Juergen Gross wrote:
> > > diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
> > > index 8f4b90a3cf..dda37f7526 100644
> > > --- a/tools/libs/store/xs.c
> > > +++ b/tools/libs/store/xs.c
> > > @@ -1456,6 +1456,117 @@ bool xs_set_features_domain(struct xs_handle =
*h, unsigned int domid,
> > >   =09return xs_bool(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL));
> > >   }
> > > +char **xs_get_quota_names(struct xs_handle *h, unsigned int *num)
> > > +{
> > > +=09struct xsd_sockmsg msg =3D { .type =3D XS_GET_QUOTA };
> > > +=09struct iovec iov[1];
> > > +=09char **quota;
> > > +=09char *reply;
> > > +=09char *c;
> > > +=09unsigned int i;
> > > +
> > > +=09iov[0].iov_base =3D &msg;
> > > +=09iov[0].iov_len  =3D sizeof(msg);
> > > +
> > > +=09reply =3D xs_talkv(h, iov, ARRAY_SIZE(iov), NULL);
> > > +=09if (!reply)
> > > +=09=09return NULL;
> > > +
> > > +=09*num =3D 1;
> > > +=09for (c =3D reply; *c; c++)
> > > +=09=09if (*c =3D=3D ' ')
> > > +=09=09=09(*num)++;
> > > +
> > > +=09quota =3D malloc(*num * sizeof(char *) + strlen(reply) + 1);
> > > +=09c =3D (char *)(quota + *num);
> > > +=09strcpy(c, reply);
> > > +=09for (i =3D 0; i < *num; i++) {
> > > +=09=09quota[i] =3D c;
> > > +=09=09c =3D strchr(c, ' ');
> > > +=09=09if (c) {
> > 
> > If `c` is NULL, it's likely that this is the last iteration of the `for=
`
> > loop. But just in case, should we prevent the code from doing another
> > round and prevent `strchr(NULL, ' ')`? (Or just check that `c` is !NULL=
,
> > and let the loop finish set NULL for the remaining slot in `quota`)
> 
> Not sure this is really needed. *num is set just a few lines further up
> using the same way to count the number of strings. Do we really need to d=
o
> consistency checks of intermediate results in such a short function?

I guess it's ok.

> > 
> > > +=09=09=09*c =3D 0;
> > > +=09=09=09c++;
> > > +=09=09}
> > > +=09}
> > > +
> > > +=09return quota;
> > > +}
> > > +
> > > +bool xs_get_global_quota(struct xs_handle *h, char *quota,
> > > +=09=09=09 unsigned int *value)
> > > +{
> > > +=09struct xsd_sockmsg msg =3D { .type =3D XS_GET_QUOTA };
> > > +=09struct iovec iov[2];
> > > +
> > > +=09iov[0].iov_base =3D &msg;
> > > +=09iov[0].iov_len  =3D sizeof(msg);
> > > +=09iov[1].iov_base =3D quota;
> > > +=09iov[1].iov_len  =3D strlen(quota) + 1;
> > > +
> > > +=09return xs_uint(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL), value);
> > > +}
> > > +
> > > +bool xs_set_global_quota(struct xs_handle *h, char *quota,
> > > +=09=09=09 unsigned int value)
> > > +{
> > > +=09struct xsd_sockmsg msg =3D { .type =3D XS_SET_QUOTA };
> > > +=09char val_str[MAX_STRLEN(value)];
> > 
> > MAX_STRLEN doesn't have a great name, I wounder what is was :-). And
> > it's not about a maximum size of payload that could go on xs wire or
> > something, it's actually the maximum string size that can take a
> > numerical value, when converted to charaters.
> 
> Unfortunately the MAX_STRLEN() macro is defined in a public header file.
> I could define another macro with a different name doing the same and
> use that here, but MAX_STRLEN() would still be there.
> 
> What is your preference?

Well, it's probably better to leave it like that. Having two different
macro names might be more confusing than useful. And I see that the
macro is only defined three time in the repo. Next time I'll stumble on
MAX_STRLEN, I'll know what it mean.

Cheers,,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Mar 19 13:37:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 13:37:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257191.1551638 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3DYz-0002Dh-4a; Thu, 19 Mar 2026 13:37:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257191.1551638; Thu, 19 Mar 2026 13: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 1w3DYz-0002Da-1g; Thu, 19 Mar 2026 13:37:25 +0000
Received: by outflank-mailman (input) for mailman id 1257191;
 Thu, 19 Mar 2026 13: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=wl8P=BT=citrix.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1w3DRk-0004oN-QL
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 13:29:56 +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 b79c5a5e-2397-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 14:29:56 +0100 (CET)
Received: from DS0PR03MB8272.namprd03.prod.outlook.com (2603:10b6:8:28f::23)
 by SA5PR03MB989126.namprd03.prod.outlook.com (2603:10b6:806:4d6::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.20; Thu, 19 Mar
 2026 13:29:53 +0000
Received: from DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654]) by DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654%5]) with mapi id 15.20.9723.019; Thu, 19 Mar 2026
 13:29: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: b79c5a5e-2397-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jzg/BRtkt2yFUu0yjB3bFWBRFf4qaCnQIssDCOelH+cxzfu7MZZEhupUcPsDbNscDfJjRmFJmXnvBVVGMoeT5Lto7GdxKSCAdpwZZstlOLE1PDavS0u5L1BXa9ritpmZd9c/9ZV6MjAVTTgGUCZEiJpiVtaxJKeB5oV16p0L92fUTYscbVX7qZuMbirwBbe4Cqf0oEvEfupRHhxsto2wIaT9sNKadTtvQNJTpVB0LAI7NyCtWuy6HTRHj5y1taoKNB7RdMVUBdBNxaKR5bnI3E2tTmFSdGsLr6uc/ofTppPyPz9gtWxRe9N6GuZJb9dxHLcOkhdQgc0ZpYlGPQs9VQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=elIA6dvdGp1tAzqHaCSWjimWB/eU8V8D3hrq8bZIfs4=;
 b=tz/KDJ0iMa1CzQk1ce1yjjwjxt6boKe7959nbpWDFZ5lgTyyNO2hgCB+PHKiaTTCPaChuMx4ZHcJNa2Zbtq4XZtWpV2RQDono7f97MdETuvmB9BxkQwU9ew/8HFYbuIKfFCA6jrCuIEKEeOOIcmKed0alA4GV0bBrSm1cwzMA+fROhWsP08S9af2QqrBfW+apNs+Pmm1HDoi88jtRhHlLmpoFxd+Oueppn7X8QA9i4zv7Sj8M6EQVwFGbFjULcgKtD2KftqEfRU+mR5SbYo+FMtXUUm+5hYx7kgv4ooB70aJG4eij4jDI126gVFUbIMN9dCQXdPZX3FdBuoPIljidA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=elIA6dvdGp1tAzqHaCSWjimWB/eU8V8D3hrq8bZIfs4=;
 b=aI2u9AkhtBtcTLeLdlohn56Xh0r1YrV3G4Enl3RaHXHg37XKSLPsiH0jmpfnnp/OEQf+D/04toAt4pPLujw02xAPDUQ2JRjR61rj1kTt84TM0EmWgb9aWXFe6xFYLHnNc2s3L/N6OXUvn/h0LrJ+TmZNfATtpieyUo6QQa1/Y10=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH v1 7/8] x86/xstate: Stop tracking nonlazy xstate use
Date: Thu, 19 Mar 2026 13:29:23 +0000
Message-ID: <20260319132924.1469809-8-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P265CA0075.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2bd::16) To DS0PR03MB8272.namprd03.prod.outlook.com
 (2603:10b6:8:28f::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS0PR03MB8272:EE_|SA5PR03MB989126:EE_
X-MS-Office365-Filtering-Correlation-Id: 85cd2d53-48fa-476f-b6ff-08de85bb9ad4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	wAva+HpgSNLn0rRJzhsow25Rj8VZsutPQbxWQVQKWWQUtDow+m6olGmQi4Xtey1skjTr2SAMA4BPPn8tznLUOkMlnAak4jEkwFKkup1r5oGQX9Hn0AMYyBhqP7xfKCpI03L27xp/xoyo+aL51cq+vVuFhnrUiGUdrn2UCnKbeXYoyXT6K17hJKJ33NZvCjLVVvKHEu7zysEsyMj/xzfJTzXtip3egsuHllqsKqZh6bswUlm0uP2VKvggyYzbGFXQRpLBIQJP+DeKN7NENGvDJBvfZ4kJn7+LBoSFpMNGpFYO0QZXckBuDMfEwsGEhujnvavSJcGd+vAy2VibD64gS4yeH+5ePbOIgQLZY9Y6fDPuxXA8Y7tCiCK4QfIjVdQk4+x7EA0EhaJFW0Yr5iBhpV8RflsAeZhldtRDSuTkYxoHWAXWVHzdB07rDpDGJCZ1R3QQFbP5EUHot7mxXW43MIQhX3PBNaA5PK/UwFKRz/K+UzCsJ2FAWGi+YkxVvQa8pRhKs5fgFi6ZGlwd8HYqw5VxiM4vcQZUqz7OoHnns81XPuqLzOwm1OhQZvZmNJMEt4sOXmU3hIz1yPhpg+I7LLti68HG3rCc3Elhq9ZlJ8+mhh6VNRnrfO23biIMz6A9y5lMYh9M3BQ4LVsPVCRqx7q94UblcPp4SQEiogw1k5kgt/ylKWRRdp4G4VySksDMt7tF5aUsmI28CdyaGqHrFUjLdwlrc18rh5ExXrBBplI=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR03MB8272.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?UYKEo2T2pCVniwewGjkYq3ngC7TsYr6UisUN9B0Jbkj5NZZFa34KFKQhBS9J?=
 =?us-ascii?Q?f8ymMrdJ+HC7wsn+9KQOJ6BlUbMtTQNq50kCciyCHBLdBEYxt+PzXjYGfvXw?=
 =?us-ascii?Q?O0rmnDTxw5b59kSm5L1jS0n2T3VvL86cCLKN5W8ivi2x5am+5p3g7wPoGZmh?=
 =?us-ascii?Q?WejyZkpFMUt+8Qe2U7r/T+uU2NLZDJ46iOX+Cv1i0LKcwlL2Zg8rDjMq5+oR?=
 =?us-ascii?Q?N2Da3aIpCezoq6hXcWCXX1sycSZvYBIei/97/oniX7DENvDGjTKtTWbOUkvh?=
 =?us-ascii?Q?NJnIfXhS4/YPPd3lT/RL6txtEISGDspIbXjeSCksydpnSd4DW6Cz38by6VzF?=
 =?us-ascii?Q?df5aQyHGpFzJ8SNQAy/+L6ICBI/SdOEnlF8T661PZo6DhMguBduqFncuZIEn?=
 =?us-ascii?Q?ErHDVpZaKeDdOqcmz/I/wlWP49ZDIraQZmerrRtvykMkUH+iWnUiZDGUkWvZ?=
 =?us-ascii?Q?vuHpej10H1WlVDa/eL68UrekmmCnBVCkISQHFGORMvtWHssc9bzX2t+YCS+k?=
 =?us-ascii?Q?tKtayylSHX+4gxZKaoiHFbj7mKEn9gRaDCS404oeBYN8IZuM2j2iAYoF0U5s?=
 =?us-ascii?Q?Xj3AMMLlzfgZxuQYRMCk9GDg9qEVDGwrqlkVNhpniZvG8hrE0Bt7Y+fhcrxD?=
 =?us-ascii?Q?lKTmX1b8yjaAzEJ6hSVSrZddDQBRJGokmrxcZKJUdkKINR8wgx54I3cBwZau?=
 =?us-ascii?Q?nfmBS7dBjyO6x4SrOLXHeVmf60fTrQimqlrcyVBkITEZEB3dPSj+Kli0C+pV?=
 =?us-ascii?Q?/0OKKNtMyWtAYkRUDzpZkJ3b12BddnAUbEoLSIOze/r7FiTXYk4F3q8Rog30?=
 =?us-ascii?Q?k2HUiLuGyU40RPP6PJ8WO6OUyMLXCxqFIIwXcRpIK8dr4LPsnInf7/0Gvt8q?=
 =?us-ascii?Q?SH1U/Ou6rEZkv/1JeWxgzRhb3i18z/eiReHPNZKPYv+7axXUx7ahFBaMshWJ?=
 =?us-ascii?Q?IFp53/kQcZT7McZKqtgLrkWsABDY6ik4tNk81ypM5TNM7kEovcdlimTBp5l6?=
 =?us-ascii?Q?bjcf9o+38cL0Ab4EHOsx5LKX1jLCq2t2y2DAbPdpNeARN2t95o0LHjxMFhBn?=
 =?us-ascii?Q?US38DEiY3eVUrfjwDmo+zXEz45/5AgvwtnLQZhuy7d0jtLukGl78vP3WlWom?=
 =?us-ascii?Q?rrmC0oZw0AS04wOxbY4GBHrXBqETEfBdG4lDV4qYV0bzvvKyALF+IG2Jxwbq?=
 =?us-ascii?Q?zg63ATWoGMdgPnqC/oRfqbZVw7oFsXedTKu4J1BxUApfM+XUbZuN5zOvPa72?=
 =?us-ascii?Q?rAbJ+dCLxhbqcYk2L497LU1UGvZUXDrZrEN6sMbHNbX+w/46fgh5noqkW2Ol?=
 =?us-ascii?Q?bJPLrwwWlABA7bHLaejAyoxwZlcsxnyE6D6GhNJAu/idCv5piOobeXfQj7ld?=
 =?us-ascii?Q?VLuNE2Ekt4BXtOHi5PxRGrgAkcouElXklHVyOE7B2VEO4OXEROEhZCmYqhYW?=
 =?us-ascii?Q?Gf6p1MMUDQ/BCMV4Qvm+0tB3UhFmgrnXylyVXpUycD0wCM5Q1PYC7daScdIo?=
 =?us-ascii?Q?frcKZhyW7/p9Umyk3pHbW4JgxxCN7k6jf87k4DCNsg/GWGDsEAH5UMpBMu/T?=
 =?us-ascii?Q?tQd9zk2lW20zIclbNybKWvLJDktrZODYJRPL/bqmtFaj26kMStKV3YKu1SUv?=
 =?us-ascii?Q?lDYyLove6sK7aQjcaTh0nQqh5OD9+KgoVSu0YxuWZBZWoj8vNoJ+y2L/ssil?=
 =?us-ascii?Q?r8h5MfaA25lq06+mLAl13jw7a/tHtJGeRZ2YwkRuATEQL/PgTgAw/EawKW5Z?=
 =?us-ascii?Q?ewXPKuV7L9zgkFZI+/Se+SreNS2bIKk=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 85cd2d53-48fa-476f-b6ff-08de85bb9ad4
X-MS-Exchange-CrossTenant-AuthSource: DS0PR03MB8272.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 13:29:53.6959
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: MBUWIldycPuvcApCdX8Ol+TMq3v1iCP1j2GAHj9YKb3y5avpkuMWD4XaeZmcXG2m2Ey278CMwY1W27hCfdj/9ixr/j7Wqp+shGNOrIFug7M=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PR03MB989126

With the removal of lazy FPU, the full state is always restored on context
switch so stop tracking whether nonlazy xstate is used.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/arch/x86/domctl.c             |  1 -
 xen/arch/x86/hvm/hvm.c            |  1 -
 xen/arch/x86/i387.c               | 12 +-----------
 xen/arch/x86/include/asm/domain.h |  3 ---
 xen/arch/x86/include/asm/xstate.h |  6 ++----
 xen/arch/x86/xstate.c             |  3 ---
 6 files changed, 3 insertions(+), 23 deletions(-)

diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index d9b08182ac1d..a9fbb2d405b7 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -1013,7 +1013,6 @@ long arch_do_domctl(
 
                 v->arch.xcr0 = _xcr0;
                 v->arch.xcr0_accum = _xcr0_accum;
-                v->arch.nonlazy_xstate_used = _xcr0_accum & XSTATE_NONLAZY;
                 compress_xsave_states(v, _xsave_area,
                                       evc->size - PV_XSAVE_HDR_SIZE);
 
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index d4ba82845146..0e7b66d726ae 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -1383,7 +1383,6 @@ static int cf_check hvm_load_cpu_xsave_states(
 
     v->arch.xcr0 = ctxt->xcr0;
     v->arch.xcr0_accum = ctxt->xcr0_accum;
-    v->arch.nonlazy_xstate_used = ctxt->xcr0_accum & XSTATE_NONLAZY;
     compress_xsave_states(v, &ctxt->save_area,
                           size - offsetof(struct hvm_hw_cpu_xsave, save_area));
 
diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
index 5e893a2aab94..9acaaf4673df 100644
--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -108,25 +108,18 @@ static inline void fpu_fxrstor(struct vcpu *v)
 /*      FPU Save Functions     */
 /*******************************/
 
-static inline uint64_t vcpu_xsave_mask(const struct vcpu *v)
-{
-    return v->arch.nonlazy_xstate_used ? XSTATE_ALL : XSTATE_LAZY;
-}
-
 /* Save x87 extended state */
 static inline void fpu_xsave(struct vcpu *v)
 {
     bool ok;
-    uint64_t mask = vcpu_xsave_mask(v);
 
-    ASSERT(mask);
     /*
      * XCR0 normally represents what guest OS set. In case of Xen itself,
      * we set the accumulated feature mask before doing save/restore.
      */
     ok = set_xcr0(v->arch.xcr0_accum | XSTATE_FP_SSE);
     ASSERT(ok);
-    xsave(v, mask);
+    xsave(v, XSTATE_ALL);
     ok = set_xcr0(v->arch.xcr0 ?: XSTATE_FP_SSE);
     ASSERT(ok);
 }
@@ -202,9 +195,6 @@ void vcpu_restore_fpu(struct vcpu *v)
  */
 static bool _vcpu_save_fpu(struct vcpu *v)
 {
-    if ( !v->arch.nonlazy_xstate_used )
-        return false;
-
     ASSERT(!is_idle_vcpu(v));
 
     /* This can happen, if a paravirtualised guest OS has set its CR0.TS. */
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index bd7b02085ef8..385a6666dafa 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -667,9 +667,6 @@ struct arch_vcpu
      * it explicitly enables it via xcr0.
      */
     uint64_t xcr0_accum;
-    /* This variable determines whether nonlazy extended state has been used,
-     * and thus should be saved/restored. */
-    bool nonlazy_xstate_used;
 
     struct vmce vmce;
 
diff --git a/xen/arch/x86/include/asm/xstate.h b/xen/arch/x86/include/asm/xstate.h
index ca38c43ec1c3..c96d75e38b25 100644
--- a/xen/arch/x86/include/asm/xstate.h
+++ b/xen/arch/x86/include/asm/xstate.h
@@ -33,12 +33,10 @@ extern uint32_t mxcsr_mask;
 #define XSTATE_FP_SSE  (X86_XCR0_X87 | X86_XCR0_SSE)
 #define XCNTXT_MASK    (X86_XCR0_X87 | X86_XCR0_SSE | X86_XCR0_YMM | \
                         X86_XCR0_OPMASK | X86_XCR0_ZMM | X86_XCR0_HI_ZMM | \
-                        XSTATE_NONLAZY)
+                        X86_XCR0_BNDREGS | X86_XCR0_BNDCSR | X86_XCR0_PKRU | \
+                        X86_XCR0_TILE_CFG | X86_XCR0_TILE_DATA)
 
 #define XSTATE_ALL     (~(1ULL << 63))
-#define XSTATE_NONLAZY (X86_XCR0_BNDREGS | X86_XCR0_BNDCSR | X86_XCR0_PKRU | \
-                        X86_XCR0_TILE_CFG | X86_XCR0_TILE_DATA)
-#define XSTATE_LAZY    (XSTATE_ALL & ~XSTATE_NONLAZY)
 #define XSTATE_XSAVES_ONLY         0
 #define XSTATE_COMPACTION_ENABLED  (1ULL << 63)
 
diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
index 11d390cac985..658f372b8c51 100644
--- a/xen/arch/x86/xstate.c
+++ b/xen/arch/x86/xstate.c
@@ -991,9 +991,6 @@ int handle_xsetbv(u32 index, u64 new_bv)
     curr->arch.xcr0 = new_bv;
     curr->arch.xcr0_accum |= new_bv;
 
-    if ( new_bv & XSTATE_NONLAZY )
-        curr->arch.nonlazy_xstate_used = 1;
-
     mask &= ~XSTATE_FP_SSE;
     if ( mask )
     {
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 13:44:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 13:44:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257218.1551648 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Dg1-0004X1-TK; Thu, 19 Mar 2026 13:44:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257218.1551648; Thu, 19 Mar 2026 13:44:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Dg1-0004Wu-Qh; Thu, 19 Mar 2026 13:44:41 +0000
Received: by outflank-mailman (input) for mailman id 1257218;
 Thu, 19 Mar 2026 13:44: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=8LP9=BT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w3Dg0-0004W5-G5
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 13:44:40 +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 be9098c9-2399-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 14:44:26 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-439b9cf8cb5so1227445f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 06:44:26 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b5189970fsm16901249f8f.27.2026.03.19.06.44.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Mar 2026 06:44:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: be9098c9-2399-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773927865; x=1774532665; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NO/XznmgDx9IYu7OvLPBUEtAZrfkpJjsR2iiABXNnMM=;
        b=N5VnP7RpujU4lVa4OPeqvfohev29Xz3kBapBXuaoEAmSdquI6yJp3MOz+1DOrlBVRH
         YEf3BNd4Vj9Dec/1TVi5VsaxcbMNm51wWJlHUpXUGFPcTOEQifZLulX2vBNbdmGYYxVB
         s78+SNEYcRQ5a1WqeB+PjzGIcxvtBGqvRT4qQg5uOf8o4hOg49hLtch2PA5k+VyI4Jt5
         dgFyf9oE9N6qc8aDyqoN1xYKeuap9Z5+z2kVPFa0pQCxg+mgrf5ffNeX9/XOwXv4do3P
         nKlmr4mYJ3rvQr2R+IkutxYG6OZ+bddDEi/pvTpXYpVmX1NJPFo7GLOgOCN/inDSN9BL
         PLOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773927865; x=1774532665;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NO/XznmgDx9IYu7OvLPBUEtAZrfkpJjsR2iiABXNnMM=;
        b=lGicP0NMgO3gdlb198aqOVqcba6okw0rbyAVkUF3iRW68vt4VpQQ3k/ELMKHiBqcu9
         ou+KWl4GYwa4Q4MtcQ/I0uYecdub4zF1WO0XdnDoIMgEe/u/yVx4u1aNMrT+cdDvfE9j
         H/q/Z2Ttq8utjibg9Yn0J3ICVpboFwHw+r7ABs3LUWu7+2S2FvspJlR5MALQRNl75qRL
         roBsZM2tsZlqhd+SE0lObGlXGvfw+bwHWmjtRDts9D4DuJIdQt1dFSQf3ijEDOzAxOAT
         oJC2ON8z4OWmzuXrLekIrK7GqFsQG1RRCKSHEj/tfdABTdFGY9Dx48qeB254Ou1Fl26D
         IGjA==
X-Forwarded-Encrypted: i=1; AJvYcCXwbM4du+6+6D1knn+J9YnDqveWk7lZewB4RXw+wDMNY8QTJ3GVUnErWpyNOpKVBZX9JbDdRuDmEEs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw3rujiQFgzFe/zVvakBkEsuK/yqwHhheErfvVcYiJTnHPhIgri
	1gucGg9tNpkBPYvfU2uqkvAQh4TtbIIAtx51jeVHpPph0Si2glkTB7+W5tz/8pjhOg==
X-Gm-Gg: ATEYQzw9s8Xua8zCMcB4F1TwvO3gCiC1z1w18K7hR+tes3oN9scAA86qFGFhsQXdvDV
	MTAPlJNsqzD5KPUhLo4ZB1NVMBC8tgi8JLAWZ5tErdRVX9ZMq6Trm7aIap3wwIbdtczGTTO1spb
	w9LqS3UfZDb0Gb6u5KLpNw9dpN61fM6uQzWwqs2Bmk1wZbb5ld4XsFa6NVFoqhoFnYSlA+2sNuJ
	KlODJgTRAPz25J6c6Qc2pxRy1Hkx+16i18CtiFvTsS1p2OcvFSggT2OGzfeNIvtCMbGmt8uRRhy
	OQuQlIPMnOe53RqpJUpLgwcGtdRVgma5cbrJOQuqkpSw13f2b2H/Kg6dPmh1keuzFBGebgBrJ3e
	S5l1kWHMjUoV1d2B+oS0lfKUVnwzkOtraTmmL9IzN+Q+f837KNte6H+aNeh5xwysboBbdAWLGs3
	sHrXw3CWvjeOI8gPopqVXx694a052/Btjf7dLOMdPXSFVKc65xeVvF/KvQcMt0+88/3a8mhRpAJ
	UW9E2AkLImtFoM=
X-Received: by 2002:a05:600c:a206:b0:485:3e6c:aacb with SMTP id 5b1f17b1804b1-486f44385ecmr88375035e9.4.1773927865347;
        Thu, 19 Mar 2026 06:44:25 -0700 (PDT)
Message-ID: <48841930-bb2f-48e7-963a-e823fec70442@suse.com>
Date: Thu, 19 Mar 2026 14:44:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen: handle domain_shutdown() return values
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>,
 George Dunlap <gwd@xenproject.org>, xen-devel@lists.xenproject.org
References: <95dacecdce8f8417562548e16a4d3e11c41a3f27.1773923242.git.mykola_kvach@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <95dacecdce8f8417562548e16a4d3e11c41a3f27.1773923242.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.03.2026 13:42, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> Propagate domain_shutdown() return codes through the shutdown paths
> which can still report errors to their callers, and log explicit
> failures in fire-and-forget paths instead of silently discarding the
> result.
> 
> This makes the shutdown contract explicit for callers which can report
> errors, while preserving observable diagnostics for the remaining
> fire-and-forget paths.
> 
> It also fixes MISRA Dir 4.7 and Rule 17.7 violations by ensuring that
> the returned status is tested or otherwise used.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>

I don't agree with this. For what you want to do (as per the link below)
this is a prereq, but as an independent change I'm not convinced this is
needed. Once it is grouped with that other change, it's kind of natural,
and hence any Suggested-by: would feel odd.

I'm further unconvinced logging is the right course of action in all of
the cases. Some may want to be assertions instead?

Jan

> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> Link to discussion: https://patchew.org/Xen/cover.1748848482.git.mykola._5Fkvach@epam.com/7bd75ecfff5b0a75ea5abd7cc4934582d7e1250c.1748848482.git.mykola._5Fkvach@epam.com/#90048f71-8313-4110-924c-f956a2bec5a0@suse.com


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 13:48:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 13:48:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257227.1551657 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3DjL-0005C8-AK; Thu, 19 Mar 2026 13:48:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257227.1551657; Thu, 19 Mar 2026 13: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 1w3DjL-0005C1-7S; Thu, 19 Mar 2026 13:48:07 +0000
Received: by outflank-mailman (input) for mailman id 1257227;
 Thu, 19 Mar 2026 13: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=8LP9=BT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w3DjJ-0005Bt-QY
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 13:48:05 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 409c2db4-239a-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 14:48:04 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-486fda2a389so1813895e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 06:48:04 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b51892244sm17861239f8f.22.2026.03.19.06.48.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Mar 2026 06:48:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 409c2db4-239a-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773928084; x=1774532884; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=L5A8Yi8Xx2/O7DfoLjNaDgBerAqER/ekqs/fmTnOfj8=;
        b=P/JovRZlSWdAjW+Go3LIov8a/Beh7trn6OP4EkBS1P7Bj0qax6rpbQmdaLVdFGyLdI
         qRudJ274Oj/tPaVrediM4FuCWVfG95CjPkLLBXA8OTJ9Er3JD+jOzOPrH+lZshhCJ+ms
         pZKqiiMXFFriFE+tqhdJBL+Uu6lo8pQQZzum3c8o84WFqBHLlq4zCU4AGCrwbSxglEA5
         RW8OyRWTfNf6/FNjoXMZboLTWfU2QpYtx02B/o+37CDt56Jpkl6Hjx7JMzkn9lpD15ha
         6Il5y93LME7ZBqfPGdTiEuPjNIwcOCkCiXO/qG9DD/jWqtLCjTOLdQ8eynSSyJBfqt6e
         ezDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773928084; x=1774532884;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=L5A8Yi8Xx2/O7DfoLjNaDgBerAqER/ekqs/fmTnOfj8=;
        b=is6XHKRwrY2tXBCXGYZjOMEyGZ4nFCAzhEUSH1Q9VfdBjQTm0lH5zTKUXZLxnkfxGS
         UU03WZ9YUVoVQVh4ZrQNlhTqv2ZVxGGbWeMZ+KW8JDzCi4y+AM7MLOzUYMdqIGgZIWmu
         Zwgd2ioiG5vvuC5JCrCUlZDaHK7HnEO/Oq7yBBWZLRIItOBgr0gnIfbBvlYLayy1cYTv
         aU3oqG9d5IbmBPjApmxagj9zTvw5q5SPY3iQwFkqwBbJtcN692+eyChmRGFUVPndChSN
         MZZQfnPHYFGmTwZTXMKUbgWwCe+l9osmSt66o02XEcd558QunE52qba1Gzp8m/FjcGx4
         osMg==
X-Forwarded-Encrypted: i=1; AJvYcCVfsdGtUqw2SW/g5MDQP66SNkCyu2NRi4xNfSk64UzldgcGzbd6odVZHwMzdas1P0rrCjF0KmedAI4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyt8dghnOFsGWakgDd2zguYezaRE10cylNd+pLsPVdUn+kwakJM
	i3VJ2RbKD517tmQ3Uvp4QlBiR4g18K5WcozBICmGODL/zgXvV9iar9IWVsVASoyMFQ==
X-Gm-Gg: ATEYQzwTLXVmKD+aM6kKvgm6bb4YmQ92CQGQQqHyDFdCEJWhmF/2ZE46/UZwjC0BBZk
	YTyQ0ONdUiJri2oTosEL1rpXsBIoV/5/l+olCRvgBuM8exoYRAf9enLClR9MXoOs+vzEPvoKsN0
	/JOwvHzZMfEyLSDgM1MkyM9PkZRS6UidltXAKk00alxCs2discEaQEI2FSUepwygJpK+5bdboMt
	HO7FKFv813h8yDKYwUCv+Z+3+Rd9dOSSUqKqXe96FckqCWSgXMRWnx/SxYOZ0NceX6IwgnOtYeg
	V0hARwoVy0ZjOnLvZoyy1E7khQQ+qXYw/W0zGbZ/+zpZYZM5MeXAlN89ha745GosGA1BcAo1TT6
	fBkP76FwyL/vZWJp8sLKnGCZoEsSf6F8umjqE0nU6vxrRKWEcFEk3EsQUF7IfvyfFRk7EcP8Yr4
	59og4VPVAkwS+aZCD/42WjeXLoQ2pzO271qOrKCP99DfEezSg0CuFAQ0sLO7NB+culW5Z6Gg5dr
	soO2BkWGwk/FeM=
X-Received: by 2002:a05:600c:b8a:b0:485:34b3:8589 with SMTP id 5b1f17b1804b1-486f4570873mr127939915e9.31.1773928083646;
        Thu, 19 Mar 2026 06:48:03 -0700 (PDT)
Message-ID: <929c9e0e-c465-447d-ba65-30053051a88e@suse.com>
Date: Thu, 19 Mar 2026 14:48:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] install.sh: Preserve directory symlinks
To: Thierry Escande <thierry.escande@vates.tech>
Cc: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20260313172456.871518-1-thierry.escande@vates.tech>
 <7ee208c4-1f83-4bec-86db-bae22bd2040c@suse.com>
 <3bc905c5-a0e5-4ca0-96f4-eb6bb73b2361@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: <3bc905c5-a0e5-4ca0-96f4-eb6bb73b2361@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.03.2026 14:26, Thierry Escande wrote:
> 
> 
> On 3/19/26 10:31, Jan Beulich wrote:
>> On 13.03.2026 18:25, Thierry Escande wrote:
>>> In various distros (i.e. Debian) some folders like /lib or /var/run are
>>> symlinks. Using the tar option --keep-directory-symlink preserves these
>>> symlinks.
>>>
>>> Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
>>> ---
>>>  install.sh | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/install.sh b/install.sh
>>> index 3e11c4d46f..5d0b7a4933 100644
>>> --- a/install.sh
>>> +++ b/install.sh
>>> @@ -27,7 +27,7 @@ tmp="`mktemp -d`"
>>>  echo "Installing Xen from '$src' to '$dst'..."
>>>  (cd $src; tar -cf - * ) | tar -C "$tmp" -xf -
>>>  
>>> -(cd $tmp; tar -cf - *) | tar --no-same-owner -C "$dst" -xf -
>>> +(cd $tmp; tar -cf - *) | tar --no-same-owner -C "$dst" --keep-directory-symlink -xf -
>>
>> How compatible (between flavors of tar as well as between versions of GNU
>> tar) is use of this option?
> 
> It's supported by GNU tar since version 1.27 (from ~12 years ago) but it
> seems to be the only implementation that supports it. BSD and busybox
> don't support it. I didn't check for other implementations.
> 
> I can add a flavor/version check if that makes sense.

Possibly. One question then is what the behavior was prior to that option
having been introduced.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 13:51:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 13:51:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257236.1551666 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3DmG-00070V-Ol; Thu, 19 Mar 2026 13:51:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257236.1551666; Thu, 19 Mar 2026 13:51:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3DmG-00070O-LB; Thu, 19 Mar 2026 13:51:08 +0000
Received: by outflank-mailman (input) for mailman id 1257236;
 Thu, 19 Mar 2026 13:51:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=8LP9=BT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w3DmF-00070I-GG
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 13:51:07 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ac70c3f0-239a-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 14:51:05 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-486507134e4so11700005e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 06:51:05 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b51892244sm17879078f8f.22.2026.03.19.06.51.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Mar 2026 06:51:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ac70c3f0-239a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773928264; x=1774533064; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vFQ2rwShxVe9+05EBZXrp27ng6Ez5bN7KdIOH4xut+0=;
        b=HCsfoJTHytDx5wdcA9qojrcEOPwOuVcIEOcyJSBOFQ4OQq6OfNbK21z8Fmi/ac0lID
         w0O7VBBHBJjwb7ttDfx85MF/SPuR9BhWDGnsmjC5XAjfHoIMWP1twG+QzDPOi9aNo1MB
         +z8tDnZcZGUijCuTb3Z6MJPgQhn+uhBF0Q63qeb8nGsrnfYx+KC3hKv+bOy+yyINgPRB
         zE5CQHEgm0A7p1KlroPchsVRawkoxWPB8qC5DwEoCEYscwoM3rZw/wzULwCuWoTsHYAv
         ceUgQEXECABDjfuTzcJc8W0pK9StXP2qq+S+v84fS4yVOMNuBXfwKZWhBV+/Z3CSBLrZ
         RuQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773928264; x=1774533064;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vFQ2rwShxVe9+05EBZXrp27ng6Ez5bN7KdIOH4xut+0=;
        b=XnI1yG+/+lfCIBjID/t20J9zOnugPocoVDi9Qa9IGG6GTwOPJirA8NrG/j6lS4/u56
         z0mK6fAA1qRxmaTUlsUFhSd7D7TtqAWIk8Z/hIb+QDOvyscGBJh+nuDx7GsUKo8AHxAP
         eYRw3i4Ut98p+SowT+3Yj570+CM6drdWa8qn7j/ylkz9bbEJ0o3A48JG5GalEaihVY2M
         6B7S0OtiWvpSaV3xpLJQS5A+74iohvLMS5A73R0V06gWKazG+rC3UUhw3K4SqNeSljAJ
         1SfKMIBpHGXcoXz1WnJ3/hGG1UKBclHv05lrSkSSVy7lXd+TJKR1QBAdI7XzMsWcpGdf
         slUA==
X-Forwarded-Encrypted: i=1; AJvYcCUJN4fBAAPLkU2mVITfZvLaADE4+KVni0CUY7J6HQeYL+xxxFeuxHZy3mG5oYaikGHTVIWYZPEf1t4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzcPvqQENPSiAHaHZy9jwb3gJlHYnPYKXx7n1KrfCdCVz6O4bvf
	V2Y4uWJtb8ijqOMWk8XlTim3Q7kvaMTrXfgQav18Er7Zu4WZIy0PPf50Eg0S7Vjmpw==
X-Gm-Gg: ATEYQzwpV5t4L/oA2pG/R8XLbLt3KTAdeaOEmP8XhkM0aSvj+lnQXiZ0Y+QxekDcSiu
	cQkJXhRbNmY9lQ223UUCe4Q2ckxJgj8sf8Mw8FLZNTEMWgf5ku0ucmoy7uICe8P2Az8IMqs/gZE
	uvljfPSSBpeEqWhwiBA2WcHNk69Cohsa09Ve3n7LFHGg7rDizXUhPKHoeBkGNoFmL7ATkmFOJBI
	32moUKcQ/Lzq8YroOjx6woHL1OPXpaxPqq/D7pVhPAZ03J/A7PMNeIlksx4E+JJ9itKDL2QfZA1
	ewHv6KtEz1iDg1V+Y8kBM0f9P4taKF7fXR5wmcPVlronHSpqH+/UXwlMdvq7H5R+e6lK+dv0Uak
	x6Nwc/AEL6971ijdZy7GhXlrOhxT0nhmjouDCmm0fUezddSUV6Rg6gvh9GZNtoKRMDknuBuJRoD
	ILr0i41bvlrnCuyXK/6nKK6mt19CWFA200OiNcDq4QaosQ3vt0iP1HMxoUMF4ORqprzsA0LrYVU
	7pnV/v3Pn9v9Fc=
X-Received: by 2002:a05:600c:c163:b0:486:5f71:5829 with SMTP id 5b1f17b1804b1-486f441bbe3mr128601165e9.5.1773928264534;
        Thu, 19 Mar 2026 06:51:04 -0700 (PDT)
Message-ID: <d5ec7548-3b5b-44d5-bebd-f18d33b4a7d6@suse.com>
Date: Thu, 19 Mar 2026 14:51:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v v3 6/7] x86: Remove x86 prefixed names from x86/cpu/
 files
To: Kevin Lampis <kevin.lampis@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Roger Pau Monne <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20260313163630.1073019-1-kevin.lampis@citrix.com>
 <20260313163630.1073019-7-kevin.lampis@citrix.com>
 <24885daa-5801-4e5b-9d16-bac70bab4f0a@suse.com>
 <BY1PR03MB7996677156E710EAD8E3E8E0F34FA@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: <BY1PR03MB7996677156E710EAD8E3E8E0F34FA@BY1PR03MB7996.namprd03.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.03.2026 12:34, Kevin Lampis wrote:
>> With that - where did the ack go?
> 
> When I post a new revision should I add the `Acked-by: ` line under my `Signed-off-by:` line in the commit message? Is that the right procedure?

Yes - any tags you have collected you would accumulate in subsequent
submissions. Unless of course they have been invalidated by you making
non-obvious changes. (As "obvious" can be subjective, you may want to
err on the side of dropping tags, if in any doubt.)

More generally for formal things like this one: Please simply keep an
eye on how others do respective things.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 13:59:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 13:59:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257245.1551675 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Du3-00083Q-FZ; Thu, 19 Mar 2026 13:59:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257245.1551675; Thu, 19 Mar 2026 13: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 1w3Du3-00083J-Cw; Thu, 19 Mar 2026 13:59:11 +0000
Received: by outflank-mailman (input) for mailman id 1257245;
 Thu, 19 Mar 2026 13:59:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=S8/X=BT=bounce.vates.tech=bounce-md_30504962.69bc0125.v1-56268facd5384e7a914350456adb2df6@srs-se1.protection.inumbo.net>)
 id 1w3Du1-00083D-GT
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 13:59:09 +0000
Received: from mail132-30.atl131.mandrillapp.com
 (mail132-30.atl131.mandrillapp.com [198.2.132.30])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c922968b-239b-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 14:59:03 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-30.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fc6kF5gLHzP0JtWF
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 13:59:01 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 56268facd5384e7a914350456adb2df6; Thu, 19 Mar 2026 13:59: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: c922968b-239b-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773928741; x=1774198741;
	bh=07HNrv671SakICxDqeiUIKxDtm1tOrpaHYUe9rlFD2o=;
	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=U5SnYUhDLSeYUxAshdZYfO6eP8/2UGrn1tUlamQZNv/qstrf+pxUeLDzCSx+fJsmJ
	 pXNQ16779FLb9P+cU1t2e7PMqmLSgSXDmr/vJe/B6MLVquJoyjV7u85IA3zBZhzEDg
	 AXzg3SYnel5DR0thBdaWUHXUY3GmIRr3+DSDZgrGdgJSi1ucGyVV5pZC3hLkOB4Kmt
	 PI175QomhuYQ/amn9xhJBWfH5YRmvZsyJN3l9m7PMAzIEDodwK/eGS3/T8ppVFzVgg
	 qbKetV2vIKOHh8XaAQvjeVeq8El/+wQrL7IEraTzXDPVPaFssVcfDDryW3gg+vdzXx
	 0YgjnMdCq725A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773928741; x=1774189241; i=thierry.escande@vates.tech;
	bh=07HNrv671SakICxDqeiUIKxDtm1tOrpaHYUe9rlFD2o=;
	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=LClZKX6CRd8sctdoKqZC0cVPHpKJzlakU2KPnW5Ufbn4KnuzbTrifNVtfb4TOHPW+
	 WE2mri4jWRc7tCZ7XAFHry0/py3RGznn2txhCPLOq6hIcHZHhsw1ilJ2hFNR5DVaUt
	 x4inHZz7qiReg7NSLZUf66lYCrxc8s9oqY9aIOUvoqEAclabSchhQ6OW0QcaeMi8+m
	 dtRt6I3q1pmCsc/cKD8vL4X5SXXF5CXO3pFxwaPw23KEdYvOABOPDvq4x7GmE1TI3e
	 T+zJm0W9yXuoiSN+PIsPf4VROaisxw5kXdXW7hQPRWGpUjAzyaDK7pFmCCU+0iNz/t
	 NAwTCHdfJJyfg==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20install.sh:=20Preserve=20directory=20symlinks?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773928741100
Message-Id: <79295381-5d8a-4f78-95d2-fd67da25ccb2@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20260313172456.871518-1-thierry.escande@vates.tech> <7ee208c4-1f83-4bec-86db-bae22bd2040c@suse.com> <3bc905c5-a0e5-4ca0-96f4-eb6bb73b2361@vates.tech> <929c9e0e-c465-447d-ba65-30053051a88e@suse.com>
In-Reply-To: <929c9e0e-c465-447d-ba65-30053051a88e@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.56268facd5384e7a914350456adb2df6?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260319:md
Date: Thu, 19 Mar 2026 13:59:01 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit



On 3/19/26 14:48, Jan Beulich wrote:
> On 19.03.2026 14:26, Thierry Escande wrote:
>>
>>
>> On 3/19/26 10:31, Jan Beulich wrote:
>>> On 13.03.2026 18:25, Thierry Escande wrote:
>>>> In various distros (i.e. Debian) some folders like /lib or /var/run are
>>>> symlinks. Using the tar option --keep-directory-symlink preserves these
>>>> symlinks.
>>>>
>>>> Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
>>>> ---
>>>>  install.sh | 2 +-
>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/install.sh b/install.sh
>>>> index 3e11c4d46f..5d0b7a4933 100644
>>>> --- a/install.sh
>>>> +++ b/install.sh
>>>> @@ -27,7 +27,7 @@ tmp="`mktemp -d`"
>>>>  echo "Installing Xen from '$src' to '$dst'..."
>>>>  (cd $src; tar -cf - * ) | tar -C "$tmp" -xf -
>>>>  
>>>> -(cd $tmp; tar -cf - *) | tar --no-same-owner -C "$dst" -xf -
>>>> +(cd $tmp; tar -cf - *) | tar --no-same-owner -C "$dst" --keep-directory-symlink -xf -
>>>
>>> How compatible (between flavors of tar as well as between versions of GNU
>>> tar) is use of this option?
>>
>> It's supported by GNU tar since version 1.27 (from ~12 years ago) but it
>> seems to be the only implementation that supports it. BSD and busybox
>> don't support it. I didn't check for other implementations.
>>
>> I can add a flavor/version check if that makes sense.
> 
> Possibly. One question then is what the behavior was prior to that option
> having been introduced.

>From the patch at [1] introducing the option, and more precisely the
test done at [2], directory symlinks were simply overwritten.

[1]
https://cgit.git.savannah.gnu.org/cgit/tar.git/commit/?id=2c06a80918019471876956eef4ef22f05c9e0571
[2]
https://cgit.git.savannah.gnu.org/cgit/tar.git/tree/src/extract.c?id=2c06a80918019471876956eef4ef22f05c9e0571#n934

Regards,
Thierry


--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 14:06:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 14:06:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257253.1551685 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3E0y-0001ST-5g; Thu, 19 Mar 2026 14:06:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257253.1551685; Thu, 19 Mar 2026 14:06: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 1w3E0y-0001SM-1f; Thu, 19 Mar 2026 14:06:20 +0000
Received: by outflank-mailman (input) for mailman id 1257253;
 Thu, 19 Mar 2026 14:06:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mbsH=BT=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1w3E0w-0001SG-Gt
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 14:06:18 +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 c8efa7aa-239c-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 15:06:13 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BY5PR03MB5095.namprd03.prod.outlook.com (2603:10b6:a03:1ee::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Thu, 19 Mar
 2026 14:05:59 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9723.019; Thu, 19 Mar 2026
 14:06:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c8efa7aa-239c-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=S71+cuuewWiUtWepsN0nouiGNiNiFFcie/41StyvWnJiy6HZfvXVErjZHRVQeq7a0nadVOjZnuXLpWpH3oHHtvX3Lm57bTfSSzX4Y5y36FkBpTAMceXDyrmG/v5XRatY4oFZlfTiHjXbg9KYCOK1TySca6KT0kBK0IJNLEvflk6jD8cshfTawQtdywCxphCYX6T3yc4ZReY0L0sTBPy2eb2F1zCF/XOpGk6nY4Md7P2N0bLhHO6NJ08HFy+CumlDEe66AcAEqpwf5Jy7hzjycbJd7mYbB1LPPswR9Ga0XmCG3u/p8n/Qnn25gOjoQKRzGDxfDw8mpStTAqXa6zBc9Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3rGKl0+Sfh9bPj0Veprpia7WYOYAqSDoin6XvLcuVN0=;
 b=Y+Tj9ZutI+cxSeRjelNvHiEgCSrR2pJLSdSL+v7ZeMGRXsRZ2eZYiXD/ag+77wN77/uCYoCne3g5Tfmqq1sHilAcMOw+ch2YUailERY1IUlvWLyMFOZgDwihS1PQMnJW8AgRPmQcLvsbf7D6VSaTUBfJR8Enm88oKsP5JSJxIS7gX+LNLCROZ0/L7+GbRQA1r1VDi7CiUPncN8qfObaai62xjjVaL+drISOH+JDBVgQ6hyWJCrBxXKOYlvFeXd03IjQBSsB9wRyLAz2jKkAJfhngwb5P+3ClnbSaV6hYorie/1Quw450GepB1+xSO631CekiZBZM3NvK0ij7uBuoKg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3rGKl0+Sfh9bPj0Veprpia7WYOYAqSDoin6XvLcuVN0=;
 b=sjHt0InZxtw+rEkbCozim9jUhtm9XmcG5rLsJAiVcCSuZb2q0piNGX6nB146MJfg6x4Vyf8+v2wg5Y6qxFCZF/V5bgoaZWigvLjtFP5vu5CawQqZ2+VZvwCRGxvWHXb+0s0BPfLYyDzUEJ604cpX46FRgjrftPLReqml8m/uUYI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 19 Mar 2026 15:06:03 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Ross Lagerwall <ross.lagerwall@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH v2] x86/hap: Defer NPT P2M TLB flushes
Message-ID: <abwCyyhBusfh5Qvu@macbook.local>
References: <20260319114041.1455593-1-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20260319114041.1455593-1-ross.lagerwall@citrix.com>
X-ClientProxiedBy: MR1P264CA0206.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:56::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_|BY5PR03MB5095:EE_
X-MS-Office365-Filtering-Correlation-Id: e8f9333c-a0d9-4265-c89d-08de85c0aa1d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	3+7wP71+ij0XRzyELECW/snQIiJQ0eYfZukEvyYf4CaIab7MSE65q+S/LC2JjeUA6q3yBTqJFWq8pAk7Tsd5Pjn5zTT0o2Jl9OsZWUodkz6hnODRomyK2XAdsz/J2yrMngGx8vrySV5WQy4rs3/LXsnnRoTDPGQuJxZFXiu9fNosH3AHUB7VlST5xUoUuiktY5UbX6IBd8h6FmNvU6N1LnorZkA2JiekbMhblEKNby00uimYVAcKsUCvedItkNR68x7H0B4T4ttMiegGX2ZZCv821I+LT1KXfZToLyM5oFSro/KXbVc0ttNZ3K5oPs0LpgNFbicn6qbRbAPLTC5qlVPQAHF9wx8o47JodJJsfgS+Gg+Z7/bY/d1t/m1BB5rP3roykj0MXuDqknWxzBFKzvxjTFJT7d4d+pUYAP/XJMIVCI0tRR+XYlHVopJr6sWjXZjbDTtwWB2jQAFTGj+I26pIn8oQWtW117gnJy8ALM7cS8W/3gFSzex6Sg2nNw1zr/CLzXSxocSGohuqxnnbPlgD7UMvPZEMeLKKqltnqV7uzDnovZPtR8LB4NCNrATaW/962HeiYPdAAwH3DEmzDh5qI3VdfeVB9qalrLxuzknyFROdWscO2d261roTug3+INtPzh4FbFvOxtqnVPAXL0wPvP2v3OJ0cqvWjbi0G+cIBqDJ5KFMQfvS+WBwKmhIok+R/7VWHP4Kq67DgxcJqbScLIIW+NM5Gv596SGukjs=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RDJzY29aNmc3UHFOaVh0bStOOWlMa2sxQ1kwODBsT01Ba3FqN210V01yKytJ?=
 =?utf-8?B?VFlobmlhNDRDWFBkSldiVTk3NjNENER5RzJNYWdBbTNVWmE0aVVmbnVtdnNh?=
 =?utf-8?B?RXNwYzdvbTdJVVluenN1M21oMlYyeXVpT3JIVkNyS1VyZ3g0RTRnUXpDL1FS?=
 =?utf-8?B?VDAzVmFINmJGb005Z21TOTlFS3ZPWHovbkc2MDJ3QjU0UlhCNm1jWEVYWkpu?=
 =?utf-8?B?dGt2NDhXYjExUm9oVXNxMTNUSm95VVhqTjNIWlZBMmtXU0pDSVI3MldUaUp2?=
 =?utf-8?B?ZU5rajZIbXdJZVVmMXp5NUJsc0ttUVR1M0pMZEY1Wjk5d0s4endtQTZqY0ZQ?=
 =?utf-8?B?dytmZTBnRXc0VDg2dldtNFFSeis3bEVRQ2kyNlkzK2E2NW1WNG5TQnhBb21V?=
 =?utf-8?B?bm53SC9aUGplcUJjRWVWYlkyUkpoaWI1Nm90ZlI3VERhVjI5NU9ydGhMOGNT?=
 =?utf-8?B?Y3p1VXgrQ0oxN1VrdTVyVmhoMmxHZTB3RTJyMXhVc1kyWHVlT2lleDhvMEln?=
 =?utf-8?B?VUlLb0tHMWlVMGNyRHliYXYrVjVBb3REcHB6bktYQlB3YWN6TVFUK3JWeFVI?=
 =?utf-8?B?VFhENy83dnUwZENObWRFVTcraFI3WW5ZRm9RNCt0MWJEeUg3NVBCaDhsNk1i?=
 =?utf-8?B?djRWZXoreDBmOE5XWjVWMkxoblZtdUR0QXpaREpGRkdKVDU1VVdwNm1ZSHpw?=
 =?utf-8?B?NmZsb1NxUWt5cEtob29QUCtrN21vRjdrU0FVMnlxbDZIdE5kUm0yNXk1Y2t2?=
 =?utf-8?B?WjlEWmQxSFgxZVFFOXgzVFpMSlpSQkJCZ0hJclR5OUlCUUQ0bGxQR3JiRGhu?=
 =?utf-8?B?bVNSRnphM1diZWpzUU1nMlpkUVpSU2p5TXJxTFkvWEpxVm11QUFqOEJLSGhw?=
 =?utf-8?B?VGliYnNxNW50ZjZOeXV1TXd0OXdva2NZcHFCSi9sZWMwMmpPZzZzKzNjODRG?=
 =?utf-8?B?YXNiaGZnUDVoYXV0QzNVRzI1K0hNcjZ5R1NYUFBRMktDN24vMGZmQi9MbUd2?=
 =?utf-8?B?OWxFMjdQdWxHZWtLeU9qZmNmVWl5VkkxbGI4c3ViVVBaVW1HOWN1RkJHNEdJ?=
 =?utf-8?B?UTVnUXJ5VTFpNlo1TU9pT0t1NS8rSmhnWTZNV01lTjM5dHpOdmVWeVhMRzBD?=
 =?utf-8?B?UGNBS1g5RWFoeFFOUmFGbU5DR094eE4rSnhRNS8rci9zcEg4U1Q0WC9oVVV1?=
 =?utf-8?B?d0lPUG9mdUlzbG9GRHNxWmoxSVBVeTdGMWMxb3RJNDNKZVkwdkVFeExackN1?=
 =?utf-8?B?aHVGek5zTjRYdEQvREFPYzgrOSt6dlVuUmsvdnhZM0pqMGo0M1ZTTVl5WVpu?=
 =?utf-8?B?MXgyaFhGNHBmRExmSDJoSDJKZXlkWWtFOUZZUWF0NmlseTMzY2FMS0NoV29H?=
 =?utf-8?B?bjhGQU8rS0p1L0xLajRBR3I5RVZVaWlXMXlwbnZuT2VXY0JhNVNnODRteHc1?=
 =?utf-8?B?aDhYSDBPWk9HVTlHZnB5QmI5ZThzLytySGdEM2QxSGVaRXdpYzV4aDNkYVFC?=
 =?utf-8?B?OUQ3Z2pOWHFKT0RTbk5lMlRIT0w5QWNFOUxyeStOMS9rS05EL05GaUVnWWhl?=
 =?utf-8?B?Mmc2Z3hJTG1GQWtIbTAzdVVwZ2ZBTU84aGJQZDk1QXcyMDNlZEhTMFBaY0Ry?=
 =?utf-8?B?WGdsWkJSTUtBVzVVRzQ4aWNzT00zTWdjZG5JVHByeit3Tk96QmQ5Q3pYdGtG?=
 =?utf-8?B?UXg2MzRZaUZuSDVFSTg5SDJyTzFNVU5QOW53UDhvb21XTUwwZWFGVVdYY1Bx?=
 =?utf-8?B?Rll4SGNEYWR5VlBabnR1K3p1MEx1R2h6cWtHMW9MRndnemFRMlYreDlyNHV3?=
 =?utf-8?B?Y0NMWEJwZWJIQllnaFpGNGFmZnhVY0NzYklNRnlzOWNRa0xtTEs0dGRDcHhK?=
 =?utf-8?B?cGpKZUFJME5jSFM4ekN3b1VJZW5yOUFWeGt0S0JZLzdlTVZuTVV3Qk0yRXFr?=
 =?utf-8?B?MkVFRmlUeFZoMTUvYTVJaWRxZlo1cjRrZ1Z2NnV6UG1yTFN1Sm12RXVWSW5F?=
 =?utf-8?B?OS8rSms0NllOVC82R29qQTF0NkQ3NDRJRkw5dGthWWJGd3ZLNU43bDIyZjdY?=
 =?utf-8?B?V0RYdFdyZEN3aFlwSEFmUU9oL284bEFmekFmZ3BtY090OTdBcW54MEZvcXBM?=
 =?utf-8?B?NGRhN0xVOFZ2SXYxT0lmRmpyUWtWdXgzRGpBNWtrQS8xTGl6L3ZJMGY2YUFT?=
 =?utf-8?B?QkNWZkJrMmFWd0JDTE43Z1preUFEUzFxNkQyRUJqQjJtZXI0eTl5Z1ZlU09Q?=
 =?utf-8?B?V1I1dUZWSHNobmVMclpjVjFZVUQ3b2RsWG1vS3Q5dkUxVml1L2FsU0pnSFpl?=
 =?utf-8?B?THpseVBzYUJVamhrcDFPNEc4NjdZam5YeUtCajdvcHYzZUNlSDg2QT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e8f9333c-a0d9-4265-c89d-08de85c0aa1d
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 14:06:07.0101
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Pe5999ULmNn90ibn0qV9JlDHlecP8iRRzkTGWYfSQy5sZPNggctNgPPwWIvCPlk2686SAnCL4HWd2LhkIXKUng==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5095

On Thu, Mar 19, 2026 at 11:40:41AM +0000, Ross Lagerwall wrote:
> Like the EPT code, defer TLB flushes for NPT to reduce the number of
> flushes and avoid holding the P2M lock while flushing. This can
> substantially improve performance in some scenarios.
> 
> The cases where the TLB needs to be flushed without deferring are
> already handled by the call to p2m_tlb_flush_sync() in p2m_free_ptp().
> 
> Suggested-by: Roger Pau Monne <roger.pau@citrix.com>
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
> ---
> In v2:
> * Tweak commit message.
> * Call guest_flush_tlb_mask() if the assertion fails.
> 
>  xen/arch/x86/mm/hap/hap.c | 22 ++++++++++++++++++++--
>  1 file changed, 20 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
> index a337752bf488..67137611d9db 100644
> --- a/xen/arch/x86/mm/hap/hap.c
> +++ b/xen/arch/x86/mm/hap/hap.c
> @@ -814,15 +814,33 @@ static void cf_check hap_update_paging_modes(struct vcpu *v)
>  static void cf_check
>  hap_write_p2m_entry_post(struct p2m_domain *p2m, unsigned int oflags)
>  {
> -    struct domain *d = p2m->domain;
> +    if ( !(oflags & _PAGE_PRESENT) )
> +        return;
> +
> +    if ( unlikely(!p2m->defer_flush) )
> +    {
> +        struct domain *d = p2m->domain;

As you are moving this around, and seeing that guest_flush_tlb_mask()
takes a const domain parameter, I think you could make this local
variable const.  Possibly the same below with the other d local
variable.

With that:

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

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 14:09:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 14:09:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257263.1551692 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3E3i-0002R4-Jw; Thu, 19 Mar 2026 14:09:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257263.1551692; Thu, 19 Mar 2026 14: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 1w3E3i-0002Qx-HF; Thu, 19 Mar 2026 14:09:10 +0000
Received: by outflank-mailman (input) for mailman id 1257263;
 Thu, 19 Mar 2026 14:09: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=8LP9=BT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w3E3i-0002Qr-8V
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 14:09:10 +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 3191f20f-239d-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 15:09:07 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4853fd7b59aso3781975e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 07:09:07 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-486f8c4aa85sm54896415e9.12.2026.03.19.07.09.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Mar 2026 07:09:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3191f20f-239d-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773929347; x=1774534147; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=CthU106pZlXze4oqdAJUd+ebZ5CAgmWFoiAQeFPe5pY=;
        b=W0VzGYfs/mV7kffrGzLVa74LSevVTJnfgH+I5696xxyGcUAQdhoFdJf6HZRRZBxmLu
         IB/frioGOwhUv65+5xjntn8Mlw/wSbb3Mr4QoeIFLDMxtmPLHSix7x+5EILtqVLgoQ96
         VYjrz1gJKPpuZ7umwMtu0P6LGJdfyPp6rR92YJzw2w/MZoBXpb66B73wksoQpLqbQJAq
         d3muP+TeM/uHt9/YFjUK+nr6eYJ1d8bEOXWxzeFxybb8jhuWd5TztaB/L3vY/24rL9jS
         xjgwBSa151ObxPMj1O5k4zi3nfnQ66zs3DBrLB5rFUI1LVSwzm2VEYR8Dy3J8IkC5T12
         B2CA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773929347; x=1774534147;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CthU106pZlXze4oqdAJUd+ebZ5CAgmWFoiAQeFPe5pY=;
        b=UDAtuGKTnQsOk2BaoopX+Xh8PxrYGK+wV5SM2/87uK7DlwpNptR3AJVOL7v/5ULiGG
         buqWXLvTvgyk0D8m8ZQ1ZHx/bbGLro4m3XGbBeLwCvy9tlxb9qFJTywZ+XMU2h3b9nZt
         VkG8O0y4LtkPAbcEKfPkllHWgBZZ9zhQRvGocPf6o0dr+8rhqjmAaPsF0JnfS9XNLg7v
         /FMIP5iedA3lMiq7lnrJVws/4Ud/biuNWE+6xRvyypmaTtKpJl+hlnRSNeyHjsMxbDsH
         b3w/ptNoobulhrWv+nWN0V1pzj4MIaiF8nIRH0YMSBdbHjqwaRxeVls9lFUZmTX0mDed
         PlnA==
X-Forwarded-Encrypted: i=1; AJvYcCWvyx79ekbLyZcViWZhMPr0CrbSqanUmIbORq91/QNTpE0/h+j6wq0reaFY791QYVITYaXwA1ZiOc4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxJ99bvXzuefXwWtuR0uQkiEEJGQDO5wmPCb2oYnq/Abnm0hfZk
	fbcOCdp7lkt0Ds/5id3vWY+utvAzN5/IVAS1emgnPqg21T1cJ5yNS0ZKGUhy1PvJGw==
X-Gm-Gg: ATEYQzxYS8Fe3mY4Yj2K28yYnqNnISUSKw1TefKLc1ET98VMYOpxAfQ6JqnYSI2RdAD
	NpR+qDF1IK4Gb+jHyl6mLQrYRPHhAHauct4HGxwlJn4gV6wL673Wl0rD0uWyc0fAdqQ7A5IQm+v
	x8VTvVcsDFz3sIoKJQ/ygMki1OuksBnublrq6GvFPQv4KHz8XKE4Vga4Sm/eyGzkXk9KAJUA9QO
	7Fwp0DD9duzOpNIMFIyL0AkTU+q0TMksudEnVEE+0//y6chnQGbx8RKc4kI97154n5prRm01i+0
	1ii+eJmdHH1ZoUCnVQpWo9EA7O9bf6FDLPjrfqBfkJwqsu9+b3YzVZpQl5J/BRgcwltTCLHa6Fu
	+4f75JK4ZQO+n1RCBiFZ4i+gvKUWSOLZbzOYD4ecvzsJo4RUgwTr9llbStoVaYKSaRmN3RONdUH
	ZDvXdiZPQhRU2oW3fiL3JsF/yBW2sYwckIDsMX8kRRQIahYxstO8X1CdW1+Vk6R8nEtuFL7elgB
	SpebTuRgrQAW98=
X-Received: by 2002:a05:600c:8486:b0:485:3692:e8f7 with SMTP id 5b1f17b1804b1-486f445e320mr114469555e9.25.1773929346836;
        Thu, 19 Mar 2026 07:09:06 -0700 (PDT)
Message-ID: <0e2ce96e-b30d-48b4-965b-0880ff26b4d9@suse.com>
Date: Thu, 19 Mar 2026 15:09:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] install.sh: Preserve directory symlinks
To: Thierry Escande <thierry.escande@vates.tech>
Cc: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20260313172456.871518-1-thierry.escande@vates.tech>
 <7ee208c4-1f83-4bec-86db-bae22bd2040c@suse.com>
 <3bc905c5-a0e5-4ca0-96f4-eb6bb73b2361@vates.tech>
 <929c9e0e-c465-447d-ba65-30053051a88e@suse.com>
 <79295381-5d8a-4f78-95d2-fd67da25ccb2@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: <79295381-5d8a-4f78-95d2-fd67da25ccb2@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.03.2026 14:59, Thierry Escande wrote:
> On 3/19/26 14:48, Jan Beulich wrote:
>> On 19.03.2026 14:26, Thierry Escande wrote:
>>> On 3/19/26 10:31, Jan Beulich wrote:
>>>> On 13.03.2026 18:25, Thierry Escande wrote:
>>>>> In various distros (i.e. Debian) some folders like /lib or /var/run are
>>>>> symlinks. Using the tar option --keep-directory-symlink preserves these
>>>>> symlinks.
>>>>>
>>>>> Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
>>>>> ---
>>>>>  install.sh | 2 +-
>>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/install.sh b/install.sh
>>>>> index 3e11c4d46f..5d0b7a4933 100644
>>>>> --- a/install.sh
>>>>> +++ b/install.sh
>>>>> @@ -27,7 +27,7 @@ tmp="`mktemp -d`"
>>>>>  echo "Installing Xen from '$src' to '$dst'..."
>>>>>  (cd $src; tar -cf - * ) | tar -C "$tmp" -xf -
>>>>>  
>>>>> -(cd $tmp; tar -cf - *) | tar --no-same-owner -C "$dst" -xf -
>>>>> +(cd $tmp; tar -cf - *) | tar --no-same-owner -C "$dst" --keep-directory-symlink -xf -
>>>>
>>>> How compatible (between flavors of tar as well as between versions of GNU
>>>> tar) is use of this option?
>>>
>>> It's supported by GNU tar since version 1.27 (from ~12 years ago) but it
>>> seems to be the only implementation that supports it. BSD and busybox
>>> don't support it. I didn't check for other implementations.
>>>
>>> I can add a flavor/version check if that makes sense.
>>
>> Possibly. One question then is what the behavior was prior to that option
>> having been introduced.
> 
> From the patch at [1] introducing the option, and more precisely the
> test done at [2], directory symlinks were simply overwritten.

Which makes it hard to suggest useful behavior when the option is unavailable:
Simply refusing to install isn't nice, but corrupting the installation is
perhaps even worse.

I take it that the (presumably) more standard -h doesn't help here?

Jan

> [1]
> https://cgit.git.savannah.gnu.org/cgit/tar.git/commit/?id=2c06a80918019471876956eef4ef22f05c9e0571
> [2]
> https://cgit.git.savannah.gnu.org/cgit/tar.git/tree/src/extract.c?id=2c06a80918019471876956eef4ef22f05c9e0571#n934
> 
> Regards,
> Thierry
> 
> 
> --
> Thierry Escande | Vates XCP-ng Developer
> 
> XCP-ng & Xen Orchestra - Vates solutions
> 
> web: https://vates.tech
> 



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 14:35:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 14:35:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257277.1551702 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3ETL-0007ML-JX; Thu, 19 Mar 2026 14:35:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257277.1551702; Thu, 19 Mar 2026 14:35: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 1w3ETL-0007ME-Fu; Thu, 19 Mar 2026 14:35:39 +0000
Received: by outflank-mailman (input) for mailman id 1257277;
 Thu, 19 Mar 2026 14:35: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=1n9k=BT=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1w3ETK-0007M8-Ch
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 14:35:38 +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 e488c8a4-23a0-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 15:35:36 +0100 (CET)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-5a27c021b58so1106362e87.2
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 07:35:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e488c8a4-23a0-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1773930936; cv=none;
        d=google.com; s=arc-20240605;
        b=Js1cUsakSMaBM3dS/qhDZ3We2wIWsn3J/dNYBffPIOIY/j+HVWFqjrW9qlYG6vVV+9
         xpFenzGZ2w9Far99Ph27Sw+o0vAdbUuwx4ZkTrrtZS41zpno3IWQDP0o7zsTaNGcKh5+
         8fLRNPWAYaTZZBpmnTmttJd/wx9wjqzkLWF84GmB5DVt7LLvo7bWyxI1P0txt7F/GDKs
         npmHxSX2pdyE5HlSCUcT654+akVHCJ877MW49AlIFe2iAlZPcp0GZQLHk2KcpcyXG4ni
         N+zxt8KZblslaiXMfrqEjBa0QYCUrKDyjPnVxGUw7mA7BRDdHqCfc/CDAn19gg8XXKXd
         L2IQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=ZISoUCzIjE59H/rnhW5DHgGID5AZAfvPV/PaJgYMi3M=;
        fh=8JQmPggC+L5NdWbfpQ6+1DbzndGImN/O2adNKUkU4d8=;
        b=eg9arQJqLM1Rtc/0g9uHo8HVK7GCXDn6yx/422WY9SELXqau4xXZswG2T/FT9lubm9
         pE0X6X837YQpnuR8xR3aPzhd3OMdCgzGzoyEiyk4QR0pS+wswJsSHDEdE6gLnGEVPAUV
         PyrlJ5Eg9neolGw+TiT8Dx/rv8drwB6PH9A2QRETe8xBrlT2oG6OlB5I+EXYFavtSVj7
         BidEIAo65lIdoWnYRPQQZC+WHsC+Z8Z16xX+JPttCQ9bG8KKdncDl9NHZ1qm/mIohIlm
         VpISDf/i0tXcmz/cKvBdqrMtwvU0Y2bp1L7Zr1q47TaNV5cdkNsp/sPxIK+mNlyM9alc
         CRPA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1773930936; x=1774535736; 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=ZISoUCzIjE59H/rnhW5DHgGID5AZAfvPV/PaJgYMi3M=;
        b=G7UX7T6wWT0lzBCSKWl/BLqfGuq12ReJTCIPqbc0hRdc+2HgU2W9qD1lieZV9RltKt
         7laTd2n3RoNtJNbu0Mxe1IjqZMMm4Vi7+HU1oH57oreZLFUm63oemR3jiOiU8DFbn/vV
         iKq1MsRbie5PmKS3KIxGuE5Hr9LFQHvbB5eXfTp35ZwbIzB6DLKRpxYG0ShsRPu5hPqq
         5rH3NJnYzcYa5V/dk6ygpCrp3487KUbLOzSaWAesnnkGidj/FWkNsb7Rpnjp3ON/z52D
         0DHSqIn1CEnEKSlY/1w5peinjg/waIp6JBV5pv6B94+fu3nWfg+ZZHjm92V6XcYBqe7X
         /Ydw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773930936; x=1774535736;
        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=ZISoUCzIjE59H/rnhW5DHgGID5AZAfvPV/PaJgYMi3M=;
        b=DK9DpmcFOQtTeTZR2ZIvxxmaHivO6zVXxpXDU9X9YL0ZBPqliTHhTZo/BhyXITPGDr
         9Vs07kAYQ6GMTo7pTsgZ7aGakLvX07+JagKWcSfUVIPhDD8xi1jZ4DqrCZiDgi5WPKh3
         9jta9so774btuCAwYWTJibLSrW0GUc3ekH5r9nupjHq5F49AusLEin/yK4sUtqq8lGSH
         r/KKUyIXW34JKadesIY/YlncyGhu3v9DdNXQ2D9UwiuCgkQ4TKwlH00z2wX2O9LCfS9n
         OgLmKIvrhht1ooPu9PICp5iFQHkuyGQRmcJ835T+ahhdMVawiWB5yl+gYyKujMN9pL56
         EHPg==
X-Forwarded-Encrypted: i=1; AJvYcCXWXclD+sFT6JftMBHC3/z+YW4Vnfv9ETuXhaFN6kbC/c1bHDQczWaknI1kfyhYdXoRAo43csJm1ao=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy+0s8OnOENH/MihB9DF3g7qLMKy5S+4evu5H4Bx7BSAfkm5CyI
	IxbS5Ab90gAuXm1PKjMjLvIyRCvn98EKf5Fjhor2L7meLqiSIxKiGmDyyAA2ShX1g6TAvgHggCI
	4pr3wZpbkKyXK9RpOp2cGy+RaE1dLvkg=
X-Gm-Gg: ATEYQzw+tbNXI1lDz9X5e9qb0+f4JXVp/feaL9vtwYq3yyKjXeMgErejZBIfbhy7h6Y
	y1cBu/x9oyke4PFZhaJq2EMrpS3XY0I2shNrRhGgaWZkgp6pwJ9ZW+BpbUJznMG1R6FINyybNNZ
	zbvhpY+XdkB5BP0N88ypEDStNIUkLTUN4xeIzEhQnUXbfe2yLCOHH90Wi6HW35NupS1LhJsLJ05
	oel6Zkytqlg407/Et2LmW8iw82Y1W3JxVjY+psuDrxoMs8tI8TmodSlH5ydhpEy1371ObeLPpVz
	jU8W54t/PyosOWw=
X-Received: by 2002:a05:6512:66:b0:5a1:4158:ea9b with SMTP id
 2adb3069b0e04-5a2796a2df8mr2111232e87.22.1773930935342; Thu, 19 Mar 2026
 07:35:35 -0700 (PDT)
MIME-Version: 1.0
References: <95dacecdce8f8417562548e16a4d3e11c41a3f27.1773923242.git.mykola_kvach@epam.com>
 <48841930-bb2f-48e7-963a-e823fec70442@suse.com>
In-Reply-To: <48841930-bb2f-48e7-963a-e823fec70442@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 19 Mar 2026 16:35:22 +0200
X-Gm-Features: AaiRm51plBaIJBF49tZgellhC6tE1MWYp9bgMumD56UfxX3-rR0LLnxtGZ3ZlWA
Message-ID: <CAGeoDV8abhMCR2+Pr_A-ZcKoLr_S=Rp_5a1mODrK9UPRzH+OSA@mail.gmail.com>
Subject: Re: [RFC PATCH] xen: handle domain_shutdown() return values
To: Jan Beulich <jbeulich@suse.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Jan,

Thank you for the review.

On Thu, Mar 19, 2026 at 3:44=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 19.03.2026 13:42, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > Propagate domain_shutdown() return codes through the shutdown paths
> > which can still report errors to their callers, and log explicit
> > failures in fire-and-forget paths instead of silently discarding the
> > result.
> >
> > This makes the shutdown contract explicit for callers which can report
> > errors, while preserving observable diagnostics for the remaining
> > fire-and-forget paths.
> >
> > It also fixes MISRA Dir 4.7 and Rule 17.7 violations by ensuring that
> > the returned status is tested or otherwise used.
> >
> > Suggested-by: Jan Beulich <jbeulich@suse.com>
>
> I don't agree with this. For what you want to do (as per the link below)
> this is a prereq, but as an independent change I'm not convinced this is
> needed. Once it is grouped with that other change, it's kind of natural,
> and hence any Suggested-by: would feel odd.

I see your point, but I'd still prefer to keep this as a standalone change.

It is no longer tied to the suspend/resume work, as the changes adding new
error cases there are gone. What remains is making the existing non-void
domain_shutdown() contract explicit at its call sites.

So from my perspective this patch stands on its own for two reasons:
- it fixes MISRA Dir 4.7 and Rule 17.7 issues by ensuring the returned stat=
us
  is tested or propagated;
- it avoids leaving latent bugs behind if domain_shutdown() gains additiona=
l
  failure cases in the future, beyond the currently relevant ones.

>
> I'm further unconvinced logging is the right course of action in all of
> the cases. Some may want to be assertions instead?

That said, I agree the handling likely shouldn't be uniform across all
callers. I can revisit the fire-and-forget paths and use assertions where
a non-zero return should be impossible, instead of logging unconditionally.

If I understand you correctly, then without any additional
suspend-related error case being introduced, you don't see enough
value in this as a standalone patch. Is that the right reading?

Best regards,
Mykola

>
> Jan
>
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > Link to discussion: https://patchew.org/Xen/cover.1748848482.git.mykola=
._5Fkvach@epam.com/7bd75ecfff5b0a75ea5abd7cc4934582d7e1250c.1748848482.git.=
mykola._5Fkvach@epam.com/#90048f71-8313-4110-924c-f956a2bec5a0@suse.com


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 15:06:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 15:06:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257292.1551711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3ExL-0003IJ-R9; Thu, 19 Mar 2026 15:06:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257292.1551711; Thu, 19 Mar 2026 15:06:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3ExL-0003IC-OG; Thu, 19 Mar 2026 15:06:39 +0000
Received: by outflank-mailman (input) for mailman id 1257292;
 Thu, 19 Mar 2026 15:06:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=2tj/=BT=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w3ExK-0003I6-Tk
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 15:06:39 +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 3a0b8fbe-23a5-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 16:06: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-out2.suse.de (Postfix) with ESMTPS id 0C7295BDB7;
 Thu, 19 Mar 2026 15:06: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 E0E124273B;
 Thu, 19 Mar 2026 15:06: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 n6+sNfwQvGlTIAAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 19 Mar 2026 15:06:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3a0b8fbe-23a5-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773932797; 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=igSCQ4R7W3BM61Lrna0U8D/RNVuugNOT+EHqmQFTBoc=;
	b=sYrczV8iG+iM9wjce9AeFVYPvSIjtxxk8A1Hezmi2ituXo0aQYRQYqk2juKLknJXI2zHxX
	9gbH7iCCYotK7y+Mnoy5u8btnat0WsZf/D/6zjcRh4YVi6ks8OsFh0JcS3BSLbSKcas1PD
	cVWoCLzH+QzA7DH7H8GNjMnhjKQEVVA=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=sYrczV8i
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1773932797; 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=igSCQ4R7W3BM61Lrna0U8D/RNVuugNOT+EHqmQFTBoc=;
	b=sYrczV8iG+iM9wjce9AeFVYPvSIjtxxk8A1Hezmi2ituXo0aQYRQYqk2juKLknJXI2zHxX
	9gbH7iCCYotK7y+Mnoy5u8btnat0WsZf/D/6zjcRh4YVi6ks8OsFh0JcS3BSLbSKcas1PD
	cVWoCLzH+QzA7DH7H8GNjMnhjKQEVVA=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 9/8] tools/xs-clients: support depth with xenstore-watch
Date: Thu, 19 Mar 2026 16:06:23 +0100
Message-ID: <20260319150626.436719-1-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260313074751.2904215-1-jgross@suse.com>
References: <20260313074751.2904215-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	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:dkim,suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns];
	RCVD_TLS_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	DKIM_TRACE(0.00)[suse.com:+]
X-Rspamd-Queue-Id: 0C7295BDB7
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Spam-Level: 

Add a "-d <depth>" parameter to xenstore-watch, allowing to specify
the depth parameter of the XS_WATCH command.

Using "-d" without support of depth by xenstored will refuse to set
the watch(es).

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/xs-clients/xenstore_client.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/tools/xs-clients/xenstore_client.c b/tools/xs-clients/xenstore_client.c
index 9a25704b91..4a14cb334f 100644
--- a/tools/xs-clients/xenstore_client.c
+++ b/tools/xs-clients/xenstore_client.c
@@ -445,7 +445,7 @@ do_watch(struct xs_handle *xsh, int max_events)
 static int
 perform(enum mode mode, int optind, int argc, char **argv, struct xs_handle *xsh,
         xs_transaction_t xth, int prefix, int tidy, int upto, int recurse, int nr_watches,
-        int raw)
+        int raw, int depth)
 {
     switch (mode) {
     case MODE_ls:
@@ -627,8 +627,11 @@ perform(enum mode mode, int optind, int argc, char **argv, struct xs_handle *xsh
             for (; argv[optind]; optind++) {
                 const char *w = argv[optind];
 
-                if (!xs_watch(xsh, w, w))
+                if (depth < 0 && !xs_watch(xsh, w, w))
                     errx(1, "Unable to add watch on %s\n", w);
+                if (depth >= 0 && !xs_watch_depth(xsh, w, w, depth))
+                    errx(1, "Unable to add watch on %s with depth %d\n", w,
+                         depth);
             }
             do_watch(xsh, nr_watches);
         }
@@ -676,6 +679,7 @@ main(int argc, char **argv)
     int nr_watches = -1;
     int transaction;
     int raw = 0;
+    int depth = -1;
     struct winsize ws;
     enum mode mode;
 
@@ -709,10 +713,11 @@ main(int argc, char **argv)
 	    {"recurse", 0, 0, 'r'}, /* MODE_chmod */
 	    {"number",  1, 0, 'n'}, /* MODE_watch */
 	    {"raw",     0, 0, 'R'}, /* MODE_read || MODE_write */
+	    {"depth",   1, 0, 'd'}, /* MODE_watch */
 	    {0, 0, 0, 0}
 	};
 
-	c = getopt_long(argc - switch_argv, argv + switch_argv, "hfspturn:R",
+	c = getopt_long(argc - switch_argv, argv + switch_argv, "hfspturn:Rd:",
 			long_options, &index);
 	if (c == -1)
 	    break;
@@ -766,6 +771,12 @@ main(int argc, char **argv)
 	    else
 		usage(1, mode, switch_argv, argv[0]);
 	    break;
+	case 'd':
+	    if ( mode == MODE_watch )
+		depth = atoi(optarg);
+	    else
+		usage(1, mode, switch_argv, argv[0]);
+	    break;
 	}
     }
 
@@ -819,7 +830,7 @@ again:
 	    errx(1, "couldn't start transaction");
     }
 
-    ret = perform(mode, optind, argc - switch_argv, argv + switch_argv, xsh, xth, prefix, tidy, upto, recurse, nr_watches, raw);
+    ret = perform(mode, optind, argc - switch_argv, argv + switch_argv, xsh, xth, prefix, tidy, upto, recurse, nr_watches, raw, depth);
 
     if (transaction && !xs_transaction_end(xsh, xth, ret)) {
 	if (ret == 0 && errno == EAGAIN) {
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 15:11:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 15:11:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257302.1551720 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3F1u-0004vv-BY; Thu, 19 Mar 2026 15:11:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257302.1551720; Thu, 19 Mar 2026 15:11:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3F1u-0004vo-8V; Thu, 19 Mar 2026 15:11:22 +0000
Received: by outflank-mailman (input) for mailman id 1257302;
 Thu, 19 Mar 2026 15:11: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=jTMs=BT=bounce.vates.tech=bounce-md_30504962.69bc1215.v1-31e2dd9da2eb448da680b6e2bc7c8072@srs-se1.protection.inumbo.net>)
 id 1w3F1s-0004vi-S5
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 15:11:20 +0000
Received: from mail132-30.atl131.mandrillapp.com
 (mail132-30.atl131.mandrillapp.com [198.2.132.30])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e18c02a4-23a5-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 16:11:19 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-30.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fc8Kd3vCtzP0KfTk
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 15:11:17 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 31e2dd9da2eb448da680b6e2bc7c8072; Thu, 19 Mar 2026 15:11:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e18c02a4-23a5-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773933077; x=1774203077;
	bh=c7EBVJpm1lWVHngN6dHa2Z7JDKPHyxmFCynx1E221vk=;
	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=bFUkLlyWUO83CnNQxz4/WUNiT/ggrrvmoBOORsj4nvxp1msRwD8IEQee4sRgLmJNS
	 15F8vV/nz/eAVm57EO/Vo+6tQxJcfAJxyiONawwlz7aFfaVgZBXQTAG3ZMYMZ4RhSC
	 KLgGjQ9bb/4+PkqO/XZA3dwZpV8crI6nM897D6yurf6PW+HYbSSlzjFEmCHtXmgFcU
	 B926UwHcZPF687n3imU7W/qv4ox7j2w1VC/CecJr9Tcb5LX4pSFTRcWJ0LT0Vw6tiq
	 hywY8P8KwqF4n5wpycED+rDOc7H6PIaAikQ3TkE5gUCqhjSJCCwevv/PeYcFMdjofk
	 qfAAL8hEtJzJw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773933077; x=1774193577; i=thierry.escande@vates.tech;
	bh=c7EBVJpm1lWVHngN6dHa2Z7JDKPHyxmFCynx1E221vk=;
	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=u5H0gc02sSq4Oe0PqdPvfoYtvtsH3AAUVzqVVHTqUqAMCOWu4QFHPay+cquq7X0DM
	 oOfHBaHDuvJmzeJvy7lKOI6IzWzSOrOplJD4C3Ov4xCaPLQ1V+ebpAZ1diykbgRyEW
	 KvrKsdTm40n8o0qMNB9VG+eLWjF6PtYkJLHFtPYocmO2QMYIh3yGYa8GOr9QrXbeWG
	 wtNhWD2SCAzql9F30TdmRqZjG62iZ6zG02mzv3mJRjOR16JbT7mrO7fs5R2D/P/Kuo
	 YBQkByFOcyoXrFApZkjIqw6Lrs3frdxPpbmzqEOcm9y21bdb7q6qLDlEteCER1qgCz
	 5ABJJTPZFEgoQ==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20install.sh:=20Preserve=20directory=20symlinks?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773933076902
Message-Id: <74138709-b2c7-4bea-8569-6904c298ade6@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20260313172456.871518-1-thierry.escande@vates.tech> <7ee208c4-1f83-4bec-86db-bae22bd2040c@suse.com> <3bc905c5-a0e5-4ca0-96f4-eb6bb73b2361@vates.tech> <929c9e0e-c465-447d-ba65-30053051a88e@suse.com> <79295381-5d8a-4f78-95d2-fd67da25ccb2@vates.tech> <0e2ce96e-b30d-48b4-965b-0880ff26b4d9@suse.com>
In-Reply-To: <0e2ce96e-b30d-48b4-965b-0880ff26b4d9@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.31e2dd9da2eb448da680b6e2bc7c8072?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260319:md
Date: Thu, 19 Mar 2026 15:11:17 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit



On 3/19/26 15:09, Jan Beulich wrote:
> On 19.03.2026 14:59, Thierry Escande wrote:
>> On 3/19/26 14:48, Jan Beulich wrote:
>>> On 19.03.2026 14:26, Thierry Escande wrote:
>>>> On 3/19/26 10:31, Jan Beulich wrote:
>>>>> On 13.03.2026 18:25, Thierry Escande wrote:
>>>>>> In various distros (i.e. Debian) some folders like /lib or /var/run are
>>>>>> symlinks. Using the tar option --keep-directory-symlink preserves these
>>>>>> symlinks.
>>>>>>
>>>>>> Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
>>>>>> ---
>>>>>>  install.sh | 2 +-
>>>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>>
>>>>>> diff --git a/install.sh b/install.sh
>>>>>> index 3e11c4d46f..5d0b7a4933 100644
>>>>>> --- a/install.sh
>>>>>> +++ b/install.sh
>>>>>> @@ -27,7 +27,7 @@ tmp="`mktemp -d`"
>>>>>>  echo "Installing Xen from '$src' to '$dst'..."
>>>>>>  (cd $src; tar -cf - * ) | tar -C "$tmp" -xf -
>>>>>>  
>>>>>> -(cd $tmp; tar -cf - *) | tar --no-same-owner -C "$dst" -xf -
>>>>>> +(cd $tmp; tar -cf - *) | tar --no-same-owner -C "$dst" --keep-directory-symlink -xf -
>>>>>
>>>>> How compatible (between flavors of tar as well as between versions of GNU
>>>>> tar) is use of this option?
>>>>
>>>> It's supported by GNU tar since version 1.27 (from ~12 years ago) but it
>>>> seems to be the only implementation that supports it. BSD and busybox
>>>> don't support it. I didn't check for other implementations.
>>>>
>>>> I can add a flavor/version check if that makes sense.
>>>
>>> Possibly. One question then is what the behavior was prior to that option
>>> having been introduced.
>>
>> From the patch at [1] introducing the option, and more precisely the
>> test done at [2], directory symlinks were simply overwritten.
> 
> Which makes it hard to suggest useful behavior when the option is unavailable:
> Simply refusing to install isn't nice, but corrupting the installation is
> perhaps even worse.
> 
> I take it that the (presumably) more standard -h doesn't help here?

-h definitely helps but it has the same behavior for files and folders.
So if an already existing symlink is meant to be replaced by a file,
then it won't. I chose to use the folder specific option.

That being said there is probably no usecase where a real file replaces
a symlink in the dist archive. And anyway, that would also stand for
folders.

I'll send a v2 with -h.

Regards,



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 15:48:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 15:48:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257326.1551737 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3FbH-0000wI-6H; Thu, 19 Mar 2026 15:47:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257326.1551737; Thu, 19 Mar 2026 15: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 1w3FbH-0000wB-3J; Thu, 19 Mar 2026 15:47:55 +0000
Received: by outflank-mailman (input) for mailman id 1257326;
 Thu, 19 Mar 2026 15:46: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=Q39+=BT=oss.qualcomm.com=punit.agrawal@srs-se1.protection.inumbo.net>)
 id 1w3FZm-0000qh-GL
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 15:46:22 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c5701268-23aa-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 16:46:20 +0100 (CET)
Received: from pps.filterd (m0279870.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62JFMZML3368471
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 15:46:18 GMT
Received: from mail-vs1-f72.google.com (mail-vs1-f72.google.com
 [209.85.217.72])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d00f9ksdh-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 15:46:17 +0000 (GMT)
Received: by mail-vs1-f72.google.com with SMTP id
 ada2fe7eead31-5ffb295babbso1571118137.1
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 08:46:17 -0700 (PDT)
Received: from localhost ([2a01:4b00:b703:c200:1ac0:4dff:fe39:5426])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-486f8c40ccbsm129162465e9.9.2026.03.19.08.46.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 19 Mar 2026 08:46:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c5701268-23aa-11f1-b164-2bf370ae4941
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=DvNqP241qE8dFBqHq5L6qVz4
	ghSD7knOgVJYfSQ1B58=; b=Yld7gZy2Vwg7aTwn9M0NrrFrVWWy2GG/gLK7dKB6
	3Xxqr/TDd+CZGMnsnJPz/K3Qa/xinQn4bBim6e/SIY2lxHC59LsOg3Ir/Bzop+FN
	nXALqgBdEtgGwTx4hrDwAIgi3E++GbgchA/Tb9JqtNNJE0lGCxQFp70ZN7dnnhpb
	gA2H4CjR3pEBLlK1y3IKFMLVtPdf3IqARQSJUG53twBLZifGbwlK4ijMhGb9hsol
	oPtOLe3EiflHII4K6ErRMacybeKHiy5UDD1BRgXKQBSo5+2t7g6sdf7GTIUnXg7/
	1fuSHqndq50QugXJHsDKcZ6CqP2RsEPQJBrTEF2i7yH6vg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1773935177; x=1774539977; darn=lists.xenproject.org;
        h=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=DvNqP241qE8dFBqHq5L6qVz4ghSD7knOgVJYfSQ1B58=;
        b=CqxQm94IfnlklXJ5PLqXbhFv6S4VJk1UMPsnu1PJaXJGlOfniCzSGqMYn7Hpm53h4H
         kg0bWo4p16Sf4dkPY9OBtT19VbGko6wTi+7Q55vbG3gg8bhMsMyZOzdlPUEwQY6t/v9Q
         NavVZm4UpWjPbYZpOV/bjOT9ttKdgwgNIFdE+4NXP9lohYCDfdOGPo8UMAOiIodqlPky
         qzYE19h6X/y/0xUP/7/tJLgQw3vx7Cp8MjSuUEUGAlVd+GV7TgdHkNE2vhtK1O2a3xQL
         pKYhWtpuSX2E0C2OEx5a1tVJKMNkW7TA5c1gUrCYVJ8Nri4/s/WPxwOi2k/2iox0RP76
         z2NA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773935177; x=1774539977;
        h=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=DvNqP241qE8dFBqHq5L6qVz4ghSD7knOgVJYfSQ1B58=;
        b=qkeIvdYYKnyrrgDaNaDnSPOolRMzIubdUxfor5umRTy5LVqZvWSWUv4JV605qZTmqG
         K03kMnhZ/kMJXOVlyM4uWgqrMEokWgD6lCXjt1I9YT7WQ3prqKrcSYp8f6ddVfBuqmpv
         qAxFMO2HjEcrvhWdW7/MdCG1HglgWXkSA7bO79KzrpV1oeyaqUFgEH6DVsQAzaGnkd/l
         PCzmtrm4XftpEGYy3i+zhJrGwgijAND+KEfRO+bIsURdwheRNxKbupAu9jtdi9XH9Awd
         GkfFro7NqSqgaF+0KT0RTjqnYWNSPQnBE8b0xlQFZL+6q8Dg27/AJFvZ6J3qozOcaoQD
         L3MA==
X-Forwarded-Encrypted: i=1; AJvYcCWvtkzHJmKTUL3/ufnknttA3rqgjR7t7aby0nLIBSEObENRQ0uvW4l7MP05g+hpP0sK1pGN/G/3EMw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyLhVuA8n/nw/bEQCBPvrdz9J7n77sx+H2k7G5Eoc7sys/WCVMB
	+a5HvpiReE/zhKq176XE5wpFyD9PJqbjOFjid0N6mRci/zWLUfaFOLQwbaxEvABq0FozfIc1gwa
	blzOFdl1Nx8lNEOxQQqCBWFVhoBiO1Wwl7mBgC8kt4yDqET8QnDrYh/wvhoM3MM3mfCxECA==
X-Gm-Gg: ATEYQzwNzThoQjJ7a2Xh+TQkWDCYwFKVwdrY0+WCDt3eYllhRWqt/1tkT/mg2SKpFqC
	FP0SU9OiYupj6k6EgBlxgF33PyGhpjc+aY7V4jCcGbCrJiu2KpH1xDz4J3Kh3pIaLO0E1dHuHY/
	1FwJ1ej+fNp9pj9Hb0qyjiDCcIev1K47sz0XAjH616L4KnFYEIT048k6WeABS2Y6iltNI5gfSV4
	hWOB2I2IasEDWOoBwq+8WsFtMeEXKPvH/Zx8OW/Xw1Jh9/ONZEenKMNLUWG/GelndRcVu33S4u2
	lJGu2dWnZ07Oshz0+nN86gmax2POeL12KMUAogbqO51kdAtmMlSEuRtcbLmA3UlXKPQZ2/HkVlN
	egyKIJSDC8ExqoQFORh4RAsLW7XaGpuuHEeT4pw==
X-Received: by 2002:a05:6102:d89:b0:5ff:9d74:967b with SMTP id ada2fe7eead31-6027d330b13mr3043060137.20.1773935177055;
        Thu, 19 Mar 2026 08:46:17 -0700 (PDT)
X-Received: by 2002:a05:6102:d89:b0:5ff:9d74:967b with SMTP id ada2fe7eead31-6027d330b13mr3042963137.20.1773935176396;
        Thu, 19 Mar 2026 08:46:16 -0700 (PDT)
From: Punit Agrawal <punit.agrawal@oss.qualcomm.com>
To: Chengwen Feng <fengchengwen@huawei.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
        Catalin Marinas
 <catalin.marinas@arm.com>,
        Will Deacon <will@kernel.org>,
        "Rafael J .
 Wysocki" <rafael@kernel.org>,
        Jonathan Corbet <corbet@lwn.net>,
        Shuah
 Khan <skhan@linuxfoundation.org>,
        Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>,
        Paul Walmsley <pjw@kernel.org>, Palmer
 Dabbelt <palmer@dabbelt.com>,
        Albert Ou <aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>,
        Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave
 Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
        "H . Peter
 Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky
 <boris.ostrovsky@oracle.com>,
        Len Brown <lenb@kernel.org>, Sunil V L
 <sunilvl@ventanamicro.com>,
        Mark Rutland <mark.rutland@arm.com>,
        Jonathan Cameron <jonathan.cameron@huawei.com>,
        Kees Cook
 <kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>,
        Sean
 Christopherson <seanjc@google.com>,
        Kai Huang <kai.huang@intel.com>,
        Tom
 Lendacky <thomas.lendacky@amd.com>,
        Thomas Huth <thuth@redhat.com>,
        Thorsten Blum <thorsten.blum@linux.dev>,
        Kevin Loughlin
 <kevinloughlin@google.com>,
        Zheyun Shen <szy0127@sjtu.edu.cn>,
        Peter
 Zijlstra <peterz@infradead.org>,
        Pawan Gupta
 <pawan.kumar.gupta@linux.intel.com>,
        Xin Li <xin@zytor.com>, "Ahmed S .
 Darwish" <darwi@linutronix.de>,
        Sohil Mehta <sohil.mehta@intel.com>,
        Ilkka Koskinen <ilkka@os.amperecomputing.com>,
        Robin Murphy
 <robin.murphy@arm.com>,
        James Clark <james.clark@linaro.org>,
        Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>,
        Wei Huang
 <wei.huang2@amd.com>,
        Andy Gospodarek <andrew.gospodarek@broadcom.com>,
        Somnath Kotur <somnath.kotur@broadcom.com>,
        <punit.agrawal@oss.qualcomm.com>, <guohanjun@huawei.com>,
        <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
        <chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
        <wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
        <heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
        <wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
        <liuyonglong@huawei.com>, <linux-pci@vger.kernel.org>,
        <linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
        <linux-arm-kernel@lists.infradead.org>, <loongarch@lists.linux.dev>,
        <linux-riscv@lists.infradead.org>, <xen-devel@lists.xenproject.org>,
        <linux-acpi@vger.kernel.org>, <linux-perf-users@vger.kernel.org>,
        <stable@vger.kernel.org>
Subject: Re: [PATCH v9 1/7] arm64/acpi: Add acpi_get_cpu_uid() and switch
 arm_cspmu to use it
In-Reply-To: <20260319065735.45954-2-fengchengwen@huawei.com> (Chengwen Feng's
	message of "Thu, 19 Mar 2026 14:57:29 +0800")
References: <20260319065735.45954-1-fengchengwen@huawei.com>
	<20260319065735.45954-2-fengchengwen@huawei.com>
User-Agent: Gnus/5.13 (Gnus v5.13)
Date: Thu, 19 Mar 2026 15:46:14 +0000
Message-ID: <87341vq0u1.fsf@stealth>
MIME-Version: 1.0
Content-Type: text/plain
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzE5MDEyNCBTYWx0ZWRfX5S0rkx4BUgfK
 AHPlAxTJ/ZDkEHQ+vo+awAltIHEt0KvCjH6eWm9EPw8YvcziKhq8tOGDyF7C/bcKXJNmKXq2M8l
 l8mjxZ0ocKsbe/7aH8nPiR43XoGDk5Ghr1giwejsPL7bs6pMABfX5KwDFyNAqM4FB39O09XD09u
 SM8EKMLvWXnz4Y2vRBna5UirSohWd0sfpztoQve1WbsIM5rB8syalDZrl21UeCZQmD9XlW/fHKu
 C685jcpVpzihW5zBN5QOzbLKKvZYZvFAjZDFIQ889dggg7YptzfV2JbtWUmsc69EGcMnH8nZIdw
 RbDPjxwHFYgRu+NpO8bZaygZiPjR9ZQ+KmcYVxFlq9CmkyKqf+esguYUPHQ9R3zRzks9zIv14Sa
 2618qqkDPcbKGxJZwNXcKOCXoBksszm70qu8cASbCBXFkkQgtWeLqhZZJYFL8r5oiSwxQxkaMa0
 iTwwn8FgpxpRiveyjCQ==
X-Proofpoint-GUID: ngJoS0GrslX8GBmSgO2-fK44nja0h8ut
X-Proofpoint-ORIG-GUID: ngJoS0GrslX8GBmSgO2-fK44nja0h8ut
X-Authority-Analysis: v=2.4 cv=MJttWcZl c=1 sm=1 tr=0 ts=69bc1a49 cx=c_pps
 a=DUEm7b3gzWu7BqY5nP7+9g==:117 a=xqWC_Br6kY4A:10 a=Yq5XynenixoA:10
 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22
 a=gowsoOTTUOVcmtlkKump:22 a=i0EeH86SAAAA:8 a=VwQbUJbxAAAA:8
 a=Gl9ZV0r3yxOOH3mhj0oA:9 a=-aSRE8QhW-JAV6biHavz:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-19_02,2026-03-19_05,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 clxscore=1011 phishscore=0 spamscore=0 lowpriorityscore=0 priorityscore=1501
 suspectscore=0 bulkscore=0 malwarescore=0 impostorscore=0 adultscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603190124

Chengwen Feng <fengchengwen@huawei.com> writes:

> Add arch-specific acpi_get_cpu_uid() for arm64, and update dependent
> code:
> - Declare acpi_get_cpu_uid() in arch/arm64/include/asm/acpi.h
> - Implement acpi_get_cpu_uid() with input parameter validation
> - Replace get_acpi_id_for_cpu() with acpi_get_cpu_uid() in
>   drivers/perf/arm_cspmu/arm_cspmu.c
> - Reimplement get_cpu_for_acpi_id() based on acpi_get_cpu_uid() (to
>   align with new interface) and move its implementation next to
>   acpi_get_cpu_uid()

There is no benefit in describing the code changes like this in the
commit log. It makes it hard to follow the intent of the patch.

> This is the first step towards unifying ACPI CPU UID retrieval interface
> across architectures, while adding input validation for robustness.

I would simplify the commit log to something along the lines of -

    As a step towards unifying the interface for retrieving ACPI CPU uid
    across architectures, introduce a new function
    acpi_get_cpu_uid(). While at it, also add input validation to make
    the code more robust.

Just my 2c.

The code changes looks fine.

> Cc: stable@vger.kernel.org
> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
> Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
> ---
>  arch/arm64/include/asm/acpi.h      | 14 ++------------
>  arch/arm64/kernel/acpi.c           | 30 ++++++++++++++++++++++++++++++
>  drivers/perf/arm_cspmu/arm_cspmu.c |  6 ++++--
>  3 files changed, 36 insertions(+), 14 deletions(-)
>
> diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
> index c07a58b96329..2219a3301e72 100644
> --- a/arch/arm64/include/asm/acpi.h
> +++ b/arch/arm64/include/asm/acpi.h
> @@ -118,18 +118,8 @@ static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
>  {
>  	return	acpi_cpu_get_madt_gicc(cpu)->uid;
>  }
> -
> -static inline int get_cpu_for_acpi_id(u32 uid)
> -{
> -	int cpu;
> -
> -	for (cpu = 0; cpu < nr_cpu_ids; cpu++)
> -		if (acpi_cpu_get_madt_gicc(cpu) &&
> -		    uid == get_acpi_id_for_cpu(cpu))
> -			return cpu;
> -
> -	return -EINVAL;
> -}
> +int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
> +int get_cpu_for_acpi_id(u32 uid);
>  
>  static inline void arch_fix_phys_package_id(int num, u32 slot) { }
>  void __init acpi_init_cpus(void);
> diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
> index af90128cfed5..24b9d934be54 100644
> --- a/arch/arm64/kernel/acpi.c
> +++ b/arch/arm64/kernel/acpi.c
> @@ -458,3 +458,33 @@ int acpi_unmap_cpu(int cpu)
>  }
>  EXPORT_SYMBOL(acpi_unmap_cpu);
>  #endif /* CONFIG_ACPI_HOTPLUG_CPU */
> +
> +int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
> +{
> +	struct acpi_madt_generic_interrupt *gicc;
> +
> +	if (cpu >= nr_cpu_ids)
> +		return -EINVAL;
> +
> +	gicc = acpi_cpu_get_madt_gicc(cpu);
> +	if (!gicc)
> +		return -ENODEV;
> +
> +	*uid = gicc->uid;
> +	return 0;
> +}
> +EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
> +
> +int get_cpu_for_acpi_id(u32 uid)
> +{
> +	u32 cpu_uid;
> +	int ret;
> +
> +	for (int cpu = 0; cpu < nr_cpu_ids; cpu++) {
> +		ret = acpi_get_cpu_uid(cpu, &cpu_uid);
> +		if (ret == 0 && uid == cpu_uid)
> +			return cpu;
> +	}
> +
> +	return -EINVAL;
> +}
> diff --git a/drivers/perf/arm_cspmu/arm_cspmu.c b/drivers/perf/arm_cspmu/arm_cspmu.c
> index 34430b68f602..ed72c3d1f796 100644
> --- a/drivers/perf/arm_cspmu/arm_cspmu.c
> +++ b/drivers/perf/arm_cspmu/arm_cspmu.c
> @@ -1107,15 +1107,17 @@ static int arm_cspmu_acpi_get_cpus(struct arm_cspmu *cspmu)
>  {
>  	struct acpi_apmt_node *apmt_node;
>  	int affinity_flag;
> +	u32 cpu_uid;
>  	int cpu;
> +	int ret;
>  
>  	apmt_node = arm_cspmu_apmt_node(cspmu->dev);
>  	affinity_flag = apmt_node->flags & ACPI_APMT_FLAGS_AFFINITY;
>  
>  	if (affinity_flag == ACPI_APMT_FLAGS_AFFINITY_PROC) {
>  		for_each_possible_cpu(cpu) {
> -			if (apmt_node->proc_affinity ==
> -			    get_acpi_id_for_cpu(cpu)) {
> +			ret = acpi_get_cpu_uid(cpu, &cpu_uid);
> +			if (ret == 0 && apmt_node->proc_affinity == cpu_uid) {
>  				cpumask_set_cpu(cpu, &cspmu->associated_cpus);
>  				break;
>  			}

I think cspmu changes go via a separate pull request. You might have to
split this change into a separate commit.


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 15:59:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 15:59:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257338.1551746 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3FmY-0002b0-5Q; Thu, 19 Mar 2026 15:59:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257338.1551746; Thu, 19 Mar 2026 15: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 1w3FmY-0002ah-2e; Thu, 19 Mar 2026 15:59:34 +0000
Received: by outflank-mailman (input) for mailman id 1257338;
 Thu, 19 Mar 2026 15:59: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=jySZ=BT=bounce.vates.tech=bounce-md_30504962.69bc1d62.v1-04f61e5286e74ae6bca9f75abf96e8e3@srs-se1.protection.inumbo.net>)
 id 1w3FmX-0002aT-D7
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 15:59:33 +0000
Received: from mail132-30.atl131.mandrillapp.com
 (mail132-30.atl131.mandrillapp.com [198.2.132.30])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9d9085c8-23ac-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 16:59:31 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-30.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fc9PG2n5DzP0Jy4c
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 15:59:30 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 04f61e5286e74ae6bca9f75abf96e8e3; Thu, 19 Mar 2026 15:59:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9d9085c8-23ac-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773935970; x=1774205970;
	bh=e5KJgMLs1E0cNlCiz4ZVgR54vTbVJZ75a927JlIYp9Q=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=S9QoGlOROo7Wnm0DICsrrU4m5wkIKtAS2TfAXQNu8v/jP0lJBQZx3vaFuSDKGtBHm
	 AGFFl5elbvv5SGIXmB7TuATo0c3MS8O2dFJTSgF4Qx/Pif2JWiPfQrbLHxZv2Jaj0I
	 dvFK+6Qk0ctFv9ucSheSBnHrnqt1XQG51LZJzYw8q/xhp4aqcjwNMnyYYvat8bgdc4
	 +gfi+zIE++HK8o9nog2vFxLbIz0ThMROXA9ilwabtLfe/Lxr7BOZ2S+SL47XaNp6ot
	 JLqRwN7DpPaQ4+Ae/o+1WS2fs2c6u8UkPIs0ciIMtQaQHAwsdWpVkn8pT4bMBS53V/
	 U2FkGnNGfpqFA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773935970; x=1774196470; i=anthony.perard@vates.tech;
	bh=e5KJgMLs1E0cNlCiz4ZVgR54vTbVJZ75a927JlIYp9Q=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=gX1CRX7sejK+X6RCdWz4rhGXxIxzOumNSrLNI6fbXQebAzVp+gn+aFcKkmLr2/u65
	 +mlwNJ+nXqp1F06NhGh4dAi6sDpkB+vIGP2zIcBA1e6ukYnZRMBRcqVN75qHMb0xl/
	 IkuBoBH9JOP5VnK58gKXncWt+yBlnsTXJTfw1GmiORFo8vIkvoXqtKRkZmZB+XkAUU
	 cvXX/GFXzUMBvfwQsry1ol8IBniIEZzLRLI3+ZuQwz6q6uuItTlECEjOVdw62dTGNl
	 I+W9PxxY1XG20Ddtxzk0wHLJgUChv7iML6j4NwdL0VWu0drDxRJSo1CvEBr+IuMBli
	 eKuzCo+gfZfGA==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2004/11]=20tools/xenstored:=20add=20GLOBAL=5FQUOTA=5FDATA=20record=20for=20live=20update?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773935969650
To: "=?utf-8?Q?J=C3=BCrgen=20Gro=C3=9F?=" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, "Julien Grall" <julien@xen.org>
Message-Id: <abwdYXd_62UxjjyP@l14>
References: <20260305135208.2208663-1-jgross@suse.com> <20260305135208.2208663-5-jgross@suse.com> <abREpWtSt0eLWo4q@l14> <c065d0bd-2cbd-438f-adda-9e17a8294727@suse.com>
In-Reply-To: <c065d0bd-2cbd-438f-adda-9e17a8294727@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.04f61e5286e74ae6bca9f75abf96e8e3?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260319:md
Date: Thu, 19 Mar 2026 15:59:30 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Mar 16, 2026 at 09:15:47AM +0100, J=C3=BCrgen Gro=C3=9F wrote:
> On 13.03.26 18:08, Anthony PERARD wrote:
> > On Thu, Mar 05, 2026 at 02:52:01PM +0100, Juergen Gross wrote:
> > > diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
> > > index acdcaa769e..694ae58973 100644
> > > --- a/tools/xenstored/domain.c
> > > +++ b/tools/xenstored/domain.c
> > > @@ -1332,6 +1332,27 @@ int do_set_feature(const void *ctx, struct con=
nection *conn,
> > >   =09return 0;
> > >   }
> > > +static bool parse_quota_name(const char *name, unsigned int *qidx,
> > > +=09=09=09     unsigned int *idx)
> > > +{
> > > +=09unsigned int q;
> > 
> > What do you think of using something like:
> >      const char soft_prefix[] =3D "soft-";
> >      const size_t soft_prefix_len =3D sizeof(soft_prefix) - 1;
> > to explain the `5`, here and in e.g. the function build_quota_data() ?
> > We used this in libxl in one place:
> >      https://elixir.bootlin.com/xen/v4.21.0/source/tools/libs/light/lib=
xl_qmp.c#L1288
> > 
> > But it's fine to leave it like that, as the '5's are close enought to
> > the prefix that we can guess easly enough.
> 
> I can change it, but I'd prefer to use macros for that purpose.

Sounds good.

> > > +static unsigned int get_quota_size(struct quota *quota, unsigned int=
 *len)
> > > +{
> > > +=09unsigned int q;
> > > +=09unsigned int n =3D 0;
> > > +
> > > +=09for (q =3D 0; q < ACC_N; q++) {
> > > +=09=09if (!quota_adm[q].name)
> > > +=09=09=09continue;
> > > +=09=09if (quota[q].val[Q_IDX_HARD] !=3D Q_VAL_DISABLED) {
> > > +=09=09=09n++;
> > > +=09=09=09*len +=3D strlen(quota_adm[q].name) + 1;
> > > +=09=09}
> > > +=09=09if (quota[q].val[Q_IDX_SOFT] !=3D Q_VAL_DISABLED) {
> > > +=09=09=09n++;
> > > +=09=09=09*len +=3D strlen(quota_adm[q].name) + 5 + 1;
> > 
> > The value 5 here isn't explained. A comment would be nice.
> 
> Using the macro mentioned above will make it more descriptive.

Thanks.

> > 
> > > +=09=09}
> > > +=09}
> > > +
> > > +=09return n;
> > > +}
> > > +
> > > +static void build_quota_data(struct quota *quota, uint32_t *val, cha=
r *name)
> > 
> > I guess we will need a leap of faith to trust that `val` is big enough,
> > after finding out that it's actually an output of multiple values, and
> > not an input of a single value.
> 
> That's what get_quota_size() is calculating.

Right. I'm probably just looking at function as been independent of the
rest of the program a bit too much.

> > 
> > And `name` seems to also be an output, and this is actually impossible
> > to guess from the prototype.
> 
> True. What about names?

`names` would be better here, indeed.

> > 
> > > +{
> > > +=09unsigned int q;
> > > +=09unsigned int n =3D 0;
> > > +
> > > +=09for (q =3D 0; q < ACC_N; q++) {
> > > +=09=09if (!quota_adm[q].name)
> > > +=09=09=09continue;
> > > +=09=09if (quota[q].val[Q_IDX_HARD] !=3D Q_VAL_DISABLED) {
> > > +=09=09=09val[n++] =3D quota[q].val[Q_IDX_HARD];
> > > +=09=09=09strcpy(name, quota_adm[q].name);
> > > +=09=09=09name +=3D strlen(name) + 1;
> > > +=09=09}
> > > +=09=09if (quota[q].val[Q_IDX_SOFT] !=3D Q_VAL_DISABLED) {
> > > +=09=09=09val[n++] =3D quota[q].val[Q_IDX_SOFT];
> > > +=09=09=09strcpy(name, "soft-");
> > > +=09=09=09strcpy(name + 5, quota_adm[q].name);
> > > +=09=09=09name +=3D strlen(name) + 1;
> > > +=09=09}
> > > +=09}
> > > +}
> > > +
> > > +static void parse_quota_data(const uint32_t *val, const char *name,
> > > +=09=09=09     unsigned int n, struct quota *quota)
> > > +{
> > > +=09unsigned int i, q, idx;
> > > +
> > > +=09for (i =3D 0; i < n; i++) {
> > > +=09=09if (!parse_quota_name(name, &q, &idx))
> > > +=09=09=09quota[q].val[idx] =3D val[i];
> > > +=09=09name +=3D strlen(name) + 1;
> > 
> > So for `val`, we have a size. But, we don't have a size for `name`, are
> > we sure that it's safe to keep reading past `NUL` characters ? Is the
> > size of name available somewhere?
> 
> Yes. get_quota_size() calculated that as well.
> 
> > 
> > > +=09}
> > > +}
> > > +
> > >   static int dump_state_domain(const void *k, void *v, void *arg)
> > >   {
> > >   =09struct domain *domain =3D v;
> > > @@ -2049,6 +2125,53 @@ void read_state_domain(const void *ctx, const =
void *state, unsigned int version)
> > >   =09=09domain->features =3D sd->features;
> > >   }
> > > +const char *dump_state_glb_quota(FILE *fp)
> > > +{
> > > +=09struct xs_state_record_header *head;
> > > +=09struct xs_state_glb_quota *glb;
> > > +=09void *record;
> > > +=09unsigned int n_quota;
> > > +=09unsigned int len =3D sizeof(*glb);
> > > +=09size_t ret;
> > > +
> > > +=09n_quota =3D get_quota_size(quotas, &len);
> > 
> > So, get_quota_size is actually an "add" the size to this variable, and
> > not "store" the size in this variable. That's not confusing at all.
> 
> Would it be better if len is renamed to names_len (both here and the
> parameter of get_quota_size())?

Do you mean adding a new variable `names_len`? And having get_quota_size
set it to 0 before calculating the size?

I would be ok also with adding `sizeof(*glb)` to len after calling
get_quota_size(), but still need to have get_quota_size() start counting
from 0.

> > 
> > > +=09len +=3D n_quota * sizeof(glb->quota_val[0]);
> > > +=09len =3D ROUNDUP(len, 3);
> > > +
> > > +=09record =3D talloc_size(NULL, len + sizeof(*head));
> > > +=09if (!record)
> > > +=09=09return "Dump global quota allocation error";
> > > +
> > > +=09head =3D record;
> > > +=09head->type =3D XS_STATE_TYPE_GLB_QUOTA;
> > > +=09head->length =3D len;
> > > +
> > > +=09glb =3D (struct xs_state_glb_quota *)(head + 1);
> > > +=09glb->n_dom_quota =3D n_quota;
> > > +=09glb->n_glob_quota =3D 0;
> > 
> > Shouldn't `n_quota` be assigned to `n_glob_quota` instead? We don't hav=
e
> > per-domain quota yet, and only have global quota, right?
> 
> We are applying all global quota values to the domains, so this is fine.
> 
> It isn't about where we store the quota (per domain or globally), but
> how the quota values are used.
> 
> It would be possible to have e.g. "total_memory" or "total_nodes" quota
> which would not apply to single domains, but to all of xenstore. Those
> would need to be counted by n_glob_quota.

Right, I think I figured that out only after seen the patch creating a
different record for per-domain quota. (And seen that these two field
were not changed in later patches). But thank for the explanation, and
the possible way that n_glob_quota could be used.

Cheers,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Mar 19 16:04:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 16:04:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257347.1551755 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3FrE-0004fi-Od; Thu, 19 Mar 2026 16:04:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257347.1551755; Thu, 19 Mar 2026 16:04:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3FrE-0004fb-K1; Thu, 19 Mar 2026 16:04:24 +0000
Received: by outflank-mailman (input) for mailman id 1257347;
 Thu, 19 Mar 2026 16:04:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=8LP9=BT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w3FrD-0004fQ-FK
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 16:04:23 +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 43626cc3-23ad-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 17:04:09 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-43b4d734678so1135708f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 09:04:09 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b51892290sm16430695f8f.20.2026.03.19.09.04.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Mar 2026 09:04:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 43626cc3-23ad-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773936249; x=1774541049; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=14in53C+p0nIOi4WbUF/ZylxiyjAvSYMn6YK5z/k+PA=;
        b=GFxCIA/cMWb1vex5JxFOawOc1aFbSHvJNWfvBqVQrWJRObPJzO+5ovnXe7rdrVbc5M
         P5pyrUoJR3/9X7pe8ottY4VZw3bX2z3koi0PHIeA8bMAqrzvPCPEgW7NwYLfppIvxBJF
         KtNpXWeqo9icsdmMdfEYVonTS81FYDVEeUyqfngLNUbOngSK7S4sJIr7F8YF2mqJUVSu
         GdswN1M7kaKYHGYbbtHLACBmECc5upICV0GQPlrcJZdG59hIz/1W7KDFpQNvGCORNpqz
         KmywuqyfpMMcDNUoKYqkpKUFrhRsdjYBATBlb6/rzI2dJBfHLi0oR/akcNLlFdGMtTa+
         5TGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773936249; x=1774541049;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=14in53C+p0nIOi4WbUF/ZylxiyjAvSYMn6YK5z/k+PA=;
        b=Q8yefEZophrJU9WAOoueLBSpoGIlrzYzSB6Rc+pJe4WXaA7fzUidW6Gird9Sgtce8f
         P9qTda4Aw96thwUpx9QhNx71sIuemYshkMYIFiHO6EVY1dlNSBhDvfzQIqL/cR7pt2V4
         8hfvrIf39iAkQSjpPUe2jubMm58NdbM6adgI2YQs6ADxsKuHdiEmq7kkrv9lRvDtYufn
         BEzJfWacCTv3PKI2hTan74D1YoJS6mXl03Fdl+RdjL6PKrW2Rew3VVrgkS40Fl+rwP88
         df+q+rXSoDpPyv3afPRqgwh2sXxqVwt3bhqt/bWfjNdI5mJC3L7nbUG42Yfz+OAxo8yE
         KrjQ==
X-Forwarded-Encrypted: i=1; AJvYcCXyUZ206VUbQRCrH6Mic2Ea0BLHQLB42ECsyYxAPxAMNlywuud4DH896rgznjZ7GCmjcPzkisBDdPM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyLQMswfiUbEbQsUjCmXWmaN8JRb900kpZK5AqGfq9ZLbCujCQt
	fAzIuhzfuKiiZtNz7SWGwICw2uF83w8CU1uFaWwmDATT5OFCfEBnIp82Wf3m5HY5dQ==
X-Gm-Gg: ATEYQzzp+p074A9YsIniRh2EorAvhWngkg4xxV0PrZcyV7I0tSEtO9jTMJQg/3A0Rlu
	DDD9Zvb/efdlWiBMAiB7GlUsY8+T2DJWbZQH6UY3F6t3jfhPGXyRtAfMopUcITPJdpT6PJ6CB13
	15EyLWC0e+sVlel5KzKzR8p/rBpy6VbZO5tB/wUc1bBGBfc5LtzY4X0uUQ+/aC/mkf49PKQ3fwd
	tzk3F+XVLfVqXy8gnMC+xrJJLwKrM1Xl4dqUeBWlNgbpL0EVsdjVl4SCSF1eI10o5hKHHmnzglK
	3lY05z0DF7rSic9z/7OmrPDLUAkYpkFFJHI+JZ/yci1TLclmLBZd6oLzjvEHjLgB56fJsGywEh+
	9dfnq0Z9lhEeMaWR5W+JwzS+DCA6i/y4Sw4gtax4kXonTWNRxYsSVRqG1ztz6G827SPRH8Y+uoe
	Kqw8xCEXUDmessqaKMEpVifMynSVbPfNhCfUiWmd3g7x+eFY1F2UfIDDj9U8JnyaYvH1APaaBxz
	ATtB1BL5ymLpUk=
X-Received: by 2002:a05:6000:420f:b0:43b:45d1:f438 with SMTP id ffacd0b85a97d-43b527a3f0amr13690490f8f.3.1773936248504;
        Thu, 19 Mar 2026 09:04:08 -0700 (PDT)
Message-ID: <3e16b42e-26a4-4d70-95da-8a22ea401146@suse.com>
Date: Thu, 19 Mar 2026 17:04:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen: handle domain_shutdown() return values
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>,
 George Dunlap <gwd@xenproject.org>, xen-devel@lists.xenproject.org
References: <95dacecdce8f8417562548e16a4d3e11c41a3f27.1773923242.git.mykola_kvach@epam.com>
 <48841930-bb2f-48e7-963a-e823fec70442@suse.com>
 <CAGeoDV8abhMCR2+Pr_A-ZcKoLr_S=Rp_5a1mODrK9UPRzH+OSA@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: <CAGeoDV8abhMCR2+Pr_A-ZcKoLr_S=Rp_5a1mODrK9UPRzH+OSA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.03.2026 15:35, Mykola Kvach wrote:
> On Thu, Mar 19, 2026 at 3:44 PM Jan Beulich <jbeulich@suse.com> wrote:
>> On 19.03.2026 13:42, Mykola Kvach wrote:
>>> From: Mykola Kvach <mykola_kvach@epam.com>
>>>
>>> Propagate domain_shutdown() return codes through the shutdown paths
>>> which can still report errors to their callers, and log explicit
>>> failures in fire-and-forget paths instead of silently discarding the
>>> result.
>>>
>>> This makes the shutdown contract explicit for callers which can report
>>> errors, while preserving observable diagnostics for the remaining
>>> fire-and-forget paths.
>>>
>>> It also fixes MISRA Dir 4.7 and Rule 17.7 violations by ensuring that
>>> the returned status is tested or otherwise used.
>>>
>>> Suggested-by: Jan Beulich <jbeulich@suse.com>
>>
>> I don't agree with this. For what you want to do (as per the link below)
>> this is a prereq, but as an independent change I'm not convinced this is
>> needed. Once it is grouped with that other change, it's kind of natural,
>> and hence any Suggested-by: would feel odd.
> 
> I see your point, but I'd still prefer to keep this as a standalone change.
> 
> It is no longer tied to the suspend/resume work, as the changes adding new
> error cases there are gone. What remains is making the existing non-void
> domain_shutdown() contract explicit at its call sites.
> 
> So from my perspective this patch stands on its own for two reasons:
> - it fixes MISRA Dir 4.7 and Rule 17.7 issues by ensuring the returned status
>   is tested or propagated;
> - it avoids leaving latent bugs behind if domain_shutdown() gains additional
>   failure cases in the future, beyond the currently relevant ones.
> 
>>
>> I'm further unconvinced logging is the right course of action in all of
>> the cases. Some may want to be assertions instead?
> 
> That said, I agree the handling likely shouldn't be uniform across all
> callers. I can revisit the fire-and-forget paths and use assertions where
> a non-zero return should be impossible, instead of logging unconditionally.
> 
> If I understand you correctly, then without any additional
> suspend-related error case being introduced, you don't see enough
> value in this as a standalone patch. Is that the right reading?

Not entirely sure. Much would depend on what the description of the change
would say. Addressing Misra concerns, even if just latent ones, is a valid
reason to make such changes, for example.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 16:15:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 16:15:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257358.1551764 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3G1m-0006VL-PX; Thu, 19 Mar 2026 16:15:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257358.1551764; Thu, 19 Mar 2026 16:15: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 1w3G1m-0006VE-M3; Thu, 19 Mar 2026 16:15:18 +0000
Received: by outflank-mailman (input) for mailman id 1257358;
 Thu, 19 Mar 2026 16:15:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=o83W=BT=bounce.vates.tech=bounce-md_30504962.69bc210d.v1-d4c2db22c0c84784b50c1b5ae9d0f180@srs-se1.protection.inumbo.net>)
 id 1w3G1k-0006V8-KU
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 16:15:16 +0000
Received: from mail180-47.suw31.mandrillapp.com
 (mail180-47.suw31.mandrillapp.com [198.2.180.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cd48ccab-23ae-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 17:15:10 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-47.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4fc9lK2szCzPm1WpB
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 16:15:09 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d4c2db22c0c84784b50c1b5ae9d0f180; Thu, 19 Mar 2026 16:15: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: cd48ccab-23ae-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773936909; x=1774206909;
	bh=nErjO3JFNjQF1BONX7ptqPz6dG43+kOcWYlI3A9XHLY=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=caFSg8a93sie5xznOKSoH6LaqGuANCMbu294Xg4QOkSC0eiLeCSmseo3rbAqt4KB/
	 jhgG/bZlFa2GD+9nOwF7ioWA6q7cz4Tp4/w0uBxU6M/yRucpYPB4fezH2/vvOBE2Zq
	 +FV4PT2cQyNytsh99+9ODMWghFNQmojeIiYLGK0fx+2+jcTP0dCop9n+bBGRi4IFav
	 jnf5NbpjinnSvqJYS9dXVRCt1esWmL8mPKy3rr2329DQQgOZ297hDECA/HG0nqa+pr
	 /nH2IZRieadDrnJMiSYh5N3dXbL7iUaO9izs4ArswqAD4W8ZwPVpi/nKIuMmmA2+fH
	 diIzdzji+HyDQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773936909; x=1774197409; i=anthony.perard@vates.tech;
	bh=nErjO3JFNjQF1BONX7ptqPz6dG43+kOcWYlI3A9XHLY=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=azBQYrFYDdyxywMgFUvJdjgk0WVWqRfzp5p+kt740xB2bGGW6hnQ2Xny2caNwVXod
	 joYJDKF3NcPUM6vz7W3V78vqiPdnI5O8xP8QXeHgdT55HoRvKBhMOql8XRQWCNpVNd
	 YgOuft7P7Tt+ggiCa30JirsmwAMj/7QuNUm50e6JsLtp1YIxJtIKv8hcJGoteTT2gR
	 Frh08s9NOv0LJatQxkeMMgIf4p8wesZ6H/Jr3XuK2N8C6w2hPexR5kBwBmdkgexsVI
	 XGCW1Vi9eZJUvpycy+15XuIAq7+9trRrnnc1oT4LlwrhO4CY48+VKV7TFF++zK/Jey
	 DINjc2vgL+bwg==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2004/11]=20tools/xenstored:=20add=20GLOBAL=5FQUOTA=5FDATA=20record=20for=20live=20update?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773936908843
To: "Juergen Gross" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, "Julien Grall" <julien@xen.org>
Message-Id: <abwhDCOT487Z4D8A@l14>
References: <20260305135208.2208663-1-jgross@suse.com> <20260305135208.2208663-5-jgross@suse.com> <abREpWtSt0eLWo4q@l14> <c065d0bd-2cbd-438f-adda-9e17a8294727@suse.com> <52da8abd-a9d0-4a7d-8213-93a94b489fc6@suse.com>
In-Reply-To: <52da8abd-a9d0-4a7d-8213-93a94b489fc6@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.d4c2db22c0c84784b50c1b5ae9d0f180?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260319:md
Date: Thu, 19 Mar 2026 16:15:09 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Wed, Mar 18, 2026 at 01:16:30PM +0100, Juergen Gross wrote:
> On 16.03.26 09:15, J=C3=BCrgen Gro=C3=9F wrote:
> > On 13.03.26 18:08, Anthony PERARD wrote:
> > > On Thu, Mar 05, 2026 at 02:52:01PM +0100, Juergen Gross wrote:
> > > > +static void build_quota_data(struct quota *quota, uint32_t *val, c=
har *name)
> > > 
> > > I guess we will need a leap of faith to trust that `val` is big enoug=
h,
> > > after finding out that it's actually an output of multiple values, an=
d
> > > not an input of a single value.
> > 
> > That's what get_quota_size() is calculating.
> > 
> > > 
> > > And `name` seems to also be an output, and this is actually impossibl=
e
> > > to guess from the prototype.
> > 
> > True. What about names?
> 
> I have chosen names_buf instead, making it more clear that this is an
> output parameter for multiple names.

Sounds good.

> > > > +const char *dump_state_glb_quota(FILE *fp)
> > > > +{
> > > > +=C2=A0=C2=A0=C2=A0 struct xs_state_record_header *head;
> > > > +=C2=A0=C2=A0=C2=A0 struct xs_state_glb_quota *glb;
> > > > +=C2=A0=C2=A0=C2=A0 void *record;
> > > > +=C2=A0=C2=A0=C2=A0 unsigned int n_quota;
> > > > +=C2=A0=C2=A0=C2=A0 unsigned int len =3D sizeof(*glb);
> > > > +=C2=A0=C2=A0=C2=A0 size_t ret;
> > > > +
> > > > +=C2=A0=C2=A0=C2=A0 n_quota =3D get_quota_size(quotas, &len);
> > > 
> > > So, get_quota_size is actually an "add" the size to this variable, an=
d
> > > not "store" the size in this variable. That's not confusing at all.
> > 
> > Would it be better if len is renamed to names_len (both here and the
> > parameter of get_quota_size())?
> 
> In the end I have chosen to add a comment above get_quota_size() and
> rename "len" to "rec_len" in dump_state_glb_quota().

It would still be counter-intuitive if get_quota_size() returns different
values depending on the initial value of the second parameter. A comment
won't help. So I would still propose to add "sizeof(*glb)" to `len` or
`rec_len` after calling get_quota_size.

Cheers,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Mar 19 16:18:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 16:18:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257366.1551773 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3G4V-00079N-5U; Thu, 19 Mar 2026 16:18:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257366.1551773; Thu, 19 Mar 2026 16:18:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3G4V-00079G-2W; Thu, 19 Mar 2026 16:18:07 +0000
Received: by outflank-mailman (input) for mailman id 1257366;
 Thu, 19 Mar 2026 16:18: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=n+rE=BT=bounce.vates.tech=bounce-md_30504962.69bc21b9.v1-0b87f5854ab040218873617115d9bbae@srs-se1.protection.inumbo.net>)
 id 1w3G4T-000793-8K
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 16:18:05 +0000
Received: from mail180-47.suw31.mandrillapp.com
 (mail180-47.suw31.mandrillapp.com [198.2.180.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 33d6b1ec-23af-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 17:18:02 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-47.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4fc9pd3jLkzPm2yq6
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 16:18:01 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 0b87f5854ab040218873617115d9bbae; Thu, 19 Mar 2026 16:18: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: 33d6b1ec-23af-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773937081; x=1774207081;
	bh=wzUqvCnsIqLXiPsWyNYRg9g86MGyPS804TPa6RYOzMA=;
	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=DPFvBrj7JgWAYFaVr2E7JYOy8GWqRz6LbwTLn5b84FIjyj8+I65uA8KKzrzUg/DtO
	 lZ/4eFLcaEQuTiJOAPPlZbCGvwlAHzsUQlWoXFIWzII9ir759jq2XUfpvwbrzYwzPN
	 KoTuu0xqeWNncppw/RWcSKIF7CvwcIg+D1SV/ukWh202BEpgjxTtU51tMzAnFmkbCV
	 MDcER41h/BF1h1/sJgDEfLxL4kvZHdPs14OsNMU0smKjAcpm245+mVgTsRAyByqbyb
	 5TOBPa7hAKtCZVpomxLyQ2j4rJTARX5dlShr8FYro3nnRzjLyCrY/pqzXeW368QJxH
	 F/KSftoLT0bag==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773937081; x=1774197581; i=thierry.escande@vates.tech;
	bh=wzUqvCnsIqLXiPsWyNYRg9g86MGyPS804TPa6RYOzMA=;
	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=OUF2AHaAmF1LcPjX6QxZNE67HtjtcMgkbhaH5i/s1gn2rjGMhCphiSzDqqLwUDvn+
	 TAlFLMD67ON1CeRsIpAYZQqmg5Vf+ruZsIi3MRt79Rjk1CDvfECBZfPWGmv0rI1McI
	 O+X/XCSrCsYowTFY8Kd35GTjDyWKd1M5Ce1lcoZg7zVx/0l9bFJ7aPbKeIG9oQhZzc
	 MT9Da8xmJrdGGOQ+a81O7iP8yVWTxxTLy/v9r3X1tCXwTEaPNtMW4geB2fJeEhUDO0
	 AbBLekDLtXTf8LojUrOxKTqOv5F8dtgNbUVPwhScEiyRCzOLNYkKinj1zJeikMcbkf
	 gPekhcDaZWXzQ==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20install.sh:=20Preserve=20directory=20symlinks?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773937078651
Message-Id: <d7023a03-778b-411f-a542-e7a63ac6f48c@vates.tech>
To: "Jason Andryuk" <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: "Anthony PERARD" <anthony.perard@vates.tech>
References: <20260313172456.871518-1-thierry.escande@vates.tech> <56e0c738-76cc-4883-afc9-1d76d211ee0e@amd.com>
In-Reply-To: <56e0c738-76cc-4883-afc9-1d76d211ee0e@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.0b87f5854ab040218873617115d9bbae?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260319:md
Date: Thu, 19 Mar 2026 16:18:01 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi,

On 3/16/26 16:37, Jason Andryuk wrote:
> On 2026-03-13 13:25, Thierry Escande wrote:
>> In various distros (i.e. Debian) some folders like /lib or /var/run are
>> symlinks. Using the tar option --keep-directory-symlink preserves these
>> symlinks.
>>
>> Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
> 
> Coincidentally, I hit this last week.=C2=A0 I think the commit message sh=
ould
> be expanded because it resulted in a non-functioning system.=C2=A0 I swit=
ched
> to make debball, but thanks for fixing this.
> 
> I saw Ubuntu's /lib -> /usr/lib symlink replaced with a directory for /
> lib/systemd/system/xen-watchdog-sleep.sh.=C2=A0 With /lib broken, systemd=
 (/
> sbin/init) could not start and boot fails.
> 
> The fix was easy -=C2=A0 just restoring the /lib symlink.
> 
> So maybe add "Replacing the /lib symlink with a directory results in a
> non-functioning system."?
> 
> I thought /var/run was addressed by:
> Fixes: 9d628ff6cc21 ("tools: Fix install.sh for systemd")
> It hasn't been an issue for me since that change.

I thought it was still the case but my current config does not install
files in /var/run anymore, so I missed that fix. Thanks for pointing
this out.

> 
> For /lib a fixes is either:
> Fixes: e54a6cd6a1f3 ("systemd: Add hooks to stop/start xen-watchdog on
> suspend/resume")
> 
> or
> 
> Fixes: b34bde262c8c ("systemd: fall back to default system-sleep dir
> without systemd-devel")
> 
> It might have only been the second one that defaulted to /lib causing
> the problem.=C2=A0 Though the issue is more general.
> 
> I do think a fixes and backport are warranted.=C2=A0 With the commit mess=
age
> updated:

After discussing with Jan, I will send a v2 that uses the more standard
option -h instead of --keep-directory-symlink and updates the commit
message.

Regards,



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Mar 19 16:23:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 16:23:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257376.1551782 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3G9V-0000E0-NW; Thu, 19 Mar 2026 16:23:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257376.1551782; Thu, 19 Mar 2026 16:23:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3G9V-0000Do-Km; Thu, 19 Mar 2026 16:23:17 +0000
Received: by outflank-mailman (input) for mailman id 1257376;
 Thu, 19 Mar 2026 16:23:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mAdu=BT=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w3G9T-0000Di-Ij
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 16:23:15 +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 eac837ed-23af-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 17:23:10 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ2PR03MB7167.namprd03.prod.outlook.com (2603:10b6:a03:4f5::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.20; Thu, 19 Mar
 2026 16:23:00 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9723.019; Thu, 19 Mar 2026
 16:23: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: eac837ed-23af-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KQmpDmaxlYIVg+BlrhTUykwnD/I3MFGR5fghj1MTIV8Xb5BXgoLysRvLFVCSZjG75tuTUqJkFh5rPtLPzaCjpQ7Yr9LGEHEdyd3w9JpvCtTuXUHZlgh/I4JwZDjMTyu6BTBeo8K1NP62mHjw7T/VCkD4X3DxGBOUa2pu4RJbjI6iaOfI2ppF/8gseHfSmqZbBp/kGB3QmLDBgGKySiVfT3N9uKZCFL6sM9Sld9MKNBbIjLCzHuSPA/1Ie6ZsO61w5lrdEewZzmRdR+laIQTdvxyZCoumeX7SQro5k7x8t0/tDXJC70JOCtckjzAUvwyLBV8QqmBT+VONdH6IN3R8Cw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0ewCac4RB+z4tj4Pq7tSCM3EqezQxecL7xe5ZdDJw9E=;
 b=NIQpoTIFLKL2WIKM85qRkqqRc7kCGXqZTG0rGVzRUFmnWR23QW9jI4VXng7mE17uz4mG0blYp9zKQ5SGSu+lpMBsU7XHPzRyOSRhOo+/oeYpUq9Rw/tyhBxzY/fmK/kFsh1ya8u1rg5vf4pMPSmrCkRoe0nIStSp4Rds5wTf7/r1cR9LBeosUDRXfyuLk6I64SMETKww6J4iJaPZK8fh/BSNXcVdFWCrWsQ4MDEjQqtfF7PKqSrZIU60hyqPRk4mKsENV0c/iG3d3VwEJMBpiONqSt8hJ/iaC4JOfbYaoranWgawiOCo+ETDsrC3qDUt+IqR06zw5zhuzPQYmPCwuA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0ewCac4RB+z4tj4Pq7tSCM3EqezQxecL7xe5ZdDJw9E=;
 b=cNM6Xu1op+L6M3wvGEqWtCS3XcT9Xi/e/sfgZIjuvUuooUpywzXuuqo7f0ZFeBBib7OT7zYNp/XX6eq9Cqqz48FSphGWoDXB2uAnV1rwT8lR+uCb+BdBTQr4kyPXGTXNyqegH1qGf0GbDCUzNXmkEUB0H1KBpjiVZMqng576o5k=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <097d504f-2013-4d3b-9936-a97ca4437294@citrix.com>
Date: Thu, 19 Mar 2026 16:22:58 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH v1 1/8] x86: Always use eager-fpu
To: Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
 <20260319132924.1469809-2-ross.lagerwall@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260319132924.1469809-2-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0299.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:196::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_|SJ2PR03MB7167:EE_
X-MS-Office365-Filtering-Correlation-Id: 68334f1e-e606-499a-80b4-08de85d3cba7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	b+7wLT1muVbLW2VA7nWl9lbIPv0/yxF5tZTFK3uvzHPjkhswY72P7r3I2A+Ybe9rhYfm6Sm+PvPqP1nlXzt3cxCuvG1BCGK/j9NhrF4pIoBn4bdwd2HD40KE06bdt8cKj71rLpJjWuPp6+efFpr2D679LRGZzIudoOMNaiC92HzkXSSBsOxOq5EgwIIMidWaUV2UdQiJsmW1hA9irPOUSOawXosvEQjHDzqTU01/uVcXQ8KnK1qCRTlq7n8EbFk+zvAjahLL0WdzjUMV0fxsFNq0Ys1Vmiwe5/8L42fobt5ciojI21vimJkM/FfyifeeF2rBpNGlU3L3c+L3vBPeJLFhtqVifKONJjZHWn710dLHdFwa2BXwTkXYGVBZLAkdM98ct042j9A6+0lqbhKbHs2wOnVeZTei/RNo3UBzsG4Ki8dYFDojoGg0hgXjF1p0vEG/QW8PbCYeD97JVXkVE38OLZ4aOP4HEjeC1DNDqqGE/T6SX35RnJYBf6CGKXwBTUJJAMyFUqVijsNHptLt2VGkZXm+xoDRTj5XoD7uiAi30q2ne0cxTiwOSYKCUk6nwBbcEmC07T732zoSVuDv5WjorbfVw8j/G1x8MRaE8SztdYjLGy/DBz3k9FqYOvP1TDqvpRzuUrKWTQ4Gr/po37nyKc7VC9bM1WdUcK27mwfzOFAuUeDEK45Ao8NmDU/1qKg498PU7sEigJK4KRrsTfAtXP1ZF+9teSA6ctc72Zk=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WmpBd2t1UU1vSVMrQzhLUHAzeHdSZVorRXFKS2w4K29wTDNHb2NGRDk5Tkdp?=
 =?utf-8?B?aWV2K2hEUUJtTDl0ZzltNzcyQlR0eUNxeEhsUG9Oc01pQ2g5eWJXNGtnREtD?=
 =?utf-8?B?clZpc2lucW1nRlJaWDJFSlFnaGgyVnV5LzZJcS9zVG5xVm9vL2NyTXRsSytN?=
 =?utf-8?B?aWsyUXQvcXJRcGRBM1A3b0R2S2xLMW50bkw2MzBQSVVWSnNGRzFPU1pjMkNM?=
 =?utf-8?B?Nzlxam4xUkNSVkhuSm45TW9kaGZneUhtbDJVVjU4cEczcUxIWmNWZDRidkY4?=
 =?utf-8?B?c0FCc3FxdXI5UHBSWEg4dC9wZEo0WEtINUJjTVRuNnhnTDNydjdaNTZ6UmNE?=
 =?utf-8?B?eUNybE14bHVRM0lhWjlTM093elZNRUdlMFc2Qm1XQklSN3JuT2E2UXpkOThn?=
 =?utf-8?B?c1FQSVpNRHVVSGl4RGo4N0ZmRmU0TEpLTWtsSWNyQlgvczJxaFlvR2EzRDBj?=
 =?utf-8?B?NFV1L25IZS9CVXc5ZHo1eGc5U0dSK1M4SHlNZWkwQjFabFBJZHFDOG5oQ2ZJ?=
 =?utf-8?B?UzhtSDBLcXJycGEzTjFHQzExaGpkREIwTEdjSTd1eWYrRWdudXQ3OTRiZHpC?=
 =?utf-8?B?V1FHOFl1b0I1V3VkVnhKYitIUkFmMTd6RXg1VmxxQjhSbTRwWGFvdFpIYmM2?=
 =?utf-8?B?eTdKcjczU3BGUWN3bW9LcXFIQXAvZWt5U1c5WTJyQ05NZVJseXFzaUd1RklE?=
 =?utf-8?B?Q0dsVmJvUWVaS1o1N0d2bCt5QUpweXZPT1c5NXJwZjdqMXRvMWxLLzJqOXpT?=
 =?utf-8?B?b21qU3hhNnpXbG9yNWpXZXhwWUZIK1lLbVBVaGUyQTdnL2Vkd1dTbEdydEg4?=
 =?utf-8?B?dGFPdjF0VnYrYlJYYkJPWU9lRDlDejdkRk5abW9Gak5ic2JIcnNSbEJBTTUx?=
 =?utf-8?B?YnkxTy90QTh2dGRCby9YYjJ6YU9obUx2RzJ3ME9pN2wyU3RDQjB4WU1PbGJ2?=
 =?utf-8?B?MkwycUlQazFtei90NUl1dU1pdmxoelRvL1RVa1Vvb1ROeHNRM1dCT0dmVEN6?=
 =?utf-8?B?c2RxQ1V6a0pqSkNHdGxHU21qcC9SY0dSNXdXOUIxa3l5dlJHYTJWSHN2MEJh?=
 =?utf-8?B?eXhPa3dYbVVIb0JLckxPMVU5VEhBcllyWDduM09ZVUh0N2htUTRpZlJlQ05t?=
 =?utf-8?B?b2FzamFaY3lBY3N4MVhEbUgxNjJyeDVxS1l4OHJmSlJ4eVNtNlVRWWt5UE96?=
 =?utf-8?B?WlUwVVdsNi9wRzZLdXQyZDlia2lCTjdDSyt5UW1va2JYMUNFT1didElzTmNF?=
 =?utf-8?B?aGZuTEVraUlpQmdLdUJDSkNqL2k4dWdkSy9rcTBkVW1jSDZRQkxDQXd1SjhJ?=
 =?utf-8?B?cXJNU3FhaVZmWGQvcHhDanhkOXE4c05LeEYzVXR4b3ZYR2JOWWNYTWh3SDBK?=
 =?utf-8?B?dFBtbW00ZjBIUmk1TlhqTVY1QklVSmNUcU14TkVUTStmWnhhNGM3WlR5ZFc1?=
 =?utf-8?B?R0szRnlOZmE5aWRSRFMvTHRaQnBZRWxKNTQ3M3pwSE4zWDdkOExvc1VoSC9E?=
 =?utf-8?B?UzhrMDhLMXRnR1dSdUN1dUQvQTh3QXRiR2lDelRjbzJ3SmVyckpUbzRQSm9W?=
 =?utf-8?B?MW5jZUNVbHN4SnhIdDRMcXZFSlEzVU4xRzRNNURCUlBCV1JBV0FRQ2tnZnBT?=
 =?utf-8?B?V2lKaStqMndTalliTFpsVWhGT1pRVEF6L1JiZ015YlptMHhvbHh1TjZNejZx?=
 =?utf-8?B?bEZCWDkzTy9uSTRvSVdPMmNxWStxUEdSRjc1Q0kyOVBQb1pja09Vdi90cUpw?=
 =?utf-8?B?MVcyN0sxY2Y5REY5ZjNuTjZuYmIyR3h6MVNjUDhqUDhxeU54OGp1bmRrTGJT?=
 =?utf-8?B?Y2l1SzQ0dVhaR216Q0tRbkJnRlVzZnBvN3VoY0psRUNmRUtMVkdhcG9VUXF3?=
 =?utf-8?B?bldlay9mTHhtREFUemJxVWlWU1JCZEpBR2lVRWUvbFNDanl4clAzaDgyN1dS?=
 =?utf-8?B?VXJBSW51ejNyVDdQenEvZDhCdzgyNytrQVRvWU5MZXFxNlJEbkE4YXRkRjd1?=
 =?utf-8?B?aGNBaWtkQ1IxdG5MaXErU002MzQvcDBoNTExeFlvYUZLT0UvUllJZml2VWRP?=
 =?utf-8?B?Q3lVRUxabzdUVDJGYmllR1EweXh1UERRb1JZR3hZaGNnNS9Oa25raVlRZFgw?=
 =?utf-8?B?Nlp5UHE5MzNCVllBaFQ2N0crMmMxc1lxNHArbmw4Q3I3U3ZNVk55SkFuVllF?=
 =?utf-8?B?ajhWaUJTVHd4SjBFTEhMWmdUY1VGTzJURzZaV1RHOGdvd2FXb3BlUnRnb2po?=
 =?utf-8?B?cTBBRzU1eHRPaFF2bEl4d0FHUlRGNElpU0ptSFVsRXlnRE5id1NpK2hzRGVy?=
 =?utf-8?B?TklIZXByZTd1Rm0zRklOOURkSVJMUkN1WDMwd3kwTUoyWCtpbXA0Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 68334f1e-e606-499a-80b4-08de85d3cba7
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 16:23:03.5656
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: kbJ3QCQvcucOBOpFk237eMIDPI7qx6kBc9aL7A4qRveAasFlTkgut1lmYeM1R36JeVimqWsLUYHxQak9vFwcHtOE58Mjk4LpekHGcd17w8Y=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR03MB7167

On 19/03/2026 1:29 pm, Ross Lagerwall wrote:
> Lazy FPU avoids some work during a context switch but pushes the costs
> elsewhere:

I'd phrase this as "more expensive costs elsewhere".

We're trading off a slightly-longer XRSTOR now, for

1) in PV guests, an #NM exception
2) in HVM guests, an #NM exception and VMExit

and the longer XRSTOR.

Lazy is only a win even in theory if the sum of time handing #NM is less
than sum of time doing the longer XRSTOR, and with ...

> * For a workload running some Windows VMs, I measured about 83% of
>   context switches out had used the FPU so most of the time the FPU
>   save/restore is not avoided, just delayed.

... this "No, 83% of the time", falls firmly into "no not a win" category.

> * Setting/clearing the cr0.TS bit is serializing and reportedly slower
>   than the processor optimized xsave/restore.
> * Linux uses PKRU so a partial xsave/restore is performed on each
>   context switch anyway, followed by a second xsave/restore at some
>   point during execution.

"This interferes with the 'modified' optimisation that hardware uses to
try and reduce the cost of the following XSAVE".

>
> There is no measurable performance benefit for using lazy FPU and it
> adds unwanted complexity so remove the option and always use eager-fpu.
>
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>

I think we want one other bullet point.

A key difference between 32bit and 64bit OSes is that %xmm is in the
base featureset for 64bit an thus get ubiquitous use in userspace.  This
is likely why we hit 83%.

Otherwise, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

> diff --git a/docs/misc/hypfs-paths.pandoc b/docs/misc/hypfs-paths.pandoc
> index e86f7d0dbef9..1553cb0bcb7f 100644
> --- a/docs/misc/hypfs-paths.pandoc
> +++ b/docs/misc/hypfs-paths.pandoc
> @@ -108,12 +108,10 @@ A populated Xen hypervisor file system might look like the following example:
>              active-hvm/      directory for mitigations active in hvm doamins
>                  msr-spec-ctrl "No" or "Yes"
>                  rsb          "No" or "Yes"
> -                eager-fpu    "No" or "Yes"
>                  md-clear     "No" or "Yes"
>              active-pv/       directory for mitigations active in pv doamins
>                  msr-spec-ctrl "No" or "Yes"
>                  rsb          "No" or "Yes"
> -                eager-fpu    "No" or "Yes"
>                  md-clear     "No" or "Yes"
>                  xpti         "No" or list of "dom0", "domU", "PCID-on"
>                  l1tf-shadow  "No" or list of "dom0", "domU"

Juergen, do we want to nuke this whole paragraph?  I recall that we
never took the patch wiring up the speculation controls.

If so, it will be better to split this into a separate patch, rather
than to wonder why we've got a hypfs docs change with no associated code
change.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 16:31:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 16:31:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257386.1551790 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3GHp-00021L-Ga; Thu, 19 Mar 2026 16:31:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257386.1551790; Thu, 19 Mar 2026 16: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 1w3GHp-00021E-Dr; Thu, 19 Mar 2026 16:31:53 +0000
Received: by outflank-mailman (input) for mailman id 1257386;
 Thu, 19 Mar 2026 16:31: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=2tj/=BT=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w3GHo-000214-IN
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 16:31:52 +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 2159bce5-23b1-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 17:31:50 +0100 (CET)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-5a27b5ad832so900982e87.2
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 09:31:50 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-5a28530ce0dsm3330e87.81.2026.03.19.09.31.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Mar 2026 09:31:48 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2159bce5-23b1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773937909; x=1774542709; 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=Cci/SwtbewLa+N9buB27xiV3OUQzhGvG/XW3+0wDJao=;
        b=bnuqSoQi5bj81nD9dZzm/isqUzNv5GxV7qgNdTx6B+qtoGGBqsQIIT/bkPUz0KlUqI
         r3cgSutRgae9fu8M7d3ae+YarlSr1nB1WVePWOcRDtWqabP6RhFNa0HViaenVthYe4m6
         jGT4KbNPxu9Eo4QjfrU5816u+PGYcOnL5kljkcv6v01QxV7fYDwkVkPpHNq/Ssqx17M6
         1sM2IdG9cogVSH4rIWzTtLa8szEZWg9T0sTSPeKY76xA+wOHWYyAyX4KWD3TVlCmZyLn
         RaH97IL1mbVKo/RMv0kgC3R7ojLv3DdYXq3kdn9Nj4eCL1oE6bbriXevlMlOVDAvgRX2
         Zzmg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773937909; x=1774542709;
        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=Cci/SwtbewLa+N9buB27xiV3OUQzhGvG/XW3+0wDJao=;
        b=ruqZY3ElYUifeoLNK7dNItHFod7/NJ66efnx8wn57/JYiL1Dg389LVCFxDpI9bhXDo
         k+WsnDodwvmkdx/49fm3Y601H3wd4T0sLe949mYS4+wt9m5aOIl6IhZkmvaR3YvxcyxX
         4gUV0ajDnZF5nPN+q846GILzWDGE4PUQf/tLNZDIw0qhe7O7m4UV7Ukies7QHn6k4INB
         uZjw2ASZ6m8atV2TDoOyR7R27RCXn/+04r6WBqolpROm9o5VAIeVymV03vIcjYegbWZV
         SJ3xvrYE9BxtEofJilWex108HJKUpEiIe8TBoH7nAeRh6Twe4HwhBtso4oUVQ8QncQO+
         mXvg==
X-Gm-Message-State: AOJu0YyAXme+70Z5dwk2q2wtHN9QTYGlbRJgVbJCDUG4CePZySXBl0s7
	nNIykOWsARfz/iCIzPJLnUJAo48lJ7sSLFfpGbKbI6mluY69ZMfWmfJqpZxmU2jgQaZQcKm45DV
	3eq+NW/w=
X-Gm-Gg: ATEYQzw/q/QhwkzwL2OZ3HsuaMUew7up6+We5+9Nqu5l9xxVRf0nmTI0O0O5mpJP/bf
	vTzmMEBy1H6zytPU/GhEp34OXeq39eMcv70RFXEdbmbJJyvmvwL8U4Icnd442K8jOFy64qTroCb
	0l1NuyIV1fVhIX275+FS+tCt94d+4Mb2jRYeDZtpO4FQXLicbOtuUttZHDj0ZrVGArWrPrsNZWt
	1+FPurFy8+abCUNWfo3NUP10yirDZBihFUVXt0gWu2KC6Nzhqms6PLJpPAHWepuASHZlUmd2pvC
	Zqoy0KMCXCxU+mzipxl37+ev5YIRj9H+WjJS3pcgUhxzYnt97Oba8oH21bm2hAbsUwwxjgMx0XJ
	RQvKk8GEYb+aJYzw2N8yJ4c5JWJ7MDZCWRbSKfCE4P2YXEcxkcKqRJp0HX9EPNvr0RVR4CCeisi
	txdlKCLuzGdD0lMf4SLy6IJIUPlSCOZqfIm77+SCu004ugW2nCOhzAD9b4vtoAFzoBYINFs9qPL
	iUHGfRMxNem7G4V0mZjIsqGbi7QRgwhFkLIL+DVNP4lRMEN5jcSrA==
X-Received: by 2002:a05:6512:108c:b0:5a1:3fff:5e91 with SMTP id 2adb3069b0e04-5a2796b44cdmr2872307e87.20.1773937909224;
        Thu, 19 Mar 2026 09:31:49 -0700 (PDT)
Message-ID: <5d9cb2c8-c124-4ab2-9587-f839722435b4@suse.com>
Date: Thu, 19 Mar 2026 17:31:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 04/11] tools/xenstored: add GLOBAL_QUOTA_DATA record for
 live update
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-5-jgross@suse.com> <abREpWtSt0eLWo4q@l14>
 <c065d0bd-2cbd-438f-adda-9e17a8294727@suse.com>
 <52da8abd-a9d0-4a7d-8213-93a94b489fc6@suse.com> <abwhDCOT487Z4D8A@l14>
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: <abwhDCOT487Z4D8A@l14>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------oaIGU3wO5XXfMlY3XArHydRH"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------oaIGU3wO5XXfMlY3XArHydRH
Content-Type: multipart/mixed; boundary="------------FPVLejSYf8v0JdUw3lOXQq8b";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>
Message-ID: <5d9cb2c8-c124-4ab2-9587-f839722435b4@suse.com>
Subject: Re: [PATCH 04/11] tools/xenstored: add GLOBAL_QUOTA_DATA record for
 live update
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-5-jgross@suse.com> <abREpWtSt0eLWo4q@l14>
 <c065d0bd-2cbd-438f-adda-9e17a8294727@suse.com>
 <52da8abd-a9d0-4a7d-8213-93a94b489fc6@suse.com> <abwhDCOT487Z4D8A@l14>
In-Reply-To: <abwhDCOT487Z4D8A@l14>

--------------FPVLejSYf8v0JdUw3lOXQq8b
Content-Type: multipart/mixed; boundary="------------jUc9UV2TcwmQsVH4jmTerSez"

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

T24gMTkuMDMuMjYgMTc6MTUsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBPbiBXZWQsIE1h
ciAxOCwgMjAyNiBhdCAwMToxNjozMFBNICswMTAwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
Pj4gT24gMTYuMDMuMjYgMDk6MTUsIErDvHJnZW4gR3Jvw58gd3JvdGU6DQo+Pj4gT24gMTMu
MDMuMjYgMTg6MDgsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPj4+PiBPbiBUaHUsIE1hciAw
NSwgMjAyNiBhdCAwMjo1MjowMVBNICswMTAwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4+
Pj4gK3N0YXRpYyB2b2lkIGJ1aWxkX3F1b3RhX2RhdGEoc3RydWN0IHF1b3RhICpxdW90YSwg
dWludDMyX3QgKnZhbCwgY2hhciAqbmFtZSkNCj4+Pj4NCj4+Pj4gSSBndWVzcyB3ZSB3aWxs
IG5lZWQgYSBsZWFwIG9mIGZhaXRoIHRvIHRydXN0IHRoYXQgYHZhbGAgaXMgYmlnIGVub3Vn
aCwNCj4+Pj4gYWZ0ZXIgZmluZGluZyBvdXQgdGhhdCBpdCdzIGFjdHVhbGx5IGFuIG91dHB1
dCBvZiBtdWx0aXBsZSB2YWx1ZXMsIGFuZA0KPj4+PiBub3QgYW4gaW5wdXQgb2YgYSBzaW5n
bGUgdmFsdWUuDQo+Pj4NCj4+PiBUaGF0J3Mgd2hhdCBnZXRfcXVvdGFfc2l6ZSgpIGlzIGNh
bGN1bGF0aW5nLg0KPj4+DQo+Pj4+DQo+Pj4+IEFuZCBgbmFtZWAgc2VlbXMgdG8gYWxzbyBi
ZSBhbiBvdXRwdXQsIGFuZCB0aGlzIGlzIGFjdHVhbGx5IGltcG9zc2libGUNCj4+Pj4gdG8g
Z3Vlc3MgZnJvbSB0aGUgcHJvdG90eXBlLg0KPj4+DQo+Pj4gVHJ1ZS4gV2hhdCBhYm91dCBu
YW1lcz8NCj4+DQo+PiBJIGhhdmUgY2hvc2VuIG5hbWVzX2J1ZiBpbnN0ZWFkLCBtYWtpbmcg
aXQgbW9yZSBjbGVhciB0aGF0IHRoaXMgaXMgYW4NCj4+IG91dHB1dCBwYXJhbWV0ZXIgZm9y
IG11bHRpcGxlIG5hbWVzLg0KPiANCj4gU291bmRzIGdvb2QuDQo+IA0KPj4+Pj4gK2NvbnN0
IGNoYXIgKmR1bXBfc3RhdGVfZ2xiX3F1b3RhKEZJTEUgKmZwKQ0KPj4+Pj4gK3sNCj4+Pj4+
ICvCoMKgwqAgc3RydWN0IHhzX3N0YXRlX3JlY29yZF9oZWFkZXIgKmhlYWQ7DQo+Pj4+PiAr
wqDCoMKgIHN0cnVjdCB4c19zdGF0ZV9nbGJfcXVvdGEgKmdsYjsNCj4+Pj4+ICvCoMKgwqAg
dm9pZCAqcmVjb3JkOw0KPj4+Pj4gK8KgwqDCoCB1bnNpZ25lZCBpbnQgbl9xdW90YTsNCj4+
Pj4+ICvCoMKgwqAgdW5zaWduZWQgaW50IGxlbiA9IHNpemVvZigqZ2xiKTsNCj4+Pj4+ICvC
oMKgwqAgc2l6ZV90IHJldDsNCj4+Pj4+ICsNCj4+Pj4+ICvCoMKgwqAgbl9xdW90YSA9IGdl
dF9xdW90YV9zaXplKHF1b3RhcywgJmxlbik7DQo+Pj4+DQo+Pj4+IFNvLCBnZXRfcXVvdGFf
c2l6ZSBpcyBhY3R1YWxseSBhbiAiYWRkIiB0aGUgc2l6ZSB0byB0aGlzIHZhcmlhYmxlLCBh
bmQNCj4+Pj4gbm90ICJzdG9yZSIgdGhlIHNpemUgaW4gdGhpcyB2YXJpYWJsZS4gVGhhdCdz
IG5vdCBjb25mdXNpbmcgYXQgYWxsLg0KPj4+DQo+Pj4gV291bGQgaXQgYmUgYmV0dGVyIGlm
IGxlbiBpcyByZW5hbWVkIHRvIG5hbWVzX2xlbiAoYm90aCBoZXJlIGFuZCB0aGUNCj4+PiBw
YXJhbWV0ZXIgb2YgZ2V0X3F1b3RhX3NpemUoKSk/DQo+Pg0KPj4gSW4gdGhlIGVuZCBJIGhh
dmUgY2hvc2VuIHRvIGFkZCBhIGNvbW1lbnQgYWJvdmUgZ2V0X3F1b3RhX3NpemUoKSBhbmQN
Cj4+IHJlbmFtZSAibGVuIiB0byAicmVjX2xlbiIgaW4gZHVtcF9zdGF0ZV9nbGJfcXVvdGEo
KS4NCj4gDQo+IEl0IHdvdWxkIHN0aWxsIGJlIGNvdW50ZXItaW50dWl0aXZlIGlmIGdldF9x
dW90YV9zaXplKCkgcmV0dXJucyBkaWZmZXJlbnQNCj4gdmFsdWVzIGRlcGVuZGluZyBvbiB0
aGUgaW5pdGlhbCB2YWx1ZSBvZiB0aGUgc2Vjb25kIHBhcmFtZXRlci4gQSBjb21tZW50DQo+
IHdvbid0IGhlbHAuIFNvIEkgd291bGQgc3RpbGwgcHJvcG9zZSB0byBhZGQgInNpemVvZigq
Z2xiKSIgdG8gYGxlbmAgb3INCj4gYHJlY19sZW5gIGFmdGVyIGNhbGxpbmcgZ2V0X3F1b3Rh
X3NpemUuDQoNCk9rYXksIHdpbGwgY2hhbmdlIHRoYXQuDQoNCg0KSnVlcmdlbg0K
--------------jUc9UV2TcwmQsVH4jmTerSez
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-----

--------------jUc9UV2TcwmQsVH4jmTerSez--

--------------FPVLejSYf8v0JdUw3lOXQq8b--

--------------oaIGU3wO5XXfMlY3XArHydRH
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/Ey8FAmm8JPQFAwAAAAAACgkQsN6d1ii/Ey/h
OQf/Q+70+Blq3JUW1SOGZevxHo/ujvPRsUV98dV71wkLeQfLLTgBGmqO8yCfb1Hslef/lJeGRhN0
0eN2S7h34SEJYCXV7GXXm2vCzdrqyak/ZrOLDqSq9UKud6sesHLU4eq08LYFVo+GBnEquMKFuLQD
aOD3DkSoEnLogG1FEKyB4c6INSnWr7nZ44t0g0B6lEr4mpXGlm5bCEsMpP7Ix4hlWoGDqH5muqJB
GUzZJLvrvKaNWh3uMPEg0EVdS5SqAkwBjcIjWDBYfsbzC6HeI9xR3bFgWVJEafWvPH9gU4VmTMK9
L/2eU9GnF7uEC4pN8zrQ1Rt56xIP7pBlc9CtwjHMGw==
=Bp2r
-----END PGP SIGNATURE-----

--------------oaIGU3wO5XXfMlY3XArHydRH--


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 16:38:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 16:38:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257399.1551801 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3GOT-0002ug-AN; Thu, 19 Mar 2026 16:38:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257399.1551801; Thu, 19 Mar 2026 16:38:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3GOT-0002uZ-4w; Thu, 19 Mar 2026 16:38:45 +0000
Received: by outflank-mailman (input) for mailman id 1257399;
 Thu, 19 Mar 2026 16:38: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=mAdu=BT=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w3GOS-0002uT-G8
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 16:38:44 +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 166fcd2f-23b2-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 17:38:42 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM6PR03MB5035.namprd03.prod.outlook.com (2603:10b6:5:1e5::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.20; Thu, 19 Mar
 2026 16:38:37 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9723.019; Thu, 19 Mar 2026
 16:38:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 166fcd2f-23b2-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=is7baWtADlXZzrNul6b8Wk+zB3rV5NctClJDQxT/5LwQHQjpwX/+2WVBxLiSArLomTm2+BTAuwjxqBlB6Vk389jGkgyVWJd7itY94GpMkOa2zAMJIz+UTWcwgp8YPDmvBGhVi+O/wPSvyAlk+d2+xFiJUsvMX8HFkIu0OXPTZ8O9cLBq7XPtQkVRt2NW8B8sDz9JEI1gNlMpmHWjgkx3wXa5rnoi0ID2MRIjD3TZZNhNG+SU0GtipQOA/MJaLLAF6vvPWVNzzXm7Ja9rQbHHcsw11MADaeD0Zw8qmvwYTEeaJcexygfjVBs9KmHC8beZx6U1g2Esb72Mv8cfawdwjA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DgR34ti4Vj78jjx6affmOqgPQGdNrHTkN731mp2HtO8=;
 b=e1+JwVIxxuH3lCNrSIkDK2LgmvF9biWJLOvSsagkC1ww1K3hMYR7yp+uJpC4v+KehDNCqdY3MQKh6X+1a0HApBugiHcv83dWaxC8LI9DBBLSJvtmJRKd/Fqi0w6N9VxlC5swoZMQU/0em12PptUhEM8b5yb4lDl3/FHcuYIZxWgJFyivoAfxg96A5VDA77Kkqm42+NIMY/zv+jp0C/BTH5LnyD7Pnq2HiByH1Le97bZS+VVmUKRxzS8C+qqHCMeaFpYwzLVCqQ1Ir2WljoyNOJoSgMYOkloR5TxCywRYjd36xJ6m2II7tLDLnwqfZ8o5Gfz+ZwW1oexS9V1CN9cUGA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DgR34ti4Vj78jjx6affmOqgPQGdNrHTkN731mp2HtO8=;
 b=L6igGCZVQE5K7oTXAekDBICkSrRbNh1EX8c5v4q7qq+pDUOcuNu7w7GSYpMwKzLPCD7CwiQFghkR2WETLN2VmB/Y/2DDfh552hY6QPRO+MF9mkmYow7q20jJWa67qTYnIC38l7tXinB7ax3HZVsoTnwHDPTjfvF/Ot8mQTQTT/I=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <a67bbe7c-9c41-43e4-9d28-f5f221c96b95@citrix.com>
Date: Thu, 19 Mar 2026 16:38:35 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v1 2/8] x86/vmx: Remove lazy FPU support
To: Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
 <20260319132924.1469809-3-ross.lagerwall@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260319132924.1469809-3-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PA7P264CA0121.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:36e::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_|DM6PR03MB5035:EE_
X-MS-Office365-Filtering-Correlation-Id: 143cd90e-6646-447f-38a9-08de85d5f8f3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	J4fcapXRcw73TgcUoHDSdhcLYwcBmwNJ+roJNorcsk9yZOJw1ayHd6FZt2jE/lu+upes1pGeANBck5NVHB3E2/4OSqSYRK272gnsqLiRGRQNF45X7G055dsC+va7mANn7AU1basUkeFlxfPTONrAnQXAgllchvGOYOqUqAwF/W1dNk1ufRPZcVrQ7lVrhfWta2CWsS4jhv/CuvdMLQgzZJMTdcniQwvywCxUdxwCzRBqpeFR7Od52K1WlczC1i1Iq+X0qLQOPZFntGrC9fJFXACyjtlPvdrUeyn4x/DTjk+rXoIcuNTF4AD1jUzvRd4hrtgpKZSsnX2LGKWues7z99o8Ez/qC7i7edCFBVdE9oOMcEvPVL3A/5ej+80rJ+eAnsCpQ9WNbYjbfM/yeSILt0hJOxgCtTaiiVl/JE5kf74kFh1YJCoH+D0cTXbn9BQTOtrlxvMmeW87m+4+UgJaNjv8Y/BJ9e+ouWrc9zKB8gMLY2dIm3bOFoWGJu/jotx3C1QQbsdi71Jw7PlmP71NJkoE8HNJxM7Clvee9DSFRG5QTXlZg5Jj3hGs95fos1CsuKgcysQrITNjDhCydkbi5NOtcs3Fe8c8wswB5F7UArscKDmYUvdD2oA5adG7DvVgB7sRv3xJ9kDDosk01qMKCH3Npv26fWKJ6tryJYcQE7XavI8iB21JDDwTk1uerL1PPwZdzZgLVu2fkDzh58eLDcrmdb0IQU/ydawa9KjXCMw=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?M3ZrbjVyWk9UcW8vVTJaajhCekdma0swNTZGU2ovemQ0eXZCdENKRGIxMmtK?=
 =?utf-8?B?YW9Lc3NhUEtxSUVHWFJkdUd5dzBZeWhlUTBXbFlIeXo1amw4OXpsV2M3VGc0?=
 =?utf-8?B?SmthbU1LRTRRdzgxSmdmOUJETG9MdUpzOW5JQU1vVGgxT25Hc2lSVjNYQi9R?=
 =?utf-8?B?SDVkMXdFUXdyTzl2M3J6OUdXclgrTmNqdDQ2WFg1bEpCbDRMNTZCNlZ6RjAy?=
 =?utf-8?B?bDk0N1JwaUw0ek1SQTRtV3JCaCtZT2RERHZJZUxVNmd4a01CeUtGYkV6Nmp4?=
 =?utf-8?B?cVBNMnhNNTg3SWdabk5kNTVmUGxFdmg4aWJMM09ZMEtPVGw5REd1cVRYSFhT?=
 =?utf-8?B?RnQ5bGprYi9FZ2ROamdvWllxSHl5dGo3K3FNc1VOc0NGeTNZeXd2eEp5aFFE?=
 =?utf-8?B?SDVMMjNUZ04rOU1JUWhTRUU5Z3JRcjFrRUxRK0R4bEIwenNEVkNHV2hxb0pm?=
 =?utf-8?B?VVI1SnFhRkpOV25FcDJhNDhWNUFVU21xLzZCTlR1Z1hPcGhsUHpEaW1uUHZ3?=
 =?utf-8?B?N20vMWgzWXNGVE12UFphMU1adVUrSHo0ZElTM3daVHk2MHArbFRIUGcrcGJl?=
 =?utf-8?B?c1MvQUl5Z0txN0daeWhVR2tQbzJNOGNiOUxlUU14QXQ0aFlBNEY5ODBKOFNx?=
 =?utf-8?B?NENoQlJ2YzBMSkVtVkRjaVFjaUg1blJmd0o3V1hDYVZDcHdnZnl5c0NsWGJF?=
 =?utf-8?B?bEY5U1laK01FakJ4Nk1OcXVXV3FvRnRwa0FXSUdSQUpaUmJqTUt5T2grL0NT?=
 =?utf-8?B?RkFOUWVJYkQrblQ0KzVrNXJqUTl6cFZjQTlzU1kraFp6Q3orK2Ryc1Z4WWZi?=
 =?utf-8?B?Z1RJdFhZV3p1dEM3SDlXZU0vOE5wQ2hzdEtWWHZjenFFa1UrSWF0QTJld0po?=
 =?utf-8?B?Ulg5bkhqeWE3OW1SZEZneklsVGV0TUl2Kyt0TFpXQ2tKbk9Zckx5SDZqOUZF?=
 =?utf-8?B?cm4rNGNtVEsrV2lxQ3c0a1JSc2NwaER3akoxcXg3V2VkUENqSmpTUzJ4RWNR?=
 =?utf-8?B?RXEyS0VvT2dZcHVUTWMwR2s0MUIyZE9makx6K0QybU8rdDNYUlJkc2JSbUEx?=
 =?utf-8?B?aHh5M3ZZaEdxM3RVckhma2VXdEM0aFIzV2I4SHFpeDB6ZjlNWnJpbG5Kdldk?=
 =?utf-8?B?ZTFrc1N6MFhjZ002cXY3SUpwaDR1QWt5MzJ6NGUrVDg3L2o2bjJkL2p4U2h1?=
 =?utf-8?B?bnk1QlpFRHhIRi9GemhmSUxYZTFab0kwMnQ0YkNVK05RQnN5cWdWd2NYLzNE?=
 =?utf-8?B?cVZpS2E5bXNZc3NMbVdreUs4UzYwc1p6NDVSY21pR1NiOXlFUDRFaW9RSXFQ?=
 =?utf-8?B?Vy9CSWxPVVZEVUhzZzNBdTdiM3RNdWlsT1BoY0FJTDFzRnBwRm1oUGJuUGNu?=
 =?utf-8?B?VUFLTHZoeThheDhIMkM2eDQ2WTdkN0k0eUtFbCtxWk44OFZjRHlzamw4WTVL?=
 =?utf-8?B?SExKWHB6SUNCRWlsT3pNWStNeHFqc21qQzExRG5nUWZzKytPRG5TT2toRi9J?=
 =?utf-8?B?S3BoOGhYMFdRanZGUDFiTDAwMmRrdnZZcjYzR1VFK29kU1JseHdwK0tKcEdm?=
 =?utf-8?B?cll1NEFySmlpclJtdE91clpoajFrRnZ2OC9hR0dHVVpaVHhlRWFseitXaTEr?=
 =?utf-8?B?L3c0eHNFQWhSbGlqTjJCd2dWMEdacGhlQ2NZbDI3OFdUQkg4TjZ2UVMyQ2xa?=
 =?utf-8?B?VHVyUnZISFY4M0cvbFBZb2tLZ3NsM1dtSEVPbDJtQ1hkZ3pSVWFKQm9Wb2xn?=
 =?utf-8?B?MHB5VkNSRWtYS0d4RFozblk3LzlxZEZYYUtWM3EyUFlpM0FQTFpMUWJ3SkF1?=
 =?utf-8?B?K2JHcVJBVmVVNW05TXBiRDVueWxlN3F5Zy9qYlNwSjVsRnNXZHhXUnlwVjJv?=
 =?utf-8?B?LzllVWhqaUlrSStvUDdicHpJUk9DemNQVU5VSEFIZEdVbEJMRlI3YWcrRzVv?=
 =?utf-8?B?dWc0KzMzQ1Z1d0dHajkrRnNnay9ZRTUxTkRWRnZUb0ZKaU5RQmhGMDd1K2s1?=
 =?utf-8?B?TmR4OGs1WjJIQ1F0Z0t4M0FUc3R4SWlQNEI4MDFtb3RmdkFkMW1MaG9TOTVH?=
 =?utf-8?B?c3VRc3ZlcnlTL0ZseWxLeCtsTjBmNHlOd1FrQWVXR0hGZyszbXFyTEZhVVlZ?=
 =?utf-8?B?TlBqRlAyRXZzZEpOeCs3VHVPRlpkNGdUeVdzbkhiNFBQelc0eWYxLzd1VVJU?=
 =?utf-8?B?MVV5SGxrUW5FRG1mNDNUMjEyUGg1MWVMbENHSmpYQVFlc3Z5QzdJbWllQkhG?=
 =?utf-8?B?ZXlIakpwTXdtd0VKMXVTNlh2VTlMR2VQK2lDd01MSk9zSFNyQU1KVTNaYnFU?=
 =?utf-8?B?eDRNdGVhNGJUaEQwNkx1eEk0SzRXQzg5ellCbDJwcEZQQWtGcnR3Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 143cd90e-6646-447f-38a9-08de85d5f8f3
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 16:38:38.5033
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: gTFpdH+GVk8Mtnte1rNpoGIVSfehuoeiZNjJa/C6NXAg63emXJnGT9tjB3OGjBS63K+NVndObspXMFy/WJHc3xyaDa0RYh0hVt2LzwM/G2I=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5035

On 19/03/2026 1:29 pm, Ross Lagerwall wrote:
> Remove lazy FPU support from the VMX code since fully_eager_fpu is now
> always true.
>
> No functional change intended.
>
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>

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

> ---
>  xen/arch/x86/hvm/vmx/vmcs.c             |  8 +--
>  xen/arch/x86/hvm/vmx/vmx.c              | 70 +------------------------
>  xen/arch/x86/hvm/vmx/vvmx.c             | 15 +-----
>  xen/arch/x86/include/asm/hvm/vmx/vmcs.h |  2 -
>  4 files changed, 5 insertions(+), 90 deletions(-)
>
> diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
> index c2e7f9aed39f..8e52ef4d497a 100644
> --- a/xen/arch/x86/hvm/vmx/vmcs.c
> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
> @@ -1247,10 +1247,7 @@ static int construct_vmcs(struct vcpu *v)
>      __vmwrite(HOST_TR_SELECTOR, TSS_SELECTOR);
>  
>      /* Host control registers. */
> -    v->arch.hvm.vmx.host_cr0 = read_cr0() & ~X86_CR0_TS;
> -    if ( !v->arch.fully_eager_fpu )
> -        v->arch.hvm.vmx.host_cr0 |= X86_CR0_TS;
> -    __vmwrite(HOST_CR0, v->arch.hvm.vmx.host_cr0);
> +    __vmwrite(HOST_CR0, read_cr0());

(Not for this patch) but I'm pretty sure there's room to optimise this
further.

CR0 should be constant, both here and in SVM.  Reading the active cr0 is
an example of the anti-pattern we need to purge to make nested-virt work
better.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 16:43:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 16:43:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257409.1551808 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3GT9-0004Ps-OR; Thu, 19 Mar 2026 16:43:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257409.1551808; Thu, 19 Mar 2026 16:43:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3GT9-0004Pl-Ls; Thu, 19 Mar 2026 16:43:35 +0000
Received: by outflank-mailman (input) for mailman id 1257409;
 Thu, 19 Mar 2026 16:43:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=8LP9=BT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w3GT8-0004Pf-5b
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 16:43:34 +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 c3614698-23b2-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 17:43:31 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-439b9b190easo856114f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 09:43:31 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b5189221dsm17058134f8f.23.2026.03.19.09.43.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Mar 2026 09:43:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c3614698-23b2-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773938611; x=1774543411; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3uHR8jjoxbHTO8JtWICYeYxoB17BRr0XFFYHATGZQQc=;
        b=Bimru+gnQO16gCmdy2s+A8SdvCkZap/sTOeNHYHAujr9fxtyqisqZzJeqMyd9/2MpQ
         AMEXmBRrw/yvVuTxaZUxenRPrxFvl2W3ukSlpP90BykZ9ZqWmeELa8iAUwbjhsQruGvi
         fcPNn8WjozEIU8GJ3rUYSVBsQAoitC+e5gHAaxhR2vCmUL34pQk1lsIsTTOMyJlYXnVW
         ZttLD0akOmK0fDl6Kl8GJbjISdVcvW3yrM5SJAgiUO97lx9Cl7yCzKOmsMy5jtrQfQ3P
         gkX9FU6H/MRieEKMcNwbTF3+C2VCCG5aQNxynfTnug7KY/VvgfkbbUfawb7+4SSx1fb4
         pN0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773938611; x=1774543411;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3uHR8jjoxbHTO8JtWICYeYxoB17BRr0XFFYHATGZQQc=;
        b=o5Tb4NcTwW2Xebn50S37DbjiBbOyTvdEZhFUHvmO2rdqyVJNcK4eWGaVgivAHAyUyU
         be8+N+98hgtmcS1qie5+iya+RUbMOcCBg4lhGI6yyKOS5P5gQGMW+n+ZFmbrCpn5VeOG
         MeXwF1gTE7E7bheA/JBZdMm6Udq1CDFD32iEZUKIYeLGc+tS/MBre9jM71F3J2KZIqqw
         uJ93zOvRsb0oDlBbx47GzLB8IvqxhKhwjRcCq77Ea8pbbDgZ/+cvvn7qu3jlBNlXBtgH
         B/FF/PhbfJgTD4sEE2T68+BpCzd/QTXB3w3RkJOxHKVEwGq1x7nFrV4EVnn8VKYhXTYk
         39kQ==
X-Forwarded-Encrypted: i=1; AJvYcCVw9HgdCaIzctJ33dBLVSjzyMkBV/wL9hQTEwVTMp0OBlDJggJhEVr4sQkttWBj3cDjOypdDGHGPGc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw8Y051N9OGNmq5c52NF+ZpghFoHyQXG/KWxL/i/aSzMTGwzw1R
	7IQaj4uzlx+PkAAmNUVeXRrk3E1q1KfstpDf1J72DUI742lyK6VNFrCKXm/HnaOeqQ==
X-Gm-Gg: ATEYQzyaria5LHg1k0Hb8+ySJ5KOcsPltqj8pmjao14wvLTb+pI6solZ90StzrLNHpE
	Lq/+zbqxocjm/gFx/KPjixt23KoV1ZB18kgs6z7CRYC5yFiE6m3plZKs3YnrsSxBQJVxXDuNDqG
	W18egckEiD6dYiLjjA7Q391no3oDcEoAe3pudtqeQmOXxIZ3TAA9BDdiv0semeGRSF7kgwvE7Ts
	YQZlxeWHvGFf83QCdvsb6Vy3DIPpOXNi5WLaYN+pJ0BUJwg3txC8CwVDkvj60Jw3o5nPRljGfr7
	dz9JuBTH6IrdthdQEubyOSint+oiqkX4t1rrp1XKgeGZ8JGmnuTl/c2GE/FCP9G/h++nxSgNhU6
	lpnIkhBDvpl34SG+5XJQKEZTqFhkRD7cH8I2SYCWYtJjsfdjHjFKEbtkupDR8+B6lEPSGlZ5qbR
	TAkQ4x+YVLDq4l/104Ae9/vPcG3VJDsFUfxnUPy9id1MZbzz5QmLNPYtVvbQ/EeYCciYc+LPw/i
	WC1jKJsMXb4WTbuZ9wwHKpISA==
X-Received: by 2002:adf:e849:0:b0:43b:63e5:2526 with SMTP id ffacd0b85a97d-43b63e52536mr157385f8f.27.1773938610869;
        Thu, 19 Mar 2026 09:43:30 -0700 (PDT)
Message-ID: <c646fd85-f526-435d-897f-c1ad72e6d234@suse.com>
Date: Thu, 19 Mar 2026 17:43:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/8] x86/vmx: Remove lazy FPU support
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
 <20260319132924.1469809-3-ross.lagerwall@citrix.com>
 <a67bbe7c-9c41-43e4-9d28-f5f221c96b95@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <a67bbe7c-9c41-43e4-9d28-f5f221c96b95@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.03.2026 17:38, Andrew Cooper wrote:
> On 19/03/2026 1:29 pm, Ross Lagerwall wrote:
>> Remove lazy FPU support from the VMX code since fully_eager_fpu is now
>> always true.
>>
>> No functional change intended.
>>
>> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
> 
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
> 
>> ---
>>  xen/arch/x86/hvm/vmx/vmcs.c             |  8 +--
>>  xen/arch/x86/hvm/vmx/vmx.c              | 70 +------------------------
>>  xen/arch/x86/hvm/vmx/vvmx.c             | 15 +-----
>>  xen/arch/x86/include/asm/hvm/vmx/vmcs.h |  2 -
>>  4 files changed, 5 insertions(+), 90 deletions(-)
>>
>> diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
>> index c2e7f9aed39f..8e52ef4d497a 100644
>> --- a/xen/arch/x86/hvm/vmx/vmcs.c
>> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
>> @@ -1247,10 +1247,7 @@ static int construct_vmcs(struct vcpu *v)
>>      __vmwrite(HOST_TR_SELECTOR, TSS_SELECTOR);
>>  
>>      /* Host control registers. */
>> -    v->arch.hvm.vmx.host_cr0 = read_cr0() & ~X86_CR0_TS;
>> -    if ( !v->arch.fully_eager_fpu )
>> -        v->arch.hvm.vmx.host_cr0 |= X86_CR0_TS;
>> -    __vmwrite(HOST_CR0, v->arch.hvm.vmx.host_cr0);
>> +    __vmwrite(HOST_CR0, read_cr0());
> 
> (Not for this patch) but I'm pretty sure there's room to optimise this
> further.
> 
> CR0 should be constant, both here and in SVM.  Reading the active cr0 is
> an example of the anti-pattern we need to purge to make nested-virt work
> better.

In which case, is it a good idea to purge the host_cr0 field?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 16:47:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 16:47:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257418.1551818 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3GWX-0004xo-60; Thu, 19 Mar 2026 16:47:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257418.1551818; Thu, 19 Mar 2026 16:47:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3GWX-0004xh-2f; Thu, 19 Mar 2026 16:47:05 +0000
Received: by outflank-mailman (input) for mailman id 1257418;
 Thu, 19 Mar 2026 16:47: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=iVNG=BT=bounce.vates.tech=bounce-md_30504962.69bc2884.v1-7779c9b467c24a85942dffc31b546d68@srs-se1.protection.inumbo.net>)
 id 1w3GWV-0004xZ-96
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 16:47:03 +0000
Received: from mail132-30.atl131.mandrillapp.com
 (mail132-30.atl131.mandrillapp.com [198.2.132.30])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 405ced89-23b3-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 17:47:01 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-30.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fcBS40njbzP0KMXW
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 16:47:00 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 7779c9b467c24a85942dffc31b546d68; Thu, 19 Mar 2026 16:47: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: 405ced89-23b3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773938820; x=1774208820;
	bh=zlCQ0TUP4D4w+ZI9S+9xk7k7Wbs8Mv+rTcCR7o/dRE4=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=fKzqMA2SHSwgm731Yk3+pmzJJzoWOMkBA1oF0UJ6Leac6musQhnlti1CCLGPjJdTt
	 xjCOtZwBIFIIV38jD1/ggWnAzeTdiqFAJ1IpyMhg0Ll9zwDM0cywqg8umrjoNFgECV
	 4lWKUEUqFPTWZhcPBXPNmoVOVAeKAe0Afa4+HLlsqsmWInp+ku+2hKIDD4aySF8hp7
	 Gc5wqXyc40oaBSJdflr4DQ6MjJ3LF2ynULDBTXx1bzKGH9UD6EBhUzMnxHX7nJF4g2
	 LG/8q8hdH2ip66Wem6pvU2TabXXs+6kSJIOQinIImL9VwmKC9Xsf5OaZqwn6yZcJm7
	 mPjD7K2Q7Lcng==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773938820; x=1774199320; i=anthony.perard@vates.tech;
	bh=zlCQ0TUP4D4w+ZI9S+9xk7k7Wbs8Mv+rTcCR7o/dRE4=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=HdXwQgC6zRZ269IQ+gNzwoYb+sgCGq/NTaW717w4EWVXmD265SgeZjd2i1eO8UW4x
	 W0nq4/Ooz5G1yZrvnYFqkvvZVYv1aO64dmB9gUHBTiENGSs1F0U0TA+MVIRi/cYtKA
	 6D5VFShU9Ka/dT+B8UYUBfCSSqpoue8CrQG6uViRME82uwVcFUsiWzQSyqwaYFZVXb
	 p7BDeLWDFoue/hTfHrmlMmp1xaipbrsHqa5s6gADpMmCW4pXYFHAjNALq9GZolFuqA
	 QRsfWSCZakOsMmjsru3Lg1j6squMVTJmqjaNoCR6AJKhq3FPtYZ7+v6aOWq+hIsaVP
	 NedL8EvhXazLw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=2007/11]=20tools/xenstored:=20implement=20the=20GET/SET=5FQUOTA=20commands?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1773938819464
To: "Juergen Gross" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, "Julien Grall" <julien@xen.org>
Message-Id: <abwog6TisFL9ZfeC@l14>
References: <20260305135208.2208663-1-jgross@suse.com> <20260305135208.2208663-8-jgross@suse.com> <abgc1Azehzw_m9Ff@l14> <b0c02185-1ce0-416f-8bff-34b57de57e8f@suse.com>
In-Reply-To: <b0c02185-1ce0-416f-8bff-34b57de57e8f@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.7779c9b467c24a85942dffc31b546d68?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260319:md
Date: Thu, 19 Mar 2026 16:47:00 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Mon, Mar 16, 2026 at 04:27:43PM +0100, Juergen Gross wrote:
> On 16.03.26 16:08, Anthony PERARD wrote:
> > On Thu, Mar 05, 2026 at 02:52:04PM +0100, Juergen Gross wrote:
> > > +		if (n_pars == 1) {
> > > +			quota = quotas;
> > > +			name = vec[0];
> > > +		} else {
> > > +			domid = atoi(vec[0]);
> > 
> > Shall we check that vec[0] actually contain a plausible domid? (An
> > integer between 0..65535). Right now, this accept everything, and would
> > return 0 if there's not a single digit.
> 
> I have followed the pattern used in other places where a domid is expected.
> 
> In the end nothing will really break.

On the daemon, no, not really.

> Any integer not being a domid will result in ENOENT, while the case of not
> a digit is a bug in privileged software (domids can be specified by dom0
> only).

It would be a bug, indeed, but xenstored can help telling exactly where
there's a bug, instead of ignoring it and carry-on. Well, just return
EINVAL when something other than a number is found. You do that for
quota, why not for domid as well?

That can also help when the daemon is replace by a different
implementation that actually do the checks. (well it would help finding
bug in the client earlier)


> > > +	} else {
> > > +		domid = atoi(vec[0]);
> > > +		domain = find_or_alloc_existing_domain(domid);
> > > +		if (!domain)
> > > +			return ENOENT;
> > > +		quota = domain->acc;
> > > +		name = vec[1];
> > > +		val = atoi(vec[2]);
> > > +	}
> > > +
> > > +	if (parse_quota_name(name, &q, &idx))
> > > +		return EINVAL;
> > > +
> > > +	quota[q].val[idx] = val;
> > > +
> > > +	send_ack(conn, XS_SET_QUOTA);
> > > +
> > > +	return 0;
> > > +}
> > > +
> > >   static int close_xgt_handle(void *_handle)
> > >   {
> > >   	xengnttab_close(*(xengnttab_handle **)_handle);
> > > diff --git a/tools/xenstored/domain.h b/tools/xenstored/domain.h
> > > index 62ce3b3166..6a06b0d1af 100644
> > > --- a/tools/xenstored/domain.h
> > > +++ b/tools/xenstored/domain.h
> > > @@ -93,6 +93,14 @@ int do_get_feature(const void *ctx, struct connection *conn,
> > >   int do_set_feature(const void *ctx, struct connection *conn,
> > >   		   struct buffered_data *in);
> > > +/* Get quota names or value */
> > 
> > This could say "implement GET_QUOTA" or something instead. But a
> > comment here isn't going to give much value for internal functions.
> 
> If nobody objects I'll drop the comment.

Sounds good.

Cheers,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 16:51:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 16:51:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257426.1551827 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3GaI-0006n9-Kn; Thu, 19 Mar 2026 16:50:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257426.1551827; Thu, 19 Mar 2026 16:50:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3GaI-0006n2-HQ; Thu, 19 Mar 2026 16:50:58 +0000
Received: by outflank-mailman (input) for mailman id 1257426;
 Thu, 19 Mar 2026 16:50:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Txee=BT=bounce.vates.tech=bounce-md_30504962.69bc296c.v1-f004f9ad8d764dd1b3acfc46a424355d@srs-se1.protection.inumbo.net>)
 id 1w3GaH-0006mw-5d
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 16:50:57 +0000
Received: from mail132-30.atl131.mandrillapp.com
 (mail132-30.atl131.mandrillapp.com [198.2.132.30])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ca253ca6-23b3-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 17:50:53 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-30.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fcBXX0HqXzP0KP6g
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 16:50:52 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 f004f9ad8d764dd1b3acfc46a424355d; Thu, 19 Mar 2026 16:50: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: ca253ca6-23b3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1773939052; x=1774209052;
	bh=PIgO7rkoPtEUkUwGeFYqwfIuh3XkY6pU47NTRzeqZDk=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=bvB/PyTYNH29TSDSbw/VQTyAMKE1y/eQv9FVvV0Idq50OFTFInvaVu1l98Alc1ylG
	 uLI6ZfeU/0pgskShnRnQeXqmMTs815ikNTqF/Ry9lE027Lxn1IctskVyAh19kR1SVR
	 9CZcF3Vp2LuU5o09SHz8GdCfhLirFw6Fh8RbB9GXfWm7N80R79Jqvtw/eocPTIdBKA
	 zJWB3Ithan3z8aAN2Cf3VfN6jXY8BT5pD1Zg5Msvju274p4NJI8+bEcVY6ycX4tfR2
	 l13Boe83b9Aznn7jxzRrgdL7eiLPgSBd4DTii7J5Len94AEeXMh2Z8agCmaQfa0ZNV
	 E01UKBY5m3X8w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1773939052; x=1774199552; i=thierry.escande@vates.tech;
	bh=PIgO7rkoPtEUkUwGeFYqwfIuh3XkY6pU47NTRzeqZDk=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=Em2QLVvH3ETKArd3L21/KpEMs/63nEySzSmYrR2RDWhgOmfv6qI+Fa01e8Zjk20NQ
	 IPGrptftlEYL0tUUoF6LZvRP5aY1WFlVOQXMgGwV9TJ9v0lDME6nGHMeXzyc+eQkZN
	 kKIv0eusr3NIeWWtl37mTXnsoS910bWhTX31ThSo2k8X4jkUH262KSLxnTRsHdBC9b
	 wF/0O7aDuQpBmwc+4aeG9Uzdp4IPVyTaopgmijYH67fa39tHd3Hh8GrbZw0+oovqzz
	 K9CCKjs4Fvh7p3wLhUlGrjOXi/Qvr7ibjvz0aYsPqcU/cu8P0c2sMxGx4x0mgbcHKG
	 DCmk/P/TnGmeA==
From: "Thierry Escande" <thierry.escande@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2]=20install.sh:=20Preserve=20symlinks=20in=20destination=20file=20system?=
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: 1773939051391
To: xen-devel@lists.xenproject.org
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, "Jason Andryuk" <jason.andryuk@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "Thierry Escande" <thierry.escande@vates.tech>
Message-Id: <20260319165047.900047-1-thierry.escande@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.f004f9ad8d764dd1b3acfc46a424355d?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260319:md
Date: Thu, 19 Mar 2026 16:50:52 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

In various distros (i.e. Debian), /lib is a symbolic link. The tar
command in install.sh replaces the /lib symlink with a directory and
results in a non-functioning system. This has been introduced by the
installation of the systemd watchdog sleep script in /lib/systemd.

This patch adds the tar option --dereference (-h for short) to preserve
symlinks when extracting the dist archive.

Fixes: e54a6cd6a1f3 ("systemd: Add hooks to stop/start xen-watchdog on suspend/resume")
Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
---
Changes in v2:
* Use more standard -h option instead of --keep-directory-symlink
* Update commit message

 install.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install.sh b/install.sh
index 3e11c4d46f..1d74541320 100644
--- a/install.sh
+++ b/install.sh
@@ -27,7 +27,7 @@ tmp="`mktemp -d`"
 echo "Installing Xen from '$src' to '$dst'..."
 (cd $src; tar -cf - * ) | tar -C "$tmp" -xf -
 
-(cd $tmp; tar -cf - *) | tar --no-same-owner -C "$dst" -xf -
+(cd $tmp; tar -cf - *) | tar --no-same-owner -C "$dst" -xhf -
 rm -rf "$tmp"
 
 echo "All done."
-- 
2.51.0



--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 16:54:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 16:54:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257438.1551836 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Gdv-0007ON-8A; Thu, 19 Mar 2026 16:54:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257438.1551836; Thu, 19 Mar 2026 16:54: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 1w3Gdv-0007OG-4m; Thu, 19 Mar 2026 16:54:43 +0000
Received: by outflank-mailman (input) for mailman id 1257438;
 Thu, 19 Mar 2026 16:54: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=mAdu=BT=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w3Gdu-0007O5-97
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 16:54: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 525d9609-23b4-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 17:54:41 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BL1PR03MB6166.namprd03.prod.outlook.com (2603:10b6:208:31e::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Thu, 19 Mar
 2026 16:54:38 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9723.019; Thu, 19 Mar 2026
 16:54: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: 525d9609-23b4-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FOvg710XFhca8baBaodCdaZg8JaWSG2fW5EwYzOHpAnIbWCxtoxg5CsXYqKUbAM4ycFkTCeHLwubIesjPLSm7x96u6h6Dyyz9bR84DE4J2oNRrtT/MSzeWERYOJqLoTzSDntzwT3HqFYQQd3FOVnVYXZ038b8ZTXff9Cfr9YtDGoLVxEP/pUSTjhOvAhWDoAqghgOYe24pX5HiKNpdUhfCxGA8zxTKzjrWVswFLjqRQB/yak+eoXY8CuiHhSrm3idVeW+xJoTnMtLVpQabOTNQRwgqN0+spHx5z3B0IlpZZIlbIleLXh1fmpiVgZGNrlJDnW1UajnagwZd8iU5FLeQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cg3nR+JfglP2T3BDwMVhrzl+wVrOb2M7z4MovozjnmI=;
 b=lUjezPcayjJ+OK+Ou6oapJQ8fZds8hiA5uUyiDL8MwmAtpdFkStglnFtlF8UZZHwgDS6jaFGjQPCYM/GDa3qALzdztQuH/Sjqp5oWKYH51/3uQnE3YUmvxuDW0YgTTOnQfjTiKJM+7qJ+1/SLCURjajaDiFeP5iLSIKgxpwgp5uux6EigzJsQSKcJ7WOfGkLs7gCxxFUefRecHXA5TUwBszmD5BwbiJpVEGM7xMRnNx2TyeSboHR5CweWwUfO6mp6XxM2fGjn+X05f08ZS3O/yzMRNRiLQSgh6oOeAL7bb+DbU/Dk9jCPa9WCCpV0w3mtC4W3a/+j+BBZxNLdKEf+Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cg3nR+JfglP2T3BDwMVhrzl+wVrOb2M7z4MovozjnmI=;
 b=jJ+CUdZ1ojYRyT65FFCsvXFyJYLbP7WTVCSSfdLXGTk0vVvHMoE0oBmBFN/0GQj6dj1JEPsKA72VaCsn4lhVSToowzi4q2sGK0euE5v6AS6mU3DX1joHF/20KOSWC3o+hkC2LP7SSCZWT2PfCTDh8Q/USs7fXjmBEaigigOmPCY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <4a03299f-cf0e-44ba-ac35-f13392eb83fc@citrix.com>
Date: Thu, 19 Mar 2026 16:54:34 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 2/8] x86/vmx: Remove lazy FPU support
To: Jan Beulich <jbeulich@suse.com>
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
 <20260319132924.1469809-3-ross.lagerwall@citrix.com>
 <a67bbe7c-9c41-43e4-9d28-f5f221c96b95@citrix.com>
 <c646fd85-f526-435d-897f-c1ad72e6d234@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <c646fd85-f526-435d-897f-c1ad72e6d234@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_|BL1PR03MB6166:EE_
X-MS-Office365-Filtering-Correlation-Id: c17eb58a-d37b-4c27-c11a-08de85d8348e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	1+VQy7gnbV/XJyVNp4pQttba1KRiXeWfAwGkG0gYV6Bj0emh30BQyO+Q92ofvWpPkC5sJfjlLMwR0nbcdNakFDK2CzPeRx6R9de2a+gfa1avzHb70pxpbkfEIJyaTZ+ayWN17cGz97WYGVW5ymotQAM7aY4JcHsvciVA6CribRigLxgZ/1Air+gS5rB5ZAYFvKyEEDZgJfRaUgUZYNNJSK7XW8TczPfqwk430wdVhADPR1beFzTMgJ6+A8s/s8WaTdlML1hqDKXH95+mwlmDzTisPdqykIwpKimWzG7wxiVGLJ1SsXKVlHi1Cn7zoefC+4g4GCgsPKyT8UHddcHbO7ln6NhJTqYd30cxvSibRuys/qqPDJBQ2vBa6Z2tVPh5c2eqtA2yoZTYWU96ecFrFXyARSw2wylJhyj2DHD/LrfcI6Hcp0rAKs+vXfB5fnv7VeyoDTSUgxIyXO8x+4u6H2Ukr3m6GasgFkSqYf1JIRllCmlfnFX1tGKxd07vAHuMBfOLSIdom1gYkcddEiMLO0Qpf60l7q1Oj/bLA8lCaXSvcv/H7CVUoeTiKpgS3+sbjwk5rKPGNGMbrkPTphRY/DKNg9XmnxBZQ1Q5NgFn+BstUJYGCad3uvwz1kwiXT9tiDJmmqwJDWvLAWzNyBCA0oBTUXCY6XPiFoTrZY+D3UYVUN8wSj3bY9SpOvDO/x+30GlcMWmppVkcmUCdoanzjLB/cF10iAdt02am54G2r/k=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Z1RrYmVucGN6WjVCZ1BxaFVmV1I4ZWl0Yi8wM25POXljUzFWb0RlTVF5R0dT?=
 =?utf-8?B?S1lUbXlmYmhqci8zcVo2VHBhcE1aK3Jya3BjV09ON0dmOEtUK09ZbGRBTStK?=
 =?utf-8?B?R0QvTHdJbUxuY0d4OEltaTc1L0czODFvM1V2UW9SNjNMZHB0clArY1ZMbmpM?=
 =?utf-8?B?R3Vkb2lKOWxmYnZHOFIrNDFRWEgyYjk5MUs5UzVvYlhrV2pFb3VGaFFyMnRG?=
 =?utf-8?B?SFFJTks3WTErVHpqL3RCZlhJS05jekZiSlducXNqREpKZkFOWUxCcGp3eHM0?=
 =?utf-8?B?NDdCWWZJWG5iMnVQMnlUQys2czlGLy9od09FN05ZVU1XKy9ETHlwenhBeWJI?=
 =?utf-8?B?UUQ1QjUrT1JQeWs0czJETmprSHBiNGJVM0VhVDJ6bFBrY1RyNy9zMzgwaHg1?=
 =?utf-8?B?aDNtZmd6OGZvTWM5VG42WVNTckJxRUVRMWJCalBaK0xzb3Erc09qNWo2NzZh?=
 =?utf-8?B?NStFKzRKd1pZZWpPK2tXdXZ3TUhWK2d2YTc0MEFFam5OMFBKcnhoc3RXbTh0?=
 =?utf-8?B?UG1COHl1UkQ3Z3hTTndsWDdrMDhBYW5BcTJtc3B5bGRUbG15WVdjbVM2SEwv?=
 =?utf-8?B?LzF4SEpEUTVjYXVIUVJWR3d0TDNPS2tscWhuMkJjK0t0Sm1UVGNRRDhOazJ3?=
 =?utf-8?B?bis2Z3liRE5WVkg2S1dFeWJGcmNnc21Ja1VaeVZkRldWVnVISkxvY1hBY3Yr?=
 =?utf-8?B?US9FQ2s1Um1QUEhtdDZKa0ZRaFlHWERCNTdjcmFJZnBpL0JBdTdYaW9acTR1?=
 =?utf-8?B?ZmdGcVNrR244R3h2ckVMV0d6MitHd0NFOERqaldkYjdFNDU1disyOEpGSi9U?=
 =?utf-8?B?KzVhQ0ZYUzdvM0xTSW5TZXI0dlhNd3NTNGRic3ByUm9aNVFsZXlnQlZ2MVpU?=
 =?utf-8?B?UmE1VGNjWHJ6ejhxL2oyNHdmL3dRU2NwRXpDdm81VjVSV0xwZlBoRjNnRjg3?=
 =?utf-8?B?TnZaT3NyWkVtWEt0a1didE5jdHdGSVBPV1pWV3hBQU9lNytoQzdqWTJoRmky?=
 =?utf-8?B?ZS9maHNMcks1cjFjd2dWTUlvR3Y1MFlpQ0ZSamdDNEVCazRSNjBIdnpqdGhG?=
 =?utf-8?B?QVJsbWFSd25ISzhTQ1lUVnZkQ1ppYlZpTjViMjVsT2R4ZXBJWVkyeUNUUy9Z?=
 =?utf-8?B?SWpjYkZzREpTKzdsQW52b091MUtIRENDY2xTcmNKUEUwWWc4aDd0ZjlZQ2pv?=
 =?utf-8?B?aFJyY1h1K2doaGN3ZXBtU3QxWnlON2tUdjArSE5RNHhlWDBCSmtTWTNKNFN6?=
 =?utf-8?B?WG02c1FCYVhVbkhPc1NYOEExM3RNM0dtelNTeHFyaEtkZHdIZ1dKaERNUjk3?=
 =?utf-8?B?YU41eURuWHFEaVV4TmFheFU3dkpjcy8yVFp4dkg0a0NJT3V6WmlzYVVJWHg4?=
 =?utf-8?B?NFVuNEJFUGI3UGUxclc0elBCK0pwL1pDY2JFc1dpQy85c3VUM2JybkV4bGZq?=
 =?utf-8?B?a05RKzBRampJcjBIcm9waStwUUVPS1YyaExLSUNLVStjUEhjZzZxaVIyZ1NT?=
 =?utf-8?B?YXljbjVSRkpZTEZSOERoNFhOc3pveXJKaDVYMksxQzJGclZCcENXWjY3QmZZ?=
 =?utf-8?B?RWt0WE1tVkZQVWNacno4dFdlQjFIL0VtejlvTCtFdlBDc3REbFBCZVpvdXht?=
 =?utf-8?B?aXg1N3hMR2dFWVc1UGk1SEViY1RjZUd3MmFYOEdqOFh3MS91em9yMXVFZkZu?=
 =?utf-8?B?UzQ2T09PUXF4M25EclVnanB0VjcwS1lSdk14UDNoeUkzWGFpWWRuM0MvaHVP?=
 =?utf-8?B?YTZ0SFRkbXk1YnNUbjhJY2gzTlRpeU5OQ2RzVWFISDJRbUNkQkUyMDJwbHRN?=
 =?utf-8?B?QmNBWm5ZNGJNWVVuV1REMytXb0hUeVFMUnU3WTlOd0RIWTNaYkFQWGRKWEFM?=
 =?utf-8?B?SDdqRStLQVZQTkVHZGY3YnZkVE5uT21RdXg1VS9LOVFQQjg0UENSRTJXeGs0?=
 =?utf-8?B?STdrMDZxY3ExMm1SaXVJdEJHb2xrWmFPWmZWZ1lIRVp4MjJ5QWJlZ3JJS2NX?=
 =?utf-8?B?TnNDQll2UEYrUHkvQTQ1bWUrZFh6VmFiUzlBRDhMV2laVXZIQ0tGNVdJb2p1?=
 =?utf-8?B?aGJXN2swSnhzWW5YR1k4NnFVRnorY013dm82Q3JUVDl1Wit5M3oyUmNscm1p?=
 =?utf-8?B?N1J3ZjYzblNKaUF0Rk4vWGFPZkozd3dCUTZlWkhVN2l3RlhmT2tkckNwaHVE?=
 =?utf-8?B?aEZkdFlja2M0d1RGKzdFWlJCSUFXZE9VM3Zqd1ZRUmJabVlQc081cmdUTXNj?=
 =?utf-8?B?VGo4Q3hrM3pLdDJ6WDZwd0xWOStCbFg1RWh5b3huNVYrOUdQWVR5RUM1SG0r?=
 =?utf-8?B?SHMzVnpqNHBjYjE5OVNXd3p0d2xtRS9sdkNWd2Y3c0pETGpzZk0rdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c17eb58a-d37b-4c27-c11a-08de85d8348e
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 16:54:37.5165
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: qSC6na49TP+suQLUY6+y1Wxn3ACufhYWeQ7eVXiicHwRNcFIFWC2fsUBwPdWNuQKAg9W2KmlyevfuRX5CIZinYO2aW0bDf1/u9Xnm4X8UJc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR03MB6166

On 19/03/2026 4:43 pm, Jan Beulich wrote:
> On 19.03.2026 17:38, Andrew Cooper wrote:
>> On 19/03/2026 1:29 pm, Ross Lagerwall wrote:
>>> Remove lazy FPU support from the VMX code since fully_eager_fpu is now
>>> always true.
>>>
>>> No functional change intended.
>>>
>>> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
>> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>
>>> ---
>>>  xen/arch/x86/hvm/vmx/vmcs.c             |  8 +--
>>>  xen/arch/x86/hvm/vmx/vmx.c              | 70 +------------------------
>>>  xen/arch/x86/hvm/vmx/vvmx.c             | 15 +-----
>>>  xen/arch/x86/include/asm/hvm/vmx/vmcs.h |  2 -
>>>  4 files changed, 5 insertions(+), 90 deletions(-)
>>>
>>> diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
>>> index c2e7f9aed39f..8e52ef4d497a 100644
>>> --- a/xen/arch/x86/hvm/vmx/vmcs.c
>>> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
>>> @@ -1247,10 +1247,7 @@ static int construct_vmcs(struct vcpu *v)
>>>      __vmwrite(HOST_TR_SELECTOR, TSS_SELECTOR);
>>>  
>>>      /* Host control registers. */
>>> -    v->arch.hvm.vmx.host_cr0 = read_cr0() & ~X86_CR0_TS;
>>> -    if ( !v->arch.fully_eager_fpu )
>>> -        v->arch.hvm.vmx.host_cr0 |= X86_CR0_TS;
>>> -    __vmwrite(HOST_CR0, v->arch.hvm.vmx.host_cr0);
>>> +    __vmwrite(HOST_CR0, read_cr0());
>> (Not for this patch) but I'm pretty sure there's room to optimise this
>> further.
>>
>> CR0 should be constant, both here and in SVM.  Reading the active cr0 is
>> an example of the anti-pattern we need to purge to make nested-virt work
>> better.
> In which case, is it a good idea to purge the host_cr0 field?

Oh hmm, I take back my R-by slightly.  We still need to initialise
v->arch.hvm.vmx.host_cr0 for this patch to be no functional change. 
Easy enough to fix, or fix on commit.

That said, I think we probably do want to purge host_cr0 eventually.

There are a few cases where host_cr0 != guest_cr0.  CPUs prior to
unrestricted_guest are the obvious case, where we can't run with CR0.PE
!= 1, but this should always be derivable from guest_cr0 and the
hardware capabilities.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 17:06:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 17:06:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257451.1551846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Gpf-0000tn-B6; Thu, 19 Mar 2026 17:06:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257451.1551846; Thu, 19 Mar 2026 17:06:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Gpf-0000tg-6g; Thu, 19 Mar 2026 17:06:51 +0000
Received: by outflank-mailman (input) for mailman id 1257451;
 Thu, 19 Mar 2026 17:06: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=mAdu=BT=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w3Gpd-0000ta-SP
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 17:06:49 +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 012340b5-23b6-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 18:06:44 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM8PR03MB6230.namprd03.prod.outlook.com (2603:10b6:8:3c::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.20; Thu, 19 Mar
 2026 17:06:39 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9723.019; Thu, 19 Mar 2026
 17:06:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 012340b5-23b6-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=quHlHfu3ZuXVHOS+3oLu+b5d+GpEvLFTQYomT6JJqLVr3jsTpzHgcxwrN73XmXznCVB4ywJg8cKbulJabqJlgYJy/7UPKvsuK5Z72xM8M31AMWWzG609pZa9paVZp3ahRd5AELj7FSSuh2XICjrX84MMDIAv24uElV1WgyUGfUlGx+DViXGlq6m8ZJ4edjtPUD+2Q3Vc1DvkTNrWsuJq3DQKAXOt6mqwfFVnOXV7nr/1IF0sa6AkNeocUOU4z+rHNC9ZX/g9+qVCD6WZ0X2E2+pMoBIpQNgtJGOMov9jg3yD+S5NDC/cfntyMxzcZB4D4L4zf8sX687oR+rno8gQ4Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zSDBoA2OFcMkOmtkj9E6iHSCXzq7l7lmsvXKRHl9Sk8=;
 b=R+HMamw//Rqm0YuqzG1k2zCp2OT2CcBSZzqUdxCE/BVgyV7y8674ESg8nQ+RcjRa5srtTv+RWxnj+xNr377UFXMXNxVMuSmLE+tEBjlyjmhu6pTXioNFwI8JJWJLVL98vOdOLjds9Ti9/jD7TDaTT1P0pXg0kgU0VFryRahECOQNfrcu4nBk7HgGALyo1P1SWoG3+ECXoPuEjnAwXII2IvoJKMwRrIyZ/c5Ia3gp4R9HW0bEGQC8hpHfOoK+I0Zp4fa2H/gX7GnDVlxDwrOBvnPGTLqhpZbky//ZzstfyZhDvMLn6++XFoC/Pb8wcq1blyD65FI/w2VayipyGsZhEA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zSDBoA2OFcMkOmtkj9E6iHSCXzq7l7lmsvXKRHl9Sk8=;
 b=QSgc8CWg3iCYi9tqFBpbf+3nN1cAcasBwQwj6NEuWpeECBoZ0IcP+1AQzwlIZ63w0/iLoM7wMvv9SCSaVFBgilhWVgWt9/T1wM62lxMv9je6LnG2PL2vNjZ/GEDi/X+o0oulyMIpMyqbM64ZTzK1duMEjd6BoCodr5ClZpe3Ln8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <1f1a3040-25e8-4989-99e7-c84e27770dd1@citrix.com>
Date: Thu, 19 Mar 2026 17:06:30 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v1 2/8] x86/vmx: Remove lazy FPU support
To: Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
 <20260319132924.1469809-3-ross.lagerwall@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260319132924.1469809-3-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO6P123CA0052.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:310::10) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DM8PR03MB6230:EE_
X-MS-Office365-Filtering-Correlation-Id: 3781e404-34f6-484c-0777-08de85d9df18
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	MBeH0F+CME58sbcugFMXObFjTPbUPBfoHQYl/g1qgjb/ieM5NGIHcmHnYgEs6dKkQzGotoCo8hzDKOZEb22utG6BGB2eywDlerdRFVAPq4w5OsyoIN7CDAP/q8Pr0k8IW5JEkY/+Ej3ZRJSch0ZkAaRFtNU6chRETA6r76D39qazktsRrhKPh/oYifccjfd1YVrQ2a8zoXJXZtgJSv1dp1GnS4ZDkVU8mgS+PX3VSyKbJ9Yp1QnChd6LnBr/5GHATYcJv6LJY73WZkfecVIkpc8c08Sp1K4bqvIaJxNMqdlB0SZOztoQVAnMJiB38s6IP//e4kSU3Ipoh+KjxVbGbHK5N7ptRQiMFDZb/w8m6ypFDlRT66je3cNxO3gGkoe7MUb3urBupXLXnYPtc9wyZPC0QzLmocum7cJMpT1dZV1lEcBY51oQ8zfsHTnBY8OzoCzTDtJo0cdS94pSor/ULBYpVNUo/mbdAFk6XXJ/KX0psKeJu+3+S+z8iMtho75jRXUiUXBkR8dQtH4BO+AUHTMiXIyp8ZgxANy9ffHg0bPFB4WXy5AcLgFoGrdltZXQRmKGTFIoGEPPXtQI9T/Ct3ajCzRFEBPjH6sziNprpmCYRcPk2Mo4WaW0FcFPsNmKRYMonRHgqJgnqCc9zNGLCcIP5blSepgsZ2+RhduSQCC4LViRI8mEVoROxNnEvT4O9unD1s7vZkCywjHQ4Rc63XheIR6lWlIUbE+rwNkfhGA=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WXMrZ09zS2xzTkFiME5LdXBDekJONVE2WEtOcWd5cEF0TTlZWEthcUtKQjdX?=
 =?utf-8?B?cUxOaE03VTVxUTk3Y3VGekNkSG05Wm5TM1BXdjdSaU9OTEtlOTd6U0dOUksr?=
 =?utf-8?B?MlZ4aUFYSytQMCsxL2E3K2xFRjhweS9CU1RxZXNCb3l2citZb0c2cHhkeDVE?=
 =?utf-8?B?dkgwZkF6TTVoVTB6cTBQanNsU3lvblVOZHhMa2lKSUd2dnJqQ2xQeDBhMXFy?=
 =?utf-8?B?UkdaUUQ3c29ZR2dNQVg4bGV5TkxhaHZidDc3YTRoeGtacUVXaXZtZkdZeFFG?=
 =?utf-8?B?Z1g4dG5FTThieWYrRkxLcHBVVDI5ZzluUi90WGltQTk1c1pDQml4c09sNWNX?=
 =?utf-8?B?NldicUcwR0JoU2UyWDFTd012c0QzU3RTZHJWcnkvbHp1SFBTWWxuMkRkbE4z?=
 =?utf-8?B?ZXNJS0RaMkJiRTJpYk1wSnk3WWhEZ3Fqdis0S0hJYVFqUURqcjNneitxZHZJ?=
 =?utf-8?B?R2JmdVl2eGN3RmhjMzdKUnVPU3ljS2xKZXBVckc4OXRMeXZhQXk5QWh3Nk5k?=
 =?utf-8?B?MExuL0pORWRKV3lXbkxXQy9HbFcvTXduYjE3eWhBOGxVUFBMMGxxdkN3QzND?=
 =?utf-8?B?NlFZV2xieFZjWEcrbmJtd200UTlyemZVdlZYWmxaQTN5QTI1Y3BVUXlleXZO?=
 =?utf-8?B?VmVWcFd5VnEzdFhLU0wxY2VneEdJOVA5NzBWMExZb2FwdHArVVBzMkluVEJW?=
 =?utf-8?B?Ny9KNGlaUEljQXo0TVFxSTBQRERYRHYxRXkwZ1BtU3diQVR2ZzZhUW5jdmpv?=
 =?utf-8?B?QUhuUysvKzZmME1lS3pxRGZaYUZDQzdLNzNsQ1pySk9FelJvM0x4ekMxTkdv?=
 =?utf-8?B?cG9uMzA3ejQreWlpN09CRVJBRlo3T2RkcjBhelpNZmlyZnZ0NTZCUEd5T1NG?=
 =?utf-8?B?bWtxTklKZnQxTkF5NTNyWEtqcGwwTmd5TTlwRzhZaXE1WEo0WlY0VmV4Wldp?=
 =?utf-8?B?ZDNHQW1zOVEwWUMrd2tPOWNIcC9uQ1ExYU5La0puYTRYOTRSYmNJRkpZVzBT?=
 =?utf-8?B?VjQ0azRON1ZsSStLMUNhd1dCaVlmVFhXeW42SzZPSWY3dzlpT1lLV2VUVDNu?=
 =?utf-8?B?VytVbjZDa0hzTW16cVdCVVlIalpPV3pUWUdEV0ovL2RScmVMRU5iNGYvcTBp?=
 =?utf-8?B?d1h5TnArSmI4TG50U2JxOWduVnZZcjF1UEkxVk42V0I4WlJyR1NuMGl5ei9Q?=
 =?utf-8?B?dlVGKzRFVnVyTUtSbVMwOTBSQWJQOE5GWVNPVmNua01vWk45UEhwbE9VNjU0?=
 =?utf-8?B?UmpON01TdGY5b0RIb1I0SHdjdC9jcUlJYit5RUpXNXFhUzF5a3lZQ0doazFH?=
 =?utf-8?B?MjB1U2dDTUU1cmE4NWpUaUlveVd5TXQ2SEtWc1MwTW1WTmw4aWQrbkZMM3ZR?=
 =?utf-8?B?WG5tdTVsWmpqa0pkaGhhV04vS0E2MlgwRmxpV2dMWkRNUmVKbWlvS3ZscFg4?=
 =?utf-8?B?dkFKZ2c4ZDNVWVFxcHh2UVNZNzB3dkRNZTYvaUVWeWx5YmZVNStiVjVBQWM3?=
 =?utf-8?B?R3gzYlQrMkVJdUhROW1nSE1yb00vNDZDWDlYWW91QkFQLzNNNzhhVzg3YWwx?=
 =?utf-8?B?aHZDKy9nVnJxeTFrLzh4dmx0dUZGQ2NodWhjaWxFVERjMVM1Z21IWHNZcWFT?=
 =?utf-8?B?TTd0dy82b3NQL3BpMVZXZ05KK1RXOHVDRFlENkdCV0FsaWt3TlZMbndCaVJK?=
 =?utf-8?B?K0dhcVJtWHJNWDU0S3FmalhrWWhRTUNmakxJbkJiYk04emF1Z0NPeCtQRkZQ?=
 =?utf-8?B?OEZyOE1WS0ZoTjFaVFYwRTA0S2NOZVRWVzEwUXhVd0VVL3FpOWh1a1g0eno2?=
 =?utf-8?B?UGRTYVgzVFBNSTlac2crWk9vOFR0dGhpVGoyaEhNZzFPb0FJbGE1bEZMMjda?=
 =?utf-8?B?L2ZGK01oSWozZ2w2bFdtZ0lwN29VR3RWR0x5MmpHTzRaOEVkQmlQdkMvRGhk?=
 =?utf-8?B?UWpRcUFFT0tHaTZDRHdIMVRIcUVGYzhoWWVmOGozN3ljOTBoRVdtU1lMcUxF?=
 =?utf-8?B?Vm5OYzQ5WFdCS2xDWVQ3UVloSGpsOGsySkFyWk5wYThLTytlRlZ5ZEM2dWRR?=
 =?utf-8?B?N0ZpQm1ubG5hNkpWNjR6d0hVQmh3d3pwMTBKbzhReGZGRVBnTHBkdk11SUdu?=
 =?utf-8?B?MDBnU3ZPbjg0ZGRNMGpOWXEwcGx4bFZvREF3cWZnSWJSb21waTYvQnR4bCsw?=
 =?utf-8?B?elYyU1VFNWUrK1dhb1JwV0NBWmI1NVZkaEN4STg2UEVSQ2dYTVoveFdUR0x0?=
 =?utf-8?B?QWROUnJwU2h6UjFEY3pza2dmUGlucHY5ek4rNlZZMUh1ckcraXVWN0dQeHpJ?=
 =?utf-8?B?TzFqSi9xaW1STVc4YThaZnd3bmZhTnBBbVFsbXNGN2lldDJxOXovQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3781e404-34f6-484c-0777-08de85d9df18
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 17:06:33.2091
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ZwFfb5FWoi5nZfnNGw6reY796RfTp8Qpx9PGSw9KdgJ5puLeLNgiwjqgReGOzJfuTCCZ+zLrpwv3diCuXZY0eDXapBpBYcXhl2Qkt9+W1vg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR03MB6230

On 19/03/2026 1:29 pm, Ross Lagerwall wrote:
> diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
> index 38952f06961e..e4cdfe55c18e 100644
> --- a/xen/arch/x86/hvm/vmx/vvmx.c
> +++ b/xen/arch/x86/hvm/vmx/vvmx.c
> @@ -2458,19 +2452,14 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs,
>          __vmread(VM_EXIT_INTR_INFO, &intr_info);
>          vector = intr_info & INTR_INFO_VECTOR_MASK;
>          /*
> -         * decided by L0 and L1 exception bitmap, if the vetor is set by
> -         * both, L0 has priority on #PF and #NM, L1 has priority on others
> +         * decided by L0 and L1 exception bitmap, if the vector is set by
> +         * both, L0 has priority on #PF, L1 has priority on others
>           */

Again not for this patch, but this comment is wrong(ish).

L0 #PF only needs to take priority when L1 is a shadow mode guest.  A
while back we decided to disallow nested-virt in such a configuration,
so we can delete this special case.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 17:20:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 17:20:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257460.1551853 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3H3E-00045y-FE; Thu, 19 Mar 2026 17:20:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257460.1551853; Thu, 19 Mar 2026 17: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 1w3H3E-00045r-CU; Thu, 19 Mar 2026 17:20:52 +0000
Received: by outflank-mailman (input) for mailman id 1257460;
 Thu, 19 Mar 2026 17:20:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mAdu=BT=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w3H3C-00045l-U0
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 17:20: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 f790dfca-23b7-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 18:20:47 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM6PR03MB5002.namprd03.prod.outlook.com (2603:10b6:5:1e8::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.20; Thu, 19 Mar
 2026 17:20:41 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9723.019; Thu, 19 Mar 2026
 17:20: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: f790dfca-23b7-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=o3g1BdYHhRd6PzYGSpspKwWaRybXBtuKJU1CZ9gcKdMmKYkio7yxFgHluBfjjnWs5Wx6fE0WcRSC5AQunr6YZfhO7eZIqhYlDXPIfM7ou7xeNp/kosLRber5ikTEoXvgrQzcAlu8Hg5gzRQkkVZxnRzWjDqegni1Iy/nH5AJ4OE/fpEo/42UfeLdF6YSF4MwKaoeYpKnmgNysHplneJ8+feIvBMvoU5VKlVTlQ/Gqmlku+LkZnucGl3cQnuhlve4SwkjP0+/TuDzvnWZ5QKHkBad7jZ9+Fe5Uep+tJiv3J4CmclWwMNIbkXWaCJ60MAbo4+uEjLMram7ESENQP+2iA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=scM1kSyVmGbeR6Y1THi4aqXjhqrIk9N6xlBSqox0cGs=;
 b=ZtOK8vVBc3UzKe1wFtWORjkBgsQsNHrhoxb3KdR8avGhO+ng0BzsZxuSVcE7OwCBmDBsYrLpEFV3E92Lw64qJWBtkIniARS26W6S9gv9LrqKHt2nh18+AexKde5mdemJhvG7J8wcXa7HwMLN1loCHWu8cKAZAP64dzy+Zd5cwtNS2VDlcLvUso62AWLcO1TRnMQHv+Cl+4jAmbHaT2LeHApNyV7l+dZ8MwfVCGU4BbsaIg2OpoXLo17WKxx+gW4onLTeLuyHQGH+nVr84BZVnrZoN9Zhb8wUqJRxKK8PkJE/GOuEhnf3gXh3rpgzL82nzcA0F0Oeq/Znbd8cPnRL0A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=scM1kSyVmGbeR6Y1THi4aqXjhqrIk9N6xlBSqox0cGs=;
 b=ihmGXZMowc1gUzdz+u1GL0yzbgTk0IPqKXk4ssodKHQlhWmQ2SKUaz31lpjQig5E43MfVZ2ZjaV1UzjNSlEI/0GRDm3xMzW0LxSJ9x8QRMY1VGw6Aaz+CqUQQzzWfdDOVscprK1hTJL307oEWyL6auhn3+POc/dEmMUochbcujI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <7e1381c5-4429-4580-bfc3-e91d31813a0b@citrix.com>
Date: Thu, 19 Mar 2026 17:20:39 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v1 3/8] x86/svm: Remove lazy FPU support
To: Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
 <20260319132924.1469809-4-ross.lagerwall@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260319132924.1469809-4-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0547.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:319::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_|DM6PR03MB5002:EE_
X-MS-Office365-Filtering-Correlation-Id: fa7e6a1d-847d-4bf8-5a85-08de85dbd94e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	QkWCpAzYs6aAs1MSdQQQcDvmqegl3OrOB10LvpvNOC0tFYcfoe2SV3aRwWNIVpUPhNSf/e9aUgig7H56O6eCrB5aNvjLQB0kIi7Pm1gYEfTqHpwwqpIRqgwFBsKjSFShteR3OZmHaRjUFMrLM8IVavdj/1zUJ2I65EBlbry5tV+B3Gjk8bW0aRMFiMnkhWMZL2i+d1JnycPUeiVJSXUwCqNT8w8GZ1nzyNvZg1S6P9Kr5KDDDxtYHWWUsye6c/H6J8y9TQ4YmelKNHHaZlNhzKF+4nQUadAqBo6L8jSBeYK9ho45i+uMkW0yA4b+VpdxkQcKufuMlRLuTHEHABmd+afEGVahnTjdmHSYhpkTk0zF4UqRFB+sbdrUjNxL1ii9j+aMBvx8qHCWj3Cve2U/EUfCpZl3zo0RJsRasD+/8S1NGWj7GC5gF0vYMebEErvc/LD5VxQRA+kDe2qBoMe75mJ4Qm6rLHP9SwxzvXO5Im/iK58FdQnAU5U7tflz8R8+K3k8aySipQNLq4T/zptuY8Yx6tQD6wJCW/OCepzPA+Lh7OFtETacmpYBBkHy086iYPsE3hW3r8lPBemFszK9/WDcQKPje5Xri961KewVk7m4y+5aqhZrsO88WyKgPMibniQN3m00lNusoyYApf26p6C68YcIFB+ajN75B+64k/95suWRvQiVszc8VwnflohYHQZnBrgfC6HHPWTpkQxUttG1dmMFGf9jP3SwFy/Z5Ew=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QkY3d1RMTTJaekV2VFlTWEN0RGRlZE9QNXlHV3NRUUhuL0kyVVQvSjI3VWJq?=
 =?utf-8?B?cGxwVXQzSXB4WFI3VGcrdlk3WjZkMFZrcTRMYUZNZmtqWWVtbFpkdjRtWE1T?=
 =?utf-8?B?NTZXWjhtVW1aNHBoK1RWZVBURDNnUzNCL25PSGtlcDZZaUxmOUVoQ2dBdXFM?=
 =?utf-8?B?NFpWUU9NQUE1L3R1bkY2dFJ4U09HM1BUUDlQdzlaWUFwaHVuTFhUWGgyVDlH?=
 =?utf-8?B?empKMVpNbytWcmYycU5TaEJ1QWs0Q2pqWXFkZVE2N3pCK2s2UWQyb0ErQnRo?=
 =?utf-8?B?Z2hKRzBwbVVpT3prU3pMclNjNGttTWVpM0pFNnRtMllNNTdiWndLMy9rRm1S?=
 =?utf-8?B?RTdJMFgzSTlmV3BKVFNuRkZyOFJkN3poaklCd09pNEN3QTNpeFZTMUNRK0Fo?=
 =?utf-8?B?cDZ2c2d2OHRnd2lBeWh4WFg3dkFxMHRybG9Kam1zYXVZRmo1T3EvNGV2Y2RC?=
 =?utf-8?B?SkhWQW8yR2hHUkRHazJWcmxHcFVBK0pGVzYvaWYrVjVaaEVKQmhUYklBZUtX?=
 =?utf-8?B?ZUFkbEJYbDVGR2IyVlVOZnpWYysvakU0U2w4Umpic3VhQ29GcFdrblNVcnF3?=
 =?utf-8?B?cWFQVkZjRW9RWjREVUdNYXZaWkRacmF2SUtJOUNzNlFBbjN2Uk13MWtjb3dO?=
 =?utf-8?B?bzZCNS9IQjZrZURDMC9zdUtyUWpwVFhZZVc2b2RLRDJDQWo2QjZ3VWJoOExH?=
 =?utf-8?B?RldkdDZTVW5rMk82UE1tWVAzMW05b3hvWXRjZ0xvemhRd2VaL1ZVZjNsZlY3?=
 =?utf-8?B?SUpGTlJiNW50eDdDRjl2M0d5SzQzaHZ1QzhtWW95QVZUZHVpWWxsTzZqam1V?=
 =?utf-8?B?YmVBZFhObXNpWFpJbExoNk01eVBGZlRJbm1FdUkxL0dmcFdBSytNWnhVNkJo?=
 =?utf-8?B?VFBkam0ySU5Cc25XQkVBM0JsRVo1N0VIMjZsWld5SDRFZU8rbHNzSGVOWFoy?=
 =?utf-8?B?WlA1TUozSFduWTl5VkM2cGwxcVRsQXViTUNMc1MyVmRBL2dvOG5VN1V4SmxZ?=
 =?utf-8?B?WDlyNW16R1lyS1lzTHpjRDJHYTN1Ri9zYWoxTU5MNmdKYXcxSTRBam9oQnl5?=
 =?utf-8?B?a20wQkpYb0lIZTdHdDFaWjNjSmhJTis1dm0xaTRKTmg1a3UyRmZkbnR4ditW?=
 =?utf-8?B?MHZZNVJvRVdoMEZ6Z0RiR2g3b0lDV0QzT2h6TWkxVFNwSUdwOXdCMTFJRUhF?=
 =?utf-8?B?MStpSVNmdm41TVBmdHdRMUJOSGdFMXdBdk9KcXpsL1BlK2N3WHcwQWhIYVpQ?=
 =?utf-8?B?UUlVUXFpdzB2RVRyVE9ZNUxxOVBFc3dHU3NEbm5tMzVwOGczS0tCRCtFSTFB?=
 =?utf-8?B?VlhYM2NtQmFuVDh6R0IzS1ZWWEpLYjh2SXNtVWl1RkZGQVVDblBJR3A4MXg4?=
 =?utf-8?B?dzJrcUJ2S0lBTU9lTDRqaEx2czYzS1pFcTF3TjVoUEI4YzFieUpMMU96SSt2?=
 =?utf-8?B?SUpFZGJ6QUthQ2xzRFB0ZjRoSy9BcW5hQzVObVFEUzJZSVJxZ3pTM2xGckJn?=
 =?utf-8?B?aWpFaURRNTBoQkJnY1o1WFFWSDlwbzNYOTJmNkZLU1Y1YmhNeXVtcFFmVWhJ?=
 =?utf-8?B?TTJDUm1OSElzL3JFb091M1VkMEJYZzZhQWVNTlpNamFYd2VwS1ZuYWF4bnJz?=
 =?utf-8?B?a2ZzSHRrK1lGYmNQTEJDcS9sTVF5Wk51WGtYaGc0V1ZZSk52VGhWNU5weUdx?=
 =?utf-8?B?eTNsZVRmUU5lTWV0QnBaYTVPR2xSTTFDaFR6SFByL2RpS1MrdmJidmNBdFIz?=
 =?utf-8?B?NWZ1RjJkSUxiWnFtaUpBR2JGZUtGTm1pay8rK1pQUVpHWWdvNVVDZUU0cFE4?=
 =?utf-8?B?WW41My9Ld2JCQUNVTFVtSVNBcVBEa0phUGI1YTlyeDlEYS85cTRIdjJ2NGVP?=
 =?utf-8?B?YUFUYjdRdlkwTFBnQ1A3SXJWWjU1WWF6SS9DL1o4NzhEZjR0OUh4RjZzV1U0?=
 =?utf-8?B?dzR5cHd6K3E1cEllYy94RG8rQUFBVzhLRVpBSFpWbUVIR2xuYk9VQ3VVSkUz?=
 =?utf-8?B?NkRsNGI0OHpoVXpzbm5LK1FMYnBJb0p2UXFnclc1ckx3NTVKR3kwNXFobGxJ?=
 =?utf-8?B?bUpJVTJ5QzFyUmNnRnBFYU0wMkM2VnNvYm0zbEVpbTZwejY5eG1seDM2RTBq?=
 =?utf-8?B?Nkozc1NQZnU1TkhHYk1rQTFCTEhOMG1WOSt5Z2hPWmVrQk5lWktIMXlVNUZN?=
 =?utf-8?B?SUo0TWl5NDlVSmo0NnpwRy93NFpwUHhHY1gyWE83czVMS2JmYW50RDg2bTFp?=
 =?utf-8?B?SzdXRTVUQVR2MzFNVlcwZWhUQWtuZVhFNDQ2ZlBuWUZEc3gwcnlFMFp0Q2N3?=
 =?utf-8?B?YVdvbGhZYXIrMjVubmtJTGlSSmRYWW9EV3EycTd0bzBuVVlhc2grQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fa7e6a1d-847d-4bf8-5a85-08de85dbd94e
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 17:20:42.4992
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: EbY1iG2a7EnWyCHf9ZFt7EMMU+TpUhn3FWu0dhRpKrWnLP93g1FiNHoLkXjmSZIuXDBNvnXMSUmT3DPRVuTKDvYwc7RCNkJawg68UyLrC2M=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5002

On 19/03/2026 1:29 pm, Ross Lagerwall wrote:
> Remove lazy FPU support from the SVM code since fully_eager_fpu is now
> always true.
>
> No functional change intended.
>
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>

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

Unagling nestedsvm_fpu_vmentry() is tricky to follow but I've managed to
convince myself that it's correct.

> diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
> index e583ef8548c7..5ed7123d9a69 100644
> --- a/xen/arch/x86/hvm/svm/vmcb.c
> +++ b/xen/arch/x86/hvm/svm/vmcb.c
> @@ -138,9 +138,7 @@ static int construct_vmcb(struct vcpu *v)
>  
>      paging_update_paging_modes(v);
>  
> -    vmcb->_exception_intercepts =
> -        HVM_TRAP_MASK |
> -        (v->arch.fully_eager_fpu ? 0 : (1U << X86_EXC_NM));
> +    vmcb->_exception_intercepts = HVM_TRAP_MASK;

Just an observation.  This handles HAP vs Shadow differently to the
Intel side.  I expect we might want to bring them back in line in due
course.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 17:49:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 17:49:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257477.1551862 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3HUx-0007Pp-Of; Thu, 19 Mar 2026 17:49:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257477.1551862; Thu, 19 Mar 2026 17:49: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 1w3HUx-0007Pi-M2; Thu, 19 Mar 2026 17:49:31 +0000
Received: by outflank-mailman (input) for mailman id 1257477;
 Thu, 19 Mar 2026 17: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=kkR1=BT=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1w3HUv-0007Pc-Jo
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 17:49:30 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f8f97dd9-23bb-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 18:49:27 +0100 (CET)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by AM9PR03MB6881.eurprd03.prod.outlook.com (2603:10a6:20b:286::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Thu, 19 Mar
 2026 17:49:24 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::98:900e:f8e2:716f]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::98:900e:f8e2:716f%6]) with mapi id 15.20.9723.018; Thu, 19 Mar 2026
 17:49: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: f8f97dd9-23bb-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jDtXr+16Z/XhtdCCgCgVJzb4+xbqT/aTm5rxujZIuSaopVI9v1Dj0zqX+kCvOqUR9zObNE1KfMnvV7breV+15kuraJxOW2SFV1p+0GradGojqVI5zBjuSfUGrpE9Hhd7Ly/1EYfQ1awyGV2yWQA5q5hOYshl0AUiCcyW1fbqmOTVOg5ufhoJxnzW08TzJUIV6YXSaZdMWNhNNTR0f4FvIiMsij0IJeDY41MZC/UiPpMqatjrhUbJMRPHVi9see+7tZ+f6rN3UOrpJudv9B7jYgZaZVp0ao0YYD26X7JBBz7phZSAlBCVX8Az3UR1NBO1s17EvQXq95RKW7wbKMY51w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TiV4OJ9RkuDFcSi2lKHDcz1LCfVpgQ9ioLTRJwYNCTs=;
 b=uJA8yzOpB//TgOQ4UWR2An+6PZygbCTgW8v5wgdYTOrdkkh6tu8kMU0iRqUJLg5tDuzllEcIw9ENPTJa/nZ5Ywoo4XXlB/tcPp5AUEYViGEwwBtP0fDI+NDt/D7eygYJyPcD3c8v/u0LbvkoNlf9dVOC69UoCXPoM5pRaeGwquIUZH/QjwrxcisXNtsPUYrFxAku234HUuNzkhntAsHxHGov7ea3R6MQUxkjTVK5RgShcRclbchMUom0CF/tm5nWpaTgo4fCzckOQ39leUoauL1pMXy2qUGGhNxvsblvVrcocA/lb0dnVRlFSTzK0f2C8SHL6lmRx6ysf23j6KHW9A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TiV4OJ9RkuDFcSi2lKHDcz1LCfVpgQ9ioLTRJwYNCTs=;
 b=TAt4NaLFLjb+UIN7UZ1JW5wpQhHios/8RO7mNN2M3xTURzaS38k3q70qU8x9vL20GdDRR9KI7Pit5lFgJoNPS99cpSdEHGqwD3SMiiutzu21TPcmuduBBItLwYiKuU25Z0k48042Ctm4W/uvG97GRTnWC08G0xkOs0Q5X8NPb3KH3MkMjIaQJMwcrPaMgRhiXWnUnVp3W8hCim6eFkJMPJ38g/+ZnefVsFOBfb/kR1Ia/vcp0ZmWV0/kx6HEtT8t26PcJ52Kk+4ZZabCfAU8kcqHxUoWGGOlPFflgxIr3VfnLId+OjRRmDtxzxV5kn/9Vhq69uAVvi6CkzaO+bJ5sA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Content-Type: multipart/alternative;
 boundary="------------ZnOiZ0itnUU4M7pRjwde1saL"
Message-ID: <1c0f5bc3-5e04-4043-b950-bf9af10bf720@epam.com>
Date: Thu, 19 Mar 2026 19:49:22 +0200
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: xen-devel@lists.xenproject.org
Cc: dfaggioli@suse.com, mengxu@cis.upenn.edu, gwd@xenproject.org,
 andrew.cooper3@citrix.com, julien@xen.org, jbeulich@suse.com,
 tiche@cis.upenn.edu, tiche@seas.upenn.edu,
 Stefano Stabellini <sstabellini@kernel.org>, dario.faggioli@citrix.com,
 Julien Grall <julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
From: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
Subject: [RFC] RTDS scheduler: potential issues found during safety analysis
X-ClientProxiedBy: FR4P281CA0280.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:e6::16) To PAVPR03MB8946.eurprd03.prod.outlook.com
 (2603:10a6:102:32e::21)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PAVPR03MB8946:EE_|AM9PR03MB6881:EE_
X-MS-Office365-Filtering-Correlation-Id: 74982772-32e2-4540-af1a-08de85dfdbb4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|7416014|8096899003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	Bb3GsSKhiZC2KJlc1ks9HCU+KIAnX9tdrHnHyaKDlk+/zKdYcvQNEFUr/8wafzS1tlT3rxlB7FJiq0oIULtOYF+G24eozvkUwcE51gNmTkPmlXpgEjdt4LeHVQkb/13UmNm+wyejZYUW1iqd4OMeNPBPj5UBzcG6GPib+HxeutM4NhIwkJNMJ4dL8Ei9pgziW8lArDNpKsN7vOjycfTE2dj6zIpNCLK/TnFbgXp5OhYPVwBDc1l5ptm8EuWdgm43BxBQgzoXJHSc0NLTRBxcIGEup43sj0JU/gjlCVR0N4FoNCMGPW6Q9xc6oilZqG/v+gQIGaN3WTiMqn+tLDYPweG4CMSv5UChqHoO8sKy8gkr7Zu2JoE3vAg4jI0yKR+5fuqjVndo4QWT+CnVhQMRZhPWXRztqB2uqmvQxEck08IY1GecSXTuSBlH1ARlinFcy8nzjGBTZIrBTCbXby+vsn6BEm4uhw1m4ZjGSIupFqdmNnYqwghJceON5pnpyKyqzf5hshJyQ3XzSDW5+8oPbRvwoRRoQ0qeQiwdXRQQHBKNGjpNhOhGvfUgRQT9QabqEkUy2ad+pDvdpw9Yv8pOYNmzi22VIEsreYBCNdwHBzVgXsgs0x1Z5j411t52B47SFNhO3CFs2j4dmX38WIJ51FzmGlq7GjXHQPJo9Trb7yD6jLM6KNmpyhLTCHQpyT5DogFKYTEX2KYfqeiTS6/SfHY8XrKP/+gYcdtURINYDkI=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(8096899003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TnJhUlFaQzNQNFZlelBlMm0rYWl2MFl3cmhMaENkYmZzOE9RUGZJTk9BbzBw?=
 =?utf-8?B?ekRIUThaaEMzNkdRQVdkb1F2cURlcEpqMEhSeitTVmdBUG5qUXE0SDlaOEsw?=
 =?utf-8?B?Y1JJK1pDMFpkeEpwOE55bFg5R2U1N1RiMkQwQi9Cc3NiZmlsb3VNN2IxRjU0?=
 =?utf-8?B?RW9NSi85VFJMMEIzWGs5VXF2a2tWUVFwSEtCYzBlR2hjTkpScDNnckdUK2Qx?=
 =?utf-8?B?RHBncmw3VmI3S1RSRjYwUVlFNTMvQ0NtaFR0Vk1WQ3pnWmJmNjFEVS95NERS?=
 =?utf-8?B?WXh1bHVXbERPYzFYYTdIRjVyZ3ZBcUFlNEZpTjV6SUR4UkNLOURxRDRGYVFr?=
 =?utf-8?B?a3dYak5Xbk16dEFsUWd4Zy9JZ0N2enV0TDNyOXZxTVJmRng5eEFMcTFZdVp2?=
 =?utf-8?B?YnhLYWlmZmdwWVFJUUR4SGxxSkhIUDJKSU1qVTMrbUxiSmwvRHZiSCtRZXZ6?=
 =?utf-8?B?b2c0ODF0Q2J1T2xXRXArTXR0aStmOFNreDAvaDNkRlAxTm41dkVQTmV0eWE3?=
 =?utf-8?B?bFdFemM2S0VKMXZnWFZiRUNDZTc5WkluTzk5WHU3U3JQYUlqc1lkVjFlZEVw?=
 =?utf-8?B?K2dQTTQ0THc0QjNRMHM2V0tnRDh1b3dOTXFReWt5MlJCRTBUV2pzVXA0bVE2?=
 =?utf-8?B?VXNyakxzTkV4VkdOZ2U2MEZRTEY2amtYWmVTUFBvbXNyN055c2hLZy9ldkNr?=
 =?utf-8?B?aGtxNGMvRmlqOUJ1M09sWU1VanhLNjREL3RjL3BocUdiN21Sd1BBblhybmJm?=
 =?utf-8?B?MFBkMG91UFJ6Y3VmdStLUWlkdVU0enpWY1VxNzFybENDOVIyMVBiUy8weEs4?=
 =?utf-8?B?aENtaXVzZVBXejJ5eUJ2Z1I5bGhoTlN5dU1vZzMzWis3MjNvQkVlVnFaclVH?=
 =?utf-8?B?QVhLeUozY1Y4ZzZGd2xYNGtqM01rMG9reDZUQ0dUOU9IL0JZeENyVmFlbm5p?=
 =?utf-8?B?YktrbktLSFVKRHVtaWo4S2VUYzV6K05vYXVGSEx4M24zckswSE0zK0h0SWRn?=
 =?utf-8?B?NTlYY055czY4NmFWL1YyTDRvcmk0RWc4SVVCQmZuRW5CdW15eWRhVElEOXBn?=
 =?utf-8?B?ejNYRzBuaURJTXY0cGxqb3ZIVitGT2NWd2I1b0twR0c4a2pVZ3g0YkNkU1B0?=
 =?utf-8?B?TlhTTGMrQkVyKzhabVRHMHgzN1ljNklrZGNQNVZZQk1wMTV0dkNHN3lUcWUw?=
 =?utf-8?B?alR0ektza0FGQVlkOW1KYkxxM3FjL254U1ZMc2hlejZ1N1NvbXplaURXL1NZ?=
 =?utf-8?B?aGMvWE4zK0E2THJNR3l5ZFBlN3VTbE1RK2lFc0VQOFY4M3dYVzk0R082UlFs?=
 =?utf-8?B?bVNVR2lTSytjUmhYY0FZeklOUEVuTlhha1VtcmVGQ3V6MEdEcjRwcFlXajRN?=
 =?utf-8?B?ZXdBeXF6dTdEdlREUkpaU0txK0I5RnhHa29hb2QvekFxQUdnRDJCNTdTNS95?=
 =?utf-8?B?Ym9XWlY1MFl5QXp6TmFONDVOYjluRitudnI2d2N2Vmhia2V1c25oeDdMUGwv?=
 =?utf-8?B?TlcyYk1BRyt6WXV6cjZrSUcwK1NpTkRzQzlsM00rT3NnM2ozL0hJN2Q0a2JZ?=
 =?utf-8?B?bFlQdFFsRFNtVzdGZDNHY0JlektETytLSE4wNmozNVU1dGVLYUFvenhZemE5?=
 =?utf-8?B?cU9LSTJZR3R1czRFa1R0UG9MaVhPYjlXM2VxbjFlVXNZM2JGWVhvMlBaVTRk?=
 =?utf-8?B?UXJRa1VISVQzbzJ0TFRQQ3JEYllvWVlTeFhFdXlaTzBYbUlmZnlMaVpqNFRK?=
 =?utf-8?B?a0dvV0x6NmVma0tMNUx5NEtKek8zYjhDbE5WcE5TRlliZkJIa3lPWWtmRXV0?=
 =?utf-8?B?U1FacEdQWnZmUjRiWkZmZDNwZTU0c0NVQVVUVG9SSzg0M0czaGZvbmFMY25v?=
 =?utf-8?B?a2kwSlF4MUxrY01jaWNzOFA2RWJTRnp6bElpYVhFVC9DY1hKMmlkUlA3Qzgr?=
 =?utf-8?B?dWNpSzhKNSsxVGtZcC90TjZERlJIa2tDaCt3RDZCVGNJSnFseTJCZWtFR0lU?=
 =?utf-8?B?OWJyYzJpNjk3MHIzZ0Q1UUxMQXFySHBTK3Evbytxb1RoM3hhVXd5a3FqYytW?=
 =?utf-8?B?ODA2MHR5eHBjV3p1NkRNbklMMTlHUWdaTDFNTHFvY2x1eXhacitSNW5BWklO?=
 =?utf-8?B?aGpjampwL00vOGpvNDRvRU9jMlNRRmhhUDVmZEhtRGNQM3NRMHpNZ09TSlZR?=
 =?utf-8?B?TWRLeDd3RnIyTlNxRDdieEplRVg0bjNTTmVCYS9TVm9XYWdiNXNoYzZjd2FY?=
 =?utf-8?B?aHpNc0pIak5CY084c0ZGaENnVjJWYlpLVFcrMmp1NFRqSy8wdVU5VkpacS9Z?=
 =?utf-8?B?KzNMRDRDcVAveWx1UmJ6MlppcVhjVTZNNkJveDBoWkN4alY4anlUdHMrN2ov?=
 =?utf-8?Q?Jd9owrhUoaGjlr+w=3D?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 74982772-32e2-4540-af1a-08de85dfdbb4
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB8946.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 17:49:24.5058
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: StIX3svKupBA4OYWHiPK/s9JumZRCmr5XLMkMlNsQ+V/hPe4FjkP4TXYlOTC1ydKJIt0nH64fbSFuZZxCpklG5NLjASCW8pC4ng0QxvlTtU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB6881

--------------ZnOiZ0itnUU4M7pRjwde1saL
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi all,
We have been performing analysis of the RTDS
scheduler code (xen/common/sched/rt.c) and identified several potential
issues that we would like to bring to the community's attention. We would
appreciate your feedback on whether these issues are considered worth
addressing, and if so, what the preferred approach would be.
Below is a summary of the findings. All references are to the current
upstream code.
1. Inconsistent validation in domain-wide vs per-vCPU parameter update
----------------------------------------------------------------------
In rt_dom_cntl(), the XEN_DOMCTL_SCHEDOP_putinfo path (domain-wide
parameter update) only validates:
if ( op->u.rtds.period == 0 || op->u.rtds.budget == 0 )
In contrast, the XEN_DOMCTL_SCHEDOP_putvcpuinfo path (per-vCPU update)
enforces stricter checks:
if ( period > RTDS_MAX_PERIOD || budget < RTDS_MIN_BUDGET ||
budget > period || period < RTDS_MIN_PERIOD )
This means the domain-wide path accepts configurations where budget
exceeds period, or where period/budget fall below the 10 us minimum that
the per-vCPU path enforces. Such parameters can lead to scheduling
overhead issues (very short periods) or over-allocation (budget > period).
Suggested fix: apply identical validation constraints on both paths, i.e.
add the same bounds checks (budget <= period, period >= RTDS_MIN_PERIOD,
budget >= RTDS_MIN_BUDGET, period <= RTDS_MAX_PERIOD) to the putinfo path.
Additionally, the putinfo path does not handle the extratime flag at all,
unlike the putvcpuinfo path.
2. Priority level overflow for extratime vCPUs
----------------------------------------------
In burn_budget(), when an extratime vCPU exhausts its budget:
svc->priority_level++;
svc->cur_budget = svc->budget;
The priority_level field is declared as `unsigned` (32-bit) and there is no
upper bound check before the increment. While rt_update_deadline() resets
priority_level to 0 at each period rollover, for a long-running extratime
vCPU that continuously exhausts its budget within a single period, the
counter could theoretically wrap from UINT_MAX to 0. Since priority_level 0
represents the highest scheduling priority, a wraparound would cause the
extratime vCPU to suddenly preempt vCPUs with active real-time reservations.
While this scenario requires an extreme number of budget exhaustion cycles
within a single period, it is a concern for long-running embedded or safety
systems that operate without reboot for extended durations.
Suggested fix: saturate priority_level at a safe maximum value (e.g.,
UINT_MAX - 1) instead of allowing unbounded increment.
3. Replenishment timer loss during CPU pool reconfiguration
-----------------------------------------------------------
When the last pCPU is removed from an RTDS CPU pool, move_repl_timer()
kills the replenishment timer via kill_timer(). When a pCPU is later
re-added, rt_switch_sched() re-initializes the timer object (if status
is TIMER_STATUS_killed) but does not re-arm it from the existing
replenishment queue. If the replq already contains pending entries, those
replenishments will not fire until some other event explicitly calls
set_timer(), potentially stalling all non-extratime vCPUs.
We believe this is actually a broader issue that goes beyond the RTDS
scheduler: the common cpupool infrastructure probably should not allow
a cpupool that has assigned vCPUs to lose all of its pCPUs. Preventing
such a state at the cpupool management level would address the root cause
for all schedulers, not just RTDS.
Suggested fix (RTDS-specific): when timer ownership is re-established
in rt_switch_sched(), re-arm the replenishment timer to the earliest
deadline in the replq if the queue is non-empty.
Suggested fix (common): the cpupool code should refuse to remove the
last pCPU from a cpupool that still has domains/vCPUs assigned to it,
returning an error instead. This would prevent the problematic state
from arising in the first place.
4. Missing scheduling notification on vCPU insertion
----------------------------------------------------
rt_unit_insert() inserts runnable units into the replenishment and run
queues but does not call runq_tickle(). In contrast, rt_unit_wake() and
rt_context_saved() both call runq_tickle() after runq_insert(). This
means a newly inserted vCPU with a higher priority (earlier deadline)
than currently running vCPUs will not be considered for execution until
the next natural scheduling event (timer, sleep, budget expiry), which
can delay scheduling by up to one full period.
Suggested fix: add a runq_tickle() call after the runq_insert() in
rt_unit_insert(), following the same pattern used in rt_unit_wake().
5. Stale scheduling flags on vCPU removal during context switch
---------------------------------------------------------------
rt_unit_remove() removes queue membership via q_remove()/replq_remove()
but does not clear the RTDS_delayed_runq_add or RTDS_scheduled flags.
If a vCPU is removed while it is being context-switched off a pCPU (i.e.,
RTDS_scheduled is set and RTDS_delayed_runq_add may be set),
rt_context_saved() will later clear RTDS_scheduled and, finding
RTDS_delayed_runq_add set, will re-insert the removed vCPU into the run
queue via runq_insert() + runq_tickle(). This results in a stale vCPU
reference on the scheduler's run queue, belonging to a domain that may be
in the process of destruction or migration.
Suggested fix: in rt_unit_remove(), explicitly clear RTDS_delayed_runq_add
and RTDS_scheduled flags after removing queue membership, so that
rt_context_saved() cannot re-insert a removed vCPU.
We would appreciate any feedback on these findings. We are happy to
prepare patches for any of the issues the community considers worth
fixing.
Best regards,
Oleksii Moisieiev


--------------ZnOiZ0itnUU4M7pRjwde1saL
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>
    <div style="color: #cccccc;background-color: #1f1f1f;font-family: 'Droid Sans Mono', monospace;font-weight: normal;font-size: 14px;line-height: 19px;white-space: pre;"><div>Hi all,</div>
<div>We have been performing analysis of the RTDS</div><div>scheduler code (xen/common/sched/rt.c) and identified several potential</div><div>issues that we would like to bring to the community's attention. We would</div><div>appreciate your feedback on whether these issues are considered worth</div><div>addressing, and if so, what the preferred approach would be.</div>
<div>Below is a summary of the findings. All references are to the current</div><div>upstream code.</div>

<div>1. Inconsistent validation in domain-wide vs per-vCPU parameter update</div><div>----------------------------------------------------------------------</div>
<div>In rt_dom_cntl(), the XEN_DOMCTL_SCHEDOP_putinfo path (domain-wide</div><div>parameter update) only validates:</div>
<div>    if ( op-&gt;u.rtds.period == 0 || op-&gt;u.rtds.budget == 0 )</div>
<div>In contrast, the XEN_DOMCTL_SCHEDOP_putvcpuinfo path (per-vCPU update)</div><div>enforces stricter checks:</div>
<div>    if ( period &gt; RTDS_MAX_PERIOD || budget &lt; RTDS_MIN_BUDGET ||</div><div>         budget &gt; period || period &lt; RTDS_MIN_PERIOD )</div>
<div>This means the domain-wide path accepts configurations where budget</div><div>exceeds period, or where period/budget fall below the 10 us minimum that</div><div>the per-vCPU path enforces. Such parameters can lead to scheduling</div><div>overhead issues (very short periods) or over-allocation (budget &gt; period).</div>
<div>Suggested fix: apply identical validation constraints on both paths, i.e.</div><div>add the same bounds checks (budget &lt;= period, period &gt;= RTDS_MIN_PERIOD,</div><div>budget &gt;= RTDS_MIN_BUDGET, period &lt;= RTDS_MAX_PERIOD) to the putinfo path.</div><div>Additionally, the putinfo path does not handle the extratime flag at all,</div><div>unlike the putvcpuinfo path.</div>

<div>2. Priority level overflow for extratime vCPUs</div><div>----------------------------------------------</div>
<div>In burn_budget(), when an extratime vCPU exhausts its budget:</div>
<div>    svc-&gt;priority_level++;</div><div>    svc-&gt;cur_budget = svc-&gt;budget;</div>
<div>The priority_level field is declared as `unsigned` (32-bit) and there is no</div><div>upper bound check before the increment. While rt_update_deadline() resets</div><div>priority_level to 0 at each period rollover, for a long-running extratime</div><div>vCPU that continuously exhausts its budget within a single period, the</div><div>counter could theoretically wrap from UINT_MAX to 0. Since priority_level 0</div><div>represents the highest scheduling priority, a wraparound would cause the</div><div>extratime vCPU to suddenly preempt vCPUs with active real-time reservations.</div>
<div>While this scenario requires an extreme number of budget exhaustion cycles</div><div>within a single period, it is a concern for long-running embedded or safety</div><div>systems that operate without reboot for extended durations.</div>
<div>Suggested fix: saturate priority_level at a safe maximum value (e.g.,</div><div>UINT_MAX - 1) instead of allowing unbounded increment.</div>
<div>3. Replenishment timer loss during CPU pool reconfiguration</div><div>-----------------------------------------------------------</div>
<div>When the last pCPU is removed from an RTDS CPU pool, move_repl_timer()</div><div>kills the replenishment timer via kill_timer(). When a pCPU is later</div><div>re-added, rt_switch_sched() re-initializes the timer object (if status</div><div>is TIMER_STATUS_killed) but does not re-arm it from the existing</div><div>replenishment queue. If the replq already contains pending entries, those</div><div>replenishments will not fire until some other event explicitly calls</div><div>set_timer(), potentially stalling all non-extratime vCPUs.</div>
<div>We believe this is actually a broader issue that goes beyond the RTDS</div><div>scheduler: the common cpupool infrastructure probably should not allow</div><div>a cpupool that has assigned vCPUs to lose all of its pCPUs. Preventing</div><div>such a state at the cpupool management level would address the root cause</div><div>for all schedulers, not just RTDS.</div>
<div>Suggested fix (RTDS-specific): when timer ownership is re-established</div><div>in rt_switch_sched(), re-arm the replenishment timer to the earliest</div><div>deadline in the replq if the queue is non-empty.</div>
<div>Suggested fix (common): the cpupool code should refuse to remove the</div><div>last pCPU from a cpupool that still has domains/vCPUs assigned to it,</div><div>returning an error instead. This would prevent the problematic state</div><div>from arising in the first place.</div>

<div>4. Missing scheduling notification on vCPU insertion</div><div>----------------------------------------------------</div>
<div>rt_unit_insert() inserts runnable units into the replenishment and run</div><div>queues but does not call runq_tickle(). In contrast, rt_unit_wake() and</div><div>rt_context_saved() both call runq_tickle() after runq_insert(). This</div><div>means a newly inserted vCPU with a higher priority (earlier deadline)</div><div>than currently running vCPUs will not be considered for execution until</div><div>the next natural scheduling event (timer, sleep, budget expiry), which</div><div>can delay scheduling by up to one full period.</div>
<div>Suggested fix: add a runq_tickle() call after the runq_insert() in</div><div>rt_unit_insert(), following the same pattern used in rt_unit_wake().</div>

<div>5. Stale scheduling flags on vCPU removal during context switch</div><div>---------------------------------------------------------------</div>
<div>rt_unit_remove() removes queue membership via q_remove()/replq_remove()</div><div>but does not clear the RTDS_delayed_runq_add or RTDS_scheduled flags.</div><div>If a vCPU is removed while it is being context-switched off a pCPU (i.e.,</div><div>RTDS_scheduled is set and RTDS_delayed_runq_add may be set),</div><div>rt_context_saved() will later clear RTDS_scheduled and, finding</div><div>RTDS_delayed_runq_add set, will re-insert the removed vCPU into the run</div><div>queue via runq_insert() + runq_tickle(). This results in a stale vCPU</div><div>reference on the scheduler's run queue, belonging to a domain that may be</div><div>in the process of destruction or migration.</div>
<div>Suggested fix: in rt_unit_remove(), explicitly clear RTDS_delayed_runq_add</div><div>and RTDS_scheduled flags after removing queue membership, so that</div><div>rt_context_saved() cannot re-insert a removed vCPU.</div>

<div>We would appreciate any feedback on these findings. We are happy to</div><div>prepare patches for any of the issues the community considers worth</div><div>fixing.</div>
<div>Best regards,</div><div>Oleksii Moisieiev</div>

</div>
    <p><br>
    </p>
  </body>
</html>

--------------ZnOiZ0itnUU4M7pRjwde1saL--


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 18:06:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 18:06:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257486.1551871 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Hl7-0001v1-14; Thu, 19 Mar 2026 18:06:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257486.1551871; Thu, 19 Mar 2026 18: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 1w3Hl6-0001uu-Uj; Thu, 19 Mar 2026 18:06:12 +0000
Received: by outflank-mailman (input) for mailman id 1257486;
 Thu, 19 Mar 2026 18: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=vYGS=BT=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1w3Hl5-0001uk-Q8
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 18:06:11 +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 4ce62b15-23be-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 19:06:07 +0100 (CET)
Received: from MN0P221CA0024.NAMP221.PROD.OUTLOOK.COM (2603:10b6:208:52a::24)
 by BY5PR12MB4098.namprd12.prod.outlook.com (2603:10b6:a03:205::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.9; Thu, 19 Mar
 2026 18:05:59 +0000
Received: from BL6PEPF0001AB51.namprd04.prod.outlook.com
 (2603:10b6:208:52a:cafe::8b) by MN0P221CA0024.outlook.office365.com
 (2603:10b6:208:52a::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.19 via Frontend Transport; Thu,
 19 Mar 2026 18:05:59 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BL6PEPF0001AB51.mail.protection.outlook.com (10.167.242.75) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9723.19 via Frontend Transport; Thu, 19 Mar 2026 18:05:59 +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, 19 Mar
 2026 13:05:53 -0500
Received: from [10.71.194.215] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 19 Mar 2026 13:05:52 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4ce62b15-23be-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AFfZjtN7Fjm1Xr6tzFSfFiYiU9DOoLS+MOwIuITqwC5XlgZCeNm1SKExjNFoVxo9do3wd2EQdMzUkRXWkv8/ekeYb9cLtcET4fgqrStKVXONQHPPvAOlLtlhrgnUAjhUrzG2+6RaaUg8D1Fkv9RQf29uH6AENZzALBmwknrurj8P8gXg1Bnk9FMrgvtH2CIGrbtL/mZolVVLcJOwJj6kj7wQzr5BroLayij1ZsQsm1pqMYeK5zx5vHsI8DYmHGt2Oz91SLtDxVyWmeceNkM1SKz/gddeW6PEAHogsid6JPfTU5PszZSCm7VBbRBhmkIzjbxL2ik6kjDL8ScMfp0r2w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OZANLZEI6DRiruIrvsX+EAhBp9NWBIl/2ewp6ajlTNs=;
 b=w36NgjtCOXzrn/zhwsox1HV6dVwzW6cvbUtTFXsZklDpPGuiVsBSodtFrYcxa6s7/UV3mfoITFV6JtO/yQLcbTq3UGFyLU9pSjhW6TUDjoJ8Mm8elY0hJynEYDC1g52+iMretZkc1E8VB96Yq2dDw+qf7kAM+7DNMMbRKUkuYYMOwzsE6d77rfo3qRs+0EYCe1XbxoscCql5SLkpL9idwuKCOcQ0cDwF31N6lBZZbh9M8uP7RglldOf9QsuDuzcn1dmwvWb0vZBSDiVAvNMt6fzFE1KFT0CUlegTyPVD0PLYANDH/6JSMzboaWSUAkONVKMw5XZoTfYOpy/6UqNijw==
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=OZANLZEI6DRiruIrvsX+EAhBp9NWBIl/2ewp6ajlTNs=;
 b=DSbMYDZjjYmYD7I9sEAvhorxKarxjVwYGo6dP1DTnmeZmxATxu2Dy43hrHo1EoTWrqurZMT6LIeu7SBB4SN5zVDNCUoOMOK3iFDs1G5STnuKXAXDcqFoWP1Vw72pifiGd/ulrSWTGi/l969Wt05kOBdlxU5Sa3JlRSZ7NwZlkzA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <74d1c137-22bb-4e35-85ee-10e84237dc06@amd.com>
Date: Thu, 19 Mar 2026 19:05:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] arm/mm: Fix resource handling in
 xenmem_add_to_physmap_one
To: Jan Beulich <jbeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, <xen-devel@lists.xenproject.org>
References: <20260304093923.14293-1-michal.orzel@amd.com>
 <639231a2-c8c4-43c8-84a2-b4797e88d9fb@suse.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <639231a2-c8c4-43c8-84a2-b4797e88d9fb@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB51:EE_|BY5PR12MB4098:EE_
X-MS-Office365-Filtering-Correlation-Id: 8f09b03f-a68f-4a44-ee3d-08de85e22d00
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700016|376014|1800799024|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	U+rYdZWW/FwwF1SZgnWSmyooQrhYRBuNa6hvCEebKsf8ReKAvM1bFB4uPFAR9iE6c9s26C7wVLYt5TCPuMUHjjRsEJqkMkHz65j5QV7CroDgVEcR16HWUDdPWJSuios3iyOgJazNhWteiCDBBn69bzdZeG5iVu+JhEdf71evaWyfCdV8zYsb90DtGp16CdbJ1+kZKZm9Eju7RqfEuTRxD/OsqONGJPVDWGmIRVw8hl90UEmTE0abgEJpKWVOmQ3cb9rBdA50gzBOCUUbE9zwr40N+LYUSKDTwJLEI4h1w8F6XSScjefhHdkbG373goAEIQK23kC95N6n6B5+F6x/0kea3gOgAr9LQY9a/ETVoFsxK8enJn4KA1cwp7zzXjzWlKoNqIKSNQs9dglxx0QcZdWgQEvDAnSniNGB80/cpR2mVpM2/KRds2oYKxOqlUCSsoZbJInc7zqBF0mGRJgI/p+4Mnvl7ghnG4LwZYMUlEk2wP2Prkplg65B37YrXezkIXOiFin4KU74DHyGX1IzhHy6ZWfaCRKZsl/Z0K2QjiC6MFoONyMKtAOdvg8Ay780whVFiv5SIlyohnVmGG+8t87KKXG96bdzYUc4PWuxh95tWlOS7mLhPyP7OsTdLfnkZmBtPYGNsExacugRMxGxWNn5b6s63Nek9ep1kESjlxs4N/nF4yFCkX63Bbfcrt4iaCYt0NakBsdadLBRodVkSARXE3IaKUPN4mgkwzQxQrv78SgOw1UFk/ROS2oHe5XVt7ok/RWTTUMeRG9T7zc0UA==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(376014)(1800799024)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	3JnxCJo0JHOQ9GfVGcB+UlXOofXhyKRbRP6PZ8APRj+GbScLt4deJqRVXEcceGZxiiH1zSxhfHALwEpDjb4+KbuEWZT2vQVGh0SpbRpyP81EyKU1rvOoHR+eh1/sKDfLBQ0nRUia/1znGNOeiK20c6TH7XxIPHPKsD40CRlMo4GBk0NnunXcYYn/yDuB/DsNvd6vcEWhGzHr1hB30znk/sSa0Acm0imAnXvDXScIog/m7Ce6aj/VJYRO19d4fYK/K7ZR3ul4APi+ZfAxYDC/cNxxRSVtjLFmHc+i9em4rHCMW8wxnXIfFOO1heo4cybXcVYK4NZWNHUcD0KolBYP/x4AgZQSpOMK80qGo+zKCJZ27DxuPrrVxUdcGR9Vg74FM6ImmI7NPC11yQQ/ZAQ+zcbgp/G/loVNf+DGGS8pYJFAglR917vYwoDuVc2VM1uz
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 18:05:59.6877
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8f09b03f-a68f-4a44-ee3d-08de85e22d00
X-MS-Exchange-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:
	BL6PEPF0001AB51.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4098



On 04/03/2026 11:43, Jan Beulich wrote:
> On 04.03.2026 10:39, Michal Orzel wrote:
>> @@ -237,13 +239,73 @@ int xenmem_add_to_physmap_one(
>>          break;
>>      }
>>      case XENMAPSPACE_dev_mmio:
>> -        rc = map_dev_mmio_page(d, gfn, _mfn(idx));
>> -        return rc;
>> +        if ( !iomem_access_permitted(d, idx, idx) )
>> +            return 0;
>> +
>> +        mfn = _mfn(idx);
>> +        t = p2m_mmio_direct_c;
>> +        break;
>>  
>>      default:
>>          return -ENOSYS;
>>      }
>>  
>> +    /*
>> +     * Release the old page reference if it was present.
>> +     *
>> +     * TODO: There are race conditions in this code due to multiple lock/unlock
>> +     * cycles:
>> +     *
>> +     * Race #1: Between checking the old mapping and removing it, another CPU
>> +     * could replace the mapping. We would then remove the wrong mapping.
>> +     *
>> +     * Race #2: Between removing the old mapping and inserting the new one,
>> +     * another CPU could insert a different mapping. We would then silently
>> +     * overwrite it.
> 
> Can't such races be abused in a security relevant way, e.g. causing leaks of
> some sort?
AFAICT (I though of a few scenarios), the race can only reproduce the pre-patch
behavior - pages leaked until domain destruction. After this patch, it only
happens if two vCPUs race on the same GFN.

> 
>> +     * For now, we accept these races as they require concurrent
>> +     * xenmem_add_to_physmap_one operations on the same GFN, which is not a
>> +     * normal usage pattern.
>> +     */
>> +    p2m_read_lock(p2m);
>> +    mfn_old = p2m_get_entry(p2m, gfn, &p2mt_old, NULL, NULL, NULL);
>> +    p2m_read_unlock(p2m);
>> +
>> +    if ( mfn_valid(mfn_old) && !mfn_eq(mfn, mfn_old) )
>> +    {
>> +        if ( is_special_page(mfn_to_page(mfn_old)) )
>> +        {
>> +            /* Just unmap, don't free */
>> +            p2m_write_lock(p2m);
>> +            rc = p2m_set_entry(p2m, gfn, 1, INVALID_MFN,
>> +                               p2m_invalid, p2m->default_access);
>> +            p2m_write_unlock(p2m);
>> +            if ( rc )
>> +                goto out;
>> +        }
>> +        else if ( p2m_is_mmio(p2mt_old) || p2m_is_grant(p2mt_old) )
>> +        {
>> +            /* Reject MMIO and grant replacements */
>> +            rc = -EPERM;
>> +            goto out;
>> +        }
>> +        else
>> +        {
>> +            /* Allow RAM and foreign - both have proper cleanup */
>> +            rc = guest_remove_page(d, gfn_x(gfn));
>> +            if ( rc )
>> +                goto out;
>> +        }
>> +    }
>> +    else if ( mfn_valid(mfn_old) )
>> +    {
>> +        /* Mapping already exists. Drop the references taken above */
>> +        if ( page != NULL )
>> +            put_page(page);
>> +
>> +        return 0;
> 
> Is this correct regardless of p2mt_old?
> 
>> +    }
> 
> !mfn_valid(mfn_old) doesn't imply there was no valid mapping. It could be an
> MMIO one with an MFN which simply has no associated struct page_info.
I'll address that in the v3. I also found that I cannot use guest_remove_page()
for foreign. Foreign pages have a cleanup in the insertion path through
p2m_set_entry.

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 18:22:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 18:22:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257499.1551881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3I1D-0004xM-EU; Thu, 19 Mar 2026 18:22:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257499.1551881; Thu, 19 Mar 2026 18: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 1w3I1D-0004xF-BH; Thu, 19 Mar 2026 18:22:51 +0000
Received: by outflank-mailman (input) for mailman id 1257499;
 Thu, 19 Mar 2026 18:22: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=mAdu=BT=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w3I1B-0004x9-Qw
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 18:22: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 a16fc5a2-23c0-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 19:22:48 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH7PR03MB7836.namprd03.prod.outlook.com (2603:10b6:610:24d::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.20; Thu, 19 Mar
 2026 18:22:40 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9723.019; Thu, 19 Mar 2026
 18:22: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: a16fc5a2-23c0-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pRqtG/wFvhK74Ju9qC2DB1maaA8ev5xyEnntAyrE6CXPO6IwHX3l5c5U8pcLddNRuu6mGoyG8LxTNvV1rbv7s4hHyVh8u9aFyWJCODNRxPo89ysqoOUxEGUIhFsaL3EPL4Qsx8KnujMU097zPrQMZqvfEGt0hZTY6N1ymh6T2UJilHDlynNYD4AgIIwgtU/kCAHRYiBLR+C/4o1gg4JYIUMZtNg2gBK42cxmCF7V4m6zUY2IUjxthv25rD9QVFmlTTWj8zmZTx3FNrZ1QCKNMRmwkTaPgv9KJhFuctlxa7UqUYGjrn9UvNQmU68U7NU7k2VCOvgIVghMetf7Wog2lg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sPPIzCjxW1GDjXGHKB+kaFx36wOT27dml5ySYJnRBYs=;
 b=vqbKoCSmqY56fcCYZ5569J4CGWwP1sgfqGPLaSMlwSE2B9URgDkGSKXAYyuR2KVEegtQEpO7LOm+PS5LICukLeiVE1Wk7wsgrsWWpBdSKMw5OUWARbOW4GP30W9hHesTomicvtuUCas5YBPzQpN88lwVcKBFvXCvCki136M0SIZfa02eLV8QZFY5iMP8sq94iCeCA7YOSybJV8c4f3jscd5WppsulbCy0H7qyVnSIF+pBNhHwCQcCA9oF/K6S2ySsU3V1fKCFwqx3arpSkn14UIG4JBp7YBDEjhiAx1q3WTvoAx+XonPDlzcy/HIJtqPaSv9sWgupuN34rs68vz5NA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sPPIzCjxW1GDjXGHKB+kaFx36wOT27dml5ySYJnRBYs=;
 b=aUff3OQv0zkUp1DN5p8F+MetSu8YNco/kuNmHIZGwEbqLDFh1wYbFHvLI35aeSHydhjX5liks2g7uIGlhTr5x4JRvAAsIBRlFHSdcjdxPvboaCJdYo4rVK3MLnj+ZVN4Mj1Bwcm8Kh7JZKCnK6ZjkGxcksJRVcsQu3KTJngbQRQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <2e49be28-ea70-4a81-b3ca-6c944ba37145@citrix.com>
Date: Thu, 19 Mar 2026 18:22:38 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v1 4/8] x86/traps: Remove lazy FPU support
To: Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
 <20260319132924.1469809-5-ross.lagerwall@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260319132924.1469809-5-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PA7P264CA0186.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:376::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_|CH7PR03MB7836:EE_
X-MS-Office365-Filtering-Correlation-Id: 44f65fe4-1e28-4fa4-a002-08de85e48228
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	CH7zcIMhHYofeDzcQFgy4AJf+Y4OVRM7+IB06gUmbi7+wuv49J8AlTMYgE/kFdPDIMH6rAW24lOPr3mCoZeDMy5xz0jBj4rlv8WCpgD2avFxdlSCQsupkLhuwxU9RsNJpCjTkSQTl/Ao69oo6YSl9S64rrITx4muc105lde6ifPK6z7QrVXnQaaPshwzCM/0m/EH2BbUYVghoG6DUCVgmD72MoRWsbpCyPKDUx5cliFFhbNZa03YR4qCjvQQUT4Ybv5xs/57GZRVsAhdMk/xdqHrBE5xkHaTaALfMkfJjX+QOMkfr4uBI3eQrwlQBa92B2U5fVO5knOHkeTD5Z2gU8QwEEdPqmPJCjqnmpa0cgxov8NYf268sXrpPA9dwT8a5+yVsz7Seo0hHKJBUu+ll8Oqrz/t33JUxQMmML7VqfL6ivGSlkNHYanC1/frZm3605CUBOCKzdgkc5plm1OwH4ed1ElTHFDakZ+i0hfPqeG/Akd/NlzOnqKYBwhKGyYgcGX5eV5+RUX5+PEpV8CgtARV8qSmbMAg4wg2VbUABMMLaXXjceRVr28bDMaQpppPwVcJx4XxFbCQ6LUqzkRHWdzslBH54go+zTjc9kZJxwJH7utWoQKd1NvteXGX29qLY9UMb0c//AfULgWVar3IYT+osnSfR1C7kg/n5FDVS0p81mkGFWCcNyLjQ/8bUcWUpooTu6/M5U4coN7yqQAM+DyAl4O5vMsjO1KNe8yCsYQ=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?a3JldGU1dmFlT3hlZE9WNVlTY2RUWFNxbXpYL3F4RzlhN2c1cGxaVGtOa1RN?=
 =?utf-8?B?UTViR2Z4Z0V6Q3g1Q0IyTCtHMHRDbmJ2ekphbEZIYU9DOHE3RWd5czNJbzFt?=
 =?utf-8?B?dlRPc3pVa09HVUdmVm5DZ2xjZVpFMThpVExQM3VmWEtHdDZNSkkvYnJBbG9v?=
 =?utf-8?B?N0RIeTdndVRKWWNIZGtNR3pweDk5eWVpemh5MW9lcGhJSC9iUEttWWo3aXRB?=
 =?utf-8?B?R1VWTnJHL1ZybFRnNUhwSVdiWndnOEwweDh3Z2Yvd3Z6SFNUeTJubkFlTnAz?=
 =?utf-8?B?VmxsV3dRY0s2UVFaTFRYNlo5MDB3YUt3WUQ0T0kxZll6VmkxZzN5cHpIMkVW?=
 =?utf-8?B?OUZMelFnR29rcElLZEJFNFUrS1JsR3JXRDlEUzFmRTZQc0ZJRUVHU0x5VEox?=
 =?utf-8?B?bE9MUFM5enhKeEg5NTRoVUM4WjdoL0dGeXY1T1BiVDJEd2NWYUZ6azd3ekRO?=
 =?utf-8?B?OS9NOHY3ZjRrOVQ4ZTNTd1lVbjJONlRNV3dFQVQveGwwMm9VSjhlS1NzcVVW?=
 =?utf-8?B?WFZqTUJiWWQ3MjNiRHJiQW1EOTR6Ny94Mi9sWkpOd3JzL0s0TmRBSTV3NFcw?=
 =?utf-8?B?N3psdnNvMEhaUExQeHB3ajBLaUxZb3JXMGZoVU5KbFY5YldkcXh2T3RYUDJ3?=
 =?utf-8?B?ekozaFlsZjFtcnJZaTV1dWJSYTNDQnlmcy83Y0YrU2U3RTFlU1liQ1FCL3Zs?=
 =?utf-8?B?MmRoMGtON2VndzBpZzdEenRtTjNmTktseEVhK2NnYVRtOXp3VWhuSThkQ2lz?=
 =?utf-8?B?Ums4QXdWY0NHRUMvSENoN1JiV05mdnlUanhJZ1EyQmp3TEUxeExZQVhsYWYz?=
 =?utf-8?B?RVc0Vzd6c29RaStDUGJvVmNMaHZldk54eEE0TWZlUG9qc1pDWVh4azdSdnVO?=
 =?utf-8?B?WStwZHYrbk5XY2pFb2U3anlicm5HNVgvSXZsbUs4SHNCODQvL1FBWW82NHdl?=
 =?utf-8?B?NFNYaWk0SFlmTFRocDljV21XOHVkVXYxNkhPc2wvTFlrTTJZdldxa1U2TlN4?=
 =?utf-8?B?M2VWcldud3lCV2Iwd2orTUJqMjZmdVJKcTIvOFNGa093K004ZDM5a3VTTVVF?=
 =?utf-8?B?ck5SdHZkOWhycFBJWm0vQUpCOWpSQ3g5ZE1kdmh6OTFxS1QxbWE3MUZLV3Uy?=
 =?utf-8?B?NTJwNCtycDVpMUxyczNlT3V5K0s5YnFJYlNoVnpQdzdMRGRHdVNzZVArUmc5?=
 =?utf-8?B?TnVjYjc0NTVQL1J6VGhOcVdkb1FyQ3piWHlvcVRSKzBnUDMxOGZKL2lZK1pG?=
 =?utf-8?B?cThsVWZzNDNWaFA1RFFSU2p3VzZHZjRVamxsWHRnb0Y3d2JEWStpd2FEZU1H?=
 =?utf-8?B?dTNXK3JTQTQ2cDdueVZwWWdBM0IzNTlaclJkaGVzSWl3dHZPZUpob1Q0M3ZB?=
 =?utf-8?B?S1dVUjJOalRHUHdtMytNWmZsSzRhZFFacndoVTZRT0lHVi9mSjhLUVlDclB0?=
 =?utf-8?B?NWtYSm50UFdKR1hGNlhTdXNxb3lpS3l4cmNZWmVhVWVtdWMzaWFjWGU0OXVl?=
 =?utf-8?B?Z0FlZzkrQTZPdmY3RExBWHkrZTZUZ3VoTWJlUmtiMm9Mb1NZdlJrVEI5a0FB?=
 =?utf-8?B?cXlFQ1VhSmtGNFk1WUY1bUxzMmp0ZURBNWRyYm9qWDlRZEpmUFh0dWJqeU1M?=
 =?utf-8?B?QkZENHk2VklCdVdoRHlJWFgzM2k3a1ZQMWc3dWM4TW5uUnJYNWdMekVVdDVU?=
 =?utf-8?B?WVg2Y2krdmhoR1J3Y1JIK2RYeUtkUndWSmRGWUdjWXkrRGhBK1R2Wlp2ZStr?=
 =?utf-8?B?NnVWVjlmNm81TEhEdmlYcEtJS3FxY0NGMDFLeDZNNUY3cEpoNHVpVk5UQlZM?=
 =?utf-8?B?c1RmeUszeFp0OStxanpDUTB6MmFMeUxJcHVKRE1xTi9nbVZkaHUyM1JQcjVn?=
 =?utf-8?B?aUkwK0dyYnlxbkRVeWp4Z0NRVTFjQW45WHBqckp3eW1kSzd5TkJ0VHlPaDFo?=
 =?utf-8?B?TVVQZFVLZ0g2VGg1dFRkOC9OVTI0dkhsRkw3K3pzeHNXY0RaajZZMm54bFRv?=
 =?utf-8?B?elorRjZseTFRRTAzMldpeGtZZTVqYkxKcU5UZkx1Vkh3WURBeU5yOTJKU0tw?=
 =?utf-8?B?Q0RqaXBnWFlOeFNGdGR3S1g1UE1SWHhEeHpkaDFJUUtqY2hMWkh5dEI4VVdK?=
 =?utf-8?B?YnlFNmNteTB6Zi9FRXU3NSt2endXMytqL0toVVY3SXZzaUpvYy91V2N2eEtV?=
 =?utf-8?B?V1YwOU1mUElEYk8wVHJ5Y3o0NzJYeTVBeHcwMXBnMU5mRkRzSlNVUm80OGVX?=
 =?utf-8?B?SnFRSFlmamNaMzVxVldPT2ZvWWl0ZDJFMXdlVkY4aHZ1SjZkMTl1WGxiNUgy?=
 =?utf-8?B?VERxNmxac0ZHa0tPaVVVWjdpaHhLdGNDNVRVQU5yeC9kSVQ5VDdzSG1vWnc5?=
 =?utf-8?Q?W4289NS/flzIQ8nU=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 44f65fe4-1e28-4fa4-a002-08de85e48228
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 18:22:41.6937
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: oF7htlI+jZ7d3jsPFQT9OG8csdU3Bbnex58iqBtSng8hugCTY+uN6jHkcM/MVmyX5s4b0Ty86YVC+8AqtfNIwG+yUkAG4otcSjx3HUSiwC4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH7PR03MB7836

On 19/03/2026 1:29 pm, Ross Lagerwall wrote:
> From: Wei Liu <wei.liu2@citrix.com>
>
> Remove lazy FPU support from the #DNA exception handler used by PV

It's the #NM exception handler.

The short name is "No Math[sic]", despite the long name being "Device
Not Available".

> guests since fully_eager_fpu is now always true.
>
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
> Signed-off-by: Wei Liu <wei.liu2@citrix.com>

These two tags need reversing.  Technically this says that Wei
reviewed/accepted the part of the patch that was your changes.

> diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
> index b6b119769722..fb1b94245850 100644
> --- a/xen/arch/x86/traps.c
> +++ b/xen/arch/x86/traps.c
> @@ -2045,15 +2045,17 @@ void asmlinkage do_device_not_available(struct cpu_user_regs *regs)
>      }
>  
>  #ifdef CONFIG_PV
> -    vcpu_restore_fpu_lazy(curr);
> +    BUG_ON(!(curr->arch.pv.ctrlreg[0] & X86_CR0_TS));

I'm not sure if this is safe.

Firstly, since Wei wrote the patch originally, a new source of #NM
exceptions has come into existence.  AMX shouldn't be enabled for VMs
yet, but this ought to be 

    if ( !... )
    {
        ASSERT_UNREACHABLE();
        domain_crash(...);
    }

to be less fatal.

Also, at this point in the series, cpu_init() still sets TS, as does
vcpu_save_fpu().  It's far from clear that TS is only set when the guest
wants it, although we have at least excluded the Xen paths by this point
in the handler.

> -    if ( curr->arch.pv.ctrlreg[0] & X86_CR0_TS )
> -    {
> -        pv_inject_hw_exception(X86_EXC_NM, X86_EVENT_NO_EC);
> -        curr->arch.pv.ctrlreg[0] &= ~X86_CR0_TS;
> -    }
> -    else
> -        TRACE_TIME(TRC_PV_MATH_STATE_RESTORE);
> +    /*
> +     * PV ABI QUIRK: Classic Xen kernels (2.6.18 and SLES 11 SP4's
> +     * 3.0) rely on Xen to clear TS. PVOPS kernels (3.0, 3.16 and 4.15
> +     * are checked) always clear TS themselves.
> +     */
> +    clts();

I think this wants wording differently.

"For better or worse, Xen's ABI with PV guests always clears TS on an
#NM exception.  Classic-xen Linux depends on this."

The behaviour of obsolete PVOps kernels isn't relevant to the ABI, and
now that Linux is strictly eager too, I doubt this statement is accurate
any more.

> +
> +    pv_inject_hw_exception(X86_EXC_NM, X86_EVENT_NO_EC);
> +    curr->arch.pv.ctrlreg[0] &= ~X86_CR0_TS;

Swap these two operations.  The optimiser will then be able to tailcall
pv_inject_hw_exception().

Clearing the guest TS ought to be tied to the clts() operation anyway.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 18:32:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 18:32:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257509.1551890 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3IAV-0006dG-8m; Thu, 19 Mar 2026 18:32:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257509.1551890; Thu, 19 Mar 2026 18:32:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3IAV-0006d9-5Z; Thu, 19 Mar 2026 18:32:27 +0000
Received: by outflank-mailman (input) for mailman id 1257509;
 Thu, 19 Mar 2026 18:32:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=iU77=BT=kernel.org=helgaas@srs-se1.protection.inumbo.net>)
 id 1w3IAT-0006d3-VI
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 18:32:25 +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 f8228e45-23c1-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 19:32:23 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 72EAF60053;
 Thu, 19 Mar 2026 18:32:21 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id F2336C19424;
 Thu, 19 Mar 2026 18:32:20 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f8228e45-23c1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1773945141;
	bh=q/AIFKBlYrlqgaIU+R+X2Kbm55lVUhw1nLQSCLmd6ew=;
	h=Date:From:To:Cc:Subject:In-Reply-To:From;
	b=SLfxJBQH3ZBwLVeaWFuXtr69z+ue66UBDBXapfmCGZU/5sePR0jM8ttItsExbkxXd
	 fat6HASgQmW8lTt+q9Fv/u0XJTf3d3wZAiJLqrgzYHG5GWO4lK+JttBOqJXt5pwhQF
	 w+6FlJPTdi3oKlG3m7NbTFgXf1aiA6jp7uCbZskZpkhz+sWDidVqJYVEsczF3/Cr0q
	 5HIA6+fCuzX4SwGeOuI+h7S9iLuLC57oeWrh6xVKPtDKceG2qv5E5rx2twVSmjZBNQ
	 hX57e6N1IjMEwU/bgDkP0m8XkKB2jG/ioYVncpqZsFKATtztVHzIe50BPghhEOmL2B
	 /aAbuSjpDjtvg==
Date: Thu, 19 Mar 2026 13:32:19 -0500
From: Bjorn Helgaas <helgaas@kernel.org>
To: Chengwen Feng <fengchengwen@huawei.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Huacai Chen <chenhuacai@kernel.org>,
	WANG Xuerui <kernel@xen0n.name>, Paul Walmsley <pjw@kernel.org>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>,
	Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Len Brown <lenb@kernel.org>, Sunil V L <sunilvl@ventanamicro.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Jonathan Cameron <jonathan.cameron@huawei.com>,
	Kees Cook <kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>,
	Sean Christopherson <seanjc@google.com>,
	Kai Huang <kai.huang@intel.com>,
	Tom Lendacky <thomas.lendacky@amd.com>,
	Thomas Huth <thuth@redhat.com>,
	Thorsten Blum <thorsten.blum@linux.dev>,
	Kevin Loughlin <kevinloughlin@google.com>,
	Zheyun Shen <szy0127@sjtu.edu.cn>,
	Peter Zijlstra <peterz@infradead.org>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>,
	Xin Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>,
	Sohil Mehta <sohil.mehta@intel.com>,
	Ilkka Koskinen <ilkka@os.amperecomputing.com>,
	Robin Murphy <robin.murphy@arm.com>,
	James Clark <james.clark@linaro.org>,
	Besar Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>,
	Wei Huang <wei.huang2@amd.com>,
	Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>,
	punit.agrawal@oss.qualcomm.com, guohanjun@huawei.com,
	suzuki.poulose@arm.com, ryan.roberts@arm.com,
	chenl311@chinatelecom.cn, masahiroy@kernel.org,
	wangyuquan1236@phytium.com.cn, anshuman.khandual@arm.com,
	heinrich.schuchardt@canonical.com, Eric.VanTassell@amd.com,
	wangzhou1@hisilicon.com, wanghuiqiang@huawei.com,
	liuyonglong@huawei.com, linux-pci@vger.kernel.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev,
	linux-riscv@lists.infradead.org, xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org, linux-perf-users@vger.kernel.org,
	stable@vger.kernel.org
Subject: Re: [PATCH v9 7/7] PCI/TPH: Fix get cpu steer-tag fail on ARM64
 platform
Message-ID: <20260319183219.GA519221@bhelgaas>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260319065735.45954-8-fengchengwen@huawei.com>

Let's make the subject a little more specific, e.g.,

  PCI/TPH: Pass ACPI Processor UID to Cache Locality _DSM

On Thu, Mar 19, 2026 at 02:57:35PM +0800, Chengwen Feng wrote:
> pcie_tph_get_cpu_st() is broken on ARM64:
> 1. pcie_tph_get_cpu_st() passes cpu_uid to the PCI ACPI DSM method.
>    cpu_uid should be the ACPI Processor UID [1].
> 2. In BNXT, pcie_tph_get_cpu_st() is passed a cpu_uid obtained via
>    cpumask_first(irq->cpu_mask) - the logical CPU ID of a CPU core,
>    generated and managed by kernel (e.g., [0,255] for a system  with 256
>    logical CPU cores).
> 3. On ARM64 platforms, ACPI assigns Processor UID to cores listed in the
>    MADT table, and this UID may not match the kernel's logical CPU ID.
>    When this occurs, the mismatch results in the wrong CPU steer-tag.
> 4. On AMD x86 the logical CPU ID is identical to the ACPI Processor UID
>    so the mismatch is not seen.
> 
> Resolution:
> 1. Use acpi_get_cpu_uid() in pcie_tph_get_cpu_st() to translate from
>    logical CPU ID to ACPI Processor UID needed for the DSM call.
> 2. Rename pcie_tpu_get_cpu_st() parameter from cpu_uid to cpu to
>    reflect that it is a logical CPU_ID.

And simplify this, e.g.,

  pcie_tph_get_cpu_st() uses the Query Cache Locality Features _DSM
  [1] to retrieve the TPH Steering Tag for memory associated with the
  CPU identified by its "cpu_uid" parameter, a Linux logical CPU ID.

  The _DSM requires a ACPI Processor UID, which pcie_tph_get_cpu_st()
  previously assumed was the same as the Linux logical CPU ID.  This
  is true on x86 but not on arm64, so pcie_tph_get_cpu_st() failed on
  arm64.

  Convert the Linux logical CPU ID to the ACPI Processor UID with
  acpi_get_cpu_uid() before passing it to the _DSM.

If there's a specific error message from BNXT or similar that is a
symptom of this problem, it'd be nice to include that.  Or if the
problem was just poor performance because the _DSM returned the wrong
Steering Tag, you could say something like:

  ... so pcie_tph_get_cpu_st() returned the wrong Steering Tag,
  resulting in poor network performance.

> [1] According to ECN_TPH-ST_Revision_20200924
>     (https://members.pcisig.com/wg/PCI-SIG/document/15470), the input
>     is defined as: "If the target is a processor, then this field
>     represents the ACPI Processor UID of the processor as specified in
>     the MADT. If the target is a processor container, then this field
>     represents the ACPI Processor UID of the processor container as
>     specified in the PPTT."
> 
> Fixes: d2e8a34876ce ("PCI/TPH: Add Steering Tag support")
> Cc: stable@vger.kernel.org
> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
> Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>

The patch looks good to me.  Thanks for all your work on this!

Reviewed-by: Bjorn Helgaas <bhelgaas@google.com>

> ---
>  Documentation/PCI/tph.rst |  4 ++--
>  drivers/pci/tph.c         | 16 +++++++++++-----
>  include/linux/pci-tph.h   |  4 ++--
>  3 files changed, 15 insertions(+), 9 deletions(-)
> 
> diff --git a/Documentation/PCI/tph.rst b/Documentation/PCI/tph.rst
> index e8993be64fd6..b6cf22b9bd90 100644
> --- a/Documentation/PCI/tph.rst
> +++ b/Documentation/PCI/tph.rst
> @@ -79,10 +79,10 @@ To retrieve a Steering Tag for a target memory associated with a specific
>  CPU, use the following function::
>  
>    int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type type,
> -                          unsigned int cpu_uid, u16 *tag);
> +                          unsigned int cpu, u16 *tag);
>  
>  The `type` argument is used to specify the memory type, either volatile
> -or persistent, of the target memory. The `cpu_uid` argument specifies the
> +or persistent, of the target memory. The `cpu` argument specifies the
>  CPU where the memory is associated to.
>  
>  After the ST value is retrieved, the device driver can use the following
> diff --git a/drivers/pci/tph.c b/drivers/pci/tph.c
> index ca4f97be7538..b67c9ad14bda 100644
> --- a/drivers/pci/tph.c
> +++ b/drivers/pci/tph.c
> @@ -236,21 +236,27 @@ static int write_tag_to_st_table(struct pci_dev *pdev, int index, u16 tag)
>   * with a specific CPU
>   * @pdev: PCI device
>   * @mem_type: target memory type (volatile or persistent RAM)
> - * @cpu_uid: associated CPU id
> + * @cpu: associated CPU id
>   * @tag: Steering Tag to be returned
>   *
>   * Return the Steering Tag for a target memory that is associated with a
> - * specific CPU as indicated by cpu_uid.
> + * specific CPU as indicated by cpu.
>   *
>   * Return: 0 if success, otherwise negative value (-errno)
>   */
>  int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type mem_type,
> -			unsigned int cpu_uid, u16 *tag)
> +			unsigned int cpu, u16 *tag)
>  {
>  #ifdef CONFIG_ACPI
>  	struct pci_dev *rp;
>  	acpi_handle rp_acpi_handle;
>  	union st_info info;
> +	u32 cpu_uid;
> +	int ret;
> +
> +	ret = acpi_get_cpu_uid(cpu, &cpu_uid);
> +	if (ret != 0)
> +		return ret;
>  
>  	rp = pcie_find_root_port(pdev);
>  	if (!rp || !rp->bus || !rp->bus->bridge)
> @@ -265,9 +271,9 @@ int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type mem_type,
>  
>  	*tag = tph_extract_tag(mem_type, pdev->tph_req_type, &info);
>  
> -	pci_dbg(pdev, "get steering tag: mem_type=%s, cpu_uid=%d, tag=%#04x\n",
> +	pci_dbg(pdev, "get steering tag: mem_type=%s, cpu=%d, tag=%#04x\n",
>  		(mem_type == TPH_MEM_TYPE_VM) ? "volatile" : "persistent",
> -		cpu_uid, *tag);
> +		cpu, *tag);
>  
>  	return 0;
>  #else
> diff --git a/include/linux/pci-tph.h b/include/linux/pci-tph.h
> index ba28140ce670..be68cd17f2f8 100644
> --- a/include/linux/pci-tph.h
> +++ b/include/linux/pci-tph.h
> @@ -25,7 +25,7 @@ int pcie_tph_set_st_entry(struct pci_dev *pdev,
>  			  unsigned int index, u16 tag);
>  int pcie_tph_get_cpu_st(struct pci_dev *dev,
>  			enum tph_mem_type mem_type,
> -			unsigned int cpu_uid, u16 *tag);
> +			unsigned int cpu, u16 *tag);
>  void pcie_disable_tph(struct pci_dev *pdev);
>  int pcie_enable_tph(struct pci_dev *pdev, int mode);
>  u16 pcie_tph_get_st_table_size(struct pci_dev *pdev);
> @@ -36,7 +36,7 @@ static inline int pcie_tph_set_st_entry(struct pci_dev *pdev,
>  { return -EINVAL; }
>  static inline int pcie_tph_get_cpu_st(struct pci_dev *dev,
>  				      enum tph_mem_type mem_type,
> -				      unsigned int cpu_uid, u16 *tag)
> +				      unsigned int cpu, u16 *tag)
>  { return -EINVAL; }
>  static inline void pcie_disable_tph(struct pci_dev *pdev) { }
>  static inline int pcie_enable_tph(struct pci_dev *pdev, int mode)
> -- 
> 2.17.1
> 


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 19:25:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 19:25:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257524.1551899 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Iz4-0004sg-0j; Thu, 19 Mar 2026 19:24:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257524.1551899; Thu, 19 Mar 2026 19:24:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Iz3-0004sZ-UP; Thu, 19 Mar 2026 19:24:41 +0000
Received: by outflank-mailman (input) for mailman id 1257524;
 Thu, 19 Mar 2026 19:24: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=mAdu=BT=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w3Iz1-0004sT-SB
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 19:24:39 +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 43da2881-23c9-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 20:24:37 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV5PR03MB8410.namprd03.prod.outlook.com (2603:10b6:408:35c::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.20; Thu, 19 Mar
 2026 19:24:32 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9723.019; Thu, 19 Mar 2026
 19:24: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: 43da2881-23c9-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OcYLPzlPNXai1X7CHKV6y94SS4mwqnUBt52ymx/PqXO/uNG3ooluQtqi031nzHaaC/nF2/5woLTS2pcrFqEAt8aPU/GLuOUKTo8fpxfhB150KoZ/jh0GuA/6ZmB3i6SZRbNkfTszf7GFiFM2SJjoqo/7DO7gc3nrLzt2DTRb6Afqw/xDzpo4noYhf6r3W/3I59JLNADLsxKjpP8mqYnu2vq/44+5x5/bUUazH5LlcPXIEZyoYesnynuRDXZoYxZ//0PwL8ECJDQ9PPB96xwsU13muuLO0LExCOsI8iCplZupGSbJqofZpjlxx3ReLF/3MzMDRhNPJjV5/iaAEbrpHg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bnfoQD1iOxBQgVgIwHYtmITVbhRM6K62GUJs5V3R8iI=;
 b=meE3YT7WC5GTQXNbv7ioK7T5Gaa1/A6Ue8ZkGb2edTCKCkyapm4k8d8bDFCrb39s43TzrBWC2CM/OezbX9J5o50zNGIAVkGsEvmT0HlnwRu0VJvKZrhvlu5ZcTtSChNFitPm2/dHYoWLwYI7W/rc4BWFEW10an7cMFaF/O5kGHPxejajd7O0Uppgjd5q3RqMNzOqWvkf8FqP5X5dmebMuEHusr3oWO9qXJQA5nWmdl4Txbp4pRtXzOUAexUEcVwBztvFakS58U2rqMZYhFMlUq2jePEaN8Vn2bMMVnn091ep5QCWpTq6p00DKiUdGZh18Q4kkrK9AkMk2r1VK2V+kQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bnfoQD1iOxBQgVgIwHYtmITVbhRM6K62GUJs5V3R8iI=;
 b=NVN9UKAMSvuljDB1CNtqsmRLDfIyt9U4dat1WEpLLyq/iDL2ZiZcdyMbk+nX7QzLv7tNwyQuF/A82FIaHJxRppyXuo6bA4y2kug9+1SoIzO/5FNlkOqEniZH06IRreSdBRTGmU8i1H8grGTRt0kAl3AKis7g/h5udWHPXA48SO8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <c8f1cb30-d883-44a3-90d1-f3f07bc59f4e@citrix.com>
Date: Thu, 19 Mar 2026 19:24:29 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH v1 5/8] x86: Remove fully_eager_fpu
To: Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
 <20260319132924.1469809-6-ross.lagerwall@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260319132924.1469809-6-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P265CA0139.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2c4::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_|LV5PR03MB8410:EE_
X-MS-Office365-Filtering-Correlation-Id: 0bf368ce-73b2-41ce-bdaa-08de85ed25d3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	WJo2dleQ1RYnynMExco5tP26SAUBmVXiaFw1272Y2E1gHOLxeN7zXth7OMu6GTJPHqtfaFn/0H3uT2VfGFDrzE29Q8lgeaqX6WzOlAUUu0hVKU00eWmBfyivZWlfddXcZEYqcW1T64oowF58w+wjnD5P36z+WhY82vs8nTFlCon2DyH4FiTG+Vo++n0bIdIcXJQ/1jFtbbzsRdnglX91cE/BYO9FTc4HSAVIwr88+k1s2NmSuGlf2nv9w9xPSE4QavrDDfTPpaefepDnbHvdTDFzD37L8gCqmSMeSQ1AWGMoQUUSfD7qQkqUKhlzfoIV0NLQIyBU8ZFw27q7T5CsGHw7skWvpinFt4FMcmrqlz/di+9be2CS20bht0Fj00Mwfr+zkdy+58VKvuNjnjlD9zRplewTRcREb/Cs+ORfGzahmdoSFHrV3fpHiv/w5ibyR7B8g33ywuTANXSVgq14JmUgezV8gkPESN6QgzQWxZcbzf2guEHIO7NkHP0IdTXxfbJvxj6i1rIXpT5T2kaRRGxBl0WeOSXlpBHAHmAsGqwPK/OAwcF2dJnr7IzLFvHVtTcKZKRxDkmbjQ9dml8VIK58bINw3ru/mdVrIV7PKOEIlx38syTSTR84EftIZPDVnpfktlPdXIsb9P1KY2lVuyqf+g5mtoTRAiSHNj7TlR/HfMg9hKejbfFq2gNXAj/jtP8xaTYlcfBlFv/NWZ8M5kiPIzUM7T9TsEzyppfDW0A=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cGE4VzBmb3dqaUd0a3JvY05kRUY5am5pUlQ1Q2IveFljZjB1czNkcGdEa1ow?=
 =?utf-8?B?VEQ4dWpZTFZMSmprN0MwSjJzQzI0d1hlU3A5bXVuUEJtRkhrSzdwVTZnSGth?=
 =?utf-8?B?SG1XcC9yMG53dysxWnBxYlk4ZDArMmtiaUJUeXcrMnJja2ZYdUNZK0tYTmdj?=
 =?utf-8?B?VkpSS212TVlKYW0rai9XNGJBUUQ5dWlJZytkdXVqVkphN3pDWHJseDV6SmhQ?=
 =?utf-8?B?WkhuaXA5YWQwd3VOdnJwVnFSZnZuSDA1Q0RIeFFoYnM2RWhJNlpsNXE5Mkpx?=
 =?utf-8?B?V0hTY0pYUURKbzMwL3BjK0MyYXIxeDRRWi9FQUdVQ2paYjlCNW9ObmpZMnJm?=
 =?utf-8?B?U005ME90OHp5dmlSZnNZRlpCWTE0UGIwZGg4YWRSZkhTYWU3cjdqWm5tK1J4?=
 =?utf-8?B?M1FBMVZYenNXU24xWmJ6SGVDVVA2QWNkMXZrSGtMenZLMFhpZkJTeXZBZ0xO?=
 =?utf-8?B?c1doei9QekdzVDBnenUvckdPSzVPVGpHVmlVUWUwdGtrRmloZVRHZmFMakxo?=
 =?utf-8?B?MktCQVpPWkRsYW9KdnNFd3VJSE1SUUlMb1ZWUGMyamh4TnBqSHZ2RjE3eEdL?=
 =?utf-8?B?dUMrYURtb05zOWU5SUx2b2JuSFJ1QWd0eEpjUHFnb2RWWFJUQThJQ3lEV2RP?=
 =?utf-8?B?QzhzOC9VQVIvb1FDbUtkRnJBWnliN0tLMjZlcDhqWFljQVJsZk1LQ3V5YVhR?=
 =?utf-8?B?MXlCSGhhZzRBOUlNT3p2Vm9nUnZFYzBwVWMwYnR6Nk55V3czWjNPQ2VlaWQv?=
 =?utf-8?B?VDY1eDYrRVRJU3RSenhTODVaMWUzc1ZCbkM2bU9CZnZIQisxcVNkOW5KU0Uv?=
 =?utf-8?B?OGdtWVN1ZXNpOHZ3QjVRcEtPZDNLWEVRVEFCMW1QSkN0QnNXWDNwRWw0TWY1?=
 =?utf-8?B?UWM5VGNMeE52NVZ1QjhvVnQyYjA1ZVF1a0dURXZabjB3TDlwNVFvTUJUbDlD?=
 =?utf-8?B?VTlYQTBvNzM2S2JWcEhvQjRLZmRIVmo3ajRxZzdESjhacXR2QVl6TW9uTVRS?=
 =?utf-8?B?Wm1UQWRlSWxKMFF6VWZMMHR4cElXS25uVW10WXoxandQVlZwQzY4Y3RrekpK?=
 =?utf-8?B?bVV3N1BUNmJ3TW91d1BtYUJNSDFaU3FvSkdPMUk5bDhjWHJGN1VheUtUbDRN?=
 =?utf-8?B?clNSM0R5NEh5MnJvazlucmhySS9hQ1J5RXA4cnBhczNQU1BOMDU1bXpndDh6?=
 =?utf-8?B?MGZvc05NZVpKVHBUdVd0OG9rK1FFVEt3QWZ0NHhDZjhIWlFrZzFGQ0FQZW5a?=
 =?utf-8?B?NURERkpycjlxYjdMcFlJSTVnc2FtNitTaFZGRFRueE1sOEkzd1JOS09VbUsz?=
 =?utf-8?B?RGV3S3BFVTZOc0JLM0FYOVZWV3pyTnZXTklUOUFObDM5NzIreUNHbnNERExw?=
 =?utf-8?B?WU1iM2luaytOK0VLV3Y4bWU5NGFwZkU0UEN0NmVCSWNzRW4xN2dDM3dVZTU3?=
 =?utf-8?B?TlU3OUYrUjdWZ3NyZ1REY0w3VDRNcHY4bGdjbFhKeDNCU3BjejEya1N1czFm?=
 =?utf-8?B?a0FNcUdaTXRaN2ppanl4OTJpOU1yMGdvYjlySkg1Y1dtdXcxZmRnUU1hWGlj?=
 =?utf-8?B?V1hUa1Q0VjJjUXplN1MzMXE4eExQbCtUempWQ29xWmYrKytxU29vallCVXRl?=
 =?utf-8?B?b0RCU055Qm5Qd0pRVUN6M3NxRzZ4S29rME5EbVNBZHNWRjFkZzJVanowRTRs?=
 =?utf-8?B?VlZNVUFjZm5BKzlIMUpVeHkydnNiM2NnQ3NJMi8xbStud04wR2ZxUW9CbzR3?=
 =?utf-8?B?bktIb01YeTY2dlhEZFNRazFLTWhOcUxtYkpzVWZjVTBIT2lpVWF0RGxiOGdo?=
 =?utf-8?B?ZVBvaDBFdk9QeE5FbWxLeWNvcXpZK1BXZEdHVWpPZlVHWUJHVDVSZWhzYzBU?=
 =?utf-8?B?L0VCL1dKUTRFQmRCNEpIazV6a2hDNzhYZGNKdGVmejRPTm1aYzc4WCs0SzRh?=
 =?utf-8?B?ZzlkTlQ3V2x1TUF2NFJaL0QyRWJrKzQ2Z2l4Z2NRSFRzV2RwckgzUlhaOFA2?=
 =?utf-8?B?VjEwNmZzOHh2bSt6WTFPM3oxdjdOTWVGYzNSWXhQVUdUYi93bC9penQzbHVE?=
 =?utf-8?B?MGhDSmFNNUtYT2UrZ2Y3VVM1QUJ5ZHNYZGdkMVJqMDFPVHl5alFXcE5UVThN?=
 =?utf-8?B?NHk5alRncGwzdllEVTIxV3hoeWNmZkNBTzN2YUt0WnNVREZocHBpVnRVV0pY?=
 =?utf-8?B?MjZqeEMvc2VqUEpMR0xpUWdoQ1lXaFBCWEVEVEorVzBvc2xUd3MwRGtYUDBw?=
 =?utf-8?B?U1NQeGRHdWxCZFBtTmRtczM2QXVEMmhUUzBzQS9mV2xtZk9GLy85VGI1ZUFu?=
 =?utf-8?B?Z0VzdHF4aXk2YlFueFI1ZzFvdXRZWGhvSW1JbkNFTUVvS2N6eHJrb3NCcTU4?=
 =?utf-8?Q?SEWTWOajfNQkuxY4=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0bf368ce-73b2-41ce-bdaa-08de85ed25d3
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 19:24:32.5083
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: DXJvlenMJa7XL5dcJCbH9immtsdpE2ipSziE6x2qLKn3YwEqSs7DE4UppkC1+04+fYTAxJtN8naFkDS2Qml3I28SRUU5+AGJm7zmxezhmiM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV5PR03MB8410

On 19/03/2026 1:29 pm, Ross Lagerwall wrote:
> Since fully_eager_fpu is always true, remove it and adjust the code
> accordingly. At the same time, rename vcpu_restore_fpu_nonlazy since it
> always does the full restore.
>
> No functional change intended.
>
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>

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


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 20:17:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 20:17:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257540.1551908 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Jni-0003d3-R2; Thu, 19 Mar 2026 20:17:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257540.1551908; Thu, 19 Mar 2026 20:17:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Jni-0003cv-Nu; Thu, 19 Mar 2026 20:17:02 +0000
Received: by outflank-mailman (input) for mailman id 1257540;
 Thu, 19 Mar 2026 20:17: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=S4vP=BT=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1w3Jni-0003cp-3t
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 20:17:02 +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 9382efdb-23d0-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 21:16:56 +0100 (CET)
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by DB3PR0302MB9181.eurprd03.prod.outlook.com (2603:10a6:10:43c::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Thu, 19 Mar
 2026 20:16:51 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%3]) with mapi id 15.20.9723.018; Thu, 19 Mar 2026
 20:16: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: 9382efdb-23d0-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZEjXOhJGtBETFSVX0pTwVwSD6VWhNgpCFnYBDB4Ucqw8v98NXLsQImaxwBwGYxTvqwNFTRo38k44N+jPkCUnamYNAPDzYRw7FGhGFxeh5bAiurb2eAms0ckV4PyhN8UvTk/l4lbqE66UYSErvyS3Uq3QAnby7uVnOgA7eF78stmUVJQ5wjTU4HbU/VrNWh9kctMPjryQIRTf+1oOsT4wKD6zLF0lsFl0pknBqPYTnNcXfm/Mv2oohl/3zdvUKpW95w4w9u46ZPHj2xFgMh5sJ0pF8um9ZIb0Nc0W8U2rvGoCvv5g+jzXvUngFJlmzjwuzDP8Ud+DZKqlD0VBJ3Vuuw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/k9tEF6C75E8SkaNxV+B7vlz3q9AhZ/oiyzliJ9t7c4=;
 b=dSUmLKLyAUnF0FfOt5GrrsgdzpV1xnW9a5TUN35HWJwu9BeModeeR3d7VT94lrQRiivIIup2yOiD24OBEvzsCSlwDUtR+w5m/zGJG5+N+lL6SY5LpJDJYm0TjpEHvM2J/ScZhTs6+uVAnDN5xxlV4FJvOvXFrKVN245BX2i3roxil7nUugylFLAzsPAlh1fQFtz1oX38ijV0YkkOj0wpiZq/nglzlGIFzZ8QcerJzyjzihLVD4N6FEj5XrRdQoKGI3JcWf9lMHfGsBq5WD+vaWnE/vf2jqsQdwr3MK8DVOpxyAqUOfbfMHWt0JYJcyAcXPsW3jr3bIQ5LT2+hu0VEg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/k9tEF6C75E8SkaNxV+B7vlz3q9AhZ/oiyzliJ9t7c4=;
 b=j8IbL/SV/PYSApngFw27tcqkKvv5Oer5l7jjeCf+eLWeoPYv3ktAiq/YkLiKVccMkFsvh8vl0zbluPPewADOoNiAe1gvv/CjNTTwvorx/0vwBN5mTSTU9on+TpB672z0g0egcjD2pCWgLoxM42xw2P9nvN/ljcl6gI6UtrfAsjZZvmG14gcP8aHiAWV+hPC7707/umXSRw0UVzrqjrdDhL7oC9k2Wa7hAgZQ9btzQk3kEaUaAreoEBGH7j0KrR3/xoeyVgJskLqsCxKYTfAGz0cAwSMuOc9Wiv+shvC8JwfLnnltJAwSJ+Redm0597LHVx/t1MKEvH41m+K4cialyQ==
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>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Jens Wiklander <jens.wiklander@linaro.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: [PATCH] arm/tee: rename variable to address MISRA C Rule 5.3
Thread-Topic: [PATCH] arm/tee: rename variable to address MISRA C Rule 5.3
Thread-Index: AQHct91SP+heAl5ESUaIOkxQ7Vfzeg==
Date: Thu, 19 Mar 2026 20:16:51 +0000
Message-ID:
 <e7fd1f75146e7faa520414c4ffc1bd9572914039.1773951370.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_|DB3PR0302MB9181:EE_
x-ms-office365-filtering-correlation-id: fa0526a1-f27e-405e-a46d-08de85f47526
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|376014|366016|1800799024|38070700021|56012099003|18002099003;
x-microsoft-antispam-message-info:
 6243pW5zlkZ9Xs5skCWIt7heLV4N9IDgVLIDRAjjoWFnkeNuRx54mmOLmcCz0JPaazrq3ulzVgHiNAbK8indbjH2Or4qf7Fr5grcZql/APJY1WP38qa/rTxL4tDqXlYE1/BcElMJSJbztP/N9c8I8HZOade++HqlqevTZHoja3RFLGaSFi6yl+nb+tnQuawt+HG9Jccn97Jmt6RalqZUBWMh3s8Jczv1xvr8ZnNT2oIoK72mDxs6tnGWGTfs1G01Of1IHR97+BykYFJJTUhqufzZjAQaROvqVCV/zU/pRsJ8dHMTSSvu7RPhugWrQxAo04iBot9/dwxW0sG3GwevDGUFtQzZe6jmQOMlo2IO+r/UfwGnWIn5shDYACOfm4V0YM/Vn40PeCdjC6fu67lVXlY1efjfna5C7wnMPwGcjt6nvOWPOEL+Y+9/gH+XAitIAp1XYJPx9t5X7Wc4rWo6L7Ag4IC5F/cI7RDrI2jnHZ1JJcvwuJ/czMkXF3CWKh35VKncdReVZDme7mZsF30P3blFeE/E6+JkoMd40Cz3vcLpbPQm/rrZ5u1CUy5WSWPWgbmYqeGsyuX/cX92qw0UK7OztZEKJqcvNT35DPlr8lmBm8O/01HzRzMNL3GcaLmu6Pe8hWia1o8QqwZGEPSYuObHNGe4hWNSIGmSHRo/dAzyt/tzPKcMS1y4U9z3x4fPIm6nv8gUc/GYaA1KdkKdTh0wpCp9kwugP+dWqpba8axh8B0yD8IiSh+Q5ViKf2b2lVi3grg7yf+h52iq6PlSjHITCkUVZmauAYHq6NQGILE=
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)(56012099003)(18002099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?JQnTm8G6AwdOkervvl9GOK5KkyCA9/QFf4M5P9Oi+cUOtlOBUN4TTU9aba?=
 =?iso-8859-1?Q?Z3MJGLvlqVT4Xz+c9rJgKMpYS6166Lo4LecjmrEXoMsAauLqkF40pS/st+?=
 =?iso-8859-1?Q?4o76SBZ/EmCg7ZCpT/C/qoD9TlDsWysy+0lv+NK4rUbedfUT1IsSJUE97a?=
 =?iso-8859-1?Q?soDQSgbS/ApgXRttSFFTK/nyGt7LbmRMJDNWkm/uzA34HzZNt3EjqiNfGa?=
 =?iso-8859-1?Q?UT8jqdMG9LImVRD+B0PHA6SC5/TA6z5aHU+HcGCh0gf1XxpDwvlAIRqrh1?=
 =?iso-8859-1?Q?ai+RpIG9rq6cJb7XPpAxpNvspC45yUa+MfB1ybtK+Npw4BpWO9HdaH+uh8?=
 =?iso-8859-1?Q?OyLlLdqZkp8hbiDw1IIx+edAPU+p5VGe81bwbCW/jvddltcf05gtYAcZ86?=
 =?iso-8859-1?Q?TUzk0t343itnmLmzGx5hYPMPcIDRtTfiJ9bRAclEeC9K6CCXis+eUu3MEN?=
 =?iso-8859-1?Q?Wk38XcMyXOc9JMTINwse6XOOGdZV/XtpT2xJc+WLOS0DeM0A0McuXSp2iu?=
 =?iso-8859-1?Q?6aL1HlK5DzIryZuXigfiL1Y//J9UI7IBnkaWoSfjhn3DQe+8TyfnTE6Ld6?=
 =?iso-8859-1?Q?94OxbQEmnhfYATKFBRcAZCfqXB2pptibQv6qVcZRbhgrW4t1f0kUMADjoB?=
 =?iso-8859-1?Q?5E+03s4tD0obp9Kkdalcq2CDtrq+UVM9AYDW3/9RR0IME31FtRtvL3+DqG?=
 =?iso-8859-1?Q?8hVx03fXauOyWVOE+VPyLXmGR3n8r61Zw5cOtiazENRNozNzk0CsZHBku9?=
 =?iso-8859-1?Q?wsGOWG5nYFw52AchAfAocHIK5SbU4RVYwiACKDQr1YTgs92Fm8h08GUdXF?=
 =?iso-8859-1?Q?PdI3R7qX6VvbMi29BwAe6DnAjXWW5baJMbqsMdhQbk0+mGkGwJJVf0kaLF?=
 =?iso-8859-1?Q?IGpnSVUGiONY/ffzJH6V2YrHPBn6XotzJcfJTh11O9o4XtRUv5CHtdQOMU?=
 =?iso-8859-1?Q?cq3tCgAX3h41rxccT8FqAjOb3sy7o1nJyhUQtw6wuU7BZeXCt8MMGpt3R9?=
 =?iso-8859-1?Q?cqUmxyRcoyG/Qx2o0R/bHISFuQBdtva7x6pFMU5XX7Ty21bCUvGXHfm4sC?=
 =?iso-8859-1?Q?qNDpDLed/A22sA0ZbVNzamc0u9tbxXV+BfHQIwIjN+9QXrsMAdYBgOyOSj?=
 =?iso-8859-1?Q?kNeNLViArWUjz8MVRWc/qqXVGCA88eIvkrLIOcEAHiq1NvjCbfJdba7xbq?=
 =?iso-8859-1?Q?k7Bji4Ucpaa/kpjOcHSe3DcYbqwCzjN0Upz0knhWoZ8d91Y0QEyL0f0HTM?=
 =?iso-8859-1?Q?kvHDdb0JSSIYvz2dmxNGpE0SL7NpIfDfLxP/q+UpW33HvIKMNH0xP/E2xE?=
 =?iso-8859-1?Q?YM7zbv9a1EHYxdprYwdCIKtH9EsAzk4lrYyfw++hiDw/yNGJEYGpcgoOD4?=
 =?iso-8859-1?Q?nVtoyomZIvvUVF8GlXemgdqZGwTU05MH2/A1BS6uWBTXuk3XycVTe1hkfC?=
 =?iso-8859-1?Q?3zm82ciiCkk+xWuU6cOXr4Nt1XEAt/1xdMVPqk8PsA3adwDvXIIIoBWCFk?=
 =?iso-8859-1?Q?1b9smiED+jHutpSHlJLUjzJXPuAezWIDprKwlgu+9XjA6NdKryRauz/k/3?=
 =?iso-8859-1?Q?8WQA+3mzw3TfO45tq+5g78s1Za4zNA4NZASYFSsAeq7p0dMfmCwepMIRHk?=
 =?iso-8859-1?Q?N5eCTIBknGWIeVRjJUDwEoNgxG6cUS2C3xgWzd79iOdAlbYehQtD+x4i7L?=
 =?iso-8859-1?Q?qy4FaeymWutOQJ0QgD2ghG/X3HLRYXHVYrSO5X7U7B24eXAaiW7Dq2PYy0?=
 =?iso-8859-1?Q?HEmGxCtXvKttBblexTfDvx+T8Nnn+Yri1Co8ln5Nce8tL/sysFcGMqi/zX?=
 =?iso-8859-1?Q?JjGIgXY2iaE1nEGt5RdTkehbuoHXag0=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: fa0526a1-f27e-405e-a46d-08de85f47526
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Mar 2026 20:16:51.7114
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: f0UQxaSwpjkC/kskMu2DJepl4TGqUOSiyvQX9HHbNzaDnHRWdPYuJDvcEm3nQ5H8cJNDpVp3WTQc5VPxCfqfjDRxm/uX1vFDSrW/9v+LTbU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0302MB9181

The local variable 'ffa_vm_count' shadows the global variable, declared
in 'xen/arch/arm/tee/ffa_private.h', therefore it is renamed
'ffa_vm2vm_count'.

No functional change.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
 xen/arch/arm/tee/ffa_partinfo.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinf=
o.c
index fdb03dae9a..473507ca3a 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -265,7 +265,7 @@ void ffa_handle_partition_info_get(struct cpu_user_regs=
 *regs)
     uint32_t dst_size =3D 0;
     size_t buf_size;
     void *dst_buf, *end_buf;
-    uint32_t ffa_vm_count =3D 0, ffa_sp_count =3D 0;
+    uint32_t ffa_vm2vm_count =3D 0, ffa_sp_count =3D 0;
=20
     ffa_uuid_set(&uuid,
              get_user_reg(regs, 1),
@@ -310,7 +310,7 @@ void ffa_handle_partition_info_get(struct cpu_user_regs=
 *regs)
          */
         if ( ffa_uuid_is_nil(uuid) )
         {
-            ffa_vm_count =3D get_ffa_vm_count();
+            ffa_vm2vm_count =3D get_ffa_vm_count();
=20
             /*
              * Workaround for Linux FF-A Driver not accepting to have its =
own
@@ -320,7 +320,7 @@ void ffa_handle_partition_info_get(struct cpu_user_regs=
 *regs)
              * the requester endpoint information should be included or no=
t
              */
             if ( ACCESS_ONCE(ctx->guest_vers) < FFA_VERSION_1_2 )
-                ffa_vm_count -=3D 1;
+                ffa_vm2vm_count -=3D 1;
         }
=20
         goto out;
@@ -355,7 +355,7 @@ void ffa_handle_partition_info_get(struct cpu_user_regs=
 *regs)
             goto out_rx_release;
     }
=20
-    ret =3D ffa_get_vm_partinfo(uuid, &ffa_vm_count, &dst_buf, end_buf,
+    ret =3D ffa_get_vm_partinfo(uuid, &ffa_vm2vm_count, &dst_buf, end_buf,
                               dst_size);
=20
 out_rx_release:
@@ -370,7 +370,7 @@ out:
         if ( flags || ACCESS_ONCE(ctx->guest_vers) =3D=3D FFA_VERSION_1_0 =
)
             dst_size =3D 0;
=20
-        ffa_set_regs_success(regs, ffa_sp_count + ffa_vm_count, dst_size);
+        ffa_set_regs_success(regs, ffa_sp_count + ffa_vm2vm_count, dst_siz=
e);
     }
 }
=20
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 20:32:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 20:32:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257550.1551917 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3K24-0006Kl-22; Thu, 19 Mar 2026 20:31:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257550.1551917; Thu, 19 Mar 2026 20: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 1w3K23-0006Ke-VU; Thu, 19 Mar 2026 20:31:51 +0000
Received: by outflank-mailman (input) for mailman id 1257550;
 Thu, 19 Mar 2026 20: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=S4vP=BT=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1w3K23-0006KY-8O
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 20:31:51 +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 a4c56806-23d2-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 21:31:44 +0100 (CET)
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by PAWPR03MB9761.eurprd03.prod.outlook.com (2603:10a6:102:2e4::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.22; Thu, 19 Mar
 2026 20:31:39 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%3]) with mapi id 15.20.9723.018; Thu, 19 Mar 2026
 20:31: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: a4c56806-23d2-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mNeK/Vqj1s+QPZpmICNW3uEitBet+GxBNgPLZgyrtz6Ozz48Rbrrim4Telv0CMYDzmn1WIn632Ho+/W5w25R2XDH6QU6nC/fZFnMQiBcfo+USGg0TuoC5LcaHpXNr+W1/xLw8aUSftrGe/GbXVac+fLj7wx+ga0U/CINiTslys7Ycvyb+OpnUUEj2nHQUo2iRQV9oSki9j/3/f+6jT2RguyOasufmCkDp3QQSKju7a+eQs0L7jRF/8WuYpsYseThOOQmnI4csmrzWCWWFZjMGwlmk5cuif/LTITKt6s3FZebzzydD2E55O1/+MQg8ln9716Gz1T7IM59zGxuWWzBXg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SaxsfFLqPWY8Z0990llkc2YeoFB0uS8/8dnWO7VyWpM=;
 b=DUM6ZuSB0I5upJFIiIPzB75LJgJK0o5duL7Z9fOdJwJSu/J1tGIO6vkbpIqZ5fXU/5jaryEJz9/pO28J0yHSrl+PMaOz1Wb5GipsSkcY6GWCfxoa/CvQV2Pi0hk8u2OoSxgNduWf2KU30Ku2jsiGwo7gTv6kL3J5W8ZVkHCP1sIfWidrJzQiGnQHNTqD5BWaVzMGP4bBiiXvBYWkRNcgDcAr2dh8H/FuMwkflypvB++YhPOcoAY/hMgVTsh7IAXZC0t1Fp5bGOG2TLy7fMcOYTLzUzYRhgx+F6mp0b9xz9T913RHkNGWKyYjrEhQ2klomlbCHjzTM4p10mXKvV4f8w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SaxsfFLqPWY8Z0990llkc2YeoFB0uS8/8dnWO7VyWpM=;
 b=EQeolzz9Y41VXl8OyvJmdiehnxIZQRD0RM1tccF83g4lzg3S8vkqiUKX4Kv+8KdiBG03GQhGhcxQTOBhjWSNCy24eonk5n1JAi/nTRSzKgYQD/KaimeGijyO/XRbBFrIyFcr3iFbuaAPC4HIbjWzkVM+J5RSbwHYpEsiad/6Zkk+0RcUH9JoYbJ4oltFr2WyU7snBDVgR26B/aSeWsn1PvlL/oyA34MZZcjX1UCCQP2Fuw5LO60xulW/0lhHiKNvOVDqfPQzOW0Y21riqgYFw9e2WaVRGVkLQOKzNvOyGs5r1xu+NcHLVMhH/FyzcHEhl1EgAcmYzrkEyozjW+0QgA==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] xen/cache-col: address MISRA C Rule 5.3
Thread-Topic: [PATCH] xen/cache-col: address MISRA C Rule 5.3
Thread-Index: AQHct99kwxPxzBz4DUGcLo60qBaCjA==
Date: Thu, 19 Mar 2026 20:31:39 +0000
Message-ID:
 <ded7e2aeecd18109bf2fde5cff0d356932f08e28.1773952245.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_|PAWPR03MB9761:EE_
x-ms-office365-filtering-correlation-id: 4b1cc597-3c15-42e8-0ef6-08de85f6869a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|42112799006|376014|38070700021|18002099003|56012099003;
x-microsoft-antispam-message-info:
 u3roHqd6XG4YNNTvhhed/5f4j7BQYuCKTDP1LhizfAq6vdAoGtCYT7yBEzmEpUoOwSSJbNThKwMOZZqwYIX9t6oYJpU8YiDdKwCSrQzdIInxCowu1hLTptVtA7vyk+m/3wgawn5a5pevFV51yhwpRlGsht1UDg6xhPg827EdsH+ZZdsq7mywu7ONpCfLZn9vVN/lpJxis43G7P7y2tiWP32EOmurRGDL7MrSjuQXOzNImdfjuLaDfqvk1q/cZINyZeymQ0xTr4/i2hAiG6qbu+6vfYEbODfUZpgLocV2p50CM8GKmFo2gBHdGMCExS5gQbvhTOk7emg7y31Cy/TOr58xAwbFPs/EPWUePSV//LlZ6pOirSWbWgc7tYftH9F3zlejCr+tv08AeQ99mP7oDtsilZGMJ6sJNEA9Gb9e4zZ4hJBWw+CRb/vYZ+nxYaTZuTaWLBN60BViTvk/QBTbZY+i3fRjhIAtibJW+pobfkHyzaA4uPHFQtlRVg6ZU6OkHoHkjwEINqYzNycJdEo1gssS4Uo2ivLrVKOIHTStJTazh5q+E3aO/uWbeVpBcwPTqupP3ykevjeeS6R8J07NiXzsE5uEX09YgG0ttBR51Oc2y9p4H06KK90tM8Ur7M2VeBdPRZdQSmDfneQfAZXHDxWX04Ac2mVUwgOf/w4rVefwtIHWoO12eixZnMNWXZiu5OOjo18jBBvCGhVKQoDkCB05ZpeksHEdTky1DONFjCrQZicfLUyX1vIRXasQyEsRwcZ+QSHH3PjSdHFkcITBq01c+ni1NRABEFFmXhv/ZHw=
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)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?M2VwHVbYkpJ41TjLotNQpXMm8X22/okbC26UpFPB/ckR0Y1f5CTiEn5Kao?=
 =?iso-8859-1?Q?p6n4G7kndOo9tpKe1FfmXDggqhqrVyKtvkrKw/5xONmwJMDCg5gddl383E?=
 =?iso-8859-1?Q?Z1bJfvkkdFxWF5zjsjtgqLXtiqHq/XgIbDnwO9HUMUZA1ti645o3xsW/NE?=
 =?iso-8859-1?Q?CDK4B4DdW1z6trU4WAtnvfd5W/JbbtkWl3DulEf2LCf1thSitj9WMS7d0z?=
 =?iso-8859-1?Q?nyTbCjy3oF0BXsV2SBiDTA0Wsb8qB/3wpxEkWufznol9swix9Rhx5DS4TS?=
 =?iso-8859-1?Q?8SzsbpOMqj3wUPxUJZQq2mR5pZHM7gXhl6rrWiBWDO8y5EMRFCFBEaonfG?=
 =?iso-8859-1?Q?uaERVrIiQbvbH5cqycCFF/CGIdiepEL5LjQ705aaSY4GBiIjPYZABoziDZ?=
 =?iso-8859-1?Q?vyXGmzaqOmpahD2DVTYuOaAJPGgCKfQ98T+OOAPBFH5QQR63kRvaLjouFH?=
 =?iso-8859-1?Q?If3BSrj7g4WRXFZxgoxZb7FR7utWW0yGJCjn3UiEVuDvMOygslp+vI62Eb?=
 =?iso-8859-1?Q?YeHFArIMYL2Kr3er+KaR7cuCfwDBY5+dxStwAScj68+7srTd9k9IhK2+v2?=
 =?iso-8859-1?Q?8ZKjWCfSSzmsqibaitfwMb6To1d7+aohFHhr1kBIEApMd2dk7izgLY5Tgh?=
 =?iso-8859-1?Q?lqt5Td0FWzlAB2Wlpc6ivDmMsi4Y4VtPTiVDXFy6Z5s5YmeXs2jJJX3FJk?=
 =?iso-8859-1?Q?RpFl0hi7ZyUJiGvr36meNXEdv7QfnjUIDIsNDraOGC3IP08KhCcCatpzcF?=
 =?iso-8859-1?Q?fyfLw7KSoh+2VcY7SgvcCL17JhCVKTNBPr4fXvzaw0x9Tjz4f0ba4m9zLe?=
 =?iso-8859-1?Q?y9IXJ2ceyEI0LVw2MylgNg7tK7r69k3VLfhoF6aAK5PW5InW4VZw6D/Uau?=
 =?iso-8859-1?Q?B2eWphP34J/RPt3VshH4boJF6LH7GoWw4FkV+6d5zfhzrTgcidMW7YCnZM?=
 =?iso-8859-1?Q?YGURZlutPNGvAOiMLRhQCpiTGbI3s+i54eKS+f+tOTtdisVXSqa+d93lXI?=
 =?iso-8859-1?Q?CF558APx3zwmm3wah7R4c6zaM8I/3HWkw3kvH1Uy7QE9fkdgrlwzA521xY?=
 =?iso-8859-1?Q?HbAq6zMbC6gENYrSOrMmKETfwjfB13UuYlyynQurMBmxH4IUrjp5mpoBYo?=
 =?iso-8859-1?Q?gvg5EDQnkchS6HvWPtgeLH/qVXK6lkAa3xXw8njAjzfTyjc/fRlkpuiZ20?=
 =?iso-8859-1?Q?4OKfrst2tyguZYVfOYP7xlYHZ7PJEPtE7gwC3wIIf3EzH+r/j6/qLtNLtU?=
 =?iso-8859-1?Q?ydknHaCXhTtU4Gjbr/e51mB2DmF+S6thNqyafZrAsWpgWcyFDxiMmfY5AA?=
 =?iso-8859-1?Q?euAvlBtY8y5XHk1t++3WGTM4E0MIiQBgAWil2DLKuRpK6t85AverRxd2LW?=
 =?iso-8859-1?Q?OfknF/zqo1R6DZgybJPCx1l4sMFIvI28BX6//HemBIK7w/HnWaJdCLeeQR?=
 =?iso-8859-1?Q?fcVcu6g4cziBuFaz87tMa2qMraH6gz6BnzplIGOP4CfqxAyFVuEoT1zbyJ?=
 =?iso-8859-1?Q?ZHfkDwoHii6rJH7mXdULIIZvMDhVRbuQw6k4YmJEJmP4Rnc7iEtU0c1lGn?=
 =?iso-8859-1?Q?UR4zFjMj8NQwoAPOkYzMKXsuoFCAefyKJhA+IGLdiO+JUcL+Od9BnT+0pN?=
 =?iso-8859-1?Q?ydYC69TscDGEF1WTnPrQ3meLLCGFkXzetfUqKHnDt7qa7rhfo6vkEVa+2A?=
 =?iso-8859-1?Q?CQK6b/xKFeZ+a68c7Z234fAC1Qo3D8aHwfIRUbb5Rq/tIZin2ptYKvoWTu?=
 =?iso-8859-1?Q?n/vAx5Zf7DBu3nDBTzdm7zV4JeRMhpUvbTZtixCT1ctnSRw/6dyl08odFg?=
 =?iso-8859-1?Q?1P197MZeM7+X8avieTC4NxhMM9QYHX8=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: 4b1cc597-3c15-42e8-0ef6-08de85f6869a
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Mar 2026 20:31:39.9544
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: HxN9QxoHOQAb6cw6hf7f42275ltgKvZpAyKlGa5rEwr0Bl+4Eh7/i24B4WyI9so3INyRFFP1aMwB1nFuLhx8bWrL0TCMted6HmMvVPRAiRA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9761

MISRA C:2012 Rule 5.3 states as following: An identifier declared in an
inner scope shall not hide an identifier declared in an outer scope.

Inside the 'if' block, the inner 'i' shadows the outer 'i'.
Reuse the outer variable and remove the inner declaration to fix that.

No functional change.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
 xen/common/llc-coloring.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
index 77a54beed1..822a6b2ed5 100644
--- a/xen/common/llc-coloring.c
+++ b/xen/common/llc-coloring.c
@@ -193,8 +193,6 @@ void __init llc_coloring_init(void)
=20
     if ( !xen_num_colors )
     {
-        unsigned int i;
-
         xen_num_colors =3D MIN(XEN_DEFAULT_NUM_COLORS, max_nr_colors);
=20
         printk(XENLOG_WARNING
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 20:32:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 20:32:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257552.1551925 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3K2Q-0006eq-BD; Thu, 19 Mar 2026 20:32:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257552.1551925; Thu, 19 Mar 2026 20:32:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3K2Q-0006dx-7W; Thu, 19 Mar 2026 20:32:14 +0000
Received: by outflank-mailman (input) for mailman id 1257552;
 Thu, 19 Mar 2026 20:32: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=mAdu=BT=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w3K2O-0006KY-S2
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 20:32:12 +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 af85ed8f-23d2-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 21:32:04 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH5PR03MB7789.namprd03.prod.outlook.com (2603:10b6:610:20f::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Thu, 19 Mar
 2026 20:31:57 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9723.019; Thu, 19 Mar 2026
 20:31: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: af85ed8f-23d2-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=muOoSoluOxzmG4OIA2HgCyZk5m90/uPBIZ2ytdXUVrZlTGMA6fbsSt0CCOuYg33t8pUUZ97dLJj3mI9AobF6bDKGc7J48m9ndTpEjhp8VHZL1wg2z+m0le51tlqTiIYtFrbew0CWr4YY/wtFjUJ/YKEOLWDJJchXG444HbbZaUdGIe+YIsNCQb2R7eO9XhzxrztRbabqffRcE5yFtZNEcR4x6O/wMF+TBSWxER0z27XyPv/pSxmI6wVgJrFxVhOp03dRUnWqIYbIbNywvkNsJPNBAKKXmlx6sUN255AjnSMhRAkLPOefSWMm73ZU6g7O+hywExxdIcqJJ/Ax+IjqTA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8BKvawhqBKt6zTuvx/6FWR9p/me1eeJw0tIV+uiwXQ0=;
 b=JtXoesvW5AGdWbkjWJ45023plcPoNhyKWx8cFNSHuGejAsMAhiNks1Q91XOt0TvOiSc75e9DtWaYLHkzcrv2QF3C1YZjnybPtB+nCuvYhETOtohZzrOrjye4EUUImG/yOGURStjIJ+vAYF6vsXbmSQJ0ThLpevayx7TgdRLE/YNWZ7bL06Z8LR18aJKO9d17t1La56kmE2zpOBVCjhiQt4WwZuD4wcPQ9B1fyepJCTFW+EgJ2ugB50/6FwKg0/RfYmr3VDWD8cFWCoc4vCV9woXUqalpJruJtJg+49bP3+WQEH5N1QXRwD0fFI9Xyn9LXzue8YFLRNI8BzRyaB4XFQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8BKvawhqBKt6zTuvx/6FWR9p/me1eeJw0tIV+uiwXQ0=;
 b=POSrY25uQP5HCXJ/GM9bbVZc+y4uGYZUfp72r1rxbC7IFWQtsMkx+9yEl7VxD68uIoXzNakqabPXNTNEz3cm3dMVnxzNMKFPdF9Hzj0BS22SzRyc8su5gzhQVFSN8732WhDtcXjnV5jmzepdfJcLY/oASP9boQOHaAVBVdXjyKw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <b2574a87-4707-4eb1-9d1d-23caedfb5bbe@citrix.com>
Date: Thu, 19 Mar 2026 20:31:54 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v1 6/8] x86: Remove fpu_initialised/fpu_dirty
To: Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
 <20260319132924.1469809-7-ross.lagerwall@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260319132924.1469809-7-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0202.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:318::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_|CH5PR03MB7789:EE_
X-MS-Office365-Filtering-Correlation-Id: b685a6d5-f40a-40cb-55b3-08de85f690b4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	zq93eZDyhlAgKatdcuugq4Hu8T37gaMA3VjD7YtUlTPLacyuPjLZbmw38/Nb2eKGgpM5VAL2BIJA8Q9LyyDA8E2QShqybpcxK7VAwo7Fcl7xfkyO0SV9VFNH6gUghnPMjipkCdC2oSrc3dkDaldckKrfovCDaWvleLnycHF0VY8zpXWhzx9lKjLSboQbHBbLJ4f0bfFkKvi4i660W3vCdpHadnuxEUhhKZGzOAN7hdnQ/t5L3Dy+JdrrOFpCH1RLVRqeJc6cfVXTVGYT6Jvu3yRfMMJ56XhqmL3nfWR4m4JS9yGLbzZvwEWBd8Wi6wS0MuN1e7UoCJ9e7IGht8H/p3L77K+5YrCM4sWapbgONtWEGjPpjPhwzGMh3JwLoGtzod5OOKFu27DZL1Q2c13Bi2dCT+vBzmvgNQn2GB1eg100Uh4PrPo9keF1a16fsBk6Zlo82FGhdN02Isiw6BBF2nibJFKsxujKDUBF0T4o9HTkRTuhy/3qz3NAMxj5shLwd2ZpnISVWhrW3cenyvbfTBCyyv/yOUzeL2AqYafs6XW3NeA1VPnuj5BjjaV9faLH2hfthy8flBKQ1l/j5Z+o8ZseGWPnZc/Eqqqq9ucYZMl+yV+prKrnFYLAUNEzYRZ+zArYmUPZzIWd9YNg4C8yEe2a97qLTjvSZLsm5voO2HUvtOvSf2FovRp1Y/1xA6JjKUZU4OrQmdQL0VJRuYDOJ81kC4iCjT0gw4jXjhR/tFk=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YkIra1luN2d0by9XS3lkdW90NHJQR0R3SlcwZDRWUGNjdk1sWkVRMFNDWjI5?=
 =?utf-8?B?ZlNERER1Q1d1a0pxR1RvRVFLTkJOZ1J4T1g3a3MxRjBkRVoyVExpZkR1bHpD?=
 =?utf-8?B?OFVtaGZPdVFld0poM3E4dFBFRTRadDd2OStYb2JNOWtSRGNXU0NqUGhLK2J5?=
 =?utf-8?B?Q1R0UWsyeGtzL25XM2ZqcTNRQTB3QTNVVTlvN0pzOWZpRkErcVJGV0NDV1BI?=
 =?utf-8?B?UTh6R01ad2FFVHBZOHlnNmpyUVlqSWlJc2p4cldYRU5aUzZzN29Ud0E2dGxJ?=
 =?utf-8?B?dUdLdkc5VEhYdjFoVk8yZDR6WjBjRklpR0p2anVKN2pPbC94NmdSMExpUkUz?=
 =?utf-8?B?RVN5NCsvTnd1Wm94bzZKSDZWRGJiMjVTd0VwWnNZeDFPdUNFZ1NlK1k4MUMz?=
 =?utf-8?B?anFZelFjNko2MEpROE9lWmVRMFRzWlZ1ZWtzZnpoVzFJZG0vc2grcXJxSi9F?=
 =?utf-8?B?ZkxGRGs3QmJrZmRlM1M3MHhZbDU5cnE4bGo4MmpVcnN0ZEYrckdyeXFQVjdv?=
 =?utf-8?B?OWR3ZzNxajdlTzN0UEJmamVjSExVaS9tYlFLSlZPM1VSMWRkdDZSenVwbXJq?=
 =?utf-8?B?d0lKTldsVCtadGNXSUp5dkRtRjllRUZBM3lJdzYxa2ZHZTM3cG43NW1WZWhB?=
 =?utf-8?B?MzhKc2dsQUVMUWlBbzl6VTZUcDVEa0lvcjBuWmlnMXdpck5JcjRpSGI1MmJT?=
 =?utf-8?B?ZkIybmsvcGdaUlR2SCt6WkdoMHk1OEVGZWRLQTZKVFBwRURkNm10RnhSVjd1?=
 =?utf-8?B?OHVZSnlyQ0xCUUd1emdZNnc3eDJJcnJMVVgyMEwzcVcyQUkya3RPY3U5VEFh?=
 =?utf-8?B?Zit2M2w0Q2U3amMrRDdNenJPYUpTNmR6R2w5Zi9ZdlU1bnVvWk1Ebk5TbDhM?=
 =?utf-8?B?WGsxVk1XeWh1VzBEV2xKdXN2OUxSNDRBeFh1eUJTUEgvU2w2czF6ZFhhRStY?=
 =?utf-8?B?RHRvTUpyelA0eWgvTFhDSFdOQUdmQkJyMTluR2VMejArRUR3NzRlUVdrMnVu?=
 =?utf-8?B?WUhkV2dZb2svZnZHMDdzTkNBZ0RGSW52TWJGbEo1dHRwKzVEQnBoN1lRRzJq?=
 =?utf-8?B?c0luZTZSdkt5ckRPSncvYUZycEM1clIwUCt1R3JELzN0WFZLOGZGTmNacmVp?=
 =?utf-8?B?YlBTclJlRThjOUVrOUNUbjdZcEV5SE1FTnZLN2FLVkp5WElFMS83d08xeGQ2?=
 =?utf-8?B?NURqOFBzUmtxN3NrRVJ4Y205NERjRkVGU2hLN3Y4Nkw2RUd1eE11WVpyQVVy?=
 =?utf-8?B?c3pLakdjTDF0VkxmajN6U2Zwc0F5RjF5S014MEVpUFV2YTBucEdGNlVCNjRj?=
 =?utf-8?B?eHg0SlVzSHR1ekw2NEQ4VjJQQ2wrSXhQVXdCU1haZkpGdXF1ZjJxTHUxY096?=
 =?utf-8?B?a0xIWng5UlNyREV4czVUbFQ2SnQvSFppY1JSaTR3M0dkc0J5YWZwQlZ5eFd5?=
 =?utf-8?B?VjMrMEJEei9KTUFBaGZDeDhnNGprOXpYYkhoQ1UxekdUZnF2aFNPbFg1dHJk?=
 =?utf-8?B?WDFTQmZHNGFtYjB2V1J1aktWWnJUTUdLcnA2b2JmREh3SDk3cmdoTjQ0MXR4?=
 =?utf-8?B?Tk0xUXFVME1RNzFUL1RjOVV2MG9PK1ZWZW9uQ0R2YjdKTEZqOUdKd0RtZjcy?=
 =?utf-8?B?NC9DN3d1OWlHSTlPMnlCaERIdkpIMUhFOHpQS0pyVUN4RnJ4Ti9qc1B6Rzhk?=
 =?utf-8?B?VlVPaXhHU1BhYVhnVFNWSnBDeXNNZWZVc21aRG5renhxQ2puQzZOK2d2aFhn?=
 =?utf-8?B?b3VuSDkzd0MyRHljVkEyYkRuc0ZQMnVFZGtmRTlPV0VkTGdMaEd4MzFkcUxG?=
 =?utf-8?B?akxiWVNab0ZLVlU0L0RPVXJVUzArbGxhdjNMaS96aWI1VFdVVnRqM2pGSFR0?=
 =?utf-8?B?YUF1MUFVbnk2UHZuQVRmWGJFdWYrMVhRelpVWWh0TUJYUHlsVWt3UUZ4MCtW?=
 =?utf-8?B?YmI0aURYdGJPbXByNllNYXZSVXJvMTNQTmlxMndUUjBkNUc2S0tQR0VTaWk1?=
 =?utf-8?B?Tm5SbnU0RkhJaDlXa0czL0VMTUdyZFJoY29FYTM3eEFUZGs1VHE5RU00QTQ2?=
 =?utf-8?B?S2piN1VKOG9mMGNyQ2xLMjQxMVcxMUc0NEtndlFlODQzNk5ldm92VDdHOFlv?=
 =?utf-8?B?cGl0ODRWVi8wN0kyRWk4cXFxOEhmYmZJRm1hVmdsbEZVTUdkbXAyamJPell3?=
 =?utf-8?B?SWhVdGM3N1FIdGdTdE5ad0RkcGh6RWdUejJrVmRCam5uTGVUM1MrQ3QrWnh3?=
 =?utf-8?B?T0l4NllMdVFNaVRIWmhlVkZkRWtIVFlNOWw3YlEvbzh6TXd0M2FVMUFsYXFE?=
 =?utf-8?B?NnJDZDFTZHdJVjFaeTVFeXRNWU9NYXlOQTNBQXlzWWlqSlRENGNsYy8wZFRm?=
 =?utf-8?Q?C31uOrkK2wuwRbFA=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b685a6d5-f40a-40cb-55b3-08de85f690b4
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 20:31:57.0242
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: vE8Kc8cLdlOxzDfP5j1/izbH4WHC9hfzkdGm3NIRREnHuhYXcYiL3+h/yTDBFF3faYOhLUQqkM9ML5EO7xFSataUIxwpXfahVq9eV6Q7URw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH5PR03MB7789

On 19/03/2026 1:29 pm, Ross Lagerwall wrote:
> With lazy FPU removed, fpu_initialised and fpu_dirty are always set to
> true in vcpu_restore_fpu() so remove them and adjust the code
> accordingly.
>
> No functional change intended.
>
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
> ---
>  xen/arch/x86/domctl.c              |  3 +--
>  xen/arch/x86/hvm/emulate.c         |  6 +-----
>  xen/arch/x86/hvm/hvm.c             | 15 ++++++---------
>  xen/arch/x86/hvm/vlapic.c          |  3 ---
>  xen/arch/x86/i387.c                | 31 ++----------------------------
>  xen/arch/x86/include/asm/hvm/hvm.h |  1 -
>  xen/arch/x86/include/asm/xstate.h  | 11 -----------
>  xen/arch/x86/xstate.c              | 21 +++++---------------
>  xen/common/domain.c                |  2 --
>  xen/include/xen/sched.h            |  4 ----
>  10 files changed, 15 insertions(+), 82 deletions(-)
>
> diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
> index 942f41c584d4..d9b08182ac1d 100644
> --- a/xen/arch/x86/domctl.c
> +++ b/xen/arch/x86/domctl.c
> @@ -1409,8 +1409,7 @@ void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
>          c(flags = v->arch.pv.vgc_flags & ~(VGCF_i387_valid|VGCF_in_kernel));
>      else
>          c(flags = 0);
> -    if ( v->fpu_initialised )
> -        c(flags |= VGCF_i387_valid);
> +    c(flags |= VGCF_i387_valid);

This is an API/ABI change.  Previously, creating a vCPU and instantly
getting state will hand back a record with !VGCF_i387_valid.

It's fine - I've done a bunch of API/ABI changes in the FRED work, but
it at least needs calling out in the commit message.

We have had a lot of cases where calling arch_{get,set}_info_guest()
without an intervening __context_switch() would lead to subtle
differences.  Generally I've been moving in the direction of
architectural behaviour and not worrying about API/ABI changes which
would occur naturally from running the vCPU.

That said, I think d1895441b3bad (2007) was the removal of the final
consumer of VGCF_i387_valid in Xen.  We don't even have a conditional
reset of state based on it's absence, and of course it's documented in
the usual place, so it's really unclear what the purpose of this flag
ever was. [edit, see below]

> diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
> index 79697487ba90..885f5d304b2f 100644
> --- a/xen/arch/x86/hvm/vlapic.c
> +++ b/xen/arch/x86/hvm/vlapic.c
> @@ -289,10 +288,8 @@ static void vlapic_init_sipi_one(struct vcpu *target, uint32_t icr)
>          hvm_vcpu_down(target);
>          domain_lock(target->domain);
>          /* Reset necessary VCPU state. This does not include FPU state. */
> -        fpu_initialised = target->fpu_initialised;
>          rc = vcpu_reset(target);
>          ASSERT(!rc);
> -        target->fpu_initialised = fpu_initialised;
>          vlapic_do_init(vcpu_vlapic(target));

This whole code block irks me.  x86 has two architectural events, #RESET
and #INIT which are well defined, and this is using the former to mean
the latter.

We are going to need to fix this, and it's going to be some fairly
invasive renaming, but the result will be better. [edit, see below]

> diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
> index 88018397b1ad..5e893a2aab94 100644
> --- a/xen/arch/x86/i387.c
> +++ b/xen/arch/x86/i387.c
> @@ -265,7 +240,6 @@ void vcpu_reset_fpu(struct vcpu *v)
>  {
>      struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(v);
>  
> -    v->fpu_initialised = false;
>      *xsave_area = (struct xsave_struct) {
>          .xsave_hdr.xstate_bv = X86_XCR0_X87,
>      };
> @@ -282,7 +256,6 @@ void vcpu_setup_fpu(struct vcpu *v, const void *data)
>  {
>      struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(v);
>  
> -    v->fpu_initialised = true;
>      *xsave_area = (struct xsave_struct) {
>          .fpu_sse = *(const fpusse_t*)data,
>          .xsave_hdr.xstate_bv = XSTATE_FP_SSE,


Hmm, looking at the callers of these two, we find that Xen has
VGCF_I387_VALID too, and does have a consumer of this flag.  (This needs
deleting for sanity reasons.)

It also means that this patch does introduce a bug here.  Calling
arch_get_info_guest() prior to scheduling will hand back a block of all
0's, claiming it to be valid.

We need to arrange for vcpu_reset_fpu() to be called during vCPU
construction (i.e. so we've never got a bad FPU state), before this
patch will be safe.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 20:36:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 20:36:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257570.1551935 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3K6j-0007QW-2Z; Thu, 19 Mar 2026 20:36:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257570.1551935; Thu, 19 Mar 2026 20: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 1w3K6i-0007QP-VP; Thu, 19 Mar 2026 20:36:40 +0000
Received: by outflank-mailman (input) for mailman id 1257570;
 Thu, 19 Mar 2026 20:36: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=mAdu=BT=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w3K6h-0007QJ-Du
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 20:36:39 +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 5354dfab-23d3-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 21:36:38 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM4PR03MB6208.namprd03.prod.outlook.com (2603:10b6:5:39c::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Thu, 19 Mar
 2026 20:36:31 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9723.019; Thu, 19 Mar 2026
 20: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: 5354dfab-23d3-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Mly8D0/+W6IpUxJwwwyrct5azIz7YkHMUVBlVXE+oX8tqCuSmBHIsUSsgIlyD4GSPubVqasGJB7gdHyqThV0OTzI3qlhWrNbzZr8jElxFq5pp7BScYUnXB5yWgrAuaN5EuqFUz0aQQIhYXnYbIxg2oBklcgGPUMmji1uOtrFmH5At/quJy7BrbOL3IrTFYX7/Y1G4VYfw9ESbxZnkbRxspXtrOqm1AKGLvRakQ3jp55udSYHe3eJbEF1YPvFXZ1aSs8F7pFABRfKTMWr51TJsRfZB+m1wbNAZCYpTM3ejqVsAbME+iZlpPOcJLFK2CbwKfRm/RqnEck0bXlQZdisaA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8U/PgHv9boJwLmz8AheioOrvopZsBlDOdmhw/eLy48g=;
 b=b6DOGAT5I59n8szbZPjbBeIJ8tNZ/ZJaPp3dENYWDYJWsKKciV7u/Oi2TpORHvweMkFoDYio/PwfaHSpni8dmNeYEwYMtwlER05EFXysqMMgi3d5eMe23NX9kV3ptR/K3ZsuuMufYej5P+ezJwxHnuzZBcrhlKRrFnlYdPFHjKqaakjzohdWjSlbptrIdK0qsG4KaVElMQXi2m5XtLie7KbIRcwed1WdKXERrIhKAz/rVOvoESPzs+gixBBxYpkswTgfyFsj0eorCNlHUuhnBX8GYHSHLWkx8m6Nxmt1fsKIHtIStiE+UiLQ9P3Up9twZzuyyi3mU4WOOajJJHx7fQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8U/PgHv9boJwLmz8AheioOrvopZsBlDOdmhw/eLy48g=;
 b=BOqgMy8a4PgHQc+rG/C6Q39aUp+QM/A0HxrIpXoqLA5MKqOTBqiR55HwEE8iMzSRFiFiNUymg7qLS8kuc2AdHFrcPchpFOxQ1jfp2JONOIpdPpAI+C+sh9HIpGEaY4zAUn2kOg3Dk1L3Dk+z3x4V8mNZHDyV11HArJGrhxG5BXs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <82c12df3-3e14-44eb-b45f-34a74e17d710@citrix.com>
Date: Thu, 19 Mar 2026 20:36:31 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v1 7/8] x86/xstate: Stop tracking nonlazy xstate use
To: Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
 <20260319132924.1469809-8-ross.lagerwall@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260319132924.1469809-8-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P265CA0131.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2c6::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_|DM4PR03MB6208:EE_
X-MS-Office365-Filtering-Correlation-Id: 93b8e1e3-ea1f-419d-cf53-08de85f73601
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	ZS/S7znB+JRDyyQYq84Sk++Ky0C/FRJJaqYLVF0hthiqDWzFX+q1vMwdX/MbJPNcEGFTEu7sOzWwOx0O9L8V/N+bT7vZkuiKJXEowWUffy4jBJ0llXx8xoI0MEASOAxrMVSSWgNYLfGcP5/tSD7cfBZqD5imVAr7iM4yWKJqHDj6xnZYF6WXyS1P16Wt8mS0RqIeIqWGMQd4YLd9JcVAZg1d/FtraB7l0ceWjIfLslGKQ6P9hr4F69QDt2jijpjjjFd1z03xZdpB3ZIEX3W+JkNC9vpgZC/VwmGw0HudTzFtQndGwoHXWh4t6Mw9KYOJ2Yx1O/TTa4dX0FOGhsMkPFxOei3QLbRrWpkO0hQF3g8pMotMFvcwSEIf8/6cAf3jUntfPW6yoBTORsOXr+1/G7/OBZ0HFCS2CuH7AsJJmYkIAMxgETLVqWuzfOKzvZXZEPfaYWedAKQBGjnmoMpEV6E5zrTzuYF7u1gJhkpJtxlpK5eMIHnRw6OH/oa3o4wYQxunhZOaw2aqAKKUiVRa714i+a0LtuOeRm8UW8KVkDjDaXPbPORy884d3g0Mj6CI+0QhkvVkbcdNevVQ+SLboS1HtJJ8CSEdUR/h6Q9V3+VU6WB9gmHu5iyQTI3B/PStWPuVfO1HyupUS7bdjKxwxCM0mE7jyTQmuXRczzCxxIp0odSb5f5y0r8LE0FlaBnDD0+i8ee+3WOT9nJQKLoF6ybY5gGLDtqYG3qTdSacGBc=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?enYwcTA0SDVFb1M1OFZYYkRHOGYwNTd3QzAvaDE4ME5CNVJ4SWNoYWsxS2Y2?=
 =?utf-8?B?Q0JKRGE3Mk8rcUQ0dDYxU3FOM3A1VldIa1N6U3NiSFFPNW1EVTJ1em1pVkRo?=
 =?utf-8?B?QjEvb1dhNlovNW1lY1cvd0h6NnNMeWtGaW8xN3AweU9zOXY3cCtsNUV6eGVr?=
 =?utf-8?B?aGZ0c0MvUEtjejMzYkx4dHYwaTZrVzJvamFUaTUyQkNFZ2pZSGpqWXVQTFEv?=
 =?utf-8?B?T1NvWW4xRlpFclV6Yk9hOFJtRE9IaVB5djZJLzhwQ0JQNVpPMEJTcGsya2RJ?=
 =?utf-8?B?bTZTQVlCY0pvNkNic0lLTStXOTNKQ3RZUWtsSVpGSzI5WVpkbDhXZUdPVENM?=
 =?utf-8?B?cWlIVENYM01vd2I3MmFRTzhrbEppY28xSWtiT2oyOGhIaXRpTW9jRk5iUks0?=
 =?utf-8?B?NVA4LzNoNnpCTFk5SFhTbUpEem4zRGQrZ2JkRlRsaldRSmVHdnBpTnNwQk80?=
 =?utf-8?B?Rkg1VDU1SnBUZ1haMGRIQ25GaWFzS0pvYlBuRVZsSnpKdkR5cUJLUnpWTWdG?=
 =?utf-8?B?SzhRcDNmclNsZzIraU1Uajc0ZkQ1WHVzUVBEa0loekJFelVPdWhUOVk2MUNB?=
 =?utf-8?B?ZC9US0ROcnF1cmJlWWdsa2hjVkJDczNQY2RiaGI0SkJleC9BVnl1dmlrY0ll?=
 =?utf-8?B?UHJ4V0xHYWUwSmtnRnVZOTVHZTV4by9EMmUwQnZNb1hhY2FzaDBsNU5xRmJW?=
 =?utf-8?B?SnNEZlhKeHRZc0RKSGtDUkNid3ozQURQTTdtUUFqUTFGQTdzS3ZvZ2RhNzhm?=
 =?utf-8?B?Vnk2ZFZZQWVxZGZ1Q0FmRUpzZ0xwb2lEVllkcEJ4TTdXWC9vdDAxWmdFMWxH?=
 =?utf-8?B?ZFpLMzBIdjNHY3BBeTU5RmdSY0xXWlEyNEwrcGtjamFuR29IdnhvSlZyRCtm?=
 =?utf-8?B?VmJIbjVFd2VnL0huSEhGTzlFSUlRM2l1RFFubDBSZ09abWZqbCs4dlVGM2FS?=
 =?utf-8?B?RUIzV0s3bDhZWlREZVdORWFWa0d6bUxZWGo1c2lLSlc1T1crWFlxZ1JpTU9M?=
 =?utf-8?B?aElRVWVNNHJ2dDN5aVd0aVh6MDhEUnRxNk1xVWJRYXV6d0s2TnBmVE5qRVRI?=
 =?utf-8?B?U0QvQ0lORjNEYTM0K09abzI3eHVsVHFYRXBuakpLY3U1amxUYjZ0ZWZnNzY1?=
 =?utf-8?B?RmRQZGcydG01UEpTckl0WVZZd0hiYWVNSG9SQkRSNWZ0djl3WkgrWDBrUlM4?=
 =?utf-8?B?ZjFzOURjcjJabklMeHR4RlJwNVhVT0tmN1NSaitKaEU4citKYitvS1VxbWlY?=
 =?utf-8?B?d2IwZXNTZ3NNMmdVVC9VVjZFV3BBMFphdEFTZjFua2UrdVVsTThzV1FXeHhV?=
 =?utf-8?B?K3VNZWxjeC9DdEFaVER2eHFMeUNDQVpRZit3SHlKVVNMcktDRk1GSmViRXJS?=
 =?utf-8?B?OVQyS0hpU05BalROcE16eEcyVmI2WHM3MGp4eEpHRnJMajJLMFFEcmZmMFdD?=
 =?utf-8?B?T2RvZnNDOUZFZ3FqcUhGaDFlb1R4WVcvZmR5aVB5aU9sbWhsT2lLZVBGZmRR?=
 =?utf-8?B?VTlpQ2dXakRwaEx3VWczTjIzMldpb0Y3UUU1cE84T2VRYlpZak5CNGExQW5C?=
 =?utf-8?B?ajYzbGFkZXdVa3JnRzJsOEpuck9QNXByVzdqZGJ4T0FWZ1hPcmZ2dWxJSVp5?=
 =?utf-8?B?WXBhazRqaFFXRlNJY0VMRnlCa2FRQmNpZTY3bzBhSEhseWtUR3pDNFBtL0pS?=
 =?utf-8?B?OVFYMTBmNmdtay9senV6TnU1Wk9xdm0xZnpXck0rb0xUNkE2czRlWndSWVAz?=
 =?utf-8?B?VE9mbDl2c3RFM2ZSZjJFeWxXbGg0Z1pwQXNNemJ5NzFCaGdhRWtoTjVVQ3hG?=
 =?utf-8?B?Z0xBV2hMS283NmNZVVcrK2w2cExHRnpDNGhVMTdldEZWZ1Vpd2VGczlIK2Z5?=
 =?utf-8?B?RkdhSzJhOG1iMVdiSDJ3a1Z3dUJUNnVUR21NMW1tMEFZVzBUQi9HdUlnK1V2?=
 =?utf-8?B?SEl5bkRkbnAzd0FodXM0Wkh3cm16RE9tVXJ0M2J5T1lwOXIwM3VuaGF4a2FP?=
 =?utf-8?B?TGs0blBlblBMQURRcTRzUjhmb3V1dUlocW15RitTbjY2NE4zWVN6YXc3WWNu?=
 =?utf-8?B?YmxaU1dKYzAvMHV6Q2wyS0xTdU85WGtNNGJHbkt4Vno4WWwyT2NwaHdJYVZm?=
 =?utf-8?B?ZnU1ZS9WUGNHeGxmcUwxZWkrcWhJWDN0RmNQNVp6YzhsM2JCdjJ4K1M3dDNs?=
 =?utf-8?B?bzdDeWR2ck5ycEZnaldYR2ZlTlJndUszd2FNZXMreHlmUEdPK1ZEWmxIaHM5?=
 =?utf-8?B?S0lwRlR1VUl6ZTVmU0NyMDZTajg3L1gwd2dsRlY5NWdzaUJiYVZoUjFsZnY4?=
 =?utf-8?B?V1VJQkR5eTQ2NDJ2ek5MT1pqdHdnZ0p1VE82TERZRkhHdyt4NVI3UjNiaE9L?=
 =?utf-8?Q?VdpvWBJnnK0mVl0Y=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 93b8e1e3-ea1f-419d-cf53-08de85f73601
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 20:36:34.3463
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wBu6ZtFupNt6L7ir7V7Ivsn81c0NjUCBI/wQ8PLNczCLP85m4qcHlKO/Ugs/Wco5a76yY9+iQe8LzUfWOSEi6DvwBw301bYMx735AwCfZWg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6208

On 19/03/2026 1:29 pm, Ross Lagerwall wrote:
> With the removal of lazy FPU, the full state is always restored on context
> switch so stop tracking whether nonlazy xstate is used.
>
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>

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


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 20:54:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 20:54:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257590.1551944 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3KNO-0001qG-EB; Thu, 19 Mar 2026 20:53:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257590.1551944; Thu, 19 Mar 2026 20:53: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 1w3KNO-0001q9-BU; Thu, 19 Mar 2026 20:53:54 +0000
Received: by outflank-mailman (input) for mailman id 1257590;
 Thu, 19 Mar 2026 20:53: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=mAdu=BT=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1w3KNN-0001q3-OQ
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 20:53:53 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b94d03bf-23d5-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 21:53:48 +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.9723.20; Thu, 19 Mar
 2026 20:53:44 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9723.019; Thu, 19 Mar 2026
 20:53:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b94d03bf-23d5-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aOlXiErP16zsM1nFQPjeh61MnRG3YTwIdfNwmihD8MGgP2Et9TbkQ6CYLTXCzTT7GV5oQ8fyIxnStLUQ4KkmPrEHdOs6nGby7LN+sgK2F0cRZuavLa3UrH592AQrd1xIJ5aXkqL79bavwjp16vI4ee+7khOL7TQHYyILY5POsATuzC4jnL/jRnfPBAwDyg0x7kQGU+/ea7wweqFHQhukhT6N7tTiHo3HZogkX3xiECVnv96p5O/QwdXrrR272vvjnla/wFY8qrIEhvtOB2eLw/ia9+cipOtXdlSxFyx5P8yoMWFh8Cm5IvEBg0hHhGtCzf+IH9m3tP7jI2oud6s0SQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TLbNAvip8YJzclx6/g/U2ztaBg6OlcU/mISGpANgMCw=;
 b=rgeQTDvnq28Ho8nvqtzjwRmLDtnvMDich85BjCPJyg45uLyprmWN7BM1T3lw15+ngftXv1yc6BGrmdeohh35I2DgUHFdzjVdCE20CvoeXTZOzs0uKS8RKETSdUSVkLzhAcFCBmg1S/8B91KWdUP9Xp0GErkXUxd4dQMExMazFIGHylaD2LYc83yAM2NAUxfLKUd9/AQKNDnFQNb55XbMPC5mEkMw5JWxsAPHWkUWxn6yGJCFlH4QHklPJ34o2G/jdn3q8LrqKxJGzMHLB4tnUONCkMwme+f+ujVNUlJ1OQAxSbxN1sHzDXj1G67o/ouHNtxiWB9qavz5TlXLyiTN9Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TLbNAvip8YJzclx6/g/U2ztaBg6OlcU/mISGpANgMCw=;
 b=ok2d+N2nKX2Fr2iNGskcL7G5Tj+clOGHkKnD6DO+aUmR/lSCpaCBMqR1I9tEvXSxjRA+qxoRU8ofucOc9AMnQ54qPu3G7RYQTX/HOtzVWJFulioZjUIhHo5grm1stsqAimimPups9thXcoFtHWJ0hkerwHPF2jDeftThGzt0SOQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <6c4c0a97-cb3d-4924-86ed-98f3bd65d597@citrix.com>
Date: Thu, 19 Mar 2026 20:53:40 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH v1 8/8] x86: Cleanup cr0.TS flag handling
To: Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
 <20260319132924.1469809-9-ross.lagerwall@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260319132924.1469809-9-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0464.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1aa::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_|SJ2PR03MB7109:EE_
X-MS-Office365-Filtering-Correlation-Id: 3fc38d4e-7b4e-42b2-8d39-08de85f99b45
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	erUCIBnkP1Kki6p9F1fX0hnzhthMy2IZPTXpjFRDqWfvMcOF/a5wIrvR+tDIB2m0hlgefs7x+OkDIuLOgEPEE8tQx44OOYEsgEUqQjTNQ5gN8xkW0iXLUXCeGPpDBwCPqQtk5Pf0UdXMgdk3JQVhL8WMyyAOnsB6Ryq+h93RTFlNTmMn39t727aEP8Fp97qBdMD3s1NadF/5Ek88//+Ji5/T7sf7pciFwix/lGhDF0w6eqCJnmq86mx4NFJmQGJd6Cs2C6BCDhH9yKZ2eENAG76Ikv/nC58PFkrV5RTKJ/YESh7qG8SSuHXG7LvPOwn6wOShtLteXtUoEisRz0SxnJcHMx04vMgfB1BmI7rPI4onoEN3NVxZ2FqCheugN5hqWr3+t+yr9IBc1PPliixcJN8dwxs5ZbMcH1pOcwafm4yROuukL/DM7t62cknr+z0q4Nk7ksVNXXHhkI9GeBUFNx5ABySYBU5A92QuZ8eVn8XFsfoEq3d0lPNLCmE/+LvNX4a8/Ro75cYOTjIMfxb+wOOYavH6qTgLsSLCEr2uQs05xjDhyCqo3pJ7ttGk7PAS3kSn3de+lac81bY9sAaVFXxgLvlan+uE/+UmyQS6C3VoYznjX3jwDmbyekDluFDRFtvrkRrgs9SloFwApP0R98v6qyKZN752yKOJnrrwP2KF8W53+Slk52a92xI/KbkP2b8FGjDeNXOUvaMOImqA02g7wDRNMpPKbchuHuqzxkI=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VE1GOVFOTy9yalpBRlM2TFRtVDVoN1VmWjFvOEltM1FJR3dJQWtYMFhWWjlQ?=
 =?utf-8?B?NTRRQ0pxY1pQWTRoK1crcitlQjlJakgvakMxeDIyQVJtcE8xWkhJa3NCZ0Mr?=
 =?utf-8?B?M1FWRzZHbThBY2VlbHhpaCtqUWdWSlg5VnBTNzdXRmFoVkU4QzFKV0h0QXpo?=
 =?utf-8?B?Q2t5TVNJazlKSkZCMGhRTkgzZGMybFcxbzZCck41cDRuTnFKM1hicWp0WTFL?=
 =?utf-8?B?VEdrU3RBaHlsNW1TZnBlZDgzM0N0VXBsdGVZK0g3YUUwdGdUa0hZUEtzT005?=
 =?utf-8?B?aUMvaUNPOWJGZFdxN2ZMUitDZTFxSTlNWVVUNTRNUTN2WVlybjEzZGYzS05H?=
 =?utf-8?B?b1FxUE00ektvQUJWVnI2SXpNdkZuWkVSVXBTT01ib1JSUlpIVG5XNWRKTkxv?=
 =?utf-8?B?b0htRmV2Vmp3YjN6bnkrdVIvcDVsQ1p0M2g1SnRjWGlUek5KZk5zSzlTY1RH?=
 =?utf-8?B?eTV5Yzg1ZzAwVjVhQ1VzS1VzeW9aMHJxNk4zZHE5N3BwMnVvbGdId1BMTnB3?=
 =?utf-8?B?UkhkditVKzJHbUEwUXZaa3FMMmdtOFVvdy9jUW9ocVBkaFJSdVVJUGdBRUtq?=
 =?utf-8?B?ZERxUEoydDVuVldVdzAyUGZQcW41QmJkZWJtUXIrK2htS05kQjR1a2lxT0ZL?=
 =?utf-8?B?OWxldHZUVkdJM0wyVURPTURnM0FWRHlKOHA5ZENTTnhudVBwL1pyYXdpb05G?=
 =?utf-8?B?Y2dwQ1JxdHVuWHdRTDVVKzlyMmczWGlXM3hlMk1WWE9zazc5UGtoMFBIYUky?=
 =?utf-8?B?RnRhdUNCUDRiTHpBd2pTdVhidElReWhYYXVuanZENHV2bmp3MDhLWU9vWS9D?=
 =?utf-8?B?K2M3MEp6Nkh1Zmx3WDIyZWM3MWkvQ2pwSXVMMVBGdjRqSGVtNDAySlc3dExp?=
 =?utf-8?B?d00zb1A1N0hrbkpkWjVTRVlMUFEyM2tBOHpkNXU3ek5wWmVJY3gydlhQMnlL?=
 =?utf-8?B?aTM0QW9UajY5UkZIOU8waVdzTmRUMmRpN0NXQnNyZUlrcmVYOVRSTHlkQXVS?=
 =?utf-8?B?MU1hemtvcHNyamZ0c1AyZzRtVzdtSGxEZ2h2RE1hNDFOU3h4THRjeE90U0Jx?=
 =?utf-8?B?eWRONEpkN1hXU2g5bUgvYXZjaTU3bEVnWXJlTVYwdy92anVCU3M0ZCthTTNU?=
 =?utf-8?B?V1RwM21qY3E4SnBiWTU1N1ZuSmVNZUoxbDlmbjh1b3d1SmNSbmMrVVIzWG5r?=
 =?utf-8?B?NVp3ekp1MjdwVFRZcUYzcFNQMEJmRVpNVTZMZmxXVEhSY1dNVXJ1NjZVWkFn?=
 =?utf-8?B?TzEydEJVWURueDB5TkhpZ203L1RKbzd2cElFdGw5WkZPdWtkYXJYOU9IWTFI?=
 =?utf-8?B?WHhBVWJKdnRKMHNHYVR3Rm9URTdKUWtkV2JsYS8rS28yeWNGMVdSMkp0L1du?=
 =?utf-8?B?Rzd1MTdlQ3h2L2NiYnVIMkhxNnpldWpjeVVZK2lKRkhMQTZuZjJBQ3U2TGZ1?=
 =?utf-8?B?SlBhY0dsOVUzZE9BajF2clpHZmg1aGx6UG9Kay9mck9ZSG93RzdGMGVDT0Ji?=
 =?utf-8?B?YnR5Slg5eW9tS2lablhIWG1LSjFqNys0eXMwNkdyekIyVDRacjJabXdMUWNx?=
 =?utf-8?B?TWdybUNER1pyQlRXY2h0TkFQWms5UUV5Qng4RFY5TmpEL2I2N05PcUN5RE9C?=
 =?utf-8?B?RlFOdE9vT1JQVXFHL1YrTzJCN0M2ckVNanczSDVncklvOExiYVhPc3piRm1v?=
 =?utf-8?B?U0ZqYkEyVGFxaDJvYmUwd0VWaE12T1dqOHlkSVE0a1FCWnlzcnNvS2tYZUtv?=
 =?utf-8?B?Mnp0MCtPS25LY0lkc2Y0ZnVMVG0rKzBTNDNLSlRDdVJGN2NVSGNCdFMvNEpZ?=
 =?utf-8?B?NEdGN012Ti9wd2VuSjR0dVd3c2dNem91bHRwckc2VDU2OG5FckdwL3J3WFcv?=
 =?utf-8?B?TGRKcHdqcWVSUnNpa1dvK0trRHZCeWZGWktMbm9yZDZkZWdlb2p0ODFBSnBu?=
 =?utf-8?B?NzQySVR2N3VxTFZ3amV0UzU4OXlXdEs4TnNleU9PZVJmbHFjWG5LNzNsN0Rj?=
 =?utf-8?B?Qmcwc1kxalJvVkpWNWJDNm96QXA2MVdDUExLYVpqeEZ4M0JZVXFxTjg5a2lo?=
 =?utf-8?B?Yng2ZDl4anJ0V2FwcWNaSjZGM1NJMHhHcWtJRmhOdzUvdE9ZMFZzd05WTXdh?=
 =?utf-8?B?T2wvYU5HVFd5Zm9rTWVnMGJ5OFNQU1hOSGNKUkw3Zk0rczFteFdZUllaemxx?=
 =?utf-8?B?aW1lSmVSazRvVTVma1JBcDZwTjl5R0M3ekFWWkJzbGJtT3k4U2s2YlNWZ2d3?=
 =?utf-8?B?bU5BMGFyVnBPMXNzUXBGMi9qTll5cEdIS3FOODdrTTVPTkVNVDN5NzdPckk0?=
 =?utf-8?B?dURJM0Z6djZRSzVGRUhHQWFQL0Q1eE43S3ovbHUvVUN0Y0IvajdCUVpNVHdw?=
 =?utf-8?Q?oBXBxuBa9OF7lNIw=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3fc38d4e-7b4e-42b2-8d39-08de85f99b45
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 20:53:43.3195
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: eqAcExg0Ukd5sUVtDTp9w66OdE3UlYjqNMjAqmW8PWrCMoeOcZDsixcvSrTVLvkdr28wi4v1Jx9HMF0hqubgONEz6d1UahKVtdjLWr+W/yM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR03MB7109

On 19/03/2026 1:29 pm, Ross Lagerwall wrote:
> diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
> index 9acaaf4673df..336bc83b6e13 100644
> --- a/xen/arch/x86/i387.c
> +++ b/xen/arch/x86/i387.c
> @@ -193,31 +190,18 @@ void vcpu_restore_fpu(struct vcpu *v)
>   * On each context switch, save the necessary FPU info of VCPU being switch 
>   * out. It dispatches saving operation based on CPU's capability.
>   */
> -static bool _vcpu_save_fpu(struct vcpu *v)
> +void vcpu_save_fpu(struct vcpu *v)
>  {
>      ASSERT(!is_idle_vcpu(v));
>  
>      /* This can happen, if a paravirtualised guest OS has set its CR0.TS. */
> -    clts();
> +    if ( is_pv_vcpu(v) )
> +        clts();
>  

It's quite likely that this would be quicker to just leave as unconditional.

is_pv_vcpu() has evaluate_nospec() in it, so forces LFENCEs, and CLTS
has a fast nop path even in very early implementations.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Mar 19 21:12:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 21:12:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257618.1551952 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Key-0004rs-Rj; Thu, 19 Mar 2026 21:12:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257618.1551952; Thu, 19 Mar 2026 21: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 1w3Key-0004rl-P5; Thu, 19 Mar 2026 21:12:04 +0000
Received: by outflank-mailman (input) for mailman id 1257618;
 Thu, 19 Mar 2026 21:12:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+9V1=BT=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1w3Kex-0004rd-LW
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 21:12:03 +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 4479782f-23d8-11f1-b164-2bf370ae4941;
 Thu, 19 Mar 2026 22:12:00 +0100 (CET)
Received: from CH0PR13CA0008.namprd13.prod.outlook.com (2603:10b6:610:b1::13)
 by LV3PR12MB9437.namprd12.prod.outlook.com (2603:10b6:408:21d::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.9; Thu, 19 Mar
 2026 21:11:52 +0000
Received: from CH1PEPF0000A34C.namprd04.prod.outlook.com
 (2603:10b6:610:b1:cafe::e5) 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.9723.20 via Frontend Transport; Thu,
 19 Mar 2026 21:11:52 +0000
Received: from satlexmb08.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.9723.19 via Frontend Transport; Thu, 19 Mar 2026 21:11:52 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Thu, 19 Mar
 2026 16:11:52 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 19 Mar
 2026 16:11:51 -0500
Received: from [172.24.66.250] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 19 Mar 2026 16:11:51 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4479782f-23d8-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FXLxRllNwVYxiOCz/drct8OY+5B36tsDUMZX9boZiN07ogrk76pyVPjMpzW/1hdRxk5jd4iE00IJYm5J3UWzgpSi3+PsM+jD98XBpcoOlpGIHvFmJw+RoSQ+441OPbwoqqd9/iFJLw+C5G+9wtEG0Fe9bOTglINKwtcEVdc7rzpstF9pmNDhZEsUGRL8XejmzMHL4HcterEIyCBLU8IPeyp8x/QGKIeRexUWpn8xHV/vUCdP9PTRX8LTf9rTcZRYl64J2Hzwx1syO230FfClLkafVqABUbNF25n+w6yXZuThOYWNmMsV2y2431bHDfhGrOLciWJqBl7LnQy0xZDrzQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iZcbvi4SFMi4MNhx8WZtzgMIqJEFA+JUZvhQ4J+VoKQ=;
 b=tIjlafid8b7kw2BC4x3uRZ3XHKjGULeB7qQ60+sgcl4R7ngTzvWW20HCs0DM3iqUlbuaX4n8IAz9a2o9FQJrsJm2Oq4Boc4n2YAjMwpJIw+cn0sCJit8REjlY2aqnsi257Kx7lb5Y5vvXBSQzmHEYuB53wP1FURtr9ecUV8neOydaqCyN/Pw3VTG0TjiQu03no0+vo19UI4g6h9HIL4ZXkgXa/RXrA8D3m4mxYMsn1+xaHM9F4BVQsqUIF6/zYDnJBaZ99amYtoW8nLRUaw775ff3L90Fj5DDKLTLdqaHt66o134cy+8gS79JEkKYFnfsdVZogDuMecqC/d37s4SWw==
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=iZcbvi4SFMi4MNhx8WZtzgMIqJEFA+JUZvhQ4J+VoKQ=;
 b=HSY4a3WJf08VFPY9wmcSiH+TlcSX9qsuqt+22Zyx9ZnNxYdP1mCfnJqjWHQXZ+bZhWLymhI8LC3WusLdAFvObuxZP1G0NQ10cbhXVSyaCcX5SAJBAu/nWMtYHx2YSUFjkOIjY+RmEa5LilgsSfy7JrNPEwb0IzL9nfigS6KfgLc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <436cf1f3-5b5b-4c55-8372-4cf7c7528a4e@amd.com>
Date: Thu, 19 Mar 2026 17:11:50 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 6/8] vpci: add SR-IOV support for PVH Dom0
To: Mykyta Poturai <Mykyta_Poturai@epam.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
References: <cover.1772806036.git.mykyta_poturai@epam.com>
 <b4c86444970a65f56d20203fd77ee368e1eebfb9.1772806036.git.mykyta_poturai@epam.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <b4c86444970a65f56d20203fd77ee368e1eebfb9.1772806036.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB04.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000A34C:EE_|LV3PR12MB9437:EE_
X-MS-Office365-Filtering-Correlation-Id: 0622ad4c-d47e-4bab-06e0-08de85fc24a1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700016|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	FlJD8iaerEDvQ2SsLrRqVHmuIFgyYZmcAwcSzgI78yO7PXXGnXutibPGjsEUtafzjjNO2P+mwdt3kKH0iy4zqbss5zoXa+RC5tVyhwFtt4mOGAvs0wCgNJj2i0We8IIcJNKjsxkq0jVyBImguIe3RQqEEDoPnXNPbJvUoLuZnOrMnFQOoBWNprQrPqhVqrBmTlJ1SmgwG8Agr7hXYajJKyhXGvzwBIRZPgM6OhhEapj5Hw+XZzQJM2DfFQIJZ9KrLK0oGGnFxNvaDX8WoBDFAqr9MEGlrBG86eyn7s17EWhdiabDtXbr0GnL9RRzrg1vrx7PqlXCbxIAs6lADDp03OcEgooR68dS/bUigKanu7HeXTAUUROQOKXoo9uTUocD9iFP+9o1vrbd0qvv07f5uEN34VIR6SZluVKTtyDEk8lPfPHiwj5E+o/Uo2l8nssyG5LNafc1VxhKYI8tXMLwTYLluJ/85aP5rf1eLJjdRhiQrHwfBt6GP00W4lgyA3MfvbWBL/QBbNIaPunvdL3IYhtAmA5zGf33lWFofYigQoGNaslNiFwYXRr8rlBSkYBaqy/qFsdbqVhM/0Y+aP08kOVI7e55EMe6YG/hQgdfLTOew6AU+kHLrpscitUOEqXO3vS44iX3mxzkM4M1nCr7cE6tNSAJxr658oSelvw6p3QLGGNY0cPfs4FnzE5Vfs5oeFBWa/P7n1IEg1sr6T7sEzoKFsCiiXqEvpOk3JQBPfxpyyGIoLHuDqb51me8cPl+xI2+3dFHJXNTKOx+6zyau6e6V0vpeOM9+T24+x1ujLI=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700016)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	DCsRLO314hGX1N+suX4zNeSp4y7BTJsKW01Fb0oGPmalhulZk8j+d1eCDAo6Inw1S1gByWkdMA0tqz2U3k4otXOBbthtxM7UEZZfZAlsLhkjsaMby6wo0w8Ny3IG5rv+OkpAQfXki9ZRiQKrhOjLIoaj/ThNAl5xLml+QyiQBtjQpmHCf4/PZ6mtvqr40rNIt7ZLgsH6IAO6VHbL9PxNfcw088xbg0cJ/NBDwFPJn3oms97R8XCiE5onBe1iQBJpDhCPGfZpJ6DlRXve4aky2a4go0LoxChJYG92ZAaBSPuYd8Fu7RoCw2o3Xpt8q9olTriUJjJ8rjb99NQPLcaFXmuZFhEIqXFphr9ad0bhckaXJhsl6t9LVZWLmsfluaYdLH2/mlEs1MbsFTCz3yXJJui4jO66CyRAL/OefXcexSRyEJxFZNaEf1IGSw5uMUyk
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 21:11:52.5425
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0622ad4c-d47e-4bab-06e0-08de85fc24a1
X-MS-Exchange-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:
	CH1PEPF0000A34C.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9437

On 3/9/26 07:08, Mykyta Poturai wrote:
> From: Stewart Hildebrand <stewart.hildebrand@amd.com>
> 
> This code is expected to only be used by privileged domains,
> unprivileged domains should not get access to the SR-IOV capability.
> 
> Implement RW handlers for PCI_SRIOV_CTRL register to dynamically
> map/unmap VF BARS. Recalculate BAR sizes before mapping VFs to account
> for possible changes in the system page size register.
> 
> Allow forcing vpci_modify_bars to not defer the actual mapping changes,

I don't think this is suitable. We perform the p2m operations in a deferred
context because they may take a long time. And since they may take a long time,
the logic is interruptible: in map_range(), we perform a general_preempt_check()
and return -ERESTART so that we give a chance for other pending work to
complete, including the scheduler softirq. If vpci_process_pending() returns
true, it will be called again and is expected to resume where it left off. The
vcpu won't continue until vpci_process_pending() returns false.

> which is needed to fix the sequential calls to vpci_modify_bars when
> enabling VFs from Dom0.

I'm guessing you resorted to this because you need to perform multiple mapping
operations, but the vPCI deferred mapping mechanism only supports a single
operation? If so, this is an issue I've been attempting to resolve for some time
with the BAR-write-with-memory-decoding-enabled series [1]. In that series I'm
working on introducing the ability perform multiple mapping operations. I'm
almost ready to send v3 of the BAR-write-with-memory-decoding-enabled series,
and I hope you don't mind that I include your patch ("vpci: Use pervcpu ranges
for BAR mapping"). You may consider the possibility of basing SR-IOV on this
work if suitable.

[1] https://lore.kernel.org/xen-devel/20250723163744.13095-1-stewart.hildebrand@amd.com/T/#t

Regardless, ultimately we need to find a way to return from
vpci_process_pending() during the potentially long-running p2m operations.
As an alternative suggestion, could you return from control_write_cb() after
each call to map_vfs(), and somehow make it resume where it left off?

> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
> v1->v2:
> * switch to VF discovery by Xen
> * fix sequential vpci_modify_bars calls
> * move documentation changes to a separate commit
> ---
>  xen/drivers/vpci/Makefile |   2 +-
>  xen/drivers/vpci/header.c |  17 +-
>  xen/drivers/vpci/sriov.c  | 363 ++++++++++++++++++++++++++++++++++++++
>  xen/include/xen/vpci.h    |  12 +-
>  4 files changed, 385 insertions(+), 9 deletions(-)
>  create mode 100644 xen/drivers/vpci/sriov.c
> 
> diff --git a/xen/drivers/vpci/Makefile b/xen/drivers/vpci/Makefile
> index a7c8a30a89..fe1e57b64d 100644
> --- a/xen/drivers/vpci/Makefile
> +++ b/xen/drivers/vpci/Makefile
> @@ -1,2 +1,2 @@
> -obj-y += vpci.o header.o rebar.o
> +obj-y += vpci.o header.o rebar.o sriov.o

I suggest putting sriov.o on its own line

>  obj-$(CONFIG_HAS_PCI_MSI) += msi.o msix.o
> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
> index 284964f0d4..c55c3380d4 100644
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -264,7 +264,7 @@ bool vpci_process_pending(struct vcpu *v)
>      return false;
>  }
>  
> -static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
> +static int apply_map(struct domain *d, const struct pci_dev *pdev,

There are some differences in apply_map() to be aware of that doesn't make it
suitable for use in vpci_process_pending() context, and hence why it's marked
__init:

* apply_map() uses 'current' instead of the vcpu passed from
  vpci_process_pending(), but I don't think there's a guarantee that 'current'
  will be the same vcpu. In other words, it may end up using the wrong bar_mem.
* apply_map() doesn't return on -ERESTART, instead continuously calls
  process_pending_softirqs(). While this may allow some other pending softirqs
  to execute, process_pending_softirqs() will never invoke the scheduler
  softirq.
* apply_map() doesn't handle errors from map_range() (other than -ERESTART),
  though I'm not sure if this is intentional or a bug. Compare this to the
  mapping loop in vpci_process_pending() that properly cleans up and breaks out
  of the loop on error.

>                              uint16_t cmd)
>  {
>      struct vpci_header *header = &pdev->vpci->header;
> @@ -323,7 +323,8 @@ static void defer_map(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>      raise_softirq(SCHEDULE_SOFTIRQ);
>  }
>  
> -int vpci_modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
> +int vpci_modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only,
> +                     bool no_defer)
>  {
>      struct vpci_header *header = &pdev->vpci->header;
>      struct pci_dev *tmp;
> @@ -519,7 +520,7 @@ int vpci_modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>          d = dom_xen;
>      }
>  
> -    if ( system_state < SYS_STATE_active )
> +    if ( system_state < SYS_STATE_active || no_defer )
>      {
>          /*
>           * Mappings might be created when building Dom0 if the memory decoding
> @@ -566,7 +567,7 @@ static void cf_check cmd_write(
>           * memory decoding bit has not been changed, so leave everything as-is,
>           * hoping the guest will realize and try again.
>           */
> -        vpci_modify_bars(pdev, cmd, false);
> +        vpci_modify_bars(pdev, cmd, false, false);
>      else
>          pci_conf_write16(pdev->sbdf, reg, cmd);
>  }
> @@ -736,7 +737,7 @@ static void cf_check rom_write(
>       */
>      else if ( vpci_modify_bars(pdev,
>                                 new_enabled ? PCI_COMMAND_MEMORY : 0,
> -                               true) )
> +                               true, false) )
>          /*
>           * No memory has been added or removed from the p2m (because the actual
>           * p2m changes are deferred in defer_map) and the ROM enable bit has
> @@ -954,6 +955,9 @@ int vpci_init_header(struct pci_dev *pdev)
>  
>      header->guest_cmd = cmd;
>  
> +    if ( pdev->info.is_virtfn )
> +        return vf_init_header(pdev);
> +
>      /* Disable memory decoding before sizing. */
>      if ( !is_hwdom || (cmd & PCI_COMMAND_MEMORY) )
>          pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd & ~PCI_COMMAND_MEMORY);
> @@ -1062,7 +1066,8 @@ int vpci_init_header(struct pci_dev *pdev)
>              goto fail;
>      }
>  
> -    return (cmd & PCI_COMMAND_MEMORY) ? vpci_modify_bars(pdev, cmd, false) : 0;
> +    return (cmd & PCI_COMMAND_MEMORY)
> +                ? vpci_modify_bars(pdev, cmd, false, false) : 0;
>  
>   fail:
>      pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
> diff --git a/xen/drivers/vpci/sriov.c b/xen/drivers/vpci/sriov.c
> new file mode 100644
> index 0000000000..6f691149e9
> --- /dev/null
> +++ b/xen/drivers/vpci/sriov.c
> @@ -0,0 +1,363 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Handlers for accesses to the SR-IOV capability structure.
> + *
> + * Copyright (C) 2026 Citrix Systems R&D
> + */
> +

#include "private.h"

> +#include <xen/sched.h>
> +#include <xen/vpci.h>
> +#include <xsm/xsm.h>
> +
> +static int vf_init_bars(const struct pci_dev *vf_pdev)
> +{
> +    int vf_idx;
> +    unsigned int i;
> +    const struct pci_dev *pf_pdev = vf_pdev->pf_pdev;
> +    struct vpci_bar *bars = vf_pdev->vpci->header.bars;
> +    struct vpci_bar *physfn_vf_bars = pf_pdev->vpci->sriov->vf_bars;
> +    unsigned int sriov_pos = pci_find_ext_capability(pf_pdev,
> +                                                     PCI_EXT_CAP_ID_SRIOV);
> +    uint16_t offset = pci_conf_read16(pf_pdev->sbdf,
> +                                      sriov_pos + PCI_SRIOV_VF_OFFSET);
> +    uint16_t stride = pci_conf_read16(pf_pdev->sbdf,
> +                                      sriov_pos + PCI_SRIOV_VF_STRIDE);
> +
> +    vf_idx = vf_pdev->sbdf.sbdf - (pf_pdev->sbdf.sbdf + offset);
> +    if ( vf_idx < 0 )
> +        return -EINVAL;
> +
> +    if ( stride )
> +    {
> +        if ( vf_idx % stride )
> +            return -EINVAL;
> +        vf_idx /= stride;
> +    }
> +
> +    /*
> +     * Set up BARs for this VF out of PF's VF BARs taking into account
> +     * the index of the VF.
> +     */
> +    for ( i = 0; i < PCI_SRIOV_NUM_BARS; i++ )
> +    {
> +        bars[i].addr = physfn_vf_bars[i].addr + vf_idx * physfn_vf_bars[i].size;
> +        bars[i].guest_addr = bars[i].addr;
> +        bars[i].size = physfn_vf_bars[i].size;
> +        bars[i].type = physfn_vf_bars[i].type;
> +        bars[i].prefetchable = physfn_vf_bars[i].prefetchable;
> +    }
> +
> +    return 0;
> +}
> +
> +/* Must be called form vpci_process_pending context */
> +static int map_vfs(const struct pci_dev *pf_pdev, uint16_t cmd)
> +{
> +    struct pci_dev *vf_pdev;
> +    int rc;
> +
> +    ASSERT(rw_is_write_locked(&pf_pdev->domain->pci_lock));
> +
> +    list_for_each_entry(vf_pdev, &pf_pdev->vf_list, vf_list) {

Style: { should be on its own line

> +        rc = vpci_modify_bars(vf_pdev, cmd, false, true);
> +        if ( rc )
> +        {
> +            gprintk(XENLOG_ERR, "failed to %s VF %pp: %d\n",
> +                    (cmd & PCI_COMMAND_MEMORY) ? "map" : "unmap",
> +                    &vf_pdev->sbdf, rc);
> +            return rc;
> +        }
> +    }
> +
> +    return 0;
> +}
> +
> +

Stray newline

> +static int size_vf_bars(struct pci_dev *pf_pdev, unsigned int sriov_pos)
> +{
> +    /*
> +     * NB: a non-const pci_dev of the PF is needed in order to update
> +     * vf_rlen.
> +     */
> +    struct vpci_bar *bars;
> +    unsigned int i;
> +    int rc = 0;
> +
> +    ASSERT(rw_is_write_locked(&pf_pdev->domain->pci_lock));
> +    ASSERT(!pf_pdev->info.is_virtfn);
> +    ASSERT(pf_pdev->vpci->sriov);
> +
> +    /* Read BARs for VFs out of PF's SR-IOV extended capability. */
> +    bars = pf_pdev->vpci->sriov->vf_bars;
> +    /* Set the BARs addresses and size. */
> +    for ( i = 0; i < PCI_SRIOV_NUM_BARS; i += rc )
> +    {
> +        unsigned int idx = sriov_pos + PCI_SRIOV_BAR + i * 4;
> +        uint32_t bar;
> +        uint64_t addr, size;
> +
> +        bar = pci_conf_read32(pf_pdev->sbdf, idx);
> +
> +        rc = pci_size_mem_bar(pf_pdev->sbdf, idx, &addr, &size,
> +                              PCI_BAR_VF |
> +                              ((i == PCI_SRIOV_NUM_BARS - 1) ? PCI_BAR_LAST
> +                                                             : 0));
> +
> +        /*
> +         * Update vf_rlen on the PF. According to the spec the size of
> +         * the BARs can change if the system page size register is
> +         * modified, so always update rlen when enabling VFs.
> +         */
> +        pf_pdev->physfn.vf_rlen[i] = size;
> +
> +        if ( !size )
> +        {
> +            bars[i].type = VPCI_BAR_EMPTY;
> +            continue;
> +        }
> +
> +        bars[i].addr = addr;
> +        bars[i].guest_addr = addr;
> +        bars[i].size = size;
> +        bars[i].prefetchable = bar & PCI_BASE_ADDRESS_MEM_PREFETCH;
> +
> +        switch ( rc )
> +        {
> +        case 1:
> +            bars[i].type = VPCI_BAR_MEM32;
> +            break;
> +
> +        case 2:
> +            bars[i].type = VPCI_BAR_MEM64_LO;
> +            bars[i + 1].type = VPCI_BAR_MEM64_HI;
> +            break;
> +
> +        default:
> +            ASSERT_UNREACHABLE();
> +        }
> +    }
> +
> +    rc = rc > 0 ? 0 : rc;
> +
> +    return rc;
> +}
> +
> +struct callback_data {
> +    const struct pci_dev *pdev;
> +    unsigned int pos;
> +    uint32_t value;
> +    bool enable : 1;
> +    bool disable : 1;
> +    bool map : 1;
> +    bool unmap : 1;
> +};
> +
> +static void cf_check control_write_cb(void *data)
> +{
> +    struct callback_data *cb = data;
> +    const struct pci_dev *pdev = cb->pdev;
> +    uint16_t offset = pci_conf_read16(pdev->sbdf, cb->pos + PCI_SRIOV_VF_OFFSET);
> +    uint16_t stride = pci_conf_read16(pdev->sbdf, cb->pos + PCI_SRIOV_VF_STRIDE);
> +    struct vpci_sriov *sriov = pdev->vpci->sriov;
> +    int rc = 0;
> +    unsigned int i;

The validity of pdev should be checked. vpci_process_pending() already has
logic for checking the pdev validity and acquiring d->pci_lock, I suggest
perhaps to reuse that.

> +
> +    if ( cb->unmap )
> +    {
> +        write_lock(&pdev->domain->pci_lock);
> +        map_vfs(pdev, 0);
> +        write_unlock(&pdev->domain->pci_lock);

I don't think it's appropriate to release the lock here, then re-acquire it
below in the 'if ( cb->map )' condition, however ...

> +    }
> +
> +    if ( cb->enable || cb->disable )
> +    {
> +        for ( i = 0; i < sriov->num_vfs; i++ )
> +        {
> +            const pci_sbdf_t vf_sbdf = {
> +                .sbdf = pdev->sbdf.sbdf + offset + stride * i,
> +            };
> +
> +            if ( cb->enable )
> +            {
> +                const struct pci_dev_info info = {
> +                    .is_virtfn = true,
> +                    .is_extfn = false,
> +                    .physfn.bus = pdev->sbdf.bus,
> +                    .physfn.devfn = pdev->sbdf.devfn,
> +                };
> +                rc = pci_add_device(vf_sbdf.seg, vf_sbdf.bus, vf_sbdf.devfn,
> +                                    &info, pdev->node);

... pci_add_device() acquires pcidevs_lock(), which would be against the locking
order if d->pci_lock is already held (see the comment for pci_lock in sched.h).
I wonder if we need a variant of pci_add_device() where the caller obtains the
appropriate lock(s)?

We should also consider that pci_add_device() performs vpci_assign_device(), and
I haven't completely thought through the implications of that yet.

> +            }
> +            if ( cb->disable )
> +                rc = pci_remove_device(vf_sbdf.seg, vf_sbdf.bus, vf_sbdf.devfn);
> +
> +            if ( rc && rc != -ENODEV)
> +                gprintk(XENLOG_ERR, "failed to %s VF %pp: %d\n",
> +                        cb->enable ? "add" : "remove", &vf_sbdf, rc);
> +        }
> +    }
> +
> +    if ( cb->map )
> +    {
> +        write_lock(&pdev->domain->pci_lock);
> +        rc = map_vfs(pdev, PCI_COMMAND_MEMORY);
> +
> +        if ( rc )
> +            map_vfs(pdev, 0);
> +        write_unlock(&pdev->domain->pci_lock);
> +    }
> +
> +    pci_conf_write16(pdev->sbdf, cb->pos + PCI_SRIOV_CTRL, cb->value);
> +    xfree(cb);
> +}
> +
> +static void cf_check control_write(const struct pci_dev *pdev, unsigned int reg,
> +                                   uint32_t val, void *data)
> +{
> +    unsigned int sriov_pos = reg - PCI_SRIOV_CTRL;
> +    struct vpci_sriov *sriov = pdev->vpci->sriov;
> +    struct callback_data *cb = NULL;
> +    uint16_t control = pci_conf_read16(pdev->sbdf, reg);
> +    bool mem_enabled = control & PCI_SRIOV_CTRL_MSE;
> +    bool new_mem_enabled = val & PCI_SRIOV_CTRL_MSE;
> +    bool enabled = control & PCI_SRIOV_CTRL_VFE;
> +    bool new_enabled = val & PCI_SRIOV_CTRL_VFE;
> +
> +    ASSERT(!pdev->info.is_virtfn);
> +
> +    if ( new_enabled == enabled && new_mem_enabled == mem_enabled )
> +    {
> +        pci_conf_write16(pdev->sbdf, reg, val);
> +        return;
> +    }
> +
> +    cb = xzalloc(struct callback_data);

Are there any alternatives to this runtime allocation? E.g. could the state be
stored in struct vpci_vcpu or struct vpci_sriov?

> +
> +    if ( !cb )
> +    {
> +        gprintk(XENLOG_ERR,
> +                "%pp: Unable to allocate memory for SR-IOV enable\n",
> +                pdev);
> +        return;
> +    }
> +
> +    cb->pdev = pdev;
> +    cb->pos = sriov_pos;
> +    cb->value = val;
> +    cb->map = new_mem_enabled && !mem_enabled;
> +    cb->unmap = !new_mem_enabled && mem_enabled;
> +    cb->enable = new_enabled && !enabled;
> +    cb->disable = !new_enabled && enabled;
> +
> +    current->vpci.task = WAIT;
> +    current->vpci.wait.callback = control_write_cb;
> +    current->vpci.wait.data = cb;
> +    current->vpci.wait.end = NOW();
> +
> +    if ( cb->enable )
> +    {
> +        size_vf_bars((struct pci_dev *)pdev, sriov_pos);
> +
> +        /*
> +         * Only update the number of active VFs when enabling, when
> +         * disabling use the cached value in order to always remove the same
> +         * number of VFs that were active.
> +         */
> +        sriov->num_vfs = pci_conf_read16(pdev->sbdf,
> +                                         sriov_pos + PCI_SRIOV_NUM_VF);
> +        /*
> +         * NB: VFE needs to be enabled before calling pci_add_device so Xen
> +         * can access the config space of VFs. FIXME casting away const-ness
> +         * to modify vf_rlen
> +         */
> +        pci_conf_write16(pdev->sbdf, reg, control | PCI_SRIOV_CTRL_VFE);
> +        /*
> +         * The spec states that the software must wait at least 100ms before
> +         * attempting to access VF registers when enabling virtual functions
> +         * on the PF.
> +         */
> +
> +        current->vpci.wait.end = NOW() + MILLISECS(100);
> +    }
> +}
> +
> +int vf_init_header(struct pci_dev *vf_pdev)
> +{
> +    const struct pci_dev *pf_pdev;
> +    unsigned int sriov_pos;
> +    int rc = 0;
> +    uint16_t ctrl;
> +
> +    ASSERT(rw_is_write_locked(&vf_pdev->domain->pci_lock));
> +
> +    if ( !vf_pdev->info.is_virtfn )
> +        return 0;
> +
> +    pf_pdev = vf_pdev->pf_pdev;
> +    ASSERT(pf_pdev);
> +
> +    rc = vf_init_bars(vf_pdev);
> +    if ( rc )
> +        return rc;
> +
> +    sriov_pos = pci_find_ext_capability(pf_pdev, PCI_EXT_CAP_ID_SRIOV);
> +    ctrl = pci_conf_read16(pf_pdev->sbdf, sriov_pos + PCI_SRIOV_CTRL);
> +
> +    if ( (pf_pdev->domain == vf_pdev->domain) && (ctrl & PCI_SRIOV_CTRL_MSE) )
> +    {
> +        rc = vpci_modify_bars(vf_pdev, PCI_COMMAND_MEMORY, false, false);
> +        if ( rc )
> +            return rc;
> +    }
> +
> +    return rc;
> +}
> +
> +static int cf_check init_sriov(struct pci_dev *pdev)
> +{
> +    unsigned int pos;
> +
> +    ASSERT(!pdev->info.is_virtfn);
> +
> +    pos = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_SRIOV);
> +
> +    if ( !pos )
> +        return 0;
> +
> +    if ( xsm_resource_setup_pci(XSM_PRIV, pdev->sbdf.bdf) )
> +    {
> +        printk(XENLOG_ERR
> +               "%pp: SR-IOV configuration unsupported for unpriv %pd\n",
> +               &pdev->sbdf, pdev->domain);
> +        return 0;

Should this return an error?

> +    }
> +
> +    pdev->vpci->sriov = xzalloc(struct vpci_sriov);
> +    if ( !pdev->vpci->sriov )
> +        return -ENOMEM;
> +
> +    return vpci_add_register(pdev->vpci, vpci_hw_read16, control_write,
> +                             pos + PCI_SRIOV_CTRL, 2, NULL);
> +}
> +
> +static int cf_check cleanup_sriov(const struct pci_dev *pdev, bool hide)
> +{
> +    if ( hide )
> +        return 0;
> +
> +    XFREE(pdev->vpci->sriov);

pdev->vpci->sriov should always be freed, no matter if hide == true or false.

For hardware_domain, there should also be a handler added to hide the capability
in case of hide == true. See the other capability cleanup hooks for examples.

> +
> +    return 0;
> +}
> +
> +REGISTER_VPCI_EXTCAP(SRIOV, init_sriov, cleanup_sriov);
> +
> +/*
> + * 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/vpci.h b/xen/include/xen/vpci.h
> index 47cdb54d42..ae5f3b7274 100644
> --- a/xen/include/xen/vpci.h
> +++ b/xen/include/xen/vpci.h
> @@ -45,6 +45,7 @@ typedef struct {
>      REGISTER_VPCI_CAPABILITY(PCI_EXT_CAP_ID_##name, name, finit, fclean, true)
>  
>  int __must_check vpci_init_header(struct pci_dev *pdev);
> +int __must_check vf_init_header(struct pci_dev *pdev);

Move to private.h. The function name should also have a vpci_ prefix since it's
not static.

>  
>  /* Assign vPCI to device by adding handlers. */
>  int __must_check vpci_assign_device(struct pci_dev *pdev);
> @@ -146,7 +147,6 @@ struct vpci {
>           * upon to know whether BARs are mapped into the guest p2m.
>           */
>          bool bars_mapped      : 1;
> -        /* FIXME: currently there's no support for SR-IOV. */
>      } header;
>  
>      /* MSI data. */
> @@ -200,6 +200,13 @@ struct vpci {
>              struct vpci_arch_msix_entry arch;
>          } entries[];
>      } *msix;
> +
> +    struct vpci_sriov {
> +        /* PF only */
> +        struct vpci_bar vf_bars[PCI_SRIOV_NUM_BARS];
> +        uint16_t num_vfs;
> +    } *sriov;
> +
>  #ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
>      /* Guest SBDF of the device. */
>  #define INVALID_GUEST_SBDF ((pci_sbdf_t){ .sbdf = ~0U })
> @@ -323,7 +330,8 @@ bool vpci_ecam_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int len,
>                      unsigned long *data);
>  
>  /* Map/unmap the BARs of a vPCI device. */
> -int vpci_modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only);
> +int vpci_modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only,
> +                     bool no_defer);

Move to private.h

>  
>  #endif /* __XEN__ */
>  



From xen-devel-bounces@lists.xenproject.org Thu Mar 19 22:45:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Mar 2026 22:45:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257640.1551962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3M7A-00079H-Do; Thu, 19 Mar 2026 22:45:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257640.1551962; Thu, 19 Mar 2026 22: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 1w3M7A-000799-AB; Thu, 19 Mar 2026 22:45:16 +0000
Received: by outflank-mailman (input) for mailman id 1257640;
 Thu, 19 Mar 2026 22:45: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=sa2u=BT=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1w3M79-000791-6Z
 for xen-devel@lists.xenproject.org; Thu, 19 Mar 2026 22:45:15 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 47a713a3-23e5-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Mar 2026 23:45:09 +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 9297B4EE77FD;
 Thu, 19 Mar 2026 23:45: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: 47a713a3-23e5-11f1-9ccf-f158ae23cfc8
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1773960307;
	b=RulXNESW1wZ7wJPKoTBu6I3JSdXbeBq1Uw/du5Oy5wfWLf2F10Eq/b3pEPNFDd+pwzgd
	 xU25VijrOKRvhyvKsCwtgf1eX6ksUU/EHA5t2BruA5Cqy4ucCLb89tMIR6XD7oxW7nX43
	 k/DhbXTJ1GV8LGVvF9fYkWs+mzpAnQgnJWQ9yjKX516zjMF42BaekymLHWFhQNepzGFhR
	 Oosc5UY/NHQc4soZzO/Qj+PVOEzOYeE9Ul72ZDIwQJV3GmWGyM8f5HzAu7CvVkvsYsqUP
	 F1cINRiEYF+nD82M0s9Ia25sipPCS3aoTfSzQ3N9ztU5glpXi21Iq7yd9UmDp6nRQh7VY
	 vV8e/IhowEzuM7ExBJMu73/FaF01BBFqn1BYB2HK0Bc16AEsX6lu+lCNyCtLCLISAhWXE
	 zG1NC2BD8YeYDo3wa6WpzLC2gQXfBtCpNXWToj+5yR0F7JZXBykZ3f+BrkrCqD9QdB6bx
	 I2k1sO5gaZcrbB253Eh3h8iKuEi39fqRLzq4/ZmY/Ca38LlQgojxscyeyxlpfFn5UFQiq
	 JiP30c0kf1uLLuzFcIS4O4d7Q4dgr9G5W/ovGHfMykG2m2f7DXZgq6UfuAaF8US6s5F5b
	 FWqsmL31dXBuvyIpLbBJG0go3Y4IThjzR79U5hnq1+TIxrnb5/n5flf9tT/boI0=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1773960307;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=hHOjDr+0CnsgdbkpKX8Vpudx1cC5wcHD2f6BIWZWn14=;
	b=NvJSQ4FnKLYVtALvqUh3DPr8Nm0DiEKK2FgTba6zCfQb42UyrDPJsr1+gk75AGkTdcoK
	 StYQyTLsyWIBw7XjSvgEv5GgC36KKXq+pItVFOtR358r5thqKg4qJF4bfOTOSkriMbtCb
	 Ou9z1PW8NP0zFj0xkoReWpw4L/5CaZjaZkCo1+r1omfIt0T5Uj35A+0XwBbHCEysEq0Pz
	 eh1FcH+o2VBWsDn++Jd+kCJsvHqIFUIo9mS+qAtJNp+6Bu0kfxBDUMFZr2j98mDFAUAPk
	 7xa3TZLAcJgSIUnjL86qFOxtrtZX0+/UrnbJEgFlgcRHKFBLX64Gb/CGMWck1MvdTaFUK
	 fXyO152SRDQ0JuIONtikrU82wtAxlmho8lyLybu/urDnO9avdPNHzu+Bhp+s63fAM2Y6D
	 oGXjzmU1KT0aoXVyOz2ov/6oPbJZpCVv5A8pNuJeYf63KAf3vpOYhyn1scTzCaRnt3ojI
	 2T1K59q2w+k6AeBrh5hc3leq69sdIeH/oC05KshrTPnWTOX38saVYgx3kLCDFaXcdsy5W
	 d90kKM74ki209YGREGYIx0W3+m68T6toVDYbtPxe55pMJT50ClqJprZCP45XXly2HPtMV
	 umNBsWy+y9OMQL5nAULCIvAx2X8gjvB3xtcDGQ0sKN4/9Nh+93AzVAHnIONpClY=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Thu, 19 Mar 2026 23:45:07 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: xen-devel@lists.xenproject.org, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Jens Wiklander <jens.wiklander@linaro.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
 <michal.orzel@amd.com>
Subject: Re: [PATCH] arm/tee: rename variable to address MISRA C Rule 5.3
In-Reply-To: <e7fd1f75146e7faa520414c4ffc1bd9572914039.1773951370.git.dmytro_prokopchuk1@epam.com>
References: <e7fd1f75146e7faa520414c4ffc1bd9572914039.1773951370.git.dmytro_prokopchuk1@epam.com>
Message-ID: <0da4df5923796172a0e38fc2e890a556@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 2026-03-19 21:16, Dmytro Prokopchuk1 wrote:
> The local variable 'ffa_vm_count' shadows the global variable, declared
> in 'xen/arch/arm/tee/ffa_private.h', therefore it is renamed
> 'ffa_vm2vm_count'.
> 
> No functional change.
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>

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

minor nit: it could be useful to add a link to a successful CI pipeline 
for more complex cases

> ---
>  xen/arch/arm/tee/ffa_partinfo.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/xen/arch/arm/tee/ffa_partinfo.c 
> b/xen/arch/arm/tee/ffa_partinfo.c
> index fdb03dae9a..473507ca3a 100644
> --- a/xen/arch/arm/tee/ffa_partinfo.c
> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> @@ -265,7 +265,7 @@ void ffa_handle_partition_info_get(struct 
> cpu_user_regs *regs)
>      uint32_t dst_size = 0;
>      size_t buf_size;
>      void *dst_buf, *end_buf;
> -    uint32_t ffa_vm_count = 0, ffa_sp_count = 0;
> +    uint32_t ffa_vm2vm_count = 0, ffa_sp_count = 0;
> 
>      ffa_uuid_set(&uuid,
>               get_user_reg(regs, 1),
> @@ -310,7 +310,7 @@ void ffa_handle_partition_info_get(struct 
> cpu_user_regs *regs)
>           */
>          if ( ffa_uuid_is_nil(uuid) )
>          {
> -            ffa_vm_count = get_ffa_vm_count();
> +            ffa_vm2vm_count = get_ffa_vm_count();
> 
>              /*
>               * Workaround for Linux FF-A Driver not accepting to have 
> its own
> @@ -320,7 +320,7 @@ void ffa_handle_partition_info_get(struct 
> cpu_user_regs *regs)
>               * the requester endpoint information should be included 
> or not
>               */
>              if ( ACCESS_ONCE(ctx->guest_vers) < FFA_VERSION_1_2 )
> -                ffa_vm_count -= 1;
> +                ffa_vm2vm_count -= 1;
>          }
> 
>          goto out;
> @@ -355,7 +355,7 @@ void ffa_handle_partition_info_get(struct 
> cpu_user_regs *regs)
>              goto out_rx_release;
>      }
> 
> -    ret = ffa_get_vm_partinfo(uuid, &ffa_vm_count, &dst_buf, end_buf,
> +    ret = ffa_get_vm_partinfo(uuid, &ffa_vm2vm_count, &dst_buf, 
> end_buf,
>                                dst_size);
> 
>  out_rx_release:
> @@ -370,7 +370,7 @@ out:
>          if ( flags || ACCESS_ONCE(ctx->guest_vers) == FFA_VERSION_1_0 
> )
>              dst_size = 0;
> 
> -        ffa_set_regs_success(regs, ffa_sp_count + ffa_vm_count, 
> dst_size);
> +        ffa_set_regs_success(regs, ffa_sp_count + ffa_vm2vm_count, 
> dst_size);
>      }
>  }

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


From xen-devel-bounces@lists.xenproject.org Fri Mar 20 03:18:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 03:18:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257683.1551971 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3QN1-0004AA-DO; Fri, 20 Mar 2026 03:17:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257683.1551971; Fri, 20 Mar 2026 03:17:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3QN1-00049y-9y; Fri, 20 Mar 2026 03:17:55 +0000
Received: by outflank-mailman (input) for mailman id 1257683;
 Fri, 20 Mar 2026 03:17:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4NFT=BU=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w3QMz-00049n-Km
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 03:17:54 +0000
Received: from canpmsgout10.his.huawei.com (canpmsgout10.his.huawei.com
 [113.46.200.225]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5f630e5d-240b-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 04:17:52 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.214])
 by canpmsgout10.his.huawei.com (SkyGuard) with ESMTPS id 4fcSK00QGxz1K96X;
 Fri, 20 Mar 2026 11:11:48 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 1E5564056C;
 Fri, 20 Mar 2026 11:17:48 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Fri, 20 Mar 2026 11:17: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: 5f630e5d-240b-11f1-b164-2bf370ae4941
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=BAu9Jx0jggsoB9DdjhBMDzv6GW2fgZQZhQIfabnTV1w=;
	b=0iNno9KssbzJIwOx46kM6OnZNBBxZqavG7rHHC5bdLxsRgIt4sx/XNjUZTTVDZXEoVFcegx0c
	Yif2aSgMI7B+vjuMbgqzpMuvUrJW1SQ8yRstGcNtfNLWFUMM/xjzPhZAjZffDLNoeTFLUbEByDb
	+8fyvzP5gn6CQVDmf4awY48=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Palmer Dabbelt <palmer@dabbelt.com>,
	Borislav Petkov <bp@alien8.de>, "H . Peter Anvin" <hpa@zytor.com>, Juergen
 Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Len
 Brown <lenb@kernel.org>, Sunil V L <sunilvl@ventanamicro.com>, Mark Rutland
	<mark.rutland@arm.com>, Jonathan Cameron <jonathan.cameron@huawei.com>, Kees
 Cook <kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>, Sean
 Christopherson <seanjc@google.com>, Kai Huang <kai.huang@intel.com>, Tom
 Lendacky <thomas.lendacky@amd.com>, Thomas Huth <thuth@redhat.com>, Thorsten
 Blum <thorsten.blum@linux.dev>, Kevin Loughlin <kevinloughlin@google.com>,
	Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra <peterz@infradead.org>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin Li <xin@zytor.com>,
	"Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v10 2/8] LoongArch: Add acpi_get_cpu_uid() for unified ACPI CPU UID retrieval
Date: Fri, 20 Mar 2026 11:17:31 +0800
Message-ID: <20260320031737.35048-3-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260320031737.35048-1-fengchengwen@huawei.com>
References: <20260320031737.35048-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100002.china.huawei.com (7.221.188.206) To
 kwepemk500009.china.huawei.com (7.202.194.94)

As a step towards unifying the interface for retrieving ACPI CPU UID
across architectures, introduce a new function acpi_get_cpu_uid() for
loongarch. While at it, add input validation to make the code more
robust.

Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 arch/loongarch/include/asm/acpi.h | 1 +
 arch/loongarch/kernel/acpi.c      | 9 +++++++++
 2 files changed, 10 insertions(+)

diff --git a/arch/loongarch/include/asm/acpi.h b/arch/loongarch/include/asm/acpi.h
index 7376840fa9f7..8bb101b4557e 100644
--- a/arch/loongarch/include/asm/acpi.h
+++ b/arch/loongarch/include/asm/acpi.h
@@ -44,6 +44,7 @@ static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
 {
 	return acpi_core_pic[cpu_logical_map(cpu)].processor_id;
 }
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
 
 #endif /* !CONFIG_ACPI */
 
diff --git a/arch/loongarch/kernel/acpi.c b/arch/loongarch/kernel/acpi.c
index 1367ca759468..058f0dbe8e8f 100644
--- a/arch/loongarch/kernel/acpi.c
+++ b/arch/loongarch/kernel/acpi.c
@@ -385,3 +385,12 @@ int acpi_unmap_cpu(int cpu)
 EXPORT_SYMBOL(acpi_unmap_cpu);
 
 #endif /* CONFIG_ACPI_HOTPLUG_CPU */
+
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
+{
+	if (cpu >= nr_cpu_ids)
+		return -EINVAL;
+	*uid = acpi_core_pic[cpu_logical_map(cpu)].processor_id;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 03:18:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 03:18:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257690.1552030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3QN9-0005ZK-G3; Fri, 20 Mar 2026 03:18:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257690.1552030; Fri, 20 Mar 2026 03:18:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3QN9-0005YU-8E; Fri, 20 Mar 2026 03:18:03 +0000
Received: by outflank-mailman (input) for mailman id 1257690;
 Fri, 20 Mar 2026 03:18:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4NFT=BU=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w3QN8-0004o0-Ep
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 03:18:02 +0000
Received: from canpmsgout01.his.huawei.com (canpmsgout01.his.huawei.com
 [113.46.200.216]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 65643f5e-240b-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Mar 2026 04:18:00 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.104])
 by canpmsgout01.his.huawei.com (SkyGuard) with ESMTPS id 4fcSKt0TLYz1T4jB;
 Fri, 20 Mar 2026 11:12:34 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id B38694056A;
 Fri, 20 Mar 2026 11:17:57 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Fri, 20 Mar 2026 11:17: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: 65643f5e-240b-11f1-9ccf-f158ae23cfc8
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=hE9w7JoPF7q5rCf6KhhEJWJqCptovuDZd/Iy/+tLfKo=;
	b=qLgUdTXyB2huFMYWwsBs6yJ/F+9lt0zGJ2NBn+WC66I23Xw4lD/MYLZdp/AaESL9MDwbvh4PG
	4g/cCYoR/67GmTbgs1X5afshxewzUwAWGLnOlgBOHKQjEtF2bK4P57/PDC46EmJDfRwKl3h1FiZ
	k+9EKAAKSPQbPzHjYnS4Cu4=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Palmer Dabbelt <palmer@dabbelt.com>,
	Borislav Petkov <bp@alien8.de>, "H . Peter Anvin" <hpa@zytor.com>, Juergen
 Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Len
 Brown <lenb@kernel.org>, Sunil V L <sunilvl@ventanamicro.com>, Mark Rutland
	<mark.rutland@arm.com>, Jonathan Cameron <jonathan.cameron@huawei.com>, Kees
 Cook <kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>, Sean
 Christopherson <seanjc@google.com>, Kai Huang <kai.huang@intel.com>, Tom
 Lendacky <thomas.lendacky@amd.com>, Thomas Huth <thuth@redhat.com>, Thorsten
 Blum <thorsten.blum@linux.dev>, Kevin Loughlin <kevinloughlin@google.com>,
	Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra <peterz@infradead.org>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin Li <xin@zytor.com>,
	"Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v10 8/8] PCI/TPH: Pass ACPI Processor UID to Cache Locality _DSM
Date: Fri, 20 Mar 2026 11:17:37 +0800
Message-ID: <20260320031737.35048-9-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260320031737.35048-1-fengchengwen@huawei.com>
References: <20260320031737.35048-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100002.china.huawei.com (7.221.188.206) To
 kwepemk500009.china.huawei.com (7.202.194.94)

pcie_tph_get_cpu_st() uses the Query Cache Locality Features _DSM [1]
to retrieve the TPH Steering Tag for memory associated with the CPU
identified by its "cpu_uid" parameter, a Linux logical CPU ID.

The _DSM requires an ACPI Processor UID, which pcie_tph_get_cpu_st()
previously assumed was the same as the Linux logical CPU ID. This is
true on x86 but not on arm64, so pcie_tph_get_cpu_st() returned the
wrong Steering Tag, resulting in incorrect TPH functionality on arm64.

Convert the Linux logical CPU ID to the ACPI Processor UID with
acpi_get_cpu_uid() before passing it to the _DSM. Additionally, rename
the pcie_tph_get_cpu_st() parameter from "cpu_uid" to "cpu" to reflect
that it represents a logical CPU ID (not an ACPI Processor UID).

[1] According to ECN_TPH-ST_Revision_20200924
    (https://members.pcisig.com/wg/PCI-SIG/document/15470), the input
    is defined as: "If the target is a processor, then this field
    represents the ACPI Processor UID of the processor as specified in
    the MADT. If the target is a processor container, then this field
    represents the ACPI Processor UID of the processor container as
    specified in the PPTT."

Fixes: d2e8a34876ce ("PCI/TPH: Add Steering Tag support")
Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
Reviewed-by: Bjorn Helgaas <bhelgaas@google.com>
---
 Documentation/PCI/tph.rst |  4 ++--
 drivers/pci/tph.c         | 16 +++++++++++-----
 include/linux/pci-tph.h   |  4 ++--
 3 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/Documentation/PCI/tph.rst b/Documentation/PCI/tph.rst
index e8993be64fd6..b6cf22b9bd90 100644
--- a/Documentation/PCI/tph.rst
+++ b/Documentation/PCI/tph.rst
@@ -79,10 +79,10 @@ To retrieve a Steering Tag for a target memory associated with a specific
 CPU, use the following function::
 
   int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type type,
-                          unsigned int cpu_uid, u16 *tag);
+                          unsigned int cpu, u16 *tag);
 
 The `type` argument is used to specify the memory type, either volatile
-or persistent, of the target memory. The `cpu_uid` argument specifies the
+or persistent, of the target memory. The `cpu` argument specifies the
 CPU where the memory is associated to.
 
 After the ST value is retrieved, the device driver can use the following
diff --git a/drivers/pci/tph.c b/drivers/pci/tph.c
index ca4f97be7538..b67c9ad14bda 100644
--- a/drivers/pci/tph.c
+++ b/drivers/pci/tph.c
@@ -236,21 +236,27 @@ static int write_tag_to_st_table(struct pci_dev *pdev, int index, u16 tag)
  * with a specific CPU
  * @pdev: PCI device
  * @mem_type: target memory type (volatile or persistent RAM)
- * @cpu_uid: associated CPU id
+ * @cpu: associated CPU id
  * @tag: Steering Tag to be returned
  *
  * Return the Steering Tag for a target memory that is associated with a
- * specific CPU as indicated by cpu_uid.
+ * specific CPU as indicated by cpu.
  *
  * Return: 0 if success, otherwise negative value (-errno)
  */
 int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type mem_type,
-			unsigned int cpu_uid, u16 *tag)
+			unsigned int cpu, u16 *tag)
 {
 #ifdef CONFIG_ACPI
 	struct pci_dev *rp;
 	acpi_handle rp_acpi_handle;
 	union st_info info;
+	u32 cpu_uid;
+	int ret;
+
+	ret = acpi_get_cpu_uid(cpu, &cpu_uid);
+	if (ret != 0)
+		return ret;
 
 	rp = pcie_find_root_port(pdev);
 	if (!rp || !rp->bus || !rp->bus->bridge)
@@ -265,9 +271,9 @@ int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type mem_type,
 
 	*tag = tph_extract_tag(mem_type, pdev->tph_req_type, &info);
 
-	pci_dbg(pdev, "get steering tag: mem_type=%s, cpu_uid=%d, tag=%#04x\n",
+	pci_dbg(pdev, "get steering tag: mem_type=%s, cpu=%d, tag=%#04x\n",
 		(mem_type == TPH_MEM_TYPE_VM) ? "volatile" : "persistent",
-		cpu_uid, *tag);
+		cpu, *tag);
 
 	return 0;
 #else
diff --git a/include/linux/pci-tph.h b/include/linux/pci-tph.h
index ba28140ce670..be68cd17f2f8 100644
--- a/include/linux/pci-tph.h
+++ b/include/linux/pci-tph.h
@@ -25,7 +25,7 @@ int pcie_tph_set_st_entry(struct pci_dev *pdev,
 			  unsigned int index, u16 tag);
 int pcie_tph_get_cpu_st(struct pci_dev *dev,
 			enum tph_mem_type mem_type,
-			unsigned int cpu_uid, u16 *tag);
+			unsigned int cpu, u16 *tag);
 void pcie_disable_tph(struct pci_dev *pdev);
 int pcie_enable_tph(struct pci_dev *pdev, int mode);
 u16 pcie_tph_get_st_table_size(struct pci_dev *pdev);
@@ -36,7 +36,7 @@ static inline int pcie_tph_set_st_entry(struct pci_dev *pdev,
 { return -EINVAL; }
 static inline int pcie_tph_get_cpu_st(struct pci_dev *dev,
 				      enum tph_mem_type mem_type,
-				      unsigned int cpu_uid, u16 *tag)
+				      unsigned int cpu, u16 *tag)
 { return -EINVAL; }
 static inline void pcie_disable_tph(struct pci_dev *pdev) { }
 static inline int pcie_enable_tph(struct pci_dev *pdev, int mode)
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 03:18:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 03:18:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257686.1551997 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3QN6-0004ol-2k; Fri, 20 Mar 2026 03:18:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257686.1551997; Fri, 20 Mar 2026 03:18:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3QN5-0004oe-VR; Fri, 20 Mar 2026 03:17:59 +0000
Received: by outflank-mailman (input) for mailman id 1257686;
 Fri, 20 Mar 2026 03:17: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=4NFT=BU=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w3QN4-00049n-IL
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 03:17:58 +0000
Received: from canpmsgout07.his.huawei.com (canpmsgout07.his.huawei.com
 [113.46.200.222]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 63320f70-240b-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 04:17:57 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.15])
 by canpmsgout07.his.huawei.com (SkyGuard) with ESMTPS id 4fcSK46rJzzLlVb;
 Fri, 20 Mar 2026 11:11:52 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 7BEF640565;
 Fri, 20 Mar 2026 11:17:54 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Fri, 20 Mar 2026 11:17: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: 63320f70-240b-11f1-b164-2bf370ae4941
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=zauzEDoW1iZZVg1rc8HmzuZCwLSftmOLfB8Jb8RY2BQ=;
	b=J5TZKxoHIReSEQmbTRfXFVLNZ+/IUwuE+uW11i8+jkMuLeZGtwJVXLQfuq4LHOSczhwfghmzc
	YFCMaPt2RTCEgwugJISj0LKEbk2ZW0qVVKN1TRrnTPUfnEonx2LqeBG0wXshmZawXX2M7xbOaMf
	BcPDzWOBbKROUN5RO0vtU+I=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Palmer Dabbelt <palmer@dabbelt.com>,
	Borislav Petkov <bp@alien8.de>, "H . Peter Anvin" <hpa@zytor.com>, Juergen
 Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Len
 Brown <lenb@kernel.org>, Sunil V L <sunilvl@ventanamicro.com>, Mark Rutland
	<mark.rutland@arm.com>, Jonathan Cameron <jonathan.cameron@huawei.com>, Kees
 Cook <kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>, Sean
 Christopherson <seanjc@google.com>, Kai Huang <kai.huang@intel.com>, Tom
 Lendacky <thomas.lendacky@amd.com>, Thomas Huth <thuth@redhat.com>, Thorsten
 Blum <thorsten.blum@linux.dev>, Kevin Loughlin <kevinloughlin@google.com>,
	Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra <peterz@infradead.org>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin Li <xin@zytor.com>,
	"Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v10 6/8] perf: arm_cspmu: Switch to acpi_get_cpu_uid() from get_acpi_id_for_cpu()
Date: Fri, 20 Mar 2026 11:17:35 +0800
Message-ID: <20260320031737.35048-7-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260320031737.35048-1-fengchengwen@huawei.com>
References: <20260320031737.35048-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100002.china.huawei.com (7.221.188.206) To
 kwepemk500009.china.huawei.com (7.202.194.94)

Update arm_cspmu to use acpi_get_cpu_uid() instead of
get_acpi_id_for_cpu(), aligning with unified ACPI CPU UID interface.

No functional changes are introduced by this switch (valid inputs retain
original behavior).

Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 drivers/perf/arm_cspmu/arm_cspmu.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/perf/arm_cspmu/arm_cspmu.c b/drivers/perf/arm_cspmu/arm_cspmu.c
index 34430b68f602..ed72c3d1f796 100644
--- a/drivers/perf/arm_cspmu/arm_cspmu.c
+++ b/drivers/perf/arm_cspmu/arm_cspmu.c
@@ -1107,15 +1107,17 @@ static int arm_cspmu_acpi_get_cpus(struct arm_cspmu *cspmu)
 {
 	struct acpi_apmt_node *apmt_node;
 	int affinity_flag;
+	u32 cpu_uid;
 	int cpu;
+	int ret;
 
 	apmt_node = arm_cspmu_apmt_node(cspmu->dev);
 	affinity_flag = apmt_node->flags & ACPI_APMT_FLAGS_AFFINITY;
 
 	if (affinity_flag == ACPI_APMT_FLAGS_AFFINITY_PROC) {
 		for_each_possible_cpu(cpu) {
-			if (apmt_node->proc_affinity ==
-			    get_acpi_id_for_cpu(cpu)) {
+			ret = acpi_get_cpu_uid(cpu, &cpu_uid);
+			if (ret == 0 && apmt_node->proc_affinity == cpu_uid) {
 				cpumask_set_cpu(cpu, &cspmu->associated_cpus);
 				break;
 			}
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 03:18:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 03:18:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257689.1552026 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3QN9-0005Uo-4E; Fri, 20 Mar 2026 03:18:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257689.1552026; Fri, 20 Mar 2026 03:18:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3QN8-0005Tt-UL; Fri, 20 Mar 2026 03:18:02 +0000
Received: by outflank-mailman (input) for mailman id 1257689;
 Fri, 20 Mar 2026 03:18:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4NFT=BU=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w3QN7-0004o0-VD
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 03:18:01 +0000
Received: from canpmsgout01.his.huawei.com (canpmsgout01.his.huawei.com
 [113.46.200.216]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5fd521b6-240b-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Mar 2026 04:17:52 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.162.140])
 by canpmsgout01.his.huawei.com (SkyGuard) with ESMTPS id 4fcSKf63Y8z1T4Fg;
 Fri, 20 Mar 2026 11:12:22 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 832D62012A;
 Fri, 20 Mar 2026 11:17:46 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Fri, 20 Mar 2026 11:17:44 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5fd521b6-240b-11f1-9ccf-f158ae23cfc8
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=iz8YIEZdONKZjhVUadBKtisgs3GnBKQW890wI7E2K40=;
	b=JkiHQ4POUePhg6nVnn7KYCDnENz7SLcoof0mOjF3SuSUq8iuNklW2rhRA5lGQFfksKsKg/CJB
	fgMOjIFrgZCX9KAxkrsIaVclooF0P9jJSHtGkT9OJDkVde3FzBSqg1oVyD4JQp6fGM3G+LNl1gU
	iaDtpnWu2OjsLqrqB35ybCc=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Palmer Dabbelt <palmer@dabbelt.com>,
	Borislav Petkov <bp@alien8.de>, "H . Peter Anvin" <hpa@zytor.com>, Juergen
 Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Len
 Brown <lenb@kernel.org>, Sunil V L <sunilvl@ventanamicro.com>, Mark Rutland
	<mark.rutland@arm.com>, Jonathan Cameron <jonathan.cameron@huawei.com>, Kees
 Cook <kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>, Sean
 Christopherson <seanjc@google.com>, Kai Huang <kai.huang@intel.com>, Tom
 Lendacky <thomas.lendacky@amd.com>, Thomas Huth <thuth@redhat.com>, Thorsten
 Blum <thorsten.blum@linux.dev>, Kevin Loughlin <kevinloughlin@google.com>,
	Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra <peterz@infradead.org>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin Li <xin@zytor.com>,
	"Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v10 1/8] arm64: acpi: Add acpi_get_cpu_uid() for unified ACPI CPU UID retrieval
Date: Fri, 20 Mar 2026 11:17:30 +0800
Message-ID: <20260320031737.35048-2-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260320031737.35048-1-fengchengwen@huawei.com>
References: <20260320031737.35048-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100002.china.huawei.com (7.221.188.206) To
 kwepemk500009.china.huawei.com (7.202.194.94)

As a step towards unifying the interface for retrieving ACPI CPU UID
across architectures, introduce a new function acpi_get_cpu_uid() for
arm64. While at it, add input validation to make the code more robust.

Reimplement get_cpu_for_acpi_id() based on acpi_get_cpu_uid() for
consistency, and move its implementation next to the new function for
code coherence.

Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 arch/arm64/include/asm/acpi.h | 14 ++------------
 arch/arm64/kernel/acpi.c      | 30 ++++++++++++++++++++++++++++++
 2 files changed, 32 insertions(+), 12 deletions(-)

diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
index c07a58b96329..2219a3301e72 100644
--- a/arch/arm64/include/asm/acpi.h
+++ b/arch/arm64/include/asm/acpi.h
@@ -118,18 +118,8 @@ static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
 {
 	return	acpi_cpu_get_madt_gicc(cpu)->uid;
 }
-
-static inline int get_cpu_for_acpi_id(u32 uid)
-{
-	int cpu;
-
-	for (cpu = 0; cpu < nr_cpu_ids; cpu++)
-		if (acpi_cpu_get_madt_gicc(cpu) &&
-		    uid == get_acpi_id_for_cpu(cpu))
-			return cpu;
-
-	return -EINVAL;
-}
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
+int get_cpu_for_acpi_id(u32 uid);
 
 static inline void arch_fix_phys_package_id(int num, u32 slot) { }
 void __init acpi_init_cpus(void);
diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
index af90128cfed5..24b9d934be54 100644
--- a/arch/arm64/kernel/acpi.c
+++ b/arch/arm64/kernel/acpi.c
@@ -458,3 +458,33 @@ int acpi_unmap_cpu(int cpu)
 }
 EXPORT_SYMBOL(acpi_unmap_cpu);
 #endif /* CONFIG_ACPI_HOTPLUG_CPU */
+
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
+{
+	struct acpi_madt_generic_interrupt *gicc;
+
+	if (cpu >= nr_cpu_ids)
+		return -EINVAL;
+
+	gicc = acpi_cpu_get_madt_gicc(cpu);
+	if (!gicc)
+		return -ENODEV;
+
+	*uid = gicc->uid;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
+
+int get_cpu_for_acpi_id(u32 uid)
+{
+	u32 cpu_uid;
+	int ret;
+
+	for (int cpu = 0; cpu < nr_cpu_ids; cpu++) {
+		ret = acpi_get_cpu_uid(cpu, &cpu_uid);
+		if (ret == 0 && uid == cpu_uid)
+			return cpu;
+	}
+
+	return -EINVAL;
+}
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 03:18:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 03:18:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257687.1552006 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3QN7-00053L-Do; Fri, 20 Mar 2026 03:18:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257687.1552006; Fri, 20 Mar 2026 03: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 1w3QN7-00053E-B2; Fri, 20 Mar 2026 03:18:01 +0000
Received: by outflank-mailman (input) for mailman id 1257687;
 Fri, 20 Mar 2026 03: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=4NFT=BU=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w3QN5-0004o0-GY
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 03:17:59 +0000
Received: from canpmsgout10.his.huawei.com (canpmsgout10.his.huawei.com
 [113.46.200.225]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 629a01bf-240b-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Mar 2026 04:17:56 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.200])
 by canpmsgout10.his.huawei.com (SkyGuard) with ESMTPS id 4fcSK46PmXz1K96X;
 Fri, 20 Mar 2026 11:11:52 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id E9F8040567;
 Fri, 20 Mar 2026 11:17:52 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Fri, 20 Mar 2026 11:17: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: 629a01bf-240b-11f1-9ccf-f158ae23cfc8
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=ANvjKw/V+x/xgnK84bsEKs2slfuc72S2wtUZ6Ltd7AU=;
	b=gAhZczIG65dC2yh+2aADvwVAp++19t5FyGF4ZzbeSLiKAirv37HFkiFuy/A1lWBlr5MpsM4Ut
	Lnhv1/GDpeZI1w99rpED8gfQlunCOXOTiUjR1yp3rBy23eO6v/Ttq6ZYJsfo+fm/1xgWotDODEb
	YV0jLZY6lrTP0qpYzZ1KoG4=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Palmer Dabbelt <palmer@dabbelt.com>,
	Borislav Petkov <bp@alien8.de>, "H . Peter Anvin" <hpa@zytor.com>, Juergen
 Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Len
 Brown <lenb@kernel.org>, Sunil V L <sunilvl@ventanamicro.com>, Mark Rutland
	<mark.rutland@arm.com>, Jonathan Cameron <jonathan.cameron@huawei.com>, Kees
 Cook <kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>, Sean
 Christopherson <seanjc@google.com>, Kai Huang <kai.huang@intel.com>, Tom
 Lendacky <thomas.lendacky@amd.com>, Thomas Huth <thuth@redhat.com>, Thorsten
 Blum <thorsten.blum@linux.dev>, Kevin Loughlin <kevinloughlin@google.com>,
	Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra <peterz@infradead.org>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin Li <xin@zytor.com>,
	"Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v10 5/8] ACPI: Centralize acpi_get_cpu_uid() declaration in include/linux/acpi.h
Date: Fri, 20 Mar 2026 11:17:34 +0800
Message-ID: <20260320031737.35048-6-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260320031737.35048-1-fengchengwen@huawei.com>
References: <20260320031737.35048-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100002.china.huawei.com (7.221.188.206) To
 kwepemk500009.china.huawei.com (7.202.194.94)

Centralize acpi_get_cpu_uid() in include/linux/acpi.h (global scope) and
remove arch-specific declarations from arm64/loongarch/riscv/x86
asm/acpi.h. This unifies the interface across architectures and
simplifies maintenance by eliminating duplicate prototypes.

Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 arch/arm64/include/asm/acpi.h     |  1 -
 arch/loongarch/include/asm/acpi.h |  1 -
 arch/riscv/include/asm/acpi.h     |  1 -
 arch/x86/include/asm/acpi.h       |  2 --
 include/linux/acpi.h              | 11 +++++++++++
 5 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
index 2219a3301e72..bdb0ecf95b5c 100644
--- a/arch/arm64/include/asm/acpi.h
+++ b/arch/arm64/include/asm/acpi.h
@@ -118,7 +118,6 @@ static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
 {
 	return	acpi_cpu_get_madt_gicc(cpu)->uid;
 }
-int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
 int get_cpu_for_acpi_id(u32 uid);
 
 static inline void arch_fix_phys_package_id(int num, u32 slot) { }
diff --git a/arch/loongarch/include/asm/acpi.h b/arch/loongarch/include/asm/acpi.h
index 8bb101b4557e..7376840fa9f7 100644
--- a/arch/loongarch/include/asm/acpi.h
+++ b/arch/loongarch/include/asm/acpi.h
@@ -44,7 +44,6 @@ static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
 {
 	return acpi_core_pic[cpu_logical_map(cpu)].processor_id;
 }
-int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
 
 #endif /* !CONFIG_ACPI */
 
diff --git a/arch/riscv/include/asm/acpi.h b/arch/riscv/include/asm/acpi.h
index f3520cc85af3..6e13695120bc 100644
--- a/arch/riscv/include/asm/acpi.h
+++ b/arch/riscv/include/asm/acpi.h
@@ -65,7 +65,6 @@ static inline u32 get_acpi_id_for_cpu(int cpu)
 {
 	return acpi_cpu_get_madt_rintc(cpu)->uid;
 }
-int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
 
 int acpi_get_riscv_isa(struct acpi_table_header *table,
 		       unsigned int cpu, const char **isa);
diff --git a/arch/x86/include/asm/acpi.h b/arch/x86/include/asm/acpi.h
index 92b5c27c4fea..a03aa6f999d1 100644
--- a/arch/x86/include/asm/acpi.h
+++ b/arch/x86/include/asm/acpi.h
@@ -157,8 +157,6 @@ static inline bool acpi_has_cpu_in_madt(void)
 	return !!acpi_lapic;
 }
 
-int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
-
 #define ACPI_HAVE_ARCH_SET_ROOT_POINTER
 static __always_inline void acpi_arch_set_root_pointer(u64 addr)
 {
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 4d2f0bed7a06..74a73f0e5944 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -324,6 +324,17 @@ int acpi_unmap_cpu(int cpu);
 
 acpi_handle acpi_get_processor_handle(int cpu);
 
+/**
+ * acpi_get_cpu_uid() - Get ACPI Processor UID of from MADT table
+ * @cpu: Logical CPU number (0-based)
+ * @uid: Pointer to store ACPI Processor UID
+ *
+ * Return: 0 on success (ACPI Processor ID stored in *uid);
+ *         -EINVAL if CPU number is invalid or out of range;
+ *         -ENODEV if ACPI Processor UID for the CPU is not found.
+ */
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
+
 #ifdef CONFIG_ACPI_HOTPLUG_IOAPIC
 int acpi_get_ioapic_id(acpi_handle handle, u32 gsi_base, u64 *phys_addr);
 #endif
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 03:18:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 03:18:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257688.1552011 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3QN7-00056k-Oq; Fri, 20 Mar 2026 03:18:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257688.1552011; Fri, 20 Mar 2026 03: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 1w3QN7-00056S-JM; Fri, 20 Mar 2026 03:18:01 +0000
Received: by outflank-mailman (input) for mailman id 1257688;
 Fri, 20 Mar 2026 03:18: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=4NFT=BU=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w3QN6-0004o0-BJ
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 03:18:00 +0000
Received: from canpmsgout10.his.huawei.com (canpmsgout10.his.huawei.com
 [113.46.200.225]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 64263b69-240b-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Mar 2026 04:17:58 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.162.92])
 by canpmsgout10.his.huawei.com (SkyGuard) with ESMTPS id 4fcSK804FCz1K9Zv;
 Fri, 20 Mar 2026 11:11:56 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 14B0940565;
 Fri, 20 Mar 2026 11:17:56 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Fri, 20 Mar 2026 11:17:54 +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: 64263b69-240b-11f1-9ccf-f158ae23cfc8
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=/eBsZSTPYF/YtxnkPhtkEULxH4VEHo0dKDplLzt2h+U=;
	b=ypbclQg4Iukdlkqpoizb0I/F7L+DePAd+M0//lXkMgfo2Tebtl3dWlIRb5T+BpmkoHuv3dAUf
	q4obfVRqfYA+w4THr01Bmp7st54V9VWVLRFBbSiDcMjxC61DIiVgmZCmNOX7nmSXAg0dF57r5Ul
	C2JQqU6Aei7BxV0EFNUv0ls=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Palmer Dabbelt <palmer@dabbelt.com>,
	Borislav Petkov <bp@alien8.de>, "H . Peter Anvin" <hpa@zytor.com>, Juergen
 Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Len
 Brown <lenb@kernel.org>, Sunil V L <sunilvl@ventanamicro.com>, Mark Rutland
	<mark.rutland@arm.com>, Jonathan Cameron <jonathan.cameron@huawei.com>, Kees
 Cook <kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>, Sean
 Christopherson <seanjc@google.com>, Kai Huang <kai.huang@intel.com>, Tom
 Lendacky <thomas.lendacky@amd.com>, Thomas Huth <thuth@redhat.com>, Thorsten
 Blum <thorsten.blum@linux.dev>, Kevin Loughlin <kevinloughlin@google.com>,
	Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra <peterz@infradead.org>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin Li <xin@zytor.com>,
	"Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v10 7/8] ACPI: PPTT: Use acpi_get_cpu_uid() and remove get_acpi_id_for_cpu()
Date: Fri, 20 Mar 2026 11:17:36 +0800
Message-ID: <20260320031737.35048-8-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260320031737.35048-1-fengchengwen@huawei.com>
References: <20260320031737.35048-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100002.china.huawei.com (7.221.188.206) To
 kwepemk500009.china.huawei.com (7.202.194.94)

Update acpi/pptt.c to use acpi_get_cpu_uid() and remove unused
get_acpi_id_for_cpu() from arm64/loongarch/riscv, completing PPTT's
migration to the unified ACPI CPU UID interface

Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 arch/arm64/include/asm/acpi.h     |  4 ---
 arch/loongarch/include/asm/acpi.h |  5 ----
 arch/riscv/include/asm/acpi.h     |  4 ---
 drivers/acpi/pptt.c               | 50 +++++++++++++++++++++++--------
 4 files changed, 37 insertions(+), 26 deletions(-)

diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
index bdb0ecf95b5c..8a54ca6ba602 100644
--- a/arch/arm64/include/asm/acpi.h
+++ b/arch/arm64/include/asm/acpi.h
@@ -114,10 +114,6 @@ static inline bool acpi_has_cpu_in_madt(void)
 }
 
 struct acpi_madt_generic_interrupt *acpi_cpu_get_madt_gicc(int cpu);
-static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
-{
-	return	acpi_cpu_get_madt_gicc(cpu)->uid;
-}
 int get_cpu_for_acpi_id(u32 uid);
 
 static inline void arch_fix_phys_package_id(int num, u32 slot) { }
diff --git a/arch/loongarch/include/asm/acpi.h b/arch/loongarch/include/asm/acpi.h
index 7376840fa9f7..eda9d4d0a493 100644
--- a/arch/loongarch/include/asm/acpi.h
+++ b/arch/loongarch/include/asm/acpi.h
@@ -40,11 +40,6 @@ extern struct acpi_madt_core_pic acpi_core_pic[MAX_CORE_PIC];
 
 extern int __init parse_acpi_topology(void);
 
-static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
-{
-	return acpi_core_pic[cpu_logical_map(cpu)].processor_id;
-}
-
 #endif /* !CONFIG_ACPI */
 
 #define ACPI_TABLE_UPGRADE_MAX_PHYS ARCH_LOW_ADDRESS_LIMIT
diff --git a/arch/riscv/include/asm/acpi.h b/arch/riscv/include/asm/acpi.h
index 6e13695120bc..26ab37c171bc 100644
--- a/arch/riscv/include/asm/acpi.h
+++ b/arch/riscv/include/asm/acpi.h
@@ -61,10 +61,6 @@ static inline void arch_fix_phys_package_id(int num, u32 slot) { }
 
 void acpi_init_rintc_map(void);
 struct acpi_madt_rintc *acpi_cpu_get_madt_rintc(int cpu);
-static inline u32 get_acpi_id_for_cpu(int cpu)
-{
-	return acpi_cpu_get_madt_rintc(cpu)->uid;
-}
 
 int acpi_get_riscv_isa(struct acpi_table_header *table,
 		       unsigned int cpu, const char **isa);
diff --git a/drivers/acpi/pptt.c b/drivers/acpi/pptt.c
index de5f8c018333..7bd5bc1f225a 100644
--- a/drivers/acpi/pptt.c
+++ b/drivers/acpi/pptt.c
@@ -459,11 +459,14 @@ static void cache_setup_acpi_cpu(struct acpi_table_header *table,
 {
 	struct acpi_pptt_cache *found_cache;
 	struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id;
 	struct cacheinfo *this_leaf;
 	unsigned int index = 0;
 	struct acpi_pptt_processor *cpu_node = NULL;
 
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+		return;
+
 	while (index < get_cpu_cacheinfo(cpu)->num_leaves) {
 		this_leaf = this_cpu_ci->info_list + index;
 		found_cache = acpi_find_cache_node(table, acpi_cpu_id,
@@ -546,7 +549,10 @@ static int topology_get_acpi_cpu_tag(struct acpi_table_header *table,
 				     unsigned int cpu, int level, int flag)
 {
 	struct acpi_pptt_processor *cpu_node;
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id;
+
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+		return -ENOENT;
 
 	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 	if (cpu_node) {
@@ -614,18 +620,22 @@ static int find_acpi_cpu_topology_tag(unsigned int cpu, int level, int flag)
  *
  * Check the node representing a CPU for a given flag.
  *
- * Return: -ENOENT if the PPTT doesn't exist, the CPU cannot be found or
- *	   the table revision isn't new enough.
+ * Return: -ENOENT if can't get CPU's ACPI Processor UID, the PPTT doesn't
+ *	   exist, the CPU cannot be found or the table revision isn't new
+ *	   enough.
  *	   1, any passed flag set
  *	   0, flag unset
  */
 static int check_acpi_cpu_flag(unsigned int cpu, int rev, u32 flag)
 {
 	struct acpi_table_header *table;
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id;
 	struct acpi_pptt_processor *cpu_node = NULL;
 	int ret = -ENOENT;
 
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+		return -ENOENT;
+
 	table = acpi_get_pptt();
 	if (!table)
 		return -ENOENT;
@@ -651,7 +661,8 @@ static int check_acpi_cpu_flag(unsigned int cpu, int rev, u32 flag)
  * in the PPTT. Errors caused by lack of a PPTT table, or otherwise, return 0
  * indicating we didn't find any cache levels.
  *
- * Return: -ENOENT if no PPTT table or no PPTT processor struct found.
+ * Return: -ENOENT if no PPTT table, can't get CPU's ACPI Process UID or no PPTT
+ *	   processor struct found.
  *	   0 on success.
  */
 int acpi_get_cache_info(unsigned int cpu, unsigned int *levels,
@@ -671,7 +682,9 @@ int acpi_get_cache_info(unsigned int cpu, unsigned int *levels,
 
 	pr_debug("Cache Setup: find cache levels for CPU=%d\n", cpu);
 
-	acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id))
+		return -ENOENT;
+
 	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 	if (!cpu_node)
 		return -ENOENT;
@@ -780,8 +793,9 @@ int find_acpi_cpu_topology_package(unsigned int cpu)
  * It may not exist in single CPU systems. In simple multi-CPU systems,
  * it may be equal to the package topology level.
  *
- * Return: -ENOENT if the PPTT doesn't exist, the CPU cannot be found
- * or there is no toplogy level above the CPU..
+ * Return: -ENOENT if the PPTT doesn't exist, can't get CPU's ACPI
+ * Processor UID, the CPU cannot be found or there is no toplogy level
+ * above the CPU.
  * Otherwise returns a value which represents the package for this CPU.
  */
 
@@ -797,7 +811,9 @@ int find_acpi_cpu_topology_cluster(unsigned int cpu)
 	if (!table)
 		return -ENOENT;
 
-	acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+		return -ENOENT;
+
 	cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 	if (!cpu_node || !cpu_node->parent)
 		return -ENOENT;
@@ -872,7 +888,9 @@ static void acpi_pptt_get_child_cpus(struct acpi_table_header *table_hdr,
 	cpumask_clear(cpus);
 
 	for_each_possible_cpu(cpu) {
-		acpi_id = get_acpi_id_for_cpu(cpu);
+		if (acpi_get_cpu_uid(cpu, &acpi_id) != 0)
+			continue;
+
 		cpu_node = acpi_find_processor_node(table_hdr, acpi_id);
 
 		while (cpu_node) {
@@ -966,10 +984,13 @@ int find_acpi_cache_level_from_id(u32 cache_id)
 	for_each_possible_cpu(cpu) {
 		bool empty;
 		int level = 1;
-		u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+		u32 acpi_cpu_id;
 		struct acpi_pptt_cache *cache;
 		struct acpi_pptt_processor *cpu_node;
 
+		if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+			continue;
+
 		cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 		if (!cpu_node)
 			continue;
@@ -1030,10 +1051,13 @@ int acpi_pptt_get_cpumask_from_cache_id(u32 cache_id, cpumask_t *cpus)
 	for_each_possible_cpu(cpu) {
 		bool empty;
 		int level = 1;
-		u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+		u32 acpi_cpu_id;
 		struct acpi_pptt_cache *cache;
 		struct acpi_pptt_processor *cpu_node;
 
+		if (acpi_get_cpu_uid(cpu, &acpi_cpu_id) != 0)
+			continue;
+
 		cpu_node = acpi_find_processor_node(table, acpi_cpu_id);
 		if (!cpu_node)
 			continue;
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 03:18:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 03:18:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257684.1551975 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3QN1-0004CT-N1; Fri, 20 Mar 2026 03:17:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257684.1551975; Fri, 20 Mar 2026 03:17:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3QN1-0004BR-HT; Fri, 20 Mar 2026 03:17:55 +0000
Received: by outflank-mailman (input) for mailman id 1257684;
 Fri, 20 Mar 2026 03:17:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4NFT=BU=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w3QN0-00049n-9i
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 03:17:54 +0000
Received: from canpmsgout02.his.huawei.com (canpmsgout02.his.huawei.com
 [113.46.200.217]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5e59f59a-240b-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 04:17:50 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.162.197])
 by canpmsgout02.his.huawei.com (SkyGuard) with ESMTPS id 4fcSKG5BvHzcZxn;
 Fri, 20 Mar 2026 11:12:02 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id EEB6840363;
 Fri, 20 Mar 2026 11:17:44 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Fri, 20 Mar 2026 11:17:43 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5e59f59a-240b-11f1-b164-2bf370ae4941
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=BSRbjJDKdaGxbUo/K8gqf6JQzc2twFPR77ICmENPgIQ=;
	b=MIxrkXi9nr96VTs83oM4cRd7w+yFrG/lh54DDqdd6CvvvRceY55ubQT28/1aq6Hbg1rNmzRkP
	rLYTV3ixY/D1xC9iqJhIH1H8nK9oVSuMP+gE0i1HS/wIlpkqSBix2mhb57dsWBdQ4qYcfLEjbln
	uzIYmB35vjixX1vabMNe7FI=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Palmer Dabbelt <palmer@dabbelt.com>,
	Borislav Petkov <bp@alien8.de>, "H . Peter Anvin" <hpa@zytor.com>, Juergen
 Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Len
 Brown <lenb@kernel.org>, Sunil V L <sunilvl@ventanamicro.com>, Mark Rutland
	<mark.rutland@arm.com>, Jonathan Cameron <jonathan.cameron@huawei.com>, Kees
 Cook <kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>, Sean
 Christopherson <seanjc@google.com>, Kai Huang <kai.huang@intel.com>, Tom
 Lendacky <thomas.lendacky@amd.com>, Thomas Huth <thuth@redhat.com>, Thorsten
 Blum <thorsten.blum@linux.dev>, Kevin Loughlin <kevinloughlin@google.com>,
	Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra <peterz@infradead.org>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin Li <xin@zytor.com>,
	"Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v10 0/8] ACPI: Unify CPU UID interface and fix ARM64 TPH steer-tag issue
Date: Fri, 20 Mar 2026 11:17:29 +0800
Message-ID: <20260320031737.35048-1-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100002.china.huawei.com (7.221.188.206) To
 kwepemk500009.china.huawei.com (7.202.194.94)

This patchset unifies ACPI Processor UID retrieval across
arm64/loongarch/riscv/x86 via acpi_get_cpu_uid() (with input validation)
and fixes ARM64 CPU steer-tag retrieval failure in PCI/TPH:

1-4: Add acpi_get_cpu_uid() for arm64/loongarch/riscv/x86 (update
     respective users)
5: Centralize acpi_get_cpu_uid() declaration in include/linux/acpi.h
6: Clean up perf/arm_cspmu
7: Clean up ACPI/PPTT and remove unused get_acpi_id_for_cpu()
8: Pass ACPI Processor UID to Cache Locality _DSM

The interface refactor ensures consistent CPU UID retrieval across
architectures (no functional changes for valid inputs) and provides the
unified interface required for the ARM64 TPH fix.

---
Changes in v10:
- Refine commit header&log according to Punit's and Bjorn's review
- Split perf/arm_cspmu as a separate commit which address Punit's
  review

Changes in v9:
- Address Bjorn's review: split commits to each platform so that make
  them easy to review

Changes in v8:
- Moving arm64's get_cpu_for_acpi_id() to kernel/acpi.c which address
  Jeremy's review

Chengwen Feng (8):
  arm64: acpi: Add acpi_get_cpu_uid() for unified ACPI CPU UID retrieval
  LoongArch: Add acpi_get_cpu_uid() for unified ACPI CPU UID retrieval
  RISC-V: ACPI: Add acpi_get_cpu_uid() for unified ACPI CPU UID
    retrieval
  x86/acpi: Add acpi_get_cpu_uid() for unified ACPI CPU UID retrieval
  ACPI: Centralize acpi_get_cpu_uid() declaration in
    include/linux/acpi.h
  perf: arm_cspmu: Switch to acpi_get_cpu_uid() from
    get_acpi_id_for_cpu()
  ACPI: PPTT: Use acpi_get_cpu_uid() and remove get_acpi_id_for_cpu()
  PCI/TPH: Pass ACPI Processor UID to Cache Locality _DSM

 Documentation/PCI/tph.rst          |  4 +--
 arch/arm64/include/asm/acpi.h      | 17 +---------
 arch/arm64/kernel/acpi.c           | 30 ++++++++++++++++++
 arch/loongarch/include/asm/acpi.h  |  5 ---
 arch/loongarch/kernel/acpi.c       |  9 ++++++
 arch/riscv/include/asm/acpi.h      |  4 ---
 arch/riscv/kernel/acpi.c           | 16 ++++++++++
 arch/riscv/kernel/acpi_numa.c      |  9 ++++--
 arch/x86/include/asm/cpu.h         |  1 -
 arch/x86/include/asm/smp.h         |  1 -
 arch/x86/kernel/acpi/boot.c        | 20 ++++++++++++
 arch/x86/xen/enlighten_hvm.c       |  5 +--
 drivers/acpi/pptt.c                | 50 ++++++++++++++++++++++--------
 drivers/acpi/riscv/rhct.c          |  7 ++++-
 drivers/pci/tph.c                  | 16 +++++++---
 drivers/perf/arm_cspmu/arm_cspmu.c |  6 ++--
 include/linux/acpi.h               | 11 +++++++
 include/linux/pci-tph.h            |  4 +--
 18 files changed, 158 insertions(+), 57 deletions(-)

-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 03:18:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 03:18:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257685.1551988 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3QN2-0004a5-SE; Fri, 20 Mar 2026 03:17:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257685.1551988; Fri, 20 Mar 2026 03: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 1w3QN2-0004Zy-Oy; Fri, 20 Mar 2026 03:17:56 +0000
Received: by outflank-mailman (input) for mailman id 1257685;
 Fri, 20 Mar 2026 03:17:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4NFT=BU=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w3QN1-00049n-9I
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 03:17:55 +0000
Received: from canpmsgout08.his.huawei.com (canpmsgout08.his.huawei.com
 [113.46.200.223]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 605aab81-240b-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 04:17:53 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.163])
 by canpmsgout08.his.huawei.com (SkyGuard) with ESMTPS id 4fcSL815VlzmV66;
 Fri, 20 Mar 2026 11:12:48 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id B24234056B;
 Fri, 20 Mar 2026 11:17:49 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Fri, 20 Mar 2026 11:17: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: 605aab81-240b-11f1-b164-2bf370ae4941
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=BMMryEb1CdnOx2gMiVv+9iHKONhR3XK5c+5CZUibkPo=;
	b=l/7oJpMqJuYSGHZyOqLiw5LD07h+45LWAipYVAvEt9pYxSp4UxJSqwXgX66M8/EZ74aeSBY3M
	qLpVsSs+rpKpxDOoVmFTloYQFQ4DUIG80JTpBOmlHJ7rSI3KUDZxGFyGCXDxs8sVu0UH3BlI+It
	fJwAj4fQtMaqP5gUwirfIBk=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Palmer Dabbelt <palmer@dabbelt.com>,
	Borislav Petkov <bp@alien8.de>, "H . Peter Anvin" <hpa@zytor.com>, Juergen
 Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Len
 Brown <lenb@kernel.org>, Sunil V L <sunilvl@ventanamicro.com>, Mark Rutland
	<mark.rutland@arm.com>, Jonathan Cameron <jonathan.cameron@huawei.com>, Kees
 Cook <kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>, Sean
 Christopherson <seanjc@google.com>, Kai Huang <kai.huang@intel.com>, Tom
 Lendacky <thomas.lendacky@amd.com>, Thomas Huth <thuth@redhat.com>, Thorsten
 Blum <thorsten.blum@linux.dev>, Kevin Loughlin <kevinloughlin@google.com>,
	Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra <peterz@infradead.org>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin Li <xin@zytor.com>,
	"Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v10 3/8] RISC-V: ACPI: Add acpi_get_cpu_uid() for unified ACPI CPU UID retrieval
Date: Fri, 20 Mar 2026 11:17:32 +0800
Message-ID: <20260320031737.35048-4-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260320031737.35048-1-fengchengwen@huawei.com>
References: <20260320031737.35048-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100002.china.huawei.com (7.221.188.206) To
 kwepemk500009.china.huawei.com (7.202.194.94)

As a step towards unifying the interface for retrieving ACPI CPU UID
across architectures, introduce a new function acpi_get_cpu_uid() for
riscv. While at it, add input validation to make the code more robust.

And also update acpi_numa.c and rhct.c to use the new interface instead
of the legacy get_acpi_id_for_cpu().

Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
 arch/riscv/include/asm/acpi.h |  1 +
 arch/riscv/kernel/acpi.c      | 16 ++++++++++++++++
 arch/riscv/kernel/acpi_numa.c |  9 ++++++---
 drivers/acpi/riscv/rhct.c     |  7 ++++++-
 4 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/arch/riscv/include/asm/acpi.h b/arch/riscv/include/asm/acpi.h
index 6e13695120bc..f3520cc85af3 100644
--- a/arch/riscv/include/asm/acpi.h
+++ b/arch/riscv/include/asm/acpi.h
@@ -65,6 +65,7 @@ static inline u32 get_acpi_id_for_cpu(int cpu)
 {
 	return acpi_cpu_get_madt_rintc(cpu)->uid;
 }
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
 
 int acpi_get_riscv_isa(struct acpi_table_header *table,
 		       unsigned int cpu, const char **isa);
diff --git a/arch/riscv/kernel/acpi.c b/arch/riscv/kernel/acpi.c
index 71698ee11621..322ea92aa39f 100644
--- a/arch/riscv/kernel/acpi.c
+++ b/arch/riscv/kernel/acpi.c
@@ -337,3 +337,19 @@ int raw_pci_write(unsigned int domain, unsigned int bus,
 }
 
 #endif	/* CONFIG_PCI */
+
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
+{
+	struct acpi_madt_rintc *rintc;
+
+	if (cpu >= nr_cpu_ids)
+		return -EINVAL;
+
+	rintc = acpi_cpu_get_madt_rintc(cpu);
+	if (!rintc)
+		return -ENODEV;
+
+	*uid = rintc->uid;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
diff --git a/arch/riscv/kernel/acpi_numa.c b/arch/riscv/kernel/acpi_numa.c
index 130769e3a99c..6a2d4289f806 100644
--- a/arch/riscv/kernel/acpi_numa.c
+++ b/arch/riscv/kernel/acpi_numa.c
@@ -37,11 +37,14 @@ static int __init acpi_numa_get_nid(unsigned int cpu)
 
 static inline int get_cpu_for_acpi_id(u32 uid)
 {
-	int cpu;
+	u32 cpu_uid;
+	int ret;
 
-	for (cpu = 0; cpu < nr_cpu_ids; cpu++)
-		if (uid == get_acpi_id_for_cpu(cpu))
+	for (int cpu = 0; cpu < nr_cpu_ids; cpu++) {
+		ret = acpi_get_cpu_uid(cpu, &cpu_uid);
+		if (ret == 0 && uid == cpu_uid)
 			return cpu;
+	}
 
 	return -EINVAL;
 }
diff --git a/drivers/acpi/riscv/rhct.c b/drivers/acpi/riscv/rhct.c
index caa2c16e1697..8f3f38c64a88 100644
--- a/drivers/acpi/riscv/rhct.c
+++ b/drivers/acpi/riscv/rhct.c
@@ -44,10 +44,15 @@ int acpi_get_riscv_isa(struct acpi_table_header *table, unsigned int cpu, const
 	struct acpi_rhct_isa_string *isa_node;
 	struct acpi_table_rhct *rhct;
 	u32 *hart_info_node_offset;
-	u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
+	u32 acpi_cpu_id;
+	int ret;
 
 	BUG_ON(acpi_disabled);
 
+	ret = acpi_get_cpu_uid(cpu, &acpi_cpu_id);
+	if (ret != 0)
+		return ret;
+
 	if (!table) {
 		rhct = acpi_get_rhct();
 		if (!rhct)
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 03:18:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 03:18:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257692.1552043 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3QND-00068b-SP; Fri, 20 Mar 2026 03:18:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257692.1552043; Fri, 20 Mar 2026 03:18:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3QND-00068N-O2; Fri, 20 Mar 2026 03:18:07 +0000
Received: by outflank-mailman (input) for mailman id 1257692;
 Fri, 20 Mar 2026 03:18: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=4NFT=BU=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w3QNC-00049n-Fc
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 03:18:06 +0000
Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 679fcf2e-240b-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 04:18:05 +0100 (CET)
Received: from canpmsgout03.his.huawei.com (unknown [172.19.92.159])
 by szxga01-in.huawei.com (SkyGuard) with ESMTPS id 4fcSR32T8kz1BFlp
 for <xen-devel@lists.xenproject.org>; Fri, 20 Mar 2026 11:17:03 +0800 (CST)
Received: from mail.maildlp.com (unknown [172.19.162.140])
 by canpmsgout03.his.huawei.com (SkyGuard) with ESMTPS id 4fcSKh4nPxzpStY;
 Fri, 20 Mar 2026 11:12:24 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 571B82012A;
 Fri, 20 Mar 2026 11:17:51 +0800 (CST)
Received: from localhost.localdomain (10.50.163.32) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Fri, 20 Mar 2026 11:17:49 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 679fcf2e-240b-11f1-b164-2bf370ae4941
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=/bDHT0vostLWviBcH0LGnrUXN/7+wtQhJKC8xvlaZ1w=;
	b=I76d5QkgB06G/X/wos41vVtgRQepXQMzc5bCmZUjG61rsMvqBqMxjyiWV13dSj/N0vARfMR+I
	TIpo+e0ZZ/G2PYTKyAK+od5BAX4GJxZnIIHvWHRL80Tl9ySzHsM4ReaK/m6QcwIZU7CfdK4/sr4
	hK45B5FTc4PW95z2AIDDxVc=
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=/bDHT0vostLWviBcH0LGnrUXN/7+wtQhJKC8xvlaZ1w=;
	b=I76d5QkgB06G/X/wos41vVtgRQepXQMzc5bCmZUjG61rsMvqBqMxjyiWV13dSj/N0vARfMR+I
	TIpo+e0ZZ/G2PYTKyAK+od5BAX4GJxZnIIHvWHRL80Tl9ySzHsM4ReaK/m6QcwIZU7CfdK4/sr4
	hK45B5FTc4PW95z2AIDDxVc=
From: Chengwen Feng <fengchengwen@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>
CC: Jonathan Corbet <corbet@lwn.net>, Palmer Dabbelt <palmer@dabbelt.com>,
	Borislav Petkov <bp@alien8.de>, "H . Peter Anvin" <hpa@zytor.com>, Juergen
 Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Len
 Brown <lenb@kernel.org>, Sunil V L <sunilvl@ventanamicro.com>, Mark Rutland
	<mark.rutland@arm.com>, Jonathan Cameron <jonathan.cameron@huawei.com>, Kees
 Cook <kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>, Sean
 Christopherson <seanjc@google.com>, Kai Huang <kai.huang@intel.com>, Tom
 Lendacky <thomas.lendacky@amd.com>, Thomas Huth <thuth@redhat.com>, Thorsten
 Blum <thorsten.blum@linux.dev>, Kevin Loughlin <kevinloughlin@google.com>,
	Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra <peterz@infradead.org>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin Li <xin@zytor.com>,
	"Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <fengchengwen@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
Subject: [PATCH v10 4/8] x86/acpi: Add acpi_get_cpu_uid() for unified ACPI CPU UID retrieval
Date: Fri, 20 Mar 2026 11:17:33 +0800
Message-ID: <20260320031737.35048-5-fengchengwen@huawei.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20260320031737.35048-1-fengchengwen@huawei.com>
References: <20260320031737.35048-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.50.163.32]
X-ClientProxiedBy: kwepems100002.china.huawei.com (7.221.188.206) To
 kwepemk500009.china.huawei.com (7.202.194.94)

As a step towards unifying the interface for retrieving ACPI CPU UID
across architectures, introduce a new function acpi_get_cpu_uid() for
x86. While at it, add input validation to make the code more robust.

Update Xen-related code to use acpi_get_cpu_uid() instead of the legacy
cpu_acpi_id() function, and remove the now-unused cpu_acpi_id() to clean
up redundant code.

Cc: stable@vger.kernel.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/include/asm/acpi.h  |  2 ++
 arch/x86/include/asm/cpu.h   |  1 -
 arch/x86/include/asm/smp.h   |  1 -
 arch/x86/kernel/acpi/boot.c  | 20 ++++++++++++++++++++
 arch/x86/xen/enlighten_hvm.c |  5 +++--
 5 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/arch/x86/include/asm/acpi.h b/arch/x86/include/asm/acpi.h
index a03aa6f999d1..92b5c27c4fea 100644
--- a/arch/x86/include/asm/acpi.h
+++ b/arch/x86/include/asm/acpi.h
@@ -157,6 +157,8 @@ static inline bool acpi_has_cpu_in_madt(void)
 	return !!acpi_lapic;
 }
 
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
+
 #define ACPI_HAVE_ARCH_SET_ROOT_POINTER
 static __always_inline void acpi_arch_set_root_pointer(u64 addr)
 {
diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h
index ad235dda1ded..57a0786dfd75 100644
--- a/arch/x86/include/asm/cpu.h
+++ b/arch/x86/include/asm/cpu.h
@@ -11,7 +11,6 @@
 
 #ifndef CONFIG_SMP
 #define cpu_physical_id(cpu)			boot_cpu_physical_apicid
-#define cpu_acpi_id(cpu)			0
 #endif /* CONFIG_SMP */
 
 #ifdef CONFIG_HOTPLUG_CPU
diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
index 84951572ab81..05d1d479b4cf 100644
--- a/arch/x86/include/asm/smp.h
+++ b/arch/x86/include/asm/smp.h
@@ -130,7 +130,6 @@ __visible void smp_call_function_interrupt(struct pt_regs *regs);
 __visible void smp_call_function_single_interrupt(struct pt_regs *r);
 
 #define cpu_physical_id(cpu)	per_cpu(x86_cpu_to_apicid, cpu)
-#define cpu_acpi_id(cpu)	per_cpu(x86_cpu_to_acpiid, cpu)
 
 /*
  * This function is needed by all SMP systems. It must _always_ be valid
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index a3f2fb1fea1b..ceba24f65ae3 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -1848,3 +1848,23 @@ void __iomem * (*acpi_os_ioremap)(acpi_physical_address phys, acpi_size size) =
 	x86_acpi_os_ioremap;
 EXPORT_SYMBOL_GPL(acpi_os_ioremap);
 #endif
+
+int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
+{
+	u32 acpi_id;
+
+	if (cpu >= nr_cpu_ids)
+		return -EINVAL;
+
+#ifdef CONFIG_SMP
+	acpi_id = per_cpu(x86_cpu_to_acpiid, cpu);
+	if (acpi_id == CPU_ACPIID_INVALID)
+		return -ENODEV;
+#else
+	acpi_id = 0;
+#endif
+
+	*uid = acpi_id;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
diff --git a/arch/x86/xen/enlighten_hvm.c b/arch/x86/xen/enlighten_hvm.c
index fe57ff85d004..2f9fa27e5a3c 100644
--- a/arch/x86/xen/enlighten_hvm.c
+++ b/arch/x86/xen/enlighten_hvm.c
@@ -151,6 +151,7 @@ static void xen_hvm_crash_shutdown(struct pt_regs *regs)
 
 static int xen_cpu_up_prepare_hvm(unsigned int cpu)
 {
+	u32 cpu_uid;
 	int rc = 0;
 
 	/*
@@ -161,8 +162,8 @@ static int xen_cpu_up_prepare_hvm(unsigned int cpu)
 	 */
 	xen_uninit_lock_cpu(cpu);
 
-	if (cpu_acpi_id(cpu) != CPU_ACPIID_INVALID)
-		per_cpu(xen_vcpu_id, cpu) = cpu_acpi_id(cpu);
+	if (acpi_get_cpu_uid(cpu, &cpu_uid) == 0)
+		per_cpu(xen_vcpu_id, cpu) = cpu_uid;
 	else
 		per_cpu(xen_vcpu_id, cpu) = cpu;
 	xen_vcpu_setup(cpu);
-- 
2.17.1



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 03:20:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 03:20:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257741.1552052 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3QPy-00011z-9Q; Fri, 20 Mar 2026 03:20:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257741.1552052; Fri, 20 Mar 2026 03:20:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3QPy-00011r-6I; Fri, 20 Mar 2026 03:20:58 +0000
Received: by outflank-mailman (input) for mailman id 1257741;
 Fri, 20 Mar 2026 03:20: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=4NFT=BU=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w3QPx-00011l-F0
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 03:20:57 +0000
Received: from canpmsgout10.his.huawei.com (canpmsgout10.his.huawei.com
 [113.46.200.225]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cdf34033-240b-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 04:20:55 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.163.127])
 by canpmsgout10.his.huawei.com (SkyGuard) with ESMTPS id 4fcSNY1G8gz1K96X;
 Fri, 20 Mar 2026 11:14:53 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id 356FF40363;
 Fri, 20 Mar 2026 11:20:53 +0800 (CST)
Received: from [10.67.121.161] (10.67.121.161) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Fri, 20 Mar 2026 11:20:50 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cdf34033-240b-11f1-b164-2bf370ae4941
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=lktLkGPyIysx/WhMm6zhFs4+/dKUCu1VRaLJ2DTbNKk=;
	b=BmbPRJicL0i4h9s8skOHMSkzRHoRkrfIchJvOxTmvfFrO197DbtNbsJ3/cHCjYhsoXNVBbdKq
	OoMYj4CbYb7pX1jqI899B/8GePSsfcvWqXsNyTaDCPL9bpQo/J8OYh712QYGDjmKOlq7aqwKF4y
	zBdbCmbvNplVO//KpM+ko5w=
Message-ID: <ece36c60-ed45-4cb8-b6f4-8a13e8e55949@huawei.com>
Date: Fri, 20 Mar 2026 11:20:50 +0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 1/7] arm64/acpi: Add acpi_get_cpu_uid() and switch
 arm_cspmu to use it
To: Punit Agrawal <punit.agrawal@oss.qualcomm.com>
CC: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>, Jonathan Corbet <corbet@lwn.net>, Shuah Khan
	<skhan@linuxfoundation.org>, Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui
	<kernel@xen0n.name>, Paul Walmsley <pjw@kernel.org>, Palmer Dabbelt
	<palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, Alexandre Ghiti
	<alex@ghiti.fr>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar
	<mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, Dave Hansen
	<dave.hansen@linux.intel.com>, <x86@kernel.org>, "H . Peter Anvin"
	<hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris Ostrovsky
	<boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V L
	<sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Jonathan
 Cameron <jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>, Yanteng
 Si <si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>, Kai Huang
	<kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>, Thomas Huth
	<thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>, Kevin Loughlin
	<kevinloughlin@google.com>, Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra
	<peterz@infradead.org>, Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin
 Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <guohanjun@huawei.com>,
	<suzuki.poulose@arm.com>, <ryan.roberts@arm.com>, <chenl311@chinatelecom.cn>,
	<masahiroy@kernel.org>, <wangyuquan1236@phytium.com.cn>,
	<anshuman.khandual@arm.com>, <heinrich.schuchardt@canonical.com>,
	<Eric.VanTassell@amd.com>, <wangzhou1@hisilicon.com>,
	<wanghuiqiang@huawei.com>, <liuyonglong@huawei.com>,
	<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<loongarch@lists.linux.dev>, <linux-riscv@lists.infradead.org>,
	<xen-devel@lists.xenproject.org>, <linux-acpi@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>, <stable@vger.kernel.org>
References: <20260319065735.45954-1-fengchengwen@huawei.com>
 <20260319065735.45954-2-fengchengwen@huawei.com> <87341vq0u1.fsf@stealth>
Content-Language: en-US
From: fengchengwen <fengchengwen@huawei.com>
In-Reply-To: <87341vq0u1.fsf@stealth>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.67.121.161]
X-ClientProxiedBy: kwepems500001.china.huawei.com (7.221.188.70) To
 kwepemk500009.china.huawei.com (7.202.194.94)

On 3/19/2026 11:46 PM, Punit Agrawal wrote:
> Chengwen Feng <fengchengwen@huawei.com> writes:
> 
>> Add arch-specific acpi_get_cpu_uid() for arm64, and update dependent
>> code:
>> - Declare acpi_get_cpu_uid() in arch/arm64/include/asm/acpi.h
>> - Implement acpi_get_cpu_uid() with input parameter validation
>> - Replace get_acpi_id_for_cpu() with acpi_get_cpu_uid() in
>>   drivers/perf/arm_cspmu/arm_cspmu.c
>> - Reimplement get_cpu_for_acpi_id() based on acpi_get_cpu_uid() (to
>>   align with new interface) and move its implementation next to
>>   acpi_get_cpu_uid()
> 
> There is no benefit in describing the code changes like this in the
> commit log. It makes it hard to follow the intent of the patch.
> 
>> This is the first step towards unifying ACPI CPU UID retrieval interface
>> across architectures, while adding input validation for robustness.
> 
> I would simplify the commit log to something along the lines of -
> 
>     As a step towards unifying the interface for retrieving ACPI CPU uid
>     across architectures, introduce a new function
>     acpi_get_cpu_uid(). While at it, also add input validation to make
>     the code more robust.

Thank you for your advice.
I've reviewed all the commit logs and made some optimizations, and done in v10

> 
> Just my 2c.
> 
> The code changes looks fine.
> 
>> Cc: stable@vger.kernel.org
>> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
>> Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
>> ---
>>  arch/arm64/include/asm/acpi.h      | 14 ++------------
>>  arch/arm64/kernel/acpi.c           | 30 ++++++++++++++++++++++++++++++
>>  drivers/perf/arm_cspmu/arm_cspmu.c |  6 ++++--
>>  3 files changed, 36 insertions(+), 14 deletions(-)
>>
>> diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
>> index c07a58b96329..2219a3301e72 100644
>> --- a/arch/arm64/include/asm/acpi.h
>> +++ b/arch/arm64/include/asm/acpi.h
>> @@ -118,18 +118,8 @@ static inline u32 get_acpi_id_for_cpu(unsigned int cpu)
>>  {
>>  	return	acpi_cpu_get_madt_gicc(cpu)->uid;
>>  }
>> -
>> -static inline int get_cpu_for_acpi_id(u32 uid)
>> -{
>> -	int cpu;
>> -
>> -	for (cpu = 0; cpu < nr_cpu_ids; cpu++)
>> -		if (acpi_cpu_get_madt_gicc(cpu) &&
>> -		    uid == get_acpi_id_for_cpu(cpu))
>> -			return cpu;
>> -
>> -	return -EINVAL;
>> -}
>> +int acpi_get_cpu_uid(unsigned int cpu, u32 *uid);
>> +int get_cpu_for_acpi_id(u32 uid);
>>  
>>  static inline void arch_fix_phys_package_id(int num, u32 slot) { }
>>  void __init acpi_init_cpus(void);
>> diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
>> index af90128cfed5..24b9d934be54 100644
>> --- a/arch/arm64/kernel/acpi.c
>> +++ b/arch/arm64/kernel/acpi.c
>> @@ -458,3 +458,33 @@ int acpi_unmap_cpu(int cpu)
>>  }
>>  EXPORT_SYMBOL(acpi_unmap_cpu);
>>  #endif /* CONFIG_ACPI_HOTPLUG_CPU */
>> +
>> +int acpi_get_cpu_uid(unsigned int cpu, u32 *uid)
>> +{
>> +	struct acpi_madt_generic_interrupt *gicc;
>> +
>> +	if (cpu >= nr_cpu_ids)
>> +		return -EINVAL;
>> +
>> +	gicc = acpi_cpu_get_madt_gicc(cpu);
>> +	if (!gicc)
>> +		return -ENODEV;
>> +
>> +	*uid = gicc->uid;
>> +	return 0;
>> +}
>> +EXPORT_SYMBOL_GPL(acpi_get_cpu_uid);
>> +
>> +int get_cpu_for_acpi_id(u32 uid)
>> +{
>> +	u32 cpu_uid;
>> +	int ret;
>> +
>> +	for (int cpu = 0; cpu < nr_cpu_ids; cpu++) {
>> +		ret = acpi_get_cpu_uid(cpu, &cpu_uid);
>> +		if (ret == 0 && uid == cpu_uid)
>> +			return cpu;
>> +	}
>> +
>> +	return -EINVAL;
>> +}
>> diff --git a/drivers/perf/arm_cspmu/arm_cspmu.c b/drivers/perf/arm_cspmu/arm_cspmu.c
>> index 34430b68f602..ed72c3d1f796 100644
>> --- a/drivers/perf/arm_cspmu/arm_cspmu.c
>> +++ b/drivers/perf/arm_cspmu/arm_cspmu.c
>> @@ -1107,15 +1107,17 @@ static int arm_cspmu_acpi_get_cpus(struct arm_cspmu *cspmu)
>>  {
>>  	struct acpi_apmt_node *apmt_node;
>>  	int affinity_flag;
>> +	u32 cpu_uid;
>>  	int cpu;
>> +	int ret;
>>  
>>  	apmt_node = arm_cspmu_apmt_node(cspmu->dev);
>>  	affinity_flag = apmt_node->flags & ACPI_APMT_FLAGS_AFFINITY;
>>  
>>  	if (affinity_flag == ACPI_APMT_FLAGS_AFFINITY_PROC) {
>>  		for_each_possible_cpu(cpu) {
>> -			if (apmt_node->proc_affinity ==
>> -			    get_acpi_id_for_cpu(cpu)) {
>> +			ret = acpi_get_cpu_uid(cpu, &cpu_uid);
>> +			if (ret == 0 && apmt_node->proc_affinity == cpu_uid) {
>>  				cpumask_set_cpu(cpu, &cspmu->associated_cpus);
>>  				break;
>>  			}
> 
> I think cspmu changes go via a separate pull request. You might have to
> split this change into a separate commit.

done in v10

Thanks


From xen-devel-bounces@lists.xenproject.org Fri Mar 20 03:26:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 03:26:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257760.1552062 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3QVV-0001n4-SS; Fri, 20 Mar 2026 03:26:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257760.1552062; Fri, 20 Mar 2026 03:26:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3QVV-0001mx-OV; Fri, 20 Mar 2026 03:26:41 +0000
Received: by outflank-mailman (input) for mailman id 1257760;
 Fri, 20 Mar 2026 03:26:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4NFT=BU=huawei.com=fengchengwen@srs-se1.protection.inumbo.net>)
 id 1w3QVU-0001mr-NR
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 03:26:40 +0000
Received: from canpmsgout05.his.huawei.com (canpmsgout05.his.huawei.com
 [113.46.200.220]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9998f706-240c-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 04:26:38 +0100 (CET)
Received: from mail.maildlp.com (unknown [172.19.162.223])
 by canpmsgout05.his.huawei.com (SkyGuard) with ESMTPS id 4fcSWg2sZ3z12LDG;
 Fri, 20 Mar 2026 11:21:03 +0800 (CST)
Received: from kwepemk500009.china.huawei.com (unknown [7.202.194.94])
 by mail.maildlp.com (Postfix) with ESMTPS id B830440569;
 Fri, 20 Mar 2026 11:26:33 +0800 (CST)
Received: from [10.67.121.161] (10.67.121.161) by
 kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Fri, 20 Mar 2026 11:26: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: 9998f706-240c-11f1-b164-2bf370ae4941
dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim;
	c=relaxed/relaxed; q=dns/txt;
	h=From;
	bh=3LiHuocNrG9VyhQSPGsfxkLqow8jinLscyafTJUH7n0=;
	b=PzyvQYqytsSSptjXyQJXJSFxg0IsfMHvz47ITRg5ssR326CVuLSufayFGG12zYgBkkQvJa9KB
	JV6YGyDu/jcmqj8yhrn0VgSgQUJ+FE1fdp4aXgqP1j+6e0GjQLxYAFTO3TjEwrZXKdnbrJr1nvU
	oTV5X1+VOGWBf29jt2KHEOw=
Message-ID: <823d8281-f01c-4ed1-94ed-17869b2c7526@huawei.com>
Date: Fri, 20 Mar 2026 11:26:31 +0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 7/7] PCI/TPH: Fix get cpu steer-tag fail on ARM64
 platform
To: Bjorn Helgaas <helgaas@kernel.org>
CC: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas
	<catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, "Rafael J .
 Wysocki" <rafael@kernel.org>, Jonathan Corbet <corbet@lwn.net>, Shuah Khan
	<skhan@linuxfoundation.org>, Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui
	<kernel@xen0n.name>, Paul Walmsley <pjw@kernel.org>, Palmer Dabbelt
	<palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, Alexandre Ghiti
	<alex@ghiti.fr>, Thomas Gleixner <tglx@kernel.org>, Ingo Molnar
	<mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, Dave Hansen
	<dave.hansen@linux.intel.com>, <x86@kernel.org>, "H . Peter Anvin"
	<hpa@zytor.com>, Juergen Gross <jgross@suse.com>, Boris Ostrovsky
	<boris.ostrovsky@oracle.com>, Len Brown <lenb@kernel.org>, Sunil V L
	<sunilvl@ventanamicro.com>, Mark Rutland <mark.rutland@arm.com>, Jonathan
 Cameron <jonathan.cameron@huawei.com>, Kees Cook <kees@kernel.org>, Yanteng
 Si <si.yanteng@linux.dev>, Sean Christopherson <seanjc@google.com>, Kai Huang
	<kai.huang@intel.com>, Tom Lendacky <thomas.lendacky@amd.com>, Thomas Huth
	<thuth@redhat.com>, Thorsten Blum <thorsten.blum@linux.dev>, Kevin Loughlin
	<kevinloughlin@google.com>, Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra
	<peterz@infradead.org>, Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin
 Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta
	<sohil.mehta@intel.com>, Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin
 Murphy <robin.murphy@arm.com>, James Clark <james.clark@linaro.org>, Besar
 Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>, Wei Huang
	<wei.huang2@amd.com>, Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>, <punit.agrawal@oss.qualcomm.com>,
	<guohanjun@huawei.com>, <suzuki.poulose@arm.com>, <ryan.roberts@arm.com>,
	<chenl311@chinatelecom.cn>, <masahiroy@kernel.org>,
	<wangyuquan1236@phytium.com.cn>, <anshuman.khandual@arm.com>,
	<heinrich.schuchardt@canonical.com>, <Eric.VanTassell@amd.com>,
	<wangzhou1@hisilicon.com>, <wanghuiqiang@huawei.com>,
	<liuyonglong@huawei.com>, <linux-pci@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <loongarch@lists.linux.dev>,
	<linux-riscv@lists.infradead.org>, <xen-devel@lists.xenproject.org>,
	<linux-acpi@vger.kernel.org>, <linux-perf-users@vger.kernel.org>,
	<stable@vger.kernel.org>
References: <20260319183219.GA519221@bhelgaas>
Content-Language: en-US
From: fengchengwen <fengchengwen@huawei.com>
In-Reply-To: <20260319183219.GA519221@bhelgaas>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.67.121.161]
X-ClientProxiedBy: kwepems500001.china.huawei.com (7.221.188.70) To
 kwepemk500009.china.huawei.com (7.202.194.94)

On 3/20/2026 2:32 AM, Bjorn Helgaas wrote:
> Let's make the subject a little more specific, e.g.,
> 
>   PCI/TPH: Pass ACPI Processor UID to Cache Locality _DSM

done in v10

> 
> On Thu, Mar 19, 2026 at 02:57:35PM +0800, Chengwen Feng wrote:
>> pcie_tph_get_cpu_st() is broken on ARM64:
>> 1. pcie_tph_get_cpu_st() passes cpu_uid to the PCI ACPI DSM method.
>>    cpu_uid should be the ACPI Processor UID [1].
>> 2. In BNXT, pcie_tph_get_cpu_st() is passed a cpu_uid obtained via
>>    cpumask_first(irq->cpu_mask) - the logical CPU ID of a CPU core,
>>    generated and managed by kernel (e.g., [0,255] for a system  with 256
>>    logical CPU cores).
>> 3. On ARM64 platforms, ACPI assigns Processor UID to cores listed in the
>>    MADT table, and this UID may not match the kernel's logical CPU ID.
>>    When this occurs, the mismatch results in the wrong CPU steer-tag.
>> 4. On AMD x86 the logical CPU ID is identical to the ACPI Processor UID
>>    so the mismatch is not seen.
>>
>> Resolution:
>> 1. Use acpi_get_cpu_uid() in pcie_tph_get_cpu_st() to translate from
>>    logical CPU ID to ACPI Processor UID needed for the DSM call.
>> 2. Rename pcie_tpu_get_cpu_st() parameter from cpu_uid to cpu to
>>    reflect that it is a logical CPU_ID.
> 
> And simplify this, e.g.,
> 
>   pcie_tph_get_cpu_st() uses the Query Cache Locality Features _DSM
>   [1] to retrieve the TPH Steering Tag for memory associated with the
>   CPU identified by its "cpu_uid" parameter, a Linux logical CPU ID.
> 
>   The _DSM requires a ACPI Processor UID, which pcie_tph_get_cpu_st()
>   previously assumed was the same as the Linux logical CPU ID.  This
>   is true on x86 but not on arm64, so pcie_tph_get_cpu_st() failed on
>   arm64.
> 
>   Convert the Linux logical CPU ID to the ACPI Processor UID with
>   acpi_get_cpu_uid() before passing it to the _DSM.
> 
> If there's a specific error message from BNXT or similar that is a
> symptom of this problem, it'd be nice to include that.  Or if the
> problem was just poor performance because the _DSM returned the wrong
> Steering Tag, you could say something like:
> 
>   ... so pcie_tph_get_cpu_st() returned the wrong Steering Tag,
>   resulting in poor network performance.

It is indeed simplified, done in v10

> 
>> [1] According to ECN_TPH-ST_Revision_20200924
>>     (https://members.pcisig.com/wg/PCI-SIG/document/15470), the input
>>     is defined as: "If the target is a processor, then this field
>>     represents the ACPI Processor UID of the processor as specified in
>>     the MADT. If the target is a processor container, then this field
>>     represents the ACPI Processor UID of the processor container as
>>     specified in the PPTT."
>>
>> Fixes: d2e8a34876ce ("PCI/TPH: Add Steering Tag support")
>> Cc: stable@vger.kernel.org
>> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
>> Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
> 
> The patch looks good to me.  Thanks for all your work on this!
> 
> Reviewed-by: Bjorn Helgaas <bhelgaas@google.com>

Thanks Bjorn for your review and kind words! I really appreciate it.

> 
>> ---
>>  Documentation/PCI/tph.rst |  4 ++--
>>  drivers/pci/tph.c         | 16 +++++++++++-----
>>  include/linux/pci-tph.h   |  4 ++--
>>  3 files changed, 15 insertions(+), 9 deletions(-)
>>
>> diff --git a/Documentation/PCI/tph.rst b/Documentation/PCI/tph.rst
>> index e8993be64fd6..b6cf22b9bd90 100644
>> --- a/Documentation/PCI/tph.rst
>> +++ b/Documentation/PCI/tph.rst
>> @@ -79,10 +79,10 @@ To retrieve a Steering Tag for a target memory associated with a specific
>>  CPU, use the following function::
>>  
>>    int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type type,
>> -                          unsigned int cpu_uid, u16 *tag);
>> +                          unsigned int cpu, u16 *tag);
>>  
>>  The `type` argument is used to specify the memory type, either volatile
>> -or persistent, of the target memory. The `cpu_uid` argument specifies the
>> +or persistent, of the target memory. The `cpu` argument specifies the
>>  CPU where the memory is associated to.
>>  
>>  After the ST value is retrieved, the device driver can use the following
>> diff --git a/drivers/pci/tph.c b/drivers/pci/tph.c
>> index ca4f97be7538..b67c9ad14bda 100644
>> --- a/drivers/pci/tph.c
>> +++ b/drivers/pci/tph.c
>> @@ -236,21 +236,27 @@ static int write_tag_to_st_table(struct pci_dev *pdev, int index, u16 tag)
>>   * with a specific CPU
>>   * @pdev: PCI device
>>   * @mem_type: target memory type (volatile or persistent RAM)
>> - * @cpu_uid: associated CPU id
>> + * @cpu: associated CPU id
>>   * @tag: Steering Tag to be returned
>>   *
>>   * Return the Steering Tag for a target memory that is associated with a
>> - * specific CPU as indicated by cpu_uid.
>> + * specific CPU as indicated by cpu.
>>   *
>>   * Return: 0 if success, otherwise negative value (-errno)
>>   */
>>  int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type mem_type,
>> -			unsigned int cpu_uid, u16 *tag)
>> +			unsigned int cpu, u16 *tag)
>>  {
>>  #ifdef CONFIG_ACPI
>>  	struct pci_dev *rp;
>>  	acpi_handle rp_acpi_handle;
>>  	union st_info info;
>> +	u32 cpu_uid;
>> +	int ret;
>> +
>> +	ret = acpi_get_cpu_uid(cpu, &cpu_uid);
>> +	if (ret != 0)
>> +		return ret;
>>  
>>  	rp = pcie_find_root_port(pdev);
>>  	if (!rp || !rp->bus || !rp->bus->bridge)
>> @@ -265,9 +271,9 @@ int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type mem_type,
>>  
>>  	*tag = tph_extract_tag(mem_type, pdev->tph_req_type, &info);
>>  
>> -	pci_dbg(pdev, "get steering tag: mem_type=%s, cpu_uid=%d, tag=%#04x\n",
>> +	pci_dbg(pdev, "get steering tag: mem_type=%s, cpu=%d, tag=%#04x\n",
>>  		(mem_type == TPH_MEM_TYPE_VM) ? "volatile" : "persistent",
>> -		cpu_uid, *tag);
>> +		cpu, *tag);
>>  
>>  	return 0;
>>  #else
>> diff --git a/include/linux/pci-tph.h b/include/linux/pci-tph.h
>> index ba28140ce670..be68cd17f2f8 100644
>> --- a/include/linux/pci-tph.h
>> +++ b/include/linux/pci-tph.h
>> @@ -25,7 +25,7 @@ int pcie_tph_set_st_entry(struct pci_dev *pdev,
>>  			  unsigned int index, u16 tag);
>>  int pcie_tph_get_cpu_st(struct pci_dev *dev,
>>  			enum tph_mem_type mem_type,
>> -			unsigned int cpu_uid, u16 *tag);
>> +			unsigned int cpu, u16 *tag);
>>  void pcie_disable_tph(struct pci_dev *pdev);
>>  int pcie_enable_tph(struct pci_dev *pdev, int mode);
>>  u16 pcie_tph_get_st_table_size(struct pci_dev *pdev);
>> @@ -36,7 +36,7 @@ static inline int pcie_tph_set_st_entry(struct pci_dev *pdev,
>>  { return -EINVAL; }
>>  static inline int pcie_tph_get_cpu_st(struct pci_dev *dev,
>>  				      enum tph_mem_type mem_type,
>> -				      unsigned int cpu_uid, u16 *tag)
>> +				      unsigned int cpu, u16 *tag)
>>  { return -EINVAL; }
>>  static inline void pcie_disable_tph(struct pci_dev *pdev) { }
>>  static inline int pcie_enable_tph(struct pci_dev *pdev, int mode)
>> -- 
>> 2.17.1
>>
> 



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 06:36:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 06:36:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257799.1552070 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3TTE-0000vC-QQ; Fri, 20 Mar 2026 06:36:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257799.1552070; Fri, 20 Mar 2026 06: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 1w3TTE-0000v5-Mi; Fri, 20 Mar 2026 06:36:32 +0000
Received: by outflank-mailman (input) for mailman id 1257799;
 Fri, 20 Mar 2026 06:36: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=0BFG=BU=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w3TTC-0000uz-M6
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 06:36:30 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 205f2764-2427-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 07:36:29 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-43a03cb1df9so1638154f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 19 Mar 2026 23:36:29 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b647120a1sm4074734f8f.30.2026.03.19.23.36.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Mar 2026 23:36:28 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 205f2764-2427-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773988588; x=1774593388; 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=tDsn7xJiPo4F4BtGGiAC/1EF3c7WImme0YET/Qtmb/o=;
        b=AI7r1lDwF7G2gRZUcy1noq6jzpc3cgZHko3ESkL3wwi1Wx0r38OHGlMQGbt2H/cavm
         eetnGYpHym0NBI/aIZhKeEVgSM5xhW3dkw8v3xwzeEXzlSZJzJYgbigFbM5lez2Ds6+s
         Nw6qmAWI8RuFeY6pYrjL0U9EmLe8o0vCWD7hmOYzoCDMzfJNDS80VkdCxziwwtflqKYK
         meKzBaYQlar3hP/CArJCJb08yyul3a5iyyziWr85xO171+ggfbsLkuzSqQOAItEt+iBH
         MBaA3W2VM6OjiYP63n1EvTS9BE874+LFYGasbgV4cpe2OBFIRWl0QS2tiUGi4Fo06kaz
         qy8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773988588; x=1774593388;
        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=tDsn7xJiPo4F4BtGGiAC/1EF3c7WImme0YET/Qtmb/o=;
        b=asMvzGZcdV/Bm3bQ5xr4jzn39x0yZI1NmFKEgGi/++XHFhWSm+sxQJgP52StzEUdpL
         cXL/KVmxLAFsh/eQlOHZv1iGuIznIWkBch0rBiKOpCVPxsm6PeNsfBlmt35myBIfNzNK
         QmYiTH09eBPZut0LC+tKlUIcGd9NO2dJuus/KkiNEmK9knqgt3LpP4QNxrwEYPSFNZL0
         Y+/s9kgqduSzSGeMXGkA+lc2U7hHQWfI79VIyoxhXCvBwpHehjNrJG+rPuGfPuEA5iyU
         084kNAkeeGUk06xmd/kyeiI/9CEdEhE+lGwK/GOx0eMH7b+7/P+WiyTW08VUpkUeqWe1
         +L3w==
X-Gm-Message-State: AOJu0YzsXFCETyJsCWjy3nP0NHBR0ihk/nnmdb3a95RZeTM1Cd5UT16e
	R4hm/iwubDPqCnZ1D20dHrJ4382OLceEfXQY7NKNGoC6NRRGSDpL1p/bgsrl7XX4GmtI84eJUbN
	qHYAUSvs=
X-Gm-Gg: ATEYQzyLlsAYKYULayyJau3JrT3kJDnKm8QJ236kKC6XVC/m0iyCZZiDQWc+av5WKG4
	KKwaPoR2BjrEgh6lKTDrT/nM/JXCc8yi9MmlkM+Anw8bkd86dYhe/8aYEQytGO4gtr9noWvNPP4
	5C1ZDY/w2kdZ7HYCu+sfKr95eVr0MW4Nbk6/tqlleII+dys6f83a3u1CaQqHdQi4gybbZODFX4/
	vw/+omqA7xzzwRpYSuBCwXIvU+8+VlSzizFkvg3ffW5BJ/HcCj1WHS3Df/tXPwOpBrW0XLCJaZn
	i++A6AvoucpXUwa7lL0YzHh6Slj8nYt90PaIbWoE/Pn7Ci/rX73x42P5k8iKyCwPPwVYxV+ePhK
	Fbq4R9yaQ0qCKFPS8Yg/H7ajjDH82T9iEjeKdr7KGhfkoOCZEjBUyR6uROb3JQJ0Zzkfy71rgIz
	HNSA72+kdruu9iku+Yu4xiUi+5dmoG4p/zGoZbN99CrppKf3s2S3jOrSfN3yFCmRsvi2hG4Gnw1
	UjZzt4cQ4MXqjJg4zLpHs5xvEDNbKN0LDiaWCg+pYDiWNOKByEwwQ==
X-Received: by 2002:a05:6000:26c8:b0:437:75c1:5777 with SMTP id ffacd0b85a97d-43b64240095mr3042651f8f.16.1773988588455;
        Thu, 19 Mar 2026 23:36:28 -0700 (PDT)
Message-ID: <c44cca31-a45c-4bb2-a671-edffb1f93d3c@suse.com>
Date: Fri, 20 Mar 2026 07:36:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 07/11] tools/xenstored: implement the GET/SET_QUOTA
 commands
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-8-jgross@suse.com> <abgc1Azehzw_m9Ff@l14>
 <b0c02185-1ce0-416f-8bff-34b57de57e8f@suse.com> <abwog6TisFL9ZfeC@l14>
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: <abwog6TisFL9ZfeC@l14>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------rO1g9gkF50netA8tvUGtNy9m"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------rO1g9gkF50netA8tvUGtNy9m
Content-Type: multipart/mixed; boundary="------------cr374cSLXdQai08R5QOmU5oy";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>
Message-ID: <c44cca31-a45c-4bb2-a671-edffb1f93d3c@suse.com>
Subject: Re: [PATCH 07/11] tools/xenstored: implement the GET/SET_QUOTA
 commands
References: <20260305135208.2208663-1-jgross@suse.com>
 <20260305135208.2208663-8-jgross@suse.com> <abgc1Azehzw_m9Ff@l14>
 <b0c02185-1ce0-416f-8bff-34b57de57e8f@suse.com> <abwog6TisFL9ZfeC@l14>
In-Reply-To: <abwog6TisFL9ZfeC@l14>

--------------cr374cSLXdQai08R5QOmU5oy
Content-Type: multipart/mixed; boundary="------------uvNNrT9vLBoWP9wEJIQwyX0G"

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

T24gMTkuMDMuMjYgMTc6NDcsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBPbiBNb24sIE1h
ciAxNiwgMjAyNiBhdCAwNDoyNzo0M1BNICswMTAwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
Pj4gT24gMTYuMDMuMjYgMTY6MDgsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPj4+IE9uIFRo
dSwgTWFyIDA1LCAyMDI2IGF0IDAyOjUyOjA0UE0gKzAxMDAsIEp1ZXJnZW4gR3Jvc3Mgd3Jv
dGU6DQo+Pj4+ICsJCWlmIChuX3BhcnMgPT0gMSkgew0KPj4+PiArCQkJcXVvdGEgPSBxdW90
YXM7DQo+Pj4+ICsJCQluYW1lID0gdmVjWzBdOw0KPj4+PiArCQl9IGVsc2Ugew0KPj4+PiAr
CQkJZG9taWQgPSBhdG9pKHZlY1swXSk7DQo+Pj4NCj4+PiBTaGFsbCB3ZSBjaGVjayB0aGF0
IHZlY1swXSBhY3R1YWxseSBjb250YWluIGEgcGxhdXNpYmxlIGRvbWlkPyAoQW4NCj4+PiBp
bnRlZ2VyIGJldHdlZW4gMC4uNjU1MzUpLiBSaWdodCBub3csIHRoaXMgYWNjZXB0IGV2ZXJ5
dGhpbmcsIGFuZCB3b3VsZA0KPj4+IHJldHVybiAwIGlmIHRoZXJlJ3Mgbm90IGEgc2luZ2xl
IGRpZ2l0Lg0KPj4NCj4+IEkgaGF2ZSBmb2xsb3dlZCB0aGUgcGF0dGVybiB1c2VkIGluIG90
aGVyIHBsYWNlcyB3aGVyZSBhIGRvbWlkIGlzIGV4cGVjdGVkLg0KPj4NCj4+IEluIHRoZSBl
bmQgbm90aGluZyB3aWxsIHJlYWxseSBicmVhay4NCj4gDQo+IE9uIHRoZSBkYWVtb24sIG5v
LCBub3QgcmVhbGx5Lg0KPiANCj4+IEFueSBpbnRlZ2VyIG5vdCBiZWluZyBhIGRvbWlkIHdp
bGwgcmVzdWx0IGluIEVOT0VOVCwgd2hpbGUgdGhlIGNhc2Ugb2Ygbm90DQo+PiBhIGRpZ2l0
IGlzIGEgYnVnIGluIHByaXZpbGVnZWQgc29mdHdhcmUgKGRvbWlkcyBjYW4gYmUgc3BlY2lm
aWVkIGJ5IGRvbTANCj4+IG9ubHkpLg0KPiANCj4gSXQgd291bGQgYmUgYSBidWcsIGluZGVl
ZCwgYnV0IHhlbnN0b3JlZCBjYW4gaGVscCB0ZWxsaW5nIGV4YWN0bHkgd2hlcmUNCj4gdGhl
cmUncyBhIGJ1ZywgaW5zdGVhZCBvZiBpZ25vcmluZyBpdCBhbmQgY2Fycnktb24uIFdlbGws
IGp1c3QgcmV0dXJuDQo+IEVJTlZBTCB3aGVuIHNvbWV0aGluZyBvdGhlciB0aGFuIGEgbnVt
YmVyIGlzIGZvdW5kLiBZb3UgZG8gdGhhdCBmb3INCj4gcXVvdGEsIHdoeSBub3QgZm9yIGRv
bWlkIGFzIHdlbGw/DQo+IA0KPiBUaGF0IGNhbiBhbHNvIGhlbHAgd2hlbiB0aGUgZGFlbW9u
IGlzIHJlcGxhY2UgYnkgYSBkaWZmZXJlbnQNCj4gaW1wbGVtZW50YXRpb24gdGhhdCBhY3R1
YWxseSBkbyB0aGUgY2hlY2tzLiAod2VsbCBpdCB3b3VsZCBoZWxwIGZpbmRpbmcNCj4gYnVn
IGluIHRoZSBjbGllbnQgZWFybGllcikNCg0KSSBoYXZlIGFkZGVkIGFub3RoZXIgcGF0Y2gg
aW50cm9kdWNpbmcgYSBkb21pZCBwYXJzZXIgYW5kIHVzaW5nIGl0IHdoZXJlDQpuZWVkZWQu
DQoNCg0KSnVlcmdlbg0K
--------------uvNNrT9vLBoWP9wEJIQwyX0G
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-----

--------------uvNNrT9vLBoWP9wEJIQwyX0G--

--------------cr374cSLXdQai08R5QOmU5oy--

--------------rO1g9gkF50netA8tvUGtNy9m
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/Ey8FAmm86usFAwAAAAAACgkQsN6d1ii/Ey/x
mAf8CsVstjU3DA6rHWRaUgMizlQ302iN/pOS7ObaVQgiXUT9bAYc8x0yygUsMAV3ZkL3E4tprzK6
MtNf9Wsgkm3bUd6rITxvzmhq2LEXZgk8M2h/u7l0awqp7+SVoO8MsdHnFfyDOkbvdIQUKaifaUGR
bfBjdOkEAxqBv6ThOwtVCn9l4lJhSRCsv0BfxUUYpNDVL+b0t/DsOnoLqXmYV91uQytEG234+a4y
b8U08vLR4z/nXUb6e3x+hsKmcHHMpZ8XBXU4xc6I35XkjExonsULaBMpuzbj/ihFaPX/0boJVPH4
z4Or2D6oMJS92dcc+NOAY7bjRwxFMyFOrVDe22gUMA==
=p3wM
-----END PGP SIGNATURE-----

--------------rO1g9gkF50netA8tvUGtNy9m--


From xen-devel-bounces@lists.xenproject.org Fri Mar 20 07:05:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 07:05:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257810.1552079 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Tus-000527-TU; Fri, 20 Mar 2026 07:05:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257810.1552079; Fri, 20 Mar 2026 07: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 1w3Tus-000520-QE; Fri, 20 Mar 2026 07:05:06 +0000
Received: by outflank-mailman (input) for mailman id 1257810;
 Fri, 20 Mar 2026 07: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=VTAn=BU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w3Tuq-00051r-Po
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 07:05:04 +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 1e206364-242b-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 08:05:03 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-439c56e822eso1631931f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 20 Mar 2026 00:05:03 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b6470b1f7sm4473882f8f.25.2026.03.20.00.05.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 20 Mar 2026 00:05:02 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1e206364-242b-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773990303; x=1774595103; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SMWOGgQ7ipyX7UhLb9ROJML2m6OW1MCvnD/K9ZvJDAQ=;
        b=ERRQN+9aSxuDRIPZB+UbHxyOYSdNfcPvIVc0b0rFjeLohZ28yUdZDlulpykQCv8c/i
         XRqeQQxfVaBqGZtkOTbvHvaCW/P+nM/knh26y1VPALYsIZz5R9qTOur0ZD/mNYLppP3t
         Pob1VTA0Q3jL0MgvwE+yU+iZm2xWLmBUSDKwxXt19S+p0ryOcKwdrZtLwzmvyTcjrwnQ
         NCiOUgbFyIKY1lXqVD1WMMrLoNK7Hj2Sv+lgUhDD4DaIEmvKnvTYZy3Ts/ue0PXdc2LJ
         rx6s5/Y0hltVQzP3Q+Yv4R/EqlXmNgjvy9O//BEuRfyzQjelWfV/kCmDz1gercZ7yLdD
         NlcA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773990303; x=1774595103;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SMWOGgQ7ipyX7UhLb9ROJML2m6OW1MCvnD/K9ZvJDAQ=;
        b=bDDxYD4eyKRYhKzMmOfGEtHCaD0uUxIfpviVkfDmb9MWfe6MtOjwW3dPkyKTanjmzM
         8wWKdtDS/d3iY/RmPZTAp1+3VUcvDcUD6URxv3y8z1HTPnViOGNiBmbhjOKVyLKbI2DB
         szrDf9JmACVAiVZhyktxL86AlvdWeeR2W3qGWXNHUFAtucSpgeTEzpriWH+R2ZEPk3KD
         wfMpCNYI7emuVTZLLTI+LcpIGyFE+czxs9THVez59J7lRkOFD+UVdcfm9NJQR+vwAwrm
         bEU2H43P1Lezxm4PuHdO5sVfjbOfzbupHXPvQFHwameTHA0ImMeLmOihL6ZGIx4xCPh2
         meLA==
X-Forwarded-Encrypted: i=1; AJvYcCXU+ppHAVZ9rs0s6tEQ2URHu+09csUrzW5QHPP6BdjWzxxDF6FaIspghMzy3ZsZeFCiBbZBHfc2Pbo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx+Nh/bAifgCU6+sVw8VmZHMz7JnbdQfSXJC3klXgTcnHUnP9b0
	n+Ts8Qiu8dK+wq+Z8DfXAo7j1hQbTVnEdSSzKnKFXFGpRZVsbCGvY/j5YIYrdDDtEg==
X-Gm-Gg: ATEYQzzLSSXw3MrBmf5uUyv21A52oYXxGCPeTgOX42o4V9ZZsVwifaTJb9D5v7ZEwRP
	Hpm8xrmFnCK0+5oPfI9Ot2pLDKsTmZVod2TM2N5OfhmRKjN8tq76irZFnpD4oYAIPtvpXdbcttq
	VAokgLh+82tliEa1gEOOScOPT/6N9L3n4Td2XBI51yURjqiSYW3y1JthggGx3McVtg7AlRRdVvx
	mf3imPQhChUKJQFWzP+3nXaJecP7ejtMFshFpYwtBPYx8HTMKDbDx7CD1jmzLGLdExRw3PoqCoE
	msla4j5DwQVohOxiZg4aaUdDT16I9KzUyJO+64jIHE4KjKKXc1HI2xZ0yMHffl99VS0k7Hvx2b3
	Qs0EkXN4Wcb80U/EpRx8APpbomb2pHNhtusLAhZSqU/EtjvQmnKbdwWhxlZwjP31pP9wx60cp/N
	lbcccK2u4WPpcGDgskOS6917TR0qmrCLySm8u4PaZLW25egruoCyPQUDRBHs4HCdd83scDYfo9g
	teoECpxfS4trFH9+b2E8OZPFQ==
X-Received: by 2002:a05:6000:290b:b0:43b:4468:b112 with SMTP id ffacd0b85a97d-43b6426b65fmr3331186f8f.25.1773990302715;
        Fri, 20 Mar 2026 00:05:02 -0700 (PDT)
Message-ID: <3e7d7fbb-55cc-4536-abfd-998cc10b01cc@suse.com>
Date: Fri, 20 Mar 2026 08:05:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/cache-col: address MISRA C Rule 5.3
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: <ded7e2aeecd18109bf2fde5cff0d356932f08e28.1773952245.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: <ded7e2aeecd18109bf2fde5cff0d356932f08e28.1773952245.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.03.2026 21:31, Dmytro Prokopchuk1 wrote:
> MISRA C:2012 Rule 5.3 states as following: An identifier declared in an
> inner scope shall not hide an identifier declared in an outer scope.
> 
> Inside the 'if' block, the inner 'i' shadows the outer 'i'.
> Reuse the outer variable and remove the inner declaration to fix that.
> 
> No functional change.
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>

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



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 07:23:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 07:23:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257820.1552088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3UCz-0007yH-CD; Fri, 20 Mar 2026 07:23:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257820.1552088; Fri, 20 Mar 2026 07:23:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3UCz-0007y9-7s; Fri, 20 Mar 2026 07:23:49 +0000
Received: by outflank-mailman (input) for mailman id 1257820;
 Fri, 20 Mar 2026 07:23:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=VTAn=BU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w3UCy-0007y3-Ia
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 07:23:48 +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 bac473a8-242d-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Mar 2026 08:23:45 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4852c9b4158so12212025e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 20 Mar 2026 00:23:45 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b644bd0dcsm3477172f8f.11.2026.03.20.00.23.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 20 Mar 2026 00:23:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bac473a8-242d-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1773991424; x=1774596224; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=WWVatIPeJwA8EeG9PIEXf1kkSpNMQx1kioB5xWFi8ns=;
        b=eUY2HGg1FTCwsEuaHqf3e9LiwJ+HpeaWM/01G5yPlvy8tFT3JrMno9F4iYOMoJezFr
         41FWOgyJYpzV73fidEYjqCFbNNlICtRY9P1KnECZ2KMuxLcM3sF4hugmWHbYOX73W8R3
         bqIdVbPyH5jbvYTNHhJn+n/VBT9XH2c7sTpOMa1JD3SAPZwOrRSLt+rzq9YHvllIMm/X
         oOVag9HwU1jEaIRp4oskj4I0/bqo9OxvrhMF+cSG+MMH36BOYDxFNcW2y8tNvOzP0rvL
         pWrNbrOEgfdhMXD2rZxNN4ZSUwwliJ+sqt7+r76RMCCvpYB50/AQ8OwEM/ydiBbzOLcE
         HzaQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1773991424; x=1774596224;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WWVatIPeJwA8EeG9PIEXf1kkSpNMQx1kioB5xWFi8ns=;
        b=R7250y06yvoZaHmuZC3w9G4cdjuR71qEXBS9sTdr/wwSRPl7N0h3KUHsS+7aU/4PPJ
         kO2e19KZV1iPptDtX1MWTPCAcZVRxLlfauL00kkal6IOeQMEHMjneYFJ/ZSawRh5cmXk
         8VOMyiSJvb0+2nymtiIxKnvddfOQwlTFH56cWeM7BLEvQAF+5uNehlpLqGMSHegjrkhx
         BmTLM3X9huu5kZMGHOEKf53KBqWwbWqkicVDSlxMsDk+x1Ra0KGeHRDoTYexMXTJoysh
         mqPUbqnU5Aj/IHGoYCLR8RP7M5sxG5KjT4XEjq7DOrqd2EUkTsgqvP039r21mmb7rNID
         x5sw==
X-Forwarded-Encrypted: i=1; AJvYcCXwaO31pH2gRN1tVMB7D50F8awUT8WeSj8cjBjULwhGYDZaUdD7mY/6/Vktmjsa5IlXC8RCKbFU7Bs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxs6gv8IRcdzRFmqXVByW1lMEstFF05YoKXTUIvc3IEzF2FtRp9
	/mRpS1ttCWeZR/LhKJNCvnub6acrrUWmXFyYt/chGZd9wjtBR+WObk47mL/3FJbX6w==
X-Gm-Gg: ATEYQzwkd3kQZP8RRgH7op6MwZeiVFgplHlgcse33EvuGRay4UWJYIw3zR2gbXG+vrZ
	vTJvhlUsE7UCHVEVpdW5wzxmrXHEsvOTU22sLtUVL9QMTQKEPqJWb8gLFLl8RNCkYlcITFBAxCq
	iNt1NtbYm7DkmDnZnn5o1rx4mzX1Qc8rIZJnfVxov1CbnsLtn05VzA8+WUGY5+AvkdX9mkQdmL7
	7eoh50o+MRsGBqDQxLX8yNU+1aJyZo9BMBPsuWIm3RWrRKrJvCwLbu+xmNyJMbBmP5Aj+djTBOM
	2vueGiWW4HpHi5owr0TowhvWvGeaV8rCDA5PGIAL4ngg3HxO72mIU7RmimfpHVo/PkEAbRpsDAV
	f7qJUKiiL5t2rrGhG4kn6cvQf/LHM3YqSlOXeikhLkdBt9PDm1otZz2YRbaWqrbYWO2/cWbL3Cx
	6chkWu7TWbcODwEPDEoSJ59uoVGRULgzguXA5t8lqkbbEF+BcfHaF5jdQ9w/7A0AsWLKPyBBwsj
	my5HPktn7MPmNc=
X-Received: by 2002:a05:600c:1c0a:b0:485:40c6:f528 with SMTP id 5b1f17b1804b1-486fee2bb38mr25587495e9.30.1773991424380;
        Fri, 20 Mar 2026 00:23:44 -0700 (PDT)
Message-ID: <88d8a49c-035c-4201-855b-7a893c07b538@suse.com>
Date: Fri, 20 Mar 2026 08:23:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC] RTDS scheduler: potential issues found during safety
 analysis
To: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
Cc: dfaggioli@suse.com, mengxu@cis.upenn.edu, gwd@xenproject.org,
 andrew.cooper3@citrix.com, julien@xen.org, tiche@cis.upenn.edu,
 tiche@seas.upenn.edu, Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
References: <1c0f5bc3-5e04-4043-b950-bf9af10bf720@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: <1c0f5bc3-5e04-4043-b950-bf9af10bf720@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

(dropping Dario's duplicate but wrong email; adding Jürgen - see ./MAINTAINERS)

On 19.03.2026 18:49, Oleksii Moisieiev wrote:
> Hi all,
> We have been performing analysis of the RTDS
> scheduler code (xen/common/sched/rt.c) and identified several potential
> issues that we would like to bring to the community's attention. We would
> appreciate your feedback on whether these issues are considered worth
> addressing, and if so, what the preferred approach would be.

The question is a little odd: If you mean to use the scheduler in production,
a goal is going to be to move it out of experimental state. For this, sorting
issues like the ones you enumerate is pretty much a requirement. And yes, the
suggested approaches look plausible to me.

One other aspect: Please don't send HTML mail. I'm leaving everything as reply
context, for you to see how it ends up looking when read as plain text (with
my mail UI at least).

Jan

> Below is a summary of the findings. All references are to the current
> upstream code.
> 1. Inconsistent validation in domain-wide vs per-vCPU parameter update
> ----------------------------------------------------------------------
> In rt_dom_cntl(), the XEN_DOMCTL_SCHEDOP_putinfo path (domain-wide
> parameter update) only validates:
> if ( op->u.rtds.period == 0 || op->u.rtds.budget == 0 )
> In contrast, the XEN_DOMCTL_SCHEDOP_putvcpuinfo path (per-vCPU update)
> enforces stricter checks:
> if ( period > RTDS_MAX_PERIOD || budget < RTDS_MIN_BUDGET ||
> budget > period || period < RTDS_MIN_PERIOD )
> This means the domain-wide path accepts configurations where budget
> exceeds period, or where period/budget fall below the 10 us minimum that
> the per-vCPU path enforces. Such parameters can lead to scheduling
> overhead issues (very short periods) or over-allocation (budget > period).
> Suggested fix: apply identical validation constraints on both paths, i.e.
> add the same bounds checks (budget <= period, period >= RTDS_MIN_PERIOD,
> budget >= RTDS_MIN_BUDGET, period <= RTDS_MAX_PERIOD) to the putinfo path.
> Additionally, the putinfo path does not handle the extratime flag at all,
> unlike the putvcpuinfo path.
> 2. Priority level overflow for extratime vCPUs
> ----------------------------------------------
> In burn_budget(), when an extratime vCPU exhausts its budget:
> svc->priority_level++;
> svc->cur_budget = svc->budget;
> The priority_level field is declared as `unsigned` (32-bit) and there is no
> upper bound check before the increment. While rt_update_deadline() resets
> priority_level to 0 at each period rollover, for a long-running extratime
> vCPU that continuously exhausts its budget within a single period, the
> counter could theoretically wrap from UINT_MAX to 0. Since priority_level 0
> represents the highest scheduling priority, a wraparound would cause the
> extratime vCPU to suddenly preempt vCPUs with active real-time reservations.
> While this scenario requires an extreme number of budget exhaustion cycles
> within a single period, it is a concern for long-running embedded or safety
> systems that operate without reboot for extended durations.
> Suggested fix: saturate priority_level at a safe maximum value (e.g.,
> UINT_MAX - 1) instead of allowing unbounded increment.
> 3. Replenishment timer loss during CPU pool reconfiguration
> -----------------------------------------------------------
> When the last pCPU is removed from an RTDS CPU pool, move_repl_timer()
> kills the replenishment timer via kill_timer(). When a pCPU is later
> re-added, rt_switch_sched() re-initializes the timer object (if status
> is TIMER_STATUS_killed) but does not re-arm it from the existing
> replenishment queue. If the replq already contains pending entries, those
> replenishments will not fire until some other event explicitly calls
> set_timer(), potentially stalling all non-extratime vCPUs.
> We believe this is actually a broader issue that goes beyond the RTDS
> scheduler: the common cpupool infrastructure probably should not allow
> a cpupool that has assigned vCPUs to lose all of its pCPUs. Preventing
> such a state at the cpupool management level would address the root cause
> for all schedulers, not just RTDS.
> Suggested fix (RTDS-specific): when timer ownership is re-established
> in rt_switch_sched(), re-arm the replenishment timer to the earliest
> deadline in the replq if the queue is non-empty.
> Suggested fix (common): the cpupool code should refuse to remove the
> last pCPU from a cpupool that still has domains/vCPUs assigned to it,
> returning an error instead. This would prevent the problematic state
> from arising in the first place.
> 4. Missing scheduling notification on vCPU insertion
> ----------------------------------------------------
> rt_unit_insert() inserts runnable units into the replenishment and run
> queues but does not call runq_tickle(). In contrast, rt_unit_wake() and
> rt_context_saved() both call runq_tickle() after runq_insert(). This
> means a newly inserted vCPU with a higher priority (earlier deadline)
> than currently running vCPUs will not be considered for execution until
> the next natural scheduling event (timer, sleep, budget expiry), which
> can delay scheduling by up to one full period.
> Suggested fix: add a runq_tickle() call after the runq_insert() in
> rt_unit_insert(), following the same pattern used in rt_unit_wake().
> 5. Stale scheduling flags on vCPU removal during context switch
> ---------------------------------------------------------------
> rt_unit_remove() removes queue membership via q_remove()/replq_remove()
> but does not clear the RTDS_delayed_runq_add or RTDS_scheduled flags.
> If a vCPU is removed while it is being context-switched off a pCPU (i.e.,
> RTDS_scheduled is set and RTDS_delayed_runq_add may be set),
> rt_context_saved() will later clear RTDS_scheduled and, finding
> RTDS_delayed_runq_add set, will re-insert the removed vCPU into the run
> queue via runq_insert() + runq_tickle(). This results in a stale vCPU
> reference on the scheduler's run queue, belonging to a domain that may be
> in the process of destruction or migration.
> Suggested fix: in rt_unit_remove(), explicitly clear RTDS_delayed_runq_add
> and RTDS_scheduled flags after removing queue membership, so that
> rt_context_saved() cannot re-insert a removed vCPU.
> We would appreciate any feedback on these findings. We are happy to
> prepare patches for any of the issues the community considers worth
> fixing.
> Best regards,
> Oleksii Moisieiev
> 
> 



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 07:46:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 07:46:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257831.1552097 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3UYS-0002hj-49; Fri, 20 Mar 2026 07:46:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257831.1552097; Fri, 20 Mar 2026 07:46: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 1w3UYS-0002hc-1L; Fri, 20 Mar 2026 07:46:00 +0000
Received: by outflank-mailman (input) for mailman id 1257831;
 Fri, 20 Mar 2026 07:45:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GknJ=BU=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1w3UYQ-0002hW-Nk
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 07:45:59 +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 d1fdb465-2430-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Mar 2026 08:45:52 +0100 (CET)
Received: from DUZP191CA0039.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:4f8::13)
 by DB4PR08MB7958.eurprd08.prod.outlook.com (2603:10a6:10:38f::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Fri, 20 Mar
 2026 07:45:46 +0000
Received: from DB5PEPF00014B8C.eurprd02.prod.outlook.com
 (2603:10a6:10:4f8:cafe::83) by DUZP191CA0039.outlook.office365.com
 (2603:10a6:10:4f8::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.30 via Frontend Transport; Fri,
 20 Mar 2026 07:45:41 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B8C.mail.protection.outlook.com (10.167.8.200) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.19
 via Frontend Transport; Fri, 20 Mar 2026 07:45:45 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DBAPR08MB5848.eurprd08.prod.outlook.com (2603:10a6:10:1b1::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.23; Fri, 20 Mar
 2026 07:44:43 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9723.019; Fri, 20 Mar 2026
 07:44:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d1fdb465-2430-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=ulkqic8tjTFJM3dNm7tEerLg5QPK9TEGW5UhiRau/ovihjprZwRl0zndvoQk/xkR35Ve4xjHfoJ1hv/mpdeE/Ga1nIbVE6t6MzoH9VAxtJJ9wS2YDEWlGUAGMwjnGk/7URvX1oAdWmqtpPIBGXm93MR+CVAEEdH8uPoOzVy58q+NfB39JZZhUn9yqeuIomKKWkQ1rfy2FceXsjMqBinnlpyMSp+rsX53xNF9uEumwEdmr+n8YL/1vDkPbj/erwF3YASVoejY+/b/ZlEdc8DcyfCdqR6IaSmArH3rJW485c03R0Y/h5mGE00EwdkprX47YSew1cfin6mSxTa9SfJtLA==
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=84Q0rWdzY+4rSHbm7cliyjzI/VC72AVwvDvmYKV+/XQ=;
 b=y8jnLpBOalCWsspJN+297HzPdvMe1qrdwmxejTZXANksJhO6O6PxquDI0PnEQ81icYB9QA7x2vGcx6E/xi3hF5fmPbLL8RoyyVAOkSQ1D39QxzLOz8MnNxTemsbSjk3S1a/hOlB9k54h/aj310IOmvPmkznJsk8JMCyS9DMy//Thq83oaJF1Qd50mtpgFUZEzH99rXefE4Hcc41b68Zo4ovP76DXxRxj0Ru942SQB6iYi+t1EH3OcM3oGUNYxlL+kmvl39Jy4uH386w60GvmCWNJ3RcgHIhEelfREpv4SIzcfRdvkQSPby3i4dkE2e+o7Y1XusZMKCTqvFrSEk4ueg==
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=84Q0rWdzY+4rSHbm7cliyjzI/VC72AVwvDvmYKV+/XQ=;
 b=Zuq/7eBVlkOAfuzwCUUl2dCKAp9NMA1z1hl1FUm/rLih0NUWiu8nmOz3D4PIK1qVJFktj0f+Pu/Bl/CWcFVbXU9PoKx/kZMHqbCYUJptgLD6nqjsecy7KE3cnSwYrCY7/NtRRWaO4abz6g2kmfT3E4SmkD9u9CKiifTPoHIEEVM=
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=YA4SNq+BYnhsO2Pckv1Df5MNWcMNH/vQLoM9/nAhCS7VztzYm9gMizNEe1oYeapoNx3pES7fseZiY54Ty4yyKiTHFAVPNwAbJVQkj1BPBSnCuhOtdrNKrlZ6eyAHICCGhWA2DNWsjTtD9SvfBkTJDBF9dh1YMHFwiWR8YE9r84D5LMNcTwNKYBG9zv22wTMRaIfh2Y2slN4ElC8r4LNpdLBlkl0uqs2QcsOxJC8a8EVvwkgkdoihPVDLvHLdEvRyFocwtw1INfHCEBd+WUiCGK2MwD3zFMyiDa5odLsU6EmIU27y7eMcx1JJGTp0H03CS9/LRDtMW9Rs95FrmDJz/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=84Q0rWdzY+4rSHbm7cliyjzI/VC72AVwvDvmYKV+/XQ=;
 b=FTp1I1pJNzOl2vaN3M0AP7WqeA4uvKXrAts/6YzXAlAxRJ2f+hY6fIM73rf00BsAmq4L3vEDaouJ/ozldlzHFrGlZEn1XEOdK54l3WQoDpO1VcG45HuG0FZCknEYnhJZbQaTprZRDOU3paPE5xGRChqznobNmBAvMl8TuB4Li3krjrPJbNfyy/LaAqueAAnikbF/poXoxv8RB+2irmLpiK09KN0drYVaY4J0kqtMruR2QlahycGwdQk0e/e/YavWp/PAgzXyg3wHbM1F599dn0Jn0UkaOEZ/s5ju6mw8yLV4WrpsLY6lxjGQlbZnQknOmd4l3BDBPG+r6TtTxfYcgQ==
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=84Q0rWdzY+4rSHbm7cliyjzI/VC72AVwvDvmYKV+/XQ=;
 b=Zuq/7eBVlkOAfuzwCUUl2dCKAp9NMA1z1hl1FUm/rLih0NUWiu8nmOz3D4PIK1qVJFktj0f+Pu/Bl/CWcFVbXU9PoKx/kZMHqbCYUJptgLD6nqjsecy7KE3cnSwYrCY7/NtRRWaO4abz6g2kmfT3E4SmkD9u9CKiifTPoHIEEVM=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Jens Wiklander
	<jens.wiklander@linaro.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH] arm/tee: rename variable to address MISRA C Rule 5.3
Thread-Topic: [PATCH] arm/tee: rename variable to address MISRA C Rule 5.3
Thread-Index: AQHct91SP+heAl5ESUaIOkxQ7VfzerW3Cw6A
Date: Fri, 20 Mar 2026 07:44:43 +0000
Message-ID: <2E014D71-DFD1-46BD-9715-D6EEB0E3ED31@arm.com>
References:
 <e7fd1f75146e7faa520414c4ffc1bd9572914039.1773951370.git.dmytro_prokopchuk1@epam.com>
In-Reply-To:
 <e7fd1f75146e7faa520414c4ffc1bd9572914039.1773951370.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.3864.400.21)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DBAPR08MB5848:EE_|DB5PEPF00014B8C:EE_|DB4PR08MB7958:EE_
X-MS-Office365-Filtering-Correlation-Id: 73fbe33d-9ebd-47e3-4ee2-08de8654b24a
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info-Original:
 miVqY6WFecg1em0Ry2LjcEjoB7EQwTq83PF4SvrQ9jAcZu/jsNNvX54ldLU9Klnju+dus9zIJEX2tL1tyuSmQCkaNtNb6cWAhBubrKHrP4TxpUHCkXbuIOKQQfbTZkXHn5c+S37Yv6DwgZCA6l+6bYtT0+QryCuMaOtN9kITRAfo/QFdWYx5/ZIymf803JmkShMLHe/IveKH04EXGTaTOWXOm+7+6/6c2+YR6WqHATpcmi7KVYnRXZmc9yOOXutM+1ff92guc6ux9ohq69B7fv+iw0HuzNGcnX8EUwvc7V8ynKs4cHuuE4qo6ccSl2ZmNxGSMm+aRlZwnPlcLYgxeBobrn6JwRWeOk16bS3lTOhVza3nDbgFprKL0aS8AjEDI7WNIbYVMQgMNZK+B3uWRdD16tuBPBONpOBsWNyTLMxPj3C3k+jrldSBrl5rRyxNb+4wRcb5GBw/qVV3OlI/EJCdwax1eLCMh1fVJrWGGYP0J8GXeW8HvKUfR870HMcNLK9UtlEOtyvlP5/wm1Z5QIn1zhO8oe4A6nRW6CZ7ISvUlVC2877KLcSJgkwIowZI0fFVCaePcGxGuQj8ZJ/BIABFqf7VIv8kOQACZKyYKAS8lQXysg+jEOYxLtkW6MsjfEBB4u0iYgJHqTPH0GQ8x4fJ3igJ9+/rRV1Evwn9fs0dKi+htOj+0RBwVWvZWqdVc8rZpABbbLxljdTuJ2mSY4Ypr6ou9riOY3FJUIae3DVEuSjercRPERhVhUu+krhhKKC1GAD4c0mpMvg9V7vu+p246e/XVAstps/iSODut7M=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <FDA13181EA074943915A2B18EA2A4DCD@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 K025t90eKaWLqL5/vdByOMkaU6vvod4chmMglZNtavpbDvo3XCSzTIAlEv2B3k4ORPtbtkHnvsxQPp/xsiHgijBgr7jNzKXUSNVYF8UEt4u0r0JAhj95ulVBnoBTrOJKm4HMkM3Z3REGi5FF3r1rRmEHNdoVxiXCqjMkYfMy3DYf2jhsZCFR0jubJ42E00QTfCoxyzCjGk8P0V4k/FPcbuag2VIl0BTklB3tP1oOS7Teo++g2zYthpS1aVE/RGpI078F1z8nQqrytxL/8wFXyhaR9UJHBPo3s6N1Bp0k0v+Sia9AwbYKmcXzQ6ktLxj9O6pumqT73uCagu1uxeulmA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR08MB5848
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B8C.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	0823016a-95d8-4ac8-f172-08de86548d03
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|82310400026|35042699022|36860700016|376014|1800799024|7053199007|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	uj5n1cVmuH9f3jBWCTyNZbIcrKyvmXDfzTFjIf3GJ6w1HbBBKi06vQ7Fc0fa2k7p9OhAb6ZPCOVcYC+4w/PKhNG90CNGO815HJ6Z3zTgEj0M309fieH/vCQh2n2/71srzdl0lXqr/R3UYq1aW2Z8KLkR2+HBIUBjnVNFyzR5GQfo7QwXUKzd2numqO9PijUJ6mWzhm1jfe7trHCfJ2JWIghi6SKbEThvKvsHjmpl51YHW3bU1+swS/5TOUZA22lGsYN587Ut0TGKcDRnd/CVz58aW7D8DlhZMmOlpCD/cjbyV99AzrpL4xWoSG3obA9AJ7JxQexgosvPCjO1TQdfEtGtLlFC2kJfThcyUojHf7YXt7P/phnxSpHFpWZxRpKHbHbjwyZkO5nqALzbgHVTAqhJR8nVDu52R10nsEJj+rVAoMIytHoYmY43I+0TkcQR+V5nGxYgLMnhncG6Nl0uSvJcwOvmVbNFIEi7TY8MLZZNqKlnNZAtoMEGykKiko2OmVxmoECGss4eqdF6UgGIdTGPpOreWPT+QkmAO7+Kf8K0H+g8KRZCgNZTLJ7qIJ8tyB+dHluEREX0Yh+DU7ty85dzGzJ6DrwbKFJsdaQn5q0Jfd4tlauGGaRzwSiqMGpjjmcUNFzC//7Ao20NuM/BhXpUVOc1HnjMIe+E6RrfvOKT9N5fQM5/XtFeHgKugSo73Umi8e7DoVyIVPiDug0w/Hs4BuqyKas+q1zmE4cuYV1jLdtXFXZfmYlK6QWT/a5B7BvExSVn+NHWQ5/dBTD9Dg==
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)(35042699022)(36860700016)(376014)(1800799024)(7053199007)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	9yDx0UYKv6MaXhA/hM7GZTc9OrWNMGDyDlKL7zxnwPlsmMeBwg7da2mpnXN5fxvHdw2zRwFtRBRZz3yXtcQIM4k1gJ/tLT2RNWy3XxxDE1ARS0bUvHKBbJIOeU1jTPmSwuxNVcHL3RMmWy2cvoH9UUQc/ezyLaf2UR6ktQQXLa7yzuWKQ2UDqBwnnpOYHf6lOQZ2aYZCRUXOJRsiDmD52q+iKSBYLvFLAUY/anl6ydCNqE0Ge3EOG/ekwPfvqq2LZ33s45xG3B2mCXFWgbMf4/qR60oXCM7dJgoiWhOPhS+C5DXt/j9ibkKHm+9KcQXHqwwJqsAJrzzrq/7zwYiefk6FG+hAEfmHNy4Nv1Av3HusfGgfbo63qBQM5SXy/HsreRt79+9JMfev93JhS22Zd6P6+d6DqsNq+PyKKi1L7pKczq3GuC7uvi+t3DPstmf6
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2026 07:45:45.8709
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 73fbe33d-9ebd-47e3-4ee2-08de8654b24a
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:
	DB5PEPF00014B8C.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR08MB7958

Hi Dmytro,


> On 19 Mar 2026, at 21:16, Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com=
> wrote:
>=20
> The local variable 'ffa_vm_count' shadows the global variable, declared
> in 'xen/arch/arm/tee/ffa_private.h', therefore it is renamed
> 'ffa_vm2vm_count'.

I have a patch in my queue to solve this (I am just removing the ffa_ prefi=
x from the local
variables but does the same as yours) and a patch to solve the other misra =
issue in optee
but happy to to use yours if you want instead.

I was waiting for the pending ffa serie to push them (should be merge soon)

This patch will not rebase cleanly on top of that serie which is changing f=
fa_partinfo code.

Do you want to wait and rebase or abandon and use the one in my serie inste=
ad ?

I am ok with either solution :-)

Cheers
Bertrand

>=20
> No functional change.
>=20
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> ---
> xen/arch/arm/tee/ffa_partinfo.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>=20
> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_parti=
nfo.c
> index fdb03dae9a..473507ca3a 100644
> --- a/xen/arch/arm/tee/ffa_partinfo.c
> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> @@ -265,7 +265,7 @@ void ffa_handle_partition_info_get(struct cpu_user_re=
gs *regs)
>     uint32_t dst_size =3D 0;
>     size_t buf_size;
>     void *dst_buf, *end_buf;
> -    uint32_t ffa_vm_count =3D 0, ffa_sp_count =3D 0;
> +    uint32_t ffa_vm2vm_count =3D 0, ffa_sp_count =3D 0;
>=20
>     ffa_uuid_set(&uuid,
>              get_user_reg(regs, 1),
> @@ -310,7 +310,7 @@ void ffa_handle_partition_info_get(struct cpu_user_re=
gs *regs)
>          */
>         if ( ffa_uuid_is_nil(uuid) )
>         {
> -            ffa_vm_count =3D get_ffa_vm_count();
> +            ffa_vm2vm_count =3D get_ffa_vm_count();
>=20
>             /*
>              * Workaround for Linux FF-A Driver not accepting to have its=
 own
> @@ -320,7 +320,7 @@ void ffa_handle_partition_info_get(struct cpu_user_re=
gs *regs)
>              * the requester endpoint information should be included or n=
ot
>              */
>             if ( ACCESS_ONCE(ctx->guest_vers) < FFA_VERSION_1_2 )
> -                ffa_vm_count -=3D 1;
> +                ffa_vm2vm_count -=3D 1;
>         }
>=20
>         goto out;
> @@ -355,7 +355,7 @@ void ffa_handle_partition_info_get(struct cpu_user_re=
gs *regs)
>             goto out_rx_release;
>     }
>=20
> -    ret =3D ffa_get_vm_partinfo(uuid, &ffa_vm_count, &dst_buf, end_buf,
> +    ret =3D ffa_get_vm_partinfo(uuid, &ffa_vm2vm_count, &dst_buf, end_bu=
f,
>                               dst_size);
>=20
> out_rx_release:
> @@ -370,7 +370,7 @@ out:
>         if ( flags || ACCESS_ONCE(ctx->guest_vers) =3D=3D FFA_VERSION_1_0=
 )
>             dst_size =3D 0;
>=20
> -        ffa_set_regs_success(regs, ffa_sp_count + ffa_vm_count, dst_size=
);
> +        ffa_set_regs_success(regs, ffa_sp_count + ffa_vm2vm_count, dst_s=
ize);
>     }
> }
>=20
> --=20
> 2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 08:55:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 08:55:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257857.1552106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3VdH-00045V-9D; Fri, 20 Mar 2026 08:55:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257857.1552106; Fri, 20 Mar 2026 08:55:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3VdH-00045O-6I; Fri, 20 Mar 2026 08:55:03 +0000
Received: by outflank-mailman (input) for mailman id 1257857;
 Fri, 20 Mar 2026 08: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=AYjX=BU=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1w3VdF-00045I-LC
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 08:55:01 +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 628efb2f-243a-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Mar 2026 09:54:20 +0100 (CET)
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by PAVPR03MB9066.eurprd03.prod.outlook.com (2603:10a6:102:323::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.27; Fri, 20 Mar
 2026 08:54:17 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::904d:5820:80e1:41ba%3]) with mapi id 15.20.9723.018; Fri, 20 Mar 2026
 08:54:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 628efb2f-243a-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=B3ByAROf6KJvB0cb2/j/3gRG6IGlhuWFtwtpcazrCP1tBIWni5bCXrHRx3+5jtDf0xCtDARq/McPUozUO7zZk3+fOyLwU1N3PCTd0OkkcQrgGuSMRtbb6Q0gjyYLO1817dQEHv4Csrcx+bJNWPh8xSPHqCw/hR9TZm2zY4YE5cgWsH3YBR/Cknd6FxrXqaKMCuYjN8dPwse27SgHS2pRSmXIFy6AzCF+JxEqZTSJsAkXpsgqidTojlQDAB0++IflP6AzG/QB7WbqUPi6gec+TKv5SDm7tV6eIbcmBbloC4MbgTWTPEbFHv4raZAljPr2c+JZelG7czaU0uS+8p/lCA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=O/bU8wI65kc+5Xbu7+4cTwVoNX7u03CmcuXMU1FqfgE=;
 b=kX2JvfSAbER6Ppu3l54k7c+iejrNwwTfttjI/B9ckP/ZCGZyAykZCmbhZtwHMTlfeMEEX3yzw2UmWbex8IgSHxGB1Xz/adGF7DEmgpqMRFjqsem1AkxoR3u5w6Nq+awb06omTDNsvlV3YSdGeJWo1xowC8YrH014o78IyII0U7OnDwj7BoIpdwha/Z/lQ+6R6vX1L58VzJQkBYTv7IKyVboDYso+sl8XX9rUitvefVW7gkkVr2DD5EGEP5fnJTuQX784DDGfM91fZmXyV6kKeXEwHbewEfo/DJWTEQgMSFQjSP4x3QxWYbQGB/ntEU8np494G2dlvH/EJr4Hpqhhsg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=O/bU8wI65kc+5Xbu7+4cTwVoNX7u03CmcuXMU1FqfgE=;
 b=ROQrwd7AnSZahUKigyeNIlCNwsk+LgZUgSa8Gy2BwDSmita6LNGqsZcDDeYV6rFpfqksu95Y2K/omd8Itu8bbfPXL6rPDv2nxYUTqT7U/WxO4+qr93YKm5KLt2ENbDhTHfZm4fLufbPpoiWQeWLCInOqAvWYZvuNWV8PoAlrugO8JCMwM5OjVianK3rR0LoyIItzSEtxE/zSqpfyR/bo/9mcFD8VTI8Vz3+NBgLQbk8PzLHVXV9L81fBjUrsflsRT9svyxBI3b9Tg0J4DIOl2B0XBuCUoDoVZ0T3KetBO1POutp5eVqEEdobdF25EAQJQkmn//DFP0xLWchZay8Sag==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Jens Wiklander
	<jens.wiklander@linaro.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH] arm/tee: rename variable to address MISRA C Rule 5.3
Thread-Topic: [PATCH] arm/tee: rename variable to address MISRA C Rule 5.3
Thread-Index: AQHct91SP+heAl5ESUaIOkxQ7VfzerW3Cw6AgAATegA=
Date: Fri, 20 Mar 2026 08:54:17 +0000
Message-ID: <73aa8397-90b8-41ea-89df-05317499489f@epam.com>
References:
 <e7fd1f75146e7faa520414c4ffc1bd9572914039.1773951370.git.dmytro_prokopchuk1@epam.com>
 <2E014D71-DFD1-46BD-9715-D6EEB0E3ED31@arm.com>
In-Reply-To: <2E014D71-DFD1-46BD-9715-D6EEB0E3ED31@arm.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_|PAVPR03MB9066:EE_
x-ms-office365-filtering-correlation-id: 3d85f2da-f085-4e50-d91a-08de865e44d3
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|376014|1800799024|366016|38070700021|22082099003|56012099003|18002099003;
x-microsoft-antispam-message-info:
 ylUNeRA2nG8AMpJRgHk/2pZfttMvLMQJ9BWUFKrDDX5fSQcp0d8ACPEJtOwGVwoVLYfzcs9WzZ6+0nAuSWd3QgQ6QUgHoAYo+HNjd6PZK2FTZtKDugziDeYgIxX3kof6/qTL0x17tiCRAwHM9Qae9ZjmUGUvkW+QRkEZnjG/fsqphjSRq5txFms2zHbzb6GlNngoepNk12W1uOwnsaQHpwELulPGwz9izdfCLUOkErE/0899l/JiUUNxbfDJiiq2mrkfFsZjGXUjS8OAxpeZbXYMxwPIIa1D+opjh/ggrUTryGYIo/hpK/fRtuv4bLJ2cfl3KVODzPZMdoYyyd/c7o7m4iW/EOYeMtRVN9vqJtEruI8zBnnY/h5rzR5OsQkVs1PatK3iJExtBT6Uu3pqCuVj7xbcVE4q5yNWx+wUTpDpcJyuUAh3E2F13mYli0mgcqTEAIredujIrEplTwQO6cOjZZSpn4b14AgeFfm/lqtEtC59jPeEYwtFbE78ZDdsgimRqbHxRkoxmH6VcPsXMwLg0yKJ7F90ZJBOJbIaJyTTpYSdC7+16bu5gQ5VXcXMIlWzlrf7FCy+hCk+3L8uGbw8aKGrj7+ZWqRSDKCwOlHa1lFPrvafN+5r8+rDjOAKQol8gtbxHl4czLiJwpU2+iSWcpqi7ZS2ZBfXLdl2iZkDpkz/2DBnEKjaGl/VK4R2wNyyIOq352UaoCFVEgpTU73DveLNTmVSHv+v+RTLTb0dAJ56ji1kfahb0EHVMyHzXOJGvBsgFpU3JGfNMlclRvFsLyv0rYegma//CfU+VU0=
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)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?aE9SOENLMzdUSHdxVHZIelNwREkxdUl1YUJJSkc4TDRTSFFENjNLdDZTUk5L?=
 =?utf-8?B?V0VHZmZpUDl1S3lETjhPWk5yS3Fpb1picDlLbUM4RGNIVFNWTkpyeUdTd2Rh?=
 =?utf-8?B?amN5YVNMZHF2dk93dEMxZ3lBSDBOV1lqSmlJbzBVMlNJZUxQWnFzV2Mwa2lq?=
 =?utf-8?B?eFVBNWh3V1NNNmpqYnlpdzg3b1VxcWNxN2dwNWw1R00rbG1DbUorQ29FcHZL?=
 =?utf-8?B?eThIeHdFOVF6RHZ6TjAxZmNaNlRsKzE3Yzc4cGlySGorQk56OXBTV2gyVlFS?=
 =?utf-8?B?aW1KRElJTzFhWFhqQU1PbXB6VFI0R3EvSnlWQXJJV3BiT2lpSmNvejZGSC9z?=
 =?utf-8?B?WDBmM05ZcWZGaEVxcVZtdFY1bHBYMlkwSTZsc2dEbHJzeXBNaGRldGxJTlN3?=
 =?utf-8?B?ZE5GUzZLZFI5azhSUGxVcXBVUUJSRWdRNFBzM1p2bzdpaFB2Q2E3NTNYNGxN?=
 =?utf-8?B?bDExbmhGejdpa25wc1BBZGN0WnVPWGh3enI0MTU1RitzVUxkcUg5Q0g0YTBy?=
 =?utf-8?B?cSt3NXFXY0ZrVjhKSFBwR09lY1FVcFVxQkZWdXNEWkNsTGp2OHhsQVhTcGpw?=
 =?utf-8?B?RkNLQVRzUlNsNE5lZEgxMnRMWDUvZllhUnh0UVZ0ekFTeTEzKzZQWlFrNlNL?=
 =?utf-8?B?a0YvRjNNR2xSSTUvUy9TVmgzaDdqVWo4MUs4L29uUk5Cbng1UkJ6akgzcXZI?=
 =?utf-8?B?eThRQVJFVTV1dVVWc1NhV2NnMUVEYW9JaWZvMk9BMWNrSFJBb3pEeGxIc0du?=
 =?utf-8?B?WE50NW5GR0c5bGYrZTMxVFhJVW1HNzdUbERiSTl2Qmx6YW1KSHM1Q254R2hF?=
 =?utf-8?B?RThQVmhMZkMydGgwbDA5SUQzd2NrR2pTNlZxeHpMTElBSFBvd3piV3VDOG4y?=
 =?utf-8?B?aE55SkpzeE9JWTB3TUh6YnVrN1dYYmZ6SGl4V3Z5Y0dBQ3AzMGE1QTY3WG1X?=
 =?utf-8?B?M21DUlVlUW4xdkpXQTRNdHpkdkNHUkFvTERVTG5XRHpZR0IrbGhRMEdzZW56?=
 =?utf-8?B?cnVzL2pXeStMaVA5Wm5jc1JSOU0rNXlYVnlRWGhVSkhVU25Dai9LV0k4M2p3?=
 =?utf-8?B?OGMxYlJ2UXZaZ2tMU1RiSTZhNUF4RkpUbnJ2cFRpbU85SFkxdERHNFNEWmdn?=
 =?utf-8?B?alF2T0VzZG9IaW9LUFVDTFc1aEJzbEJ0NXQzZWt3QytpTC83YTNtaUNrTU9i?=
 =?utf-8?B?Q0VhbnVUc3A5T013NlUzR3JnV1ZDR04yY1dJTCtsSWVFc09TQTJUNFhneGo4?=
 =?utf-8?B?Z2Z1Y0g5SDArODJaNE44QW9Xb2NYdWM5S0xsVkIwbEF3Qy9lSUp5dVo5QzU1?=
 =?utf-8?B?aWI1SXZmQ2psTDgrZGZCZnlLK290akY3Vm5GNE45WW55ckxaQmFleHpMd05z?=
 =?utf-8?B?MGM0eUdTVUFMRmdwSHJEZ2doYlY2TlZ0WUVVdXpIZnFOaHBKVWxhOHc4OEZL?=
 =?utf-8?B?WkdiVi9RTTE4QisvaUFRcWdUSytKMUJhSWJKZ1JOaWVpQmVKYklmM3JhODFW?=
 =?utf-8?B?SUMyK2NpRlluaHVoSE5LWkk1SUJyMlVCck16MnRRd0YzZzJ5Qy9YV3VRZ09n?=
 =?utf-8?B?WlJIZzVjengrNzJnY3NkSmdiUkpCYVRSUDJPVzdUdmw3Q1VkcWo5cHhSMHdQ?=
 =?utf-8?B?MGZvSmpIRkRWcklmOGdQUStoWFBQQ3FXbCtUZk1UUHd1SjF0RklUbThEUXJq?=
 =?utf-8?B?TUN1d3R2WGx5cGpJbk4rQzcyclQwYS8yQ1ZKRWZEN0RENnJ1enZNMDNHWkxB?=
 =?utf-8?B?VEh6N1RPYytmQUk0cHh5cVlKRGw4WHpsYjBKN2d2dlJ0akNGTUdtK0dzZjl1?=
 =?utf-8?B?RUR4UTR6Y09FdmlGSjR2d1ZlUjh2LzlDUXpYQ2xmbWw0dXVjNUtNWC8vcFo4?=
 =?utf-8?B?UWdZcDlyRUF5NGtnOGxlTktobGpnSkhyZloxNW5oenRyMDJiSzVGNHBQb0hw?=
 =?utf-8?B?d0U5ckxVTjhGU29EeTNlR0FPN0c5NnhNM3NSUGlHMUl6RGZCOHpQNTNyU0o2?=
 =?utf-8?B?NmFvejVIV29FMGtQd3FmbzMyR3lWRmNsK1VSRC9zOEl1VDcxbEg2VXVSRmNV?=
 =?utf-8?B?V2JUc3RiaHJkdnp0NnVsamVlWkpVRmkwMTZ5VVhIajArbVlPNjdIdFN3L0NM?=
 =?utf-8?B?Q0xZb0VnQ09VM2NnRlBhYm1Kd2lEbVVKMlBXNDRWZllGWDMzemlqLzNGZ0hm?=
 =?utf-8?B?U1pIbXNvZWsyQkN1TGc1YlJJWmU2SnlyUkQwcklDbGZabXVxaE9ITlNZbGhu?=
 =?utf-8?B?MWJUYVBkRU9Hb2xXRnRiQS9xcWdETUZLU3JUWHpiRFZPeWIwV0p5a0U2aFZk?=
 =?utf-8?B?RXN6MXNyUHlqRGUyQk5TWUZBaWxzSHRuRm12QkRTS2lzKytKNkNkblNidWk3?=
 =?utf-8?Q?CeEB8T6GY3/d+Hqc=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <4E8017002BB0EC4892FD3B0565A3851F@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: 3d85f2da-f085-4e50-d91a-08de865e44d3
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Mar 2026 08:54:17.2667
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 9t3PlGdtd1aJHg5UeN0joibvYK1YcQMXFiigaaY9+rDeerHKWxiwXc9tuaf8UrWcDNQ5dtWWYjwZiOy7KypaRiOzpVQ+TFILep71x4hq8kk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9066

DQoNCk9uIDMvMjAvMjYgMDk6NDQsIEJlcnRyYW5kIE1hcnF1aXMgd3JvdGU6DQo+IEhpIERteXRy
bywNCj4gDQo+IA0KPj4gT24gMTkgTWFyIDIwMjYsIGF0IDIxOjE2LCBEbXl0cm8gUHJva29wY2h1
azEgPGRteXRyb19wcm9rb3BjaHVrMUBlcGFtLmNvbT4gd3JvdGU6DQo+Pg0KPj4gVGhlIGxvY2Fs
IHZhcmlhYmxlICdmZmFfdm1fY291bnQnIHNoYWRvd3MgdGhlIGdsb2JhbCB2YXJpYWJsZSwgZGVj
bGFyZWQNCj4+IGluICd4ZW4vYXJjaC9hcm0vdGVlL2ZmYV9wcml2YXRlLmgnLCB0aGVyZWZvcmUg
aXQgaXMgcmVuYW1lZA0KPj4gJ2ZmYV92bTJ2bV9jb3VudCcuDQo+IA0KPiBJIGhhdmUgYSBwYXRj
aCBpbiBteSBxdWV1ZSB0byBzb2x2ZSB0aGlzIChJIGFtIGp1c3QgcmVtb3ZpbmcgdGhlIGZmYV8g
cHJlZml4IGZyb20gdGhlIGxvY2FsDQo+IHZhcmlhYmxlcyBidXQgZG9lcyB0aGUgc2FtZSBhcyB5
b3VycykgYW5kIGEgcGF0Y2ggdG8gc29sdmUgdGhlIG90aGVyIG1pc3JhIGlzc3VlIGluIG9wdGVl
DQo+IGJ1dCBoYXBweSB0byB0byB1c2UgeW91cnMgaWYgeW91IHdhbnQgaW5zdGVhZC4NCj4gDQo+
IEkgd2FzIHdhaXRpbmcgZm9yIHRoZSBwZW5kaW5nIGZmYSBzZXJpZSB0byBwdXNoIHRoZW0gKHNo
b3VsZCBiZSBtZXJnZSBzb29uKQ0KPiANCj4gVGhpcyBwYXRjaCB3aWxsIG5vdCByZWJhc2UgY2xl
YW5seSBvbiB0b3Agb2YgdGhhdCBzZXJpZSB3aGljaCBpcyBjaGFuZ2luZyBmZmFfcGFydGluZm8g
Y29kZS4NCj4gDQo+IERvIHlvdSB3YW50IHRvIHdhaXQgYW5kIHJlYmFzZSBvciBhYmFuZG9uIGFu
ZCB1c2UgdGhlIG9uZSBpbiBteSBzZXJpZSBpbnN0ZWFkID8NCj4gDQo+IEkgYW0gb2sgd2l0aCBl
aXRoZXIgc29sdXRpb24gOi0pDQo+IA0KPiBDaGVlcnMNCj4gQmVydHJhbmQNCg0KSGkgQmVydHJh
bmQsDQoNCmxldHMgdXNlIHlvdXIgcGF0Y2ggc2VyaWVzLg0KDQpCUiwgRG15dHJvLg==


From xen-devel-bounces@lists.xenproject.org Fri Mar 20 09:07:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 09:07:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257868.1552115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3VpX-0005zd-Au; Fri, 20 Mar 2026 09:07:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257868.1552115; Fri, 20 Mar 2026 09:07:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3VpX-0005zW-7D; Fri, 20 Mar 2026 09:07:43 +0000
Received: by outflank-mailman (input) for mailman id 1257868;
 Fri, 20 Mar 2026 09:07: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=GknJ=BU=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1w3VpV-0005zQ-NN
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 09:07:41 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 3c42a681-243c-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Mar 2026 10:07:35 +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 B65621596;
 Fri, 20 Mar 2026 02:07:28 -0700 (PDT)
Received: from C3HXLD123V.arm.com (unknown [10.57.84.63])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 608AB3F778;
 Fri, 20 Mar 2026 02:07:33 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3c42a681-243c-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 0/2] xen/arm: tee: Fix MISRA findings
Date: Fri, 20 Mar 2026 10:07:20 +0100
Message-ID: <cover.1773911799.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This series fixes two MISRA findings in the arm/tee mediators.

1. Rename a local variable in FF-A partition-info handling to avoid
 shadowing the global `ffa_vm_count` (Rule 5.3 report).
2. Add/document `default` switch labels in OP-TEE paths to satisfy
 Rule 16.4 checks.

This serie is based on "xen/arm: ffa: Add PARTITION_INFO_GET_REGS support"
which is pending for merge in the tree so it must not be merged before
it !!

The following pipeline executed on top of this serie shows that there
are no findings anymore in xen/arch/arm/tee:
https://gitlab.com/xen-project/people/bmarquis/xen-ffa-research/-/pipelines/2395186683

Bertrand Marquis (2):
  xen/arm: ffa: Fix local ffa_vm_count shadowing
  xen/arm: optee: Add MISRA-compliant switch default labels

 xen/arch/arm/tee/ffa_partinfo.c | 14 +++++++-------
 xen/arch/arm/tee/optee.c        | 11 +++++++++++
 2 files changed, 18 insertions(+), 7 deletions(-)

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 09:07:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 09:07:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257870.1552133 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Vpb-0006RA-Sh; Fri, 20 Mar 2026 09:07:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257870.1552133; Fri, 20 Mar 2026 09: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 1w3Vpb-0006R1-PR; Fri, 20 Mar 2026 09:07:47 +0000
Received: by outflank-mailman (input) for mailman id 1257870;
 Fri, 20 Mar 2026 09: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=GknJ=BU=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1w3Vpa-0006Cy-QT
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 09:07:46 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 425ef13e-243c-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 10:07:45 +0100 (CET)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 018D21682;
 Fri, 20 Mar 2026 02:07:39 -0700 (PDT)
Received: from C3HXLD123V.arm.com (unknown [10.57.84.63])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id B34583F778;
 Fri, 20 Mar 2026 02:07:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 425ef13e-243c-11f1-b164-2bf370ae4941
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 2/2] xen/arm: optee: Add MISRA-compliant switch default labels
Date: Fri, 20 Mar 2026 10:07:22 +0100
Message-ID: <0050ab559814a619b4ae23dd070e7aa4629865e2.1773911799.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1773911799.git.bertrand.marquis@arm.com>
References: <cover.1773911799.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

optee.c has several switch statements over integer-valued OP-TEE fields
without a default label, and two default clauses that only contain
break. This triggers MISRA C Rule 16.4 findings.

Add explicit default labels to all reported switches and document the
intentional no-op defaults with rationale comments. The new default
paths preserve the existing behavior:
- unsupported parameter attribute types are ignored;
- non-handled RPC commands require no post-processing in Xen;
- unknown RPC function IDs are resumed unchanged.

No functional changes.

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

diff --git a/xen/arch/arm/tee/optee.c b/xen/arch/arm/tee/optee.c
index f719d9d767ab..3d2633237074 100644
--- a/xen/arch/arm/tee/optee.c
+++ b/xen/arch/arm/tee/optee.c
@@ -897,6 +897,9 @@ static int translate_params(struct optee_domain *ctx,
         case OPTEE_MSG_ATTR_TYPE_RMEM_OUTPUT:
         case OPTEE_MSG_ATTR_TYPE_RMEM_INOUT:
             continue;
+        default:
+            /* Ignore unsupported parameter type. */
+            continue;
         }
     }
 
@@ -1027,6 +1030,9 @@ static void copy_std_request_back(struct optee_domain *ctx,
         case OPTEE_MSG_ATTR_TYPE_RMEM_INPUT:
         case OPTEE_MSG_ATTR_TYPE_TMEM_INPUT:
             continue;
+        default:
+            /* No output fields to copy for unsupported parameter type. */
+            continue;
         }
     }
 
@@ -1050,6 +1056,7 @@ static void free_shm_buffers(struct optee_domain *ctx,
             free_optee_shm_buf(ctx, arg->params[i].u.tmem.shm_ref);
             break;
         default:
+            /* No temporary SHM buffer to free for other parameter types. */
             break;
         }
     }
@@ -1503,6 +1510,7 @@ static void handle_rpc_cmd(struct optee_domain *ctx, struct cpu_user_regs *regs,
         case OPTEE_RPC_CMD_SHM_FREE:
             break;
         default:
+            /* Other RPC commands need no Xen-side post-processing here. */
             break;
         }
     }
@@ -1591,6 +1599,9 @@ static void handle_rpc(struct optee_domain *ctx, struct cpu_user_regs *regs)
     case OPTEE_SMC_RPC_FUNC_CMD:
         handle_rpc_cmd(ctx, regs, call);
         return;
+    default:
+        /* Resume the call unchanged for unknown RPC function IDs. */
+        break;
     }
 
     do_call_with_arg(ctx, call, regs, OPTEE_SMC_CALL_RETURN_FROM_RPC,
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 09:07:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 09:07:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257869.1552124 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Vpa-0006Cz-I4; Fri, 20 Mar 2026 09:07:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257869.1552124; Fri, 20 Mar 2026 09:07:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Vpa-0006Cp-EN; Fri, 20 Mar 2026 09:07:46 +0000
Received: by outflank-mailman (input) for mailman id 1257869;
 Fri, 20 Mar 2026 09:07:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GknJ=BU=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1w3VpZ-0005zQ-UZ
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 09:07:45 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 4159f72e-243c-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Mar 2026 10:07: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 4FDDC1596;
 Fri, 20 Mar 2026 02:07:37 -0700 (PDT)
Received: from C3HXLD123V.arm.com (unknown [10.57.84.63])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E422C3F778;
 Fri, 20 Mar 2026 02:07:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4159f72e-243c-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 1/2] xen/arm: ffa: Fix local ffa_vm_count shadowing
Date: Fri, 20 Mar 2026 10:07:21 +0100
Message-ID: <030d24e1776af7c2391c588bc696592a64a92c51.1773911799.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1773911799.git.bertrand.marquis@arm.com>
References: <cover.1773911799.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

ffa_handle_partition_info_get() declares a local variable named
ffa_vm_count, which hides the global atomic ffa_vm_count declared in
ffa_private.h.

This triggered the ECLAIR Rule 5.3 finding "non-compliant local variable
`ffa_vm_count'".

Rename the local counters to vm_count and sp_count and update their
uses.

No functional changes.

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

diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index 4580bd5edb65..ed28820502f8 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -346,7 +346,7 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
     uint32_t dst_size = 0;
     size_t buf_size;
     void *dst_buf, *end_buf;
-    uint32_t ffa_vm_count = 0, ffa_sp_count = 0;
+    uint32_t vm_count = 0, sp_count = 0;
 
     ffa_uuid_set(&uuid,
              get_user_reg(regs, 1),
@@ -380,7 +380,7 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
 
         if ( ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
         {
-            ret = ffa_get_sp_count(uuid, &ffa_sp_count);
+            ret = ffa_get_sp_count(uuid, &sp_count);
             if ( ret )
                 goto out;
         }
@@ -391,7 +391,7 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
          */
         if ( ffa_uuid_is_nil(uuid) )
         {
-            ffa_vm_count = get_ffa_vm_count();
+            vm_count = get_ffa_vm_count();
 
             /*
              * Workaround for Linux FF-A Driver not accepting to have its own
@@ -401,7 +401,7 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
              * the requester endpoint information should be included or not
              */
             if ( ACCESS_ONCE(ctx->guest_vers) < FFA_VERSION_1_2 )
-                ffa_vm_count -= 1;
+                vm_count -= 1;
         }
 
         goto out;
@@ -429,14 +429,14 @@ 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, &sp_count, &dst_buf, end_buf,
                                   dst_size);
 
         if ( ret )
             goto out_rx_release;
     }
 
-    ret = ffa_get_vm_partinfo(uuid, 0, &ffa_vm_count, &dst_buf, end_buf,
+    ret = ffa_get_vm_partinfo(uuid, 0, &vm_count, &dst_buf, end_buf,
                               dst_size);
 
 out_rx_release:
@@ -451,7 +451,7 @@ out:
         if ( flags || ACCESS_ONCE(ctx->guest_vers) == FFA_VERSION_1_0 )
             dst_size = 0;
 
-        ffa_set_regs_success(regs, ffa_sp_count + ffa_vm_count, dst_size);
+        ffa_set_regs_success(regs, sp_count + vm_count, dst_size);
     }
 }
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 09:10:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 09:10:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257897.1552142 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3VsQ-00007l-AP; Fri, 20 Mar 2026 09:10:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257897.1552142; Fri, 20 Mar 2026 09:10:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3VsQ-00007e-7Q; Fri, 20 Mar 2026 09:10:42 +0000
Received: by outflank-mailman (input) for mailman id 1257897;
 Fri, 20 Mar 2026 09:10:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GknJ=BU=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1w3VsO-00007Y-9a
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 09:10:40 +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 a881b8bd-243c-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Mar 2026 10:10:37 +0100 (CET)
Received: from AM9P195CA0005.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:21f::10)
 by AS1PR08MB7538.eurprd08.prod.outlook.com (2603:10a6:20b:482::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.20; Fri, 20 Mar
 2026 09:10:31 +0000
Received: from AM3PEPF0000A78E.eurprd04.prod.outlook.com
 (2603:10a6:20b:21f:cafe::1d) by AM9P195CA0005.outlook.office365.com
 (2603:10a6:20b:21f::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.19 via Frontend Transport; Fri,
 20 Mar 2026 09:10:24 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM3PEPF0000A78E.mail.protection.outlook.com (10.167.16.117) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.19
 via Frontend Transport; Fri, 20 Mar 2026 09:10:31 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AS8PR08MB8442.eurprd08.prod.outlook.com (2603:10a6:20b:568::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.20; Fri, 20 Mar
 2026 09:09:27 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9723.019; Fri, 20 Mar 2026
 09:09: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: a881b8bd-243c-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=iXNHUQpwbz9K9e1mL3ZlwzZxVxWj8bP41MzOkgqU9k8Z0t/DB1SAIkNdzUvxCT4p8lKig7L3GwjL7RwRt/3+MK8WPV5vBn6aapC3ts3sIFicwxPUrFJZob4uEW2Q9qxKkfppRBoJApGS/i1E10LcI/bL2U2yDCrrU9HBTeGGytSVbtyWjXJx+yvyLV1DBpADFcsg2LDii5+kPiG7FfZLZZ0dBaqy1J7wudgey/wqku4hvsIFmCzwIgeHHJp+7sECOfzvcTfWmnkicoSqQMLGK+104pbQLd2JfmvQ9PyjoR/WNjK8Xn9XyRJNze7/8xRQFH/y0DMZ6Z02Ev9B2QVXFw==
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=8snH/ssz8nnANhJ2IOTzoWuv6JRMcs45u+juXqa06w0=;
 b=IBD5JicI46Fcro5sbH0V+6yTDL3Oq1uoC0VW0Jhmsx8fuYUfoLQUdXLTDP7gAuArdMZyv88z1yE/QLvWcCBZhtEzoGf+Gc4x0xZWrRQ2t8If8zhwTXF6LHjdk9yfbRn3psVf4KivMYqggzi4RF4pY4/vBc4q6Qnbllr2P3hRgQk/gsSuC9PaXwHU+KdqO6eJHLfFoHayuSuwWX+obyT6EsQsg5SP9KtW7RgIfogguvmtHcE+l+kRhu40a+oHD9KqRHpsj5+HDCER1j3Q4WjfEuF3Qz2iSeYVLtoZ9EJUf5ziInAh7XvcWC+pdoQMEWt1GAEonfunsGsfwEaywZdj6w==
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=8snH/ssz8nnANhJ2IOTzoWuv6JRMcs45u+juXqa06w0=;
 b=X6cnqFxyCv5F+OtiRBtL5VGAtQiEcl3y7Dm+Kb98OSd82LrjLGe1LvdNQgQ5LIwYb4/LYGoLgjDNi3TOo8dkyIbzlCYFsLh6nknvhFWihF6a3K+IxMNUJbkYKHpcbTaDtAzsvRr7zDUd4tYaFSVUOEQhL8Ize6LU/anJzAs5JA4=
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=AkYbeCT9ajo2oJsQes+lAWXsYWZbvDT1XkT6xv4LAowa8VRgcyGXlrNVWmHFgwRmxNweuScYhWX4XFglXZFkO8/5gizn2wbwz2bMtt1cVFw3M21Po5slYd/gwemMC9d1cAUX1YJbOueaPNk3xN3b5U6TbL4svMvzWLdF/f38Cvy/Vu02uxN7h/fPJtKexzpUw5ztRdEymeTOQKzjnqyg5JXuJSzNCooVNe1+Dll6mFomoSPvMWrEcXIdoPkq/QN7qPm8WRgXg/Xd34yeUKVxbBXeuicLdQV9L5xWKKjlEhk0i2W60ofJjCllAsdD3E9HbEB9FnCvdNXXye06/RpIgQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8snH/ssz8nnANhJ2IOTzoWuv6JRMcs45u+juXqa06w0=;
 b=Va8xLoJHQGy0+IFpc1SSujXnp0Axn8+6NIct9xzkgOjN0fSuS9NjwKV8VMIm/+3BMss64CRL/iqh/WI5iY3uRthbsEd//GV1RI22b0QtV4ex5gxtPi1KvEPXu1alKUQsRgf8dyWnCBisTO41sqRcRgl9Q0jQxw25liPZDOur5SASGRtRwGoleQSAZD3d6yq+tQsp1mR1vQDPkJdmBB6d21WiLWnjTLpAjXwdt++Klja31vNxCLjd1zWe1hmr9MCr5zsi2I+6Nld7A/J/t9+O1nSsIYbUi/D3aMRatJOnSJ9d6eBdBuUpekX61AFJKIw+wKFolQcSpcAyGT+OaTvu1w==
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=8snH/ssz8nnANhJ2IOTzoWuv6JRMcs45u+juXqa06w0=;
 b=X6cnqFxyCv5F+OtiRBtL5VGAtQiEcl3y7Dm+Kb98OSd82LrjLGe1LvdNQgQ5LIwYb4/LYGoLgjDNi3TOo8dkyIbzlCYFsLh6nknvhFWihF6a3K+IxMNUJbkYKHpcbTaDtAzsvRr7zDUd4tYaFSVUOEQhL8Ize6LU/anJzAs5JA4=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Jens Wiklander
	<jens.wiklander@linaro.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH] arm/tee: rename variable to address MISRA C Rule 5.3
Thread-Topic: [PATCH] arm/tee: rename variable to address MISRA C Rule 5.3
Thread-Index: AQHct91SP+heAl5ESUaIOkxQ7VfzerW3Cw6AgAATegCAAAQygA==
Date: Fri, 20 Mar 2026 09:09:27 +0000
Message-ID: <A4A7BBA7-C5A7-4D37-B549-1F738AE018F8@arm.com>
References:
 <e7fd1f75146e7faa520414c4ffc1bd9572914039.1773951370.git.dmytro_prokopchuk1@epam.com>
 <2E014D71-DFD1-46BD-9715-D6EEB0E3ED31@arm.com>
 <73aa8397-90b8-41ea-89df-05317499489f@epam.com>
In-Reply-To: <73aa8397-90b8-41ea-89df-05317499489f@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AS8PR08MB8442:EE_|AM3PEPF0000A78E:EE_|AS1PR08MB7538:EE_
X-MS-Office365-Filtering-Correlation-Id: d941d4b8-c1c1-4908-ccd5-08de86608974
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|1800799024|366016|56012099003|18002099003|22082099003|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 fa9UL1w2Lzt/K7XtRIlznPwIhp23I5lIRBhzZOOnv+ai8kTC+zzZM0r7V4hOb5Xasy/NxAooQvOqaant7xJTxnPzzdf0bqcD2cIz51r7BvyqhEQUEcwOsi6l6Kei2Ba3r/TjtXKPes6LbiAyyWWm6FhlUyy1fbcTWPk9kjX97sVwl8BMPmbOhttdP1zPYzMLpNVIOuroFIB+4rVRq6E5HTQEYpHTNGdIE0Cb4EZ8sYkbx8siE8Hu9V98XuiuJK5wemx8ElzVqTvyekaC/sS1YeMvkvIbiZY4a73NFQLFCuDg6N4lQz6kfUJZdqxz+Glk21Hrm+C+ZQWFrXxsh4oQ6E86U0qCJa3rpB0heGc5F3AO9qNd4JVCP6AXHsHvDteOkP7qWZXvqIF0TM7lTH39g1RGl7AeTkAH7UqQYr/Lt460+AOmlFdEkyFVLcpwNLQPQLQQkNAEhwpytNeT0aByDRyd7jImo/CSUEd7o04E8hyNms5ThJRlJ+4q7XlNzosCX01ieLLmrUw4bws+FtuG/PaeiEsfQrhwik4dl54Jkqo3mENcAh3lKHINICHZv9a35uaZXFcAZvXA3U6Asqpwn6BZURwNIRxtVvx+61+ablYC391pr9xvvJiQiBXNGcavxRf3lB4ofDj0R0Mo2K6HFw+gDLCXf/FKr73mJD7IF+cn3lUjT53FpkJESeOpCiGmRXBRX7u/Vok9D7IiPJvWAKmZsv/IEi4CRMIUPIYyIbutPw8coh2DU5s28jsRhT787lem83iMXdYG7u1Wl5CJKJn2NKSDnQbaEnS5MueAqLU=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(56012099003)(18002099003)(22082099003)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <9E15F7438737894AA4FA31F630BABC11@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 LS+uHL+umx6aWlUxS5EcVUNOp1wpmp8EVccN0cyUa7VWz2aDY5SUIEqLaqGr0ZAnNFXG0iyJ9AwQdry3sBkqDVLLk7vhPjJtjEYSsUpnrM+Zbfws+PYWycjZ+AsyR8EYjVenpgJDyuKobxjGK+1HuqPLkV+bIMKfMoLdRUcM3Wl1SJbCRn50VIXIUnwap+EnyszAnLstnkHSqcmWVj340r7wZ9K2kR66NU8GcNI3BQVhNDqjSSpJUziNs/Mfik6HDhb/61nJb01emF2dlSp7NcBNg13eqsrNMH2by0f3nguprUP9RZHnvTtM0Xlwt6+TONR/30RiPGvg85Y0C9dwJg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8442
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF0000A78E.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	80c0bbaa-32c6-4d9d-6711-08de86606365
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|35042699022|1800799024|82310400026|36860700016|376014|18002099003|56012099003|22082099003|7053199007;
X-Microsoft-Antispam-Message-Info:
	ASd4XZlNO3imNUomzx6pM1hrPqVX8kDW2O+2w85IubI0pFt98ipSktRTDfTRLN4z5vcHMMDtwBYgeY31+qczqYayM5zaz+2Kp//lUxdQo7uj2IUkS9jbAIjQfHq9gsji2EuwVRWMWbyj/YN6B6HtiLUsEFPLPycS/eVZjzEvhEYuz4JYD8RYCEy6c34L6znIo0uJ47FA7q9H2ogJVq3AGsKVtulFaXZ6UDt9HNlF3Jwu1A3QgLijVtKZVmgztMuMTvHUwBoyRenSpqYsyw+/2lhm7zKo0PatYJgLcLPazBLlLrpDledZb74x0Up69D3j9OKzaV+ZsoOCPCbay4uiZIPWWk9Rw3KILXOrSoiKN4ZnAeUS+NHdD90a+6BPjvWcdHyj6prK15Cn32dhBMF2u1FxyGK3gjwyCdN3UKLlsXBUGkn5HV1gMty+3h9jelpj/ziVgpgma7OY+Ogx15kYPOwS58KeY28nKnQB3a7UNojW+faZGOlV1Y8a/p5n6l+jGk4C2YRgQESVNAeT/GB5JaAi0nrZBDUy4WO4+8h9rEjcMhpLW5Fji0K8GSpCpHu1wKvqavF9qLzui7pGmcGEVjUireAkY2Cpov053PfqNFtuYDnC7OB+5RdumOoG0zk+f3w5emG0gerTApIqhmAEcv0K7L4mSe0Ab8IT0aAifkb680s5i9mAEdu9KSFzJwr4NKY+/4l19mbb0aSSbxNqEp1vLlwJ7NeLcKFD2rxW53E5IiUhg3g9hKde+qrhBCOGs/IiZJPGCvISDi0LBauR/Q==
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(35042699022)(1800799024)(82310400026)(36860700016)(376014)(18002099003)(56012099003)(22082099003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	JyHPj/gzApkNPetf97U/uB99waGMpjmo1Ww9vOgd1zIA6jwaJ1kE+pD280Q0ywS6ds//wRnznFR/Uj+awPty+QqGZcMc0p5NHvfD9gfCLe1pRyDvHbRbd3w4Tilx6c6onhNgNj/C0Wwl++qMfgYRHKxLvwOjj2OeWK+/hxcJ1IL1PkdbxXtWkfaavmK+juUiTRgXlagCyigVPSHcmqLSJXYIoQVycwJal0s6ORCjvc/VJ3EDRFVX6SscB+eVtNQMVCmRuYiTJ/nfNNftDtSnET6pbiU/0O6A51oC7eMXoUEm9ASPTmLLE6kO+VXfot8sKJpnyFXmUQGm/ygtcU8A3DZBFWVrMsCGVkE1jKEP9UpOv/6F1+ZHuC/FU6Gb1v9QnJ5kDlTAbJuYp/Cfa8Pj/JPIraTD9XOE4hYpacVPMSBBDLmcsdNItrvdAHVW8I2Q
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2026 09:10:31.3288
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d941d4b8-c1c1-4908-ccd5-08de86608974
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM3PEPF0000A78E.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR08MB7538



> On 20 Mar 2026, at 09:54, Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com=
> wrote:
>=20
>=20
>=20
> On 3/20/26 09:44, Bertrand Marquis wrote:
>> Hi Dmytro,
>>=20
>>=20
>>> On 19 Mar 2026, at 21:16, Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.c=
om> wrote:
>>>=20
>>> The local variable 'ffa_vm_count' shadows the global variable, declared
>>> in 'xen/arch/arm/tee/ffa_private.h', therefore it is renamed
>>> 'ffa_vm2vm_count'.
>>=20
>> I have a patch in my queue to solve this (I am just removing the ffa_ pr=
efix from the local
>> variables but does the same as yours) and a patch to solve the other mis=
ra issue in optee
>> but happy to to use yours if you want instead.
>>=20
>> I was waiting for the pending ffa serie to push them (should be merge so=
on)
>>=20
>> This patch will not rebase cleanly on top of that serie which is changin=
g ffa_partinfo code.
>>=20
>> Do you want to wait and rebase or abandon and use the one in my serie in=
stead ?
>>=20
>> I am ok with either solution :-)
>>=20
>> Cheers
>> Bertrand
>=20
> Hi Bertrand,
>=20
> lets use your patch series.

I just sent it with a warning in the cover letter for its base.

Cheers
Bertrand




From xen-devel-bounces@lists.xenproject.org Fri Mar 20 09:15:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 09:15:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257907.1552151 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3VxA-0000mN-Sf; Fri, 20 Mar 2026 09:15:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257907.1552151; Fri, 20 Mar 2026 09:15:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3VxA-0000mG-P1; Fri, 20 Mar 2026 09:15:36 +0000
Received: by outflank-mailman (input) for mailman id 1257907;
 Fri, 20 Mar 2026 09:15: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=XX1m=BU=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1w3Vx9-0000mA-64
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 09:15:35 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 56b9f18e-243d-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Mar 2026 10:15:30 +0100 (CET)
Received: from SJ0PR13CA0041.namprd13.prod.outlook.com (2603:10b6:a03:2c2::16)
 by SA1PR12MB8141.namprd12.prod.outlook.com (2603:10b6:806:339::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.9; Fri, 20 Mar
 2026 09:15:24 +0000
Received: from SJ5PEPF000001E8.namprd05.prod.outlook.com
 (2603:10b6:a03:2c2:cafe::22) by SJ0PR13CA0041.outlook.office365.com
 (2603:10b6:a03:2c2::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.19 via Frontend Transport; Fri,
 20 Mar 2026 09:15:24 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ5PEPF000001E8.mail.protection.outlook.com (10.167.242.196) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9723.19 via Frontend Transport; Fri, 20 Mar 2026 09:15: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; Fri, 20 Mar
 2026 04:15:23 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 20 Mar
 2026 04:15:23 -0500
Received: from [10.71.194.215] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 20 Mar 2026 04:15:22 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 56b9f18e-243d-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FBxpi8cKm5XRU6olhgN4Gm40Btkp5Mc3MbjuDIlXCastJSV6/XN154Yfe5pxIUicnL80FxVcUaQbnGxfEKO0zpzATb/Lmkx9zedzp/zyt92M/CCBIEhke7bmnC1874Qczcivzz6grcWCDsl1UOcm4HttLibK9CN81rPa3vrKBUWg97lBKBldjNQL8YR7xVHUt1KR8nAbLfjYPAxKnTRU1sgFMPCV3Kp6DPtqbjhENAmAOR9nrHK6X38sTqSMdD0DlEjGVqgYIe8U2iWdF+yR/HXxJMToOqxKgTDyTE7VcJ3/wvr7zHRSUjIR/6FzbWb6LwHfUo/TXx6SCXldDYog/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=g7nWEB78XXjlSaW/R+PBuX8PG6e7TaYq8Up+wL+N6ZE=;
 b=qgZNRxH8JNFAD6BkFUG2LxPkqvyh5bsJ1I8E4fE9m+3fN6EUbCgrksptpiUoLCdn67YVlhGpVQRRu5fu5NfmwYMr+CuGUI5N4EnQMT1WKJt4f5mfP6N4jto4d8vbKARwlRFxDI0l/Lh1IvQbXyga3S02nn6rM96fvVcT0mu034bX+BCEbpkquALaXJ8CWuI/eZLpr+YIF4jCn2oJtBrlEdqec1AuGsJGk3OMBgGIU/j3kdxUzZCvCCx+SlgfeKUO8zpJNHvIzNswJ8FuY0oDhnvmqmZYZGAHc/UwnWtuEb1okIomZXaujx40tdmhgRUsvofgTDrqLOefTzglQ23z6Q==
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=g7nWEB78XXjlSaW/R+PBuX8PG6e7TaYq8Up+wL+N6ZE=;
 b=EO2JehxveAtdCQq8Sm5sqZqQZTwDyvzsOuRaJ7PvALQeBKZ0YRAFUanpW8sTDSzhbOUttCNM0JSC/sOgiT8CZqqRWCH7KPX4xae5CHMzLm/OVYFxOqc2N+thErviJRV+pvdq17DzDNjQOt72L0sS74HQ/OhJBamPk17MEDiU3e4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <b09e3101-e0f5-417c-9d1b-e61c522ff7d6@amd.com>
Date: Fri, 20 Mar 2026 10:15:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen/arm: ffa: Fix local ffa_vm_count shadowing
To: Bertrand Marquis <bertrand.marquis@arm.com>,
	<xen-devel@lists.xenproject.org>
CC: Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Jens Wiklander
	<jens.wiklander@linaro.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>
References: <cover.1773911799.git.bertrand.marquis@arm.com>
 <030d24e1776af7c2391c588bc696592a64a92c51.1773911799.git.bertrand.marquis@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <030d24e1776af7c2391c588bc696592a64a92c51.1773911799.git.bertrand.marquis@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001E8:EE_|SA1PR12MB8141:EE_
X-MS-Office365-Filtering-Correlation-Id: 03e94b2c-0a63-4f81-12fe-08de866137e7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|1800799024|82310400026|7053199007|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	fxGvIYgfRkrtR44daQhKSwmSM/vcj/yclV25A0sJDv07yZBE4l7eKl4N570yu3Tfwkb760cBwLne6KEQ6S0pluUndViMIyaqaX43gX+2bUHPwtmuLY/saurFsj5/3VePmuwkuubU14UDytnvlb1VTzBlU2y/OhbIJszV+okRcIgMAH3t9LN/qXBgdZEgjKJ8F8tUnDzI75JgEAmM+0Rn/+2cLd7ZViCjFptYw0Kst2IfTlZ/IMwLxJk5emZY8mHNMkoC1LhO7CeC4pQEwkpd8Mz4bJe+CrQERpvHifwi45/W1yuNkw0Pc/vnrz/aXCRKNuSx52315EKVlvrAGAseflCVDrGfNTgGn6+JuU+pKqBYjxO5ZGh6nGN027wU+f9Qf28PpnMkTPl2HnKzicKu+9p9fjq7DhNuilr9O4SHCGMk8Nl53kGKtkJ5bWKvBlIchQH2tjtXY9J3tRHuKo8j6Wayqj2p02SdrtfQQXEn6W2kwrYdD2fFW5kTahi2hCY0E9ReiA3mCgmRpwDTxRU4OczAk2uLXaQmvxJfwtno/LcKWg1xpqVAiu8H6LuRYSaEnta9nXBE02e3e5BjK9OW7FXZDJGJia3lBBC67VJM8u+AIy7E9CVmhqfpXF0DEhRAhivbGeSmK/JZ5oP6bCkufce2t+5vVJj08x4HS8aepOQ9eqw57yV4sam07VID6uo1q1VWGjHYH2hn/6gOx/UaHv1lY0TShmxAm5wdcwTDj5HO3zCu1KTS8mzKBdB8AfqY9jS2wHvSrGAZGRvO10QKFw==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(1800799024)(82310400026)(7053199007)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	3CUhdALr+VPUAHWoSdDyBjQRH0pii2dVTA/88GN16LUC/YbPemeDL2nr3GTr+oLjgIJRJmVDNqF9cxYr4nvJMju0ggeM8UQLJKLKJKYTzh26w3rblEn/7qhCoTnJ2vxUtYIrsd6Ijy5F+Uc4lHdODFNNboCYZNf6hHQ44IntRfTWzBOrhUJ71FovwYcJKpecwfHWwzG0J5C8nh5KhmNf+Qj8dHsoMH9O3VhrUpzho7dtk1uhegTeMZGAQxLAvL/yE/+ebXzMsfaFrMlIZAKAUnuXc8fylean+uYxnH5hYUseOVOc2VZKRel69Tt5d/sDXUKXmGeKnVWVsosRHaMmkGV3xW4n3+Z9RU3bh434WaG+FlPLy3m5i7o7baq1zgoEdvLoetwp/C0SspC6QEaxWc54Vo853JcO7iaC32PPjmHrT7bgoJeJM8jHgQz/4UWM
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2026 09:15:24.0223
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 03e94b2c-0a63-4f81-12fe-08de866137e7
X-MS-Exchange-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:
	SJ5PEPF000001E8.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8141



On 20/03/2026 10:07, Bertrand Marquis wrote:
> ffa_handle_partition_info_get() declares a local variable named
> ffa_vm_count, which hides the global atomic ffa_vm_count declared in
> ffa_private.h.
> 
> This triggered the ECLAIR Rule 5.3 finding "non-compliant local variable
> `ffa_vm_count'".
> 
> Rename the local counters to vm_count and sp_count and update their
> uses.
> 
> No functional changes.
> 
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 09:17:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 09:17:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257915.1552160 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Vyh-0001IJ-5X; Fri, 20 Mar 2026 09:17:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257915.1552160; Fri, 20 Mar 2026 09:17: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 1w3Vyh-0001IC-2T; Fri, 20 Mar 2026 09:17:11 +0000
Received: by outflank-mailman (input) for mailman id 1257915;
 Fri, 20 Mar 2026 09:17: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=XX1m=BU=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1w3Vyf-0001I4-78
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 09:17:09 +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 900eb2a8-243d-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Mar 2026 10:17:06 +0100 (CET)
Received: from SJ0PR13CA0032.namprd13.prod.outlook.com (2603:10b6:a03:2c2::7)
 by SA1PR12MB6822.namprd12.prod.outlook.com (2603:10b6:806:25d::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.9; Fri, 20 Mar
 2026 09:16:59 +0000
Received: from SJ5PEPF000001EA.namprd05.prod.outlook.com
 (2603:10b6:a03:2c2:cafe::20) by SJ0PR13CA0032.outlook.office365.com
 (2603:10b6:a03:2c2::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.19 via Frontend Transport; Fri,
 20 Mar 2026 09:16:58 +0000
Received: from satlexmb08.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.9723.19 via Frontend Transport; Fri, 20 Mar 2026 09:16:59 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 20 Mar
 2026 04:16:59 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 20 Mar
 2026 02:16:59 -0700
Received: from [10.71.194.215] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 20 Mar 2026 04:16:58 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 900eb2a8-243d-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TBNdxNc5WlLPBSbeOUYcv9U47Uam9TNRPxAHYwim0V+iykAV5Drz0vbrg88LNE1Jt9BfS+rTwiB7YapYbE91x01L870hNHfE9+Kw3ChwDTzKLFQ/l6VAzX/pg083vS/kRjTFG9lh2XJqnsnQm4Oq7hQOWOWh2FajA3o4k+FRTolqFd/auMPYI8M4h4931oBFOeA/ZFyEFzdqtqMuN/kEPWJit+zRzvn+E3XGJx0yXRDwxTz05BJ5vFK3xhNIm3Aa06OjMxsM39IAcagirglbXhoYQCQ3b5GFBtH6wrWgRk8dhtLEiQSy8I1nBKy6rMyqnsYMJFlF9dDQrLI6YKdnRA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7eeZGSvzIySCPkF0XqPe02MVVawYn69quaGtofXl5Bc=;
 b=Ervt8eDBXlAe5bXtTHZOMxy2lGImupKgxQppalGsdHvbRQ5+2K6M5JzK1Q4lNwTprZ1t2okpZN0ZWJNfdt0/HkHIE7zV9bq2sLZAvk5h/laA0LtqRIaEWiZJdgIgtcs8GwCeSbNewjC9zA5rqwQ5v5E74DTnMtCReNY4vOEPlnM8xVurXolAaNIcbJG9aPz5/4wGy0ZvpA1rsd9GtX6yteW+kf8kQ5+IkWc9WWQXccObKvgbkUhDV5kP3ThSa37od8g7Hf65DG1F4r1DBun4LHW8WCZ9/5VxcriOMYonnLeX1+fMXgWrbKFNq7xuvg8r4Mm7H5otKQk3paflk1KXyQ==
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=7eeZGSvzIySCPkF0XqPe02MVVawYn69quaGtofXl5Bc=;
 b=C326olAY7Gqds2EB/gEdAo/mLGl0cRVH2Xy0fCP9gHDyEhq5S/g+8bAgiKcaXab2HlLWXDWDR5lAJ+MWnASKjKc8Ke3+gUurBu5S8TuHXXZCQDztO7OqWaBxTlKM0XOz1xRk1OwgfzPMdOtg1GzCsZIzqKpORSRhQgGmbjIRYuk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <1ff75249-e147-4086-a79e-9c9a3cf74030@amd.com>
Date: Fri, 20 Mar 2026 10:16:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xen/arm: optee: Add MISRA-compliant switch default
 labels
To: Bertrand Marquis <bertrand.marquis@arm.com>,
	<xen-devel@lists.xenproject.org>
CC: Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Jens Wiklander
	<jens.wiklander@linaro.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>
References: <cover.1773911799.git.bertrand.marquis@arm.com>
 <0050ab559814a619b4ae23dd070e7aa4629865e2.1773911799.git.bertrand.marquis@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <0050ab559814a619b4ae23dd070e7aa4629865e2.1773911799.git.bertrand.marquis@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001EA:EE_|SA1PR12MB6822:EE_
X-MS-Office365-Filtering-Correlation-Id: b9b81ca4-112f-4c07-83d5-08de866170d5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700016|376014|1800799024|22082099003|7053199007|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	YOvtNdjTa1SiwYYacaroLgLkAZyV7EdzIq1S2Tng7Od1maqHUzu7X7/qW4iTGcNnlMX0qz4QzB4hL5y1iU2OYrnfgGLfbdEahEFnsYl/QBoJkUJB2yNaHCgIMFXa43L4jjAUpRzm8392rAxpbvs6mD8UxM2mhFvs1fDNaFn9L9ZUdxIfY00STPV4iNoOSTJEuq5qISd6If22oO6H+znCKHf5a7sh5yTqXKZCxIOUXpdaQG7prCnj4XAIXby4InSOYRsVbv3W/AA8wKSvfbo8Ylz6Hys7UNlK/6nUlG0/2+ZxoVc/cv3NnffVfbjkitEIPcoiNyI5fS5h3SFhK2k4W3pOg5tktJESUPCi7Vtevah6OgkI0kDgmXvulIVwHwgRRH3PD7wm1Gm6k7n1pYaX7VwUIgM8loz8IDdMvuhq/Iaqobq5InqBJQoogDSBhixWMQlN+QKZMUJ9eYloHK4qmueUHFiAaUXQE1liaQKZJj31aHZs25cTWD1uOoJ/A7tX0d4IsppL/CvEuYMyE2/vza3adSYG9g7W9nJqK3g2GkqylEAs7wK2tG8/2j7o6OlL3eUX6ppcVOhwTBJiOCgUdeO8uzzOKlRBYcmKYNXH3x0CpYbyXVwoHmrtbryhnOzs/EzJs2e29Y7/cXlh1N0UKBDRX0WPSRo9JrjjSYkPZ+E8utN+WG4ruvCDi5GhTa8g/3SRzKTSkBHtJUEu5JJOS2CL0HE2ruCni9/vkuH4yO4yYlxDZhc3e9Qf91x4OvTZyb9tWfl1hL2fyd8ZxCok0Q==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(376014)(1800799024)(22082099003)(7053199007)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	3Q+INQLC9PWoO+RYkPLJlCAM9sHMdk8hYxzMEnH9Eoyhfnh58ZYkN/JeXkkvt4CMY4OCfqEWmmgSVdvPdR1IpQvmvoqxpMnuT2ATf8AYICdkMAfuVcPjG7Jma3tlFxf9I5U8pmOFQ07m0Tu2dOjsgbgg52sWNv4F+dqLxwVYd+6M9sMC//+gvWdlfl0hnZyQGzT+ZMpKsGaK9gmlhScQpCVCzDrTkVQn9Be10e+h+Guk6dHj8rQHYIzTfgbzaE9bxJj+JRfhZ88eyqpwQDkVzjXutK+qvzaf7man+hMa2pHQ3T84oWkavg2qZbqGAuXkoaXImJR77tmQvAuXcI0gYzIigl8aS6Qzzr8beOMudPOcHmddVYg4SXIXecmQW/mup+r8FoO9n2LIqPo3HNg4XeF0ZAR4XhB9HZxxhEH4CjCNgUzt9c1wriK5IsoV3Clb
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2026 09:16:59.5092
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b9b81ca4-112f-4c07-83d5-08de866170d5
X-MS-Exchange-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:
	SJ5PEPF000001EA.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6822



On 20/03/2026 10:07, Bertrand Marquis wrote:
> optee.c has several switch statements over integer-valued OP-TEE fields
> without a default label, and two default clauses that only contain
> break. This triggers MISRA C Rule 16.4 findings.
> 
> Add explicit default labels to all reported switches and document the
> intentional no-op defaults with rationale comments. The new default
> paths preserve the existing behavior:
> - unsupported parameter attribute types are ignored;
> - non-handled RPC commands require no post-processing in Xen;
> - unknown RPC function IDs are resumed unchanged.
> 
> No functional changes.
> 
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 09:44:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 09:44:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257933.1552168 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3WPS-0005sh-Ac; Fri, 20 Mar 2026 09:44:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257933.1552168; Fri, 20 Mar 2026 09:44:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3WPS-0005sa-7X; Fri, 20 Mar 2026 09:44:50 +0000
Received: by outflank-mailman (input) for mailman id 1257933;
 Fri, 20 Mar 2026 09:44: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=6CX8=BU=citrix.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1w3WPR-0005sU-Bn
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 09:44:49 +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 6eaa506c-2441-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 10:44:48 +0100 (CET)
Received: from DS0PR03MB8272.namprd03.prod.outlook.com (2603:10b6:8:28f::23)
 by SJ0PR03MB5645.namprd03.prod.outlook.com (2603:10b6:a03:282::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.20; Fri, 20 Mar
 2026 09:44:44 +0000
Received: from DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654]) by DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654%5]) with mapi id 15.20.9723.022; Fri, 20 Mar 2026
 09:44:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6eaa506c-2441-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ec3FdAxxWzJYb0ONVHcITGv+gi105yTRpEvI/kwZgb3Zf37CGimtxR5NEA5CPVZICzuEuAo5FfAkRkke21N+RXLSbc+t+1rlpeah8PDa5uiYGkvPZbbA10t7OpuNtxGB5GPUCfqMCa1OlBc8qnG9dEOnTrQzIIIsjZBu5T7elrgTBKlEMkQQXqzLsPdoygeSMVytM6FmJtaib65z9JDA4c8ahKJNLZsNV3DsFE5psEU41xXgpSdawhdlrWcILB1RPBPOBz80SCO1799d1FGywrnCe4yzTgqMLq0ItaH9hHkhfcbOydkbtydEHm6yKbnkCDbATROC6Ya0qMvt1TLJHw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=H2jyNF+FUpbQyEUqCFzvhv/x/pVfjXtbuFX7agRaWcs=;
 b=PLatOu3E4pqiXNePJqrkZJR4qEpyV0QqQTBe4Luur88x2xZnSKFn7L2h7Q+0ypre5/QoBiWxn8iIU1J7UwSFWFQbM//IbMQEhrdHTBDt698fzNyPUHEMXt1hmVUh3TpPhjZVBve3yDJQFIHucol69rl9BlRWmQhxvyRjWb2aLdg2SOtqNF2s37lLsaqgRD6YiPZEawha5Gy367BtDvlfEcyxauO6bpaG0l/aMSyXdS45Xyt09hG1vFwcKVujT0+MSL9Q0rwYgojbFW8/kDOgDEQFlZukohMPuLqWSidId6InZc90SUZyOfHkNcU2Zg8G66bVI8moDAVoLJhZY3Ztag==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=H2jyNF+FUpbQyEUqCFzvhv/x/pVfjXtbuFX7agRaWcs=;
 b=ZPIWcrAn8d1PvglPpAEtRq5c5I84CpnALP0NlZgc9qy3AZSbcQy0MApXJ0I3gWIRIDIqlkrHdEIM7QYz8uWadQyzos7yscMzysPpEouRvy1hRpQZb6XDtn5jPiH26oPenhpHqrildW/o8SSPrT6FLGigudFX6+ytsfKiWoOIV0A=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <72944656-cc83-48c8-8cd0-9fc5ccc6f96b@citrix.com>
Date: Fri, 20 Mar 2026 09:44:39 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/hap: Defer NPT P2M TLB flushes
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <20260319114041.1455593-1-ross.lagerwall@citrix.com>
 <abwCyyhBusfh5Qvu@macbook.local>
Content-Language: en-US
From: Ross Lagerwall <ross.lagerwall@citrix.com>
In-Reply-To: <abwCyyhBusfh5Qvu@macbook.local>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: AS4P190CA0041.EURP190.PROD.OUTLOOK.COM
 (2603:10a6:20b:5d1::15) To DS0PR03MB8272.namprd03.prod.outlook.com
 (2603:10b6:8:28f::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS0PR03MB8272:EE_|SJ0PR03MB5645:EE_
X-MS-Office365-Filtering-Correlation-Id: 87c3be10-f4af-4de3-5686-08de86655068
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	tc1PmUgFKXzp2y3Fg8CAbiIb4O6U+31msTGbjlBK73k58EKqQWMTDts81C/M1SRcBx9WlGUC3eRMU78MKpzqrdUikYcRrS/8NVS3aY5MMBUPDPPf12ubACOf+pnnUtUDmnoQb//aSkxzkgaCKFZRDI6PCovihyeFXOXJJ6+ZukuzWjF/nJfxLR56Zh/orL+sUSsqk6CkqT6lzOKOLTT4ht42ECF6kTWEvrgnsiCEFiQJe4BTLxWg60HNxlGzsG5M0EKJyjvVf0RuRoBrjj9kU8jabEIg9pOvqQz3PxbVL1kQAzaF8Xh53pCURBi+oKdwQF0v/3zlZT/0yPaxwR3w4uEYfu8lRkL9fWjWMd4z4LcFaBfFUtDyYkTISQmwTZHgomoCdFcRjL47f1jMvct7FQcF5PNRgWlXnsefzHng86RNoj3VVvu8v1dH0PoEGYMEKwXPU48SEkvF1dHhQPVyomqg65ATQFki7n+nCBBsi5aO1CQpoIsqYB7RmeY+K0zuNEQuL13z16Pc2mpGol4yO+3orNzu7gcZn3Uhp7CJ0gwBQFKVV4TByEGiirp4NFHVK9OM8RtQ3rw7joGiLA+OZjopIcEbty9ILAGpQ7jdpgBI3h1L7O7zpKbzLJ4Vart3dDAI4tLepCSjm8poOxaOl1BOl9d6ODjx2iFDZ3SiDKfVW8j+eEufXeNRsac2DxUFJR4iecQBtTF3HlE8rrUliG57dRXS4w7t9tO8f10eAbA=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR03MB8272.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QVBVOVJ5NCtLQzZsNUNwT3I0QW9MeDJRTFVIa0RzbEtEL0t3T2x2V3BZR2d6?=
 =?utf-8?B?bGhMU0tqZmdIK1VqNmJ0cFFXY3JJTER5K1ZrZXF2Vlo5ZHdyV1JQQkUyOXJq?=
 =?utf-8?B?QU9FZ0lpREJYVy9UOWZIeUp2SUxuSGNua3IzeXdZc3ArVzJkN0JNc3FSaXl3?=
 =?utf-8?B?ZEVESERDMWtFclZ6OHVqbm83UmlVU0JpQlFLM0dCWFRjazVLLzVabjl1c3Z2?=
 =?utf-8?B?S1d3WC9QZ2dWQnNha3dYd29FRjFtV2JKUmIySXFUM21RU1lXNjFqYWxIczRJ?=
 =?utf-8?B?bWxsMUJ6OWhZUllMdEkyYlFhVnRJem5zY3hIek1mWXpVdkdPRzRXcVhBVkhk?=
 =?utf-8?B?MnIwNytVNzdJWVFBQ3NPa3FIVFV4dzBPZElvZDU4T2hkRlRCbS9DNlE0dE5H?=
 =?utf-8?B?SlZYbTBjQXFoVlN4dmt6ZnBBYWdyTm8rWFFMUk1wdTRkVytNTE5KUHllbjRY?=
 =?utf-8?B?RVJONmdzdUM2TEZJSGthK1hCRmlNS1J2K2o2N1Z0WnpWeWRLY0paeDk0K1pZ?=
 =?utf-8?B?UFRKc3UrOVBiL3NTSjA3T2FON2V4OEpDY3lhZmhDeWJEY3NYTWY5ZDVLRTZH?=
 =?utf-8?B?VmFqYjhhSERMSVRtbWV4NXBuTEk1Wkw2REk5cDhNbHFyWHRmM21FUG9TTzBq?=
 =?utf-8?B?TE1ZcGgyMjlqUHNRZUFyMUlMRnN3RHZzNmhIU3dmV01ibmFoTTZPTkQyOXYx?=
 =?utf-8?B?Y1lzZm1TS3liY0JPUEFURlUwVU1SQmY1R2xPeVVWWnFCczIwVWhOREpzOTdI?=
 =?utf-8?B?dE1nYTFKWkZXY0N2NlpEcThUVlpLZE5kaDhiVm9GWTJUZHFCeGUvQmVNNkE5?=
 =?utf-8?B?NlQ1enZjWmpYV0hQaURsUTBKTW42UzlTSGlnaUxMVWhPRE5OZWVtZWlPNlZy?=
 =?utf-8?B?OHk3WVJhSGYwcXR1N3hJd01ZRGd1Sk1NZmkzNHF5ZDZvK1R4OTNrYVgyQ24r?=
 =?utf-8?B?R3NrTUtnY3BGVk1VRVZ2WU8rb0JGN0dGTjUyWnZMYmdCK0hZbzBBTUNYbnNJ?=
 =?utf-8?B?ajhrbGh6ejRZZ0tTRzMxN0pQZWZjYlJseXhSOW5VcFZkRGRrUXNjbm02akth?=
 =?utf-8?B?cUNKaDhxQ0d5ZThlc2hHYVdGemVjdFFXUDZPTXk4bEVBdkpSZWYyWnFqZ1Uv?=
 =?utf-8?B?dU12SGVJeDNjUHNscmtsYUNhdmJzWVdWR2RDZlVJOWhjaGxDbE9PdzN4cC92?=
 =?utf-8?B?bCtPeTRmUi80VHI5elJFaHV5ZW5SUkRub3Mvdnpyanpubm9VKzZWOUM4UllY?=
 =?utf-8?B?enBHbDB6N0NPSnYvNlI1anRqU2REeDMzcmg5VTlHczNrb0xvT3d2dFc5dDBC?=
 =?utf-8?B?ZEJDR2RRNy91TkszS1BZSnkrZ3h6MGdnak85dTRyVWxZZUV1Q0pWUjhLSE16?=
 =?utf-8?B?emJNdmprdEhaQnhqM0xpTWF2c1JzOUxZOHNuRXRDZ0c0Y0FNeG5RSVdHN2pO?=
 =?utf-8?B?T0hUem5VdVlkM2hOZklMWGtOdWNEMWUrNDFTeHFFVTFuSWxZNVRXc3I4VGdk?=
 =?utf-8?B?bDFlYTBqQ2dBQnBqbENvTlZwOThyV2RWRW9UZWt3UU91QTArUmErS0ZQbmla?=
 =?utf-8?B?QlJsaUNEWjlPL0xXMWIzL2U5cFhkRnRWamVRZFZuLzBXblhuekVPVHhzWXJ4?=
 =?utf-8?B?TFU0MXJBWkwzQWdpeERCMjFsQVI2NkZOZ3psR05vYWJUdzNMR256dEY0RnV5?=
 =?utf-8?B?aGdxallqaHV0Y0dyWjBjU09BVlIxdkxYUnJ2N01sQWFMK1RlY1hnT2hqNE1l?=
 =?utf-8?B?ekpHR2xKb2Z6TnNYdTYxN1UwSXFvMkFrZkNTQkhOV0t0T3NlSzQ3Umh5cVBF?=
 =?utf-8?B?RVhhVGg2Q0RScmFNWGIvbVBnQk1wT204WUlGY1dGQkhkN3VWSjhRUjVvbC9S?=
 =?utf-8?B?akVoTklIZHNEcjExZmV2SUh6TEMzbEpPSUZjUG9URG10SGk3TFdVTXgwRUdG?=
 =?utf-8?B?S21XazFQeW5pdU82TWtMOElqaEtoMW42WHBQV2VIeWw1NW9Ed2g1eFY3OXhl?=
 =?utf-8?B?TmlrelRrRlpBSkZtVG4wek5PR2loVm9MWHZQRGtVdXM2QlllbmJHclp1MGdm?=
 =?utf-8?B?WDFsMGUwcTNYeERRY1JrTkU0NlVRVnpsV0FUa0Jta2JXQkQrZTBvak5hUFAw?=
 =?utf-8?B?RXp3OCtHV1pGdjJzYzBpeFFUS2pjZ1QxWEZXNnRVMDQ4TkMwTDVvbUg5VEZL?=
 =?utf-8?B?SEZab1JVT1JZNndEQ2ZDbE55VldQWDRVL2xqaUdtRlNEalJGOGQ3bU9BSXN0?=
 =?utf-8?B?UWRucStvQWVMQ3BQNE11M0JySnhDcTNWc0FzVk1McjNWSTQ3VW1vSWtVMDNo?=
 =?utf-8?B?MVFJZ0plcmlvVG5aNnBZUk1BT24wS0x0a2diZWh5WERJTjVZcm8yS2dHdDVY?=
 =?utf-8?Q?jS7mmdHaV7HdPezU=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 87c3be10-f4af-4de3-5686-08de86655068
X-MS-Exchange-CrossTenant-AuthSource: DS0PR03MB8272.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2026 09:44:43.4197
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: BbOXqhB+qgXb3pNe1AwG9bkEx4ADo0pO0KiOdon/9xCzSgJfvOBX1o9y9YItRt8FaWdpQD4bPjjunI/x2IkauqG49d6GGvwAXtiVgk+ulTE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5645

On 3/19/26 2:06 PM, Roger Pau Monné wrote:
> On Thu, Mar 19, 2026 at 11:40:41AM +0000, Ross Lagerwall wrote:
>> Like the EPT code, defer TLB flushes for NPT to reduce the number of
>> flushes and avoid holding the P2M lock while flushing. This can
>> substantially improve performance in some scenarios.
>>
>> The cases where the TLB needs to be flushed without deferring are
>> already handled by the call to p2m_tlb_flush_sync() in p2m_free_ptp().
>>
>> Suggested-by: Roger Pau Monne <roger.pau@citrix.com>
>> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
>> ---
>> In v2:
>> * Tweak commit message.
>> * Call guest_flush_tlb_mask() if the assertion fails.
>>
>>   xen/arch/x86/mm/hap/hap.c | 22 ++++++++++++++++++++--
>>   1 file changed, 20 insertions(+), 2 deletions(-)
>>
>> diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
>> index a337752bf488..67137611d9db 100644
>> --- a/xen/arch/x86/mm/hap/hap.c
>> +++ b/xen/arch/x86/mm/hap/hap.c
>> @@ -814,15 +814,33 @@ static void cf_check hap_update_paging_modes(struct vcpu *v)
>>   static void cf_check
>>   hap_write_p2m_entry_post(struct p2m_domain *p2m, unsigned int oflags)
>>   {
>> -    struct domain *d = p2m->domain;
>> +    if ( !(oflags & _PAGE_PRESENT) )
>> +        return;
>> +
>> +    if ( unlikely(!p2m->defer_flush) )
>> +    {
>> +        struct domain *d = p2m->domain;
> 
> As you are moving this around, and seeing that guest_flush_tlb_mask()
> takes a const domain parameter, I think you could make this local
> variable const.  Possibly the same below with the other d local
> variable.
> 

Yes, that makes sense. Can the adjustment be done on commit if there is
no other feedback?

Thanks,
Ross


From xen-devel-bounces@lists.xenproject.org Fri Mar 20 09:58:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 09:58:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257947.1552178 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Wce-0007xH-Eo; Fri, 20 Mar 2026 09:58:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257947.1552178; Fri, 20 Mar 2026 09:58:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Wce-0007xA-BU; Fri, 20 Mar 2026 09:58:28 +0000
Received: by outflank-mailman (input) for mailman id 1257947;
 Fri, 20 Mar 2026 09:58: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=X43w=BU=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w3Wcd-0007x2-CC
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 09:58:27 +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 5686eafc-2443-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 10:58:26 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-6653b589a78so2698236a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 20 Mar 2026 02:58:26 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-146-121.play-internet.pl.
 [109.243.146.121]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-668d2a4bc14sm1206727a12.29.2026.03.20.02.58.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 20 Mar 2026 02:58: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: 5686eafc-2443-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1774000705; x=1774605505; 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=EKUl9zWfsIZ6cetJ3tRWyxLoMGMzBF/VsV5E1QgCDb8=;
        b=WsVNER4ienLqdzYujarb/07tohcrBuPmc/xyTPv99GuY3k7qt1JS9wCvdsvh74fwFN
         eejCcZ2YwoNTm1sWqaHN5cjfOj9qqnhKuE1ApwZIawV2Ic/fWRjKyTEin1g0hCEnU5I8
         xyMdIO6s/a1aRJqOArYEYE8VuZ88Ox6GYXgkTw89MgMrkTFjuDdBKXfKgrIWKffIYBwc
         DXSzsJclSOMdi7mH77uFsGl3G1K5ea8HyFWu8DiQ1aYF/5OIkFCaX5k8dFezgPRUjFyS
         9MHiFGL7+EGmUXjMkKmyIRE7lm9qVLgCDlA/YpnnpiCLHZAT9RSW5wsoPQ6ANFt1qTbR
         /fZA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774000705; x=1774605505;
        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=EKUl9zWfsIZ6cetJ3tRWyxLoMGMzBF/VsV5E1QgCDb8=;
        b=KaKOqoBL2V/t4Wxh1pJdf0X5c6a1aoI9tklbRRp1QYk69gBX3FeX+uRHXmzW+hvKNX
         U+4pCtdu1XouOWUWIJuiLv1fqLSGwcnRFSlrayWlEWRu/BfM+PvktRyJCudID7aSNdhD
         h2kWHNcfQZvjbqq0lnkegVHqMZry8q6zrwMnDS9Lq75Lzksmz1IsQKQA7SpX+zNE2KC3
         vZBJxlbaCwz11w9yMrpDQ3yhvsnLXlBH3Q9p//Um/1uRuHkevpVaIvm/D1HZm5NYE9WM
         /6W4q91gVue1D7SyTTVmN6zJj2wC8n/ByR54a6+DeHlu+kOS3SvUQj1jUjvTWQNumGov
         Qabw==
X-Forwarded-Encrypted: i=1; AJvYcCVF2OpPOUnPGdq0vniBJip2sKowla0bsjxZWvNwx0ss/wwNv3jfCWlpjub2WiKqUdIlwbzfHvYXgcM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx1pm+ibg3cOR1WBBU/+mILMfxTAfAlSiQUcu/Brs+C2mUC/yRZ
	tkulW3iiPZuxntyPUSaM9fNJpygWbLGtxoyaO0jd8TPtwqOA2zZSEkV1
X-Gm-Gg: ATEYQzwJaLIqzejZo5jOvszei6TXCAQ//I6KBXkpkurab2cGOg5nxbBVrMW4mTr3gya
	LZ7ecScSXJchqWr7m9DZU/Q3Whz2BKcpujMIUoWm11UUvTp07BVRfrtbdZ1peTH8ExAqLJ+GnRS
	f5p/xLIEuateMTjncvXTgzfcfhgywgEDHgMWvdKNjXCOKv/+2GZ1kykDgmIDpMadm1/veTVd5VI
	nU01fnDLD3QePACxoewsQo3SLqHN+TIUi9MM2xsqOAHKc/TD2D4heeaL5SZkq+hyEp5izq3zCXD
	QQJUTDAGQdtzEcT149MIBxXBi1KmjvOdrQrFbg6DddGUy4Pp00U6lxlMFEuWFzMXIpRQ7de8aDg
	u66Y5KnDuqykBwLioLsjmhYkHfa1AvityzBXFNNj5qkrln6Iq6OliHmGsLVWWINGxqTtLd4FGbc
	ZpOvVXTMxuYoQUmNfKOVNcHxJJVOywvlx6GZhTFmnj30gG46O0yfb0WtEWsXKIOBZdVQqgk4goX
	njCww==
X-Received: by 2002:a05:6402:378d:b0:661:d0a4:ad45 with SMTP id 4fb4d7f45d1cf-668c90fda88mr1591649a12.10.1774000705005;
        Fri, 20 Mar 2026 02:58:25 -0700 (PDT)
Message-ID: <a8e3b6fe-d1cc-44d5-b286-b59b65e25320@gmail.com>
Date: Fri, 20 Mar 2026 10:58:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 6/6] xen/riscv: enable DOMAIN_BUILD_HELPERS
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <6ab04f3584e45795dc82c25f62a6c950913f5c7d.1770821989.git.oleksii.kurochko@gmail.com>
 <aac9b5ac-6660-4ec0-b88e-605903217588@suse.com>
 <b4ac883d-ce90-40b0-93fc-95c925c7ac61@gmail.com>
 <a35d5566-7da1-406d-abf7-13b423d013f8@suse.com>
 <ad59c5ea-ae8c-4e6e-8b49-dcd0eefc3197@gmail.com>
 <1efcb5eb-1b59-4def-a527-254a31efe2b7@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <1efcb5eb-1b59-4def-a527-254a31efe2b7@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 3/19/26 8:58 AM, Jan Beulich wrote:
> On 17.03.2026 13:49, Oleksii Kurochko wrote:
>> On 2/13/26 2:11 PM, Jan Beulich wrote:
>>>>>> +#define GUEST_RAM0_BASE   xen_mk_ullong(0x80000000) /* 2GB of low RAM @ 2GB */
>>>>>> +#define GUEST_RAM0_SIZE   xen_mk_ullong(0x80000000)
>>>>>> +
>>>>>> +#define GUEST_RAM_BANK_BASES   { GUEST_RAM0_BASE }
>>>>>> +#define GUEST_RAM_BANK_SIZES   { GUEST_RAM0_SIZE }
>> (cut)
>>
>>> If all you want are 2Gb guests, why would such guests be 64-bit? And with
>>> (iirc) RV32 permitting more than 4Gb (via PPN being 22 bits wide), perhaps
>>> even a 32-bit hypervisor would suffice?
>> Btw, shouldn't we look at VPN width?
>>
>> My understanding is that we should take GUEST_RAM0_BASE as sgfn address
>> and then map it to mfn's page (allocated by alloc_domheap_pages())? And then
>> repeat this process until we won't map GUEST_RAM0_SIZE.
>>
>> In this case for RV32 VPN (which is GFN in the current context) is 32-bit
>> wide as RV32 supports only Sv32, what is 2^32 - 1, what is almost 4gb.
> ??? (IOW - I fear I'm confused enough by the question that I don't know how
> to respond.)

You mentioned above that:
   "... And with (iirc) RV32 permitting more than 4Gb (via PPN being 22 bits wide) ..."

I wanted to clarify why you use PPN here in the context of GUEST_RAM0_BASE definition.
(and maybe I just misinterpreted incorrectly your original message)
GUEST_RAM0_BASE is the address at which the guest believes RAM starts in its physical
address space, i.e. it is a GPA, which is then translated to an MPA.

 From the MMU's perspective, the GPA looks like:
   VPN[1] | VPN[0] | page_offset   (in Sv32x4 mode)

In Sv32x4, the GPA is 34 bits wide (or 22 bits wide in terms of GFNs), and the MPA is
also 32 bits wide (or 22 bits wide in terms of PPN).

The distinction is not significant in Sv32x4, since PPN width equals VPN width, but
in other modes VPN < PPN (in terms of bit width).
So when we want to run a guest in Sv39x4 mode and want to give the guest the full
Sv39x4 address space, setting GUEST_RAM0_SIZE to the maximum possible value for
Sv39x4, shouldn't we look at the VPN width rather than the PPN width?
In other words, GUEST_RAM0_SIZE should be (2^41 - 1) rather than (2^56 - 1)
for Sv39x4.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 10:10:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 10:10:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257959.1552187 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3Wnk-0001eC-DX; Fri, 20 Mar 2026 10:09:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257959.1552187; Fri, 20 Mar 2026 10: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 1w3Wnk-0001e5-AX; Fri, 20 Mar 2026 10:09:56 +0000
Received: by outflank-mailman (input) for mailman id 1257959;
 Fri, 20 Mar 2026 10: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=Fzpp=BU=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1w3Wni-0001dg-WE
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 10:09:55 +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 effe851f-2444-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 11:09:53 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BY5PR03MB4920.namprd03.prod.outlook.com (2603:10b6:a03:1f0::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Fri, 20 Mar
 2026 10:09:35 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9723.022; Fri, 20 Mar 2026
 10: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: effe851f-2444-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tgR1HysrEL0A8bC6z0XgMzQ0lpVGcgTHrjRDUc2+WiwR8Gnn4vT3WfeFwtcP6R9D2FTaC+U2jB9zSXJjnu1y87Sgnm3PogE32Haz1RwYq4p5FJRBYQosUBAF+PnoNofXNHUhduRshWqjlgJoYY28xQwucRTs7OykRZroE1XaxWQDU+Zw0t40pwMfzWLqVgscbmxjyaqNTxaSdvZWLK2UsnjgOyKXpWU6dM7aNHRD/XLaR5IV5kRBd4qjGNKdYhZxZ8oyOmxAitRQwsJC29otSb8gyKG5lPdZaaO6IFmc7EGIfjsNGL9CQ6Xr3M2TztSeYvWCWIfd0xDbMT0RyoaPsw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CdHj0ollYoHajv2Y7fAO1ASxdmpiobJmo7d9gFQ5HTw=;
 b=fEwP+noxglfePLWmOpQiDAVEduoGPGPRT9kmf7sm1kRw2S68/ZE4Mf5ReHCyy+Md08ydz1FMQg9thhgg2hKCejsH0sNJcVIQyzsVStmxc3dKJiMBhTF5bxutbe0xKaQUVaHH5Yp0XNKKxjHVIfnQ7Fi/16sskAh+b4zyU4fu3zjoK65W3qgIu7zgtbkGG0xWuazcldyd/ADAOcBLRtZLkncy4enr7P+UilcXV0ixAnnIfew2sCAwoO/02SHhpsy7fLvr3LgL3jPgsnoRwke/ZvunsN2OLRfRbYRkpHK1sDfGCDhsSr0SvTVUFPJEuA8goPQ+sFkA8npN+JAOpIVlHQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CdHj0ollYoHajv2Y7fAO1ASxdmpiobJmo7d9gFQ5HTw=;
 b=sM8xyTgOmOIuZqH0ni42t+/c81Dfxa6wnEgSUCq+802xZp7Jxx80r17i9b4SPMHTT9rHbWyPG8BScrZU8GAooWFa/atStf3qOZEJ5EDctq+sbQjkKN+irc+GWosDWyzynYqyXlQJzrGiNt2A5+RFLLuqfHhgj5OhEMGuZRyGc+k=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 20 Mar 2026 11:09:46 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Ross Lagerwall <ross.lagerwall@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH v2] x86/hap: Defer NPT P2M TLB flushes
Message-ID: <ab0c6mCL2JqALJF0@macbook.local>
References: <20260319114041.1455593-1-ross.lagerwall@citrix.com>
 <abwCyyhBusfh5Qvu@macbook.local>
 <72944656-cc83-48c8-8cd0-9fc5ccc6f96b@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <72944656-cc83-48c8-8cd0-9fc5ccc6f96b@citrix.com>
X-ClientProxiedBy: MR2P264CA0152.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501: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_|BY5PR03MB4920:EE_
X-MS-Office365-Filtering-Correlation-Id: b0d784ef-9de6-4a37-7c62-08de8668cfd4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	nguFAHDcbJH7nfbAhUk0Nw31dUCqL7bgr+baa9NG+ezmBDhENRmedMpIDtQY3dMoP1woreFFoKRVRwoRoC7x6uurqGf383PYrxyJO15+nbpg9jWANzP2LfX+y5vtZEnvEgjayO4tcKyJGJDMi6xYWlzyjzEYm/tceARnNudW6t1e4pKgqvdYEC6Qn6AYgainWLGdnnQM6lPAdyWU0KmXMCLIM9OFwPoyjRgIWltarxxKpKG76IuT1vXM6LwsGSOCTvkgQEn6s7pRxmwpOLWmnVfJP58aNEetht0RyMWVDnLQ7ifHvoNUfn8vHeB6Gi2c9R0+XAoKq1BenSR+y+CMxtHfrwM33/GmCeqN51HT2WoBGnrIvcOytsLQWK0yONB0F8IyVZxj2Gjp11NtB3ueFI7r9JsCHUpuB10Z9+1aWK4mvEZ8y/73e9095xvzgWx1k1dUHUk1BinZHPtP8r22RisSRfHczYYAe2phKkrbemmGoB6WLd+8KlXB5Lyrs5OD3g+yipii8o6pmZB9B3tT9Ap23ZdosTDlXfGzrzW9PoI1erVLbkz9qCcXPUpJNKozthvAgbiGOiMSA70UkSebdVXcCnLZF3kvwuXEV4AyTvPZwCmm0P7jTKxQ9umVgQrDfba40f7lBKDWRNZVtoMzWeLWbmY177HyH1zXAh82C2NRoAS/Gj7AM8/IbYAVRzu2Tn8dT+PP7Bwdi1kFGb7JkKVFshOqf1x3mTPaTFJXlrI=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Smc3Slkxa3RUeW9NVGF6aGVMdnBKRnhnV3J3S09PcHkyZ3IwQTh1MkxXNWt6?=
 =?utf-8?B?Z0I1bE9hTWhiVDFacTF3SUxkVS92TXVhKzRHcytWNENTU1lxUW9JdUJVcEth?=
 =?utf-8?B?d3lYVDNZZWNRL05yV0ZTaWM3MEtKWnFJWVZncVREZi8wejlpNnFMbEIyNHVH?=
 =?utf-8?B?Ti9EeStxMmo5a0RCcVpvckdjS1ZNT3RhVnBoU0RFb3VidmE1RXg4eXZ4SzZo?=
 =?utf-8?B?cWVlRjVvOWprNkRBMG5ENHVrRy9BZGkzT3ZHUjNFaFJPMWxxMTZheXNOZkYx?=
 =?utf-8?B?TUZCd0JjYWpESG52TDZFa1Q4ZFEwZmppUmE5QlB1UkVhbGFqdFJ1TFU3Y1JH?=
 =?utf-8?B?OS90WEVBMTVzVi9iUDd6cTNKVDg4aXkwNVFSbzM2eFQ2T3NUaHJBSXcrUzhv?=
 =?utf-8?B?M2RJZEU4Zk42U3U1Q0Z5SHJOVlRORHBCaSswZ0M1dHlReU45Yld1ZEltb3gv?=
 =?utf-8?B?THB1cjAvWjhrVUhQcHFmUzJ1cUhpb0JSVlNFQkkzWHRGdmdzY2VXT3R1dXN0?=
 =?utf-8?B?RFJ5TTFxNlFKTWltZC9ielRvRkExb0Nidyt4NFNXb3JlYXNBZ283RTZYOTA5?=
 =?utf-8?B?SDJMZ25WZXZqMHdTdVU2bVZGOEVLNHhyQ1o2bnBaU2dSaDU5d29ML2RFYlZw?=
 =?utf-8?B?WWxjK0Q3dkY1bVFWb1U4NEUyTG5OOWVvWEwraFhWY2pLbHVBUTQ4WHRPbUtM?=
 =?utf-8?B?dk92T283dnVjZmtGWTNRd2w3RnU3bUprYUIzYmJWY055SUhINW1FU2dySFZk?=
 =?utf-8?B?ZDZ6NUNzbTdXSkJEdERHWGVEeEdvM0wvdFJZM2w1VDh4S1ZHb3ErTGNEd0dU?=
 =?utf-8?B?Y3JJcUVXU2QrZXVyUHRFMmI2N01GcThFQXlTVWhLeTF2S0NHblFpejNPT1FW?=
 =?utf-8?B?QkJKVk9rVVE5ZEh2Z0FETXpKK0lYdWttQldoTjkvNHgwamV4OUo4dzNGT2Uw?=
 =?utf-8?B?SE9ndHZwMmlYMzBCbkIxeFVmMGRHZmVMUUNOZktQR1l4RUU3RTBJUFd1akw0?=
 =?utf-8?B?VEk2SzNOVUIrVUlEaFBlVXFYdyt2Y3Z0Q3V1S1lZc3I5TXdUQ0ZXQ2VPWlZW?=
 =?utf-8?B?bExtcG9RVFpJZlhacStHTml5SmgrQUY0b3ljaTcwbG1UUmsrajZDK2hQSUJN?=
 =?utf-8?B?NUoraUR3c2pieHoxMzRBMmg2SXRZYmw4TEkyMzJ3Q3ZQbkVqZnB3bUtUTlBG?=
 =?utf-8?B?QjQwcFJkZm9UL0owNHFWc242UWtPTEhsVHRuQ2wyMHpBdnV6R0lSQ0p4NjQy?=
 =?utf-8?B?SndGNUVTd0tZY0Y1bkMzNi84N1JGV2YvemMxZHVoSCt3Wk5uQ0RyemtwcjZB?=
 =?utf-8?B?eHh1UXhFMjFRdlFES09pU01oZ3VxeFRDS0NqRjZEMHFsNmtMeUVNZTZYRjNp?=
 =?utf-8?B?VGxiaEJSaXpkNHVYNmFzS1lxMytOS0NlcTNtQ1haSmxRK2tmbFcwME5nYnJU?=
 =?utf-8?B?MVJDc1hMY0c5UkJFSzB4OVJUS3ZVTUFhamJBUkV0aGxra1NzTVVPNUU0aDZS?=
 =?utf-8?B?WkF5b1JmSWxheGc5clRmYWtVWTkrRStjK2dWektSaWJ4T0RXeEtMcEY0Q0FP?=
 =?utf-8?B?emJnc2NSbGNocW9vM0l6Y0dkaktydWRtSEZseDZjQ2JUVVVvVFlISUIvS0s1?=
 =?utf-8?B?ZU5BcUZlQVI2dktxa0Y3RUZ6SGwxeW5DWXBFeThaaTh3NC9LRFZSc1V6OWVC?=
 =?utf-8?B?V1pwZXI0MURjVG9BQ0xOeHRwb2cvUG9MUG1wNVZka2xDNlEwT3RRL01SMEk4?=
 =?utf-8?B?YjMyWkRraW9EVzAxVWZYbkEyWmxsYmZhaDNCZHVQa0h1UlY2K2IzaS80Z0Iw?=
 =?utf-8?B?cmVvdkd5dDluOFZaYTRkZ3dLemxDajBKQXh6R092VS8wL2hrTG5JOS9hdWRj?=
 =?utf-8?B?SzRMa1VBSGRsSHc5OTE4TWhYUFJKcDVTYk1Mc0xQVHF2YkdvOUtCcUNPSk8v?=
 =?utf-8?B?czYwbVVjZUZlRllUU050UmdsZjVHMHIzR2o0ZXBLM2RlTG9UcFVPVm5SRm5J?=
 =?utf-8?B?M3hJcDJmeEgrSHByVU15NXA2bTRpY1Mvc0lKOFB4Y3lSRDBDY2RrUXp3Y3dK?=
 =?utf-8?B?NzM4S20wQlF6RTFpUVo2MUdmZ1FjU3pZdlRxRG84UUY5SjFaVHdHT0NycmVW?=
 =?utf-8?B?WmRDS0hmTVd4VWdHQW1nb0ltMGpIM29vNloySkhhamJKYVRIS2c0ZXlWY3Nr?=
 =?utf-8?B?L0YvWnYxcm11cW1GVGt2Ym5ueHcxRC8ycnJzOFFJNWZRb0RYcnRFaGh0RFpr?=
 =?utf-8?B?d0dZUHdnKzZ0TlNDTjA2b1lBcXVjMXVXeUhpN0ZZbyt2aHo1RmgwdHdmbVd1?=
 =?utf-8?B?aGg4TmhvZUsydDljOEgyU2VCT24xYkp5bG8ySXhnRkkwYldMV3EzQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b0d784ef-9de6-4a37-7c62-08de8668cfd4
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2026 10:09:45.6591
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: pQLXPFVZlSDBVp9Y8j7tKBX1LRSWmi395mfnSpIOe2lsRbzsyt5nAmfLSWAdJP/LMx3KXGHlxLQ2Ay8sn+kPsA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB4920

On Fri, Mar 20, 2026 at 09:44:39AM +0000, Ross Lagerwall wrote:
> On 3/19/26 2:06 PM, Roger Pau Monné wrote:
> > On Thu, Mar 19, 2026 at 11:40:41AM +0000, Ross Lagerwall wrote:
> > > Like the EPT code, defer TLB flushes for NPT to reduce the number of
> > > flushes and avoid holding the P2M lock while flushing. This can
> > > substantially improve performance in some scenarios.
> > > 
> > > The cases where the TLB needs to be flushed without deferring are
> > > already handled by the call to p2m_tlb_flush_sync() in p2m_free_ptp().
> > > 
> > > Suggested-by: Roger Pau Monne <roger.pau@citrix.com>
> > > Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
> > > ---
> > > In v2:
> > > * Tweak commit message.
> > > * Call guest_flush_tlb_mask() if the assertion fails.
> > > 
> > >   xen/arch/x86/mm/hap/hap.c | 22 ++++++++++++++++++++--
> > >   1 file changed, 20 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
> > > index a337752bf488..67137611d9db 100644
> > > --- a/xen/arch/x86/mm/hap/hap.c
> > > +++ b/xen/arch/x86/mm/hap/hap.c
> > > @@ -814,15 +814,33 @@ static void cf_check hap_update_paging_modes(struct vcpu *v)
> > >   static void cf_check
> > >   hap_write_p2m_entry_post(struct p2m_domain *p2m, unsigned int oflags)
> > >   {
> > > -    struct domain *d = p2m->domain;
> > > +    if ( !(oflags & _PAGE_PRESENT) )
> > > +        return;
> > > +
> > > +    if ( unlikely(!p2m->defer_flush) )
> > > +    {
> > > +        struct domain *d = p2m->domain;
> > 
> > As you are moving this around, and seeing that guest_flush_tlb_mask()
> > takes a const domain parameter, I think you could make this local
> > variable const.  Possibly the same below with the other d local
> > variable.
> > 
> 
> Yes, that makes sense. Can the adjustment be done on commit if there is
> no other feedback?

Sure, I can take care of that at commit time if there are no further
comments.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Mar 20 10:46:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 10:46:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1257979.1552196 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3XN6-0007Rl-4t; Fri, 20 Mar 2026 10:46:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1257979.1552196; Fri, 20 Mar 2026 10: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 1w3XN6-0007Re-1u; Fri, 20 Mar 2026 10:46:28 +0000
Received: by outflank-mailman (input) for mailman id 1257979;
 Fri, 20 Mar 2026 10:46: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=6CX8=BU=citrix.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1w3XN4-0007RY-2b
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 10:46:26 +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 07215cf5-244a-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Mar 2026 11:46:20 +0100 (CET)
Received: from DS0PR03MB8272.namprd03.prod.outlook.com (2603:10b6:8:28f::23)
 by LV8PR03MB8164.namprd03.prod.outlook.com (2603:10b6:408:296::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Fri, 20 Mar
 2026 10:46:11 +0000
Received: from DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654]) by DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654%5]) with mapi id 15.20.9723.022; Fri, 20 Mar 2026
 10:46:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 07215cf5-244a-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=B2AYiN1/BMSdI8aBF8a1+DEXs2DYwrU9Kv4QopJErQb7Wtd79siBbZxnEa5NX0S4QNlg8l5h5DdC+KSmO4jNtdsOyaylUJtF47om5eRaHzodesUtZFA0E7FxZGFq6ftGXlM8FxnNjScgcFuyvwUaVcCVVfmgvtJ8rHO46lO4IUkRG737+EzBVFsOmGPmUdEgF1iRkLz4VndqJmggFy/eUVFqTR65Jg0lHqDu9ing+7sjysy+aNVCiKv+PZEz3/87QNo1xhx/qOFl7STG7GW6V9y4dPoUVUPpBGGgHIfmBwxXtZIK3apqnp2srDB9vMaz0JJ6C/GZad4Hq8w1IdmySg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7Kkk6Zd6txHNwwoJi5Tyr+RvkDuM60jBULf2zj7xAgM=;
 b=vl+o/KPThXlW8Ps/h1awhrsZqE/u3xYOyVWEspMjeFmFPfg8iTsqlHS50titpODL6spjzeHVAr5jLZPTNN2mLC9UJP9FZNSQPwZ7O2ekbCtQjjRb3qFjRNzhL9SkNs5o3MCB2etYKf7BKjpj7T+O/u3/rFTur+PVqYNvig3T2OPcGewQqXOODo/TA5y5UBqw4L4/it0iUsuod/MoOFfdvcbs1pHVgO3SxM5+fs3t4mQxZ2RfLdozhZjTQqq/C2cuoz5SzPi4UhYkdonv0Maqw42Dzeq9M9EDITps3zKucN1Su9Q9DKo4j1DrNj0Gjo0SKiqdbSHF2KX+hlcJqhgxVw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7Kkk6Zd6txHNwwoJi5Tyr+RvkDuM60jBULf2zj7xAgM=;
 b=Qf/pcV+SLV2CssVJEjMjUaVSgvrJ5qSBjKKp7nUCNkt4JMAPQvWIQ9LanIscI91vR1xK+Dzp9Qx/05KudLRMjuS0k8noDCWPv/A9A09jbExtGfhZYpuaSEEve59iYeBWFY0TJWTPzHZHPyK192iEkPcD5iy7tBrIRweLzBiBnmM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <599e1de2-6468-4f32-a52b-408d8c63e8a6@citrix.com>
Date: Fri, 20 Mar 2026 10:45:28 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/8] x86/vmx: Remove lazy FPU support
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, Jan Beulich <jbeulich@suse.com>
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
 <20260319132924.1469809-3-ross.lagerwall@citrix.com>
 <a67bbe7c-9c41-43e4-9d28-f5f221c96b95@citrix.com>
 <c646fd85-f526-435d-897f-c1ad72e6d234@suse.com>
 <4a03299f-cf0e-44ba-ac35-f13392eb83fc@citrix.com>
Content-Language: en-US
From: Ross Lagerwall <ross.lagerwall@citrix.com>
In-Reply-To: <4a03299f-cf0e-44ba-ac35-f13392eb83fc@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0308.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:197::7) To DS0PR03MB8272.namprd03.prod.outlook.com
 (2603:10b6:8:28f::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS0PR03MB8272:EE_|LV8PR03MB8164:EE_
X-MS-Office365-Filtering-Correlation-Id: ba4028f2-ae3f-4711-37a9-08de866de871
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	+mwhUqBocBEtG2i6kMvExCfu1kdWYu5I8RPh3WD0wbRMjLk5VllRmVDScl2iGHXWxr2iNL2gqHJACE1/1g8eA2azMXKXuVLrO6FxMAx0Hgk1DLFJW601SOhUolL4eZYr/DIJr5YYUynRNFl7M1jSAxcoMpmXXMGg8XMPfdaVhElv90GibOZWnh84zpZaj3QMc5o+YWZ3VRxIn+Yyob8ajg4yCS5Qc2TGJH1bTXdHbPN8/0bp5lng4MTgDxzS0GrA1SQ1OLay+9xPQkE9gGljkjGOfPT+0Y/z3cK2GCfoAHX9stpRw79JkGr9VlRHoUIkbi93zj6wv7C4pz+vN5fstAtyiVwIM3Xu5GYppQRO80YwvfhqvCqBLVcxV5pRNE9qUb/k3aVIy7azuTlN7Q5tBt6QUw17NgygiFj5VVtFoC5ITh4bha9pYtIQDpPT7VevVji2pEsN2eenJ1qhkUzr0KJXxqlqi5TvFwwsFq/JYiULdrOTSwgvi7wjz01p62zsLHY0+rJNJ8VqzDVQZq1+dV2f+VQhahSl+DnQ4qL8S7m6D5S0bQgYByNFWyF/FBEC7X0R4/yVjwKdzd3W6fZSVp886yquFv2tWzII5+pGF/pmv6NoK9iAFrb2895vTbhq4XgpPeUiTtPB2p5x6CEQKgJS7TsFIPIc8clob6G9U6Fg0ZrK+/t2A5LzCYx7jv9bZTrESGMVYlVR6phQ6YrCHXn0+RcBJuMRDY+8h63VoLg=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR03MB8272.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?djRvc1pMYWpqZVkwV1kxK2hEdnAxV2RqSStFa0lMVXpBc0Z0NW9PRWF0dTlY?=
 =?utf-8?B?K0sxYmdnVC8vL0RyZ1NBTjdjWlh6MmxQN2RHKzA4UjhPTHVQelVIdHZqQllY?=
 =?utf-8?B?WGlWVDdQUTFMb1Q3Y1lQVFZkMlhZZG1jZTd5dGhlWmtlSzRiS3h0bVNhWDFj?=
 =?utf-8?B?L2l6RGNBSVpVVGlDTjljeTAyQStoMmJ3OWpFNEFKS2x5VTZLOXZBZ3daNjZL?=
 =?utf-8?B?N3pUSFA2aXlBK1JTaHUyejd4dFliamx0UlFTRVUyejBNUFl6MUNvWlZqYWRa?=
 =?utf-8?B?bnJXL2RGanNmLy92N0dFUjRucWZ5VGZDdkV3VGFidFhKNGhZNGxGVHZ3aU1B?=
 =?utf-8?B?K0hTQ2ZZTnJiWVY1MkxTTlZXVVh0RnVMTHI3ais3VU9OZExySmxrN01JTVlW?=
 =?utf-8?B?d0FmQThvRXArSjlEMVgyQTVDbllIVkJOMVdxOW1xUU13a1ljZ1FLZ21HRGZ2?=
 =?utf-8?B?eEw2WGlOMkJ2YjRoTnZma1VDVWdZZGFuL2lFVm1TWlVyZDZ2TTRXbzB5eG8x?=
 =?utf-8?B?b09UYnpnbUZSZ1VwMDFMeCtiUDNtYlhRN0g4TVprcEtSRU01VE9aU0p5Sk9Y?=
 =?utf-8?B?ZFIyNCthdThmNGsyV0VRSzBNZlZVR3lwdkRkT2VDMHR1dDBWSjdmdHFxMC9B?=
 =?utf-8?B?VXM1SXlEQ1JUN2M3aCs4ZHNDOGwvRDVMSEFxUzQyS1NuL1N0ZmVkcGN5bjUx?=
 =?utf-8?B?VUZZc0lRdDNGNzE5dVE2SXgxSHhScmNlOS9kMFA1bUx0cVF4L2tKbTVIZ0Ni?=
 =?utf-8?B?a2Y4MUoxVEFiV3h4eTYyVWxFS0V0UGppdms4RDNTSnd4RGg4bUtvMGhaWEwz?=
 =?utf-8?B?TjJJbUN5SkkrdU1qaWVreUs5djYzWmp6V0FYTDdCTnJ1dHRjWGwySEVzNU9z?=
 =?utf-8?B?K3MrQlJYS2I1dDUyMHJ6djlZc25FcG9BOGk0TG9uN21CSGt5UElTYU1Yblhw?=
 =?utf-8?B?TkNydnRRc0lWV3lBNldmbnVxc3lmMVBNOTRNbm5EcE1SWU5Md0xYUUN1WXRz?=
 =?utf-8?B?SHJzeHdwQXYrVC83U1R4K3drTXg4eTVJODdDN3VXT3MvRU91TEF0U0FZZmFw?=
 =?utf-8?B?V2FBUTBFbEJOZWpySVp2WlcwT2hLUXBSUHRJUWhBTUdJbHk2STZNeS9zNlpY?=
 =?utf-8?B?cyt2UjdoOXNDVnBYWTZqTUNwaHBRVFZWVnZkK0FKLzVZLzZUd2tuYm41ZXlx?=
 =?utf-8?B?OVdScUsvUEhOWWNNMVNhRDJrZTVaRGNXSXNwOFUrbkFVMk1CY0ZGS0Exb1gx?=
 =?utf-8?B?b0VQMktKRUxzaEYyS3Nvc056eU5NZ3RadTVMcVVPV0lQY1hZaHIzc1lpWmR5?=
 =?utf-8?B?RmRHV2dhQklWVmVUQmtOelJ4LzZjcVBQd3lwUTcvOHNwd09kcnB2ODN3MCsy?=
 =?utf-8?B?RytkNXk4Zy9udXZzTVdCYUd5eUU3OEdmM2JpaFlmQzdqRS9ESlFmWXcyWlBT?=
 =?utf-8?B?U1JrVSt3RTQ4RjliZFc5b2VmS016aXVuOVUxMWVBeU54QWhKck1oTkF3VTQ3?=
 =?utf-8?B?VlJQRDZHWmJDQ0N4Z084Q2NZNG00bDBYcldnZnNtMTk3V2M5eHNndVhwbEUv?=
 =?utf-8?B?aUl2b216V2l0UkwvY3R1OW1kdjRJdlg3TTk1Vk5kNktSQjU5Zlh2WHFGZWpv?=
 =?utf-8?B?STl2TEU4cVZGSkdyRWZQU01xOTBYRjM3VkxTcHd2Y1M2Q3drRHZqZ3hVVXpC?=
 =?utf-8?B?QmJ1dWZkQTJrc3ZWVFQ4K09jRXZkbWwzb3NFWjYwd3VKWFpBUnpwd0h2SWY5?=
 =?utf-8?B?N1FhUXk4ekRqcjFxckdvWUg4cVB4cjZ5K0E1Wkl6TWtEUEN1dVluLy9YcGFU?=
 =?utf-8?B?cVhyQlJXZUpFVWZCMEdDYnk3V3BjNGt6Q1UvcSsvTCtvUVJCckVWeEtGMkFP?=
 =?utf-8?B?ekFNWkdmMUliaUxXakNuTTVFT3RHOUU5QkFMN25GUndPM1NkMVl0d3ZPL2xV?=
 =?utf-8?B?RFdjWUc4NWV4eFFWdVBLYVF6UDVWRi9hMTZEOSs1WktsckZHSHhtdTNlWURh?=
 =?utf-8?B?bUpoMWo1TDBWdFdJL29EVVRWYlpIemNxbERCT1paNEdtdkE3SVRJZE02RmxC?=
 =?utf-8?B?cHJ2Uk9ndFJwMmZpSkNjb1F3Ukduamx4cSsybEl4MUtMQ0dtbmZtT01oaUY0?=
 =?utf-8?B?VjFrc1UwNndlaGp4RXJFdS92cmtCVHZ2akNlVmwwNUNNSkFXUXd0Z0hPSDZJ?=
 =?utf-8?B?V0Y2aVpKZ3FBU1A1S3F2VFlkRXRpcmpwOGl4eUJ3NHJhMm9mM244c1dHY2RL?=
 =?utf-8?B?QnQ3eW5YQncxVnF4NThDQnd4c2Y1aWtZanh0cFp0RU5sc1MrVXo1YStGVGFm?=
 =?utf-8?B?QXA5ZzZSZmN1UmlUUHg4V1NJVmcyMXFLNjdtbFpNbk9HOWFCcDJxOS9kNnFV?=
 =?utf-8?Q?OvMuwAYyWKzU1d5U=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ba4028f2-ae3f-4711-37a9-08de866de871
X-MS-Exchange-CrossTenant-AuthSource: DS0PR03MB8272.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2026 10:46:14.4209
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: /3b0DqcKf0d4uU4qOAnAyAMUKzgMXtdAnfyPHEKgCcY+D50NL15d4mvEdVkl0wEH4xEJlJmMXMybyzIRBDSmsxFZziNmiSa2b7OhQFlCo9k=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR03MB8164

On 3/19/26 4:54 PM, Andrew Cooper wrote:
> On 19/03/2026 4:43 pm, Jan Beulich wrote:
>> On 19.03.2026 17:38, Andrew Cooper wrote:
>>> On 19/03/2026 1:29 pm, Ross Lagerwall wrote:
>>>> Remove lazy FPU support from the VMX code since fully_eager_fpu is now
>>>> always true.
>>>>
>>>> No functional change intended.
>>>>
>>>> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
>>> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>
>>>> ---
>>>>   xen/arch/x86/hvm/vmx/vmcs.c             |  8 +--
>>>>   xen/arch/x86/hvm/vmx/vmx.c              | 70 +------------------------
>>>>   xen/arch/x86/hvm/vmx/vvmx.c             | 15 +-----
>>>>   xen/arch/x86/include/asm/hvm/vmx/vmcs.h |  2 -
>>>>   4 files changed, 5 insertions(+), 90 deletions(-)
>>>>
>>>> diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
>>>> index c2e7f9aed39f..8e52ef4d497a 100644
>>>> --- a/xen/arch/x86/hvm/vmx/vmcs.c
>>>> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
>>>> @@ -1247,10 +1247,7 @@ static int construct_vmcs(struct vcpu *v)
>>>>       __vmwrite(HOST_TR_SELECTOR, TSS_SELECTOR);
>>>>   
>>>>       /* Host control registers. */
>>>> -    v->arch.hvm.vmx.host_cr0 = read_cr0() & ~X86_CR0_TS;
>>>> -    if ( !v->arch.fully_eager_fpu )
>>>> -        v->arch.hvm.vmx.host_cr0 |= X86_CR0_TS;
>>>> -    __vmwrite(HOST_CR0, v->arch.hvm.vmx.host_cr0);
>>>> +    __vmwrite(HOST_CR0, read_cr0());
>>> (Not for this patch) but I'm pretty sure there's room to optimise this
>>> further.
>>>
>>> CR0 should be constant, both here and in SVM.  Reading the active cr0 is
>>> an example of the anti-pattern we need to purge to make nested-virt work
>>> better.
>> In which case, is it a good idea to purge the host_cr0 field?
> 
> Oh hmm, I take back my R-by slightly.  We still need to initialise
> v->arch.hvm.vmx.host_cr0 for this patch to be no functional change.
> Easy enough to fix, or fix on commit.
> 

Not sure I follow why v->arch.hvm.vmx.host_cr0 is needed when this would
be the only place it is used?

For no function change, it should be probably be...

__vmwrite(HOST_CR0, read_cr0() & ~X86_CR0_TS);

... though that might be unnecessary after patch 8.

Ross


From xen-devel-bounces@lists.xenproject.org Fri Mar 20 13:19:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 13:19:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1258034.1552222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3ZlB-0002io-Rl; Fri, 20 Mar 2026 13:19:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1258034.1552222; Fri, 20 Mar 2026 13:19:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3ZlB-0002ih-Nm; Fri, 20 Mar 2026 13:19:29 +0000
Received: by outflank-mailman (input) for mailman id 1258034;
 Fri, 20 Mar 2026 13:19: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=VTAn=BU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w3ZlA-0002ib-KD
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 13:19:28 +0000
Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com
 [209.85.128.41]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6b778f2e-245f-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 14:19:27 +0100 (CET)
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-4852c9b4158so14435265e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 20 Mar 2026 06:19:27 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-486fe6d91fbsm60387855e9.3.2026.03.20.06.19.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 20 Mar 2026 06:19:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6b778f2e-245f-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774012766; x=1774617566; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NX2pgHc3DISbbTq4UXXnkCDUxohh1a0ZbTLVxm5DzuY=;
        b=WDVdR0tTtvlNePkVVlyz+9G/PUC4grIrXaPpkp9qXqu3CqGqMawl4qFqp5a06UP2oh
         u2cF4OD72mP+sV6kT3LDMMmClLggLQN9ldHKEysDaf2UX47QytyeLwMAfxxj4+lATqcx
         9Am40ezBm6CyZsKZCvE6SEepSUjy3y1OJSnOMH26/llXRGifxb/SEWbWJbTN+VIgHxCj
         CcdkfPKC135lxsa4RXO+rvoZN51Cmum3yyPZan5ppUx6w39kP2B1NGyHF21anhbnGtX0
         fYxgE3yVHEdhDS817wjUpavIWEGCi7LjtEuLWlwpMftoFPVgQJFd36X+Fa+N351qIqWv
         4qPg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774012766; x=1774617566;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NX2pgHc3DISbbTq4UXXnkCDUxohh1a0ZbTLVxm5DzuY=;
        b=FHUp3DeLIqRg6C94q3VT2E0WyP/UAC1PBLuJAzLPuec6bPInzs7P+NviTockN8lOkj
         JnLtznIxmwly1hRTsxhaiZBMyL8Z4GDvKDdNr9PKWmji9FPZDV8dzvA4PgUojOvO+fGt
         UE6uxzALTLo2Fv37ddrQOe92OCYmC1+dkmFfO86wh6fVSknySFifY+ihlu/e5SsVkeIo
         flRC30Tg8BQpY+EI59NPJ6i+nnyYokkXE63fiohszkx7Kcb34PmAWvnbcNUcJ33y/vCT
         Nmt9u6D4WdR6ERXeW2yjl24/7FIoYu2XGU9I980wtL8921e/PEOIP7kcRiCNvHWBAQQi
         lSZA==
X-Forwarded-Encrypted: i=1; AJvYcCXmYezch/wpSEYXw5GAWoAYQaXs+NDxHqupP8p+IfkBTRYF4ODUFUKVt21o1Rz1ZAPpO8nmkdAcUjQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyPPzO+cJMpN2V6mRek0IuHrNqfmrFEs5JaX008HyGymudK+hXq
	MQuTTxmo/5Og6gETfPvSDLPtSRMDQTyVVmafqJs8vv1t7sPuulcvTLR8lbsT3Xyy9w==
X-Gm-Gg: ATEYQzyyI0ogOtbrOBlyMeIsCJWma1w0JQcKGoLO2s1sbY6fXErJSY2hXFpTnoW62mi
	B2PQtWFXGSXK2z1eO06WqssBzP+3QdmNazXQy0E1fU+ml8PcdViWU1TGVp6FKNhOI0JyODTG4U0
	yTF+LCVQYvWub6+0mg5X5ZWv52h+eNs6G0bLfFjsEUubhVfoaqnQNY1LRgNiHples4XpmTtiVWK
	NuFYrphEWRatx5AD2b4q+YgRNY5NNnMKDAVjy7VomfcxnmNNYuCNBrX7kROareAtixOEutW5ccl
	FxKzqqDfxTDqz5A8YFuG4fWhyPeo7AsY4vxZc7S3QMgaXRQANwpcTGJh4hPWLcbN4D5ZUxFpsuS
	d+7kWdw5HAcDWCjvwvR7PrvAo/URK8BCkCTK2/KYMdsz/YRwXxUMr+Mu4pqBex2ENnyMlG2g02g
	v+a8g3B2FxkaLJkm4xOyNMTRxogyhOBvEdXwiVDV16JgLuY3Y4Wu1KaJJ/bejUFBYftI2SVp251
	3g2oscYr8yXWpY=
X-Received: by 2002:a05:600c:a55:b0:485:ae14:8192 with SMTP id 5b1f17b1804b1-486febb5da9mr47197995e9.7.1774012766320;
        Fri, 20 Mar 2026 06:19:26 -0700 (PDT)
Message-ID: <92becfa8-1f61-4137-b0ec-ee7160913c5c@suse.com>
Date: Fri, 20 Mar 2026 14:19:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 6/6] xen/riscv: enable DOMAIN_BUILD_HELPERS
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <6ab04f3584e45795dc82c25f62a6c950913f5c7d.1770821989.git.oleksii.kurochko@gmail.com>
 <aac9b5ac-6660-4ec0-b88e-605903217588@suse.com>
 <b4ac883d-ce90-40b0-93fc-95c925c7ac61@gmail.com>
 <a35d5566-7da1-406d-abf7-13b423d013f8@suse.com>
 <ad59c5ea-ae8c-4e6e-8b49-dcd0eefc3197@gmail.com>
 <1efcb5eb-1b59-4def-a527-254a31efe2b7@suse.com>
 <a8e3b6fe-d1cc-44d5-b286-b59b65e25320@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: <a8e3b6fe-d1cc-44d5-b286-b59b65e25320@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.03.2026 10:58, Oleksii Kurochko wrote:
> On 3/19/26 8:58 AM, Jan Beulich wrote:
>> On 17.03.2026 13:49, Oleksii Kurochko wrote:
>>> On 2/13/26 2:11 PM, Jan Beulich wrote:
>>>>>>> +#define GUEST_RAM0_BASE   xen_mk_ullong(0x80000000) /* 2GB of low RAM @ 2GB */
>>>>>>> +#define GUEST_RAM0_SIZE   xen_mk_ullong(0x80000000)
>>>>>>> +
>>>>>>> +#define GUEST_RAM_BANK_BASES   { GUEST_RAM0_BASE }
>>>>>>> +#define GUEST_RAM_BANK_SIZES   { GUEST_RAM0_SIZE }
>>> (cut)
>>>
>>>> If all you want are 2Gb guests, why would such guests be 64-bit? And with
>>>> (iirc) RV32 permitting more than 4Gb (via PPN being 22 bits wide), perhaps
>>>> even a 32-bit hypervisor would suffice?
>>> Btw, shouldn't we look at VPN width?
>>>
>>> My understanding is that we should take GUEST_RAM0_BASE as sgfn address
>>> and then map it to mfn's page (allocated by alloc_domheap_pages())? And then
>>> repeat this process until we won't map GUEST_RAM0_SIZE.
>>>
>>> In this case for RV32 VPN (which is GFN in the current context) is 32-bit
>>> wide as RV32 supports only Sv32, what is 2^32 - 1, what is almost 4gb.
>> ??? (IOW - I fear I'm confused enough by the question that I don't know how
>> to respond.)
> 
> You mentioned above that:
>    "... And with (iirc) RV32 permitting more than 4Gb (via PPN being 22 bits wide) ..."
> 
> I wanted to clarify why you use PPN here in the context of GUEST_RAM0_BASE definition.
> (and maybe I just misinterpreted incorrectly your original message)
> GUEST_RAM0_BASE is the address at which the guest believes RAM starts in its physical
> address space, i.e. it is a GPA, which is then translated to an MPA.
> 
>  From the MMU's perspective, the GPA looks like:
>    VPN[1] | VPN[0] | page_offset   (in Sv32x4 mode)
> 
> In Sv32x4, the GPA is 34 bits wide (or 22 bits wide in terms of GFNs), and the MPA is
> also 32 bits wide (or 22 bits wide in terms of PPN).

You mentioning Sv32x4 may point at part of the problem: For the guest physical
memory layout (and hence size), paging and hence virtual addresses don't matter
at all. What matters is what the guest can put in the page table entries it
writes. Addresses there are represented as PPNs, aren't they? Hence my use of
that acronym.

> The distinction is not significant in Sv32x4, since PPN width equals VPN width, but
> in other modes VPN < PPN (in terms of bit width).
> So when we want to run a guest in Sv39x4 mode and want to give the guest the full
> Sv39x4 address space, setting GUEST_RAM0_SIZE to the maximum possible value for
> Sv39x4, shouldn't we look at the VPN width rather than the PPN width?

No, why? The guest can arrange to map more than 2^39 bytes. Not all at the same
time, sure, but by suitable switching page tables (or merely entries) around.

Jan

> In other words, GUEST_RAM0_SIZE should be (2^41 - 1) rather than (2^56 - 1)
> for Sv39x4.
> 
> ~ Oleksii
> 



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 14:04:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 14:04:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1258059.1552230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3aSm-00015q-27; Fri, 20 Mar 2026 14:04:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1258059.1552230; Fri, 20 Mar 2026 14:04:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3aSl-00015j-VB; Fri, 20 Mar 2026 14:04:31 +0000
Received: by outflank-mailman (input) for mailman id 1258059;
 Fri, 20 Mar 2026 14:04: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=lc/M=BU=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1w3aSk-00015d-4R
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 14:04:30 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazon11011021.outbound.protection.outlook.com [52.101.52.21])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b445306e-2465-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 15:04:26 +0100 (CET)
Received: from SJ0PR03CA0201.namprd03.prod.outlook.com (2603:10b6:a03:2ef::26)
 by BN7PPFA42F4F89B.namprd12.prod.outlook.com
 (2603:10b6:40f:fc02::6dd) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.9; Fri, 20 Mar
 2026 14:04:22 +0000
Received: from MWH0EPF000C618E.namprd02.prod.outlook.com
 (2603:10b6:a03:2ef:cafe::47) by SJ0PR03CA0201.outlook.office365.com
 (2603:10b6:a03:2ef::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.27 via Frontend Transport; Fri,
 20 Mar 2026 14:04:21 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 MWH0EPF000C618E.mail.protection.outlook.com (10.167.249.100) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9723.19 via Frontend Transport; Fri, 20 Mar 2026 14:04:21 +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; Fri, 20 Mar
 2026 09:04:19 -0500
Received: from [172.18.105.61] (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, 20 Mar 2026 09:04:18 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b445306e-2465-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Cvo42goeuLtQiuSt59iWCi2a/U51UGFHeX4Y/DHwJNN0b7gxU7zoLJDXeBC+BzImbegtXYVxt6oGHUIJL897fKW1fhQcXqu83x45X/tlrKSh3njaovwi/nBD0ljt8VJp1IZeGfCdTfd+iMALY0gWqpfxpkq4qD82bXL1hyRCKgC9Qi3eaxdr5xs5y9ZC57OBDbepmugYdKnZG5hr37ho85k5Xh8Z7yJhbE7mV7Jv+BsFHVw/bJcJjabwsdk92XXn+YTXoUjomDfd3UvZRBW7HlaxG/SQei4GZBjctkdxpED1oYXowtryEfTD3d3vhlvDiVdDFdrFLPQI+Qnfyxh86Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yynQ/Qm0Pqs20e8Rw/eeG0S9kKqL5d+CMvs0W75a+8o=;
 b=JAMPCu4S6UFcvhbPdN5LnWim+NgEYzSy+z2v6Rn0/P9H2JKvIvx+vxShERWXW/WEEXb+OTxtZVSd/sAp1br0XLpwFfLjkrgK2eNIAmXrzb+TS8TfEJ5qQWsPrlD1eG51xPOzUFLJYTsqtW3ahrCLKyXspf8ekG2ozpEegu+ZuPRdtoMWiOzAiAels85NudVHh6oEcnR1Ri7oy3BJNsnj3Z4gSW7OBMnt5iKw+W9Okl+2WyGcOK4yyFwqYC0KlFcg9ZapNMNeEA7Rvoo8MV1cF96IicO47sfiK49i2Zcbq4iOndA+gVCWH2X63t1v5mT5M6smtj1fdVNI1STmlz99JQ==
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=yynQ/Qm0Pqs20e8Rw/eeG0S9kKqL5d+CMvs0W75a+8o=;
 b=NxC4uGWzsWeOSHHHNGRcLo2QBzEEDvKkw+vYCIdTwsvmbL5XcQXvuRszqJF+7xXqy0OaCvTbyp2Wcl4fRy3PWW5LkfKe60rMEdrHe+1BvmtijOtyFoOY0MPW9tKizIMLwsPeMi4YWWupES7+zGkej36thiqfohQugVVjNp7vBnA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <c64842e7-9b13-4549-a57c-1a642d7e1803@amd.com>
Date: Fri, 20 Mar 2026 10:04:18 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] install.sh: Preserve symlinks in destination file
 system
To: Thierry Escande <thierry.escande@vates.tech>,
	<xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich
	<jbeulich@suse.com>
References: <20260319165047.900047-1-thierry.escande@vates.tech>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20260319165047.900047-1-thierry.escande@vates.tech>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000C618E:EE_|BN7PPFA42F4F89B:EE_
X-MS-Office365-Filtering-Correlation-Id: 824617ab-4b5f-4741-c2c4-08de868995d7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700016|56012099003|22082099003|18002099003|7053199007;
X-Microsoft-Antispam-Message-Info:
	A05FuuB0OhPvkdFA2T0FhzTAKUSbFoB8bMXeOr8Rjdz+d1W21vmviQlEVgONSnO3jv3LqopZYTCLdtBuOoc7GNUAsyWrKZypiFMFF8f7Jylu7mbqyFVtavdMm17dhnTtCNaqriztJnbdeQN07GOZZ03WWTwmhoIwto8nOFg7DHntTVecZEGHdHMzjGQaB5LO+M/Gq3AYD+7zRAA5knvueNABHadJxsiJyKcfZKkyqXgQFIs7eBsRLptfyqvRnEs5rJQAupncOgDF1HGjt20FWFfSK2oUZKruwGwqOxHKgVa+rt/IjhWDGgG09AnljWmHW86r49136e2QjVfdxZBQQmnlb2OsoSClbpuptIaKq0RBdusiWeZPaqivui9HPT19NTVsrVGJOO8OrWbw7NVXAcMGxhvBIJQ+PSK11ZWN368+D97Nz2IYgMX2fK4t9lQKtGVb4CAkSQiFeZwdHSosjavjL/8w3t9uMnrznzfJ40b+7Qv/MroUAG9k3+2IGjdomRd5PT/yeUVPpzvPfJU1I33JuM5oARPWSLC3S5NFLPwPIQ13kh2G/EhNiy+ZV898rhOPCgP7MMMp1JpIrnt6pFHWrItnpxXIBWnXbjknzk118e61bQvVNJHVjhh7ZyIz799/moUfehjzQTsQyAnk0KXNddzFXong9sIVRS1Pn+VySuGeZ7sZssnoNkcXnDBKnF/mrRzXKHehifU6WvPiPVV1tuH3vbA7E6jJGlNBZq/1fQL5qVj6qqenLS/WvfG2Bd4ePFRDEL5dF3iHVltr/A==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700016)(56012099003)(22082099003)(18002099003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	gXgb13u9+yfTlT8yr2ExMaS76QMWWi8yGUIvoHhdvvBI6+i5PhsIKxPV6C2KuEg2oGhE215hPiOdrlzhYTjoHrUSHrkQtt2knKNJhv3lUvaCXCEGsbyYmjPRnVour8uaXl5H4AbGqpVRHjZCG0UDXtln+S/SRJRdAtK8P5seVfCNo7px/3CBhgyNvX2YbqH/1J8nemEMUFJjYS8I8X0yBa9nuAcNg2t1mY0knMX6wo/vZAuWakoFn7tu3hXOvgEG7s8iS/JK+07cCFZJYTXYYORrogvMyChTml4nXj9np72Z7l8mzjPy0acNXTQ5r7SI1UgEHFeJznaHxvX3FsvY1tkDQm007XkoC+p4VbERwuXvRkTGiVfDFHB4lL8rfXZAmXjdSTMX1eD+BKRKy/9UfIGL5xwsZuG6zTX505a7qeqOjUvMdWrkFRUa7mcz/xti
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2026 14:04:21.4424
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 824617ab-4b5f-4741-c2c4-08de868995d7
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000C618E.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PPFA42F4F89B

On 2026-03-19 12:50, Thierry Escande wrote:
> In various distros (i.e. Debian), /lib is a symbolic link. The tar
> command in install.sh replaces the /lib symlink with a directory and
> results in a non-functioning system. This has been introduced by the
> installation of the systemd watchdog sleep script in /lib/systemd.
> 
> This patch adds the tar option --dereference (-h for short) to preserve
> symlinks when extracting the dist archive.
> 
> Fixes: e54a6cd6a1f3 ("systemd: Add hooks to stop/start xen-watchdog on suspend/resume")
> Signed-off-by: Thierry Escande <thierry.escande@vates.tech>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
Tested-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Fri Mar 20 14:31:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 14:31:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1258077.1552239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3asE-0005Sw-1Z; Fri, 20 Mar 2026 14:30:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1258077.1552239; Fri, 20 Mar 2026 14:30:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3asD-0005Sp-U8; Fri, 20 Mar 2026 14:30:49 +0000
Received: by outflank-mailman (input) for mailman id 1258077;
 Fri, 20 Mar 2026 14:30: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=X43w=BU=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w3asC-0005Sj-3x
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 14:30:48 +0000
Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com
 [209.85.221.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 61d221dc-2469-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Mar 2026 15:30:45 +0100 (CET)
Received: by mail-wr1-f50.google.com with SMTP id
 ffacd0b85a97d-439b2965d4bso514536f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 20 Mar 2026 07:30:45 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-146-121.play-internet.pl.
 [109.243.146.121]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b64717e97sm7051545f8f.35.2026.03.20.07.30.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 20 Mar 2026 07:30:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 61d221dc-2469-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1774017045; x=1774621845; 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=VwgfdF4QVqtMsrH3JfJKyHvtzCZOz5DQUkw+D8MeQeA=;
        b=PLn6s97RY2HxWQLQwHOAXOYKMjhVplpBgLVTrErASqIxl81ZyPVFeRKcWngB7oO/Lt
         8WmlpfhPWv4+aOD47U9/dcKVXzZ6WE83h+Ro+2yvGMQ3/7Qtftmxg4hvklSg/mrOsmOO
         fx83IsHoY0Fbs7ESlFAW8MIFZKJ05ucAoh5ndtYthH0h/bZVAfEE/VZP+uub3xTCxEnv
         zDDbMEUKTVRs771orUErVkCzzk/niW3NIATtcdHa++nvT+fPxNYk5n/AtraqWlIDA5nx
         Ac98acGllaAvMmRjHy91chLvivhxIWJjVnGMcQeJH1g5OKSXDjne4YGFu7Ht7SWxYv1p
         oIFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774017045; x=1774621845;
        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=VwgfdF4QVqtMsrH3JfJKyHvtzCZOz5DQUkw+D8MeQeA=;
        b=nuRCJvpI0f1t3WerSQQN89OuP/aFm3vKuYrVjWXdoK4DDi5hveVNFf6pvZKltrISeO
         +mXtlbLoW3t5swdQTa2u7BCqDpgVBntP9wjOGhCnMg+1FsyMGYGQE02DPxc6tcbM0K+h
         pXR9sapo8y8Eo6BoIwPCV2QthugmDqp55LG77v8hla56HVCB0cxUV6m0wKJbkAWytR63
         cj8LMKSjAVoRMlRb8esAPT1e6GGEQTjDKAEcuLluCkJ7zkEpXHVaauIFxplxbnhD3zec
         fdePQT1Yxw2eDuDFZKQPaUf3jTwu0i3FDMcjQB38bzVsKjt3HphAx7Xofo58YMXxZ+tJ
         Duug==
X-Forwarded-Encrypted: i=1; AJvYcCUnoL82iVk35imqk4cyBFOdQDS/1/BnJ4xlU5BMRnnUPMA7LZh+C9n7DLHy/4uTd9lUNNz6nfm/Tm0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyXZrFvdTsuyCoQMixulJXxobwhuc+KOGkyMHZPIT1PDlXjlyU2
	s16ACfar9rzxt09yUshkSjbIP/Q+D5lJ2ATspQ8j9sdnJe6VRiYDm5n9
X-Gm-Gg: ATEYQzwMSjUX0tTWtDHu4e/b8rs+A/U/ojcH70dNpyifTVVJ/ZVL1rdFANt8oKldk24
	SBAslEhvXAEkjpzzbMN6Ks1D17mqhoOZ1/rP/YLlTqPcaIQv+UMD/GdeLHqFWtgwtH6tyg3GgW9
	n6jMYcL/KRlnNZJNL+fOZHPilVjrzCGnDbtgXXLvOVm9871S4SWo949KcvRY19NBL5sEvIWCbKD
	mZVfqmR4CNWo7KbXwuYDOSbpVVZqCIQFMJyen2aq/7JXP41L9y/LIPJVhKDgNgCpKu4cUkMXr+H
	wyC+2sExXEw4Z/Exd5k6IHiN+bhuaMGy8gQEPBY5HKXPD53gQw/O10egDcH0NB+ICufzX2HgWaC
	XOWRd6/PJLPdvAQVHAvFlsC9ucp7rdI0I+fh+YdWa6tYZCFO8xHgUMZK6FxfU4i+p81RxxZmOdG
	M0cfIc7Uz6xLuCIo12IyudWxarAe0xGkbh5iK6yVcH/samY/1Ge2SdW5NDe3PMemgesQFKpR2ky
	AYIuw==
X-Received: by 2002:a05:6000:2584:b0:43b:4e01:4aa9 with SMTP id ffacd0b85a97d-43b64242a6emr5920740f8f.10.1774017044866;
        Fri, 20 Mar 2026 07:30:44 -0700 (PDT)
Message-ID: <1b56d49d-f12e-4e6d-ae78-d5d76552297f@gmail.com>
Date: Fri, 20 Mar 2026 15:30:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 6/6] xen/riscv: enable DOMAIN_BUILD_HELPERS
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <6ab04f3584e45795dc82c25f62a6c950913f5c7d.1770821989.git.oleksii.kurochko@gmail.com>
 <aac9b5ac-6660-4ec0-b88e-605903217588@suse.com>
 <b4ac883d-ce90-40b0-93fc-95c925c7ac61@gmail.com>
 <a35d5566-7da1-406d-abf7-13b423d013f8@suse.com>
 <ad59c5ea-ae8c-4e6e-8b49-dcd0eefc3197@gmail.com>
 <1efcb5eb-1b59-4def-a527-254a31efe2b7@suse.com>
 <a8e3b6fe-d1cc-44d5-b286-b59b65e25320@gmail.com>
 <92becfa8-1f61-4137-b0ec-ee7160913c5c@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <92becfa8-1f61-4137-b0ec-ee7160913c5c@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 3/20/26 2:19 PM, Jan Beulich wrote:
> On 20.03.2026 10:58, Oleksii Kurochko wrote:
>> On 3/19/26 8:58 AM, Jan Beulich wrote:
>>> On 17.03.2026 13:49, Oleksii Kurochko wrote:
>>>> On 2/13/26 2:11 PM, Jan Beulich wrote:
>>>>>>>> +#define GUEST_RAM0_BASE   xen_mk_ullong(0x80000000) /* 2GB of low RAM @ 2GB */
>>>>>>>> +#define GUEST_RAM0_SIZE   xen_mk_ullong(0x80000000)
>>>>>>>> +
>>>>>>>> +#define GUEST_RAM_BANK_BASES   { GUEST_RAM0_BASE }
>>>>>>>> +#define GUEST_RAM_BANK_SIZES   { GUEST_RAM0_SIZE }
>>>> (cut)
>>>>
>>>>> If all you want are 2Gb guests, why would such guests be 64-bit? And with
>>>>> (iirc) RV32 permitting more than 4Gb (via PPN being 22 bits wide), perhaps
>>>>> even a 32-bit hypervisor would suffice?
>>>> Btw, shouldn't we look at VPN width?
>>>>
>>>> My understanding is that we should take GUEST_RAM0_BASE as sgfn address
>>>> and then map it to mfn's page (allocated by alloc_domheap_pages())? And then
>>>> repeat this process until we won't map GUEST_RAM0_SIZE.
>>>>
>>>> In this case for RV32 VPN (which is GFN in the current context) is 32-bit
>>>> wide as RV32 supports only Sv32, what is 2^32 - 1, what is almost 4gb.
>>> ??? (IOW - I fear I'm confused enough by the question that I don't know how
>>> to respond.)
>>
>> You mentioned above that:
>>     "... And with (iirc) RV32 permitting more than 4Gb (via PPN being 22 bits wide) ..."
>>
>> I wanted to clarify why you use PPN here in the context of GUEST_RAM0_BASE definition.
>> (and maybe I just misinterpreted incorrectly your original message)
>> GUEST_RAM0_BASE is the address at which the guest believes RAM starts in its physical
>> address space, i.e. it is a GPA, which is then translated to an MPA.
>>
>>   From the MMU's perspective, the GPA looks like:
>>     VPN[1] | VPN[0] | page_offset   (in Sv32x4 mode)
>>
>> In Sv32x4, the GPA is 34 bits wide (or 22 bits wide in terms of GFNs), and the MPA is
>> also 32 bits wide (or 22 bits wide in terms of PPN).
> 
> You mentioning Sv32x4 may point at part of the problem: For the guest physical
> memory layout (and hence size), paging and hence virtual addresses don't matter
> at all. What matters is what the guest can put in the page table entries it
> writes. Addresses there are represented as PPNs, aren't they? Hence my use of
> that acronym.

That's is what I came to after wrote and sent an e-mail. Now you 
confirmed that.

> 
>> The distinction is not significant in Sv32x4, since PPN width equals VPN width, but
>> in other modes VPN < PPN (in terms of bit width).
>> So when we want to run a guest in Sv39x4 mode and want to give the guest the full
>> Sv39x4 address space, setting GUEST_RAM0_SIZE to the maximum possible value for
>> Sv39x4, shouldn't we look at the VPN width rather than the PPN width?
> 
> No, why? The guest can arrange to map more than 2^39 bytes. Not all at the same
> time, sure, but by suitable switching page tables (or merely entries) around.
> 
Good point. Then the right limit is therefore the PPN width which 
reflects the actual physical addressing capability.

Thanks a lot.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 15:01:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 15:01:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1258095.1552248 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bLp-0001Vr-7T; Fri, 20 Mar 2026 15:01:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1258095.1552248; Fri, 20 Mar 2026 15: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 1w3bLp-0001Vk-43; Fri, 20 Mar 2026 15:01:25 +0000
Received: by outflank-mailman (input) for mailman id 1258095;
 Fri, 20 Mar 2026 15: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=0BFG=BU=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w3bLo-0001Ve-FG
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 15:01:24 +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 a8b6fef8-246d-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 16:01:22 +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 20F975BDF3;
 Fri, 20 Mar 2026 15:01:22 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id EB0F942866;
 Fri, 20 Mar 2026 15:01:21 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id BLEtOEFhvWkPXAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 20 Mar 2026 15:01: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: a8b6fef8-246d-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018882; 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=SjXGRNpK/CE8XDBu7KCxrhSkkgpazL2Ll5TxU3VumYQ=;
	b=FufgoKQXz5oVST1bIvd5xWVlNEDmu4ORWo8U5+Mv5WN2/w4dXliHCDvcn+pfOpghCg+kio
	wJ45yzWBDfniww7tjqkg7iN7+ulXORKET/kw2AiNIXwjMteLUKttwWFaEOrW5XY9LhN8zy
	0xn9G/OmLsogZ0kTDDInB7GCPGzGXe8=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=FufgoKQX
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018882; 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=SjXGRNpK/CE8XDBu7KCxrhSkkgpazL2Ll5TxU3VumYQ=;
	b=FufgoKQXz5oVST1bIvd5xWVlNEDmu4ORWo8U5+Mv5WN2/w4dXliHCDvcn+pfOpghCg+kio
	wJ45yzWBDfniww7tjqkg7iN7+ulXORKET/kw2AiNIXwjMteLUKttwWFaEOrW5XY9LhN8zy
	0xn9G/OmLsogZ0kTDDInB7GCPGzGXe8=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Nick Rosbrook <enr0n@ubuntu.com>,
	George Dunlap <gwd@xenproject.org>
Subject: [PATCH v2 00/12] tools: add support for per-domain xenstore quota
Date: Fri, 20 Mar 2026 16:01:08 +0100
Message-ID: <20260320150120.874878-1-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[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];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	ARC_NA(0.00)[];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	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)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	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:dkim,suse.com:mid,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns];
	RCVD_TLS_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCPT_COUNT_FIVE(0.00)[6];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	DKIM_TRACE(0.00)[suse.com:+]
X-Rspamd-Queue-Id: 20F975BDF3
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Spam-Level: 

This series is adding support for per-domain Xenstore quota to:

- xenstored
- libxenstore
- libxl
- xl

With this it is possible to e.g. allow larger limits for driver
domains.

Changes in V2:
- addressed all comments
- new patch 2

Juergen Gross (12):
  tools/libs/store: add get- and set-quota related functions
  tools/xenstored: add helper to parse domid
  tools/xenstored: add central quota check functions
  tools/xenstored: rework hard_quotas and soft_quotas arrays
  tools/xenstored: add GLOBAL_QUOTA_DATA record for live update
  tools/xenstored: split acc[] array in struct domain
  tools/xenstored: use per-domain quota settings
  tools/xenstored: implement the GET/SET_QUOTA commands
  tools/libxl: add functions for retrieving and setting xenstore quota
  tools/libxl: add support for xenstore quota in domain_config
  tools/xl: add xl commands for xenstore quota operations
  tools/xl: add support for xenstore quota setting via domain config

 docs/man/xl.cfg.5.pod.in             |  13 +
 tools/golang/xenlight/helpers.gen.go |  84 +++++
 tools/golang/xenlight/types.gen.go   |  10 +
 tools/include/libxl.h                |  21 ++
 tools/include/xenstore.h             |  37 ++
 tools/libs/light/Makefile            |   1 +
 tools/libs/light/libxl_dom.c         |   8 +
 tools/libs/light/libxl_domain.c      |  11 +
 tools/libs/light/libxl_types.idl     |  10 +
 tools/libs/light/libxl_xsquota.c     | 116 ++++++
 tools/libs/store/Makefile            |   2 +-
 tools/libs/store/libxenstore.map     |   8 +
 tools/libs/store/xs.c                | 111 ++++++
 tools/xenstored/control.c            |  24 +-
 tools/xenstored/core.c               |  41 ++-
 tools/xenstored/domain.c             | 519 +++++++++++++++++++++------
 tools/xenstored/domain.h             |  28 +-
 tools/xenstored/lu.c                 |   6 +
 tools/xenstored/transaction.c        |   2 +-
 tools/xenstored/watch.c              |   4 +-
 tools/xl/Makefile                    |   1 +
 tools/xl/xl.h                        |   2 +
 tools/xl/xl_cmdtable.c               |  10 +
 tools/xl/xl_parse.c                  |  47 ++-
 tools/xl/xl_parse.h                  |   1 +
 tools/xl/xl_xsquota.c                |  90 +++++
 26 files changed, 1057 insertions(+), 150 deletions(-)
 create mode 100644 tools/libs/light/libxl_xsquota.c
 create mode 100644 tools/xl/xl_xsquota.c

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 15:01:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 15:01:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1258096.1552258 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bLz-0001l0-JP; Fri, 20 Mar 2026 15:01:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1258096.1552258; Fri, 20 Mar 2026 15: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 1w3bLz-0001kp-F5; Fri, 20 Mar 2026 15:01:35 +0000
Received: by outflank-mailman (input) for mailman id 1258096;
 Fri, 20 Mar 2026 15:01:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0BFG=BU=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w3bLy-0001Ve-B4
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 15:01:34 +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 af1e4f0b-246d-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 16:01:33 +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 046424D27B;
 Fri, 20 Mar 2026 15:01:33 +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 D619B42868;
 Fri, 20 Mar 2026 15:01:32 +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 cusPM0xhvWksXAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 20 Mar 2026 15: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: af1e4f0b-246d-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018893; 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=UMmQvyab5G2G37hAWlU7WoprCOyLWbdVZgzV27fPe1Y=;
	b=sezfUz6RZ3nMFx6zUFekzrc3QDFxkgKQwMpcDYUOBQ95kiJWb3QS375tzfBQFb7z8gxjM+
	eK+QZmeSjNOyrMl1/j22YLtQRKBWiPvl+MfwSmUAfgtsoiSWoeKdHgnuSCbs7mU6cWykSd
	chdAsTm4FXFtHYeUdWO62NdoidYQt/I=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=sezfUz6R
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018893; 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=UMmQvyab5G2G37hAWlU7WoprCOyLWbdVZgzV27fPe1Y=;
	b=sezfUz6RZ3nMFx6zUFekzrc3QDFxkgKQwMpcDYUOBQ95kiJWb3QS375tzfBQFb7z8gxjM+
	eK+QZmeSjNOyrMl1/j22YLtQRKBWiPvl+MfwSmUAfgtsoiSWoeKdHgnuSCbs7mU6cWykSd
	chdAsTm4FXFtHYeUdWO62NdoidYQt/I=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v2 02/12] tools/xenstored: add helper to parse domid
Date: Fri, 20 Mar 2026 16:01:10 +0100
Message-ID: <20260320150120.874878-3-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260320150120.874878-1-jgross@suse.com>
References: <20260320150120.874878-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[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)[];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	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)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	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)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns,suse.com:dkim,suse.com:mid,suse.com:email];
	RCVD_TLS_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	DKIM_TRACE(0.00)[suse.com:+]
X-Rspamd-Queue-Id: 046424D27B
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Spam-Level: 

Today a domid passed in by a command is parsed using atoi(). This
will still "succeed" even with a domid like "x", resulting in "0" to
be used instead.

Use a common domid parser instead rejecting everything but integers
in the range 0..65535 like specified in docs/misc/xenstore.txt.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- new patch (kind of suggested by Anthony Perard)
---
 tools/xenstored/domain.c | 47 +++++++++++++++++++++++++++++++++-------
 1 file changed, 39 insertions(+), 8 deletions(-)

diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index e453b3061f..a70acddf94 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -732,6 +732,18 @@ static char *talloc_domain_path(const void *context, unsigned int domid)
 	return talloc_asprintf(context, "/local/domain/%u", domid);
 }
 
+/* Parse a domid. Sets errno either to 0 or EINVAL. */
+static unsigned int parse_domid(const char *input)
+{
+	unsigned long domid;
+	char *endptr;
+
+	domid = strtoul(input, &endptr, 10);
+	errno = (*endptr != 0 || domid > 65535) ? EINVAL : 0;
+
+	return domid;
+}
+
 int domain_get_quota(const void *ctx, struct connection *conn,
 		     unsigned int domid)
 {
@@ -1077,7 +1089,10 @@ int do_introduce(const void *ctx, struct connection *conn,
 	if (get_strings(in, vec, ARRAY_SIZE(vec)) < ARRAY_SIZE(vec))
 		return EINVAL;
 
-	domid = atoi(vec[0]);
+	domid = parse_domid(vec[0]);
+	if (errno)
+		return errno;
+
 	/* Ignore the gfn, we don't need it. */
 	port = atoi(vec[2]);
 
@@ -1124,8 +1139,12 @@ int do_set_target(const void *ctx, struct connection *conn,
 	if (get_strings(in, vec, ARRAY_SIZE(vec)) < ARRAY_SIZE(vec))
 		return EINVAL;
 
-	domid = atoi(vec[0]);
-	tdomid = atoi(vec[1]);
+	domid = parse_domid(vec[0]);
+	if (errno)
+		return errno;
+	tdomid = parse_domid(vec[1]);
+	if (errno)
+		return errno;
 
         domain = find_connected_domain(domid);
 	if (IS_ERR(domain))
@@ -1152,7 +1171,9 @@ static struct domain *onearg_domain(struct connection *conn,
 	if (!domid_str)
 		return ERR_PTR(-EINVAL);
 
-	domid = atoi(domid_str);
+	domid = parse_domid(domid_str);
+	if (errno)
+		return ERR_PTR(-errno);
 	if (domid == store_domid || domid == priv_domid)
 		return ERR_PTR(-EINVAL);
 
@@ -1200,11 +1221,15 @@ int do_get_domain_path(const void *ctx, struct connection *conn,
 {
 	char *path;
 	const char *domid_str = onearg(in);
+	unsigned int domid;
 
 	if (!domid_str)
 		return EINVAL;
 
-	path = talloc_domain_path(ctx, atoi(domid_str));
+	domid = parse_domid(domid_str);
+	if (errno)
+		return errno;
+	path = talloc_domain_path(ctx, domid);
 	if (!path)
 		return errno;
 
@@ -1223,7 +1248,9 @@ int do_is_domain_introduced(const void *ctx, struct connection *conn,
 	if (!domid_str)
 		return EINVAL;
 
-	domid = atoi(domid_str);
+	domid = parse_domid(domid_str);
+	if (errno)
+		return errno;
 	if (domid == DOMID_SELF)
 		result = 1;
 	else
@@ -1261,7 +1288,9 @@ int do_get_feature(const void *ctx, struct connection *conn,
 		return EINVAL;
 
 	if (n_args == 1) {
-		domid = atoi(vec[0]);
+		domid = parse_domid(vec[0]);
+		if (errno)
+			return errno;
 		domain = find_or_alloc_existing_domain(domid);
 		if (!domain)
 			return ENOENT;
@@ -1289,7 +1318,9 @@ int do_set_feature(const void *ctx, struct connection *conn,
 	if (get_strings(in, vec, ARRAY_SIZE(vec)) != ARRAY_SIZE(vec))
 		return EINVAL;
 
-	domid = atoi(vec[0]);
+	domid = parse_domid(vec[0]);
+	if (errno)
+		return errno;
 	features = atoi(vec[1]);
 	domain = find_or_alloc_existing_domain(domid);
 	if (!domain)
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 15:01:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 15:01:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1258097.1552265 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bM3-00020g-P3; Fri, 20 Mar 2026 15:01:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1258097.1552265; Fri, 20 Mar 2026 15:01:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bM3-00020Z-MV; Fri, 20 Mar 2026 15:01:39 +0000
Received: by outflank-mailman (input) for mailman id 1258097;
 Fri, 20 Mar 2026 15:01:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0BFG=BU=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w3bM2-0001ko-AF
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 15:01:38 +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 af1bc027-246d-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Mar 2026 16:01:33 +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 8EE745BDF7;
 Fri, 20 Mar 2026 15:01:27 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 6F22F42866;
 Fri, 20 Mar 2026 15:01:27 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id 9A8BGkdhvWklXAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 20 Mar 2026 15:01: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: af1bc027-246d-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018892; 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=xVitA9QfI8pYjyiyMqwV+9bQQuTZeeXyuUjW3egkMps=;
	b=XMIYwrezHJdLyDJW9qER38yfhWsvXSWgU+GReSZpkCKggxJ9IZQAajLEvXY3cM4MKxSoW4
	nB3WiWT4+tDWAzyKTSBdi9Hb2QSMilpKn4MNBfh+1XdrKcCQO7ok/PCiy4p9C2WNUzkA41
	+fyC6JGkYpIV2w2drra6jQxVx6HjqQE=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=SYGII5VN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018887; 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=xVitA9QfI8pYjyiyMqwV+9bQQuTZeeXyuUjW3egkMps=;
	b=SYGII5VNzDgDbiK2Vqew2klU16gwU52rMGPw6CFurDToIEB2TK6GRb9r3TYQkHnaAKaQ8F
	eWETWH/RVOe/qHU59/t/ULFJacm9+dHal6FXW6zar9IiaNTU8uwKz+2xjWjWdLleIx/9E9
	qwiyFGfJUwvVL04tmVo0qyiu9XeC+7M=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v2 01/12] tools/libs/store: add get- and set-quota related functions
Date: Fri, 20 Mar 2026 16:01:09 +0100
Message-ID: <20260320150120.874878-2-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260320150120.874878-1-jgross@suse.com>
References: <20260320150120.874878-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[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)[];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	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)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	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)[libxenstore.map:url,suse.com:dkim,suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns];
	RCVD_TLS_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	DKIM_TRACE(0.00)[suse.com:+]
X-Rspamd-Queue-Id: 8EE745BDF7
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Spam-Level: 

Add functions for getting and setting Xenstore quota to libxenstore:

xs_get_quota_names(): get the names of the supported quota.

xs_get_global_quota(): get the value of one global quota.

xs_set_global_quota(): set the value of one global quota.

xs_get_domain_quota(): get the value of one quota of a domain.

xs_set_domain_quota(): set the value of one quota of a domain.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- make string parameters const (Anthony Perard)
- add function descriptions to header (Anthony Perard)
---
 tools/include/xenstore.h         |  37 +++++++++++
 tools/libs/store/Makefile        |   2 +-
 tools/libs/store/libxenstore.map |   8 +++
 tools/libs/store/xs.c            | 111 +++++++++++++++++++++++++++++++
 4 files changed, 157 insertions(+), 1 deletion(-)

diff --git a/tools/include/xenstore.h b/tools/include/xenstore.h
index 423422dc50..bf6d767a22 100644
--- a/tools/include/xenstore.h
+++ b/tools/include/xenstore.h
@@ -277,6 +277,43 @@ bool xs_get_features_domain(struct xs_handle *h, unsigned int domid,
 bool xs_set_features_domain(struct xs_handle *h, unsigned int domid,
 			    unsigned int features);
 
+/* Get names of supported quota.
+ * Returns an array of quota names supported by Xenstore. On return
+ * num will contain the number of quota names in the array.
+ * Will return NULL on failure.
+ * The returned array should be freed via free() after usage, this will
+ * free the array AND the strings of the quota names.
+ */
+const char **xs_get_quota_names(struct xs_handle *h, unsigned int *num);
+
+/* Get the value of one global quota.
+ * Returns the global quota value specified by "quota" in "value".
+ * Return false on failure.
+ */
+bool xs_get_global_quota(struct xs_handle *h, const char *quota,
+			 unsigned int *value);
+
+/* Set the value of one global quota.
+ * Sets the global quota value specified by "quota" to "value".
+ * Return false on failure.
+ */
+bool xs_set_global_quota(struct xs_handle *h, const char *quota,
+			 unsigned int value);
+
+/* Get the value of one domain quota.
+ * Returns a domain's quota value specified by "quota" in "value".
+ * Return false on failure.
+ */
+bool xs_get_domain_quota(struct xs_handle *h, unsigned int domid,
+			 const char *quota, unsigned int *value);
+
+/* Set the value of one domain quota.
+ * Sets a domain's quota value specified by "quota" to "value".
+ * Return false on failure.
+ */
+bool xs_set_domain_quota(struct xs_handle *h, unsigned int domid,
+			 const char *quota, unsigned int value);
+
 char *xs_control_command(struct xs_handle *h, const char *cmd,
 			 void *data, unsigned int len);
 /* Deprecated: use xs_control_command() instead. */
diff --git a/tools/libs/store/Makefile b/tools/libs/store/Makefile
index fed43b0008..b52d1f35ad 100644
--- a/tools/libs/store/Makefile
+++ b/tools/libs/store/Makefile
@@ -2,7 +2,7 @@ XEN_ROOT=$(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 MAJOR = 4
-MINOR = 1
+MINOR = 2
 version-script := libxenstore.map
 
 ifeq ($(CONFIG_Linux),y)
diff --git a/tools/libs/store/libxenstore.map b/tools/libs/store/libxenstore.map
index cd9df86749..a08ddd549f 100644
--- a/tools/libs/store/libxenstore.map
+++ b/tools/libs/store/libxenstore.map
@@ -45,3 +45,11 @@ VERS_4.1 {
 		xs_get_features_domain;
 		xs_set_features_domain;
 } VERS_4.0;
+VERS_4.2 {
+	global:
+		xs_get_quota_names;
+		xs_get_global_quota;
+		xs_set_global_quota;
+		xs_get_domain_quota;
+		xs_set_domain_quota;
+} VERS_4.1;
diff --git a/tools/libs/store/xs.c b/tools/libs/store/xs.c
index 8f4b90a3cf..06462445e0 100644
--- a/tools/libs/store/xs.c
+++ b/tools/libs/store/xs.c
@@ -1456,6 +1456,117 @@ bool xs_set_features_domain(struct xs_handle *h, unsigned int domid,
 	return xs_bool(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL));
 }
 
+const char **xs_get_quota_names(struct xs_handle *h, unsigned int *num)
+{
+	struct xsd_sockmsg msg = { .type = XS_GET_QUOTA };
+	struct iovec iov[1];
+	const char **quota;
+	char *reply;
+	char *c;
+	unsigned int i;
+
+	iov[0].iov_base = &msg;
+	iov[0].iov_len  = sizeof(msg);
+
+	reply = xs_talkv(h, iov, ARRAY_SIZE(iov), NULL);
+	if (!reply)
+		return NULL;
+
+	*num = 1;
+	for (c = reply; *c; c++)
+		if (*c == ' ')
+			(*num)++;
+
+	quota = malloc(*num * sizeof(char *) + strlen(reply) + 1);
+	c = (char *)(quota + *num);
+	strcpy(c, reply);
+	for (i = 0; i < *num; i++) {
+		quota[i] = c;
+		c = strchr(c, ' ');
+		if (c) {
+			*c = 0;
+			c++;
+		}
+	}
+
+	return quota;
+}
+
+bool xs_get_global_quota(struct xs_handle *h, const char *quota,
+			 unsigned int *value)
+{
+	struct xsd_sockmsg msg = { .type = XS_GET_QUOTA };
+	struct iovec iov[2];
+
+	iov[0].iov_base = &msg;
+	iov[0].iov_len  = sizeof(msg);
+	iov[1].iov_base = (char *)quota;
+	iov[1].iov_len  = strlen(quota) + 1;
+
+	return xs_uint(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL), value);
+}
+
+bool xs_set_global_quota(struct xs_handle *h, const char *quota,
+			 unsigned int value)
+{
+	struct xsd_sockmsg msg = { .type = XS_SET_QUOTA };
+	char val_str[MAX_STRLEN(value)];
+	struct iovec iov[3];
+
+	snprintf(val_str, sizeof(val_str), "%u", value);
+
+	iov[0].iov_base = &msg;
+	iov[0].iov_len  = sizeof(msg);
+	iov[1].iov_base = (char *)quota;
+	iov[1].iov_len  = strlen(quota) + 1;
+	iov[2].iov_base = val_str;
+	iov[2].iov_len  = strlen(val_str) + 1;
+
+	return xs_bool(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL));
+}
+
+bool xs_get_domain_quota(struct xs_handle *h, unsigned int domid,
+			 const char *quota, unsigned int *value)
+{
+	struct xsd_sockmsg msg = { .type = XS_GET_QUOTA };
+	char domid_str[MAX_STRLEN(domid)];
+	struct iovec iov[3];
+
+	snprintf(domid_str, sizeof(domid_str), "%u", domid);
+
+	iov[0].iov_base = &msg;
+	iov[0].iov_len  = sizeof(msg);
+	iov[1].iov_base = domid_str;
+	iov[1].iov_len  = strlen(domid_str) + 1;
+	iov[2].iov_base = (char *)quota;
+	iov[2].iov_len  = strlen(quota) + 1;
+
+	return xs_uint(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL), value);
+}
+
+bool xs_set_domain_quota(struct xs_handle *h, unsigned int domid,
+			 const char *quota, unsigned int value)
+{
+	struct xsd_sockmsg msg = { .type = XS_SET_QUOTA };
+	char domid_str[MAX_STRLEN(domid)];
+	char val_str[MAX_STRLEN(value)];
+	struct iovec iov[4];
+
+	snprintf(domid_str, sizeof(domid_str), "%u", domid);
+	snprintf(val_str, sizeof(val_str), "%u", value);
+
+	iov[0].iov_base = &msg;
+	iov[0].iov_len  = sizeof(msg);
+	iov[1].iov_base = domid_str;
+	iov[1].iov_len  = strlen(domid_str) + 1;
+	iov[2].iov_base = (char *)quota;
+	iov[2].iov_len  = strlen(quota) + 1;
+	iov[3].iov_base = val_str;
+	iov[3].iov_len  = strlen(val_str) + 1;
+
+	return xs_bool(xs_talkv(h, iov, ARRAY_SIZE(iov), NULL));
+}
+
 char *xs_control_command(struct xs_handle *h, const char *cmd,
 			 void *data, unsigned int len)
 {
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 15:01:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 15:01:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1258099.1552275 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bME-0002LV-0l; Fri, 20 Mar 2026 15:01:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1258099.1552275; Fri, 20 Mar 2026 15:01: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 1w3bMD-0002LL-T7; Fri, 20 Mar 2026 15:01:49 +0000
Received: by outflank-mailman (input) for mailman id 1258099;
 Fri, 20 Mar 2026 15: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=0BFG=BU=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w3bMC-0001Ve-Mg
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 15:01:48 +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 b7b941d6-246d-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 16:01: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 6C9315BDF1;
 Fri, 20 Mar 2026 15:01:38 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 4BD3842866;
 Fri, 20 Mar 2026 15:01:38 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id Y4FYEVJhvWk/XAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 20 Mar 2026 15:01:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b7b941d6-246d-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018903; 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=/PcS/7XQ557sIjqSKbSX5CF48BnA+Ztcs9ICymueV/w=;
	b=gy+MTAPWgRFjoGgXB1ttiyIPkAjxMVtyZdEUOgaB3d2DlHxd0WrsqKlHqnifDzVlzQSMDL
	6sGO1hBya4UEn3XDGDbaUbmfK3HZYt+HZxO3S5Mt8610sRM4QxqlvB0u9ephMD4LqU+Izg
	YbLcgsyYyorCh0BE7I3phFBg8fO1Wyc=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=mo9MZ39Y
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018898; 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=/PcS/7XQ557sIjqSKbSX5CF48BnA+Ztcs9ICymueV/w=;
	b=mo9MZ39Y5662BNkZptfC09SxsSkiAc69252f8BV5wnxo7KdUdqaT7Rt06zYTdPb4uQhgR1
	xNrFkjaSWYmqtnhcWG7ZEFbOYGqC6RnaVprSLd4TDAXDE6/bmVG0TXCJS8QdOsPAN4lY0R
	JjtXTzMIq0GNwetNUMU6Idh10eq9L3M=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v2 03/12] tools/xenstored: add central quota check functions
Date: Fri, 20 Mar 2026 16:01:11 +0100
Message-ID: <20260320150120.874878-4-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260320150120.874878-1-jgross@suse.com>
References: <20260320150120.874878-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	ARC_NA(0.00)[];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	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)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	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:mid,suse.com:dkim,suse.com:email,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns];
	RCVD_TLS_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	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: 
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Rspamd-Queue-Id: 6C9315BDF1

Add central functions for checking a value (either an absolute one or
the current domain value plus an offset) against a specific quota.

This is in preparation of introducing per-domain quota.

The required changes allow to drop the "update" parameter from
domain_nbentry_fix().

While at it, make the returned error for exceeded quota consistent by
changing one instance from "E2BIG" to "ENOSPC".

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
---
V2:
- expand commit message (Anthony Perard)
- rename domain_check_quota_*() to domain_quota_*_exceeds()
  (Jason Andryuk)
---
 tools/xenstored/core.c        |  4 +-
 tools/xenstored/domain.c      | 74 +++++++++++++++++------------------
 tools/xenstored/domain.h      |  6 +--
 tools/xenstored/transaction.c |  2 +-
 tools/xenstored/watch.c       |  4 +-
 5 files changed, 42 insertions(+), 48 deletions(-)

diff --git a/tools/xenstored/core.c b/tools/xenstored/core.c
index e4d2fd4876..e86d947be4 100644
--- a/tools/xenstored/core.c
+++ b/tools/xenstored/core.c
@@ -1539,7 +1539,7 @@ static struct node *create_node(struct connection *conn, const void *ctx,
 	for (i = node; i; i = i->parent) {
 		/* i->parent is set for each new node, so check quota. */
 		if (i->parent &&
-		    domain_nbentry(conn) >= hard_quotas[ACC_NODES].val) {
+		    domain_quota_add_exceeds(conn->domain, ACC_NODES, 1)) {
 			ret = ENOSPC;
 			goto err;
 		}
@@ -2321,7 +2321,7 @@ void setup_structure(bool live_update)
 		manual_node("/tool/xenstored", NULL);
 		manual_node("@releaseDomain", NULL);
 		manual_node("@introduceDomain", NULL);
-		domain_nbentry_fix(priv_domid, 5, true);
+		domain_nbentry_fix(priv_domid, 5);
 	}
 }
 
diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index a70acddf94..21f6f13f83 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -389,6 +389,25 @@ void wrl_apply_debit_trans_commit(struct connection *conn)
 	wrl_apply_debit_actual(conn->domain);
 }
 
+static bool domain_quota_val_exceeds(struct domain *d, enum accitem what,
+				     unsigned int val)
+{
+	unsigned int quota = hard_quotas[what].val;
+
+	if (!quota || !domid_is_unprivileged(d->domid))
+		return false;
+
+	return val >= quota;
+}
+
+bool domain_quota_add_exceeds(struct domain *d, enum accitem what, int add)
+{
+	if (add < 0 || !d)
+		return false;
+
+	return domain_quota_val_exceeds(d, what, d->acc[what].val + add);
+}
+
 static bool check_indexes(XENSTORE_RING_IDX cons, XENSTORE_RING_IDX prod)
 {
 	return ((prod - cons) <= XENSTORE_RING_SIZE);
@@ -490,10 +509,9 @@ static bool domain_can_read(struct connection *conn)
 	if (domain_is_unprivileged(conn)) {
 		if (domain->wrl_credit < 0)
 			return false;
-		if (domain->acc[ACC_OUTST].val >= hard_quotas[ACC_OUTST].val)
+		if (domain_quota_add_exceeds(domain, ACC_OUTST, 0))
 			return false;
-		if (domain->acc[ACC_MEM].val >= hard_quotas[ACC_MEM].val &&
-		    hard_quotas[ACC_MEM].val)
+		if (domain_quota_add_exceeds(domain, ACC_MEM, 0))
 			return false;
 	}
 
@@ -916,16 +934,20 @@ do {						\
 
 int acc_fix_domains(struct list_head *head, bool chk_quota, bool update)
 {
+	struct domain *d;
 	struct changed_domain *cd;
-	int cnt;
 
 	list_for_each_entry(cd, head, list) {
-		cnt = domain_nbentry_fix(cd->domid, cd->acc[ACC_NODES], update);
-		if (!update) {
-			if (chk_quota && cnt >= hard_quotas[ACC_NODES].val)
-				return ENOSPC;
-			if (cnt < 0)
+		if (update) {
+			domain_nbentry_fix(cd->domid, cd->acc[ACC_NODES]);
+		} else if (chk_quota) {
+			d = find_or_alloc_existing_domain(cd->domid);
+
+			if (!d)
 				return ENOMEM;
+			if (domain_quota_add_exceeds(d, ACC_NODES,
+						     cd->acc[ACC_NODES]))
+				return ENOSPC;
 		}
 	}
 
@@ -1763,7 +1785,7 @@ bool domain_max_chk(const struct connection *conn, enum accitem what,
 	if (!conn || !conn->domain)
 		return false;
 
-	if (domain_is_unprivileged(conn) && val > hard_quotas[what].val)
+	if (domain_quota_val_exceeds(conn->domain, what, val))
 		return true;
 
 	domain_acc_valid_max(conn->domain, what, val);
@@ -1783,21 +1805,9 @@ int domain_nbentry_dec(struct connection *conn, unsigned int domid)
 	       ? errno : 0;
 }
 
-int domain_nbentry_fix(unsigned int domid, int num, bool update)
-{
-	int ret;
-
-	ret = domain_acc_add(NULL, domid, ACC_NODES, update ? num : 0, update);
-	if (ret < 0 || update)
-		return ret;
-
-	return domid_is_unprivileged(domid) ? ret + num : 0;
-}
-
-unsigned int domain_nbentry(struct connection *conn)
+int domain_nbentry_fix(unsigned int domid, int num)
 {
-	return domain_is_unprivileged(conn)
-	       ? domain_acc_add(conn, conn->id, ACC_NODES, 0, true) : 0;
+	return domain_acc_add(NULL, domid, ACC_NODES, num, true);
 }
 
 static bool domain_chk_quota(struct connection *conn, unsigned int mem)
@@ -1812,7 +1822,7 @@ static bool domain_chk_quota(struct connection *conn, unsigned int mem)
 	domain = conn->domain;
 	now = time(NULL);
 
-	if (mem >= hard_quotas[ACC_MEM].val && hard_quotas[ACC_MEM].val) {
+	if (domain_quota_val_exceeds(domain, ACC_MEM, mem)) {
 		if (domain->hard_quota_reported)
 			return true;
 		syslog(LOG_ERR, "Domain %u exceeds hard memory quota, Xenstore interface to domain stalled\n",
@@ -1888,13 +1898,6 @@ void domain_watch_dec(struct connection *conn)
 	domain_acc_add(conn, conn->id, ACC_WATCH, -1, true);
 }
 
-int domain_watch(struct connection *conn)
-{
-	return (domain_is_unprivileged(conn))
-		? domain_acc_add(conn, conn->id, ACC_WATCH, 0, true)
-		: 0;
-}
-
 void domain_outstanding_inc(struct connection *conn)
 {
 	domain_acc_add(conn, conn->id, ACC_OUTST, 1, true);
@@ -1915,13 +1918,6 @@ void domain_transaction_dec(struct connection *conn)
 	domain_acc_add(conn, conn->id, ACC_TRANS, -1, true);
 }
 
-unsigned int domain_transaction_get(struct connection *conn)
-{
-	return (domain_is_unprivileged(conn))
-		? domain_acc_add(conn, conn->id, ACC_TRANS, 0, true)
-		: 0;
-}
-
 const char *dump_state_connections(FILE *fp)
 {
 	const char *ret = NULL;
diff --git a/tools/xenstored/domain.h b/tools/xenstored/domain.h
index 28186ccac0..29b91fc783 100644
--- a/tools/xenstored/domain.h
+++ b/tools/xenstored/domain.h
@@ -113,8 +113,7 @@ int domain_alloc_permrefs(struct node_perms *perms);
 /* Quota manipulation */
 int domain_nbentry_inc(struct connection *conn, unsigned int domid);
 int domain_nbentry_dec(struct connection *conn, unsigned int domid);
-int domain_nbentry_fix(unsigned int domid, int num, bool update);
-unsigned int domain_nbentry(struct connection *conn);
+int domain_nbentry_fix(unsigned int domid, int num);
 int domain_memory_add(struct connection *conn, unsigned int domid, int mem,
 		      bool no_quota_check);
 
@@ -141,12 +140,10 @@ static inline void domain_memory_add_nochk(struct connection *conn,
 }
 void domain_watch_inc(struct connection *conn);
 void domain_watch_dec(struct connection *conn);
-int domain_watch(struct connection *conn);
 void domain_outstanding_inc(struct connection *conn);
 void domain_outstanding_dec(struct connection *conn, unsigned int domid);
 void domain_transaction_inc(struct connection *conn);
 void domain_transaction_dec(struct connection *conn);
-unsigned int domain_transaction_get(struct connection *conn);
 int domain_get_quota(const void *ctx, struct connection *conn,
 		     unsigned int domid);
 
@@ -161,6 +158,7 @@ int domain_max_global_acc(const void *ctx, struct connection *conn);
 void domain_reset_global_acc(void);
 bool domain_max_chk(const struct connection *conn, enum accitem what,
 		    unsigned int val);
+bool domain_quota_add_exceeds(struct domain *d, enum accitem what, int add);
 
 extern long wrl_ntransactions;
 
diff --git a/tools/xenstored/transaction.c b/tools/xenstored/transaction.c
index 167cd597fd..47cd6ecd3c 100644
--- a/tools/xenstored/transaction.c
+++ b/tools/xenstored/transaction.c
@@ -470,7 +470,7 @@ int do_transaction_start(const void *ctx, struct connection *conn,
 	if (conn->transaction)
 		return EBUSY;
 
-	if (domain_transaction_get(conn) > hard_quotas[ACC_TRANS].val)
+	if (domain_quota_add_exceeds(conn->domain, ACC_TRANS, 1))
 		return ENOSPC;
 
 	/* Attach transaction to ctx for autofree until it's complete */
diff --git a/tools/xenstored/watch.c b/tools/xenstored/watch.c
index b66a9f1a39..becb9c339d 100644
--- a/tools/xenstored/watch.c
+++ b/tools/xenstored/watch.c
@@ -220,8 +220,8 @@ int do_watch(const void *ctx, struct connection *conn, struct buffered_data *in)
 			return EEXIST;
 	}
 
-	if (domain_watch(conn) > hard_quotas[ACC_WATCH].val)
-		return E2BIG;
+	if (domain_quota_add_exceeds(conn->domain, ACC_WATCH, 1))
+		return ENOSPC;
 
 	watch = add_watch(conn, vec[0], vec[1], relative, false);
 	if (!watch)
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 15:01:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 15:01:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1258100.1552284 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bMF-0002aC-B6; Fri, 20 Mar 2026 15:01:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1258100.1552284; Fri, 20 Mar 2026 15:01:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bMF-0002a1-7E; Fri, 20 Mar 2026 15:01:51 +0000
Received: by outflank-mailman (input) for mailman id 1258100;
 Fri, 20 Mar 2026 15:01: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=0BFG=BU=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w3bMD-0001Ve-Ms
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 15:01: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 b7b1befc-246d-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 16:01: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 DB28B4D283;
 Fri, 20 Mar 2026 15:01:43 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id B9BB94286A;
 Fri, 20 Mar 2026 15:01:43 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id 5qkuLFdhvWnIXAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 20 Mar 2026 15:01:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b7b1befc-246d-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018907; 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=qdvDBarqGgiL43xd/vvQTmt16yx93JcWCKCmVqFw2vI=;
	b=dfEGX3AKjjWqhGOj0IZESdUAapuHSM78emCH0i9bbYOosKxcDABJy6vmqAmPdVyVVW//om
	9FdpZX334eXePmHeOphKrXxj2rslJ3ggkS72vmnHIuks0KdxiKgtKKayZcXgAN8dPorQJt
	J33UMI2hJOK5ZK9CBkXLcfZmrsg4R8A=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b="Z93Mv/u9"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018903; 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=qdvDBarqGgiL43xd/vvQTmt16yx93JcWCKCmVqFw2vI=;
	b=Z93Mv/u9y2dtiHFRupINtCViI4zqk8cCCVnj7+Ba7fEFY16xsbOGGozjdby8gjlpD0s7dW
	noK92+GdsOdrArxgvWWRr+6mhAJsMZHbebpQ/oxt/weuMafSEtsHJRd/KcXb1onEuaFrwp
	9glmz26IfP6yP9rK56Klfk5CLerhL3s=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v2 04/12] tools/xenstored: rework hard_quotas and soft_quotas arrays
Date: Fri, 20 Mar 2026 16:01:12 +0100
Message-ID: <20260320150120.874878-5-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260320150120.874878-1-jgross@suse.com>
References: <20260320150120.874878-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	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)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns,suse.com:mid,suse.com:dkim,suse.com:email];
	RCVD_TLS_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	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: 
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Rspamd-Queue-Id: DB28B4D283

Instead of having one array for hard quotas and one for soft quotas,
split them differently: have one array with the quota names and
descriptions, and one with the quota values (soft and hard) and the
maximum value so far.

This is in preparation of supporting per-domain quotas, as the layout
of the second array elements will be reused in the domain data.

While at it add an accessor for getting a soft quota value, as this
will be needed for per-domain quotas, too.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
---
 tools/xenstored/control.c | 24 ++++++++-------
 tools/xenstored/core.c    | 33 +++++++++++---------
 tools/xenstored/domain.c  | 65 +++++++++++++++++++++------------------
 tools/xenstored/domain.h  | 15 +++++----
 4 files changed, 76 insertions(+), 61 deletions(-)

diff --git a/tools/xenstored/control.c b/tools/xenstored/control.c
index 2611a6fade..ca59d30d05 100644
--- a/tools/xenstored/control.c
+++ b/tools/xenstored/control.c
@@ -101,7 +101,7 @@ static int do_control_log(const void *ctx, struct connection *conn,
 }
 
 static int quota_show_current(const void *ctx, struct connection *conn,
-			      const struct quota *quotas)
+			      unsigned int idx)
 {
 	char *resp;
 	unsigned int i;
@@ -111,11 +111,12 @@ static int quota_show_current(const void *ctx, struct connection *conn,
 		return ENOMEM;
 
 	for (i = 0; i < ACC_N; i++) {
-		if (!quotas[i].name)
+		if (!quota_adm[i].name || quotas[i].val[idx] == Q_VAL_DISABLED)
 			continue;
 		resp = talloc_asprintf_append(resp, "%-17s: %8d %s\n",
-					      quotas[i].name, quotas[i].val,
-					      quotas[i].descr);
+					      quota_adm[i].name,
+					      quotas[i].val[idx],
+					      quota_adm[i].descr);
 		if (!resp)
 			return ENOMEM;
 	}
@@ -126,7 +127,7 @@ static int quota_show_current(const void *ctx, struct connection *conn,
 }
 
 static int quota_set(const void *ctx, struct connection *conn,
-		     const char **vec, int num, struct quota *quotas)
+		     const char **vec, int num, unsigned int idx)
 {
 	unsigned int i;
 	int val;
@@ -139,8 +140,9 @@ static int quota_set(const void *ctx, struct connection *conn,
 		return EINVAL;
 
 	for (i = 0; i < ACC_N; i++) {
-		if (quotas[i].name && !strcmp(vec[0], quotas[i].name)) {
-			quotas[i].val = val;
+		if (quota_adm[i].name && !strcmp(vec[0], quota_adm[i].name) &&
+		    quotas[i].val[idx] != Q_VAL_DISABLED) {
+			quotas[i].val[idx] = val;
 			send_ack(conn, XS_CONTROL);
 			return 0;
 		}
@@ -178,10 +180,10 @@ static int do_control_quota(const void *ctx, struct connection *conn,
 			    const char **vec, int num)
 {
 	if (num == 0)
-		return quota_show_current(ctx, conn, hard_quotas);
+		return quota_show_current(ctx, conn, Q_IDX_HARD);
 
 	if (!strcmp(vec[0], "set"))
-		return quota_set(ctx, conn, vec + 1, num - 1, hard_quotas);
+		return quota_set(ctx, conn, vec + 1, num - 1, Q_IDX_HARD);
 
 	if (!strcmp(vec[0], "max"))
 		return quota_max(ctx, conn, vec + 1, num - 1);
@@ -193,10 +195,10 @@ static int do_control_quota_s(const void *ctx, struct connection *conn,
 			      const char **vec, int num)
 {
 	if (num == 0)
-		return quota_show_current(ctx, conn, soft_quotas);
+		return quota_show_current(ctx, conn, Q_IDX_SOFT);
 
 	if (!strcmp(vec[0], "set"))
-		return quota_set(ctx, conn, vec + 1, num - 1, soft_quotas);
+		return quota_set(ctx, conn, vec + 1, num - 1, Q_IDX_SOFT);
 
 	return EINVAL;
 }
diff --git a/tools/xenstored/core.c b/tools/xenstored/core.c
index e86d947be4..dc63c97658 100644
--- a/tools/xenstored/core.c
+++ b/tools/xenstored/core.c
@@ -2614,10 +2614,9 @@ static void set_timeout(const char *arg)
 		barf("unknown timeout \"%s\"\n", arg);
 }
 
-static void set_quota(const char *arg, bool soft)
+static void set_quota(const char *arg, unsigned int idx)
 {
 	const char *eq = strchr(arg, '=');
-	struct quota *q = soft ? soft_quotas : hard_quotas;
 	unsigned int val;
 	unsigned int i;
 
@@ -2626,8 +2625,9 @@ static void set_quota(const char *arg, bool soft)
 	val = get_optval_uint(eq + 1);
 
 	for (i = 0; i < ACC_N; i++) {
-		if (what_matches(arg, q[i].name)) {
-			q[i].val = val;
+		if (what_matches(arg, quota_adm[i].name) &&
+		    quotas[i].val[idx] != Q_VAL_DISABLED) {
+			quotas[i].val[idx] = val;
 			return;
 		}
 	}
@@ -2635,6 +2635,11 @@ static void set_quota(const char *arg, bool soft)
 	barf("unknown quota \"%s\"\n", arg);
 }
 
+static void set_one_quota(const char *arg, unsigned int idx, enum accitem what)
+{
+	quotas[what].val[idx] = get_optval_uint(arg);
+}
+
 /* Sorted by bit values of TRACE_* flags. Flag is (1u << index). */
 const char *const trace_switches[] = {
 	"obj", "io", "wrl", "acc", "tdb",
@@ -2688,7 +2693,7 @@ int main(int argc, char *argv[])
 				  options, NULL)) != -1) {
 		switch (opt) {
 		case 'E':
-			hard_quotas[ACC_NODES].val = get_optval_uint(optarg);
+			set_one_quota(optarg, Q_IDX_HARD, ACC_NODES);
 			break;
 		case 'F':
 			pidfile = optarg;
@@ -2700,10 +2705,10 @@ int main(int argc, char *argv[])
 			dofork = false;
 			break;
 		case 'S':
-			hard_quotas[ACC_NODESZ].val = get_optval_uint(optarg);
+			set_one_quota(optarg, Q_IDX_HARD, ACC_NODESZ);
 			break;
 		case 't':
-			hard_quotas[ACC_TRANS].val = get_optval_uint(optarg);
+			set_one_quota(optarg, Q_IDX_HARD, ACC_TRANS);
 			break;
 		case 'T':
 			tracefile = optarg;
@@ -2716,22 +2721,22 @@ int main(int argc, char *argv[])
 			keep_orphans = true;
 			break;
 		case 'W':
-			hard_quotas[ACC_WATCH].val = get_optval_uint(optarg);
+			set_one_quota(optarg, Q_IDX_HARD, ACC_WATCH);
 			break;
 		case 'A':
-			hard_quotas[ACC_NPERM].val = get_optval_uint(optarg);
+			set_one_quota(optarg, Q_IDX_HARD, ACC_NPERM);
 			break;
 		case 'M':
-			hard_quotas[ACC_PATHLEN].val = get_optval_uint(optarg);
-			hard_quotas[ACC_PATHLEN].val =
+			set_one_quota(optarg, Q_IDX_HARD, ACC_PATHLEN);
+			quotas[ACC_PATHLEN].val[Q_IDX_HARD] =
 				 min((unsigned int)XENSTORE_REL_PATH_MAX,
-				     hard_quotas[ACC_PATHLEN].val);
+				     quotas[ACC_PATHLEN].val[Q_IDX_HARD]);
 			break;
 		case 'Q':
-			set_quota(optarg, false);
+			set_quota(optarg, Q_IDX_HARD);
 			break;
 		case 'q':
-			set_quota(optarg, true);
+			set_quota(optarg, Q_IDX_SOFT);
 			break;
 		case 'w':
 			set_timeout(optarg);
diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index 21f6f13f83..4e696a81a8 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -51,60 +51,60 @@ static evtchn_port_t virq_port;
 
 xenevtchn_handle *xce_handle = NULL;
 
-struct quota hard_quotas[ACC_N] = {
+struct quotaadm quota_adm[ACC_N] = {
 	[ACC_NODES] = {
 		.name = "nodes",
 		.descr = "Nodes per domain",
-		.val = 1000,
 	},
 	[ACC_WATCH] = {
 		.name = "watches",
 		.descr = "Watches per domain",
-		.val = 128,
 	},
 	[ACC_OUTST] = {
 		.name = "outstanding",
 		.descr = "Outstanding requests per domain",
-		.val = 20,
 	},
 	[ACC_MEM] = {
 		.name = "memory",
-		.descr = "Total Xenstore memory per domain (error level)",
-		.val = 2 * 1024 * 1024 + 512 * 1024,	/* 2.5 MB */
+		.descr = "Total Xenstore memory per domain",
 	},
 	[ACC_TRANS] = {
 		.name = "transactions",
 		.descr = "Active transactions per domain",
-		.val = 10,
 	},
 	[ACC_TRANSNODES] = {
 		.name = "transaction-nodes",
 		.descr = "Max. number of accessed nodes per transaction",
-		.val = 1024,
 	},
 	[ACC_NPERM] = {
 		.name = "node-permissions",
 		.descr = "Max. number of permissions per node",
-		.val = 5,
 	},
 	[ACC_PATHLEN] = {
 		.name = "path-max",
 		.descr = "Max. length of a node path",
-		.val = XENSTORE_REL_PATH_MAX,
 	},
 	[ACC_NODESZ] = {
 		.name = "node-size",
 		.descr = "Max. size of a node",
-		.val = 2048,
 	},
 };
 
-struct quota soft_quotas[ACC_N] = {
-	[ACC_MEM] = {
-		.name = "memory",
-		.descr = "Total Xenstore memory per domain (warning level)",
-		.val = 2 * 1024 * 1024,			/* 2.0 MB */
+struct quota quotas[ACC_N] = {
+	[ACC_NODES] =      { .val = { 1000, Q_VAL_DISABLED }, },
+	[ACC_WATCH] =      { .val = {  128, Q_VAL_DISABLED }, },
+	[ACC_OUTST] =      { .val = {   20, Q_VAL_DISABLED }, },
+	[ACC_MEM] =        {
+		.val = { 2 * 1024 * 1024 + 512 * 1024,	/* 2.5 MB */
+			 2 * 1024 * 1024		/* 2.0 MB */ },
 	},
+	[ACC_TRANS] =      { .val = {   10, Q_VAL_DISABLED }, },
+	[ACC_TRANSNODES] = { .val = { 1024, Q_VAL_DISABLED }, },
+	[ACC_NPERM] =      { .val = {    5, Q_VAL_DISABLED }, },
+	[ACC_PATHLEN] =    {
+		.val = { XENSTORE_REL_PATH_MAX, Q_VAL_DISABLED },
+	},
+	[ACC_NODESZ] =     { .val = { 2048, Q_VAL_DISABLED }, },
 };
 
 typedef int32_t wrl_creditt;
@@ -389,10 +389,15 @@ void wrl_apply_debit_trans_commit(struct connection *conn)
 	wrl_apply_debit_actual(conn->domain);
 }
 
+static unsigned int domain_get_soft_quota(struct domain *d, enum accitem what)
+{
+	return quotas[what].val[Q_IDX_SOFT];
+}
+
 static bool domain_quota_val_exceeds(struct domain *d, enum accitem what,
 				     unsigned int val)
 {
-	unsigned int quota = hard_quotas[what].val;
+	unsigned int quota = quotas[what].val[Q_IDX_HARD];
 
 	if (!quota || !domid_is_unprivileged(d->domid))
 		return false;
@@ -777,10 +782,10 @@ int domain_get_quota(const void *ctx, struct connection *conn,
 		return ENOMEM;
 
 	for (i = 0; i < ACC_N; i++) {
-		if (!hard_quotas[i].name)
+		if (!quota_adm[i].name)
 			continue;
 		resp = talloc_asprintf_append(resp, "%-17s: %8u (max %8u)\n",
-					      hard_quotas[i].name,
+					      quota_adm[i].name,
 					      d->acc[i].val, d->acc[i].max);
 		if (!resp)
 			return ENOMEM;
@@ -801,11 +806,10 @@ int domain_max_global_acc(const void *ctx, struct connection *conn)
 		return ENOMEM;
 
 	for (i = 0; i < ACC_N; i++) {
-		if (!hard_quotas[i].name)
+		if (!quota_adm[i].name)
 			continue;
 		resp = talloc_asprintf_append(resp, "%-17s: %8u\n",
-					      hard_quotas[i].name,
-					      hard_quotas[i].max);
+					      quota_adm[i].name, quotas[i].max);
 		if (!resp)
 			return ENOMEM;
 	}
@@ -1631,12 +1635,12 @@ static void domain_acc_valid_max(struct domain *d, enum accitem what,
 				 unsigned int val)
 {
 	assert(what < ARRAY_SIZE(d->acc));
-	assert(what < ARRAY_SIZE(hard_quotas));
+	assert(what < ARRAY_SIZE(quotas));
 
 	if (val > d->acc[what].max)
 		d->acc[what].max = val;
-	if (val > hard_quotas[what].max && domid_is_unprivileged(d->domid))
-		hard_quotas[what].max = val;
+	if (val > quotas[what].max && domid_is_unprivileged(d->domid))
+		quotas[what].max = val;
 }
 
 static int domain_acc_add_valid(struct domain *d, enum accitem what, int add)
@@ -1773,7 +1777,7 @@ void domain_reset_global_acc(void)
 	unsigned int i;
 
 	for (i = 0; i < ACC_N; i++)
-		hard_quotas[i].max = 0;
+		quotas[i].max = 0;
 
 	/* Set current max values seen. */
 	hashtable_iterate(domhash, domain_reset_global_acc_sub, NULL);
@@ -1833,21 +1837,22 @@ static bool domain_chk_quota(struct connection *conn, unsigned int mem)
 	}
 
 	if (now - domain->mem_last_msg >= MEM_WARN_MINTIME_SEC) {
+		unsigned int soft_mem = domain_get_soft_quota(domain, ACC_MEM);
+
 		if (domain->hard_quota_reported) {
 			domain->mem_last_msg = now;
 			domain->hard_quota_reported = false;
 			syslog(LOG_INFO, "Domain %u below hard memory quota again\n",
 			       domain->domid);
 		}
-		if (mem >= soft_quotas[ACC_MEM].val &&
-		    soft_quotas[ACC_MEM].val && !domain->soft_quota_reported) {
+		if (mem >= soft_mem && soft_mem &&
+		    !domain->soft_quota_reported) {
 			domain->mem_last_msg = now;
 			domain->soft_quota_reported = true;
 			syslog(LOG_WARNING, "Domain %u exceeds soft memory quota\n",
 			       domain->domid);
 		}
-		if (mem < soft_quotas[ACC_MEM].val &&
-		    domain->soft_quota_reported) {
+		if (mem < soft_mem && domain->soft_quota_reported) {
 			domain->mem_last_msg = now;
 			domain->soft_quota_reported = false;
 			syslog(LOG_INFO, "Domain %u below soft memory quota again\n",
diff --git a/tools/xenstored/domain.h b/tools/xenstored/domain.h
index 29b91fc783..3bedadb477 100644
--- a/tools/xenstored/domain.h
+++ b/tools/xenstored/domain.h
@@ -40,15 +40,18 @@ enum accitem {
 	ACC_N,			/* Number of elements per domain. */
 };
 
-struct quota {
+extern struct quotaadm {
 	const char *name;
 	const char *descr;
-	unsigned int val;
-	unsigned int max;
-};
+} quota_adm[ACC_N];
 
-extern struct quota hard_quotas[ACC_N];
-extern struct quota soft_quotas[ACC_N];
+extern struct quota {
+	unsigned int val[2];
+#define Q_IDX_HARD      0
+#define Q_IDX_SOFT      1
+#define Q_VAL_DISABLED  UINT_MAX
+	unsigned int max;
+} quotas[ACC_N];
 
 void handle_event(void);
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 15:01:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 15:01:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1258101.1552293 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bMH-0002qK-Kc; Fri, 20 Mar 2026 15:01:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1258101.1552293; Fri, 20 Mar 2026 15:01: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 1w3bMH-0002qD-FW; Fri, 20 Mar 2026 15:01:53 +0000
Received: by outflank-mailman (input) for mailman id 1258101;
 Fri, 20 Mar 2026 15:01: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=0BFG=BU=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w3bMG-0001Ve-Hz
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 15:01:52 +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 ba0c9fcd-246d-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 16:01: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-out1.suse.de (Postfix) with ESMTPS id 4C8894D282;
 Fri, 20 Mar 2026 15:01:49 +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 2D97042866;
 Fri, 20 Mar 2026 15:01:49 +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 3ycOCl1hvWnNXAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 20 Mar 2026 15:01:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ba0c9fcd-246d-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018909; 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=71OCtUN3V2d3sM2aEWOZPCVfbKJBQnPGkvk8gK9D9UI=;
	b=hrfUx7Dp4ipwlA33mKY5qH08RvtebywdI4DCPPaHvQ+JJamb6otSfLnmWe1Pt41+Qb/E6s
	X8U61R47Lprp+3UkgqpOdyyfwrZie9ceJdvZHYJwikYixRCFkk2LwWZaxOYFXRYjznHDgk
	mQ2v8zhL45x4hJzrAIgy57ImZ4vB9no=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=hrfUx7Dp
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018909; 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=71OCtUN3V2d3sM2aEWOZPCVfbKJBQnPGkvk8gK9D9UI=;
	b=hrfUx7Dp4ipwlA33mKY5qH08RvtebywdI4DCPPaHvQ+JJamb6otSfLnmWe1Pt41+Qb/E6s
	X8U61R47Lprp+3UkgqpOdyyfwrZie9ceJdvZHYJwikYixRCFkk2LwWZaxOYFXRYjznHDgk
	mQ2v8zhL45x4hJzrAIgy57ImZ4vB9no=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v2 05/12] tools/xenstored: add GLOBAL_QUOTA_DATA record for live update
Date: Fri, 20 Mar 2026 16:01:13 +0100
Message-ID: <20260320150120.874878-6-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260320150120.874878-1-jgross@suse.com>
References: <20260320150120.874878-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	ARC_NA(0.00)[];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	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)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	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:mid,suse.com:dkim,suse.com:email,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns];
	RCVD_TLS_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	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: 
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Rspamd-Queue-Id: 4C8894D282

Communicate the global quota settings via the GLOBAL_QUOTA_DATA
record to the new Xenstore instance.

This avoids to lose global quota settings done via xenstore-control.

In theory it would be possible to drop any quota related command line
parameters in the live update case, but they don't do any harm, as
the record data is applied on top of the command line data.

For soft-quota just prepend "soft-" to the quota name.

Use sub-functions for building and analyzing the quota part of the
migration stream, as they will be reused for per-domain quotas.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- add macros for soft-quota name prefix and its length (Anthony Perard)
- don't allow disabled quota in parse_quota_name() (Anthony Perard)
- rename "len" to "rec_len" in dump_state_glb_quota() (Anthony Perard)
- rename build_quota_data() parameter "name" to "names_buf" (Anthony Perard)
- let get_quota_size() start with len 0 (Anthony Perard)
---
 tools/xenstored/domain.c | 132 +++++++++++++++++++++++++++++++++++++++
 tools/xenstored/domain.h |   2 +
 tools/xenstored/lu.c     |   6 ++
 3 files changed, 140 insertions(+)

diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index 4e696a81a8..cfc8fd0cb4 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -107,6 +107,9 @@ struct quota quotas[ACC_N] = {
 	[ACC_NODESZ] =     { .val = { 2048, Q_VAL_DISABLED }, },
 };
 
+#define SOFT_PREFIX	"soft-"
+#define SOFT_PREFIX_LEN	(sizeof(SOFT_PREFIX) - 1)
+
 typedef int32_t wrl_creditt;
 
 struct domain
@@ -1363,6 +1366,29 @@ int do_set_feature(const void *ctx, struct connection *conn,
 	return 0;
 }
 
+static bool parse_quota_name(const char *name, unsigned int *qidx,
+			     unsigned int *idx)
+{
+	unsigned int q;
+
+	if (strncmp(name, SOFT_PREFIX, SOFT_PREFIX_LEN)) {
+		*idx = Q_IDX_HARD;
+	} else {
+		*idx = Q_IDX_SOFT;
+		name += SOFT_PREFIX_LEN;
+	}
+	for (q = 0; q < ACC_N; q++) {
+		if (quota_adm[q].name && !strcmp(quota_adm[q].name, name)) {
+			if (quotas[q].val[*idx] == Q_VAL_DISABLED)
+				return true;
+			*qidx = q;
+			return false;
+		}
+	}
+
+	return true;
+}
+
 static int close_xgt_handle(void *_handle)
 {
 	xengnttab_close(*(xengnttab_handle **)_handle);
@@ -2032,6 +2058,64 @@ void read_state_connection(const void *ctx, const void *state)
 	}
 }
 
+/* Returns number of quota and adds length of quota names to *len. */
+static unsigned int get_quota_size(struct quota *quota, unsigned int *len)
+{
+	unsigned int q;
+	unsigned int n = 0;
+
+	*len = 0;
+	for (q = 0; q < ACC_N; q++) {
+		if (!quota_adm[q].name)
+			continue;
+		if (quota[q].val[Q_IDX_HARD] != Q_VAL_DISABLED) {
+			n++;
+			*len += strlen(quota_adm[q].name) + 1;
+		}
+		if (quota[q].val[Q_IDX_SOFT] != Q_VAL_DISABLED) {
+			n++;
+			*len += strlen(quota_adm[q].name) + SOFT_PREFIX_LEN + 1;
+		}
+	}
+
+	return n;
+}
+
+static void build_quota_data(struct quota *quota, uint32_t *val,
+			     char *names_buf)
+{
+	unsigned int q;
+	unsigned int n = 0;
+
+	for (q = 0; q < ACC_N; q++) {
+		if (!quota_adm[q].name)
+			continue;
+		if (quota[q].val[Q_IDX_HARD] != Q_VAL_DISABLED) {
+			val[n++] = quota[q].val[Q_IDX_HARD];
+			strcpy(names_buf, quota_adm[q].name);
+			names_buf += strlen(names_buf) + 1;
+		}
+		if (quota[q].val[Q_IDX_SOFT] != Q_VAL_DISABLED) {
+			val[n++] = quota[q].val[Q_IDX_SOFT];
+			strcpy(names_buf, SOFT_PREFIX);
+			strcpy(names_buf + SOFT_PREFIX_LEN, quota_adm[q].name);
+			names_buf += strlen(names_buf) + 1;
+		}
+	}
+}
+
+static void parse_quota_data(const uint32_t *val, const char *name,
+			     unsigned int n, struct quota *quota)
+{
+	unsigned int i, q, idx;
+
+	for (i = 0; i < n; i++) {
+		if (!parse_quota_name(name, &q, &idx))
+			quota[q].val[idx] = val[i];
+		name += strlen(name) + 1;
+	}
+}
+
 static int dump_state_domain(const void *k, void *v, void *arg)
 {
 	struct domain *domain = v;
@@ -2080,6 +2164,54 @@ void read_state_domain(const void *ctx, const void *state, unsigned int version)
 		domain->features = sd->features;
 }
 
+const char *dump_state_glb_quota(FILE *fp)
+{
+	struct xs_state_record_header *head;
+	struct xs_state_glb_quota *glb;
+	void *record;
+	unsigned int n_quota;
+	unsigned int rec_len;
+	size_t ret;
+
+	n_quota = get_quota_size(quotas, &rec_len);
+	rec_len += n_quota * sizeof(glb->quota_val[0]);
+	rec_len += sizeof(*glb);
+	rec_len = ROUNDUP(rec_len, 3);
+
+	record = talloc_size(NULL, rec_len + sizeof(*head));
+	if (!record)
+		return "Dump global quota allocation error";
+
+	head = record;
+	head->type = XS_STATE_TYPE_GLB_QUOTA;
+	head->length = rec_len;
+
+	glb = (struct xs_state_glb_quota *)(head + 1);
+	glb->n_dom_quota = n_quota;
+	glb->n_glob_quota = 0;
+
+	build_quota_data(quotas, glb->quota_val,
+			 (char *)(glb->quota_val + n_quota));
+
+	ret = fwrite(record, rec_len + sizeof(*head), 1, fp);
+
+	talloc_free(record);
+
+	if (ret != 1 || dump_state_align(fp))
+		return "Dump global quota error";
+
+	return NULL;
+}
+
+void read_state_glb_quota(const void *ctx, const void *state)
+{
+	const struct xs_state_glb_quota *glb = state;
+	unsigned int n_quota = glb->n_dom_quota + glb->n_glob_quota;
+	const char *name = (const char *)(glb->quota_val + n_quota);
+
+	parse_quota_data(glb->quota_val, name, n_quota, quotas);
+}
+
 struct domain_acc {
 	unsigned int domid;
 	int nodes;
diff --git a/tools/xenstored/domain.h b/tools/xenstored/domain.h
index 3bedadb477..8f23a82854 100644
--- a/tools/xenstored/domain.h
+++ b/tools/xenstored/domain.h
@@ -172,10 +172,12 @@ void wrl_apply_debit_trans_commit(struct connection *conn);
 
 const char *dump_state_connections(FILE *fp);
 const char *dump_state_domains(FILE *fp);
+const char *dump_state_glb_quota(FILE *fp);
 
 void read_state_connection(const void *ctx, const void *state);
 void read_state_domain(const void *ctx, const void *state,
 		       unsigned int version);
+void read_state_glb_quota(const void *ctx, const void *state);
 
 struct hashtable *domain_check_acc_init(void);
 void domain_check_acc_add(const struct node *node, struct hashtable *domains);
diff --git a/tools/xenstored/lu.c b/tools/xenstored/lu.c
index fa8395eb1e..eaffdbc69e 100644
--- a/tools/xenstored/lu.c
+++ b/tools/xenstored/lu.c
@@ -192,6 +192,9 @@ void lu_read_state(void)
 		case XS_STATE_TYPE_DOMAIN:
 			read_state_domain(ctx, state.buf, version);
 			break;
+		case XS_STATE_TYPE_GLB_QUOTA:
+			read_state_glb_quota(ctx, state.buf);
+			break;
 		default:
 			xprintf("live-update: unknown state record %08x\n",
 				head.type);
@@ -319,6 +322,9 @@ static const char *lu_dump_state(const void *ctx, struct connection *conn)
 	}
 
 	ret = dump_state_global(fp);
+	if (ret)
+		goto out;
+	ret = dump_state_glb_quota(fp);
 	if (ret)
 		goto out;
 	ret = dump_state_connections(fp);
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 15:01:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 15:01:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1258105.1552303 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bML-0003Ao-Sa; Fri, 20 Mar 2026 15:01:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1258105.1552303; Fri, 20 Mar 2026 15:01:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bML-0003Af-NV; Fri, 20 Mar 2026 15:01:57 +0000
Received: by outflank-mailman (input) for mailman id 1258105;
 Fri, 20 Mar 2026 15:01: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=0BFG=BU=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w3bMK-0001Ve-Sz
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 15:01:56 +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 bcaca997-246d-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 16:01:56 +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 B637D4D27B;
 Fri, 20 Mar 2026 15:01: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 948E942866;
 Fri, 20 Mar 2026 15:01: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 8GkuI2JhvWnZXAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 20 Mar 2026 15:01: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: bcaca997-246d-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018915; 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=JqiRC8vY/BabN/ScKXSBNzHtV8BG2Sr2nwnaVeRBWB4=;
	b=E1bB3zzQ9LYXvcwwL0yv+0OWTBTjjskmRHpH6qF5xj5O5qhY/gb4Q2tcMsWo9j1nuyBDi7
	eNHLAnucRw6g7JGjPdY4UKH8OkVF5KhzpMwrxQiacPIGifBOgLCwEg/2y1QQNKRRnlUb/r
	/2HkFi1LzV0RO49bRHNiKF1hJmg7Jj0=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=KM6joA7O
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018914; 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=JqiRC8vY/BabN/ScKXSBNzHtV8BG2Sr2nwnaVeRBWB4=;
	b=KM6joA7OitlDGMXG+C0o6AK8mDsKWfk11xwGvlgM06RWH2LQPnNPKROxxOXc48wgvngYYL
	zo5aHOUYFOjX6pq/iaYDjtOYQZmBqo8piUcz3nocJHpEMHcFLR0KOvpB8IhM+o/HAnf7cy
	UMKop0m7iI4zoeztaaHUOzo1Qh09MWA=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v2 06/12] tools/xenstored: split acc[] array in struct domain
Date: Fri, 20 Mar 2026 16:01:14 +0100
Message-ID: <20260320150120.874878-7-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260320150120.874878-1-jgross@suse.com>
References: <20260320150120.874878-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[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)[vates.tech:email,suse.com:dkim,suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns];
	RCVD_TLS_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	DKIM_TRACE(0.00)[suse.com:+]
X-Rspamd-Queue-Id: B637D4D27B
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Spam-Level: 

Prepare using per-domain quota by splitting the acc[] array in struct
domain into an array with the current accounting data, and an array
of type struct quota for the per-domain quota and the seen max value
of the domain.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
---
 tools/xenstored/domain.c | 34 ++++++++++++++++------------------
 1 file changed, 16 insertions(+), 18 deletions(-)

diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index cfc8fd0cb4..b82f2d5167 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -143,10 +143,8 @@ struct domain
 	bool introduced;
 
 	/* Accounting data for this domain. */
-	struct acc {
-		unsigned int val;
-		unsigned int max;
-	} acc[ACC_N];
+	unsigned int acc_val[ACC_N];
+	struct quota acc[ACC_N];
 
 	/* Memory quota data for this domain. */
 	bool soft_quota_reported;
@@ -413,7 +411,7 @@ bool domain_quota_add_exceeds(struct domain *d, enum accitem what, int add)
 	if (add < 0 || !d)
 		return false;
 
-	return domain_quota_val_exceeds(d, what, d->acc[what].val + add);
+	return domain_quota_val_exceeds(d, what, d->acc_val[what] + add);
 }
 
 static bool check_indexes(XENSTORE_RING_IDX cons, XENSTORE_RING_IDX prod)
@@ -585,7 +583,7 @@ static int domain_tree_remove_sub(const void *ctx, struct connection *conn,
 		ret = WALK_TREE_SKIP_CHILDREN;
 	}
 
-	return domain->acc[ACC_NODES].val ? ret : WALK_TREE_SUCCESS_STOP;
+	return domain->acc_val[ACC_NODES] ? ret : WALK_TREE_SUCCESS_STOP;
 }
 
 static void domain_tree_remove(struct domain *domain)
@@ -593,7 +591,7 @@ static void domain_tree_remove(struct domain *domain)
 	int ret;
 	struct walk_funcs walkfuncs = { .enter = domain_tree_remove_sub };
 
-	if (domain->acc[ACC_NODES].val) {
+	if (domain->acc_val[ACC_NODES]) {
 		ret = walk_node_tree(domain, NULL, "/", &walkfuncs, domain);
 		if (ret == WALK_TREE_ERROR_STOP)
 			syslog(LOG_ERR,
@@ -789,7 +787,7 @@ int domain_get_quota(const void *ctx, struct connection *conn,
 			continue;
 		resp = talloc_asprintf_append(resp, "%-17s: %8u (max %8u)\n",
 					      quota_adm[i].name,
-					      d->acc[i].val, d->acc[i].max);
+					      d->acc_val[i], d->acc[i].max);
 		if (!resp)
 			return ENOMEM;
 	}
@@ -1673,10 +1671,10 @@ static int domain_acc_add_valid(struct domain *d, enum accitem what, int add)
 {
 	unsigned int val;
 
-	assert(what < ARRAY_SIZE(d->acc));
+	assert(what < ARRAY_SIZE(d->acc_val));
 
-	if ((add < 0 && -add > d->acc[what].val) ||
-	    (add > 0 && (INT_MAX - d->acc[what].val) < add)) {
+	if ((add < 0 && -add > d->acc_val[what]) ||
+	    (add > 0 && (INT_MAX - d->acc_val[what]) < add)) {
 		/*
 		 * In a transaction when a node is being added/removed AND the
 		 * same node has been added/removed outside the transaction in
@@ -1687,7 +1685,7 @@ static int domain_acc_add_valid(struct domain *d, enum accitem what, int add)
 		return (add < 0) ? 0 : INT_MAX;
 	}
 
-	val = d->acc[what].val + add;
+	val = d->acc_val[what] + add;
 	domain_acc_valid_max(d, what, val);
 
 	return val;
@@ -1746,10 +1744,10 @@ static int domain_acc_add(struct connection *conn, unsigned int domid,
 	}
 
 	trace_acc("global change domid %u: what=%u %u add %d\n", domid, what,
-		  d->acc[what].val, add);
-	d->acc[what].val = domain_acc_add_valid(d, what, add);
+		  d->acc_val[what], add);
+	d->acc_val[what] = domain_acc_add_valid(d, what, add);
 
-	return d->acc[what].val;
+	return d->acc_val[what];
 }
 
 void acc_drop(struct connection *conn)
@@ -1793,7 +1791,7 @@ static int domain_reset_global_acc_sub(const void *k, void *v, void *arg)
 	unsigned int i;
 
 	for (i = 0; i < ACC_N; i++)
-		d->acc[i].max = d->acc[i].val;
+		d->acc[i].max = d->acc_val[i];
 
 	return 0;
 }
@@ -2233,7 +2231,7 @@ static int domain_check_acc_init_sub(const void *k, void *v, void *arg)
 	 * If everything is correct incrementing the value for each node will
 	 * result in dom->nodes being 0 at the end.
 	 */
-	dom->nodes = -d->acc[ACC_NODES].val;
+	dom->nodes = -d->acc_val[ACC_NODES];
 
 	if (hashtable_add(domains, &dom->domid, dom)) {
 		talloc_free(dom);
@@ -2288,7 +2286,7 @@ static int domain_check_acc_cb(const void *k, void *v, void *arg)
 	if (!d)
 		return 0;
 
-	d->acc[ACC_NODES].val += dom->nodes;
+	d->acc_val[ACC_NODES] += dom->nodes;
 
 	return 0;
 }
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 15:02:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 15:02:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1258112.1552311 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bMW-0003iU-84; Fri, 20 Mar 2026 15:02:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1258112.1552311; Fri, 20 Mar 2026 15:02:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bMW-0003iI-4c; Fri, 20 Mar 2026 15:02:08 +0000
Received: by outflank-mailman (input) for mailman id 1258112;
 Fri, 20 Mar 2026 15:02:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0BFG=BU=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w3bMU-0001ko-8s
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 15:02:06 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c0859742-246d-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Mar 2026 16:02:02 +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 2D76A4D27B;
 Fri, 20 Mar 2026 15:02: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 0D3EF42866;
 Fri, 20 Mar 2026 15:02:00 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id /qksAmhhvWneXAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 20 Mar 2026 15:02: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: c0859742-246d-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018922; 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=R+PpHjFLzvQIrf2KVCkmF/XhxpN/XcwoIQUr9KmYFoI=;
	b=KOvbaB3/47LkpwEa0g8TBdgM8H2CK5iLpCFU8NDRvvyvpRfg2v20GO5UNslIn6e9Lvstuf
	DAWr2KkK3AF+mWQCKrpeSwLh3haqLt3IzsJzVAugaAIokFFn1bSUme1PZhyqYwCc3ztbFy
	kMuQPWkbBw6JjeVnkFv/XLqwTgJcTIE=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018920; 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=R+PpHjFLzvQIrf2KVCkmF/XhxpN/XcwoIQUr9KmYFoI=;
	b=EUb/g56efp1Yf5qeMEHjfrDKfGpmopQp0grGgajiCZG26XH05kKKOZaUZZD73DCEFfiqyi
	oAg7v+SU6ez7b7U3XkFtw0Ie1eNQLUieFrJu97ix/SzZGnjT7wTAAy49ND/WvKCrOtGQwh
	m4oZuXitluJ0EXPZVM2wbufGDBf1hgA=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v2 07/12] tools/xenstored: use per-domain quota settings
Date: Fri, 20 Mar 2026 16:01:15 +0100
Message-ID: <20260320150120.874878-8-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260320150120.874878-1-jgross@suse.com>
References: <20260320150120.874878-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.80
X-Spam-Level: 
X-Spamd-Result: default: False [-2.80 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-0.999];
	MIME_GOOD(-0.10)[text/plain];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	MIME_TRACE(0.00)[0:+];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	ARC_NA(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCVD_TLS_ALL(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.com:mid,suse.com:email,vates.tech:email]
X-Spam-Flag: NO

Initialize the per-domain quota values with the global ones at domain
introduction. Use the per-domain quota settings when checking for
current values to exceed the quota.

Add per-domain quota support to live update.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
---
V2:
- fix commit message (Anthony Perard)
- rename "len" to "rec_len" in dump_state_domain() (Anthony Perard)
---
 tools/xenstored/domain.c | 60 ++++++++++++++++++++++++++++++----------
 1 file changed, 45 insertions(+), 15 deletions(-)

diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index b82f2d5167..7a8d285e64 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -392,6 +392,9 @@ void wrl_apply_debit_trans_commit(struct connection *conn)
 
 static unsigned int domain_get_soft_quota(struct domain *d, enum accitem what)
 {
+	if (d && d->acc[what].val[Q_IDX_SOFT] != Q_VAL_DISABLED)
+		return d->acc[what].val[Q_IDX_SOFT];
+
 	return quotas[what].val[Q_IDX_SOFT];
 }
 
@@ -400,6 +403,9 @@ static bool domain_quota_val_exceeds(struct domain *d, enum accitem what,
 {
 	unsigned int quota = quotas[what].val[Q_IDX_HARD];
 
+	if (d->acc[what].val[Q_IDX_HARD] != Q_VAL_DISABLED)
+		quota = d->acc[what].val[Q_IDX_HARD];
+
 	if (!quota || !domid_is_unprivileged(d->domid))
 		return false;
 
@@ -824,6 +830,7 @@ static struct domain *alloc_domain(const void *context, unsigned int domid,
 				   uint64_t unique_id)
 {
 	struct domain *domain;
+	unsigned int q;
 
 	domain = talloc_zero(context, struct domain);
 	if (!domain) {
@@ -837,6 +844,11 @@ static struct domain *alloc_domain(const void *context, unsigned int domid,
 	domain->introduced = false;
 	domain->features = XENSTORE_FEATURES;
 
+	for (q = 0; q < ACC_N; q++) {
+		domain->acc[q].val[Q_IDX_HARD] = quotas[q].val[Q_IDX_HARD];
+		domain->acc[q].val[Q_IDX_SOFT] = quotas[q].val[Q_IDX_SOFT];
+	}
+
 	if (hashtable_add(domhash, &domain->domid, domain)) {
 		talloc_free(domain);
 		errno = ENOMEM;
@@ -2118,25 +2130,39 @@ static int dump_state_domain(const void *k, void *v, void *arg)
 {
 	struct domain *domain = v;
 	FILE *fp = arg;
-	struct xs_state_domain sd;
-	struct xs_state_record_header head;
-
-	head.type = XS_STATE_TYPE_DOMAIN;
-	head.length = sizeof(sd);
-	memset(&sd, 0, sizeof(sd));
-	sd.domain_id = domain->domid;
+	struct xs_state_domain *sd;
+	struct xs_state_record_header *head;
+	void *record;
+	unsigned int n_quota;
+	unsigned int rec_len;
+	size_t ret;
 
-	if (lu_status->version > 1)
-		sd.features = domain->features;
+	n_quota = get_quota_size(domain->acc, &rec_len);
+	rec_len += n_quota * sizeof(sd->quota_val[0]);
+	rec_len += sizeof(*sd);
+	rec_len = ROUNDUP(rec_len, 3);
 
-	if (fwrite(&head, sizeof(head), 1, fp) != 1)
-		return 1;
-	if (fwrite(&sd, sizeof(sd), 1, fp) != 1)
-		return 1;
-	if (dump_state_align(fp))
+	record = talloc_size(NULL, rec_len + sizeof(*head));
+	if (!record)
 		return 1;
 
-	return 0;
+	head = record;
+	head->type = XS_STATE_TYPE_DOMAIN;
+	head->length = rec_len;
+
+	sd = (struct xs_state_domain *)(head + 1);
+	sd->domain_id = domain->domid;
+	sd->n_quota = n_quota;
+	sd->features = (lu_status->version > 1) ? domain->features : 0;
+
+	build_quota_data(domain->acc, sd->quota_val,
+			 (char *)(sd->quota_val + n_quota));
+
+	ret = fwrite(record, rec_len + sizeof(*head), 1, fp);
+
+	talloc_free(record);
+
+	return (ret != 1 || dump_state_align(fp)) ? 1 : 0;
 }
 
 const char *dump_state_domains(FILE *fp)
@@ -2153,6 +2179,8 @@ void read_state_domain(const void *ctx, const void *state, unsigned int version)
 {
 	const struct xs_state_domain *sd = state;
 	struct domain *domain;
+	unsigned int n_quota = sd->n_quota;
+	const char *name = (const char *)(sd->quota_val + n_quota);
 
 	domain = find_domain_struct(sd->domain_id);
 	if (!domain)
@@ -2160,6 +2188,8 @@ void read_state_domain(const void *ctx, const void *state, unsigned int version)
 
 	if (version > 1)
 		domain->features = sd->features;
+
+	parse_quota_data(sd->quota_val, name, n_quota, domain->acc);
 }
 
 const char *dump_state_glb_quota(FILE *fp)
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 15:02:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 15:02:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1258124.1552320 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bMi-0004S7-Ep; Fri, 20 Mar 2026 15:02:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1258124.1552320; Fri, 20 Mar 2026 15:02:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bMi-0004S0-BE; Fri, 20 Mar 2026 15:02:20 +0000
Received: by outflank-mailman (input) for mailman id 1258124;
 Fri, 20 Mar 2026 15:02: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=0BFG=BU=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w3bMg-0001ko-D6
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 15:02:18 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c8f1a9c6-246d-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Mar 2026 16:02:16 +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 7BC415BDF9;
 Fri, 20 Mar 2026 15:02:16 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 540EA42867;
 Fri, 20 Mar 2026 15:02:16 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id eE1xE3hhvWnzXAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 20 Mar 2026 15:02:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c8f1a9c6-246d-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018936; 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=N+38mOISGDZ5p4EBE7e3hZ5SrJSwJQ9+PpMenks7NFU=;
	b=eOEZ7i0/vDm7ZasHeLy0eMGD0xP3Vlot+jn1kIxaqnsrwe9aFsE1uxoMF8jJqyp7R/a8hi
	5XFyKGc5DLC6vr0OmsvGBF8nE/doqRngS9Y8+BYk1dsW3JPgcESvGB4PnthEuKlVZtR17l
	nsC49HzgrskYg1HJ3k4ZaY8dzhrFEBk=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018936; 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=N+38mOISGDZ5p4EBE7e3hZ5SrJSwJQ9+PpMenks7NFU=;
	b=eOEZ7i0/vDm7ZasHeLy0eMGD0xP3Vlot+jn1kIxaqnsrwe9aFsE1uxoMF8jJqyp7R/a8hi
	5XFyKGc5DLC6vr0OmsvGBF8nE/doqRngS9Y8+BYk1dsW3JPgcESvGB4PnthEuKlVZtR17l
	nsC49HzgrskYg1HJ3k4ZaY8dzhrFEBk=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Nick Rosbrook <enr0n@ubuntu.com>,
	George Dunlap <gwd@xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v2 10/12] tools/libxl: add support for xenstore quota in domain_config
Date: Fri, 20 Mar 2026 16:01:18 +0100
Message-ID: <20260320150120.874878-11-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260320150120.874878-1-jgross@suse.com>
References: <20260320150120.874878-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)[imap1.dmz-prg2.suse.org:helo,suse.com:mid,suse.com:email];
	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_FIVE(0.00)[5];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -2.80
X-Spam-Level: 

Add support for xenstore quota in the struct domain_config. Initially
it will be used only for migration of a domain.

Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Nick Rosbrook <enr0n@ubuntu.com> # golang stuff
---
V2:
- use LOGED() for error logging (Anthony Perard)
- mention additional struct member xenstore_quota in libxl.h
  (Anthony Perard)
---
 tools/golang/xenlight/helpers.gen.go |  6 ++++++
 tools/golang/xenlight/types.gen.go   |  1 +
 tools/include/libxl.h                |  1 +
 tools/libs/light/libxl_dom.c         |  8 ++++++++
 tools/libs/light/libxl_domain.c      | 11 +++++++++++
 tools/libs/light/libxl_types.idl     |  1 +
 6 files changed, 28 insertions(+)

diff --git a/tools/golang/xenlight/helpers.gen.go b/tools/golang/xenlight/helpers.gen.go
index 767b9e45f5..b0c09da910 100644
--- a/tools/golang/xenlight/helpers.gen.go
+++ b/tools/golang/xenlight/helpers.gen.go
@@ -1286,6 +1286,9 @@ if err := x.TrapUnmappedAccesses.fromC(&xc.trap_unmapped_accesses);err != nil {
 return fmt.Errorf("converting field TrapUnmappedAccesses: %v", err)
 }
 x.XenstoreFeatureMask = uint32(xc.xenstore_feature_mask)
+if err := x.XenstoreQuota.fromC(&xc.xenstore_quota);err != nil {
+return fmt.Errorf("converting field XenstoreQuota: %v", err)
+}
 
  return nil}
 
@@ -1825,6 +1828,9 @@ if err := x.TrapUnmappedAccesses.toC(&xc.trap_unmapped_accesses); err != nil {
 return fmt.Errorf("converting field TrapUnmappedAccesses: %v", err)
 }
 xc.xenstore_feature_mask = C.uint32_t(x.XenstoreFeatureMask)
+if err := x.XenstoreQuota.toC(&xc.xenstore_quota); err != nil {
+return fmt.Errorf("converting field XenstoreQuota: %v", err)
+}
 
  return nil
  }
diff --git a/tools/golang/xenlight/types.gen.go b/tools/golang/xenlight/types.gen.go
index 8dd610919d..e0fd78ec03 100644
--- a/tools/golang/xenlight/types.gen.go
+++ b/tools/golang/xenlight/types.gen.go
@@ -629,6 +629,7 @@ VmtraceBufKb int
 Vpmu Defbool
 TrapUnmappedAccesses Defbool
 XenstoreFeatureMask uint32
+XenstoreQuota XsQuotaList
 }
 
 type DomainBuildInfoTypeUnion interface {
diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index 6d2910df34..80e3ec8de9 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -1545,6 +1545,7 @@ void libxl_mac_copy(libxl_ctx *ctx, libxl_mac *dst, const libxl_mac *src);
  * libxl_xs_quota_global_set()
  * libxl_xs_quota_domain_get()
  * libxl_xs_quota_domain_set()
+ * and the xenstore_quota member of struct domain_build_info
  * are available.
  */
 #define LIBXL_HAVE_XENSTORE_QUOTA
diff --git a/tools/libs/light/libxl_dom.c b/tools/libs/light/libxl_dom.c
index 05ebc69534..4ff5f65f6f 100644
--- a/tools/libs/light/libxl_dom.c
+++ b/tools/libs/light/libxl_dom.c
@@ -509,6 +509,14 @@ retry_transaction:
 
     xs_introduce_domain(ctx->xsh, domid, state->store_mfn, state->store_port);
 
+    if (info->xenstore_quota.num_quota) {
+        rc = libxl_xs_quota_domain_set(ctx, domid, &info->xenstore_quota);
+        if (rc) {
+            LOGED(ERROR, domid, "Failed to set Xenstore quota");
+            goto out;
+        }
+    }
+
  out:
     free(vm_path);
     return rc;
diff --git a/tools/libs/light/libxl_domain.c b/tools/libs/light/libxl_domain.c
index 5be47f687f..37fcd92871 100644
--- a/tools/libs/light/libxl_domain.c
+++ b/tools/libs/light/libxl_domain.c
@@ -2533,6 +2533,17 @@ static void retrieve_domain_configuration_end(libxl__egc *egc,
         }
     }
 
+    /* Xenstore quota */
+    {
+        libxl_xs_quota_list_dispose(&d_config->b_info.xenstore_quota);
+        rc = libxl_xs_quota_domain_get(CTX, domid,
+                                       &d_config->b_info.xenstore_quota);
+        if (rc) {
+            LOGED(ERROR, domid, "Fail to get xenstore quota");
+            goto out;
+        }
+    }
+
     /* Devices: disk, nic, vtpm, pcidev etc. */
 
     /* The MERGE macro implements following logic:
diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
index 1a63c8af76..a7893460f0 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -760,6 +760,7 @@ libxl_domain_build_info = Struct("domain_build_info",[
     ("vpmu", libxl_defbool),
     ("trap_unmapped_accesses", libxl_defbool),
     ("xenstore_feature_mask", uint32, {'init_val': '~0U'}),
+    ("xenstore_quota", libxl_xs_quota_list),
 
     ], dir=DIR_IN,
        copy_deprecated_fn="libxl__domain_build_info_copy_deprecated",
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 15:07:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 15:07:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1258162.1552329 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bRi-0006HZ-Vl; Fri, 20 Mar 2026 15:07:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1258162.1552329; Fri, 20 Mar 2026 15:07:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bRi-0006HS-SG; Fri, 20 Mar 2026 15:07:30 +0000
Received: by outflank-mailman (input) for mailman id 1258162;
 Fri, 20 Mar 2026 15:07:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0BFG=BU=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w3bMp-0001Ve-V4
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 15:02:27 +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 cf05fdfb-246d-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 16:02:27 +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 DE87E5BDF3;
 Fri, 20 Mar 2026 15:02:21 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id C33BD42866;
 Fri, 20 Mar 2026 15:02:21 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id N6GULn1hvWn5XAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 20 Mar 2026 15:02:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cf05fdfb-246d-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018941; 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=YI1ysKQoZ4KtpQt8LrU0cY4zBTnFx8A/2d0JHjXzvmY=;
	b=SIE3Wn8GWPLkL9ArQd8k4xcqVXtvyUsC2IkfepOHPe3I3rKZtGMsmHG6B9yu0xjw0RyeQr
	mfYgGNQxegMu9/XhiXVoRKzsZRkfe7bLLJujp0WxofqDGqfHkPLJ6mHrfnAeWGscJqxhWu
	EERxJRtFRBcFZeoYHKAnNDfVcoozdcM=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018941; 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=YI1ysKQoZ4KtpQt8LrU0cY4zBTnFx8A/2d0JHjXzvmY=;
	b=SIE3Wn8GWPLkL9ArQd8k4xcqVXtvyUsC2IkfepOHPe3I3rKZtGMsmHG6B9yu0xjw0RyeQr
	mfYgGNQxegMu9/XhiXVoRKzsZRkfe7bLLJujp0WxofqDGqfHkPLJ6mHrfnAeWGscJqxhWu
	EERxJRtFRBcFZeoYHKAnNDfVcoozdcM=
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 11/12] tools/xl: add xl commands for xenstore quota operations
Date: Fri, 20 Mar 2026 16:01:19 +0100
Message-ID: <20260320150120.874878-12-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260320150120.874878-1-jgross@suse.com>
References: <20260320150120.874878-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.80
X-Spam-Level: 
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,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

Add "xl xenstore-quota-get" and "xl xenstore-quota-set" commands for
retrieving and setting global and per-domain Xenstore quota.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- s/quota data/quotas/ in cmdtable (Anthony Perard)
- test for quota value to fit into type (Anthony Perard)
- use libxl_xs_quota_list_init() (Anthony Perard)
- use xcalloc() (Anthony Perard)
---
 tools/xl/Makefile      |  1 +
 tools/xl/xl.h          |  2 +
 tools/xl/xl_cmdtable.c | 10 +++++
 tools/xl/xl_parse.c    | 28 +++++++++++++
 tools/xl/xl_parse.h    |  1 +
 tools/xl/xl_xsquota.c  | 90 ++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 132 insertions(+)
 create mode 100644 tools/xl/xl_xsquota.c

diff --git a/tools/xl/Makefile b/tools/xl/Makefile
index 973ff0e1a2..e4eed8be13 100644
--- a/tools/xl/Makefile
+++ b/tools/xl/Makefile
@@ -24,6 +24,7 @@ XL_OBJS += xl_sched.o xl_pci.o xl_vcpu.o xl_cdrom.o xl_mem.o
 XL_OBJS += xl_info.o xl_console.o xl_misc.o
 XL_OBJS += xl_vmcontrol.o xl_saverestore.o xl_migrate.o
 XL_OBJS += xl_vdispl.o xl_vsnd.o xl_vkb.o
+XL_OBJS += xl_xsquota.o
 
 $(XL_OBJS): CFLAGS += $(CFLAGS_libxentoollog)
 $(XL_OBJS): CFLAGS += $(CFLAGS_XL)
diff --git a/tools/xl/xl.h b/tools/xl/xl.h
index 9000df00de..0efc07a6ba 100644
--- a/tools/xl/xl.h
+++ b/tools/xl/xl.h
@@ -217,6 +217,8 @@ int main_psr_mba_set(int argc, char **argv);
 int main_psr_mba_show(int argc, char **argv);
 #endif
 int main_qemu_monitor_command(int argc, char **argv);
+int main_xsquota_get(int argc, char **argv);
+int main_xsquota_set(int argc, char **argv);
 
 void help(const char *command);
 
diff --git a/tools/xl/xl_cmdtable.c b/tools/xl/xl_cmdtable.c
index 06a0039718..5098f72ab4 100644
--- a/tools/xl/xl_cmdtable.c
+++ b/tools/xl/xl_cmdtable.c
@@ -649,6 +649,16 @@ const struct cmd_spec cmd_table[] = {
       "-h print this help\n"
     },
 #endif
+    { "xenstore-quota-get",
+      &main_xsquota_get, 0, 0,
+      "List global or domain specific Xenstore quotas",
+      "<Domain>|-g",
+    },
+    { "xenstore-quota-set",
+      &main_xsquota_set, 0, 1,
+      "Set global or domain specific Xenstore quotas",
+      "<Domain>|-g <quota>=<val>...",
+    },
 };
 
 const int cmdtable_len = ARRAY_SIZE(cmd_table);
diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index 1a2ea8b5d5..4b074fdb58 100644
--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -1314,6 +1314,34 @@ out:
     return ret;
 }
 
+int parse_xsquota_item(const char *buf, struct libxl_xs_quota_item *item)
+{
+    const char *eq;
+    char *endptr;
+    unsigned long val;
+
+    eq = strchr(buf, '=');
+    if (!eq) {
+        fprintf(stderr, "Quota specification \"%s\" lacks \"=\".\n", buf);
+        return ERROR_INVAL;
+    }
+    errno = 0;
+    item->name = strndup(buf, eq - buf);
+    if (!item->name)
+        return ERROR_NOMEM;
+    val = strtoul(eq + 1, &endptr, 0);
+    if (errno || !eq[1] || *endptr || (unsigned int)val != val) {
+        fprintf(stderr,
+                "Quota specification \"%s\" uses illegal value \"%s\".\n",
+                buf, eq + 1);
+        return ERROR_INVAL;
+    }
+
+    item->val = val;
+
+    return 0;
+}
+
 void parse_config_data(const char *config_source,
                        const char *config_data,
                        int config_len,
diff --git a/tools/xl/xl_parse.h b/tools/xl/xl_parse.h
index fe0d586cdd..57bb43a067 100644
--- a/tools/xl/xl_parse.h
+++ b/tools/xl/xl_parse.h
@@ -36,6 +36,7 @@ int parse_nic_config(libxl_device_nic *nic, XLU_Config **config, char *token);
 int parse_vdispl_config(libxl_device_vdispl *vdispl, char *token);
 int parse_vsnd_item(libxl_device_vsnd *vsnd, const char *spec);
 int parse_vkb_config(libxl_device_vkb *vkb, char *token);
+int parse_xsquota_item(const char *buf, struct libxl_xs_quota_item *item);
 
 int match_option_size(const char *prefix, size_t len,
                       char *arg, char **argopt);
diff --git a/tools/xl/xl_xsquota.c b/tools/xl/xl_xsquota.c
new file mode 100644
index 0000000000..3533d22dae
--- /dev/null
+++ b/tools/xl/xl_xsquota.c
@@ -0,0 +1,90 @@
+/* SPDX-License-Identifier: LGPL-2.1-only */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <libxl.h>
+#include <libxlutil.h>
+
+#include "xl.h"
+#include "xl_utils.h"
+#include "xl_parse.h"
+
+int main_xsquota_get(int argc, char **argv)
+{
+    libxl_xs_quota_list q;
+    unsigned int i;
+    int rc;
+
+    if (argc != 2) {
+        fprintf(stderr, "Domain or \"-g\" must be specified.\n");
+        return EXIT_FAILURE;
+    }
+
+    libxl_xs_quota_list_init(&q);
+
+    if (!strcmp(argv[1], "-g")) {
+        rc = libxl_xs_quota_global_get(ctx, &q);
+    } else {
+        uint32_t domid = find_domain(argv[1]);
+
+        rc = libxl_xs_quota_domain_get(ctx, domid, &q);
+    }
+
+    if (rc) {
+        libxl_xs_quota_list_dispose(&q);
+        fprintf(stderr, "Quota could not be obtained.\n");
+        return EXIT_FAILURE;
+    }
+
+    printf("Quota name           Quota value\n");
+    printf("--------------------------------\n");
+    for (i = 0; i < q.num_quota; i++)
+        printf("%-20s %8u\n", q.quota[i].name, q.quota[i].val);
+
+    libxl_xs_quota_list_dispose(&q);
+
+    return EXIT_SUCCESS;
+}
+
+int main_xsquota_set(int argc, char **argv)
+{
+    unsigned int i;
+    libxl_xs_quota_list q;
+    int rc = EXIT_FAILURE;
+
+    if (argc < 3) {
+        fprintf(stderr, "Not enough parameters.\n");
+        help("xenstore-quota-set");
+        return EXIT_FAILURE;
+    }
+
+    libxl_xs_quota_list_init(&q);
+
+    q.num_quota = argc - 2;
+    q.quota = xcalloc(q.num_quota, sizeof(*q.quota));
+
+    for (i = 2; i < argc; i++) {
+        if (parse_xsquota_item(argv[i], q.quota + i - 2))
+            goto err;
+    }
+
+    if (!strcmp(argv[1], "-g")) {
+         rc = libxl_xs_quota_global_set(ctx, &q);
+    } else {
+        uint32_t domid = find_domain(argv[1]);
+
+        rc = libxl_xs_quota_domain_set(ctx, domid, &q);
+    }
+
+    if (rc) {
+        fprintf(stderr, "Quota could not be set.\n");
+        rc = EXIT_FAILURE;
+    } else {
+        rc = EXIT_SUCCESS;
+    }
+
+ err:
+    libxl_xs_quota_list_dispose(&q);
+
+    return rc;
+}
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 15:07:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 15:07:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1258165.1552337 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bRo-0006Ww-5h; Fri, 20 Mar 2026 15:07:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1258165.1552337; Fri, 20 Mar 2026 15: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 1w3bRo-0006Wp-2f; Fri, 20 Mar 2026 15:07:36 +0000
Received: by outflank-mailman (input) for mailman id 1258165;
 Fri, 20 Mar 2026 15:07: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=IyP1=BU=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1w3bMz-0001Ve-M2
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 15:02:37 +0000
Received: from mail-oa1-f43.google.com (mail-oa1-f43.google.com
 [209.85.160.43]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d47e7b0d-246d-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 16:02:36 +0100 (CET)
Received: by mail-oa1-f43.google.com with SMTP id
 586e51a60fabf-4094b31a037so1482211fac.1
 for <xen-devel@lists.xenproject.org>; Fri, 20 Mar 2026 08:02:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d47e7b0d-246d-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1774018955; cv=none;
        d=google.com; s=arc-20240605;
        b=ZyyhOrXVXff4riATGoZMjnlTiENcMPt21IwX9FKv2R+CpEGCmiaIXPfWA2IDK8iwLC
         W1B6VXgi1n/QYPMyk4IT769tCheNhaqSwCaAI3b/NOeXU8gk4cFhQCKFu7bgr0ssd/Xh
         Bw6vh8PltTm5GOrDObOfua+ul3GVZmyBX8FnuTfRxjMoWPnVT2yfBer2A0Wdfz5G/6Y6
         xHL0m3FiiStOpx3uBJTflQTd8DeV14JRdgGoJVG8+VbTxvu2W1upE2CCBIX/uz+NP2c+
         a/eQqVmKvA+MnbSDAuaKAyug+6P74I1hUGd0i/h2+elzZA5SHmdaDuW8vkks2i1R07H9
         IsLQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=5UaDWyjtfSyl77XXz0U7ShmHX+gyfVpxi6SPVf+gsF0=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=lr5E+h6WDTXGZHwEYaBgxwLMoUCnNsVHoET1my2txLkIDv+5j2re7jtp2Q4mnl8RJH
         NixlzOya6ISgF+AKKMvjCxKAZA3vINmoPmMeoayK43VuPCoYXa+pvRrz0p62BC2wfjsw
         6usMtfPzkUBQCCVqDd86pmyurbCLHpNviUrAeWeaQYF3DkOhlHxoYSSdQX1wip2hJvAY
         sRN8jjQIyoegDjstIHEvS2JTLrxbHNTVrd7TejROef8j993+9/qWeEH53IGuW3e5Pq5f
         1e0PVR52LZ9XqVbF7fe+Wmxkttk5Yd7xPxJLGNcZA/4aPYSpuQPZRJx5kaHGRNY/7jeh
         yR+w==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1774018955; x=1774623755; 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=5UaDWyjtfSyl77XXz0U7ShmHX+gyfVpxi6SPVf+gsF0=;
        b=Mq5cgfZaXafcUH3PKwUs+q2MFgJS2FN/YW01dqTFL7TjZcKOanajWB3VA2APnFnoP9
         Y1xlajCwpbietzHoPhBf9Ty8wfbd7IFdhKlJ+3m6t8ejt4YnJMyLJ4wVrCHDmY/WVJn7
         rP8L0e6LHjKTG0HxSY27z90T/YO/tFARbna9Eozne/ArQP4RvIU3OtUzZpgVwKHFsmX5
         Re9/AKru/ecCbsLlvFpzob35DZdIzmbY2GpMdQ6hnkSxq4LoasLDkIiEgySOjXCOtHJF
         NWpaZbkxjb3j9aE+zJERn9W420WUWTlhUnsG85GtzcV6909LM3VUJhyVV4Wz9pwJiUda
         am9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774018955; x=1774623755;
        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=5UaDWyjtfSyl77XXz0U7ShmHX+gyfVpxi6SPVf+gsF0=;
        b=DdF+i4L+glf3NIXYh4BsNhlafE9Vfnvn5cPwn56FjlEsrYLHD1JmTCmahlHZrUluSd
         TUGWWy52t4HFA/BM/CFdu/vRW4bAQARqVpcdR5qjQ7KrlGlzo9Bv9nBz6orSI+FEtlE+
         kdnWWqbiXk42TLwXmIYPWzYweUiJtCSOat0eBCu8TT5gPAhxfmjuUtZW8Zh1guRYAk2y
         Pi2UO8h/4GqIbGpjw1Tel2/olj7QjaJ13tImL2PwpGZvehvz72TD4kTAdgiLeHmMbcCs
         1j+ZMVdl00JNiVcORX20IRB9PtP8zxvOb4idLPIis5Pjjxw7O7Y4uw+YhXjJnnTtffxv
         s5GQ==
X-Gm-Message-State: AOJu0YxbPVUcAFVy9dUX6RIv1qkNrDSkv3TeF+YshNwrPkpM8tNIYJte
	ET7IOvFegNah64Wwf5784FsRwwW2zspFVijmz6HE+lNI2MGGZa9sZV1P05AhDU+9lReZ0jqav8v
	YUlKOPseRdM61au8X029ZK9gCWxV+eC2pZR1CdBOT3Fsr77D4q5pZ7eLG5A==
X-Gm-Gg: ATEYQzxPmjYLqhZgtKj289r1XEUopA7KR5b8Tro37JKJzAoD7DvsuWTVyWYXQ4t/ym2
	EMbLwI6Cl8WjPyM+GouScpCAkrD1MtE/9lvx+5s/PF73XwIyn4KpUSBuIkaqcU7Q5f8GzkBR1JW
	aYSdu2ubexO5p6j/a/TROR9hPusKwbbzlQq8TLDiYW1n10xIe71AuGK0uIYF1zy9obvUCTicgra
	wKZvpw/McBr3In4tv8iAoDpoJi8N5wZHdXvAahrJ71shV71kH2QG342a5jPVhcdH52d/gcMpk4O
	HrtmPpU5EZ3/Jh1rUTvpjrs+O+A16srabqUICQ==
X-Received: by 2002:a05:6871:529a:b0:416:543c:9180 with SMTP id
 586e51a60fabf-41c1146aca3mr1918897fac.50.1774018954782; Fri, 20 Mar 2026
 08:02:34 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1773911799.git.bertrand.marquis@arm.com> <030d24e1776af7c2391c588bc696592a64a92c51.1773911799.git.bertrand.marquis@arm.com>
In-Reply-To: <030d24e1776af7c2391c588bc696592a64a92c51.1773911799.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Fri, 20 Mar 2026 16:02:23 +0100
X-Gm-Features: AaiRm53ARa9Luu99yDzrIbj2IoLI11hjxXaZ0urSQ1XVJmbKlTftr6CwucdTTAo
Message-ID: <CAHUa44Geu4ch=xo21w_bOJLM6GLVUn_xU6BiKhks=MLxyWoP2w@mail.gmail.com>
Subject: Re: [PATCH 1/2] xen/arm: ffa: Fix local ffa_vm_count shadowing
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Mar 20, 2026 at 10:07=E2=80=AFAM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> ffa_handle_partition_info_get() declares a local variable named
> ffa_vm_count, which hides the global atomic ffa_vm_count declared in
> ffa_private.h.
>
> This triggered the ECLAIR Rule 5.3 finding "non-compliant local variable
> `ffa_vm_count'".
>
> Rename the local counters to vm_count and sp_count and update their
> uses.
>
> No functional changes.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa_partinfo.c | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)

Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens


From xen-devel-bounces@lists.xenproject.org Fri Mar 20 15:08:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 15:08:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1258182.1552347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bSS-0007Fr-JG; Fri, 20 Mar 2026 15:08:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1258182.1552347; Fri, 20 Mar 2026 15:08:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bSS-0007Fk-FN; Fri, 20 Mar 2026 15:08:16 +0000
Received: by outflank-mailman (input) for mailman id 1258182;
 Fri, 20 Mar 2026 15:08:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0BFG=BU=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w3bMX-0001Ve-1c
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 15:02: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 c3e99463-246d-11f1-b164-2bf370ae4941;
 Fri, 20 Mar 2026 16:02:08 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 95F194D27B;
 Fri, 20 Mar 2026 15:02:05 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 7554842866;
 Fri, 20 Mar 2026 15:02:05 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id WniTG21hvWnjXAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 20 Mar 2026 15:02: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: c3e99463-246d-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018925; 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=1FYqa2/aDourOwOzPQpClM0FHHXiPvq6a2dggyIoDDM=;
	b=GBtKCSZwN71iawlNf2pdCyt1/RIcOJvcvlCzBXxiUw9lJ3UlgYmfNyl0TpI9JaBza2xR3j
	U1xys8D+qc99q0qW6tZAJkGgtHP6N1vAwlzKluHiAjEcQIW0hYZsydiSupsejnib/pRHOO
	UcDO6GqdG3/Nosj9LHy+qMiFcxLMPeg=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018925; 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=1FYqa2/aDourOwOzPQpClM0FHHXiPvq6a2dggyIoDDM=;
	b=GBtKCSZwN71iawlNf2pdCyt1/RIcOJvcvlCzBXxiUw9lJ3UlgYmfNyl0TpI9JaBza2xR3j
	U1xys8D+qc99q0qW6tZAJkGgtHP6N1vAwlzKluHiAjEcQIW0hYZsydiSupsejnib/pRHOO
	UcDO6GqdG3/Nosj9LHy+qMiFcxLMPeg=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v2 08/12] tools/xenstored: implement the GET/SET_QUOTA commands
Date: Fri, 20 Mar 2026 16:01:16 +0100
Message-ID: <20260320150120.874878-9-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260320150120.874878-1-jgross@suse.com>
References: <20260320150120.874878-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.80
X-Spam-Level: 
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)[imap1.dmz-prg2.suse.org:helo,suse.com:mid,suse.com:email];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCPT_COUNT_THREE(0.00)[4];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO

Add the implementation of the GET_QUOTA and SET_QUOTA wire commands.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- refuse quota value Q_VAL_DISABLED (Anthony Perard)
- use talloc_strdup() (Anthony Perard)
- drop comments in domain.h (Anthony Perard)
---
 tools/xenstored/core.c   |   4 ++
 tools/xenstored/domain.c | 111 +++++++++++++++++++++++++++++++++++++++
 tools/xenstored/domain.h |   5 ++
 3 files changed, 120 insertions(+)

diff --git a/tools/xenstored/core.c b/tools/xenstored/core.c
index dc63c97658..4786a2a82e 100644
--- a/tools/xenstored/core.c
+++ b/tools/xenstored/core.c
@@ -2035,6 +2035,10 @@ static struct {
 	    { "GET_FEATURE",   do_get_feature,  XS_FLAG_PRIV },
 	[XS_SET_FEATURE]       =
 	    { "SET_FEATURE",   do_set_feature,  XS_FLAG_PRIV },
+	[XS_GET_QUOTA]         =
+	    { "GET_QUOTA",     do_get_quota,    XS_FLAG_PRIV },
+	[XS_SET_QUOTA]         =
+	    { "SET_QUOTA",     do_set_quota,    XS_FLAG_PRIV },
 };
 
 static const char *sockmsg_string(enum xsd_sockmsg_type type)
diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index 7a8d285e64..1684f6dee7 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -1399,6 +1399,117 @@ static bool parse_quota_name(const char *name, unsigned int *qidx,
 	return true;
 }
 
+int do_get_quota(const void *ctx, struct connection *conn,
+		 struct buffered_data *in)
+{
+	const char *vec[2];
+	unsigned int n_pars;
+	unsigned int domid;
+	unsigned int q;
+	unsigned int idx;
+	char *resp;
+	const char *name;
+	const struct quota *quota;
+	const struct domain *domain;
+
+	n_pars = get_strings(in, vec, ARRAY_SIZE(vec));
+
+	if (n_pars > 2)
+		return EINVAL;
+
+	if (n_pars == 0) {
+		resp = talloc_strdup(ctx, "");
+		if (!resp)
+			return ENOMEM;
+		for (q = 0; q < ACC_N; q++) {
+			if (!quota_adm[q].name)
+				continue;
+			if (quotas[q].val[Q_IDX_HARD] != Q_VAL_DISABLED) {
+				resp = talloc_asprintf_append(resp, "%s%s",
+					*resp ? " " : "", quota_adm[q].name);
+				if (!resp)
+					return ENOMEM;
+			}
+			if (quotas[q].val[Q_IDX_SOFT] != Q_VAL_DISABLED) {
+				resp = talloc_asprintf_append(resp, "%s%s%s",
+					*resp ? " " : "", SOFT_PREFIX,
+					quota_adm[q].name);
+				if (!resp)
+					return ENOMEM;
+			}
+		}
+	} else {
+		if (n_pars == 1) {
+			quota = quotas;
+			name = vec[0];
+		} else {
+			domid = parse_domid(vec[0]);
+			if (errno)
+				return errno;
+			domain = find_or_alloc_existing_domain(domid);
+			if (!domain)
+				return ENOENT;
+			quota = domain->acc;
+			name = vec[1];
+		}
+
+		if (parse_quota_name(name, &q, &idx))
+			return EINVAL;
+
+		resp = talloc_asprintf(ctx, "%u", quota[q].val[idx]);
+		if (!resp)
+			return ENOMEM;
+	}
+
+	send_reply(conn, XS_GET_QUOTA, resp, strlen(resp) + 1);
+
+	return 0;
+}
+
+int do_set_quota(const void *ctx, struct connection *conn,
+		 struct buffered_data *in)
+{
+	const char *vec[3];
+	unsigned int n_pars;
+	unsigned int domid;
+	unsigned int q;
+	unsigned int idx;
+	const char *name;
+	unsigned int val;
+	struct quota *quota;
+	struct domain *domain;
+
+	n_pars = get_strings(in, vec, ARRAY_SIZE(vec));
+
+	if (n_pars < 2 || n_pars > 3)
+		return EINVAL;
+
+	if (n_pars == 2) {
+		quota = quotas;
+		name = vec[0];
+		val = atoi(vec[1]);
+	} else {
+		domid = parse_domid(vec[0]);
+		if (errno)
+			return errno;
+		domain = find_or_alloc_existing_domain(domid);
+		if (!domain)
+			return ENOENT;
+		quota = domain->acc;
+		name = vec[1];
+		val = atoi(vec[2]);
+	}
+
+	if (parse_quota_name(name, &q, &idx) || val == Q_VAL_DISABLED)
+		return EINVAL;
+
+	quota[q].val[idx] = val;
+
+	send_ack(conn, XS_SET_QUOTA);
+
+	return 0;
+}
+
 static int close_xgt_handle(void *_handle)
 {
 	xengnttab_close(*(xengnttab_handle **)_handle);
diff --git a/tools/xenstored/domain.h b/tools/xenstored/domain.h
index 8f23a82854..ca38b5e0ea 100644
--- a/tools/xenstored/domain.h
+++ b/tools/xenstored/domain.h
@@ -93,6 +93,11 @@ int do_get_feature(const void *ctx, struct connection *conn,
 int do_set_feature(const void *ctx, struct connection *conn,
 		   struct buffered_data *in);
 
+int do_get_quota(const void *ctx, struct connection *conn,
+		 struct buffered_data *in);
+int do_set_quota(const void *ctx, struct connection *conn,
+		 struct buffered_data *in);
+
 void domain_early_init(void);
 void domain_init(int evtfd);
 void init_domains(bool live_update);
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 15:11:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 15:11:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1258206.1552356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bV8-0000hy-W0; Fri, 20 Mar 2026 15:11:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1258206.1552356; Fri, 20 Mar 2026 15:11:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bV8-0000hq-Sm; Fri, 20 Mar 2026 15:11:02 +0000
Received: by outflank-mailman (input) for mailman id 1258206;
 Fri, 20 Mar 2026 15:11: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=IyP1=BU=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1w3bV7-0000hk-OF
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 15:11:01 +0000
Received: from mail-oa1-f54.google.com (mail-oa1-f54.google.com
 [209.85.160.54]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 001dbd4d-246f-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Mar 2026 16:10:59 +0100 (CET)
Received: by mail-oa1-f54.google.com with SMTP id
 586e51a60fabf-40ea611d1a4so326718fac.2
 for <xen-devel@lists.xenproject.org>; Fri, 20 Mar 2026 08:10:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 001dbd4d-246f-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1774019458; cv=none;
        d=google.com; s=arc-20240605;
        b=hrjL0uk4VUkRC2Wef0bAa+cIKD28zViD5+p5FXvxDkMCCMoP9JtiXVyvORdAOC9XkB
         f0LhRpbY9r0gkG+zMioqHxwSdNHluGLkKnUq8IT3+PEBOBc9S3lkAS82hy7tB/4yE9QN
         lArA1SPkp73P1m+J/uMSup7gVvJoVAPAh72KrCS5vUa9BoFEap1iUPQMDnJeS5gIYTto
         rbCFO374l5wNBhNR1cSjEF2mpuYpUuV+T04KFJPzBAao5uiY8O2Sd8nqN+pWdf+QqOUy
         nuq0L5c4H7XC9hig+WLdcUaywFs2JxCe64kiLtNINgSl6dMfu2nV9IYrFiWD/DByoGnC
         AAag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=ZGaoT6ic99GsF4u+JNCzJoc3s5ODFyKGLwhSZj48pv4=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=dzcHcf9bJk1BnWq1hTwDYbObAYgWeDiAEGuRPDcVkwi1jSyRV7JJkegAh5HlkWYDYI
         VzQ3BADRbb8eGMg/+rpD6myMOtxfMU9qdmmtGDAGCdu7dWHE72RcMVpWzYA35+YxafEx
         5Z6LYqHcUzNooLKwFwH4NFziy013GPYkZAN17NfcAS/ONvhxGKddaky3uMsKNjfFCbt7
         UGxqztovXxGiQ/frAUgnRYJwUa5VmfjVgnAjwHoXnzHLtMYQv34xbp3L93Y3nc67iA8B
         Zto2yI9XcGCWv0vn+F90GXjhz5qEiC+Yudt5UqQkSVOpliA39gVYtsm8FHBgdzZGsxyA
         Z2yQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1774019458; x=1774624258; 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=ZGaoT6ic99GsF4u+JNCzJoc3s5ODFyKGLwhSZj48pv4=;
        b=jE2jelymMD2Y7V0HYnTiy75nSqmCGdODP1QpK47D+Y7nBInbbp2ZeWlgfvcFkr3g6Z
         4l48TPGaHOfvaH/Q9FdMoba3BjQxl44IOvUzJQNla9vWphpkqKNZzKO/gX6LEF7w6vMH
         OcDHA7PSRvnQeHjQMAQWe+RJuNzTDd3+Hpp3ihFxeN5lLNumNk2D3P7tpmbP2KrJi8tQ
         f/ZF/ih3UQMWP8J1VrQmOeTVqIjdFUIF4M17XYTB85OM4foHaENxwQBCyeZ7GPm9uHs5
         JPJlk+w3E9XCHGt3zInE0gh3Rk1Oc8E9QegjbZ7tNnS/e4wJD5GRjkNwEl3UOk/mVskb
         CYIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774019458; x=1774624258;
        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=ZGaoT6ic99GsF4u+JNCzJoc3s5ODFyKGLwhSZj48pv4=;
        b=NU45AP1OCFZXINqYDx3q1tXsnjRs5YTYHREm4FM0KTJ17wXXi3+qJkH/PfAHTqbK7u
         OQ8m8uuvdECQx8VSo/T5y8K6ev3ZNX9dBgdHnCZNYh6WOZK2ZGkGZexgMj4fFyU7SC6d
         +k+JvheWRb3rb5b0QPh8jRY/R1uTBsqZ4glqIfcoB1Zuy9i8mipmz3eWlSRckif5eT/b
         2IRv9pkZ7gqxGeJKY3yR4a1Qy+SUsuUqXkOZ4sDdBVGwohNxun9mPRPGOpR4OMp+fttH
         psORlO3pHOE/hBlqT5UEo1cbWP7DecvOLo4NVw9wfRBCY/YgxPYFj6c951ZxPgWviDGN
         VLzA==
X-Gm-Message-State: AOJu0YwPSJagQo8CJL4SYKCjKmvhg1gtQP0jiGRp1tPsVStIZ6rODwyg
	xhfAeE8giCMS0PLHlr2awfRYsXZ8l2dc3MofPca16CYa8ZU70vTDIKmTA/F4WqmrQiqu3iwT+0Q
	KfLmwcRZ2Q4yKh2a/qLrcSFvqoostU0krlGrE3+VAwA==
X-Gm-Gg: ATEYQzzWu2EYzjV/WSxB4z7uh82znE39fpxtlgWvDy8J2jLNsRWt2wjnp4LUFzXvAr6
	SDGm4DfwmzElTPgYDt3A5/WKrxQ8LnqNn5hWXxd8IUzpXktB2jkrox2QU67ggJVYTSmfmJ6SFvS
	iTQXmFhsR+FeSok6XbIEK4s4XSvI8Br5qcewGAUF7Cj0TqCNTz5qUAUxGHbDpJ1YwFnBCAvLxWg
	b4j9U3rF36Kw5PpiwcGjHa5KoAx7ZUA5pywXTwajZXRvXMpyvUGwHygkMwheWUHfaus2ea/QG/V
	eB4pogGvzoEMLmslDZj9DPu8Scq+XUK4znvsQw==
X-Received: by 2002:a05:6870:63ab:b0:417:6224:5855 with SMTP id
 586e51a60fabf-41c10c6ccaemr2074122fac.0.1774019457988; Fri, 20 Mar 2026
 08:10:57 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1773911799.git.bertrand.marquis@arm.com> <0050ab559814a619b4ae23dd070e7aa4629865e2.1773911799.git.bertrand.marquis@arm.com>
In-Reply-To: <0050ab559814a619b4ae23dd070e7aa4629865e2.1773911799.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Fri, 20 Mar 2026 16:10:45 +0100
X-Gm-Features: AaiRm503kw4TRRLMqY0L2_uIEtBzREIoAAXo_6ZShucMyru2vptPC5CkoIKaCtI
Message-ID: <CAHUa44GHBNfPTn91L_9K=QVMCy3MAaoQWBHGU9rxzrs818-b6g@mail.gmail.com>
Subject: Re: [PATCH 2/2] xen/arm: optee: Add MISRA-compliant switch default labels
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Fri, Mar 20, 2026 at 10:07=E2=80=AFAM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> optee.c has several switch statements over integer-valued OP-TEE fields
> without a default label, and two default clauses that only contain
> break. This triggers MISRA C Rule 16.4 findings.
>
> Add explicit default labels to all reported switches and document the
> intentional no-op defaults with rationale comments. The new default
> paths preserve the existing behavior:
> - unsupported parameter attribute types are ignored;
> - non-handled RPC commands require no post-processing in Xen;
> - unknown RPC function IDs are resumed unchanged.
>
> No functional changes.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/optee.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)

Looks good.

Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens


From xen-devel-bounces@lists.xenproject.org Fri Mar 20 15:11:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 15:11:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1258213.1552365 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bVd-0001Bb-6e; Fri, 20 Mar 2026 15:11:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1258213.1552365; Fri, 20 Mar 2026 15: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 1w3bVd-0001BU-3b; Fri, 20 Mar 2026 15:11:33 +0000
Received: by outflank-mailman (input) for mailman id 1258213;
 Fri, 20 Mar 2026 15:11:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0BFG=BU=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w3bMl-0001ko-Gr
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 15:02:23 +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 cbde84f1-246d-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Mar 2026 16:02:21 +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 0E3375BDF1;
 Fri, 20 Mar 2026 15:02:11 +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 DCB2F42866;
 Fri, 20 Mar 2026 15:02: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 ll/PNHJhvWnpXAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 20 Mar 2026 15:02:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cbde84f1-246d-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018935; 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=yEuehUlwv5fMYrq9vtoirIlozvH3dEV269XfkzYgNss=;
	b=T6DmaqxNH0Blb5cy10dYluQkE/UVVbMDbkyOC1lKBJUWBln5GrMVqMIEm9tb8VcXHYz2Xp
	2cPIjSGlYyIQaGWUnYZ3sxzxWaXfADO7K+aqvBGoSAoI5PR8Qz4eWfJoELJw2z19Qg4iOi
	Rqee8A/RHXEanvQ3WTk18amsR2Aueso=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=qk+UQdiW
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018931; 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=yEuehUlwv5fMYrq9vtoirIlozvH3dEV269XfkzYgNss=;
	b=qk+UQdiWmj+Z6a59Nl9lfH2OfrCbGM/lZHDhziABoik4HjNjfuWCwagut55CdiHpviqeCS
	2tMNFZuL+mSUotU9EuYgU2aB/sOEBbcKU11c5xj6wrnV7IHu8Bt50ggAfEKgviwbkl9bCs
	VH/mqJA7DE+uEnMzO08Yg+0VF2uHjS4=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Nick Rosbrook <enr0n@ubuntu.com>,
	George Dunlap <gwd@xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v2 09/12] tools/libxl: add functions for retrieving and setting xenstore quota
Date: Fri, 20 Mar 2026 16:01:17 +0100
Message-ID: <20260320150120.874878-10-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260320150120.874878-1-jgross@suse.com>
References: <20260320150120.874878-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	ARC_NA(0.00)[];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	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)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	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:mid,suse.com:dkim,suse.com:email,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns];
	RCVD_TLS_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCPT_COUNT_FIVE(0.00)[5];
	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: 
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Rspamd-Queue-Id: 0E3375BDF1

Add some functions allowing to retrieve and set Xenstore quota (either
global or domain specific).

Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Nick Rosbrook <enr0n@ubuntu.com> # golang stuff
---
V2:
- rename libxl functions to use "xs_quota" instead of "xsquota"
  (Anthony Perard)
- rename the libxl_xs_quota_*_get() "q" parameter to "q_out"
  (Anthony Perard)
- rename the struct xs_quota_set to xs_quota_list (Anthony Perard)
- several style changes (Anthony Perard)
---
 tools/golang/xenlight/helpers.gen.go |  78 ++++++++++++++++++
 tools/golang/xenlight/types.gen.go   |   9 +++
 tools/include/libxl.h                |  20 +++++
 tools/libs/light/Makefile            |   1 +
 tools/libs/light/libxl_types.idl     |   9 +++
 tools/libs/light/libxl_xsquota.c     | 116 +++++++++++++++++++++++++++
 6 files changed, 233 insertions(+)
 create mode 100644 tools/libs/light/libxl_xsquota.c

diff --git a/tools/golang/xenlight/helpers.gen.go b/tools/golang/xenlight/helpers.gen.go
index 8909fe8a1b..767b9e45f5 100644
--- a/tools/golang/xenlight/helpers.gen.go
+++ b/tools/golang/xenlight/helpers.gen.go
@@ -998,6 +998,84 @@ xc.policy = C.libxl_rdm_reserve_policy(x.Policy)
  return nil
  }
 
+// NewXsQuotaItem returns an instance of XsQuotaItem initialized with defaults.
+func NewXsQuotaItem() (*XsQuotaItem, error) {
+var (
+x XsQuotaItem
+xc C.libxl_xs_quota_item)
+
+C.libxl_xs_quota_item_init(&xc)
+defer C.libxl_xs_quota_item_dispose(&xc)
+
+if err := x.fromC(&xc); err != nil {
+return nil, err }
+
+return &x, nil}
+
+func (x *XsQuotaItem) fromC(xc *C.libxl_xs_quota_item) error {
+ x.Name = C.GoString(xc.name)
+x.Val = uint32(xc.val)
+
+ return nil}
+
+func (x *XsQuotaItem) toC(xc *C.libxl_xs_quota_item) (err error){defer func(){
+if err != nil{
+C.libxl_xs_quota_item_dispose(xc)}
+}()
+
+if x.Name != "" {
+xc.name = C.CString(x.Name)}
+xc.val = C.uint32_t(x.Val)
+
+ return nil
+ }
+
+// NewXsQuotaList returns an instance of XsQuotaList initialized with defaults.
+func NewXsQuotaList() (*XsQuotaList, error) {
+var (
+x XsQuotaList
+xc C.libxl_xs_quota_list)
+
+C.libxl_xs_quota_list_init(&xc)
+defer C.libxl_xs_quota_list_dispose(&xc)
+
+if err := x.fromC(&xc); err != nil {
+return nil, err }
+
+return &x, nil}
+
+func (x *XsQuotaList) fromC(xc *C.libxl_xs_quota_list) error {
+ x.Quota = nil
+if n := int(xc.num_quota); n > 0 {
+cQuota := (*[1<<28]C.libxl_xs_quota_item)(unsafe.Pointer(xc.quota))[:n:n]
+x.Quota = make([]XsQuotaItem, n)
+for i, v := range cQuota {
+if err := x.Quota[i].fromC(&v); err != nil {
+return fmt.Errorf("converting field Quota: %v", err) }
+}
+}
+
+ return nil}
+
+func (x *XsQuotaList) toC(xc *C.libxl_xs_quota_list) (err error){defer func(){
+if err != nil{
+C.libxl_xs_quota_list_dispose(xc)}
+}()
+
+if numQuota := len(x.Quota); numQuota > 0 {
+xc.quota = (*C.libxl_xs_quota_item)(C.malloc(C.ulong(numQuota)*C.sizeof_libxl_xs_quota_item))
+xc.num_quota = C.int(numQuota)
+cQuota := (*[1<<28]C.libxl_xs_quota_item)(unsafe.Pointer(xc.quota))[:numQuota:numQuota]
+for i,v := range x.Quota {
+if err := v.toC(&cQuota[i]); err != nil {
+return fmt.Errorf("converting field Quota: %v", err)
+}
+}
+}
+
+ return nil
+ }
+
 // NewDomainBuildInfo returns an instance of DomainBuildInfo initialized with defaults.
 func NewDomainBuildInfo(dtype DomainType) (*DomainBuildInfo, error) {
 var (
diff --git a/tools/golang/xenlight/types.gen.go b/tools/golang/xenlight/types.gen.go
index ab9d4ca7b4..8dd610919d 100644
--- a/tools/golang/xenlight/types.gen.go
+++ b/tools/golang/xenlight/types.gen.go
@@ -543,6 +543,15 @@ Altp2MModeExternal Altp2MMode = 2
 Altp2MModeLimited Altp2MMode = 3
 )
 
+type XsQuotaItem struct {
+Name string
+Val uint32
+}
+
+type XsQuotaList struct {
+Quota []XsQuotaItem
+}
+
 type DomainBuildInfo struct {
 MaxVcpus int
 AvailVcpus Bitmap
diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index bc35e412da..6d2910df34 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -1537,6 +1537,18 @@ void libxl_mac_copy(libxl_ctx *ctx, libxl_mac *dst, const libxl_mac *src);
  */
 #define LIBXL_HAVE_XEN_PLATFORM_PCI_BAR_UC
 
+/*
+ * LIBXL_HAVE_XENSTORE_QUOTA
+ *
+ * If this is defined the Xenstore quota related functions
+ * libxl_xs_quota_global_get()
+ * libxl_xs_quota_global_set()
+ * libxl_xs_quota_domain_get()
+ * libxl_xs_quota_domain_set()
+ * are available.
+ */
+#define LIBXL_HAVE_XENSTORE_QUOTA
+
 typedef char **libxl_string_list;
 void libxl_string_list_dispose(libxl_string_list *sl);
 int libxl_string_list_length(const libxl_string_list *sl);
@@ -3011,6 +3023,14 @@ static inline int libxl_qemu_monitor_command_0x041200(libxl_ctx *ctx,
 #define libxl_qemu_monitor_command libxl_qemu_monitor_command_0x041200
 #endif
 
+/* Get/set global and per-domain Xenstore quota. */
+int libxl_xs_quota_global_get(libxl_ctx *ctx, libxl_xs_quota_list *q_out);
+int libxl_xs_quota_global_set(libxl_ctx *ctx, libxl_xs_quota_list *q);
+int libxl_xs_quota_domain_get(libxl_ctx *ctx, uint32_t domid,
+                              libxl_xs_quota_list *q_out);
+int libxl_xs_quota_domain_set(libxl_ctx *ctx, uint32_t domid,
+                              libxl_xs_quota_list *q);
+
 #include <libxl_event.h>
 
 /*
diff --git a/tools/libs/light/Makefile b/tools/libs/light/Makefile
index bc60c46558..ca22a40c6c 100644
--- a/tools/libs/light/Makefile
+++ b/tools/libs/light/Makefile
@@ -106,6 +106,7 @@ OBJS-y += libxl_pvcalls.o
 OBJS-y += libxl_vsnd.o
 OBJS-y += libxl_vkb.o
 OBJS-y += libxl_virtio.o
+OBJS-y += libxl_xsquota.o
 OBJS-y += libxl_genid.o
 OBJS-y += _libxl_types.o
 OBJS-y += libxl_flask.o
diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
index d64a573ff3..1a63c8af76 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -574,6 +574,15 @@ libxl_altp2m_mode = Enumeration("altp2m_mode", [
     (3, "limited"),
     ], init_val = "LIBXL_ALTP2M_MODE_DISABLED")
 
+libxl_xs_quota_item = Struct("xs_quota_item", [
+    ("name", string),
+    ("val",  uint32),
+    ])
+
+libxl_xs_quota_list = Struct("xs_quota_list", [
+    ("quota", Array(libxl_xs_quota_item, "num_quota"))
+    ])
+
 libxl_domain_build_info = Struct("domain_build_info",[
     ("max_vcpus",       integer),
     ("avail_vcpus",     libxl_bitmap),
diff --git a/tools/libs/light/libxl_xsquota.c b/tools/libs/light/libxl_xsquota.c
new file mode 100644
index 0000000000..4524442655
--- /dev/null
+++ b/tools/libs/light/libxl_xsquota.c
@@ -0,0 +1,116 @@
+/* SPDX-License-Identifier: LGPL-2.1-only */
+
+/* Xenstore quota handling functions. */
+
+#include "libxl_internal.h"
+
+static int get_quota(libxl_ctx *ctx, unsigned int domid,
+                     libxl_xs_quota_list *q_out,
+                     bool (func)(struct xs_handle *h, unsigned int domid,
+                                 const char *quota, unsigned int *value))
+{
+    const char **names;
+    unsigned int num, i;
+    bool ok;
+    int rc;
+    GC_INIT(ctx);
+
+    libxl_xs_quota_list_init(q_out);
+    names = xs_get_quota_names(ctx->xsh, &num);
+    if (!names) {
+        /* Xenstore quota support is optional! */
+        if (errno != ENOSYS) {
+            libxl_xs_quota_list_dispose(q_out);
+            rc = ERROR_FAIL;
+        } else {
+            rc = 0;
+        }
+        goto out;
+    }
+
+    q_out->num_quota = num;
+    q_out->quota = libxl__calloc(NOGC, num, sizeof(*q_out->quota));
+    for (i = 0; i < num; i++) {
+        q_out->quota[i].name = libxl__strdup(NOGC, names[i]);
+        ok = func(ctx->xsh, domid, q_out->quota[i].name, &q_out->quota[i].val);
+        if (!ok) {
+            libxl_xs_quota_list_dispose(q_out);
+            rc = ERROR_FAIL;
+            goto out;
+        }
+    }
+
+    rc = 0;
+
+ out:
+    free(names);
+
+    GC_FREE;
+    return rc;
+}
+
+static int set_quota(libxl_ctx *ctx, unsigned int domid, libxl_xs_quota_list *q,
+                     bool (func)(struct xs_handle *h, unsigned int domid,
+                                 const char *quota, unsigned int value))
+{
+    unsigned int i;
+    bool ok;
+    int rc;
+    GC_INIT(ctx);
+
+    for (i = 0; i < q->num_quota; i++) {
+        ok = func(ctx->xsh, domid, q->quota[i].name, q->quota[i].val);
+        if (!ok) {
+            rc = ERROR_FAIL;
+            goto out;
+        }
+    }
+
+    rc = 0;
+
+ out:
+    GC_FREE;
+    return rc;
+}
+
+static bool get_global_quota(struct xs_handle *h, unsigned int domid,
+                             const char *quota, unsigned int *value)
+{
+    return xs_get_global_quota(h, quota, value);
+}
+
+int libxl_xs_quota_global_get(libxl_ctx *ctx, libxl_xs_quota_list *q_out)
+{
+    return get_quota(ctx, 0, q_out, get_global_quota);
+}
+
+static bool set_global_quota(struct xs_handle *h, unsigned int domid,
+                             const char *quota, unsigned int value)
+{
+    return xs_set_global_quota(h, quota, value);
+}
+
+int libxl_xs_quota_global_set(libxl_ctx *ctx, libxl_xs_quota_list *q)
+{
+    return set_quota(ctx, 0, q, set_global_quota);;
+}
+
+int libxl_xs_quota_domain_get(libxl_ctx *ctx, uint32_t domid,
+                              libxl_xs_quota_list *q_out)
+{
+    return get_quota(ctx, domid, q_out, xs_get_domain_quota);
+}
+
+int libxl_xs_quota_domain_set(libxl_ctx *ctx, uint32_t domid,
+                              libxl_xs_quota_list *q)
+{
+    return set_quota(ctx, domid, q, xs_set_domain_quota);
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 15:11:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 15:11:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1258221.1552374 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bW0-0001h1-FM; Fri, 20 Mar 2026 15:11:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1258221.1552374; Fri, 20 Mar 2026 15:11:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3bW0-0001gu-CH; Fri, 20 Mar 2026 15:11:56 +0000
Received: by outflank-mailman (input) for mailman id 1258221;
 Fri, 20 Mar 2026 15:11:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0BFG=BU=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1w3bMv-0001ko-3N
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 15:02:33 +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 d1821fae-246d-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Mar 2026 16:02:31 +0100 (CET)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 4F34F5BDF1;
 Fri, 20 Mar 2026 15:02:27 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 328F242866;
 Fri, 20 Mar 2026 15:02:27 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id e5RHC4NhvWkQXQAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 20 Mar 2026 15:02:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d1821fae-246d-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018947; 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=RvZyWf80UhIWQ1Ha92/GkHwBZUAkRxIiyYOr24YFL4c=;
	b=u2wXVdKkXq1jVy9V9f9iklAiWJ5Kt3UogaAKILZjUMZ8+6H6zjmiSsBBPYECJAkcOZpIQx
	96RgUK6eWPXG9IzikBjViC+o25mHnBc8u8N3nzfCqtvYVmT1krXOwZTwR+9pfuZVpcdowr
	ytNq900LHAh/UqcEAkP0twmudkMANe4=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=u2wXVdKk
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774018947; 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=RvZyWf80UhIWQ1Ha92/GkHwBZUAkRxIiyYOr24YFL4c=;
	b=u2wXVdKkXq1jVy9V9f9iklAiWJ5Kt3UogaAKILZjUMZ8+6H6zjmiSsBBPYECJAkcOZpIQx
	96RgUK6eWPXG9IzikBjViC+o25mHnBc8u8N3nzfCqtvYVmT1krXOwZTwR+9pfuZVpcdowr
	ytNq900LHAh/UqcEAkP0twmudkMANe4=
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 12/12] tools/xl: add support for xenstore quota setting via domain config
Date: Fri, 20 Mar 2026 16:01:20 +0100
Message-ID: <20260320150120.874878-13-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260320150120.874878-1-jgross@suse.com>
References: <20260320150120.874878-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	ARC_NA(0.00)[];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	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)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	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:mid,suse.com:dkim,suse.com:email,vates.tech:email,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns];
	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: 
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Rspamd-Queue-Id: 4F34F5BDF1

Add a new "xenstore_quota" domain config parameter for setting the
Xenstore quota of a new domain via a list of <quota>=<val> items.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
---
V2:
- fix typo in commit message (Anthony Perard)
- use xcalloc() (Anthony Perard)
---
 docs/man/xl.cfg.5.pod.in | 13 +++++++++++++
 tools/xl/xl_parse.c      | 19 ++++++++++++++++++-
 2 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index 27c455210b..3aac0bc4fb 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -748,6 +748,19 @@ via the B<xl info -x> command in dom0.
 The default value is B<0xffffffff>, meaning that all possible Xenstore
 features are visible by the guest.
 
+=item B<xenstore_quota=[ QUOTA_SPEC, QUOTA_SPEC, ...]>
+
+Specifies Xenstore quota values of the domain, overriding the default
+values of Xenstore.
+
+Each B<QUOTA_SPEC> is a B<quota-name>=B<value> specification. The supported
+B<quota-name> identifiers can be obtained by the B<xl xenstore-quota-get -g>
+command. B<value> is a non-negative integer.
+
+As per-domain Xenstore quota are an optional Xenstore feature, the
+B<xenstore_quota> config parameter may not be supported by all Xenstore
+implementations.
+
 =back
 
 =head2 Devices
diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index 4b074fdb58..48c72dce9c 100644
--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -1354,7 +1354,7 @@ void parse_config_data(const char *config_source,
     XLU_ConfigList *cpus, *vbds, *nics, *pcis, *cvfbs, *cpuids, *vtpms,
                    *usbctrls, *usbdevs, *p9devs, *vdispls, *pvcallsifs_devs;
     XLU_ConfigList *channels, *ioports, *irqs, *iomem, *viridian, *dtdevs,
-                   *mca_caps, *smbios, *llc_colors;
+                   *mca_caps, *smbios, *llc_colors, *xs_quota;
     int num_ioports, num_irqs, num_iomem, num_cpus, num_viridian, num_mca_caps;
     int num_smbios;
     int pci_power_mgmt = 0;
@@ -1363,6 +1363,7 @@ void parse_config_data(const char *config_source,
     int pci_seize = 0;
     int i, e;
     int num_llc_colors;
+    int num_xs_quota;
     char *kernel_basename;
 
     libxl_domain_create_info *c_info = &d_config->c_info;
@@ -1470,6 +1471,22 @@ void parse_config_data(const char *config_source,
     if (!xlu_cfg_get_long (config, "xenstore_feature_mask", &l, 0))
         b_info->xenstore_feature_mask = l;
 
+    if (!xlu_cfg_get_list(config, "xenstore_quota", &xs_quota, &num_xs_quota, 0)) {
+        b_info->xenstore_quota.num_quota = num_xs_quota;
+        b_info->xenstore_quota.quota = xcalloc(num_xs_quota, sizeof(* b_info->xenstore_quota.quota));
+
+        for (i = 0; i < num_xs_quota; i++) {
+           buf = xlu_cfg_get_listitem(xs_quota, i);
+           if (!buf) {
+                fprintf(stderr,
+                        "xl: Can't get element %d in Xenstore quota list\n", i);
+                exit(1);
+            }
+            if (parse_xsquota_item(buf, b_info->xenstore_quota.quota + i))
+                exit(1);
+        }
+    }
+
     libxl_domain_build_info_init_type(b_info, c_info->type);
 
     if (b_info->type == LIBXL_DOMAIN_TYPE_PVH) {
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 20 15:58:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Mar 2026 15:58:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1258254.1552398 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3cFB-0000vc-2x; Fri, 20 Mar 2026 15:58:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1258254.1552398; Fri, 20 Mar 2026 15:58:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3cFB-0000vV-0S; Fri, 20 Mar 2026 15:58:37 +0000
Received: by outflank-mailman (input) for mailman id 1258254;
 Fri, 20 Mar 2026 15:58: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=8gqn=BU=kernel.org=rafael@srs-se1.protection.inumbo.net>)
 id 1w3cFA-0000vP-4q
 for xen-devel@lists.xenproject.org; Fri, 20 Mar 2026 15:58:36 +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 a4eeaa3d-2475-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Mar 2026 16:58:33 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 6156F43A1F
 for <xen-devel@lists.xenproject.org>; Fri, 20 Mar 2026 15:58:31 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3E3E9C2BCB1
 for <xen-devel@lists.xenproject.org>; Fri, 20 Mar 2026 15:58:31 +0000 (UTC)
Received: by mail-oi1-f169.google.com with SMTP id
 5614622812f47-4645dde00a7so2668946b6e.1
 for <xen-devel@lists.xenproject.org>; Fri, 20 Mar 2026 08:58:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a4eeaa3d-2475-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774022311;
	bh=5OVfAAKYK3pCoLiGVQAI4LiOth4ynX3Xbge5VJYkavc=;
	h=References:In-Reply-To:From:Date:Subject:To:Cc:From;
	b=pl16mdaQ5+COvdD9bX5ZRystAoUG0uE2dY3Yvx/WMuBeNO8FE3lhKUIpOLQg17eGT
	 0FhgrAVDhlH9C1iGGYtI3u+/XlktPJzKMcGFmHHp8+mQDNiY6rF0ztNzJijj3vq8oz
	 gcGClnbQENyd5qhJdBGbF3h3Zc1ZGp9PFi4NGz8wvyodWXjcf2nK+eoVCNbBtlkRWZ
	 TZACQxSFIr1KUyJi2Zg8TYtLAnIqjPEgRkNkZ5lAstrP+LSGDP85SJLPZzEYMWEzbT
	 NE2qZUwQ3n20WaxKqnvQ7HzD401uSj8kc+q67u3Ngz+2UdaCD3Uvkpk1ncw5vWPpG1
	 t0APO6MNg/N0Q==
X-Forwarded-Encrypted: i=1; AJvYcCV5cSl3+mz461WjsRi0Fkkno/NLRGNuh/m8raJWFbKtczhFxbDodDa7rsYhU3O70fStA23y9GyxJJc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzvHUsnaMEzKOxZOYeLibTo+Hh+Q+AzUDooBMYqYjler3U25yU+
	8a+EojdTFC2AjeOVnqFCPPhMjaXZBpvSfE3Ka8SWiu7ZUjG97qwkvApQWH2YWOn0Rl3l34MFimt
	hjD6niDoaEhg8NprW+biz3elM4BNvquQ=
X-Received: by 2002:a05:6808:4fe4:b0:467:cd8:7f5e with SMTP id
 5614622812f47-467cd556a0dmr4624044b6e.4.1774022310328; Fri, 20 Mar 2026
 08:58:30 -0700 (PDT)
MIME-Version: 1.0
References: <8683270.T7Z3S40VBb@rafael.j.wysocki>
In-Reply-To: <8683270.T7Z3S40VBb@rafael.j.wysocki>
From: "Rafael J. Wysocki" <rafael@kernel.org>
Date: Fri, 20 Mar 2026 16:58:18 +0100
X-Gmail-Original-Message-ID: <CAJZ5v0gt72nhueFkpP1Hp9PNNbnQ6cmskq_sxEbdgzxy-ZWqjg@mail.gmail.com>
X-Gm-Features: AaiRm53OWzJ_LsLSl2Q21Pi0otYOG2pKuGSzCAUkrh5-7mMws8P_z_zFxxlNZcA
Message-ID: <CAJZ5v0gt72nhueFkpP1Hp9PNNbnQ6cmskq_sxEbdgzxy-ZWqjg@mail.gmail.com>
Subject: Re: [PATCH v1] ACPI: PAD: xen: Convert to a platform driver
To: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: Linux ACPI <linux-acpi@vger.kernel.org>, xen-devel@lists.xenproject.org, 
	LKML <linux-kernel@vger.kernel.org>, Juergen Gross <jgross@suse.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, 
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Sat, Mar 14, 2026 at 12:57=E2=80=AFPM Rafael J. Wysocki <rafael@kernel.o=
rg> wrote:
>
> From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
>
> In all cases in which a struct acpi_driver is used for binding a driver
> to an ACPI device object, a corresponding platform device is created by
> the ACPI core and that device is regarded as a proper representation of
> underlying hardware.  Accordingly, a struct platform_driver should be
> used by driver code to bind to that device.  There are multiple reasons
> why drivers should not bind directly to ACPI device objects [1].
>
> Overall, it is better to bind drivers to platform devices than to their
> ACPI companions, so convert the Xen ACPI processor aggregator device
> (PAD) driver to a platform one.
>
> While this is not expected to alter functionality, it changes sysfs
> layout and so it will be visible to user space.
>
> Link: https://lore.kernel.org/all/2396510.ElGaqSPkdT@rafael.j.wysocki/ [1=
]
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

If there are any objections or concerns regarding this change, please
let me know.

In the absence of any, I'll queue it up for 7.1.

Thanks!

> ---
>
> Note that the original ACPI PAD driver has been a platform driver for
> quite some time already.
>
> ---
>  drivers/xen/xen-acpi-pad.c | 23 ++++++++++++-----------
>  1 file changed, 12 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/xen/xen-acpi-pad.c b/drivers/xen/xen-acpi-pad.c
> index ede69a5278d3..75a39862c1df 100644
> --- a/drivers/xen/xen-acpi-pad.c
> +++ b/drivers/xen/xen-acpi-pad.c
> @@ -11,6 +11,7 @@
>  #include <linux/kernel.h>
>  #include <linux/types.h>
>  #include <linux/acpi.h>
> +#include <linux/platform_device.h>
>  #include <xen/xen.h>
>  #include <xen/interface/version.h>
>  #include <xen/xen-ops.h>
> @@ -107,8 +108,9 @@ static void acpi_pad_notify(acpi_handle handle, u32 e=
vent,
>         }
>  }
>
> -static int acpi_pad_add(struct acpi_device *device)
> +static int acpi_pad_probe(struct platform_device *pdev)
>  {
> +       struct acpi_device *device =3D ACPI_COMPANION(&pdev->dev);
>         acpi_status status;
>
>         strcpy(acpi_device_name(device), ACPI_PROCESSOR_AGGREGATOR_DEVICE=
_NAME);
> @@ -122,13 +124,13 @@ static int acpi_pad_add(struct acpi_device *device)
>         return 0;
>  }
>
> -static void acpi_pad_remove(struct acpi_device *device)
> +static void acpi_pad_remove(struct platform_device *pdev)
>  {
>         mutex_lock(&xen_cpu_lock);
>         xen_acpi_pad_idle_cpus(0);
>         mutex_unlock(&xen_cpu_lock);
>
> -       acpi_remove_notify_handler(device->handle,
> +       acpi_remove_notify_handler(ACPI_HANDLE(&pdev->dev),
>                 ACPI_DEVICE_NOTIFY, acpi_pad_notify);
>  }
>
> @@ -137,13 +139,12 @@ static const struct acpi_device_id pad_device_ids[]=
 =3D {
>         {"", 0},
>  };
>
> -static struct acpi_driver acpi_pad_driver =3D {
> -       .name =3D "processor_aggregator",
> -       .class =3D ACPI_PROCESSOR_AGGREGATOR_CLASS,
> -       .ids =3D pad_device_ids,
> -       .ops =3D {
> -               .add =3D acpi_pad_add,
> -               .remove =3D acpi_pad_remove,
> +static struct platform_driver acpi_pad_driver =3D {
> +       .probe =3D acpi_pad_probe,
> +       .remove =3D acpi_pad_remove,
> +       .driver =3D {
> +               .name =3D "acpi_processor_aggregator",
> +               .acpi_match_table =3D pad_device_ids,
>         },
>  };
>
> @@ -157,6 +158,6 @@ static int __init xen_acpi_pad_init(void)
>         if (!xen_running_on_version_or_later(4, 2))
>                 return -ENODEV;
>
> -       return acpi_bus_register_driver(&acpi_pad_driver);
> +       return platform_driver_register(&acpi_pad_driver);
>  }
>  subsys_initcall(xen_acpi_pad_init);
> --
> 2.51.0
>
>
>
>
>


From xen-devel-bounces@lists.xenproject.org Sat Mar 21 10:35:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 21 Mar 2026 10:35:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1258611.1552408 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3tff-0000UH-DW; Sat, 21 Mar 2026 10:35:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1258611.1552408; Sat, 21 Mar 2026 10:35:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3tff-0000Tx-8C; Sat, 21 Mar 2026 10:35:07 +0000
Received: by outflank-mailman (input) for mailman id 1258611;
 Sat, 21 Mar 2026 10:35:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1w3tfd-0000To-Qq
 for xen-devel@lists.xenproject.org; Sat, 21 Mar 2026 10:35:05 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1w3tfc-002AZW-2i;
 Sat, 21 Mar 2026 10:35:04 +0000
Received: from [2a02:8012:3a1:0:46:5a6f:bd3e:6c81]
 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 1w3tfc-005B2F-1o;
 Sat, 21 Mar 2026 10:35:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=jUpMezpGODoFu+Hi3WjVWW5R4Eqn42nXq8qQmVCK5Kw=; b=NouUXY45Rx0bB4Qll9ZPSn93cj
	LX7FLd1WXZ7kuJaw6J4j+2onA0r7o2cDFoFljqMPaV21BnyjyHBi4j7luUNVnzU5Wpy21Ccz0ILT3
	ABraHDVTnlIfwq3L3pokr0kgFaW20N2AAPHxt+ww4dI3vq5KZRKpkXmxeAPAQGfP1HPY=;
Message-ID: <91968fdb-e0fb-43aa-9f8c-994ed733de6e@xen.org>
Date: Sat, 21 Mar 2026 10:34:59 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: vpsci: ignore upper 32 bits for SMC32 PSCI
 arguments
Content-Language: en-GB
To: Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Mykola Kvach <xakep.amatop@gmail.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <3a3180b0f77d815e92c0c232a8f854d34ab7c2ea.1773860069.git.mykola_kvach@epam.com>
 <F2AB3928-C65E-43DC-80F0-1F2F4DDC8037@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <F2AB3928-C65E-43DC-80F0-1F2F4DDC8037@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Bertrand,

On 19/03/2026 07:47, Bertrand Marquis wrote:
> Hi Mykola,
> 
>> On 18 Mar 2026, at 19:56, Mykola Kvach <xakep.amatop@gmail.com> wrote:
>>
>> From: Mykola Kvach <mykola_kvach@epam.com>
>>
>> SMCCC DEN0028G, section 3.1, states that for AArch64 SMC/HVC calls
>> using Wn, only the least significant 32 bits are significant and the
>> upper 32 bits must be ignored by the implementation.
>>
>> So for SMC32 PSCI calls, Xen must not treat non-zero upper bits in the
>> argument registers as an error. Instead, they should be discarded when
>> decoding the arguments.
>>
>> Arm ARM DDI 0487J.a (D1-5406) also notes that the upper 32 bits may be
>> implementation defined when entering from AArch32. Xen zeros them on
>> entry, but that guarantee is only relevant for 32-bit domains.
>>
>> Update PSCI v0.2+ CPU_ON, CPU_SUSPEND and AFFINITY_INFO to read SMC32
>> arguments via PSCI_ARG32(), while keeping the SMC64 handling unchanged.
>>
>> Suggested-by: Julien Grall <julien@xen.org>
>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
>> ---
>> Link to discussion: https://patchew.org/Xen/cover.1751020456.git.mykola._5Fkvach@epam.com/072270e0940b6bcc2743d56a336363f4719ba60a.1751020456.git.mykola._5Fkvach@epam.com/#7070f416-119c-49f8-acd0-82c6e31f0fc6@xen.org
>> ---
>> xen/arch/arm/vpsci.c | 15 +++++++++------
>> 1 file changed, 9 insertions(+), 6 deletions(-)
>>
>> diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
>> index 7ba9ccd94b..1e844ed571 100644
>> --- a/xen/arch/arm/vpsci.c
>> +++ b/xen/arch/arm/vpsci.c
>> @@ -303,9 +303,10 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
>>      case PSCI_0_2_FN32_CPU_ON:
>>      case PSCI_0_2_FN64_CPU_ON:
>>      {
>> -        register_t vcpuid = PSCI_ARG(regs, 1);
>> -        register_t epoint = PSCI_ARG(regs, 2);
>> -        register_t cid = PSCI_ARG(regs, 3);
>> +        bool smc32 = (fid == PSCI_0_2_FN32_CPU_ON);
>> +        register_t vcpuid = smc32 ? PSCI_ARG32(regs, 1) : PSCI_ARG(regs, 1);
>> +        register_t epoint = smc32 ? PSCI_ARG32(regs, 2) : PSCI_ARG(regs, 2);
>> +        register_t cid = smc32 ? PSCI_ARG32(regs, 3) : PSCI_ARG(regs, 3);
> 
> It might be nicer to modify PSCI_ARG to take a convention argument instead of
> redoing the same test everywhere, this would make the code nicer and ensure no PSCI_ARG
> would have been forgotten.

I would definitely agree with that. But...

> 
> At the end all those conventions are coming from smccc so we could:
> - use smccc_is_conv_64(fid) from smccc.h to get 32 vs 64
> - use smccc_get_fn to get the function id without the convention and reduce the number of entries
> in the switch

I am not sure about this suggestion. Not all 32-bit call have a matching 
64-bit call (e.g. PSCI_VERSION).

Also, it seems that so far the function ID is always matching between 
the two convention, it is unclear whether this is guaranteed.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sat Mar 21 11:01:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 21 Mar 2026 11:01:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1258638.1552416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3u5R-0004UM-83; Sat, 21 Mar 2026 11:01:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1258638.1552416; Sat, 21 Mar 2026 11:01:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3u5R-0004UF-5Q; Sat, 21 Mar 2026 11:01:45 +0000
Received: by outflank-mailman (input) for mailman id 1258638;
 Sat, 21 Mar 2026 11:01:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oq+7=BV=smail.nju.edu.cn=kexinsun@srs-se1.protection.inumbo.net>)
 id 1w3u5O-0004U9-6X
 for xen-devel@lists.xenproject.org; Sat, 21 Mar 2026 11:01:43 +0000
Received: from smtpbgbr1.qq.com (smtpbgbr1.qq.com [54.207.19.206])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4e12da6a-2515-11f1-9ccf-f158ae23cfc8;
 Sat, 21 Mar 2026 12:01:31 +0100 (CET)
Received: from localhost.localdomain ( [116.172.93.199])
 by bizesmtp.qq.com (ESMTP) with 
 id ; Sat, 21 Mar 2026 19:00:40 +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: 4e12da6a-2515-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=smail.nju.edu.cn;
	s=iohv2404; t=1774090849;
	bh=arcVQdd5qWDE7k3IhE0LZZWperzfs+0HGppYUGehWyQ=;
	h=From:To:Subject:Date:Message-Id:MIME-Version;
	b=oQ7cYtyxIKTZ2aI4CkWAPBOk+8wVnfe9TXpprzP2x3cExqioB1H+M2o4k2mq8FBwf
	 PYZSSq7ZtXSbXlGtCI74Rs97gmQXYGzQxhjH5peX2Ykt6SyLS5g+DnZByXQv3J2si9
	 m3bYI65/XGOFPRYvghAGR+aYk62hwukY7bvbw7Bg=
X-QQ-mid: esmtpgz11t1774090842tbb43ee6a
X-QQ-Originating-IP: mv5myG0ehU1YlIZvh6KahtgfL6eeQwVXKmoi3TDFisc=
X-QQ-SSF: 0000000000000000000000000000000
X-QQ-GoodBg: 0
X-BIZMAIL-ID: 4390190608562230099
EX-QQ-RecipientCnt: 11
From: Kexin Sun <kexinsun@smail.nju.edu.cn>
To: jgross@suse.com,
	sstabellini@kernel.org,
	oleksandr_tyshchenko@epam.com,
	xen-devel@lists.xenproject.org,
	iommu@lists.linux.dev,
	linux-kernel@vger.kernel.org
Cc: julia.lawall@inria.fr,
	xutong.ma@inria.fr,
	kexinsun@smail.nju.edu.cn,
	yunbolyu@smu.edu.sg,
	ratnadiraw@smu.edu.sg
Subject: [PATCH] xen/swiotlb: fix stale reference to swiotlb_unmap_page()
Date: Sat, 21 Mar 2026 19:00:39 +0800
Message-Id: <20260321110039.8905-1-kexinsun@smail.nju.edu.cn>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-QQ-SENDSIZE: 520
Feedback-ID: esmtpgz:smail.nju.edu.cn:qybglogicsvrgz:qybglogicsvrgz5b-0
X-QQ-XMAILINFO: MQYXLRAkMyaepRQYOQpwixejF+q32fFP8BysH9VnPTG/7rQkVgNs2Dqe
	3DevTitA2Rwupx8sTy8czw5lzItvfbw4EqDnq0zRtdUXRL0cKzmiK/0g7dS5wcyjNbSSJYP
	z7SBKv8t3dIG+DUPiIGZK9uEBaWAEF38d1AE1+NidD4/0zrH2N2cK2JMvnGpq9pTspDkJpP
	AMjY0KLVzt971Lk5hJaJB4bQPgUKZkXayxFKaPdGDT/pskSc77pTEmwg19n3MAjiKdTMAg3
	olmwGKQyrA5sGp3etdnDOFURKcjH673RZROTUyBSgxEYX7f/tBTjsGH/bz6B6FvseFKnUjt
	bueSpjjBby8fm6O9Oaf+QcGxSCbDeQJG+MW1uALy2EhG4f4PmsbM7wv4/2mGxcmKefGAB7l
	JswOts48VFqhmRtR/Iu7603L8TeRJ3b38q1BPE6RHdf17SfGEG58UIih2tCWCLu+JnP98vE
	id+Lapr9GaoAKb1AiFzsplJbL5eoJ/7rX2niQP8WVFjwyR8nfa+Vu0uv3cGeRyr21o3Aj3l
	fsN8jQD7qHYJXObqeiVy5vhQHEEBz3vV6fm1nhqgQSRN/duO4WfImPoRB383/eunT6k3I8G
	djJa+XuVymCrC0UCFnvswCOkntdzeyUHLv09tE/6/a5FTfODvB7hbVdCHwe0HU8+RHGWRJx
	B2fhtixHfYYLrU/sjossO9vYBEuz968aCQ3Q/5QpcWzvZgxEIR7bYrTdtHcOOYWqiYYhH6q
	I6sgNbfrEV1A1cWtgiRXW/grD/DHfnmiP6pHAmPiOR7V8QduT5JkmXLgWq9OjDLywbdLwo2
	tDnmrnY5i0BEs9o266LNVUiaOPX/U7Lkl6lT1rLJFqJfHoenHWOWM0oSQXZpizqmBhuOajy
	Mb7KtT1YJUKCnJw4EdBb6jE4eqT6tMj+Apblzfku/FovJ2z+0r9Ao17psVwtDr6kVtXEJbW
	dUOqiYeKZIejcar80g+Spml8YaRr1rlAJ7xSmSJyqEMgfFqPj05tZj9ghcWWjBi0/xZFun9
	NWU4qEdHfrLG/sRkWDSGyT2zr2efIsEHj+V4no9FpzHwjfIUcBmalr2WbR382ReiWz6EUk7
	t/PSKzpqpvu3+AYdVAtj/wsS53jBubHVQ==
X-QQ-XMRINFO: NyFYKkN4Ny6FuXrnB5Ye7Aabb3ujjtK+gg==
X-QQ-RECHKSPAM: 0

Commit af85de5a9f00 ("xen: swiotlb: Switch to physical
address mapping callbacks") renamed xen_swiotlb_unmap_page()
to xen_swiotlb_unmap_phys().  The comment in
xen_swiotlb_unmap_sg() had already been missing the xen_
prefix (reading swiotlb_unmap_page()), and the rename only
changed _page to _phys without correcting this, leaving it
as swiotlb_unmap_phys().  Fix the reference to use the
correct function name xen_swiotlb_unmap_phys().

Assisted-by: unnamed:deepseek-v3.2 coccinelle
Signed-off-by: Kexin Sun <kexinsun@smail.nju.edu.cn>
---
 drivers/xen/swiotlb-xen.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c
index ccf25027bec1..4a734ee38994 100644
--- a/drivers/xen/swiotlb-xen.c
+++ b/drivers/xen/swiotlb-xen.c
@@ -340,7 +340,7 @@ xen_swiotlb_sync_single_for_device(struct device *dev, dma_addr_t dma_addr,
 
 /*
  * Unmap a set of streaming mode DMA translations.  Again, cpu read rules
- * concerning calls here are the same as for swiotlb_unmap_phys() above.
+ * concerning calls here are the same as for xen_swiotlb_unmap_phys() above.
  */
 static void
 xen_swiotlb_unmap_sg(struct device *hwdev, struct scatterlist *sgl, int nelems,
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Sat Mar 21 12:44:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 21 Mar 2026 12:44:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1258695.1552426 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w3vgd-0008Qb-Ao; Sat, 21 Mar 2026 12:44:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1258695.1552426; Sat, 21 Mar 2026 12: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 1w3vgd-0008QU-70; Sat, 21 Mar 2026 12:44:15 +0000
Received: by outflank-mailman (input) for mailman id 1258695;
 Sat, 21 Mar 2026 12:44:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mtZ5=BV=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1w3vgb-0008QO-Vv
 for xen-devel@lists.xenproject.org; Sat, 21 Mar 2026 12:44:14 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazon11013070.outbound.protection.outlook.com [52.101.72.70])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a5a93e28-2523-11f1-b166-2bf370ae4941;
 Sat, 21 Mar 2026 13:44:05 +0100 (CET)
Received: from DUZPR01CA0330.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4ba::26) by AM9PR08MB6049.eurprd08.prod.outlook.com
 (2603:10a6:20b:2de::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Sat, 21 Mar
 2026 12:44:01 +0000
Received: from DB3PEPF0000885B.eurprd02.prod.outlook.com
 (2603:10a6:10:4ba:cafe::49) by DUZPR01CA0330.outlook.office365.com
 (2603:10a6:10:4ba::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.25 via Frontend Transport; Sat,
 21 Mar 2026 12:44:00 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB3PEPF0000885B.mail.protection.outlook.com (10.167.242.6) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.19
 via Frontend Transport; Sat, 21 Mar 2026 12:43:59 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DB9PR08MB6571.eurprd08.prod.outlook.com (2603:10a6:10:25b::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.23; Sat, 21 Mar
 2026 12:42:57 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9723.022; Sat, 21 Mar 2026
 12:42:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a5a93e28-2523-11f1-b166-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=RLsjvEeA88v6x8MWPF9C80DyVjwiwfSs+qQfxa1JlrPoKUG+/pi1E+uuw2ezb72XQvy7ofOaz3l5IU9F8dcNB1KPhKL6o1fzkKs4ENCGv00YNAdRr/w1oP56vyDKFNq7ycbo17o2rAtjWfV0PxWdC7ETb7BO7936xD+W8ST/Td82KRkyzI5U4Gp27qHM2E/NaDv/cTfJiaOQ2ZbP+7WmNxH2HE9jpdTw5v7cvN6B55EEw3c43BqB8JFXHzwx2DA0/usDjH9oYlioooiyhzVfgHT7FkYXA4ikPx8I02uMSvrR9f8eqqOWQ3BHDHGOTuSzSXNjNYoVlimBw88RbTzGbA==
ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=R/8sgATuXLzlazUdIRJKRyTnhxXm7Z1HOy4lA+TMv3w=;
 b=ldpR9KZAvH5ROPU8HpAk8RLdDx8Boe3Wr3i46XTnwthGNds8c0Mo4UmXBNwyW626nNZj0+6d3Tc/ZzFmuTG63VzWvA/JRIM3T7hcN+EW/uLpqJxlh83xNTHPnKc5dmS5KyFXMeQc+S1h4KedlA5Z86fvrf4xtNyGthqoHEHCyHss7kEc2SZQ4IM/ucYLHHKAGuVxIkLUid80yndyEGt1HH6kRxbFHHz4nzEJVk6WvvRYlfitwu9gfV76v0VQtX/CzJ77JI8MP6e0S04tHGjx8OVT6jbLYvdTVe4+u/ZnzIjf6hJCWgrT0Z0R8/LKMCuO3JXWhAfHb9RcJxGZ/bDEDA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=xen.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=R/8sgATuXLzlazUdIRJKRyTnhxXm7Z1HOy4lA+TMv3w=;
 b=GsDFGSWP30bHGzUe+fHdJJM+hOcFBWjwtc56tO01+hV1aUcqEGBGtM9kzd4qYlYRIxOVEhpJ9h0H1Yw9E/pmE3f5ovBgfrPR8IiW8L2dmiREnUHq8EtZNiKZwOe4dueWQDZxNfakuzxBQu5tApzjFSrJ9cBttDdcZcBsR6ecQDQ=
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=E/ambHP/XQrBTQVJtHEwj7RoSLj2nJBmUs+yOG9/6Pgs0SVonIO8nGr7AavAuGPE4Zu+3Kzj/rPGAKhVxwOd4+0TYUrc5N40L1eR2Dr68ERmoV1KGGLiUsEm64beIhxgUBoL4O32wNF3LAS58JKkUz8Z2ltbNBbBWKiK+b+cclKtEPK0OX0uIZR9qyMgFJaLkg9oZD4xMsVwX6Y9fA5mt7Yq5j/sfYGDoyIjaZFChAmzvXnsncObSzgIMlyO3/U6gFbJJ6AsgBvbu0OPAHErUDjlRB7gFhUqugYHYgoi/uFOA0NAmVnhHlmELG6KAVts32f77c8yHUDRzoZrUzShCA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=R/8sgATuXLzlazUdIRJKRyTnhxXm7Z1HOy4lA+TMv3w=;
 b=iW6UYY0cXk3EVM/A/jYu8q0FmFFQ/XOKIb0qE5H4ZrdX+8Pz9P8KWd7PR0i/zjFixBlyVn7UyMQoDDzaO/5BMr2+Egp2Q05/bou6WYAKe+mL0cxU5SCAEDRlgty+h2fc+XQoQt6vXjQKo3/2tNn2ck8Ix23wvbEeh7VeQZuQMw9TbR4bfBN2CixSX1fxbVIFmtB9kK3VSwAjkh/ZRLAzcu4E7ZiSgfdM7Ug/V8iZsq2v5yTDtQR3TeHnEw4XnHvAGdtVfbN3N9FdljYagagH5nIQPlO4nH/ef0RWjf0AxWEO/T4/514q26zl5HalOplD8oNsndbZGcqiJNw3VqeQ6g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=R/8sgATuXLzlazUdIRJKRyTnhxXm7Z1HOy4lA+TMv3w=;
 b=GsDFGSWP30bHGzUe+fHdJJM+hOcFBWjwtc56tO01+hV1aUcqEGBGtM9kzd4qYlYRIxOVEhpJ9h0H1Yw9E/pmE3f5ovBgfrPR8IiW8L2dmiREnUHq8EtZNiKZwOe4dueWQDZxNfakuzxBQu5tApzjFSrJ9cBttDdcZcBsR6ecQDQ=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Julien Grall <julien@xen.org>
CC: Mykola Kvach <xakep.amatop@gmail.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] xen/arm: vpsci: ignore upper 32 bits for SMC32 PSCI
 arguments
Thread-Topic: [PATCH] xen/arm: vpsci: ignore upper 32 bits for SMC32 PSCI
 arguments
Thread-Index: AQHctwleCTTA2E8kAkG0JnS9VhefnrW1exAAgANTmYCAACOzAA==
Date: Sat, 21 Mar 2026 12:42:56 +0000
Message-ID: <68A08948-5683-46EA-B5F9-8C8E0C900F5A@arm.com>
References:
 <3a3180b0f77d815e92c0c232a8f854d34ab7c2ea.1773860069.git.mykola_kvach@epam.com>
 <F2AB3928-C65E-43DC-80F0-1F2F4DDC8037@arm.com>
 <91968fdb-e0fb-43aa-9f8c-994ed733de6e@xen.org>
In-Reply-To: <91968fdb-e0fb-43aa-9f8c-994ed733de6e@xen.org>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DB9PR08MB6571:EE_|DB3PEPF0000885B:EE_|AM9PR08MB6049:EE_
X-MS-Office365-Filtering-Correlation-Id: dad29c3e-6cfa-4505-b5eb-08de8747863e
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|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info-Original:
 4vv1xG5+lxL8QrT9km5AUwiB3kwqUy5QL8t5+qxgx0QERJ8069KPGiu4Hd6zzaqHfg3K0WgF7lxL1yKh08YWUdIrENpDvb5pDxb8nUBjy/Jh3R8Dm7GXWpaAyG+Ph+rRiUyd+i1wbFZZ96+pL+mSaexIxDjwp62sfLLDj4dOaqkIsr0O/Vw7Dl3xFqjdvLRUZNSh8Ssw5PpTpGctfGuB32tNCImi86Ukk9sODffEulCh0mSjXfdH4ZKtlMHF8yUyi78nb02cg33tSEl5ZQ5P4NRb9LZbIXzsq1QQjaQJFa97nI4q8OkO71DdyQr6MWLDyR/NdndP2+I4fv/pKAmG+MbRtT1K7Bx4oHW0eQpwkxWkxe3DJLqxX93qeBqzkwVGPUb3fSMt6FexAzylqsGB8t2o97T27jbjLxz9+FItD7M1cuOVtIGBqftw3zv1Qr3Pu7bk9XwTCpaSYTH9XkbT4Bs6SFWJ2uIPoac3WQAzHF8fMqb19KeHxNKQoQ0fY33KBkX45IGO7CKGCYZ34DWL9dcMXMbEimI6PqNGS6qCJ1bI//JkLQrE07i1t6rJaowzIku4OqEsLGsgl5Xo/kwuhnmpitmYMsRd3mdh+d3ARf7QBi0BSdqXOtaB0bxHOwiDsqS5Tq2Rj8yfVzIHFsHMncEXhI0fZRau/CQexDCz36iNz0p5/NuL4BdYl3KX90uciQ4XOhSZ/OyyqY8cntuJyruLWWtw+8U3BewlQOh/RKewycSQyrdy0ckaRRwiHc9v
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <DE154F9666FD6B4DB37BDF6A9A235018@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 uzRV4OZtLvbt5f3YS216rjBHXbENbGfz4/WAEeVJ62U7QrDxb1YM41F/OOZMjBNyGbt71Y2FOYsMQ9+6G0d3Wvm0fWvk9/KLltZT7LB1Xne3FJG3BROEFcTHDkE7NODZQ7EM1dkrOvNtVhXIcvEr9P4ZWSaku+xPwtwaWv+63NKkNGfm24rp9JINokUDnyRh6D3U3XGhJSv1NJIfq/GJYbX1O7wiXfOIAVpLkaFJrp3SfuQuy1K11yqV2OQPEZDri4E1pCcmMVD1W7UXnboujoJTKsl5E+sUzlrQwW9HFN93u+olo8OD77GgAZvMUukptI0c3u7BSpu5KLNb3SiS5g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6571
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB3PEPF0000885B.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	e921f625-1f47-4228-02c4-08de8747609e
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|14060799003|36860700016|35042699022|7053199007|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	XUYltx2Znu0kjEPbDvBuQaAki4IS+FkgbGT9RwgnwLElU9uyIdF2nO3IjaAtAmKzNzHbWoZcbssoiR8F6qAbx5ysrCI3YurzFrZNXR3S+7AafatWRhIMtdoM1L5gUkBCgKBhwwbXs5Wr+hwwMDxoiCZcQPv8UojLD0DS29FLnuhG0HIAa501ZN3D6Zes/T2LrIU2j4K1hAL6UT0fi9izL4HdZDYdraifs+h7J9n6F/2GjrBMHsGhBTbLgmM53dXbcPtZDsjuT0P+A34ATnqmlY64ULIGbq9uctrNjAavav9pWBE26TBQmKyIj57OyeVI5HuwrFLzwc+jO2qdBoVsMzkwLK4t9C5Sdv+ZvmbU33OwHRqUzaIWkaUP8eecGCbZoJ6W/F/7sVYmYtw/10hqOWgQK0VMcSVEjqe0b9QNRkGAs1Vqgz9j+cqn86UbO6TySz/z/hUiS5fv7G8WdpSkkC7oBUZwXlfDebeDrb7E0tCr5O9CLmBbJcK1F9Awh71Vo2Tcd7OuEr6BlGFhBVc7sLoiBRAEFHvPM/+bbP/yZGmLpyigUFBL+VUP0biXkBAhX52bSMdktXHvYwE2dVGj4Tbu6rYMmzQHbPXdbUuu1irFZbWCorL06vUSlYyvvL+3zjTlFntWyZo7rA2f8AByaABNuRuk6HKhDYVcHn3c1XtqLhetCl77vFZxr0dCU/4Ynp4JYvR4zzSA/ndlp6HM9bo0nrR2kDTAo1Ou/ihQ1PE=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(1800799024)(14060799003)(36860700016)(35042699022)(7053199007)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	BNZCbDLDXHcoZmtbgncSvvWRbMkZixbWgUfCeQBsaT6xnoBVgycIOn4SofeCR7NwBvEwW2I5zT21jbg5Q1QyvT5vnD4Qmua8i4v8Czw73Ou+DakhGKXhFT8vBDY4qt0brScKPNdtK+nI8ZN9riTz98SspwMSg2cTw5UV0GDGO9Rk06WIUSXopH2PvI+LTHhee6ilFjt6PRyW9Y9iWiW6OAPNwrq0WGxX+cXUIsSGLO7jokjMXf/fCztOHABy+eobrFQjv5RHEhzUQJ0UcGIbEaXnhFdhzGX2IQpOP16c45MnIZHiIhMcBTx2T7U5yf9JR2R6GYfi3XmuXzvkhnfLuD1aEYpA8yUPnk+p+I/hQ0V8SeZl9jqiXOkykstxwFrCZ3YxLp+vqlltACWDzRNYS9FBV0+z+6pyGcdKc9lEadJxwwiiloCvMy+uOaFoxVTQ
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2026 12:43:59.6896
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dad29c3e-6cfa-4505-b5eb-08de8747863e
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:
	DB3PEPF0000885B.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6049

Hi Julien

> On 21 Mar 2026, at 11:34, Julien Grall <julien@xen.org> wrote:
>=20
> Hi Bertrand,
>=20
> On 19/03/2026 07:47, Bertrand Marquis wrote:
>> Hi Mykola,
>>> On 18 Mar 2026, at 19:56, Mykola Kvach <xakep.amatop@gmail.com> wrote:
>>>=20
>>> From: Mykola Kvach <mykola_kvach@epam.com>
>>>=20
>>> SMCCC DEN0028G, section 3.1, states that for AArch64 SMC/HVC calls
>>> using Wn, only the least significant 32 bits are significant and the
>>> upper 32 bits must be ignored by the implementation.
>>>=20
>>> So for SMC32 PSCI calls, Xen must not treat non-zero upper bits in the
>>> argument registers as an error. Instead, they should be discarded when
>>> decoding the arguments.
>>>=20
>>> Arm ARM DDI 0487J.a (D1-5406) also notes that the upper 32 bits may be
>>> implementation defined when entering from AArch32. Xen zeros them on
>>> entry, but that guarantee is only relevant for 32-bit domains.
>>>=20
>>> Update PSCI v0.2+ CPU_ON, CPU_SUSPEND and AFFINITY_INFO to read SMC32
>>> arguments via PSCI_ARG32(), while keeping the SMC64 handling unchanged.
>>>=20
>>> Suggested-by: Julien Grall <julien@xen.org>
>>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
>>> ---
>>> Link to discussion: https://patchew.org/Xen/cover.1751020456.git.mykola=
._5Fkvach@epam.com/072270e0940b6bcc2743d56a336363f4719ba60a.1751020456.git.=
mykola._5Fkvach@epam.com/#7070f416-119c-49f8-acd0-82c6e31f0fc6@xen.org
>>> ---
>>> xen/arch/arm/vpsci.c | 15 +++++++++------
>>> 1 file changed, 9 insertions(+), 6 deletions(-)
>>>=20
>>> diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
>>> index 7ba9ccd94b..1e844ed571 100644
>>> --- a/xen/arch/arm/vpsci.c
>>> +++ b/xen/arch/arm/vpsci.c
>>> @@ -303,9 +303,10 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs,=
 uint32_t fid)
>>>     case PSCI_0_2_FN32_CPU_ON:
>>>     case PSCI_0_2_FN64_CPU_ON:
>>>     {
>>> -        register_t vcpuid =3D PSCI_ARG(regs, 1);
>>> -        register_t epoint =3D PSCI_ARG(regs, 2);
>>> -        register_t cid =3D PSCI_ARG(regs, 3);
>>> +        bool smc32 =3D (fid =3D=3D PSCI_0_2_FN32_CPU_ON);
>>> +        register_t vcpuid =3D smc32 ? PSCI_ARG32(regs, 1) : PSCI_ARG(r=
egs, 1);
>>> +        register_t epoint =3D smc32 ? PSCI_ARG32(regs, 2) : PSCI_ARG(r=
egs, 2);
>>> +        register_t cid =3D smc32 ? PSCI_ARG32(regs, 3) : PSCI_ARG(regs=
, 3);
>> It might be nicer to modify PSCI_ARG to take a convention argument inste=
ad of
>> redoing the same test everywhere, this would make the code nicer and ens=
ure no PSCI_ARG
>> would have been forgotten.
>=20
> I would definitely agree with that. But...
>=20
>> At the end all those conventions are coming from smccc so we could:
>> - use smccc_is_conv_64(fid) from smccc.h to get 32 vs 64
>> - use smccc_get_fn to get the function id without the convention and red=
uce the number of entries
>> in the switch
>=20
> I am not sure about this suggestion. Not all 32-bit call have a matching =
64-bit call (e.g. PSCI_VERSION).
>=20
> Also, it seems that so far the function ID is always matching between the=
 two convention, it is unclear whether this is guaranteed.

PSCI is an SMCCC spec and smccc defines the fid format with fast call or no=
t, 32 or 64 and function id and that is the same for 32
and 64 but there is no enforcement to provide both 32 and 64 versions (for =
example there are some ffa calls which are only available
in 32 bit mode so 64bit version would get an UNSUPPORTED back).

I am not suggesting we accept both versions when only one is supported here=
, we can still have the switch base on function id and
for specific one reject if it is not 32 bit format.

Anyway as said this was more a suggestion than a request so maybe better to=
 skip that for now.

Regards
Bertrand

>=20
> Cheers,
>=20
> --=20
> Julien Grall




From xen-devel-bounces@lists.xenproject.org Mon Mar 23 09:46:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 09:46:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259120.1552435 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4brR-0004KA-SH; Mon, 23 Mar 2026 09:46:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259120.1552435; Mon, 23 Mar 2026 09:46:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4brR-0004K2-Nj; Mon, 23 Mar 2026 09:46:13 +0000
Received: by outflank-mailman (input) for mailman id 1259120;
 Mon, 23 Mar 2026 09:46:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Mykyta_Poturai@epam.com>) id 1w4brQ-0004Jd-Ee
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 09:46:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4brO-008NEf-Tv
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 10:46:11 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 69c10bd7-bab6-0a2a0a5309dd-0a2a450b9f10-46
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 10:46:10 +0100
Received: from [52.101.70.140]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 69c10be2-ef63-0a2a450b0019-3465468c5ccc-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 10:46:10 +0100
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PAVPR03MB9116.eurprd03.prod.outlook.com
 (2603:10a6:102:32f::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 09:46:07 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9723.030; Mon, 23 Mar 2026
 09:46:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zN0K+9VnPHKafNXF4A7/YpIb4KuP/d/JPFYk3ZBpDWRPSxTeiBL9ngT5r/o2XRHW4bzCfCXZMWwZ48+W8oGtSpm8G4XAtkz/WQYhd40ZsRi7X4ZCfe8wRCFNyctsZPOZCMUt35ElhgCYcqYRnQTkPGiZWo5t6T9WtlSKmaOYaJoop0H5GN7efUJnIMWinG2mEaCKY/3ODaeF9e7HEf1cDI1tnFUM86zIpZ3xPsCC7TUqSZQmVuGx34WZh8ftiWjk+KYOgSsaPAM1MwWfg5uKVof8rsljVtDo44OJvTH2uAZi56PRRHEersovjnmvwXH6FWoQZNwj/CwwMBjxFo1BaA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0q0PiQZMLqqcTWoiLWBnffvBZD/sjOt+B4Icqn4BIa0=;
 b=mOeONoj+YhgTsGN2Fy4gW6htEVTp3UPAFuISNp3vKkGVKEvjQuMtb+HEJvuHQKVAohX1WKu4U7Lsay4Babk6a3bbexUDOkfeeTLPBZADCTSTnL4gPR380xQwxKpLQ26TsQ9o4dq1ijUNN+Yw0C7puwO56sWAK8IOgdd+08ACCb/80BdK9I6390Onsq94p5vp7KeQ0dUkcqclOdwHa5NIsTRJfNPTftCxghnhJ8iuEWPmvJvbuQZJGterLum3qcAVjKmGfxLyVDEjGd71G69K46PYTvay0igWpo5G5N9Jw7nxHkHE5y+hEQ5sjM081cBay1r6kJ0VqvK5BWEW5Hg+5Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0q0PiQZMLqqcTWoiLWBnffvBZD/sjOt+B4Icqn4BIa0=;
 b=T1HDzRaDW/rSOcKwswfzqDU6Q8OvrwjD1AD8VvfSgeQgpoXZksH01ryEK+gNnGw/Iaemd9or21mU+M3lGS3VZM10Y7is6ShLJsF11IVu1f4/Gvp/PFnZgSNkLPUnLu1pyl7DpXMS/cDbxuyba7P/LHpRhNyw1Svk2x5IyzbSwghjbBEKglxB3LlNfdTPiRdhkcxuXe4rZhZD7oxAr49aGg7oiI/trZefZTgc15QnHwliwxuG41MTl8+PQSvIEM76Yja/Lze/1Ulxl0p+c9qPcSyJ6RCxk8JsYhrcEm0CRfkMFyGfxto0fk9oZtC2FfKSGLA7gMR+sP6MutTshV0rGQ==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, "Daniel P.
 Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v2 6/8] vpci: add SR-IOV support for PVH Dom0
Thread-Topic: [PATCH v2 6/8] vpci: add SR-IOV support for PVH Dom0
Thread-Index: AQHcr7UOJDdt9SAQzUinWXRod1IIzLW2apcAgAWJuwA=
Date: Mon, 23 Mar 2026 09:46:06 +0000
Message-ID: <ce48a214-e20a-4515-bc79-ecaca02a0eef@epam.com>
References: <cover.1772806036.git.mykyta_poturai@epam.com>
 <b4c86444970a65f56d20203fd77ee368e1eebfb9.1772806036.git.mykyta_poturai@epam.com>
 <436cf1f3-5b5b-4c55-8372-4cf7c7528a4e@amd.com>
In-Reply-To: <436cf1f3-5b5b-4c55-8372-4cf7c7528a4e@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: PAVPR03MB10102:EE_|PAVPR03MB9116:EE_
x-ms-office365-filtering-correlation-id: f2c1de51-3286-4d66-ddc5-08de88c101a7
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|376014|366016|38070700021|7053199007|56012099003|18002099003|22082099003;
x-microsoft-antispam-message-info:
 p5fnaRld/DvW3mtOid5H8HZDZZRHUz1dRckvD8nitnSjomvgvmLp7zfnZKCGlwHPagNdc13jLDyMjPlaoiyU49DkyBJjR3oN+SnYMGizvoW6U0p4KFFECtFY4Mafpd9dAkkxx1gaEOibAXJpFvMlV6X6BhZcynaWyqmXVuTOMf1/7g2E6tFWFBdlW2A3Ai0OmyPJeJb9h9t+p6aSp3zjXL/9nzVHCihPE5r70SoEPbWr+2UalKFlJDGX8xwRg5aRWZQypMO3MXBgRntGzboAQNIyDNdvj/Cs1WL6FFP5uKfo1g/hTYkyOJz737E4mOfSCLrSS2R6dT8sQTVJaGMRzotXL1lnYmeDd/GhO0pEwgFYpliwWPLpFo4N9NzOxpGSUAE3D0/HmRcUF6lMryYQOopG3bALzwpi4m6PiG2zIAn07iG5vPs3UD7rO8e5FJ5q1HXKqO3Dv0SgAzGBWAYPjDIUK4qzA5kWZzUx19aMgJpuOMjJf3wu1eZOljsK35DOZovlzKvD5qQXOUfehyZOAmkhea6BGShkSx2wwPUKLyneA9VdgVdlAlVcfB6YD7Rg0i8Y3doMOmuXjDoFplwC/ukLPpeR4lQRYDK0nVIx4oN3O1rd2ta+St0EcuAdnHEGF6dU5nTUVLvDNAMJAks/Ie5gZFHDiiVkbWq8mDm03eTNo9TjDteNU0PzVPo2W19fExw0bkcSJvafJntIDdTNjOMP1HTW6LEGpjCqMoEOLi9G056fAJUSJdrtYiLW5S+HIQhMXFjJAZXpOgvC1esxxnR8CN1NDrUCBbfGAY3xS8s=
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)(7053199007)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?OThGTEFFOGViNnJNVFptWHRlZFozK1NVVXNuOTFjVUZFaWhQcDZFNnRmdHcw?=
 =?utf-8?B?bW9lVXBuczVybVg4ZGIycGViOVJJc3lETndjVEZock5JTmJWQ1JXZ2Y2K3hi?=
 =?utf-8?B?dVN5U1E4OFhTWW5JbkVKM21rY2JxUFdkclE0clBlUWZURXBwa25WdVdkanVD?=
 =?utf-8?B?SDROMkNxbGpXL0JSZXZGSmkwd3o5NEVFUUJNdlFkNlZVWXJkYkE1ZDM5NWlQ?=
 =?utf-8?B?MDk4bks0blpqSUJHbFc3SDJtc0dEQ3EyQ0tGVUhWYkJXYlowbzdSL0p4dldv?=
 =?utf-8?B?VGE0bXJNV1hVZ0czbHB2M3drOEVIdXFOQnBSdmZVcXRadEFrNDljQS93dFpQ?=
 =?utf-8?B?VlpNRHZwWnZ4RmZwOFJtMDZRUXFwSlFtNWE3ZXJvcXFZNGxUNFBUbFRsQXpv?=
 =?utf-8?B?dXpHRUszMmQrWkx6UlpnTVF0SXpBekpwaWNmZmkyT0JDT1BWQ1RVcUJKNng4?=
 =?utf-8?B?d0hqVEhhSnowN0kyZmJsUzYzQ21NK3JGZ2Qzb3NDbk9WM3htS2RSTjRORWlw?=
 =?utf-8?B?UEc1YXMvMVBlSVlmdkZUV0VjdlIvWHNPcEFXVHVBZHIxUzlJUFJqaXN6bEEw?=
 =?utf-8?B?bWh2V0ZTNnFrSXl3aVZwYXlFUXMxQmp3Unk0STJaRTA1NzdBbnRHRytMOVpO?=
 =?utf-8?B?YTRnaUFra2RRVXNLOW03eGc0R09kZ09Idy9nVHdqZFpJS0svYkFKMWQvL1hF?=
 =?utf-8?B?cGFQUXo0NHFQdkk2K1Qvc3hnRWwvemxDRndVSi83Tzc3RzA2eWxLWVVsUWx1?=
 =?utf-8?B?OFo2Q1hDQ0tibVJOWmpEc1RSVmhyUWNJbzU5MmhlMmFQVGF6ZTE2U3lreTlp?=
 =?utf-8?B?Tm9EQmNXdnZESHVxNVd5dk9QUWtGTHVraXF3azFpemYyakwrWjFBYmFET2pj?=
 =?utf-8?B?aVlROFVxQXVqNm9BZHhFRktXV3lZWWtQVldkaHBDdmZVNkhPcjROeGhWQjdZ?=
 =?utf-8?B?VkdYOHRIZ01jRVR0ZTN5bmpCaWduYnVDa3FGWHhrKytUSTM4Qmx1S3dxMFM3?=
 =?utf-8?B?SXpyUnhtUkswQW1zZXlHZVdwanArd3ZYenJSeWJNRTZMSkluUTZQTmQzZ1NU?=
 =?utf-8?B?QTlLMVp1aDJ4U1B5Y29MNHVOU1plOWF3ODhuSU9yWDVIY21oSEpsRWtYR0RY?=
 =?utf-8?B?alZDRWhVMERBQk5ObWhJWDNHYW5ZcE5weFdGcTZUZUtFaWl0NlhGb1ZaL2Vp?=
 =?utf-8?B?ZWJxQWJZRnVIVVc3SU1rS3g2NWtkdnhUOHhlYXdQb29XZGZBSG5Oc1pvOVc1?=
 =?utf-8?B?dXJiRkp4SmZsZnlSZjYvMXo0bWZncGJndFV0UmZIaHBtUUR1MWRtZjBockJU?=
 =?utf-8?B?bVdrb0hnME9EZzJkRGlrcDF4L0l3RjNsUGJQa0RZaWxnRWZLMHVNS3JuUStQ?=
 =?utf-8?B?QkZrQlF1Y0VYRzFmc3JPNmxaL24zMVZoajRJd09Ka2h3U1pGSmlhamZqT3Vn?=
 =?utf-8?B?NDJDQzJ6NTN5Qk1PNk9nOGhmWFpUMnAwTlRDQnNEU29SWFdkN216NFlteHpk?=
 =?utf-8?B?S0hOTkwyL2NIQmxWUGx3YjRjd3J6MVIyZ1liOGY0NjF6NWpkR3U2bjNkRHlO?=
 =?utf-8?B?OUlzeFNZZDFTUEJ1Zmk0MC9icTNLSlFaR0RyRStTaWlvcnB6eTBuSVBmeWNs?=
 =?utf-8?B?b2dKZk02cEZ0aFBOMFBZdlNpSzhROVU2YTJtL1NvSlNRZjdqUDNLdUc5c1hz?=
 =?utf-8?B?enUyNG1Vai9OYWhBWGdBdzVsMTFXamFTN2huRmcyWXJWcFdzSGMyelVBUEgr?=
 =?utf-8?B?VXNrcm9wMWdmWUh5YjFlMTFESm5IUFhSQ3ZZMjMwOXhHdEcydGluSENLSU9z?=
 =?utf-8?B?bkVYdFhRZXlwRUlyRFhDNW1mOWlnS00ydG9DeUowNktJcHQ2eUw2cW1oV1hu?=
 =?utf-8?B?bXE1anFBKzhRZkNyVi9YelNBVjJ3SnZnTWtEMkZkeTN2TGo2cm9ZN0FMbExH?=
 =?utf-8?B?T3N0VVZtK3Bpd2g0OGtONi9MRzZvUGdkUmJUZW5EU0lnZHdqQ08rYnlLSkVR?=
 =?utf-8?B?RG5JanFoOFg0aDdVdXZaeDdXS0VRUXkxekVsL3dQakN0L3BrWVQrU2FuWk42?=
 =?utf-8?B?TUZyZTlmZDJjWE94U2RtL3JQNHZrSzdaVFcrZ1lFSkg3dDVQWU1sWG5vNmNq?=
 =?utf-8?B?RDIraXA0MGhkOGlVaHVwNEg5a3FVbXR4OGhYTnQyVnlncGY1Q1puNEU3dS91?=
 =?utf-8?B?eU1mRFFQd251VDNXZ2U2anhtVmw5azZuZW5pTFQ1RnJOUktuTERkaUl6aDQv?=
 =?utf-8?B?ak9PS2NMRElFdFhGcDZVUU5ZOVV3aTZiNEdOM3ErTUkxUUowRXVreXVtVkZH?=
 =?utf-8?B?TUJDdXBFTUw1dTM2UmI2M0xJbmRiTUdWS3hkWmlLaE5qTW9aYzQ5OGU5Ykxw?=
 =?utf-8?Q?co0Izod0h1Km5vBk=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <27CA01859ED5F94D8B879AFBEDEEF879@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: f2c1de51-3286-4d66-ddc5-08de88c101a7
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 09:46:07.0437
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: gie0TQxhrZjy1V0Kc8JdXxTkykHf2U3jSrdUucjtBtaoT2yLhQfjz2SM18V63yhqBdwyCj7om0FalHFydkiLdw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9116
X-purgate-ID: tlsNG-42698a/1774259170-9A2B0112-99D22EB0/0/0
X-purgate-type: clean
X-purgate-size: 3520

T24gMy8xOS8yNiAyMzoxMSwgU3Rld2FydCBIaWxkZWJyYW5kIHdyb3RlOg0KPiBPbiAzLzkvMjYg
MDc6MDgsIE15a3l0YSBQb3R1cmFpIHdyb3RlOg0KPj4gRnJvbTogU3Rld2FydCBIaWxkZWJyYW5k
IDxzdGV3YXJ0LmhpbGRlYnJhbmRAYW1kLmNvbT4NCj4+DQo+PiBUaGlzIGNvZGUgaXMgZXhwZWN0
ZWQgdG8gb25seSBiZSB1c2VkIGJ5IHByaXZpbGVnZWQgZG9tYWlucywNCj4+IHVucHJpdmlsZWdl
ZCBkb21haW5zIHNob3VsZCBub3QgZ2V0IGFjY2VzcyB0byB0aGUgU1ItSU9WIGNhcGFiaWxpdHku
DQo+Pg0KPj4gSW1wbGVtZW50IFJXIGhhbmRsZXJzIGZvciBQQ0lfU1JJT1ZfQ1RSTCByZWdpc3Rl
ciB0byBkeW5hbWljYWxseQ0KPj4gbWFwL3VubWFwIFZGIEJBUlMuIFJlY2FsY3VsYXRlIEJBUiBz
aXplcyBiZWZvcmUgbWFwcGluZyBWRnMgdG8gYWNjb3VudA0KPj4gZm9yIHBvc3NpYmxlIGNoYW5n
ZXMgaW4gdGhlIHN5c3RlbSBwYWdlIHNpemUgcmVnaXN0ZXIuDQo+Pg0KPj4gQWxsb3cgZm9yY2lu
ZyB2cGNpX21vZGlmeV9iYXJzIHRvIG5vdCBkZWZlciB0aGUgYWN0dWFsIG1hcHBpbmcgY2hhbmdl
cywNCj4gDQo+IEkgZG9uJ3QgdGhpbmsgdGhpcyBpcyBzdWl0YWJsZS4gV2UgcGVyZm9ybSB0aGUg
cDJtIG9wZXJhdGlvbnMgaW4gYSBkZWZlcnJlZA0KPiBjb250ZXh0IGJlY2F1c2UgdGhleSBtYXkg
dGFrZSBhIGxvbmcgdGltZS4gQW5kIHNpbmNlIHRoZXkgbWF5IHRha2UgYSBsb25nIHRpbWUsDQo+
IHRoZSBsb2dpYyBpcyBpbnRlcnJ1cHRpYmxlOiBpbiBtYXBfcmFuZ2UoKSwgd2UgcGVyZm9ybSBh
IGdlbmVyYWxfcHJlZW1wdF9jaGVjaygpDQo+IGFuZCByZXR1cm4gLUVSRVNUQVJUIHNvIHRoYXQg
d2UgZ2l2ZSBhIGNoYW5jZSBmb3Igb3RoZXIgcGVuZGluZyB3b3JrIHRvDQo+IGNvbXBsZXRlLCBp
bmNsdWRpbmcgdGhlIHNjaGVkdWxlciBzb2Z0aXJxLiBJZiB2cGNpX3Byb2Nlc3NfcGVuZGluZygp
IHJldHVybnMNCj4gdHJ1ZSwgaXQgd2lsbCBiZSBjYWxsZWQgYWdhaW4gYW5kIGlzIGV4cGVjdGVk
IHRvIHJlc3VtZSB3aGVyZSBpdCBsZWZ0IG9mZi4gVGhlDQo+IHZjcHUgd29uJ3QgY29udGludWUg
dW50aWwgdnBjaV9wcm9jZXNzX3BlbmRpbmcoKSByZXR1cm5zIGZhbHNlLg0KPiANCj4+IHdoaWNo
IGlzIG5lZWRlZCB0byBmaXggdGhlIHNlcXVlbnRpYWwgY2FsbHMgdG8gdnBjaV9tb2RpZnlfYmFy
cyB3aGVuDQo+PiBlbmFibGluZyBWRnMgZnJvbSBEb20wLg0KPiANCj4gSSdtIGd1ZXNzaW5nIHlv
dSByZXNvcnRlZCB0byB0aGlzIGJlY2F1c2UgeW91IG5lZWQgdG8gcGVyZm9ybSBtdWx0aXBsZSBt
YXBwaW5nDQo+IG9wZXJhdGlvbnMsIGJ1dCB0aGUgdlBDSSBkZWZlcnJlZCBtYXBwaW5nIG1lY2hh
bmlzbSBvbmx5IHN1cHBvcnRzIGEgc2luZ2xlDQo+IG9wZXJhdGlvbj8gSWYgc28sIHRoaXMgaXMg
YW4gaXNzdWUgSSd2ZSBiZWVuIGF0dGVtcHRpbmcgdG8gcmVzb2x2ZSBmb3Igc29tZSB0aW1lDQo+
IHdpdGggdGhlIEJBUi13cml0ZS13aXRoLW1lbW9yeS1kZWNvZGluZy1lbmFibGVkIHNlcmllcyBb
MV0uIEluIHRoYXQgc2VyaWVzIEknbQ0KPiB3b3JraW5nIG9uIGludHJvZHVjaW5nIHRoZSBhYmls
aXR5IHBlcmZvcm0gbXVsdGlwbGUgbWFwcGluZyBvcGVyYXRpb25zLiBJJ20NCj4gYWxtb3N0IHJl
YWR5IHRvIHNlbmQgdjMgb2YgdGhlIEJBUi13cml0ZS13aXRoLW1lbW9yeS1kZWNvZGluZy1lbmFi
bGVkIHNlcmllcywNCj4gYW5kIEkgaG9wZSB5b3UgZG9uJ3QgbWluZCB0aGF0IEkgaW5jbHVkZSB5
b3VyIHBhdGNoICgidnBjaTogVXNlIHBlcnZjcHUgcmFuZ2VzDQo+IGZvciBCQVIgbWFwcGluZyIp
LiBZb3UgbWF5IGNvbnNpZGVyIHRoZSBwb3NzaWJpbGl0eSBvZiBiYXNpbmcgU1ItSU9WIG9uIHRo
aXMNCj4gd29yayBpZiBzdWl0YWJsZS4NCj4gDQo+IFsxXSBodHRwczovL2xvcmUua2VybmVsLm9y
Zy94ZW4tZGV2ZWwvMjAyNTA3MjMxNjM3NDQuMTMwOTUtMS1zdGV3YXJ0LmhpbGRlYnJhbmRAYW1k
LmNvbS9ULyN0DQo+IA0KDQpJ4oCZdmUgbG9va2VkIGF0IHlvdXIgY2hhbmdlcywgYnV0IHRoZXJl
IHNlZW1zIHRvIGJlIGEgcHVzaCBhZ2FpbnN0IA0KZHluYW1pY2FsbHkgYWxsb2NhdGluZyB0YXNr
cywgd2hpY2ggd291bGQgbm90IHdvcmsgd2l0aCBTUi1JT1YsIG9yIA0KcmVxdWlyZSBhIGxvdCBv
ZiB0YXNrIHN0cnVjdHMgdG8gYmUgcHJlYWxsb2NhdGVkIGFuZCB1c2VkIHZlcnkgcmFyZWx5Lg0K
DQo+IFJlZ2FyZGxlc3MsIHVsdGltYXRlbHkgd2UgbmVlZCB0byBmaW5kIGEgd2F5IHRvIHJldHVy
biBmcm9tDQo+IHZwY2lfcHJvY2Vzc19wZW5kaW5nKCkgZHVyaW5nIHRoZSBwb3RlbnRpYWxseSBs
b25nLXJ1bm5pbmcgcDJtIG9wZXJhdGlvbnMuDQo+IEFzIGFuIGFsdGVybmF0aXZlIHN1Z2dlc3Rp
b24sIGNvdWxkIHlvdSByZXR1cm4gZnJvbSBjb250cm9sX3dyaXRlX2NiKCkgYWZ0ZXINCj4gZWFj
aCBjYWxsIHRvIG1hcF92ZnMoKSwgYW5kIHNvbWVob3cgbWFrZSBpdCByZXN1bWUgd2hlcmUgaXQg
bGVmdCBvZmY/DQoNCknigJlsbCB0cnkgdGhpcyBhcHByb2FjaCwgdGhhbmtzLg0KDQotLSANCk15
a3l0YQ==


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 09:54:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 09:54:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259133.1552444 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4bzL-0006JI-KV; Mon, 23 Mar 2026 09:54:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259133.1552444; Mon, 23 Mar 2026 09: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 1w4bzL-0006JA-Hh; Mon, 23 Mar 2026 09:54:23 +0000
Received: by outflank-mailman (input) for mailman id 1259133;
 Mon, 23 Mar 2026 09: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=+HLc=BX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w4bzJ-0006J0-RH
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 09:54:21 +0000
Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com
 [209.85.221.54]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4356ab68-269e-11f1-b166-2bf370ae4941;
 Mon, 23 Mar 2026 10:54:20 +0100 (CET)
Received: by mail-wr1-f54.google.com with SMTP id
 ffacd0b85a97d-439b2965d4bso1787739f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 02:54:20 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48704f14441sm51581255e9.9.2026.03.23.02.54.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Mar 2026 02:54:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4356ab68-269e-11f1-b166-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774259660; x=1774864460; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MkkAi4GPXI4BL/Ro10p8I+HRaEZcrEneOKdYbsdT9G8=;
        b=XvkhzO7hT1Bez8Bp4awHzRfxYJozoXhYUFXTa/gn2dwFnstSwVIn5yzszpA2dkQCq2
         VCLi0CnisJqm8DChK66H8QMc3eBp4K/KRK1WI8AjsEfWMdLMF72UiRpvLobA9CYdmbND
         CuXifbfNiKIMfZqGsLX3R9utBzoUlV3vYiUQe3ER1F34KQDnLfhyIJZeYxdR3/578Skm
         egxYUmCJJiqlocjoqdiU8oOghFz/vcK5j4tW57NkhlrRgKBmkdvFYk5qexyKt+AXkMk+
         KQvVZtDWX8r+isMIahxPnUi59sMxmlSJOGbSiseCwQbjCvaPDBs+aCrcc1FEl7vVktfr
         KiWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774259660; x=1774864460;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MkkAi4GPXI4BL/Ro10p8I+HRaEZcrEneOKdYbsdT9G8=;
        b=U1lsFT0S7CNpqrnB21txMpgSWWsnok9/nzJrGPT/8j0fPOFIKMoKj2HSCt5x5JYZHw
         VbZYpdOxOmiTSFfRhW5lq0dI3GpJloTyDMJUaW6pHFiWuSj2UW74eR4es6slyAkb7REY
         4cZ7gODrCnNe0Fr8464tePp9TVPNMmRabpoXd+YFVSTIT8FsJPqO2RSXg+GLkv/VSwx4
         0GT7YPOcJNJecR/PJnKOM3pRXbP2eQYGT87R5T8Dar6av6klauVZL/gI2bcMKLt1qPTl
         QqZfUE6VVX+edj5/STYmUUk5u6FGDknsk6IQ5BWaDdQAo1SFYgRrIGuVgkTHlilV8QGT
         yM7w==
X-Forwarded-Encrypted: i=1; AJvYcCXdgfgEQYWqSg289N3jIHGl+uIVQlkOwhCTHnf6wv37ZVLoUrRsmVaWT0dlvTAw7DYXa4ghyAt5AB4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwjUcNhl1Fj42vGhyxxOP5Z72DinA+Bk00/Vw4d8d6KuTDb0kn/
	5SyfQ7y8h/ZVuidi35MUQ1O40OV1pMgriYWUsREVgzXy3ukf/Vtk2EPLvHxMNS1oow==
X-Gm-Gg: ATEYQzzWAjoCyGwRVU40fYfveV6vMfbFkNTHb7W0OEEoq2kiRsmD0wG/UXyqYD/xJtr
	liqOfrI3xdSj8RCTT6FQcEQr5BZ/JyyldmjgtYaGCFs+V7WRLamCGCMMPVSZqS1V1If2o+V/DVO
	Ktgzjd71EnAZvR7aTM9O2XgG6Wyk1gVh0hdp9cVnGp1vceoJqNERO9ysPFgedDZ0kbEmVsycg5d
	o7UonpNQ849EbIi4dnYFCQUirMyFvCYo5u+6PIImzZL7E3oPJtCuMPZpvaQw3BSyYGBbmyb/+Nq
	4jJ+XbqnoIio99EmgS3eh0/7dEvVTWujALfVXIcLuDHnu9mru/rlnQfp1kq5RxVBffmoc3PKC5t
	DskDF1pWwj53MYSDO/Og4g1qUip/EYjKZxCxPBKofALVFil8+ZjLvAR6rcxzQ3qs6E/uX7ptjHX
	BfUJO5y5vw8PtGsUKhBDImeN/ups3+Jiw36A/xb6MrKqRbQL+rLjg1GAoFqu9brcXgZYbDdtiWg
	Ud6Pz0NbSZArhTJXMm3TWaLTQ==
X-Received: by 2002:a05:600c:8b83:b0:486:fa9c:185 with SMTP id 5b1f17b1804b1-486fee2ffd5mr149546015e9.31.1774259659574;
        Mon, 23 Mar 2026 02:54:19 -0700 (PDT)
Message-ID: <9c69f190-72e1-4ca2-bebe-4b92031fd26f@suse.com>
Date: Mon, 23 Mar 2026 10:54:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v v3 1/7] x86: relax some CPU checks for non-64 bit CPUs
To: Kevin Lampis <kevin.lampis@citrix.com>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com,
 xen-devel@lists.xenproject.org
References: <20260313163630.1073019-1-kevin.lampis@citrix.com>
 <20260313163630.1073019-2-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: <20260313163630.1073019-2-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.03.2026 17:36, Kevin Lampis wrote:
> These checks were guarding against non-64 bit CPU models but they are
> not supported by Xen anymore so the checks are no longer needed.
> 
> The switch statement was removed from mcheck_init()
> to support Intel family 18/19.
> 
> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 09:55:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 09:55:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259141.1552453 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4c0q-0006w2-Vy; Mon, 23 Mar 2026 09:55:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259141.1552453; Mon, 23 Mar 2026 09:55: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 1w4c0q-0006vv-SD; Mon, 23 Mar 2026 09:55:56 +0000
Received: by outflank-mailman (input) for mailman id 1259141;
 Mon, 23 Mar 2026 09:55:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w4c0p-0006vp-HP
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 09:55:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4c0o-002amn-T7
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 10:55:54 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c10e2a-e002-0a2a0a5209dd-0a2a4505ec7c-2
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 10:55:54 +0100
Received: from [209.85.208.178] (helo=mail-lj1-f178.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c10e2a-5aeb-0a2a45050019-d155d0b2c006-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 10:55:54 +0100
Received: by mail-lj1-f178.google.com with SMTP id
 38308e7fff4ca-38bf1561215so24519111fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 02:55:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20230601 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1774259753; cv=none;
        d=google.com; s=arc-20240605;
        b=cqc5bk2z6VcxD39dFXxTcvjbZETMCLpjKIe3xDkN0IYUNwv6RHgus28/urHQ7PbqO0
         tLyP3rCRxCZrYIDQHtZtDa8Gu9eo3Fj/u6l0w6mISuZb4LAhBx/rX20MKjL26d+vXJy0
         eSy5JcKVvNzCIIhOX6SxECsEX+MS0NN/VW9I7iKRpKzuPUO/1GEFsX73BjVHske4Klg+
         Zrxs8xor/ktEPwj7mffq4vpx9IevuqNz3OCXiVbsiqFxglm0kjk9y+ZEKsNaWC1HqBZm
         pFX/KYPPgiCrK9qJwYdNt5uCCXbaNLYOGkm2dQUGSYbVKVUyvCjc/pRFGGSPT9LX1KUs
         sofA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=vLPbw2onjWVOMkZBCIWl6LuaShLC3/07QG9/c79LxmI=;
        fh=GBN05qcnqlbl8HfkjIbFkcC3qDDmUXvMhNLct7r+iS0=;
        b=HmdG9cQVtKtsQNtQJFGQ57yCrzi0SJC8C+vXoAqkrIuRxvrGXQCn2JzuJOdQmpT8Pn
         ed0ecHNuOrNV0aQDnPhb6WJ7qxW9HRy1upyc3Lgvuegt1rVH981oStbXjYyz3fe1LgSo
         yydz5dyBOkoL1DP+RuUC1BvhOYjBzRApWDEDHZeKMTyxx2OpNcb7eBTP25b1isyKd1oW
         zRNi9RpXup7kOB0lDW8zES3qqY30P0/OlGBkZuZ7TXz3fNWztgU9t+aLGUKr/+WRqudw
         rbxp8pyd33dtlY1kkprSg0ZHc9+X5HcpiG0d0RENnllSdpOoNEFNJKS2OScezwQX1thX
         Q+HA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1774259753; x=1774864553; 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=vLPbw2onjWVOMkZBCIWl6LuaShLC3/07QG9/c79LxmI=;
        b=TctnqCBoQvlxXSdntUGtQAoOKtX1wMpg/hmO9Pghx6VrBUtunYQXwSHtZHj/scyEc4
         zu77ZFiQQZUGCnNCghxqiVXxRiFcXgDHHfSxVgPiDmoj7efmqu/O5MttrQCGOh4x/Nwb
         bwAwqKSK/4288Qk927tbSF547XJqvJMFiioMp08hho6kP/UNXVkuC/8eARlW7Qlxxi+p
         bTACt8lvSIK48ersqbb2A1EBZ8THBLXqdavKSCMBuCwdjr8LmVoNFtwkQxvYaGl+53C8
         adhphmRRGgdGDlnEPN5HpaE0SZpt/gMZ7maErHPJaXYs7ZZUvIct152PQYYytJ3b8rrk
         Rq0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774259753; x=1774864553;
        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=vLPbw2onjWVOMkZBCIWl6LuaShLC3/07QG9/c79LxmI=;
        b=Y11O4fDHSr7ao6axqhtXbk+LsEHMJnN9E+V43rRJfRTBpcZU09/sjAeQpKv5qga7n6
         728X9Yyl3p+6NDt1GICE5U666qww7NmXROf2Uve8J/FtuzGefmuh+0xAmuZA6yAHEJ1p
         ISuBQk03n57S9e+6JmcADn9EYkcvHmR8LGVUWCo9XjHt8yRXMPNaeJsLIJHJcclkh5x9
         wFbFF4YTH8sd+dlaXIcL6PVGectAfydSlKWxu8TW5rNRCGVJuVuV3xwt4F51P+noO4y8
         jKiy+Yad2/M43IQ//QlmC4Z1m4lA41IeSbhbxt/VRgL8clVa5A8GtPAXNWp7DOItxFkC
         ClTw==
X-Forwarded-Encrypted: i=1; AJvYcCXdigTr6HXXeQgPUaic4G6THJ31f1iKtoOdk0xVRtjQGR18gQtqVcS5OdoGlyU+sEvTXcCfG4O+Urk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxEbaoTKXEr4btOoJlt2nI5vbHOICrMRtL4J4AHtCj5kx3wo+wg
	Jw6shlgVhnTFINQJk1aaOFx8YOQBfrGhp0AzOoIsDTNdlVtuP0r8UMKodsspyM5HOzS+IxD1pXN
	hrqnbZlyiWmBP6RZu8U73LZ83yilhtCo=
X-Gm-Gg: ATEYQzzbrlEANTx+MVFUEdtJWLnoOhX6zLWJ255DUaHD1jVUSHG5xkJpRQNPOVhpVNJ
	hRpDG4mSIdENCxc5hbT8xR+JI8fRHsY8cI2PTMrJ2vTQuno4IFZb8/817wPHKIM//aN2zZ6uhZe
	pbrl/DsdXGjESiM43OMRg9HIjPCBQYzwiTn/NhaIDCZCNYympmolsYBR10sMX5FDwZbq75Y1kUC
	+21hqgN2zrvyF7SNXFDmt/jdtSxLKPj7Kup8V55uhx0BWBjMd8Nj8FFc6FUiM1GqqNEH7tVDd4B
	BkOS7g==
X-Received: by 2002:a05:6512:2246:b0:5a2:855f:2843 with SMTP id
 2adb3069b0e04-5a285aefc2fmr3543917e87.11.1774259752893; Mon, 23 Mar 2026
 02:55:52 -0700 (PDT)
MIME-Version: 1.0
References: <3a3180b0f77d815e92c0c232a8f854d34ab7c2ea.1773860069.git.mykola_kvach@epam.com>
 <F2AB3928-C65E-43DC-80F0-1F2F4DDC8037@arm.com> <91968fdb-e0fb-43aa-9f8c-994ed733de6e@xen.org>
 <68A08948-5683-46EA-B5F9-8C8E0C900F5A@arm.com>
In-Reply-To: <68A08948-5683-46EA-B5F9-8C8E0C900F5A@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 23 Mar 2026 11:55:40 +0200
X-Gm-Features: AaiRm52t3EP_5yglYQ-Fy1f0GqSqm2gZt77v86df9VRFbS8MCY9HiXJJ12Um_d0
Message-ID: <CAGeoDV86FMkriBCCATQb=gUYn04eFKBesfwB4TO=B--pjm12gQ@mail.gmail.com>
Subject: Re: [PATCH] xen/arm: vpsci: ignore upper 32 bits for SMC32 PSCI arguments
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: Julien Grall <julien@xen.org>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-c201ff/1774259754-82D44488-F1535419/0/0
X-purgate-type: clean
X-purgate-size: 5199

Hi Bertrand and Julien,

Thanks for the suggestions.

On Sat, Mar 21, 2026 at 2:44=E2=80=AFPM Bertrand Marquis
<Bertrand.Marquis@arm.com> wrote:
>
> Hi Julien
>
> > On 21 Mar 2026, at 11:34, Julien Grall <julien@xen.org> wrote:
> >
> > Hi Bertrand,
> >
> > On 19/03/2026 07:47, Bertrand Marquis wrote:
> >> Hi Mykola,
> >>> On 18 Mar 2026, at 19:56, Mykola Kvach <xakep.amatop@gmail.com> wrote=
:
> >>>
> >>> From: Mykola Kvach <mykola_kvach@epam.com>
> >>>
> >>> SMCCC DEN0028G, section 3.1, states that for AArch64 SMC/HVC calls
> >>> using Wn, only the least significant 32 bits are significant and the
> >>> upper 32 bits must be ignored by the implementation.
> >>>
> >>> So for SMC32 PSCI calls, Xen must not treat non-zero upper bits in th=
e
> >>> argument registers as an error. Instead, they should be discarded whe=
n
> >>> decoding the arguments.
> >>>
> >>> Arm ARM DDI 0487J.a (D1-5406) also notes that the upper 32 bits may b=
e
> >>> implementation defined when entering from AArch32. Xen zeros them on
> >>> entry, but that guarantee is only relevant for 32-bit domains.
> >>>
> >>> Update PSCI v0.2+ CPU_ON, CPU_SUSPEND and AFFINITY_INFO to read SMC32
> >>> arguments via PSCI_ARG32(), while keeping the SMC64 handling unchange=
d.
> >>>
> >>> Suggested-by: Julien Grall <julien@xen.org>
> >>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> >>> ---
> >>> Link to discussion: https://patchew.org/Xen/cover.1751020456.git.myko=
la._5Fkvach@epam.com/072270e0940b6bcc2743d56a336363f4719ba60a.1751020456.gi=
t.mykola._5Fkvach@epam.com/#7070f416-119c-49f8-acd0-82c6e31f0fc6@xen.org
> >>> ---
> >>> xen/arch/arm/vpsci.c | 15 +++++++++------
> >>> 1 file changed, 9 insertions(+), 6 deletions(-)
> >>>
> >>> diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
> >>> index 7ba9ccd94b..1e844ed571 100644
> >>> --- a/xen/arch/arm/vpsci.c
> >>> +++ b/xen/arch/arm/vpsci.c
> >>> @@ -303,9 +303,10 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *reg=
s, uint32_t fid)
> >>>     case PSCI_0_2_FN32_CPU_ON:
> >>>     case PSCI_0_2_FN64_CPU_ON:
> >>>     {
> >>> -        register_t vcpuid =3D PSCI_ARG(regs, 1);
> >>> -        register_t epoint =3D PSCI_ARG(regs, 2);
> >>> -        register_t cid =3D PSCI_ARG(regs, 3);
> >>> +        bool smc32 =3D (fid =3D=3D PSCI_0_2_FN32_CPU_ON);
> >>> +        register_t vcpuid =3D smc32 ? PSCI_ARG32(regs, 1) : PSCI_ARG=
(regs, 1);
> >>> +        register_t epoint =3D smc32 ? PSCI_ARG32(regs, 2) : PSCI_ARG=
(regs, 2);
> >>> +        register_t cid =3D smc32 ? PSCI_ARG32(regs, 3) : PSCI_ARG(re=
gs, 3);
> >> It might be nicer to modify PSCI_ARG to take a convention argument ins=
tead of
> >> redoing the same test everywhere, this would make the code nicer and e=
nsure no PSCI_ARG
> >> would have been forgotten.
> >
> > I would definitely agree with that. But...
> >
> >> At the end all those conventions are coming from smccc so we could:
> >> - use smccc_is_conv_64(fid) from smccc.h to get 32 vs 64
> >> - use smccc_get_fn to get the function id without the convention and r=
educe the number of entries
> >> in the switch
> >
> > I am not sure about this suggestion. Not all 32-bit call have a matchin=
g 64-bit call (e.g. PSCI_VERSION).
> >
> > Also, it seems that so far the function ID is always matching between t=
he two convention, it is unclear whether this is guaranteed.
>
> PSCI is an SMCCC spec and smccc defines the fid format with fast call or =
not, 32 or 64 and function id and that is the same for 32
> and 64 but there is no enforcement to provide both 32 and 64 versions (fo=
r example there are some ffa calls which are only available
> in 32 bit mode so 64bit version would get an UNSUPPORTED back).
>
> I am not suggesting we accept both versions when only one is supported he=
re, we can still have the switch base on function id and
> for specific one reject if it is not 32 bit format.
>
> Anyway as said this was more a suggestion than a request so maybe better =
to skip that for now.

I have taken the first part and introduced a helper to centralize
the convention-dependent argument decoding, so the 32-bit argument
handling is no longer open-coded at each call site.

For the second part, I have not switched this patch to dispatch on
smccc_get_fn(fid). While that could reduce some duplication in the
switch, it would also broaden the change beyond the original fix.

In particular, a function-number-based dispatch would require
separating bare PSCI function-number definitions from the full SMCCC
FIDs, and it would also need explicit checks in the handlers for calls
that are only defined in the 32-bit convention, so that unsupported
64-bit forms are still rejected appropriately.

So for now I would prefer to keep the switch on the full FID and keep
this patch focused on fixing the convention-dependent argument decoding
for the affected PSCI calls.

A follow-up cleanup can revisit switching to smccc_get_fn(fid) if we
decide that the extra refactoring is worthwhile.

Regards,
Mykola

>
> Regards
> Bertrand
>
> >
> > Cheers,
> >
> > --
> > Julien Grall
>
>


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 10:00:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 10:00:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259153.1552461 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4c4h-0007sb-JB; Mon, 23 Mar 2026 09:59:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259153.1552461; Mon, 23 Mar 2026 09:59: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 1w4c4h-0007sU-G2; Mon, 23 Mar 2026 09:59:55 +0000
Received: by outflank-mailman (input) for mailman id 1259153;
 Mon, 23 Mar 2026 09:59: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=+HLc=BX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w4c4h-0007sO-1Q
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 09:59:55 +0000
Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com
 [209.85.128.48]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 09e7c1c7-269f-11f1-b166-2bf370ae4941;
 Mon, 23 Mar 2026 10:59:53 +0100 (CET)
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-486fd5360d4so40717995e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 02:59:53 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-486ff1d3befsm76524565e9.32.2026.03.23.02.59.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Mar 2026 02:59:52 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 09e7c1c7-269f-11f1-b166-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774259993; x=1774864793; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3DLANbnAjGM/Eoas1qkKQhrJXINnxOS1h4TXdgu8BeA=;
        b=Hjbg/2ZjunPLaF5CvWzkCy1GXCVXwddZBoTxCSQxVTpVo5sVgh2OGJk9Zw3NjtSQRb
         v3L51IdX+3s1gET2DA0qK/Dn8McEKKWZQ6xFvLPlozZpalj1JJ5ipN26ghDy8Edy5/4J
         C2O6FsJBklWg37YfxkRMNaznz0R0GSUI0BzJAOreV+5GVeF4g1c35ybBPhQch8tWiwVs
         7D5SbFbN8LGKmNZn3Upj6LtBV2aOS4nTQ4pjCxFS4KqJaZSM7SpKb+EAY7SU/XzBjCcJ
         KipzfntlNLkX5nflOlj7EP0kNDDAlZQRgxVyjUPf5B49stdtBIZ51ais5OxBLz+I4jOP
         X+UQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774259993; x=1774864793;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3DLANbnAjGM/Eoas1qkKQhrJXINnxOS1h4TXdgu8BeA=;
        b=RfS41XAuztPizy+hKM/MUArZmL0UUrNwoIq5zyUWyF6Ul9nXVhER822FVFlXTvZhwk
         nw7Lzh81zfQra9SeKrCy1yOA3AmbFnqjkgQi/7kwkaEKY6WlWI/OXNud2oRwrtXbmTvr
         baIefLAd3fRM8Cn1cHvodxefUInldbDE4YXjdeZCJxYcfkqrVq59maFQcBS2cCiWr/UV
         uDnQMlqlbqUaS4C7P4crCL35DMAbC88etbgLb62ASKVu9rE60N/8l6tch3DfwcHMjtP8
         bcf1UW3j/7KZfK03Uy/97TgHtmw2WXfwwcGshHVejM0DsB96AbINFWxGb6ygdFSMeMA3
         fEXw==
X-Forwarded-Encrypted: i=1; AJvYcCWcsFdJ4DHg7joutJSMy2SThplKfO7wLSmk81FZoGU4RtXioW1h3aQdii9f8H+xzpOuNLN7uBz4bac=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxDvDET6E4POFhbsAlnYVkq/f/j8nkKUS7EGzBLU7CPblr2mCEh
	Z29rbLBzxs8ZIMVzCAT2MhGOT/2hFfIMPl7XyOi7PP1pD1u+8yxS/xOuZS43Han7rg==
X-Gm-Gg: ATEYQzwSsCr10escNbqfYHy0h9B4IHbgt94ZeluqUu+VlGr1CqCZj2l71tkIWlmXBN6
	n9M/ZHUPBjTauxb9vhsOgtEVuHBqYxfLL2oFapyhljEryD9JagoaCf9inscBvAGmOpbvnRF+r3I
	P+joZZ0q4LT5obX+w5hiPx7Nc4WmEDnBvAFdFGoi23o4rpo/BZwZFEBM6FWRWzuDyLbIRwmpuXs
	aktA+Ex11TvjUUGqCRlY1CNnhligHJ7fXuZvtF22A7BqEQEzJ7B6jPf7fNnWFlCoOpWiGxaGpAN
	e41Gc0rycrqlyTiVK/5JDOFoifQ0/ruaK6jvgu8tVMMsFQ+JVz/KKP9WOygNmCwlz13wu4Kp32U
	SPZDPlg/ff21WqM+YavFZXwvrINViTp1ofe/ihvXhomY0OEAJJDa6JR6QJ76kUJduxc+c5TLWnM
	EmEUUVcTS0MGenOH5Go5e0uW3e7U8UvpUCVcYm/yxOe7GByMtEJvdf58wreuR3no0fZjHg9lHjZ
	fqo2wC84WMn3x4=
X-Received: by 2002:a05:600c:a4a:b0:485:4eaf:eb14 with SMTP id 5b1f17b1804b1-486fee0fbf6mr146228095e9.21.1774259992755;
        Mon, 23 Mar 2026 02:59:52 -0700 (PDT)
Message-ID: <bf640040-22b2-4d30-9e1f-df60be623ff7@suse.com>
Date: Mon, 23 Mar 2026 10:59:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v v3 2/7] x86: Remove x86 prefixed names from mcheck code
To: Kevin Lampis <kevin.lampis@citrix.com>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com,
 xen-devel@lists.xenproject.org
References: <20260313163630.1073019-1-kevin.lampis@citrix.com>
 <20260313163630.1073019-3-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: <20260313163630.1073019-3-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.03.2026 17:36, Kevin Lampis wrote:
> struct cpuinfo_x86
>   .x86        => .family
>   .x86_vendor => .vendor
>   .x86_model  => .model
>   .x86_mask   => .stepping
> 
> No functional change.
> 
> This work is part of making Xen safe for Intel family 18/19.
> 
> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>

This description doesn't quite cover ...

> --- a/xen/arch/x86/cpu/mcheck/mce_intel.c
> +++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
> @@ -711,10 +711,7 @@ static bool mce_is_broadcast(struct cpuinfo_x86 *c)
>       * DisplayFamily_DisplayModel encoding of 06H_EH and above,
>       * a MCA signal is broadcast to all logical processors in the system
>       */
> -    if ( c->x86_vendor == X86_VENDOR_INTEL && c->x86 == 6 &&
> -         c->x86_model >= 0xe )
> -        return true;
> -    return false;
> +    return c->vendor == X86_VENDOR_INTEL && c->family != 0xf;
>  }

... this change. Code changes themselves look alright.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 10:02:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 10:02:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259164.1552470 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4c6j-00015f-2O; Mon, 23 Mar 2026 10:02:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259164.1552470; Mon, 23 Mar 2026 10:02: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 1w4c6i-00015Y-Vs; Mon, 23 Mar 2026 10:02:00 +0000
Received: by outflank-mailman (input) for mailman id 1259164;
 Mon, 23 Mar 2026 10:01:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w4c6h-00015G-DZ
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 10:01:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4c6g-008tLw-Pk
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 11:01:58 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c10f91-bab6-0a2a0a5309dd-0a2a450b89ba-32
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 11:01:58 +0100
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c10f96-ef63-0a2a450b0019-d1558032a5ff-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 11:01:58 +0100
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-486fc4725f0so33128295e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 03:01:58 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-486fe7e3a94sm276146775e9.7.2026.03.23.03.01.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Mar 2026 03:01:57 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774260118; x=1774864918; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=haUaNQa4QrC27aH36liiMap8cZhOcHLNbsldqy9JT00=;
        b=Lv19IT/B8BsiX1x+oHAtVM92X9B/WSP2VdthNEZYa2z87BlO1I2t/5NiW8e152ZGah
         O+PT8Kbntk5biIgdCQ4r54WnN/N37ZiKiwIEYiP4fLfKEh0JSxAYwTVVarQVOCif4Mxe
         yGjdB85vl0xlkkv71xazDzuwASP/Jary3awZFP83JyZ9VGQRQbGYj1zP5ELz2+wQVKUu
         sxEL4xK3JFFybN1uWOOaedKtvTf1YAjjLtt0QshZymse6F13lUvKTJrPuJkgKexf8p/c
         GxXje/g7k9PcYdMwib8PLjk0LqxoxluzWwoARkKqsdvrz120BJOVIV2rrTmNagZpdR1/
         uzZA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774260118; x=1774864918;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=haUaNQa4QrC27aH36liiMap8cZhOcHLNbsldqy9JT00=;
        b=iUzYtE4ByPg/jK7DDBYXLdvGVE9sFZQrwK8i+DHbGPS12DpOZN9utsP/fhB9nU82kT
         yny2JevOZ2kdEqLvxNjsOOPTtDMTQibw3gAuJJxRtkKZzx9Exm0aDc35wkQNSf6Xogh1
         YN+e6h+J0caFxLwze6ztsf3mKzSP3qYuElfh8l6RjqLi2NVBDDu+uR8Cn9I529ox/Dq8
         axH6BbDseXhAxvy4HDrBkWVyDPxk1xoh4EenU/yIQ0oXz6PqeTlLS02auiY3D2yb75SA
         uVlGQVtu26flU9ZdrP2DbeCbvEJSPasI9RjKnfIQFsScOMJdweYjmfSsRg27pQHwj44U
         SDww==
X-Forwarded-Encrypted: i=1; AJvYcCUkpNp78y9t1CIFVt1c9b0QQceuNn8JhXVOkM3EIORHLiJQVTl90JefSZJwEIBXbyFW83xcdMAn+D8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwKEbdCXYB3oxxftuYRzu5qbTpGEAQ/I3b8MtN1URiLyeA0xsY0
	favr/Zml3qseI5xu/ektIP1sKLdlMqodGbfXqe2wrNW7kYpnAm9SEt15ZVTRjMv0PBzB1YVDz6I
	Pp+A=
X-Gm-Gg: ATEYQzyJPBSUnfka+94epy+EJj9cdmktt25TJRPnwbM1Vwpf7qUIiGcS87om7GUzoB4
	W1Q7G2kjUTAnt2oooc2FZWmB+J5Lf6M9uffPFuWF7V/lCjjeeaP7i2cLxXM78huZeZW03YjbOvP
	Rg4uUkefcwWV0msUih9bjGQtSYObtolYxCx/D2XYdVRcR3j9yG+3VUt1HMAMyoYS5D3PTasRPIT
	K4GJsPSSVM2oR5Q0IRLKQPp+tb8NiiTskt5+RoJTnmjZgMBgGi66GeEygQ4zs05DFfhi8/38V+N
	mVmamFjk6Fk211OWQuReDONFAErGE0Bg4OAx/AkasiPFeizBv5A4Y+SIcLvI4dw+MH0khyitx4c
	9tJcqLX6HujzHH9dqj6mxqlQeIiB1cA3nSA1jI9GMUCguJEl9SPFbftSaasXQV+LMfQzNIYJ9In
	AhCN0S7+boxHccsCqX/Mb4NyXEIKjH+D8TEMh5xUpfK4oTHwcJUJWpBuWJd8tqsylWZs/r3Pw3o
	0SFowbkO7n0maY=
X-Received: by 2002:a05:600c:3e10:b0:485:3428:774c with SMTP id 5b1f17b1804b1-486fe8b0073mr173991345e9.4.1774260118072;
        Mon, 23 Mar 2026 03:01:58 -0700 (PDT)
Message-ID: <2bd67184-5f03-4f27-ba03-ea30dfae3898@suse.com>
Date: Mon, 23 Mar 2026 11:02:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v v3 3/7] x86: Remove x86 prefixed names from acpi code
To: Kevin Lampis <kevin.lampis@citrix.com>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com,
 xen-devel@lists.xenproject.org
References: <20260313163630.1073019-1-kevin.lampis@citrix.com>
 <20260313163630.1073019-4-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: <20260313163630.1073019-4-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1774260118-98ABC112-50E3C299/0/0
X-purgate-type: clean
X-purgate-size: 382

On 13.03.2026 17:36, Kevin Lampis wrote:
> struct cpuinfo_x86
>   .x86        => .family
>   .x86_vendor => .vendor
>   .x86_model  => .model
>   .x86_mask   => .stepping
> 
> No functional change.
> 
> This work is part of making Xen safe for Intel family 18/19.
> 
> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 10:03:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 10:03:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259171.1552480 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4c8L-0001e7-Cv; Mon, 23 Mar 2026 10:03:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259171.1552480; Mon, 23 Mar 2026 10:03:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4c8L-0001e0-AH; Mon, 23 Mar 2026 10:03:41 +0000
Received: by outflank-mailman (input) for mailman id 1259171;
 Mon, 23 Mar 2026 10:03: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=+HLc=BX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w4c8J-0001dq-LL
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 10:03:39 +0000
Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com
 [209.85.128.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 90249def-269f-11f1-b166-2bf370ae4941;
 Mon, 23 Mar 2026 11:03:38 +0100 (CET)
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-48558d6ef83so24711935e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 03:03:38 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-486fe68ec05sm400250825e9.0.2026.03.23.03.03.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Mar 2026 03:03:37 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 90249def-269f-11f1-b166-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774260218; x=1774865018; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5XNJylV3xR7MrhB7xAWn4j6maGHBcDHY0dDp2+DrRp4=;
        b=WTbf4f/Izs8LRu7idZaFkelpq9QnXDea0pecz08Yh84T2FsT4RWqJ1HO+6No8H5kal
         Iow2/KWY3cv6ftnQrfUndOA3qwW3GE/YuMYUJAqBmHuONOjdgb5TmC4zjFjXfzLgS9I6
         tlSSH02RXhlAbXkD0rbnItC7OjFWyCCFGVdyiVEr2X9RvFe+ZV/C9CVpFn0cOPMpT4p4
         lXPuo9KrpmoZ2Jcs0bmpEzj1QJ21vsuzbJ8ukfurI61r65Spp6AFmajnMfz+8u4XlHkn
         FcdQ0aS+FfStv9JLjsn81TMsRcrKmqFt4m0D77tmA0XEsgfsAlBibGR1i124k91r1Wn3
         UpvA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774260218; x=1774865018;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5XNJylV3xR7MrhB7xAWn4j6maGHBcDHY0dDp2+DrRp4=;
        b=pHjrrmPEIQ537ghzp6uAAn+cb+L9SIyBUfKugkpyIaqLrfhqy+LxKLFDLkxe5YCJ6Q
         Yk7WotAdHEX2hUf66dZzKIJceE6j06G8ra9Z8rnnfMk6DkGnzgZMBkuK9ili+wlq8Itc
         3YPGPDM5ybHaT1pb4wPhKlMinMidEMzM8XHqxqVp/onf+7+LFYqTh+ux6qXEq0tyfd1/
         pauN1eYlWb4Xb3wNhxQaWS7EBWYRsfrzRz8V0337UHukGINYOhiSX7+lHKLDBWLuuGcV
         81A2vgVb2idc5wAHPa+640qRbpAMQ9kyTXthMA8G+wv5wfNkrp0ISnTNKV6BxV8YdOaJ
         xKFQ==
X-Forwarded-Encrypted: i=1; AJvYcCUqpMRlWtwV1+r70t/Lz5mxW4GChcT6JY2zlOn6fiLwunGDmuTasEkmIn2sicH5GsKOjRpMX9UDR98=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxqbUhtlomzw843YgbkNzY8bJNH53wcFr6+132P/GTe5ZWFuEvj
	aLd4rYktVEvuUTAfmXKWPQOpt72CtSD5GcNi6Oe+bfvdSLhORCwy9kapJS4Ug2QrfQ==
X-Gm-Gg: ATEYQzwsvqegx3PU04GsFygfMKLaCFhoHHD6ZJ4JHLu8f8XNUkO7kxVnVyCawA7pma6
	ZT8rRJAnHhLs9YkbqiYsJ9W3wntydFkp5tTnkO7nLBXEV0iFH1HIuiJGpbk6IZgbWj33wfAxZ+n
	E706CwF0bKQnBIEnf31KZcShK4eiFPB/YK2oRGZqUVrpskal918b1jFPNcsEp4Z98FCOZ4xKWKB
	8+aNpKLQ9tH4kyomBYvqmU2aeOG2gVnh6pmBxJOfEpACQnUyjQt4Gn65tVz5JP4znKrJJaNBFf8
	iOpqiq7Ux0Ars3GSpbjUlWwJ4UPhGUYZuyIcY8XxfgI3O1QtB+NSJl6MRZ7QDzYINqsVr8b2dZa
	Kst2TMFA+FFwNs4XrQ6D18n5a1DwLx0eDuvyy+eF71eE8DozpsaEHuGZDyRNP4XEbTQQLohkyia
	NujF0QTDG8MwXxKEA15ehMBOWNStR3y8pT/Tg+vlE2+972IFIvZmXbV+LK0Ysu34DdwaHZoxo34
	ZWj8ud/fdZLmSI=
X-Received: by 2002:a05:600c:3546:b0:485:3e20:4013 with SMTP id 5b1f17b1804b1-486fee292b5mr164314585e9.28.1774260217987;
        Mon, 23 Mar 2026 03:03:37 -0700 (PDT)
Message-ID: <69a0bd54-1f2f-4fc1-ab91-3ef57145b3b9@suse.com>
Date: Mon, 23 Mar 2026 11:03:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v v3 7/7] 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: <20260313163630.1073019-1-kevin.lampis@citrix.com>
 <20260313163630.1073019-8-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: <20260313163630.1073019-8-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.03.2026 17:36, Kevin Lampis wrote:
> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 10:07:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 10:07:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259180.1552489 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4cBU-0002Nb-RX; Mon, 23 Mar 2026 10:06:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259180.1552489; Mon, 23 Mar 2026 10:06: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 1w4cBU-0002NU-Os; Mon, 23 Mar 2026 10:06:56 +0000
Received: by outflank-mailman (input) for mailman id 1259180;
 Mon, 23 Mar 2026 10:06: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=+HLc=BX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w4cBS-0002NL-Qr
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 10:06:54 +0000
Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com
 [209.85.128.46]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0322143e-26a0-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Mar 2026 11:06:52 +0100 (CET)
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-486507134e4so49428825e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 03:06:51 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487031790fdsm224071185e9.3.2026.03.23.03.06.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Mar 2026 03:06:50 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0322143e-26a0-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774260411; x=1774865211; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tAN8s1MLc3CnVtZFMdiJWxSGZN2ch+3z5qKXHGdayH4=;
        b=XcWQcoZykwOAtwXwULF1X/CFvEhBs7f+XE+wKQUG1ZPsl6oDfXaFSElaGnqEPJo4tx
         Ad78DdQObngTxAwl06QS787OtDh4nGBE4IzkPz3egnKy60fJkAJScvUj4jEe/PuXsRxp
         WvfPj+FazGN+TbS27kqTk/W5N4hvPBv+UxywMTZGaHAOamxw5raGWdCV8u0lJGm4RNdr
         rbjF+guY1CF6LnBxXVVQL8X8JyCNMeCFPB+e9+DGdmJrJUS39BDMbz3Cp/jgnpVKHk2z
         i85GTnYSdpiqEvkB6l+H9Mev6SzOP7JNvk6MXosNbRjenJvuXF5sMEiEjNyx3A+nLLQb
         lrew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774260411; x=1774865211;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tAN8s1MLc3CnVtZFMdiJWxSGZN2ch+3z5qKXHGdayH4=;
        b=pTp5mg7M3zEoZegIGSt1TguI4TZe26YPmo/HOZGvKgmfAALOeUKcHxnog0pUrgsFc3
         DKYTqp4mEpgHYsn9NMr575dMUwhumBu/waMbAJLOH6Z63zjUIq3bGCB9qrSVJCwjRGm5
         zvS9fjlHv6y9/yjBQuBNDQnNnnli+fXdP4lDw9vmH6bqqP1cG8qmXRP+ZBGhQqyroFlz
         G5sDk2UMXZ9xS/19UtHCK6DZXrijCnbrwQo9+hqXgprd1DjT83xEcJthknp8YeRqp1wK
         cbsMbFgQDWoXqfbzkyfZxUGX3t/qFKrGvXjE4Bs12P6XyuuYCFFGpiPM/sQVC2L76T9R
         ybvg==
X-Forwarded-Encrypted: i=1; AJvYcCUTl6xQGNvrZp4Z5KEO/sraxqQvXnD8mraWcNZ7Y/0EV0pVbA0raMS1FvugqrldY36xrJc+BJkzgyM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywaj4Ollasz2Nq2Y78zAn0VYBNpA19t8RdrNzFCDod5uYkwXFV8
	4k/GFG7gRS+XxjRE1mme6ILnWO3EN+XdNY9mTzcF1UppAeGojBPz2L0m9EBGbix82w==
X-Gm-Gg: ATEYQzyiKf2hJ/1gilnXTOHsdyUKpFTAUevq6ND/AZEtG2C0+JmYkG/mpc2+BNbKlDp
	R0AJVEtiqO9bbB7f+AiRFfpjMNQSSAyiqD+SSdBVCAvgQYc6W6qOgDF77BXxeJjY634nRTao8JX
	oymFBYfLDnoaPWjnuDbyof2QSMeX9uCgvU9g1sdP/K/bUOxbowd1pla5t9Mgze01JxvYVE2XrBf
	RMxK3G26E8c/ZIK6AYElEDRQY4hzIil8PnL6y5neqI1cnfWl82how4PuN5HVjqnGpy3wmzNE84/
	Z/U0gqpmAhjE/x4F3plVTZjd1WiTKLU1Sk1yiIHyUi4hxsaSvBN08GD7VaymV1iSnqZYCA1GFDY
	3mk2NE48PdnxnA3o1reh5qsPdxtXtupOYZPfaPKh5AZJ0zp/iXyhGi700Dqb5GGXK5jRE4ggmG1
	yIWAVCAdNKKxBjDAEzuB+wMVyw1Mjf4D8MXQJDE6eSHFQMYucwbw5ii/hfg3zpZ7jbdlv4m1VN4
	l3W+f+cX1bIzYw=
X-Received: by 2002:a05:600c:2d95:b0:487:338:b4f3 with SMTP id 5b1f17b1804b1-4870338b5f9mr61514105e9.17.1774260410824;
        Mon, 23 Mar 2026 03:06:50 -0700 (PDT)
Message-ID: <383ef1a4-781f-46f9-baf7-824e9f8f601a@suse.com>
Date: Mon, 23 Mar 2026 11:06:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v v3 5/7] x86: Remove x86 prefixed names from hvm code
To: Kevin Lampis <kevin.lampis@citrix.com>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com,
 xen-devel@lists.xenproject.org
References: <20260313163630.1073019-1-kevin.lampis@citrix.com>
 <20260313163630.1073019-6-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: <20260313163630.1073019-6-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.03.2026 17:36, Kevin Lampis wrote:
> struct cpuinfo_x86
>   .x86        => .family
>   .x86_vendor => .vendor
>   .x86_model  => .model
>   .x86_mask   => .stepping
> 
> No functional change.
> 
> This work is part of making Xen safe for Intel family 18/19.
> 
> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>

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

> @@ -2163,8 +2164,7 @@ int __init vmx_vmcs_init(void)
>  
>      if ( opt_ept_ad < 0 )
>          /* Work around Erratum AVR41 on Avoton processors. */
> -        opt_ept_ad = !(boot_cpu_data.x86 == 6 &&
> -                       boot_cpu_data.x86_model == 0x4d);
> +        opt_ept_ad = !(boot_cpu_data.vfm == INTEL_ATOM_SILVERMONT_D);

Nit: Why not simply

        opt_ept_ad = (boot_cpu_data.vfm != INTEL_ATOM_SILVERMONT_D);

? Will take the liberty of adjusting while committing.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 11:09:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 11:09:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259191.1552498 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4dAA-00055l-7G; Mon, 23 Mar 2026 11:09:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259191.1552498; Mon, 23 Mar 2026 11:09:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4dAA-00055e-45; Mon, 23 Mar 2026 11:09:38 +0000
Received: by outflank-mailman (input) for mailman id 1259191;
 Mon, 23 Mar 2026 11:09:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w4dA8-000555-42
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 11:09:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4dA6-00Emu6-U6
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 12:09:34 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c11f6b-2eae-0a2a0a5409dd-0a2a4505aff4-24
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 12:09:34 +0100
Received: from [209.85.221.48] (helo=mail-wr1-f48.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c11f6e-5aeb-0a2a45050019-d155dd30e5bb-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 12:09:34 +0100
Received: by mail-wr1-f48.google.com with SMTP id
 ffacd0b85a97d-43b3f91a7abso25401f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 04:09:34 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b646b0b0csm27371468f8f.15.2026.03.23.04.09.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Mar 2026 04:09:33 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774264174; x=1774868974; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PdlyT9UcJOh3tpxG2oyEQb9yFmwXI+XnbU5QuELQG+o=;
        b=JxIGVw7AZBX6ZtXPiRzg72NvZtA+DLEQ7XgopaBJ+CjtyUB9TQB6qFpCA8rCD9x/WF
         /ITn8/iGuuevSaaVyX4hLgPKefsy8Q2lTWpmAUMC8l8+CC9UUawvbuupvM9ubg4YQ0xf
         fW/djwLQKpwQhDA1Di85XchF4dO6Ukdqm6/R5Yj3lOqxhty9WzC/Zkypp3W6lQ5hDUvA
         MWik99Am0jDDWPZ4TxFjWVlW287NNSFUSS/5Mo8B9Vyh0ZCBEPXl0GJGyp/xXSWclGNP
         J7xm4SRccFRLfEcAd5nZEqvDYI8uuOyf2qFN1h0Xw+U5TmW6hGSuZfavSdGsBbuDbdDs
         dphw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774264174; x=1774868974;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PdlyT9UcJOh3tpxG2oyEQb9yFmwXI+XnbU5QuELQG+o=;
        b=bgYO2lw1So0RiGAVPj6ngtqt/q/DvO0hjbkeaJJTQ4tBvoN6KPonmeuFjX4tmjfOw0
         tX/8NaJc0rBp1ivngHwDgNEq4aSc24yHibQpCHdOOybPqOigKwUZjGuYCuKfW1UgGc/v
         yKO48eDqxnlOl2mv7dhxXHSs8b745hhvMIJrlTq/1MDCAIIlYl8J0YYVtKYxFzWyRaIl
         ZnYpccjkLwsYQ4l9N6EVSQ7KUCMXuOywerJYpFVJOwFnp1bOUaCkvcd0YUa1coF6rkpi
         wlXM4LXYuFswtVro00tYA9vzZDWVXEkApw5loMLZ8lpfJvJRcEv+o/j4IDOgfvLPowLH
         F8UQ==
X-Forwarded-Encrypted: i=1; AJvYcCXmLio4go2pL0J2lAM11svNl3fDckFfq3Kb2lcCRwt5Rs84e8pFz0CAjDXUTZEXeO2ofnOU4zNJz5E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwN4VxZbRjbpvkzj5vRX30f5WrU7fcZDdoY6HiveVObscrWfVRQ
	nIzTdqsQMxImmlJfo1EWtJXbG6hluK0RwNfGCMfCyLVaz/MV+Mhgr0HJmkIEv3MJnA==
X-Gm-Gg: ATEYQzyFJZcr0jpTaYPfOAkvENcljHvrNQKF0n8TTtqfWPCacHiiX7HUBGxjTVOg8Cr
	dVhHSop64lTGaF3g/Z8LIsFAaAZfOphzSCtLHZRhICGxQJhpGaTRJKzfbaGWxVOIyv+YIlcRDsu
	1UBo9nfmApepy+rnocrRz0TP1aO78YLpJ/GirB5BeLOK5mUv+gnUPMSoP6spc6gggnzvcFBBoXd
	P+WyQljwk4EzNw17pIHe8Uwq4rbq64HvnLBnMnSA00PG/Fl5TOMt2jGgrgKo6Icl48zh/FEAMGa
	aIAlTAxSHe5RkUt5mUzL2dEaB4ESXOTHLHgN/kT4CH8qWhT6ErN+AN5tWB5AZ2FQIBg+1wXE0i6
	JU0REdVzvGAI2qBnjrQhgRLqNU+h22HDazsRGHLKDo9FjUPaCO3EiIC2UIETXuWFrmThgOdScvu
	mKG+1xV2+GnFo5NtHEnsmhbhU3OTwSoEU3UG9u4gAWAyfbg0rsob/H9jmlaxUDw+F84eszbQ1Gc
	A/nDZDXFwdpdtc=
X-Received: by 2002:a05:6000:2086:b0:43b:48e3:fbee with SMTP id ffacd0b85a97d-43b64286faemr20828148f8f.37.1774264173894;
        Mon, 23 Mar 2026 04:09:33 -0700 (PDT)
Message-ID: <be38f4ce-48f8-459c-9bfc-caa60794a652@suse.com>
Date: Mon, 23 Mar 2026 12:09:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 3/5] arm/sysctl: Implement cpu hotplug ops
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1773307749.git.mykyta_poturai@epam.com>
 <206261ba0b60ebcff25e083c22d9e9b885645199.1773307749.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: <206261ba0b60ebcff25e083c22d9e9b885645199.1773307749.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1774264174-80568488-91BF6857/0/0
X-purgate-type: clean
X-purgate-size: 7824

On 12.03.2026 10:39, Mykyta Poturai wrote:
> --- a/xen/arch/arm/smp.c
> +++ b/xen/arch/arm/smp.c
> @@ -44,6 +44,15 @@ void smp_send_call_function_mask(const cpumask_t *mask)
>      }
>  }
>  
> +/*
> + * We currently don't support SMT on ARM so we don't need any special logic for
> + * CPU disabling
> + */
> +bool arch_cpu_can_stay_online(unsigned int cpu)
> +{
> +    return true;
> +}

Something as simple as this would be nice to be an inline function (or, less
desirably, a macro).

> --- a/xen/arch/x86/platform_hypercall.c
> +++ b/xen/arch/x86/platform_hypercall.c
> @@ -735,6 +735,12 @@ ret_t do_platform_op(
>      {
>          int cpu = op->u.cpu_ol.cpuid;
>  
> +        if ( !IS_ENABLED(CONFIG_CPU_HOTPLUG) )
> +        {
> +            ret = -EOPNOTSUPP;
> +            break;
> +        }
> +
>          ret = xsm_resource_plug_core(XSM_HOOK);
>          if ( ret )
>              break;
> @@ -761,6 +767,12 @@ ret_t do_platform_op(
>      {
>          int cpu = op->u.cpu_ol.cpuid;
>  
> +        if ( !IS_ENABLED(CONFIG_CPU_HOTPLUG) )
> +        {
> +            ret = -EOPNOTSUPP;
> +            break;
> +        }
> +
>          ret = xsm_resource_unplug_core(XSM_HOOK);
>          if ( ret )
>              break;

I wonder whether on x86 this really should become an optional thing (and
if so, whether that wouldn't better be a separate change with proper
justification). See also the comment on common/Kconfig further down - by
the name of the option, and given the support status the change above may
be legitimate, but not some of the similar restrictions added elsewhere.

> --- 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();
>  }
>  
> -long cf_check cpu_up_helper(void *data)
> +bool arch_cpu_can_stay_online(unsigned int cpu)
>  {
> -    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 && !opt_smt &&
> -         cpu_data[cpu].compute_unit_id == INVALID_CUID &&
> -         cpumask_weight(per_cpu(cpu_sibling_mask, cpu)) > 1 )
> -    {
> -        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;
> +    return opt_smt || cpu_data[cpu].compute_unit_id != INVALID_CUID ||
> +           cpumask_weight(per_cpu(cpu_sibling_mask, cpu)) <= 1;
>  }

Unlike for Arm, this may indeed better be an out-of-line function.

> --- a/xen/arch/x86/sysctl.c
> +++ b/xen/arch/x86/sysctl.c
> @@ -49,6 +49,7 @@ static void cf_check l3_cache_get(void *arg)
>  
>  static long cf_check smt_up_down_helper(void *data)
>  {
> +    #ifdef CONFIG_CPU_HOTPLUG
>      bool up = (bool)data;
>      unsigned int cpu, sibling_mask = boot_cpu_data.x86_num_siblings - 1;
>      int ret = 0;
> @@ -89,6 +90,8 @@ static long cf_check smt_up_down_helper(void *data)
>                 up ? "enabled" : "disabled", CPUMASK_PR(&cpu_online_map));
>  
>      return ret;
> +    #endif /* CONFIG_CPU_HOTPLUG */
> +    return 0;
>  }

The #-es or pre-processor directives want to be in the very first column.

Sharing "return ret" would also be nice, imo. Would require ret's decl to
move ahead of the #ifdef. Actually - is there anything preventing

    if ( !IS_ENABLED(CONFIG_CPU_HOTPLUG) )
        return 0;

at the top of the function? Perhaps even with ASSERT_UNREACHABLE() added
in?

> @@ -115,24 +118,24 @@ long arch_do_sysctl(
>  
>      case XEN_SYSCTL_cpu_hotplug:
>      {
> -        unsigned int cpu = sysctl->u.cpu_hotplug.cpu;
>          unsigned int op  = sysctl->u.cpu_hotplug.op;
>          bool plug;
>          long (*fn)(void *data);
>          void *hcpu;
>  
> -        switch ( op )
> +        if ( !IS_ENABLED(CONFIG_CPU_HOTPLUG) )
>          {
> -        case XEN_SYSCTL_CPU_HOTPLUG_ONLINE:
> -            plug = true;
> -            fn = cpu_up_helper;
> -            hcpu = _p(cpu);
> +            ret = -EOPNOTSUPP;
>              break;

ASSERT_UNREACHABLE() looks to also be valid to be added here, seeing how
do_sysctl() now works.

> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -637,6 +637,12 @@ config SYSTEM_SUSPEND
>  
>  	  If unsure, say N.
>  
> +config CPU_HOTPLUG
> +	bool "Enable CPU hotplug"

I'm not happy with this prompt. For x86 SUPPORT.md declares (ACPI) CPU
hotplug as experimental. That's physical hotplug. The code you're
fiddling with, however, is also used for soft-{off,on}lining. Which,
e.g. to disable SMT on x86, may need to be used for security purposes.

> +	depends on (X86 || ARM_64) && !FFA && !TEE && !HAS_ITS

What if on x86 FFA, TEE, or ITS gain a meaning?

> +	default y
> +
> +

Nit: No double blank lines please.

> --- a/xen/common/sysctl.c
> +++ b/xen/common/sysctl.c
> @@ -483,6 +483,52 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
>              copyback = 1;
>          break;
>  
> +    case XEN_SYSCTL_cpu_hotplug:
> +    {
> +        unsigned int cpu = op->u.cpu_hotplug.cpu;

I don't think this variable is very useful to keep. Instead use ...

> +        unsigned int hp_op = op->u.cpu_hotplug.op;
> +        bool plug;
> +        long (*fn)(void *data);
> +        void *hcpu;

        void *hcpu = _p(op->u.cpu_hotplug.op);

right here, dropping the assignments further down.

> +        ret = -EOPNOTSUPP;
> +        if ( !IS_ENABLED(CONFIG_CPU_HOTPLUG) )
> +            break;
> +
> +        switch ( hp_op )
> +        {
> +        case XEN_SYSCTL_CPU_HOTPLUG_ONLINE:
> +            plug = true;
> +            fn = cpu_up_helper;
> +            hcpu = _p(cpu);
> +            break;
> +
> +        case XEN_SYSCTL_CPU_HOTPLUG_OFFLINE:
> +            plug = false;
> +            fn = cpu_down_helper;
> +            hcpu = _p(cpu);
> +            break;
> +
> +        default:
> +            fn = NULL;
> +            break;
> +        }
> +
> +        if ( fn )
> +        {
> +            ret = plug ? xsm_resource_plug_core(XSM_HOOK)
> +                       : xsm_resource_unplug_core(XSM_HOOK);
> +
> +            if ( !ret )
> +                ret = continue_hypercall_on_cpu(0, fn, hcpu);
> +
> +            break;
> +        }
> +
> +        /* Use the arch handler for cases not handled here */
> +        fallthrough;
> +    }
> +
>      default:
>          ret = arch_do_sysctl(op, u_sysctl);
>          copyback = 0;

This form of falling through may be a little risky, towards someone not
looking closely enough and inserting another case label immediately ahead
of the default one. While I don't think there's a really good solution to
this, please consider

    }
        /* Use the arch handler for cases not handled above */
        fallthrough;
    default:

instead.

> --- a/xen/xsm/flask/hooks.c
> +++ b/xen/xsm/flask/hooks.c
> @@ -835,7 +835,7 @@ static int cf_check flask_sysctl(int cmd)
>      case XEN_SYSCTL_getdomaininfolist:
>      case XEN_SYSCTL_page_offline_op:
>      case XEN_SYSCTL_scheduler_op:
> -#ifdef CONFIG_X86
> +#ifdef CONFIG_CPU_HOTPLUG
>      case XEN_SYSCTL_cpu_hotplug:
>  #endif
>          return 0;

Is there a reason the #ifdef can't simply be dropped?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 11:13:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 11:13:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259204.1552506 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4dEH-0006vp-Qu; Mon, 23 Mar 2026 11:13:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259204.1552506; Mon, 23 Mar 2026 11:13:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4dEH-0006vi-OC; Mon, 23 Mar 2026 11:13:53 +0000
Received: by outflank-mailman (input) for mailman id 1259204;
 Mon, 23 Mar 2026 11:13:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=578G=BX=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1w4dEG-0006vc-P0
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 11:13:52 +0000
Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com
 [209.85.218.54]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5e7b389d-26a9-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Mar 2026 12:13:50 +0100 (CET)
Received: by mail-ej1-f54.google.com with SMTP id
 a640c23a62f3a-b982518b73fso28664266b.1
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 04:13:50 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.156])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b98335f1747sm481243366b.33.2026.03.23.04.13.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 23 Mar 2026 04:13:48 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5e7b389d-26a9-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1774264429; x=1774869229; 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=YoQ7RjwuW9OFPwy19A2EGOrKv6UcwgAGL9kg1tUUyVk=;
        b=WI1i4vT1xV3Cf8J2rr46dnRh14LTqXIdzp9FzjKzYRyGjZgcg0rriCsTAHOkem13H0
         OJN+hu5Qha12Q1uk21zr92jqPFUMn0UfAWGCnENG0yM67F947dSnxHye6ZzY5hVFOP+b
         4is04uf81bQSfH133nwriPrKR5xqJ6R0+V6TW0CSzlW6ZBlD7f2MP2ZKSrMWdSWUSn0u
         Iu4tafpQPf1q+JqWwspm6HvdC+rP+DAOLTkPMUfDGa2jum2tqoUA+19/veJQgaDaSK69
         bygHdY5MaX4rt53bGpmP0SIH+XUNHMIbVrOiOlnfkBaT9sHAArYJlOP8TG0Cge+SaFVG
         V0fw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774264429; x=1774869229;
        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=YoQ7RjwuW9OFPwy19A2EGOrKv6UcwgAGL9kg1tUUyVk=;
        b=K6CpGf6UCcUieQjZOywmM+D5zqqovji5SCw8H2nE1R2b5N0rOPIe/6SW9nFeYu8wNk
         XoJpJyBbD4TpPOpolcQc2Ny3TjzJ9Y+v0mxo+bV0+mP5N+qkKyjMWTR4MTW5GB7djR4p
         gBIy1w/k98WDAmT7RBZQSXvRisHqMZ47LdDDbbxgeUQswIhMWbiVgLRLxDnvaRjgYDOt
         Ke46IhvfOvo4Sq0Aw1wCwRjWnxqGMZfo9dMAeK62b8xcsox5Yr/HH9LvbwOVYhHPs6pw
         aOLjQBz0YxYd332lFO7JriP83Hei3aV3PvLlCRPXVjFKL5Ad+UE9yf5tnGroxy6ueVp8
         7hcg==
X-Gm-Message-State: AOJu0YyhiGPJqm9bsxKsSocUeu/thxn6RPR1vABpfOHKjY1Z3gsBF9bW
	MCAsygKlVEBHHQZPCzHBiuxke297G18VoQc8xER/CVYBGAK+r6Roze355+C6Lw==
X-Gm-Gg: ATEYQzwiEsaOPSciRT5hG404Pd8AtjJ8OM9eFpwXAcee2OfsYC8sPRFqT2MiznHNCB0
	zCqpsDE1HaHVUeaYHTyu7x3rcxGu+7+pJ9PrBoTDF+CjUDlq0KkhchdtUIuxiETT5J/WdS9L3b8
	51C7tpHlmeqvNOV8fk7Cs4nzWIXbvnZVOZBaaxIe3xXG6EewEm09mmlJtV5EXCZFOtlUWE335Kk
	U3w0HqB75BtZFeZoNQOxANhuZBWi60paK12577NwNR20TtfL/jDpdxuEmpJ0Z+6NfRFlM/Ljxqv
	wHUqek/4650vjQkRocvYwEYr8BAqLTfllZ4bsNglRz4F77x0WerxaakQE+n9N4ly+CaSyGVrwO+
	8RWI7merqnyPf6XwshnU4pnFJa0lqfKQ7/zbvVuSox3PuK6LGGy927UZzztjrCTZzG/3El0SpeS
	AaDTAOryq+uuT9QY9RmlyQ4lhrwSo=
X-Received: by 2002:a17:906:398:b0:b98:235b:4dfa with SMTP id a640c23a62f3a-b982f4e5b0amr649260866b.47.1774264428913;
        Mon, 23 Mar 2026 04:13:48 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2] xen/arm: vpsci: ignore upper 32 bits for SMC32 PSCI arguments
Date: Mon, 23 Mar 2026 13:11:21 +0200
Message-ID: <cde430238469198082114121b14d88bce9f1ceef.1774263939.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

SMCCC DEN0028G, section 3.1, states that for AArch64 SMC/HVC calls
using Wn, only the least significant 32 bits are significant and the
upper 32 bits must be ignored by the implementation.

So for SMC32 PSCI calls, Xen must not treat non-zero upper bits in the
argument registers as an error. Instead, they should be discarded when
decoding the arguments.

Arm ARM DDI 0487J.a (D1-5406) also notes that the upper 32 bits may be
implementation defined when entering from AArch32. Xen zeros them on
entry, but that guarantee is only relevant for 32-bit domains.

Update PSCI v0.2+ CPU_ON, CPU_SUSPEND and AFFINITY_INFO to read SMC32
arguments via PSCI_ARG32(), while keeping the SMC64 handling unchanged.

No functional change is intended for PSCI 0.1.

Suggested-by: Julien Grall <julien@xen.org>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
v2:
 - introduce PSCI_ARG_CONV() to centralize convention-dependent argument
   decoding for PSCI v0.2+ calls;
 - use smccc_is_conv_64(fid) instead of open-coding per-call SMC32 checks;
 - keep PSCI 0.1 handling unchanged, except switch on the already-decoded
   fid instead of re-reading x0/r0.

Link to discussion: https://patchew.org/Xen/cover.1751020456.git.mykola._5Fkvach@epam.com/072270e0940b6bcc2743d56a336363f4719ba60a.1751020456.git.mykola._5Fkvach@epam.com/#7070f416-119c-49f8-acd0-82c6e31f0fc6@xen.org
---
 xen/arch/arm/vpsci.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
index 7ba9ccd94b..65dea5cf6c 100644
--- a/xen/arch/arm/vpsci.c
+++ b/xen/arch/arm/vpsci.c
@@ -230,13 +230,16 @@ static int32_t do_psci_1_0_features(uint32_t psci_func_id)
 #define PSCI_ARG32(reg, n) PSCI_ARG(reg, n)
 #endif
 
+#define PSCI_ARG_CONV(reg, n, conv_64) \
+    ((conv_64) ? PSCI_ARG(reg, n) : PSCI_ARG32(reg, n))
+
 /*
  * PSCI 0.1 calls. It will return false if the function ID is not
  * handled.
  */
 bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid)
 {
-    switch ( (uint32_t)get_user_reg(regs, 0) )
+    switch ( fid )
     {
     case PSCI_cpu_off:
     {
@@ -271,6 +274,8 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
      * adding/removing a function. SSSC_SMCCC_*_REVISION should be
      * updated once per release.
      */
+    bool is_conv_64 = smccc_is_conv_64(fid);
+
     switch ( fid )
     {
     case PSCI_0_2_FN32_PSCI_VERSION:
@@ -303,9 +308,9 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
     case PSCI_0_2_FN32_CPU_ON:
     case PSCI_0_2_FN64_CPU_ON:
     {
-        register_t vcpuid = PSCI_ARG(regs, 1);
-        register_t epoint = PSCI_ARG(regs, 2);
-        register_t cid = PSCI_ARG(regs, 3);
+        register_t vcpuid = PSCI_ARG_CONV(regs, 1, is_conv_64);
+        register_t epoint = PSCI_ARG_CONV(regs, 2, is_conv_64);
+        register_t cid = PSCI_ARG_CONV(regs, 3, is_conv_64);
 
         perfc_incr(vpsci_cpu_on);
         PSCI_SET_RESULT(regs, do_psci_0_2_cpu_on(vcpuid, epoint, cid));
@@ -316,8 +321,8 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
     case PSCI_0_2_FN64_CPU_SUSPEND:
     {
         uint32_t pstate = PSCI_ARG32(regs, 1);
-        register_t epoint = PSCI_ARG(regs, 2);
-        register_t cid = PSCI_ARG(regs, 3);
+        register_t epoint = PSCI_ARG_CONV(regs, 2, is_conv_64);
+        register_t cid = PSCI_ARG_CONV(regs, 3, is_conv_64);
 
         perfc_incr(vpsci_cpu_suspend);
         PSCI_SET_RESULT(regs, do_psci_0_2_cpu_suspend(pstate, epoint, cid));
@@ -327,7 +332,7 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
     case PSCI_0_2_FN32_AFFINITY_INFO:
     case PSCI_0_2_FN64_AFFINITY_INFO:
     {
-        register_t taff = PSCI_ARG(regs, 1);
+        register_t taff = PSCI_ARG_CONV(regs, 1, is_conv_64);
         uint32_t laff = PSCI_ARG32(regs, 2);
 
         perfc_incr(vpsci_cpu_affinity_info);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 11:16:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 11:16:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259212.1552515 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4dHA-0007aa-8l; Mon, 23 Mar 2026 11:16:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259212.1552515; Mon, 23 Mar 2026 11:16:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4dHA-0007aT-5f; Mon, 23 Mar 2026 11:16:52 +0000
Received: by outflank-mailman (input) for mailman id 1259212;
 Mon, 23 Mar 2026 11:16: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=lIW0=BX=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1w4dH9-0007aM-7g
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 11:16:51 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azon11012027.outbound.protection.outlook.com [52.101.48.27])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c82c1006-26a9-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Mar 2026 12:16:48 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH7PR03MB6995.namprd03.prod.outlook.com (2603:10b6:510:12f::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 11:16:42 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9723.030; Mon, 23 Mar 2026
 11:16:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c82c1006-26a9-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OTsgLp5VlSz8eHreozwGWQSNbBe+MbIKFTF3VsdbcsiLQ8PIZHfxaPedoF31+Oi+NzI8Pr8z3LQOMWQKQm/JYu3pkIUA/aTSm0ihc4+yt6OmMLxLslaCKJWOm1s1rntKbKVBfvYY0rG68nbodpNe/XCvtX7i37b+CljjfkacK+IoHxyHT7NGbNXp15KU1bF9S7nWMAh00qxISPGu7AP/sQ/t6UgmhVhWt1JqKQ7TALnCtjaY9XguQ36FEVfzJc+RKES1jQaDYI9Oz9XvJHltieLlKgaqKnnCYhlx8NDiW8BKuXn3fE3DYfjacHz0MTdj3+gAzWdT47rLmWVyiLBiJw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xAUfQ8s+1FGN6f2MApaLd8d/AGOLqbmY+xkVDnQuE4Q=;
 b=G3XVkBiG6aoo2IL0ryfefvgMfDx2FCWKn+24m7wtYY1Mnr5glwv5AR5LojA2TzSNK58jacTCDIS8xCN8wnjExdOMEhE1u/T9rhhWUgdeIlynoH5OHHAaqO7ayyd7gK0vBIFXUR+gufpmF3jLG7wQ3G35S1Qed8zqG4KQ2XKJQa9puXphi6QM5c1zHdqRMJ2ElQhj1BzDoxeB/mew3+WA/3R9usi5WtzFKmuf5Hat5ACCBNhJxNns85rv50zvf3rEnJMTV0pePTOAhG8Jec8mHfSzUVkhi6AXzzAX4AtWk5Olji8pjp5770aXTYQLcCNMKrG0XMi21StY6lJxvGJVYA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xAUfQ8s+1FGN6f2MApaLd8d/AGOLqbmY+xkVDnQuE4Q=;
 b=CR8tjewR/UUendkEyzEWvPYDPcXyULQLyhcYALJko8zaN/FUO2U2ZTAxSs+qBs9sQ/AGXwNd44Rup+RJ4H39NQ9x+wkyReue9nMznrIJWSnWWkO4LdLPyZjw3EILnDxDX6kHLs1nRKW41GYrryUl3V7kLwEpuvXBzYqHvQtMpYI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 23 Mar 2026 12:16: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>,
	Marek Marczykowski <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH] x86/S3: restore MCE (APs) and add MTRR (BSP) init
Message-ID: <acEhF0NnlImMHwiO@macbook.local>
References: <12fbad10-78ad-4679-a1db-3995e34da094@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <12fbad10-78ad-4679-a1db-3995e34da094@suse.com>
X-ClientProxiedBy: MR1P264CA0004.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2e::9) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|PH7PR03MB6995:EE_
X-MS-Office365-Filtering-Correlation-Id: f53e2779-4ee6-4faf-7d64-08de88cd9f81
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|56012099003|22082099003|7053199007|18002099003;
X-Microsoft-Antispam-Message-Info:
	U8LfSXpZCKGbWvhPbk+yEl/uM45yRtHlVk/1UCmSEKC0+jGPhBkRspZNynyD8c8N9KipQwHFE9pLhx23+aqj5/SI7eRjWg6tETfxMp/Zvd5BHtKpKsmK/lgZP34dokhQiRtDMErVItOvO7HbmPer59/4Elq5OoSH7BdqgXHPoexhqedFOy20lAnxqmr3aGI8Zo9zMWRMqbP7Czad4AqTFIWOqeGLnGPH20QftrxZvyb/jQ9GkofBISHxwP0a6RDfGkjuEL4X77ys7phn7tJSkBHZgyZ73DPqRvUXkb2OC82F2ow7X2atx09wIRuH7cNG7k/+wL1QqZyNWMqbHXmV/0f8XMg+0DsX5U1TjKfha6R5PC9fnYMX/Htcy6L37tx0O8cmM1QxORfeiANnxPvedMqVwJbNkH7/Yf0Y243BR6qQ5jQjw8ByaKq5371zlrUBnjY4WZKKk65wk7ZZ3SCmv8tADNCPrWTpyDtCzndPD8P14Xv/PYBhjkx7ePmvSz/akK7sb7MMfOLD3sC+2iulwqyT4IQjM4rHf1mr603YW+4YlvNJ7uDaXgGRk/+sLEmnArQlWeTNL5XCTg2Q0rSM+cCux+S8Tf7dj82ZSSWibutGhz0pNRMZ/9yFcVTAlR+xm+wMwdz2nbk/bhEhsEDrgbRPnx80cMT7DRT186hWjBX+6jOshZRJuh0T/6KiQ4MtsqV3UF2a1XzbwGEr4iwmaTHcTa6MABCKL5wKwGZ8c2k=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(56012099003)(22082099003)(7053199007)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SUV3YVlsR25aaFVyaUdCNXNvMWp3UmFxVFkvOHNIaFdhY2JqbTRvdk5wMUNn?=
 =?utf-8?B?RHZtb2JQc1VYYmtOVkVGc3lXMmRVVjkwN2hxVTkyMGVibHpyWHR6WmswNG9n?=
 =?utf-8?B?ZGV0eDhQeEpOVmsvSUYxUm4zVDB4TndPREkwWjNESmFUSTJpNC9LMWhsVjc5?=
 =?utf-8?B?dXVkTVhQZ1lkclVoRFFUZ1BWbmc4WFRvc3BVOC9XWXhTRE9oNXZ2YU50dlhR?=
 =?utf-8?B?bjlsOW9vMzJMbzNkUG1aVkdLUmhyUURLOWVrOUVUNllaclhMS1pTdnZmcnlT?=
 =?utf-8?B?SHJVVkdHbm5ZSWFqZ01nOEY3Rm5jd2w0NDloNTd2Tkh6L3p6OUlGZ1RBdFJS?=
 =?utf-8?B?U3VqZzRmS09sWk16TU5ndzRSd0dBalQyMG9NWUFFVnBqM3daSE9YTnBwZWY2?=
 =?utf-8?B?RU1qTHhVYTJuM0txUC85M0c4ZzRIMGxubi9VZ2kwUEo4WFBlaS9qcnVta2tF?=
 =?utf-8?B?cUtwczhNMmVoR2FYbGNyQys4MTRBTHlZbEZCbzlvdTROS3U2Z3BYK2lIQWdq?=
 =?utf-8?B?ckxZaitqbDEvU2h0aXNXZkdqanFuZ2JNVlBUVm9kREtuVjB0Y1VwY3N4eDhJ?=
 =?utf-8?B?RUxPT3lYZE1aL0o3WG15aTZOWVFmTW9zdmNwNUVNYWxmL2VDbm93SUxPRUdD?=
 =?utf-8?B?ZGxwdmNiUGdtV0pYQkdqZ1lkVVBod3RqRHpmKzViOEVCRWdaV010MWlJckds?=
 =?utf-8?B?ZXdwZk5RN1ZSb25xVHZPNjVaRCtId3dOdUJmSGVzQXBiRUpuL0lXaElVTzhP?=
 =?utf-8?B?L0MwWjhZTXV6U3J6c1VEdkQwR3JwNnNtNUpBRml1Nmd5OGZKaG5lV2ZrSE85?=
 =?utf-8?B?WmU1Q3FzZzF3aHVlWlNROEJ4OEJLb1F2SnJKTGJuQzBLWHEvaWM1c3hUZDJu?=
 =?utf-8?B?eW4vYmo4WHJHbnZKRkFqei9FTHVQUjdGNm05bmVoQ2Q1VmpDdVdIdmZZaGVO?=
 =?utf-8?B?WWpjek5pUUJ2ZkVoWGRsVUtGYnVRWmJkVEdBM2kvWEVSSWppNExpVGMrRFg2?=
 =?utf-8?B?bzYvanlRbEJQamt3dTBRZTNNQjdEdFNJdzd6eVNDbjFYdnFXNUdoUjYwSDdM?=
 =?utf-8?B?enkxRklQWVE5eXVuQXlOZVZ0MlV6eVdUZURFV3RqQkVIQWFqMnl2NnpoSXRj?=
 =?utf-8?B?dWZIbFFaQVBhTjNQY1R3WXhEQ3h3NWpvN0VkYTFTK293bHJCL1pZbTY5d0Zh?=
 =?utf-8?B?Z1VMQmxSTi9yOTd4Rnpwbmp6YnREOFByU3JuMW5GbklWejM2YkxtQldGZEZY?=
 =?utf-8?B?R1U3SEFrYXUyblRCbW0vUzE2RTZzVDF0cngrREh0S2hUZVpxQ1UwUW9FZVFB?=
 =?utf-8?B?MzJvTDJ5ek9BOXA5VUpMR3dXSWJFckdoOUUrQmk4djNGWVMydU0xUWF2dllN?=
 =?utf-8?B?OTR6Z08vVUNKQXNmWnRwRVVZcmYzMitPMlgvczdQRXpWWWhoS0pUcU1OclhS?=
 =?utf-8?B?RFdmWWJSc1Vxa01EQStDYjAxUzFnK0ZwaExkOXVSSjJ3SzFHaFVySkpHK2Vk?=
 =?utf-8?B?aGxqZHkyeTlkajk1a2hXd0EvWGcvN2gxcTlaU3ZmdjNPcWV5RmNsM1lIMDdy?=
 =?utf-8?B?aGQ4VXJHK205dzBEZXNLTHdRbHRxTlJnYnF2amdocDdrMDExMDhYbFdTb2lQ?=
 =?utf-8?B?MXY2NWU4QmRjaHB5amFteEg2Ni8vSFhrRmhTaTg2b1cwOWc0YU5sT1l0dDdG?=
 =?utf-8?B?SnhRREZnR3k1T2xvWExqUGtEM2lJbkpoclppZ01xZ0ZkTjBGS1M3c21aWHNi?=
 =?utf-8?B?SUtkbkhpWGZtQ1l3NUpoN3RMUmpqZEwwVHI3WGZweXYybE0wVlhqVXVNdTdl?=
 =?utf-8?B?R1AybWRPaXNJMlJjelc0SGZUOEgrSmw2ZGhCK3ExRFR2WlV0YjVURk9Wb29k?=
 =?utf-8?B?bnBhL05qTFhSMXJXdVlRN0dWRTBLNkYwNkxXU3l3MFNZc0EzWURVYUN5bHFO?=
 =?utf-8?B?aFJNN0JMUjJSWmRTQWd0V3ZlSHZZSm1uNE5mSEcrYVMreEJSa2dUTHlQTjM5?=
 =?utf-8?B?dlFqQmp1NEdLeTR4UDVUQjNBTzU3VDVaRU9tSjQ0bm1FZ29aZENyM1hPTzVh?=
 =?utf-8?B?aEtocGk1dGE5REcrajVHbndxTEU2NmVDeEFSYjFnNVA2SEJBTWxGdnoySjFh?=
 =?utf-8?B?U0dROXVRaENRc3Q2Y2pldGRvbWtYakcxdmp1Q1RDSEVVUDJxd0Z2S24xVTVv?=
 =?utf-8?B?V3dLTjNYa3Fxc3FyaVg3OGJ0YmdqTmkyL3NRcWVSVGxTTlN5NndsdDN3b3Rj?=
 =?utf-8?B?SzY5TWxicER1QUd3ZkMvRHoydktPQ2pkK0tCa1hYRGZ2SnFwZithcUcrRTB2?=
 =?utf-8?B?ZHdnQXh4eUtzZlZFQWhYNkpTYzVPdFVKWVVDMVdrVExZUXgzYXBTUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f53e2779-4ee6-4faf-7d64-08de88cd9f81
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2026 11:16:26.1085
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: G0Jk6JpmMpZJqbz2XIX0tPuJRg9wvAClAWLyfupy1CdZgO7Vrz6Wfts+X2leA9D59oomT1bs7Bg7OOeTGayWww==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR03MB6995

On Wed, Mar 04, 2026 at 02:39:01PM +0100, Jan Beulich wrote:
> MCE init for APs was broken when CPU feature re-checking was added. MTRR
> (re)init for the BSP looks to never have been there on the resume path.

I'm not sure the statement about MTRR init is correct, AFAICT
mtrr_aps_sync_end() will also re-init the MTRRs on the BSP, and hence
the added mtrr_ap_init() seems to duplicate what's already done in
mtrr_aps_sync_end().

> Fixes: bb502a8ca592 ("x86: check feature flags after resume")
> Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Sadly we need to go by CPU number (zero vs non-zero) here. See the call
> site of recheck_cpu_features() in enter_state().
> 
> --- a/xen/arch/x86/cpu/common.c
> +++ b/xen/arch/x86/cpu/common.c
> @@ -642,16 +642,21 @@ void identify_cpu(struct cpuinfo_x86 *c)
>  			       smp_processor_id());
>  	}
>  
> -	if (system_state == SYS_STATE_resume)
> -		return;
> +	if (system_state == SYS_STATE_resume) {
> +		unsigned int cpu = smp_processor_id();
>  
> +		if (cpu)
> +			mcheck_init(&cpu_data[cpu], false);
> +		else /* Yes, the BSP needs to use the AP function here. */
> +			mtrr_ap_init();

For symmetry with the BSP path, is it really needed to init MCE so
early for the BSP by calling it directly in enter_state(), or could it
also be done here?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 11:21:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 11:21:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259220.1552525 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4dLw-00013x-Pj; Mon, 23 Mar 2026 11:21:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259220.1552525; Mon, 23 Mar 2026 11: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 1w4dLw-00013q-Mp; Mon, 23 Mar 2026 11:21:48 +0000
Received: by outflank-mailman (input) for mailman id 1259220;
 Mon, 23 Mar 2026 11: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=+HLc=BX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w4dLv-00013k-II
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 11:21:47 +0000
Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com
 [209.85.221.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 796877dc-26aa-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Mar 2026 12:21:45 +0100 (CET)
Received: by mail-wr1-f51.google.com with SMTP id
 ffacd0b85a97d-439bc14dcf4so3455845f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 04:21:45 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b6cdfdfa9sm19643036f8f.9.2026.03.23.04.21.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Mar 2026 04:21:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 796877dc-26aa-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774264904; x=1774869704; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=a74I+JkLGusfBhOhvZxoIP68cNb9aOakHdNPfBY6ahQ=;
        b=Qbkc2MlIhAL+YtdHYE6e2226u/JAxDHTtEqpHFIAZN2F+LabJK7ykZTlXycFFpXHFV
         RG2ANS0ct7WLQSutgjjbnXn8kK1q3+r5BINZyFe81l5Q0B9PpHr55Yi7Ln7Ejf5jyRwp
         v5vtYj771ZxMTu4vUWRLCWaYDBiic8c0P/CT6K3WXNEHg0BTHwLIC7a8Fh9lLDSP0Epa
         sjUr3hkoSUit1kQTOEk2K8l77ODbah/Rlryyi7hXSek9I2du6o/Z7kkb6FWanSFmOwOA
         vpbDJ9vCkesH5j3o6oTvcYOTV+Q/g4jK6c92qwSQpsJDcDk8TVYC4WjQaiZOHIxfx0xU
         2j1w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774264904; x=1774869704;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=a74I+JkLGusfBhOhvZxoIP68cNb9aOakHdNPfBY6ahQ=;
        b=OYonvNhW9gUTLfCJF5jkEAArys5PRMooV+6CHoZBH7ozabPqYFAF3R5eZGz5IqOf5u
         9WmiDJaGaSrPtvQMn+2C1gHI08aED3iS0r32zRc7LngdfxHtaUgmLTNPj4o1lSHbdf2q
         lkKIBJrsqCIMzAlU7lt29C0S9+Kl5iEXhsNi+ijfCddssdkmmGzGShzvwNDU0mdaHbRi
         r5J5GgflvPOqgf7e0P7/9n7hm9Wj1MHRMHfyQ55DULd5Sf7lis2Vd34rUz17CtpzQ5xA
         4u81RHCAjKZRO3NvFUKS0YA25bjpN26SAeY4VziltJjCnK2025+QUPInHeJRGja+jdqP
         fuJA==
X-Gm-Message-State: AOJu0YwLJAjavijCzwTXDxhCpCn8KGlwXvCW2rTC87mZBw9/UUNDEuE0
	Pn4v5ocC7H/eBnc6tLpbnrY4iLtQOPjsR31F7W/g/sQKMnK9SwA+1sCc+U08vwfzGw==
X-Gm-Gg: ATEYQzxyJKGXH8QpyZcMh70z1HpTAjxVGUHXPJoAdUmUjiPtiGAKFo+DiC6Jyf/2XiN
	jHSAdNvBjuA9jNPgiYpI0cNqME9+ZQPGy4HiDPp1dgtaLWA4G1Zt1Wq/U104TxbWhgxFGAK9Mv2
	ts3cAAawcTOKbYkERWjRzTAn2NPrnSvsjOYbeDdjXUMHmNMOlQZBpW1By8vHFuiV3O8CiiVOrNv
	gpFxCPnWzKztfbfRcgcOaEO/xG3qG4+Q0loVvwG6RVU6USbco1CAfjVFOb/o9rGOMmjwOyL8P7q
	Sz+DuI0iQehkqFX30RYMMWim1q/xEBJlLzVyzvGYcwiFG5oZVwmizsIISE1UVpI6uAY5dAMa7Nw
	W9nqFV51buT8VhLT3K6u39lCCMuDmyRUDVz5YJQuatTEPfaiWLK9ogPFlRAqQHXnDX+HQaZY55T
	eIdC5fqxsRcoSGANoqR8xda1b/tcF1ed4CuH699Eu7SBK7Gxd91lRTj8ZcWRpnw2LGmCRElLKrF
	3FPVDujpscST0Y=
X-Received: by 2002:a05:6000:401e:b0:43b:5091:39db with SMTP id ffacd0b85a97d-43b6427249cmr19475056f8f.13.1774264904277;
        Mon, 23 Mar 2026 04:21:44 -0700 (PDT)
Message-ID: <24401de6-eceb-4087-b3e9-05c99cba1d0c@suse.com>
Date: Mon, 23 Mar 2026 12:21:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/S3: restore MCE (APs) and add MTRR (BSP) init
To: Marek Marczykowski <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: <12fbad10-78ad-4679-a1db-3995e34da094@suse.com>
 <aahDX_QvrB1MTLcq@mail-itl> <0c556f7c-6567-43ec-a9cd-eb542fc970b3@suse.com>
 <aahJJdA6ftj3OucN@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: <aahJJdA6ftj3OucN@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.03.2026 16:00, Marek Marczykowski wrote:
> On Wed, Mar 04, 2026 at 03:47:14PM +0100, Jan Beulich wrote:
>> On 04.03.2026 15:36, Marek Marczykowski wrote:
>>> On Wed, Mar 04, 2026 at 02:39:01PM +0100, Jan Beulich wrote:
>>>> MCE init for APs was broken when CPU feature re-checking was added. MTRR
>>>> (re)init for the BSP looks to never have been there on the resume path.
>>>>
>>>> Fixes: bb502a8ca592 ("x86: check feature flags after resume")
>>>> Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>> ---
>>>> Sadly we need to go by CPU number (zero vs non-zero) here. See the call
>>>> site of recheck_cpu_features() in enter_state().
>>>
>>> With this patch, I now see the "Thermal monitoring enabled" on resume
>>> also for AP.
>>> And then, the "Temperature above threshold" + "Running in modulated
>>> clock mode" for AP too. But, I don't see matching "Temperature/speed
>>> normal" for any of them...
>>
>> Which would imply that for each CPU you see at most one such message after
>> resume. Can you confirm this? 
> 
> For the current test, yes. I got the messages for CPUs 16, 6, 18, 4, 2 -
> in this order. Not for 0, 8-15 or 20-21. Not sure about CPU0, but for
> others it kinda looks like I got it for P cores, but not E cores? But
> I'm not sure how to reliably distinguish them - I base it on the holes
> in numbering due to smt=off. Specifically I have online CPUs:
> 0,2,4,6,8-16,18,20-21 (yeah, weird ordering...).

I wonder, btw, if this is good enough to translate into a Tested-by: for
this patch. Thoughts?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 11:26:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 11:26:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259228.1552534 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4dQB-0001oK-9t; Mon, 23 Mar 2026 11:26:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259228.1552534; Mon, 23 Mar 2026 11: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 1w4dQB-0001oD-6n; Mon, 23 Mar 2026 11:26:11 +0000
Received: by outflank-mailman (input) for mailman id 1259228;
 Mon, 23 Mar 2026 11:26:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w4dQ9-0001o6-90
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 11:26:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4dQ8-00FsKp-KN
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 12:26:08 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c1234d-bab6-0a2a0a5309dd-0a2a450ae516-6
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 12:26:08 +0100
Received: from [103.168.172.145] (helo=fout-a2-smtp.messagingengine.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c1234f-1772-0a2a450a0019-67a8ac91c649-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 12:26:08 +0100
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfout.phl.internal (Postfix) with ESMTP id 585E5EC00D8;
 Mon, 23 Mar 2026 07:26:06 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-02.internal (MEProxy); Mon, 23 Mar 2026 07:26:06 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 23 Mar 2026 07:26:05 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm1 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1774265166;
	 x=1774351566; bh=KcW3WcJ7ZmnTrYJ4Y13aRjxCcQ8iJdBOthhe+7Dgsws=; b=
	A2OcNvTkY3Mlsok271OEmF1I3oS4QrkepdAEX1Uui7qXMIb2jopeZsIlfCusSlnE
	wq1IEtebmlur23T+VDQh/CNpkv/GWlJ5CYUKZQwPmuiHCXc05A4mTKFe2vRZ7AHG
	Jt9h2aBOjwAHQS4VzUSZ+vD49MrJtCFWUAoHz2jmPeQTCqanOQxDU8ZpS87Dl/+y
	IP0B0s4v0LwI9p2XJL0cVAJpqzJvFWDJnoLLj7IiCmmHLJCrOII2+pQgOpnC7xWm
	jCC5h4tvl9/KZRLnxX6RDfWbd7zSow6HhuGXcu1wL5E5lJ/BfBQIWSDNQAqUqEYT
	eJXbPf/j9Mfb2OnN3yayVA==
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=
	1774265166; x=1774351566; bh=KcW3WcJ7ZmnTrYJ4Y13aRjxCcQ8iJdBOthh
	e+7Dgsws=; b=vORveng8gtz4Mg6d0z26yx9D8APOovlv/dWq1MGZaX01/M5dEtP
	mqTtG/whs4mk88JoQ6XwGRH5LLmV89mGkPqUnLu9eda8d3WZS2wfNdxraau4N1Lm
	ZTnn2Q5My7syjrGLzgLef5UQs8f4xyI32coklOZ2MBx/pmrXzEJz24EEpjuW0IdD
	BwaVClRD7azfncqBTmgfQGvfebqp/Cr1uzMYotVTgyLQqwOhdnS9sgiVDir0hu8J
	QkUXIpak2zocQCVcDYaVTLS5u2d0u5375tyeAipPFpAIE94cxMY5rfd0lHJUhUjk
	kfkNAjTOcaP/9N3zE3AHHmeAVbnmM7w0s4Q==
X-ME-Sender: <xms:TiPBaV0UkPPl_eLyCHSX9OfmqtSaxiu-kbRwbdK-59ucHdoqv_bEHA>
    <xme:TiPBaTH6jvVqWPaktVHVWoVbnYy1wm6upTUVP68pc87T9SltaOwQDYXfwbo4zPZnP
    kyOuHerOizbnVAQRCNjjKY-VCOLrceLVTRVQHlcSz26iQ-x>
X-ME-Received: <xmr:TiPBaa6avpOGDxgJJ7nSXE0PBgulnGvjyI9UNqLFThQSXspoQuzdI0T_9qOvGsB81NZuOcQ4vZflNyydQlkD4CQnlb6Fi3IBcKw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdefudekheekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiuceomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhih
    hnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfekuddtffettefhieeuheff
    keeuffelvdffuddtteetledtveekfeekleehjefgnecuvehluhhsthgvrhfuihiivgeptd
    enucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgv
    thhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepgedpmhhouggvpehsmhhtph
    houhhtpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtghomhdprhgtphhtthho
    peigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtph
    htthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthht
    oheprhhoghgvrhdrphgruhestghithhrihigrdgtohhm
X-ME-Proxy: <xmx:TiPBaRs-qHzerOmALwQ7rDReghXGHOmc6LcNxMkW_Q_GZprgjFTwow>
    <xmx:TiPBaT7pk5N2xSlnqG5LRZWkckH9rLcRlbvAMIZMIWdQ3UYBjnWWUw>
    <xmx:TiPBaUVRRtHwwJBxDuoCWTuxFV9lPXzgWmq2cN4g0tJIm-VySFyKsA>
    <xmx:TiPBad-re5H3DdG_Wy0mwqdqweGV-jDxBWgwdVkFCcM9tXUo_3_CEg>
    <xmx:TiPBaZHWqLYHPOlTEhk412t19EVOm3aX4DN6oF69GPsolWkdlNgngFVJ>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 23 Mar 2026 12:26:03 +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>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH] x86/S3: restore MCE (APs) and add MTRR (BSP) init
Message-ID: <acEjS7Z1LrX6RynM@mail-itl>
References: <12fbad10-78ad-4679-a1db-3995e34da094@suse.com>
 <aahDX_QvrB1MTLcq@mail-itl>
 <0c556f7c-6567-43ec-a9cd-eb542fc970b3@suse.com>
 <aahJJdA6ftj3OucN@mail-itl>
 <24401de6-eceb-4087-b3e9-05c99cba1d0c@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="XmUa2E5b63X3yneP"
Content-Disposition: inline
In-Reply-To: <24401de6-eceb-4087-b3e9-05c99cba1d0c@suse.com>
X-purgate-ID: tlsNG-4011c0/1774265168-5188A900-3F98AC38/0/0
X-purgate-type: clean
X-purgate-size: 3079


--XmUa2E5b63X3yneP
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 23 Mar 2026 12:26:03 +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>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH] x86/S3: restore MCE (APs) and add MTRR (BSP) init

On Mon, Mar 23, 2026 at 12:21:46PM +0100, Jan Beulich wrote:
> On 04.03.2026 16:00, Marek Marczykowski wrote:
> > On Wed, Mar 04, 2026 at 03:47:14PM +0100, Jan Beulich wrote:
> >> On 04.03.2026 15:36, Marek Marczykowski wrote:
> >>> On Wed, Mar 04, 2026 at 02:39:01PM +0100, Jan Beulich wrote:
> >>>> MCE init for APs was broken when CPU feature re-checking was added. =
MTRR
> >>>> (re)init for the BSP looks to never have been there on the resume pa=
th.
> >>>>
> >>>> Fixes: bb502a8ca592 ("x86: check feature flags after resume")
> >>>> Reported-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethin=
gslab.com>
> >>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >>>> ---
> >>>> Sadly we need to go by CPU number (zero vs non-zero) here. See the c=
all
> >>>> site of recheck_cpu_features() in enter_state().
> >>>
> >>> With this patch, I now see the "Thermal monitoring enabled" on resume
> >>> also for AP.
> >>> And then, the "Temperature above threshold" + "Running in modulated
> >>> clock mode" for AP too. But, I don't see matching "Temperature/speed
> >>> normal" for any of them...
> >>
> >> Which would imply that for each CPU you see at most one such message a=
fter
> >> resume. Can you confirm this?=20
> >=20
> > For the current test, yes. I got the messages for CPUs 16, 6, 18, 4, 2 -
> > in this order. Not for 0, 8-15 or 20-21. Not sure about CPU0, but for
> > others it kinda looks like I got it for P cores, but not E cores? But
> > I'm not sure how to reliably distinguish them - I base it on the holes
> > in numbering due to smt=3Doff. Specifically I have online CPUs:
> > 0,2,4,6,8-16,18,20-21 (yeah, weird ordering...).
>=20
> I wonder, btw, if this is good enough to translate into a Tested-by: for
> this patch. Thoughts?

I think so, It clearly fixes reporting issue.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmnBI0sACgkQ24/THMrX
1yxS8gf9GPeZ6LqT4BNmBeSHDJINlPQOF0FFzt/Ox6O+R/9aSGN8SA7gVDGYGzSV
jl9IEPb6BYUBlk4ReqsnUirlh9O6DVfAJ/LU8xA13gaLUlyhYFFQQpmGWjqVZWhI
WzokksfGoTCurmuV9DMsVu18dyZg7ApELqo1yhSu3G8cQxlkLYKNgF2lgvEdii2m
dkXmFZixEF9BA23EslTw3eez2Lp7zNKhDK5kGKRA8Wl0oilqQFmrpEEb/jOW/1yA
18Mai80xKUkfz4k9g5rDFQxbbODmRYsBy+HTiPUpFO7QqVkvm6CyLH6j2ZEQq5eW
t7q9xuWbwyTte4VnzbCA+wR7x1WIOw==
=Klla
-----END PGP SIGNATURE-----

--XmUa2E5b63X3yneP--


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 11:38:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 11:38:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259241.1552542 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4dcO-0004W2-Ib; Mon, 23 Mar 2026 11:38:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259241.1552542; Mon, 23 Mar 2026 11:38: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 1w4dcO-0004Vv-Fn; Mon, 23 Mar 2026 11:38:48 +0000
Received: by outflank-mailman (input) for mailman id 1259241;
 Mon, 23 Mar 2026 11:38:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w4dcN-0004Vp-QS
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 11:38:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4dcM-009EJO-O0
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 12:38:46 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c1262c-2eae-0a2a0a5409dd-0a2a45078a44-42
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 12:38:46 +0100
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c12646-fd74-0a2a45070019-d155802bd9fe-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 12:38:46 +0100
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-4852b81c73aso24334625e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 04:38:46 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-486fd9845a2sm508977385e9.6.2026.03.23.04.38.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Mar 2026 04:38:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774265926; x=1774870726; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=J8zngj/nLhIAO9NmIjccQi6D4Htz6v6OOUxei0KNjxA=;
        b=YLffg0L77ASc9+ecbv6kX8Nz6cJRHJJvQ+y97kiHDrDjYqM0YMP3+fZlmvfjz5cZ/X
         qTakSEQPtKDeMWEF0gzTBmYwYQpQ0i9FdLD9w5mvBM4eviY04fuzbfyvmIT9suf9xNWx
         LoNBRJtGubTWXUYN4upqXPJSojiets4m6/KMMmkNEuR8HoctUpHUI8ZNowfRtVUVyKju
         BeDahwNE/Kn+tlQva5S4UslEU8uGWcJUksYxNAuD+VGxyNg8qufxo++dUsf+8Mg50PKZ
         tiB+AVU3fAAA1SJ5SRsGCkcKoi49e+iTNPE3HNr6qRQqknnuRtBDyrgUC/Or+39B2rKd
         UGkA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774265926; x=1774870726;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=J8zngj/nLhIAO9NmIjccQi6D4Htz6v6OOUxei0KNjxA=;
        b=K6eepJDTXFF24uGGfXOhg9ZcPNR179RhDOrtJTskN/8L7WLGt2sMuukW80SNaPd0V0
         fonVowow7CedeEtjyqeeQn1d02H6bQT+76yfpZ0wMcLwXnMIR/Qi4VYsW13RR0VEp4mY
         LQoEpcWERXqnx13C5kl5zRITwNKxd8QS8bcCfmTez47meqw1b8lcQy3m5wEvf3XY5VRx
         w526bVvrbc/VrQPnqvNPC3EvM6cz3/U3jgdJpM0BwDv7ZatkBoH5clUQB1T3+vrUDoOj
         4sw3FAbJaykEXBrg+Joc0YX4MDNcYUouyUiq+xVPogNANWyFyWTU/OCPSplkxgUDG51g
         L5og==
X-Gm-Message-State: AOJu0YxqIGVo16Iy+Vk7/OJjlDZ9L8cy5WFZpnzzOTsgG0pDyGVpgJZJ
	rSMGTvt0+EKRnZtgZxJSSBcX7SvRJS77rycGgIimtoLwh0RmhwVg2Y9YyYVmfRyAJQ==
X-Gm-Gg: ATEYQzwWwHSzpu3mVyTKK0pfYLpU7lMZK03eew4H8hWEDnjHp3s44D+dWt9HUvUR/ac
	VYkeR665OBOUi2KuQIrryhsqJHZXEoJFNUwT3JnZjp894f/P/JpwV2bwcGY2uWR4sUrU7gicI4o
	QnI46a5s5ujgRgfAQmRmifX35AAf8/d6JqHOvf1Dj6Rv8ro3Trv2emtZ614oRlxxsOtK4KRFa5P
	LY1uErPqKsrXz02IpDgp5WdLsnH/04M4HXXsojvU900T64ChSMRgKfU0eP9DzlpPlNOyrQyyzPT
	j0hybW2/nyRoeaz6bQt5fsMcN1U5qSOnEX9RGdxQfdvnfTiSYRYnEDzYbvOZWmLH5v1ICZgno/U
	w9I+nx1jRhMGmg+ahc+vxcyAjfIGGz+q93UDhM7xamhuXav9x5YrjwuhcJ349B2k9PbMAcrUpgR
	kwioSQljx957z/1HfiE/tnRp272cyBTBUc+8ICH7CWHrRA3pPi1pdaC4cQhL1naJbhi7R+tQbsJ
	vGdKIXc4Vu+BxM=
X-Received: by 2002:a05:600c:8718:b0:485:45fb:3472 with SMTP id 5b1f17b1804b1-486fedab438mr173019695e9.7.1774265925824;
        Mon, 23 Mar 2026 04:38:45 -0700 (PDT)
Message-ID: <72f9adbe-6dab-4070-be20-3f40f3a37c2b@suse.com>
Date: Mon, 23 Mar 2026 12:38:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/S3: restore MCE (APs) and add MTRR (BSP) init
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>,
 Marek Marczykowski <marmarek@invisiblethingslab.com>
References: <12fbad10-78ad-4679-a1db-3995e34da094@suse.com>
 <acEhF0NnlImMHwiO@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <acEhF0NnlImMHwiO@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1774265926-552B9303-82DDE281/0/0
X-purgate-type: clean
X-purgate-size: 1844

On 23.03.2026 12:16, Roger Pau Monné wrote:
> On Wed, Mar 04, 2026 at 02:39:01PM +0100, Jan Beulich wrote:
>> MCE init for APs was broken when CPU feature re-checking was added. MTRR
>> (re)init for the BSP looks to never have been there on the resume path.
> 
> I'm not sure the statement about MTRR init is correct, AFAICT
> mtrr_aps_sync_end() will also re-init the MTRRs on the BSP, and hence
> the added mtrr_ap_init() seems to duplicate what's already done in
> mtrr_aps_sync_end().

Hmm, right you are. Had I been asked, I would have confirmed that I checked
the code past the "enable_cpu" label, but clearly I must not have, or I was
blind at that time. Let me strip that out.

>> --- a/xen/arch/x86/cpu/common.c
>> +++ b/xen/arch/x86/cpu/common.c
>> @@ -642,16 +642,21 @@ void identify_cpu(struct cpuinfo_x86 *c)
>>  			       smp_processor_id());
>>  	}
>>  
>> -	if (system_state == SYS_STATE_resume)
>> -		return;
>> +	if (system_state == SYS_STATE_resume) {
>> +		unsigned int cpu = smp_processor_id();
>>  
>> +		if (cpu)
>> +			mcheck_init(&cpu_data[cpu], false);
>> +		else /* Yes, the BSP needs to use the AP function here. */
>> +			mtrr_ap_init();
> 
> For symmetry with the BSP path, is it really needed to init MCE so
> early for the BSP by calling it directly in enter_state(), or could it
> also be done here?

To be honest, I would put the question the other way around: Is it really
okay to do it this late for APs (during boot also for the BSP [1])? Iirc
an #MC prior to mcheck_init() is going to be deadly to the system. Moving
it earlier may, however, be a more intrusive change.

Jan

[1] Us crashing (rebooting) during boot is perhaps less of an issue than
us doing so during S3 resume: In that latter case it may mean data loss
(or maybe even data corruption).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 11:43:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 11:43:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259250.1552552 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4dhB-0006Lb-3Y; Mon, 23 Mar 2026 11:43:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259250.1552552; Mon, 23 Mar 2026 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 1w4dhB-0006LU-08; Mon, 23 Mar 2026 11:43:45 +0000
Received: by outflank-mailman (input) for mailman id 1259250;
 Mon, 23 Mar 2026 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=lIW0=BX=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1w4dhA-0006LO-9r
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 11:43:44 +0000
Received: from BN8PR05CU002.outbound.protection.outlook.com
 (mail-eastus2azon11011030.outbound.protection.outlook.com [52.101.57.30])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 89ed20dd-26ad-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Mar 2026 12:43:41 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 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.9723.25; Mon, 23 Mar
 2026 11:43:17 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9723.030; Mon, 23 Mar 2026
 11:43: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: 89ed20dd-26ad-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zCNHQLzJ34zBcMFuFyWqV0d+SUJqVVnyqsYOAmIidsr5Hlg/9NomcuQW9eHm1Rn4wUgEZT8Iolg3BN+xXM7RQpHOvIf+YCSHuQUVTHPaJHtXVUqDtO/Rzpsux0Pa0gwhItiewTRs/6MzV4V80mav5/chdS3sCITJYisvxQSDqrxZr5i/Nt8ebH5ArE7eDGXivIPaA90U28IeTit1ljgsOc8lv1ZKKC0sn3kh8CgKscpunZTHxK1dxkRBCGzudEP+DOQ6Eihw9ss8p7gV3zr5zvG8ffrVoTrkPEn2t9DMR2ShGH+va4kKDxdOhlbZqUxApmhWN6XdsTwnzZpb1abMlQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VNTTuv1mIpdoaYibkk8uRhnxo36W+PtBnwkguQRH78s=;
 b=TIVBUoQYyWtszcsf8okVIkgC5hicYx0zzv1ue/cCT96J24y16HYmSZUX7BgRAb/ze9xrcAlC694P0bGpEkO2Kazl91OLmM+gPBNLqcOh1T57kDPVq9G50W4g87MXz2yxSfFfD+CkyZaTQ9rM+o9byvwYbO1OYyEFrokLNR0MIJuCJxPNBMEDZT9Djoz98EdCDUNasY6urAjNJ4HYxE3wBTUunrzSYieqfPj6ZHSb0Cm8ay4+sYxJokBQIJIr/z3LXCgb1wihQxpwS/eYK+jvQ8cvVa/BUdlMDz4YzjBVZUUVTeK3PGFFUndRe0qUQ6E0mkWLAEhm1pLWRwMkJXQHWA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=VNTTuv1mIpdoaYibkk8uRhnxo36W+PtBnwkguQRH78s=;
 b=Wg+IupXO9ueLTOjrb2B5OUXlFaaeqAWP30LJQH38KCtBmxkvABm5HiYW6CjzoCXipvS3uG6kiCCbDPXpgMqjCHK2gKdwaylSqalPVNOpI2plH+SK2Om69+7jeYqk8Jk3EDOaB3DZ09geefxFY8E3kyhWcGth1c2TymeHNPsUYv0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 23 Mar 2026 12:43:35 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Marek Marczykowski <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH] x86/S3: restore MCE (APs) and add MTRR (BSP) init
Message-ID: <acEnZw1AS5F5G0y4@macbook.local>
References: <12fbad10-78ad-4679-a1db-3995e34da094@suse.com>
 <acEhF0NnlImMHwiO@macbook.local>
 <72f9adbe-6dab-4070-be20-3f40f3a37c2b@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <72f9adbe-6dab-4070-be20-3f40f3a37c2b@suse.com>
X-ClientProxiedBy: MA3P292CA0062.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:49::18) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|LV3PR03MB7732:EE_
X-MS-Office365-Filtering-Correlation-Id: 71432724-d25c-4bcf-d95b-08de88d16254
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	Y0KNplb1uQyE6wVgAP6uXC9l4BM3ofzoJ2HKyQD5zkK8CMxR5nCczlc5rdgsgp82xsKvtKXJXK9xIZoVhBQvdLiUqQWnTseM76r4VfSyOfgIuZeuwtuTTD2CahErN0imy5mh+XIG+pIyITkSHDFNb1OrmVvQTElOpeKoOi5WJ+p3CuyK6WduzYh1SfdK6rns3l6Lqjfop4Oppioma6BcDnYldwgu/oVNP9WIZVbdWC0GT3fIjK0JzvlFbPw4q1gwfiM5FLyf5XL4ZRaSzxcj4/zXBMrFMko0CJRjphMvEAb++CkObi4ibPcEXhrXWZ01ty7S5NAnuSU4Grdn64pEwf9NNopZdNomn1u/3WFHTozExAMmNDjHBdTWiwI0PYU4p0jXEfWdhIFa3On4nbYcSmf3uCzAOYMCIYGTASgONn72mDXLcvqw0xRm0loFZjevK4yNIaRmMsFqTybHSWE5/E8XNNdGidSpP2aXfAQJBUxKOecyR6E7Zqz2keeLHvCm6jjjaJ4te3jEZtzr+9T8YiWDhzdYNQtQ1kii72u0BYagpFl+5KvKIcW9iH8IZJ+aUjJjNTo4zG2jk9poF77H0mp7YxTBPdEcO35560zYbITvw2qEnY4aNm421pXD5E3Mnv9lf8N9f7J4M4XQcc73G1xaRZl3IhpWRQFu4toV4VucPNLnWpmnPvA8T6uXiwmIyqQ9C0wnwORIsUix97RiJj7tOHBiZ5EtqSXqLGOtRc0=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?c0hSa1Bwd1VYcnZtY0loQnFqNzFzODhUdXRZM3NrL09BMXdpOEIraTYyR2RC?=
 =?utf-8?B?eDV0dlQrTEtESDA2N3V4NVkvVTg5RW9pR1RIWCt4Z0s2Y3lwVnFFQTAvdnFT?=
 =?utf-8?B?ZlJZSHdiRnRPNWIrV2xqV0V6dStCNG1xNWhySStkbG1Lenk3bXJQNllSZFJu?=
 =?utf-8?B?WjB1NklJbW9VeFVBdThTb3hoWDhzNlhSeDU0TXNjV1VHMWx2aS84TGdzWHFy?=
 =?utf-8?B?ZkRxNTBjblRmVnRHRVl5VkljbFNMek5Ld0YwVWtCWmRvc29VMWFvSURxS1VP?=
 =?utf-8?B?Q0VKTVdvb28vNWlKTU15RWNDL3laR1ZOVTd2M09QNVZJZlZ6eXl1UmhvTFRE?=
 =?utf-8?B?dGhsRHp1K3RYQnVkdDNMdWlEdGVmbU5taTVEVlZ5cGNSdVVBMlE4V3FZTWlX?=
 =?utf-8?B?N1dMVHBIUzc0WU9mdWpJb0lRNno0MVVXRG9jeXd4amlLTVFKVlJjUGxNbk1a?=
 =?utf-8?B?ODVtU1lyM0dhRVo1Ymo0Vk41eVVGVzZuWGM1Rk5aSHVEd0Z6MStDNjNBYjdF?=
 =?utf-8?B?cHg3cGdJek5QVTZjbkJKVm1NYVB6Y0RlOGhubmJoQm10VmRjRld3MXV5ZWFE?=
 =?utf-8?B?UEVzdVlyZUpkTjFVWURTeUp2M0V0MWxpWi81UUMxWnVTMzBYR3crWWxBUVB0?=
 =?utf-8?B?c3lMOGg2NkpWdlZRQ1VZak12aGtpbVkzYmk1RTFLaUtITDZwTlMyRThrY1Ez?=
 =?utf-8?B?M3dOZFZsU3lQRHUrZmp6TmtuaXpuYTJHWmI3Vjg4TThJT1QrQXhxTGpBZmtl?=
 =?utf-8?B?Z1IzY282QUV3a2hkQk9qSmFjdnQwRUpPTU1WOTU5YUgvZTRtLzJpWFN5bDlQ?=
 =?utf-8?B?WlJ0VXhjN2JQOHc3V0NDQ2M4V2ZzdGkrZ0JQNzhqcEtSNjlVYzM4NnYzTWd6?=
 =?utf-8?B?eDFYSWhvY014dTYrYVBJWiszNlo0cjR5UG4wdjZmVExmZmVEbmZXY25yKzVi?=
 =?utf-8?B?cURaRk1Yc1JpTXczS2NxV2tBbFBOREJCQlBEVVN4UWtib2pZc1NOdDFqZ3VN?=
 =?utf-8?B?RFhoY3BNVllQemM4WWRTQ3g0eWxKVWlzS2JIcU5DaTRCNHdvT0dpTUQ4K2VH?=
 =?utf-8?B?bndpRzRBYWl0YnRhVGZkczF6VVNzcXRBOUdLVHJKZWJ2NUUvUklQWFhiUzlR?=
 =?utf-8?B?L3l2MEZFaTgyTktWM2Y2QnlSUlNaOC9QaFlKbk9ucHo0RHhWMXdVMkF0b0dD?=
 =?utf-8?B?U2xHMVdiVFMvL3l4Tll5YXlzZkppQkxOK3AyNHpJeGxnejRDM3c5dmhSL0FY?=
 =?utf-8?B?SWFKVDNJR0wzR3V4TjVQV3JtY3lnc1YyRFVLOXk3djNQYURPelk2V1hWU3ho?=
 =?utf-8?B?TXRTTjJXK0tMQjh5NlB3TEpGazI3WGFJajNCbU1uK2NVbTIzd1pJS0ZzVHFO?=
 =?utf-8?B?ZlNIK0JqWGh0a0VVdFNpbVBSTW9CdDVjelU5K0tnSGs4a21pUGxjNk9Qamwy?=
 =?utf-8?B?eStGdW1zZG9Ud1JqcSsxamc3eWtZdnhwOGQyTE9lNnk1aVBsS1dlSFdEbzlh?=
 =?utf-8?B?bmhPVGJGSVZWWkpvcnI0bnJDZzltVGFTRFZXUXRJK3lycnp6eTNtYWpvVEM0?=
 =?utf-8?B?OGhGRGlEdWtaNlQwQ0NTNzhMbzRtU0NxOExHK1ZWdksvSjUyTG9wWUtCNWlT?=
 =?utf-8?B?UG1mREhPSG5MZEJZSzJXQnNIbWJGSHRZUXo4QWM2cmVTZFlQbU9LcWg1REhs?=
 =?utf-8?B?Z1FDcU91MWNjcjN1eUV1UXppRlR1MUloMzJzV3M4ZXVvMWRJOGJUVXFWTUly?=
 =?utf-8?B?ZjlqTk5aVGhlQWwzWjlTU2Qxb3MvckZXRld2dXNOT2djNlpuK21aMnNjQU11?=
 =?utf-8?B?d3hmRk1TdjFqVWNsWkVzemhyd29rNG5YUk5IWWg0YVFGaXNkUU40Vkh4R29R?=
 =?utf-8?B?UHIwZjEzMXMxTTVSazNqSStGVlJpbEs1ZU93RVdTNTFUUWpwSWtncXc0ZmUy?=
 =?utf-8?B?OEJMR2E4MzFZYkFmUWp3VDZXL1VKbkk2UkRja2NOTVF6NDRWZFI2V2tOdGN1?=
 =?utf-8?B?NnF6OTREZFh2TW9Sd2ZqK1BFL1Z4b0UxcmRzcllDbnFqamVELy9OZVplV2oz?=
 =?utf-8?B?RXpaWlYwZzM3MGtmYkN4QjFiTVRRNVpXOGk4MzZpbEx4ZE9MRCtJcnQrVE03?=
 =?utf-8?B?cExKMTVwVE5zZGl3N1RSbDh1ZmVvYTd2UVJSVDE3ZjkwV085RVorQ0c1Z3pt?=
 =?utf-8?B?NjRsVEFlR24vWUxtYjEyYysyVVRJb0tBSGJyam1aUkF3NHVDRUt3VmhUdnpl?=
 =?utf-8?B?TDRhOFVTTmZ0NFF4RFNKUUk2Zzd4ME9mOGxrUWtMYkowMUgwcE5sRUY4STUy?=
 =?utf-8?B?YkR3V0lzUUNJWFlnY0JhVTRTR3puL1dUQk1kUWUvd2dDVjJLcDc0QT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 71432724-d25c-4bcf-d95b-08de88d16254
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2026 11:43:21.4355
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 7aR304GMbJZPDg+GwmhxVECclfXmATzag7A4VT5hwO/zs8tHFa2ruUUTplCPWKG15hPmuxHixQj+1F+GowRL5Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR03MB7732

On Mon, Mar 23, 2026 at 12:38:48PM +0100, Jan Beulich wrote:
> On 23.03.2026 12:16, Roger Pau Monné wrote:
> > On Wed, Mar 04, 2026 at 02:39:01PM +0100, Jan Beulich wrote:
> >> MCE init for APs was broken when CPU feature re-checking was added. MTRR
> >> (re)init for the BSP looks to never have been there on the resume path.
> > 
> > I'm not sure the statement about MTRR init is correct, AFAICT
> > mtrr_aps_sync_end() will also re-init the MTRRs on the BSP, and hence
> > the added mtrr_ap_init() seems to duplicate what's already done in
> > mtrr_aps_sync_end().
> 
> Hmm, right you are. Had I been asked, I would have confirmed that I checked
> the code past the "enable_cpu" label, but clearly I must not have, or I was
> blind at that time. Let me strip that out.
> 
> >> --- a/xen/arch/x86/cpu/common.c
> >> +++ b/xen/arch/x86/cpu/common.c
> >> @@ -642,16 +642,21 @@ void identify_cpu(struct cpuinfo_x86 *c)
> >>  			       smp_processor_id());
> >>  	}
> >>  
> >> -	if (system_state == SYS_STATE_resume)
> >> -		return;
> >> +	if (system_state == SYS_STATE_resume) {
> >> +		unsigned int cpu = smp_processor_id();
> >>  
> >> +		if (cpu)
> >> +			mcheck_init(&cpu_data[cpu], false);
> >> +		else /* Yes, the BSP needs to use the AP function here. */
> >> +			mtrr_ap_init();
> > 
> > For symmetry with the BSP path, is it really needed to init MCE so
> > early for the BSP by calling it directly in enter_state(), or could it
> > also be done here?
> 
> To be honest, I would put the question the other way around: Is it really
> okay to do it this late for APs (during boot also for the BSP [1])? Iirc
> an #MC prior to mcheck_init() is going to be deadly to the system. Moving
> it earlier may, however, be a more intrusive change.

We might want to at least add a note to document this asymmetric
initialization between the BSP and the APs at least?

I would be perfectly happy with moving this earlier, and it needs to
be consistent between the APs and the BSP.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 11:48:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 11:48:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259258.1552560 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4dm7-0007Wc-Kt; Mon, 23 Mar 2026 11:48:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259258.1552560; Mon, 23 Mar 2026 11:48:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4dm7-0007WV-Hw; Mon, 23 Mar 2026 11:48:51 +0000
Received: by outflank-mailman (input) for mailman id 1259258;
 Mon, 23 Mar 2026 11:48:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+HLc=BX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w4dm6-0007WP-S4
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 11:48:50 +0000
Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com
 [209.85.221.48]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 41031771-26ae-11f1-b166-2bf370ae4941;
 Mon, 23 Mar 2026 12:48:48 +0100 (CET)
Received: by mail-wr1-f48.google.com with SMTP id
 ffacd0b85a97d-439b97a8a8cso2972960f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 04:48:48 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b6470c239sm29150423f8f.27.2026.03.23.04.48.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Mar 2026 04:48:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 41031771-26ae-11f1-b166-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774266528; x=1774871328; 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=yruJIUkCCFaPXukXAG0a5ZiiUtWAnsWALQwwd00dzu8=;
        b=LVl10yLazsLuP1r2CXXEv9oQK23oWFS4viat2LN7/xH6TMgC3hhF2LJ145tOcPlNmz
         RcWZ7ooUc4Xadi5obQgLwnAg7TbTuAqkstuv/g75CCviwD9D7Iu/x1Aa36OOHM2ye7uX
         C495JdNRkvYMZElBpEUR860d24SxXu+1t4vFjawZnO8b2cZCFs9RI/AQAglNlydZfyV8
         YfJHJqFGatzghFY1VsH6tVql7YQPUIQIzod9TTO+U7gxYj7FDAg1bKjAkupy721nO518
         W1yQ/GCytLsr8bPjWTgV7NQkE5zrYqlUkcYU9hYFWvVoZIwXzXHJ8b0zskgt5IFkghqz
         sBWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774266528; x=1774871328;
        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=yruJIUkCCFaPXukXAG0a5ZiiUtWAnsWALQwwd00dzu8=;
        b=Zf6X9gi58gTtwxiMts96YPCelX08oH5Wpqz7nF/G16y43gjz0YnoD3lYpWSswxK6Nv
         DiSoikZIQua6slZPRlJl1xFq6/Cpvhk1QCAdACoiX8n/U5ONcZ2KWrsgquB7mdH17KW2
         EL/v4Hsw0NqVasGFwnl63s9tiS54L9xR5TzfOhTtqDwhmbjGLMoYDEunqjiYQZ+1Cf8p
         H8Nooso3btbn5BZXi/y3DWoX+HtJjc+0PZVc1OsrSve0ycl00zkikdGR848viyGUNsf7
         EC6gaQs3ESC/ODNgyT81bwXEiawNOA+RKsJzqga3FNtPhBrN9Xtd1DzSpbHX429gESSl
         jV7w==
X-Gm-Message-State: AOJu0YzZXJyM74LVyQxuctuBZQFTaVZR0GdcoBNPjDX6J3Ylzbkjk4in
	Nfcy7ZAcrZJ9T3xwi6sdZvX9e8/EwjK8c8lnSIXW1p+vT/9kB9d8ywCkwXsUWUaKc+d+C5W8Mn2
	zi9w=
X-Gm-Gg: ATEYQzzrB47nf8K/tqmIeyC/q1FHcsG+NjnvPNWt2mnbPlHoBzKeUFO6Pf7vSb83Wbl
	A0hn4k5Bl2J086x9bVmo+kH74v2yMpu3q7Yez8zmORKlvKWto0MSlsaCsZpKJGk6IMR0dtLv+lx
	CMuR2atgw+Tzd2lIvt+E+r6gEbn0mC2vp6esKdt8VZE/W9tuG7WlojolpGMeYwR14gEZkKvPZFK
	S/VQvyX3GXOhBXReuW/v01Hm0dfBvB2ne0z9HVskOkNLTI18IL+o4gY0tNoqZYdfQ7YZ/V33gRH
	0xADTJOkB7EHVfMMDXTc0xbc1m1b/QRZP5KTrnBTeW0eBNiztDJoiKySTO9J+aZkPoYMiI9r79J
	CPNF4RwN/wSzlDWmHTV0J8xpU9Z407jtmhQ5BFDTEuoigQfKs2VDKKx3roAiG2TtVoHXsSqm5wL
	aEwtSXcZbYKVd4JN4JvDLV7FJi36k+odoid3APJZSYg3KEpBo53NkqNew2kOwBkyZeMqzoOccZ2
	9qa+ybhcNTW/dM=
X-Received: by 2002:a5d:4603:0:b0:43b:6955:54c5 with SMTP id ffacd0b85a97d-43b69555596mr11871108f8f.17.1774266527684;
        Mon, 23 Mar 2026 04:48:47 -0700 (PDT)
Message-ID: <95b7ffb6-a088-49bb-bc14-894993de4f77@suse.com>
Date: Mon, 23 Mar 2026 12:48:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v3] x86/S3: restore MCE (APs) init
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>,
 Marek Marczykowski <marmarek@invisiblethingslab.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

MCE init for APs was broken when CPU feature re-checking was added. At the
same time make sure we don't bypass setup_doitm() (and whatever else may
be added to the bottom of identify_cpu()).

Fixes: bb502a8ca592 ("x86: check feature flags after resume")
Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Tested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Sadly we need to go by CPU number (zero vs non-zero) here. See the call
site of recheck_cpu_features() in enter_state().
---
v2: Drop MTRR part. Add comment.

--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -642,16 +642,20 @@ void identify_cpu(struct cpuinfo_x86 *c)
 			       smp_processor_id());
 	}
 
-	if (system_state == SYS_STATE_resume)
-		return;
+	if (system_state == SYS_STATE_resume) {
+		unsigned int cpu = smp_processor_id();
 
+		/* The BSP has this done right from enter_state(). */
+		if (cpu)
+			mcheck_init(&cpu_data[cpu], false);
+	}
 	/*
 	 * On SMP, boot_cpu_data holds the common feature set between
 	 * all CPUs; so make sure that we indicate which features are
 	 * common between the CPUs.  The first time this routine gets
 	 * executed, c == &boot_cpu_data.
 	 */
-	if ( c != &boot_cpu_data ) {
+	else if (c != &boot_cpu_data) {
 		/* AND the already accumulated flags with these */
 		for ( i = 0 ; i < NCAPINTS ; i++ )
 			boot_cpu_data.x86_capability[i] &= c->x86_capability[i];


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 12:17:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 12:17:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259271.1552569 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4eDF-00040n-S6; Mon, 23 Mar 2026 12:16:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259271.1552569; Mon, 23 Mar 2026 12:16:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4eDF-00040g-Pb; Mon, 23 Mar 2026 12:16:53 +0000
Received: by outflank-mailman (input) for mailman id 1259271;
 Mon, 23 Mar 2026 12:16:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=d/Ak=BX=bounce.vates.tech=bounce-md_30504962.69c12f2f.v1-a5e3975b30d84401bdaa110970505a20@srs-se1.protection.inumbo.net>)
 id 1w4eDD-00040a-VT
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 12:16:52 +0000
Received: from mail180-47.suw31.mandrillapp.com
 (mail180-47.suw31.mandrillapp.com [198.2.180.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2a7bb2cb-26b2-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Mar 2026 13:16:49 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-47.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4ffXGR3sYrzPm14yr
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 12:16:47 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 a5e3975b30d84401bdaa110970505a20; Mon, 23 Mar 2026 12:16: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: 2a7bb2cb-26b2-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774268207; x=1774538207;
	bh=vtzE71XAUj4mlCbmZ2v6MGX3kySlZN51bKY0UKkBOkI=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=pJdoeWeRvo/gCOCYVPJpVb2wqPoG8BLMrVNGGViexcpE3RP7iNpJmIUIc17l/FFNi
	 sakkMwcldNf1B9JocJQ46SMjAvJlYdo73CDQdnnWYaCRh6Z0O6HFXymzWdw+dujzKX
	 hhNjwxozeIqh8W9ijiJbuR32ByEz1nPXPUJOMHN2GOIVDRD0GCL22lTo7On5QaXAm0
	 XVuvNdsWLasoI2jaXdbUdHqilQ73/gxZDrOsvG7CQOu1mXuPg+bte3T/g43nl6ysvB
	 3wyepCLhn8Sv0DAy6UKL7Qz3U3HjBKcsZ4A7S9TWlxY/9qhDwH/X7MhQ1m1BadijPa
	 VNS9ic+3k8QXw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774268207; x=1774528707; i=anthony.perard@vates.tech;
	bh=vtzE71XAUj4mlCbmZ2v6MGX3kySlZN51bKY0UKkBOkI=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=pqv//eQzGyr4Dl7OgNnTnWJ5giFfmulSwllqedpYdUTu/VubJhyKnZcV9Q2u4/OlU
	 zNGxlY70RA75Kb6MpU2Fx48Tb9OrjGAy5gr17v5WvM2T2pYc4cdvFjDUWAaGbTbrU4
	 qsbBzxdhrcDGyXma8WtPopw1lXAXZt9vov9Bja5TXBKLGlTETxxqcM+9/eRgTlPWuf
	 7aXgSPL4ZdXZzq8EzXwBg4rI0mTrDw15V8zzFflw4kKis089RjINcpDEYkDiFLfBE7
	 xIGnn2MkVQDBBIl6VxlMaWP/nlc/w4zxvltw+1XgFyCm0dv6FKmVtdjC5nhSQ1/bno
	 LZicl/njPE9kA==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v2=2001/12]=20tools/libs/store:=20add=20get-=20and=20set-quota=20related=20functions?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774268206650
To: "Juergen Gross" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, "Julien Grall" <julien@xen.org>
Message-Id: <acEvLoRZmZjv9Fma@l14>
References: <20260320150120.874878-1-jgross@suse.com> <20260320150120.874878-2-jgross@suse.com>
In-Reply-To: <20260320150120.874878-2-jgross@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.a5e3975b30d84401bdaa110970505a20?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260323:md
Date: Mon, 23 Mar 2026 12:16:47 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Fri, Mar 20, 2026 at 04:01:09PM +0100, Juergen Gross wrote:
> Add functions for getting and setting Xenstore quota to libxenstore:
> 
> xs_get_quota_names(): get the names of the supported quota.
> 
> xs_get_global_quota(): get the value of one global quota.
> 
> xs_set_global_quota(): set the value of one global quota.
> 
> xs_get_domain_quota(): get the value of one quota of a domain.
> 
> xs_set_domain_quota(): set the value of one quota of a domain.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 12:30:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 12:30:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259293.1552604 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4eQ3-0007EE-8U; Mon, 23 Mar 2026 12:30:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259293.1552604; Mon, 23 Mar 2026 12: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 1w4eQ3-0007De-3X; Mon, 23 Mar 2026 12:30:07 +0000
Received: by outflank-mailman (input) for mailman id 1259293;
 Mon, 23 Mar 2026 12:30:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <bounce-md_30504962.69c13249.v1-ed46999a40e74170bdeb461a50a6a598@bounce.vates.tech>)
 id 1w4eQ2-000730-9k
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 12:30:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4ePz-0053Q6-Fw
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 13:30:05 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <bounce-md_30504962.69c13249.v1-ed46999a40e74170bdeb461a50a6a598@bounce.vates.tech>)
 id 69c13249-2eae-0a2a0a5409dd-0a2a4508da10-26
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 13:30:04 +0100
Received: from [198.2.180.47] (helo=mail180-47.suw31.mandrillapp.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from
 <bounce-md_30504962.69c13249.v1-ed46999a40e74170bdeb461a50a6a598@bounce.vates.tech>)
 id 69c1324a-1950-0a2a45080019-c602b42f6fae-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 13:30:03 +0100
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-47.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4ffXYj6tgjzPm0j4t
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 12:30:01 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 ed46999a40e74170bdeb461a50a6a598; Mon, 23 Mar 2026 12:30:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mte1 header.d=mandrillapp.com header.i="@mandrillapp.com" header.h="From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"; dkim=pass header.s=mte1 header.d=vates.tech header.i="anthony.perard@vates.tech" header.h="From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774269002; x=1774539002;
	bh=y1V7BqEKGkvI+4qlEXrBrla1YQmq6kydGHT2fu4x/Xs=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=N39V2ww4tvomhMEOvb9EgMfw6HGqnaxXFUXIC9j5Pzk5cZlMNBau27t17Cs0Aj/VM
	 GN+Jzlbj0LY6ULDOjw1vya1fFaDW3kY4WwunOHIg6efrG8vNJnEHDtsilwCSOZY8tU
	 v8v7QHpPJOHeE8MMNWZWAaS3vlqi8i3epdzlQc8CS8e/Rqdjjnb8s3k5QN7aJPeXS7
	 jOYv2WJJwteBfJ/rYyzmKlx/RY1Fxbo5sCJ8ZKQE+TtMoCbTh9nel/Rvg1a3CBC18R
	 Plf1cC+MajxFwmfGa0o/PDJdhQAL+ng+z+dHdrt0Em/0/ElB0Cg9zKcgtELGMpgKKx
	 IkBAht8RtDkow==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774269002; x=1774529502; i=anthony.perard@vates.tech;
	bh=y1V7BqEKGkvI+4qlEXrBrla1YQmq6kydGHT2fu4x/Xs=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=F/8S/6dnTMOVUpr0JPTDsRdn747Qc3418Mp+Vrkimn2jWHTbYqs/etZGD8+EYYY6v
	 3+1iQ4kQmsJ2uQTIBbbw74XToKnX/exThbzZEt+2sEeyJ0fqAxrJ2vdYcoOCGE1faY
	 g4lovK78jAZF/ZXicYiPRoNUa/WnpbS4WAX1zDsY8ijfDgQjHOBijWv+DR/afa39FP
	 PKL1vA1vc9J5YdsmjnK67okB4WnGSXyS6wYo+yJNQ2yDJffPAq98228LCQM/faQsBs
	 ODt+Ytvd6MoMz/Fk0b63UccdnhQK0YLOk3fYp8Rkg4FHkAtqgVasYFs4km7bXzG7f7
	 qyPPLULaILweQ==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v2=2002/12]=20tools/xenstored:=20add=20helper=20to=20parse=20domid?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774269001303
To: "Juergen Gross" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, "Julien Grall" <julien@xen.org>
Message-Id: <acEySKHLW9beKXbS@l14>
References: <20260320150120.874878-1-jgross@suse.com> <20260320150120.874878-3-jgross@suse.com>
In-Reply-To: <20260320150120.874878-3-jgross@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.ed46999a40e74170bdeb461a50a6a598?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260323:md
Date: Mon, 23 Mar 2026 12:30:01 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1774269003-F0C1A726-6AAC8D14/0/0
X-purgate-type: clean
X-purgate-size: 680

On Fri, Mar 20, 2026 at 04:01:10PM +0100, Juergen Gross wrote:
> Today a domid passed in by a command is parsed using atoi(). This
> will still "succeed" even with a domid like "x", resulting in "0" to
> be used instead.
> 
> Use a common domid parser instead rejecting everything but integers
> in the range 0..65535 like specified in docs/misc/xenstore.txt.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
> V2:
> - new patch (kind of suggested by Anthony Perard)

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 12:30:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 12:30:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259300.1552612 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4eQZ-0007er-G6; Mon, 23 Mar 2026 12:30:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259300.1552612; Mon, 23 Mar 2026 12:30:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4eQZ-0007ek-D3; Mon, 23 Mar 2026 12:30:39 +0000
Received: by outflank-mailman (input) for mailman id 1259300;
 Mon, 23 Mar 2026 12:30:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w4eQY-0007ea-56
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 12:30:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4eQX-00F2OA-H5
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 13:30:37 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c1325f-bab6-0a2a0a5309dd-0a2a4504ddf8-42
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 13:30:37 +0100
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c1326c-c823-0a2a45040019-d155802aed54-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 13:30:37 +0100
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-48541edecf9so604095e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 05:30:36 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-486f8b1fe65sm333088555e9.5.2026.03.23.05.30.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Mar 2026 05:30:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774269036; x=1774873836; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yNhWRhFq2tp/D7mzddaGYnQ7TNFLsjsFMWw4UXqKFsM=;
        b=BtrqLzbGuA7H/pIAv4MNyyVUaRDR60dlJrPkhofhrCxnJACePd2BywHRAv+fn0Q3m/
         FOqoW4JuSTWL4p8FV76Id0lpqDPbxjKedq8QL8yKaTAqNyzevrmHe+qWstrHJjCyGRXK
         5NDjFxlS7V09C95PVYOVm6u6NeU9lduJhdrDZfIxM6ujlgm3RzegCgdYBl7O5teoPbJu
         z8tSzSQK/88gUbf68sThrr89NKMc8WhilkIPlH9vniO5TtZ8u3Qhhj4TrR5EF7TMRDfB
         GMa/zSp9qkTWOURpxbPMZBvaCduQrSjsT1gcE5nKo+Nf1ZRa9WQs6zcsP+RT6yIeeHqL
         tJBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774269036; x=1774873836;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yNhWRhFq2tp/D7mzddaGYnQ7TNFLsjsFMWw4UXqKFsM=;
        b=csQVAL81wrZyHUp2mQnBKK+q+55Y0G5iyCD70R2byrJEJde+Mw7KoywbiF+1osrk0W
         t7URHk5FhChFYxudyqoGLnel0uTSn7BAICYJhjHtP4KXYSukHlBtmHTxPRIoOXmXbH5u
         QKkNDFMSnYB2fTAYx41Sb6vQoEqSsnLFP30GTnlh0Udxa7mhlDV40gg8PltkA9Fp3viO
         zEj1yCfdAXBH5zaBmIqkrVKjx1J7FyoaAwNR36MiJgQkJcFlILAZjA/PYq7kVs/fxaxe
         79d8hIy5LC/Qyive1f+kv9w8+QZ2iTg7lNlXbyvi6QnEfXDfOkQeq7dAJbHwkFPqVYkt
         rTCA==
X-Forwarded-Encrypted: i=1; AJvYcCV8DuB/Xe/4LRaUBA3wgqxjLldywZtILQ2di21RmsZBTAROG2IvyAgK529ja97iFdiyOlk3rGezlIc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyY9CVV61lKcvuWuOrOHQRImMhC/vGMu3EMju3MME5FwEHDYJiH
	z99lZrlf3nVQZwajNv28BJyu6Zj8msaZmR3VGW5StZ4Wj+Vj0D9zHc6tSdcjI7jN7Q==
X-Gm-Gg: ATEYQzxtBwrYlRnf/o2r+SNU7dZJATlB/90JK5CtrwQ8hSnRDqNCSEFmIhwdW4AX5vn
	hzw5eyNld3lOCflxj0tWYm04lhK3W71+Wz1wkQnvvxXw4FAojJWiFZZLyjo17JZm04v9svLjMis
	EBMHcWjFuAsZ09NhvhyLrh7um0/S/W9VFwESjKFRTphW6K1uxBnfEq7IdqN043hwE+ZD66gA6o/
	FuLhI+NyOHZp5KSy0hlEQ46akLo5g7YaDJWwZtihB6VPyp+wdtDt0OTjA4xOC+C5B7BFJptx/hM
	k0ltfVrp6kUqA7GyexvbD33IiIqGsiMuiOkqqudyWmqoFt8KrFpMP65aXA+et3e1pQ2kQRPVKtN
	jv39dgpY5gF+RSDHQ2vELRsvsw4hFx38Ch157SWTK2HjXpXrICdgNvfgCvJkaiPSsuhf8mpio+s
	7fM0gjkKxMlxfoMogQ7QrUcvSWnMtXpGMK9G3N6jc8DX6DQDjOcuA50xNeVuKqPW+Nsc+CcSQlV
	VhMEF/tX48SWEg=
X-Received: by 2002:a05:600c:5288:b0:485:3bb5:92cf with SMTP id 5b1f17b1804b1-486fedc9a5fmr180780835e9.12.1774269036282;
        Mon, 23 Mar 2026 05:30:36 -0700 (PDT)
Message-ID: <a0674df5-41d6-4f25-a236-52390a5c506e@suse.com>
Date: Mon, 23 Mar 2026 13:30:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 8/8] x86: Cleanup cr0.TS flag handling
To: Ross Lagerwall <ross.lagerwall@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
 <20260319132924.1469809-9-ross.lagerwall@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260319132924.1469809-9-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ebf023/1774269037-106659D1-63BFAF29/0/0
X-purgate-type: clean
X-purgate-size: 1263

On 19.03.2026 14:29, Ross Lagerwall wrote:
> --- a/xen/arch/x86/cpu/common.c
> +++ b/xen/arch/x86/cpu/common.c
> @@ -883,9 +883,6 @@ void cpu_init(void)
>  	/* Install correct page table. */
>  	write_ptbase(current);
>  
> -	/* Ensure FPU gets initialised for each domain. */
> -	stts();

I'm a little concerned by the removal of this and ...

> @@ -193,31 +190,18 @@ void vcpu_restore_fpu(struct vcpu *v)
>   * On each context switch, save the necessary FPU info of VCPU being switch 
>   * out. It dispatches saving operation based on CPU's capability.
>   */
> -static bool _vcpu_save_fpu(struct vcpu *v)
> +void vcpu_save_fpu(struct vcpu *v)
>  {
>      ASSERT(!is_idle_vcpu(v));
>  
>      /* This can happen, if a paravirtualised guest OS has set its CR0.TS. */
> -    clts();
> +    if ( is_pv_vcpu(v) )
> +        clts();
>  
>      if ( cpu_has_xsave )
>          fpu_xsave(v);
>      else
>          fpu_fxsave(v);
> -
> -    return true;
> -}
> -
> -void vcpu_save_fpu(struct vcpu *v)
> -{
> -    _vcpu_save_fpu(v);
> -    stts();

... this. At present it guards us against e.g. an idle CPU or context
switch code mistakenly using in particular XMM registers (but of course
also other extended state).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 12:51:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 12:51:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259310.1552620 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4ekF-0002Ym-1M; Mon, 23 Mar 2026 12:50:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259310.1552620; Mon, 23 Mar 2026 12:50:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4ekE-0002Yf-V5; Mon, 23 Mar 2026 12:50:58 +0000
Received: by outflank-mailman (input) for mailman id 1259310;
 Mon, 23 Mar 2026 12:50: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=OIpU=BX=bounce.vates.tech=bounce-md_30504962.69c1372d.v1-020fb4d42f844abfbc94953b73f98011@srs-se1.protection.inumbo.net>)
 id 1w4ekE-0002YZ-2T
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 12:50:58 +0000
Received: from mail180-47.suw31.mandrillapp.com
 (mail180-47.suw31.mandrillapp.com [198.2.180.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ee03a985-26b6-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Mar 2026 13:50:55 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-47.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4ffY1n58DQzPm0hHP
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 12:50:53 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 020fb4d42f844abfbc94953b73f98011; Mon, 23 Mar 2026 12: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: ee03a985-26b6-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774270253; x=1774540253;
	bh=QV6Ov3N//XtKC760wpPNi7XKYh20alxA4UR8FMz7buo=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=ghVdtAW3be4ChHCa3/2FQ5TryVBdzNVH710YKrOSHiuPGpeANSyYCanap6k67uBIN
	 BdUUCwWOHM0lWmiKePeEnGCcQcZMAivTKUGruTVaVbw+eTQCsoX1tTKHqCETtq2CWx
	 WKHRTOoHR2M2lFKU24YvWgd5VAaluJjNYy4EMuqGSu5O7B0twtMbRayTT0bhV5YEbX
	 CJKFpjvhtETrgbyyBTcoxA9uIonDmN9bJjqacLv2I8u0j7UKQr0fdbqdvZCe6orZm0
	 +klrnR143UR67/tIor8Ofs5ktFXNbsWL8ydgQH8yU1Yj9X0dLz+X+Jw7ziH8Dp8qwI
	 4mCHZaItUq1Rg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774270253; x=1774530753; i=anthony.perard@vates.tech;
	bh=QV6Ov3N//XtKC760wpPNi7XKYh20alxA4UR8FMz7buo=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=YYjcQNyJR8ikmOGOvGb+6PXF9lhLCKJYsi2/rEQXeYGGBzBsTD9w3LqjIX+k6/6ID
	 +zs6UGHc3X63cNIn7m9Suw9m/OLycBGc19hMObEy7yvTaUT/xO7aFZ0LDYsWlT5dAW
	 Q0hic4BBrZOJxTV9Y5o+GG1NA7jt2xaffIoWSknDbP7x63uRFWz4iww4Li5zUfu4eL
	 HSYOGdd7lNfeS8jUzPsCTxznrMZnaSd7nJpTcZA5k54nC29VG0gja6VTjln2OPb90/
	 EV3q1FUp6KrbxoHtpEi03THDoE3qkjDC1Jbzb4Rq+LxmuwWeMq3waJsSoZt9lmjdA9
	 ys2rMzhJ6xcjw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v2=2005/12]=20tools/xenstored:=20add=20GLOBAL=5FQUOTA=5FDATA=20record=20for=20live=20update?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774270253135
To: "Juergen Gross" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, "Julien Grall" <julien@xen.org>
Message-Id: <acE3LNSwDIowgGJm@l14>
References: <20260320150120.874878-1-jgross@suse.com> <20260320150120.874878-6-jgross@suse.com>
In-Reply-To: <20260320150120.874878-6-jgross@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.020fb4d42f844abfbc94953b73f98011?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260323:md
Date: Mon, 23 Mar 2026 12:50:53 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Fri, Mar 20, 2026 at 04:01:13PM +0100, Juergen Gross wrote:
> Communicate the global quota settings via the GLOBAL_QUOTA_DATA
> record to the new Xenstore instance.
> 
> This avoids to lose global quota settings done via xenstore-control.
> 
> In theory it would be possible to drop any quota related command line
> parameters in the live update case, but they don't do any harm, as
> the record data is applied on top of the command line data.
> 
> For soft-quota just prepend "soft-" to the quota name.
> 
> Use sub-functions for building and analyzing the quota part of the
> migration stream, as they will be reused for per-domain quotas.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
> V2:
> - add macros for soft-quota name prefix and its length (Anthony Perard)
> - don't allow disabled quota in parse_quota_name() (Anthony Perard)
> - rename "len" to "rec_len" in dump_state_glb_quota() (Anthony Perard)
> - rename build_quota_data() parameter "name" to "names_buf" (Anthony Perard)
> - let get_quota_size() start with len 0 (Anthony Perard)

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 13:00:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 13:00:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259322.1552629 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4ete-0004bK-TU; Mon, 23 Mar 2026 13:00:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259322.1552629; Mon, 23 Mar 2026 13:00:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4ete-0004bD-Qw; Mon, 23 Mar 2026 13:00:42 +0000
Received: by outflank-mailman (input) for mailman id 1259322;
 Mon, 23 Mar 2026 13: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=/4j2=BX=bounce.vates.tech=bounce-md_30504962.69c13976.v1-cf35a5d89feb464f8c8ecfef9dd581a5@srs-se1.protection.inumbo.net>)
 id 1w4etd-0004b7-GI
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 13:00:41 +0000
Received: from mail180-47.suw31.mandrillapp.com
 (mail180-47.suw31.mandrillapp.com [198.2.180.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4aac4b7b-26b8-11f1-b166-2bf370ae4941;
 Mon, 23 Mar 2026 14:00:40 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-47.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4ffYF25Jy8zPm0kGK
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 13:00:38 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 cf35a5d89feb464f8c8ecfef9dd581a5; Mon, 23 Mar 2026 13:00:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4aac4b7b-26b8-11f1-b166-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774270838; x=1774540838;
	bh=Y0lQ7deiDHXJ97ld/mcVoxOualtAgacMfezryY/K2rg=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=VahbI6eEvddOKKbEhoxLW7o+KJG9ctA/XfnVuKbXXXjAa+BDaxvq3m5ugoLDS6UMa
	 6iO36GE9mklxj2vZnlAvj4lNYgvSA8cYB0YUfmeomIYHzscQRX0X4sGk54ZfATh3S0
	 B9Vo58lBAwVOvBkN4nsBtp6ARtK+B8ofudl9ZjTV+T1zidiZy1gkLYP2birnSz6iOg
	 w86hvnRqPIWsz3PXrJqfbWIDi/yZWtI+ykXjxu3kcLGjRLULeOmJaZnAYUd8g81Ycl
	 bAouOXNo/hdPPdKibmYUCH/kc6J+GpoFH/dg9MdB9/gXOgZhyYbCs/5ubrLsC0Cd3U
	 /DyGs4Yxp87dw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774270838; x=1774531338; i=anthony.perard@vates.tech;
	bh=Y0lQ7deiDHXJ97ld/mcVoxOualtAgacMfezryY/K2rg=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=z/tk+E6geigTmC+AXlboU0ikIg6aZ4XSXzZOJjmTqpS5Cg5r9w4JkvyNtwt2jtWkH
	 14iiJkyxxjndXpTFHQSxF6MwQL/ihKeSaYeXZ9jByGIwfJdutFW97qir+4wRxrboMt
	 xTt6kyBEjYROY8ndyX6nGRlm1F1ILdS/oUG/jwiAhnnCPvEpPPAa4S5Aua8pPgQVF8
	 Sj07tFheY1ENPjegl/0rBGYxa2IZIZ4R84/GchmOQ9Z6YEVyfMherBgQkju/0LPuhK
	 JrcKBDyja6KDwOur5BBFoWceatlJjY224ljG5F6yDYd+amzAx4lYnr9yiSXYyEJn/N
	 lvf9sLSPrkYsw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v2=2008/12]=20tools/xenstored:=20implement=20the=20GET/SET=5FQUOTA=20commands?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774270833297
To: "Juergen Gross" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, "Julien Grall" <julien@xen.org>
Message-Id: <acE5cC3MAk1yz2nW@l14>
References: <20260320150120.874878-1-jgross@suse.com> <20260320150120.874878-9-jgross@suse.com>
In-Reply-To: <20260320150120.874878-9-jgross@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.cf35a5d89feb464f8c8ecfef9dd581a5?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260323:md
Date: Mon, 23 Mar 2026 13:00:38 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Fri, Mar 20, 2026 at 04:01:16PM +0100, Juergen Gross wrote:
> Add the implementation of the GET_QUOTA and SET_QUOTA wire commands.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
> V2:
> - refuse quota value Q_VAL_DISABLED (Anthony Perard)
> - use talloc_strdup() (Anthony Perard)
> - drop comments in domain.h (Anthony Perard)

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 13:20:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 13:20:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259332.1552639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4fC6-00076S-BM; Mon, 23 Mar 2026 13:19:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259332.1552639; Mon, 23 Mar 2026 13:19:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4fC6-00076L-8Z; Mon, 23 Mar 2026 13:19:46 +0000
Received: by outflank-mailman (input) for mailman id 1259332;
 Mon, 23 Mar 2026 13:19:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gece=BX=bounce.vates.tech=bounce-md_30504962.69c13ded.v1-9ba1472d4c0d407eb27dac7e1afad91d@srs-se1.protection.inumbo.net>)
 id 1w4fC4-00076F-LW
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 13:19:44 +0000
Received: from mail180-47.suw31.mandrillapp.com
 (mail180-47.suw31.mandrillapp.com [198.2.180.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f3a1dbea-26ba-11f1-b166-2bf370ae4941;
 Mon, 23 Mar 2026 14:19:42 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-47.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4ffYg12JnxzPm17Ks
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 13:19:41 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 9ba1472d4c0d407eb27dac7e1afad91d; Mon, 23 Mar 2026 13:19: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: f3a1dbea-26ba-11f1-b166-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774271981; x=1774541981;
	bh=B9v+7+AVox/dnggf6f9JCfEKZgdLhL85lF9wgDvHbEc=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=04eEYlIHZ8kGPDOmiGkKZkp4C7M7RcPZPukCoY0d1NINBlpNC0DsIk2PToeWysz3/
	 bs6/yrQ81xNedqhgnOi+rB2nR24EZ+9oES6+KTgX38TdXgOW8IE8AMCMHx+H2BHgAL
	 skQ91TLCcn4+dCRpV4O3IctqgUzUQP8ldhH6/cv7NAeMDyDVPkc/V7DFZmQacWaJyw
	 alExcTWxYLTe3jfIXU/AxnKX0rieWcGgTbwFMMvafOar5cweIFiWfsabpGbOTP9J8a
	 Grq2NEUtQ7mhcAF+AW8zQC2AzMjP3Ht7yuCoIuSDVnndOliwkZwAhjWHR82RXiWG8z
	 5QTfAjg6qkRZA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774271981; x=1774532481; i=anthony.perard@vates.tech;
	bh=B9v+7+AVox/dnggf6f9JCfEKZgdLhL85lF9wgDvHbEc=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=QnlmBPgnYFHNf36Mj9kXvs/lL8rJ7EA2j8hhSclYFrxZqi0tNxO38VE1PSfaBXT8a
	 c+v8AvVkGAiuDI/Rp/zm8eIpHjRtGCK7IJ/8m7dQ/wvvaCMh8NFVH8l5eHrCAll87O
	 u/u6WlIg4/4UaxrNt8tozyWvB60r1NWCuJeprX3X1K8WzqGjJ3lkV4Ybg7X2H1Wt03
	 +geH0gQ7bce/pNmkGXIHUxMb6r3DDSI2D0A1av3oaCJt23N5US/JAV2vbDAbJl6QSA
	 t2E7xbrirgFvDmIL5QgV091sUlm8Ns0DYL5+IgkkEkQAlI8yFlqLymWNt//R3adZM1
	 rXO1BcWxxPXPQ==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v2=2009/12]=20tools/libxl:=20add=20functions=20for=20retrieving=20and=20setting=20xenstore=20quota?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774271980736
To: "Juergen Gross" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, "Nick Rosbrook" <enr0n@ubuntu.com>, "George Dunlap" <gwd@xenproject.org>
Message-Id: <acE97H02nggk05mc@l14>
References: <20260320150120.874878-1-jgross@suse.com> <20260320150120.874878-10-jgross@suse.com>
In-Reply-To: <20260320150120.874878-10-jgross@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.9ba1472d4c0d407eb27dac7e1afad91d?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260323:md
Date: Mon, 23 Mar 2026 13:19:41 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Fri, Mar 20, 2026 at 04:01:17PM +0100, Juergen Gross wrote:
> Add some functions allowing to retrieve and set Xenstore quota (either
> global or domain specific).
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> Acked-by: Nick Rosbrook <enr0n@ubuntu.com> # golang stuff
> ---
> V2:
> - rename libxl functions to use "xs_quota" instead of "xsquota"
>   (Anthony Perard)
> - rename the libxl_xs_quota_*_get() "q" parameter to "q_out"
>   (Anthony Perard)
> - rename the struct xs_quota_set to xs_quota_list (Anthony Perard)
> - several style changes (Anthony Perard)

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 13:21:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 13:21:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259342.1552648 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4fE4-0000Cb-QE; Mon, 23 Mar 2026 13:21:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259342.1552648; Mon, 23 Mar 2026 13: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 1w4fE4-0000CU-NK; Mon, 23 Mar 2026 13:21:48 +0000
Received: by outflank-mailman (input) for mailman id 1259342;
 Mon, 23 Mar 2026 13:21:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <bounce-md_30504962.69c13e6a.v1-33c5301cf1314178811d3a23cda0d1b3@bounce.vates.tech>)
 id 1w4fE4-0000CO-B0
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 13:21:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4fE3-00Ardz-N2
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 14:21:47 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <bounce-md_30504962.69c13e6a.v1-33c5301cf1314178811d3a23cda0d1b3@bounce.vates.tech>)
 id 69c13e66-5cb7-0a2a0a5109dd-0a2a450b9786-18
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 14:21:47 +0100
Received: from [198.2.180.47] (helo=mail180-47.suw31.mandrillapp.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from
 <bounce-md_30504962.69c13e6a.v1-33c5301cf1314178811d3a23cda0d1b3@bounce.vates.tech>)
 id 69c13e6a-ef63-0a2a450b0019-c602b42f5b4e-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 14:21:47 +0100
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-47.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4ffYjQ0xFyzPm0Z0p
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 13:21:46 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 33c5301cf1314178811d3a23cda0d1b3; Mon, 23 Mar 2026 13:21:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mte1 header.d=mandrillapp.com header.i="@mandrillapp.com" header.h="From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"; dkim=pass header.s=mte1 header.d=vates.tech header.i="anthony.perard@vates.tech" header.h="From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774272106; x=1774542106;
	bh=LC/ReU2hsrMf13apk+f9xRZm1UAz9MWmFywd2c0wNow=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=vlep/Cm/U4q9PLicHmrI4bAlAGGH6Q2q1/u3jz9LalJB0g8cjAmvrhCVdXrNYm52W
	 77BhbEJ4RVkKHhUUwKus3zwyUJIFZkilPtguyzppug30413oK+TIqeD41pWh3+R163
	 XxwwoIG0raaVEPran2rcdOZD/JObct1/6fI7DqRVczYfxPSNRmJDbf8vZoxDTq+wK1
	 FgFWLh4mjuY/laTSzoV5H8PWqQcymuMJesZRP+sPsl7sDy9DyN/8YFfcd39Wp0u8Gs
	 7E8YiIrrX0iIghqPdKHD+S6ICdvsSbRbtTggEdYSoeDiqr3a3kGqzMtuo15MLsQddd
	 tLj3NUjNrRY8g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774272106; x=1774532606; i=anthony.perard@vates.tech;
	bh=LC/ReU2hsrMf13apk+f9xRZm1UAz9MWmFywd2c0wNow=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=KXVngi2drWTVntoY7m87UKXw2ERuunRQHIflfDEqSt881b2MWDFRn3qp0Esp+lTga
	 KotnWZWJgjllKcmMb8/2klYtgTLTqfgH/VyANmd70F7wn9c6hlgLNtadWiDOyqpveT
	 U2f8ze2Xo3p1n3iUsZ2XJAi4ylMbMz4Fl1G2YMTW2YcTzR32emh8ZO+FcPZQoBWlBZ
	 myMgq2a0kgkwQB7Fq71dpxt3KZJtEWNDKvx0NnrYPnACVYCOJP3oqPgObgDg2pl7RK
	 YjSxRc032SA+LDR5FtW9c6LHUTlr048jLxjDLYFfT9ZtUal/lc7+sCKIbzsRfZwhf9
	 dyO6qEtU29DAg==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v2=2010/12]=20tools/libxl:=20add=20support=20for=20xenstore=20quota=20in=20domain=5Fconfig?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774272105554
To: "Juergen Gross" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, "Nick Rosbrook" <enr0n@ubuntu.com>, "George Dunlap" <gwd@xenproject.org>
Message-Id: <acE-aa5H070ZA9Cm@l14>
References: <20260320150120.874878-1-jgross@suse.com> <20260320150120.874878-11-jgross@suse.com>
In-Reply-To: <20260320150120.874878-11-jgross@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.33c5301cf1314178811d3a23cda0d1b3?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260323:md
Date: Mon, 23 Mar 2026 13:21:46 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1774272107-BB2A8112-38943692/0/0
X-purgate-type: clean
X-purgate-size: 647

On Fri, Mar 20, 2026 at 04:01:18PM +0100, Juergen Gross wrote:
> Add support for xenstore quota in the struct domain_config. Initially
> it will be used only for migration of a domain.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> Acked-by: Nick Rosbrook <enr0n@ubuntu.com> # golang stuff
> ---
> V2:
> - use LOGED() for error logging (Anthony Perard)
> - mention additional struct member xenstore_quota in libxl.h
>   (Anthony Perard)

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 14:00:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 14:00:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259354.1552657 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4fpq-0006xo-Mv; Mon, 23 Mar 2026 14:00:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259354.1552657; Mon, 23 Mar 2026 14: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 1w4fpq-0006xh-Jh; Mon, 23 Mar 2026 14:00:50 +0000
Received: by outflank-mailman (input) for mailman id 1259354;
 Mon, 23 Mar 2026 14:00:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lIW0=BX=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1w4fpp-0006xb-HN
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 14:00:49 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazon11013028.outbound.protection.outlook.com
 [40.107.201.28]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id afccfcb8-26c0-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Mar 2026 15:00:47 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS7PR03MB5638.namprd03.prod.outlook.com (2603:10b6:5:2c3::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 14:00:20 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9723.030; Mon, 23 Mar 2026
 14:00: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: afccfcb8-26c0-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TwdqlW9UQLhSAfE3EwJAx8N3XDZBbwV0PMlyw6EndmUa1q4dd8+VDHIOD/pSgMHCGvVLeTWm3DTh5S3zYUPBu9cfe+3VjRF2GOVlwVT0K7nSQxCj2/zNWSC44HXfYFgQDxNiyYTzR1DpvQFqZW93ZsjWn1Lz+eevmroLEuc1J98ed9VQF02Yg4s2guaYoA2NyozeSGyDpN/J9bY+jiTGmnJBL/Ssi0kuikQWLXHf/PJx65bLDGMN3BCzVNG/xwjTXcU/dYcVZWDLwinQfk8Qnft0K1EbVxKZGRAjj2s2IUNSw47gDArqXB7MGu6EohQyFpTeaSZVtWQJ7c2oKjzkWQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9Xsg3v6/ycOHJMQ0ON1oGuyXgWGjMeOrnkK2jNfCMMw=;
 b=LGINt6SxXCW7080Y772XZmu1eSnuK7oX7KeNtkfXDD/WF3cJRJi6GKZiXIp9h5zZh+FQoBizjFETxJAGJBeWCCbMFNN3mAYngLoGBlT1bbEbNemuZ1FDh6kVvcmp2qVVqa/D3Hq2RW1+ocQXHNNdSLVde20Wty5feOVE5vKwQX4k6K2Bw1MESBttT1a82452PyGk6lDlQj3Tba0dQqT5oweBI1PDoDG7FipgakEiAZqWBMD1HeWuSyP8GagN9WujcYRWDKrqHozce3dBZSxOuGqtYi7zIKPHCk4f8F4DlO+nWLPkxeZC6hKUK+xMnqmX1C4Q3V4lEipwBRyiQlJqSw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9Xsg3v6/ycOHJMQ0ON1oGuyXgWGjMeOrnkK2jNfCMMw=;
 b=hgCKyVvpZpoOzSUmxGChx2GKqoptZV/7iRsU+8W0vKxTG3V+0ocaxZ4Z7KbeaoMrQRw5yY2kGDEljmqk7T7qVoN5S07aFDI/jmbvUdw+b9s+nYrj7r6WAoG+iDTfUM/cux1nAN4lzBBU89nHGC4dPN7fUPnKrlUH1t9ZAjeKdOo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 23 Mar 2026 15:00: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>,
	Marek Marczykowski <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH v3] x86/S3: restore MCE (APs) init
Message-ID: <acFHhTFPdX7D_4Px@macbook.local>
References: <95b7ffb6-a088-49bb-bc14-894993de4f77@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <95b7ffb6-a088-49bb-bc14-894993de4f77@suse.com>
X-ClientProxiedBy: MN2PR08CA0017.namprd08.prod.outlook.com
 (2603:10b6:208:239::22) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS7PR03MB5638:EE_
X-MS-Office365-Filtering-Correlation-Id: 1ba23e16-9598-4e43-8980-08de88e4865a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|7053199007|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	k9gKWXaFFVv9fLS+ZbFYf27AAna8bL6TQtgwtdrp0TODVFa6nuUVgjPZlK4AL3I52Qvr+x/h3OKiUtXi7+PCaQXwuiAQ0BuX8ygP0UFyWG+vQ+sVeFM2vRLaiCKnevF5lCcnu1Fkjbbi6+mV1VnskQF6nv5uA1tw+WBzTRnnGo97VSRenIqx0oaVWIo6n7433STqKDaiBYlO0qP+MwDns2qG+Z+eBggFc3dWgpTvjSgvfNCK7C84wvoIKMhUG3IGExunzVWUTI37LUEMT3aHrKPq0qSz5mjIGBAIl00zvxF7EDbeXfmtBIyiu+peSgP++kHPCtgKzA27lNse3LACg4AbFMlcN9YnCadcHVgSWgLF4NOOoObAIMOGLLgmTVqXolrpOzqdJby4NMkL5vbFJI2cgS2jkQ5SmuDdvcX3VLLD8MB4IVxFJdBV8QYGt1Cx5i4G7/jL7aSzNB9FLBZFNovrd+tuB9W57jwtpXGeVPaHBXM/9S1nGfR/Hhudq2qHaXso/b7A9E42EAN/ijKwBFy6Rvy+2fbfzBFAlWM1xl0s8dlxi3IFrktEvr1XuYQa0w5s9PA54sJIxvrGQXf4fz3uS6hyT/88g+0v1SvpCYZPi4zIb19W0gQlv7uIECxgeboy7FpLCMtSGiPnvNDds8PcYdtEw/yzUB5EMbbDPT2z9M0Xz++N/hqs17RERzRwFVuDdjyT5fCnMKXbH54gLnq3p0POwoSodxuwzL8ypTA=
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)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eittNmJXRE1oOFJJMEMrSmxrY1RKbSsxaGpCbXBlL2ZwN2xYVnBuUlp0cVFT?=
 =?utf-8?B?KzQ2aEw2QlB5bDFsT2xMdnRJMk5oN24zSXc1d2kvZmVjbzlUS2d4N0g0aE9I?=
 =?utf-8?B?R1FtcWxzaFFhVVBPNFFpUXdvTk1vVHlNaEZuZ1FST0dNb1dkOWVTRGVxMDNl?=
 =?utf-8?B?aHI5WDVmTXAvU213VGlhVnIyNDAvRU9NcHZpN0pzRGp4aXFpSkJva3F3WE1O?=
 =?utf-8?B?cWNGcE5vWTR5TmQ1UEwxQmhMcFNFZkFpaEhTL2JyYmRYUzFId01WTG5sL3ZT?=
 =?utf-8?B?bDA5bStwZE9na01CaHU3MDVVazVSWDl0MVBzODFWQ0V6cHUwZ3FBYUgwanlk?=
 =?utf-8?B?VjUwTkJFMFVMeGVGdFRoV2tWblBUMFpkNlB4VkNMMDBWVkQzTVRsbFZEcGRu?=
 =?utf-8?B?aTVZTk9qVGVWWW1SSHlHK1dSMiswNTNJcHh2Z1JWMWtwajFSQW1IRStnQlhJ?=
 =?utf-8?B?MGJlL0gwMGJrbzA4TFJ1K0NJS29xS3J5a0c2dXBrRmtNQitLc28rdXR2R1Ft?=
 =?utf-8?B?S0F1aXJJZzBvSnRsUFd5TTJRWm1Va2lGUHJmckVBTlduUDBkazB1djIzSzli?=
 =?utf-8?B?L21aeEgrUEgzMGhCVG5JbnlWY1pLUXlKNlg4d3YwZjBQa2FiQmQxNytqSEZm?=
 =?utf-8?B?ZWoyenNuRUNISkE3bWZFODRNQ0ZZWEdoSHdySUlBUjBaaDJUNkNVSWtEb3BD?=
 =?utf-8?B?c0VWRjBEaHZLWndZRzAxd1YrN1U1Wm9HQzc5eFNhTDYzSDV1WWtUeTRWUnBD?=
 =?utf-8?B?MWZtcnlSK1Z1T3RjWjY1enVmZktVb25GUFlwZXlQay9UalVLcy9BaTliek9y?=
 =?utf-8?B?ZEJkUE1NS1VDZmtwcnN6M0k3T3RMc1ZXbmQwcWl5WDJReHR4UU50bHpBeEl5?=
 =?utf-8?B?KzczbTBoLzg0Zk43bkpuNzB4VTF2RXU2UU11ZmJzQXlGcnpVQWEvOFBIT09u?=
 =?utf-8?B?WE9DL2FBS0U0VDdienc3dlVwMXlibnIzWmtnUFl5T013TVdTaDdGVGFsMnYr?=
 =?utf-8?B?UzdEeU1GbGgwWWE0bHpVVVQrRnJHYXlscUlQaE5UYlNCaWJlSDJPVytRcDRr?=
 =?utf-8?B?Wmx0T1NiY25tZUI3Yk9kU0d5TktHbm1xQUtyNzI2aGxIcEdEYnZuSUJTdmFa?=
 =?utf-8?B?amdrV3hXOFkxbUFHYXRXcHVKeEZvajVMa2I3NjN3WUsxb3ZONFVGZDVPZ3ow?=
 =?utf-8?B?WVZWRWFXUFU2ZXUrendnYXJPZmVLcy8yMFhLWXAzVS9CdEdyMmVZYjZFQ2NP?=
 =?utf-8?B?ZFptdlNsNU04ZXA0b3U0SXR3V3l2emU4dEwwdFB4UnNIK3F2TG1LVGNhVEhq?=
 =?utf-8?B?QkYrcjQwZWFKM1B2Q2ZGYldYRW9lbC9xTHlSR0VpUFFWdUtlaVF5Q0dBRGQ2?=
 =?utf-8?B?RVg0UEFwNXYvb2twaERMRzVqdXhzTXVnQ2wwN3puRk5ETWdFSXFhdDc1dk90?=
 =?utf-8?B?bzByb0x4YnRkdUdsK0tsQkM4U0JhL2YxbG1UaFdLb1pvNG1KWmNIOXVmR1Y5?=
 =?utf-8?B?OHp4RVZqYlFNWHByNUJLK0N3RWRSdEdUMTVjM2tWRGpBVVNZWHVlNmpGMWYr?=
 =?utf-8?B?T1k2TFBQc1BXNnVZYlpid2dFMkR5RklDcmhXM2pwenlGTkRsTkdrVVdGNEhs?=
 =?utf-8?B?Vmh3YjZxemhUOHYwOFVVWEFXdHlWdUU5Z1FPOUI1dkZUYjFPTUpnbXVxbHND?=
 =?utf-8?B?Nk94ZmM5VzBKVXBQN3JqcXVlWnVTTzQrNzVPVWNUaGt1dzcyWnAyci9mYmhH?=
 =?utf-8?B?NTFxN0M3MnA0QWYxdWYxOXNLTis1UTVFVTVaUUxPbUNmUUhjWWNqT1JsZXYy?=
 =?utf-8?B?eHY2NSt3YzNHNEpVc3grMWxsaXY1Qkt3QllUNGxMeHQ2WklqQVIrbGIzdEtJ?=
 =?utf-8?B?a09FN1hDV1NldlZlVGpudmdYY29SQnIzRnV1OXhPbXBoYm5OM3RHMVpFS1Vl?=
 =?utf-8?B?ejc2cW9pUGxTek1TRFNsbjhtZ1djODJVZ2FFQlU3MFlvdUwwTU9ETFZpREFH?=
 =?utf-8?B?ckNoOEtBNVl1emRuYVRIUjNTL2lUTE9IYUg4NG1IK3puNmxuOGlaSzk5ZkZR?=
 =?utf-8?B?Z0JSRGpjTytEbm1CUTBHa1lLSDlmalNqRGN3aHpnT0c0bkc1aTl5VTdlSkh1?=
 =?utf-8?B?RG5IN3B2UDBLTy9ybTRMSnpiQXRvSldnRlNBdVR6L3hsWnQvaUpUQ05PcHBF?=
 =?utf-8?B?RVMrUm5UTWhEdkpqbk9Xa0Z0Z3FnUDlIMDRCb1N4OHFXaGk4eFc5SEFScjRa?=
 =?utf-8?B?Njc5SzJTWFdpVnFndkozRkpsL1VsV2JjdndDbXhNWWRtdTlpeTdBR0tVWVFG?=
 =?utf-8?B?MU05bzJrYmRpTGNiQkZtZDhpZGo0MnNHREQ0VkJ1RDZielZUdU9yZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1ba23e16-9598-4e43-8980-08de88e4865a
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2026 14:00:22.2979
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: IMnHlDTqCRBBjPgxn4jNBxj8hWNBSgqx3HOjNCUsNT0rlrAqtEw7HVYfzHt5FG9T/pXvd2LviAT9HiRBAwgaPw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5638

On Mon, Mar 23, 2026 at 12:48:50PM +0100, Jan Beulich wrote:
> MCE init for APs was broken when CPU feature re-checking was added. At the
> same time make sure we don't bypass setup_doitm() (and whatever else may
> be added to the bottom of identify_cpu()).
> 
> Fixes: bb502a8ca592 ("x86: check feature flags after resume")
> Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> Tested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

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

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 14:08:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 14:08:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259362.1552666 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4fx2-0007vH-Bx; Mon, 23 Mar 2026 14:08:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259362.1552666; Mon, 23 Mar 2026 14:08:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4fx2-0007v9-85; Mon, 23 Mar 2026 14:08:16 +0000
Received: by outflank-mailman (input) for mailman id 1259362;
 Mon, 23 Mar 2026 14:08: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=bM9v=BX=bounce.vates.tech=bounce-md_30504962.69c1494a.v1-957883b1f64e4d54a824bee1de0fa786@srs-se1.protection.inumbo.net>)
 id 1w4fx1-0007v3-6t
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 14:08:15 +0000
Received: from mail180-47.suw31.mandrillapp.com
 (mail180-47.suw31.mandrillapp.com [198.2.180.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b9d095ce-26c1-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Mar 2026 15:08:12 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-47.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4ffZky4tz3zPm0Pl3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 14:08:10 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 957883b1f64e4d54a824bee1de0fa786; Mon, 23 Mar 2026 14:08: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: b9d095ce-26c1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774274890; x=1774544890;
	bh=8SpwDAYyVgJhLuuTGS6lyDQdY2q+Rps9z9YUurxNcEM=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=T0YZUtXL8KsTvHOUFJfPwnUWmI7IQBIzU+4FeOGKMtF/P6SUFeJrR28UV05zYmOAg
	 6aCxGDkAh/WtwIQoImVK53XS7e2ugJDepTUNJdrYIuUj93D1MgY+/Eg81MMn9bYIcg
	 q3H4nU6/DQQx0cVLl2PGvcMWr0jGt/HgACiuQE8iviv/tPByEfpt2Zi7fNCWPOy5PT
	 DaIhFBxQc6hWdm2BABJA1PHpRcRnBCLXWgd9/wxmoU5X/kGPcFo7uy1eJxsLHTPje7
	 QS8UssMD8jSK5fj1x/OPOuX4Pz5Z9B7+hAujTydPltU9uGjJlrCgDzJX7/QeLwfG4Q
	 BG2IyGgOEIwgw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774274890; x=1774535390; i=anthony.perard@vates.tech;
	bh=8SpwDAYyVgJhLuuTGS6lyDQdY2q+Rps9z9YUurxNcEM=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=a6MrSDiJ2hvfCBQULP9FMc31gE2BYk5VX1qOjFOdPVH5xMzH+OvgFP5LFzIN0KOL0
	 L9rJVPe8Yx8nFcbD/VqTy9YmFqbAz+Vsw2srDhT7YzEpyGCx8bTcgf0JIw/ZFPhi6D
	 ZU/hFAqHTTvGlUnDVuINT2h393gunzWwg4cBt+0GEQ5gSckIggx5tM1RxBDY0+2G0h
	 2B5LxiIXPgY69XLa1VzE5XW5TaQTCgWokd0wft3kxulVVat5FYlOuAD2u+mSSXKaZ8
	 vvoivkn5gsITfJQpya32/CaCRqy3Jt5mmQ85I7p54ocWnDapYHPg8eq9/1t4qDrOjx
	 QfyAqAPF/81BA==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v2=2011/12]=20tools/xl:=20add=20xl=20commands=20for=20xenstore=20quota=20operations?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774274889967
To: "Juergen Gross" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org
Message-Id: <acFJSR0obXau258l@l14>
References: <20260320150120.874878-1-jgross@suse.com> <20260320150120.874878-12-jgross@suse.com>
In-Reply-To: <20260320150120.874878-12-jgross@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.957883b1f64e4d54a824bee1de0fa786?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260323:md
Date: Mon, 23 Mar 2026 14:08:10 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Fri, Mar 20, 2026 at 04:01:19PM +0100, Juergen Gross wrote:
> Add "xl xenstore-quota-get" and "xl xenstore-quota-set" commands for
> retrieving and setting global and per-domain Xenstore quota.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
> V2:
> - s/quota data/quotas/ in cmdtable (Anthony Perard)
> - test for quota value to fit into type (Anthony Perard)
> - use libxl_xs_quota_list_init() (Anthony Perard)
> - use xcalloc() (Anthony Perard)

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 14:15:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 14:15:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259370.1552675 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4g3Y-0001I6-VO; Mon, 23 Mar 2026 14:15:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259370.1552675; Mon, 23 Mar 2026 14: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 1w4g3Y-0001Hz-Rn; Mon, 23 Mar 2026 14:15:00 +0000
Received: by outflank-mailman (input) for mailman id 1259370;
 Mon, 23 Mar 2026 14:15:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1w4g3X-0001Hs-R5
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 14:14:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4g3X-009jHw-6m
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 15:14:59 +0100
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c14ae0-e002-0a2a0a5209dd-0a2a4509c820-6
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 15:14:59 +0100
Received: from [52.101.57.33]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c14ae1-e484-0a2a45090019-34653921d878-4
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 15:14:58 +0100
Received: from DS0PR03MB8272.namprd03.prod.outlook.com (2603:10b6:8:28f::23)
 by LVXPR03MB989182.namprd03.prod.outlook.com (2603:10b6:408:37f::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18; Mon, 23 Mar
 2026 14:14:54 +0000
Received: from DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654]) by DS0PR03MB8272.namprd03.prod.outlook.com
 ([fe80::2e63:9a7a:3701:7654%5]) with mapi id 15.20.9723.030; Mon, 23 Mar 2026
 14:14:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Vevgn4wNOjbavpeq9PGdZ9TPrqFLZrk5Jujv4j8iZyinTsLcTX9lvoVRj8x+w78I7nUMZUgeS+GxBrDGw4RclYEhXa2CP15dxLBJ9W0tvbl+wkB2Q5hVXMztcxPuYPdMDnMxkmCjUXdQ9NvbjxV2mZDLb4m6FehmXCwpZPUbdLSDudLrxl6to6RqqInr6xJi4dAKS9S5tx2ZnyUpJKlPuoGgGUxTmQc1+GkLJgqpy6H5EIoTT3GJPo8AN4CDEY2e1+DUr7428d528Jjn3uL4ypE9NpscLBCh3LUPRatQ+CwKNJDJB5jGZqL2D2rm0H50jIj411arQWSOTdOsLtO+nw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=V6Im1uHDgX/jyfDew07TwZhG+NvfF2Tn+QC95G5pJIA=;
 b=mGiM9I6Z0JfEXWHm+PgfVZyD6ZVrztfSDw1SiknxOlf5jeJ2VMErfH0pEepvJgZ0GDRQYgPHr4IF60Uh0om17kx0PYIo1TVgjSJJ4yJ4JqfLTExwERID+tcnvOeAha33IL2xocF9uqbs7TulHB4R3VJMnIPVnAb2rfrddBbAW0gGsRWa3/jTTmYlw/iLokVmXW+SIvKDNiDD74lMZ8nQcf2qkRGmqZRhcVIXmBncg/OtPrwSGQOdlvgMeNQDDxZEdPdjG2B792fOjsBz0BALXAkOAQEPWUx8Xe3d0Nvs+W+aWB0fY06QQIklftgtlgrGK475ginLnkqCovDEnurgCQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=V6Im1uHDgX/jyfDew07TwZhG+NvfF2Tn+QC95G5pJIA=;
 b=W4cemsyccc4uyd0+xLau6VxnbkGrQrXWE/GY795/2tLQbFwwkybDpThPHgO6tBCpdUSGExgeirqln6YBIeUTszittVLggOurH2da0OonLYwkfGeZkBwbc8lFPBm/l1Xj56pMueKK6k7rBBhbNiqntPoCDsMqkubuPSzNW56HBM4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <5945b2da-7e8d-4dca-b184-c030571cba4d@citrix.com>
Date: Mon, 23 Mar 2026 14:14:31 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 8/8] x86: Cleanup cr0.TS flag handling
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>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
 <20260319132924.1469809-9-ross.lagerwall@citrix.com>
 <a0674df5-41d6-4f25-a236-52390a5c506e@suse.com>
Content-Language: en-US
From: Ross Lagerwall <ross.lagerwall@citrix.com>
In-Reply-To: <a0674df5-41d6-4f25-a236-52390a5c506e@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO6P123CA0035.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:2fe::8) To DS0PR03MB8272.namprd03.prod.outlook.com
 (2603:10b6:8:28f::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS0PR03MB8272:EE_|LVXPR03MB989182:EE_
X-MS-Office365-Filtering-Correlation-Id: 36b89b39-32f9-4dc7-9fd7-08de88e6899d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	n7DcsrrKrmu3dFIL7Zptq7fH+CHn44SmBH4cHKATV+36/Ltjy55tLkzTF46YdBExjEd10/ZyHhjvf6jeGWU00yVhdSnNrYhkyMbkuKEGAtmnPYqgodOok+SrSKjVSeSxxJi7f5PfF7eQpI0/7WLYKDuGuiPwqv9QsYaQyOnFX6wLbg1bobE2w4rfhuZtX/XHCq3rl2O3ZnRndv1pm18IglvWZFWD9JAKdgSEywDWMKaV6HkV+/LWeagMDvbaQCKJhSh3wKK6hIwNhPW1rk7fS+Q0XiNMuCWVRTdaQ2JzAhtS5XUO2HpWSBR6rqNCCBZIK36lT8z9Qm4J361GurWww5JyfPFBteK6+pzasQlPz1Eve3y5+R1blHEVRN79WoMes2iJSBXvVyYpa1Y7GWtvkEmxMUjqf3/tWINkqSO0LMJDUBBe1ILFa3G8EQRePlY0xt9HHNlOo3We473zOx7DHl5rKDcSR/NviygXjnWDJxeLNdNpJ5anDipWoUQTPGA9Ig3sdlebDjApiAJWc6gfdKnwg6nsW9MkQyI3ChCPpmMCY2ua5oBjv6KiU9EnK/1Gtiqe2IdJftPMTcdHQ3wtfDynsntyESLdOOtFoQJRkgFLHgMrUYo3hwredV0z2Ybx3zjeQ7ywA1eie8JuDlpxE69AlDraRJ5ODPTje0s4RYvUC1K6ELNgxO7m+9iKVBPcFXRmmcSII3NpAGH6ON6biWFnrDdKrcIK2o2rGnFl7N8=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR03MB8272.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZEJSYmZxVFptK1dseGk0V3VwQllwdlBTakg2RzVsZVRDSE5NMkpVdVJmancw?=
 =?utf-8?B?L21wV1RrV010Znp4eC9jQWZmL3g5Rm9NNGx4ZHJja0tlQWEyUGJqakFDR2Yx?=
 =?utf-8?B?ajcwQm12SWpMMFRSenVubTQ1ZStpenVpNXQzRlZhT1R3SUFpZEdHVlcyNWM0?=
 =?utf-8?B?SVpuWEpuRis0eDcrUnV4eG5WYUZlUFlPaGxaN3huM3d1Sng1R09sVjkwUVd1?=
 =?utf-8?B?c3JCM0pzTllQR0xGRU92bytoSDFEaERrN3FjVGViSjBxRDUvVVRkUURJL25x?=
 =?utf-8?B?bHArTUJrUFVpSU0xWXR6VDdQMC8wbFZJSWdrQXFNMWFmVFNITFp4Z09ZbWUx?=
 =?utf-8?B?RXp4aDRZb0dqcTI2L1lrUFhjQVozdExFa2FhMmNzOS9kVGIxMHV6RXJ0RnZz?=
 =?utf-8?B?bHZ6NmZ3YU9LaE50cGpKenZBaGczSWp5Zi91RGM1QU5xdUtWNTJBN2QwSkoy?=
 =?utf-8?B?QzVSRDkvUVhTdUQ1NFRIbTY3bTJ0bm5tV0hZSGorYVdYWmwrMUJmM3Ftbkdn?=
 =?utf-8?B?VFFrYU5naFdaR2RoYXMxTU1GTS9rVmRMSlk1RWU2RnZRRG5neWdLQ3l6b3cw?=
 =?utf-8?B?cHBlVUc4MTBURmJzYUJnYU5jVmJUSXMyczMvOXVNaUx0RWVTdWltZTJERnhM?=
 =?utf-8?B?dmVUQTE1VFI1aUVNWGR0Q1dCWHJ6OTQwRXdGSlJhSTlGVlY0a0FEZVJKT3lv?=
 =?utf-8?B?Ymw5NmZUdk1OVy95NjdlTFdrQkRRcTlHdS9sNlBBeUtQblJ3aFgrZEk2bG84?=
 =?utf-8?B?VUYyRllXWmoyVHBHdVJaMGFKV1h2bzluSmtoNk8wZWlMdFZqK1Q5T1ZhTy9X?=
 =?utf-8?B?c0tDUWZ6TjU4clNCT05mUElKcVVxMUxHbDZDbVdYQTlJcmxoSlBXK2hHSFkx?=
 =?utf-8?B?OHM2R29UT2orUk1BWnJ0d3ArM1kzak5PMkp6c3Q0UU1odXk0NElEbm13c3Nw?=
 =?utf-8?B?bmVHWTBpa2hnTUowbUt1RG10c1FjL3hDR0VVUXh5NDhaMmtZeWlrRmRXYlB3?=
 =?utf-8?B?OEdLbEJybXh6ZHdwNXVWUUhoaGd5Q0cwdnc5UjJIaVlvSmNQRnR1bzlGM3lq?=
 =?utf-8?B?VGJFcFY3djdwMnNtVEwwMlFmbDR0ci83S3RYUkdmVHFGY0Zaak9EOStYRCtD?=
 =?utf-8?B?SmIzRzIxcWxUQnNNWW5YRldJQkNKZnAzTTJ1REZDMDg3K2l0RWlyMVNybUhB?=
 =?utf-8?B?V05iQk9TTmowOUVnSDRLMDlVWXQ2cjFrVzZ3cU9KRWZxRHZnbDAyUXlxRE1s?=
 =?utf-8?B?L2ZlZC9DYVRsWGVwVTB2OUZSZ1VSY3ZvNTNycFUvYnRtc01JN3pWNGxVWGYr?=
 =?utf-8?B?SHdaQ1AyWEZaVzlFMjdXd25pbWRZV0UvdHMzMVRGSGVNS1NjWHJCT0RrNVQw?=
 =?utf-8?B?K1BkWEFiNVhJZ2lFREpsODU5alYwMHY2R2w5aGVwWENVQWRmSHNoMFNIaTg2?=
 =?utf-8?B?S09mSklPVkdrOHRHYjN2dHBFWDZ5ZzliOWtMNHFRVC95OFhndHM0cmplT20z?=
 =?utf-8?B?ZTVRTmVIT3VYb2JtWjFCWkNhYXBNaHlPY005V3V5NDNMYVdxMHpLaXpXd1d2?=
 =?utf-8?B?N2poWXRjL2JpSFNQN00weDNobjZ0ek41bUgvRFhQdHhZRkpzREY2aVVGNFNr?=
 =?utf-8?B?d2VNNTMrSnR6TnNDZGg4L2Z5c2loMHEzUzdjejBhWjVMc2YvWndhTTQ3YmRO?=
 =?utf-8?B?RWF4NkxpbTFBdnl4dzBITWVSN1UvaDhtU0tkV2lrVm5weWpyZGhsYVJ1MmRG?=
 =?utf-8?B?VVpMcHhXVURVZEFoQnVxWHg3VDlPa2RSZlFWNmt4NVRCcFdOUGxNK2o5anVZ?=
 =?utf-8?B?N3hhT1pZZTBCbXpDbnFpL28xa2N5aHVWZ1hBRC92dFdwK3NvNEU5aGY2WjZh?=
 =?utf-8?B?UndYemFVN1czUGxtYjMzU0J0R2lpMGhzM0s5TUtPa3dXTXNPbDZxbGtVSzFT?=
 =?utf-8?B?RWJhTmlCOFE0OHZPMHdjTXN2RndRdFpnOEV3RDRlOU9kM0dTMDlqTktuRVRX?=
 =?utf-8?B?TVp6Vnc0Ni8reUw1YnBhMnNoY3N1RTJpYmVFY3RSTTI3Z0hUWks0Qi81OU1Q?=
 =?utf-8?B?QjZ2VGFCR2F2MFVYb0lTQVQ3d2NIYm9aY1RMQm54bkQ1ZlpQdnZYVFczMGdK?=
 =?utf-8?B?N28zVDFLTkVmTEpYZnpGaGVrcFB4TVUvMlRhaGMrRzRjYmhQRzErZ0VMUHJx?=
 =?utf-8?B?SVU1bFNSOWlLUVhkV21jZlNOdjdhUnU2Lzk0cmEyLzVYUSs4L05iOTZ2ckRL?=
 =?utf-8?B?ektsT2tOSkt2dHBtZ0JnUzFPSFZZd1BCUE9hTnRNSFVLNDRQWTMvbEwvMHFx?=
 =?utf-8?B?NEMza2VjRi9QTmwvTUpwYnZUWGkyY3VtOE9VaytuaXJmY01BaWErZnhFM2xZ?=
 =?utf-8?Q?+F3HuLdAFJdvvAZo=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 36b89b39-32f9-4dc7-9fd7-08de88e6899d
X-MS-Exchange-CrossTenant-AuthSource: DS0PR03MB8272.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2026 14:14:46.8459
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: FrkUfVBa5nSBvdFCxOHhuC/d/+HDoiXbDFVpNZDodtQdYfp2Zzn7RPnzUwg72V/eUBD/u88nw6oVQHxmQp85sI5xKNbUInNOEajua3Isess=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LVXPR03MB989182
X-purgate-ID: tlsNG-bad1c0/1774275299-61EB2A73-FE8232B3/0/0
X-purgate-type: clean
X-purgate-size: 1492

On 3/23/26 12:30 PM, Jan Beulich wrote:
> On 19.03.2026 14:29, Ross Lagerwall wrote:
>> --- a/xen/arch/x86/cpu/common.c
>> +++ b/xen/arch/x86/cpu/common.c
>> @@ -883,9 +883,6 @@ void cpu_init(void)
>>   	/* Install correct page table. */
>>   	write_ptbase(current);
>>   
>> -	/* Ensure FPU gets initialised for each domain. */
>> -	stts();
> 
> I'm a little concerned by the removal of this and ...
> 
>> @@ -193,31 +190,18 @@ void vcpu_restore_fpu(struct vcpu *v)
>>    * On each context switch, save the necessary FPU info of VCPU being switch
>>    * out. It dispatches saving operation based on CPU's capability.
>>    */
>> -static bool _vcpu_save_fpu(struct vcpu *v)
>> +void vcpu_save_fpu(struct vcpu *v)
>>   {
>>       ASSERT(!is_idle_vcpu(v));
>>   
>>       /* This can happen, if a paravirtualised guest OS has set its CR0.TS. */
>> -    clts();
>> +    if ( is_pv_vcpu(v) )
>> +        clts();
>>   
>>       if ( cpu_has_xsave )
>>           fpu_xsave(v);
>>       else
>>           fpu_fxsave(v);
>> -
>> -    return true;
>> -}
>> -
>> -void vcpu_save_fpu(struct vcpu *v)
>> -{
>> -    _vcpu_save_fpu(v);
>> -    stts();
> 
> ... this. At present it guards us against e.g. an idle CPU or context
> switch code mistakenly using in particular XMM registers (but of course
> also other extended state).
> 

Given this concern and Andrew's comment, I could drop this patch for now.
It can be revisited in future if needed.

Ross


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 14:48:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 14:48:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259383.1552684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4gZC-0005sO-Ds; Mon, 23 Mar 2026 14:47:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259383.1552684; Mon, 23 Mar 2026 14:47:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4gZC-0005sH-Av; Mon, 23 Mar 2026 14:47:42 +0000
Received: by outflank-mailman (input) for mailman id 1259383;
 Mon, 23 Mar 2026 14:47: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=+HLc=BX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w4gZA-0005sB-Qr
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 14:47:40 +0000
Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com
 [209.85.221.42]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3c6dabeb-26c7-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Mar 2026 15:47:38 +0100 (CET)
Received: by mail-wr1-f42.google.com with SMTP id
 ffacd0b85a97d-439fe4985efso2607816f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 07:47:38 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b64714e2esm32324764f8f.32.2026.03.23.07.47.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Mar 2026 07:47:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3c6dabeb-26c7-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774277257; x=1774882057; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7ao8LPCirbjkjXiKLWk4t0u7F/wMitX+PhEF4XtFo2E=;
        b=MOvS4rfacm70bl1kCsf4+h5nlxrQg5AxzHxqw+vIfk+Ob7TUhVZZWE5Bf7pPY1B4nb
         SfVC65g0Qq2+xZXmawUCijW05He23cjQnPvXvX4fUXrlzZtJK0eevfbUr3q4PtdVTg41
         O32uwqFHwkNAxqUwJX8hBPMv5d8tHsF61W38waimaZ2uxvpK4fUdGhMDb7LFUipcdCBj
         /BjpBaZRrNHnDMxhJapiIUTHmJkRmZT8bu8QGowLUgueYmWHsbnw3epARTf0/pa1Tyxu
         UrLQFg5rRjaeSXK5J1H75sxA+MS8QPjHQTd5KZZx+pQBv9LupG9OAK6aEbjm0kaxURsa
         pzCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774277257; x=1774882057;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7ao8LPCirbjkjXiKLWk4t0u7F/wMitX+PhEF4XtFo2E=;
        b=aRxEmyVPzwunT9rO7jlrWAJXURqqJuLcsS4giOZ8BLpjVRWS0Ul/hbEMmpw6Nmz0Bt
         XvuEuqPO46oHyLpduh3BzbjzUKBMmVyY8HLMo+iZAc3EgvGgR0FBbfgucxM7ktettj65
         9o6dQZ2mPGyaQ8Q2r4Wxj8YusYc6dNh2r2yj1SRsNRXLdNYw+oqkIC7zsCb62N1iWYjP
         oVkNhLrrXxVcxOMxpr+f2ydaj3uN+DioEIvTz8QpFohRpeSFJ9aYV+l4N8XM1vH/xV/T
         itBAgBP2/2xSw4okq5sU5W0vk3fqdH4xNJ+S1zwTm950YXzIejyZbC0eE5ZxTIDpZIsT
         ftgg==
X-Forwarded-Encrypted: i=1; AJvYcCXbGKB/Uf5O2Ey0rwunNUwKZUBtTuStH0eF77AVA57STlv/y6iK+erBgh6FrpzcguXhwiPhqAYpyG8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw9ycYfb8YZEh5b6S+w1CFEq1PT79eQWWFY87F/CATXkiLM4y6t
	LtUJ63SCvCZ06LYAlNZ/nqutpRJ0XjQbai4hUe/dz5icbIaMaNr26pTKQaGMVv4bI1QYMYo6Nub
	+i9M=
X-Gm-Gg: ATEYQzxjLW0pYEUwgXx4BNgyj00qKzSSQHKy66SVOvyUrxsyuO4A3GIWxNvi+T+Kl3D
	8YaLmsTzoXPc3G2beBxlIzjif6q08tYYMvOzR4jHgnJ/dSUOUaw/6CDQYVuEw9txFhfOPJ2Acb5
	+guoBBpemEZh3uXtzWYVzThcEmjabelv9Os76OmPYmB+UJHZDLrfAWrXtqDjtsvN3y2CS6QpSbE
	NGS/m5SwzlgPiULoMlqfMuemz62XR1qzcPsLGDxWU/AMMxV6Xi3Zqz9j3jaRFgmUXfCfNDmkj0m
	aG2iBUxJso6y6uW6zSE8BD8orx48S9oNyhsvJt7PBglNqZTMNkRzxAZOw62ifaQOBSH666vo286
	wxpsSnHnUZd317lA0nKKWNXA8GOKFWIxAv16A+5IDyVPRLj3TqBaiy4So84dbrdfW0c58/UFjfP
	oU9MZYkfrf83zLiLqQ6QX+yzMGi12Gp1aKopMG22sYndAc7oNWSBnKoGpPZRUF9ZfWMefYDVx6P
	DrRLmcc3ZPRtg4ZmzzJGC7/iw==
X-Received: by 2002:a5d:64c6:0:b0:439:c78b:cbef with SMTP id ffacd0b85a97d-43b64263ea1mr18794576f8f.25.1774277257311;
        Mon, 23 Mar 2026 07:47:37 -0700 (PDT)
Message-ID: <0f2f33d7-aac3-4bc8-8de0-d67b7d9ca0fe@suse.com>
Date: Mon, 23 Mar 2026 15:47:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 8/8] x86: Cleanup cr0.TS flag handling
To: Ross Lagerwall <ross.lagerwall@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
 <20260319132924.1469809-9-ross.lagerwall@citrix.com>
 <a0674df5-41d6-4f25-a236-52390a5c506e@suse.com>
 <5945b2da-7e8d-4dca-b184-c030571cba4d@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5945b2da-7e8d-4dca-b184-c030571cba4d@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.03.2026 15:14, Ross Lagerwall wrote:
> On 3/23/26 12:30 PM, Jan Beulich wrote:
>> On 19.03.2026 14:29, Ross Lagerwall wrote:
>>> --- a/xen/arch/x86/cpu/common.c
>>> +++ b/xen/arch/x86/cpu/common.c
>>> @@ -883,9 +883,6 @@ void cpu_init(void)
>>>   	/* Install correct page table. */
>>>   	write_ptbase(current);
>>>   
>>> -	/* Ensure FPU gets initialised for each domain. */
>>> -	stts();
>>
>> I'm a little concerned by the removal of this and ...
>>
>>> @@ -193,31 +190,18 @@ void vcpu_restore_fpu(struct vcpu *v)
>>>    * On each context switch, save the necessary FPU info of VCPU being switch
>>>    * out. It dispatches saving operation based on CPU's capability.
>>>    */
>>> -static bool _vcpu_save_fpu(struct vcpu *v)
>>> +void vcpu_save_fpu(struct vcpu *v)
>>>   {
>>>       ASSERT(!is_idle_vcpu(v));
>>>   
>>>       /* This can happen, if a paravirtualised guest OS has set its CR0.TS. */
>>> -    clts();
>>> +    if ( is_pv_vcpu(v) )
>>> +        clts();
>>>   
>>>       if ( cpu_has_xsave )
>>>           fpu_xsave(v);
>>>       else
>>>           fpu_fxsave(v);
>>> -
>>> -    return true;
>>> -}
>>> -
>>> -void vcpu_save_fpu(struct vcpu *v)
>>> -{
>>> -    _vcpu_save_fpu(v);
>>> -    stts();
>>
>> ... this. At present it guards us against e.g. an idle CPU or context
>> switch code mistakenly using in particular XMM registers (but of course
>> also other extended state).
> 
> Given this concern and Andrew's comment, I could drop this patch for now.
> It can be revisited in future if needed.

We discussed this some on the x86 maintainers call earlier today. Andrew
(who wants to put together a more extensive reply) indicates that getting
rid of the stts() instances is a relevant goal of this work. If this can
be clearly stated for this patch, and if the implications are clear, then
I think this could still be okay to go in.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 15:29:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 15:29:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259411.1552716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4hDI-0003H8-NY; Mon, 23 Mar 2026 15:29:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259411.1552716; Mon, 23 Mar 2026 15:29:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4hDI-0003H1-Kl; Mon, 23 Mar 2026 15:29:08 +0000
Received: by outflank-mailman (input) for mailman id 1259411;
 Mon, 23 Mar 2026 15:29: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=8kwl=BX=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1w4hDH-0003Gv-UA
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 15:29:07 +0000
Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com
 [209.85.221.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0446a469-26cd-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Mar 2026 16:29:00 +0100 (CET)
Received: by mail-wr1-f50.google.com with SMTP id
 ffacd0b85a97d-43b467dcf0bso3164019f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 08:29:00 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b64703343sm31418114f8f.19.2026.03.23.08.28.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 23 Mar 2026 08:28:58 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0446a469-26cd-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1774279740; x=1774884540; 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=x1BC1fDycJ7EDwbafdpHNSpai0vT5U7s/IgYviOpDy4=;
        b=kB8BSlYS/Fq1FSyfvuRcj4rnhG4z3ngy4YTdgbGN5V6ziErExYjANQBcq9Dm2sEh94
         mi996FeTTuQdfvri7i1heoUL5Gfub6To7PJZWmfn9Do3oYl9VXjDJz9PJSaex+IMMPlu
         1L2wsRiGCb+5OfEXiIAVLMQYOGr1nlwf3f+zI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774279740; x=1774884540;
        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=x1BC1fDycJ7EDwbafdpHNSpai0vT5U7s/IgYviOpDy4=;
        b=QCSZMvmo2OLku3DdNK0gF1G7bG440/pWB9D56DItw6qBvznR4U9+UrjkhEFJe6zI4G
         T6pW0hXu1d6H7aIER7REc6uLHFayHy3G7PjH0j5kC52WlxlOMO18E0+YNhm26D+SfrIq
         7BAitm40uJJyaoCdnIDWNHqZujudL5X77DIXGqIaYFgD6IefBCpnY68F4aqew40NiS4u
         1oICx72o75Zi6dSdHW8gUWoFVj+G/owtAyXf4osVWdqxaGW5OgLVsUK6smf8PfTDBKRo
         GJv/ibd1Vfam7SQLvRpGRFDmYz1E2YXBjO5gb3YOMbBGRCmBS6DeAWy+JzsNiiXkABBh
         Y1Kw==
X-Gm-Message-State: AOJu0YwiI478EdQ+LHoVkTyqlQbuKjC7IYmYKCp1dVoud1SggZOmMPYe
	hr4wODQ8WstnG4VeIoZRZrKTnu+ib7mmpPxafYlCrZm+b2FcxozILAqrLaDuiB4gv7qR2RDEvof
	yRt1C
X-Gm-Gg: ATEYQzxdOd38sYwc/C39gmlUvNRYGWvHQheWrGOhtaIMknfovSlHJdlXLCK3DhJKNbk
	o9l7UPm09cDyVfPesDnEp+diwMQvDOeYxCRkHwVZU0DGq5sswFeR/vNKgJcaMc1TgbljYDrvOgl
	14/BFmaDRJA55iV9yw0QYedWm3ix4fW4iVf5E947bufJnD1mU9c9xRyxoexVgz7nI0gr+4OuDig
	4Lw2xutobOb3splbqDIPq4WhzmXayOZ4b6ny1V0kl7dIYt7AvaxRLfbVBeZNhaH4sebukiw1VjH
	7WA2LMRMjswE/t3rTfvs0mJ0St6uryL+01Ir6maDKzC3JE9e6eXgyUEfa7wT1WCTkcEHfDCE0E1
	ch5Uyh3rF7IwypjvaFDnbjEfhpnAL1WuqgxaFypG3zU4J6AKiOXyabvHpSbMkalJeFIKeQpMzET
	zIWpPuzY9wiwzDTJf6FeNvgsvy2y4bqR+ON000V1GlhvJLbeWi2da27Y6KrMdKODTd2Sn36jGV7
	Bgo
X-Received: by 2002:a05:6000:2a09:b0:43b:425b:ec3f with SMTP id ffacd0b85a97d-43b80526465mr20426f8f.4.1774279738916;
        Mon, 23 Mar 2026 08:28:58 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] xen/public: Delete duplicate VCGF constants
Date: Mon, 23 Mar 2026 15:28:56 +0000
Message-Id: <20260323152856.966730-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

Having two spellings of the constants makes following the code unnecessarily
difficult.  Reduce it to one spelling.

This is an API change in the public headers, but one for the better.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/domain.c                    | 2 +-
 xen/include/public/arch-x86/xen-x86_64.h | 1 -
 xen/include/public/arch-x86/xen.h        | 2 --
 3 files changed, 1 insertion(+), 4 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 4664264b2f5d..9ba2774762cc 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1246,7 +1246,7 @@ int arch_set_info_guest(
          is_pv_64bit_domain(d) )
         v->arch.flags &= ~TF_kernel_mode;
 
-    if ( flags & VGCF_I387_VALID )
+    if ( flags & VGCF_i387_valid )
         vcpu_setup_fpu(v, &c.nat->fpu_ctxt);
     else
         vcpu_reset_fpu(v);
diff --git a/xen/include/public/arch-x86/xen-x86_64.h b/xen/include/public/arch-x86/xen-x86_64.h
index 75f121be0e14..9f33d80d3135 100644
--- a/xen/include/public/arch-x86/xen-x86_64.h
+++ b/xen/include/public/arch-x86/xen-x86_64.h
@@ -103,7 +103,6 @@
 /* Guest exited in SYSCALL context? Return to guest with SYSRET? */
 #define _VGCF_in_syscall 8
 #define VGCF_in_syscall  (1<<_VGCF_in_syscall)
-#define VGCF_IN_SYSCALL  VGCF_in_syscall
 
 #ifndef __ASSEMBLER__
 
diff --git a/xen/include/public/arch-x86/xen.h b/xen/include/public/arch-x86/xen.h
index a7bf046ee006..4693e47d204c 100644
--- a/xen/include/public/arch-x86/xen.h
+++ b/xen/include/public/arch-x86/xen.h
@@ -160,8 +160,6 @@ typedef uint64_t tsc_timestamp_t; /* RDTSC timestamp */
 struct vcpu_guest_context {
     /* FPU registers come first so they can be aligned for FXSAVE/FXRSTOR. */
     struct { char x[512]; } fpu_ctxt;       /* User-level FPU registers     */
-#define VGCF_I387_VALID                (1<<0)
-#define VGCF_IN_KERNEL                 (1<<2)
 #define _VGCF_i387_valid               0
 #define VGCF_i387_valid                (1<<_VGCF_i387_valid)
 #define _VGCF_in_kernel                2
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 16:16:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 16:16:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259421.1552726 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4hxD-0001qv-3S; Mon, 23 Mar 2026 16:16:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259421.1552726; Mon, 23 Mar 2026 16:16:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4hxC-0001qo-W8; Mon, 23 Mar 2026 16:16:34 +0000
Received: by outflank-mailman (input) for mailman id 1259421;
 Mon, 23 Mar 2026 16:16:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Bertrand.Marquis@arm.com>) id 1w4hxB-0001qi-Eq
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 16:16:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4hxA-007grc-MK
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 17:16:32 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Bertrand.Marquis@arm.com>)
 id 69c1675f-2eae-0a2a0a5409dd-0a2a4502c0a2-4
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 17:16:31 +0100
Received: from [52.101.69.9]
 (helo=AM0PR83CU005.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Bertrand.Marquis@arm.com>)
 id 69c1675f-63bb-0a2a45020019-346545091fad-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 17:16:31 +0100
Received: from AS4P251CA0014.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:5d2::14)
 by DBBPR08MB5945.eurprd08.prod.outlook.com (2603:10a6:10:1f7::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Mon, 23 Mar
 2026 16:16:26 +0000
Received: from AM3PEPF00009B9E.eurprd04.prod.outlook.com
 (2603:10a6:20b:5d2:cafe::d2) by AS4P251CA0014.outlook.office365.com
 (2603:10a6:20b:5d2::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.29 via Frontend Transport; Mon,
 23 Mar 2026 16:16:26 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM3PEPF00009B9E.mail.protection.outlook.com (10.167.16.23) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.19
 via Frontend Transport; Mon, 23 Mar 2026 16:16:25 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PAXPR08MB6685.eurprd08.prod.outlook.com (2603:10a6:102:133::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.23; Mon, 23 Mar
 2026 16:15:22 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9723.030; Mon, 23 Mar 2026
 16:15:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=arm.com header.i="@arm.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=selector1 header.d=arm.com header.i="@arm.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=jlXxrOUdHrJLopPcH4/os6i7aU92xSA+wvrz1g5A3lhgKbYhgRovuuRGL4IJsp0aPYJ1Sx0YKweDRs9JV2grzOHzzuJFgR8slNOGaDvrfaFnYduSPWVBuuLel4g1eoSy00U88xjuobn7MbDtyROJnmLC5/OQCDRvr/qqOymvBj6HLqCcHD13ZrLoV0H397I9T4L/6x2MlkSHsuh9Psl/VicwOE7O7/yf0/u3PKkylWpMFFT5F/+ivDIeCRPO3qbffTt5vhu+IsAE1dwmvVXy48MPG6oZ9jvXWV9V8XX/0yi/p9dbMFo8oBYVaCZ0TWYZAnJCIeyhC+Q11YveUgBdMQ==
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=4CidpbdwhBUiXhAvou3nUyWCGJqIAN6pkUr5rVCqeDA=;
 b=jvx4JMJKUxWQIzlYdr0wtbvpOSDpx2aWJSIbJ58GUqtR4JcSVi3xrKTfqJpeyr9WnNepMfmdsMSiZN0EIuF2ZT6IwQdwJUKe/BqtEYIvFzkvlou1ATJky4VwA37sJBSqfukaHi0abunmDQxPQoF0zFBb63ZfApJBE+AyNHzf9xFr6dEMb7L7VmYokTlrbYWhBCuXyiX3HuDmHmdfY6eWleM856ZT4GEbEHVYw80Vj3tEQEWJDCPegqmfWzK4GmaMZUdbUywkMnvKvWrj7klG21AqNfAKY16fXviBqWQg35jUXaYHHkdth7s/WzoJP44Dm1N5oqY4ogDvNWqXRIVImw==
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=4CidpbdwhBUiXhAvou3nUyWCGJqIAN6pkUr5rVCqeDA=;
 b=ow2BVB14f5ATGZ7sRIZO57oX8U8jJFCB7Cc3ygUSSZtPNOHwcEatSnrbrepLCIzoix2qo2ow3APgcEsap3Ybk00tg2YlVce9eel6H0vvsNd10nRnDS5PeXqfqsAxIZXqWRh0+atL/h9YO9q4TzrnO5Dw3q/4qww7KUMIkPD8WXM=
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=Rq9t9aFDHevdzKFNhhyKjz2Ca+0bpHiB3ATHq1Gms59ZO18KzcKrz2HUGBozjeLfUdUdQnWJ5t+QLXHUTi0LPXkQeToURC6Hid67wLoR1HLdBrCxb6jE45p7T5mPelbHuJANVz0ezqtqzH8DAhQ2I8cEicTMPAvbeHaP+G5qXT/UOvmaUHS+W7Wn9SMBksm2LqURVBUZb4VdFCBRAQEU7AFvyW0Cp0Cv165f089lUGndVi97TjwqFDb2v2nN+91lRI+qq/g+eMSofnNZNZ+OSl59euXrWpeufGPj3Yok803oGFFO/UjV6RhNATI4ELZ7A9TLKJwQ6tiPEQwg2BpCjQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4CidpbdwhBUiXhAvou3nUyWCGJqIAN6pkUr5rVCqeDA=;
 b=Wb1rmfl0nLl4L9Q+nixsy9I/1UnQt1EHU6W+HkmDA668ZWM72CFOdHf9u+4Rvkcxi6SiZC5FWBGw8htqXnnGf1xxsS3mRuJPiA9HE16A4niFIMdzGYVciIu4Y2TJ/g/NIdMAaf5hn3KJnMNOrhVHGTHdwfiAWjHi2M4/FqSt8iCnxPbXqpjFfmylycjVEfUrSc9OW/0tGJ4e6drokUPqGohEhTftXdxHlHt137+uSVmt+gJt4Zh3Yd4Z/9D1TjbHmGW+S9iDSHWHHZ9bq10iMFd3NbTLlMQnJSjuB/97lIqKnr+c9Z9qBMSyJNOPjebN++G1y0ScxF18TtsA7idS1Q==
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=4CidpbdwhBUiXhAvou3nUyWCGJqIAN6pkUr5rVCqeDA=;
 b=ow2BVB14f5ATGZ7sRIZO57oX8U8jJFCB7Cc3ygUSSZtPNOHwcEatSnrbrepLCIzoix2qo2ow3APgcEsap3Ybk00tg2YlVce9eel6H0vvsNd10nRnDS5PeXqfqsAxIZXqWRh0+atL/h9YO9q4TzrnO5Dw3q/4qww7KUMIkPD8WXM=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v2] xen/arm: vpsci: ignore upper 32 bits for SMC32 PSCI
 arguments
Thread-Topic: [PATCH v2] xen/arm: vpsci: ignore upper 32 bits for SMC32 PSCI
 arguments
Thread-Index: AQHcurYjsTX9WA5Mqk6o6Mf3ZcTrT7W8SwcA
Date: Mon, 23 Mar 2026 16:15:22 +0000
Message-ID: <5D7F45D2-BA69-4BDA-8A04-41DBB652F66D@arm.com>
References:
 <cde430238469198082114121b14d88bce9f1ceef.1774263939.git.mykola_kvach@epam.com>
In-Reply-To:
 <cde430238469198082114121b14d88bce9f1ceef.1774263939.git.mykola_kvach@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PAXPR08MB6685:EE_|AM3PEPF00009B9E:EE_|DBBPR08MB5945:EE_
X-MS-Office365-Filtering-Correlation-Id: c1ae8093-c6ac-4ad0-1d49-08de88f78877
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|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info-Original:
 a6omwZV96Q0JYqWxgcXpPCrc+4Siw7aP+lY1vOmzXAM7Ikw+JYPRU3D0c6PATGkCjOiNNSQ2cUm8b57cZXVItEtHHaV5TIKFf3903Dwsfkm8XmPmm8m5chaEjwCBhY5O+fEFHVIYoJGpmnqQMv1DZiPVg2OQXlLXCBXzo3VcOijoXmCHbRDlx5qPoAhk0pBkgoBrmE6WsQi21WrzDzvwoewW0w3HKDWvqOsu+Mcg9YRA068d+cnAjKZQvVqlzOPpQlJgSEggBLkQahaiFnWlxpwutUX1vC3tGGp/77WhQ5Z4dOOSoePl6ZSeUyeyxoL3OBe3ACqim+xOdGHQUfGVDUAxVRL6ihlMLVOgGFVpyPfbwXZjiy2vwkaZV57gvAVMSuSRTQjDPKprSuTXG5F0Gy8WKAtXjkpBPj6nYnPpej1CUn0rUmcLyGztfDIWkYt6Yxzqd4RE2hdcYhV+omWP4gmooWv9w0tQ+TW4nllGO+KyzEe1/pO7puSi6KmO6ZkgnU4WfN/YSepN8uwWlCvmdCTL8trpQZE3MyASiraNzPiXhm2eO0I4dtFuqPgd9xm8B/sMEhUyiNHE7YE5NTPH/Qsb4CgDgO46a07UAuqyO9IjH9jmv9MwjBU2ZhzgSO0WscHH13AOEUOE60p3KXxuwSClK+KgCKqnf9/qMTDsQGSECre2MshEnP99bsu1dg9N2rDBS6F+hW5YTgAp977wgqF/o47PrhDa7NARb1t3DCbkEVp6hOHNK8APZOIlWDTC
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <87359AC5AB1B5946827634275E9EC153@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked:
 KA9xwbwlnz3Lj34hyLe7t1iLAfvPGwUQR5Q8xsDWaa69DAGPi7Wq8ZsAuzPcq1IXWPSHIm4FdjVeddnMcDO1vzszS4qXH12p3g6WVcv66+oC/71Bb7liKQCIZTS8Llzdfa0oDYlHZN3JtcZya8IlejTgLYpcVy1KDbIwIgalaxF024MI8NF7hxjo7Gd9kSfI19cmfoZzTu/87tXFq/VSowIBgx9SPBYjpNKqlOasjfjkNtaDe3cGZEYhLGpXQyN88Jb/mPgyw1UPsjnRG7SoaOnNUzKEAdidzQyXRsZTsltzMo6pLJ+xLqSRK3tgUsssr1jdVsycZqiWiaw12jWlFQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6685
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF00009B9E.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	2321903c-bd0e-48f9-86d8-08de88f762ab
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700016|35042699022|376014|14060799003|82310400026|56012099003|22082099003|18002099003|7053199007;
X-Microsoft-Antispam-Message-Info:
	OPVjgi9YRnIahJQrw+TstEWIWheu3WroFni2AFeBSlkt/B9E6VK8/dUbzFv2Hui/BZEUsyA19n3k1cF45Jm+mX1K2366b6RbPXu5gEqm4ZrWlrz4reClfKiqUGhyR+NqCi3SaSlddFzx1UOoIb7D07fEj2sOP5pFNcsuRtWA3I3n0Vs8PaLAPNXa1HWVWVs9fNDXprQuP9qE6rwLReLMr9ySePjMzKchBI/J0eyb7dOILj1IbQaVXDjDgnt2qT/a5aNGS55nyBC3SBtTHprbFEnbicq2qmkzkd4G+3n2FdCXKHcy9Coz7WkCHFdkEZJ6+V7vrc1lt/KkUm2mEZvdzP+SpC5ctacrM0k5wMBErluBStNda3biwILx3QOh8xInVWvjg/9utBaINwrp1s8xR3D7jEPtmWNXzr19bZPg+2FI6JtBnC1JGIqT2Ot7feZdSiNIcudApZIk+BZdL8j7fQLfdEZJLJZIBDcO43I9UvmGSjAAv2IVEShT9loDbH2rTCURvCVku84K27Wlir+D24P7hddFCLci+xIpq2E69a0DYRPFiBHbRo0g/+/PLixoK9tEI0UEKhdynWsFcc0wKLgszxFzaiaCdVP1SmflfhlGIX/O8hXASL5JOxoVOwGKah0dxPwWNwT9Kg87j4pVr1+CwY3Vhpz5BEtsVYnZ7kbg6RAluUv4avSyo3e9QKP24y3EyEKtCCbsGXhLWOSKgALpLfgkyOTyno0XAyreb00=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(35042699022)(376014)(14060799003)(82310400026)(56012099003)(22082099003)(18002099003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	kcdvRImvrYHYF/ma7n8QkwOD4UySn3w4+ZPek8P9g7t7bXOFsS/izaPYeONlILXEQLRNtSJpgMlPVlIJLr/PE/WpyMWZjyXoSkCXvuPStVt2H0omVu6h+7utP73hMQVLV3AwquEjoVgGxAMjlXy08RtihuB0jLbq0zNWJZ6SYbRmtZb0kDyHRy8ZsY0lDhSvOqcz2PQhMiWxbWZrtBUkCPrd8+jKDdwAZ5DhgfYbYdocKS9ZjYK5ECLRks+zmFcVYZ2wwFu+PeXEY6Ja2UYzqJq9Ili3YvqZruG3M3aAlNCdOKAXBJjXgLquj8bO7qiRMIozL09qNOT0B4ig+ObL+LtaoIwkamPMqPigluoeWKjRXKPOnAYZSPs2nT0o/oHirDBhLIgUvmrdAxmxJY4R2DlyFw7J+3zVUlvEC1MvZr2YPi2BC5bOeVNvwzbWsMDX
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2026 16:16:25.9920
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c1ae8093-c6ac-4ad0-1d49-08de88f78877
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:
	AM3PEPF00009B9E.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB5945
X-purgate-ID: tlsNG-720697/1774282591-68D70DB8-98C6B2E2/0/0
X-purgate-type: clean
X-purgate-size: 4661

Hi Mykola,

> On 23 Mar 2026, at 12:11, Mykola Kvach <xakep.amatop@gmail.com> wrote:
>=20
> From: Mykola Kvach <mykola_kvach@epam.com>
>=20
> SMCCC DEN0028G, section 3.1, states that for AArch64 SMC/HVC calls
> using Wn, only the least significant 32 bits are significant and the
> upper 32 bits must be ignored by the implementation.
>=20
> So for SMC32 PSCI calls, Xen must not treat non-zero upper bits in the
> argument registers as an error. Instead, they should be discarded when
> decoding the arguments.
>=20
> Arm ARM DDI 0487J.a (D1-5406) also notes that the upper 32 bits may be
> implementation defined when entering from AArch32. Xen zeros them on
> entry, but that guarantee is only relevant for 32-bit domains.
>=20
> Update PSCI v0.2+ CPU_ON, CPU_SUSPEND and AFFINITY_INFO to read SMC32
> arguments via PSCI_ARG32(), while keeping the SMC64 handling unchanged.
>=20
> No functional change is intended for PSCI 0.1.
>=20
> Suggested-by: Julien Grall <julien@xen.org>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>

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

PS: this could be treated as a bug fix but as no implementation we know of =
has
been falling into this error, i do not think it would be needed to backport=
 this.

Cheers
Bertrand

> ---
> v2:
> - introduce PSCI_ARG_CONV() to centralize convention-dependent argument
>   decoding for PSCI v0.2+ calls;
> - use smccc_is_conv_64(fid) instead of open-coding per-call SMC32 checks;
> - keep PSCI 0.1 handling unchanged, except switch on the already-decoded
>   fid instead of re-reading x0/r0.
>=20
> Link to discussion: https://patchew.org/Xen/cover.1751020456.git.mykola._=
5Fkvach@epam.com/072270e0940b6bcc2743d56a336363f4719ba60a.1751020456.git.my=
kola._5Fkvach@epam.com/#7070f416-119c-49f8-acd0-82c6e31f0fc6@xen.org
> ---
> xen/arch/arm/vpsci.c | 19 ++++++++++++-------
> 1 file changed, 12 insertions(+), 7 deletions(-)
>=20
> diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
> index 7ba9ccd94b..65dea5cf6c 100644
> --- a/xen/arch/arm/vpsci.c
> +++ b/xen/arch/arm/vpsci.c
> @@ -230,13 +230,16 @@ static int32_t do_psci_1_0_features(uint32_t psci_f=
unc_id)
> #define PSCI_ARG32(reg, n) PSCI_ARG(reg, n)
> #endif
>=20
> +#define PSCI_ARG_CONV(reg, n, conv_64) \
> +    ((conv_64) ? PSCI_ARG(reg, n) : PSCI_ARG32(reg, n))
> +
> /*
>  * PSCI 0.1 calls. It will return false if the function ID is not
>  * handled.
>  */
> bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid)
> {
> -    switch ( (uint32_t)get_user_reg(regs, 0) )
> +    switch ( fid )
>     {
>     case PSCI_cpu_off:
>     {
> @@ -271,6 +274,8 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, ui=
nt32_t fid)
>      * adding/removing a function. SSSC_SMCCC_*_REVISION should be
>      * updated once per release.
>      */
> +    bool is_conv_64 =3D smccc_is_conv_64(fid);
> +
>     switch ( fid )
>     {
>     case PSCI_0_2_FN32_PSCI_VERSION:
> @@ -303,9 +308,9 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, ui=
nt32_t fid)
>     case PSCI_0_2_FN32_CPU_ON:
>     case PSCI_0_2_FN64_CPU_ON:
>     {
> -        register_t vcpuid =3D PSCI_ARG(regs, 1);
> -        register_t epoint =3D PSCI_ARG(regs, 2);
> -        register_t cid =3D PSCI_ARG(regs, 3);
> +        register_t vcpuid =3D PSCI_ARG_CONV(regs, 1, is_conv_64);
> +        register_t epoint =3D PSCI_ARG_CONV(regs, 2, is_conv_64);
> +        register_t cid =3D PSCI_ARG_CONV(regs, 3, is_conv_64);
>=20
>         perfc_incr(vpsci_cpu_on);
>         PSCI_SET_RESULT(regs, do_psci_0_2_cpu_on(vcpuid, epoint, cid));
> @@ -316,8 +321,8 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, ui=
nt32_t fid)
>     case PSCI_0_2_FN64_CPU_SUSPEND:
>     {
>         uint32_t pstate =3D PSCI_ARG32(regs, 1);
> -        register_t epoint =3D PSCI_ARG(regs, 2);
> -        register_t cid =3D PSCI_ARG(regs, 3);
> +        register_t epoint =3D PSCI_ARG_CONV(regs, 2, is_conv_64);
> +        register_t cid =3D PSCI_ARG_CONV(regs, 3, is_conv_64);
>=20
>         perfc_incr(vpsci_cpu_suspend);
>         PSCI_SET_RESULT(regs, do_psci_0_2_cpu_suspend(pstate, epoint, cid=
));
> @@ -327,7 +332,7 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, ui=
nt32_t fid)
>     case PSCI_0_2_FN32_AFFINITY_INFO:
>     case PSCI_0_2_FN64_AFFINITY_INFO:
>     {
> -        register_t taff =3D PSCI_ARG(regs, 1);
> +        register_t taff =3D PSCI_ARG_CONV(regs, 1, is_conv_64);
>         uint32_t laff =3D PSCI_ARG32(regs, 2);
>=20
>         perfc_incr(vpsci_cpu_affinity_info);
> --=20
> 2.43.0
>=20



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 16:30:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 16:30:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259433.1552735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4iAN-0004ea-9G; Mon, 23 Mar 2026 16:30:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259433.1552735; Mon, 23 Mar 2026 16:30: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 1w4iAN-0004eT-6G; Mon, 23 Mar 2026 16:30:11 +0000
Received: by outflank-mailman (input) for mailman id 1259433;
 Mon, 23 Mar 2026 16:30:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <oleksii.kurochko@gmail.com>) id 1w4iAL-0004eN-LZ
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 16:30:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4iAK-00BTM1-Ds
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 17:30:08 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69c16a8b-2eae-0a2a0a5409dd-0a2a4501c0b2-16
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 17:30:08 +0100
Received: from [209.85.208.43] (helo=mail-ed1-f43.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69c16a90-6400-0a2a45010019-d155d02bcc64-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 17:30:08 +0100
Received: by mail-ed1-f43.google.com with SMTP id
 4fb4d7f45d1cf-6689033d0c3so4720781a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 09:30:08 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f8be14sm536248166b.17.2026.03.23.09.29.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 23 Mar 2026 09:30:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20230601 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1774283408; x=1774888208; 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=SshUlreLuRggCuM2qnEr0Coi2A/k9Ipd+AgjYqcpRfE=;
        b=TrRURI/O6eeuHOzT7VlkGrYtI8DngTBkQFF5lcl5CTgbdAuTitGRTeeHIBBLMkQHON
         bdPJEZ9rd+P/d4Y96tfVYy81DYtJfByC9oe6VpLEqUfAZYnFhMcwwtYjmf9bybuKT0YL
         nIxa28gDae6OHb8/8BR70fcKZvVscLg8rkATHuZVTfovDPRBQ3VayB94BWH7rIw6iyPX
         lEqAhZTIgFsOuUW/fX7Gno7im7yCVl0fWybqWe2EEP9pA0K1WfRU75r2D8RO5Ot/34WV
         FWA1Z+8+ZmbrNZ6namVZRgmP7NjvZfnpccLRClCn20bmZB69S+xfodu/w3T3Ky0QURft
         awZA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774283408; x=1774888208;
        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=SshUlreLuRggCuM2qnEr0Coi2A/k9Ipd+AgjYqcpRfE=;
        b=baLqHXgi5W0kd68XeCf9+KyqMukP1qiq+1g5AehK/Otd3R7IWoaQJhWT0d9DFNPCUx
         /zo3aE+c76slns4LKvV60ZqCudBzM2rJmOgX7cHL5TtF281Ur/+W2Rnxqqz+k9jO3NTQ
         AQM6c5gfF+UdbOOH27qRPP5cloKlZXDluEC7XQ9zRSxETfkiv6wYVyYNNTwxDWngNtOI
         NvcOAPG+/0GaiUpYgzWEjV/6vzXqhdDaudolkJ4uQ0gjNLkADizdxr5yYDEh2pzP0dSR
         y78BVOc5l1Oo4mg49ZFwZhEHOAUKGTThZIyUGUjSeauZP1rAsBYaaUOKenHkdK3J2a1b
         sjIw==
X-Gm-Message-State: AOJu0YxYTQT67QfKif8ssbDtTwTCQLQastX9efGtCa5d7alfKekNkDqL
	wKwzvAYu79GS9izHJ8n6OvQlAZjEsJw8Gvph6YMANtzeYC3ojhxunwAjXOQVIg==
X-Gm-Gg: ATEYQzz98baw5mCbe3zPW86lENgEOAUegQFsdUYM0Ygd4Z40OkZQls05EzLNxHOcOPT
	dvbWL74ZYta2kztWkFMf+APEl0kGx3lrxZpNTA3xrzl+x8+EjnHCCBVKotDSDfaaz2AAA90Ji49
	tyTXVtU+UTWLuY+ZNRPJDUplEgoPxYDN1J+RTUKmTDlU3KerpJUL2/dn4b0W87p0ho9VWd0nFue
	kmiMz2ntWT52K6+5xFdbdgRhWFmHKr9IUHIb1YtnZCiAeNdhy0RKf5DTpJ8meIhv1ednCdSN4YT
	pZTFWu8yJGnvKAAfja6uTmGKPyhFbbK2KanSap+z0cgIystqIjLOWyIghUjZ78V3LsI6qErcbVm
	O/D/4XJuE+gg2bm6IDyygUxUsifqNDFkynpViVRw+nVe+hiGOBISxf3Luu1IwHqhIYcLMP3uM/s
	1ypjSEPp/fJlVQzUzHHt3ZuTupR7OqBWpepqzfCUriZV91e+wT7B/fUm5qzp1t3Sh1AQ==
X-Received: by 2002:a17:906:c097:b0:b97:d126:c01c with SMTP id a640c23a62f3a-b982f3975a4mr724622166b.50.1774283407268;
        Mon, 23 Mar 2026 09:30:07 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Timothy Pearson <tpearson@raptorengineering.com>,
	Rahul Singh <rahul.singh@arm.com>
Subject: [PATCH v2 00/11] RISCV: enable DOMAIN_BUILD_HELPERS
Date: Mon, 23 Mar 2026 17:29:41 +0100
Message-ID: <cover.1774281309.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1774283408-8F0E1DF3-11F84067/0/0
X-purgate-type: clean
X-purgate-size: 3018


Introduce necessary things to enable DOMAIN_BUILD_HELPERS config for RISC-V.

Generally it is indepenent patch series from [1] but depends on which
patches will go first it could be some merge conflicts.

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

CI tests: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2403222832

---
Changes in v2:
 - Address the comments from ML.
 - Introduce some new patches to make dom0less solution more architecture
   indepenent from terminology point of view.
 - Minor fixes.
---

Oleksii Kurochko (11):
  xen/riscv: implement get_page_from_gfn()
  xen: return proper type for guest access functions
  xen/riscv: implement copy_to_guest_phys()
  xen/dom0less: rename kernel_zimage_probe() to kernel_image_probe()
  xen/riscv: add kernel loading support
  xen: move declaration of fw_unreserved_regions() to common header
  xen: move domain_use_host_layout() to common code
  xen: rename p2m_ipa_bits to p2m_gpa_bits
  xen/riscv: introduce p2m_gpa_bits
  xen/riscv: add definition of guest RAM banks
  xen/riscv: enable DOMAIN_BUILD_HELPERS

 xen/arch/arm/domain_build.c               |  12 +-
 xen/arch/arm/domctl.c                     |   2 +-
 xen/arch/arm/guestcopy.c                  |  24 ++--
 xen/arch/arm/include/asm/domain.h         |  14 --
 xen/arch/arm/include/asm/guest_access.h   |  18 +--
 xen/arch/arm/include/asm/p2m.h            |   4 +-
 xen/arch/arm/include/asm/setup.h          |   3 -
 xen/arch/arm/kernel.c                     |  48 +++----
 xen/arch/arm/mmu/p2m.c                    |  18 +--
 xen/arch/arm/p2m.c                        |   6 +-
 xen/arch/ppc/include/asm/guest_access.h   |  10 +-
 xen/arch/riscv/Kconfig                    |   1 +
 xen/arch/riscv/Makefile                   |   2 +
 xen/arch/riscv/guestcopy.c                | 116 ++++++++++++++++
 xen/arch/riscv/include/asm/config.h       |  13 ++
 xen/arch/riscv/include/asm/guest_access.h |  13 +-
 xen/arch/riscv/include/asm/p2m.h          |  18 +--
 xen/arch/riscv/kernel.c                   | 158 ++++++++++++++++++++++
 xen/arch/riscv/p2m.c                      |  63 ++++++++-
 xen/arch/riscv/stubs.c                    |   8 +-
 xen/common/device-tree/domain-build.c     |   2 +-
 xen/common/device-tree/kernel.c           |   2 +-
 xen/common/domain.c                       |   8 +-
 xen/drivers/passthrough/arm/ipmmu-vmsa.c  |   4 +-
 xen/drivers/passthrough/arm/smmu-v3.c     |   2 +-
 xen/drivers/passthrough/arm/smmu.c        |   2 +-
 xen/include/public/arch-riscv.h           |  16 +++
 xen/include/xen/bootinfo.h                |   4 +
 xen/include/xen/domain.h                  |  16 +++
 xen/include/xen/fdt-domain-build.h        |   8 +-
 xen/include/xen/fdt-kernel.h              |   4 +-
 31 files changed, 499 insertions(+), 120 deletions(-)
 create mode 100644 xen/arch/riscv/guestcopy.c
 create mode 100644 xen/arch/riscv/kernel.c

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 16:30:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 16:30:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259434.1552744 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4iAX-0004tz-Ez; Mon, 23 Mar 2026 16:30:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259434.1552744; Mon, 23 Mar 2026 16: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 1w4iAX-0004ts-CC; Mon, 23 Mar 2026 16:30:21 +0000
Received: by outflank-mailman (input) for mailman id 1259434;
 Mon, 23 Mar 2026 16:30:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <oleksii.kurochko@gmail.com>) id 1w4iAV-0004tJ-M3
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 16:30:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4iAV-009kq3-1e
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 17:30:19 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69c16a97-bab6-0a2a0a5309dd-0a2a4503b4ec-6
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 17:30:19 +0100
Received: from [209.85.218.51] (helo=mail-ej1-f51.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69c16a9a-1947-0a2a45030019-d155da33b922-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 17:30:18 +0100
Received: by mail-ej1-f51.google.com with SMTP id
 a640c23a62f3a-b936331786dso483276166b.3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 09:30:18 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f8be14sm536248166b.17.2026.03.23.09.30.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 23 Mar 2026 09:30:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20230601 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1774283418; x=1774888218; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4LuRVqlpFi1rpvJNwjCUxIjgt4P93RXegQDELQdKOhc=;
        b=P+/egHRbfmt6nU4zj+dn97cFhaE4jKP/Ca4zPCD+RUKBbeneJeFBCVy+qoTESBGMSJ
         auf0VJTSte8coVX0LFmk0M2GwbCSE0pKWjpIfZudcEsfkvJwtq7e+vvKHPYRGPdQGCPw
         6s9MGBA1anak9WuljlKAGOkO9+RjMvdJ5VmY1M+FSZxeYCK2ALYqu9mz0jJdkIT254gq
         UFhiMtgn0O/8M1ZkolAtJasc0xHVg+dHS4zfTz2CLuP5M9lfW2ztKVQFpzp54HjxhRPu
         VGbJTaUzRyJoZQ4eGsQhAbGfO0Ty5gAuyopC7z8XsfRrWG5+VbgmijLBwvllAREMUCQv
         MZuw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774283418; x=1774888218;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=4LuRVqlpFi1rpvJNwjCUxIjgt4P93RXegQDELQdKOhc=;
        b=hCN3KJcCXUKl3fzBpRMbkfQAPFWZEcQuXx8ifXPxtRX31dphJs+7oXUmz2Nu8bTd+/
         Jucp5rxp64l/b6BvjrOehdQKQeEWezPgJ+0mk3TeJ3DDg7ktOiFCaJU2eIXAst9oQ/SP
         feotIp+vaM6/sdAN+ZGqLojkinAQMbdivz8fmTC9EbF5pHXuUG+ngEbDr7GHmQ9Ds/m8
         U1hgaxU1gwVEV5fONgdGsKpoannKkKdpJXZRPzBbFwWex5ltQMMuIxt6zTTtDS5zK0lG
         kSatX36UYnOQEWhKwWrre5mPhqqPNdgT78REmR5P6dqT2k52ZcDqlu8OWhv08rJtvzbc
         mKNw==
X-Gm-Message-State: AOJu0YzBfUdYk8Ye5HqRFomeRc3x+yPPfKd/sGuFyU4+ILd+EnEixi3n
	0rRTl8aaMn5HGsCFHwnfzhaVGK3kZvko+I9PX0ybHYrN2rbw2DvTI0cywdM6kA==
X-Gm-Gg: ATEYQzzxd3lypRXP5gVTI7zItD0V586+zulx6g9/XJexak5gb7p18D7Efd11gtGxNDM
	dKIgrnMbaCYsAToiGT3P2Sk1Jz2xbZDFP7ZNdrHwOGnClL4HjV+fwXmMHJRTKxlwQDdbupwawvY
	vUgF4iR0KpTvUH2Foq8pWdtT2cxd6g3Ceb1/yvvL0KOGiaWWmhCIyChNBpXlKOauJzaYCaTE8Ts
	gvlCfIgaQJBATFkMI2fbi3/AzVdNh68Vym84AWmEcvysT4auHXOX3jIAnCZneADA/WZbN8rD7CN
	L5YZfuP4sH+AlXhOsQcCeYZa5qrnPYY0N3HcLZWz4EFZcv2y3DrQG1JrjQEX6uK6uCmH7boNama
	Dwfr1eBRsxsVHGiTMWEYxlKj12UEM2otwiYWDyT+eT2Yj0J2+iKFraSw+NNRDyAL8R/tpPJWOIg
	kZi3/vujRv7JiHa7eUxLYH/24cZNcwYW/YHUoh5gePevGyNGtXmG9LRPmykelsr6k60Q==
X-Received: by 2002:a17:907:1c1f:b0:b98:3d79:40c0 with SMTP id a640c23a62f3a-b983d794e9cmr811089066b.12.1774283417745;
        Mon, 23 Mar 2026 09:30:17 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 01/11] xen/riscv: implement get_page_from_gfn()
Date: Mon, 23 Mar 2026 17:29:42 +0100
Message-ID: <ba0ea599c4ced7fca0b8f5dd66bb7ffb277f3a4f.1774281309.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1774281309.git.oleksii.kurochko@gmail.com>
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1774283419-4A05C72C-5C73FF64/0/0
X-purgate-type: clean
X-purgate-size: 3842

Provide a RISC-V implementation of get_page_from_gfn(), matching the
semantics used by other architectures.

For translated guests, this is implemented as a wrapper around
p2m_get_page_from_gfn(). For DOMID_XEN, which is not auto-translated,
provide a 1:1 RAM/MMIO mapping and perform the required validation and
reference counting.

The function is implemented out-of-line rather than as a static inline,
to avoid header ordering issues where struct domain is incomplete when
asm/p2m.h is included, leading to build failures:
  In file included from ./arch/riscv/include/asm/domain.h:10,
                   from ./include/xen/domain.h:16,
                   from ./include/xen/sched.h:11,
                   from ./include/xen/event.h:12,
                   from common/cpu.c:3:
  ./arch/riscv/include/asm/p2m.h: In function 'get_page_from_gfn':
  ./arch/riscv/include/asm/p2m.h:50:33: error: invalid use of undefined type 'struct domain'
     50 | #define p2m_get_hostp2m(d) (&(d)->arch.p2m)
        |                                 ^~
  ./arch/riscv/include/asm/p2m.h:180:38: note: in expansion of macro 'p2m_get_hostp2m'
    180 |         return p2m_get_page_from_gfn(p2m_get_hostp2m(d), _gfn(gfn), t);
        |                                      ^~~~~~~~~~~~~~~
  make[2]: *** [Rules.mk:253: common/cpu.o] Error 1
  make[1]: *** [build.mk:72: common] Error 2
  make: *** [Makefile:623: xen] Error 2

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - Align implemntation with Arm's get_page_from_gfn().
 - Update the first comment about DOMID_XEN to mention that isn't "normal"
   domain instead of no-autotranslated.
 - Drop footer after commit message.
---
 xen/arch/riscv/include/asm/p2m.h |  8 ++------
 xen/arch/riscv/p2m.c             | 29 +++++++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 6 deletions(-)

diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index 60f27f9b347e..54ea67990f06 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -164,12 +164,8 @@ typedef unsigned int p2m_query_t;
 #define P2M_ALLOC    (1u<<0)   /* Populate PoD and paged-out entries */
 #define P2M_UNSHARE  (1u<<1)   /* Break CoW sharing */
 
-static inline struct page_info *get_page_from_gfn(
-    struct domain *d, unsigned long gfn, p2m_type_t *t, p2m_query_t q)
-{
-    BUG_ON("unimplemented");
-    return NULL;
-}
+struct page_info *get_page_from_gfn(struct domain *d, unsigned long gfn,
+                                    p2m_type_t *t, p2m_query_t q);
 
 static inline void memory_type_changed(struct domain *d)
 {
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 89e5db606fc8..11beaeead5ac 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -1534,3 +1534,32 @@ void p2m_handle_vmenter(void)
      * won't be reused until need_flush is set to true.
      */
 }
+
+struct page_info *get_page_from_gfn(struct domain *d, unsigned long gfn,
+                                    p2m_type_t *t, p2m_query_t q)
+{
+    struct page_info *page;
+    p2m_type_t p2mt;
+
+    /* Special case for DOMID_XEN as it isn't "normal" domain */
+    if ( likely(d != dom_xen) )
+        return p2m_get_page_from_gfn(p2m_get_hostp2m(d), _gfn(gfn), t);
+
+    if ( !t )
+        t = &p2mt;
+
+    *t = p2m_invalid;
+
+    /* DOMID_XEN sees 1-1 RAM. The p2m_type is based on the type of the page */
+    page = mfn_to_page(_mfn(gfn));
+
+    if ( !mfn_valid(_mfn(gfn)) || !get_page(page, d) )
+        return NULL;
+
+    if ( page->u.inuse.type_info & PGT_writable_page )
+        *t = p2m_ram_rw;
+    else
+        BUG_ON("unimplemented. p2m_ram_ro hasn't been introduced yet");
+
+    return page;
+}
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 16:30:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 16:30:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259438.1552753 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4iAi-0005ES-Ms; Mon, 23 Mar 2026 16:30:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259438.1552753; Mon, 23 Mar 2026 16:30:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4iAi-0005EL-JO; Mon, 23 Mar 2026 16:30:32 +0000
Received: by outflank-mailman (input) for mailman id 1259438;
 Mon, 23 Mar 2026 16:30:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=n/J7=BX=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w4iAh-0005Bu-0d
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 16:30:31 +0000
Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com
 [209.85.218.42]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9a50b212-26d5-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Mar 2026 17:30:28 +0100 (CET)
Received: by mail-ej1-f42.google.com with SMTP id
 a640c23a62f3a-b982b0889d8so51035266b.2
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 09:30:28 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f8be14sm536248166b.17.2026.03.23.09.30.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 23 Mar 2026 09:30:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9a50b212-26d5-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1774283428; x=1774888228; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Z3mjawTYIGyz+a/A4MWs03CayIMQKo5R8nTd3he3QdU=;
        b=ddARcxFXWI4/edkuYvzzxPzfeFuXPpfSNMNCb/whA0zH+jzmWESul/oUjkadqcuZIG
         wf6WhD9/E8T9eozwk2ojnvuWquVfmdFyoScrUUbrSdb4vdOjubD4K/hbUiNmll9KPTR3
         PN+LJJ866LDjW/x5N+e9zxUVjyyrQSR2Eha4SfD0/1iBPZcsvmgDj3sXSqZ008TCI8Fm
         fSDdqMkFBQo9/GXmLhiIUfT/jGjlRdr9WFZiG37AAcZhxDe2KuGlX7FNXd3tQx+4g26J
         pAEZklp+Sy3X6FlaTeJdFjL3uQdJGGK/p/IO+RE+eCUUYSl5R0RUYuN8/QQRGGym2aJj
         ScMQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774283428; x=1774888228;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Z3mjawTYIGyz+a/A4MWs03CayIMQKo5R8nTd3he3QdU=;
        b=MYNpYBY2YVmuSEyj2cJJaW5ogOTKs0fF2XrFV5DU/RqH2O7jygumGeEllP2OvjjjDR
         rmtj1BsIPzarzgdOjK2pyPs2Njm1mrpbXdFCMjhj5jKRaoRYAHon6nQBu207zXv3aKku
         EfpXhVKiXvqz6d+81sx4FHgMTTHDoUpr0LSdiUja9X0dAnVfb0WgEtzBpJW4kgh1V+tc
         jUR87uwlk8/8KHGHSDiouD7pv9Htn8yt/ERrvMfTEqFoUKORS975vXPT++8EmhbjWzH+
         BSRciWl/OZCY+lfSvzYmDzdS8bLAtffYZXgzowyNtmZKmJE1gIAU88IZwnRX/OAWrBUw
         yaCA==
X-Gm-Message-State: AOJu0YxK+7SNWQz4Tdyc6/Cd0zwChnR6TDVNyzUQTMpRx331JyTVSKO3
	xrrf3RxAEhTMW6mHdSXVAuOj7BfBW/RSlYtOdRSTKoXj64PJX5Xs7ss4igAUEg==
X-Gm-Gg: ATEYQzyfi6SUmzjJPixlR27IkFRtk2oxEvlQf6ocKy7E0QZ4zualTuFEEyJSUqEHtRe
	H9yedyy+/Q+KvmfLji78u0JgUnAhkS9l6AguoiTvMJYSHd59leLDzPAK3qu8D1slu3xB/Bnzypl
	4F8KERByAwG62OHN/pfruuPhwL0vR9gx/0AXxMuZ61XXGF6hzCUsJz3M3nUYfF58olB54SbpAVh
	WL2wfEcvHR3j2G6Z10HYf8XLQ0xcTAzyvhdzIjDMJbVpdGhpyilEb0SzewH3BRuhA/lkLOmko8G
	AMKJy3q9HEn7SGqjW5u7WTNOO67yZCxTaoQa85V4QqdMLxeQi/NYJ9lvz018WeoR7aUAr0tReOB
	fRbSz0VKZeYPusZc1WOULTI5JFNP/x231A1LIpeYoMtuo2TicJ2L+XkmQdqxx+sSykRxlnHbr/F
	sRz44wlK+r1zsGsdTMk7jHiIsqs7fmewVrZKSMOLEgtFg11q51jEAruve/MYawfwmN90Ztdm7AJ
	U07
X-Received: by 2002:a17:906:88f:b0:b97:eae9:d45e with SMTP id a640c23a62f3a-b982f398aacmr718179466b.50.1774283426156;
        Mon, 23 Mar 2026 09:30:26 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v2 02/11] xen: return proper type for guest access functions
Date: Mon, 23 Mar 2026 17:29:43 +0100
Message-ID: <d990acbfe642a8c5c8d892e9dd43381c086e8c81.1774281309.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1774281309.git.oleksii.kurochko@gmail.com>
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The copy_to_guest_phys_cb function pointer declaration was based on Arm
code. However, guest access functions use copy_guest(), which should
return an unsigned int as it returns either 0 or len which is unsigned int,
so it does not make sense to return unsigned long.

Update other functions that use copy_guest() to return unsigned int, to
match its return type.

Also update guest access functions for other architectures, as their
declarations/definitions are likely copied from the Arm implementation,
so update them as well to keep everything in sync.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - New patch.
---
 xen/arch/arm/guestcopy.c                  | 24 +++++++++++------------
 xen/arch/arm/include/asm/guest_access.h   | 18 ++++++++---------
 xen/arch/ppc/include/asm/guest_access.h   | 10 +++++-----
 xen/arch/riscv/include/asm/guest_access.h |  6 +++---
 xen/arch/riscv/stubs.c                    |  8 ++++----
 xen/include/xen/fdt-domain-build.h        |  8 ++++----
 6 files changed, 37 insertions(+), 37 deletions(-)

diff --git a/xen/arch/arm/guestcopy.c b/xen/arch/arm/guestcopy.c
index fdb06422b8e9..11ad80320f4c 100644
--- a/xen/arch/arm/guestcopy.c
+++ b/xen/arch/arm/guestcopy.c
@@ -53,8 +53,8 @@ static struct page_info *translate_get_page(copy_info_t info, uint64_t addr,
     return page;
 }
 
-static unsigned long copy_guest(void *buf, uint64_t addr, unsigned int len,
-                                copy_info_t info, unsigned int flags)
+static unsigned int copy_guest(void *buf, uint64_t addr, unsigned int len,
+                               copy_info_t info, unsigned int flags)
 {
     /* XXX needs to handle faults */
     unsigned int offset = addr & ~PAGE_MASK;
@@ -107,36 +107,36 @@ static unsigned long copy_guest(void *buf, uint64_t addr, unsigned int len,
     return 0;
 }
 
-unsigned long raw_copy_to_guest(void *to, const void *from, unsigned int len)
+unsigned int raw_copy_to_guest(void *to, const void *from, unsigned int len)
 {
     return copy_guest((void *)from, (vaddr_t)to, len,
                       GVA_INFO(current), COPY_to_guest | COPY_linear);
 }
 
-unsigned long raw_copy_to_guest_flush_dcache(void *to, const void *from,
-                                             unsigned int len)
+unsigned int raw_copy_to_guest_flush_dcache(void *to, const void *from,
+                                            unsigned int len)
 {
     return copy_guest((void *)from, (vaddr_t)to, len, GVA_INFO(current),
                       COPY_to_guest | COPY_flush_dcache | COPY_linear);
 }
 
-unsigned long raw_clear_guest(void *to, unsigned int len)
+unsigned int raw_clear_guest(void *to, unsigned int len)
 {
     return copy_guest(NULL, (vaddr_t)to, len, GVA_INFO(current),
                       COPY_to_guest | COPY_linear);
 }
 
-unsigned long raw_copy_from_guest(void *to, const void __user *from,
-                                  unsigned int len)
+unsigned int raw_copy_from_guest(void *to, const void __user *from,
+                                 unsigned int len)
 {
     return copy_guest(to, (vaddr_t)from, len, GVA_INFO(current),
                       COPY_from_guest | COPY_linear);
 }
 
-unsigned long copy_to_guest_phys_flush_dcache(struct domain *d,
-                                              paddr_t gpa,
-                                              void *buf,
-                                              unsigned int len)
+unsigned int copy_to_guest_phys_flush_dcache(struct domain *d,
+                                             paddr_t gpa,
+                                             void *buf,
+                                             unsigned int len)
 {
     return copy_guest(buf, gpa, len, GPA_INFO(d),
                       COPY_to_guest | COPY_ipa | COPY_flush_dcache);
diff --git a/xen/arch/arm/include/asm/guest_access.h b/xen/arch/arm/include/asm/guest_access.h
index 18c88b70d7ec..a1a4b1c36269 100644
--- a/xen/arch/arm/include/asm/guest_access.h
+++ b/xen/arch/arm/include/asm/guest_access.h
@@ -4,17 +4,17 @@
 #include <xen/errno.h>
 #include <xen/sched.h>
 
-unsigned long raw_copy_to_guest(void *to, const void *from, unsigned int len);
-unsigned long raw_copy_to_guest_flush_dcache(void *to, const void *from,
-                                             unsigned int len);
-unsigned long raw_copy_from_guest(void *to, const void *from, unsigned int len);
-unsigned long raw_clear_guest(void *to, unsigned int len);
+unsigned int raw_copy_to_guest(void *to, const void *from, unsigned int len);
+unsigned int raw_copy_to_guest_flush_dcache(void *to, const void *from,
+                                            unsigned int len);
+unsigned int raw_copy_from_guest(void *to, const void *from, unsigned int len);
+unsigned int raw_clear_guest(void *to, unsigned int len);
 
 /* Copy data to guest physical address, then clean the region. */
-unsigned long copy_to_guest_phys_flush_dcache(struct domain *d,
-                                              paddr_t gpa,
-                                              void *buf,
-                                              unsigned int len);
+unsigned int copy_to_guest_phys_flush_dcache(struct domain *d,
+                                             paddr_t gpa,
+                                             void *buf,
+                                             unsigned int len);
 
 int access_guest_memory_by_gpa(struct domain *d, paddr_t gpa, void *buf,
                                uint32_t size, bool is_write);
diff --git a/xen/arch/ppc/include/asm/guest_access.h b/xen/arch/ppc/include/asm/guest_access.h
index 654693191106..922848032604 100644
--- a/xen/arch/ppc/include/asm/guest_access.h
+++ b/xen/arch/ppc/include/asm/guest_access.h
@@ -6,34 +6,34 @@
 
 /* TODO */
 
-static inline unsigned long raw_copy_to_guest(
+static inline unsigned int raw_copy_to_guest(
     void *to,
     const void *from,
     unsigned int len)
 {
     BUG_ON("unimplemented");
 }
-static inline unsigned long raw_copy_to_guest_flush_dcache(
+static inline unsigned int raw_copy_to_guest_flush_dcache(
     void *to,
     const void *from,
     unsigned int len)
 {
     BUG_ON("unimplemented");
 }
-static inline unsigned long raw_copy_from_guest(
+static inline unsigned int raw_copy_from_guest(
     void *to,
     const void *from,
     unsigned int len)
 {
     BUG_ON("unimplemented");
 }
-static inline unsigned long raw_clear_guest(void *to, unsigned int len)
+static inline unsigned int raw_clear_guest(void *to, unsigned int len)
 {
     BUG_ON("unimplemented");
 }
 
 /* Copy data to guest physical address, then clean the region. */
-static inline unsigned long copy_to_guest_phys_flush_dcache(
+static inline unsigned int copy_to_guest_phys_flush_dcache(
     struct domain *d,
     paddr_t gpa,
     void *buf,
diff --git a/xen/arch/riscv/include/asm/guest_access.h b/xen/arch/riscv/include/asm/guest_access.h
index 7cd51fbbdead..3f4c68e4da20 100644
--- a/xen/arch/riscv/include/asm/guest_access.h
+++ b/xen/arch/riscv/include/asm/guest_access.h
@@ -2,9 +2,9 @@
 #ifndef ASM__RISCV__GUEST_ACCESS_H
 #define ASM__RISCV__GUEST_ACCESS_H
 
-unsigned long raw_copy_to_guest(void *to, const void *from, unsigned len);
-unsigned long raw_copy_from_guest(void *to, const void *from, unsigned len);
-unsigned long raw_clear_guest(void *to, unsigned int len);
+unsigned int raw_copy_to_guest(void *to, const void *from, unsigned len);
+unsigned int raw_copy_from_guest(void *to, const void *from, unsigned len);
+unsigned int raw_clear_guest(void *to, unsigned int len);
 
 #define __raw_copy_to_guest raw_copy_to_guest
 #define __raw_copy_from_guest raw_copy_from_guest
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index acbb5b9123ea..d1f78b7c59fa 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -201,13 +201,13 @@ int __init parse_arch_dom0_param(const char *s, const char *e)
 
 /* guestcopy.c */
 
-unsigned long raw_copy_to_guest(void *to, const void *from, unsigned int len)
+unsigned int raw_copy_to_guest(void *to, const void *from, unsigned int len)
 {
     BUG_ON("unimplemented");
 }
 
-unsigned long raw_copy_from_guest(void *to, const void __user *from,
-                                  unsigned int len)
+unsigned int raw_copy_from_guest(void *to, const void __user *from,
+                                 unsigned int len)
 {
     BUG_ON("unimplemented");
 }
@@ -266,7 +266,7 @@ void udelay(unsigned long usecs)
 
 /* guest_access.h */
 
-static inline unsigned long raw_clear_guest(void *to, unsigned int len)
+static inline unsigned int raw_clear_guest(void *to, unsigned int len)
 {
     BUG_ON("unimplemented");
 }
diff --git a/xen/include/xen/fdt-domain-build.h b/xen/include/xen/fdt-domain-build.h
index 886a85381651..194d69303f56 100644
--- a/xen/include/xen/fdt-domain-build.h
+++ b/xen/include/xen/fdt-domain-build.h
@@ -44,10 +44,10 @@ static inline int get_allocation_size(paddr_t size)
     return get_order_from_bytes(size + 1) - 1;
 }
 
-typedef unsigned long (*copy_to_guest_phys_cb)(struct domain *d,
-                                               paddr_t gpa,
-                                               void *buf,
-                                               unsigned int len);
+typedef unsigned int (*copy_to_guest_phys_cb)(struct domain *d,
+                                              paddr_t gpa,
+                                              void *buf,
+                                              unsigned int len);
 
 void initrd_load(struct kernel_info *kinfo,
                  copy_to_guest_phys_cb cb);
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 16:30:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 16:30:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259447.1552762 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4iAv-0005k3-2S; Mon, 23 Mar 2026 16:30:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259447.1552762; Mon, 23 Mar 2026 16: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 1w4iAu-0005ju-VR; Mon, 23 Mar 2026 16:30:44 +0000
Received: by outflank-mailman (input) for mailman id 1259447;
 Mon, 23 Mar 2026 16:30:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <oleksii.kurochko@gmail.com>) id 1w4iAt-0005jA-Kb
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 16:30:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4iAr-005upU-Ey
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 17:30:43 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69c16aa9-e002-0a2a0a5209dd-0a2a45059b5c-28
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 17:30:42 +0100
Received: from [209.85.218.52] (helo=mail-ej1-f52.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69c16ab2-5aeb-0a2a45050019-d155da34e82d-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 17:30:42 +0100
Received: by mail-ej1-f52.google.com with SMTP id
 a640c23a62f3a-b79f8f7ea43so63035366b.2
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 09:30:42 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f8be14sm536248166b.17.2026.03.23.09.30.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 23 Mar 2026 09:30:32 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20230601 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1774283442; x=1774888242; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RkR/V7e+x0LZ5vy6oulB2qy/2ayyRS6OQM1v0e6EP4s=;
        b=kQONQ+ql+0NfUwfI+2YTrOyGjlQXtHKYc8N9K1vzadtKjj31evo5OpQgo/JcKqARpG
         aTLm5GjYzAfJEdmth0czFIWoZhUMBZJTneElC16iC8lDkZVhDtreBCEDpMc9eOaMg9Pz
         LZhL4Eoosw/A3PA9HO3k0aSvbBpY2X1oE0fz6T+7i+flL7YRaYYeN7AlK0hhHOwFjntb
         GlhuR7AfZSKkDbZ9VINyQeG7LJAb9H0nRRMLrYaZvkBVk0f6ByoexsqyKB5U8CRPArMx
         D9skUlQHGMDFDlIPS27u4gO6m0zagHUhaFZt3+UH+As5siZ8bKc9+T6S8t9hFCIzAdl5
         LIxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774283442; x=1774888242;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=RkR/V7e+x0LZ5vy6oulB2qy/2ayyRS6OQM1v0e6EP4s=;
        b=r91PBURODfBE1HyXiNLoPXeYMfBHjh2MU22cFmNqRp6Kc7T6oyyb/nt56wJ2jmCFOp
         tPmg7aVOxjZqdP+Ipcz8xm4PW7PqEPg9EDC50GxbkUnbKb73Z5UMvcVMofce2Rg8Tjax
         4A5KynHEAOWWhZ5qPGdIscSfPMHFiEq46+pvWC+Pv35Ldi1HsXCGAk09BYMHQFBGUwJ0
         zN9Wb7tVJgQphCMdU8qShUP7D3Y5KFuqpEALgjbErR/KVzaRDG1FIkxa084UPD+coYeO
         O4z6Hl73TA49cLQg0K2PCaFsXZmZhFfCrKPDpg2tTNw8GZhFubjv5LFra6wJZHlx9QhD
         Qg3w==
X-Gm-Message-State: AOJu0YxmW4+mRYVDNDiWVxXFbUnxshCJGDfKWtJ0Ujz06dIWdODQdQbz
	CozV8AolfFgg7fPSeHSqjFFqwGZp1Q4Z4VqDYMpta4CbRHcMjUhmYFA9FfHROw==
X-Gm-Gg: ATEYQzzhgJzFrESC5Z5PZI9JHjEVPCYkY/iGCpGBLJUjV/x//4Kf+KN2sezilUsdJ9D
	Dn/rN1c1PY+czW98GDLsC8dTOzf9o2BE6OmE85GLmGLuHuq8uA2ooAQWO7swz0sUR79WnZFmv3d
	Zsk6VRBWQ0720Yg8uUrJMIOav2SZ7QApgrgwkuYu4yKz8jeIzdoqx2MhSDuZ6D6znd0LjAGJUQ4
	MGMwBzjfp7cDcjrPkNePXBasrzPsq1x4ScXA0V/JS5EUuypdSJr7skEI8+viLdrIUZ9UYsJwx8/
	AcLP6ewFKwtoCOysxld8Eqp7sUCAPeEnPaOOpfUkGuXAh+OOSe3FQcSiXUgDPCtKBKJ9tcxMC7q
	1ZL4BJaWyiyd138aGe0HCHSE5rAnUMJGzEpwZSGUqJOAWt3IlES/l3u4hasxuQ1f2d9z6jrC/In
	icyH/qlKvYCA6ERdbtz14g492IZECGncv7hObBXymcIenPzK9Lhr9wn8NMAApAx/ya9bB8h8XCY
	XnE
X-Received: by 2002:a17:906:37cb:b0:b93:5e04:a74b with SMTP id a640c23a62f3a-b982f39a063mr658768666b.31.1774283441888;
        Mon, 23 Mar 2026 09:30:41 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 03/11] xen/riscv: implement copy_to_guest_phys()
Date: Mon, 23 Mar 2026 17:29:44 +0100
Message-ID: <062e50c596b9271858d2d63e101bfde5311a3817.1774281309.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1774281309.git.oleksii.kurochko@gmail.com>
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1774283442-23082488-FF239CAA/0/0
X-purgate-type: clean
X-purgate-size: 6033

Introduce copy_to_guest_phys() for RISC-V, based on the Arm implementation.

Add a generic copy_guest() helper for copying to and from guest physical
(and potentially virtual addresses in the future), and implement
translate_get_page() to translate a guest physical address into a struct
page_info via the domain p2m.

Compared to the Arm code:
- Drop COPY_flush_dcache(), as no such use cases exist on RISC-V.
- Do not implement the linear mapping case, which is currently unused.
- Use PAGE_OFFSET() to initialize the local offset variable in copy_guest().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - Use BIT() instead of open-coding.
 - Rename COPY_ipa to COPY_gpa.
 - Rename COPY_linear to COPY_gva.
 - Use  BUG_ON(linear) instead if (lineer) + BUG_ON.
 - Rename arg liner to gva for translate_get_page().
 - Update translate_get_page() to properly handling write argument.
 - Return unsigned int for copy_guest() and copy_to_guest_phys() as
   len function parameter is only 'unsigned int'.
 - Reformat function arguments for alignment
---
 xen/arch/riscv/Makefile                   |   1 +
 xen/arch/riscv/guestcopy.c                | 116 ++++++++++++++++++++++
 xen/arch/riscv/include/asm/guest_access.h |   7 ++
 3 files changed, 124 insertions(+)
 create mode 100644 xen/arch/riscv/guestcopy.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 6b3f3ed90bdb..6d3c822409b8 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -4,6 +4,7 @@ obj-y += domain.o
 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
 obj-y += entry.o
 obj-$(CONFIG_HAS_EX_TABLE) += extables.o
+obj-y += guestcopy.o
 obj-y += imsic.o
 obj-y += intc.o
 obj-y += irq.o
diff --git a/xen/arch/riscv/guestcopy.c b/xen/arch/riscv/guestcopy.c
new file mode 100644
index 000000000000..d774a90bff92
--- /dev/null
+++ b/xen/arch/riscv/guestcopy.c
@@ -0,0 +1,116 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/domain_page.h>
+#include <xen/page-size.h>
+#include <xen/sched.h>
+#include <xen/string.h>
+
+#include <asm/guest_access.h>
+
+#define COPY_from_guest     0U
+#define COPY_to_guest       BIT(0, U)
+#define COPY_gpa            0U
+#define COPY_gva            BIT(1, U)
+
+typedef union
+{
+    struct
+    {
+        struct vcpu *v;
+    } gva;
+
+    struct
+    {
+        struct domain *d;
+    } gpa;
+} copy_info_t;
+
+#define GVA_INFO(vcpu) ((copy_info_t) { .gva = { vcpu } })
+#define GPA_INFO(domain) ((copy_info_t) { .gpa = { domain } })
+
+static struct page_info *translate_get_page(copy_info_t info, uint64_t addr,
+                                            bool gva, bool write)
+{
+    p2m_type_t p2mt;
+    struct page_info *page;
+
+    /*
+     * Not implemented yet.
+     *
+     * If gva == true, the operation will likely require a struct vcpu
+     * rather than just a struct domain. For this reason copy_info_t is
+     * already passed here instead of only struct domain.
+     */
+    BUG_ON(gva);
+
+    page = get_page_from_gfn(info.gpa.d, paddr_to_pfn(addr), &p2mt, P2M_ALLOC);
+
+    if ( !page )
+        return NULL;
+
+    if ( write ? p2mt != p2m_ram_rw : !p2m_is_ram(p2mt) )
+    {
+        put_page(page);
+        return NULL;
+    }
+
+    return page;
+}
+
+static unsigned int copy_guest(void *buf, uint64_t addr, unsigned int len,
+                               copy_info_t info, unsigned int flags)
+{
+    unsigned int offset = PAGE_OFFSET(addr);
+
+    BUILD_BUG_ON((sizeof(addr)) < sizeof(vaddr_t));
+    BUILD_BUG_ON((sizeof(addr)) < sizeof(paddr_t));
+
+    while ( len )
+    {
+        void *p;
+        unsigned int size = min(len, (unsigned int)PAGE_SIZE - offset);
+        struct page_info *page;
+
+        page = translate_get_page(info, addr, flags & COPY_gva,
+                                  flags & COPY_to_guest);
+        if ( page == NULL )
+            return len;
+
+        p = __map_domain_page(page);
+        p += offset;
+        if ( flags & COPY_to_guest )
+        {
+            /*
+             * buf will be NULL when the caller request to zero the
+             * guest memory.
+             */
+            if ( buf )
+                memcpy(p, buf, size);
+            else
+                memset(p, 0, size);
+        }
+        else
+            memcpy(buf, p, size);
+
+        unmap_domain_page(p - offset);
+        put_page(page);
+        len -= size;
+        buf += size;
+        addr += size;
+
+        /*
+         * After the first iteration, guest virtual address is correctly
+         * aligned to PAGE_SIZE.
+         */
+        offset = 0;
+    }
+
+    return 0;
+}
+
+unsigned int copy_to_guest_phys(struct domain *d, paddr_t gpa, void *buf,
+                                unsigned int len)
+{
+    return copy_guest(buf, gpa, len, GPA_INFO(d),
+                      COPY_to_guest | COPY_gpa);
+}
diff --git a/xen/arch/riscv/include/asm/guest_access.h b/xen/arch/riscv/include/asm/guest_access.h
index 3f4c68e4da20..f0a42745330e 100644
--- a/xen/arch/riscv/include/asm/guest_access.h
+++ b/xen/arch/riscv/include/asm/guest_access.h
@@ -2,6 +2,10 @@
 #ifndef ASM__RISCV__GUEST_ACCESS_H
 #define ASM__RISCV__GUEST_ACCESS_H
 
+#include <xen/types.h>
+
+struct domain;
+
 unsigned int raw_copy_to_guest(void *to, const void *from, unsigned len);
 unsigned int raw_copy_from_guest(void *to, const void *from, unsigned len);
 unsigned int raw_clear_guest(void *to, unsigned int len);
@@ -18,6 +22,9 @@ unsigned int raw_clear_guest(void *to, unsigned int len);
 #define guest_handle_okay(hnd, nr) (1)
 #define guest_handle_subrange_okay(hnd, first, last) (1)
 
+unsigned int copy_to_guest_phys(struct domain *d, paddr_t gpa, void *buf,
+                                unsigned int len);
+
 #endif /* ASM__RISCV__GUEST_ACCESS_H */
 /*
  * Local variables:
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 16:30:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 16:30:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259452.1552771 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4iB8-0006F3-A4; Mon, 23 Mar 2026 16:30:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259452.1552771; Mon, 23 Mar 2026 16: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 1w4iB8-0006Ew-5t; Mon, 23 Mar 2026 16:30:58 +0000
Received: by outflank-mailman (input) for mailman id 1259452;
 Mon, 23 Mar 2026 16:30:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <oleksii.kurochko@gmail.com>) id 1w4iB6-0006Dc-HE
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 16:30:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4iB5-007jD4-TT
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 17:30:55 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69c16a97-bab6-0a2a0a5309dd-0a2a4503b4ec-44
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 17:30:55 +0100
Received: from [209.85.208.49] (helo=mail-ed1-f49.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69c16abf-1947-0a2a45030019-d155d031c542-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 17:30:55 +0100
Received: by mail-ed1-f49.google.com with SMTP id
 4fb4d7f45d1cf-668d70fabc4so918391a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 09:30:55 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f8be14sm536248166b.17.2026.03.23.09.30.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 23 Mar 2026 09:30:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20230601 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1774283455; x=1774888255; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WFYQihohLvdN+/ExvCQUaHnRoG/WzCRUsmGA2ZwH768=;
        b=BygPlh7JyaB2oqV1Hw5pK5nqh+z3d2fFq/BfAmHqSaQxb55iWBvP5JrKi9JlsfR035
         DBFumNI0vVYr8ylPJXfEK/QCMrGIlLGbms1VVnntq91ciHT/q8v9zkbPfRPOglML9fjd
         EkZ7KTMtXyPr9YRbDDCn6wC5Raf4CDkZO5fWpDGbqrGVQ40c/b3fxXuZljNoFk6mJt76
         G4oVasqOURMGSOuw+3GrynBhtIE4jvQfO+fdK2q+JGC51qfFH3uUC1WIGNX1Dpfrk7Go
         vF4igWtIo7OvwOGwf+pWVOQyGUKKOP7INkYS/g4wk59P9uE8H1ZpLWF+D4jUP6fGWWgQ
         TpWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774283455; x=1774888255;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=WFYQihohLvdN+/ExvCQUaHnRoG/WzCRUsmGA2ZwH768=;
        b=Gtv2zOWG5bfqsNTlNwUKVtEG974cUpMck18pNgIGdxybz6x4BIsPfpe5a1HcW5DHre
         DiF2L31WQ6HFbXs9AxvHWhNpHZ6Zeg5sOqXvXZ0/FuXnBJ7Ps3IBaBG66PTNFe4g2ETb
         UdAREwpja5uuJPVlpofh3kIRSFJzMw9Yo9+PqQOVn75Cyi8C2HZbmHSRHRGxyAL8ZApU
         npGHxehtq9QJX4XwzQRDLtXTz0r3C5dkntbI1G0B+PQ3tJWZ/olps7gXNHWOa9tk+iwR
         KFwdOq/g3OPouE038TVFW/zeOQJTMoMzF9hih3Qt+exLWnF4L8hpRbTsxteS5FmD89CB
         Io6g==
X-Gm-Message-State: AOJu0YzdSnPNfyrw4iqQpRGdP1C6ugL3F1w5XI6jv19rs8rQWb1O3tfi
	OZUR66KsO5dD5NtNeMkk3aEkj2uptHpVyfjPCx8xQkOVCKSiOuMF6QC+LGFxtA==
X-Gm-Gg: ATEYQzxUrCEKriWaeZCFeGGJNoE69PlHZtEZDZx8tyXpI0oH+s/5aZ936JHcfLTZDIG
	hln0cBlXiVsvA3ZfdIRuX+gc/IUb/Lk37LZvWPBS2Hwvc3d6ra7KQE3D/F0UGv2BxSzPD6iNgrf
	QXs8rus8M1HhwoAuNJx74fZVcnYs1feBR7gxmfKmZdSokF4vWD00g1gxj40vKN6wZWkztOFrFB9
	pssaB9YYWeQTgAZEqOSrk7FKdsNdn2auYpYGjsGNQ2htx7Bj+UgqmDOCw2M7zrUykYoN5/J6Kym
	APmeHonTfVNnTmi16ZSGuZKjzl6ug9lAEndn04EdtMyFDoY9jqvXiGSJd+aeqbsTA2DpmvIe+mt
	BFb45maQ7Z1KM8o+BM6x+5LjdooC8uF/bmHBPTNm5rC6bIxCIitIJV8vUXisBisBHrUgC9Fsumq
	4ItzwPESx48GqQKA/VHKK20aluqxx6caTZXfmKZHXpF0VBF7tE0ZhlM9MfddTIG+t0pw==
X-Received: by 2002:a17:906:5985:b0:b98:5b2:77fe with SMTP id a640c23a62f3a-b982f21d401mr575939166b.3.1774283454732;
        Mon, 23 Mar 2026 09:30:54 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 04/11] xen/dom0less: rename kernel_zimage_probe() to kernel_image_probe()
Date: Mon, 23 Mar 2026 17:29:45 +0100
Message-ID: <0fc8039cce1d8bcce1539e7c9ced71f2d1e85b6c.1774281309.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1774281309.git.oleksii.kurochko@gmail.com>
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1774283455-4905472C-809ABE1F/0/0
X-purgate-type: clean
X-purgate-size: 7643

The helper kernel_zimage_probe() is referenced from common code
(xen/common/device-tree/kernel.c), but its name is tied to the zImage
format which is specific to Arm (from architectures supported by Xen).

Other architectures supported by Xen, such as RISC-V, do not use the
zImage format and instead rely on other kernel image types (e.g. Image
or compressed Image variants: Image.gz, etc). Using "zimage" in the
name is therefore misleading in architecture-independent code.

Rename kernel_zimage_probe() to kernel_image_probe() and update the
associated structure field from "zimage" to "image" to reflect that the
code handles generic kernel images rather than the zImage format
specifically.

No functional change intended.

Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - new patch.
---
 xen/arch/arm/kernel.c           | 48 ++++++++++++++++-----------------
 xen/common/device-tree/kernel.c |  2 +-
 xen/include/xen/fdt-kernel.h    |  4 +--
 3 files changed, 27 insertions(+), 27 deletions(-)

diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
index 7544fd50a20f..3c613cdb233f 100644
--- a/xen/arch/arm/kernel.c
+++ b/xen/arch/arm/kernel.c
@@ -101,8 +101,8 @@ static paddr_t __init kernel_zimage_place(struct kernel_info *info)
     paddr_t load_addr;
 
 #ifdef CONFIG_ARM_64
-    if ( (info->arch.type == DOMAIN_64BIT) && (info->zimage.start == 0) )
-        return mem->bank[0].start + info->zimage.text_offset;
+    if ( (info->arch.type == DOMAIN_64BIT) && (info->image.start == 0) )
+        return mem->bank[0].start + info->image.text_offset;
 #endif
 
     /*
@@ -111,19 +111,19 @@ static paddr_t __init kernel_zimage_place(struct kernel_info *info)
      * and above 32MiB. Load it as high as possible within these
      * constraints, while also avoiding the DTB.
      */
-    if ( info->zimage.start == 0 )
+    if ( info->image.start == 0 )
     {
         paddr_t load_end;
 
         load_end = mem->bank[0].start + mem->bank[0].size;
         load_end = MIN(mem->bank[0].start + MB(128), load_end);
 
-        load_addr = load_end - info->zimage.len;
+        load_addr = load_end - info->image.len;
         /* Align to 2MB */
         load_addr &= ~((2 << 20) - 1);
     }
     else
-        load_addr = info->zimage.start;
+        load_addr = info->image.start;
 
     return load_addr;
 }
@@ -131,8 +131,8 @@ static paddr_t __init kernel_zimage_place(struct kernel_info *info)
 static void __init kernel_zimage_load(struct kernel_info *info)
 {
     paddr_t load_addr = kernel_zimage_place(info);
-    paddr_t paddr = info->zimage.kernel_addr;
-    paddr_t len = info->zimage.len;
+    paddr_t paddr = info->image.kernel_addr;
+    paddr_t len = info->image.len;
     void *kernel;
     int rc;
 
@@ -215,7 +215,7 @@ int __init kernel_uimage_probe(struct kernel_info *info,
         return -EOPNOTSUPP;
     }
 
-    info->zimage.start = be32_to_cpu(uimage.load);
+    info->image.start = be32_to_cpu(uimage.load);
     info->entry = be32_to_cpu(uimage.ep);
 
     /*
@@ -224,20 +224,20 @@ int __init kernel_uimage_probe(struct kernel_info *info,
      * independent image. That means Xen is free to load such an image at
      * any valid address.
      */
-    if ( info->zimage.start == 0 )
+    if ( info->image.start == 0 )
         printk(XENLOG_INFO
                "No load address provided. Xen will decide where to load it.\n");
     else
         printk(XENLOG_INFO
                "Provided load address: %"PRIpaddr" and entry address: %"PRIpaddr"\n",
-               info->zimage.start, info->entry);
+               info->image.start, info->entry);
 
     /*
      * If the image supports position independent execution, then user cannot
      * provide an entry point as Xen will load such an image at any appropriate
      * memory address. Thus, we need to return error.
      */
-    if ( (info->zimage.start == 0) && (info->entry != 0) )
+    if ( (info->image.start == 0) && (info->entry != 0) )
     {
         printk(XENLOG_ERR
                "Entry point cannot be non zero for PIE image.\n");
@@ -257,13 +257,13 @@ int __init kernel_uimage_probe(struct kernel_info *info,
         if ( rc )
             return rc;
 
-        info->zimage.kernel_addr = mod->start;
-        info->zimage.len = mod->size;
+        info->image.kernel_addr = mod->start;
+        info->image.len = mod->size;
     }
     else
     {
-        info->zimage.kernel_addr = addr + sizeof(uimage);
-        info->zimage.len = len;
+        info->image.kernel_addr = addr + sizeof(uimage);
+        info->image.len = len;
     }
 
     info->load = kernel_zimage_load;
@@ -289,7 +289,7 @@ int __init kernel_uimage_probe(struct kernel_info *info,
      * Thus, Xen uses uimage.load attribute to determine the load address and
      * zimage.text_offset is ignored.
      */
-    info->zimage.text_offset = 0;
+    info->image.text_offset = 0;
 #endif
 
     return 0;
@@ -338,10 +338,10 @@ static int __init kernel_zimage64_probe(struct kernel_info *info,
     if ( (end - start) > size )
         return -EINVAL;
 
-    info->zimage.kernel_addr = addr;
-    info->zimage.len = end - start;
-    info->zimage.text_offset = zimage.text_offset;
-    info->zimage.start = 0;
+    info->image.kernel_addr = addr;
+    info->image.len = end - start;
+    info->image.text_offset = zimage.text_offset;
+    info->image.start = 0;
 
     info->load = kernel_zimage_load;
 
@@ -389,10 +389,10 @@ static int __init kernel_zimage32_probe(struct kernel_info *info,
         }
     }
 
-    info->zimage.kernel_addr = addr;
+    info->image.kernel_addr = addr;
 
-    info->zimage.start = start;
-    info->zimage.len = end - start;
+    info->image.start = start;
+    info->image.len = end - start;
 
     info->load = kernel_zimage_load;
 
@@ -403,7 +403,7 @@ static int __init kernel_zimage32_probe(struct kernel_info *info,
     return 0;
 }
 
-int __init kernel_zimage_probe(struct kernel_info *info, paddr_t addr,
+int __init kernel_image_probe(struct kernel_info *info, paddr_t addr,
                                paddr_t size)
 {
     int rc;
diff --git a/xen/common/device-tree/kernel.c b/xen/common/device-tree/kernel.c
index 28096121a52d..cfa27464f0fc 100644
--- a/xen/common/device-tree/kernel.c
+++ b/xen/common/device-tree/kernel.c
@@ -235,7 +235,7 @@ int __init kernel_probe(struct kernel_info *info,
     if ( rc && rc != -EINVAL )
         return rc;
 
-    rc = kernel_zimage_probe(info, mod->start, mod->size);
+    rc = kernel_image_probe(info, mod->start, mod->size);
 
     return rc;
 }
diff --git a/xen/include/xen/fdt-kernel.h b/xen/include/xen/fdt-kernel.h
index 33a60597bb4d..2af3bd5f0722 100644
--- a/xen/include/xen/fdt-kernel.h
+++ b/xen/include/xen/fdt-kernel.h
@@ -56,7 +56,7 @@ struct kernel_info {
             paddr_t text_offset; /* 64-bit Image only */
 #endif
             paddr_t start; /* Must be 0 for 64-bit Image */
-        } zimage;
+        } image;
     };
 
 #if __has_include(<asm/kernel.h>)
@@ -122,7 +122,7 @@ void kernel_load(struct kernel_info *info);
 
 int kernel_decompress(struct boot_module *mod, uint32_t offset);
 
-int kernel_zimage_probe(struct kernel_info *info, paddr_t addr, paddr_t size);
+int kernel_image_probe(struct kernel_info *info, paddr_t addr, paddr_t size);
 
 /*
  * uImage isn't really used nowadays thereby leave kernel_uimage_probe()
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 16:31:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 16:31:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259458.1552780 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4iBG-0006j9-H2; Mon, 23 Mar 2026 16:31:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259458.1552780; Mon, 23 Mar 2026 16: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 1w4iBG-0006iy-DZ; Mon, 23 Mar 2026 16:31:06 +0000
Received: by outflank-mailman (input) for mailman id 1259458;
 Mon, 23 Mar 2026 16:31:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <oleksii.kurochko@gmail.com>) id 1w4iBF-0006dN-5M
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 16:31:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4iBC-005uwX-VW
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 17:31:04 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69c16ab9-e002-0a2a0a5209dd-0a2a45089f86-26
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 17:31:04 +0100
Received: from [209.85.208.49] (helo=mail-ed1-f49.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69c16ac8-1950-0a2a45080019-d155d031c55d-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 17:31:04 +0100
Received: by mail-ed1-f49.google.com with SMTP id
 4fb4d7f45d1cf-668d70fabc4so918666a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 09:31:04 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f8be14sm536248166b.17.2026.03.23.09.30.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 23 Mar 2026 09:30:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20230601 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1774283464; x=1774888264; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1r0zN6nVpndBbZj2EAngA6PIoeO7gCPLDD4SqQQvZ3o=;
        b=jqKHXS6HrPhdC9i/U5gPSuFSfO7HIaO8bY2w5nFxVk5ey3Dmti5UGPzhDBKiEH8qck
         U7YaYJaywuGg8dBpuY62o/JTI2mGGf13i/dVlAkOnhCyrUfqpDeelg/gOU1sFXqgf78h
         fGT2Kpz33UAw7rnffg7ZT/nl4hSgfQHA6rC0388RReaqEn9u3iTg1BUh4tULPGeBLdiZ
         2BBS/O+XCnAIyypuZy68bV9PQKnQ17flTrXBJBDnE6xEQKHZ+S/d8H+HDLc4Uv5WrK2h
         qkVAUkqJrJ83xO/kvaGl53nafBaAKHrm0b4gC4KxCXvmVjy3H2Ba11s5/VjGDGCPitkT
         6iYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774283464; x=1774888264;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=1r0zN6nVpndBbZj2EAngA6PIoeO7gCPLDD4SqQQvZ3o=;
        b=DmDBODJvJy6wu7e9ree5w/PXJZDw6EkZ4b4emkuJihM/T5N10EZt/ur2GKWLZRuSlA
         Ge34y+QWzjAP8NGTYIIsgC4/9aIZtAidUFKnu2qnGa7QbxbVa+zuro2BOGXlfoMLbi75
         m7agUIiz1I7s2k0JNlSKwmaNviqe6T7QkUq5f4p36fHYMLuVIqzPDXmhaqtX2yoRTroz
         MV74ZZcj1uSGVzjRcySFFuF2ldf0Mxiuyn57FjXlsrRviLa/DfLDPt+IExJBngCT0OP9
         BcTtKKSAxdiK77Nd+ifaIPaH5NTcU5t1dpvOregTvz8UTKs0p6OUFOdSXYJpR8ly9ww2
         SH5Q==
X-Gm-Message-State: AOJu0Yy8m0GA9Qt4GBpHnRDmvL93x5dfKP7oR0o59+9kujvitWV09WXW
	VAr3kYGJlD2z/7YITLu+alAXyTpY/ZKHSXYsSJiO6Ip0u7ItC+nlsUACbop81Q==
X-Gm-Gg: ATEYQzxgBrOS+8nJbnkEsHSmrWUcm3E55TaXVJX8MdcKNQJZQAbnWLX6lrLq3CHbVBl
	qChkS1bz4G3L3W77cPXuzDrfs7QTYPbmPsUKbwYRLY7C13H9O+8FVzazBNUz4kWFice0waoBhOP
	NjwZxitXpqhfJ91mK7JV0Nf/pLzZDNDZfwTF1Pn8qiK7/uzbrzXKSfNVLM+uED/T2FC3fCaSe5+
	539m7eBX75xFe2ehY8X3KrTo6hivSGU+RpllOOsO9jN+LhL1cvc2efGQzvON9LXkOlzVx+Dcu0p
	1uSeA+7KeY3iWauJdb3mEHIum3g83/v3MfEwnQgTQ7cMdE3F37PSQRPcD676+gNyeFbo2VMfUlu
	VkOkR396dadF2p0qjnyHTNR0erJeso5yphVk1XVnv7HUFdYPQK5Gt8+vf+WCkBuqpR7ESMARWb5
	6NcKuQFKMeJ1ml86gq8s8l3xy3vVzKX/jbFqNM7KnW0P4RyIaMhla08RZrYXHbSO+mgQ==
X-Received: by 2002:a17:907:7fa3:b0:b98:4799:e6de with SMTP id a640c23a62f3a-b984799e8afmr731143366b.48.1774283463418;
        Mon, 23 Mar 2026 09:31:03 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 05/11] xen/riscv: add kernel loading support
Date: Mon, 23 Mar 2026 17:29:46 +0100
Message-ID: <1688c6e0e616b2d1bc1a9050d66f007e0e65d3b2.1774281309.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1774281309.git.oleksii.kurochko@gmail.com>
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1774283464-E3A9B726-99E1AC7C/0/0
X-purgate-type: clean
X-purgate-size: 7282

Introduce support for loading a Linux kernel Image (its compressed
version) on RISC-V.

kernel_image_load() and place_modules() currently call panic() on
failure rather than returning an error. This is because the common
kernel_load() in common/device-tree/kernel.c does not expect a
return code. Handling errors gracefully would require a separate
refactor.

The implementation is based on the Xen Arm kernel loading code.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - s/zimage/image as RISC-V doesn't support zImages, only Image and
   Image.{gz,...}.
 - Update the commit message.
---
 xen/arch/riscv/Makefile             |   1 +
 xen/arch/riscv/include/asm/config.h |  13 +++
 xen/arch/riscv/kernel.c             | 158 ++++++++++++++++++++++++++++
 3 files changed, 172 insertions(+)
 create mode 100644 xen/arch/riscv/kernel.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 6d3c822409b8..d90afc7ad23f 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -8,6 +8,7 @@ obj-y += guestcopy.o
 obj-y += imsic.o
 obj-y += intc.o
 obj-y += irq.o
+obj-y += kernel.o
 obj-y += mm.o
 obj-y += p2m.o
 obj-y += paging.o
diff --git a/xen/arch/riscv/include/asm/config.h b/xen/arch/riscv/include/asm/config.h
index 0613de008b13..fd69057826e1 100644
--- a/xen/arch/riscv/include/asm/config.h
+++ b/xen/arch/riscv/include/asm/config.h
@@ -151,6 +151,19 @@
 extern unsigned long phys_offset; /* = load_start - XEN_VIRT_START */
 #endif
 
+/*
+ * KERNEL_LOAD_ADDR_ALIGNMENT is defined based on paragraph of
+ * "Kernel location" of boot.rst:
+ * https://docs.kernel.org/arch/riscv/boot.html#kernel-location
+ */
+#if defined(CONFIG_RISCV_32)
+#define KERNEL_LOAD_ADDR_ALIGNMENT MB(4)
+#elif defined(CONFIG_RISCV_64)
+#define KERNEL_LOAD_ADDR_ALIGNMENT MB(2)
+#else
+#error "Define KERNEL_LOAD_ADDR_ALIGNMENT"
+#endif
+
 #endif /* ASM__RISCV__CONFIG_H */
 /*
  * Local variables:
diff --git a/xen/arch/riscv/kernel.c b/xen/arch/riscv/kernel.c
new file mode 100644
index 000000000000..be5b17dc22c3
--- /dev/null
+++ b/xen/arch/riscv/kernel.c
@@ -0,0 +1,158 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/bug.h>
+#include <xen/compiler.h>
+#include <xen/errno.h>
+#include <xen/fdt-kernel.h>
+#include <xen/guest_access.h>
+#include <xen/init.h>
+#include <xen/libfdt/libfdt.h>
+#include <xen/mm.h>
+#include <xen/types.h>
+#include <xen/vmap.h>
+
+#include <asm/setup.h>
+
+#define IMAGE64_MAGIC_V2 0x05435352 /* Magic number 2, le, "RSC\x05" */
+
+static void __init place_modules(struct kernel_info *info, paddr_t kernbase,
+                                 paddr_t kernend)
+{
+    const struct boot_module *mod = info->bd.initrd;
+
+    const paddr_t initrd_len = ROUNDUP(mod ? mod->size : 0, MB(2));
+    const paddr_t dtb_len = ROUNDUP(fdt_totalsize(info->fdt), MB(2));
+    const paddr_t modsize = initrd_len + dtb_len;
+
+    const paddr_t ramsize = info->mem.bank[0].size;
+    const paddr_t kernsize = ROUNDUP(kernend, MB(2)) - kernbase;
+
+    if ( modsize + kernsize > ramsize )
+        panic("Not enough memory in the first bank for the kernel+dtb+initrd\n");
+
+    info->dtb_paddr = ROUNDUP(kernend, MB(2));
+
+    info->initrd_paddr = info->dtb_paddr + dtb_len;
+}
+
+static paddr_t __init kernel_image_place(struct kernel_info *info)
+{
+    paddr_t load_addr;
+
+    /*
+     * At the moment, RISC-V's Linux kernel should be always position
+     * independent based on "Per-MMU execution" of boot.rst:
+     *   https://docs.kernel.org/arch/riscv/boot.html#pre-mmu-execution
+     *
+     * But just for the case when RISC-V's Linux kernel isn't position
+     * independent it is needed to take load address from
+     * info->image.start.
+     *
+     * If `start` is zero, the Image is position independent. */
+    if ( likely(!info->image.start) )
+        /*
+         * According to boot.rst kernel load address should be properly
+         * aligned:
+         *   https://docs.kernel.org/arch/riscv/boot.html#kernel-location
+         */
+        load_addr = ROUNDUP(info->mem.bank[0].start, KERNEL_LOAD_ADDR_ALIGNMENT);
+    else
+        load_addr = info->image.start;
+
+    return load_addr;
+}
+
+static void __init kernel_image_load(struct kernel_info *info)
+{
+    int rc;
+    paddr_t load_addr = kernel_image_place(info);
+    paddr_t paddr = info->image.kernel_addr;
+    paddr_t len = info->image.len;
+    void *kernel;
+
+    info->entry = load_addr;
+
+    place_modules(info, load_addr, load_addr + len);
+
+    printk("Loading Image from %"PRIpaddr" to %"PRIpaddr"-%"PRIpaddr"\n",
+            paddr, load_addr, load_addr + len);
+
+    kernel = ioremap_wc(paddr, len);
+
+    if ( !kernel )
+        panic("Unable to map kernel\n");
+
+    /* Move kernel to proper location in guest phys map */
+    rc = copy_to_guest_phys(info->bd.d, load_addr, kernel, len);
+
+    if ( rc )
+        panic("Unable to copy kernel to proper guest location\n");
+
+    iounmap(kernel);
+}
+
+/* Check if the image is a 64-bit Image */
+static int __init kernel_image64_probe(struct kernel_info *info,
+                                       paddr_t addr, paddr_t size)
+{
+    /* riscv/boot-image-header.rst */
+    struct {
+        u32 code0;		  /* Executable code */
+        u32 code1;		  /* Executable code */
+        u64 text_offset;  /* Image load offset, little endian */
+        u64 image_size;	  /* Effective Image size, little endian */
+        u64 flags;		  /* kernel flags, little endian */
+        u32 version;	  /* Version of this header */
+        u32 res1;		  /* Reserved */
+        u64 res2;		  /* Reserved */
+        u64 magic;        /* Deprecated: Magic number, little endian, "RISCV" */
+        u32 magic2;       /* Magic number 2, little endian, "RSC\x05" */
+        u32 res3;		  /* Reserved for PE COFF offset */
+    } image;
+    uint64_t start, end;
+
+    if ( size < sizeof(image) )
+        return -EINVAL;
+
+    copy_from_paddr(&image, addr, sizeof(image));
+
+    /* Magic v1 is deprecated and may be removed.  Only use v2 */
+    if ( image.magic2 != IMAGE64_MAGIC_V2 )
+        return -EINVAL;
+
+    /* Currently there is no length in the header, so just use the size */
+    start = 0;
+    end = size;
+
+    /*
+     * Given the above this check is a bit pointless, but leave it
+     * here in case someone adds a length field in the future.
+     */
+    if ( (end - start) > size )
+        return -EINVAL;
+
+    info->image.kernel_addr = addr;
+    info->image.len = end - start;
+    info->image.text_offset = image.text_offset;
+    info->image.start = 0;
+
+    info->load = kernel_image_load;
+
+    return 0;
+}
+
+int __init kernel_image_probe(struct kernel_info *info, paddr_t addr,
+                              paddr_t size)
+{
+    int rc;
+
+#ifdef CONFIG_RISCV_64
+    rc = kernel_image64_probe(info, addr, size);
+    if ( rc < 0 )
+        panic("Failed to probe kernel image\n");
+#else
+    panic("Only RISC-V 64 is supported\n");
+#endif
+
+    return rc;
+}
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 16:31:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 16:31:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259467.1552789 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4iBR-0007AM-SO; Mon, 23 Mar 2026 16:31:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259467.1552789; Mon, 23 Mar 2026 16:31:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4iBR-0007AF-Pb; Mon, 23 Mar 2026 16:31:17 +0000
Received: by outflank-mailman (input) for mailman id 1259467;
 Mon, 23 Mar 2026 16:31:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=n/J7=BX=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w4iBP-0005Bu-RA
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 16:31:15 +0000
Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com
 [209.85.208.42]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b57c5884-26d5-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Mar 2026 17:31:14 +0100 (CET)
Received: by mail-ed1-f42.google.com with SMTP id
 4fb4d7f45d1cf-668d70fabc4so918967a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 09:31:14 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f8be14sm536248166b.17.2026.03.23.09.31.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 23 Mar 2026 09:31:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b57c5884-26d5-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1774283473; x=1774888273; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2oiQiadx4Uzkzg4GkPGtpylDejjc26OKeIIBZzzhoMQ=;
        b=iu1ZTKd4IwRKr6sJvb1TgmxMfWaUCVfkeMp06T8bKnSxnhDGRCRZRW/xjvpFpcoSAe
         NSqzuNBYAmZIdlZiQAioZAxrX2JcaAxoiYUBsPHyhAEI42XtESnb4hkyUvMe+8y5qdLE
         5LHOLlOJIzxwv8e2Y1/164ZU0EtjNc/6oc83DdoBW4VPiyZnWmxOSFCaoB8/OAaJXb0s
         XdVDuOSrHfuFgiwOita+uf++aHy7scBWYV/doaZ5lY5KiMORTpA1Na2XIqFnG8P28FGG
         jvA9pRECVRjVXjdxwarBDexov0qW3QJ5EWDWQmUPuWgEDNcvcuCGvvL+pVESLisnV5H+
         F9zA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774283473; x=1774888273;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=2oiQiadx4Uzkzg4GkPGtpylDejjc26OKeIIBZzzhoMQ=;
        b=O4HyYlQbRKk129hAkjmwVYC7waWCZqPMmjsdI+fpSAnjDsBPKVBZokVZwlbVwInEgG
         3HMRebc+PApk7AleDq9eUQp10i/eS6uJcUT7lDDjYPXaZlakmCcrx1TnduAP1fs7ILDK
         /x8kTb3HjKSzQeWjn7TdiZaye7JHndQuALyvo8RVWR6j8N3D4dl4K+k+v7GgzoBebqAQ
         RvvEWmlJb3+PqDbLDWlKXO6g2sYc3RKIrtNZnfFXZFJf5FJ0GL0xEJ8Pz0HzEhDaSS2l
         F709u0hh4rCqDuupj76utxCFZ9GYb98ktDeLJ4QcJQHjfeng0MIghc/L/KzbTgApzKwZ
         mbUw==
X-Gm-Message-State: AOJu0YyV6D54uv/gZtqUZEh2qxpkXtjeCJRaN8pV063jwN2rg/BW1APK
	HZd5rkis+Jb/uwKBbFMjVoT+xuYrrWENzqBXlZ+GUDHco4wKERzP+K0bzPbgSA==
X-Gm-Gg: ATEYQzwLDv20xdNRRs9c5os/b2ALJRI/eXBfKkWvOrPhkvEjawrtnRf08Je4Aj1Cp8f
	wlCanmxIinccMSkZFpIaGUf7TriBhGIIwOQXl8MMrUZFyoAveUEZAMCvvZvMBh4uhRRRFoPwLzG
	MCSZVKPbWnFVSTUxLe4y74rvXpT8/w8J1H8qHOBkGIAHRV2VNXHOfN5X0hSmTd2NndTcdCmW5rF
	ZlsoX4FOq/2Gk7yMCIZInbUyKsMkqZReijY0BMl27jyoVbGddunOtHAKkY+mlYyEVkMNVc10GUQ
	TmeIdwidnoySxdcXuG9tOef8A96qxhk0+2PkafCVsuKqhun+kF04KNfU5m7WqfNx/UqYSt3mf5p
	Tr8xO7O9VB0U54YgGx/OBKg8OqiPHwNZHx0gjAQ16qZg6RS2SOCMH25xiJNnsChoS7dcRkJwTJe
	HVTIGmhjitFOPp5K/iCzu8ReOlCi3n2DtYjrqJAn7xYMQw1grrpxnu5K++4BNbgwsKpw==
X-Received: by 2002:a17:907:7ba2:b0:b98:4156:8787 with SMTP id a640c23a62f3a-b9841568882mr783750666b.49.1774283473196;
        Mon, 23 Mar 2026 09:31:13 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 06/11] xen: move declaration of fw_unreserved_regions() to common header
Date: Mon, 23 Mar 2026 17:29:47 +0100
Message-ID: <7e6cb7450372f17b00c1fd360ef1ef239a825c9e.1774281309.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1774281309.git.oleksii.kurochko@gmail.com>
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Since the implementation of fw_unreserved_regions() is in common code, move
its declaration to xen/bootinfo.h.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - Nothing changed. Only rebase.
---
 xen/arch/arm/include/asm/setup.h | 3 ---
 xen/include/xen/bootinfo.h       | 4 ++++
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
index 899e33925ca4..0d29b46ea52b 100644
--- a/xen/arch/arm/include/asm/setup.h
+++ b/xen/arch/arm/include/asm/setup.h
@@ -43,9 +43,6 @@ int acpi_make_efi_nodes(void *fdt, struct membank tbl_add[]);
 void create_dom0(void);
 
 void discard_initial_modules(void);
-void fw_unreserved_regions(paddr_t s, paddr_t e,
-                           void (*cb)(paddr_t ps, paddr_t pe),
-                           unsigned int first);
 
 void init_pdx(void);
 void setup_mm(void);
diff --git a/xen/include/xen/bootinfo.h b/xen/include/xen/bootinfo.h
index f834f1957155..dbf492c2e36e 100644
--- a/xen/include/xen/bootinfo.h
+++ b/xen/include/xen/bootinfo.h
@@ -210,4 +210,8 @@ static inline struct membanks *membanks_xzalloc(unsigned int nr,
     return banks;
 }
 
+void fw_unreserved_regions(paddr_t s, paddr_t e,
+                           void (*cb)(paddr_t ps, paddr_t pe),
+                           unsigned int first);
+
 #endif /* XEN_BOOTINFO_H */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 16:31:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 16:31:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259474.1552798 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4iBa-0007bF-4M; Mon, 23 Mar 2026 16:31:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259474.1552798; Mon, 23 Mar 2026 16: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 1w4iBZ-0007b6-Vt; Mon, 23 Mar 2026 16:31:25 +0000
Received: by outflank-mailman (input) for mailman id 1259474;
 Mon, 23 Mar 2026 16: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=n/J7=BX=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w4iBY-00079z-Pr
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 16:31:24 +0000
Received: from mail-ej1-f45.google.com (mail-ej1-f45.google.com
 [209.85.218.45]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bb69298a-26d5-11f1-b166-2bf370ae4941;
 Mon, 23 Mar 2026 17:31:24 +0100 (CET)
Received: by mail-ej1-f45.google.com with SMTP id
 a640c23a62f3a-b98133bdc4bso522446566b.0
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 09:31:24 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f8be14sm536248166b.17.2026.03.23.09.31.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 23 Mar 2026 09:31:18 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bb69298a-26d5-11f1-b166-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1774283483; x=1774888283; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OUX7GrhRziDvMmFWaLMh2GDPwrEhtXaG/vycDO8shAw=;
        b=dvBaEioFdDUTIS0NKusO4vriSn6gNLixUj0H7cm69Re7q8jIZRkgABDHF9Y7HrzZYH
         vFOjjl6h8ltr+ux3d//RuTt5lFWph0dbo585CvMmv5EOOUU0I4VZIO3H+CrJDysucJUq
         VFIkgz2Gor7wJ/YVIicyv3ZcQbPBJRxow8VFE3YvyApvV0p5lScwG2vuSFcTPPpPXuju
         mXrZwoBTV2ThJtBD+pZppgF07Z3SlN1B/TE9cDImhVOnqS2nyFm248aHxDWLp741mJEd
         mwKZR4pEIfjZ3YmBkQbdnbD185FaeX/8ysFRuzDzGRezadhd0RS3xhjMCMwfokZj/OHI
         0VuA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774283483; x=1774888283;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=OUX7GrhRziDvMmFWaLMh2GDPwrEhtXaG/vycDO8shAw=;
        b=Q2vsJo8ZKxJCt6JfaSvaNXmE7KfokSHm11sbXOJnMvGf9vBDgjcSa2SqoQU9ISPRsE
         JGCkXXJN5UV9mfLaqAIE7O6iv4190PIV1lgQCu7NM+8roFjOHvz6LGVI8jrqjArSlE++
         uXBPKLuCY5/UEQvNPo8MxSvhDQDZD3bq9vjemdDlGXmPT50/vNqj4C/6wXNJ5GT5poRt
         KJdYPxWkbbFJHg1dLLDHtp5JFQe9shNiTZWU/WKh2YNyq7opMLceo4CeIvF6BFYdS79q
         avB5zEJ37QkzLtM9qFafGVHLbJMebstuoKeX8yW5lT86omYHgv8hSc7RnNt37w7oLNMb
         EW3g==
X-Gm-Message-State: AOJu0YyfPKFe3n5lo4efgOsXg16mKw5OWNeV9Z3Fhe14vsJsWRHMqDkS
	IQGpEmntJcgumg8QclgpJtfqwUi6n0jaLqMt2szpAknwFaLoLwrIscV9yA071Q==
X-Gm-Gg: ATEYQzyCVB8/D19vg6PXNVtF23Fg38qGaiMh0z82pJhBDpPxsfZy5PDNlrODU/hFNP8
	JyL3Ru3a5244BPV42KtiBFux+Cyr/GkPfD+TRxJew2JuQBWvobhzfCrIZFHWSuInROojJPMyDBM
	O0D3TApT0dKTsNvgcDZWuRpzBRq++l+CNQnT1EeItnn5Mub239fLyRxBwj0g9P8xsYoHrAJpJIR
	8gDpFTHR7NSTMjbt1G8tB5HMZA7K8t/SH6tXbUe4UmouqHRyH6TzlQIQbjoSaqAsDk56BzoNPJn
	WItntBRE+z/UjNICcmd2wI7qwssri3+pgH8sviDPUDBy5WoA7Wrt3JmxP1gk73Mfk7aI/XHeZEl
	TPh12hutrV9ZmBUHUtFiHGhtvWZjHpyoIyJs8k5e2ML/cTf4yQCc4NuEVr7mrYmb6NRxZ5105rE
	tzHDvTbAYnXLm6ZhQLUQFagvHi/eegVlnHWUZWBJOwUqq7uX1X7lAEP4NhAOixMRe4YA==
X-Received: by 2002:a17:906:5643:b0:b98:132e:ca97 with SMTP id a640c23a62f3a-b982f37d4damr665981666b.47.1774283483001;
        Mon, 23 Mar 2026 09:31:23 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 07/11] xen: move domain_use_host_layout() to common code
Date: Mon, 23 Mar 2026 17:29:48 +0100
Message-ID: <533d01db2b36b8357cd87e99a64a6e66dbdd1db4.1774281309.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1774281309.git.oleksii.kurochko@gmail.com>
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

domain_use_host_layout() is not really architecture-specific, so move it
from the Arm header to the common header xen/domain.h and provide a common
implementation in xen/common/domain.c. domain_use_host_layout() potentially
is needed for x86 [1].

Turn the macro into a function to avoid header dependency issues.  In
particular, the implementation depends on paging_mode_translate(), and
including xen/paging.h from xen/domain.h would introduce circular
dependencies via xen/sched.h which will lead to compilation errors as
implicit declaration of struct vcpu, or struct domain, or similar things
declared in xen/sched.h.

Adjust the implementation to take paging_mode_translate() into account
so it works correctly for all architectures, including x86. Some extra
details about implementation [2] and [3].

Also, inclusion of asm/p2m.h is dropped as xen/paging.h already includes
it.

[1] https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2602161038120.359097@ubuntu-linux-20-04-desktop/
[2] https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2602271742400.3148344@ubuntu-linux-20-04-desktop/
[3] https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2602271750190.3148344@ubuntu-linux-20-04-desktop/

Suggested-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - Drop ifdef around defintion of domain_use_host_layout() as it
   was suggested generic version. It could be returned back when
   the real use case for it will appear.
 - Add Suggested-by: and update the commit message.
 - Make domain_use_host_layout() function instead of macros to
   avoid ciclular header dependecies. Look at more details in
   the commit message.
---
 xen/arch/arm/include/asm/domain.h | 14 --------------
 xen/common/domain.c               |  8 +++++++-
 xen/include/xen/domain.h          | 16 ++++++++++++++++
 3 files changed, 23 insertions(+), 15 deletions(-)

diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index 758ad807e461..1a04fe658c97 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -29,20 +29,6 @@ enum domain_type {
 #define is_64bit_domain(d) (0)
 #endif
 
-/*
- * Is the domain using the host memory layout?
- *
- * Direct-mapped domain will always have the RAM mapped with GFN == MFN.
- * To avoid any trouble finding space, it is easier to force using the
- * host memory layout.
- *
- * The hardware domain will use the host layout regardless of
- * direct-mapped because some OS may rely on a specific address ranges
- * for the devices.
- */
-#define domain_use_host_layout(d) (is_domain_direct_mapped(d) || \
-                                   is_hardware_domain(d))
-
 struct vtimer {
     struct vcpu *v;
     int irq;
diff --git a/xen/common/domain.c b/xen/common/domain.c
index ab910fcf9306..87a6a17575f9 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/paging.h>
 #include <xen/percpu.h>
 #include <xen/multicall.h>
 #include <xen/rcupdate.h>
@@ -35,7 +36,6 @@
 #include <xen/argo.h>
 #include <xen/llc-coloring.h>
 #include <xen/xvmalloc.h>
-#include <asm/p2m.h>
 #include <asm/processor.h>
 #include <public/sched.h>
 #include <public/sysctl.h>
@@ -2544,6 +2544,12 @@ void thaw_domains(void)
 
 #endif /* CONFIG_SYSTEM_SUSPEND */
 
+bool domain_use_host_layout(struct domain *d)
+{
+    return is_domain_direct_mapped(d) ||
+           (paging_mode_translate(d) && is_hardware_domain(d));
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 93c0fd00c1d7..68fb1acd4083 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -62,6 +62,22 @@ void domid_free(domid_t domid);
 #define is_domain_direct_mapped(d) ((d)->cdf & CDF_directmap)
 #define is_domain_using_staticmem(d) ((d)->cdf & CDF_staticmem)
 
+/*
+ * Is the auto-translated domain using the host memory layout?
+ *
+ * domain_use_host_layout() is always False for PV guests.
+ *
+ * Direct-mapped domains (autotranslated domains with memory allocated
+ * contiguously and mapped 1:1 so that GFN == MFN) are always using the
+ * host memory layout to avoid address clashes.
+ *
+ * The hardware domain will use the host layout (regardless of
+ * direct-mapped) because some OS may rely on a specific address ranges
+ * for the devices. PV Dom0, like any other PV guests, has
+ * domain_use_host_layout() returning False.
+ */
+bool domain_use_host_layout(struct domain *d);
+
 /*
  * Arch-specifics.
  */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 16:31:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 16:31:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259480.1552807 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4iBi-000849-B8; Mon, 23 Mar 2026 16:31:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259480.1552807; Mon, 23 Mar 2026 16:31:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4iBi-00083t-7n; Mon, 23 Mar 2026 16:31:34 +0000
Received: by outflank-mailman (input) for mailman id 1259480;
 Mon, 23 Mar 2026 16:31: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=n/J7=BX=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w4iBh-0005Bu-Fk
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 16:31:33 +0000
Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com
 [209.85.218.41]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bfbc9c21-26d5-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Mar 2026 17:31:31 +0100 (CET)
Received: by mail-ej1-f41.google.com with SMTP id
 a640c23a62f3a-b97ba4c2be2so55769266b.1
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 09:31:31 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f8be14sm536248166b.17.2026.03.23.09.31.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 23 Mar 2026 09:31:24 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bfbc9c21-26d5-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774283490; x=1774888290; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=r1qaV10ihMFV1jFtGW95X77joTg/NVVxfQDdtdd2358=;
        b=pVjJ6K/twCoz8DZmff6UFa/z+pgdMFXpITKbM7R9D35D74XzxbC8UpcXJG30WlzvdR
         h9SFLNoO+xjIIuSJSzRjhgSg7eWlZaUkZ5JtLPuwfj7wSNYwNNioGYb/3hobM7+ILzqo
         +2R5wn3ayQK+OIhxgoRYfytvSkyfXF6hk0Yq9Gdd/MAC3SCSQPL0EX0EBa1Zjcj2KTXe
         jpFiQsBvnd5rKD6TKybfCRe7FNssWOJZa5WrSTLsWty/mBbt03PRPc+j1gvzCajNNg8c
         DJNI7bF8p4RkZqJV8Q5CtJhTwDaCXwJbJ86sLwu3U/D+RFf0uI4GN+pijC2Vk+3qePFG
         edCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774283490; x=1774888290;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=r1qaV10ihMFV1jFtGW95X77joTg/NVVxfQDdtdd2358=;
        b=aZOr5MKFWSHj0tGD3OQQdGpMlFQoXuPzhEbbes68DVlja7Oe1U4M5FE+IV3DIpoLJ5
         mzfzgaBA4sZDHfvnALCD1PYBS22aTIbA3xY63jVlAdyfadbwx+FAEX4TB8U4xSC4CgDd
         QqmMEpnDXV1ulWlf1vbaQoyS4uiDQiQVMWArUBJZnC+a6LaxRlfbYmx/sJZB8ovtsYPz
         uL5fyMhikVb9R01EDYoQ0qA/t4hmCJxLvIsoKj/uVqORUKtNKxguvUK6s0SNke4v95jw
         6VXj/B3tclRuar7xKrGMYns6Z4/DrgBd//sBoONUPGuFSTGJKNTvuqGNem05bGIbvY/N
         4/Tw==
X-Gm-Message-State: AOJu0Yx+SM05TUkSu9VSb76xMMFXusQsbia7T01XQGMbL5r9oxdUYRGc
	SsE+KqI9D5nJgU+xmxjKV/RCXGnG+zAnrHGCtTI2K17n2wyGZXebizjaMoiC8w==
X-Gm-Gg: ATEYQzzMixmuGf4OxOLaBNh0Fzb1ljoWcnPEX1pPTMa8IDgcUtVJu41c4Qn7Ne03HdL
	XiRx6luMSOMLvXyULvMA9U7q9n+PLHL9StCe5Eh4yQX17Uu8Rpm9WY4xsXYMR3sEcWw0dv1Ax5f
	35e+wvuT89Tr9Q/OnxtC+UB8nL1pFH+x6ywPMmnDjUBBGKFSIboMy4Y6svlvMZxzV+jMNKCbWuA
	KGm0C0J8Mk+l5O6qhucZgmEX5Z/No2iir+dhSvpJIBrqQmS/r+59eMB8AZ+Z7PniyAo+/S5Tb4T
	B5wFr1mYdjuwj6Mg1CiNjx2uZY6e1QCRNF2tuxLU1NuOfpvzkWWrbkXJNA+woZw7gjaEkU9szZz
	6V4ECi96JXolBmo042RYM8bQ9qxaOyQ8/6WFNW3jEhdt6eO149unAByxL1r8zooGvvHrUuYSMEe
	eo5TKzGlwLyuuwkk8OowUrCl7++CDKj4YY1PDVDeN9BHm9z4pU9/VMoyMEIlMXGB7ZwQ==
X-Received: by 2002:a17:907:3f20:b0:b98:53d5:9b20 with SMTP id a640c23a62f3a-b9853d5b03dmr517013766b.12.1774283490285;
        Mon, 23 Mar 2026 09:31:30 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Rahul Singh <rahul.singh@arm.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2 08/11] xen: rename p2m_ipa_bits to p2m_gpa_bits
Date: Mon, 23 Mar 2026 17:29:49 +0100
Message-ID: <05365c2b70147f30fd97a2fe5b7ab66d773c0f32.1774281309.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1774281309.git.oleksii.kurochko@gmail.com>
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The IPA terminology is Arm-specific, so rename p2m_ipa_bits to
p2m_gpa_bits to use architecture-neutral naming.

No functional changes.

Reported-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v2:
 - New patch
---
 xen/arch/arm/domain_build.c              | 12 ++++++------
 xen/arch/arm/domctl.c                    |  2 +-
 xen/arch/arm/include/asm/p2m.h           |  4 ++--
 xen/arch/arm/mmu/p2m.c                   | 18 +++++++++---------
 xen/arch/arm/p2m.c                       |  6 +++---
 xen/common/device-tree/domain-build.c    |  2 +-
 xen/drivers/passthrough/arm/ipmmu-vmsa.c |  4 ++--
 xen/drivers/passthrough/arm/smmu-v3.c    |  2 +-
 xen/drivers/passthrough/arm/smmu.c       |  2 +-
 9 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index e8795745ddc7..38ab41ec6b19 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -744,7 +744,7 @@ static int __init find_memory_holes(const struct kernel_info *kinfo,
 
     /* Start with maximum possible addressable physical memory range */
     start = 0;
-    end = (1ULL << p2m_ipa_bits) - 1;
+    end = (1ULL << p2m_gpa_bits) - 1;
     res = rangeset_add_range(mem_holes, PFN_DOWN(start), PFN_DOWN(end));
     if ( res )
     {
@@ -815,7 +815,7 @@ static int __init find_memory_holes(const struct kernel_info *kinfo,
     }
 
     start = 0;
-    end = (1ULL << p2m_ipa_bits) - 1;
+    end = (1ULL << p2m_gpa_bits) - 1;
     res = rangeset_report_ranges(mem_holes, PFN_DOWN(start), PFN_DOWN(end),
                                  add_ext_regions,  ext_regions);
     if ( res )
@@ -849,7 +849,7 @@ static int __init find_domU_holes(const struct kernel_info *kinfo,
 
         start = ROUNDUP(bankbase[i] + kinfo_mem->bank[i].size, SZ_2M);
 
-        bankend = ~0ULL >> (64 - p2m_ipa_bits);
+        bankend = ~0ULL >> (64 - p2m_gpa_bits);
         bankend = min(bankend, bankbase[i] + banksize[i] - 1);
 
         if ( bankend > start )
@@ -881,7 +881,7 @@ static int __init find_domU_holes(const struct kernel_info *kinfo,
     }
 
     res = rangeset_report_ranges(mem_holes, 0,
-                                 PFN_DOWN((1ULL << p2m_ipa_bits) - 1),
+                                 PFN_DOWN((1ULL << p2m_gpa_bits) - 1),
                                  add_ext_regions, ext_regions);
     if ( res )
         ext_regions->nr_banks = 0;
@@ -907,7 +907,7 @@ static unsigned int __init count_ranges(struct rangeset *r)
 {
     unsigned int cnt = 0;
 
-    (void) rangeset_report_ranges(r, 0, PFN_DOWN((1ULL << p2m_ipa_bits) - 1),
+    (void) rangeset_report_ranges(r, 0, PFN_DOWN((1ULL << p2m_gpa_bits) - 1),
                                   count, &cnt);
 
     return cnt;
@@ -972,7 +972,7 @@ static int __init find_host_extended_regions(const struct kernel_info *kinfo,
         }
 
         rangeset_report_ranges(kinfo->xen_reg_assigned, 0,
-                               PFN_DOWN((1ULL << p2m_ipa_bits) - 1),
+                               PFN_DOWN((1ULL << p2m_gpa_bits) - 1),
                                rangeset_to_membank, xen_reg);
     }
 
diff --git a/xen/arch/arm/domctl.c b/xen/arch/arm/domctl.c
index ad914c915f81..d8db595ab348 100644
--- a/xen/arch/arm/domctl.c
+++ b/xen/arch/arm/domctl.c
@@ -23,7 +23,7 @@ void arch_get_domain_info(const struct domain *d,
     /* All ARM domains use hardware assisted paging. */
     info->flags |= XEN_DOMINF_hap;
 
-    info->gpaddr_bits = p2m_ipa_bits;
+    info->gpaddr_bits = p2m_gpa_bits;
 }
 
 static int handle_vuart_init(struct domain *d, 
diff --git a/xen/arch/arm/include/asm/p2m.h b/xen/arch/arm/include/asm/p2m.h
index 010ce8c9ebbd..b15b57aa32bd 100644
--- a/xen/arch/arm/include/asm/p2m.h
+++ b/xen/arch/arm/include/asm/p2m.h
@@ -12,7 +12,7 @@
 #define paddr_bits PADDR_BITS
 
 /* Holds the bit size of IPAs in p2m tables.  */
-extern unsigned int p2m_ipa_bits;
+extern unsigned int p2m_gpa_bits;
 
 #define MAX_VMID_8_BIT  (1UL << 8)
 #define MAX_VMID_16_BIT (1UL << 16)
@@ -186,7 +186,7 @@ static inline bool arch_acquire_resource_check(struct domain *d)
 }
 
 /*
- * Helper to restrict "p2m_ipa_bits" according the external entity
+ * Helper to restrict "p2m_gpa_bits" according the external entity
  * (e.g. IOMMU) requirements.
  *
  * Each corresponding driver should report the maximum IPA bits
diff --git a/xen/arch/arm/mmu/p2m.c b/xen/arch/arm/mmu/p2m.c
index 51abf3504fcf..08871c61b812 100644
--- a/xen/arch/arm/mmu/p2m.c
+++ b/xen/arch/arm/mmu/p2m.c
@@ -1734,11 +1734,11 @@ void __init setup_virt_paging(void)
     } t0sz_32;
 #else
     /*
-     * Restrict "p2m_ipa_bits" if needed. As P2M table is always configured
+     * Restrict "p2m_gpa_bits" if needed. As P2M table is always configured
      * with IPA bits == PA bits, compare against "pabits".
      */
-    if ( pa_range_info[system_cpuinfo.mm64.pa_range].pabits < p2m_ipa_bits )
-        p2m_ipa_bits = pa_range_info[system_cpuinfo.mm64.pa_range].pabits;
+    if ( pa_range_info[system_cpuinfo.mm64.pa_range].pabits < p2m_gpa_bits )
+        p2m_gpa_bits = pa_range_info[system_cpuinfo.mm64.pa_range].pabits;
 
     /*
      * cpu info sanitization made sure we support 16bits VMID only if all
@@ -1748,10 +1748,10 @@ void __init setup_virt_paging(void)
         max_vmid = MAX_VMID_16_BIT;
 #endif
 
-    /* Choose suitable "pa_range" according to the resulted "p2m_ipa_bits". */
+    /* Choose suitable "pa_range" according to the resulted "p2m_gpa_bits". */
     for ( i = 0; i < ARRAY_SIZE(pa_range_info); i++ )
     {
-        if ( p2m_ipa_bits == pa_range_info[i].pabits )
+        if ( p2m_gpa_bits == pa_range_info[i].pabits )
         {
             pa_range = i;
             break;
@@ -1760,7 +1760,7 @@ void __init setup_virt_paging(void)
 
     /* Check if we found the associated entry in the array */
     if ( pa_range >= ARRAY_SIZE(pa_range_info) || !pa_range_info[pa_range].pabits )
-        panic("%u-bit P2M is not supported\n", p2m_ipa_bits);
+        panic("%u-bit P2M is not supported\n", p2m_gpa_bits);
 
 #ifdef CONFIG_ARM_64
     val |= VTCR_PS(pa_range);
@@ -1778,14 +1778,14 @@ void __init setup_virt_paging(void)
     p2m_root_level = 2 - pa_range_info[pa_range].sl0;
 
 #ifdef CONFIG_ARM_64
-    p2m_ipa_bits = 64 - pa_range_info[pa_range].t0sz;
+    p2m_gpa_bits = 64 - pa_range_info[pa_range].t0sz;
 #else
     t0sz_32.val = pa_range_info[pa_range].t0sz;
-    p2m_ipa_bits = 32 - t0sz_32.val;
+    p2m_gpa_bits = 32 - t0sz_32.val;
 #endif
 
     printk("P2M: %d-bit IPA with %d-bit PA and %d-bit VMID\n",
-           p2m_ipa_bits,
+           p2m_gpa_bits,
            pa_range_info[pa_range].pabits,
            ( MAX_VMID == MAX_VMID_16_BIT ) ? 16 : 8);
 
diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
index fb03978a19af..5564e7d3c1db 100644
--- a/xen/arch/arm/p2m.c
+++ b/xen/arch/arm/p2m.c
@@ -19,7 +19,7 @@ unsigned int __read_mostly max_vmid = MAX_VMID_8_BIT;
  * Set to the maximum configured support for IPA bits, so the number of IPA bits can be
  * restricted by external entity (e.g. IOMMU).
  */
-unsigned int __read_mostly p2m_ipa_bits = PADDR_BITS;
+unsigned int __read_mostly p2m_gpa_bits = PADDR_BITS;
 
 /* Unlock the flush and do a P2M TLB flush if necessary */
 void p2m_write_unlock(struct p2m_domain *p2m)
@@ -603,8 +603,8 @@ void __init p2m_restrict_ipa_bits(unsigned int ipa_bits)
      * Calculate the minimum of the maximum IPA bits that any external entity
      * can support.
      */
-    if ( ipa_bits < p2m_ipa_bits )
-        p2m_ipa_bits = ipa_bits;
+    if ( ipa_bits < p2m_gpa_bits )
+        p2m_gpa_bits = ipa_bits;
 }
 
 /*
diff --git a/xen/common/device-tree/domain-build.c b/xen/common/device-tree/domain-build.c
index 6708c9dd66e6..362da1cae780 100644
--- a/xen/common/device-tree/domain-build.c
+++ b/xen/common/device-tree/domain-build.c
@@ -220,7 +220,7 @@ int __init find_unallocated_memory(const struct kernel_info *kinfo,
     }
 
     start = 0;
-    end = (1ULL << p2m_ipa_bits) - 1;
+    end = (1ULL << p2m_gpa_bits) - 1;
     res = rangeset_report_ranges(unalloc_mem, PFN_DOWN(start), PFN_DOWN(end),
                                  cb, free_regions);
     if ( res )
diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
index ea9fa9ddf3ce..e2b4c95dcc67 100644
--- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
+++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
@@ -575,11 +575,11 @@ static int ipmmu_domain_init_context(struct ipmmu_vmsa_domain *domain)
 
     /*
      * TTBCR
-     * We use long descriptors and allocate the whole "p2m_ipa_bits" IPA space
+     * We use long descriptors and allocate the whole "p2m_gpa_bits" IPA space
      * to TTBR0. Use 4KB page granule. Start page table walks at first level.
      * Always bypass stage 1 translation.
      */
-    tsz0 = (64 - p2m_ipa_bits) << IMTTBCR_TSZ0_SHIFT;
+    tsz0 = (64 - p2m_gpa_bits) << IMTTBCR_TSZ0_SHIFT;
     ipmmu_ctx_write_root(domain, IMTTBCR, IMTTBCR_EAE | IMTTBCR_PMB |
                          IMTTBCR_SL0_LVL_1 | tsz0);
 
diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthrough/arm/smmu-v3.c
index bf153227dbd9..9e86cd7b0ad0 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -1202,7 +1202,7 @@ static int arm_smmu_domain_finalise_s2(struct arm_smmu_domain *smmu_domain,
 		return -EINVAL;
 	}
 
-	vtcr->tsz = 64 - p2m_ipa_bits;
+	vtcr->tsz = 64 - p2m_gpa_bits;
 	vtcr->sl = 2 - P2M_ROOT_LEVEL;
 
 	arm_lpae_s2_cfg.vttbr  = page_to_maddr(smmu_domain->d->arch.p2m.root);
diff --git a/xen/drivers/passthrough/arm/smmu.c b/xen/drivers/passthrough/arm/smmu.c
index 22d306d0cb80..fa28fd7db79c 100644
--- a/xen/drivers/passthrough/arm/smmu.c
+++ b/xen/drivers/passthrough/arm/smmu.c
@@ -1276,7 +1276,7 @@ static void arm_smmu_init_context_bank(struct arm_smmu_domain *smmu_domain)
 			 * Xen: The IOMMU share the page-tables with the P2M
 			 * which may have restrict the size further.
 			 */
-			reg |= (64 - p2m_ipa_bits) << TTBCR_T0SZ_SHIFT;
+			reg |= (64 - p2m_gpa_bits) << TTBCR_T0SZ_SHIFT;
 
 			switch (smmu->s2_output_size) {
 			case 32:
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 16:31:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 16:31:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259487.1552815 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4iBp-0008VJ-Lf; Mon, 23 Mar 2026 16:31:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259487.1552815; Mon, 23 Mar 2026 16:31:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4iBp-0008VC-If; Mon, 23 Mar 2026 16:31:41 +0000
Received: by outflank-mailman (input) for mailman id 1259487;
 Mon, 23 Mar 2026 16:31:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <oleksii.kurochko@gmail.com>) id 1w4iBo-0008TZ-JI
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 16:31:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4iBm-005v6Z-De
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 17:31:39 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69c16ae6-5cb7-0a2a0a5109dd-0a2a4501b08a-14
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 17:31:39 +0100
Received: from [209.85.218.47] (helo=mail-ej1-f47.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69c16aeb-6400-0a2a45010019-d155da2fa404-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 17:31:39 +0100
Received: by mail-ej1-f47.google.com with SMTP id
 a640c23a62f3a-b93698bb57aso836110966b.0
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 09:31:39 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f8be14sm536248166b.17.2026.03.23.09.31.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 23 Mar 2026 09:31:32 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20230601 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1774283499; x=1774888299; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zE/rD5OgNgJkWO/wss6LPCSbET9QBlr+zsTkckbS38c=;
        b=VjRa8xur2kIBCZkDMDTb6+7pAb2SX5QydzqluAX+FFbmtyhsK4aEAxdiP1UvbTRx4X
         1eMTMRPIckMdn7SAzUltiG2g+wCQNCFfi+xsslcaWC/Pm9twr1KdiLGho5wkN92K/TSb
         s5Rmv3e8CsYGpydT2TlLLxHAts+b54ovntazA6BOVILMQkURH29tqV5LTXpaKf9YbaAd
         mM3e4X5HkThrdoJK0by6RLO/6tRhmmiv+YVQ1dqi+RcDT90kK173RdVQGkPhT2imk4tN
         gj2nQoTmjgfevy1mzJRFewchpU8zU1e9mTMAECV8daDNuKMpBKBeYpfDAqwBvqPipWbD
         ct4A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774283499; x=1774888299;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=zE/rD5OgNgJkWO/wss6LPCSbET9QBlr+zsTkckbS38c=;
        b=LbBg0vT4tk7aCk1Nhh++fkAEZYnLhSTJ+fQ9PPranJrR8qBwVndPd+wD3Hhwkq5Vtd
         XgX/4xuwLbY/qcakKttUZEmU7dncNnQr2v+2mjlHo3MhbQToo3h/Rxy0qQL7aB2Illfy
         7W2YCaGKUBFW30RAeJ/URM1ZWHbLvNBiyKNcbb0u0yRRSl5TgYCWF5K8HP2nmhhv9Aqq
         fGLXFXdxWxANeHAS0OmUpOrqXHT81zsT6/W+0H10FjerQC3D8fPsuvBbTck+T6Be48Nw
         jqGHBBIJ08ngysuovFgNrjW8nnDGR82C7TsU2sy2ySGaUxB0iHZ0OTf48PpnRxpJDtEb
         GlxA==
X-Gm-Message-State: AOJu0YzcTsFg1+o2Xv+oJpVx/NlMTJt02Jc4a9uaw/wBf3nNW+dQMMUK
	dfz9lYNTeXrLrsSNKsMZZ2osAEn1WwsDhQPdD6LSSmxALFTeys9GqdY3RDIDKQ==
X-Gm-Gg: ATEYQzwO6gLDIBiMnSwdRr6lIY2V6cUaGy4rBgxf2ts0LXrfBGG44vRI3FUpUZtYkpI
	jfKs//8UsekrnUi5mA+tQK0JdaNV3dsPV+sOISQOIFvdVMA7yXoXbXZKOiq1SYYVfsML3FPswi2
	M0fgKuk1fE34iMf43J5lHq+TIcT+9qnwWXHQsRPvv+jluxVcvm8vuL/Cqu08TWOSCMbbReXDnum
	7zcV/uZfl8JNT7KEWE+g3RbWBsBKYvBICwv1KL7ovJnbiySSuaIc1wItD9uLZHIjd5MdThbPGML
	ePyj5KUcc7FpWM9Sxg9nATNabqs0YtTZl0VvwaalWP3V5I/Upomxvs3vbJpZn06tZC92/8tHxmu
	rIRIXY1m2bVKo0jui7ri9qufpMA77K+wXINLCcAqtln1aAJ42J4tQzKu+VXNMaj2VEARjst2Xx+
	RMhC2yxhvIY3rb3F9/05An0hS+Zc6udeaUEUKWnbUGlL+oEBE5MYAtbQ9NG4wjsTH1rw==
X-Received: by 2002:a17:906:7947:b0:b98:cfa:f54e with SMTP id a640c23a62f3a-b988632193dmr17738966b.12.1774283498891;
        Mon, 23 Mar 2026 09:31:38 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 09/11] xen/riscv: introduce p2m_gpa_bits
Date: Mon, 23 Mar 2026 17:29:50 +0100
Message-ID: <775374eab7b9868b7cabe6c76fa1b7ac2f8466d8.1774281309.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1774281309.git.oleksii.kurochko@gmail.com>
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1774283499-8FEEADF3-39222399/0/0
X-purgate-type: clean
X-purgate-size: 4473

p2m_gpa_bits is used by common/device-tree/domain-build.c thereby when
CONFIG_DOMAIN_BUILD_HELPERS=y it is necessary to have p2m_gpa_bits properly
defined as it is going to be used to find unused regions.

Introduce default_gstage_mode to have ability to limit p2m_gpa_bits before
p2m_init() is being called as it will be too late.

Limit p2m_gpa_bits in guest_mm_init() as it could be that default G-stage
MMU mode uses less VA wide bits than IOMMU, so p2m_gpa_bits should be
restricted more so that dom0less code uses the correct GPA bits.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - New patch.
---
 xen/arch/riscv/include/asm/p2m.h | 10 ++++++++--
 xen/arch/riscv/p2m.c             | 34 ++++++++++++++++++++++++++++----
 2 files changed, 38 insertions(+), 6 deletions(-)

diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index 54ea67990f06..76b30af8dacb 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -32,10 +32,13 @@
  */
 #define P2M_LEVEL_ORDER(lvl) XEN_PT_LEVEL_ORDER(lvl)
 
-#define P2M_ROOT_EXTRA_BITS(p2m, lvl) (2 * ((lvl) == P2M_ROOT_LEVEL(p2m)))
+#define P2M_ROOT_EXTRA_BITS 2
+
+#define P2M_LEVEL_EXTRA_BITS(p2m, lvl) \
+    (P2M_ROOT_EXTRA_BITS * ((lvl) == P2M_ROOT_LEVEL(p2m)))
 
 #define P2M_PAGETABLE_ENTRIES(p2m, lvl) \
-    (BIT(PAGETABLE_ORDER + P2M_ROOT_EXTRA_BITS(p2m, lvl), UL))
+    (BIT(PAGETABLE_ORDER + P2M_LEVEL_EXTRA_BITS(p2m, lvl), UL))
 
 #define P2M_TABLE_OFFSET(p2m, lvl) (P2M_PAGETABLE_ENTRIES(p2m, lvl) - 1UL)
 
@@ -44,6 +47,9 @@
 #define P2M_LEVEL_MASK(p2m, lvl) \
     (P2M_TABLE_OFFSET(p2m, lvl) << P2M_GFN_LEVEL_SHIFT(lvl))
 
+/* Holds the bit size of GPAs in p2m tables */
+extern unsigned int p2m_gpa_bits;
+
 #define paddr_bits PADDR_BITS
 
 /* Get host p2m table */
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 11beaeead5ac..cd682d6586c7 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -51,6 +51,24 @@ static struct gstage_mode_desc __ro_after_init max_gstage_mode = {
     .name = "Bare",
 };
 
+static struct gstage_mode_desc __ro_after_init default_gstage_mode = {
+    .mode = HGATP_MODE_SV39X4,
+    .paging_levels = 2,
+    .name = "Sv39x4",
+};
+
+/*
+ * Set to the maximum configured support for GPA bits, so the number of GPA
+ * bits can be restricted by an external entity (e.g. IOMMU) and the
+ * restriction must happen before the call of guest_mm_init().
+ *
+ * The widest G-stage mode defined by the RISC-V specification is Sv57x4,
+ * which yields 59-bit GPAs: Sv57 maps 57-bit VAs onto 56-bit PAs (PADDR_BITS),
+ * and the G-stage "x4" extension widens the address space by a further 2 bits,
+ * hence PADDR_BITS + 1 + P2M_ROOT_EXTRA_BITS.
+ */
+unsigned int __ro_after_init p2m_gpa_bits = PADDR_BITS + P2M_ROOT_EXTRA_BITS + 1;
+
 static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg);
 
 static inline void p2m_free_metadata_page(struct p2m_domain *p2m,
@@ -191,8 +209,13 @@ static void __init gstage_mode_detect(void)
 
 void __init guest_mm_init(void)
 {
+    unsigned int gpa_bits;
+    unsigned int paging_levels = default_gstage_mode.paging_levels;
+
     gstage_mode_detect();
 
+    ASSERT(default_gstage_mode.paging_levels <= max_gstage_mode.paging_levels);
+
     vmid_init();
 
     /*
@@ -226,6 +249,11 @@ void __init guest_mm_init(void)
      * so it could be that we polluted local TLB so flush all guest TLB.
      */
     local_hfence_gvma_all();
+
+    gpa_bits = P2M_GFN_LEVEL_SHIFT(paging_levels + 1) + P2M_ROOT_EXTRA_BITS;
+
+    if ( gpa_bits < p2m_gpa_bits )
+        p2m_gpa_bits = gpa_bits;
 }
 
 /*
@@ -363,9 +391,7 @@ int p2m_init(struct domain *d)
 #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");
+    p2m->mode = default_gstage_mode;
 
     return 0;
 }
@@ -1304,7 +1330,7 @@ static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
 {
     unsigned int level = P2M_ROOT_LEVEL(p2m);
     unsigned int gfn_limit_bits =
-        P2M_LEVEL_ORDER(level + 1) + P2M_ROOT_EXTRA_BITS(p2m, level);
+        P2M_LEVEL_ORDER(level + 1) + P2M_LEVEL_EXTRA_BITS(p2m, level);
     pte_t entry, *table;
     int rc;
     mfn_t mfn = INVALID_MFN;
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 16:31:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 16:31:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259494.1552825 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4iBu-0000Vl-Tc; Mon, 23 Mar 2026 16:31:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259494.1552825; Mon, 23 Mar 2026 16:31:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4iBu-0000Ve-Qh; Mon, 23 Mar 2026 16:31:46 +0000
Received: by outflank-mailman (input) for mailman id 1259494;
 Mon, 23 Mar 2026 16:31:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <oleksii.kurochko@gmail.com>) id 1w4iBt-0000Td-El
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 16:31:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4iBs-00BTb0-Qe
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 17:31:44 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69c16ac4-bab6-0a2a0a5309dd-0a2a45059858-42
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 17:31:44 +0100
Received: from [209.85.218.54] (helo=mail-ej1-f54.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69c16af0-5aeb-0a2a45050019-d155da36c08c-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 17:31:44 +0100
Received: by mail-ej1-f54.google.com with SMTP id
 a640c23a62f3a-b9795ca4e6dso669455066b.2
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 09:31:44 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f8be14sm536248166b.17.2026.03.23.09.31.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 23 Mar 2026 09:31:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20230601 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1774283504; x=1774888304; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EOnbwZsaenaHLGEXyic0HWfKV8qdUJlJbBSFmXoP4Sk=;
        b=m+H6ifplzBgQ9/H0Ieq0R+G82U3LC+h1SOZDVVeqfKMOuEudZEIbq/9YJNfivAljHd
         9WVEsMH759Q4VsR9yd32OmU53IYno8vdJQcCfUTpaqlzaa1VEe0afW5v6FNpYOij2AuH
         4RbiIyhwGHRoyd/H+Yd4h0CPq+DsJgfxt/DiRXJBJvqlP9OvwqJIaOjdHqmxEX5brk1o
         K2OsnuoFVWEsxAnjuj/+WiOid9EDBAUTq7lWtHkZqNJ6V3L/TgqHSab/YX2hqaHaiWDT
         VU61K1JCnE6bV7kozvs7I+5CK0ithGuTvnCamukugUlMmDZUJw/AYucTaTLaJq5LzUWA
         K+oA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774283504; x=1774888304;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=EOnbwZsaenaHLGEXyic0HWfKV8qdUJlJbBSFmXoP4Sk=;
        b=E7/W4bD790XCCGwdv4fS6Kc/XJiQCM4px0Tbb6BtCrnbnRS7C2MzCQZhN91fHK7UHX
         yri7mWdaRUNUcXL1Go6B6luTe2FIbFvbJaU+dEpqeJ2TXkRpqlWvz41tjXsGcoUUSMJi
         WiHxx/jp/Ka0PnuhAncxqsoyezlz3p7ci4C5//yaA+dHLeXmoYWjJoyqoSgPJHg6Sf2O
         WCP3cRpIoRLrIH7mtOVhB+QObbyRNmV6FpMmzLAjGIuOZIPiy89bLiwEXkoplmr6xuZ7
         eZLqUus1YDpuXJ1HbxD0Ai4QsldsFhWk0vbxxYRnOrVehY5qHSMwQI7Ds6Y0/7TYD5nH
         UF8A==
X-Gm-Message-State: AOJu0Yw0ZIMStjDucVlkiSuIYFw44BUe4tZ6D9h6Q6bso/6JYgFNdHyp
	3U3QduD+vRYxg43hEhtSgScheuczF3/e2gl4SXLFKq4dpVXGeM2i0RKq4BbIiQ==
X-Gm-Gg: ATEYQzzu2pc7VZPiruoKh6o58XyOImvJZYP4ewWB5w8uvOHXbaZmmTpy61P/xd6mpUL
	JNNEHaLdPqow2oF4IYglxmOIyaxWwnMf6BueGeSfFWI6QjK7xCn3V1m1CFXiO98AVmNCT49Ix37
	YQX300Kq4mPia/4jzAbn7nuIjG9bp2N9uygRf5UAj60RetlWBebsfFVOpqO6K39vuo0ntJHUNvU
	tMusQwfpYb6A6qmL86M6amhO55kID/ErNNwkIIr4+9D4FnuSZev6wjw8u7cl4+maar+VWAqjwit
	Mt8UuRNTD8OGvnaD2lPJ06L1ZCrUuwm/ROvTs+kHGkYYUi7nD2cpnpp/l9MKRNOdXElXvlQA3xN
	dtb0nf+p7ooBeRcZHXvt1m51v/7ceKj7/MQaRKYKdGUJaBY0XLiwbNwaN1APFKUn4HyRuoXM6Hy
	hcneqbXZPhcuky3DyafR/sLUSPddAgf+M9PpPleJkWp1qNlEOJeoATfJ8ltEn43ZSDTw==
X-Received: by 2002:a17:906:e07:b0:b96:e0b1:ccf4 with SMTP id a640c23a62f3a-b982f3976bbmr717098966b.47.1774283503806;
        Mon, 23 Mar 2026 09:31:43 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 10/11] xen/riscv: add definition of guest RAM banks
Date: Mon, 23 Mar 2026 17:29:51 +0100
Message-ID: <8278256f3d270b456d19cb9891b89b88a46548a5.1774281309.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1774281309.git.oleksii.kurochko@gmail.com>
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1774283504-82F45488-BC60FBE2/0/0
X-purgate-type: clean
X-purgate-size: 2333

The dom0less solution uses defined RAM banks as compile-time constants,
so introduce macros to describe guest RAM banks.

The reason for 2 banks is that there is typically always a use case for
low memory under 4 GB, but the bank under 4 GB ends up being small because
there are other things under 4 GB it can conflict with (interrupt
controller, PCI BARs, etc.). So a second bank is added above that MMIO
region (starting at 8 GiB) to provide the remaining RAM; the gap between
the two banks also exercises code paths handling discontiguous memory.
For Sv32 guests (34-bit GPA, 16 GiB addressable), bank0 provides 2 GB
(2–4 GB) and the first 8 GB of bank1 (8–16 GB) is accessible.

Extended regions are useful for RISC-V: they could be used to provide a
"space" for Linux to map grant mappings.

Despite the fact that for every guest MMU mode the GPA could be up
to 56 bits wide (except Sv32 whose GPA is 34 bits), the combined size
of both banks is limited to 1018 GB as it is more than enough for most
use cases.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - New patch.
---
 xen/include/public/arch-riscv.h | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/xen/include/public/arch-riscv.h b/xen/include/public/arch-riscv.h
index 360d8e6871ba..f14ff4c2d14e 100644
--- a/xen/include/public/arch-riscv.h
+++ b/xen/include/public/arch-riscv.h
@@ -50,6 +50,22 @@ typedef uint64_t xen_ulong_t;
 
 #if defined(__XEN__) || defined(__XEN_TOOLS__)
 
+#define GUEST_RAM_BANKS   2
+
+/*
+ * The way to find the extended regions (to be exposed to the guest as unused
+ * address space) relies on the fact that the regions reserved for the RAM
+ * below are big enough to also accommodate such regions.
+ */
+#define GUEST_RAM0_BASE   xen_mk_ullong(0x80000000) /* 2GB of low RAM @ 2GB */
+#define GUEST_RAM0_SIZE   xen_mk_ullong(0x80000000)
+
+#define GUEST_RAM1_BASE   xen_mk_ullong(0x0200000000) /* 1016 GB of RAM @ 8GB */
+#define GUEST_RAM1_SIZE   xen_mk_ullong(0xFE00000000)
+
+#define GUEST_RAM_BANK_BASES   { GUEST_RAM0_BASE, GUEST_RAM1_BASE }
+#define GUEST_RAM_BANK_SIZES   { GUEST_RAM0_SIZE, GUEST_RAM1_SIZE }
+
 struct vcpu_guest_context {
 };
 typedef struct vcpu_guest_context vcpu_guest_context_t;
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 16:31:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 16:31:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259498.1552834 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4iC0-0000uD-4e; Mon, 23 Mar 2026 16:31:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259498.1552834; Mon, 23 Mar 2026 16: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 1w4iC0-0000u6-1R; Mon, 23 Mar 2026 16:31:52 +0000
Received: by outflank-mailman (input) for mailman id 1259498;
 Mon, 23 Mar 2026 16: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=n/J7=BX=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1w4iBy-0005Bu-TE
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 16:31:50 +0000
Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com
 [209.85.218.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ca65196c-26d5-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Mar 2026 17:31:49 +0100 (CET)
Received: by mail-ej1-f51.google.com with SMTP id
 a640c23a62f3a-b7cf4a975d2so51729466b.2
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 09:31:49 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f8be14sm536248166b.17.2026.03.23.09.31.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 23 Mar 2026 09:31: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: ca65196c-26d5-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1774283508; x=1774888308; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RMI2TSXemPnTPjqj7KVuKJpiKREscd9/P5Ya9QFAfVg=;
        b=jPYy5kxLwecoyRMJVPK+ih/GfoiAzKnSMBQAwSQA4/9L54IhqLuL37agnsldzmJtEM
         R/gG8lX/S9ThO/XMCm4kkOZAYcNdxsW/klSE5/YKvC3PFkwbP6BZE2//zriZsqzE3i9G
         6O0ObcDiLOrw5eDtWY52xz8s40Ly1evPML1MkgNxRaTmKtiePbg1mVJ78qKE649Gk9mS
         iqiGtzrwrJSV0yqNz8jm1Ng4sA5hEc+8i0dMI+7CLcBumYj9cBc6axXHV2FEu+ARbu53
         SU5Km7CAzXcQCXtEVr6vXtXNdLPAKiF1qYL5BR/i89hCKxY5pemyGkzAJp6u0qq/NDXK
         eb2Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774283508; x=1774888308;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=RMI2TSXemPnTPjqj7KVuKJpiKREscd9/P5Ya9QFAfVg=;
        b=XceWQfgVzLm8KlM1aZSWGqorUz9erpYYg+AusUkFPsd0UG0BMOTRP/5v2B1wrjoPQC
         PpO8/qceeq0/+SMCwc5Pq/r/iSjxLhni6ZzehM8lbh0v4sB09B+PTCgRCbzzzB/N7rIl
         st4pTUS3LKStmfYumUUDtwLk9/knX3PV6bnja7CDIpZpVXr14GqohG3RJXGmTVl7iHY0
         skml3OuytqYvrnlUDZ39vWa31TI8KdBvAQtfqRdHJUubCM3JYOCSDJLRAqUzgRpM4A5U
         UwwZo2b2/0HR4/nobkLisMVYZgphCW76ORcVbl0Ij0LPA7d0jMXSgcPxFUB0iahSjPuZ
         L5PQ==
X-Gm-Message-State: AOJu0Yz+4zjbc2rqpJJB7q5Ssme7ki/HUj5g9vztdtgWfXGo3LABdAnA
	7EGnAhcqc11Kx+He/KQozb4D8AO47PXOtUeeoDVmoiDEwX+KpEhx27DvYXAGGA==
X-Gm-Gg: ATEYQzxdBLGgEeU0NNKg4DBjWpTwnOPOK0IGf5O4Qy+V8AYiNa5cp7yF/853WeGss0e
	reDUzkirVnSU8DnuEcTPdfdBXuSMRY55cD1smwU0uXFXpLc0XpfDgAIHu2Qbri0Cni/eYAdd94y
	sHHw10cH+OVEIwhgd4bm3t33gUFLwTdvdM3glhyJhTkNEW3ldeT0u57kAuQ4RpDPelxCA+5o1gS
	vrZPfaHS6gwwFMpImcco7dDW9D1orAecOCVG+0uPURUDZtCPAW4ynrs4e1IyVY0KTv55q2m8vdI
	6IwIht+h6HrMXKJgII7z4kai26j7NQLJ/e8LRezN5kyO3QNZOoc89gH5xMq8Auod2peMdvGIJ/4
	KQFKgu2YkHlnPI2r+MsrnVdPJEasMtZZpz4yiaIM0dFqBClzV8HE0MpygZw96pD3nGkSX1d5N38
	T5N54gAqb/KZZBgR5er0Wb7/S0YObgC2wUDPtLBfVTOdQT+2uW+iC/tDkw89ZwM4LlVQ==
X-Received: by 2002:a17:907:174b:b0:b98:cb6:e896 with SMTP id a640c23a62f3a-b982f3df694mr736739566b.38.1774283508208;
        Mon, 23 Mar 2026 09:31:48 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 11/11] xen/riscv: enable DOMAIN_BUILD_HELPERS
Date: Mon, 23 Mar 2026 17:29:52 +0100
Message-ID: <7cd07d4faa06152795f753bd0cac69cb59e4675b.1774281309.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1774281309.git.oleksii.kurochko@gmail.com>
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Everything is ready to enable DOMAIN_BUILD_HELPER which are necessary
for dom0less common code. So enable it.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - Move introduction of p2m_ipa_bits to separate patch. Also:
   - do rename of it to p2m_gpa_bits to follow moe arch-neutral
     naming.
   - use __ro_after_init for p2m_gpa_bits;
   - initialize p2m_gpa_bits in guest_mm_init and update if necessary
     in p2m_init().
 - Move to separate patch introduction of guest banks constansts.
---
 xen/arch/riscv/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index a5e87c1757f7..41426c205292 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -1,5 +1,6 @@
 config RISCV
 	def_bool y
+	select DOMAIN_BUILD_HELPERS
 	select FUNCTION_ALIGNMENT_16B
 	select GENERIC_BUG_FRAME
 	select GENERIC_UART_INIT
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 17:05:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 17:05:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259540.1552846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4iiX-0006sa-K1; Mon, 23 Mar 2026 17:05:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259540.1552846; Mon, 23 Mar 2026 17: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 1w4iiX-0006sT-HK; Mon, 23 Mar 2026 17:05:29 +0000
Received: by outflank-mailman (input) for mailman id 1259540;
 Mon, 23 Mar 2026 17: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=+HLc=BX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w4iiW-0006sN-8P
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 17:05:28 +0000
Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com
 [209.85.221.54]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7c309396-26da-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Mar 2026 18:05:25 +0100 (CET)
Received: by mail-wr1-f54.google.com with SMTP id
 ffacd0b85a97d-43b4915161fso2990715f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 10:05:25 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b644bd38bsm30659970f8f.10.2026.03.23.10.05.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Mar 2026 10:05: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: 7c309396-26da-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774285525; x=1774890325; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NCZ/ca57sq8Fs+zCGSIv34n8vYPwiQ9OnMeC4IZcF5o=;
        b=cybVCr3BirFpomFP4+f7+o9gCxX1WxdQhLamiKfMK57WSEbct7x5dzmKVFLgvpF9X2
         D3XLodF7lA3p+TrRt17xryOQJ2200IMXenKhQ3YWLPopklw0KIBwlLugiOMkZMLcxgQV
         qS+DyRlL0fuVPtQwHbmCOXs4d06S1pYRPBrkL6lzShTCNvx6hA8zuDqWnD92PEXkGi05
         2uNujTNCX6XyHhGpdjWk/N4Ibmj+z5jn6VcGhg9XmE0mHf48GYaTvfXO9FHjJ0cIRQBf
         sM3/4CDBOA8Vc0eayUvLAP8NdG4rHSOnYaPyYyemfuB/3yG130xO2Mx7BSbQdDHccH5P
         iQug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774285525; x=1774890325;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NCZ/ca57sq8Fs+zCGSIv34n8vYPwiQ9OnMeC4IZcF5o=;
        b=blA0+CrG68Q9PQA/WHkOaqDTaZxEvAlL5gk81/4OdBK/gNLNkN9r95ewDkd5OaMgCp
         EU133wfqGEHVPGjbJAxFDfKnfipFYRAOl7GAhwFwOwQBa9RBQWvsisMj8OFYlvBtXivs
         4ZGzfEeiX/uWDICYlzMDQfkeW+Ce+QUSVDYbH1k9j7QMRNv+EX5hG9k2RQ9QY9M0WmSn
         mcfRT4WXoNou05ATKeADqkXfkewiCNidFOta9xBm8OY7Ui8aWei86JCSj6hKvRkq9fui
         lXpK+rx12yGy0wkAdNTrv8QIIo0TQa8wFpph/YzdXBYTrkvbaNCnA6p85NkLLbKkMVAe
         4UQg==
X-Forwarded-Encrypted: i=1; AJvYcCWlezR478l/2HMbkG5XpS8sAX999rJW5+ltaJMuHnlPCJ0YYhngOspP/xQxrTCMiKYj9VS8aMhYh6A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwhR2DHovyQP2mmbJxZIAvWV/oigkeCqnHDDs/RurbxXFNv9YCG
	4BqKXsr7IHa6jcZsXvaoG3nmOjATxiPloLW+wrFv7qaxxZzjpArNe96z2Wzlfs3NRw==
X-Gm-Gg: ATEYQzwdFMZws8Yza4//NyFY/r+5kFQ30qKHlgF70o6ojJs9DwDwVWG9zT4chtgD6qT
	ku0IOWsVfrYqB+XuSYgS/XsY6BsGzyCdI5yp4ErlbrRRMsXWIbePm6y5EUmhqVTQnU6dk22iuN6
	+SmDyWvl4ut1r/t1sNDuX2e0tIWyyTJsdv5313fs2IGz04OCH/4fVVF7NAsPWohi0Ql2DRzuCYZ
	8elZTjxO0TKcsBEyJprMYtqldwn+E1Rtycrjy1NU2CDiZxtCWLevctoz0q/UVclH/LtrfCKVEbN
	ex8FK1XlofVALo7Fll6oxk7UF14ft/FPSp4DNalA5VZKHfMtozS16CCQ3qOuJMC0LCJstFmCTiU
	XjcGvDV7sAXBl1BMKY9rtnUxiBKYERK/QbX5I3d8MHhsGt4BbBH2bzTdaU73gf+jkonW12vrShh
	wX29wO2S0ol0TlW8nvrDR0UyHSPMZnIbH46U9WmFpMBu9RhUZtYMfSlHONj6b1VTgW5qBkp5HTL
	1LqY2T9ZV0ijNc=
X-Received: by 2002:a05:6000:2c04:b0:43b:3d02:7806 with SMTP id ffacd0b85a97d-43b64263f32mr20364883f8f.28.1774285524729;
        Mon, 23 Mar 2026 10:05:24 -0700 (PDT)
Message-ID: <9972b808-fb72-4a8e-adf3-5d6259bf4ca4@suse.com>
Date: Mon, 23 Mar 2026 18:05:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/public: Delete duplicate VCGF constants
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: <20260323152856.966730-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: <20260323152856.966730-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.03.2026 16:28, Andrew Cooper wrote:
> Having two spellings of the constants makes following the code unnecessarily
> difficult.  Reduce it to one spelling.
> 
> This is an API change in the public headers, but one for the better.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Mar 23 17:38:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 17:38:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259552.1552855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4jE4-0003J2-3S; Mon, 23 Mar 2026 17:38:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259552.1552855; Mon, 23 Mar 2026 17:38: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 1w4jE4-0003Iv-0V; Mon, 23 Mar 2026 17:38:04 +0000
Received: by outflank-mailman (input) for mailman id 1259552;
 Mon, 23 Mar 2026 17:38:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w4jE2-0003Ip-Ua
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 17:38:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4jE0-0047fX-NV
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 18:38:00 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c17a6b-bab6-0a2a0a5309dd-0a2a450193e0-16
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 18:38:00 +0100
Received: from [40.93.201.66]
 (helo=CY3PR05CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c17a76-6400-0a2a45010019-285dc94297b0-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 18:38:00 +0100
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CO1PR03MB5939.namprd03.prod.outlook.com (2603:10b6:303:92::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 17:37:41 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9723.030; Mon, 23 Mar 2026
 17:37:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RGqEOgnucG0ivGgdB1NUMznOL02wmPpsRj0QPNa1oQDUjZ2xg7b+ICT2s9Afegu0jvpazUDeG2dS/hY9lSs5UKF2Qj8a/Ogsm5S+IvTvTNxis51EVbSfZ3LCHyEIhrMSn6a7eTDY2UvaIXc2uRma1eWD+n1tpKWfF+wMlhLp0h7UahqF1vOKaS4Bd+nTXkUACy6o7hEj3sH+HfsRu96ieeHs1d+9MZzQAQSLacsdckCS9NgkPs3otenKYUJ74iqzvPZf+9oOdETkCeGwzsYHv/tRVfcCaM1zMuW2ZI2AtSoRY0E3VUg6OgiZakCg7GRXAT4fWs0IhCm2Vfp1Hzyf7g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=aO9mnmLeJLlyU3pZceix8qvqd7F6MO868OjeJHrrzns=;
 b=EBaCIQ7VwqcpDdmHCtWRwUAxitLsiWHhubikGxUbKGqRGM4ub7UfNBJYtVG6+j7R4v5q4l46yPzoEGROtNBS8f0SjCImCOBXexVcw7m0ukM7ZkLzkdd5e3jFm6WXpkeuaI0xLi26nMgHc4AOy472A5L+Ahht3/vl7aL8RoVisViJNQoYDvEBv9U+cxI5nACwOIohj/PDsonxKL6X1xv3uXdLPLe29+7rtyZwbCwI/VIuOw3JMhBTMf1uwBMBrxQZZ6as+N465xWl/4WZ8XVTV3z+r/mTVL2Y0iEPCLFt+cDNeAGOyo4oMDyQwcucHH4Fp0l4g7cZKWEkm9K39B6DEA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=aO9mnmLeJLlyU3pZceix8qvqd7F6MO868OjeJHrrzns=;
 b=l8FhYrBfiA8i0BRkEmy9609uHE0keA/zvs8jHpaCY+kN8Vv1Xtb3x/SzdDRFajnJfmIm3SB+D9pQc5ZmjZ/jOuIFa/gzFgkNmB5Dur8OCCcDT4IoETDRsXyYRkiLcPYLdBb7wSXiu2cc9Yn5G0qhFfAlsxyKLdxGW4ZRZMjhO4U=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <a16e4126-5eec-4c9e-82e6-afdc0fc410db@citrix.com>
Date: Mon, 23 Mar 2026 17:37:51 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] xen/public: Delete duplicate VCGF constants
To: Xen-devel <xen-devel@lists.xenproject.org>,
 Juergen Gross <jgross@suse.com>
References: <20260323152856.966730-1-andrew.cooper3@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260323152856.966730-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO3P123CA0017.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:ba::22) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CO1PR03MB5939:EE_
X-MS-Office365-Filtering-Correlation-Id: a3e79c52-ad6e-4078-ed12-08de8902e56e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	8LyL+MnrmdCrFi5XF8YpDj55FKfg1FuzKr9yGxX1aM/69iwbhSNOV7+ClUPiszWjBatB8nceTO3LtBlMXiSZGVnkGwTSg8FX7z1VoAeWWMRGCuhn+lDexNmfuknvHCx60pEE3cvfFic4sxQVdlUv+ioe/IWn69MI+N9NM7qoCTqMF2WOKZP/teZfrNpcXRX75TyN0yyng1s0nz3LBgthxdzDFMLgTMNrka6Kh0lTIq577E2KXYMEYgYDiruma+bxV8adG+ReEcH4nfLzO5bUXyT3YnEN28n2fqmjuSU+UMLion1K07Va2cQZEK9Vmy1a1sCUGFQJGelj0tuPf3teWqjjaCUMAVGd/NLMTAHwWutofZdudKu6gn4BVqI0iYSUFUZnKjc+zU0V9vGYeos5AGXLLrLz/tpiy3rkscOdyTiPQ1XzKFGBkz1aurVAWekSl4RzXMKDyp22FmKGSxsx7nvw1XqeOo+3buQxOLCE6ScVtsYbZBr70eiswPIERm2HCsjyqsS+i0+rnY5kGSjrEoXi8BPc+tzBbOHDqaQEf6ZARp5PRgX3xZka6TWcpq7wjNzAY1w1X/+vvw/2muplyAbCVNVEuq/SrNUNrINRW5bD6O/WLGqfzrrtEqeq46NYkYVSVFKz7sgcEBg8H0tQuABhACVNVE1PUtbifgUhsIHVpSiCrc76g8NcW5JZdBUfvI02E5Lw5FzZ9k5TZksud7pGelJQOQtaSrY2qECUP4o=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Rk9pSVJud000M3RyM2RUemJlSnFEOFlGS1kyckJGckxuWmRTcGFvOHJDa285?=
 =?utf-8?B?UHFCRjk2aU5QaW15STRnK04xMVl2Ym1OQnZqYk5kNTNpS0E3STVCSzlkMXd5?=
 =?utf-8?B?dEFZbkt2elJyTGVqT010aVNmSVRNa3dzTmtWbkNGbHBYTkhYZGFUU254bGdj?=
 =?utf-8?B?bC9JbC9tWU9BMWFFUHZRajJRZnlaeTJzSk1yU3BCTDF4bWFtbFZaK0ZvZUlI?=
 =?utf-8?B?ZC8zUTVaK1ZEalk5Q3p1LzArRXNQd2FEc21sOFU1Y2t1aERlYkEydHN1bUd1?=
 =?utf-8?B?djlROHB5NFpCQlJ4L0czdk5TRndrNlpuMTBwU0cvY09HQU16bTN3bENmaWpm?=
 =?utf-8?B?Q0lVTlRvZXhmLzB1MFFOYnZ0UHN0MWJHQUt1RmdSZnFVZHJQdDM2Ny84Q2Vi?=
 =?utf-8?B?dTFpMmtpbVUrdEx6bVM4S2FrTkVCWVVKMVZtdzJoUE80b2hZYy9oWTUxVHhr?=
 =?utf-8?B?MVE0YUsvVG9lUm4zajZQN3I3RWhOZzlPSDJJeDN0QXlOS0RuWk11QTlIM0tE?=
 =?utf-8?B?S2dVMVNmVlZtc1E3dURzMVRyV0w5Q3ZSRW1lY3ZrZmtvL3dEeTNETnlVL0NH?=
 =?utf-8?B?UGV0a0t1elltWERVVVN4WUtTNThhMGFvUVBseW1LVEExaVZXTG5CcHZPaENj?=
 =?utf-8?B?eGRwRW40SnBjN1ZmZ090WG83cDY4TmlLQ0R1NnVuZzZZMTVBekZCa1UyWWVG?=
 =?utf-8?B?Rm85WEhpS0dRdElPSzdVYzFhbllxOTJXN3BrZVNrc2tpV1J3bWs2d1FiNFdr?=
 =?utf-8?B?ZlhmTkNPNjZsTy8zSXBCWnRuNHdTRXoxUkxBWDA5eWdJOElObjdoTVplOC9X?=
 =?utf-8?B?azBJZlM4bnlRR2FqNHM3ZDJEb1c1RW9xYkJZUm8zaTNBOFpUeEhHdlp6N0Vi?=
 =?utf-8?B?WkZjY3p1UjJTQVVjV29GSWwxVW9QakI1RlFGSHpPdDBTTU9nTnR4dEN6MFJ4?=
 =?utf-8?B?bGRNWEp5Rk0zVjNzeDVveWJ1ZTRmb1ZoZWFkRGhoUm9jTVo5a1FranpJdHBN?=
 =?utf-8?B?MUFOMEZGaFFqaG5HNHZFN0xJUlFMM2gvaThHbVZNczNOblloNDFJVzEyVEZQ?=
 =?utf-8?B?Rks0L2t0SHVEVngzZDRqTVlxRTVMRVBFQkdZUlhtWkNZODdFWklvU29RbXU3?=
 =?utf-8?B?QmlDbkQySk1pYkFxZVZ0anljUEYxTFdmV09pUUJ0anpISURyUndtZkFRK3dK?=
 =?utf-8?B?L1NCSGhqZmdYNVVEYXpYZ0M3bXJKSUZGdjFXMnk1dFU1M2VyZTh6cDl5L283?=
 =?utf-8?B?NjViL3QwbGdwMmwvblpabG53Vk5CTnNtR3RLMi9HeHl2OFN5Q2tNck9LaTRV?=
 =?utf-8?B?V3p1WjdGYjE2L2ZMaHRoWU5zdFU5VXBleUI2dmZvSVFtWWxJSGNCSzl2UU9t?=
 =?utf-8?B?SVpSR2o3KzlQbTY5eTZWRkRhV3pscXJOUUtoREFlUDgwanNqeWVwZkptdEFB?=
 =?utf-8?B?MWRocG9IcU44cjFvSDA4SEUrZk1VdzQ0SnN4Q2pQc1JkVmJVOWpCM1VMVmM0?=
 =?utf-8?B?c3UzcVYyeVZvZUQxL1hLTXV2dlR5N0pRZEJ2blJvVWZtc1BCcVZDRjMybGgw?=
 =?utf-8?B?ZTY4SCtqcnBTbUoyekRyUnY4SjlKOXQydlhxSFFpSHZ6TjhVTVFpZ1FvT2hC?=
 =?utf-8?B?eEgwS1pwdlQvNmtLNVR4LzBWdjFIZlNJSTZyTlJta09LUy83YU1XVkY3WlZQ?=
 =?utf-8?B?cnBEMTRmNzl4SzF4bFczdlVEcTJsZlZ3SDR1TGdHaklKenVlVXJMVkVnV3ZF?=
 =?utf-8?B?RXBlZnJCUXJZRHdrWk42bDB5Q2JlMzZwN1hhc3VLQTF3dWRMSnJNL2tIcmp0?=
 =?utf-8?B?U3BBdTBkejNTSk5adnRzNmhrWEtwNXV1MWdoNVhacUdHS3dGN2J0ckZYWkdl?=
 =?utf-8?B?VThuQkxrZDY2elZJUnNaNC9OMkIwSDN5Y3VZaVl2RmE1WnpRcnkrQ0VXeFlB?=
 =?utf-8?B?aUl6RDRtQ3FCREFMS0xzaHVHQjJFZkR2Q3ljSkh5N2lnbVp6K29tZEkwNWZC?=
 =?utf-8?B?bkdXbExiZFp3Y3gzRlk2ckRKTU94ZFhOTmEraHpod09GaEdsN0EyWjFqNWZl?=
 =?utf-8?B?ci8zTmdQVS8rTkwvZ1ZPKy85SjhzL2ZibDZUVlNYTHZFMVJOMGxYc1RtR0hw?=
 =?utf-8?B?REN4MUlnTkorL00vanIwWWd5L0ZTMEdEaDZsK2RkZEk4dU94WmVvN3hpY25u?=
 =?utf-8?B?dER3c0hsVTI3MG4zb1QvUjFJcm0rcnQ3STd6T1dMbkZjRXZydENBN2VKSWta?=
 =?utf-8?B?NFJxNFRDN01CbVNEVnFDbWozTEgxWWV0Q1BhWktDaDg4bTAwKzR4TFN3eUxT?=
 =?utf-8?B?VEc3bVJXN0MxZnRFN1I5SjNSaW95UmlINmtXL05POE1pU2I3RFBEOEYxM2pB?=
 =?utf-8?Q?F1AcYD5WviuF6DLA=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a3e79c52-ad6e-4078-ed12-08de8902e56e
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2026 17:37:46.6231
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: uvw6kh9QyG9lig/n+YK4FSVvvydWPafsFsf+UliyGCiBM1IUV0N6y2mXLSOwvtYhWQIszt7/SE6ux+BXXbyZLR5YemUg1uVXdx+PAx/zOyo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB5939
X-purgate-ID: tlsNG-d62444/1774287480-200C9DF3-52AC51D4/0/0
X-purgate-type: clean
X-purgate-size: 2921

On 23/03/2026 3:28 pm, Andrew Cooper wrote:
> Having two spellings of the constants makes following the code unnecessarily
> difficult.  Reduce it to one spelling.
>
> This is an API change in the public headers, but one for the better.
>
> No functional change.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> ---
>  xen/arch/x86/domain.c                    | 2 +-
>  xen/include/public/arch-x86/xen-x86_64.h | 1 -
>  xen/include/public/arch-x86/xen.h        | 2 --
>  3 files changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index 4664264b2f5d..9ba2774762cc 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -1246,7 +1246,7 @@ int arch_set_info_guest(
>           is_pv_64bit_domain(d) )
>          v->arch.flags &= ~TF_kernel_mode;
>  
> -    if ( flags & VGCF_I387_VALID )
> +    if ( flags & VGCF_i387_valid )
>          vcpu_setup_fpu(v, &c.nat->fpu_ctxt);
>      else
>          vcpu_reset_fpu(v);
> diff --git a/xen/include/public/arch-x86/xen-x86_64.h b/xen/include/public/arch-x86/xen-x86_64.h
> index 75f121be0e14..9f33d80d3135 100644
> --- a/xen/include/public/arch-x86/xen-x86_64.h
> +++ b/xen/include/public/arch-x86/xen-x86_64.h
> @@ -103,7 +103,6 @@
>  /* Guest exited in SYSCALL context? Return to guest with SYSRET? */
>  #define _VGCF_in_syscall 8
>  #define VGCF_in_syscall  (1<<_VGCF_in_syscall)
> -#define VGCF_IN_SYSCALL  VGCF_in_syscall
>  
>  #ifndef __ASSEMBLER__
>  
> diff --git a/xen/include/public/arch-x86/xen.h b/xen/include/public/arch-x86/xen.h
> index a7bf046ee006..4693e47d204c 100644
> --- a/xen/include/public/arch-x86/xen.h
> +++ b/xen/include/public/arch-x86/xen.h
> @@ -160,8 +160,6 @@ typedef uint64_t tsc_timestamp_t; /* RDTSC timestamp */
>  struct vcpu_guest_context {
>      /* FPU registers come first so they can be aligned for FXSAVE/FXRSTOR. */
>      struct { char x[512]; } fpu_ctxt;       /* User-level FPU registers     */
> -#define VGCF_I387_VALID                (1<<0)
> -#define VGCF_IN_KERNEL                 (1<<2)
>  #define _VGCF_i387_valid               0
>  #define VGCF_i387_valid                (1<<_VGCF_i387_valid)
>  #define _VGCF_in_kernel                2

Juergen, as a heads up, Linux has one use this:

linux.git$ git grep -e VGCF_IN_SYSCALL -e VGCF_I387_VALID -e VGCF_IN_KERNEL
arch/x86/include/asm/xen/interface.h:216:#define VGCF_I387_VALID                (1<<0)
arch/x86/include/asm/xen/interface.h:217:#define VGCF_IN_KERNEL                 (1<<2)
arch/x86/include/asm/xen/interface_64.h:78:#define VGCF_IN_SYSCALL  VGCF_in_syscall
arch/x86/xen/smp_pv.c:247:      ctxt->flags = VGCF_IN_KERNEL;


That will be easy enough to fix up when re-sync-ing the header.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259632.1552976 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o6t-0007IA-Ey; Mon, 23 Mar 2026 22:50:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259632.1552976; Mon, 23 Mar 2026 22:50:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o6t-0007I3-BR; Mon, 23 Mar 2026 22:50:59 +0000
Received: by outflank-mailman (input) for mailman id 1259632;
 Mon, 23 Mar 2026 22:50:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w4o6r-0007HT-WC
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:50:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4o6q-004fpR-7L
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 23:50:56 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c38f-bab6-0a2a0a5309dd-0a2a4507beb0-32
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:50:56 +0100
Received: from [52.101.65.87]
 (helo=DU2PR03CU002.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c3cf-fd74-0a2a45070019-3465415728ae-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:50:56 +0100
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB7653.eurprd03.prod.outlook.com (2603:10a6:20b:34b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:50:49 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22:50:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oCZxKZYO66XzVeDxDjHw9v0+tYtkylXUZbhcimRrpxtAvA+Wjj8NMSEhrVWSK4/4z80qOoIfP5PgpFt0ugwQzuxtbGPn+qInWrz3jBW9LsHoojw8Pge3CCiWfFK8zCwv6Ub1vsNgeSuK6llDoRaEU20qdd6kJGHrN94dI6EkJbpw1XFgGxtSZeC7DRWUXDu0B2rsvEfi+nQCkFGg+jXxev4cRVQ7hbFB98h4YSRh1A+uRMFLpSgRny9mPDewXNBQ822Jt0NhJBVUdBQklHPrIz6CKNSBoqGMOvc5MRHOr6jy92BBck/YKP2hPJE4vpBuiN5Lkld6UcTRITAbkcTETQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0BaDjkEJBdsJBWbQfCmcrIPOlFcyKVXPKr779ZYQiYs=;
 b=P0L2V3CnDacWpT3RIcNwHn1eLODrzHTD0gc4nadm02t+NB3r8Wf6VG/JdQiORJwNuAPzSRyunzwb0Hsp0huGBcN7VCJO6BlQult0vCyu1FF8FkKWeb12n2qAwxn/B7229Ncn8jdsHiRRadYagw5BWHmbVwyNuV+H+ywkpkSY2iYfvDvUOFnYzBjCNGeDEZ5yFDNQuSPLDIg6iE/wapdsj7IB8pXnnI3r5IaXljANeson8z6Nk12aSWBAlxoQ2+Dp+ncAu6gwfipUtwMN2K4Zvl65EX1wejmNQ0q83PYrtikyUt+xI1FrQOUpMTsWd/w1wfrNy2nhY4+Hp5TBPnZjyQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0BaDjkEJBdsJBWbQfCmcrIPOlFcyKVXPKr779ZYQiYs=;
 b=EVlwi0IVIjqSUZVdh7vwZq9O/tAeModDTK0oJWf35RasOJGf81i1H962qn3T8eApAs73bqRO/BLrd7tRLoz+YnqyeFnZNE5codkfxcfZnRF4E1leMSM9WE0tq4/CIYfYTF1ll7MbnVEnPd0ggxswPhdJkIRv/HVtN9+EWxEUVj8pngIK4bCKcX7Vn65dU3AjdsEFfh9S8D5nXrPHTflBjY/i8L1M8WQXQUiKI8PnfeGcjXhS6Flc8m1Am2HGeYj8X/HAscQ4aIpGGg2h8Fj8qNs+Dq9mh4L49lA1muZZUSnTjp0dvZtKAqLjFxmYtaIU6paixICGFwIHubLHBMNgEA==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Milan Djokic <milan_djokic@epam.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Rahul Singh <rahul.singh@arm.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Jan Beulich <jbeulich@suse.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Nick
 Rosbrook <enr0n@ubuntu.com>, George Dunlap <gwd@xenproject.org>, Juergen
 Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Daniel
 P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v2 00/23] Add SMMUv3 Stage 1 Support for Xen guests
Thread-Topic: [PATCH v2 00/23] Add SMMUv3 Stage 1 Support for Xen guests
Thread-Index: AQHcuxd9vHfNeHP4OkWsLi6ZZBW26Q==
Date: Mon, 23 Mar 2026 22:50:48 +0000
Message-ID: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB7653:EE_
x-ms-office365-filtering-correlation-id: 72412da0-1802-4931-ff83-08de892ea081
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|7416014|1800799024|38070700021|18002099003|56012099003;
x-microsoft-antispam-message-info:
 EdV9cjyb+WxUciM2UBadbPQqoUnp7a5wGCfKhldG3pfJnVnEe+aWpS1L7uKO16HirgleUMSQLkWjzsgRvhB/OjzE9tFKm5k36NeXUD4YYNUUydC/jF9iL/ptSBaa9MW7LEj6hKQqk4raFZQ45py2db6Dy5YabpIBt2KcgiYZGRUKGbWsItOXOk1Z9nX38OthkBP+qD0d/lV6VEU0u2YQhZ4HpE9+xd55QJRhCCJhe675tgZCdqWxDimRlzxvKudU28l7SE/ckkqFrV0VXbzvw//w89NjH+zGF4meRZGMHVc7IPFNTyt9y4bBN/kcavbUAQpnMFjj81LtGnL9i8/LUr0cZFpw74vcNtyXo2PD9gZryzMed4YSTTRsebvOJns4ff89bMZuhWjpxHpBxIGv0Gyf+L+IuE4c8tK5rYbLbr7bmG6FgRTZYdgKxYbu14XRoX+EOZaqGkwEorV62wOd/qJIPZfkO9++0Gbci6A4b7RpcX+mw8M/j6mdQLnQ76JpbsxOHLq/OiNlj60KotXYSoJ65YKmtAjx75GvjThGBQVtta2HVqe+tseAZTB8OlqkS7QMBGoyfopalK6YEMmDc3x/GnBgA1zS1lCpH+ALqeQpOFN1oE8lXD0Ee0yh+zhmisr4oe02An5k9URCPxFW4KQWF255GZdwN0Jzf8unpb5mbTirrv8Kxy9rWC14CobTgZHL04l9UVdFrBCI5g74EE2PntTPupxNob3FVOBJDPxshXrqwrEkZ3YMHbUmFbBo3007Xdtj29aJ7C9wd8Logni70PyShRNY5drX9DSAhf0=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(38070700021)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?blhmK2tPa2ZBdU8yS0g3aHIyVGRsWjhNcmNQR2ljcjFkWUJ4akNKWTNFNVM5?=
 =?utf-8?B?ZVZ4RmxsRFBQblpCR0p6bmpSZVJYS2hXQ3VreXAvRE9qeUp2MHFRb1RDQ0ww?=
 =?utf-8?B?bzlnVmVsSVdyOUZuS0M2RUJySVNqREFkUGNRYnNlM0lyeW9wY1ZLK2NFTzls?=
 =?utf-8?B?VnBwYlpGbXlHa256Y25DeXpzcmZ6MEZyK2RrOUkzL2FEbys2dXUrZ2oxRHVR?=
 =?utf-8?B?MngvbktraVJqS2ljRUFibWkwQ2QxQmhUM0o3eHkxcXlkZ0phaG1wUHVtR3hI?=
 =?utf-8?B?QTZQV094ZDYrWGxqZndrWjIwbmNTSFVFMXE0MFl2aXZNZW81WUkwNS9pUEx5?=
 =?utf-8?B?Rys1dkNIam43bHd2SUxQb0RCOSszUFEwYXlRNHg1ayt2U3N0WFBHUlNPbU1z?=
 =?utf-8?B?WjJLTVYwVllhdnAxZGlhRVJKM3MxUUxDVm5GMmU0Tzh6NDV4UE03V3BEQU9B?=
 =?utf-8?B?WDNCQVdmc3NOVnVQdzZoTGFWQ095ck1qd0R3N3ZldWpHM0wwcXNWVVNqZjd1?=
 =?utf-8?B?clNXdzhRcytHb3B4bmVDdUxTbHhnZjV6OWg0MGhOWHI2ZWtqbllJMTJRTDgw?=
 =?utf-8?B?WnZvSFppVEE1K0laWkdRcCsvWTRtRHJjVGt3YnhJRnhwbDRuVzQ2RVlxdzBR?=
 =?utf-8?B?V2YwT1hCT0xoRnZvNFYyZTZrMzQ1SHFXRkF2RXM0WDFXTm9xb3VWNHFjMERu?=
 =?utf-8?B?amZReWNtUWZYK2krdS95dUthSjl4YzJVcmVSSStBbTVQVzRieVJ5SVBsQlBT?=
 =?utf-8?B?L291MkI3N3RVbllwa1VJa3g3R3AzMlNLN1YxWGJRQnhiWnpNYkx3bWZCSDFq?=
 =?utf-8?B?TUdGaUFzNUljRWtaK0dtZnMrNGFVaFhFN2s5eFFnRHgxU0dKWlVsRkxzc0Ew?=
 =?utf-8?B?OGZVLzA4clUvUlVWckhjSFpHdHN4YjR5dVQxS2NoMUF4TGNzcUU5UncxSzN1?=
 =?utf-8?B?TzZoYTludkxDV2VzblZEWVBGOHZGVmxoSnZWeTRoMWxhUFowcWlFanJZZ011?=
 =?utf-8?B?RklMR1JUUTdCalNsd05ES3gzdGZzTk4vcjRvc0xweSthTG1oQWtpK3BIMFVZ?=
 =?utf-8?B?bWpXQ21acGk3bGsyOFdyamZrOUpjd3BqcC9qdDRiNkgxTWtZT0E0Nk15VjYz?=
 =?utf-8?B?c2VISHMyRlZzcW9ZS2RaOG5KY092MWlTR3NoSWhTMVl1RDRnMHpYNURuVUZN?=
 =?utf-8?B?bGpVdU5KeFF1aFpDNmN1K0xmKzN2TWV6ZTNTVU5TVUZjOEoyeE5Kb09ER0xw?=
 =?utf-8?B?dWMxcTE3aTdRZXlNd0l0WU1ncXgremdsb2FBMGpsVEV0dEFqSGNLZ21XZnpY?=
 =?utf-8?B?U3h3ajZQbDBwbDFLSU5aWWRrODNGT21Hd2ozZHpMRDZzL0JQZGl2MGhaRlJ4?=
 =?utf-8?B?SEZkejQ4Nk4vSTV6MEFKUWxjRjRyNWVvbjh5ZjJVOURnTk5POUIwRUlaYjUv?=
 =?utf-8?B?eFN5VlBFbU5yRUNKRXZRQ2llc2VzUEcyc1R5MUJLOWxYOTN1QnVjQVNhalRZ?=
 =?utf-8?B?YzRoV0xtVXhiNmowL3BDMVh2Z0VzbTY2YVgzYktkbUFpanRhQzk4clRQTUlZ?=
 =?utf-8?B?NSt0Z1ZuS1RoZjJyM21XelZxYmxiWU5HWk12K0VmdDVZU0JQSFJyclFRRGJB?=
 =?utf-8?B?NDVlNWFJWmcydVRQNWhRN0s3dkJFTTdjb2V3VUVXR3RhZW4xNWVWUkRZdllp?=
 =?utf-8?B?UVpNMG8xZDM5cURTRmJUMVRhY083dlZlbi9Reml4SHgvYW5YbWk5alVVbm5O?=
 =?utf-8?B?N3o4SktWZDhGalF0VlhESlRJZzNSTzZlSm0rSWhmZmJ5RFUweWdGZUsrS3U5?=
 =?utf-8?B?OVlLbkhUWk1WYzBvOUI0dExjdHVNT1hkSUZrdHhiV3hER1VzekVaVnJmUUFF?=
 =?utf-8?B?SVJHcmlIRGdBU0tvMlNmSTNPdTF3djlKTnUvck1oNUcxM2x0R25nVG9FUVVa?=
 =?utf-8?B?ZTJXVDNFY3RaR0NOYUlOTWlGN0k0UmZaOVRmZEVrWGU2M3ErejE1SDZlbTlV?=
 =?utf-8?B?aHQ5NE1aVDFXSUhBWVR6dWFxczVxTWRrMXdjRzFvVFlsUnQ2ak5CK0I0TnBy?=
 =?utf-8?B?UGdvdllmbE5JZ25KTkFkbTNFZVgzYWN2Y3F1azlLNldkTWRhWWkvVnpUcFk0?=
 =?utf-8?B?bUFZbXljd1RNMjBmNjJLb1Zwd1FvY0grd291bmVhV3dXeWg4OXJZY0ZEUnhL?=
 =?utf-8?B?YmdYRi9kS0RCNW1YVVc0c0NZV296N2VJeU5vS3dieE5TSUVCbmsyRnJsUHVm?=
 =?utf-8?B?b1JYaTV5R0tjbWp6NUI0UUY4RUYvZE9Vb1M3QWdjRTVXN1F6S2ZYTnVBc3Iz?=
 =?utf-8?B?dmwrNXhteUV3SStQcVlPaTUwWkhiK1pDS3V3VWp5YVM0KzNSM2hDZz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <7A33F9DF41C8C647BD88C6C5F0E42327@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: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 72412da0-1802-4931-ff83-08de892ea081
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:50:48.7086
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 6iT9Y6zKaiRjZ8AZQJSdwzOAn118BA9OFM/aK2QE0NnsKcNJng4OsoVBFRohjug1+r+p0wsySWkXL4qduyAHVg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7653
X-purgate-ID: tlsNG-ef75cf/1774306256-4F0A8303-23401515/0/0
X-purgate-type: clean
X-purgate-size: 7666

VGhpcyBwYXRjaCBzZXJpZXMgcHJvdmlkZXMgZW11bGF0ZWQgU01NVXYzIHN1cHBvcnQgaW4gWGVu
LCBlbmFibGluZyBzdGFnZS0xDQp0cmFuc2xhdGlvbiBmb3IgdGhlIGd1ZXN0IE9TLg0KDQpTdGFn
ZSAxIHRyYW5zbGF0aW9uIHN1cHBvcnQgaXMgcmVxdWlyZWQgdG8gcHJvdmlkZSBpc29sYXRpb24g
YmV0d2VlbiBkaWZmZXJlbnQNCmRldmljZXMgd2l0aGluIE9TLiBYZW4gYWxyZWFkeSBzdXBwb3J0
cyBTdGFnZSAyIHRyYW5zbGF0aW9uIGJ1dCB0aGVyZSBpcyBubw0Kc3VwcG9ydCBmb3IgU3RhZ2Ug
MSB0cmFuc2xhdGlvbi4gVGhlIGdvYWwgb2YgdGhpcyB3b3JrIGlzIHRvIHN1cHBvcnQgU3RhZ2Ug
MQ0KdHJhbnNsYXRpb24gZm9yIFhlbiBndWVzdHMuDQoNClRoaXMgcGF0Y2ggc2VyaWVzIHJlcHJl
c2VudHMgYSBjb250aW51YXRpb24gb2Ygd29yayBmcm9tIFJhaHVsIFNpbmdoOg0KaHR0cHM6Ly9w
YXRjaHdvcmsua2VybmVsLm9yZy9wcm9qZWN0L3hlbi1kZXZlbC9jb3Zlci9jb3Zlci4xNjY5ODg4
NTIyLmdpdC5yYWh1bC5zaW5naEBhcm0uY29tLw0KT3JpZ2luYWwgcGF0Y2ggc2VyaWVzIGlzIGFs
aWduZWQgd2l0aCB0aGUgbmV3ZXN0IFhlbiBzdHJ1Y3R1cmUsIHdpdGggdGhlIGFkZGl0aW9uDQpv
ZiB0cmFuc2xhdGlvbiBsYXllciB3aGljaCBwcm92aWRlcyAxOk4gdklPTU1VLT5wSU9NTVUgbWFw
cGluZywgaW4gb3JkZXIgdG8NCnN1cHBvcnQgcGFzc3Rocm91Z2ggb2YgdGhlIGRldmljZXMgYXR0
YWNoZWQgdG8gZGlmZmVyZW50IHBoeXNpY2FsIElPTU1Vcy4NCg0KV2UgY2Fubm90IHRydXN0IHRo
ZSBndWVzdCBPUyB0byBjb250cm9sIHRoZSBTTU1VdjMgaGFyZHdhcmUgZGlyZWN0bHkgYXMNCmNv
bXByb21pc2VkIGd1ZXN0IE9TIGNhbiBjb3JydXB0IHRoZSBTTU1VdjMgY29uZmlndXJhdGlvbiBh
bmQgbWFrZSB0aGUgc3lzdGVtDQp2dWxuZXJhYmxlLiBUaGUgZ3Vlc3QgZ2V0cyB0aGUgb3duZXJz
aGlwIG9mIHRoZSBzdGFnZSAxIHBhZ2UgdGFibGVzIGFuZCBhbHNvDQpvd25zIHN0YWdlIDEgY29u
ZmlndXJhdGlvbiBzdHJ1Y3R1cmVzLiBUaGUgWGVuIGhhbmRsZXMgdGhlIHJvb3QgY29uZmlndXJh
dGlvbg0Kc3RydWN0dXJlIChmb3Igc2VjdXJpdHkgcmVhc29ucyksIGluY2x1ZGluZyB0aGUgc3Rh
Z2UgMiBjb25maWd1cmF0aW9uLg0KDQpYRU4gd2lsbCBlbXVsYXRlIHRoZSBTTU1VdjMgaGFyZHdh
cmUgYW5kIGV4cG9zZSB0aGUgdmlydHVhbCBTTU1VdjMgdG8gdGhlDQpndWVzdC4gR3Vlc3QgY2Fu
IHVzZSB0aGUgbmF0aXZlIFNNTVV2MyBkcml2ZXIgdG8gY29uZmlndXJlIHRoZSBzdGFnZSAxDQp0
cmFuc2xhdGlvbi4gV2hlbiB0aGUgZ3Vlc3QgY29uZmlndXJlcyB0aGUgU01NVXYzIGZvciBTdGFn
ZSAxLCBYRU4gd2lsbCB0cmFwDQp0aGUgYWNjZXNzIGFuZCBjb25maWd1cmUgaGFyZHdhcmUuDQoN
ClNNTVV2MyBEcml2ZXIoR3Vlc3QgT1MpIC0+IENvbmZpZ3VyZSB0aGUgU3RhZ2UtMSB0cmFuc2xh
dGlvbiAtPg0KWEVOIHRyYXAgYWNjZXNzIC0+IFhFTiBTTU1VdjMgZHJpdmVyIGNvbmZpZ3VyZSB0
aGUgSFcuDQoNClRoZSBmaW5hbCBwYXRjaCBzZXJpZXMgY29tbWl0IHByb3ZpZGVzIGEgZGVzaWdu
IGRvY3VtZW50IGZvciB0aGUgZW11bGF0ZWQNCklPTU1VIChhcm0tdmlvbW11LnJzdCksIHdoaWNo
IHdhcyBwcmV2aW91c2x5IGRpc2N1c3NlZCB3aXRoIHRoZSBtYWludGFpbmVycy4NCkRldGFpbHMg
cmVnYXJkaW5nIGltcGxlbWVudGF0aW9uLCBmdXR1cmUgd29yayBhbmQgc2VjdXJpdHkgcmlza3Mg
YXJlIG91dGxpbmVkDQppbiB0aGlzIGRvY3VtZW50Lg0KDQotLS0NCkNoYW5nZXMgaW4gdjI6DQog
LSBVcGRhdGVkIGRlc2lnbiBhbmQgaW1wbGVtZW50YXRpb24gd2l0aCB2SU9NTVUtPnBJT01NVSBt
YXBwaW5nIGxheWVyDQogLSBBZGRyZXNzZWQgc2VjdXJpdHkgcmlza3MgaW4gdGhlIGRlc2lnbiwg
cHJvdmlkZWQgaW5pdGlhbCBwZXJmb3JtYW5jZQ0KICAgbWVhc3VyZW1lbnRzDQogLSBBZGRyZXNz
ZWQgY29tbWVudHMgZnJvbSBwcmV2aW91cyB2ZXJzaW9uDQogLSBUZXN0ZWQgb24gUmVuZXNhcyBS
LUNhciBwbGF0Zm9ybSwgaW5pdGlhbCBwZXJmb3JtYW5jZSBtZWFzdXJlbWVudHMgZm9yDQogICBz
dGFnZS0xIHZzIHN0YWdlLTEtbGVzcyBndWVzdHMNCi0tLQ0KDQpKZWFuLVBoaWxpcHBlIEJydWNr
ZXIgKDEpOg0KICB4ZW4vYXJtOiBzbW11djM6IE1haW50YWluIGEgU0lELT5kZXZpY2Ugc3RydWN0
dXJlDQoNCk1pbGFuIERqb2tpYyAoMyk6DQogIHhlbi9hcm06IHZJT01NVSB2U0lELT5wU0lEIG1h
cHBpbmcgbGF5ZXINCiAgbGlieGwvYXJtOiBJbnRyb2R1Y2UgZG9tY3RsIGNvbW1hbmQgZm9yIElP
TU1VIHZTSUQvdlJJRCBtYXBwaW5nDQogIGRvYy9hcm06IHZJT01NVSBkZXNpZ24gZG9jdW1lbnQN
Cg0KUmFodWwgU2luZ2ggKDE5KToNCiAgeGVuL2FybTogc21tdXYzOiBBZGQgc3VwcG9ydCBmb3Ig
c3RhZ2UtMSBhbmQgbmVzdGVkIHN0YWdlIHRyYW5zbGF0aW9uDQogIHhlbi9hcm06IHNtbXV2Mzog
QWxsb2MgaW9fZG9tYWluIGZvciBlYWNoIGRldmljZQ0KICB4ZW4vYXJtOiB2SU9NTVU6IGFkZCBn
ZW5lcmljIHZJT01NVSBmcmFtZXdvcmsNCiAgeGVuL2FybTogdnNtbXV2MzogQWRkIGR1bW15IHN1
cHBvcnQgZm9yIHZpcnR1YWwgU01NVXYzIGZvciBndWVzdHMNCiAgeGVuL2RvbWN0bDogQWRkIFhF
Tl9ET01DVExfQ09ORklHX1ZJT01NVV8qIGFuZCB2aW9tbXUgY29uZmlnIHBhcmFtDQogIHhlbi9h
cm06IHZJT01NVTogQWRkIGNtZGxpbmUgYm9vdCBvcHRpb24gInZpb21tdSA9IDxzdHJpbmc+Ig0K
ICB4ZW4vYXJtOiB2c21tdXYzOiBBZGQgc3VwcG9ydCBmb3IgcmVnaXN0ZXJzIGVtdWxhdGlvbg0K
ICB4ZW4vYXJtOiB2c21tdXYzOiBBZGQgc3VwcG9ydCBmb3IgY21kcXVldWUgaGFuZGxpbmcNCiAg
eGVuL2FybTogdnNtbXV2MzogQWRkIHN1cHBvcnQgZm9yIGNvbW1hbmQgQ01EX0NGR0lfU1RFDQog
IHhlbi9hcm06IHZzbW11djM6IEF0dGFjaCBTdGFnZS0xIGNvbmZpZ3VyYXRpb24gdG8gU01NVXYz
IGhhcmR3YXJlDQogIHhlbi9hcm06IHZzbW11djM6IEFkZCBzdXBwb3J0IGZvciBldmVudCBxdWV1
ZSBhbmQgZ2xvYmFsIGVycm9yDQogIHhlbi9hcm06IHZzbW11djM6IEFkZCAiaW9tbXVzIiBwcm9w
ZXJ0eSBub2RlIGZvciBkb20wIGRldmljZXMNCiAgeGVuL2FybTogdklPTU1VOiBJT01NVSBkZXZp
Y2UgdHJlZSBub2RlIGZvciBkb20wDQogIHhlbi9hcm06IHZzbW11djM6IEVtdWxhdGVkIFNNTVV2
MyBkZXZpY2UgdHJlZSBub2RlIGZvciBkb20wbGVzcw0KICBhcm0vbGlieGw6IHZzbW11djM6IEVt
dWxhdGVkIFNNTVV2MyBkZXZpY2UgdHJlZSBub2RlIGluIGxpYnhsDQogIHhlbi9hcm06IHZzbW11
djM6IEFsbG9jIHZpcnEgZm9yIHZpcnR1YWwgU01NVXYzDQogIHhlbi9hcm06IHZzbW11djM6IEFk
ZCBzdXBwb3J0IHRvIHNlbmQgc3RhZ2UtMSBldmVudCB0byBndWVzdA0KICBsaWJ4bC9hcm06IHZJ
T01NVTogTW9kaWZ5IHRoZSBwYXJ0aWFsIGRldmljZSB0cmVlIGZvciBpb21tdXMNCiAgeGVuL2Fy
bTogdklPTU1VOiBNb2RpZnkgdGhlIHBhcnRpYWwgZGV2aWNlIHRyZWUgZm9yIGRvbTBsZXNzDQoN
CiBkb2NzL2Rlc2lnbnMvYXJtLXZpb21tdS5yc3QgICAgICAgICAgICAgfCAzOTAgKysrKysrKysr
Kw0KIGRvY3MvbWFuL3hsLmNmZy41LnBvZC5pbiAgICAgICAgICAgICAgICB8ICAxMyArDQogZG9j
cy9taXNjL3hlbi1jb21tYW5kLWxpbmUucGFuZG9jICAgICAgIHwgICA5ICsNCiB0b29scy9nb2xh
bmcveGVubGlnaHQvaGVscGVycy5nZW4uZ28gICAgfCAgIDIgKw0KIHRvb2xzL2dvbGFuZy94ZW5s
aWdodC90eXBlcy5nZW4uZ28gICAgICB8ICAgMSArDQogdG9vbHMvaW5jbHVkZS9saWJ4bC5oICAg
ICAgICAgICAgICAgICAgIHwgICA1ICsNCiB0b29scy9pbmNsdWRlL3hlbmN0cmwuaCAgICAgICAg
ICAgICAgICAgfCAgMTIgKw0KIHRvb2xzL2xpYnMvY3RybC94Y19kb21haW4uYyAgICAgICAgICAg
ICB8ICAyMyArDQogdG9vbHMvbGlicy9saWdodC9saWJ4bF9hcm0uYyAgICAgICAgICAgIHwgMjMw
ICsrKysrLQ0KIHRvb2xzL2xpYnMvbGlnaHQvbGlieGxfdHlwZXMuaWRsICAgICAgICB8ICAgNiAr
DQogdG9vbHMveGwveGxfcGFyc2UuYyAgICAgICAgICAgICAgICAgICAgIHwgICA5ICsNCiB4ZW4v
YXJjaC9hcm0vZG9tMGxlc3MtYnVpbGQuYyAgICAgICAgICAgfCAgNzIgKysNCiB4ZW4vYXJjaC9h
cm0vZG9tYWluLmMgICAgICAgICAgICAgICAgICAgfCAgMjYgKw0KIHhlbi9hcmNoL2FybS9kb21h
aW5fYnVpbGQuYyAgICAgICAgICAgICB8IDEwMyArKy0NCiB4ZW4vYXJjaC9hcm0vZG9tY3RsLmMg
ICAgICAgICAgICAgICAgICAgfCAgMzEgKw0KIHhlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9kb21h
aW4uaCAgICAgICB8ICAgNCArDQogeGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2lvbW11LmggICAg
ICAgIHwgICA3ICsNCiB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vdmlvbW11LmggICAgICAgfCAx
MTMgKysrDQogeGVuL2NvbW1vbi9kZXZpY2UtdHJlZS9kb20wbGVzcy1idWlsZC5jIHwgIDU1ICst
DQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvS2NvbmZpZyAgICAgICAgIHwgIDEzICsNCiB4ZW4v
ZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vTWFrZWZpbGUgICAgfCAgIDIgKw0KIHhlbi9kcml2ZXJz
L3Bhc3N0aHJvdWdoL2FybS9zbW11LXYzLmMgICB8IDM2OSArKysrKysrKy0NCiB4ZW4vZHJpdmVy
cy9wYXNzdGhyb3VnaC9hcm0vc21tdS12My5oICAgfCAgNDkgKy0NCiB4ZW4vZHJpdmVycy9wYXNz
dGhyb3VnaC9hcm0vdmlvbW11LmMgICAgfCAgOTYgKysrDQogeGVuL2RyaXZlcnMvcGFzc3Rocm91
Z2gvYXJtL3ZzbW11LXYzLmMgIHwgOTU4ICsrKysrKysrKysrKysrKysrKysrKysrKw0KIHhlbi9k
cml2ZXJzL3Bhc3N0aHJvdWdoL2FybS92c21tdS12My5oICB8ICAzMiArDQogeGVuL2luY2x1ZGUv
cHVibGljL2FyY2gtYXJtLmggICAgICAgICAgIHwgIDE0ICstDQogeGVuL2luY2x1ZGUvcHVibGlj
L2RldmljZV90cmVlX2RlZnMuaCAgIHwgICAxICsNCiB4ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3Rs
LmggICAgICAgICAgICAgfCAgMTggKw0KIHhlbi9pbmNsdWRlL3hlbi9pb21tdS5oICAgICAgICAg
ICAgICAgICB8ICAxMyArLQ0KIHhlbi94c20vZmxhc2svaG9va3MuYyAgICAgICAgICAgICAgICAg
ICB8ICAgNCArDQogeGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMgICAgIHwgICAy
ICsNCiAzMiBmaWxlcyBjaGFuZ2VkLCAyNjI3IGluc2VydGlvbnMoKyksIDU1IGRlbGV0aW9ucygt
KQ0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2NzL2Rlc2lnbnMvYXJtLXZpb21tdS5yc3QNCiBjcmVh
dGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3Zpb21tdS5oDQogY3JlYXRl
IG1vZGUgMTAwNjQ0IHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS92aW9tbXUuYw0KIGNyZWF0
ZSBtb2RlIDEwMDY0NCB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vdnNtbXUtdjMuYw0KIGNy
ZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vdnNtbXUtdjMuaA0K
DQotLSANCjIuNDMuMA0K


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259637.1552984 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7E-0007eR-Qa; Mon, 23 Mar 2026 22:51:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259637.1552984; Mon, 23 Mar 2026 22:51:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7E-0007eK-NW; Mon, 23 Mar 2026 22:51:20 +0000
Received: by outflank-mailman (input) for mailman id 1259637;
 Mon, 23 Mar 2026 22:51:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w4o7D-0007bQ-0F
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:51:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4o7C-00As5i-Co
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 23:51:18 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c39c-e002-0a2a0a5209dd-0a2a4508b60e-8
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:18 +0100
Received: from [52.101.66.84]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c3e5-1950-0a2a45080019-346542541204-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:18 +0100
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB7653.eurprd03.prod.outlook.com (2603:10a6:20b:34b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:51:15 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22:51:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=km9IMwVZ36w90NnW10fVWm/gqUfca+ANTSdrnj85X/nHdrPQIHwIbwwF4xyCVsNfZGciuJrZa5A+VD7qfjGSerRyYdF1ewTlTnxXo4GGwLQ/L6kajHTfp0aSQosUs+E+yt2AJnTNJwA+H2V1llpJhFnZG+acLovAosrozNWIZfL5OfXFtz0iU1kChghyjOZj4T++NyAF1/jF15pd0d74XXesEHgJsB0mIyA0FI6EQMdn6j4+MnsmlPK0gP0HVby12CAd5ORrmvNyLOu0VojpHNzJJdvO3zSG+cwNqBNKiJE36MnW+yw0c6O+D+veHqw9EPEeKelHMw3TJnGCP4Bmrw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vewgCNhKHzwDU0YYwkdB31/YzVG34husbiEbX4F2Gxs=;
 b=EgJKlRb/aSmNOA9FCmkIe+3Zv8inFE0MhP8wTjP7wk1GDF8LG+Fs3NOWmgommY7eodWZ4SBXKzc434bPR1cuYyxlNmHtSgpIMuMfrwGSmXbCxnHbNvgOgfDjdRFskkxqdR+7Vw4BSFKC2TveiPsGdoJ0bjfu5h/htng5mpS9qpvL95eB2LskuG8R0mzh7S6kErQukGSNhqkJu40qkgRTBbnTgI/ivvEw8HlmvlZuzxLPxkro+Q2/cONGQgLwwnNzxBvZzq18WMMShdNsMbuefT5l4BYEnki7y1dc6hPGoencLp3LDb0LIoR1PCswhjPrjsKNGzRO7dnxMVMGRx/ugw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vewgCNhKHzwDU0YYwkdB31/YzVG34husbiEbX4F2Gxs=;
 b=arpndRpgeQpCYkShynYUZn8eUvyX56OZ1WTze85ayV1tIV66hoW+l2FNx3Y2SJouovMxFVx1JMEd+4cVYh9nfPqfeyM8OVwi+KDsBWtOlO4Jt3HKRStAyepNzOoozOzapFwJ3JoeghEk/Qf+9wZt2IAI0GNL1s8FXOQ7tbDUVvGgPt620bo8N+ln1Ed7VR2eyKynW+vzv0ofSlakG4YWwJK8lujnp7aXFowbY3oQVuTTpm2fMxyXLCZCCPHDTZdaEOlNEnZbhJKy2AonqqCETyUjOhHAaTQWsOpcVgiw/Hf3ljG6OFLGC9R0U7lTjeaSHU6ilyAh5bhE0JTCs93VeA==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Jean-Philippe Brucker <jean-philippe@linaro.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Rahul Singh <rahul.singh@arm.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Jonathan Cameron <Jonathan.Cameron@huawei.com>, Eric Auger
	<eric.auger@redhat.com>, Keqian Zhu <zhukeqian1@huawei.com>, Will Deacon
	<will@kernel.org>, Joerg Roedel <jroedel@suse.de>
Subject: [PATCH v2 01/23] xen/arm: smmuv3: Maintain a SID->device structure
Thread-Topic: [PATCH v2 01/23] xen/arm: smmuv3: Maintain a SID->device
 structure
Thread-Index: AQHcuxeOzkUuXkjiGEeMk+4qntKL8w==
Date: Mon, 23 Mar 2026 22:51:15 +0000
Message-ID:
 <1621f3abdcaac0e941df7474dfaaa035fb819b4c.1774305918.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB7653:EE_
x-ms-office365-filtering-correlation-id: 8807c382-dee3-4da0-eef1-08de892eb08d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|7416014|1800799024|38070700021|22082099003|18002099003|56012099003;
x-microsoft-antispam-message-info:
 +gCBJ0kP1hyzciXpiaohioHglDAzpfULa7skIDjs6MAN2M70Ou9xgtJvSiqFaXbL6zqhD+R0zaDmS19Wf6zI3KMN3K8C/lx8sRnt23oiK8GLAyiqNN+wrI0nI9zYrX3WZj/pJ/kbTtiu80aFj2XzMk9QEDGI4vta4eVv+wV9MMe42x80tKbwoEOmwLoBFCrpBkAaiVBkHHwBI/gPRlqT5q8SI7QSHLLaHI8yPtf16lSG8RueIEHnYPr03MDdm5qb3HuerffHJ2XT9Evin81ThYq8LQwQGlMwCDCpjf8FEgWSnxM0xbQjG6YGZsCIqLZOLrWK6DI+AtYL89F7KsYHV5QofBFW8wq6buSlWdaJnX18reAJGQT617HCWf3GZE6DBatyMqF1uJiA+hCdfq4S59itXznNgEK344VsFgozq7yM/LRngph+0s7wH28eHIuI5YJLEomn79C0Aq92mwx5o7fafnZQkcY0OpbvnWerLibIrHCrtIgjaTIJtxa8Sdmpzq/1uxuyJAoGf2zpB2oUJvorvPh5B+GFHC//b4l012LTVsqxTBytXuNOpe3SDzLMtYt8IPbLI4ngG9iWTM+lfZjibJUvqauvLSobBmteCUE5Mc4Bf+YqLTnm8BllJE853m0q4a9FlZo4IzChVI2nGmjRdAzFF8eQnhxizDOcE7NgKwSpobcqMswvNMz2sFWsaJJGqCKrCSIDk/SxogCI3u0p9KNih5XyTNWuayTNiBh2mSeLJ2EW0yHxAdaAHNtLAkZUPXF2kPTp0BOHbz9aFL2c4L2xtdHhp5ts9cPC0Tg=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(38070700021)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?f9t8UmGsZlSt0qbsOtsyph1sUa3kd11ooj4381x2PSOXey5nrW68QsBToV?=
 =?iso-8859-1?Q?axSGlWMQ+x/+jrlvjZL8eTj3cxbUER+gewzrRJiOTRrHUTsSFRmRKDUV63?=
 =?iso-8859-1?Q?JvQYXh7M8tqdJwyHDWnzcHKth15ecMkdniTP9Ggwqj6TKV2Er7G3cvcnLd?=
 =?iso-8859-1?Q?7kz3uiP97JQfOC07bbg2NOgglsvwSndfui00IbLUe4q1CHvPZj+0VIAJU/?=
 =?iso-8859-1?Q?ECYbUmOuiSK4w46mT41kEE9A9L1XCtuRqfEB7mAD+kZZqUkd+/K7oJasCD?=
 =?iso-8859-1?Q?vzncjdLA8OFb+3Ay4+K5U/feEYTiLa5Zc+i4hesx8ADf3RDrf+b0bYResZ?=
 =?iso-8859-1?Q?81PMCfAnq/pAewj+Ezd8bcmLGkC/06wzFhiGgHYfz4iuYE/h7xhwitKTXJ?=
 =?iso-8859-1?Q?5owyPGCet79ZUSUZ48655QqcKWACy/UU7K42ZjJAlvXNULetWOgoErJPTb?=
 =?iso-8859-1?Q?EG4+/y/pjzvKY32Mq630GCcSV5yb45/4UzkqwbWY0kYQb1q5Ri3s8kbd8g?=
 =?iso-8859-1?Q?1ZYK2CzcNlNJaylMCGq2PGxd7w7nzJYTIpcb22mQFL16ctK90dX6pAz8pW?=
 =?iso-8859-1?Q?SLLrClh8eBQKyoDiy6ppPjsCkMeoMcFMUmU6+a2ioDDhCJ/8xaROgncV8I?=
 =?iso-8859-1?Q?XDiEzf6oSsReX/Dee9aFcErBfRXfhvhVDWx4AyW20H3ASzEAMzUX7BYfrg?=
 =?iso-8859-1?Q?IvM1n3Z2EWE9zlu+Kg9UUr+QQxrqgFkDJXiSmS0BpFdJXoTrUlH0/JI/tt?=
 =?iso-8859-1?Q?CD3rDN/VXQVv7rtFtlfUfRjrq07t/R/XDkOPki5gLw5VSLnjd4pgqIdng0?=
 =?iso-8859-1?Q?OY6BrIbgZNpQ55A4Hwz/8c2nF+To/2RhGgymUqCEy44biiQqEFJxPm+iF9?=
 =?iso-8859-1?Q?S3xL/P5Y2ry4AiNNx6KubckyjlMOAo4So6twR73rwyUtezs5JtZ9oxSPhv?=
 =?iso-8859-1?Q?36+shwWagpsVqy43pmqdnGtW6TyHd2fLFkHRbjW7ZLLTNRg5Gk9yuME7sa?=
 =?iso-8859-1?Q?kUzpu5IPgFhcy6ibSgJCftjxe71UOmtCYq0cjnVbk3V8IZqTfvhFPCl2uM?=
 =?iso-8859-1?Q?rxDc5q2uMyz6fX2mLYIpnL59W50/RjpecK1cQPGm0jiphAlI/wyO+/YYDD?=
 =?iso-8859-1?Q?nk3BRPEE6L0y5xiLqzur6fhkK3FMgOvwikIemJokZhC51uoIgD6Q5TLAmB?=
 =?iso-8859-1?Q?wG9PCuvQEbaEkN++XkR25t8U4kIH5ZAgkLQZsHuZkjHS6yyOxJBIFUAkOS?=
 =?iso-8859-1?Q?FlFhWMR8dl4YvPKkR50hNKeX0V5wNYIiyOlsxYR1mdyv0Yq2Vb6DmHP+AL?=
 =?iso-8859-1?Q?ga7ksiW3L4ZhMz/xMlQ9Wt836bP33TPWr+bX+2/VjS3Y3Z+4jaq07UluRG?=
 =?iso-8859-1?Q?bj/NhVi/CQtQVNZdoavpZtVOeg1sDHCLcdxQChuqH9BVVYc+gcXflWXrcH?=
 =?iso-8859-1?Q?BcViMrAipGN3eLog6hqDfudpQVMb15kbRCLRC08ELBbSlF4ddLw16DwHcs?=
 =?iso-8859-1?Q?ggknj3apMNe5GJKhnNcgEPvbolh13JjIc6pIPn7h0Y+Av3d5FQre2dUlyJ?=
 =?iso-8859-1?Q?ltHWktAUy/UcUlZLXJZQH3T8Qfa2vMD7MJqPCP/kDwoUK7G5a/Zn1v7fbx?=
 =?iso-8859-1?Q?dReQuGLfB9kVgU13eVc/Jk2W7OlQx3V9btwt/Yrgi5OcNi309iyc7eCVhW?=
 =?iso-8859-1?Q?57pvGFzy/M4jHMi5Q1haKpYytCGvHlXposZVjdMVsAqwYggQyV3GeDUom0?=
 =?iso-8859-1?Q?cqn9G7mX+1nQPv6cXljgNRzRva3yxycojAdeZflPAdeyUr3G6aa+Vx2w/4?=
 =?iso-8859-1?Q?RS3MtB5hRE4b8dVC9IlqSrCXG31kkO0=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8807c382-dee3-4da0-eef1-08de892eb08d
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:51:15.6541
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 3Zp7Gn7Ijxmod+WUdE3qFJXiUwGOFTADBb90Tk+xejN0Mjo2ndv4ylTRw0NdDMe8nyfmOi0brL7kGKO0HIa64g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7653
X-purgate-ID: tlsNG-c1860d/1774306278-EA28F726-91406869/0/0
X-purgate-type: clean
X-purgate-size: 7580

From: Jean-Philippe Brucker <jean-philippe@linaro.org>

Backport Linux commit cdf315f907d4. This is the clean backport without
any changes.

When handling faults from the event or PRI queue, we need to find the
struct device associated with a SID. Add a rb_tree to keep track of
SIDs.

Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Keqian Zhu <zhukeqian1@huawei.com>
Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Acked-by: Will Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/20210401154718.307519-8-jean-philippe@linar=
o.org
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git cd=
f315f907d4
Signed-off-by: Rahul Singh <rahul.singh@arm.com>
---
 xen/drivers/passthrough/arm/smmu-v3.c | 131 +++++++++++++++++++++-----
 xen/drivers/passthrough/arm/smmu-v3.h |  13 ++-
 2 files changed, 118 insertions(+), 26 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthroug=
h/arm/smmu-v3.c
index bf153227db..73cc4ef08f 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -809,6 +809,27 @@ static int arm_smmu_init_l2_strtab(struct arm_smmu_dev=
ice *smmu, u32 sid)
 	return 0;
 }
=20
+__maybe_unused
+static struct arm_smmu_master *
+arm_smmu_find_master(struct arm_smmu_device *smmu, u32 sid)
+{
+	struct rb_node *node;
+	struct arm_smmu_stream *stream;
+
+	node =3D smmu->streams.rb_node;
+	while (node) {
+		stream =3D rb_entry(node, struct arm_smmu_stream, node);
+		if (stream->id < sid)
+			node =3D node->rb_right;
+		else if (stream->id > sid)
+			node =3D node->rb_left;
+		else
+			return stream->master;
+	}
+
+	return NULL;
+}
+
 /* IRQ and event handlers */
 static void arm_smmu_evtq_tasklet(void *dev)
 {
@@ -1042,8 +1063,8 @@ static int arm_smmu_atc_inv_master(struct arm_smmu_ma=
ster *master,
 	if (!master->ats_enabled)
 		return 0;
=20
-	for (i =3D 0; i < master->num_sids; i++) {
-		cmd->atc.sid =3D master->sids[i];
+	for (i =3D 0; i < master->num_streams; i++) {
+		cmd->atc.sid =3D master->streams[i].id;
 		arm_smmu_cmdq_issue_cmd(master->smmu, cmd);
 	}
=20
@@ -1271,13 +1292,13 @@ static void arm_smmu_install_ste_for_dev(struct arm=
_smmu_master *master)
 	int i, j;
 	struct arm_smmu_device *smmu =3D master->smmu;
=20
-	for (i =3D 0; i < master->num_sids; ++i) {
-		u32 sid =3D master->sids[i];
+    for (i =3D 0; i < master->num_streams; ++i) {
+		u32 sid =3D master->streams[i].id;
 		__le64 *step =3D arm_smmu_get_step_for_sid(smmu, sid);
=20
 		/* Bridged PCI devices may end up with duplicated IDs */
 		for (j =3D 0; j < i; j++)
-			if (master->sids[j] =3D=3D sid)
+			if (master->streams[j].id =3D=3D sid)
 				break;
 		if (j < i)
 			continue;
@@ -1486,6 +1507,80 @@ static bool arm_smmu_sid_in_range(struct arm_smmu_de=
vice *smmu, u32 sid)
=20
 	return sid < limit;
 }
+
+static int arm_smmu_insert_master(struct arm_smmu_device *smmu,
+				  struct arm_smmu_master *master)
+{
+	int i;
+	int ret =3D 0;
+	struct arm_smmu_stream *new_stream, *cur_stream;
+	struct rb_node **new_node, *parent_node =3D NULL;
+	struct iommu_fwspec *fwspec =3D dev_iommu_fwspec_get(master->dev);
+
+	master->streams =3D _xzalloc_array(sizeof(*master->streams), sizeof(void =
*),
+					fwspec->num_ids);
+	if (!master->streams)
+		return -ENOMEM;
+	master->num_streams =3D fwspec->num_ids;
+
+	mutex_lock(&smmu->streams_mutex);
+	for (i =3D 0; i < fwspec->num_ids; i++) {
+		u32 sid =3D fwspec->ids[i];
+
+		new_stream =3D &master->streams[i];
+		new_stream->id =3D sid;
+		new_stream->master =3D master;
+
+		/*
+		 * Check the SIDs are in range of the SMMU and our stream table
+		 */
+		if (!arm_smmu_sid_in_range(smmu, sid)) {
+			ret =3D -ERANGE;
+			break;
+		}
+
+		/* Ensure l2 strtab is initialised */
+		if (smmu->features & ARM_SMMU_FEAT_2_LVL_STRTAB) {
+			ret =3D arm_smmu_init_l2_strtab(smmu, sid);
+			if (ret)
+				break;
+		}
+
+		/* Insert into SID tree */
+		new_node =3D &(smmu->streams.rb_node);
+		while (*new_node) {
+			cur_stream =3D rb_entry(*new_node, struct arm_smmu_stream,
+					      node);
+			parent_node =3D *new_node;
+			if (cur_stream->id > new_stream->id) {
+				new_node =3D &((*new_node)->rb_left);
+			} else if (cur_stream->id < new_stream->id) {
+				new_node =3D &((*new_node)->rb_right);
+			} else {
+				dev_warn(master->dev,
+					 "stream %u already in tree\n",
+					 cur_stream->id);
+				ret =3D -EINVAL;
+				break;
+			}
+		}
+		if (ret)
+			break;
+
+		rb_link_node(&new_stream->node, parent_node, new_node);
+		rb_insert_color(&new_stream->node, &smmu->streams);
+	}
+
+	if (ret) {
+		for (i--; i >=3D 0; i--)
+			rb_erase(&master->streams[i].node, &smmu->streams);
+		xfree(master->streams);
+	}
+	mutex_unlock(&smmu->streams_mutex);
+
+	return ret;
+}
+
 /* Forward declaration */
 static struct arm_smmu_device *arm_smmu_get_by_dev(const struct device *de=
v);
 static int arm_smmu_assign_dev(struct domain *d, u8 devfn, struct device *=
dev,
@@ -1495,7 +1590,7 @@ static int arm_smmu_deassign_dev(struct domain *d, ui=
nt8_t devfn,
=20
 static int arm_smmu_add_device(u8 devfn, struct device *dev)
 {
-	int i, ret;
+	int ret;
 	struct arm_smmu_device *smmu;
 	struct arm_smmu_master *master;
 	struct iommu_fwspec *fwspec;
@@ -1532,26 +1627,11 @@ static int arm_smmu_add_device(u8 devfn, struct dev=
ice *dev)
=20
 	master->dev =3D dev;
 	master->smmu =3D smmu;
-	master->sids =3D fwspec->ids;
-	master->num_sids =3D fwspec->num_ids;
 	dev_iommu_priv_set(dev, master);
=20
-	/* Check the SIDs are in range of the SMMU and our stream table */
-	for (i =3D 0; i < master->num_sids; i++) {
-		u32 sid =3D master->sids[i];
-
-		if (!arm_smmu_sid_in_range(smmu, sid)) {
-			ret =3D -ERANGE;
-			goto err_free_master;
-		}
-
-		/* Ensure l2 strtab is initialised */
-		if (smmu->features & ARM_SMMU_FEAT_2_LVL_STRTAB) {
-			ret =3D arm_smmu_init_l2_strtab(smmu, sid);
-			if (ret)
-				goto err_free_master;
-		}
-	}
+	ret =3D arm_smmu_insert_master(smmu, master);
+	if (ret)
+		goto err_free_master;
=20
 	/*
 	 * Note that PASID must be enabled before, and disabled after ATS:
@@ -1796,6 +1876,9 @@ static int __init arm_smmu_init_structures(struct arm=
_smmu_device *smmu)
 {
 	int ret;
=20
+	mutex_init(&smmu->streams_mutex);
+	smmu->streams =3D RB_ROOT;
+
 	ret =3D arm_smmu_init_queues(smmu);
 	if (ret)
 		return ret;
diff --git a/xen/drivers/passthrough/arm/smmu-v3.h b/xen/drivers/passthroug=
h/arm/smmu-v3.h
index ab07366294..ab1f29f6c7 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.h
+++ b/xen/drivers/passthrough/arm/smmu-v3.h
@@ -639,6 +639,15 @@ struct arm_smmu_device {
 	struct tasklet		evtq_irq_tasklet;
 	struct tasklet		priq_irq_tasklet;
 	struct tasklet		combined_irq_tasklet;
+
+	struct rb_root		streams;
+	struct mutex		streams_mutex;
+};
+
+struct arm_smmu_stream {
+	u32							id;
+	struct arm_smmu_master		*master;
+	struct rb_node				node;
 };
=20
 /* SMMU private data for each master */
@@ -647,8 +656,8 @@ struct arm_smmu_master {
 	struct device			*dev;
 	struct arm_smmu_domain		*domain;
 	struct list_head		domain_head;
-	u32				*sids;
-	unsigned int			num_sids;
+	struct arm_smmu_stream		*streams;
+	unsigned int				num_streams;
 	bool				ats_enabled;
 };
=20
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259639.1552993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7I-0007sw-2f; Mon, 23 Mar 2026 22:51:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259639.1552993; Mon, 23 Mar 2026 22:51:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7H-0007sp-Vh; Mon, 23 Mar 2026 22:51:23 +0000
Received: by outflank-mailman (input) for mailman id 1259639;
 Mon, 23 Mar 2026 22:51:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w4o7G-0007s3-8H
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:51:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4o7F-00As5i-KU
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 23:51:21 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c3d3-e002-0a2a0a5209dd-0a2a4504df26-8
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:21 +0100
Received: from [52.101.65.99]
 (helo=DU2PR03CU002.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c3e8-c823-0a2a45040019-3465416374e5-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:21 +0100
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB7653.eurprd03.prod.outlook.com (2603:10a6:20b:34b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:51:18 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22:51:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bmwm/ITPXiAW5Azqpb3w0AxMUxssUYIbJU7RRE7INLzZGwX9lHM/pEmPWpUUMltwedfyi/UdzfbNwFkYK2m8l0MuqVXMvcbJPX1MKTE6ykeZT/4XyBhXCPDbXnad6xz0HvaRQAAgTALDOPCU5RPUXLI/smQH90y2uaqTJdEIzXip5GZ8p7WV1I4k7S88XxT9Uf1oXMIHTibwodIM34s+So4lqp+1tPg2mlGS8YXzME9Hw4NMrySFP53D0JuaBJp4UglR0wLYOdV15q8YJhdPBu+gBB5a+X2o7vc4vkRaOzl5tf6owmoChQvrGaK8zlqI5O9esHtyrkcpP5jWaoyMCg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=j9tecJs7l+jief5fwjcb0VdatPuGZ/jTmjdUcsZ7naQ=;
 b=r1Q8vTbe0ctlNy6b8GreeJylpMJkOJQZQRnD34H1Gu9ykWjSL3tmjhmc1CjozE+pCtjKfku1dAL9EeLAHht8dq3Jgs8AlOcdJCR7H4gytt07Cot+pRtUMJZT7Eu9hR4tUDMhN0cYu6UPW9h0LmETGktLOKp0GKIueTyPB30pbESdZDyiUTfui03CqgL219ntjaFZvJX8P7PGOoLZh2e6U8YmTmrwdoVZwVHYTYPS3CIrb99fDyOUD8dDYKQdpHNRrlhPrEseBAyt7e4W5WLdiyWJu8CQtz774htIj+AF4JKune1RQcBh+1+mdNfRpREQZ1I4X/s0iwzedDjnGWbP0g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=j9tecJs7l+jief5fwjcb0VdatPuGZ/jTmjdUcsZ7naQ=;
 b=DK5YOeSwoOOcNdXYY+RlkJVfCKn4eT2YhL67s6lbItXdlsUGSPYqOpMs8MFR4ZmjHDB5A6J6a54dglBw7al/Y19C7URSQX0pGAzM4b8XyjkBv4nVeJsBDHDb+eyg8bdgkPv51fPJvnRKH163Z4sj81F+Jg76o+9bM1K3aOnu0TXu4CmigscAwkqRH/un4rQnB0DD8HLh834WLM9fWTzXgzQSYPQbzvOAE7zt40bTQG+XeMYvAapRsmJ1sGj0MPs3/Unig1STQvPfvMd6PdnEOWF0/WhoBhFCDCqNuPgF8POIcnK8TDKqzF//lT1gGHRE+qdooogdl/PF8lhD7TsxEg==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH v2 02/23] xen/arm: smmuv3: Add support for stage-1 and nested
 stage translation
Thread-Topic: [PATCH v2 02/23] xen/arm: smmuv3: Add support for stage-1 and
 nested stage translation
Thread-Index: AQHcuxePLk1RkRIjgUOb67cOJQVJRA==
Date: Mon, 23 Mar 2026 22:51:18 +0000
Message-ID:
 <cb8a2cb5df50128f4c49d34a7ab8faa4e73f83c6.1774305918.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB7653:EE_
x-ms-office365-filtering-correlation-id: 33d17402-6d36-4fa2-ced0-08de892eb275
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021|22082099003|18002099003|56012099003;
x-microsoft-antispam-message-info:
 9/hTa8iND9xWUhIuYceeG5kZu+ynPAM6HvjkzJXI/lo02IfQYmYRAwKknW4EG36XO1Lzs1MlRze3/tcdluysEQ3TKK5VCMY6Zqx8sAFj4cNJK9cFcreD8tYtMgqbgKPDLSAGyF1AnB35kOnvMJzvHBWY8CYa+zoaS3xcH1nrhEwwMHv5qSgRKkByY4z/2ld9xABA769X7GK8T6jVJ+5+wiKl5tCFB0G8fXu8pE/XtRvp3f2Ucm5XYTs68OcZSuBn8iW0QIz5q2ZESqYxjtPAWLkyGrSGZTSOTY8VgDWxEm2WIRrySwDpoJ6dACX5Gm3Fk7GZta52V/lXL7atjGGgOGdvz36PFT+gh/Dp/BQa1p+KAJ8+yS6V4/e6f6SomOV14/DREvqicRflF+LwKiEzEENdTfkPo44l1iAOfFzwqzkR4iPuZ9wGD0hau11eJsQatKcjiqVLpyCyCXM1rtGBVLKJE4Gs7P6qK3N1hpt89rLwpuek5DjzJ4si2TseOXoRhofVq9yZQ+j2RdxVw7yzx66uBYkewl0p6dvm8iZK+IUjvcc2ecpLax8H/djB3snpnnxeuG7Bn9ONQlxnshNtI7c3LNOKWjFwj13USsye6r3IgNWTFI7tCUV4HVjHxGd6Zq6niGxc785/ukmUipJb85fXfVDtPHWWfdmeCRSa4gjzgs+CuXOvz8pWKeCbciBalYGqvoEtcmq0aH4JtX0upDKJbrvsIwvLym8pN04uC1T8LDwJC4MxGtYGsFUkS8VBxVLaJu+95ZQHFLpnJQwyrzqHobtb8wqoOLMYgJUyono=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?FYJqqeAVMDMPCFoIMyq6UxiiqvizY4BMg/7Q8/3zI0X7CUV+o6gguui5oi?=
 =?iso-8859-1?Q?j/SBGkGEAy4/R41sYIizcGJngdq6scRGVNJjkXwIq4bCwMGdy8Jl2ooUR9?=
 =?iso-8859-1?Q?SUGy00eMyEEYLRjS6ysF0cD+oik9XKoqVFeNPleOJrdgheX7Jh1QtOx2c+?=
 =?iso-8859-1?Q?hX2CvV60XwohIj1YvrbgYIdyTRGT/vdKLTxa8MnxHLtjWmevDZPzK9yPGC?=
 =?iso-8859-1?Q?DGc7yJm/Ud8y9uva7jtRCWbEis/Q30yQyPdoPw+Jhxi8JxzxQZBATbm5jW?=
 =?iso-8859-1?Q?rTURtHWd+2clBn+dsG6LvqH1IHGfT2n601Xmj6mV9IUe2ekKk92wIPSFYj?=
 =?iso-8859-1?Q?WQcZ7Mwkjqa648CHFBXISi1N/X8u4O93HmCoC9+8H0MgOgIZFmM535OhfX?=
 =?iso-8859-1?Q?mqPydSqgijiQ/SJCcR4IRk8G+1v4oLxfEHeO4UB3saYnqTarfz9fygxJRI?=
 =?iso-8859-1?Q?3UR0KtxnTwDnz3Lmo6L2KgzmfVNjKJpalo+dEr13J53QhW4x8QYoP38NWQ?=
 =?iso-8859-1?Q?or8hHi6AWmoXTnzJ1SP5jZVXYwqKUNPpPbyYvNgpRISP//YBjisbfWciEt?=
 =?iso-8859-1?Q?rVGZMatqO/6k2BGaFIv1sffJdOGdbT3zF+4ZSksY7t7byZj+d/E5yy5szW?=
 =?iso-8859-1?Q?qhp7UGpeIJIlbkXJ+WkUnYKqxtfa6wHQgr6D28tFD3H1WEjOZf52Kzhyyc?=
 =?iso-8859-1?Q?WnWGA/8cym8BPAqVVSMGMgWwmdAFBC1986V0vMPz/tMs9dW/+wHXMNUna/?=
 =?iso-8859-1?Q?em7yCbQGPYfnCZDY3APAchVyjztBlE3MnMLbD7velLkeNyOlXAmMER3RCi?=
 =?iso-8859-1?Q?u7Xpku2iJv5fAsRwgu48DvqQlCtmH5E8GTN8ioLHIG83bl2unTL1J9E8wd?=
 =?iso-8859-1?Q?/thwF0zYKIK4fV/OsEEMfFGHf7k2JvG35Ye1u8ugL+1jXpcG+X62kTJbul?=
 =?iso-8859-1?Q?F4qpTUmU16GzMpNpfoFmdXaXGIx3XoFFtAhqNipMGdHS7zbvUhiaHumXyZ?=
 =?iso-8859-1?Q?HCEZeJlOUwU/GZnl1rw7rOJgBIDxel9CwrtxmCf4xDAsZKlboAkRLgK7o9?=
 =?iso-8859-1?Q?5jF6/a18m7W3j877QRu7tEYsF6Mtj7O1hMxkx4APOG9QQO0fev3Fvopnje?=
 =?iso-8859-1?Q?y741avAgnmOGIAg8/oRcVw8qlTO8JT1v7CZzrDxz9veUNikMFAE9BjKMtg?=
 =?iso-8859-1?Q?9kHbLRW9kozhT3knuvuVSlDd48mDFfVqoybz2xbshXm3Xb8L6cbKjBxgY4?=
 =?iso-8859-1?Q?2+glM00v/uukyGovjEMQO9qGzzxPx8qWy1wbbTObiaVQJr+9zMPKrghYjx?=
 =?iso-8859-1?Q?i/fh5F1XrtejZ6ccMMJNKYI7bYMVQipWXj5GtDnDZHf+R3imxtt4H9t7wa?=
 =?iso-8859-1?Q?oxirNDuJ74zq2ZCC73LN2u83Cy+rfHVb6rkNqazhGsBm1/g1luPIpt1cn1?=
 =?iso-8859-1?Q?bFxFQpkS9bKzXd+AtZOeQHOjoYiJdEs0pHM6EkQwrn1BAYsHJ12dW4JQ7y?=
 =?iso-8859-1?Q?FdSjk+k+t4aZcdqQodYKVuhRD5e8Mx0i92/6LdQmf8cI4hJll6IPbv+SSn?=
 =?iso-8859-1?Q?qZELVRSk2QY2auUoTYA0zzvBzd0hmrFLtYmhgVn8Cx7zCtigrzQGkBof80?=
 =?iso-8859-1?Q?g+Y1OqA0go74hn+CPaKW8VVTYCocyn3c+SvP0IzTwYfm23cdqs+x6pYu0c?=
 =?iso-8859-1?Q?whO629Y3H1XzYSa3Ej2ps+abyLbQyeOxcFVua2LgP5PUB1ypCbF8cBcNuL?=
 =?iso-8859-1?Q?CUlJsWUYypjOOl0zQeWwAdQBHbJ01X95smJ7l/pEis5RgUCkKb2OYRNv06?=
 =?iso-8859-1?Q?oWYCd+iYELjANlHNUhTqgSptbHF3c2Q=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 33d17402-6d36-4fa2-ced0-08de892eb275
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:51:18.8218
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: yym28Z5FrSo0/VriHR3XpJ56paszqq2FAqjskSxHgYZWXMrcMlc8sg/CIP+c5ZQY+FGnwPFsxovdiHmF6iLMfw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7653
X-purgate-ID: tlsNG-ebf023/1774306281-B9C819D1-EAD6BD05/0/0
X-purgate-type: clean
X-purgate-size: 7270

From: Rahul Singh <rahul.singh@arm.com>

Xen SMMUv3 driver only supports stage-2 translation. Add support for
Stage-1 translation that is required to support nested stage
translation.

In true nested mode, both s1_cfg and s2_cfg will coexist.
Let's remove the union. When nested stage translation is setup, both
s1_cfg and s2_cfg are valid.

We introduce a new smmu_domain abort field that will be set
upon guest stage-1 configuration passing. If no guest stage-1
config has been attached, it is ignored when writing the STE.

arm_smmu_write_strtab_ent() is modified to write both stage
fields in the STE and deal with the abort field.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/drivers/passthrough/arm/smmu-v3.c | 93 +++++++++++++++++++++++----
 xen/drivers/passthrough/arm/smmu-v3.h |  9 +++
 2 files changed, 91 insertions(+), 11 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthroug=
h/arm/smmu-v3.c
index 73cc4ef08f..f9c6837919 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -683,8 +683,10 @@ static void arm_smmu_write_strtab_ent(struct arm_smmu_=
master *master, u32 sid,
 	 * 3. Update Config, sync
 	 */
 	u64 val =3D le64_to_cpu(dst[0]);
-	bool ste_live =3D false;
+	bool s1_live =3D false, s2_live =3D false, ste_live =3D false;
+	bool abort, translate =3D false;
 	struct arm_smmu_device *smmu =3D NULL;
+	struct arm_smmu_s1_cfg *s1_cfg =3D NULL;
 	struct arm_smmu_s2_cfg *s2_cfg =3D NULL;
 	struct arm_smmu_domain *smmu_domain =3D NULL;
 	struct arm_smmu_cmdq_ent prefetch_cmd =3D {
@@ -699,30 +701,54 @@ static void arm_smmu_write_strtab_ent(struct arm_smmu=
_master *master, u32 sid,
 		smmu =3D master->smmu;
 	}
=20
-	if (smmu_domain)
-		s2_cfg =3D &smmu_domain->s2_cfg;
+	if (smmu_domain) {
+		switch (smmu_domain->stage) {
+		case ARM_SMMU_DOMAIN_NESTED:
+			s1_cfg =3D &smmu_domain->s1_cfg;
+			fallthrough;
+		case ARM_SMMU_DOMAIN_S2:
+			s2_cfg =3D &smmu_domain->s2_cfg;
+			break;
+		default:
+			break;
+		}
+		translate =3D !!s1_cfg || !!s2_cfg;
+	}
=20
 	if (val & STRTAB_STE_0_V) {
 		switch (FIELD_GET(STRTAB_STE_0_CFG, val)) {
 		case STRTAB_STE_0_CFG_BYPASS:
 			break;
+		case STRTAB_STE_0_CFG_S1_TRANS:
+			s1_live =3D true;
+			break;
 		case STRTAB_STE_0_CFG_S2_TRANS:
-			ste_live =3D true;
+			s2_live =3D true;
+			break;
+		case STRTAB_STE_0_CFG_NESTED:
+			s1_live =3D true;
+			s2_live =3D true;
 			break;
 		case STRTAB_STE_0_CFG_ABORT:
-			BUG_ON(!disable_bypass);
 			break;
 		default:
 			BUG(); /* STE corruption */
 		}
 	}
=20
+	ste_live =3D s1_live || s2_live;
+
 	/* Nuke the existing STE_0 value, as we're going to rewrite it */
 	val =3D STRTAB_STE_0_V;
=20
 	/* Bypass/fault */
-	if (!smmu_domain || !(s2_cfg)) {
-		if (!smmu_domain && disable_bypass)
+	if (!smmu_domain)
+		abort =3D disable_bypass;
+	else
+		abort =3D smmu_domain->abort;
+
+	if (abort || !translate) {
+		if (abort)
 			val |=3D FIELD_PREP(STRTAB_STE_0_CFG, STRTAB_STE_0_CFG_ABORT);
 		else
 			val |=3D FIELD_PREP(STRTAB_STE_0_CFG, STRTAB_STE_0_CFG_BYPASS);
@@ -740,7 +766,33 @@ static void arm_smmu_write_strtab_ent(struct arm_smmu_=
master *master, u32 sid,
 		return;
 	}
=20
+	if (ste_live) {
+		/* First invalidate the live STE */
+		dst[0] =3D cpu_to_le64(STRTAB_STE_0_CFG_ABORT);
+		arm_smmu_sync_ste_for_sid(smmu, sid);
+	}
+
+	if (s1_cfg) {
+		BUG_ON(s1_live);
+		dst[1] =3D cpu_to_le64(
+			 FIELD_PREP(STRTAB_STE_1_S1DSS, STRTAB_STE_1_S1DSS_SSID0) |
+			 FIELD_PREP(STRTAB_STE_1_S1CIR, STRTAB_STE_1_S1C_CACHE_WBRA) |
+			 FIELD_PREP(STRTAB_STE_1_S1COR, STRTAB_STE_1_S1C_CACHE_WBRA) |
+			 FIELD_PREP(STRTAB_STE_1_S1CSH, ARM_SMMU_SH_ISH) |
+			 FIELD_PREP(STRTAB_STE_1_STRW, STRTAB_STE_1_STRW_NSEL1));
+
+		if (smmu->features & ARM_SMMU_FEAT_STALLS &&
+		   !(smmu->features & ARM_SMMU_FEAT_STALL_FORCE))
+			dst[1] |=3D cpu_to_le64(STRTAB_STE_1_S1STALLD);
+
+		val |=3D (s1_cfg->s1ctxptr & STRTAB_STE_0_S1CTXPTR_MASK) |
+			FIELD_PREP(STRTAB_STE_0_CFG, STRTAB_STE_0_CFG_S1_TRANS) |
+			FIELD_PREP(STRTAB_STE_0_S1CDMAX, s1_cfg->s1cdmax) |
+			FIELD_PREP(STRTAB_STE_0_S1FMT, s1_cfg->s1fmt);
+	}
+
 	if (s2_cfg) {
+		u64 vttbr =3D s2_cfg->vttbr & STRTAB_STE_3_S2TTB_MASK;
 		u64 strtab =3D
 			 FIELD_PREP(STRTAB_STE_2_S2VMID, s2_cfg->vmid) |
 			 FIELD_PREP(STRTAB_STE_2_VTCR, s2_cfg->vtcr) |
@@ -750,12 +802,19 @@ static void arm_smmu_write_strtab_ent(struct arm_smmu=
_master *master, u32 sid,
 			 STRTAB_STE_2_S2PTW | STRTAB_STE_2_S2AA64 |
 			 STRTAB_STE_2_S2R;
=20
-		BUG_ON(ste_live);
+		if (s2_live) {
+			u64 s2ttb =3D le64_to_cpu(dst[3]) & STRTAB_STE_3_S2TTB_MASK;
+			BUG_ON(s2ttb !=3D vttbr);
+		}
+
 		dst[2] =3D cpu_to_le64(strtab);
=20
-		dst[3] =3D cpu_to_le64(s2_cfg->vttbr & STRTAB_STE_3_S2TTB_MASK);
+		dst[3] =3D cpu_to_le64(vttbr);
=20
 		val |=3D FIELD_PREP(STRTAB_STE_0_CFG, STRTAB_STE_0_CFG_S2_TRANS);
+	} else {
+		dst[2] =3D 0;
+		dst[3] =3D 0;
 	}
=20
 	if (master->ats_enabled)
@@ -1254,6 +1313,15 @@ static int arm_smmu_domain_finalise(struct iommu_dom=
ain *domain,
 {
 	int ret;
 	struct arm_smmu_domain *smmu_domain =3D to_smmu_domain(domain);
+	struct arm_smmu_device *smmu =3D smmu_domain->smmu;
+
+	if (smmu_domain->stage =3D=3D ARM_SMMU_DOMAIN_NESTED &&
+		(!(smmu->features & ARM_SMMU_FEAT_TRANS_S1) ||
+		 !(smmu->features & ARM_SMMU_FEAT_TRANS_S2))) {
+			dev_info(smmu_domain->smmu->dev,
+					"does not implement two stages\n");
+			return -EINVAL;
+	}
=20
 	/* Restrict the stage to what we can actually support */
 	smmu_domain->stage =3D ARM_SMMU_DOMAIN_S2;
@@ -2353,11 +2421,14 @@ static int arm_smmu_device_hw_probe(struct arm_smmu=
_device *smmu)
 		break;
 	}
=20
+	if (reg & IDR0_S1P)
+		smmu->features |=3D ARM_SMMU_FEAT_TRANS_S1;
+
 	if (reg & IDR0_S2P)
 		smmu->features |=3D ARM_SMMU_FEAT_TRANS_S2;
=20
-	if (!(reg & IDR0_S2P)) {
-		dev_err(smmu->dev, "no stage-2 translation support!\n");
+	if (!(reg & (IDR0_S1P | IDR0_S2P))) {
+		dev_err(smmu->dev, "no translation support!\n");
 		return -ENXIO;
 	}
=20
diff --git a/xen/drivers/passthrough/arm/smmu-v3.h b/xen/drivers/passthroug=
h/arm/smmu-v3.h
index ab1f29f6c7..3fb13b7e21 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.h
+++ b/xen/drivers/passthrough/arm/smmu-v3.h
@@ -197,6 +197,7 @@
 #define STRTAB_STE_0_CFG_BYPASS		4
 #define STRTAB_STE_0_CFG_S1_TRANS	5
 #define STRTAB_STE_0_CFG_S2_TRANS	6
+#define STRTAB_STE_0_CFG_NESTED		7
=20
 #define STRTAB_STE_0_S1FMT		GENMASK_ULL(5, 4)
 #define STRTAB_STE_0_S1FMT_LINEAR	0
@@ -549,6 +550,12 @@ struct arm_smmu_strtab_l1_desc {
 	dma_addr_t			l2ptr_dma;
 };
=20
+struct arm_smmu_s1_cfg {
+	u64				s1ctxptr;
+	u8				s1fmt;
+	u8				s1cdmax;
+};
+
 struct arm_smmu_s2_cfg {
 	u16				vmid;
 	u64				vttbr;
@@ -669,7 +676,9 @@ struct arm_smmu_domain {
 	atomic_t			nr_ats_masters;
=20
 	enum arm_smmu_domain_stage	stage;
+	struct arm_smmu_s1_cfg	s1_cfg;
 	struct arm_smmu_s2_cfg	s2_cfg;
+	bool			abort;
=20
 	/* Xen domain associated with this SMMU domain */
 	struct domain		*d;
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259640.1553003 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7J-00087i-DP; Mon, 23 Mar 2026 22:51:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259640.1553003; Mon, 23 Mar 2026 22:51:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7J-00087b-A9; Mon, 23 Mar 2026 22:51:25 +0000
Received: by outflank-mailman (input) for mailman id 1259640;
 Mon, 23 Mar 2026 22:51:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w4o7I-0007t2-9F
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:51:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4o7H-0000sX-LJ
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 23:51:23 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c360-5cb7-0a2a0a5109dd-0a2a4502e3b2-42
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:23 +0100
Received: from [52.101.70.72]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c3eb-63bb-0a2a45020019-34654648d8b3-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:23 +0100
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB7653.eurprd03.prod.outlook.com (2603:10a6:20b:34b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:51:21 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22:51:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=V95KxmpTkvXsMy9XZlzuW2MyqN69Uar5M5Sejsc1YNHQOEGAntUK1BxuG6BjvaJCgaVPl71/L3D+b4dnEliC20/IprTx5uO2vUdMK6tGlseuIF4GRhancwWj58eteyewu6+ispoFNbWaKCQxLkcI/lOGpe2oP4tJAOnMMecqIIf7j8LNh59wo6HOVgDAz8aLitm+EdW+bJF0jLJGt3GHpxwvC6RO2LzzRK5kOpZvisk/JHzMoMyCwbaX+pt1Ss/AS8DktHMlBFPq/srtHdt/FZpF1ziGHOEJxpJo4zz80sqXOv7dOBzmenIiE4b8oeR7W1YCdAQ5RMvA3CGIAIf4hA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sU8GoKCw1duoKn68Ez7JxNbztNRn7RHZZ1LI+M+VqSU=;
 b=lGLv/PUdMQGeaPQ3HTyGKyx5GXpEsMsaNmOYwyjGRrNqdBDvGZ+nm8prnzg0kjIrbXXmbARei7cHThNCQQ5KX1pC5PuEyTgTOXv21p+DjiEk/bvogujMD+5nJ7Kz2pH9mmRKpearJBl+RgXB6T6scWpsaToerTPkf2mrrb0MY7OISKyKciKQmqdhusIohcJnMQzxSCum6FyfEWPkrok+LDcKXHBGErOeR/3P5DlJPzKABOKiNxhFJXW1PvMJUPNHfKN/19m54phzyC7WIwR4xwESsISIJNAMyfN2VCVrSYXgugbqBPkKUJnfD+UycC9SpESJxqlfdqnBwIC7FmAzDQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sU8GoKCw1duoKn68Ez7JxNbztNRn7RHZZ1LI+M+VqSU=;
 b=KDSOdCapyD9dyejwgJuyqWgj8y/L5sgmWAOZfV5ATwLYJbSEBSI8VfC91FlUDc4IfQ7p5V8VFHPlGe3LPPUGuSh8augzPH0XDBuXsRHRK0CuZNwDO9HcQqV1Ir/PKRqF1qmbR5tzOzRlDh2ydNYwU+9neS5WkWZ0x2RmI8hs9XzH5F6GQx1Q0gyNQX5Zy2ZyhgXO0YxY3jOpdZ8uVmWoFngeGmUBhzOSdjh1dal88Q9fzMKachhW2hHCz+/luCL639698r9w/xffICyU5XBKdLLlx7uZ5vtaWYm161NnPDD0Old3q7FzZxcxlb1TCu4hTrnxcNkr4PealEF3yr4BIQ==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH v2 03/23] xen/arm: smmuv3: Alloc io_domain for each device
Thread-Topic: [PATCH v2 03/23] xen/arm: smmuv3: Alloc io_domain for each
 device
Thread-Index: AQHcuxeQDJJ467Fpv0mX/F/Xkhss4A==
Date: Mon, 23 Mar 2026 22:51:20 +0000
Message-ID:
 <213efdf828034e421b79cd8ae203b081b839663e.1774305918.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB7653:EE_
x-ms-office365-filtering-correlation-id: acbdc7fc-1112-40f1-0ee3-08de892eb336
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021|22082099003|18002099003|56012099003;
x-microsoft-antispam-message-info:
 5kyhcNWdAq7i42Ra+2CmbM3PsvlqO9g2MZD4sP2+eyK9MWGk2FEPln8U/rjOS3ITGRN4v5oNCyhs/PerzotDrjDTPkelARTSht4ONoUGIr7678Xh8+Q91DFERXMGK7gG/NeLUhMoUKZJKRY2tZRB/3MT/5tVeTvzIgUExKg/O5uSmElb5j7JqM31Kuvk94iAjHRgXLFHIwPVdgyYQKPsptjqYhQ8laS3Av/1ILgFAhV9PMi1aQXrP8rxXVmXQRF5l+HDw75Fff2nI74tyxcWXKph3gusvJWK0F4NWtMDZNuyZR4tsN0U2/orljlAJzYu5/xRviFGu5TJHHudmnpWT6lqH4EhYCt2N2FBhzJ5nB96Yib+7RZj5aFe0+SyofubTSiy2X/5dLbg/8efW6DbZ0K1HbflysNtBQIgllkvWModnLCPgU08hp6sJWCvhXY+J1mLorYNC3L6kctv8SpXpbjZcu3QRNRckIMRBBqjGAw59dkro6aVanN3aKZ9RCHKDO1Rp8Q7o3PDRRpEHXMR0YzDXtAfHNCBF4q4XK8jpKcrGMf5dyC2AdbT677XVWaYQVrrgwBIaxInzsjNC1RkTpnoet4YDcl+qU0T5tcZLX/GgSJGLq7GddiK7EaEwMcrP5cFKAc0SgeoPMzC1kIBdb28rKeu6B+YrnapldTqbE7foXXS/pE7e3rSRow/7bMo5ASSfyUi6GS1NxuD+ZnczP9puE2E87wnVik1Ze0WkYUIEyViIT8Tt71CkjQNnYb7uIBZLV8qkPlkwDWA+W1Kp0BG8uMyNOHVc4BH7KmcA8Y=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Xe8UEL5RTv6W/PvB0IjFBjSKBnoglXudHaWnHiiujBEjObsyQYoTFNM2ps?=
 =?iso-8859-1?Q?yxGLuzRAfLR2CZ+5wIjJISDf5lmXQD5pIM6OYrbXUgqiu/8HWzZ3n0W4b5?=
 =?iso-8859-1?Q?IiGCkEm/vgIrtEqev8Ch7+3aKSyHhbThOmvf2FXyPulL4agvp6tyMhJEGr?=
 =?iso-8859-1?Q?pZ8hQa/8nPEG8QFLqYAITNHO26YW57Uop/qc7kGyAVPSbAEZ+G1Vse8fAZ?=
 =?iso-8859-1?Q?SQTJ1WhVFEbEtqcmacA7OZgBa0KIlPTJS0W/1VG9SLyHU9BFYTY3iklzhR?=
 =?iso-8859-1?Q?3Hxz3pflAQ0k+Qt0ZUL4g0vvCLLkJRVj2WzJZ3eXCC5M98vYh4tD6sira7?=
 =?iso-8859-1?Q?7auzCDwQmk0Cporp77nw7J2evgYUczsxKxsjnIsZrl0+OKZSATqqXgqcUJ?=
 =?iso-8859-1?Q?Kl+yec+aifmlIqt8w4rZw9vwyQ6rg9vcw3fhZmccSatY7AnRVI8HKaoYh5?=
 =?iso-8859-1?Q?Er3WmZv0/0lOnLDj21Qnyg9aU3NUPlZNaU6CxYBJhEy1BCqu9m0MMpCkZa?=
 =?iso-8859-1?Q?6lxIldAI1pgrewcNRaJinX2eLgCh7co0Kxz3HVql5fXZcyyJ+sntaogz3S?=
 =?iso-8859-1?Q?/7XyL3jnztgkpuzvAqFMMxSaE0expQ/cmZcE7wJu7izYFVJbnRYG/My0xw?=
 =?iso-8859-1?Q?ASZ4Fwx7UOSzFaFIjr0ORkfClIV+nFHPCThAtXoNLUqsl2wl85Mu+oiaNO?=
 =?iso-8859-1?Q?OaDI9GUsx2o718gzNfOVg3jegAMf9yEwpQbW3+fAPkE6721NjZAM7uZb7j?=
 =?iso-8859-1?Q?l8UgkKQ787FkZiMILLso1VOHyrRUUPFgw1WjO3HxgoGK1miQJYiKGzYWw2?=
 =?iso-8859-1?Q?87L2v05fA3r3Kswj062MHqJSL0CdZ7kfJVyUo5jmi0twZKLlXPKFePPS5l?=
 =?iso-8859-1?Q?z8sXkpcTskZtP6I58GWkQ3AdqRlQVc9GS8zWI6ly+kLpOVh5ft30sL4qNI?=
 =?iso-8859-1?Q?oPUQefTu/RBN4Dfi11UXnoOjLjzxjFMpg5833zbon3vRVJVfAhn3BwUxmG?=
 =?iso-8859-1?Q?WVG91feyTpvR2tsdI5b/I31u8gRtsAAC/h3sreQe1xrWnpHBUBjmaoljWc?=
 =?iso-8859-1?Q?OLfNlAxEhU8aiOxsxyvRrL/h2/yGh5v2c40eRqJfgm5hgjzAK8z3Ck/KKX?=
 =?iso-8859-1?Q?42cBkzvfa21aJT8gMq2O2bXTjKH6a+4BmrLui12pq08BKkSwA+iO8XuZ7u?=
 =?iso-8859-1?Q?dzuYSAs/QTolXv5cCfVXSwWVN7DPtN8HJU+Z3t+zpGGMBNVkrzwHShE/Qy?=
 =?iso-8859-1?Q?WTHOHjXeiVbtYqpyFRZCDzmT6mMduXnIfu5ootvk4WPUAH88EJZjp54mbt?=
 =?iso-8859-1?Q?s7bDlmoN6nu3y1asUS+zmTc9HAztEmQUtMImZNG2fIfkQfuV5ufj/AJSTw?=
 =?iso-8859-1?Q?N57EEK2+vOwxO5nv30kvFVvdMuyeynCGczoWNmsf3UiYu0xtF3I8C7VIFF?=
 =?iso-8859-1?Q?Zvu4WXbIrNjGBMERkF7U5FUr5DAxVaTwE0NINExkh3aRTSHps97+1Y2W0W?=
 =?iso-8859-1?Q?YQK3c4Lke7hoM25NwdcbldKt5tmuwZv/7K/sIxRlVhg5vDuVyBdyyQqTA1?=
 =?iso-8859-1?Q?gYGIhHkwG3Tq8RXhRdi0hZmiZUDl1x7b5vCcINhZi1SEIl4nB0Zt+16NVy?=
 =?iso-8859-1?Q?nibHzIRYkEgX4Xktx2MHmS3hVVIBZ+KzR5EXk/0061rLPboJ15ji7vJ+u8?=
 =?iso-8859-1?Q?waq3wLCISyXELS699U0G9opstFufck/FbxAEa66Qa2xXnz95fYtKRvf9C+?=
 =?iso-8859-1?Q?pSpgMxOcQiSlkeMUsMsFbwjixdAiRY98odvNvEultQuvHbbE/yOhTBa1dX?=
 =?iso-8859-1?Q?R8kC/6PhkQQLcl0eyOY/0s0uDqdZdPg=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: acbdc7fc-1112-40f1-0ee3-08de892eb336
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:51:20.1001
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: I0SVuKoBINuZefJ6/VG3AYBTN/lsl9K7537ND7gJbR/VbW/vaZLupbNlRiqePq1WC63exttxPNpy7VU3NFJQHA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7653
X-purgate-ID: tlsNG-720697/1774306283-43C8BDB8-DA626BD9/0/0
X-purgate-type: clean
X-purgate-size: 2159

From: Rahul Singh <rahul.singh@arm.com>

In current implementation io_domain is allocated once for each xen
domain as Stage2 translation is common for all devices in same xen
domain.

Nested stage supports S1 and S2 configuration at the same time. Stage1
translation will be different for each device as linux kernel will
allocate page-table for each device.

Alloc io_domain for each device so that each device can have different
Stage-1 and Stage-2 configuration structure.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/drivers/passthrough/arm/smmu-v3.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthroug=
h/arm/smmu-v3.c
index f9c6837919..19e55b6c9b 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -2809,11 +2809,13 @@ static struct arm_smmu_device *arm_smmu_get_by_dev(=
const struct device *dev)
 static struct iommu_domain *arm_smmu_get_domain(struct domain *d,
 				struct device *dev)
 {
+	unsigned long flags;
 	struct iommu_domain *io_domain;
 	struct arm_smmu_domain *smmu_domain;
 	struct iommu_fwspec *fwspec =3D dev_iommu_fwspec_get(dev);
 	struct arm_smmu_xen_domain *xen_domain =3D dom_iommu(d)->arch.priv;
 	struct arm_smmu_device *smmu =3D arm_smmu_get_by_dev(fwspec->iommu_dev);
+	struct arm_smmu_master *master;
=20
 	if (!smmu)
 		return NULL;
@@ -2824,8 +2826,15 @@ static struct iommu_domain *arm_smmu_get_domain(stru=
ct domain *d,
 	 */
 	list_for_each_entry(io_domain, &xen_domain->contexts, list) {
 		smmu_domain =3D to_smmu_domain(io_domain);
-		if (smmu_domain->smmu =3D=3D smmu)
-			return io_domain;
+
+		spin_lock_irqsave(&smmu_domain->devices_lock, flags);
+		list_for_each_entry(master, &smmu_domain->devices, domain_head) {
+			if (master->dev =3D=3D dev) {
+				spin_unlock_irqrestore(&smmu_domain->devices_lock, flags);
+				return io_domain;
+			}
+		}
+		spin_unlock_irqrestore(&smmu_domain->devices_lock, flags);
 	}
 	return NULL;
 }
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259641.1553008 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7J-0008Aa-O4; Mon, 23 Mar 2026 22:51:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259641.1553008; Mon, 23 Mar 2026 22:51:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7J-00089i-HE; Mon, 23 Mar 2026 22:51:25 +0000
Received: by outflank-mailman (input) for mailman id 1259641;
 Mon, 23 Mar 2026 22:51:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w4o7I-0007wO-Fh
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:51:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4o7H-0000sX-Rp
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 23:51:23 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c360-5cb7-0a2a0a5109dd-0a2a4502e3b2-44
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:23 +0100
Received: from [52.101.70.72]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c3eb-63bb-0a2a45020019-34654648d8b3-4
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:23 +0100
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB7653.eurprd03.prod.outlook.com (2603:10a6:20b:34b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:51:21 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22:51:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nI8SQf7hRUS008Vf8vbxYc3YdqvgU1knGZIsZIhfA40qSbnSeUyak2kGCMPf4cmaRoYEN3/knsdeVE94idsx9d6YIPvdMlsXfU7nJ3smQHwlUFVOEGCXzReQMKB9itV2Jgq31eQmRzovmbHYdsAnvXnfiDEM/hcPFdB2zUW4co96y3y2WHDny1MAE0LOFojPYdoGhsDx4xqwuaDhTlkHcypJzYHab12bzPEhig8GwS35iNPymwNMmAXn24pU/ZEjQB0o2EMdz1PTcmHOL/mQ6y1fdupz+DZKluWkLO1LAt6yt9q883pKPY5rJw6Dh8z26vCMvVS9fgSmNy7cqK3n3w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GwgosUysiRpjZuWloQCjW+LxR3bA2OFErZFmVHnQIUw=;
 b=hZaH7PfAz9g+6wdlclkWHKzJQHx3YmmEOXA0dHB2mASb8f2MSBVAn11H/Agr7UAiD+NubkwWabSZ+yKLBV4QRbdlEJEm7hH9S6XY11H6ZkQX9aUqAQPTrNJROVtkfdYQefd4DkTcc8FmsUpye2mRsq6jdgGBV3qvIt+20ne1/+xQ6+F9POlWPvk+UGGDwmb6/gxODfPBTDGFAmgpR3jlndtu5ynQ8zqROBAyfV9nfhl/FXjcuiMcZM3Sh5/8IOp75WV2pR9h2IzchZt2NEh3Qv4oBIQH/dXxQaZZKk+Nr1Q4puPj0XeZ3T07PkvflsY7xe05NGtI72c+C+WtgpiOTw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GwgosUysiRpjZuWloQCjW+LxR3bA2OFErZFmVHnQIUw=;
 b=JJx6YlU65OgvREtTxVzsHVbJ/Y0rs3zvUNVP8Fb38xOBT2FqVdazmqbpU6+ymtOb1V4l8TLsjXc8wyOg3rfw1vDFMIy477o5TXJQ7/Ua72koX0T6kutU1k87W+EpObiGPaDq4xp/lIkA+G1u9AmD9Bg2OZsYPoul7ziRT3Newuh+CcYNvzR9aI6mJPKT8VoQYGr0DUzTON4CQ4fTbwuC3MI6WsgePR8qktsankzdohHxRODgI+HiHaFpqrdDu3ztwGBNNiisqWawh6ub4pTI21JNuwAX1NtqO4CCu8kHi8GipEu8osGFIiIMBna74yAYgrkiwY+qC+nNrjcHxP3cFw==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH v2 04/23] xen/arm: vIOMMU: add generic vIOMMU framework
Thread-Topic: [PATCH v2 04/23] xen/arm: vIOMMU: add generic vIOMMU framework
Thread-Index: AQHcuxeRR7+UskAt3km+pnjx0ifivA==
Date: Mon, 23 Mar 2026 22:51:21 +0000
Message-ID:
 <f20ce7b6b230ee234c9a278a6d69330f1abb03c1.1774305918.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB7653:EE_
x-ms-office365-filtering-correlation-id: ff2f71c4-7a87-420b-551b-08de892eb40b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021|22082099003|18002099003|56012099003;
x-microsoft-antispam-message-info:
 IJBDxKbAw+GqqjAgZA8EZx94Ux4GsxEZhv1YtueIGD54g5SiZQS2GzU/wpKwyW4tfwcdNFMJl20UWmG8D1qNLMxJnyy4zxSIWlGoUJUGjK+uFZ17/GZbaKAutFpHbaHk9K5A6quQ48qzwPGz6BiOdMOLm6uMLHq2OdDgr1pPG4xADbcIeNfFFficrTfHYkeOBLeambXAiD6UDDQYNFQvClXOjiGVXs3l3Z4Q5+ueBsa+hZWXgtzt1/na3BktrK4PT4WuamWGxw6mblDopifhBL3PMksldyb/CRv8WkTTxSz4/sUb5BBJXW+LrUKzTEEaJ2WM2HvohoTQ+i5t2Wxtj8q+M4OaaRwL3wfqk+lLHTQgk25pxuJbSRHsFteUc0v4MVAxTzukk5kZ9rKYEg3PWjQhQjTgLJfTiiaFTFejCZiu+6hLxGUpeCH90a92V3T/IcOfavchuPbTDwGoIFbZfGOWxrOp9HCfIwtriMr1TNVeQdHIB0uI2Wedk1pJnYZLuOFOTJ8+rpZvZxgUsupKS0BbnRvPca5NbrGsxUMzuHzeJtrDVixSfoq9UjjxrNuQStVIBg6mu5J8lKZoIWeiTzJgDMrzrZ1Og6JsvJz4JCgzyJ8oLqxPSvxy6PWm+6VUULxYp/Xu0z5+ziiFKW+q8YXPPc5uwPP16HgebsXt9GxoIN5y4owtDXbtKCKtyT5t/9TnUPghfF/w7FQ2QjzoifHRpIsNXMS3Zm4/FuuwrvizQ/tAZLGH2SgqLP9AcvrWGXqoEt57ddVuaIDrEUMqNcDfa6IKZn0XIWocjyEL0Ro=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?AdpApo9e+oc5tcfLhiBs3yBwxkwMK2GOwdRpiKEESlWW+9R0vq5uLACI2q?=
 =?iso-8859-1?Q?/VuUJRbLaAuH8InOCnJJv1fKQqu2xliSzAqLY5aFBtJqaq7Axf47Flw1LK?=
 =?iso-8859-1?Q?+V3CDLhAVhUOEe4yE8uVXod+GM0LuePa6iSeQFjmnlejZtDZ1fofkeIghj?=
 =?iso-8859-1?Q?4eVQDrEilGheGtpHuj4GzYmG1GNYUqxh+nRDq8yrFssuGazVS7eQtXuIAi?=
 =?iso-8859-1?Q?Sw9GFZQ9OlsdEMEQkUbTRlOa449Q4o0gHNFfNtBFFtbRrun/Byoj3MMNeE?=
 =?iso-8859-1?Q?0FepisRNE9DEGflG6yx38Gd5yMoEA6If9LZ00AzhwtKl6C5SS57RO/4zdp?=
 =?iso-8859-1?Q?2mYs8aZqCbHNExCZC/Uq+qbv6b6I2BgcxoV/+r8cUdLaGYorbLfkFdcTTz?=
 =?iso-8859-1?Q?BZ98vULQ6k8kmGU21QOx4dQPsrFPAz1CntpC2gR3RdcKzCiysH5/DGbMiG?=
 =?iso-8859-1?Q?bL8R81schozf6gwmtkXP+cRkbT/OFcD8yNlxo24LHf0AH+XdCVezPh2SoB?=
 =?iso-8859-1?Q?/2GUxbWUhAsIwSIjAq5v7bWmAe+Um16S4BMn+pzEbf8p/8QSdU297Wm0FT?=
 =?iso-8859-1?Q?dyFtWv2Kybp8oYK2SkYyLJb1gBf2uyKzAMvpCNLfZWc6zYJss72MRSbBbh?=
 =?iso-8859-1?Q?ksByivX3cbhwuv9goNH8tVJ2NTATN1zglTpQhBGMvA0GJb5jydBqU+XOBo?=
 =?iso-8859-1?Q?koxxOUJzyxd3OVyr3kvHPe01EUyhfhThB798Z3Q5lVzENgvs+vRbF+JD7p?=
 =?iso-8859-1?Q?ugLrnZORnGhsVqZHk9Zi8emm8UhbMafwcdoRJpbVDUm8tkgk/bLgEVHR4/?=
 =?iso-8859-1?Q?MYg+ZiXnokcH/l60lnQl5r/KWHFYLovQHf2H5yzTi6VmYaDR+hSxUsGRaD?=
 =?iso-8859-1?Q?KGWMTgMb6Llgvhke3kZiLSJ70Ah33YUbQEseZ9clEbK98gmLoww0JvQezV?=
 =?iso-8859-1?Q?ZxaCvBDTwsqCEjSuIRUMrieoQpjjDb5RfYFEuoHcVDGtec4Rdj7bsVns4w?=
 =?iso-8859-1?Q?lyX3MOhMULX3C7cAQmLbI/UTmku4kjUFV0Sxkrc1lfH70FITUL5wZ/9m90?=
 =?iso-8859-1?Q?CJQLT5nG3SfEOZ4x+gAfTMBqxjzaIINqXDktRfMmDXq4tuJq65TwisUOmq?=
 =?iso-8859-1?Q?2Lq18GNVqCgNVKTgwZndRgrdACf36sNvqVgZeFfXJVUS12R0uLh0ZmOjtQ?=
 =?iso-8859-1?Q?QbPWAnM/O4oD+Y4nbhZz7sZkjCqFtnRE6lCPDL8jz+hr7UtJiK8inYhrpT?=
 =?iso-8859-1?Q?BCQmT6Yr859vz51W8nODORNGsaO7ifPuYZK0UHMJJvlyG1yVrX8Sz9f2iZ?=
 =?iso-8859-1?Q?rRU57sehG1yGf/dAqNkZ7YV8KbPLBWlf79MiNfLwtov2QNG3920cO0U9qD?=
 =?iso-8859-1?Q?+DkL66KfcUDGCXyiwP9NGRaUn7dzomERG1HldEHsElIcJHuxfNwqohFzTH?=
 =?iso-8859-1?Q?xIWfKNVR16bTFuIe1GUE1hvpF/TtZeKjwwi2XTgl8qqv4c0JTcKL++bL6H?=
 =?iso-8859-1?Q?QZHr33NQ4wBQ2eJGOQYbWBJZRgqzxvwEO7xV2Z+CXzJktRMcRpvY422JZ5?=
 =?iso-8859-1?Q?yI6Enowh6ulq3l4SC1IPPrqyF1ZDeN6nbzLW5TTN0Qn2KY2IR1z6yqZVo/?=
 =?iso-8859-1?Q?TaM43DE5ji79Tssf1/KW0e6NAMRzV0V8erlu+K/EVK0OxCeRaCywN51ZsN?=
 =?iso-8859-1?Q?5E+jjSo4VCaDiahUNrQ+IxSsFuET1WII4D8l+EGzdRIVnao5FEK4rvDDf+?=
 =?iso-8859-1?Q?t0GW97LuswSDWGXoCcvY8uA/BToM+LVvOcp8DbHURaYrDYEAdJUJyBbx5L?=
 =?iso-8859-1?Q?+Y6AOQRmSQ6PfkZOjUXGjtfB9ELTztA=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ff2f71c4-7a87-420b-551b-08de892eb40b
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:51:21.0815
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: D7XKZncfJO4klT7Yuhv/nsqM/Ur+ScX5LFw4PnTPH81AAxQGESDx7/6C608gccsNRxqj95jA2V2k8x4MvOdZxg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7653
X-purgate-ID: tlsNG-720697/1774306283-4388DDB8-239BFA7B/0/0
X-purgate-type: clean
X-purgate-size: 8907

From: Rahul Singh <rahul.singh@arm.com>

This patch adds basic framework for vIOMMU.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/arch/arm/dom0less-build.c        |  2 +
 xen/arch/arm/domain.c                | 25 ++++++++++
 xen/arch/arm/domain_build.c          |  2 +
 xen/arch/arm/include/asm/viommu.h    | 70 ++++++++++++++++++++++++++++
 xen/drivers/passthrough/Kconfig      |  5 ++
 xen/drivers/passthrough/arm/Makefile |  1 +
 xen/drivers/passthrough/arm/viommu.c | 48 +++++++++++++++++++
 xen/include/public/arch-arm.h        |  4 ++
 8 files changed, 157 insertions(+)
 create mode 100644 xen/arch/arm/include/asm/viommu.h
 create mode 100644 xen/drivers/passthrough/arm/viommu.c

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 4181c10538..067835e5d0 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -23,6 +23,7 @@
 #include <asm/arm64/sve.h>
 #include <asm/domain_build.h>
 #include <asm/firmware/sci.h>
+#include <asm/viommu.h>
 #include <asm/grant_table.h>
 #include <asm/setup.h>
=20
@@ -317,6 +318,7 @@ int __init arch_parse_dom0less_node(struct dt_device_no=
de *node,
     uint32_t val;
=20
     d_cfg->arch.gic_version =3D XEN_DOMCTL_CONFIG_GIC_NATIVE;
+    d_cfg->arch.viommu_type =3D viommu_get_type();
     d_cfg->flags |=3D XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap;
=20
     if ( domu_dt_sci_parse(node, d_cfg) )
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 94b9858ad2..37511c9323 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -28,6 +28,7 @@
 #include <asm/tee/tee.h>
 #include <asm/vfp.h>
 #include <asm/vgic.h>
+#include <asm/viommu.h>
 #include <asm/vtimer.h>
=20
 #include "vpci.h"
@@ -626,6 +627,21 @@ int arch_sanitise_domain_config(struct xen_domctl_crea=
tedomain *config)
         return -EINVAL;
     }
=20
+    if ( !(config->flags & XEN_DOMCTL_CDF_iommu) &&
+         config->arch.viommu_type !=3D XEN_DOMCTL_CONFIG_VIOMMU_NONE )
+    {
+        dprintk(XENLOG_INFO,
+                "vIOMMU requested while iommu not enabled for domain\n");
+        return -EINVAL;
+    }
+
+    if ( config->arch.viommu_type !=3D XEN_DOMCTL_CONFIG_VIOMMU_NONE )
+    {
+        dprintk(XENLOG_INFO,
+                "vIOMMU type requested not supported by the platform or Xe=
n\n");
+        return -EINVAL;
+    }
+
     return sci_domain_sanitise_config(config);
 }
=20
@@ -721,6 +737,9 @@ int arch_domain_create(struct domain *d,
     if ( (rc =3D sci_domain_init(d, config)) !=3D 0 )
         goto fail;
=20
+    if ( (rc =3D domain_viommu_init(d, config->arch.viommu_type)) !=3D 0 )
+        goto fail;
+
     return 0;
=20
 fail:
@@ -965,6 +984,7 @@ enum {
     PROG_pci =3D 1,
     PROG_sci,
     PROG_tee,
+    PROG_viommu,
     PROG_xen,
     PROG_page,
     PROG_mapping,
@@ -1021,6 +1041,11 @@ int domain_relinquish_resources(struct domain *d)
         if (ret )
             return ret;
=20
+    PROGRESS(viommu):
+        ret =3D viommu_relinquish_resources(d);
+        if (ret )
+            return ret;
+
     PROGRESS(xen):
         ret =3D relinquish_memory(d, &d->xenpage_list);
         if ( ret )
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index e8795745dd..a51563ee3d 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -35,6 +35,7 @@
 #include <asm/arm64/sve.h>
 #include <asm/cpufeature.h>
 #include <asm/domain_build.h>
+#include <asm/viommu.h>
 #include <xen/event.h>
=20
 #include <xen/irq.h>
@@ -1946,6 +1947,7 @@ void __init create_dom0(void)
     dom0_cfg.arch.nr_spis =3D vgic_def_nr_spis();
     dom0_cfg.arch.tee_type =3D tee_get_type();
     dom0_cfg.max_vcpus =3D dom0_max_vcpus();
+    dom0_cfg.arch.viommu_type =3D viommu_get_type();
=20
     if ( iommu_enabled )
         dom0_cfg.flags |=3D XEN_DOMCTL_CDF_iommu;
diff --git a/xen/arch/arm/include/asm/viommu.h b/xen/arch/arm/include/asm/v=
iommu.h
new file mode 100644
index 0000000000..7cd3818a12
--- /dev/null
+++ b/xen/arch/arm/include/asm/viommu.h
@@ -0,0 +1,70 @@
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+#ifndef __ARCH_ARM_VIOMMU_H__
+#define __ARCH_ARM_VIOMMU_H__
+
+#ifdef CONFIG_VIRTUAL_IOMMU
+
+#include <xen/lib.h>
+#include <xen/types.h>
+#include <public/xen.h>
+
+struct viommu_ops {
+    /*
+     * Called during domain construction if toolstack requests to enable
+     * vIOMMU support.
+     */
+    int (*domain_init)(struct domain *d);
+
+    /*
+     * Called during domain destruction to free resources used by vIOMMU.
+     */
+    int (*relinquish_resources)(struct domain *d);
+};
+
+struct viommu_desc {
+    /* vIOMMU domains init/free operations described above. */
+    const struct viommu_ops *ops;
+
+    /*
+     * ID of vIOMMU. Corresponds to xen_arch_domainconfig.viommu_type.
+     * Should be one of XEN_DOMCTL_CONFIG_VIOMMU_xxx
+     */
+    uint16_t viommu_type;
+};
+
+int domain_viommu_init(struct domain *d, uint16_t viommu_type);
+int viommu_relinquish_resources(struct domain *d);
+uint16_t viommu_get_type(void);
+
+#else
+
+static inline uint8_t viommu_get_type(void)
+{
+    return XEN_DOMCTL_CONFIG_VIOMMU_NONE;
+}
+
+static inline int domain_viommu_init(struct domain *d, uint16_t viommu_typ=
e)
+{
+    if ( likely(viommu_type =3D=3D XEN_DOMCTL_CONFIG_VIOMMU_NONE) )
+        return 0;
+
+    return -ENODEV;
+}
+
+static inline int viommu_relinquish_resources(struct domain *d)
+{
+    return 0;
+}
+
+#endif /* CONFIG_VIRTUAL_IOMMU */
+
+#endif /* __ARCH_ARM_VIOMMU_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/drivers/passthrough/Kconfig b/xen/drivers/passthrough/Kcon=
fig
index b413c33a4c..487331607c 100644
--- a/xen/drivers/passthrough/Kconfig
+++ b/xen/drivers/passthrough/Kconfig
@@ -35,6 +35,11 @@ config IPMMU_VMSA
 	  (H3 ES3.0, M3-W+, etc) or Gen4 SoCs which IPMMU hardware supports stage=
 2
 	  translation table format and is able to use CPU's P2M table as is.
=20
+config VIRTUAL_IOMMU
+	bool "Virtual IOMMU Support (UNSUPPORTED)" if UNSUPPORTED
+	help
+	 Support virtual IOMMU infrastructure to implement vIOMMU.
+
 endif
=20
 config AMD_IOMMU
diff --git a/xen/drivers/passthrough/arm/Makefile b/xen/drivers/passthrough=
/arm/Makefile
index c5fb3b58a5..4cc54f3f4d 100644
--- a/xen/drivers/passthrough/arm/Makefile
+++ b/xen/drivers/passthrough/arm/Makefile
@@ -2,3 +2,4 @@ obj-y +=3D iommu.o iommu_helpers.o iommu_fwspec.o
 obj-$(CONFIG_ARM_SMMU) +=3D smmu.o
 obj-$(CONFIG_IPMMU_VMSA) +=3D ipmmu-vmsa.o
 obj-$(CONFIG_ARM_SMMU_V3) +=3D smmu-v3.o
+obj-$(CONFIG_VIRTUAL_IOMMU) +=3D viommu.o
diff --git a/xen/drivers/passthrough/arm/viommu.c b/xen/drivers/passthrough=
/arm/viommu.c
new file mode 100644
index 0000000000..7ab6061e34
--- /dev/null
+++ b/xen/drivers/passthrough/arm/viommu.c
@@ -0,0 +1,48 @@
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+
+#include <xen/errno.h>
+#include <xen/init.h>
+#include <xen/types.h>
+
+#include <asm/viommu.h>
+
+const struct viommu_desc __read_mostly *cur_viommu;
+
+int domain_viommu_init(struct domain *d, uint16_t viommu_type)
+{
+    if ( viommu_type =3D=3D XEN_DOMCTL_CONFIG_VIOMMU_NONE )
+        return 0;
+
+    if ( !cur_viommu )
+        return -ENODEV;
+
+    if ( cur_viommu->viommu_type !=3D viommu_type )
+        return -EINVAL;
+
+    return cur_viommu->ops->domain_init(d);
+}
+
+int viommu_relinquish_resources(struct domain *d)
+{
+    if ( !cur_viommu )
+        return 0;
+
+    return cur_viommu->ops->relinquish_resources(d);
+}
+
+uint16_t viommu_get_type(void)
+{
+    if ( !cur_viommu )
+        return XEN_DOMCTL_CONFIG_VIOMMU_NONE;
+
+    return cur_viommu->viommu_type;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
index cd563cf706..b1db2bf19d 100644
--- a/xen/include/public/arch-arm.h
+++ b/xen/include/public/arch-arm.h
@@ -330,12 +330,16 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
 #define XEN_DOMCTL_CONFIG_ARM_SCI_NONE      0
 #define XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC  1
=20
+#define XEN_DOMCTL_CONFIG_VIOMMU_NONE   0
+
 struct xen_arch_domainconfig {
     /* IN/OUT */
     uint8_t gic_version;
     /* IN - Contains SVE vector length divided by 128 */
     uint8_t sve_vl;
     /* IN */
+    uint8_t viommu_type;
+    /* IN */
     uint16_t tee_type;
     /* IN */
     uint32_t nr_spis;
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259642.1553013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7K-0008G5-4J; Mon, 23 Mar 2026 22:51:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259642.1553013; Mon, 23 Mar 2026 22:51:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7J-0008F6-Su; Mon, 23 Mar 2026 22:51:25 +0000
Received: by outflank-mailman (input) for mailman id 1259642;
 Mon, 23 Mar 2026 22:51:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w4o7I-0007zp-M0
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:51:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4o7I-0000sX-1v
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 23:51:24 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c360-5cb7-0a2a0a5109dd-0a2a4502e3b2-46
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:24 +0100
Received: from [52.101.70.72]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c3eb-63bb-0a2a45020019-34654648d8b3-5
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:23 +0100
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB7653.eurprd03.prod.outlook.com (2603:10a6:20b:34b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:51:22 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22:51:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jaktPiHjUt4H4J36NekumW1ENJMAU5BYR0g2yx9GcZXBlWFiVbtRILTytKJMnJQQoeHtybJ/3mau2a4qGaAngdUzjY3RmHpPeWquujhEj2zT3TY8qEsm6lrrvp2oSP+ogeAbDjBAId+k5l7K8zTyZBC1cBR7Kr2yS6wMIWntC2R1uiObt6ZLRBR8DcwQYoClB6/4FBHNH1EcBKT0cRuGgEk8thV12E6cPdp5FqEeasrxAJpA95GbKVXkdfFOikhOfCYgsZJtYbVZCWf8XOCzuxMVhceNW8QKCvkGKQmIT2Kz0w1mfZlyBH22wlQRzQzh+TvO9uVvYPdWjX9YtVJcBw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DEMMv+I/i7mhnlNLSk+XpMQHRds2QOl4rUVk74Q98VM=;
 b=kIYds4L++6iyZmJZ3LZWWijs/kCLc4kcF4bAOvy+WBx6QF9o7wYP6dv1Mtx/drL72F+O7jkS8VUYJoaVY7WipbSL2+Gd9NKPv9r3ut0obh/+pxS246e08vWjGld62bZfiDZwhMcx26ptfB8I52d/lcVUjOoxOnKcAnSSinqX2bXwRHPldPoMHEC7Fpg2gmkasn8+Z2Fl1fhoQ6a+JTqU/q9DhHSkFlrnZEYxvS7niv5b0CU0NaniKQhPzP9s1ewR9QXMG/b37ldRe/r5zav7u/sftwgfN+Lt4Bv5D7Liy3mx1eqt6gH6YEuemG8ksCFa8rLYYbBja6wdG0Q2jZqUgQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DEMMv+I/i7mhnlNLSk+XpMQHRds2QOl4rUVk74Q98VM=;
 b=rFiHiIn3B8NwtXLNDIajEldn72h1WqdlMdjaWwNKcasuXz1PeewllcQfLsRJaspuOMa3WUEyvJa+4qce3kiE/7q2btBroovH+SpUjYLnNiBIo+1ybEqqayEV0KN0AYIlBF++5W0l2zwt6b7O7qlRR3D8bcBwR0yMQBr9U2tL4oIF42o+e3uwdu4V2+0NxLv8fpt3qkM+Z/bgm1kFlxJXcGXzS4OVTjDgjDEtwcBO+FnJVSoK9f5iAf4KUQT0SoKB4X/aSn8j2lS3ko49ET0GP5i6F2zTcXjSRl4xv7LmVBCve0KOffJZIwv3M398eDIjVBn2fnWOlzxf0dba3decCQ==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH v2 05/23] xen/arm: vsmmuv3: Add dummy support for virtual
 SMMUv3 for guests
Thread-Topic: [PATCH v2 05/23] xen/arm: vsmmuv3: Add dummy support for virtual
 SMMUv3 for guests
Thread-Index: AQHcuxeRCCj9GQWOb0eOqcgO/HbEPA==
Date: Mon, 23 Mar 2026 22:51:22 +0000
Message-ID:
 <718e92355669dac42c682544c451e7cb417b4b1f.1774305918.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB7653:EE_
x-ms-office365-filtering-correlation-id: 4c240261-9cd4-4029-d2af-08de892eb473
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021|22082099003|18002099003|56012099003;
x-microsoft-antispam-message-info:
 trjDEhyEVEDx3Yw536NCR2A71C6k0ucEuMOSmb9VEED/6ndw6Z+A4SKY3203RU+nDT66KBQxKQRUg8y0J2kTb1CaXc4hYDDx0ZuFFRUY3WbwyN5+yyT/76iHQlEoyn2RgH/gxxoccCuqFc2ahOjN1m6rZGc0/s0OGyGloO3qUvCMnpi36fCUvEfGIlDotO9cEfkkm/7ftvpmxRt1G7LIb9OzMJy4Hpo804IjxhSiyy9N98LYzmprjy1K8IqxNuKPPV4HuF/CYysfKKW/1jMHWHOPMQTzqfeevBsaddG2/+3KP7aP/540Hnu4CKUYiaX1RjScB3lzfiP+dJOSnt5dwwOylTqHbSjYfLCfQiyYgM/8AATxRa4o/OfdOWP6yTdo6e3QKTshtjr7+U62LSJa94PREgjK3iHGRF+9O9yWiyulYwM1QE7JuBLI4S3/T7L5Q0SlH1O+2Xg/QFT7VEcpBZVzI6yJp+72vbqiPRVATckG533RDeFrSckEiXO7+IhAljqnj/V8r60VacNQZ5BSGH65mgMvr3wMLQB7BHphbJoYtHn1GyZJmaCbUqG4T8nYvyk6DYT4SDOLx3Hnpp121fOnCsGN7X3BdF0DdinR+V57UjmNtvIxyxdZsmkk+4hMWzJF4QAWsjmIl+IyY/BqO/xWsRlK1mjf4UNaXncsZtFf/x06dKuqWAs8yjxQlAu917WUAQDt5jSXszvVJC3XSR0oJsOJhbCYI91yeDVD5sVAyT5bIT8P+EXjQCknMpkbVNdk1Nwkt+dzZHCA/yoWE6kEfoyCO6ZRZXknz4SNGi8=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?UGRqdzgwbyt2aTNJL3BxQWRicitzeGExQW5vUzRzVVFaZXVKRXBUeUpSZUhP?=
 =?utf-8?B?ajhmaE1qbVBvNWYydmwvS0Y4ZVRRd01VL1BRSFRzK1U1bDMybjY0QUVDRC9u?=
 =?utf-8?B?cE1VejdJZ2tEYlFKUUhRcERUclEzaDJiMVY2WlNVWlA1SUVMWWV3UWc2dER3?=
 =?utf-8?B?c3E4aHFDV1NRbFU1OVZkV0NWajNrOGE3b3BuS1pGcXhRRHNTbks5UnlLOHpt?=
 =?utf-8?B?K1cvT0FldnFMWTE3Y1RqWXc5WFpmRnpyRDlDU2x0ZU9jT3NkMTAyZ2Y4VUF3?=
 =?utf-8?B?UlRUdUQ1ZkJQaFd4WDdGYms3bTVRYlpWMERuTVM3TjFNQ25mUDB4MDluQmpD?=
 =?utf-8?B?eTF1TkIwTHdHbm56bU5RaERoZHZFek43UEFuQ1dVajVDUkJCelJLUHg4OVdW?=
 =?utf-8?B?azU2U3FHWTYxL1IwcmM3aVkyYlN2Qjl3ako1WmI0VGhFTytwSHZoZndzR2da?=
 =?utf-8?B?NS9xcStjZUxtSG51L0Ntdy8rK0xIdXZBV24xbS94bEJrNHhPdmh2QlQrMkZ2?=
 =?utf-8?B?RlcxV0RmOWw4UWorK0ZFUW9Yc2tZeUg1MDc4Y0J3N21PNldPSWNrSEhCREZH?=
 =?utf-8?B?TGV4NHBycjcxdW9wdGVkMW1lbG9SckdtR2l3Z2MxZGFCUTQyQTNtdGRUSnBF?=
 =?utf-8?B?OWdzT2pGS2k4RjdLejdiVGdEVmM2VmtYZTJnY1FHU3FSQk1UMGhVbEVMNHJo?=
 =?utf-8?B?aEtFOUY5NzFQTTJmODlqWDZNRllSWnFtcmRJY0pJWlZNVjZWZllUbWE3d092?=
 =?utf-8?B?UWtQVEZ6dXZWN1loaWF3MXFwbGcvdTgzbjkwMGlTN1lhZzZDNHVueXlKWFJp?=
 =?utf-8?B?aTgvRkRPSm5XSGZLMXN0czNPVDl4aW90WjFTRzVxd0F5Y1NLMFdhRkwxYzVi?=
 =?utf-8?B?Y0lmTWxNZ0xzWTNVQmdTRlJiNjVkd0xYU2cxM1krOGZOVGRady80ZkQrNjhy?=
 =?utf-8?B?MVZmRDRoOGZXajFkNWlXL1RMaG1RdzM0Smx3WkgvdHZWU2wrRGZ6cUoyNDcz?=
 =?utf-8?B?bXJjTWo2NDRPUUoxalpNZEVmaGVaMHpGT0VmZ3JyckVJY3dpbUxwTnRlNW1x?=
 =?utf-8?B?NW5Pckg0ZURoK3VaME1Xa3ZWdzFrQ2kyQjREZS91TzFKVVJwZDVWeVFhZEM2?=
 =?utf-8?B?K1Z3d2hVTzIyWE41aGRjbzZveXdyV2REd0J6M3c1ZmUzSkNVd2gyZUF4ZEI3?=
 =?utf-8?B?eXVyY1hqT3NIVE9TQU5rNGR0R2ljdCsyNXlDTFpWUkFxVHEwanlFOG1FN0JO?=
 =?utf-8?B?TlJwMG9Qa3I3NWxic1NsZ3loMlZVekVyMW9WM3JLUDBNYW9UWVloZlVISld3?=
 =?utf-8?B?L0NYSHVZRkJlREpMK3locHJKaC9zclNHN3pxT2VWeVovaFFqMVlpTVN0eHpP?=
 =?utf-8?B?VG9xRTJyZTRTWnVVeitaODEyMFFoaFJaUW1nTTNVSGgxV2VTYTBneWV5SnNw?=
 =?utf-8?B?c3IvL3NvMmE0VFVCaHhhUU93VHp1SUIxY1F1MHA1bzFkR0ozZXF1WWdvbUFi?=
 =?utf-8?B?dXlyb1JmalBTa3padEc0dUNyOEJ3eEJJTmIvNW4va2Jwb1lyL0drc1lVdXRV?=
 =?utf-8?B?N05JMnFKT0RTVnMrVzVFeG83Z3RkRTR4VUhqUjdsbGJDaXoxc0VoWDhNUUZF?=
 =?utf-8?B?MHF6ek9xZW4zcGs2SzJ2TVE5VTl5czJWalo2cTVPMVZWSE52M3hVZWRlVHhu?=
 =?utf-8?B?blNPYnNRUlJ1dlUwc016WWhwQnNndUtSZGRoaDZNcDV1am9jVG40RDViQXVn?=
 =?utf-8?B?RVRDNWhBdHZZc29VeGxxcTNhUzlzeWVXL0ZUQ1Q3am45bDg5bnIyRjRyblQr?=
 =?utf-8?B?SUFOOXgwRC9BaUdmN3pKOXJvZjNuU1Y5ZkFxamRwVEthTDUreGFMeExVYzNV?=
 =?utf-8?B?VGRaNlRQZnJDU0NxMGkwZ3RQUzhIdDQzaDh2RW53bFZ6Nmo0VkNMMUtQMnJm?=
 =?utf-8?B?U0hrOGsraEtmTTBzM080RlVVWTJKdHMyaWxMNkNYYk9SbkpoNDVtZk01N1lX?=
 =?utf-8?B?TmJ2b3l5SUJIdTFHZnFEcVBMOGVsZGFBSGRmWU81VDhkSHhraE5kNHF5Q2Zs?=
 =?utf-8?B?SUplNmJsTUt2MjZKdHRXeHBBcnplVlB6MElIZlVTdE5kZmQrY3owdWVoSjZK?=
 =?utf-8?B?NnM4VzZlR0xQenVHM0tpNGVONzh6NHZ3R0Q5Nk11bHJZdzg0RFR2N0hsOFk5?=
 =?utf-8?B?bkVlMVVQNjUyY3Nic3hMMVM4c2xKQ0JQU2tYTzlTRXI1cXFUaTdZM08xdFRN?=
 =?utf-8?B?TXppWEk0MUcvTXQwSkcxazdLTXBjNVY3ejQrb0ozNzc5N0xOSEgrOWk5UTVQ?=
 =?utf-8?B?RDROSEtxYVBDcEM0ZzBqOW9DekFreDNwN0l2V1VCcmg4cldLZHgrbTYwbGZP?=
 =?utf-8?Q?xr86lR2ciTWV5Xs4=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <4B55E1E338263649B0FCEF92512AFBDE@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: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4c240261-9cd4-4029-d2af-08de892eb473
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:51:22.1814
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: LLjQFLFtQkJ+gQOPb9PmZmWcfSEAJg1511nXQuTPZQYrwHp7XLR3CefraQ3cH6peZ4fV2o7fpMvkmbgR5ZK7zA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7653
X-purgate-ID: tlsNG-720697/1774306284-42298DB8-47118C21/0/0
X-purgate-type: clean
X-purgate-size: 16972

RnJvbTogUmFodWwgU2luZ2ggPHJhaHVsLnNpbmdoQGFybS5jb20+DQoNCmRvbWFpbl92aW9tbXVf
aW5pdCgpIHdpbGwgYmUgY2FsbGVkIGR1cmluZyBkb21haW4gY3JlYXRpb24gYW5kIHdpbGwgYWRk
DQp0aGUgZHVtbXkgdHJhcCBoYW5kbGVyIGZvciB2aXJ0dWFsIElPTU1VcyBmb3IgZ3Vlc3RzLg0K
DQpBIGhvc3QgSU9NTVUgbGlzdCB3aWxsIGJlIGNyZWF0ZWQgd2hlbiBob3N0IElPTU1VIGRldmlj
ZXMgYXJlIHByb2JlZA0KYW5kIHRoaXMgbGlzdCB3aWxsIGJlIHVzZWQgdG8gY3JlYXRlIHRoZSBJ
T01NVSBkZXZpY2UgdHJlZSBub2RlIGZvcg0KZG9tMC4gRm9yIGRvbTAsIDEtMSBtYXBwaW5nIHdp
bGwgYmUgZXN0YWJsaXNoZWQgYmV0d2VlbiB2SU9NTVUgaW4gZG9tMA0KYW5kwqBwaHlzaWNhbCBJ
T01NVS4NCg0KRm9yIGRvbVVzLCB0aGUgMS1OIG1hcHBpbmcgd2lsbCBiZSBlc3RhYmxpc2hlZCBi
ZXR3ZWVuIGRvbVUgYW5kIHBoeXNpY2FsDQpJT01NVXMuIEEgbmV3IGFyZWEgaGFzIGJlZW4gcmVz
ZXJ2ZWQgaW4gdGhlIGFybSBndWVzdCBwaHlzaWNhbCBtYXAgYXQNCndoaWNoIHRoZSBlbXVsYXRl
ZCB2SU9NTVUgbm9kZSBpcyBjcmVhdGVkIGluIHRoZSBkZXZpY2UgdHJlZS4NCg0KQWxzbyBzZXQg
dGhlIHZJT01NVSB0eXBlIHRvIHZTTU1VdjMgdG8gZW5hYmxlIHZJT01NVSBmcmFtZXdvcmsgdG8g
Y2FsbA0KdlNNTVV2MyBkb21haW4gY3JlYXRpb24vZGVzdHJveSBmdW5jdGlvbnMuDQoNClNpZ25l
ZC1vZmYtYnk6IFJhaHVsIFNpbmdoIDxyYWh1bC5zaW5naEBhcm0uY29tPg0KU2lnbmVkLW9mZi1i
eTogTWlsYW4gRGpva2ljIDxtaWxhbl9kam9raWNAZXBhbS5jb20+DQotLS0NCiB4ZW4vYXJjaC9h
cm0vZG9tYWluLmMgICAgICAgICAgICAgICAgICB8ICAgMyArLQ0KIHhlbi9hcmNoL2FybS9pbmNs
dWRlL2FzbS9kb21haW4uaCAgICAgIHwgICA0ICsNCiB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20v
dmlvbW11LmggICAgICB8ICAyMCArKysrDQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvS2NvbmZp
ZyAgICAgICAgfCAgIDggKysNCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vTWFrZWZpbGUg
ICB8ICAgMSArDQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUtdjMuYyAgfCAgIDcg
KysNCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vdmlvbW11LmMgICB8ICAzMCArKysrKysN
CiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vdnNtbXUtdjMuYyB8IDEyNCArKysrKysrKysr
KysrKysrKysrKysrKysrDQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3ZzbW11LXYzLmgg
fCAgMjAgKysrKw0KIHhlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLWFybS5oICAgICAgICAgIHwgICA3
ICstDQogMTAgZmlsZXMgY2hhbmdlZCwgMjIyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p
DQogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS92c21tdS12
My5jDQogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS92c21t
dS12My5oDQoNCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZG9tYWluLmMgYi94ZW4vYXJjaC9h
cm0vZG9tYWluLmMNCmluZGV4IDM3NTExYzkzMjMuLmJhZGZkYmZjNjMgMTAwNjQ0DQotLS0gYS94
ZW4vYXJjaC9hcm0vZG9tYWluLmMNCisrKyBiL3hlbi9hcmNoL2FybS9kb21haW4uYw0KQEAgLTYz
NSw3ICs2MzUsOCBAQCBpbnQgYXJjaF9zYW5pdGlzZV9kb21haW5fY29uZmlnKHN0cnVjdCB4ZW5f
ZG9tY3RsX2NyZWF0ZWRvbWFpbiAqY29uZmlnKQ0KICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQog
ICAgIH0NCiANCi0gICAgaWYgKCBjb25maWctPmFyY2gudmlvbW11X3R5cGUgIT0gWEVOX0RPTUNU
TF9DT05GSUdfVklPTU1VX05PTkUgKQ0KKyAgICBpZiAoIGNvbmZpZy0+YXJjaC52aW9tbXVfdHlw
ZSAhPSBYRU5fRE9NQ1RMX0NPTkZJR19WSU9NTVVfTk9ORSAmJg0KKyAgICAgICAgIGNvbmZpZy0+
YXJjaC52aW9tbXVfdHlwZSAhPSB2aW9tbXVfZ2V0X3R5cGUoKSApDQogICAgIHsNCiAgICAgICAg
IGRwcmludGsoWEVOTE9HX0lORk8sDQogICAgICAgICAgICAgICAgICJ2SU9NTVUgdHlwZSByZXF1
ZXN0ZWQgbm90IHN1cHBvcnRlZCBieSB0aGUgcGxhdGZvcm0gb3IgWGVuXG4iKTsNCmRpZmYgLS1n
aXQgYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vZG9tYWluLmggYi94ZW4vYXJjaC9hcm0vaW5j
bHVkZS9hc20vZG9tYWluLmgNCmluZGV4IDc1OGFkODA3ZTQuLjM1ZmY1YzgxYmQgMTAwNjQ0DQot
LS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vZG9tYWluLmgNCisrKyBiL3hlbi9hcmNoL2Fy
bS9pbmNsdWRlL2FzbS9kb21haW4uaA0KQEAgLTEyNiw2ICsxMjYsMTAgQEAgc3RydWN0IGFyY2hf
ZG9tYWluDQogICAgIHZvaWQgKnNjaV9kYXRhOw0KICNlbmRpZg0KIA0KKyNpZmRlZiBDT05GSUdf
VklSVFVBTF9JT01NVQ0KKyAgICBzdHJ1Y3QgbGlzdF9oZWFkIHZpb21tdV9saXN0OyAgICAgLyog
TGlzdCBvZiB2aXJ0dWFsIElPTU1VcyAqLw0KKyNlbmRpZg0KKw0KIH0gIF9fY2FjaGVsaW5lX2Fs
aWduZWQ7DQogDQogc3RydWN0IGFyY2hfdmNwdQ0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9p
bmNsdWRlL2FzbS92aW9tbXUuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS92aW9tbXUuaA0K
aW5kZXggN2NkMzgxOGExMi4uNDc4NTg3N2UyYSAxMDA2NDQNCi0tLSBhL3hlbi9hcmNoL2FybS9p
bmNsdWRlL2FzbS92aW9tbXUuaA0KKysrIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3Zpb21t
dS5oDQpAQCAtNSw5ICs1LDIxIEBADQogI2lmZGVmIENPTkZJR19WSVJUVUFMX0lPTU1VDQogDQog
I2luY2x1ZGUgPHhlbi9saWIuaD4NCisjaW5jbHVkZSA8eGVuL2xpc3QuaD4NCiAjaW5jbHVkZSA8
eGVuL3R5cGVzLmg+DQogI2luY2x1ZGUgPHB1YmxpYy94ZW4uaD4NCiANCitleHRlcm4gc3RydWN0
IGxpc3RfaGVhZCBob3N0X2lvbW11X2xpc3Q7DQorDQorLyogZGF0YSBzdHJ1Y3R1cmUgZm9yIGVh
Y2ggaGFyZHdhcmUgSU9NTVUgKi8NCitzdHJ1Y3QgaG9zdF9pb21tdSB7DQorICAgIHN0cnVjdCBs
aXN0X2hlYWQgZW50cnk7DQorICAgIGNvbnN0IHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqZHRfbm9k
ZTsNCisgICAgcGFkZHJfdCBhZGRyOw0KKyAgICBwYWRkcl90IHNpemU7DQorICAgIHVpbnQzMl90
IGlycTsNCit9Ow0KKw0KIHN0cnVjdCB2aW9tbXVfb3BzIHsNCiAgICAgLyoNCiAgICAgICogQ2Fs
bGVkIGR1cmluZyBkb21haW4gY29uc3RydWN0aW9uIGlmIHRvb2xzdGFjayByZXF1ZXN0cyB0byBl
bmFibGUNCkBAIC0zNSw2ICs0Nyw4IEBAIHN0cnVjdCB2aW9tbXVfZGVzYyB7DQogaW50IGRvbWFp
bl92aW9tbXVfaW5pdChzdHJ1Y3QgZG9tYWluICpkLCB1aW50MTZfdCB2aW9tbXVfdHlwZSk7DQog
aW50IHZpb21tdV9yZWxpbnF1aXNoX3Jlc291cmNlcyhzdHJ1Y3QgZG9tYWluICpkKTsNCiB1aW50
MTZfdCB2aW9tbXVfZ2V0X3R5cGUodm9pZCk7DQordm9pZCBhZGRfdG9faG9zdF9pb21tdV9saXN0
KHBhZGRyX3QgYWRkciwgcGFkZHJfdCBzaXplLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKm5vZGUpOw0KIA0KICNlbHNlDQogDQpAQCAt
NTYsNiArNzAsMTIgQEAgc3RhdGljIGlubGluZSBpbnQgdmlvbW11X3JlbGlucXVpc2hfcmVzb3Vy
Y2VzKHN0cnVjdCBkb21haW4gKmQpDQogICAgIHJldHVybiAwOw0KIH0NCiANCitzdGF0aWMgaW5s
aW5lIHZvaWQgYWRkX3RvX2hvc3RfaW9tbXVfbGlzdChwYWRkcl90IGFkZHIsIHBhZGRyX3Qgc2l6
ZSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1
Y3QgZHRfZGV2aWNlX25vZGUgKm5vZGUpDQorew0KKyAgICByZXR1cm47DQorfQ0KKw0KICNlbmRp
ZiAvKiBDT05GSUdfVklSVFVBTF9JT01NVSAqLw0KIA0KICNlbmRpZiAvKiBfX0FSQ0hfQVJNX1ZJ
T01NVV9IX18gKi8NCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9LY29uZmln
IGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvS2NvbmZpZw0KaW5kZXggNDg3MzMxNjA3Yy4uNTRh
NzIzMDNkOCAxMDA2NDQNCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL0tjb25maWcNCisr
KyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL0tjb25maWcNCkBAIC00MCw2ICs0MCwxNCBAQCBj
b25maWcgVklSVFVBTF9JT01NVQ0KIAloZWxwDQogCSBTdXBwb3J0IHZpcnR1YWwgSU9NTVUgaW5m
cmFzdHJ1Y3R1cmUgdG8gaW1wbGVtZW50IHZJT01NVS4NCiANCitjb25maWcgVklSVFVBTF9BUk1f
U01NVV9WMw0KKwlib29sICJBUk0gTHRkLiBWaXJ0dWFsIFNNTVV2MyBTdXBwb3J0IChVTlNVUFBP
UlRFRCkiIGlmIFVOU1VQUE9SVEVEDQorCWRlcGVuZHMgb24gQVJNX1NNTVVfVjMgJiYgVklSVFVB
TF9JT01NVQ0KKwloZWxwDQorCSBTdXBwb3J0IGZvciBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIHZp
cnR1YWwgQVJNIFN5c3RlbSBNTVUgYXJjaGl0ZWN0dXJlDQorCSB2ZXJzaW9uIDMuIFZpcnR1YWwg
U01NVXYzIGlzIHVuc3VwcG9ydGVkIGZlYXR1cmUgYW5kIHNob3VsZCBub3QgYmUgdXNlZA0KKwkg
aW4gcHJvZHVjdGlvbi4NCisNCiBlbmRpZg0KIA0KIGNvbmZpZyBBTURfSU9NTVUNCmRpZmYgLS1n
aXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vTWFrZWZpbGUgYi94ZW4vZHJpdmVycy9w
YXNzdGhyb3VnaC9hcm0vTWFrZWZpbGUNCmluZGV4IDRjYzU0ZjNmNGQuLmU3NThhOWQ2YWEgMTAw
NjQ0DQotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vTWFrZWZpbGUNCisrKyBiL3hl
bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9NYWtlZmlsZQ0KQEAgLTMsMyArMyw0IEBAIG9iai0k
KENPTkZJR19BUk1fU01NVSkgKz0gc21tdS5vDQogb2JqLSQoQ09ORklHX0lQTU1VX1ZNU0EpICs9
IGlwbW11LXZtc2Eubw0KIG9iai0kKENPTkZJR19BUk1fU01NVV9WMykgKz0gc21tdS12My5vDQog
b2JqLSQoQ09ORklHX1ZJUlRVQUxfSU9NTVUpICs9IHZpb21tdS5vDQorb2JqLSQoQ09ORklHX1ZJ
UlRVQUxfQVJNX1NNTVVfVjMpICs9IHZzbW11LXYzLm8NCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVy
cy9wYXNzdGhyb3VnaC9hcm0vc21tdS12My5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJt
L3NtbXUtdjMuYw0KaW5kZXggMTllNTViNmM5Yi4uODc2MTJkZjIxZCAxMDA2NDQNCi0tLSBhL3hl
bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LXYzLmMNCisrKyBiL3hlbi9kcml2ZXJzL3Bh
c3N0aHJvdWdoL2FybS9zbW11LXYzLmMNCkBAIC05Myw2ICs5Myw3IEBADQogI2luY2x1ZGUgPGFz
bS9wbGF0Zm9ybS5oPg0KIA0KICNpbmNsdWRlICJzbW11LXYzLmgiDQorI2luY2x1ZGUgInZzbW11
LXYzLmgiDQogDQogI2RlZmluZSBBUk1fU01NVV9WVENSX1NIX0lTCQkzDQogI2RlZmluZSBBUk1f
U01NVV9WVENSX1JHTl9XQldBCQkxDQpAQCAtMjcyNyw2ICsyNzI4LDkgQEAgc3RhdGljIGludCBf
X2luaXQgYXJtX3NtbXVfZGV2aWNlX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp
DQogCWxpc3RfYWRkKCZzbW11LT5kZXZpY2VzLCAmYXJtX3NtbXVfZGV2aWNlcyk7DQogCXNwaW5f
dW5sb2NrKCZhcm1fc21tdV9kZXZpY2VzX2xvY2spOw0KIA0KKyAgICAvKiBBZGQgdG8gaG9zdCBJ
T01NVSBsaXN0IHRvIGluaXRpYWxpemUgdklPTU1VIGZvciBkb20wICovDQorCWFkZF90b19ob3N0
X2lvbW11X2xpc3QoaW9hZGRyLCBpb3NpemUsIGRldl90b19kdChwZGV2KSk7DQorDQogCXJldHVy
biAwOw0KIA0KIA0KQEAgLTMwNTgsNiArMzA2Miw5IEBAIHN0YXRpYyBfX2luaXQgaW50IGFybV9z
bW11X2R0X2luaXQoc3RydWN0IGR0X2RldmljZV9ub2RlICpkZXYsDQogDQogCXBsYXRmb3JtX2Zl
YXR1cmVzICY9IHNtbXUtPmZlYXR1cmVzOw0KIA0KKwkvKiBTZXQgdklPTU1VIHR5cGUgdG8gU01N
VXYzICovDQorCXZzbW11djNfc2V0X3R5cGUoKTsNCisNCiAJcmV0dXJuIDA7DQogfQ0KIA0KZGlm
ZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS92aW9tbXUuYyBiL3hlbi9kcml2
ZXJzL3Bhc3N0aHJvdWdoL2FybS92aW9tbXUuYw0KaW5kZXggN2FiNjA2MWUzNC4uNTNhZTQ2MzQ5
YSAxMDA2NDQNCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS92aW9tbXUuYw0KKysr
IGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3Zpb21tdS5jDQpAQCAtMiwxMiArMiw0MiBA
QA0KIA0KICNpbmNsdWRlIDx4ZW4vZXJybm8uaD4NCiAjaW5jbHVkZSA8eGVuL2luaXQuaD4NCisj
aW5jbHVkZSA8eGVuL2lycS5oPg0KICNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4NCiANCiAjaW5jbHVk
ZSA8YXNtL3Zpb21tdS5oPg0KIA0KKy8qIExpc3Qgb2YgYWxsIGhvc3QgSU9NTVVzICovDQorTElT
VF9IRUFEKGhvc3RfaW9tbXVfbGlzdCk7DQorDQogY29uc3Qgc3RydWN0IHZpb21tdV9kZXNjIF9f
cmVhZF9tb3N0bHkgKmN1cl92aW9tbXU7DQogDQorLyogQ29tbW9uIGZ1bmN0aW9uIGZvciBhZGRp
bmcgdG8gaG9zdF9pb21tdV9saXN0ICovDQordm9pZCBhZGRfdG9faG9zdF9pb21tdV9saXN0KHBh
ZGRyX3QgYWRkciwgcGFkZHJfdCBzaXplLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKm5vZGUpDQorew0KKyAgICBzdHJ1Y3QgaG9zdF9p
b21tdSAqaW9tbXVfZGF0YTsNCisNCisgICAgaW9tbXVfZGF0YSA9IHh6YWxsb2Moc3RydWN0IGhv
c3RfaW9tbXUpOw0KKyAgICBpZiAoICFpb21tdV9kYXRhICkNCisgICAgICAgIHBhbmljKCJ2SU9N
TVU6IENhbm5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIGhvc3QgSU9NTVUgZGF0YVxuIik7DQorDQor
ICAgIGlvbW11X2RhdGEtPmFkZHIgPSBhZGRyOw0KKyAgICBpb21tdV9kYXRhLT5zaXplID0gc2l6
ZTsNCisgICAgaW9tbXVfZGF0YS0+ZHRfbm9kZSA9IG5vZGU7DQorICAgIGlvbW11X2RhdGEtPmly
cSA9IHBsYXRmb3JtX2dldF9pcnEobm9kZSwgMCk7DQorICAgIGlmICggaW9tbXVfZGF0YS0+aXJx
IDwgMCApDQorICAgIHsNCisgICAgICAgIGdkcHJpbnRrKFhFTkxPR19FUlIsDQorICAgICAgICAg
ICAgICAgICAidklPTU1VOiBDYW5ub3QgZmluZCBhIHZhbGlkIElPTU1VIGlycVxuIik7DQorICAg
ICAgICByZXR1cm47DQorICAgIH0NCisNCisgICAgcHJpbnRrKCJ2SU9NTVU6IEZvdW5kIElPTU1V
IEAweCUiUFJJeDY0IlxuIiwgYWRkcik7DQorDQorICAgIGxpc3RfYWRkX3RhaWwoJmlvbW11X2Rh
dGEtPmVudHJ5LCAmaG9zdF9pb21tdV9saXN0KTsNCit9DQorDQogaW50IGRvbWFpbl92aW9tbXVf
aW5pdChzdHJ1Y3QgZG9tYWluICpkLCB1aW50MTZfdCB2aW9tbXVfdHlwZSkNCiB7DQogICAgIGlm
ICggdmlvbW11X3R5cGUgPT0gWEVOX0RPTUNUTF9DT05GSUdfVklPTU1VX05PTkUgKQ0KZGlmZiAt
LWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS92c21tdS12My5jIGIveGVuL2RyaXZl
cnMvcGFzc3Rocm91Z2gvYXJtL3ZzbW11LXYzLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRl
eCAwMDAwMDAwMDAwLi42YjQwMDllNWVmDQotLS0gL2Rldi9udWxsDQorKysgYi94ZW4vZHJpdmVy
cy9wYXNzdGhyb3VnaC9hcm0vdnNtbXUtdjMuYw0KQEAgLTAsMCArMSwxMjQgQEANCisvKiBTUERY
LUxpY2Vuc2UtSWRlbnRpZmllcjogKEdQTC0yLjAtb3ItbGF0ZXIgT1IgQlNELTItQ2xhdXNlKSAq
Lw0KKw0KKyNpbmNsdWRlIDx4ZW4vcGFyYW0uaD4NCisjaW5jbHVkZSA8eGVuL3NjaGVkLmg+DQor
I2luY2x1ZGUgPGFzbS9tbWlvLmg+DQorI2luY2x1ZGUgPGFzbS92aW9tbXUuaD4NCisNCisvKiBT
dHJ1Y3QgdG8gaG9sZCB0aGUgdklPTU1VIG9wcyBhbmQgdklPTU1VIHR5cGUgKi8NCitleHRlcm4g
Y29uc3Qgc3RydWN0IHZpb21tdV9kZXNjIF9fcmVhZF9tb3N0bHkgKmN1cl92aW9tbXU7DQorDQor
c3RydWN0IHZpcnRfc21tdSB7DQorICAgIHN0cnVjdCAgICAgIGRvbWFpbiAqZDsNCisgICAgc3Ry
dWN0ICAgICAgbGlzdF9oZWFkIHZpb21tdV9saXN0Ow0KK307DQorDQorc3RhdGljIGludCB2c21t
dXYzX21taW9fd3JpdGUoc3RydWN0IHZjcHUgKnYsIG1taW9faW5mb190ICppbmZvLA0KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyX3Qgciwgdm9pZCAqcHJpdikNCit7DQor
ICAgIHJldHVybiBJT19IQU5ETEVEOw0KK30NCisNCitzdGF0aWMgaW50IHZzbW11djNfbW1pb19y
ZWFkKHN0cnVjdCB2Y3B1ICp2LCBtbWlvX2luZm9fdCAqaW5mbywNCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlZ2lzdGVyX3QgKnIsIHZvaWQgKnByaXYpDQorew0KKyAgICByZXR1cm4g
SU9fSEFORExFRDsNCit9DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBtbWlvX2hhbmRsZXJfb3Bz
IHZzbW11djNfbW1pb19oYW5kbGVyID0gew0KKyAgICAucmVhZCAgPSB2c21tdXYzX21taW9fcmVh
ZCwNCisgICAgLndyaXRlID0gdnNtbXV2M19tbWlvX3dyaXRlLA0KK307DQorDQorc3RhdGljIGlu
dCB2c21tdXYzX2luaXRfc2luZ2xlKHN0cnVjdCBkb21haW4gKmQsIHBhZGRyX3QgYWRkciwgcGFk
ZHJfdCBzaXplKQ0KK3sNCisgICAgc3RydWN0IHZpcnRfc21tdSAqc21tdTsNCisNCisgICAgc21t
dSA9IHh6YWxsb2Moc3RydWN0IHZpcnRfc21tdSk7DQorICAgIGlmICggIXNtbXUgKQ0KKyAgICAg
ICAgcmV0dXJuIC1FTk9NRU07DQorDQorICAgIHNtbXUtPmQgPSBkOw0KKw0KKyAgICByZWdpc3Rl
cl9tbWlvX2hhbmRsZXIoZCwgJnZzbW11djNfbW1pb19oYW5kbGVyLCBhZGRyLCBzaXplLCBzbW11
KTsNCisNCisgICAgLyogUmVnaXN0ZXIgdGhlIHZJT01NVSB0byBiZSBhYmxlIHRvIGNsZWFuIGl0
IHVwIGxhdGVyLiAqLw0KKyAgICBsaXN0X2FkZF90YWlsKCZzbW11LT52aW9tbXVfbGlzdCwgJmQt
PmFyY2gudmlvbW11X2xpc3QpOw0KKw0KKyAgICByZXR1cm4gMDsNCit9DQorDQoraW50IGRvbWFp
bl92c21tdXYzX2luaXQoc3RydWN0IGRvbWFpbiAqZCkNCit7DQorICAgIGludCByZXQ7DQorICAg
IElOSVRfTElTVF9IRUFEKCZkLT5hcmNoLnZpb21tdV9saXN0KTsNCisNCisgICAgaWYgKCBpc19o
YXJkd2FyZV9kb21haW4oZCkgKQ0KKyAgICB7DQorICAgICAgICBzdHJ1Y3QgaG9zdF9pb21tdSAq
aHdfaW9tbXU7DQorDQorICAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGh3X2lvbW11LCAmaG9z
dF9pb21tdV9saXN0LCBlbnRyeSkNCisgICAgICAgIHsNCisgICAgICAgICAgICByZXQgPSB2c21t
dXYzX2luaXRfc2luZ2xlKGQsIGh3X2lvbW11LT5hZGRyLCBod19pb21tdS0+c2l6ZSk7DQorICAg
ICAgICAgICAgaWYgKCByZXQgKQ0KKyAgICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KKyAgICAg
ICAgfQ0KKyAgICB9DQorICAgIGVsc2UNCisgICAgew0KKyAgICAgICAgcmV0ID0gdnNtbXV2M19p
bml0X3NpbmdsZShkLCBHVUVTVF9WU01NVVYzX0JBU0UsIEdVRVNUX1ZTTU1VVjNfU0laRSk7DQor
ICAgICAgICBpZiAoIHJldCApDQorICAgICAgICAgICAgcmV0dXJuIHJldDsNCisgICAgfQ0KKw0K
KyAgICByZXR1cm4gMDsNCit9DQorDQoraW50IHZzbW11djNfcmVsaW5xdWlzaF9yZXNvdXJjZXMo
c3RydWN0IGRvbWFpbiAqZCkNCit7DQorICAgIHN0cnVjdCB2aXJ0X3NtbXUgKnBvcywgKnRlbXA7
DQorDQorICAgIC8qIENvcGUgd2l0aCB1bml0aWFsaXplZCB2SU9NTVUgKi8NCisgICAgaWYgKCBs
aXN0X2hlYWRfaXNfbnVsbCgmZC0+YXJjaC52aW9tbXVfbGlzdCkgKQ0KKyAgICAgICAgcmV0dXJu
IDA7DQorDQorICAgIGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwb3MsIHRlbXAsICZkLT5hcmNo
LnZpb21tdV9saXN0LCB2aW9tbXVfbGlzdCApDQorICAgIHsNCisgICAgICAgIGxpc3RfZGVsKCZw
b3MtPnZpb21tdV9saXN0KTsNCisgICAgICAgIHhmcmVlKHBvcyk7DQorICAgIH0NCisNCisgICAg
cmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdmlvbW11X29wcyB2c21tdXYz
X29wcyA9IHsNCisgICAgLmRvbWFpbl9pbml0ID0gZG9tYWluX3ZzbW11djNfaW5pdCwNCisgICAg
LnJlbGlucXVpc2hfcmVzb3VyY2VzID0gdnNtbXV2M19yZWxpbnF1aXNoX3Jlc291cmNlcywNCit9
Ow0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdmlvbW11X2Rlc2MgdnNtbXV2M19kZXNjID0gew0K
KyAgICAub3BzID0gJnZzbW11djNfb3BzLA0KKyAgICAudmlvbW11X3R5cGUgPSBYRU5fRE9NQ1RM
X0NPTkZJR19WSU9NTVVfU01NVVYzLA0KK307DQorDQordm9pZCBfX2luaXQgdnNtbXV2M19zZXRf
dHlwZSh2b2lkKQ0KK3sNCisgICAgY29uc3Qgc3RydWN0IHZpb21tdV9kZXNjICpkZXNjID0gJnZz
bW11djNfZGVzYzsNCisNCisgICAgaWYgKCBjdXJfdmlvbW11ICYmIChjdXJfdmlvbW11ICE9IGRl
c2MpICkNCisgICAgew0KKyAgICAgICAgcHJpbnRrKCJXQVJOSU5HOiBDYW5ub3Qgc2V0IHZJT01N
VSwgYWxyZWFkeSBzZXQgdG8gYSBkaWZmZXJlbnQgdmFsdWVcbiIpOw0KKyAgICAgICAgcmV0dXJu
Ow0KKyAgICB9DQorDQorICAgIGN1cl92aW9tbXUgPSBkZXNjOw0KK30NCisNCisvKg0KKyAqIExv
Y2FsIHZhcmlhYmxlczoNCisgKiBtb2RlOiBDDQorICogYy1maWxlLXN0eWxlOiAiQlNEIg0KKyAq
IGMtYmFzaWMtb2Zmc2V0OiA0DQorICogaW5kZW50LXRhYnMtbW9kZTogbmlsDQorICogRW5kOg0K
KyAqLw0KZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS92c21tdS12My5o
IGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3ZzbW11LXYzLmgNCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwLi5lMTFmODViNDMxDQotLS0gL2Rldi9udWxsDQorKysg
Yi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vdnNtbXUtdjMuaA0KQEAgLTAsMCArMSwyMCBA
QA0KKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiAoR1BMLTIuMC1vci1sYXRlciBPUiBCU0Qt
Mi1DbGF1c2UpICovDQorI2lmbmRlZiBfX0FSQ0hfQVJNX1ZTTU1VX1YzX0hfXw0KKyNkZWZpbmUg
X19BUkNIX0FSTV9WU01NVV9WM19IX18NCisNCisjaW5jbHVkZSA8YXNtL3Zpb21tdS5oPg0KKw0K
KyNpZmRlZiBDT05GSUdfVklSVFVBTF9BUk1fU01NVV9WMw0KKw0KK3ZvaWQgdnNtbXV2M19zZXRf
dHlwZSh2b2lkKTsNCisNCisjZWxzZQ0KKw0KK3N0YXRpYyBpbmxpbmUgdm9pZCB2c21tdXYzX3Nl
dF90eXBlKHZvaWQpDQorew0KKyAgICByZXR1cm47DQorfQ0KKw0KKyNlbmRpZiAvKiBDT05GSUdf
VklSVFVBTF9BUk1fU01NVV9WMyAqLw0KKw0KKyNlbmRpZiAvKiBfX0FSQ0hfQVJNX1ZTTU1VX1Yz
X0hfXyAqLw0KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLWFybS5oIGIveGVu
L2luY2x1ZGUvcHVibGljL2FyY2gtYXJtLmgNCmluZGV4IGIxZGIyYmYxOWQuLjkzNzFjMTYzYzQg
MTAwNjQ0DQotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC1hcm0uaA0KKysrIGIveGVuL2lu
Y2x1ZGUvcHVibGljL2FyY2gtYXJtLmgNCkBAIC0zMzAsNyArMzMwLDggQEAgREVGSU5FX1hFTl9H
VUVTVF9IQU5ETEUodmNwdV9ndWVzdF9jb250ZXh0X3QpOw0KICNkZWZpbmUgWEVOX0RPTUNUTF9D
T05GSUdfQVJNX1NDSV9OT05FICAgICAgMA0KICNkZWZpbmUgWEVOX0RPTUNUTF9DT05GSUdfQVJN
X1NDSV9TQ01JX1NNQyAgMQ0KIA0KLSNkZWZpbmUgWEVOX0RPTUNUTF9DT05GSUdfVklPTU1VX05P
TkUgICAwDQorI2RlZmluZSBYRU5fRE9NQ1RMX0NPTkZJR19WSU9NTVVfTk9ORSAgICAgICAwDQor
I2RlZmluZSBYRU5fRE9NQ1RMX0NPTkZJR19WSU9NTVVfU01NVVYzICAgICAxDQogDQogc3RydWN0
IHhlbl9hcmNoX2RvbWFpbmNvbmZpZyB7DQogICAgIC8qIElOL09VVCAqLw0KQEAgLTQ1NSw2ICs0
NTYsMTAgQEAgdHlwZWRlZiB1aW50NjRfdCB4ZW5fY2FsbGJhY2tfdDsNCiAjZGVmaW5lIEdVRVNU
X0dJQ1YzX0dJQ1IwX0JBU0UgICAgIHhlbl9ta191bGxvbmcoMHgwMzAyMDAwMCkgLyogdkNQVTAu
LjEyNyAqLw0KICNkZWZpbmUgR1VFU1RfR0lDVjNfR0lDUjBfU0laRSAgICAgeGVuX21rX3VsbG9u
ZygweDAxMDAwMDAwKQ0KIA0KKy8qIHZzbW11djMgSVRTIG1hcHBpbmdzICovDQorI2RlZmluZSBH
VUVTVF9WU01NVVYzX0JBU0UgICAgIHhlbl9ta191bGxvbmcoMHgwNDA0MDAwMCkNCisjZGVmaW5l
IEdVRVNUX1ZTTU1VVjNfU0laRSAgICAgeGVuX21rX3VsbG9uZygweDAwMDQwMDAwKQ0KKw0KIC8q
DQogICogMjU2IE1CIGlzIHJlc2VydmVkIGZvciBWUENJIGNvbmZpZ3VyYXRpb24gc3BhY2UgYmFz
ZWQgb24gY2FsY3VsYXRpb24NCiAgKiAyNTYgYnVzZXMgeCAzMiBkZXZpY2VzIHggOCBmdW5jdGlv
bnMgeCA0IEtCID0gMjU2IE1CDQotLSANCjIuNDMuMA0K


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259643.1553029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7L-0000MB-IT; Mon, 23 Mar 2026 22:51:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259643.1553029; Mon, 23 Mar 2026 22: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 1w4o7L-0000K8-CI; Mon, 23 Mar 2026 22:51:27 +0000
Received: by outflank-mailman (input) for mailman id 1259643;
 Mon, 23 Mar 2026 22:51:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w4o7J-00087U-BU
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:51:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4o7I-00As5i-Nm
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 23:51:24 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c39c-e002-0a2a0a5209dd-0a2a4508b60e-10
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:24 +0100
Received: from [52.101.70.122]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c3ec-1950-0a2a45080019-3465467af2ba-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:24 +0100
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB7653.eurprd03.prod.outlook.com (2603:10a6:20b:34b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:51:23 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22:51:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JVgrz7wbISlrpebU/bCX+S9GstWY5hFMUHW5QOBDin4/tgInSpsPbe5iFs58PdcJIXfX136D8YOn12PA3qFgCjjDBtsdUfSjJvl4B/PIiIiX7kEKvTOOLik2tkNm8BPyBTkcbPovqm6lxi1Lg1HQdmO6OUZE9yHI4IriJXmMEPGdf646aA/lRRi6GGATbHqumKjn2IDsfHQqdaQk5QG6woUYR4QChx4fc5RKH0MzezzsQqKykBc5j8zYbZwQ5krUJnPxjQsAMS7Yx3dh18c6yGBVqp93+2NMWFPP7nk2mMEtEGySCFgNoQ8sFIWbEtRYRg67RDvLaNGVBUJsGGNnxw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DSkdc8Q1mbwBeVdo4Zby08ryEVkC3pfgX4ru+ElFWTU=;
 b=kzpyjRyOGnRaVgZ7f61hM7dJ8UamXLEdLEB8I04FFdXU1OX5cFL9vCKrWxz0DOzT/fx7PspIfiF9Lh3ttrrv+TgiEhO2Z0l0EmLDfa4khrCunR74HNc41onZLZpoOkaPL9l1fHCrFAZ6g29+2+F/vsn1RBX2KHm9se8pd5HuTqzC1tWFXcCbYKaI3CjdrE5Ff0D8OR3AoEsVGEHC+KqJ0YjTESWAb5iNLbnOJSLDxhUbREzMyLL6aNbcw1R5a/kwmovn8pOuIYd6458sK2RSOo0ZtLQd/onZgl8zuO9+b/u7nrDWOkQDLsTAZ0v7lJeajXg7AyFVxkUmqrdp8g7TLw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DSkdc8Q1mbwBeVdo4Zby08ryEVkC3pfgX4ru+ElFWTU=;
 b=LwDz0F4YvXZo8evBfE4wFI4aBaAyFx1JPum7Rt8I96hlcOPDkFD4aoBEdzMaDilI+eZ9zZkBPxilOprIC/+hXsZ2KT5ZRs/X0ux//FmP4Gl0F1Ibbg8KLTLUSMvTzNjJzjqViRgY0gyCDQ2F1DFzXNybtj+Xsedz6x/5agZJYWpgBPR39CDL3N23k1u5sE48Da4Emv6kMRMLOocIvIVuBlBpjMfNiIrEi68rt7hD28nwkXoDDErWs3u9hsFTtRTSF0reAKiwucJucL2lE3UxbgGKrTFwQ48bkBkQ1WsAVUTSla+MUu+QhKzX6jTGiejgnnJFFRtC21WB3UAZNtz5qw==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Nick Rosbrook <enr0n@ubuntu.com>, George Dunlap
	<gwd@xenproject.org>, Juergen Gross <jgross@suse.com>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH v2 06/23] xen/domctl: Add XEN_DOMCTL_CONFIG_VIOMMU_* and
 viommu config param
Thread-Topic: [PATCH v2 06/23] xen/domctl: Add XEN_DOMCTL_CONFIG_VIOMMU_* and
 viommu config param
Thread-Index: AQHcuxeSK6excSmuKEuyXATKeh0DbQ==
Date: Mon, 23 Mar 2026 22:51:23 +0000
Message-ID:
 <f04d9186eb3b83a4f5fb27db412bf10fb6fb092c.1774305918.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB7653:EE_
x-ms-office365-filtering-correlation-id: 48d1e7f5-9e70-4e38-d1e3-08de892eb50d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021|22082099003|18002099003|56012099003;
x-microsoft-antispam-message-info:
 366dmPq2bCPDrVEGapTJoVx2VdXisEMP0FR5jdKbacLQuHEr58bQjlCGsBf4ce8frG8VdmIWxalBZ/b35e70sjs8YKqTeM9IYoNXkcph9HuC/vQ6vbqk29i/HxWwuKKoQFXmxIh4oOyfBJF1KGI58AXLWXPM6FkPIGMenGdh9WYA1tZ3XSXAjA1gXC/BhdV1BJO6r68Zr9WJPGKWOxQXgFyTFMAyscaE+IMNeR4TMK1dmQGwZU7mdTOMi1Gxyt+8Zye9s1Xmy269jfbZ4YBDWdUcgC3iDjJn2vhNZ7VHGDArUUq1hbKYqTcXtv+ozp6LP/yMWDNi72QPN9aqG+rxuJTiPYCnmrhnaikX81POLkZ4v13KcIIQXBY7fZDuylk9QgjR+E67jb0KxYvDPVHDOj+OPfJMQsrJXxK/XAbdQMKMA0cP7bkNRm+9PnpuLpIPWwqkUDfgtC/j0+BqXKx9/d60mzcwK4UvWZt7L1OgeTbNYprfPG0P+XCHVNSB8gwDEhh6J1v9n7OcnMYcenBilChhBmkOlFsI4KWZ/wqBpRf06W3jz9e8kgXqD3SXrdC0+dathXH4S4+ys3oHokRKkQT1mRDwc4m1FintbQtXqt+sCV9xW/ftufxMU+wFi9iQ833kk/pVUGHSNGSYJr2MLtm3muGsKg6an92CzugMUPg0HTzoZ01j4yHJxqekC6Nkid3ogEXfPsl4nd4BA0WpgJmjh6kJozs9LBeXVW9r67UtLmRrm67NtZPTsjtClKmh8QLkqlw1nPshMZARnvnTGGOPahFyXECLbaLcO9uxIZM=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?dr5SxvQb/9UgKxOTdfiTjKkV3s8ENbSSVwArIbolR+GiaNLh8d+3WERYju?=
 =?iso-8859-1?Q?Sf4Q2263M1ifHZfsXX/2hJuDy6t63YzzPb5i84wJ6jC6HHPJmlYgOetYQm?=
 =?iso-8859-1?Q?46E5XtuCvQXtv1JQzzrimiN+WoYrwEB/N8qIapwqtkS9AinhsmEWIXLr2V?=
 =?iso-8859-1?Q?/j6kk+s9UBnJAXB3V3W65g8JK1UWRgZy+3Qs0+gcaQEV8SO1UGELrnG7RU?=
 =?iso-8859-1?Q?SMa1WQSkSi8FYACMjO+GbizTRRHF6thYUXXDu2gEnC6kZWWQNzOqX9NXoT?=
 =?iso-8859-1?Q?vj3Ci95VIEu8WqnSLDXcBLPbaQFXcw8HWisPJ6NRvT2YBcx7GpufTwGvqh?=
 =?iso-8859-1?Q?GgNhhP86Ap1MANZ1mVnDQfAnYOQqPpTKLGPPTKog7cp/SNKVcO3hICmYJ1?=
 =?iso-8859-1?Q?qp9TfXrl4PszTvB3ijLBn5zM3CMzXvk9O5pQqMFR+VAdDCl/zTn6ngFJkK?=
 =?iso-8859-1?Q?hmMrfGdljai/znLgfY7eV+Odus1ky3YnTlfflmb30alsEtBOC4/nlNmAyB?=
 =?iso-8859-1?Q?qODcfCSWBz6KsavXMeAl3lHMV+BtpbqHmm7CdFfxBC/tGTHxS6MFWxn8rE?=
 =?iso-8859-1?Q?kuNws98baSocW9YiNFJPF7v0FZdudNoJ3dxWyalD/CvUEIy2E+sifIG7V2?=
 =?iso-8859-1?Q?7V+xQV4g/+Jt9/tL35zV7WxUaoC8kgh2q/XPFYS9j9ayEI/H3Nyz0Zo0OJ?=
 =?iso-8859-1?Q?Pz/cRKm1XCPJ9gee1VFrVTBa8nV53B580E88BBEgTnHy4qxj9QE+Sh7R8Z?=
 =?iso-8859-1?Q?IMZaSms5jau3WsVmz44ePgxzTMEgkFMC1MbfyDBH9lLn2otpszt6Q7JgXp?=
 =?iso-8859-1?Q?jrPg0frSAh8B9ijwrnqNa43C1ufvnl5oVGzpUxoUBN7xcMczmtQlP2EeLA?=
 =?iso-8859-1?Q?U6Kqm8JC+GYXZvw8Dlk8aRZxyM5zOgFjYwjGwGIHJNdUrQCuR9BgVDvDW8?=
 =?iso-8859-1?Q?HYbBzodzd+tFmt/tjS7LJZE1izWWBqrG2igwknpSLJE5M5+2C5fwl4lrJA?=
 =?iso-8859-1?Q?HEBOLpS/1UvasKX01yhxFAa96UkQ/k7vgXWMO1tGnWj7tXADlqtk2yV5Cl?=
 =?iso-8859-1?Q?LJ+LpHAViAFxnjpYJ4AfqQOEfx35nRabP6j8Vw9qyKcXGwiiMkcT5rLEbK?=
 =?iso-8859-1?Q?3Lzp6WkKkDcQfMnnulRHWodGMbT9B1Q2STintdkBY7q8POUn8Wme0k/6zW?=
 =?iso-8859-1?Q?hLXht6ZZkz8BJflqddYqfYU8AGUXHquHMJfnIBljJAaYfEnVoC6w/zvDQ6?=
 =?iso-8859-1?Q?vQRefI5rZUFbGdNB84P3TbvhiG8rpY3VxXY9wt2xK6aXVXI/c9j7ytsfsu?=
 =?iso-8859-1?Q?1OBMQyHKwvBasO99Z1g59oe2pJaljWxjDp+6EvLwcWnGmPGcgj7y4eLq9v?=
 =?iso-8859-1?Q?EC+4v4a7yYGC2EdHfU4nPJSFkwlA43U8NZKH+6PnObZ7gRrZSkSsdFoF8c?=
 =?iso-8859-1?Q?kk8wUPj0XZbIUN5cfhUyYE4sTMsqpuvoffnJSqX6tPYgN6JrPlNJtnjrYG?=
 =?iso-8859-1?Q?9iLMAtBlUtNyP+IamX5nEkG8jgthUniF2YTQxBrPoryETslVKFiJUlXy3X?=
 =?iso-8859-1?Q?E6GkPwLRq70khg7ve6wwKuj9L6Wk24NQX/6rIV/2EBrT5QrXW1zzooXpxg?=
 =?iso-8859-1?Q?hAq3iA4qpj9JkLgi8wMhE4NXUHJix21rMOAKHgkHbXK4yqes4F6f5iORZp?=
 =?iso-8859-1?Q?LOVxUsTbysjSRlf8AK4MAeXW6t3WXdagFtSQvix+TGFJF6eWMk3gPW9TuW?=
 =?iso-8859-1?Q?1T4FGcnpi6/ybkUw2rae/XwvjdP/nhGmaT6MOS1ab2cmkTUXtTXb6/4tcO?=
 =?iso-8859-1?Q?f9WSpuGvTqNOh9HQJVZFUn+5vPFmxKI=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 48d1e7f5-9e70-4e38-d1e3-08de892eb50d
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:51:23.2009
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 3aiE0k0UTNmrGcV8CWod3uBnZJbqVD3A/2BVfS1hD5QJsV2dNWExPtlO6mDmMunXPUMmhwTVMw6+YmkhA77hLQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7653
X-purgate-ID: tlsNG-c1860d/1774306284-EB096726-1C5C9DFA/0/0
X-purgate-type: clean
X-purgate-size: 5868

From: Rahul Singh <rahul.singh@arm.com>

Add new viommu_type field and field values XEN_DOMCTL_CONFIG_VIOMMU_NONE
XEN_DOMCTL_CONFIG_VIOMMU_SMMUV3 in xen_arch_domainconfig to
enable/disable vIOMMU support for domains.

Also add viommu=3D"N" parameter to xl domain configuration to enable the
vIOMMU for the domains. Currently, only the "smmuv3" type is supported
for ARM.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 docs/man/xl.cfg.5.pod.in             | 13 +++++++++++++
 tools/golang/xenlight/helpers.gen.go |  2 ++
 tools/golang/xenlight/types.gen.go   |  1 +
 tools/include/libxl.h                |  5 +++++
 tools/libs/light/libxl_arm.c         | 13 +++++++++++++
 tools/libs/light/libxl_types.idl     |  6 ++++++
 tools/xl/xl_parse.c                  |  9 +++++++++
 7 files changed, 49 insertions(+)

diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index 27c455210b..f69cdee55c 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -3162,6 +3162,19 @@ option.
=20
 =3Dback
=20
+=3Dover 4
+
+=3Ditem B<viommu=3D"N">
+
+To enable viommu, user must specify the following option in the VM
+config file:
+
+viommu =3D "smmuv3"
+
+Currently, only the "smmuv3" type is supported for ARM.
+
+=3Dback
+
 =3Dhead3 x86
=20
 =3Dover 4
diff --git a/tools/golang/xenlight/helpers.gen.go b/tools/golang/xenlight/h=
elpers.gen.go
index 8909fe8a1b..4f0997f02f 100644
--- a/tools/golang/xenlight/helpers.gen.go
+++ b/tools/golang/xenlight/helpers.gen.go
@@ -1195,6 +1195,7 @@ x.ArchArm.NrSpis =3D uint32(xc.arch_arm.nr_spis)
 if err :=3D x.ArchArm.ArmSci.fromC(&xc.arch_arm.arm_sci);err !=3D nil {
 return fmt.Errorf("converting field ArchArm.ArmSci: %v", err)
 }
+x.ArchArm.Viommu =3D ViommuType(xc.arch_arm.viommu)
 if err :=3D x.ArchX86.MsrRelaxed.fromC(&xc.arch_x86.msr_relaxed);err !=3D =
nil {
 return fmt.Errorf("converting field ArchX86.MsrRelaxed: %v", err)
 }
@@ -1734,6 +1735,7 @@ xc.arch_arm.nr_spis =3D C.uint32_t(x.ArchArm.NrSpis)
 if err :=3D x.ArchArm.ArmSci.toC(&xc.arch_arm.arm_sci); err !=3D nil {
 return fmt.Errorf("converting field ArchArm.ArmSci: %v", err)
 }
+xc.arch_arm.viommu =3D C.libxl_viommu_type(x.ArchArm.Viommu)
 if err :=3D x.ArchX86.MsrRelaxed.toC(&xc.arch_x86.msr_relaxed); err !=3D n=
il {
 return fmt.Errorf("converting field ArchX86.MsrRelaxed: %v", err)
 }
diff --git a/tools/golang/xenlight/types.gen.go b/tools/golang/xenlight/typ=
es.gen.go
index ab9d4ca7b4..8a37b52a82 100644
--- a/tools/golang/xenlight/types.gen.go
+++ b/tools/golang/xenlight/types.gen.go
@@ -610,6 +610,7 @@ Vuart VuartType
 SveVl SveType
 NrSpis uint32
 ArmSci ArmSci
+Viommu ViommuType
 }
 ArchX86 struct {
 MsrRelaxed Defbool
diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index bc35e412da..f7d5c77e23 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -318,6 +318,11 @@
  */
 #define LIBXL_HAVE_BUILDINFO_ARCH_ARM_SCI 1
=20
+/*
+ * libxl_domain_build_info has the arch_arm.viommu_type field.
+ */
+#define LIBXL_HAVE_BUILDINFO_ARM_VIOMMU 1
+
 /*
  * LIBXL_HAVE_SOFT_RESET indicates that libxl supports performing
  * 'soft reset' for domains and there is 'soft_reset' shutdown reason
diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index 7e9f8a1bc3..a248793588 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -247,6 +247,19 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
     }
     LOG(DEBUG, " - SCI type=3D%u", config->arch.arm_sci_type);
=20
+    switch (d_config->b_info.arch_arm.viommu_type) {
+    case LIBXL_VIOMMU_TYPE_NONE:
+        config->arch.viommu_type =3D XEN_DOMCTL_CONFIG_VIOMMU_NONE;
+        break;
+    case LIBXL_VIOMMU_TYPE_SMMUV3:
+        config->arch.viommu_type =3D XEN_DOMCTL_CONFIG_VIOMMU_SMMUV3;
+        break;
+    default:
+        LOG(ERROR, "Unknown vIOMMU type %d",
+            d_config->b_info.arch_arm.viommu_type);
+        return ERROR_FAIL;
+    }
+
     return 0;
 }
=20
diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_type=
s.idl
index d64a573ff3..c7ad0e77b2 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -561,6 +561,11 @@ libxl_arm_sci =3D Struct("arm_sci", [
     ("type", libxl_arm_sci_type),
     ])
=20
+libxl_viommu_type =3D Enumeration("viommu_type", [
+    (0, "none"),
+    (1, "smmuv3")
+    ], init_val =3D "LIBXL_VIOMMU_TYPE_NONE")
+
 libxl_rdm_reserve =3D Struct("rdm_reserve", [
     ("strategy",    libxl_rdm_reserve_strategy),
     ("policy",      libxl_rdm_reserve_policy),
@@ -736,6 +741,7 @@ libxl_domain_build_info =3D Struct("domain_build_info",=
[
                                ("sve_vl", libxl_sve_type),
                                ("nr_spis", uint32, {'init_val': 'LIBXL_NR_=
SPIS_DEFAULT'}),
                                ("arm_sci", libxl_arm_sci),
+                               ("viommu_type", libxl_viommu_type),
                               ])),
     ("arch_x86", Struct(None, [("msr_relaxed", libxl_defbool),
                               ])),
diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index 1a2ea8b5d5..dcae8314fe 100644
--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -3033,6 +3033,15 @@ skip_usbdev:
         }
     }
=20
+    if (!xlu_cfg_get_string (config, "viommu", &buf, 1)) {
+        e =3D libxl_viommu_type_from_string(buf, &b_info->arch_arm.viommu_=
type);
+        if (e) {
+            fprintf(stderr,
+                    "Unknown vIOMMU type \"%s\" specified\n", buf);
+            exit(-ERROR_FAIL);
+        }
+    }
+
     parse_vkb_list(config, d_config);
=20
     d_config->virtios =3D NULL;
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259644.1553036 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7M-0000Ux-81; Mon, 23 Mar 2026 22:51:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259644.1553036; Mon, 23 Mar 2026 22: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 1w4o7M-0000UD-0O; Mon, 23 Mar 2026 22:51:28 +0000
Received: by outflank-mailman (input) for mailman id 1259644;
 Mon, 23 Mar 2026 22:51:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w4o7K-0008Sp-Lb
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:51:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4o7K-004fuD-1g
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 23:51:26 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c3ee-bab6-0a2a0a5309dd-0a2a4502edf0-0
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:26 +0100
Received: from [52.101.65.126]
 (helo=DU2PR03CU002.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c3ed-63bb-0a2a45020019-3465417e0873-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:25 +0100
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB7653.eurprd03.prod.outlook.com (2603:10a6:20b:34b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:51:24 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22:51:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EV5jU6WPfhKfedu+pKtqoEO2cZ2z3nY3nEjSVP2Rto5tcnLY/DpxRaliCwiVUdaryY6nT9BWGufwczgDe9VVsvxuX9ns1PlmtL65pdSmB0y3/eXHHeZg4dS4zVPWt42fWS1iXqIIqKxyhnyJw+LHv5NvvfNDp14hmGViEdQaTJHPnqq2Cm2RYQrQWc0aT9MxCAiy2KMZxHwwS2i43kMYR56E3nNL89SRj+O0GuubPQbbMWGRIfa8gUyjC3mznF2UgAd+ErUGavmbIRZyfrT0iEy4njVs7AjlN/fvaOz/TdnC0JgCavR/n/aSUICyp9bHzbjrFjCI6InRsp0WAk+MDQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Nd5qnmJ7Wh0r99wMI0fZEOIGXmYSQVC8hc9mmzhO4to=;
 b=R9Oxdn6J1AksGJ3iEOItzNY0P1tJnU7bu7XCDUDl+JNWfnikOWazucDjR18OKyK5lsFKBf8Je58xeFvjxCIEjbDpaxWvU8GiUkgrjpaWYCztev1Pae/FhfwTzeX5TuWKdf2WlUDYNOvgrcc2u7Vz0nBH+Od+O3+N0+wQAAut30Dq7mDAWYu9xgmEzu3RJfd42luVGtb6Se34URckvtbUIwEmd9do/n2SeYMeo5BiRdOe870z227G7zkg8Nl5aOs1F46tmqCU9+UdzzwfRtul7XDkyHf8E0zEqyrza+lA4ATMsZj86rhcplRiZpg33bGPdgqlU2Oy9F/fHIIHCDVpvg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Nd5qnmJ7Wh0r99wMI0fZEOIGXmYSQVC8hc9mmzhO4to=;
 b=Gu9mnd/OGEcQ8Rp7k180FPKZaCEyWZDkrTY/QIrUYfznZi/Uaw6PSMpOsIrIdiYQJnsPxZLLjF/jRTR2r8W8oZnPd/qibl3voZHs06oENB09tZmCggichmN33rr2ILxQI4ix2XG00b9iXiw9H9wWna6+83la1opWKGovs4Wujqhmtvy19CXRVqKU+1t7poOBpT5h1Ta23IKkb6BGzxiLAy6XDZDJdydN4iw8+qZDqZ6JkjfUvD2Xr+fYGNTgONRZzeioF2yVY8lNLXb5bn6kgZhhx1Vuo2677xKAgKrLOSYzQN1he//tzwOQhQFUw6Znpo0qTmLV0EQsZ9iJQ/xqXg==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH v2 07/23] xen/arm: vIOMMU: Add cmdline boot option "viommu =
 <string>"
Thread-Topic: [PATCH v2 07/23] xen/arm: vIOMMU: Add cmdline boot option
 "viommu = <string>"
Thread-Index: AQHcuxeTokJK1XhSWEexAuBtof/9HQ==
Date: Mon, 23 Mar 2026 22:51:24 +0000
Message-ID:
 <6cd2601041902f380fba6ec8b87d7248f117b23f.1774305918.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB7653:EE_
x-ms-office365-filtering-correlation-id: bc55ac85-4fb5-4374-a97e-08de892eb5a7
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|7416014|1800799024|38070700021|22082099003|18002099003|56012099003;
x-microsoft-antispam-message-info:
 6rD2ELPer2y6djnZBAhpb83woUjoVeeKD4LuDNQ4vEiaO4YJyy5CL5Tll6c8Yls0J3sbrBAMF5GN12WfJ2WiaJazAxUHEmObowrNfcl+KAzfGPXdeTNwo29izBz7X0vH+3KEn1l2an1HRgD9pADuZZ/2bx/m4rTa7Gr2b00VrH/M+u+t6el6/rDJ/Hllrf+fVUeRx5S/MQXFI1SxBWPAId9RDqBwDUkHY1VEEAMO0QyaHIJLQ96OZmysXwV7DAboWlQ9Ne2j0EGE0g8wnKRkjYO+n8pfmjTFKq3mp7pKVRPUnjoWccpA8Cucg76pPk0wUMBeGivGdGlqQFT/xJipaZcjYwmHToc0BLgVk4HyIGydjFUv+LI/A8u8+Ac371oRaf6xFGeD6bpNNHSAas4BFRgySpaeugBtoj8EKNzdPNI4+Xon4Caf+qM6Bgw083H+XYIQocaB2NJTQnnVSm/3sk5Ro5lS86e3xxs+XKRqgG8XSwOKBkVR96W73WWy87i5NXrUioSQYCwZhsj2ToVSwut7kD9Gr3X6NjsIxSGT1GotDF7oTDhVJlDTdCyGJqNVPXufbR71rQEqYPGEXHisKq0KLPE2TiJ3wpCqhAU+z0ILcRSpbAANdcYObAQUEoJMk4pgnybBxuc1UsMXdUWf+K9x4l7q66q7IxDV7xR0m6mqDHBYFt0H6Lo+Y+6PjVWP9qQqo6uMuauX3GNJBzBMhEpF6OfMs0ybxPHXUjv5dxZGLjg2sMP/tO84rl5dGOw7Kz/YiFkO16Kw6vxsHhof3t80dq3MzmcZYtTuQFdpoH8=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(38070700021)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?nD6OXIdUIsyyCz8/JST1bfeJskFNV2RjG+1Jg6XPsEqCY+UYn47RHTAC+z?=
 =?iso-8859-1?Q?Dw/O8QVXEE3JQdqqNP+YyPCJbZtXbGaCpakVupOzTQjDfrhGy5pC4x33V+?=
 =?iso-8859-1?Q?x0he3DwZaocVQbVbsZASpzPDEHnZjKgpg0jkKSu6BUgl/i6OOg9JsLxG3C?=
 =?iso-8859-1?Q?ITAOtrs31uqVW0lQWiDT+PwKJajFUzyNMgmy9bKn56KCmz7aVyZ3f9BVRS?=
 =?iso-8859-1?Q?C7w7pOyd4RR6O4kPZCEtZsJP6UU9kyh5LtBr2BsKMmrbbk4/rrzWuhHLC2?=
 =?iso-8859-1?Q?fi4lIOCRga3zPaecjwbpaod9kLpQHk3jbDhhfOB1tih5I3FpeTUsbN5nQ3?=
 =?iso-8859-1?Q?Ut/LqWRkrQBXtK8urQ4CP9QqdXpPhGiRgxICbvrz1sZnk8vqCjBinL+phS?=
 =?iso-8859-1?Q?uBCWxP2x0L8Kq1IA5HzsSx0x1ckd0oZ0v7ntjVLDenkPBGXCh2MDxiXH/Y?=
 =?iso-8859-1?Q?PZEyXiUzQvQRPz4ANtds4U/j2K/+FRTdnpBTHuixq+c3vfcQWctw/K+UbF?=
 =?iso-8859-1?Q?K6dbgYhqxtsHRNgJ44odA5TOuFbZ+LUFs0rgDsN8zCr/t/bFjzFz0WU/xq?=
 =?iso-8859-1?Q?+vAPf4VT8S0mE1nJDP/HJ76ynl4pw1ZUvK8D6O9q+tSO7MXFZtxl08BLVQ?=
 =?iso-8859-1?Q?2cJHMKeZiMCNFIqNckUp7PygCnABevPg0vPvMtLMSn2cyML46tp2y7XHoK?=
 =?iso-8859-1?Q?1Hn23e8S33A37PLXKVF6HuN0Mh/GyDFKg3ESm7BAykoACUv3xkuS7pqXPK?=
 =?iso-8859-1?Q?9/BoHkUpTVHzN/b6kOAym4Dn6YFOym35kTsbaRYH4PliP876S6flTv9czm?=
 =?iso-8859-1?Q?lCwrcHaLyWbuAj6KFyO06Wto+NhZ+UrftFbV6gUUS0jt8cRBMKPdateYBb?=
 =?iso-8859-1?Q?NOOqXd0H8yGBK+lfgWaDNzC1ZD06IagVstNS7STLTHAmMuorv2No6TzslO?=
 =?iso-8859-1?Q?BxMJNQYnXJEnRyCRd3E86UoHqomRrDUgZcewULBadvQw/fOCFZzdjQqUR6?=
 =?iso-8859-1?Q?HvmQM6PxJBtxy/V48+Ndn71FxC6mQR4nBU6mGx2LrBDlBo7KWitDIIXJ+3?=
 =?iso-8859-1?Q?8N/xcRMZRTMVaJN0QIcZyCjPWLDG68s82OY45u89aPrGazOTY6lXFrn/p7?=
 =?iso-8859-1?Q?Kf0iAnX7esXieZsN8GtvXJ4+K12DDzRBxaS1nV6vWJYygBZe86hQne/Qec?=
 =?iso-8859-1?Q?xxBUeIXce8vKiT5Xk5xFmxBvxX636xyU10ylFV6jDDoHXVEMiE9V1k4vv7?=
 =?iso-8859-1?Q?aq73tRHqrxwW8P+jKiLSd1dgJ3FFqXM58MLcq1jKkvFRqq/l0X75d29T3m?=
 =?iso-8859-1?Q?mNoo5DmJq+X+f5pUsbX9ve3Q7VqpAaGFtNMtlBwcz93rQ/DJeABNlSoSEV?=
 =?iso-8859-1?Q?ere9LrTw6RKVaVy5DGKMG36M3TMQSiYKtPK2A38ETz5nnsTcCiR79QxsQo?=
 =?iso-8859-1?Q?x9nC11cZAigQaKvcv3+m6b/UxAT+JjTv7f6qAcheZNj3jNXmJvPsHon5wr?=
 =?iso-8859-1?Q?yEncva2Kf6OOQ3guH9PraAfjZWKTLTTR96irej6ZDER9EylhqvqRTYv1qZ?=
 =?iso-8859-1?Q?OAFxEwesFJCTIhT4ttVA18boT1Cet3J6pI9BGsdEAhJsgBnrSIviwoxX3+?=
 =?iso-8859-1?Q?T8MUuVdPtSXgtmuQubtYLGdFu5Um+OjjA51Gtt1Ump5/tX2iyK+i8Qvx27?=
 =?iso-8859-1?Q?xI9hJBlzQ5pyGsYKrwF+uwPxzInWIYCdNtmACUpIAuIkTicxr3PajS45wT?=
 =?iso-8859-1?Q?X3W8DBPQAlttQNZlaxtf0Zvys6vLq2yg7AYfipmMwieNVEdkuLx/sf2/bE?=
 =?iso-8859-1?Q?joQ1XSZdh6yKHkYwn2e+MwWUoKoTCyM=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bc55ac85-4fb5-4374-a97e-08de892eb5a7
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:51:24.1734
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: nDjQ9IOu5Ym6Lg+RpTqHroqYfMTUuIfWWmX/nMhzsWPKl3Suvh+VXK7wgSdTWLOB0ADHWxEAj31i8p6kfmo8XQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7653
X-purgate-ID: tlsNG-720697/1774306286-BD69EDB8-47756CCB/0/0
X-purgate-type: clean
X-purgate-size: 3980

From: Rahul Singh <rahul.singh@arm.com>

Add cmdline boot option "viommu =3D <string>" to enable or disable the
virtual iommu support for guests on ARM (only viommu=3D"smmuv3" supported
for now).

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 docs/misc/xen-command-line.pandoc      |  9 +++++++++
 xen/arch/arm/include/asm/viommu.h      | 12 ++++++++++++
 xen/drivers/passthrough/arm/viommu.c   | 11 +++++++++++
 xen/drivers/passthrough/arm/vsmmu-v3.c |  3 +++
 4 files changed, 35 insertions(+)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line=
.pandoc
index ebdca007d2..3a1cc562c4 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2855,6 +2855,15 @@ The optional `keep` parameter causes Xen to continue=
 using the vga
 console even after dom0 has been started.  The default behaviour is to
 relinquish control to dom0.
=20
+### viommu (arm)
+> `=3D <string>`
+
+> Default: ``
+
+Flag to enable or disable support for the virtual IOMMU for guests. Disabl=
ed by
+default. Enable by specifying target IOMMU type (if supported). Only "smmu=
v3"
+IOMMU emulation supported at this point.
+
 ### viridian-spinlock-retry-count (x86)
 > `=3D <integer>`
=20
diff --git a/xen/arch/arm/include/asm/viommu.h b/xen/arch/arm/include/asm/v=
iommu.h
index 4785877e2a..811e9312d5 100644
--- a/xen/arch/arm/include/asm/viommu.h
+++ b/xen/arch/arm/include/asm/viommu.h
@@ -10,6 +10,7 @@
 #include <public/xen.h>
=20
 extern struct list_head host_iommu_list;
+extern char viommu[];
=20
 /* data structure for each hardware IOMMU */
 struct host_iommu {
@@ -50,6 +51,12 @@ uint16_t viommu_get_type(void);
 void add_to_host_iommu_list(paddr_t addr, paddr_t size,
                             const struct dt_device_node *node);
=20
+static always_inline bool is_viommu_enabled(void)
+{
+    /* only smmuv3 emulation supported */
+    return !strcmp(viommu, "smmuv3");
+}
+
 #else
=20
 static inline uint8_t viommu_get_type(void)
@@ -76,6 +83,11 @@ static inline void add_to_host_iommu_list(paddr_t addr, =
paddr_t size,
     return;
 }
=20
+static always_inline bool is_viommu_enabled(void)
+{
+    return false;
+}
+
 #endif /* CONFIG_VIRTUAL_IOMMU */
=20
 #endif /* __ARCH_ARM_VIOMMU_H__ */
diff --git a/xen/drivers/passthrough/arm/viommu.c b/xen/drivers/passthrough=
/arm/viommu.c
index 53ae46349a..5f5892fbb2 100644
--- a/xen/drivers/passthrough/arm/viommu.c
+++ b/xen/drivers/passthrough/arm/viommu.c
@@ -3,6 +3,7 @@
 #include <xen/errno.h>
 #include <xen/init.h>
 #include <xen/irq.h>
+#include <xen/param.h>
 #include <xen/types.h>
=20
 #include <asm/viommu.h>
@@ -38,8 +39,18 @@ void add_to_host_iommu_list(paddr_t addr, paddr_t size,
     list_add_tail(&iommu_data->entry, &host_iommu_list);
 }
=20
+/* By default viommu is disabled.
+ * If enabled, 'viommu' param indicates type (smmuv3 is only supported typ=
e atm)
+ */
+char __read_mostly viommu[10] =3D "";
+string_param("viommu", viommu);
+
 int domain_viommu_init(struct domain *d, uint16_t viommu_type)
 {
+    /* Enable viommu when it has been enabled explicitly (viommu=3D"smmuv3=
"). */
+    if ( !is_viommu_enabled() )
+        return 0;
+
     if ( viommu_type =3D=3D XEN_DOMCTL_CONFIG_VIOMMU_NONE )
         return 0;
=20
diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index 6b4009e5ef..e36f200ba5 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -105,6 +105,9 @@ void __init vsmmuv3_set_type(void)
 {
     const struct viommu_desc *desc =3D &vsmmuv3_desc;
=20
+    if ( !is_viommu_enabled() )
+        return;
+
     if ( cur_viommu && (cur_viommu !=3D desc) )
     {
         printk("WARNING: Cannot set vIOMMU, already set to a different val=
ue\n");
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259646.1553047 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7N-0000pr-JK; Mon, 23 Mar 2026 22:51:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259646.1553047; Mon, 23 Mar 2026 22: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 1w4o7N-0000nr-DO; Mon, 23 Mar 2026 22:51:29 +0000
Received: by outflank-mailman (input) for mailman id 1259646;
 Mon, 23 Mar 2026 22:51:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w4o7L-0000ML-Mw
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:51:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4o7L-004fuD-2c
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 23:51:27 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c3ee-bab6-0a2a0a5309dd-0a2a4502edf0-2
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:27 +0100
Received: from [52.101.65.89]
 (helo=DU2PR03CU002.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c3ee-63bb-0a2a45020019-346541596237-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:26 +0100
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB7653.eurprd03.prod.outlook.com (2603:10a6:20b:34b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:51:25 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22:51:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OVbCtXF35eRRjN7FJ22OzfMI6LocvVzdhWGT8ebYtbLrjBPtxoRfMSWtPBkrWOlDfmZySiT3tCUZ8wtToeKkFEG8W1Eb+r2jP8hbx8ILRW2hGFqNjJUOVNmQXJbGYUMevH0HDP93H1GDLc4z1kr0bMgSYTt9ZWaQjcjWJHPhm1zCxCambu77XFbNoLngzJrUegnTrljuKUxv/2P3RpNJ/edy/IeL8sbT896gzOOuFCavJgpIMf3JucitsG3NIA4b9FOVa8ga2Kihd9eRE05TcE6VXF6FUKyuxee/4CF9KcslO8b9L15DerIX6jHNM8g94qNnYJ+CV67fuRMtjX0FnA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=a0wTnJYqnknl+EFQ6EApvgx2yijg5oFENe59EsVpe3Q=;
 b=bxs7/Xh1iKJ4l3exNFVkst11wqdTrL/UnkVlielY3V+CL0oWWXXGIcRTBPqqQwlAZz6sXe6HyDcbJbYuXAZ8lduRR+ln9fw7LOI2InS/gwcUZrxAlF1kYlbeRmaRbTlvk3zb+gQ0aqOzWz8LQtdGrXu4ca03nByj//PUYWtcr56Gro3uwNQzPHZf1/E93ltqATRTaMtXJf8zguTRz9la6PLbc4+WIShCHFsYJs/K+iWVwgfB5WX18iLPec1tl4HhCMujrnhgIOV62j7DC1SP4//Sb48Rourm0FlbZaH0TCFWiTrYd4j8iKyZmh7Cw6LBuHGR7OIlArMEiljdmDYRCg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=a0wTnJYqnknl+EFQ6EApvgx2yijg5oFENe59EsVpe3Q=;
 b=kwJiu00eYORjyXWmD8TFqSfvj6gnovLtO07GcxelMhps4HCASdSrCjkUyEoxP9kBs1miufJQ3vOBiOwRFT1opcTDaitSuMGVrTUFEMD3dnf7EWm8GqiUtQBO4A1KG63lzFlieMcZZEWWUk5b+eyYNdE4ErHNVFoP1V4qXhdor+auXz8AW4Bqcpx7fnmI4/u0BOHByC2hdwFUE9usPtVtxduuT/STRe61DweABOTfmLwDNkh6MSEVmQH0bCCx616gRWtUthowWu3tgDd7xw4wdu3RASyRZ1lWnzr7Ixpx60Pc595hXyKoWk8xuq7YQnXBbnGJtN9/VD4M4sjximB5WA==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH v2 08/23] xen/arm: vsmmuv3: Add support for registers
 emulation
Thread-Topic: [PATCH v2 08/23] xen/arm: vsmmuv3: Add support for registers
 emulation
Thread-Index: AQHcuxeTe46TvARpy0KQtl5Gqzj+Bw==
Date: Mon, 23 Mar 2026 22:51:25 +0000
Message-ID:
 <8e451d3d507625bd8d6fadaef68aa40a1cd05e8b.1774305918.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB7653:EE_
x-ms-office365-filtering-correlation-id: a129a0b4-799c-4a11-bfae-08de892eb64a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021|22082099003|18002099003|56012099003;
x-microsoft-antispam-message-info:
 +20zHQqdX6rubHthxRlh26lVEa5jls1Vl386g8CnytxGnWBf/0GfLa31W37ckIxissvY6WaB3W8eI2y8NwRNwjN1QWsdp6Wm6tFQXkrQN6VC7PYRAxwR+RpiSp1KbG/n17f+aS3U45nZQbO27l0RYZChgiHeNZOnYri+WWBLG4K1VFPxO4rykY/Vew6rF/ljNBoFQuJuiQeuHfz/UT8ODic7LUsq70A18W/Y3qDLZasl060cjj6wPiMSfQiBw0pTjtX8akcil9+1+ig+lLPHH2fvldcukY8GX1adetilZO09jaQ8vMB6Vy9RnsIEOo63m9V8Rv6B5fwbZdnp0o+orkTR5d6Fv+m3YLKyVTgtsToB/TZTp5Kd/L/gl3P9ZAYpEcCrrXBZpcdSk0yh/mDWjqCQ+iQ7ifQ75cw5J5rdWovVFKjGmkSen+Q0jtpwFvPBU10cTESkM6Xj4HFqrxoe+5epNQ/E650bQ6/Rp+blcsqW0Od6Iej61+59strd120VBt5shwBk1E6TZAMBSHzUkKvhaczoyPZJvdKpH0bT3SW2FHIMzHJYeLgThqVgTBGOMKl8qTrFsErEj1D6E8piIS2lkwAazgj44mZRQXOl4Oh127ucfUbrFChPbZHhGsjnU8LQz8XhqmcQ0H5G2NkYS7r4J+wo7vWWaWADXDKGjmrtpw9RNkewpo/nuWKimEnlWndy81G69uYv0roD02OZn+lautvZTyNVShzUD7DiOo4vhvCU3eJkwHk5/75Vo8V1sGbqQOLPBChYbuMGQtzvRIpOgCC4VGaJQDwj83C4dz0=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?OR+oy1cKmzFTDdoql0xF9wsZUBWboNt+YMhqqI1ubo72ndS1ob3fIchrbX?=
 =?iso-8859-1?Q?FK5xgG4DkV2sgQP7VlDz51J6cie12B66nLzm1E3h5XzHmYZgbhwv2AXSO8?=
 =?iso-8859-1?Q?84jNNtaW4YGZTUL8v40I7fS6i4azo5Eia3sX0jdFD/C1c5RskUeReCG4ej?=
 =?iso-8859-1?Q?MK4jgCRrgVoiOplMKufN6z+ZSfyGJoE4RTZJ9XpK1lhn15K9YhZ4FAvY67?=
 =?iso-8859-1?Q?0jFhh6+rWdx0sDkydVrBPbobass8OBR9sViPm+X9XS7jbPkL6mFpfHbMUB?=
 =?iso-8859-1?Q?uT5wZC3mx2xM+zx4D4LoQOOfCha6OaqnUQem0DcPAKdogdV7mAHTKeWxOj?=
 =?iso-8859-1?Q?FrZvthPG7vEQMF5EhpmQIz+9eloRA1PS3pcXt9Hs74rgsc/vdw+OgmXiAT?=
 =?iso-8859-1?Q?o4c1+cNoxplWl0NIp5iX+vKw2KtuncE14c4HDxZtWeNPVE4+oYDskhb6/H?=
 =?iso-8859-1?Q?gQjJJkonrASUmvKzS11x1MYLubYhm8BBzYbWR4O1nHqiF1WBgjLrNCSJOE?=
 =?iso-8859-1?Q?phnBjomS4o/NNJ78ghDp1j+ff3ffxlt4vMZw2gp6nIewPUAu07Bblqq7uG?=
 =?iso-8859-1?Q?+ZkoveJdTZhRV316lV12f0rtKjjLqwCoQdLE0FP/Km1eCr6rckrF8Ov8kG?=
 =?iso-8859-1?Q?NUJFVei4+xtpbuzMnO2Wx3Nm7bU683QUUTZbCx9B8ORnJFMpkMRvDhi2cV?=
 =?iso-8859-1?Q?ePZqe9LpAGgrQjZ55Mha7zfPQPAVRkrFUJ6NwAJXF8bGJhxpERYVWLLpgF?=
 =?iso-8859-1?Q?eHDU9MEZt4SYPUfqgB26e3KioqSUoax7iJLIof6xysmDJObUkR6Su9o5I5?=
 =?iso-8859-1?Q?GBR7Z4dfJ/rd2GvNcn1o4qkNjF9iOjztwNcVMOpCZov2QKyzPQvSIINhhc?=
 =?iso-8859-1?Q?DDjgLY3eFnE3P3xJklIAm/nQKC/ioLKrKvR0Jct4AtCxClL8vAz++nrbja?=
 =?iso-8859-1?Q?b5dSmoqhVi7uiyiht5bN9cRYuXISgO/pl9bEK1RhSVq63dGbjSnq2+GHKk?=
 =?iso-8859-1?Q?EJPPYSDzq/mrwPfMnlXVDJq/IwzjcbJIuS7cCHtgx8W3e8sBjIeNIn0wOV?=
 =?iso-8859-1?Q?ypP4OtCIJDVD1VJg475jyftmfuljAl0AeoWwjRtJqt31n9O1RuxLtEz9ox?=
 =?iso-8859-1?Q?xWNxqwpnOMcRLU0sWGB/aZkXxmHAlNezxtCFRUzpLmjOwzwX6tJ+FLzj34?=
 =?iso-8859-1?Q?p2je/jjN/Xq3IVrAxtLrS2n4v2dLtnaADtpAuXrSrdggaBEfQvOZG2GNO1?=
 =?iso-8859-1?Q?VEqw/uOnN2Qi75uPaa7uaHYjq+NByHUOTI4LWeFrtp46IlN6H7wHCwzufn?=
 =?iso-8859-1?Q?IlsQ7nxXKAoGqilZLljbfo3B56whfm41V2xFBmoGx6jW4KHG/ut871Vw7F?=
 =?iso-8859-1?Q?Cs4/S/VTKIwAIy3ckPzx9UKeBEQIZHPbVx/RBV06lC6Ld1nzfd+M7aqW2D?=
 =?iso-8859-1?Q?jAQRZQflYfwbAshwLWWdTe9GIl1f+q/z42iD5LLej8J5Uin9TckP/D4Cfb?=
 =?iso-8859-1?Q?877p2LSQ7MS0bP5mR41RvtQ3+lsaXQXgH1w5OAUa1nS10gCjmnNkY5WHDe?=
 =?iso-8859-1?Q?qw9NyAtpBelLxZfNpd6Z9TykLydonIQM2Gn1tUj782KtcXHx9oPFTf5fKk?=
 =?iso-8859-1?Q?5qt5ushHipKEN7CzXqICsd9R71C0AnXnRW/yAe6Tx7DB4lcvqQLleNwN6c?=
 =?iso-8859-1?Q?dpXc0bg72nGCLhroEiqHdVTcP8afdB8WpXMSurtZjiab98CITFFdg6nAik?=
 =?iso-8859-1?Q?gSMO1DMGJUvMevmlpRySRo521vBlZExTTafHjbaQJMDRYQFF7HU7ryNWhx?=
 =?iso-8859-1?Q?7lXnkyZ99V2fqiOyrx9nIDfuOZ0UTvE=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a129a0b4-799c-4a11-bfae-08de892eb64a
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:51:25.2756
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: v5yxok8ltPleLwDcWwrWRp0hyc8fRJ6MJraNhn5o86PvcJpLrobfmJB1IDQ5Q2jjCxlfKYboKhNrhlCXfeUpeg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7653
X-purgate-ID: tlsNG-720697/1774306287-68176DB8-E2804FDC/0/0
X-purgate-type: clean
X-purgate-size: 11293

From: Rahul Singh <rahul.singh@arm.com>

Add initial support for various emulated registers for virtual SMMUv3
for guests and also add support for virtual cmdq and eventq.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/drivers/passthrough/arm/smmu-v3.h  |   6 +
 xen/drivers/passthrough/arm/vsmmu-v3.c | 286 +++++++++++++++++++++++++
 2 files changed, 292 insertions(+)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.h b/xen/drivers/passthroug=
h/arm/smmu-v3.h
index 3fb13b7e21..fab4fd5a26 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.h
+++ b/xen/drivers/passthrough/arm/smmu-v3.h
@@ -60,6 +60,12 @@
 #define IDR5_VAX			GENMASK(11, 10)
 #define IDR5_VAX_52_BIT			1
=20
+#define ARM_SMMU_IIDR			0x18
+#define IIDR_PRODUCTID			GENMASK(31, 20)
+#define IIDR_VARIANT			GENMASK(19, 16)
+#define IIDR_REVISION			GENMASK(15, 12)
+#define IIDR_IMPLEMENTER		GENMASK(11, 0)
+
 #define ARM_SMMU_CR0			0x20
 #define CR0_ATSCHK			(1 << 4)
 #define CR0_CMDQEN			(1 << 3)
diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index e36f200ba5..3ae1e62a50 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -3,25 +3,307 @@
 #include <xen/param.h>
 #include <xen/sched.h>
 #include <asm/mmio.h>
+#include <asm/vgic-emul.h>
 #include <asm/viommu.h>
+#include <asm/vreg.h>
+
+#include "smmu-v3.h"
+
+/* Register Definition */
+#define ARM_SMMU_IDR2       0x8
+#define ARM_SMMU_IDR3       0xc
+#define ARM_SMMU_IDR4       0x10
+#define IDR0_TERM_MODEL     (1 << 26)
+#define IDR3_RIL            (1 << 10)
+#define CR0_RESERVED        0xFFFFFC20
+#define SMMU_IDR1_SIDSIZE   16
+#define SMMU_CMDQS          19
+#define SMMU_EVTQS          19
+#define DWORDS_BYTES        8
+#define ARM_SMMU_IIDR_VAL   0x12
=20
 /* Struct to hold the vIOMMU ops and vIOMMU type */
 extern const struct viommu_desc __read_mostly *cur_viommu;
=20
+/* virtual smmu queue */
+struct arm_vsmmu_queue {
+    uint64_t    q_base; /* base register */
+    uint32_t    prod;
+    uint32_t    cons;
+    uint8_t     ent_size;
+    uint8_t     max_n_shift;
+};
+
 struct virt_smmu {
     struct      domain *d;
     struct      list_head viommu_list;
+    uint8_t     sid_split;
+    uint32_t    features;
+    uint32_t    cr[3];
+    uint32_t    cr0ack;
+    uint32_t    gerror;
+    uint32_t    gerrorn;
+    uint32_t    strtab_base_cfg;
+    uint64_t    strtab_base;
+    uint32_t    irq_ctrl;
+    uint64_t    gerror_irq_cfg0;
+    uint64_t    evtq_irq_cfg0;
+    struct      arm_vsmmu_queue evtq, cmdq;
 };
=20
 static int vsmmuv3_mmio_write(struct vcpu *v, mmio_info_t *info,
                               register_t r, void *priv)
 {
+    struct virt_smmu *smmu =3D priv;
+    uint64_t reg;
+    uint32_t reg32;
+
+    switch ( info->gpa & 0xffff )
+    {
+    case VREG32(ARM_SMMU_CR0):
+        reg32 =3D smmu->cr[0];
+        vreg_reg32_update(&reg32, r, info);
+        smmu->cr[0] =3D reg32;
+        smmu->cr0ack =3D reg32 & ~CR0_RESERVED;
+        break;
+
+    case VREG32(ARM_SMMU_CR1):
+        reg32 =3D smmu->cr[1];
+        vreg_reg32_update(&reg32, r, info);
+        smmu->cr[1] =3D reg32;
+        break;
+
+    case VREG32(ARM_SMMU_CR2):
+        reg32 =3D smmu->cr[2];
+        vreg_reg32_update(&reg32, r, info);
+        smmu->cr[2] =3D reg32;
+        break;
+
+    case VREG64(ARM_SMMU_STRTAB_BASE):
+        reg =3D smmu->strtab_base;
+        vreg_reg64_update(&reg, r, info);
+        smmu->strtab_base =3D reg;
+        break;
+
+    case VREG32(ARM_SMMU_STRTAB_BASE_CFG):
+        reg32 =3D smmu->strtab_base_cfg;
+        vreg_reg32_update(&reg32, r, info);
+        smmu->strtab_base_cfg =3D reg32;
+
+        smmu->sid_split =3D FIELD_GET(STRTAB_BASE_CFG_SPLIT, reg32);
+        smmu->features |=3D STRTAB_BASE_CFG_FMT_2LVL;
+        break;
+
+    case VREG32(ARM_SMMU_CMDQ_BASE):
+        reg =3D smmu->cmdq.q_base;
+        vreg_reg64_update(&reg, r, info);
+        smmu->cmdq.q_base =3D reg;
+        smmu->cmdq.max_n_shift =3D FIELD_GET(Q_BASE_LOG2SIZE, smmu->cmdq.q=
_base);
+        if ( smmu->cmdq.max_n_shift > SMMU_CMDQS )
+            smmu->cmdq.max_n_shift =3D SMMU_CMDQS;
+        break;
+
+    case VREG32(ARM_SMMU_CMDQ_PROD):
+        reg32 =3D smmu->cmdq.prod;
+        vreg_reg32_update(&reg32, r, info);
+        smmu->cmdq.prod =3D reg32;
+        break;
+
+    case VREG32(ARM_SMMU_CMDQ_CONS):
+        reg32 =3D smmu->cmdq.cons;
+        vreg_reg32_update(&reg32, r, info);
+        smmu->cmdq.cons =3D reg32;
+        break;
+
+    case VREG32(ARM_SMMU_EVTQ_BASE):
+        reg =3D smmu->evtq.q_base;
+        vreg_reg64_update(&reg, r, info);
+        smmu->evtq.q_base =3D reg;
+        smmu->evtq.max_n_shift =3D FIELD_GET(Q_BASE_LOG2SIZE, smmu->evtq.q=
_base);
+        if ( smmu->cmdq.max_n_shift > SMMU_EVTQS )
+            smmu->cmdq.max_n_shift =3D SMMU_EVTQS;
+        break;
+
+    case VREG32(ARM_SMMU_EVTQ_PROD):
+        reg32 =3D smmu->evtq.prod;
+        vreg_reg32_update(&reg32, r, info);
+        smmu->evtq.prod =3D reg32;
+        break;
+
+    case VREG32(ARM_SMMU_EVTQ_CONS):
+        reg32 =3D smmu->evtq.cons;
+        vreg_reg32_update(&reg32, r, info);
+        smmu->evtq.cons =3D reg32;
+        break;
+
+    case VREG32(ARM_SMMU_IRQ_CTRL):
+        reg32 =3D smmu->irq_ctrl;
+        vreg_reg32_update(&reg32, r, info);
+        smmu->irq_ctrl =3D reg32;
+        break;
+
+    case VREG64(ARM_SMMU_GERROR_IRQ_CFG0):
+        reg =3D smmu->gerror_irq_cfg0;
+        vreg_reg64_update(&reg, r, info);
+        smmu->gerror_irq_cfg0 =3D reg;
+        break;
+
+    case VREG64(ARM_SMMU_EVTQ_IRQ_CFG0):
+        reg =3D smmu->evtq_irq_cfg0;
+        vreg_reg64_update(&reg, r, info);
+        smmu->evtq_irq_cfg0 =3D reg;
+        break;
+
+    case VREG32(ARM_SMMU_GERRORN):
+        reg =3D smmu->gerrorn;
+        vreg_reg64_update(&reg, r, info);
+        smmu->gerrorn =3D reg;
+        break;
+
+    default:
+        printk(XENLOG_G_ERR
+               "%pv: vSMMUv3: unhandled write r%d offset %"PRIpaddr"\n",
+               v, info->dabt.reg, (unsigned long)info->gpa & 0xffff);
+        return IO_ABORT;
+    }
+
     return IO_HANDLED;
 }
=20
 static int vsmmuv3_mmio_read(struct vcpu *v, mmio_info_t *info,
                              register_t *r, void *priv)
 {
+    struct virt_smmu *smmu =3D priv;
+    uint64_t reg;
+
+    switch ( info->gpa & 0xffff )
+    {
+    case VREG32(ARM_SMMU_IDR0):
+        reg  =3D FIELD_PREP(IDR0_S1P, 1) | FIELD_PREP(IDR0_TTF, 2) |
+            FIELD_PREP(IDR0_COHACC, 0) | FIELD_PREP(IDR0_ASID16, 1) |
+            FIELD_PREP(IDR0_TTENDIAN, 0) | FIELD_PREP(IDR0_STALL_MODEL, 1)=
 |
+            FIELD_PREP(IDR0_ST_LVL, 1) | FIELD_PREP(IDR0_TERM_MODEL, 1);
+        *r =3D vreg_reg32_extract(reg, info);
+        break;
+
+    case VREG32(ARM_SMMU_IDR1):
+        reg  =3D FIELD_PREP(IDR1_SIDSIZE, SMMU_IDR1_SIDSIZE) |
+            FIELD_PREP(IDR1_CMDQS, SMMU_CMDQS) |
+            FIELD_PREP(IDR1_EVTQS, SMMU_EVTQS);
+        *r =3D vreg_reg32_extract(reg, info);
+        break;
+
+    case VREG32(ARM_SMMU_IDR2):
+        goto read_reserved;
+
+    case VREG32(ARM_SMMU_IDR3):
+        reg  =3D FIELD_PREP(IDR3_RIL, 0);
+        *r =3D vreg_reg32_extract(reg, info);
+        break;
+
+    case VREG32(ARM_SMMU_IDR4):
+        goto read_impl_defined;
+
+    case VREG32(ARM_SMMU_IDR5):
+        reg  =3D FIELD_PREP(IDR5_GRAN4K, 1) | FIELD_PREP(IDR5_GRAN16K, 1) =
|
+            FIELD_PREP(IDR5_GRAN64K, 1) | FIELD_PREP(IDR5_OAS, IDR5_OAS_48=
_BIT);
+        *r =3D vreg_reg32_extract(reg, info);
+        break;
+
+    case VREG32(ARM_SMMU_IIDR):
+        *r =3D vreg_reg32_extract(ARM_SMMU_IIDR_VAL, info);
+        break;
+
+    case VREG32(ARM_SMMU_CR0):
+        *r =3D vreg_reg32_extract(smmu->cr[0], info);
+        break;
+
+    case VREG32(ARM_SMMU_CR0ACK):
+        *r =3D vreg_reg32_extract(smmu->cr0ack, info);
+        break;
+
+    case VREG32(ARM_SMMU_CR1):
+        *r =3D vreg_reg32_extract(smmu->cr[1], info);
+        break;
+
+    case VREG32(ARM_SMMU_CR2):
+        *r =3D vreg_reg32_extract(smmu->cr[2], info);
+        break;
+
+    case VREG32(ARM_SMMU_STRTAB_BASE):
+        *r =3D vreg_reg64_extract(smmu->strtab_base, info);
+        break;
+
+    case VREG32(ARM_SMMU_STRTAB_BASE_CFG):
+        *r =3D vreg_reg32_extract(smmu->strtab_base_cfg, info);
+        break;
+
+    case VREG32(ARM_SMMU_CMDQ_BASE):
+        *r =3D vreg_reg64_extract(smmu->cmdq.q_base, info);
+        break;
+
+    case VREG32(ARM_SMMU_CMDQ_PROD):
+        *r =3D vreg_reg32_extract(smmu->cmdq.prod, info);
+        break;
+
+    case VREG32(ARM_SMMU_CMDQ_CONS):
+        *r =3D vreg_reg32_extract(smmu->cmdq.cons, info);
+        break;
+
+    case VREG32(ARM_SMMU_EVTQ_BASE):
+        *r =3D vreg_reg64_extract(smmu->evtq.q_base, info);
+        break;
+
+    case VREG32(ARM_SMMU_EVTQ_PROD):
+        *r =3D vreg_reg32_extract(smmu->evtq.prod, info);
+        break;
+
+    case VREG32(ARM_SMMU_EVTQ_CONS):
+        *r =3D vreg_reg32_extract(smmu->evtq.cons, info);
+        break;
+
+    case VREG32(ARM_SMMU_IRQ_CTRL):
+    case VREG32(ARM_SMMU_IRQ_CTRLACK):
+        *r =3D vreg_reg32_extract(smmu->irq_ctrl, info);
+        break;
+
+    case VREG64(ARM_SMMU_GERROR_IRQ_CFG0):
+        *r =3D vreg_reg64_extract(smmu->gerror_irq_cfg0, info);
+        break;
+
+    case VREG64(ARM_SMMU_EVTQ_IRQ_CFG0):
+        *r =3D vreg_reg64_extract(smmu->evtq_irq_cfg0, info);
+        break;
+
+    case VREG32(ARM_SMMU_GERROR):
+        *r =3D vreg_reg64_extract(smmu->gerror, info);
+        break;
+
+    case VREG32(ARM_SMMU_GERRORN):
+        *r =3D vreg_reg64_extract(smmu->gerrorn, info);
+        break;
+
+    default:
+        printk(XENLOG_G_ERR
+               "%pv: vSMMUv3: unhandled read r%d offset %"PRIpaddr"\n",
+               v, info->dabt.reg, (unsigned long)info->gpa & 0xffff);
+        return IO_ABORT;
+    }
+
+    return IO_HANDLED;
+
+ read_impl_defined:
+    printk(XENLOG_G_DEBUG
+           "%pv: vSMMUv3: RAZ on implementation defined register offset %"=
PRIpaddr"\n",
+           v, info->gpa & 0xffff);
+    *r =3D 0;
+    return IO_HANDLED;
+
+ read_reserved:
+    printk(XENLOG_G_DEBUG
+           "%pv: vSMMUv3: RAZ on reserved register offset %"PRIpaddr"\n",
+           v, info->gpa & 0xffff);
+    *r =3D 0;
     return IO_HANDLED;
 }
=20
@@ -39,6 +321,10 @@ static int vsmmuv3_init_single(struct domain *d, paddr_=
t addr, paddr_t size)
         return -ENOMEM;
=20
     smmu->d =3D d;
+    smmu->cmdq.q_base =3D FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_CMDQS);
+    smmu->cmdq.ent_size =3D CMDQ_ENT_DWORDS * DWORDS_BYTES;
+    smmu->evtq.q_base =3D FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_EVTQS);
+    smmu->evtq.ent_size =3D EVTQ_ENT_DWORDS * DWORDS_BYTES;
=20
     register_mmio_handler(d, &vsmmuv3_mmio_handler, addr, size, smmu);
=20
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259647.1553053 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7O-000112-9H; Mon, 23 Mar 2026 22:51:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259647.1553053; Mon, 23 Mar 2026 22:51:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7O-0000zU-3i; Mon, 23 Mar 2026 22:51:30 +0000
Received: by outflank-mailman (input) for mailman id 1259647;
 Mon, 23 Mar 2026 22:51:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w4o7M-0000YY-Ia
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:51:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4o7L-004fuD-Uz
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 23:51:27 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c36c-bab6-0a2a0a5309dd-0a2a450cb8d6-42
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:27 +0100
Received: from [52.101.65.107]
 (helo=DU2PR03CU002.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c3ef-f93d-0a2a450c0019-3465416b464b-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:27 +0100
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB7653.eurprd03.prod.outlook.com (2603:10a6:20b:34b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:51:26 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22:51:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PneSxAPmX9AC0TJOdHpLsxyACMSyqwaKRLxNiEKK6RLAm3x+82Q0kjor2yY87bhNdA+g/OPROD/cOV69vgycrFZ8jN9CCqTYZdaC4ffE62wPiyhGThGtQPT/Q9VkUn10GcPr2p8A7MBkKcu6RjP5mF78bNo8fE+SEPlDfYyQIict4Fy+sbot5bRvwgReC4vVD9U2Ff9f02yByRt+U10s1hyTak4nS6SSYYFW9gFd67IuFbV0aG2ZelIhbaJ3IyfG0CXrT3TnEJDmC+IgEYnZ2xRLluAXau4Zhw3bgYpKQZXKimDwn7/Inp93dnRzl6eaqO9pU2Yz2ViLIR4AyeogWg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=r9jWrlUaHZapt3O5ynx/NVtTbPKS9eli1IbAE7tSe/A=;
 b=vx4XfO7+uz6x42n5+bA9PDGFMJcEiY2eRfNgNFjG2dqfYMUS9J83WWSoFBPYQwJCRp1u1FQx32uqZTd7A96r5LlDiUhBgcUrwVUoasxWIVX/ZCoKS5Gm1DJJProv40oPyF73lO8QTuq3FeEWPedBr4RN6qv653QYg8534eV+mpaqBmRkn/F1Bp04yfC2E/QVb2vN6TGVOoLXhGqD9nWk76dmy3IfO78dA7obXZISiREnwku56VqhbXWOIVePSztvDxFXY00SY05efaBWpS1iHMbMqVWCxDrR0OzUpKWuanNhF1rBGjPNDGfpbB0jHALs7vnNfw7+5f8Qr/1mtNG0Lg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=r9jWrlUaHZapt3O5ynx/NVtTbPKS9eli1IbAE7tSe/A=;
 b=Xn4ose7RiA4zNNLkZDWZp06xLhr00Icobgd1ENTct5P/sZ+bpj6taez72HVBPLnzXhzL8jMpO5Azav1jODLjzh4LaRjB1NK040x8N2R2CNYWikBy3eFevZjGLVUnDNvakXbysaTg+pi0tyM1bXyQTp/rX8vv09KqzGmFs0RBhtdxnyjzrxcwEzswX2yySDkg8vllRy1uN9a9l7tqgwTvZcmMvkZqVqHyvZrj75pD2/wUyOjewVMzB1MQuevzyiMLXIyFdSKydnJe+roBg3Gm63dt6/s0FnyPAS1S0WdZoYINj9Q48NEqSxbpAAhg7DELPEyobuyoyxRfet9rsEhf1A==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH v2 09/23] xen/arm: vsmmuv3: Add support for cmdqueue handling
Thread-Topic: [PATCH v2 09/23] xen/arm: vsmmuv3: Add support for cmdqueue
 handling
Thread-Index: AQHcuxeU1Q8QMtGmy02igRjRvzbMGg==
Date: Mon, 23 Mar 2026 22:51:26 +0000
Message-ID:
 <359a88c117af4d3eaedc6a762313a9cf54e250f6.1774305918.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB7653:EE_
x-ms-office365-filtering-correlation-id: a7b12062-1724-4647-a040-08de892eb6db
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021|22082099003|18002099003|56012099003;
x-microsoft-antispam-message-info:
 RRW1korzKyvDd7vjnMQ6xmm9zqnWpdpWJ9typkKjHrLgFYD+1O++cA8pxbohyfoqi3MWQ+31hETn0CgNjNLop4tKaVLp2/v1EKxrz7qvo2nDAfV/UqUZOVOQXeuaXOcc0GEZTk5MpeqbEI4XbRT6UKd4icY7OiEeiVswRaj/2lE1DdooEz+zXoPuI/1eh5hHUjHG8GfTJhioCCKzbcDVzBnZsLvwGPIXFu5TPp4/kw160G/4CCTxzfud9R96T2GTubtjjII0HQGDWxjukTfj44PdIoed6MY67krZMtiYVu6F5TwOHA7qn3/LQMd+bIrTQhMVwo5YOnR4HdoO4fUP50k4mzgjjtaHpc8sHk8s2ZnXPbT8VKa48aPq4cVgP+XCYSibzopuvvoi/Bz4ZhxvnnvT7zVK0edDhQiMRx32d4FB5FaoNy3HyB6rih7OmzCMSDTpM/+7QrjNDQmHvstJL/2qtv149iTYrz+ivjgTVREkRgRT9hx0brwAYJomC8zmndC+RRxqlPM7NV8osGmngYVDFi6SVfPWwgAPO1dirSOuwSTfUOzop92Q5wX5E0Xw4WmzMFeO8dWCAdEOVcPHzoWaJmM0WE4kjmBPsWjUdFHddMtqW/s2/FFfccLLaBeIHGSw6fcRDPPM2goYouU6nndLi5oZb2UMTueCD6USrMWcD1Wg1XUpwqixoZREl1ZbODGCWiLP0B5fkfvox1qUWIOXApiK11pmbt6NlTY0ipTs0RgOmccuXr8iKEt51ap0Ny/UcwzY2h3P53StQ5WPdcpPsFHaYkqNLI11/X9htLI=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?3tQBjzxmsLdyn2LSunKhxnYOKV1VYPC4q78RCE8o4sD+l3svHYsNPRdIT2?=
 =?iso-8859-1?Q?UXcBZP6eN8clgDFzDGleccUB3FNy3rh52ePzGA7D1WuZTy/gGs2yIrHIrC?=
 =?iso-8859-1?Q?S9hN2EqEIPChQ3jURhg2aDmbYpRoFphCisvY225z3rWSAuSQJS3i0lmErL?=
 =?iso-8859-1?Q?Anm2jRw28ODzGVTg71svBQjiLCpfUJ0jqLx8eMXYGn4psXFoJHFtj6rms2?=
 =?iso-8859-1?Q?e3qbeMcygX7+F00YhIfZ7Jm2+5fIZ3WpY/IbdRMKJEL04ulhOZum/uSSOT?=
 =?iso-8859-1?Q?XPRw6B8gea5qGyOyehZnspRkvua8KgvP3/iDEr+sDTNBPNBM49HJ7682Xw?=
 =?iso-8859-1?Q?W9qXv/RUEofXfzMYpYet0508Td5+xt7pmZiOz+p3dT9v9xrbbdU9eWCrBJ?=
 =?iso-8859-1?Q?XIJrzZ9mNJM8QqKn0f69PqNJILFiVa20EtXtgimuZMKhcC3uX6rHZa/OFy?=
 =?iso-8859-1?Q?E/wcwH+kIZAsHycZTmHcAv1/IzQpxTxnMROiDK7H4B+7fJKzJngBZU34WC?=
 =?iso-8859-1?Q?3W8YQeErctGtZ8RL7/ycoLyegjK2ADfXzwd9WxEtfcEOmxV6RcTNSmZE7s?=
 =?iso-8859-1?Q?zMeH/RO1eF57WzNZIoZz4HL/rOLmX3KE/L9msYyDMWUtMrmn5P246l9a4m?=
 =?iso-8859-1?Q?cVYtF5CLp7xqr2dYESA89rGZFawMuF/QFBZrr3B84rdqtoVlfEZddqDVkM?=
 =?iso-8859-1?Q?PXL38YIGrXeJV+yVf+kMh8gx0UGpnsKM6eUyPOV9uD7sarK5zAXsEMV4od?=
 =?iso-8859-1?Q?iqDGRIockUXfEU/CAk7CoOqVCqdtC2pKCBWsOVdlN2QJWwKvO1jZgXXpUS?=
 =?iso-8859-1?Q?YUDR5qqZ97tbkG4kzx1q7eePgmtgam24g0fhXUC6rocm/PwXqyfCLTLu54?=
 =?iso-8859-1?Q?e734SFa5CVzN0jmLqHv1D6fETwEbgfKKOQjxsCZdWfiGtPyGcbfny23YnH?=
 =?iso-8859-1?Q?wB4UR8F92mniYi2Q8lxfSHW7iZahn5D1TgcyLHzJGELk9WF0OnJ1w+3xwb?=
 =?iso-8859-1?Q?NcfzlkTt7IjdYC8vuL30aUID3Je1hQbZtUXl/4FXis9m4HEx/OWy48WzBU?=
 =?iso-8859-1?Q?wlbDEjTA7Xh11NJ8QGf5SXNSV7FDweEPivhVxmX6ba3QG9hcEFA6s1Adtq?=
 =?iso-8859-1?Q?7eJY6M/12XdhwdcXK8qaoKMzQQF7tpujwscTsFthZumixr+z4zAdvwAnFw?=
 =?iso-8859-1?Q?tX3fxa22F+EW9gJbuhjQITHEbFf9ijOGqTGt4VFJk5minRW8JwGtQKuQmM?=
 =?iso-8859-1?Q?1Vo36rVOQ5Pg0s73IaKOP3Sfn/PqH3bPL4a4qcQh2nwW6ZhX4jO9dzzApW?=
 =?iso-8859-1?Q?H06jgaulKFyhg2UEPX/f9S2CC94qtZl34H7oj2/X/ox7hD+6cHkT5Af4jg?=
 =?iso-8859-1?Q?QPX84HIxeDLPOG8cI1jZHORYqjcMxhRpylzi5LF/KALqjULqvrZQocXyyy?=
 =?iso-8859-1?Q?UVRkhqOw7K1hrdKMLP1kyHhwCj+hTWNPJ/1uTPaQVeK/BOwKkDcHHZXOGN?=
 =?iso-8859-1?Q?0jSJSjohUvGGBk2qGhCrSSkcqMzEskEwAyvBSRJWx/s306fPqO7SYdIicr?=
 =?iso-8859-1?Q?7eOVRD4x0QTM36qqd6WljBhtuZpx0zTQxuaR9oXXbMY4MZAN5kI44ozDaG?=
 =?iso-8859-1?Q?E6DfQY6RoEQ4S+d1cymKwfPAOtvWG6sLXjdYp2B++eDylqZ6FlbB4xogc1?=
 =?iso-8859-1?Q?EuvoZHkSEYUFwSpbRyymFpOUOkhURcVS3j/Om941xdhOAVsvq5XQAS7kQC?=
 =?iso-8859-1?Q?Y2lwilCG9TxgJHUxNEwS71//BYjW4P6rtrWjXKKc38MzURD/9bBYKoxO/A?=
 =?iso-8859-1?Q?YvRdzBis4LacZa8zV6TAaMi/QHeMIdw=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a7b12062-1724-4647-a040-08de892eb6db
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:51:26.2274
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Fepw+xRoXy2y49jfBMjG0jK7UYgrfkkBmqZSR9tYE+nnw95C8+zlsIRpESw+xm0UssvFyL7Ur4eIR/pX/VVkAg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7653
X-purgate-ID: tlsNG-d25034/1774306287-F66AF734-8FBCC3C1/0/0
X-purgate-type: clean
X-purgate-size: 5197

From: Rahul Singh <rahul.singh@arm.com>

Add support for virtual cmdqueue handling for guests

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/drivers/passthrough/arm/vsmmu-v3.c | 101 +++++++++++++++++++++++++
 1 file changed, 101 insertions(+)

diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index 3ae1e62a50..02fe6a4422 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
=20
+#include <xen/guest_access.h>
 #include <xen/param.h>
 #include <xen/sched.h>
 #include <asm/mmio.h>
@@ -25,6 +26,26 @@
 /* Struct to hold the vIOMMU ops and vIOMMU type */
 extern const struct viommu_desc __read_mostly *cur_viommu;
=20
+/* SMMUv3 command definitions */
+#define CMDQ_OP_PREFETCH_CFG    0x1
+#define CMDQ_OP_CFGI_STE        0x3
+#define CMDQ_OP_CFGI_ALL        0x4
+#define CMDQ_OP_CFGI_CD         0x5
+#define CMDQ_OP_CFGI_CD_ALL     0x6
+#define CMDQ_OP_TLBI_NH_ASID    0x11
+#define CMDQ_OP_TLBI_NH_VA      0x12
+#define CMDQ_OP_TLBI_NSNH_ALL   0x30
+#define CMDQ_OP_CMD_SYNC        0x46
+
+/* Queue Handling */
+#define Q_BASE(q)       ((q)->q_base & Q_BASE_ADDR_MASK)
+#define Q_CONS_ENT(q)   (Q_BASE(q) + Q_IDX(q, (q)->cons) * (q)->ent_size)
+#define Q_PROD_ENT(q)   (Q_BASE(q) + Q_IDX(q, (q)->prod) * (q)->ent_size)
+
+/* Helper Macros */
+#define smmu_get_cmdq_enabled(x)    FIELD_GET(CR0_CMDQEN, x)
+#define smmu_cmd_get_command(x)     FIELD_GET(CMDQ_0_OP, x)
+
 /* virtual smmu queue */
 struct arm_vsmmu_queue {
     uint64_t    q_base; /* base register */
@@ -49,8 +70,80 @@ struct virt_smmu {
     uint64_t    gerror_irq_cfg0;
     uint64_t    evtq_irq_cfg0;
     struct      arm_vsmmu_queue evtq, cmdq;
+    spinlock_t  cmd_queue_lock;
 };
=20
+/* Queue manipulation functions */
+static bool queue_empty(struct arm_vsmmu_queue *q)
+{
+    return Q_IDX(q, q->prod) =3D=3D Q_IDX(q, q->cons) &&
+           Q_WRP(q, q->prod) =3D=3D Q_WRP(q, q->cons);
+}
+
+static void queue_inc_cons(struct arm_vsmmu_queue *q)
+{
+    uint32_t cons =3D (Q_WRP(q, q->cons) | Q_IDX(q, q->cons)) + 1;
+    q->cons =3D Q_OVF(q->cons) | Q_WRP(q, cons) | Q_IDX(q, cons);
+}
+
+static void dump_smmu_command(uint64_t *command)
+{
+    gdprintk(XENLOG_ERR, "cmd 0x%02llx: %016lx %016lx\n",
+             smmu_cmd_get_command(command[0]), command[0], command[1]);
+}
+static int arm_vsmmu_handle_cmds(struct virt_smmu *smmu)
+{
+    struct arm_vsmmu_queue *q =3D &smmu->cmdq;
+    struct domain *d =3D smmu->d;
+    uint64_t command[CMDQ_ENT_DWORDS];
+    paddr_t addr;
+
+    if ( !smmu_get_cmdq_enabled(smmu->cr[0]) )
+        return 0;
+
+    while ( !queue_empty(q) )
+    {
+        int ret;
+
+        addr =3D Q_CONS_ENT(q);
+        ret =3D access_guest_memory_by_gpa(d, addr, command,
+                                         sizeof(command), false);
+        if ( ret )
+            return ret;
+
+        switch ( smmu_cmd_get_command(command[0]) )
+        {
+        case CMDQ_OP_CFGI_STE:
+            break;
+        case CMDQ_OP_PREFETCH_CFG:
+        case CMDQ_OP_CFGI_CD:
+        case CMDQ_OP_CFGI_CD_ALL:
+        case CMDQ_OP_CFGI_ALL:
+        case CMDQ_OP_CMD_SYNC:
+            break;
+        case CMDQ_OP_TLBI_NH_ASID:
+        case CMDQ_OP_TLBI_NSNH_ALL:
+        case CMDQ_OP_TLBI_NH_VA:
+            if ( !iommu_iotlb_flush_all(smmu->d, 1) )
+                break;
+        default:
+            gdprintk(XENLOG_ERR, "vSMMUv3: unhandled command\n");
+            dump_smmu_command(command);
+            break;
+        }
+
+        if ( ret )
+        {
+            gdprintk(XENLOG_ERR,
+                     "vSMMUv3: command error %d while handling command\n",
+                     ret);
+            dump_smmu_command(command);
+        }
+        queue_inc_cons(q);
+    }
+    return 0;
+}
+
 static int vsmmuv3_mmio_write(struct vcpu *v, mmio_info_t *info,
                               register_t r, void *priv)
 {
@@ -104,9 +197,15 @@ static int vsmmuv3_mmio_write(struct vcpu *v, mmio_inf=
o_t *info,
         break;
=20
     case VREG32(ARM_SMMU_CMDQ_PROD):
+        spin_lock(&smmu->cmd_queue_lock);
         reg32 =3D smmu->cmdq.prod;
         vreg_reg32_update(&reg32, r, info);
         smmu->cmdq.prod =3D reg32;
+
+        if ( arm_vsmmu_handle_cmds(smmu) )
+            gdprintk(XENLOG_ERR, "error handling vSMMUv3 commands\n");
+
+        spin_unlock(&smmu->cmd_queue_lock);
         break;
=20
     case VREG32(ARM_SMMU_CMDQ_CONS):
@@ -326,6 +425,8 @@ static int vsmmuv3_init_single(struct domain *d, paddr_=
t addr, paddr_t size)
     smmu->evtq.q_base =3D FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_EVTQS);
     smmu->evtq.ent_size =3D EVTQ_ENT_DWORDS * DWORDS_BYTES;
=20
+    spin_lock_init(&smmu->cmd_queue_lock);
+
     register_mmio_handler(d, &vsmmuv3_mmio_handler, addr, size, smmu);
=20
     /* Register the vIOMMU to be able to clean it up later. */
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259651.1553066 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7R-0001Vn-GW; Mon, 23 Mar 2026 22:51:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259651.1553066; Mon, 23 Mar 2026 22:51:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7R-0001VV-Bt; Mon, 23 Mar 2026 22:51:33 +0000
Received: by outflank-mailman (input) for mailman id 1259651;
 Mon, 23 Mar 2026 22:51: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=P8gh=BX=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1w4o7Q-0001IP-8l
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:51:32 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazon11021140.outbound.protection.outlook.com
 [40.107.130.140]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d42862d5-270a-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Mar 2026 23:51:29 +0100 (CET)
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB7653.eurprd03.prod.outlook.com (2603:10a6:20b:34b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:51:27 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22:51: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: d42862d5-270a-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GZaHfpskWRsWCWvVOX2nOi+PPWYpwFkzMMpmxB27zeefKxF+WkkvcNjOgE8hkocMD2ibGF+kT2i92fP9zH7j6BplCQB2ANWII1X4LsfukjtQbImpZC9xsbOU84BDLdFJamZ2YMT4DPIJEY21+QWv80PmvY2OwPADT4D8XSDByU7rs2XcCEAQbfbKNF/1UuP5IWqrdYom4IZxv17zzpt4wEwiUYbchVq72dYJXb1d2JZv1TMzQtwPqeak2VdvmEmPh/uCXxEnTxwh5nVuJ/FmCAJobUT/xs6W0sna6Lbk8wsBli9n/J8CYZ2CnAvb3ZYu60Ognxqs6L4UOPGX2P2HuQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0XZSO1UVrC8SXwDBQpjDCvjjP780VAbXtnJxzn+t7Pc=;
 b=tOX+UijnQiLRHJ+kS1RgkQkzAov/ZyORQoDYdMzsgfTcQror3I4C84LQlLWDujn5QDwgg6iyGZq9o1/DoiX8l9G9S7aLASBR2uUSlxxP6NZQj/Zh6Z3Iwnk0S9SuccI23+pxp5Gbo48JHzvz+isvP1JFVL8EfaI9oqZohzOBaXXajKcoSqEvQvFAL71DBNh+AN4ZW2xj3hWV+E1PxPPB9C19k7BLJweqYmM/j6mdXqNaZvRt+THoeKdGDFoI5gu+TKIg+tPe0uuyPOtrMMSSLJ0ultbhGjFHGzZbLIrg9ZjFeJfuFDuL+AjOpAMBymhi/bcUslNrATgfZWPMQ6Ke4g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0XZSO1UVrC8SXwDBQpjDCvjjP780VAbXtnJxzn+t7Pc=;
 b=bpdJxJpk22n2LhrmUPCEA6nGTh46G39yF15w8WU2AuhsN4SAzwuIGUKh6LhQvdE2IozyDPyFt/ykZ/N1mp0XXrkseWdcKS6SL6Tl7fkFZXMBh+FKznkH2xLpYhju5p8LfrrPia7z0fbZ+eCDbdvayvkrFlMLZRLhwKJNRUmBB45lkNj2zZ2pau+g9J6YVyp8C4rKsb6VxubM+2p1YCawXhjhNerv+elPJ2IscfU4vT4Hg2LhJjcDm1uLNaBCZIAwtG4yTn6+tWx08okO5nXsq5tgknae5+rVnotzLTADwJbLXe/qTSls98jZJpc24KMuQI9r7lN9ynFQDlo8MuATig==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH v2 10/23] xen/arm: vsmmuv3: Add support for command
 CMD_CFGI_STE
Thread-Topic: [PATCH v2 10/23] xen/arm: vsmmuv3: Add support for command
 CMD_CFGI_STE
Thread-Index: AQHcuxeUYaeevOD7N0GVZ8vVI9YqNQ==
Date: Mon, 23 Mar 2026 22:51:27 +0000
Message-ID:
 <5e653fb05843d18725b6eaf50a8d7766ab82dabc.1774305918.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB7653:EE_
x-ms-office365-filtering-correlation-id: e5d9561b-6371-44ee-13ff-08de892eb762
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021|22082099003|18002099003|56012099003;
x-microsoft-antispam-message-info:
 P5pGoOuqQwrIIsuvHAjAq0I1F6P9rdTHcLdU/+PUgqmg4V6U1pnZ/EJPmfF4foMZX127aBY/Jh9KGU8eTOIRcST5SvBPYPx1bwMa/iX76YQlz4y8g0YcMp4ZOhfAgd9PrKgHeTO0lK6WdYCwg/CwKVAYO7Igyy1wq+0ymyZDzIX4EE4XRHuZ+9HUYqTZ8BpbyssOOBtJfiZkKYp7om1LHVu9Aj0VK9bzEwj1I5J9dIrlrXtSxKT9dZOJmYCdARW5w95H80c1QpbKiRtZNCEqp7ixbuqitw0BUXu0ZKUCS4YkK+b1+K89DTGpUbey+VDuG+jFVJBdRkLvmc1/Fhz51ViZb5cfquYcRRoov5Nr1gEwJSkIbIHCxj0G7ck0VfG/InOkdN2RT4w1iEZtfjwtb4b7PoYreP0iSc5q42jNdt38ZWtt1JRaPsKdQNdYOAAnMkBVgaX/q0z5B75zb8m+i9nqnXjbzUkWo58DoHLkksHfMolHy9LTTnfybM8OeJQ3DfE96pTeiTdt0P9kYU3YYXTvLnALx/FEMAt1Re248T/gQjJxCZ7IuBYBKrmbqZbLD6/9dKbPHac2MZocGnc+sXXP4yKuEss7PXSjeo/PcRKyX8PjBQ5h3YDkiZjVh5IFj56qwB/4WVZFStRkbOu/kp8ecT6bsjhcMGV1g8TmTAteef6fUHT5Hp03GAgWgJweg0CZlVpdTJ66eMK5QyV77eLGjLSKtkYi7ntGBHzSfi3oaFt/u0xyy+tbv+T6EP56qiGp7ktyR8PlDIFFrudTKmoZrS0h9QoR6Y1A0juWrwU=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?NQQKINRMe4tg6nznZCSWi3TnWWwNPzocRHAFCd2vDZaRRYz2Zo7Ko3C03g?=
 =?iso-8859-1?Q?ksVwAFQB+/EKdSpT31bEnYn2GK+diZjGpW1nHqy6KI35wYN4XWGDb/M62m?=
 =?iso-8859-1?Q?fOxsr4dbYbnWv64F2vY9ftXgIc1zJ21X0zO0LzmlkHWkdsy4x9Busz3gfu?=
 =?iso-8859-1?Q?W6e8W8zZi5Of2WcC88WM7OGuTaCp4tDGGh44KKrVtcxpfvprdKBBaLBb5h?=
 =?iso-8859-1?Q?gejGofaIwMj2SuHROZsfRzBnd6ZrEIZ65NCYkyZ2F38VArzOKrn8nS7xRN?=
 =?iso-8859-1?Q?8Bx6vnHkuVa62GcHLIuwh0mLGS0ExyXwkUQ9EGqg66Tm0nPHHdaC4zolK6?=
 =?iso-8859-1?Q?EdCy7Xbt5puKx95NvI6sb7cbT1b9Qw6sh2t+EEYEHGZ4zuP3IBUGilzrug?=
 =?iso-8859-1?Q?Jaebow0kn39+LiGPP2XQYBLzzF6e7aD7M+ggrxBEw6Ui4li+SSnzOCb5zA?=
 =?iso-8859-1?Q?L1ACrq4DZ6hMgRPjTpF2zCJKU2zmf01jcV1pavMcaYwgEFn0fjJ65hJE7k?=
 =?iso-8859-1?Q?6RKeoJg2g7VW8j7mGR/7D8DGPn92TnL87RJBPGzov9s+H/Dtd0sSV7mGIT?=
 =?iso-8859-1?Q?+NmiTw8WT8wj2dtbBuYuCZ01h1vNzOfsRJOzcZMkZbuWou9h3OfYkatj8Q?=
 =?iso-8859-1?Q?xi+i5PCVBJiB3OY75F/EAQo5RXwkCT/UUZQTkRl/ma7LldIOh9Xpbco3Tl?=
 =?iso-8859-1?Q?95dDBRGK5t51T+RYdkpjFstLqNmUNFvwVT10CaIjh+JO/S6t1n62WCOwY8?=
 =?iso-8859-1?Q?aa4LzkC+KwYFAu0mu4360ktykpQteniJW2LO1l3D/x3KaK8VXq7czyBbn/?=
 =?iso-8859-1?Q?jIfIciEhCwTzZ2AtVqKOXFC3tEjPs1rE0iEp5OIegM54s7NwvFd/qB1DaI?=
 =?iso-8859-1?Q?3324FNP9foloBfg2JPTE+p2lJPmjTv6zAdF0sMKf/gUa75gZfZk+PeOr0D?=
 =?iso-8859-1?Q?fNga+B1Ww03peWDwi55nUB33XPs+IUeEPM0nnWpSpupbx/lJsgtROt+If5?=
 =?iso-8859-1?Q?PbvQ53I2sBDL3l0qbU/MtUxEZnemrR+FY5B4uLoOlJ0hrOgX8fHybGKorp?=
 =?iso-8859-1?Q?mbSDhhIImXqAnCpT6hBvqiho6JKo6t3YQj/huJwMoLKtYHeCa/8YLVUC+5?=
 =?iso-8859-1?Q?brak40tkN2qebSnhhD9mUbll+1xKLjo9RtFveOF4WDQjVPth0ptvnOZG59?=
 =?iso-8859-1?Q?XSpsZMrf5A2h4Snbtc6IwaWYYpM1vDST17W5ooiOVWzqr2d+ZumNPDvEmV?=
 =?iso-8859-1?Q?ScrijBnDjasB2N8ENNxLe4IdraVkGnNk+XKjQdfjiMnaGpH+F+kvgX06ol?=
 =?iso-8859-1?Q?hoKEq1YrAVUt0oaRdTRm0RJlUfwz/G11Gl0AeTOMSHRAlByDgzlJY6yTfi?=
 =?iso-8859-1?Q?WAiUEdLWqn8P7GHxiGDz8O9iRROdPkXYS9P13IRf3pKalf2f9MyU7jQ6K2?=
 =?iso-8859-1?Q?y0uyPdpJG7c/WGaPgkhsexoqqHzSFiO9objBtSM8wyHHZlSfyrvW1R8mbW?=
 =?iso-8859-1?Q?PbLJdizDC38Xa+1DQPJ7Fngp4gpGJFSK/nTtW+BBGylr2Bws+TJOP6O/Ci?=
 =?iso-8859-1?Q?lOSmyuDC/3fjyTrVqBPQfDczEX5YtjvIqE5HmNhLeld26GF/pP294VVvAp?=
 =?iso-8859-1?Q?V18h+4yEqinEy6ZYu35vOd/p+vDTfqY6tNdFolOOEAlPbOvDxTZZwPj5Iw?=
 =?iso-8859-1?Q?4RtzLQlh+z4aBJ3M5ioV8mitDQhismurHBnrCtk/v9gDc7yDIGDxPt00lS?=
 =?iso-8859-1?Q?XE8PLG6eNJJpqlcI1VVK5Z/vu7S4V1c/2uGhekWKDR1kZ7nXId+zmd+4Ea?=
 =?iso-8859-1?Q?dQqJ5Tx/cnzuMnWiouOdHmGN7+SiXmE=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e5d9561b-6371-44ee-13ff-08de892eb762
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:51:27.1257
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: KCk0okgF7V2k7oyLE+pPzct0CDPH4BO5vGXmwL6Y39NchAA2woAv8p8IeHIDbQ1JhfvVCbxUp5aEKx5piqoOfA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7653

From: Rahul Singh <rahul.singh@arm.com>

CMD_CFGI_STE is used to invalidate/validate the STE. Emulated vSMMUv3
driver in XEN will read the STE from the guest memory space and capture
the Stage-1 configuration required to support nested translation.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/drivers/passthrough/arm/vsmmu-v3.c | 148 +++++++++++++++++++++++++
 1 file changed, 148 insertions(+)

diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index 02fe6a4422..39ed4dc577 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -45,6 +45,21 @@ extern const struct viommu_desc __read_mostly *cur_viomm=
u;
 /* Helper Macros */
 #define smmu_get_cmdq_enabled(x)    FIELD_GET(CR0_CMDQEN, x)
 #define smmu_cmd_get_command(x)     FIELD_GET(CMDQ_0_OP, x)
+#define smmu_cmd_get_sid(x)         FIELD_GET(CMDQ_PREFETCH_0_SID, x)
+#define smmu_get_ste_s1cdmax(x)     FIELD_GET(STRTAB_STE_0_S1CDMAX, x)
+#define smmu_get_ste_s1fmt(x)       FIELD_GET(STRTAB_STE_0_S1FMT, x)
+#define smmu_get_ste_s1stalld(x)    FIELD_GET(STRTAB_STE_1_S1STALLD, x)
+#define smmu_get_ste_s1ctxptr(x)    FIELD_PREP(STRTAB_STE_0_S1CTXPTR_MASK,=
 \
+                                    FIELD_GET(STRTAB_STE_0_S1CTXPTR_MASK, =
x))
+
+/* stage-1 translation configuration */
+struct arm_vsmmu_s1_trans_cfg {
+    paddr_t s1ctxptr;
+    uint8_t s1fmt;
+    uint8_t s1cdmax;
+    bool    bypassed;             /* translation is bypassed */
+    bool    aborted;              /* translation is aborted */
+};
=20
 /* virtual smmu queue */
 struct arm_vsmmu_queue {
@@ -91,6 +106,138 @@ static void dump_smmu_command(uint64_t *command)
     gdprintk(XENLOG_ERR, "cmd 0x%02llx: %016lx %016lx\n",
              smmu_cmd_get_command(command[0]), command[0], command[1]);
 }
+static int arm_vsmmu_find_ste(struct virt_smmu *smmu, uint32_t sid,
+                              uint64_t *ste)
+{
+    paddr_t addr, strtab_base;
+    struct domain *d =3D smmu->d;
+    uint32_t log2size;
+    int strtab_size_shift;
+    int ret;
+
+    log2size =3D FIELD_GET(STRTAB_BASE_CFG_LOG2SIZE, smmu->strtab_base_cfg=
);
+
+    if ( sid >=3D (1 << MIN(log2size, SMMU_IDR1_SIDSIZE)) )
+        return -EINVAL;
+
+    if ( smmu->features & STRTAB_BASE_CFG_FMT_2LVL )
+    {
+        int idx, max_l2_ste, span;
+        paddr_t l1ptr, l2ptr;
+        uint64_t l1std;
+
+        strtab_size_shift =3D MAX(5, (int)log2size - smmu->sid_split - 1 +=
 3);
+        strtab_base =3D smmu->strtab_base & STRTAB_BASE_ADDR_MASK &
+                        ~GENMASK_ULL(strtab_size_shift, 0);
+        idx =3D (sid >> STRTAB_SPLIT) * STRTAB_L1_DESC_DWORDS;
+        l1ptr =3D (paddr_t)(strtab_base + idx * sizeof(l1std));
+
+        ret =3D access_guest_memory_by_gpa(d, l1ptr, &l1std,
+                                         sizeof(l1std), false);
+        if ( ret )
+        {
+            gdprintk(XENLOG_ERR,
+                     "Could not read L1PTR at 0X%"PRIx64"\n", l1ptr);
+            return ret;
+        }
+
+        span =3D FIELD_GET(STRTAB_L1_DESC_SPAN, l1std);
+        if ( !span )
+        {
+            gdprintk(XENLOG_ERR, "Bad StreamID span\n");
+            return -EINVAL;
+        }
+
+        max_l2_ste =3D (1 << span) - 1;
+        l2ptr =3D FIELD_PREP(STRTAB_L1_DESC_L2PTR_MASK,
+                    FIELD_GET(STRTAB_L1_DESC_L2PTR_MASK, l1std));
+        idx =3D sid & ((1 << smmu->sid_split) - 1);
+        if ( idx > max_l2_ste )
+        {
+            gdprintk(XENLOG_ERR, "idx=3D%d > max_l2_ste=3D%d\n",
+                     idx, max_l2_ste);
+            return -EINVAL;
+        }
+        addr =3D l2ptr + idx * sizeof(*ste) * STRTAB_STE_DWORDS;
+    }
+    else
+    {
+        strtab_size_shift =3D log2size + 5;
+        strtab_base =3D smmu->strtab_base & STRTAB_BASE_ADDR_MASK &
+                      ~GENMASK_ULL(strtab_size_shift, 0);
+        addr =3D strtab_base + sid * sizeof(*ste) * STRTAB_STE_DWORDS;
+    }
+    ret =3D access_guest_memory_by_gpa(d, addr, ste, sizeof(*ste), false);
+    if ( ret )
+    {
+        gdprintk(XENLOG_ERR,
+                "Cannot fetch pte at address=3D0x%"PRIx64"\n", addr);
+        return -EINVAL;
+    }
+
+    return 0;
+}
+
+static int arm_vsmmu_decode_ste(struct virt_smmu *smmu, uint32_t sid,
+                                struct arm_vsmmu_s1_trans_cfg *cfg,
+                                uint64_t *ste)
+{
+    uint64_t val =3D ste[0];
+
+    if ( !(val & STRTAB_STE_0_V) )
+        return -EAGAIN;
+
+    switch ( FIELD_GET(STRTAB_STE_0_CFG, val) )
+    {
+    case STRTAB_STE_0_CFG_BYPASS:
+        cfg->bypassed =3D true;
+        return 0;
+    case STRTAB_STE_0_CFG_ABORT:
+        cfg->aborted =3D true;
+        return 0;
+    case STRTAB_STE_0_CFG_S1_TRANS:
+        break;
+    case STRTAB_STE_0_CFG_S2_TRANS:
+        gdprintk(XENLOG_ERR, "vSMMUv3 does not support stage 2 yet\n");
+        goto bad_ste;
+    default:
+        BUG(); /* STE corruption */
+    }
+
+    cfg->s1ctxptr =3D smmu_get_ste_s1ctxptr(val);
+    cfg->s1fmt =3D smmu_get_ste_s1fmt(val);
+    cfg->s1cdmax =3D smmu_get_ste_s1cdmax(val);
+    if ( cfg->s1cdmax !=3D 0 )
+    {
+        gdprintk(XENLOG_ERR,
+                 "vSMMUv3 does not support multiple context descriptors\n"=
);
+        goto bad_ste;
+    }
+
+    return 0;
+
+bad_ste:
+    return -EINVAL;
+}
+
+static int arm_vsmmu_handle_cfgi_ste(struct virt_smmu *smmu, uint64_t *cmd=
ptr)
+{
+    int ret;
+    uint64_t ste[STRTAB_STE_DWORDS];
+    struct arm_vsmmu_s1_trans_cfg s1_cfg =3D {0};
+    uint32_t sid =3D smmu_cmd_get_sid(cmdptr[0]);
+
+    ret =3D arm_vsmmu_find_ste(smmu, sid, ste);
+    if ( ret )
+        return ret;
+
+    ret =3D arm_vsmmu_decode_ste(smmu, sid, &s1_cfg, ste);
+    if ( ret )
+        return (ret =3D=3D -EAGAIN ) ? 0 : ret;
+
+    return 0;
+}
+
 static int arm_vsmmu_handle_cmds(struct virt_smmu *smmu)
 {
     struct arm_vsmmu_queue *q =3D &smmu->cmdq;
@@ -114,6 +261,7 @@ static int arm_vsmmu_handle_cmds(struct virt_smmu *smmu=
)
         switch ( smmu_cmd_get_command(command[0]) )
         {
         case CMDQ_OP_CFGI_STE:
+            ret =3D arm_vsmmu_handle_cfgi_ste(smmu, command);
             break;
         case CMDQ_OP_PREFETCH_CFG:
         case CMDQ_OP_CFGI_CD:
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259653.1553073 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7T-0001my-0r; Mon, 23 Mar 2026 22:51:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259653.1553073; Mon, 23 Mar 2026 22:51:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7S-0001lu-Qq; Mon, 23 Mar 2026 22:51:34 +0000
Received: by outflank-mailman (input) for mailman id 1259653;
 Mon, 23 Mar 2026 22:51: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=P8gh=BX=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1w4o7Q-0001IP-MA
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:51:32 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazon11021140.outbound.protection.outlook.com
 [40.107.130.140]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d57ce2ab-270a-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Mar 2026 23:51:31 +0100 (CET)
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB7653.eurprd03.prod.outlook.com (2603:10a6:20b:34b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:51:28 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22:51: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: d57ce2ab-270a-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Pkqo6b/VYSu3slkL+hGGP+w33FD5kvukCVnpByoCYQ1e+7J/tA73ZVY1raZGsCmheFNv2jf56pir0/LnSD5VvXrAXaPQJY4i6LTczV+bOJ7T9kZSSAPFJoGNy/ld1JXg2LL7S1EUlLkOY9Pa+LsEu3efTN18BXubyMiT1yFfToe2BzTdu/wDDGopLgUk5xENzuU9KJ4JDUh6VA1Qlkf1toIt37WtwOuP78CZyv+EV3t+nzfMZucWkv5dlluSUr3n+bI7UKejih3ni2xIJkzRMW6ujw9o3LBpHXdLq5umoNhKhzd6DKJDrKczZpt9OZ37fi+mDkD8HFjh5IUDt7sEVg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XbDC0a5nibgzeF5+UsHAJm7Cq8gQ7KacSzA3s/TbKVQ=;
 b=mnrtO6A9uj0nz4QIjog7C1OrWnsaJgvhw75UjHh570RGD3r66j2dB9PnyLlNny6eS93yIrUlzj/JmcuSSiryAEXisR4zRmjrOk1XmloYAIvhXIY498w3BVM+Y+Oy8ygqNTtTAPaCBoYSWvf1pc+wSw7Grai1XepQ5Xv90N5biSVm6gWLYg+YWZIs5D4aQCfv3sU95dDafQTZxkf1qnxdn3zD4sf3nixf2Z2PF+RO6R/1SSheN/Ohv36RYA66ZQUqYOL7PiiCD7oDjL2mIscNVITFgGTdvBTM9OJ7dWIJF9e5M5pSzEvwN+LMOJfs+I/cC69hYK9a7Adue46TTjw/RQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XbDC0a5nibgzeF5+UsHAJm7Cq8gQ7KacSzA3s/TbKVQ=;
 b=gqwGmgdvbQobgDhI+4DDARrohK64lNMGD3jBj63BZZgZExtO0Lj4emhtkPzZmPCGDSedAj0CK6JwQIVNWIbtpGhu84qHERAp9T9/MgNP2jQ5ouaxelK0wBvSnjQ8mmcz+A3x0DXUoBcVD/jcDvNOs+CWKFaXss2as8l2AjA49+CW58R5Lldt4Em6NfTpC+J4fGuhmTdAAs9KrIl2nOE20nrncoWxVlQqfEN1A+DyNTPDhDWtqKBc0ljqh+U0Y/2POH7zNiP1NsH7yF86o7X2A6jj82RUTYX25OKPRw9ccfm6ENZb8whX2r559muLKqpD2VFqw4SpYHqpYOLlxAuCDw==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH v2 11/23] xen/arm: vsmmuv3: Attach Stage-1 configuration to
 SMMUv3 hardware
Thread-Topic: [PATCH v2 11/23] xen/arm: vsmmuv3: Attach Stage-1 configuration
 to SMMUv3 hardware
Thread-Index: AQHcuxeVuD6wQXCP2US+GuPZccSubw==
Date: Mon, 23 Mar 2026 22:51:28 +0000
Message-ID:
 <364e3781c041e12343d15ca7a17a420463281e57.1774305918.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB7653:EE_
x-ms-office365-filtering-correlation-id: a049d1aa-fedc-4782-15c3-08de892eb7f3
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021|22082099003|18002099003|56012099003;
x-microsoft-antispam-message-info:
 xtSUfXpOy44bkTsu14gkCxsbh/jaCxh5gqljWmxV9erD5y9PRpV0viiMiWPiTC3EBG2hosmupb4BFtDRBvb9ocgKMzF4V8CZPXui32+iIyLMKttom3cTS8q/mlqOYZoehGMMGMbX7aok32f9R0GzJOs7oUOFruOt/LlUZmxo8XhtKipptYXfQ5gAiJgbjaTLohq5Ahpdu8u2o/KwtLA6Vo4S7w0ScyBnEbutaDIvZhWhBvJqeXjPa2USVta5yfGnvZMbOMVbviUIqyOuvDXkO1rn08o0I9Fwv/ePKXCONYqjKXFxWUv4oAfHh19AZ02qk4idDs4em+VUH07jucd+2xEH7NMtnpCD+GfJ1B/fQnCab3CslWk7my+sjyoym2Uxx1Re92F3kdljXNRGuC7jePja8b/BdY2Pd80jHVjaxbs8nbW8fAsiume4SI5iOYPmpRRg3F6lDt4apOtSPV7kZ16zZTkqs/mc54oAqKbyJGLPsENXIE2vbXw6V5jgQ7zDIiZDFmBzqKPL1K9WzbLc7d8v9GVk0NMquXSJCbL2LDa29s/Rec4DA1FlvF4zondtPQjK2AbzJapaLLfb1XZ2BpHVz56GYsrz6uKb/7ETGhlYKl+LDnvwor1FvlwfSJ77tmGbUgiQnLlXXa7MfEyAzWSz5QkPGs8t4aOPQ5vugV6TDGzwO00FEcOCOxGXkShuGFYl5jQv3Y37Rn2ZwWwPZ70M5FcpgpIOLeRec+w8ONbBeH9Mbk87I95GPO+oh7rs0WjJKmWyjaTvFCgaKbFhzFuBWPRoQg0WWgJGfu9OwnA=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?GE7BWhKeYkbJWEs1noLDcOXDn0DO1Xj5kBRYLWhtC8DO+vMDcthGOAB9M+?=
 =?iso-8859-1?Q?gLO+DGX5zyPKA7i4SeX9ty+5E3QBihF3EGzZuCDCCwOu/OWkWW9YyS4TpS?=
 =?iso-8859-1?Q?+sSdUuynxpxcRk/yZM83V5VJ1OsQpqDurlpLvCNbuartVexOm9w+ztytKF?=
 =?iso-8859-1?Q?bV87ragrsb1EKu5Tnc2BRNbvmMMju4w6MgkYwb9WZCrxUDVorr+oMhqARs?=
 =?iso-8859-1?Q?1R0CabJ0mDptWwfvGtwLR8fPh2lLdSNFEfvJG8rOz+gj/7GzxXdyKlwDGJ?=
 =?iso-8859-1?Q?xqy3JUFWCH7566wkALw9YFChPpkq5cYWJt4NDat7ihU82nIhezBJDxvy5z?=
 =?iso-8859-1?Q?qgTqDugm8CsBAEegS/DXTNH8ibjJ8hC4cXAy/B0JQUXPvrMBYiN946o+qb?=
 =?iso-8859-1?Q?Ej4ibsPVVyUD/I1eGllKQDF0aQHcYfEdSBs8GEZT4AGmt1IlSMPC31dGQi?=
 =?iso-8859-1?Q?ruVL4q3RBxu+miay24GIOhpmB4ocwjEicsGQ6KxVPkAxj3AoMXqRfz87oo?=
 =?iso-8859-1?Q?WcgxVtowhTnnBtMMitFnhD+oSm5k8YaILNBrokpoyQRiQ0rxTdRQ+IJp8b?=
 =?iso-8859-1?Q?N3grQOiywjTuMxJ7Kuo15kq9S8mKv5rz0oQa4eYQV0HCIz84Cu6wVxRNaH?=
 =?iso-8859-1?Q?RqvXk2lckxAgLi7qgfI1FszllRlvZeLjDZPRdnBAZ+AlFbOC7tmCNx9Jry?=
 =?iso-8859-1?Q?eIQAXC2XYymjjVL6AKf0MW7T+m/ka985HxoYwxl6mlfIMRQm1fsAdtJ5lE?=
 =?iso-8859-1?Q?C9B7QZD80ZQd15fblKMX2+kUJqEJliBWEM5Tp+LWKf/0WDF/UZLWY2QB3b?=
 =?iso-8859-1?Q?EngxxH1JNfK3BuefQRKAjBqCUduiw6Ij/iHdhFhH0qHBj/Vq87u7FRktKz?=
 =?iso-8859-1?Q?fspwDdnQ/ZvdgB062FZWaEauxsMY9D3I1huyBKuG99rmT/lmS1h38fZyV7?=
 =?iso-8859-1?Q?A827O9xLs8+cxjfERDDM6+4IXQIfaYIT9W17BQpnT6RlYBOcs034u5zTMT?=
 =?iso-8859-1?Q?RKu6cJLon/uO4z/iRFbMTOl4SDri+l1Id4cuzJhih/SqU4l1SDdotzeyEN?=
 =?iso-8859-1?Q?19acFwyn/h5jEnxRjxM2vnpj0BOYSIqY3wXF0+XU6j+/cO185S9elNUfMC?=
 =?iso-8859-1?Q?OQPGALbAvIaY2xs+KuCjoP/HuhNxbTklI/UPK+neEolxNGEdDT6TnFLBzR?=
 =?iso-8859-1?Q?C/ngX3MWQcstx8vI2KTuzFnAzKSGe+nSQlxZ/0cWt0L5zPeGgXfIy6BD/E?=
 =?iso-8859-1?Q?f/jVkJ3h4lB9GeBKaVdOhEZCIZ2NWdwoEc7JZuc12qDBqXL2crIpHG6VIm?=
 =?iso-8859-1?Q?ZVjrGQFahqFVU77DLN/SvN9c8x0IdrIpdpsjb0ERwiYTBDKrT16Yswxy/6?=
 =?iso-8859-1?Q?Pt7wlKgAJKURNgp4k8RmtyXcmnInzkIvfwQadEYpTi25lV00kMSMeuoWvd?=
 =?iso-8859-1?Q?g/EnBiKjhYmVneyI1gkdX+8lVZKcfOIzxBy7+pzWyaYcFbHRQpvxOKaw9z?=
 =?iso-8859-1?Q?dYrhkws2ywvEWUqk3F+QajsFHR1kqB31xEGIBPW8hXETPDafwuvMLh/NC8?=
 =?iso-8859-1?Q?RGS9vZDsUEs50R1cpHwF7y+XqM/EJBFfL4Pb6l2uG4jkuRq0Zyufh4enBu?=
 =?iso-8859-1?Q?ISp1YAtZkdZBzMLuJL1UUaD6d5AUpFiMYVM4ylOivyxHXk55Zxk63YInuG?=
 =?iso-8859-1?Q?oQMBZA62/xxQ/H84O8KHJxt5ilHwBtFrqoxF5fYXJ5LAt3qJM8Rm3AxeLe?=
 =?iso-8859-1?Q?KEGbgrkKkUsPudWLX6aO2Di88mJvqPU5tV7H0wwitjcA3BwAswNTj5rA+z?=
 =?iso-8859-1?Q?bM6KPTBD+yEtTfErUuPU/cmKxEr1XzQ=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a049d1aa-fedc-4782-15c3-08de892eb7f3
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:51:28.0610
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: xZVqC+Z8JSIbHxcXdzrMg3Es+fjqCoCqE4BMLxaSykrLIPWRWOrTylPmGIRTx9+3hQj0KsuOWrE5E0NFrAQFQQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7653

From: Rahul Singh <rahul.singh@arm.com>

Attach the Stage-1 configuration to device STE to support nested
translation for the guests.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/arch/arm/include/asm/iommu.h       |  7 +++
 xen/drivers/passthrough/arm/smmu-v3.c  | 79 ++++++++++++++++++++++++++
 xen/drivers/passthrough/arm/smmu-v3.h  |  1 +
 xen/drivers/passthrough/arm/vsmmu-v3.c | 18 ++++++
 xen/include/xen/iommu.h                | 13 +++--
 5 files changed, 114 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/include/asm/iommu.h b/xen/arch/arm/include/asm/io=
mmu.h
index ad15477e24..56bc9314a7 100644
--- a/xen/arch/arm/include/asm/iommu.h
+++ b/xen/arch/arm/include/asm/iommu.h
@@ -20,6 +20,13 @@ struct arch_iommu
     void *priv;
 };
=20
+struct iommu_guest_config {
+    paddr_t     s1ctxptr;
+    uint8_t     config;
+    uint8_t     s1fmt;
+    uint8_t     s1cdmax;
+};
+
 const struct iommu_ops *iommu_get_ops(void);
 void iommu_set_ops(const struct iommu_ops *ops);
=20
diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthroug=
h/arm/smmu-v3.c
index 87612df21d..cf8f638a49 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -2810,6 +2810,37 @@ static struct arm_smmu_device *arm_smmu_get_by_dev(c=
onst struct device *dev)
 	return NULL;
 }
=20
+static struct iommu_domain *arm_smmu_get_domain_by_sid(struct domain *d,
+				u32 sid)
+{
+	int i;
+	unsigned long flags;
+	struct iommu_domain *io_domain;
+	struct arm_smmu_domain *smmu_domain;
+	struct arm_smmu_master *master;
+	struct arm_smmu_xen_domain *xen_domain =3D dom_iommu(d)->arch.priv;
+
+	/*
+	 * Loop through the &xen_domain->contexts to locate a context
+	 * assigned to this SMMU
+	 */
+	list_for_each_entry(io_domain, &xen_domain->contexts, list) {
+		smmu_domain =3D to_smmu_domain(io_domain);
+
+		spin_lock_irqsave(&smmu_domain->devices_lock, flags);
+		list_for_each_entry(master, &smmu_domain->devices, domain_head) {
+			for (i =3D 0; i < master->num_streams; i++) {
+				if (sid !=3D master->streams[i].id)
+					continue;
+				spin_unlock_irqrestore(&smmu_domain->devices_lock, flags);
+				return io_domain;
+			}
+		}
+		spin_unlock_irqrestore(&smmu_domain->devices_lock, flags);
+	}
+	return NULL;
+}
+
 static struct iommu_domain *arm_smmu_get_domain(struct domain *d,
 				struct device *dev)
 {
@@ -3022,6 +3053,53 @@ static void arm_smmu_iommu_xen_domain_teardown(struc=
t domain *d)
 	xfree(xen_domain);
 }
=20
+static int arm_smmu_attach_guest_config(struct domain *d, u32 sid,
+		struct iommu_guest_config *cfg)
+{
+	int ret =3D -EINVAL;
+	unsigned long flags;
+	struct arm_smmu_master *master;
+	struct arm_smmu_domain *smmu_domain;
+	struct arm_smmu_xen_domain *xen_domain =3D dom_iommu(d)->arch.priv;
+	struct iommu_domain *io_domain =3D arm_smmu_get_domain_by_sid(d, sid);
+
+	if (!io_domain)
+		return -ENODEV;
+
+	smmu_domain =3D to_smmu_domain(io_domain);
+
+	spin_lock(&xen_domain->lock);
+
+	switch (cfg->config) {
+	case ARM_SMMU_DOMAIN_ABORT:
+		smmu_domain->abort =3D true;
+		break;
+	case ARM_SMMU_DOMAIN_BYPASS:
+		smmu_domain->abort =3D false;
+		break;
+	case ARM_SMMU_DOMAIN_NESTED:
+		/* Enable Nested stage translation. */
+		smmu_domain->stage =3D ARM_SMMU_DOMAIN_NESTED;
+		smmu_domain->s1_cfg.s1ctxptr =3D cfg->s1ctxptr;
+		smmu_domain->s1_cfg.s1fmt =3D cfg->s1fmt;
+		smmu_domain->s1_cfg.s1cdmax =3D cfg->s1cdmax;
+		smmu_domain->abort =3D false;
+		break;
+	default:
+		goto out;
+	}
+
+	spin_lock_irqsave(&smmu_domain->devices_lock, flags);
+	list_for_each_entry(master, &smmu_domain->devices, domain_head)
+		arm_smmu_install_ste_for_dev(master);
+	spin_unlock_irqrestore(&smmu_domain->devices_lock, flags);
+
+	ret =3D 0;
+out:
+	spin_unlock(&xen_domain->lock);
+	return ret;
+}
+
 static const struct iommu_ops arm_smmu_iommu_ops =3D {
 	.page_sizes		=3D PAGE_SIZE_4K,
 	.init			=3D arm_smmu_iommu_xen_domain_init,
@@ -3034,6 +3112,7 @@ static const struct iommu_ops arm_smmu_iommu_ops =3D =
{
 	.unmap_page		=3D arm_iommu_unmap_page,
 	.dt_xlate		=3D arm_smmu_dt_xlate,
 	.add_device		=3D arm_smmu_add_device,
+	.attach_guest_config =3D arm_smmu_attach_guest_config
 };
=20
 static __init int arm_smmu_dt_init(struct dt_device_node *dev,
diff --git a/xen/drivers/passthrough/arm/smmu-v3.h b/xen/drivers/passthroug=
h/arm/smmu-v3.h
index fab4fd5a26..df3b7ec1b5 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.h
+++ b/xen/drivers/passthrough/arm/smmu-v3.h
@@ -398,6 +398,7 @@ enum arm_smmu_domain_stage {
 	ARM_SMMU_DOMAIN_S2,
 	ARM_SMMU_DOMAIN_NESTED,
 	ARM_SMMU_DOMAIN_BYPASS,
+	ARM_SMMU_DOMAIN_ABORT,
 };
=20
 /* Xen specific code. */
diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index 39ed4dc577..6d3636b18b 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -224,8 +224,11 @@ static int arm_vsmmu_handle_cfgi_ste(struct virt_smmu =
*smmu, uint64_t *cmdptr)
 {
     int ret;
     uint64_t ste[STRTAB_STE_DWORDS];
+    struct domain *d =3D smmu->d;
+    struct domain_iommu *hd =3D dom_iommu(d);
     struct arm_vsmmu_s1_trans_cfg s1_cfg =3D {0};
     uint32_t sid =3D smmu_cmd_get_sid(cmdptr[0]);
+    struct iommu_guest_config guest_cfg =3D {0};
=20
     ret =3D arm_vsmmu_find_ste(smmu, sid, ste);
     if ( ret )
@@ -235,6 +238,21 @@ static int arm_vsmmu_handle_cfgi_ste(struct virt_smmu =
*smmu, uint64_t *cmdptr)
     if ( ret )
         return (ret =3D=3D -EAGAIN ) ? 0 : ret;
=20
+    guest_cfg.s1ctxptr =3D s1_cfg.s1ctxptr;
+    guest_cfg.s1fmt =3D s1_cfg.s1fmt;
+    guest_cfg.s1cdmax =3D s1_cfg.s1cdmax;
+
+    if ( s1_cfg.bypassed )
+        guest_cfg.config =3D ARM_SMMU_DOMAIN_BYPASS;
+    else if ( s1_cfg.aborted )
+        guest_cfg.config =3D ARM_SMMU_DOMAIN_ABORT;
+    else
+        guest_cfg.config =3D ARM_SMMU_DOMAIN_NESTED;
+
+    ret =3D hd->platform_ops->attach_guest_config(d, sid, &guest_cfg);
+    if ( ret )
+        return ret;
+
     return 0;
 }
=20
diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
index 37c4a1dc82..9fdcf03630 100644
--- a/xen/include/xen/iommu.h
+++ b/xen/include/xen/iommu.h
@@ -311,6 +311,10 @@ static inline int iommu_add_dt_pci_sideband_ids(struct=
 pci_dev *pdev)
=20
 #endif /* HAS_DEVICE_TREE_DISCOVERY */
=20
+#if defined(CONFIG_HAS_PASSTHROUGH) || defined(CONFIG_ARM)
+#include <asm/iommu.h>
+#endif
+
 struct page_info;
=20
 /*
@@ -387,6 +391,11 @@ struct iommu_ops {
 #endif
     /* Inhibit all interrupt generation, to be used at shutdown. */
     void (*quiesce)(void);
+
+#ifdef CONFIG_ARM
+    int (*attach_guest_config)(struct domain *d, u32 sid,
+                               struct iommu_guest_config *cfg);
+#endif
 };
=20
 /*
@@ -407,10 +416,6 @@ extern int iommu_add_extra_reserved_device_memory(unsi=
gned long start,
 extern int iommu_get_extra_reserved_device_memory(iommu_grdm_t *func,
                                                   void *ctxt);
=20
-#ifdef CONFIG_HAS_PASSTHROUGH
-#include <asm/iommu.h>
-#endif
-
 #ifndef iommu_call
 # define iommu_call(ops, fn, args...) ((ops)->fn(args))
 # define iommu_vcall iommu_call
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259655.1553081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7T-0001u6-MH; Mon, 23 Mar 2026 22:51:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259655.1553081; Mon, 23 Mar 2026 22:51:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7T-0001rP-BR; Mon, 23 Mar 2026 22:51:35 +0000
Received: by outflank-mailman (input) for mailman id 1259655;
 Mon, 23 Mar 2026 22:51: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=P8gh=BX=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1w4o7S-0001IP-Bi
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:51:34 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazon11021140.outbound.protection.outlook.com
 [40.107.130.140]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d6779518-270a-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Mar 2026 23:51:32 +0100 (CET)
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB7653.eurprd03.prod.outlook.com (2603:10a6:20b:34b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:51:29 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22: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: d6779518-270a-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MNG0DYpsJpeo5vreegOauu5uEKgGwQzIFf2OAb27zz4f4w5b5EIi1Jed0+0mfMBr6Ajhk+uzLRnN38cggS4eh05vYYdU7Xc/Eu9TBjvrWNVRHJ3hwsHjjmZVahGnOfSddslBsFWmxvmcbIaKPOhfjJAlP/08pRjiR6uSd+/iVFI9hyJ84JlIlHWYT9yLMKRYc8MP/zmUQYtc7z/3U3WFx0IqoGTEYZNeTyqe2JmSODnYmjqCH+SVmrM50zZSUxnea653s6hIlcEeMM4Ru4qr/Eqbh2WBB0GO/G4X3ZfUx0YWonInvEd0pFcVAUGorUb9bzmo4gBJ+OqKahRnnb+3dQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=99Wu1RBHzZt/ZpsbMLK51koxBJTJ0OyMLOfeto3SXOE=;
 b=mfCnRQwJq5C1RCdsJt3kjTsAJv0XDV/2h4Me401pNPLgYsv59oAQ7T5KWERlJxyw4eRii7Kew2ze8YYAB4kbkiL44rEsEY1204UCT7jcW/50uYUO35851M0xh7tgYYJ2Y+Sekq/m+IIOcaEIaS8RdLrO+CCF/AKaOHMvYsmvTDYq3bBCqi8X4WyEv5C8LzyhNBgYA1wFb7bPhofBLWMRPK/p1gXjWEpBE9z5HACriwWS3eLXjjhZO/M7UL9vTbFh/d8HHiXx6KMg6SHsFnADx6ya+7LuvhpUpvaQdLx4XIScM2ka86TGqT+AhRle+bdEUUI/rm8qnDPPqAwnCzL6jg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=99Wu1RBHzZt/ZpsbMLK51koxBJTJ0OyMLOfeto3SXOE=;
 b=jzCM29LZz2mhFF8oHFR/6gODomdIa5xvaHzlBOIthw0i7TcWVYpulQQuD478jmKPHaefFBGsC942VYIHa7pt/Lvg60lh/3cSR2rGpCp6KOlB0agszTueQXE6/YL9yNbEpp6TKOa3G4daZaz02o7BX5KzPgti3h5+xUDK2gYVneypbd4BBrASHPqA2zqPUcTVrex/XjsaDG0/fatznZn2UlN4MZiL/DZ3eA9/1zdwcxsZrztGaK3bRnocMPAR2cKDNn1WjCvki7qlEFiz1eXhZJGXwfNlmAXNa1jkYn70c/GNdGtkngwDue5MITlfwfvm5PdEw7CR8lyhH3ycf2MuBw==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH v2 12/23] xen/arm: vsmmuv3: Add support for event queue and
 global error
Thread-Topic: [PATCH v2 12/23] xen/arm: vsmmuv3: Add support for event queue
 and global error
Thread-Index: AQHcuxeWgbP4hcgwQ0ahadVDpvCGvA==
Date: Mon, 23 Mar 2026 22:51:29 +0000
Message-ID:
 <6d1ae9343a2a0ad323845fd5c8d56ba6c4a57eef.1774305918.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB7653:EE_
x-ms-office365-filtering-correlation-id: f682da19-8e8b-4693-31aa-08de892eb88d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021|22082099003|18002099003|56012099003;
x-microsoft-antispam-message-info:
 3zq8093fVNibVd3hhjZCYffKH+xxTEtBCiElb1Uvo4oRkJvQy7jpbxmaS/j7QiMnL/7xEFM1xCyGU32BF9suLsl+9Ei7FAUPHoXZBdDlR9n3IVMzZ3eDYyhAFedzi7XEgcK05KoQFyS+DI4k6qOVDDYbX375x++ZEWArM0I+gAY81SfesbkIT3JqeqxNBbwAm+CeSx0cX/KbRcy/DhkLVR8l3+5iqIVg68K93KW5KBSzOEf4ia3K4oFizYJ3d1brUeT+GjaoMuCd4pIY+eTcc0baQWGF2QB9doXqVhpuIJ9gMFc8XJtCmvn757sPuHPVR/WFoEwiVWTBbrfHTf/5qqi2Q+qVUNf4VK4bLoJq/eHCQJa9hcLftn2D3sSjNDAupLO5uAMF38CTe7xA934z6Mupnk0nVr6/Ldued45niWnBg77rBn9P6x3h5Y8IfuRuhQLwV3/2A+nnkDs5gYvNo8caMi4p8AxJUTmdiO7R4c99+SjSo73xlYKMFnjqYPgDKDmitWnO/OHf8RrFSKWdqft/8BBFBFDvG3aa7mRAK1Ig51q6tDVoLVDEoeiXw7UD1/o47jSUvIu5v92osZ1PQw58xD8mFnKz6SkFtyZceECyYxd1Cog6g6/c7Wqog8ORCXMvdvRVhaCv5YFh9w/Dj8wzCdq4AoKHU5OG+ZMcgDYJcn7dencG6MzGzgROGKX+TkTSardQtDwo9rQIb1+fWA1fHNu4BwreGQO5g8xt1fTHpfd2BDCHMmi0ma87p6VqU6TEE5Hl/WMt/XHSa1G5XoWtb1MFKauKe+1JTy3AVFw=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?3Y4F0nsoDuJqaHIQxGbQbMV0RuZZYI9hGbBPNlE/3DiORxCDPZAu1YPJov?=
 =?iso-8859-1?Q?StIiJjU+6JijmSeEoqsnkiGL+w++pPqAIH7IdKViFbvQoGeE8k4auEDYYs?=
 =?iso-8859-1?Q?1DVia1fiN3AYCfY7IOrBYMvR1pD0c6jh3ELJWx9ovZ8n4AAaGIWQ0GK4iM?=
 =?iso-8859-1?Q?uoZcZoJIz9QvCm8C7S1dKUwAlN8lRVXAhJZ45D0Zy9mcGtftekFlxRF5Lv?=
 =?iso-8859-1?Q?TfpnizzlF4SMbENFUparI3exTEzzW+Jv2bumuKU2g8SCWW0hqeJ8LbFvqt?=
 =?iso-8859-1?Q?Ih7tvtt31QZ88mBmR1AQFW7pRwmiCHlpjbCZufkLyFFLFGBuDV3PtwpHfF?=
 =?iso-8859-1?Q?XkGJwcabHhBYZ7cu8eWdsvwMuM9PghEIn2xLUDo66/U08Fb/HD6co22PB2?=
 =?iso-8859-1?Q?N19GH6Q5HoZFdPhieiQdqhrEI2YNIQoW027SZI5sJ8CTl3zWEcFjd+ZWm5?=
 =?iso-8859-1?Q?EKzVCRkFvl2VrufYAvzVxailmuNE94QCrye2cBM+YfoQYhYATWWfTkvdKL?=
 =?iso-8859-1?Q?98Eg4BBZ6W2f2+1rxCA2DOx/7jSXH799i6kkGZTf477ankPRO4bpoHdecJ?=
 =?iso-8859-1?Q?zr68dfxB7My8xS5/kzC9hHPbVMl+rfsS3nKQSSGXVCYGD9NANT1OANOI7w?=
 =?iso-8859-1?Q?CaH5hp65jUV1qZtUBSfge5fxKDG6DTFNWzumytmKJpBYmnOsqWTgkvfFNE?=
 =?iso-8859-1?Q?UOrtfW+5Q9+jA8uhzieiGZc9sWVYERwJ7PSIPOpKTlGHg6vSTwzNYO7rib?=
 =?iso-8859-1?Q?BM5A1Mx3Exr+vmIAbB+2wiV2cZ5Y8TnhDaltYeLyBp35RbF4H05cE9R5dB?=
 =?iso-8859-1?Q?etSQLpRDMNWnf5bJlXRe40U+PD0xN8hBl7+4jgoCvPJWSZElYBqVmjqVxv?=
 =?iso-8859-1?Q?L7htHii2Zk5aBjpCp8MKyeBdfM2R1OrxTJ7/mWunTyoOsGp43Onpxtxhjd?=
 =?iso-8859-1?Q?Sdq8coldfOJrSpQIhjHz8+hNwFBliTuYLQuHRqmcfueRneX6jNqiSJY2NE?=
 =?iso-8859-1?Q?izNZFAkIMFd2l33QJQMN6xqTdeOPHMXLWNBhoJSAmDvTct7vc1nQdYhz42?=
 =?iso-8859-1?Q?kJ4LWiedscH5wu6IcZybek9G+CxJ8mGElNvaqZejNsgcMn/1akRUEx55W6?=
 =?iso-8859-1?Q?uQuVROB413hCtkkxEm7necbqCWQDeltfpVzu526acw/HFZgGtHhhLhB3Rf?=
 =?iso-8859-1?Q?a/vWkHZPFXsMiuLUHitpFX9NK+ctdyUqifZa7FBbRgDXfX30JyXuHDe+Uc?=
 =?iso-8859-1?Q?xYQ5E1ORonFmphz5LxOBWIZPWrvpx3t9Zi+BEhTT4GyvCHHeEHXuhvmqyg?=
 =?iso-8859-1?Q?xy1Ney2wVnvO8TyTroBGa9G11yaMeTbYhqDpTIEFh5MgESbbEVSc0ZqzyH?=
 =?iso-8859-1?Q?ATPyH1xLe1r7ozpnTqciP3Ud9KvyywErDLBKXtUrFGuymo+15tj9DXUklw?=
 =?iso-8859-1?Q?8MNPEwYzQEFRkdf1YmcJagwaqCGyZKZA4JQRPGB8ujA1O8PGGtOCpPEs63?=
 =?iso-8859-1?Q?5/wH0MQGplgY5lDufooJCM1sbYIJu2lN4k1rAF/A1eu71zbUMxUfFuy263?=
 =?iso-8859-1?Q?t1WCrfkq9cCGxEXvrREMwX9ZCiEh4loensQG3qKYHFDPPzc5VrtEjOVuoR?=
 =?iso-8859-1?Q?3lXhuMK6HeCEABMBeAvVd8yTElx7IlbxPpvYF/Kj0m7g+praruanMg61Yi?=
 =?iso-8859-1?Q?7tX3LX16uw91y50MpZxnEXMneZsgZmgkQhnA6xZ8reS051z/4znR+w0AY5?=
 =?iso-8859-1?Q?0x/78NOhVkeOwfmay3iK2mJ8tMnnjCJlm3wWoXSrD65ubR9Jqv5Rnzzp3j?=
 =?iso-8859-1?Q?qxuXaWkgZcHu6sGgiFudUkWg+FZUWB8=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f682da19-8e8b-4693-31aa-08de892eb88d
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:51:29.0337
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: RSAMZNb4QbCKgCWfFFaR7JmuI9ypN9EoZl3tHZ/xUBuO3RbI1DDK9eCCBrtKSc5cFUlbryGSj72emMZMUF7ohQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7653

From: Rahul Singh <rahul.singh@arm.com>

Event queue is used to send the events to guest when there is an events/
faults. Add support for event queue to send events to guest.

Global error in SMMUv3 hw will be updated in smmu_gerror and
smmu_gerrorn register. Add support for global error registers to send
global error to guest.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/drivers/passthrough/arm/smmu-v3.h  |  20 +++
 xen/drivers/passthrough/arm/vsmmu-v3.c | 163 ++++++++++++++++++++++++-
 xen/include/public/arch-arm.h          |   5 +-
 3 files changed, 183 insertions(+), 5 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.h b/xen/drivers/passthroug=
h/arm/smmu-v3.h
index df3b7ec1b5..8d3e1877aa 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.h
+++ b/xen/drivers/passthrough/arm/smmu-v3.h
@@ -354,6 +354,26 @@
=20
 #define EVTQ_0_ID			GENMASK_ULL(7, 0)
=20
+#define EVT_ID_BAD_STREAMID		0x02
+#define EVT_ID_BAD_STE		    	0x04
+#define EVT_ID_TRANSLATION_FAULT	0x10
+#define EVT_ID_ADDR_SIZE_FAULT		0x11
+#define EVT_ID_ACCESS_FAULT		0x12
+#define EVT_ID_PERMISSION_FAULT		0x13
+
+#define EVTQ_0_SSV			(1UL << 11)
+#define EVTQ_0_SSID			GENMASK_ULL(31, 12)
+#define EVTQ_0_SID			GENMASK_ULL(63, 32)
+#define EVTQ_1_STAG			GENMASK_ULL(15, 0)
+#define EVTQ_1_STALL			(1UL << 31)
+#define EVTQ_1_PnU			(1UL << 33)
+#define EVTQ_1_InD			(1UL << 34)
+#define EVTQ_1_RnW			(1UL << 35)
+#define EVTQ_1_S2			(1UL << 39)
+#define EVTQ_1_CLASS			GENMASK_ULL(41, 40)
+#define EVTQ_1_TT_READ			(1UL << 44)
+#define EVTQ_2_ADDR			GENMASK_ULL(63, 0)
+#define EVTQ_3_IPA			GENMASK_ULL(51, 12)
 /* PRI queue */
 #define PRIQ_ENT_SZ_SHIFT		4
 #define PRIQ_ENT_DWORDS			((1 << PRIQ_ENT_SZ_SHIFT) >> 3)
diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index 6d3636b18b..7a6c18df53 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -44,6 +44,7 @@ extern const struct viommu_desc __read_mostly *cur_viommu=
;
=20
 /* Helper Macros */
 #define smmu_get_cmdq_enabled(x)    FIELD_GET(CR0_CMDQEN, x)
+#define smmu_get_evtq_enabled(x)    FIELD_GET(CR0_EVTQEN, x)
 #define smmu_cmd_get_command(x)     FIELD_GET(CMDQ_0_OP, x)
 #define smmu_cmd_get_sid(x)         FIELD_GET(CMDQ_PREFETCH_0_SID, x)
 #define smmu_get_ste_s1cdmax(x)     FIELD_GET(STRTAB_STE_0_S1CDMAX, x)
@@ -52,6 +53,35 @@ extern const struct viommu_desc __read_mostly *cur_viomm=
u;
 #define smmu_get_ste_s1ctxptr(x)    FIELD_PREP(STRTAB_STE_0_S1CTXPTR_MASK,=
 \
                                     FIELD_GET(STRTAB_STE_0_S1CTXPTR_MASK, =
x))
=20
+/* event queue entry */
+struct arm_smmu_evtq_ent {
+    /* Common fields */
+    uint8_t     opcode;
+    uint32_t    sid;
+
+    /* Event-specific fields */
+    union {
+        struct {
+            uint32_t ssid;
+            bool ssv;
+        } c_bad_ste_streamid;
+
+        struct {
+            bool stall;
+            uint16_t stag;
+            uint32_t ssid;
+            bool ssv;
+            bool s2;
+            uint64_t addr;
+            bool rnw;
+            bool pnu;
+            bool ind;
+            uint8_t class;
+            uint64_t addr2;
+        } f_translation;
+    };
+};
+
 /* stage-1 translation configuration */
 struct arm_vsmmu_s1_trans_cfg {
     paddr_t s1ctxptr;
@@ -82,6 +112,7 @@ struct virt_smmu {
     uint32_t    strtab_base_cfg;
     uint64_t    strtab_base;
     uint32_t    irq_ctrl;
+    uint32_t    virq;
     uint64_t    gerror_irq_cfg0;
     uint64_t    evtq_irq_cfg0;
     struct      arm_vsmmu_queue evtq, cmdq;
@@ -89,6 +120,12 @@ struct virt_smmu {
 };
=20
 /* Queue manipulation functions */
+static bool queue_full(struct arm_vsmmu_queue *q)
+{
+    return Q_IDX(q, q->prod) =3D=3D Q_IDX(q, q->cons) &&
+           Q_WRP(q, q->prod) !=3D Q_WRP(q, q->cons);
+}
+
 static bool queue_empty(struct arm_vsmmu_queue *q)
 {
     return Q_IDX(q, q->prod) =3D=3D Q_IDX(q, q->cons) &&
@@ -101,11 +138,105 @@ static void queue_inc_cons(struct arm_vsmmu_queue *q=
)
     q->cons =3D Q_OVF(q->cons) | Q_WRP(q, cons) | Q_IDX(q, cons);
 }
=20
+static void queue_inc_prod(struct arm_vsmmu_queue *q)
+{
+    u32 prod =3D (Q_WRP(q, q->prod) | Q_IDX(q, q->prod)) + 1;
+    q->prod =3D Q_OVF(q->prod) | Q_WRP(q, prod) | Q_IDX(q, prod);
+}
+
 static void dump_smmu_command(uint64_t *command)
 {
     gdprintk(XENLOG_ERR, "cmd 0x%02llx: %016lx %016lx\n",
              smmu_cmd_get_command(command[0]), command[0], command[1]);
 }
+
+static void arm_vsmmu_inject_irq(struct virt_smmu *smmu, bool is_gerror,
+                                uint32_t gerror_err)
+{
+    uint32_t new_gerrors, pending;
+
+    if ( is_gerror )
+    {
+        /* trigger global error irq to guest */
+        pending =3D smmu->gerror ^ smmu->gerrorn;
+        new_gerrors =3D ~pending & gerror_err;
+
+        /* only toggle non pending errors */
+        if (!new_gerrors)
+            return;
+
+        smmu->gerror ^=3D new_gerrors;
+    }
+
+    vgic_inject_irq(smmu->d, NULL, smmu->virq, true);
+}
+
+static int arm_vsmmu_write_evtq(struct virt_smmu *smmu, uint64_t *evt)
+{
+    struct arm_vsmmu_queue *q =3D &smmu->evtq;
+    struct domain *d =3D smmu->d;
+    paddr_t addr;
+    int ret;
+
+    if ( !smmu_get_evtq_enabled(smmu->cr[0]) )
+        return -EINVAL;
+
+    if ( queue_full(q) )
+        return -EINVAL;
+
+    addr =3D Q_PROD_ENT(q);
+    ret =3D access_guest_memory_by_gpa(d, addr, evt,
+                                     sizeof(*evt) * EVTQ_ENT_DWORDS, true)=
;
+    if ( ret )
+        return ret;
+
+    queue_inc_prod(q);
+
+    /* trigger eventq irq to guest */
+    if ( !queue_empty(q) )
+        arm_vsmmu_inject_irq(smmu, false, 0);
+
+    return 0;
+}
+
+void arm_vsmmu_send_event(struct virt_smmu *smmu,
+                          struct arm_smmu_evtq_ent *ent)
+{
+    uint64_t evt[EVTQ_ENT_DWORDS];
+    int ret;
+
+    memset(evt, 0, 1 << EVTQ_ENT_SZ_SHIFT);
+
+    if ( !smmu_get_evtq_enabled(smmu->cr[0]) )
+        return;
+
+    evt[0] |=3D FIELD_PREP(EVTQ_0_ID, ent->opcode);
+    evt[0] |=3D FIELD_PREP(EVTQ_0_SID, ent->sid);
+
+    switch (ent->opcode)
+    {
+    case EVT_ID_BAD_STREAMID:
+    case EVT_ID_BAD_STE:
+        evt[0] |=3D FIELD_PREP(EVTQ_0_SSID, ent->c_bad_ste_streamid.ssid);
+        evt[0] |=3D FIELD_PREP(EVTQ_0_SSV, ent->c_bad_ste_streamid.ssv);
+        break;
+    case EVT_ID_TRANSLATION_FAULT:
+    case EVT_ID_ADDR_SIZE_FAULT:
+    case EVT_ID_ACCESS_FAULT:
+    case EVT_ID_PERMISSION_FAULT:
+        break;
+    default:
+        gdprintk(XENLOG_WARNING, "vSMMUv3: event opcode is bad\n");
+        break;
+    }
+
+    ret =3D arm_vsmmu_write_evtq(smmu, evt);
+    if ( ret )
+        arm_vsmmu_inject_irq(smmu, true, GERROR_EVTQ_ABT_ERR);
+
+    return;
+}
+
 static int arm_vsmmu_find_ste(struct virt_smmu *smmu, uint32_t sid,
                               uint64_t *ste)
 {
@@ -114,11 +245,22 @@ static int arm_vsmmu_find_ste(struct virt_smmu *smmu,=
 uint32_t sid,
     uint32_t log2size;
     int strtab_size_shift;
     int ret;
+    struct arm_smmu_evtq_ent ent =3D {
+        .sid =3D sid,
+        .c_bad_ste_streamid =3D {
+            .ssid =3D 0,
+            .ssv =3D false,
+        },
+    };
=20
     log2size =3D FIELD_GET(STRTAB_BASE_CFG_LOG2SIZE, smmu->strtab_base_cfg=
);
=20
     if ( sid >=3D (1 << MIN(log2size, SMMU_IDR1_SIDSIZE)) )
+    {
+        ent.opcode =3D EVT_ID_BAD_STE;
+        arm_vsmmu_send_event(smmu, &ent);
         return -EINVAL;
+    }
=20
     if ( smmu->features & STRTAB_BASE_CFG_FMT_2LVL )
     {
@@ -156,6 +298,8 @@ static int arm_vsmmu_find_ste(struct virt_smmu *smmu, u=
int32_t sid,
         {
             gdprintk(XENLOG_ERR, "idx=3D%d > max_l2_ste=3D%d\n",
                      idx, max_l2_ste);
+            ent.opcode =3D EVT_ID_BAD_STREAMID;
+            arm_vsmmu_send_event(smmu, &ent);
             return -EINVAL;
         }
         addr =3D l2ptr + idx * sizeof(*ste) * STRTAB_STE_DWORDS;
@@ -183,6 +327,14 @@ static int arm_vsmmu_decode_ste(struct virt_smmu *smmu=
, uint32_t sid,
                                 uint64_t *ste)
 {
     uint64_t val =3D ste[0];
+    struct arm_smmu_evtq_ent ent =3D {
+        .opcode =3D EVT_ID_BAD_STE,
+        .sid =3D sid,
+        .c_bad_ste_streamid =3D {
+            .ssid =3D 0,
+            .ssv =3D false,
+        },
+    };
=20
     if ( !(val & STRTAB_STE_0_V) )
         return -EAGAIN;
@@ -217,6 +369,7 @@ static int arm_vsmmu_decode_ste(struct virt_smmu *smmu,=
 uint32_t sid,
     return 0;
=20
 bad_ste:
+    arm_vsmmu_send_event(smmu, &ent);
     return -EINVAL;
 }
=20
@@ -577,7 +730,8 @@ static const struct mmio_handler_ops vsmmuv3_mmio_handl=
er =3D {
     .write =3D vsmmuv3_mmio_write,
 };
=20
-static int vsmmuv3_init_single(struct domain *d, paddr_t addr, paddr_t siz=
e)
+static int vsmmuv3_init_single(struct domain *d, paddr_t addr,
+                               paddr_t size, uint32_t virq)
 {
     struct virt_smmu *smmu;
=20
@@ -586,6 +740,7 @@ static int vsmmuv3_init_single(struct domain *d, paddr_=
t addr, paddr_t size)
         return -ENOMEM;
=20
     smmu->d =3D d;
+    smmu->virq =3D virq;
     smmu->cmdq.q_base =3D FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_CMDQS);
     smmu->cmdq.ent_size =3D CMDQ_ENT_DWORDS * DWORDS_BYTES;
     smmu->evtq.q_base =3D FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_EVTQS);
@@ -612,14 +767,16 @@ int domain_vsmmuv3_init(struct domain *d)
=20
         list_for_each_entry(hw_iommu, &host_iommu_list, entry)
         {
-            ret =3D vsmmuv3_init_single(d, hw_iommu->addr, hw_iommu->size)=
;
+            ret =3D vsmmuv3_init_single(d, hw_iommu->addr, hw_iommu->size,
+                                      hw_iommu->irq);
             if ( ret )
                 return ret;
         }
     }
     else
     {
-        ret =3D vsmmuv3_init_single(d, GUEST_VSMMUV3_BASE, GUEST_VSMMUV3_S=
IZE);
+        ret =3D vsmmuv3_init_single(d, GUEST_VSMMUV3_BASE, GUEST_VSMMUV3_S=
IZE,
+                                  GUEST_VSMMU_SPI);
         if ( ret )
             return ret;
     }
diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
index 9371c163c4..c7fd2ee132 100644
--- a/xen/include/public/arch-arm.h
+++ b/xen/include/public/arch-arm.h
@@ -526,9 +526,10 @@ typedef uint64_t xen_callback_t;
 #define GUEST_EVTCHN_PPI        31
=20
 #define GUEST_VPL011_SPI        32
+#define GUEST_VSMMU_SPI         33
=20
-#define GUEST_VIRTIO_MMIO_SPI_FIRST   33
-#define GUEST_VIRTIO_MMIO_SPI_LAST    43
+#define GUEST_VIRTIO_MMIO_SPI_FIRST   34
+#define GUEST_VIRTIO_MMIO_SPI_LAST    44
=20
 /*
  * SGI is the preferred delivery mechanism of FF-A pending notifications o=
r
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259657.1553092 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7W-0002WD-UU; Mon, 23 Mar 2026 22:51:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259657.1553092; Mon, 23 Mar 2026 22:51:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7W-0002Uw-Jy; Mon, 23 Mar 2026 22:51:38 +0000
Received: by outflank-mailman (input) for mailman id 1259657;
 Mon, 23 Mar 2026 22:51: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=P8gh=BX=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1w4o7U-0007Yi-J6
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:51:36 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazon11021085.outbound.protection.outlook.com [52.101.70.85])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d7521934-270a-11f1-b166-2bf370ae4941;
 Mon, 23 Mar 2026 23:51:35 +0100 (CET)
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB9699.eurprd03.prod.outlook.com (2603:10a6:20b:61d::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:51:30 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22: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: d7521934-270a-11f1-b166-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nrEKLUc2OQ4INi0pOfdmk9u8luB2kslqgf06T4zPh9OjtV9fkvUZBltfVuWqwq71WojPJIxI7hJxN1gyk5fUmjSDHYE74xv5gt2wJhJCzoUWqH+LEYWLN2t1nIRlMiDvgNu5ROgWvmUA2ajImBOsIrZq+pwpradg1AWkrydSCiCcgrnlNwFRfXLxB+JZTFZnUeV5CqGQz1mzqiL8RuotSIROxRKgM/7uONm9GwaiNJO3nWjq/p/dMnYCI6BLR9iHqyCBFFKRpAzbdCjtqD2mNpZnJ1O/U3OGygZQ9WR1QsEUfKqmTnD9RdCKYhcaZtCdfpK+abIQ2U+9oZGEqGs4Fw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7caqtP6kUCQ2bX8Z5xVRfCBcUDpyNyH303mwvuLmP5Q=;
 b=HB1RdBnRJ+9v5dKhK9QKpr2ehOcVMs3q0VItJcn43nlFCZ6lDHNHG3bCjyMbMJU18Um+hPIKhxnViNmUzurh/0M11TfIO7o65+sVdOXOj9NNsex6tkHcbg+At1t0E1227CDjHxX/MTawkPop1IzKMoWEfZdGuNASIQ4+nYYm/WstFUCBy9LEkUFrhoQl7P0lD813K0jH3fypK6nzrH5ej+uB8LBK9NzUdECbcsaiFpRumadB8CGUKc4bgAINNtF5eeNFozA0aCI6UpMbJbu7fKM6l0eLhA42fUoDJkppUvmgbGuQu4nTd02UwYfzVJIFly5VxvbYVSmpFSzmJSDgVQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7caqtP6kUCQ2bX8Z5xVRfCBcUDpyNyH303mwvuLmP5Q=;
 b=esr0QuIzBGKtaRXX6JIF+jkgBpFPxuOb+JvmV9uOCSmZ3dDypA/+b8YA+0TnA5MdnXP/ImMnOmKRBaGf8W+T7DrMO2UOsJuGEj+xlM29iBUvZbQbGKncwkFV+qGVjEtVZPLne3T4FgZgsOhGz783fV0iJZ5n8hMfFN3agqW/uD+ChBD+dK/jQD+oxzkdawSn0Y87boCvZWb3UFvp51EU6bx3dClOT8TZQgHLNzXPgBeZCVMdTxUOt/mSSV1azvutln4g/tkfK4EhQ/ZQrAuAl/1wVd5+YTDgJIBFTl1UX4mIfulRuI+fF9UwwcY/d0GvRwVnYFsli/CvQjxlafDclQ==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH v2 13/23] xen/arm: vsmmuv3: Add "iommus" property node for
 dom0 devices
Thread-Topic: [PATCH v2 13/23] xen/arm: vsmmuv3: Add "iommus" property node
 for dom0 devices
Thread-Index: AQHcuxeWua+c91zSH0GQGVxi1fbMlA==
Date: Mon, 23 Mar 2026 22:51:29 +0000
Message-ID:
 <299005b895f1c5fc5b9e8ee009bf9f41346ec523.1774305918.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB9699:EE_
x-ms-office365-filtering-correlation-id: cedd1287-475b-4b97-96ac-08de892eb913
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021|22082099003|56012099003|18002099003;
x-microsoft-antispam-message-info:
 q15C2oJsQIodrPORmJQ5nguh5datFwRgW1fONHzUUsDDNA2HFmGxMyC9H6sdKqDwZ1VFJS0YwbhXBznqLO4kfJh4j+oFw7UVmTHkXw54Y9ebYk+rbpttGkZ1lAN3SRhB8DWNHDlhzWhjQB2lJVVOdSuTSi5tyEn0SIib0bwnPLeyYz2PP48hHZoTLLHJZp4kPrFU0UjRV2MBjINBiJoSJeRPVpCH/pSPC4pGhG5xfHl0iC6Shk2g/QZydepvjyKLE94hVW+J5EyoAzL7N3PMp9ZiGKVqri8PVH/hECQ5D6Xy3dVvUDEwrRJPZYTmeYuYvIGD9ifbHK7Y5mNLHJBAjECX+jTUw3/6jVx1aFQN9o8/CP5X2aAItlqUoTYNhg8DiR0UFNyxY/9Jh6ydzzX3to4++veJh0KKAKliSM0/gBfC/IVwe8MRhfbXd4hkq6ZJgQ70oItBtMYfK7NZahUwqATEb0MYE0dU0c84+6FuzoLfo3PPEAIIBt09+rV1CIfhBHk7utbkfxwB9vRRRZQeAOQQI2Q/z9f6iM47vgY4o/gz45daljrq0apWLJCFfzhEMah74jtq+taIZuDyY4m1t1RFVCzNBdmjg5Bq+WuhPrEag3+q+MdkBi+4nQg7TkVawIwBujZPyVFi0ckn8y5yZw4yJiWGLDqYbL/yAZcQ/MyKqAqKp5w4MkLcx5h4uo6MMjK3r6IfhBCDH4i0+Pc5nghT8wdArjxXgJ5mMvOsxCR9ijAIxBUEXcvvtiJ2AQXJGS7QaCGfeZuSr2TiFwSWv7QiulHLgQaNSm48j8OokI8=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?ToEJeZ0kutJILjgs2/C/H5bRt6/KmPHoMSRlEEW/sK2YTcivp7JtiZXCY5?=
 =?iso-8859-1?Q?9+/zDNC+6ZDymUdIp6gUvrvyECSRbm7XxpCWKqoQkfGLkaPpii+om7TOjV?=
 =?iso-8859-1?Q?LC1RejJSVDnxIUrXZ3ws8zMhY9asvc58mwpfLZ4Yso/rVTnKL1niEhk4tf?=
 =?iso-8859-1?Q?vJXhPbbeypAReWEGpQGTRNOt56rJqbcuK0GEwBNhQYJ+UP3S1JDBDCeZ3D?=
 =?iso-8859-1?Q?QILAP87VF/SN8T4/EvppF7ASmx+Dci2t/uMqUaje/pJlLaNDoj/c/xHBOA?=
 =?iso-8859-1?Q?nvPVO1WAhHOzOYBBAIEbSl4Dig/HSD3ySNFmr4BJ5P5uKWo8iwtCILHtEJ?=
 =?iso-8859-1?Q?JqUELenc0opzDCX0p1ROc1XUOfnEsEbrFRBcWiZdR9xZbE6Dh1oxJDhFY5?=
 =?iso-8859-1?Q?QlR2c33JxBfh8nhBbnD57rbmBoxJAejKrIC+HO11P4k5Ae3tFS+z6Hi7ie?=
 =?iso-8859-1?Q?FbTH3hWWDL9JwHBMbcLoLVkYMSHHqq8YmzvuFlgjONcucqMpqTLVlGNRNg?=
 =?iso-8859-1?Q?TZlZryNKGt2XrSWs7RzLdEoDDy7GcKhYz7sh1oz6tidfpmrJSwG2oR71o9?=
 =?iso-8859-1?Q?bapLMy6I4Qz25aI3ScgNi0Lwn0Yv2LVcvy9vjH6V38zVHfQr7OqMl3h0Mg?=
 =?iso-8859-1?Q?4CAdu05eTsWTRFxaY1s2LnheoEmHx98XWKkSGlhGMV38YUjq5HvexnLtgS?=
 =?iso-8859-1?Q?32UqsDZ3NyMwAMbtIHWrGOIIzCc/KuKyg8KMk/w9TsMUvg9eHLZAwStWs+?=
 =?iso-8859-1?Q?OHDRdHWs3RjEIu9n1bvhTIjDHmSMP1oA7ra7lTD7o6/v6Von9afAktTezB?=
 =?iso-8859-1?Q?a+GrB4g3Cam72wnrm012jTmH8UfnYgd/v/QvnRjIus94PpSCYckzYEQLPc?=
 =?iso-8859-1?Q?cqDaPfvbfgkuF1aQFl76UK/mslBgdn32yiCTnViSEiLqPJ71XkFA1bG4/g?=
 =?iso-8859-1?Q?Vr8Dwg9Q31Mcf6uFQJF5kpxzr4lbPKgFAUXwt1SH5k30Kms6x+dbG/3MEB?=
 =?iso-8859-1?Q?3M6ey8sVjjQ8B9nKrPVO3Ahq7d8ILdoE1B85YQnpztIj9QlGlTgW0MwnK4?=
 =?iso-8859-1?Q?ga18po9xk0G4Gs7HIRKTrHVxOS3B0YaElVtA9HjYfroCrJhZEeCgw0XnFo?=
 =?iso-8859-1?Q?S4F56VsKDIUarPLNsbcUtlePXJl+1EllG5XFzftv3hkwvuGy1Yp7zPkgf2?=
 =?iso-8859-1?Q?+6iVM0WkU8pwMM/kGw9lqGHRLNGZoD9wYNwO/QX2Gk0MRa4/yWGpCq5tTb?=
 =?iso-8859-1?Q?CaFX03/foqDlsu91SHP+6rC5mcM3hLOhwz+tnp3feZHW1DEn8QP+Qam/fn?=
 =?iso-8859-1?Q?4SdSiL/L/xvj4O2VFlgrtP6xtWjc6goAWBcLN3dJzw/rbQeub2rhT6McZm?=
 =?iso-8859-1?Q?t03hyKC8x030Hl+nEe8CdICKobNPIBqkj3k8eAL9Z27TTJ9e5jrMNFnPID?=
 =?iso-8859-1?Q?48hPU19WEJkji3aFzSGDvIXjG5kZk8xAvPKyrc3M0By1NkWFxSgA7tD0oN?=
 =?iso-8859-1?Q?HSuUJEFkmPjuAqk/ERk3R04wYo7o5+93/K4A7CJpEDfGsS/AYApFS6l+OV?=
 =?iso-8859-1?Q?iYcVdjFSrNHToPFOm5pYwofmI5D7Ijn5zy63WmXSlsu4RrbMcuix7bUSkD?=
 =?iso-8859-1?Q?J9eiYTCvpnSRr4nt0gBt3922Resllab1c6QzyYdZtfeNolwS35SS48wmqJ?=
 =?iso-8859-1?Q?oy4auR7zKL2wU9XLVennd2OyjjksZZV7xD2HETawkCrXGMX2ODgTXA3mYm?=
 =?iso-8859-1?Q?bg0rJuLGkYAfvTS9P5E3R0bNMwS+lr4qEBzOF3V9Zp17Tr8o/4ROOMNxj5?=
 =?iso-8859-1?Q?cu6KOacOCzbMwl92dJcoZkHEBeCxXuA=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cedd1287-475b-4b97-96ac-08de892eb913
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:51:29.9433
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: v4RKQVrpvmZj9fxhYnvqjyMhaRijbKvNVSPmkTanwnXoOIPyrd/tmK+dlFGHgyacFNPeKSy7kzvAZvkrTV96Gw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9699

From: Rahul Singh <rahul.singh@arm.com>

"iommus" property will be added for dom0 devices to virtual
IOMMU node to enable the dom0 linux kernel to configure the IOMMU

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/arch/arm/domain_build.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index a51563ee3d..30a4f1fd09 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -538,9 +538,12 @@ static int __init write_properties(struct domain *d, s=
truct kernel_info *kinfo,
             continue;
         }
=20
-        if ( iommu_node )
+        /*
+         * Expose IOMMU specific properties to hwdom when vIOMMU is
+         * enabled.
+         */
+        if ( iommu_node && !is_viommu_enabled() )
         {
-            /* Don't expose IOMMU specific properties to hwdom */
             if ( dt_property_name_is_equal(prop, "iommus") )
                 continue;
=20
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259662.1553099 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7Y-0002cJ-1i; Mon, 23 Mar 2026 22:51:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259662.1553099; Mon, 23 Mar 2026 22:51:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7X-0002Zt-B6; Mon, 23 Mar 2026 22:51:39 +0000
Received: by outflank-mailman (input) for mailman id 1259662;
 Mon, 23 Mar 2026 22:51: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=P8gh=BX=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1w4o7V-0007Yi-JJ
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:51:37 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazon11021085.outbound.protection.outlook.com [52.101.70.85])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d8bbe2bd-270a-11f1-b166-2bf370ae4941;
 Mon, 23 Mar 2026 23:51:36 +0100 (CET)
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB9699.eurprd03.prod.outlook.com (2603:10a6:20b:61d::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:51:31 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22:51: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: d8bbe2bd-270a-11f1-b166-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nXMPtxyhKlbH1Uc3xsZWI8Xji5fsaYVovgt1iss/YuRhZIBydIwChlaeOWT28yV6lx1un34UzaXqLOfkIig6uJfh+ZcP3TIlgpmPFBS85ZhqYVQz3sCrKyH53lwjOdyPK/mjRY9qNZR5NstriFJrVcqFT/CH3klfVlo3hsZgfYqlLD5WGw1Ava/afdnXyBx5x4oDWNhkGzEGQTYvvAqln7IUGFXmKJQPffE4SuuNQi9FIVg6vMPfWt8Ok+CbPO9GdDWuCf5lpyc7aGllM0D5OhGPEh7ZM/FLIKP7wWcgGoGOCbLidEu63/Xg8LMpYFrEs6H+LOhC1jalrwwI3wjE9A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kO9PYUtKOX8lJokW8oBzBREFFpjQfyQhUx0oRWXCi0s=;
 b=KIFa1DLfHw4mnGxaHisZNiMb2pimdnCwdJm/X/3zKmAaKYq9as+EBkkxiaxuECnRJKJfDTcTCGUuE6eEGpk6OlOkw3Z/kiNO7yj8FFn8WbdNXsKY43CULhcJXyICAJlKgjZ33qOtwri4G3L8f7EGUxyCR2mNc35jMNGv0BiaKJQigdS7yjkzXFpZkuVG/ospygbJ+nRYnlFMdIm/0zvT9I2WZDpoiG1c4vX+b+htKFrLb/aHDsXW0GkoOoPHMhqli75Wq9cY4EixyiV7cRNkcRWTOy0n4GeBvo+5yeCOkAVGFTVZ3ohXwUIRoRxaE0107rBr8ed0NbQykJgEOdsUwA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kO9PYUtKOX8lJokW8oBzBREFFpjQfyQhUx0oRWXCi0s=;
 b=WVgGum3eeZiiUzukZlGhdUxUN5KVhnEolPHENqIYUmOaftHBEEiXsUnwF+dTjid4jmnh/aZBn3RLDY9I5qtXCCriput4JyVP83U7c6qwRWZVrHAyhrSnorZOmtZVEJJtAwlXX1LpkATpGUK2bzsBn8alwGfp2MVgSkYdiOSnHXw8DpsYgGmiPb+mzseZbiixEWVSvDZmYzAWR/XLWR7zifJFPo9RlpmrjeteHoK7e47TBMQrmu+pRjmCXeju595PKQng6R86FElb3Uqu68IarbCMDcczI65FY1qLU+oAUOfSY9crmOlcHNzcYPAY8FGQqoBX+ENn9FcMNzAwvAjujA==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH v2 14/23] xen/arm: vIOMMU: IOMMU device tree node for dom0
Thread-Topic: [PATCH v2 14/23] xen/arm: vIOMMU: IOMMU device tree node for
 dom0
Thread-Index: AQHcuxeXC624ZoldckuU0V7x0Et1dw==
Date: Mon, 23 Mar 2026 22:51:31 +0000
Message-ID:
 <4e8d67c8b643145fe05b978f8c765e52550276e4.1774305918.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB9699:EE_
x-ms-office365-filtering-correlation-id: 2f8f6f82-a7a3-406d-41cc-08de892eb9e7
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021|22082099003|56012099003|18002099003;
x-microsoft-antispam-message-info:
 W1wEeKG/cq2JjagtaUtQgDSqWf/KQGz/FHNXO0GgSUS7riCIPHdrco/dP8kKM8sTCIHjETsf8CGC9PFfkCBJjiADqJb+c7YgrMgMGenXqRZqWLZu1+5GJo6LFHqfTO3FB8g7B5P0eDIf1svJ/Qx01c7dejdjcfMNFeMSpZwXZ2Cx6gauBbjUjb6IVcexMYGTCowf/MWkaXvRksX+RHijhMP9rIfEEKUAmQqDeuyKAekp2TH2Mq8o0Pfm8N4WPEvpmj02va4K7Piqhjnd18/b+qvT4kRhGmn1zcxg7vhgBAcIkcoYijtPlX5Ao5pChRDs23cB3J7FxakVBP7PEw8g7yUxLkwN3NElWl8i7irD84K+gudWQAExbjt0Hl8Z21tJX+lCq3/jzWNOhtneDDRzWj+PBqu7UjvjfH403DRd0QXo5MhouVUBgU2oJ2YN5PmbV7AIhEFOrQwIQCef9nCaxbRlmOCRxo7hcEzHvzKcNVCCCi2djbipDuLp1QB39C0Qj+fhKlNDbHozaDa0CvWxLo+ygTCEmCAo+MO/YvS2dUVkaHSiXKxry+IT/3iNRnjKJptg/UQSpo+9/ORFKRbqAwgpxz0TRQsCYznNY7F693ObMo/tMys3pkdVYxD97kRGQoj+eckKPVBTNyP8G9SRLsCh75uaMIy+iYWft9oCrJpN1ULu1k05I+X8oV9ZQqcWCYdgyjMMuGVM1neymt9ASl7XHqzHj6H+JpMUDseUVGp/9tKTGSOe2fLyvmtzU1aN/NYa/wqRTZKV/33xu9PcLnUVAwT/6wp/7kucDrlyktA=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?UQTkLi9tQsUNsbDp7eacQqcaHjoRSBd746KBq02mn5e44iC+LcpcYH4Nyu?=
 =?iso-8859-1?Q?7E/X0g/gmwiQXbr+IHyQ+AWPCKJeZ8OMZBQOnzUJy9GLHBjFqnALLL+s6C?=
 =?iso-8859-1?Q?iGQEOmZ6kimCMrLB01GiuFEV9LVMbhUEhETxnafJVXfcBMlDI9291jYKpQ?=
 =?iso-8859-1?Q?4XzkBwXU54WQSDr8WUl0BJCaP1gTMqdEGMNBP6X0RR12nxS93xQdFAgQ10?=
 =?iso-8859-1?Q?JMOj/sr/YaZcz8qUD0rSV6bkW9/oNiOm/rqnWdq9eHKMntvbtUFOUto58L?=
 =?iso-8859-1?Q?rZafbf37hPn/v2sXqbo9/yrGz7dVtrIOO0TE/HAeolQdMpicmeaOTQubuP?=
 =?iso-8859-1?Q?/XbAGk1U/YDMVrunDV4maAb9nY0OHzJlQOgZZLeZQTgZnZuJBXkdGF0km7?=
 =?iso-8859-1?Q?WK+2dbPl5foDCaLf1pus0vVTKixNU1vg1o0LbhbXwW1aQwAiss9xgC26xh?=
 =?iso-8859-1?Q?cMQs8O0sgYMaepBhdA7sNx+npnLf5BUuA/wQzx6IWzNnZFjUV57ZRX9xHQ?=
 =?iso-8859-1?Q?j451GNO/tJGnOUdb7314D3uH2l4yB/ArVAZIuIUEIGxvbvQEyr9ak4Xki6?=
 =?iso-8859-1?Q?50YL70JW2OGHRb6vqXE8syx9CfJle/AP14oiK5sTkYjTgBO4VgKypyUCcZ?=
 =?iso-8859-1?Q?xETHYQJ/FjdrA4s/eFDXtMRdOaONl2RBuS0DRG+W/KRT93It630KKJxSkg?=
 =?iso-8859-1?Q?lU/IYoKUqBecGikv/JEkPqttK59egHNjb/BmvIiiSWLw0Jwn4kDWf3hwdM?=
 =?iso-8859-1?Q?eaqa0jJAF+hbDg/FJbDzGVwtlx6Ers9O4yh0JDJ0jiSSmwG3JyBvc4YzRF?=
 =?iso-8859-1?Q?fJNZPPEB+g37zWRl6HwFBlqfzYdWIxB+k0N+3yGGwTb/Kdynl/S6E0vNFk?=
 =?iso-8859-1?Q?RIUbTHj2Ivgosr1zYxtJOJJyendqdDGhKGjk8yVPGc3aDj5fuEtAxUKQA5?=
 =?iso-8859-1?Q?bMPwwU4IlAanavBGem9ewxPCjj4c3zRUtP76mCrr3KaSyjYoe/QboQtCRs?=
 =?iso-8859-1?Q?O0eWQSz29m25O9z6ArSNvkjpfNyfgKbGLQbGmEeUcWZxsdHPhR7JwD4mXo?=
 =?iso-8859-1?Q?t6V42feuirdfRdNcA824llnZ3ocAsXjgOMCsOrsYC4LRhZrBPn4HNGGRLp?=
 =?iso-8859-1?Q?J+gIWAVjWXbBk+qMm5QcCH6fvxuNAEsbzV3mynmChIaCbqnB93iRLXNSdt?=
 =?iso-8859-1?Q?EcIzyxtkSPUqnlLwaH3+3lqPnPC7e+6ahK328WaizI1vLXNnckn52W0xkW?=
 =?iso-8859-1?Q?aAL4Y+zMY85lpyuv6cf+D8M9KLSMnWk6QREQr3j1DzR7CqF81qD2qgceEr?=
 =?iso-8859-1?Q?irURJ7KfKO8BWLhJMezOa8Sd9F+Xn/hNCp61I8ddtVxlJ2Q111gJ5JjH9u?=
 =?iso-8859-1?Q?niahIcC7QZmVoCPy10HQf+gEdGPQO+Gno/5lSjYvnpK0vhdiIRnH+vvXoQ?=
 =?iso-8859-1?Q?Y2sfIeEvwtYCE7OWhUnNw6zLZrt0nnSUZRzHDipH57WmhMkrKPhL3Ms7xV?=
 =?iso-8859-1?Q?9ATX79q3Ep2oCrtwMNuQgPUuORxfl4zNzliMSkyFDY1S+3N7X5bnqBcR+U?=
 =?iso-8859-1?Q?1ZnIJ2nRA+MzN1rjkRixjvVMrJdbI3sS9jeKL+cAT9umpI+Cz8LJJCVMjX?=
 =?iso-8859-1?Q?mIz9MXV+Z0yJTY0zaLdyVsObYbuLGSPloib1x1Hz4hHBirJwk2TNdRlvnh?=
 =?iso-8859-1?Q?tWcsHJg4rCDZOs++eznmxMwdfw6HqdJ3t8lr0+fjfAquGyiRFxMlIxiUSP?=
 =?iso-8859-1?Q?1bz9S2rCd9QAWYNyA8gsexWCZVCcKv0kA8GiqUeS99aXRjWO12wGEn1aWJ?=
 =?iso-8859-1?Q?yMnMHohvPFraMiurVofvdkiSQ2Ty58M=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2f8f6f82-a7a3-406d-41cc-08de892eb9e7
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:51:31.2676
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ccyXwTDka1hkJBMzWYl0yRqQ+famoqTNVSBH1Ssa/3LDG8izGjKry/cC7NvjGkX8rWpt4ZvRuUVgdbVQ6mc1Uw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9699

From: Rahul Singh <rahul.singh@arm.com>

XEN will create an IOMMU device tree node in the device tree
to enable the dom0 to discover the virtual SMMUv3 during dom0 boot.
IOMMU device tree node will only be created when cmdline option viommu
is enabled.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/arch/arm/domain_build.c       | 94 +++++++++++++++++++++++++++++++
 xen/arch/arm/include/asm/viommu.h |  1 +
 2 files changed, 95 insertions(+)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 30a4f1fd09..57072686f9 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1440,6 +1440,95 @@ int __init make_timer_node(const struct kernel_info =
*kinfo)
     return res;
 }
=20
+#ifdef CONFIG_VIRTUAL_IOMMU
+static int make_hwdom_viommu_node(const struct kernel_info *kinfo)
+{
+    uint32_t len;
+    int res;
+    char buf[24];
+    void *fdt =3D kinfo->fdt;
+    const void *prop =3D NULL;
+    const struct dt_device_node *iommu =3D NULL;
+    struct host_iommu *iommu_data;
+    gic_interrupt_t intr;
+
+    if ( list_empty(&host_iommu_list) )
+        return 0;
+
+    list_for_each_entry( iommu_data, &host_iommu_list, entry )
+    {
+        if ( iommu_data->hwdom_node_created )
+            return 0;
+
+        iommu =3D iommu_data->dt_node;
+
+        snprintf(buf, sizeof(buf), "iommu@%"PRIx64, iommu_data->addr);
+
+        res =3D fdt_begin_node(fdt, buf);
+        if ( res )
+            return res;
+
+        prop =3D dt_get_property(iommu, "compatible", &len);
+        if ( !prop )
+        {
+            res =3D -FDT_ERR_XEN(ENOENT);
+            return res;
+        }
+
+        res =3D fdt_property(fdt, "compatible", prop, len);
+        if ( res )
+            return res;
+
+        if ( iommu->phandle )
+        {
+            res =3D fdt_property_cell(fdt, "phandle", iommu->phandle);
+            if ( res )
+                return res;
+        }
+
+        /* Use the same reg regions as the IOMMU node in host DTB. */
+        prop =3D dt_get_property(iommu, "reg", &len);
+        if ( !prop )
+        {
+            printk(XENLOG_ERR "vIOMMU: Can't find IOMMU reg property.\n");
+            res =3D -FDT_ERR_XEN(ENOENT);
+            return res;
+        }
+
+        res =3D fdt_property(fdt, "reg", prop, len);
+        if ( res )
+            return res;
+
+        prop =3D dt_get_property(iommu, "#iommu-cells", &len);
+        if ( !prop )
+        {
+            res =3D -FDT_ERR_XEN(ENOENT);
+            return res;
+        }
+
+        res =3D fdt_property(fdt, "#iommu-cells", prop, len);
+        if ( res )
+            return res;
+
+        res =3D fdt_property_string(fdt, "interrupt-names", "combined");
+        if ( res )
+            return res;
+
+        set_interrupt(intr, iommu_data->irq, 0xf, DT_IRQ_TYPE_LEVEL_HIGH);
+
+        res =3D fdt_property_interrupts(kinfo, &intr, 1);
+        if ( res )
+            return res;
+
+        iommu_data->hwdom_node_created =3D true;
+
+        fdt_end_node(fdt);
+    }
+
+    return res;
+}
+#endif
+
 static int __init handle_node(struct domain *d, struct kernel_info *kinfo,
                               struct dt_device_node *node,
                               p2m_type_t p2mt)
@@ -1508,6 +1597,11 @@ static int __init handle_node(struct domain *d, stru=
ct kernel_info *kinfo,
     if ( dt_match_node(timer_matches, node) )
         return make_timer_node(kinfo);
=20
+#ifdef CONFIG_VIRTUAL_IOMMU
+    if ( device_get_class(node) =3D=3D DEVICE_IOMMU && is_viommu_enabled()=
 )
+        return make_hwdom_viommu_node(kinfo);
+#endif
+
     /* Skip nodes used by Xen */
     if ( dt_device_used_by(node) =3D=3D DOMID_XEN )
     {
diff --git a/xen/arch/arm/include/asm/viommu.h b/xen/arch/arm/include/asm/v=
iommu.h
index 811e9312d5..b519a73d4d 100644
--- a/xen/arch/arm/include/asm/viommu.h
+++ b/xen/arch/arm/include/asm/viommu.h
@@ -19,6 +19,7 @@ struct host_iommu {
     paddr_t addr;
     paddr_t size;
     uint32_t irq;
+    bool hwdom_node_created;
 };
=20
 struct viommu_ops {
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259667.1553102 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7Y-0002jN-UH; Mon, 23 Mar 2026 22:51:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259667.1553102; Mon, 23 Mar 2026 22: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 1w4o7Y-0002hn-4i; Mon, 23 Mar 2026 22:51:40 +0000
Received: by outflank-mailman (input) for mailman id 1259667;
 Mon, 23 Mar 2026 22:51:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=P8gh=BX=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1w4o7W-0007Yi-Jk
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:51:38 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazon11021085.outbound.protection.outlook.com [52.101.70.85])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d8f3cdc2-270a-11f1-b166-2bf370ae4941;
 Mon, 23 Mar 2026 23:51:36 +0100 (CET)
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB9699.eurprd03.prod.outlook.com (2603:10a6:20b:61d::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:51:32 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22:51: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: d8f3cdc2-270a-11f1-b166-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rH04L9CRWdMVHwpjqG17UlUIcOixRr7rdbXgwV1Nk2YssN/Ai4Jx8YSqYR4csOFtkD7GNFnPF0ZJ3p2je0bwtR2J3UWleh0dkrZceB6185WAwnamM4iOVBOERLep3p+kYZHwwQ+4kelAFr8VpLIQzzFSJm3YDsyROwKeqxR4i36QYYPVhfRV6Rx7oMY2QjSRpWtp9Bmggg0upfFE8F66taVYi/IE1F/rxwI8rKh5LOdVs3y+tNY/Fi6N7GrG1WLgm3ybDIMZ6ERY5BkMcFQEifCgspeEmY65f7psjIu5BHqAYZtTwEPewFP4ovRuTb8owpdjMwAgRsOuCanS4NAxJg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=L8OQdvq9aXg/4SxgH4QegjDDNYf5k8N/mwCJ7C6pqRo=;
 b=AI5ZF28drovbKyuh+BjMxF4VUBHkTXpTTO81YuaUNuSUU/wASW8a48QR2WztYefBbwK0qfL77sNYzvisnKiifUqoV8ZOKea7fJNCPrheWZmBe0WYV0Hu7B4RVMfOkGgPJRNi51qb5VzH4kyhL0rdRIjVuKZm8tjRKYNzp0hRZLpLf3cir87fQwq6GJ0auT9R8y/0msXG+9AVZknYGbqYWKI52BJeKzifWH/tSXU2ZSNjNie4AbVURXI/nY1pKPJ9CsGnFzSRTYD3td1LSxlM/Rrp/BQp0iJC71AMwDy1Gkjrmej1WQoX+zTX87alQFvWvJ7jA6HktDds2QPb1XKvNg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=L8OQdvq9aXg/4SxgH4QegjDDNYf5k8N/mwCJ7C6pqRo=;
 b=YJzAFpmhznNViMAAQaMR/okEgJeIzdFvkeKUnpRlxRosR+on6M0Ymaq4zDvIFVeOEIfNuC0Hj7N+/CLaYCPeGzurpp3w/K5oaP3z1Q5LE844GFv7OoAJWP0Gk9arnVqmZ2mFmWJx1FI1MYiKCLTQ69wTirYtvbGlbq2/UrOBRiY45wdIp54PBvUMdQxxZ2SbEngpdTH7+PdwVSsZD+06WouPg2pEsXXh7XezBH15f8lv4cvswZS2qBI54VvPaYFuTN8/uGYymSQVWYecwzIqVp23Fmn5oqks7a5A7angzdWveP6zH6aEbY09vP0vjKfQCnkyCx7NLqGeU7PW0gE50w==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH v2 15/23] xen/arm: vsmmuv3: Emulated SMMUv3 device tree node
 for dom0less
Thread-Topic: [PATCH v2 15/23] xen/arm: vsmmuv3: Emulated SMMUv3 device tree
 node for dom0less
Thread-Index: AQHcuxeYUjdtCN8FC0S6jBGuUI2eMg==
Date: Mon, 23 Mar 2026 22:51:32 +0000
Message-ID:
 <ec46f7d27f944b8c39275ee6fb8aad3bf1431e75.1774305918.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB9699:EE_
x-ms-office365-filtering-correlation-id: f15c7b54-96e5-43e3-c970-08de892eba96
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|7416014|38070700021|22082099003|56012099003|18002099003;
x-microsoft-antispam-message-info:
 PmcKM9KUx/vUiQaIarUlrkryABOJpLVhl3YbmuVI1v9kqgmaKvzO/ioWgN+O7ON2frO8x1pTxgCVdYyqHQs/LjVr8bQRIvxur1GFn1wwl/UWD9DHpb0mrRmo2WHTPInFnc5vdlTz2hbFLjNqG+F/Wa4oMElGFCFLJxIdGPSO88ysUk3AeP9eEh6bF2xBQ26FLmWe5ggFXrTz0sHEbToSxgspoCBtabwC+DwV3IgW5XDiOGwQEfSKLHXDx1i2dVKhW+TKM6Nx1eBrBDlY+Cf7KzZhHzA5C6DB6jHqk8cDLsTEki5Gyu4/1rNteL41vbGHSA5DkAMCPU2SxlaR1qIT16DrhY8UgyhgwKurCQeklxoYwAeFVGQbu94opEzPJ3ACAUfx6KFWgeOtrhWtEeRPHwFAsr9Hpks7gd2Mo5RFe8A0kJAalxSUgp8HuruYgsfxQ6oA16kKm9h1e8VRXXRQFf5uGETMKMniVCpAaKt8tuUcGGpY7T5VkMKgwyL9+ZIFyFMeuQ+PPNlCSkbR/ZLYLFWefQdKD+Bq1pb3O3+ocDV99gAoxM7f9abnp11PUldT2Qsm3m5TKbBMkgP+BWZL2TUS60B8XiT6hqVH93KOgiYmyt27voYUbdPmuzqwz2vLH+h0dprL7yI/eYLpMxfITBoIq6AjuNtDZ/HjEzCWGOkK52xFVVeDDViKNZH8+U7cr7DBMUadHoRenVjZHS/QghZRDfVcAVYEk1y/LLPC3fgznIiat6f5+7nknALpBdo3hPvJYWWzntQ6dL7rEr+OJVYSWM1TOCExHoXx3BFLxxE=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(38070700021)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?qEjunqKXohbQDhlWgPBqDSq455zmrqqeQb5HKMWFNFzDOS4+IZV26TYKrG?=
 =?iso-8859-1?Q?PyuCg6umrhq87MTPhoN/OI2EnM4ouwDCzNOoStE6Ctj8J4o2kwtbpahKNB?=
 =?iso-8859-1?Q?CRxAFyFu/B5U8UPkK+aaVMFq8w3eILRGOm9aJdfbcfRMnOgW93r1WyD1fJ?=
 =?iso-8859-1?Q?iYIrzv9MhVOY/Qx8I/Cepal9xea/FYtjPD2rd5mprOomllm8FSgmGC/Ndb?=
 =?iso-8859-1?Q?XtZi7GrlzE9Uw1VS0m06lW9ZV8mwAKUGs1AFVGonVPlpHn00qpzFNlKvsw?=
 =?iso-8859-1?Q?mnenOcBqD0iGSuCaSqJBsL9knJY+NRW5ZHtFn7IcwK7PIZpjapuKHGIZfa?=
 =?iso-8859-1?Q?BFy76PjNAFQwGsIG5GhwP8yMF2o8E/Exlnb3mEqTNCuiribBF7g4OtleAC?=
 =?iso-8859-1?Q?wYbWikeUgaPn5YusF3YOnmoGtjVURTbdKY1N7GBBqVE8I/IdNOkXI7ngVi?=
 =?iso-8859-1?Q?7YlhcLYAHJa0Ze1sVLbt64L2YU2nBPvMhlacKxUwxOFTMrlyG4Tb11fUh0?=
 =?iso-8859-1?Q?4JKxOkIb7Y2QWi1UibGMWDu+7jdjgltm6n7jfuRtHdrsrI6GEoPKKzPtS8?=
 =?iso-8859-1?Q?Qm3mAdpzCHsS7Ez3MYzQN4q8MnX2N8NYYkY2Zlft3Ppf9jKstqL3ILMMtA?=
 =?iso-8859-1?Q?9rXz0hZHWvFreuAD0hq+2dEgcbiM3MjJx0h+ewtG8HwkqyBxbpN4wx8fed?=
 =?iso-8859-1?Q?lxIdo/96AFtIswPmG4Y5K2N6wbFQc7RjVLf0DrN3NzGSiIobWcYoWp3Ivu?=
 =?iso-8859-1?Q?QwzbqnR7z9v64KdJihdfERlAmro6lHvJuXglb+Jy8yQaV7LQhKfgbOnQCS?=
 =?iso-8859-1?Q?oEd+Xmwp9xSR/Cq+6gmXTHXdDbvGy/eXYHyWgMWAO4zdtDuI/hCIp79692?=
 =?iso-8859-1?Q?+1dG4N8ygrqqaZaWUxgTCIsxMc/FKc7S2/xc3txghgyUPmvQRUOISUQBil?=
 =?iso-8859-1?Q?AvPB1+l9MOCHcWoPi5n907BIiQByH+EibWRFO91/mgXcSvDl/w7vt0owLy?=
 =?iso-8859-1?Q?rCJgqw3VI8wkA8MO/EcUQAK3kEZg+Ae81Yt1UuXR6pakOQU9RGJKiNzTXR?=
 =?iso-8859-1?Q?d6dxoJwrNP1LQwQ5vqoIDmXYN9zRWT2cmMdYBWyQtmkdHAqumELgn7YdzP?=
 =?iso-8859-1?Q?3wKjDtXpQety1ZBXxfD5Bz0lZG/rbz45g/HdI0GnflzakswOicIHPUuEPf?=
 =?iso-8859-1?Q?Bap6wo30qhYuCtmAP/lEVTsKogKDoDVcvuSGClqbrRSuSkN72lWsiliA+t?=
 =?iso-8859-1?Q?KXU/mMa3AU5dYuaqnR1fGSpZhDotsr8Z6y7wsrOmK99BEHX9nMlBywgzZb?=
 =?iso-8859-1?Q?7djYJ6/+wcalHHpwnLrvnpJpsY+cyLeAV+qrei2N+S0MM/92zXe0fP47mm?=
 =?iso-8859-1?Q?GJS7UA/xTx4lelHGj/OG+XuUkJMfWrJUgqsOWCST8ZLz4E0etawRXsb0r8?=
 =?iso-8859-1?Q?2THz1nUPnzJRW8ZnNAmzoRvVPuxyLOJ7qqQJY8LQ7GUmqBsozEZrgt0fum?=
 =?iso-8859-1?Q?VlAjVg6U91QQUd7HD/xcmO04ppt36HUP7jFnwNEwdjMOnKvSBsaffl9OGP?=
 =?iso-8859-1?Q?lT2hOKIH4OYGq8PKJ6OIDz12gfO9OPe1IY25jZO5srEMNP54E6/+mP4mg5?=
 =?iso-8859-1?Q?auTbMcsdwOA2F+1LFtfB+XcgBHuiS2aqIyXXrYdZO/qVwGKwOEQiuq7PAG?=
 =?iso-8859-1?Q?fpymBCx2wPlinOaZylmwO36lgoV6A3BwfQm+otfQpFodDT12FvC08AX8SK?=
 =?iso-8859-1?Q?p5zFH1EcL9lqsQsS/+AkBx/Wx+e8NYTt3JegChzmfG+1pSGnINBD+irXKt?=
 =?iso-8859-1?Q?g6bZhC+HiQuMC5eHU/bzP5Fd/JA9HbE=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f15c7b54-96e5-43e3-c970-08de892eba96
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:51:32.5081
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: qqc61BcMJbVZ7paCIjM0wkp85bcAH0ieMTJXvCZ+M7fM/nwf+4t5bXA/KepKpzmBa/gw/M4m4KNTt0EjJhG9lg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9699

From: Rahul Singh <rahul.singh@arm.com>

XEN will create an Emulated SMMUv3 device tree node in the device tree
to enable the dom0less domains to discover the virtual SMMUv3 during
boot. Emulated SMMUv3 device tree node will only be created when cmdline
option vsmmuv3 is enabled.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/arch/arm/dom0less-build.c         | 53 +++++++++++++++++++++++++++
 xen/include/public/device_tree_defs.h |  1 +
 2 files changed, 54 insertions(+)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 067835e5d0..a48edb9568 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -218,10 +218,63 @@ static int __init make_vpl011_uart_node(struct kernel=
_info *kinfo)
 }
 #endif
=20
+#ifdef CONFIG_VIRTUAL_ARM_SMMU_V3
+static int __init make_vsmmuv3_node(const struct kernel_info *kinfo)
+{
+    int res;
+    char buf[24];
+    __be32 reg[GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS];
+    __be32 *cells;
+    void *fdt =3D kinfo->fdt;
+
+    snprintf(buf, sizeof(buf), "iommu@%llx", GUEST_VSMMUV3_BASE);
+
+    res =3D fdt_begin_node(fdt, buf);
+    if ( res )
+        return res;
+
+    res =3D fdt_property_string(fdt, "compatible", "arm,smmu-v3");
+    if ( res )
+        return res;
+
+    /* Create reg property */
+    cells =3D &reg[0];
+    dt_child_set_range(&cells, GUEST_ROOT_ADDRESS_CELLS, GUEST_ROOT_SIZE_C=
ELLS,
+                       GUEST_VSMMUV3_BASE, GUEST_VSMMUV3_SIZE);
+    res =3D fdt_property(fdt, "reg", reg,
+                       (GUEST_ROOT_ADDRESS_CELLS +
+                       GUEST_ROOT_SIZE_CELLS) * sizeof(*reg));
+    if ( res )
+        return res;
+
+    res =3D fdt_property_cell(fdt, "phandle", GUEST_PHANDLE_VSMMUV3);
+    if ( res )
+        return res;
+
+    res =3D fdt_property_cell(fdt, "#iommu-cells", 1);
+    if ( res )
+        return res;
+
+    res =3D fdt_end_node(fdt);
+
+    return res;
+}
+#endif
+
 int __init make_arch_nodes(struct kernel_info *kinfo)
 {
     int ret;
=20
+
+#ifdef CONFIG_VIRTUAL_ARM_SMMU_V3
+    if ( is_viommu_enabled() )
+    {
+        ret =3D make_vsmmuv3_node(kinfo);
+        if ( ret )
+            return -EINVAL;
+    }
+#endif
+
     ret =3D make_psci_node(kinfo->fdt);
     if ( ret )
         return -EINVAL;
diff --git a/xen/include/public/device_tree_defs.h b/xen/include/public/dev=
ice_tree_defs.h
index 9e80d0499d..7846a0425c 100644
--- a/xen/include/public/device_tree_defs.h
+++ b/xen/include/public/device_tree_defs.h
@@ -14,6 +14,7 @@
  */
 #define GUEST_PHANDLE_GIC (65000)
 #define GUEST_PHANDLE_IOMMU (GUEST_PHANDLE_GIC + 1)
+#define GUEST_PHANDLE_VSMMUV3 (GUEST_PHANDLE_IOMMU + 1)
=20
 #define GUEST_ROOT_ADDRESS_CELLS 2
 #define GUEST_ROOT_SIZE_CELLS 2
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259668.1553110 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7c-0003JG-0r; Mon, 23 Mar 2026 22:51:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259668.1553110; Mon, 23 Mar 2026 22:51:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7a-0003Dz-VY; Mon, 23 Mar 2026 22:51:42 +0000
Received: by outflank-mailman (input) for mailman id 1259668;
 Mon, 23 Mar 2026 22:51: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=P8gh=BX=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1w4o7X-0007Yi-Ju
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:51:39 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazon11021085.outbound.protection.outlook.com [52.101.70.85])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d923f423-270a-11f1-b166-2bf370ae4941;
 Mon, 23 Mar 2026 23:51:37 +0100 (CET)
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB9699.eurprd03.prod.outlook.com (2603:10a6:20b:61d::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:51:33 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22:51: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: d923f423-270a-11f1-b166-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mHOrF+EjAO6uwA9vJzJktySafOiodyX0POlB+eqgIfRsiLQ0eeDPSlHuCjVRGkmzV0e/1EERPee8XEYq7rIsQ5zjq/vFTXbrO+OG7mSEzbuPZ5noky//EUn/BcpmtIoRSAiJyhJHFE9FFY6uCJGkDU7KcLsBuelbwFb84BZ1RDNy7K4Ffura9YZR8wIitbqbcFGNcS4eSY9V6OzGFf7b9/W3Oz7KaSantRqqvjqgJtZBci3efU4drC+qtGVKIDQxPyos6qlYzauaKD8JdOhSZYlLO9xZLRPX/xSaC9noPG9+PWIq+uUAAxSsvdFmM92+hbnPu+8hJP16ncWqRr+cFw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lj+Sg5LBkxi+H913KrrxXSn48z00gNy3tUlieV05i7o=;
 b=AUvLEA9HnkYKkpY8UV3ZCrSFTqdmL2eKqzw/FTi5bMqfcR1BZiCEZUaW4X5Ys2AAiaUfwi0DAPX0EnL6nWiwvGAaR1SZ7eg3LJC7q8oOcUgYuk2Y4r46mLx1aSb3kXhIEAb+hGSVgAsSgeQmnE60lBsdDesdLlkiKRU2Mr9tAhQeXm6QX/CNwEO+KuzK/EWSsW+UQUCNzemzMM8OHMQbavpFZqXYOcaBCI8TtvQ67Vbv2cJIDWa6gWlEaXIONT+gdxCE36q1jMBtd7XHHW92xUHGNi8pMmpgqQI81Bz81v7Wk9Y2KwtJeSBC5TbKslRPIWjEDCndjkTSBd5B8suwCw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lj+Sg5LBkxi+H913KrrxXSn48z00gNy3tUlieV05i7o=;
 b=QskhLSAUPOx9YjQ5YqAEee8mWiNlIGUuQpWDqzow9FuumJw3h3eU369IU9www7NtmObiMFV2ZVJLMAonIkRoyiqRqiRX/N7krUcdpS+a+k+KQgl2KyHd7x+GQ/P5aJomH6lUBS9TIPlpPwv0OxdwZ1EkcBe5pPSM/0dC+67faqzysym2IuFnGAxfZ/N9+ceXoxOGuTmgEtj4E2YQAaif3rr02FNNLoBG28sppipfq+t0sA5HgJ9q2fh14hj7NZpf4CWK4UZ4xmluwn3hkAYsx1RRDeFiqveUFQ+wUMCQZFMe6NctnmcOe159Qt5SHuSiv3xp/TCN/XesoGqNaJSjKg==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH v2 16/23] arm/libxl: vsmmuv3: Emulated SMMUv3 device tree node
 in libxl
Thread-Topic: [PATCH v2 16/23] arm/libxl: vsmmuv3: Emulated SMMUv3 device tree
 node in libxl
Thread-Index: AQHcuxeY4ZME1ykbT0SM9HSVq+3Z2Q==
Date: Mon, 23 Mar 2026 22:51:33 +0000
Message-ID:
 <a33ab266d95c9b9ca18043d6ddeab48fd5a2f86b.1774305918.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB9699:EE_
x-ms-office365-filtering-correlation-id: dd9833ac-2772-4628-5108-08de892ebb4d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021|22082099003|56012099003|18002099003;
x-microsoft-antispam-message-info:
 F5t84foDWq2fsZAJr9P/oCL+6SmAl2dSR5pyDYNrw2GP6wa96An7+/po580qpA+cxaWpUq9mM6pTh5BOdvqm1yckfMfQjUrvdbT11vXyRGYq0vOL//sn+JmTw8mfLepwTzQtJGh3EjahzOOecTyE/jRnDdhrMvQc9d2glzhAxrECnwmg09T79i/+/l0Uhporo5mR89qDMIchMsvoxWrTH3EX0P20fdAEmYa4Pi9bJU+UKzfFeG4q0khIHkxY0KK3+xV6yT0syx7Odnlk8d+WWyU9h0nmSPhUI8g0MBFtOV0bNpO+/qhN3WUuK5ysaaOz3OjtIaHLQnVU/xEOc1XAMUYbj++4LyqDEfFF9K98DjMC/81h2h01SiDVGeyIm5Xdd8Z0k8JN0BwTkFc5vFiviITBC6thymKvVY5Kn5AHbD0NNXB4qgRLpoBrpC86qxMXaC78JkFVDEB/Y+lD/sQN9vksxX2m0Rp4jtBvBZ9Y7DaOsg693gQKNkv2umbLX0cf0s5xvyRQ24l7Yr8DEKg5M53P7UGuvFAvvFm1+fXjxSTBXMmGug64CDECctYEcappRec2HKtSUaaWzZ1JECefKkMfxs41s+1o289Osf7sTIgBHApqPRkoWGGwJdR6H7cNKM9PUX7TdkhHN4fyOwKNkIUaFQZrui4hI6SbNQO9dbbB2n8A/und3hyUy6hjxcKTapb1//vrzXm0rWkRfn4KUKmfr22t4vvDyEx/ho8VOnPuGH65Uy9BuFnPxVgXJU0QBPXJbl3MRLX6f4OBUJspSa4tRrysauwWiFL4bkiKIt8=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?hFo68PatmN9Lgd7E3aKuE0hI8mKrSKVq+YjXtBQb19wSIBsYfGgRIvCcMd?=
 =?iso-8859-1?Q?9tRmffRjpJ3JTS9aZkHYpFBSKziCRI/Jvkrts9R2lN2zjLDFaRuUn7hzro?=
 =?iso-8859-1?Q?lmAiJJR23M3W34imU3Qi0IZ62aWfyT6gGztj0X+eD77IYJEqJ2U2JZq3iY?=
 =?iso-8859-1?Q?HeEF6nDyMzEhKF7Fchml5HqvtE8X9eMSd983z6elGnwW54ObYpZmpp/2id?=
 =?iso-8859-1?Q?lRAmqrpGvRcDEMmVnFg940liIhCFiJW9LNzq1bs+AyOoBs0KfwqYBYLCdC?=
 =?iso-8859-1?Q?+24l2BarLy20vjwlkLuIRpVjRgGWgryHFwtWppCLgY/OyTNZ6G1DZAJ2cO?=
 =?iso-8859-1?Q?Nbuu2iknM89wUaMagmypUOCFYg+IwrIDlMzr/N/uYZNLyvXkJ1ul07350w?=
 =?iso-8859-1?Q?fjamOPD0YlmqHUUQyAym4dD9bHVpUAYJOiUZHjy/iqHBv1lFHo8mLtleQU?=
 =?iso-8859-1?Q?EOf0kDSaaU/ZL0K96Gt9dIR5zxcDqjL0reX19TJmcBYEOBEBUyhP49CJLe?=
 =?iso-8859-1?Q?VyHMYIO+pEZMM4+AYQuNFhSWKJqSkl99eV7Z3vb/q54P2IlsSnSXYi1Dnh?=
 =?iso-8859-1?Q?mV1drrkxTguIhY4yLOjOntPpSZKcXRMSt8TuG6HJvD8Sril7H2nJ6sIF/S?=
 =?iso-8859-1?Q?WQqgq222o4w+bub/gvaWMBnEd+ZFDnaCmPM1m3/lJw2mxtAuhyh3z41+/G?=
 =?iso-8859-1?Q?0mPFlwKQAikyIIUkBOnBX1SQ/zHMXJ+3c+RV0kqmXIOBm9xj3lMthvaIoD?=
 =?iso-8859-1?Q?7bLka9u5Hx7S2r66oUgLs01FinwAVDmbt1C5F40c4IpVa3NyZbxZfY1FJ2?=
 =?iso-8859-1?Q?b/hejuEZFhJ8Sj5Iu7Ek5qE3//9TNFQwXLKxAhq/rcsMCVh7R7xo8/tx6w?=
 =?iso-8859-1?Q?dh36J55DgPblUX21mGT78Hj7wI/Rg90/dmghu5qvrfLK9X4tZyo5DfXPi8?=
 =?iso-8859-1?Q?LphLF3PIeGg18TE8UPeGWFbOOlNnzdSPbBezGZ9Uavi+OC1ARHGNLhc4aa?=
 =?iso-8859-1?Q?Hfqc0FROrJAXx5CBUD7NYOpAC4DOpS3t1GusSPr2TSrOQoqFYj64h5OBZ+?=
 =?iso-8859-1?Q?LP0vKp56TI/FGAoEJiv+AcHJ//VtYvmSRLKZNwipX/ey35Taktfs4GwcpE?=
 =?iso-8859-1?Q?+rDpYkaPLPnntPaHkpxYtVOs42BfIRLijaAHuP5rHhJOsicvr6zHG0cIaR?=
 =?iso-8859-1?Q?+toSzNYxi+JFWRUE4XdBKuVgViVZVNelNbmnEdaX9o5Q6rHYO/RQkOFt7m?=
 =?iso-8859-1?Q?iqQnKO5ibfaxCbY5eAgT7eAPoiRPUop4Ua2noc/DJkr02PNUDlAhC0vQEZ?=
 =?iso-8859-1?Q?Q0ygh7wHR93mEqd/ohr6OLqGjti+C7hQZpXJKKMgs/G4jY533T+eLqKJBd?=
 =?iso-8859-1?Q?aVARSXTx3nOufzYvePgN7r932rPxXQVdq8pcaGuMqobh+mIzyF6YGjGsxh?=
 =?iso-8859-1?Q?fD3y4sH+qIwZaJp9VbIkaSjudOSCYklHk2FIlg8IPvrGzQlMQPF7RTzYX4?=
 =?iso-8859-1?Q?Fo7Qi+ISsWl4EKy6MC3aOKR5bAHRIF58hd4MLBwDmRyM1y/yGU78BWRJPg?=
 =?iso-8859-1?Q?V8cHyTrfFF1C1E85S0cSSBNFI6r3VbuBX3sXo/y4MsQTQRu5TmPRZK0oQS?=
 =?iso-8859-1?Q?Bd3T+N311FzMXWhOZtD46HDw5ze283VUrSc1/nwbxuQMylVX7P44TZIE/B?=
 =?iso-8859-1?Q?aLYUrqBrv2plicsTA30GLxWABamvBvacs67QmSOP8UmLwcciRHdKr7EStT?=
 =?iso-8859-1?Q?eAoWN4/DyJ4zq7N5dKzDMx72Nvj0idpkIGS09NpnshakECkQGDqI92LgLg?=
 =?iso-8859-1?Q?HV2x1B/9/JSl8bVGy/uIXEu2rB3TeG0=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dd9833ac-2772-4628-5108-08de892ebb4d
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:51:33.6739
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: XMscshbLCJ/s8dQtJ4eu7YX9lcBHD+4iGNcC+Ruy0GOx+SFoHUJu8CGFGU5ZIFJeIDRhzgwV9h0nBjj3b98ozA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9699

From: Rahul Singh <rahul.singh@arm.com>

libxl will create an Emulated SMMUv3 device tree node in the device
tree to enable the guest OS to discover the virtual SMMUv3 during guest
boot.

Emulated SMMUv3 device tree node will only be created when
"viommu=3Dsmmuv3" is set in xl domain configuration.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 tools/libs/light/libxl_arm.c | 37 ++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index a248793588..eb879473f5 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -901,6 +901,36 @@ static int make_vpl011_uart_node(libxl__gc *gc, void *=
fdt,
     return 0;
 }
=20
+static int make_vsmmuv3_node(libxl__gc *gc, void *fdt,
+                             const struct arch_info *ainfo,
+                             struct xc_dom_image *dom)
+{
+    int res;
+    const char *name =3D GCSPRINTF("iommu@%llx", GUEST_VSMMUV3_BASE);
+
+    res =3D fdt_begin_node(fdt, name);
+    if (res) return res;
+
+    res =3D fdt_property_compat(gc, fdt, 1, "arm,smmu-v3");
+    if (res) return res;
+
+    res =3D fdt_property_regs(gc, fdt, GUEST_ROOT_ADDRESS_CELLS,
+                            GUEST_ROOT_SIZE_CELLS, 1, GUEST_VSMMUV3_BASE,
+                            GUEST_VSMMUV3_SIZE);
+    if (res) return res;
+
+    res =3D fdt_property_cell(fdt, "phandle", GUEST_PHANDLE_VSMMUV3);
+    if (res) return res;
+
+    res =3D fdt_property_cell(fdt, "#iommu-cells", 1);
+    if (res) return res;
+
+    res =3D fdt_end_node(fdt);
+    if (res) return res;
+
+    return 0;
+}
+
 static int make_vpci_node(libxl__gc *gc, void *fdt,
                           const struct arch_info *ainfo,
                           struct xc_dom_image *dom)
@@ -942,6 +972,10 @@ static int make_vpci_node(libxl__gc *gc, void *fdt,
         GUEST_VPCI_PREFETCH_MEM_SIZE);
     if (res) return res;
=20
+    res =3D fdt_property_values(gc, fdt, "iommu-map", 4, 0,
+                              GUEST_PHANDLE_VSMMUV3, 0, 0x10000);
+    if (res) return res;
+
     res =3D fdt_end_node(fdt);
     if (res) return res;
=20
@@ -1408,6 +1442,9 @@ next_resize:
         if (d_config->num_pcidevs)
             FDT( make_vpci_node(gc, fdt, ainfo, dom) );
=20
+        if (info->arch_arm.viommu_type =3D=3D LIBXL_VIOMMU_TYPE_SMMUV3)
+            FDT( make_vsmmuv3_node(gc, fdt, ainfo, dom) );
+
         for (i =3D 0; i < d_config->num_disks; i++) {
             libxl_device_disk *disk =3D &d_config->disks[i];
=20
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259670.1553116 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7d-0003Wq-2f; Mon, 23 Mar 2026 22:51:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259670.1553116; Mon, 23 Mar 2026 22:51:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7c-0003Sf-8w; Mon, 23 Mar 2026 22:51:44 +0000
Received: by outflank-mailman (input) for mailman id 1259670;
 Mon, 23 Mar 2026 22:51:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w4o7X-0002eA-Ux
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:51:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4o7X-00As5i-AI
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 23:51:39 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c3f6-e002-0a2a0a5209dd-0a2a4503d58c-4
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:39 +0100
Received: from [52.101.84.77]
 (helo=DB3PR0202CU003.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c3fa-1947-0a2a45030019-3465544d7449-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:39 +0100
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB9699.eurprd03.prod.outlook.com (2603:10a6:20b:61d::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:51:37 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22:51:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AXE3LeuQiNk8MUz/2cfyLnw/Xqg/riiBdMwu7qKVDH+IzVlR9637MRlxLJkS+SKGHa+JTGyrw/S+pWlQH8hsXpvoFJtco4CWZNMvSi4cRq4uFHl16jrugMBH+iPLmmN8TT5aQmAgLaUHRUJluTiEv6z4IdI1iMCNHLnp3TRjd5Z+WiwDj8F5GHNMtc3eFtzucyJSsGkBP0oRTYIeyh0DmCGtpxYVB5Jh538qFSjRc8vRNvcXPEfntTc1AZq9IXh9sPHmHKfGPextwgyxMSK9y0u83hPSdv+mCKkc5Rs95C6mXv+VP4lBqaoWzHwJE6gTkT2HI5d1+oZKEXai0xq3jw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=O46ZCtqqAtKuVVyR61YNPzdDBAuzXaUE5Bb7qosufwc=;
 b=WaoNT+S4l8pxDlTNg6pdSMtJIyCty+JaT2by4f7OhmjSrrZy3M9VM8TJtx0iD2SfPdIayWtt+9siOh4jkHBMqHKKb9pZ4LVJTNTLJ9ZvdJqww6Wy5f/0+1bP9CCToYclUY59hdqvEaY4rHLm3vGPJaxYylKkZe0ZnCh5LBh9rkc+0FypOQj/sgbs7Ja6e84RNWCx1KWUWUjs/81hsInpn22inbsB9qwptPA/u/J54E625GRJCAvy85lvuAMlmxWnDeEBX/CFIzfBBK7ayo9WN3xFHwE/fxT77+bGOrOFwUUKW/0OPvGf9HFVupQY007u4iZvvrx9VQRlh0VHiZ4yng==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=O46ZCtqqAtKuVVyR61YNPzdDBAuzXaUE5Bb7qosufwc=;
 b=kAT+Y9F0S9xKYw61nE37wm6WvxWmzq4Ck9aYTutHU4I7cvVMRE0SO8GC6aLLEcLmXzggkIZ4ja5yFvacUrrrii2inCx0g58au+BTtfoKKbKSewX5fuCq1/pp+IdSZ2DAYROv9baubWL4F9XFcplxw2PolW1fotX5qTpgJAe5lk0maEIG1TxJoJ7dvfs7/a5mnXXsK1WHcQmfjMagm/OdvvNbptl+neFlqx+O35ZXyBKipX14eY/wBDJiiRNWddvwBNWdodq9RekRpdq5/lmciFn3F31RwY1ek9Q/n2H7Dm6PuJIofRfb3xc1yd7LhfcnsU8JGWRdxde0qCGp4by56w==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH v2 19/23] libxl/arm: vIOMMU: Modify the partial device tree
 for iommus
Thread-Topic: [PATCH v2 19/23] libxl/arm: vIOMMU: Modify the partial device
 tree for iommus
Thread-Index: AQHcuxeaWYek8XrVDUW5at3G4vpkiQ==
Date: Mon, 23 Mar 2026 22:51:37 +0000
Message-ID:
 <ba4a05e53f784fd338d0501085ac0e3d289ffbc4.1774305918.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB9699:EE_
x-ms-office365-filtering-correlation-id: a7a7262c-52df-484a-19ee-08de892ebd72
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021|22082099003|56012099003|18002099003;
x-microsoft-antispam-message-info:
 77gQYYTKVng/u5pJirqzY0vNDu+6bChvZ0SGXdfKqBkbNzf6SPBrOYHtUrjOAUydT84vQbd3MScdGThy7Usj6GKwIJtffMxxbIVePgXgqakdtuDSw7VvU467Nf6ziPrV5IKhdQiJofi8LZmq0CYtP3GI44bj8xe03RoQUSkIOhSrXp3BFSKzFp6sKjdPZIRTOcdnQLCqxfcoOIBTptwDiqDsAj5/GPkK+K1PYG7D7fiSbIETuO0yfOfD5s7eO+HRPhZkKzzhXiv6pZOWzW6tqnVaQqt9PXpYEVly0lUPsKZNJ9ylkFZtHj5eVQakWFvOaClXT2Uj0dpYYlg/xk4GKoTrptnbce0VkmlkWBnusJPfZjLOLWqANXl5coHcHiOs2O80me30H+Y8ktVfv4qJp5hNbR6048acwoCdeAwZ9z6S4zJ4qy0ukV+LK8Uwe+ISQ5fzD8QvzUBBP3CBSz9+udjmo6IsnpBQVXd87UtX0iDcmFSI63v5YBfnwhy4kB2Esam4yUi1WABiOqOX9FnwIoEa/U4Iz8OTVwcugZEBCvQqhL8SzHwMjxxuXYgMHp+QIgA96mjZ0udSK2eftMTVEJdFb1hMN+F38NttGlysV40k6QQoaoX27XcYMD7cT1JSZtHfz2nlZZ2wBzwRXFYn1bCcGBnVibO6/b5VivSEOfAKRiJqwBfatS5Gk7/gjOecILT3nr50QhXhcgAMH7S4STcv8F6Dzft6rONExmRBrXgLD3CoYZfOoFDkY7Gln/gf+BBq7yDy99rWIZNMJPcnpwj49oN3xTBbhdIEY4ZD6VM=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?4yOSibhF44rpXoT8GACk+KowMe++TUEgO4z5q9Z0SKcb13ctmX/clrwNeT?=
 =?iso-8859-1?Q?rRdRCRh1JOVreyTS+qtcZPf3qXP/qYd5HDPYEyIxh1tMJUtiDnj3EIYE/f?=
 =?iso-8859-1?Q?C9PoTCAi+yPsD21a5q6foYhBHXsISawLiEYwj5TN+DVwWDx55UPNB6CCi7?=
 =?iso-8859-1?Q?3wLewtiFDzf5OSFwFiMug6rpvHqHt2jS3ABA+hOVW1cBdapNkIkLreOknC?=
 =?iso-8859-1?Q?1pYhjKe8K2vNmDf9EOu2Alebrm24UtobUS/BuC2jOcPjsOhRZelsZD1pIL?=
 =?iso-8859-1?Q?wZUSaxBQi1NAwpZuTxg7Jmkw851BoIujtwn7Jhq/ilu+jh7k/SQg4AuX8T?=
 =?iso-8859-1?Q?ykug0H4cM9L2FC+G9o7RdW+EE9hDw3D4SM5i/EBJ4wDQ+n6aNgwmtqyFNP?=
 =?iso-8859-1?Q?l9F+a2P7TIblamv3+H5ba58lR6Axnd3QjIC3Cpetz9BWQK/IaaqednuOeo?=
 =?iso-8859-1?Q?bDMqeU4MZq50JXTAu2ERimSYP8O2WN+ENGYIdpPOIip+bWfxtz6hzcCCjC?=
 =?iso-8859-1?Q?9YTNBP+lXu9lVDSB+6KCThxn5eeEf8s5TK4A4taahm29XP6xCymDTiA2ou?=
 =?iso-8859-1?Q?sb2hQFnwiQUVpl/LTAS2IvW4z4jTcgk3WLKExgwYCn8YnB15lHIr90tMtZ?=
 =?iso-8859-1?Q?k46WOA5BDyLegNSAhl34t8Bw8rhk4Z4FD9W9TYyP/742HrV9OOG9cgHsed?=
 =?iso-8859-1?Q?2eQ0nsLE86wdDKN5aNPMbwKAEB+1dZt2mxTdy+W2Hte0U1AQVMQ7qB3ZC9?=
 =?iso-8859-1?Q?KDwaGhd8QwT/IUTSPwOsMCF5M5hyXTT9OCE3hynPjjTffmGozIv0A8ELfk?=
 =?iso-8859-1?Q?iGySY0UDyp6guiMmLSSe9IxZmFs2imSaVYQBy8G3mKCl4gse80Nj7n1yvk?=
 =?iso-8859-1?Q?sFhbT7l2UdoO51BBeZMPv4AEbiZaMNNYcdombhuqcsrT1AawXr05NR46Xq?=
 =?iso-8859-1?Q?waC9xSUBAc2wwezNisyx/1RuttmEsRbfBbBPFqDocp7RiV6XA5rOPKHKTb?=
 =?iso-8859-1?Q?0TXa5Vrjv8qeHn6SRJdRl2E3Fole92mJ+Q+U6X5ltBpjI+9JeZyeVsyTHP?=
 =?iso-8859-1?Q?0PNOUI1ZaNoDMmHskDm0NI6Fv/eyGzFzC0M/i3C6+b1bcy1PSnXAfeRQ+L?=
 =?iso-8859-1?Q?QetfY83drmgA6BKDF/trVVEJ0cZ+gLtNj83AP3MyigM+lx3GM6YascojpM?=
 =?iso-8859-1?Q?eUgjC+5L4OVKRFxVzuUwE7wanFWBJfC5Q4FeiXyxPLuf6MtZt0s8or+JwM?=
 =?iso-8859-1?Q?o15QgfxzEPBmQOcyKxkKJINHUw/pP2ATu0WhNy7FRm3yeWmRQGJPw8QSk7?=
 =?iso-8859-1?Q?xTeTOTXqxkOgkbFwqubxo6cfy99MtrQTYw03vMLw6mDGroVtmTo3OWDf34?=
 =?iso-8859-1?Q?3tNyz2gJr0Z1mNzIedbRB7aqBBgaBNWr8FN5kd3ssKv4F4lWsm1QtY9U6W?=
 =?iso-8859-1?Q?nCy0AeyyjrSxnV+nYJZ0z4bhevG3wkuq89mdXLFpv8lY/gJTQLBdweM9HB?=
 =?iso-8859-1?Q?PQ2bp3sh0E+OtGMOfZpuJx8a3xjoxPvs0FADQ0hKn2hiZ5CpNxRHqVXSgS?=
 =?iso-8859-1?Q?1Wj6PaRf+dqbaiuGmbVX9hpSvrSA1KQh8KjqARcDjtTUo0aHG6VubXxfZ0?=
 =?iso-8859-1?Q?roz3lFnWwlnj/zHtNLsSwyItCbaMuoqiofYHakp+mMaDRSYPn2J6FoEUKv?=
 =?iso-8859-1?Q?WmL3Y/rSX3APa33lE7oONP1SrKTGmpzUL1BiB43phK9gKLYB+GOa++Kqis?=
 =?iso-8859-1?Q?nXB37pYESduPPcbRDLIz65lJX/daHex1ie11OkAEcYO0snBQ2EPZkc+5Rz?=
 =?iso-8859-1?Q?i8VF0bLCqX+F34WsWHWN+3t+UDQdVcA=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a7a7262c-52df-484a-19ee-08de892ebd72
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:51:37.2424
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ixSWt/zyTw+R6/v5vng+O/cWIJWHLySD62/bQNzKbc/YlhY9ltk8bke0tC69eQTa0SUCcD/iatjvuQA3Spl+sw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9699
X-purgate-ID: tlsNG-33051d/1774306299-EAE8572C-7324E835/0/0
X-purgate-type: clean
X-purgate-size: 2920

From: Rahul Singh <rahul.singh@arm.com>

To configure IOMMU in guest for passthrough devices, user will need to
copy the unmodified "iommus" property from host device tree to partial
device tree. To enable the dom0 linux kernel to confiure the IOMMU
correctly replace the phandle in partial device tree with virtual
IOMMU phandle when "iommus" property is set.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Singed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 tools/libs/light/libxl_arm.c | 47 +++++++++++++++++++++++++++++++++++-
 1 file changed, 46 insertions(+), 1 deletion(-)

diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index 803c3b39b7..7b887898bb 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -1326,6 +1326,41 @@ static int copy_partial_fdt(libxl__gc *gc, void *fdt=
, void *pfdt)
     return 0;
 }
=20
+static int modify_partial_fdt(libxl__gc *gc, void *pfdt)
+{
+    int nodeoff, proplen, i, r;
+    const fdt32_t *prop;
+    fdt32_t *prop_c;
+
+    nodeoff =3D fdt_path_offset(pfdt, "/passthrough");
+    if (nodeoff < 0)
+        return nodeoff;
+
+    for (nodeoff =3D fdt_first_subnode(pfdt, nodeoff);
+         nodeoff >=3D 0;
+         nodeoff =3D fdt_next_subnode(pfdt, nodeoff)) {
+
+        prop =3D fdt_getprop(pfdt, nodeoff, "iommus", &proplen);
+        if (!prop)
+            continue;
+
+        prop_c =3D libxl__zalloc(gc, proplen);
+
+        for (i =3D 0; i < proplen / 8; ++i) {
+            prop_c[i * 2] =3D cpu_to_fdt32(GUEST_PHANDLE_VSMMUV3);
+            prop_c[i * 2 + 1] =3D prop[i * 2 + 1];
+        }
+
+        r =3D fdt_setprop(pfdt, nodeoff, "iommus", prop_c, proplen);
+        if (r) {
+            LOG(ERROR, "Can't set the iommus property in partial FDT");
+            return r;
+        }
+    }
+
+    return 0;
+}
+
 #else
=20
 static int check_partial_fdt(libxl__gc *gc, void *fdt, size_t size)
@@ -1344,6 +1379,13 @@ static int copy_partial_fdt(libxl__gc *gc, void *fdt=
, void *pfdt)
     return -FDT_ERR_INTERNAL;
 }
=20
+static int modify_partial_fdt(libxl__gc *gc, void *pfdt)
+{
+    LOG(ERROR, "partial device tree not supported");
+
+    return ERROR_FAIL;
+}
+
 #endif /* ENABLE_PARTIAL_DEVICE_TREE */
=20
 #define FDT_MAX_SIZE (1<<20)
@@ -1466,8 +1508,11 @@ next_resize:
         if (d_config->num_pcidevs)
             FDT( make_vpci_node(gc, fdt, ainfo, dom) );
=20
-        if (info->arch_arm.viommu_type =3D=3D LIBXL_VIOMMU_TYPE_SMMUV3)
+        if (info->arch_arm.viommu_type =3D=3D LIBXL_VIOMMU_TYPE_SMMUV3) {
             FDT( make_vsmmuv3_node(gc, fdt, ainfo, dom) );
+            if (pfdt)
+                FDT( modify_partial_fdt(gc, pfdt) );
+        }
=20
         for (i =3D 0; i < d_config->num_disks; i++) {
             libxl_device_disk *disk =3D &d_config->disks[i];
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259675.1553123 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7f-0003qC-91; Mon, 23 Mar 2026 22:51:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259675.1553123; Mon, 23 Mar 2026 22:51:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7d-0003k3-Qi; Mon, 23 Mar 2026 22:51:45 +0000
Received: by outflank-mailman (input) for mailman id 1259675;
 Mon, 23 Mar 2026 22:51:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=P8gh=BX=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1w4o7Z-0007Yi-KZ
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:51:41 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazon11021085.outbound.protection.outlook.com [52.101.70.85])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d9596067-270a-11f1-b166-2bf370ae4941;
 Mon, 23 Mar 2026 23:51:37 +0100 (CET)
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB9699.eurprd03.prod.outlook.com (2603:10a6:20b:61d::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:51:34 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22:51:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d9596067-270a-11f1-b166-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MWhVMEBhMndRrPJCB9BWO4yZ2BTKFybybnIUKExxphTwMVelCAcPUJ9tASHGAqsHurOMa3L67a1SF168Jd6FyakKlmPCpx5AGz6ciiQe1A0tKrNtrT631Qg4T47+F6TQLTJ2EbFQQg9EdCkeRz9v2iH5HwcETkwSWuI1ZVbvEMRZxIuKqFzXqJiLDgRfFl0PPBlyqaEsHKMY79q9NNi16sl7Snbc1pIUskYF/pCpdiJH48rSPVzwl7Uswxz0ys/eCzca9qVzf+MpOI4KAmSf9ETu93sVVK/l7uuov+f8b6aL3kgTj1Br7ja08/aQ6R2dgu+3hJ4ptrtfM0dAp2rNZA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/2Gp9ycmYctygUv4VGro3ykM2qKvLae9Koft7uwdj+w=;
 b=MMIB24+kE6nh/aUKfMTOBDb6B9Uo8Nkvk4uqne+gvPnYfWm5vakCHe/BixwcvDBR5F1jHfTJupD5bdjhEzyEUbKzRiAzb3A6MauzqNRxJOeOhQv3aolrT/NvV3gMvjYz3fFP1grYcmQndpWsX4T6E7fCRE04Fma6v/FPCH1Kcmd4rPz3gMSlKZ9VGaf9rE/6ctc9QJMPda6jt9uqz0YkQfSkSDa0i/03Dd7TT3ifakWFLHa+5yHJlU/5CFmIlv7FXmv3H4ltRUD/JnsR5ndGqz0nXG5VQDabu/83c4Nx4+j7yvHviCCUQGzIWLE9l4/brsQwU2do2aM6xu8jkd4Uug==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/2Gp9ycmYctygUv4VGro3ykM2qKvLae9Koft7uwdj+w=;
 b=Y3NYfHzkBAfZKKNeFvcs0gfpTg60uMLxwSd69tCQvEdkH62QtDIiNgvghUvnhFTCoynI20p8SYYPQoH5hZaSj4EzDOmUGx0Ax+UnkHOkHeRHDT9zPfu4FRibGfQrPiyXkp0QvMdwuk/RMUbD4jzV9P5rH6KIqdNd0dw0b9LTb6Wy6zhXowJ5qLt/CkM106y98kINY3WixFcykurawYWq0CRlZI8fWEv4A0QNvki7bEE3tvN4n8ZUkOZ25xpy7WIGSNmqfaT+EhFD2rRGW4jFhYp84vvO2T+wxW11hqO9nAmU04bntBLbKInqNUikgIw6c4Xq3ATDK/2/hY7/EcTpxA==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH v2 17/23] xen/arm: vsmmuv3: Alloc virq for virtual SMMUv3
Thread-Topic: [PATCH v2 17/23] xen/arm: vsmmuv3: Alloc virq for virtual SMMUv3
Thread-Index: AQHcuxeZKb7qiGK1V0uwUNCbLZ7/Dg==
Date: Mon, 23 Mar 2026 22:51:34 +0000
Message-ID:
 <f5f131e113a1a9b28ecf746515f57134bd0e1bee.1774305918.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB9699:EE_
x-ms-office365-filtering-correlation-id: a715f908-80c1-4e02-dd88-08de892ebc03
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021|22082099003|56012099003|18002099003;
x-microsoft-antispam-message-info:
 M3p4aAYZQfN4yv8xBleICa6nfVluMoDVVPZzmgFkGu8IKVrhQbQ31KCg1/xvpNJk6u+clsz2++rsmST4yojiwhJ0ixRsZDnzcXX6SAx+Gw1S85fqLntW+JhijuxsoPC7dvXTNbethLuVdSOEoxEQ9nO/g699RGzkDPpaDDHFO/936tKJLV2PVWlTqp0PSZXe3bqGCCGYIMyP9EkWK3vR8jw/i65pb/UrjMgZX+6q/JZEW5MO06yQj2OV74KiHMy9a87yGQDE6nqldMA3GGZsRNzqaw+v1alww+Zz9FUJd2mnEdx6hNQH4SZiPVtDGDrZyvZkZaOY4B5Z3DlqZxK4AEMbT/Dg5k8xHTfLDrNNBvWSjFDGlsuhU5sC5LlMqNvLp+ofj3iAPSeFOZBbfpNcEJfQR5/m56daipG+Lw5h+WDIcefMxrZxUjUYnuj/AmuNaLi2nHdSsWIE+d9u7P2fBTZU0bhWkF9FY7eeUHm7P9TNuMLmGo1xamYYj5pFRyXVsE9kEiq9OTwzdC/RFzm8/H0JflaEgs5SDNW4+0Ac6PiLdl9DKP1tgW+/VReMBkk8QxUNoCQ1RaY0m6R1ez8I5vyZjDURKscfVIpTtzDtl456LLD9VudnKwSrruS1/BnsXU42i1lsC1M6uqv6SXe8dY+xmu9ruuUWh5SujBDEec+7tCwMQPm/PjAESg+kSDak9fg4xRkAPXjaonACGV/bb5Hu44zCmgBeSQS+uovEdrb7D7X3KoDkgjS6YzVSk8utnKHcKenRUFEi3E5lKf8pysl3KIrJA2jiR7IjUBatMo8=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?MSXBgEx8YyvGwthdsqlR/VzxyvUL3Yyvb560qXUo++ShxEhd6+Dx5n3LCr?=
 =?iso-8859-1?Q?qx3hqxlpSgzKadiv6P+zSm+Ybxn9xm1bguXqfty696JvEhNoIBQOprKdye?=
 =?iso-8859-1?Q?hdUUwug4oNvlx2ZDqE+KOJE4gbO+zKo0Pn3Y0/qFERuBw3SWCyEuZd5XIn?=
 =?iso-8859-1?Q?iuSF9cmRVHJnRkNuQ2fURVyKDy54SZPTSSpuz7kS4tjT2Zho+bFotLlXKz?=
 =?iso-8859-1?Q?Wiph//W0lWjR9NAgeREfHw8fxWwChe2buo2E5xyQTFjj33wvh1ruUNNmXk?=
 =?iso-8859-1?Q?7cHZPcmGYapggBM509gzpEAMkLWaYLIdJoL2PKPTqtmjrkY8jPwA7JoW8H?=
 =?iso-8859-1?Q?XBuUlW/+URCn/ADN0+nMSQ6g0o+Zw1n59frGN110d0UaH3mtVGZj7AHdVV?=
 =?iso-8859-1?Q?15zA8j/bbjoo/3WMm7PHQE+yB1oZDbMYhV87Lhdhmw47jJxZIoMejYVtZO?=
 =?iso-8859-1?Q?wf2LbindTi9dZmFaQ8TKs6V6hMZWp7y4Dbf4Jzbt+0+ZSphFrbzk/xHF+j?=
 =?iso-8859-1?Q?2NAKPls4kriFYE0ZzO5vVBpZ46sDXHjogiXtEZuzR+u2qzJG2OhYaQrCmb?=
 =?iso-8859-1?Q?QZVf3B1eQbouaQoRfRg3gVelhteV6X44b5bDJo7iyZjzzWxPRix9hiS8pl?=
 =?iso-8859-1?Q?XJsJILiAuKg7UqT/uzmPGRH6nXsN8KyoPICB27yhjrs57kKtlaUhGOxIYf?=
 =?iso-8859-1?Q?fFcZP8cqR5RSnfxqphYdQB6N5yglLgaVihbWuLfJBIEN/nO6CF+eZxQCpY?=
 =?iso-8859-1?Q?XzJ5aKtGVClwhkvzTzXzFDmET7gWE6lZUZ0vIGzLv3KbrPlGho+xrGyU9k?=
 =?iso-8859-1?Q?8pDuapNU1E+FqH5CiTUnyu1oPj8olytUDmdVmpZ8IE37+9iU+dvIQgFrSG?=
 =?iso-8859-1?Q?6NPTRAHzXPoQsraWSMtW1DeiSPqJi6GUIVhyBWFeenmqF1BYC3dYL7u9u2?=
 =?iso-8859-1?Q?sP5KayqvOefyISDMlEvdzchT+9/AXGadbggrHGhxkKvJt0WQl3n6+rrsIW?=
 =?iso-8859-1?Q?wucuchT3VJSsjV1Jpf8cxASmIt08vkh/jK/Rk4f87wDXEBYgt6Pr5v2IFN?=
 =?iso-8859-1?Q?HZJq7mmVyNJ9NhiBUTJotMcgk1+akl5z3woVf0Xeyn5cpZDnjp6Dr8aQFO?=
 =?iso-8859-1?Q?mr6t5Ld9ZLJYyVS4JWUOoX09wqfchNZG9w+OeYjfxgSVxpTS782y/BXNiM?=
 =?iso-8859-1?Q?H7CZsT3sFe+/caIDnmx7wIFP4iLUXriqUdj2hc4acXRwQ9RCkSm938i878?=
 =?iso-8859-1?Q?MfXOShXIL1UUdhz0692omPCm4Z/qlYPwbhB8K+NDMLyajnzsQVJ/y/4NGh?=
 =?iso-8859-1?Q?eY/C/UOIr8pJ61b2KkXdKvy4pD08CZrk9wCiYUYxmCg5T/m85IzyOY4Y5B?=
 =?iso-8859-1?Q?+GwJaTHDT9HggYf6wnj5XFKwak0tXbIK3GnU195hmLxlsCQe9kb2guEHVC?=
 =?iso-8859-1?Q?gTs9jAMyJm+G7ifYcZU3c6T22zwMqBthkBeBmplPEbQSGGWI9dbQ7ZvaNv?=
 =?iso-8859-1?Q?QtUbRztzBVsJRWoov//lD1dnJZY2uBUAIkajpO5VG+k0qct2ffGh7aBGXe?=
 =?iso-8859-1?Q?/PRQu6wYqphfHWPoHy/V6Glr5h3bGci0duQ0PPb4+1muQJIZ6hOsL6fxR9?=
 =?iso-8859-1?Q?Xbnc0WVrWcYXU7AAxs/4K4kfBYVoFOP0geFYSGonziVf+j2OkNdDKurqn5?=
 =?iso-8859-1?Q?+jlmUMW9HL3jXlSVDcIRtLttM/TsqyoUNe89pT6OHIjAnzQRtmh3f+r6K2?=
 =?iso-8859-1?Q?kC5XmOidbAMRmUKvS0fYYvrqABu43AvrB37CU02G14GNsxjSCAIp0Zu+1R?=
 =?iso-8859-1?Q?OalWECHnxbCsFU6pP+Rz5ROzG9KUNGs=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a715f908-80c1-4e02-dd88-08de892ebc03
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:51:34.8817
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 4SlEXf9XkD4C97iyTLoMQrdZ8FCPqcr3us2Yw2HQ298sfff2sUbKfNsrnxqwBAs1X1U6chAi6tChiTI0fQbywQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9699

From: Rahul Singh <rahul.singh@arm.com>

Alloc and reserve virq for event queue and global error to send event to
guests. Also Modify the libxl to accomadate the new define virq.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 tools/libs/light/libxl_arm.c           | 28 ++++++++++++++++++++++++--
 xen/arch/arm/dom0less-build.c          | 17 ++++++++++++++++
 xen/drivers/passthrough/arm/vsmmu-v3.c | 13 ++++++++++++
 3 files changed, 56 insertions(+), 2 deletions(-)

diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index eb879473f5..803c3b39b7 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -86,8 +86,8 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
 {
     uint32_t nr_spis =3D 0, cfg_nr_spis =3D d_config->b_info.arch_arm.nr_s=
pis;
     unsigned int i;
-    uint32_t vuart_irq, virtio_irq =3D 0;
-    bool vuart_enabled =3D false, virtio_enabled =3D false;
+    uint32_t vuart_irq, virtio_irq =3D 0, vsmmu_irq =3D 0;
+    bool vuart_enabled =3D false, virtio_enabled =3D false, vsmmu_enabled =
=3D false;
     uint64_t virtio_mmio_base =3D GUEST_VIRTIO_MMIO_BASE;
     uint32_t virtio_mmio_irq =3D GUEST_VIRTIO_MMIO_SPI_FIRST;
     int rc;
@@ -102,6 +102,16 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
         vuart_enabled =3D true;
     }
=20
+    /*
+     * If smmuv3 viommu is enabled then increment the nr_spis to allow all=
ocation
+     * of SPI VIRQ for VSMMU.
+     */
+    if (d_config->b_info.arch_arm.viommu_type =3D=3D LIBXL_VIOMMU_TYPE_SMM=
UV3) {
+        nr_spis +=3D (GUEST_VSMMU_SPI - 32) + 1;
+        vsmmu_irq =3D GUEST_VSMMU_SPI;
+        vsmmu_enabled =3D true;
+    }
+
     for (i =3D 0; i < d_config->num_disks; i++) {
         libxl_device_disk *disk =3D &d_config->disks[i];
=20
@@ -170,6 +180,11 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
             return ERROR_FAIL;
         }
=20
+        if (vsmmu_enabled && irq =3D=3D vsmmu_irq) {
+            LOG(ERROR, "Physical IRQ %u conflicting with vSMMUv3 SPI\n", i=
rq);
+            return ERROR_FAIL;
+        }
+
         if (irq < 32)
             continue;
=20
@@ -907,6 +922,7 @@ static int make_vsmmuv3_node(libxl__gc *gc, void *fdt,
 {
     int res;
     const char *name =3D GCSPRINTF("iommu@%llx", GUEST_VSMMUV3_BASE);
+    gic_interrupt intr;
=20
     res =3D fdt_begin_node(fdt, name);
     if (res) return res;
@@ -925,6 +941,14 @@ static int make_vsmmuv3_node(libxl__gc *gc, void *fdt,
     res =3D fdt_property_cell(fdt, "#iommu-cells", 1);
     if (res) return res;
=20
+    res =3D fdt_property_string(fdt, "interrupt-names", "combined");
+    if (res) return res;
+
+    set_interrupt(intr, GUEST_VSMMU_SPI, 0xf, DT_IRQ_TYPE_LEVEL_HIGH);
+
+    res =3D fdt_property_interrupts(gc, fdt, &intr, 1);
+    if (res) return res;
+
     res =3D fdt_end_node(fdt);
     if (res) return res;
=20
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index a48edb9568..7380753fa2 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -225,6 +225,7 @@ static int __init make_vsmmuv3_node(const struct kernel=
_info *kinfo)
     char buf[24];
     __be32 reg[GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS];
     __be32 *cells;
+    gic_interrupt_t intr;
     void *fdt =3D kinfo->fdt;
=20
     snprintf(buf, sizeof(buf), "iommu@%llx", GUEST_VSMMUV3_BASE);
@@ -255,6 +256,22 @@ static int __init make_vsmmuv3_node(const struct kerne=
l_info *kinfo)
     if ( res )
         return res;
=20
+    res =3D fdt_property_string(fdt, "interrupt-names", "combined");
+    if ( res )
+        return res;
+
+    set_interrupt(intr, GUEST_VSMMU_SPI, 0xf, DT_IRQ_TYPE_LEVEL_HIGH);
+
+    res =3D fdt_property(kinfo->fdt, "interrupts",
+                       intr, sizeof(intr));
+    if ( res )
+        return res;
+
+    res =3D fdt_property_cell(kinfo->fdt, "interrupt-parent",
+                            kinfo->phandle_intc);
+    if ( res )
+        return res;
+
     res =3D fdt_end_node(fdt);
=20
     return res;
diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index 7a6c18df53..a5b9700369 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -733,6 +733,7 @@ static const struct mmio_handler_ops vsmmuv3_mmio_handl=
er =3D {
 static int vsmmuv3_init_single(struct domain *d, paddr_t addr,
                                paddr_t size, uint32_t virq)
 {
+    int ret;
     struct virt_smmu *smmu;
=20
     smmu =3D xzalloc(struct virt_smmu);
@@ -748,12 +749,24 @@ static int vsmmuv3_init_single(struct domain *d, padd=
r_t addr,
=20
     spin_lock_init(&smmu->cmd_queue_lock);
=20
+    ret =3D vgic_reserve_virq(d, virq);
+    if ( !ret )
+    {
+        ret =3D -EINVAL;
+        goto out;
+    }
+
     register_mmio_handler(d, &vsmmuv3_mmio_handler, addr, size, smmu);
=20
     /* Register the vIOMMU to be able to clean it up later. */
     list_add_tail(&smmu->viommu_list, &d->arch.viommu_list);
=20
     return 0;
+
+out:
+    xfree(smmu);
+    vgic_free_virq(d, virq);
+    return ret;
 }
=20
 int domain_vsmmuv3_init(struct domain *d)
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259679.1553130 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7g-0004I4-Qe; Mon, 23 Mar 2026 22:51:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259679.1553130; Mon, 23 Mar 2026 22:51: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 1w4o7f-0004AM-Nf; Mon, 23 Mar 2026 22:51:47 +0000
Received: by outflank-mailman (input) for mailman id 1259679;
 Mon, 23 Mar 2026 22:51: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=P8gh=BX=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1w4o7a-0007Yi-Kq
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:51:42 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazon11021085.outbound.protection.outlook.com [52.101.70.85])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d98ffb33-270a-11f1-b166-2bf370ae4941;
 Mon, 23 Mar 2026 23:51:37 +0100 (CET)
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB9699.eurprd03.prod.outlook.com (2603:10a6:20b:61d::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:51:36 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22:51: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: d98ffb33-270a-11f1-b166-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=d0igUW+5pBjNkoNMyP0lxdZGPQPA/lBf4/bBGQf6IxPbiPerdBV09D1ihUUlSchwGpBYHnBzSpwdE9jinUfwriGf0zFHLAD5JJmmpX9y+Q2FRJNW7IkUwCd4Ki6LrUMYYDcu2WK7EnT+HMSsRy0/pHYbwPLFdhhjGAO3bp1nBQ++mGgdamEsHQPNzilAwFzMpavKvC90S0kvB5oorh2supLffNkvGpeeELwpgQbmuXdOLpRKLFVII8eLX2ntL6wY7RlIsSeSbH2gGC70e8ao0CFm3FQZN/7mGXubwhLUeHRqra2XQ0FgV6aD4+42BMR4ueIAEB2aoDvM01Axg3RnNg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0lisQP+TLfEQnpO/kQ1D6SirUFzjk70NyNV3O+NFZVg=;
 b=veVkJ1ZCk2HcAVw6U5XU8eOc1wsNZYCuZIirv4Mi5BCEDH1dHyj+jlW2Om4Z3sDRcutmoL4wQdWL54iZERof7dy6JtAXXm1h9HD2nEN14Yz3XW0g9QdGzlrkdc+hOBUixYfhZReWbICEd3RPywNfxZvjdnRFDE104dbwEvwqZvxwsBnSpPHDkwybgYv+7aC9W9izVBLF8D/T7Y85cub9OaSokJc50Zd9fzrSXns639U8esYIaD4UZEqgqTGhx6RC8gEmQvarrz2EvxnhS8+DmrkyCxTnTyARbRVtjqFRKE3q98L4TI1oUh4KdNe0VSTBEZxkdBTPv2ehQkAuTX95/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=0lisQP+TLfEQnpO/kQ1D6SirUFzjk70NyNV3O+NFZVg=;
 b=Fz1KlrhckYwOhn/TuSwap36HRnOHr8wykjXLKz9YWdgHlbl0DSYIZmnWHqj4KOSkKLYTNHvLdpoqzfQs6Q/H0GQYh0MBUcJTZ1M1hVHKAFmxVS/VwICPJtw2+hz96wczEcFrPPWxaKZ0n2INVyEVrJFQiv8nE7nHZtTYRcF+qLhQKqUymRphcyW6acweIbcSgsa5aVC2isOQDzRumuqG53nNpckvaUVjDWk8RURa9DhKWBQInAXNEiRa02PJO6Iz8Ixvc2DjfF/s/ZQU0++73LwElH50PrwDKfl/VUlhXiTT9g31RpW0/gTTPCUnemp7ga4TbbKN3SAchVR+UFBZgA==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH v2 18/23] xen/arm: vsmmuv3: Add support to send stage-1 event
 to guest
Thread-Topic: [PATCH v2 18/23] xen/arm: vsmmuv3: Add support to send stage-1
 event to guest
Thread-Index: AQHcuxeaOPcMHzAGC0id97FOvbAiNg==
Date: Mon, 23 Mar 2026 22:51:36 +0000
Message-ID:
 <ccf1795a04d97cfec233cb4524822738591f5cd2.1774305918.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB9699:EE_
x-ms-office365-filtering-correlation-id: a24dc277-7beb-4ae7-7225-08de892ebcbb
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021|22082099003|56012099003|18002099003;
x-microsoft-antispam-message-info:
 m4gpx7Z8kr95mNOzR60fPE0+f5fPwUkZsxfU2sWJhEQc3r/Vgx/4l8Is21paVh4mfwMebemnCs1mzC43wWNIu8tJRXOvJ7zujSlAzYEBI/vlW4f+Hw7ZGwamW84uGF1kH0wh7vkssqMKj3uQ5QTjJCM61lmUXW6yAC7RiQa1rZCPWP2jLdfMpHBksnloGdKYOxjiFmzwrqcDTSLMNggK2l2p01fYr4sIjJlyR1QpIB+FQCz9XdTR1JmHQtQ0IWJ7FLR7EEa9vy7kuCH+E7WqDCVi8Q2OaaPuY0MZpHPzMRKGzQBkjQtRvCbyikfXUd19e/9u9SaNN59CK5SHN43lGR+VmPyUclSC6tfTjGRq2fzmS9GPDnOyfb4F2QhhADu29OZfEP+4xIkMgC3K2bwG7hBcHyltSsycBcuSVnrCJwqEz4IFFV42cXUOThL8ru5/cBjAlds8fsgtoheC+n0bUwy61BK/A0W+h6pjXWTJo0wvBOxAp6nvlTcOEBgVvc5fjHVx2MvykRcSqYUKkcxE4ydz7Spa8SNTjwg3YFa/YDC/kdYbiUSSOhn3BkBuuAtQWDKeu9byS2ftWOtW8wKhcFsKdXu8nYYjUwOD72AgCHhb4BZnAGqhCuNDn9OhrNW9cwWw/SaOWcq/jOJF0u7yje0Kzmh7tLKtm1hLbt752DatUIJxI4t0O9/J7PJW/Zxt/B/UjbEATkhWv2LdI8phqKod+0Bb4q9z5aPEpl+xNscI0Yv3tJbozVEiK02YtBWVjBtZY5xPj1u3RPrZYOrLjXlvI5LaEcaxdcG4Z0o/2qg=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?cj23hGS8HOdTT28YA37k4Ad5v8DPVt76QYRE71GJze9VqycOw3PCgQvrOz?=
 =?iso-8859-1?Q?h1Skf2pelInO2lpAGwNLJztKz6dwapbSbQ3AvrQnikbdcM+B3qlAYhlRVS?=
 =?iso-8859-1?Q?Dme00XcMlWCifKbkVs9Z2SlLKshJRXICI20t43vlORLyL+Pfhda2eAL5CQ?=
 =?iso-8859-1?Q?B1uAPv70P2BZdmQshVnYgW0Q8P2IL39oURob2J3B4ZWYQeUGvDW5Gm7Luv?=
 =?iso-8859-1?Q?h467J+83rl9EH3tUl3dr+fwZegd4SO136knRk4vPihSxX1X6SzJ4lv9+m8?=
 =?iso-8859-1?Q?lYvKtUKkWCFL8p0BlFkWyF0PNn5MyylaztFdscZp635KQRNrFN5JDaMsP+?=
 =?iso-8859-1?Q?mKLvVIceIYdQjOGbfAch7CpZGg/FHkNAJmYLDtVzEeX32YTdDp830xkGa3?=
 =?iso-8859-1?Q?a1TqdZchMoYFLPal8J+9fV+gy4IIJ+oDz+ETvV2XJZHGnyfZv395aQHGSt?=
 =?iso-8859-1?Q?AvwN5ipzAgNGlpmy0LkR1qdL7TGRtX4mig0V6RSCncl2T7/6zlUP1t0NKm?=
 =?iso-8859-1?Q?TqPbCU3TU7Kqy3zWWysfTtVuhJBgTdL3WWtHSJ9qH6YiXdoUZ67VXc3kf6?=
 =?iso-8859-1?Q?kjcQMe44Xd91bYlVY8Nwjw085moqTHN5vWAI7Kx5G3NzcTutXP3duGZv/h?=
 =?iso-8859-1?Q?lW2eK0KGFCTdbIJsgMSz0+UzhTaTPAyfHqQnyVcmpFimSeKQhB695rfe1f?=
 =?iso-8859-1?Q?P5ocLvLFbx+lSWuaA8STKxk3EGS8Pla2/lhxbtzSfcDeV4+GzWdHYubxYi?=
 =?iso-8859-1?Q?H8we7NJMkQP3DFurprbP6n/V2hm8z27VdXQ6JaZOJLYPKjVgvvAAC0t7Vi?=
 =?iso-8859-1?Q?KTjtK1mh/NI8fd+F6/Fq4Hfpxbgp/8xrM7D9Y0GO/W6X/vj75u8CRYaHP7?=
 =?iso-8859-1?Q?IBfjsUTtnVb3NLpxqGqvFkcR3shTtuQ5wIGHUrFOZcouUG8S2j0e+Wkn5L?=
 =?iso-8859-1?Q?VEXhly23zK4kS6Hqsv5nqy8j14j2bfFRMFMWqnE1tjs2OKNVmuyLKFr6n4?=
 =?iso-8859-1?Q?rnsCtuDXdd2f5RjhBCBpLibahwyHpXgpQ5qqg2+kvu3i4i1x3d6yvniARb?=
 =?iso-8859-1?Q?5N2z+HrAbThKvTruwaegtChD2dAp72Jbjmxxn3Xc8opaWPndhZB/JH6nUZ?=
 =?iso-8859-1?Q?2kUxAknPKfN7CWfArjyYfF/Sa/5NVhiUQpr7yUGDTVj/FmQXc5Yv8D57DW?=
 =?iso-8859-1?Q?PGwRss7DQtSWtcf1sM2eO9PRxLtTHVQowlQ8EqhUYvJGEB5VtAc7x45dQs?=
 =?iso-8859-1?Q?oI7ccj6SkYBAPTXJYo19LnG53xjRGOf6RgmvDQVVqChNoIZel4uaIiYxgc?=
 =?iso-8859-1?Q?WdnXoUYF0HFmdDI3RLfi+c5pLTvswT1BWKLvdbr+9tl8GsyNyQGoAr3sau?=
 =?iso-8859-1?Q?hXxN8S/M2wqOaFG2kHCbylnBJsVbVcQwPFiGHHuiWy3rMto05agQQOhkjD?=
 =?iso-8859-1?Q?Jr4ECjvfhZMk6Lfxm3GdYI+ZFNCqgzTYYEXYWlL8ZEJpcaymOJQkT9U9yP?=
 =?iso-8859-1?Q?Lmf9QC+yUHjbp/c8yGDdgMMKmDAxbpzYhigqwJR3u117Sdv+1nOKhLnCeH?=
 =?iso-8859-1?Q?VnJSFbakVoJ2siohYAfGrhKPEOco+LuS3OFqfYLY0KQxmg+0PYEeDzet8+?=
 =?iso-8859-1?Q?1Qv76HNQALulEL4fdRpjln0xany/iuWIHZn6cya0Bb0GGjEg/+y9xxOEHp?=
 =?iso-8859-1?Q?lCitKsT/JEMJOvowcCdsCm0GaAXlr+NCtX6SeRbyr7tkebhdZX4I7tO0IM?=
 =?iso-8859-1?Q?99NC3M6p/nHffsM0FgslD7gT9ETW1IfvgK5ZSrhXLv1566yGxF8AcllwTD?=
 =?iso-8859-1?Q?C4U2L/E9DplEcT9l0rTNzFG9Th3jpZE=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a24dc277-7beb-4ae7-7225-08de892ebcbb
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:51:36.0976
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: xkquCQcEiQjiQiqxz3jKGjpNlXeyylfYAIfK1k7Mdhc9jOCKQ8hQz015gV31RqDWxZkhk9/T0q2fIxcKh2uLsA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9699

From: Rahul Singh <rahul.singh@arm.com>

Stage-1 translation is handled by guest, therefore stage-1 fault has to
be forwarded to guest.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/drivers/passthrough/arm/smmu-v3.c  | 48 ++++++++++++++++++++++++--
 xen/drivers/passthrough/arm/vsmmu-v3.c | 45 ++++++++++++++++++++++++
 xen/drivers/passthrough/arm/vsmmu-v3.h | 12 +++++++
 3 files changed, 103 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthroug=
h/arm/smmu-v3.c
index cf8f638a49..4c1951d753 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -869,7 +869,6 @@ static int arm_smmu_init_l2_strtab(struct arm_smmu_devi=
ce *smmu, u32 sid)
 	return 0;
 }
=20
-__maybe_unused
 static struct arm_smmu_master *
 arm_smmu_find_master(struct arm_smmu_device *smmu, u32 sid)
 {
@@ -890,10 +889,51 @@ arm_smmu_find_master(struct arm_smmu_device *smmu, u3=
2 sid)
 	return NULL;
 }
=20
+static int arm_smmu_handle_evt(struct arm_smmu_device *smmu, u64 *evt)
+{
+	int ret;
+	struct arm_smmu_master *master;
+	u32 sid =3D FIELD_GET(EVTQ_0_SID, evt[0]);
+
+	switch (FIELD_GET(EVTQ_0_ID, evt[0])) {
+	case EVT_ID_TRANSLATION_FAULT:
+		break;
+	case EVT_ID_ADDR_SIZE_FAULT:
+		break;
+	case EVT_ID_ACCESS_FAULT:
+		break;
+	case EVT_ID_PERMISSION_FAULT:
+		break;
+	default:
+		return -EOPNOTSUPP;
+	}
+
+	/* Stage-2 event */
+	if (evt[1] & EVTQ_1_S2)
+		return -EFAULT;
+
+	mutex_lock(&smmu->streams_mutex);
+	master =3D arm_smmu_find_master(smmu, sid);
+	if (!master) {
+		ret =3D -EINVAL;
+		goto out_unlock;
+	}
+
+	ret =3D arm_vsmmu_handle_evt(master->domain->d, smmu->dev, evt);
+	if (ret) {
+		ret =3D -EINVAL;
+		goto out_unlock;
+	}
+
+out_unlock:
+	mutex_unlock(&smmu->streams_mutex);
+	return ret;
+}
+
 /* IRQ and event handlers */
 static void arm_smmu_evtq_tasklet(void *dev)
 {
-	int i;
+	int i, ret;
 	struct arm_smmu_device *smmu =3D dev;
 	struct arm_smmu_queue *q =3D &smmu->evtq.q;
 	struct arm_smmu_ll_queue *llq =3D &q->llq;
@@ -903,6 +943,10 @@ static void arm_smmu_evtq_tasklet(void *dev)
 		while (!queue_remove_raw(q, evt)) {
 			u8 id =3D FIELD_GET(EVTQ_0_ID, evt[0]);
=20
+			ret =3D arm_smmu_handle_evt(smmu, evt);
+			if (!ret)
+				continue;
+
 			dev_info(smmu->dev, "event 0x%02x received:\n", id);
 			for (i =3D 0; i < ARRAY_SIZE(evt); ++i)
 				dev_info(smmu->dev, "\t0x%016llx\n",
diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index a5b9700369..5d0dabd2b2 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -103,6 +103,7 @@ struct arm_vsmmu_queue {
 struct virt_smmu {
     struct      domain *d;
     struct      list_head viommu_list;
+    paddr_t     addr;
     uint8_t     sid_split;
     uint32_t    features;
     uint32_t    cr[3];
@@ -237,6 +238,49 @@ void arm_vsmmu_send_event(struct virt_smmu *smmu,
     return;
 }
=20
+static struct virt_smmu *vsmmuv3_find_by_addr(struct domain *d, paddr_t pa=
ddr)
+{
+    struct virt_smmu *smmu;
+
+    list_for_each_entry( smmu, &d->arch.viommu_list, viommu_list )
+    {
+        if ( smmu->addr =3D=3D paddr )
+            return smmu;
+    }
+
+    return NULL;
+}
+
+int arm_vsmmu_handle_evt(struct domain *d, struct device *dev, uint64_t *e=
vt)
+{
+    int ret;
+    struct virt_smmu *smmu;
+
+    if ( is_hardware_domain(d) )
+    {
+        paddr_t paddr;
+        /* Base address */
+        ret =3D dt_device_get_address(dev_to_dt(dev), 0, &paddr, NULL);
+        if ( ret )
+            return -EINVAL;
+
+        smmu =3D vsmmuv3_find_by_addr(d, paddr);
+        if ( !smmu )
+            return -ENODEV;
+    }
+    else
+    {
+        smmu =3D list_entry(d->arch.viommu_list.next,
+                          struct virt_smmu, viommu_list);
+    }
+
+    ret =3D arm_vsmmu_write_evtq(smmu, evt);
+    if ( ret )
+        arm_vsmmu_inject_irq(smmu, true, GERROR_EVTQ_ABT_ERR);
+
+    return 0;
+}
+
 static int arm_vsmmu_find_ste(struct virt_smmu *smmu, uint32_t sid,
                               uint64_t *ste)
 {
@@ -742,6 +786,7 @@ static int vsmmuv3_init_single(struct domain *d, paddr_=
t addr,
=20
     smmu->d =3D d;
     smmu->virq =3D virq;
+    smmu->addr =3D addr;
     smmu->cmdq.q_base =3D FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_CMDQS);
     smmu->cmdq.ent_size =3D CMDQ_ENT_DWORDS * DWORDS_BYTES;
     smmu->evtq.q_base =3D FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_EVTQS);
diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.h b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.h
index e11f85b431..c7bfd3fb59 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.h
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.h
@@ -8,6 +8,12 @@
=20
 void vsmmuv3_set_type(void);
=20
+static inline int arm_vsmmu_handle_evt(struct domain *d,
+                                       struct device *dev, uint64_t *evt)
+{
+    return -EINVAL;
+}
+
 #else
=20
 static inline void vsmmuv3_set_type(void)
@@ -15,6 +21,12 @@ static inline void vsmmuv3_set_type(void)
     return;
 }
=20
+static inline int arm_vsmmu_handle_evt(struct domain *d,
+                                       struct device *dev, uint64_t *evt)
+{
+    return -EINVAL;
+}
+
 #endif /* CONFIG_VIRTUAL_ARM_SMMU_V3 */
=20
 #endif /* __ARCH_ARM_VSMMU_V3_H__ */
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259682.1553138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7k-00058D-Gj; Mon, 23 Mar 2026 22:51:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259682.1553138; Mon, 23 Mar 2026 22: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 1w4o7j-00050n-R9; Mon, 23 Mar 2026 22:51:51 +0000
Received: by outflank-mailman (input) for mailman id 1259682;
 Mon, 23 Mar 2026 22:51:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w4o7a-0003Ca-W8
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:51:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4o7a-004fuD-AZ
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 23:51:42 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c3f6-bab6-0a2a0a5309dd-0a2a450c8c80-14
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:42 +0100
Received: from [52.101.72.86]
 (helo=AM0PR02CU008.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c3fe-f93d-0a2a450c0019-34654856a993-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:42 +0100
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB9699.eurprd03.prod.outlook.com (2603:10a6:20b:61d::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:51:40 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22:51:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=G+/xDdecTU4La3kAS+vG70tdGKrMz/9sbC/xJG/dCW7AFKW/1hG9Amb6nuaxF8w9DD+ohqSNMfMerKJuA+TClW44pphsZVp4OPHKO/dZH9I8VxZ9gWg6QqfnsEa2uJXQF7FRSIHTQRm2tkyKrnXVBZvyJEqcSMOP0X8PQW6q89sO1a4vRQZVHdlDZ5rUPj2y3b8n//0fUY/euBxTQhkb+6++Nf9S+vNkx5mtj5ZieVJdAkw4f0kdQbHBZyMOPuIo7wcneEaPh2JkOY9ixWXpXeL2YBXlMZZAYFdD8ZFDFKIAVo+9z1z6GkpHps9anayeIhRS6pKMsgwCg4TMVxW+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=M5LU7iG+kNVwY/pJJXqeYx+mIUucgqu7L1cZI7G6HOQ=;
 b=PIDush4P0W42I9T31EgcBj3ftJVQMfefsce/VJ/jmlrBrw6QxsEfeZ+KhlfYVWaf8S+dOTwur7J+jDItlJERXKmVvYazD61hD8gxP8MfJIbIbsb+YNnHMkiX6kMm45Xt2k5lagUmfsbzy0wjWYGKGDtEi71rz3dqcqMC73qMDTqAno1dgKmUSFDx9+TVPc1B0zfllO2a+c0jPj6pfo3uneVYQou0zRIBVRA56e5WXkILLy3B3vF+cip1rnKhRvkwZfByk4TKzvJycKEJXwclDasdb3dQhQfr11De5QhJ73y6oqYyWUHFEPvJ70Qr+An6ahOD37Sxi7N2bBRQzHLRCg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=M5LU7iG+kNVwY/pJJXqeYx+mIUucgqu7L1cZI7G6HOQ=;
 b=tZMBebjTClt6CVddTGcfHD/LmlQ6vVYhoiivlU39aWNkFNErK7Ix1fhjco9Y9j0/nlExPIpA9OBMksjtpVgTRRHSsGAoxcu9Q76m/8sjjmaHY4U7DcG82PoTTi7L2bEyQ5TGixKairmP5Y/LWQk0JX31nOcKzoIKukSRgrNvSkVBjfdZH1Am19m1hxBOCDqO0/L2Jt/56LzMSqgxREFL5jkPyRwF3P5glGCA5LxBv/EG+VVud1aC63juyszybU0vHuogW+DWI6D9tSYsQzV3dO3BeY/rTdLB33+rOHr8V0nnXN47nvpAn8spiYs1zKD8UlXL080d2lIcZg6DNrYN+A==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH v2 20/23] xen/arm: vIOMMU: Modify the partial device tree for
 dom0less
Thread-Topic: [PATCH v2 20/23] xen/arm: vIOMMU: Modify the partial device tree
 for dom0less
Thread-Index: AQHcuxec5MNcut7RDUyyvj+xtxMWaA==
Date: Mon, 23 Mar 2026 22:51:39 +0000
Message-ID:
 <4089ffb6b1679bea0b1c3c0d7ef0e88461e67645.1774305918.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB9699:EE_
x-ms-office365-filtering-correlation-id: 65783eb8-7652-481e-a803-08de892ebf0d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021|22082099003|56012099003|18002099003;
x-microsoft-antispam-message-info:
 f9nhS01O7joLhJuwcf3kMC9XWFfdoLSChM/ejz2HcLICsto6J/uVlAlpJnrxNiA1yRRXmxF0IXEvCHisG7jm62gte/mk/4fO3bPPlFASE7AcFlNj/6mWAMZIFz7iwF2rDFVq0gYBNnfOq42fgoLITV7+ofl6scOlwIEJKXc9TmZ1ehaGMc8cBwH/fV/cPRGcXfCaNT0ellrUQxvJJPUhutcLzGrfWf1llYN6UMI0rbk44hxfTGs6ygcPSswJpTxB4FblWBvf4/4csFlMBPYR7XvnHJwYE7z6hFMHRm36CfN9ojifzmMHpwV0O/IK+l2aM6Q5VW9ZQ3lk3X9XtXgmSl4fiKJZmRzhz8i8USX7fPN/bWBf0sE0y0LoBNTo19oIlrNu997nk3zGGipWB1x6/6nu8SQz59JeuDdus7aSTvIWNVedCr1DdZ1guJYht9vv/sSwsaNb/Z5ZGydPveiEHdT3/oP/XkeO3lKWRs6oz0TDsaJdq9b6+WfHER9X8EjjcamoTbMQ3JUjVJNu/VSOXcu7mBwXXm+Hdtj8aYyLOjAPMpWXTzRUYYBEURW43Bx6wPNH5XmzdvdMFDnQLw59MYIGoqJhgYYkP4SdETUhUwIeEYFIUvvcGNQxEBm3M/xJ5OIshrGdj6TZQbnjI06YHbIB7htnV755YXJWPuJBOKVEuVoxQKWrCpieIqfjoce9VhmIkEEfFb6e+jmirNCjlZbd2p0ZsGTtsAQkpzLs6XkSwP0NKOfgJlbFm6EJ2X3UzG8G6VtFzRuUBMtFqegyfdOK6omQeHJueFyhBaUIVFI=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?kKvNy16csB5N9lKzJyofkh8ldb2jop59uvHPb7sCm5j/u2f/X45BwQIoFj?=
 =?iso-8859-1?Q?ZPoHGVS5e1Hnh75xV5vl2A8F9kiw+w6jYT/FhBKJ9bS6IPrc/TguttEX96?=
 =?iso-8859-1?Q?KCNyN5xKM1yVg1mKigFRZ66NxzwowTH7nMHTQ43Zx062+vXYMPYkDm8rSI?=
 =?iso-8859-1?Q?K4ocTuM80nadkujEe8oMlbhjyrUreosp6vn/rJTgtl/1UDoJRVhWUKsvof?=
 =?iso-8859-1?Q?jmhNFghkplBCQ6+KNjSjCqwAp/TjiEJkE3blJkb3i2SrFSUnVptZIuCCid?=
 =?iso-8859-1?Q?wOrgnIyt2J1+TCG0y9+0hbj3l9YtDANVj96/F11DQFodwfAvoql7nhbmhO?=
 =?iso-8859-1?Q?ujBnw0oIXE+Injc3MivxJzc9cWkDsUSuK/obL1kIRpxEMs6fwepf4m+yBm?=
 =?iso-8859-1?Q?YydaKFYEjwyGmrMjFundwoEWMyTB1AT11L476GSMKP2KHDLuUmh+7T/a4I?=
 =?iso-8859-1?Q?92j48JlTimDDW7Xr43aht0L1q01PrREqmKXwvLgpr4Fho6ab9BIaFTmuus?=
 =?iso-8859-1?Q?Sxoc4l78Pb2tLQzZ8JcQlMDyEjmfIpwdNhe9T6+YTUarku+PdOErypccdt?=
 =?iso-8859-1?Q?CXNRxK8HCxGT5hy6BX5utXoCSsXKo08RMSas/9n4tC3GCwvKV8nBMMD3R0?=
 =?iso-8859-1?Q?ebAY3Z8WQQO/504whXMujLptomI2RGdSoL3CjNKj3/Qw9jOUtjF+XnR4DL?=
 =?iso-8859-1?Q?oFHj+Esh1Hxz+G/Lb6SMSX3YiSMQ4vzd06J01E5D+VFiy5J+pz6XjVDnMj?=
 =?iso-8859-1?Q?aRHq9us7QwEYpCS8TrGrOEVTkAup8ss0FSu6HbZeBZSgj0ScgpvI6GIp3A?=
 =?iso-8859-1?Q?9+E6CgUhkKmWG2N2CqmlpLBykFll/Xr45PlEAsn2EBLi89xzaA4g0hmLaU?=
 =?iso-8859-1?Q?yosOCPavy4CZesILfRmFqAcRRNyx50lb3GEaqvSEVDl1PaN8h06VYBtMrl?=
 =?iso-8859-1?Q?Fwn2OZweadnwQZ41Yn5YDZejFoes+4BhyF9ecVAoSpcmOrkCIFYSqOWxGy?=
 =?iso-8859-1?Q?HgF4KMaiJw0ujsIGKACAJWmZuQlBUAkxHAWJjyjJNvf3e67EseMJln/P0Z?=
 =?iso-8859-1?Q?ebW9F5uWVRVJtVsC/CrcZzyeohvmE3ELnVP2oazR3WUjA2GIB6ux/b035q?=
 =?iso-8859-1?Q?oMhFZ3tOf6iy4kwTApKZY09vmLrTZdqCtl4Lqn0a1GRaDsNJ7H+ozHVQPA?=
 =?iso-8859-1?Q?EzWnRwxcUZXzOhHlOGUJwPb4/no9CBLxUTrq67vlngVVUiV3bsD4dXeNrk?=
 =?iso-8859-1?Q?Q/f7ihZ1qnVBHt8yiDsIXDeZVXat++mikFDFDG79EFY4pWoad7XNA9Fdai?=
 =?iso-8859-1?Q?FQsrmU/F8L++hC7FSX2B00bcTk/iVoJG57SbGRhZbfEhiDaf56GwAQMi71?=
 =?iso-8859-1?Q?1opoV0Npr/oyNEFlmjSUJAu/+SabFQGCUhE2ylr9Guvw4LRNxX6OWG1utn?=
 =?iso-8859-1?Q?h7x8aez7AscAFNp0ls6hgiGOI2fj43dPuTLxfOZXRYCA4nBWUGNTy4lDFH?=
 =?iso-8859-1?Q?a1mXLzKfJXvL8m3yWUysRvHHVCcinUWHUiCagzW/GHCWGQIyPT9pv13ays?=
 =?iso-8859-1?Q?ETtCbtYD5HEiMGkQO1vd3ToF2x9ZA98XVosX+0IqqESUJoTYeI316H48wq?=
 =?iso-8859-1?Q?x5TQ2d0QDZrNJSxb57RjjC22SNELo9Ga//Xzdt7nTZO8huTHYfg1OSFVdj?=
 =?iso-8859-1?Q?HpWczeg56Mp7ZXS3dD9FMroUwvV4fmc7x7OVMce6JLXkE8XxZKhcAQXabC?=
 =?iso-8859-1?Q?tuih7ZWg1bKRGg9DOl4b1K32H6EY5yGDYhZbMkI8HmBNbRh91xqRdKBHPi?=
 =?iso-8859-1?Q?/f1YR/WWGVGvA63E4Y8w5Ze7YU8az+Q=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 65783eb8-7652-481e-a803-08de892ebf0d
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:51:39.9512
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: oYXSHPxQC87fCVgnMcaeNbw9Km1w6X/qTVQLCmjd14KnFU61DuWqAb042VPZuDlhy90ON3u/JEIXoh4rwD74mg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9699
X-purgate-ID: tlsNG-d25034/1774306302-F5CB2734-8FFDABB4/0/0
X-purgate-type: clean
X-purgate-size: 2444

From: Rahul Singh <rahul.singh@arm.com>

To configure IOMMU in guest for passthrough devices, user will need to
copy the unmodified "iommus" property from host device tree to partial
device tree. To enable the dom0 linux kernel to confiure the IOMMU
correctly replace the phandle in partial device tree with virtual
IOMMU phandle when "iommus" property is set.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/common/device-tree/dom0less-build.c | 31 ++++++++++++++++++++++++-
 1 file changed, 30 insertions(+), 1 deletion(-)

diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tr=
ee/dom0less-build.c
index 840d14419d..4b74d2f705 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -318,7 +318,35 @@ static int __init handle_prop_pfdt(struct kernel_info =
*kinfo,
     return ( propoff !=3D -FDT_ERR_NOTFOUND ) ? propoff : 0;
 }
=20
-static int __init scan_pfdt_node(struct kernel_info *kinfo, const void *pf=
dt,
+static void modify_pfdt_node(void *pfdt, int nodeoff)
+{
+    int proplen, i, rc;
+    const fdt32_t *prop;
+    fdt32_t *prop_c;
+
+    prop =3D fdt_getprop(pfdt, nodeoff, "iommus", &proplen);
+    if ( !prop )
+        return;
+
+    prop_c =3D xzalloc_bytes(proplen);
+
+    for ( i =3D 0; i < proplen / 8; ++i )
+    {
+        prop_c[i * 2] =3D cpu_to_fdt32(GUEST_PHANDLE_VSMMUV3);
+        prop_c[i * 2 + 1] =3D prop[i * 2 + 1];
+    }
+
+    rc =3D fdt_setprop(pfdt, nodeoff, "iommus", prop_c, proplen);
+    if ( rc )
+    {
+        dprintk(XENLOG_ERR, "Can't set the iommus property in partial FDT"=
);
+        return;
+    }
+
+    return;
+}
+
+static int __init scan_pfdt_node(struct kernel_info *kinfo, void *pfdt,
                                  int nodeoff,
                                  uint32_t address_cells, uint32_t size_cel=
ls,
                                  bool scan_passthrough_prop)
@@ -344,6 +372,7 @@ static int __init scan_pfdt_node(struct kernel_info *ki=
nfo, const void *pfdt,
     node_next =3D fdt_first_subnode(pfdt, nodeoff);
     while ( node_next > 0 )
     {
+        modify_pfdt_node(pfdt, node_next);
         rc =3D scan_pfdt_node(kinfo, pfdt, node_next, address_cells, size_=
cells,
                             scan_passthrough_prop);
         if ( rc )
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259684.1553147 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7l-0005TD-Rx; Mon, 23 Mar 2026 22:51:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259684.1553147; Mon, 23 Mar 2026 22: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 1w4o7l-0005N9-6k; Mon, 23 Mar 2026 22:51:53 +0000
Received: by outflank-mailman (input) for mailman id 1259684;
 Mon, 23 Mar 2026 22:51:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w4o7b-0003K9-Hp
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:51:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4o7a-00AsDj-Tr
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 23:51:42 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c39c-e002-0a2a0a5209dd-0a2a4508b60e-24
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:42 +0100
Received: from [52.101.72.91]
 (helo=AM0PR02CU008.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c3fe-1950-0a2a45080019-3465485b8eea-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:42 +0100
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB9699.eurprd03.prod.outlook.com (2603:10a6:20b:61d::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:51:41 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22:51:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rLhL/ht8HiVwLEAnbUvYYtDuwkJDNlvEUM2mb5fP8baQkaTdAdzOLl1WguM2GXYAvX8WSOQjRGR/W6wpGgkQF/yIqhJPWFBfLuVqKEz6QCQn1Twj3vvNEBaZkmFSCUeCyh4Y4wjzfTuIqFO66BZiCrqOykhTiqxzAX1pKslR7Hkh6zmyZlQ93I80GBeNujG8SVEKH2fb39nWZ8EkMSMXMfsD3OUeUAxqiriCs0wBq+NmphXWHDkcj0yFb3fbvwRK4fRmRxU1zngq36eIaOFDiENa8LoJvw4QtN1Y9M++Ni2lbOrDnjZjdbQ6kDznSFaIMq4PQx4aO4A9e0F3yq1dJA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BgkkRirHRVyTQVWPba86Y6DJai1Ro1LG/1mHtQ/Gduc=;
 b=GZyKPT5J463seXfgLEoT4NkcFQXK+VeAm0rEd5mnNkbe5cV8oWhwSPbEMwpzi2BAVN05bRLzA9EvNI9EUCBlVKPVfatF1mS1uTI9qrjUwW49PCLhsAXCQJFUyDtPVGwQ7D+cCyWjkkZ95DMslSzoeJ1LxS6PO17tt3aJNYozY62bvmOZnNLOLdN10kyggokmnQe7o2iGTTCs7GEgtO1CfwLAhW2J1JK8hLnNneIVTGSRAod53ZgzqU5f34AXlw+xVp2m7IwQNfKwFWnZUYdJUA5ekZ+qmolfmwPDjkvUlsfk+pQOzKYD2b4S1QsukTGFoTemNcHJDcjHdxk7nJw1LQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BgkkRirHRVyTQVWPba86Y6DJai1Ro1LG/1mHtQ/Gduc=;
 b=Vww+9oMcYKwdk4+m4ieGATviHFvlUVVW55c26pntSF8HCPaM/b9vp6iZM+lSkah27fSI4QKe5BP7VOycag0HbcE46I7B41Ndb9oLUTCBn6NH+AlRE8I2rsGEVyJFvdrtcVNzPHUhpef/B8BECLwGvLK1XMdtUgOTdmdHkZzPGjl3mYHb3I4Jgilr61EAcwNSqeqkDL88q6FL/hOsAMdKVZr8KdCFkbxN7a5sXdPNirCEwRuNLglmgIJmK/umRl4O7LEy9rjwdnlozaeiqHCAztJxDlNPiU4dtqcwd+3utyhk5h4QAnE6pISgiS31UsSvlmYWW7jfJELRgMmuPZ8BQQ==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Milan Djokic <milan_djokic@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 21/23] xen/arm: vIOMMU vSID->pSID mapping layer
Thread-Topic: [PATCH v2 21/23] xen/arm: vIOMMU vSID->pSID mapping layer
Thread-Index: AQHcuxedPA9PfL7sD0CgwT84cLTN7Q==
Date: Mon, 23 Mar 2026 22:51:41 +0000
Message-ID:
 <fd09246c0c9eb0ec369c180a2993ed47aa73a29f.1774305918.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB9699:EE_
x-ms-office365-filtering-correlation-id: 697fc848-7071-4394-5e41-08de892ebfc5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021|22082099003|56012099003|18002099003;
x-microsoft-antispam-message-info:
 Q89CLKd+j4x9tOVVkjFPNrHRSlc8yiDt7EDwMoO879aIH81EHyHucLSsXvQfrZT516kMUvUb7fUS7nA9PppGkxuo4trJuYhshhY7/utqqlG473HhO7m0M1SYuyMBz+K6e8pH9TUpOhKtYbVbOj/4cG+GTig/4CvMCxNo3KlDQZnvSvxAXxVfl73tppeS1F6UUAlfwTJgorw9QjgDV1uGGDpE/QteSOAth24ooX8B4AuqFUCRIxkNiYepJbhzZ39Y6gFn6/lIlWhE9v76rquN3S/Id8r2mW0vTd9t3OjxJz0SGD00yGmGS0zjYvyV/u6fYfTaVP7ByDsVmeMdr8Z+rqzKnbsKLAdujTB5qoU6cZFz2k+clpt1J7AsWu+q7528mtIaJvkkQXIm+2Yrl9B40DzIaou1AEnuK32tKQLjk3A7m31NHllUrmzoibE5cbG5anC6oQn6mdBrglNCZ7TmqGVNPuII0QfOkwSS3OFvFarEx17c5bbvFaYDNy0mp/bZCfmjUpzk25GwxmFsx92Rm3ZWuSHBtZb5QdOvsrkdvALAlpRudT+rBWdrjwsVp4FbVIaddK7Tr+t216Ri50/cLzS1aFlBDfZFEJpZG2Chorj26yNfylTS/XrP//8UPIOEYF6qapMPUp4FFeYV3UXNT+9x/m4Y0Ek/0m//xa2by7tlHO+xhFCbdphgxgHdW0AalpVCXSPs6aAgxDUJ18x5IXXOlLPf7n7w5QGZyKd+JX2clqcZmmCt0G6bKzFO58VnuEb+pP8YUPesk6HGZzkweLPc+No3AqitV2RnUoyT7tw=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?cPpSzXLOw5NT1OQnJjncxz1eidy/m55yMlpBEE/3XscZuVF2TPK1P0zbNC?=
 =?iso-8859-1?Q?tLeDGWfwHzy7wqRAG7DHyNJOh1GnmC7Vap366NnRcVDjZErymrFCu6F9Oh?=
 =?iso-8859-1?Q?BwQkeG6KQfetY0E5yttEXfCcfAIfil0WolmbdVUZWozua8vrsX5diWBO8e?=
 =?iso-8859-1?Q?iAQbp2aIDigt2Wm8GiIx33e6V76hHZJnvLskV689rxjlIVVgKz/qpOE+hV?=
 =?iso-8859-1?Q?YPrddHSE2dIDV8+S+7t8L1pfr01EPRAql3A9YM8L1PcdmbdQQhzWi9V7Vp?=
 =?iso-8859-1?Q?23YwtUwf9Sz3jeJNYNX4XVydUy0lNNiNf2bQST7clGVY3YtFNxgl6DTR71?=
 =?iso-8859-1?Q?39yDKyMrVqN0v5vN14EV93bdwvfxFsgNfu7M8zGTMVlI/k/67u7maEdiSp?=
 =?iso-8859-1?Q?XSqMW+v7LySWbodREUYiBIcFp7M52LIBSPVBgbVWQAxpnTdN1ieis9OUvl?=
 =?iso-8859-1?Q?NXnk44NZnRS4ipXFfulDj0Fo4YeRbcdf599g+p2e9stVUCBkWYYq6pS6qt?=
 =?iso-8859-1?Q?OMKXvR3ltsX1wFHmQgLn8TwTqst3nfvfsOXmArcV0PTKq+PX2yTD261Y95?=
 =?iso-8859-1?Q?f5+tNL9Ddx97XxMrY9HJCUNxwicTFr+zr+PIdn2g5Hp40WwpI6puAQPouU?=
 =?iso-8859-1?Q?eo9frybNvBON3ANNZ7Vj49U2HCRApD72l/SqQ8rN/zGoQKmkOLLeKN3gG4?=
 =?iso-8859-1?Q?vwqSc6U9jTzbfUYQxhRxWmIQJ8cdpKcoFrtSIKtUpgKypYcPJTFlLoqhWH?=
 =?iso-8859-1?Q?ccFRbDYBVF4enJS1rnUOs+PuJga3Oy/3dOuBANM0gfIs8DShTCWi5L2ai9?=
 =?iso-8859-1?Q?uhIsioUWjEu1jzlg3xg6Slhultm05jM2ebd0+RQi8aopqVXILFAcFv6Vq4?=
 =?iso-8859-1?Q?i+951LVAZ/rdi+3taIbeq4lkxLfHP8oLqTHUqJPbSvAEhRLl7eNLoups87?=
 =?iso-8859-1?Q?QqYMtl35eHQlUCNgbyf3b/4RnXJdYOv3PRE0kONrn9qS6dV6Tg4235nOPs?=
 =?iso-8859-1?Q?eeTRKxsXoDwomTYBg+QxfIlNccK7K9nopzim3EuYoAUCKeE3dKsvX1UrT6?=
 =?iso-8859-1?Q?kkPHFe5xhgmYG+An0QFqz2OQEK9DPP6c9WTwxUK2GBLlygi/KnJ42xjhW8?=
 =?iso-8859-1?Q?Iq6wKWhrfm7tYTpSLFI+udWJyemm6F3ofTHzg9SkK6SZVz85vPqtmjm14x?=
 =?iso-8859-1?Q?hNXpdI8Gx1d972Sp5xR57UQ/W9b5YzDhlpbWGc595Fj+XM7oW4TOKZre9y?=
 =?iso-8859-1?Q?6rxXo21aGcsud6/AqT9687y7GBYjkLftaXs30IJOXD+83kLse0cKhXaiCx?=
 =?iso-8859-1?Q?QxXA/dOCr+W1wDZi6LypuhaPuL6wc9CGL6wQp6gAALf0Abqw9eWgp+2tzC?=
 =?iso-8859-1?Q?cE1EXaa+tcyMaDbF4eM0XWuWSvzUlA/+ym0vB7LvkuEumc24lAwaqQF0r/?=
 =?iso-8859-1?Q?jzXiNarPEbZlrHkhQxuz66Ue8EU41rVOQ17feugQtEZV5z56FFolyf5jju?=
 =?iso-8859-1?Q?BVI0uvrV3CuCO2Dk9N7SGDSDGZVsHmV3wA24cro1UrGASa4addCQPoYVAE?=
 =?iso-8859-1?Q?eM3c/KZvmJdJeLZolq2Y6OUVha4Ek5w/opzyWjaw3S7dYXRtiHDNcloS5Z?=
 =?iso-8859-1?Q?cZr2msi8LBoP+MzstVXEbtYAC7MxunwU9KBfUz2rhiS4Wg49Q0cprOvotg?=
 =?iso-8859-1?Q?b62mbLcVpZ0T7sqJtkNPLWW+trONieynK0lZZNHMoUByZuzJeXbpOwbboJ?=
 =?iso-8859-1?Q?s5zeYzsbXmUjBaSoNd7HXkIwZYZiMVfgygUAAhFvmW/ZV/P42tUKLF82Jr?=
 =?iso-8859-1?Q?uwgPgDr52dGYiofgp+gcDIcFQFL/cXc=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 697fc848-7071-4394-5e41-08de892ebfc5
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:51:41.1759
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: p9f+0ebhXoTWuGdLuXToa5Ytb/kup5BgNXH/CaxZJCICeTUSfqd4UVE03PcCo893PtxDnCUJfoH9PcewDy30og==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9699
X-purgate-ID: tlsNG-c1860d/1774306302-EBC9C726-C97B1BC3/0/0
X-purgate-type: clean
X-purgate-size: 11154

Introduce vIOMMU mapping layer in order to support passthrough of IOMMU
devices attached to different physical IOMMUs (e.g. devices with the same s=
treamID).
New generic vIOMMU API is added: viommu_allocate_free_vid().
This function will allocate a new guest vSID and map it to input pSID.
Once mapping is established, guest will use vSID for stage-1 commands
and xen will translate vSID->pSID and propagate it towards stage-2.
Introduced naming is generic (vID/pID), since this API could be used
for other IOMMU types in the future.
Implemented usage of the new API for dom0less guests. vSIDs are allocated
on guest device tree creation and the original pSID is
replaced with vSID which shall be used by the guest driver.

Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/arch/arm/include/asm/viommu.h       | 10 ++++
 xen/common/device-tree/dom0less-build.c | 32 +++++++++---
 xen/drivers/passthrough/arm/viommu.c    |  7 +++
 xen/drivers/passthrough/arm/vsmmu-v3.c  | 67 ++++++++++++++++++++++++-
 4 files changed, 106 insertions(+), 10 deletions(-)

diff --git a/xen/arch/arm/include/asm/viommu.h b/xen/arch/arm/include/asm/v=
iommu.h
index b519a73d4d..4cf8664ba3 100644
--- a/xen/arch/arm/include/asm/viommu.h
+++ b/xen/arch/arm/include/asm/viommu.h
@@ -33,6 +33,15 @@ struct viommu_ops {
      * Called during domain destruction to free resources used by vIOMMU.
      */
     int (*relinquish_resources)(struct domain *d);
+
+    /*
+     * Allocate free vSID/vRID for the guest device and establish vID->pID=
 mapping
+     * Called during domain device assignment.
+     * Returns 0 on success and sets vid argument to newly allocated vSID/=
vRID
+     * mapped to physical ID (id argument).
+     * Negative error code returned if allocation fails.
+     */
+    int (*allocate_free_vid)(struct domain *d, uint32_t id, uint32_t *vid)=
;
 };
=20
 struct viommu_desc {
@@ -48,6 +57,7 @@ struct viommu_desc {
=20
 int domain_viommu_init(struct domain *d, uint16_t viommu_type);
 int viommu_relinquish_resources(struct domain *d);
+int viommu_allocate_free_vid(struct domain *d, uint32_t id, uint32_t *vid)=
;
 uint16_t viommu_get_type(void);
 void add_to_host_iommu_list(paddr_t addr, paddr_t size,
                             const struct dt_device_node *node);
diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tr=
ee/dom0less-build.c
index 4b74d2f705..2bf09637b6 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -31,6 +31,8 @@
 #include <xen/static-memory.h>
 #include <xen/static-shmem.h>
=20
+#include <asm/viommu.h>
+
 #define XENSTORE_PFN_LATE_ALLOC UINT64_MAX
=20
 static domid_t __initdata xs_domid =3D DOMID_INVALID;
@@ -318,22 +320,33 @@ static int __init handle_prop_pfdt(struct kernel_info=
 *kinfo,
     return ( propoff !=3D -FDT_ERR_NOTFOUND ) ? propoff : 0;
 }
=20
-static void modify_pfdt_node(void *pfdt, int nodeoff)
+#ifdef CONFIG_VIRTUAL_IOMMU
+static void modify_pfdt_node(void *pfdt, int nodeoff, struct domain *d)
 {
     int proplen, i, rc;
     const fdt32_t *prop;
     fdt32_t *prop_c;
+    uint32_t vsid;
=20
-    prop =3D fdt_getprop(pfdt, nodeoff, "iommus", &proplen);
+    prop =3D fdt_getprop(pfdt, nodeoff, "iommus", &proplen);=20
     if ( !prop )
         return;
=20
     prop_c =3D xzalloc_bytes(proplen);
=20
+    /*=20
+     * Assign <vIOMMU vSID> pairs to iommus property and establish
+     * vSID->pSID mappings
+    */
     for ( i =3D 0; i < proplen / 8; ++i )
     {
         prop_c[i * 2] =3D cpu_to_fdt32(GUEST_PHANDLE_VSMMUV3);
-        prop_c[i * 2 + 1] =3D prop[i * 2 + 1];
+        rc =3D viommu_allocate_free_vid(d, fdt32_to_cpu(prop[i * 2 + 1]), =
&vsid);
+        if( rc ) {
+            dprintk(XENLOG_ERR, "Failed to allocate new vSID for iommu dev=
ice");
+            return;
+        }
+        prop_c[i * 2 + 1] =3D cpu_to_fdt32(vsid);
     }
=20
     rc =3D fdt_setprop(pfdt, nodeoff, "iommus", prop_c, proplen);
@@ -345,11 +358,14 @@ static void modify_pfdt_node(void *pfdt, int nodeoff)
=20
     return;
 }
+#else
+    static void modify_pfdt_node(void *pfdt, int nodeoff, struct domain *d=
) {}
+#endif
=20
 static int __init scan_pfdt_node(struct kernel_info *kinfo, void *pfdt,
                                  int nodeoff,
                                  uint32_t address_cells, uint32_t size_cel=
ls,
-                                 bool scan_passthrough_prop)
+                                 bool scan_passthrough_prop, struct domain=
 *d)
 {
     int rc =3D 0;
     void *fdt =3D kinfo->fdt;
@@ -372,9 +388,9 @@ static int __init scan_pfdt_node(struct kernel_info *ki=
nfo, void *pfdt,
     node_next =3D fdt_first_subnode(pfdt, nodeoff);
     while ( node_next > 0 )
     {
-        modify_pfdt_node(pfdt, node_next);
+        modify_pfdt_node(pfdt, node_next, d);
         rc =3D scan_pfdt_node(kinfo, pfdt, node_next, address_cells, size_=
cells,
-                            scan_passthrough_prop);
+                            scan_passthrough_prop, d);
         if ( rc )
             return rc;
=20
@@ -443,7 +459,7 @@ static int __init domain_handle_dtb_boot_module(struct =
domain *d,
             res =3D scan_pfdt_node(kinfo, pfdt, node_next,
                                  DT_ROOT_NODE_ADDR_CELLS_DEFAULT,
                                  DT_ROOT_NODE_SIZE_CELLS_DEFAULT,
-                                 false);
+                                 false, d);
             if ( res )
                 goto out;
             continue;
@@ -453,7 +469,7 @@ static int __init domain_handle_dtb_boot_module(struct =
domain *d,
             res =3D scan_pfdt_node(kinfo, pfdt, node_next,
                                  DT_ROOT_NODE_ADDR_CELLS_DEFAULT,
                                  DT_ROOT_NODE_SIZE_CELLS_DEFAULT,
-                                 true);
+                                 true, d);
             if ( res )
                 goto out;
             continue;
diff --git a/xen/drivers/passthrough/arm/viommu.c b/xen/drivers/passthrough=
/arm/viommu.c
index 5f5892fbb2..4b7837a91f 100644
--- a/xen/drivers/passthrough/arm/viommu.c
+++ b/xen/drivers/passthrough/arm/viommu.c
@@ -71,6 +71,13 @@ int viommu_relinquish_resources(struct domain *d)
     return cur_viommu->ops->relinquish_resources(d);
 }
=20
+int viommu_allocate_free_vid(struct domain *d, uint32_t id, uint32_t *vid)=
 {
+    if ( !cur_viommu )
+        return -ENODEV;
+
+    return cur_viommu->ops->allocate_free_vid(d, id, vid);
+}
+
 uint16_t viommu_get_type(void)
 {
     if ( !cur_viommu )
diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index 5d0dabd2b2..604f09e980 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -53,6 +53,8 @@ extern const struct viommu_desc __read_mostly *cur_viommu=
;
 #define smmu_get_ste_s1ctxptr(x)    FIELD_PREP(STRTAB_STE_0_S1CTXPTR_MASK,=
 \
                                     FIELD_GET(STRTAB_STE_0_S1CTXPTR_MASK, =
x))
=20
+#define MAX_VSID   (1 << SMMU_IDR1_SIDSIZE)
+
 /* event queue entry */
 struct arm_smmu_evtq_ent {
     /* Common fields */
@@ -100,6 +102,14 @@ struct arm_vsmmu_queue {
     uint8_t     max_n_shift;
 };
=20
+/* vSID->pSID mapping entry */
+struct vsid_entry {
+    bool        valid;
+    uint32_t    vsid;
+    struct host_iommu *phys_smmu;
+    uint32_t    psid;
+};
+
 struct virt_smmu {
     struct      domain *d;
     struct      list_head viommu_list;
@@ -118,6 +128,7 @@ struct virt_smmu {
     uint64_t    evtq_irq_cfg0;
     struct      arm_vsmmu_queue evtq, cmdq;
     spinlock_t  cmd_queue_lock;
+    struct vsid_entry *vsids;
 };
=20
 /* Queue manipulation functions */
@@ -426,6 +437,29 @@ static int arm_vsmmu_handle_cfgi_ste(struct virt_smmu =
*smmu, uint64_t *cmdptr)
     struct arm_vsmmu_s1_trans_cfg s1_cfg =3D {0};
     uint32_t sid =3D smmu_cmd_get_sid(cmdptr[0]);
     struct iommu_guest_config guest_cfg =3D {0};
+    uint32_t psid;
+    struct arm_smmu_evtq_ent ent =3D {
+        .opcode =3D EVT_ID_BAD_STE,
+        .sid =3D sid,
+        .c_bad_ste_streamid =3D {
+            .ssid =3D 0,
+            .ssv =3D false,
+        },
+    };
+
+    /* SIDs identity mapped for HW domain */
+    if ( is_hardware_domain(d) )
+        psid =3D sid;
+    else {
+        /* vSID out of range or not mapped to pSID */
+        if ( sid >=3D MAX_VSID || !smmu->vsids[sid].valid )
+        {
+            arm_vsmmu_send_event(smmu, &ent);
+            return -EINVAL;
+        }
+
+        psid =3D smmu->vsids[sid].psid;
+    }
=20
     ret =3D arm_vsmmu_find_ste(smmu, sid, ste);
     if ( ret )
@@ -446,7 +480,7 @@ static int arm_vsmmu_handle_cfgi_ste(struct virt_smmu *=
smmu, uint64_t *cmdptr)
     else
         guest_cfg.config =3D ARM_SMMU_DOMAIN_NESTED;
=20
-    ret =3D hd->platform_ops->attach_guest_config(d, sid, &guest_cfg);
+    ret =3D hd->platform_ops->attach_guest_config(d, psid, &guest_cfg);
     if ( ret )
         return ret;
=20
@@ -791,6 +825,7 @@ static int vsmmuv3_init_single(struct domain *d, paddr_=
t addr,
     smmu->cmdq.ent_size =3D CMDQ_ENT_DWORDS * DWORDS_BYTES;
     smmu->evtq.q_base =3D FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_EVTQS);
     smmu->evtq.ent_size =3D EVTQ_ENT_DWORDS * DWORDS_BYTES;
+    smmu->vsids =3D xzalloc_array(struct vsid_entry, MAX_VSID);
=20
     spin_lock_init(&smmu->cmd_queue_lock);
=20
@@ -850,8 +885,9 @@ int vsmmuv3_relinquish_resources(struct domain *d)
     if ( list_head_is_null(&d->arch.viommu_list) )
         return 0;
=20
-    list_for_each_entry_safe(pos, temp, &d->arch.viommu_list, viommu_list =
)
+    list_for_each_entry_safe(pos, temp, &d->arch.viommu_list, viommu_list)
     {
+        xfree(pos->vsids);
         list_del(&pos->viommu_list);
         xfree(pos);
     }
@@ -859,8 +895,35 @@ int vsmmuv3_relinquish_resources(struct domain *d)
     return 0;
 }
=20
+int vsmmuv3_allocate_free_vid(struct domain *d, uint32_t id, uint32_t *vid=
) {
+    uint16_t i =3D 0;
+    struct virt_smmu *smmu;
+
+    if ( list_head_is_null(&d->arch.viommu_list) )
+        return -ENODEV;
+
+    smmu =3D list_first_entry(&d->arch.viommu_list, struct virt_smmu, viom=
mu_list);
+
+    /* Get first free vSID index */
+    while ( smmu->vsids[i].valid && i++ < MAX_VSID );
+
+    /* Max number of vSIDs already allocated? */
+    if ( i =3D=3D MAX_VSID) {
+        return -ENOMEM;
+    }
+
+    /* Establish vSID->pSID mapping */
+    smmu->vsids[i].valid =3D true;
+    smmu->vsids[i].vsid =3D i;
+    smmu->vsids[i].psid =3D id;
+    *vid =3D smmu->vsids[i].vsid;
+
+    return 0;
+}
+
 static const struct viommu_ops vsmmuv3_ops =3D {
     .domain_init =3D domain_vsmmuv3_init,
+    .allocate_free_vid =3D vsmmuv3_allocate_free_vid,
     .relinquish_resources =3D vsmmuv3_relinquish_resources,
 };
=20
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259693.1553157 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7n-0005pK-Be; Mon, 23 Mar 2026 22:51:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259693.1553157; Mon, 23 Mar 2026 22: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 1w4o7m-0005lZ-EQ; Mon, 23 Mar 2026 22:51:54 +0000
Received: by outflank-mailman (input) for mailman id 1259693;
 Mon, 23 Mar 2026 22:51:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w4o7e-0003nf-4t
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:51:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4o7d-004fuD-Fq
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 23:51:45 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c3f6-bab6-0a2a0a5309dd-0a2a450c8c80-22
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:45 +0100
Received: from [52.101.66.87]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c401-f93d-0a2a450c0019-34654257e4c0-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:45 +0100
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB9699.eurprd03.prod.outlook.com (2603:10a6:20b:61d::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:51:43 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22:51:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fz4VbrLpGL9C+041fr5bzlLu9ZFdDe2EIJd7yA0hE0ncVR7049FwHdr3lVLDbDgUJQuVaoAvPkPiHoR7OV6APvkGtXzU1CtCQ3fhA+BpgEaJYr1bsXmOmLRI/kgYrdiHAFcWc68jpqoWdkaqCc8Sf0oVxKxqcSz0Lo1CHkFFOt8oy267d+4f43qk1vGL7L3Zn5Op/A2hAp81KAQV/aisOBHxNyMQCRAzayLFjIW8oVvS++hzxZFOOMCzVLXA8U3K5CEESva4SwbYjl5mWEBq67nItewLIZ4l32hQwAdNwA5BGuPO4nCLN6RYgBYytT3vyELL4VbpmHHFm70/j4emLQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gmh6EAphuAL/gDfScNCpPeZ1mXHcEQ3KZCH14Om7lUQ=;
 b=QTDJhPwfeGW0T24L5BQY6d1jourj7OClyCmhFvY/JiGFtacWzLn1aq3NaiGAVUChzL+OtgSZsL6MZEB0EoMGmGi9i1UcxK+DnHlvk9G6gXWsgw430ZXbaDSSkJ4F8nvZgEsYQf2MzK1hiatXpRnEq+lWfoMLGTEqYavZGpSm+XrGBiuJL0/t5vk7AheM6efXqCN/5uZ5bT7Dd2zgOTHkw6fcbAXZMmldsv5vqE42wK9IiHQ43kDXUjsCHnDFfe3JXLKSRLF4Fvo8zQTErmxwAK1V9hrXyvVznSI/zl0EhJtXQwFm7ycX4T9WscTi4DJFJNBZKuZ0JtsWJoJgFZHdfA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gmh6EAphuAL/gDfScNCpPeZ1mXHcEQ3KZCH14Om7lUQ=;
 b=QZOssT2ZJms7YlkkUwFliKis/D5gByyt2CgS8jz4L9SouDOa+2/eHqKNbEitlAOHFxqSZrb/VLMdkk4yrnRxKHzRrSFvQqwOt47ytyMgUd27cmCukm1dxO6tSpXeymXYNVFIZypcofJvDwdNyB5C4B3hpiFC9x8/+2r319RjpclR/1xh9NEh75QHQT2z8OKuvQclDNpMTVcUTSmB+bmMD5HgMB+6uNGpxfILTpu43MABQ0SOIe5XEa85Cb+IzpjL1PFbkF78QfijAC2dtXwIAKdLBEEl5PGRp0XNClAbG05LgwTFEKRbD4my1vwCaASdzjJVecOxuqkadw4sySnEFw==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Milan Djokic <milan_djokic@epam.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
Subject: [PATCH v2 22/23] libxl/arm: Introduce domctl command for IOMMU
 vSID/vRID mapping
Thread-Topic: [PATCH v2 22/23] libxl/arm: Introduce domctl command for IOMMU
 vSID/vRID mapping
Thread-Index: AQHcuxeew2ClCP8ETk66SlRYjUIe7A==
Date: Mon, 23 Mar 2026 22:51:43 +0000
Message-ID:
 <9f722baf917fd47227b636287dd825fa1d695ca1.1774305918.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB9699:EE_
x-ms-office365-filtering-correlation-id: 44bd5340-ea42-484c-e67d-08de892ec0dd
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|7416014|38070700021|22082099003|56012099003|18002099003;
x-microsoft-antispam-message-info:
 TrtzUw0U4iWg00JQhAp68fKKy55wWOd8N9V89lZaduGqpFqefGg/e1SKoX0uanvigSvC1q6gO1C+NvnSGs+lasepTrAhWUHU/C3+7vVyff+XogABgBKa7ei7tGTlN2yecsHOCzJHvrqqRuOOxOgE5EDW/N2Jtu/q5plKvQ2IesjQy1gKSdJDxTSr/ksSUtSbKEOWKw23Mx0/JiOsPq4zgTe5B0nGdthn7oosOJfudV5D4HHN+82l+LWyxxvFiWUCqGHN5xXlZhikuYifZJRzjUDTTFKRNSEeOC9g8pYSNDraZA0Ngl5lNVE0IWUmQMY2+HTwz6rsDME3B16wWNejr4xI8xMkLLho07DigQqYa21r36MuVaz0xaiTfd1QCqFoP8FSsTEHAPrVNeQ5SD2cAmDkv8EPAmnmWsq1MsuAru1luaVaR92RNfwE3nTPN+Eg2CZR66PbQGnRUOXXyTS6B4NPDIwnzvZvlHbWOWNxNHZbHWXoxlPAm9dnNwi0apPBRokwMecNuzap7vu6rng4LURkevCAUU7DHfh3YETmql74Mq0xOYTMC5YDJbjFSsrG0swBzXVS8dHP4QL7kJMfzpg5w6GJTywba5WfbiZSpCKWBPuJEXXh9mF4BJ1wkmP+7bRzR0tLNS2uIH9H8p9snsFDLQXL8iZRchWeN7ZTW59Yruxu2h6DNGGlMDZqL69sErUyAbJoFPlogizdL4ptWcP/G6+GMLdP5ay0hTXo4mcWk5QplAFuO/CMXQmdsirpeMhK/pKUPdEZVRLzbs0MlqULJG6tTAXuzCNAk766l54=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(38070700021)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?+joBfLAR/R/aQes6L+RrlQN0TkCnz9t8hX8/o+hX2N+xWLNJM5Vd9kjbTy?=
 =?iso-8859-1?Q?JClvfS5ToHtRJaILpmE+azHuNZJ8ehSAg6Ud744lHDKs9EPGEAM1S29Oy1?=
 =?iso-8859-1?Q?+hbNBzbZYiM6kNBhcavp+tDbfFcVS2o3t+YO4VjhvR/0J5JuVLHSJypMXs?=
 =?iso-8859-1?Q?Z7l+MierBpUGhu8Vy4YD34BoNknNpcslzs4sDZgwnVYJ4Gbjg73rnCF+05?=
 =?iso-8859-1?Q?8nddTtQ07LnFrc3ygo25T0z0zBuUXUoSdSPexghm/JXH8RuVC+GriNgopw?=
 =?iso-8859-1?Q?3A1Oac4DyhPdVb918qbdPw6ouQwxP8hsMILC9SQPLP1d4T5rQVGoJGRfNs?=
 =?iso-8859-1?Q?JNmXmkd04DCDtqJgjSzqwHFgz28wW3KVdgeH720b3U6TFAmEZnwZHSzywL?=
 =?iso-8859-1?Q?oQpmpcpKIHYeuoSRfnRSWXa1pEuN/ner86mBkJP2MiwcB1qQCdWe8jejmK?=
 =?iso-8859-1?Q?OXNXGfBdDtiE+513QNueKGT49Iej82g2a2w1dRfKr9d3JGDiX/0mEtJw+5?=
 =?iso-8859-1?Q?vgYp5r8Df9oIibIlFHF3TBXLKr3SNgFdsc8DusgW/IDnX/BVnkPoLnRIhq?=
 =?iso-8859-1?Q?HUFP43/L83HT0fveC7/soOggv/SvfhEDFNH5Joz2+ThszJOlh14GtJy8F7?=
 =?iso-8859-1?Q?1rMe0VdPWfrwBb53OfACYTCyVZU5wheXGa9lgiCWV8OTZ7+7m65L03B4s2?=
 =?iso-8859-1?Q?AQGQMIUf3LwXufwPNQo15DFtDk6I6TfdVTHKDIz5hNzvsgwhTTwTFLsQDM?=
 =?iso-8859-1?Q?LDVrjYO2DBqKXy6Ruei4ARmzJOOQPLctr11iYO93CGQBleKKO4GANknlof?=
 =?iso-8859-1?Q?wk0rZMjTt52v9YBJ4ut/35O5TsVEGb22bMDqVrBRjjWSMK8VzabMQ2ipez?=
 =?iso-8859-1?Q?R4wHXAHEdb+ieMF+DsZAUQR8s9RSopD9yVCoV0KKcsrgYGhNKbTQpUl0QY?=
 =?iso-8859-1?Q?CmR9S+i9Gmy7ocRgglhGLp3FJHMRwuB2CM4jkyWIfQaAwoqsTJEt1cVB1y?=
 =?iso-8859-1?Q?b/SYgLokCYQmiRRDgzskCsmG2cCP8/+VXdDy+wvt1GUmcjKGQLd0ky8EBj?=
 =?iso-8859-1?Q?eML+s3ahz3cCTBVmj7hny1tfEnNosOXcBbl0meGP5jW+YI2UmCEYkRPOKx?=
 =?iso-8859-1?Q?xu6+4agg98NMoG8IVThTg7whKvYaHqOYIgEi9Vqw6lreA6YHH55F6R3nyZ?=
 =?iso-8859-1?Q?BJazwjvNrYcA2cSvASDakjWHM9nCAZCpqj+fqXTIZQgN290vJIQ8ZjQghz?=
 =?iso-8859-1?Q?rtcKmxwwZdCA+BO3ll/Xx6uQNHI6DM6Wvs663tLJuNrHKj8O+8ynHha5KA?=
 =?iso-8859-1?Q?CWi0fiGGNNOtKuT1BaJ7zAt1uQKCp9kR1D/YH3yp0vQtmZ2ZeRoXje0Pfj?=
 =?iso-8859-1?Q?fEAzNvd88tbIL3ZkLo1dPGZn+KyFwPwfjBhFvvEAGNUfg0iLoyB2o3Rp+I?=
 =?iso-8859-1?Q?wW8k3VozLAslXZXRWfyjFXtl0vxPNbAB16KsqxE5QIMoEPwX1GtwIiTk/W?=
 =?iso-8859-1?Q?NaVWn1UJoF3SA5f5GV8We8MbQTsgg82Zg3Lx5rEZK6hYcort5zsiku/AvK?=
 =?iso-8859-1?Q?jpGwnzVzuP/PoIJbNsc77Lg9qPP75tRnTWH9ablccJzIQIeYFG+9MilOOK?=
 =?iso-8859-1?Q?Gc/uDhXoULXY0PPZO/mprBmj2Kj9UDJ54A6l5eoCIXofld6/cNQsCJBlPc?=
 =?iso-8859-1?Q?IRdpu81N9H++cF/Yit4kCDrrqAUYnCRPeNwXRad8PBv6SOt5BUV9+jH9tF?=
 =?iso-8859-1?Q?jL41/fP/iNSq9IcCFpQjL0fvntv8DHEe6wYyAnzY+LO0wHrzVriEgW0p/h?=
 =?iso-8859-1?Q?RI63vbiogYTUTkNc/3E6BoMzWZ8+J18=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 44bd5340-ea42-484c-e67d-08de892ec0dd
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:51:43.0422
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Uq5ghRxbM5vuLXt46A8J7AEcgTA8pOalcfpar4jYs/CWQorCIw4IsW+ojQ1XbK/y5v2l6QCPboSVTCIpTJfpFA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9699
X-purgate-ID: tlsNG-d25034/1774306305-6D6B7734-1997B317/0/0
X-purgate-type: clean
X-purgate-size: 14595

For guests created via control domain (xl, zephyr xenlib), partial device
tree is parsed and loaded on control domain side.
SIDs in guests device tree have to be replaced with
virtual SIDs which are mapped to physical SIDs. In order
to do that, control domain has to request from Xen to create
a new vSID and map it to original pSID for every guest device IOMMU
stream ID. For this purpose, new domctl command (XEN_DOMCTL_viommu_allocate=
_vid)
is introduced which control domain can use to request a new vSID mapping an=
d
insert a new vSID into guest device tree once mapped.
Requested vSID allocation using this interface for vPCI/DT devices.

Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 tools/include/xenctrl.h             |  12 +++
 tools/libs/ctrl/xc_domain.c         |  23 +++++
 tools/libs/light/libxl_arm.c        | 127 +++++++++++++++++++++++++---
 xen/arch/arm/domctl.c               |  31 +++++++
 xen/include/public/domctl.h         |  18 ++++
 xen/xsm/flask/hooks.c               |   4 +
 xen/xsm/flask/policy/access_vectors |   2 +
 7 files changed, 207 insertions(+), 10 deletions(-)

diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
index d5dbf69c89..61be892cc8 100644
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -2659,6 +2659,18 @@ int xc_domain_set_llc_colors(xc_interface *xch, uint=
32_t domid,
                              const uint32_t *llc_colors,
                              uint32_t num_llc_colors);
=20
+/*
+ * Allocate guest IOMMU vSID and establish its mapping to pSID.
+ * It can only be used on domain DT creation.
+ * Currently used for ARM only, possibly for RISC-V in the
+ * future. Function has no effect for x86.
+ */
+int xc_domain_viommu_allocate_vsid_range(xc_interface *xch,
+                                         uint32_t domid,
+                                         uint16_t nr_sids,
+                                         uint32_t first_psid,
+                                         uint32_t *first_vsid);
+
 #if defined(__arm__) || defined(__aarch64__)
 int xc_dt_overlay(xc_interface *xch, void *overlay_fdt,
                   uint32_t overlay_fdt_size, uint8_t overlay_op);
diff --git a/tools/libs/ctrl/xc_domain.c b/tools/libs/ctrl/xc_domain.c
index 01c0669c88..39ffe80e6d 100644
--- a/tools/libs/ctrl/xc_domain.c
+++ b/tools/libs/ctrl/xc_domain.c
@@ -2222,6 +2222,29 @@ out:
=20
     return ret;
 }
+
+int xc_domain_viommu_allocate_vsid_range(xc_interface *xch,
+                                         uint32_t domid,
+                                         uint16_t nr_sids,
+                                         uint32_t first_psid,
+                                         uint32_t *first_vsid)
+{
+    int err;
+    struct xen_domctl domctl =3D {};
+
+    domctl.cmd =3D XEN_DOMCTL_viommu_alloc_vsid_range;
+    domctl.domain =3D domid;
+    domctl.u.viommu_alloc_vsid_range.first_psid =3D first_psid;
+    domctl.u.viommu_alloc_vsid_range.nr_sids =3D nr_sids;
+
+    if ( (err =3D do_domctl(xch, &domctl)) !=3D 0 )
+        return err;
+
+    *first_vsid =3D domctl.u.viommu_alloc_vsid_range.first_vsid;
+
+    return 0;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index 7b887898bb..79904b746c 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -955,6 +955,13 @@ static int make_vsmmuv3_node(libxl__gc *gc, void *fdt,
     return 0;
 }
=20
+/*
+ * Stores starting vSID of vPCI IOMMU SID range
+ * Used as a lookup value to avoid repeated
+ * vSID range allocation on every fdt resize.
+ */
+static int vpci_first_vsid =3D -1;
+
 static int make_vpci_node(libxl__gc *gc, void *fdt,
                           const struct arch_info *ainfo,
                           struct xc_dom_image *dom)
@@ -963,6 +970,9 @@ static int make_vpci_node(libxl__gc *gc, void *fdt,
     const uint64_t vpci_ecam_base =3D GUEST_VPCI_ECAM_BASE;
     const uint64_t vpci_ecam_size =3D GUEST_VPCI_ECAM_SIZE;
     const char *name =3D GCSPRINTF("pcie@%"PRIx64, vpci_ecam_base);
+    uint16_t iommu_range_size =3D 0x1000;
+    uint32_t first_vsid;
+    uint32_t first_psid =3D 0;
=20
     res =3D fdt_begin_node(fdt, name);
     if (res) return res;
@@ -996,8 +1006,20 @@ static int make_vpci_node(libxl__gc *gc, void *fdt,
         GUEST_VPCI_PREFETCH_MEM_SIZE);
     if (res) return res;
=20
+    /* request vSID range allocation if not already allocated */
+    if (vpci_first_vsid < 0) {
+        res =3D xc_domain_viommu_allocate_vsid_range(CTX->xch, dom->guest_=
domid,
+            iommu_range_size, first_psid, &first_vsid);
+        if (res)
+            return res;
+        vpci_first_vsid =3D first_vsid;
+    }
+    else {
+        first_vsid =3D vpci_first_vsid;
+    }
+
     res =3D fdt_property_values(gc, fdt, "iommu-map", 4, 0,
-                              GUEST_PHANDLE_VSMMUV3, 0, 0x10000);
+                             GUEST_PHANDLE_VSMMUV3, first_vsid, iommu_rang=
e_size);
     if (res) return res;
=20
     res =3D fdt_end_node(fdt);
@@ -1326,11 +1348,92 @@ static int copy_partial_fdt(libxl__gc *gc, void *fd=
t, void *pfdt)
     return 0;
 }
=20
-static int modify_partial_fdt(libxl__gc *gc, void *pfdt)
+/*
+ * Store virtualized 'iommus' properties for every node attached to IOMMU
+ * and passthroughed to guest.
+ * Used as a lookup table for mapping <phandle pSID> -> <vhandle vSID>
+ */
+struct viommu_stream {
+    XEN_LIST_ENTRY(struct viommu_stream) entry;
+    char path[128];          /* DT path, stable across resizes */
+    fdt32_t *iommus;         /* fully virtualized iommus property */
+};
+
+static XEN_LIST_HEAD(, struct viommu_stream) viommu_stream_list;
+
+/*
+ * Helper function which creates mapping of dt node to
+ * to virtualized 'iommus' property
+ * Mappings stored in a global 'viommu_stream_list' to
+ * make it reusable for every fdt resize
+ */
+static int viommu_get_stream(libxl__gc *gc,
+                             uint32_t domid,
+                             const fdt32_t *prop,
+                             int proplen,
+                             const char* path, fdt32_t **iommus)
+{
+    int i, r;
+    uint32_t vsid, psid;
+    struct viommu_stream *viommu_stream;
+
+    /* Lookup if stream for target device is already allocated */
+    XEN_LIST_FOREACH(viommu_stream, &viommu_stream_list, entry)
+    {
+        if (!strcmp(viommu_stream->path, path)) {
+            *iommus =3D viommu_stream->iommus;
+            return 0;
+        }
+    }
+
+    /* Allocate new viommu stream */
+    viommu_stream =3D malloc(sizeof(struct viommu_stream));
+    if (!viommu_stream)
+        return ERROR_NOMEM;
+    memset(viommu_stream, 0, sizeof(struct viommu_stream));
+    viommu_stream->iommus =3D malloc(proplen);
+    if (!viommu_stream->iommus)
+        return ERROR_NOMEM;
+    memset(viommu_stream->iommus, 0, proplen);
+
+    LOG(DEBUG, "Creating vIOMMU stream for device %s",
+        path);
+
+    /*
+     * Virtualize device "iommus" property
+     * (replace pIOMMU with vIOMMU phandle and pSIDs with mapped vSIDs)
+     */
+    for (i =3D 0; i < proplen / 8; ++i) {
+        viommu_stream->iommus[i * 2] =3D cpu_to_fdt32(GUEST_PHANDLE_VSMMUV=
3);
+        /* Allocate new vSID mapped to pSID */
+        psid =3D fdt32_to_cpu(prop[i * 2 + 1]);
+        r =3D xc_domain_viommu_allocate_vsid_range(CTX->xch, domid, 1, psi=
d, &vsid);
+        if (r) {
+            LOG(ERROR, "Can't allocate new vSID/vRID for guest IOMMU devic=
e");
+            return r;
+        }
+        viommu_stream->iommus[i * 2 + 1] =3D cpu_to_fdt32(vsid);
+        LOG(DEBUG, "Mapped vSID: %u to pSID: %u", vsid, psid);
+    }
+
+    strcpy(viommu_stream->path, path);
+    *iommus =3D  viommu_stream->iommus;
+
+    XEN_LIST_INSERT_HEAD(&viommu_stream_list, viommu_stream, entry);
+
+    return 0;
+}
+
+/*
+ * Used to update partial fdt when vIOMMU is enabled
+ * Maps dt properties of IOMMU devices to virtual IOMMU
+ */
+static int viommu_modify_partial_fdt(libxl__gc *gc, void *pfdt, uint32_t d=
omid)
 {
-    int nodeoff, proplen, i, r;
+    int nodeoff, proplen, r;
     const fdt32_t *prop;
     fdt32_t *prop_c;
+    char path[128];
=20
     nodeoff =3D fdt_path_offset(pfdt, "/passthrough");
     if (nodeoff < 0)
@@ -1344,11 +1447,16 @@ static int modify_partial_fdt(libxl__gc *gc, void *=
pfdt)
         if (!prop)
             continue;
=20
-        prop_c =3D libxl__zalloc(gc, proplen);
+        r =3D fdt_get_path(pfdt, nodeoff, path, sizeof(path));
+        if ( r < 0 ) {
+            LOG(ERROR, "Can't get passthrough node path");
+            return r;
+        }
=20
-        for (i =3D 0; i < proplen / 8; ++i) {
-            prop_c[i * 2] =3D cpu_to_fdt32(GUEST_PHANDLE_VSMMUV3);
-            prop_c[i * 2 + 1] =3D prop[i * 2 + 1];
+        r =3D viommu_get_stream(gc, domid, prop, proplen, path, &prop_c);
+        if (r) {
+            LOG(ERROR, "Can't get viommu stream");
+            return r;
         }
=20
         r =3D fdt_setprop(pfdt, nodeoff, "iommus", prop_c, proplen);
@@ -1360,7 +1468,6 @@ static int modify_partial_fdt(libxl__gc *gc, void *pf=
dt)
=20
     return 0;
 }
-
 #else
=20
 static int check_partial_fdt(libxl__gc *gc, void *fdt, size_t size)
@@ -1379,7 +1486,7 @@ static int copy_partial_fdt(libxl__gc *gc, void *fdt,=
 void *pfdt)
     return -FDT_ERR_INTERNAL;
 }
=20
-static int modify_partial_fdt(libxl__gc *gc, void *pfdt)
+static int viommu_modify_partial_fdt(libxl__gc *gc, void *pfdt, uint32_t d=
omid)
 {
     LOG(ERROR, "partial device tree not supported");
=20
@@ -1511,7 +1618,7 @@ next_resize:
         if (info->arch_arm.viommu_type =3D=3D LIBXL_VIOMMU_TYPE_SMMUV3) {
             FDT( make_vsmmuv3_node(gc, fdt, ainfo, dom) );
             if (pfdt)
-                FDT( modify_partial_fdt(gc, pfdt) );
+                FDT( viommu_modify_partial_fdt(gc, pfdt, dom->guest_domid)=
 );
         }
=20
         for (i =3D 0; i < d_config->num_disks; i++) {
diff --git a/xen/arch/arm/domctl.c b/xen/arch/arm/domctl.c
index ad914c915f..9679c386e5 100644
--- a/xen/arch/arm/domctl.c
+++ b/xen/arch/arm/domctl.c
@@ -16,6 +16,7 @@
 #include <xen/types.h>
 #include <xsm/xsm.h>
 #include <public/domctl.h>
+#include <asm/viommu.h>
=20
 void arch_get_domain_info(const struct domain *d,
                           struct xen_domctl_getdomaininfo *info)
@@ -179,6 +180,36 @@ long arch_do_domctl(struct xen_domctl *domctl, struct =
domain *d,
     }
     case XEN_DOMCTL_dt_overlay:
         return dt_overlay_domctl(d, &domctl->u.dt_overlay);
+
+#ifdef CONFIG_VIRTUAL_IOMMU
+    case XEN_DOMCTL_viommu_alloc_vsid_range:
+    {
+        int rc =3D 0;
+        uint16_t i;
+        uint32_t vsid;
+        struct xen_domctl_viommu_alloc_vsid_range *viommu_alloc_vsid_range=
 =3D
+            &domctl->u.viommu_alloc_vsid_range;
+
+        for ( i =3D 0; i < viommu_alloc_vsid_range->nr_sids; i++ )
+        {
+            rc =3D viommu_allocate_free_vid(d, viommu_alloc_vsid_range->fi=
rst_psid
+                                            + i, &vsid);
+            if( rc )
+                return rc;
+        }
+
+        if ( !rc )
+        {
+            /* Calculate first vSID from allocated range */
+            viommu_alloc_vsid_range->first_vsid =3D vsid -
+                viommu_alloc_vsid_range->nr_sids + 1;
+            rc =3D copy_to_guest(u_domctl, domctl, 1);
+        }
+
+        return rc;
+    }
+#endif
+
     default:
         return subarch_do_domctl(domctl, d, u_domctl);
     }
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 8f6708c0a7..bb6d867cb8 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -1276,6 +1276,22 @@ struct xen_domctl_get_domain_state {
     uint64_t unique_id;      /* Unique domain identifier. */
 };
=20
+/*
+ * XEN_DOMCTL_viommu_alloc_vsid_range
+ *
+ * Allocate guest vSID range and
+ * establish pSID->vSID mapping for target range.
+ * Allocated range is continous
+ */
+struct xen_domctl_viommu_alloc_vsid_range {
+    /* IN: Range first pSID  */
+    uint32_t first_psid;
+    /* IN: Number of vSIDs to allocate */
+    uint16_t nr_sids;
+    /* OUT: Mapped range first vSID */
+    uint32_t first_vsid;
+};
+
 struct xen_domctl {
 /* Stable domctl ops: interface_version is required to be 0.  */
     uint32_t cmd;
@@ -1368,6 +1384,7 @@ struct xen_domctl {
 #define XEN_DOMCTL_gsi_permission                88
 #define XEN_DOMCTL_set_llc_colors                89
 #define XEN_DOMCTL_get_domain_state              90 /* stable interface */
+#define XEN_DOMCTL_viommu_alloc_vsid_range       91
 #define XEN_DOMCTL_gdbsx_guestmemio            1000
 #define XEN_DOMCTL_gdbsx_pausevcpu             1001
 #define XEN_DOMCTL_gdbsx_unpausevcpu           1002
@@ -1436,6 +1453,7 @@ struct xen_domctl {
 #endif
         struct xen_domctl_set_llc_colors    set_llc_colors;
         struct xen_domctl_get_domain_state  get_domain_state;
+        struct xen_domctl_viommu_alloc_vsid_range viommu_alloc_vsid_range;
         uint8_t                             pad[128];
     } u;
 };
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index b250b27065..91e80ea80d 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -820,6 +820,10 @@ static int cf_check flask_domctl(struct domain *d, uns=
igned int cmd,
     case XEN_DOMCTL_set_llc_colors:
         return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__SET_LLC_COLO=
RS);
=20
+    case XEN_DOMCTL_viommu_alloc_vsid_range:
+        return current_has_perm(d, SECCLASS_DOMAIN2,
+            DOMAIN2__VIOMMU_ALLOC_VSID_RANGE);
+
     default:
         return avc_unknown_permission("domctl", cmd);
     }
diff --git a/xen/xsm/flask/policy/access_vectors b/xen/xsm/flask/policy/acc=
ess_vectors
index ce907d50a4..e4ffe2f5db 100644
--- a/xen/xsm/flask/policy/access_vectors
+++ b/xen/xsm/flask/policy/access_vectors
@@ -255,6 +255,8 @@ class domain2
     set_llc_colors
 # XEN_DOMCTL_get_domain_state
     get_domain_state
+# XEN_DOMCTL_viommu_alloc_vsid_range
+    viommu_alloc_vsid_range
 }
=20
 # Similar to class domain, but primarily contains domctls related to HVM d=
omains
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Mar 23 22:51:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Mar 2026 22:51:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259702.1553165 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4o7o-0006ER-Oc; Mon, 23 Mar 2026 22:51:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259702.1553165; Mon, 23 Mar 2026 22: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 1w4o7n-00068K-Rf; Mon, 23 Mar 2026 22:51:55 +0000
Received: by outflank-mailman (input) for mailman id 1259702;
 Mon, 23 Mar 2026 22:51:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w4o7g-0004HV-6b
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 22:51:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4o7f-0000yw-HR
 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2026 23:51:47 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c3f6-5cb7-0a2a0a5109dd-0a2a4507ed86-12
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:47 +0100
Received: from [52.101.66.73]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69c1c403-fd74-0a2a45070019-346542491a4b-3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Mar 2026 23:51:47 +0100
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AS8PR03MB9699.eurprd03.prod.outlook.com (2603:10a6:20b:61d::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Mon, 23 Mar
 2026 22:51:45 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Mon, 23 Mar 2026
 22: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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dv/OdZsDOHRKEwphdq+LnJhqaJXwp3BELETrdPgQi+bK1vWTziLdjkzR/370D7dMwVTp9YnYhp0blJKyhjkXIoeDOZNUwqS8HU2ZF/VTdBqcR5FnlFR0q9eoSkyHmSsRUe7+akOFLsYE+KdGEWyHjG8XlY6PKduqI6SISVaK2i+KfAC8be+Dk+YEZlIfvjXAO5FJqkvIFD0CgxfE6fPA+i5WZwX26FiTjDotFSIMqPd1WmOks6HueQDG9HUzOVcVyuSfjhjXV3NNQJYYd3blrnjuDXRPTyYXnB7N+OoSgvOTSHMiJZA9PmnAN3itFdcltUwe4FST7imnX2Hzke4vkg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iU495AuzUzpRveBfZL0AfrVfHDlzI5EUc4PMo712Ifw=;
 b=afU7bX5t99Mo2VwfVYdcFyBthMW8bfmOCMKf1BGwxXANDc+VIro/CtNYUOb53XHz/oRQBIDTqe/4O+6UjcmWH3ckdFCbDZPKUjjuVvAZLMmYuMhR+05uu/Jt8fjozujsn/xH545bKKPMF4Nm20CxIf2sJIVx01+LE1w3Q4gQyZ/y91NYTR2qNTwhKvUWOKYNej74Zo2SxQbBR+H5rg9uryxW8aLibm2PKCxsYT/v6qBrQLQcoK+9/jGBAi1ICIxTzfsxOlZSbKA6YJv99QYMfizvxKyznX/rTa72KirGYEoMaBHBavaLgCKXS26XigrewCO8al4CbT9ue/eXrCfuWg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=iU495AuzUzpRveBfZL0AfrVfHDlzI5EUc4PMo712Ifw=;
 b=nX5tn18stuTpjT1YuTHatFy58Ewzb1LfwzvnFLu8kyI/vpM1vJuxymubZm7+GXdNUz5Xp/pZFmBbEnwKw+7H3M5I9zb7QnGXYRoe5dWeoJQmdpgMSHJL3JfR7wgLuwlj+nh7rBLPX8FANX2yPbAtNNA4q0lVpauM6SwKpA5nB4JwOzi5c/2A14Ao+xX3trzrHq9BmG26nkq7GtvfCOF1K3/LLlS2WNasf/V2KLPOWdfzBsstJom58UtDXqyQkrluUROkkGyR2FRfuzEKUoAayLFsqkFMN3uW39+Ve81uCA0Kiq7xjfUGEQdMCJocC5bz5XwVXcjKxZvha1vMSzRLbQ==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Milan Djokic <milan_djokic@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 23/23] doc/arm: vIOMMU design document
Thread-Topic: [PATCH v2 23/23] doc/arm: vIOMMU design document
Thread-Index: AQHcuxefTxSXDTaOykmtNDe4oPsoZQ==
Date: Mon, 23 Mar 2026 22:51:45 +0000
Message-ID:
 <49d070a544492530d8c861fec03c90ea136c989e.1774305918.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|AS8PR03MB9699:EE_
x-ms-office365-filtering-correlation-id: a77d32f9-3c05-4f86-80a8-08de892ec237
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021|22082099003|56012099003|18002099003|3122999024;
x-microsoft-antispam-message-info:
 WetPzcdkMqEPenCigwBrTjXI0J/qqOgoNQwezZ3TTCh7iNt++1Z9oCsKm6X0KmokIImydaeBqloEkZNOrb0Yr7LI7WC/NHTlgIHPXxRZZeBnfUW0yGWDslLEwaLYI6t6BzaSVADppb/VPK3mkRWsYv8/d2YiNijk1AUE9rByrwNDkIgEgOl6QTeJsSDHaQRoZ+VvhN9AJEX7HbXx0KQvCLg5XbvJROjlBcLfP2ztxb4nYhLZEhs1wRXynkSxJjeld92imj9IiAOyVrb7RwXx9HqQyCfuCdv6aTL7rWGhQqZW3BjSGYTr84tBPNEzynZpV/oP1ru5leM8gnxZKI1f+udTkISKX93J92IkTGGUQFLaO0c2otH4Rtg0ps/2vA+sbyQwoCZzKUgzVs6pLKPCTQvmtyObRANTpiHYZMLL4yC9khqnP0u59lkrQnCjJ3d+1zwQFbu+Asw4lVuvQvGbj9D8iytnhAgWJ9usYUkqaa6zsDyIgaAL/49SjBlep1OdLHoJcGXqTJE7xVtiO8NjkheHTLiNjkqZQ0r8m9tUb9oKIQN2mAWszu/vocg1QatIwRVOcgIbajBTyi7F8dRsJroi0D5thh3c1Wf6IbCJ9dQ9LyklgjSPbQsc3g17WlAZ7LVBI3yUh5pUfyGkenuNERrj7vfeEm9zkUxXr5wV0gFgztiXVZW+RadlYrI7TmH0wK1gE1MVDb1btikHyxQsjASEoyUgsKErB+ojYL5LaPXy2zxgy+zKCy/TBFjeDJfV49H9z1n01ggFLfYFyRsYg9IKwGobrbIbtsgwZdhmvDc=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021)(22082099003)(56012099003)(18002099003)(3122999024);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?vWL+aUSKS0kMK5YLVLY47VSyyqG+o6znswVWx3Pq6R5uB74Cb6yGJ//3+F?=
 =?iso-8859-1?Q?ubH9bMLdFGYx+gqxCDOhtBOMG8XalxPGDUOCOcbsODieKKhQ4Zf4N3IJUk?=
 =?iso-8859-1?Q?R3Qd5DfvuJ4ZZ8ih4ohwtuqaCXJFD7hH3Xb5sqPfqQCxuRL6dy2BrCAtyj?=
 =?iso-8859-1?Q?ZIFC/h0biJfM6d5U4TaaV/xknSWkCiJrcMGnrtd06LdLL8kd5C3KZ4tPuk?=
 =?iso-8859-1?Q?C2lBzmFu/0Hyy27ak0h+znIe7kFqkO7rNYsVHHU16R2kt31RDiBlC7p7PL?=
 =?iso-8859-1?Q?IFuFq2mLgcJIUw8+unpbOp28mWvmh0Im63uJlm/emh2+CENBelhn8URxW0?=
 =?iso-8859-1?Q?H7YISQR02YJSoxtCXHIb8QOD5UEegZ5/Omhd9JQ9IAYik8tvkX23JArirz?=
 =?iso-8859-1?Q?+6CLSpXD++5/59PSw6KWC4OLUtpu0A7CUSLyH/NBVjfP10pxDVIq6oNgm5?=
 =?iso-8859-1?Q?ehZx5QAVf0kNxBFp/bhGyCNZ0MSYSQtFS96h8Aw/CMJez84B/gvDo0c/It?=
 =?iso-8859-1?Q?AiQqOVbDBtRgyUuPH+rcWC7sap3BMRZrGS8lMmByty3SyyvlwEK+aG+f5X?=
 =?iso-8859-1?Q?8eaaqdtcXv30wYYVrRGtI4dMPMPDwigOR7WV34F7FW5XGfKfjxEQaQUMRN?=
 =?iso-8859-1?Q?b7N2HQvNOTwFj8TGhYYx2wGThF5DP+XPO/7c2pURTT9ZUbol6lLUUh4rrI?=
 =?iso-8859-1?Q?Oq3dyWDg0DP9WyJbJc/HS+OEF2LwMO/dExbYreFpzxlT1tI5a5HkyFxnRz?=
 =?iso-8859-1?Q?dWba0fBygZptF9eu8J9B4JeeMHgIBjeFis/Q46cMl1q1ZtPRVDnnAvcIFe?=
 =?iso-8859-1?Q?Z9wQJpQu5cY1IfucR3Dt0c0+EQfrRKs1jT5BlnDBOiEZY6h1iPffJcO024?=
 =?iso-8859-1?Q?CR9rdt3UfqiY40302VsMeiwMp2OY4hK5OWSul23QA4WX2zGA+d/ScRULqx?=
 =?iso-8859-1?Q?4LoKM8DB0HzLTvRXWi9VVInco2PO1M3Shk60RA1WUKmNVOojztACWw+AQx?=
 =?iso-8859-1?Q?7NSp5gMrDY4KCT06jIQhzRWN7K5cy1CGlqVdyiKwAo+LKdX2tKrM4IeHkY?=
 =?iso-8859-1?Q?K8fdkGnq+0Nd5VFII73f22hy6kxiTTZf+yaBKBpMG7Cj7vFq6tkKomliMV?=
 =?iso-8859-1?Q?kzA0PD3FmnkjDBfuJsEV6NqaKCTtTgzrUOEWRVHmeaPe90yqe2C42LKIaZ?=
 =?iso-8859-1?Q?aQVaI0P7Ec0j++AE+fd2SwI3Wk+T59+sFTXQgq5DbKqceqWY1ocRGY18Qk?=
 =?iso-8859-1?Q?7DfEPZUTSmFuh4VcQfPQWOrlq+S/rJ6UGPC1cD9A46Culrykduy9X85/SC?=
 =?iso-8859-1?Q?/caNXGCoHxwboeGdgsghboOtoxFS+uL6EdQYK8VYUBwwapoqENv8DWvrDd?=
 =?iso-8859-1?Q?HehUkI7hMiuoMWmzX5tpU8sx+cqh7JcSD6jWlMP817o8V5d7UpjWFP7Kr+?=
 =?iso-8859-1?Q?PdjfxagTCibyQUuofdwd5KKmLCsDyEy/4eLZ0F7JkNVti7j9ZXKnf6xPeR?=
 =?iso-8859-1?Q?jL9Had2E8rB70GXJ359YqbioF1m8VO36OQ/WoSOR72IVp6XCnQ71uf5Mdx?=
 =?iso-8859-1?Q?6QedibWUG2+DBt+qMThNCfK5oHAzm116o43ZWbdLZMaZ8aO6GRPTe35UkS?=
 =?iso-8859-1?Q?lnlX2PbV/ZCTkkWz83MSnk2dR9fNoZUpVDETDbIgt9S9vfC79aYvzIv9g1?=
 =?iso-8859-1?Q?v8P+0NJ41R16PjFVHTCfmIEvksG0DPadLo2qLKl3v6zEQqKtv9tKHGUU1A?=
 =?iso-8859-1?Q?ZBfsL5MlHtxcRAmpLRrBy50kDk+126nAIk8ZpWe5UkUWAY/TdUbkiEuhHm?=
 =?iso-8859-1?Q?c7It7yQ5X/4HvcYu/QjSeVPei9omZ4c=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a77d32f9-3c05-4f86-80a8-08de892ec237
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 22:51:45.3043
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: J+lVWAcPiwlejLl6CHohvUNLM6AqtTALF615SjgG6iYqGR+unemghSDrJL3vNlFdL1VQ5bFrqF3qcNH8CaxA0g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9699
X-purgate-ID: tlsNG-ef75cf/1774306307-4DEB3303-71D9D92F/0/0
X-purgate-type: clean
X-purgate-size: 16557

---
 docs/designs/arm-viommu.rst | 390 ++++++++++++++++++++++++++++++++++++
 1 file changed, 390 insertions(+)
 create mode 100644 docs/designs/arm-viommu.rst

diff --git a/docs/designs/arm-viommu.rst b/docs/designs/arm-viommu.rst
new file mode 100644
index 0000000000..0cf55d7108
--- /dev/null
+++ b/docs/designs/arm-viommu.rst
@@ -0,0 +1,390 @@
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D
+Design Proposal: Add SMMUv3 Stage-1 Support for XEN Guests
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+:Author:     Milan Djokic <milan_djokic@epam.com>
+:Date:       2026-02-13
+:Status:     Draft
+
+Introduction
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+The SMMUv3 supports two stages of translation. Each stage of translation=20
+can be
+independently enabled. An incoming address is logically translated from=20
+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=20
+isolation between different
+devices within OS. XEN already supports Stage 2 translation but there is n=
o
+support for Stage 1 translation.
+This design proposal outlines the introduction of Stage-1 SMMUv3 support=20
+in Xen for ARM guests.
+
+Motivation
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+ARM systems utilizing SMMUv3 require stage-1 address translation to=20
+ensure secure DMA and
+guest managed I/O memory mappings.
+With stage-1 enabled, guest manages IOVA to IPA mappings through its own=20
+IOMMU driver.
+
+This feature enables:
+
+- Stage-1 translation for the guest domain
+- Device passthrough with per-device I/O address space
+
+Design Overview
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+These changes provide emulated SMMUv3 support:
+
+- **SMMUv3 Stage-1 Translation**: stage-1 and nested translation support
+  in SMMUv3 driver.
+- **vIOMMU Abstraction**: Virtual IOMMU framework for guest stage-1
+  handling.
+- **Register/Command Emulation**: SMMUv3 register emulation and command
+  queue handling.
+- **Device Tree Extensions**: Adds `iommus` and virtual SMMUv3 nodes to
+  device trees for dom0 and dom0less scenarios.
+- **Runtime Configuration**: Introduces a `viommu` boot parameter for
+  dynamic enablement.
+
+A single vIOMMU device is exposed to the guest and mapped to one or more
+physical IOMMUs through a Xen-managed translation layer.
+The vIOMMU feature provides a generic framework together with a backend
+implementation specific to the target IOMMU type. The backend is responsib=
le
+for implementing the hardware-specific data structures and command handlin=
g
+logic (currently only SMMUv3 is supported).
+
+This modular design allows the stage-1 support to be reused
+for other IOMMU architectures in the future.
+
+vIOMMU architecture
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+Responsibilities:
+
+Guest:
+ - Configures stage-1 via vIOMMU commands.
+ - Handles stage-1 faults received from Xen.
+
+Xen:
+ - Emulates the IOMMU interface (registers, commands, events).
+ - Provides vSID->pSID mappings.
+ - Programs stage-1/stage-2 configuration in the physical IOMMU.
+ - Propagate stage-1 faults to guest.
+
+vIOMMU commands and faults are transmitted between guest and Xen via
+command and event queues (one command/event queue created per guest).
+
+vIOMMU command Flow:
+
+::
+
+    Guest:
+        smmu_cmd(vSID, IOVA -> IPA)
+
+    Xen:
+        trap MMIO read/write
+        translate vSID->pSID
+        store stage-1 state
+        program pIOMMU for (pSID, IPA -> PA)
+
+All hardware programming of the physical IOMMU is performed exclusively by=
 Xen.
+
+vIOMMU Stage-1 fault handling flow:
+
+::
+
+    Xen:
+        receives stage-1 fault
+        triggers vIOMMU callback
+        injects virtual fault
+
+    Guest:
+        receives and handles fault
+
+vSID Mapping Layer
+------------------
+
+Each guest-visible Stream ID (vSID) is mapped by Xen to a physical Stream =
ID
+(pSID). The mapping is maintained per-domain. The allocation policy guaran=
tees
+vSID uniqueness within a domain while allowing reuse of pSIDs for differen=
t
+pIOMMUs.
+
+* Platform devices receive individually allocated vSIDs.
+* PCI devices receive a contiguous vSID range derived from RID space.
+
+
+Supported Device Model
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+Currently, the vIOMMU framework supports only devices described via the
+Device Tree (DT) model. This includes platform devices and basic PCI
+devices support instantiated through the vPCI DT node. ACPI-described
+devices are not supported.
+
+Guest assigned platform devices are mapped via `iommus` property:
+
+::
+
+    <&pIOMMU pSID> -> <&vIOMMU vSID>
+
+PCI devices use RID-based mapping via the root complex `iommu-map`:
+
+::
+
+    <RID-base &viommu vSID-base length>
+
+PCI Topology Assumptions and Constraints:
+
+- RID space must be contiguous
+- Pre-defined continuous pSID space (0-0x1000)
+- No runtime PCI reconfiguration
+- Single root complex assumed
+- Mapping is fixed at guest DT construction
+
+Constraints for PCI devices will be addressed as part of the future work o=
n
+this feature.
+
+Security Considerations
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+Stage-1 translation provides isolation between guest devices by
+enforcing a per-device I/O address space, preventing unauthorized DMA.
+With the introduction of emulated IOMMU, additional protection
+mechanisms are required to minimize security risks.
+
+1. Observation:
+---------------
+Support for Stage-1 translation in SMMUv3 introduces new data structures=20
+(`s1_cfg` alongside `s2_cfg`)
+and logic to write both Stage-1 and Stage-2 entries in the Stream Table=20
+Entry (STE), including an `abort`
+field to handle partial configuration states.
+
+**Risk:**
+Without proper handling, a partially applied configuration
+might leave guest DMA mappings in an inconsistent state, potentially
+enabling unauthorized access or causing cross-domain interference.
+
+**Mitigation:** *(Handled by design)*
+This feature introduces logic that writes both `s1_cfg` and `s2_cfg` to
+STE and manages the `abort` field - only considering
+configuration if fully attached. This ensures  incomplete or invalid
+device configurations are safely ignored by the hypervisor.
+
+2. Observation:
+---------------
+Guests can now invalidate Stage-1 caches; invalidation needs forwarding
+to SMMUv3 hardware to maintain coherence.
+
+**Risk:**
+Failing to propagate cache invalidation could allow stale mappings,
+enabling access to old mappings and possibly
+data leakage or misrouting between devices assigned to the same guest.
+
+**Mitigation:**
+The guest must issue appropriate invalidation commands whenever
+its stage-1 I/O mappings are modified to ensure that translation caches
+remain coherent.
+
+3. Observation:
+---------------
+Introducing optional per-guest enabled features (`viommu` argument in xl=20
+guest config) means some guests
+may opt-out.
+
+**Risk:**
+Guests without vIOMMU enabled (stage-2 only) could potentially dominate
+access to the physical command and event queues, since they bypass the
+emulation layer and processing is faster comparing to vIOMMU-enabled guest=
s.
+
+**Mitigation:**
+Audit the impact of emulation overhead effect on IOMMU processing fairness
+in a multi-guest environment.
+Consider enabling/disabling stage-1 on a system level, instead of per-doma=
in.
+
+4. Observation:
+---------------
+Guests have the ability to issue Stage-1 IOMMU commands like cache=20
+invalidation, stream table entries
+configuration, etc. An adversarial guest may issue a high volume of=20
+commands in rapid succession.
+
+**Risk:**
+Excessive commands requests can cause high hypervisor CPU consumption=20
+and disrupt scheduling,
+leading to degraded system responsiveness and potential=20
+denial-of-service scenarios.
+
+**Mitigation:**
+
+- Implement vIOMMU commands execution restart and continuation support:
+
+  - Introduce processing budget with only a limited amount of commands
+    handled per invocation.
+  - If additional commands remain pending after the budget is exhausted,
+    defer further processing and resume it asynchronously, e.g. via a
+    per-domain tasklet.
+
+- Batch multiple commands of same type to reduce emulation overhead:
+
+  - Inspect the command queue and group commands that can be processed
+    together (e.g. multiple successive invalidation requests or STE
+    updates for the same SID).
+  - Execute the entire batch in one go, reducing repeated accesses to
+    guest memory and emulation overhead per command.
+  - This reduces CPU time spent in the vIOMMU command processing loop.
+    The optimization is applicable only when consecutive commands of the
+    same type operate on the same SID/context.
+
+5. Observation:
+---------------
+Some guest commands issued towards vIOMMU are propagated to pIOMMU=20
+command queue (e.g. TLB invalidate).
+
+**Risk:**
+Excessive commands requests from abusive guest can cause flooding of=20
+physical IOMMU command queue,
+leading to degraded pIOMMU responsiveness on commands issued from other=20
+guests.
+
+**Mitigation:**
+
+- Batch commands that are propagated to the pIOMMU command queue and
+  implement batch execution pause/continuation.
+  Rely on the same mechanisms as in the previous observation
+  (command continuation and batching of pIOMMU-related commands of the sam=
e
+  type and context).
+- If possible, implement domain penalization by adding a per-domain budget
+  for vIOMMU/pIOMMU usage:
+
+  - Apply per-domain dynamic budgeting of allowed IOMMU commands to
+    execute per invocation, reducing the budget for guests with
+    excessive command requests over a longer period of time
+  - Combine with command continuation mechanism
+
+6. Observation:
+---------------
+The vIOMMU feature includes an event queue used to forward IOMMU events
+to the guest (e.g. translation faults, invalid Stream IDs, permission erro=
rs).
+A malicious guest may misconfigure its IOMMU state or intentionally trigge=
r
+faults at a high rate.
+
+**Risk:**
+Occurrence of IOMMU events with high frequency can cause Xen to flood the
+event queue and disrupt scheduling with
+high hypervisor CPU load for events handling.
+
+**Mitigation:**
+
+- Implement fail-safe state by disabling events forwarding when faults=20
+  are occurred with high frequency and
+  not processed by guest:
+
+  - Introduce a per-domain pending event counter.
+  - Stop forwarding events to the guest once the number of unprocessed
+    events reaches a predefined threshold.
+
+- Consider disabling the emulated event queue for untrusted guests.
+- Note that this risk is more general and may also apply to stage-2-only
+  guests. This section addresses mitigations in the emulated IOMMU layer
+  only. Mitigation of physical event queue flooding should also be conside=
red
+  in the target pIOMMU driver.
+
+Performance Impact
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+With iommu stage-1 and nested translation inclusion, performance=20
+overhead is introduced comparing to existing,
+stage-2 only usage in Xen. Once mappings are established, translations=20
+should not introduce significant overhead.
+Emulated paths may introduce moderate overhead, primarily affecting=20
+device initialization and event/command handling.
+Testing is performed on Renesas R-Car platform.
+Performance is mostly impacted by emulated vIOMMU operations, results=20
+shown in the following table.
+
++-------------------------------+---------------------------------+
+| vIOMMU Operation              | Execution time in guest         |
++=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+
+| Reg read                      | median: 645ns, worst-case: 2us  |
++-------------------------------+---------------------------------+
+| Reg write                     | median: 630ns, worst-case: 1us  |
++-------------------------------+---------------------------------+
+| Invalidate TLB                | median: 2us, worst-case: 10us   |
++-------------------------------+---------------------------------+
+| Invalidate STE                | median: 5us worst_case: 100us   |
++-------------------------------+---------------------------------+
+
+With vIOMMU exposed to guest, guest OS has to initialize IOMMU device
+and configure stage-1 mappings for the devices
+attached to it.
+Following table shows initialization stages which impact stage-1 enabled=20
+guest boot time and compares it with
+stage-1 disabled guest.
+
+NOTE: Device probe execution time varies depending on device complexity.
+A USB host controller was selected as the test device in this case.
+
++---------------------+-----------------------+------------------------+
+| Stage               | Stage-1 Enabled Guest | Stage-1 Disabled Guest |
++=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+
+| IOMMU Init          | ~10ms                 | /                      |
++---------------------+-----------------------+------------------------+
+| Dev Attach / Mapping| ~100ms                | ~90ms                  |
++---------------------+-----------------------+------------------------+
+
+For devices configured with dynamic DMA mappings, DMA allocate/map/unmap=20
+operations performance is
+also impacted on stage-1 enabled guests.
+Dynamic DMA mapping operation trigger emulated IOMMU functions like mmio=20
+write/read and TLB invalidations.
+
++---------------+---------------------------+--------------------------+
+| DMA Op        | Stage-1 Enabled Guest     | Stage-1 Disabled Guest   |
++=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+
+| dma_alloc     | median: 20us, worst: 5ms  | median: 8us, worst: 60us |
++---------------+---------------------------+--------------------------+
+| dma_free      | median: 500us, worst: 10ms| median: 6us, worst: 30us |
++---------------+---------------------------+--------------------------+
+| dma_map       | median: 12us, worst: 60us | median: 3us, worst: 20us |
++---------------+---------------------------+--------------------------+
+| dma_unmap     | median: 400us, worst: 5ms | median: 5us, worst: 20us |
++---------------+---------------------------+--------------------------+
+
+Testing
+=3D=3D=3D=3D=3D=3D=3D
+
+- QEMU-based ARM system tests for Stage-1 translation.
+- Actual hardware validation to ensure compatibility with real SMMUv3=20
+implementations.
+- Unit/Functional tests validating correct translations (not implemented).
+
+Migration and Compatibility
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
+
+This optional feature defaults to disabled (`viommu=3D""`) for backward=20
+compatibility.
+
+Future improvements
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+- Implement the proposed mitigations to address security risks that are=20
+  not covered by the current design
+  (events batching, commands execution continuation)
+- PCI support
+- Support for other IOMMU HW (Renesas, RISC-V, etc.)
+
+References
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+- Original feature implemented by Rahul Singh:
+ =20
+https://patchwork.kernel.org/project/xen-devel/cover/cover.1669888522.git.=
rahul.singh@arm.com/=20
+
+- SMMUv3 architecture documentation
+- Existing vIOMMU code patterns (KVM, QEMU)
\ No newline at end of file
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 01:26:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 01:26:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259865.1553197 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4qXM-0007r0-No; Tue, 24 Mar 2026 01:26:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259865.1553197; Tue, 24 Mar 2026 01:26:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4qXM-0007qs-Hk; Tue, 24 Mar 2026 01:26:28 +0000
Received: by outflank-mailman (input) for mailman id 1259865;
 Tue, 24 Mar 2026 00:59:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=t6JZ=BY=kernel.org=dakr@srs-se1.protection.inumbo.net>)
 id 1w4q7N-0004ff-Cq
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 00:59:37 +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 b88bb1c8-271c-11f1-b166-2bf370ae4941;
 Tue, 24 Mar 2026 01:59:34 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 3151A406AE;
 Tue, 24 Mar 2026 00:59:32 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id EF2ECC4CEF7;
 Tue, 24 Mar 2026 00:59:22 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b88bb1c8-271c-11f1-b166-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774313972;
	bh=g9n6egUYTuF5ke2JJ6m74go1iA9dbs1LNBwQX9Kfxdo=;
	h=From:To:Cc:Subject:Date:From;
	b=r79tvbMTbzL0ftvYwrYFxtc47UR6uhBnmMbW/y7VVV1iRybB+2M4JpIoiYURI0KHc
	 xbQi6Hae6AoFoJmbmbDJaHU6H4twMWZBNd3LQspzN5XukCR8uOrEpuyEmdRt0aOb0U
	 mOwgSJ8cLDV9T8BHYl+ocS0L8OVgW58qmKn8ydBwrFxSGxlpZWrzAsZEqo1gSY7MVu
	 kkOnSl/PVHu6HAiahaLq+b8nbHuZsE8hCdipD5o7lr0426ClKDJ0QYolowXlhy4fkV
	 i8IvftFPJDTfcclR/4ZCSmDk8L1PXC7Ak76kNlhT/lIjYoVE7r0UGtOBo25YTrAjXS
	 EFJsJ4/WWZ6pw==
From: Danilo Krummrich <dakr@kernel.org>
To: Russell King <linux@armlinux.org.uk>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Ioana Ciornei <ioana.ciornei@nxp.com>,
	Nipun Gupta <nipun.gupta@amd.com>,
	Nikhil Agarwal <nikhil.agarwal@amd.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>,
	Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Armin Wolf <W_Armin@gmx.de>,
	Bjorn Andersson <andersson@kernel.org>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	Vineeth Vijayan <vneethv@linux.ibm.com>,
	Peter Oberparleiter <oberpar@linux.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Harald Freudenberger <freude@linux.ibm.com>,
	Holger Dengler <dengler@linux.ibm.com>,
	Mark Brown <broonie@kernel.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	=?UTF-8?q?Eugenio=20P=C3=A9rez?= <eperezma@redhat.com>,
	Alex Williamson <alex@shazbot.org>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>
Cc: linux-kernel@vger.kernel.org,
	driver-core@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	linux-hyperv@vger.kernel.org,
	linux-pci@vger.kernel.org,
	platform-driver-x86@vger.kernel.org,
	linux-arm-msm@vger.kernel.org,
	linux-remoteproc@vger.kernel.org,
	linux-s390@vger.kernel.org,
	linux-spi@vger.kernel.org,
	virtualization@lists.linux.dev,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-arm-kernel@lists.infradead.org,
	Danilo Krummrich <dakr@kernel.org>
Subject: [PATCH 00/12] treewide: Convert buses to use generic driver_override
Date: Tue, 24 Mar 2026 01:59:04 +0100
Message-ID: <20260324005919.2408620-1-dakr@kernel.org>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This is the follow-up of the driver_override generalization in [1], converting
the remaining 11 busses and removing the now-unused driver_set_override()
helper.

All of them (except AP, which has a different race condition) are prone to the
potential UAF described in [2], caused by accessing the driver_override field
from their corresponding match() callback.

In order to address this, the generalized driver_override field in struct device
is protected with a spinlock. The driver-core provides accessors, such as
device_match_driver_override(), device_has_driver_override() and
device_set_driver_override(), which all ensure proper locking internally.

Additionally, the driver-core provides a driver_override flag in struct
bus_type, which, once enabled, automatically registers generic sysfs callbacks,
allowing userspace to modify the driver_override field.

SPI and AP are a bit special; both print "\n" when driver_override is not set,
whereas all other buses (and thus the driver-core) produce "(null)\n" in this
case.

Hence, SPI and AP do not take advantage of the driver_override flag in struct
bus_type; AP additionally maintains a counter in its custom sysfs store().

Technically, we could support a custom fallback string when driver_override is
unset in struct bus_type, but only SPI would benefit from this, since AP has
additional custom logic in store() anyways.

(I'm not sure if there are userspace programs that strictly rely on this;
driverctl seems to check for both, but I rather not break some userspace tool
I'm not aware of. :)

This series is based on v7.0-rc5 with no additional dependencies, hence those
patches can be picked up by subsystems individually.

[1] https://lore.kernel.org/driver-core/20260303115720.48783-1-dakr@kernel.org/
[2] https://bugzilla.kernel.org/show_bug.cgi?id=220789
[3] https://gitlab.com/driverctl/driverctl/-/blob/0.121/driverctl?ref_type=tags#L99

Danilo Krummrich (12):
  amba: use generic driver_override infrastructure
  bus: fsl-mc: use generic driver_override infrastructure
  cdx: use generic driver_override infrastructure
  hv: vmbus: use generic driver_override infrastructure
  PCI: use generic driver_override infrastructure
  platform/wmi: use generic driver_override infrastructure
  rpmsg: use generic driver_override infrastructure
  vdpa: use generic driver_override infrastructure
  s390/cio: use generic driver_override infrastructure
  s390/ap: use generic driver_override infrastructure
  spi: use generic driver_override infrastructure
  driver core: remove driver_set_override()

 drivers/amba/bus.c                 | 37 +++------------
 drivers/base/driver.c              | 75 ------------------------------
 drivers/bus/fsl-mc/fsl-mc-bus.c    | 43 +++--------------
 drivers/cdx/cdx.c                  | 40 ++--------------
 drivers/hv/vmbus_drv.c             | 36 ++------------
 drivers/pci/pci-driver.c           | 11 +++--
 drivers/pci/pci-sysfs.c            | 28 -----------
 drivers/pci/probe.c                |  1 -
 drivers/platform/wmi/core.c        | 36 ++------------
 drivers/rpmsg/qcom_glink_native.c  |  2 -
 drivers/rpmsg/rpmsg_core.c         | 43 +++--------------
 drivers/rpmsg/virtio_rpmsg_bus.c   |  1 -
 drivers/s390/cio/cio.h             |  5 --
 drivers/s390/cio/css.c             | 34 ++------------
 drivers/s390/crypto/ap_bus.c       | 34 +++++++-------
 drivers/s390/crypto/ap_bus.h       |  1 -
 drivers/s390/crypto/ap_queue.c     | 24 +++-------
 drivers/spi/spi.c                  | 19 +++-----
 drivers/vdpa/vdpa.c                | 48 ++-----------------
 drivers/vfio/fsl-mc/vfio_fsl_mc.c  |  4 +-
 drivers/vfio/pci/vfio_pci_core.c   |  5 +-
 drivers/xen/xen-pciback/pci_stub.c |  6 ++-
 include/linux/amba/bus.h           |  5 --
 include/linux/cdx/cdx_bus.h        |  4 --
 include/linux/device/driver.h      |  2 -
 include/linux/fsl/mc.h             |  4 --
 include/linux/hyperv.h             |  5 --
 include/linux/pci.h                |  6 ---
 include/linux/rpmsg.h              |  4 --
 include/linux/spi/spi.h            |  5 --
 include/linux/vdpa.h               |  4 --
 include/linux/wmi.h                |  4 --
 32 files changed, 88 insertions(+), 488 deletions(-)


base-commit: c369299895a591d96745d6492d4888259b004a9e
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 01:26:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 01:26:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259885.1553271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4qXQ-0000ub-Jp; Tue, 24 Mar 2026 01:26:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259885.1553271; Tue, 24 Mar 2026 01: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 1w4qXQ-0000pD-4G; Tue, 24 Mar 2026 01:26:32 +0000
Received: by outflank-mailman (input) for mailman id 1259885;
 Tue, 24 Mar 2026 01:02:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dakr@kernel.org>) id 1w4qAD-00054A-AO
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 01:02:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4qAC-00CORR-LX
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 02:02:32 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dakr@kernel.org>)
 id 69c1e2a8-bab6-0a2a0a5309dd-0a2a4502ca30-0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 02:02:32 +0100
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <dakr@kernel.org>)
 id 69c1e22e-63bb-0a2a45020019-aceafc1fbf76-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 02:00:32 +0100
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 74AEC41714;
 Tue, 24 Mar 2026 01:00:30 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2A3D3C4CEF7;
 Tue, 24 Mar 2026 01:00:20 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="From:To:Cc:Subject:Date:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774314030;
	bh=dVVILhMfLU1pcFlan9xwtWDXjlzo37eXkY5X05ORIlo=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=oy7fnz0d39vA8DeLusS4kHmpWkfMdqaP0nrRciue0f+NOlsV7gOuADpO1Y48Jjg9f
	 MITiU8jQzjjQb8f5VUB0Og0V6KsNuJU5YifXigPhRS4NOb+330wbT3injb7ng50liP
	 ZqYubh6zWsY6SNwUAyB+PO/HpqXevDVNbsUrBXfFeyOD+eL8N4tmQ16wvpDq7I+Ye8
	 iZ8d4J+xr7mwhTpSI2vWE/qgDpXkD4QpCa5xOcpu1lnxoYQaD4trGqmzV3/Z0aby4P
	 mzbq8SomMXXsM9/OneYtf9uUKMBhTaqwO7Z3Va8LBxv8TI9anEyvFJWgLAVmMmZ6P7
	 5kfjdP36uus8A==
From: Danilo Krummrich <dakr@kernel.org>
To: Russell King <linux@armlinux.org.uk>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Ioana Ciornei <ioana.ciornei@nxp.com>,
	Nipun Gupta <nipun.gupta@amd.com>,
	Nikhil Agarwal <nikhil.agarwal@amd.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>,
	Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Armin Wolf <W_Armin@gmx.de>,
	Bjorn Andersson <andersson@kernel.org>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	Vineeth Vijayan <vneethv@linux.ibm.com>,
	Peter Oberparleiter <oberpar@linux.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Harald Freudenberger <freude@linux.ibm.com>,
	Holger Dengler <dengler@linux.ibm.com>,
	Mark Brown <broonie@kernel.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	=?UTF-8?q?Eugenio=20P=C3=A9rez?= <eperezma@redhat.com>,
	Alex Williamson <alex@shazbot.org>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>
Cc: linux-kernel@vger.kernel.org,
	driver-core@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	linux-hyperv@vger.kernel.org,
	linux-pci@vger.kernel.org,
	platform-driver-x86@vger.kernel.org,
	linux-arm-msm@vger.kernel.org,
	linux-remoteproc@vger.kernel.org,
	linux-s390@vger.kernel.org,
	linux-spi@vger.kernel.org,
	virtualization@lists.linux.dev,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-arm-kernel@lists.infradead.org,
	Danilo Krummrich <dakr@kernel.org>,
	Gui-Dong Han <hanguidong02@gmail.com>
Subject: [PATCH 06/12] platform/wmi: use generic driver_override infrastructure
Date: Tue, 24 Mar 2026 01:59:10 +0100
Message-ID: <20260324005919.2408620-7-dakr@kernel.org>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324005919.2408620-1-dakr@kernel.org>
References: <20260324005919.2408620-1-dakr@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1774314032-4189DDB8-A9B9F29E/0/0
X-purgate-type: clean
X-purgate-size: 3858

When a driver is probed through __driver_attach(), the bus' match()
callback is called without the device lock held, thus accessing the
driver_override field without a lock, which can cause a UAF.

Fix this by using the driver-core driver_override infrastructure taking
care of proper locking internally.

Note that calling match() from __driver_attach() without the device lock
held is intentional. [1]

Link: https://lore.kernel.org/driver-core/DGRGTIRHA62X.3RY09D9SOK77P@kernel.org/ [1]
Reported-by: Gui-Dong Han <hanguidong02@gmail.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220789
Fixes: 12046f8c77e0 ("platform/x86: wmi: Add driver_override support")
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
---
 drivers/platform/wmi/core.c | 36 +++++-------------------------------
 include/linux/wmi.h         |  4 ----
 2 files changed, 5 insertions(+), 35 deletions(-)

diff --git a/drivers/platform/wmi/core.c b/drivers/platform/wmi/core.c
index b8e6b9a421c6..750e3619724e 100644
--- a/drivers/platform/wmi/core.c
+++ b/drivers/platform/wmi/core.c
@@ -842,39 +842,11 @@ static ssize_t expensive_show(struct device *dev,
 }
 static DEVICE_ATTR_RO(expensive);
 
-static ssize_t driver_override_show(struct device *dev, struct device_attribute *attr,
-				    char *buf)
-{
-	struct wmi_device *wdev = to_wmi_device(dev);
-	ssize_t ret;
-
-	device_lock(dev);
-	ret = sysfs_emit(buf, "%s\n", wdev->driver_override);
-	device_unlock(dev);
-
-	return ret;
-}
-
-static ssize_t driver_override_store(struct device *dev, struct device_attribute *attr,
-				     const char *buf, size_t count)
-{
-	struct wmi_device *wdev = to_wmi_device(dev);
-	int ret;
-
-	ret = driver_set_override(dev, &wdev->driver_override, buf, count);
-	if (ret < 0)
-		return ret;
-
-	return count;
-}
-static DEVICE_ATTR_RW(driver_override);
-
 static struct attribute *wmi_attrs[] = {
 	&dev_attr_modalias.attr,
 	&dev_attr_guid.attr,
 	&dev_attr_instance_count.attr,
 	&dev_attr_expensive.attr,
-	&dev_attr_driver_override.attr,
 	NULL
 };
 ATTRIBUTE_GROUPS(wmi);
@@ -943,7 +915,6 @@ static void wmi_dev_release(struct device *dev)
 {
 	struct wmi_block *wblock = dev_to_wblock(dev);
 
-	kfree(wblock->dev.driver_override);
 	kfree(wblock);
 }
 
@@ -952,10 +923,12 @@ static int wmi_dev_match(struct device *dev, const struct device_driver *driver)
 	const struct wmi_driver *wmi_driver = to_wmi_driver(driver);
 	struct wmi_block *wblock = dev_to_wblock(dev);
 	const struct wmi_device_id *id = wmi_driver->id_table;
+	int ret;
 
 	/* When driver_override is set, only bind to the matching driver */
-	if (wblock->dev.driver_override)
-		return !strcmp(wblock->dev.driver_override, driver->name);
+	ret = device_match_driver_override(dev, driver);
+	if (ret >= 0)
+		return ret;
 
 	if (id == NULL)
 		return 0;
@@ -1076,6 +1049,7 @@ static struct class wmi_bus_class = {
 static const struct bus_type wmi_bus_type = {
 	.name = "wmi",
 	.dev_groups = wmi_groups,
+	.driver_override = true,
 	.match = wmi_dev_match,
 	.uevent = wmi_dev_uevent,
 	.probe = wmi_dev_probe,
diff --git a/include/linux/wmi.h b/include/linux/wmi.h
index 75cb0c7cfe57..14fb644e1701 100644
--- a/include/linux/wmi.h
+++ b/include/linux/wmi.h
@@ -18,16 +18,12 @@
  * struct wmi_device - WMI device structure
  * @dev: Device associated with this WMI device
  * @setable: True for devices implementing the Set Control Method
- * @driver_override: Driver name to force a match; do not set directly,
- *		     because core frees it; use driver_set_override() to
- *		     set or clear it.
  *
  * This represents WMI devices discovered by the WMI driver core.
  */
 struct wmi_device {
 	struct device dev;
 	bool setable;
-	const char *driver_override;
 };
 
 /**
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 01:26:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 01:26:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259869.1553207 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4qXN-0007zS-7a; Tue, 24 Mar 2026 01:26:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259869.1553207; Tue, 24 Mar 2026 01: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 1w4qXN-0007xw-1j; Tue, 24 Mar 2026 01:26:29 +0000
Received: by outflank-mailman (input) for mailman id 1259869;
 Tue, 24 Mar 2026 00:59:54 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dakr@kernel.org>) id 1w4q7e-0004gw-3f
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 00:59:54 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4q7d-004soF-FK
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 01:59:53 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dakr@kernel.org>)
 id 69c1e1de-e002-0a2a0a5209dd-0a2a4502d854-26
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 01:59:53 +0100
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <dakr@kernel.org>)
 id 69c1e208-63bb-0a2a45020019-ac6904fea2b6-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 01:59:53 +0100
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 87C0F60120;
 Tue, 24 Mar 2026 00:59:51 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 138D4C4CEF7;
 Tue, 24 Mar 2026 00:59:41 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="From:To:Cc:Subject:Date:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774313991;
	bh=8SBWPlY0FpAPUZM3VGM6jk8MBe902KSJN4WiLZGAbHc=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=fg9y82iadfDPF6nOAy0HmPYPAiOP6FG/VDHn1TkIcmsusWoR+G/nVZNnCuZY075br
	 gKlvWvjVdGmnI0JgptoDvayEdCUtkEYfsg2A7PluZUkmjkJczc4SoAIa2b+24cTLMO
	 ehoUBK1kyWeitGv4Js4jW16nmf/+SUVzGnTpP2KwCYTWTgtSAqvsLMsfsTs35ptcMx
	 Qhx+u6Ww/NKX1+DPPnLU1acTql1U6mNB+wnFZugPadRV0p5Gw0gHRTgVhOLxhxmRdq
	 AfBcD9mRlS2Zl/SNmQhvetfwNouTevadSCvwGk1WKIFaHCmyoKhqRcaFynIdgVlqMc
	 HA/jQLBEPF5WA==
From: Danilo Krummrich <dakr@kernel.org>
To: Russell King <linux@armlinux.org.uk>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Ioana Ciornei <ioana.ciornei@nxp.com>,
	Nipun Gupta <nipun.gupta@amd.com>,
	Nikhil Agarwal <nikhil.agarwal@amd.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>,
	Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Armin Wolf <W_Armin@gmx.de>,
	Bjorn Andersson <andersson@kernel.org>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	Vineeth Vijayan <vneethv@linux.ibm.com>,
	Peter Oberparleiter <oberpar@linux.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Harald Freudenberger <freude@linux.ibm.com>,
	Holger Dengler <dengler@linux.ibm.com>,
	Mark Brown <broonie@kernel.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	=?UTF-8?q?Eugenio=20P=C3=A9rez?= <eperezma@redhat.com>,
	Alex Williamson <alex@shazbot.org>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>
Cc: linux-kernel@vger.kernel.org,
	driver-core@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	linux-hyperv@vger.kernel.org,
	linux-pci@vger.kernel.org,
	platform-driver-x86@vger.kernel.org,
	linux-arm-msm@vger.kernel.org,
	linux-remoteproc@vger.kernel.org,
	linux-s390@vger.kernel.org,
	linux-spi@vger.kernel.org,
	virtualization@lists.linux.dev,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-arm-kernel@lists.infradead.org,
	Danilo Krummrich <dakr@kernel.org>,
	Gui-Dong Han <hanguidong02@gmail.com>
Subject: [PATCH 02/12] bus: fsl-mc: use generic driver_override infrastructure
Date: Tue, 24 Mar 2026 01:59:06 +0100
Message-ID: <20260324005919.2408620-3-dakr@kernel.org>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324005919.2408620-1-dakr@kernel.org>
References: <20260324005919.2408620-1-dakr@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1774313993-40696DB8-A42AFC8A/0/0
X-purgate-type: clean
X-purgate-size: 5000

When a driver is probed through __driver_attach(), the bus' match()
callback is called without the device lock held, thus accessing the
driver_override field without a lock, which can cause a UAF.

Fix this by using the driver-core driver_override infrastructure taking
care of proper locking internally.

Note that calling match() from __driver_attach() without the device lock
held is intentional. [1]

Link: https://lore.kernel.org/driver-core/DGRGTIRHA62X.3RY09D9SOK77P@kernel.org/ [1]
Reported-by: Gui-Dong Han <hanguidong02@gmail.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220789
Fixes: 1f86a00c1159 ("bus/fsl-mc: add support for 'driver_override' in the mc-bus")
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
---
 drivers/bus/fsl-mc/fsl-mc-bus.c   | 43 +++++--------------------------
 drivers/vfio/fsl-mc/vfio_fsl_mc.c |  4 +--
 include/linux/fsl/mc.h            |  4 ---
 3 files changed, 8 insertions(+), 43 deletions(-)

diff --git a/drivers/bus/fsl-mc/fsl-mc-bus.c b/drivers/bus/fsl-mc/fsl-mc-bus.c
index c117745cf206..221146e4860b 100644
--- a/drivers/bus/fsl-mc/fsl-mc-bus.c
+++ b/drivers/bus/fsl-mc/fsl-mc-bus.c
@@ -86,12 +86,16 @@ static int fsl_mc_bus_match(struct device *dev, const struct device_driver *drv)
 	struct fsl_mc_device *mc_dev = to_fsl_mc_device(dev);
 	const struct fsl_mc_driver *mc_drv = to_fsl_mc_driver(drv);
 	bool found = false;
+	int ret;
 
 	/* When driver_override is set, only bind to the matching driver */
-	if (mc_dev->driver_override) {
-		found = !strcmp(mc_dev->driver_override, mc_drv->driver.name);
+	ret = device_match_driver_override(dev, drv);
+	if (ret > 0) {
+		found = true;
 		goto out;
 	}
+	if (ret == 0)
+		goto out;
 
 	if (!mc_drv->match_id_table)
 		goto out;
@@ -210,39 +214,8 @@ static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
 }
 static DEVICE_ATTR_RO(modalias);
 
-static ssize_t driver_override_store(struct device *dev,
-				     struct device_attribute *attr,
-				     const char *buf, size_t count)
-{
-	struct fsl_mc_device *mc_dev = to_fsl_mc_device(dev);
-	int ret;
-
-	if (WARN_ON(dev->bus != &fsl_mc_bus_type))
-		return -EINVAL;
-
-	ret = driver_set_override(dev, &mc_dev->driver_override, buf, count);
-	if (ret)
-		return ret;
-
-	return count;
-}
-
-static ssize_t driver_override_show(struct device *dev,
-				    struct device_attribute *attr, char *buf)
-{
-	struct fsl_mc_device *mc_dev = to_fsl_mc_device(dev);
-	ssize_t len;
-
-	device_lock(dev);
-	len = sysfs_emit(buf, "%s\n", mc_dev->driver_override);
-	device_unlock(dev);
-	return len;
-}
-static DEVICE_ATTR_RW(driver_override);
-
 static struct attribute *fsl_mc_dev_attrs[] = {
 	&dev_attr_modalias.attr,
-	&dev_attr_driver_override.attr,
 	NULL,
 };
 
@@ -345,6 +318,7 @@ ATTRIBUTE_GROUPS(fsl_mc_bus);
 
 const struct bus_type fsl_mc_bus_type = {
 	.name = "fsl-mc",
+	.driver_override = true,
 	.match = fsl_mc_bus_match,
 	.uevent = fsl_mc_bus_uevent,
 	.probe = fsl_mc_probe,
@@ -910,9 +884,6 @@ static struct notifier_block fsl_mc_nb;
  */
 void fsl_mc_device_remove(struct fsl_mc_device *mc_dev)
 {
-	kfree(mc_dev->driver_override);
-	mc_dev->driver_override = NULL;
-
 	/*
 	 * The device-specific remove callback will get invoked by device_del()
 	 */
diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc.c b/drivers/vfio/fsl-mc/vfio_fsl_mc.c
index 462fae1aa538..b4c3958201b2 100644
--- a/drivers/vfio/fsl-mc/vfio_fsl_mc.c
+++ b/drivers/vfio/fsl-mc/vfio_fsl_mc.c
@@ -424,9 +424,7 @@ static int vfio_fsl_mc_bus_notifier(struct notifier_block *nb,
 
 	if (action == BUS_NOTIFY_ADD_DEVICE &&
 	    vdev->mc_dev == mc_cont) {
-		mc_dev->driver_override = kasprintf(GFP_KERNEL, "%s",
-						    vfio_fsl_mc_ops.name);
-		if (!mc_dev->driver_override)
+		if (device_set_driver_override(dev, vfio_fsl_mc_ops.name))
 			dev_warn(dev, "VFIO_FSL_MC: Setting driver override for device in dprc %s failed\n",
 				 dev_name(&mc_cont->dev));
 		else
diff --git a/include/linux/fsl/mc.h b/include/linux/fsl/mc.h
index 897d6211c163..1da63f2d7040 100644
--- a/include/linux/fsl/mc.h
+++ b/include/linux/fsl/mc.h
@@ -178,9 +178,6 @@ struct fsl_mc_obj_desc {
  * @regions: pointer to array of MMIO region entries
  * @irqs: pointer to array of pointers to interrupts allocated to this device
  * @resource: generic resource associated with this MC object device, if any.
- * @driver_override: driver name to force a match; do not set directly,
- *                   because core frees it; use driver_set_override() to
- *                   set or clear it.
  *
  * Generic device object for MC object devices that are "attached" to a
  * MC bus.
@@ -214,7 +211,6 @@ struct fsl_mc_device {
 	struct fsl_mc_device_irq **irqs;
 	struct fsl_mc_resource *resource;
 	struct device_link *consumer_link;
-	const char *driver_override;
 };
 
 #define to_fsl_mc_device(_dev) \
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 01:26:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 01:26:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259873.1553220 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4qXN-00088d-RM; Tue, 24 Mar 2026 01:26:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259873.1553220; Tue, 24 Mar 2026 01: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 1w4qXN-00087U-Gd; Tue, 24 Mar 2026 01:26:29 +0000
Received: by outflank-mailman (input) for mailman id 1259873;
 Tue, 24 Mar 2026 01:00:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dakr@kernel.org>) id 1w4q7x-0001KD-VV
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 01:00:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4q7x-00GhUR-Bc
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 02:00:13 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dakr@kernel.org>)
 id 69c1e217-2eae-0a2a0a5409dd-0a2a4503cb90-12
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 02:00:13 +0100
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <dakr@kernel.org>)
 id 69c1e21b-1947-0a2a45030019-aceafc1fc250-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 02:00:13 +0100
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 3E66F435AF;
 Tue, 24 Mar 2026 01:00:11 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 98196C4CEF7;
 Tue, 24 Mar 2026 01:00:01 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="From:To:Cc:Subject:Date:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774314011;
	bh=n8Np19d6r8hZP3UfKo2xpfAW6SzD3g4bxMFuAspv2o0=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=UaBbnH6K5PmlHRTAv2QpnB7L6Oek7DpdNRyO3DZniaipx3T4OH8aQr0MWP23mO+nu
	 bfEd7aSy90OVPMONjSRlDR+BhJep8zQkJXj3EuTj+FdEJ7Qnz1bGziLI/rD717BPhk
	 b0qHoXuzvssQYxYxewY0RImhKrTnweUaP7b/G+xvgY86M3nL9h5A6viQlAO4cSYSa+
	 cTGrxdvuLF6cPLHkd8IEp6jriRalhcgoEWJdpC8TUtaMkApKMmASLxQKpBLi0FdDUk
	 0+jAHYnaXmU5F6R+YbNbusudC4hG0VrqpKsYsYuN7LhJINQFVJ9EqYYng4Ywg7RJ8h
	 GAjkf9mQ3//og==
From: Danilo Krummrich <dakr@kernel.org>
To: Russell King <linux@armlinux.org.uk>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Ioana Ciornei <ioana.ciornei@nxp.com>,
	Nipun Gupta <nipun.gupta@amd.com>,
	Nikhil Agarwal <nikhil.agarwal@amd.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>,
	Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Armin Wolf <W_Armin@gmx.de>,
	Bjorn Andersson <andersson@kernel.org>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	Vineeth Vijayan <vneethv@linux.ibm.com>,
	Peter Oberparleiter <oberpar@linux.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Harald Freudenberger <freude@linux.ibm.com>,
	Holger Dengler <dengler@linux.ibm.com>,
	Mark Brown <broonie@kernel.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	=?UTF-8?q?Eugenio=20P=C3=A9rez?= <eperezma@redhat.com>,
	Alex Williamson <alex@shazbot.org>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>
Cc: linux-kernel@vger.kernel.org,
	driver-core@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	linux-hyperv@vger.kernel.org,
	linux-pci@vger.kernel.org,
	platform-driver-x86@vger.kernel.org,
	linux-arm-msm@vger.kernel.org,
	linux-remoteproc@vger.kernel.org,
	linux-s390@vger.kernel.org,
	linux-spi@vger.kernel.org,
	virtualization@lists.linux.dev,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-arm-kernel@lists.infradead.org,
	Danilo Krummrich <dakr@kernel.org>,
	Gui-Dong Han <hanguidong02@gmail.com>
Subject: [PATCH 04/12] hv: vmbus: use generic driver_override infrastructure
Date: Tue, 24 Mar 2026 01:59:08 +0100
Message-ID: <20260324005919.2408620-5-dakr@kernel.org>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324005919.2408620-1-dakr@kernel.org>
References: <20260324005919.2408620-1-dakr@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1774314013-4846E72C-6E93E4BE/0/0
X-purgate-type: clean
X-purgate-size: 3844

When a driver is probed through __driver_attach(), the bus' match()
callback is called without the device lock held, thus accessing the
driver_override field without a lock, which can cause a UAF.

Fix this by using the driver-core driver_override infrastructure taking
care of proper locking internally.

Note that calling match() from __driver_attach() without the device lock
held is intentional. [1]

Link: https://lore.kernel.org/driver-core/DGRGTIRHA62X.3RY09D9SOK77P@kernel.org/ [1]
Reported-by: Gui-Dong Han <hanguidong02@gmail.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220789
Fixes: d765edbb301c ("vmbus: add driver_override support")
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
---
 drivers/hv/vmbus_drv.c | 36 +++++-------------------------------
 include/linux/hyperv.h |  5 -----
 2 files changed, 5 insertions(+), 36 deletions(-)

diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
index bc4fc1951ae1..bc8dfd136f3c 100644
--- a/drivers/hv/vmbus_drv.c
+++ b/drivers/hv/vmbus_drv.c
@@ -541,34 +541,6 @@ static ssize_t device_show(struct device *dev,
 }
 static DEVICE_ATTR_RO(device);
 
-static ssize_t driver_override_store(struct device *dev,
-				     struct device_attribute *attr,
-				     const char *buf, size_t count)
-{
-	struct hv_device *hv_dev = device_to_hv_device(dev);
-	int ret;
-
-	ret = driver_set_override(dev, &hv_dev->driver_override, buf, count);
-	if (ret)
-		return ret;
-
-	return count;
-}
-
-static ssize_t driver_override_show(struct device *dev,
-				    struct device_attribute *attr, char *buf)
-{
-	struct hv_device *hv_dev = device_to_hv_device(dev);
-	ssize_t len;
-
-	device_lock(dev);
-	len = sysfs_emit(buf, "%s\n", hv_dev->driver_override);
-	device_unlock(dev);
-
-	return len;
-}
-static DEVICE_ATTR_RW(driver_override);
-
 /* Set up per device attributes in /sys/bus/vmbus/devices/<bus device> */
 static struct attribute *vmbus_dev_attrs[] = {
 	&dev_attr_id.attr,
@@ -599,7 +571,6 @@ static struct attribute *vmbus_dev_attrs[] = {
 	&dev_attr_channel_vp_mapping.attr,
 	&dev_attr_vendor.attr,
 	&dev_attr_device.attr,
-	&dev_attr_driver_override.attr,
 	NULL,
 };
 
@@ -711,9 +682,11 @@ static const struct hv_vmbus_device_id *hv_vmbus_get_id(const struct hv_driver *
 {
 	const guid_t *guid = &dev->dev_type;
 	const struct hv_vmbus_device_id *id;
+	int ret;
 
 	/* When driver_override is set, only bind to the matching driver */
-	if (dev->driver_override && strcmp(dev->driver_override, drv->name))
+	ret = device_match_driver_override(&dev->device, &drv->driver);
+	if (ret == 0)
 		return NULL;
 
 	/* Look at the dynamic ids first, before the static ones */
@@ -722,7 +695,7 @@ static const struct hv_vmbus_device_id *hv_vmbus_get_id(const struct hv_driver *
 		id = hv_vmbus_dev_match(drv->id_table, guid);
 
 	/* driver_override will always match, send a dummy id */
-	if (!id && dev->driver_override)
+	if (!id && ret > 0)
 		id = &vmbus_device_null;
 
 	return id;
@@ -1024,6 +997,7 @@ static const struct dev_pm_ops vmbus_pm = {
 /* The one and only one */
 static const struct bus_type  hv_bus = {
 	.name =		"vmbus",
+	.driver_override =	true,
 	.match =		vmbus_match,
 	.shutdown =		vmbus_shutdown,
 	.remove =		vmbus_remove,
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
index dfc516c1c719..bf689d07d750 100644
--- a/include/linux/hyperv.h
+++ b/include/linux/hyperv.h
@@ -1272,11 +1272,6 @@ struct hv_device {
 	u16 device_id;
 
 	struct device device;
-	/*
-	 * Driver name to force a match.  Do not set directly, because core
-	 * frees it.  Use driver_set_override() to set or clear it.
-	 */
-	const char *driver_override;
 
 	struct vmbus_channel *channel;
 	struct kset	     *channels_kset;
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 01:26:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 01:26:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259887.1553277 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4qXQ-000118-VJ; Tue, 24 Mar 2026 01:26:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259887.1553277; Tue, 24 Mar 2026 01: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 1w4qXQ-0000yr-Ey; Tue, 24 Mar 2026 01:26:32 +0000
Received: by outflank-mailman (input) for mailman id 1259887;
 Tue, 24 Mar 2026 01:04:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dakr@kernel.org>) id 1w4qCT-00059A-0M
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 01:04:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4qCS-00Gi8O-4k
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 02:04:52 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dakr@kernel.org>)
 id 69c1e32e-bab6-0a2a0a5309dd-0a2a45089b8c-14
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 02:04:52 +0100
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <dakr@kernel.org>)
 id 69c1e242-1950-0a2a45080019-aceafc1fbff0-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 02:00:51 +0100
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id A8BF1402D2;
 Tue, 24 Mar 2026 01:00:49 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 600FAC2BCB3;
 Tue, 24 Mar 2026 01:00:40 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="From:To:Cc:Subject:Date:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774314049;
	bh=2lHhdrgE9qzH1ZdWMWGXkZLiIUExSh17kxoWzoBpEYw=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=urbkSyPC//Mc+7xDMT60BWD1PM5iJno/Pv3C12Ww9BFBlm+Txslon6hgVop799Zux
	 g+Sv+q81mxYoKpArwgNlL1ZLxKeJEZHi/lM3U9lsj91wt+dVuwPQVluFb1QQ+HQlCj
	 sv5wTpgn5xlflwnnmanQE9E5F/Pn2wr+wAILRhGodQgtrhj4oxFDHJG9NtY75ERcHC
	 m7A8DB8J2Ne77LkVgV0/eIo9dU9uCfUYKNhjjLT4Tt3E8Clc0+8oqnyAcHS/Bg4R5L
	 D1zJWmU8m174lSqL3A0Ubvc3fqLrq3bwEdahRa42TfG/CVeZDK4Hwt1j/T6kr4aNVX
	 9oiBCcvJ5IK1g==
From: Danilo Krummrich <dakr@kernel.org>
To: Russell King <linux@armlinux.org.uk>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Ioana Ciornei <ioana.ciornei@nxp.com>,
	Nipun Gupta <nipun.gupta@amd.com>,
	Nikhil Agarwal <nikhil.agarwal@amd.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>,
	Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Armin Wolf <W_Armin@gmx.de>,
	Bjorn Andersson <andersson@kernel.org>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	Vineeth Vijayan <vneethv@linux.ibm.com>,
	Peter Oberparleiter <oberpar@linux.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Harald Freudenberger <freude@linux.ibm.com>,
	Holger Dengler <dengler@linux.ibm.com>,
	Mark Brown <broonie@kernel.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	=?UTF-8?q?Eugenio=20P=C3=A9rez?= <eperezma@redhat.com>,
	Alex Williamson <alex@shazbot.org>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>
Cc: linux-kernel@vger.kernel.org,
	driver-core@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	linux-hyperv@vger.kernel.org,
	linux-pci@vger.kernel.org,
	platform-driver-x86@vger.kernel.org,
	linux-arm-msm@vger.kernel.org,
	linux-remoteproc@vger.kernel.org,
	linux-s390@vger.kernel.org,
	linux-spi@vger.kernel.org,
	virtualization@lists.linux.dev,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-arm-kernel@lists.infradead.org,
	Danilo Krummrich <dakr@kernel.org>,
	Gui-Dong Han <hanguidong02@gmail.com>
Subject: [PATCH 08/12] vdpa: use generic driver_override infrastructure
Date: Tue, 24 Mar 2026 01:59:12 +0100
Message-ID: <20260324005919.2408620-9-dakr@kernel.org>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324005919.2408620-1-dakr@kernel.org>
References: <20260324005919.2408620-1-dakr@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1774314051-E8E85726-F86AC08E/0/0
X-purgate-type: clean
X-purgate-size: 3902

When a driver is probed through __driver_attach(), the bus' match()
callback is called without the device lock held, thus accessing the
driver_override field without a lock, which can cause a UAF.

Fix this by using the driver-core driver_override infrastructure taking
care of proper locking internally.

Note that calling match() from __driver_attach() without the device lock
held is intentional. [1]

Link: https://lore.kernel.org/driver-core/DGRGTIRHA62X.3RY09D9SOK77P@kernel.org/ [1]
Reported-by: Gui-Dong Han <hanguidong02@gmail.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220789
Fixes: 539fec78edb4 ("vdpa: add driver_override support")
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
---
 drivers/vdpa/vdpa.c  | 48 +++++---------------------------------------
 include/linux/vdpa.h |  4 ----
 2 files changed, 5 insertions(+), 47 deletions(-)

diff --git a/drivers/vdpa/vdpa.c b/drivers/vdpa/vdpa.c
index 34874beb0152..caf0ee5d6856 100644
--- a/drivers/vdpa/vdpa.c
+++ b/drivers/vdpa/vdpa.c
@@ -67,57 +67,20 @@ static void vdpa_dev_remove(struct device *d)
 
 static int vdpa_dev_match(struct device *dev, const struct device_driver *drv)
 {
-	struct vdpa_device *vdev = dev_to_vdpa(dev);
+	int ret;
 
 	/* Check override first, and if set, only use the named driver */
-	if (vdev->driver_override)
-		return strcmp(vdev->driver_override, drv->name) == 0;
+	ret = device_match_driver_override(dev, drv);
+	if (ret >= 0)
+		return ret;
 
 	/* Currently devices must be supported by all vDPA bus drivers */
 	return 1;
 }
 
-static ssize_t driver_override_store(struct device *dev,
-				     struct device_attribute *attr,
-				     const char *buf, size_t count)
-{
-	struct vdpa_device *vdev = dev_to_vdpa(dev);
-	int ret;
-
-	ret = driver_set_override(dev, &vdev->driver_override, buf, count);
-	if (ret)
-		return ret;
-
-	return count;
-}
-
-static ssize_t driver_override_show(struct device *dev,
-				    struct device_attribute *attr, char *buf)
-{
-	struct vdpa_device *vdev = dev_to_vdpa(dev);
-	ssize_t len;
-
-	device_lock(dev);
-	len = sysfs_emit(buf, "%s\n", vdev->driver_override);
-	device_unlock(dev);
-
-	return len;
-}
-static DEVICE_ATTR_RW(driver_override);
-
-static struct attribute *vdpa_dev_attrs[] = {
-	&dev_attr_driver_override.attr,
-	NULL,
-};
-
-static const struct attribute_group vdpa_dev_group = {
-	.attrs  = vdpa_dev_attrs,
-};
-__ATTRIBUTE_GROUPS(vdpa_dev);
-
 static const struct bus_type vdpa_bus = {
 	.name  = "vdpa",
-	.dev_groups = vdpa_dev_groups,
+	.driver_override = true,
 	.match = vdpa_dev_match,
 	.probe = vdpa_dev_probe,
 	.remove = vdpa_dev_remove,
@@ -132,7 +95,6 @@ static void vdpa_release_dev(struct device *d)
 		ops->free(vdev);
 
 	ida_free(&vdpa_index_ida, vdev->index);
-	kfree(vdev->driver_override);
 	kfree(vdev);
 }
 
diff --git a/include/linux/vdpa.h b/include/linux/vdpa.h
index 2bfe3baa63f4..782c42d25db1 100644
--- a/include/linux/vdpa.h
+++ b/include/linux/vdpa.h
@@ -72,9 +72,6 @@ struct vdpa_mgmt_dev;
  * struct vdpa_device - representation of a vDPA device
  * @dev: underlying device
  * @vmap: the metadata passed to upper layer to be used for mapping
- * @driver_override: driver name to force a match; do not set directly,
- *                   because core frees it; use driver_set_override() to
- *                   set or clear it.
  * @config: the configuration ops for this device.
  * @map: the map ops for this device
  * @cf_lock: Protects get and set access to configuration layout.
@@ -90,7 +87,6 @@ struct vdpa_mgmt_dev;
 struct vdpa_device {
 	struct device dev;
 	union virtio_map vmap;
-	const char *driver_override;
 	const struct vdpa_config_ops *config;
 	const struct virtio_map_ops *map;
 	struct rw_semaphore cf_lock; /* Protects get/set config */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 01:26:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 01:26:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259875.1553226 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4qXO-0008Gw-1l; Tue, 24 Mar 2026 01:26:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259875.1553226; Tue, 24 Mar 2026 01: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 1w4qXN-0008CX-On; Tue, 24 Mar 2026 01:26:29 +0000
Received: by outflank-mailman (input) for mailman id 1259875;
 Tue, 24 Mar 2026 01:00:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=t6JZ=BY=kernel.org=dakr@srs-se1.protection.inumbo.net>)
 id 1w4q89-0005Au-IS
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 01:00:25 +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 d521cbb5-271c-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Mar 2026 02:00:22 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 0775E60103;
 Tue, 24 Mar 2026 01:00:21 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 88E74C2BCB0;
 Tue, 24 Mar 2026 01:00:11 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d521cbb5-271c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774314020;
	bh=zi0v4zurXgdLP04GC9K8onaZXN/N3Qlem6TWYef3iJk=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=QIEgBZSeprBd8eco5o8dw+zg/Y5BKWKjmLND8s3b+DopMyWSHVyEjpTlL4MeXNu6J
	 X/vMHl5tcRAtlKG5k4UUt+iHGlqdNZ7OAGIqIUnN+AuKhAX5Gfvn1RJ2JN+B+b/8oV
	 Dnw348XctBIWTV33IkRHOMoqJWQCsfR8SsPVZoMNEUBzpdW4p6GRIYIot6LJvdMFsS
	 3QbEZOR+DnIpCdhzlekCzLxRc423a9T2znnXXKY+47An9vD8vHI4TrhpijQMqnokV+
	 3RMAL22cwN1WStl+aUt4vfTVte+eCLX64fU0XiBT76DmRE+t61UwtJ1wkOziB9Utd8
	 OLcnfwwHxuprw==
From: Danilo Krummrich <dakr@kernel.org>
To: Russell King <linux@armlinux.org.uk>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Ioana Ciornei <ioana.ciornei@nxp.com>,
	Nipun Gupta <nipun.gupta@amd.com>,
	Nikhil Agarwal <nikhil.agarwal@amd.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>,
	Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Armin Wolf <W_Armin@gmx.de>,
	Bjorn Andersson <andersson@kernel.org>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	Vineeth Vijayan <vneethv@linux.ibm.com>,
	Peter Oberparleiter <oberpar@linux.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Harald Freudenberger <freude@linux.ibm.com>,
	Holger Dengler <dengler@linux.ibm.com>,
	Mark Brown <broonie@kernel.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	=?UTF-8?q?Eugenio=20P=C3=A9rez?= <eperezma@redhat.com>,
	Alex Williamson <alex@shazbot.org>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>
Cc: linux-kernel@vger.kernel.org,
	driver-core@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	linux-hyperv@vger.kernel.org,
	linux-pci@vger.kernel.org,
	platform-driver-x86@vger.kernel.org,
	linux-arm-msm@vger.kernel.org,
	linux-remoteproc@vger.kernel.org,
	linux-s390@vger.kernel.org,
	linux-spi@vger.kernel.org,
	virtualization@lists.linux.dev,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-arm-kernel@lists.infradead.org,
	Danilo Krummrich <dakr@kernel.org>,
	Gui-Dong Han <hanguidong02@gmail.com>
Subject: [PATCH 05/12] PCI: use generic driver_override infrastructure
Date: Tue, 24 Mar 2026 01:59:09 +0100
Message-ID: <20260324005919.2408620-6-dakr@kernel.org>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324005919.2408620-1-dakr@kernel.org>
References: <20260324005919.2408620-1-dakr@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

When a driver is probed through __driver_attach(), the bus' match()
callback is called without the device lock held, thus accessing the
driver_override field without a lock, which can cause a UAF.

Fix this by using the driver-core driver_override infrastructure taking
care of proper locking internally.

Note that calling match() from __driver_attach() without the device lock
held is intentional. [1]

Link: https://lore.kernel.org/driver-core/DGRGTIRHA62X.3RY09D9SOK77P@kernel.org/ [1]
Reported-by: Gui-Dong Han <hanguidong02@gmail.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220789
Fixes: 782a985d7af2 ("PCI: Introduce new device binding path using pci_dev.driver_override")
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
---
 drivers/pci/pci-driver.c           | 11 +++++++----
 drivers/pci/pci-sysfs.c            | 28 ----------------------------
 drivers/pci/probe.c                |  1 -
 drivers/vfio/pci/vfio_pci_core.c   |  5 ++---
 drivers/xen/xen-pciback/pci_stub.c |  6 ++++--
 include/linux/pci.h                |  6 ------
 6 files changed, 13 insertions(+), 44 deletions(-)

diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
index dd9075403987..d10ece0889f0 100644
--- a/drivers/pci/pci-driver.c
+++ b/drivers/pci/pci-driver.c
@@ -138,9 +138,11 @@ static const struct pci_device_id *pci_match_device(struct pci_driver *drv,
 {
 	struct pci_dynid *dynid;
 	const struct pci_device_id *found_id = NULL, *ids;
+	int ret;
 
 	/* When driver_override is set, only bind to the matching driver */
-	if (dev->driver_override && strcmp(dev->driver_override, drv->name))
+	ret = device_match_driver_override(&dev->dev, &drv->driver);
+	if (ret == 0)
 		return NULL;
 
 	/* Look at the dynamic ids first, before the static ones */
@@ -164,7 +166,7 @@ static const struct pci_device_id *pci_match_device(struct pci_driver *drv,
 		 * matching.
 		 */
 		if (found_id->override_only) {
-			if (dev->driver_override)
+			if (ret > 0)
 				return found_id;
 		} else {
 			return found_id;
@@ -172,7 +174,7 @@ static const struct pci_device_id *pci_match_device(struct pci_driver *drv,
 	}
 
 	/* driver_override will always match, send a dummy id */
-	if (dev->driver_override)
+	if (ret > 0)
 		return &pci_device_id_any;
 	return NULL;
 }
@@ -452,7 +454,7 @@ static int __pci_device_probe(struct pci_driver *drv, struct pci_dev *pci_dev)
 static inline bool pci_device_can_probe(struct pci_dev *pdev)
 {
 	return (!pdev->is_virtfn || pdev->physfn->sriov->drivers_autoprobe ||
-		pdev->driver_override);
+		device_has_driver_override(&pdev->dev));
 }
 #else
 static inline bool pci_device_can_probe(struct pci_dev *pdev)
@@ -1722,6 +1724,7 @@ static const struct cpumask *pci_device_irq_get_affinity(struct device *dev,
 
 const struct bus_type pci_bus_type = {
 	.name		= "pci",
+	.driver_override = true,
 	.match		= pci_bus_match,
 	.uevent		= pci_uevent,
 	.probe		= pci_device_probe,
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index 16eaaf749ba9..a9006cf4e9c8 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -615,33 +615,6 @@ static ssize_t devspec_show(struct device *dev,
 static DEVICE_ATTR_RO(devspec);
 #endif
 
-static ssize_t driver_override_store(struct device *dev,
-				     struct device_attribute *attr,
-				     const char *buf, size_t count)
-{
-	struct pci_dev *pdev = to_pci_dev(dev);
-	int ret;
-
-	ret = driver_set_override(dev, &pdev->driver_override, buf, count);
-	if (ret)
-		return ret;
-
-	return count;
-}
-
-static ssize_t driver_override_show(struct device *dev,
-				    struct device_attribute *attr, char *buf)
-{
-	struct pci_dev *pdev = to_pci_dev(dev);
-	ssize_t len;
-
-	device_lock(dev);
-	len = sysfs_emit(buf, "%s\n", pdev->driver_override);
-	device_unlock(dev);
-	return len;
-}
-static DEVICE_ATTR_RW(driver_override);
-
 static struct attribute *pci_dev_attrs[] = {
 	&dev_attr_power_state.attr,
 	&dev_attr_resource.attr,
@@ -669,7 +642,6 @@ static struct attribute *pci_dev_attrs[] = {
 #ifdef CONFIG_OF
 	&dev_attr_devspec.attr,
 #endif
-	&dev_attr_driver_override.attr,
 	&dev_attr_ari_enabled.attr,
 	NULL,
 };
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index bccc7a4bdd79..b4707640e102 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -2488,7 +2488,6 @@ static void pci_release_dev(struct device *dev)
 	pci_release_of_node(pci_dev);
 	pcibios_release_device(pci_dev);
 	pci_bus_put(pci_dev->bus);
-	kfree(pci_dev->driver_override);
 	bitmap_free(pci_dev->dma_alias_mask);
 	dev_dbg(dev, "device released\n");
 	kfree(pci_dev);
diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c
index d43745fe4c84..460852f79f29 100644
--- a/drivers/vfio/pci/vfio_pci_core.c
+++ b/drivers/vfio/pci/vfio_pci_core.c
@@ -1987,9 +1987,8 @@ static int vfio_pci_bus_notifier(struct notifier_block *nb,
 	    pdev->is_virtfn && physfn == vdev->pdev) {
 		pci_info(vdev->pdev, "Captured SR-IOV VF %s driver_override\n",
 			 pci_name(pdev));
-		pdev->driver_override = kasprintf(GFP_KERNEL, "%s",
-						  vdev->vdev.ops->name);
-		WARN_ON(!pdev->driver_override);
+		WARN_ON(device_set_driver_override(&pdev->dev,
+						   vdev->vdev.ops->name));
 	} else if (action == BUS_NOTIFY_BOUND_DRIVER &&
 		   pdev->is_virtfn && physfn == vdev->pdev) {
 		struct pci_driver *drv = pci_dev_driver(pdev);
diff --git a/drivers/xen/xen-pciback/pci_stub.c b/drivers/xen/xen-pciback/pci_stub.c
index e4b27aecbf05..79a2b5dfd694 100644
--- a/drivers/xen/xen-pciback/pci_stub.c
+++ b/drivers/xen/xen-pciback/pci_stub.c
@@ -598,6 +598,8 @@ static int pcistub_seize(struct pci_dev *dev,
 	return err;
 }
 
+static struct pci_driver xen_pcibk_pci_driver;
+
 /* Called when 'bind'. This means we must _NOT_ call pci_reset_function or
  * other functions that take the sysfs lock. */
 static int pcistub_probe(struct pci_dev *dev, const struct pci_device_id *id)
@@ -609,8 +611,8 @@ static int pcistub_probe(struct pci_dev *dev, const struct pci_device_id *id)
 
 	match = pcistub_match(dev);
 
-	if ((dev->driver_override &&
-	     !strcmp(dev->driver_override, PCISTUB_DRIVER_NAME)) ||
+	if (device_match_driver_override(&dev->dev,
+					 &xen_pcibk_pci_driver.driver) > 0 ||
 	    match) {
 
 		if (dev->hdr_type != PCI_HEADER_TYPE_NORMAL
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 1c270f1d5123..57e9463e4347 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -575,12 +575,6 @@ struct pci_dev {
 	u8		supported_speeds; /* Supported Link Speeds Vector */
 	phys_addr_t	rom;		/* Physical address if not from BAR */
 	size_t		romlen;		/* Length if not from BAR */
-	/*
-	 * Driver name to force a match.  Do not set directly, because core
-	 * frees it.  Use driver_set_override() to set or clear it.
-	 */
-	const char	*driver_override;
-
 	unsigned long	priv_flags;	/* Private flags for the PCI driver */
 
 	/* These methods index pci_reset_fn_methods[] */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 01:26:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 01:26:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259867.1553200 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4qXM-0007tf-Ug; Tue, 24 Mar 2026 01:26:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259867.1553200; Tue, 24 Mar 2026 01:26:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4qXM-0007rv-PC; Tue, 24 Mar 2026 01:26:28 +0000
Received: by outflank-mailman (input) for mailman id 1259867;
 Tue, 24 Mar 2026 00:59:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dakr@kernel.org>) id 1w4q7V-0004gA-3M
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 00:59:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4q7T-00CO7D-TQ
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 01:59:43 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dakr@kernel.org>)
 id 69c1e1bd-bab6-0a2a0a5309dd-0a2a4501c712-30
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 01:59:43 +0100
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <dakr@kernel.org>)
 id 69c1e1fe-6400-0a2a45010019-aceafc1fb980-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 01:59:43 +0100
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id BD3E1401EA;
 Tue, 24 Mar 2026 00:59:41 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 71B53C2BCB0;
 Tue, 24 Mar 2026 00:59:32 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="From:To:Cc:Subject:Date:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774313981;
	bh=o5/mDooZyQOrZSLaTUy9Q9NB3objYZ00gEDKIr30vk0=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=DeU+QBJfQMOEykZ/WseCRw8ncQ/uYJtSAPERUFs4wNJFjvV2eSGwXi54+3St1qSR0
	 yoc1l4FX7gt53/9/XvMnHRcN9nfHKNjkr8h3i441z0kpJEthS6at4bwtLuCRwWfwTQ
	 zUOFjmjLi/lakrrKFe0OAiGbBQZC2pUowaUyN1Nk59BHGkOwYH5feY1hPfdn8wxuy2
	 UQmUcUXQvvOo9AYPJsg0ROOga1OdkZyNhVwqLzazfIXDXCjcb3ZiQGDZJxXC84R4A9
	 oUXH/PpxuyEXrmj7leMJZR37mYepHdDuAXgplUUb9/VB/fUvY3/ve++LVUHPkSsSG8
	 ggFejhQuC6MoA==
From: Danilo Krummrich <dakr@kernel.org>
To: Russell King <linux@armlinux.org.uk>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Ioana Ciornei <ioana.ciornei@nxp.com>,
	Nipun Gupta <nipun.gupta@amd.com>,
	Nikhil Agarwal <nikhil.agarwal@amd.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>,
	Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Armin Wolf <W_Armin@gmx.de>,
	Bjorn Andersson <andersson@kernel.org>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	Vineeth Vijayan <vneethv@linux.ibm.com>,
	Peter Oberparleiter <oberpar@linux.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Harald Freudenberger <freude@linux.ibm.com>,
	Holger Dengler <dengler@linux.ibm.com>,
	Mark Brown <broonie@kernel.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	=?UTF-8?q?Eugenio=20P=C3=A9rez?= <eperezma@redhat.com>,
	Alex Williamson <alex@shazbot.org>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>
Cc: linux-kernel@vger.kernel.org,
	driver-core@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	linux-hyperv@vger.kernel.org,
	linux-pci@vger.kernel.org,
	platform-driver-x86@vger.kernel.org,
	linux-arm-msm@vger.kernel.org,
	linux-remoteproc@vger.kernel.org,
	linux-s390@vger.kernel.org,
	linux-spi@vger.kernel.org,
	virtualization@lists.linux.dev,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-arm-kernel@lists.infradead.org,
	Danilo Krummrich <dakr@kernel.org>,
	Gui-Dong Han <hanguidong02@gmail.com>
Subject: [PATCH 01/12] amba: use generic driver_override infrastructure
Date: Tue, 24 Mar 2026 01:59:05 +0100
Message-ID: <20260324005919.2408620-2-dakr@kernel.org>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324005919.2408620-1-dakr@kernel.org>
References: <20260324005919.2408620-1-dakr@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1774313983-4941FDF3-AD135E62/0/0
X-purgate-type: clean
X-purgate-size: 3938

When a driver is probed through __driver_attach(), the bus' match()
callback is called without the device lock held, thus accessing the
driver_override field without a lock, which can cause a UAF.

Fix this by using the driver-core driver_override infrastructure taking
care of proper locking internally.

Note that calling match() from __driver_attach() without the device lock
held is intentional. [1]

Link: https://lore.kernel.org/driver-core/DGRGTIRHA62X.3RY09D9SOK77P@kernel.org/ [1]
Reported-by: Gui-Dong Han <hanguidong02@gmail.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220789
Fixes: 3cf385713460 ("ARM: 8256/1: driver coamba: add device binding path 'driver_override'")
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
---
 drivers/amba/bus.c       | 37 ++++++-------------------------------
 include/linux/amba/bus.h |  5 -----
 2 files changed, 6 insertions(+), 36 deletions(-)

diff --git a/drivers/amba/bus.c b/drivers/amba/bus.c
index 6d479caf89cb..d721d64a9858 100644
--- a/drivers/amba/bus.c
+++ b/drivers/amba/bus.c
@@ -82,33 +82,6 @@ static void amba_put_disable_pclk(struct amba_device *pcdev)
 }
 
 
-static ssize_t driver_override_show(struct device *_dev,
-				    struct device_attribute *attr, char *buf)
-{
-	struct amba_device *dev = to_amba_device(_dev);
-	ssize_t len;
-
-	device_lock(_dev);
-	len = sprintf(buf, "%s\n", dev->driver_override);
-	device_unlock(_dev);
-	return len;
-}
-
-static ssize_t driver_override_store(struct device *_dev,
-				     struct device_attribute *attr,
-				     const char *buf, size_t count)
-{
-	struct amba_device *dev = to_amba_device(_dev);
-	int ret;
-
-	ret = driver_set_override(_dev, &dev->driver_override, buf, count);
-	if (ret)
-		return ret;
-
-	return count;
-}
-static DEVICE_ATTR_RW(driver_override);
-
 #define amba_attr_func(name,fmt,arg...)					\
 static ssize_t name##_show(struct device *_dev,				\
 			   struct device_attribute *attr, char *buf)	\
@@ -126,7 +99,6 @@ amba_attr_func(resource, "\t%016llx\t%016llx\t%016lx\n",
 static struct attribute *amba_dev_attrs[] = {
 	&dev_attr_id.attr,
 	&dev_attr_resource.attr,
-	&dev_attr_driver_override.attr,
 	NULL,
 };
 ATTRIBUTE_GROUPS(amba_dev);
@@ -209,10 +181,11 @@ static int amba_match(struct device *dev, const struct device_driver *drv)
 {
 	struct amba_device *pcdev = to_amba_device(dev);
 	const struct amba_driver *pcdrv = to_amba_driver(drv);
+	int ret;
 
 	mutex_lock(&pcdev->periphid_lock);
 	if (!pcdev->periphid) {
-		int ret = amba_read_periphid(pcdev);
+		ret = amba_read_periphid(pcdev);
 
 		/*
 		 * Returning any error other than -EPROBE_DEFER from bus match
@@ -230,8 +203,9 @@ static int amba_match(struct device *dev, const struct device_driver *drv)
 	mutex_unlock(&pcdev->periphid_lock);
 
 	/* When driver_override is set, only bind to the matching driver */
-	if (pcdev->driver_override)
-		return !strcmp(pcdev->driver_override, drv->name);
+	ret = device_match_driver_override(dev, drv);
+	if (ret >= 0)
+		return ret;
 
 	return amba_lookup(pcdrv->id_table, pcdev) != NULL;
 }
@@ -436,6 +410,7 @@ static const struct dev_pm_ops amba_pm = {
 const struct bus_type amba_bustype = {
 	.name		= "amba",
 	.dev_groups	= amba_dev_groups,
+	.driver_override = true,
 	.match		= amba_match,
 	.uevent		= amba_uevent,
 	.probe		= amba_probe,
diff --git a/include/linux/amba/bus.h b/include/linux/amba/bus.h
index 9946276aff73..6c54d5c0d21f 100644
--- a/include/linux/amba/bus.h
+++ b/include/linux/amba/bus.h
@@ -71,11 +71,6 @@ struct amba_device {
 	unsigned int		cid;
 	struct amba_cs_uci_id	uci;
 	unsigned int		irq[AMBA_NR_IRQS];
-	/*
-	 * Driver name to force a match.  Do not set directly, because core
-	 * frees it.  Use driver_set_override() to set or clear it.
-	 */
-	const char		*driver_override;
 };
 
 struct amba_driver {
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 01:26:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 01:26:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259877.1553233 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4qXO-00005N-Er; Tue, 24 Mar 2026 01:26:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259877.1553233; Tue, 24 Mar 2026 01: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 1w4qXO-0008TL-6e; Tue, 24 Mar 2026 01:26:30 +0000
Received: by outflank-mailman (input) for mailman id 1259877;
 Tue, 24 Mar 2026 01:00: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=t6JZ=BY=kernel.org=dakr@srs-se1.protection.inumbo.net>)
 id 1w4q8R-0005Au-6S
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 01:00:43 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e0ab228c-271c-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Mar 2026 02:00: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 3D70B60123;
 Tue, 24 Mar 2026 01:00:40 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id BEA80C2BCB0;
 Tue, 24 Mar 2026 01:00:30 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e0ab228c-271c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774314039;
	bh=OxPzK3/iX5TzeguT4C32klLe13a3sjO2YbS7arezVF0=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=DYzKa8W5KbZsX0Q3U46OAbU/nH1t2yuASEQDJe8GInk2ZFV9p/BTpJrbQ5iSVN+Rr
	 iDsxtzXT1Q5IhpK1FpgMwK53o4dIzhC5AhsOW9v9r0Qy8xJdrXdZNw61AejuhRVV9e
	 VgG3LgpZit11/+9g6ang/38slf+5Zbns+RQFiELF9Xyt/9STRMSAHd9hVjW2LOrKkI
	 9RuIqlPIejomaO8iaT6YqLBMXcEr11Es9lpiZyb/MMWt2w7I73dlPA3B+6L5DTk0yn
	 REGuHaXz3xcd7vUQFZtCso2zZj9BStIrhcEah88ZcgAmaJ5zQO93xCdWxTK+gpJBxu
	 ZV5PBCZyCdkKA==
From: Danilo Krummrich <dakr@kernel.org>
To: Russell King <linux@armlinux.org.uk>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Ioana Ciornei <ioana.ciornei@nxp.com>,
	Nipun Gupta <nipun.gupta@amd.com>,
	Nikhil Agarwal <nikhil.agarwal@amd.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>,
	Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Armin Wolf <W_Armin@gmx.de>,
	Bjorn Andersson <andersson@kernel.org>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	Vineeth Vijayan <vneethv@linux.ibm.com>,
	Peter Oberparleiter <oberpar@linux.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Harald Freudenberger <freude@linux.ibm.com>,
	Holger Dengler <dengler@linux.ibm.com>,
	Mark Brown <broonie@kernel.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	=?UTF-8?q?Eugenio=20P=C3=A9rez?= <eperezma@redhat.com>,
	Alex Williamson <alex@shazbot.org>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>
Cc: linux-kernel@vger.kernel.org,
	driver-core@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	linux-hyperv@vger.kernel.org,
	linux-pci@vger.kernel.org,
	platform-driver-x86@vger.kernel.org,
	linux-arm-msm@vger.kernel.org,
	linux-remoteproc@vger.kernel.org,
	linux-s390@vger.kernel.org,
	linux-spi@vger.kernel.org,
	virtualization@lists.linux.dev,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-arm-kernel@lists.infradead.org,
	Danilo Krummrich <dakr@kernel.org>,
	Gui-Dong Han <hanguidong02@gmail.com>
Subject: [PATCH 07/12] rpmsg: use generic driver_override infrastructure
Date: Tue, 24 Mar 2026 01:59:11 +0100
Message-ID: <20260324005919.2408620-8-dakr@kernel.org>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324005919.2408620-1-dakr@kernel.org>
References: <20260324005919.2408620-1-dakr@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

When a driver is probed through __driver_attach(), the bus' match()
callback is called without the device lock held, thus accessing the
driver_override field without a lock, which can cause a UAF.

Fix this by using the driver-core driver_override infrastructure taking
care of proper locking internally.

Note that calling match() from __driver_attach() without the device lock
held is intentional. [1]

Link: https://lore.kernel.org/driver-core/DGRGTIRHA62X.3RY09D9SOK77P@kernel.org/ [1]
Reported-by: Gui-Dong Han <hanguidong02@gmail.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220789
Fixes: e95060478244 ("rpmsg: Introduce a driver override mechanism")
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
---
 drivers/rpmsg/qcom_glink_native.c |  2 --
 drivers/rpmsg/rpmsg_core.c        | 43 +++++--------------------------
 drivers/rpmsg/virtio_rpmsg_bus.c  |  1 -
 include/linux/rpmsg.h             |  4 ---
 4 files changed, 7 insertions(+), 43 deletions(-)

diff --git a/drivers/rpmsg/qcom_glink_native.c b/drivers/rpmsg/qcom_glink_native.c
index 9ef17c2e45b0..e9d1b2082477 100644
--- a/drivers/rpmsg/qcom_glink_native.c
+++ b/drivers/rpmsg/qcom_glink_native.c
@@ -1623,7 +1623,6 @@ static void qcom_glink_rpdev_release(struct device *dev)
 {
 	struct rpmsg_device *rpdev = to_rpmsg_device(dev);
 
-	kfree(rpdev->driver_override);
 	kfree(rpdev);
 }
 
@@ -1859,7 +1858,6 @@ static void qcom_glink_device_release(struct device *dev)
 
 	/* Release qcom_glink_alloc_channel() reference */
 	kref_put(&channel->refcount, qcom_glink_channel_release);
-	kfree(rpdev->driver_override);
 	kfree(rpdev);
 }
 
diff --git a/drivers/rpmsg/rpmsg_core.c b/drivers/rpmsg/rpmsg_core.c
index 96964745065b..2b9f6d5a9a4f 100644
--- a/drivers/rpmsg/rpmsg_core.c
+++ b/drivers/rpmsg/rpmsg_core.c
@@ -358,33 +358,6 @@ rpmsg_show_attr(src, src, "0x%x\n");
 rpmsg_show_attr(dst, dst, "0x%x\n");
 rpmsg_show_attr(announce, announce ? "true" : "false", "%s\n");
 
-static ssize_t driver_override_store(struct device *dev,
-				     struct device_attribute *attr,
-				     const char *buf, size_t count)
-{
-	struct rpmsg_device *rpdev = to_rpmsg_device(dev);
-	int ret;
-
-	ret = driver_set_override(dev, &rpdev->driver_override, buf, count);
-	if (ret)
-		return ret;
-
-	return count;
-}
-
-static ssize_t driver_override_show(struct device *dev,
-				    struct device_attribute *attr, char *buf)
-{
-	struct rpmsg_device *rpdev = to_rpmsg_device(dev);
-	ssize_t len;
-
-	device_lock(dev);
-	len = sysfs_emit(buf, "%s\n", rpdev->driver_override);
-	device_unlock(dev);
-	return len;
-}
-static DEVICE_ATTR_RW(driver_override);
-
 static ssize_t modalias_show(struct device *dev,
 			     struct device_attribute *attr, char *buf)
 {
@@ -405,7 +378,6 @@ static struct attribute *rpmsg_dev_attrs[] = {
 	&dev_attr_dst.attr,
 	&dev_attr_src.attr,
 	&dev_attr_announce.attr,
-	&dev_attr_driver_override.attr,
 	NULL,
 };
 ATTRIBUTE_GROUPS(rpmsg_dev);
@@ -424,9 +396,11 @@ static int rpmsg_dev_match(struct device *dev, const struct device_driver *drv)
 	const struct rpmsg_driver *rpdrv = to_rpmsg_driver(drv);
 	const struct rpmsg_device_id *ids = rpdrv->id_table;
 	unsigned int i;
+	int ret;
 
-	if (rpdev->driver_override)
-		return !strcmp(rpdev->driver_override, drv->name);
+	ret = device_match_driver_override(dev, drv);
+	if (ret >= 0)
+		return ret;
 
 	if (ids)
 		for (i = 0; ids[i].name[0]; i++)
@@ -535,6 +509,7 @@ static const struct bus_type rpmsg_bus = {
 	.name		= "rpmsg",
 	.match		= rpmsg_dev_match,
 	.dev_groups	= rpmsg_dev_groups,
+	.driver_override = true,
 	.uevent		= rpmsg_uevent,
 	.probe		= rpmsg_dev_probe,
 	.remove		= rpmsg_dev_remove,
@@ -560,11 +535,9 @@ int rpmsg_register_device_override(struct rpmsg_device *rpdev,
 
 	device_initialize(dev);
 	if (driver_override) {
-		ret = driver_set_override(dev, &rpdev->driver_override,
-					  driver_override,
-					  strlen(driver_override));
+		ret = device_set_driver_override(dev, driver_override);
 		if (ret) {
-			dev_err(dev, "device_set_override failed: %d\n", ret);
+			dev_err(dev, "device_set_driver_override() failed: %d\n", ret);
 			put_device(dev);
 			return ret;
 		}
@@ -573,8 +546,6 @@ int rpmsg_register_device_override(struct rpmsg_device *rpdev,
 	ret = device_add(dev);
 	if (ret) {
 		dev_err(dev, "device_add failed: %d\n", ret);
-		kfree(rpdev->driver_override);
-		rpdev->driver_override = NULL;
 		put_device(dev);
 	}
 
diff --git a/drivers/rpmsg/virtio_rpmsg_bus.c b/drivers/rpmsg/virtio_rpmsg_bus.c
index 8d9e2b4dc7c1..e0dacb736ef9 100644
--- a/drivers/rpmsg/virtio_rpmsg_bus.c
+++ b/drivers/rpmsg/virtio_rpmsg_bus.c
@@ -373,7 +373,6 @@ static void virtio_rpmsg_release_device(struct device *dev)
 	struct rpmsg_device *rpdev = to_rpmsg_device(dev);
 	struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(rpdev);
 
-	kfree(rpdev->driver_override);
 	kfree(vch);
 }
 
diff --git a/include/linux/rpmsg.h b/include/linux/rpmsg.h
index fb7ab9165645..c2e3ef8480d5 100644
--- a/include/linux/rpmsg.h
+++ b/include/linux/rpmsg.h
@@ -41,9 +41,6 @@ struct rpmsg_channel_info {
  * rpmsg_device - device that belong to the rpmsg bus
  * @dev: the device struct
  * @id: device id (used to match between rpmsg drivers and devices)
- * @driver_override: driver name to force a match; do not set directly,
- *                   because core frees it; use driver_set_override() to
- *                   set or clear it.
  * @src: local address
  * @dst: destination address
  * @ept: the rpmsg endpoint of this channel
@@ -53,7 +50,6 @@ struct rpmsg_channel_info {
 struct rpmsg_device {
 	struct device dev;
 	struct rpmsg_device_id id;
-	const char *driver_override;
 	u32 src;
 	u32 dst;
 	struct rpmsg_endpoint *ept;
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 01:26:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 01:26:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259881.1553248 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4qXP-0000Ri-90; Tue, 24 Mar 2026 01:26:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259881.1553248; Tue, 24 Mar 2026 01:26:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4qXP-0000PF-2c; Tue, 24 Mar 2026 01:26:31 +0000
Received: by outflank-mailman (input) for mailman id 1259881;
 Tue, 24 Mar 2026 01:01:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dakr@kernel.org>) id 1w4q8t-0006VL-8C
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 01:01:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4q8s-004t0e-KI
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 02:01:10 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dakr@kernel.org>)
 id 69c1e229-e002-0a2a0a5209dd-0a2a45049692-46
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 02:01:10 +0100
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <dakr@kernel.org>)
 id 69c1e254-c823-0a2a45040019-aceafc1f8d64-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 02:01:10 +0100
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id B1AFA404E5;
 Tue, 24 Mar 2026 01:01:08 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 931DBC2BCB0;
 Tue, 24 Mar 2026 01:00: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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="From:To:Cc:Subject:Date:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774314068;
	bh=A7+ilLlUptt8NahoteAzf0RgIRgwKuFBHYBpfbQD/9c=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=erU7fvhzJv2tp5KrkKrqx+Erdif01ZeeUOpNA4f3SMGY5Zd3volrXG0e/GJE1PA+4
	 eGQrxZX3PAs12r5SMw5wVj3Dru900+u5sZlt2HAhjsWXohecP7okhBQJqUVMGYmK9x
	 t4JpMcZVTz48+PY+wk5zYrMxets8K+lB6YlpzvSaaUxQizoh9N8ogOZ6kZFkBtVUt/
	 +2U/I6kRnURbopqcXHThSae0+v5nsjA+MtxnO1+6Qp2DXSnViA+Sg/1CnS+DYaIbv9
	 MmwreYV6dk6ePxO92r/nW6iGASWXgbC1mouwugaLRXGpdUBgdYK22pwqvUSENOqNbX
	 RFBSTYbpYZsGA==
From: Danilo Krummrich <dakr@kernel.org>
To: Russell King <linux@armlinux.org.uk>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Ioana Ciornei <ioana.ciornei@nxp.com>,
	Nipun Gupta <nipun.gupta@amd.com>,
	Nikhil Agarwal <nikhil.agarwal@amd.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>,
	Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Armin Wolf <W_Armin@gmx.de>,
	Bjorn Andersson <andersson@kernel.org>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	Vineeth Vijayan <vneethv@linux.ibm.com>,
	Peter Oberparleiter <oberpar@linux.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Harald Freudenberger <freude@linux.ibm.com>,
	Holger Dengler <dengler@linux.ibm.com>,
	Mark Brown <broonie@kernel.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	=?UTF-8?q?Eugenio=20P=C3=A9rez?= <eperezma@redhat.com>,
	Alex Williamson <alex@shazbot.org>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>
Cc: linux-kernel@vger.kernel.org,
	driver-core@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	linux-hyperv@vger.kernel.org,
	linux-pci@vger.kernel.org,
	platform-driver-x86@vger.kernel.org,
	linux-arm-msm@vger.kernel.org,
	linux-remoteproc@vger.kernel.org,
	linux-s390@vger.kernel.org,
	linux-spi@vger.kernel.org,
	virtualization@lists.linux.dev,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-arm-kernel@lists.infradead.org,
	Danilo Krummrich <dakr@kernel.org>
Subject: [PATCH 10/12] s390/ap: use generic driver_override infrastructure
Date: Tue, 24 Mar 2026 01:59:14 +0100
Message-ID: <20260324005919.2408620-11-dakr@kernel.org>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324005919.2408620-1-dakr@kernel.org>
References: <20260324005919.2408620-1-dakr@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1774314070-B80B39D1-08BA4308/0/0
X-purgate-type: clean
X-purgate-size: 6288

When the AP masks are updated via apmask_store() or aqmask_store(),
ap_bus_revise_bindings() is called after ap_attr_mutex has been
released.

This calls __ap_revise_reserved(), which accesses the driver_override
field without holding any lock, racing against a concurrent
driver_override_store() that may free the old string, resulting in a
potential UAF.

Fix this by using the driver-core driver_override infrastructure, which
protects all accesses with an internal spinlock.

Note that unlike most other buses, the AP bus does not check
driver_override in its match() callback; the override is checked in
ap_device_probe() and __ap_revise_reserved() instead.

Also note that we do not enable the driver_override feature of struct
bus_type, as AP - in contrast to most other buses - passes "" to
sysfs_emit() when the driver_override pointer is NULL. Thus, printing
"\n" instead of "(null)\n".

Additionally, AP has a custom counter that is modified in the
corresponding custom driver_override_store().

Fixes: d38a87d7c064 ("s390/ap: Support driver_override for AP queue devices")
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
---
 drivers/s390/crypto/ap_bus.c   | 34 +++++++++++++++++-----------------
 drivers/s390/crypto/ap_bus.h   |  1 -
 drivers/s390/crypto/ap_queue.c | 24 ++++++------------------
 3 files changed, 23 insertions(+), 36 deletions(-)

diff --git a/drivers/s390/crypto/ap_bus.c b/drivers/s390/crypto/ap_bus.c
index d652df96a507..f24e27add721 100644
--- a/drivers/s390/crypto/ap_bus.c
+++ b/drivers/s390/crypto/ap_bus.c
@@ -859,25 +859,24 @@ static int __ap_queue_devices_with_id_unregister(struct device *dev, void *data)
 
 static int __ap_revise_reserved(struct device *dev, void *dummy)
 {
-	int rc, card, queue, devres, drvres;
+	int rc, card, queue, devres, drvres, ovrd;
 
 	if (is_queue_dev(dev)) {
 		struct ap_driver *ap_drv = to_ap_drv(dev->driver);
 		struct ap_queue *aq = to_ap_queue(dev);
-		struct ap_device *ap_dev = &aq->ap_dev;
 
 		card = AP_QID_CARD(aq->qid);
 		queue = AP_QID_QUEUE(aq->qid);
 
-		if (ap_dev->driver_override) {
-			if (strcmp(ap_dev->driver_override,
-				   ap_drv->driver.name)) {
-				pr_debug("reprobing queue=%02x.%04x\n", card, queue);
-				rc = device_reprobe(dev);
-				if (rc) {
-					AP_DBF_WARN("%s reprobing queue=%02x.%04x failed\n",
-						    __func__, card, queue);
-				}
+		ovrd = device_match_driver_override(dev, &ap_drv->driver);
+		if (ovrd > 0) {
+			/* override set and matches, nothing to do */
+		} else if (ovrd == 0) {
+			pr_debug("reprobing queue=%02x.%04x\n", card, queue);
+			rc = device_reprobe(dev);
+			if (rc) {
+				AP_DBF_WARN("%s reprobing queue=%02x.%04x failed\n",
+					    __func__, card, queue);
 			}
 		} else {
 			mutex_lock(&ap_attr_mutex);
@@ -928,7 +927,7 @@ int ap_owned_by_def_drv(int card, int queue)
 	if (aq) {
 		const struct device_driver *drv = aq->ap_dev.device.driver;
 		const struct ap_driver *ap_drv = to_ap_drv(drv);
-		bool override = !!aq->ap_dev.driver_override;
+		bool override = device_has_driver_override(&aq->ap_dev.device);
 
 		if (override && drv && ap_drv->flags & AP_DRIVER_FLAG_DEFAULT)
 			rc = 1;
@@ -977,7 +976,7 @@ static int ap_device_probe(struct device *dev)
 {
 	struct ap_device *ap_dev = to_ap_dev(dev);
 	struct ap_driver *ap_drv = to_ap_drv(dev->driver);
-	int card, queue, devres, drvres, rc = -ENODEV;
+	int card, queue, devres, drvres, rc = -ENODEV, ovrd;
 
 	if (!get_device(dev))
 		return rc;
@@ -991,10 +990,11 @@ static int ap_device_probe(struct device *dev)
 		 */
 		card = AP_QID_CARD(to_ap_queue(dev)->qid);
 		queue = AP_QID_QUEUE(to_ap_queue(dev)->qid);
-		if (ap_dev->driver_override) {
-			if (strcmp(ap_dev->driver_override,
-				   ap_drv->driver.name))
-				goto out;
+		ovrd = device_match_driver_override(dev, &ap_drv->driver);
+		if (ovrd > 0) {
+			/* override set and matches, nothing to do */
+		} else if (ovrd == 0) {
+			goto out;
 		} else {
 			mutex_lock(&ap_attr_mutex);
 			devres = test_bit_inv(card, ap_perms.apm) &&
diff --git a/drivers/s390/crypto/ap_bus.h b/drivers/s390/crypto/ap_bus.h
index 51e08f27bd75..04ea256ecf91 100644
--- a/drivers/s390/crypto/ap_bus.h
+++ b/drivers/s390/crypto/ap_bus.h
@@ -166,7 +166,6 @@ void ap_driver_unregister(struct ap_driver *);
 struct ap_device {
 	struct device device;
 	int device_type;		/* AP device type. */
-	const char *driver_override;
 };
 
 #define to_ap_dev(x) container_of((x), struct ap_device, device)
diff --git a/drivers/s390/crypto/ap_queue.c b/drivers/s390/crypto/ap_queue.c
index 3fe2e41c5c6b..ca9819e6f7e7 100644
--- a/drivers/s390/crypto/ap_queue.c
+++ b/drivers/s390/crypto/ap_queue.c
@@ -734,26 +734,14 @@ static ssize_t driver_override_show(struct device *dev,
 				    struct device_attribute *attr,
 				    char *buf)
 {
-	struct ap_queue *aq = to_ap_queue(dev);
-	struct ap_device *ap_dev = &aq->ap_dev;
-	int rc;
-
-	device_lock(dev);
-	if (ap_dev->driver_override)
-		rc = sysfs_emit(buf, "%s\n", ap_dev->driver_override);
-	else
-		rc = sysfs_emit(buf, "\n");
-	device_unlock(dev);
-
-	return rc;
+	guard(spinlock)(&dev->driver_override.lock);
+	return sysfs_emit(buf, "%s\n", dev->driver_override.name ?: "");
 }
 
 static ssize_t driver_override_store(struct device *dev,
 				     struct device_attribute *attr,
 				     const char *buf, size_t count)
 {
-	struct ap_queue *aq = to_ap_queue(dev);
-	struct ap_device *ap_dev = &aq->ap_dev;
 	int rc = -EINVAL;
 	bool old_value;
 
@@ -764,13 +752,13 @@ static ssize_t driver_override_store(struct device *dev,
 	if (ap_apmask_aqmask_in_use)
 		goto out;
 
-	old_value = ap_dev->driver_override ? true : false;
-	rc = driver_set_override(dev, &ap_dev->driver_override, buf, count);
+	old_value = device_has_driver_override(dev);
+	rc = __device_set_driver_override(dev, buf, count);
 	if (rc)
 		goto out;
-	if (old_value && !ap_dev->driver_override)
+	if (old_value && !device_has_driver_override(dev))
 		--ap_driver_override_ctr;
-	else if (!old_value && ap_dev->driver_override)
+	else if (!old_value && device_has_driver_override(dev))
 		++ap_driver_override_ctr;
 
 	rc = count;
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 01:26:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 01:26:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259871.1553213 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4qXN-00083X-FK; Tue, 24 Mar 2026 01:26:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259871.1553213; Tue, 24 Mar 2026 01: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 1w4qXN-00081b-8V; Tue, 24 Mar 2026 01:26:29 +0000
Received: by outflank-mailman (input) for mailman id 1259871;
 Tue, 24 Mar 2026 01:00:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dakr@kernel.org>) id 1w4q7n-0005Q9-ER
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 01:00:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4q7m-00CO7D-Qf
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 02:00:02 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dakr@kernel.org>)
 id 69c1e20c-bab6-0a2a0a5309dd-0a2a450cb7fc-2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 02:00:02 +0100
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <dakr@kernel.org>)
 id 69c1e211-f93d-0a2a450c0019-ac6904fe8806-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 02:00:02 +0100
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 74FC6600AC;
 Tue, 24 Mar 2026 01:00:01 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A8531C2BCB3;
 Tue, 24 Mar 2026 00:59: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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="From:To:Cc:Subject:Date:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774314001;
	bh=ZtCCSi+uF2o4qnuVascTL67uA5Os6ojvzLmO/D5h2Mg=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=Nl46bkNw7Fjecz/RMBLSWyx70dmK5O28lDsQW1GskyDDaiScC60RT6k4U32whSdqG
	 vvTqf2D5QJuwkZfMIHhePdCU3vg54I+asysdiy/HM6VLVikFmJCB5Rg5z3VC4yK/OU
	 tiset58fZbTtl2ttAsLp2cIrn8qWITtMGEZoCLr2TNkcCKmmEyAhCl7fs1cLqq3NtF
	 4mix3uDvddCgkLlNrSUBtMqBA8rF7s9Io0nEBzEdxR7hO0qdfUKsjfrKBksqiZ2aw1
	 v8gaiSPh0Qq/Pna5QKorppQaSfrb9lZ12oswLvR4sVUrPpIna0omN319f9Veo9VvTv
	 453J11YKXvWrw==
From: Danilo Krummrich <dakr@kernel.org>
To: Russell King <linux@armlinux.org.uk>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Ioana Ciornei <ioana.ciornei@nxp.com>,
	Nipun Gupta <nipun.gupta@amd.com>,
	Nikhil Agarwal <nikhil.agarwal@amd.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>,
	Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Armin Wolf <W_Armin@gmx.de>,
	Bjorn Andersson <andersson@kernel.org>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	Vineeth Vijayan <vneethv@linux.ibm.com>,
	Peter Oberparleiter <oberpar@linux.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Harald Freudenberger <freude@linux.ibm.com>,
	Holger Dengler <dengler@linux.ibm.com>,
	Mark Brown <broonie@kernel.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	=?UTF-8?q?Eugenio=20P=C3=A9rez?= <eperezma@redhat.com>,
	Alex Williamson <alex@shazbot.org>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>
Cc: linux-kernel@vger.kernel.org,
	driver-core@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	linux-hyperv@vger.kernel.org,
	linux-pci@vger.kernel.org,
	platform-driver-x86@vger.kernel.org,
	linux-arm-msm@vger.kernel.org,
	linux-remoteproc@vger.kernel.org,
	linux-s390@vger.kernel.org,
	linux-spi@vger.kernel.org,
	virtualization@lists.linux.dev,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-arm-kernel@lists.infradead.org,
	Danilo Krummrich <dakr@kernel.org>,
	Gui-Dong Han <hanguidong02@gmail.com>
Subject: [PATCH 03/12] cdx: use generic driver_override infrastructure
Date: Tue, 24 Mar 2026 01:59:07 +0100
Message-ID: <20260324005919.2408620-4-dakr@kernel.org>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324005919.2408620-1-dakr@kernel.org>
References: <20260324005919.2408620-1-dakr@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1774314002-F72A9734-E1904B81/0/0
X-purgate-type: clean
X-purgate-size: 4627

When a driver is probed through __driver_attach(), the bus' match()
callback is called without the device lock held, thus accessing the
driver_override field without a lock, which can cause a UAF.

Fix this by using the driver-core driver_override infrastructure taking
care of proper locking internally.

Note that calling match() from __driver_attach() without the device lock
held is intentional. [1]

Link: https://lore.kernel.org/driver-core/DGRGTIRHA62X.3RY09D9SOK77P@kernel.org/ [1]
Reported-by: Gui-Dong Han <hanguidong02@gmail.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220789
Fixes: 2959ab247061 ("cdx: add the cdx bus driver")
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
---
 drivers/cdx/cdx.c           | 40 +++++--------------------------------
 include/linux/cdx/cdx_bus.h |  4 ----
 2 files changed, 5 insertions(+), 39 deletions(-)

diff --git a/drivers/cdx/cdx.c b/drivers/cdx/cdx.c
index 9196dc50a48d..d3d230247262 100644
--- a/drivers/cdx/cdx.c
+++ b/drivers/cdx/cdx.c
@@ -156,8 +156,6 @@ static int cdx_unregister_device(struct device *dev,
 	} else {
 		cdx_destroy_res_attr(cdx_dev, MAX_CDX_DEV_RESOURCES);
 		debugfs_remove_recursive(cdx_dev->debugfs_dir);
-		kfree(cdx_dev->driver_override);
-		cdx_dev->driver_override = NULL;
 	}
 
 	/*
@@ -268,6 +266,7 @@ static int cdx_bus_match(struct device *dev, const struct device_driver *drv)
 	const struct cdx_driver *cdx_drv = to_cdx_driver(drv);
 	const struct cdx_device_id *found_id = NULL;
 	const struct cdx_device_id *ids;
+	int ret;
 
 	if (cdx_dev->is_bus)
 		return false;
@@ -275,7 +274,8 @@ static int cdx_bus_match(struct device *dev, const struct device_driver *drv)
 	ids = cdx_drv->match_id_table;
 
 	/* When driver_override is set, only bind to the matching driver */
-	if (cdx_dev->driver_override && strcmp(cdx_dev->driver_override, drv->name))
+	ret = device_match_driver_override(dev, drv);
+	if (ret == 0)
 		return false;
 
 	found_id = cdx_match_id(ids, cdx_dev);
@@ -289,7 +289,7 @@ static int cdx_bus_match(struct device *dev, const struct device_driver *drv)
 		 */
 		if (!found_id->override_only)
 			return true;
-		if (cdx_dev->driver_override)
+		if (ret > 0)
 			return true;
 
 		ids = found_id + 1;
@@ -453,36 +453,6 @@ static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
 }
 static DEVICE_ATTR_RO(modalias);
 
-static ssize_t driver_override_store(struct device *dev,
-				     struct device_attribute *attr,
-				     const char *buf, size_t count)
-{
-	struct cdx_device *cdx_dev = to_cdx_device(dev);
-	int ret;
-
-	if (WARN_ON(dev->bus != &cdx_bus_type))
-		return -EINVAL;
-
-	ret = driver_set_override(dev, &cdx_dev->driver_override, buf, count);
-	if (ret)
-		return ret;
-
-	return count;
-}
-
-static ssize_t driver_override_show(struct device *dev,
-				    struct device_attribute *attr, char *buf)
-{
-	struct cdx_device *cdx_dev = to_cdx_device(dev);
-	ssize_t len;
-
-	device_lock(dev);
-	len = sysfs_emit(buf, "%s\n", cdx_dev->driver_override);
-	device_unlock(dev);
-	return len;
-}
-static DEVICE_ATTR_RW(driver_override);
-
 static ssize_t enable_store(struct device *dev, struct device_attribute *attr,
 			    const char *buf, size_t count)
 {
@@ -552,7 +522,6 @@ static struct attribute *cdx_dev_attrs[] = {
 	&dev_attr_class.attr,
 	&dev_attr_revision.attr,
 	&dev_attr_modalias.attr,
-	&dev_attr_driver_override.attr,
 	NULL,
 };
 
@@ -646,6 +615,7 @@ ATTRIBUTE_GROUPS(cdx_bus);
 
 const struct bus_type cdx_bus_type = {
 	.name		= "cdx",
+	.driver_override = true,
 	.match		= cdx_bus_match,
 	.probe		= cdx_probe,
 	.remove		= cdx_remove,
diff --git a/include/linux/cdx/cdx_bus.h b/include/linux/cdx/cdx_bus.h
index b1ba97f6c9ad..f54770f110bc 100644
--- a/include/linux/cdx/cdx_bus.h
+++ b/include/linux/cdx/cdx_bus.h
@@ -137,9 +137,6 @@ struct cdx_controller {
  * @enabled: is this bus enabled
  * @msi_dev_id: MSI Device ID associated with CDX device
  * @num_msi: Number of MSI's supported by the device
- * @driver_override: driver name to force a match; do not set directly,
- *                   because core frees it; use driver_set_override() to
- *                   set or clear it.
  * @irqchip_lock: lock to synchronize irq/msi configuration
  * @msi_write_pending: MSI write pending for this device
  */
@@ -165,7 +162,6 @@ struct cdx_device {
 	bool enabled;
 	u32 msi_dev_id;
 	u32 num_msi;
-	const char *driver_override;
 	struct mutex irqchip_lock;
 	bool msi_write_pending;
 };
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 01:26:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 01:26:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259883.1553258 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4qXP-0000gP-R9; Tue, 24 Mar 2026 01:26:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259883.1553258; Tue, 24 Mar 2026 01:26:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4qXP-0000cf-Jx; Tue, 24 Mar 2026 01:26:31 +0000
Received: by outflank-mailman (input) for mailman id 1259883;
 Tue, 24 Mar 2026 01:01:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dakr@kernel.org>) id 1w4q9C-0005wi-63
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 01:01:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4q9B-004t4m-GW
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 02:01:29 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dakr@kernel.org>)
 id 69c1e257-e002-0a2a0a5209dd-0a2a4503b5ea-18
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 02:01:29 +0100
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <dakr@kernel.org>)
 id 69c1e268-1947-0a2a45030019-ac6904fe8d24-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 02:01:29 +0100
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id E26DB6012B;
 Tue, 24 Mar 2026 01:01:27 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9C0E8C4CEF7;
 Tue, 24 Mar 2026 01:01:18 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="From:To:Cc:Subject:Date:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774314087;
	bh=KpxTlQdpK2jKnd62P5I8EEqT3CEkSotjkNoM+lvw6Dc=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=rLAmVR6groUQSZRplygjMn68KJDDiLrGR9Vctd6Afc3mLDKzHEaYGbMFZ3KXs4fK4
	 MUoXCr/h6SfvTEE4yAlc7KGjraQ8CFJXtGn8f5BkmJWMm1J/pjXgfy9qXciydDWGLj
	 XNYlWwVjufJG5KD0z7v9ARc0FuEyAjjiYRe15HPbrYCuuNFi4/b/eyHrklVGEVsCSm
	 lE5k5muPCMjo/9hKdfl5T5LohS8mNpZoGcTFibqf76OQzdeH43NHUrx9bEVbSisncq
	 g/N4LXJNuBtUlzaGXa8b6D8KnPgXir5STaz/+AS+2urYkPCvbB6vpDfKREYcWyPp9d
	 47Lib8DntPlsA==
From: Danilo Krummrich <dakr@kernel.org>
To: Russell King <linux@armlinux.org.uk>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Ioana Ciornei <ioana.ciornei@nxp.com>,
	Nipun Gupta <nipun.gupta@amd.com>,
	Nikhil Agarwal <nikhil.agarwal@amd.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>,
	Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Armin Wolf <W_Armin@gmx.de>,
	Bjorn Andersson <andersson@kernel.org>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	Vineeth Vijayan <vneethv@linux.ibm.com>,
	Peter Oberparleiter <oberpar@linux.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Harald Freudenberger <freude@linux.ibm.com>,
	Holger Dengler <dengler@linux.ibm.com>,
	Mark Brown <broonie@kernel.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	=?UTF-8?q?Eugenio=20P=C3=A9rez?= <eperezma@redhat.com>,
	Alex Williamson <alex@shazbot.org>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>
Cc: linux-kernel@vger.kernel.org,
	driver-core@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	linux-hyperv@vger.kernel.org,
	linux-pci@vger.kernel.org,
	platform-driver-x86@vger.kernel.org,
	linux-arm-msm@vger.kernel.org,
	linux-remoteproc@vger.kernel.org,
	linux-s390@vger.kernel.org,
	linux-spi@vger.kernel.org,
	virtualization@lists.linux.dev,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-arm-kernel@lists.infradead.org,
	Danilo Krummrich <dakr@kernel.org>
Subject: [PATCH 12/12] driver core: remove driver_set_override()
Date: Tue, 24 Mar 2026 01:59:16 +0100
Message-ID: <20260324005919.2408620-13-dakr@kernel.org>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324005919.2408620-1-dakr@kernel.org>
References: <20260324005919.2408620-1-dakr@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1774314089-4846E72C-6B87008D/0/0
X-purgate-type: clean
X-purgate-size: 3736

All buses have been converted from driver_set_override() to the generic
driver_override infrastructure introduced in commit cb3d1049f4ea
("driver core: generalize driver_override in struct device").

Buses now either opt into the generic sysfs callbacks via the
bus_type::driver_override flag, or use device_set_driver_override() /
__device_set_driver_override() directly.

Thus, remove the now-unused driver_set_override() helper.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=220789
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
---
 drivers/base/driver.c         | 75 -----------------------------------
 include/linux/device/driver.h |  2 -
 2 files changed, 77 deletions(-)

diff --git a/drivers/base/driver.c b/drivers/base/driver.c
index 8ab010ddf709..7ed834f7199c 100644
--- a/drivers/base/driver.c
+++ b/drivers/base/driver.c
@@ -30,81 +30,6 @@ static struct device *next_device(struct klist_iter *i)
 	return dev;
 }
 
-/**
- * driver_set_override() - Helper to set or clear driver override.
- * @dev: Device to change
- * @override: Address of string to change (e.g. &device->driver_override);
- *            The contents will be freed and hold newly allocated override.
- * @s: NUL-terminated string, new driver name to force a match, pass empty
- *     string to clear it ("" or "\n", where the latter is only for sysfs
- *     interface).
- * @len: length of @s
- *
- * Helper to set or clear driver override in a device, intended for the cases
- * when the driver_override field is allocated by driver/bus code.
- *
- * Returns: 0 on success or a negative error code on failure.
- */
-int driver_set_override(struct device *dev, const char **override,
-			const char *s, size_t len)
-{
-	const char *new, *old;
-	char *cp;
-
-	if (!override || !s)
-		return -EINVAL;
-
-	/*
-	 * The stored value will be used in sysfs show callback (sysfs_emit()),
-	 * which has a length limit of PAGE_SIZE and adds a trailing newline.
-	 * Thus we can store one character less to avoid truncation during sysfs
-	 * show.
-	 */
-	if (len >= (PAGE_SIZE - 1))
-		return -EINVAL;
-
-	/*
-	 * Compute the real length of the string in case userspace sends us a
-	 * bunch of \0 characters like python likes to do.
-	 */
-	len = strlen(s);
-
-	if (!len) {
-		/* Empty string passed - clear override */
-		device_lock(dev);
-		old = *override;
-		*override = NULL;
-		device_unlock(dev);
-		kfree(old);
-
-		return 0;
-	}
-
-	cp = strnchr(s, len, '\n');
-	if (cp)
-		len = cp - s;
-
-	new = kstrndup(s, len, GFP_KERNEL);
-	if (!new)
-		return -ENOMEM;
-
-	device_lock(dev);
-	old = *override;
-	if (cp != s) {
-		*override = new;
-	} else {
-		/* "\n" passed - clear override */
-		kfree(new);
-		*override = NULL;
-	}
-	device_unlock(dev);
-
-	kfree(old);
-
-	return 0;
-}
-EXPORT_SYMBOL_GPL(driver_set_override);
-
 /**
  * driver_for_each_device - Iterator for devices bound to a driver.
  * @drv: Driver we're iterating.
diff --git a/include/linux/device/driver.h b/include/linux/device/driver.h
index bbc67ec513ed..aa3465a369f0 100644
--- a/include/linux/device/driver.h
+++ b/include/linux/device/driver.h
@@ -160,8 +160,6 @@ int __must_check driver_create_file(const struct device_driver *driver,
 void driver_remove_file(const struct device_driver *driver,
 			const struct driver_attribute *attr);
 
-int driver_set_override(struct device *dev, const char **override,
-			const char *s, size_t len);
 int __must_check driver_for_each_device(struct device_driver *drv, struct device *start,
 					void *data, device_iter_t fn);
 struct device *driver_find_device(const struct device_driver *drv,
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 01:26:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 01:26:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259879.1553241 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4qXO-0000Cw-RM; Tue, 24 Mar 2026 01:26:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259879.1553241; Tue, 24 Mar 2026 01: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 1w4qXO-0000BI-Jb; Tue, 24 Mar 2026 01:26:30 +0000
Received: by outflank-mailman (input) for mailman id 1259879;
 Tue, 24 Mar 2026 01:01: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=t6JZ=BY=kernel.org=dakr@srs-se1.protection.inumbo.net>)
 id 1w4q8k-0005Au-6W
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 01:01:02 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ec01ef05-271c-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Mar 2026 02:01:00 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 6F07260121;
 Tue, 24 Mar 2026 01:00:59 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id F37F1C4CEF7;
 Tue, 24 Mar 2026 01:00:49 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ec01ef05-271c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774314059;
	bh=ByobimVvZngWYiBS4MISNoCZaILbn7MyP0EmUHxONX8=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=M5cmM+6DyqmK+EAGRvLHS/yaDqvmCvw5jU4r7SCyXiBwcQBFFqbb4X/i4pXN2bi2S
	 gHkRbl+Xo3RELYoiG4jfGiG71cPBeRkIjOhdvO7LyCtTJjVMWWsggEZfDrMHEQh/LT
	 sJPml12ZLm2ZXWcUV7+rSBuPDv4wlXIGpfa5Mp3UMgF0NSXsREGrGnuvEljzT3nxKU
	 rRCqRHzFA+L/AZEsNVivSFaFs9zyzzt9OOmEyPjs+2mnPiQ4PBAEg9i9nAYF6+ohUT
	 5vkv2XGga3nnGd1hHPKmfzckD1wY8wwkbKkdLTe4mZgsX9KBZZceAs6EiZe7MaJYyF
	 N2W+3BMlOYL3w==
From: Danilo Krummrich <dakr@kernel.org>
To: Russell King <linux@armlinux.org.uk>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Ioana Ciornei <ioana.ciornei@nxp.com>,
	Nipun Gupta <nipun.gupta@amd.com>,
	Nikhil Agarwal <nikhil.agarwal@amd.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>,
	Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Armin Wolf <W_Armin@gmx.de>,
	Bjorn Andersson <andersson@kernel.org>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	Vineeth Vijayan <vneethv@linux.ibm.com>,
	Peter Oberparleiter <oberpar@linux.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Harald Freudenberger <freude@linux.ibm.com>,
	Holger Dengler <dengler@linux.ibm.com>,
	Mark Brown <broonie@kernel.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	=?UTF-8?q?Eugenio=20P=C3=A9rez?= <eperezma@redhat.com>,
	Alex Williamson <alex@shazbot.org>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>
Cc: linux-kernel@vger.kernel.org,
	driver-core@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	linux-hyperv@vger.kernel.org,
	linux-pci@vger.kernel.org,
	platform-driver-x86@vger.kernel.org,
	linux-arm-msm@vger.kernel.org,
	linux-remoteproc@vger.kernel.org,
	linux-s390@vger.kernel.org,
	linux-spi@vger.kernel.org,
	virtualization@lists.linux.dev,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-arm-kernel@lists.infradead.org,
	Danilo Krummrich <dakr@kernel.org>,
	Gui-Dong Han <hanguidong02@gmail.com>
Subject: [PATCH 09/12] s390/cio: use generic driver_override infrastructure
Date: Tue, 24 Mar 2026 01:59:13 +0100
Message-ID: <20260324005919.2408620-10-dakr@kernel.org>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324005919.2408620-1-dakr@kernel.org>
References: <20260324005919.2408620-1-dakr@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

When a driver is probed through __driver_attach(), the bus' match()
callback is called without the device lock held, thus accessing the
driver_override field without a lock, which can cause a UAF.

Fix this by using the driver-core driver_override infrastructure taking
care of proper locking internally.

Note that calling match() from __driver_attach() without the device lock
held is intentional. [1]

Link: https://lore.kernel.org/driver-core/DGRGTIRHA62X.3RY09D9SOK77P@kernel.org/ [1]
Reported-by: Gui-Dong Han <hanguidong02@gmail.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220789
Fixes: ebc3d1791503 ("s390/cio: introduce driver_override on the css bus")
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
---
 drivers/s390/cio/cio.h |  5 -----
 drivers/s390/cio/css.c | 34 ++++------------------------------
 2 files changed, 4 insertions(+), 35 deletions(-)

diff --git a/drivers/s390/cio/cio.h b/drivers/s390/cio/cio.h
index 08a5e9380e75..bad142c536e1 100644
--- a/drivers/s390/cio/cio.h
+++ b/drivers/s390/cio/cio.h
@@ -103,11 +103,6 @@ struct subchannel {
 	struct work_struct todo_work;
 	struct schib_config config;
 	u64 dma_mask;
-	/*
-	 * Driver name to force a match.  Do not set directly, because core
-	 * frees it.  Use driver_set_override() to set or clear it.
-	 */
-	const char *driver_override;
 } __attribute__ ((aligned(8)));
 
 DECLARE_PER_CPU_ALIGNED(struct irb, cio_irb);
diff --git a/drivers/s390/cio/css.c b/drivers/s390/cio/css.c
index 5ab239f38588..e5a0ec6b4e3e 100644
--- a/drivers/s390/cio/css.c
+++ b/drivers/s390/cio/css.c
@@ -159,7 +159,6 @@ static void css_subchannel_release(struct device *dev)
 
 	sch->config.intparm = 0;
 	cio_commit_config(sch);
-	kfree(sch->driver_override);
 	kfree(sch);
 }
 
@@ -323,37 +322,9 @@ static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
 
 static DEVICE_ATTR_RO(modalias);
 
-static ssize_t driver_override_store(struct device *dev,
-				     struct device_attribute *attr,
-				     const char *buf, size_t count)
-{
-	struct subchannel *sch = to_subchannel(dev);
-	int ret;
-
-	ret = driver_set_override(dev, &sch->driver_override, buf, count);
-	if (ret)
-		return ret;
-
-	return count;
-}
-
-static ssize_t driver_override_show(struct device *dev,
-				    struct device_attribute *attr, char *buf)
-{
-	struct subchannel *sch = to_subchannel(dev);
-	ssize_t len;
-
-	device_lock(dev);
-	len = sysfs_emit(buf, "%s\n", sch->driver_override);
-	device_unlock(dev);
-	return len;
-}
-static DEVICE_ATTR_RW(driver_override);
-
 static struct attribute *subch_attrs[] = {
 	&dev_attr_type.attr,
 	&dev_attr_modalias.attr,
-	&dev_attr_driver_override.attr,
 	NULL,
 };
 
@@ -1356,9 +1327,11 @@ static int css_bus_match(struct device *dev, const struct device_driver *drv)
 	struct subchannel *sch = to_subchannel(dev);
 	const struct css_driver *driver = to_cssdriver(drv);
 	struct css_device_id *id;
+	int ret;
 
 	/* When driver_override is set, only bind to the matching driver */
-	if (sch->driver_override && strcmp(sch->driver_override, drv->name))
+	ret = device_match_driver_override(dev, drv);
+	if (ret == 0)
 		return 0;
 
 	for (id = driver->subchannel_type; id->match_flags; id++) {
@@ -1415,6 +1388,7 @@ static int css_uevent(const struct device *dev, struct kobj_uevent_env *env)
 
 static const struct bus_type css_bus_type = {
 	.name     = "css",
+	.driver_override = true,
 	.match    = css_bus_match,
 	.probe    = css_probe,
 	.remove   = css_remove,
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 01:26:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 01:26:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259889.1553284 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4qXR-0001Is-Pe; Tue, 24 Mar 2026 01:26:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259889.1553284; Tue, 24 Mar 2026 01:26:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4qXR-0001C5-4l; Tue, 24 Mar 2026 01:26:33 +0000
Received: by outflank-mailman (input) for mailman id 1259889;
 Tue, 24 Mar 2026 01:05:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dakr@kernel.org>) id 1w4qCv-0005BA-CQ
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 01:05:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4qCu-00774E-OC
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 02:05:20 +0100
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dakr@kernel.org>)
 id 69c1e34f-5cb7-0a2a0a5109dd-0a2a4509d162-2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 02:05:20 +0100
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <dakr@kernel.org>)
 id 69c1e25e-e484-0a2a45090019-aceafc1fd662-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 02:01:19 +0100
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 506F040596;
 Tue, 24 Mar 2026 01:01:18 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 08877C4CEF7;
 Tue, 24 Mar 2026 01:01: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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="From:To:Cc:Subject:Date:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774314078;
	bh=TSvMQrmWsjFbNL0IRf0H97QbCggIeEqWbPsKuLbLU4A=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=Nt7EnChiw/TSy7uxZL1NGCwc80dLd1NcsHa2f5yOYAsRoEuKZz3R4Zc2Jky7pI1PP
	 fX38CD0xPqsoAlbl8ygm7B7pQvUt21fJRqnuUoJzuGo/w1SwTYIkOuYMzYD6++PKyO
	 GlReyOV0V5oiuGn3d19d+P/0YVof0JWBUjpR7gvA94kKmmZrfsVK4M+LbO6J+BIjBR
	 GNNZS00+k7bbnjV9HfcGI/slE84pV5D8Pfilwv3HA2XN5pcxtA4pjQBZ0SSOkup/06
	 D6VUmZOVMXZtjDLE4b4uCWJCE0Qw6XcyAZU2CAHH+xAz/p1g0p71QYF5eQjsqdnxat
	 5+zw/NsuVO7yw==
From: Danilo Krummrich <dakr@kernel.org>
To: Russell King <linux@armlinux.org.uk>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Ioana Ciornei <ioana.ciornei@nxp.com>,
	Nipun Gupta <nipun.gupta@amd.com>,
	Nikhil Agarwal <nikhil.agarwal@amd.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>,
	Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Armin Wolf <W_Armin@gmx.de>,
	Bjorn Andersson <andersson@kernel.org>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	Vineeth Vijayan <vneethv@linux.ibm.com>,
	Peter Oberparleiter <oberpar@linux.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Harald Freudenberger <freude@linux.ibm.com>,
	Holger Dengler <dengler@linux.ibm.com>,
	Mark Brown <broonie@kernel.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	=?UTF-8?q?Eugenio=20P=C3=A9rez?= <eperezma@redhat.com>,
	Alex Williamson <alex@shazbot.org>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>
Cc: linux-kernel@vger.kernel.org,
	driver-core@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	linux-hyperv@vger.kernel.org,
	linux-pci@vger.kernel.org,
	platform-driver-x86@vger.kernel.org,
	linux-arm-msm@vger.kernel.org,
	linux-remoteproc@vger.kernel.org,
	linux-s390@vger.kernel.org,
	linux-spi@vger.kernel.org,
	virtualization@lists.linux.dev,
	kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-arm-kernel@lists.infradead.org,
	Danilo Krummrich <dakr@kernel.org>,
	Gui-Dong Han <hanguidong02@gmail.com>
Subject: [PATCH 11/12] spi: use generic driver_override infrastructure
Date: Tue, 24 Mar 2026 01:59:15 +0100
Message-ID: <20260324005919.2408620-12-dakr@kernel.org>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324005919.2408620-1-dakr@kernel.org>
References: <20260324005919.2408620-1-dakr@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1774314080-622B0A73-AAC03874/13/0
X-purgate-type: clean
X-purgate-size: 4107

When a driver is probed through __driver_attach(), the bus' match()
callback is called without the device lock held, thus accessing the
driver_override field without a lock, which can cause a UAF.

Fix this by using the driver-core driver_override infrastructure taking
care of proper locking internally.

Note that calling match() from __driver_attach() without the device lock
held is intentional. [1]

Also note that we do not enable the driver_override feature of struct
bus_type, as SPI - in contrast to most other buses - passes "" to
sysfs_emit() when the driver_override pointer is NULL. Thus, printing
"\n" instead of "(null)\n".

Link: https://lore.kernel.org/driver-core/DGRGTIRHA62X.3RY09D9SOK77P@kernel.org/ [1]
Reported-by: Gui-Dong Han <hanguidong02@gmail.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220789
Fixes: 5039563e7c25 ("spi: Add driver_override SPI device attribute")
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
---
 drivers/spi/spi.c       | 19 +++++++------------
 include/linux/spi/spi.h |  5 -----
 2 files changed, 7 insertions(+), 17 deletions(-)

diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index 53dee314d76a..4101c2803eb3 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -50,7 +50,6 @@ static void spidev_release(struct device *dev)
 	struct spi_device	*spi = to_spi_device(dev);
 
 	spi_controller_put(spi->controller);
-	kfree(spi->driver_override);
 	free_percpu(spi->pcpu_statistics);
 	kfree(spi);
 }
@@ -73,10 +72,9 @@ static ssize_t driver_override_store(struct device *dev,
 				     struct device_attribute *a,
 				     const char *buf, size_t count)
 {
-	struct spi_device *spi = to_spi_device(dev);
 	int ret;
 
-	ret = driver_set_override(dev, &spi->driver_override, buf, count);
+	ret = __device_set_driver_override(dev, buf, count);
 	if (ret)
 		return ret;
 
@@ -86,13 +84,8 @@ static ssize_t driver_override_store(struct device *dev,
 static ssize_t driver_override_show(struct device *dev,
 				    struct device_attribute *a, char *buf)
 {
-	const struct spi_device *spi = to_spi_device(dev);
-	ssize_t len;
-
-	device_lock(dev);
-	len = sysfs_emit(buf, "%s\n", spi->driver_override ? : "");
-	device_unlock(dev);
-	return len;
+	guard(spinlock)(&dev->driver_override.lock);
+	return sysfs_emit(buf, "%s\n", dev->driver_override.name ?: "");
 }
 static DEVICE_ATTR_RW(driver_override);
 
@@ -376,10 +369,12 @@ static int spi_match_device(struct device *dev, const struct device_driver *drv)
 {
 	const struct spi_device	*spi = to_spi_device(dev);
 	const struct spi_driver	*sdrv = to_spi_driver(drv);
+	int ret;
 
 	/* Check override first, and if set, only use the named driver */
-	if (spi->driver_override)
-		return strcmp(spi->driver_override, drv->name) == 0;
+	ret = device_match_driver_override(dev, drv);
+	if (ret >= 0)
+		return ret;
 
 	/* Attempt an OF style match */
 	if (of_driver_match_device(dev, drv))
diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h
index af7cfee7b8f6..0dc671c07d3a 100644
--- a/include/linux/spi/spi.h
+++ b/include/linux/spi/spi.h
@@ -159,10 +159,6 @@ extern void spi_transfer_cs_change_delay_exec(struct spi_message *msg,
  * @modalias: Name of the driver to use with this device, or an alias
  *	for that name.  This appears in the sysfs "modalias" attribute
  *	for driver coldplugging, and in uevents used for hotplugging
- * @driver_override: If the name of a driver is written to this attribute, then
- *	the device will bind to the named driver and only the named driver.
- *	Do not set directly, because core frees it; use driver_set_override() to
- *	set or clear it.
  * @pcpu_statistics: statistics for the spi_device
  * @word_delay: delay to be inserted between consecutive
  *	words of a transfer
@@ -224,7 +220,6 @@ struct spi_device {
 	void			*controller_state;
 	void			*controller_data;
 	char			modalias[SPI_NAME_SIZE];
-	const char		*driver_override;
 
 	/* The statistics */
 	struct spi_statistics __percpu	*pcpu_statistics;
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 03:05:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 03:05:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259998.1553331 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4s5S-0005J0-8w; Tue, 24 Mar 2026 03:05:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259998.1553331; Tue, 24 Mar 2026 03: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 1w4s5S-0005Ir-6D; Tue, 24 Mar 2026 03:05:46 +0000
Received: by outflank-mailman (input) for mailman id 1259998;
 Tue, 24 Mar 2026 03: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=YdnX=BY=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1w4s5Q-0005H3-QC
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 03:05:44 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azon11012016.outbound.protection.outlook.com [52.101.48.16])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 56dae6a3-272e-11f1-b166-2bf370ae4941;
 Tue, 24 Mar 2026 04:05:41 +0100 (CET)
Received: from SJ0PR05CA0099.namprd05.prod.outlook.com (2603:10b6:a03:334::14)
 by SA3PR12MB7999.namprd12.prod.outlook.com (2603:10b6:806:312::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Tue, 24 Mar
 2026 03:05:33 +0000
Received: from MW1PEPF0001615F.namprd21.prod.outlook.com
 (2603:10b6:a03:334:cafe::78) by SJ0PR05CA0099.outlook.office365.com
 (2603:10b6:a03:334::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.25 via Frontend Transport; Tue,
 24 Mar 2026 03:05:30 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MW1PEPF0001615F.mail.protection.outlook.com (10.167.249.90) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9769.0 via Frontend Transport; Tue, 24 Mar 2026 03:05:31 +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, 23 Mar
 2026 22:05:31 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 23 Mar
 2026 20:05:31 -0700
Received: from ubuntu (10.180.168.240) by satlexmb08.amd.com (10.181.42.217)
 with Microsoft SMTP Server id 15.2.2562.17 via Frontend Transport; Mon, 23
 Mar 2026 22:05:30 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 56dae6a3-272e-11f1-b166-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Iw+eMHjusyykH3qKhLlwGm4+rgdoAqyS89199VRhViKj52DshH1vUAii0Du6l5eJK1nviaLyjNRkMZ7NDNIlJHHP86v0cKU+fdBvCwFbvva2YxejaH+44RB2cgOhtfcwtpp4X0ZcH9o+4JYFKfmQP1JqHV/75KPA299+0uCvUpY5/KO6le6loqy2orRD6433OXtkgXhhzJTtavkXxUM41lhEBclTTBg3ZdiVKjOlrqe0pWPV4Y7nxrookoWjpteh8PJwyA9tFKHACeNWWzNHs2F3iPVCJuxGOVVUS2iMweiqcGUGHu4rVEDWgcCGyJiZ4C7nOg88qwbNchp4eVlbcQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JHZJW9WDn0STWGtdXipUHQXXnVAbQYDfOvCtR2vCnXQ=;
 b=QPLJh9qG20QEM6bx+mUuwm0h8KqwhzQm0iLJyMIefOxjBwUKn9Hc9F9uj0TqThgMlddFn967r7ucML+Tjo4PKTnwc+Fi1ILOvTSOLHsZa9aKntMn+duTjl9n/6LwjVwlFRRpgmqiesI6ISNUDeCiJgbEmaLGnG/AsmVcB2XC6SXGKbZ5F6pFX/Eeb/7yH1PDVPG1ks091xZEjUFtRt/Lm48v/zcWVYPRbDyyisCn8iRACEEhoUtjZPhVkaQTswLAqJdc9gdHjPeFn/HgjFVgVuTKohH/R9oPnD6hUx6nnmjQoMgk/wuHdEvMF6c6r7xz3CzdJ0bGsflCZqQz2RucTQ==
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=JHZJW9WDn0STWGtdXipUHQXXnVAbQYDfOvCtR2vCnXQ=;
 b=KpkDWrYAJaH0iTBukXjZv5x3AArTmKQFxcZ9jOeaVZiOeH5KFtLNk6D2NlexCQvABT9ERXbgQSv+EUPLtejbMmsm2mXPUJww2dsDGBWGNR+LaGwdE45ZzQK+q5phwNI968Sncvbw6mLJsX6Li3vJ4IddskIM+TPEXR/JIwviu+8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v3 2/4] vpci: allow queueing of mapping operations
Date: Mon, 23 Mar 2026 23:04:59 -0400
Message-ID: <20260324030513.700217-3-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324030513.700217-1-stewart.hildebrand@amd.com>
References: <20260324030513.700217-1-stewart.hildebrand@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MW1PEPF0001615F:EE_|SA3PR12MB7999:EE_
X-MS-Office365-Filtering-Correlation-Id: dec31223-e36b-49b2-df63-08de89523605
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700016|1800799024|376014|13003099007|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	+TWipBCn7SZUG3jPfdBoE7SsJlU7fJwUrp192eKG8Q923tQTUWKYDk8PyB0Az00p4Aa7e1oK7CxnZI9H6BjLYD0/CxRXDPFmTrOhcbdMlFiJopYf7B/qk/oPZYJ9II1tnWyMnHWHgFlCNxtAU65m+BXcmqlAWZ0E+Y5qjORu6Y0UJlyJZ9UrxtA6Q/irxEMqsit+9O4j44SslG+iFtAaBcNSs/keIlxvagkcFS5VyRpbtTECfqPFI0LeLNkrfSi5emgJ3bVxlRuLSSmXaaY+eWfbysv3R6zngqzeeNNJ6mdxfHbFh0GLplC82R2gmlGGYX4IUtDzEi9CveahKboQ5sil3QriTxaNeb9fNgXyyk9tM+L3Abwfn4HZuT1qSrTwqBVpjQKDThHv02hvRJPEMtKC4baAWPmTJLG9i72k1L2Z4d1kVzT5IWZKRZIMwwJPXOk2Jv1gzaJUG43IY6J9O/j3mf8jj1iK9LKQ2YfflWUgsOL1MhpGCki2FPe5meEC/BMnL8mt16gqJx6Boas2uuhphAUB8DmtLXHL1Aj1At56Jgp89D7Zvv/cq4qlUqhenfV+nEkU0GTdCRHaRWOUDnfMkeY0Kdkp2WbQIeTJoV9a8n/oY+EkLcqjSgKGGZ74rgJ2beG1DVV4ZhvEmflZaQJa0Yodw3pciBKNJdxbX4XRO1nZflvbE8KO7jLwNoR65zQGm/iE7fCiQDX6pqU00nPT9YUhFjZ6khBeijzt9EkCzF/ATSVMqU/o6POGi4w3mioo9Wr3OU/djrOUmxwWBA==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(1800799024)(376014)(13003099007)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	g2+sCOUQXqUSIlww1tBrzZ0+kHo//9AMThDhxh00jQe+81ndrbP+9U6g81da0OX/4npu2/yGNQ/l0BIZv2eE+BciauNF2P04BNr6Vfmcl/PFbufJNHsPEH5u1xe2A0irlt9FQ8rSbENUDBX4ZKjD8rM/rSKoYjiNPY3Fg1NWYglRLMcmZKQS344joqT34g4pVV+r9vvWa3qdEyu5l+wHz5CBxmdITVcqKy7A2ELrAX0cB/o3GsjKlVlkoYkMGaXUooaCG2cvFRhgEgxNdi6CS+5a6ji2BpkrUj3P5AtmUVbE46IRiJsD6fpCSP0OEgsghbQOUe0WSbsmBaf7O76FgroUJpiNePsOeRMv7knBI1jaIK7L0m1SVeNSB2Y7hr4w4pvdyPRzPNFG3o5H0OHbmnqOHL0geZ0RNdgHCFeYb4kgouAIS9I1CTow3A/XtkcZ
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 03:05:31.8512
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dec31223-e36b-49b2-df63-08de89523605
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MW1PEPF0001615F.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7999

Introduce vPCI BAR mapping task queue. Store information necessary in an
array in struct vpci_vcpu to perform multiple p2m operations associated
with single device.

This is preparatory work for further changes that need to perform
multiple unmap/map operations before returning to guest.

At the moment, only a single slot is needed in the array. However, when
multiple operations are queued and pending, there is a check in
modify_bars() to skip BARs already in the requested state that is not
accurate. Remove this check.

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
apply_map() and vpci_process_map_task() are very similar. Should we try
to combine them into a single function?

v2->v3:
* base on ("vpci: Use pervcpu ranges for BAR mapping") from [1]
* rework with fixed array of map/unmap slots

[1] https://lore.kernel.org/xen-devel/cover.1772806036.git.mykyta_poturai@epam.com/T/#t

v1->v2:
* new patch
---
 xen/drivers/vpci/header.c | 154 +++++++++++++++++++++++---------------
 xen/drivers/vpci/vpci.c   |  27 ++++---
 xen/include/xen/vpci.h    |  15 +++-
 3 files changed, 122 insertions(+), 74 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 89dce932f3b1..e57c00839841 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -35,7 +35,7 @@
 
 struct map_data {
     struct domain *d;
-    const struct vpci_bar *bar;
+    const struct vpci_bar_map *bar;
     bool map;
 };
 
@@ -174,32 +174,23 @@ static void modify_decoding(const struct pci_dev *pdev, uint16_t cmd,
         ASSERT_UNREACHABLE();
 }
 
-bool vpci_process_pending(struct vcpu *v)
+static int vpci_process_map_task(const struct pci_dev *pdev,
+                                 struct vpci_map_task *task)
 {
-    const struct pci_dev *pdev = v->vpci.pdev;
-    struct vpci_header *header = NULL;
     unsigned int i;
 
-    if ( !pdev )
-        return false;
+    ASSERT(rw_is_locked(&pdev->domain->pci_lock));
 
-    read_lock(&v->domain->pci_lock);
-
-    if ( !pdev->vpci || (v->domain != pdev->domain) )
-    {
-        v->vpci.pdev = NULL;
-        read_unlock(&v->domain->pci_lock);
-        return false;
-    }
+    if ( !task->pending )
+        return 0;
 
-    header = &pdev->vpci->header;
-    for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
+    for ( i = 0; i < ARRAY_SIZE(task->bars); i++ )
     {
-        struct vpci_bar *bar = &header->bars[i];
-        struct rangeset *mem = v->vpci.mem[i];
+        struct vpci_bar_map *bar = &task->bars[i];
+        struct rangeset *mem = bar->mem;
         struct map_data data = {
-            .d = v->domain,
-            .map = v->vpci.cmd & PCI_COMMAND_MEMORY,
+            .d = pdev->domain,
+            .map = task->cmd & PCI_COMMAND_MEMORY,
             .bar = bar,
         };
         int rc;
@@ -210,58 +201,91 @@ bool vpci_process_pending(struct vcpu *v)
         rc = rangeset_consume_ranges(mem, map_range, &data);
 
         if ( rc == -ERESTART )
-        {
-            read_unlock(&v->domain->pci_lock);
-            return true;
-        }
+            return rc;
 
         if ( rc )
         {
             spin_lock(&pdev->vpci->lock);
             /* Disable memory decoding unconditionally on failure. */
-            modify_decoding(pdev, v->vpci.cmd & ~PCI_COMMAND_MEMORY,
-                            false);
+            modify_decoding(pdev, task->cmd & ~PCI_COMMAND_MEMORY, false);
             spin_unlock(&pdev->vpci->lock);
 
             /* Clean all the rangesets */
-            for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
-                if ( !rangeset_is_empty(v->vpci.mem[i]) )
-                     rangeset_purge(v->vpci.mem[i]);
-
-            v->vpci.pdev = NULL;
+            for ( i = 0; i < ARRAY_SIZE(task->bars); i++ )
+                if ( !rangeset_is_empty(mem) )
+                     rangeset_purge(mem);
 
-            read_unlock(&v->domain->pci_lock);
+            if ( !is_hardware_domain(pdev->domain) )
+                domain_crash(pdev->domain);
 
-            if ( !is_hardware_domain(v->domain) )
-                domain_crash(v->domain);
+            task->pending = false;
 
-            return false;
+            return rc;
         }
     }
-    v->vpci.pdev = NULL;
 
     spin_lock(&pdev->vpci->lock);
-    modify_decoding(pdev, v->vpci.cmd, v->vpci.rom_only);
+    modify_decoding(pdev, task->cmd, task->rom_only);
     spin_unlock(&pdev->vpci->lock);
 
+    task->pending = false;
+
+    return 0;
+}
+
+bool vpci_process_pending(struct vcpu *v)
+{
+    const struct pci_dev *pdev = v->vpci.pdev;
+    unsigned int i;
+
+    if ( !pdev )
+        return false;
+
+    read_lock(&v->domain->pci_lock);
+
+    if ( !pdev->vpci || (v->domain != pdev->domain) )
+    {
+        for ( i = 0; i < ARRAY_SIZE(v->vpci.task); i++ )
+            v->vpci.task[i].pending = false;
+
+        v->vpci.pdev = NULL;
+        read_unlock(&v->domain->pci_lock);
+        return false;
+    }
+
+    for ( i = 0; i < ARRAY_SIZE(v->vpci.task); i++ )
+    {
+        struct vpci_map_task *task = &(v->vpci.task[i]);
+        int rc = vpci_process_map_task(pdev, task);
+
+        if ( rc == -ERESTART )
+        {
+            read_unlock(&v->domain->pci_lock);
+            return true;
+        }
+
+        if ( rc )
+            break;
+    }
+    v->vpci.pdev = NULL;
+
     read_unlock(&v->domain->pci_lock);
 
     return false;
 }
 
 static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
-                            uint16_t cmd)
+                            struct vpci_map_task *task)
 {
-    struct vpci_header *header = &pdev->vpci->header;
     int rc = 0;
     unsigned int i;
 
     ASSERT(rw_is_write_locked(&d->pci_lock));
 
-    for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
+    for ( i = 0; i < ARRAY_SIZE(task->bars); i++ )
     {
-        struct vpci_bar *bar = &header->bars[i];
-        struct rangeset *mem = current->vpci.mem[i];
+        struct vpci_bar_map *bar = &task->bars[i];
+        struct rangeset *mem = bar->mem;
         struct map_data data = { .d = d, .map = true, .bar = bar };
 
         if ( rangeset_is_empty(mem) )
@@ -281,12 +305,14 @@ static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
         }
     }
     if ( !rc )
-        modify_decoding(pdev, cmd, false);
+        modify_decoding(pdev, task->cmd, false);
+
+    task->pending = false;
 
     return rc;
 }
 
-static void defer_map(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
+static void defer_map(const struct pci_dev *pdev)
 {
     struct vcpu *curr = current;
 
@@ -297,8 +323,7 @@ static void defer_map(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
      * started for the same device if the domain is not well-behaved.
      */
     curr->vpci.pdev = pdev;
-    curr->vpci.cmd = cmd;
-    curr->vpci.rom_only = rom_only;
+
     /*
      * Raise a scheduler softirq in order to prevent the guest from resuming
      * execution with pending mapping operations, to trigger the invocation
@@ -307,16 +332,20 @@ static void defer_map(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
     raise_softirq(SCHEDULE_SOFTIRQ);
 }
 
-static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
+static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only,
+                       unsigned int map_slot)
 {
     struct vpci_header *header = &pdev->vpci->header;
     struct pci_dev *tmp;
     const struct domain *d;
     const struct vpci_msix *msix = pdev->vpci->msix;
+    struct vpci_map_task *task = &current->vpci.task[map_slot];
     unsigned int i, j;
     int rc;
 
     ASSERT(rw_is_write_locked(&pdev->domain->pci_lock));
+    ASSERT(map_slot < ARRAY_SIZE(current->vpci.task));
+    ASSERT(!task->pending);
 
     /*
      * Create a rangeset per BAR that represents the current device memory
@@ -333,7 +362,7 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
     for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
     {
         struct vpci_bar *bar = &header->bars[i];
-        struct rangeset *mem = current->vpci.mem[i];
+        struct rangeset *mem = task->bars[i].mem;
         unsigned long start = PFN_DOWN(bar->addr);
         unsigned long end = PFN_DOWN(bar->addr + bar->size - 1);
         unsigned long start_guest = PFN_DOWN(bar->guest_addr);
@@ -343,9 +372,7 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
 
         if ( !MAPPABLE_BAR(bar) ||
              (rom_only ? bar->type != VPCI_BAR_ROM
-                       : (bar->type == VPCI_BAR_ROM && !header->rom_enabled)) ||
-             /* Skip BARs already in the requested state. */
-             bar->enabled == !!(cmd & PCI_COMMAND_MEMORY) )
+                       : (bar->type == VPCI_BAR_ROM && !header->rom_enabled)) )
             continue;
 
         if ( !pci_check_bar(pdev, _mfn(start), _mfn(end)) )
@@ -382,7 +409,7 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
         /* Check for overlap with the already setup BAR ranges. */
         for ( j = 0; j < i; j++ )
         {
-            struct rangeset *prev_mem = current->vpci.mem[j];
+            struct rangeset *prev_mem = task->bars[j].mem;
 
             if ( rangeset_is_empty(prev_mem) )
                 continue;
@@ -405,6 +432,9 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
                     &pdev->sbdf, i, rc);
             return rc;
         }
+
+        task->bars[i].addr = bar->addr;
+        task->bars[i].guest_addr = bar->guest_addr;
     }
 
     /* Remove any MSIX regions if present. */
@@ -414,9 +444,9 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
         unsigned long end = PFN_DOWN(vmsix_table_addr(pdev->vpci, i) +
                                      vmsix_table_size(pdev->vpci, i) - 1);
 
-        for ( j = 0; j < ARRAY_SIZE(current->vpci.mem); j++ )
+        for ( j = 0; j < ARRAY_SIZE(task->bars); j++ )
         {
-            struct rangeset *mem = current->vpci.mem[j];
+            struct rangeset *mem = task->bars[j].mem;
 
             if ( rangeset_is_empty(mem) )
                 continue;
@@ -471,7 +501,7 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
                 for ( j = 0; j < ARRAY_SIZE(header->bars); j++)
                 {
                     const struct vpci_bar *bar = &header->bars[j];
-                    struct rangeset *mem = current->vpci.mem[j];
+                    struct rangeset *mem = task->bars[j].mem;
 
                     if ( !rangeset_overlaps_range(mem, start, end) ||
                          /*
@@ -502,6 +532,10 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
         d = dom_xen;
     }
 
+    task->cmd = cmd;
+    task->rom_only = rom_only;
+    task->pending = true;
+
     if ( system_state < SYS_STATE_active )
     {
         /*
@@ -513,10 +547,10 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
          * will always be to establish mappings and process all the BARs.
          */
         ASSERT((cmd & PCI_COMMAND_MEMORY) && !rom_only);
-        return apply_map(pdev->domain, pdev, cmd);
+        return apply_map(pdev->domain, pdev, task);
     }
 
-    defer_map(pdev, cmd, rom_only);
+    defer_map(pdev);
 
     return 0;
 }
@@ -549,7 +583,7 @@ static void cf_check cmd_write(
          * memory decoding bit has not been changed, so leave everything as-is,
          * hoping the guest will realize and try again.
          */
-        modify_bars(pdev, cmd, false);
+        modify_bars(pdev, cmd, false, 0);
     else
         pci_conf_write16(pdev->sbdf, reg, cmd);
 }
@@ -717,7 +751,7 @@ static void cf_check rom_write(
      * Pass PCI_COMMAND_MEMORY or 0 to signal a map/unmap request, note that
      * this fabricated command is never going to be written to the register.
      */
-    else if ( modify_bars(pdev, new_enabled ? PCI_COMMAND_MEMORY : 0, true) )
+    else if ( modify_bars(pdev, new_enabled ? PCI_COMMAND_MEMORY : 0, true, 0) )
         /*
          * No memory has been added or removed from the p2m (because the actual
          * p2m changes are deferred in defer_map) and the ROM enable bit has
@@ -907,7 +941,7 @@ int vpci_init_header(struct pci_dev *pdev)
             goto fail;
     }
 
-    return (cmd & PCI_COMMAND_MEMORY) ? modify_bars(pdev, cmd, false) : 0;
+    return (cmd & PCI_COMMAND_MEMORY) ? modify_bars(pdev, cmd, false, 0) : 0;
 
  fail:
     pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 8e6343653078..54a4ed46387c 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -26,30 +26,37 @@
 
 void vpci_vcpu_destroy(struct vcpu *v)
 {
-    unsigned int i;
+    unsigned int i, j;
 
     if ( !has_vpci(v->domain) && !is_idle_domain(v->domain) )
         return;
 
-    for ( i = 0; i < ARRAY_SIZE(v->vpci.mem); i++ )
-        RANGESET_DESTROY(v->vpci.mem[i]);
+    for ( i = 0; i < ARRAY_SIZE(v->vpci.task); i++ )
+    {
+        for ( j = 0; j < ARRAY_SIZE(v->vpci.task[i].bars); j++ )
+            RANGESET_DESTROY(v->vpci.task[i].bars[j].mem);
+    }
 }
 
 int vpci_vcpu_init(struct vcpu *v)
 {
-    unsigned int i;
+    unsigned int i, j;
 
     if ( !has_vpci(v->domain) && !is_idle_domain(v->domain) )
         return 0;
 
-    for ( i = 0; i < ARRAY_SIZE(v->vpci.mem); i++ )
+    for ( i = 0; i < ARRAY_SIZE(v->vpci.task); i++ )
     {
-        char str[32];
+        for ( j = 0; j < ARRAY_SIZE(v->vpci.task[i].bars); j++ )
+        {
+            char str[32];
 
-        snprintf(str, sizeof(str), "%pv:BAR%u", v, i);
-        v->vpci.mem[i] = rangeset_new(v->domain, str, RANGESETF_no_print);
-        if ( !v->vpci.mem[i] )
-            return -ENOMEM;
+            snprintf(str, sizeof(str), "%pv:BAR[%u][%u]", v, i, j);
+            v->vpci.task[i].bars[j].mem = rangeset_new(v->domain, str,
+                                                       RANGESETF_no_print);
+            if ( !v->vpci.task[i].bars[j].mem )
+                return -ENOMEM;
+        }
     }
 
     return 0;
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index b55bacbe6e01..e4fbf7b702d6 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -156,11 +156,18 @@ struct vpci {
 
 #ifdef __XEN__
 struct vpci_vcpu {
-    /* Per-vcpu structure to store state while {un}mapping of PCI BARs. */
     const struct pci_dev *pdev;
-    struct rangeset *mem[ARRAY_SIZE(((struct vpci_header *)NULL)->bars)];
-    uint16_t cmd;
-    bool rom_only : 1;
+    /* Per-vcpu structure to store state while {un}mapping of PCI BARs. */
+    struct vpci_map_task {
+        struct vpci_bar_map {
+            uint64_t addr;
+            uint64_t guest_addr;
+            struct rangeset *mem;
+        } bars[ARRAY_SIZE(((struct vpci_header *)NULL)->bars)];
+        uint16_t cmd;
+        bool rom_only : 1;
+        bool pending : 1;
+    } task[1];
 };
 
 void vpci_dump_msi(void);
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 03:05:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 03:05:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259993.1553312 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4s5D-0004mW-Je; Tue, 24 Mar 2026 03:05:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259993.1553312; Tue, 24 Mar 2026 03:05: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 1w4s5D-0004mP-Gp; Tue, 24 Mar 2026 03:05:31 +0000
Received: by outflank-mailman (input) for mailman id 1259993;
 Tue, 24 Mar 2026 03:05: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=YdnX=BY=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1w4s5C-0004mJ-0j
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 03:05:30 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazon11011015.outbound.protection.outlook.com [52.101.62.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4d4c730a-272e-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Mar 2026 04:05:24 +0100 (CET)
Received: from PH7PR13CA0012.namprd13.prod.outlook.com (2603:10b6:510:174::18)
 by LV8PR12MB9230.namprd12.prod.outlook.com (2603:10b6:408:186::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Tue, 24 Mar
 2026 03:05:19 +0000
Received: from MW1PEPF0001615B.namprd21.prod.outlook.com
 (2603:10b6:510:174:cafe::5e) by PH7PR13CA0012.outlook.office365.com
 (2603:10b6:510:174::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.31 via Frontend Transport; Tue,
 24 Mar 2026 03:05:19 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MW1PEPF0001615B.mail.protection.outlook.com (10.167.249.86) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9769.0 via Frontend Transport; Tue, 24 Mar 2026 03:05:17 +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, 23 Mar
 2026 22:05:17 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 23 Mar
 2026 20:05:16 -0700
Received: from ubuntu (10.180.168.240) by satlexmb08.amd.com (10.181.42.217)
 with Microsoft SMTP Server id 15.2.2562.17 via Frontend Transport; Mon, 23
 Mar 2026 22:05:15 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4d4c730a-272e-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=q73XTm3s1NyQ/qWRUoKrfzeUfyFCd23z7NjWDltvRPnOocdgfXvMaEmgEpeArHumDOigtSrOlL5gAnprauuYksEl8S40SugKWHdm+99FGlkAvGB514XEHT/oMNyaKYop181QdqinAxWT+D5GoWE9I0I1M7rZHLa20wqGPZbuflpuK/Cj5KzEDXdo0UBFrrRl7F23w3CJ8Cj3BdMs8+xUKQxf/zQaAeytJFO/+Im8SWcwoi5A+7zrPyz9hAL60ZWuR54T3Y8AgnJqqQoor6nYBer0uVv0BcpzFi6WEMB4V95suuEMUHiqLbBtsIW5AeQsJjsAKDHK7VWvHNPPiPXoyA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qCPS1SVhJTxdoO7vExSmXHAYtVEIATcEae7Zxk/11k4=;
 b=XBB8b/2Eln7+NoTGAGBw4btBsM9J48tecTWWgWLwxMWaTIc92dggpVcbcTAW+YO3z7YzxyzpXSqYWDn2g7swoTjAT8vVJYPH/z98T7k1ADFB1yuonhOGPGtmqrbmKy/XyzGeiaTa4fPssZcYGpD3EUos9AtKVYVR5kGgP8/ThWHJxwi+fKrOcUNyf/5I+8bfwb09i+/Hjk7K8NY7VdtwKSqGAaliigL1BnNBhYVj3sUWWN6zdAYwqgQUzNwMUQjzOCETO2vwfoqWewlrjcVZuXecbJq3AnQqjNPUyckW8MZZghpJCHOfv2ngyaj1P3Gn+kYxwU8ShspQt6QAG2OdEg==
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=qCPS1SVhJTxdoO7vExSmXHAYtVEIATcEae7Zxk/11k4=;
 b=m9KiMO41UXpFWxvyRsnwMwcdtpqihhKqkIKYLKgdNSiZqF4WNR9+mQx/xVAT+0wtPjM+poSjGdWG51FDlxZ4fQQglJwSP08mVNtsWvxYF2wWqEHSqH0HugSreXw1v9hiyVzAfw3Ks6AtDXsvF7fhtzL7yqMvLv0D7On/ilmghmY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@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 0/4] vpci: allow 32-bit BAR writes with memory decoding enabled
Date: Mon, 23 Mar 2026 23:04:57 -0400
Message-ID: <20260324030513.700217-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MW1PEPF0001615B:EE_|LV8PR12MB9230:EE_
X-MS-Office365-Filtering-Correlation-Id: 33acd248-dcee-4e2e-0a24-08de89522d57
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700016|82310400026|1800799024|13003099007|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	ZYN01qytmmrLtx6F6fizdxYRmbiN0WJnUV63bTmI8qnN3y1feEYxlWSOzBVMFtPEE7r/4J/lCbUGe3vzyxT8dVHoM0MvHq5VHvYW8lc2lvML1ecIdI4ul4VY/ucycfjXafdV2pTf9KaK/HptSCtKfaMNzB3FWYiw14+GWdL22Ou1Yt3WROLT9icni8GbmpceDPDGxi8C7J1aIQYp/u7JzNsAEnAifXWZERGdlZMOkCCjzEAhyFx+CnYEG5g8/MUVX/ALsd6xQgrvmpk1C94TfuMPa6fO6uWj/RuGI71a78bc0Wt75VGXf+hxahIVyK6RycllR0nEIGcOY3j1TsC1Dd9k4IQchTyffxFkg9W4M3eh2GpUIyLSEsyt23wayeREbvacE+gGTcU0cQNREr8dRMK52yVESKlx6EHJgxMcCZ3iys7JuXxzJ/jqMlIg2Gx0Bcj9qY+CUgSqf9N0wxjvEQYix6oZeBr4kYCL0kAZmGge9FKAxxgfKkLyR+Mjze+x8gKhsRGJGH2U+guIC3jigU1OckUadWByN2XtjwyKC6amfA9E4QBrCFScQtspNgXZwT/fAWzDDUvlzxiIqVvugHoZNiFpspCioigQdu5Cz326qei8DBMMHOuNDFThrRQo1JTAWm364Qk/RIYKCXgbJWoB5J8k4Lx/+5p0yEGv2C1tFT1+2Uq44FSjTrY/l1JoaB6KFvaaTKybgi3qMJyO/B869PHQnfNcPxqtgHgqEM+thjjfRfv9Hd32Oz6/POO1oeEPU/jjNq7hm054AhKoOimOsCHd1YjVb57uuuKYkBE=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700016)(82310400026)(1800799024)(13003099007)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	62d05PAmJ6dwL+o0o0og8J8dWN7r9B0toM4AnqzI+wRKfXwMZT9gMhbT2diUYOiNnhjNJSe5qUGyOog6CdDX7Moqddd70gQkW0yQvAXV6WW/YBYbSmiSH48qbYqNOoLj+LsyF7/XUwKt2g3jiswS35Ob7iDB8WoFQRdkNsJ6AnPXGQqGxvmTQ+OMpaZ4lm0I9HWTC4AM3EudE7p6W9YGI/lSc3XWH5UnRZsOS5dO30WWMVhfBT9Ec2oKR/xYg+YbfK1HWz6OoZ5cjkFf2XQ00fQD4n3pKiSo6IVFerbpVAmyb5wl6WB1k+KfTn5BzZsfDhxZOxDwobCuOmsbCVcjbCICN+4w7X3I5p516EVdqHu9U4hXVUhlPov0FwhX+5ORNJaV0N71AsS9zM/XSOBjA+TAZagrDcelWTV4tfXJIO9v+Z1u/u5b1M2sDXAUViLA
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 03:05:17.2682
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 33acd248-dcee-4e2e-0a24-08de89522d57
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MW1PEPF0001615B.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9230

Pipeline: https://gitlab.com/xen-project/people/stewarthildebrand/xen/-/pipelines/2404206419

v2->v3:
* add ("vpci: Use pervcpu ranges for BAR mapping")
* rework with fixed array of map/unmap slots

v2: https://lore.kernel.org/xen-devel/20250723163744.13095-1-stewart.hildebrand@amd.com/T/#t

v1->v2:
* new approach with queued p2m operations

RFC->v1:
* rework BAR mapping machinery to support unmap-then-map operation

Mykyta Poturai (1):
  vpci: Use pervcpu ranges for BAR mapping

Stewart Hildebrand (3):
  vpci: allow queueing of mapping operations
  vpci: allow BAR map/unmap without affecting memory decoding bit
  vpci: allow 32-bit BAR writes with memory decoding enabled

 xen/common/domain.c        |   5 +
 xen/drivers/vpci/header.c  | 258 +++++++++++++++++++++----------------
 xen/drivers/vpci/vpci.c    |  43 ++++++-
 xen/include/xen/rangeset.h |   7 +
 xen/include/xen/vpci.h     |  24 +++-
 5 files changed, 214 insertions(+), 123 deletions(-)


base-commit: efacf86685912a9249e5cd7f2ef748f0d02b9e23
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 03:05:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 03:05:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1259994.1553321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4s5J-00050E-S3; Tue, 24 Mar 2026 03:05:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1259994.1553321; Tue, 24 Mar 2026 03:05:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4s5J-000507-Od; Tue, 24 Mar 2026 03:05:37 +0000
Received: by outflank-mailman (input) for mailman id 1259994;
 Tue, 24 Mar 2026 03:05:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Stewart.Hildebrand@amd.com>) id 1w4s5I-0004zb-HS
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 03:05:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4s5H-000PZN-0F
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 04:05:35 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Stewart.Hildebrand@amd.com>)
 id 69c1ff71-2eae-0a2a0a5409dd-0a2a450cb740-8
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 04:05:34 +0100
Received: from [52.101.57.65]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Stewart.Hildebrand@amd.com>)
 id 69c1ff7d-f93d-0a2a450c0019-346539417bf2-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 04:05:34 +0100
Received: from CH0PR04CA0037.namprd04.prod.outlook.com (2603:10b6:610:77::12)
 by DS0PR12MB8245.namprd12.prod.outlook.com (2603:10b6:8:f2::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Tue, 24 Mar
 2026 03:05:26 +0000
Received: from CH1PEPF0000A34C.namprd04.prod.outlook.com
 (2603:10b6:610:77:cafe::5a) by CH0PR04CA0037.outlook.office365.com
 (2603:10b6:610:77::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.31 via Frontend Transport; Tue,
 24 Mar 2026 03:05:22 +0000
Received: from satlexmb08.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.9723.19 via Frontend Transport; Tue, 24 Mar 2026 03:05:25 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 23 Mar
 2026 22:05:25 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 23 Mar
 2026 20:05:24 -0700
Received: from ubuntu (10.180.168.240) by satlexmb08.amd.com (10.181.42.217)
 with Microsoft SMTP Server id 15.2.2562.17 via Frontend Transport; Mon, 23
 Mar 2026 22:05:18 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iUzKH7dVbODvzzcf9wFX+mMB+ls0fwpjSwfY/spix55aZYpf9zsk+zRtUXa0tI2U34oF8fL6gO3sFdLBLQRJRkGGpX73JB74t3mVBRRqZBABdU9M6oaUGXwER423l54RQHxtowoi/orlbRiDXS1qU9DygjhoD6QPFz78GXRm5m0fZYr8xD8nwYvX9ay2G1MM8KTMy+N6KaoncPFlWWBPODnt9YZoWrUE+sS5KmfDqIGvN1rXjGgq5u7dapydAljQicfinCixC4tnPylD6RB8ebXYLji3j8ej/YC4+XcCkkfgSj+DJD5uspGQPFBTKQGcq7qSn7T3fxVcrz6o0SljsQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WV4egNB9TZnwYaKXYh+Rx+h6myhXgHRBXuqY5UHC8lA=;
 b=niYTQ7D1YGB2rwz6GVUeOKz6OyzOjsef29exO8kSGI3wdH+Ulx9rFukNeQRf2YA8m2FrSfez/BfLUOPZeEHpOfQmgqybJ2spyB/s3/pJenayoUlzzZXVxS+eNU36t8t6Qo1NuNOsupLcgO1WpicR3KSD2cjULp7sGYtAQPS89zjE5H3cG2jMEAGxBY5EJaR9SN7eLO7JK/lfAeip4t5KizT+9vkIYDUY2RaXp0+MfZ/L1cXljkwwU6aQ34psoSKwvN1n6gNKy58S4FPjq+RnqpzXWksGVQP188dL1ObWvD72AQdQCjBZosadGQucpS7BcR4Anxx5duDRNuYy31yXHw==
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=WV4egNB9TZnwYaKXYh+Rx+h6myhXgHRBXuqY5UHC8lA=;
 b=jWZ9uBJ2PNbzelkMorHyvrlNP0RLQX3OW8LxShu8eJaHcjl9nBmHHx1jWeFyydMGmOCBObAzrAXoQsOT2qk1mKj/OqjibVXlFTle1CxH72vfjOhrYVoNnSKJAXbuCgezRdb76xNx9RuxrT9XXcz6dZZch6WbdbFpNxVMIjKejbc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: 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>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, "Stewart
 Hildebrand" <stewart.hildebrand@amd.com>, Mykyta Poturai
	<mykyta_poturai@epam.com>
Subject: [PATCH v3 1/4] vpci: Use pervcpu ranges for BAR mapping
Date: Mon, 23 Mar 2026 23:04:58 -0400
Message-ID: <20260324030513.700217-2-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324030513.700217-1-stewart.hildebrand@amd.com>
References: <20260324030513.700217-1-stewart.hildebrand@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000A34C:EE_|DS0PR12MB8245:EE_
X-MS-Office365-Filtering-Correlation-Id: 4654589d-1a34-48cf-4706-08de89523216
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700016|376014|13003099007|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	iFiBXUIUwtUnq4rUul6RIHRH7AzoRojO4DT4HZU4fziWJqGKjQESnI50ZcAZu5u5YjW4rFnqQzIhglGa2kLwzY1O2pSsH0kq7x4KGvNG5OhgImZGHu6LY5UIWrN2G12Pcy2Mx6GzuxB2nAIGpBEVFEsbkI2sJkcI3fuzJEJhrmNz6gymko9IvTgf9Xxy9hB1Zd2ElQocFfaV0NPA2gti3XVQmmalXRmUurCyp8EF9DruArRELQ66vDlLFDPBFc6m77dfTKG5C5/gSZ8QJeZyy6RjAL9ndfwd9kIX0+ptLE8aJmE7qySgkEjHwguQahW8uRZzzFhGtfStpT1yZeWOpt2Pfzm1kT9buaNFltKkXflNcKF05MevLFp+iLXgqziq3IB1om68qV+18xsADTnIQWdJzZ2BLh8qszSD8dv/0gLt8nMbXY9avUlkGO6e6o/qGO8jFPb0cgYJjg7NfMqgJbVw05Bq4ZZFUDTGrEji1/KJS3IxpHsCHTHho//Ui/t3Ctxys9ITWrz1R/3J2D9I+aYfaVSYNRIldwdmU9Ki73FGT704NMZpDp9YDbRzaLAB33DlTayF1v9C56knJb5tyDiii4vUAADZylu+DUrBwBpjA+PPSjCkP6Y0uTyaWdQ0l/heNEbT0aRCrV9VRpU45J8TK4g1EvgpwwIdVXpZAEfdqcVViOdDoAs1SAo6LJ1NxbGnjLfsFR+G4ALp2gqJ7i/X5JRsYGswm9PgFi+PCH0cuS++Xsu9sKgyYkD10xOT3lA8gsqJgjAoZ6z7Wq76akbW6bg3uNgFTx7w1Vm5wTQ=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(376014)(13003099007)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	fvS2nnfS2Cw9Xx6KrESkgkNJ4G6xN60Gb5csxTQiVlcaSvW/KkZIqL2hs5Qk3HSK2ODm1bRo6awg2tyAKN+7pVM3RSEUTk9+XpW7d1sOfF4f5COaYP1D1R576lQtTaqY3nCnjUleWQ5J6NzKLXZFttGSeoHg79BrbXvAJ0lQWkCctKhE1lHnx0Bpk2w4B7Khz0h876oY5WVwu8KPQhw3fN42SusYzC3ADjtXVYrYKysU5CPuynrFMMiRkp+Q8O78O84RHknnYqrwhTGZUor6qFmpeaQtO9S84y6CeQdbt/FVmfPXfO5+nlvm5u/NGsvrerIRC2zvO7wYDaZ8NdzxnuWOG/H44Xfin0PuIF3wMLRQXqSKmLeYvWb61RTZId4V8A2i5rizQ7RtgJ+Bl0pZRt65kJT16ybwgmPKsINawadhnbOZJ551h3nVKL5XeGqc
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 03:05:25.3303
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4654589d-1a34-48cf-4706-08de89523216
X-MS-Exchange-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:
	CH1PEPF0000A34C.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8245
X-purgate-ID: tlsNG-d25034/1774321534-FC82D734-862E4D03/0/0
X-purgate-type: clean
X-purgate-size: 13670

From: Mykyta Poturai <Mykyta_Poturai@epam.com>

There is no need to store ranges for each PCI device, as they are only
used during the mapping/unmapping process and can be reused for each
device. This also allows to avoid the need to allocate and destroy
rangesets for each device.

Move the rangesets from struct vpci_bar to struct vpci_vcpu and perform
(de-)allocation with vcpu (de-)allocation. Introduce RANGESET_DESTROY()
macro to free a rangeset and set the pointer to NULL.

Amends: 622bdd962822 ("vpci/header: handle p2m range sets per BAR")
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
v2->v3:
* new patch in this series, borrowed from [1]
* add Amends tag
* remove unused variable i due to rebasing over 998060dd9101 ("vPCI:
  move vpci_init_capabilities() to a separate file")
* enclose entire struct vpci_vcpu inside #ifdef __XEN__
* s/bar_mem/mem/
* use ARRAY_SIZE
* put init/destroy in functions
* only allocate for domains with vPCI and idle domain
* replace 'if ( !mem ) continue;' with ASSERT

v1->v2 (in SR-IOV series [1]):
* new patch

[1] https://lore.kernel.org/xen-devel/cover.1772806036.git.mykyta_poturai@epam.com/T/#t
---
 xen/common/domain.c        |  5 +++
 xen/drivers/vpci/header.c  | 67 ++++++++++++++------------------------
 xen/drivers/vpci/vpci.c    | 36 +++++++++++++++++---
 xen/include/xen/rangeset.h |  7 ++++
 xen/include/xen/vpci.h     | 10 ++++--
 5 files changed, 75 insertions(+), 50 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index ab910fcf9306..498357fd0f11 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -454,6 +454,8 @@ static int vcpu_teardown(struct vcpu *v)
  */
 static void vcpu_destroy(struct vcpu *v)
 {
+    vpci_vcpu_destroy(v);
+
     free_vcpu_struct(v);
 }
 
@@ -511,6 +513,9 @@ struct vcpu *vcpu_create(struct domain *d, unsigned int vcpu_id)
     if ( arch_vcpu_create(v) != 0 )
         goto fail_sched;
 
+    if ( vpci_vcpu_init(v) )
+        goto fail_sched;
+
     d->vcpu[vcpu_id] = v;
     if ( vcpu_id != 0 )
     {
diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index a760d8c32fd6..89dce932f3b1 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -196,6 +196,7 @@ bool vpci_process_pending(struct vcpu *v)
     for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
     {
         struct vpci_bar *bar = &header->bars[i];
+        struct rangeset *mem = v->vpci.mem[i];
         struct map_data data = {
             .d = v->domain,
             .map = v->vpci.cmd & PCI_COMMAND_MEMORY,
@@ -203,10 +204,10 @@ bool vpci_process_pending(struct vcpu *v)
         };
         int rc;
 
-        if ( rangeset_is_empty(bar->mem) )
+        if ( rangeset_is_empty(mem) )
             continue;
 
-        rc = rangeset_consume_ranges(bar->mem, map_range, &data);
+        rc = rangeset_consume_ranges(mem, map_range, &data);
 
         if ( rc == -ERESTART )
         {
@@ -224,8 +225,8 @@ bool vpci_process_pending(struct vcpu *v)
 
             /* Clean all the rangesets */
             for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
-                if ( !rangeset_is_empty(header->bars[i].mem) )
-                     rangeset_purge(header->bars[i].mem);
+                if ( !rangeset_is_empty(v->vpci.mem[i]) )
+                     rangeset_purge(v->vpci.mem[i]);
 
             v->vpci.pdev = NULL;
 
@@ -260,13 +261,14 @@ static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
     for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
     {
         struct vpci_bar *bar = &header->bars[i];
+        struct rangeset *mem = current->vpci.mem[i];
         struct map_data data = { .d = d, .map = true, .bar = bar };
 
-        if ( rangeset_is_empty(bar->mem) )
+        if ( rangeset_is_empty(mem) )
             continue;
 
-        while ( (rc = rangeset_consume_ranges(bar->mem, map_range,
-                                              &data)) == -ERESTART )
+        while ( (rc = rangeset_consume_ranges(mem, map_range, &data)) ==
+                -ERESTART )
         {
             /*
              * It's safe to drop and reacquire the lock in this context
@@ -331,13 +333,13 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
     for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
     {
         struct vpci_bar *bar = &header->bars[i];
+        struct rangeset *mem = current->vpci.mem[i];
         unsigned long start = PFN_DOWN(bar->addr);
         unsigned long end = PFN_DOWN(bar->addr + bar->size - 1);
         unsigned long start_guest = PFN_DOWN(bar->guest_addr);
         unsigned long end_guest = PFN_DOWN(bar->guest_addr + bar->size - 1);
 
-        if ( !bar->mem )
-            continue;
+        ASSERT(mem);
 
         if ( !MAPPABLE_BAR(bar) ||
              (rom_only ? bar->type != VPCI_BAR_ROM
@@ -354,7 +356,7 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
             continue;
         }
 
-        ASSERT(rangeset_is_empty(bar->mem));
+        ASSERT(rangeset_is_empty(mem));
 
         /*
          * Make sure that the guest set address has the same page offset
@@ -369,7 +371,7 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
             return -EINVAL;
         }
 
-        rc = rangeset_add_range(bar->mem, start_guest, end_guest);
+        rc = rangeset_add_range(mem, start_guest, end_guest);
         if ( rc )
         {
             printk(XENLOG_G_WARNING "Failed to add [%lx, %lx]: %d\n",
@@ -380,12 +382,12 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
         /* Check for overlap with the already setup BAR ranges. */
         for ( j = 0; j < i; j++ )
         {
-            struct vpci_bar *prev_bar = &header->bars[j];
+            struct rangeset *prev_mem = current->vpci.mem[j];
 
-            if ( rangeset_is_empty(prev_bar->mem) )
+            if ( rangeset_is_empty(prev_mem) )
                 continue;
 
-            rc = rangeset_remove_range(prev_bar->mem, start_guest, end_guest);
+            rc = rangeset_remove_range(prev_mem, start_guest, end_guest);
             if ( rc )
             {
                 gprintk(XENLOG_WARNING,
@@ -395,7 +397,7 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
             }
         }
 
-        rc = pci_sanitize_bar_memory(bar->mem);
+        rc = pci_sanitize_bar_memory(mem);
         if ( rc )
         {
             gprintk(XENLOG_WARNING,
@@ -412,14 +414,14 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
         unsigned long end = PFN_DOWN(vmsix_table_addr(pdev->vpci, i) +
                                      vmsix_table_size(pdev->vpci, i) - 1);
 
-        for ( j = 0; j < ARRAY_SIZE(header->bars); j++ )
+        for ( j = 0; j < ARRAY_SIZE(current->vpci.mem); j++ )
         {
-            const struct vpci_bar *bar = &header->bars[j];
+            struct rangeset *mem = current->vpci.mem[j];
 
-            if ( rangeset_is_empty(bar->mem) )
+            if ( rangeset_is_empty(mem) )
                 continue;
 
-            rc = rangeset_remove_range(bar->mem, start, end);
+            rc = rangeset_remove_range(mem, start, end);
             if ( rc )
             {
                 gprintk(XENLOG_WARNING,
@@ -469,8 +471,9 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
                 for ( j = 0; j < ARRAY_SIZE(header->bars); j++)
                 {
                     const struct vpci_bar *bar = &header->bars[j];
+                    struct rangeset *mem = current->vpci.mem[j];
 
-                    if ( !rangeset_overlaps_range(bar->mem, start, end) ||
+                    if ( !rangeset_overlaps_range(mem, start, end) ||
                          /*
                           * If only the ROM enable bit is toggled check against
                           * other BARs in the same device for overlaps, but not
@@ -481,7 +484,7 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
                           bar->type == VPCI_BAR_ROM) )
                         continue;
 
-                    rc = rangeset_remove_range(bar->mem, start, end);
+                    rc = rangeset_remove_range(mem, start, end);
                     if ( rc )
                     {
                         gprintk(XENLOG_WARNING,
@@ -732,18 +735,6 @@ static void cf_check rom_write(
     }
 }
 
-static int bar_add_rangeset(const struct pci_dev *pdev, struct vpci_bar *bar,
-                            unsigned int i)
-{
-    char str[32];
-
-    snprintf(str, sizeof(str), "%pp:BAR%u", &pdev->sbdf, i);
-
-    bar->mem = rangeset_new(pdev->domain, str, RANGESETF_no_print);
-
-    return !bar->mem ? -ENOMEM : 0;
-}
-
 int vpci_init_header(struct pci_dev *pdev)
 {
     uint16_t cmd;
@@ -853,10 +844,6 @@ int vpci_init_header(struct pci_dev *pdev)
         else
             bars[i].type = VPCI_BAR_MEM32;
 
-        rc = bar_add_rangeset(pdev, &bars[i], i);
-        if ( rc )
-            goto fail;
-
         rc = pci_size_mem_bar(pdev->sbdf, reg, &addr, &size,
                               (i == num_bars - 1) ? PCI_BAR_LAST : 0);
         if ( rc < 0 )
@@ -909,12 +896,6 @@ int vpci_init_header(struct pci_dev *pdev)
                                4, rom);
         if ( rc )
             rom->type = VPCI_BAR_EMPTY;
-        else
-        {
-            rc = bar_add_rangeset(pdev, rom, num_bars);
-            if ( rc )
-                goto fail;
-        }
     }
     else if ( !is_hwdom )
     {
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 0ac9ec8b0475..8e6343653078 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -24,6 +24,37 @@
 
 #ifdef __XEN__
 
+void vpci_vcpu_destroy(struct vcpu *v)
+{
+    unsigned int i;
+
+    if ( !has_vpci(v->domain) && !is_idle_domain(v->domain) )
+        return;
+
+    for ( i = 0; i < ARRAY_SIZE(v->vpci.mem); i++ )
+        RANGESET_DESTROY(v->vpci.mem[i]);
+}
+
+int vpci_vcpu_init(struct vcpu *v)
+{
+    unsigned int i;
+
+    if ( !has_vpci(v->domain) && !is_idle_domain(v->domain) )
+        return 0;
+
+    for ( i = 0; i < ARRAY_SIZE(v->vpci.mem); i++ )
+    {
+        char str[32];
+
+        snprintf(str, sizeof(str), "%pv:BAR%u", v, i);
+        v->vpci.mem[i] = rangeset_new(v->domain, str, RANGESETF_no_print);
+        if ( !v->vpci.mem[i] )
+            return -ENOMEM;
+    }
+
+    return 0;
+}
+
 #ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
 static int assign_virtual_sbdf(struct pci_dev *pdev)
 {
@@ -89,8 +120,6 @@ struct vpci_register *vpci_get_register(const struct vpci *vpci,
 
 void vpci_deassign_device(struct pci_dev *pdev)
 {
-    unsigned int i;
-
     ASSERT(rw_is_write_locked(&pdev->domain->pci_lock));
 
     if ( !has_vpci(pdev->domain) || !pdev->vpci )
@@ -116,9 +145,6 @@ void vpci_deassign_device(struct pci_dev *pdev)
     }
     spin_unlock(&pdev->vpci->lock);
 
-    for ( i = 0; i < ARRAY_SIZE(pdev->vpci->header.bars); i++ )
-        rangeset_destroy(pdev->vpci->header.bars[i].mem);
-
     xfree(pdev->vpci);
     pdev->vpci = NULL;
 }
diff --git a/xen/include/xen/rangeset.h b/xen/include/xen/rangeset.h
index 817505badf6f..f01e00ec9234 100644
--- a/xen/include/xen/rangeset.h
+++ b/xen/include/xen/rangeset.h
@@ -40,6 +40,13 @@ struct rangeset *rangeset_new(
 void rangeset_destroy(
     struct rangeset *r);
 
+/* Destroy a rangeset, and zero the pointer to it. */
+#define RANGESET_DESTROY(r)  \
+    ({                       \
+        rangeset_destroy(r); \
+        (r) = NULL;          \
+    })
+
 /*
  * Set a limit on the number of ranges that may exist in set @r.
  * NOTE: This must be called while @r is empty.
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 877aa391d178..b55bacbe6e01 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -19,6 +19,9 @@
  */
 #define VPCI_MAX_VIRT_DEV       (PCI_SLOT(~0) + 1)
 
+void vpci_vcpu_destroy(struct vcpu *v);
+int vpci_vcpu_init(struct vcpu *v);
+
 /* Assign vPCI to device by adding handlers. */
 int __must_check vpci_assign_device(struct pci_dev *pdev);
 
@@ -54,7 +57,6 @@ struct vpci {
             uint64_t guest_addr;
             uint64_t size;
             uint64_t resizable_sizes;
-            struct rangeset *mem;
             enum {
                 VPCI_BAR_EMPTY,
                 VPCI_BAR_IO,
@@ -152,14 +154,15 @@ struct vpci {
 #endif
 };
 
+#ifdef __XEN__
 struct vpci_vcpu {
     /* Per-vcpu structure to store state while {un}mapping of PCI BARs. */
     const struct pci_dev *pdev;
+    struct rangeset *mem[ARRAY_SIZE(((struct vpci_header *)NULL)->bars)];
     uint16_t cmd;
     bool rom_only : 1;
 };
 
-#ifdef __XEN__
 void vpci_dump_msi(void);
 
 /* Arch-specific vPCI MSI helpers. */
@@ -204,6 +207,9 @@ bool vpci_ecam_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int len,
 #else /* !CONFIG_HAS_VPCI */
 struct vpci_vcpu {};
 
+static inline void vpci_vcpu_destroy(struct vcpu *v) { }
+static inline int vpci_vcpu_init(struct vcpu *v) { return 0; }
+
 static inline int vpci_reinit_ext_capabilities(struct pci_dev *pdev)
 {
     return 0;
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 03:05:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 03:05:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260000.1553340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4s5V-0005ab-Gk; Tue, 24 Mar 2026 03:05:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260000.1553340; Tue, 24 Mar 2026 03: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 1w4s5V-0005aU-Dm; Tue, 24 Mar 2026 03:05:49 +0000
Received: by outflank-mailman (input) for mailman id 1260000;
 Tue, 24 Mar 2026 03:05:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Stewart.Hildebrand@amd.com>) id 1w4s5U-0005YF-IT
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 03:05:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4s5T-00Cb6d-UQ
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 04:05:47 +0100
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Stewart.Hildebrand@amd.com>)
 id 69c1ff63-e002-0a2a0a5209dd-0a2a4506e1a8-24
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 04:05:47 +0100
Received: from [40.93.195.12]
 (helo=SN4PR2101CU001.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Stewart.Hildebrand@amd.com>)
 id 69c1ff8a-3034-0a2a45060019-285dc30cc0db-4
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 04:05:47 +0100
Received: from CH5P220CA0022.NAMP220.PROD.OUTLOOK.COM (2603:10b6:610:1ef::28)
 by SA5PPF06C91DA0C.namprd12.prod.outlook.com
 (2603:10b6:80f:fc04::8c4) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Tue, 24 Mar
 2026 03:05:41 +0000
Received: from CH1PEPF0000A348.namprd04.prod.outlook.com
 (2603:10b6:610:1ef:cafe::c6) by CH5P220CA0022.outlook.office365.com
 (2603:10b6:610:1ef::28) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31 via Frontend
 Transport; Tue, 24 Mar 2026 03:05:39 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CH1PEPF0000A348.mail.protection.outlook.com (10.167.244.4) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9723.19 via Frontend Transport; Tue, 24 Mar 2026 03:05:40 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 23 Mar
 2026 22:05:38 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 23 Mar
 2026 20:05:38 -0700
Received: from ubuntu (10.180.168.240) by satlexmb08.amd.com (10.181.42.217)
 with Microsoft SMTP Server id 15.2.2562.17 via Frontend Transport; Mon, 23
 Mar 2026 22:05:37 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=t5FgPdj1RCZ31jrBXunHvWq+IsX6FE8POSDNlmpQoMSLK+rBsFLTmPpp8AHc50Dc1sl0bnLhEH3JIJJpQwLUh22F1HhNTQhD83e+FPWyJq+tAUacTHKmY2UbSS3dxcPlOwcQYZS9AMFsG2gsXPCwoxPlSi/sEOF4/Qj2dlBzf66+r0GnZOezb/t8fANQWymoWfPWHg+F0yQlcCArzIPN36NJdMhBYOlacHbk0lHq9gM41Ud0+jWMMsOqCDsV+1tDw7kje/1MuQvXdNnF1GJ4lFYcvAnXeIsZ65CUpMF8rJ961FQMechYjP6tOZ2+vKDZXQj6sz5u7PMJm7zVWMd8Bw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ej96FSNwLfsqOcUf6P4qAFaoiP/qDKeFikSYtl3VuBk=;
 b=u8rL0qDuomB1wvvABsbZgpXkp8/UAmXLL0kEnH/JM0cTkwOuaDGdutIiU/VO1GwpwYpBvgKJ4MuewIpCv5/Yh8rMvv13atsYgfQzw2VgrXyd0KG7VavBu0xcacXC8jSYKRvTdRlO1iF8mZvu3L5zqA4kUMHWC4lKmM7mb0vf1XiStiitr9vdCkzQtiPUyhE/JUX3zc5u2EtHTACyW3k9myRAuxtx80AURvtNqp8/Hphuq/jVBhbT7R1c5OGYKpo4lihTDv1sBAP6jjJ8JlLn3hZQyZD+0On/WG8sUFaCmJoEfHkYq3D8b/nApuda3m6R12+FPkSZUAVZb6ILCSIm2g==
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=ej96FSNwLfsqOcUf6P4qAFaoiP/qDKeFikSYtl3VuBk=;
 b=eFkjgUuTkjkTvsfGfzjVt5cYEMSAyADaltllvmBym0o6okTfUhEo3VRZchwfWzm3b1F8Xx43ebBEy/S+Oo2c/qSuDAFsS+hERHk+SAutt0xzdy5Ep2yFpUV7ExCcHGvDdAiy6ms4XsrxHSyG88WR8q7LI64PHXzWz/EhOq/OFAo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v3 3/4] vpci: allow BAR map/unmap without affecting memory decoding bit
Date: Mon, 23 Mar 2026 23:05:00 -0400
Message-ID: <20260324030513.700217-4-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324030513.700217-1-stewart.hildebrand@amd.com>
References: <20260324030513.700217-1-stewart.hildebrand@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000A348:EE_|SA5PPF06C91DA0C:EE_
X-MS-Office365-Filtering-Correlation-Id: db9fd6d2-defe-412a-5cf2-08de89523aef
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700016|1800799024|376014|13003099007|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	yKpfiNJHlSCYobLhZn2wKSsmqk23qMUsex/MCUc7+nrS4pYRMlXbXIzK10u1Webv/9N4N78plKtz6fWxL1lmNNY7O0rQgwUKtE7txM050kV3CNDVRV9Ey4S6m9NZz/jKTgELF7nO8COzqE3+NGwM7f76WwS9vzfsjqHMZ2/zFt+s6iZtir8WRGFFSLletg8lUylaOtjPxdCSR+n+dSf85alREKdLV7/UsDdEDyJ6db92arFpSQ3V33K6ALWM/HmhnTkrPfcGzbQNiGCoFZbgHIZXv0ZBlQWDQo5D28Lr60hmvch4puLeNlPSO2kTSdTuyEig2D1+po7OWNZH3wRU0lTRjAyn8W2PNTgEoC52xyheg79BCqZeF0AVLVgQm5qf1sESPUEkv+eAsi4Q+24lhrDQNEclItNEE7MFSntJdyqyrHGoO35hh9kllv/DNNVCrwMEnXcBHB7QW7BwHZrQY0JORZ2FNFm/6LVQEG9acyn6gZBohY2pMMKkvEgsIljQwMiWcJc4MCzTWfUFkYSQEGb1A6PbnBPfgijoY+HBkVYC+aoT7YHd3HWmwQn2mmcJ0tjZYGlAlGyys7huZCPjwuYHmw/xucLGlAIwzyw0oetDa5o2r9Capshngta7eOq72UYyrFGSf5bgMSVA5UjpMTBoFi83Ie9iZrq0PDFcZzfNxs3moBuXzKZx1YQBNxvOtYL1G4EfXbiA5IKp58L6V35AxmANJHiM/INYHAPkQ5HcitUj452rtnnOCgynEsMDZf+OcMsgeLG/X4GDyyls7Q==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(1800799024)(376014)(13003099007)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	k4DizxoBtvDgA23IZZy/k4IiEhNpUOJXdsWsM7uHXUh3QGY1ofFaRc4qqNaThT6FjUZRC0cXwN5K8A6tfYzFAJAb5RkpX3DM0mJh9OiTU+ozOY2I6h2BeUs09HKLB4RAK7QhxhJMJqyNKeDodytoV8GNYdVHy4h30xKjoNbIb+1pkQ2DHDJTux+XP5TZV9B42cKFj92UW7b31t75srqeiQXE3XgRlJbA+iuhCFyd8aiu9/InaQZS+xMDCSeFBHin4DD12TGIElxtREURJ/WSmbTioGlYKIRjSvN8utWnquDEzY0C+bHcITZmYiLzXoiI9zPMTTf/IOJjVtfnEvjOP7MYX5suWwnJZLDiq2Qb17ZDLqIu9y/Dkcwi/EKDUNxyqrcLphg8hKYtEsRl6q/mcQKCSJ7byFhBj8LF3aFecVx/WLSEpbsVNVrzKL7UGf5W
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 03:05:40.1959
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: db9fd6d2-defe-412a-5cf2-08de89523aef
X-MS-Exchange-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:
	CH1PEPF0000A348.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPF06C91DA0C
X-purgate-ID: tlsNG-16d1c6/1774321547-7A5911C2-FFC5F53C/0/0
X-purgate-type: clean
X-purgate-size: 6322

Introduce 'bool map' and allow invoking modify_bars() without changing
the memory decoding bit. This will allow hardware domain to reposition
BARs without affecting the memory decoding bit.

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
This also lays some groundwork to allow domUs to toggle the guest view
without affecting hardware, a step toward addressing the FIXME in [1].

[1] https://lore.kernel.org/xen-devel/20250814160358.95543-4-roger.pau@citrix.com/

v2->v3:
* use bool
* switch to task->map in more places

v1->v2:
* new patch
---
 xen/drivers/vpci/header.c | 38 ++++++++++++++++++++------------------
 xen/include/xen/vpci.h    |  1 +
 2 files changed, 21 insertions(+), 18 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index e57c00839841..9856840c3c87 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -116,11 +116,12 @@ static int cf_check map_range(
  * BAR's enable bit has changed with the memory decoding bit already enabled.
  * If rom_only is not set then it's the memory decoding bit that changed.
  */
-static void modify_decoding(const struct pci_dev *pdev, uint16_t cmd,
-                            bool rom_only)
+static void modify_decoding(const struct pci_dev *pdev,
+                            struct vpci_map_task *task)
 {
     struct vpci_header *header = &pdev->vpci->header;
-    bool map = cmd & PCI_COMMAND_MEMORY;
+    bool rom_only = task->rom_only;
+    bool map = task->map;
     unsigned int i;
 
     for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
@@ -167,7 +168,7 @@ static void modify_decoding(const struct pci_dev *pdev, uint16_t cmd,
 
     if ( !rom_only )
     {
-        pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
+        pci_conf_write16(pdev->sbdf, PCI_COMMAND, task->cmd);
         header->bars_mapped = map;
     }
     else
@@ -190,7 +191,7 @@ static int vpci_process_map_task(const struct pci_dev *pdev,
         struct rangeset *mem = bar->mem;
         struct map_data data = {
             .d = pdev->domain,
-            .map = task->cmd & PCI_COMMAND_MEMORY,
+            .map = task->map,
             .bar = bar,
         };
         int rc;
@@ -205,9 +206,11 @@ static int vpci_process_map_task(const struct pci_dev *pdev,
 
         if ( rc )
         {
-            spin_lock(&pdev->vpci->lock);
             /* Disable memory decoding unconditionally on failure. */
-            modify_decoding(pdev, task->cmd & ~PCI_COMMAND_MEMORY, false);
+            task->cmd &= ~PCI_COMMAND_MEMORY;
+            task->map = false;
+            spin_lock(&pdev->vpci->lock);
+            modify_decoding(pdev, task);
             spin_unlock(&pdev->vpci->lock);
 
             /* Clean all the rangesets */
@@ -225,7 +228,7 @@ static int vpci_process_map_task(const struct pci_dev *pdev,
     }
 
     spin_lock(&pdev->vpci->lock);
-    modify_decoding(pdev, task->cmd, task->rom_only);
+    modify_decoding(pdev, task);
     spin_unlock(&pdev->vpci->lock);
 
     task->pending = false;
@@ -305,7 +308,7 @@ static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
         }
     }
     if ( !rc )
-        modify_decoding(pdev, task->cmd, false);
+        modify_decoding(pdev, task);
 
     task->pending = false;
 
@@ -333,7 +336,7 @@ static void defer_map(const struct pci_dev *pdev)
 }
 
 static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only,
-                       unsigned int map_slot)
+                       bool map, unsigned int map_slot)
 {
     struct vpci_header *header = &pdev->vpci->header;
     struct pci_dev *tmp;
@@ -534,6 +537,7 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only,
 
     task->cmd = cmd;
     task->rom_only = rom_only;
+    task->map = map;
     task->pending = true;
 
     if ( system_state < SYS_STATE_active )
@@ -546,7 +550,7 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only,
          * be called iff the memory decoding bit is enabled, thus the operation
          * will always be to establish mappings and process all the BARs.
          */
-        ASSERT((cmd & PCI_COMMAND_MEMORY) && !rom_only);
+        ASSERT(map && !rom_only);
         return apply_map(pdev->domain, pdev, task);
     }
 
@@ -583,7 +587,7 @@ static void cf_check cmd_write(
          * memory decoding bit has not been changed, so leave everything as-is,
          * hoping the guest will realize and try again.
          */
-        modify_bars(pdev, cmd, false, 0);
+        modify_bars(pdev, cmd, false, cmd & PCI_COMMAND_MEMORY, 0);
     else
         pci_conf_write16(pdev->sbdf, reg, cmd);
 }
@@ -747,11 +751,8 @@ static void cf_check rom_write(
         header->rom_enabled = new_enabled;
         pci_conf_write32(pdev->sbdf, reg, val);
     }
-    /*
-     * Pass PCI_COMMAND_MEMORY or 0 to signal a map/unmap request, note that
-     * this fabricated command is never going to be written to the register.
-     */
-    else if ( modify_bars(pdev, new_enabled ? PCI_COMMAND_MEMORY : 0, true, 0) )
+    /* Note that the command value 0 will never be written to the register */
+    else if ( modify_bars(pdev, 0, true, new_enabled, 0) )
         /*
          * No memory has been added or removed from the p2m (because the actual
          * p2m changes are deferred in defer_map) and the ROM enable bit has
@@ -941,7 +942,8 @@ int vpci_init_header(struct pci_dev *pdev)
             goto fail;
     }
 
-    return (cmd & PCI_COMMAND_MEMORY) ? modify_bars(pdev, cmd, false, 0) : 0;
+    return (cmd & PCI_COMMAND_MEMORY) ? modify_bars(pdev, cmd, false, true, 0)
+                                      : 0;
 
  fail:
     pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index e4fbf7b702d6..a6f8cb67dcac 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -166,6 +166,7 @@ struct vpci_vcpu {
         } bars[ARRAY_SIZE(((struct vpci_header *)NULL)->bars)];
         uint16_t cmd;
         bool rom_only : 1;
+        bool map : 1;
         bool pending : 1;
     } task[1];
 };
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 03:05:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 03:05:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260003.1553349 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4s5a-0005xP-WA; Tue, 24 Mar 2026 03:05:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260003.1553349; Tue, 24 Mar 2026 03: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 1w4s5a-0005xI-TS; Tue, 24 Mar 2026 03:05:54 +0000
Received: by outflank-mailman (input) for mailman id 1260003;
 Tue, 24 Mar 2026 03:05:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Stewart.Hildebrand@amd.com>) id 1w4s5Y-0005rx-Tj
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 03:05:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4s5W-0073ow-O2
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 04:05:52 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Stewart.Hildebrand@amd.com>)
 id 69c1ff6b-bab6-0a2a0a5309dd-0a2a4504edec-36
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 04:05:51 +0100
Received: from [52.101.53.48]
 (helo=BL0PR03CU003.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Stewart.Hildebrand@amd.com>)
 id 69c1ff8e-c823-0a2a45040019-346535307b5b-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 04:05:51 +0100
Received: from CH5P223CA0021.NAMP223.PROD.OUTLOOK.COM (2603:10b6:610:1f3::22)
 by LV2PR12MB5989.namprd12.prod.outlook.com (2603:10b6:408:171::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Tue, 24 Mar
 2026 03:05:47 +0000
Received: from CH1PEPF0000A34B.namprd04.prod.outlook.com
 (2603:10b6:610:1f3:cafe::5c) by CH5P223CA0021.outlook.office365.com
 (2603:10b6:610:1f3::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.31 via Frontend Transport; Tue,
 24 Mar 2026 03:05:42 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CH1PEPF0000A34B.mail.protection.outlook.com (10.167.244.10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9723.19 via Frontend Transport; Tue, 24 Mar 2026 03:05:45 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Mon, 23 Mar
 2026 22:05:45 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 23 Mar
 2026 22:05:45 -0500
Received: from ubuntu (10.180.168.240) by satlexmb08.amd.com (10.181.42.217)
 with Microsoft SMTP Server id 15.2.2562.17 via Frontend Transport; Mon, 23
 Mar 2026 22:05:44 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fBWYCrztVbacYgALLFzAoFrtSd7diFq16O9xyAjjysgqj3aGwVvSVI1OuCp/V7bmcl1QTXYtuWnbuO1AGP44jQi4WZwnstimzC070LB7C8H4Cohe/62lURpKQdNvuLl77335JIjVWCk6/hRrl2T/LiSxRXVl+/PjeVlYqKVaEHoXZqunfa/r5qMH7IEdRO89MtvGZgOYynOvArtLGxZQCr0eo1x1EKDAU5DqKRDyAuBa8vcHufzjYSYlBeprntvtzHHChNQjhpyWnB4yWzvtAXU9FXeUTYbwW6mtsP3rm8ZW/lVVLGEVjFNBxzIFbCU/3L81bz8LIW2QYmhjAxLP+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=QSf/Y6hBGzyirIB8wL+Tv2JZc0KdiMNKBUOutJwXS6A=;
 b=JrbzySqIyWd1xL0qglXI3FD9FJJMq8FsYBequF9FzfUzCmQ7hgHByw4PaMftxNpwn66qFZPh2LTPj7N9wCfLXTSlZlHbsBekY5JDDavuurb/jQDbX2BfTwNanUii3MI90AYgAE6TuiFFdqHpFAa+5Utc7+Dk6PZaQUiJDaalqwN3aiTenhCuWqfhtj7VZcZBASTQOFEZPyEnN1Bh93a2JU/tiiR7KSZ1K7LENXeq2PUk0+OG1SvubEJLXoaTsCWsYdKUwxHma8EL6o3KQFA7PK4gvBZskrkbFjKUG19a5ffHniQ/gG7cmq//BrAYLKSJ0/NAypMtddo0SDPFrKahdw==
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=QSf/Y6hBGzyirIB8wL+Tv2JZc0KdiMNKBUOutJwXS6A=;
 b=17MujKDVT6B7UfYc/w/K4pMI4uKWwZsYOoXbEcqfzEfyEjMd8CR06zGZCf8FZzX6hAZ8io/QUTCFtKCCMSr3PgDCWiQVHCyX0arleqeGpaB6vttzmm2vYqc6xz4W8unmZh6rQ2lpRk5spt4jMoFQY70Ou42IwbyMkQF6o/LPZDg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v3 4/4] vpci: allow 32-bit BAR writes with memory decoding enabled
Date: Mon, 23 Mar 2026 23:05:01 -0400
Message-ID: <20260324030513.700217-5-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324030513.700217-1-stewart.hildebrand@amd.com>
References: <20260324030513.700217-1-stewart.hildebrand@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB03.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000A34B:EE_|LV2PR12MB5989:EE_
X-MS-Office365-Filtering-Correlation-Id: 1c3906ae-c441-4881-a403-08de89523e5b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700016|376014|13003099007|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	3lnNFZnNczC6zi1wJttteuNOPSdKpTuSe6flfxYZMeVDb+5oVVZfkg9KkWO84TW83H56gXFkVS2PPYAlMDfF7KpVvhHhDMYO4edlmTqYpPgvOrzCLl+d/wQwF/7ivHXquIXiz5nUmnjeHY3SIHjwXpTtT/3KljQmdg7R2VfeeEm0SZpda2CzsFb8kZNAj2M7CspnMchSeUPbaA9kUmkEZD42O+o9Gn7oYvq0sw+DCdwE7OBzg+qZxI2CM9y6fTEHSwLn/1jA+dwFAmUTgY7xIYy4tbTchW+xtwB/letkap+3jWdUnpL+P0BX62sjEA9/L7ab0HZMzHMCFgCWWlcMg5RPYdVRMCUluZBSsqaPLCtGMnpRkuuj6ZuBqfcheMb4BfNkSduBAH7JuXzIM9KBAI6hSvwwb8Nf+Kp5KDd4MZHYWoTPQMUbI7jtahQt0jFzJGHdZ1OtCyEFU7YHX9Tdmm6eCWkUdOlvwQZ1d915yXbRXdPgbvb1mG/T05GdfcUrbrfblezO0ELG1YHf4SzPgh/NL6jyJqKgKehDxNSfKavu0a8LN+/IkytTXv6JdldlU79hT+ONjofpCGJAiGscNz7VmC7iFNyrkf3XHkLryXvD90JTbqT6rIL1KaWS+Lo2qbtKP4h3HIX6F4HDQpJJHSCSI94Y72fX/YcpaqdcSwmbyi0A1I0cYlCytjWIEhaLxpgoj5DIktZh5lJK0mcfIVQmp86ZDcSUyjlnmdVF2MusFwVYztmlVeatkRiOIxgLd2B0kZN8KV+DH60dj8bfAw==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(376014)(13003099007)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	1622F/nCeCDomiFjtGhBVgyHtrx1HBTfXQBEVyW/doLbGMNv/hwpGpOHJGgwGOcAOK6qOSvQlczNvuHTh7NZzgwNvIqsvGFBJm/CaJ4zfIQMg2d986w4TthFkgEY6cxTT2AAUSxDqcB57O8P/FBRdAd/ceCnE95g0RHNds/iTW6l8eH4XocyXUQNIyT7M0yCn56HbxIvi1zDEzFnxMjrTX533Km/MroOSeVUcN+yhhyUJomRMHudRQ+3CUpkJsQnAnh43Y6Luxy2cJ03ylM8aMzZF/cfaiiHcWOWVA6nV+HERsJ58jZN5V4udF8aitEeu2PDVxWnS56g4CqKdz8U99OoHrLBwH7zT85zSKQW2bXmA7w6CeCrxOtFZLPdhhu7FPBwtuI+Dm7cdQYX8YJ2uRkbUDQ7uH6y3nLQF8PMzXhA2yrYMbtauJqLWpAMp+LS
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 03:05:45.9169
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1c3906ae-c441-4881-a403-08de89523e5b
X-MS-Exchange-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:
	CH1PEPF0000A34B.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5989
X-purgate-ID: tlsNG-ebf023/1774321551-B249D9D1-6C2F1D6C/0/0
X-purgate-type: clean
X-purgate-size: 3882

Currently, Xen vPCI refuses BAR writes if the BAR is mapped in p2m. If
firmware initializes a 32-bit BAR to a bad address, Linux may try to
write a new address to the 32-bit BAR without disabling memory decoding.
Since Xen refuses such writes, the BAR (and thus PCI device) will be
non-functional.

Allow the hardware domain to issue 32-bit BAR writes with memory
decoding enabled. This increases the compatibility of PVH dom0 with more
hardware.

Note that Linux aims at disabling memory decoding before writing 64-bit
BARs. Continue to refuse 64-bit BAR writes in Xen while those BARs are
mapped for now to avoid mapping half-updated BARs in p2m.

Increase number of unmap/map slots to 2.

Resolves: https://gitlab.com/xen-project/xen/-/issues/197
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
v2->v3:
* minor tweaks for fixed number of map/unmap slots

v1->v2:
* rework on top of queued BAR map/unmap operation machinery

RFC->v1:
* keep memory decoding enabled in hardware
* allow write while memory decoding is enabled for 32-bit BARs only
* rework BAR mapping machinery to support unmap-then-map operation
---
 xen/drivers/vpci/header.c | 33 ++++++++++++++++++++++++---------
 xen/include/xen/vpci.h    |  2 +-
 2 files changed, 25 insertions(+), 10 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 9856840c3c87..2df992468383 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -605,6 +605,8 @@ static void cf_check bar_write(
 {
     struct vpci_bar *bar = data;
     bool hi = false;
+    uint16_t cmd = 0;
+    unsigned int map_slot = 0;
 
     ASSERT(is_hardware_domain(pdev->domain));
 
@@ -618,19 +620,29 @@ static void cf_check bar_write(
         val &= PCI_BASE_ADDRESS_MEM_MASK;
 
     /*
-     * Xen only cares whether the BAR is mapped into the p2m, so allow BAR
-     * writes as long as the BAR is not mapped into the p2m.
+     * Allow 64-bit BAR writes only when the BAR is not mapped in p2m. Always
+     * allow 32-bit BAR writes.
      */
     if ( bar->enabled )
     {
-        /* If the value written is the current one avoid printing a warning. */
-        if ( val != (uint32_t)(bar->addr >> (hi ? 32 : 0)) )
-            gprintk(XENLOG_WARNING,
-                    "%pp: ignored BAR %zu write while mapped\n",
-                    &pdev->sbdf, bar - pdev->vpci->header.bars + hi);
-        return;
-    }
+        if ( bar->type == VPCI_BAR_MEM32 )
+        {
+            if ( val == bar->addr )
+                return;
 
+            cmd = pci_conf_read16(pdev->sbdf, PCI_COMMAND);
+            modify_bars(pdev, cmd, false, false, map_slot++);
+        }
+        else
+        {
+            /* If the value written is the same avoid printing a warning. */
+            if ( val != (uint32_t)(bar->addr >> (hi ? 32 : 0)) )
+                gprintk(XENLOG_WARNING,
+                        "%pp: ignored BAR %zu write while mapped\n",
+                        &pdev->sbdf, bar - pdev->vpci->header.bars + hi);
+            return;
+        }
+    }
 
     /*
      * Update the cached address, so that when memory decoding is enabled
@@ -650,6 +662,9 @@ static void cf_check bar_write(
     }
 
     pci_conf_write32(pdev->sbdf, reg, val);
+
+    if ( bar->enabled )
+        modify_bars(pdev, cmd, false, true, map_slot++);
 }
 
 static void cf_check guest_mem_bar_write(const struct pci_dev *pdev,
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index a6f8cb67dcac..a458b722cea6 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -168,7 +168,7 @@ struct vpci_vcpu {
         bool rom_only : 1;
         bool map : 1;
         bool pending : 1;
-    } task[1];
+    } task[2];
 };
 
 void vpci_dump_msi(void);
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 08:10:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 08:10:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260048.1553358 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4wps-0002XJ-QN; Tue, 24 Mar 2026 08:10:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260048.1553358; Tue, 24 Mar 2026 08:10: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 1w4wps-0002XC-NT; Tue, 24 Mar 2026 08:10:00 +0000
Received: by outflank-mailman (input) for mailman id 1260048;
 Tue, 24 Mar 2026 08:09: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=afFk=BY=linuxfoundation.org=gregkh@srs-se1.protection.inumbo.net>)
 id 1w4wpr-0002X4-G9
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 08:09:59 +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 d828f15f-2758-11f1-b166-2bf370ae4941;
 Tue, 24 Mar 2026 09:09:57 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 7BAB3600C4;
 Tue, 24 Mar 2026 08:09:55 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9B1B8C19424;
 Tue, 24 Mar 2026 08:09:54 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d828f15f-2758-11f1-b166-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org;
	s=korg; t=1774339795;
	bh=IKKPJZ+MZDaoxP4vPPsLme6gW/n7DEGEiTEMcgMuYp0=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=0L8IR6Pk68bAp9++dR6ItzOnWZf2MgvBLl2UV5zaHXNUbsVb9RAc04NnLuD2YNf+G
	 GmqZcQvouuvrdE0xPt4YHI6OTcY19NxN8kIn1pWJKzLM1zFnqP+nevgcl7t5hQ7vTE
	 9EDRgh/2RJsqQNRl7woh8a9xc4H6xKdllWSA+5ec=
Date: Tue, 24 Mar 2026 09:09:28 +0100
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Danilo Krummrich <dakr@kernel.org>
Cc: Russell King <linux@armlinux.org.uk>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Ioana Ciornei <ioana.ciornei@nxp.com>,
	Nipun Gupta <nipun.gupta@amd.com>,
	Nikhil Agarwal <nikhil.agarwal@amd.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>, Bjorn Helgaas <bhelgaas@google.com>,
	Armin Wolf <W_Armin@gmx.de>, Bjorn Andersson <andersson@kernel.org>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	Vineeth Vijayan <vneethv@linux.ibm.com>,
	Peter Oberparleiter <oberpar@linux.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Harald Freudenberger <freude@linux.ibm.com>,
	Holger Dengler <dengler@linux.ibm.com>,
	Mark Brown <broonie@kernel.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	Eugenio =?iso-8859-1?Q?P=E9rez?= <eperezma@redhat.com>,
	Alex Williamson <alex@shazbot.org>, Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>,
	linux-kernel@vger.kernel.org, driver-core@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org, linux-hyperv@vger.kernel.org,
	linux-pci@vger.kernel.org, platform-driver-x86@vger.kernel.org,
	linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-spi@vger.kernel.org,
	virtualization@lists.linux.dev, kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 12/12] driver core: remove driver_set_override()
Message-ID: <2026032412-finally-lubricant-7fe2@gregkh>
References: <20260324005919.2408620-1-dakr@kernel.org>
 <20260324005919.2408620-13-dakr@kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260324005919.2408620-13-dakr@kernel.org>

On Tue, Mar 24, 2026 at 01:59:16AM +0100, Danilo Krummrich wrote:
> All buses have been converted from driver_set_override() to the generic
> driver_override infrastructure introduced in commit cb3d1049f4ea
> ("driver core: generalize driver_override in struct device").
> 
> Buses now either opt into the generic sysfs callbacks via the
> bus_type::driver_override flag, or use device_set_driver_override() /
> __device_set_driver_override() directly.
> 
> Thus, remove the now-unused driver_set_override() helper.
> 
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=220789
> Signed-off-by: Danilo Krummrich <dakr@kernel.org>
> ---
>  drivers/base/driver.c         | 75 -----------------------------------
>  include/linux/device/driver.h |  2 -
>  2 files changed, 77 deletions(-)

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 08:27:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 08:27:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260103.1553466 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4x6Z-0006Eq-8n; Tue, 24 Mar 2026 08:27:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260103.1553466; Tue, 24 Mar 2026 08:27:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4x6Z-0006Ej-5c; Tue, 24 Mar 2026 08:27:15 +0000
Received: by outflank-mailman (input) for mailman id 1260103;
 Tue, 24 Mar 2026 08:27:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w4x6Y-0006EX-IO
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 08:27:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4x6X-0082V2-UR
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 09:27:13 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c24ad6-bab6-0a2a0a5309dd-0a2a450ae3ba-16
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 09:27:13 +0100
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c24ae1-1772-0a2a450a0019-d1558032a5a4-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 09:27:13 +0100
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-486fc4725f0so42948065e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 01:27:13 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b644ae048sm35975512f8f.1.2026.03.24.01.27.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 01:27:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774340833; x=1774945633; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4XmYfbroGzP/O9nzOf3h8pGDQn+M+TCuToVs73hndxM=;
        b=CtaK5210OAlcyoAzq/QPvN2Qrgqvc8HaKeleFBjFl0x95Sq4H4/sbtf5ZV6YAJbfL6
         rvWka9XMLWPngFyxJKIN/kxE1W/2FPYfJcZ3PX3wqMMGgTCgVJJDVfzreN2KzvYgS60Z
         /14yIimOHLV9ljFjZEUX60H5MTl0DgMgrJuSyBDsnD8EpEwDnfldaljedAnrzpWSp+m5
         UEcIZGvjp87t7ge6+giYZhGw8+dbYSnsDZO/8qRiVy5uDhQGWqL9tWW664oYZjjgAl0G
         hyNNthx+e0qzNLX5pcwImqqYuC/4EaIj66lMMsahY0cuF/SzqRIfNvfnKzZmZaoQj8DU
         spvA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774340833; x=1774945633;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4XmYfbroGzP/O9nzOf3h8pGDQn+M+TCuToVs73hndxM=;
        b=LVlXIP3Vs/bLzNXbr521SMl69jEVTepXhpEYeLXSDRa1J79zMDtMoO7nV2/nhbGnyE
         jwFYehYx15fb11hbEu/rejBl/RVY8qrucYNLHjOhipn1j1ZkVmlI65s3s7g4bUjce3TG
         twu6Iz8UiqL0llJylCxC7yA5sh7bFWQeqFkvkAkTbKCSGyaKqWaj7SxF038qiqXjTVs2
         uXCNkpG8iBChHWhbimocOHd5YNNn/A942TR9tlcnKEBQ5tTcvOcTS+/kAetvjjCpnCv4
         aloe8IvqYuWURXhPaPk2HUDmbRQtW7paI+e/QOgnF/OV+XHBelSSGipO5AUJflh3ArqH
         4ZAw==
X-Forwarded-Encrypted: i=1; AJvYcCW7rp0FEKEMnHZl/Ojzgrv8c8jDqSEmifQWQyZN7VyhGbt8iX3Szfac/fWKnd+uEsABTV4XHcBbgpI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwoCJdu6NPQ9UuvGVcmYw+F5ZIAEECDyjE3AoqM0WgRNSIF5wqx
	w1Am+Fvr88okhRHnPUOg3RW1mBcth72p0jaQGfgsgcDLENdFA0jmxpGDSQaupfEWlA==
X-Gm-Gg: ATEYQzyc5y3mp2iF8hBOT2OqkQ0fhp/CZscQWGsQ8g2ajgjw0DlYrb2plIIUVkwy2+L
	U+rEf/Lu1cZKI5XfANOLmhWevtvngh+Kch5EEsWP/hsHRps5gFB6/EyJ8C9bwrx012/Ytw9TlZ9
	ElckhWAsYbgh1vMkasaAIrkm2k1R5RSkhIZNVjZsVdnCgGkett8X4wPg2ps+AiEjfTux33zRIbh
	dW5si9T74XRfZit9Nm8VIWk0NpxOxjkIq4fZW6BbESaJPKK7548l8RQv1npSTizvw0Z6LQL5C0X
	oyKf2OBmqpVFa2ydRKZ0ueqTyp9TDZBNFQStjKswpNWL0NUV6szrFRX/P0wnLesOYamFmKDQM7s
	mIXhTHhy8zZtsg4ScsqEqwGhGng0eXbI8qDn7o/fmpaJtPv8KCyUX6Xs8S3Knzvv8ufFdNZ9J2N
	zZo0by41Z3r5D0AyG/eIhyXzTDmsCyLbgOorS9i5FYcxr4zWH6iQHlm6Fk2/Haut2euzREy8305
	Evpi4LrxMNy0gw=
X-Received: by 2002:a05:600c:6b4b:b0:485:4f11:aabc with SMTP id 5b1f17b1804b1-4870f22f189mr23944165e9.15.1774340833123;
        Tue, 24 Mar 2026 01:27:13 -0700 (PDT)
Message-ID: <fefe8733-e997-4eb8-a2b4-66975ff46b47@suse.com>
Date: Tue, 24 Mar 2026 09:27:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 04/23] xen/arm: vIOMMU: add generic vIOMMU framework
To: Milan Djokic <milan_djokic@epam.com>
Cc: Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1774305918.git.milan_djokic@epam.com>
 <f20ce7b6b230ee234c9a278a6d69330f1abb03c1.1774305918.git.milan_djokic@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f20ce7b6b230ee234c9a278a6d69330f1abb03c1.1774305918.git.milan_djokic@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1774340833-BDA8B900-6E490730/0/0
X-purgate-type: clean
X-purgate-size: 828

On 23.03.2026 23:51, Milan Djokic wrote:
> --- a/xen/drivers/passthrough/Kconfig
> +++ b/xen/drivers/passthrough/Kconfig
> @@ -35,6 +35,11 @@ config IPMMU_VMSA
>  	  (H3 ES3.0, M3-W+, etc) or Gen4 SoCs which IPMMU hardware supports stage 2
>  	  translation table format and is able to use CPU's P2M table as is.
>  
> +config VIRTUAL_IOMMU
> +	bool "Virtual IOMMU Support (UNSUPPORTED)" if UNSUPPORTED
> +	help
> +	 Support virtual IOMMU infrastructure to implement vIOMMU.
> +
>  endif

This is being added to an Arm-only section, without it having an Arm-only
name. Judging from the diffstat in the cover letter, there's hardly any
abstraction in common code, so likely adding an ARM_ prefix to the name
would be the way to go (for now, i.e. if doing proper abstraction is
specifically not a goal).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 08:29:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 08:29:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260116.1553476 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4x91-0006rj-Le; Tue, 24 Mar 2026 08:29:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260116.1553476; Tue, 24 Mar 2026 08:29:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4x91-0006rc-IB; Tue, 24 Mar 2026 08:29:47 +0000
Received: by outflank-mailman (input) for mailman id 1260116;
 Tue, 24 Mar 2026 08:29:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w4x90-0006rW-Rb
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 08:29:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4x90-00DO9V-3p
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 09:29:46 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c24b6d-e002-0a2a0a5209dd-0a2a4507c43c-28
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 09:29:45 +0100
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c24b79-fd74-0a2a45070019-d155802dc1f9-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 09:29:45 +0100
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-4838c15e3cbso41676645e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 01:29:45 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48711702191sm32588985e9.5.2026.03.24.01.29.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 01:29:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774340985; x=1774945785; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zAq/sr4F+fIBzxhIppu/zBHS2g5LYsP9hU02GiuSp9o=;
        b=COzZqUmPBB9uDiLg+ltvwIKM+pGFDqtVT1VOz827Ru5L1n57oh6j1eiqLNtc/V4vD1
         S4ox3TRrgeNl08hNBR93g70BJ0DR/TXSkwPNmYzxW5CHFIJfxVx7mgRMY8ECaiL+slb7
         wjmHooReyc7cUSjCrZZZBVHVMcv0iY/pn4MXIUMjNKae55FLpssLUTE2T8V+bAyWFmPl
         DQ+iZfDBeoPtNPF/e1Cuifz9BUmjixe9Sy93bH83VCCik0I4zbnuioagSH7bcwEECsKU
         F7jzB8tFKzDeUmIibCizkcwFVzufdCseylEw55RYbbiSkWu2T81jGpbY/Y6t6GrPrXDv
         laSA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774340985; x=1774945785;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zAq/sr4F+fIBzxhIppu/zBHS2g5LYsP9hU02GiuSp9o=;
        b=ejtz3UGhmcZ/b9BE4d9SjOgYHHtAI9FVHuKYfyUtnUfDumAQuzhVcSWJj9JpisNgEu
         sS9kCtXsRw9mEt7RagEjAnz8sBfrzPS8A03fLDZid+sTt4R6Qh0sQAjteCG7Zyq9AyNZ
         akc+IcFdIb7KAl4wYXYmieVaUGTDtw2ec3ZnbJkb5T3kMQV2nyeTVWSHT6eSItw/EiKC
         YA+iqNGXK4lPyJchQYmHdkTAOi9X+bVhqoJwFff/hahhiyKwcIYEpmWuTdMYXzlLc8Ok
         xy6CnqkME0W7B0Ffeeod4gK8kDYjv/lby7Xa0ljue2tdPy0fQTzFLNCajKmwutPYYtYZ
         otvg==
X-Forwarded-Encrypted: i=1; AJvYcCUBbdtmwxqs5hibdfQQPqSDMi+BgvaRQqqksj11xCibo2Q/FsFYRJFgCSD15VJNUgcHXENePsDJK7Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwVNBsj0r/7zAiCDuCdYggshQuHaI4EAT0KCpPqFnLtqm+gYTIO
	99DjhRl1FfPjPu7jWw3KEo6vAT1BWs7YKMqhl+r9mdYDUdmZOBTwWN3osGAGLbetnQ==
X-Gm-Gg: ATEYQzzsCPjaG3f85FWddz8gTMfTSWvsX8CQehZdVQH+iT18YU9tm7yud3BQOK6VVvC
	kFa79ZY5ow7rpDgY4dtsx/VlEs/blPN2H77F3QFRRuS5l68N5e9UUB8Vprlynx19XkmiON2oXbL
	4M/cNbSER/r2nM33G5gHyHA+eymGZQ5u4/NNTWuoT1jOjRpQKSkuvABgGBpR2gFA6swHMx3Kt1p
	Pg1rfUpzWeMOSM++1DUI+ZPNPkrabGMAy4yu9WFR6WsnEGHTxu50jV4GkeQ0X5ntJSMtHy1qyFZ
	bd8D6isB4wNPf/yf88I+xz+JtCl++BR61J8K017xJz9qKFgs4NIX7aSe6eYhIvlfVPyV6qvB1yS
	EMT6Am4OeS3Pp2eBOw+5VCInNSaMcCjbTCFGVzNePevKoBP2hzdcgmh69UkdRu+lHr8qnrNlCRA
	LVaxEiJPzNIX/6btbmulGpZWsrkOAmkREknn/XxlCyrMT3bp49M0ARbm8k8lcmYZDzRsxwy1lAq
	mHoNBTlKccMUm0=
X-Received: by 2002:a05:600c:4610:b0:487:716:2fa2 with SMTP id 5b1f17b1804b1-4870716327cmr63799965e9.16.1774340985385;
        Tue, 24 Mar 2026 01:29:45 -0700 (PDT)
Message-ID: <adf41f9d-ceba-42ac-aab3-aebb12c2c0fb@suse.com>
Date: Tue, 24 Mar 2026 09:29:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/23] xen/arm: vsmmuv3: Add dummy support for virtual
 SMMUv3 for guests
To: Milan Djokic <milan_djokic@epam.com>
Cc: Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1774305918.git.milan_djokic@epam.com>
 <718e92355669dac42c682544c451e7cb417b4b1f.1774305918.git.milan_djokic@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <718e92355669dac42c682544c451e7cb417b4b1f.1774305918.git.milan_djokic@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1774340985-54EBB303-A4B4245F/0/0
X-purgate-type: clean
X-purgate-size: 516

On 23.03.2026 23:51, Milan Djokic wrote:
> --- a/xen/drivers/passthrough/Kconfig
> +++ b/xen/drivers/passthrough/Kconfig
> @@ -40,6 +40,14 @@ config VIRTUAL_IOMMU
>  	help
>  	 Support virtual IOMMU infrastructure to implement vIOMMU.
>  
> +config VIRTUAL_ARM_SMMU_V3
> +	bool "ARM Ltd. Virtual SMMUv3 Support (UNSUPPORTED)" if UNSUPPORTED
> +	depends on ARM_SMMU_V3 && VIRTUAL_IOMMU

VIRTUAL_IOMMU already has its prompt conditional upon UNSUPPORTED. Does this
really need repeating here then?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 08:35:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 08:35:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260127.1553486 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4xEj-0008TM-By; Tue, 24 Mar 2026 08:35:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260127.1553486; Tue, 24 Mar 2026 08:35:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4xEj-0008TF-8K; Tue, 24 Mar 2026 08:35:41 +0000
Received: by outflank-mailman (input) for mailman id 1260127;
 Tue, 24 Mar 2026 08:35:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w4xEi-0008T9-5n
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 08:35:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4xEh-009gFr-4F
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 09:35:39 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c24cda-2eae-0a2a0a5409dd-0a2a4501d5fc-12
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 09:35:39 +0100
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c24cda-6400-0a2a45010019-d1558029dc83-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 09:35:38 +0100
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-48557c8ad47so6704645e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 01:35:38 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4870f6c0fb1sm16875955e9.2.2026.03.24.01.35.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 01:35:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774341338; x=1774946138; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FR9xS40wB79JHr7ks3FohMw5v1CeULFRL12IUJNh22Q=;
        b=ba/Nj+Li3xgdHLZAbDfgINHYx8c1jnGdtHyXDe8dz2za2mC+dliNur8/mXqRrmSAPV
         fsdRHvNixph7MXtsaArMq/zc26acIqEiIp5H3IY+w/rRhCm81MgUgffZrsfWWsmjkd8A
         Cn1MKPAnhEQjcRl2RS3xIO+nU3tcnV0QWkM5VtopxKu/RMxIqhHLiwPPAiAzygYrmQWw
         8BSRaNcYUrOaoX/nwW8+B/O9Q0SgEHjilAHq9cQ/htJLOo525ly6GbLG1FDUVGe509bb
         mpcbqcKeKshvaeElyrLSKjPUHI9Nom5xncH8G99mo8VMqb1qp6B0BwVD1mn8v7EPHT6d
         c6/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774341338; x=1774946138;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FR9xS40wB79JHr7ks3FohMw5v1CeULFRL12IUJNh22Q=;
        b=f7a15utX/7mFLyptobObfAVlqj/qHXQf3dwfRIqo42AerlKC+uI86VtK8RCrlDYe2C
         L1Jg49WnpmyEACvj55K1odBIBtx+fEMoUjHVVpjDflYqe4WbGj/GXjmtgjGq3UQgoePP
         SqYDjzk1AbR+6gft+3SeAxRsQ1MumALDXsJDPdxswhZXRasPdW6yoicSQvsE0QicY3Kv
         3Z4drKEPx1tNFfkVncdBacZRdsd1shMdx8aOSX9l0lKv97rn4z3rXbJid0qaiCEv6zug
         8RjZHKnX37uSHWNbOZdPH4vwQCZ/0ijilA5+tqH/E7Zo1xl8hNKe/qYpEp89d21vEXGk
         D1Ww==
X-Forwarded-Encrypted: i=1; AJvYcCUBgMDEfHB7SMPaahjNRn+y22nJE4DaAnaZKFszl4K3/mwW8nljuGJpc/NnjlACDr87C0AHC2Y8isk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw22/ZqL/1jhRuTZopCTgtVLo5yzd/2Yy1dA05A3Qe/99X/RSU2
	5nxjXq3XBcDX5UZ4/tGu5a3Owp6wz1P848fQGusuEOCTRLJfu8c85CFWJwvd/mEmXg==
X-Gm-Gg: ATEYQzzS/asi1MNNj34x5/UWxbdCSsLInkc3r3velDv3dCYAaLwLShOxngkCk5zgCzz
	Q+D54JyxueXqv6k9w/QebdEppredyOgTtubEK/yJq5ZLZ2ZvYRpeApVA/eKOjpaRhQURemwnugH
	QZgm7VBXBM50M92L8/a3HVayUsEK1hvxYE6D0bXOsfUfl3+s6hoVRrMezQ60PNYenJVJWfk1lG1
	3Rjzo0lSsIlnnvzdHauJbCOEHg66/A7YmLN50agsXi/xv9rlAPvuNbta2PPeQy7uY4PtuW+mWRr
	iMjckhZfWx8twFYAtZ5eAOdnq5KgUL5HWn6XRTUwXfxZJfTEIgrBelzGf9JCpHf1n9SO1IYtDMk
	H20dexjkI3JyuEYL6Q8LxGgIFIcWu7oyxAwLtUj3TVGCFYr2151jMXVbDZFfUPYIzEgCfMwXRs/
	cqxuILIe6/S6ZiYNWO+KBJ9Eg5A9ChuFFkAPlHrzgQjEuHAqXqNbMIV0WaEU7XyamxvJi/AKTSQ
	xKGNUzCIJE1UHk=
X-Received: by 2002:a05:600c:3b07:b0:485:5ba3:37d8 with SMTP id 5b1f17b1804b1-486fedab1e5mr202109025e9.5.1774341338294;
        Tue, 24 Mar 2026 01:35:38 -0700 (PDT)
Message-ID: <20a55ead-8ac2-4c2d-a898-0856c6a46cd4@suse.com>
Date: Tue, 24 Mar 2026 09:35:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 11/23] xen/arm: vsmmuv3: Attach Stage-1 configuration
 to SMMUv3 hardware
To: Milan Djokic <milan_djokic@epam.com>
Cc: Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1774305918.git.milan_djokic@epam.com>
 <364e3781c041e12343d15ca7a17a420463281e57.1774305918.git.milan_djokic@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <364e3781c041e12343d15ca7a17a420463281e57.1774305918.git.milan_djokic@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d62444/1774341338-8DCFBDF3-61F148A3/0/0
X-purgate-type: clean
X-purgate-size: 1325

On 23.03.2026 23:51, Milan Djokic wrote:
> --- a/xen/include/xen/iommu.h
> +++ b/xen/include/xen/iommu.h
> @@ -311,6 +311,10 @@ static inline int iommu_add_dt_pci_sideband_ids(struct pci_dev *pdev)
>  
>  #endif /* HAS_DEVICE_TREE_DISCOVERY */
>  
> +#if defined(CONFIG_HAS_PASSTHROUGH) || defined(CONFIG_ARM)
> +#include <asm/iommu.h>
> +#endif
> +
>  struct page_info;

Why would this change be needed here?

> @@ -387,6 +391,11 @@ struct iommu_ops {
>  #endif
>      /* Inhibit all interrupt generation, to be used at shutdown. */
>      void (*quiesce)(void);
> +
> +#ifdef CONFIG_ARM
> +    int (*attach_guest_config)(struct domain *d, u32 sid,
> +                               struct iommu_guest_config *cfg);
> +#endif
>  };

Nothing here requires anything to be pulled in, so ...

> @@ -407,10 +416,6 @@ extern int iommu_add_extra_reserved_device_memory(unsigned long start,
>  extern int iommu_get_extra_reserved_device_memory(iommu_grdm_t *func,
>                                                    void *ctxt);
>  
> -#ifdef CONFIG_HAS_PASSTHROUGH
> -#include <asm/iommu.h>
> -#endif
> -
>  #ifndef iommu_call
>  # define iommu_call(ops, fn, args...) ((ops)->fn(args))
>  # define iommu_vcall iommu_call

... keeping the #include untouched looks entirely possible.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 08:39:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 08:39:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260136.1553493 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4xHz-0000p7-Ok; Tue, 24 Mar 2026 08:39:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260136.1553493; Tue, 24 Mar 2026 08:39: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 1w4xHz-0000p0-Le; Tue, 24 Mar 2026 08:39:03 +0000
Received: by outflank-mailman (input) for mailman id 1260136;
 Tue, 24 Mar 2026 08: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=iLjC=BY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w4xHy-0000ou-3J
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 08:39:02 +0000
Received: from mail-wr1-f52.google.com (mail-wr1-f52.google.com
 [209.85.221.52]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e72bc813-275c-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Mar 2026 09:38:59 +0100 (CET)
Received: by mail-wr1-f52.google.com with SMTP id
 ffacd0b85a97d-43b4915161fso3511142f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 01:38:59 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487116abe8esm36738445e9.4.2026.03.24.01.38.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 01:38:58 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e72bc813-275c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774341539; x=1774946339; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yrIK0cH18caRAYklj3a6M1/C8j/72dYRV5JOC1qRuBs=;
        b=e9DVRgD2pvT2UEVPEU+AFjZ5/NafpGZtX6lV9yyC2pf8qoA+CbNKUKjC0+F6VM1zuK
         2JdHvtxaYrNnwi6sijvel4hVTmaVbRavAwxx4kdhCW6fwD3OxeGQUF0SNVJ4Y5BXaLnm
         Y2758se05K4rarfh2C3Uylt6ex/9sO5QBnX3xFHZT6CVnWLHDCt3pP3Nw4h+ENKvI2bn
         nbWjrSuZIXawmBfFxY0+LeZDsw3Xfj+qeEL6bkN2Oajgt0Cc95WU78D7tn4yoUEv1TZO
         PRXR8Crxboy4j1ij4B6wH5HXU1b2qhYZO/TRKQNtuybSf3MHuAy3oBWSvNsv9bJkMSjp
         04sg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774341539; x=1774946339;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yrIK0cH18caRAYklj3a6M1/C8j/72dYRV5JOC1qRuBs=;
        b=kBOA7Mmf1fkfNujeDsyFbObmK11jwXDdZqnlGx1V/ZwFHBUBZ6xIwhWOjs+4IbsYB/
         /AzhKeVwqr7cMjRn3iXlfRDfRsgSKBGy/1Pufo+RV+jzeY2iLGTGa2bCDVj0PlOXglQp
         BSeb944G7tl/Ned+MyH1fo09kHbXbOYKtRjqilsI56NNRL/3s6getJLRaIR60qK6MnET
         tsJdIndSCZDI43B6OA6HAqESVBzi1yjgYkXQ0zNBkjeqhwi50bEwZtvngyomZ1fumEbg
         ScGSSEhEXrr192LC/W66l681MImtnOPLVQTTTOMahxFShsFNHmVP6OPf4dCcv0uLin9i
         pfKw==
X-Forwarded-Encrypted: i=1; AJvYcCUIjHu2/sxZizXrNjvUXIgJ2QGN+PyCsZU3ztQkrQxBSo4V2h/R5hklenCrr5WLrxZvy6QABGLIWZw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyqPE5QDhG9fU5zzMXB8y7Xyups2bNNK8LmcdydQv8SebHypeIT
	QLvMjFeZnAJntceoptnkrGBExZqnwOIdsOWn6GD+hpyHiyUdNeymb5Sv/F0M+AQmOQ==
X-Gm-Gg: ATEYQzztl6bSnFrJ1gzvDV8k/4Xa5iBAXk31whDWJBRnv1T6AOtSR9u3C3WMvlX3dYl
	jgk1gYAKzj2jOqk/ylJON8GQz5mkpygjURgL7namQga+TMVmMRlCWsptJFnrtndU7n3gWC7VCyO
	jYvKbg0A6T96gagkJ2CWSTmJKjTTCYw2uWenLN3sRljnPZDcgDM0Z7+gSW2TicnqFSbWmY2nLD2
	ow2l2ESmpLbUk9ckeKCiGtkK2uazfZ3fTo+48zXAD+RIaXX36zlC12CDmViPDUZMfZ/iL67HZDV
	zSBTpi7ZSjukc+iUkWSEOXhdUxLipMx9JNmvM++VD87wT6vwii9XLHCikbyVY7KxsPFnuhdSHtq
	LYoHB7Dm5271LHkJoY+P5fJkK0UxpLPufiDH/3Z33TAwPVRDZDtzXkVc9fhq9bfFkOvo1Hrw5G9
	HfmvlmtU/ShdgnVMULExoo1KDOHMtSmvzSytypIXBD/2/k2pN7SB3PQsyKCoIczn4ec4a00bHkJ
	ziteZub4fzKNlI=
X-Received: by 2002:a05:600c:3b23:b0:486:fdc6:1c0d with SMTP id 5b1f17b1804b1-486ff02da9emr223643025e9.22.1774341538867;
        Tue, 24 Mar 2026 01:38:58 -0700 (PDT)
Message-ID: <aee68296-4a99-4c9b-8bf8-58477ed19d82@suse.com>
Date: Tue, 24 Mar 2026 09:38:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 22/23] libxl/arm: Introduce domctl command for IOMMU
 vSID/vRID mapping
To: Milan Djokic <milan_djokic@epam.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1774305918.git.milan_djokic@epam.com>
 <9f722baf917fd47227b636287dd825fa1d695ca1.1774305918.git.milan_djokic@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <9f722baf917fd47227b636287dd825fa1d695ca1.1774305918.git.milan_djokic@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.03.2026 23:51, Milan Djokic wrote:
> --- a/xen/include/public/domctl.h
> +++ b/xen/include/public/domctl.h
> @@ -1276,6 +1276,22 @@ struct xen_domctl_get_domain_state {
>      uint64_t unique_id;      /* Unique domain identifier. */
>  };
>  
> +/*
> + * XEN_DOMCTL_viommu_alloc_vsid_range
> + *
> + * Allocate guest vSID range and
> + * establish pSID->vSID mapping for target range.
> + * Allocated range is continous
> + */
> +struct xen_domctl_viommu_alloc_vsid_range {
> +    /* IN: Range first pSID  */
> +    uint32_t first_psid;
> +    /* IN: Number of vSIDs to allocate */
> +    uint16_t nr_sids;
> +    /* OUT: Mapped range first vSID */
> +    uint32_t first_vsid;
> +};

Padding fields want making explicit, and want checking to be zero on
input.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 08:48:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 08:48:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260143.1553502 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4xQl-0002bf-JO; Tue, 24 Mar 2026 08:48:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260143.1553502; Tue, 24 Mar 2026 08: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 1w4xQl-0002bY-Gq; Tue, 24 Mar 2026 08:48:07 +0000
Received: by outflank-mailman (input) for mailman id 1260143;
 Tue, 24 Mar 2026 08:48:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=iLjC=BY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w4xQk-0002bS-NA
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 08:48:06 +0000
Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com
 [209.85.128.45]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2ba540d4-275e-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Mar 2026 09:48:04 +0100 (CET)
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-486ff201041so30759485e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 01:48:03 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4870f822b83sm21779355e9.4.2026.03.24.01.48.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 01:48:02 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2ba540d4-275e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774342083; x=1774946883; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=UmCZhQAJqSovU6WqWg7VkN4UcD2qOf6u5FwdKn5fpKk=;
        b=YFXRb4eVmjngCOT5oznAt9Ip1iQlBzTdLx3S2rL0wFyKf36xJWTGzklGWZvITbAYPY
         VrEucfVgJbiJYdHthnHFmt6qJEUg40qEwLrT3AwghDoKrG2bqN0p6Dv0quyKzTo68+nV
         5ZR+TA+7tLtklXSxDh9c1v9gfwwsJMVAemxVOQ8LDO5j8EXNC7dzAiKcmwyTbRDEcpzE
         7GsJ1ljHnYyvxd7EVGhI0c4vKYK1i5ubD/foEmw3j5yIPrzEcpTbkqzdIQL2qo1M4yVr
         0MlR6a0yj+k+Y810uPXzyNi33nHmYNJQMyRquC3BCuLr14L501ZdB4yi9WeR3sTxRzCi
         ACMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774342083; x=1774946883;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UmCZhQAJqSovU6WqWg7VkN4UcD2qOf6u5FwdKn5fpKk=;
        b=rFgvMqW3qDy6wEIqV7LrHA+18jj0XxV/gr2U1vo3z9G2sxYbj1oAwHfRjh+jSW13Ra
         5oDpfW/L191YN15V0enRVuOHyCEHEa+PeJwpbMKeQCLps0YzUcYfvqVNEvZQs+ltHp0f
         SLDzlgWDJU5k3FgPZbtjY0A+NH1rkKFomCg62BW6+4vWfcLC9t0KIe6ZxiJ3dUYZrc3C
         vFWWFl9lNjskgwS0LxbJqfyGVQTa3HuQ/WQxoE3nGq+Y8IEOucmoj/7TDFAz5gLbrF2X
         9iuIdu5ah5wX6+HrRGjxNJRnU9iqJFOoE/1jkB23zFDM/KcUqjcY6hECLFFDhbljcPC7
         Buxg==
X-Forwarded-Encrypted: i=1; AJvYcCXWhcRlR51A6MXuSrdq8jgDpIgFESdGYQ6yFCie45UDnBZnU9VGZU1O7gv6IMi0Xl2Cdh2oCAzFC3g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwcKDTL7ornACg8yx1rKq0CacqMvRL9HTzzIlxyAe0vMN54DmZM
	DkJAXNY9IuhVMMI9hBjGACFEsWeyRyLNx5K/2R1pM/BAbJyypumBgiD6L/9R4q4AKQ==
X-Gm-Gg: ATEYQzzMV4cwPsU7ABTwO6nF/8ogpKfBvQIngf3N8eiXTXV7PeTCBBcy7JoctK9RAnF
	nGZsTm7+86IK8YqZTsnmWIEiY/ERhhTfziEmfAkphvGlvxMYeaFeMRe4UszgEfw1vf5OUyePN+R
	quTOce8mwPp7sqdv4IDKVlE7bae2YWB7ns17jMwkyp9SAnFJow9jx/HH/hxgCtYH9k/wRy6DNIt
	LxPY8ps6q3H5+25wJuC7rVre+MP8kHDfqAtmbDS2I2Y9oWT/XjegIuvBY+VQAjsWJJH+CU+2fhL
	3eNgbB2TUZrkXOpD3J1IWTZehDdIV1zB2lfqDDP6lePsPKs+a2YUwI9utYX/HTrycgCDavHym2p
	g+YaCQYDHKJlXLfqR9QDRy91WsmcCSCfQd/onpbwYKvqNY4AZ7EgPJTmn+lwbbb8UPyjAis4Kor
	mEwQV102z2jbBbbXjIpB3RlzVqRIUsO1EUcFRChbu4fNeUjiIDN9pzbbwN3b12bw56rXj1cr3G7
	Mwv6/mgcVZ5Q58=
X-Received: by 2002:a05:600c:8710:b0:485:49c5:8eb7 with SMTP id 5b1f17b1804b1-486fee049b8mr204042175e9.22.1774342083150;
        Tue, 24 Mar 2026 01:48:03 -0700 (PDT)
Message-ID: <d3082258-6d5c-45d7-a013-9c78afdea77e@suse.com>
Date: Tue, 24 Mar 2026 09:48:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 04/23] xen/arm: vIOMMU: add generic vIOMMU framework
To: Milan Djokic <milan_djokic@epam.com>
Cc: Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1774305918.git.milan_djokic@epam.com>
 <f20ce7b6b230ee234c9a278a6d69330f1abb03c1.1774305918.git.milan_djokic@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f20ce7b6b230ee234c9a278a6d69330f1abb03c1.1774305918.git.milan_djokic@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.03.2026 23:51, Milan Djokic wrote:
> --- a/xen/include/public/arch-arm.h
> +++ b/xen/include/public/arch-arm.h
> @@ -330,12 +330,16 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
>  #define XEN_DOMCTL_CONFIG_ARM_SCI_NONE      0
>  #define XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC  1
>  
> +#define XEN_DOMCTL_CONFIG_VIOMMU_NONE   0
> +
>  struct xen_arch_domainconfig {
>      /* IN/OUT */
>      uint8_t gic_version;
>      /* IN - Contains SVE vector length divided by 128 */
>      uint8_t sve_vl;
>      /* IN */
> +    uint8_t viommu_type;
> +    /* IN */
>      uint16_t tee_type;
>      /* IN */
>      uint32_t nr_spis;

You're altering structure layout, and hence an interface version change is
needed. Adding at the end would be less intrusive (no real change to layout),
but still would require an interface version bump due to the lack of
checking that the 3 padding bytes are actually 0. (IOW to help future
changes, you may want to add explicit padding bytes along with the new field
you need, and check them to be zero.)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 08:55:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 08:55:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260151.1553513 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4xXW-0004DC-AU; Tue, 24 Mar 2026 08:55:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260151.1553513; Tue, 24 Mar 2026 08:55:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4xXW-0004D5-5m; Tue, 24 Mar 2026 08:55:06 +0000
Received: by outflank-mailman (input) for mailman id 1260151;
 Tue, 24 Mar 2026 08:55:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w4xXV-0004Cz-K2
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 08:55:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4xXU-001Hnb-RB
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 09:55:04 +0100
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c25166-bab6-0a2a0a5309dd-0a2a4506d1c4-20
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 09:55:04 +0100
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c25168-3034-0a2a45060019-d1558032d1e6-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 09:55:04 +0100
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-4853e1ce427so38526815e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 01:55:04 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487116f173csm42556465e9.2.2026.03.24.01.55.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 01:55:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774342504; x=1774947304; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hUFnKR3WYShIN8354QNofRdIMmgGO/69e0L2uV7um+o=;
        b=OFslypEECVbTCUqJB5UH3g/ObmfF2dPzlwBbex9NMGy6dWgewAQW1zYBBXtUDOMcDq
         yqtkP+CSnuj2WBOutvhTru1sxaRjMAHYxzNsUW9JSV83OUq0GkckHJkSq0u/wUoJY5dX
         4xCpPDPo7yujcKu6R6p4wr7fZZZCWbBWzZTNf8Iq2Rk9UzcZphev0Is7Lk0vQZ6nLLsB
         Ij647gjOElowg0bsa5SHGvvf4BrBo+65rQWSBZDLatth5cHMesLKosoFHHSH8jdMZ8SS
         Mqhd9uGRVwtoVAmSFYXEP8eUbt5ymj4f3pZZsQIE8QJVNKDmWVcZ/bTBQjGyIYSGytjJ
         ExHQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774342504; x=1774947304;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hUFnKR3WYShIN8354QNofRdIMmgGO/69e0L2uV7um+o=;
        b=PnSOAVPR3TPcHOlqxmjURe4PkVtuHphudfZF3DbAsf71m11l9mtI8mabNFzTGuIqOI
         bbnF37gve8txn8k7ZzOJSYkfLPMRZtWQ0eCgiWUQKA2zmjCcOiRJyq4z7VW6K1gofpx9
         jKLo+Yb87Cy/trrat/PixUFPX0XWk2B+QSP4zCloHqy/CqrjRRu/vQgHXLYnBhWhnf6X
         OjH3fEMqG62EFnwrcFaz3y94nRhMkuzkwytAS5G0hdUlUsOv8nFfIJTcvlKleMlt6AtE
         jcGAok+eJv0zWHm1/ISBhuCQ+qytCZX3utMs5/caWDfdas+5RZyhIvU2NkVf84vHjn5a
         LzYw==
X-Forwarded-Encrypted: i=1; AJvYcCV4RLDpWqzME9EGAFLzk1QoPNBncopuI7CDzyKhgser0Nkp40m1w6tvtxxvq6Ijz7AtndxvFGP60TY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw4aeBv6jBiqPbVEAYSiY/JinLrs4ICuytJmL07RQKxDGfU4Ir9
	Q7eJQWbKD01dwFBPB78KqpyPZUmhv5clKeO4wYti3xaOUawhfiEk99q6Y812W6+XLg==
X-Gm-Gg: ATEYQzwuTBinnuih4stwXuvNojPzsdfRm2owEWN4OhqLr+ZeP23dwpLdVca12EEDzpA
	FZ8VJskWMBgUmFpkJYOpcjl/4XJnXFoN/nF8MfG+qu1ey2gK7v2zs++iYQEiRNkAlL7+qqQEnVf
	58KnSHoLwVTAJxXc7x0lzv9UwJQ02u1Cdml6/ywnXXfN2Da2/VHUQPBS/moGUjAH4oFcNn2ZWnJ
	VFaROcx6o2LC38JQMLt9C3IiLosLDCvgatzWAMNYcPEtvjTTi0cLOczlxAoKZrdUrsl4EjRQr7i
	ic6m66bFf92UfUS1+d+4RBpc+Q4U9UMqtIVuhonCOe0PODBHh+9HLIma3Wl+pzShYpiCK4A9Fo2
	yJrPK5B1qWOVCj6SQLbqlPt1B/M4td/lHBr/zDVJEeL9uensjsu1akpjGP+9z+SNbbmo7miEFk4
	S/h3O+uDtToum+Wzfw4ATJNwl1uurkCGZHyilUVglzwvGzkzvSNdh3nwy29++fF1aoaN0CNddca
	mc5S+0jA17FW/Y=
X-Received: by 2002:a05:600c:c083:b0:485:3f72:324d with SMTP id 5b1f17b1804b1-486fee0481amr164606415e9.14.1774342504009;
        Tue, 24 Mar 2026 01:55:04 -0700 (PDT)
Message-ID: <48655cc4-d892-404b-a107-787539effeea@suse.com>
Date: Tue, 24 Mar 2026 09:55:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/6] x86/vpmu: Expose up to 8 Intel event selectors in PV
 Dom0
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.1773160025.git.teddy.astie@vates.tech>
 <715834969eb198850e1fe0d1e66046f929c8d658.1773160025.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: <715834969eb198850e1fe0d1e66046f929c8d658.1773160025.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1774342504-7A5911C2-649187A0/0/0
X-purgate-type: clean
X-purgate-size: 847

On 10.03.2026 17:44, Teddy Astie wrote:
> Most (if not all) Intel CPUs starting from Sandy Bridge have up to 8
> event selectors per core, which could be halved per hyperthread.
> 
> However, current PV emulation logic doesn't support up to 8 event selector,
> leading to errors when trying to access them, hence, preventing Linux from
> driving the vPMU correctly.
> 
> Make sure up to MSR_P6_EVNTSEL(7) is usable, which is the same upper bound as
> used in VMX code.
> 
> The check if the event selector actually exist for the hardware is done in
> core2_vpmu_do_{rdmsr,wrmsr}, hence we're not allowing to access non-existent
> MSRs.
> 
> Fixes: 27c554198666 ("x86/VPMU: add support for PMU register handling on PV guests")
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>

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



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 09:11:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 09:11:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260165.1553522 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4xnN-0007YO-RG; Tue, 24 Mar 2026 09:11:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260165.1553522; Tue, 24 Mar 2026 09: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 1w4xnN-0007YH-Mi; Tue, 24 Mar 2026 09:11:29 +0000
Received: by outflank-mailman (input) for mailman id 1260165;
 Tue, 24 Mar 2026 09:11:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w4xnL-0007YA-TM
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 09:11:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4xnK-005q6L-GW
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 10:11:26 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c2553a-5cb7-0a2a0a5109dd-0a2a4502e3b4-12
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 10:11:26 +0100
Received: from [209.85.221.50] (helo=mail-wr1-f50.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c2553c-63bb-0a2a45020019-d155dd32d189-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 10:11:24 +0100
Received: by mail-wr1-f50.google.com with SMTP id
 ffacd0b85a97d-439fe4985efso3253841f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 02:11:24 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b64714decsm32874759f8f.31.2026.03.24.02.11.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 02:11:24 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774343484; x=1774948284; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LUYv0lo+bI9qydu+AFKFxYiD/hyH7p+5ptOyBoQnNas=;
        b=DrjFa8POBJOH60U0f0gTtfZq6qtpZBJy7lQBQbUJy89Z3f0EvvlWJJHZfebalfwX1c
         FOT/ewdTH7OzMyzJU6haC6Ttu+Zrl/ui1xbgkXNc1cAGDQk29ChuM9cfKrAllVKoTy/g
         Wgkzy4w/GVKkz1Y7FIWdQbVrglbZ3wg/TZtsoho7OtLLlBo3116uYY6LVZL18XD9xGko
         dbMw3sXLgr1BY7olPX86HTWj32zzQC2n6NV8G3TJrMLdxNEykrM7LgsN1YNGdRQloLWD
         8hFW8sF0mbaC9BZjD98Mw2X6BMjwMCnKM+L6jLJ02t9nYrrNmZ4n12TquEe0AsxzrmBK
         fNUQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774343484; x=1774948284;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LUYv0lo+bI9qydu+AFKFxYiD/hyH7p+5ptOyBoQnNas=;
        b=WcTSeF7kywVjHnag4yzLAto7ueA26kMCiP3Bo4z/6vVAUSR3iJiKwM8N1RmlHIf0za
         tD8uFBAXZZBf2Ukraxnas5pKV/CbFwGmzSeowoiAsjXdhyWFoKmuiW22h4kbHZBCnAWX
         uATrx/M3BibyhHGYDMsmWP8PVHrOhILQjcRY1+DesbHXeNOxEX2ltwvMN16Ufmh7/sgP
         ARVhXg1P25Xi9+INsmlfVU9ElIp2rnW2LgpuMaX66tFPDTfP8bDHYnSLXfGP15VGUgiZ
         /pYsOuWpVQAImOtP1K5c/lbd+cP2SR6QKlOAbeopXCQjqlSGMuL8tkXkHrHO+ijqS02Z
         2Emg==
X-Forwarded-Encrypted: i=1; AJvYcCV+P4kloJhrzgXP7PO1vIzs126ZmUrYrq7H6E44JjE2uCZ3IYAs3bebYzQxRwU0+aUaHcbQNRqKEII=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx/+DUb4XxkTGfn8xF6QDkkOyW9l0ApUfbN2GmP11Ei5HDCceH9
	hJxB1PaHq+o4OhsSrALThKNiNlhzpqroDuo6oE2Gj+UCy5NpG4suZgi+0cMtHzxkFg==
X-Gm-Gg: ATEYQzxhanSnZSvR9VAhyZ818VWXwMxzqfAWbtrpXjETPwE6wyPmk7nWlfVLuWY2FEm
	A5Zxl1V5Z4BOoMDi+hA0mxlNi+bTVhli27xlc1wuFKLa198F9KvsUzDkRSN/+Rl1jjqh8UKHZYK
	YlO1FIzaEoBDitsxI9lePkNLBoFkIiqXxd6Aos8IqbA6pMwMLRjqbsxhyVsY11wFQei8wopaJbj
	C/fPWmXy36RPMSiWYCxQvYnl6iqUo4+yuXC+b/90DbmqSNXMDsqkdWPMNV/gxlANO6qhQOPwgO9
	6U0WtYakDSgDaZEClFJ3eyIWG8c5Y7ysrkQ1k0G5RrQJWPECu5SK6xKwatF3QkxWSX2fq15mHen
	0Zz3Q4vsPkQhaeUyYsjIuQX24cBoRNqxwQGSdzb6jluIyROHax7KWaTP+moLbWzf3iii1HzO0YS
	s1ypnK6M0BAzRUB81fAuYdh+duxSNk0s5KPBU6CKV6T12h2wadrh8EPXQRwxUlhiPyEUBeqWRxw
	CuUIoJCeQbPJ5g9sRN2fXD7GA==
X-Received: by 2002:a05:6000:2484:b0:43b:4396:674c with SMTP id ffacd0b85a97d-43b6427d7a6mr22588856f8f.55.1774343484304;
        Tue, 24 Mar 2026 02:11:24 -0700 (PDT)
Message-ID: <7e4be441-c0ae-498f-9fdf-e5ea8bf11e48@suse.com>
Date: Tue, 24 Mar 2026 10:11:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/6] x86/vpmu: Expose PEBS and DS area in PV mode
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.1773160025.git.teddy.astie@vates.tech>
 <0762ceb722be83bbdf6703cf419debf30609feb0.1773160025.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: <0762ceb722be83bbdf6703cf419debf30609feb0.1773160025.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1774343484-BF48FDB8-C73F42A2/0/0
X-purgate-type: clean
X-purgate-size: 750

On 10.03.2026 17:44, Teddy Astie wrote:
> I don't see any reason for them for not be available, especially
> since core2_vpmu_do_wrmsr has PV specific logic for MSR_IA32_DS_AREA.

This is really dangerous: You allow PV domains to control whether the area
is actually mapped. It lacking a mapping can, iirc, on at least some CPUs
result in a complete hang. I do, in fact, have been carrying a patch to
completely disallow DS area use for PV, eliminating the misleading code
you refer to.

Also note that VPMU_CPU_HAS_DS cannot be set for PV vCPU-s anyway.

> Fixes: 27c554198666 ("x86/VPMU: add support for PMU register handling on PV guests")

Not just because of the above, I'm pretty sure a Fixes: tag is inappropriate
here.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 09:23:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 09:23:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260174.1553529 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4xyV-0000z3-NV; Tue, 24 Mar 2026 09:22:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260174.1553529; Tue, 24 Mar 2026 09:22:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4xyV-0000yw-KP; Tue, 24 Mar 2026 09:22:59 +0000
Received: by outflank-mailman (input) for mailman id 1260174;
 Tue, 24 Mar 2026 09:22:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w4xyT-0000yX-NT
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 09:22:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4xyS-009twv-LQ
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 10:22:56 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c257e9-2eae-0a2a0a5409dd-0a2a450a951c-22
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 10:22:56 +0100
Received: from [209.85.221.48] (helo=mail-wr1-f48.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c257f0-1772-0a2a450a0019-d155dd30cc27-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 10:22:56 +0100
Received: by mail-wr1-f48.google.com with SMTP id
 ffacd0b85a97d-439b94a19fdso3447601f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 02:22:56 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b644ae016sm35180325f8f.4.2026.03.24.02.22.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 02:22:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774344176; x=1774948976; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Yzkp1NEvaHjOs5nRun5R6Ke0GqBh7Fy7LEq1D+cgpBE=;
        b=WocfXggT7WE2zResTMjsmyHHinrd3uVg6JerTtsVIcXNFl8oMx2b1cLCOisdM2x7/C
         OyoCJW/r57MlaInObGJxbAmSBwHtFlyLiYbMjwZN+Gptc6DERDle16+bhkEXBvFNMBnt
         wqIE6tZJyuQNBQcVOA2J9uUmBpLfGy0jVIxNmcPrWwTX5bzCUoJ65Jma3cOuYQg3jCO5
         eBZ7mJnu8AGsTW0xt3n75UR3Vec4quVKfE+eznZZLElbi2NEKc51Xp6hFeSkEYGJv4O8
         hhJCTkvNLX91P9Bg5mu234P5unpucTT5Z1ttmorW8rzpRtTPBOG9P06ByYLDwodzLaLu
         vgug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774344176; x=1774948976;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Yzkp1NEvaHjOs5nRun5R6Ke0GqBh7Fy7LEq1D+cgpBE=;
        b=DJf28kzwjIQK9nXVuqyZWsrPaWufrfqHGA7Y3jT4DDz9oExGYACxJnuwkIXycNbEm8
         s5U4uokhQH+sCKGw2IQboCSxIfBxRUOvSDmkf9PYjAWqv7zBmIhpDkK/apmfI2qhnhfe
         XkzNrWdvXfR6+D+ARNbKM/vB7JQ46oFqeFLoXN+U6XXQ1gDiBcCe8Oydck2GATQwK23a
         KFFy4y4QjMhcGMO1l3kVHLae2ZuBBuf7eZDBQF8W7+oBZdxJ68uzEP8OVUR4zBTITZe2
         QKTS0g8iWYmlE2g/ilOdhyIpQgloDDkZVIbB6cvsuRclq9HWNmE/9EqrgVH+1YJ6CXUA
         mWDA==
X-Forwarded-Encrypted: i=1; AJvYcCWmPcCtWmG4W4JoQs0qdM4HE1oPLjG6J10vKMMUb102s9e4PI+LTxSnD9cI9atvyZKOL8qAqUmgMEQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwLDjTxokgRhwAGF/AmW3Z1Z2lHVfI0JU9BtCFtFkLt14A2RR44
	Y6mm7MMVSaKPjCcx0AOVKq5K7VVhdmPityq6C2tTjaruFcg201B/HNWaiKVG7kQbsw==
X-Gm-Gg: ATEYQzz9vpfknv7psHMe9EBDnMC52+hVM1dqZwxdFDwiRR9E0XEhWugBm2jvJOfVmoA
	E+4ryFZmrh4XkUmHRKJ3RTjabkrCNSUPU5Ur0ohD6loQ6T7GAGBAXNXB3kd6PHmUGhB1Siwlnuy
	MBENPTwAMQNnFugqHydS3FtxIBIUyaz4xYVX1hDHQwTY5Ij7BVuN5r1yP+DeVl1qcuLjqR9BD9J
	5tIh2WfHMAkwuLzmhgR3jyAiOMoBHl/S/aPB0ZFXan9TglQH4t0H0Lqut3jgrhcvBCQb+SSm0kD
	a9HbP5j6FFSJgxU5qnpxSVgFT+X/VA6bJVRa3QjWHSS2OVz2U5zN2BFVrpdXOyGfDo2yS7LVI5E
	fe9FGMKBxTuabnAQG4DPOUr9Jww+Ii4b6Y7WIUWVMcW3ZbsGb/4MxnINJDBsGNxDvXZp+h1+98Q
	ln/iMcboU8NBwVru65iTz7dMHJY3jILSJDSn2QuohX81+ueQJFPkDnhGq0QOhBaAQMYbCxvFjJ2
	jzhjkvDdRTBc+E=
X-Received: by 2002:a05:6000:2005:b0:43b:4ae5:d7c8 with SMTP id ffacd0b85a97d-43b64233efamr24001095f8f.2.1774344175876;
        Tue, 24 Mar 2026 02:22:55 -0700 (PDT)
Message-ID: <d7438af9-1aad-446b-bd80-7d9e8f955cdc@suse.com>
Date: Tue, 24 Mar 2026 10:22:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/6] x86: Define some Intel vPMU leafs
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.1773160025.git.teddy.astie@vates.tech>
 <83a573dcb365761c0f089325365090b6f963fb03.1773160025.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: <83a573dcb365761c0f089325365090b6f963fb03.1773160025.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1774344176-50C84900-A95C430F/0/0
X-purgate-type: clean
X-purgate-size: 1115

On 10.03.2026 17:44, Teddy Astie wrote:
> --- a/xen/include/xen/lib/x86/cpu-policy.h
> +++ b/xen/include/xen/lib/x86/cpu-policy.h
> @@ -162,7 +162,15 @@ struct cpu_policy
>              uint64_t :64, :64; /* Leaf 0x9 - DCA */
>  
>              /* Leaf 0xa - Intel PMU. */
> -            uint8_t pmu_version, _pmu[15];
> +            struct {
> +                uint8_t /* a */ version, num_gp_ctrs, gp_ctr_width,
> +                                event_enum_length;
> +                uint32_t /* b */:32;
> +                uint32_t /* c */ fixed_ctr_mask;
> +                uint32_t /* d */ num_fixed_ctr:5, fixed_ctr_width:8, :1,
> +                                 anythread_depreciation:1, slots_per_cyc:4,
> +                                 :13;
> +            } pmu;

Style-wise this looks to follow e.g. the cache leaf, so perhaps okay, even
if I would have preferred you to follow what we did for leaf 6. The named
boolean field, however, wants to be of type bool. And then the unnamed 1-bit
field really wants to be 2 bits, for anythread_depreciation to be bit 15
(etc).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 09:28:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 09:28:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260182.1553540 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4y3R-0001k7-8d; Tue, 24 Mar 2026 09:28:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260182.1553540; Tue, 24 Mar 2026 09:28: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 1w4y3R-0001k0-4z; Tue, 24 Mar 2026 09:28:05 +0000
Received: by outflank-mailman (input) for mailman id 1260182;
 Tue, 24 Mar 2026 09:28:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <bounce-md_30504962.69c25920.v1-e48e8c2345b1464b8871a0896651f48b@bounce.vates.tech>)
 id 1w4y3P-0001ju-Ns
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 09:28:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4y3O-00DcvC-UO
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 10:28:02 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <bounce-md_30504962.69c25920.v1-e48e8c2345b1464b8871a0896651f48b@bounce.vates.tech>)
 id 69c2591f-2eae-0a2a0a5409dd-0a2a450297b4-16
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 10:28:02 +0100
Received: from [198.2.180.47] (helo=mail180-47.suw31.mandrillapp.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from
 <bounce-md_30504962.69c25920.v1-e48e8c2345b1464b8871a0896651f48b@bounce.vates.tech>)
 id 69c25921-63bb-0a2a45020019-c602b42f3a4e-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 10:28:02 +0100
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-47.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4fg4TD5J5ZzPm0Vq1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 09:28:00 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 e48e8c2345b1464b8871a0896651f48b; Tue, 24 Mar 2026 09:28:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mte1 header.d=mandrillapp.com header.i="@mandrillapp.com" header.h="From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"; dkim=pass header.s=mte1 header.d=vates.tech header.i="anthony.perard@vates.tech" header.h="From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774344480; x=1774614480;
	bh=xySpiGsL6jhSgBQryanlxjULqiUOOXBfzlvPnW3Iw4Y=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=NPp7ltawkHhYbUxk/jmORm3ttGgOE0Cnfrv44zUgTeukjOdTn8t2SL+or/9kD6T0T
	 +WHAHnmnjMIGvXjUDDARaCwWHcSp9kElutNJ5r9Qwp3BmRdBG/l5a7qL1F6/y92/Vk
	 oISBy2XFUnLR03i1ZWax9IP+3FH3U6XdEfg6LFehJyyMUbIlHPl+jfNj6hZMcJvVko
	 ZkL0skAC2udiifTf+GqLLV2ib8mXhDwLfmtSzAuELeGB8mwX1KdwCNTGCk6LEixyLa
	 xqniW/g92zKpdYyLkXw/agrPXnA9+zgRs6PYZWrEnRswrpbEjM2KaXCLaTXhePzQYb
	 JLH1oiRGiWIvw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774344480; x=1774604980; i=anthony.perard@vates.tech;
	bh=xySpiGsL6jhSgBQryanlxjULqiUOOXBfzlvPnW3Iw4Y=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=o4sK16TJtv3scZI1Vny5HgKi4f1jWzDj+jcg9cjVc6GX+oSRY7i3KIfEcR1799NK4
	 X2EKoDIBN0aAAcnrQLzUd6P36yt5T8GS515CLNUE96P/T2/QLAAvKXqaGHujDk7Hox
	 NrQ8hwhcKHSEsbOVah7MmYVdcXj+BosD0mttAttu9Jpa6IpqC6j6CEDb0J23hIYie7
	 0cB/IjTBy0+N672oSJy4bOpTfAUK9a0Dm2LT8p9cs47pFlCMhT26rlaen3vKSsatt9
	 VXPhWAoY/sIeglxDCIpN1DTzxhE9czjLyXMcZUCciJmZLa8X24r93k5oHT3UTljr6R
	 zZgvJYqODcYKg==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=200/4]=20Xen:=20Add=20Q35=20initial=20support=20for=20HVM=20guests?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774344479469
To: "=?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?=" <marmarek@invisiblethingslab.com>
Cc: "Thierry Escande" <thierry.escande@vates.tech>, qemu-devel@nongnu.org, "Paolo Bonzini" <pbonzini@redhat.com>, "Richard Henderson" <richard.henderson@linaro.org>, "Michael S. Tsirkin" <mst@redhat.com>, "Eduardo Habkost" <eduardo@habkost.net>, xen-devel@lists.xenproject.org
Message-Id: <acJZHpw8tcTMPpCn@l14>
References: <20260313164649.794591-1-thierry.escande@vates.tech> <abVtsK31t9tWgsaY@mail-itl>
In-Reply-To: <abVtsK31t9tWgsaY@mail-itl>
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.e48e8c2345b1464b8871a0896651f48b?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260324:md
Date: Tue, 24 Mar 2026 09:28:00 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-720697/1774344482-BDC9BDB8-359DE2F9/0/0
X-purgate-type: clean
X-purgate-size: 1782

On Sat, Mar 14, 2026 at 03:16:15PM +0100, Marek Marczykowski-G=C3=B3recki w=
rote:
> On Fri, Mar 13, 2026 at 04:46:56PM +0000, Thierry Escande wrote:
> > This patch series introduces Q35 chipset support for Xen HVM guests. Th=
is is
> > based on the work from Alexey Gerasimenko (See patchset [1] for referen=
ce).
> > 
> > This series does not implement device passthrough as this will need mor=
e work
> > on the Xen side to support multiple PCI buses. Since Q35 chipset does n=
ot
> > support device hotplugging and with current Xen mechanism for device
> > passthrough, they have to be plugged to a new PCIe root port, i.e. not =
the PCI
> > bus 0.
> 
> I always found it weird that Xen does hot-plugging of PCI passthrough
> devices... Wouldn't it be easier to change this (connect them from the
> very start, via QEMU cmdline) and declare hotplug as unsupported (at
> least at this time)? I realize it's more complex change at the toolstack
> side, but overall may simplify things and maybe even improve
> reliability.

Skipping hot-plug on Q35 sounds good to me.

I though we could keep using QMP to do cold plug, with the experimental
"--preconfig", but "device_add" isn't allowed :-(. So yes, doing this
via command line sounds fine.

In libxl, we might be able to transform the json for `device_add` into
the command line counterpart for `-device` fairly easily so the argument
are only generated in a single place. Then we could skip the QMP
"device_add" in libxl when it's already done via command line.

But looks like XCP-ng also does QMP "device_add" for passthrough :-( but
one step-at a time.

Cheers,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Tue Mar 24 09:37:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 09:37:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260190.1553547 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4yCr-0003XA-3E; Tue, 24 Mar 2026 09:37:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260190.1553547; Tue, 24 Mar 2026 09:37: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 1w4yCr-0003X3-0T; Tue, 24 Mar 2026 09:37:49 +0000
Received: by outflank-mailman (input) for mailman id 1260190;
 Tue, 24 Mar 2026 09:37:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=iLjC=BY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w4yCq-0003Wx-4r
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 09:37:48 +0000
Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com
 [209.85.221.43]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1d8c9ce3-2765-11f1-b166-2bf370ae4941;
 Tue, 24 Mar 2026 10:37:46 +0100 (CET)
Received: by mail-wr1-f43.google.com with SMTP id
 ffacd0b85a97d-43b467dcf0bso3649409f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 02:37:46 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b647177e8sm35715718f8f.34.2026.03.24.02.37.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 02:37: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: 1d8c9ce3-2765-11f1-b166-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774345066; x=1774949866; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HtchiBUwAhun9mMkWgmGNUxcFrHng6e/ies3aRlxXcA=;
        b=HGctSRcpj5x4LEyaoYL4H56SY6V85bC64lqthqbEZzXzREy2h51DDwcwFCjq2S76Aj
         rmNb2q1MMV8JRinkN5/aYtUSUde79Fj5b9rz5jpncHP8nvW4ARtJ9fRxtRhmytYz73G9
         ZDWLDyWMV0K9ZWSBA3fAE7EwiijrvXZOUMb2QaVO/Z7HHpPpaBZGIN82v/1K0oQ1QPQR
         AF9dPee+Fcmv9jnAF+l5mLE6n0h/hEmAygWASG+nvqieV6UVQPy2hkYZqtSJX1c5j34D
         jMMR+jutrcaReOcGNOK8CgHKjc5dpJGeYd+RlKhpPUVj5SJ/PNSVA2tkVJrArNHUSuNG
         EiRQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774345066; x=1774949866;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HtchiBUwAhun9mMkWgmGNUxcFrHng6e/ies3aRlxXcA=;
        b=eC0s7YQ4fiCD0ANDjx+OciroeeAuE7sU+wl8POWukuUTzdU0kHkCgKj/+PLvOVwOan
         Idv1Bfy1qWnVwpwXp5oeJAFFMu7UYTa4+kT6TQCuWzaQTYR+gAG23EYfN8uVSe7Hherv
         eP+b1fdF9FwDycyAwhg+xHSw2uDHg2Ocb5Sx5McrQvu79gpjOwLudPnV+e0u1znFKkZH
         6UxL2Sb8+SklRusUysnvG5DjSgaXZPwBCkbP+M9BkgWHVC8oTD0oyWe0EukugHjCUYWh
         nGOw+UsNpzJmZ5WGQEL+B6lgYdRzeEvJv+SR5GZlYBAluAa/wxHcuQx+ZlE7SQLj3bMC
         tTQA==
X-Forwarded-Encrypted: i=1; AJvYcCUayC26/xDkavHld0c8A8DFKV4wWJYLpCf0026ytobG82skcGfINhneNzqT/qkdAHL1Ppa1ypRtBG0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyuxyO4IVEZYCk7pyJgYnLj2NohUXxByP2RI1DvCkuXAE6OC+l0
	7sSIbuF2vVboaGy98zKTGo892DbWu/1wOKYx0DB7ERBqUPRCmWA5sIEs6+WTX5bLcQ==
X-Gm-Gg: ATEYQzxX0AWth8xWOI/vRSdLCyI9yZK/2nMC0QKxwUW5XZ2tdHqpKH1DiFw29FybmxE
	AYi60qsqvTPlpxPCLPXGj+2XpqE+rglep5ujMvJoKRy0FEbwrP38C+L7lmuaNsCMO1PF+RAW5mB
	OrWOvj+zportcl3CEQQCSZvhB1DVDz/zj/xtsH+YABTnZrUYorrp4x8qUdHZI7yhJXib8xhAXH7
	mqE4Mg13S8Mp3MsKglRsnruuw7Ndlt8V67bqgarsKl+zKcxH7TtZBipVZ3l9PPm+mzHZZu3Djic
	WCCsStcRFFAf7TuhAOPCFV78O3onXMe10HLy93k0JS6yJLNrcKbb4nLyENUFbsE3h2zOcbrpmBI
	tcbyuPsW4P7aKmUuRuZbWyjJevEmipZgrqL4Dv4C5L244qrlC98jmJwyJJ+D8HK7KIKkZbcyuR4
	1005TPLeJ2VHdQHSxRPwy5S+h1Dxm+zL1tK9jfztHZLhIAbGDF72maq/gLDWweqsNXbZdgRo/Wd
	ZxXHV56ESV3CFQ=
X-Received: by 2002:a05:6000:4103:b0:439:df59:abc5 with SMTP id ffacd0b85a97d-43b80535f97mr3117608f8f.12.1774345065873;
        Tue, 24 Mar 2026 02:37:45 -0700 (PDT)
Message-ID: <cd1fa52a-0ff2-4b7f-9b0b-c33b6a01b6c8@suse.com>
Date: Tue, 24 Mar 2026 10:37:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 02/27] xen/riscv: Implement construct_domain()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1773157782.git.oleksii.kurochko@gmail.com>
 <3a86599284108e6f2a27488a03145f8dd1b71def.1773157782.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: <3a86599284108e6f2a27488a03145f8dd1b71def.1773157782.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.03.2026 18:08, Oleksii Kurochko wrote:
> --- /dev/null
> +++ b/xen/arch/riscv/domain-build.c
> @@ -0,0 +1,46 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +
> +#include <xen/fdt-domain-build.h>
> +#include <xen/fdt-kernel.h>
> +#include <xen/init.h>
> +#include <xen/sched.h>
> +
> +#include <asm/current.h>
> +#include <asm/guest_access.h>
> +
> +int __init construct_domain(struct domain *d, struct kernel_info *kinfo)

Are you actually altering what kinfo points to?

> +{
> +    struct vcpu *v = d->vcpu[0];
> +    struct cpu_user_regs *regs = vcpu_guest_cpu_user_regs(v);
> +
> +    BUG_ON(d->vcpu[0] == NULL);

Why not simply "!v"?

Also, while in the cover letter you state a dependency on another series,
this is somewhat unwieldy here. From the titles there I can't deduce which
of the patches would introduce vcpu_guest_cpu_user_regs(). Yet I would
have wanted to double check that it doesn't de-reference v already.

> +    BUG_ON(v->is_initialised);
> +
> +    kernel_load(kinfo);
> +    initrd_load(kinfo, copy_to_guest_phys);
> +    dtb_load(kinfo, copy_to_guest_phys);

These all return void, despite this also being used for non-Dom0. Is it
really fatal to a dom0less system if one out of many domains fail to be
built? Especially when, despite the name, there is a Dom0?

> +    regs->sepc = kinfo->entry;
> +
> +    /* Guest boot cpuid = 0 */
> +    regs->a0 = 0;
> +    regs->a1 = kinfo->dtb_paddr;
> +
> +    for ( unsigned int i = 1; i < d->max_vcpus; i++ )
> +    {
> +        if ( vcpu_create(d, i) == NULL )
> +        {
> +            printk("Failed to allocate %pd v%d\n", d, i);
> +            break;

And no error is indicated to the caller?

> +        }
> +
> +        printk("Created vcpu %d for %pd\n", i, d);

dprintk() at most, and if so, then please use %pv.

> +    }
> +
> +    domain_update_node_affinity(d);
> +
> +    v->is_initialised = 1;

This is a boolean field, so the rhs wants to be "true".

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 09:59:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 09:59:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260202.1553556 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4yXp-0006qG-Qb; Tue, 24 Mar 2026 09:59:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260202.1553556; Tue, 24 Mar 2026 09:59:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4yXp-0006q9-O3; Tue, 24 Mar 2026 09:59:29 +0000
Received: by outflank-mailman (input) for mailman id 1260202;
 Tue, 24 Mar 2026 09:59:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <berrange@redhat.com>) id 1w4yXo-0006q3-JY
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 09:59:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4yXn-00A2KM-Gn
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 10:59:27 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <berrange@redhat.com>)
 id 69c2607a-5cb7-0a2a0a5109dd-0a2a4502801e-32
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 10:59:27 +0100
Received: from [170.10.129.124] (helo=us-smtp-delivery-124.mimecast.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <berrange@redhat.com>)
 id 69c2607d-63bb-0a2a45020019-aa0a817c6a59-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 10:59:26 +0100
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-341-7uC1TSxwOT6Xs_9QeCDb0A-1; Tue,
 24 Mar 2026 05:59:23 -0400
Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 3313119560AA; Tue, 24 Mar 2026 09:59:22 +0000 (UTC)
Received: from redhat.com (unknown [10.44.33.93])
 by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 26D43180058B; Tue, 24 Mar 2026 09:59:17 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mimecast20190719 header.d=redhat.com header.i="@redhat.com" header.h="From:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1774346365;
	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=TJ1vMBEe8Dsw41A89pk6yrT2C5ogE9dQJMhAO/T+c5w=;
	b=U2+YrunhGVKkaVJ5kb5ye52QA09cUI2aamYsSi9KEds003X3wpfzaB2DSKXKxgSpvJPqQg
	PGqjmzm2BCu3RQMvFKlr0I1i3FbeFA1j6o+K4iwag7uND3xHue2wiIaplYgxtXgSWL3LhL
	802jU081JVmasON7IH/UdW6xnAE06q8=
X-MC-Unique: 7uC1TSxwOT6Xs_9QeCDb0A-1
X-Mimecast-MFC-AGG-ID: 7uC1TSxwOT6Xs_9QeCDb0A_1774346362
Date: Tue, 24 Mar 2026 09:59:14 +0000
From: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= <berrange@redhat.com>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Thierry Escande <thierry.escande@vates.tech>, qemu-devel@nongnu.org,
	Paolo Bonzini <pbonzini@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Eduardo Habkost <eduardo@habkost.net>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 0/4] Xen: Add Q35 initial support for HVM guests
Message-ID: <acJgclxJ4_0YbBqT@redhat.com>
Reply-To: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= <berrange@redhat.com>
References: <20260313164649.794591-1-thierry.escande@vates.tech>
 <abVtsK31t9tWgsaY@mail-itl>
 <acJZHpw8tcTMPpCn@l14>
MIME-Version: 1.0
In-Reply-To: <acJZHpw8tcTMPpCn@l14>
User-Agent: Mutt/2.2.14 (2025-02-20)
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111
X-Mimecast-MFC-PROC-ID: EHoFNaH39xa2zaTy5Y0r9ld6pv1iAdIxZWdEX0Jw0G0_1774346362
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1774346367-42A84DB8-9895A58B/0/0
X-purgate-type: clean
X-purgate-size: 2207

On Tue, Mar 24, 2026 at 09:28:00AM +0000, Anthony PERARD wrote:
> On Sat, Mar 14, 2026 at 03:16:15PM +0100, Marek Marczykowski-Górecki wrote:
> > On Fri, Mar 13, 2026 at 04:46:56PM +0000, Thierry Escande wrote:
> > > This patch series introduces Q35 chipset support for Xen HVM guests. This is
> > > based on the work from Alexey Gerasimenko (See patchset [1] for reference).
> > > 
> > > This series does not implement device passthrough as this will need more work
> > > on the Xen side to support multiple PCI buses. Since Q35 chipset does not
> > > support device hotplugging and with current Xen mechanism for device
> > > passthrough, they have to be plugged to a new PCIe root port, i.e. not the PCI
> > > bus 0.
> > 
> > I always found it weird that Xen does hot-plugging of PCI passthrough
> > devices... Wouldn't it be easier to change this (connect them from the
> > very start, via QEMU cmdline) and declare hotplug as unsupported (at
> > least at this time)? I realize it's more complex change at the toolstack
> > side, but overall may simplify things and maybe even improve
> > reliability.
> 
> Skipping hot-plug on Q35 sounds good to me.
> 
> I though we could keep using QMP to do cold plug, with the experimental
> "--preconfig", but "device_add" isn't allowed :-(. So yes, doing this
> via command line sounds fine.
> 
> In libxl, we might be able to transform the json for `device_add` into
> the command line counterpart for `-device` fairly easily so the argument
> are only generated in a single place. Then we could skip the QMP
> "device_add" in libxl when it's already done via command line.

-device accepts JSON directly, so there's no transformation you
need to do from the QMP JSON. For example:

  -device '{"driver":"pcie-root-port","port":8,"chassis":1,"id":"pci.1","bus":"pcie.0","multifunction":true,"addr":"0x1"}'

Likewise  -object, -audiodev and -netdev accept QMP JSON too

With regards,
Daniel
-- 
|: https://berrange.com       ~~        https://hachyderm.io/@berrange :|
|: https://libvirt.org          ~~          https://entangle-photo.org :|
|: https://pixelfed.art/berrange   ~~    https://fstop138.berrange.com :|



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 10:00:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 10:00:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260208.1553566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4yYk-0008Jq-4h; Tue, 24 Mar 2026 10:00:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260208.1553566; Tue, 24 Mar 2026 10: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 1w4yYk-0008Jj-0x; Tue, 24 Mar 2026 10:00:26 +0000
Received: by outflank-mailman (input) for mailman id 1260208;
 Tue, 24 Mar 2026 10:00:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ehxs=BY=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1w4yYi-0008JZ-T5
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 10:00:25 +0000
Received: from mail-lj1-f172.google.com (mail-lj1-f172.google.com
 [209.85.208.172]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 454081e2-2768-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Mar 2026 11:00:21 +0100 (CET)
Received: by mail-lj1-f172.google.com with SMTP id
 38308e7fff4ca-38bd3c6c502so25368201fa.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 03:00:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 454081e2-2768-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1774346421; cv=none;
        d=google.com; s=arc-20240605;
        b=C/wb4elKdp+Ha0KL8O9taextno0BFoRrG9GObsf3ZMYWup95RIsIZrO2P1giRToyiD
         Hn8q2TJyMbvEyRxj4u8WBJGVNCka3f3bHArBhJpK0k8D7P6dbbSEi4hv2mjd9r0jhEPp
         n8UveL15H6SOMkKUhHenMl0XlmXcRQUiZw0YwdbEGrCia6DWH/KlrRQV0LEHYQ8nb06i
         nbcUAFDMxFKlXXjKAkZrSI84FtahcVt0xquedsMDFouyskdO37Y+9oIMI+ACAl/+mmEL
         j9o0RqsrdBONJTm7wGaBfPV5lXjzJh4YkQSe31iNO/5YMZnBOAbXZe7kN9UtLmrmPW7i
         zzwQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:dkim-signature;
        bh=ar1bjqW5Lo0tgcZE6DdGTP/006Egrh4tUuj0RN0FzWo=;
        fh=ZqQ1W4s2sAoJbRyzgY8rmX9kckACA2A930LY2DVXlfc=;
        b=i1u7bakG/N3YwpvMf03J+I33gj8mtCd/JsxV/kl1/A/+rnIhUEmvVNe/uG+a9YVVFe
         NvuXzOf7SHLqjFWx5aRw9PniM67qbLkwg03NKPDjG7b7t/9YHgS4HyaYxcUJWS8r0UPx
         W5m/BO1szHEAk+98TqxVhCJoREuTFhOL8rB6V3Q2Nmww9yuYu3xVeeq+9Uyn77e2IxU/
         T7y/3NkWjRgmBfJXeZGPjwiz3G3iWIFhoFxyd89ZRn1G7e463mmMU/D7WKeSv6OjQ49M
         b77zuZ0na/M4eGW+zQw/Pgy9W+yH0EJ4wiT9U+kvp5MaVmK9Z/BFNclfwpq3U+vXdscG
         GnYg==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774346421; x=1774951221; 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=ar1bjqW5Lo0tgcZE6DdGTP/006Egrh4tUuj0RN0FzWo=;
        b=kidA2v3nakXHomlUvAwq85ou8keCcpKDlPK1V+zlCexXPR/s5/EiKXJgKVHkxDXOsM
         z/xXS0IHDwQqTtxzLDeNSU17hrVKJ7uxuc3YOUIlLwOvQ8Lw80zNQf9+3rS+uSzrYp1z
         OGUtn3f6tMR7y/kIO3vWUzY+/WYijpTurH9mGGHcDvWiry/F25Tvz7pZvWWFcPtkrTnB
         387+q69HA5UvIvnovzI979Vs2yTIJ/lDeXY/PwVjMybInHOowBreS4H0l2BBLzoxc41L
         1mdSO0YhO94yWhj9laufyrd3f+/43XAF+AtRzuYw/1E0zKq9mVHAA2b4+JRykDtyW1ra
         6XsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774346421; x=1774951221;
        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=ar1bjqW5Lo0tgcZE6DdGTP/006Egrh4tUuj0RN0FzWo=;
        b=UiCt5Vw6t0lzDLjZxlwZerpEcw2mem2iDSU8wMBA7B8B6l61Axu/b36HNzQdev/is/
         JNcSctmOgqkYuOMOV7tzYjXUZVaKpQ9GY+w0H87qdMxY5Xe+Z6ljLBw9G9qgldvJLJV7
         4nkytgSyhAi/12bYYtVDb6S+1AywSfLAjTlvp2xxdHRcc6rBIs03+hKha8W/ticsbOGI
         5nDm9j38yEIwK1FxM5pDydGmvD/Z2CV2gj/HGx+iIVMHCQ1l7SjaLkBUx27F4gBg37mz
         D2aerZ6qpZrQWv6BavfYz5m30kS9XvKJPKrczd9qvirEyZ8ZHU4m3FCaTFpEm1Nly4fd
         ztnQ==
X-Forwarded-Encrypted: i=1; AJvYcCVdR8CHDbxGjA2WHJFwW+NRO3JwM/U5E7mNUgMHo6DLw0Oe2FkZVtWIDWZjjfog0q1j+XUgWy9eA4o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyUy6F0nkBBUUOvfdZ0Wv9Y+HR+ge5oX+cTueQNvJ8SvtVCJZZx
	lPE6HPvL//TAlV7HobMWTsVNcPRy0umTDt1R4rpKbowM81CBPy1VKhECMBVm2onlB7NICsJLXfY
	FAGm7fKgKKwHR/K0St63y7xQeDJ96viA=
X-Gm-Gg: ATEYQzw5xGImPT26A+0ABpCKoxKEXS367BBZw7Z2ItIOZXSu6UH2kSORmy6s7KrNo7K
	XnLcYsWAfNVfRpJ1C4X6z0BMXPohUXIa0O+ciscHth1kM1+ooODtz1nmlRW8v7Ex5tNieZ7NxcW
	M6CRHHXipTftYnOkCr7SFN7CyJ4JWYkm/Bzq5x6Ml+A4EEGTJGFBZH9/Fi//e97CvDOP79cNMnc
	HBgamLs+zZeAmXC7UDy7JKUVwZHjLdRf26f0mGwwSRORv/kzinYwXsk5IA7JPbM2ohv7jKFpwKh
	cG0YEg==
X-Received: by 2002:a2e:be23:0:b0:383:5390:bc96 with SMTP id
 38308e7fff4ca-38bf9497737mr50967261fa.0.1774346420485; Tue, 24 Mar 2026
 03:00:20 -0700 (PDT)
MIME-Version: 1.0
References: <2004584dbbe393c9de4b3231bf91a24f6e5de5de.1773875416.git.mykola_kvach@epam.com>
 <c37859f7-bac6-4394-ae12-83e054a1743e@suse.com>
In-Reply-To: <c37859f7-bac6-4394-ae12-83e054a1743e@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 24 Mar 2026 12:00:00 +0200
X-Gm-Features: AaiRm51g_2nk-mf2Q3XudCZiifG074T4J_3rZ9J6ays6Lex437u85Sfiggq91cs
Message-ID: <CAGeoDV8v3=b46qrmzmBjH8BN7rs3CRcSAkrOCgHGgr=8+PcuEg@mail.gmail.com>
Subject: Re: [PATCH] xen/domain: make shutdown state explicit
To: Jan Beulich <jbeulich@suse.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>, Paul Durrant <paul@xen.org>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Tim Deegan <tim@xen.org>, 
	Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>, 
	xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="0000000000001a0122064dc2388f"

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

Hi Jan,

Thank you for the review.

On Thu, Mar 19, 2026 at 12:32=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wr=
ote:
>
> On 19.03.2026 00:25, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > The domain shutdown flow currently overloads is_shutting_down and
> > is_shut_down to represent multiple phases of the shutdown lifecycle,
> > while some users treat is_shutting_down as a broader "domain is no
> > longer normal" condition.
> >
> > Make the shutdown lifecycle explicit by introducing
> > enum domain_shutdown_state and converting the existing users to helper
> > predicates describing whether shutdown is in progress, complete, or
> > active.
>
> Mind me asking what the distinction is between "active" and "in progress"=
?
> They feel like synonyms to me. To me "is shutting down" vs "was shut down=
"
> would be the clearer distinction (i.e. domain_shutting_down() and
> domain_shut_down() or some such, albeit for the latter I could also live
> with domain_shutdown_complete() as you have it, or maybe slightly less
> ambiguously domain_shutdown_completed()). Yet then I'm not a native
> speaker.

Yes, the distinction I was trying to make is:

  - in progress: shutdown has been initiated, but not all vCPUs may
    have reached the paused-for-shutdown state yet

  - complete: shutdown has been finalized, i.e. all vCPUs are paused
    and the domain is fully shut down

  - active: a shorthand for "shutdown_state !=3D none", i.e. covering
    both of the above

So "active" was meant as a broader "the domain is already in shutdown
state", rather than as a synonym for "shutdown is currently progressing".

>
> Further, I can't quite derive upon what criteria you chose whether
> ->is_shutting_down checks are to be converted to domain_shutdown_active()
> vs domain_shutdown_in_progress(). This could do with writing down. (It
> also might be easier with the suggested alternative naming.)

Likewise, the conversions from is_shutting_down/is_shut_down were not
meant to be mechanical. The criterion I used was:

  - domain_shutdown_in_progress() where the code cares specifically
    about the transient phase before shutdown is fully finalized

  - domain_shutdown_complete() where the code is specifically about
    the fully shut down state being reported or tested

  - domain_shutdown_active() where the old logic was effectively using
    the combined condition "the domain is already somewhere in the
    shutdown lifecycle"

One detail which likely wasn't obvious from the patch is that the old
flags were not mutually exclusive. Once is_shut_down became true,
is_shutting_down still remains set as well.

Because of that, the conversion was not just about replacing old
is_shutting_down checks. I also had to account for sites using
is_shut_down explicitly, so that the resulting logic would preserve the
old distinctions between the in-progress, complete, and combined cases.

In particular, old !is_shutting_down checks implicitly excluded both
the in-progress and fully shut down states. Those are the places where
I used domain_shutdown_active(). Sites specifically testing the fully
shut down state were converted to domain_shutdown_complete(), while the
ones caring about the transient shutdown phase were converted to
domain_shutdown_in_progress().

vcpu_check_shutdown() is an example of the latter. That path exists to
drive a shutdown already in flight to completion: it may still need to
pause this vCPU, clear defer_shutdown, and then re-check whether
shutdown can now be finalized. Once shutdown is already complete,
there is nothing left for that path to do, so using the broader
combined state there would not be appropriate.

I agree this selection criterion is not obvious enough from the patch
as posted. I'll make that rationale explicit in the commit message.


If you think naming is part of the confusion, I could switch to
something along these lines instead:

  - domain_shutting_down()      for the in-progress state
  - domain_shutdown_completed() for the finalized state
  - domain_in_shutdown_state()  for the union of both

Would that look better to you?

>
> > @@ -1444,9 +1458,17 @@ void domain_resume(struct domain *d)
> >          v->paused_for_shutdown =3D 0;
> >      }
> >
> > +out_unlock:
>
> Nit (style): Labels indented by at least one blank please.

Ack.

Best regards,
Mykola

>
> Jan

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

<div dir=3D"ltr">Hi Jan,<br><br>Thank you for the review.<br><br>On Thu, Ma=
r 19, 2026 at 12:32=E2=80=AFPM Jan Beulich &lt;<a href=3D"mailto:jbeulich@s=
use.com">jbeulich@suse.com</a>&gt; wrote:<br>&gt;<br>&gt; On 19.03.2026 00:=
25, Mykola Kvach wrote:<br>&gt; &gt; From: Mykola Kvach &lt;<a href=3D"mail=
to:mykola_kvach@epam.com">mykola_kvach@epam.com</a>&gt;<br>&gt; &gt;<br>&gt=
; &gt; The domain shutdown flow currently overloads is_shutting_down and<br=
>&gt; &gt; is_shut_down to represent multiple phases of the shutdown lifecy=
cle,<br>&gt; &gt; while some users treat is_shutting_down as a broader &quo=
t;domain is no<br>&gt; &gt; longer normal&quot; condition.<br>&gt; &gt;<br>=
&gt; &gt; Make the shutdown lifecycle explicit by introducing<br>&gt; &gt; =
enum domain_shutdown_state and converting the existing users to helper<br>&=
gt; &gt; predicates describing whether shutdown is in progress, complete, o=
r<br>&gt; &gt; active.<br>&gt;<br>&gt; Mind me asking what the distinction =
is between &quot;active&quot; and &quot;in progress&quot;?<br>&gt; They fee=
l like synonyms to me. To me &quot;is shutting down&quot; vs &quot;was shut=
 down&quot;<br>&gt; would be the clearer distinction (i.e. domain_shutting_=
down() and<br>&gt; domain_shut_down() or some such, albeit for the latter I=
 could also live<br>&gt; with domain_shutdown_complete() as you have it, or=
 maybe slightly less<br>&gt; ambiguously domain_shutdown_completed()). Yet =
then I&#39;m not a native<br>&gt; speaker.<br><br>Yes, the distinction I wa=
s trying to make is:<br><br>=C2=A0 - in progress: shutdown has been initiat=
ed, but not all vCPUs may<br>=C2=A0 =C2=A0 have reached the paused-for-shut=
down state yet<br><br>=C2=A0 - complete: shutdown has been finalized, i.e. =
all vCPUs are paused<br>=C2=A0 =C2=A0 and the domain is fully shut down<br>=
<br>=C2=A0 - active: a shorthand for &quot;shutdown_state !=3D none&quot;, =
i.e. covering<br>=C2=A0 =C2=A0 both of the above<br><br>So &quot;active&quo=
t; was meant as a broader &quot;the domain is already in shutdown<br>state&=
quot;, rather than as a synonym for &quot;shutdown is currently progressing=
&quot;.<br><br>&gt;<br>&gt; Further, I can&#39;t quite derive upon what cri=
teria you chose whether<br>&gt; -&gt;is_shutting_down checks are to be conv=
erted to domain_shutdown_active()<br>&gt; vs domain_shutdown_in_progress().=
 This could do with writing down. (It<br>&gt; also might be easier with the=
 suggested alternative naming.)<br><br>Likewise, the conversions from is_sh=
utting_down/is_shut_down were not<br>meant to be mechanical. The criterion =
I used was:<br><br>=C2=A0 - domain_shutdown_in_progress() where the code ca=
res specifically<br>=C2=A0 =C2=A0 about the transient phase before shutdown=
 is fully finalized<br><br>=C2=A0 - domain_shutdown_complete() where the co=
de is specifically about<br>=C2=A0 =C2=A0 the fully shut down state being r=
eported or tested<br><br>=C2=A0 - domain_shutdown_active() where the old lo=
gic was effectively using<br>=C2=A0 =C2=A0 the combined condition &quot;the=
 domain is already somewhere in the<br>=C2=A0 =C2=A0 shutdown lifecycle&quo=
t;<br><br>One detail which likely wasn&#39;t obvious from the patch is that=
 the old<br>flags were not mutually exclusive. Once is_shut_down became tru=
e,<br>is_shutting_down still remains set as well.<br><br>Because of that, t=
he conversion was not just about replacing old<br>is_shutting_down checks. =
I also had to account for sites using<br>is_shut_down explicitly, so that t=
he resulting logic would preserve the<br>old distinctions between the in-pr=
ogress, complete, and combined cases.<br><br>In particular, old !is_shuttin=
g_down checks implicitly excluded both<br>the in-progress and fully shut do=
wn states. Those are the places where<br>I used domain_shutdown_active(). S=
ites specifically testing the fully<br>shut down state were converted to do=
main_shutdown_complete(), while the<br>ones caring about the transient shut=
down phase were converted to<br>domain_shutdown_in_progress().<br><br>vcpu_=
check_shutdown() is an example of the latter. That path exists to<br>drive =
a shutdown already in flight to completion: it may still need to<br>pause t=
his vCPU, clear defer_shutdown, and then re-check whether<br>shutdown can n=
ow be finalized. Once shutdown is already complete,<br>there is nothing lef=
t for that path to do, so using the broader<br>combined state there would n=
ot be appropriate.<br><br>I agree this selection criterion is not obvious e=
nough from the patch<br>as posted. I&#39;ll make that rationale explicit in=
 the commit message.<br><br><br>If you think naming is part of the confusio=
n, I could switch to<br>something along these lines instead:<br><br>=C2=A0 =
- domain_shutting_down() =C2=A0 =C2=A0 =C2=A0for the in-progress state<br>=
=C2=A0 - domain_shutdown_completed() for the finalized state<br>=C2=A0 - do=
main_in_shutdown_state() =C2=A0for the union of both<br><br>Would that look=
 better to you?<br><br>&gt;<br>&gt; &gt; @@ -1444,9 +1458,17 @@ void domain=
_resume(struct domain *d)<br>&gt; &gt; =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0v-=
&gt;paused_for_shutdown =3D 0;<br>&gt; &gt; =C2=A0 =C2=A0 =C2=A0}<br>&gt; &=
gt;<br>&gt; &gt; +out_unlock:<br>&gt;<br>&gt; Nit (style): Labels indented =
by at least one blank please.<br><br>Ack.<br><br>Best regards,<br>Mykola<br=
><br>&gt;<br>&gt; Jan</div>

--0000000000001a0122064dc2388f--


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 10:01:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 10:01:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260216.1553575 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4yZQ-0000MM-BH; Tue, 24 Mar 2026 10:01:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260216.1553575; Tue, 24 Mar 2026 10:01: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 1w4yZQ-0000MF-8b; Tue, 24 Mar 2026 10:01:08 +0000
Received: by outflank-mailman (input) for mailman id 1260216;
 Tue, 24 Mar 2026 10:01:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w4yZP-0000Lf-1h
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 10:01:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4yZO-001ZCN-Dh
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 11:01:06 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c260da-e002-0a2a0a5209dd-0a2a4503b0c4-30
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 11:01:06 +0100
Received: from [209.85.208.169] (helo=mail-lj1-f169.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c260e1-1947-0a2a45030019-d155d0a9cd8a-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 11:01:06 +0100
Received: by mail-lj1-f169.google.com with SMTP id
 38308e7fff4ca-38bd3c6c502so25373511fa.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 03:01:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1774346465; cv=none;
        d=google.com; s=arc-20240605;
        b=bzd0ZDY7qSSQwWaeY/JHYAYPRzLxRt86HMBG8mdY6MKjyoJhzN28XF4ulilEur13Mh
         c8gAbJo+H5xmvIjgp8hxZOjWcpiXplQaKZzn8xL6q0Wq7gRvYttpkn67iARvqRJwJN1t
         gx/vwBuC2F+6edmC+vS/L7vslGmccv02V8NDbtojLBrXbuyIyFPJ7BU2opltvLqH4+k0
         nOQovdT1D3shcOMoNQtK2z9VhOjxd+abZ1hCHb45acKURuzjI7NgwcBcySqtEtsslFPU
         TZjbDA96wczdVUuHxK0EnjIsKxEy5GMprH5zYe4VHhc1v3m/bMleQkgbh2e7tydXc4QQ
         ziJg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=Vti3dJ2V5oeI+p3j2rVJPrK82fkJwwm+IMJOx28LmOM=;
        fh=VOXfUY/9jxVlo5Oie8g2PfMfSuQb+LU+K1sdCNvuHos=;
        b=Ai/rZHMI3Kk43VySoqCAf05LW1cT9fC1KZEFEHnbOTp4CJ1y/NQZATVl4N13AR8Q7C
         qHFWbHzaSgyfH1hhYmrRiikyCt2rDJOZAhwNazIwqZD5qpfxKNj5ZQMEahObbpWZp0pv
         eb+LmCe0YE8xP6snxgVR/CwbaPXPSychXzrPAYOKIusfEjc7tNSuRisSTPXoUnwPm0ig
         fzX9XjIVA5RvBBVvPENtRn6Uuq1emQNPnxtDV/ewz6cMwbJBVCVuHsejWQ71WgTUuF9+
         CJTGeXvhxMBWY+h2WRbUhX/LUZ4B33GVtn4eydFtKf47frDoUi0pmqL2BW1BqoAGPJ/v
         zkcw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774346465; x=1774951265; 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=Vti3dJ2V5oeI+p3j2rVJPrK82fkJwwm+IMJOx28LmOM=;
        b=Pg22emfQ35VWc2vsvw+iQSKQJgtP5d3Rde2iC9OsJc+T6ggY2+BDrPKclUPtpsU51h
         9LyuDQyg1z+viQ5fhBLaQd5cRBqmkiKlmNvhhA+gQTstSoALOo3k9eNyT+5nOOaDN2+Y
         xq45p+llpNKLISuQJ8Pzr4Y2yIsoKVfxWjhlqmybAR9HKo2UdisB7+OQrjAx+8Elpv2P
         /Q+EuS6+sctlmyIU7mEDZnt5STIAkOIm4CD8nnAIZ+YBe6kfPwLjVlzwK4G0qbrEXEvH
         DiwYM1QUoHojZc3CK49ATnfbjpcikzGskFOHxI5i5YXxjC3r29J9ZsAfBjaGo2VgYjqm
         RFrw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774346465; x=1774951265;
        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=Vti3dJ2V5oeI+p3j2rVJPrK82fkJwwm+IMJOx28LmOM=;
        b=Fd3Alv2I1zZyTBbgBft7gH4ISoPAPlyQqCp6tSG79Cn2v/srZtxqDPDp1Kyz7B2i7E
         0JgDCbE3gmhqT+aWzebHBbIx0B3tx63nGCUuP7xf8ht7B6qfukHaszEI6e66JorPhoYb
         FnIXdRGpy08S5vuYfojGO/pSSQ8A7thKkEqO+yksUZflsmZxPdLTTnOi+RHv9zDIbDRA
         4O6X7lVI8JUCPY1jy8tRT0JFHLrgkzWG0bmT3LIFBthWmdUDZ0RvZhQ9BJGVygduhn1Y
         8bkQgaBGwq13SmdYSnQF64lJ2kJnimeHO3CeofBWHM5O9zbPfOqYjXlfKskatlNmJMaS
         yykQ==
X-Gm-Message-State: AOJu0Yx4SDG85S9uHnRa6sgwmF31zUfZM68jPttz8uXKalEJgTqScwq+
	Xz+PGNbtlSvGSTTR4KbHoWgY3kYfpjvgWlrZ6BVgNEKX0SFEb5hE8EYjeN0DaCWVt/5OgeWvyCV
	jKZUQKWVRuUi3yq2B0QDd0tOp9v1bJg7UcmAB
X-Gm-Gg: ATEYQzxvMGtMfWgQX4DePQn+UWenJXh1rUoKz5BM/3am2m/NkeNGEOaGy37+HGN7RNR
	bk4t7Hqh4O2IpqsE8lgn2PFZoxUrdSI0vD/5a0uVSNIUHFHdZfgIA9tuWYJ9/kJ+zd+a81VMytQ
	h3brRsC4rR0j2U5hnHDrg/V07dpeBuETw5k2VrmvsQc8EI1DOPdIwsUuvzsEjuxGJxG3WXY/rqU
	88xnJNycN+orwSK/Ccd8VLKmvUKE1rlX3JT9VymPvidIi9UVCZ7Y/XI6rYifzSCGhhO6ZAvCAwf
	7bWeDg==
X-Received: by 2002:a05:651c:19a6:b0:38b:fb66:5797 with SMTP id
 38308e7fff4ca-38bfb6659e1mr50336661fa.12.1774346463809; Tue, 24 Mar 2026
 03:01:03 -0700 (PDT)
MIME-Version: 1.0
References: <2004584dbbe393c9de4b3231bf91a24f6e5de5de.1773875416.git.mykola_kvach@epam.com>
 <5bc8a4ab-3e23-494a-b5ce-d1aa5c6ec7de@amd.com>
In-Reply-To: <5bc8a4ab-3e23-494a-b5ce-d1aa5c6ec7de@amd.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 24 Mar 2026 12:00:00 +0200
X-Gm-Features: AQROBzDl7RQmCd1VGU60veq1_tOcAsHY0kZIBGxaD1yzx1vIKnDvdn8u5ekTIDI
Message-ID: <CAGeoDV8aHc7hZR=WV1dyncvgPxwPuqw8bdQz_s+ujzZPtuS5bg@mail.gmail.com>
Subject: Re: [PATCH] xen/domain: make shutdown state explicit
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Paul Durrant <paul@xen.org>, Jan Beulich <jbeulich@suse.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Julien Grall <julien@xen.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, Tim Deegan <tim@xen.org>, 
	Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-33051d/1774346466-4806C72C-AE2F7EEF/0/0
X-purgate-type: clean
X-purgate-size: 2517

Hi Michal,

Thank you for the review.

On Thu, Mar 19, 2026 at 12:09=E2=80=AFPM Orzel, Michal <michal.orzel@amd.co=
m> wrote:
>
>
>
> On 19/03/2026 00:25, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > The domain shutdown flow currently overloads is_shutting_down and
> > is_shut_down to represent multiple phases of the shutdown lifecycle,
> > while some users treat is_shutting_down as a broader "domain is no
> > longer normal" condition.
> >
> > Make the shutdown lifecycle explicit by introducing
> > enum domain_shutdown_state and converting the existing users to helper
> > predicates describing whether shutdown is in progress, complete, or
> > active.
> >
> > At the same time, make domain_resume() validate its input state and
> > return an error to its callers. Resume is now accepted only from the
> > fully shut down state.
> Also, you limit it now to SHUTDOWN_suspend or SHUTDOWN_soft_reset. Ideall=
y you
> should explain why i.e. resuming from crash/poweroff/reboot is semantical=
ly
> meaningless.

That makes sense. Looking at the existing flow more closely, the
suspend and soft-reset cases are not symmetric.

For suspend, the intended semantics are explicit and long-standing:
the public SCHEDOP_shutdown documentation describes special resume
semantics only for SHUTDOWN_suspend, libxl documents resume for a
suspended domain, and xc_domain_resume has long rejected domains
which are not shut down with SHUTDOWN_suspend.

Soft reset is different. The toolstack may choose soft-reset as the
action for other shutdown reasons too, e.g. on_reboot=3Dsoft-reset.
In that case the domain reaches the soft-reset path with
shutdown_code still set to SHUTDOWN_reboot, and only afterwards the
toolstack decides to perform a soft reset. So the new validation in
domain_resume() is too strict for the existing soft-reset flow.

Given that, I agree the checks should not be there in the current
form.

I'll drop the checks in the next version.

Best regards,
Mykola

>
> >
> > This removes the implicit coupling between unrelated users of
> > is_shutting_down and makes the shutdown/resume state transitions
> > self-describing.
> >
> > Suggested-by: Jan Beulich <jbeulich@suse.com>
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> This is mostly a mechanical change. I verified that correct helpers are u=
sed in
> place of old flags.
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
>
> ~Michal
>


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 10:09:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 10:09:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260230.1553594 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4yhG-0001bC-EY; Tue, 24 Mar 2026 10:09:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260230.1553594; Tue, 24 Mar 2026 10: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 1w4yhG-0001b5-AU; Tue, 24 Mar 2026 10:09:14 +0000
Received: by outflank-mailman (input) for mailman id 1260230;
 Tue, 24 Mar 2026 10:09:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <soumyajyotisarkar23@gmail.com>) id 1w4yhF-0001aD-DP
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 10:09:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4yhE-008S3o-MA
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 11:09:12 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <soumyajyotisarkar23@gmail.com>)
 id 69c262c6-e002-0a2a0a5209dd-0a2a4503e28c-20
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 11:09:12 +0100
Received: from [209.85.215.195] (helo=mail-pg1-f195.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <soumyajyotisarkar23@gmail.com>)
 id 69c262c7-1947-0a2a45030019-d155d7c3dc1a-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 11:09:12 +0100
Received: by mail-pg1-f195.google.com with SMTP id
 41be03b00d2f7-c70f91776fcso503565a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 03:09:12 -0700 (PDT)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 41be03b00d2f7-c74665ca206sm11377434a12.18.2026.03.24.03.09.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 24 Mar 2026 03:09:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774346950; x=1774951750; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vMyU7Zt+Npx8war2PFOLJHgfUteMUgErNfOEenK+5EA=;
        b=AKZWX3ZWK3oLzSbH+SIp9CXq3QzB2TmHr4Tl9jvw1zmJBFvlNuBsX4mROuHdxYJPXq
         HmisRTXYaeOh3ARMYoqOXdeib82KmG1DH8Vr9+piomd0/qkP8yrNkFUHxjSnza7/aHTI
         VoaW+9v0G8u13nSsr7KMgorERYlTG1Ow0xnB1rfZMWwyOrbE39DEEF42IQ/EQnjOKGqq
         BnUuwJErvTC8wZw/hakKFMJF4Lja6BrLPjeMAmeT32U/UOr3yT+Ix62rU01QuHQF5KdU
         fmkEIgZX1qepWjxWGuFsr9G+Ro4iE9HASduWUZTcLXfhRIPSPKf4egVbJ96H0HSZ2T+S
         TVLg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774346950; x=1774951750;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=vMyU7Zt+Npx8war2PFOLJHgfUteMUgErNfOEenK+5EA=;
        b=h/888kkzI+S5yXpCEJ4GM8lPrZc0KFnT/+Grrew8dy+M4iM/Be2TmhRi1VOK9yadUt
         APQTjsLJoV8dyaflo2RBzR7lpNZ65rQHRXuXoHuywaM3mEZMZhCH4oGmqNl61QnUIrDL
         Zd+TaPoAERvWX7e979CA4lHOFZBlgPzHq0gk5hnx1q4UJg3AyTPdGpxUh4rrmBAg4P7f
         5SP79TNaRDYjzfjHx7SKzdWbWKWU9dIkVFocUYGIotAGCmi4Va7pIaUQtn4ISgfwjhGV
         sGMVTGBnlOZtDAptBruKAHjgkk/v7s2gK8PfYKcy/uTKVCnQC7woQm5Ug5TBsVKKeAre
         kaSg==
X-Gm-Message-State: AOJu0YzQ2AwgNH1/e2AlcfE037p2Ioc6EeMOrg4W0+QYxDQ8KqMDZXEK
	qpixeczuxF0+oB5U/nVq0Z7po3Q+alzT0OwOfgx7IeHb4bAOYDOq05zvU+MYsY5b
X-Gm-Gg: ATEYQzwma9rBSIjZK0pj3jiBvYPczhvO/KnO2bSzxTx/oTSC+OrJ6Olwlq9822I9DPS
	al3DCXJho+C84p7/HBKL4h3Wt0xgHssRZZdBsaQgp7+8KUd+E1KeWBW9T/NveQYXc5TnnzpiV5Y
	bpHh7Fvcn4wepCJr2GnVzcSMrG20Ktze8hGwx7OK+v0jiVPSDCOYdXsE9XAGfLiYzHHkf/s+0G/
	UJ1X6Ey5jS8wfpMJhErJUoMoj/xVg7Nffw3mn9aDiBAiEz7ck0U/J+E2qoj+9CzrW+h5A8oBV5a
	r8KcQswRrKnpWYIzGa4ned44Zu6ZJEhai4Q7GpucDJiDcc+v5Dxs17f7FzKvsG6VtVgvRVvlBeO
	N/BR6yzxy3x8ynp+c5u33d16FxR1f98E8GU2XuKR41VLwKpAYle/5o1oHc9Xt8hjnjUNfI/7pDl
	L4yC1Rc1gipw0guM9c3ToMerQczd0CTrj3+JXRg+EcaqMbe38RZ7jAOb+1lBnMDxS32BkGZCwoc
	2hl2LOmg74Wbnlx0eVR6qPMmHsudmZLOw0W3FDcn9kGlRhFqHDsmIQFffrm2/gfOupFKvbnNmxL
	J7v1Kr/H
X-Received: by 2002:a05:6a21:6d9e:b0:39b:e84a:962a with SMTP id adf61e73a8af0-39be84ab96bmr10990598637.13.1774346950025;
        Tue, 24 Mar 2026 03:09:10 -0700 (PDT)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: xen-devel@lists.xenproject.org,
	sarkarsoumyajyoti23@gmail.com
Cc: "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [PATCH v4 1/3] x86/efi: Add BGRT image preservation infrastructure
Date: Tue, 24 Mar 2026 15:38:54 +0530
Message-ID: <20260324100856.6691-2-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324100856.6691-1-soumyajyotisarkar23@gmail.com>
References: <20260324100856.6691-1-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1774346952-EAA8372C-29AC70D4/0/0
X-purgate-type: clean
X-purgate-size: 6339

Add core EFI boot services code to preserve BGRT (Boot Graphics Resource
Table) images during Xen boot. The BGRT contains a pointer to a boot logo
stored in BootServicesData memory. Without preservation, this memory is
reclaimed causing ACPI checksum errors in dom0.

Implementation:
- Walk XSDT to locate BGRT table (reusing efi.acpi20 from efi_tables())
- Validate BMP image signature and size constraints (max 16MB)
- Allocate EfiACPIReclaimMemory and copy image data
- Update BGRT table with new address and recalculate checksum

The preservation follows the ESRT pattern, running before
ExitBootServices() to ensure image remains accessible.

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
---
 xen/arch/x86/efi/efi-boot.h  |   2 +
 xen/common/efi/boot.c        | 133 +++++++++++++++++++++++++++++++++++
 xen/common/efi/common-stub.c |   1 +
 3 files changed, 136 insertions(+)

diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 42a2c46b5e..0547d845cd 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -910,6 +910,8 @@ void __init efi_multiboot2(EFI_HANDLE ImageHandle,

     efi_relocate_esrt(SystemTable);

+    efi_preserve_bgrt_img();
+
     efi_exit_boot(ImageHandle, SystemTable);
 }

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 967094994d..47d5b9b2a8 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -1,12 +1,16 @@
 #include "efi.h"
 #include <efi/efiprot.h>
 #include <efi/efipciio.h>
+#include <acpi/acconfig.h>
+#include <acpi/actbl.h>
+#include <acpi/actbl3.h>
 #include <public/xen.h>
 #include <xen/bitops.h>
 #include <xen/compile.h>
 #include <xen/ctype.h>
 #include <xen/dmi.h>
 #include <xen/domain_page.h>
+#include <xen/errno.h>
 #include <xen/init.h>
 #include <xen/keyhandler.h>
 #include <xen/lib.h>
@@ -747,6 +751,133 @@ static void __init efi_relocate_esrt(EFI_SYSTEM_TABLE *SystemTable)
     efi_bs->FreePool(memory_map);
 }

+typedef struct {
+    UINT16 signature;
+    UINT32 file_size;
+    UINT16 reserved[2];
+    UINT32 data_offset;
+} __attribute__((packed)) BMP_HEADER;
+
+static __initdata struct {
+    bool preserved;
+    const void *old_addr;
+    const void *new_addr;
+    UINTN size;
+    const char *failure_reason;
+} bgrt_info = {
+    /* We would prefer the failure_reason to print */
+    .failure_reason = "",
+};
+
+static struct acpi_table_bgrt *__init efi_get_bgrt(void)
+{
+    const struct acpi_table_rsdp *rsdp;
+    const struct acpi_table_xsdt *xsdt;
+    UINTN entry_count;
+    unsigned int i;
+
+    if ( efi.acpi20 == EFI_INVALID_TABLE_ADDR )
+        return NULL;
+
+    rsdp = (const void *)(UINTN)efi.acpi20;
+    if ( !rsdp || !rsdp->xsdt_physical_address )
+        return NULL;
+
+    xsdt = (const void *)rsdp->xsdt_physical_address;
+
+    if ( memcmp(xsdt->header.signature, ACPI_SIG_XSDT, 4) != 0 )
+        return NULL;
+
+    if ( xsdt->header.length < sizeof(xsdt->header) )
+        return NULL;
+    entry_count = (xsdt->header.length - sizeof(xsdt->header)) /
+                  sizeof(xsdt->table_offset_entry[0]);
+
+    for ( i = 0; i < entry_count; i++ )
+    {
+        const struct acpi_table_header *hdr;
+
+        hdr = (const void *)xsdt->table_offset_entry[i];
+        if ( !hdr )
+            continue;
+
+        if ( memcmp(hdr->signature, ACPI_SIG_BGRT, 4) == 0 &&
+             hdr->length >= sizeof(struct acpi_table_bgrt) )
+            return (struct acpi_table_bgrt *)hdr;
+    }
+
+    return NULL;
+}
+
+#define BMP_SIGNATURE 0x4D42
+#define MAX_BGRT_IMAGE_SIZE (16 * 1024 * 1024)
+
+static void __init efi_preserve_bgrt_img(void)
+{
+    struct acpi_table_bgrt *bgrt;
+    const BMP_HEADER *bmp;
+    const void *old_image;
+    void *new_image;
+    UINTN image_size;
+    EFI_STATUS status;
+    UINT8 checksum;
+    unsigned int i;
+
+    bgrt_info.preserved = false;
+
+    bgrt = efi_get_bgrt();
+    if ( !bgrt )
+    {
+        bgrt_info.failure_reason = "BGRT table not found";
+        return;
+    }
+
+    if ( !bgrt->image_address )
+        return;
+
+    old_image = (const void *)bgrt->image_address;
+    bmp = old_image;
+
+    if ( bmp->signature != BMP_SIGNATURE )
+    {
+        bgrt_info.failure_reason = "Invalid BMP signature";
+        return;
+    }
+
+    image_size = bmp->file_size;
+    if ( !image_size || image_size > MAX_BGRT_IMAGE_SIZE )
+    {
+        bgrt_info.failure_reason = "Image size exceeds limit";
+        return;
+    }
+
+    /*
+     * Allocate memory of type EfiACPIReclaimMemory so that the image
+     * will remain available for the OS after ExitBootServices().
+     */
+    status = efi_bs->AllocatePool(EfiACPIReclaimMemory, image_size, &new_image);
+    if ( EFI_ERROR(status) )
+    {
+        bgrt_info.failure_reason = "Memory allocation failed";
+        return;
+    }
+    memcpy(new_image, old_image, image_size);
+    bgrt->image_address = (UINTN)new_image;
+    bgrt->header.checksum = 0;
+    checksum = 0;
+
+    for ( i = 0; i < bgrt->header.length; i++ )
+        checksum += ((const UINT8 *)bgrt)[i];
+
+    bgrt->header.checksum = -checksum;
+
+    /* Filling the debug struct for printing later */
+    bgrt_info.preserved = true;
+    bgrt_info.old_addr = old_image;
+    bgrt_info.new_addr = new_image;
+    bgrt_info.size = image_size;
+}
+
 /*
  * Include architecture specific implementation here, which references the
  * static globals defined above.
@@ -1671,6 +1802,8 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,

     efi_relocate_esrt(SystemTable);

+    efi_preserve_bgrt_img();
+
     efi_exit_boot(ImageHandle, SystemTable);

     efi_arch_post_exit_boot(); /* Doesn't return. */
diff --git a/xen/common/efi/common-stub.c b/xen/common/efi/common-stub.c
index 77f138a6c5..9e595600d7 100644
--- a/xen/common/efi/common-stub.c
+++ b/xen/common/efi/common-stub.c
@@ -20,6 +20,7 @@ unsigned long efi_get_time(void)

 void efi_halt_system(void) { }
 void efi_reset_system(bool warm) { }
+void __init efi_bgrt_status_info(void) { }

 int efi_get_info(uint32_t idx, union xenpf_efi_info *info)
 {
--
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 10:09:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 10:09:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260229.1553584 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4yhE-0001Nu-7X; Tue, 24 Mar 2026 10:09:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260229.1553584; Tue, 24 Mar 2026 10: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 1w4yhE-0001Nn-3c; Tue, 24 Mar 2026 10:09:12 +0000
Received: by outflank-mailman (input) for mailman id 1260229;
 Tue, 24 Mar 2026 10:09: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=SJqO=BY=gmail.com=soumyajyotisarkar23@srs-se1.protection.inumbo.net>)
 id 1w4yhC-0001Nh-Nz
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 10:09:10 +0000
Received: from mail-pf1-f193.google.com (mail-pf1-f193.google.com
 [209.85.210.193]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7df92f68-2769-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Mar 2026 11:09:08 +0100 (CET)
Received: by mail-pf1-f193.google.com with SMTP id
 d2e1a72fcca58-829a9d08644so2101756b3a.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 03:09:07 -0700 (PDT)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 41be03b00d2f7-c74665ca206sm11377434a12.18.2026.03.24.03.09.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 24 Mar 2026 03:09:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7df92f68-2769-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774346945; x=1774951745; 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=QCGqbl32Z3lKiFMrkcslcve9d2BQbKfcbIPf55C+jQE=;
        b=qo4vScjB3/t3snEO71DhOAiDNNJaof00lkDM0w+a5KfnTrWcmyIxCEv9px0eZJsrxB
         tkjhOCrEJLEr+Jcb4/4sk1UZUJMqwGkELZ00Tvbcq5rnpZZfC9+x+ZrPgV0rjqOrLWXQ
         D3j2bzYYJ5IOK2CIQqnlnuLu+wdyKdUZJLdbPy8cZO2D4dNCu0CsVxvo/sG4Hyw9X7kF
         Z3Qa/Oo4qCjzaDOp1IbYdtg6BaOEyjFVQITa947RsweTpEjZq3a7yaz+xcfPLYehP5/I
         xyyueRu/QCUmYra0UZXD3jYg2nHe64hie2hkU3AZeN8xPuEv8o7V9Kt+JxiVyom5PAVR
         h8RA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774346945; x=1774951745;
        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=QCGqbl32Z3lKiFMrkcslcve9d2BQbKfcbIPf55C+jQE=;
        b=pDMrZZyh0Zcl0tPeazJIC1j70F7NP6JprWabixn1dskVSGr1HOFygd28l9/c1hJvfZ
         dgeLpxCLFml0GHYkWeCsSRyx9dxKXjUXOBOM4OZYKnUSpJKoG9/Vq8GWaNd+mbm6mkRE
         UtrHzZxDxnpy9HhKOPfoPcWX4lnvepQf7H51g3hW+N02KvRSmHIO13d04XrKLs4GnZEF
         UXG2kUUoBOqrIphVVN7OtVBEcB63gJqIgrix2uWXSaxQBuHSzyB6dQAyil1WUqdYrjIf
         CNUKpYEBYAdjtLsc94yr5rkDymq+F9rpVI3fmWAVeCYguOtLJMr9jKaLIIQRj2CEBKuI
         YLOQ==
X-Gm-Message-State: AOJu0YywMvNBoeD4Ce2DBfFcO25vbZuuLj+CaPLBKOTQ7HPEXpksZay6
	nPLHcZ4fZY/pP2XnGob8CDe9nTEdMcKB0KcA+xGqbd5qPgCOW5kLvCiWlkOcji+L
X-Gm-Gg: ATEYQzyxaTfEuxxzGKjY+PLBcqM8ctgHv5M4skXFTHSlHC0JI80YQkSjL98JR90bxpQ
	m3T76qhLrcPxEyj4/XIALKT6cniDNNQy9zTmnxXkv6Diu5CW2n70U1Eips2Fh6WLzm8Elm1KgdH
	y/HCLx+kjbrZfS0M53LsazCkmqPcYd5c+4EwcfQCwxMzld2r4Df4OX+QiK/vIPzGwx9mclQAOV2
	XiUEZcH4SJBTBUIzp0HlsGejnmc/rYBuJ5EbUOAXk6jbJCSFM5dSzoMUmC+a8gVpH8So/YOWnnE
	5BThrMOTuTkbYIQtHcrCsmktnsFcj5tpAA6cbbi+3f36Sg2Cf+kYgKNWEm3X7/e05Cxunp3Q4XJ
	N4hjFa8ihDkCTCsb32eq0kB6SW5AaK27+rY4xBzqaUEKoRfcj8mz+fk6NlGTLAnVagI5JIoHVKz
	UY+segqcnuQ7lKCKx0DES/qIuAdNpP/QJ9GP4EckLxKISvTokjClIl5yAAoG+kYf2qPWkAdawfX
	z5zyQ8zO+g2I3OenFPDOx9LDmDblM9K1QZMWDa20PdzsaZk7LrLxMpTXPJXHZKYCrmP2ifsKA==
X-Received: by 2002:a05:6a20:4304:b0:398:71b6:33aa with SMTP id adf61e73a8af0-39bcec312ccmr14913772637.64.1774346945235;
        Tue, 24 Mar 2026 03:09:05 -0700 (PDT)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: xen-devel@lists.xenproject.org,
	sarkarsoumyajyoti23@gmail.com
Cc: "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [PATCH v4 0/3] Fixing ACPI BGRT (Boot Graphics Resource Table) corruption
Date: Tue, 24 Mar 2026 15:38:53 +0530
Message-ID: <20260324100856.6691-1-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This RFC series plans to addres ACPI BGRT (Boot Graphics Resource Table) corruption,
that occured when Xen reuses the memory containing the boot logo
image before dom0 is able to parse ACPI tables.

The BGRT table contains a pointer to a BMP image stored in
BootServicesData memory. When Xen reclaims this memory early in boot,
the pointer becomes invalid, causing Linux dom0 to report:
Xen: `(XEN) ACPI: BGRT: invalidating v1 image at 0x47cc2018`
Linux (dom0): `ACPI BIOS Warning (bug): Incorrect checksum
in table [BGRT] - 0xF9, should be 0xB4 (20250807/utcksum-58)`

This series:
1. Adds BGRT image preservation infrastructure during EFI boot
(validates BMP format, allocates EfiACPIReclaimMemory, stores pointers)

2. Integrates preservation with ACPI subsystem
(clarifies acpi_invalidate_bgrt() safety net behavior,
adds status reporting via efi_bgrt_status_info())

3. Provides opt-out mechanism
(-nobgrt for xen.efi direct boot, efi=no-bgrt
for multiboot2, both via early EFI-phase parsing)

The preservation is enabled by default to fix the corruption for all
users, with minimal overhead (~1MB). Also, servers that don't need boot
graphics can disable it using the "efi=no-bgrt" option.

Thank you everyone for the constructive feedback! It is really helpful,
I hope this RFC series is upto standards, I would greatly appriciate further feedback.

Changes since v1:
- The BGRT invalidation behaviour should still presist
  and server as a safety net when "efi=no-bgrt" or the
  preservation fails for some reason thus: Add Clarify comment
  for BGRT invalidation behavior with preservation.
Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Changes since v2:
- Use existing ACPI headers (actbl.h, actbl3.h) instead of custom structs
- Modify the function names and code in function to conform with Coding Style.
- Reuse efi.acpi20 from efi_tables() instead of manual RSDP search
- Use appropriate types: EFI types for firmware code, unsigned int for
  loop counters (matching ESRT pattern)
- Used of sizeof(<expression>) over sizeof(<type>)
- Remove fixed-type widths & limited typecasting
- Add Blank line ahead of the main return statement of a function.
- Better wording error message for image cap size
- Remove parse_boolean(no-bgrt) since it could be bit misleading
- Add const qualifiers throughout for safety
- Use %p format for pointers (32-bit compatibility)
- Initialize failure_reason with string literal for proper relocation
- Use memcmp() with ACPI_SIG_* constants for signature checks
- Add direct Xen.efi calling.
- Add opt-out mechanism with proper early parsing during EFI phase.

Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reported-by: Jan Beulich <jbeulich@suse.com>

Changes since v3:
- Fix casting away const issue.
- Add Stub function
Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>

Please refer to QubesOS Issue for more context:
https://github.com/QubesOS/qubes-issues/issues/10764

This is a companion series to Linux Kernel side at
https://patchew.org/linux/cover.751f45ebbb644244b1d9da3aff289d6b66db4c6b.1773058629.git-series.marmarek@invisiblethingslab.com/

Testing:
- Verified on Intel UEFI system with Fedora 43 dom0
- Before: ACPI checksum errors in dom0
- After: Clean boot, no ACPI warnings
- Memory overhead: ~972 KB (preserved image size)

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>

Soumyajyotii Ssarkar (3):
  x86/efi: Add BGRT image preservation infrastructure
  x86/acpi: Integrate BGRT preservation with status reporting
  x86/efi: Add opt-out mechanism for BGRT preservation

 xen/arch/x86/acpi/boot.c     |   8 ++
 xen/arch/x86/efi/efi-boot.h  |   5 ++
 xen/common/efi/boot.c        | 158 +++++++++++++++++++++++++++++++++++
 xen/common/efi/common-stub.c |   1 +
 xen/include/xen/efi.h        |   1 +
 5 files changed, 173 insertions(+)

--
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 10:09:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 10:09:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260231.1553602 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4yhL-0001rk-LN; Tue, 24 Mar 2026 10:09:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260231.1553602; Tue, 24 Mar 2026 10:09:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4yhL-0001rV-HT; Tue, 24 Mar 2026 10:09:19 +0000
Received: by outflank-mailman (input) for mailman id 1260231;
 Tue, 24 Mar 2026 10:09:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SJqO=BY=gmail.com=soumyajyotisarkar23@srs-se1.protection.inumbo.net>)
 id 1w4yhK-0001Nh-7r
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 10:09:18 +0000
Received: from mail-pf1-f196.google.com (mail-pf1-f196.google.com
 [209.85.210.196]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 835e60d7-2769-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Mar 2026 11:09:16 +0100 (CET)
Received: by mail-pf1-f196.google.com with SMTP id
 d2e1a72fcca58-82c4b5dfe6cso948241b3a.2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 03:09:16 -0700 (PDT)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 41be03b00d2f7-c74665ca206sm11377434a12.18.2026.03.24.03.09.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 24 Mar 2026 03:09:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 835e60d7-2769-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774346954; x=1774951754; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=S7lJOGAyXgWXm5RAImeMolbrvF/QPjaKzs3OuvcIdvo=;
        b=YxPwxc2SlyXElmo7X+3rbbmq6Fu192D7n9jpOa/CKoJ99PbxKGW6xRGzHYBIkY4mKi
         UdNVLkHXgvbRGoN0kAAUp179XYDxMDGxSZylGLmE0sQ4NV24WJdoRLghpUfMTyKbGoQJ
         TreSwjGP1P09OjE/Mze1R9pWeIlPi+6ojeuItg+zLJpzTGRZrqFOO5RCQnMYtUNOlYTS
         YfGGIhsh09dwyJExrXaDeG9gRuIPNivqlEuw71xj2/pOExJ4UTCvO20/AzlQaQ5VzZOu
         jb0r9sM1cOgLaVDQofyQr7UymDRXxI4INhi8D/B5y4tsVgwa3kQ75UTWLzLFf2slR1el
         h9yQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774346954; x=1774951754;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=S7lJOGAyXgWXm5RAImeMolbrvF/QPjaKzs3OuvcIdvo=;
        b=k7NUA7GFf1V5HfRli0bqEeoPOqm89+Txi5Xhh7rRJ6TK9V4qsHJMNgag8QXtjaHqgd
         A7Y4ev/P4skjKQzy6UCYo1djJZ1bMTMzJQhuP0oGbVjHiYw77nvNBScfevj0WB3f7Alu
         EjCLoHRRqRUCtFGnX4+1XDmQrv6uxIxwgPifttK3KrkOZaCmOOg4Gt1/gPO94F3qJ6Dp
         udSsxbAwMzEqAXsTIk+ig6mYSKPNHpGzMfD6GMkwtgSbaKFiaN4UY01kxXvGt+d5mucu
         fIQWk/6HUj4+avl/9kmNwgrNQ3jHjnR2XuW/AwUYXvrWLy2uwnZAT/ZGFdufhap/Xhdr
         6HeQ==
X-Gm-Message-State: AOJu0YwKmUKIfYXw6mMeLV+Ns2Dk1hRnZdbzuSkcDWBq0MYIauQXdyTT
	KxsHzd/OfCKFD/zQdXydA8UCUzD70ZPMTXyIDWGos85+Jj/U80e6ZzwhcnW7qGFv
X-Gm-Gg: ATEYQzy1XVYnw11RFNBwPZ5bP/eLiwdZPdLkd3tHwkEDugbjcKJPDxUCB2gI8VEBgkx
	Jcqz4kIbvnP2LLQZ/TjDoztpuswzPlKv2nFUjUx45Civ8V2Q9KWVTCCXskbhKUQngUHsP5Y8931
	NwVb1ERA3ppSzZsvqhFRwao8lBzOuX1+29v+d9UCcuCH2GwU/qKgp/+8mqsZhQT0jyXy8nQyYXb
	JWLdVe/shIJWxhbO7s7/F2Rn0t1BU6OA6EI4RmbgeBZoR8OSb7auaZjEQfjDcPlapTU4h8Acg4O
	rdARZMZos8DYtWyJ9XfcWUhdcsReOR15MFeBrsYksenMcnj4HvYzlkB9PO+4sCSwa8H4Hj+m4Of
	WOq1bpTU6iL0xnNBpv2TotLtjxgaleKnq0w1WlNMAj5iIvW+o4O8Bes7eQuE4bAkiDYObdbAB1D
	J2+uTFYsmCnInfDt1GcxngKGOwIm2Bn3j6xLRUebVEfPmwkfOub2zt6UMpA/nqW05qv9/pieQEs
	5f3irhZOBehlMbvabhvWHeQYX0oFG4IOFJM1erlnVz0Z/Pk8ashgNmqRDpvRTzico0HWtvNjw==
X-Received: by 2002:a05:6a20:9189:b0:398:c170:1c7 with SMTP id adf61e73a8af0-39bcea27c41mr14127397637.26.1774346954322;
        Tue, 24 Mar 2026 03:09:14 -0700 (PDT)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: xen-devel@lists.xenproject.org,
	sarkarsoumyajyoti23@gmail.com
Cc: "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [PATCH v4 2/3] x86/acpi: Integrate BGRT preservation with status reporting
Date: Tue, 24 Mar 2026 15:38:55 +0530
Message-ID: <20260324100856.6691-3-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324100856.6691-1-soumyajyotisarkar23@gmail.com>
References: <20260324100856.6691-1-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add status reporting for BGRT preservation and integrate with Xen's
ACPI subsystem:
- efi_bgrt_status_info() prints preservation status (success/failure)
- Called from acpi_boot_init() after ACPI tables are processed
- Clarifying comment explains why invalidation code remains

The invalidation code in acpi_invalidate_bgrt() now acts as a safety
net: if preservation fails, the image remains in conventional RAM
and gets invalidated. If preservation succeeds, the image is in
EfiACPIReclaimMemory which won't match the RAM_TYPE_CONVENTIONAL
check, leaving the table valid.

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
---
 xen/arch/x86/acpi/boot.c |  8 ++++++++
 xen/common/efi/boot.c    | 16 ++++++++++++++++
 xen/include/xen/efi.h    |  1 +
 3 files changed, 25 insertions(+)

diff --git a/xen/arch/x86/acpi/boot.c b/xen/arch/x86/acpi/boot.c
index 1ca2360e00..20afe79db9 100644
--- a/xen/arch/x86/acpi/boot.c
+++ b/xen/arch/x86/acpi/boot.c
@@ -29,6 +29,7 @@
 #include <xen/mm.h>
 #include <xen/param.h>
 #include <xen/dmi.h>
+#include <xen/efi.h>
 #include <asm/fixmap.h>
 #include <asm/page.h>
 #include <asm/apic.h>
@@ -327,6 +328,11 @@ static int __init cf_check acpi_parse_hpet(struct acpi_table_header *table)
 	return 0;
 }

+/*
+ * Invalidate BGRT if image is in conventional RAM (preservation failed).
+ * If preservation succeeded, image is in EfiACPIReclaimMemory, which
+ * won't match RAM_TYPE_CONVENTIONAL check, so table remains valid.
+ */
 static int __init cf_check acpi_invalidate_bgrt(struct acpi_table_header *table)
 {
 	struct acpi_table_bgrt *bgrt_tbl =
@@ -754,5 +760,7 @@ int __init acpi_boot_init(void)

 	acpi_table_parse(ACPI_SIG_BGRT, acpi_invalidate_bgrt);

+	efi_bgrt_status_info();
+
 	return 0;
 }
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 47d5b9b2a8..e22a42c15b 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -1911,6 +1911,22 @@ static bool __init cf_check rt_range_valid(unsigned long smfn, unsigned long emf
     return true;
 }

+void __init efi_bgrt_status_info(void)
+{
+    if ( !efi_enabled(EFI_BOOT) )
+        return;
+
+    if ( bgrt_info.preserved )
+    {
+        printk(XENLOG_INFO "EFI: BGRT image preserved: %lu KB\n",
+               bgrt_info.size / 1024);
+        printk(XENLOG_INFO "EFI: BGRT relocated from %p to %p\n",
+               bgrt_info.old_addr, bgrt_info.new_addr);
+    }
+    else if ( bgrt_info.failure_reason[0] )
+        printk(XENLOG_WARNING "EFI: BGRT preservation failed: %s\n",
+               bgrt_info.failure_reason);
+}

 void __init efi_init_memory(void)
 {
diff --git a/xen/include/xen/efi.h b/xen/include/xen/efi.h
index 723cb80852..e72ab3c6b5 100644
--- a/xen/include/xen/efi.h
+++ b/xen/include/xen/efi.h
@@ -39,6 +39,7 @@ static inline bool efi_enabled(unsigned int feature)
 extern bool efi_secure_boot;

 void efi_init_memory(void);
+void efi_bgrt_status_info(void);
 bool efi_boot_mem_unused(unsigned long *start, unsigned long *end);
 bool efi_rs_using_pgtables(void);
 unsigned long efi_get_time(void);
--
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 10:09:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 10:09:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260233.1553611 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4yhO-00028D-TQ; Tue, 24 Mar 2026 10:09:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260233.1553611; Tue, 24 Mar 2026 10: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 1w4yhO-00027y-PI; Tue, 24 Mar 2026 10:09:22 +0000
Received: by outflank-mailman (input) for mailman id 1260233;
 Tue, 24 Mar 2026 10:09:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <soumyajyotisarkar23@gmail.com>) id 1w4yhN-00026j-QF
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 10:09:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4yhN-00DoZ0-5o
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 11:09:21 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <soumyajyotisarkar23@gmail.com>)
 id 69c262cc-5cb7-0a2a0a5109dd-0a2a4501c010-38
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 11:09:21 +0100
Received: from [209.85.215.195] (helo=mail-pg1-f195.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <soumyajyotisarkar23@gmail.com>)
 id 69c262cf-6400-0a2a45010019-d155d7c3b9bd-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 11:09:20 +0100
Received: by mail-pg1-f195.google.com with SMTP id
 41be03b00d2f7-b6ce6d1d3dcso1718830a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 03:09:20 -0700 (PDT)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 41be03b00d2f7-c74665ca206sm11377434a12.18.2026.03.24.03.09.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 24 Mar 2026 03:09:18 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774346958; x=1774951758; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6/EFfTLPPvtpKfYbDxMVwQU9jDgu7ScMy19tpR6gQjI=;
        b=iO+M95tGN3SrZhIKEBrDAqOk/orMML6o2EbcUwCf/L1IM34n6/fZWyf5ow4qI+4QNa
         ZFCBdM0aSHOKHX/FxfnQ2uEHkdBoaelXzCqT8oT0gbq6bjvLV+JF+1dgGnXkVfNHshND
         O97Lj6vvvG0jH+9e+vVAspUyQs58xolJ2Jef6DmjnhtGO2M1XhCRhf2tWJD9GMRYEbj3
         qFLDmtBvKQgsf0Mh0j+CYnHsZZIPTxC/Z3kkr75TqXQnTMOGwsXNOj+2HtMmagEC9Uw/
         RXDRh2/guUl2liKb2ypyGe0spXpgIqCG8hG8NGcfSmHK2tTkAQW8AYjyIAcBYWzB7kqN
         +B6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774346958; x=1774951758;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=6/EFfTLPPvtpKfYbDxMVwQU9jDgu7ScMy19tpR6gQjI=;
        b=sjTXw13tI9AVwLnexsBk/e2y2dgIhqBJV4eSHvi+0cljgOPYx62hwoeDggAX9N34t4
         emx58Jpr3gtBO7mpUGrFG4RBMPOKCReH2TtpWqnvJDpO7FrbEsR+1Y+fuSdk6S/FkJUm
         HkLyILadEkbssjS+dcdmpFDDakeTjjriDhYsqagRllG3rrBjQdZU3sTL9Erxute3XCOH
         WIwXG18XqAbPl3HaiG5drhTh73rDII2vky51ktRTg8h+848wgexRtZcH/ZyZX2VXjOZa
         zTElHpwO5y8P4bCe6WhLtWL6Dnit0KOqy4aoBsR5lo8D7fCoaUR/S5FDAg4Py9sMtrVa
         tE7g==
X-Gm-Message-State: AOJu0YyhtKJ3P5jr6HLzTATpcFWpvf+y59J9sbqxcPzlWf5Vg6GOThS8
	1qVDvDt6SSs2YymTfuWkrNv8Zjvm1xIee4GFP+II4PDAzJ5JJxPE8gkmja0xNjee
X-Gm-Gg: ATEYQzxP7bzNAxburHvsVx39c46QRA1UCAaSP3e/i9MFN7zaEG4zFMp2+Pc0pqz0Teg
	j2AH6oUYd4EMZA5gaEBO25s31Q5r3jK+93BLYpmCRI1xCxmSbbqwjTJCqINNb3V+8a1H7KBeqVX
	QLiNJRvJ62Sq3ACSDKnjwcfETx5jTbBVxAKxfeqrbxAbKtTTTodaikmopMqJ0h0N2z8+YWq32u2
	4RL9ZwfrMfKvvw68/57n1wvbtuH64m16xQCg1QUeRnkm8pawD2a0XU9axnr+zosp0Y2SIkTL05q
	Tgm/KMj5biCN5KWy/iOv9YJeCyb9sT9Wmc1Nk+42wjNLQvgq0iA5RN+lLzEfT8htfbJ2/26++9K
	DU0w6OW8mEI9Bs+n1yVsPw+SjiEnrmuCkxWte1RejNslzB3I6+dmXMmOvAP04GbKVIRI0jCPhpk
	xJhRenIWqh9eNH3Z2Xqp1/hbPbfVnpf0v4e0XBWwjokjvLhKk4XAXzgxlZwYOKOTjkwC1WKVgFj
	MMzYxGw1QsR0p41jmfri7j5ZpuapHafl/HoNIjtqWlS+zMKT3Y4za3fRl6inhB2Rzx/ZHZHaD/z
	hmcvit4r
X-Received: by 2002:a05:6a20:431c:b0:398:9ae9:710f with SMTP id adf61e73a8af0-39bce9b4fecmr13718713637.13.1774346958490;
        Tue, 24 Mar 2026 03:09:18 -0700 (PDT)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: xen-devel@lists.xenproject.org,
	sarkarsoumyajyoti23@gmail.com
Cc: "Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [PATCH v4 3/3] x86/efi: Add opt-out mechanism for BGRT preservation
Date: Tue, 24 Mar 2026 15:38:56 +0530
Message-ID: <20260324100856.6691-4-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324100856.6691-1-soumyajyotisarkar23@gmail.com>
References: <20260324100856.6691-1-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1774346961-204F7DF3-C8C0A6EB/0/0
X-purgate-type: clean
X-purgate-size: 3800

BGRT preservation is now enabled by default to fix ACPI corruption
for desktop/workstation systems (similar to ESRT).

As described in the task:
https://github.com/QubesOS/qubes-issues/issues/10764

Add an opt-out parameter to allow disabling BGRT preservation on
systems where the ~1MB memory overhead is not desired.

The opt-out is implemented through two boot paths with early parsing
during the EFI boot phase before preservation runs:

1. xen.efi direct boot: '-nobgrt' command line option (parsed in
   efi_start())
2. Multiboot2 (GRUB): 'efi=no-bgrt' peeked from mb2 cmdline tag
   using get_option() in efi_multiboot2()

The flag is checked at the start of efi_preserve_bgrt_img() to
skip preservation entirely when disabled. Status logging indicates
whether preservation was disabled, succeeded, or failed.

Usage:
  Default: BGRT preserved automatically
  xen.efi: Add '-nobgrt' option
  GRUB/MB2: Add 'efi=no-bgrt' to Xen command line

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
---
 xen/arch/x86/efi/efi-boot.h |  3 +++
 xen/common/efi/boot.c       | 11 ++++++++++-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 0547d845cd..6c986cf6c0 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -897,6 +897,9 @@ void __init efi_multiboot2(EFI_HANDLE ImageHandle,
         efi_arch_edid(gop_handle);
     }

+    if ( cmdline && get_option(cmdline, "efi=no-bgrt") )
+        opt_bgrt_disabled = true;
+
     efi_arch_edd();
     efi_arch_cpu();

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index e22a42c15b..a4db7ee516 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -170,6 +170,7 @@ static SIMPLE_TEXT_OUTPUT_INTERFACE *__initdata StdErr;

 static UINT32 __initdata mdesc_ver;
 static bool __initdata map_bs;
+static bool __initdata opt_bgrt_disabled = false;

 static struct file __initdata cfg;
 static struct file __initdata kernel;
@@ -825,6 +826,9 @@ static void __init efi_preserve_bgrt_img(void)

     bgrt_info.preserved = false;

+    if ( opt_bgrt_disabled )
+        return;
+
     bgrt = efi_get_bgrt();
     if ( !bgrt )
     {
@@ -1582,6 +1586,8 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
                     base_video = true;
                 else if ( wstrcmp(ptr + 1, L"mapbs") == 0 )
                     map_bs = true;
+                else if ( wstrcmp(ptr + 1, L"nobgrt") == 0 )
+                    opt_bgrt_disabled = true;
                 else if ( wstrncmp(ptr + 1, L"cfg=", 4) == 0 )
                     cfg_file_name = ptr + 5;
                 else if ( i + 1 < argc && wstrcmp(ptr + 1, L"cfg") == 0 )
@@ -1592,6 +1598,7 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
                     PrintStr(L"Xen EFI Loader options:\r\n");
                     PrintStr(L"-basevideo   retain current video mode\r\n");
                     PrintStr(L"-mapbs       map EfiBootServices{Code,Data}\r\n");
+                    PrintStr(L"-nobgrt      disable BGRT preservation\r\n");
                     PrintStr(L"-cfg=<file>  specify configuration file\r\n");
                     PrintStr(L"-help, -?    display this help\r\n");
                     blexit(NULL);
@@ -1916,7 +1923,9 @@ void __init efi_bgrt_status_info(void)
     if ( !efi_enabled(EFI_BOOT) )
         return;

-    if ( bgrt_info.preserved )
+    if ( opt_bgrt_disabled )
+        printk(XENLOG_INFO "EFI: BGRT preservation disabled\n");
+    else if ( bgrt_info.preserved )
     {
         printk(XENLOG_INFO "EFI: BGRT image preserved: %lu KB\n",
                bgrt_info.size / 1024);
--
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 10:10:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 10:10:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260261.1553620 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4yit-0004Mm-CG; Tue, 24 Mar 2026 10:10:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260261.1553620; Tue, 24 Mar 2026 10:10:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4yit-0004Md-9L; Tue, 24 Mar 2026 10:10:55 +0000
Received: by outflank-mailman (input) for mailman id 1260261;
 Tue, 24 Mar 2026 10:10:54 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w4yis-0004MP-29
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 10:10:54 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4yip-008MHv-SZ
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 11:10:53 +0100
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c2631c-e002-0a2a0a5209dd-0a2a4509c0f2-38
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 11:10:53 +0100
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c2632d-e484-0a2a45090019-d155802ec9d7-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 11:10:53 +0100
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-48558d6ef83so35928225e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 03:10:53 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b85082842sm2055179f8f.20.2026.03.24.03.10.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 03:10:52 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774347053; x=1774951853; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3JRejXtCeGd/OoEoIMJMbl9UfJCaBXMdq+WBbJKtwzw=;
        b=AH11+W896aWlny14cH6iVCRXIpji0/OophOrnQSR+SPt3zbtaYAFUVcPGHpbDCvLHM
         IBiW4eJOqx44R7K4xCv/F//TFrW4pebAwYcsOZ/bWlDlllE32m2BcKnuQqI/u1CmWxow
         /OfpkTiAI+ESqsMF5Zlq7NGOgC654rnd5DOoRivlOdT/xZvaT389QQ7PEkQSrYyzPI2N
         w6V5QaQe1q3kdSknh8MGsCcFotFM3oQDEGaRfxNmrlBnTPL8M5tzzej42fWPAtMLezIf
         k76q6ZBQ8lxdpyvp298T7FqZWmbSIGJEFTU3O0F1kgMVQTv3qE3pFgRF4duAF7JTtjNN
         VSgg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774347053; x=1774951853;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3JRejXtCeGd/OoEoIMJMbl9UfJCaBXMdq+WBbJKtwzw=;
        b=Aw4wD8n5XM13LBlhgw7AVwH8iMzoqehXMpQLoSs2CQc/Fv4gtQBTgQ/ZdIziHPSRQK
         dCVkM5TOEL6TVIm3WBcO3qWREjF6I2Bz/LUgo16HQV+S8JGg4kf8ralMvr2mKDzo+HbS
         Go79F31vBeSV6e8U8QirxxF5tvKxhIlJNAAHvmxmEvHr5+sGpnpzAAZOs6kS0gUJy2fJ
         VHQ4TzAoDyvf13TXRc78uarvxFqm9L8puMGRWjWhGMHZ7PQTHk6Xikp4pcly4XJ4nPbg
         WoMiN5tAy0tUKaO/5wh2H48FytZ/AQvZixSW0qrVhBmirQvqwynGQwM1BWj+0AtrjL+J
         6iFQ==
X-Forwarded-Encrypted: i=1; AJvYcCXTdC+v2doVMJXPn7TvXhUj7dnI08q1oHl0LFnHVQRY1IlBzJezswcvpWsvghzhm6jCpyPWI6zgmMM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwH/MFWE+Esk7BPukQcGY7W7q/TuGQNyhlO5KC/Yma1q2Li1N2Q
	D2qLjohvHW9V07bLqiA4RvbEw/8VURclD4f8SKq2uSLkp59upAqozvJW9QzPXzEyIA==
X-Gm-Gg: ATEYQzy0XjbXGjC0sAeOZIrulU1A4gaOV7XLyEVPdDnvcHXcKE4tSsJsYWv17MlLofn
	vCHiymVTByF2EmlOxiuz0E2NIRkGcnu/obpK9O6Ei2LX+kd1kmz0zQdrPTIuQUJgev+4DhJI1Dw
	5ugTi/NJqQ9DsFMfVJrzRonAYUy9WnxG+zXfc/vBDfBH11L8c9UKmyEnUPHC3PLI4vbFpkykyxJ
	tnYN6c9geidY6ku+Yl9hua7RwYVmxXy2Cptscv8Adcd39WFlUuBw0wp/p5F2JkS8ViLvwmfHxT8
	0AGLquqO1acnuURQ+c9ZgGFYKDukzo8Vai9yVtqlm7xa+h3v2iB7zFoDQwkgentGuD1iA4dMXlz
	WVujoTp7B4GCO+V0Gtt2RHYDld9u3PY+tesNTO+UiKJestFV/IlMEx3XCyu1/Js3XSIXYLYlkRY
	EsWrL2z8c91lkJvR8M5H+h9RAhbbuPxhcyP739t/ztH38ZJZ2hBQP1rxdaMosLXtZ+U3Bc+FyCJ
	1T7fR/HRM6Ss1E=
X-Received: by 2002:a05:600c:c16e:b0:485:9a50:3370 with SMTP id 5b1f17b1804b1-486fedb9497mr197120685e9.8.1774347052562;
        Tue, 24 Mar 2026 03:10:52 -0700 (PDT)
Message-ID: <07305e5e-0487-45b2-8518-932dbcd92a13@suse.com>
Date: Tue, 24 Mar 2026 11:10:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/domain: make shutdown state explicit
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>, Paul Durrant <paul@xen.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Tim Deegan <tim@xen.org>,
 Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>,
 George Dunlap <gwd@xenproject.org>, xen-devel@lists.xenproject.org
References: <2004584dbbe393c9de4b3231bf91a24f6e5de5de.1773875416.git.mykola_kvach@epam.com>
 <c37859f7-bac6-4394-ae12-83e054a1743e@suse.com>
 <CAGeoDV8v3=b46qrmzmBjH8BN7rs3CRcSAkrOCgHGgr=8+PcuEg@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: <CAGeoDV8v3=b46qrmzmBjH8BN7rs3CRcSAkrOCgHGgr=8+PcuEg@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1774347053-63AA4A73-B2450B3F/0/0
X-purgate-type: clean
X-purgate-size: 434

On 24.03.2026 11:00, Mykola Kvach wrote:
> If you think naming is part of the confusion, I could switch to
> something along these lines instead:
> 
>   - domain_shutting_down()      for the in-progress state
>   - domain_shutdown_completed() for the finalized state
>   - domain_in_shutdown_state()  for the union of both
> 
> Would that look better to you?

Yes, but please give others a chance to voice opinions.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 10:17:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 10:17:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260275.1553638 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4ypS-0005Le-6Y; Tue, 24 Mar 2026 10:17:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260275.1553638; Tue, 24 Mar 2026 10:17:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4ypS-0005LX-3i; Tue, 24 Mar 2026 10:17:42 +0000
Received: by outflank-mailman (input) for mailman id 1260275;
 Tue, 24 Mar 2026 10:17:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <soumyajyotisarkar23@gmail.com>) id 1w4ypR-0005L7-5g
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 10:17:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4ypQ-0063h1-I8
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 11:17:40 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <soumyajyotisarkar23@gmail.com>)
 id 69c264c4-2eae-0a2a0a5409dd-0a2a4507e97c-0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 11:17:40 +0100
Received: from [209.85.216.66] (helo=mail-pj1-f66.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <soumyajyotisarkar23@gmail.com>)
 id 69c264c2-fd74-0a2a45070019-d155d842cce5-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 11:17:40 +0100
Received: by mail-pj1-f66.google.com with SMTP id
 98e67ed59e1d1-35a1f549e7eso2174018a91.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 03:17:39 -0700 (PDT)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-35c031412f2sm1939382a91.7.2026.03.24.03.17.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 24 Mar 2026 03:17:37 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774347458; x=1774952258; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vMyU7Zt+Npx8war2PFOLJHgfUteMUgErNfOEenK+5EA=;
        b=hFgvvYm7JK4qpzrHClfHA2EgU2oGJeIj8TNTsQHRr549XY6B6NzyBCd3I8gCW3apB7
         Fn4+mrbaIyPwBH5yqbrFtwDwRmLkc8fnJL+BXJaCTsSz0vOIxYOogO2TT7z6hjdQHKWf
         KUdv70bfh2dMdPM3DxnY8VISbAjnTZRdnDFjEZbtIjk3HknC29svknlJojRYIfZnwveo
         yUEICIhTD/ngKYNI5+XbUp3Q9lxXmwZOREdv+23N/tHWcN63uDaUeqh95/eG0vItx8fn
         Wh51ggrWy2oyu7tAcZbmnE+oKOnUuhjPiSxDPcdy8S6VSnMThgBHfgLuJykDFgEWwLSi
         t+fQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774347458; x=1774952258;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=vMyU7Zt+Npx8war2PFOLJHgfUteMUgErNfOEenK+5EA=;
        b=dHWnV5+HBASObTZhrfGkUuvpVO2GMvAiCaKNoIOHljpFdmslq1BNcUWT7Z6bx/ohKJ
         /tAkThuWUI4k6H9uwAVqUaQsLeLZ6RUYIM8RPUr8r5dTbeHF8BCVRuTqCf+xYOXf2bjk
         RsIAZu+7Oh3uS5g3ZcjqmNCyROEFkosn+aQuNvbDLzabmDhXUb+qHJVp8qBYe64IYu53
         XAing7KlC/RzOfwUrNsDZZUZMAxmLLb9MVjX/YbotqEKnMzsSjXiKDbhSD1hS5jeLqqI
         m+tKzofOoR+03ycceBwuc+kXbohr0fcPldHrm+9wh8G3Sv2JgusbGyfKSf4ddOYQDkAQ
         k4Rw==
X-Gm-Message-State: AOJu0Yz/sl1QvR3cC/pwM43a8pm9HJxE6aWlVTx2JpAPgYygPb8+vScB
	Ve4CCJbirW5NKzD0LL9E/KS6tqUVj9i8uZej90KfPqIOa+bNQb2kWme/fl2g3MDv
X-Gm-Gg: ATEYQzw8jLLfuHDGiiBCdijxGAyOJANBDL8wOTLKVxNkJYz6bSmhfGnDWIo1CbmcUhF
	eILIpGPuS84ClwS4ZNNOSYRDKH4fNLGTkiV8NosZr6XCbvenXw7fWqgA63O39/QuayhBYmCh/5H
	gnVE1xwQ3eQeXnYNpIihqlmKxFqUkHEKXM9ozneTIl6eSqV/Ce54ppHxi5kkxidgHNdyapmFdZz
	b/KW9HnwmEIQVhwDTf+pNUdYNobKFQGHSmnCmIvLczFiKxdhItDMb6yM5HEkzaIk9Qyvg4Mjsy0
	zHPMa2Tv4LwNTF9sOr5cXiDYn6gVU8bugc7bdi4tQq1u0gxcFWZhcy9Sj3tFNzrWsACvQNAfPbm
	LFqAcJwHcjxIkhf4TREmDZOvAZLN1qb/efl4qrcLbEvsBFTPpmniXGvZR4ZhA2DB8aiFT13ja1M
	NbxmFpilU4vTZRkNhzVkDrVyWY624zoQ4sVruIJ4/7nFSMHRQleAdtrhozU0DFrJOTUn9+XoicS
	JhBtfbnLetjUyUiBQVHVSjCOLbBgWcs2Q/9i73wpxKS38C2hk2NqF93rV3TVzEvBvqEIrfGEA==
X-Received: by 2002:a17:90b:3d03:b0:35b:9682:51dd with SMTP id 98e67ed59e1d1-35bd2cde5a4mr12713503a91.24.1774347457887;
        Tue, 24 Mar 2026 03:17:37 -0700 (PDT)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: xen-devel@lists.xenproject.org,
	sarkarsoumyajyoti23@gmail.com
Cc: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [PATCH v4 1/3] x86/efi: Add BGRT image preservation infrastructure
Date: Tue, 24 Mar 2026 15:47:24 +0530
Message-ID: <20260324101726.6929-2-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324101726.6929-1-soumyajyotisarkar23@gmail.com>
References: <20260324101726.6929-1-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1774347460-576A7303-9BBDAAFE/0/0
X-purgate-type: clean
X-purgate-size: 6339

Add core EFI boot services code to preserve BGRT (Boot Graphics Resource
Table) images during Xen boot. The BGRT contains a pointer to a boot logo
stored in BootServicesData memory. Without preservation, this memory is
reclaimed causing ACPI checksum errors in dom0.

Implementation:
- Walk XSDT to locate BGRT table (reusing efi.acpi20 from efi_tables())
- Validate BMP image signature and size constraints (max 16MB)
- Allocate EfiACPIReclaimMemory and copy image data
- Update BGRT table with new address and recalculate checksum

The preservation follows the ESRT pattern, running before
ExitBootServices() to ensure image remains accessible.

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
---
 xen/arch/x86/efi/efi-boot.h  |   2 +
 xen/common/efi/boot.c        | 133 +++++++++++++++++++++++++++++++++++
 xen/common/efi/common-stub.c |   1 +
 3 files changed, 136 insertions(+)

diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 42a2c46b5e..0547d845cd 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -910,6 +910,8 @@ void __init efi_multiboot2(EFI_HANDLE ImageHandle,

     efi_relocate_esrt(SystemTable);

+    efi_preserve_bgrt_img();
+
     efi_exit_boot(ImageHandle, SystemTable);
 }

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 967094994d..47d5b9b2a8 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -1,12 +1,16 @@
 #include "efi.h"
 #include <efi/efiprot.h>
 #include <efi/efipciio.h>
+#include <acpi/acconfig.h>
+#include <acpi/actbl.h>
+#include <acpi/actbl3.h>
 #include <public/xen.h>
 #include <xen/bitops.h>
 #include <xen/compile.h>
 #include <xen/ctype.h>
 #include <xen/dmi.h>
 #include <xen/domain_page.h>
+#include <xen/errno.h>
 #include <xen/init.h>
 #include <xen/keyhandler.h>
 #include <xen/lib.h>
@@ -747,6 +751,133 @@ static void __init efi_relocate_esrt(EFI_SYSTEM_TABLE *SystemTable)
     efi_bs->FreePool(memory_map);
 }

+typedef struct {
+    UINT16 signature;
+    UINT32 file_size;
+    UINT16 reserved[2];
+    UINT32 data_offset;
+} __attribute__((packed)) BMP_HEADER;
+
+static __initdata struct {
+    bool preserved;
+    const void *old_addr;
+    const void *new_addr;
+    UINTN size;
+    const char *failure_reason;
+} bgrt_info = {
+    /* We would prefer the failure_reason to print */
+    .failure_reason = "",
+};
+
+static struct acpi_table_bgrt *__init efi_get_bgrt(void)
+{
+    const struct acpi_table_rsdp *rsdp;
+    const struct acpi_table_xsdt *xsdt;
+    UINTN entry_count;
+    unsigned int i;
+
+    if ( efi.acpi20 == EFI_INVALID_TABLE_ADDR )
+        return NULL;
+
+    rsdp = (const void *)(UINTN)efi.acpi20;
+    if ( !rsdp || !rsdp->xsdt_physical_address )
+        return NULL;
+
+    xsdt = (const void *)rsdp->xsdt_physical_address;
+
+    if ( memcmp(xsdt->header.signature, ACPI_SIG_XSDT, 4) != 0 )
+        return NULL;
+
+    if ( xsdt->header.length < sizeof(xsdt->header) )
+        return NULL;
+    entry_count = (xsdt->header.length - sizeof(xsdt->header)) /
+                  sizeof(xsdt->table_offset_entry[0]);
+
+    for ( i = 0; i < entry_count; i++ )
+    {
+        const struct acpi_table_header *hdr;
+
+        hdr = (const void *)xsdt->table_offset_entry[i];
+        if ( !hdr )
+            continue;
+
+        if ( memcmp(hdr->signature, ACPI_SIG_BGRT, 4) == 0 &&
+             hdr->length >= sizeof(struct acpi_table_bgrt) )
+            return (struct acpi_table_bgrt *)hdr;
+    }
+
+    return NULL;
+}
+
+#define BMP_SIGNATURE 0x4D42
+#define MAX_BGRT_IMAGE_SIZE (16 * 1024 * 1024)
+
+static void __init efi_preserve_bgrt_img(void)
+{
+    struct acpi_table_bgrt *bgrt;
+    const BMP_HEADER *bmp;
+    const void *old_image;
+    void *new_image;
+    UINTN image_size;
+    EFI_STATUS status;
+    UINT8 checksum;
+    unsigned int i;
+
+    bgrt_info.preserved = false;
+
+    bgrt = efi_get_bgrt();
+    if ( !bgrt )
+    {
+        bgrt_info.failure_reason = "BGRT table not found";
+        return;
+    }
+
+    if ( !bgrt->image_address )
+        return;
+
+    old_image = (const void *)bgrt->image_address;
+    bmp = old_image;
+
+    if ( bmp->signature != BMP_SIGNATURE )
+    {
+        bgrt_info.failure_reason = "Invalid BMP signature";
+        return;
+    }
+
+    image_size = bmp->file_size;
+    if ( !image_size || image_size > MAX_BGRT_IMAGE_SIZE )
+    {
+        bgrt_info.failure_reason = "Image size exceeds limit";
+        return;
+    }
+
+    /*
+     * Allocate memory of type EfiACPIReclaimMemory so that the image
+     * will remain available for the OS after ExitBootServices().
+     */
+    status = efi_bs->AllocatePool(EfiACPIReclaimMemory, image_size, &new_image);
+    if ( EFI_ERROR(status) )
+    {
+        bgrt_info.failure_reason = "Memory allocation failed";
+        return;
+    }
+    memcpy(new_image, old_image, image_size);
+    bgrt->image_address = (UINTN)new_image;
+    bgrt->header.checksum = 0;
+    checksum = 0;
+
+    for ( i = 0; i < bgrt->header.length; i++ )
+        checksum += ((const UINT8 *)bgrt)[i];
+
+    bgrt->header.checksum = -checksum;
+
+    /* Filling the debug struct for printing later */
+    bgrt_info.preserved = true;
+    bgrt_info.old_addr = old_image;
+    bgrt_info.new_addr = new_image;
+    bgrt_info.size = image_size;
+}
+
 /*
  * Include architecture specific implementation here, which references the
  * static globals defined above.
@@ -1671,6 +1802,8 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,

     efi_relocate_esrt(SystemTable);

+    efi_preserve_bgrt_img();
+
     efi_exit_boot(ImageHandle, SystemTable);

     efi_arch_post_exit_boot(); /* Doesn't return. */
diff --git a/xen/common/efi/common-stub.c b/xen/common/efi/common-stub.c
index 77f138a6c5..9e595600d7 100644
--- a/xen/common/efi/common-stub.c
+++ b/xen/common/efi/common-stub.c
@@ -20,6 +20,7 @@ unsigned long efi_get_time(void)

 void efi_halt_system(void) { }
 void efi_reset_system(bool warm) { }
+void __init efi_bgrt_status_info(void) { }

 int efi_get_info(uint32_t idx, union xenpf_efi_info *info)
 {
--
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 10:17:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 10:17:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260277.1553647 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4ypW-0005ek-CT; Tue, 24 Mar 2026 10:17:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260277.1553647; Tue, 24 Mar 2026 10: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 1w4ypW-0005ed-9H; Tue, 24 Mar 2026 10:17:46 +0000
Received: by outflank-mailman (input) for mailman id 1260277;
 Tue, 24 Mar 2026 10:17:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <soumyajyotisarkar23@gmail.com>) id 1w4ypV-0005ck-9l
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 10:17:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4ypT-008Ntf-44
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 11:17:44 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <soumyajyotisarkar23@gmail.com>)
 id 69c264bc-5cb7-0a2a0a5109dd-0a2a45048a58-28
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 11:17:44 +0100
Received: from [209.85.216.67] (helo=mail-pj1-f67.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <soumyajyotisarkar23@gmail.com>)
 id 69c264c7-c823-0a2a45040019-d155d843a56e-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 11:17:44 +0100
Received: by mail-pj1-f67.google.com with SMTP id
 98e67ed59e1d1-35b88a4f123so2545909a91.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 03:17:43 -0700 (PDT)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-35c031412f2sm1939382a91.7.2026.03.24.03.17.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 24 Mar 2026 03:17:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774347462; x=1774952262; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=S7lJOGAyXgWXm5RAImeMolbrvF/QPjaKzs3OuvcIdvo=;
        b=oaSCFT8H5Eo46cbTddQidd7PgV2YPdTRKX9hGjN59sPMuaAhDQH7ohF6K2NSEa/2/Y
         Ts4d6B6NxhhGtNSE9mKf0znqnrhxqqjzYxeE2RhODNkDQat7gnsJUKT0qF+f8vIOMju+
         71L2VpJHl7hjQCAJDTsDIfV6EE5BJyPC2Wn1nA7U4MP8LHlJIOfPNdPQ81hAkMEsSV5U
         krATnXDDwsWa1DRRMUARN51YGqmY71+PM6DDb1BZTPlIW4LNEku5B9/VKzNGCkU7YtM7
         IJWdShJqyHD2oI5v8gKxnV1DQOM+9nMavvrB/Lt2Sx6c5KoXMBEyzDGeMMknzcuPAnqs
         OqtA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774347462; x=1774952262;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=S7lJOGAyXgWXm5RAImeMolbrvF/QPjaKzs3OuvcIdvo=;
        b=GkhP64fCKalzHfv4Gja0acbuUanCJcAZK/cWcNlH+ON/8w7tzF9dGYgDei5pehVqjB
         wBXzXJ7cZpU5oyGtuV0A/mDQYhB251R9Cqdph8PEl5jeBPnM69QgDXToI+u1Xmsc9XvZ
         rjFfAb5nPAxcL8Q0vVXYmVIuIkoE+6n28P39Ytmn6KXrPh9Q5Qz/seTy3hitrC5Lp+SX
         4NB0HAzSp7t2ITMgSUQslT30+Do9jC7o7DvXZljl0b2T88m9z7dJEZuOUfHOgGk5XPwg
         ePI2Gg+sE/sLhSzGtbCFke2Qp5JOrwJiG0RRysSxFKFnrn3EgRjDHvVFu7hoGhHF2+DQ
         W4tw==
X-Gm-Message-State: AOJu0YwgK4vCoJL5vEt3ZyWfeU6MAtbBsoNcvsHn6bdtePWKxUtnFIFX
	koa4WaPYnhhBoGB47htzQt2D0RgrfsJ70Izh/ECAePFroav3YZSI3nOywFhbh2y6
X-Gm-Gg: ATEYQzxw/vPBMibGRupDgX6u25Ru8u+ciaDryZldIhO++CGQrAktYFroKHjDaLPLLpJ
	rffgRLq9Yxofa73PwlPoVG7vXFeB8ZmlFG8XBl/AHmXoBNNFzP8zcOS8E/J6xAgFST9UyjrVnzY
	ZdkSDfuDb8zj5T3xM9Z17LzkPveJzD0m/isSRMQLaudiaxBG1GfAUNl4/P/j3dxAGXD1jjPks2G
	N/TrYq7notyHwwx8wadz6Ewx/tXg9xTcTi7dyqzGPW/BMlHZ92rfgRUTKzzZP2b5dsLOdQKHiiU
	dTvR7fD0OGU+vyO4bfCfuQZLd4OWMUPzctKGfPB1MsNd4dK5ZfRCZ/BvWu6CKKt2eKz0aHMDbtX
	4E4ZiL398h8SpUz1MXuVviLTGs+ta/Ntth+IEvlOKxXvm6M3wk2ZnYYQQxqgzhGl6euWKDgCYfq
	Ivip3EwT5yQz09LPZApb05mm4tvZGDBgljBVshXJFCS/iOuATXMqmrPEqzWZlfCLbSkIrj4ST7q
	BWocstk4xNAykWrZ83BR7WKgFzRM7wH/i2aQPpy16CKcahsEFnvrzLMoWFXqCHx67DLaBPKIw==
X-Received: by 2002:a17:90b:1fc4:b0:35b:92ba:66e4 with SMTP id 98e67ed59e1d1-35c008311e5mr1936050a91.7.1774347462028;
        Tue, 24 Mar 2026 03:17:42 -0700 (PDT)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: xen-devel@lists.xenproject.org,
	sarkarsoumyajyoti23@gmail.com
Cc: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [PATCH v4 2/3] x86/acpi: Integrate BGRT preservation with status reporting
Date: Tue, 24 Mar 2026 15:47:25 +0530
Message-ID: <20260324101726.6929-3-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324101726.6929-1-soumyajyotisarkar23@gmail.com>
References: <20260324101726.6929-1-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1774347464-B9C819D1-A61567DF/0/0
X-purgate-type: clean
X-purgate-size: 3168

Add status reporting for BGRT preservation and integrate with Xen's
ACPI subsystem:
- efi_bgrt_status_info() prints preservation status (success/failure)
- Called from acpi_boot_init() after ACPI tables are processed
- Clarifying comment explains why invalidation code remains

The invalidation code in acpi_invalidate_bgrt() now acts as a safety
net: if preservation fails, the image remains in conventional RAM
and gets invalidated. If preservation succeeds, the image is in
EfiACPIReclaimMemory which won't match the RAM_TYPE_CONVENTIONAL
check, leaving the table valid.

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
---
 xen/arch/x86/acpi/boot.c |  8 ++++++++
 xen/common/efi/boot.c    | 16 ++++++++++++++++
 xen/include/xen/efi.h    |  1 +
 3 files changed, 25 insertions(+)

diff --git a/xen/arch/x86/acpi/boot.c b/xen/arch/x86/acpi/boot.c
index 1ca2360e00..20afe79db9 100644
--- a/xen/arch/x86/acpi/boot.c
+++ b/xen/arch/x86/acpi/boot.c
@@ -29,6 +29,7 @@
 #include <xen/mm.h>
 #include <xen/param.h>
 #include <xen/dmi.h>
+#include <xen/efi.h>
 #include <asm/fixmap.h>
 #include <asm/page.h>
 #include <asm/apic.h>
@@ -327,6 +328,11 @@ static int __init cf_check acpi_parse_hpet(struct acpi_table_header *table)
 	return 0;
 }

+/*
+ * Invalidate BGRT if image is in conventional RAM (preservation failed).
+ * If preservation succeeded, image is in EfiACPIReclaimMemory, which
+ * won't match RAM_TYPE_CONVENTIONAL check, so table remains valid.
+ */
 static int __init cf_check acpi_invalidate_bgrt(struct acpi_table_header *table)
 {
 	struct acpi_table_bgrt *bgrt_tbl =
@@ -754,5 +760,7 @@ int __init acpi_boot_init(void)

 	acpi_table_parse(ACPI_SIG_BGRT, acpi_invalidate_bgrt);

+	efi_bgrt_status_info();
+
 	return 0;
 }
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 47d5b9b2a8..e22a42c15b 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -1911,6 +1911,22 @@ static bool __init cf_check rt_range_valid(unsigned long smfn, unsigned long emf
     return true;
 }

+void __init efi_bgrt_status_info(void)
+{
+    if ( !efi_enabled(EFI_BOOT) )
+        return;
+
+    if ( bgrt_info.preserved )
+    {
+        printk(XENLOG_INFO "EFI: BGRT image preserved: %lu KB\n",
+               bgrt_info.size / 1024);
+        printk(XENLOG_INFO "EFI: BGRT relocated from %p to %p\n",
+               bgrt_info.old_addr, bgrt_info.new_addr);
+    }
+    else if ( bgrt_info.failure_reason[0] )
+        printk(XENLOG_WARNING "EFI: BGRT preservation failed: %s\n",
+               bgrt_info.failure_reason);
+}

 void __init efi_init_memory(void)
 {
diff --git a/xen/include/xen/efi.h b/xen/include/xen/efi.h
index 723cb80852..e72ab3c6b5 100644
--- a/xen/include/xen/efi.h
+++ b/xen/include/xen/efi.h
@@ -39,6 +39,7 @@ static inline bool efi_enabled(unsigned int feature)
 extern bool efi_secure_boot;

 void efi_init_memory(void);
+void efi_bgrt_status_info(void);
 bool efi_boot_mem_unused(unsigned long *start, unsigned long *end);
 bool efi_rs_using_pgtables(void);
 unsigned long efi_get_time(void);
--
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 10:17:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 10:17:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260274.1553628 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4ypO-00055d-0I; Tue, 24 Mar 2026 10:17:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260274.1553628; Tue, 24 Mar 2026 10:17:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4ypN-00055W-U0; Tue, 24 Mar 2026 10:17:37 +0000
Received: by outflank-mailman (input) for mailman id 1260274;
 Tue, 24 Mar 2026 10:17:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <soumyajyotisarkar23@gmail.com>) id 1w4ypN-00055Q-GZ
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 10:17:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4ypM-0063e7-Lu
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 11:17:36 +0100
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <soumyajyotisarkar23@gmail.com>)
 id 69c264be-2eae-0a2a0a5409dd-0a2a4509c866-18
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 11:17:36 +0100
Received: from [209.85.216.65] (helo=mail-pj1-f65.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <soumyajyotisarkar23@gmail.com>)
 id 69c264be-e484-0a2a45090019-d155d841a4f5-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 11:17:36 +0100
Received: by mail-pj1-f65.google.com with SMTP id
 98e67ed59e1d1-35a1d4a095bso3099203a91.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 03:17:35 -0700 (PDT)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-35c031412f2sm1939382a91.7.2026.03.24.03.17.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 24 Mar 2026 03:17:33 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774347454; x=1774952254; 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=DWUtC4hANvnQ6N9ebjiGBupLHcW6imwcMcuArR/Qe50=;
        b=Hd5ENYGMeR+ZsTGAr5vQHZxlvRnKB5aXNeUO67O8At7VAQ5adVjiR0leHiBadWf4nt
         PiVbQ2ib565KdoWfpNl1QtcpmqkHoHPtkyIyiJV5j7lFqw8auCaPxLmYtU47kKD/l6UP
         7AEULy8bvZPOwAFiU1+1EYNF/Cjcnx0nLbDRB03RMmb1zTzSqtrqPHtz4Pki4/z7XPUn
         v4Yr64WEdt5MFuYyjyoEjCs6wFwpIwy6L0a2yShcrBa12lD30RcQhsSlwh+qw6EX1c6u
         rsM8gabeAGlHOh4CzkMhkF45s9Ts7CuuyrOx2q9mZphJreVkAshhZzZmX5DaayOrbVSZ
         y9Pw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774347454; x=1774952254;
        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=DWUtC4hANvnQ6N9ebjiGBupLHcW6imwcMcuArR/Qe50=;
        b=DbAk3diApAzGUaI7BmzkQ3PlLxkxoD2gwm//P9KamLNQSzc3ce853FsBxRY4YqTdao
         8RgJJnIBh8bsWvYloLJbIQsiiigti3UvY4eIGpmDY5md3KFEi4zkoCFS5b4GV3bamHdx
         cdgrnvIre/4xR0bvTWvNlLc+yb9ucgSH8sVk1LZiPWFrU/gxLMvXPogtDRZHGp8pBdqC
         kE3HQQFGDnysaX1CIY9X8hf30phlI4rZ6gEOXECuLqdqLWG8zhddP/e8q9rFrWzm10RW
         oE8wx8GUhG/6sANCxhBYF5XYfidiKKeLtX/+wPRnxVBPAuzO14YV0x0/MFe1UM8HLRqu
         bERg==
X-Gm-Message-State: AOJu0Yx0leXPhvR2Lx6Zq21Tz2oaKubtQpwMB9KBlgOPSGatIIH4PyMH
	Vck93AHIkjI3C1JCUYSdLcjuuBXdP9yrwYq29JLtQTg2mcPAqTqXAsz2ak6BqF8w
X-Gm-Gg: ATEYQzzMG1FXK0igBX4DieVtmaBXHgZAMsr/H7loaREhcNV0H6A0A0TOh9ARv192bCb
	PazbnbvIac2I9PTG3Stwaz5FijLNdRdijmj6RE/x+2TDAGDJY3qULqeaNQJ3gg8FQJZb4gq6gEg
	2cjs2afc7fgwbAJr7ldkacBAtn5Kp1gOK+4ecrNFFSCgp7rynM7bWK4IZ5ukiqQANe/Og4jRkB5
	kNVXcPg2HyxUa4HGDd8J45uMo/e42uMAfoC/CWhqNMJ+hCyc331xPuK8kHPG1cVKBoCiR7xyX3p
	Q+20u7SaP21cfukS2VfVBMDrG3LNxXQ68YaOVdXbnZIde3U3WZlqc3i5rj768Hb+6PnJP3nXwPo
	TV/cM6+v01ef39sDEM3Qfn6pK8UE83e/fiqTTQif4Yqug/0RMIHNJRNxk+CWnBXpz4mq2iBFdt1
	H0sY8w0afg3B6WwJuEnnRhx3HWYS53ENT6gMMxtRZfqYYnmsuanHHW//cKFGYE4DN1UVXUAU7hn
	xIzQb2jBCqipgqL1zRUttKyGig0L1RpPm5/wV83ZZAgpFZRF8bvOzjPWbwqCfSXwTljmId0oA==
X-Received: by 2002:a17:90a:ac17:b0:35b:952c:43ab with SMTP id 98e67ed59e1d1-35c00800a4dmr1575461a91.4.1774347453828;
        Tue, 24 Mar 2026 03:17:33 -0700 (PDT)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: xen-devel@lists.xenproject.org,
	sarkarsoumyajyoti23@gmail.com
Cc: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [PATCH v4 0/3] Fixing ACPI BGRT (Boot Graphics Resource Table) corruption
Date: Tue, 24 Mar 2026 15:47:23 +0530
Message-ID: <20260324101726.6929-1-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1774347456-6AB41A73-13F3CF16/0/0
X-purgate-type: clean
X-purgate-size: 4009

This patch series plans to addres ACPI BGRT (Boot Graphics Resource Table) corruption,
that occured when Xen reuses the memory containing the boot logo
image before dom0 is able to parse ACPI tables.

The BGRT table contains a pointer to a BMP image stored in
BootServicesData memory. When Xen reclaims this memory early in boot,
the pointer becomes invalid, causing Linux dom0 to report:
Xen: `(XEN) ACPI: BGRT: invalidating v1 image at 0x47cc2018`
Linux (dom0): `ACPI BIOS Warning (bug): Incorrect checksum
in table [BGRT] - 0xF9, should be 0xB4 (20250807/utcksum-58)`

This series:
1. Adds BGRT image preservation infrastructure during EFI boot
(validates BMP format, allocates EfiACPIReclaimMemory, stores pointers)

2. Integrates preservation with ACPI subsystem
(clarifies acpi_invalidate_bgrt() safety net behavior,
adds status reporting via efi_bgrt_status_info())

3. Provides opt-out mechanism
(-nobgrt for xen.efi direct boot, efi=no-bgrt
for multiboot2, both via early EFI-phase parsing)

The preservation is enabled by default to fix the corruption for all
users, with minimal overhead (~1MB). Also, servers that don't need boot
graphics can disable it using the "efi=no-bgrt" option.

Thank you everyone for the constructive feedback! It is really helpful,
I hope this RFC series is upto standards, I would greatly appriciate further feedback.

Changes since v1:
- The BGRT invalidation behaviour should still presist
  and server as a safety net when "efi=no-bgrt" or the
  preservation fails for some reason thus: Add Clarify comment
  for BGRT invalidation behavior with preservation.
Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Changes since v2:
- Use existing ACPI headers (actbl.h, actbl3.h) instead of custom structs
- Modify the function names and code in function to conform with Coding Style.
- Reuse efi.acpi20 from efi_tables() instead of manual RSDP search
- Use appropriate types: EFI types for firmware code, unsigned int for
  loop counters (matching ESRT pattern)
- Used of sizeof(<expression>) over sizeof(<type>)
- Remove fixed-type widths & limited typecasting
- Add Blank line ahead of the main return statement of a function.
- Better wording error message for image cap size
- Remove parse_boolean(no-bgrt) since it could be bit misleading
- Add const qualifiers throughout for safety
- Use %p format for pointers (32-bit compatibility)
- Initialize failure_reason with string literal for proper relocation
- Use memcmp() with ACPI_SIG_* constants for signature checks
- Add direct Xen.efi calling.
- Add opt-out mechanism with proper early parsing during EFI phase.

Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reported-by: Jan Beulich <jbeulich@suse.com>

Changes since v3:
- Fix casting away const issue.
- Add Stub function
Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Please refer to QubesOS Issue for more context:
https://github.com/QubesOS/qubes-issues/issues/10764

This is a companion series to Linux Kernel side at
https://patchew.org/linux/cover.751f45ebbb644244b1d9da3aff289d6b66db4c6b.1773058629.git-series.marmarek@invisiblethingslab.com/

Testing:
- Verified on Intel UEFI system with Fedora 43 dom0
- Before: ACPI checksum errors in dom0
- After: Clean boot, no ACPI warnings
- Memory overhead: ~972 KB (preserved image size)

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>

Soumyajyotii Ssarkar (3):
  x86/efi: Add BGRT image preservation infrastructure
  x86/acpi: Integrate BGRT preservation with status reporting
  x86/efi: Add opt-out mechanism for BGRT preservation

 xen/arch/x86/acpi/boot.c     |   8 ++
 xen/arch/x86/efi/efi-boot.h  |   5 ++
 xen/common/efi/boot.c        | 158 +++++++++++++++++++++++++++++++++++
 xen/common/efi/common-stub.c |   1 +
 xen/include/xen/efi.h        |   1 +
 5 files changed, 173 insertions(+)

--
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 10:17:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 10:17:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260279.1553656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4ypa-0005xz-P5; Tue, 24 Mar 2026 10:17:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260279.1553656; Tue, 24 Mar 2026 10:17: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 1w4ypa-0005xo-Jl; Tue, 24 Mar 2026 10:17:50 +0000
Received: by outflank-mailman (input) for mailman id 1260279;
 Tue, 24 Mar 2026 10:17:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <soumyajyotisarkar23@gmail.com>) id 1w4ypZ-0005vq-Da
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 10:17:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4ypY-000XdF-Pa
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 11:17:48 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <soumyajyotisarkar23@gmail.com>)
 id 69c264bf-e002-0a2a0a5209dd-0a2a4502d2e4-36
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 11:17:48 +0100
Received: from [209.85.216.65] (helo=mail-pj1-f65.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <soumyajyotisarkar23@gmail.com>)
 id 69c264cb-63bb-0a2a45020019-d155d841b872-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 11:17:48 +0100
Received: by mail-pj1-f65.google.com with SMTP id
 98e67ed59e1d1-356337f058aso2947602a91.2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 03:17:48 -0700 (PDT)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-35c031412f2sm1939382a91.7.2026.03.24.03.17.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 24 Mar 2026 03:17:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774347466; x=1774952266; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6/EFfTLPPvtpKfYbDxMVwQU9jDgu7ScMy19tpR6gQjI=;
        b=Q5oW//VJ43BNtn9crNw8gtsQ2S3M9YvHWAVYYYvaoKhXnwX80dGlZeisgCfadyqHfQ
         cIcvTI8b6L7DEP3Hprn/3lH1uO4qXAhs34+21CDJt8VqNwH6o2ZqBQpip5i4RbfFUsJa
         4I77k9P3bzXMt29r0lLJ0xHn6U8T4PdMLu3MoZedN9rCSwJAMVP1V53LO7ExDkhlmEDz
         XeImNgXooMHqlbEh4eAzGACJsO5BZANiY2lJ4v0hNSRjyypZVlMtsWaTtAjsvlIr/0sC
         8p6vYRRmpHFgQfsOf6+aRIRsleGEnoVIFbamejIRn6utsgYaY4YbjWRukfFF2OPn5wxa
         7FvA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774347466; x=1774952266;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=6/EFfTLPPvtpKfYbDxMVwQU9jDgu7ScMy19tpR6gQjI=;
        b=sfJpZSeVsMC3AI/vhrjHdtBUDTLupFJuskUprzDClyeDL8dcQ421+x+JH4mXK46Ts6
         WHAc37ePBG5AjIt6fQOl2aIKU8tPrkcK3FXdjHcQOyiyWGfJr0fWISHAjrdaw/lX5cm5
         WKbt9tXTaoL7jN9ujAY8y09Oiq4Kd3EEDa2gDGOR22OVYI9tf4z+Z4dwQbQA9AvuSBWO
         eg1TcKtErKcsVWUCGEFq+6a4dG3+Y4QZLlbY823nAXGgnQZZEFOS/BI31cZJu4xF9T/7
         tQZAwUyfRZnGH77zSsEFdfIl6R8swjH60Z8RZQnA3+UoarztfZUDjdYCO6r+NOGJUWg3
         JRiQ==
X-Gm-Message-State: AOJu0YznZaDkPhUBcPg/vm0EYga+KNengPUZdF0maJ2OhEI2psU0sAvb
	cnuiB1aK+FiBZw3LN/h0o3VOPSfuTymhIpdqHsy0TLV08AeFVAIyIBVj+Skyvy47
X-Gm-Gg: ATEYQzzA9anb79Jf8woX5LTcpaZt4RHiyhVthoeyvD4ndmi45PcQoNf4v7yUvBTQ2ZO
	4yMajM5HUJtV6hP8cTdUqD8aqOG1YwNgTVXgsM5BmpXaGCQvoNgO4zUv6HNuQQXl8Sr4tbP+Pov
	JlHKxEh5DFG6O2yqbatXryqTiOzLSHXdb4ymNdWDu0bvpkrq1FEypWDdlq+py7yMTGcBus9woG3
	0Bv+d5Jh+z/mBluyAK9z4K+osdnKPB0xKhFaq6yAkxY3eJIARwUSda1SBIQw4DVQyQKOleEUQF5
	jJcaLWvD4iMgIGdoVA0tbf/f6SaZDvvqpnG3/zkCisCNLT8NRLDR1mL3tXSn3NTCGp7lUWvq8vV
	YHSbqvPFdh5yS9giwcSpmjjabC6/gvBy78E41+d1uEbkbWcU4H0iFH2vWRv4gGNJq05ZFUK47MN
	VrxkRLKOgFvKObheIfxbgY/ca5u5wM9dqf9JcGVIok1XcndkhBg7fHxVn5f3r+UV2qVPdLDh3cy
	akx98WoL8znOgR0gA4qp7TISUAdow4YNZpGg9d2UMVf92anzFD+3dSjE1Fki20uw3xk/C5+/w==
X-Received: by 2002:a17:90a:e7cb:b0:359:83d3:27d3 with SMTP id 98e67ed59e1d1-35bd2b937f5mr12836202a91.2.1774347466254;
        Tue, 24 Mar 2026 03:17:46 -0700 (PDT)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: xen-devel@lists.xenproject.org,
	sarkarsoumyajyoti23@gmail.com
Cc: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [PATCH v4 3/3] x86/efi: Add opt-out mechanism for BGRT preservation
Date: Tue, 24 Mar 2026 15:47:26 +0530
Message-ID: <20260324101726.6929-4-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324101726.6929-1-soumyajyotisarkar23@gmail.com>
References: <20260324101726.6929-1-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1774347468-42099DB8-074385BD/0/0
X-purgate-type: clean
X-purgate-size: 3800

BGRT preservation is now enabled by default to fix ACPI corruption
for desktop/workstation systems (similar to ESRT).

As described in the task:
https://github.com/QubesOS/qubes-issues/issues/10764

Add an opt-out parameter to allow disabling BGRT preservation on
systems where the ~1MB memory overhead is not desired.

The opt-out is implemented through two boot paths with early parsing
during the EFI boot phase before preservation runs:

1. xen.efi direct boot: '-nobgrt' command line option (parsed in
   efi_start())
2. Multiboot2 (GRUB): 'efi=no-bgrt' peeked from mb2 cmdline tag
   using get_option() in efi_multiboot2()

The flag is checked at the start of efi_preserve_bgrt_img() to
skip preservation entirely when disabled. Status logging indicates
whether preservation was disabled, succeeded, or failed.

Usage:
  Default: BGRT preserved automatically
  xen.efi: Add '-nobgrt' option
  GRUB/MB2: Add 'efi=no-bgrt' to Xen command line

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
---
 xen/arch/x86/efi/efi-boot.h |  3 +++
 xen/common/efi/boot.c       | 11 ++++++++++-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 0547d845cd..6c986cf6c0 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -897,6 +897,9 @@ void __init efi_multiboot2(EFI_HANDLE ImageHandle,
         efi_arch_edid(gop_handle);
     }

+    if ( cmdline && get_option(cmdline, "efi=no-bgrt") )
+        opt_bgrt_disabled = true;
+
     efi_arch_edd();
     efi_arch_cpu();

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index e22a42c15b..a4db7ee516 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -170,6 +170,7 @@ static SIMPLE_TEXT_OUTPUT_INTERFACE *__initdata StdErr;

 static UINT32 __initdata mdesc_ver;
 static bool __initdata map_bs;
+static bool __initdata opt_bgrt_disabled = false;

 static struct file __initdata cfg;
 static struct file __initdata kernel;
@@ -825,6 +826,9 @@ static void __init efi_preserve_bgrt_img(void)

     bgrt_info.preserved = false;

+    if ( opt_bgrt_disabled )
+        return;
+
     bgrt = efi_get_bgrt();
     if ( !bgrt )
     {
@@ -1582,6 +1586,8 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
                     base_video = true;
                 else if ( wstrcmp(ptr + 1, L"mapbs") == 0 )
                     map_bs = true;
+                else if ( wstrcmp(ptr + 1, L"nobgrt") == 0 )
+                    opt_bgrt_disabled = true;
                 else if ( wstrncmp(ptr + 1, L"cfg=", 4) == 0 )
                     cfg_file_name = ptr + 5;
                 else if ( i + 1 < argc && wstrcmp(ptr + 1, L"cfg") == 0 )
@@ -1592,6 +1598,7 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
                     PrintStr(L"Xen EFI Loader options:\r\n");
                     PrintStr(L"-basevideo   retain current video mode\r\n");
                     PrintStr(L"-mapbs       map EfiBootServices{Code,Data}\r\n");
+                    PrintStr(L"-nobgrt      disable BGRT preservation\r\n");
                     PrintStr(L"-cfg=<file>  specify configuration file\r\n");
                     PrintStr(L"-help, -?    display this help\r\n");
                     blexit(NULL);
@@ -1916,7 +1923,9 @@ void __init efi_bgrt_status_info(void)
     if ( !efi_enabled(EFI_BOOT) )
         return;

-    if ( bgrt_info.preserved )
+    if ( opt_bgrt_disabled )
+        printk(XENLOG_INFO "EFI: BGRT preservation disabled\n");
+    else if ( bgrt_info.preserved )
     {
         printk(XENLOG_INFO "EFI: BGRT image preserved: %lu KB\n",
                bgrt_info.size / 1024);
--
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 10:21:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 10:21:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260306.1553665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4yst-0008NW-6R; Tue, 24 Mar 2026 10:21:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260306.1553665; Tue, 24 Mar 2026 10:21:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4yst-0008NP-3L; Tue, 24 Mar 2026 10:21:15 +0000
Received: by outflank-mailman (input) for mailman id 1260306;
 Tue, 24 Mar 2026 10:21:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w4yss-0008N8-0H
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 10:21:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4ysp-00CXbt-KP
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 11:21:11 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c26592-bab6-0a2a0a5309dd-0a2a45048122-16
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 11:21:11 +0100
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c26597-c823-0a2a45040019-d155802ab463-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 11:21:11 +0100
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-4852c9b4158so39000325e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 03:21:11 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4871174f2desm50652885e9.9.2026.03.24.03.21.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 03:21:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774347671; x=1774952471; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=VDj09O1zVTYc5uX4j3FoxPYdok/IJP5nm4ltLwCX83E=;
        b=VsIbiBNnSxVJ64pqRlxYblPbCItq1Fdqyj4y2uERFXhyj87knx52kkh+2M2hiCitqF
         WzCmxXrP9yWgperR5WpOcVu+20cQNpbJ3lfv6RqnqwrX1ybTL/Gsn4BXmfyR8vAxe15M
         PIogjpeyX85A84E+E+Mq9VGwxkRHblzHn6ooSlT7kygi6TmEEe+nWUYdeCSlXRyE021Q
         mLauhnmlePEsMZi0uPbEE8E4TmIezp8jhvNE2FEIW84WXd4kjFBN1UGtE4bF6BtfoEC8
         Qj7nfgxa/3QoUKUqxbNRolmhf2DN8wLCBT1BAtpVBUZ6p9gCUVeIIRT5aiOgG/LEeEFI
         eDUg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774347671; x=1774952471;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VDj09O1zVTYc5uX4j3FoxPYdok/IJP5nm4ltLwCX83E=;
        b=cHU0trp6ZyX+kMqLDPGuzFbp7APgyd4tr6aRYKJuUxzcFWCQ2kAFCWFOdEeBSy3t2y
         k1UtXzXDC/8fpWBaqdYjGK2x0talLRzxCmfiP9dtCa9zEy2QWMXIuBIMNt3Gxg5/trxc
         e0ZirpIY+xKnsPblqwJ+qEtlDXisyPhvzgbZzUCPJa/wkNGqU+blLzQOxySClB8hfRr6
         tOYTEV/4W6G/ftTlimE+j/b/NjQeLZDVN8WfifKr1hGf+XGAD+ckIJlRxefZvIJhidEw
         SPfhewyCB4AHmC+SX+p0MoHpPDR4uUtp4UTOTFdSmrTLxNH3tPJ/vIhPXIwtEOJO+4CY
         zXtw==
X-Forwarded-Encrypted: i=1; AJvYcCWvKRNE6b5w5H9f10J63CoHbMi9DrcTe/udXD2hYRHx/m3quRNfVHr9aPgWQH5woI53wqSFB6immtM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzcYt0w7AHnnYipy/eWKEHY8a6wzcOorlv08VzGVqI1bTVNGbLX
	FwUjMaxINqDBTll2vWLyFE3RgN5mgGRfod6pKI3naN/QJsyrItHvAz1syAQW9K1h8Q==
X-Gm-Gg: ATEYQzybDgPGaJ8DYPD6jo5Bur38TIXMgWFg/yQCOU8sX6Q9bgOXNwmPvc0O9/2qvye
	08jjlSstPHpzIZV3BIQjGii/wLX9L8ONkhlRyrfEngBgGtLMg3qenINdx+kfIWBbxbYCe+vlJ8f
	IsCg2iIrBkynIVtj/JvZdt3DKbpTayo8/JSYey/eyz6G0RcdnXj9eJspiLY/T9ZtB7/0/r1WLt+
	038pbYD9AV5TAst5LxckJhTFGve1K9zNXWEci9o/Vt602eyoVo1lG3+CSzWlKy8SRj0Cg9oVOVm
	eILZHfS677960HcIWJBWSuWAdTDIJxr4SVNXkYvmb9vcEEEnnWjQAy1ZOlw5SXqu5ixgNntZ9es
	H4b/IkpriTIzgNEm7kM/ABAcZmrqW4FWJX820vF9ow/g9rcUdRRQ1kO2of7fo+HwLbu8Uf7Mt+A
	CE6IFqEN2YiQAr0s9NsVq9ovOK8XSlw30+hs+u+B/uVX3/32meG1o5Laq8pKwynUGPugl89ywiZ
	WkepXDhsiJK0vGJX93nVGoAZw==
X-Received: by 2002:a05:600c:888b:b0:485:353f:c651 with SMTP id 5b1f17b1804b1-486fee08886mr156873555e9.22.1774347670752;
        Tue, 24 Mar 2026 03:21:10 -0700 (PDT)
Message-ID: <9e19fad2-bd49-4855-bdb1-f89def674872@suse.com>
Date: Tue, 24 Mar 2026 11:21:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/3] Fixing ACPI BGRT (Boot Graphics Resource Table)
 corruption
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org,
 sarkarsoumyajyoti23@gmail.com
References: <20260324101726.6929-1-soumyajyotisarkar23@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: <20260324101726.6929-1-soumyajyotisarkar23@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ebf023/1774347671-BAC999D1-F106A748/0/0
X-purgate-type: clean
X-purgate-size: 361

On 24.03.2026 11:17, Soumyajyotii Ssarkar wrote:
> This patch series plans to addres ACPI BGRT (Boot Graphics Resource Table) corruption,
> that occured when Xen reuses the memory containing the boot logo
> image before dom0 is able to parse ACPI tables.

There was another v4 submission about 10 minutes earlier. Which one is the
definitive one?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 10:42:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 10:42:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260325.1553674 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4zDQ-0003ez-SP; Tue, 24 Mar 2026 10:42:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260325.1553674; Tue, 24 Mar 2026 10:42: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 1w4zDQ-0003es-OV; Tue, 24 Mar 2026 10:42:28 +0000
Received: by outflank-mailman (input) for mailman id 1260325;
 Tue, 24 Mar 2026 10:42:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w4zDP-0003em-7N
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 10:42:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4zDO-000esr-JI
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 11:42:26 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c26a91-bab6-0a2a0a5309dd-0a2a450c9ef2-2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 11:42:26 +0100
Received: from [52.101.62.32]
 (helo=DM5PR21CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c26a91-f93d-0a2a450c0019-34653e205c72-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 11:42:26 +0100
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by IA1PR03MB8190.namprd03.prod.outlook.com (2603:10b6:208:5af::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Tue, 24 Mar
 2026 10:42:15 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9723.030; Tue, 24 Mar 2026
 10:42:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pxv6L/6/tItxhiC6BNIVzhkXTcHB2MHY84KulbjGvJzEm9t/2rDU2NZV4cqvlmhuCvNWieA60aATHEHcv0tCF2dBie5mf+QzrgCrkELIY+y87WGt52z8jpZf+tlTok/wrW9bfPxNmeoVh1lxmKhAEPlurmPD0yk2KGFzW8PFwlesrqilMH+KlNRCw20T6v68fc5ab07q64tpPMc6W5RB72OBny9M43l05hbMNaTALMkujfgjblwWRXPhHizR7kpn6Ph+hCkWPwq3xCAM7PBEQcX8eK434h+n84VyhsTTG6DV3E7zeXJLu6vCNTv6/E5lA/X/uAv9NegC17nEkrYafQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ROOAnVTIjqFZzUxpVEQ6+pSLkhcWTHf4QrPDNmMhjd8=;
 b=HmnuaR2vmdEto0zQbikMVfmZ0h5RLJBlY/wJDizgpbF64fMdGeG1nKwR0OYdrBRs2TSQKVsSXAMAe9rPVZx01TMKJDwDvrkr0Bj0NLDgreCAeInnLde3Hr7DBRBmYSus33Jn86+cIN1oSiVqx1T890MSIV/5bvmGqxJqw1sDJgJnc5IODnxpL3zYh7X7IxJX1WUtXaFxtIFoee9yKccrQj9RCNbFQYy+2ZSlxO4Ivg02RyIc3iXI4jOzOhDh8kVgTcjGXCdWWZISsJLomKWZ5nhwe0GzxuXnSWDe21In4Zisa5+1RG0AETg5DV8f18NiHq2Gy2nkFMLKZh8iHiAV4Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ROOAnVTIjqFZzUxpVEQ6+pSLkhcWTHf4QrPDNmMhjd8=;
 b=PBAQvCVdzuAdePaMO+9OnuuTis0/1bf/O4HQZlwHrJlzxHsMmV6BEwg01611+pirD+Y/Bjw8MNaVVgSi2cP6wvzJ7DefRFS+exe9KZk92fltRd0MjZRo9mZisWjbMVCLCYS2v+XJQoj1n7ix9bwXDdlhuDgyyxm5uc2kJW7pOHM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <9172b52f-13f8-4d9e-9caf-87ef04b5fb05@citrix.com>
Date: Tue, 24 Mar 2026 10:42:19 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH 2/6] x86/vpmu: Expose PEBS and DS area in PV mode
To: Jan Beulich <jbeulich@suse.com>, Teddy Astie <teddy.astie@vates.tech>
References: <cover.1773160025.git.teddy.astie@vates.tech>
 <0762ceb722be83bbdf6703cf419debf30609feb0.1773160025.git.teddy.astie@vates.tech>
 <7e4be441-c0ae-498f-9fdf-e5ea8bf11e48@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <7e4be441-c0ae-498f-9fdf-e5ea8bf11e48@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0407.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:189::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_|IA1PR03MB8190:EE_
X-MS-Office365-Filtering-Correlation-Id: a0f7c61b-264a-42bb-a9c1-08de89920240
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	OL0J+ID2AxV4l6DlfZIJnos8cux/IA5QQK4SUC8qOuu7klROE1lSwER30xIi0yG0oy3J6NS1CmBcbLDe5GXxx/dM/PYw7yfjKJx3dppl6qN1UgBOWdZ3Yci8jYNe5FleCMYBN7/4tZxXvdW/m5eBg1BGQgGguygNO5dye7oi1RsjKnSvxoTiL2ZtxxHQl7Jgjbrs/bhujHL1wSF94pRpLxo5iHULhcOYEisbsi3BGLLbackADNDgoEyl19/CAtMLKWoCVR+KxaWy+qXUGmp0eWmF3vsY740xbNwA0bVV1UHMt4y/d2Kv01a+7uT74xgA4wKKGger8msLnpvvfs32AflT0eqcq+Qlx4g9dle0fzpuL5nFIFpyEFUaiyjDZpjPdBSaIrTDvvljH30dZtGlK38GCnfwG+gRplw/v1YS2HaCLr/C8SxY2qeYMqRFV/9qXYyTKt0B/EslqAMU+NpPeLmYDnqSJM50o6gmctbozWivhgMlQPhkUDCZCHAgO/XmtfSEligCzKRwcrb9iByrLxdmtxUsMSRxfGw+4/PbnTop4J8ve33Ei/7xspdhQF6Nfl2cNpXjjSihUbkoMsghUiyrutN+LW0RVfgOkk2flNYhx6R82exQhk97+IsGuK207S71BSXFoYTtUy3s/qc9PJrjerO3b4Im6PsCP4MACQPeci6O4hFViyEDsS5Ks5TfVPhUNtNNpFaneOehWBKb9Bg5l3mCf+X/gM8HEDLsFiY=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UXU2MnJaYUh0YXV4eFJnWmx0VytBZURkZ2dMczFMY2wxQmo3NE95Y1JDMXRj?=
 =?utf-8?B?OUp2VlFXQnNIZmFiNURHVUlHSTQwK1FnZDBkeGkwZUFVRXZ4cTMyckpzZGdW?=
 =?utf-8?B?dm1hOHZiTURYbWtPd3ZpaDBXbGM1elNmOVFFcHY2eWIzOGpUd3IvanlWZDdp?=
 =?utf-8?B?bmozMmJ6Rm9wVEhYMWhxSzZyTXViSW1ocDd1S3Y1NHBZWHp0emd3UndYMkgv?=
 =?utf-8?B?UmxPUnk1NmFHdGxReXpqZ1B6TERHazhhYXlFdHllby9QZ3lOcnovV3Bsam1H?=
 =?utf-8?B?S0ppVllpYnJmTXFwNHIybm85dDEzci9QU1B5SGRqZFVvZXB6T3M5VkpaTFVU?=
 =?utf-8?B?YXF4c1FUYXlWRjM4U2JvVHFmR2c1eFBSQjRORmdSemNISjlxN1A1bml6WTZ4?=
 =?utf-8?B?THdYZDNOUVRSREFTckpGait0SlVsek9IR1d6WkQzVXBnTnJWQ1Q2dnlhaXlC?=
 =?utf-8?B?RlM4eUduMDh1OUs0T1NPOGZkbC9KUTdZQjhUTzczVUpmSkdxeVI2ZTRxc2g0?=
 =?utf-8?B?ZkRtalI4R3FTRm1CMjJlMHRqMFlFUEE3UjNFa3dsaDlZWXNKdlZKcld1dE5C?=
 =?utf-8?B?ekVUS3l0QVZSU0plL0E1a1RGeG9GaWJtenRPbVlxR0NsYjFvMmJaRUZmelgx?=
 =?utf-8?B?RCtqTm5QYXVtVVdzanU3STNnRDZiSU8zNWRMSlg3UEkxTkVrK3ZIVmc4NE45?=
 =?utf-8?B?SVVzQXcyMzJvMWFmMDgyZzdibFE0K2gvTFpBSFBGUi9qZEZrRDlkMG1EeDNv?=
 =?utf-8?B?ZjRpbG1YelVPb3Z4dHdCTVN6WTdSOElNdGlmelhEL2NuUzJVVVczUTVUMTds?=
 =?utf-8?B?c2crSUVRVFZNZ3VkMy9yOVpPRnJXWlF2bnl2UUNCaXZ1UnJmdHJiQzhnRldX?=
 =?utf-8?B?aE1IeTd4cGowZ1duTWh5SStkOTRlUGlMbUxpUG1sc2dSTmxGTkJ6cG1RSUtj?=
 =?utf-8?B?cnpUTHdFdXN3MmhyQnZ3VjY4c3RaR3RHM2FyTnRXd0czZFZuOUF5UG8rRG9v?=
 =?utf-8?B?ZE16aDBWVlFUQ3RKRTVhUGcvdmFrK0prQklmMGpCWWdOTTFOZkFUTHNKZnhI?=
 =?utf-8?B?Y09yOTB4NHBtMlhQcnByVlFoMDVXNElHY3hORXVLQlVpVUZhMnVyUnVPcllW?=
 =?utf-8?B?bDkyM0FSVVcyZnhEQzFaWHhLdDVOdEdYVUxYbGlYcEhOcFVQOEsybFE5TXRE?=
 =?utf-8?B?WXZwOHgzb3IyUkNJSSs0S09pQWVHNDBuZEY1aHFPTVUxNGpmeFhNbkpXWnc4?=
 =?utf-8?B?VVl6V2JoWk83Mld1T3Vlb01BVjBSVk81MFI3dnc4alB0UlFLRlhWWFhiM3JX?=
 =?utf-8?B?WGZaU3I1eElMdFdkNmRZeFRHcndGMFdYZHlqaW16R0V6ME9KTlBMb0x5ZVd1?=
 =?utf-8?B?aWJLQ2ZLRmFrOE5RSmV6ZldjTTlKUENteldLNU5GM0szYmtsc042VXFqUC9x?=
 =?utf-8?B?VlpCd2YvOEdPUFQ5M3dLZkZzTnlsN01NNU8zdlJLZE9BZTFTQXVXQnUzQk5J?=
 =?utf-8?B?eHlab1JtWSs3QkFTeDBkS3ZPQkxFNWFxekNMQ3hBazMvSXNVaTJKcFBZcVpw?=
 =?utf-8?B?aVB1OXUvUDlMTk85TVZIeXFvUGM4UmVlakVLaFlLd2pyR09SSXFBTFVoSGtR?=
 =?utf-8?B?Wng1MHVyeTQ0eVU0SkgyRDExSFFlU3pPdENnejExQmovNlcwZWJxc2FSc1h1?=
 =?utf-8?B?dHRUL1dhYVpoL3crZm5RaU94a2JxOHM0NU52cUZydzk3bExJQXdvRFJxSUJu?=
 =?utf-8?B?dmVlRXFqN0dGRmRqeWRCc3k5eCsxekdJajRnOEhtVGtZNWltaElXK2NGR1dk?=
 =?utf-8?B?YUNzVFBDMjRnNDErZnBqL1FlenNIOFdQaVZuYkE5OFRaTXAwL1ZvNklSVjcv?=
 =?utf-8?B?YnFwQXVFdWhqdlBCRmt6eGNtYi9sc09tWFpPeDRHVFovdnhHMllXUDZyQURa?=
 =?utf-8?B?VFVCTXB6dXBaM1FQZHREaTRNWVhOOS9PbXZNdFJlcjhXM0E1QzgxSlRqNjg2?=
 =?utf-8?B?TVNaWE9PeGdvUnpTRlNYVXo2QXpiK2FqdzZXcjlnNTUyTVQ0ekJzUnk5SVJa?=
 =?utf-8?B?OUZYc1RGRnZTcFNXZXY1bHpIWGloRDc5UmFPQ1ZQOWRsMGZNR1gvNVhtUG02?=
 =?utf-8?B?SmlnS1BOcCt3QjVTRXUzLzlNUmVZaEQ0aU4rVTk5Vzd4bU5kVDIrbSsrb040?=
 =?utf-8?B?NTNzN2Z4TE9ZYjRCODRwUG1zU0ZEVkQ4RGZ4WFpNMENPUmt0UmxDUHJ1KzRh?=
 =?utf-8?B?MVFDQU5zbWZTNExoSHhGTHNlVGhUejZGd2FLM0g4NVV0dmlqWTNWV2krZUl1?=
 =?utf-8?B?dm1rK2FWdUxyU3Zhb05Xcll5d2g1VmRPMFlLWlc0RGhhSjhyK2d3WEpaOUZU?=
 =?utf-8?Q?DPVzH6Q2qkvRIp78=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a0f7c61b-264a-42bb-a9c1-08de89920240
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 10:42:13.0767
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: BuUMGQpPLGaIPqTb1oUYed+ta1Tb11CJHTuMRkZ1010CPU+Yz+Jendb4p6LiDqR9+g6oB6EhHFgjyi1yGYx7ff54yvMfttTF9IPlY+vbV2s=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR03MB8190
X-purgate-ID: tlsNG-d25034/1774348946-6ECAA734-AA1CD947/0/0
X-purgate-type: clean
X-purgate-size: 1211

On 24/03/2026 9:11 am, Jan Beulich wrote:
> On 10.03.2026 17:44, Teddy Astie wrote:
>> I don't see any reason for them for not be available, especially
>> since core2_vpmu_do_wrmsr has PV specific logic for MSR_IA32_DS_AREA.
> This is really dangerous: You allow PV domains to control whether the area
> is actually mapped. It lacking a mapping can, iirc, on at least some CPUs
> result in a complete hang.

It's ~all, and explicitly documented.  SDM Vol3 20.4.9.3:

"The recording of branch records in the BTS buffer (or PEBS records in
the PEBS buffer) may not operate properly if accesses to the linear
addresses in any of the three DS save area sections cause page faults,
VM exits, or the setting of accessed or dirty flags in the paging
structures (ordinary or EPT).  For that reason, system software should
establish paging structures (both ordinary and EPT) to prevent such
occurrences."

There are potentially uses for PEBS/DS, but it needs to be via explicit
opt in only; it is absolutely not safe to let guests have in general.

One fun interaction would be a PV domain which gets shadowed (PV-L1TF,
or migrated), which will instantly violate the #PF requirement.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 11:11:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 11:11:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260338.1553682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4zf6-00088V-1E; Tue, 24 Mar 2026 11:11:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260338.1553682; Tue, 24 Mar 2026 11: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 1w4zf5-00088O-Uw; Tue, 24 Mar 2026 11:11:03 +0000
Received: by outflank-mailman (input) for mailman id 1260338;
 Tue, 24 Mar 2026 11:11: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=iLjC=BY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1w4zf4-00087q-HC
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 11:11:02 +0000
Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com
 [209.85.221.54]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 22ec1594-2772-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Mar 2026 12:10:59 +0100 (CET)
Received: by mail-wr1-f54.google.com with SMTP id
 ffacd0b85a97d-43b4d734678so1154028f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 04:10:59 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b644ae37dsm38128339f8f.2.2026.03.24.04.10.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 04:10: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: 22ec1594-2772-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774350658; x=1774955458; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=spx48gohNAna1AZGZiteYfD5dZNK/E2a/rQ5/1YwxyY=;
        b=UDawpU7xbOSmIAlVl/kG2Wr2Mmvo7CEGuFUoVKYijcneiT5L2KiZ3gumQPDe9jbT8q
         Q5Vlv2wb18gAhDivpFGaJSlbPFSGgxCWj+CZF/vOmWsxpOe4EioT46/gCZGuiRX6zeMQ
         0S1Ox8XbNXteuSCxaN09icmRXO1scB2z8g+Sys4zBgf7YaBkbuPv0n83XB++bhlGipyu
         OXoyKYB8bQL0sn5yCfLPQDMmYFDBoRzY8Rz0zDHIM/Q3BP5NA6Qn9qc6iKM1ximU9/fG
         C2S/+Q1b9+tH5cqpWZFDRtu8NSaIp5t1r86hp+2SbjJpIx/ikBP2B9uVgepKcxOuesGB
         F6Nw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774350658; x=1774955458;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=spx48gohNAna1AZGZiteYfD5dZNK/E2a/rQ5/1YwxyY=;
        b=Ov0UVxPNDquSyMjwt0OZ8reUs5WhZe2WGDd/w0OgnsxZv5IM/ftVJjC1tTIDc10e3y
         xdr7OWCi5zw6d+VLrBKukNGYldXdsv8hlRU5Q5QphUPIGb6vLxUdEdcu8b+ks0GWUQVY
         o4+DGKwgEZEc3STWKN0myhLPAEr6Mgi/CavrD59It9CtuuknQ8wnzEuL424Tu740dTMr
         pM2JydRJ2Jdq62VXJdJPtxvoHARcbY6L3m9ACBoKa7eV9BqS3ZLtidQlATSObkmLheYi
         xxzNls+q3KQVzmbseNv12v+IjA4HHMBttTTZuW2VP4hSGmrTVlDE9R7Ot8g4EeghmDfp
         gIhQ==
X-Forwarded-Encrypted: i=1; AJvYcCVqEMomeqXJRUACNJ2fgZz6UUYBiIH4t5+1Dbp6qPRZPO/fMhUELL5a/VnBroq3viyrPq11yD3V0Hg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwQoP74QEHKmtxTAqyt4LHoVLdkC7UHohRDtlCGOPx2GnQ3Trx3
	EP7OSgifn04eoepHnSdfgcQPzVSDvLMQQnBVUg0QLIV4RBuLTixWKHj85MXzQ3QW/VtGH0phy+F
	U91F4+Q==
X-Gm-Gg: ATEYQzwiLpXhSjhXEn1n16rTu+cfGu0Q4nTOq17P0rD4DUY5Ztj9T2PZsbDTrLW53ra
	F5/8hh0kRaGSVf87qo/zvebkLab5+bCrADvhLTU8xUfTNbMQ42lBRN2iqBOSxM20A2Ej3B24+XR
	NYiLDOV6gAyLeP3469S6Euq1Vr0aXau8fGp1V0e9ihah2/WcUO+BM+YPe/qHfNk9wKPLez6BOtD
	C8Zru9CGDfJ8Mh9KI3wTFivB6AFlvme4Jt6y7652hivboJIXMP4OP/s1Coro6oi1dPQp/3saBtR
	7/j8oTdDI7ez9TE2XW6Yr1gEAaVjFeadP4GiINC6VxbNvvZxltT2/uMserKGp57nb+ZFTOP/eeY
	Myz17gkzCIlQp39dljbCbYL5XFbfJAY9OG/iyS+0jFw6skZFUkBnvjbxN7zLFQUNToWaAR2OCI6
	jMEnodsWljxuY3KKR00CIX6Q9tsCqRV/t9Kp2oGxHCFA9cphM8Z/0AMBQog5I8Pjxi3+BDaIKJX
	jSl/kS2xQpXETI=
X-Received: by 2002:a05:6000:290b:b0:439:c6d9:7fc with SMTP id ffacd0b85a97d-43b64264b1dmr24400861f8f.25.1774350658089;
        Tue, 24 Mar 2026 04:10:58 -0700 (PDT)
Message-ID: <a33150bd-2c08-4fdd-9504-a3e57bf63013@suse.com>
Date: Tue, 24 Mar 2026 12:10:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/6] x86/vpmu: Expose PEBS and DS area in PV mode
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, Teddy Astie <teddy.astie@vates.tech>
References: <cover.1773160025.git.teddy.astie@vates.tech>
 <0762ceb722be83bbdf6703cf419debf30609feb0.1773160025.git.teddy.astie@vates.tech>
 <7e4be441-c0ae-498f-9fdf-e5ea8bf11e48@suse.com>
 <9172b52f-13f8-4d9e-9caf-87ef04b5fb05@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <9172b52f-13f8-4d9e-9caf-87ef04b5fb05@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24.03.2026 11:42, Andrew Cooper wrote:
> On 24/03/2026 9:11 am, Jan Beulich wrote:
>> On 10.03.2026 17:44, Teddy Astie wrote:
>>> I don't see any reason for them for not be available, especially
>>> since core2_vpmu_do_wrmsr has PV specific logic for MSR_IA32_DS_AREA.
>> This is really dangerous: You allow PV domains to control whether the area
>> is actually mapped. It lacking a mapping can, iirc, on at least some CPUs
>> result in a complete hang.
> 
> It's ~all, and explicitly documented.  SDM Vol3 20.4.9.3:
> 
> "The recording of branch records in the BTS buffer (or PEBS records in
> the PEBS buffer) may not operate properly if accesses to the linear
> addresses in any of the three DS save area sections cause page faults,
> VM exits, or the setting of accessed or dirty flags in the paging
> structures (ordinary or EPT).  For that reason, system software should
> establish paging structures (both ordinary and EPT) to prevent such
> occurrences."
> 
> There are potentially uses for PEBS/DS, but it needs to be via explicit
> opt in only; it is absolutely not safe to let guests have in general.

That would extend to HVM as well then, wouldn't it?

> One fun interaction would be a PV domain which gets shadowed (PV-L1TF,
> or migrated), which will instantly violate the #PF requirement.

Same here, just with EPT misconfig exits in place of #PF?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 11:12:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 11:12:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260346.1553692 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4zgh-0000GR-E3; Tue, 24 Mar 2026 11:12:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260346.1553692; Tue, 24 Mar 2026 11: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 1w4zgh-0000GI-Ar; Tue, 24 Mar 2026 11:12:43 +0000
Received: by outflank-mailman (input) for mailman id 1260346;
 Tue, 24 Mar 2026 11:12:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1JW+=BY=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1w4zgg-0000GC-Fe
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 11:12:42 +0000
Received: from fout-a4-smtp.messagingengine.com
 (fout-a4-smtp.messagingengine.com [103.168.172.147])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5e485baf-2772-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Mar 2026 12:12:39 +0100 (CET)
Received: from phl-compute-09.internal (phl-compute-09.internal [10.202.2.49])
 by mailfout.phl.internal (Postfix) with ESMTP id CB1F9EC010A;
 Tue, 24 Mar 2026 07:12:37 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-09.internal (MEProxy); Tue, 24 Mar 2026 07:12:37 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 24 Mar 2026 07:12:36 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5e485baf-2772-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1774350757;
	 x=1774437157; bh=/ckWOhAwOTP30+Ax9lTc6ysN39NU7+4bq8AsZwAGCmQ=; b=
	u0u8SsaV8kA2J1FxJoeTE1FyRsKKGX3Bgcqagfrdy25GiGaVSy9P29r1FmwUZuj9
	2GpCJGnnZi52tuFaYnPbFuREdHb3CkBfEs+VoX0rdcqVXD68aEUD2xvVYB7cCOHa
	b5AP0kHSxbHP2CLkg4OKZRDvqwzZ11+YmQQL9m+bsBcIdPzMcN3NIa8cEqQKR/FG
	YnChM5EUodoq+LTEh1GScQs2DfUUjBKphx/h2uo0lhE4zZN7t7286TIyYch3n5Rh
	bJysKEYj3aaW9ZcFYzxkz4B0GxC4vNn7dMAadIySTYRJS6SItHR28VML0PeUyfvF
	X+/0bahT51W5b/c8CyD2Jg==
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=
	1774350757; x=1774437157; bh=/ckWOhAwOTP30+Ax9lTc6ysN39NU7+4bq8A
	sZwAGCmQ=; b=STpJrx9tYNc2TXJ54p5WieMYdEb+qYv7ehAffNBz8lPE5Cz6epS
	VnxGTCGfh6uGqxRc+/L/scwHy0GdSx+5aeYymuaxJ32wbc9PF5wyyfhweJ7L5YYh
	IwiTFLlG/Nn188j3LMFyVP5rYG+y4sefUwYSyVUf5A8d2Grpz0UKb/OMs9gHozzu
	Fdzs53OodXaQblYlU7nd3A5NFhmkiHdq/gdSjg5jlCB9H5/vykP529Cuh1luE/sA
	3+OAPGCHpAE8T2Jfg/bLQpBW3qLMojLxt0jBJDp5CIxyvPeaT5kyXMixQ7hDjZBZ
	cIui5qv084dCYeqptf4Qx7uVJrLtJFtoGzA==
X-ME-Sender: <xms:pXHCaT12zJkldzUSrkWrpdBzEj3yVqJCcLg4Jo8uQAGEX4sHAyLclw>
    <xme:pXHCaUUqUxOBZxOAaEPK9CDM8yE396lZCcepeL7o16O1xf1dO5iuBS3C0f98uMtIW
    xfVeDxyDOrRkKPvQOg0rgtrgsNbpQN-Ixl6b3HFM5lvBmBQIw>
X-ME-Received: <xmr:pXHCaWLZQqub0-U3tE7Zdv-8WG4lKbQFymUUs7uEbQd_eYuE8_YezFHRBHWYs8lGtpX_m61NX_DWGGpGmAM81WIRpcEfbCgKQio>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdefvddugeefucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepveeujeet
    geelleetudeuvefhtefgffejvedtvdfgieevheetheelgeeuledvjeevnecuffhomhgrih
    hnpehgihhtlhgrsgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhep
    mhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrg
    gsrdgtohhmpdhnsggprhgtphhtthhopeejpdhmohguvgepshhmthhpohhuthdprhgtphht
    thhopehsohhumhihrghjhihothhishgrrhhkrghrvdefsehgmhgrihhlrdgtohhmpdhrtg
    hpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhg
    pdhrtghpthhtohepshgrrhhkrghrshhouhhmhigrjhihohhtihdvfeesghhmrghilhdrtg
    homhdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphht
    thhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtoh
    epjhgsvghulhhitghhsehsuhhsvgdrtghomhdprhgtphhtthhopeguphhsmhhithhhsegr
    phgvrhhtuhhsshholhhuthhiohhnshdrtghomh
X-ME-Proxy: <xmx:pXHCae0IzOvqs2oHuvXa9_D_U4Gph07OjgSQw35U5_XHxX0Z7taORA>
    <xmx:pXHCaU6PFb5WGzb-l7UxYq8NvT-mH9vb9uhVj5D-vyTnCq0gWh8V1A>
    <xmx:pXHCaf93I2Btbeie07HPNgPoKGeaVnsaPJOqyt-N_BAhQI7SNe_HZg>
    <xmx:pXHCaTWN1wEKYC8nJSVod4X26-yfrvTtPxxHxM5NNppR6M8OkePkog>
    <xmx:pXHCafg7O-h3KYXJyaI4CdPwZcTmwqlx_996zr9Via5MG_qsV4z5tMMz>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 24 Mar 2026 12:12:34 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v4 1/3] x86/efi: Add BGRT image preservation
 infrastructure
Message-ID: <acJxoijDI6vhs5wo@mail-itl>
References: <20260324101726.6929-1-soumyajyotisarkar23@gmail.com>
 <20260324101726.6929-2-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="BN9tOkU+Ug1Au2dl"
Content-Disposition: inline
In-Reply-To: <20260324101726.6929-2-soumyajyotisarkar23@gmail.com>


--BN9tOkU+Ug1Au2dl
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 24 Mar 2026 12:12:34 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v4 1/3] x86/efi: Add BGRT image preservation
 infrastructure

On Tue, Mar 24, 2026 at 03:47:24PM +0530, Soumyajyotii Ssarkar wrote:
> diff --git a/xen/common/efi/common-stub.c b/xen/common/efi/common-stub.c
> index 77f138a6c5..9e595600d7 100644
> --- a/xen/common/efi/common-stub.c
> +++ b/xen/common/efi/common-stub.c
> @@ -20,6 +20,7 @@ unsigned long efi_get_time(void)
>=20
>  void efi_halt_system(void) { }
>  void efi_reset_system(bool warm) { }
> +void __init efi_bgrt_status_info(void) { }

This has a minor conflict with the current staging, but then for __init
you'd need include xen/init.h.
See:
https://gitlab.com/xen-project/people/marmarek/xen/-/pipelines/2405049544

Did it built for you without it?

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

--BN9tOkU+Ug1Au2dl
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmnCcaIACgkQ24/THMrX
1yySZggAki+ZUmNLOcqp25HyLLk7S3eLKzgNRFOgGXfNFxMASTmDB6LsCTy6GUdi
d6A31BIVE2YfiVPBbj3BAZj0xUx+rKUH/5Aoa3GU3T/enKkXYxMgPhFTH0IpC4+s
ddcl2/5bBYeVWuYVMUytKMlYI9cXaYHGDS6zxuJb7a+ZCoEKCTk9K/rh5B8IyY+v
vv1C8W68USIs97So3YRMCP2fLVrn4IHOtTjodtCGh3da08Y+Y6Ghi4nfNMuz4hQx
FMsNONvaEXnyL8qvZ2vjBFVh1AtbX0UZZmuRMnOkfKXSEWwcVrJaA9nAA7ptAlpN
Lp7dpjBw+25dNM7ZWgXK+62BLDOXCA==
=sPL6
-----END PGP SIGNATURE-----

--BN9tOkU+Ug1Au2dl--


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 11:23:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 11:23:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260358.1553709 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4zrD-0002LI-EU; Tue, 24 Mar 2026 11:23:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260358.1553709; Tue, 24 Mar 2026 11: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 1w4zrD-0002LB-Bh; Tue, 24 Mar 2026 11:23:35 +0000
Received: by outflank-mailman (input) for mailman id 1260358;
 Tue, 24 Mar 2026 11:23:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w4zrB-0002KL-HP
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 11:23:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4zrA-00CljA-TQ
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 12:23:32 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c27432-e002-0a2a0a5209dd-0a2a45089cca-6
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 12:23:32 +0100
Received: from [40.93.196.52]
 (helo=SA9PR02CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c27433-1950-0a2a45080019-285dc4349167-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 12:23:32 +0100
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH7PR03MB7883.namprd03.prod.outlook.com (2603:10b6:610:24c::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Tue, 24 Mar
 2026 11:23:28 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9723.030; Tue, 24 Mar 2026
 11:23:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ucXhVaHtt75P+qtxXbeSNCfIr5Usxv/VAhhjfqpFOeVKXVnUIFgplOy/QDdmecZly60Imk9rMOSuC6tVsEZUqDvf3+tYsuuIi0ZQ2C/cc7PHwTQZVEIYcsJVemsaWik9iJb2ulyob85rWftcwkBm851/knKMwg7KuW2YscgjGHiGmIqur2m0qaCjMCGrSXRIobmUgVy0Bt/cXs7Btm/PVVXj8EoiYRfBm1WPFRQbd37nc4Sik6Txlrv6qfxNYqD8cmi6IyMQYpIDJI/t9fnHLFTfekQVQSOxP6tUg7xt2uQeRpZ3t9OdDnr3lUbjHs5uOOF3KjAktDMTuzfMjajutQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7uJqH5x/m1BWWTg5UjTFkTGond1ERcQEAYFB3M2Ni6g=;
 b=PVvrro3L4IlMAk+E/EXygJX81K4kHLztLxaF4vLOcLLEmsrqIXZ5oX45QlaLsnUoJNuP8craH/ZZhVTXOA0htIv5YAn7IJYlkArmsaJ4iocd0MLSZjc/TVk0UCmDrkB8nQLJBEietyFWh5ysLHi+qM9hvvScp++LKL8vpmyvQgt2824jwnUe3zquScGYHvOuq+1nPfg8Ffe6D30HuloGd0h7Hu3/FQjCBPJRsSYCaiADbvj19at+MeWpD1TYVUTZ6t/QPxwG+56qGN5WZteOA/mbshXAPOK/Kptn0IePkbF5TQXPZpOgbCwr7x/qYEACaDP5+9uUKCDyWqukhe/+UA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7uJqH5x/m1BWWTg5UjTFkTGond1ERcQEAYFB3M2Ni6g=;
 b=EVH572yE7DCC616vaUD6PEOdMmVBrDCWjgnacp2ly2NSrvtdfB/BJZMBSSxuwnzk35Kdh7Lgo7l6N9nQWjM4LwBu3vX64v5oikUSNo+h2sBCqP6rIjIl7rVuKvu2K1HuVXdUHn6WufyceRCn5mRMN9hn2JinH10Zgin/Kagcwpo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <798dfa84-bcdd-4990-888c-efefd3509d04@citrix.com>
Date: Tue, 24 Mar 2026 11:23:24 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org, Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH 2/6] x86/vpmu: Expose PEBS and DS area in PV mode
To: Jan Beulich <jbeulich@suse.com>
References: <cover.1773160025.git.teddy.astie@vates.tech>
 <0762ceb722be83bbdf6703cf419debf30609feb0.1773160025.git.teddy.astie@vates.tech>
 <7e4be441-c0ae-498f-9fdf-e5ea8bf11e48@suse.com>
 <9172b52f-13f8-4d9e-9caf-87ef04b5fb05@citrix.com>
 <a33150bd-2c08-4fdd-9504-a3e57bf63013@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <a33150bd-2c08-4fdd-9504-a3e57bf63013@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO6P123CA0048.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:310::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_|CH7PR03MB7883:EE_
X-MS-Office365-Filtering-Correlation-Id: 28945da7-c013-448d-37b4-08de8997bf66
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	b6qJM+5/LYq8TYs7S2m2rvYVYowxnsq6G2vKihDgcUoIG46hEq0PGpMbqqDD+s2gBlQxth0KsRJHUqw2uLP594aasS6q75QDoCha03kCvWI0AJ9ngMX9yiU9wFrrPdPAnWX/5n9h7JwGtwpINX6/aHSMyyZlQQQbB1ASTbEsE2kXNHKXkzu2ns3mK/gxfWyhSO38rDLlwwYK4OTEncysvmzZd6uZOhlslJCBJPS+MSwgCFZcVsq5E270ibXycOIUtLhOMSloJLPH8yS4IR3wx5jw8xWDYE+5RRXWRzgVedEXl8IhfFUqzRb2mYHnPk4z0O7iZS8XNFC9Pf/hQqNxUIyrxv+v1mL94uqfAK5YYC1/lcgQPE/tmO66C5QzUBNUdvSNUh2xWuhTFgg+OO74JB8bgVRN7cYWgb3gCe07/NSjz7+/gLgHqCGaAGuS6k1D4b7BgO00WEflZ6aDe6lZAJeqmxk49D4tZZd32o8YYg9wa5ywSJD2WCl7rdVWGCpOT2uWK2Z2EH61+951978iDXba7wUHFuxoXZG/5QA1LaMs1LXCIcBM2YrYqs+7KzxqSlbW46eQ2IdzlJShX4B0Z4m9I6tylo8Qz39lDjGjMyQBZZN6YvEPBA4fjKPOkVCuzT4X1o2wz50zzn5BVIyHzk00nmxyG6K83CCk0WS4HAqro5p5mknO64waK7K3jQAbVdIpgbsHNiLhBx0mMYEB+fOEk4SOoLrXX6j0FFj96vw=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RTJuKzMxVHhBMkxLOWRodjVJaWlOaFZKOFR4dXdrd1pBclcwdDZsRFcxaG90?=
 =?utf-8?B?Y21wWEI4enVVNlRXc2FIcTZjWlhaeVdsZERpN25VSUU0eUd2R2IvcjN5elF1?=
 =?utf-8?B?RzhDYVhHQ0dnSFhBQTRGbHNka1hhUlVKRW11SDhWMnpqSHY3UjJ2RXdPM1hq?=
 =?utf-8?B?MWxhWjJVZHJIaGZ5VWhrb0hlb2JJcWZDNTZiaFUxaENsSTdmTTRxTGRqaDBQ?=
 =?utf-8?B?TisxK1dzYkZpNWhXUkhjcjRKVzd6U2lhQ0RzNS8reHJwTTNra2Y5QVVueVVP?=
 =?utf-8?B?b3lscmV3bVMzY2ZBYnNFZzBVZFAwdDFwNngvY2RRVUVDNVJwbTMySk56WU9l?=
 =?utf-8?B?VVVwd0VTOTYzR0gzOUVDOEV6OS9SekplWFVacUpvNU5wVTY3dmRjVmtvMTBx?=
 =?utf-8?B?dXZFY1BVYnVwUnNaaVZPbzZmb0xpdWJYSjZLT0VraTVLRVh1WUd0ZTd3N0xP?=
 =?utf-8?B?MFB5TjBhUzhyZzBDMk9Xdk5hd2dvRFZ0cnVKTGxoR3NyRWIvL0tqbmRtdkgv?=
 =?utf-8?B?Z3JEa21iQ1BCK0xGaXVjRlUyWnpNRGF4ZjloT0VQNVp0Tjd1SStLWjJZLzRn?=
 =?utf-8?B?ajFqcHpGYWhWUy9sQWthNlhacUV0RHZxczN0Rjl6V0tybHl1TEx0NTErRWRI?=
 =?utf-8?B?TEpkUk9WWXdUYWtkZFBIME1PanNqZUhWQTJtRENZazVIemZIREpka3BQM2V1?=
 =?utf-8?B?d1hxUjdEV3pwTzY2Ni9LVGpPVGNXaEx6bEFnc29lYVprelZYUVVOT1JSb2dq?=
 =?utf-8?B?dGlEV2FJdkluNXgzRU1ISjlCaWpGRWdsdUd2ekdYNXJ1T0lJWGhDUEtpdG80?=
 =?utf-8?B?THpzQTA0NktwamMzaWN6eHFjWHpSU0ZJTVh3NCtZTXNwRVZSdm9iblJzMlVW?=
 =?utf-8?B?dXlsRnNBcnhyNmlJWWpVc2dCNkNNY1FlUjhuMEtvUjUzV1lScFRYd2tsV3VO?=
 =?utf-8?B?R2VFeERldTBsNXY0VUxDS2RaanlmUmF0eENjcDlPdjFET1BWVXREa2FZKzE1?=
 =?utf-8?B?OGF3d24rSlpsODRGUXkvcVFtMTZkWmZPQVp1MS81MWJBNjBsZTZ0ZitJdEdM?=
 =?utf-8?B?dlRmM0pBc3ZLRXJ0Wm9VVjZkL3NUN2RGQytIRjR3c3d5VmhpYllVOTVWTG9T?=
 =?utf-8?B?Zk1DNHVWc1Z0b29BeWNpK3JrbEFVYjd6S1RpVjhUYXBoV0QrcHpmL1NlQXU2?=
 =?utf-8?B?K3oyTEU0V3RqdDhJbGNkQUNWSHJTc1dPQVkweU1JWEZqaEljNGV3bVZGemhL?=
 =?utf-8?B?dWlKUWxicFd2N1R0dDQwN0ZLaTJSUFlVL09ac0pHRW5JZitKS3luTlROc0lJ?=
 =?utf-8?B?VG5LSk5zTU52emNaZElLZVkxdHpRN3VEVmcrK3RyY3J4cmpxN24xelFCekFa?=
 =?utf-8?B?aDlwbXpmSnJJYzcxdHlUcmZWaEY3bU91NHA3bGd0MnFJQUZhWGVPTzRUQ2sx?=
 =?utf-8?B?dW9PZEd4SjFlb1c1REdPTEtVSmxBL3cxUVREa2Y4WkE0ZlJKUXBHaFJDT2NK?=
 =?utf-8?B?WlpPRkRXQkZQMlNsMm43c2I2RGl4SzB2Z1lhdjJkUUp4WEI1YmFrN01hTU4r?=
 =?utf-8?B?MUxGMVQrY3BqNnppM2NQVlAwcVZxYnU1aFFDcU55SW5VdmxGL3oxbXgyMy9a?=
 =?utf-8?B?d043VDNqUmZpR2s0YStic2wxRzJxRmd1NlBzYnZRU2VVbTRZZVNMZml2ZFBO?=
 =?utf-8?B?cTk5UEhFNk8xLzJ6SXBRUHBscmdUTTBSR1I5cDdkdDB4dkt6M1EyOVVKVGVT?=
 =?utf-8?B?Qks0UmZXRHBRelRTdEE1SHdlYVJ6Uzc0Vkc1VDdOdE56K3lrYWdGZFlNcEg1?=
 =?utf-8?B?a3V5andOUEtKWk1FeXdVbHJjdTJ2UnNWOGZXVEIwcm9Od2UxWCtsOWpxcDlB?=
 =?utf-8?B?NzdzYVRsZzRGYU1aT2xObXFmOGE1TTFJYjdRM21Zdy9oQ0JhZ3R0TXFjQito?=
 =?utf-8?B?Zy9YRXpUdER3ZlU2aU9HaWFRa0NycXI5MmlSL2lqcDdUcG5Rak50RURyRmhn?=
 =?utf-8?B?Wmswa1NtY2REcXJ1aWszRTMvQkJZcGY2ZkJxUUdTaXErTXR6UTVRRUZRUVB3?=
 =?utf-8?B?QUVDdTkrQTgrUlVWMUkrWWdqdWh2Zm9xNjk0Tkk1UGFzaHovV2xFaDZ5S1hz?=
 =?utf-8?B?VjNjZXlDM3hIUE5aSHlld3V3a2RCQjRjV2NpTHFwWmdpQ3lqMjk0aDhOT2dF?=
 =?utf-8?B?UWtLSHk2cVc2UnpIWVExQlAxQ09BSzBnTjRxbm5MK2Y3aFpuV2wveS9Vb0dG?=
 =?utf-8?B?ZUV0Y090bDEvd1MxQ2Vvck82Z2RwbmxrM1p3bEFlRWt2Y1EvMTVzbUlZcklt?=
 =?utf-8?B?S2lVMG9IZkZiQUhVSGFrV1VFQ041MFpaT3lwcVcyVjh4Z3lNQUsvT0gxUFh3?=
 =?utf-8?Q?Rqk4BZ80oqHoMeXI=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 28945da7-c013-448d-37b4-08de8997bf66
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 11:23:17.8283
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: oJRN+VHX32+YSznqXEq0I6cF7m5JWIPkBUth1mzRaKV2W+RiU9ARFkaYeMq34y6FlD+AIAkioZwZDpaqwAW/vGn/mU8di1/mFmJPyP4e/jM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH7PR03MB7883
X-purgate-ID: tlsNG-c1860d/1774351412-F2CEA726-9031312C/0/0
X-purgate-type: clean
X-purgate-size: 1596

On 24/03/2026 11:10 am, Jan Beulich wrote:
> On 24.03.2026 11:42, Andrew Cooper wrote:
>> On 24/03/2026 9:11 am, Jan Beulich wrote:
>>> On 10.03.2026 17:44, Teddy Astie wrote:
>>>> I don't see any reason for them for not be available, especially
>>>> since core2_vpmu_do_wrmsr has PV specific logic for MSR_IA32_DS_AREA.
>>> This is really dangerous: You allow PV domains to control whether the area
>>> is actually mapped. It lacking a mapping can, iirc, on at least some CPUs
>>> result in a complete hang.
>> It's ~all, and explicitly documented.  SDM Vol3 20.4.9.3:
>>
>> "The recording of branch records in the BTS buffer (or PEBS records in
>> the PEBS buffer) may not operate properly if accesses to the linear
>> addresses in any of the three DS save area sections cause page faults,
>> VM exits, or the setting of accessed or dirty flags in the paging
>> structures (ordinary or EPT).  For that reason, system software should
>> establish paging structures (both ordinary and EPT) to prevent such
>> occurrences."
>>
>> There are potentially uses for PEBS/DS, but it needs to be via explicit
>> opt in only; it is absolutely not safe to let guests have in general.
> That would extend to HVM as well then, wouldn't it?
>
>> One fun interaction would be a PV domain which gets shadowed (PV-L1TF,
>> or migrated), which will instantly violate the #PF requirement.
> Same here, just with EPT misconfig exits in place of #PF?

Yes it does extend to HVM guests too.  The difference is that it already
exists for HVM guests, via the vpmu=dts option.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 11:23:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 11:23:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260359.1553719 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4zrE-0002Yx-M2; Tue, 24 Mar 2026 11:23:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260359.1553719; Tue, 24 Mar 2026 11:23:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4zrE-0002Yl-Hh; Tue, 24 Mar 2026 11:23:36 +0000
Received: by outflank-mailman (input) for mailman id 1260359;
 Tue, 24 Mar 2026 11: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=ehxs=BY=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1w4zrC-0002Kh-EY
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 11:23:34 +0000
Received: from mail-lf1-f54.google.com (mail-lf1-f54.google.com
 [209.85.167.54]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e38a51d3-2773-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Mar 2026 12:23:32 +0100 (CET)
Received: by mail-lf1-f54.google.com with SMTP id
 2adb3069b0e04-5a126c8aab9so4360659e87.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 04:23:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e38a51d3-2773-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1774351411; cv=none;
        d=google.com; s=arc-20240605;
        b=bxXIzzioUleulF8lp3oqPqzDjnT/npLPwqeCLLecDkfC6pV0DwetdSrLBur2d8HVGL
         +99ZlCiGjs13UvTrIth/BM/yL46rnc+UFGcykm4MhK1XXNn8NQlpgucjsXaMGdoMGxC1
         eZXTYAXX4oKhWaglQFX3EuJXNigorqJFiY8WXbzPf9N6ZIWk8Iyj3y8THbx2/iR/yVEo
         1eYlt+NCBd3rseJtUhv01pgs593IkcPT7BXKy9kF4BZ6ChqIqIfW0gosJkvmq2sGjBRX
         IZHVTQqhEYXYkj7mZKVLE74rICiuR3qqNwV/PyNfj8NeKyweESAm8x2m/lRnz5SV+JLw
         SLJQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=bI+UoggsSrpR6xztg5THCBHi5ram0r8EIcBtKHoPF/Y=;
        fh=corJSGMtJoh3mabmUPSxtOfDukuOyhLbOeZGbWzD8HI=;
        b=baCzKy3a0pxggg+g9jtnvwc5x4+beYZlccuu7sDl/88KnoMV254I/TGLLVSo5nM3if
         DP1ybBXYuQCgQLh3OTRWjoY8jxZjgO0bilohdZGtO4JcbZapyD+j9b53lFJOSmnW2skm
         +g5PtFaSd8alNuXVvXfnkOC2k1OFgBQ0LbBOVufEj4eHAJP8pQRAz4UM7Hfa1BprSlf8
         T7YV1U7D8HhrR7wG2fmPRrblNA9x3g/91u6L659uvwJVIVLDh+B4vEEAeQvWmFIqplFZ
         d2QuvUPqkZsisloKlJNqYGqWp5WBbaWtbOz4hgkhtDhrYbP1n13x1JpBOvg8Pjb8wgQM
         SXDQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774351411; x=1774956211; 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=bI+UoggsSrpR6xztg5THCBHi5ram0r8EIcBtKHoPF/Y=;
        b=OPkTOdDdJut2tjexDTKxwZK5yRLpCweK9J9knh/FOPSI9GmwF/X2CDxEVpas51ojo9
         BXLEBOBQ7U2E4bLO45jHXbPkLnme6I5xsiCH0tngCHYBMaAVdQFg1A9Z7XyAKKQppmv/
         OeQmIy+T3apdvbcxTPF4jKyZHK351M/GNAbuMHmKNPg4Nfr2E974LppncCk+1ZYVpIRX
         SJwo3NGGv1sCrTVIxHhCpv6G6m/sCUjpR0f0ky+BkRXYB72ZR3vYxnGs+bdDJ9NBYk2r
         +VRgadKaZRp2IiumLWajzpM2w1RvKunP8asVprsRepV2RPUKOYtrJCMIjekEjYmwrU0J
         lQXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774351411; x=1774956211;
        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=bI+UoggsSrpR6xztg5THCBHi5ram0r8EIcBtKHoPF/Y=;
        b=cDSKRHBx/wYhsMy8KS+OTa8k4FSuUPUSZ8kQDKjrOfT3XGH1k+EsgIXyn5/odYYJ2i
         OAs4Wwnl/xp1sWE7woDsmsjH8YajXCJFjv0UVqFmdOA5vlLgGs8YQ/ZXHz3c0n1b4BE+
         PUG3yD+OHzZVp8mxDRsYdrO5LACn7/IlLmyLnZZhg3X/NFFLybLKm5DcNeP6Dn6FQs5r
         FXtrWorPL2tDJ57BaKCB1476kU90QLoeLWVVd7MkDZUoXYLTRjTbUJUh9aomprIfvDej
         CCVbnqZCaa8aoVO/5u/i+/pa/G2R3As6kArs9K1/Z8PCh09EUHKavGm+3QtA4pbSicu5
         ad+g==
X-Forwarded-Encrypted: i=1; AJvYcCXcb+cp/JK+dVXWf3IFOa1/ODEcAK4omKs7wrKWOeCX7IXCk2LoWY9KnqxQ0nbgrFqu/tanpP5H3pQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzArCk49ycIDK905jPAd3MZX1BHcEuqRi4w3dpKMeyFZ/Yu5fpw
	EoiPCmX0NU+RZp0uhESNJtb8NRqD3XTteh+4a1jc5p64A0JP+8p65nqEQlAQpCBPvfbW6S1pzLi
	53OHI3ForI+x4alWy26AVfQNphjZqML8=
X-Gm-Gg: ATEYQzyZlcpRmCV0RmLvtjv8M8UV+nLPcRXnUPvISYu98m7OxmuZ8r/SD7unfyyUvdm
	4o6wjBPC5ChXLLz3mbyvNyrLnY4moUzEKgG/qNKlj7wlvz5wiRjPL+1HDCWFuKdar0FsaPlV9eE
	BKHPWG3YyZPVMrKQIHMzf8wcApvCbOUWV45q6LKT8TR9wIHYV1UqXINMyXN96v+ApmHpxSaYlOm
	bqRaApvukKrk7kKsmdxF8mxcrJgFRy0lN13yCn8U1yI6lODdkzOFVdPCLDAAOKY5EgjpG0Zn0g7
	Sbsfng==
X-Received: by 2002:a05:6512:1092:b0:5a1:2a64:202a with SMTP id
 2adb3069b0e04-5a285afe555mr5412712e87.18.1774351410762; Tue, 24 Mar 2026
 04:23:30 -0700 (PDT)
MIME-Version: 1.0
References: <2004584dbbe393c9de4b3231bf91a24f6e5de5de.1773875416.git.mykola_kvach@epam.com>
 <c37859f7-bac6-4394-ae12-83e054a1743e@suse.com> <CAGeoDV8v3=b46qrmzmBjH8BN7rs3CRcSAkrOCgHGgr=8+PcuEg@mail.gmail.com>
 <07305e5e-0487-45b2-8518-932dbcd92a13@suse.com>
In-Reply-To: <07305e5e-0487-45b2-8518-932dbcd92a13@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 24 Mar 2026 13:23:19 +0200
X-Gm-Features: AaiRm52sdd9qRb_mrhNTukC6J3kwCeE3yNkK8zD-UM3VITAg-B3N8M3Zfv6aFA4
Message-ID: <CAGeoDV-b6Xn3uzSYZMnaH-xrG=sMwen_av05FPCMJp3OWoO4QA@mail.gmail.com>
Subject: Re: [PATCH] xen/domain: make shutdown state explicit
To: Jan Beulich <jbeulich@suse.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>, Paul Durrant <paul@xen.org>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Tim Deegan <tim@xen.org>, 
	Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Mar 24, 2026 at 12:10=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wr=
ote:
>
> On 24.03.2026 11:00, Mykola Kvach wrote:
> > If you think naming is part of the confusion, I could switch to
> > something along these lines instead:
> >
> >   - domain_shutting_down()      for the in-progress state
> >   - domain_shutdown_completed() for the finalized state
> >   - domain_in_shutdown_state()  for the union of both
> >
> > Would that look better to you?
>
> Yes, but please give others a chance to voice opinions.

Sure, I'll wait a few days before sending an update.


Best regards,
Mykola

>
> Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 11:23:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 11:23:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260357.1553700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4zr2-00025r-8B; Tue, 24 Mar 2026 11:23:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260357.1553700; Tue, 24 Mar 2026 11:23:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4zr2-00025k-5a; Tue, 24 Mar 2026 11:23:24 +0000
Received: by outflank-mailman (input) for mailman id 1260357;
 Tue, 24 Mar 2026 11:23:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w4zr0-00025e-HE
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 11:23:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4zqz-00ClfL-9C
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 12:23:21 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c2741f-e002-0a2a0a5209dd-0a2a4504dc58-32
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 12:23:21 +0100
Received: from [209.85.221.51] (helo=mail-wr1-f51.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c27428-c823-0a2a45040019-d155dd33d4ce-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 12:23:21 +0100
Received: by mail-wr1-f51.google.com with SMTP id
 ffacd0b85a97d-43b871dd06eso60399f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 04:23:21 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b64703c7fsm37275928f8f.23.2026.03.24.04.23.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 04:23:20 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774351400; x=1774956200; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=eS2Oeab6YQQDesQJGuIJnDMobNVjND33/+0xuBzkurk=;
        b=Hr5RG63pfRcpT43T4FiNgEmgnflDsZsmwh9SIvRXnIf50vuADmUzUQ7ClrgrKbU+JX
         telc96znFkWMXDvvBCAa28Jca6M9NB12lXapf1HaRi1ZHaM5Kz7RKJhII+WaSCvUnWrn
         nxELnmaCv9ZBo7FCwU4yBKnlQSA3XY1B5JwVmazJsbmkOWLlovEARrUfVGWjcFCiVA2F
         nLS2WMkZzF5lWeSBy3llZMN5BLeL6vg/vitK+57QaHQ0ngeRIMywkDmAFuT2NVt9AeF1
         kKWeSbjtPMniUFBhcuF01br6lX8JjZumKHleEjjH0L+n9SqFFhfNtWAUszUvOFbUcx/p
         WyWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774351400; x=1774956200;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eS2Oeab6YQQDesQJGuIJnDMobNVjND33/+0xuBzkurk=;
        b=CP99X8mSEdYl4+efNM7Qs5Bjzc3Cw5e5sTncR7FHXhV2/fcX0uuM+8qeBMWD+9qGHp
         qiuANlaupDWRPvLh91pg8QCoLMIvsPyGDcqIJSngDV+DtxQXegoXS2tULx1/BU/8IPGf
         8mIZ9tkd1GkkEg+5oifZ/8VrtpOxDUGNCN68pBIp3aHVEl8B1zO8Y11EITYiyIv327Kg
         0lcErPgBZGTlSojPuse6vSzhFe2VaYl33eMFIo9lNXP3SDnr3X0Bhvi6kyu/348LfIX4
         ZFSl6icaGlZ5mC33QzMNKvmtQ5RT7aTy4nv20684rWWL7DJaLwsB43mq9TyGzljixzPm
         1Khw==
X-Gm-Message-State: AOJu0Yz0NxDJqPrX80pTH+kKy/Mo2kzdSNpXxhd8YsUiaidUh2HYczMf
	+2kYDdQ5ccLz7frp+kKWCfhnNf+r08yaekM41lhq9T5YFJ/4n0zkNhsyxtsfFPe9KA==
X-Gm-Gg: ATEYQzw8VKLeZfcX6ntZUkt1YjKmHlDDrCyh2biOWzo8WiJvnQaA6fHmQ5FUIjoNYzs
	4rCPkllXXOIzNPqyNWgmcCe0tUDFsLH3fghLnWdXZuSkmPyLFZ80ZeiRL3fSgLkryZJalGNY24J
	Db2SXPzwQWjZanZzfgLHVHR0dYhPLncF3/hWO06p9Obf6XvjAAS+WcKZZdvYrf6y8PKadPrv5b1
	pVzxEUrUmOB+QjW7VFuKzkmSwpAMeRCuyfEFNaCTB0NpNRBQ47iMe9Zvffd3kw/hRi56PKQ8DtM
	2Q22jdSRf9zAOni2CTD2Qt/8YuW1IASVW0j7l100e71W1B6TiZEWwAPOLLv1x+EESFrGsGbz4LE
	ZjXHWC1ZsFTdkhEBVhuI1x503C+8OqgbJ/KHofyVnqb4cfBgwLKasgFcGurXbhhcMoeZVI3iftk
	xTBRLhX5KPuMPsyNWlluL/nnHOh0EWHof31OFjhvOge5pPf0etBDzd78nr3Qc06D45zDxPTGMLR
	uwnmrn1TXmZCkGAMyXCMzgjBA==
X-Received: by 2002:a5d:5d86:0:b0:43b:3e0b:721e with SMTP id ffacd0b85a97d-43b64281744mr22841264f8f.40.1774351400472;
        Tue, 24 Mar 2026 04:23:20 -0700 (PDT)
Message-ID: <56fa4fd5-19a8-4c46-9524-0f41090a8857@suse.com>
Date: Tue, 24 Mar 2026 12:23:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/3] x86/efi: Add BGRT image preservation
 infrastructure
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <20260324101726.6929-1-soumyajyotisarkar23@gmail.com>
 <20260324101726.6929-2-soumyajyotisarkar23@gmail.com>
 <acJxoijDI6vhs5wo@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: <acJxoijDI6vhs5wo@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1774351401-B3C919D1-3D3E77B8/0/0
X-purgate-type: clean
X-purgate-size: 951

On 24.03.2026 12:12, Marek Marczykowski-Górecki wrote:
> On Tue, Mar 24, 2026 at 03:47:24PM +0530, Soumyajyotii Ssarkar wrote:
>> diff --git a/xen/common/efi/common-stub.c b/xen/common/efi/common-stub.c
>> index 77f138a6c5..9e595600d7 100644
>> --- a/xen/common/efi/common-stub.c
>> +++ b/xen/common/efi/common-stub.c
>> @@ -20,6 +20,7 @@ unsigned long efi_get_time(void)
>>
>>  void efi_halt_system(void) { }
>>  void efi_reset_system(bool warm) { }
>> +void __init efi_bgrt_status_info(void) { }
> 
> This has a minor conflict with the current staging,

In which case - against which tree was the submission? It shouldn't be
against anything else than current staging, and I don't think there were
any changes in this place recently.

Jan

> but then for __init
> you'd need include xen/init.h.
> See:
> https://gitlab.com/xen-project/people/marmarek/xen/-/pipelines/2405049544
> 
> Did it built for you without it?
> 



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 11:30:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 11:30:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260385.1553728 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w4zxi-0004rM-F9; Tue, 24 Mar 2026 11:30:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260385.1553728; Tue, 24 Mar 2026 11: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 1w4zxi-0004rF-Bj; Tue, 24 Mar 2026 11:30:18 +0000
Received: by outflank-mailman (input) for mailman id 1260385;
 Tue, 24 Mar 2026 11:30:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w4zxh-0004r4-4W
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 11:30:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w4zxg-00CMMZ-Cr
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 12:30:16 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c275c5-bab6-0a2a0a5309dd-0a2a4502eae0-20
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 12:30:16 +0100
Received: from [103.168.172.155] (helo=fhigh-a4-smtp.messagingengine.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c275c6-63bb-0a2a45020019-67a8ac9bc88d-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 12:30:14 +0100
Received: from phl-compute-12.internal (phl-compute-12.internal [10.202.2.52])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 42A78140015D;
 Tue, 24 Mar 2026 07:30:13 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Tue, 24 Mar 2026 07:30:13 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 24 Mar 2026 07:30:11 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm1 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1774351813;
	 x=1774438213; bh=6sWhBFUaLKaPF7jUgKWv+ePnwEai9kvsIkgafUu+Pi0=; b=
	lMK7QaosgfXohBbcCaMr4JwsSUjqdxpK39JAUEYM5qvIKiwdRP1TJKKiHcZ/mDt8
	WoC03z+McFNXbaSGKovqYZrrz3LtrMxQAO0WWuR2TWbtfu2aLgwOfB9goB9Z9rn1
	+YAcZ25emj++9M4K1qxc3V0ImeluQu/cszQYhxFcCltQIEA/+WE5EIN5WHKL7tT1
	1udpumi5J24R5LTG6L+IKnuzTitpDHwqGJMbUpGeI7F0gZgOtVEgnVrUeVbH7/mu
	W+8cgQaCYEo2qxdJWg7njjbO3CgpewIvEyD3BHjJd9syi70YZ8Jwhu7hOCoz5EQ+
	LCk66lSNrhsA0Cdae30PnA==
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=
	1774351813; x=1774438213; bh=6sWhBFUaLKaPF7jUgKWv+ePnwEai9kvsIkg
	afUu+Pi0=; b=0tkjPyQvRI8umxOtG4fUAlmRHR0WJuA2DQLY3xL9I82uLYcWGJB
	zj0H8KDoc1M7Z5asjyyU8y5EI8vcSa9Bl/dEzCmR+6x5K02swT+Yn8uysMSN5T1v
	SiX0ySMRtZ3JjFFxCfPTJtHr2+PMc88ocKy/OrKZ4O1J7oqmmzX9lIazp8FH18l6
	jQROJdCPYssrsSlGwseW9Q0SI3tl01K/FgG6DreD7eGrxSCrAFpDuyq5CnLp6T7M
	A0G5s10wT88ikjFfxGvRd8pAAqxRRkFptupZlfcVh0RAXfhdppkF3FvH7tt2iDDm
	dDtJ3htnAswx4/K6wPBolA23ab5kQ2ZjXUQ==
X-ME-Sender: <xms:xXXCaa0275mjKEjUeecrY_D2kxv4xOn10r_M-OVceKSf86FqKTMRuA>
    <xme:xXXCafW5Q-Kj2H6NsJh0I_a0Kw84w9_GwC4e6wtcI8kVMX1EOGGKumGOZ6JklgorS
    GkfG1gFjhl416THawx1k9ZuZQpbrgysMNSx7SbYPYfCdhs5>
X-ME-Received: <xmr:xXXCaVInCP9fFTfnWdr9lSyOmKZMOzv018XrwFvUfs7h7cj2ENVNqyeWtEIqG0en4_2mllCv3-HgzZKUu4DEHYqqcEa_x7wF5y4>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdefvddugeeiucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepjedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtgho
    mhdprhgtphhtthhopehsohhumhihrghjhihothhishgrrhhkrghrvdefsehgmhgrihhlrd
    gtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgv
    tghtrdhorhhgpdhrtghpthhtohepshgrrhhkrghrshhouhhmhigrjhihohhtihdvfeesgh
    hmrghilhdrtghomhdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtgho
    mhdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpd
    hrtghpthhtohepughpshhmihhthhesrghpvghrthhushhsohhluhhtihhonhhsrdgtohhm
X-ME-Proxy: <xmx:xXXCaR3YE9RPYsYFfyOwupGHDWrnfZocyjnsGU3CqrAhTPjAIGNYZA>
    <xmx:xXXCab7mDckLUklbyrgqRi52ci9F6F9AfXQpsdOV67yYaNyB2YlkSg>
    <xmx:xXXCaa9Sr-VATli42U-jSgvSh1TC15O2h31AOxOE05juT7xcZaANgA>
    <xmx:xXXCaSXKHb-lKTYmj2CX56EBsbin70WrV3zmTkKOKSdbIOVIi_UmSA>
    <xmx:xXXCaailOJ5NskiHTVw7D5S4wOrecPsM24zwa-bXwNiNv4T1eUp0Uznv>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 24 Mar 2026 12:30:09 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>,
	xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v4 1/3] x86/efi: Add BGRT image preservation
 infrastructure
Message-ID: <acJ1wTlRz3lKKjDw@mail-itl>
References: <20260324101726.6929-1-soumyajyotisarkar23@gmail.com>
 <20260324101726.6929-2-soumyajyotisarkar23@gmail.com>
 <acJxoijDI6vhs5wo@mail-itl>
 <56fa4fd5-19a8-4c46-9524-0f41090a8857@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="3LqmlMSr7E/hSl4H"
Content-Disposition: inline
In-Reply-To: <56fa4fd5-19a8-4c46-9524-0f41090a8857@suse.com>
X-purgate-ID: tlsNG-720697/1774351815-42686DB8-57234BFD/0/0
X-purgate-type: clean
X-purgate-size: 2278


--3LqmlMSr7E/hSl4H
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 24 Mar 2026 12:30:09 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>,
	xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v4 1/3] x86/efi: Add BGRT image preservation
 infrastructure

On Tue, Mar 24, 2026 at 12:23:19PM +0100, Jan Beulich wrote:
> On 24.03.2026 12:12, Marek Marczykowski-G=C3=B3recki wrote:
> > On Tue, Mar 24, 2026 at 03:47:24PM +0530, Soumyajyotii Ssarkar wrote:
> >> diff --git a/xen/common/efi/common-stub.c b/xen/common/efi/common-stub=
=2Ec
> >> index 77f138a6c5..9e595600d7 100644
> >> --- a/xen/common/efi/common-stub.c
> >> +++ b/xen/common/efi/common-stub.c
> >> @@ -20,6 +20,7 @@ unsigned long efi_get_time(void)
> >>
> >>  void efi_halt_system(void) { }
> >>  void efi_reset_system(bool warm) { }
> >> +void __init efi_bgrt_status_info(void) { }
> >=20
> > This has a minor conflict with the current staging,
>=20
> In which case - against which tree was the submission? It shouldn't be
> against anything else than current staging, and I don't think there were
> any changes in this place recently.

There was - removal of efi_halt_system().

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

--3LqmlMSr7E/hSl4H
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmnCdcEACgkQ24/THMrX
1yxsUQf7B+7mZe9Cwgcs2A3ULX7ZnVGzTTeUnJjZykp/QaFBrHnX43jJkEtg9uz1
+u5U+8hsaVCOs1cyfTXkEDvZ5FM0FW/ZKnGUeD4sfg5ltsZok3KsR045kyJu00y0
1GiTe7LINfVKG5CojdzyknA9zCWrA/KsOdsVtIlbNBxKt/ZOAurdQBtMIten8cU8
i2jEy62uOG9Vcs+bXw170lisFzTfGpYC3ehrlkOrEK6xsGEQNUapuGwAPp0i6xhz
q7fpOr1wcGR5mEqA89uwqXtZc7eLRhcS/Z0s+OfyksZfSjDGyMxit2GMPeMiU5OS
fTXLoQWd2cIrDWEdnO9fbcyfrjoa3w==
=IA6H
-----END PGP SIGNATURE-----

--3LqmlMSr7E/hSl4H--


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 11:36:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 11:36:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260393.1553736 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w503l-0005V2-3G; Tue, 24 Mar 2026 11:36:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260393.1553736; Tue, 24 Mar 2026 11:36: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 1w503k-0005Uv-WC; Tue, 24 Mar 2026 11:36:32 +0000
Received: by outflank-mailman (input) for mailman id 1260393;
 Tue, 24 Mar 2026 11:36:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w503j-0005Up-Ko
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 11:36:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w503i-006EtR-Iy
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 12:36:30 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c276ef-e002-0a2a0a5209dd-0a2a450a9f24-34
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 12:36:30 +0100
Received: from [209.85.221.54] (helo=mail-wr1-f54.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c2773e-1772-0a2a450a0019-d155dd36a8e0-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 12:36:30 +0100
Received: by mail-wr1-f54.google.com with SMTP id
 ffacd0b85a97d-43b467dcf0bso3739027f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 04:36:30 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487116f173csm52867155e9.2.2026.03.24.04.36.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 04:36:29 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774352190; x=1774956990; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ScMyBkDOwqEDv0EocgQ4r4i9mdyken1+1ACwAd0zjhQ=;
        b=gvkdRDp5BkQLEKIIRyormxd0Wxrk02XvxJRnEn0A/uqhQmPcV2+mGIUSyz2IWGO1gp
         nOk5PXcPXMih1LwY8JZ4mjvU32lkJZ3JhgWYx3VQwFpwg/srkp//nu8+IR36PtIV+oGK
         vqHX+/1hkEi7gEPba0fSoy0C227875itEA7xSuL/T/HWrOgARpsqOQH5dBxhsbEU//TZ
         sDowxQiSQ0LR59JoKowRQO3S1dfCuKlGOLYU1AEX8Xwbjrng+MJ4u8xpdeLSXoRLjIQA
         YWvEvQ5zwewu2rwMzjNZdtlQgYyE1GiCsQVWSfxZaOQmaVgZNHS0BXA7jTK+X30eMnoa
         YemQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774352190; x=1774956990;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ScMyBkDOwqEDv0EocgQ4r4i9mdyken1+1ACwAd0zjhQ=;
        b=nhFlWTf/sZYxpileH225QPGBqjugs/xvXBxJkTV888ETfx+t0MiEuzrp1n2JQeeE9s
         zNfW2EW1DxhXWV7euk41lNsovFf4LQ3hsMjzKR3LeZBQUhgauuWx+AdWL5JJpla5YuKq
         VsHtjv1tz90J6W43h4ldvVzfpXm50Yjy1mh+1+K4hRAq750qvz2JujdgvtNskV+8MkWo
         0P5Ih4e6G6Eiq2F4D3olWPNXI1IqrHqiGDqhN5qe7UDaefTYuo7L850vfSs+9BzRZa/d
         5mtE9v6yY63zkvzgXWIueSVd8WSflrzDsbD/GXg9SV9jzXdsf8yLHFVFs1uOiHZBapsD
         R+RA==
X-Forwarded-Encrypted: i=1; AJvYcCWYQtmFSl3IkZqWNPUb6XHicV597dnOD7JN4xOEQhxURKvWeRMWuexWNfSPxawhk/8Ok2Iamdcx2ws=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyJbhUz+VoYLBQ/kHE+i57C1p4C6j16JePyn847ms29ZOmKd67f
	SZNT+iS0rcHmW3NFGx1Yf65G1oTm4BLyY+j0e+XJrd3S6+GSrsG8gLT4ow9tfIuiiQ==
X-Gm-Gg: ATEYQzzmQ/RoVSvJEOdpBg313UxaGh3Tqin3tfoVRiS+SJzMxrDQ8zLnl12SFtHMYjp
	G31y0pzWzwf2HSntZLqItyjLNXbPoVdqbRMOgYr3ZC1SxMmmfd7soz4VWuQkO0gAkqbqLdDiErc
	U+SEEX63XsSA3QdwU8PlsS7X1QiZvvGr/ZmwIJI0dSPmAIgLXnPOcRR4NVJGiCfAlEeHGv0j4/i
	aYmMksFBvv4E49YaC+/+VUYWyz2sail0QzKaZjAk/xYiOFtFnE2z2BAout/XPBAKhu4U0vbsmVW
	bivQ3RPPIhOafAr1P0N9FOTy154GH2G8CxRDQXYLgiLh4GIm68NupD6e9KQhqoxtxLuy0+uaFPz
	IARDVI7ULL/SYfomNJ3wQN8k7mA/a2S5aQWKTkdt1v9rA6bbRCzRXxiUaigoqQSBTnxTrZ0QC1n
	LoblvgCpMYvDAx2PJb9DxuxWzs/jkuC9DVto6O9OaAUSX7K2/7Ug+VWZCiMWGycjI16DV0p0Y61
	ZfmsKiRCoxiq8U=
X-Received: by 2002:a05:600c:6309:b0:485:3989:b3e4 with SMTP id 5b1f17b1804b1-4870f1f40d3mr42033905e9.6.1774352189681;
        Tue, 24 Mar 2026 04:36:29 -0700 (PDT)
Message-ID: <56102760-dcb3-4208-a6e3-086a966c8d65@suse.com>
Date: Tue, 24 Mar 2026 12:36:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/3] x86/efi: Add BGRT image preservation
 infrastructure
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>,
 xen-devel@lists.xenproject.org, sarkarsoumyajyoti23@gmail.com,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>
References: <20260324101726.6929-1-soumyajyotisarkar23@gmail.com>
 <20260324101726.6929-2-soumyajyotisarkar23@gmail.com>
 <acJxoijDI6vhs5wo@mail-itl> <56fa4fd5-19a8-4c46-9524-0f41090a8857@suse.com>
 <acJ1wTlRz3lKKjDw@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: <acJ1wTlRz3lKKjDw@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1774352190-51E8D900-8061178F/0/0
X-purgate-type: clean
X-purgate-size: 993

On 24.03.2026 12:30, Marek Marczykowski-Górecki wrote:
> On Tue, Mar 24, 2026 at 12:23:19PM +0100, Jan Beulich wrote:
>> On 24.03.2026 12:12, Marek Marczykowski-Górecki wrote:
>>> On Tue, Mar 24, 2026 at 03:47:24PM +0530, Soumyajyotii Ssarkar wrote:
>>>> diff --git a/xen/common/efi/common-stub.c b/xen/common/efi/common-stub.c
>>>> index 77f138a6c5..9e595600d7 100644
>>>> --- a/xen/common/efi/common-stub.c
>>>> +++ b/xen/common/efi/common-stub.c
>>>> @@ -20,6 +20,7 @@ unsigned long efi_get_time(void)
>>>>
>>>>  void efi_halt_system(void) { }
>>>>  void efi_reset_system(bool warm) { }
>>>> +void __init efi_bgrt_status_info(void) { }
>>>
>>> This has a minor conflict with the current staging,
>>
>> In which case - against which tree was the submission? It shouldn't be
>> against anything else than current staging, and I don't think there were
>> any changes in this place recently.
> 
> There was - removal of efi_halt_system().

Three weeks ago, yes.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 11:52:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 11:52:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260403.1553747 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50JZ-00009b-CE; Tue, 24 Mar 2026 11:52:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260403.1553747; Tue, 24 Mar 2026 11:52:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50JZ-00009U-8R; Tue, 24 Mar 2026 11:52:53 +0000
Received: by outflank-mailman (input) for mailman id 1260403;
 Tue, 24 Mar 2026 11:52:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w50JX-00008w-Rc
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 11:52:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w50JX-008pWn-7T
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 12:52:51 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c27afb-2eae-0a2a0a5409dd-0a2a4507c2a0-42
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 12:52:51 +0100
Received: from [209.85.221.49] (helo=mail-wr1-f49.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c27b12-fd74-0a2a45070019-d155dd31a8f7-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 12:52:51 +0100
Received: by mail-wr1-f49.google.com with SMTP id
 ffacd0b85a97d-43b467dcf0bso3750690f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 04:52:51 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b64703c7fsm37472425f8f.23.2026.03.24.04.52.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 04:52:50 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774353170; x=1774957970; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=CBYp7k+0Yqbh24aD9JDlWKKlKco7dPP5yPhdiLuhJx4=;
        b=afB+rDdSx4AGTRuA9CFjyl0NDH5guREFc2hFoC9zYbpIm2IlZF3ZonmShxTAotqXuq
         NRxExWVd+T2+KKfp29q4mmuHi0fkS1Cwti5aaw5iwKiKROccrRy54CqMAEox8/7q0vUV
         hjezoU6UX4BPB2+cl/jQI584BzkcPLGKo458dVhKDNUJL5XxWgE1B4TZ5m1wQ+ywmwbk
         HgmM6ASdukjw2QRDiSRDPnC06SIkAOxckLZ/0GLWvVf7MNxEyqb0OGsQSE7UgtmMLJmP
         UlFmXTAotpNORSPzdqE4zew52a4gItysgKYUUEsM+FyPX6tnfwlQs+2KR2cEMFrfQ4s7
         dmbg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774353170; x=1774957970;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CBYp7k+0Yqbh24aD9JDlWKKlKco7dPP5yPhdiLuhJx4=;
        b=GWdiyijzs3uOJDzgbqy1Tw+SMQmMEV1ZnYyaeUEqOCTKsNqdrNJedK4WBHliQewM7m
         cfpdhiH65iecKVPHqAxYzFbnYWzHExGh1v0MAcpUEELr/F5FfH8KQytZRq6jj3hIgdUQ
         6Lim8QADcIcANDA2RzHBCx2LjCFG1S6vQ1GxE892UyXBLQlhQgSD6HC9BOEOVxv1hM1B
         yqkHK0zTtfY+LIFkVC5lgQmMD8iZmqB3aksSNhTA+in8SIjzbBRVGIk8qJgEGVlWzie5
         mNw41sE8FKLQZzlfIUslNBRF1LzZlfV0whoQno5xUFq11lbEqe71NdjdpOZ9fImuEZzD
         GFEg==
X-Forwarded-Encrypted: i=1; AJvYcCV3gccpBHOtpH9ShY4FffFSC2pb9cKvsX+GN4Deyijjp0qOIflsnk3QNjvwSf5jzl5OuskBVXrXMrc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzqjbKi1AkBgKfjFqRzDF+V3dEkxfUSlNUGuzIXQczK6f3PO8bt
	oIrrGgU68xOLsYKK/ljGKpO3Nxplg8SDCyk+yzm+RQpbBlxpaqUnBXsRNXOuafi/5A==
X-Gm-Gg: ATEYQzzL1JQ7Mxu+06C/idRppxQzRUtlka7JdPfjnDMQT03AIxwSe8W5/jcZqH6Z76l
	KZbHRJv3WH89PzJtL5Daan1KtwtahZ969KVXbyIGvHHWdLdfcEOtuv3CXiOLQFju8FtqcVeYh3I
	fbIdZAD+tcqUHjolFi6S5iDGsYuok/vScrFsZu/KU+tNZ+i+ZcR7sCgDnR5cbGYd4zvCYPqXLbc
	R1gWdNz3M8s3j9uaFOGn/yQX0x52dvkLbgQyISPAHNrsGFSOINLoGw2daQZ7k3RClk7gGTB2y6P
	3KWdtx4dK6H9d7WYkIYApf6UNHbN+VXEa1pnYUNLtg7n5Z/c4pncUs2UxiHFSN77EHq6zyxSJQp
	B5ZzuJefKcz7dl7xOq4qWuNCofpbULVJ1IOh/qyiPgYqWfk+m1giUXl38rB7dD6UkM1hqdd/tgu
	FcWtAGYs5GJbcixyRaqO3mhZyYxUdARmIhUMWKO88aAEOHmOaNgojevi/Nf4TbnP7a0/TSI8JA+
	INVUfG6ln9N+s0=
X-Received: by 2002:a05:6000:4905:b0:439:cd2b:35f0 with SMTP id ffacd0b85a97d-43b80526441mr4157387f8f.2.1774353170377;
        Tue, 24 Mar 2026 04:52:50 -0700 (PDT)
Message-ID: <c2129389-cc61-44bd-a680-c75b05725749@suse.com>
Date: Tue, 24 Mar 2026 12:52:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/4] x86/kexec: Stop hooking NMIs with trap_nop()
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: <20260319122549.922724-1-andrew.cooper3@citrix.com>
 <20260319122549.922724-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: <20260319122549.922724-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1774353171-5CD87303-8DDE48C1/0/0
X-purgate-type: clean
X-purgate-size: 1337

On 19.03.2026 13:25, Andrew Cooper wrote:
> When FRED is active, it is not possible to hook NMIs like this.
> 
> NMI hooking in the crash path has undergone several revisions since its
> introduction.  Notably since commit e7f147bf4ac7 ("x86/crash: Drop manual
> hooking of exception_table[]") we use the regular nmi_callback()
> infrastructure.
> 
> Instead of asserting that we don't enter do_nmi_crash() on the crashing CPU,
> tolerate it and return early.  It's a marginally longer codepath but behaves
> the same and is compatible with FRED.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> The other use of hooking the NMI handler like this is in play_dead() and
> introduced by commit 73cb1383bf8d ("x86/idle: re-arrange dead-idle
> handling").  It's unsafe, and the commit even mentions so for #MC.

Why is wiring to trap_nop() unsafe? There is a per-CPU access when
PERF_COUNTERS=y, but otherwise?

For FRED, shouldn't do_nmi() then gain a similar early exit for offlined
CPUs, replacing the IDT editing?

> On x86, we simply cannot free the per-cpu block for any CPU that hasn't been
> put back into the wait-for-SIPI state.

Please remind me, is there a reason we can't put CPUs we have offlined (not
parked) into that state?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 12:06:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 12:06:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260417.1553764 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50WD-0002AB-R4; Tue, 24 Mar 2026 12:05:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260417.1553764; Tue, 24 Mar 2026 12:05:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50WD-0002A1-Mf; Tue, 24 Mar 2026 12:05:57 +0000
Received: by outflank-mailman (input) for mailman id 1260417;
 Tue, 24 Mar 2026 12:05: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=SnSk=BY=xenbits.xen.org=andrewcoop@srs-se1.protection.inumbo.net>)
 id 1w50WD-00026T-5P
 for xen-devel@lists.xen.org; Tue, 24 Mar 2026 12:05:57 +0000
Received: from mail.xenproject.org (mail.xenproject.org [104.130.215.37])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cb885aae-2779-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Mar 2026 13:05:51 +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 1w50W0-007DT0-2n;
 Tue, 24 Mar 2026 12:05:44 +0000
Received: from andrewcoop by xenbits.xenproject.org with local (Exim 4.96)
 (envelope-from <andrewcoop@xenbits.xen.org>) id 1w50W0-00Bwo0-1i;
 Tue, 24 Mar 2026 12:05: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: cb885aae-2779-11f1-9ccf-f158ae23cfc8
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 482 v2 - Linux privcmd driver can
 circumvent kernel lockdown
Message-Id: <E1w50W0-00Bwo0-1i@xenbits.xenproject.org>
Date: Tue, 24 Mar 2026 12:05:44 +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 XSA-482
                              version 2

          Linux privcmd driver can circumvent kernel lockdown

UPDATES IN VERSION 2
====================

Public release.

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

The Linux kernel's privcmd driver can be abused to circumvent kernel
lockdown (secure boot), e.g. by modifying page tables to enable user
mode to modify kernel memory.

The CNA covering Linux has refused to assign a CVE at this juncture.

IMPACT
======

An administrator of an unprivileged guest booted in secure mode is able
to perform actions on the kernel which should not be possible in secure
mode.

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

PV, PVH and HVM guests running Linux using secure boot are vulnerable.

BSD based systems are believed not to be vulnerable due to a lack of
secure boot support.

MITIGATION
==========

There is no known mitigation.

CREDITS
=======

This issue was discovered by Teddy Astie of Vates.

RESOLUTION
==========

Applying the set of attached patches resolves this issue.

xsa482-linux-?.patch           Linux

$ sha256sum xsa482*
a4e67d2c773e2e13252337e4b64c08b342c0eb2e0e92271a79dc588ac34e7c3a  xsa482-linux-1.patch
dd952c1fc49ceb47803b78e15cfe3f7f11a845b29c6b2a80afa7a9eaa60a00ec  xsa482-linux-2.patch
$

DEPLOYMENT DURING EMBARGO
=========================

Deployment of patches or mitigations is NOT permitted (except where
all the affected systems and VMs are administered and used only by
organisations which are members of the Xen Project Security Issues
Predisclosure List).  Specifically, deployment on public cloud systems
is NOT permitted.

This is because the patches need to be applied to the guests.

Deployment is permitted only AFTER the embargo ends.

(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmnCffYMHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZLUIIAIU0v7T3tT1Jc2UeanX2sj2aycfKjpCCoAxTtFcG
qKdhneXhKQ3ofWH3SSRmuNfA6L1jVPyh7bUYLMpNQp4WfsCUj0RNcjXhdxYIldTP
KLi+mhekZzjarClj+X9eQOQf0DaGGy1dG1SUfETHuumOcm7CVbRDKF9nXVv6g4Dd
CCnDuXjK2M9Q91shdDAUI7I41oQL3k85UTpPwwtAs1subKCJsgbKIBdikw3Bdm4c
TBkqTyjFCiLiLXcqcY7qQo/IcfJ9mn0z3Jc0M4V12Am6DdLrypO0LU3YcVRH3qT9
/5L5It2HKjoFRp+6yEb7yfBkavXQgaGwCSnROUC7dn41pM8=
=mibo
-----END PGP SIGNATURE-----

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

RnJvbSAyNjVmMjA1MmZjYjUyYjllMjZlMTQ2Nzg5MzU5ZjQ1MjJjZWVkZDFi
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWVyZ2VuIEdyb3Nz
IDxqZ3Jvc3NAc3VzZS5jb20+CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxNjo1
NDo1OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggdjMgMS8yXSB4ZW4vcHJpdmNt
ZDogcmVzdHJpY3QgdXNhZ2UgaW4gdW5wcml2aWxlZ2VkIGRvbVUKClRoZSBY
ZW4gcHJpdmNtZCBkcml2ZXIgYWxsb3dzIHRvIGlzc3VlIGFyYml0cmFyeSBo
eXBlcmNhbGxzIGZyb20KdXNlciBzcGFjZSBwcm9jZXNzZXMuIFRoaXMgaXMg
bm9ybWFsbHkgbm8gcHJvYmxlbSwgYXMgYWNjZXNzIGlzCnVzdWFsbHkgbGlt
aXRlZCB0byByb290IGFuZCB0aGUgaHlwZXJ2aXNvciB3aWxsIGRlbnkgYW55
IGh5cGVyY2FsbHMKYWZmZWN0aW5nIG90aGVyIGRvbWFpbnMuCgpJbiBjYXNl
IHRoZSBndWVzdCBpcyBib290ZWQgdXNpbmcgc2VjdXJlIGJvb3QsIGhvd2V2
ZXIsIHRoZSBwcml2Y21kCmRyaXZlciB3b3VsZCBiZSBlbmFibGluZyBhIHJv
b3QgdXNlciBwcm9jZXNzIHRvIG1vZGlmeSBlLmcuIGtlcm5lbAptZW1vcnkg
Y29udGVudHMsIHRodXMgYnJlYWtpbmcgdGhlIHNlY3VyZSBib290IGZlYXR1
cmUuCgpUaGUgb25seSBrbm93biBjYXNlIHdoZXJlIGFuIHVucHJpdmlsZWdl
ZCBkb21VIGlzIHJlYWxseSBuZWVkaW5nIHRvCnVzZSB0aGUgcHJpdmNtZCBk
cml2ZXIgaXMgdGhlIGNhc2Ugd2hlbiBpdCBpcyBhY3RpbmcgYXMgdGhlIGRl
dmljZQptb2RlbCBmb3IgYW5vdGhlciBndWVzdC4gSW4gdGhpcyBjYXNlIGFs
bCBoeXBlcmNhbGxzIGlzc3VlZCB2aWEgdGhlCnByaXZjbWQgZHJpdmVyIHdp
bGwgdGFyZ2V0IHRoYXQgb3RoZXIgZ3Vlc3QuCgpGb3J0dW5hdGVseSB0aGUg
cHJpdmNtZCBkcml2ZXIgY2FuIGFscmVhZHkgYmUgbG9ja2VkIGRvd24gdG8g
YWxsb3cKb25seSBoeXBlcmNhbGxzIHRhcmdldGluZyBhIHNwZWNpZmljIGRv
bWFpbiwgYnV0IHRoaXMgbW9kZSBjYW4gYmUKYWN0aXZhdGVkIGZyb20gdXNl
ciBsYW5kIG9ubHkgdG9kYXkuCgpUaGUgdGFyZ2V0IGRvbWFpbiBjYW4gYmUg
b2J0YWluZWQgZnJvbSBYZW5zdG9yZSwgc28gd2hlbiBub3QgcnVubmluZwpp
biBkb20wIHJlc3RyaWN0IHRoZSBwcml2Y21kIGRyaXZlciB0byB0aGF0IHRh
cmdldCBkb21haW4gZnJvbSB0aGUKYmVnaW5uaW5nLCByZXNvbHZpbmcgdGhl
IHBvdGVudGlhbCBwcm9ibGVtIG9mIGJyZWFraW5nIHNlY3VyZSBib290LgoK
VGhpcyBpcyBYU0EtNDgyIC8gQ1ZFID8/PwoKUmVwb3J0ZWQtYnk6IFRlZGR5
IEFzdGllIDx0ZWRkeS5hc3RpZUB2YXRlcy50ZWNoPgpGaXhlczogMWM1ZGUx
OTM5YzIwICgieGVuOiBhZGQgcHJpdmNtZCBkcml2ZXIiKQpTaWduZWQtb2Zm
LWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+Ci0tLQogZHJp
dmVycy94ZW4vcHJpdmNtZC5jIHwgNjAgKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDU3IGlu
c2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp
dmVycy94ZW4vcHJpdmNtZC5jIGIvZHJpdmVycy94ZW4vcHJpdmNtZC5jCmlu
ZGV4IDE3NTljYzE4NzUzZi4uYTgzYmFkNjlmNGYyIDEwMDY0NAotLS0gYS9k
cml2ZXJzL3hlbi9wcml2Y21kLmMKKysrIGIvZHJpdmVycy94ZW4vcHJpdmNt
ZC5jCkBAIC0xMiw2ICsxMiw3IEBACiAjaW5jbHVkZSA8bGludXgvZXZlbnRm
ZC5oPgogI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4KICNpbmNsdWRlIDxsaW51
eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9rc3RydG94Lmg+CiAjaW5j
bHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXgu
aD4KICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CkBAIC0zMCw3ICszMSw5IEBA
CiAjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KICNpbmNsdWRlIDxsaW51
eC9taXNjZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0u
aD4KKyNpbmNsdWRlIDxsaW51eC9ub3RpZmllci5oPgogI2luY2x1ZGUgPGxp
bnV4L3ZpcnRpb19tbWlvLmg+CisjaW5jbHVkZSA8bGludXgvd2FpdC5oPgog
CiAjaW5jbHVkZSA8YXNtL3hlbi9oeXBlcnZpc29yLmg+CiAjaW5jbHVkZSA8
YXNtL3hlbi9oeXBlcmNhbGwuaD4KQEAgLTQ2LDYgKzQ5LDcgQEAKICNpbmNs
dWRlIDx4ZW4vcGFnZS5oPgogI2luY2x1ZGUgPHhlbi94ZW4tb3BzLmg+CiAj
aW5jbHVkZSA8eGVuL2JhbGxvb24uaD4KKyNpbmNsdWRlIDx4ZW4veGVuYnVz
Lmg+CiAjaWZkZWYgQ09ORklHX1hFTl9BQ1BJCiAjaW5jbHVkZSA8eGVuL2Fj
cGkuaD4KICNlbmRpZgpAQCAtNzIsNiArNzYsMTEgQEAgc3RydWN0IHByaXZj
bWRfZGF0YSB7CiAJZG9taWRfdCBkb21pZDsKIH07CiAKKy8qIERPTUlEX0lO
VkFMSUQgaW1wbGllcyBubyByZXN0cmljdGlvbiAqLworc3RhdGljIGRvbWlk
X3QgdGFyZ2V0X2RvbWFpbiA9IERPTUlEX0lOVkFMSUQ7CitzdGF0aWMgYm9v
bCByZXN0cmljdF93YWl0Oworc3RhdGljIERFQ0xBUkVfV0FJVF9RVUVVRV9I
RUFEKHJlc3RyaWN0X3dhaXRfd3EpOworCiBzdGF0aWMgaW50IHByaXZjbWRf
dm1hX3JhbmdlX2lzX21hcHBlZCgKICAgICAgICAgICAgICAgIHN0cnVjdCB2
bV9hcmVhX3N0cnVjdCAqdm1hLAogICAgICAgICAgICAgICAgdW5zaWduZWQg
bG9uZyBhZGRyLApAQCAtMTU2MywxMyArMTU3MiwxNiBAQCBzdGF0aWMgbG9u
ZyBwcml2Y21kX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLAogCiBzdGF0aWMg
aW50IHByaXZjbWRfb3BlbihzdHJ1Y3QgaW5vZGUgKmlubywgc3RydWN0IGZp
bGUgKmZpbGUpCiB7Ci0Jc3RydWN0IHByaXZjbWRfZGF0YSAqZGF0YSA9IGt6
YWxsb2Nfb2JqKCpkYXRhKTsKKwlzdHJ1Y3QgcHJpdmNtZF9kYXRhICpkYXRh
OworCisJaWYgKHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZShyZXN0cmljdF93
YWl0X3dxLCAhcmVzdHJpY3Rfd2FpdCkgPCAwKQorCQlyZXR1cm4gLUVJTlRS
OwogCisJZGF0YSA9IGt6YWxsb2Nfb2JqKCpkYXRhKTsKIAlpZiAoIWRhdGEp
CiAJCXJldHVybiAtRU5PTUVNOwogCi0JLyogRE9NSURfSU5WQUxJRCBpbXBs
aWVzIG5vIHJlc3RyaWN0aW9uICovCi0JZGF0YS0+ZG9taWQgPSBET01JRF9J
TlZBTElEOworCWRhdGEtPmRvbWlkID0gdGFyZ2V0X2RvbWFpbjsKIAogCWZp
bGUtPnByaXZhdGVfZGF0YSA9IGRhdGE7CiAJcmV0dXJuIDA7CkBAIC0xNjYy
LDYgKzE2NzQsNDUgQEAgc3RhdGljIHN0cnVjdCBtaXNjZGV2aWNlIHByaXZj
bWRfZGV2ID0gewogCS5mb3BzID0gJnhlbl9wcml2Y21kX2ZvcHMsCiB9Owog
CitzdGF0aWMgaW50IGluaXRfcmVzdHJpY3Qoc3RydWN0IG5vdGlmaWVyX2Js
b2NrICpub3RpZmllciwKKwkJCSB1bnNpZ25lZCBsb25nIGV2ZW50LAorCQkJ
IHZvaWQgKmRhdGEpCit7CisJY2hhciAqdGFyZ2V0OworCXVuc2lnbmVkIGlu
dCBkb21pZDsKKworCS8qIERlZmF1bHQgdG8gYW4gZ3VhcmFudGVlZCB1bnVz
ZWQgZG9tYWluLWlkLiAqLworCXRhcmdldF9kb21haW4gPSBET01JRF9JRExF
OworCisJdGFyZ2V0ID0geGVuYnVzX3JlYWQoWEJUX05JTCwgInRhcmdldCIs
ICIiLCBOVUxMKTsKKwlpZiAoSVNfRVJSKHRhcmdldCkgfHwga3N0cnRvdWlu
dCh0YXJnZXQsIDEwLCAmZG9taWQpKSB7CisJCXByX2VycigiTm8gdGFyZ2V0
IGRvbWFpbiBmb3VuZCwgYmxvY2tpbmcgYWxsIGh5cGVyY2FsbHNcbiIpOwor
CQlnb3RvIG91dDsKKwl9CisKKwl0YXJnZXRfZG9tYWluID0gZG9taWQ7CisK
KyBvdXQ6CisJaWYgKCFJU19FUlIodGFyZ2V0KSkKKwkJa2ZyZWUodGFyZ2V0
KTsKKworCXJlc3RyaWN0X3dhaXQgPSBmYWxzZTsKKwl3YWtlX3VwX2FsbCgm
cmVzdHJpY3Rfd2FpdF93cSk7CisKKwlyZXR1cm4gTk9USUZZX0RPTkU7Cit9
CisKK3N0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgeGVuc3RvcmVfbm90
aWZpZXIgPSB7CisJLm5vdGlmaWVyX2NhbGwgPSBpbml0X3Jlc3RyaWN0LAor
fTsKKworc3RhdGljIHZvaWQgX19pbml0IHJlc3RyaWN0X2RyaXZlcih2b2lk
KQoreworCXJlc3RyaWN0X3dhaXQgPSB0cnVlOworCisJcmVnaXN0ZXJfeGVu
c3RvcmVfbm90aWZpZXIoJnhlbnN0b3JlX25vdGlmaWVyKTsKK30KKwogc3Rh
dGljIGludCBfX2luaXQgcHJpdmNtZF9pbml0KHZvaWQpCiB7CiAJaW50IGVy
cjsKQEAgLTE2NjksNiArMTcyMCw5IEBAIHN0YXRpYyBpbnQgX19pbml0IHBy
aXZjbWRfaW5pdCh2b2lkKQogCWlmICgheGVuX2RvbWFpbigpKQogCQlyZXR1
cm4gLUVOT0RFVjsKIAorCWlmICgheGVuX2luaXRpYWxfZG9tYWluKCkpCisJ
CXJlc3RyaWN0X2RyaXZlcigpOworCiAJZXJyID0gbWlzY19yZWdpc3Rlcigm
cHJpdmNtZF9kZXYpOwogCWlmIChlcnIgIT0gMCkgewogCQlwcl9lcnIoIkNv
dWxkIG5vdCByZWdpc3RlciBYZW4gcHJpdmNtZCBkZXZpY2VcbiIpOwotLSAK
Mi41My4wCgo=

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

RnJvbSA2ZjY5MThmZTFkZDQ1OTBlMDBmZjk1OTAwODZmYWIwOGQ5Mjg0MDVi
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWVyZ2VuIEdyb3Nz
IDxqZ3Jvc3NAc3VzZS5jb20+CkRhdGU6IFR1ZSwgMTQgT2N0IDIwMjUgMTM6
Mjg6MTUgKzAyMDAKU3ViamVjdDogW1BBVENIIHYzIDIvMl0geGVuL3ByaXZj
bWQ6IGFkZCBib290IGNvbnRyb2wgZm9yIHJlc3RyaWN0ZWQgdXNhZ2UgaW4K
IGRvbVUKCldoZW4gcnVubmluZyBpbiBhbiB1bnByaXZpbGVnZWQgZG9tVSB1
bmRlciBYZW4sIHRoZSBwcml2Y21kIGRyaXZlcgppcyByZXN0cmljdGVkIHRv
IGFsbG93IG9ubHkgaHlwZXJjYWxscyBhZ2FpbnN0IGEgdGFyZ2V0IGRvbWFp
biwgZm9yCndoaWNoIHRoZSBjdXJyZW50IGRvbVUgaXMgYWN0aW5nIGFzIGEg
ZGV2aWNlIG1vZGVsLgoKQWRkIGEgYm9vdCBwYXJhbWV0ZXIgInVucmVzdHJp
Y3RlZCIgdG8gYWxsb3cgYWxsIGh5cGVyY2FsbHMgKHRoZQpoeXBlcnZpc29y
IHdpbGwgc3RpbGwgcmVmdXNlIGRlc3RydWN0aXZlIGh5cGVyY2FsbHMgYWZm
ZWN0aW5nIG90aGVyCmd1ZXN0cykuCgpNYWtlIHRoaXMgbmV3IHBhcmFtZXRl
ciBlZmZlY3RpdmUgb25seSBpbiBjYXNlIHRoZSBkb21VIHdhc24ndCBzdGFy
dGVkCnVzaW5nIHNlY3VyZSBib290LCBhcyBvdGhlcndpc2UgaHlwZXJjYWxs
cyB0YXJnZXRpbmcgdGhlIGRvbVUgaXRzZWxmCm1pZ2h0IHJlc3VsdCBpbiB2
aW9sYXRpbmcgdGhlIHNlY3VyZSBib290IGZ1bmN0aW9uYWxpdHkuCgpUaGlz
IGlzIGFjaGlldmVkIGJ5IGFkZGluZyBhbm90aGVyIGxvY2tkb3duIHJlYXNv
biwgd2hpY2ggY2FuIGJlCnRlc3RlZCB0byBub3QgYmVpbmcgc2V0IHdoZW4g
YXBwbHlpbmcgdGhlICJ1bnJlc3RyaWN0ZWQiIG9wdGlvbi4KClRoaXMgaXMg
cGFydCBvZiBYU0EtNDgyIC8gQ1ZFLT8/PwoKU2lnbmVkLW9mZi1ieTogSnVl
cmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgotLS0KIGRyaXZlcnMveGVu
L3ByaXZjbWQuYyAgICB8IDEzICsrKysrKysrKysrKysKIGluY2x1ZGUvbGlu
dXgvc2VjdXJpdHkuaCB8ICAxICsKIHNlY3VyaXR5L3NlY3VyaXR5LmMgICAg
ICB8ICAxICsKIDMgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKQoK
ZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL3ByaXZjbWQuYyBiL2RyaXZlcnMv
eGVuL3ByaXZjbWQuYwppbmRleCBhODNiYWQ2OWY0ZjIuLmJiZjllZTIxMzA2
YyAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vcHJpdmNtZC5jCisrKyBiL2Ry
aXZlcnMveGVuL3ByaXZjbWQuYwpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1
ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1
bGVwYXJhbS5oPgogI2luY2x1ZGUgPGxpbnV4L25vdGlmaWVyLmg+CisjaW5j
bHVkZSA8bGludXgvc2VjdXJpdHkuaD4KICNpbmNsdWRlIDxsaW51eC92aXJ0
aW9fbW1pby5oPgogI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KIApAQCAtNzIs
NiArNzMsMTEgQEAgbW9kdWxlX3BhcmFtX25hbWVkKGRtX29wX2J1Zl9tYXhf
c2l6ZSwgcHJpdmNtZF9kbV9vcF9idWZfbWF4X3NpemUsIHVpbnQsCiBNT0RV
TEVfUEFSTV9ERVNDKGRtX29wX2J1Zl9tYXhfc2l6ZSwKIAkJICJNYXhpbXVt
IHNpemUgb2YgYSBkbV9vcCBoeXBlcmNhbGwgYnVmZmVyIik7CiAKK3N0YXRp
YyBib29sIHVucmVzdHJpY3RlZDsKK21vZHVsZV9wYXJhbSh1bnJlc3RyaWN0
ZWQsIGJvb2wsIDApOworTU9EVUxFX1BBUk1fREVTQyh1bnJlc3RyaWN0ZWQs
CisJIkRvbid0IHJlc3RyaWN0IGh5cGVyY2FsbHMgdG8gdGFyZ2V0IGRvbWFp
biBpZiBydW5uaW5nIGluIGEgZG9tVSIpOworCiBzdHJ1Y3QgcHJpdmNtZF9k
YXRhIHsKIAlkb21pZF90IGRvbWlkOwogfTsKQEAgLTE3MDgsNiArMTcxNCwx
MyBAQCBzdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIHhlbnN0b3JlX25v
dGlmaWVyID0gewogCiBzdGF0aWMgdm9pZCBfX2luaXQgcmVzdHJpY3RfZHJp
dmVyKHZvaWQpCiB7CisJaWYgKHVucmVzdHJpY3RlZCkgeworCQlpZiAoc2Vj
dXJpdHlfbG9ja2VkX2Rvd24oTE9DS0RPV05fWEVOX1VTRVJfQUNUSU9OUykp
CisJCQlwcl93YXJuKCJLZXJuZWwgaXMgbG9ja2VkIGRvd24sIHBhcmFtZXRl
ciBcInVucmVzdHJpY3RlZFwiIGlnbm9yZWRcbiIpOworCQllbHNlCisJCQly
ZXR1cm47CisJfQorCiAJcmVzdHJpY3Rfd2FpdCA9IHRydWU7CiAKIAlyZWdp
c3Rlcl94ZW5zdG9yZV9ub3RpZmllcigmeGVuc3RvcmVfbm90aWZpZXIpOwpk
aWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zZWN1cml0eS5oIGIvaW5jbHVk
ZS9saW51eC9zZWN1cml0eS5oCmluZGV4IDgzYTY0NmQ3MmY2Zi4uZWU4OGRk
MmQyZDFmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NlY3VyaXR5LmgK
KysrIGIvaW5jbHVkZS9saW51eC9zZWN1cml0eS5oCkBAIC0xNDUsNiArMTQ1
LDcgQEAgZW51bSBsb2NrZG93bl9yZWFzb24gewogCUxPQ0tET1dOX0JQRl9X
UklURV9VU0VSLAogCUxPQ0tET1dOX0RCR19XUklURV9LRVJORUwsCiAJTE9D
S0RPV05fUlRBU19FUlJPUl9JTkpFQ1RJT04sCisJTE9DS0RPV05fWEVOX1VT
RVJfQUNUSU9OUywKIAlMT0NLRE9XTl9JTlRFR1JJVFlfTUFYLAogCUxPQ0tE
T1dOX0tDT1JFLAogCUxPQ0tET1dOX0tQUk9CRVMsCmRpZmYgLS1naXQgYS9z
ZWN1cml0eS9zZWN1cml0eS5jIGIvc2VjdXJpdHkvc2VjdXJpdHkuYwppbmRl
eCA2N2FmOTIyOGM0ZTkuLmEyNmMxNDc0ZTJlNCAxMDA2NDQKLS0tIGEvc2Vj
dXJpdHkvc2VjdXJpdHkuYworKysgYi9zZWN1cml0eS9zZWN1cml0eS5jCkBA
IC02MSw2ICs2MSw3IEBAIGNvbnN0IGNoYXIgKmNvbnN0IGxvY2tkb3duX3Jl
YXNvbnNbTE9DS0RPV05fQ09ORklERU5USUFMSVRZX01BWCArIDFdID0gewog
CVtMT0NLRE9XTl9CUEZfV1JJVEVfVVNFUl0gPSAidXNlIG9mIGJwZiB0byB3
cml0ZSB1c2VyIFJBTSIsCiAJW0xPQ0tET1dOX0RCR19XUklURV9LRVJORUxd
ID0gInVzZSBvZiBrZ2RiL2tkYiB0byB3cml0ZSBrZXJuZWwgUkFNIiwKIAlb
TE9DS0RPV05fUlRBU19FUlJPUl9JTkpFQ1RJT05dID0gIlJUQVMgZXJyb3Ig
aW5qZWN0aW9uIiwKKwlbTE9DS0RPV05fWEVOX1VTRVJfQUNUSU9OU10gPSAi
WGVuIGd1ZXN0IHVzZXIgYWN0aW9uIiwKIAlbTE9DS0RPV05fSU5URUdSSVRZ
X01BWF0gPSAiaW50ZWdyaXR5IiwKIAlbTE9DS0RPV05fS0NPUkVdID0gIi9w
cm9jL2tjb3JlIGFjY2VzcyIsCiAJW0xPQ0tET1dOX0tQUk9CRVNdID0gInVz
ZSBvZiBrcHJvYmVzIiwKLS0gCjIuNTMuMAoK

--=separator--


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 12:16:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 12:16:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260494.1553795 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50gW-0005eE-7J; Tue, 24 Mar 2026 12:16:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260494.1553795; Tue, 24 Mar 2026 12: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 1w50gW-0005e6-3y; Tue, 24 Mar 2026 12:16:36 +0000
Received: by outflank-mailman (input) for mailman id 1260494;
 Tue, 24 Mar 2026 12:16:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <greg@kroah.com>)
 id 1w50gU-0005ds-FP; Tue, 24 Mar 2026 12:16:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w50gT-006LGu-RD; Tue, 24 Mar 2026 13:16:33 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <greg@kroah.com>)
 id 69c2809f-2eae-0a2a0a5409dd-0a2a4501a62c-6
 for <multiple-recipients>; Tue, 24 Mar 2026 13:16:33 +0100
Received: from [202.12.124.156] (helo=fhigh-b5-smtp.messagingengine.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <greg@kroah.com>)
 id 69c2809f-6400-0a2a45010019-ca0c7c9ccf87-3
 for <multiple-recipients>; Tue, 24 Mar 2026 13:16:33 +0100
Received: from phl-compute-11.internal (phl-compute-11.internal [10.202.2.51])
 by mailfhigh.stl.internal (Postfix) with ESMTP id DD4F37A0205;
 Tue, 24 Mar 2026 08:16:30 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-11.internal (MEProxy); Tue, 24 Mar 2026 08:16:31 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 24 Mar 2026 08:16:29 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=kroah.com header.i="@kroah.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm1 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kroah.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=fm1; t=1774354590; x=1774440990; bh=bWcFSwCVPN
	zsCk7pIB4ZzNyRLxmXnF8m1I59uyLy4p4=; b=r5hLWpll9su1TYtuN06CA/8xfD
	4cvvyyfYmhw2Qn8eT01/zXQcpxxxborX/9H8X/DWkIRN27cPsRrTcRyUvzblI+hD
	pYU/lfA2UcAoHgSXA1fh8plMWoE44Qwrcogl4JmykgdJW7OF981L5LIUsi1Uf3O4
	qX4fx5eNYcdqbNntv4jbYxtUTADd38p+aswcvAihKzQz1K813OAQvdKTroKpasHn
	oYpDUw5Z5cJ7LwZa4yIKZqnQmMC5iGC93RLB4/vWqk9pp56f25Mo6e93rnT0lGI0
	bjOcNGPspBDvzdpy7SjCkK0SY6gZNP84zPR23dDbLB2LtDTSvUjvQMJjs3ag==
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=
	1774354590; x=1774440990; bh=bWcFSwCVPNzsCk7pIB4ZzNyRLxmXnF8m1I5
	9uyLy4p4=; b=e8In13ggtbu5OWvNnjRBIEDmFFoHmkiCnwdZ5wwo+uKVRmVxvf2
	dK40l0sLAgSMUh309bFKzAzJF7rdTi8QUCZCi4h7GMClvSMjV535Vr0DAVzy8MYO
	oxAvtcyaL5dKbnRBrn7O8xCTFvXBdXwNmU1z2tG5XCYoI1qxIKQT7fUNh7gcbKXK
	yk9pjbbj1XfosyVYVU8RJ57ab0nWpR+QDYbLyMdzd0t+YhuZJomim6xgTRl4GFyf
	ASdo29fLKIaOqdDQ2laAagZBUVhWYZKP7FyxIH1JBxSDeWhaRz7nAz56c0Fp9Izq
	r0ExalDi+HK6j1ACAMswAN403RGU4NXH5Ng==
X-ME-Sender: <xms:noDCabl1RbCMukQTR9sZ7mXxFzt1a9SzuoG8biffpfZbf7Ou3ndIcQ>
    <xme:noDCaQaTkZwdq7H3BKWYRtdYgVZpQiT_5H1bKqsqwlI9qsZnFK-Li0CkD0Y9dokqT
    UUPhE41ivELNBDF-G7vsOnWfMKpYzi3qheC22E-Gpmr16ruJA>
X-ME-Received: <xmr:noDCaQ6UJXhbESbEo1RrL5EF-66ylZteWLXgsPtSSdD7ymoHHD8_IxqhU6IV>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdefvdduheeiucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesthdtredttddtvdenucfhrhhomhepifhrvghgucfm
    jfcuoehgrhgvgheskhhrohgrhhdrtghomheqnecuggftrfgrthhtvghrnhepheegvdevvd
    eljeeugfdtudduhfekledtiefhveejkeejuefhtdeufefhgfehkeetnecuvehluhhsthgv
    rhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepghhrvghgsehkrhhorghhrd
    gtohhmpdhnsggprhgtphhtthhopedutddpmhhouggvpehsmhhtphhouhhtpdhrtghpthht
    ohepohhsshdqshgvtghurhhithihsehlihhsthhsrdhophgvnhifrghllhdrtghomhdprh
    gtphhtthhopeigvghnqdgrnhhnohhunhgtvgeslhhishhtshdrgigvnhdrohhrghdprhgt
    phhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnrdhorhhgpdhrtghpthhtoh
    epgigvnhdquhhsvghrsheslhhishhtshdrgigvnhdrohhrghdprhgtphhtthhopehsvggt
    uhhrihhthidqthgvrghmqdhmvghmsggvrhhsseigvghnrdhorhhg
X-ME-Proxy: <xmx:noDCaaBv67Y-DKCr8Izk5mGnGVdKyepT1ybSk4HBX5HqNUhYZ-jCPA>
    <xmx:noDCae9UodmMgiJW_x_8sy4i5fI0SIFjTZygCbQNazYC4a4sbIlU_Q>
    <xmx:noDCaVFivnzCjQEuw0YKXe5GbfVtlx_dLsJjINB5aR4xLRdMM4WbjA>
    <xmx:noDCaQTEAIdgY3s1gTdSe7eU2jqEoet28o_olEaJ26cHBFz9MyOYqQ>
    <xmx:noDCaVMNirIXf5CInnI777AjRf44UisEf2zLwGsLHKpv23DNxTk8hCiY>
Feedback-ID: i787e41f1:Fastmail
Date: Tue, 24 Mar 2026 13:16:08 +0100
From: Greg KH <greg@kroah.com>
To: oss-security@lists.openwall.com
Cc: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
	xen-users@lists.xen.org,
	"Xen.org security team" <security-team-members@xen.org>
Subject: Re: [oss-security] Xen Security Advisory 482 v2 - Linux privcmd
 driver can circumvent kernel lockdown
Message-ID: <2026032453-departed-thrash-f153@gregkh>
References: <E1w50W0-00Bwo0-1i@xenbits.xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <E1w50W0-00Bwo0-1i@xenbits.xenproject.org>
X-purgate-ID: tlsNG-d62444/1774354593-8ECE3DF3-F7066FAD/0/0
X-purgate-type: clean
X-purgate-size: 738

On Tue, Mar 24, 2026 at 12:05:44PM +0000, Xen.org security team wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
> 
>                     Xen Security Advisory XSA-482
>                               version 2
> 
>           Linux privcmd driver can circumvent kernel lockdown
> 
> UPDATES IN VERSION 2
> ====================
> 
> Public release.
> 
> ISSUE DESCRIPTION
> =================
> 
> The Linux kernel's privcmd driver can be abused to circumvent kernel
> lockdown (secure boot), e.g. by modifying page tables to enable user
> mode to modify kernel memory.
> 
> The CNA covering Linux has refused to assign a CVE at this juncture.

This is now assigned to CVE-2026-31788

thanks,

greg k-h


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 12:17:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 12:17:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260504.1553804 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50hd-0006BG-Kc; Tue, 24 Mar 2026 12:17:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260504.1553804; Tue, 24 Mar 2026 12: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 1w50hd-0006B8-G0; Tue, 24 Mar 2026 12:17:45 +0000
Received: by outflank-mailman (input) for mailman id 1260504;
 Tue, 24 Mar 2026 12:17:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>)
 id 1w50hc-0006Ak-1I; Tue, 24 Mar 2026 12:17:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w50hZ-008qFY-O6; Tue, 24 Mar 2026 13:17:43 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c280e0-2eae-0a2a0a5409dd-0a2a4504e370-18
 for <multiple-recipients>; Tue, 24 Mar 2026 13:17:43 +0100
Received: from [40.107.200.22]
 (helo=CH5PR02CU005.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c280e5-c823-0a2a45040019-286bc8164016-3
 for <multiple-recipients>; Tue, 24 Mar 2026 13:17:42 +0100
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BY1PR03MB7876.namprd03.prod.outlook.com (2603:10b6:a03:5b7::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Tue, 24 Mar
 2026 12:17:11 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9723.030; Tue, 24 Mar 2026
 12:17:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SEFF6EiVhC1DVQyCkq3R+UcyMlepVpjRI0H4bBXUdBsQBnJaXaAFylhwpTQeWIQnvjsPlRVHNH5QoSXPnmV4E/gKovrGC7PacXi4IPIyDER63MU5QUS0WCJ+14J+w+5n3ayfQ8VjZm86VRr+9TtbSo2z1jd6lBcWU4N5FKHSdZ8arufnIRfdWAV/9vHnWTKPmlntyT7Y5kgxyIJYoIE3NC08kKJ+yEEbknrpN9i/YPQpv8v7GF5oUZnmdll9ggGFwIrjzVLhGKQ+yfoMJqWsIiSEObp3HSPHPOUdVj6nWOwZbZKq6AigaFUyQLTiUNEpcB0ExwPX+fdOT7vWItVB+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=k7fFmcOHa9xrVsy3zFKKwj0AreCu1/WA3CgGLbcb7C4=;
 b=nzGfVhC1ikQmRvnIZRlOFNijZeMc05n0S7iBb4x+LY5ehsOGJXPMHCgzEhAcN4fMuETBuYbCHqw+BHbNQrEtDqBxQhXuAVhhFgy7p3hYRuobClvUlvEN0FkwQfOvcatFUAIeNf4wAZsd+fmOjxpIcmvy/7eEZJDV2ZQ+Kg69ZucWbA1DWcT1Y4R9MFbc9+HlLuMjUaUn/KUWxgtxAk4vaUoq+rOnJltaq9XZ+JX/HJcZEZlRIfgfa+aHxOcX6NPa42Zh5bUkkXnfRIo65cr56g3PWmq3J8Lq+ZqGOsY+FDAQA/qeW3mkiThdmAjpa9huqa1lmtUypQSOmb0S+/8UOA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=k7fFmcOHa9xrVsy3zFKKwj0AreCu1/WA3CgGLbcb7C4=;
 b=iDhZNazq18VSRZSA6ymeXuMzhl0c6qeK8ed8WImCmNTvR6uiU9Q5A8yBVGEyPV7XpphNa6ZiXsTCdimJbVbzWzKafquzfcUgDGobdfnNkOtbAdOm+nxiijr5cDuIfuuQrWk9xBYEwhRV1LQ5DwYvuwUc4wxvoRu3T36QKShxt10=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <e07ab218-c15c-4844-9594-dd456860f83d@citrix.com>
Date: Tue, 24 Mar 2026 12:17:34 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-announce@lists.xen.org,
 xen-devel@lists.xen.org, xen-users@lists.xen.org,
 "Xen.org security team" <security-team-members@xen.org>
Subject: Re: [oss-security] Xen Security Advisory 482 v2 - Linux privcmd
 driver can circumvent kernel lockdown
To: Greg KH <greg@kroah.com>, oss-security@lists.openwall.com
References: <E1w50W0-00Bwo0-1i@xenbits.xenproject.org>
 <2026032453-departed-thrash-f153@gregkh>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <2026032453-departed-thrash-f153@gregkh>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO0P123CA0013.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:354::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_|BY1PR03MB7876:EE_
X-MS-Office365-Filtering-Correlation-Id: add4df25-f564-4f2e-8303-08de899f50cc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	2yodM/wHZPp5oJZ9kIXMYuK5wMbRopQkSntfz7ImwLBSskgT61h+3nbPzkhDjN0fxJtlDT1lYrjtTurAfI0HGKJpKYlXoLEXTXiSME6hYdl/hOlpUA+1xjErINzly5nxlTyHV2d+RkTbx24txe7emgpOiILkPbNOeRqO22M9WScV855/9MhE4CCDqjdaHZ9MaMgub7GwGGvjjDU99cfVUAY2Cu51VB1zt9O8zADLxAuuc2eZWQS1QRViwDnY0wKDH77mv0F9qxmK3rHtj6lNzDwIhtkS9NI83KESxdiyyXja7+h0K7fYwqo9wNw05Akur/IWn7eEVF6Aq8Kr/qv47lat1Cjeg2eyxncmPvryTbr77vr+k4BSvw4tOKFchfkCIctPMrEgsNkSojmOX05TGqZVrluF/s8HSRMxMqBRabLAeDJhlDA709cZ2bsgWjM+E5j2XUyMlkb0Zb4i66C5wxedvEF4Mh7LUnKQXvdEDJyutPucNHuZ+p7zNt0J6xqtgGFkuuOMSfAIX+MTONMAseZ1BobrBhQ1k4ozr+j+qyc5AO9yXjavE0fX9d07lPVAN7ox+Qb6sEtKlyOhBYndOoU5FStuhGJQQy9z1NgPej8Tuhm7bPZZfE4mSUPv8r1FRMlxx4eeQkDrWgo9COIjl8eYvBl+EGO+rYGnEFD2XGdDFKvpeoei5ceEDkQvmR4O3CSeSGnvboLB+pSEMdM3vNwW+krbG2uocZnGiZqKtmw=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NDl5Rkl5Mkw1a0V1bENZWDNjcUtuMDJZZVptemtWSWVIUlB2VTF1OEdkaHNx?=
 =?utf-8?B?UHRyQVR5TXpGdTBrQkZmMjBOVW42eml4NGJQekJNUFhkcTBuUjRtblUxbmNT?=
 =?utf-8?B?N2NoRXBlaTdnN2RHR20zT2dIZzFTRm80TlJUUTdjUU45ZzR2L0Z3RWN6Wlky?=
 =?utf-8?B?MlpjTVYwREFzeTJaYWVCbVJSZm1GVzdlNXM0S3MxWmhzWkJ5YXo2OE92MGVQ?=
 =?utf-8?B?VHl2SUxVeWxFd2VvMUM2eDMvTkR0Y3BpMlB0VVgreEU5K2xrRDdCd0FBTlZm?=
 =?utf-8?B?ZUMvTVYwcGFMSmUzamZIaW5VK1BPeDhpN0xPZmpwRVRGRmtGeDNnSStMbXJN?=
 =?utf-8?B?TlZqWThqRzUyMEFHM3A4eDRmMVVQMDJpbGFvd2NwN05BeDJOVmxneGJ3QVBK?=
 =?utf-8?B?dUZoWTJwdWNDRGdKM003Uy9TeGxPejZZRWNMeGkwNy9jc3BVL1N0eHpOWnJV?=
 =?utf-8?B?WDlOaW5CYlArb0R0SXNUOVFPV3FJbWpkY0MyTGZtWXdJcG9qMXYzOHdESFZz?=
 =?utf-8?B?WUQvNWRxalBrd1owL085UkVaS2taTjQvRC81SGRleFIrZytOVDdqNlRpalJx?=
 =?utf-8?B?UURvdjIvdCtId2MvdHMxakVPWE10ZUhKVjVYeXpCbE05VEhmdmE2MWdkR1Rq?=
 =?utf-8?B?RExrZExuYXpqTjBqcDkrNTRtZ21WQms2L3N3cTB0UVJYcUhBWGs5Qlhod2NZ?=
 =?utf-8?B?T2RDY2xVdGY1OWpDSDI5S21rSTdwaHdFVWVMUGlodVVUeWNUcVdtcTVFRUQ0?=
 =?utf-8?B?ZS9vdmZlTVNWOVEvbmZBU1RDYjhCdFF4b1pOVFUvNFdTcDd4R1NPdE1kendL?=
 =?utf-8?B?OEFIYjBKdDZteHZQS3FHNGZHY09YWTJaNVc4MmF5UWZWMUJjMkU5cDJ6cXBl?=
 =?utf-8?B?eUp3VFlyb3h1WTBxOVZrS2ZoZUltaUFWa0JtNmoyY2VkMVVUTkJKYXk2cGlO?=
 =?utf-8?B?TXBDUjJiblFiUXhGcFpvVXVHN09WU2NmaHo0azJvbmJIVjF2cW9aeGFaS3c5?=
 =?utf-8?B?UXRwVXR3bXJ6MFE2aHZqRHdaeG16eXYvNVEvZzgvSDBKcFIzb3gza0tOMWJQ?=
 =?utf-8?B?REUzZC9CRHpyNkpFZ0Q0YURudjltMGhLMWsrTlR5bWVTZXBYQ3hCam5MQlFl?=
 =?utf-8?B?cldIcTVYa2JWQXdPRnZvVS9SYkZuMnBCeHYyWExDb2ZvSkw5b0kwR29EK3NB?=
 =?utf-8?B?U2RJYmFDN21NVXh5eGlxRURGaUNyajdjWDlTSzBiQ25kRFM5dGhOcWJUOHEx?=
 =?utf-8?B?UnFBK0NscmZOYzBod05yR21EY2prS01OWVdVNENnQjNvcHJuRmR6WkhuazFv?=
 =?utf-8?B?OGxUSUZHRFErUkY3WmVHVHB5R2VTcDZ6WWdySUcvcG9YcTdQa0lNYnhqNEpZ?=
 =?utf-8?B?bnAxNVQ4QmxnRUtMNVVmZCsyZEpVZUExN0lFQk5NRERCLzgySjMxUGJzUHpW?=
 =?utf-8?B?Rk5mN1JDY3RYdTBkM1lsWnYwZWE0bnZsa1MreXZsT3k0bWpNWmdxRHp3T0hR?=
 =?utf-8?B?WXlNNnBMRTh5Y3NvVHgvZzFsaVFaa0N3SEJiMUpjWEZDSGwwU0tGeWxCeWtH?=
 =?utf-8?B?aDdkeSt4T2tRUjNzT0ZqWW1WbXpzVW0rU0pPb00xc1hJVkRHT0NrbUhseHBw?=
 =?utf-8?B?WjRPWndrZm00VjhQdVZXaGxjSU9TeC9EY1NoWkFETXpqUVJJd0Q4V2NrckEy?=
 =?utf-8?B?V1ZkUUhNd2xtbkowc2NUMlVEMHRQNjk1dVZjMm9IUzB3WmExOFB2ajE5MXdT?=
 =?utf-8?B?SURtL0ErMGloS2xpTnprdUtpK28wVk9PYjdDZkt1YndUVnVDUDQ1L25OUDV5?=
 =?utf-8?B?dnFCUG8wd1hKcmpaVG9VaXRWcWMyeDhpb0p4aTVaZlJIOVNpRnJReURPWG9X?=
 =?utf-8?B?VmRwSlR1S1dWZjVHS0xmMnNOZ1R2emV1aFF6a2RBRFNVeGQzUXo5bUlURVlZ?=
 =?utf-8?B?T3NYSngwcmpmeER0MWs3Y0ozSzdrNEN1WE9rWk4xWEpCckd6YmNpazZONkFS?=
 =?utf-8?B?RzQvTnBNLzJXY1BPVGtwTzFVUTdESXljejlJdk5vRk1UZC9ITzRnYVFyODE4?=
 =?utf-8?B?SURES1VhaWdmMGorb3hmR1BML1ZIWlVuWFZlc1k0aXJlR0JnN3ZyanhEYm1j?=
 =?utf-8?B?THRFbTYwOTE2NENtOEd2Zjdld0pDVDl5a1ZMU0Vpa3d3UXlPejQxcnhyUlNH?=
 =?utf-8?B?eUV2MjU0U05qSlZJaUpBUGQydGZaUFY4dFZlTjd4K0pUUHNXTjRGUWVIRXVh?=
 =?utf-8?B?N2JsdkZBamtyZFdQL1k5RTNYTy9TVjEzYitSbFM3eFYxYm5EVldrcDhNUXFF?=
 =?utf-8?B?ZjdrbVUybUlLS01EbzlWbERFTkhsUDhjMmp3OWk3UENvdnJvQUF4blJlLzdu?=
 =?utf-8?Q?WC1h69qyau7QsbHU=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: add4df25-f564-4f2e-8303-08de899f50cc
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 12:17:28.2983
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: SXubtVYsvU7CI6DzzV8RSsHRFeyHAyQvt8AGGVXifLgQchY3GPU6cpxipK3Jy1fP8g8/Eird+lo9tU4941MacBg0zqBk9ha6HuQ7utm71zo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB7876
X-purgate-ID: tlsNG-ebf023/1774354663-124769D1-F2F3666C/0/0
X-purgate-type: clean
X-purgate-size: 822

On 24/03/2026 12:16 pm, Greg KH wrote:
> On Tue, Mar 24, 2026 at 12:05:44PM +0000, Xen.org security team wrote:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA256
>>
>>                     Xen Security Advisory XSA-482
>>                               version 2
>>
>>           Linux privcmd driver can circumvent kernel lockdown
>>
>> UPDATES IN VERSION 2
>> ====================
>>
>> Public release.
>>
>> ISSUE DESCRIPTION
>> =================
>>
>> The Linux kernel's privcmd driver can be abused to circumvent kernel
>> lockdown (secure boot), e.g. by modifying page tables to enable user
>> mode to modify kernel memory.
>>
>> The CNA covering Linux has refused to assign a CVE at this juncture.
> This is now assigned to CVE-2026-31788

Thankyou.  I'll send out an update.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 12:29:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 12:29:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260573.1553850 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50sU-00019S-MK; Tue, 24 Mar 2026 12:28:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260573.1553850; Tue, 24 Mar 2026 12:28:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50sU-00019L-Je; Tue, 24 Mar 2026 12:28:58 +0000
Received: by outflank-mailman (input) for mailman id 1260573;
 Tue, 24 Mar 2026 12:28:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w50sT-0000iz-9U
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 12:28:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w50sS-00EGTP-L5
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 13:28:56 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c2837f-e002-0a2a0a5209dd-0a2a450a8b58-34
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:28:56 +0100
Received: from [209.85.218.44] (helo=mail-ej1-f44.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c28388-1772-0a2a450a0019-d155da2cd587-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:28:56 +0100
Received: by mail-ej1-f44.google.com with SMTP id
 a640c23a62f3a-b9358dd7f79so639828966b.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 05:28:56 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.190])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f43ae8sm638180966b.6.2026.03.24.05.28.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 24 Mar 2026 05:28:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774355336; x=1774960136; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SjKcgpgVhPtaCMEXLSjgtM5Jeo9qa3Adh6wKPCR5tAQ=;
        b=OXVmHXT4K9YA2DAVQHDFyR9U/jUAXr94idFXgjajE+SATmuszGQKKj1rGBZDfARCYQ
         COLm9DcJXM9EFGnFOIs+W54KRAfuwTOsO47naFR9MmU1eNf3r7Xvu4aoAorep/umI0xY
         3HFe1Ziir4Z6YXcnjAnIiDRG8/Y+hfSkxgIZs4n7qSfMHXCi7WccLICmgqfcwq7diVGq
         mImWYAbnEBQsxrPNpDvocbxviHUwQOvfIMGqhESXW4benM1iCHYm0YGkHl8q1Jd5d1JV
         4MMy54z6JQPV4Vz4cuAfbdej0HJwpBT13aoOUPf00uW1AaSFE9nUcMVh5TjvywnGKMCq
         +Oag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774355336; x=1774960136;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=SjKcgpgVhPtaCMEXLSjgtM5Jeo9qa3Adh6wKPCR5tAQ=;
        b=a/QRqXxl5TxY2jrydL9CnpIdvddjBWu0xWmpxao+1um9wql79cPa8yVxz71lHwhfdl
         nl+HqZ+uxbP/UnXUvph/C1wvqzM3iK9lhIeiLstNEMF/dOR9570oaonN0I90w5DJ9nhS
         agahnQ/RnjTG98v3BfahYbc4wPEqSDXNsL2s27lKyl6JTgKM7b4XY7Q8ZZCMoHZ54WtD
         ZeNbHns0v/todqwTTzywIfhcljJMIJvikLb8m4LMb/6n9N4/gE6rQRISChSlRDGbgSkC
         yVXfjO7VBXjWqW1luW/bhufuThNG3nQnul7bpRMg+Z9X55b63C+sCQ2xxcx8uhdnVwbk
         Fc6g==
X-Gm-Message-State: AOJu0Yyj6+ZNUSyA/0ZLc9AMvnPghFlPunbScxPfXHYN9z7qplaBP8l2
	hqgszEdgLacXppOFqnVSPq/Kssmry3rk5XVPAmdAh2zQYcxw2nTT5Pdnxj18XQ==
X-Gm-Gg: ATEYQzymdni2j4chJwAz1Va4K29mIteqa+oe6MicuNkUa0JlDe/iSzgB0n4NqZ1U139
	4hDs745ugjHThynAIqr+aaxkSHPTiNMPFXMW2G+SQ2xmRjeuq3dDJptziNsP/Y2Ha6Yh2Nve7Tw
	EWiLnCLFoTzbp7qCFs9weeLkSfgEFzttz9YHDdtWLvR8n/LG7ar1zleOsyQf2yPPatGdop7ygSw
	IVgmn19N4OwlKL9NVc4LyHc1Ms5IGk/TXH0WkpEBdTvoKNytjyvkFBZSXBtVFzTyPx++ap8j3D5
	PYt4vDj8ZjRLekTkLO2QU26hr7VYjbKLMeyodkw6w9qn7vc9shltsZuGqNAr7VOyX/em81hQCvV
	QV5zI27H2FRz+rwarsYWvawIIo8fgjtNc0EiQTp85wiodT2ZT54FLnwsGVnKNJVuDRTZgzVUzh0
	JXCLmnMJzOdPwOhEMgNYiGqslFLac=
X-Received: by 2002:a17:906:1b17:b0:b97:91c0:fc3b with SMTP id a640c23a62f3a-b982f242b11mr1012744866b.16.1774355335307;
        Tue, 24 Mar 2026 05:28:55 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v17 2/4] tools/xl: Allow compilation of 'xl resume' command on Arm
Date: Tue, 24 Mar 2026 14:26:35 +0200
Message-ID: <6a9b083bf18c9eb388076ba71041452937d29b01.1774353053.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1774353053.git.mykola_kvach@epam.com>
References: <cover.1774353053.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1774355336-52892900-8588D33B/0/0
X-purgate-type: clean
X-purgate-size: 4933

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 v16:
- 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 Mar 24 12:29:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 12:29:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260574.1553855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50sU-0001Cn-Ux; Tue, 24 Mar 2026 12:28:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260574.1553855; Tue, 24 Mar 2026 12:28:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50sU-0001Ce-Qs; Tue, 24 Mar 2026 12:28:58 +0000
Received: by outflank-mailman (input) for mailman id 1260574;
 Tue, 24 Mar 2026 12:28:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w50sT-0000xN-V2
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 12:28:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w50sR-008sjJ-PK
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 13:28:57 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c2837d-2eae-0a2a0a5409dd-0a2a450b9bd6-46
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:28:57 +0100
Received: from [209.85.218.50] (helo=mail-ej1-f50.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c28389-ef63-0a2a450b0019-d155da32ac4f-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:28:57 +0100
Received: by mail-ej1-f50.google.com with SMTP id
 a640c23a62f3a-b976536806cso806493566b.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 05:28:57 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.190])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f43ae8sm638180966b.6.2026.03.24.05.28.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 24 Mar 2026 05:28:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774355336; x=1774960136; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=k/JxxBDY+KhwZWz0jMdNpGTqDW+EDXqjFu4woHI4vHE=;
        b=WpyGNX4KmwLvpTw2licwsjp6bF/zcULaIuOXeJU+Hb3NsW/H9GTZu8xC5oWXG89jU9
         zBqFsQsJ+9BZ06S9bE8DFoiEvPQkK69tDqAXhHHF8ksQa5WJQtWR5gKD69x0ssM3Jedd
         HrDL7aGxLVNARHHk4eyd5ia7/tIVpFNjVmDNFZvGOQy5bLWewj10l78T76Y9yp2vkgHD
         HzcXfiSZVLx+V3J1o0RNg6aZTYfO1rc2cZzMrU2GjZbisTYoyfgEY8h/yZP1udNS6MxT
         wdWgY32RvNjv3HJ5AGbBnDUVE7GoqU0zWI/QOUXUGHxpsx3gJGxDh97taB3TCRFhr4cQ
         FdlQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774355336; x=1774960136;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=k/JxxBDY+KhwZWz0jMdNpGTqDW+EDXqjFu4woHI4vHE=;
        b=g+zYilR7LtPKkr7Vnj0M7NFl1DeUKaTrVFikArz4oZBE8A5OpjSXay6Q+03Mp0zO+C
         fZHYJFZFvq/RdkgGcINjrvQVTVHkaYWWB59qtBPlvNx6J3VTqTy8PpzrU2v/kZQIa0Mg
         22p6oAtvX9la40TGbn8eJ+McEy5LCQgqmtRpWEnXPc7R9kyfSIDanfLhBaykhd80xSqK
         ge9GGGf7ewUmaVuZJIn4xvJFif7GfclhZDfsQT7CATJD8jioVIYxOdaD8KoNgAUq4LPx
         PUVJ1SkgAluWWVsqjg7fVH2kwOsQEvLRdLGnvugfsCmM/xq0hqrp2vpxvSz/pfXQAYEE
         c3Dg==
X-Gm-Message-State: AOJu0YxtNbvLwW5eFMWc//BYD08x7eLHUBwuIPYlN/nYPRnTPNjn8DQt
	7q+dsx9r8oFi58+Sh4Dp1DTR+Qs0UCPxWS7W+q7jKxbMJsAhXhxeafMMXlUL9w==
X-Gm-Gg: ATEYQzwuI5p0JWJm7Xi1vMixdnVCV66Hq+Lp+GGso9X7Q9l7VOdfRNBsdI8RWao26BO
	sn/oV4xgcEhQsqMSlq2viuF+pOAw+2fFI7piMmLnArPEiubVHwktmAX87HyQIkpIlsDbEO/jqLH
	st+bXQPGe+JF0Z4Ytad8gef9FfZ2AGIU21zlaowWKBFMEl8IKyMIjtyWOQ/WLDpHlQCGEnZdDez
	UIZVywfYCwAVa70uQ3//nhYQLncCq8R3MSPtQzvqQJYHQLmehFwhRPCyk5gYNFLvQXulx2uHoNy
	DRrRUq8Uf3ydesrBZ9kQGF4a+xo+Edjej7jC9eEqroeyZE40B2B3Es2jy9cjovqpEdNnVsR44pR
	ZDcl8dVwXn5PVdk1RU5l/j+zPdlSyt130Opvg5RGeYYtitACrvSNMpsAxe7ctG3k7hOnXBgHQcn
	cPrBCP65dnhr+VhO+1BO5dA7D7tTVBjSdXnpcoIg==
X-Received: by 2002:a17:906:6d0:b0:b98:da3:5132 with SMTP id a640c23a62f3a-b982f39a06emr859844766b.37.1774355336254;
        Tue, 24 Mar 2026 05:28:56 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v17 3/4] SUPPORT.md: Document PSCI SYSTEM_SUSPEND support for guests
Date: Tue, 24 Mar 2026 14:26:36 +0200
Message-ID: <0ae34dacecf7268f76750f2d07982a461375f3f7.1774353053.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1774353053.git.mykola_kvach@epam.com>
References: <cover.1774353053.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1774355337-9B8A5112-3FAB27CF/0/0
X-purgate-type: clean
X-purgate-size: 1154

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 V16:
- no changes.
---
 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 Mar 24 12:29:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 12:29:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260575.1553868 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50sW-0001bD-6S; Tue, 24 Mar 2026 12:29:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260575.1553868; Tue, 24 Mar 2026 12:29:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50sW-0001b3-1j; Tue, 24 Mar 2026 12:29:00 +0000
Received: by outflank-mailman (input) for mailman id 1260575;
 Tue, 24 Mar 2026 12:28:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w50sU-00019p-Tk
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 12:28:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w50sS-008sjJ-OI
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 13:28:58 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c2838a-2eae-0a2a0a5409dd-0a2a4505c54c-0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:28:58 +0100
Received: from [209.85.208.46] (helo=mail-ed1-f46.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c28389-5aeb-0a2a45050019-d155d02ea8eb-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:28:58 +0100
Received: by mail-ed1-f46.google.com with SMTP id
 4fb4d7f45d1cf-6674cba2c50so9103754a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 05:28:57 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.190])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f43ae8sm638180966b.6.2026.03.24.05.28.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 24 Mar 2026 05:28:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774355337; x=1774960137; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5V7qWNxkL9fZedO5saDR1Yh4qFPCnis+jo0Tf2NZuMI=;
        b=kOOq+vFkKaC9HDer4DydvEmQ78WUJLiGRsL9+cj4iW5QU70lYrDakgPjYN8dtazrQj
         zhQn1XU6ELMGtyEyogKvIV7FTKKZbhtsdHqIk2gk+FrhZDofXHojZVcxOBaEhZY8maE5
         8s6+/UThOtDtaSZCUKuAkzI1LUloXpNf938qF+c05gHx0ZoGpJ7Fp3syXoTB63LakAX0
         mD3oKpLSSkSCvgWSYLDki4Jbhona1QdfHAPbr63vyCj4eyHsUoD5pEXFPpj5KOihjEO6
         nG023jt7bR67Txssxw8c1EFXHT0j2AVl8DGsqFn3u6U7J5/1vzqzACGUv4dxTyCFT0HJ
         7yEQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774355337; x=1774960137;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=5V7qWNxkL9fZedO5saDR1Yh4qFPCnis+jo0Tf2NZuMI=;
        b=RdTqKX64VBbfKGK/cRKYaNGbb6GHfMujEFppv1kN9+GPizS1oR03WEXLliUDhVr2SR
         WgLbIlKcntFr+mh+VlMXeiXnd4YFZOGbp1WxBCAZgwCBQb9/xNleRqWOVn3QdJ/HtPn7
         AgBa+zmBVjiJdNKuH+yNWOu7m0jE8zAdA2w4fGhDwfWwRLdFUjgzw9vjCQKNL/ET3+Uj
         QlChFVB4vrK8CTDEmudfh34vWtnCLzBXyBMiXUuAfOvFAX6JenHDjpFceaO9ONxlsg4Y
         n3FMkSO1jBPbqmUINUWJHyDPyXNNpbrPHBXgCNsha7bzpbM/cK6LWC2tBu2httk6big3
         7RxQ==
X-Gm-Message-State: AOJu0YxI3jLMUWzKhFxy2DcNmowDUyp7zDO4qtSopTGVZTyzrXIeVrxI
	bogsMTzKHN7qIcNa9nZ6bfwDKBldF0VOw+nLRcizmdB4/Uv7xAvq+6K0dzTfbg==
X-Gm-Gg: ATEYQzy+u34JJ0BwaQmmZNd/RTRc9V5PXy3CcP1oCIGlAttpdqxmCZcrLWtmSwhaD/V
	dttB4wTdjSjbuiyvrSXiWSP5O2t1rmsbtDraxUv6Sucfi8bNydduC/MKbBxdOGEYrJL0cRSTTiH
	RsQ3iE4S0OSWtFoOTk+ddfNm/cfdWD5G4WUddJCFGG2Lj3sj2eQUWJQe++1XZ59Y+OdHUGxq2XN
	nxUKjoN2nFnOSucLAIXEC4scmX6fsPONahbJuKSluC8mu6K75s47M7PMQZObfv27ArB9yMGZ0+4
	HX8XxrKv0uicmIy1tDxZklrzhI6Nlylg+sSomqAJODgrRb7qw6XfLzyptttfwdkxJ7xOjJ9DFSh
	kS+skrwonTF8q5JceDEyweWs/Y+6ja90+NZJLUJSy4bGEzD37jIa+BIg3s0BjOSkhlQ5EyxKbfc
	gbv0axM6yd3JiajirB/a6JCPlh78o=
X-Received: by 2002:a17:907:97ce:b0:b97:f2cc:8c3e with SMTP id a640c23a62f3a-b98863728fbmr256741866b.10.1774355337010;
        Tue, 24 Mar 2026 05:28:57 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH v17 4/4] CHANGELOG: Document guest suspend/resume to RAM support on Arm
Date: Tue, 24 Mar 2026 14:26:37 +0200
Message-ID: <b4ee1eb58b28ddcf2f71aa67bf89bb2d301d2c51.1774353053.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1774353053.git.mykola_kvach@epam.com>
References: <cover.1774353053.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1774355338-8295A488-32A53ED7/0/0
X-purgate-type: clean
X-purgate-size: 1014

From: Mykola Kvach <mykola_kvach@epam.com>

Mention the newly added support for guest suspend and resume to/from
RAM via vPSCI on Arm platforms.

This support is limited to non-hardware domain guests.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v16:
- cosmetic changes after review.
---
 CHANGELOG.md | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index c191e504ab..eab73f28d3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -15,6 +15,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
      misusing atomic instructions.
    - Support for CPIO microcode in discrete multiboot modules.
 
+ - On Arm:
+   - Support for guest suspend and resume to/from RAM via vPSCI.
+     Applies only to non-hardware domain guests.
+
 ### Removed
  - On x86:
    - The cpuid_mask_* command line options for legacy CPUs.  These were
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 12:29:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 12:29:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260572.1553836 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50sT-0000lF-Ap; Tue, 24 Mar 2026 12:28:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260572.1553836; Tue, 24 Mar 2026 12:28:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50sT-0000kc-7C; Tue, 24 Mar 2026 12:28:57 +0000
Received: by outflank-mailman (input) for mailman id 1260572;
 Tue, 24 Mar 2026 12:28:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w50sR-0000ij-TD
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 12:28:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w50sR-00AZEX-8w
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 13:28:55 +0100
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c28380-5cb7-0a2a0a5109dd-0a2a4506af42-14
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:28:55 +0100
Received: from [209.85.218.51] (helo=mail-ej1-f51.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c28387-3034-0a2a45060019-d155da33d566-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:28:55 +0100
Received: by mail-ej1-f51.google.com with SMTP id
 a640c23a62f3a-b9358dd7f79so639825266b.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 05:28:55 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.190])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f43ae8sm638180966b.6.2026.03.24.05.28.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 24 Mar 2026 05:28:53 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774355334; x=1774960134; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7/6HJhyhtErbpXXGpZoU8/+KkesjpSkybuifOG8Ybk8=;
        b=WGbybabhSYWkINqbcNakJP9fC67jcffTm0rIyPNI1m52uNjIA91/ysMdGo9SG4p29P
         JkB7sXnE7xTiqxHgX2gciPne8tPIgQOoURsLaZvT61ncsDXWdK+UW8W1KFj1L84ToMd7
         E/rH4wcI9jBGvd+VzXd0m8whIaUd4q2m0cl8Zepy62ulDD1K+i9qq1HFI56plYaTPl30
         Ak9PQ30A1g+ym6vWx8NhjcQnr4giIjmV5QwQuAknmFwDm8CLcDhJtz8QbDMUArc3edXj
         f348+KfDG6KKLG0AK0+vd5mqxFiFk5+vByBm5AHTrwy1DLDcM3Zxf67vV5q5H03OlLJm
         47EQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774355334; x=1774960134;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=7/6HJhyhtErbpXXGpZoU8/+KkesjpSkybuifOG8Ybk8=;
        b=LWm7U2O531FJ2jo6Ask8T9fepC576/p2czZXyNDZSUMzIE41mxG38N/FUNMajicEbI
         vfDiMMjsVMwf/7ZqbC4DcixMf7nL1P1tj5PPYn4qskLuECTGfLoMiQZbUhzsWvk3Tg+T
         T2SzvU4C+WBKtv1beaEtNDQxYeGVLE45PXvMxEudl97YaudvY3ShL/AEMs3ijhK2QRxi
         hmJ/nJAy9MhgEtlTR+NsQr2HI7Kj4rYwWp1cmWVRp2xSvqZM8YUYMf375HuWZ/T/w/Po
         D1OLtCvcBs4kuQuewdhLBlAHfYXY3ClQPpw+vXx3V8TNF99V4/awtuyNZKHWeBrHfT2x
         SMgg==
X-Gm-Message-State: AOJu0YzDApcCw02gRHMJ9Lcxj/lx24x5jIYZi++wov9+ErM/KWCy6hu8
	D7W3SDsacrnuIm7wWoLShNgQbOaD8G3KbaKfwTETE5U5Btn/nRM+roAjATm+cA==
X-Gm-Gg: ATEYQzyhSUakvdPAil1ENSukK1gh/9XbJrI2E08c3El5MPIlTSbisFWDGHeCZk8flK3
	gQVyXQx7kuNCwnqUtVSmTo8EqfFv+VAdW+omugxinyCEu04Q39WoEKNvLi8wCgyJ7K1eMMPUQUJ
	81n2izPL6F+xHDS8LJQ09iL9g5/4rIkhEDECChisadbFaKnZpv4uVZNWWm67hGxQCA5x1vDxWG+
	fk2n0ggvJt/EBOo2eJgFBhflsvWcZzWR3bC1o8KmV6iVBjH8Qr+fPRfnDKTRPsqjfBLFV5q4PxJ
	3r3+PHzFoZjhzC22OMmlCmqJyQyM5shHXk6yOIzoUtsCnOdqW2Xzf+CZ2Csy/HFHba6W9FI+YBF
	ux7sXqDBNPZO8jdXnQJoWqZZj65EB3xopbd1OGpb1849dhGqNPq++MEvCCK7RHW+LN+efcLCNab
	FIEf6AvqRlEpZq+pinvppCCKwjb+Y=
X-Received: by 2002:a17:906:8a68:b0:b98:1214:1376 with SMTP id a640c23a62f3a-b982f3e6d8dmr872300866b.49.1774355334169;
        Tue, 24 Mar 2026 05:28:54 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	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 v17 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
Date: Tue, 24 Mar 2026 14:26:34 +0200
Message-ID: <581179709977ce4cebb22597411048dc93b11167.1774353053.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1774353053.git.mykola_kvach@epam.com>
References: <cover.1774353053.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1774355335-82F941C2-A0D50685/0/0
X-purgate-type: clean
X-purgate-size: 18144

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
- Reject SYSTEM_SUSPEND for the hardware domain to avoid host shutdown
- Require all secondary VCPUs to be offline before suspend
- Split arch_set_info_guest() into arch_vcpu_validate_guest_context() and
  arch_vcpu_apply_guest_context() for reuse by vPSCI
- Add vpsci_build_guest_context() helper and store prevalidated context in
  resume_ctx; resume applies it and frees it
- Add 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.

Usage:

For Linux-based guests, suspend can be initiated with:
    echo mem > /sys/power/state
or via:
    systemctl suspend

Resume from control domain:
      xl resume <domain>

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V17:
- PSCI SYSTEM_SUSPEND is no longer advertised to the hardware domain via
  PSCI_FEATURES.
- Split arch_set_info_guest() into validate/apply helpers; keep full PSR
  validation on the public path.
- Build and validate PSCI vCPU context at SYSTEM_SUSPEND time, store it
  in resume_ctx.
- Make resume path apply only the prevalidated context and free it; add
  resume_ctx_reset() and cleanup in arch_domain_destroy().
- Rework vPSCI CPU_ON to use build/apply/free path; resume_ctx now
  carries a vcpu_guest_context pointer (no ep/cid).
- Make arch_domain_resume() void and remove the error branch from
  domain_resume().

Changes in V16:
- Refactor error handling in domain_resume: move logging to generic code,
  use explicit return code checking.
- Make context clearing conditional on success in arch_domain_resume.
- The 'int' return type is retained for arch_domain_resume for consistency
  with other arch hooks and to allow for specific negative error codes.
---
 xen/arch/arm/domain.c                 |  86 ++++++++++++---
 xen/arch/arm/include/asm/domain.h     |   7 ++
 xen/arch/arm/include/asm/perfc_defn.h |   1 +
 xen/arch/arm/include/asm/psci.h       |   2 +
 xen/arch/arm/include/asm/suspend.h    |  27 +++++
 xen/arch/arm/include/asm/vpsci.h      |   2 +-
 xen/arch/arm/vpsci.c                  | 146 +++++++++++++++++++++-----
 xen/common/domain.c                   |   4 +
 xen/include/xen/suspend.h             |  25 +++++
 9 files changed, 258 insertions(+), 42 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 94b9858ad2..581f82bddd 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"
@@ -770,8 +774,18 @@ int arch_domain_teardown(struct domain *d)
     return 0;
 }
 
+static void resume_ctx_reset(struct resume_info *ctx)
+{
+    if ( ctx->ctxt )
+        free_vcpu_guest_context(ctx->ctxt);
+
+    memset(ctx, 0, sizeof(*ctx));
+}
+
 void arch_domain_destroy(struct domain *d)
 {
+    resume_ctx_reset(&d->arch.resume_ctx);
+
     tee_free_domain_ctx(d);
     /* IOMMU page table is shared with P2M, always call
      * iommu_domain_destroy() before p2m_final_teardown().
@@ -806,6 +820,28 @@ void arch_domain_creation_finished(struct domain *d)
     p2m_domain_creation_finished(d);
 }
 
+void arch_domain_resume(struct domain *d)
+{
+    struct resume_info *ctx = &d->arch.resume_ctx;
+
+    /*
+     * 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, so there is no
+     * suspend-specific state to restore.
+     */
+    if ( !ctx->wake_cpu )
+        return;
+
+    ASSERT(d->shutdown_code == SHUTDOWN_suspend);
+
+    domain_lock(d);
+    arch_vcpu_apply_guest_context(ctx->wake_cpu, ctx->ctxt);
+    domain_unlock(d);
+
+    resume_ctx_reset(ctx);
+}
+
 static int is_guest_pv32_psr(uint32_t psr)
 {
     switch (psr & PSR_MODE_MASK)
@@ -848,15 +884,32 @@ static int is_guest_pv64_psr(uint64_t psr)
 }
 #endif
 
+void arch_vcpu_apply_guest_context(struct vcpu *v,
+                                   const struct vcpu_guest_context *ctxt)
+{
+    vcpu_regs_user_to_hyp(v, &ctxt->user_regs);
+
+    v->arch.sctlr = ctxt->sctlr;
+    v->arch.ttbr0 = ctxt->ttbr0;
+    v->arch.ttbr1 = ctxt->ttbr1;
+    v->arch.ttbcr = ctxt->ttbcr;
+
+    v->is_initialised = 1;
+
+    if ( ctxt->flags & VGCF_online )
+        clear_bit(_VPF_down, &v->pause_flags);
+    else
+        set_bit(_VPF_down, &v->pause_flags);
+}
+
 /*
  * Initialise vCPU state. The context may be supplied by an external entity, so
  * we need to validate it.
  */
-int arch_set_info_guest(
-    struct vcpu *v, vcpu_guest_context_u c)
+int arch_vcpu_validate_guest_context(const struct vcpu *v,
+                                     const struct vcpu_guest_context *ctxt)
 {
-    struct vcpu_guest_context *ctxt = c.nat;
-    struct vcpu_guest_core_regs *regs = &c.nat->user_regs;
+    const struct vcpu_guest_core_regs *regs = &ctxt->user_regs;
 
     if ( is_32bit_domain(v->domain) )
     {
@@ -885,19 +938,24 @@ int arch_set_info_guest(
     }
 #endif
 
-    vcpu_regs_user_to_hyp(v, regs);
+    return 0;
+}
 
-    v->arch.sctlr = ctxt->sctlr;
-    v->arch.ttbr0 = ctxt->ttbr0;
-    v->arch.ttbr1 = ctxt->ttbr1;
-    v->arch.ttbcr = ctxt->ttbcr;
+/*
+ * Initialise vCPU state. The context may be supplied by an external entity, so
+ * we need to validate it.
+ */
+int arch_set_info_guest(
+    struct vcpu *v, vcpu_guest_context_u c)
+{
+    struct vcpu_guest_context *ctxt = c.nat;
+    int rc;
 
-    v->is_initialised = 1;
+    rc = arch_vcpu_validate_guest_context(v, ctxt);
+    if ( rc )
+        return rc;
 
-    if ( ctxt->flags & VGCF_online )
-        clear_bit(_VPF_down, &v->pause_flags);
-    else
-        set_bit(_VPF_down, &v->pause_flags);
+    arch_vcpu_apply_guest_context(v, ctxt);
 
     return 0;
 }
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index 758ad807e4..ffe5d0d9f0 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
@@ -290,6 +292,11 @@ static inline register_t vcpuid_to_vaffinity(unsigned int vcpuid)
     return vaff;
 }
 
+int arch_vcpu_validate_guest_context(const struct vcpu *v,
+                                     const struct vcpu_guest_context *ctxt);
+void arch_vcpu_apply_guest_context(struct vcpu *v,
+                                   const struct vcpu_guest_context *ctxt);
+
 static inline struct vcpu_guest_context *alloc_vcpu_guest_context(void)
 {
     return xmalloc(struct vcpu_guest_context);
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..31a98a1f1b
--- /dev/null
+++ b/xen/arch/arm/include/asm/suspend.h
@@ -0,0 +1,27 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef ARM_SUSPEND_H
+#define ARM_SUSPEND_H
+
+struct domain;
+struct vcpu;
+struct vcpu_guest_context;
+
+struct resume_info {
+    struct vcpu_guest_context *ctxt;
+    struct vcpu *wake_cpu;
+};
+
+void 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..69d40f9d7f 100644
--- a/xen/arch/arm/include/asm/vpsci.h
+++ b/xen/arch/arm/include/asm/vpsci.h
@@ -23,7 +23,7 @@
 #include <asm/psci.h>
 
 /* Number of function implemented by virtual PSCI (only 0.2 or later) */
-#define VPSCI_NR_FUNCS  12
+#define VPSCI_NR_FUNCS  14
 
 /* Functions handle PSCI calls from the guests */
 bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
index 7ba9ccd94b..bd87ec430d 100644
--- a/xen/arch/arm/vpsci.c
+++ b/xen/arch/arm/vpsci.c
@@ -4,38 +4,24 @@
 #include <xen/types.h>
 
 #include <asm/current.h>
+#include <asm/domain.h>
 #include <asm/vgic.h>
 #include <asm/vpsci.h>
 #include <asm/event.h>
 
 #include <public/sched.h>
 
-static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
-                            register_t context_id)
+static int vpsci_build_guest_context(struct vcpu *v, register_t entry_point,
+                                     register_t context_id,
+                                     struct vcpu_guest_context **out)
 {
-    struct vcpu *v;
-    struct domain *d = current->domain;
+    bool is_thumb = entry_point & 1;
     struct vcpu_guest_context *ctxt;
     int rc;
-    bool is_thumb = entry_point & 1;
-    register_t vcpuid;
-
-    vcpuid = vaffinity_to_vcpuid(target_cpu);
 
-    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
-        return PSCI_INVALID_PARAMETERS;
-
-    /* THUMB set is not allowed with 64-bit domain */
-    if ( is_64bit_domain(d) && is_thumb )
-        return PSCI_INVALID_ADDRESS;
-
-    if ( !test_bit(_VPF_down, &v->pause_flags) )
-        return PSCI_ALREADY_ON;
-
-    if ( (ctxt = alloc_vcpu_guest_context()) == NULL )
-        return PSCI_DENIED;
-
-    vgic_clear_pending_irqs(v);
+    ctxt = alloc_vcpu_guest_context();
+    if ( ctxt == NULL )
+        return -ENOMEM;
 
     memset(ctxt, 0, sizeof(*ctxt));
     ctxt->user_regs.pc64 = (u64) entry_point;
@@ -48,7 +34,7 @@ static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
      * x0/r0_usr are always updated because for PSCI 0.1 the general
      * purpose registers are undefined upon CPU_on.
      */
-    if ( is_32bit_domain(d) )
+    if ( is_32bit_domain(v->domain) )
     {
         ctxt->user_regs.cpsr = PSR_GUEST32_INIT;
         /* Start the VCPU with THUMB set if it's requested by the kernel */
@@ -69,15 +55,51 @@ static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
 #endif
     ctxt->flags = VGCF_online;
 
-    domain_lock(d);
-    rc = arch_set_info_guest(v, ctxt);
-    domain_unlock(d);
+    rc = arch_vcpu_validate_guest_context(v, ctxt);
+    if ( rc )
+    {
+        free_vcpu_guest_context(ctxt);
+        return rc;
+    }
 
-    free_vcpu_guest_context(ctxt);
+    *out = ctxt;
+    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;
+    struct vcpu_guest_context *ctxt = NULL;
+    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_build_guest_context(v, entry_point, context_id, &ctxt);
     if ( rc < 0 )
         return PSCI_DENIED;
 
+    vgic_clear_pending_irqs(v);
+
+    domain_lock(d);
+    arch_vcpu_apply_guest_context(v, ctxt);
+    domain_unlock(d);
+
+    free_vcpu_guest_context(ctxt);
+
     vcpu_wake(v);
 
     return PSCI_SUCCESS;
@@ -197,6 +219,56 @@ 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_guest_context *ctxt;
+    struct vcpu *v;
+    struct domain *d = current->domain;
+    bool is_thumb = epoint & 1;
+    struct resume_info *rctx = &d->arch.resume_ctx;
+
+    /* 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 = vpsci_build_guest_context(current, epoint, cid, &ctxt);
+    if ( rc )
+        return PSCI_DENIED;
+
+    rc = domain_shutdown(d, SHUTDOWN_suspend);
+    if ( rc )
+    {
+        free_vcpu_guest_context(ctxt);
+        return PSCI_DENIED;
+    }
+
+    rctx->ctxt = ctxt;
+    rctx->wake_cpu = current;
+
+    gprintk(XENLOG_DEBUG,
+            "SYSTEM_SUSPEND requested, epoint=%#"PRIregister", cid=%#"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 */
@@ -216,6 +288,9 @@ static int32_t do_psci_1_0_features(uint32_t psci_func_id)
     case PSCI_1_0_FN32_PSCI_FEATURES:
     case ARM_SMCCC_VERSION_FID:
         return 0;
+    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
+    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
+        return is_hardware_domain(current->domain) ? PSCI_NOT_SUPPORTED : 0;
     default:
         return PSCI_NOT_SUPPORTED;
     }
@@ -344,6 +419,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 ab910fcf93..c128074e7c 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>
@@ -1435,6 +1436,9 @@ void domain_resume(struct domain *d)
     spin_lock(&d->shutdown_lock);
 
     d->is_shutting_down = d->is_shut_down = 0;
+
+    arch_domain_resume(d);
+
     d->shutdown_code = SHUTDOWN_CODE_INVALID;
 
     for_each_vcpu ( d, v )
diff --git a/xen/include/xen/suspend.h b/xen/include/xen/suspend.h
new file mode 100644
index 0000000000..c6ea7e867c
--- /dev/null
+++ b/xen/include/xen/suspend.h
@@ -0,0 +1,25 @@
+/* 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 void arch_domain_resume(struct domain *d)
+{
+    (void)d;
+}
+#endif
+
+#endif /* XEN_SUSPEND_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 12:29:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 12:29:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260571.1553832 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50sT-0000ix-4F; Tue, 24 Mar 2026 12:28:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260571.1553832; Tue, 24 Mar 2026 12:28:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50sT-0000ip-0x; Tue, 24 Mar 2026 12:28:57 +0000
Received: by outflank-mailman (input) for mailman id 1260571;
 Tue, 24 Mar 2026 12:28:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ehxs=BY=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1w50sR-0000id-Do
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 12:28:55 +0000
Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com
 [209.85.218.47]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 052c1b96-277d-11f1-b166-2bf370ae4941;
 Tue, 24 Mar 2026 13:28:53 +0100 (CET)
Received: by mail-ej1-f47.google.com with SMTP id
 a640c23a62f3a-b97a06d7629so701816166b.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 05:28:53 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.190])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f43ae8sm638180966b.6.2026.03.24.05.28.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 24 Mar 2026 05:28:52 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 052c1b96-277d-11f1-b166-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774355333; x=1774960133; 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=8Kob3w5MlN/prcibwmQMrffsAscHNoAh+y9mXjEqsnA=;
        b=Zpa1vhMvXx91vgsjzm3BtAmHBUAEOxMd56fP2+JzQQQXd4B23JqAtOXR3kFNksIONV
         uWTMJRDjwv3lTndP61VPKLiWOHhYjKFffZ3CZH/jpq39yDaspEIUZPTikIPvX6GLOh0+
         WKBCSTNOnd7NoYH+AhA6Q9SBU6iPjttjmllINPpQyktZxHgql3QKXNMddf1eJcoJchcy
         odZjeZZk3kBCeJABUYxcTavMZwX8hFGgfDT7FqvEkKTZjebc8geimKvZCLoXjS7FEov4
         w+3f+Vjj1Wc77Uv3GEShuDEZZTYLYkK4WR6QtIDERK88zLmgul37tswemLBKnjd18iV7
         cAlQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774355333; x=1774960133;
        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=8Kob3w5MlN/prcibwmQMrffsAscHNoAh+y9mXjEqsnA=;
        b=QBOgbui3kVFOyX1gSisvSUEgd+XXlP++BZ0pf47GNSW4FWlgQkMZKE4B+lm6SIpl9J
         DdcSF2xU6Xk4Y3nmbfb1mBpqc9npA7zQA1O3V4AaCufv7S/TQmHzUoZA7ydwUNNKi+7Q
         kxO5XdpZ8MhVDaZLtH6li2NyGmJH7+jQCJvNYxVkeDLX9XAj7D5A5BsgDmykzXltIWED
         u7M4+A33Y4q0nBYUz2hKXYXlgsJVfwdzCPolbqEdM0/qvDxTuvHJUZkRYzAoDKUJkei2
         M7v/ODweYG6a7SUITPiX+OmCYAadfdbw8U6OcsXDOEKcADtvAHDj+A119wUIkKsh5ZSl
         2g/g==
X-Gm-Message-State: AOJu0YzUKjQQY1BMzrBlmzqr1WbFVzPWhvNOUjIaFEGT7t1mRBEKs5zH
	y+faf7arF0lfJ8/gkMXKMRFEdAjzWOb1pdig2oRLjZxwrvvfOWQb+DQXlbZNxA==
X-Gm-Gg: ATEYQzxpeTvJtwacajBKyibS2jxO+MfJh6oVX1m12woobDYR2bg+oaIOeC+IXFQym7V
	X4iHWZ+7faVHOqSy9bxgv98X6LaQDNpnda0Nr68kiFc/BY3jEZPS1VRxgYnKbJygPfC2L+b2Rnu
	p/lv/n+3IRyFfwvyoXmpI3ffd8Bot3h+dFyvrmxz97Jd1a4BlIPkoWzxakQOmQhPK87W9w85LDx
	U+2dXqzGv8USGLB4exhMmueJaZ/i/sLwMxTVipjxV7CCyTdhELsa58+9EkOO3jm0sJw7cGAbufP
	MH6J1XQN5SKe84vXZ4Lm2xGru/lRM5qKZXkoZ0o1WWZlwvqC2scj1BP8aIIZMg7ZxWGcbEU1wxL
	gWIzAduHpcBLUeImLfTEHCySrrzQbRELeNoMss7LbC/40SUBRsUg/+VXSSge5mozYTy/wnZUrqN
	RE2NAbdJX1qlNlP8UtbClhAXkUgDM=
X-Received: by 2002:a17:907:e114:b0:b97:c71c:f51 with SMTP id a640c23a62f3a-b982eea0c65mr721284366b.0.1774355332758;
        Tue, 24 Mar 2026 05:28:52 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Juergen Gross <jgross@suse.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH v17 0/4] Enable guest suspend/resume support on ARM via vPSCI
Date: Tue, 24 Mar 2026 14:26:33 +0200
Message-ID: <cover.1774353053.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

This patch series introduces the initial support for guest suspend
and resume on ARM platforms using the PSCI SYSTEM_SUSPEND interface. The main
goal is to allow ARM guests to request suspension using PSCI and be resumed
by the control domain (e.g., via "xl resume").


Background

The PSCI SYSTEM_SUSPEND call is part of the PSCI v1.0+ specification and is
used by guests to enter the deepest possible power state. On Xen/ARM, we
emulate this interface in the virtual PSCI (vPSCI) layer for guests.

This series includes:

1. A new vPSCI implementation of the PSCI SYSTEM_SUSPEND function for guests
2. Documentation updates to SUPPORT.md to reflect PSCI and vPSCI support status
3. Enabling "xl resume" command compilation for ARM, which was previously disabled


Usage

For Linux-based guests:
  - Suspend can be triggered using: "echo mem > /sys/power/state" or "systemctl suspend"
  - Resume can be performed from control domain using: "xl resume <domain>"

For more information, refer to the official Linux kernel documentation on power management.

Note that currently, SYSTEM_SUSPEND is supported only for guest domains (not for
the hardware domain).
---

This is the first part of previous patch series and originally consist only
with necessary changes needed for guest domain suspend.

The second part can be found here:
    https://patchew.org/Xen/cover.1765472890.git.mykola._5Fkvach@epam.com/
---
Changes in V17:
- PSCI SYSTEM_SUSPEND is no longer advertised to the hardware domain via
  PSCI_FEATURES.
- Split arch_set_info_guest() into separate validate/apply helpers while
  keeping full PSR validation on the public path.
- Build and validate the PSCI vCPU context during SYSTEM_SUSPEND and store
  it in resume_ctx.
- Make resume use only the prevalidated context and free it afterward;
  add resume_ctx_reset() and cleanup in arch_domain_destroy().
- Make arch_domain_resume() void and drop the error path from domain_resume().

Changes in V16:
- Refactor error handling in domain_resume: move logging to generic code,
  use explicit return code checking.
- Make context clearing conditional on success in arch_domain_resume.

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                 |  86 ++++++++++++---
 xen/arch/arm/include/asm/domain.h     |   7 ++
 xen/arch/arm/include/asm/perfc_defn.h |   1 +
 xen/arch/arm/include/asm/psci.h       |   2 +
 xen/arch/arm/include/asm/suspend.h    |  27 +++++
 xen/arch/arm/include/asm/vpsci.h      |   2 +-
 xen/arch/arm/vpsci.c                  | 146 +++++++++++++++++++++-----
 xen/common/domain.c                   |   4 +
 xen/include/xen/suspend.h             |  25 +++++
 17 files changed, 277 insertions(+), 57 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 Mar 24 12:32:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 12:32:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260622.1553876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50vZ-0004Lz-Ld; Tue, 24 Mar 2026 12:32:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260622.1553876; Tue, 24 Mar 2026 12:32: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 1w50vZ-0004Ls-I0; Tue, 24 Mar 2026 12:32:09 +0000
Received: by outflank-mailman (input) for mailman id 1260622;
 Tue, 24 Mar 2026 12:32: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=+PK3=BY=kroah.com=greg@srs-se1.protection.inumbo.net>)
 id 1w50vY-0004LP-Hi
 for xen-devel@lists.xen.org; Tue, 24 Mar 2026 12:32:08 +0000
Received: from fhigh-b5-smtp.messagingengine.com
 (fhigh-b5-smtp.messagingengine.com [202.12.124.156])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 75641abe-277d-11f1-b166-2bf370ae4941;
 Tue, 24 Mar 2026 13:32:04 +0100 (CET)
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 3968D7A00D9;
 Tue, 24 Mar 2026 08:32:01 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-02.internal (MEProxy); Tue, 24 Mar 2026 08:32:01 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 24 Mar 2026 08:32:00 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 75641abe-277d-11f1-b166-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kroah.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=fm1; t=1774355521; x=1774441921; bh=4/kIAkzXCa
	EwyFMWc/BA68EXScKywCVPhm+DDXoZ4JI=; b=fLwuWhYw1wYgcbmS1iao0VKwIQ
	tmw+L/6Bs8aSDk1Rvz7cljScuD/kTOIH/uhzgnItR1TIxwdNsSu+OoJPwOTTIsOi
	3dcZTMxqg0EWSSwNKqocPITA+17Thb/q874T94yPd9unEmQypQBS4x1iATcygKlY
	9GLH9h1NefrfOCA7us9FQIN4Bnjqe0S6+uQnEixGo6K+QTLirZKjePxTf0j8FyFV
	C9fkTFn5pcIRhuOR7jtiHG+0BlyrheKUmgym9pySLF+X2QoD501aRVhka4L5ZXEW
	kAzPxVl22kiNQHJCjbsuBgjDGPxHgMeOrmwntYHLMl8koIQES38Kd76FEaFg==
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=
	1774355521; x=1774441921; bh=4/kIAkzXCaEwyFMWc/BA68EXScKywCVPhm+
	DDXoZ4JI=; b=ceLFBZdg29TmDjfTz8rckQGNCeaVEyrp5CnE+oPpYZXwtzglFq2
	//lcToFb8K3RosW0PA0Ff7ujLhjaPd5MCIu5bN/RXQW+ozN1zSNqKo8f65sfQeTt
	idjkyMizfzLXBNHO9TqvcMT7LC5Xl7D5/gLeSBdWh91yoFoA+Q0tdgllI41VBX+I
	c/qFdLOAea18ZhpYEg59QJtNJjqlm8XG1icPAKzzPGkUM+JYd78lhQoLN+gE4p0J
	qLhZWwGJNfMlEhhwJgEd3OWm0GSDYtOsMU3aoZbOSMoOSWwgIH3fnjRJNEphLX54
	Qx36S2CA4/MJW3J0fVh8TJZZIf+3DJBknvg==
X-ME-Sender: <xms:QITCaYqNrPxCchsa687cnOIK3VRjabzDzpOvSMKvHCnZB9PvR1yhHw>
    <xme:QITCaQN9iPbWxhSIdDgRGiIp_Tq3guFR4_BXmtSohJb07INMgvtr5MF03kk8iEWtt
    mcQiaquSqg3NymD4zNbIddzWVmD64o4Vk9kAwzVaMzk4aGIdA>
X-ME-Received: <xmr:QITCaceCvLfaAIb4L32XRHTHzCdH1mylZit0AbPmEN1QToERILNqq2NSnhQt>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdefvdduheekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesthdtredttddtvdenucfhrhhomhepifhrvghgucfm
    jfcuoehgrhgvgheskhhrohgrhhdrtghomheqnecuggftrfgrthhtvghrnhepheegvdevvd
    eljeeugfdtudduhfekledtiefhveejkeejuefhtdeufefhgfehkeetnecuvehluhhsthgv
    rhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepghhrvghgsehkrhhorghhrd
    gtohhmpdhnsggprhgtphhtthhopedutddpmhhouggvpehsmhhtphhouhhtpdhrtghpthht
    ohepohhsshdqshgvtghurhhithihsehlihhsthhsrdhophgvnhifrghllhdrtghomhdprh
    gtphhtthhopeigvghnqdgrnhhnohhunhgtvgeslhhishhtshdrgigvnhdrohhrghdprhgt
    phhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnrdhorhhgpdhrtghpthhtoh
    epgigvnhdquhhsvghrsheslhhishhtshdrgigvnhdrohhrghdprhgtphhtthhopehsvggt
    uhhrihhthidqthgvrghmqdhmvghmsggvrhhsseigvghnrdhorhhg
X-ME-Proxy: <xmx:QITCaWVKNeXD9m7ctI0a5hWaFXLjK3A7jeT0sPMtrzL5ku9fdjAeaA>
    <xmx:QITCadB4PG0Ou5_2Bxq4QoBrBy4MJif-yJjWAUuLrOHlpjlGLMe6jw>
    <xmx:QITCaR7PdOmIYkz4pW66m0dckGv3zCAePyr84jt5_QbWcdSkTLhUlA>
    <xmx:QITCaU1Facm1VeN-2P1LucXwAc2O4PegjPipqZxe2CQ857vhuPv7nQ>
    <xmx:QYTCafDPfpus8IGGyZqrOu839Hrg5YALwiqbLxxynpKi33xvFFUDogu->
Feedback-ID: i787e41f1:Fastmail
Date: Tue, 24 Mar 2026 13:31:38 +0100
From: Greg KH <greg@kroah.com>
To: oss-security@lists.openwall.com
Cc: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
	xen-users@lists.xen.org,
	"Xen.org security team" <security-team-members@xen.org>
Subject: Re: [oss-security] Xen Security Advisory 482 v2 - Linux privcmd
 driver can circumvent kernel lockdown
Message-ID: <2026032405-faculty-agony-2599@gregkh>
References: <E1w50W0-00Bwo0-1i@xenbits.xenproject.org>
 <2026032453-departed-thrash-f153@gregkh>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <2026032453-departed-thrash-f153@gregkh>

On Tue, Mar 24, 2026 at 01:16:08PM +0100, Greg KH wrote:
> On Tue, Mar 24, 2026 at 12:05:44PM +0000, Xen.org security team wrote:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA256
> > 
> >                     Xen Security Advisory XSA-482
> >                               version 2
> > 
> >           Linux privcmd driver can circumvent kernel lockdown
> > 
> > UPDATES IN VERSION 2
> > ====================
> > 
> > Public release.
> > 
> > ISSUE DESCRIPTION
> > =================
> > 
> > The Linux kernel's privcmd driver can be abused to circumvent kernel
> > lockdown (secure boot), e.g. by modifying page tables to enable user
> > mode to modify kernel memory.
> > 
> > The CNA covering Linux has refused to assign a CVE at this juncture.
> 
> This is now assigned to CVE-2026-31788

And, to be more clear, the kernel CNA should have given you a CVE
earlier, sorry about that, that was my fault.  We had been "burned" by
other groups/companies asking for CVEs "ahead of time" for Linux for
things that turned out to be wrong or not needing a CVE at all at the
same time you all asked for one, so I reacted much harsher here than you
all deserved by saying we would assign one once the issue was public.  I
should have trusted you as obviously you know what you are doing here
and should have gotten a CVE for your accounting earlier.

Again, my fault, sorry about that, if you all need one in the future for
any issue, we will assign it ahead of time.

greg k-h


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 12:33:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 12:33:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260632.1553885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50wn-0004qz-01; Tue, 24 Mar 2026 12:33:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260632.1553885; Tue, 24 Mar 2026 12:33:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50wm-0004qs-Tg; Tue, 24 Mar 2026 12:33:24 +0000
Received: by outflank-mailman (input) for mailman id 1260632;
 Tue, 24 Mar 2026 12:33:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <soumyajyotisarkar23@gmail.com>) id 1w50wl-0004qk-HE
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 12:33:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w50wj-008teY-BT
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 13:33:22 +0100
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <soumyajyotisarkar23@gmail.com>)
 id 69c2848f-5cb7-0a2a0a5109dd-0a2a4506d148-28
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:33:22 +0100
Received: from [209.85.216.66] (helo=mail-pj1-f66.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <soumyajyotisarkar23@gmail.com>)
 id 69c28491-3034-0a2a45060019-d155d842b1b0-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:33:22 +0100
Received: by mail-pj1-f66.google.com with SMTP id
 98e67ed59e1d1-35a02f3b8feso2254202a91.3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 05:33:22 -0700 (PDT)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-35c031ed04esm2215792a91.12.2026.03.24.05.33.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 24 Mar 2026 05:33:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774355600; x=1774960400; 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=XT2HwcRtBu6LO8z2uPy2k8tXLApHhf6ycVvVP5IPkyQ=;
        b=Koef/nIhtVbEXWKJGRdWL2Emq6q0xk3o18ln8USReumvEvQsTWDT9u5GTFLnR8nCEm
         kVxZcV5KzeH7OinYGxSdYlUyHumUDMPwFdrKzFhoAKiJ43V9OYsmX6QhA7QgWf6d2Jm8
         F8PEIrzPToYpU22liAo+89TNsKbAFwziroo+Z8BcvMb8K+OURiaYqeivLeQiOcZTix3L
         x1ziuaIJkrrdp+dcoLS/1SfgO4zTDDXOa5TOZl+obTzqTgmP6SAEGHchbQ0bbSC7Ob9A
         wG9evbpnb4Ap0U0ELzCxajVYrF6ZEmgs/m7QcrWynAK6wgvDdzJzqoF7KXsgmq9OGH3S
         RKtA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774355600; x=1774960400;
        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=XT2HwcRtBu6LO8z2uPy2k8tXLApHhf6ycVvVP5IPkyQ=;
        b=nf1dUWibAyEmckHMwLXRZc+u0APiaK43WsdJlTFohueSvndecHtBlK82D2japcxujI
         gQnG9g+hIjjrxL/padJPFPTA3gDBltdvO+vNtlUBFJyXX5RNQcXM4M/psbf5HRQqRNEz
         RRV1oGVCYtlHU681qE66JpL5YThglqxxhTA7mTesEBgwTDTtCOs8atejQVQV0h5wIqCE
         J/LyAobNnsUxiWAZk5JTJcnOngZML6/apO+U2dFftgrMctAG3QBICL+YVcBEsMKkWN7E
         HbUs+hk/F1+t9//WkXbyawVsDkZ4bbZfRV3bWzUOFtErzmTKMxKwhJQdIJza1RKPP7Bf
         UQZg==
X-Forwarded-Encrypted: i=1; AJvYcCVcMtzZ9evaaS/zffWpucl24ZOy8y4nIPFnpCbzJ19ysGWdmwWNaXCkDGdsBjUa2+DIyplbB5VT5NA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyg4faIRt84OkF+6ooQHy85dkpIK//PWWe6/vnkvFBgALcgeKNt
	T5jeTIz3++CqJm5RveATypIqM261/u6GdAEx221G4dfbrpYZyvFrPBNunTdvn09i
X-Gm-Gg: ATEYQzwXtflnvNmykDzTrswCzUleVv45GyiZsKzDHLtuVfhdjirgcGyKRiJfUqaohjr
	hdg20SuQKQq5h8bSZH7Il+DHI/p/tIViDjMK0PopPo/TK5kQ6xEYP7fVa90gq3UokiSMHbhppYF
	z+6UbDlFwixIFVWwiJf2nVvPGMknw5LW7dj0cVp8P46A7G5L+HPi/my1yPg52f7ZaoZ80MpmpqV
	Gmg10zwRvhrewf1M+29431bUmjmKohaoUpE3Hd+djCohWptf0tN3o1efZaYbAbFXxWwcq3+vGAJ
	7GitgsDTA5cdFa6CH3BRLptyU31O4qPtyWxBntP7FdcMCFDJJlJfEEVGEhlMz1aCkDkJ5u3AK0S
	GwkN1Af9pMansGNuOD5jqZOl+LzuYnl9REiMdHZRt8IU/hzLsFDL7wmawhddh1yucEx0K2qje1W
	5qc6Lj8U49yF2h7enP1cURrqHvHH5kn71JgJLzZtbA65duekZejbEETF1T1KLmiqU5Ly/3hn9po
	Z8zpV/k5AaYVvPmze8psQcb0GDaAyxRceqOOqtsxIo/OmfHm40sCo98ZJ4UW40A4hKh+ln0sA==
X-Received: by 2002:a17:90b:3c48:b0:359:855f:ff96 with SMTP id 98e67ed59e1d1-35bd2cb73f1mr12348850a91.17.1774355600219;
        Tue, 24 Mar 2026 05:33:20 -0700 (PDT)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: sarkarsoumyajyoti23@gmail.com,
	xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [PATCH v5 0/3] Fixing ACPI BGRT (Boot Graphics Resource Table) corruption
Date: Tue, 24 Mar 2026 18:03:09 +0530
Message-ID: <20260324123312.11076-1-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1774355602-801831C2-C879944F/0/0
X-purgate-type: clean
X-purgate-size: 4177

This patch series plans to address ACPI BGRT (Boot Graphics Resource Table) corruption,
that occured when Xen reuses the memory containing the boot logo
image before dom0 is able to parse ACPI tables.

The BGRT table contains a pointer to a BMP image stored in
BootServicesData memory. When Xen reclaims this memory early in boot,
the pointer becomes invalid, causing Linux dom0 to report:
Xen: `(XEN) ACPI: BGRT: invalidating v1 image at 0x47cc2018`
Linux (dom0): `ACPI BIOS Warning (bug): Incorrect checksum
in table [BGRT] - 0xF9, should be 0xB4 (20250807/utcksum-58)`

This series:
1. Adds BGRT image preservation infrastructure during EFI boot
(validates BMP format, allocates EfiACPIReclaimMemory, stores pointers)

2. Integrates preservation with ACPI subsystem
(clarifies acpi_invalidate_bgrt() safety net behavior,
adds status reporting via efi_bgrt_status_info())

3. Provides opt-out mechanism
(-nobgrt for xen.efi direct boot, efi=no-bgrt
for multiboot2, both via early EFI-phase parsing)

The preservation is enabled by default to fix the corruption for all
users, with minimal overhead (~1MB). Also, servers that don't need boot
graphics can disable it using the "efi=no-bgrt" option.

Thank you everyone for the constructive feedback! It is really helpful,
I hope this RFC series is upto standards, I would greatly appriciate further feedback.

Changes since v1:
- The BGRT invalidation behaviour should still presist
  and server as a safety net when "efi=no-bgrt" or the
  preservation fails for some reason thus: Add Clarify comment
  for BGRT invalidation behavior with preservation.
Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Changes since v2:
- Use existing ACPI headers (actbl.h, actbl3.h) instead of custom structs
- Modify the function names and code in function to conform with Coding Style.
- Reuse efi.acpi20 from efi_tables() instead of manual RSDP search
- Use appropriate types: EFI types for firmware code, unsigned int for
  loop counters (matching ESRT pattern)
- Used of sizeof(<expression>) over sizeof(<type>)
- Remove fixed-type widths & limited typecasting
- Add Blank line ahead of the main return statement of a function.
- Better wording error message for image cap size
- Remove parse_boolean(no-bgrt) since it could be bit misleading
- Add const qualifiers throughout for safety
- Use %p format for pointers (32-bit compatibility)
- Initialize failure_reason with string literal for proper relocation
- Use memcmp() with ACPI_SIG_* constants for signature checks
- Add direct Xen.efi calling.
- Add opt-out mechanism with proper early parsing during EFI phase.

Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reported-by: Jan Beulich <jbeulich@suse.com>

Changes since v3:
- Fix casting away const issue.
- Add Stub function
Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Changes since v4:
Fixed the merge conflicts raised due to removal of efi_halt_system()
Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Please refer to QubesOS Issue for more context:
https://github.com/QubesOS/qubes-issues/issues/10764

This is a companion series to Linux Kernel side at
https://patchew.org/linux/cover.751f45ebbb644244b1d9da3aff289d6b66db4c6b.1773058629.git-series.marmarek@invisiblethingslab.com/

Testing:
- Verified on Intel UEFI system with Fedora 43 dom0
- Before: ACPI checksum errors in dom0
- After: Clean boot, no ACPI warnings
- Memory overhead: ~972 KB (preserved image size)

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>

Soumyajyotii Ssarkar (3):
  x86/efi: Add BGRT image preservation infrastructure
  x86/acpi: Integrate BGRT preservation with status reporting
  x86/efi: Add opt-out mechanism for BGRT preservation

 xen/arch/x86/acpi/boot.c     |   8 ++
 xen/arch/x86/efi/efi-boot.h  |   5 ++
 xen/common/efi/boot.c        | 158 +++++++++++++++++++++++++++++++++++
 xen/common/efi/common-stub.c |   1 +
 xen/include/xen/efi.h        |   1 +
 5 files changed, 173 insertions(+)

--
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 12:33:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 12:33:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260633.1553894 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50wr-00055k-Ay; Tue, 24 Mar 2026 12:33:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260633.1553894; Tue, 24 Mar 2026 12:33:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50wr-00055d-87; Tue, 24 Mar 2026 12:33:29 +0000
Received: by outflank-mailman (input) for mailman id 1260633;
 Tue, 24 Mar 2026 12:33:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <soumyajyotisarkar23@gmail.com>) id 1w50wp-00054y-R0
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 12:33:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w50wp-008yL3-6w
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 13:33:27 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <soumyajyotisarkar23@gmail.com>)
 id 69c28491-e002-0a2a0a5209dd-0a2a4502c964-30
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:33:27 +0100
Received: from [209.85.216.67] (helo=mail-pj1-f67.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <soumyajyotisarkar23@gmail.com>)
 id 69c28495-63bb-0a2a45020019-d155d843edb7-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:33:26 +0100
Received: by mail-pj1-f67.google.com with SMTP id
 98e67ed59e1d1-35bb7afdc38so650535a91.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 05:33:26 -0700 (PDT)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-35c031ed04esm2215792a91.12.2026.03.24.05.33.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 24 Mar 2026 05:33:24 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774355605; x=1774960405; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aApGw00bRTG9YsHWYvBcAcOhWcCCk5rQkMe0Q+McyP8=;
        b=JtY+fYDFRURyFGgS4bpLD9TptIZjH9FaN0FJsyacnDZABHBR/qxZ6ZJN6uFPTJaF3A
         /W1GeINxbO7HJifougO1ZJK6fwlEp19I+uYgjL5jcCe2+njDyPOTgnyOaLk5rmP1ZS5F
         9GHPkZGJS0ppklThu0IdEFoIwfHkdZs3A5/wO6qwUjO2d5YZWpsgckf4FJ0Xga5YB65m
         NleYz5DA4nhSt0F0zxwMBTBAwXyc7jf4KybDFgYhCAjXgXOlH8n6/Lo1cCJxNSLAOcLY
         +817qJwMTvDM/Fj7QgCT5PssJoKibnD+sCFVMk/IBSMtsQ4apnk5KKw95csNMaSOIkdV
         oXxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774355605; x=1774960405;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=aApGw00bRTG9YsHWYvBcAcOhWcCCk5rQkMe0Q+McyP8=;
        b=p+RfmXK6eplp2MAfGQfphr3eKV4EQc9T6/dTcAMwIXXwXou/7BQsNXopYeHnTYA1hf
         hzYpczt1guk73S1VvwDC09WFaBIX+XVclSgHGJlUK6km4fRaYe8Df9+D0rnZsTkMuN0C
         8Om/jL6sz+QUWw0RFvBpBtmlx6lNFrDXP3u5jd9BxKs3hVSPQODxm3KGsYG7fwdkH/zl
         uw4FkiGKmoQ2JOBu290fs3dv6nhhOv9hZI6jypg3O1wo1G+wR+d3ax5dEHbdHLNrVKDL
         dt5kYpPke+8wPMV3bTQ71kyKiRwIULcK7DV+8b6MJhFzQ+D9EWbfopo8xrWJ67AZMEZp
         sXYA==
X-Forwarded-Encrypted: i=1; AJvYcCWcqgc02G9T01r3HJ0UXdzYFv7Qem8eozltbENvpnlV9d+mx84EVYDHBGm7C1L2YJbMZFnTs1mMohw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwgYkqswEfTf6TjqmZKMDb/2Zf4TDiwbl7s8GUKNfH1YOfMtRWS
	UbkuuytBHraHW4QcqxdmHl87dJpt58xrqbf7LW4wVlAjlm2O6V10hgq5y2Aaq2Dz
X-Gm-Gg: ATEYQzy5U6V81TFZsruDqeTTybBu7py8wAF7MOWfT+z4+vxjYE/K8sn7KfafgvzH6QB
	aR+RDhgrdTFzTAqBNT0v2uVbzqIwoTaHFAYe7ODNeBhTA4w/EXFKMNwcCOqYgsdSOzlGOZYgr8t
	j7otwL7o4w/pQfDFFGBA1ehq5R7gDhD+Yfk+RAX+xe/iTRkT+KW/u961d6WlSUCnWqBcoWgtEAO
	pxIpiner2Y8AE6xo76WlKQ9d96RiYCC6BXhq3UvdhwnWhX5xkeb+7PrSPNr8uO6inOw2ZNO7/KQ
	25N+z/ovIxzLnnHij/CW8pKPEp0ybvMBvi7HSA1u9YZ3y8p1/fxZ1aEWsR9fAGRrnccxticebvk
	sjVmF+R2Hn83JlOT+GC5rhev1BnLpsIXiEFH0/5QF3QPYVcRrTRvqnwO9jIWx0iVtQL+Yu57yHN
	NQJpfsIHxsXEkw3tZbfrpROL7ttOeoqld6aNK63o3JnwndbCdkR60TF6wgaqLG2tFFP4TuGS5Cv
	V8jkg+deEp/zqkqhPeGgF8Y1rXa8aI1wBT+oiGqNk/Nhd/WUBl2m2m2jCaKUtL4et1Fz++bMQ==
X-Received: by 2002:a17:90b:4fcd:b0:35b:e553:9cc2 with SMTP id 98e67ed59e1d1-35be5539ff7mr7766870a91.26.1774355604739;
        Tue, 24 Mar 2026 05:33:24 -0700 (PDT)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: sarkarsoumyajyoti23@gmail.com,
	xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [PATCH v5 1/3] x86/efi: Add BGRT image preservation infrastructure
Date: Tue, 24 Mar 2026 18:03:10 +0530
Message-ID: <20260324123312.11076-2-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324123312.11076-1-soumyajyotisarkar23@gmail.com>
References: <20260324123312.11076-1-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1774355607-42A84DB8-B697ED9A/0/0
X-purgate-type: clean
X-purgate-size: 6310

Add core EFI boot services code to preserve BGRT (Boot Graphics Resource
Table) images during Xen boot. The BGRT contains a pointer to a boot logo
stored in BootServicesData memory. Without preservation, this memory is
reclaimed causing ACPI checksum errors in dom0.

Implementation:
- Walk XSDT to locate BGRT table (reusing efi.acpi20 from efi_tables())
- Validate BMP image signature and size constraints (max 16MB)
- Allocate EfiACPIReclaimMemory and copy image data
- Update BGRT table with new address and recalculate checksum

The preservation follows the ESRT pattern, running before
ExitBootServices() to ensure image remains accessible.

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
---
 xen/arch/x86/efi/efi-boot.h  |   2 +
 xen/common/efi/boot.c        | 133 +++++++++++++++++++++++++++++++++++
 xen/common/efi/common-stub.c |   1 +
 3 files changed, 136 insertions(+)

diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 42a2c46b5e..0547d845cd 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -910,6 +910,8 @@ void __init efi_multiboot2(EFI_HANDLE ImageHandle,

     efi_relocate_esrt(SystemTable);

+    efi_preserve_bgrt_img();
+
     efi_exit_boot(ImageHandle, SystemTable);
 }

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 967094994d..47d5b9b2a8 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -1,12 +1,16 @@
 #include "efi.h"
 #include <efi/efiprot.h>
 #include <efi/efipciio.h>
+#include <acpi/acconfig.h>
+#include <acpi/actbl.h>
+#include <acpi/actbl3.h>
 #include <public/xen.h>
 #include <xen/bitops.h>
 #include <xen/compile.h>
 #include <xen/ctype.h>
 #include <xen/dmi.h>
 #include <xen/domain_page.h>
+#include <xen/errno.h>
 #include <xen/init.h>
 #include <xen/keyhandler.h>
 #include <xen/lib.h>
@@ -747,6 +751,133 @@ static void __init efi_relocate_esrt(EFI_SYSTEM_TABLE *SystemTable)
     efi_bs->FreePool(memory_map);
 }

+typedef struct {
+    UINT16 signature;
+    UINT32 file_size;
+    UINT16 reserved[2];
+    UINT32 data_offset;
+} __attribute__((packed)) BMP_HEADER;
+
+static __initdata struct {
+    bool preserved;
+    const void *old_addr;
+    const void *new_addr;
+    UINTN size;
+    const char *failure_reason;
+} bgrt_info = {
+    /* We would prefer the failure_reason to print */
+    .failure_reason = "",
+};
+
+static struct acpi_table_bgrt *__init efi_get_bgrt(void)
+{
+    const struct acpi_table_rsdp *rsdp;
+    const struct acpi_table_xsdt *xsdt;
+    UINTN entry_count;
+    unsigned int i;
+
+    if ( efi.acpi20 == EFI_INVALID_TABLE_ADDR )
+        return NULL;
+
+    rsdp = (const void *)(UINTN)efi.acpi20;
+    if ( !rsdp || !rsdp->xsdt_physical_address )
+        return NULL;
+
+    xsdt = (const void *)rsdp->xsdt_physical_address;
+
+    if ( memcmp(xsdt->header.signature, ACPI_SIG_XSDT, 4) != 0 )
+        return NULL;
+
+    if ( xsdt->header.length < sizeof(xsdt->header) )
+        return NULL;
+    entry_count = (xsdt->header.length - sizeof(xsdt->header)) /
+                  sizeof(xsdt->table_offset_entry[0]);
+
+    for ( i = 0; i < entry_count; i++ )
+    {
+        const struct acpi_table_header *hdr;
+
+        hdr = (const void *)xsdt->table_offset_entry[i];
+        if ( !hdr )
+            continue;
+
+        if ( memcmp(hdr->signature, ACPI_SIG_BGRT, 4) == 0 &&
+             hdr->length >= sizeof(struct acpi_table_bgrt) )
+            return (struct acpi_table_bgrt *)hdr;
+    }
+
+    return NULL;
+}
+
+#define BMP_SIGNATURE 0x4D42
+#define MAX_BGRT_IMAGE_SIZE (16 * 1024 * 1024)
+
+static void __init efi_preserve_bgrt_img(void)
+{
+    struct acpi_table_bgrt *bgrt;
+    const BMP_HEADER *bmp;
+    const void *old_image;
+    void *new_image;
+    UINTN image_size;
+    EFI_STATUS status;
+    UINT8 checksum;
+    unsigned int i;
+
+    bgrt_info.preserved = false;
+
+    bgrt = efi_get_bgrt();
+    if ( !bgrt )
+    {
+        bgrt_info.failure_reason = "BGRT table not found";
+        return;
+    }
+
+    if ( !bgrt->image_address )
+        return;
+
+    old_image = (const void *)bgrt->image_address;
+    bmp = old_image;
+
+    if ( bmp->signature != BMP_SIGNATURE )
+    {
+        bgrt_info.failure_reason = "Invalid BMP signature";
+        return;
+    }
+
+    image_size = bmp->file_size;
+    if ( !image_size || image_size > MAX_BGRT_IMAGE_SIZE )
+    {
+        bgrt_info.failure_reason = "Image size exceeds limit";
+        return;
+    }
+
+    /*
+     * Allocate memory of type EfiACPIReclaimMemory so that the image
+     * will remain available for the OS after ExitBootServices().
+     */
+    status = efi_bs->AllocatePool(EfiACPIReclaimMemory, image_size, &new_image);
+    if ( EFI_ERROR(status) )
+    {
+        bgrt_info.failure_reason = "Memory allocation failed";
+        return;
+    }
+    memcpy(new_image, old_image, image_size);
+    bgrt->image_address = (UINTN)new_image;
+    bgrt->header.checksum = 0;
+    checksum = 0;
+
+    for ( i = 0; i < bgrt->header.length; i++ )
+        checksum += ((const UINT8 *)bgrt)[i];
+
+    bgrt->header.checksum = -checksum;
+
+    /* Filling the debug struct for printing later */
+    bgrt_info.preserved = true;
+    bgrt_info.old_addr = old_image;
+    bgrt_info.new_addr = new_image;
+    bgrt_info.size = image_size;
+}
+
 /*
  * Include architecture specific implementation here, which references the
  * static globals defined above.
@@ -1671,6 +1802,8 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,

     efi_relocate_esrt(SystemTable);

+    efi_preserve_bgrt_img();
+
     efi_exit_boot(ImageHandle, SystemTable);

     efi_arch_post_exit_boot(); /* Doesn't return. */
diff --git a/xen/common/efi/common-stub.c b/xen/common/efi/common-stub.c
index 9dc8aa538c..155a973f21 100644
--- a/xen/common/efi/common-stub.c
+++ b/xen/common/efi/common-stub.c
@@ -19,6 +19,7 @@ unsigned long efi_get_time(void)
 }

 void efi_reset_system(bool warm) { }
+void __init efi_bgrt_status_info(void) { }

 int efi_get_info(uint32_t idx, union xenpf_efi_info *info)
 {
--
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 12:33:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 12:33:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260634.1553904 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50wv-0005Mo-It; Tue, 24 Mar 2026 12:33:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260634.1553904; Tue, 24 Mar 2026 12:33: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 1w50wv-0005Mf-Fj; Tue, 24 Mar 2026 12:33:33 +0000
Received: by outflank-mailman (input) for mailman id 1260634;
 Tue, 24 Mar 2026 12:33:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <soumyajyotisarkar23@gmail.com>) id 1w50wu-0005LR-D0
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 12:33:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w50wt-00EHMH-P9
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 13:33:31 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <soumyajyotisarkar23@gmail.com>)
 id 69c28497-2eae-0a2a0a5409dd-0a2a4504dad8-32
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:33:31 +0100
Received: from [209.85.216.68] (helo=mail-pj1-f68.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <soumyajyotisarkar23@gmail.com>)
 id 69c2849a-c823-0a2a45040019-d155d844b160-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:33:31 +0100
Received: by mail-pj1-f68.google.com with SMTP id
 98e67ed59e1d1-35a02f3b8feso2254278a91.3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 05:33:31 -0700 (PDT)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-35c031ed04esm2215792a91.12.2026.03.24.05.33.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 24 Mar 2026 05:33:28 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774355609; x=1774960409; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aQMNUr9KZ8pnRmWrzhYdmQttfHchPPrIJHh8762NZBU=;
        b=pbREfSWdlYODv1i2urbd4pFd0vV+I7J4eFwYOBLj3OMpAEeQta4Xq6Ah/zNq5yOjiX
         hJf6FncRKqBcvDWDAhzANXDT9rYh4txOAu+DZVLAy5W3nsOyZclSLgJ1lLL6vn9qjo+E
         ED3U03pR1ZXsleie9GA2T+yfQi6vz5W/9guogHMDhun8ep5rSUGQP4wf5yvqVY7hl0Df
         Wwn+3paVqUKUFz5CY/U+U0/AKuykXwFYWa6dyByKDg3gKIBLN05xGgCfNbNTBxT54uz7
         JWqcd2irUc3LqMRDQGsVQcWKkqTqR6RJBCJ7poG42Laeu+IsPueoDw9TSwOy2irQ7xTM
         K85A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774355609; x=1774960409;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=aQMNUr9KZ8pnRmWrzhYdmQttfHchPPrIJHh8762NZBU=;
        b=VRXiJVtRQYRcGfUBtbN9gJtu6vsaYUU89i2+3SoEXMM3JpXs71GPloHS7MMxeS/kKr
         H2fqlmCLgSBmsy1DlaS+ySu3m3pzrSlq/IgJGVsgicCc/QqvlWUCVF/8H2pL5OdTgFbJ
         lhSw29xzvaXxit7w22DpU/pgCcbRKB3PVAtZssHROsrSH+lfSmuRZgdO5/gHPquWm/yZ
         0ot1Z5KVUDeo24Hnk2+nOHKDMJTyCksvaYYRxxvf3UeW118tg2y02aKgSEX/3yw1D2dR
         eLnFzmJRvM1B6Yh8y6tagwQq80i97TLKSEOjXzAzcqtIJb9lawe/m00U393Af9sI3LTA
         EZ1A==
X-Forwarded-Encrypted: i=1; AJvYcCUGNv4fHdYMEbcaxllkTlmGlHl+fvKAGAIDg83/UfhI9I/oq+iUyGiUq3cOd99NWuNATziStO0qESw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxJ3GWMYS/qMM2pRGPeKkNKRvgLycU/3U4L+SkDF15e/gm4Xt4b
	xJmjEjDomLn4/VwxDrxrDTdFpTi0zoJv4Jp6ub0eC8JUQsKiBftXO59B
X-Gm-Gg: ATEYQzw2eWl73plMt4wczpMobwWF49QQlrSgf2DShVsLhnmu3SS1sljrhk1XT6tHwkX
	Ud9QCt8fuzshBik4904dAY+A3xoIbo7p4jrPL4pLX6gA5TqpB34XuMZrXxEoy0NgJg5PogtHdVK
	P8QNvv0eP1J9Rif3g9sdvxv6WpCg3dVy2Y52FEJ59qajLKu3PEB2T8qFSd8ZfcKlvtAcsBTzklk
	t1Jp9SiSOP2Wj9KQWJri3EKMXxmSwPB0MyCP5L8gST1sDHDfFcj6WGf9BP2GzQ/0Nd+G6HMvGx6
	pAzaD4cG0WEf5nY/63XPhFBnhxVny7GHuWSOzh/RZr+LrYQUd+NVrE5xuHSPNAo5jGg6EsbEMv+
	g1/PyEPuqNjpWIdDzlBuGLt4hWIsUo/E+8oYuO2YiukLonex2vsGsePccauaaovjbsXnMPLdGiC
	lKtT41Deq/Pi6JsG/vFoie1KiKyYSoXmGw0BnLldZyxpTXw6eJxMZkwwA7OWk51pfbcyn7cG8xb
	EpW3o5eObqPdhBJTH9iB5hgvGT/AxFci1GCjzAEqKtXS+6veQN769p4LfnJubhTuhtDBgomkw==
X-Received: by 2002:a17:90b:3849:b0:35b:947d:9fca with SMTP id 98e67ed59e1d1-35bd2cb761emr12853966a91.19.1774355609215;
        Tue, 24 Mar 2026 05:33:29 -0700 (PDT)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: sarkarsoumyajyoti23@gmail.com,
	xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [PATCH v5 2/3] x86/acpi: Integrate BGRT preservation with status reporting
Date: Tue, 24 Mar 2026 18:03:11 +0530
Message-ID: <20260324123312.11076-3-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324123312.11076-1-soumyajyotisarkar23@gmail.com>
References: <20260324123312.11076-1-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1774355611-B309B9D1-7F1FBAE9/0/0
X-purgate-type: clean
X-purgate-size: 3168

Add status reporting for BGRT preservation and integrate with Xen's
ACPI subsystem:
- efi_bgrt_status_info() prints preservation status (success/failure)
- Called from acpi_boot_init() after ACPI tables are processed
- Clarifying comment explains why invalidation code remains

The invalidation code in acpi_invalidate_bgrt() now acts as a safety
net: if preservation fails, the image remains in conventional RAM
and gets invalidated. If preservation succeeds, the image is in
EfiACPIReclaimMemory which won't match the RAM_TYPE_CONVENTIONAL
check, leaving the table valid.

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
---
 xen/arch/x86/acpi/boot.c |  8 ++++++++
 xen/common/efi/boot.c    | 16 ++++++++++++++++
 xen/include/xen/efi.h    |  1 +
 3 files changed, 25 insertions(+)

diff --git a/xen/arch/x86/acpi/boot.c b/xen/arch/x86/acpi/boot.c
index 1ca2360e00..20afe79db9 100644
--- a/xen/arch/x86/acpi/boot.c
+++ b/xen/arch/x86/acpi/boot.c
@@ -29,6 +29,7 @@
 #include <xen/mm.h>
 #include <xen/param.h>
 #include <xen/dmi.h>
+#include <xen/efi.h>
 #include <asm/fixmap.h>
 #include <asm/page.h>
 #include <asm/apic.h>
@@ -327,6 +328,11 @@ static int __init cf_check acpi_parse_hpet(struct acpi_table_header *table)
 	return 0;
 }

+/*
+ * Invalidate BGRT if image is in conventional RAM (preservation failed).
+ * If preservation succeeded, image is in EfiACPIReclaimMemory, which
+ * won't match RAM_TYPE_CONVENTIONAL check, so table remains valid.
+ */
 static int __init cf_check acpi_invalidate_bgrt(struct acpi_table_header *table)
 {
 	struct acpi_table_bgrt *bgrt_tbl =
@@ -754,5 +760,7 @@ int __init acpi_boot_init(void)

 	acpi_table_parse(ACPI_SIG_BGRT, acpi_invalidate_bgrt);

+	efi_bgrt_status_info();
+
 	return 0;
 }
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 47d5b9b2a8..e22a42c15b 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -1911,6 +1911,22 @@ static bool __init cf_check rt_range_valid(unsigned long smfn, unsigned long emf
     return true;
 }

+void __init efi_bgrt_status_info(void)
+{
+    if ( !efi_enabled(EFI_BOOT) )
+        return;
+
+    if ( bgrt_info.preserved )
+    {
+        printk(XENLOG_INFO "EFI: BGRT image preserved: %lu KB\n",
+               bgrt_info.size / 1024);
+        printk(XENLOG_INFO "EFI: BGRT relocated from %p to %p\n",
+               bgrt_info.old_addr, bgrt_info.new_addr);
+    }
+    else if ( bgrt_info.failure_reason[0] )
+        printk(XENLOG_WARNING "EFI: BGRT preservation failed: %s\n",
+               bgrt_info.failure_reason);
+}

 void __init efi_init_memory(void)
 {
diff --git a/xen/include/xen/efi.h b/xen/include/xen/efi.h
index 2e36b01e20..cebda997a5 100644
--- a/xen/include/xen/efi.h
+++ b/xen/include/xen/efi.h
@@ -39,6 +39,7 @@ static inline bool efi_enabled(unsigned int feature)
 extern bool efi_secure_boot;

 void efi_init_memory(void);
+void efi_bgrt_status_info(void);
 bool efi_boot_mem_unused(unsigned long *start, unsigned long *end);
 bool efi_rs_using_pgtables(void);
 unsigned long efi_get_time(void);
--
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 12:33:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 12:33:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260639.1553913 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50x0-0005gd-Rs; Tue, 24 Mar 2026 12:33:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260639.1553913; Tue, 24 Mar 2026 12:33:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w50x0-0005gS-OO; Tue, 24 Mar 2026 12:33:38 +0000
Received: by outflank-mailman (input) for mailman id 1260639;
 Tue, 24 Mar 2026 12:33:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <soumyajyotisarkar23@gmail.com>) id 1w50wy-0005dz-UH
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 12:33:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w50wy-006OfX-A7
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 13:33:36 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <soumyajyotisarkar23@gmail.com>)
 id 69c2849b-bab6-0a2a0a5309dd-0a2a4505ea44-40
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:33:36 +0100
Received: from [209.85.216.66] (helo=mail-pj1-f66.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <soumyajyotisarkar23@gmail.com>)
 id 69c2849e-5aeb-0a2a45050019-d155d842a439-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:33:36 +0100
Received: by mail-pj1-f66.google.com with SMTP id
 98e67ed59e1d1-35a1d4a095bso3177885a91.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 05:33:35 -0700 (PDT)
Received: from fedora ([103.2.232.250]) by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-35c031ed04esm2215792a91.12.2026.03.24.05.33.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 24 Mar 2026 05:33:33 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774355614; x=1774960414; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6/EFfTLPPvtpKfYbDxMVwQU9jDgu7ScMy19tpR6gQjI=;
        b=gMIWUa7uwCC9TMeUOldNRKNCQ5mmAtOCr51KtRqFcKQPgOEaOwQWMir2feHE6bYBiX
         iOyppAN9vlFmomvhbjsG+qrsEOcWdaeuGqN+b1ItkHY/8zJvuJqKM1lnUN+8accZPnB1
         21NRjtOOhCbA2KWwWSZKJX6pbRE5UvUhizfrQalnrFGIRU84LIV1STugqgIPqwqMo9cR
         DQANL1/iTIq5+2B+Ya9XosR03KdnJpAjvWLEpUiRF+NZJInRM5jHN+I1OfoSYIkWUpXS
         Fe+wc4ctNUeFu06V36xn1YYdbeUwFw0AMu8VuTgPikn8re+eYY9beJBHCuPinclJAcw8
         BkEA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774355614; x=1774960414;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=6/EFfTLPPvtpKfYbDxMVwQU9jDgu7ScMy19tpR6gQjI=;
        b=Ev9D62IsymfQteD1zN1QMsOEBUwlezEpC4J6dhcYCQAmUXJ7gpVFvmlA4Fo1b5Nk4U
         fOoKOx6ATcgsBw+3ffJV1Xw8b3pLlqiDPjoKgHRYZhNLy6QgDzeFif2oiFciSt1wWxuc
         l3fQORk7mCYYpL6ndEH0ldlozEpnWi3KllMsDLw51LGCew6SktKJ8Q48wYWOKTx6DYd1
         MtDPmb5rkIY/083loCgAis+YQw+lnSc5Dqvnywjb1mc77nnjRic4vTd2WCEhOKkM3sn4
         Hpg6YxquiCy5L43o58G8Qm+Thbzr1Ihp4sWDdRcuQOyRP+IktEiXdgrBhD9DWg+AWgp1
         TvgA==
X-Forwarded-Encrypted: i=1; AJvYcCU8peUw3/j6DS1vCOl90O8OIYlO6488I3b80Pr7wjaQ5/f5ED10a1UXwZXUXRWOXo1+DB4oqCjAesw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxRDbXjmFkcFI0R0uh/XlU0vOVqAcbKZme5s9f0l212lVUqwnmM
	WmvbTE4ZHkeA45ZH6Y/IXbcrbKjrUa2aZf2tm/JVidOmN6fmEjZMZ/KIL5eWfnSn
X-Gm-Gg: ATEYQzySL70rFRDa3K8RGeSoNr5iX/GwJeYG9IUUrKeK3vDhOGiKQ0bZFY+6Q++14kp
	Y5wgFit3IvyOk4yMH97mwB9N+IGybtQLUx6ctr/+xCUkgtF28QYSJvfunsEu3tsYuImrucEBNJ+
	wEHcL8Yxcz2d222ePPY1P/hZHq5XblFZXGIWDoVFfbq3sMFNBXoMxwu22yqLmo0lgDuV9jii45m
	2ms35TeHT1br1ROI5QmOQfOqxa94hSoYsBb+GU3o74Wf8mhNT/Usf/O3PmGxxKfZ73NQcJVO7Eg
	l1UaaukNNCmueoCTVR3yO3EP+06z8ATWq2ZT9hepv9dzh58mzYtY4NB9s2+JteVr8BEm+H5JR0v
	wxpAXRAWrE/VMtqqDH10jnsUpn1giSV8QzXzz2eMlFSVhTG7Vhwqd434ac1KDTbBZdIE3RR6CjH
	FY3PGRS8vbZJnDoL+1Dq0IbZd7CEEf6H82G/gUoS+8Y1UW2O50V9llIwQa63xIULFQFo/ZouVao
	Au6KbZl4hWFGXBTDr/JRBVdI7BYc5Q/Z7vOU364UkjPMrMcsqBDQ37WNMiQJxDXKjvkayRaKQ==
X-Received: by 2002:a17:90b:1e44:b0:34a:be93:72ee with SMTP id 98e67ed59e1d1-35c0083302cmr2487364a91.8.1774355613938;
        Tue, 24 Mar 2026 05:33:33 -0700 (PDT)
From: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
To: sarkarsoumyajyoti23@gmail.com,
	xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Subject: [PATCH v5 3/3] x86/efi: Add opt-out mechanism for BGRT preservation
Date: Tue, 24 Mar 2026 18:03:12 +0530
Message-ID: <20260324123312.11076-4-soumyajyotisarkar23@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324123312.11076-1-soumyajyotisarkar23@gmail.com>
References: <20260324123312.11076-1-soumyajyotisarkar23@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1774355616-82759488-AE5003A6/0/0
X-purgate-type: clean
X-purgate-size: 3800

BGRT preservation is now enabled by default to fix ACPI corruption
for desktop/workstation systems (similar to ESRT).

As described in the task:
https://github.com/QubesOS/qubes-issues/issues/10764

Add an opt-out parameter to allow disabling BGRT preservation on
systems where the ~1MB memory overhead is not desired.

The opt-out is implemented through two boot paths with early parsing
during the EFI boot phase before preservation runs:

1. xen.efi direct boot: '-nobgrt' command line option (parsed in
   efi_start())
2. Multiboot2 (GRUB): 'efi=no-bgrt' peeked from mb2 cmdline tag
   using get_option() in efi_multiboot2()

The flag is checked at the start of efi_preserve_bgrt_img() to
skip preservation entirely when disabled. Status logging indicates
whether preservation was disabled, succeeded, or failed.

Usage:
  Default: BGRT preserved automatically
  xen.efi: Add '-nobgrt' option
  GRUB/MB2: Add 'efi=no-bgrt' to Xen command line

Signed-off-by: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
---
 xen/arch/x86/efi/efi-boot.h |  3 +++
 xen/common/efi/boot.c       | 11 ++++++++++-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 0547d845cd..6c986cf6c0 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -897,6 +897,9 @@ void __init efi_multiboot2(EFI_HANDLE ImageHandle,
         efi_arch_edid(gop_handle);
     }

+    if ( cmdline && get_option(cmdline, "efi=no-bgrt") )
+        opt_bgrt_disabled = true;
+
     efi_arch_edd();
     efi_arch_cpu();

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index e22a42c15b..a4db7ee516 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -170,6 +170,7 @@ static SIMPLE_TEXT_OUTPUT_INTERFACE *__initdata StdErr;

 static UINT32 __initdata mdesc_ver;
 static bool __initdata map_bs;
+static bool __initdata opt_bgrt_disabled = false;

 static struct file __initdata cfg;
 static struct file __initdata kernel;
@@ -825,6 +826,9 @@ static void __init efi_preserve_bgrt_img(void)

     bgrt_info.preserved = false;

+    if ( opt_bgrt_disabled )
+        return;
+
     bgrt = efi_get_bgrt();
     if ( !bgrt )
     {
@@ -1582,6 +1586,8 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
                     base_video = true;
                 else if ( wstrcmp(ptr + 1, L"mapbs") == 0 )
                     map_bs = true;
+                else if ( wstrcmp(ptr + 1, L"nobgrt") == 0 )
+                    opt_bgrt_disabled = true;
                 else if ( wstrncmp(ptr + 1, L"cfg=", 4) == 0 )
                     cfg_file_name = ptr + 5;
                 else if ( i + 1 < argc && wstrcmp(ptr + 1, L"cfg") == 0 )
@@ -1592,6 +1598,7 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
                     PrintStr(L"Xen EFI Loader options:\r\n");
                     PrintStr(L"-basevideo   retain current video mode\r\n");
                     PrintStr(L"-mapbs       map EfiBootServices{Code,Data}\r\n");
+                    PrintStr(L"-nobgrt      disable BGRT preservation\r\n");
                     PrintStr(L"-cfg=<file>  specify configuration file\r\n");
                     PrintStr(L"-help, -?    display this help\r\n");
                     blexit(NULL);
@@ -1916,7 +1923,9 @@ void __init efi_bgrt_status_info(void)
     if ( !efi_enabled(EFI_BOOT) )
         return;

-    if ( bgrt_info.preserved )
+    if ( opt_bgrt_disabled )
+        printk(XENLOG_INFO "EFI: BGRT preservation disabled\n");
+    else if ( bgrt_info.preserved )
     {
         printk(XENLOG_INFO "EFI: BGRT image preserved: %lu KB\n",
                bgrt_info.size / 1024);
--
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 12:41:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 12:41:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260675.1553928 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w514E-0008Mf-Rq; Tue, 24 Mar 2026 12:41:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260675.1553928; Tue, 24 Mar 2026 12:41:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w514E-0008MU-NH; Tue, 24 Mar 2026 12:41:06 +0000
Received: by outflank-mailman (input) for mailman id 1260675;
 Tue, 24 Mar 2026 12:41:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrewcoop@xenbits.xen.org>)
 id 1w514C-0008It-Md; Tue, 24 Mar 2026 12:41:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w514C-00Ccc7-2T; Tue, 24 Mar 2026 13:41:04 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrewcoop@xenbits.xen.org>)
 id 69c2865e-bab6-0a2a0a5309dd-0a2a450ac9a4-16
 for <multiple-recipients>; Tue, 24 Mar 2026 13:41:03 +0100
Received: from [104.130.215.37] (helo=mail.xenproject.org)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrewcoop@xenbits.xen.org>)
 id 69c281e8-1772-0a2a450a0019-6882d725a4bc-3
 for <multiple-recipients>; Tue, 24 Mar 2026 13:22:01 +0100
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 1w50lg-007DvC-0W;
 Tue, 24 Mar 2026 12:21:55 +0000
Received: from andrewcoop by xenbits.xenproject.org with local (Exim 4.96)
 (envelope-from <andrewcoop@xenbits.xen.org>) id 1w50lf-00ByI7-2u;
 Tue, 24 Mar 2026 12:21:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.510 (Entity 5.510)
To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
 xen-users@lists.xen.org, oss-security@lists.openwall.com
From: Xen.org security team <security@xen.org>
CC: Xen.org security team <security-team-members@xen.org>
Subject: Xen Security Advisory 482 v3 (CVE-2026-31788) - Linux privcmd
 driver can circumvent kernel lockdown
Message-Id: <E1w50lf-00ByI7-2u@xenbits.xenproject.org>
Date: Tue, 24 Mar 2026 12:21:55 +0000
X-purgate-ID: tlsNG-4011c0/1774354921-BDC8C900-E6AC00F7/1/8689920845
X-purgate-type: clean
X-purgate-size: 13951

--=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-2026-31788 / XSA-482
                              version 3

          Linux privcmd driver can circumvent kernel lockdown

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

CVE assigned.

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

The Linux kernel's privcmd driver can be abused to circumvent kernel
lockdown (secure boot), e.g. by modifying page tables to enable user
mode to modify kernel memory.

IMPACT
======

An administrator of an unprivileged guest booted in secure mode is able
to perform actions on the kernel which should not be possible in secure
mode.

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

PV, PVH and HVM guests running Linux using secure boot are vulnerable.

BSD based systems are believed not to be vulnerable due to a lack of
secure boot support.

MITIGATION
==========

There is no known mitigation.

CREDITS
=======

This issue was discovered by Teddy Astie of Vates.

RESOLUTION
==========

Applying the set of attached patches resolves this issue.

xsa482-linux-?.patch           Linux

$ sha256sum xsa482*
a4e67d2c773e2e13252337e4b64c08b342c0eb2e0e92271a79dc588ac34e7c3a  xsa482-linux-1.patch
dd952c1fc49ceb47803b78e15cfe3f7f11a845b29c6b2a80afa7a9eaa60a00ec  xsa482-linux-2.patch
$

DEPLOYMENT DURING EMBARGO
=========================

Deployment of patches or mitigations is NOT permitted (except where
all the affected systems and VMs are administered and used only by
organisations which are members of the Xen Project Security Issues
Predisclosure List).  Specifically, deployment on public cloud systems
is NOT permitted.

This is because the patches need to be applied to the guests.

Deployment is permitted only AFTER the embargo ends.

(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmnCgb8MHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZ+HQIALz+nyJm5t0ZSnPHwNDN/EVOrftrep1+m2f35QeG
9/PWglS7gb5FX7q7Ao5dPoNsN0vJhgeiqyuJlUuvOwvVNPF7mA/wl+YuzgCjMyTD
rPS3E9lzaQRyfAR1UwvDRyUCYeiE2TNNWA/Y7LMOVB5dswrhO3P7jH5qvUJLTz3z
fcWKsnunrK1AK1YepklI6ybRhyZY191xI10FX0eSRo1k5gh6KuT5FPqCdjUEBjFO
0BPi+L+Lj8mZW2kbQ5ctRnesneQqS8Kud/EP+xnTH1hy/YiQny0T2RC9s4/hpQMu
Mav6EICE7kPvGtjgAYpjBQj+LHCyek3nRizd9gQ8tDaiYLQ=
=CIF6
-----END PGP SIGNATURE-----

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

RnJvbSAyNjVmMjA1MmZjYjUyYjllMjZlMTQ2Nzg5MzU5ZjQ1MjJjZWVkZDFi
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWVyZ2VuIEdyb3Nz
IDxqZ3Jvc3NAc3VzZS5jb20+CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxNjo1
NDo1OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggdjMgMS8yXSB4ZW4vcHJpdmNt
ZDogcmVzdHJpY3QgdXNhZ2UgaW4gdW5wcml2aWxlZ2VkIGRvbVUKClRoZSBY
ZW4gcHJpdmNtZCBkcml2ZXIgYWxsb3dzIHRvIGlzc3VlIGFyYml0cmFyeSBo
eXBlcmNhbGxzIGZyb20KdXNlciBzcGFjZSBwcm9jZXNzZXMuIFRoaXMgaXMg
bm9ybWFsbHkgbm8gcHJvYmxlbSwgYXMgYWNjZXNzIGlzCnVzdWFsbHkgbGlt
aXRlZCB0byByb290IGFuZCB0aGUgaHlwZXJ2aXNvciB3aWxsIGRlbnkgYW55
IGh5cGVyY2FsbHMKYWZmZWN0aW5nIG90aGVyIGRvbWFpbnMuCgpJbiBjYXNl
IHRoZSBndWVzdCBpcyBib290ZWQgdXNpbmcgc2VjdXJlIGJvb3QsIGhvd2V2
ZXIsIHRoZSBwcml2Y21kCmRyaXZlciB3b3VsZCBiZSBlbmFibGluZyBhIHJv
b3QgdXNlciBwcm9jZXNzIHRvIG1vZGlmeSBlLmcuIGtlcm5lbAptZW1vcnkg
Y29udGVudHMsIHRodXMgYnJlYWtpbmcgdGhlIHNlY3VyZSBib290IGZlYXR1
cmUuCgpUaGUgb25seSBrbm93biBjYXNlIHdoZXJlIGFuIHVucHJpdmlsZWdl
ZCBkb21VIGlzIHJlYWxseSBuZWVkaW5nIHRvCnVzZSB0aGUgcHJpdmNtZCBk
cml2ZXIgaXMgdGhlIGNhc2Ugd2hlbiBpdCBpcyBhY3RpbmcgYXMgdGhlIGRl
dmljZQptb2RlbCBmb3IgYW5vdGhlciBndWVzdC4gSW4gdGhpcyBjYXNlIGFs
bCBoeXBlcmNhbGxzIGlzc3VlZCB2aWEgdGhlCnByaXZjbWQgZHJpdmVyIHdp
bGwgdGFyZ2V0IHRoYXQgb3RoZXIgZ3Vlc3QuCgpGb3J0dW5hdGVseSB0aGUg
cHJpdmNtZCBkcml2ZXIgY2FuIGFscmVhZHkgYmUgbG9ja2VkIGRvd24gdG8g
YWxsb3cKb25seSBoeXBlcmNhbGxzIHRhcmdldGluZyBhIHNwZWNpZmljIGRv
bWFpbiwgYnV0IHRoaXMgbW9kZSBjYW4gYmUKYWN0aXZhdGVkIGZyb20gdXNl
ciBsYW5kIG9ubHkgdG9kYXkuCgpUaGUgdGFyZ2V0IGRvbWFpbiBjYW4gYmUg
b2J0YWluZWQgZnJvbSBYZW5zdG9yZSwgc28gd2hlbiBub3QgcnVubmluZwpp
biBkb20wIHJlc3RyaWN0IHRoZSBwcml2Y21kIGRyaXZlciB0byB0aGF0IHRh
cmdldCBkb21haW4gZnJvbSB0aGUKYmVnaW5uaW5nLCByZXNvbHZpbmcgdGhl
IHBvdGVudGlhbCBwcm9ibGVtIG9mIGJyZWFraW5nIHNlY3VyZSBib290LgoK
VGhpcyBpcyBYU0EtNDgyIC8gQ1ZFID8/PwoKUmVwb3J0ZWQtYnk6IFRlZGR5
IEFzdGllIDx0ZWRkeS5hc3RpZUB2YXRlcy50ZWNoPgpGaXhlczogMWM1ZGUx
OTM5YzIwICgieGVuOiBhZGQgcHJpdmNtZCBkcml2ZXIiKQpTaWduZWQtb2Zm
LWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+Ci0tLQogZHJp
dmVycy94ZW4vcHJpdmNtZC5jIHwgNjAgKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDU3IGlu
c2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp
dmVycy94ZW4vcHJpdmNtZC5jIGIvZHJpdmVycy94ZW4vcHJpdmNtZC5jCmlu
ZGV4IDE3NTljYzE4NzUzZi4uYTgzYmFkNjlmNGYyIDEwMDY0NAotLS0gYS9k
cml2ZXJzL3hlbi9wcml2Y21kLmMKKysrIGIvZHJpdmVycy94ZW4vcHJpdmNt
ZC5jCkBAIC0xMiw2ICsxMiw3IEBACiAjaW5jbHVkZSA8bGludXgvZXZlbnRm
ZC5oPgogI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4KICNpbmNsdWRlIDxsaW51
eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9rc3RydG94Lmg+CiAjaW5j
bHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXgu
aD4KICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CkBAIC0zMCw3ICszMSw5IEBA
CiAjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KICNpbmNsdWRlIDxsaW51
eC9taXNjZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0u
aD4KKyNpbmNsdWRlIDxsaW51eC9ub3RpZmllci5oPgogI2luY2x1ZGUgPGxp
bnV4L3ZpcnRpb19tbWlvLmg+CisjaW5jbHVkZSA8bGludXgvd2FpdC5oPgog
CiAjaW5jbHVkZSA8YXNtL3hlbi9oeXBlcnZpc29yLmg+CiAjaW5jbHVkZSA8
YXNtL3hlbi9oeXBlcmNhbGwuaD4KQEAgLTQ2LDYgKzQ5LDcgQEAKICNpbmNs
dWRlIDx4ZW4vcGFnZS5oPgogI2luY2x1ZGUgPHhlbi94ZW4tb3BzLmg+CiAj
aW5jbHVkZSA8eGVuL2JhbGxvb24uaD4KKyNpbmNsdWRlIDx4ZW4veGVuYnVz
Lmg+CiAjaWZkZWYgQ09ORklHX1hFTl9BQ1BJCiAjaW5jbHVkZSA8eGVuL2Fj
cGkuaD4KICNlbmRpZgpAQCAtNzIsNiArNzYsMTEgQEAgc3RydWN0IHByaXZj
bWRfZGF0YSB7CiAJZG9taWRfdCBkb21pZDsKIH07CiAKKy8qIERPTUlEX0lO
VkFMSUQgaW1wbGllcyBubyByZXN0cmljdGlvbiAqLworc3RhdGljIGRvbWlk
X3QgdGFyZ2V0X2RvbWFpbiA9IERPTUlEX0lOVkFMSUQ7CitzdGF0aWMgYm9v
bCByZXN0cmljdF93YWl0Oworc3RhdGljIERFQ0xBUkVfV0FJVF9RVUVVRV9I
RUFEKHJlc3RyaWN0X3dhaXRfd3EpOworCiBzdGF0aWMgaW50IHByaXZjbWRf
dm1hX3JhbmdlX2lzX21hcHBlZCgKICAgICAgICAgICAgICAgIHN0cnVjdCB2
bV9hcmVhX3N0cnVjdCAqdm1hLAogICAgICAgICAgICAgICAgdW5zaWduZWQg
bG9uZyBhZGRyLApAQCAtMTU2MywxMyArMTU3MiwxNiBAQCBzdGF0aWMgbG9u
ZyBwcml2Y21kX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLAogCiBzdGF0aWMg
aW50IHByaXZjbWRfb3BlbihzdHJ1Y3QgaW5vZGUgKmlubywgc3RydWN0IGZp
bGUgKmZpbGUpCiB7Ci0Jc3RydWN0IHByaXZjbWRfZGF0YSAqZGF0YSA9IGt6
YWxsb2Nfb2JqKCpkYXRhKTsKKwlzdHJ1Y3QgcHJpdmNtZF9kYXRhICpkYXRh
OworCisJaWYgKHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZShyZXN0cmljdF93
YWl0X3dxLCAhcmVzdHJpY3Rfd2FpdCkgPCAwKQorCQlyZXR1cm4gLUVJTlRS
OwogCisJZGF0YSA9IGt6YWxsb2Nfb2JqKCpkYXRhKTsKIAlpZiAoIWRhdGEp
CiAJCXJldHVybiAtRU5PTUVNOwogCi0JLyogRE9NSURfSU5WQUxJRCBpbXBs
aWVzIG5vIHJlc3RyaWN0aW9uICovCi0JZGF0YS0+ZG9taWQgPSBET01JRF9J
TlZBTElEOworCWRhdGEtPmRvbWlkID0gdGFyZ2V0X2RvbWFpbjsKIAogCWZp
bGUtPnByaXZhdGVfZGF0YSA9IGRhdGE7CiAJcmV0dXJuIDA7CkBAIC0xNjYy
LDYgKzE2NzQsNDUgQEAgc3RhdGljIHN0cnVjdCBtaXNjZGV2aWNlIHByaXZj
bWRfZGV2ID0gewogCS5mb3BzID0gJnhlbl9wcml2Y21kX2ZvcHMsCiB9Owog
CitzdGF0aWMgaW50IGluaXRfcmVzdHJpY3Qoc3RydWN0IG5vdGlmaWVyX2Js
b2NrICpub3RpZmllciwKKwkJCSB1bnNpZ25lZCBsb25nIGV2ZW50LAorCQkJ
IHZvaWQgKmRhdGEpCit7CisJY2hhciAqdGFyZ2V0OworCXVuc2lnbmVkIGlu
dCBkb21pZDsKKworCS8qIERlZmF1bHQgdG8gYW4gZ3VhcmFudGVlZCB1bnVz
ZWQgZG9tYWluLWlkLiAqLworCXRhcmdldF9kb21haW4gPSBET01JRF9JRExF
OworCisJdGFyZ2V0ID0geGVuYnVzX3JlYWQoWEJUX05JTCwgInRhcmdldCIs
ICIiLCBOVUxMKTsKKwlpZiAoSVNfRVJSKHRhcmdldCkgfHwga3N0cnRvdWlu
dCh0YXJnZXQsIDEwLCAmZG9taWQpKSB7CisJCXByX2VycigiTm8gdGFyZ2V0
IGRvbWFpbiBmb3VuZCwgYmxvY2tpbmcgYWxsIGh5cGVyY2FsbHNcbiIpOwor
CQlnb3RvIG91dDsKKwl9CisKKwl0YXJnZXRfZG9tYWluID0gZG9taWQ7CisK
KyBvdXQ6CisJaWYgKCFJU19FUlIodGFyZ2V0KSkKKwkJa2ZyZWUodGFyZ2V0
KTsKKworCXJlc3RyaWN0X3dhaXQgPSBmYWxzZTsKKwl3YWtlX3VwX2FsbCgm
cmVzdHJpY3Rfd2FpdF93cSk7CisKKwlyZXR1cm4gTk9USUZZX0RPTkU7Cit9
CisKK3N0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgeGVuc3RvcmVfbm90
aWZpZXIgPSB7CisJLm5vdGlmaWVyX2NhbGwgPSBpbml0X3Jlc3RyaWN0LAor
fTsKKworc3RhdGljIHZvaWQgX19pbml0IHJlc3RyaWN0X2RyaXZlcih2b2lk
KQoreworCXJlc3RyaWN0X3dhaXQgPSB0cnVlOworCisJcmVnaXN0ZXJfeGVu
c3RvcmVfbm90aWZpZXIoJnhlbnN0b3JlX25vdGlmaWVyKTsKK30KKwogc3Rh
dGljIGludCBfX2luaXQgcHJpdmNtZF9pbml0KHZvaWQpCiB7CiAJaW50IGVy
cjsKQEAgLTE2NjksNiArMTcyMCw5IEBAIHN0YXRpYyBpbnQgX19pbml0IHBy
aXZjbWRfaW5pdCh2b2lkKQogCWlmICgheGVuX2RvbWFpbigpKQogCQlyZXR1
cm4gLUVOT0RFVjsKIAorCWlmICgheGVuX2luaXRpYWxfZG9tYWluKCkpCisJ
CXJlc3RyaWN0X2RyaXZlcigpOworCiAJZXJyID0gbWlzY19yZWdpc3Rlcigm
cHJpdmNtZF9kZXYpOwogCWlmIChlcnIgIT0gMCkgewogCQlwcl9lcnIoIkNv
dWxkIG5vdCByZWdpc3RlciBYZW4gcHJpdmNtZCBkZXZpY2VcbiIpOwotLSAK
Mi41My4wCgo=

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

RnJvbSA2ZjY5MThmZTFkZDQ1OTBlMDBmZjk1OTAwODZmYWIwOGQ5Mjg0MDVi
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWVyZ2VuIEdyb3Nz
IDxqZ3Jvc3NAc3VzZS5jb20+CkRhdGU6IFR1ZSwgMTQgT2N0IDIwMjUgMTM6
Mjg6MTUgKzAyMDAKU3ViamVjdDogW1BBVENIIHYzIDIvMl0geGVuL3ByaXZj
bWQ6IGFkZCBib290IGNvbnRyb2wgZm9yIHJlc3RyaWN0ZWQgdXNhZ2UgaW4K
IGRvbVUKCldoZW4gcnVubmluZyBpbiBhbiB1bnByaXZpbGVnZWQgZG9tVSB1
bmRlciBYZW4sIHRoZSBwcml2Y21kIGRyaXZlcgppcyByZXN0cmljdGVkIHRv
IGFsbG93IG9ubHkgaHlwZXJjYWxscyBhZ2FpbnN0IGEgdGFyZ2V0IGRvbWFp
biwgZm9yCndoaWNoIHRoZSBjdXJyZW50IGRvbVUgaXMgYWN0aW5nIGFzIGEg
ZGV2aWNlIG1vZGVsLgoKQWRkIGEgYm9vdCBwYXJhbWV0ZXIgInVucmVzdHJp
Y3RlZCIgdG8gYWxsb3cgYWxsIGh5cGVyY2FsbHMgKHRoZQpoeXBlcnZpc29y
IHdpbGwgc3RpbGwgcmVmdXNlIGRlc3RydWN0aXZlIGh5cGVyY2FsbHMgYWZm
ZWN0aW5nIG90aGVyCmd1ZXN0cykuCgpNYWtlIHRoaXMgbmV3IHBhcmFtZXRl
ciBlZmZlY3RpdmUgb25seSBpbiBjYXNlIHRoZSBkb21VIHdhc24ndCBzdGFy
dGVkCnVzaW5nIHNlY3VyZSBib290LCBhcyBvdGhlcndpc2UgaHlwZXJjYWxs
cyB0YXJnZXRpbmcgdGhlIGRvbVUgaXRzZWxmCm1pZ2h0IHJlc3VsdCBpbiB2
aW9sYXRpbmcgdGhlIHNlY3VyZSBib290IGZ1bmN0aW9uYWxpdHkuCgpUaGlz
IGlzIGFjaGlldmVkIGJ5IGFkZGluZyBhbm90aGVyIGxvY2tkb3duIHJlYXNv
biwgd2hpY2ggY2FuIGJlCnRlc3RlZCB0byBub3QgYmVpbmcgc2V0IHdoZW4g
YXBwbHlpbmcgdGhlICJ1bnJlc3RyaWN0ZWQiIG9wdGlvbi4KClRoaXMgaXMg
cGFydCBvZiBYU0EtNDgyIC8gQ1ZFLT8/PwoKU2lnbmVkLW9mZi1ieTogSnVl
cmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgotLS0KIGRyaXZlcnMveGVu
L3ByaXZjbWQuYyAgICB8IDEzICsrKysrKysrKysrKysKIGluY2x1ZGUvbGlu
dXgvc2VjdXJpdHkuaCB8ICAxICsKIHNlY3VyaXR5L3NlY3VyaXR5LmMgICAg
ICB8ICAxICsKIDMgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKQoK
ZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL3ByaXZjbWQuYyBiL2RyaXZlcnMv
eGVuL3ByaXZjbWQuYwppbmRleCBhODNiYWQ2OWY0ZjIuLmJiZjllZTIxMzA2
YyAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vcHJpdmNtZC5jCisrKyBiL2Ry
aXZlcnMveGVuL3ByaXZjbWQuYwpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1
ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1
bGVwYXJhbS5oPgogI2luY2x1ZGUgPGxpbnV4L25vdGlmaWVyLmg+CisjaW5j
bHVkZSA8bGludXgvc2VjdXJpdHkuaD4KICNpbmNsdWRlIDxsaW51eC92aXJ0
aW9fbW1pby5oPgogI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KIApAQCAtNzIs
NiArNzMsMTEgQEAgbW9kdWxlX3BhcmFtX25hbWVkKGRtX29wX2J1Zl9tYXhf
c2l6ZSwgcHJpdmNtZF9kbV9vcF9idWZfbWF4X3NpemUsIHVpbnQsCiBNT0RV
TEVfUEFSTV9ERVNDKGRtX29wX2J1Zl9tYXhfc2l6ZSwKIAkJICJNYXhpbXVt
IHNpemUgb2YgYSBkbV9vcCBoeXBlcmNhbGwgYnVmZmVyIik7CiAKK3N0YXRp
YyBib29sIHVucmVzdHJpY3RlZDsKK21vZHVsZV9wYXJhbSh1bnJlc3RyaWN0
ZWQsIGJvb2wsIDApOworTU9EVUxFX1BBUk1fREVTQyh1bnJlc3RyaWN0ZWQs
CisJIkRvbid0IHJlc3RyaWN0IGh5cGVyY2FsbHMgdG8gdGFyZ2V0IGRvbWFp
biBpZiBydW5uaW5nIGluIGEgZG9tVSIpOworCiBzdHJ1Y3QgcHJpdmNtZF9k
YXRhIHsKIAlkb21pZF90IGRvbWlkOwogfTsKQEAgLTE3MDgsNiArMTcxNCwx
MyBAQCBzdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIHhlbnN0b3JlX25v
dGlmaWVyID0gewogCiBzdGF0aWMgdm9pZCBfX2luaXQgcmVzdHJpY3RfZHJp
dmVyKHZvaWQpCiB7CisJaWYgKHVucmVzdHJpY3RlZCkgeworCQlpZiAoc2Vj
dXJpdHlfbG9ja2VkX2Rvd24oTE9DS0RPV05fWEVOX1VTRVJfQUNUSU9OUykp
CisJCQlwcl93YXJuKCJLZXJuZWwgaXMgbG9ja2VkIGRvd24sIHBhcmFtZXRl
ciBcInVucmVzdHJpY3RlZFwiIGlnbm9yZWRcbiIpOworCQllbHNlCisJCQly
ZXR1cm47CisJfQorCiAJcmVzdHJpY3Rfd2FpdCA9IHRydWU7CiAKIAlyZWdp
c3Rlcl94ZW5zdG9yZV9ub3RpZmllcigmeGVuc3RvcmVfbm90aWZpZXIpOwpk
aWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zZWN1cml0eS5oIGIvaW5jbHVk
ZS9saW51eC9zZWN1cml0eS5oCmluZGV4IDgzYTY0NmQ3MmY2Zi4uZWU4OGRk
MmQyZDFmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NlY3VyaXR5LmgK
KysrIGIvaW5jbHVkZS9saW51eC9zZWN1cml0eS5oCkBAIC0xNDUsNiArMTQ1
LDcgQEAgZW51bSBsb2NrZG93bl9yZWFzb24gewogCUxPQ0tET1dOX0JQRl9X
UklURV9VU0VSLAogCUxPQ0tET1dOX0RCR19XUklURV9LRVJORUwsCiAJTE9D
S0RPV05fUlRBU19FUlJPUl9JTkpFQ1RJT04sCisJTE9DS0RPV05fWEVOX1VT
RVJfQUNUSU9OUywKIAlMT0NLRE9XTl9JTlRFR1JJVFlfTUFYLAogCUxPQ0tE
T1dOX0tDT1JFLAogCUxPQ0tET1dOX0tQUk9CRVMsCmRpZmYgLS1naXQgYS9z
ZWN1cml0eS9zZWN1cml0eS5jIGIvc2VjdXJpdHkvc2VjdXJpdHkuYwppbmRl
eCA2N2FmOTIyOGM0ZTkuLmEyNmMxNDc0ZTJlNCAxMDA2NDQKLS0tIGEvc2Vj
dXJpdHkvc2VjdXJpdHkuYworKysgYi9zZWN1cml0eS9zZWN1cml0eS5jCkBA
IC02MSw2ICs2MSw3IEBAIGNvbnN0IGNoYXIgKmNvbnN0IGxvY2tkb3duX3Jl
YXNvbnNbTE9DS0RPV05fQ09ORklERU5USUFMSVRZX01BWCArIDFdID0gewog
CVtMT0NLRE9XTl9CUEZfV1JJVEVfVVNFUl0gPSAidXNlIG9mIGJwZiB0byB3
cml0ZSB1c2VyIFJBTSIsCiAJW0xPQ0tET1dOX0RCR19XUklURV9LRVJORUxd
ID0gInVzZSBvZiBrZ2RiL2tkYiB0byB3cml0ZSBrZXJuZWwgUkFNIiwKIAlb
TE9DS0RPV05fUlRBU19FUlJPUl9JTkpFQ1RJT05dID0gIlJUQVMgZXJyb3Ig
aW5qZWN0aW9uIiwKKwlbTE9DS0RPV05fWEVOX1VTRVJfQUNUSU9OU10gPSAi
WGVuIGd1ZXN0IHVzZXIgYWN0aW9uIiwKIAlbTE9DS0RPV05fSU5URUdSSVRZ
X01BWF0gPSAiaW50ZWdyaXR5IiwKIAlbTE9DS0RPV05fS0NPUkVdID0gIi9w
cm9jL2tjb3JlIGFjY2VzcyIsCiAJW0xPQ0tET1dOX0tQUk9CRVNdID0gInVz
ZSBvZiBrcHJvYmVzIiwKLS0gCjIuNTMuMAoK

--=separator--


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 12:50:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 12:50:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260752.1553959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w51DT-00042A-9R; Tue, 24 Mar 2026 12:50:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260752.1553959; Tue, 24 Mar 2026 12:50: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 1w51DT-000423-5X; Tue, 24 Mar 2026 12:50:39 +0000
Received: by outflank-mailman (input) for mailman id 1260752;
 Tue, 24 Mar 2026 12:50:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w51DR-00041x-Ou
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 12:50:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w51DR-0016n4-1K
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 13:50:37 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c2888a-bab6-0a2a0a5309dd-0a2a4507e84c-34
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:50:36 +0100
Received: from [40.107.209.4]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c2889a-fd74-0a2a45070019-286bd104bc5a-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:50:36 +0100
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA3PR03MB7318.namprd03.prod.outlook.com (2603:10b6:806:395::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Tue, 24 Mar
 2026 12:50:29 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9723.030; Tue, 24 Mar 2026
 12:50:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Vp6VTSAL0xbGOQvfSeA/3iupGzWES+QLMF1xGkiuNTPVcrMH2cPxWsOvN70w2qwMueTepOwCDU/5gENtsOV1PyH5QBL0yeu/DP72deeI4UnFmh8RLTmBpg7urtLHyu4eq2yyVZ/3ZB5nahJ2ZseOmXYHVbjiTI49hteDmPwECljcaCrn4U6Dkkgll/h9GLLlP5fdkVRzY1lpxa0w4RbTlPU4+dQPHmPR3vKsqrad3Xg07V8QREwS0/dz1Ir79YxczJKnG3tkyIUsJn0TQps+g3ixMUqocMOttXX6VC0ZvopGhGyBGSjAn6nCop12FN2mWU3s22IPOuNmast72KPbmQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=titZYvq9gVWep25ap3pPF9wgZy59OhvNTTW1t1nOmiA=;
 b=rk4bw486wCZGhWYNQzRYj619YlFGfGG+knDXgEuIEpIJOaRsN29obDVRp3zeNx4KRCN15Uau3WhUjQuYK5BJig7mx7RR78mAJQihGy6/7F5oc+e5tdkaRf3KUsJvUcyTBrLS0fkz/B46VrGE1vfskoMycrSmPq3UVEPKlJyXZSTuDDlJ/AWvzOydytY1RHZ0JiAl0sJlxpsMpgfXWvdrjW7eqUWjw6hgwx8Yy7hyIRXMsHs5qujRH++WQziSqcgqmKZCyLKWB3DGU7XcLL2bAcbGf2fBYEJZr1nBTlvsF+EsZfw4sXU/CJTH94ZG0ojAP7J7wr5nZA3sOQaml8056A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=titZYvq9gVWep25ap3pPF9wgZy59OhvNTTW1t1nOmiA=;
 b=zctObK2PTsSC2KeQAwGtf7ETwDM0ndHc6ZISaHtDGyemB6lFtgLMldI613BAslFKBDzxsWPwLIkKLEFzbWk2p4Mi2e5Q9jrT2yl6wFWjZHD+0DZIYgYr45FH9fh9BFbHp2l2OzB4HzY+MoT/YNGgm3rQ0xf/u+y8UaxLox7YRCU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <8c64e93e-cade-4c25-b8e8-cd23028628e4@citrix.com>
Date: Tue, 24 Mar 2026 12:50:26 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 1/4] x86/kexec: Stop hooking NMIs with trap_nop()
To: Jan Beulich <jbeulich@suse.com>
References: <20260319122549.922724-1-andrew.cooper3@citrix.com>
 <20260319122549.922724-2-andrew.cooper3@citrix.com>
 <c2129389-cc61-44bd-a680-c75b05725749@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <c2129389-cc61-44bd-a680-c75b05725749@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0114.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2c3::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_|SA3PR03MB7318:EE_
X-MS-Office365-Filtering-Correlation-Id: 06dc0659-b5c3-4edb-1803-08de89a3e7cf
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|18002099003|22082099003|7053199007|56012099003;
X-Microsoft-Antispam-Message-Info:
	EgYMWE1iqrkjo6NWT2qo4YncyVoDR89D1P4yMU071PlZTXnUCP8dCBeycT+l546q6x6OeQ1Ink+ljBRdy5w/NkHXDpBAM5UjlPkG1CFZ1oqLSoT0H/+Z19TPR5GwNgzohA2xOqw/8wsPbTldHpXic1wqCegIKQiAMiMQOswFCf+UO8/gqFpkt70WhM78o1sNKKH09u4TyJnZ4Up5oghxVlzJ/+vf5PqqAPnMJgjwMrcbQPo9rRu/e/Mgi10RGDFUeDBpNTDpIAQp2TQxDsdj/2C01Eh9fGKv0rPQQzgC6i87m/qD9dOFTUdOrFJm3AGFvJ7UfB0AdzvudpcM2SyoseRbhZVxkvZFQZE90h/ztLvab7KwhHqTiXEDIxn2nF8Kg7MicLTl1egB9AetPK9lKazPPKlVLHRe5EB9HNjkTXJ0PNxv01McehHgwB/bSXn2LwXp6rahB4dCZ5MQUFxPrcq01Ut1INQhkQUkOGUg4a7Q6RPi0qPTHY/vTQVekMGL1fDL8ov8TNs3o2rWqMKw2m0q1Ucf5EEkgxQs7BTFUhmaD2SDz6Rlp0wbZb3i7CxiIlZ7MTaYUWYDhCQ40GXlMQX/AQDe9csfsmyrRItRieTK6R6czXQFsOh4uhGNDb6RoHOp+DZ7TUepv05CMVeszFrOJf736w15NjhVh5zQXuPtY3A1YDNzWzmAO274Pp6tZ9KdkDGds8Nns5sz8GtHfHgGe5Fu2BUmt7bwn2T4zLM=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(18002099003)(22082099003)(7053199007)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eGlWRDZaNFg3OVJIbUFZQnh5Y04ybklLNHJ1UmRxTnpqZW1mYnlhY0VtNVdu?=
 =?utf-8?B?U2NXRUxuMXJrR29UdDZ6a3QwSU5OZkF5NmxnNkVVMm9KYXhTUmVFT1dwWU9r?=
 =?utf-8?B?QjYzUWdMUE5RK25EeTc1TXNXejhzRjIrTUFGQzVPYm5obzhXWUlCT2VrT0w2?=
 =?utf-8?B?OHd4SHdQZVdyTTBwcEVlbzJIV1UwZUtCdGI0VHdzL09wUmVSMmZyUUJzdzlG?=
 =?utf-8?B?YS95ZFFnSFc0bjhibXVENm51NVRmVTNoeXlwS1BoZDM1Szhsd0VSckNZUEFE?=
 =?utf-8?B?eFhHVHpicmV3YVF2WVNiNHAwZzJ1RlRDeVgxQTFVUG5PNzZNNDRGR3dzMElB?=
 =?utf-8?B?L3ZrSFlrNnpDQkZLRCs2YTllM0VBcGdHN1REbzlQOFdEYzRDUWpQclhXS3BI?=
 =?utf-8?B?T2lmeFZTa3Y2a3BWZDB4alo0ZE42RG1hZTEwQzVEbm9iK2dQSkNRWlBJdEpm?=
 =?utf-8?B?WmRaQlhXSHJUNkpPQzgwZThYckhsa3ZJUzF6M0RabXVGZVU2Mmdlb3lKeUtS?=
 =?utf-8?B?dFkwQ2o4ZkVGNnRzdjl5ZzY3T0tqV28rVS83ZTlIV0twbUhEcnlBVzdOelVT?=
 =?utf-8?B?bHNQVitDVGRWRjMvdjc2MWRIaXBqT1pPd0RiZDY0WS9EK2dWdk5ITVlWVXVT?=
 =?utf-8?B?T2tuc3RYb3VXWkZRa25NOXc0NHBSaVplL2NZQUZLN0dEeVd1U2FTOUdmYksw?=
 =?utf-8?B?OTFwakdRQmswWWFaTG1NcStFallqbkovMFEwSVVqVWw0dG5OWGpxUW1ubDJY?=
 =?utf-8?B?ZVZWOWlrZjk3RkRtQUd4MEZSRnB3ZzZqWC9EelBMR1FRZXd1eHhmODJwaDV4?=
 =?utf-8?B?NVJIVDFzU0VvVWo1ZmpYWkN2alk0WGtSbG05SktMUDRCbjN6c0NHOUdZaFJZ?=
 =?utf-8?B?d1Jla1ZXZUhRTzdSekNRd1J3WEdXdzlFaVNWYnBSTkJ1VGRTeVgrOHpCdWxU?=
 =?utf-8?B?cUxWcTk2eGVmMlhSZStQY2lZVWNSTSszUmFlb25HNFozN2JsRGl4VmlMMkxk?=
 =?utf-8?B?Wmx0VWFmTXdyMWFTZDRpY1ArdXZ5QUtIa2IvMnQzSGZsWnpRQ2dzYnFwMXZG?=
 =?utf-8?B?QlUxZVp4T1BXUGMvdVRmdzFWeVNBNjJrdmhWQjZkNUUxUkZxanYrbmFVeUxV?=
 =?utf-8?B?ZXIrYTYyWnE0NkdVSGMyOHAzUXowWGJ0ZEJHQmpnY3FxMW1SRmtjeFEwdThW?=
 =?utf-8?B?dVRLREVkYWJ2SWpCS3R0WEgxSGRhNC91OU9sTWg1ZCtRYnlEcllpWUhrNm9h?=
 =?utf-8?B?R2tMRlVLQVVGbGNvMFNNc1lLelFzemgwZUlycG41bmtHVnpYS1BzOTZtaE1U?=
 =?utf-8?B?bEF2bnkyUk13SU5TMWRnblA5SzJNVytiTERYYVhkNjhKbXVLbTg2cnB2Q1lC?=
 =?utf-8?B?TjhteGFWcldQNkNlRVVjZi84eVU3N2Z6VmZJOVBvaHJpZi90OXZXWUFXNjFk?=
 =?utf-8?B?QUh1MjNJRTJ5RXJYNmxLQmVSOWVlVDh4NXovbVVzanU5Q0hPRzRkelJTcTJJ?=
 =?utf-8?B?UzJIYVVsUUE3eHN5VzJJVTN6V0hoekkwNHlKMU9hRXFRN2pFeDgxbDVrWkJ5?=
 =?utf-8?B?eFI4czVsZzVna1h3M0VubzRCdHc1ZE8yZDZRSWpoSnF6YnA5aDQwaWIwNkJQ?=
 =?utf-8?B?VElQWWVUKzg0cTVyNE0ybjJSOWVlZGVjaTZ0M0ZCZGJ3Yi9JUzNSMFp3WERq?=
 =?utf-8?B?ZXQ1OFdwRUVHbEV1TXVYQlp1L3VRRllackdCeU8vaTZQWVhob2p4UVptVWYz?=
 =?utf-8?B?M1htM01YNUxuNkhTN0c2WDgwdlpwSzNVRVJWTjNnZWd4NkRadFI3aDhrSnMx?=
 =?utf-8?B?MTlJc3RHaHlQSkFWRnVVbk5QbEFrYlN2VWVMR3N5YW1EMjNZeWdwK3pwck5J?=
 =?utf-8?B?VE5Wd0VSQWhDcHdsaklWZXNQTmEvRjB6d0ZsdC9mTTJYUWJnUmhhOFFIOHY2?=
 =?utf-8?B?UjF3enZMQ09aZE5DT2ViNjdoQktmb1NwaVA0ZEY2Mis0bEswZnhLQXNoZ3NC?=
 =?utf-8?B?SzZhbVBoL1FFd0Y0eElCYUhwZjkyaVo5V01HYXBCdmlXU3grMytzQ09GTWR0?=
 =?utf-8?B?VUpjZzh0UTdaQU1namtFMDE5bTkrMXlDc1NrY09XYmYwWVV0ZEh6Ykg4STRy?=
 =?utf-8?B?MDNoYkJEekJCYVlPem1KYVRWUFNNZ005SUlmbCtRY2x0ZXdFZkpkN1VnYy8w?=
 =?utf-8?B?aWlxeXQ1VklGQm01c1N1eWdFRmhJZW5uUEVXaTFnQTlrK2RwdFJTOTU0dXl4?=
 =?utf-8?B?WEZaSnZtOC95eU1NTFEza1MrWVo2QXlyVkJoYS9BK0NTSCtRelJubFpNNVR1?=
 =?utf-8?B?cHZ5YWx0dEF6V0RaVHI0Wmt1M1E1Y2U5bkdDY2RLYzNYYzl0dzVIdFBvbTR2?=
 =?utf-8?Q?avDLnvQ9asywEZ/I=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 06dc0659-b5c3-4edb-1803-08de89a3e7cf
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 12:50:19.6678
 (UTC)
X-MS-Exchange-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/BWuPWXfNqkYgOmm4LkXEYaHTuAxbBs0PnvTptEdAh8LqDq8S3mIjOG+GdDdXNKog1yPQtAZ4FLZxQ80BFCqRdJ3OwDfGRvQZt0MZ3bjoU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR03MB7318
X-purgate-ID: tlsNG-ef75cf/1774356636-4E4AE303-1CD0870D/0/0
X-purgate-type: clean
X-purgate-size: 2150

On 24/03/2026 11:52 am, Jan Beulich wrote:
> On 19.03.2026 13:25, Andrew Cooper wrote:
>> When FRED is active, it is not possible to hook NMIs like this.
>>
>> NMI hooking in the crash path has undergone several revisions since its
>> introduction.  Notably since commit e7f147bf4ac7 ("x86/crash: Drop manual
>> hooking of exception_table[]") we use the regular nmi_callback()
>> infrastructure.
>>
>> Instead of asserting that we don't enter do_nmi_crash() on the crashing CPU,
>> tolerate it and return early.  It's a marginally longer codepath but behaves
>> the same and is compatible with FRED.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>
>> The other use of hooking the NMI handler like this is in play_dead() and
>> introduced by commit 73cb1383bf8d ("x86/idle: re-arrange dead-idle
>> handling").  It's unsafe, and the commit even mentions so for #MC.
> Why is wiring to trap_nop() unsafe?

I meant unsafe in FRED for the same reason; trap_nop() doesn't make the
NMI path safe.

> For FRED, shouldn't do_nmi() then gain a similar early exit for offlined
> CPUs, replacing the IDT editing?

That's not really good enough in FRED.  For starters it doesn't cover
entry_from_{pv,xen}().

e.g. I've discovered (the hard way) the problems of putting printk()
ahead of NMI dispatch when testing NMIs.

And there's still an open question about #MC in both modes.

>
>> On x86, we simply cannot free the per-cpu block for any CPU that hasn't been
>> put back into the wait-for-SIPI state.
> Please remind me, is there a reason we can't put CPUs we have offlined (not
> parked) into that state?

INIT clears CR4.MCE.  Any multi-target #MC (even non-fully-broadcast
ones) which includes this CPU escalates to SHUTDOWN.

Also if you INIT any CPU the system doesn't like, you get SHUTDOWN too. 
Doing this to CPU0 is guaranteed to SHUTDOWN.

One fun issue I found doing the AMD Entrysign work was that firmware no
longer hands over to the OS with the APs in the Wait-for-SIPI state;
they're typically handed over in Mwait.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 12:54:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 12:54:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260766.1553968 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w51Gj-0004nP-MO; Tue, 24 Mar 2026 12:54:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260766.1553968; Tue, 24 Mar 2026 12:54:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w51Gj-0004nI-JI; Tue, 24 Mar 2026 12:54:01 +0000
Received: by outflank-mailman (input) for mailman id 1260766;
 Tue, 24 Mar 2026 12:54:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w51Gi-0004nC-Es
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 12:54:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w51Gh-00CfqM-R3
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 13:53:59 +0100
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c28961-e002-0a2a0a5209dd-0a2a45099936-16
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:53:59 +0100
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c28967-e484-0a2a45090019-d1558035ec7f-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:53:59 +0100
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-486507134e4so15393685e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 05:53:59 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b647120a1sm39593421f8f.30.2026.03.24.05.53.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 05:53:58 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774356839; x=1774961639; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1kUb3qpcoojKN/ymsVn7QoE7+RGUkdewFnZZ6zFhVCI=;
        b=NhUwolTA3JTHki/uERRi265iPQBdER8Mw2JCh3y7ERo5OFVQexz28gQfkfv+5MygXg
         kaSFez1xGVl4keXU3cZzS8amnExwHbZkXGm/krI9eEytw8wF9C+0gUNbuWXf97FL8fTT
         0VkoiQBz4k3exGMo5ZgjlLoxD1hHMEAuMGLpTt+EuJar/XQOKU7asbN8MaZ/jz5xOCqb
         lTb+20mb0qlfYDDQfWhYVr+IrybBrTwdCzjJr4lfNdoUaNEJ0+vmzf2tNF6LA+paXqR8
         xnD9SCIDBm80Gl30rRd3sDSKskvOtjD1v/YB6KHQ8k3ZgOnNZqkHlS+k7LYUjCZB3eH4
         pHBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774356839; x=1774961639;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1kUb3qpcoojKN/ymsVn7QoE7+RGUkdewFnZZ6zFhVCI=;
        b=BzkKRF9676vHYKxiQAGu/vCn7/XyTRe93VWxXnhEJdTVw2uskFOIY6W8HMbqPzkGad
         Qbg1WKhN6b1/tcJ/2XRMARIG0lClclLieL1lkEBQK+VvKhY84+79+6OEqERe/l2czK8E
         ItnnsYxkK9u+REvYikSh8Z8CJrUDVlKvkw7hKng1wQNB0hhwZ3YzMe5K0gwCk5gDzvx6
         bNVuSuOdZRA8U+FpZ6D84SKvLuia8C6zxBkr7pNln/M1+Fq8FQp2zpYYa8GHLNGvm5Zp
         97mNr7l15UK+WhreAihhMs8naLRXzwX1QMYOoyI5LHilxloZY2nqx0O927ENEJf8VYJ5
         Zw1Q==
X-Forwarded-Encrypted: i=1; AJvYcCUBlENDxqHtUHeZCrsw/KHc/z6gGkmEQ7JZZFmSyMe5o4mPKAgsVV/ddLjln96wweRGBYCggIrWA5M=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwuAmxTEd05eG7iolK7E8ZG0oII+mYzGIPfQaBAi0iiE8+e6/v4
	N/XIMfdDD4DoWdQdtcddhsbl8bXhxMl10ALH5yy1eH0m2WU+jS7rhbMnUFv6O6b+IA==
X-Gm-Gg: ATEYQzyj8XfoDphl/QMrID72nuhNUML/Lbe19QtrJQAstIqAopzjrIvBhejCHElDav9
	xKFGAUu0qIJHGT6WMywez+IayMRLlboIHlhnO1gWAt7JrC6CYoDXL9IId73UTc3wKkuoc00UBnY
	1gYxbk4240P9XEm7ro1dN8T8NP2K6GAzrKXcJ4SA7UqeAXYC1alYIR1MhnyBun8r5p2B/nt7j6G
	kMnt4/bWWXz3UWLhKyNgjMFduuSiZZdG0dxjbypTYQBkf26HxdXgrUcVQyTrduKYRbpVhwiTe/q
	cYxHgaDgE9epEKRUCIaWBDHJypo8sW/zl7f0UbSl/AZPJrTIwz6SlxPwWZGEi0Bs+wWzo7ZiT8E
	lQy0gHasGRHBhjXC9gLkDWpUCyHoeN62dh1R1vo7795xT/tuX6THajtlHT1XonJxxb+kvcWQScu
	0leDZoNqOd3MP1XHj6KDKiCqZ17u3g4fjJQtgs4qaf1HbWwnxcUvqnX8A2poWxBs/cuccEpGs6W
	UBTwknYOoa6C3U=
X-Received: by 2002:a05:600c:8215:b0:485:4388:348b with SMTP id 5b1f17b1804b1-486feb5a3camr213688305e9.0.1774356839052;
        Tue, 24 Mar 2026 05:53:59 -0700 (PDT)
Message-ID: <3882d56e-def9-4ff5-9014-f72e80c7a1c8@suse.com>
Date: Tue, 24 Mar 2026 13:53:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v17 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1774353053.git.mykola_kvach@epam.com>
 <581179709977ce4cebb22597411048dc93b11167.1774353053.git.mykola_kvach@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <581179709977ce4cebb22597411048dc93b11167.1774353053.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1774356839-5B4A7A73-0109133C/0/0
X-purgate-type: clean
X-purgate-size: 478

On 24.03.2026 13:26, Mykola Kvach wrote:
> --- /dev/null
> +++ b/xen/include/xen/suspend.h
> @@ -0,0 +1,25 @@
> +/* 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 void arch_domain_resume(struct domain *d)
> +{
> +    (void)d;

What use is this? None of our stubs does anything like that without a clear
need.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 12:58:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 12:58:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260789.1553984 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w51LM-0005go-9Q; Tue, 24 Mar 2026 12:58:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260789.1553984; Tue, 24 Mar 2026 12: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 1w51LM-0005gh-6X; Tue, 24 Mar 2026 12:58:48 +0000
Received: by outflank-mailman (input) for mailman id 1260789;
 Tue, 24 Mar 2026 12:58:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w51LK-0005ga-VD
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 12:58:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w51LK-0093Uq-6O
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 13:58:46 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c28a7a-2eae-0a2a0a5409dd-0a2a4502daa6-46
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:58:46 +0100
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c28a85-63bb-0a2a45020019-d1558036d81f-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:58:46 +0100
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-4852e9ca034so36811235e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 05:58:46 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4870f80b757sm20287055e9.7.2026.03.24.05.58.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 05:58:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774357125; x=1774961925; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=C+Eq44OLRVX8FgGXbGxaWwoDXEk+NHV+AxFtThtytP4=;
        b=ZurTXEVT4FKcOGAKgxKUX2mgv3tcgvzIZNhREjBAX0Uwib5QMdgV2zsOd8BrPGrfmx
         bKu6uQWU1SUVnB2dspILfdJR5OjM27Bmrg0ra83+1c+89ETNS8/bJomwVVYRLN0Z3ZZk
         KiS2zO4RUD2DgVedWZzrd60pXPkCC6gcoKH+6nhZKfbRW5aKebgqZn3z8Z1j4fmtYexs
         0B7e3A9OT30BgFZREbpSZZr9VbG4/KQ4jRQhtWZ5Bi3XT2R16xd/eUa29+iPyy8flh/z
         4nkUPzmUdRNdOA1+B/NFa38Vzpcv6sF1TCLPZB+M1P4cuQBjpGOrJCRlypYPTwcI/Phg
         m5pg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774357125; x=1774961925;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=C+Eq44OLRVX8FgGXbGxaWwoDXEk+NHV+AxFtThtytP4=;
        b=NKhv4Kwox0DZ1N377f7dGWyH04Z54/zq8CL7I89c4VPR+QlxIvTYeKk8yF03wyu9Ck
         sbm+u1sIHQQ3w+dZYBwzzo+RNQBNjd3beUrpt12FK4Wi7k9r0+u3NKk4yec8WllKhtUI
         IjVBS7fyYkwUbr1XaujtW9ZpFKWIyoNIaM979iu0Smx0+CKslaKBZo/EnmkHi2MMUCW3
         5NLS098b5AbaOs8kMXvRoDJ3py5GJjr/8I71xIvyHfmC5zAqsH/GKFd+/QDbvyZ+wMkL
         0IcF/tg7NapAMjQwdsB62x28bOTksd8Mr5LRqT0RYKAoKK73OSeztrz2lOQNu+oqbOZv
         DKSg==
X-Forwarded-Encrypted: i=1; AJvYcCXV7HRa1eu4A81o7k2jiwpBVkSywt5TmZM4SRcR9vEUeu8Z4n6dDKwA5TMFN91MSAE+RV+PJh4+ku4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwmVphmWewfaOuQvMR2enGBq1AM6TOvdZ6BUm2kkpackKUR3zRb
	CI2Lo8Kehf9Dcj8KndzUl6SpO4xM49s5S1UMmhazV0TWiWm/HvRMVsRvbLVx2mrOGw==
X-Gm-Gg: ATEYQzzquJ8m82nx7IkIYUeQwb8AJNU9fEbvyc6tTr6Gxxta/T+tLdVZnOht/Bs+Y7B
	3WwgdN2dR0UIJoe4lEHPBEa5wdGwVEyn5RYeaWNEGCiNH4CCOmII+p2AJr2XGGFFBk8y+xh1b3L
	trQWU/ghbOP2OJ4eNEzpHZzHE/qA6BJcuHjsxQP9I5Trf52oxk6KwzvUUKoy8qgXXJL8qEn1Xo6
	dCAjtMNTzOWQvvnPS0HWXjdz9655+Hp/45PHcpCg+Lb532V3hHPAzAs8j8ql9RwZHp4TnQksgAD
	w6pq1nfQhZn+dCre/iM0/7+BhVy1a7YwY5JyksGsD+7dsUH/LZM/ZdP5UMlqRA31KyNVssx9+la
	aPc2bUea5yIdz8UeP76oLj9nYQSaPpMtmWlkd7RIPZeSr1VuaAvKrds1AmgFcGqhgjQIioz7J0L
	snpufUKSiGu8kBtQcl2+ZNyWcOi6xtgrjHgx+7J++kAwIxgPI+3oXx0cBMWN+b2PeJCsy/k+LS2
	U/uFu8iegjfeYM=
X-Received: by 2002:a05:600c:8b0a:b0:485:4136:99a8 with SMTP id 5b1f17b1804b1-486fee0fb9emr222399445e9.22.1774357125594;
        Tue, 24 Mar 2026 05:58:45 -0700 (PDT)
Message-ID: <2fa30970-f2c9-44a4-99b6-cf5e22910f26@suse.com>
Date: Tue, 24 Mar 2026 13:58:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/4] x86/kexec: Stop hooking NMIs with trap_nop()
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: <20260319122549.922724-1-andrew.cooper3@citrix.com>
 <20260319122549.922724-2-andrew.cooper3@citrix.com>
 <c2129389-cc61-44bd-a680-c75b05725749@suse.com>
 <8c64e93e-cade-4c25-b8e8-cd23028628e4@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <8c64e93e-cade-4c25-b8e8-cd23028628e4@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1774357126-BFC8BDB8-6F45585D/0/0
X-purgate-type: clean
X-purgate-size: 610

On 24.03.2026 13:50, Andrew Cooper wrote:
> On 24/03/2026 11:52 am, Jan Beulich wrote:
>> On 19.03.2026 13:25, Andrew Cooper wrote:
>>> On x86, we simply cannot free the per-cpu block for any CPU that hasn't been
>>> put back into the wait-for-SIPI state.
>> Please remind me, is there a reason we can't put CPUs we have offlined (not
>> parked) into that state?
> 
> INIT clears CR4.MCE.  Any multi-target #MC (even non-fully-broadcast
> ones) which includes this CPU escalates to SHUTDOWN.

Wasn't there a difference between AMD and Intel? After all the above is why
we park Intel CPUs.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 13:02:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 13:02:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260804.1553993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w51PC-0007JZ-Q6; Tue, 24 Mar 2026 13:02:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260804.1553993; Tue, 24 Mar 2026 13:02:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w51PC-0007JS-NS; Tue, 24 Mar 2026 13:02:46 +0000
Received: by outflank-mailman (input) for mailman id 1260804;
 Tue, 24 Mar 2026 13:02:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w51PB-0007JD-VZ
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 13:02:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w51P9-009084-Pc
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 14:02:45 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c28b72-bab6-0a2a0a5309dd-0a2a450a9c60-14
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 14:02:45 +0100
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c28b75-1772-0a2a450a0019-d155802fdd92-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 14:02:45 +0100
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-486fd5360d4so14055455e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 06:02:45 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4871105c58csm19052325e9.15.2026.03.24.06.02.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 06:02:39 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774357365; x=1774962165; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Sm8ZAXFtaxNLt/VJTmE8EsmmTBmd/BSmvU4fLsZosyg=;
        b=eo7bQNXrV4NqlzyX66fK6z6sGAKCSKJjrlzv/jaxSd7D/JdhWzmsct2HLiXH+r2fND
         epaEc9Z24YjNhvppXWVJnAuDFBtpDmtgwljj8LXsB/j6Wjpk39SPuQtaBdmL4JIzQPgN
         vn//vvFMdo3PWQ93GyTRXOSgt+iwoirKgpEPIFuMqS3hCRwzP+9KW6JKFG7tFHpk0h3R
         BAESvjjVTVnmvu6O/o63ex8TgORtQ8ETi4ZC5KD11/IEbRZTd94eiIND7c7Oo1vYkDBz
         fBF6tfNOHnomCIz9F1nX7jnJR9qwsW2IuvLZj33fMc7RuZBdL998g8/SQQ6Ix7DywhYH
         Z4Sg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774357365; x=1774962165;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Sm8ZAXFtaxNLt/VJTmE8EsmmTBmd/BSmvU4fLsZosyg=;
        b=rtfKdfS18PLBtVQxdKlNbjgvhnnEJSkdxYL3ItUPcRLj11A9hy+rKr3OXs0lpnPOSD
         i6vduIcPnwlv7pfeRn3pP3tFH8p2iGAumMBz44zggJyKRLLS5nJp7nKGKhyE11MGJLii
         Evgcf2bJOGb2dcjbgkHtv6IebjeSWRTjOvwEvzxSHQF/wrwBHuQJHB55a7mOFppfb+NY
         CHRU6o5A2+SNeVqQcT/bnl9qbIDysvCu0bNr2mD5b2hbg+ypIuju/03kSnj0mSHFi7d7
         DFBO++RLfIZglkNaZxGDBAMUYA9t6S+URdTnDiYp5z2uPQj6Bmpdd+n4lhAbfAaWffRU
         QVtg==
X-Forwarded-Encrypted: i=1; AJvYcCVyORWiHtXjhg/ksRAJCkrdMZrRKVBQETiyIjfASf/gY+q9gnbnvdYKlxCL4pbZU9iPw/yvNq+Bli0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzbKVv77ciRYUlumOQZ/t308qvN+P9K2HSYZzKgcqPxsLRD9mUS
	WZG3n++7v3zNcxDC/tuO/0DLgL2K+2z8AQ3ApcgfJBet9Z2WWMJCAAldpLPcgXcwuw==
X-Gm-Gg: ATEYQzzxtSVWNz1hJxbIwB2Bj8XbTKpjobgW4rj3WfWSL3gIhTHcQt1Ugex6J8m3DFt
	M6n+fBGByk3qXu35G+Gl1IAPrFJRnAVWtF1KKD8NKIOFUDXHOpp5UeDpW4EH7yNEYje+l7ZOY73
	v5eN5lkstg6REFC47gFXuiIeFFq3xsOTA3xY+gNmrcEpwy5gc+cHyjJFUOQeyFPvtjDAYwZRsl5
	bGbvpGsI3oxWvKagh3d5JQAbieTuszIkdVwB5wCXhzSSsmjeuBrfSdvtP47IQ9jpWTmp4/xTzTS
	RvGjnWV5iwdSpy1CIUxuKf+u2rUGztCJLZSLBhjaLIjM4x3aYJpo8TmS4VQowftVnij2/Jzwlfp
	lDtb+CCHkTeKg7UPt4w8uqtp8PjZfRVzGr1YtskKB7f5LjooyVMVa3YW/vOOe6YpBMQ11NN1ak9
	+iajb4sHT2WhR/4zjGSF9UsdZbtfS1+XISSecJeQVHMeN9cAtAZlyNmhO0bLzzLGeTkBoJtK/2y
	kLyej5sk8C5FmE=
X-Received: by 2002:a05:600c:608c:b0:487:1114:d42f with SMTP id 5b1f17b1804b1-4871114d526mr32910415e9.1.1774357360131;
        Tue, 24 Mar 2026 06:02:40 -0700 (PDT)
Message-ID: <5f4f64fd-f0b3-40f7-9026-be9d908e6898@suse.com>
Date: Tue, 24 Mar 2026 14:02:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/4] x86/kexec: Fix and expands comments for kexec_reloc()
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: <20260319122549.922724-1-andrew.cooper3@citrix.com>
 <20260319122549.922724-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: <20260319122549.922724-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1774357365-BE892900-B0EC86AE/0/0
X-purgate-type: clean
X-purgate-size: 274

On 19.03.2026 13:25, Andrew Cooper wrote:
> The order of shutdown is delicate.  Explain things a little better.
> 
> Fix two comments about leaving Long Mode.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 13:10:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 13:10:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260821.1554003 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w51Wk-00019o-Lh; Tue, 24 Mar 2026 13:10:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260821.1554003; Tue, 24 Mar 2026 13:10:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w51Wk-00019h-Hw; Tue, 24 Mar 2026 13:10:34 +0000
Received: by outflank-mailman (input) for mailman id 1260821;
 Tue, 24 Mar 2026 13:10:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w51Wi-00019b-S3
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 13:10:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w51Wi-0096mb-7f
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 14:10:32 +0100
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c28d42-e002-0a2a0a5209dd-0a2a4509e052-12
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 14:10:32 +0100
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c28d47-e484-0a2a45090019-d1558036b8cc-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 14:10:32 +0100
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-486fe655187so50221755e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 06:10:31 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487116abe8esm53772565e9.4.2026.03.24.06.10.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 06:10:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774357831; x=1774962631; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=z+6IO4QYdPiC4ntRFBdIAN2hT1NYIg/s5TcpclHkt5c=;
        b=WWvHZCYPw+AGPaTlwAgFbWofX4FnBLSJtq8jg1j3D798QQc4OfYJP8SlxR9NPbTHTq
         RxhZ8gOTR+75f5VKXc5GHYA0btMZhe1d+9jjAHfy9ZZEO+QDq65aB9J90LMvgp1VY4q5
         ZiErbXaqnHuadYmMh08Ubtmpk/GDOPf+ef++IO2Pr/7oOUZTnssDLVSYp6a+4/3EZeBM
         cPUygHh1OMsVuy9kr66+U6Vv790bOQ6yT7C/FMG1mP6Z52+AR0Yha9I/6blymQ/HxC8O
         XsJ0imgzapKgKfGk9HKtjChPnAx4/xEXCEKWXSyCLy5D3p+9YdkUsQg2fNCd04uWeNKd
         QLPQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774357831; x=1774962631;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject: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+6IO4QYdPiC4ntRFBdIAN2hT1NYIg/s5TcpclHkt5c=;
        b=lZKO/2UUKMDqn5nRRzWHo6NPPMj2gWWRUn4xRDiWn10XHaUHKQjBZC0eZ+WgXzmnrz
         F+w/mpCZvtEZIJYHGLsKmEOe4h7IZJS0YKeDYYkJb+3jemunulBSYhXgInaSlTwB9BOe
         yiWkQ2uidKVAdZdFy6nEOnkQ+KbGqSzJqkVVVjUrtpAUZbWaE6InU+aNzwNcSw5KJDoZ
         Ihv8f0/iH3wygR0MTDhs1x7Jb9tF+7NBzN6LMnHhSmjtdCAhli/aXWT4OxPTZw/D2/yL
         7Su91RWGRF07P0YYNOh9TJ/ar/1NEWQErOTAjbJf/V3neLRZIwSpzWhOHTYMJdZDpOKp
         rjSg==
X-Forwarded-Encrypted: i=1; AJvYcCVycrOpUnRY6L8f+ZfykwEOi/K7QRzR9rsG/ABAGKsthjUrOT8LbbuDzFK5VoZhnEPwR4a+fr8z9qQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwvSeUx7IwY4tcrIXMblny66GrYYTNGxEAVxPy6AJcZhsoG0OHB
	+NIyDsjeFhmZj2XvJZ+U8NN3fudy3zMPguWiru3sUv7cgDg+2Cy+yB8vMfh8Eg40Jg==
X-Gm-Gg: ATEYQzwehzykyspw+biFu5rivL4x5A09mAox8L6H8cT3Viywd4/vg4HJZ+IVsAZbA9k
	1PRPdUxt21R/DdmZ+Eit3CWcg+Ka8Oqk2pDVpjbZ6Frm33u7g2Vlel7Bcdhn5tv/npbTbSdHN/+
	jCbWvHS9M/csiTf3EVpAtmxTSQHbzBYJR2OKvYtQG0NwsQvCnYfLbSqFV7g8mekzSoglCkdEi3x
	202PCvPl+bkIWc6+z6iaRreS0bI/JhKOwjlIAoieAPzTrli9DyQmR7kKXA4ndhaFOeF7PwhwWXY
	rIeNjksELqUFe+2paP7vNxHwzacjOLq8Ta47s5jpjJ14d6GXLA1UQJ0GcOBtOn6HWL9H5CHp4Bs
	1cEl4vwvPchFzv1exqVaAGPw2emS+XXq0IwwC7+zLHOxhY2VoAkmTwpEdfsMojDUWaAG+ZaKJCv
	vP4zYvadT2FT3OVGv6PixdwhjcCZz2llMIaBsJ7ay+awER7uwlgLdKKw+Ye+8frXoE4MU/Ku1VK
	OLmEAzUkoQtf1s=
X-Received: by 2002:a05:600c:3056:b0:487:1fc:14f9 with SMTP id 5b1f17b1804b1-48701fc15bbmr111418745e9.15.1774357831202;
        Tue, 24 Mar 2026 06:10:31 -0700 (PDT)
Message-ID: <2edd208b-4de4-4cec-a35b-31ae696cd777@suse.com>
Date: Tue, 24 Mar 2026 14:10:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/4] x86/kexec: Invalidate the IDT earlier in
 kexec_reloc()
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: <20260319122549.922724-1-andrew.cooper3@citrix.com>
 <20260319122549.922724-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: <20260319122549.922724-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1774357832-68F4FA73-50BFAC3A/0/0
X-purgate-type: clean
X-purgate-size: 1430

On 19.03.2026 13:25, Andrew Cooper wrote:
> After switching stack, it is not safe to run any exception handlers, because
> attempts to access the cpu_info block are out-of-bounds and will generate wild
> accesses.
> 
> Invalidating the IDT in the common path means there's no need to do so again
> in the 32bit path, so drop compat_mode_idt entirely.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

Yet still two suggestions:

> --- a/xen/arch/x86/x86_64/kexec_reloc.S
> +++ b/xen/arch/x86/x86_64/kexec_reloc.S
> @@ -44,6 +44,16 @@ FUNC(kexec_reloc, PAGE_SIZE)
>  
>          movq    %rcx, %rbp
>  
> +        /*
> +         * Invalidate the IDT.  After switching off Xen's stacks, the
> +         * exception handlers are unsafe to use, because there's no way to
> +         * perform arithmetic on the stack pointer to find the cpu_info block.
> +         */
> +        push    $0
> +        pushw   $0
> +        lidt    (%rsp)
> +        add     $10, %rsp

Deliberately misaligning the stack is odd (but not technically a problem of
course). How about using two full PUSHes instead, possibly adding a displacement
of 6 to the LIDT in exchange?

Furthermore, don't we still have access to the full Xen image at this point? If
so, why not do the above without using the stack, using zero_page(%rip) (or
zero_page+6(%rip))?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 13:20:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 13:20:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260834.1554013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w51fo-0002De-Fi; Tue, 24 Mar 2026 13:19:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260834.1554013; Tue, 24 Mar 2026 13:19: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 1w51fo-0002DX-Bs; Tue, 24 Mar 2026 13:19:56 +0000
Received: by outflank-mailman (input) for mailman id 1260834;
 Tue, 24 Mar 2026 13:19:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w51fn-0002DR-20
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 13:19:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w51fm-00AkNk-AK
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 14:19:54 +0100
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c28f6e-e002-0a2a0a5209dd-0a2a4509adf6-36
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 14:19:54 +0100
Received: from [209.85.221.48] (helo=mail-wr1-f48.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c28f79-e484-0a2a45090019-d155dd30a917-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 14:19:54 +0100
Received: by mail-wr1-f48.google.com with SMTP id
 ffacd0b85a97d-439bc14dcf4so4322701f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 06:19:54 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b6470380asm37198190f8f.24.2026.03.24.06.19.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 06:19:53 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774358393; x=1774963193; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=R9QsqbgjXwUMedaMFBIFeJrnDVuFKhj+2CnnalHo1zc=;
        b=YnOisVNtdn43xJw5cY4FsiPi1u22ArugykK9Dz+dNU5iPoNXBN3QnEm7+MPzgL8xVF
         DcLnzDApFfhWTnrSGtVcwYETE9FUCVmdr3pbsJfogk44nvMWtbg2uMJOdB/NQCy+ZDs5
         DMadaWUJCqB8zOq7PJxCZNYHm7v1hmGaAAHAaiTNnYR3E9nUWg1bEzbNtfhJaPPveu7s
         Lf+FsA6cTepZpdpNDysKH335LlDYszWGYE9SRDb0R0FOk19Q7cBHLbYZi6SM85NVllh2
         f8UKV/u8NaOSTmilX8+I6HTMtAS8JtmkEaV2fGtIckmbDiNTZtDrRP0a1979/KfChc6Y
         ityQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774358393; x=1774963193;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=R9QsqbgjXwUMedaMFBIFeJrnDVuFKhj+2CnnalHo1zc=;
        b=Ub16f7rEnx1rgZwpyD68kB2Ks+tgtSx+3kr9wu21NCDvMgCARmi0GYWRO+7GQMBQcI
         QDGELsMBkGo9h7QcnjM5wb6KdD8CC2d1AIWgF2A/cXbRRCfu4lg3nY1dXyS8IJLPK1cr
         iH/jkx7cs97AtGwSJ4fEIf2ibROZGFAAqJWVlsQaencV9oCHJRGUj18L85baTV6g4QlB
         bSfrKonjJgggk6KPaAHA7G9RhWReQvR/JE8KeM/V3LKyBQ2Kjb3MkHCc+ODsSbhwRJyS
         fLQWMOnfyx9LIQTi8+Gboq2D8lf7FWZoXDXL1rHdwpHbwqUUdMumUpnTCxXOqn3ALLop
         t0lg==
X-Forwarded-Encrypted: i=1; AJvYcCXmeaxjRLCXJ36pDemZZc6w9OxpshLzC9CxXquV3neav5EYyIu1PvOyF3AILxQisV7NQZ/nugEe4vo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxzXfcgaG/f96Wodzq1KOfNbpNgHkn02foE/50XVvzzmh09X8FM
	xqgTNLPDNYooWfayMVaVxKXBIYKX10WIv64NPsHwKCL0FMquEL6W6cfuifeUuhXrqQ==
X-Gm-Gg: ATEYQzx/Vp0rLJB337MnP8ssG7XJZz0SSXO6hjnKPjLtAJ7Iboh06bi2CywevHqgfcS
	dWhAMN4haQfJNDHvIWJPKZ+7a1YIkJrzjuVYKnVpN/Q1NAJ+R4vnOYCbbNt+nVMgTj0LM8G1vEB
	zlamyCEkwAJyEqiwbb2OKzQ3llXfbqEC6b6lQKfwUR1+UvE83b7RNfoguGrd3ltOJEpI1AVPzi+
	y4uhWsB5yX3oR4cl2sGv75ErBFFTfix1txSvPNdPxd7VfNPFfbfOGeC6c/ZOUc8lnTeqguROz2M
	1yObq3z1KFu3qsoAGqLjrCl2gZp24I2fIG4U5UGl2c/qgN8Ltv1SuRlyJEFs/+yNdwx6BX44Dj9
	wE+ck3SxP8VITXSRkaGLujfMnb8jXh2A9BfIKh07hUCZLTNfGhOojkQWS0h8LUt7BkJhJr8fhaa
	VNmXoXDt/JCv6pEtgNJb0mSr9SqIIIYG7tPlvWfLAHmTMHZL1gGggkYFibQjCTT6gIRIV/r+QRj
	zijDrBKyJmpih4=
X-Received: by 2002:a05:6000:430e:b0:435:96a1:ee4d with SMTP id ffacd0b85a97d-43b80550c84mr5679842f8f.14.1774358393421;
        Tue, 24 Mar 2026 06:19:53 -0700 (PDT)
Message-ID: <bcade1d0-4ab0-454c-9f2e-d7b407bbb230@suse.com>
Date: Tue, 24 Mar 2026 14:19:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/4] x86/kexec: Disable FRED earlier in kexec_reloc()
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: <20260319122549.922724-1-andrew.cooper3@citrix.com>
 <20260319122549.922724-5-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260319122549.922724-5-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1774358394-60EBAA73-FD99E66F/0/0
X-purgate-type: clean
X-purgate-size: 1589

On 19.03.2026 13:25, Andrew Cooper wrote:
> With FRED just as with IDT, it's unsafe to run the exception handlers after
> switching stack.
> 
> To remove this unsafe window, %cr4 needs clearing earlier.  In turn, we may
> need to switch to PCID 0 earlier too in order to be able to clear CR4.PCIDE.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> The pagetable switch cannot easily be moved to be earlier, as that leaves a
> period of time where FRED is enabled but all stack pointers point to
> non-existent mappings.

But the clearing of PCID could be moved earlier, I guess.

> --- a/xen/arch/x86/x86_64/kexec_reloc.S
> +++ b/xen/arch/x86/x86_64/kexec_reloc.S
> @@ -54,6 +54,21 @@ FUNC(kexec_reloc, PAGE_SIZE)
>          lidt    (%rsp)
>          add     $10, %rsp
>  
> +        /* Move to PCID 0 if necessary, as a prerequisite to clearing CR4.PCIDE */
> +        mov     %cr3, %rax
> +        test    $0xfff, %eax
> +        jz      1f

This conditional looks not overly relevant on this path, and we'd get
more consistent overall behavior ...

> +        and     $~0xfff, %rax
> +        mov     %rax, %cr3

... if the implied TLB flush would happen in all cases. (Of course the
clearing of ...

> +1:
> +
> +        /*
> +         * Set CR4 to PAE only.  This may disable FRED, which must happen
> +         * before switching off Xen's stack.
> +         */
> +        mov     $X86_CR4_PAE, %eax
> +        mov     %rax, %cr4

... PCIDE will flush again anyway.)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 14:04:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 14:04:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260860.1554029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w52N0-0001JR-Ml; Tue, 24 Mar 2026 14:04:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260860.1554029; Tue, 24 Mar 2026 14:04: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 1w52N0-0001JK-Jp; Tue, 24 Mar 2026 14:04:34 +0000
Received: by outflank-mailman (input) for mailman id 1260860;
 Tue, 24 Mar 2026 14:04:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w52Mz-0001JE-1r
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 14:04:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w52My-009JGS-Di
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 15:04:32 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c299e1-5cb7-0a2a0a5109dd-0a2a4507b0cc-24
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 15:04:32 +0100
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c299f0-fd74-0a2a45070019-d1558030ec0b-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 15:04:32 +0100
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-486507134e4so16488025e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 07:04:32 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487116ee562sm61029855e9.15.2026.03.24.07.04.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 07:04:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774361071; x=1774965871; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4ZtXJ4QL4oYCky8vWNKV9ap6j7FNQfJ3Oa0YJj/kMEo=;
        b=HWp8iYrIQJQHy7giWOUH9pZZGoX400UcFBuYE5XYRRAkOOCeTf0YQAO41eqhQ0h+ei
         S+jnmwehcdgTx2U4gyTgK9rDFBjM45063reLWb75//8/mCRbGINgH6q6UhJLG2o0y8bU
         YOvY4oT5qy65VqUv7xnQV3P0ogtUD0biuF6H95oHiPdMx4kcJckMiG/4NV7WbncWMjwY
         SSZ/05IhCFnwq6eI7uAHQPVFRz3BjZPtEUKa66Yo2Lmt7Anr4UKEJCGXvfVcWrh3rbxU
         fM+nxgpfxqiW13er65X6Oso2vpJNzWfeYCcK2T0Oj5xcLCwVRRsDCsD/jnRJjxWn3JKc
         3Ogg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774361071; x=1774965871;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4ZtXJ4QL4oYCky8vWNKV9ap6j7FNQfJ3Oa0YJj/kMEo=;
        b=hlkKNorLcWRfg6VWVzqnR9N+THs5jwppqeqzZ5ngQrCx0kSvrFQSHB2BGdB1bBKZJL
         X320JA0dzo8qPnmI0rAhifST344wp6h+YIdqQp1CwyCKoNUCrIkkkPcIQX1XrYsDGUiY
         DZS3mx99KkYRku2DZOOoLAEFSnhhyg/Suj7uclrzSYduDN/mXG4RKODp4SFKnMlnnags
         ILdfljMTM1EQJ5QBq/prnhClshDPt31yJ997huTciX3qyev/vPK47bfNV1TT5HSElDuT
         W1Tumgq39rz6LNo5mmU2v4oCnFhgUpiCe3jqykmZDHr6a37bcPkV4zXz3wXEmG814AHa
         OSIQ==
X-Forwarded-Encrypted: i=1; AJvYcCUJ6tgglAyDqEAV1Y4Hpvf6nkP76wcvQHrAwQ9MyWgYiRoo8npw+zYfHivg2T88k7Lw782yITKqQos=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyBxEdHPuS1GYFAEl4Zcjj0zjk2iHq/XNOboihvp5/f+DHm//00
	bcVqfJxLT8VBAOOHhGFw5kn8aTgaSOHK/Vlse829sjbiaEs/Y+/+1ubObELe45rKgQ==
X-Gm-Gg: ATEYQzyjYZS4xjIkehkUnZqy14hS8tdHjl7fqs7sUYUiAwShADjs0hLoXTqdGgdbJBp
	z42zl5kl77IVeSNI/eEYlUe/hnUNih0B7I2Xl1xi7NjNiLFnx2VmXmLgO+u4uDAFvaxdn/w0qqJ
	YeKD8Uw8PMEQXq4BKLNivCPhlz/LG0rKXSuXo4pBr77bW5GvI3e/Qmn3Rn1NsqSTigfU+JViTDF
	G3B/6yhJWnSHZt+mK0bXsMI7RyWPvNkwXpVNsm/ZVoOv4JHYijlOOkw2XlFZkaxbXUG8GEJN0yo
	5odOBjmPjWgoK1Tm7baKyNBEqp4BrVBluEvNPxXLwQD+lCqWfVNHEmnaTctqEm+zz4oLzoCJHgB
	QGtlNcmI1SM0ZrR8WPQxmt6+WS2RMwYWLjqP16bmymmYVuvoWaMXPDGnJNRxeu6q3L1dpxLhAvv
	4PYh4Kpo/OabeZN/hcOkS8FjlW1u2+LUwLe6mi46uvU5+yrHc9QRFCDLez6JQeU72xRvMGZkgL7
	twDmSaFJ1Op7o0=
X-Received: by 2002:a05:600c:320a:b0:487:1520:d107 with SMTP id 5b1f17b1804b1-4871520d201mr7505535e9.31.1774361071228;
        Tue, 24 Mar 2026 07:04:31 -0700 (PDT)
Message-ID: <db8fd1fa-2db4-4df4-8e21-1412783786b2@suse.com>
Date: Tue, 24 Mar 2026 15:04:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/4] xen/riscv: add exception table support
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1773419622.git.oleksii.kurochko@gmail.com>
 <c6d30625371d56bb8345c987ac6d8095cc7301d2.1773419622.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: <c6d30625371d56bb8345c987ac6d8095cc7301d2.1773419622.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1774361072-4FEA3303-24606DA2/0/0
X-purgate-type: clean
X-purgate-size: 8597

On 13.03.2026 17:44, Oleksii Kurochko wrote:
> Introduce exception table handling for RISC-V so faults from selected
> instructions can be recovered via fixup handlers instead of being
> treated as fatal.
> 
> Add the RISC-V exception table format, sorting at boot to allow binary
> search used furthuer, and lookup from the trap handler. Update the
> linker script to emit the .ex_table section using introduced common
> EX_TABLE macro shared with other architectures.
> 
> Also, the __start___ext_table is aligned now by POINTER_ALIGN instead
> of just using hard-coded 8 as there is no too much sense to align
> __start___ext_table by 8 for 32-bit systems.

Nit: The identifier named here twice isn't correct (extra 't').

> This implementation is based on Linux 6.16.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Open question:
> 
> With some renaming the following could be generic, at least, between
> x86 and RISC-V:
>  - ASM_EXTABLE() definition
>  - All what is conencted with sort_extable().
>  - With some change of how x86 searchs an extension this cmp_ex_search()
>    could also go to common file.
> 
> Does it make sense to introduce xen/extable.h and common/extable.c?

Maybe, but not right here. Already the introduction of EX_TABLE for
linker script use might better have been broken out.

Seeing the names you suggest here, ...

> ---
>  xen/arch/riscv/Kconfig                |  1 +
>  xen/arch/riscv/Makefile               |  1 +
>  xen/arch/riscv/extables.c             | 85 +++++++++++++++++++++++++++
>  xen/arch/riscv/include/asm/extables.h | 72 +++++++++++++++++++++++
>  xen/arch/riscv/setup.c                |  3 +
>  xen/arch/riscv/traps.c                |  3 +
>  xen/arch/riscv/xen.lds.S              |  3 +
>  xen/arch/x86/xen.lds.S                |  6 +-
>  xen/include/xen/xen.lds.h             | 10 ++++
>  9 files changed, 179 insertions(+), 5 deletions(-)
>  create mode 100644 xen/arch/riscv/extables.c
>  create mode 100644 xen/arch/riscv/include/asm/extables.h

... is there a reason you use plural in the name here?

> --- a/xen/arch/riscv/Makefile
> +++ b/xen/arch/riscv/Makefile
> @@ -3,6 +3,7 @@ obj-y += cpufeature.o
>  obj-y += domain.o
>  obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
>  obj-y += entry.o
> +obj-$(CONFIG_HAS_EX_TABLE) += extables.o

Simply obj-y please as long as the select is unconditional.

> --- /dev/null
> +++ b/xen/arch/riscv/extables.c
> @@ -0,0 +1,85 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/init.h>
> +#include <xen/bsearch.h>
> +#include <xen/lib.h>
> +#include <xen/sort.h>
> +#include <xen/virtual_region.h>
> +
> +#include <asm/extables.h>
> +#include <asm/processor.h>
> +
> +#define EX_FIELD(ptr, field) ((unsigned long)&(ptr)->field + (ptr)->field)
> +
> +static inline unsigned long ex_insn(const struct exception_table_entry *ex)
> +{
> +    return EX_FIELD(ex, insn);
> +}
> +
> +static inline unsigned long ex_fixup(const struct exception_table_entry *ex)
> +{
> +    return EX_FIELD(ex, fixup);
> +}
> +
> +static void __init cf_check swap_ex(void *a, void *b)
> +{
> +    struct exception_table_entry *x = a, *y = b, tmp;
> +    int delta = b - a;

Better play safe and use "long" (as we have it for x86)?

> +    tmp = *x;
> +    x->insn = y->insn + delta;
> +    y->insn = tmp.insn - delta;
> +
> +    x->fixup = y->fixup + delta;
> +    y->fixup = tmp.fixup - delta;
> +}
> +
> +static int __init cf_check cmp_ex_sort(const void *a, const void *b)
> +{
> +    const unsigned long l = ex_insn(a);
> +    const unsigned long r = ex_insn(b);
> +
> +    /* avoid overflow */
> +    return (l > r) - (l < r);
> +}
> +
> +void __init sort_extable(void)

Better account for live-patching right away (see corresponding x86 code)?

> +{
> +    sort(__start___ex_table,  __stop___ex_table - __start___ex_table,
> +         sizeof(struct exception_table_entry), cmp_ex_sort, swap_ex);
> +}
> +
> +static int cf_check cmp_ex_search(const void *key, const void *elt)
> +{
> +    const unsigned long k = *(const unsigned long *)key;

The deref here looks to be needed solely because you pass &pc into bsearch().
Generally I'd expect both search functions to be pretty similar (if already
distinct ones are needed, which indeed looks to make things easier here).

> +    const unsigned long insn = ex_insn(elt);
> +
> +    /* avoid overflow */
> +    return (k > insn) - (k < insn);
> +}
> +
> +static bool ex_handler_fixup(const struct exception_table_entry *ex,
> +			                 struct cpu_user_regs *regs)

Nit: Bad indentation.

> +{
> +	regs->sepc = ex_fixup(ex);
> +
> +	return true;

Nit: Bad use of hard tabs.

And then - why the boolean return type, when this can't fail anyway?

> +}
> +
> +bool fixup_exception(struct cpu_user_regs *regs)
> +{
> +    unsigned long pc = regs->sepc;
> +    const struct virtual_region *region = find_text_region(pc);
> +    const struct exception_table_entry *ex;
> +
> +    if ( !region || !region->ex )
> +        return false;
> +
> +    ex = bsearch(&pc, region->ex, region->ex_end - region->ex,
> +                 sizeof(struct exception_table_entry), cmp_ex_search);

Please prefer sizeof(<expression>) over sizeof(<type>) (also in the sort()
invocation further up, as I notice only now).

> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/extables.h
> @@ -0,0 +1,72 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#ifndef ASM__RISCV__ASM_EXTABLES_H
> +#define ASM__RISCV__ASM_EXTABLES_H
> +
> +#ifdef __ASSEMBLER__
> +
> +#define ASM_EXTABLE(insn, fixup)    \
> +    .pushsection .ex_table, "a";    \
> +    .balign     4;                  \
> +    .long		((insn) - .);       \
> +    .long		((fixup) - .);      \

Nit: More uses of hard tabs. Maybe that alone is the reason for the mis-aligned
trailing backslashes.

> +    .popsection;
> +.endm

I can't spot the corresponding .macro. What's going on here?

> +#else /* __ASSEMBLER__ */
> +
> +#include <xen/bug.h>
> +#include <xen/stringify.h>
> +
> +struct cpu_user_regs;
> +
> +#define ASM_EXTABLE(insn, fixup)        \
> +    ".pushsection .ex_table, \"a\"\n"   \
> +    ".balign    4\n"                    \
> +    ".long      ((" #insn ") - .)\n"     \
> +    ".long      ((" #fixup ") - .)\n"    \

More misaligned backslashes.

> +    ".popsection\n"
> +
> +/*
> + * The exception table consists of pairs of relative offsets: the first
> + * is the relative offset to an instruction that is allowed to fault,
> + * and the second is the relative offset at which the program should
> + * continue. No registers are modified, so it is entirely up to the
> + * continuation code to figure out what to do.

And the program counter is not a register?

> + * All the routines below use bits of fixup code that are out of line
> + * with the main instruction path.  This means when everything is well,
> + * we don't even have to jump over them.  Further, they do not intrude
> + * on our cache or tlb entries.

What is this paragraph about? There's nothing "below" which I can
associate this with.

> + */
> +struct exception_table_entry {
> +	int32_t insn, fixup;
> +};
> +
> +extern struct exception_table_entry __start___ex_table[];
> +extern struct exception_table_entry __stop___ex_table[];
> +
> +#ifdef CONFIG_HAS_EX_TABLE

Why, when this is a RISC-V specific header and HAS_EX_TABLE is selected
unconditionally?

> --- a/xen/arch/riscv/traps.c
> +++ b/xen/arch/riscv/traps.c
> @@ -12,6 +12,7 @@
>  #include <xen/sched.h>
>  #include <xen/softirq.h>
>  
> +#include <asm/extables.h>
>  #include <asm/cpufeature.h>
>  #include <asm/intc.h>
>  #include <asm/processor.h>
> @@ -217,6 +218,8 @@ void do_trap(struct cpu_user_regs *cpu_regs)
>  
>              break;
>          }
> +        else if ( fixup_exception(cpu_regs) )
> +            break;

Instead od the "else" better put a blank line ahead of the if(), to
visually separate the set of checks.

> --- a/xen/include/xen/xen.lds.h
> +++ b/xen/include/xen/xen.lds.h
> @@ -219,4 +219,14 @@
>  #define VPCI_ARRAY
>  #endif
>  
> +#ifdef CONFIG_HAS_EX_TABLE

No real need for this?

> +#define EX_TABLE                  \
> +        . = ALIGN(POINTER_ALIGN); \

Strictly speaking the original 8 (in x86 code) as much as this is more
than we need - each element is a struct of 2 4-byte entities, after all.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 14:17:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 14:17:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260874.1554042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w52ZJ-0003MV-3B; Tue, 24 Mar 2026 14:17:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260874.1554042; Tue, 24 Mar 2026 14:17:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w52ZI-0003MO-Vl; Tue, 24 Mar 2026 14:17:16 +0000
Received: by outflank-mailman (input) for mailman id 1260874;
 Tue, 24 Mar 2026 14:17:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <demiobenour@gmail.com>) id 1w52ZH-0003J9-Mx
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 14:17:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w52ZG-009LqJ-Jy
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 15:17:14 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <demiobenour@gmail.com>)
 id 69c29ce5-2eae-0a2a0a5409dd-0a2a4501a450-44
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 15:17:14 +0100
Received: from [209.85.128.170] (helo=mail-yw1-f170.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <demiobenour@gmail.com>)
 id 69c29ce9-6400-0a2a45010019-d15580aaa8e1-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 15:17:14 +0100
Received: by mail-yw1-f170.google.com with SMTP id
 00721157ae682-798374d0f44so89327847b3.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 07:17:14 -0700 (PDT)
Received: from [10.138.34.110]
 (h69-131-148-49.cncrtn.broadband.dynamic.tds.net. [69.131.148.49])
 by smtp.gmail.com with ESMTPSA id
 00721157ae682-79a903a3866sm73692937b3.6.2026.03.24.07.17.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 07:17:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Autocrypt:Subject:From:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774361833; x=1774966633; darn=lists.xenproject.org;
        h=autocrypt:subject:from:to:content-language:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BW4M6zPgEY93ifgR0CoU+SjPYbfx9tdqVjEeIASu4bg=;
        b=As8HnxhaPgqERNu9Qh1dJyd8sXsMMV9Uo/T6/NuC+SPq6Arkg85wzOv16je5+rOmq8
         LeEjI+8y5B3yBsG9V+o2AWvnum7G47VYdaHMGehJ9sGOCWfYivcJ1jKqKsN9ay1wn68V
         M0AaKygXLy7QNd06ZbXWfKnMH3xX4jlI2NyrDU3EkUdBtW5WslGE5V8GEJeN6BSm/TQE
         aQD4ZSles4l3DD4g3fM8SuImPK1Ho7JDdd9Jk6TqnqqP4glrDqqTn2/3tksGAhwfvNP9
         l44FHrT2nS1jrCwmBxBQFJOnqbEiW9HZwoE3sQkWpdhHBBBJcCN1ltAzqLFPa7NnXuPT
         ZlDQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774361833; x=1774966633;
        h=autocrypt:subject:from:to:content-language:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BW4M6zPgEY93ifgR0CoU+SjPYbfx9tdqVjEeIASu4bg=;
        b=kjGHWT1gNd8BNl71eGnaIwQbZ1kP4mxcTWzw31kSrN8iU4hnkinIRg4d/I+7HkGLFP
         AThqlZKbxn40m4rnsQOEX6CNLWg6LZM/TJqP6tQJJJIWZgGDXZfReh5waQbPLni5Mf/X
         MSS4fTIgj+dbZI+BQ33HL4paFlt6rqCQgL4yWiTEEDoMps/a+QCnBRiGAUb7wazH55ih
         fXIpL9+ZTSVgtlskty1GC1P5DdtOIWmB1HfzPwN2ZMIEKKThSDycWak0enswmJvZaZdc
         bfDsxX7AzLVtuZuLPouyjbjT/1Ho+4xLRvxGRKNc6BG8YYo88s3K0LoC/keuCpp6MoQo
         oGHw==
X-Gm-Message-State: AOJu0YxAx73K6d13XUEtyAvLOTFG+9c+Ebuc6Q0w7Vn25CeEkVFhKvNk
	8ylBSR/WGJWHbt5M4bhN4FueFGg7FzvV+4IaK6iZRhgNRkkTGr6sswIH1hPE+H7h
X-Gm-Gg: ATEYQzy1/GJwlAZPfMUnWj4lgxglNu81vmK6CkV/Z7HEGbHSZvPNj7uW+8xp80TceXj
	0zuoei+sZyQGvjens2FM1oAXO0RCwiSNYf28c919/UEt7Qc+sgQVkPlqEkDqDJMAeL7XLOY2TND
	sYdZt0vwN2T5eqfS4ABxaQ/o3KVIejcfvcW08JECRxNQsStpbgySpad733tP9o9rfj72aHMG8DV
	OkTQDId7kAoyhhNkv4Hi8Rk8vButMIm0DFoLcQGPnAWRzBUxkch4THm58zgAxe+v0ORUTh2yxS+
	kiqHsba16T/q77HHV4qtEJsSzDqSqVMnylgVYQuvDdYbNGg7Y+7O+ZbnbnUJIdcCh4S/8EQ2gD9
	EK4l7GW50K4MlDnTsgiMIo7MWjLQWMj6n9yEQPC37RZAlbWcQ7JXo0v34H6trqIS5aXOSnka2GS
	Li0WGQV3svtbeNVQ9fguZckM1qRGPO+/AHdAGYYLiIIw2QdTgcsUhNBa2OeE8jWqwPbJUXEh/yU
	xwk69VG3VI/vHUzfAXM85L5AHLIg2ewfisvh0/GArX50kApoA==
X-Received: by 2002:a05:690c:f06:b0:79a:b0d7:cc45 with SMTP id 00721157ae682-79ac2e5e60cmr35796827b3.3.1774361828342;
        Tue, 24 Mar 2026 07:17:08 -0700 (PDT)
Message-ID: <84462c4b-7813-4ad1-aeb2-862ae4f3a627@gmail.com>
Date: Tue, 24 Mar 2026 10:17:02 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: Xen developer discussion <xen-devel@lists.xenproject.org>,
 dri-devel@lists.freedesktop.org, linux-mm@kvack.org,
 Jan Beulich <jbeulich@suse.com>, Val Packett <val@invisiblethingslab.com>,
 Ariadne Conill <ariadne@ariadne.space>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Juergen Gross <jgross@suse.com>
From: Demi Marie Obenour <demiobenour@gmail.com>
Subject: Mapping non-pinned memory from one Xen domain into another
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
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------8f2sQR9VZFE00mFmOfKmxw87"
X-purgate-ID: tlsNG-d62444/1774361834-22CE3DF3-BD2141C6/0/0
X-purgate-type: clean
X-purgate-size: 25153

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------8f2sQR9VZFE00mFmOfKmxw87
Content-Type: multipart/mixed; boundary="------------F91oUXeotTThnqMOJixIRipF";
 protected-headers="v1"
Message-ID: <84462c4b-7813-4ad1-aeb2-862ae4f3a627@gmail.com>
Date: Tue, 24 Mar 2026 10:17:02 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: Xen developer discussion <xen-devel@lists.xenproject.org>,
 dri-devel@lists.freedesktop.org, linux-mm@kvack.org,
 Jan Beulich <jbeulich@suse.com>, Val Packett <val@invisiblethingslab.com>,
 Ariadne Conill <ariadne@ariadne.space>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Juergen Gross <jgross@suse.com>
From: Demi Marie Obenour <demiobenour@gmail.com>
Subject: Mapping non-pinned memory from one Xen domain into another
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
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==

--------------F91oUXeotTThnqMOJixIRipF
Content-Type: multipart/mixed; boundary="------------0pKE5AMCA0EH0rScO9pP0tYQ"

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

Here is a proposed design document for supporting mapping GPU VRAM
and/or file-backed memory into other domains.  It's not in the form of
a patch because the leading + characters would just make it harder to
read for no particular gain, and because this is still RFC right now.
Once it is ready to merge, I'll send a proper patch.  Nevertheless,
you can consider this to be

Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>

This approach is very different from the "frontend-allocates"
approach used elsewhere in Xen.  It is very much Linux-centric,
rather than Xen-centric.  In fact, MMU notifiers were invented for
KVM, and this approach is exactly the same as the one KVM implements.
However, to the best of my understanding, the design described here is
the only viable one.  Linux MM and GPU drivers require it, and changes
to either to relax this requirement will not be accepted upstream.
---
# Memory lending: Mapping pageable memory, such as GPU VRAM, from one Xen=
 domain into another

## Background

Some Linux kernel subsystems require full control over certain memory
regions.  This includes the ability to handle page faults from any
entity accessing this memory.  Such entities include not only that
kernel's userspace, but also kernels belonging to other guests.

For instance, GPU drivers reserve the right to migrate data between
VRAM and system RAM at any time.  Furthermore, there is a set of
page tables between the "aperture" (mapped as a PCI BAR) and the
actual VRAM.  This means that the GPU driver can make the memory
temporarily inaccessible to the CPU.  This is in fact _required_
when resizable BAR is not supported, as otherwise there is too much
VRAM to expose it all via a single BAR.

Since the backing storage of this memory must be movable, pinning
it is not supported.  However, the existing grant table interface
requires pinned memory.  Therefore, such memory currently cannot be
shared with another guest.  As a result, implementing virtio-GPU blob
objects is not possible.  Since blob objects are a prerequisite for
both Venus and native contexts, supporting Vulkan via virtio-GPU on
Xen is also impossible.

Direct Access to Differentiated Memory (DAX) also relies on non-pinned
memory.  In the (now rare) case of persistent memory, it is because
the filesystem may need to move data blocks around on disk.  In the
case of virtio-pmem and virtio-fs, it is because page faults on write
operations are used to inform filesystems that they need to write the
data back at some point.  Without these page faults, filesystems will
not write back the data and silent data loss will result.

There are other use-cases for this too.  For instance, virtio-GPU
cross-domain Wayland exposes host shared memory buffers to the guest.
These buffers are mmap()'d file descriptors provided by the Wayland
compositor, and as such are not guaranteed to be anonymous memory.
Using grant tables for such mappings would conflict with the design
of existing virtio-GPU implementations, which assume that GPU VRAM
and shared memory can be handled uniformly.

Additionally, this is needed to support paging guest memory out to the
host's disks.  While this is significantly less efficient than using
an in-guest balloon driver, it has the advantage of not requiring
guest cooperation.  Therefore, it can be useful for situations in
which the performance of a guest is irrelevant, but where saving the
guest isn't appropriate.

## Informing drivers that they must stop using memory: MMU notifiers

Kernel drivers, such as xen_privcmd, in the same domain that has
the GPU (the "host") may map GPU memory buffers.  However, they must
register an *MMU notifier*.  This is a callback that Linux core memory
management code ("MM") uses to tell the driver that it must stop
all accesses to the memory.  Once the memory is no longer accessed,
Linux assumes it can do whatever it wants with this memory:

- The GPU driver can move it from VRAM to system RAM or visa versa,
  move it within VRAM or system RAM, or it temporarily inaccessible
  so that other VRAM can be accessed.
- MM can swap the page out to disk/zram/etc.
- MM can move the page in system RAM to create huge pages.
- MM can write the pages out to their backing files and then free them.
- Anything else in Linux can do whatever it wants with the memory.

Suspending access to memory is not allowed to block indefinitely.
It can sleep, but it must finish in finite time regardless of what
userspace (or other VMs) do.  Otherwise, bad things (which I believe
includes deadlocks) may result.  I believe it can fail temporarily,
but permanent failure is also not allowed.  Once the MMU notifier
has succeeded, userspace or other domains **must not be allowed to
access the memory**.  This would be an exploitable use-after-free
vulnerability.

Due to these requirements, MMU notifier callbacks must not require
cooperation from other guests.  This means that they are not allowed to
wait for memory that has been granted to another guest to no longer
be mapped by that guest.  Therefore, MMU notifiers and the use of
grant tables are inherently incompatible.

## Memory lending: A different approach

Instead, xen_privcmd must use a different hypercall to _lend_ memory to
another domain (the "guest").  When MM triggers the guest MMU notifier,
xen_privcmd _tells_ Xen (via hypercall) to revoke the guest's access
to the memory.  This hypercall _must succeed in bounded time_ even
if the guest is malicious.

Since the other guests are not aware this has happened, they will
continue to access the memory.  This will cause p2m faults, which
trap to Xen.  Xen normally kills the guest in this situation which is
obviously not desired behavior.  Instead, Xen must pause the guest
and inform the host's kernel.  xen_privcmd will have registered a
handler for such events, so it will be informed when this happens.

When xen_privcmd is told that a guest wants to access the revoked
page, it will ask core MM to make the page available.  Once the page
_is_ available, core MM will inform xen_privcmd, which will in turn
provide a page to Xen that will be mapped into the guest's stage 2
translation tables.  This page will generally be different than the
one that was originally lent.

Requesting a new page can fail.  This is usually due to rare errors,
such as a GPU being hot-unplugged or an I/O error faulting pages
from disk.  In these cases, the old content of the page is lost.

When this happens, xen_privcmd can do one of two things:

1. It can provide a page that is filled with zeros.
2. It can tell Xen that it is unable to fulfill the request.

Which choice it makes is under userspace control.  If userspace
chooses the second option, Xen injects a fault into the guest.
It is up to the guest to handle the fault correctly.

## Restrictions on lent memory

Lent memory is still considered to belong to the lending domain.
The borrowing domain can only access it via its p2m.  Hypercalls made
by the borrowing domain act as if the borrowed memory was not present.
This includes, but is not limited to:

- Using pointers to borrowed memory in hypercall arguments.
- Granting borrowed memory to other VMs.
- Any other operation that depends on whether a page is accessible
  by a domain.

Furthermore:

- Borrowed memory isn't mapped into the IOMMU of any PCIe devices
  the guest has attached, because IOTLB faults generally are not
  replayable.

- Foreign mapping hypercalls that reference lent memory will fail.
  Otherwise, the domain making the foreign mapping hypercall could
  continue to access the borrowed memory after the lease had been
  revoked.  This is true even if the domain performing the foreign
  mapping is an all-powerful dom0.  Otherwise, an emulated device
  could access memory whose lease had been revoked.

This also means that live migration of a domain that has borrowed
memory requires cooperation from the lending domain.  For now, it
will be considered out of scope.  Live migration is typically used
with server workloads, and accelerators for server hardware often
support SR-IOV.

## Where will lent memory appear in a guest's address space?

Typically, lent memory will be an emulated PCI BAR.  It may be emulated
by dom0 or an alternate ioreq server.  However, it is not *required*
to be a PCI BAR.

## Privileges required for memory lending

For obvious reasons, the domain lending the memory must be privileged
over the domain borrowing it.  The lending domain does not inherently
need to be privileged over the whole system.  However, supporting
situations where the providing domain is not dom0 will require
extensions to Xen's permission model, except for the case where the
providing domain only serves a single VM.

Memory lending hypercalls are not subject to the restrictions of
XSA-77.  They may safely be delegated to VMs other than dom0.

## Userspace API

To the extent possible, the memory lending API should be similar
to KVM's uAPI.  Ideally, userspace should be able to abstract over
the differences.  Using the API should not require root privileges
or be equivalent to root on the host.  It should only require a file
descriptor that only allows controlling a single domain.

## Future directions: Creating & running Xen VMs without special privileg=
es

With the exception of a single page used for hypercalls, it is
possible for a Xen domain to *only* have borrowed memory.  Such a
domain can be managed by an entirely unprivileged userspace process,
just like it would manage a KVM VM.  Since the "host" in this scenario
only needs privilege over a domain it itself created, it is possible
(once a subset of XSA-77 restrictions are lifted) for this domain
to not actually be dom0.

Even with XSA-77, the domain could still request dom0 to create and
destroy the domain on its behalf.  Qubes OS already allows unprivileged
guests to cause domain creation and destruction, so this does not
introduce any new Xen attack surface.

This could allow unprivileged processes in a domU to create and manage
sub-domUs, just as if the domU had nested virtualization support and
KVM was used.  However, this should provide significantly better
performance than nested virtualization.
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------0pKE5AMCA0EH0rScO9pP0tYQ
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-----

--------------0pKE5AMCA0EH0rScO9pP0tYQ--

--------------F91oUXeotTThnqMOJixIRipF--

--------------8f2sQR9VZFE00mFmOfKmxw87
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/sszaHOrMp8lMFAmnCnN8ACgkQszaHOrMp
8lP2Yg//bp8wHClzrvsikf9t62My1QfYDh18ub/NOQ3THidAKr/hmi5DTHuKLOAR
EALivpmQPFGkFRBe4ytEhRNORs/nGqtgCoSdGoS623gEO+q2zlsRcx/TWoTmTCd1
zkU7buBjAbI5Xfa3mrFY3boAeJbp1tdDO6lxj+YTpytSB092IW8um0dl5whTHrXW
7XQh03Qlo6QChVjmZx0MZfrS2r/nRf0RZ3c9mSrnKzgNNNKkkYpuyu2BXMX02fcP
AlgNXxSLtyMcg91yPGGy9qFdspO0X69CEdfPmKSuaOF60CHkJAanbs55+EJR16No
4nxANNGSW8A+4NMtRyZoetIkCdaCvzEWLTKbkX19ReI55sAW2uYODqmbYDDdiDSn
HKkpQfN64cShFKi9/J1z34mUeunWLDgP571K6K26ZiwMpy+tfD8de4kFcM3h8eFo
zwrNCR+AhWSjYzNX3ywAuVuLJh/noxnBQ0dZRbRCkp4EPx1mLz1StNOj1E/dD1aI
YiuYS6aU7Hgg4IqOwow/+xPZCj+AxgkRkm7SXrPuNaWwDajtWSp4IInUWJFn3tSr
BF3+ZDVAlqGdz7JlW0GNVaSRVgPWK74P7jIhI1SV+6N46R/bNtSWhl3E7jky6J8I
5aS4pVaS7D1ZGY2zhACc27zL9PaCJW5XuiVlFy3mxC7z0etVAms=
=si8k
-----END PGP SIGNATURE-----

--------------8f2sQR9VZFE00mFmOfKmxw87--


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 14:17:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 14:17:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260873.1554039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w52ZI-0003JS-SW; Tue, 24 Mar 2026 14:17:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260873.1554039; Tue, 24 Mar 2026 14:17:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w52ZI-0003JL-Oz; Tue, 24 Mar 2026 14:17:16 +0000
Received: by outflank-mailman (input) for mailman id 1260873;
 Tue, 24 Mar 2026 14:17:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w52ZH-0003JA-Mx
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 14:17:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w52ZG-00DNqk-P9
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 15:17:14 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c29ce7-5cb7-0a2a0a5109dd-0a2a4508cce0-16
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 15:17:14 +0100
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c29cea-1950-0a2a45080019-d155802eac30-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 15:17:14 +0100
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-486fb439299so44917585e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 07:17:14 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4870f81db8esm23115115e9.8.2026.03.24.07.17.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 07:17:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774361834; x=1774966634; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jjk36FmCoVluiy2HZwxxB/+cIqhyJA+nOWcfdolVM2A=;
        b=ck9sis2/2DMCSYHHNaqG1OAMy1Xl7IpylVQ1mOuACbGOW2003rQz60qhn1aYQoezg/
         yrJhtADPsktFQu0cNEjrG47F+M9oKkucNbc2Rim8/vs38nsfWFOk62antG0haJbNL/fm
         glcA4dGVpLzbD61t3HuHSiPLXXLzCxmXWO1FK/74njRe7nwJwvy6cwH21vnobY1Nqa3u
         aI4VBrI71gdML51eVeAubYZDqhQRs51//KyTHlwCj/FSRVbLHfF34qgPHhUfUCeMZrIC
         Uu7F4ZFDfrIfjiSunggzvJwQxpoRwOiULvS7jTh9iNFO7hWu/3+qxfq2PU2p7i6Xd50c
         N3Bw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774361834; x=1774966634;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jjk36FmCoVluiy2HZwxxB/+cIqhyJA+nOWcfdolVM2A=;
        b=MQPLl60JW5D8iengklGBBiwYYoTxKo0+ku3EpI6sSGbtTbi+aP/KtzGYTWy4OoYAyK
         +DvFvbGn9E1PVRWLPMxOShld5LVh98ZMUnJxKlhCM37WUl9P+erwN6nhb9tKBRqm5kob
         H9vgvvYC6wzEqLfbrkE8gFEMcyYf1/wnEOYpke2+FRFmSBGQGjyjUfCiTNj4kQPyYVJC
         8s4VvavZ9J9orQ36OnQTqL79Zw+sp4hwebjY1wvuYDbSFnoNPE1A8TTlYMlFICHlMFpA
         CVder4JXneRJd9WFe3TPHLzxXYy3og0hYdhaXA1nSh86eSYttioQdPLWkvbcSUQI2+0d
         yc+g==
X-Forwarded-Encrypted: i=1; AJvYcCXX4HH4s0UrY0BJ8MgADQ2Z0Zqk2NhKGlHwFybZJJskeu3Km5hWGHcHJoQrYl9vTaK8o9bDKKjvDRc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxnnmj8KocZan+Sy3VHgjhdzisn8RwpsIYZL3c0264SccEsZqXF
	laSCm2IWIOoWULiuMa1ZRnAb5pFvJWRfCZGPWhpnAN0JRIundRDAwqMMG75D9X4ndw==
X-Gm-Gg: ATEYQzwxbY44yrOOAUFVHsJKeNiv4wqC5StBWzqwumY40BWN+dUh7Ro1i5faDN2PgIn
	7aDW+ZdpdGoFIGNCFRIkA5idbhdezbQ+ax6Dj7VjfFD4UJudqouNCH1ezu2kqORcXqja2H2V8PO
	gdo6mm1EHYtTj0FQVBEhVzINV/QJHc2U52cSYWyf6Y3VKdxp0smCH8B6Q+V7N6AAVVJ5Qivy5E2
	wNvz0OWsnJc6FYpOrY+HpkXzxM8OtwIthFuRQCFil7TXjTNklJONvY5kVhUJ9+DMmbAllMM5QzH
	iDbea2aqZGgAqlyFivbzzoZ6eSl/yb1DrXshWOOqLKW/6dsM4NruW8w2nyaUjnlDvURSFMvYxVN
	2Xr/cnDp+ZuRkzpHiEb3Rwu1dql3KKg2WPqR1eZQYj9P/FAcw3ky3pn3hwyycpuyF0tXua2+eC0
	lgzAArubsocqu5tZsklmqlcHvvKcDpazJYTWW/jeOXsA+vMLD8L3R3TwDpU3BkuXeoowIdpdUvH
	JtLFmZdjSEc5xE=
X-Received: by 2002:a05:600c:c48f:b0:485:b6dd:5066 with SMTP id 5b1f17b1804b1-486febb6014mr232959745e9.7.1774361833899;
        Tue, 24 Mar 2026 07:17:13 -0700 (PDT)
Message-ID: <f80e15ce-3494-45b7-b434-d383f020c80d@suse.com>
Date: Tue, 24 Mar 2026 15:17:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/4] xen/riscv: add csr_allowed_read() helper
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1773419622.git.oleksii.kurochko@gmail.com>
 <2ea34e564533accb33ccee66b4a8c7a750733ae0.1773419622.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: <2ea34e564533accb33ccee66b4a8c7a750733ae0.1773419622.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1774361834-E8882726-26241A44/0/0
X-purgate-type: clean
X-purgate-size: 3033

On 13.03.2026 17:44, Oleksii Kurochko wrote:
> Accessing some CSRs may trap when the corresponding extension is not
> implemented or enabled. Introduce csr_allowed_read() which attempts to
> read a CSR and relies on the exception table mechanism to safely recover
> if the access faults.
> 
> This helper allows Xen to probe CSR availability without taking a fatal
> trap and will be used for feature detection during early boot as we
> can't always rely on what is in riscv,isa string in DTS.
> 
> While touching the header, reorder the include directives to follow the
> usual Xen style.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
>  xen/arch/riscv/include/asm/csr.h | 34 +++++++++++++++++++++++++++++++-
>  1 file changed, 33 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/riscv/include/asm/csr.h b/xen/arch/riscv/include/asm/csr.h
> index 01876f828981..b9bee3d25d21 100644
> --- a/xen/arch/riscv/include/asm/csr.h
> +++ b/xen/arch/riscv/include/asm/csr.h
> @@ -6,8 +6,10 @@
>  #ifndef ASM__RISCV__CSR_H
>  #define ASM__RISCV__CSR_H
>  
> -#include <asm/asm.h>
>  #include <xen/const.h>
> +
> +#include <asm/asm.h>
> +#include <asm/extables.h>
>  #include <asm/riscv_encoding.h>
>  
>  #ifndef __ASSEMBLER__
> @@ -78,6 +80,36 @@
>                             : "memory" );                        \
>  })
>  
> +static always_inline bool csr_allowed_read(unsigned long csr,
> +                                           unsigned long *val)
> +{
> +    bool error = false;

Wrong polarity or wrong name? You set this ...

> +    /*
> +     * Use "+" as a constraint instead of "=" to ensure the compiler passes the
> +     * initial value into the asm volatile block. Otherwise, if the instruction
> +     * (at label 1) faults, the variable 'error' may contain an undefined value
> +     * instead of 0.
> +     * If reading of CSR register was failed, we don't care about val, so "="
> +     * constraint could be used in asm volatile block to not force always init.
> +     * val argument before being passed to csr_allowed_read() functions.
> +     *
> +     * This avoids the need for an additional instruction inside the asm block
> +     * to explicitly initialize 'error' to 0 before executing the potentially
> +     * faulting instruction.
> +     */
> +    asm volatile (
> +        "1: csrr %[val], %[csr]\n"
> +        "   li %[err], 1\n"

... to true in the success case.

Please can all of the commentary be dropped? You're re-stating what the compiler
doc has, and (imo) such doesn't belong here. If you want to comment on anything,
then the (again imo) less obvious need to use always_inline.

> +        "2:\n"
> +        ASM_EXTABLE(1b, 2b)
> +        : [val] "=&r" (*val), [err] "+&r" (error)

You don't clobber [err] early, so & isn't needed here.

> +        : [csr] "i" (csr)
> +        : "memory" );

The memory clobber, if you think you really need it, wants to come with
a comment.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 14:23:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 14:23:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260893.1554055 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w52f6-0005dw-Qr; Tue, 24 Mar 2026 14:23:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260893.1554055; Tue, 24 Mar 2026 14:23:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w52f6-0005dp-OI; Tue, 24 Mar 2026 14:23:16 +0000
Received: by outflank-mailman (input) for mailman id 1260893;
 Tue, 24 Mar 2026 14:23:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w52f5-0005dj-9f
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 14:23:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w52f4-001QNI-GF
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 15:23:14 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c29e49-5cb7-0a2a0a5109dd-0a2a450ae81e-48
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 15:23:14 +0100
Received: from [52.101.193.35]
 (helo=CH1PR05CU001.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c29e51-1772-0a2a450a0019-3465c12371ea-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 15:23:14 +0100
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH2PR03MB5208.namprd03.prod.outlook.com (2603:10b6:610:9f::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Tue, 24 Mar
 2026 14:23:08 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9723.030; Tue, 24 Mar 2026
 14:22:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wwGurM1bFw/AccH9DUsyT+0hm59Uc+PdObfu3jtlewJJKs+XeWqsxjVO5xLbjDIMTtUGpu2J5qotMmDuF2h0Vz17pRkxJo3r/cxXAgFWaf94HOnBdKD8w0DgkEB5+esuWKOOPradW3w61Ngtaz7EF6MO1BklDwH2lN1FfKZj5upmjiHk5EH30ooST/UQ5zuqwJXBcK+awghJjiL+ZcrMt4vHcn3ayRw394jW6GjQTszKCw+m7ZJrrZnlgzrbFwA7EaNUyLW0MqZc2X62pTcDudz7N5QHxBm1eXKv6xWwQGj9Gly09ZDBtgT18Rh1gXZi6tdSUqwUYAuz+H1ngGeLPw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=f+6i7d12LI8bR5JPJllpH66zDpn2KJ72YxFZ7HFVtWQ=;
 b=v3+6rkyVCZvZxoPQWSGcdgxYujTfhKPHdoBeyBJSWWeJSIWy4SpazIkIfF9Q1kyfxh4z+nv05+W3AC9gONTy4wloCplhMiN2sXCx6OR3dxSWVXde7HwjXjMFVMxt0sLrVSXQ0eTzBCHEb5R5KeXd6XW5X3jP6LyXgtz0isNabctbqlW6VKGdE6lNSNTN3S6MxkRKZGabKnNWFPUbHPleVFhgsuieuS4dLYy2LHgsrofauSVAdyyj/P/5p8q9VIvpkehHPjjZyEX+/CVniIN7HkuNivSxBvpySvKkbUL9n07CGn6yHrRygu+qpx17GUeTg+zKXKSy0pQTaW68mPiPVA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=f+6i7d12LI8bR5JPJllpH66zDpn2KJ72YxFZ7HFVtWQ=;
 b=bgsHGdVpHF1fe5SV6BhcyCXlWRuo1SawJDSOmlNgAW74vUh6mLwMgTJBkhOT6KQJJYziaFG1eXEHJuzJZp62vPWAN7a4bB2Cz1rPLq5WkgyQuP7l3lE8Mkpvy1R97YcTiDe1dnCmok8+YklrbsypWAQLqxtwrMZXdTV+HBBhvL4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <34e5c260-140c-49da-9e96-31fc7c51245e@citrix.com>
Date: Tue, 24 Mar 2026 14:23:00 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v1 2/4] xen/riscv: add csr_allowed_read() helper
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
References: <cover.1773419622.git.oleksii.kurochko@gmail.com>
 <2ea34e564533accb33ccee66b4a8c7a750733ae0.1773419622.git.oleksii.kurochko@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <2ea34e564533accb33ccee66b4a8c7a750733ae0.1773419622.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PA7P264CA0269.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:375::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_|CH2PR03MB5208:EE_
X-MS-Office365-Filtering-Correlation-Id: 0bc37147-fc44-4ff4-be91-08de89b0d73a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|1800799024|366016|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	B0OxgXXZbj+EzZ5NjvwWIv4o5DKI7qG0EzUcvqZCGKNkmHZEUUXPglz/s0+F2kiqlRA3CwdEtP7LOARVFyuS9Y796WLhJG3RzurKwoPihIjvIuK5pK4ck+cd4ant/tQ1HK2DWgCSod7DGwMWEUNdM1dJmhDkvgoExwL61/299RQ6R0JnzdYBR1XOwPQai5H2nHHx/pIJxfQkQhw4ULs7M88WuixxggUkzw76W9HsyVN83qNpeorPRZNaAGYnaSK8aQXAgGcrkkGCh9sCNvXk6YJjxSvBqNZHwTiUcXvSN6uw3cutnsFL8z38cGwSLISO9tQm0a8R3ns13zluZ6jif4aweIff/lKHI1juUtbInCdue3fcRic2yUXYZpD8cUZ4Wh0B9cXEDwS8tVNzDP5MQcT9aGA+Q/i88Du9vldKw3/+KlblnRlYuyzswSOd0HRNTqOKdxyVXgoMPusLiX5OnPtjFNQ0eOAMhO9bCBS6gIq6mn35Fs6KST5Hv/bvWzcc6bLQw52SzIi6EMRMxSA3D3GGhs4k4PILLWBmuS4EMNQo+us6TFWzuw+JcQnwpemEFFWRchGP08j5YVw6rGq3s5N48wenqklvhtjiCEsHBa00N8fpdyWYWmUk0n7YR2qWjrzcLT3jKYU5dH9x04SuQTSKgfjyK7XXRRlZ9y1ahz9GdevBHkHNIg8kbYfpXlrOpzaZvxNPLSNa56Y3i7kLNFgFLp224xKRDWfE3sYJPLg=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?V0FmdkFnUGYvMVh0TXZzZ1NmTnpsakNaY0FkYjJjWU43aVAzQS9TLzl2SzE3?=
 =?utf-8?B?VU9oT2xhUnVIWG45U2FMQmRsWGgwVk1QdHNrQ2dQNWF1d0oxYWdCVUFmSU1R?=
 =?utf-8?B?ejFia2NIRzVRVXRja1VvTXNxRXpmWGR4WnhVRFRPd0J2eXp5QmM3N2V2Y0VQ?=
 =?utf-8?B?dUlvcDZBdm0zZUowdk41TzlIR2JNSmZNcWhwcjZJVU03T1lFS1ljTi83R0ps?=
 =?utf-8?B?aXRGczhQQW1VTFpnZm9oQWV0N002U2sweEpVdXBFUkJ2bWhhVXV3UW9lSzZl?=
 =?utf-8?B?RHBpSHBKczUxWnZhVDEzN2h2TzNLZ3owV2RtNzYza3U4eElHUkRWMmJ4QTAw?=
 =?utf-8?B?dVAwR2dVL014N0VtL0g1c3J3cm10YmpqSDlUaDRML3dNR3RaS3FMQUtzTS9P?=
 =?utf-8?B?bkhkZGxPUTcwWC8za1FsbThYM1FxRS9QMmpLZHcyQUpmYlJsMlVnY2h5c29V?=
 =?utf-8?B?dFE3MGphWWxKREtOSWdTTzd5eFk1bVhjdVdCczU3b1BCVGZwd3M0NEJyeGsw?=
 =?utf-8?B?OVkrQW1uVDJnckVoRlZYSTVueG1sUzJTRDg2YUs2NktxUVlCbU9BMkxzd1pN?=
 =?utf-8?B?eFhvNkJkTXlXS21HQVRuRFlOTEwzVDBhUC80cktoVkhpV2dyV1NvQzZyK21L?=
 =?utf-8?B?VWUyTFFnMU9IZW5vbWtnNzZrU0tXNjFzbGFLTTRxRXM3OTh2WTg4SXJwdWM0?=
 =?utf-8?B?ZUV2TU96eXFNaDdBVVh6emJseHB5NmlmR2FBZ3NKVzRESmg2UGxUNXRkeXRt?=
 =?utf-8?B?WjlhRDI0NXJNeXM1MFVLWE5sUVUzRUFOMEFFYWdqLzlrSitGejFRTmtFd3RY?=
 =?utf-8?B?NitmQ3laMFhJUUZONWxjZ2tCRjFhTC9IMk8yQzliUS9uNFhmbHdTUnYvZGta?=
 =?utf-8?B?SkhucHBGUWhDdmQ3ZTRNRkZWZERxOHZLajA0VUdPYVdOZTZUbXFHYUs0RmFE?=
 =?utf-8?B?b1JrV0lkT2I0YlZjYnpCdjJ4Q0xXSGRtK3U5WExCUG82cGExbXI3QmpjcUZY?=
 =?utf-8?B?b1ZjZ3kxRGtka3FpWnZiRE9vTnErdWhKVEl2KzMxVzRSV3VRRklZRGdxYTdW?=
 =?utf-8?B?TkZMcURRWTd6K0w5R2VvODlrSndEWGwzNVJDU1pmcjFlQVVxSlR6RWFhU1dm?=
 =?utf-8?B?RE5MZjhjRnMzSlVENUdod05iSkcyOFBrbWw0QWxtTTVJRnRISlVaa1I3Uzg4?=
 =?utf-8?B?bkU0WjNVR002M01jTnVBUjVTSllSb09idVBmRjZKQkRhOHlUNVhRc3VSdnEx?=
 =?utf-8?B?Ym5nMlNHeW5FclE1ejJLVHdOUjJRTWJ3SzAxN0pFaEV6MVcybXlGU2toMytY?=
 =?utf-8?B?cHp1dEVybzhNRmFOVTZ6MEsveWQ0QVJmUHBJTUR3QXJyV3F0YU9ZSHkyMUdV?=
 =?utf-8?B?ZndTTlRLc253WU1zMGd6dXNnbWp4VlJLWUtWWVVjS1pUT2xGdW9waklrUTQx?=
 =?utf-8?B?TDUrZWhEOVlRcUhKOExvRHBwTVlVOXJ3OUxCLzlzaG9JdlZSTDlIcmVuL0Uy?=
 =?utf-8?B?am5ZU3k2UkliYU11TE5EY2VsK05JYVYwaEZGQm9HVGhZcFFQVHpZQ1V2YTBQ?=
 =?utf-8?B?d1JDV1JGc2o5NkdpTndBSjIxaGoxbTlnOUtFOXNhOUJGLzhjK0hWWW1QSjVK?=
 =?utf-8?B?bTR6VUljTGtvTDRpZ1ZOMDNka2cvNkk0ZjA5bmxTZ1kzOTdSSVZ3RHhpaDJY?=
 =?utf-8?B?NHlWNXpNMXVEVXZ1OGs5cURiWHZuRDFZRkczTGJ6OG1WdllaYzI0KzBYa3ox?=
 =?utf-8?B?UUcvemJvcHM3VkJxMkkyUjFSVkF0Y1pxcm5ZUWNVc2NrUFpCa0lzNDlpTzRF?=
 =?utf-8?B?YjYvSGhCd1FmSXUyOU5zNGdUTnFLVFBVbmdNTlV4UHpZalVIN1R2R2l1ZkJv?=
 =?utf-8?B?UGtscC9iRDRodzFTbGc2UDdoTFpLd1hWaG9oSVZyZWhXV0FORElOZ0pDWElK?=
 =?utf-8?B?bzdVVGNOa1hac3J4a0QyVjhTZ1JvcUw3aDlkTTc5d0hvWDNHWUwvTi9QbDBv?=
 =?utf-8?B?S2F3b0JENDUvRmFPWHRmSm5yWW1FclZrc0dBc29ma2hjL2dDS24rWElDVUo0?=
 =?utf-8?B?OGp5UDFlRndYUlRVd29HSVdsQjhvS3hIbHNyRUFZeXRMb2cwUmJMRXpCMENR?=
 =?utf-8?B?Sm5UeWliSTVzd29aeU04d3lDNlBCMmVIQndCM0NMeFdQR2dJQ1VvOXVBNUYx?=
 =?utf-8?B?aVFTb05YNFRCOHU1UUZvbG5ST3lWS1kwL2V0SWxuZEtuZldmQ3R3QjA3V0xF?=
 =?utf-8?B?RVhWWkUyQUk2endGV2xjdWluMUFIQzR2VldYZFIyNGVQeTR6RjdxQ1BOTkJH?=
 =?utf-8?B?bnJOZU5zWkM5N3NXRWh4RVNTL3ZBdmlTbmpQby9xS3JISUtRbkprUVVKTFN2?=
 =?utf-8?Q?4aeAgbzQmRA+yPtc=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0bc37147-fc44-4ff4-be91-08de89b0d73a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 14:22:55.4929
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: t9+ABbGkac+IyyUTdSEnR1B5f1ZvqTtr4qR9z4OO3S6zTLaI1R4IDlzyZeRH/2y5J7bNWel/z5/FahBU20jMwz/6SNFhZsLtgruhUNkkoPU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5208
X-purgate-ID: tlsNG-4011c0/1774362194-BFE9D900-C55319DA/0/0
X-purgate-type: clean
X-purgate-size: 2169

On 13/03/2026 4:44 pm, Oleksii Kurochko wrote:
> diff --git a/xen/arch/riscv/include/asm/csr.h b/xen/arch/riscv/include/asm/csr.h
> index 01876f828981..b9bee3d25d21 100644
> --- a/xen/arch/riscv/include/asm/csr.h
> +++ b/xen/arch/riscv/include/asm/csr.h
> @@ -78,6 +80,36 @@
>                             : "memory" );                        \
>  })
>  
> +static always_inline bool csr_allowed_read(unsigned long csr,
> +                                           unsigned long *val)

$FOO_safe() is the common nomenclature.  So csr_read_safe() in this case.

csr_allowed_read() reads as if it's a predicate, which this is not.

> +{
> +    bool error = false;
> +
> +    /*
> +     * Use "+" as a constraint instead of "=" to ensure the compiler passes the
> +     * initial value into the asm volatile block. Otherwise, if the instruction
> +     * (at label 1) faults, the variable 'error' may contain an undefined value
> +     * instead of 0.
> +     * If reading of CSR register was failed, we don't care about val, so "="
> +     * constraint could be used in asm volatile block to not force always init.
> +     * val argument before being passed to csr_allowed_read() functions.
> +     *
> +     * This avoids the need for an additional instruction inside the asm block
> +     * to explicitly initialize 'error' to 0 before executing the potentially
> +     * faulting instruction.

Honestly, this is mostly tutorial level "how to asm", and isn't really
appropriate.

> +     */
> +    asm volatile (

asm_inline.  Especially important for inlining decisions when using
ASM_EXTABLE().

> +        "1: csrr %[val], %[csr]\n"
> +        "   li %[err], 1\n"
> +        "2:\n"
> +        ASM_EXTABLE(1b, 2b)
> +        : [val] "=&r" (*val), [err] "+&r" (error)

err needs & dropping.

> +        : [csr] "i" (csr)
> +        : "memory" );
> +
> +    return error;

You should write a second form with CONFIG_CC_HAS_ASM_GOTO_OUTPUT right
away.  See x86's rdmsr_safe() for the equivalent of this function.

Code generation with ASM_EXTABLE() is far better when the fixup label
can be used.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 14:32:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 14:32:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260903.1554066 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w52nv-0007cp-LR; Tue, 24 Mar 2026 14:32:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260903.1554066; Tue, 24 Mar 2026 14:32: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 1w52nv-0007ci-Hk; Tue, 24 Mar 2026 14:32:23 +0000
Received: by outflank-mailman (input) for mailman id 1260903;
 Tue, 24 Mar 2026 14:32:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w52nt-0007cb-L3
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 14:32:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w52nt-001STp-0o
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 15:32:21 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c2a072-e002-0a2a0a5209dd-0a2a45038fac-18
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 15:32:20 +0100
Received: from [209.85.221.43] (helo=mail-wr1-f43.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c2a074-1947-0a2a45030019-d155dd2bac26-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 15:32:20 +0100
Received: by mail-wr1-f43.google.com with SMTP id
 ffacd0b85a97d-43b7ff8fe92so855630f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 07:32:20 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b644ae132sm37699620f8f.6.2026.03.24.07.32.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 07:32:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774362740; x=1774967540; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nmh9WHtm3B322i6CtLgpy7cSEOxRnqsBz6LlETDYWVY=;
        b=NGW+/B98JGMbei/OnxRUnK8Zt9GDEPyknTUSqpG4VtBPmXdfuXBE2vxNMzZtQU5fyC
         adHqsFNSoL8ygBGLQgo5OGq8nrYkqjfySjTb+QYUb8Qk3lGCumhHRiKGFEqvrDy3qRKK
         VlemnqRYdFN2r3z26KjAOXmPZNjJvT6idrAHrab0TjT9EwqJCcCLoh1T74U/dJTQfQnx
         npfch2XZDOgn68oqLwIhHdE6z397TU2b/9/xjofvhSUU2JN36nodZ/BATAGWuSMqmRac
         nTBC1cfTu4oHEz5u1bkOlNdvPKKsoMvWkpgYkUBZlf7vpVhAaxzVIpcgA81g72ZeoRyy
         CIBQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774362740; x=1774967540;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nmh9WHtm3B322i6CtLgpy7cSEOxRnqsBz6LlETDYWVY=;
        b=T6j51shX64oI9BjwEmYyT7UjMMdx8YwgFgDrc7Wq0y50rlbhb9eAJTgvF1pDsFrc2y
         rrP6dsd4tSLfuuzkAMJsoznI67kCt0GvfTc/N/acW42kSzw/mEYy3Toua5samIozZ6g8
         6vfx8hfUiVq2ZW26mPjrctvmNCG3jMad5a9pFULwxLb6Ps9i6N7Rcp4HT50BxJww+WhN
         vVIbP5B/0AsqjJofdB+iOTuWyDw49ZoCTRhodUyflGLHeZiM4nu2L51c3e5DbnFMfhEa
         l+kEhSOaa1kkr+cf8wW0FGkUHUcmN98ytpKNPJsRwCjSstajbsC5XxMQaZ8++hfNNU4T
         0EeQ==
X-Forwarded-Encrypted: i=1; AJvYcCWChZRwYTbgM0SJcMlCW278ClMQ3U8up6xMCAj4/IQJmbebQLN7qL7XF6M9y3t5ZcP/PpiDqgkoqB8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzTC1Ob17BXaQEcStKBDW0dd1QA9JzP30YhCcl17MWNx43EgTm5
	3w23f3HnoDlpzBbS4gV7kZvwyY90CpFcTBG/e3MFugsYmjE2bz2dHMFkvdD6+wLqsw==
X-Gm-Gg: ATEYQzxphBeFQGxOwUxz3xib+/Knim2gtXEUbuTsGs11PTwvJL1mzuTRM6pnRJC7jWp
	J7JrlputxYsZ9U80i9HbIYaBZdt8Bk9iiMcsI5ECJBZ2ctygqgfMJ+0S4egAeiBczGUvaJoTSGH
	NAshW01Jy+xa87GgFEGvNlsgOC3vWj4ZASe/yL9oA2X53qSx7UZD7GNfK0N5XXseQMgMMqcgCQx
	53bgjeCS1Hp+QVn8fNIlu0wYpFULz1FV3wviroRSClUEOWOZTGtyCA03aW2cHYQdMIRgjnDgy67
	sJY9MbU0PolVEdBpCnyXch4Birh6StlHtrTetnWELj4xzDz1agcAY4a1mSw3tHWr1sPAZ3aGhnP
	N7SVTirW6x6xMmMvoRQxtiPLjFsp6EPg1mUgT6Brh3lTMqX7FamiKtVEliN8bJyCu2BFgzvM1GX
	H+O475JPCpTWB5Qft9/6W3lMzXX6xWI8GRqo6r5xvzkhlnYsO76XnvCtLRxYK9o/Cw7ARzNA9AV
	8+fr6N9gurUEMs=
X-Received: by 2002:a05:6000:2f84:b0:43b:4312:2ca9 with SMTP id ffacd0b85a97d-43b642402c0mr23138756f8f.6.1774362739509;
        Tue, 24 Mar 2026 07:32:19 -0700 (PDT)
Message-ID: <4ebe7434-ce4a-421d-b027-f8c110b7b2dc@suse.com>
Date: Tue, 24 Mar 2026 15:32:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/4] xen/riscv: allow Xen to use SSTC while hiding it
 from guests
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1773419622.git.oleksii.kurochko@gmail.com>
 <0f0849b53625f9f9f939000f29579e264e522fd2.1773419622.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: <0f0849b53625f9f9f939000f29579e264e522fd2.1773419622.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1774362740-EA29F72C-8AF049F8/0/0
X-purgate-type: clean
X-purgate-size: 5619

On 13.03.2026 17:44, Oleksii Kurochko wrote:
> OpenSBI currently does not advertise the SSTC extension via the device
> tree. Additionally, SSTC can no longer be reliably disabled by removing
> the "sstc" string from riscv,isa, as OpenSBI probes support by attempting
> to access CSR_STIMECMP.

Still don't yopu need to remove that string from what guests get to see, ...

> Introduce a runtime probe in Xen to determine whether SSTC is available.
> The probe attempts to read CSR_STIMECMP using csr_allowed_read(). If the
> access succeeds, SSTC is considered available; if a trap occurs, it is
> treated as unsupported.
> 
> When SSTC is detected, Xen may use it internally to program timers.
> However, the extension is not exposed to guests because the required
> context switch handling for the SSTC CSRs is not yet implemented.
> 
> To prevent guests from using SSTC, RISCV_ISA_EXT_sstc is cleared from the
> riscv_isa bitmap. As a result, the corresponding HENVCFG bit is not set
> and guests fall back to the SBI timer interface. Timer requests are then
> handled by Xen via the usual SBI interception path.

... alongside the riscv_isa adjustment?

> --- a/xen/arch/riscv/cpufeature.c
> +++ b/xen/arch/riscv/cpufeature.c
> @@ -17,6 +17,7 @@
>  #include <xen/sections.h>
>  
>  #include <asm/cpufeature.h>
> +#include <asm/csr.h>
>  
>  #ifdef CONFIG_ACPI
>  # error "cpufeature.c functions should be updated to support ACPI"
> @@ -139,6 +140,7 @@ const struct riscv_isa_ext_data __initconst riscv_isa_ext[] = {
>      RISCV_ISA_EXT_DATA(smaia),
>      RISCV_ISA_EXT_DATA(smstateen),
>      RISCV_ISA_EXT_DATA(ssaia),
> +    RISCV_ISA_EXT_DATA(sstc),
>      RISCV_ISA_EXT_DATA(svade),
>      RISCV_ISA_EXT_DATA(svpbmt),
>  };
> @@ -483,6 +485,7 @@ void __init riscv_fill_hwcap(void)
>      unsigned int i;
>      const size_t req_extns_amount = ARRAY_SIZE(required_extensions);
>      bool all_extns_available = true;
> +    unsigned long tmp;
>  
>      riscv_fill_hwcap_from_isa_string();
>  
> @@ -495,6 +498,36 @@ void __init riscv_fill_hwcap(void)
>          panic("HW capabilities parsing failed: %s\n", failure_msg);
>      }
>  
> +    if ( csr_allowed_read(CSR_STIMECMP, &tmp) )
> +    {
> +        printk("SSTC is detected but is supported only for Xen usage not for "
> +               "a guest.\n");

No full stops please in log messages.

> +        /*
> +         * As SSTC for guest isn't supported it is needed temprorary to:
> +         *
> +         * 1. Clear bit RISCV_ISA_EXT_sstc in riscv_isa as theoretuically it
> +         *    could be that OpenSBI (it doesn't pass it now) or whatever ran
> +         *    before Xen will add SSTC to riscv,isa string. This bit  clear

Nit: Stray double blanks.

> +         *    willn't allow guest to use SSTC extension as vtimer context

Nit: won't

> +         *    switch and restore isn't ready for that.
> +         */
> +        __clear_bit(RISCV_ISA_EXT_sstc, riscv_isa);
> +
> +        /*
> +         * 2. A VS-timer interrupt becomes pending whenever the value of
> +         *    (time + htimedelta) is greater than or equal to vstimecmp CSR.
> +         *    Thereby to avoid spurious VS-timer irqs set vstimecmp CSR to
> +         *    -1.

-1 is misleading here, as any unsigned value is greater than -1. You mean
UINT64_MAX or e.g. ~0U here.

> +         * It should be dropped when SSTC for guests will be supported.
> +         */
> +        csr_write(CSR_VSTIMECMP, ULONG_MAX);
> +#ifdef CONFIG_RISCV_32
> +        csr_write(CSR_VSTIMECMPH, ULONG_MAX);
> +#endif
> +    }
> +
>      for ( i = 0; i < req_extns_amount; i++ )
>      {
>          const struct riscv_isa_ext_data ext = required_extensions[i];
> --- a/xen/arch/riscv/domain.c
> +++ b/xen/arch/riscv/domain.c
> @@ -99,6 +99,9 @@ static void vcpu_csr_init(struct vcpu *v)
>      if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_svpbmt) )
>          v->arch.henvcfg = ENVCFG_PBMTE & csr_masks.henvcfg;
>  
> +    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_sstc) )
> +        v->arch.henvcfg |= ENVCFG_STCE & csr_masks.henvcfg;

Wouldn't this better be part of the (future) patch enabling SSTC for guests?

> --- a/xen/arch/riscv/include/asm/riscv_encoding.h
> +++ b/xen/arch/riscv/include/asm/riscv_encoding.h
> @@ -396,6 +396,8 @@
>  #define CSR_VSTVAL			0x243
>  #define CSR_VSIP			0x244
>  #define CSR_VSATP			0x280
> +#define CSR_VSTIMECMP		0x24D
> +#define CSR_VSTIMECMPH		0x25D

I think it would be nice if throughout the CSR definitions you settled on
using upper case hex digits uniformly, or all lower case ones (personally
I'd prefer the latter).

> --- a/xen/arch/riscv/time.c
> +++ b/xen/arch/riscv/time.c
> @@ -13,6 +13,20 @@
>  unsigned long __ro_after_init cpu_khz; /* CPU clock frequency in kHz. */
>  uint64_t __ro_after_init boot_clock_cycles;
>  
> +static int cf_check sstc_set_xen_timer(uint64_t deadline)
> +{
> +#ifdef CONFIG_RISCV_32
> +    csr_write(CSR_STIMECMP, deadline & 0xFFFFFFFF);

The "& 0x..." isn't needed here, is it? I.e. the whole function could be ...

> +    csr_write(CSR_STIMECMPH, deadline >> 32);
> +#else
> +    csr_write(CSR_STIMECMP, deadline);
> +#endif
> +
> +    return 0;
> +}

static int cf_check sstc_set_xen_timer(uint64_t deadline)
{
    csr_write(CSR_STIMECMP, deadline);
#ifdef CONFIG_RISCV_32
    csr_write(CSR_STIMECMPH, deadline >> 32);
#endif

    return 0;
}

> +int (* __ro_after_init set_xen_timer)(uint64_t deadline);

static?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 14:36:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 14:36:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260911.1554074 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w52s0-0008Ev-55; Tue, 24 Mar 2026 14:36:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260911.1554074; Tue, 24 Mar 2026 14:36:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w52s0-0008Eo-1M; Tue, 24 Mar 2026 14:36:36 +0000
Received: by outflank-mailman (input) for mailman id 1260911;
 Tue, 24 Mar 2026 14:36:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w52rz-0008Ei-KD
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 14:36:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w52ry-00B2AX-W9
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 15:36:35 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c2a16e-bab6-0a2a0a5309dd-0a2a450bca8e-26
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 15:36:34 +0100
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c2a172-ef63-0a2a450b0019-d1558033a80c-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 15:36:34 +0100
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-482f454be5bso59782835e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 07:36:34 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48711007830sm26107495e9.7.2026.03.24.07.36.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 07:36:33 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774362994; x=1774967794; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=15SPtgP5UZDXK6qGNQVN4OTCckbxz06/dBZpe5NbVCA=;
        b=Af7YhZmrYe3qX6w4/rk1YCb6rpO1TnYGLIkN6qOalRL0CKgcRRSUnfKNU+4K+cECNT
         N65WoKQeoUF5sES8l5xHyjFhjx6LJbbevqD/m/wD/UkSI+5cf0I5sokrtJ6SaViAB0gs
         ztyhxy/ErVN7emWD48T9txVpib+E8W+UrHangr+Bwo8rrnqdeD7CurdV1OPlTb77owsY
         j1HZztnK15TEU2OIrxxp4FcllpXlamSKMfe2CF94CuZhgOqoqQFyQaAhY15jk6ljWuFR
         /3pDo7p/PLGsVqu/RbQ0vgOBLhTJS0oo8eMUf9yiqsS7eXko9qGuz416va+Xxn4xcMip
         eLyw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774362994; x=1774967794;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=15SPtgP5UZDXK6qGNQVN4OTCckbxz06/dBZpe5NbVCA=;
        b=fiU8KoXT1zsFHx6J4i8tN8jhlxzuz2HxMwHVEs0nj3VRk07lkTUjyqXOERkm6Q6O7w
         vtY42m4tFQd7BKlhQckOf4v5R2LwDITObAkYXQXQ7nnXutGbU6oCKG7lhVKUyuxHFgRr
         Qe3N6S/Abg+OA3wwo5GfjKvNkxG1cezP1+GNtmPWn8kY69C6GjgEDFAwz7gY5Ti5rq3E
         NW0gLtKdHUVBIfxiFSDzeRqwpYD/eJsOc/pLxCtcN52+8maPi6XEzraN5c9L89R+vvjJ
         5M5XL7RQREMrbcGdUXKKopz28DJ7Ne27l/ocotgYCH3490Xk8q+ue9kyNn5ZdG1S83RL
         Frvg==
X-Forwarded-Encrypted: i=1; AJvYcCUmEQeBiTvtvu2FWJL4NcNOIJlmGkmc2Thqjyop1Dg4h6WnTUG4LbVxMMhjAyv6RfjEflrVzcTlDhk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxLuuTIHASwWHvIBHKsAH4lImgMJyDkK4T2aI9cN/Kcl52aPwKM
	Dz/XBSfwQCsi7oO7nGNbv2JuHRoX6Tu1shtkW7eGFPRkWglDQeEZkmGZAA2FvR5e4A==
X-Gm-Gg: ATEYQzz39tpkEYi1Q7JfU0dgNv9o8jjdly15RBCexuGUzbf0Gzaliz12tPvPEVZyBy0
	ut5WtsJ+yLEOMDuadtqxC6QdzpEEwiqR2hL1HblnxIAHD1aw4UUmOdwMYaviGL2er4V1IN2grDo
	PcU8T0rUawYMAq/WTroPXGmBHRu41TnfFu+ye1MlJQglvJnxaUk62vJ8iNcYhf/9omVQot6KJ9k
	Ml+hUqE0jc3/U1zVCiQNlfcbjDG2BlMqYWbtYfyGbmPWxZza/YrS8gZJhqbSxUITQBaQe10YDF7
	tJ6zCyJDzeh95S+BgCM0qOOthI+UqFBA2VR5RRn9KXs+QgA7RKsNBHYYfRyfRznRevXjACIKGI0
	pMVGKFeIaUtNVZKUWBKnoS1dyjMuonrKbgKUepidM+YKTKRmLMeZS32jkhWw8uzmO2ncmOgrDqC
	iBxaCWY5KPmwIOr4BLoxIfmZGw1tEeLu/29CfVEZdJQ5Z2mvmhrSNUvECtyHNxv9rhs0i4vIOs9
	HsLpzoM7oV0p8A=
X-Received: by 2002:a05:600c:c0c5:b0:485:3c11:de84 with SMTP id 5b1f17b1804b1-4870f212e52mr44767385e9.14.1774362994012;
        Tue, 24 Mar 2026 07:36:34 -0700 (PDT)
Message-ID: <c5e1cd58-92ba-43cd-bef6-16578d0f06b8@suse.com>
Date: Tue, 24 Mar 2026 15:36:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 4/4] xen/riscv: init_csr_masks()-related improvements
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1773419622.git.oleksii.kurochko@gmail.com>
 <b283d6a8d59d66010f6249161245e4a7f4219589.1773419622.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: <b283d6a8d59d66010f6249161245e4a7f4219589.1773419622.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1774362994-A0807112-9825787D/0/0
X-purgate-type: clean
X-purgate-size: 536

On 13.03.2026 17:44, Oleksii Kurochko wrote:
> There is no reason to use _UL() in define-s sitting in C file hence use UL
> prefix instead.
> 
> Drop 3d argument of INIT_CSR_MASK() and INIT_RO_ONE_MASK() to reduce risk
> of incomplete editing after copy-and-paste, or other typo-ing.

Another brief sentence about the AVAIL -> VALID transformation? Then ...

> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 14:39:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 14:39:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260922.1554083 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w52uK-0000i6-JD; Tue, 24 Mar 2026 14:39:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260922.1554083; Tue, 24 Mar 2026 14:39: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 1w52uK-0000hz-Fy; Tue, 24 Mar 2026 14:39:00 +0000
Received: by outflank-mailman (input) for mailman id 1260922;
 Tue, 24 Mar 2026 14:38:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w52uJ-0000gd-92
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 14:38:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w52uI-00B2oA-95
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 15:38:58 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c2a1df-bab6-0a2a0a5309dd-0a2a45049dda-44
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 15:38:58 +0100
Received: from [209.85.221.54] (helo=mail-wr1-f54.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c2a201-c823-0a2a45040019-d155dd36d9ff-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 15:38:58 +0100
Received: by mail-wr1-f54.google.com with SMTP id
 ffacd0b85a97d-43b7481f9d3so1547728f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 07:38:58 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b8508285esm4067884f8f.19.2026.03.24.07.38.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 07:38:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774363137; x=1774967937; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uihOtPHOpbHzHK/IXYCXVIdMXn8PjkIDnqspB+4VMKU=;
        b=Tcp8QpkZp3KviUHSzTm7iFsIV95+qxESka7/aHjxG7sNamyLkzkrl+JoPxn+bTx74+
         88k7a34ow5AnWqLV29qTEoBTMcp+ZqfbC/PBZfYIOVFghJgk7DvshhM/1AbOuIIwaviJ
         2QhH1ymN92nI79viCQuLnDzzGfMZJPVN0iPpyNUgeowtMR2ycve4BEzUcuJDCvW7rxQI
         fQvzQMVuoKluqorpnA4L5udOuTbrOz/1Ger8bOs4qZKucTsDDF3GopPEGvCQP1tVhyhQ
         svzFLwxfbH7xl4/UaRL9MYrJGXeFwusXD5Xspz3vyr0P2lsTpwOH6Cm7uiPSdMflwjGL
         wjsw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774363137; x=1774967937;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uihOtPHOpbHzHK/IXYCXVIdMXn8PjkIDnqspB+4VMKU=;
        b=SzXzzC5vrTCFE6pMhaIrReYlp0PX4p3FiStdUDDye1/W7WN9huYzx2XwoNwSfI9j/S
         3a1ezmFKkSQeH+CJ42BdhUtBK/QRNdNUCbPT8HNO8aKiU8+8U5euJ2U74mNanWCcaEHu
         9ijp/H+CHVSdnM9kszAUgQ1Ki59TcJPR+K0/DLE6/UXJutVosRLk3SWWdanemb5VlBdi
         /Z3ACucB+6LXquaIaIuk+QI9WUF1M5kdThyUSLNpNRFF5oI/RwKr/9e8TUVEebCgE4Kp
         HkGL2R8cexol7SL+5fZmb29Sji+PKEIa4MRzrOAX/opK9HHjtZUmDtPx9fuZXniGpuOt
         Hlxw==
X-Forwarded-Encrypted: i=1; AJvYcCXIB5ZmZdTGAlN7toBzSqhmfMRdSzYZU2QNiNLKpfwBNdWOfsMvrUZNux1w4letctLqAzeL1QB6yVw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzQTluitNWgWw4ADgpEtk2SM6/WOXEL995GIbUwgpw3tZUFQhsq
	D+iZaKXtIwyO1isft6ZGBY/qg3ez+JOsmApyLS/0cW6r3kgdmJzYpctEf1qWrWFAnQ==
X-Gm-Gg: ATEYQzz+9vcMuc86p9ebCNx3J2E4BhKFB1pcDT3LkZaHiBEw5Nc1FnT6JEP48jaup/x
	GX9Th3hRWRODKiryUYgmi+/2n31BMTOjokDgdPst8+9rxdGbPfGF55M3dQSYHoO4OZ+U+fVo8FF
	pb23X2drOUu75siOyhmnaoTPvC4T2SCeTG3iuXrblrpJENNrhDQLED/EcaInB1Y6Aj7CxSb2A7d
	z/58HBh0yIvb37gk4n+I3r88JTMKJCXii2pi/kWsGZ6OyKzJx2HaEBJB7ceYpLVwRQx3jXfCkfG
	IaOaR+vnpgm9B9ob9wGJ/XlUDwjGVtjwPhnLKmww3vU//aJpUfuYvVqrflDyPytuGprpyDTNsgs
	aMmEyjDFNzM+kDts6GxhAiLPd54j6kENeVA8f8siDHF1dzxPUF4xknCWADWxwYGS1FAyIQc8OlD
	523HXdv/4+WP0bMXCKg3BEvH3e+RDHZ+EGBdAWIBdo10Xy4bxSv3OskmzaGZfF7wOMcEhG4O49y
	hLmrZ2YhRSH0r0=
X-Received: by 2002:a05:6000:310d:b0:43b:43d3:62ac with SMTP id ffacd0b85a97d-43b6424ab83mr25070902f8f.18.1774363137428;
        Tue, 24 Mar 2026 07:38:57 -0700 (PDT)
Message-ID: <cddb4d30-5248-4ae3-834c-94044c0864c5@suse.com>
Date: Tue, 24 Mar 2026 15:38:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 4/4] xen/riscv: init_csr_masks()-related improvements
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1773419622.git.oleksii.kurochko@gmail.com>
 <b283d6a8d59d66010f6249161245e4a7f4219589.1773419622.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: <b283d6a8d59d66010f6249161245e4a7f4219589.1773419622.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ebf023/1774363138-118789D1-BC58951B/0/0
X-purgate-type: clean
X-purgate-size: 977

On 13.03.2026 17:44, Oleksii Kurochko wrote:
> There is no reason to use _UL() in define-s sitting in C file hence use UL
> prefix instead.

Actually, only after sending the earlier reply, I noticed: s/prefix/suffix/.

> --- a/xen/arch/riscv/domain.c
> +++ b/xen/arch/riscv/domain.c
> @@ -42,10 +42,10 @@ struct csr_masks {
>  
>  static struct csr_masks __ro_after_init csr_masks;
>  
> -#define HEDELEG_AVAIL_MASK ULONG_MAX
> -#define HIDELEG_AVAIL_MASK ULONG_MAX
> -#define HENVCFG_AVAIL_MASK _UL(0xE0000003000000FF)
> -#define HSTATEEN0_AVAIL_MASK _UL(0xDE00000000000007)
> +#define HEDELEG_VALID_MASK ULONG_MAX
> +#define HIDELEG_VALID_MASK ULONG_MAX
> +#define HENVCFG_VALID_MASK (0xE0000003000000FFUL)
> +#define HSTATEEN0_VALID_MASK (0xDE00000000000007UL)

With UL in upper case (for Misra), imo hex digits would better be lower case,
to visually better separate number from suffix. Also, not need for parentheses
around literal numbers.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 14:42:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 14:42:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260932.1554091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w52xh-0002JD-0V; Tue, 24 Mar 2026 14:42:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260932.1554091; Tue, 24 Mar 2026 14:42: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 1w52xg-0002J6-U4; Tue, 24 Mar 2026 14:42:28 +0000
Received: by outflank-mailman (input) for mailman id 1260932;
 Tue, 24 Mar 2026 14:42:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1w52xf-0002J0-Sx
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 14:42:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w52xf-00EhbA-8i
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 15:42:27 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c2a2d1-e002-0a2a0a5209dd-0a2a450a8d46-2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 15:42:27 +0100
Received: from [40.107.200.47]
 (helo=CH5PR02CU005.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c2a2d1-1772-0a2a450a0019-286bc82fb6a0-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 15:42:27 +0100
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by LV3PR03MB7383.namprd03.prod.outlook.com (2603:10b6:408:1a2::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Tue, 24 Mar
 2026 14:42:07 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%5]) with mapi id 15.20.9745.019; Tue, 24 Mar 2026
 14: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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XbfSfvOrWkotDpgfiQsO+aF5nwgMF8kk3r2vH8qq33qMshUruelN6O65xE0999/nZn5Ef+JgGBkXWolOP22alsFjDo2ilN1K6rWgngKjRIIj9xkESmoQ2dOeTHOo+kX/2Kmgzu3DnL997mULHTTSkLhH+yhIg7nNU9/Idn0magyeaLuKo7Jkg5HgrPrXwd4Ba475PdnmIO2jo/msVFKfkQEKg+eYYgTIhyCHFM8jHAHNypb2XGlnoEuYRdLrX/0YGUstLRcN+BBoPE3oVN1Iv0QONBDdLL0QRWEfiktHn6hYKFrwM04JZkoIKe403Slg2kx818Msz/y7R6D5osN4FA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xfCbnHYkw45Gh6fxQudDYiDmDC3fF9I82ocKi5X9ehw=;
 b=g+Q3S/jjc6En7Ow8Dg+xLKA8E7w5Z3aCzmwHtsrk0OAPYM7i0m+q1/ECqxAeEuEZrtvX8zqHEP90T1NMxShh1IVlw+/C78S6L5S4gMEgKJcZ/dR49bPa5SdkmhUHpCwbeEWcacPM2PC0SFVuE8yrU0gxuBxbANogJgSsgvcUDJy+9bGMCrQ8Qgd+OqwARxF0tuyg9ScPVq/ujJAZVd9Wp4WGC9TIG+Vr+fevVJr+4Hzd8+DXPic/7HRyPX+3XwN5MXZirq3id4r1tVaK4uNZxjch7ph+rKnixmOn74T6VyXL7QiJdUICHLZp+A/YT/7J9pa4Z0uCIprBOk/GB6aPxQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xfCbnHYkw45Gh6fxQudDYiDmDC3fF9I82ocKi5X9ehw=;
 b=XWE5psghBEAN9Ptm+uWEusRMtbrs8Xdz9B4QGDV6FWifAce2ifZPsfOAU/aAZ1fkXgjLID8cbh1Xjr3UUxVRtSCq15k7tzaI6caxvioQNTasCqfkIKlBZ4gzS2oaSQHl4Zbma7mc2DDoweRACoGDR29jrDuifouTp4CoQIus7PI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <f563feca-54b4-4fd7-9c52-2ef29b0e1a81@citrix.com>
Date: Tue, 24 Mar 2026 14:41:37 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 6/8] x86: Remove fpu_initialised/fpu_dirty
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
 <20260319132924.1469809-7-ross.lagerwall@citrix.com>
 <b2574a87-4707-4eb1-9d1d-23caedfb5bbe@citrix.com>
Content-Language: en-US
From: Ross Lagerwall <ross.lagerwall@citrix.com>
In-Reply-To: <b2574a87-4707-4eb1-9d1d-23caedfb5bbe@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P265CA0154.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2c7::11) To DS0PR03MB8272.namprd03.prod.outlook.com
 (2603:10b6:8:28f::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|LV3PR03MB7383:EE_
X-MS-Office365-Filtering-Correlation-Id: cac25f8a-e6ce-4bb4-1b16-08de89b388f9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	A8IBiNbN27l9OlAQ5+rrJzLv8RKBcCxWM50zOLfXa/WQjXdm17q9fsWi7DO4JCIA+XCBBy9ZQ50NqzlcOV3YhcCFA0JmDi/g8AopUw3AUokOD8SZlCDtokefG8vU1/r2njHISC2c53qvkX6h2+BO4v2WF2beybFA8iSyaz/JOuPP5+DFL8QP6+azLWM/ng1uY5yzSqmsMpcn7IxdbkR5HXoM6fCUBP+Z5itrzx7qEtGEFQscGkyBnVeP2fHZYJ6u3162karh1LaeZAemB3vOXMvESLrC5kTx1vC0pVPQX6ijvZnZnoM1lWyavs36l+T59wlpmwzwJMT6ZDVDUp/cmvdPfV0XLML9ZNG5UOLfRaLwMGBpKNIsHOX/hwsgVYg6g+4LXDqs+fNn9PfcnqtXZbVRSXbd56EMUB/hItvdR7ZiS3Lb7xMxtrRopuPgGEVW91YrylMolzZwsjH861aQsjy8BXZytpGRrPYawo4U69YDFvCoOy3OsN7+nWxJDMOMewpeuztZr0Dj9+rVTvDE3/DEiHSki2Vw5r+jRNZvmJLZvVqm16U+L8946pdMOH/d8McILr4e0IZ1tBSq+zhEOJOyHoF4rqTokO2Y+OhuxBUIvkBPSK8AShBRTHqDPz39lTmF2tlSo+qSK3J7NHOQ7a27xmBbZ8CXRD0WwxrkMtHlkCl53dhuh5MdEmomdHc5iVryJO58QffgYZOUfH+ndxKLtjHrH1hoT+Cb7w2jO7s=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RERta0RLTnk3dnV4azNTclhXOGFyMFUycXl2UFQrWXpicVFvN3lNNDc4Tmda?=
 =?utf-8?B?ZmRRTHNWYXlBbWlULzhPK1RRcFJTa2txbU1leWtPZldGeUx5SndFVVVXU0Z4?=
 =?utf-8?B?Uy9XTDV6bk0yMUFNd1dqYldvc0JyY2tqcTNneFBPVVBlQ3YrcEdhWEZqRHpE?=
 =?utf-8?B?Y24wSTJOZWhFU1BYL1AxRCtPVGRGdkNYWDE3b1kwdFBxdUN2WXdIV0Rtdi9i?=
 =?utf-8?B?UzBEeGhMNWlhVWtTMTJnOFY5YVNVU3ZGNU1rYzhVaDZMaFJicVdVcWtEZWZP?=
 =?utf-8?B?R1ZRNW5BSWlXRFpudEpWVXFTeEJvMmc3UVRmakN2aWZLcXJheE9CanNJRDFZ?=
 =?utf-8?B?U0pvbmhDMWZHUnVsdjc3VmdMbkFTUW1DSUNyb2V1dk9DbzVTL01KVTdCOUV5?=
 =?utf-8?B?SWpuZDNqR2ZBSGZSL2V4U0NGa0hFVlg3eVVPc1Erb0ZTRWxidU11UGNSd1RF?=
 =?utf-8?B?U0tZWWIwbGhraE9rZW1XMktQaXprMVhwdHJiTVRaUG15STUwYmJzK0ZIVWpk?=
 =?utf-8?B?aTVIalY2UkdDZnRmVFZnQTBVNGVta1htQTFPbEN1T2lBY3Fmc0phTFUxeWFE?=
 =?utf-8?B?eWtva3hyY2xFcG5vSm5vMTJ2bFd1cCttUWFFN09Ta1dWaklDbnBQVHlNSHhU?=
 =?utf-8?B?eFE3enJIUGx2ZGxJbXFxeUhKNjZjWG9kUkVzR1d2aUZMVFEyaUlxaG5Wc0Fy?=
 =?utf-8?B?VUVrWExDZGJ6KzdWSFVDUUlOdklrZXZFejBXZEpZR2pockxONkxWZnd6YzNr?=
 =?utf-8?B?emFqUlRUVDFSMkVVZjB5VXlJL3czVTJ0Nzlpa0VkZ1dTbUM4TWRXc3NVNTMx?=
 =?utf-8?B?OS9YUW1MY1I4bFR1RmsvTjIrUG8yZjRHQUpGYWo3YzR6eDFObkNsSkF3U096?=
 =?utf-8?B?VW9GNHJWU0RTZnlqd1dNc3VQYkNId2crYmJqMWk5TjhLUmUrWFhPRmp1T2Jq?=
 =?utf-8?B?djFrRm0zVitIMVR2N2I4bTk0eDVlMU9nNEdNcUFSNkExd3Fud0FBRTFHWjAy?=
 =?utf-8?B?MG1yN09EampRRmM5Rk41anUycm4rQ1hqeFFHT3VFbWhmdFh0bmY5c2VOb3hx?=
 =?utf-8?B?R0FJQ1FGc0tBd0RmV29KcnZ0dk1HUWFPOWFvYlFuNCtqYlhPMHc2bGJhdW9F?=
 =?utf-8?B?S2RWZ1pTd3UvaG0xU2xydzJlVlFpbzVEYi95b3ZZZmRnWVFLdjllNTJmVmFp?=
 =?utf-8?B?SVZpSnlkV0RZeEZsaVBqQmwwNm0wKzVOL0dQcnNKMDdpVUMySm45VGkyS1VI?=
 =?utf-8?B?TjIwcUg4d2MwU1E0b0M5NHgyQlBKRzZuYWhOQXZQR3FjVVNScEdpR3k3UWdj?=
 =?utf-8?B?U0lWRzE1TEpVVDMxWE5qOUJpTUp0UTNCNXRBU1VoNzZZTWREdWZOS1BUMHlO?=
 =?utf-8?B?L1BKc1VoQWhZeEZhZFRsYVFxTFRDTXdnK3Ewc283WWFxMHUzNmV6NUFQbUlW?=
 =?utf-8?B?NzloT3M2eXNjUndIMHUwVktpeUIzRXNreXZrY0x6MlVhdWpYcTJ4UHNSVmZx?=
 =?utf-8?B?RWV2U3FSdndsOFZiUVpTQTNxTzAxaHNJQXhRMnpocGdCWTIzcElOamxhTytq?=
 =?utf-8?B?OUQ3bzZQd0JaZkV6QWRvSTVEa3NSWVB4eGhRNFVtdVFManRUOEJDV3RSUFM5?=
 =?utf-8?B?UjdVdVJaZklZRkEvQ2t2U09iVEN0V0xSVEE5OUVPenVzOU5HN2RiYWZxeWF3?=
 =?utf-8?B?b3lXRzRGYnNOaEF3ZGI5K1Q4bXFjYVBYUmRydGx4eHBxWjVRUEpTMkFaNW8y?=
 =?utf-8?B?MlRYMVF6SDlzdmtHc2o3QnBaaTFaUGc3WmNGQ1c4WlFPT2NtSnJ6MmhQdkhD?=
 =?utf-8?B?Q3lzSVJIT3c4anV0VmUwM1FpMlZmVXA1WTJLOUZEdUt1MUswMDV3bDJhVVhF?=
 =?utf-8?B?a21JWTAvdjVuNHBMaXRxY0RoLzNla3pzZmFzZ0VJL1dxSGxTSmNEa2tTRFZp?=
 =?utf-8?B?WTJ1emROM0ZZUkQzaDZzSTFqWndmUnBLaDhlYTY0Z3puVEMrOVUxVVdHVnc1?=
 =?utf-8?B?ZnVyVU9aTjdDNG5KRUgrRW5JVENuWG5udFBYWVRMcEVBYVB1ajZueFNqdGZ1?=
 =?utf-8?B?RnBqQkVLMUI4cFBDcHdCTjgwYWNTQTFIb0xhR2lTRDc2ZWpsK2JQU3dIVFFt?=
 =?utf-8?B?ZjRtUzlhcHp0NEx1QlptQUMzaWZ0eTNyenZMblNSdzZnMkJsNXRPMmErWU9J?=
 =?utf-8?B?amtSUTcxUXdTMXdtaWJaTGM3ZkViemdodVBOdDh1TVdvR3dtMkR1ajNGTUNT?=
 =?utf-8?B?OUtTWmdFMFBZakNrRU1nWE9jN0txYk1RSUZZMDBhTXI0bkx1a1lWREpiKzdF?=
 =?utf-8?B?TXpwQXFvNTQ5SEs5ZlVqSlVOU3M0WTRzbVplNC9iYk82RFIvMFhaZUtNWXFX?=
 =?utf-8?Q?JqbXGe6+qHcSzA8U=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cac25f8a-e6ce-4bb4-1b16-08de89b388f9
X-MS-Exchange-CrossTenant-AuthSource: DS0PR03MB8272.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 14:42:21.7629
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: jPyiJh7KU2pHP8PKGfocYgDm64TaZhLMrx4QfbARtKM2Ctzqe1fvvtesP4kp8CIKnRRKw8Y6J+q4YWEPEelAq8l9uN1rFoqHr56srA/gwnw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR03MB7383
X-purgate-ID: tlsNG-4011c0/1774363347-CCBC9900-518A2D2A/0/0
X-purgate-type: clean
X-purgate-size: 5210

On 3/19/26 8:31 PM, Andrew Cooper wrote:
> On 19/03/2026 1:29 pm, Ross Lagerwall wrote:
>> With lazy FPU removed, fpu_initialised and fpu_dirty are always set to
>> true in vcpu_restore_fpu() so remove them and adjust the code
>> accordingly.
>>
>> No functional change intended.
>>
>> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
>> ---
>>   xen/arch/x86/domctl.c              |  3 +--
>>   xen/arch/x86/hvm/emulate.c         |  6 +-----
>>   xen/arch/x86/hvm/hvm.c             | 15 ++++++---------
>>   xen/arch/x86/hvm/vlapic.c          |  3 ---
>>   xen/arch/x86/i387.c                | 31 ++----------------------------
>>   xen/arch/x86/include/asm/hvm/hvm.h |  1 -
>>   xen/arch/x86/include/asm/xstate.h  | 11 -----------
>>   xen/arch/x86/xstate.c              | 21 +++++---------------
>>   xen/common/domain.c                |  2 --
>>   xen/include/xen/sched.h            |  4 ----
>>   10 files changed, 15 insertions(+), 82 deletions(-)
>>
>> diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
>> index 942f41c584d4..d9b08182ac1d 100644
>> --- a/xen/arch/x86/domctl.c
>> +++ b/xen/arch/x86/domctl.c
>> @@ -1409,8 +1409,7 @@ void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
>>           c(flags = v->arch.pv.vgc_flags & ~(VGCF_i387_valid|VGCF_in_kernel));
>>       else
>>           c(flags = 0);
>> -    if ( v->fpu_initialised )
>> -        c(flags |= VGCF_i387_valid);
>> +    c(flags |= VGCF_i387_valid);
> 
> This is an API/ABI change.  Previously, creating a vCPU and instantly
> getting state will hand back a record with !VGCF_i387_valid.
> 
> It's fine - I've done a bunch of API/ABI changes in the FRED work, but
> it at least needs calling out in the commit message.
> 
> We have had a lot of cases where calling arch_{get,set}_info_guest()
> without an intervening __context_switch() would lead to subtle
> differences.  Generally I've been moving in the direction of
> architectural behaviour and not worrying about API/ABI changes which
> would occur naturally from running the vCPU.
> 
> That said, I think d1895441b3bad (2007) was the removal of the final
> consumer of VGCF_i387_valid in Xen.  We don't even have a conditional
> reset of state based on it's absence, and of course it's documented in
> the usual place, so it's really unclear what the purpose of this flag
> ever was. [edit, see below]
> 
>> diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
>> index 79697487ba90..885f5d304b2f 100644
>> --- a/xen/arch/x86/hvm/vlapic.c
>> +++ b/xen/arch/x86/hvm/vlapic.c
>> @@ -289,10 +288,8 @@ static void vlapic_init_sipi_one(struct vcpu *target, uint32_t icr)
>>           hvm_vcpu_down(target);
>>           domain_lock(target->domain);
>>           /* Reset necessary VCPU state. This does not include FPU state. */
>> -        fpu_initialised = target->fpu_initialised;
>>           rc = vcpu_reset(target);
>>           ASSERT(!rc);
>> -        target->fpu_initialised = fpu_initialised;
>>           vlapic_do_init(vcpu_vlapic(target));
> 
> This whole code block irks me.  x86 has two architectural events, #RESET
> and #INIT which are well defined, and this is using the former to mean
> the latter.
> 
> We are going to need to fix this, and it's going to be some fairly
> invasive renaming, but the result will be better. [edit, see below]
> 
>> diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
>> index 88018397b1ad..5e893a2aab94 100644
>> --- a/xen/arch/x86/i387.c
>> +++ b/xen/arch/x86/i387.c
>> @@ -265,7 +240,6 @@ void vcpu_reset_fpu(struct vcpu *v)
>>   {
>>       struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(v);
>>   
>> -    v->fpu_initialised = false;
>>       *xsave_area = (struct xsave_struct) {
>>           .xsave_hdr.xstate_bv = X86_XCR0_X87,
>>       };
>> @@ -282,7 +256,6 @@ void vcpu_setup_fpu(struct vcpu *v, const void *data)
>>   {
>>       struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(v);
>>   
>> -    v->fpu_initialised = true;
>>       *xsave_area = (struct xsave_struct) {
>>           .fpu_sse = *(const fpusse_t*)data,
>>           .xsave_hdr.xstate_bv = XSTATE_FP_SSE,
> 
> 
> Hmm, looking at the callers of these two, we find that Xen has
> VGCF_I387_VALID too, and does have a consumer of this flag.  (This needs
> deleting for sanity reasons.)
> 
> It also means that this patch does introduce a bug here.  Calling
> arch_get_info_guest() prior to scheduling will hand back a block of all
> 0's, claiming it to be valid.
> 
> We need to arrange for vcpu_reset_fpu() to be called during vCPU
> construction (i.e. so we've never got a bad FPU state), before this
> patch will be safe.
> 

I think there is a similar pre-existing bug with eager-fpu. With
eager-fpu, vcpu_restore_fpu_nonlazy() will always mark the FPU as
initialized so the vCPU may be created and then context switched in
without having either vcpu_reset_fpu() or vcpu_setup_fpu() called on it.
At that point, arch_get_info_guest() would similarly return a block of
all 0's claiming it to be valid.

In any case, calling vcpu_reset_fpu() earlier would fix both issues.

Ross


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 14:50:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 14:50:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260945.1554102 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w535U-0004N1-Rd; Tue, 24 Mar 2026 14:50:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260945.1554102; Tue, 24 Mar 2026 14:50:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w535U-0004Mt-NQ; Tue, 24 Mar 2026 14:50:32 +0000
Received: by outflank-mailman (input) for mailman id 1260945;
 Tue, 24 Mar 2026 14:50:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w535S-0004Mh-Lp
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 14:50:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w535R-001WQj-J0
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 15:50:29 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c2a4aa-e002-0a2a0a5209dd-0a2a45019438-24
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 15:50:29 +0100
Received: from [52.101.52.9]
 (helo=BL2PR02CU003.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c2a4b4-6400-0a2a45010019-346534092d52-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 15:50:29 +0100
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH3PR03MB7460.namprd03.prod.outlook.com (2603:10b6:610:199::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Tue, 24 Mar
 2026 14:50:20 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9723.030; Tue, 24 Mar 2026
 14:50:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jSGFSiJ/b3iiJ29qfK+0yq44QGQKyiE+dYBy4TzSNTO1AQ2oqezDbktrCnwKK8VWOcvITa5T/AyhRQbGu1xeMztyeWEjtu953Hsi8DJs948aEr8QvcPPtj14QimFB1Ofxhbpu+1fPxhlzyLvibxbTTkIapkOPLvMATo5PcwEmcpWDAQKeWgjo67nsiv6XSvDvARMYjIjshIuDkYfeVcmEK2Zm55Lbu6udnTlXwnSSg5KQx69z44iEMCTCFYDwJUIeD83zclQmfajJZbEbjDhiWOrAO24Uoot83FYmli0Ci9pdJSU2bDRxm6LuhlQBkpdvMPYtfxEJGvCW7tZK/NqOA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5iDFXhUIBetYfHEkNaSgVmrep20L/k8Pni+YdPg5Jz8=;
 b=nQXdbyF8Ibb37TTlUuhkt/jF3g4qgqrsfU/Iz67U+FrklnsFHViWBmXkwOKA7SH7GO2zxBp5EXu0mh26f4ERDm3hH3jl1jP3Qy4dfaZPaxjkslQYklhZYnwoanBNU7Od6o8z7b3Jy80D1kQAiG3sr6GRAWM49NYJSS7Jg7t2s9hXdizzHPGA/sF02QcCHaafJKuyV9j6mlakS7sztTOgGM1dnlNV1JgaSxYr7uDo2egaAZS1YFcW7fyrnpkf3PgKFdkh8WxU09qqn+ebLS2Y80NGQQSLHNaX6B/QpPSq7Aq2o5GXT+8knHKSQQ7nCNJbRuzkTreRnA4TSZbjHfejvA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5iDFXhUIBetYfHEkNaSgVmrep20L/k8Pni+YdPg5Jz8=;
 b=LGrw/Q2StLdfLZ4r6PZtGU2bMyiAM3Jwg45lvutkUlwmy/OCk5k8g3eJkiSC72VSif6fVkWakIxp6pjEPKhP8CwvHoimi4GblW0UAywSzzfcbag9Lrs1vgy3LkQK8CBxTtzR46gZizdRFKYTUvZbVOysKKe2yc0bIrjooQXy+Nw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <7b75bbba-51b8-4e2e-9b3f-e07c8deb962e@citrix.com>
Date: Tue, 24 Mar 2026 14:50:15 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH v1 2/8] x86/vmx: Remove lazy FPU support
To: Ross Lagerwall <ross.lagerwall@citrix.com>
References: <20260319132924.1469809-1-ross.lagerwall@citrix.com>
 <20260319132924.1469809-3-ross.lagerwall@citrix.com>
 <a67bbe7c-9c41-43e4-9d28-f5f221c96b95@citrix.com>
 <c646fd85-f526-435d-897f-c1ad72e6d234@suse.com>
 <4a03299f-cf0e-44ba-ac35-f13392eb83fc@citrix.com>
 <599e1de2-6468-4f32-a52b-408d8c63e8a6@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <599e1de2-6468-4f32-a52b-408d8c63e8a6@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0295.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:38f::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_|CH3PR03MB7460:EE_
X-MS-Office365-Filtering-Correlation-Id: 70562a52-fb93-4429-b575-08de89b4a51a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	VBMaDH20IaukjhwO101kINd2NxUy/8ygD+sUhPOxt2u7J5HFOGKTAvCM7gA4ZsM9tiAh3FJC7TygUISX5BV0IkGpdqynWz6CArkRCIQmt5ZMTzflMebBY5E4eWnmba4iWXyMfAae46aiEkqEWLNsrqrrwfJSOUdFh6P3DAwyn7pYmFXxcp0JvpxKXMnpS8igml+mtBlwvYPu/9wlw0Kdkw/W+mpl/Us4Ourvl4zGoKt9lDckRhfZnrepGSJamWO7zV7W7d1cCzuzz6nvJmSFuXH0q0yQEZW2OZUCVUz4B4tCfE86vSyJvqh3MqEgnO3cl/s/MVhQr6OBQQCHOLEbdBFzz/JftoRkS04qmoAtH3hZIQ6/viliSGN2S7s5icxDqCccAlaASeADcffI3ie37Ort13tdbxwwWTLAykeOaHpOLQjVPGV1KO+JFh5OGaXGA8ysgIBjzdHqajZhrvvjROhswYge25Fl3qSxQg6tzw0+UThJev5aR+0D+tfpO/xsIcyRNMpquM0NGgKHhsp5P/cStR1y74gtnks3KmL0AheJsuEE3udJDnom6sr0l2Dpz6ZXmt7HK/JNNEkTWKxrdbozQ62sV1sLUtzLCkM90XzqSSpVE/fNBfpNFRcaLQ7U4blkszscpjdJOjngQrEkZcYMH6aT9SP8P0LO3SNmzmGmcMw2VlWOnuSkWzDXXh4BcNP51FlVQNkL4/5A1ys4/dkYKypqyMCfdxXbP1FOWiU=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TkZteWZQbk9NNEZYaU9zUnBmOFpVYkpWdUJtdCtPbUlSWHdPaTl3Y3NIaVpH?=
 =?utf-8?B?VHViQWdtY3JyZ2F3emJoYzNCdGdiODdhS05LMTBibGF2Q1B2clhVQkVuVHpn?=
 =?utf-8?B?SDg4N2FBdHZmOUNWeUJFRlFiMmY3QmdSVEZTNUk3ZkJ3T2RVZ2NvOERnWEth?=
 =?utf-8?B?Z2FTaWpFSlU4NVY3NDhyNlJmTEVpcHZtQjhBSGJDcStGdTVkSkxTNTRFUjF3?=
 =?utf-8?B?S0tySjUrOXFsdmFQenhFeWpjditXYUJiN1ZGRmcxamh2a0pLYVM4WGNzN1B6?=
 =?utf-8?B?OEEyWlBSUzVENU52bWNOaTY3cEhhR0JqbXF6VncxaENwbW5KSVREdFZmQ3Iw?=
 =?utf-8?B?OXV2Vm5NeEMvbmErbGJrc1RjMjFndXo0dEc1bkt2STdack0zR3RPZFRibE1x?=
 =?utf-8?B?VEtRaW4zWlAxN0dneUwrTFZQTGdJeVlOb2QvQ3R2MCtNbVMvT3VZWDRjeWFz?=
 =?utf-8?B?RW1JS204N0hTdmxHUGxHcDFRU3MrT3Bpd1d5WEVLMndzOXRPYkJQcGFPOEd0?=
 =?utf-8?B?bGpQVkNZZjRYMFZEVjBzUXIzQllwNmdTQ24rSUhHaEVuRmNSZ1dKbFRydXhZ?=
 =?utf-8?B?dklKV3ZiU2Q3L0ZCcHNsT3diOThiekVVS3lLTEpMZkEwN29OSk5CRzZFUXQr?=
 =?utf-8?B?QVlKYUVieWpnVk5pWENEMWZ0dUFMWmdDM3ZYTWl4UGdZeEM0ZVUzRW5DVVNo?=
 =?utf-8?B?eUs1OWUzL3VIcVNvZHk4YVBrS1doWlZmSHFxMjVuelRXejE2MllrL1I1N3dy?=
 =?utf-8?B?SGk1UzZXVGRzNHFrbXJieHFSUXJRWlEyc1NOYXFETUNRVFRxVXhnb216UEJ6?=
 =?utf-8?B?aHZqR3E5b0lnYkN3cW14WHVBNWYvT1paWG9lU3hGRFFyb2tTbURNV1VFTHJE?=
 =?utf-8?B?Q2F3Qm94MkZlL25wYXFxODcyWEZxL2c1NGhFYVF3SEkxVFpxZlVBUHIyMUhi?=
 =?utf-8?B?anI1MEJ2ZkUvVE9Qa05yTVFQWkpxRjl1TTVleDZ1aHAyU3k5UVRYRzIyeDJF?=
 =?utf-8?B?T3JiSEVRVWJBVENTODhyWFJFK0FpMkpjN0JnWlV3RXo2QmVNdUIvRU5FcWZp?=
 =?utf-8?B?cG05SDNpaWhTekd5WWl5dEtHbzhqeTcvWEk5Qyt6ZlFqYTk3TlJBNVNCZ0hh?=
 =?utf-8?B?eGcxOUw4Z0h3OHdZcExXYWJkUWhVY1lHdFFRZFE2cDA4bEpIemk0cHY2K25S?=
 =?utf-8?B?SUpTeFhZVzVINXplcHBKNEJ2U2VnRzEvR0dKb3RTSEU4dWtvU0J0R0k4UUdu?=
 =?utf-8?B?YlRCdi83T3JmbTRPdi9Vd3kyOEpYMHBvVHdybXY1czNUci9qd3FYMGF6MVpx?=
 =?utf-8?B?YVByUmhZUHBGQ0c4cEM4djlnc3NpM3ZxRGJwZ3NwN3hwQTJNSTVLajM2bWtE?=
 =?utf-8?B?NmZtNUZUUmJEaVNzZlBWRjJrbFZqN2tTVDRSa1l2Z3pOc0xGTTRxbWMwSmdG?=
 =?utf-8?B?SkNhOU01aFdyQzNYVzhBMmVXeDFnaERMWUlFdHZ2UithZElmMnJsVnZmbzZ0?=
 =?utf-8?B?aDBsempIeUNXa1QreFBNTUN4ZitEUlI5c0VLMTlrWmU0cEdvUTl0ODVWSHdu?=
 =?utf-8?B?bnVCeDRDaCszcEFROVJVdkhZZkgvdEYzdUNKcmZpdXNJZVEzd0FWSjNiZjJS?=
 =?utf-8?B?anZPWm9vTWVjblNTWW1qa1E0VzBHTVBNVE05TmNNcGNlSm1QNGxKUjVzVENu?=
 =?utf-8?B?UytMSFE1ZVZ6Y3BzbGw2T0RTTzE0NG9yM3pqZ2dLSjZJamJnU1JJNVZqSXFn?=
 =?utf-8?B?WmhvM05GY25naytaSUlYUnh6N1JRRlh2WFhMcnBscUtmN0JpSzdSY2Q4cUNL?=
 =?utf-8?B?ZHM2YWFES092bzAwRXh6N04rakhuU0VmUGs3WkFWU0xNQUJLcGdDQ1pia0ZS?=
 =?utf-8?B?TE8rLzBYaVdJckU2V0lmNDhiSkVkaGp5d2JxcjBDZStVV0lscWVyajRzTVMv?=
 =?utf-8?B?aHA0QUZVTUFYTTZMTkR0em4xZXVrSHVzNzRVYXVVenE5alhQZThCM09nVFNX?=
 =?utf-8?B?emNSMkdnNStUNVlndVdyd0IwUHVIKzhGT0M0NlhmMmFGZmhieUpvQll4emE2?=
 =?utf-8?B?dkh0UGczRmZQWk85U1hwT1ZBY1JMOUhPVktETXdVZWV5em1VdTE3dzltYmlR?=
 =?utf-8?B?SnVYLzlQUlBpazFDcDdBWENGOFRLTVI3blU1a1BSb0ZaOVhudkU5L3htdmVF?=
 =?utf-8?B?ckQvVkpvWkdsd1lDSnE3Zit4ZFpSNE5iTWIySDZ2KzVDdUt4Q3FJUWJ0SEln?=
 =?utf-8?B?SkFXZVVQa0t5eVI3dGt1S3FxWngrbW53a3N1VGpSbkRJbk5DYjFiN0YxZjNh?=
 =?utf-8?B?azVMTHRsdUh6Q0hhQ2lSeFdPWjBORUY2UUJnVEFBeTA2SVhLMDFuZFhEbG11?=
 =?utf-8?Q?N41sS6nJkLXtr0ck=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 70562a52-fb93-4429-b575-08de89b4a51a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 14:50:10.1649
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: E8aO1ed8cB+CPCp31Iz+yQ5udE8kFuC7uony/bg8HqZkSfE0Sjzy9DDNKlQPfXZLrgAC40Io9MvXm9UI/p6JNFhtMcLE5uMfjYwXJMWbh30=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR03MB7460
X-purgate-ID: tlsNG-d62444/1774363829-4981DDF3-CA4DCF76/0/0
X-purgate-type: clean
X-purgate-size: 2340

On 20/03/2026 10:45 am, Ross Lagerwall wrote:
> On 3/19/26 4:54 PM, Andrew Cooper wrote:
>> On 19/03/2026 4:43 pm, Jan Beulich wrote:
>>> On 19.03.2026 17:38, Andrew Cooper wrote:
>>>> On 19/03/2026 1:29 pm, Ross Lagerwall wrote:
>>>>> Remove lazy FPU support from the VMX code since fully_eager_fpu is
>>>>> now
>>>>> always true.
>>>>>
>>>>> No functional change intended.
>>>>>
>>>>> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
>>>> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>>
>>>>> ---
>>>>>   xen/arch/x86/hvm/vmx/vmcs.c             |  8 +--
>>>>>   xen/arch/x86/hvm/vmx/vmx.c              | 70
>>>>> +------------------------
>>>>>   xen/arch/x86/hvm/vmx/vvmx.c             | 15 +-----
>>>>>   xen/arch/x86/include/asm/hvm/vmx/vmcs.h |  2 -
>>>>>   4 files changed, 5 insertions(+), 90 deletions(-)
>>>>>
>>>>> diff --git a/xen/arch/x86/hvm/vmx/vmcs.c
>>>>> b/xen/arch/x86/hvm/vmx/vmcs.c
>>>>> index c2e7f9aed39f..8e52ef4d497a 100644
>>>>> --- a/xen/arch/x86/hvm/vmx/vmcs.c
>>>>> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
>>>>> @@ -1247,10 +1247,7 @@ static int construct_vmcs(struct vcpu *v)
>>>>>       __vmwrite(HOST_TR_SELECTOR, TSS_SELECTOR);
>>>>>         /* Host control registers. */
>>>>> -    v->arch.hvm.vmx.host_cr0 = read_cr0() & ~X86_CR0_TS;
>>>>> -    if ( !v->arch.fully_eager_fpu )
>>>>> -        v->arch.hvm.vmx.host_cr0 |= X86_CR0_TS;
>>>>> -    __vmwrite(HOST_CR0, v->arch.hvm.vmx.host_cr0);
>>>>> +    __vmwrite(HOST_CR0, read_cr0());
>>>> (Not for this patch) but I'm pretty sure there's room to optimise this
>>>> further.
>>>>
>>>> CR0 should be constant, both here and in SVM.  Reading the active
>>>> cr0 is
>>>> an example of the anti-pattern we need to purge to make nested-virt
>>>> work
>>>> better.
>>> In which case, is it a good idea to purge the host_cr0 field?
>>
>> Oh hmm, I take back my R-by slightly.  We still need to initialise
>> v->arch.hvm.vmx.host_cr0 for this patch to be no functional change.
>> Easy enough to fix, or fix on commit.
>>
>
> Not sure I follow why v->arch.hvm.vmx.host_cr0 is needed when this would
> be the only place it is used? 

Never mind.  I'd mixed deleting this variable.  My original R-by stands.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 15:00:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 15:00:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260956.1554109 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w53Ej-0006M4-Pb; Tue, 24 Mar 2026 15:00:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260956.1554109; Tue, 24 Mar 2026 15:00: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 1w53Ej-0006Lx-LU; Tue, 24 Mar 2026 15:00:05 +0000
Received: by outflank-mailman (input) for mailman id 1260956;
 Tue, 24 Mar 2026 15:00:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w53Ei-00069G-Ph
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 15:00:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w53Ei-00D86E-10
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 16:00:04 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c2a6f2-bab6-0a2a0a5309dd-0a2a450aa898-16
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 16:00:03 +0100
Received: from [209.85.208.169] (helo=mail-lj1-f169.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c2a6f3-1772-0a2a450a0019-d155d0a9d07a-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 16:00:03 +0100
Received: by mail-lj1-f169.google.com with SMTP id
 38308e7fff4ca-38ad4677830so37746701fa.2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 08:00:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1774364403; cv=none;
        d=google.com; s=arc-20240605;
        b=ebVUX4F9WIWRYfrjZmvQzt6P7I+DZ8pF2Y2/b+oQWuby1blWt+5zYjIeB54Tm6Gn3W
         Geh/cSP//rNRlrk4lMhex4EnCZ1FxkLfSQiVPw+AcJ3aarP5c3n3E1oQXPybTRvJV8Mf
         tIL8ti0PkD5/MmeNxQkxmYD3h1e7IFADuLSsnX+3PUppVp+mPd4IAKI1z6GA7GwQfxhq
         vD/jksix8nt2d3TTwAbVwqNG4pdVpxG5wguLBieffsqtoR5JvH2YBIHd6EEE1kq/LW2+
         BYpS0ZXTrELZh0haJzkVReckf1mr/gOqiGmJF4lIMHRSQycSliO6iYFQFSMY6gLARJaB
         pqwg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=YSuTnvHSeVcFUB/+9C4fCV2nR4/iqnZ0NXe5dDdHJdw=;
        fh=ER/BYFrrpCrSSVfzOMF7Ku3o0WALv6zM9JFyjgxE93g=;
        b=JrcCZQKw9tidmLfPJQfE126q97gI3FAOjSgklrUX27o7BEf1VL5d7LbTRL/GomJ4ix
         seB9I2iw8MqSC6sqlw/YOmdD0+EYTQdVzPxIeRAoWSxtEINl05ZHoRF7yxGoPc2RlshO
         0t+S8IGSzSabiCSURMWKsw/LxLsDWY0W0zd7To4Qd+L1p0uXPptKsIoBLbYZDVKsoe6w
         I+ycHYdltRGxdanSR1Vycf6oX9mMHtrM9kU+6kFCvNiKVej9UqgAEDWTK2KoOXTheyKc
         clvfBqnTmkesvp2hURgXzdS4rrrgC1+drbj0pU2k+jYV0MV8YoXwjJTyNuxtLMFuy66Z
         +ObQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774364403; x=1774969203; 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=YSuTnvHSeVcFUB/+9C4fCV2nR4/iqnZ0NXe5dDdHJdw=;
        b=Eop+594yb4qqC47mMYi7nSfztC1vbcYAz30wOkIL+EGGRQBYu7FyRx2+UWFeWnNKUp
         ErYC6bH54HFqnIWkE4wOkSZr+VIzMjosaAfGhYDa3itg2HTDbRr3xAPeTIai0kxGTWn2
         agDfm8lLclzXNAV+4jIAYauRiVi8myzxBbmWOQQ08kCGiWakYFOJ2Vw/uC7gBpvBXtrT
         ftjhUlmfirI8pVJfm5V41hOTVUC668XHnTfKKDpY07qyITpYMm/cMjESwbLSl76u0DnK
         upj1g4Qu05ynP0+MP1uBFs5Ba2X9ZIlllat7saLLlvWy7FaWD3BQhWhWFVNgd46b6tfb
         rBdw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774364403; x=1774969203;
        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=YSuTnvHSeVcFUB/+9C4fCV2nR4/iqnZ0NXe5dDdHJdw=;
        b=K+BGIocThsP4AN5ucelD2DgOCf6xllYxqVc/fOttxjGfwYCXa9Jx/eUy+SwcY+76sQ
         dgbAK+GUSvztOqo7lahTxbZLgt9JpLlKu6b88AWTpO63b7+ECyd6vuDNCuQj7935WHuh
         57nl1U3UElSku+TlJB43L3JMmxyLikooUBNEx27BPbSVbwtOaBnHKI+KBDCSU47vG7hG
         L90jz9FODr4tfvXBqgrOARfl3gBxs21oc1r5793/fdY2uN8Qtof3g1em+zk/cR9diX+6
         5xTT3BdGj+IF12epbvl1zYXELPB+x5sz6/7ap6zPrHo4k97emR0ObPqcbbY5CLIsLstK
         ijXg==
X-Forwarded-Encrypted: i=1; AJvYcCWsNumPK39DLATnxT5fqM4EFXx7Mq3NhxDWp142xzbEo1J+Sc1ukQmvITtAJ2NHzaaE5AHS0t5ZANM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzDd3VxB5GGbi4P5hbwxHCT/Q+lU0qkonSoeC+cabmZegfRbO4m
	EOepwe1xqJ/kYeaRkreNXYL0ViAJQM9qOe3PUctOohoqx+zGwJlH6Bko+ej6JVHMIQjSsWc9tia
	XVJLUS6AJw7GxeJQDlLPklsaleElGggM=
X-Gm-Gg: ATEYQzxYn2XXAh1D9r0ERwlkbO1VoRMdGsQLzCFwAKYLHZsye+Ldugk9kVzR0Qz5+L3
	7zrkCgQg1aPR5rmTE9csARHM1cLdbKmiMZlV13CoseA+46oBPxhizV9Q0kDxLTIJ4PDAsbmU6wQ
	Dy7Sbm0q+PvwgkyGscxN9EMETT7UTig9o3FmGSOCiA+m98CoQja+jDiBZ7THS1BSc3+WIKkKzOv
	AVkAX7Lqj3rzGpIIXHQTar7WFvI8icH3N3pj2aYOwbPzJqzXTYwyCFOkARpbIexGDU7qGAqOiWU
	ELrO6w==
X-Received: by 2002:a05:651c:25c1:20b0:38a:6acb:eab3 with SMTP id
 38308e7fff4ca-38bf96f3a52mr38546621fa.35.1774364402501; Tue, 24 Mar 2026
 08:00:02 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1774353053.git.mykola_kvach@epam.com> <581179709977ce4cebb22597411048dc93b11167.1774353053.git.mykola_kvach@epam.com>
 <3882d56e-def9-4ff5-9014-f72e80c7a1c8@suse.com>
In-Reply-To: <3882d56e-def9-4ff5-9014-f72e80c7a1c8@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 24 Mar 2026 16:59:49 +0200
X-Gm-Features: AaiRm53OuS123wlfJDdFo4uwZri6vrHnnPHVdPLvwE7AuMJA9dgli6w0KkUc6ps
Message-ID: <CAGeoDV8=ezYesxz7AgdPP4K_vcJZhCTTsQ3UTRC95NiYDgPgZQ@mail.gmail.com>
Subject: Re: [PATCH v17 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
To: Jan Beulich <jbeulich@suse.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-4011c0/1774364403-53699900-A2C8B20A/0/0
X-purgate-type: clean
X-purgate-size: 1154

On Tue, Mar 24, 2026 at 2:53=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 24.03.2026 13:26, Mykola Kvach wrote:
> > --- /dev/null
> > +++ b/xen/include/xen/suspend.h
> > @@ -0,0 +1,25 @@
> > +/* 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 void arch_domain_resume(struct domain *d)
> > +{
> > +    (void)d;
>
> What use is this? None of our stubs does anything like that without a cle=
ar
> need.

The (void)d was only meant to make it explicit that the parameter is
intentionally unused in this no-op stub.

I find this useful as a reminder both for possible compiler
unused-parameter checks and from a MISRA-style point of view, although it
has no functional effect. Given how late this is in the series, I would
prefer to avoid another reroll for this detail alone.

Happy to send v18 if you think this is a blocker, but I'm also fine if you
want to strip that line on commit to save us both some time.


Best regards,
Mykola

>
> Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 15:21:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 15:21:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260972.1554120 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w53ZV-0001aD-EN; Tue, 24 Mar 2026 15:21:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260972.1554120; Tue, 24 Mar 2026 15: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 1w53ZV-0001a6-Ag; Tue, 24 Mar 2026 15:21:33 +0000
Received: by outflank-mailman (input) for mailman id 1260972;
 Tue, 24 Mar 2026 15:21:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w53ZT-0001a0-UT
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 15:21:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w53ZT-00DC0T-66
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 16:21:31 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c2abf3-5cb7-0a2a0a5109dd-0a2a450cedda-36
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 16:21:30 +0100
Received: from [209.85.221.54] (helo=mail-wr1-f54.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c2abfa-f93d-0a2a450c0019-d155dd36ddc0-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 16:21:30 +0100
Received: by mail-wr1-f54.google.com with SMTP id
 ffacd0b85a97d-43a03cb1df9so1549823f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 08:21:30 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b6470b243sm39568431f8f.26.2026.03.24.08.21.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 08:21:29 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774365690; x=1774970490; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5L1sTj3Vr+ZG58jSmqe7T9ByzXbgZJUiuRPRTwWT/30=;
        b=d1Zs1e/1vYaeiE8Ig7lEO5aptSYaFvx6r27UNvNs4iO4OBqYOiqnzOJG0MVM8buXQf
         NOqAx34yllL9uP6SrphUk6ts7d//rqDuYwg6No/yRCEkOADgi51/O+7wVWNNt/ySxCgn
         NYAj2U9EwXxGGr1sRrDz7nkH/VtzJhM74BnrglnXUfK+ysBmUq9b9IVTLrvm/aJdkElO
         O5otjpJzNAq3l6jLmAewp+hxW3YhTkA7T0ZLmerimyikffzXDdRpiD+s3A0sFdvEtHtj
         GCV2rBMPKxkc8UdKMqwqaZev2yaOau8P73lpvh3l5DgH4EC63JE67qRANgDZAfxnoWuP
         Zggw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774365690; x=1774970490;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5L1sTj3Vr+ZG58jSmqe7T9ByzXbgZJUiuRPRTwWT/30=;
        b=XnqKvZwZsyWF+E/zJsHNKwt8crccza9STiLDlZp5cv1QHbLjd0Xf0tt7wC0ZtbnBu/
         EAqaAJc8yxeJ2Fi5i0V67WcICdyMpYjSdzIPkb51UXKGnE8Y/inLOjoa622923qGsdGk
         +gklSo2s+pS07yqarHgS8vX/NQCbvy261X8KY2k5hvDgdJ0/6x17A0K52oOq5ssJ+6M/
         g1KDOO8x7Xnvf7HRTwJ1/HK0Y5a8yQhXka6VL8+umWciJO6jHS84+a4gjMQ2QPqoMD7d
         8uF50LuYBUtwKwpuZLL54MB3YXtI3lL+mVu8JYo1yP/2KpZ+WluO5TLjpv9/Ed3hbbod
         +10g==
X-Forwarded-Encrypted: i=1; AJvYcCUFxetkngEuQN7G+8zHXSlqLeLGJ7DGgJwCSv4gBATVCLNwRrvFuxXif7MOlfyeakAx15kP+Q821ic=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzu6C3Je+Ah7yod/Ev8+QfmOX2jAJU5vVZ1ssX6BGJINAnZdl4k
	SoDoeLm6R5aSMUS0pwaCWZl912HSkgzCIpDoPRrTnP5XQ1WAYW0UcUoIO6grANlhVw==
X-Gm-Gg: ATEYQzy6ZK2M6KdKlRiaNAtAKKOABkM5rZyBU/fLPd2o2v2jfhEixeLn/loFUqvwzHb
	9ov3NzE4H3ITjaRKIOgo3D83JdLrhiKKpMw8Rpp3GjpT5FYDauv6GiF6veJUsZVHLo9hHdrbrMb
	O42KX120qpDxHgDmLggO8YsfMpXiWRA2uK35AoI70D/2mwk0dOsOnh7k/cU7HPqHyb4OmAHNio8
	9e6UP4BJZjTgZWS8JTjcGBxqGsYHUvi+qiWVbtj+2B9eohVoULyj4Rn9YiZ8xxvi16GaqgfjWea
	BASpKqmLSrgrmWxov3K8pZ59NojyXaWoB2xWay2hhYHthBsCZnOxDI60tvR50QWYL65qJmHK3as
	Fb8xlnZWfqplwVMmYEQYEn584ItktGQtWzSJNKlXiewN2NFNucUGWfIGAdy53qat1iSBKE1ydrj
	wF8BDw/+9Y2VtEct1wl8UP42YNsJqquJrY9DzWnYyZ3598rFJk9Fh5kgOuvOzllxQu2RZrhep48
	FN6uGF2OFgnn+M=
X-Received: by 2002:a05:6000:2906:b0:43b:498f:b039 with SMTP id ffacd0b85a97d-43b642388bcmr25822861f8f.9.1774365690198;
        Tue, 24 Mar 2026 08:21:30 -0700 (PDT)
Message-ID: <f17c9579-fb91-41bf-b4e8-faf5b79c7c6a@suse.com>
Date: Tue, 24 Mar 2026 16:21:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] ioreq: Unify buf and non-buf ioreq page management
To: Julian Vetter <julian.vetter@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20260316111653.178104-1-julian.vetter@vates.tech>
 <20260316111653.178104-2-julian.vetter@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260316111653.178104-2-julian.vetter@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1774365690-F54B6734-2E1DB27D/0/0
X-purgate-type: clean
X-purgate-size: 4391

On 16.03.2026 12:17, Julian Vetter wrote:
> Switch the ioreq page mapping in hvm_map_ioreq_gfn() from
> prepare_ring_for_helper() / __map_domain_page_global() to explicit
> vmap(), aligning it with ioreq_server_alloc_mfn() which already
> allocates domain-heap pages and will now also map them via vmap().

In debug builds it did so before already, just indirectly through
map_domain_page_global(). You may want to adjust the wording slightly.

> With both paths using vmap(), vmap_to_page() can recover the struct
> page_info * uniformly during teardown, removing the need to cache the
> page pointer in struct ioreq_page. So, drop the 'page' field from struct
> ioreq_page and update all callers accordingly.
> 
> Signed-off-by: Julian Vetter <julian.vetter@vates.tech>

What's missing is _why_ you actually want to make this change. Without
that info, one may want to reject the change for adding overhead for no
gain. This would then also help with naming choices like "base_gfn".

> @@ -128,8 +129,9 @@ static void hvm_unmap_ioreq_gfn(struct ioreq_server *s, bool buf)
>      if ( gfn_eq(iorp->gfn, INVALID_GFN) )
>          return;
>  
> -    destroy_ring_for_helper(&iorp->va, iorp->page);
> -    iorp->page = NULL;
> +    put_page_and_type(vmap_to_page(iorp->va));
> +    vunmap(iorp->va);
> +    iorp->va = NULL;

In ioreq_server_deinit() you alter a comment regarding
arch_ioreq_server_unmap_pages(), which calls the function here. The
property described there looks to be lost.

Here (and in the counterpart function below) I think you also want to
leave a comment that this is effectively
{destroy,prepare}_ring_for_helper(), merely using vmap(). That'll
increase the chance of noticing a change is needed here as well in
case those functions are modified.

> @@ -157,17 +163,45 @@ static int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
>      if ( d->is_dying )
>          return -EINVAL;
>  
> -    iorp->gfn = hvm_alloc_ioreq_gfn(s);
> +    base_gfn = hvm_alloc_ioreq_gfn(s);
>  
> -    if ( gfn_eq(iorp->gfn, INVALID_GFN) )
> +    if ( gfn_eq(base_gfn, INVALID_GFN) )
>          return -ENOMEM;
>  
> -    rc = prepare_ring_for_helper(d, gfn_x(iorp->gfn), &iorp->page,
> -                                 &iorp->va);
> -
> +    /*
> +     * vmap() is used for the Xen-side mapping so that vmap_to_page() can
> +     * recover the struct page_info * during teardown, consistent with
> +     * ioreq_server_alloc_mfn().
> +     */
> +    rc = check_get_page_from_gfn(d, base_gfn, false, &p2mt, &page);
>      if ( rc )
> -        hvm_unmap_ioreq_gfn(s, buf);

With the comment above addressed, I think this should be possible to keep.
(FTAOD the same isn't true for the other error paths further down.)

> @@ -262,8 +262,9 @@ static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
>  {
>      struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;

This is a good place to comment on the patch title: Here we're dealing (in
unified manner) with both buffered and non-buffered ioreq-s. There's nothing
being further unified in this regard. I think you must mean something else.

> @@ -309,14 +310,13 @@ static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
>  static void ioreq_server_free_mfn(struct ioreq_server *s, bool buf)
>  {
>      struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
> -    struct page_info *page = iorp->page;
> +    struct page_info *page;
>  
> -    if ( !page )
> +    if ( !iorp->va )
>          return;
>  
> -    iorp->page = NULL;
> -
> -    unmap_domain_page_global(iorp->va);
> +    page = vmap_to_page(iorp->va);
> +    vunmap(iorp->va);
>      iorp->va = NULL;
>  
>      put_page_alloc_ref(page);

Operations want re-ordering a little, to retain the prior property of what
the if() at the top is checking for getting cleared _before_ freeing /
unmapping anything.

> @@ -819,12 +821,12 @@ int ioreq_server_get_frame(struct domain *d, ioservid_t id,
>          if ( !HANDLE_BUFIOREQ(s) )
>              goto out;
>  
> -        *mfn = page_to_mfn(s->bufioreq.page);
> +        *mfn = page_to_mfn(vmap_to_page(s->bufioreq.va));

You did look at what vmap_to_page() expands to, didn't you? If you did, didn't
it occur to you to use vmap_to_mfn() directly? (Applies elsewhere as well.)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 15:24:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 15:24:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260980.1554127 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w53c8-00027Y-Pa; Tue, 24 Mar 2026 15:24:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260980.1554127; Tue, 24 Mar 2026 15:24:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w53c8-00027R-N3; Tue, 24 Mar 2026 15:24:16 +0000
Received: by outflank-mailman (input) for mailman id 1260980;
 Tue, 24 Mar 2026 15:24:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w53c7-00027L-ST
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 15:24:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w53c5-009UwA-MT
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 16:24:15 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c2ac89-2eae-0a2a0a5409dd-0a2a4502d91c-48
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 16:24:15 +0100
Received: from [209.85.221.54] (helo=mail-wr1-f54.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c2ac9f-63bb-0a2a45020019-d155dd36f1d0-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 16:24:15 +0100
Received: by mail-wr1-f54.google.com with SMTP id
 ffacd0b85a97d-43b40fb7f95so1386462f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 08:24:15 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b6cdfdfa9sm29668237f8f.9.2026.03.24.08.24.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 08:24:14 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774365854; x=1774970654; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uzTsoOoAs6SJqBA438k0E+No03ynwPt+6KYawkFnI4A=;
        b=acZoiajJ990QfpkW1S9Nzue4z9tVNuujlH0W7gIbUplPrkaSzpS4Ugv6+HeQ/uL1nc
         /0S9nLS8XzGbD6u+hqH/jSZAUG4yvOjzPEK+q1uWNgONfYdtV/j6yrP5KSbPT8SMN8A1
         x8VYqjk4sMxHDViHlin5fExvjrYquI41zd0plq7/PCQ00qAEfcMkcb2HpLZ0VlhSS8yg
         l0cLDtIBrs1Yfdp1BcKucNgsg8K5oUv6tfSJGmamAbLl2pC13pjUA7x4jR2Oq1P0eAiX
         kSnfD6K6i+btP+CQD0XjqM9ThCiDquCwvu9PhvyvexXSKsvyPm0EBHgkocDN8gQ1GIWS
         fhiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774365854; x=1774970654;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uzTsoOoAs6SJqBA438k0E+No03ynwPt+6KYawkFnI4A=;
        b=L59Srki/5zffJby+iBqaC+bDkn42KMTyF7oVh0k5Xk9U/DvbSjR1zZjBB2wuWCOdVN
         j569XepBDOT25qQYqco17sW3/PMjA0z5ICjktwfbwysivRrWEgTvz/5yYKKwijZVXT6U
         uhf91D9ApOJLv2wuq7Oe3cOL2sodCg9WYgQzbCQBEnMaNI0G6U+G5lJz4XYhTLcPIFXN
         +9ehBbNWM+afNSDdNMjZPlMEdR3OCpUvNaLk6TYQYVCV+vdXMEKC2VS0tUHXy8PRJJ5L
         WMWqzHrrXVHdcn+wmlaQA38smG6HMoLeSzwO3CXCfuTJKSASkeny3qjME8JE+ajItwI4
         rVrQ==
X-Forwarded-Encrypted: i=1; AJvYcCXBJQ9JkuO2le8CTSh3Bbm4aNe/MWs0H50kGNnvOdllpKxdLrx0KjjxUPKnmSZEKVPWM5xS6MfYhsQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzf8CGuLp3a5jsB9hLTrFt5acTefL9pIu77TVodUHiIN6oF01YZ
	ZhN4z6+E68ZXGJJjYUr0jDvjI0p8gywBNxmY/PnlSnAMa6MWBpkJ02BIjh/zVZQ/Eg==
X-Gm-Gg: ATEYQzy49NwV+fqV3XfmsACs/1DHSZRLacgL2LNAUFCm3boXWDHcDiqaLM748GjGo8p
	qGxPhA8qSbPrNWeiQn/hrAG/MBG8DFb9fGAd9hTeUFHMhAtJ0A6rjU2ptUtA2Wb6AZMKa9cj8L3
	EV9llEFxG02iqBMtyV4B4k9DteUOIBicMT4Bbz1Lkh8xvuOxTAU0Cql0CBld97MMcsAWpCXcPP1
	yEypyuXOn2dB/NZV7lxh7N2ZX76UtKmsO0uE1ILvLeIQxITfd8LMitz+nf1sPDR6rYxOPMj9hFu
	Q1dJQlqLg+mPjM8hsEvDjZh4cp0YBUyTMjSLfXBxdUWGCjRQW7qaiaffGcMzNuOlZnDXvdBoI6o
	E3bwKa91jfsMfhMqp/MJ39Mf1DhPgLVx5Jz782afCGdXd5wuFRhmYdFuOZPzeGJflpBzfDKiAGd
	Pl7APfhsy36a9rtM46zjTt9B3Smmw7ovshEQDSdXlUb8XtqQCOUcTNXTH6efUDLkthuzYbEhCW2
	cQC81asVIOY/eI=
X-Received: by 2002:a05:6000:290b:b0:439:c6d9:7fc with SMTP id ffacd0b85a97d-43b64264b1dmr25812145f8f.25.1774365854475;
        Tue, 24 Mar 2026 08:24:14 -0700 (PDT)
Message-ID: <1e2393d1-4744-485d-aca5-1907115a1376@suse.com>
Date: Tue, 24 Mar 2026 16:24:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v17 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1774353053.git.mykola_kvach@epam.com>
 <581179709977ce4cebb22597411048dc93b11167.1774353053.git.mykola_kvach@epam.com>
 <3882d56e-def9-4ff5-9014-f72e80c7a1c8@suse.com>
 <CAGeoDV8=ezYesxz7AgdPP4K_vcJZhCTTsQ3UTRC95NiYDgPgZQ@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: <CAGeoDV8=ezYesxz7AgdPP4K_vcJZhCTTsQ3UTRC95NiYDgPgZQ@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1774365855-42E82DB8-B743FCB2/0/0
X-purgate-type: clean
X-purgate-size: 1305

On 24.03.2026 15:59, Mykola Kvach wrote:
> On Tue, Mar 24, 2026 at 2:53 PM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 24.03.2026 13:26, Mykola Kvach wrote:
>>> --- /dev/null
>>> +++ b/xen/include/xen/suspend.h
>>> @@ -0,0 +1,25 @@
>>> +/* 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 void arch_domain_resume(struct domain *d)
>>> +{
>>> +    (void)d;
>>
>> What use is this? None of our stubs does anything like that without a clear
>> need.
> 
> The (void)d was only meant to make it explicit that the parameter is
> intentionally unused in this no-op stub.
> 
> I find this useful as a reminder both for possible compiler
> unused-parameter checks and from a MISRA-style point of view, although it
> has no functional effect. Given how late this is in the series, I would
> prefer to avoid another reroll for this detail alone.
> 
> Happy to send v18 if you think this is a blocker, but I'm also fine if you
> want to strip that line on commit to save us both some time.

Stripping while committing is fine with me, but it's unlikely going to be
me to end up as the committer of this series.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 15:27:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 15:27:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260989.1554138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w53el-0002it-77; Tue, 24 Mar 2026 15:26:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260989.1554138; Tue, 24 Mar 2026 15:26:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w53el-0002il-2K; Tue, 24 Mar 2026 15:26:59 +0000
Received: by outflank-mailman (input) for mailman id 1260989;
 Tue, 24 Mar 2026 15:26:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w53ej-0002if-Ux
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 15:26:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w53ej-00DdOV-6m
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 16:26:57 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c2ad40-bab6-0a2a0a5309dd-0a2a45028734-4
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 16:26:57 +0100
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c2ad40-63bb-0a2a45020019-d1558030a9bf-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 16:26:57 +0100
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-486fe36cfabso22504365e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 08:26:57 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4870f7f5682sm31572855e9.3.2026.03.24.08.26.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 08:26:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774366016; x=1774970816; 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=ODZCxIGZjnHbkVmC3bG1mIyGlf3Z2j1k8VIBD4mpc6o=;
        b=B3301QOYbUp/5OZYgbrT62vcP74hXtfYYqQe1OxzX56htZxFNdWT0mbyT+N7Wp9YSg
         uEVR8Cnwz6IGnL60RfACx+MWc1LEUcEOMPCA6hZg4ARAcpGc+VEdMYk+G7mBb7vPzY1q
         bn5WmYhk21OJRkoW2JlszH5pBqiEskDTNv7H67mE/rL+90jiIXCuuGDRrgLC0Hy/M0Yp
         gqR1H6tHCxCQNJ7lAXLi1VYZN9IYJ3HtnpCF88dmUnh6ME5u6jTr3aK8qJ/C298rPNx8
         IU+gREfhfmgotxm70hVCCYy/PM+HIOzWL+jkTxz9VDzNJ9IpJZuwHJrFJ5rxSibPBCoo
         kcFw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774366016; x=1774970816;
        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=ODZCxIGZjnHbkVmC3bG1mIyGlf3Z2j1k8VIBD4mpc6o=;
        b=G7qhNyGW6drqTCmJKRBGRTWveJODZtl3VHYLyuaDywY4/wPyHt0iUBeGDoAtLZ5dLC
         oVmRxmf9SZFHm9x8LPMkOCnYpI7qI+ZHO1qIOrN7cp/GIwklESwjq8XumA74NdqmyCTA
         GMhS5zE10rRmDfS0+bp8dXBL+rbntu/9GvFXAfxTg/yHg8T6ZCo48AMaCBqcDMAue8Nt
         DURu5GJVswjf0rppayoMEY7HmU3aOxgfT07AM5Ddp1Ss94/GSJpL1I4QRACPTaQWAfDX
         Im58HeI5jeEJc3eiHPtkJt1vAlJpOAVwmwcdV1uvvD3hMsJngiYHZZMWKLYlvW5DoHzP
         ub4g==
X-Gm-Message-State: AOJu0YwipzBOcwFV2MAEkgMi4TIJxyZAps80Zej0ZOu8gWRcis1zgkcQ
	XWwBA+tyIg0/waMZHNklAt9Er15va+iswspgSQJZPAida2z2M6LhpZ5N3FwevZh3xEArZ6feOgQ
	ksQq79A==
X-Gm-Gg: ATEYQzwoUi71IFD1xySsOjBNNO+FAn283x/n1UgyEYLL/xxRvJ+OCF1TliunsO+QAmU
	U20vKNUIry7oUkd1Id9z0A+JMTHj6oKEgUlAEv2vIa9/BNRJ8vgUN52MWY9Dsbnc40n5RL67tLk
	WxvNvlBCRHFUciuizMjg0sY1akU21VDt5l3zE9bQaUzjTyB34hyMHy7CRO82zXhPe7XyLRj90u0
	VloBnkwjOtd98lQQ/KZSWQyH+YNtD7nyDSJGvyg1gF7uAurr9ptuCrf2doIaHJgPnbuX4Zo+2ah
	JELqql3gsp3gnSCTUmcTeXWKijDmnjblcjLZHeEMWOpkN64+qnwU4UMkkLXRT8oghMAWSOD5Plh
	ehmY9hCgBgkANksaR/TSphw0FW7p3bX4YDL/ycU+cVZjojBpPRg1nks1WFSpmgmrU5y2t2lHFhe
	sHT9R9omxDr4tvV0S3UooO8bPDY4GcE9RMTEpmGzv6qt9t4YPAKS+cKCXTVzk8RuBT0CVdbKDI7
	i9X/xJVXIOYfFY=
X-Received: by 2002:a05:600c:3106:b0:486:fbc4:8fe2 with SMTP id 5b1f17b1804b1-487160aac25mr2322785e9.15.1774366016512;
        Tue, 24 Mar 2026 08:26:56 -0700 (PDT)
Message-ID: <cb5ad24b-03a5-4c1b-9d98-8df534854b2f@suse.com>
Date: Tue, 24 Mar 2026 16:26:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Kamil Frankowicz <kamil.frankowicz@cert.pl>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] unlzma: avoid UB shift
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1774366017-40497DB8-796185C1/0/0
X-purgate-type: clean
X-purgate-size: 918

Shifting signed quantities has restrictions. Since the wrapping macro of
read_int() type-casts the result anyway, switch function return type as
well as the local variable to the corresponding unsigned type.

Reported-by: Kamil Frankowicz <kamil.frankowicz@cert.pl>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
We've inherited that code from Linux, and the same code still exists
there. As I'm entirely uncertain whether they would even care, I'd prefer
to not take the route of posting a patch against Linux first.

--- a/xen/common/unlzma.c
+++ b/xen/common/unlzma.c
@@ -30,10 +30,10 @@
 
 #include "decompress.h"
 
-static long long __init read_int(unsigned char *ptr, int size)
+static unsigned long long __init read_int(unsigned char *ptr, int size)
 {
 	int i;
-	long long ret = 0;
+	unsigned long long ret = 0;
 
 	for (i = 0; i < size; i++)
 		ret = (ret << 8) | ptr[size-i-1];


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 15:51:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 15:51:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261006.1554145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w541w-0007OK-2Q; Tue, 24 Mar 2026 15:50:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261006.1554145; Tue, 24 Mar 2026 15:50:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w541v-0007OD-W3; Tue, 24 Mar 2026 15:50:55 +0000
Received: by outflank-mailman (input) for mailman id 1261006;
 Tue, 24 Mar 2026 15:50:54 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w541u-0007O7-DZ
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 15:50:54 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w541t-002jyM-Pf
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 16:50:53 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c2b2cf-5cb7-0a2a0a5109dd-0a2a450b9050-32
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 16:50:53 +0100
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c2b2dd-ef63-0a2a450b0019-d1558036ec61-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 16:50:53 +0100
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-486507134e4so17974445e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 08:50:53 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b647120a1sm40792140f8f.30.2026.03.24.08.50.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 08:50:52 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774367453; x=1774972253; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6H+fWNvFjytn0KdbQL/2Do7fiGCzA00Gpa1KeCPYAWc=;
        b=bcCUlxLEtl0imRRRqpkJ0BH5oUpE9s4rZS7/brhD/TO5BWFXoTthqH3x49n4/Ibu/V
         egCn0Tqt31cTU1wF/cwXGs9jZzq3LPIoJPYUCIsH5MApAVfPJ/tXjQcHkgvuPjFEL+Pz
         h/dufNnmMKOWa2/A+FCEZDEGetFI9cjPQjbVD1cdNA2nqqzhx6PebEVObcSPOeaB0HFJ
         DCW5J/zSzDop7CrJyVkl6jmF3WTbxeCdMcP1iFh0gkIM0Sq3w+T+MUrhGQeu42JEGrvw
         LRFji0u1ZcqNAPng0YAijk7jt7/LD+SdykGFXss4icG9pZAK29BeveteC3KC1gDn+/m+
         WZ+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774367453; x=1774972253;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6H+fWNvFjytn0KdbQL/2Do7fiGCzA00Gpa1KeCPYAWc=;
        b=nKUGDyQLT/mqcvS4sDVQ49TuBDysgwcJ/heC0xM1sHNDi61U/51NtvmJrR9oXLR31F
         3qsG91Ezi2frpc5a40PBTlS6Psu+kM/a0NFCHxN/3ggIQIQnUyvOrTnRdg/rEb+d3n6x
         izJW3Zw8cRNYxzo8ODr2XzuGsuW4XdRYRKdbblB48oT5la+hObWM2t7N35oxViAYuiiW
         1ARJzYunMdlJY9WiDFld6IRsQnfiNbK9KI4WYok6mX0tYokxLZH5ijqQtAbay+HTtrXM
         99MPf83YsIejplk3/RNCl/+WzrVpRCZYxGIu3UrAzCV/1UCFOYOfVZYT6bLu9ofnvBEV
         6OWQ==
X-Forwarded-Encrypted: i=1; AJvYcCUHkfZHvyHuqfo0MfOn1zPDWhhOMHl0iWRoFwBTdyiIGZ+fnuWermdbL8pTbLWBWe6y+CIZl1c8bdU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywqu3FnAT6Cs1WsrHtdGLqsu4RA4KdSvDy1W7s+mBEXcfUV79pX
	EXJImPlOIb5mGHLC9252HKlVhe0wpDvvLYHT2/BFe91XodCdd2uz912KMsKPgRly3A==
X-Gm-Gg: ATEYQzyk9ASU5n3i9PGJeYLB+TVU3kY0x+nXc8ivTCqBBebigjyHJAOy5956Hwz3jW3
	8YGV7DYBh3n6UJO26ap2ojLSoj5igSQUQconBhf7f2dd9G2fAVTUjJz9zxYnMxMjN/2ydsxQolM
	yFRgXrxdMonx6B7DuYTGDkjSKEc2ecRlZBDqjv+fq8UNMFG54AXD4McHdVhqeqU7DClTMMjowIy
	+pWgH/BoK9pj8ypo2X4gBnOkzRDcwp+j7e5jYAacDvmuuVjK9y4Zz+Xyc2Gfry03RuUDSEHFuTj
	ttXfEJFGM+ROnQQtXYFdhSRlHDv7vPG5ITkucj9ak4/O9+qC0x4eYqdCP0E+9Qg1LMpIhBVo2mS
	Mpp07xv3MTR3opMXV7C/M3br3DTYJ35tzdJMEl8wlhjZ5VEPsvhf/cVVT5Cv0matyyNxKcsd+GS
	m/WUsRy9wR32BIlXzzCF6VhLXgRLsHOsb4+uqZlAeOmfVpdxfELOgsPFbEd6NR3QPHCMnoBTlXg
	Jku5rFt9LkB3io=
X-Received: by 2002:a05:600c:1394:b0:485:4388:348b with SMTP id 5b1f17b1804b1-48715f0389dmr4840375e9.0.1774367452933;
        Tue, 24 Mar 2026 08:50:52 -0700 (PDT)
Message-ID: <5553b84a-d34e-4008-ad65-a322555b5ebe@suse.com>
Date: Tue, 24 Mar 2026 16:50:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 3/3] x86/ioreq: Extend ioreq server to support multiple
 ioreq pages
To: Julian Vetter <julian.vetter@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20260316111653.178104-1-julian.vetter@vates.tech>
 <20260316111653.178104-4-julian.vetter@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260316111653.178104-4-julian.vetter@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1774367453-98ABC112-0ECC46F3/0/0
X-purgate-type: clean
X-purgate-size: 6850

On 16.03.2026 12:17, Julian Vetter wrote:
> --- a/xen/arch/x86/hvm/ioreq.c
> +++ b/xen/arch/x86/hvm/ioreq.c
> @@ -163,6 +163,14 @@ static int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
>      if ( d->is_dying )
>          return -EINVAL;
>  
> +    /*
> +     * The legacy GFN path supports only a single ioreq page. Guests requiring
> +     * more ioreq slots must use the resource mapping interface
> +     * (XENMEM_acquire_resource).
> +     */
> +    if ( !buf && nr_ioreq_pages(d) > 1 )
> +        return -EOPNOTSUPP;

Nit towards the comment: It's not guests using this themselves, but their
device models. This wants wording accurately.

> --- a/xen/common/ioreq.c
> +++ b/xen/common/ioreq.c
> @@ -261,8 +261,9 @@ bool vcpu_ioreq_handle_completion(struct vcpu *v)
>  static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
>  {
>      struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
> -    struct page_info *page;
> -    mfn_t mfn;
> +    unsigned int i, nr_pages = buf ? 1 : nr_ioreq_pages(s->target);
> +    mfn_t *mfns;
> +    int rc;
>  
>      if ( iorp->va )
>      {
> @@ -277,11 +278,20 @@ static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
>          return 0;
>      }
>  
> +    mfns = xmalloc_array(mfn_t, nr_pages);
> +    if ( !mfns )
> +        return -ENOMEM;

It would be nice to avoid this allocation for guests requiring only a single
page, perhaps even for ones requiring only a few. (Ideally we'd avoid such a
runtime allocation altogether, as they hinder certification aiui.)

> +    for ( i = 0; i < nr_pages; i++ )
>      {
> -        page = alloc_domheap_page(s->target, MEMF_no_refcount);
> +        struct page_info *page = alloc_domheap_page(s->target,
> +                                                    MEMF_no_refcount);

To limit churn in this patch as much as possible, this scope reduction of
"page" may want to also move into the earlier, purely mechanical change.

>          if ( !page )
> -            return -ENOMEM;
> +        {
> +            rc = -ENOMEM;
> +            goto fail;
> +        }

This and ...

>          if ( !get_page_and_type(page, s->target, PGT_writable_page) )
>          {
> @@ -290,41 +300,60 @@ static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
>               * here is a clear indication of something fishy going on.
>               */
>              domain_crash(s->emulator);
> -            return -ENODATA;
> +            rc = -ENODATA;
> +            goto fail;
>          }

... this error patch have different cleanup needs, yet they both simply
"goto fail".

> -        mfn = page_to_mfn(page);
> +        mfns[i] = page_to_mfn(page);
>      }
> -    iorp->va = vmap(&mfn, 1);
> +
> +    iorp->va = vmap(mfns, nr_pages);
>      if ( !iorp->va )
> +    {
> +        rc = -ENOMEM;
>          goto fail;
> +    }
> +
> +    xfree(mfns);
> +
> +    for ( i = 0; i < nr_pages; i++ )
> +        clear_page((char *)iorp->va + i * PAGE_SIZE);

As before - please prefer casts to void * when no particular type is needed.
Plus you don't need a cast here at all, do you?

I wonder though - might this not better be a single memset()? (Else we may
want to introduce clear_pages().)

> -    clear_page(iorp->va);
>      return 0;
>  
>   fail:
> -    put_page_alloc_ref(page);
> -    put_page_and_type(page);
> +    while ( i-- )
> +    {
> +        struct page_info *page = mfn_to_page(mfns[i]);
> +
> +        put_page_alloc_ref(page);
> +        put_page_and_type(page);
> +    }
> +    xfree(mfns);
>  
> -    return -ENOMEM;
> +    return rc;
>  }
>  
>  static void ioreq_server_free_mfn(struct ioreq_server *s, bool buf)
>  {
>      struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
> -    struct page_info *page;
> +    unsigned int i, nr_pages;
>  
>      if ( !iorp->va )
>          return;
>  
> +    nr_pages = vmap_size(iorp->va);

Why would you need to query this? You should be able to calculate this the
same as ioreq_server_alloc_mfn() does, I suppose.

> +    for ( i = 0; i < nr_pages; i++ )
>      {
> -        page = vmap_to_page(iorp->va);
> -        vunmap(iorp->va);
> -        iorp->va = NULL;
> +        struct page_info *page = vmap_to_page(iorp->va + i * PAGE_SIZE);
>  
>          put_page_alloc_ref(page);
>          put_page_and_type(page);
>      }
> +
> +    vunmap(iorp->va);
> +    iorp->va = NULL;
>  }

This re-ordering isn't nice. At least iorp->va ought to be cleared before
the references on the pages are dropped. I fear, though, that even the
mapping needs dropping ahead of time: By (likely) freeing the pages, they
can be reused for another purpose. Speculative accesses through the
mapping would better be excluded as a possibile source of a security issue.

> @@ -337,12 +366,28 @@ bool is_ioreq_server_page(struct domain *d, const struct page_info *page)
>  
>      FOR_EACH_IOREQ_SERVER(d, id, s)
>      {
> -        if ( (s->ioreq.va && vmap_to_page(s->ioreq.va) == page) ||
> -             (s->bufioreq.va && vmap_to_page(s->bufioreq.va) == page) )
> +        if ( s->bufioreq.va && vmap_to_page(s->bufioreq.va) == page )
>          {
>              found = true;
>              break;
>          }
> +
> +        if ( s->ioreq.va )
> +        {
> +            unsigned int i;
> +
> +            for ( i = 0; i < vmap_size(s->ioreq.va); i++ )
> +            {
> +                if ( vmap_to_page(s->ioreq.va + i * PAGE_SIZE) == page )
> +                {
> +                    found = true;
> +                    break;
> +                }
> +            }

This raises the question whether storing the array of MFNs permanently
wouldn't be better. This would then also eliminate other concerns voiced
above.

> @@ -818,26 +863,30 @@ int ioreq_server_get_frame(struct domain *d, ioservid_t id,
>      if ( rc )
>          goto out;
>  
> -    switch ( idx )
> +    if ( idx == XENMEM_resource_ioreq_server_frame_bufioreq )
>      {
> -    case XENMEM_resource_ioreq_server_frame_bufioreq:
>          rc = -ENOENT;
>          if ( !HANDLE_BUFIOREQ(s) )
>              goto out;
>  
>          *mfn = page_to_mfn(vmap_to_page(s->bufioreq.va));
>          rc = 0;
> -        break;
> +    }
> +    else if ( idx >= XENMEM_resource_ioreq_server_frame_ioreq(0) &&
> +              idx < XENMEM_resource_ioreq_server_frame_ioreq(nr_ioreq_pages(d)) )
> +    {
> +        unsigned int page_idx = idx - XENMEM_resource_ioreq_server_frame_ioreq(0);
> +        if ( page_idx >= vmap_size(s->ioreq.va) )

This ought to be impossible, so may at best want to be an ASSERT().

Also, nit: Blank line please between declaration(s) and statement(s).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 15:54:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 15:54:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261015.1554155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w545m-00080g-IG; Tue, 24 Mar 2026 15:54:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261015.1554155; Tue, 24 Mar 2026 15:54: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 1w545m-00080Z-Fa; Tue, 24 Mar 2026 15:54:54 +0000
Received: by outflank-mailman (input) for mailman id 1261015;
 Tue, 24 Mar 2026 15:54:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w545l-00080T-Ie
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 15:54:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w545j-009d4O-9o
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 16:54:52 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c2b3c0-2eae-0a2a0a5409dd-0a2a4502d092-36
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 16:54:52 +0100
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c2b3cc-63bb-0a2a45020019-d155802cd1ba-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 16:54:52 +0100
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-4853e1ce427so43883875e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 08:54:52 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487110dd718sm22193365e9.29.2026.03.24.08.54.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 08:54:51 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774367691; x=1774972491; 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=uxNtEMm+Y2kC6ogmaaa662w1bsbtir7oeAeR/RbQ688=;
        b=PzaE0MDs417BrtB/PpuVf+EhlXQ2xxS2iaLB8pmWFqInGm491uIgvz8Szk/k7U8OXq
         s5g0MmNjuZjXZGCnnfzSZDA02t/YBOpaqKEa9thhQEoGCw8dSyaxDa3xMPxTucPMO3Ez
         mni8+hTmCTXfxVy8rB+FgRm03ZV+6TGtJTZsipv8EUdiMn+fPTWUY264aLxKC1y/S0dv
         zaFbRHxPBzIbijSpT4oehPVBVg0H3o8dbLEC+FfRUXpguj5YKyL7Sz1bxIki5OSZOSnJ
         tZD+1rJI4A/W+4naiE+FARvHUs7LouztM/Z8yUME2vqIXQdZVXAKOCq1DwitwWtVpsZ7
         3zrg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774367691; x=1774972491;
        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=uxNtEMm+Y2kC6ogmaaa662w1bsbtir7oeAeR/RbQ688=;
        b=pVygKvjM+cv0gcyi3b9YqmRfOFqOnKnznZfV2VVt4frx+TPidI8AVXdyOBKaHt8kEg
         jT+GrDYccsAAXs8kIxPry45R/VH2PgzXBeXODc4E/tN67n1lA3e6GDnIQJhlSB5oF5QB
         HddpPXcSXoWQQ3WPbvLXZ3OYyJtvqQMfX8dH+Wj3eTjSdof1aI7jLnFxmtwmosaN/005
         /8WFELFcb8HfRu3wouSIBRMSVXWgJL+e5Xk9vJEJQvJA9nU5z4kohN3eWNhkj4pBVYr5
         kEQFfCTbTPD+oyxFobcJSUZXuw8YxBsiBAYzXDhhrcdtzJUuK9rupDy7XUkLS8MJGwON
         QQ/A==
X-Gm-Message-State: AOJu0Yzv7HyKhO7gGePVJueFOpBY59rjYv8wenJmBciZvxGBqSTlRk7W
	jWTXZhssVhEpZ6trHVnf9Y7TcEbBcW/t3rd1Qi6QNtd2fOMSRhk4hXwKcDde3N4doSrTwaVM5Mr
	ojEAdlA==
X-Gm-Gg: ATEYQzyFeZ92N7Ql6ZaEBbT7Ke2p8gH9c858T5pM7kRgdKtRDW0XFEgqCyT46q4s8BS
	7xxdWZdDEp2xhtO7iYaE+yNqSU+ThhRWB0up9rT6XuPK6k8DD3vrxpA8dqYaOXnnbg0ubLefl8g
	V4XGsEwA8YTH/AGD039i7A2IpLFcOxvKT9ho0VN49lNTccn+HuwFIIWf2y73AMB7wXwDduWkFIn
	ZdqwQ9Im/YiLUcw7trVs6MgY7jUje88K9790F7yqqAa166FtnxW1YGct7yyJG//7FnFhU8W4BUs
	uoYe3Xh6DAz3z6ZY8tgMINO97B59ojqxfdyryPOYfLpwQYuSVPkJxnoC0o3VlbCIBiuNbJGeWNf
	T6Zb5UjQ0yzpa4FU+6HhfDQeyeZ/2AM72QHjVgLzL3iKPd2P/uEftsGfuaZOOqvADi5VG5KTgjD
	UtA/fzP8YL5M1GUQjKJKWuXNUWWVZ8fdUeP1T+ndGFmVgZ85udpYDLiwxhyrYE8zug3kF83Jf3p
	YnTihN7eG6O+Ms=
X-Received: by 2002:a05:600d:a:b0:485:4535:73d with SMTP id 5b1f17b1804b1-48715fbf739mr3787825e9.2.1774367691484;
        Tue, 24 Mar 2026 08:54:51 -0700 (PDT)
Message-ID: <3cde1263-d5fd-4bb0-a0ce-c5bf5d735a20@suse.com>
Date: Tue, 24 Mar 2026 16:54: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: Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] arinc653: clear entire .dom_handle[] for Dom0 slots
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1774367692-68176DB8-C9498C1C/0/0
X-purgate-type: clean
X-purgate-size: 1235

When that code still lived in a653sched_init(), it was redundant with the
earlier memset() / xzalloc(). Once moved, the full structure field needs
setting, as dom_handle_cmp() uses memcmp().

Fixes: 9f0c658baedc ("arinc: add cpu-pool support to scheduler")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
There being no "else" to the if(), what about other Dom0 vCPU-s? And why
is it that domain ID 0 is special here, rather than the hardware and/or
control domain(s)? (Likely the latter as that's what would invoke
XEN_SYSCTL_SCHEDOP_putinfo, and hence needs to be able to run without
that having been issued first.)

--- a/xen/common/sched/arinc653.c
+++ b/xen/common/sched/arinc653.c
@@ -420,7 +420,8 @@ a653sched_alloc_udata(const struct sched
 
         if ( entry < ARINC653_MAX_DOMAINS_PER_SCHEDULE )
         {
-            sched_priv->schedule[entry].dom_handle[0] = '\0';
+            memset(sched_priv->schedule[entry].dom_handle, '\0',
+                   sizeof(sched_priv->schedule[entry].dom_handle));
             sched_priv->schedule[entry].unit_id = unit->unit_id;
             sched_priv->schedule[entry].runtime = DEFAULT_TIMESLICE;
             sched_priv->schedule[entry].unit = unit;


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 16:01:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 16:01:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261026.1554163 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w54Bu-0001xz-5s; Tue, 24 Mar 2026 16:01:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261026.1554163; Tue, 24 Mar 2026 16: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 1w54Bu-0001xs-2Q; Tue, 24 Mar 2026 16:01:14 +0000
Received: by outflank-mailman (input) for mailman id 1261026;
 Tue, 24 Mar 2026 16:01:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w54Bt-0001xm-CC
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 16:01:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w54Bs-00Djc7-9j
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 17:01:12 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c2b53f-e002-0a2a0a5209dd-0a2a45078f28-16
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:01:12 +0100
Received: from [209.85.221.49] (helo=mail-wr1-f49.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c2b547-fd74-0a2a45070019-d155dd31e53a-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:01:11 +0100
Received: by mail-wr1-f49.google.com with SMTP id
 ffacd0b85a97d-43b3f91a7abso907000f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 09:01:11 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b647036e0sm39924244f8f.21.2026.03.24.09.01.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 09:01:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774368071; x=1774972871; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+uA0bTzfyfDdSO1Kzokmr2t1nVV2y2jd9hlzyXrJoMI=;
        b=IxU38UWxqcvud/fkbEhhOp8QuGTTCbRDEViOVv2jWRJz5rnIU9I2BQwf+JxYRo57ek
         Xv9PAKMDr9vwa8wtAdD/rRvRXIxThylju32va/ugUiJUyeXd2LerTmEzDgCvUSh05AiA
         boCoDjQckLdYC8xa+5TTERdczxtA/E/bOjkKTATKFOsbzNbC53hRoTpdD/m2BTBeRCUh
         F8wuvNvSgjpzEX+LqhgoEBshCMUPBp67rqBMP+O5mluiYbgB0iMOGjUr1LIwffj35osX
         YiqgiOYFv+y3+MpPGJF0mu2HVBMYjO4dHovi40uxKjvcov2EcUyTfuQWepVohlhf7ftb
         5Xew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774368071; x=1774972871;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+uA0bTzfyfDdSO1Kzokmr2t1nVV2y2jd9hlzyXrJoMI=;
        b=YMmq98Y9sT6A91SKySsCgpARovtH5TBIgqIfahP3xLbSKz3eCMXWi9+4rjn5EIC069
         3lE6loDxnyGyiwxzmvt8bPgd2rv1+1g/YV99K5BD5C/HupXge9K9SnriBetW6zgpQDsQ
         NP0KH5YKx33cDZoOOdWWqHW2ZRdCft8Z8m+iP3lTaqMn5n5uedBWAqt0Zkb6you6cVZ8
         qZMa5dZpxU8Hy6EYxHA86VnSjElDBvLlGZd/f5Ie81sqCdtUDVmyGYnxzSsyuXKnFg9I
         oFyQXbJrMmgf+SbH7RdCqH3rNRd3uBmsM3x6uyTDwsBdDpNR2n1Sy7eSy+bbUsE8B9Zp
         mSsA==
X-Forwarded-Encrypted: i=1; AJvYcCVc4iO4DTu5BjW3OsU/byJSmrveHKfiRba8uhzleE/wbM17nhZFjhJStPtwtQSwCXbDtonRTXIhuGk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzx0caknDBL9NOoIoxTL4nhLwOZIygNX6d+KYEdyCXrf1lifCgT
	mL2As5CA0WSLWovpzkQ+qQ++3vwDYIEJpO/P2QLEwnRt/AmaigscX4oao7aHBxj3BQ==
X-Gm-Gg: ATEYQzyRJ95mzDdllvJ8HVH1gG9TdLX1MHJoJQ9pAS366iTIOyHB2UHzSof4qUk2zCR
	J72XqH7DDljRP6Is6OLFsACjGrseNsS7Uqxo9gXAEbxfUiSxsChwMgTwI6VWW1pcG+C8pkCqnR8
	JnY4W+OMmo4FIibRf29ICo7rltt0ivYlcfekNKGwXNNnyQBhxaDNcCuB5nvIlvL11q9OokYoaET
	kWbx/qhXPm+i/4p7VJtyhkcS6qwADMfx9z1C3BUglDnLMYQAvWyAihZo/1sI9ekxxWWBMjvjJlp
	JXyoaqODoIQyXC4qXRba4nYUt0+dnRFYNYKyE+IdKnPOf4NS7P/7GI/n3FjjvlezKExC64tUYG0
	C7l0I2o2nyQCuOGAQc78Z/sUgtQa8ohsYcmOhWm1QY7a6PNlrT7D37rnjeXgtv6AVkanuByooEM
	LQdECnJJxCiJlgxJwbQUnCRbucngkDLDNNILFqubSkchAY4aFwZtqTjGJ2xXkxL7lZHg88gBKhQ
	vBiHjzOkxRD574=
X-Received: by 2002:a05:6000:40c7:b0:43b:4f0c:aefd with SMTP id ffacd0b85a97d-43b889c85d2mr30686f8f.23.1774368068551;
        Tue, 24 Mar 2026 09:01:08 -0700 (PDT)
Message-ID: <0857c00d-f11e-4b84-8988-e7a096aa55f5@suse.com>
Date: Tue, 24 Mar 2026 17:01:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/6] x86/vpmu: Sanitise Intel PMU version
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.1773160025.git.teddy.astie@vates.tech>
 <dcd278658139976d1af92b4d201c17e12cf7eb2b.1773160025.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: <dcd278658139976d1af92b4d201c17e12cf7eb2b.1773160025.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1774368071-4EEAB303-03C69D91/0/0
X-purgate-type: clean
X-purgate-size: 1275

On 10.03.2026 17:44, Teddy Astie wrote:
> --- a/xen/arch/x86/cpu-policy.c
> +++ b/xen/arch/x86/cpu-policy.c
> @@ -253,6 +253,33 @@ static void recalculate_xstate(struct cpu_policy *p)
>      }
>  }
>  
> +static void sanitise_vpmu(struct cpu_policy *p)
> +{
> +switch ( p->x86_vendor )

Nit: Lack of indentation.

> +    {
> +    case X86_VENDOR_INTEL:
> +        if ( !p->basic.pmu.version )
> +            return;

Better use "break", but: Why is this check needed anyway? Nothing ...

> +        /*
> +         * Expose up to PMU version 2 
> +         *
> +         * PMU version 3 introduced the AnyThread bit we don't want
> +         * to support (see "AnyThread Counting and Software Evolution"
> +         * regarding notes with virtualization). This is the only known
> +         * feature introduced in PMU version 3.
> +         *
> +         * PMU version 5 deprecated AnyThread, and introduced a CPUID
> +         * bit (ANYTHREAD_DEPRECATION) to indicate that this bit isn't supported.
> +         * That CPUID bit should be set for PMU version 5.
> +         */
> +        if ( p->basic.pmu.version > 2 )
> +            p->basic.pmu.version = 2;
> +
> +        break;
> +    }

... here breaks if it was dropped.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 16:05:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 16:05:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261039.1554173 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w54GG-0002el-Qe; Tue, 24 Mar 2026 16:05:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261039.1554173; Tue, 24 Mar 2026 16: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 1w54GG-0002ee-NX; Tue, 24 Mar 2026 16:05:44 +0000
Received: by outflank-mailman (input) for mailman id 1261039;
 Tue, 24 Mar 2026 16:05:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w54GF-0002eS-0g
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 16:05:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w54GE-002nIk-Cy
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 17:05:42 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c2b650-bab6-0a2a0a5309dd-0a2a4503b4d8-10
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:05:42 +0100
Received: from [209.85.221.47] (helo=mail-wr1-f47.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c2b656-1947-0a2a45030019-d155dd2ff1c8-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:05:42 +0100
Received: by mail-wr1-f47.google.com with SMTP id
 ffacd0b85a97d-43b40fb7f95so1429246f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 09:05:42 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b647120a1sm40889336f8f.30.2026.03.24.09.05.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 09:05:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774368342; x=1774973142; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SntnK1aNpVDkUy3UNMoJXCG2P2jMe4re9JFd2R1gDXQ=;
        b=KCTe8eRdUs13vT6njgHacZp7nJw6/Jm1jE3XRFMXjneet/ZcNig/k9XbCWlNIKBPFm
         3rYGV8wZOA/dFDTUkxDT8GtBDwyFYUxGte4OR2b1tyhKZs59TKnuHKIVKEy8B6iHBu95
         Jpw13S/C4BZNHbV5bJESvfNF46RqYRZzvA+Mj8kfotssdVpmsblWMElkpU1rKcOcVGTf
         8zMd8sq/Qr3PdkvYZeT7E6bOjeOfSo6D4aSCyRtwHoS303XOox/O23dwe95cn/uj7xsi
         nt2WZndEVHhLaZW3RbeojLuc7VkrU9zEof2TkatPMDJbPerEnFOkiYF/LFwjkbye8nPb
         f2FA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774368342; x=1774973142;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SntnK1aNpVDkUy3UNMoJXCG2P2jMe4re9JFd2R1gDXQ=;
        b=NRfjYczN5EzvoDSjK4lYSEzQ13bbh5Mxe4vfgTgMRtQGK6ai1BROAKYHgMoEv1jzYx
         H8KKpGO8u/zhTrndTUz8b/vPCi9HQdNbzmcINiEZ3D3xAFe17IIdEUQRDiIovPR/SHmt
         RcZQrlBkqwPSD35maDbATejUaftL4VYoqQ/YXM6Rl4W4GQ4chVhrD1+qVPBVSnoogFZX
         I3e6rW0Ujv5aKGCgpxUWb21Pc0VkSE8vXxR9nKje3+lQgKlYsSm0ClLzWrkLTTR22OAt
         jbyXZ4pm3jZTbmGnZPvye5sZTLgCJ3CvUBgUs7Vk3vH79L6VKbqcou2mBgFLjIU7g2Qb
         qM9g==
X-Forwarded-Encrypted: i=1; AJvYcCW/byVpXCSKmqvg30/JmWrO2TGN2zeglu7HiZxf9aRh5mwe3Ywxvh9MDmGYolxJ5N99Fg8GZl9FRwg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzJKTwjITSed+k2LxKG+lXTfbF+QC4+DjvhyUoC+iGZIpV3ocGL
	TD0506UIPAiv+WqXqSx0kplcZtgl64arBz9nB5peMGVCilKqn5vhQJT1Z6Hj8T7MTrLspAixL72
	//91bkA==
X-Gm-Gg: ATEYQzxTs4wZkmquRJhzKI44Fv5zebopSe1IbRH6O1T94YNnFhO20cpTwmT1LtGT/ge
	9EPk6LkVGcflb7jdaFlKwB007KjVGlFxOfSJ/bZ/1G5SPpA4Ju2pkiauFCRQFpOApB59hLRjxU/
	pNd9/mNSoeCM0VHfJDcC5SETNwUftJtknhTAGCMRpvcwgjbMOlJmjzmeyG42vSIlLABx2Re/AHq
	bWr4PSFJujr+5Wh0fIITUcg+BkogTNOdCL+ybjw09kM+1T1hyf1W8qDR0WftUht1LRayfkBycHq
	P//iZ7okY7Qm81QknBolwpVzWV8hqJfBh0/A0BzXGxEnTv9l7zyHEzI2k9z7batTC7YIfJRQo8u
	iHimey14m3UrCpEH8o8rGkdVIEiLavloRJSskFMf5rnyDJ4T0U4Qe3L25JYs82asD21wGvIn/51
	99CnkKm51yRQUlrofCek6Ilns1JUJpi4fq3gujpYcP69o01P2XkTYSm1i/Uspx3IYDwfz4LuxFV
	9rhImKctE3r6wU=
X-Received: by 2002:a05:6000:2308:b0:43b:6a16:17e with SMTP id ffacd0b85a97d-43b88994d97mr77119f8f.11.1774368341533;
        Tue, 24 Mar 2026 09:05:41 -0700 (PDT)
Message-ID: <a6f3a73a-ff5d-4a84-a35f-8b5c53d50183@suse.com>
Date: Tue, 24 Mar 2026 17:05:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/6] x86/vpmu: Limit to using supported general/fixed
 counters
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.1773160025.git.teddy.astie@vates.tech>
 <854c5fe569f1a2f1f60e0768ee3d9a921ad54215.1773160025.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: <854c5fe569f1a2f1f60e0768ee3d9a921ad54215.1773160025.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1774368342-77E8D72C-95E51F1B/0/0
X-purgate-type: clean
X-purgate-size: 849

On 10.03.2026 17:44, Teddy Astie wrote:
> --- a/xen/arch/x86/cpu-policy.c
> +++ b/xen/arch/x86/cpu-policy.c
> @@ -276,6 +276,12 @@ switch ( p->x86_vendor )
>          if ( p->basic.pmu.version > 2 )
>              p->basic.pmu.version = 2;

The literal numbers here are already on the edge, but ...

> +        /* Truncate control register count to what we support */
> +        if ( p->basic.pmu.num_gp_ctrs > 8 )
> +            p->basic.pmu.num_gp_ctrs = 8;
> +
> +        if ( p->basic.pmu.num_fixed_ctr > 3 )
> +            p->basic.pmu.num_fixed_ctr = 3;

... these surely go too far. How do you suggest would one (easily) identify
all the 3-s or 8-s that belong together when wanting to bump the limit?
(Altogether therefore already the earlier patch wants to introduce a
#define for the max guest-visible version.)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 16:08:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 16:08:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261048.1554181 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w54Il-0003Mi-61; Tue, 24 Mar 2026 16:08:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261048.1554181; Tue, 24 Mar 2026 16:08:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w54Il-0003Mb-36; Tue, 24 Mar 2026 16:08:19 +0000
Received: by outflank-mailman (input) for mailman id 1261048;
 Tue, 24 Mar 2026 16:08:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w54Ij-0003LG-II
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 16:08:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w54Ii-0074YF-UP
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 17:08:16 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c2b6e8-5cb7-0a2a0a5109dd-0a2a4502c6a0-14
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:08:16 +0100
Received: from [209.85.128.52] (helo=mail-wm1-f52.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c2b6f0-63bb-0a2a45020019-d1558034c960-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:08:16 +0100
Received: by mail-wm1-f52.google.com with SMTP id
 5b1f17b1804b1-48558d6ef83so39895565e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 09:08:16 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b647120a1sm40908663f8f.30.2026.03.24.09.08.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 09:08:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774368496; x=1774973296; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=itiLAVm0CXXggdFmOqbTg3WGh2aF+9q6lX3jsj/sc9o=;
        b=ZDOvvOiGna2CZbbZuvxXiiI0vJxktOxGycPaMRV47cYE7K+ELbBsDHCwDg9ceOy7lf
         ubsKYke/hXD+axM/j2tq+ZjPZ/ow6c/cjRBZpezHqXEbIuFqOr77vP3C0AncOXFbmmh0
         VnQEVff7mKVP85Lpj/KwvivL92d7UAiIbbMa9izAg957lMPXKziOlQlYvlE4RZ1IYUtG
         qoRonGaPXv2zRNm+G/whBrLN+m4eSBZiMa2cHTEh/OXK9YwSymarpmtjwjOSXk9tTa/j
         FcY+bATIvbWJ4Asmh6+YS2Hk5kZXajzcTlQySEzc73EvlGzjUXO5fwBx9nBCbeMYnfhI
         jVFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774368496; x=1774973296;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=itiLAVm0CXXggdFmOqbTg3WGh2aF+9q6lX3jsj/sc9o=;
        b=bg+UzET5j2mFk4RJvbXXj+/KR5KH7TCP2oDjgo3eNM/3/NSc5XkF7k7kV0gMA7nP9o
         NMZsqzG628z6pkX6NEmeF+1XBgvieiHUdjjp4v3gi4M5bb9ayKMSpGOr+c0ZPUYgZmTT
         4ymS+GBPgPbmndM/w2F9NTB8UQxrpHskMJ3SO7HojoAiOP+1GMqz3glXmm3V23cwagRy
         BlzZNvnn5w56wzY5Crv5fD2UJANP67arGiBgx/vxUXFlc4il02xmclhgimTkyZ1yQrcK
         pwjOK4+6Dne3cZm+vZVCOeYbj7neZiLyhgG22SbhdQLlofUdgeNPHZ3aMVLT5gScqTJn
         UCLQ==
X-Forwarded-Encrypted: i=1; AJvYcCX46iZZgBXYoQ+DkleDzevo3WY+vn4hDLdx/J6EU+lWoFLgY4767bz+XpWCek12esdIaRnCPTMiqwY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyZApVePV7Zh1tZMtl7iBWof9IbbVyx+6YGjNZKN1ZUyAYi9NBc
	kBlKD93GgvGqkVCKhqfFFCKxBo+Kf2Ff9dfuzmr0HlCnviFKutormXzWqX/WOjphnw==
X-Gm-Gg: ATEYQzxhqeEXUbqwDaiGfHrM58CWYZjbCgOeHNCChNeKwgId4lMaOljfQswYnbL1BCg
	ZNNph/tefFIwkwVsZhTuQnQxXpGWidE99r678yV03crbVsnZa6cMqc1BCEM2zSS4bhKotWfYQwf
	npodIQj6TZc3jEQbKModqyD0MjTo749z8vnDUu9R51o4rCSYA7QbP+sgtkcXnZAGJ5xBv5L2L+A
	QinYog2O3TO23MLWx3WRDQstPSdoynKi/Nlkfdi4I7yyi/L+9/zL/yAI3YuyIYX84IlWOTo6ob7
	neRCQNHy+WIfkefbQ4G2QqGjjfQnv164awHQ1/8jInby505OsQeWQdJJ2VtSXaiO1QJc5v1pnoa
	bL6ZxiIWZ4Bz0DwWD3867ZAW9DAWgTAwNeC/7Q+S4F4dQea1psHcUf570QypcM8l2iORuYxd0cB
	oKiE+e4yRDNQZxf2eeoQRYlRWKAfQoH1afqlGtg86y2RpIfU/NGlS3sllKZ87Y0FO1B7BdBcU/v
	8RN6rgDg0skwF2FaAZfhILREQ==
X-Received: by 2002:a05:600c:a4f:b0:486:fbd1:9dc0 with SMTP id 5b1f17b1804b1-487160350d6mr4380975e9.22.1774368496016;
        Tue, 24 Mar 2026 09:08:16 -0700 (PDT)
Message-ID: <f2eb4829-c5f5-4cea-8189-a84aadfedef5@suse.com>
Date: Tue, 24 Mar 2026 17:08:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 6/6] x86/vpmu: Allow PMU version 6
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1773160025.git.teddy.astie@vates.tech>
 <151db665c8e9014f0b09d3fbaed3f60448298f0f.1773160025.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: <151db665c8e9014f0b09d3fbaed3f60448298f0f.1773160025.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1774368496-BE686DB8-5C5E7A07/0/0
X-purgate-type: clean
X-purgate-size: 1461

On 10.03.2026 17:44, Teddy Astie wrote:
> PMU version 6 (notably implemented in Intel Core Ultra) is backward compatible
> with older versions, as we're exposing version 2 to the guest, it is not
> expected not try using PMU version 6 features.
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
> I don't have the hardware to test vPMU on Intel Core Ultra, but I guess it's
> supposed to work, as it only introduces new features and doesn't disable
> existing ones.
> 
> That could want a changelog entry regarding vPMU support on Intel Core Ultra 
> and alike ?

Perhaps.

> --- a/xen/arch/x86/cpu/vpmu_intel.c
> +++ b/xen/arch/x86/cpu/vpmu_intel.c
> @@ -819,7 +819,7 @@ static int cf_check core2_vpmu_initialise(struct vcpu *v)
>      static bool ds_warned;
>  
>      if ( v->domain->arch.cpuid->basic.pmu.version <= 1 ||
> -         v->domain->arch.cpuid->basic.pmu.version >= 6 )
> +         v->domain->arch.cpuid->basic.pmu.version >= 7 )
>          return -EINVAL;
>  
>      if ( (arch_pmc_cnt + fixed_pmc_cnt) == 0 )
> @@ -904,6 +904,7 @@ const struct arch_vpmu_ops *__init core2_vpmu_init(void)
>      case 3:
>      case 4:
>      case 5:
> +    case 6:

This is getting a little unwieldy imo - can we switch to "case 3 ... 6:"?

Jan

>          printk(XENLOG_INFO "VPMU: PMU version %u is not fully supported. "
>                 "Emulating version 2\n", version);
>          /* FALLTHROUGH */



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 16:24:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 16:24:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261062.1554192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w54Yg-0006Yv-Eg; Tue, 24 Mar 2026 16:24:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261062.1554192; Tue, 24 Mar 2026 16:24:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w54Yg-0006Yo-Aa; Tue, 24 Mar 2026 16:24:46 +0000
Received: by outflank-mailman (input) for mailman id 1261062;
 Tue, 24 Mar 2026 16:24:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w54Ye-0006Yh-B6
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 16:24:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w54Yb-009h15-Qs
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 17:24:43 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c2bab4-bab6-0a2a0a5309dd-0a2a4505daf0-22
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:24:43 +0100
Received: from [209.85.167.45] (helo=mail-lf1-f45.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c2baca-5aeb-0a2a45050019-d155a72ddd0e-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:24:43 +0100
Received: by mail-lf1-f45.google.com with SMTP id
 2adb3069b0e04-5a27a90a7b6so1720657e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 09:24:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1774369482; cv=none;
        d=google.com; s=arc-20240605;
        b=kzZBp3rE6f4wn+qgAe4AoByumMP8oRw6Hg8PdJyT3E7Nhz4mIvEme/juJrwZnXLf27
         c/c33shkHsaBgCJkedS4gwmB36VVWDaBpYgHFx7/Ge9slxHhYFku4LJP4optQ1JydMs7
         lwVM6VUkjZF3qWy8FIGvULNSvzwZPci6S5W7Xc0n19z2LBpyJpvMFvV0MGJr6ukbrhRb
         CR7yETDpiAtbJIxsUyQMhDZX+1A8HYqu8w3Ja+yJwJkAELTGa26ASQRZEoTCLO2sDUOA
         q+j1g4On4LjMzCthDItRM2dS6TN9AGmNrKS/ydRRRzQVg+kbwOGj98q9I+YbSUUn3u/X
         iLUw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=Uk1J0shv0ren+up2Q6z4S0bwgGP9AaPTIapT/x0ApEs=;
        fh=SmKtTP+//FoTguQaCWAbd7P0/DDZIbvi8at9iFw3jIU=;
        b=XygAqx/oirSDCciH2OAteGZMWq+mhPrk3m6oy9EPnsm/FsOJ3mN9LK1SuvrWqs9rV5
         0ikrs4JdX1syXO32YXlKONYufK3m8St7QDD+AVy+NoWFGFOgiIUvYGajk0DJE7s1Ftf5
         axDHHpce6KPo7SHNF0+3dn/LvEg5yhsRh3CQpVABBwlk7ZROIENXx4QknyBa7zQw83Nr
         SMa3NsToF//cn50sGD43Ozh9HrPlUcoe1jiie+AK05GMLn7r0ZwE4dsLCxij3tsCQxoN
         /2iBLwjop/xmx9Rvxm0cYon2dI7xsOHEzC5cofCFTBSB3MK+Ugof3mCNMhlwAfFKboX5
         4mzg==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774369482; x=1774974282; 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=Uk1J0shv0ren+up2Q6z4S0bwgGP9AaPTIapT/x0ApEs=;
        b=g8tdTDyxRckj5umjMIzQIhVAASTOzYA9jtUoW4uSnH7VpAcp/R1/WKp8Wps/AQUuB+
         eNiqt+tF9Cv3rDRLUC08mp4fQaiEm6PXN8AO22/P2zmNCk/TsmLs90pTVIgS4TVZZ/CQ
         7dSzJ5hDd2lguzQR6TVUVNSmvEEFR2TJ3VdzYOm70BQ26jFU2hDej3MWzSVgWFaAkIwP
         ZV4jDw2Wv4UQ9ub+rfQawyLS+KznOa3ER8GflTtKtGmeyBd4omRYGZgGnQs15fer7V1B
         Az9wE87Y6/zrJnvCzEg0t5y3r+Knn96MCrGnRyM4skV1QegVjfyV7lMsyYzuGlgzluuy
         rHgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774369482; x=1774974282;
        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=Uk1J0shv0ren+up2Q6z4S0bwgGP9AaPTIapT/x0ApEs=;
        b=fSGwArzSNxgUapJx7LpTFwPC3xSABNZC1tP9o7qBTdux+KY8vgyNZe17pHhZvt/l1a
         1VekZ5M+hfRZNxJwhxCauq/bL4vBU14TthsXX6OWGMbxoCIr6wvbGA4eqdpQl2yUngHC
         ypUcb75I7NjfU1GJ8zTskhdtvDw+nkV65iz30pujSa5FhwfBkHJ39O/Q+vf2/FCkpS6A
         4426m+jqbAI8T3qd+tnl+44XirRXVpFRDsX+Vo/a/zrfPM7BseDJIZX+B6SV2F36gsng
         E800fi/108AyTjP22zLwZtAWH0ZaneLxVYdZKIWwSB/OzmjfqMnpXjhVZ5BBuDDXWybs
         4bYQ==
X-Gm-Message-State: AOJu0Yyhd9odM88MA2TSiZREzEZcSUN/RzNmWa7mFnLvi1AfVnicxm+0
	Cq4+TLJtD4lR1figx8dfJ7ep9oN1uI50hkY6nlVs5BAefUm2pyu7/JzKKa1ThMlTFjTZ5tn1Ble
	TDC3x79aubJLl/PKg+RnX3xR6r7YWL/E=
X-Gm-Gg: ATEYQzxg5c8/KJmC8wJkLzsh556oULBe8DY7renzyp0H308dqxgJJqUoqo2q9v6j+Ay
	eW649ZroYclSHU2J4AaZQhONZUW79414hm8pQLnt1CLFqbBivWB1w+4RtLS6c3gHqxjLhmCCWtq
	uHf9yRGZ5NvBJfxEpRuFCbLDL/j1z5ejD9arHZDtZuDBb61uyCQh+/DVviVrvb39w7KSBIRQJ20
	ydcrhZM8OKDWPpU96orAlivh6Kc/hUo6Kewhc2D4ou9AsWkBc/3WIghiaztS9PXrPWFtSic8tYz
	RgBRfg==
X-Received: by 2002:a05:6512:3b91:b0:5a1:30b2:f2c with SMTP id
 2adb3069b0e04-5a29b99fdc8mr42672e87.42.1774369482137; Tue, 24 Mar 2026
 09:24:42 -0700 (PDT)
MIME-Version: 1.0
References: <cb5ad24b-03a5-4c1b-9d98-8df534854b2f@suse.com>
In-Reply-To: <cb5ad24b-03a5-4c1b-9d98-8df534854b2f@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 24 Mar 2026 18:24:31 +0200
X-Gm-Features: AaiRm53Nb8iz0N-DlYakcJEISvkTK7zZB-TWHAsseQuRuTjeIwkuSsxusNtWwv4
Message-ID: <CAGeoDV-zq+=HWg1v53KXyPR+kxBPpE2jUruc=JFVSjXTKv662w@mail.gmail.com>
Subject: Re: [PATCH] unlzma: avoid UB shift
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@vates.tech>, 
	Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Kamil Frankowicz <kamil.frankowicz@cert.pl>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-c201ff/1774369483-80568488-CB3F0587/0/0
X-purgate-type: clean
X-purgate-size: 1596

On Tue, Mar 24, 2026 at 5:27=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> Shifting signed quantities has restrictions. Since the wrapping macro of
> read_int() type-casts the result anyway, switch function return type as
> well as the local variable to the corresponding unsigned type.
>
> Reported-by: Kamil Frankowicz <kamil.frankowicz@cert.pl>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> We've inherited that code from Linux, and the same code still exists
> there. As I'm entirely uncertain whether they would even care, I'd prefer
> to not take the route of posting a patch against Linux first.
>
> --- a/xen/common/unlzma.c
> +++ b/xen/common/unlzma.c
> @@ -30,10 +30,10 @@
>
>  #include "decompress.h"
>
> -static long long __init read_int(unsigned char *ptr, int size)
> +static unsigned long long __init read_int(unsigned char *ptr, int size)

nit: Since we're touching read_int() anyway, would it make sense to also
tighten the helper's interface, i.e. make ptr const and use size_t for
size?

That would better match the actual usage: the buffer is only read from,
and size is really a byte count, usually coming from sizeof().

>  {
>         int i;
> -       long long ret =3D 0;
> +       unsigned long long ret =3D 0;
>
>         for (i =3D 0; i < size; i++)
>                 ret =3D (ret << 8) | ptr[size-i-1];

Separately, the loop could also be written without the temporary i, using
a simpler reverse traversal, for example:

while ( size )
    ret =3D (ret << 8) | ptr[--size];

>

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 16:27:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 16:27:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261071.1554199 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w54bj-0007GD-RW; Tue, 24 Mar 2026 16:27:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261071.1554199; Tue, 24 Mar 2026 16:27: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 1w54bj-0007G6-OS; Tue, 24 Mar 2026 16:27:55 +0000
Received: by outflank-mailman (input) for mailman id 1261071;
 Tue, 24 Mar 2026 16:27:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w54bi-0007G0-VH
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 16:27:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w54bi-0077bV-5l
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 17:27:54 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c2bb76-5cb7-0a2a0a5109dd-0a2a4502a322-30
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:27:54 +0100
Received: from [52.101.57.0]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c2bb88-63bb-0a2a45020019-346539003934-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:27:53 +0100
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH4PR03MB7772.namprd03.prod.outlook.com (2603:10b6:610:236::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Tue, 24 Mar
 2026 16:27:28 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9723.030; Tue, 24 Mar 2026
 16: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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VQwXJBmc5gM+bmh5JKfJ62Vo6rmKsus3ajqacn0YwJAB7RowLvXM3E9rZC7RjWi9XLfunTD8sTUEwtTTr8NfDW7Wow+kms3iSHxCd1GJQX+owDSUhIGbkKT9dbdkDlb0//h+xLch/PaPClrGUoLi3oP1mJ1WvCR6f7afqLaFGIf5OuK9i6v9mAfMJ6IusDvoU1t26nIi6+l8B12UUwLDI78vDVPLAd17U5pU2YXZaBat8UZGItjPCHXzuxsbLYiNVBNJa0DRs3iZ45nPwZ/bOAG/vo+G32CYRCRbaiW1ax99IW4GhfAX/XI69IlyN7KYBUHG3kRXCldMXME1vjVPIw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TSuwt0CTbJVc24s/SyqRyF8liXaK5pmaSoDM9xtw38w=;
 b=uKbHE6QxsYKOcBfgqGgxIZdejmXc16P/56LCKn1+JocBDu44s/J6KDiTNRn+WD0obYiWSuoksLAdo+e35hzMpt1xbvQUHvPt3Zz4/graTIGfZ5OvsjmxkAmzf0ltdD4FBrJjQpjNPAcWpIdZGy/HSNwnXKqjsVqFu4aSxJSJnjFzBESLx6r1M9zkRv7AWLVqgTb58L2YKhHgVv3u80TTtfGo7IwRKONWTvGE3Jj5IDHzLj1rYnFPluoXNS6811fLlWWijX8igJ3dt7CzoBkMifkeqEuxmVtW0NB4NLI5fdAo8UkxfOwwGExaDBeO0FD6k0B5AIIfyU/MR6OAQJNo1A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TSuwt0CTbJVc24s/SyqRyF8liXaK5pmaSoDM9xtw38w=;
 b=MD3KMrChc/slvu4xaI2u1hARdSfS0cDXfyI9c6bgciNHsyFwyx7VjV4bhL1k6htT0JizUB/kr9yI/ze1cPBuwnTD389jGe1jg1pRJMu1eAhT15HOURFYsJGCWdEeu3oeQSTNxv2QPYylnNYcsgdrHyVnM1dKLvKjQsoteKdD6G4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <a70785ad-0759-417f-a9bb-363b7919ed4e@citrix.com>
Date: Tue, 24 Mar 2026 16:27:42 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Kamil Frankowicz <kamil.frankowicz@cert.pl>
Subject: Re: [PATCH] unlzma: avoid UB shift
To: Mykola Kvach <xakep.amatop@gmail.com>, Jan Beulich <jbeulich@suse.com>
References: <cb5ad24b-03a5-4c1b-9d98-8df534854b2f@suse.com>
 <CAGeoDV-zq+=HWg1v53KXyPR+kxBPpE2jUruc=JFVSjXTKv662w@mail.gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <CAGeoDV-zq+=HWg1v53KXyPR+kxBPpE2jUruc=JFVSjXTKv662w@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PA7P264CA0038.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:34b::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_|CH4PR03MB7772:EE_
X-MS-Office365-Filtering-Correlation-Id: e2be2a60-a810-4d58-82d7-08de89c24269
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	Pb6aLakmzMzykOSnfiTiTzy7kduti8scBCgfVc0TPwhfmyw/kEg8DbZl+qSsdFTAK12akyWjypMqjGvgWCZBJa/Eb1gqFSAGhEBpX+yLUybQswafTkYHhGd24uWq6V58D0l1wo6XQPGyq8uEQL/XHZdU2GS4doo4ExCZkLMDHybeMS9jtcG23jtr6pEhDf2MZixS9RqegUjaM1lrJp6WsfxSNyLR6SMj/nKcvN/L3R9OlvixvY+McogSigGUJfW+OuRdEHzq1DVGjvPOBLiGR3ceibSLJKSItO7FP8QB6q5KEiuIJo6HNmrppQgsZjLo6sT1lnlnMaWxleqYuT1hElo7Sxa9dMF+6X4Tfz9i+SFc6ScyMCuXfFTdPw0Plz8HwSL8O6gEPR0Pi/F/E1fAwDLAj8vvOxSypEJoYSwl1RZAcBswhz1zZ8R/3JFljuetNWb4J1B6vdb8eW36kBkOcN23kNyP381bz8ZEe3+wdnCW7MslPGyQnJiGpgqv4WvIuh+0eZjfVBja04S1PQtLkWcreMjZJds519XCQoAGXhwQvsq/N2cDunr+hj6ERiE8EXDZRIFskFsFcNncBQTzRoqlPFaRCuyXPO//k9wfdaiSETaSfEuxIWdeC4TCr+ExsvEqazBh7SXu33ZP4hHuK5NY1eLozq04xnTnL4gPui+eB65HUvYTnH9MSe+Qf24BpcLDwElThYI+STvCI9HWBHKUb7qII+1yf2wFWA/N/pA=
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)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SGZlbDFIb2pFRXN2cnFJWm0vMG5WVGlhR1NWUjlWTXJOclVqQ3JTamNMMFNX?=
 =?utf-8?B?SEpia1JnNVZTV1pGbGFBS050dlh5YVdmL2xMTm1VcEJ5bEMyWXNnTVZjeWU4?=
 =?utf-8?B?Nm9wQzZqc3dLU0RhMjZkNU9sa2s3NWxxOTY3L0plSW1QeHhZTUlKTk9JRUtL?=
 =?utf-8?B?TGcrazE1V2NQRGJvOUhPRmFjRGpyU2hSUERRTjNJcmYrS3F3ODVlVkw1K2wz?=
 =?utf-8?B?UXAwQ2NsZjErajRiMy82WXROQUs4U1JkZ1pndmVyY0FBQmVqSHQzY25iUjBU?=
 =?utf-8?B?MkU3Mi9vTkFXcXFBZTh1NGdZc1crdG13UEx2ZldNY3N2T2xNWHdSWmhQTi9i?=
 =?utf-8?B?YUZFS0RRSkxFeUFyei9odGpBQTBJc3lyWTU4dWRaWVpJTy9mS0RiR0ZvY3Zq?=
 =?utf-8?B?ZTIxMStnMGQzZ3FEWnRFc0dvZ2UyUEpEczVON3M0M3NvelhMVXczSlpqeWZF?=
 =?utf-8?B?SzBWWHFkVGFaSEUyUGVMbFFWU3B6cWV4ODNEcU9ZRE9hV3gyUktZVzMybjJO?=
 =?utf-8?B?aWJxNWRUU3BVQXZkVSt1akJrN1Y2QXR5a3dmVDl1c2t1eC9mQ0ZqMER0Nnp2?=
 =?utf-8?B?dVZRcXpvTEVzTzdvK3V3UStDQWRGcWNoTjZnN2g2aXZ0cUFYR05kM2ZCTEp4?=
 =?utf-8?B?a09pT3c4ek1GNCtpR25WMzV6d2VmVXJYRzVRcnpxMitPZGxVN1NDMUVJUEhH?=
 =?utf-8?B?MHBUSnNKZGRuTVNRMitOTXVxNHdiQWFESEdxV1g3RTlYR3Y3NjlIOGdYckxu?=
 =?utf-8?B?cGpGZ1lEQURVY3R0OGlVYVhURzdKUGwrQVVwekJ6ajJFbVVHcnNDVyt6MzNw?=
 =?utf-8?B?cXhnaDBqUjNMWEVxQm12YjBHVnhEd3N5ZDNLWFVxeWxPYUNDaHBMKzgwSW9u?=
 =?utf-8?B?WGZVZ0p1V012NVBLc0RUVTNpU3lWYzErRVd3UHJmZXRvdTl5S21BSUxJemFV?=
 =?utf-8?B?S2xGN1V2UVBEYm9RZEJ4MmMvd2pSUXl2SEZPRGZ5MmYwbEJhSFVSSzRnV0ow?=
 =?utf-8?B?cWlLQktuOVhhVE9uWlBGTkZybmt5di9aQ08yY21qY3M2UzJQa0t2Q3ljbjhj?=
 =?utf-8?B?aDU2aEhmM1ZVSzV1L2tOZnltTmZVVEpMaklHNUNDQ1ZWalJWV0RPaHdYTEM5?=
 =?utf-8?B?U3ROZXZ6azY3SENpRzBPazJ6d21vTDZVdnk3YkRWWkVBSEFZUWVTRkkzbldt?=
 =?utf-8?B?VzQwMnJaNVZFWFVMRHNYSFMyRUpsbWJxYUZCN0lOU1lqdEJDK1AxWEpyNGE3?=
 =?utf-8?B?aW9ZRG9GanFSN3JiWUx3U0loQy9ZM0FmdUVsOFVwdTNBU2d4VUFhaUJnRG1C?=
 =?utf-8?B?Z3VRZk92a1VDaFhmUjFsRzR2RzNvQlRNWmd0Q2toWkRpUllKVmY5UTR0U0J3?=
 =?utf-8?B?QkF6WDZTNVluZkZOY0lVSGlkREZ1ZVlTRHZ4a2FobmwxUXYwNFNtL1NIQmVj?=
 =?utf-8?B?anRtbC8vcDA5bFNwMXM1d3YwUGJ3U09CZkxzVVIxbWwrRk5pWXc3UGVaczBr?=
 =?utf-8?B?b21sZTRjLzVvNnVkNmRvaWp0elIxZndMSUZuWVl0MGgreVZkVmtMT0NVdE16?=
 =?utf-8?B?dG1BZlJoSWtaR1BlNTR2WHVjMVN5ZVdNR0VIamw3bHBSS0NCUzRrYkJ4TUNW?=
 =?utf-8?B?NWtTY29QN1VFU2JmaXF0SXlxTkowc2FFbEhzd1VCdWs1UWdraUgvYWFjbHlr?=
 =?utf-8?B?bXRkS1VSYmlrajVzR2xCL21lV0Rpb1FqRnNpekVndUVGT1BObUVGTnQxY0pE?=
 =?utf-8?B?VWFKWVJtRFNIOVl1cmVRUnJRQmlqWDc1eENOS3g5aTRNK0hKdkY0L2JxV0k3?=
 =?utf-8?B?b3pZNGpSMDdGSnc5TUNEL1k0ZllVOUUybS9VcTQvYXY1VnZxNUlQSmRRclh3?=
 =?utf-8?B?K3VoQVZmcXJFSnRvNExwSGpISGluNEovRkI1Nk1HZUVGcEc0SUdiOWNNVzli?=
 =?utf-8?B?NkhHZkVQNkYraFdEMTVCZVJiYTBxTE9zd3U5RDYvTnlvbTB3V2tPcGFzUnFE?=
 =?utf-8?B?OENrelpRSlB3Y1ByUlZmQWVzOGRNQkcwN3VxaTllWm5hVVZNaGhsSkd2Z1RB?=
 =?utf-8?B?M2QwTVlUODlaNUVjYWNCWm9CbmV0Y1EwYXJMWkMwaytpL1JCbEZpaW1vU2hm?=
 =?utf-8?B?djR0ck9LaUh6a2hYeG1XVGxnRC9xL2VCYXVBZXBYZjRnODJHWHMyRTl4TlNP?=
 =?utf-8?B?UGpYNlNJY2dPZlovSGl0S0MxZmF5djNYajFFTTB3SnNNdkx3SHlJV2YrNDhQ?=
 =?utf-8?B?aVlRdks3L0dQVWlzSXpYKzFTcWpHcldiWmtnYk96WVJ2WUZjMnFoWjhkUkFI?=
 =?utf-8?B?Z2MyMFpxVTFDYWlDWlkzbW5IQy92Z3pqM3FsVUg1eHdXV0NuRkpIMGFOcUFU?=
 =?utf-8?Q?A9uf0iCWn3tdtvRY=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e2be2a60-a810-4d58-82d7-08de89c24269
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 16:27:36.6150
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 5aM+i4ey73pD0SuO6iwLCoHbUjexPi5p1nWgjJbJ13baUysdIXYdFlhMpZZZR2MlG51fot+6S2TMnHLi2Liv+a0qQBJZ872kXlCfhhlLssw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH4PR03MB7772
X-purgate-ID: tlsNG-720697/1774369674-42C83DB8-C4B9A84F/0/0
X-purgate-type: clean
X-purgate-size: 1345

On 24/03/2026 4:24 pm, Mykola Kvach wrote:
> On Tue, Mar 24, 2026 at 5:27 PM Jan Beulich <jbeulich@suse.com> wrote:
>> Shifting signed quantities has restrictions. Since the wrapping macro of
>> read_int() type-casts the result anyway, switch function return type as
>> well as the local variable to the corresponding unsigned type.
>>
>> Reported-by: Kamil Frankowicz <kamil.frankowicz@cert.pl>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> We've inherited that code from Linux, and the same code still exists
>> there. As I'm entirely uncertain whether they would even care, I'd prefer
>> to not take the route of posting a patch against Linux first.
>>
>> --- a/xen/common/unlzma.c
>> +++ b/xen/common/unlzma.c
>> @@ -30,10 +30,10 @@
>>
>>  #include "decompress.h"
>>
>> -static long long __init read_int(unsigned char *ptr, int size)
>> +static unsigned long long __init read_int(unsigned char *ptr, int size)
> nit: Since we're touching read_int() anyway, would it make sense to also
> tighten the helper's interface, i.e. make ptr const and use size_t for
> size?

No, not mixed into a patch which is fixing a real bug.  Cleanup can come
later.

This code is vendored from Linux.  For better or worse we try not to
deviate, although that is going to have to change at some point.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 16:34:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 16:34:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261088.1554208 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w54hk-0000cP-IJ; Tue, 24 Mar 2026 16:34:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261088.1554208; Tue, 24 Mar 2026 16:34:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w54hk-0000cI-Fj; Tue, 24 Mar 2026 16:34:08 +0000
Received: by outflank-mailman (input) for mailman id 1261088;
 Tue, 24 Mar 2026 16:34:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w54hj-0000cC-61
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 16:34:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w54hi-0078mb-IA
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 17:34:06 +0100
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c2bceb-2eae-0a2a0a5409dd-0a2a450691f8-42
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:34:06 +0100
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c2bcfe-3034-0a2a45060019-d155802ecdf6-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:34:06 +0100
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-486fda2a389so33732175e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 09:34:06 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487116f173csm71948915e9.2.2026.03.24.09.34.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 09:34:05 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774370046; x=1774974846; 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=cKWowr1B+a85XDH0T1SBLR0GKS2pw1TRdxbFceeMyM0=;
        b=StjTBsFVkor1t0+gXORLhYaKrrul+M41YyoTOzfM+Ul/Wmc94s/bncKxtI1dy40JTy
         eu4JDEwdsCHPZJzga0/6ecOKqiXMb8NhthHwHYcYFbTV4Cxfq30BO2iB+LhtL1myWEYR
         6c3xq7SE2bQdGLj+WWVUSrtJUboqiwNC7zvAEAzlxdJOFYf4cFNNgGzzsoTFYndzwuR1
         khQyZM8modrKEEox8ogKFS2CoJI1gs1R7XU9pEIS8J+nLZEYJ3YkjRH6TSp+TF9y0a/z
         dWFExEULIQ7zN7hvufPuGZbZctTLKzKoAlRsBg5CLOSd7k/l6TRiGRxxKFGZl1FO8idg
         JhLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774370046; x=1774974846;
        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=cKWowr1B+a85XDH0T1SBLR0GKS2pw1TRdxbFceeMyM0=;
        b=Al2Y7wnPHz6JzzfV99/eiqEuFSYedjlo+VNA3yzkjkcZBSXB/37zLKlHknpuMKkUO3
         AKQUh21ykozsLfp7HJdGvQ6nUHVW3Yy2hBut6lSOvTphE/EeEaHMSBwwnpID3lrINHIK
         UIVJGyjflK7KRw3mhIbAJkks+YrFOBqfXUPEG6eP1fIwVKyzYuqKK+zQ9JFAOLd9nQH9
         9NfjLTFtlfLTy5N8mJFQ1RkkMRRdJ+4WESL5caY3mMDRLCz61NolxTudMk63695Uo8SA
         XBI4KM7k9JJYRcCDuxxJxJCSLzX89JbubApbPNG0HDZ0oZaiX8VSQm998TEgrWxQhyln
         JWcA==
X-Gm-Message-State: AOJu0YxtyLro3l+qFkQEYP0XxY/D9D7yuarVlPQfcVHMSZZdBXxiUcYy
	eCuwBF8SUAvNxyFn7FAnwYc5Mq6P4Qk0q5yeBQaPhe0Bv8diGxFCXsIN8FdlCDcakHHv6X4/ai3
	S3Es8qw==
X-Gm-Gg: ATEYQzyAbo0Yvu7M+ddLx5mzEmEy6p565m+A7VG40Q7RdLXK5zPrJqcLU8taTHROSO9
	bJz75KF0TdWYRAWP+0vyYYaEo+zCJSHs3hDav8YnVozm6BSE7XPmcYpkI1yjRomDMSBjV6COMcn
	dsun4lzeScRZAK+4JfmtOPMCfBocE+/o9kFRgAayp2PnJoUkbBnnoRBeZ3SecsnQ5SJNNdrGZm9
	5CcR8Jp3LnhOVSc434RGxx3dd46IyaXh2z5zY8xEEnveCb0G7+Wvy3HnvCfbbnpYRqDNXAgJ1vf
	Lcgh25cP0THEuQPTQAeABMJ55yiKeH2Ffgqm0+u0EAwGI9AbZwKEQOYEV7HXYyOKGZsCw8X7ChY
	X0ZqWh3gjHPKjWR/RWcllhxxRAYJbWlYq8uVPzJY07QOZVRHvX43xzwiU1N2RazsrNa+ftguW2e
	eol5theB4mX2smvfeEYXayxhxAicz7A/Qest2M7188yya+pJuBDQCm839jtjsJUtI/HVrcPvuA2
	O+/pfZnjC9ADYLOPRwsE8jw0A==
X-Received: by 2002:a05:600c:8b88:b0:487:1c2:6a4c with SMTP id 5b1f17b1804b1-48715fbf6a6mr6774895e9.4.1774370045592;
        Tue, 24 Mar 2026 09:34:05 -0700 (PDT)
Message-ID: <63284ab7-8e38-4448-a789-1b9c23c4d95c@suse.com>
Date: Tue, 24 Mar 2026 17:34: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>, 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>, Kamil Frankowicz <kamil.frankowicz@cert.pl>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/5] input (mainly cmdline) parsing corrections
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1774370046-7B49B1C2-B8483577/0/0
X-purgate-type: clean
X-purgate-size: 286

A number of issues were identified by Kamil, by way of fuzzing.

1: EFI: avoid OOB config file reads
2: llc-coloring: improve checking while parsing
3: ns16550: harden name/value pair parsing
4: ns16550: harden positional parsing
5: video/vesa: harden font height parsing

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 16:36:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 16:36:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261100.1554218 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w54jx-0001Cg-Tz; Tue, 24 Mar 2026 16:36:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261100.1554218; Tue, 24 Mar 2026 16: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 1w54jx-0001CZ-Qs; Tue, 24 Mar 2026 16:36:25 +0000
Received: by outflank-mailman (input) for mailman id 1261100;
 Tue, 24 Mar 2026 16:36:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w54jw-0001CT-Tz
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 16:36:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w54jw-009nzh-A0
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 17:36:24 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c2bd86-bab6-0a2a0a5309dd-0a2a45079c00-2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:36:24 +0100
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c2bd88-fd74-0a2a45070019-d1558031ac61-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:36:24 +0100
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-486fb439299so46432595e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 09:36:24 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487116f1905sm65404635e9.3.2026.03.24.09.36.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 09:36:23 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774370184; x=1774974984; 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=6ryDNV+LUR403GgrG/TR7em/GAAuhw03SibcyX6lEjQ=;
        b=OKvpbIpPyyTLISWKoFsPFDfzLa3B9eRS7e5K/S2QHq3wMZZ3QkcUvWOH2ghv5RAXCo
         mGa5UqJdxpzDMDhAQdUQgnafJ+xw5od1j2zfmGTpJBpHmFzEJg2/olt41iFysdhETWhr
         Plb3Yh2x4tT3Wfih3UYCCydrgsYGGqvILc5BvUGZBpW+AoaNwa7LTD26zDIcniutqZOz
         5PxQzXQz6f40SmvCVQurOXbBTYkeuD9yaZhdLVdvkD650cl/4MO4WH/PX0+iQf6aGZMm
         82vUz6gxUSOFXALazyUOgIv7FBF1V2+2uqwKNfwJ07AE1yNkZVLFTVXAPxTUO0BX/HRB
         ryIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774370184; x=1774974984;
        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=6ryDNV+LUR403GgrG/TR7em/GAAuhw03SibcyX6lEjQ=;
        b=XUveUEimMglX2OdwyhjSmdYv7Q1OoUROqB2NTu5eyZxAtUxpAqGj3pX8idjvsWaDgp
         SoJpnsIRGAlyvbzTZICaOLEGi1A2HdcqCvcLq/DTqIs2PoA5T2wiwiziYL8OVKc9MdHm
         +eFxvuByt60i2ByeXtbAe4H2hIN8EQ07dsv6EnhifWpTaZUQl19VjW/ppdirDOeEGovX
         C/amYQQdICdugS0PUvu2HTUllnc0Cx5gC+VjQByWwOX2BkpRswW5TJaC2EmNgzcrUYdi
         HFRBH6l4I6qejjOHgHw5x027dhH14t5YrIAPpw0u9vx/dmnNQihVE9k/ojPQ1mcyhwR1
         x0mg==
X-Gm-Message-State: AOJu0Yx2jPgTmd/2UwKwzMyCEx3X0pjo5XLOISb5jMMJQzE1/Iy6txu7
	Rc7GFE+n/8mBv8tO9k3d1uLmjCUdeKDgBJC7y2veTOzfrJ6jgYfFP0ebcvUDG8Okvq8RNwjjQO3
	vwoKZHg==
X-Gm-Gg: ATEYQzwul3H+DFHJh2dU52L0S4srAcDNW88J7CGi2MMsPEoNfqln2IQv9E4w6dCz/u8
	uJAQcOiBlN/ePh2jSSjAhOeRXbX4/x6dSFZgsFChCSf/Ur+Q83VmvKfftL7HPxzmpP0lZE6gKXw
	qVJ5t5KDl6mMtB4q9oB2lmSs/JREa/WNn8X2eRlKefEiD2Hz91k4EfvbBjUQI8CGrXjXbIFo6tR
	Y336zPYx490Ho1UCzcJGmlM4akmZJw+PTj/z+gd8ztatULiqzYiSOkfTphEfD2zQIr3kWMl918Z
	vRJy5ccxWxdxi3WddxAIuxnhMXFBKq0O2ZNhGwgBNh6aspYwKTFeJ7rA6tXzeG74Qn2M/PrKtva
	IS20fCclRtiR15hVRXEW8Cx5I3Ty4tfUPDGCUPPJZoz20sMDU1cgM1x2NJwd5JjRFa0IqV5cq07
	NmYDGqsK4eHVbBXXEU7CCqiKe10lzzjh0N0gYCBnsRBh8C77AAF0KGhoMegCrxehPgPUd77soWo
	3cLfg0hLQWY6HI=
X-Received: by 2002:a05:600c:8b51:b0:485:3f41:e113 with SMTP id 5b1f17b1804b1-48715fc37a1mr6628225e9.1.1774370183608;
        Tue, 24 Mar 2026 09:36:23 -0700 (PDT)
Message-ID: <f56a8eac-bd35-496d-ae9a-b429f8305b31@suse.com>
Date: Tue, 24 Mar 2026 17:36:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 1/5] EFI: avoid OOB config file reads
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>,
 Kamil Frankowicz <kamil.frankowicz@cert.pl>
References: <63284ab7-8e38-4448-a789-1b9c23c4d95c@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: <63284ab7-8e38-4448-a789-1b9c23c4d95c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1774370184-562B1303-87F74F55/0/0
X-purgate-type: clean
X-purgate-size: 725

The message emitted by pre_parse() pretty clearly states the intention.
Make sure we actually do so.

Fixes: bf6501a62e80 ("x86-64: EFI boot code")
Reported-by: Kamil Frankowicz <kamil.frankowicz@cert.pl>
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -907,8 +907,13 @@ static void __init pre_parse(const struc
             start = 0;
     }
     if ( file->size && end[-1] )
+    {
          PrintStr(L"No newline at end of config file,"
                    " last line will be ignored.\r\n");
+
+         for ( UINTN pos = file->size; pos-- && *--end; )
+             *end = 0;
+    }
 }
 
 static void __init init_secure_boot_mode(void)



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 16:37:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 16:37:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261110.1554227 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w54l9-0001ke-6d; Tue, 24 Mar 2026 16:37:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261110.1554227; Tue, 24 Mar 2026 16:37:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w54l9-0001kX-3F; Tue, 24 Mar 2026 16:37:39 +0000
Received: by outflank-mailman (input) for mailman id 1261110;
 Tue, 24 Mar 2026 16:37:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w54l7-0001kN-SS
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 16:37:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w54l7-00BRGv-8M
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 17:37:37 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c2bdb6-bab6-0a2a0a5309dd-0a2a450a8d16-38
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:37:37 +0100
Received: from [209.85.221.50] (helo=mail-wr1-f50.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c2bdd1-1772-0a2a450a0019-d155dd32c58e-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:37:37 +0100
Received: by mail-wr1-f50.google.com with SMTP id
 ffacd0b85a97d-439b7c2788dso2683636f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 09:37:37 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b64703c7fsm39269135f8f.23.2026.03.24.09.37.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 09:37:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774370256; x=1774975056; 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=XnNfB1/2AyY2UunH96rDhznb/JdhQ9aY7JCKKR0Fvo0=;
        b=ZQ8DTCrSwQv1HLQL4sChiMAn4CWS/WvlUz1ijtilZJL1hduUy0vPxEUPMrsrvqMBge
         GNod/sLm4Fpy0UQcSBRpkj0pKmI+DXeFTxN/d2BsQv0V2uASUBHYyMccvcEAMcfEw147
         WfgLpBdC218mrADLDyBYnENx/eGcuB0SFAY3aRjYD+fR/0WKw78wbxsmfHJpzeeEP6je
         XVYrCUxoMTJkTR212BQgvanxOnPP2z2IPuEbbygPo2jw4d5FjJrR1WYvu0XAd9PZNgBt
         TTDLG7m++pXD1z4iJpcc/idAPah/vdDF0V3q4uLzb7l1bb1EDo4i3ovXA936ThPigyg7
         NKhQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774370256; x=1774975056;
        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=XnNfB1/2AyY2UunH96rDhznb/JdhQ9aY7JCKKR0Fvo0=;
        b=rI2kvSbZbRJFZNZThOatMhkqzooOxBSXfcFKprPodmCnchZINm3RC0866g0USjMQMT
         HhY/z96WYBWcsDQ5G31C6ThxiZRc+toSr+bX89mdzG2gtCarf2MMYKMQAHVHk/fHDc7u
         /INYwYUSl4qnpaXAivENbOEuJ2q2yv4C/CWqUuU47LE+m54soHd4acBVjwPTBupZn3M/
         xzx8XHm/beM93MXdnR4C8BbfTii6fQOnOlXR7tVZJOXgiSDIUCrHe/RbxBQj11oSQSMy
         LSoWznqrNG3o18GTr9HX4J9+CtV8HxT5e+fMuQecnWjHsCEaEvoZR/Hkbx3/lYyZfugF
         BPbA==
X-Gm-Message-State: AOJu0YxPAspzVx/fjC8K+hdM81H39kvAqkwvTU6MQ5l1JkPCtvP9tea5
	E2nWxoBh7105SxwwXge01NE7NcfTSkaSvyiQoa/bpZhcH6sqXBZDdm1P+pzDujf5eGdRWjTZcl5
	2FTBidg==
X-Gm-Gg: ATEYQzyvsn7JHGQtU9e0KBmjhX91S2Zr5RwPYTY3sBrBsCl+KGL0FKGK0H86ewlLqIW
	OcLW9rObJAErpB685fEuuJO5d3aqyQn3p10mK2veGnTGycKERWjTNGUp8Y2nw+jp24/53Xfdb8+
	wB77TnSJhqHXbnjPOPgVTC+DRT8tuRNWzaRWHVjDZIp3ditY6GmSfa0DVGjMrJ9jXHIPjzfGuwq
	Ago3QwSH4RiHh48IjcNGMYN3E+c3h3XLHmAfsd763roh0HcmF8ECI80GbqUG4NOb5naK/AAV8Cp
	cjxr2FRw8BjCxSQC7R170UfnGnW2iGc3mFjBMkG/+6VNLIWj/yXgIZXDqFsH//O5Ek7oszatd3Y
	D3IVZo2iSZ+vjs2kOuLpQmazvoTrl6drYS+s1Eugvqzd9B1qKkaLvAcuVYzcRWoh5EymFv327CK
	qghCaD9Z22zl8QlEMoPiKzeWkpbxjCK7q7cf9wzP8IhN9R3Dr7L4s50jJJve2piQwETv7x8CXtu
	F7kfkiGmrpOoRVuBuJeO6xFhA==
X-Received: by 2002:a05:6000:26c3:b0:43b:42af:75b with SMTP id ffacd0b85a97d-43b88a3a379mr178235f8f.55.1774370256476;
        Tue, 24 Mar 2026 09:37:36 -0700 (PDT)
Message-ID: <97d6ba6c-4ffe-4e1b-814a-d51a0bcf363e@suse.com>
Date: Tue, 24 Mar 2026 17:37:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 2/5] llc-coloring: improve checking while parsing
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>, Kamil Frankowicz <kamil.frankowicz@cert.pl>
References: <63284ab7-8e38-4448-a789-1b9c23c4d95c@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: <63284ab7-8e38-4448-a789-1b9c23c4d95c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1774370257-BFE9D900-DD563593/0/0
X-purgate-type: clean
X-purgate-size: 1151

We can easily avoid the risk of wrapping UINT_MAX <-> 0 by applying a
check against the compile-time-constant maximum number of colors.

Additionally the overflow checks suffered from an off-by-1, as the parsed
ranges are inclusive (e.g. end == start being possible, requiring 1 array
slot, while availability of 0 slots was checked in that case).

Fixes: 6cdea3444eaf ("xen/arm: add Dom0 cache coloring support")
Reported-by: Kamil Frankowicz <kamil.frankowicz@cert.pl>
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/common/llc-coloring.c
+++ b/xen/common/llc-coloring.c
@@ -76,8 +76,9 @@ static int __init parse_color_config(con
         else                /* Single value */
             end = start;
 
-        if ( start > end || (end - start) > (UINT_MAX - *num_colors) ||
-             (*num_colors + (end - start)) >= max_num_colors )
+        if ( end >= NR_LLC_COLORS || start > end ||
+             (end - start) >= (UINT_MAX - *num_colors) ||
+             (*num_colors + (end - start + 1)) >= max_num_colors )
             return -EINVAL;
 
         /* Colors are range checked in check_colors() */



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 16:38:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 16:38:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261117.1554236 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w54le-0002Kk-DQ; Tue, 24 Mar 2026 16:38:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261117.1554236; Tue, 24 Mar 2026 16:38: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 1w54le-0002Kd-Aj; Tue, 24 Mar 2026 16:38:10 +0000
Received: by outflank-mailman (input) for mailman id 1261117;
 Tue, 24 Mar 2026 16:38:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w54ld-0002KT-5K
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 16:38:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w54lc-002tLY-HE
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 17:38:08 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c2bdd6-e002-0a2a0a5209dd-0a2a4501d79a-44
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:38:08 +0100
Received: from [209.85.221.45] (helo=mail-wr1-f45.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c2bdf0-6400-0a2a45010019-d155dd2dc40c-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:38:08 +0100
Received: by mail-wr1-f45.google.com with SMTP id
 ffacd0b85a97d-43b4f48c47cso3012782f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 09:38:08 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b644bd0dcsm38781283f8f.11.2026.03.24.09.38.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 09:38:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774370288; x=1774975088; 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=xSea3csxQK27kPKZBEWvJfLuReO04l6n0dzZu3l9za4=;
        b=STgvz5zz0blYFZ6IjCfecpjZQWGK4DDQOdSYLZhqP2+x9fWI8OoJ7Eg0sBQMc3MEBM
         XtNfMMd4J2VrrL+r7IjcXUewsoss8JhN6sX4QkPjPTKKwokB7PWPM+xHiJlVhXPH11FG
         2zBh5E+zRX6+0tC4EHTgZ0FZ6eaSNYf6A30y/L0Ubx8zyNB8qZOqassb40qfB3jGsCNU
         sjPecOHhjUq/oXnMDs1TQYv0KuX/cx4ej5owuPZTi8JNzWhuejS6D+1I2+4EMlubjs5L
         wVOdWIldeHAF+8/g6Eq/slyqIeGexCwvvhEL7AKzBJ41fOTtWWN2ZSzm2o8UmtVAM7UP
         kIGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774370288; x=1774975088;
        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=xSea3csxQK27kPKZBEWvJfLuReO04l6n0dzZu3l9za4=;
        b=IJRzvvYMG8Vb8bqO/TXqeaI+RjMep7pHABCCp7H5Nh8wQc+MoRK/W+qJqTDdaHSqrb
         uoLzCQuLkmiw0YbDfk1eRN2DwX98hVOD7etV6zJ85qOMI3+apo5h9aHKEwb242gu6tPq
         cs3Nv7QxWuwbrU1jgWSMECpUmwjQuY+CLqqjPqx5q5Z2aiIdFXTzR0FHH3l0EUL0eLYs
         mb4VPt4HGerCcV3yLxg0oBzW5zx2NrR3chAnGcuBY67J6C6+W2NG6SZQONT7HD0vw0ni
         yT7qn/yMqRxiaaIwqsuTSmf4yoOYr2Tg7AKHhIbaxYV6cYK+K2ZTBsmV2RWBFpCHKbNE
         2veQ==
X-Gm-Message-State: AOJu0YzU/4nUmsgAvJU31uoOgirzZyxPjBvq+m+F6NOEQwmcuoFQzcgu
	xZkRWfGZw4WxQuMyW2n2RQELCpGo6oN2quCbzj+IKBok/h0fDCYi5EKjhVXDDouLf/HHv4jtJ52
	Uu2D3pw==
X-Gm-Gg: ATEYQzyrJ1Z8NkTHkgr59YiAn+CQswvrU5RI4Bal1AXqcnxfwEavpDE+WtezfsqkXxc
	i1/H2y1C5tClK5VNJKZAlnLlhFJ4wRItxcCXYWl/SHzywwL1N1Q2dR5XfthURTldw6USREJlL4x
	OgrVvKtUn5hYEXMQJuoTreHkk+NT54OCrghRhsQCZt8FbjPjn8MlZXfQS+KY1mc0ufgI671vL/k
	oVb8PFk86OPfF/awvDLp2eH7/KCFsKic4SlnZM+0/iPELGAblkUMtH1LA7fKEGQg9AYKW6GrI+W
	8rDv6wIxG5OGw3EfwOnhVEhrTprAJKlrdbcTSRj5IqLsHNO5X8QLpU1Aw2RB1o3nkjWYPb7E3X3
	Md4auWmzEjjD2Tb1z5/lcGnR+na2eEXSWExjknPOpKFIS9Y5fja7aIpYHS+bYovTFF7QSlRmVkk
	Du6AuzVvR32TSrBnW5I/aYhTNbkwpbZSdQQDRUMEAWe70kKMic8u8rROe/ZN0eP/+ZS+lSRVAt5
	uET+GrjQs1b9rI=
X-Received: by 2002:a05:6000:2dc7:b0:439:b6d6:723 with SMTP id ffacd0b85a97d-43b88a1bcc5mr226529f8f.42.1774370287775;
        Tue, 24 Mar 2026 09:38:07 -0700 (PDT)
Message-ID: <66135036-b516-4665-b875-996456a34640@suse.com>
Date: Tue, 24 Mar 2026 17:38:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 3/5] ns16550: harden name/value pair parsing
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>, Kamil Frankowicz <kamil.frankowicz@cert.pl>
References: <63284ab7-8e38-4448-a789-1b9c23c4d95c@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: <63284ab7-8e38-4448-a789-1b9c23c4d95c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d62444/1774370288-48E12DF3-01D664D8/0/0
X-purgate-type: clean
X-purgate-size: 957

strsep(), unless passed a 1st argument which itself points at a NULL
pointer, won't return NULL. Instead if the separator(s) looked for isn't
found, that pointed-to field would be updated to hold NULL. Hence the
important check in get_token() is for token to be non-NULL after the call
(which get_token()'s callers rely upon), while the checking of param_name
is left there just in case.

Fixes: 97fd49a7e074 ("ns16550: add support for UART parameters to be specifed with name-value pairs")
Reported-by: Kamil Frankowicz <kamil.frankowicz@cert.pl>
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -1466,7 +1466,7 @@ static enum __init serial_param_type get
     unsigned int i;
 
     param_name = strsep(&token, "=");
-    if ( param_name == NULL )
+    if ( !param_name || !token )
         return num_serial_params;
 
     /* Linear search for the parameter. */



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 16:38:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 16:38:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261126.1554246 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w54mE-0002v0-PH; Tue, 24 Mar 2026 16:38:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261126.1554246; Tue, 24 Mar 2026 16: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 1w54mE-0002us-LI; Tue, 24 Mar 2026 16:38:46 +0000
Received: by outflank-mailman (input) for mailman id 1261126;
 Tue, 24 Mar 2026 16:38:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w54mD-0002ug-Md
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 16:38:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w54mC-001q6T-UB
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 17:38:44 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c2bdf6-2eae-0a2a0a5409dd-0a2a4503ba16-48
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:38:44 +0100
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c2be14-1947-0a2a45030019-d1558035bd03-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:38:44 +0100
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-486ff201041so36507355e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 09:38:44 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48716549160sm905435e9.3.2026.03.24.09.38.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 09:38:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774370324; x=1774975124; 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=PYk9vEEfGRYDleF6fCoNLGed2AL29CgD3kCqdLh6Eqg=;
        b=Ka25E67T5QSaxqUuPbGBjeu4LGthhVk0aCnO6VyrZLOYoPKDSudDTzOzMpbYGz24mu
         zhaNupCEpVzx9MSzzNxTs3EPW7YsgnGPRqRglJ3Xu+fyp3bK/jmhdi5el98Erd8CcWFv
         YOB6nVxrMoyKAG2pofO8gTJtAD+u0Tveul9ovVf5mXd9yAMV4djGi2TYNCMYh8UfNXNu
         MiLAWPO3KrYGkAHWA39SmkzqiItWumFW7aBilLcF+8rhja8gRmjWBBC2jsWkr7UsnwgO
         ZJ/Axj5FsBmjvNmqjuHeNPR3VQp1zZDJKt2OTzc6uMf2wV2FDvjjAmhTCIz6XXI2zAVw
         wEZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774370324; x=1774975124;
        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=PYk9vEEfGRYDleF6fCoNLGed2AL29CgD3kCqdLh6Eqg=;
        b=TuD7FuHXKttKC7b+pt5B8+M1976NM87J7cjwgVFXmc6FdiFb/pktDzf+siwm6WOcqe
         Z4x+pBXhghljn92+OwyhpfErWsAPtt9YFJiYwBNxNfSHDYnn3zrfLk0PmjT7dwrKmR7u
         EWjpPOyx+3sxppO1jstRY1IdVEmNVFq5oRq7akBornwLBT8hGnGDtvY+66VK8VFcLN5I
         oKtk0Ml8pNCxx1mUzn26Qf4QviQJO3QYWnXJ7lFpjSCUvAvqhgku2zFCUd2C7hCJAVQF
         0n/P3EKY4N3as6LAfhRb/LuDTONhq0l70JcJxxZGM1m4xiqFOAon6C36pk9t3R8JpxzP
         IFfw==
X-Gm-Message-State: AOJu0YwUHVhwMWr6s/u66ULOsWFjdHQoikKTl96ax5CQAOBjHYD7l0Np
	fh5gSG5zbNPgP7vNmrAGzT68Trc/71B/AlPAD9PVzwszmM95SulUo3VsvFQgZbPAetZ8JVjeNgk
	tkzMOGw==
X-Gm-Gg: ATEYQzzHM3/OKU41WtfPAfCnz+nhCX1TpPLuMGI6iAEkrXzvPsTnO4l2wHZO241hcHB
	aRllZ/NKwTQPq2qf0yHK8iDyl2yp8XQzIeqKjFtnuIvcZ5gYzAh1B5hGhLbRlpN2IgFBGMBHIDl
	0H2XBCKrCeH26jf35ogqn+VlI4r3h8hJTd1F17KdFTEVzhsA0hrkAhR2IQIXo24P2T5KkRkzB8D
	8n+Xkf2+P7bA2nWN5ZWtfHHQESLSIRvy/N08acptKJqDuyJyRjNaAGD5aulTZp3bVPmrdlF0eED
	ViRu1Q1TZrhjOzZWTffpxU2+UAHBpJV0WyOqHxXas35v62fAVtIFZnmQLxT0vaQqPZReaH9ArgF
	YfnoCyUZwTDIg9xpT6Hb4YFH2hQvy5GPpsBW59Eq/DevRdJg+1mZx/cqV+Pc4PgPbUaGtpGIKSn
	SErnpWAvDndF5ylAXHLx3E1+Tivlp7/dr58XYi+eU8Qf2jUQzUHYciFpo248xdGghoFu3qVd007
	z4Grh1SJeDz5DOMNXAwgDZDRQ==
X-Received: by 2002:a05:600c:8886:b0:480:4a8f:2d5c with SMTP id 5b1f17b1804b1-4871606dd88mr4297395e9.29.1774370324272;
        Tue, 24 Mar 2026 09:38:44 -0700 (PDT)
Message-ID: <b34b6e26-49ba-4ab8-8f43-a53c5dac63b7@suse.com>
Date: Tue, 24 Mar 2026 17:38:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 4/5] ns16550: harden positional parsing
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>, Kamil Frankowicz <kamil.frankowicz@cert.pl>
References: <63284ab7-8e38-4448-a789-1b9c23c4d95c@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: <63284ab7-8e38-4448-a789-1b9c23c4d95c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1774370324-4866F72C-FF9CEDF9/0/0
X-purgate-type: clean
X-purgate-size: 706

Advancing past a character without knowing whether that's the NUL char is
at risk of reading beyond the buffer.

Fixes: 25de1f692059 ("Allow arch-specific defaults to be specified for ns16550")
Reported-by: Kamil Frankowicz <kamil.frankowicz@cert.pl>
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -1541,6 +1541,9 @@ static bool __init parse_positional(stru
     {
         uart->data_bits = simple_strtoul(conf, &conf, 10);
 
+        if ( !*conf )
+            PARSE_ERR_RET("bad DPS setting");
+
         uart->parity = parse_parity_char(*conf);
 
         uart->stop_bits = simple_strtoul(conf + 1, &conf, 10);



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 16:39:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 16:39:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261137.1554253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w54mi-0003Nx-Vg; Tue, 24 Mar 2026 16:39:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261137.1554253; Tue, 24 Mar 2026 16:39:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w54mi-0003Nq-T9; Tue, 24 Mar 2026 16:39:16 +0000
Received: by outflank-mailman (input) for mailman id 1261137;
 Tue, 24 Mar 2026 16:39:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w54mh-0003Ni-TF
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 16:39:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w54mf-009iyf-NS
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 17:39:15 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c2be2a-e002-0a2a0a5209dd-0a2a4508cf38-38
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:39:15 +0100
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c2be32-1950-0a2a45080019-d1558035e044-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:39:15 +0100
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-486b96760easo13743175e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 09:39:15 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48711702191sm58742875e9.5.2026.03.24.09.39.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 09:39:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774370354; x=1774975154; 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=56tWNbz8qa5QLyK5OKVcFjuIr6ITFbD/4bSejjAPp80=;
        b=Gd47qZhOYNt8HfYvSq6KUOb+12F0jwrTNQkNwzlaUmKKRFmiCtDW3kxZRU9mTv8CkK
         qB4Z80IX30974QgX2dW5dTX3PjAp26SWuSV4YRCUaq0wuUeTsprSmGRJgvuy1hDIE8Gt
         bOWLZEHBFYRBw78fDKPbdtG3Uny/WNsKwISSmJuzQCnlMuv0nWGElyoPV1wuVfv7iUXl
         RZR786bdVrBHXOR2XTVwTnlSLMcDAYkcfFZRkF018rSSzGLR7ytPY8AKT0eifLSzdINC
         eN4K7GCKL7y8mZ1+0/LR8lunh1PkQ4RFEafcF18sguiLnlEQK4X7x025AGCaJxmYdwZd
         UrIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774370354; x=1774975154;
        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=56tWNbz8qa5QLyK5OKVcFjuIr6ITFbD/4bSejjAPp80=;
        b=J2SUoWrg0RE54/BH7wgjOz+XCwq2LZArJECeY7cFj488BYxldkmPDTbW/Ky2kagxRu
         TxX313c/afQJVdg1hiqjHgOlWtOzi1I1pQTf2paQCKPicIxf6QSaN1TPCgYAxJvLXx6N
         foZJOd0AaiQAjVIH43tnhcLl/rnantggCbtPOWxj+wl9PoqvrmpUyRKq3aBykBs3DESM
         rgPqbPbJweXb5E2/FcP42nUeoSz5U29WE1yK9uu1txiFJVQETZ1qovjD1w9/4RmVYw3d
         N/y6UlSHuSlUaLp/L0X+1gNORSSOkBVnKMcZfiQKu5wc3LC/vCHwtor2gpa+vHmUPTCY
         oxXg==
X-Gm-Message-State: AOJu0YzkC+y2G+2qhA77zw4vRWFkKkEu09icrpwGxK30eK5LGvp61K26
	9ceoFEkD2W2tsfo/2cwDWq4s3MVTPOFChJ+2HiQ7Udg6Td3Pa9HuJm8y2b5um110fEKas/sJTeZ
	V9LS8Dg==
X-Gm-Gg: ATEYQzzZR0W/vK2iGi8sSGO0c1StkrkGqef9Wgx6zoDmoBLufsV72ZCpRamgTnPUFQH
	Dtvate+Dr/QVWt3xj7pAGh1lJpiKMRXuBdkGMdGvLvDkL7Er5wC7VOEYoB8kQ4Ft/XYfdNxjw29
	kdbEBV03US/xm/zB8+PHZAfHqt4XUerK6tg0diTCqTJy82siiHTflw+JDzwamAJ7VwDN2hTCcjT
	/woVPuH8R88qcF+AKG8Dh5+D9ie2mU1Ler2i6JICn5pLjcTnHVu5kG0HCNgCeUAxyCyfZooW9jt
	rXTPq5aSiLu2hIVQ1k1Itrha0oSYlSsgnZaurgCg0pSeMpt25x7yZ94ZyF/oAf4SVgKRJ9geBBK
	DJRsEkZzoX4xIk3LDscIVcaTaZUf1p98gWIu5WInr9+778vkwtVNx3aszXEl8Wdacm+zd+VJ1g9
	pnHk0Zg7tBS3DQt0cy6F8QWVZvsxC0uMUfvqxjwmg7JNfuctk6sN7wb84UzQF+buPghAqb5xTIw
	ZkJVQEQgn6Wk0c=
X-Received: by 2002:a05:600c:8b31:b0:485:30f7:6e88 with SMTP id 5b1f17b1804b1-487160881a5mr6352565e9.31.1774370354351;
        Tue, 24 Mar 2026 09:39:14 -0700 (PDT)
Message-ID: <5e8b4faa-5540-4406-8706-d546e3d2c46b@suse.com>
Date: Tue, 24 Mar 2026 17:39:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 5/5] video/vesa: harden font height parsing
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>, Kamil Frankowicz <kamil.frankowicz@cert.pl>
References: <63284ab7-8e38-4448-a789-1b9c23c4d95c@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: <63284ab7-8e38-4448-a789-1b9c23c4d95c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1774370355-F1CE2726-B768BCF5/0/0
X-purgate-type: clean
X-purgate-size: 810

We should not prematurely increment the pointer, to avoid inadvertently
skipping the NUL terminator.

Fixes: 6d9199bd0f22 ("x86-64: enable hypervisor output on VESA frame buffer")
Reported-by: Kamil Frankowicz <kamil.frankowicz@cert.pl>
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/drivers/video/vesa.c
+++ b/xen/drivers/video/vesa.c
@@ -31,8 +31,8 @@ static unsigned int __initdata vram_rema
 static unsigned int __initdata font_height;
 static int __init cf_check parse_font_height(const char *s)
 {
-    if ( simple_strtoul(s, &s, 10) == 8 && (*s++ == 'x') )
-        font_height = simple_strtoul(s, &s, 10);
+    if ( simple_strtoul(s, &s, 10) == 8 && (*s == 'x') )
+        font_height = simple_strtoul(s + 1, &s, 10);
     if ( *s != '\0' )
         font_height = 0;
 



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 16:42:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 16:42:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261151.1554262 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w54pQ-00052d-Ap; Tue, 24 Mar 2026 16:42:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261151.1554262; Tue, 24 Mar 2026 16: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 1w54pQ-00052W-87; Tue, 24 Mar 2026 16:42:04 +0000
Received: by outflank-mailman (input) for mailman id 1261151;
 Tue, 24 Mar 2026 16:42:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w54pO-00052O-T4
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 16:42:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w54pO-00F56U-8m
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 17:42:02 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c2bed4-bab6-0a2a0a5309dd-0a2a4505d720-18
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:42:02 +0100
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c2beda-5aeb-0a2a45050019-d1558033b9f5-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:42:02 +0100
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-48374014a77so55129545e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 09:42:02 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4871102369fsm35795505e9.6.2026.03.24.09.42.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 09:42:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774370522; x=1774975322; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TIOX8H5dGts7j4vtonCkFRYzN/dkOPpAxMuWZdkOdC0=;
        b=N63DhziulhGDm3EvJS42bOl2uqqhExvelR44/rn1XleTT2gnSkR4Ohl2vdQ+82gP3L
         F8MbwdBL6zTWeoXyABjS+P2EED6HI2jN8kbKQJaEyotLS2Nw/dFKLDqRXGYApl3HmyqX
         9h6Z//0wcpxA2byqGb+3/yDEr0RaF7QzjXjG1FTLwNxuBC2IOD9Q5LoML746fjqamnAY
         Ng6Cl+eGEGeXY2hR6rI7jHjO1ip+D1Nr5Ofy6g1DwvIhm58iJstMDE5n10RWcBRsq0QY
         cNX7GJX8hA6k6/pwf0DDcnLKORir7ISgX7fNFQha7JbyX7GIdgiejU1givMlmcQLjSLP
         UMgg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774370522; x=1774975322;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TIOX8H5dGts7j4vtonCkFRYzN/dkOPpAxMuWZdkOdC0=;
        b=IvMoWWdfcA185YON2FeU1iRtQNj9FfwkEGB5e0IAoexcqOQOJz+rkSmYw68oGOjTIF
         e7LjcH4e70dwyeXQeahaEEfyEIrvKxj8ussCoIcCCo5Q/RJ7asqi7SdV8SoC9ADGLMOI
         6Krf82FbchIbif3kANmBDKtsohebSCTqwQakx3lrfi+vs9QkBKPT9DY64JtZQG41lcdd
         mcnB/9D3jxmiKk3ZtvbjEWa4soBpZXqlYNJ1grllWSvpDwOowF45s4s9+tGKRTBTrk5/
         Zp2ue1f6L9guxrucS/dSuSIeUSRiGRnaT/0MLLSmHyTChKezP9poe3r65mhq6f4iNt58
         sHwA==
X-Gm-Message-State: AOJu0YzRX8qiEiwKH9GOY5ZSjeyCmdqhWFEPe2LEg6JbAUuLpjDULPig
	ZbVxDhzqy6C1uBbdzL7vAPk3UmqRYiyzCpv67wnQIfeEkWaLj6vkZ0hOsQ845eFPWw==
X-Gm-Gg: ATEYQzygIvO/d8rCbcn9rWtCOnLoe1zz+ooIqHNhKOsd3Au0OfqvhRNUMpbFgHSsBnP
	x4Vev3Mxqaun7oPJsR8Q33dWZYs5KFPcf/jRYVNrWantwd0PfnVXq/QDuoDQhW1JTi/igPHhJ6C
	/DlVhuhKHKeY+e1IvQds5hkJBd0UktuxC6N1kTLk1g70bkh9egy/EV2UIFjO7xpUn1VALrvPZIw
	pQk0mHrVSXj57PXUWiWhLYEmUf0PK3lGZuPwIMtw9takTBxYRl/rRQo084R5V5IGkjAL6PU2mRk
	zfOgNkZJ0NBSQm58L2f0xtw7QEuPvcqge3YDFAw542G6CNQ3h4rH9Jmj3q5EDKxrIZWFjmRL2jF
	4I3PVRM4vF7by7pc5ZHOHg6mGr/rrmr/Mk8qePG+vwJIuuVsdGpYvn7q0yi4KlH2angvo06Lxyv
	uZoB1EV/remeQCQ9mzaEmv3VC730gRvSa2IxGrSJzvvuF8l7kX/oOFbXVvV+WKRI2Mh6MaCEGLQ
	cIrwI+x5DzESQg=
X-Received: by 2002:a05:600c:3f07:b0:480:1d0b:2d32 with SMTP id 5b1f17b1804b1-48715fea9bbmr6636985e9.12.1774370521626;
        Tue, 24 Mar 2026 09:42:01 -0700 (PDT)
Message-ID: <2c28fdb7-57aa-4683-9474-a1204e9070b1@suse.com>
Date: Tue, 24 Mar 2026 17:42:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] unlzma: avoid UB shift
To: Mykola Kvach <xakep.amatop@gmail.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>, Kamil Frankowicz <kamil.frankowicz@cert.pl>
References: <cb5ad24b-03a5-4c1b-9d98-8df534854b2f@suse.com>
 <CAGeoDV-zq+=HWg1v53KXyPR+kxBPpE2jUruc=JFVSjXTKv662w@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAGeoDV-zq+=HWg1v53KXyPR+kxBPpE2jUruc=JFVSjXTKv662w@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1774370522-21293488-BEE82D45/0/0
X-purgate-type: clean
X-purgate-size: 1834

On 24.03.2026 17:24, Mykola Kvach wrote:
> On Tue, Mar 24, 2026 at 5:27 PM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> Shifting signed quantities has restrictions. Since the wrapping macro of
>> read_int() type-casts the result anyway, switch function return type as
>> well as the local variable to the corresponding unsigned type.
>>
>> Reported-by: Kamil Frankowicz <kamil.frankowicz@cert.pl>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> We've inherited that code from Linux, and the same code still exists
>> there. As I'm entirely uncertain whether they would even care, I'd prefer
>> to not take the route of posting a patch against Linux first.

As following from this, imo we want to diverge from the original as little
as possible. IOW ...

>> --- a/xen/common/unlzma.c
>> +++ b/xen/common/unlzma.c
>> @@ -30,10 +30,10 @@
>>
>>  #include "decompress.h"
>>
>> -static long long __init read_int(unsigned char *ptr, int size)
>> +static unsigned long long __init read_int(unsigned char *ptr, int size)
> 
> nit: Since we're touching read_int() anyway, would it make sense to also
> tighten the helper's interface, i.e. make ptr const and use size_t for
> size?
> 
> That would better match the actual usage: the buffer is only read from,
> and size is really a byte count, usually coming from sizeof().
> 
>>  {
>>         int i;
>> -       long long ret = 0;
>> +       unsigned long long ret = 0;
>>
>>         for (i = 0; i < size; i++)
>>                 ret = (ret << 8) | ptr[size-i-1];
> 
> Separately, the loop could also be written without the temporary i, using
> a simpler reverse traversal, for example:
> 
> while ( size )
>     ret = (ret << 8) | ptr[--size];

... I'd suggest that you submit patches against Linux, for us to then
re-sync.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 16:51:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 16:51:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261163.1554273 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w54yN-0007Dy-6H; Tue, 24 Mar 2026 16:51:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261163.1554273; Tue, 24 Mar 2026 16: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 1w54yN-0007Dr-2H; Tue, 24 Mar 2026 16:51:19 +0000
Received: by outflank-mailman (input) for mailman id 1261163;
 Tue, 24 Mar 2026 16:51:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w54yL-0007Dl-Fg
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 16:51:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w54yK-00DrGC-AF
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 17:51:16 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c2c0f0-5cb7-0a2a0a5109dd-0a2a45048ece-28
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:51:16 +0100
Received: from [209.85.208.169] (helo=mail-lj1-f169.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c2c103-c823-0a2a45040019-d155d0a9e905-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 17:51:16 +0100
Received: by mail-lj1-f169.google.com with SMTP id
 38308e7fff4ca-38c26612508so11505461fa.3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 09:51:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1774371075; cv=none;
        d=google.com; s=arc-20240605;
        b=IgoiThrMJ5Z6SnmaaCXARBAvVgILNXHlKxrTCNZ2D5MYt2+lguJLLExq38JroBRSz6
         bk/C/MbyNTgpBhbSt/icsTleXb4+6Gs18iaGVJY42+0bb4dIQzmQl2jyiWDXNm7Z82mk
         YOnhkkxx1LYAVgyrUxlgYhoWNeXBWHJPsSDY1360XZVpiu9QfwX/fQ6y2FpMdeorun+K
         +HIZx8uRSIPitYAqH3JIOY6RAGMZuI+Q97GlaAs5+1AvgE/nivcrNv6JbM1u6Ja6wYIT
         iB8XzTXOYRpMeDhZh7YeKFYeNRq+nTAMuYFY39SDkyJ+y0ca0G3B02uCoKe89z/63927
         9Mjw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=NIbM3vXcIWf1SnXsthNSF6HQboFq04VNp1Ij5u/rO4c=;
        fh=SmKtTP+//FoTguQaCWAbd7P0/DDZIbvi8at9iFw3jIU=;
        b=ZyYUpCt5w4tp9pg9RzD4g9p4QsTugrZzUdiJnpcjl+Aqx3MwWYaWP7Nmpoo5vXrv+0
         b8HEySmLYw/NLTfxAtKTd3qtju4e0aQwtsyTHQPzjfb6AOx8lyOYWfMaKguHvltR7XDI
         PcoTCJCNR3YRMOc/bW9sUOF6OgsA975Ce7vtZdO9foZrhqdqJwtyK0fMh5zGdY5DHBrM
         UaDer1UiO2Su+XVHovOxm6O2WLgnYGm6WuJ0RpIvQpoo4dI7Cb10+93EYyuPavSxKcn1
         0Zw4zSjR6sxaqFEFVPQcx3qgIrH8Vcz1831tpTa4LBR3DP2kNX+MTtZMo9/412m7Gkh4
         CGaw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774371075; x=1774975875; 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=NIbM3vXcIWf1SnXsthNSF6HQboFq04VNp1Ij5u/rO4c=;
        b=K6Vs+e2uEC+9USiGPc0mPDGyF6Dhqf2xwfir8GcJGFFiB61KzUx3+q3Fy9VsMoZlyT
         OZndD90n+Oneo8uYPJ+9cAvxAiQeFh7fiocO2MjIp28LK637yuAAk1ixwrx4TAc7Yq5P
         kJqt4CVeU/JzjEWlQwbNv2ETcYWVt+PK1WZOm0yZfyqerjyWOpWHqYrLR/2S97n+ugcm
         fHkzoAT0gspsOn6utXhX8kKS59ZqD4W4e11PUQZM7haYsTG0gy5K6r4sh85JExplEaFt
         t6Y5NrXPzEMmBQmMy5xT3+vmVfLt7SDRNGkkjsJ3+5r6tyZvcV10FCL1xsf2hpYjExn7
         Vn0Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774371075; x=1774975875;
        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=NIbM3vXcIWf1SnXsthNSF6HQboFq04VNp1Ij5u/rO4c=;
        b=OoNy3OEOycpk+OvOVMhbkBI5jDODVUTd5jziFpTxE0iV/x7AHvdHkl3/Rcl+SiqWKo
         NMc/Ic964ivjXT0fi/p7gQ4wqPUvVVQWSQ/Wg594xM+HmJPAK/b7VuIaj6+oV2DTGVjE
         1D4ZiLRVuHtj9Og5W3fG5saD1kDGfZtHF+fuQDS8N6v4u1vwfBoI4B+W7INjAOdp+9ti
         Rc2maKC/Rzy39T3n1JN8RKgbRFWVvxlVuoTM69l4Q+u42utoHhITCWaz+Z0uiB0Ln1ap
         0euT6Xpowj1vujbCWQFk5Bc1FPpvHcJISn74AOH6cLbOHBJkvd8eCv+SygtYrZqvYgJ9
         rnfg==
X-Gm-Message-State: AOJu0YyUQXV/kGF/Z1WS6rZ9D15E2FWkzxQjTlI/AFCav63cYmULU9Cu
	Hg9c0sXl92vTA4ZHWQf50vNH852CeLbRk+XiJFqa7MgNv7R1vNFmHIh3cb6tbDoIL/9iMLhssE9
	3PFeNLBep573S0HOkPN7bIUbVjvFSZ2o=
X-Gm-Gg: ATEYQzx0PAH1fXLDLtpl6UuCD04gnJmefOB48SOQW1PHmgHISPT1DMCD9VUAbP7F6ti
	q+3gDUt5PHdine8XEzpcDsYb9vDbh7NJHlP94ybodwtGNJXpxcsr9Zq4tcY1hyuguwaXbby3CdS
	abtYkCUiMdC9vy5sLSRg9+q9zrW/GPia+iKn4pnWUzkNhBYrQzQ3Dr2iCuMS5zAjTIYxvSD9qpE
	oHv85Sd9a06NdYn1uvneMLHtWrGXyuxP9MhePk1WnC8NaNspoaJhliZo2QuBlOvZ3IDEALNkXXc
	Bja3uA==
X-Received: by 2002:a05:6512:2248:b0:5a1:49a0:af35 with SMTP id
 2adb3069b0e04-5a29b98116bmr110802e87.10.1774371074995; Tue, 24 Mar 2026
 09:51:14 -0700 (PDT)
MIME-Version: 1.0
References: <63284ab7-8e38-4448-a789-1b9c23c4d95c@suse.com> <97d6ba6c-4ffe-4e1b-814a-d51a0bcf363e@suse.com>
In-Reply-To: <97d6ba6c-4ffe-4e1b-814a-d51a0bcf363e@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 24 Mar 2026 18:51:03 +0200
X-Gm-Features: AaiRm51n-bpF7dF2mfbp-jdK0iDUcrImnPc7hI_O7ptjsmqqP3zbMEDXpAKOxSs
Message-ID: <CAGeoDV-zPfn5iDN6gcwq2bA5vcG0SUsgZbQufDWpux1rugXFEg@mail.gmail.com>
Subject: Re: [PATCH 2/5] llc-coloring: improve checking while parsing
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@vates.tech>, 
	Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Kamil Frankowicz <kamil.frankowicz@cert.pl>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-ebf023/1774371076-BBA969D1-71353200/0/0
X-purgate-type: clean
X-purgate-size: 1849

On Tue, Mar 24, 2026 at 6:37=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> We can easily avoid the risk of wrapping UINT_MAX <-> 0 by applying a
> check against the compile-time-constant maximum number of colors.
>
> Additionally the overflow checks suffered from an off-by-1, as the parsed
> ranges are inclusive (e.g. end =3D=3D start being possible, requiring 1 a=
rray
> slot, while availability of 0 slots was checked in that case).
>
> Fixes: 6cdea3444eaf ("xen/arm: add Dom0 cache coloring support")
> Reported-by: Kamil Frankowicz <kamil.frankowicz@cert.pl>

For reference, I previously reported the UINT_MAX wraparound aspect here [1=
]
and later also here [2]. The off-by-1 in the inclusive-range accounting loo=
ks
like a separate issue.

Those threads also mention a few other related corner cases.


Best regards,
Mykola


[1] https://patchew.org/Xen/20241217170637.233097-1-carlo.nonato@minervasys=
.tech/20241217170637.233097-5-carlo.nonato@minervasys.tech/#db5d6a67-61d9-4=
8d3-b6c4-213c1cbbda21@gmail.com
[2] https://lists.xen.org/archives/html/xen-devel/2026-01/msg00369.html

> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>
> --- a/xen/common/llc-coloring.c
> +++ b/xen/common/llc-coloring.c
> @@ -76,8 +76,9 @@ static int __init parse_color_config(con
>          else                /* Single value */
>              end =3D start;
>
> -        if ( start > end || (end - start) > (UINT_MAX - *num_colors) ||
> -             (*num_colors + (end - start)) >=3D max_num_colors )
> +        if ( end >=3D NR_LLC_COLORS || start > end ||
> +             (end - start) >=3D (UINT_MAX - *num_colors) ||
> +             (*num_colors + (end - start + 1)) >=3D max_num_colors )
>              return -EINVAL;
>
>          /* Colors are range checked in check_colors() */
>
>


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 17:05:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 17:05:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261176.1554282 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w55Bq-0001Ew-D7; Tue, 24 Mar 2026 17:05:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261176.1554282; Tue, 24 Mar 2026 17:05: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 1w55Bq-0001Eo-9N; Tue, 24 Mar 2026 17:05:14 +0000
Received: by outflank-mailman (input) for mailman id 1261176;
 Tue, 24 Mar 2026 17:05:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w55Bo-0001Eh-LM
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 17:05:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w55Bn-002wzG-HB
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 18:05:11 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c2c442-bab6-0a2a0a5309dd-0a2a450b8f66-16
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 18:05:11 +0100
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c2c447-ef63-0a2a450b0019-d1558032b40d-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 18:05:11 +0100
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-4852c9b4158so42519025e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 10:05:11 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b85082842sm4748658f8f.20.2026.03.24.10.05.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 10:05:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774371910; x=1774976710; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=eCOVSUINbr3qzFl702prxHTOtaujcdyX+FM++DzfP/M=;
        b=Y4fDjA63Y66n8ne/nrbxIV8uMP1/kpK/6F5rxO+WjPVi8utynasgDJKhXMMTprcXyY
         RmcUPjYiXm3t7RUXEUCFfsb6UIJd8FPagpHMLIN+MnLuX0zxA7631mEgJUoPnbu23Zi6
         pogzq+69A/SFfK3QGgSR0SE9iPbTR+sNgyTznym1J8c/a+ntw1VJYzflXIa5AIFKMBJj
         ebSo1bGehI7spCBCl9H7PcUXIh0eyB9iy1PSwZzQ+GRMjNEHuU3nLazKoLIRwZG0Lswx
         sEsC/Bx3YRhwIzXCIgQGv3eR4oy2OqGe/EyXFJAhkw6EZhRpw0gQtLDPJTBaUPu9czcW
         94WQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774371911; x=1774976711;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eCOVSUINbr3qzFl702prxHTOtaujcdyX+FM++DzfP/M=;
        b=iCb1vkOhDkys7qbcb1TwzkCWv/q+8Ha0V3VDaO1zUb8aSXyjhv58PK1jwZjaQiEoEY
         WnYezO9nfGyhHVHuSpYej9MiQAnZEQW+OSoNvpxH0ORwfd+ExDdJat1+YDGA4ba5zRHm
         /9QsJ3su6cVgbpy5cS6zzcvU8W3KboKenurwrG/Er+XBlbnessofBXGDPpAOmnbCuYka
         krQ3SSOCA99fLwEuNNDHsoRGCJOkhaVDR2gXA7LDbU6dNsavPtgtOl8iiki5eJ5KsCx8
         lvYqxMSbie93nGvjLPFcHEKyZrYPicBLfOYJQEVsUYtnRYuftUmKwn7Z8hROlnJH/SKf
         nR2g==
X-Forwarded-Encrypted: i=1; AJvYcCUQYZLMCVW6uHJZJLA3+V4sH22FWq2VE/KP2baTmvTaiv+9/MsIhO1p812L7hB+xpSZ4CcHxrpRHwQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzzSSIlYG+ZKHXTAMwlZMy27XsSonGueXGN0XqTeL+wk2AX+liL
	E3luwYZ4tWIHXlwrOABa3Z+wM41SHGMLUs/SSX5Tp74NL+9usMBsPGmiHGO1Ho7xrA==
X-Gm-Gg: ATEYQzzPLOEmCt8lqdQSFB1HGhf6hPzemu8QoGyKSFbIjZ7dmWuxL1fhfRK4Ce3/1ge
	0xCiBoehfnCLIAMbDg02Yo4SsgacEPZzaum7QmWr7LMmRg62bRepdh7D0i3jxjaGK9INXanpW14
	V3C1a8qofy6yAt+jsGfGDjyJazfanaXe81qAhWtx93DkT4ScSIwDgdeW91Fy6WPzAXsSIvW5uJE
	YN1/GDV/Wl4TG1Eb36IXoX5WS0vQa/mhQP9Vh4ZtrPxB1GAf2SvFQXu+5FYZmFLS7Ue+Gz4QXe1
	UYGSD2bMMEccAIlw28V0W2GqjeyvcQLUEIpn8i3MDpLBj8vM73XnQWy5+26VP9771TLyl+0+ftI
	13E5+7gzLKDsOET98UizwJM04bOolIB132yPDllrl872DMbvhTg/Wm20+Kz0ZkTxFC1t8Q9BK2f
	BjltEwZCh49P0wWzhuAewQRoov/S+Qqay1WKlTdAqQAd9OzsXmS0jqgafSuWWwvP/NYTXH8Ao1I
	2xCiaS/AgQXYGk=
X-Received: by 2002:a05:600c:350f:b0:485:40c6:f528 with SMTP id 5b1f17b1804b1-487160a213bmr6751605e9.30.1774371910556;
        Tue, 24 Mar 2026 10:05:10 -0700 (PDT)
Message-ID: <2c601553-504c-405f-be5e-8ed24f21796d@suse.com>
Date: Tue, 24 Mar 2026 18:05:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] x86/efi: Add BGRT image preservation
 infrastructure
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, sarkarsoumyajyoti23@gmail.com,
 xen-devel@lists.xenproject.org
References: <20260324123312.11076-1-soumyajyotisarkar23@gmail.com>
 <20260324123312.11076-2-soumyajyotisarkar23@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: <20260324123312.11076-2-soumyajyotisarkar23@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1774371911-9AAAC112-35B0D6D1/0/0
X-purgate-type: clean
X-purgate-size: 5805

On 24.03.2026 13:33, Soumyajyotii Ssarkar wrote:
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -1,12 +1,16 @@
>  #include "efi.h"
>  #include <efi/efiprot.h>
>  #include <efi/efipciio.h>
> +#include <acpi/acconfig.h>
> +#include <acpi/actbl.h>
> +#include <acpi/actbl3.h>

I fear this is pretty fragile. acpi/acpi.h is what is supposed to be included
from outside of (the little bit of) ACPICA code that we have got. Which in
turn may conflict with efi/*.h, which is why previously I had suggested to put
the ACPI parsing code elsewhere (if indeed nothing we already have can be
reused).

>  #include <public/xen.h>
>  #include <xen/bitops.h>
>  #include <xen/compile.h>
>  #include <xen/ctype.h>
>  #include <xen/dmi.h>
>  #include <xen/domain_page.h>
> +#include <xen/errno.h>

Is this really needed? Afaict it's included implicitly already.

> @@ -747,6 +751,133 @@ static void __init efi_relocate_esrt(EFI_SYSTEM_TABLE *SystemTable)
>      efi_bs->FreePool(memory_map);
>  }
> 
> +typedef struct {
> +    UINT16 signature;
> +    UINT32 file_size;
> +    UINT16 reserved[2];
> +    UINT32 data_offset;
> +} __attribute__((packed)) BMP_HEADER;

All capitals identifiers are by convention #define-s. bmp_header_t perhaps?

> +static __initdata struct {
> +    bool preserved;
> +    const void *old_addr;
> +    const void *new_addr;
> +    UINTN size;
> +    const char *failure_reason;
> +} bgrt_info = {
> +    /* We would prefer the failure_reason to print */
> +    .failure_reason = "",
> +};

I don't understand what the comment is supposed to be telling the reader.
Clearly it's not about the relocation subtlety which (imo) absolutely
needs commenting on.

> +static struct acpi_table_bgrt *__init efi_get_bgrt(void)
> +{
> +    const struct acpi_table_rsdp *rsdp;
> +    const struct acpi_table_xsdt *xsdt;
> +    UINTN entry_count;
> +    unsigned int i;
> +
> +    if ( efi.acpi20 == EFI_INVALID_TABLE_ADDR )
> +        return NULL;
> +
> +    rsdp = (const void *)(UINTN)efi.acpi20;

Why the intermediate cast to UINTN?

> +    if ( !rsdp || !rsdp->xsdt_physical_address )
> +        return NULL;
> +
> +    xsdt = (const void *)rsdp->xsdt_physical_address;

What if only an RSDT is supplied?

> +    if ( memcmp(xsdt->header.signature, ACPI_SIG_XSDT, 4) != 0 )
> +        return NULL;
> +
> +    if ( xsdt->header.length < sizeof(xsdt->header) )
> +        return NULL;
> +    entry_count = (xsdt->header.length - sizeof(xsdt->header)) /
> +                  sizeof(xsdt->table_offset_entry[0]);
> +
> +    for ( i = 0; i < entry_count; i++ )

This calls for i and entry_count to have the same type.

> +    {
> +        const struct acpi_table_header *hdr;
> +
> +        hdr = (const void *)xsdt->table_offset_entry[i];
> +        if ( !hdr )
> +            continue;
> +
> +        if ( memcmp(hdr->signature, ACPI_SIG_BGRT, 4) == 0 &&
> +             hdr->length >= sizeof(struct acpi_table_bgrt) )
> +            return (struct acpi_table_bgrt *)hdr;

Please use container_of() in favor of casts.

> +    }
> +
> +    return NULL;
> +}
> +
> +#define BMP_SIGNATURE 0x4D42
> +#define MAX_BGRT_IMAGE_SIZE (16 * 1024 * 1024)

Still an uncommented arbitrary constant.

> +static void __init efi_preserve_bgrt_img(void)
> +{
> +    struct acpi_table_bgrt *bgrt;
> +    const BMP_HEADER *bmp;
> +    const void *old_image;
> +    void *new_image;
> +    UINTN image_size;
> +    EFI_STATUS status;
> +    UINT8 checksum;
> +    unsigned int i;
> +
> +    bgrt_info.preserved = false;
> +
> +    bgrt = efi_get_bgrt();
> +    if ( !bgrt )
> +    {
> +        bgrt_info.failure_reason = "BGRT table not found";
> +        return;
> +    }
> +
> +    if ( !bgrt->image_address )
> +        return;
> +
> +    old_image = (const void *)bgrt->image_address;
> +    bmp = old_image;
> +
> +    if ( bmp->signature != BMP_SIGNATURE )
> +    {
> +        bgrt_info.failure_reason = "Invalid BMP signature";
> +        return;
> +    }
> +
> +    image_size = bmp->file_size;
> +    if ( !image_size || image_size > MAX_BGRT_IMAGE_SIZE )
> +    {
> +        bgrt_info.failure_reason = "Image size exceeds limit";

Does it, when it's zero?

> +        return;
> +    }
> +
> +    /*
> +     * Allocate memory of type EfiACPIReclaimMemory so that the image
> +     * will remain available for the OS after ExitBootServices().
> +     */
> +    status = efi_bs->AllocatePool(EfiACPIReclaimMemory, image_size, &new_image);
> +    if ( EFI_ERROR(status) )
> +    {
> +        bgrt_info.failure_reason = "Memory allocation failed";
> +        return;
> +    }
> +    memcpy(new_image, old_image, image_size);
> +    bgrt->image_address = (UINTN)new_image;

This looks like the wrong cast to me, even if in practice this likely is
going to be fine even on 32-bit EFI.

> +    bgrt->header.checksum = 0;
> +    checksum = 0;
> +
> +    for ( i = 0; i < bgrt->header.length; i++ )
> +        checksum += ((const UINT8 *)bgrt)[i];
> +
> +    bgrt->header.checksum = -checksum;
> +
> +    /* Filling the debug struct for printing later */
> +    bgrt_info.preserved = true;
> +    bgrt_info.old_addr = old_image;
> +    bgrt_info.new_addr = new_image;
> +    bgrt_info.size = image_size;

I'd suggest to drop "debug" from the comment.

> --- a/xen/common/efi/common-stub.c
> +++ b/xen/common/efi/common-stub.c
> @@ -19,6 +19,7 @@ unsigned long efi_get_time(void)
>  }
> 
>  void efi_reset_system(bool warm) { }
> +void __init efi_bgrt_status_info(void) { }

What is this? Does this belong into a later patch? And did you pay
attention to Marek's earlier comment (as to the use of __init)?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 17:10:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 17:10:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261187.1554290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w55Gu-0002xv-Ty; Tue, 24 Mar 2026 17:10:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261187.1554290; Tue, 24 Mar 2026 17:10:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w55Gu-0002xo-QM; Tue, 24 Mar 2026 17:10:28 +0000
Received: by outflank-mailman (input) for mailman id 1261187;
 Tue, 24 Mar 2026 17:10:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Stewart.Hildebrand@amd.com>) id 1w55Gt-0002xi-F1
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 17:10:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w55Gr-009oRH-5W
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 18:10:26 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Stewart.Hildebrand@amd.com>)
 id 69c2c573-e002-0a2a0a5209dd-0a2a4504829e-14
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 18:10:26 +0100
Received: from [40.93.201.43]
 (helo=CY3PR05CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Stewart.Hildebrand@amd.com>)
 id 69c2c580-c823-0a2a45040019-285dc92b0a99-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 18:10:25 +0100
Received: from PH2PEPF00003854.namprd17.prod.outlook.com (2603:10b6:518:1::74)
 by DS7PR12MB8323.namprd12.prod.outlook.com (2603:10b6:8:da::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9745.20; Tue, 24 Mar 2026 17:10:20 +0000
Received: from CY4PEPF0000E9D2.namprd03.prod.outlook.com
 (2a01:111:f403:f912::4) by PH2PEPF00003854.outlook.office365.com
 (2603:1036:903:48::3) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31 via Frontend
 Transport; Tue, 24 Mar 2026 17:10:20 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CY4PEPF0000E9D2.mail.protection.outlook.com (10.167.241.137) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9723.19 via Frontend Transport; Tue, 24 Mar 2026 17:10:19 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 24 Mar
 2026 12:10:19 -0500
Received: from [172.24.66.250] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 24 Mar 2026 12:10:18 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JL4Gs6tjlx1h81wcV9aSS4C5ubNfVesAtrYhNMLaxP8UmHsFaY0938VFby1Qx2U6Ak9DUL6YaitaT9HqplKmWWe4cLf4pBk849oTQIJNOnqlUxLVMzlUpGdm/fi89NGUpa9V+ZaWXtDgywmIlqrS5kx4HLzhlCerYYdXiXonaPeOOkSrXBb9iqBUMUWCJQPtxW/fRok122pxTVq4WeCIcbFOK0L27Y1pgSMEY68WdUFdPH3vUf4ERrnC4OqpNhGukDnz3Obl4rfQ3p/gbZlenRVR8NB0AtB+VqmUDMnzgZ7H2jLAE8jb7p48aqX6yiUJB+1JhN724iMZDCd27GGpug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=T0Ycnt3TcU5xZ6fDy6W+2rUveknrflnOUoPUpGf64OQ=;
 b=BuuhzFfAMEWg/hsKN4Hd6NLVciLsEIXXl0/nXO3h9fuKnYNs8gUrzSb0wjoagc0SlJK7H7RIGXweahwwKHVg6OdAwcw+Pnw5WW/1//3mGiLng5rq0NdLUKJaT9HHa+2/sXWPcqXQU/Z+lHsj9PvHW6/Rsc9u2OPMNHfz3/ctBixDuq5GR8Nl/ZIywyYb2lm5jCLWJm9ebz9wVYlvW3sn/PH9wpe5/miz1f/KIXD9+xtPYvUXAJvWLCu9Mh4eKg4jzlKF/6FlOlIpbzQTCz3JT/7KyzxRTM5D41vp0Rpsgm29/d02fm4zo5I+3ec/M9EkQBn1vVKTzlPfhV/3zx+oJw==
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=T0Ycnt3TcU5xZ6fDy6W+2rUveknrflnOUoPUpGf64OQ=;
 b=tPh6BNfcfJcmIR7RPcoFz96Z1H8kSK5IFvO0dtrmIJTnFL85+RnZI8nd3HATQFFJd9WHiB1uwsgD4TjIjvAKdwYTXqEa8NeoO5GLzFDOQQZzegvjfNxEROSwKY8gvbp3y3J0vGmxVkjA9DTUNlke+maLW+PbJyDM8e/QZyTwu/M=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <435e3eb6-76c8-4ac3-8838-ccb7174a13e7@amd.com>
Date: Tue, 24 Mar 2026 13:10:13 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] arinc653: clear entire .dom_handle[] for Dom0 slots
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Nathan Studer <nathan.studer@dornerworks.com>, Stewart Hildebrand
	<stewart@stew.dk>
References: <3cde1263-d5fd-4bb0-a0ce-c5bf5d735a20@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <3cde1263-d5fd-4bb0-a0ce-c5bf5d735a20@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D2:EE_|DS7PR12MB8323:EE_
X-MS-Office365-Filtering-Correlation-Id: ba85878c-e2a0-42cf-ff57-08de89c83a65
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700016|82310400026|376014|56012099003|22082099003|18002099003|7053199007;
X-Microsoft-Antispam-Message-Info:
	kkFZF36j7fWZOVpfhdCk9xdA6s0FJACBaivWvf5UtziKMuh5MWDlO65MKpeWctVW3vED2M0mbW3Uyowu33U2b1L/lU0T+FIzQQVFg24tLzHb+Wg0Zf63KeUWH+OGfc93m9CHg6pB+TpQeBLyUFe2Wcy58psx19eiBO2ls3CmCoiquLVJAU4ENFMy9NvVPjwkbjDToDJdwXcuB+jzXU5JvYJcHizwFQuThMrn1dO8D/QtSqZB3RYjjN0pXdxk4lKCAcmkbIJ4+Pkf05In/0a0KTSC6ordkvVibVWrCYYQUoNbw3QiqhFBa49S5X6Uifw7EPseonKiQniR4DTgfpnUUc7PekSOqIB1fj5g2X2DPqb/AiI44Bh8zBO0zSEEGR3XdxBwlhWlXMWef/BSG5PBPJnKC1jTWiM4mTUAMjyn4GAsb1TY4UUciWKuB8mcVwipwtA6RjNHBnex6oMq1sNbVwtup7R+4sfByplDFpesd7YaoL29c9tWFOX9MO/C6zTDtRT4wMRsPygj2BSeQROXgutD+0ktpOnL9u9ywcMwEMo2ijUZKJ40XWkmJFDaob2K1vBrCJaq1/gi/tiEgYFM7QGwDi/Kyqe/Zl1OMJabmC6gogGbYd74E5SNFPcQQMjLa3upkPy8Vhd2XpSxVI7WYViPamjBh339frJflvlFTmMiXrvhIh2zSInf8r9GcZuQAfUX9mPbSLFXCBNHsZfppDzpXMR8r2AKlnai7wZO+vs=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(82310400026)(376014)(56012099003)(22082099003)(18002099003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	Sj3vzLTcAaNVtDjMFTjiLo0wsmjlYT/NIUdT0nDpvOKRXYrQg91P18XR0LNuzslqcSmXd0Bw+auk+yZ3ZQhmrkLPpqURS3CSW3430Kl3u8XtwBWmXG3z4BQ++00FAvs3V0B3E5KKOmlV+Zhixx38cLhx/UR1u5ctnd41sKODaqLsExOULH2+1Tsrym75u0784VGSdyFRkbGgu5oFwyFHLUCbmdfjmCd3pf3B9txzxpfAegY1AOVcdMCaSkgnN2zf7scDwlzX9BBTrHR11VhxJfCY8eth9M/D1n1g6vcHdc2coHpx52FnQIzqBIlgYl2Snuvcceep2mH9oAgaV3WwRC2UuO7T1ymddp1/qlHnX+uzo5tRpDpTtzzIIDvD00VhKnmtF6EznsuiwBbbTjED3ar3EXq1vS3j28+gXk3fCYwZ7NZZ1gL0YwDKrT4D3+gz
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 17:10:19.8434
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ba85878c-e2a0-42cf-ff57-08de89c83a65
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9D2.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8323
X-purgate-ID: tlsNG-ebf023/1774372226-BB29A9D1-B93C5712/0/0
X-purgate-type: clean
X-purgate-size: 2569

On 3/24/26 11:54, Jan Beulich wrote:
> When that code still lived in a653sched_init(), it was redundant with the
> earlier memset() / xzalloc(). Once moved, the full structure field needs
> setting, as dom_handle_cmp() uses memcmp().

The whole a653sched_priv_t *sched_priv is still allocated in a653sched_init()
with xzalloc(), so it's still redundant post-move. With that said, the code is
only setting the first element (of an already-zeroed array), which is suspicious
and misleading. What we really should be doing here is copy unit->domain->handle
to sched_priv->schedule[entry].dom_handle.

> Fixes: 9f0c658baedc ("arinc: add cpu-pool support to scheduler")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> There being no "else" to the if(), what about other Dom0 vCPU-s?

The condition is checking minor frame entries (i.e. available slots in the
schedule). Once those are exhausted, Dom0 units beyond
ARINC653_MAX_DOMAINS_PER_SCHEDULE would never be scheduled. Currently the
scheduler only supports scheduling a single unit at a time, so this way of
adding units to the schedule would result in Dom0 vCPUs being scheduled
sequentially, which is incredibly inefficient and unlikely to be what anyone
would actually want, but I don't think there are other possibilities given the
current lack of multicore support.

There was an effort some time ago to introduce multicore scheduling, see [1].
I'd be happy to review if somebody wants to pick that up again.

[1] https://lore.kernel.org/xen-devel/20200916181854.75563-1-jeff.kubascik@dornerworks.com/T/#t

> And why
> is it that domain ID 0 is special here, rather than the hardware and/or
> control domain(s)? (Likely the latter as that's what would invoke
> XEN_SYSCTL_SCHEDOP_putinfo, and hence needs to be able to run without
> that having been issued first.)

This likely should be updated to is_control_domain(unit->domain).

> 
> --- a/xen/common/sched/arinc653.c
> +++ b/xen/common/sched/arinc653.c
> @@ -420,7 +420,8 @@ a653sched_alloc_udata(const struct sched
>  
>          if ( entry < ARINC653_MAX_DOMAINS_PER_SCHEDULE )
>          {
> -            sched_priv->schedule[entry].dom_handle[0] = '\0';
> +            memset(sched_priv->schedule[entry].dom_handle, '\0',
> +                   sizeof(sched_priv->schedule[entry].dom_handle));
>              sched_priv->schedule[entry].unit_id = unit->unit_id;
>              sched_priv->schedule[entry].runtime = DEFAULT_TIMESLICE;
>              sched_priv->schedule[entry].unit = unit;
> 



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 17:13:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 17:13:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261195.1554299 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w55Jf-0003TU-AZ; Tue, 24 Mar 2026 17:13:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261195.1554299; Tue, 24 Mar 2026 17: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 1w55Jf-0003TN-7F; Tue, 24 Mar 2026 17:13:19 +0000
Received: by outflank-mailman (input) for mailman id 1261195;
 Tue, 24 Mar 2026 17:13:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w55Je-0003TA-4M
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 17:13:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w55Jd-00BWC5-GU
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 18:13:17 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c2c626-e002-0a2a0a5209dd-0a2a4503eaee-16
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 18:13:17 +0100
Received: from [40.93.194.61]
 (helo=SN4PR0501CU005.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c2c62a-1947-0a2a45030019-285dc23d7258-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 18:13:17 +0100
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BN9PR03MB6121.namprd03.prod.outlook.com (2603:10b6:408:11a::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Tue, 24 Mar
 2026 17:13:03 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9723.030; Tue, 24 Mar 2026
 17:13:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=odkKdcaaSitncP5QxgGaT51LiU0AZo+ox6n+KrVwBWVN8OdiqFaM3l37/oRoXtd+KzQaP9iB88/fykZNiSa6Yn2MdycNLrGsLctmOVg8qv//EXRMH6MVLHuV8yLu9HxkULA01MuNDdB/A6SZ5TGrmoSHYqRde8ko/sqpelm27GwWLDeGyGzzzmNQLfqij653DrnVqME5ZpqIiQConygB7bbgG0myuEx1VIGnIcpedZcy0hwRdQCuUv+3oirc2KY0SvuIR8scbrFX4b95AWleQWSvBn/IjMulFCvVFloD8o0FKGJ1od0GqgKjpzfKQK+sqbtR7jEeHtSufpi6XrZiMg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qhMGwzGJ/7+t3uvmLVEJQqUphjtVXBWb4pG9lzmuOJI=;
 b=ub18UPvjetQC7LSylOtcL9VDaN/H8PWo+91K1dMKZV85kHTk0WO5i2lozi9EPx02I4EIozywcaYm5ODoEEA1fDOhCzY1jO+dbsD4qiEw1pX93KO+uLV0VxiEBGvjaRmU/ZSufp8TnkFOhsr+RhnrBv4CAu8hUCBd2Dd/zig0Sp27kYeD4vLxW4+GxMo6PN7vlphAMG2pL/d+ORHlOqlz+0n8FqYYNyZm05jErpLU5ZShL2zs6xaQyKZYkNSwH8i+sWFVyKbrT8FEbMX5L9zDxa7UyafxHrdrtR2v1FhrF0FrSJGtzEWNaLSDC1p4rep0Y+RJecpuzQVKcyUKEwFWZg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qhMGwzGJ/7+t3uvmLVEJQqUphjtVXBWb4pG9lzmuOJI=;
 b=kzgWxxFDTrIcRtiUlX8h99QoIAIHrLxhclLAo74Qf7R9daPRC1WTftsjkpgM1TDTIy4SGq4sDHHYHRq1E6h+sAQYyBavgtLfSXP1WwxQWYhyCpHNUkLlFNIHvV2cy83+G2d9vibUlZE/KJE8ifGpToppYxN/zcD7M/Ch0AVYV3s=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d86ec941-ba0a-4beb-b213-7d1bc9a1ec19@citrix.com>
Date: Tue, 24 Mar 2026 17:13:06 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Marek Marczykowski <marmarek@invisiblethingslab.com>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 Kamil Frankowicz <kamil.frankowicz@cert.pl>
Subject: Re: [PATCH 1/5] EFI: avoid OOB config file reads
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <63284ab7-8e38-4448-a789-1b9c23c4d95c@suse.com>
 <f56a8eac-bd35-496d-ae9a-b429f8305b31@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <f56a8eac-bd35-496d-ae9a-b429f8305b31@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PA7P264CA0072.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:2de::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_|BN9PR03MB6121:EE_
X-MS-Office365-Filtering-Correlation-Id: d5c59d36-dfb2-415e-26fc-08de89c89a16
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|7053199007|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	L8fsnY0/Y/A40TD8Cv75Rm+2gpmFq/Ce0ShzEcGsr7Y27KGxnlfRKXau/V308sTj9WZwRxiellA7eupmXkdzjwDHACH8Ds1UkVqOWLU/nmhaCR1MSjPtmJDm+DX0GHpqzN26jmlaBdTnIImrPOC7uarweUnlA2Tm0Clviv+c04eS3GyN+T4USLUwl1jnwOvSdwC+CFMBHTWcVtRwe9IQFjdOwCqQtdydTPr62+dkTp2BkgYkoox9GWorPB2It9IAB7m/TKB5Jz/gnH6L5UYEKE6gj3EQ9mgp6Hn79PdExO3/Tqfehz9z/H+GMMIMglnEkQMBBRXYGVcj1WxCg+pQrxTxBIe4UWIBbPpGrRRfBIjMvzIP2Q3xkzTe+J4eCSXkjkhtIiakvgFIgEuai2A80FqG2MhLU0AyL4Xz04aec4h8ZvJjHDo3XbV17pDtJGTEg2hhHSO1BicmGmQrqAfIA1mVIvzAa1rYTLTwM7ivGc+HT26DIpopFzwJUAFS0KV7g1u4JT8vqDamngTZacQVYGxp3B+l8ftKhFnWlCsrainLC9HZm53ZMmtJYFjYLtTarVOKyW6rQpNZvfyiDX0yPXFp4DaXfMWSlLRHTX3hdkdB1tM6KJ2XZyMfxDhGlRuERrLPkzcADj5xi8LhNchzOaIhvz/GNpoMk14itk1TztwTQ9AAm2J7sk3IxrbhscfFyMnCEam7UqKx5vxiQuKeVxeWYfxnIY3HCBCF6mLJie8=
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)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dmFENW9qSkZRSkhxVHIySGxjek1abGJKM0J4aHZNY3ExbjZPSmU5TTg1cU9D?=
 =?utf-8?B?eGExYXFqdGNUMlNiVjEwN0xuU25YeU9tN2ltRG1tR0ZqSUJlR3czdnBPc3VE?=
 =?utf-8?B?NTJDZWd5TVIwcERpcEQrd0s2a3lldm9iU2VuM09IWGxUN0k4clZ4UDJCZWVs?=
 =?utf-8?B?Y0o3N1AwR2ZzWFRudHpIUVljbUZYR2xFZW1PUFhDS2dIWUJncTZveERWKzdG?=
 =?utf-8?B?OG1ZRjU3d3NRQlRWL1Nyayt0NXdMM0JxKzZVUHRXOTlxNlNRbjhUVE5xcG12?=
 =?utf-8?B?MEMwK05FVjVUMFIxT3RmNGJGMW8wZzh5eTZmM3JGb0ZxUzlQTVJVdDdBS2tV?=
 =?utf-8?B?RVlGWTRqSUhBWEREbytLY1NDMlhKeWlweVMvN1JXdmVxc2Z0MVNOeFZGd25n?=
 =?utf-8?B?d3JzRXVmL3pUTHpBQjg2V0IvaXNiZk90bVdFRXlGQ0tMRGJYYlVIUjNvY21E?=
 =?utf-8?B?ZFdyQU1mdy9RcG5uYWZ2SjNjQkhBbWdJQ0kyc2duNVpwNHlGZFpqT3RwVllr?=
 =?utf-8?B?T01KbEVaWnkwaUFoWmtOWHBWcHphcTBRdHEvRUpITGI4QVAxYkdvQnVEcGlr?=
 =?utf-8?B?RmpGOTBVMkNJdi9ORy91MUdQdWFEc2RNUU1IdUE3aEh2c2lzWE1IQnVHby9z?=
 =?utf-8?B?MWF5WFJQclVOYXBJWmtiWjJMVW1ZNUhBVTRCTUNRblJXZysvTWNOSCttRS9X?=
 =?utf-8?B?LzZOZlZEVkV3MmFLMWFNVlZCMzVhQ3Mxb1Q1UFQvNEdrUGJIQW02RUdaczBI?=
 =?utf-8?B?R1ZReGpUNzdTSE1BKzZud2xLMFpRYkd0ZnQzQVJtZWM1VCtQR3hjZFV5bnpm?=
 =?utf-8?B?bEtMOUJtK2hxNUVQUjJGSFF3c0VNNGExSXRmZk1LYWF5Q0IxcW1uYmZxT2xC?=
 =?utf-8?B?a3B0djdmYWxwNlllalNETG9IWXdpRlJLODBXRWZ4em5Kb2FuVFRpYUFLWDNz?=
 =?utf-8?B?REQrOTNUZnpGSmxXR2dKNUlLOEZVS3B6aXdIa1cvUkswTjhVOSszYWl4RVhN?=
 =?utf-8?B?bWZFSythQm56SmkxdU5tM01WR2U4SVRQNUQ2a1RES2ZiNGdFb3lhSlhQbE8z?=
 =?utf-8?B?b1dUQkRnMENjMWQzOUNXQUxHWUUreDdBL3hXYXFJdDcyV0Raak9CNi83anpL?=
 =?utf-8?B?S2s2MzVRMFMzb1M5bTJWbWxQS2ZvTzJDUWdQSzQxWEJMWHBUdTFUbGs5d0RZ?=
 =?utf-8?B?OUNndHMvLzZEenR0SCtUYkVnbFI4WGNPcFNZT24rQWxnTHFxTjVVN1FWQkVH?=
 =?utf-8?B?aXR3RnRBVEU0UXRlTUJoRHpydVovWjdwbzZPeEhaa21OYXprU1ZMTEdITEh4?=
 =?utf-8?B?aGVLVElCWVhXT1ZhM3FEYkg4ZWc1Uzd5K0dxMGFNdmx6V0gwRVkrL3lDdlpz?=
 =?utf-8?B?OWZuTUorVjRlQ2VpS3h5Y2FodkptMWh0YitnNVdDdXBsVFozM0FNd3RYZmtl?=
 =?utf-8?B?cXpRbWlsTnVYWWY1b1F1allpdFpMcURpaGkxWDZRQmtNL1k3ZUgvYmwvbGhY?=
 =?utf-8?B?S08wWDRxVHp3ODdKd3NYQmVwcHVIM3prK0pKSHM0dytBYjR2dXlrU3ZoUVNm?=
 =?utf-8?B?YkYrNEtYalo1WU1jMitZcFQ3aktmM29uTGtGcXViU1JnZFkvTm5zY1dGUzdO?=
 =?utf-8?B?bW54NFZYaVlhTy91WVNnWTFZNUw5eWJ4Ulh5TzVDc2piNVhoSWxBWnl6c2FB?=
 =?utf-8?B?WHNXaDBncDBVeXVGWG11WUpLRTloZnFFNVV6R0Z5ZkI0MWRoQ280azlhTDRx?=
 =?utf-8?B?bmhYMG5KNDZxL3RlMzQxUXByYlNEaldJeFZLbWpCOVp3cUliWG5oa2VLenZ3?=
 =?utf-8?B?dnV5RWY1YkxZSjNkNUk0K3dtY25KSUgvbCs0RXV5MHpQZjBrczFHd0sySkFK?=
 =?utf-8?B?amFGOERmeUcwZ1I5cWZqOXd6aHdRUHZxRHFObUdtWWVQV1VLVmRmTWRhTDlE?=
 =?utf-8?B?TG1uVEticVpVaXNZWTcxajhyeUlvNkMrcHp2MkRIWEFuV2pBT0s3eHlhdlFB?=
 =?utf-8?B?OTNjM0tPdHhkeWw2NzFqMGhkK2hHenVYS0E0YVE1cE1TSTJLZzZvOWxRMytp?=
 =?utf-8?B?YVIwR1JOSVN4b1F1a0ZiRUlLQVdWeFpaRitlSW9LM1R4Vm5TU0FSS2Ureld2?=
 =?utf-8?B?ZW5mK2Y4TGRTWHlhOTNPM2thbzk0SkdTdUptZFNGWkZITzRpWGloWHFKbTBY?=
 =?utf-8?B?dU90ajU5aEtmVXYrN2hCTEUvVFU1U2hxL1JrZktOcTdNU1ptSHV3bm5ZVnI0?=
 =?utf-8?B?Z2c4TDJ0WitqZkpkUy9vNG52OEtNa0tNblFnS0FUM1ZqaTBWNU1rTDVxRUc2?=
 =?utf-8?B?ZjlFUHVDR012YjBCSE9Ib0NpZ3dVOGFJVlhtQ3l1ck95ZVFOektBcjczZ3A2?=
 =?utf-8?Q?UYiSLj88IONOBek0=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d5c59d36-dfb2-415e-26fc-08de89c89a16
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 17:13:01.6442
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: i9fyA+68TGxLoTbdoJAjZY14homBYLhnR77ALedzcpHA6eAgoUrTVkNYn4SkDoMPIMjtE5tVgxzw3wS7zFQnDQf5eHVDJUcj9b4VqoMHDZc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR03MB6121
X-purgate-ID: tlsNG-33051d/1774372397-EA88272C-D2C24003/0/0
X-purgate-type: clean
X-purgate-size: 995

On 24/03/2026 4:36 pm, Jan Beulich wrote:
> The message emitted by pre_parse() pretty clearly states the intention.
> Make sure we actually do so.
>
> Fixes: bf6501a62e80 ("x86-64: EFI boot code")
> Reported-by: Kamil Frankowicz <kamil.frankowicz@cert.pl>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -907,8 +907,13 @@ static void __init pre_parse(const struc
>              start = 0;
>      }
>      if ( file->size && end[-1] )
> +    {
>           PrintStr(L"No newline at end of config file,"
>                     " last line will be ignored.\r\n");
> +
> +         for ( UINTN pos = file->size; pos-- && *--end; )
> +             *end = 0;
> +    }

I agree this is what the the function intended.

But, ignoring the final line is rude and there's no viable editor in a
UEFI shell to fix it.  Can't we just copy the file into a
one-byte-bigger buffer and terminate it properly?

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 18:00:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 18:00:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261224.1554309 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5634-0001nS-QL; Tue, 24 Mar 2026 18:00:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261224.1554309; Tue, 24 Mar 2026 18:00: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 1w5634-0001nK-Lx; Tue, 24 Mar 2026 18:00:14 +0000
Received: by outflank-mailman (input) for mailman id 1261224;
 Tue, 24 Mar 2026 18:00:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <bounce-md_30504962.69c2d129.v1-0b4b279376b94a448135603ca331192e@bounce.vates.tech>)
 id 1w5632-0001nE-Sf
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 18:00:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5631-00BcEG-Kb
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 19:00:11 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <bounce-md_30504962.69c2d129.v1-0b4b279376b94a448135603ca331192e@bounce.vates.tech>)
 id 69c2d124-bab6-0a2a0a5309dd-0a2a4505bf60-20
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 19:00:11 +0100
Received: from [198.2.180.47] (helo=mail180-47.suw31.mandrillapp.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from
 <bounce-md_30504962.69c2d129.v1-0b4b279376b94a448135603ca331192e@bounce.vates.tech>)
 id 69c2d12a-5aeb-0a2a45050019-c602b42fe45f-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 19:00:11 +0100
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-47.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4fgHr94mczzPm0wVT
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 18:00:09 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 0b4b279376b94a448135603ca331192e; Tue, 24 Mar 2026 18:00:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mte1 header.d=mandrillapp.com header.i="@mandrillapp.com" header.h="From:Subject:Message-Id:To:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"; dkim=pass header.s=mte1 header.d=vates.tech header.i="teddy.astie@vates.tech" header.h="From:Subject:Message-Id:To:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774375209; x=1774645209;
	bh=5UEBEVoFw//9avZMtrqgrtr3/YITnllGPjBvoyHdWeI=;
	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=hLkiZOrDG9As5kyfosM0F1LL4DLWqr05QUIfHVTq8Myv2hQXII2jiy99OvOc1WCPv
	 QqaLKxs7iYNRH4uPL75Wb8JH9Kcg7dPpc1iaKqvb4wErHvzZacPkkIlVDq+skt1EQh
	 +otb+nU1Dt7Lifmt0owdYci3gEp8TvTYBYdyt8ArUzwLx5EysvT3cGHzSY2WduTVtN
	 r9MMs+AjHJaOYcAYUIllu/bR3Oa2Sia9INQiablRIFZx8CqWZt5SbNjNvzfciTCLSx
	 gvmhijR4bDn8icFoXrRDMaVT8UobdWIoUTtxJSuZ3rmYq8JC++xOyARPrjYHmuHvLw
	 SnlnrfMLBYmYQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774375209; x=1774635709; i=teddy.astie@vates.tech;
	bh=5UEBEVoFw//9avZMtrqgrtr3/YITnllGPjBvoyHdWeI=;
	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=mOxAh5Q0RqZ5wMwrHUAf8WnRtJMVLgV9KqPfzeMArXJd9d87rdL35NHv9lELwLT4s
	 9Do6WCwyzd4Flvb4yIXwmo4bLVkD5eUhqvIWCKMhleEaa8Tetofoy7XVzJUi45MOwa
	 8xHqsLWvAsjhnyK/zTZsd3D8YgO7/5oGXXAxOf1a8xoRkNVJw3LVbE/l5PaBSynn5d
	 r50zdJdTFt0Jqo5MBZ9ZApgcdibbPXsj/Vz5tNzoopXLKlngH1XsEyQ9hu0/USFLYl
	 /WXV/bv59ZNwmScTs39pEbkGCW5rIcO3hHQ2tCO8tHt3ZPv/JVI4bMNdoQPsWONUzd
	 VHPmA27VnUSpw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20Mapping=20non-pinned=20memory=20from=20one=20Xen=20domain=20into=20another?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774375206965
Message-Id: <5123c11c-3b8a-4633-809f-16c24418a4ce@vates.tech>
To: "Demi Marie Obenour" <demiobenour@gmail.com>, "Xen developer discussion" <xen-devel@lists.xenproject.org>, dri-devel@lists.freedesktop.org, linux-mm@kvack.org, "Jan Beulich" <jbeulich@suse.com>, "Val Packett" <val@invisiblethingslab.com>, "Ariadne Conill" <ariadne@ariadne.space>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Juergen Gross" <jgross@suse.com>
References: <84462c4b-7813-4ad1-aeb2-862ae4f3a627@gmail.com>
In-Reply-To: <84462c4b-7813-4ad1-aeb2-862ae4f3a627@gmail.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.0b4b279376b94a448135603ca331192e?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260324:md
Date: Tue, 24 Mar 2026 18:00:09 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-c201ff/1774375211-22A87488-3D2CCEE8/0/0
X-purgate-type: clean
X-purgate-size: 11259

Hello,

I assume all this only concerns HVM/PVH DomU, I don't think it is doable 
for PV DomU (if that matters).

Le 24/03/2026 =C3=A0 15:17, Demi Marie Obenour a =C3=A9crit=C2=A0:
> Here is a proposed design document for supporting mapping GPU VRAM
> and/or file-backed memory into other domains.  It's not in the form of
> a patch because the leading + characters would just make it harder to
> read for no particular gain, and because this is still RFC right now.
> Once it is ready to merge, I'll send a proper patch.  Nevertheless,
> you can consider this to be
> 
> Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
> 
> This approach is very different from the "frontend-allocates"
> approach used elsewhere in Xen.  It is very much Linux-centric,
> rather than Xen-centric.  In fact, MMU notifiers were invented for
> KVM, and this approach is exactly the same as the one KVM implements.
> However, to the best of my understanding, the design described here is
> the only viable one.  Linux MM and GPU drivers require it, and changes
> to either to relax this requirement will not be accepted upstream.
> ---
> # Memory lending: Mapping pageable memory, such as GPU VRAM, from one Xen=
 domain into another
> 
> ## Background
> 
> Some Linux kernel subsystems require full control over certain memory
> regions.  This includes the ability to handle page faults from any
> entity accessing this memory.  Such entities include not only that
> kernel's userspace, but also kernels belonging to other guests.
> 
> For instance, GPU drivers reserve the right to migrate data between
> VRAM and system RAM at any time.  Furthermore, there is a set of
> page tables between the "aperture" (mapped as a PCI BAR) and the
> actual VRAM.  This means that the GPU driver can make the memory
> temporarily inaccessible to the CPU.  This is in fact _required_
> when resizable BAR is not supported, as otherwise there is too much
> VRAM to expose it all via a single BAR.
> 
> Since the backing storage of this memory must be movable, pinning
> it is not supported.  However, the existing grant table interface
> requires pinned memory.  Therefore, such memory currently cannot be
> shared with another guest.  As a result, implementing virtio-GPU blob
> objects is not possible.  Since blob objects are a prerequisite for
> both Venus and native contexts, supporting Vulkan via virtio-GPU on
> Xen is also impossible.
> 

I'm not sure Vulkan fully allow memory to be moved between RAM and VRAM. 
Or at least, you would need to lie a bit on the 
VK_MEMORY_HEAP_DEVICE_LOCAL_BIT property.

So I assume there is a way to choose between having memory as VRAM or as 
RAM somehow, unless it is only a hint ?

> Direct Access to Differentiated Memory (DAX) also relies on non-pinned
> memory.  In the (now rare) case of persistent memory, it is because
> the filesystem may need to move data blocks around on disk.  In the
> case of virtio-pmem and virtio-fs, it is because page faults on write
> operations are used to inform filesystems that they need to write the
> data back at some point.  Without these page faults, filesystems will
> not write back the data and silent data loss will result.
> 
> There are other use-cases for this too.  For instance, virtio-GPU
> cross-domain Wayland exposes host shared memory buffers to the guest.
> These buffers are mmap()'d file descriptors provided by the Wayland
> compositor, and as such are not guaranteed to be anonymous memory.
> Using grant tables for such mappings would conflict with the design
> of existing virtio-GPU implementations, which assume that GPU VRAM
> and shared memory can be handled uniformly.
> 
> Additionally, this is needed to support paging guest memory out to the
> host's disks.  While this is significantly less efficient than using
> an in-guest balloon driver, it has the advantage of not requiring
> guest cooperation.  Therefore, it can be useful for situations in
> which the performance of a guest is irrelevant, but where saving the
> guest isn't appropriate.
> 
> ## Informing drivers that they must stop using memory: MMU notifiers
> 
> Kernel drivers, such as xen_privcmd, in the same domain that has
> the GPU (the "host") may map GPU memory buffers.  However, they must
> register an *MMU notifier*.  This is a callback that Linux core memory
> management code ("MM") uses to tell the driver that it must stop
> all accesses to the memory.  Once the memory is no longer accessed,
> Linux assumes it can do whatever it wants with this memory:
> 
> - The GPU driver can move it from VRAM to system RAM or visa versa,
>   move it within VRAM or system RAM, or it temporarily inaccessible
>   so that other VRAM can be accessed.
> - MM can swap the page out to disk/zram/etc.
> - MM can move the page in system RAM to create huge pages.
> - MM can write the pages out to their backing files and then free them.
> - Anything else in Linux can do whatever it wants with the memory.
> 
> Suspending access to memory is not allowed to block indefinitely.
> It can sleep, but it must finish in finite time regardless of what
> userspace (or other VMs) do.  Otherwise, bad things (which I believe
> includes deadlocks) may result.  I believe it can fail temporarily,
> but permanent failure is also not allowed.  Once the MMU notifier
> has succeeded, userspace or other domains **must not be allowed to
> access the memory**.  This would be an exploitable use-after-free
> vulnerability.
> 
> Due to these requirements, MMU notifier callbacks must not require
> cooperation from other guests.  This means that they are not allowed to
> wait for memory that has been granted to another guest to no longer
> be mapped by that guest.  Therefore, MMU notifiers and the use of
> grant tables are inherently incompatible.


> 
> ## Memory lending: A different approach
> 
> Instead, xen_privcmd must use a different hypercall to _lend_ memory to
> another domain (the "guest").  When MM triggers the guest MMU notifier,
> xen_privcmd _tells_ Xen (via hypercall) to revoke the guest's access
> to the memory.  This hypercall _must succeed in bounded time_ even
> if the guest is malicious.
> 
> Since the other guests are not aware this has happened, they will
> continue to access the memory.  This will cause p2m faults, which
> trap to Xen.  Xen normally kills the guest in this situation which is
> obviously not desired behavior.  Instead, Xen must pause the guest
> and inform the host's kernel.  xen_privcmd will have registered a
> handler for such events, so it will be informed when this happens.
> 
> When xen_privcmd is told that a guest wants to access the revoked
> page, it will ask core MM to make the page available.  Once the page
> _is_ available, core MM will inform xen_privcmd, which will in turn
> provide a page to Xen that will be mapped into the guest's stage 2
> translation tables.  This page will generally be different than the
> one that was originally lent.
> 
> Requesting a new page can fail.  This is usually due to rare errors,
> such as a GPU being hot-unplugged or an I/O error faulting pages
> from disk.  In these cases, the old content of the page is lost.
> 
> When this happens, xen_privcmd can do one of two things:
> 
> 1. It can provide a page that is filled with zeros.
> 2. It can tell Xen that it is unable to fulfill the request.
> 
> Which choice it makes is under userspace control.  If userspace
> chooses the second option, Xen injects a fault into the guest.
> It is up to the guest to handle the fault correctly.
> 
Is it some ioreq-like mechanism where :
- A guest access a "non-ready" page
- Nothing there -> pagefault (e.g NPF) and guest vCPU is blocked
- Xen asks Dom0 what to do (event channel, VIRQ, ...)
- Dom0 explicitly maps memory to the guest (or do any other operation)
- Guest resumes execution with the page mapped

Something that looks a bit similar to "memory paging".

> ## Restrictions on lent memory
> 
> Lent memory is still considered to belong to the lending domain.
> The borrowing domain can only access it via its p2m.  Hypercalls made
> by the borrowing domain act as if the borrowed memory was not present.
> This includes, but is not limited to:
> 
> - Using pointers to borrowed memory in hypercall arguments.
> - Granting borrowed memory to other VMs.
> - Any other operation that depends on whether a page is accessible
>    by a domain.

What about emulated instructions that refers to this memory ?

> 
> Furthermore:
> 
> - Borrowed memory isn't mapped into the IOMMU of any PCIe devices
>    the guest has attached, because IOTLB faults generally are not
>    replayable.
> 

Given that (as written bellow) Borrowed memory is a part of some form of 
emulated BAR or special region, there is no guarantee that DMA will work 
properly anyway (unless P2P DMA support is advertised).

Splitting the IOMMU side from the P2M is not a good idea as it rules out 
the "IOMMU HAP PT Share" optimization.

> - Foreign mapping hypercalls that reference lent memory will fail.
>    Otherwise, the domain making the foreign mapping hypercall could
>    continue to access the borrowed memory after the lease had been
>    revoked.  This is true even if the domain performing the foreign
>    mapping is an all-powerful dom0.  Otherwise, an emulated device
>    could access memory whose lease had been revoked.
> 
> This also means that live migration of a domain that has borrowed
> memory requires cooperation from the lending domain.  For now, it
> will be considered out of scope.  Live migration is typically used
> with server workloads, and accelerators for server hardware often
> support SR-IOV.
> 
> ## Where will lent memory appear in a guest's address space?
> 
> Typically, lent memory will be an emulated PCI BAR.  It may be emulated
> by dom0 or an alternate ioreq server.  However, it is not *required*
> to be a PCI BAR.
> 

---

While the design could work (albeit the implied complexity), I'm not a 
big fan of it, or at least, it needs to consider some constraints for 
having reasonable performance.
One of the big issue is that a performance-sensitive system (virtualized 
GPU) is interlocking with several "hard to optimize" subsystem like P2M 
or Dom0 having to process a paging event.

Modifying the P2M (especially removing entries) is a fairly expensive 
operation as it sometimes requires pausing all the vCPUs each time it's 
done.

If it's done at 4k granularity, it would also lack superpage support, 
which wouldn't help either. (doing things at the 2M+ scale would help, 
but I don't know enough how MMU notifier does things.

While I agree that grants is not a adequate mechanism for this (for 
multiples reasons), I'm not fully convinced of the proposal.
I would prefer a strategy where we map a fixed amount of RAM+VRAM as a 
blob, along with some form of cooperative hotplug mechanism to 
dynamically provision the amount.


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Tue Mar 24 18:19:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 18:19:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261239.1554317 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w56M1-0003bb-9P; Tue, 24 Mar 2026 18:19:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261239.1554317; Tue, 24 Mar 2026 18:19:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w56M1-0003bU-6H; Tue, 24 Mar 2026 18:19:49 +0000
Received: by outflank-mailman (input) for mailman id 1261239;
 Tue, 24 Mar 2026 18:19:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1w56Ly-0003bI-Ve
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 18:19:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w56Ly-00FIkF-BF
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 19:19:46 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c2d5a2-2eae-0a2a0a5409dd-0a2a450887c8-24
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 19:19:46 +0100
Received: from [52.101.57.50]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c2d5c1-1950-0a2a45080019-346539324965-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 19:19:46 +0100
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by CH4PR03MB7771.namprd03.prod.outlook.com (2603:10b6:610:237::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Tue, 24 Mar
 2026 18:19:42 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%5]) with mapi id 15.20.9745.019; Tue, 24 Mar 2026
 18: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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=i15pewFpMkhVkSh2KFM1clt4taaBhTz1F6+Eh1FpwYjT5bSSpLmMzToV2EsrsxetgrHFZuya/cNVJfWWIiGX/bJQdKKvCEx6qN2/C+CsCEHVz480ZRJmjB3hsIuHWT2FgO23TrJoB0IrEOYR2U4qi/ZzGoiADyJ8/14USV8uWh4Obfh3yKoi1DBdrVbAZGVFsUECTBARwNY8QzQcoHDF583m2sMqOgRS+CxwFulOWKRsNp62LAgkj1lUiM4SF1jW59XWJekDzd4iNvecjJCMB3Tw8HIp6Be9bcZmMUAzQebCw/FCnFZ/gsZZ1cwKxerLvbcS6JPHAuS31v2l+WBweQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SsDVWm2HyHxUVi0OR75wg4R0kv0bP476+3frH8dkrtE=;
 b=PzJC6pQZ0I/wHZ3g9riHnz6xsCtDkVzZ84u2DTf8cTTHAfV44SCyQZ+vYhP/kWDC3b29LzmOjxT3WQMpwtqwWdqFPE4TgEr6dNjm3WSTvFTEH8DA6Xf8xjdwx5kGiWzNsy1tXmmDYvCVyZRrBevxR643iTMS3Uc9FhXHZxL/Ot6k5yZXfPYRqyDOEtV+X4f2BoJ+vRXMTAyYwcVDrofPZzSjomEHIXH2TbW5M8ST8IWPzeKuuljPV4a3ZJBk33DFGFju3LgMw5hghVz0eayNUc0EmUc70uiOCEiYDfC1GbLNlHFguC5CKJ4yBiUvoXItHrG8aFd/Uk7T4OVBuQFUCQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SsDVWm2HyHxUVi0OR75wg4R0kv0bP476+3frH8dkrtE=;
 b=hoGIi+xLxGJ5cOQeGTAnf5u1XVuY93PHktHOm+VeUrnBH3L0bx48Bd7nEzfSYsuSOsDF1dpBHoE6GAVjZJJ9Nvjj7sip/Im2RO2bmjVjsFAVHpJ1FMUo/YgufXl6zKdSpgPbptKGL48X58hBNRqfPf6ysL5hyTrlUMPPla9pHpg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: 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>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v2 0/9] x86: Always use eager-fpu
Date: Tue, 24 Mar 2026 18:19:28 +0000
Message-ID: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0295.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:196::12) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|CH4PR03MB7771:EE_
X-MS-Office365-Filtering-Correlation-Id: 0000c53e-6835-4650-5f95-08de89d1eb71
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	IsQzS0msO5SKADCwosXn2ErGnl1mrcNz/jgf5Nf9/tHEK8AM4d8XXjqcoVEG0GQUe1p/IzFRaonX5awoOJhpiiM7N306Meu+5GHXt3kXaHDKNyy9p5gxk02TZCSVUqz11gRBdsE4ZjnkSZdB5ZRbIu5ppwzHtdb37w/rinRN9vdFhiUgNrjeQDFfxWnwD30fEXcZUNsM0JP4MLxSdvECqn7JVy2xjZ7iSLiezC9msoubY8/NVQJ7VPplfw7V7yqukyGUkXv75GBD9f09RP9yc8R4mZbA7zYgHCXHqHg++cULkqr8FixHYzhO7jHPB9YS5gvOv+Prntp31oHxIDRPz+a9Vk8u8ddtOFlRLeYKBfTswFEY39EleEsc9xhb7QB/9qtXJlKy9OvFStTjA0mDQ0X8sXwau0vhmvIB2Ks3eH2+gh1whpxHK0eotPole8od4puB+qZ1ryyuNmLR4agObW8lbeC8bhyzcQCCRApjGLlpbCm3Jz7gGSlt1kekx09qasghFm5+Li1slZojbee7DDdI2Yn9yl4n/bzSZo2EAiE1ws1uiDmfHNJaeO62ICxMAPM9tZyrMv5lEuG/KpIrMjiD2cl9T78fexasHq5v8rselQj92cyXKEIypYYF8VcUFw5Nevcy+9AThxtkpVax33P3JB1Xzl+CvdBTTK57Fsg7qcetO3FoaoOOhtzqzAUZUWY5QVk4BCalpqAGTaUuqZeVk3uhIiumbcY/Tt+uuyw=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?/q3LzfXZrPVjjTHqBFup73B2xolMkx0K2kk6wXyLMZlmtABL8p8JIcGXpEny?=
 =?us-ascii?Q?Z2wOS46T86n/RUDyr1Zr+Ms9/3Z/SxS2N288AYtmMMewxtNCpSb7gpUIWv3P?=
 =?us-ascii?Q?REKBzoRpXd2TwcWRLs4hiK1I+66KZYX9B5QmUmhoiNolCNdapghAs7JiZwNB?=
 =?us-ascii?Q?q34lQ8qjWZwCDoo89s0N/UK4+0Y4aJ6Y3HBiMEF4oOYrMu2sbiE8WfcQ1Fmp?=
 =?us-ascii?Q?3t2crEEzFQpA7PVyYqV2+ipciM6rVRKlNZk3CqYfs02jQ4ShphswNYMXNTxI?=
 =?us-ascii?Q?SPhMRYTm/ZPuQCdq5lPzLSBkPQRYqM1KfVzIJCr3JfFwqaVDhlBm12lmuqMi?=
 =?us-ascii?Q?+PU1ley8KdIkiFGtac6AQNs4qz5qiUdaFuoUx61M9wifp43Khy7bBhq2mCRk?=
 =?us-ascii?Q?CTdt8Aa+Lowi/iqiyyepwRghdnSI8mmnZxh5lFe/9qCQnT0QcIp8q93xK7e3?=
 =?us-ascii?Q?9ldP024LytKkp4MwkwRPDupt7tJxOR6GCGB7AztiJ5JdY6SUB+rBnn0xC3pm?=
 =?us-ascii?Q?S3kEvpLTVBqryJrBDcO2IYC3Na1+Nm0beUuhvSp2tUoxZ20MA9+tPHhTObPZ?=
 =?us-ascii?Q?61XlBUaCx/HxgJRNTlPqZJu/O66QThYKRz94XUJYKvrL1AzANo6nqpjrn5ru?=
 =?us-ascii?Q?DiqLl/QvFU7qr+xEp8uJpVrz1Do+wOtdPZ1hJv5DYMqpcdcKdBaEp2iJM5zj?=
 =?us-ascii?Q?trB7fj5mCfd3VNejVrXJUJZW+7bGWQq4ZQpR2aqd2fW7tKdp/ZmYFD2d2+sg?=
 =?us-ascii?Q?Wn77f5IbkUw6B8ATtHLxeImt6SDIBWGT8XxUlCAF9v3/6FHa4wE85Fe3U4wg?=
 =?us-ascii?Q?rECU1l6mvyv08irFcZV3bsAPoJMjmo/VgcJV6VjXPFj2j5WJOWz2/WanLHoG?=
 =?us-ascii?Q?7yxlwpznzgtY5JcLT4iokv1XDtjJIB6cS3mAROaK1abFvRcB5NEsu9uTy6nA?=
 =?us-ascii?Q?Lb1BldfSlfCNMM/DsTLatgPZHG6k/DPakT6x5O+rgzI0tq/Qg3ZWEcCtM7L+?=
 =?us-ascii?Q?cdBmyD+i7Lypd/ljHm2yQMEBM9ZxACKF5/T0tvaJblL409iDSiqI+owUi9l8?=
 =?us-ascii?Q?fUOEyK/bRGbC4oTKHMOgtUGJAs+TNiMReCSgfs7/jJQ1BQiGUuuir4Gu4Crf?=
 =?us-ascii?Q?lxHC/qBezqNqN3TSrDXwUzWZqjt4EyVqdQ2pcfct5DJMLRqroJZtOrF6/8AV?=
 =?us-ascii?Q?jM+LoRpGjuquZnICP7qdsXdrM/QSINJCCQjDyDEs1BEhGcUPzWFq+edEZqXU?=
 =?us-ascii?Q?uatzIG5M14TETXEYKIe13YWhObBfu0IP89pWVCwePlvSjMlWGzP7be3XltQj?=
 =?us-ascii?Q?AP0mtKW7YLnMD25yr9DHZBm0t0hYG0ouLixh0P9snm3qeUCz82Ok0/D3AGfm?=
 =?us-ascii?Q?Lrz83FNHGoNqFzL94GMdNsR0jHIAyQg5DMHvOdhBZC6IU0WePYgWNZX7vNpm?=
 =?us-ascii?Q?F0wfeF9X7nzzsynKWNZXd/A3Y/kB2Biqi+ilrRpQhuA03svv9XE1dzpNytGZ?=
 =?us-ascii?Q?nBF07tXWjOBqXrxaaR5j8I6HbsjRQqHo6Ra8HgT9KcbFV/4iY6b7dxlPcxNY?=
 =?us-ascii?Q?MFQmJAzPD+mA33ujLPNBYcnCqcn+H5E+XdHn1nQQSFhx/5MQpGtoUr150PTx?=
 =?us-ascii?Q?iniPjbsiwft7EMuaiqslhD44eJG68IcKl07T6jwiztNQM0LyUDxri06Pc3Mt?=
 =?us-ascii?Q?4ru12HT+/TmQFBkCRsI2VFC5wS9wwwYqpQEY+M1DSzVJ8pUmhj+LcRVFH47j?=
 =?us-ascii?Q?oGmGt5V/b+QGD8ek14SXgbCwVcabkm4=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0000c53e-6835-4650-5f95-08de89d1eb71
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 18:19:42.5262
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: lhDFNRIKgapF7T0pR3EVdnm+0Dhwri1t6VHrpg1Fs1FewR5pxG853ctcC7Mna+TJi1B/uLE0g0kUcF03hNn0pLfwMLovU52T6MInKMXxD2M=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH4PR03MB7771
X-purgate-ID: tlsNG-c1860d/1774376386-EBC9C726-8B1A7A87/0/0
X-purgate-type: clean
X-purgate-size: 2843

Remove the eager-fpu option and cleanup the code accordingly.

The first patch is a bugfix, new in v2.
The second patch removes the option and includes the justification.
The rest of the patches are cleanup and mostly have no functional change.

I measured a 0.7% geometric mean improvement with this series across a few
different benchmarks (Linux VMs on an AMD host). I'm not sure the
improvement is statistically significant, but it likely indicates it is
no worse than before.

A previous series to do this was submitted here:
https://lore.kernel.org/xen-devel/20240304091307.2295344-1-fouad.hilly@cloud.com/

With the exception of patch 5, I haven't kept authorship and sign-offs
since this is a reimplementation, albeit ending up at a similar place.

Thanks,
Ross

Ross Lagerwall (8):
  x86/domain: Ensure a vCPU's FPU is reset early
  x86: Always use eager-fpu
  x86/vmx: Remove lazy FPU support
  x86/svm: Remove lazy FPU support
  x86: Remove fully_eager_fpu
  x86: Remove fpu_initialised/fpu_dirty
  x86/xstate: Stop tracking nonlazy xstate use
  x86: Cleanup cr0.TS flag handling

Wei Liu (1):
  x86/traps: Remove lazy FPU support

 docs/misc/hypfs-paths.pandoc             |   2 -
 docs/misc/xen-command-line.pandoc        |   7 +-
 xen/arch/x86/cpu/common.c                |   3 -
 xen/arch/x86/domain.c                    |   4 +-
 xen/arch/x86/domctl.c                    |   4 +-
 xen/arch/x86/hvm/emulate.c               |  38 +-------
 xen/arch/x86/hvm/hvm.c                   |  16 ++--
 xen/arch/x86/hvm/svm/nestedsvm.c         |  67 +-------------
 xen/arch/x86/hvm/svm/svm.c               |  81 +----------------
 xen/arch/x86/hvm/svm/vmcb.c              |   4 +-
 xen/arch/x86/hvm/vlapic.c                |   3 -
 xen/arch/x86/hvm/vmx/vmcs.c              |   8 +-
 xen/arch/x86/hvm/vmx/vmx.c               |  70 +--------------
 xen/arch/x86/hvm/vmx/vvmx.c              |  15 +---
 xen/arch/x86/i387.c                      | 109 ++---------------------
 xen/arch/x86/include/asm/domain.h        |   6 --
 xen/arch/x86/include/asm/hvm/hvm.h       |   3 -
 xen/arch/x86/include/asm/hvm/svm-types.h |   6 --
 xen/arch/x86/include/asm/hvm/vmx/vmcs.h  |   2 -
 xen/arch/x86/include/asm/i387.h          |   4 +-
 xen/arch/x86/include/asm/spec_ctrl.h     |   1 -
 xen/arch/x86/include/asm/xstate.h        |  17 +---
 xen/arch/x86/pv/misc-hypercalls.c        |   3 +-
 xen/arch/x86/spec_ctrl.c                 |  88 +-----------------
 xen/arch/x86/traps.c                     |  20 +++--
 xen/arch/x86/xstate.c                    |  24 ++---
 xen/common/domain.c                      |   2 -
 xen/common/efi/runtime.c                 |   4 +-
 xen/include/xen/sched.h                  |   4 -
 29 files changed, 59 insertions(+), 556 deletions(-)

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 18:19:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 18:19:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261240.1554321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w56M1-0003e8-H8; Tue, 24 Mar 2026 18:19:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261240.1554321; Tue, 24 Mar 2026 18:19:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w56M1-0003dO-DO; Tue, 24 Mar 2026 18:19:49 +0000
Received: by outflank-mailman (input) for mailman id 1261240;
 Tue, 24 Mar 2026 18:19:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1w56M0-0003bO-Qs
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 18:19:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w56M0-00Db5a-4H
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 19:19:48 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c2d5ae-bab6-0a2a0a5309dd-0a2a4503b5fc-30
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 19:19:48 +0100
Received: from [52.101.57.48]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c2d5c2-1947-0a2a45030019-34653930eb5c-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 19:19:47 +0100
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by CH4PR03MB7771.namprd03.prod.outlook.com (2603:10b6:610:237::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Tue, 24 Mar
 2026 18:19:45 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%5]) with mapi id 15.20.9745.019; Tue, 24 Mar 2026
 18:19:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EHQy3XKvoar89pFgfYPY/6C1iBO7Hs7Kj3oMHwa1Kpr+UwL1W90ZWK0N8broURgvHrzftqZeO4OgVjDC+ZpNZz2ulcKr7JUD4VkX6XlnvbDJPSw6hIW00T5QfI0IYB59ExrITW2jd7aEm9xytMCyEu1vQXxFBH1hDul7ApsK9rJVzbQ/j+VW3tXyecmi6yFVUEiZqXJhszC+5trCjZfpUlnECYI39mH+JHfP0ZZm2gSzQCIFINzl9CmkNQwkwpF3yPZx8bwhRDFvjQfc3+aZND076Uj0oVo+DDNSSgFOOJQVHbH5VQDbcCO337g32tlqWo3IG/AKr7NuF8GMJQCYsg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hQE140WqrdSbZEDIjgDe1+jOyuXiUrVJVSGp4gkd+CE=;
 b=ev18N0TTZBxMDe1uMOuTwdGtBhbssjMFREYdRHGirjCjxCMPFkN59MZuzoIGYV09HeQYOm0lrsjT0V1KlMVPA19eAOpJVOiRRTIy5vrxyFp7nvFnJhEWvWT5q2ZEwVTINZ4Zl/aoWX6PeAvcOVg6GYT20rvhQPBm6pgSJgqJOTVUfhlkWRhOy+Bo2NbhloMHLZNxwlbHzirvP++iz6Yb0/mii9+JEMhOL7yOlC95T22R4GviyD9/LN6XlM8ADdsCXue0X+aNpYEil2a8Y2zpo9+LXoEL6ePBI+DnX7whkbkDkMzdLW3FbtMwv+gZtknCd6JzBnWetB1KK9B0Uve4qw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hQE140WqrdSbZEDIjgDe1+jOyuXiUrVJVSGp4gkd+CE=;
 b=vl+35MLWDchl4U5KtuEd7K37v73uglMfsiJkMFwzLkpFtFVBali8D0rKEmVZlcfVnLIZLkVnl5oAkMx6EhXLki+vdpyWWnlJ3klcA6psYh6OkValxkDc7TAymcmJxYw0yJKNImeHlAo2Q9+HTLrwUM9rECoXIbeyEXR5M0cdhuo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH v2 1/9] x86/domain: Ensure a vCPU's FPU is reset early
Date: Tue, 24 Mar 2026 18:19:29 +0000
Message-ID: <20260324181937.2465574-2-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
References: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0303.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:196::20) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|CH4PR03MB7771:EE_
X-MS-Office365-Filtering-Correlation-Id: e974cbeb-4719-4c35-3669-08de89d1ed54
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	z9ZTi9k0gw1fUgsJ1Htew8lBbCSxZnualftAs3TRX3FdPD9JXLriVLNx4FQywgXWVAxNXCCwVWXFa52RoG+x/CRK4AATQzXguSZsAz21JSYzObQV7Gz5IXtw45IDq8fydifvDpYN/8PlBoQj5x/84nt5ehQ37PXpGisoFM+gNVD0EPJ8zYUZqwg93LDXjECE/cr1E5yYz3GfQpd4gDpXdJK+KNvPkzvHKT1E/0BCI8p9gHq8N5QjM6PvFLROichWzOnPpVNois/a7I6JIL3iJ5urEvFju2p/0kpmSmF0val9SDLJ3i4l1S51Tkmz7BSn3rVc10B86lxyp2jTGV8EQnmbm1nFO4A2euGJGmHj+Llt+XgU6PTZAW+zAgF3FfzVbclrm/ABISun81FPBcAzW1ogQ2ov5Nx+Q6IWP7oFkxrKaXdc1cyUd0TQV49ix4M/nCr7HxIrHtHDKvBVdJFcjLmJLyZbu/uJHtYEeAQK54O5X+x6G7qJoiI1EM5NsvfqgJevXs76zzrDCjrO00suy5qm7f0ZFWxR4QncyvF/uSeAyI/UR5RpdzCSTQ5lezjTX+29Sf8UOWo/Kkd56ikV6AGyEDLoEqV4mR5/Zs9PDD4TRK5586Q1X5QvazTqds+YVDPW+Upv7nDblzEhBQubRsJmBJTee2I1zuo6WgPXXIwIHFQRU7SGdJfuwEOR0ZEXypeJHLsz220lgdGN6BL5FdEQbKUyQp+/ZViGrUu8EbM=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?aTHjmrtyWjQUFahxtTpupdo8SYcU+zoHLfJpWLbWcuFHV6TrEhh8T/1YVe6m?=
 =?us-ascii?Q?9nEZM0myHevCSwSOUxB841kaJ2Cg3dpaxWCCInPyw6/WgpnUxAnERLqTN3rX?=
 =?us-ascii?Q?FEXMwOX976ghy0trEs+t0OMRhEh6zDtkuELu3s4DI8q/XBMLv855ZL4wgX0l?=
 =?us-ascii?Q?fg7kpxmV7WYB9U0HgB7dU8ERJYmVwBjjV+nIBHSj+rwQpnLDpJV2GWT5K0Tb?=
 =?us-ascii?Q?OtDBIWZui7ds1iFTknXNfXAk6IV1E5cz85Ti6UglatQQzXHUZlA3mTCdBs87?=
 =?us-ascii?Q?2/2Kw7442AM6fbp2qnGD1+7mIWUnMjdk94ZNBW+KuxnVy1UkF5vP1TTgVxPH?=
 =?us-ascii?Q?KjNzcSTZ6IWMd+fsQbb+GWBd9fXuAMZd6Rxgwegxa4lZ0jb43L6d/MO6dmJA?=
 =?us-ascii?Q?aLPSY07ZCTjQSFFEYVHDsyzcHV8V81RWb96OBHTz44t5qRocwY3yjcj/2eu2?=
 =?us-ascii?Q?9YvgvR51GYGxKlu9AYDl/xbKfNpodssO/UzFiZXthl//WYKoKtF9F5G50ar8?=
 =?us-ascii?Q?xGx6BPSwZoJ4ELmrC0NAjhMTKLP1omaM5Bf8afbqP+OAAypwL6hFyFqTvffY?=
 =?us-ascii?Q?h1qquOXXeNmh+bYnZKl99CaCSAGGItBpfpAzjfPFmIjN8XCp0Ei1H3O1byyz?=
 =?us-ascii?Q?v4f8ykbDRP4iVVY6HjK9gIKSXZ7PsgZc2sgONfXj8q2vqUyE4BTgaMxFmCI2?=
 =?us-ascii?Q?8uMk7lOCUnRtsaTM6ehjQ58TNttUqSLJnxfsAvci3E88bnT7zI3//H5TGllJ?=
 =?us-ascii?Q?1fWBq+zikvGY0hNlLENLNglAjhwf5fbVIJhEqX3yymDIQnlds+X7O+zNevTe?=
 =?us-ascii?Q?2J/Ufv5s4Fah5BHGxhboDHUNoJ+ZybbZPS5IIdFSSOrhap/ncVnPrNsVAXgy?=
 =?us-ascii?Q?bwA9g14nQWL+nCSSuHTMAsZZ2ykli7t1/u2NZ52UoAADpe9PFQHcPPBgN50N?=
 =?us-ascii?Q?RXH6ctblG6N61B/3dJLSxlKg9i9/FJH3JJR+ghW+ztvQnuyVrtIqDODBB8xI?=
 =?us-ascii?Q?8YWVHYn95XkyVCpn7LSacNOVe/yw26xNJurMOVCIa+Z8ok3uHdpX/eRHwSQq?=
 =?us-ascii?Q?Jg+36PLOgcQ+BNgz/yMNbbXAee1vprKIP+rbqzgMS2T3dkHV9sK3DeALHdMj?=
 =?us-ascii?Q?WoZDq8FSPXudVMLtJ4DUa6nmYWkDYRi8lzV256zFsVGCZJkLDUaw3iXGuJUO?=
 =?us-ascii?Q?m1cZZylRE4deSA1a11DTFnDneiRnO0hKXlxIJUCCdMhNX7o6Yl5u54FTlZje?=
 =?us-ascii?Q?PbX8x61nZdEudwK9gimeLHbcGlyPVHdHxTCo50A910JHcnS3M4qojQyTZzVn?=
 =?us-ascii?Q?CuLBbhZAAEQ91iQKAM7Y6gDOSa+pvZzUXb3wA6IE1R3bOtqxqRkbamtsjVFp?=
 =?us-ascii?Q?cGXrEnWIrNLaZmRQEkHBaVXurwLgi92xo9k81AccsH7OyS0jwKY+BCU22ppf?=
 =?us-ascii?Q?1CI29R+fTOBf3XuQdO2gVXBVpubRduWjnyOlQufWLFzOzQlBivIaIMz03xj9?=
 =?us-ascii?Q?wHjktCQeMaujkVjGTu0iF0MQrseqYxSLZgIjOcR5ycTo+zIqtLRc/VnhJXcB?=
 =?us-ascii?Q?8Fp9Tzx+Ts4EqI6Cb1T5MhArj6FUQWpd2CckbSDg5ebWjAJU1T0//Btplsg5?=
 =?us-ascii?Q?fLJ5c0gW+WTebBkPH43Sw0iL28MLLY0u9HjBhLhoUruYUInD4Fy5TXkD0+VA?=
 =?us-ascii?Q?gjzFun/q3BNMrCvb8FcbFbbBeUxNx0XG6Upvni3lCL4D0dSwc71Vynxqdb+j?=
 =?us-ascii?Q?8/mv5dwcKgl3Zj74ubwRP8xHXWNDnVw=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e974cbeb-4719-4c35-3669-08de89d1ed54
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 18:19:45.6738
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: rtQWYFt+6ELIxK//J1rt6nPoWAdT0xjwdeypliDYJukgaTPW01sYf/L7AQqFpy1Jaa5sZEunJjaRglljTxyN4IZ2zh0qY5TCrG7x1I/24R4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH4PR03MB7771
X-purgate-ID: tlsNG-33051d/1774376388-4846E72C-DFA12B32/0/0
X-purgate-type: clean
X-purgate-size: 911

When using eager-fpu, a vCPU's FPU is always marked as initialized on
context switch but it is possible that neither vcpu_reset_fpu() nor
vcpu_setup_fpu() has been called on it. If that happens,
arch_get_info_guest() would return a block of all 0's for the FPU
context claiming it to be valid.

Fix this by calling vcpu_reset_fpu() during vCPU creation.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
New in v2

 xen/arch/x86/domain.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 9ba2774762cc..82da1c5d7b38 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -522,6 +522,8 @@ int arch_vcpu_create(struct vcpu *v)
         if ( (rc = vcpu_init_fpu(v)) != 0 )
             return rc;
 
+        vcpu_reset_fpu(v);
+
         vmce_init_vcpu(v);
 
         arch_vcpu_regs_init(v);
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 18:19:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 18:19:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261241.1554335 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w56M8-00045U-TX; Tue, 24 Mar 2026 18:19:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261241.1554335; Tue, 24 Mar 2026 18:19: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 1w56M8-00045N-P3; Tue, 24 Mar 2026 18:19:56 +0000
Received: by outflank-mailman (input) for mailman id 1261241;
 Tue, 24 Mar 2026 18:19:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1w56M7-000440-IU
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 18:19:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w56M6-00A2x9-Un
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 19:19:54 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c2d5a3-e002-0a2a0a5209dd-0a2a4505e79a-32
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 19:19:54 +0100
Received: from [40.93.196.34]
 (helo=SA9PR02CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c2d5c9-5aeb-0a2a45050019-285dc422f0cc-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 19:19:54 +0100
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by CH4PR03MB7771.namprd03.prod.outlook.com (2603:10b6:610:237::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Tue, 24 Mar
 2026 18:19:50 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%5]) with mapi id 15.20.9745.019; Tue, 24 Mar 2026
 18:19:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ahhF7RNlLQWX0UJbJ00j31vT1XsI4lwvk09L8n8bOrzGQb9o8zSoKMIxSFsl3dd3MAe7d8a2hnVihH376trEgyKKRlCbSRqFLv+fSqzBbfVWpB3q71x7cPO9eOYpqOzDj0v425ZxcUdiwh4mruC/fhsPkgIZkpyuWBauJGAkWA5p0xL3r8BeEUkse8J6b4obbSc6m/7B+HJwvQI2XbpCasfZRNqIdNmNaFRXwF4qFdZrmYMEAwQntJo+NhZHd63c1AxyyR1EtsOLIqJGoXXr7/ToTa3C17D2YzjJ45hP4FfTKXxuhEDcb7BZFvPU0g2GnpuxuQ5vddrQU7xTGpb8mg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2wYMxjp6Ztn3OKgr+Kj5cB1smirnWjdwasezqGKeb+8=;
 b=mtGSICZ5SXUC0Ur1g7DodHR4tm/HhbThk4CeAGqF3Ua4b6jwseQsF77ZN3ZjT2gM3iMvjbSUoKD/ZbBptC3OsUqYJEU5p+imIe4UfAw4pRf+UZCtA9qSCR1jxxtoPNnVacDZkhfh8oopk2+vBJwFLwO9uMWlHLkFSM+cpTzlwcf2D0MwRFIFy1wbw6BwwvUsB1JYa9gal+T7OJdNjJiR8GeOqeeQxZaeyjvYh7RKWBUk+tv3gN7iEQdlJSWRi84C+dpd7KkPwWmCzpLUKNzim+KU6pxWDxGk5e1EAuQfrWqP9t7b6pGPQeWD21uTz3FSJCzYx1S+9AcYIjDiKiTCsg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2wYMxjp6Ztn3OKgr+Kj5cB1smirnWjdwasezqGKeb+8=;
 b=dFapwf2GxGlvjCNYxNwcbUnwtrPB+T3iZg62LY9hHcDQ2Yi8tl8uhY8kA+X/O47WWEeDyLrIV79p2+f3qlzC5M0URelcjykDTW6q6z/VJIz+TPWE3zcuLGKAiDi/m/J+dV6iXjjcT2qDBeFu3Vlhyf7GNubGrDmAs2/Xe29+ZOE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH v2 2/9] x86: Always use eager-fpu
Date: Tue, 24 Mar 2026 18:19:30 +0000
Message-ID: <20260324181937.2465574-3-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
References: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P265CA0316.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:390::20) To DS0PR03MB8272.namprd03.prod.outlook.com
 (2603:10b6:8:28f::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|CH4PR03MB7771:EE_
X-MS-Office365-Filtering-Correlation-Id: a45a4603-db05-499e-cd68-08de89d1ea4b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	Wq/qdSjDYxA2ZVPLEauisoMGCozkRbhEOC1et/+VLoi/4v0rCviel/EqFod57e4wSXKlf15URfMU3iUcWJSj07fzBLiOFke+YEJk+5ngCRZ7vLZOsDcoYndTkgbNXDovk88ZW0msxFqN7grmCmyIPtyWESR+KxCIPeSGXepMuQjPeOW9yTu19xRqHdA85KBqxU/zGok2kryIDKNQInaRKYDOFbd8mbc8sMWYy/MUBJWgoDyYm+OrAWv4OtncIhOsRZBHRGxTO691aOeyXoo4SHkbF8YAH9Zu4naofSSy7SwNKyt+vMqTVRdlY8tvCc1qzJqmiiSlrsvkAzANXFd3Xz9p8cv1zPgE6i2wNbF8lHBT1mzrAovtpNTJ18f220D+fmCETkP0beeUNhacKNaP+hgqVXuDR0sD5HiAMIBo8PWrWchDntLxEPEk7rVlN5G/zyppAQsLdqyFMsn5l5p5Az6nbLe80yZAmD44vygNsgZhzTUN/3Ahs09GeP0sr7LzpTIzKVnapsTvgB3x58hYgOBetuAomvYAjCxOa3CVTsfhiNDN1NjEbMpUDKnV7Qyq2e0jqYhx4Y/vdZXn1x3pvxa4pgkzZwwsHsVHfJmzRaFKdxkmkh8e46ZlxP/f86kRhfPcBreNbnTTrLcMXgjggATQjbiRxvEV1uDBdCfAKOlxj66CyKtUQQw3Xu36l/AfVMr+bd1qUzPDQgfLXz3BY1Kc6WTV9VdLnrnKdjmW6wc=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?CydBiId7rXYzqfQhKu/I8oTVWFbA/liIGhUYyk7YMiID5ivq1htZfZz4vBkF?=
 =?us-ascii?Q?g33BIiGEViwGWyxTNdN3U+x1M/cRaqCmn7+7o0BYwjdNMsqCGLDvn8byvxY6?=
 =?us-ascii?Q?/qs6i07w+YuE5ijCXzjX9rm0zgfYLUENm19rpY1ESIMtyAOnW3JfbvIg7Ikz?=
 =?us-ascii?Q?7EMrM0YQTnNOLp9bwz1cgaN2Y9QvC0UKvKy7qNskEPnZW131SbASWo8scpG/?=
 =?us-ascii?Q?vjGtxzadeKsLxc+s3gTcelLIz1cG7y3mP4py9iXT5SSCnJUBo5AGdENqOwUT?=
 =?us-ascii?Q?HVU2+wvZqC4nsY7WfiSDfsrmnyOZOfX3aDqtH8pfG41kf2v62qnOt24DNojN?=
 =?us-ascii?Q?0dXl5ggXDUXxWjtvMISi7vgw/2v7tUOiGwfPusipUFi4pDTPCi75j1rAluKU?=
 =?us-ascii?Q?MiMm1IYztI0EICQTpaCWAbfDbfR5GGnwsaUX4uBmpvquJqvgsL1yre5rULUs?=
 =?us-ascii?Q?OEbXTeItO0Tn9xnmzm3p+zav26gENXGEdfOcvboge4ui/vMoEstFVciZuSQV?=
 =?us-ascii?Q?tGzhcOb71Rt2Ax4LIWEhfgiOry4K+aaZukpu4ZPr05dvItqbYPVsnkWXt/jV?=
 =?us-ascii?Q?P6fA5qErbdzln8iafXZCN1nvDS4Eo6iCmzLxYaV7UTVk8dc4so/5M1Hht9QV?=
 =?us-ascii?Q?BBmhYmFvZkJXcPwVCtN6WAx/KEaWkdis//G9fyIOe1z7woRtuKAIv3Cay6kd?=
 =?us-ascii?Q?NlK5CZUEbod4SmKVostQWQz2nTMJSnrYQ3FkLeaC2Yun5BI1sqkWbnCRA824?=
 =?us-ascii?Q?6DzaCtRRdgfkJR9N1jY5IHPspFuckEVzI15R6vZ4efvGCJ/p1jHR+QMEsUlZ?=
 =?us-ascii?Q?HcfNq1CfsNx/TtTNV05tvrGOINZTIcA1tzKazEvfLj6zX+czpOFIqYHIDDDM?=
 =?us-ascii?Q?OAAI33paMNFtt8Co1bYDkulrMEq5TRpHD7xO5cFC7XTTV5i5DjvyQLlsi032?=
 =?us-ascii?Q?mwxOv1tfp0q6mUoOl6UudCS08Py9LlgnuU4LasePVAJibKtDVsKitmc2XQCN?=
 =?us-ascii?Q?kETkwRq8zY4ff/8GSIzaLuLD7jcIjcAhzQsaeNEYwGRInhfNNbDRVXa1Dk50?=
 =?us-ascii?Q?UnezPZ/2v7gYTn8PgoUFlgimjCfqGZBCcK/FghX/Xm64VH9M3FHte0teRpwt?=
 =?us-ascii?Q?9hxLiEkqU84aqwi/1clvbcrhbE1NA0Ui30QE+LDp6UnVR+wY5vZ6scOSJkox?=
 =?us-ascii?Q?jI++/UfkbVixVo/RRN5fjDZNrWMT9XTGYzFO3X6DEWjiAYEpcHZ6s8n8jJss?=
 =?us-ascii?Q?kuG+AeuFl8CD8bt9g+v1Sk77kvBxVmC8xlOXqP5evpPHWXT8ydNXXc98WNiW?=
 =?us-ascii?Q?ZWH7TZTdTA/Bz56P6Fkae5lidpiPVJaAXkLfPe+y+y8lcZVZ/2be6v2xdRTA?=
 =?us-ascii?Q?Zqtln1C/h+QSM2Rlm4z4cC7tby7yIgi47YozjYz8NThdokj82Gtmh12k1R/z?=
 =?us-ascii?Q?2tPOQc5An0eg9xGD9lEXX59rOntFMGA81HdColfLmE0ixorxgY4Csp/uBCIF?=
 =?us-ascii?Q?G3MmqCRcaa/ywSmgwP/HHaP7lJlbzA5mtJsfWt44Gxw49EwfllEIdoCk5xhU?=
 =?us-ascii?Q?WSTsdfJqpkLMtSI7mnbPIHYW6VEqaFr2vsqeEar/UNLGyczt1N5xBOEsMcv+?=
 =?us-ascii?Q?hxwnDgHB1ALgZCKI+j0jNLoWrv6UjLG+B1yjeeqpzWvJuyJL6CXOkftbUwFJ?=
 =?us-ascii?Q?fpVMolNKroh5cYvowSU/VS6JFhxpDdMJQ/jOiZumea0aaHafB8p+YBXuqG68?=
 =?us-ascii?Q?e5a8ESaQ4JgkRBTMvsLuNlOE9t507Do=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a45a4603-db05-499e-cd68-08de89d1ea4b
X-MS-Exchange-CrossTenant-AuthSource: DS0PR03MB8272.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 18:19:50.1388
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: YpLa04H0jQcmQmkXhIi6z6vaszhAg2R6uhgUxJK64wzilxys/hl816whHeOidBKogPOrnW91g5WFjYbPM9YAq/DUqk6dq0k9MR6aiK4aSN0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH4PR03MB7771
X-purgate-ID: tlsNG-c201ff/1774376394-20695488-34E44475/0/0
X-purgate-type: clean
X-purgate-size: 11235

Lazy FPU avoids some work during a context switch but pushes more
expensive costs elsewhere:

* For a workload running some Windows VMs, I measured about 83% of
  context switches out had used the FPU so most of the time the FPU
  save/restore is not avoided, just delayed.
* A key difference between 32-bit and 64-bit OSes is that %xmm is in the
  base featureset for 64-bit and thus gets ubiquitous use in userspace.
  This is likely why we hit 83%.
* Setting/clearing the cr0.TS bit is serializing and reportedly slower
  than the processor optimized xsave/restore.
* Linux uses PKRU so a partial xsave/restore is performed on each
  context switch anyway, followed by a second xsave/restore at some
  point during execution. This interferes with the 'modified'
  optimisation that hardware uses to try and reduce the cost of the
  following XSAVE.

There is no measurable performance benefit for using lazy FPU and it
adds unwanted complexity so remove the option and always use eager-fpu.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
In v2: Expanded the commit message

 docs/misc/hypfs-paths.pandoc         |  2 -
 docs/misc/xen-command-line.pandoc    |  7 +--
 xen/arch/x86/i387.c                  |  2 +-
 xen/arch/x86/include/asm/spec_ctrl.h |  1 -
 xen/arch/x86/spec_ctrl.c             | 88 ++--------------------------
 5 files changed, 6 insertions(+), 94 deletions(-)

diff --git a/docs/misc/hypfs-paths.pandoc b/docs/misc/hypfs-paths.pandoc
index e86f7d0dbef9..1553cb0bcb7f 100644
--- a/docs/misc/hypfs-paths.pandoc
+++ b/docs/misc/hypfs-paths.pandoc
@@ -108,12 +108,10 @@ A populated Xen hypervisor file system might look like the following example:
             active-hvm/      directory for mitigations active in hvm doamins
                 msr-spec-ctrl "No" or "Yes"
                 rsb          "No" or "Yes"
-                eager-fpu    "No" or "Yes"
                 md-clear     "No" or "Yes"
             active-pv/       directory for mitigations active in pv doamins
                 msr-spec-ctrl "No" or "Yes"
                 rsb          "No" or "Yes"
-                eager-fpu    "No" or "Yes"
                 md-clear     "No" or "Yes"
                 xpti         "No" or list of "dom0", "domU", "PCID-on"
                 l1tf-shadow  "No" or list of "dom0", "domU"
diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index ebdca007d26b..6c77129732bf 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2470,7 +2470,7 @@ By default SSBD will be mitigated at runtime (i.e `ssbd=runtime`).
 >              {msr-sc,rsb,verw,{ibpb,bhb}-entry}=<bool>|{pv,hvm}=<bool>,
 >              bti-thunk=retpoline|lfence|jmp,bhb-seq=short|tsx|long,
 >              {ibrs,ibpb,ssbd,psfd,
->              eager-fpu,l1d-flush,branch-harden,srb-lock,
+>              l1d-flush,branch-harden,srb-lock,
 >              unpriv-mmio,gds-mit,div-scrub,lock-harden,
 >              bhi-dis-s,bp-spec-reduce,ibpb-alt}=<bool> ]`
 
@@ -2574,11 +2574,6 @@ On hardware supporting IBPB (Indirect Branch Prediction Barrier), the `ibpb=`
 option can be used to force (the default) or prevent Xen from issuing branch
 prediction barriers on vcpu context switches.
 
-On all hardware, the `eager-fpu=` option can be used to force or prevent Xen
-from using fully eager FPU context switches.  This is currently implemented as
-a global control.  By default, Xen will choose to use fully eager context
-switches on hardware believed to speculate past #NM exceptions.
-
 On hardware supporting L1D_FLUSH, the `l1d-flush=` option can be used to force
 or prevent Xen from issuing an L1 data cache flush on each VMEntry.
 Irrespective of Xen's setting, the feature is virtualised for HVM guests to
diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
index b84cd6f7a9e1..954ba3b1799b 100644
--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -297,7 +297,7 @@ void save_fpu_enable(void)
 /* Initialize FPU's context save area */
 int vcpu_init_fpu(struct vcpu *v)
 {
-    v->arch.fully_eager_fpu = opt_eager_fpu;
+    v->arch.fully_eager_fpu = true;
 
     return xstate_alloc_save_area(v);
 }
diff --git a/xen/arch/x86/include/asm/spec_ctrl.h b/xen/arch/x86/include/asm/spec_ctrl.h
index 505e3ab863f0..8f82533c416a 100644
--- a/xen/arch/x86/include/asm/spec_ctrl.h
+++ b/xen/arch/x86/include/asm/spec_ctrl.h
@@ -79,7 +79,6 @@ static always_inline void spec_ctrl_new_guest_context(void)
 extern int8_t opt_ibpb_ctxt_switch;
 extern bool opt_ssbd;
 extern int8_t opt_bhi_dis_s;
-extern int8_t opt_eager_fpu;
 extern int8_t opt_l1d_flush;
 
 extern bool bsp_delay_spec_ctrl;
diff --git a/xen/arch/x86/spec_ctrl.c b/xen/arch/x86/spec_ctrl.c
index dd0413e1fc13..bc8538a56f0e 100644
--- a/xen/arch/x86/spec_ctrl.c
+++ b/xen/arch/x86/spec_ctrl.c
@@ -61,7 +61,6 @@ static int8_t __initdata opt_psfd = -1;
 int8_t __ro_after_init opt_bhi_dis_s = -1;
 
 int8_t __ro_after_init opt_ibpb_ctxt_switch = -1;
-int8_t __ro_after_init opt_eager_fpu = -1;
 int8_t __ro_after_init opt_l1d_flush = -1;
 static bool __initdata opt_branch_harden =
     IS_ENABLED(CONFIG_SPECULATIVE_HARDEN_BRANCH);
@@ -104,8 +103,6 @@ static int __init cf_check parse_spec_ctrl(const char *s)
             opt_msr_sc_pv = false;
             opt_msr_sc_hvm = false;
 
-            opt_eager_fpu = 0;
-
             if ( opt_xpti_hwdom < 0 )
                 opt_xpti_hwdom = 0;
             if ( opt_xpti_domu < 0 )
@@ -336,8 +333,6 @@ static int __init cf_check parse_spec_ctrl(const char *s)
         /* Misc settings. */
         else if ( (val = parse_boolean("ibpb", s, ss)) >= 0 )
             opt_ibpb_ctxt_switch = val;
-        else if ( (val = parse_boolean("eager-fpu", s, ss)) >= 0 )
-            opt_eager_fpu = val;
         else if ( (val = parse_boolean("l1d-flush", s, ss)) >= 0 )
             opt_l1d_flush = val;
         else if ( (val = parse_boolean("branch-harden", s, ss)) >= 0 )
@@ -648,32 +643,30 @@ static void __init print_details(enum ind_thunk thunk)
      * mitigation support for guests.
      */
 #ifdef CONFIG_HVM
-    printk("  Support for HVM VMs:%s%s%s%s%s%s%s%s\n",
+    printk("  Support for HVM VMs:%s%s%s%s%s%s%s\n",
            (boot_cpu_has(X86_FEATURE_SC_MSR_HVM) ||
             boot_cpu_has(X86_FEATURE_SC_RSB_HVM) ||
             boot_cpu_has(X86_FEATURE_IBPB_ENTRY_HVM) ||
             opt_bhb_entry_hvm || amd_virt_spec_ctrl ||
-            opt_eager_fpu || opt_verw_hvm)           ? ""               : " None",
+            opt_verw_hvm)                            ? ""               : " None",
            boot_cpu_has(X86_FEATURE_SC_MSR_HVM)      ? " MSR_SPEC_CTRL" : "",
            (boot_cpu_has(X86_FEATURE_SC_MSR_HVM) ||
             amd_virt_spec_ctrl)                      ? " MSR_VIRT_SPEC_CTRL" : "",
            boot_cpu_has(X86_FEATURE_SC_RSB_HVM)      ? " RSB"           : "",
-           opt_eager_fpu                             ? " EAGER_FPU"     : "",
            opt_verw_hvm                              ? " VERW"          : "",
            boot_cpu_has(X86_FEATURE_IBPB_ENTRY_HVM)  ? " IBPB-entry"    : "",
            opt_bhb_entry_hvm                         ? " BHB-entry"     : "");
 
 #endif
 #ifdef CONFIG_PV
-    printk("  Support for PV VMs:%s%s%s%s%s%s%s\n",
+    printk("  Support for PV VMs:%s%s%s%s%s%s\n",
            (boot_cpu_has(X86_FEATURE_SC_MSR_PV) ||
             boot_cpu_has(X86_FEATURE_SC_RSB_PV) ||
             boot_cpu_has(X86_FEATURE_IBPB_ENTRY_PV) ||
             opt_bhb_entry_pv ||
-            opt_eager_fpu || opt_verw_pv)            ? ""               : " None",
+            opt_verw_pv)                             ? ""               : " None",
            boot_cpu_has(X86_FEATURE_SC_MSR_PV)       ? " MSR_SPEC_CTRL" : "",
            boot_cpu_has(X86_FEATURE_SC_RSB_PV)       ? " RSB"           : "",
-           opt_eager_fpu                             ? " EAGER_FPU"     : "",
            opt_verw_pv                               ? " VERW"          : "",
            boot_cpu_has(X86_FEATURE_IBPB_ENTRY_PV)   ? " IBPB-entry"    : "",
            opt_bhb_entry_pv                          ? " BHB-entry"     : "");
@@ -959,75 +952,6 @@ static bool __init rsb_is_full_width(void)
     return true;
 }
 
-/* Calculate whether this CPU speculates past #NM */
-static bool __init should_use_eager_fpu(void)
-{
-    /*
-     * Assume all unrecognised processors are ok.  This is only known to
-     * affect Intel Family 6 processors.
-     */
-    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
-         boot_cpu_data.family != 6 )
-        return false;
-
-    switch ( boot_cpu_data.model )
-    {
-        /*
-         * Core processors since at least Nehalem are vulnerable.
-         */
-    case 0x1e: /* Nehalem */
-    case 0x1f: /* Auburndale / Havendale */
-    case 0x1a: /* Nehalem EP */
-    case 0x2e: /* Nehalem EX */
-    case 0x25: /* Westmere */
-    case 0x2c: /* Westmere EP */
-    case 0x2f: /* Westmere EX */
-    case 0x2a: /* SandyBridge */
-    case 0x2d: /* SandyBridge EP/EX */
-    case 0x3a: /* IvyBridge */
-    case 0x3e: /* IvyBridge EP/EX */
-    case 0x3c: /* Haswell */
-    case 0x3f: /* Haswell EX/EP */
-    case 0x45: /* Haswell D */
-    case 0x46: /* Haswell H */
-    case 0x3d: /* Broadwell */
-    case 0x47: /* Broadwell H */
-    case 0x4f: /* Broadwell EP/EX */
-    case 0x56: /* Broadwell D */
-    case 0x4e: /* Skylake M */
-    case 0x55: /* Skylake X */
-    case 0x5e: /* Skylake D */
-    case 0x66: /* Cannonlake */
-    case 0x67: /* Cannonlake? */
-    case 0x8e: /* Kabylake M */
-    case 0x9e: /* Kabylake D */
-        return true;
-
-        /*
-         * Atom processors are not vulnerable.
-         */
-    case 0x1c: /* Pineview */
-    case 0x26: /* Lincroft */
-    case 0x27: /* Penwell */
-    case 0x35: /* Cloverview */
-    case 0x36: /* Cedarview */
-    case 0x37: /* Baytrail / Valleyview (Silvermont) */
-    case 0x4d: /* Avaton / Rangely (Silvermont) */
-    case 0x4c: /* Cherrytrail / Brasswell */
-    case 0x4a: /* Merrifield */
-    case 0x5a: /* Moorefield */
-    case 0x5c: /* Goldmont */
-    case 0x5f: /* Denverton */
-    case 0x7a: /* Gemini Lake */
-        return false;
-
-    default:
-        printk("Unrecognised CPU model %#x - assuming vulnerable to LazyFPU\n",
-               boot_cpu_data.model);
-        return true;
-    }
-}
-
 /*
  * https://www.amd.com/content/dam/amd/en/documents/corporate/cr/speculative-return-stack-overflow-whitepaper.pdf
  */
@@ -2221,10 +2145,6 @@ void __init init_speculation_mitigations(void)
 
     div_calculations(hw_smt_enabled);
 
-    /* Check whether Eager FPU should be enabled by default. */
-    if ( opt_eager_fpu == -1 )
-        opt_eager_fpu = should_use_eager_fpu();
-
     /* (Re)init BSP state now that default_scf has been calculated. */
     init_shadow_spec_ctrl_state(get_cpu_info());
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 18:20:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 18:20:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261245.1554344 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w56MC-0004Lu-2b; Tue, 24 Mar 2026 18:20:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261245.1554344; Tue, 24 Mar 2026 18: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 1w56MB-0004Lh-W9; Tue, 24 Mar 2026 18:19:59 +0000
Received: by outflank-mailman (input) for mailman id 1261245;
 Tue, 24 Mar 2026 18:19:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1w56MA-0004Jf-1p
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 18:19:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w56M9-00Db9Z-9u
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 19:19:57 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c2d5ae-bab6-0a2a0a5309dd-0a2a4503b5fc-46
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 19:19:57 +0100
Received: from [40.93.196.11]
 (helo=SA9PR02CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c2d5cb-1947-0a2a45030019-285dc40b1c1a-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 19:19:56 +0100
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by CH4PR03MB7771.namprd03.prod.outlook.com (2603:10b6:610:237::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Tue, 24 Mar
 2026 18:19:54 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%5]) with mapi id 15.20.9745.019; Tue, 24 Mar 2026
 18:19:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZGKfpUK4b9Nwc50kQU+h2txy+LktN8gLAgrf5g5yTDw5wDMQGkyE3fQLOSBfuQ1YLOnGnjJkPWuZaVCJz2lLABxmqLMgN3XGpidBHu3p5WOTHjtVY+o1pCmaoUd/Na/+GpLTpt1djgDHIS7dP1M8qwzA38YyM9T1ZTt3AP44zMMlUvaSSceAYxLVO8uQIu19S9clgp+X3ZmLle89uOmA0GevBQ2y/n4M2Z3ncQaVzzpN2FCd1fikWxL1vNYjWB9I8rGLNhaaPlEfK4aXfaljWS8mzKcXDbr//WaNGOHt9gJs8Eh+/wEMounCLgv9BndHi0+/s0KpP54EtR3TP/i8dw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qI+LNjy72D4wHoOthvYhwfj9bAoz+vROImIxBQ8ISLY=;
 b=L1+/e3wuGBpwZenvlDwS1S5P7PYsuD9aa43gPfig0DQii3UNpQJWQHxI6NnxZTp+U9MRyuj3AgZfWWxIS+YeArn1UZ4cm94US3Pt4ELRSwOFiu/lmniMnVaNZlvX6CG/ofzllBBooB2F0XToFOTrPFPEb7WQDJR6gvm+2echDInFKwfNyN6D4n+hGwpV2jHScYtPEWfMU/fMJ8xQtfuRRAsuNIKw2Ito8/1LJGI1ulFZYtwGoCKGakguEh6lPzl/pxmOUmpdfqFW+TUtcwgS9rOI+HIPnEMag2a4EUoJOgbQ46/gZNDj65FNxESaEpCXZw96Quuxsoq/AQ7TB/TcBw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qI+LNjy72D4wHoOthvYhwfj9bAoz+vROImIxBQ8ISLY=;
 b=qLV/5GO3UnvirntbrR4tJg0GccmeS2n5pPIfBzUEjfxTl9hl36rcdI4slCojga5RJAx0AiVKsd6THx1E/d12UlWu7W/uROSluvcxB981nsm0z8q6CqmQe/obpIEQ+3uz9ZhbgnfMpxqiqxKPmFZe/vxzOKO8Ymh8GKbilJMT9hE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH v2 3/9] x86/vmx: Remove lazy FPU support
Date: Tue, 24 Mar 2026 18:19:31 +0000
Message-ID: <20260324181937.2465574-4-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
References: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P265CA0318.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:390::17) To DS0PR03MB8272.namprd03.prod.outlook.com
 (2603:10b6:8:28f::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|CH4PR03MB7771:EE_
X-MS-Office365-Filtering-Correlation-Id: 9d9fc831-f0c5-49ed-f3d7-08de89d1ecef
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	GuE5X3Iom0ad4IIm0+J47VrN2502B9OHbqnJzaOm18a0eqm0TT0HQGdV31iDIK0CaSKJWA+u2iY2l5CxoDLQdxd5u+Y5EWKD2YMqGc6xONEkv5qdeYO3/6pz50EPtu+LZ18vw/gXa70xYWca6lJeyyQKeoWcqv0CaZ+oY0tBxeKwVZ+rtKP+teGs2c42gNAYLKzpCK60LduoiXKydbpqfWAZ2shIC9oUMeF33dBUzHegJBBDnIDZ1U1CvSaO0T37IVsx1rUOyfJxQBahhQIdNcb/LY5kkvRx0vi/xAZtfMmYweIrllrYcW57/+sw/tFJF7jrIVAQOEWASFihTuWw/JoG/PQ4XzmGLGPuOYz2T9ae+2Sb/donAgoFCbLIGCGbFFyN1SoZLoq9DPb206HIrCpdDT6vn+7dS6i9TQ5TzSrL0sIWJ4gNNVjXkWGz5zXSZZDG6snGCM2yNispj/hWaWHNXZ5l+frcMXgEVB4oorUr4atmNX9krXI+g8F6DCjCvKkwyWnShw2vQUxG4xSVTKisqo4E8ZrnKiWT+Ejw6YtQo7B/7g7UGx2rr3RvDpZGq7G+1jx/q46NNKqgr+LDYWRv+lhmURbLWOyD8Q9+n1bG9JfV57gwigaMmmvRRfMM0xIqtKUTpHS81yYZp+Oza6nK7Ei2NPVmgXWMZ2GZTLBPKNDjt2YysIy/E1zUTXur//x2OOpDvihVGJBY55GUe3Va4OBAcRcntSGsZGjdU74=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?q3+ZZatHTrwZ2voEB46PZjkMGiqapB2A+EwLpPmmSjuy9bLPSZgwuPxaydRr?=
 =?us-ascii?Q?19jbHneiL+YBsJgM6LKn4tSKyGiEIaY2TGG4vwSQ+4lgmP7lvAMBqIT+LpP8?=
 =?us-ascii?Q?jC5Ik92doIs3SgMh2gYukE88EJ+LuVpiSJ0tjbwbs07LpPfEFMwAIalZgHgy?=
 =?us-ascii?Q?eYmAkkZDkfN6u6CM4I+WBDKCRrmIrWFxXn1k4xy5CrF5RkVuoi/47P6pxFeA?=
 =?us-ascii?Q?BsjEgM/wt9XY8KuPK7jw7nb8zDPGl2sptdCUIi0mF/HUYCcs8/QenBwl4PW6?=
 =?us-ascii?Q?Bz3lCcik67tTuhgTXcmS5z6fcQxVu1NzTCxbIDslmAG9lfs713Ktjlcp5mAd?=
 =?us-ascii?Q?SRf5shWph3/TdIxichcIuJeGstDOwZPiNJC5eIG14TDX9ZqXWRFWoiMYdQ4j?=
 =?us-ascii?Q?in2rsWcjtyztg9dXbpXGeAsZwmMGM2C1MyZ/4K/62ggwFtGdgJjmFSo3ZLwn?=
 =?us-ascii?Q?bBwi41COhknQJkiwiuEmlJtTEj2rbuDoMvmJPh/eD74GQtZOhgp+cZbPmeYm?=
 =?us-ascii?Q?M16ah65sy6f71Rx4YGxXPk1WdqzvPgAX248/63YJknODtb+ljJyAuvWCERKk?=
 =?us-ascii?Q?yyJDdoM6+LYVofHLqrR4iMDt3XYoH/mP10g5C/o9WJ8zAcZ03VDv7yaVyOwS?=
 =?us-ascii?Q?jY8v8Z9KH1SYt5cce2gP7CehhHtpe1xe+ZpYhAwCEpu5Sn93yxkZx8QhVWtX?=
 =?us-ascii?Q?z0AhNas150GkayWIOWeZE+mP+UJmZ4DlqvqbedFzyjGzvwErjAY0B+nXgSUY?=
 =?us-ascii?Q?UO8Nbqd7TqXPKMFcAOeug5MeIFTtouu711wK3AnJrcgyT+emHbG0Q6qHS6vY?=
 =?us-ascii?Q?sOoQKVpUwyWl8ZIUXsMAlXYcguwkb5VmZYNWdkKorN4ae3JeSoyE8PmXJanD?=
 =?us-ascii?Q?NZ2js1LU0ALK0hs275620GJlRIES/vgOld83RUgu8PU1I6H7XQnpq6KT2925?=
 =?us-ascii?Q?iGcsDlbsqkpe57DWyGRP0LzXr2rZHhjuIkUNjCflXTssIPUHynf0K1jUTQE1?=
 =?us-ascii?Q?hlLzTdc9bpbYPBGUVYaTxtdG1Il6enEh+6Yb21iNU0KGCvSZdSgsSxR0S3yA?=
 =?us-ascii?Q?kjHd1pj2psnZH1hPTejll5BEdQZEZxAuR5yWdCAfucLmchJeU+Zp18bS9QdV?=
 =?us-ascii?Q?WwA7mak4oW+0fEZRWgSD4vnJw07fqj6YfKXLj3q2oPU/NqjVnBcMlFMK3Kei?=
 =?us-ascii?Q?7ynHviPWEkUbhNf0xq/6cSqL0JCFwgqoUzwDxx2ExSLoBfdqDzKKYTiokFIq?=
 =?us-ascii?Q?RrB8oDRvxG0ZN6NPubUQ6+2Pp2l7cHk8TK8eXj1+qgPpmglSfSIe2uXASny/?=
 =?us-ascii?Q?uDShIY/xnf0tlOwlwTzW0k6yVgJ4TInUTbRkzCqaTTqKTGfQ5QsdzCSPUjiA?=
 =?us-ascii?Q?W5za/cFFO76+dPpEpZkRzgA+zmxpH/wjLuiEo/cNvnTrJbOi6ZQwG27/f74z?=
 =?us-ascii?Q?JHXBTTSPQHJ5t3e93V1i+cmhsp5zO72EgOcpgP9h/VbOA7VuIZ1llVZHFIpp?=
 =?us-ascii?Q?wW8etSOY+FeI+49cFHcMxn7XbuCNJqH7YtZqcSRd0PzS27hcawWouZvdYi4u?=
 =?us-ascii?Q?OYhKfNEo0j1I4LP/+gnVq8adqVemqfXNU1Z68//EJGQeclW7l6b2WBr7Tax6?=
 =?us-ascii?Q?XGYEAK1WpC6t5Ho9wVgtlOWS4b3sJ9s8496nDI0lg3p8/LNTHcQYn35aELr2?=
 =?us-ascii?Q?ivpFPveElnz3+Yj7+hM5yaUM46EiggfYB75nGGyXaUrPSX54x4gI+DJhOCNn?=
 =?us-ascii?Q?Vh5dcMtMcC85ITZkkNu+nY2ApG4cmRA=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9d9fc831-f0c5-49ed-f3d7-08de89d1ecef
X-MS-Exchange-CrossTenant-AuthSource: DS0PR03MB8272.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 18:19:54.4400
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: nuWAKn8HaD7Dsk7OK67C79xbh7YyXkmW2a9cK8x78QmVY5fRcFbiab/IJa6jvfHIT5X2gs7+1TKRVMl4pc/pc0aWbFx2HdQqZCK2pyPnF74=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH4PR03MB7771
X-purgate-ID: tlsNG-33051d/1774376397-4866F72C-7F8B867D/0/0
X-purgate-type: clean
X-purgate-size: 9025

Remove lazy FPU support from the VMX code since fully_eager_fpu is now
always true.

No functional change intended.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
Unchanged in v2

 xen/arch/x86/hvm/vmx/vmcs.c             |  8 +--
 xen/arch/x86/hvm/vmx/vmx.c              | 70 +------------------------
 xen/arch/x86/hvm/vmx/vvmx.c             | 15 +-----
 xen/arch/x86/include/asm/hvm/vmx/vmcs.h |  2 -
 4 files changed, 5 insertions(+), 90 deletions(-)

diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index c2e7f9aed39f..8e52ef4d497a 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -1247,10 +1247,7 @@ static int construct_vmcs(struct vcpu *v)
     __vmwrite(HOST_TR_SELECTOR, TSS_SELECTOR);
 
     /* Host control registers. */
-    v->arch.hvm.vmx.host_cr0 = read_cr0() & ~X86_CR0_TS;
-    if ( !v->arch.fully_eager_fpu )
-        v->arch.hvm.vmx.host_cr0 |= X86_CR0_TS;
-    __vmwrite(HOST_CR0, v->arch.hvm.vmx.host_cr0);
+    __vmwrite(HOST_CR0, read_cr0());
     __vmwrite(HOST_CR4, mmu_cr4_features);
     if ( cpu_has_vmx_efer )
         __vmwrite(HOST_EFER, read_efer());
@@ -1330,8 +1327,7 @@ static int construct_vmcs(struct vcpu *v)
     __vmwrite(VMCS_LINK_POINTER, ~0UL);
 
     v->arch.hvm.vmx.exception_bitmap = HVM_TRAP_MASK
-              | (paging_mode_hap(d) ? 0 : (1U << X86_EXC_PF))
-              | (v->arch.fully_eager_fpu ? 0 : (1U << X86_EXC_NM));
+              | (paging_mode_hap(d) ? 0 : (1U << X86_EXC_PF));
 
     if ( cpu_has_vmx_notify_vm_exiting )
         __vmwrite(NOTIFY_WINDOW, vm_notify_window);
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 82c55f49aea9..03daf2f52bf2 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -68,7 +68,6 @@ static void cf_check vmx_update_guest_cr(
     struct vcpu *v, unsigned int cr, unsigned int flags);
 static void cf_check vmx_update_guest_efer(struct vcpu *v);
 static void cf_check vmx_wbinvd_intercept(void);
-static void cf_check vmx_fpu_dirty_intercept(void);
 static int cf_check vmx_msr_read_intercept(
     unsigned int msr, uint64_t *msr_content);
 static int cf_check vmx_msr_write_intercept(
@@ -1130,41 +1129,6 @@ static int cf_check vmx_load_vmcs_ctxt(struct vcpu *v, struct hvm_hw_cpu *ctxt)
     return 0;
 }
 
-static void vmx_fpu_enter(struct vcpu *v)
-{
-    vcpu_restore_fpu_lazy(v);
-    v->arch.hvm.vmx.exception_bitmap &= ~(1u << X86_EXC_NM);
-    vmx_update_exception_bitmap(v);
-    v->arch.hvm.vmx.host_cr0 &= ~X86_CR0_TS;
-    __vmwrite(HOST_CR0, v->arch.hvm.vmx.host_cr0);
-}
-
-static void cf_check vmx_fpu_leave(struct vcpu *v)
-{
-    ASSERT(!v->fpu_dirtied);
-    ASSERT(read_cr0() & X86_CR0_TS);
-
-    if ( !(v->arch.hvm.vmx.host_cr0 & X86_CR0_TS) )
-    {
-        v->arch.hvm.vmx.host_cr0 |= X86_CR0_TS;
-        __vmwrite(HOST_CR0, v->arch.hvm.vmx.host_cr0);
-    }
-
-    /*
-     * If the guest does not have TS enabled then we must cause and handle an
-     * exception on first use of the FPU. If the guest *does* have TS enabled
-     * then this is not necessary: no FPU activity can occur until the guest
-     * clears CR0.TS, and we will initialise the FPU when that happens.
-     */
-    if ( !(v->arch.hvm.guest_cr[0] & X86_CR0_TS) )
-    {
-        v->arch.hvm.hw_cr[0] |= X86_CR0_TS;
-        __vmwrite(GUEST_CR0, v->arch.hvm.hw_cr[0]);
-        v->arch.hvm.vmx.exception_bitmap |= (1u << X86_EXC_NM);
-        vmx_update_exception_bitmap(v);
-    }
-}
-
 static void cf_check vmx_ctxt_switch_from(struct vcpu *v)
 {
     /*
@@ -1187,8 +1151,6 @@ static void cf_check vmx_ctxt_switch_from(struct vcpu *v)
         vmx_vmcs_reload(v);
     }
 
-    if ( !v->arch.fully_eager_fpu )
-        vmx_fpu_leave(v);
     vmx_save_guest_msrs(v);
     vmx_restore_host_msrs();
     vmx_save_dr(v);
@@ -1771,17 +1733,6 @@ static void cf_check vmx_update_guest_cr(
         else
             nvmx_set_cr_read_shadow(v, 0);
 
-        if ( !(v->arch.hvm.guest_cr[0] & X86_CR0_TS) )
-        {
-            if ( v != current )
-            {
-                if ( !v->arch.fully_eager_fpu )
-                    hw_cr0_mask |= X86_CR0_TS;
-            }
-            else if ( v->arch.hvm.hw_cr[0] & X86_CR0_TS )
-                vmx_fpu_enter(v);
-        }
-
         realmode = !(v->arch.hvm.guest_cr[0] & X86_CR0_PE);
 
         if ( !vmx_unrestricted_guest(v) &&
@@ -2915,7 +2866,6 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
     .update_guest_cr      = vmx_update_guest_cr,
     .update_guest_efer    = vmx_update_guest_efer,
     .cpuid_policy_changed = vmx_cpuid_policy_changed,
-    .fpu_leave            = vmx_fpu_leave,
     .set_guest_pat        = vmx_set_guest_pat,
     .get_guest_pat        = vmx_get_guest_pat,
     .set_tsc_offset       = vmx_set_tsc_offset,
@@ -2927,7 +2877,6 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
     .cpu_up               = vmx_cpu_up,
     .cpu_down             = vmx_cpu_down,
     .wbinvd_intercept     = vmx_wbinvd_intercept,
-    .fpu_dirty_intercept  = vmx_fpu_dirty_intercept,
     .msr_read_intercept   = vmx_msr_read_intercept,
     .msr_write_intercept  = vmx_msr_write_intercept,
     .handle_cd            = vmx_handle_cd,
@@ -3281,20 +3230,6 @@ void update_guest_eip(void)
         hvm_inject_hw_exception(X86_EXC_DB, X86_EVENT_NO_EC);
 }
 
-static void cf_check vmx_fpu_dirty_intercept(void)
-{
-    struct vcpu *curr = current;
-
-    vmx_fpu_enter(curr);
-
-    /* Disable TS in guest CR0 unless the guest wants the exception too. */
-    if ( !(curr->arch.hvm.guest_cr[0] & X86_CR0_TS) )
-    {
-        curr->arch.hvm.hw_cr[0] &= ~X86_CR0_TS;
-        __vmwrite(GUEST_CR0, curr->arch.hvm.hw_cr[0]);
-    }
-}
-
 static void vmx_dr_access(unsigned long exit_qualification,
                           struct cpu_user_regs *regs)
 {
@@ -4543,10 +4478,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_regs *regs)
                 domain_pause_for_debugger();
             }
             break;
-        case X86_EXC_NM:
-            TRACE(TRC_HVM_TRAP, vector);
-            vmx_fpu_dirty_intercept();
-            break;
+
         case X86_EXC_PF:
             __vmread(EXIT_QUALIFICATION, &exit_qualification);
             __vmread(VM_EXIT_INTR_ERROR_CODE, &ecode);
diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
index 38952f06961e..e4cdfe55c18e 100644
--- a/xen/arch/x86/hvm/vmx/vvmx.c
+++ b/xen/arch/x86/hvm/vmx/vvmx.c
@@ -1238,9 +1238,6 @@ static void virtual_vmentry(struct cpu_user_regs *regs)
     regs->rsp = get_vvmcs(v, GUEST_RSP);
     regs->rflags = get_vvmcs(v, GUEST_RFLAGS);
 
-    /* updating host cr0 to sync TS bit */
-    __vmwrite(HOST_CR0, v->arch.hvm.vmx.host_cr0);
-
     /* Setup virtual ETP for L2 guest*/
     if ( nestedhvm_paging_mode_hap(v) )
         /* This will setup the initial np2m for the nested vCPU */
@@ -1468,9 +1465,6 @@ static void virtual_vmexit(struct cpu_user_regs *regs)
     /* VM exit clears all bits except bit 1 */
     regs->rflags = X86_EFLAGS_MBS;
 
-    /* updating host cr0 to sync TS bit */
-    __vmwrite(HOST_CR0, v->arch.hvm.vmx.host_cr0);
-
     if ( cpu_has_vmx_virtual_intr_delivery )
         nvmx_update_apicv(v);
 
@@ -2458,19 +2452,14 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs,
         __vmread(VM_EXIT_INTR_INFO, &intr_info);
         vector = intr_info & INTR_INFO_VECTOR_MASK;
         /*
-         * decided by L0 and L1 exception bitmap, if the vetor is set by
-         * both, L0 has priority on #PF and #NM, L1 has priority on others
+         * decided by L0 and L1 exception bitmap, if the vector is set by
+         * both, L0 has priority on #PF, L1 has priority on others
          */
         if ( vector == X86_EXC_PF )
         {
             if ( paging_mode_hap(v->domain) )
                 nvcpu->nv_vmexit_pending = 1;
         }
-        else if ( vector == X86_EXC_NM )
-        {
-            if ( v->fpu_dirtied )
-                nvcpu->nv_vmexit_pending = 1;
-        }
         else if ( (intr_info & valid_mask) == valid_mask )
         {
             exec_bitmap = get_vvmcs(v, EXCEPTION_BITMAP);
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
index 879ec10cefd0..88bded5190c9 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
@@ -149,8 +149,6 @@ struct vmx_vcpu {
     DECLARE_BITMAP(eoi_exit_bitmap, X86_IDT_VECTORS);
     struct pi_desc       pi_desc;
 
-    unsigned long        host_cr0;
-
     /* Do we need to tolerate a spurious EPT_MISCONFIG VM exit? */
     bool                 ept_spurious_misconfig;
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 18:20:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 18:20:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261251.1554353 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w56MH-0005G4-Gj; Tue, 24 Mar 2026 18:20:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261251.1554353; Tue, 24 Mar 2026 18:20:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w56MH-0005FT-DO; Tue, 24 Mar 2026 18:20:05 +0000
Received: by outflank-mailman (input) for mailman id 1261251;
 Tue, 24 Mar 2026 18:20:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1w56MF-0004y4-Vn
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 18:20:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w56MF-00FIpx-Bp
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 19:20:03 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c2d5b0-2eae-0a2a0a5409dd-0a2a4507818a-30
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 19:20:03 +0100
Received: from [52.101.57.44]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c2d5d1-fd74-0a2a45070019-3465392cb817-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 19:20:02 +0100
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by CH4PR03MB7771.namprd03.prod.outlook.com (2603:10b6:610:237::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Tue, 24 Mar
 2026 18:20:00 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%5]) with mapi id 15.20.9745.019; Tue, 24 Mar 2026
 18:19:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=puZWUU2MDoSheW/KpCTsqQQjF6r99zS+7B4K+NFaIBnT4RPaOhsSo6o4WmfHfWZDU3tX9KHWVlh40vBSHAX7G3FHCiUA+ctFnqrVxG65Y+MYBm7sNtx0uFq5B7pNVUgshBm3heawtRzNE8q+T1De9ft16a0dbEtj3bUuS0LBxG5xw6EJLCB+OUfpzrR4YdAcLL76OzcwBgDKp6KRZq+CJTxkdjZFzVYEM7Sg2a3lbus+ipLYLlMrGyCFm166o2HYPfHReeuVbFgYY4SJGSvBW91orbNxDbqBVmGbsxG2DkDmm6WbMuvb0YGtXFUu7EwHfBsDrAZLUkN16MA56EDeZA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lAZdBNMrrBRBDiGfwjpi8MoTXE7T10SPeC1xSqxiPIk=;
 b=XWBTkAY1jcxwC+tc0JPNC3Fgdvl6iaa1NSDYZLCLRTDhGDOmHBCeR2ZUfQHWTjj5uGukIm4uyPxw2GXtxQnpSmTnPmSBfdMb+yiIyAf6aoAuYsymS1/RTRGXApxCVFsqrZB8km0Tm4hJUVldSo+ZU6XQ28kzCqxhWe/7HA4HCOxcBhrB3YJ8oK4LNMvb5k1pxTuVh+YHD2TtHlUTs2nw9iRpBcHRouOb/YngdqE0SKhhtyhjAw1Tc2TBHcNknIHX1Hu0J+ULHLjsBtgbggc1SBxUYSXl9fobxQXIqysqbQ0Aq2vDy7ft8gcq8dTAX3CWboEFRbqQ5ClvFoHa+k08Qg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lAZdBNMrrBRBDiGfwjpi8MoTXE7T10SPeC1xSqxiPIk=;
 b=k3EvrkDtf2bKyPOxIkZmpd9SA0Fildamyhxn42L8qqSWdxK4zrln+DyuM3Ja3Ges685AA3ScJnmer5QsICAKz1/XDfWsfQCtZeSKv0Vk8uHki4fGZ2InS1/Bj8XP/3O7EuNr9XCoz9JFmAFKeNhuSFqH2MPMMS6j+3lLE9Tw/JU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: 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>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH v2 4/9] x86/svm: Remove lazy FPU support
Date: Tue, 24 Mar 2026 18:19:32 +0000
Message-ID: <20260324181937.2465574-5-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
References: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: AS4P195CA0037.EURP195.PROD.OUTLOOK.COM
 (2603:10a6:20b:65a::26) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|CH4PR03MB7771:EE_
X-MS-Office365-Filtering-Correlation-Id: 8a32f7a4-2303-4ac3-34ee-08de89d1f595
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	dbgTbAzYYFhiJhZFTv7qoMFG6pXWo47Vb/YZpLFq4DsgQwKFoI1/KxR3VQ+fet4lPbMkoVrJ+5sadXd7XKzQvhfbdsonV6apDbJ9LnRDZVF+68gyYOYQQg1a1DFOrbH711YZAp5I9Pv2d0gwD9C6LTvP+6YGhdNmn8GIeqPBw/o5ZF3rGenjGRqdlhA0Ukanz8DDUFnpztYCFZFgkGzr9qcP9IQZqgD1SnUU/OhlqZVldO5XTaYIu1uvLfmB6PXeLTXg7ptMG3RROwmxnEWvPlHZImLYpyXtyZB4+TbQ4s0R798TvjHLqV6y11x6fMV690tRMGCoIiYRczAO0HSRJ7dE6axDjfeW/uhSkb/ac5ldXobiXEu0lH4Kus4EEDmQaq9y8YJRQFR4+WMaGdrtCoFeriEJWgcv54eWTNQsfsip5N/aWPHp1Bk9rDUMTEebD1qkRYcsd6zeD2gxp8rbvyBRDh+zWXKL9h3kdrz1/9AnyTf5FJISRBeGYzBqWFCnqqvSnajpj2gzRPrRMcAwXhvY/CPmGWR6UID55ESBZnh8NzL+YI9avcc51pDR04oVOv1ij3WtNz4ySvrqFeeJRCYaTlt2GP5hghUljeMEHVLVKU1YxNyYHPuhahJahSmGeVX+0laaPFSiB8zcrrNBOcHSvru4GWNF3lwaIU+OD66/s9R+NOVN6WHi7H2nFX8Vc+99e5/py3mpptsOdgOAxRQxhhMj6fXWKjIOQRGcjEc=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?f/03EbPy11gXcP/MI/O/teh0Qb0NWB0STXvnXSk6wF7D8BxuUWAx92NcfT+7?=
 =?us-ascii?Q?8FwYIbHeUKzTkSbftrRTmvutQ+xkEAeSDKT+Qe5ZwARxujmdco0NrbkRmPAo?=
 =?us-ascii?Q?h1ZOU4+kae8J1cFVBZWgwRowxdNehBIeSSR/k/gCqV4oE5GykIZvOP5625PL?=
 =?us-ascii?Q?t7m1sIyBw8Gso1yfJF/LU6QsCmczen6qm1y2zJGGVobhnZi6KPZwKcuTOQxF?=
 =?us-ascii?Q?C2eAqo9Z8yQNO0xBfEl2fHfKL8BPtFL2VNiJDLsLtbEIYCvxzLrRca0oPLz9?=
 =?us-ascii?Q?IWoLCI6QaDv4Ug15F3bYE+nwkLZU463RxMhxcLqEdwSmYkkzaFq/jDlU6RFW?=
 =?us-ascii?Q?VolB25ws8RmyCg6CzBOe3uk4TccWtxzbcfQm7XIXwlzWQbDCQ0nr+xnOdZam?=
 =?us-ascii?Q?IQB3ecsB9qXWjg6pD4uOlTs748c0kCfIkaJR+Mq8lmZx5ZAY4OujZWbHM0Xn?=
 =?us-ascii?Q?JS4ljhnzd/1cMjUYJvMhqWTOroTsXgpZtTD9xEgWSz02fi4+NV+j47vq5L2z?=
 =?us-ascii?Q?dWucfRBXMLDehIocaFBVykAPPkDUeMbmLvuPtcGxdldyZEpHrUUOzdx9lUul?=
 =?us-ascii?Q?CPaSnViu1k/tpOgGtqyeByw8n45d2tvj1rLVQ8BB5F9mvluCn6fBs+flmbOq?=
 =?us-ascii?Q?1KBVNTeB4n+gGJxApL7XXwrgcecqk0SovRPxJ+waSx/cePyWa9vIdTB7gwwt?=
 =?us-ascii?Q?CMh+JBql6c2PvUhGNzcYbEHkScfhTKtdQn4Kk8P208VRTOorML0m4bmkZ2R9?=
 =?us-ascii?Q?PBsm0DOPBN47AVYpZK7TmSKYg3PNiBUyi15uZ8n+kr8r4L/pquFoPkiCFvnJ?=
 =?us-ascii?Q?rvx/tMul6jdjGxPAsYAQAhXfux4BB/IwUBbqbm5irEfXQELWQrdhx0vNieIh?=
 =?us-ascii?Q?nZpP9HXosUw6rA9DGytH21mMMi/HI/gjV7EkhGdADmBhv/1XZ/0pj1OMKHSP?=
 =?us-ascii?Q?QRm5Rf1bXGLHN2Eq0d2ST6daZajhPlWLBB4oxC9etf+5x9iUk8QO336FAEdO?=
 =?us-ascii?Q?TeN8DQYMX63zm484v6IAFLYNhuUKJkJovf8vlOSoboQ/fYENn+uij4IobOxy?=
 =?us-ascii?Q?RaKq2inRoBcnypcAVwkE6ps/EwK90HWI9WrpUK/FnZREs6TFBwg259HXTTq+?=
 =?us-ascii?Q?iu1TD6VUudaNug8I9SPk4n/PpyWd/emCljT+ISml5PusIUNE8jIx2apYpq6j?=
 =?us-ascii?Q?JuXs8+x/ozWOXmhMkNqlMWgajOI9CQGrLB2Y+3Ar8CB/U8Y+Ne8b+kOG2FKu?=
 =?us-ascii?Q?XlJkONc+OP0k8x2kP+oh19WPE+GC+fuTpV+ijsI/EFGOnulV1VZp6vs7nSz2?=
 =?us-ascii?Q?Dl2i+R+RLGhp3L0I7fwSEpADccw+D4yuPVi+iziVuAvrMLMV7Vf3sz8cvRaV?=
 =?us-ascii?Q?8cwUkh4/T3FskhlFycWngDr0dgOWAlalkngHoN1OhTd3r07tFOJzDpHSvAqH?=
 =?us-ascii?Q?DiZabC2CiULpIHclMyo9px5eXi09ujMzUjaXbDaIIClqUiJFh3Okz2JHgPAg?=
 =?us-ascii?Q?5aNNP7C6a5xAFLQLunsdcQL+jywwnIMxZfwhetvehtWt/3fihQb/XSEW2NH6?=
 =?us-ascii?Q?MfNcWiOVQVkVMrFfLTcoxAlun30ZYWs4swZNNQlf4sjuGTepCk0DNpfurToO?=
 =?us-ascii?Q?ilKzZX+CK2bAdzKU0Q1BpNGu8T8m3Wodi+IDea6ZgLyxkTkFjVhhhXOzbo7U?=
 =?us-ascii?Q?suteX+l+xh4tdGwLEC1gNKuPwzyYVGJvyFZG1dwvrPCp4qt/XQ0jxzwU8dKm?=
 =?us-ascii?Q?Trw3oQJBR1QFtWJUX6IIIh4Sn/XGOCs=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8a32f7a4-2303-4ac3-34ee-08de89d1f595
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 18:19:59.6156
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 3MowXxwG4scbHrrL4TjdGLDd3ufRzwCtafyQOg6+7AZ30JysOJu3rAAo5FG0N9+fP221BRlwi2F66bMqkZciJ2o+FQQ2gkZxX5T7rpGrzwI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH4PR03MB7771
X-purgate-ID: tlsNG-ef75cf/1774376403-4FAA5303-0B8D85AC/0/0
X-purgate-type: clean
X-purgate-size: 11655

Remove lazy FPU support from the SVM code since fully_eager_fpu is now
always true.

No functional change intended.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
Unchanged in v2

 xen/arch/x86/hvm/svm/nestedsvm.c         | 67 +-------------------
 xen/arch/x86/hvm/svm/svm.c               | 81 +-----------------------
 xen/arch/x86/hvm/svm/vmcb.c              |  4 +-
 xen/arch/x86/include/asm/hvm/svm-types.h |  6 --
 4 files changed, 4 insertions(+), 154 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c
index a63ec613465f..ef6fa5d23b67 100644
--- a/xen/arch/x86/hvm/svm/nestedsvm.c
+++ b/xen/arch/x86/hvm/svm/nestedsvm.c
@@ -165,58 +165,6 @@ int cf_check nsvm_vcpu_reset(struct vcpu *v)
     return 0;
 }
 
-static uint64_t nestedsvm_fpu_vmentry(uint64_t n1cr0,
-    struct vmcb_struct *vvmcb,
-    struct vmcb_struct *n1vmcb, struct vmcb_struct *n2vmcb)
-{
-    uint64_t vcr0;
-
-    vcr0 = vvmcb->_cr0;
-    if ( !(n1cr0 & X86_CR0_TS) && (n1vmcb->_cr0 & X86_CR0_TS) )
-    {
-        /*
-         * svm_fpu_leave() run while l1 guest was running.
-         * Sync FPU state with l2 guest.
-         */
-        vcr0 |= X86_CR0_TS;
-        n2vmcb->_exception_intercepts |= (1U << X86_EXC_NM);
-    }
-    else if ( !(vcr0 & X86_CR0_TS) && (n2vmcb->_cr0 & X86_CR0_TS) )
-    {
-        /*
-         * svm_fpu_enter() run while l1 guest was running.
-         * Sync FPU state with l2 guest.
-         */
-        vcr0 &= ~X86_CR0_TS;
-        n2vmcb->_exception_intercepts &= ~(1U << X86_EXC_NM);
-    }
-
-    return vcr0;
-}
-
-static void nestedsvm_fpu_vmexit(struct vmcb_struct *n1vmcb,
-    struct vmcb_struct *n2vmcb, uint64_t n1cr0, uint64_t guest_cr0)
-{
-    if ( !(guest_cr0 & X86_CR0_TS) && (n2vmcb->_cr0 & X86_CR0_TS) )
-    {
-        /*
-         * svm_fpu_leave() run while l2 guest was running.
-         * Sync FPU state with l1 guest.
-         */
-        n1vmcb->_cr0 |= X86_CR0_TS;
-        n1vmcb->_exception_intercepts |= (1U << X86_EXC_NM);
-    }
-    else if ( !(n1cr0 & X86_CR0_TS) && (n1vmcb->_cr0 & X86_CR0_TS) )
-    {
-        /*
-         * svm_fpu_enter() run while l2 guest was running.
-         * Sync FPU state with l1 guest.
-         */
-        n1vmcb->_cr0 &= ~X86_CR0_TS;
-        n1vmcb->_exception_intercepts &= ~(1U << X86_EXC_NM);
-    }
-}
-
 static int nsvm_vcpu_hostsave(struct vcpu *v, unsigned int inst_len)
 {
     struct nestedsvm *svm = &vcpu_nestedsvm(v);
@@ -246,7 +194,6 @@ static int nsvm_vcpu_hostsave(struct vcpu *v, unsigned int inst_len)
 static int nsvm_vcpu_hostrestore(struct vcpu *v, struct cpu_user_regs *regs)
 {
     struct nestedvcpu *nv = &vcpu_nestedhvm(v);
-    struct nestedsvm *svm = &vcpu_nestedsvm(v);
     struct vmcb_struct *n1vmcb, *n2vmcb;
     int rc;
 
@@ -281,8 +228,6 @@ static int nsvm_vcpu_hostrestore(struct vcpu *v, struct cpu_user_regs *regs)
         gdprintk(XENLOG_ERR, "hvm_set_cr4 failed, rc: %u\n", rc);
 
     /* CR0 */
-    nestedsvm_fpu_vmexit(n1vmcb, n2vmcb,
-        svm->ns_cr0, v->arch.hvm.guest_cr[0]);
     v->arch.hvm.guest_cr[0] = n1vmcb->_cr0 | X86_CR0_PE;
     n1vmcb->rflags &= ~X86_EFLAGS_VM;
     rc = hvm_set_cr0(n1vmcb->_cr0 | X86_CR0_PE, true);
@@ -290,7 +235,6 @@ static int nsvm_vcpu_hostrestore(struct vcpu *v, struct cpu_user_regs *regs)
         hvm_inject_hw_exception(X86_EXC_GP, 0);
     if ( rc != X86EMUL_OKAY )
         gdprintk(XENLOG_ERR, "hvm_set_cr0 failed, rc: %u\n", rc);
-    svm->ns_cr0 = v->arch.hvm.guest_cr[0];
 
     /* CR2 */
     v->arch.hvm.guest_cr[2] = n1vmcb->_cr2;
@@ -418,7 +362,6 @@ static int nsvm_vmcb_prepare4vmrun(struct vcpu *v, struct cpu_user_regs *regs)
     struct vmcb_struct *ns_vmcb, *n1vmcb, *n2vmcb;
     vmcbcleanbits_t clean = {};
     int rc;
-    uint64_t cr0;
 
     ns_vmcb = nv->nv_vvmcx;
     n1vmcb = nv->nv_n1vmcx;
@@ -452,7 +395,6 @@ static int nsvm_vmcb_prepare4vmrun(struct vcpu *v, struct cpu_user_regs *regs)
      *   safed here.
      * The overhead comes from (ordered from highest to lowest):
      * - svm_ctxt_switch_to (CPU context switching)
-     * - svm_fpu_enter, svm_fpu_leave (lazy FPU switching)
      * - emulated CLGI (clears VINTR intercept)
      * - host clears VINTR intercept
      * Test results show that the overhead is high enough that the
@@ -551,10 +493,8 @@ static int nsvm_vmcb_prepare4vmrun(struct vcpu *v, struct cpu_user_regs *regs)
         gdprintk(XENLOG_ERR, "hvm_set_cr4 failed, rc: %u\n", rc);
 
     /* CR0 */
-    svm->ns_cr0 = v->arch.hvm.guest_cr[0];
-    cr0 = nestedsvm_fpu_vmentry(svm->ns_cr0, ns_vmcb, n1vmcb, n2vmcb);
     v->arch.hvm.guest_cr[0] = ns_vmcb->_cr0;
-    rc = hvm_set_cr0(cr0, true);
+    rc = hvm_set_cr0(ns_vmcb->_cr0, true);
     if ( rc == X86EMUL_EXCEPTION )
         hvm_inject_hw_exception(X86_EXC_GP, 0);
     if ( rc != X86EMUL_OKAY )
@@ -1305,11 +1245,6 @@ nestedsvm_check_intercepts(struct vcpu *v, struct cpu_user_regs *regs,
     case VMEXIT_INTR:
     case VMEXIT_NMI:
         return NESTEDHVM_VMEXIT_HOST;
-    case VMEXIT_EXCEPTION_NM:
-        /* Host must handle lazy fpu context switching first.
-         * Then inject the VMEXIT if L1 guest intercepts this.
-         */
-        return NESTEDHVM_VMEXIT_HOST;
 
     case VMEXIT_NPF:
         if ( nestedhvm_paging_mode_hap(v) )
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 243c41fb13a8..2546705d245c 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -104,38 +104,6 @@ static void cf_check svm_cpu_down(void)
     write_efer(read_efer() & ~EFER_SVME);
 }
 
-static void svm_fpu_enter(struct vcpu *v)
-{
-    struct vmcb_struct *n1vmcb = vcpu_nestedhvm(v).nv_n1vmcx;
-
-    vcpu_restore_fpu_lazy(v);
-    vmcb_set_exception_intercepts(
-        n1vmcb,
-        vmcb_get_exception_intercepts(n1vmcb) & ~(1U << X86_EXC_NM));
-}
-
-static void cf_check svm_fpu_leave(struct vcpu *v)
-{
-    struct vmcb_struct *n1vmcb = vcpu_nestedhvm(v).nv_n1vmcx;
-
-    ASSERT(!v->fpu_dirtied);
-    ASSERT(read_cr0() & X86_CR0_TS);
-
-    /*
-     * If the guest does not have TS enabled then we must cause and handle an
-     * exception on first use of the FPU. If the guest *does* have TS enabled
-     * then this is not necessary: no FPU activity can occur until the guest
-     * clears CR0.TS, and we will initialise the FPU when that happens.
-     */
-    if ( !(v->arch.hvm.guest_cr[0] & X86_CR0_TS) )
-    {
-        vmcb_set_exception_intercepts(
-            n1vmcb,
-            vmcb_get_exception_intercepts(n1vmcb) | (1U << X86_EXC_NM));
-        vmcb_set_cr0(n1vmcb, vmcb_get_cr0(n1vmcb) | X86_CR0_TS);
-    }
-}
-
 static void cf_check svm_update_guest_cr(
     struct vcpu *v, unsigned int cr, unsigned int flags)
 {
@@ -145,20 +113,6 @@ static void cf_check svm_update_guest_cr(
     switch ( cr )
     {
     case 0:
-    {
-        unsigned long hw_cr0_mask = 0;
-
-        if ( !(v->arch.hvm.guest_cr[0] & X86_CR0_TS) )
-        {
-            if ( v != current )
-            {
-                if ( !v->arch.fully_eager_fpu )
-                    hw_cr0_mask |= X86_CR0_TS;
-            }
-            else if ( vmcb_get_cr0(vmcb) & X86_CR0_TS )
-                svm_fpu_enter(v);
-        }
-
         if ( paging_mode_hap(v->domain) )
         {
             uint32_t intercepts = vmcb_get_cr_intercepts(vmcb);
@@ -169,12 +123,12 @@ static void cf_check svm_update_guest_cr(
                vmcb_set_cr_intercepts(vmcb, intercepts | CR_INTERCEPT_CR3_WRITE);
         }
 
-        value = v->arch.hvm.guest_cr[0] | hw_cr0_mask;
+        value = v->arch.hvm.guest_cr[0];
         if ( paging_mode_shadow(v->domain) )
             value |= X86_CR0_PG | X86_CR0_WP;
         vmcb_set_cr0(vmcb, value);
         break;
-    }
+
     case 2:
         vmcb_set_cr2(vmcb, v->arch.hvm.guest_cr[2]);
         break;
@@ -909,9 +863,6 @@ static void cf_check svm_ctxt_switch_from(struct vcpu *v)
     if ( unlikely((read_efer() & EFER_SVME) == 0) )
         return;
 
-    if ( !v->arch.fully_eager_fpu )
-        svm_fpu_leave(v);
-
     svm_save_dr(v);
     svm_tsc_ratio_save(v);
 
@@ -1678,28 +1629,6 @@ static void svm_do_nested_pgfault(struct vcpu *v,
     domain_crash(v->domain);
 }
 
-static void cf_check svm_fpu_dirty_intercept(void)
-{
-    struct vcpu *v = current;
-    struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
-    struct vmcb_struct *n1vmcb = vcpu_nestedhvm(v).nv_n1vmcx;
-
-    svm_fpu_enter(v);
-
-    if ( vmcb != n1vmcb )
-    {
-       /* Check if l1 guest must make FPU ready for the l2 guest */
-       if ( v->arch.hvm.guest_cr[0] & X86_CR0_TS )
-           hvm_inject_hw_exception(X86_EXC_NM, X86_EVENT_NO_EC);
-       else
-           vmcb_set_cr0(n1vmcb, vmcb_get_cr0(n1vmcb) & ~X86_CR0_TS);
-       return;
-    }
-
-    if ( !(v->arch.hvm.guest_cr[0] & X86_CR0_TS) )
-        vmcb_set_cr0(vmcb, vmcb_get_cr0(vmcb) & ~X86_CR0_TS);
-}
-
 static void svm_vmexit_do_cr_access(
     struct vmcb_struct *vmcb, struct cpu_user_regs *regs)
 {
@@ -2459,7 +2388,6 @@ static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
     .update_guest_cr      = svm_update_guest_cr,
     .update_guest_efer    = svm_update_guest_efer,
     .cpuid_policy_changed = svm_cpuid_policy_changed,
-    .fpu_leave            = svm_fpu_leave,
     .set_guest_pat        = svm_set_guest_pat,
     .get_guest_pat        = svm_get_guest_pat,
     .set_tsc_offset       = svm_set_tsc_offset,
@@ -2469,7 +2397,6 @@ static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
     .get_pending_event    = svm_get_pending_event,
     .invlpg               = svm_invlpg,
     .wbinvd_intercept     = svm_wbinvd_intercept,
-    .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
@@ -2783,10 +2710,6 @@ void asmlinkage svm_vmexit_handler(void)
         }
         break;
 
-    case VMEXIT_EXCEPTION_NM:
-        svm_fpu_dirty_intercept();
-        break;
-
     case VMEXIT_EXCEPTION_PF:
     {
         unsigned long va = vmcb->ei.exc.cr2;
diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index e583ef8548c7..5ed7123d9a69 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -138,9 +138,7 @@ static int construct_vmcb(struct vcpu *v)
 
     paging_update_paging_modes(v);
 
-    vmcb->_exception_intercepts =
-        HVM_TRAP_MASK |
-        (v->arch.fully_eager_fpu ? 0 : (1U << X86_EXC_NM));
+    vmcb->_exception_intercepts = HVM_TRAP_MASK;
 
     if ( paging_mode_hap(v->domain) )
     {
diff --git a/xen/arch/x86/include/asm/hvm/svm-types.h b/xen/arch/x86/include/asm/hvm/svm-types.h
index 051b235d8f69..3ede62cade80 100644
--- a/xen/arch/x86/include/asm/hvm/svm-types.h
+++ b/xen/arch/x86/include/asm/hvm/svm-types.h
@@ -65,12 +65,6 @@ struct nestedsvm {
     /* Shadow io permission map */
     unsigned long *ns_iomap;
 
-     /*
-      * Cached guest_cr[0] of l1 guest while l2 guest runs.  Needed to handle
-      * FPU context switching.
-      */
-    uint64_t ns_cr0;
-
     /*
      * Cache guest cr3/host cr3 the guest sets up for the l2 guest.
      * Used by Shadow-on-Shadow and Nested-on-Nested.
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 18:20:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 18:20:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261252.1554362 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w56MJ-0005pB-Qb; Tue, 24 Mar 2026 18:20:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261252.1554362; Tue, 24 Mar 2026 18:20: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 1w56MJ-0005oo-Lf; Tue, 24 Mar 2026 18:20:07 +0000
Received: by outflank-mailman (input) for mailman id 1261252;
 Tue, 24 Mar 2026 18:20:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1w56MJ-0005hb-4T
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 18:20:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w56MI-00FIpx-GR
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 19:20:06 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c2d5d4-2eae-0a2a0a5409dd-0a2a45019638-6
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 19:20:06 +0100
Received: from [52.101.52.43]
 (helo=BL2PR02CU003.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c2d5d5-6400-0a2a45010019-3465342b1f92-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 19:20:06 +0100
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by CH4PR03MB7771.namprd03.prod.outlook.com (2603:10b6:610:237::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Tue, 24 Mar
 2026 18:20:03 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%5]) with mapi id 15.20.9745.019; Tue, 24 Mar 2026
 18:20:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uAsBftCxGU3IJZFYF+v/eo6ygGeTCyObytcq8yJe1L4asFu4tvR25z3+b0vrB49KZkW6JJg6zWrImsTYbvDEiXvMkXQ2hZ5Cw/DiB6pIjw7Jr/wRsbJ66/hbmtajoJzaMHNQOHwgEZHsXPoHHjSNPEOvxN2pXgvtoKdq4z6HGHZAzdHSTMMmDxNlyp1q4eQW2gDaW3AN3DySiFfp19iZGXcEiYotL+3BN6KyiQ2NHnO4kGnmsH6Pe4n2GtUSKt129sYVUEEvBCjdc6EJYtviYWQJVseY3S5REYu8jD2tO0TBVy64MkrzCo5XDMQ8xRcVRQZkOX2We5K7+T0yzqpVBg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ENHvXBDFYPK8S39Fvdlcd7u1cuBTdaLhm3Un5HN/3RA=;
 b=NtHKR8hesoAB+FxiLKsM7ot1wLXmzuIcbkoQG6OePfkJ5sGKD29Z6lSeJy1qkp5rJKOtol7nNrvdAi87TiNO780eFVHFZiILa47oHtNtbMH6JcfSw/Xht+SAwQ6arcCnxddSyoaGWqMiv/pBAiSVbagGyi+O7gtrsH2BgYAiT5KWq/RqkTRVUr7TS1d7JDiBZ1srE2mTiyyvGiaC/emqckb4ltXld+XyTJmMYEhYOBTRzfKHMu3rbHuf4RhPr6g1e6gkwZV4rMQExbUT/Ue/JzDa/PoOtp8APfGv2OVBooPyyrtJsr4sYGFvwxCG5T7pn8oKRtBSYEJCuzEyWoyFmA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ENHvXBDFYPK8S39Fvdlcd7u1cuBTdaLhm3Un5HN/3RA=;
 b=aPzWhPX5/5Ar7naE08Zh5TAKZM76Oc6RlO0URCR1fAjAWD/Fr10BoGsVYVtgdCVWuJvyrSdZxbA1uNI6SPYMQz4qklk/9nr42W5w/DpGTNDF5aRxSar/+pg/xjTlBkOvfNC6+QHT/zgBOzi4uRE5R/2kLAeoSarBK80gCHudnJw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH v2 5/9] x86/traps: Remove lazy FPU support
Date: Tue, 24 Mar 2026 18:19:33 +0000
Message-ID: <20260324181937.2465574-6-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
References: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: AS4P195CA0032.EURP195.PROD.OUTLOOK.COM
 (2603:10a6:20b:65a::6) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|CH4PR03MB7771:EE_
X-MS-Office365-Filtering-Correlation-Id: 2135e678-27e3-43d6-9137-08de89d1f7c4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	3IL4VuXg8wEiicp5EaCgVBrIY/3DBIsjpw7d+WQy3YKRy41BRGeavaO36dHPWpt862ensZUNzanG9vef51iUuoNU/Cvde+7rSCC3nOztFu7y4c4e4JvtXvlF/maYrHBS7BDOBZCtaCc6+rnm2FMMu/urhjELn2Ijha/3jGLt+4mFZOU9yKIW9b/zTQjF+p2PyOMVJRmrd48HFpGD4NNZTINgzoEqJbCAMRqPTHA/sZR+BeGo41iePmy7hdqYcfs1p8K+rut0lfSV6ZkImycnzR03gVmdYRTMyNOpUcl3Vko7AHgCZTteq7y8bHhbE0I6+yfQ+VCGJ2Tjswv/vcXw0VdAf3opY57r/1zC19ihJFHMQR3rJSLfS34YHLa9xpa96feeUTPbZ40wRNhECppO6cgE1WN2ylj68q3iTtuP6HYEDz7aDAzN1TqA5OWvsR4BcQawHtHe4h4TvK6TzhoQYZ+TrNld7YSfpqiewuT7kSzbI79H/9tHFtIPO5lBlErE/WRlHI3Vb2A+70RN41qm+2ZY+BPyPx19elZXhyt9mhP2lltduo+irwhUq1B9rP1m+v1ji+8eCIp3Kcqa2oHIeSxUf0zndKeDFwZfk2Ff7tGcmccsLKEnVuiNwlLOxwf7NLbuTAqESO/g+DIfN1r2sM4u5NQx5M4fRNHnEKCYE1/rZdrps5oYEl29tu7mZuv2iicE7vHQIIis3XjY/p/yfOlfQ3kKEqiAUn9Orr+LfdY=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?XE8R+WfqR2KA/XD4I2aII+6ZPi8cE6wTxdrcsuIXXf0zDNkFNGzikx1KbNxj?=
 =?us-ascii?Q?Of5sd9XPcA5qP0Ya0fbjey6WTMYAjJr9px57rKZE5qTybwQQ3kRcz1elr2o4?=
 =?us-ascii?Q?bH4aor6fH/mPkJGRJP3kJHZxXpKFydW7Ifc49AOKnNBIKYlZJRg5ZUmkob6l?=
 =?us-ascii?Q?lgTvx0zKuFJRP+BzAbsbXnTB46C3NSLjIP5QwSywI6LKh90p+Kx8omb0Ncuk?=
 =?us-ascii?Q?f/TFJM0S8JxpRE1MaXGUMc46WHvZuWJV2IKSFGSdQD4Tq/aw9/VKkKYMn6cg?=
 =?us-ascii?Q?qBZ6t8GQJHRYGR9Jcau+4m4dO2A+EGqLSkN4yypJCaIQ/DAuIVIGkLZ6eK46?=
 =?us-ascii?Q?EBNkKCX7EOsNjkr1n1aeZCIENk5600YzKnkc2za6rECykzslZKf4D8a/FBIV?=
 =?us-ascii?Q?g0XHyvvI1IIoIOpYyvnOanzj4Qjx+aBTVU/bGv8v9i+6z2bS/O6cGZ0kaHjY?=
 =?us-ascii?Q?zqCxfZaM3YQIfVQ9BUkvqqAp2XI/CmI11cUChoOsxBiGP0UgKWcbbIGug3So?=
 =?us-ascii?Q?Td//Fa5Y+iHtx2saUFI6Ow9+ni7vReCGccJVpHevT5IQt/vELGUZRa+/ry4G?=
 =?us-ascii?Q?yClXrK+u2f/J/eclGiDZnyullGfiISGUk+h3lzFPwvH5jd72b7R2cb8kephB?=
 =?us-ascii?Q?fETNdjH/rfXzlj5JZt7FQhgbFpScfXNdH7zR9eHSGHr8OX9W00QbzQbmtIEA?=
 =?us-ascii?Q?NpUghGw1/urQR2BySUBdG69DgPsGDPsK1rV7oQtSsYLbcBEqjDGUWDO8iJr0?=
 =?us-ascii?Q?rdjo8TvFw1430tSk205I9WVvFvIVTRUkQZQEDowy7U/3czxyLnSvYIjR9NrF?=
 =?us-ascii?Q?HrTsSa94GR+UDowtpJmyPJwZ6gDzLCjXR451v1Q/jcXbMHT9vX1lTnavncJ4?=
 =?us-ascii?Q?B2VC4ZPvXaj5vIg80luFEkDH/9LVOWLi4sRxkPVT/CmpdWrunj+Wl//CsBOA?=
 =?us-ascii?Q?h6tsHHoPyG/y83J6Bid4KjvlrUfEkidRuAqTErNpbKoTZDUA6XB/n2SUA6GL?=
 =?us-ascii?Q?tPlniS0EzcyurPY7SYWgSR/o7bxt+adE+ayT/8DHuhp8C+21dKeNpwhcxe6e?=
 =?us-ascii?Q?gex9XiEj0S1LlmaTo+7InE0XADm3UCSOjcfvy5TQVeaAibddsiGevumJrOcH?=
 =?us-ascii?Q?lNNfwbXVvADVTLrQxSUHncvdreE/SufUPm7LJsiU08BIEefAapacIid0VL9q?=
 =?us-ascii?Q?jZwHVvz3Moron/xPZpq7qpxprBlhWCy7g53y9o4ipn6qgHJrfNDT2iRST+6e?=
 =?us-ascii?Q?kxdOAOQnpEHVCwnVXxQuD1zopPGEZJGj+zEl03DAjV/R4gSDmcRSa5n1BFyk?=
 =?us-ascii?Q?nVYczOugdiD+F54ix57HoC6dTA8HSmK0l2bkPS5R5V1AwCLSDNPA85Tv8Ys5?=
 =?us-ascii?Q?n7d4/zfH8uROVBrZIQBmL2dhCsCur7d7HAWKinGb+w5MOtrNBeGZHs7gNdj6?=
 =?us-ascii?Q?4d0a0ltSwmFhk6tr+Tdhe5atn1LKNqeL5nyZUNn9PZ+NK0cnwpQdKsfbQC1w?=
 =?us-ascii?Q?x12BG7DdinkoJs5Jc+HoZTLbuPqWqcN9s1xTSPgHCNWl6XiOhKhaYJI58qma?=
 =?us-ascii?Q?LFiiwDTVoIgWswVV5UwxFv8DZAQLyGBlrScReuHm8NlRfkyH9Z+Dc0G88W+k?=
 =?us-ascii?Q?H0U64qBhMlwXlZoY+yKDz+Sa4QE332hP0DZd4s6LzLaxGwkimlS6UUMc4hS0?=
 =?us-ascii?Q?oslclTil+4iy+b80CL4Yrmj2B87tqSVSmqxUkUJFsfdCmX5Uv2NGPLfGnqo7?=
 =?us-ascii?Q?JwjKnsw58cWR7jputWAiNBlvPmsysHs=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2135e678-27e3-43d6-9137-08de89d1f7c4
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 18:20:03.2706
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 0UyYFVj9JmAhjM8tcteavuiZrGNhjgz9RABQpt3GL0kpa8LNBqhznM9YnGqRvZkrUy4+4ozWeJ5U+4aBAg//VaMcCFrb7VawMn3j5d2BBmU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH4PR03MB7771
X-purgate-ID: tlsNG-d62444/1774376406-8EEE2DF3-935198DF/0/0
X-purgate-type: clean
X-purgate-size: 3505

From: Wei Liu <wei.liu2@citrix.com>

Remove lazy FPU support from the #NM exception handler used by PV
guests since fully_eager_fpu is now always true.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
In v2:
* Tweaked the commit message
* Crash the guest rather than host if the guest register is in an
  unexpected state.
* Reword a comment
* Allow tail-call optimization

 xen/arch/x86/i387.c               | 24 ------------------------
 xen/arch/x86/include/asm/i387.h   |  1 -
 xen/arch/x86/pv/misc-hypercalls.c |  3 +--
 xen/arch/x86/traps.c              | 20 +++++++++++++-------
 4 files changed, 14 insertions(+), 34 deletions(-)

diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
index 954ba3b1799b..7da731865f73 100644
--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -234,30 +234,6 @@ void vcpu_restore_fpu_nonlazy(struct vcpu *v, bool need_stts)
         stts();
 }
 
-/* 
- * Restore FPU state when #NM is triggered.
- */
-void vcpu_restore_fpu_lazy(struct vcpu *v)
-{
-    ASSERT(!is_idle_vcpu(v));
-
-    /* Avoid recursion. */
-    clts();
-
-    if ( v->fpu_dirtied )
-        return;
-
-    ASSERT(!v->arch.fully_eager_fpu);
-
-    if ( cpu_has_xsave )
-        fpu_xrstor(v, XSTATE_LAZY);
-    else
-        fpu_fxrstor(v);
-
-    v->fpu_initialised = 1;
-    v->fpu_dirtied = 1;
-}
-
 /* 
  * On each context switch, save the necessary FPU info of VCPU being switch 
  * out. It dispatches saving operation based on CPU's capability.
diff --git a/xen/arch/x86/include/asm/i387.h b/xen/arch/x86/include/asm/i387.h
index 652d7ad2deb6..da0c7e945f95 100644
--- a/xen/arch/x86/include/asm/i387.h
+++ b/xen/arch/x86/include/asm/i387.h
@@ -28,7 +28,6 @@ struct ix87_env {
 };
 
 void vcpu_restore_fpu_nonlazy(struct vcpu *v, bool need_stts);
-void vcpu_restore_fpu_lazy(struct vcpu *v);
 void vcpu_save_fpu(struct vcpu *v);
 void save_fpu_enable(void);
 int vcpu_init_fpu(struct vcpu *v);
diff --git a/xen/arch/x86/pv/misc-hypercalls.c b/xen/arch/x86/pv/misc-hypercalls.c
index 7e915d86b724..34a0717540a9 100644
--- a/xen/arch/x86/pv/misc-hypercalls.c
+++ b/xen/arch/x86/pv/misc-hypercalls.c
@@ -42,8 +42,7 @@ long do_fpu_taskswitch(int set)
     else
     {
         v->arch.pv.ctrlreg[0] &= ~X86_CR0_TS;
-        if ( v->fpu_dirtied )
-            clts();
+        clts();
     }
 
     return 0;
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index b6b119769722..0565c576ecd6 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -2045,15 +2045,21 @@ void asmlinkage do_device_not_available(struct cpu_user_regs *regs)
     }
 
 #ifdef CONFIG_PV
-    vcpu_restore_fpu_lazy(curr);
-
-    if ( curr->arch.pv.ctrlreg[0] & X86_CR0_TS )
+    if ( !(curr->arch.pv.ctrlreg[0] & X86_CR0_TS) )
     {
-        pv_inject_hw_exception(X86_EXC_NM, X86_EVENT_NO_EC);
-        curr->arch.pv.ctrlreg[0] &= ~X86_CR0_TS;
+        ASSERT_UNREACHABLE();
+        domain_crash(curr->domain);
+        return;
     }
-    else
-        TRACE_TIME(TRC_PV_MATH_STATE_RESTORE);
+
+    /*
+     * For better or worse, Xen's ABI with PV guests always clears TS on an #NM
+     * exception. Classic-xen Linux depends on this.
+     */
+    clts();
+    curr->arch.pv.ctrlreg[0] &= ~X86_CR0_TS;
+
+    pv_inject_hw_exception(X86_EXC_NM, X86_EVENT_NO_EC);
 #else
     ASSERT_UNREACHABLE();
 #endif
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 18:20:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 18:20:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261257.1554371 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w56MO-0006Kf-5J; Tue, 24 Mar 2026 18:20:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261257.1554371; Tue, 24 Mar 2026 18:20: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 1w56MO-0006KP-06; Tue, 24 Mar 2026 18:20:12 +0000
Received: by outflank-mailman (input) for mailman id 1261257;
 Tue, 24 Mar 2026 18:20:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1w56MM-0006I1-Uk
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 18:20:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w56MM-00DbE3-Ae
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 19:20:10 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c2d5cc-e002-0a2a0a5209dd-0a2a450b9002-28
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 19:20:10 +0100
Received: from [52.101.57.18]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c2d5d9-ef63-0a2a450b0019-346539127a17-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 19:20:10 +0100
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by CH4PR03MB7771.namprd03.prod.outlook.com (2603:10b6:610:237::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Tue, 24 Mar
 2026 18:20:07 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%5]) with mapi id 15.20.9745.019; Tue, 24 Mar 2026
 18: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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BAZ6xyLBtsa7GULaAad4+dehTOVa4o90GKBDTqA7vGf9/G7TR+XMfTcCNeOgD6uYSMS8fS9cFlVOlygeBGF7U5lTWh93A/KAskaKiztqg53BzDatbPjyGsbaQfcQmI7YtuAUrx5O1JLdS6bq/yZbnpcdirLVkDpeuJ7RL8Fyy5GAGXQCgf/UhF8B9NkdptcxAI2WJ+WbR5x4du7jzytnLaIw2DMh4xH101cdiLMrtj0VsEtvZG2ONFz0r1Gqr9xyAsBibitcg59BZryKTuTbXf6OBkVnh5hOmvPJYo7wu1qQffPs+S5QNRh+xZiZGfVTgE4v2sT4RoipqGqwuEssXg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=X62vJSapLR1Eexll3f19ciTMiElOQaxc2nc9kog+l+E=;
 b=AdakxBCKaUiAr86EkSsF9pCLAMKnOv8fJFcKtUCSG1KMqIziGSaCRAG3RZSXZHMEW7oY27zFQVDoyUlLEQ8pr9NvIGhO476RglIWbWKb43dfmRl1kl0jsZ6zLhnZFljzPmxc8DGysF1VW2IqXg/rjngltRREq9y0LiTdRUz0eMeii5985PKN/bOdf3qK1xOUZYA+QpOo4pAQ0piypJAXPpSnXCHCiW9LMpMGRqucGLJ+A1HPbDyhIDYYYZVnOW7ca0CamgaeV17mYaLOFUbNc6e50Yh6tCdXGmXBVCgjrUlgibNDxYRsOuZ+WhgQDvV9qX+E3zszwznYW2RFwClaSw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=X62vJSapLR1Eexll3f19ciTMiElOQaxc2nc9kog+l+E=;
 b=onpaLGxjvTXxlrALxxITQaThYlST1TZ1uCPdqX8lLDFWnOIpJ3CDOSPrfLqE0127clcqpawVYM0hXi6XHpf0pQiJg2+iH8DYMt6PA9rgLB+sWQADGsI8hbj9IhgxFZwSsQHHKPp6MVyaoEPaZ2igoUsaroBOV5LUK9BQ5+fBHQY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: 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>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH v2 6/9] x86: Remove fully_eager_fpu
Date: Tue, 24 Mar 2026 18:19:34 +0000
Message-ID: <20260324181937.2465574-7-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
References: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0608.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:314::8) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|CH4PR03MB7771:EE_
X-MS-Office365-Filtering-Correlation-Id: fe078d2c-df9f-48a1-4fd6-08de89d1fa21
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	jz853MfTvqzXClK6gliJjELwZiNAKAQrK5pRwpxGOAgHR2nBBOnhtqP/f+pZunJawo/c9w3R7LA4xl9OTxMMf0cJoGuEXaF+8fN0LmgNHFPyIJwoJEiBBt11Ye/izt0Lk10W+wtiajS8IG3dV6E7htb5fVUVspLIccRO+W/oM0SaTVYYWFe6M14ru4QbPKv9ZBgyil7DjfUNcGMXbBB4EGL7mL+ybKMPtRQHy4hPfzX80DEp3/RaCEQ/awysCM2BHNT/MYgalq4xbnjFRFLue3VG5KDA7OSifvgXAAtslHvObHCHYxHqXsjHlUd1PcLdbkW/G8L6lSogOcSOog5ipqfO/3lr8xK7aCmb4K9vXBQSSjeBynehB2votrZ2f8b4IFHsmySq3x2aiQURYJmY1awMbLXatnkEpKpCsDfj2QPtvI1a/RyZMyTBeDR6zGCTyfdSunHEpBKDr86CCKiC/BwwgIQzSJmq57GQUg8Fi+hx1S4Ro95FvQkuN0EKk1MdMQfKBMURG7wO2Jq/e+s0q8qBQWFUhnzXrGXtmysVznhhjVca4qxoNjbyY33NXx9uHE3E0u5f6dXbBCc5/+7puWMHh4uFaHZyuDMmDESaA9jVQoQ1+z52OOxv7eguoueFS5W7V3A+g+Y01EADObDoWTqfo/AE3qTKDi1oZIhW8uoIXPP3Akxm0d3ecghpxruwFOAsUD40Fzgzm7B3VzxO6fRjzKT9mF1SzIpzpfpesvs=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?B4G9uSBITJrXzgbHDqCXg4QNTT6TFzOMy7pmp6dKs79XJ4Dmru3bcMBFZmvv?=
 =?us-ascii?Q?uTRJ+v3Z5O7Ud3NA0PzYBnrmng+UQkYI1hdzeMOMw/frANAjl+Ue6g7/RcVO?=
 =?us-ascii?Q?gZdpCCCR0oHus+IMGLvw1dcvNzoVwxEPwFz04LzWiuLlQx7FLbsljldU+1cy?=
 =?us-ascii?Q?WBJsMLXztJ+Qq1BqWqJP6qxCy0IkYFWiHFnBnpwq2FD+D7eT0mvD33HZsB40?=
 =?us-ascii?Q?ptmx/kksH1tJohOqOVrQ/AcUzVyrYzaOzYg3Y5NW3tEO3sZsHsIdslVIXROA?=
 =?us-ascii?Q?/rCb9B6hkTOk4OV9LaYNsDodDXdCStj5q4O/RFZ0bdFxlj/n4KGAFk15rWmc?=
 =?us-ascii?Q?tLW0Sx9CCeQnU+tig3+dkP+jiUrVTYi0ZjsVEhnJfAvYPbn1maef8dAXBBU+?=
 =?us-ascii?Q?ZcdR35SAPx3otbELDV/7oWq3JhZAIOoJhmgfjk6N6a9XCvMVWnTQUlv0qtYq?=
 =?us-ascii?Q?yO+gFZTripREWKvJSBfZqcDbSbsds0X1Ea5jAt3qRwjym0cMgFLLQFhdjJPu?=
 =?us-ascii?Q?FQP+Ik99kpNqtFp7nZD+QxaQXv37XR/jCslHzzdXKdVAqHfkYN0U8Xx5SlUj?=
 =?us-ascii?Q?OPS215Yh3g3duJbQUsyXWfV6bn8Z3DAkJumXaLLVQ1te1JMItkeWlg0W37w6?=
 =?us-ascii?Q?kaQW+bUemwjdolffCoAl50UiOi7n49z87syEjpwMKbZpYUu41H/XqGSs5bLG?=
 =?us-ascii?Q?ALdo9Z29D55bxCL02rLoAaawY33A8mqOjyf1hPc4Oh9i48xKhnxtH4RUbWUv?=
 =?us-ascii?Q?ckH75f1Y/rY+ZnxrjGwZRiUbdcMYWsUKcctVbXRta/t7hEAWJAfIu0ydqp5l?=
 =?us-ascii?Q?UsscBdbQVg36F8+sKf88djORPfAc/7vzxLWwCrFxb5dBlm0PtPiEtQKKwUk2?=
 =?us-ascii?Q?sRddI2YReN/aMzou0zUodq53IKx5scPb2TUOXhQ7tLmOkTQL6nHFM2YTJXDq?=
 =?us-ascii?Q?HppGxTVqhsQPnsvtTiupdVnrEtpu60tsN3W6Xhi+s4OEd9pL6GJwu5fY14v/?=
 =?us-ascii?Q?HXX4ZPouImzFbuVPTG4lNsA17JTEUz5VMkHbHfUFONmIm/8Fyf639Q8AIlpG?=
 =?us-ascii?Q?fCw6ZaGsWhg5YgwKCArs7/Sc3xnhNplZNa59bSL9Pg0xZTwghz6FuQgXm9zs?=
 =?us-ascii?Q?8JHXXGGnqObzCuAv70ZQF+UBuljpoEF6kwdWQLnevJCn17JdYp3PyaUaW5Ym?=
 =?us-ascii?Q?0pT3o9Lc8JkI01Yz+3z8Wlf+s2hPrvPsh/LAbLShrKO7JOgzQxB3sgS8YeZG?=
 =?us-ascii?Q?IXBNc9J3/Ac51r9+K1Txk3B9BibiWUXPoeSewSwN5nceezV4NiLyUxn1s2IY?=
 =?us-ascii?Q?hgmZnRBmq1TcQsxHrvST8jfr/umdbPjp/FlHMw0GXkpEPrj9iWsrugx8qMu0?=
 =?us-ascii?Q?6WmYsLSGFdNuT3lA/BeZGgiYGEVu8a1Hfz2ORdRbg+8BxE6uYOT6G0lZDpJG?=
 =?us-ascii?Q?xPN92nUHwMXDmTxqi1ok4oUr8aUeLp4sBd3mi/PCHhpYcbPH3JheWQu6yU+c?=
 =?us-ascii?Q?IzAmqxDuIfwRCghgExv9k9PCyTex/gTQygPBzSYv0WHMtkEf7ryKRirO/4Q0?=
 =?us-ascii?Q?JQMFnwdezXpHkUY/p+1JFVKWbVbWo7pvwCPC6Qx6xxRRtWYX1H8RZ0g2l+rn?=
 =?us-ascii?Q?KV6Fr7niMbpR8MWLfntmjQu+JGpNxheU23ooWGCRY4jZICMq9psAD4RWaByD?=
 =?us-ascii?Q?OhNMz+pYSpg1rKQkhZPzmZc3C7nFifPkyLtQGjHdWEQSDCI0kiOK5W8fsjRI?=
 =?us-ascii?Q?jn1eyzvKY+/3l/gy6IbQluCVNeac9yI=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fe078d2c-df9f-48a1-4fd6-08de89d1fa21
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 18:20:07.2370
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: bB4UN/1ibGW3lt+d2oLH3vQhPYtTMJCcDpQJHRVuypAFI5dXtuAcSPtl1Ct19kMPlHfzDbxOZnZtc5GWccAwRntFp3z4byf7+eq7RDTG7gU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH4PR03MB7771
X-purgate-ID: tlsNG-42698a/1774376410-98CBB112-7752B4DE/0/0
X-purgate-type: clean
X-purgate-size: 6103

Since fully_eager_fpu is always true, remove it and adjust the code
accordingly. At the same time, rename vcpu_restore_fpu_nonlazy since it
always does the full restore.

No functional change intended.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
Unchanged in v2

 xen/arch/x86/domain.c              |  2 +-
 xen/arch/x86/hvm/emulate.c         | 18 +--------------
 xen/arch/x86/i387.c                | 35 ++++++++----------------------
 xen/arch/x86/include/asm/domain.h  |  3 ---
 xen/arch/x86/include/asm/hvm/hvm.h |  2 --
 xen/arch/x86/include/asm/i387.h    |  2 +-
 xen/common/efi/runtime.c           |  2 +-
 7 files changed, 13 insertions(+), 51 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 82da1c5d7b38..a10cb87e0b58 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -2127,7 +2127,7 @@ static void __context_switch(void)
             if ( cpu_has_xsaves && is_hvm_vcpu(n) )
                 set_msr_xss(n->arch.msrs->xss.raw);
         }
-        vcpu_restore_fpu_nonlazy(n, false);
+        vcpu_restore_fpu(n);
         nd->arch.ctxt_switch->to(n);
     }
 
diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index 86b1f7535668..2daea084f15c 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -2630,23 +2630,7 @@ static void cf_check hvmemul_put_fpu(
     }
 
     if ( backout == X86EMUL_FPU_fpu )
-    {
-        /*
-         * To back out changes to the register file
-         * - in fully eager mode, restore original state immediately,
-         * - in lazy mode, simply adjust state such that upon next FPU insn
-         *   use by the guest we'll reload the state saved (or freshly loaded)
-         *   by hvmemul_get_fpu().
-         */
-        if ( curr->arch.fully_eager_fpu )
-            vcpu_restore_fpu_nonlazy(curr, false);
-        else
-        {
-            curr->fpu_dirtied = false;
-            stts();
-            alternative_vcall(hvm_funcs.fpu_leave, curr);
-        }
-    }
+        vcpu_restore_fpu(curr);
 }
 
 static int cf_check hvmemul_tlb_op(
diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
index 7da731865f73..88018397b1ad 100644
--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -194,12 +194,8 @@ static inline void fpu_fxsave(struct vcpu *v)
 /*       VCPU FPU Functions    */
 /*******************************/
 /* Restore FPU state whenever VCPU is schduled in. */
-void vcpu_restore_fpu_nonlazy(struct vcpu *v, bool need_stts)
+void vcpu_restore_fpu(struct vcpu *v)
 {
-    /* Restore nonlazy extended state (i.e. parts not tracked by CR0.TS). */
-    if ( !v->arch.fully_eager_fpu && !v->arch.nonlazy_xstate_used )
-        goto maybe_stts;
-
     ASSERT(!is_idle_vcpu(v));
 
     /* Avoid recursion */
@@ -210,27 +206,16 @@ void vcpu_restore_fpu_nonlazy(struct vcpu *v, bool need_stts)
      * above) we also need to restore full state, to prevent subsequently
      * saving state belonging to another vCPU.
      */
-    if ( v->arch.fully_eager_fpu || xstate_all(v) )
-    {
-        if ( cpu_has_xsave )
-            fpu_xrstor(v, XSTATE_ALL);
-        else
-            fpu_fxrstor(v);
-
-        v->fpu_initialised = 1;
-        v->fpu_dirtied = 1;
-
-        /* Xen doesn't need TS set, but the guest might. */
-        need_stts = is_pv_vcpu(v) && (v->arch.pv.ctrlreg[0] & X86_CR0_TS);
-    }
+    if ( cpu_has_xsave )
+        fpu_xrstor(v, XSTATE_ALL);
     else
-    {
-        fpu_xrstor(v, XSTATE_NONLAZY);
-        need_stts = true;
-    }
+        fpu_fxrstor(v);
 
- maybe_stts:
-    if ( need_stts )
+    v->fpu_initialised = 1;
+    v->fpu_dirtied = 1;
+
+    /* Xen doesn't need TS set, but the guest might. */
+    if ( is_pv_vcpu(v) && (v->arch.pv.ctrlreg[0] & X86_CR0_TS) )
         stts();
 }
 
@@ -273,8 +258,6 @@ void save_fpu_enable(void)
 /* Initialize FPU's context save area */
 int vcpu_init_fpu(struct vcpu *v)
 {
-    v->arch.fully_eager_fpu = true;
-
     return xstate_alloc_save_area(v);
 }
 
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index ad7f6adb2cb9..bd7b02085ef8 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -671,9 +671,6 @@ struct arch_vcpu
      * and thus should be saved/restored. */
     bool nonlazy_xstate_used;
 
-    /* Restore all FPU state (lazy and non-lazy state) on context switch? */
-    bool fully_eager_fpu;
-
     struct vmce vmce;
 
     struct paging_vcpu paging;
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index 7d9774df59fe..a9425c8cffe8 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -160,8 +160,6 @@ struct hvm_function_table {
 
     void (*cpuid_policy_changed)(struct vcpu *v);
 
-    void (*fpu_leave)(struct vcpu *v);
-
     int  (*get_guest_pat)(struct vcpu *v, uint64_t *gpat);
     int  (*set_guest_pat)(struct vcpu *v, uint64_t gpat);
 
diff --git a/xen/arch/x86/include/asm/i387.h b/xen/arch/x86/include/asm/i387.h
index da0c7e945f95..fe5e4419b6f4 100644
--- a/xen/arch/x86/include/asm/i387.h
+++ b/xen/arch/x86/include/asm/i387.h
@@ -27,7 +27,7 @@ struct ix87_env {
     uint16_t fds, _res6;
 };
 
-void vcpu_restore_fpu_nonlazy(struct vcpu *v, bool need_stts);
+void vcpu_restore_fpu(struct vcpu *v);
 void vcpu_save_fpu(struct vcpu *v);
 void save_fpu_enable(void);
 int vcpu_init_fpu(struct vcpu *v);
diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c
index ba27c62132d2..982e42e8f341 100644
--- a/xen/common/efi/runtime.c
+++ b/xen/common/efi/runtime.c
@@ -157,7 +157,7 @@ void efi_rs_leave(struct efi_rs_state *state)
     irq_exit();
     efi_rs_on_cpu = NR_CPUS;
     spin_unlock(&efi_rs_lock);
-    vcpu_restore_fpu_nonlazy(curr, true);
+    vcpu_restore_fpu(curr);
 }
 
 bool efi_rs_using_pgtables(void)
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 18:20:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 18:20:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261261.1554380 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w56MS-0006l7-AL; Tue, 24 Mar 2026 18:20:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261261.1554380; Tue, 24 Mar 2026 18:20:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w56MS-0006kw-7c; Tue, 24 Mar 2026 18:20:16 +0000
Received: by outflank-mailman (input) for mailman id 1261261;
 Tue, 24 Mar 2026 18:20:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1w56MR-0006ig-42
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 18:20:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w56MQ-0036ix-GH
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 19:20:14 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c2d5bc-5cb7-0a2a0a5109dd-0a2a45028430-44
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 19:20:14 +0100
Received: from [52.101.52.17]
 (helo=BL2PR02CU003.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c2d5dd-63bb-0a2a45020019-34653411f893-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 19:20:14 +0100
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by CH4PR03MB7771.namprd03.prod.outlook.com (2603:10b6:610:237::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Tue, 24 Mar
 2026 18:20:10 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%5]) with mapi id 15.20.9745.019; Tue, 24 Mar 2026
 18:20:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Dws1oPc0fp9HV4KuQfkhgRSebo/n9CMdck/KMh08CFV/yuki0cox8vkD+TeVDSkCU1SZnqhVE8iYfDTHcmpUzK02yY2Dwy35nEEcakpHV7DDoddWln87mbCjob9yQs3XcbOcIsAbDQGPrKZxdLNjOu4dlVMSQeKRkr9OHMGpeaa1Mjzh5sB4r1ma+VadUXXYovKqhdqMKrscY5O+IVC5JrsHIhrixDNeii9FK7S+Wk07wE+/ouHhZbU+/6rbUbh7Cf3Fi9wSjLfolpt7T58psgkZZgj01kmhDz1vXCRwxdI7/y+L89X2JuZbEvgZ/FdSYrfsC1vrNp8eLiU9hcR1EQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=P2Oz3L+9MTBYxFvArtvwKn+CTpeTC9fRDIzDj5AalzM=;
 b=JdPRbTqU7LAnHNhSofKWY19zImmBCM3v5+sx0DzT9OlU9fqsTCuYlx/GMLCxutCQJks0cGE8dYdH2XINkopb9oEYLaBznD2vvHXOmtYLlKrEYJrFGjSGUM0i3f0Lvr7ijx7z1EG4mui2dt1HMfbVRK7XZpmO1DKJn7Y5Idtw0DbllpxpxTrCMG/9Rd9DV09lXXSw+ax3XAhn2+gLOfRauycf28I0FNjBRMWbrUbQbBz5qejRs8zG0XTNBcjATAiQb8b2PHDqZ+2t59A2oSFr9pi2SOSKgzI6STOzAO0uCONQJEBQKjQ/NtoY2voqxn0BEnQXzSReXFoiQLyZif3stg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=P2Oz3L+9MTBYxFvArtvwKn+CTpeTC9fRDIzDj5AalzM=;
 b=Ev+FdWksRVDz5VRMUVPaG9Yv22d1YjSqoECckC/rwp07Lpmu9wXMnCruJjn5WCvxeKbvgzuLLyvJ8QZ4APzAxJrBD0lUVbpfcEOBVVsHshMQSFqrPmOsLtQ64QY1S2jbfJHFUbjqfL0zT0jl3wnaCIDVGUw1rfUpo5qs9gEF9+0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: 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>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH v2 7/9] x86: Remove fpu_initialised/fpu_dirty
Date: Tue, 24 Mar 2026 18:19:35 +0000
Message-ID: <20260324181937.2465574-8-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
References: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0613.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:314::19) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|CH4PR03MB7771:EE_
X-MS-Office365-Filtering-Correlation-Id: 818b5eb5-fe43-49dc-c237-08de89d1fc56
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	UWfE5iLWg+OzSEfwRTTCphaSn6pg588TqSZQPV7YzYHhEFLNR9Q7eIObDxp6AXCXoxo7T5PWqX4r7FARRKstyB31QZGiDkaCgPRFhbDBJyYbQWOyHrz9SpcerFCaq3Rc3RXQx10fL3wQVQE30ERmFfrtQW61V7fyeQpRzMvnLH6mkp27Ai4LxGYuFxwJFL+DGgtMKkbfYFemkDZ7fGt1Yskt0ZT4qVnuuDiM2iW4wkcsmi/pdMoeDCpWKuec5tnZPX2HC6w18uo9Sbg984tIBdP/l+Jck/qTgmX5MJ7Nz/8Wnq5vQiPk/P+uu031AuyNS3KQTwzWC563D5cAM+JvVpfhkhzNcFsDMVO+QxK9CujRoLEiVje45dvzg5KSsd+hxXkoi2ycbCTqestpCyuLUXBgAW1roOdzm0SGJsTbxiVKTcWJo6XkRhx1BkzwHoEbtvjukwn58Jad88v5suzajAyggmIfbrinxkLdfzUS8SwRin2OJPXI12jV2fO12pF8AfbhbR9ta8l57uvpGnXLMGyQZmetZYlTQLcQTqRjicHSt5uHoERmIj5cfgdxqB7BSGt+o3hIChp4eVlqZ//PmxkNCJXPbNxdC4PIKDhexvD6VjPNs6PurJHnCjmoKc3I6o8Q2QBiCCT/uXmaL55hHpbvsPnRVqeuC82mU07doDFYr5gAeddRABQBTsnVTCYAN5U3I6Yj+EtUhBj6liRU4gA0df/AnSgdcTB77DcOpLY=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?WaneD1Yo2n9Q9WODMKNGpHThukSleim59PyDVvp863tD9Fyd03HQQsJ+oBZx?=
 =?us-ascii?Q?AxPikyIycDCQFDRZ3vic8cu03fmk/PbPzwX8j+bKleRuL7wMzZCFlP66S+yE?=
 =?us-ascii?Q?y7Hfhyt6qevT+iRxUa+f0wmvPPbk+pR/ibfEhUS7rzS9kSeDjOtJY9zdifXg?=
 =?us-ascii?Q?QCyTc6x0xTjzswlLTjV6/3K2FxwIuFKutZul55G8ZjM6f7+9jDxOENYnqPHb?=
 =?us-ascii?Q?UDxdRJg0LhmU3c6MtGMLPs5A3LwFA6OfcRCg19ACsG1l5WvaJj3tciSyPxMo?=
 =?us-ascii?Q?JXbuNBH+CVFutDpAZr9pQwBUOIvbENJxuIRn5NwCMl2bRsXAnZ7mQ0GeXXFh?=
 =?us-ascii?Q?8ZIkDut13Z7TjdGzM89bAmszpXGwHc+KiSlPX6SAgjKi0Y9jGSvIMPusyeTH?=
 =?us-ascii?Q?FXUY+YcXd62ktAgALJXwAYMXBe4BkHlNNqoDhz5oCPaUVH8WoMqTctItNkZk?=
 =?us-ascii?Q?rM0TFWep1OMQ0GuyFAQa+sdjO8YFTGmKAUldu4hmVF6/d+tehEqefUvKXPeF?=
 =?us-ascii?Q?0S0wCTnkHL4KsEZKOlZqe99kpJgRxjycD6sgi9jh4wJ8iY17Ma4djZtzK+Tt?=
 =?us-ascii?Q?mrKT8v1KNV3coFoW+3aLBY1cRTqM9Vy/bnmXnAcMQhh6qMXY55MXCGjcFZhB?=
 =?us-ascii?Q?bpWDzA/lii67sN6hCGOZvIn5WXc9e+xDmjfgrn0YluqdzUCp3bBQoVHJiYjy?=
 =?us-ascii?Q?FV7oJ2xkvycBCfvYgC3tWcOZ+y/NJN6YyHLgLmYQuKSd1p0Q7yB9VEndjdDR?=
 =?us-ascii?Q?0khJt80pEGAxBZZbsKGyIR8If/LJG80BeBl5oLQw980BPFHGMRNDtP5eEqaf?=
 =?us-ascii?Q?Qkvrc4dUdvLCBk+M7vUnts3t4P/g66K/7cxdMA04QBnAIgeT4jp7K6PG5SAh?=
 =?us-ascii?Q?ZvOG8BvG2HZMUJzIEHkOeDqKholOMkleYwc2kuIlO4MJ+E4GIVpjCQtOqUyl?=
 =?us-ascii?Q?N9h567p4ktjrzZaYzBoQiOVM/7E0PscIVz5Dnl+Y5nB3plfMIHTNQIZHGApJ?=
 =?us-ascii?Q?r4BMBI/UyNAqoz3tVJQiFDMo/JdbB0TcErEriZ9g6gImH2zjwq1V2+YNFaw7?=
 =?us-ascii?Q?acanpo7/RXqtHtr9cqlwV5zqnSr/uBEbbuV1LcVpVTorB58HDYLgFIbUfHK+?=
 =?us-ascii?Q?n1+HxftaHcNNyGt6QNGT4tJG7a5S8BvipU0W5JD9tIWBhBzUnIqDG5+WlkT3?=
 =?us-ascii?Q?geExeuA59YjXg/dNWo3eZO9WVDh7TB2cQ7EAqRrPG8Cy4K6vN5V15J3IEdTQ?=
 =?us-ascii?Q?Dd0tYmAltXetzWMtxG1VQkw66l7ihtIatD1W4GqxqRKaUe5W1DrNlZJCvtfL?=
 =?us-ascii?Q?dMR7nBel7O+ga4smOwyVPd3WmgCy5sd78STp3wu+91BW58YAqjYosgIJj1YV?=
 =?us-ascii?Q?WdOaGrv4y+ZPgkwie/RhpQiIKglCodh6L92q9gSjnLQMQkJ0VZWrGEONovG3?=
 =?us-ascii?Q?XZjnf+2fYynejkPfeH/8xF6tQ1X24PUrVFu+khgmwYpwlwhlOQSygU2QnmUL?=
 =?us-ascii?Q?9f1/H629z7ImTjimekX67Q1x7KyZztAS0/DsnHk8IQlM6pT77XXLaOv4JywD?=
 =?us-ascii?Q?bxn81tR+hYDyQhQi+7p3MSheBdCZ0kXSeaqnEjlpZu4BXfsSrZGMradikBAD?=
 =?us-ascii?Q?SQAXhi7nh7G3Z5wDa55tH1O1sBh8VPOHdIkbWDlt+6ZqDStp1ZFvcogXAI92?=
 =?us-ascii?Q?sut5kRg94FnO5x5nVGBIlugbMMHsUYeCk9nJaRW78dk2BDN4JVbpJcxjQFIH?=
 =?us-ascii?Q?GpX1XD+gnBddsqr8lTl6WGdo8hRsLtg=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 818b5eb5-fe43-49dc-c237-08de89d1fc56
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 18:20:10.9007
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6qUHuG35tMD31mn9vGchnAHyt5rUXSF7cztto5TPo/4NRANQIJgf8uSC3gEqd0Uw3sV0D9c6m9vFg4CB916sn4qhrZe1YjCfqIMeY7NmxV0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH4PR03MB7771
X-purgate-ID: tlsNG-720697/1774376414-BF081DB8-44DAEF67/0/0
X-purgate-type: clean
X-purgate-size: 11721

With lazy FPU removed, fpu_initialised and fpu_dirty are always set to
true in vcpu_restore_fpu() so remove them and adjust the code
accordingly.

There is a small user-visible change here. After this commit, calling
XEN_DOMCTL_getvcpucontext immediately after vCPU creation would show the
FPU as initialized (with a clean state) whereas before it would show as
uninitialized.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
In v2: Noted behaviour change in commit message

 xen/arch/x86/domctl.c              |  3 +--
 xen/arch/x86/hvm/emulate.c         |  6 +-----
 xen/arch/x86/hvm/hvm.c             | 15 ++++++---------
 xen/arch/x86/hvm/vlapic.c          |  3 ---
 xen/arch/x86/i387.c                | 31 ++----------------------------
 xen/arch/x86/include/asm/hvm/hvm.h |  1 -
 xen/arch/x86/include/asm/xstate.h  | 11 -----------
 xen/arch/x86/xstate.c              | 21 +++++---------------
 xen/common/domain.c                |  2 --
 xen/include/xen/sched.h            |  4 ----
 10 files changed, 15 insertions(+), 82 deletions(-)

diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index 942f41c584d4..d9b08182ac1d 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -1409,8 +1409,7 @@ void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
         c(flags = v->arch.pv.vgc_flags & ~(VGCF_i387_valid|VGCF_in_kernel));
     else
         c(flags = 0);
-    if ( v->fpu_initialised )
-        c(flags |= VGCF_i387_valid);
+    c(flags |= VGCF_i387_valid);
     if ( !(v->pause_flags & VPF_down) )
         c(flags |= VGCF_online);
     if ( !compat )
diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index 2daea084f15c..48c7320360c7 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -2517,9 +2517,7 @@ static int cf_check hvmemul_get_fpu(
 {
     struct vcpu *curr = current;
 
-    if ( !curr->fpu_dirtied )
-        alternative_vcall(hvm_funcs.fpu_dirty_intercept);
-    else if ( type == X86EMUL_FPU_fpu )
+    if ( type == X86EMUL_FPU_fpu )
     {
         /* Has a fastpath for `current`, so there's no actual map */
         const struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(curr);
@@ -2537,8 +2535,6 @@ static int cf_check hvmemul_get_fpu(
          * masking of all exceptions by FNSTENV.)
          */
         save_fpu_enable();
-        curr->fpu_initialised = true;
-        curr->fpu_dirtied = true;
         if ( (fpu_ctxt->fcw & 0x3f) != 0x3f )
         {
             uint16_t fcw;
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 4d37a93c57a5..d4ba82845146 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -866,6 +866,7 @@ static int cf_check hvm_save_cpu_ctxt(struct vcpu *v, hvm_domain_context_t *h)
         .dr7 = v->arch.dr7,
         .msr_efer = v->arch.hvm.guest_efer,
     };
+    const struct xsave_struct *xsave_area;
 
     /*
      * We don't need to save state for a vcpu that is down; the restore
@@ -933,15 +934,11 @@ static int cf_check hvm_save_cpu_ctxt(struct vcpu *v, hvm_domain_context_t *h)
     ctxt.ldtr_base = seg.base;
     ctxt.ldtr_arbytes = seg.attr;
 
-    if ( v->fpu_initialised )
-    {
-        const struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(v);
-
-        BUILD_BUG_ON(sizeof(ctxt.fpu_regs) != sizeof(xsave_area->fpu_sse));
-        memcpy(ctxt.fpu_regs, &xsave_area->fpu_sse, sizeof(ctxt.fpu_regs));
-        VCPU_UNMAP_XSAVE_AREA(v, xsave_area);
-        ctxt.flags = XEN_X86_FPU_INITIALISED;
-    }
+    xsave_area = VCPU_MAP_XSAVE_AREA(v);
+    BUILD_BUG_ON(sizeof(ctxt.fpu_regs) != sizeof(xsave_area->fpu_sse));
+    memcpy(ctxt.fpu_regs, &xsave_area->fpu_sse, sizeof(ctxt.fpu_regs));
+    VCPU_UNMAP_XSAVE_AREA(v, xsave_area);
+    ctxt.flags = XEN_X86_FPU_INITIALISED;
 
     return hvm_save_entry(CPU, v->vcpu_id, h, &ctxt);
 }
diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
index 79697487ba90..885f5d304b2f 100644
--- a/xen/arch/x86/hvm/vlapic.c
+++ b/xen/arch/x86/hvm/vlapic.c
@@ -276,7 +276,6 @@ static void vlapic_init_sipi_one(struct vcpu *target, uint32_t icr)
     switch ( icr & APIC_DM_MASK )
     {
     case APIC_DM_INIT: {
-        bool fpu_initialised;
         int rc;
 
         /* No work on INIT de-assert for P4-type APIC. */
@@ -289,10 +288,8 @@ static void vlapic_init_sipi_one(struct vcpu *target, uint32_t icr)
         hvm_vcpu_down(target);
         domain_lock(target->domain);
         /* Reset necessary VCPU state. This does not include FPU state. */
-        fpu_initialised = target->fpu_initialised;
         rc = vcpu_reset(target);
         ASSERT(!rc);
-        target->fpu_initialised = fpu_initialised;
         vlapic_do_init(vcpu_vlapic(target));
         domain_unlock(target->domain);
         break;
diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
index 88018397b1ad..5e893a2aab94 100644
--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -110,22 +110,7 @@ static inline void fpu_fxrstor(struct vcpu *v)
 
 static inline uint64_t vcpu_xsave_mask(const struct vcpu *v)
 {
-    if ( v->fpu_dirtied )
-        return v->arch.nonlazy_xstate_used ? XSTATE_ALL : XSTATE_LAZY;
-
-    ASSERT(v->arch.nonlazy_xstate_used);
-
-    /*
-     * The offsets of components which live in the extended region of
-     * compact xsave area are not fixed. Xsave area may be overwritten
-     * when a xsave with v->fpu_dirtied set is followed by one with
-     * v->fpu_dirtied clear.
-     * In such case, if hypervisor uses compact xsave area and guest
-     * has ever used lazy states (checking xcr0_accum excluding
-     * XSTATE_FP_SSE), vcpu_xsave_mask will return XSTATE_ALL. Otherwise
-     * return XSTATE_NONLAZY.
-     */
-    return xstate_all(v) ? XSTATE_ALL : XSTATE_NONLAZY;
+    return v->arch.nonlazy_xstate_used ? XSTATE_ALL : XSTATE_LAZY;
 }
 
 /* Save x87 extended state */
@@ -201,19 +186,11 @@ void vcpu_restore_fpu(struct vcpu *v)
     /* Avoid recursion */
     clts();
 
-    /*
-     * When saving full state even with !v->fpu_dirtied (see vcpu_xsave_mask()
-     * above) we also need to restore full state, to prevent subsequently
-     * saving state belonging to another vCPU.
-     */
     if ( cpu_has_xsave )
         fpu_xrstor(v, XSTATE_ALL);
     else
         fpu_fxrstor(v);
 
-    v->fpu_initialised = 1;
-    v->fpu_dirtied = 1;
-
     /* Xen doesn't need TS set, but the guest might. */
     if ( is_pv_vcpu(v) && (v->arch.pv.ctrlreg[0] & X86_CR0_TS) )
         stts();
@@ -225,7 +202,7 @@ void vcpu_restore_fpu(struct vcpu *v)
  */
 static bool _vcpu_save_fpu(struct vcpu *v)
 {
-    if ( !v->fpu_dirtied && !v->arch.nonlazy_xstate_used )
+    if ( !v->arch.nonlazy_xstate_used )
         return false;
 
     ASSERT(!is_idle_vcpu(v));
@@ -238,8 +215,6 @@ static bool _vcpu_save_fpu(struct vcpu *v)
     else
         fpu_fxsave(v);
 
-    v->fpu_dirtied = 0;
-
     return true;
 }
 
@@ -265,7 +240,6 @@ void vcpu_reset_fpu(struct vcpu *v)
 {
     struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(v);
 
-    v->fpu_initialised = false;
     *xsave_area = (struct xsave_struct) {
         .xsave_hdr.xstate_bv = X86_XCR0_X87,
     };
@@ -282,7 +256,6 @@ void vcpu_setup_fpu(struct vcpu *v, const void *data)
 {
     struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(v);
 
-    v->fpu_initialised = true;
     *xsave_area = (struct xsave_struct) {
         .fpu_sse = *(const fpusse_t*)data,
         .xsave_hdr.xstate_bv = XSTATE_FP_SSE,
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index a9425c8cffe8..846b91ebefcc 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -184,7 +184,6 @@ struct hvm_function_table {
 
     /* Instruction intercepts: non-void return values are X86EMUL codes. */
     void (*wbinvd_intercept)(void);
-    void (*fpu_dirty_intercept)(void);
     int (*msr_read_intercept)(unsigned int msr, uint64_t *msr_content);
     int (*msr_write_intercept)(unsigned int msr, uint64_t msr_content);
     void (*handle_cd)(struct vcpu *v, unsigned long value);
diff --git a/xen/arch/x86/include/asm/xstate.h b/xen/arch/x86/include/asm/xstate.h
index e3b9745543d7..ca38c43ec1c3 100644
--- a/xen/arch/x86/include/asm/xstate.h
+++ b/xen/arch/x86/include/asm/xstate.h
@@ -132,17 +132,6 @@ xsave_area_compressed(const struct xsave_struct *xsave_area)
     return xsave_area->xsave_hdr.xcomp_bv & XSTATE_COMPACTION_ENABLED;
 }
 
-static inline bool xstate_all(const struct vcpu *v)
-{
-    /*
-     * XSTATE_FP_SSE may be excluded, because the offsets of XSTATE_FP_SSE
-     * (in the legacy region of xsave area) are fixed, so saving
-     * XSTATE_FP_SSE will not cause overwriting problem with XSAVES/XSAVEC.
-     */
-    return xsave_area_compressed(v->arch.xsave_area) &&
-           (v->arch.xcr0_accum & XSTATE_LAZY & ~XSTATE_FP_SSE);
-}
-
 /*
  * Fetch a pointer to a vCPU's XSAVE area
  *
diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
index e990abc9d18c..11d390cac985 100644
--- a/xen/arch/x86/xstate.c
+++ b/xen/arch/x86/xstate.c
@@ -994,28 +994,17 @@ int handle_xsetbv(u32 index, u64 new_bv)
     if ( new_bv & XSTATE_NONLAZY )
         curr->arch.nonlazy_xstate_used = 1;
 
-    mask &= curr->fpu_dirtied ? ~XSTATE_FP_SSE : XSTATE_NONLAZY;
+    mask &= ~XSTATE_FP_SSE;
     if ( mask )
     {
         unsigned long cr0 = read_cr0();
+        /* Has a fastpath for `current`, so there's no actual map */
+        struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(curr);
 
         clts();
-        if ( curr->fpu_dirtied )
-        {
-            /* Has a fastpath for `current`, so there's no actual map */
-            struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(curr);
 
-            asm ( "stmxcsr %0" : "=m" (xsave_area->fpu_sse.mxcsr) );
-            VCPU_UNMAP_XSAVE_AREA(curr, xsave_area);
-        }
-        else if ( xstate_all(curr) )
-        {
-            /* See the comment in i387.c:vcpu_restore_fpu_eager(). */
-            mask |= XSTATE_LAZY;
-            curr->fpu_initialised = 1;
-            curr->fpu_dirtied = 1;
-            cr0 &= ~X86_CR0_TS;
-        }
+        asm ( "stmxcsr %0" : "=m" (xsave_area->fpu_sse.mxcsr) );
+        VCPU_UNMAP_XSAVE_AREA(curr, xsave_area);
         xrstor(curr, mask);
         if ( cr0 & X86_CR0_TS )
             write_cr0(cr0);
diff --git a/xen/common/domain.c b/xen/common/domain.c
index ab910fcf9306..30cfea30459a 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1824,8 +1824,6 @@ int vcpu_reset(struct vcpu *v)
     clear_bit(v->vcpu_id, d->poll_mask);
     v->poll_evtchn = 0;
 
-    v->fpu_initialised = 0;
-    v->fpu_dirtied     = 0;
     v->is_initialised  = 0;
     if ( v->affinity_broken & VCPU_AFFINITY_OVERRIDE )
         vcpu_temporary_affinity(v, NR_CPUS, VCPU_AFFINITY_OVERRIDE);
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 40a35fc15c65..212c7d765c3e 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -212,10 +212,6 @@ struct vcpu
     struct guest_area runstate_guest_area;
     unsigned int     new_state;
 
-    /* Has the FPU been initialised? */
-    bool             fpu_initialised;
-    /* Has the FPU been used since it was last saved? */
-    bool             fpu_dirtied;
     /* Initialization completed for this VCPU? */
     bool             is_initialised;
     /* Currently running on a CPU? */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 18:20:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 18:20:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261268.1554389 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w56MW-0007CP-O5; Tue, 24 Mar 2026 18:20:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261268.1554389; Tue, 24 Mar 2026 18:20:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w56MW-0007CB-KY; Tue, 24 Mar 2026 18:20:20 +0000
Received: by outflank-mailman (input) for mailman id 1261268;
 Tue, 24 Mar 2026 18:20:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1w56MU-00077i-W6
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 18:20:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w56MU-00DbE3-Bg
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 19:20:18 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c2d5d4-e002-0a2a0a5209dd-0a2a450591ec-28
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 19:20:18 +0100
Received: from [40.107.201.47]
 (helo=CH4PR04CU002.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c2d5e1-5aeb-0a2a45050019-286bc92fd719-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 19:20:18 +0100
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by CH4PR03MB7771.namprd03.prod.outlook.com (2603:10b6:610:237::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Tue, 24 Mar
 2026 18:20:15 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%5]) with mapi id 15.20.9745.019; Tue, 24 Mar 2026
 18:20:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=k/WoQcFDNLDlIOhIQxswMBY0hmWly9RhYJrWa6lJNVlwHMT3Ksl2WZThfXUkujRGK4AnS2MKRrDXTMhRSVIcbr2oAXdF0koeADNhwDFa4RJMhsdmjRlwCTYAK+q+dS6Tk6klATQ4txzEM7oY6T0X+bkgPqg6p5ZON8m4vFxE/5otN2k4Ml3bx3pVTytqEkNsodBBBjpP2425NeFSgimqDB6h8eeecjIt1q6V+nBifZlC8NY9/LsWfsrWXXY0uEtVZrhkUTkKGaqObsP9xHpHNCLTzMM+1ZH9ZDGeUWcYV2BYnKRzrZKwM+tHT6OY1pB4sBwSvexaW+H7iqm5Ik3noA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IiBWs19smFfQj7jl5l/sB8BHje6+rBSArMs7K4Ftg74=;
 b=ES4HuuPRzI7nEM42ZEY2W0Kw/+tl0qqj6jwlKOKpGRGu9zTwMch4DZkuRj4dpMka5c/Me6Xtx94Ka0s6H9QmxYpMDT8NWN8bOSFivlq9UjXzqqLe9orN1bGbn/+f3h36dPqOOgoNhVIlTYNlRE99XpbYRBqgxF/D2IUQrZb88+Jq9YqkX93Z7JhAINT1PZl+4avkQwjCBYFkIljIsuZv3Va7XW5Ymq/fQpQH/491JaS9OZJSgoz2Kd3UiGc4w7ueBORbnhkm9DbW4fEACReI4V2gPVYsPrcMLfKSoSugYP0+CMsF/LxxyVUW/i3q5QhUG5cUw0P/bf3Z1iZfgx9oZA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IiBWs19smFfQj7jl5l/sB8BHje6+rBSArMs7K4Ftg74=;
 b=l1OBzMsiwt66qW8lL/GDGjlm+RfxjuNgeXTxQtdrdwAwjnJdCUwrAILJcKEPsbB2JNvwbi2tDNzm3vKIgxasRkn8hvqxNDYd5y4fzUOdYSs3MMqKtp4t9PpDmDekmj2OZrpvNjQFExeUvBQxc4qnvmOL5ep0QqHCjv/pZAKVgtU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH v2 8/9] x86/xstate: Stop tracking nonlazy xstate use
Date: Tue, 24 Mar 2026 18:19:36 +0000
Message-ID: <20260324181937.2465574-9-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
References: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0605.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:314::7) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|CH4PR03MB7771:EE_
X-MS-Office365-Filtering-Correlation-Id: 30775e5e-b4c7-4494-8da3-08de89d1ff16
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	FyNcE6wnPIzCufqH8Q+pni52f8TTa3J/Q0ODvzgPsrtOy8dZWhl1g1VA9zHqn+dN3rYINLcwBGK+xUSG//2GOxipkYvZdkMqwxrOM8hZG723bFMd1kup7Vj5G94B+BKwE2qFkI+qQ3Jig4RyTivoe7WvoX0Xmaqc9OO349zTB3B42GVVQrt7xAq4vQH7cPBH8vmFSZAgkmDtViOJGcMpxTLDiJvER9UA0AFKwcCMH+T2GPhudz21ez5zqZnA5zJDYo9Tzbs7XPGVIhPdN2DStPBRZp+BUuvkLLINXRWsioSKAvFZw7KfwH+qGr6dSRrKTn6NFsw/IdfVMsw/+YVx2cjH65xz4AocWdkkb8y0l/4tHS/a/M+CjUuAwcAu6jLVPP7r9rAyOTCIaa09WwkpeF43h3RrmOMQYP/hbZJaDFiET253ka9p9QSYRlxxRJwDxu/JDa/e4I9xQQm+dLBdEzozn8C8os8Jixis/7HlhueAobczEAYzIUVC1H/8IGvGqArKQewab5L2E6aHpN7BYC5Ub3Hbui58yrAdpe3avl0tVYC9bm9yqhfwi71IQ31wUJ1dQox0D2wgfmoSjd1C0IriAw0eBP2rUsM67Jg4jkN9EgkvZq/ar/91lRRfBOFX68HNiGA0DIkQhFSyzDXKKyZMjDm2COJxHBFrvB6fVGpDfGahT7HU1Ddv3iFI8QzfS3edGMhQHjdA4HfHVDyGhCcCKOwopYJHcP6LLfxgGmM=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?QiY5Q/CGdxN9CkMS/fGPnmPFj9AlZN8VBY2ia47Blh3A3qUeM5kKh9Clwjfl?=
 =?us-ascii?Q?+byCTXbGW5GDA1YvLPx/MjWg7EhHo4SjypKcmd0pptcPdZcRfV5uqNYOV0iS?=
 =?us-ascii?Q?3DDTW1H0ONpEmRKRgzLnK1cOUhBrKV7vvjW3xEW3RiF5+ALthaO5MIE8Ru2Y?=
 =?us-ascii?Q?ep76rU0hGnbfXlPSaIg5wAuf7bc24xVniPFyjFFXC5vUcif0QQNChkdGhTqr?=
 =?us-ascii?Q?A0L/pCXd5lZkq/NOHdPZN8OgYV53WU3FI/jYefscK3SGxpM/ASLPDdUkT62N?=
 =?us-ascii?Q?c9RP8KEhS1Skfx8snxTzpAqkGSROU2lm9KVh6l86EPZnQdTFJoR8cn2EtA4c?=
 =?us-ascii?Q?avVlak0eICjWRz/sBb6KGdzlGX5bScj66DKvHeo4IcPVRzhxtyz++/dUAGzT?=
 =?us-ascii?Q?BpPvPX1Hm6pZjWKShvdvla6duIxmB+U5mxLQ5WCNQSS+nhU9bIVusWCFZpok?=
 =?us-ascii?Q?pcoXUjlz7ZdYA9N5PT0chINSf6g3rh75r5d6iryywCidcWXvknGNBCeiloMN?=
 =?us-ascii?Q?zz/BLnbZDDvbE+1/9Cd5YcGy6SO591UtrBakXm4H2L9UANvxyDwYr3m9kV3n?=
 =?us-ascii?Q?lYJVhLnzPmX3x6a15f0VoMuJLDOEqFF1faTo8tk7qwc+lIC/b4bhBfUosqjr?=
 =?us-ascii?Q?mO1NTBdturLwUHTifycrbnvXY8CY4Y01uypq3EKhAKbd/8fixUJ4KsNdKSPG?=
 =?us-ascii?Q?aPhhkupXqESQZ7Xpww2GfTI6nIVz2eF8G4vJecVflQKReGvVaoyqJagRtzZG?=
 =?us-ascii?Q?qppGFCSFHfeQaySNob95qSUyrkmFaBuid8NGjqGqyy5Fc6GBEXXfBA8Q0b6f?=
 =?us-ascii?Q?72S+MObDM2kfFWgR0njA6cp/9Tcqudt2BeOxF4VNG87jc5seLoXX1FR/VuyM?=
 =?us-ascii?Q?YFxHHJp2WBCrCuTTIj0Ewp/Ma+xNION7SgscNesgBS6NuOL+3FDR3X6IaZBx?=
 =?us-ascii?Q?8lnk3+rsCxhjJ8k9zg5N6FdqiiiV9wposwGK3wfSOWl+MchoYG+Eh1A3flSO?=
 =?us-ascii?Q?ybRlLjd41jyXsXO89kvvaEaDjbAVSoHSBpCIChnbZJAVekIk3/ZvO02pORdC?=
 =?us-ascii?Q?bGAmpuobA8L6hTH6v1Xj/ZKtshz1BI7SkslzCPmowv51DMBilRoE557h8cll?=
 =?us-ascii?Q?T2/nzonaElbG0ORMLXqx9YTwlDQddduQOcGQ4pKhpDVV3kZV24qQaT72w3Fi?=
 =?us-ascii?Q?RT9fZzHhcBESBv2OBjh61eoZGBxjurj+7MOyFDcykwGc6cJJ3W7ue7lACCix?=
 =?us-ascii?Q?wD6ZFuuQQe+tr/ceQS44A9auonsfEklHuwxq5B8aIezQ/psIFZxkBHQB9VJn?=
 =?us-ascii?Q?DN1uYJ8VpMkRfj6XMNGleTTKdN9hfw42Psy+pHn4Bc8CiQz081R2fvS5eLFj?=
 =?us-ascii?Q?DPxJZO8okV8S7J+HrTroyGSrIHjLA41yk4ic775mdugSSHxsgtRX9FmYiGX+?=
 =?us-ascii?Q?+h90DbEkloMuQBZJzOMQ7oxMHRJNle4kePWYWKGyx5oOAFAfNM7dKC/jyRXp?=
 =?us-ascii?Q?jjc3y1BLbX7ZSPdcChLlZMH/kSsNgnw6CrpONGdL3wCAOxpQshoAaWb3uMeR?=
 =?us-ascii?Q?/N46pMfP3HM7cddHKgp/avQ5Y6g2ntrFlg5UUDQkTiCEGUgUwU58Wgnfx5JU?=
 =?us-ascii?Q?5ul4TqaKNLBp1WsGREBF+lHJaBXHf1Ndfduqk2za1qlNRJw3bkMkiFwXJ1Jw?=
 =?us-ascii?Q?iZ6sik+qlIBKg3OYz8oaCAxdFu3xZOGXJLraKKE1ugFJYsJ9t5QvARSPR/Ga?=
 =?us-ascii?Q?onhN73tChFAmK1J7h/KtmbpMR1jVp9c=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 30775e5e-b4c7-4494-8da3-08de89d1ff16
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 18:20:15.4615
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: SLxn13DSBBsldjgZ9V/8FlIaK5SEePyRnXrKmPrZz5HS9KYKvOzRsk3s+yqvXmobXoK+MBC3oC4ZBqWRBBZXj0LIjUeH39v63FIbSmjHhBU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH4PR03MB7771
X-purgate-ID: tlsNG-c201ff/1774376418-2368D488-17EFF41D/0/0
X-purgate-type: clean
X-purgate-size: 4855

With the removal of lazy FPU, the full state is always restored on context
switch so stop tracking whether nonlazy xstate is used.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
Unchanged in v2

 xen/arch/x86/domctl.c             |  1 -
 xen/arch/x86/hvm/hvm.c            |  1 -
 xen/arch/x86/i387.c               | 12 +-----------
 xen/arch/x86/include/asm/domain.h |  3 ---
 xen/arch/x86/include/asm/xstate.h |  6 ++----
 xen/arch/x86/xstate.c             |  3 ---
 6 files changed, 3 insertions(+), 23 deletions(-)

diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index d9b08182ac1d..a9fbb2d405b7 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -1013,7 +1013,6 @@ long arch_do_domctl(
 
                 v->arch.xcr0 = _xcr0;
                 v->arch.xcr0_accum = _xcr0_accum;
-                v->arch.nonlazy_xstate_used = _xcr0_accum & XSTATE_NONLAZY;
                 compress_xsave_states(v, _xsave_area,
                                       evc->size - PV_XSAVE_HDR_SIZE);
 
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index d4ba82845146..0e7b66d726ae 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -1383,7 +1383,6 @@ static int cf_check hvm_load_cpu_xsave_states(
 
     v->arch.xcr0 = ctxt->xcr0;
     v->arch.xcr0_accum = ctxt->xcr0_accum;
-    v->arch.nonlazy_xstate_used = ctxt->xcr0_accum & XSTATE_NONLAZY;
     compress_xsave_states(v, &ctxt->save_area,
                           size - offsetof(struct hvm_hw_cpu_xsave, save_area));
 
diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
index 5e893a2aab94..9acaaf4673df 100644
--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -108,25 +108,18 @@ static inline void fpu_fxrstor(struct vcpu *v)
 /*      FPU Save Functions     */
 /*******************************/
 
-static inline uint64_t vcpu_xsave_mask(const struct vcpu *v)
-{
-    return v->arch.nonlazy_xstate_used ? XSTATE_ALL : XSTATE_LAZY;
-}
-
 /* Save x87 extended state */
 static inline void fpu_xsave(struct vcpu *v)
 {
     bool ok;
-    uint64_t mask = vcpu_xsave_mask(v);
 
-    ASSERT(mask);
     /*
      * XCR0 normally represents what guest OS set. In case of Xen itself,
      * we set the accumulated feature mask before doing save/restore.
      */
     ok = set_xcr0(v->arch.xcr0_accum | XSTATE_FP_SSE);
     ASSERT(ok);
-    xsave(v, mask);
+    xsave(v, XSTATE_ALL);
     ok = set_xcr0(v->arch.xcr0 ?: XSTATE_FP_SSE);
     ASSERT(ok);
 }
@@ -202,9 +195,6 @@ void vcpu_restore_fpu(struct vcpu *v)
  */
 static bool _vcpu_save_fpu(struct vcpu *v)
 {
-    if ( !v->arch.nonlazy_xstate_used )
-        return false;
-
     ASSERT(!is_idle_vcpu(v));
 
     /* This can happen, if a paravirtualised guest OS has set its CR0.TS. */
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index bd7b02085ef8..385a6666dafa 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -667,9 +667,6 @@ struct arch_vcpu
      * it explicitly enables it via xcr0.
      */
     uint64_t xcr0_accum;
-    /* This variable determines whether nonlazy extended state has been used,
-     * and thus should be saved/restored. */
-    bool nonlazy_xstate_used;
 
     struct vmce vmce;
 
diff --git a/xen/arch/x86/include/asm/xstate.h b/xen/arch/x86/include/asm/xstate.h
index ca38c43ec1c3..c96d75e38b25 100644
--- a/xen/arch/x86/include/asm/xstate.h
+++ b/xen/arch/x86/include/asm/xstate.h
@@ -33,12 +33,10 @@ extern uint32_t mxcsr_mask;
 #define XSTATE_FP_SSE  (X86_XCR0_X87 | X86_XCR0_SSE)
 #define XCNTXT_MASK    (X86_XCR0_X87 | X86_XCR0_SSE | X86_XCR0_YMM | \
                         X86_XCR0_OPMASK | X86_XCR0_ZMM | X86_XCR0_HI_ZMM | \
-                        XSTATE_NONLAZY)
+                        X86_XCR0_BNDREGS | X86_XCR0_BNDCSR | X86_XCR0_PKRU | \
+                        X86_XCR0_TILE_CFG | X86_XCR0_TILE_DATA)
 
 #define XSTATE_ALL     (~(1ULL << 63))
-#define XSTATE_NONLAZY (X86_XCR0_BNDREGS | X86_XCR0_BNDCSR | X86_XCR0_PKRU | \
-                        X86_XCR0_TILE_CFG | X86_XCR0_TILE_DATA)
-#define XSTATE_LAZY    (XSTATE_ALL & ~XSTATE_NONLAZY)
 #define XSTATE_XSAVES_ONLY         0
 #define XSTATE_COMPACTION_ENABLED  (1ULL << 63)
 
diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
index 11d390cac985..658f372b8c51 100644
--- a/xen/arch/x86/xstate.c
+++ b/xen/arch/x86/xstate.c
@@ -991,9 +991,6 @@ int handle_xsetbv(u32 index, u64 new_bv)
     curr->arch.xcr0 = new_bv;
     curr->arch.xcr0_accum |= new_bv;
 
-    if ( new_bv & XSTATE_NONLAZY )
-        curr->arch.nonlazy_xstate_used = 1;
-
     mask &= ~XSTATE_FP_SSE;
     if ( mask )
     {
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 18:20:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 18:20:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261273.1554398 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w56MY-0007YJ-Vh; Tue, 24 Mar 2026 18:20:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261273.1554398; Tue, 24 Mar 2026 18: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 1w56MY-0007YB-SJ; Tue, 24 Mar 2026 18:20:22 +0000
Received: by outflank-mailman (input) for mailman id 1261273;
 Tue, 24 Mar 2026 18:20:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1w56MY-0007Ug-Bm
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 18:20:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w56MX-00DbE3-NJ
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 19:20:21 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c2d5d4-e002-0a2a0a5209dd-0a2a450591ec-32
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 19:20:21 +0100
Received: from [52.101.52.42]
 (helo=BL2PR02CU003.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c2d5e4-5aeb-0a2a45050019-3465342a35b3-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 19:20:21 +0100
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by CH4PR03MB7771.namprd03.prod.outlook.com (2603:10b6:610:237::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Tue, 24 Mar
 2026 18:20:19 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%5]) with mapi id 15.20.9745.019; Tue, 24 Mar 2026
 18: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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fvvfCX02Ojw0TXPBVp9tsQdSRIcpjxSU4rAsysY4B3Sl07kbx0otmZ3PfUXfEoQOXR/edLq25oodwX7c0nKlp9LszymSrb+qU5xeiPEGjM5960xB67qGd+g2eD38BN2Whz6gzLUm55ZOFsPoLyuS0aNa8BXN4YHU8Wgk7gBK9fXd3jADGVbVTCS8mYw5kzzJZJJj7hUwfZR7vbtTppUzltRsJ+pDKDOFQckMHljsR3QXvuM76A5mjOHGL0+sB49Bq5y9TUNDViC33I5WzNKCE3xqbV0My9Wvhse4kUIRd76kvdEXDOrpK9yu7K0aIYt7cztYl6WTpckpw0CW454b5A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uicoMoHs+Gl51hDkgrbL84Tv8MCml7k1ZtutNzfBkt0=;
 b=aSwUSocj+MIhWApdRnH3TM6Bw5dvhCdF2G6IjUry4L17rT7uMiFtBqMoGMv6gL6VIZ9uAGDLxZMcETrJ5ATWtFi4TFB9T9kHvAo/o9lpHcydVsw26xf3WhVfgqb8AOWkEP6AGDPRl5BD432RYM0d05YH3EADYOd0caNZrkS54TNVwmB5TCMw14bioVIbS7/bWVbJWWP0n63YuQZ2kb2ypsX6AFjIsJE90B0wgDKd/APcsR8YTESJzqHkYTcF8+sN9TNusTgPARG8sC7FcEaICNlRZMh+boU502+w2+X5yNLtn/tnmJP999pHmtRia2VN/wiSZeplDdJ80rJmwQWe5A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uicoMoHs+Gl51hDkgrbL84Tv8MCml7k1ZtutNzfBkt0=;
 b=yGpZ9vDOQCPcoGGX3QLSZd3Nj/OoYCMDmpJU8zwu+7qLPVbVqXr7fpECtDpsk9Fbbu5Q5TtBmOXr5YPl87TtZuzJlmhOHBPQE/b+49HdeB3aaKJyFGX+lCL1emJo1YdXzbeuGsmM5DqTv4J8QN0dNHBLUgNh3+4jHAR7QPaxejE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: 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>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH v2 9/9] x86: Cleanup cr0.TS flag handling
Date: Tue, 24 Mar 2026 18:19:37 +0000
Message-ID: <20260324181937.2465574-10-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
References: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO2P265CA0482.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:13a::7) To DS0PR03MB8272.namprd03.prod.outlook.com
 (2603:10b6:8:28f::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|CH4PR03MB7771:EE_
X-MS-Office365-Filtering-Correlation-Id: ffecc672-2818-43f7-6bf0-08de89d1fbe0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	/6l+hMQhzcsVvsMMqztYAgsQ1uw77qDwZ7Hh33cn7kyUfRzHj0L27SYTXCuG3yODVI1Q8nuE99LFcdvQ+fFB6bOTvjmHCRPce1ZVwmBcIIvLyTDYyBJZNB9YYkjm8zOW1Ri/jqch9wCOLiuBUEVWCd3QVXwSEcnBEv/7/NKQ4iqDr3ZqdhradziBEbAb2zkIxB5d75evmUWo/7K3g70ndFJ2MZSC+TRn3m5HbCDx0BesXyK494CMy4v1npw3YhddqEBfGYfsDhX7FQVOqfoco8/HyKiTFT4IB7ScjHNJ6UZBxLgvcTKFjjdy/Ma1R0KDleDQN/y5SL7SjvE/POLdgQVBGM1bcQjTGoCjN1H7EI0cOtD4RsUzhAyymonefsRnR+FYOGPRrR3KkWRUuUhU8DzhCcYH41JKzWUi/NnEJ4stt2GsZoANpOiDqqFhJ5jktptCQaI2Ckw6SdWLbetew+VF4M+AktrmzxR3YQrZwUHmfx1IEZMDWPoZbaB/sPVL1+XByQ8pZcScOslE3Ug/poKSBDXU6NHw8f54dpjYVasjynEvlZt3cOMQgY5RShGRczQeyhdb15hLT0lPwS6bSzDf/Gk2T1CPQHP6jLlXRT7wys10fPhtF2SUBwyQQDFFqvfTE+46mtir7i3BF1BO1fNgJ+kyxCJk878MIqqPaouzIjjg7GCGgqNSIPGjt2zK11G3RkU9pZc6faFJ+oLDgQQueZgVvnnvlmZl7OjWOWw=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?9AMemaz4RmmNbySDbeFfBATWC1vjznrpfjPW48At6aiOP0/tJxkjvugb/Iwe?=
 =?us-ascii?Q?56hPBL8sP25Ffsb9dQl89I0S54Gj4OlVC943yJJGXbfeFDlHjgqESkjRbfGv?=
 =?us-ascii?Q?BLZnY31dofdK9YiDMCi2YiOhU+6xRgQcgmXzgaJO9AN0tWn2pUJTdVCvFok/?=
 =?us-ascii?Q?gsm9MLvQmFtlxYpfoEGCccxqFR+Zw+78VGKHTDztGX5GhSAQJkliF7xXysM3?=
 =?us-ascii?Q?z8VbjLrylA43b1gHXS13VtIRJcIyZcqtZzhPC/fsc3O6AyECx3UODNhXb/rk?=
 =?us-ascii?Q?4O3d9vFIWRIjabp3gI68EHuBwAn3PFzNYLdflqvlpQoXE19E8ovHUwtPUV8Y?=
 =?us-ascii?Q?ab9yhbmTFOOQkyvdUa1Gpoys355M9Js4D5fU/AwhkQrMSk/u/U7gj8rBCBsi?=
 =?us-ascii?Q?jIJdAvmpeSy1lvFWJO0OuGz2GndRIcmHKUeyLf7OB3kcxAzFCOQufqbCiAtt?=
 =?us-ascii?Q?z/YnYkSWxJ7GUS0PykbjbYRy0Kt9PD7dowXsDdPq3q7D4jbsxkcTSWB1rgDR?=
 =?us-ascii?Q?QFitJuYETVbf9zrYYupyehivog+c6DQaQaShWXbPTO6N8VN368huDE82pMC7?=
 =?us-ascii?Q?PXYYK8gaZ5ekeI5K7dV8cE/VOZCEdVKCG2ZLYu1uRinUQaZ+9pZ15V0uW1Cr?=
 =?us-ascii?Q?NPGr6JqFGH86IOhXuqQz/rRzXz423HdEoaFfDjRoZaUhbwhSeC1RUfxEwA24?=
 =?us-ascii?Q?yicClYxJgG7KJC5XyjRe0+qWIa1WQ5+KECT3zBisty4rXgKjKMKU42UaijCW?=
 =?us-ascii?Q?vTlMEYy+k9PsVzCU4uqZ3sUYkcfLsnbo5CFGbY81/ekCPSt9EprDGFrldOVM?=
 =?us-ascii?Q?0JP/Pb/FdGyymB/btxKccyke9FdKKOqDqRiGSrk7bYw+baV4K+Qd8QeCuZAM?=
 =?us-ascii?Q?vsY2SysQIux4s5g3kvP1O9LrMhHXIlv6XRnNFkZYHu/j1ecNEKbY46SdTB3E?=
 =?us-ascii?Q?bVZjEmT5RVpM5Mkn1MMXa6r4/OHU4kL847FYO2pSAb/1O3UfFA7+cvVMs9sO?=
 =?us-ascii?Q?jatOuswRzbLV1ytaHbSVQjsR8b+ZTro4/FtE8hd3AMt1rupI+I7aXkTVMz+x?=
 =?us-ascii?Q?Jv6p50ajkhai8gZso/uwl372ac1SOBL3c9K4G4R0+M1nVBbY6eZy8s7HvgBN?=
 =?us-ascii?Q?a46Mv3IWC02KRavcz6cUDZzeGEdZVKP9ZdGaGR3XS5nAvaAKrdkf2/hRFzFv?=
 =?us-ascii?Q?BJIEP3sfsrM/GtruA1KWgmgWhXBK9mQ0J8Vpn2N/60uHFmSsexcXLI8nfe2i?=
 =?us-ascii?Q?Gs8NfbaGoIxiE3lFdzbSkIdnAaisNQUA2X87NWOzV77b2MEyqTyADHzb2hZ6?=
 =?us-ascii?Q?512eHZ/S+2A9NsHcwBp93DWLMQu2M9RrID2pgjso8QTvZIYVPwkmfM0HMz2k?=
 =?us-ascii?Q?9H9VPld1DTgBp2Z3x030yRuWp39MHxkOh2PQzr9RyMYxRCweyNwA482Ufiqr?=
 =?us-ascii?Q?8709j4RLjznOPvwLwVt3fSbLb3jaw/29B9bGaeWEspgU0rMWiQ88ATTwA5Po?=
 =?us-ascii?Q?8T7/IqsQ8h3yre0+ssmZPn1aTAqpoAXihK1HSKOcfI8uKzInrdQLRHYhSEfn?=
 =?us-ascii?Q?vsNDzS0f4v2/Ke6eX/OrvFyfr3T3GCEliVhs1Ir7Tbt8dHy9MaWoYnnwi1pG?=
 =?us-ascii?Q?lWIv7m4M02pHj8YyFmQmHzPtaztswVjMECgP18lFrR7So3K+iXwYGKp2IniA?=
 =?us-ascii?Q?GaTGvqe6vk54RDL4nz0DgZRBkftLjycFQXho6B/sNGzVegC9s3d3dQp5jCX6?=
 =?us-ascii?Q?61V99xA0r3EhqjHVu8GyqYvwxS1FOIM=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ffecc672-2818-43f7-6bf0-08de89d1fbe0
X-MS-Exchange-CrossTenant-AuthSource: DS0PR03MB8272.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 18:20:19.4613
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: eabTEZSijsvKce/IWG89zsPMQdR67WdKbsJHeNPmQY31xMIAlXT5bZpsDdw1ofnXzX7VYbkFkRseAoAXQSFTC4EoPcNnuXYUAITdPfqwHGU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH4PR03MB7771
X-purgate-ID: tlsNG-c201ff/1774376421-8215E488-4CF5DD21/0/0
X-purgate-type: clean
X-purgate-size: 5182

Setting/clearing the cr0.TS bit is serializing and setting the cr0.TS
bit in particular requires a write to CR0 which is implemented in
microcode and is very slow. Therefore and with lazy FPU removed, avoid
setting/clearing the cr0.TS flag on context switch except when
saving/restoring the FPU for a PV guest.

After this, Xen's context switch code and idle CPUs run with the TS bit
cleared. An unfortunate side effect of this is that any mistaken use of
XMM registers or extended state will not trap and will therefore be more
difficult to detect.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
In v2:
* Add more justification to the commit message.
* Always call clts() in vcpu_save_fpu().

 xen/arch/x86/cpu/common.c       |  3 ---
 xen/arch/x86/hvm/emulate.c      | 14 ++------------
 xen/arch/x86/i387.c             | 19 +------------------
 xen/arch/x86/include/asm/i387.h |  1 -
 xen/common/efi/runtime.c        |  2 +-
 5 files changed, 4 insertions(+), 35 deletions(-)

diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
index 5ac76897ae47..057592b7c870 100644
--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -887,9 +887,6 @@ void cpu_init(void)
 	/* Install correct page table. */
 	write_ptbase(current);
 
-	/* Ensure FPU gets initialised for each domain. */
-	stts();
-
 	/* Reset debug registers: */
 	write_debugreg(0, 0);
 	write_debugreg(1, 0);
diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index 48c7320360c7..f3aae158e9f8 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -2527,14 +2527,8 @@ static int cf_check hvmemul_get_fpu(
          * Latch current register state so that we can back out changes
          * if needed (namely when a memory write fails after register state
          * has already been updated).
-         * NB: We don't really need the "enable" part of the called function
-         * (->fpu_dirtied set implies CR0.TS clear), but the additional
-         * overhead should be low enough to not warrant introduction of yet
-         * another slightly different function. However, we need to undo the
-         * ->fpu_dirtied clearing the function does as well as the possible
-         * masking of all exceptions by FNSTENV.)
          */
-        save_fpu_enable();
+        vcpu_save_fpu(curr);
         if ( (fpu_ctxt->fcw & 0x3f) != 0x3f )
         {
             uint16_t fcw;
@@ -2572,12 +2566,8 @@ static void cf_check hvmemul_put_fpu(
          * Latch current register state so that we can replace FIP/FDP/FOP
          * (which have values resulting from our own invocation of the FPU
          * instruction during emulation).
-         * NB: See also the comment in hvmemul_get_fpu(); we don't need to
-         * set ->fpu_dirtied here as it is going to be cleared below, and
-         * we also don't need to reload FCW as we're forcing full state to
-         * be reloaded anyway.
          */
-        save_fpu_enable();
+        vcpu_save_fpu(curr);
 
         if ( boot_cpu_has(X86_FEATURE_FDP_EXCP_ONLY) &&
              !(fpu_ctxt->fsw & ~fpu_ctxt->fcw & 0x003f) )
diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
index 9acaaf4673df..c6796bc97b70 100644
--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -176,9 +176,6 @@ void vcpu_restore_fpu(struct vcpu *v)
 {
     ASSERT(!is_idle_vcpu(v));
 
-    /* Avoid recursion */
-    clts();
-
     if ( cpu_has_xsave )
         fpu_xrstor(v, XSTATE_ALL);
     else
@@ -193,7 +190,7 @@ void vcpu_restore_fpu(struct vcpu *v)
  * On each context switch, save the necessary FPU info of VCPU being switch 
  * out. It dispatches saving operation based on CPU's capability.
  */
-static bool _vcpu_save_fpu(struct vcpu *v)
+void vcpu_save_fpu(struct vcpu *v)
 {
     ASSERT(!is_idle_vcpu(v));
 
@@ -204,20 +201,6 @@ static bool _vcpu_save_fpu(struct vcpu *v)
         fpu_xsave(v);
     else
         fpu_fxsave(v);
-
-    return true;
-}
-
-void vcpu_save_fpu(struct vcpu *v)
-{
-    _vcpu_save_fpu(v);
-    stts();
-}
-
-void save_fpu_enable(void)
-{
-    if ( !_vcpu_save_fpu(current) )
-        clts();
 }
 
 /* Initialize FPU's context save area */
diff --git a/xen/arch/x86/include/asm/i387.h b/xen/arch/x86/include/asm/i387.h
index fe5e4419b6f4..0717005d31f0 100644
--- a/xen/arch/x86/include/asm/i387.h
+++ b/xen/arch/x86/include/asm/i387.h
@@ -29,7 +29,6 @@ struct ix87_env {
 
 void vcpu_restore_fpu(struct vcpu *v);
 void vcpu_save_fpu(struct vcpu *v);
-void save_fpu_enable(void);
 int vcpu_init_fpu(struct vcpu *v);
 void vcpu_destroy_fpu(struct vcpu *v);
 
diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c
index 982e42e8f341..0f1cc765ec5e 100644
--- a/xen/common/efi/runtime.c
+++ b/xen/common/efi/runtime.c
@@ -94,7 +94,7 @@ struct efi_rs_state efi_rs_enter(void)
         return state;
 
     state.cr3 = read_cr3();
-    save_fpu_enable();
+    vcpu_save_fpu(current);
     asm volatile ( "fnclex; fldcw %0" :: "m" (fcw) );
     asm volatile ( "ldmxcsr %0" :: "m" (mxcsr) );
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 19:45:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 19:45:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261361.1554407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w57gN-00031P-Vx; Tue, 24 Mar 2026 19:44:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261361.1554407; Tue, 24 Mar 2026 19:44: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 1w57gN-00031I-T0; Tue, 24 Mar 2026 19:44:55 +0000
Received: by outflank-mailman (input) for mailman id 1261361;
 Tue, 24 Mar 2026 19:44:54 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <broonie@kernel.org>) id 1w57gM-00031C-Rf
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 19:44:54 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w57gL-002Hgi-0t
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 20:44:53 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <broonie@kernel.org>)
 id 69c2e9a8-bab6-0a2a0a5309dd-0a2a450bbffe-18
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 20:44:52 +0100
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <broonie@kernel.org>)
 id 69c2e9b3-ef63-0a2a450b0019-ac6904fea0ea-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 20:44:52 +0100
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 2B3A3600AC;
 Tue, 24 Mar 2026 19:44:51 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id AF553C19424;
 Tue, 24 Mar 2026 19:44:42 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="From:To:Cc:In-Reply-To:References:Subject:Date"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774381490;
	bh=WRF/0A79XI/IfrPujL8sWiRG4jtPsIHG8/HKlYhxfwg=;
	h=From:To:Cc:In-Reply-To:References:Subject:Date:From;
	b=BI/PyKSYvjLJXWbEpQrc+czH+55hhTQfVKT55Uu1wKsITHQaRklHZhshTVjzHQFZN
	 XI99w4CrCK+yRfm2877TM5yV4pPdvKaG1DWbUoq9X2UMljaiVAeNppp3zNtFe6VQcR
	 Nbxio4BzKuKvbSdbHpiqyp9b0V4Wi4iBFmRLBu0AraFrnoul9PN3a4ntDRFnw+1WBV
	 6VOLh/84HoNWnxFvJA4p13awciT/KZz8A8WdIkArI2aCUbV0ZkSk5h4r/JYUTPRIIT
	 T8Jt8zQSnSc69wMDv4JXXRT2onYDSQlxz5UqGBDTvOp1c1OxGFbD7+EZxoeS8MPSTJ
	 8n38/skizDzlQ==
From: Mark Brown <broonie@kernel.org>
To: Russell King <linux@armlinux.org.uk>, 
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
 "Rafael J. Wysocki" <rafael@kernel.org>, 
 Ioana Ciornei <ioana.ciornei@nxp.com>, Nipun Gupta <nipun.gupta@amd.com>, 
 Nikhil Agarwal <nikhil.agarwal@amd.com>, 
 "K. Y. Srinivasan" <kys@microsoft.com>, 
 Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
 Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
 Bjorn Helgaas <bhelgaas@google.com>, Armin Wolf <W_Armin@gmx.de>, 
 Bjorn Andersson <andersson@kernel.org>, 
 Mathieu Poirier <mathieu.poirier@linaro.org>, 
 Vineeth Vijayan <vneethv@linux.ibm.com>, 
 Peter Oberparleiter <oberpar@linux.ibm.com>, 
 Heiko Carstens <hca@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>, 
 Alexander Gordeev <agordeev@linux.ibm.com>, 
 Christian Borntraeger <borntraeger@linux.ibm.com>, 
 Sven Schnelle <svens@linux.ibm.com>, 
 Harald Freudenberger <freude@linux.ibm.com>, 
 Holger Dengler <dengler@linux.ibm.com>, 
 "Michael S. Tsirkin" <mst@redhat.com>, Jason Wang <jasowang@redhat.com>, 
 Xuan Zhuo <xuanzhuo@linux.alibaba.com>, 
 =?utf-8?q?Eugenio_P=C3=A9rez?= <eperezma@redhat.com>, 
 Alex Williamson <alex@shazbot.org>, Juergen Gross <jgross@suse.com>, 
 Stefano Stabellini <sstabellini@kernel.org>, 
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
 "Christophe Leroy (CS GROUP)" <chleroy@kernel.org>, 
 Danilo Krummrich <dakr@kernel.org>
Cc: linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, 
 linuxppc-dev@lists.ozlabs.org, linux-hyperv@vger.kernel.org, 
 linux-pci@vger.kernel.org, platform-driver-x86@vger.kernel.org, 
 linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, 
 linux-s390@vger.kernel.org, linux-spi@vger.kernel.org, 
 virtualization@lists.linux.dev, kvm@vger.kernel.org, 
 xen-devel@lists.xenproject.org, linux-arm-kernel@lists.infradead.org
In-Reply-To: <20260324005919.2408620-1-dakr@kernel.org>
References: <20260324005919.2408620-1-dakr@kernel.org>
Subject: Re: (subset) [PATCH 00/12] treewide: Convert buses to use generic
 driver_override
Message-Id: <177436441990.98682.12977271865531185229.b4-ty@b4>
Date: Tue, 24 Mar 2026 15:00:19 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
X-Mailer: b4 0.16-dev-6cc06
X-Developer-Signature: v=1; a=openpgp-sha256; l=1523; i=broonie@kernel.org;
 h=from:subject:message-id; bh=WRF/0A79XI/IfrPujL8sWiRG4jtPsIHG8/HKlYhxfwg=;
 b=kA0DAAoBJNaLcl1Uh9AByyZiAGnC6amgudhaUXvPlk+pDm3GoyUp8H0DzJj7P23jodGH3vgaM
 YkBMwQAAQoAHRYhBK3maKpnVxi1n+Kf6iTWi3JdVIfQBQJpwumpAAoJECTWi3JdVIfQ7W4H/0HK
 bnLD6QxQOBC+fzyIxZ6G6kEKZPO4GVW3Pfn4yfAzX5qrdKQRkDgps7IYWut/u33hS3f+Z04EmOJ
 lYrLIJIM422nR6nge6hF8EhqNBiTq/w9q7cGC48hH540F15d0sLd2//XCIGupIA1RXpBqVdzq5x
 OT6qjdHSfs8FyZ+oeQmp08Rcg1XfVc+MneH1PzidJufZ+tJUtayZw29OlGfNk6vGZ389vkRi+Ec
 XFn5qSzIYh78B0Z0zXzPv2/IjG8frEcheWdi3dJbD2bUS4h2S1US62r3HG8U3Au0lRz8ggXRMML
 03vuVW3IP0egShhpeZHJhBzFqhYb6LFlY+k9hXc=
X-Developer-Key: i=broonie@kernel.org; a=openpgp;
 fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB
X-purgate-ID: tlsNG-42698a/1774381492-A3630112-27420F28/0/0
X-purgate-type: clean
X-purgate-size: 1525

On Tue, 24 Mar 2026 01:59:04 +0100, Danilo Krummrich wrote:
> treewide: Convert buses to use generic driver_override
> 
> This is the follow-up of the driver_override generalization in [1], converting
> the remaining 11 busses and removing the now-unused driver_set_override()
> helper.
> 
> All of them (except AP, which has a different race condition) are prone to the
> potential UAF described in [2], caused by accessing the driver_override field
> from their corresponding match() callback.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-7.0

Thanks!

[11/12] spi: use generic driver_override infrastructure
        https://git.kernel.org/broonie/spi/c/cc34d77dd487

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark



From xen-devel-bounces@lists.xenproject.org Tue Mar 24 23:03:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 23:03:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261402.1554416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Alp-0001Kp-Hy; Tue, 24 Mar 2026 23:02:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261402.1554416; Tue, 24 Mar 2026 23:02:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Alp-0001Ki-FM; Tue, 24 Mar 2026 23:02:45 +0000
Received: by outflank-mailman (input) for mailman id 1261402;
 Tue, 24 Mar 2026 23:02:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w5Alo-0001Kc-7Q
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 23:02:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Aln-007qHu-H1
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 00:02:43 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c31805-e002-0a2a0a5209dd-0a2a4501a004-26
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 00:02:43 +0100
Received: from [40.107.209.3]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c31810-6400-0a2a45010019-286bd1030708-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 00:02:43 +0100
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BN8PR03MB5075.namprd03.prod.outlook.com (2603:10b6:408:df::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Tue, 24 Mar
 2026 23:02:37 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9723.030; Tue, 24 Mar 2026
 23:02:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WQr4i1aD6CjWwC4HUjTFoVx8+MtEciqSu1s80rhC/h1mk2FV0g1hgheBdgkwSXGB4ljNxg0LZZT0gnQ4+IYOhx0m1QAVha/GADpwUEa6OXEz5sViQanxq6zLSeNUetYX1L7ZjS4gBAx10Jmbga7CdijH4Pi6g615dW8tyY7mjxbtg+vMdMkcOl6oFReHIxjPoPXM4ElOF+i/qlgaG4SjNuj6Z26NeFwLp9orxcYaF9un17xudEzTwIhoLtCQLeNs5SBnUc7R6mva5ooLe4VO4jWGxYMRq1wuLhAx8+vPXx2Hx6pr7VTEwUzqcqrmEbN7seZwb4tqw4+eEf+Xu3Gkbg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JqqudF5anQWFqWO2PLgWenYBP8oU9QxSD9EI6x275qA=;
 b=OmW5WgeWOcHyP2uRIafR44kz/DAlDPmzz8tfNUxFMi672sgwt1Nd9AVhFT1QcJb1Nfd8FYNfs98GeugSZl2Q/W/x+Q2mZPHNzW3ttQ7/0QLfe5jDIHsjnyFACvkxFIFAPB1jY3m3aISzGZUWpvF0mGZ6XrARF4wD7rUzq6i2HgqwJq+Q3TXfFqqrm2khEhFHAHxX3AbkCevIOpIsnEbfMA5H5OjeC279vOzI/gDyLiq+8MlidiN9NVRmntlFfDJSXAZkoZVgg8JHaRDCGB0svmpZh+biMYzi7q8CjWACVV6sfs8PMFEOsA6Z06DeYmHEuNIAYNq2ahESch6jb58UOA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JqqudF5anQWFqWO2PLgWenYBP8oU9QxSD9EI6x275qA=;
 b=wT5xysICdXCxcIcXmrUwsRhVv4M0bfHHLG9/HyujLwGQ/E4dF5p49LKp2Y91VlhhLlG5yzeX2YKdUA/9tnj9KfxcYbYaNkS2rPrWhzz5UT+vRdV8/qarYTbP/bK2AU1bp7yV8F6kdaZheyYOGe4peF8JzehWKXfrQ0+7cqosHpM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <0471e754-9ea7-4fb5-b573-b770713b2f53@citrix.com>
Date: Tue, 24 Mar 2026 23:02:34 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 1/9] x86/domain: Ensure a vCPU's FPU is reset early
To: Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
References: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
 <20260324181937.2465574-2-ross.lagerwall@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260324181937.2465574-2-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO6P265CA0021.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ff::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_|BN8PR03MB5075:EE_
X-MS-Office365-Filtering-Correlation-Id: 1de09cf8-e9ac-4b27-e088-08de89f96ac4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	gTpIQekK4U98TfhyrtDLll5Zw6PTSV4Q/Ns5ckDILBwT2AzvzEAcQVCSNKGA5YKEhlMl0VXMC7hui9z1vRIxKSYCQJDBWij7PJt9IsAejpfmR+MZky7qkRCHCAtAPqIVsbker5S7BBDWyAe79VZ1mpNdwONX48fZUTKBfvYC6qMpOd5rlZ5JKXtVneeTH+O2Yfq8CjW/bbBGdGkMUsu32yYFsilDKeiZ54F93XgEBQkhs4EXSTjVFmPYQNSu7p8wKZiHAMnVmhVKFA1BrAEq9tACYg+ous9Y+mMHaCNyNxy28qJr2AnQVxq7cBPPXQcJPppdai5DjRDoLLev+0WGbHGiD/C+aIWqePxyIQd1kbjPvKFdJE6ZBQNb9pKP6+SehRRjK+hKL+c6qY93ArSvqtfaTvOZs6CEXV6QctV39qftjfUXkv7SoivRBfHYmEUSWbKaKGtfa1ccXpG4CeFHfxmyElDYdfF38fw582fWS/tInx2zvL7jkxm/R26cvpiYLP7U5DSFLD88MJLfOv319AFEOmK16oJD8jzWMos379BdARTwvLZIPrty3GzXwYV5ac5R75m/Tzt4hnCCGbbImImLC/Pib3+0W1diZ2MDaSMaWj0g9SQ7XjkMN/NmOH8+bmQZwJIcgO+4j5zR04fC6gHj0GzO6iF0LUALdqzqrrfDWhx9YRUgPTK0BgSBIqQf
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OHpmcTBqZEpqZkVyYTU4NURoQlYraFpqMjk5WWdXTkE2RTlnWTUwZXd1NnBt?=
 =?utf-8?B?YTEzcVMxRXBYR3NUZWUwVGVacW9UUXZUeVhGVUoyYUpzd09kVFI3SFZPTElG?=
 =?utf-8?B?cDFRUDlRZThpbVZGYW9GVDIwM0RPZXJnRnR5MnJVUzlocmwyUEpoV1MzTzVX?=
 =?utf-8?B?ektpOE5JajdBT0FtcHdYNW9iemhLVGRRWTl2S1lFMmdRZ0pWdnN0MFIrK0NJ?=
 =?utf-8?B?aFg5ZlhjclR3ZlZ6Yy81Z09TeTl2S0FHR2t3OG5NNmNiU0dKTWdmSXl6RHZL?=
 =?utf-8?B?a1A2dklZYzdBZ2lBMmF6SkNxSXhkZFMyRzMxeHY5MGNHYnVOY3V4cTlERDdp?=
 =?utf-8?B?bVcvZjUxTVIxQmxmZEk4djc5WXFjZEw3a1J4SERmMUdOZUZ4UWlWTHE0QnE1?=
 =?utf-8?B?a0o0NTNVTHpSYlY0aW1GbXAxYUJKNE13cTZ1eC96eG1DaitBK2xHbTdoMGlm?=
 =?utf-8?B?V3dVaHY2QzN3QTUwU25adER1VWNnZ0xYdnhhejNTaHdYZDd1cjVnSzdkaitu?=
 =?utf-8?B?L01ZNmZrT0J3VkpXN0I1enNOY04xdjFIaE1nK05MaTVkWUt5eGFJbThjNm1a?=
 =?utf-8?B?dk1mRjRRMHpUVnduM0huTFFsTm1xWGhlQ1NWS1dMWGtodFNpdFBCem5qYUxI?=
 =?utf-8?B?M2dvK1JiMENZMWp4TjZtK0dnaDR0VmNDMjZaWDRlT1FNb1pxN0lSdGRuK01Q?=
 =?utf-8?B?ZjRrbjY1YTEvVS9VN29HK0l1WTA0N0RwK3hXZTZZMFFEK2hMalhXV3J4NGlY?=
 =?utf-8?B?NmJzNUZOZzhaS0JwUEh6b0liSXgvbFVZa2dpODFBcG1NRjg1WVplUlMzeWdy?=
 =?utf-8?B?SmNCT1pGUU1ORTcvSXBsbjB3NktMeENvUGF3b24xa3NNRkxBVGdrdmVTak1W?=
 =?utf-8?B?MXBzV1g0dnMvSTd2UVB6QThlR0Z3dDBJVktLbiszdWk1WHZ6YW5IZUlTaEdz?=
 =?utf-8?B?ckJDWm5sb2wyRWRxZEpSZzdleXE3cHBuY0wxNWNxUkdOWEdXUlF6VWFoL2tM?=
 =?utf-8?B?cFBDSjAybkFqVzgrS2JaeUtQOFpUVnA4NmF3OUR2Q0lIRFVRNHdwQzNJS2dq?=
 =?utf-8?B?MlJITkhkbmJrYTdzaTVWNGV0bksrcDRoZlhBY3J2S1d4Zy9jV1lreVI4Nk93?=
 =?utf-8?B?MEJyc2orOG1FVzRady9lbkR1cjNUTllVbW51NGluajJVQVQ1b1NWS1RRMmpB?=
 =?utf-8?B?ZWRPUjBLdlVsR2xQbVcyRHNOUTgxNFdOMENubXNZUkpDYVNqMThVQUhxUmZs?=
 =?utf-8?B?N0wrc3A5YnYxRDRmWEtielV6dVJxbmY3TjMyMnNvSkR6SzNTZHd2WDB0TVJ4?=
 =?utf-8?B?WmJsRVdmOFFtR1pEa01xVVFlbHMrbmlvZXJjNVZVa0pYV2pWWnBkRXlieWRN?=
 =?utf-8?B?ejlVV3NTdXZONXZvcmoxSHdnNnBvUUdjK1hFanZ6Rm13ZW1neGo3UXp5dWVh?=
 =?utf-8?B?SzdoeEFjbEFpRkRNRXgzb3F2ZWd5YkFNRjhDaWtyQ1J4dC9OcTc1cGErKzcy?=
 =?utf-8?B?N2grV1liVkJJdUZ5Z3Q5V2l3V2VCQUxSMDMwcWplSUZRQzV1RTNLWlZ3aGQw?=
 =?utf-8?B?R3BPL1lLek8wNFJ2aVlpY2hLcjBnaGtPK21sR1RmK3ZUWWd1UHBmNGpGMVBL?=
 =?utf-8?B?MFFDQmg5Y01nQmNwM1k3MjZZdCtoOHpiSUFqd0UzZ2pHS01VR1BnMHJkK1Vi?=
 =?utf-8?B?YW9DMFNRRVRUNFBWSmpPdXB3TUh5UDh4RzE5M3ViSXljR3FYM3FmZmsvQUhl?=
 =?utf-8?B?ZlcvSGpqYXNVajdETlFSMHJIYVlRbWJJcElQSXVESi85aEVlUm1vb0R2NVFa?=
 =?utf-8?B?N2hlYjZVRkl1SlFPZ0g2ZW0wYk9MaXlHT1ZNbUMxWVQ0ek1UUHl0LzFPVnlj?=
 =?utf-8?B?SkJwNTBTL0tyM2xCNzJhSUxXVWJrMmtDZm1rdmdsczQ1NW5KdytSTlRkWVJR?=
 =?utf-8?B?cmtUcXdvZ0swNTI3WFI4cFpFV2xJS25CakhIa0VoVzlGMzZsVGNRMTlNWGpE?=
 =?utf-8?B?cVZ1WjdkZ0VvNjZGZXR1TTIrc0loWDhxTDdUOWIyZEJFVGFpYVFtZkRUU2dV?=
 =?utf-8?B?NzVUb2RVQlVWTjVLZ0IrZENoVTZxaHcxamVvaHZ5aklQUFRBYW9IN0hFWWp1?=
 =?utf-8?B?eXNiYVBqZUZVWWZ0WUE0VW40bDJlaXpmV3NPVjVVR0dVSGlpWFNvQUl0WGJo?=
 =?utf-8?B?K1ozSnFwOTBjS2RQc0lnd0ptSTlPejJuK2xqS0V5NkNpUWhVazNDYStiQzNp?=
 =?utf-8?B?ak44anpPb2Vudm1CVmFEK1dKQkZOQ0EyQkhhZlJuU2czMk04YURQOVhNMlRj?=
 =?utf-8?B?UHRtcjFpdTRWbkg5OFZ2dUx0TDF2OHdralVXN1ZaN3psT3h6UEFBNk9mS25M?=
 =?utf-8?Q?AccaddxuT7n2ta1E=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1de09cf8-e9ac-4b27-e088-08de89f96ac4
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 23:02:26.5348
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: RD8ofXqEIX04yzfQBTtJ2WHb+z/4G2KBLbkgR3CxzYMZOXzZMFv88DboN/h0kCVIB/ezLGU9F3/D/YtZVohV4DxHAeHSfxniQkA5afHIhUs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR03MB5075
X-purgate-ID: tlsNG-d62444/1774393363-48815DF3-E9764C63/0/0
X-purgate-type: clean
X-purgate-size: 3290

On 24/03/2026 6:19 pm, Ross Lagerwall wrote:
> When using eager-fpu, a vCPU's FPU is always marked as initialized on
> context switch but it is possible that neither vcpu_reset_fpu() nor
> vcpu_setup_fpu() has been called on it.

How?

I don't think a PV vCPU can.  You cannot VCPUOP_up a vCPU for which
v->is_initialised is false, and setting is_initialised involves either
giving a good FPU, or taking the "reset" path.

An HVM use of VCPUOP_initialise only passes basic state, so can be used
to set v->is_initialised without touching the FPU state.

DM_INIT preserves the v->fpu_initialised-ness while not touching the
buffer.  This is correct(ish).  FPU registers are (mostly) not modified
on INIT.

>  If that happens,
> arch_get_info_guest() would return a block of all 0's for the FPU
> context claiming it to be valid.
>
> Fix this by calling vcpu_reset_fpu() during vCPU creation.
>
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>

The phrasing is a bit awkward, and the function names don't help, but it
is something we're going to have to address properly when doing nested virt.

(A minor tangent which is relevant to where we want to end up)

https://sandpile.org/x86/initial.htm

#RESET and #INIT used to be a physical pins, but are just a message on
the fabric. Either way they're events which alter state in well defined
ways.

>From Xen's point of view, vcpu_create() is the only #RESET-like thing
we've got.  If we didn't model crash/reboot as constructing a new
domain, that would be the other place to use #RESET.

#INIT exists explicitly for HVM guests, via the APIC interface.  Xen has
no working model of this because HVM guests were built on PV which
wasn't modelled on how CPUs work.

v->is_initialised is a PV-ism which has infected x86 HVM and non-x86
architectures too.  The key thing which PV vCPUs need that doesn't work
like CPUs in the slightest is the chosen vCR3 (and vCR1 for PV64) need
to refer to a property typed L4/L3 pagetable, and PV guests can't take a
type ref on 0.


Anyway, returning from the tangent ...

> ---
> New in v2
>
>  xen/arch/x86/domain.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index 9ba2774762cc..82da1c5d7b38 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -522,6 +522,8 @@ int arch_vcpu_create(struct vcpu *v)
>          if ( (rc = vcpu_init_fpu(v)) != 0 )
>              return rc;
>  
> +        vcpu_reset_fpu(v);
> +

... this really should be part of allocating the memory.

First, we should never have the backing memory in the wrong state, and
second, the idle vCPU doesn't take this path.  i.e. in
xstate_alloc_save_area().

Looking into this asks more questions.

xstate_alloc_save_area() does set some of the backing state, but misses
FXSAVE_FTW_RESET.  That's easy enough to fix, and turns out to address
my original concern.

vcpu_reset_fpu() sets v->fpu_initialised = false.  Doesn't this defeat
the point of this patch?

Maybe it's easiest just to fix FXSAVE_FTW_RESET and then purge the
booleans in the way this series does.  I don't think trying to unpick
any other bugfixes is going to be fruitful.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Mar 24 23:06:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Mar 2026 23:06:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261412.1554424 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5ApX-0001ri-0g; Tue, 24 Mar 2026 23:06:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261412.1554424; Tue, 24 Mar 2026 23:06:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5ApW-0001rb-UU; Tue, 24 Mar 2026 23:06:34 +0000
Received: by outflank-mailman (input) for mailman id 1261412;
 Tue, 24 Mar 2026 23:06:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w5ApW-0001rV-5i
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 23:06:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5ApV-00CCyo-Hi
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 00:06:33 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c318f3-5cb7-0a2a0a5109dd-0a2a450ccf14-4
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 00:06:33 +0100
Received: from [52.101.48.0]
 (helo=MW6PR02CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c318f7-f93d-0a2a450c0019-34653000544a-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 00:06:33 +0100
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BN8PR03MB5075.namprd03.prod.outlook.com (2603:10b6:408:df::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Tue, 24 Mar
 2026 23:06:28 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9723.030; Tue, 24 Mar 2026
 23:06:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aJozst9O3M87v2lZ2nIHcSYrdrtXyk5y6FEYQALlAQ7zWXoB2z1cgSko2QleShZFAxfPtl+S+E/UOjCb36fdgnAoHhXsdF6rZhkXSFPzxJOhRr1z9T/4lk7E+oflHevoLfvxrxdoYGKnXGSOjmMAVNUkXazGtCQs5OtX1fjykLakaLrwyeFLskDRznEkcx22ZrHdCCvlfD0axTvfmiOGTnBWP1YlrVh4dAlHn3mx9T3pnezeheUoIxGdvaHP72PyJbLTq8CQQl6f8lmR7KWYEiZdn7s0h91Q9XHJ2LfDMQd05PvcmantWkreQvycS29X36chCtuT/crmlWhY0mvxsw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=R3hE3kjxXjWhaZlJa7ok9Meu56FGPwW/AwBCYLkZ6iA=;
 b=MeHrff1w8ooTTc8GBF1Fw0wQhoBOZGY2GGiL8M+XU0pRzaN5LpY1Oq6MqZtblNgfl/1+0wX8QQIJhYFQFYaaXhVu/wwfYSkaxIrUAW0WZ6SmEqmlYqZ0nlvPD5x2eaxkFlUqMYImJBH3StRvbzTp0bfpM9GqkDBjtXau3witLlpJXxVX6sAVNIT00/FNI9/uC8rJT6ynqUmi6LvKSmRuQ8jZ3jUnqdrTG8xYqr0nINCOfr02XNnyqfW/7jPjGh+eE2qOQWdsyiySKEa9dwljKKFgAZa1iGkoGl6+KtivE3jF2P4PAEWrPkm0c7hDAyeActpqjZVH2WTeQTV9ovMSzw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=R3hE3kjxXjWhaZlJa7ok9Meu56FGPwW/AwBCYLkZ6iA=;
 b=f1WO5qjNIZASs0tyVLq0btWtEJIorX2R1T2cAKrRYmXiNVf6gTKdZAolL/tl3LgV9d0fShB8JwCA4WMGLZeWJFrlwSRSx9PPp/qtD6v68QBLbX78bhYYtu2X+qHaRK5gEW1sk2uMiRt6pv7VtRsqoIb2UgmpVU0eJeKe7VBlkjQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <954f0aaf-bfc9-466e-aa53-58a35fc54922@citrix.com>
Date: Tue, 24 Mar 2026 23:06:24 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 5/9] x86/traps: Remove lazy FPU support
To: Ross Lagerwall <ross.lagerwall@citrix.com>, xen-devel@lists.xenproject.org
References: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
 <20260324181937.2465574-6-ross.lagerwall@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260324181937.2465574-6-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P265CA0268.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:37a::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_|BN8PR03MB5075:EE_
X-MS-Office365-Filtering-Correlation-Id: 30fe698e-6b37-4631-215d-08de89f9f441
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	98MZ0zYUv30TOhYYD8oSnnkeDA5+9sVFkX2O2EEy0NLl9CiZnZSxgH4+QZH0FgkpVwlUrL69Di/73wfOYeNS3UDPyiQ4wqcsQD8NgelCuJghQzR5mVm3d4I6FRPbv5Ych6gO0Zke2FGs1kUaaXnCVC9oUc9HJ6vvMgb6ZbKruBRq7OytohJoYgA/hfU5JNr4UdeYuP17XziTrMNfEeEERo2K06NQdkJWy5uuu5rGr+xOduUagOEYzl/phd2eAfmqXzmkNJl+nsBFDXQBq5LtS7NA/aAyHLGyZ1nCjhQkTOsgSS3E2f8A6X6LzdiKyIMH2lEC5b6SVSEwTCOI7VBfQOfZUxn7lGaXyPmMYvgXUXMFYQfP49cG4xqNymBqEl+Z7igsnwJGMOid5Jh0ZWs53ACx/TG9h0E8U1i89DDkztGocUdkjlJ4i1yjaCEdUtgEhcogYXzoYRmUFslJVhlpP4LkDhs/pXSazoKEhN1rPSobZVXx7TztpN4/ZpNuS5nK2kK2iDSm2u6OGrSU8ixfYp6T//YzVPpVbHM+XGpoRhXKa/mEYHpi0V/qo52D77VuMJsG3eyO2Zc2oNDP69Cx8Kv6mPw+1Sq7oLyXgIptLvdA3EGKxYzsctVfIi+3T818LUb5Ab6w5wsgCniVQ/tmUWT1SisbUkcnVN/ueNcGxQKKUbz3O0K0ITSn5d+4U+QGIBI/JIXEK7GsJY6NJmfkx51Pz8tsQPAaqgQtPCZx0Xk=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?a3RPbGFWMmFmK1FFZGl2WFRzdXUyeWZOdHY3eDQ0OGpGcjJBVkp3bWVsZGUy?=
 =?utf-8?B?VnE3QytIblV3cE03aGdKVUVqWWkwMWJFWHdjaWJWQk9aam5weHpoWlB6allJ?=
 =?utf-8?B?eGNTTzlZT2pHYTVqRWZwdzltOUR0L05iY2ExQlhpZytOaWZkcUhEbWY2TEIy?=
 =?utf-8?B?STRGUHBpR2ppbEFPQkh0NUFsL1ZnRWRqWENoYzZ6NG9vVU5rSUhCTlNtdmlM?=
 =?utf-8?B?ZkptT3VpVDV6WEhOWFIvNVZxVVVSMjZ1SjUyWHZmM3Nic0hhbzFhcGJJbGNO?=
 =?utf-8?B?OUEwZ3l0NXNNZmdJTTNPUFdyUm1LUTBvWWttcVFBTVQrY3cvNEdjWWVqSmFs?=
 =?utf-8?B?TWRnOHdacjZoSEkyQjVTdjBHL1JMM0JGQTZoRlRqeUNrcW9TdC9SbGl4L3Fk?=
 =?utf-8?B?cHhnUy9zanpjbjdFK1hsaXRvRisvQzdnWTVmMTc5NUxBMzJQYzFCREc0ZW12?=
 =?utf-8?B?UGxmZjZhWVBoeUpqMzdIUU1obmZYTjVKNzljRWtsQmhPbHVHcFFOWVFhcHJZ?=
 =?utf-8?B?dDVXT3pVQSs4bnlMSnQ2YUsxRVp1eHBKQm1MZmNrS3FGMVZGYWwxWDFrNHFK?=
 =?utf-8?B?VXpndFIvcU0vcEVhbkthZDdFS3BTYlJKNmhBK3lNZjhPN2dTTit6TldKZ2xz?=
 =?utf-8?B?dktFci9RbGlUNFNVQnVnK1hITGk1VEhpeHBMSFloMzNvNDlyTTVuQjhCcG1F?=
 =?utf-8?B?R2NLZHZZTnNRNEJmTFZpaUZjL1BTeUpyU1hjaitPT3dmU0FBY1ZjYzc2KzVC?=
 =?utf-8?B?S0pyajcybmFZMVoyK0NIY3RNQjJXRHdkNGxyYUMvNW1qTXRDNVVZUmhaMTFZ?=
 =?utf-8?B?a2ZPelNnQlJUdEJFdUUyS1Z0VFpQdnlTVXdpS0FJRlRpY3hzaXh3RXYvT2Zt?=
 =?utf-8?B?a2o5MnIwMUlwelZLdEZHTjBvUll6QXZyRUN2WlhiUTZWd0FoRm9BeTRJSFZM?=
 =?utf-8?B?d2lVVXU3VXV0eDgvZWhWd2h5RWpoWTNsYkJLQ2pQTDFxZEhCS2cyR2VaVUVV?=
 =?utf-8?B?VHpJS3BEN0l2UDlNSzFjcTdldktFOCswclluNlZXMGxLMEltZXBpZTJrQ21T?=
 =?utf-8?B?bUVtRjlGUmF5VDhST0tQb29TTmdjc1lmOXM2cFhFL3NFUlFiOEt5ZGlDc1Vl?=
 =?utf-8?B?RXFGSElVdFRSMEhCdm5NOTBMU1RvelpoTG1hdm9OUnFTS0xiNVdQVVhtZyta?=
 =?utf-8?B?RjQxZHBpUmhVU0YzM2wyYzRNZWwyd3IyVXFpM2dwYzFRTFJOZmgvSjBIMkk4?=
 =?utf-8?B?YVNWM1lSWS9JT1BYRU5jV1hobXNmV1dtbkk0TktDcXVhZGJuSTlHOG0wLzdM?=
 =?utf-8?B?RnAzeDI5Y1U2MGh1ZW8xTmFOdDJFQkh4LzVpdks0RERycWJjOWt5ZG5Qczc5?=
 =?utf-8?B?OExlcW9FYTR6bk00d2ZhdnBYTkhCTDZzb1ZLZzlMcW9aTlo2czJ5UlU3cHky?=
 =?utf-8?B?UnRrN3JUTG9mZkNtV3IydzJUc3BtQVlLeVgwTHd2MHNmeVBMUE12SCtJQXlK?=
 =?utf-8?B?MW8wWFN4ZElTT1pnQlUrVHkzK3RtbmVoTDVBM05YV0M4SkQrVENzTXc5WjBo?=
 =?utf-8?B?MHFzWHByQ0ZtQlk1cm40VVRLRVI4TE9Ca3dNakhuNFhlcy9NK3VmdGxVeWtk?=
 =?utf-8?B?ZnpsZnIrWWNPMndtdm1pT2pFWkpvN3Y3MHRiYVBEdVg4L2d3WHdBcDZ6WWUy?=
 =?utf-8?B?MThIWXhOT2c1NHVxcWlwUjE4cG1LOHpsU1BhekRNQXkwWjBMdXU1VFJEdnRL?=
 =?utf-8?B?TW1sY0pnbzdmUllaWkpLaUtRRElLSWxoOXJXaG5remswNEtkWDZLQlpQbFBH?=
 =?utf-8?B?Ujk4ZzRRYjJ6K29LUmtibzVMVHNEWGZKTEc3RzJEcDNndzBoZjFPU3YrNlhJ?=
 =?utf-8?B?cVp1MzdzODhQbytCNG9UVTZ0Mi85Zyt0dy9saVQ2MDhidUNsK0E4Y0dpTXlZ?=
 =?utf-8?B?NmRuYzB0VUxqZWh5N01HNldVYko5NThITXlpWlRzT3lva1ZGUnlHYjJscjdU?=
 =?utf-8?B?R3hoanhab0Q4N09NcGVJVlRmTkY2b3VxNVBILzlhMXVNUzhLMHAvNGlMMWc4?=
 =?utf-8?B?eHM2NEJHY2NBcjFrT0hxUlMxZW95L2M3L3RhODdXQlA5NHVnbmRBN0tyVlFh?=
 =?utf-8?B?YW02bXBheFkrSCtZL2czK2NSNDhlYklPMGQ3WjlDTm9DNmFHQ2xIdUI5MUta?=
 =?utf-8?B?bVJlN1gzeWlER1VpRFlxcEphdEt6dkE0WFB1ajJ0MHVzcmpXZG5GM25hSmpN?=
 =?utf-8?B?dlpOVG45aDcyNVY4WlJPbGdZcTBxNWJwUVRVdE1TZDd6Q2ZCaHh1OVh4eFhv?=
 =?utf-8?B?Qy9CQ0Z6eDdVcFAvYnk2SnBYWHdVSTREQjkxeG5JazJ5TVVpYVpXVnRrMVMv?=
 =?utf-8?Q?aAu51fUYN1WxqU6U=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 30fe698e-6b37-4631-215d-08de89f9f441
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 23:06:17.2526
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: D7R7dekNFjK4zNKzzfNM1ouxhlBZjoe21goKI5XTWASxeSNWxdeYezTPgO90kenmM7ULL8eZE7dsQ6oNo0GHV6kNBfRv5EkJTcUwyZJQOvI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR03MB5075
X-purgate-ID: tlsNG-d25034/1774393593-6F8A4734-1D89974B/0/0
X-purgate-type: clean
X-purgate-size: 379

On 24/03/2026 6:19 pm, Ross Lagerwall wrote:
> From: Wei Liu <wei.liu2@citrix.com>
>
> Remove lazy FPU support from the #NM exception handler used by PV
> guests since fully_eager_fpu is now always true.
>
> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>

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


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 05:49:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 05:49:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260797.1554469 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5H6r-0004ne-Ko; Wed, 25 Mar 2026 05:48:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260797.1554469; Wed, 25 Mar 2026 05:48:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5H6r-0004n0-Gq; Wed, 25 Mar 2026 05:48:53 +0000
Received: by outflank-mailman (input) for mailman id 1260797;
 Tue, 24 Mar 2026 12:59:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dengler@linux.ibm.com>) id 1w51Lu-000693-CL
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 12:59:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w51Lt-00D5Pu-Og
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 13:59:21 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dengler@linux.ibm.com>)
 id 69c28aa4-5cb7-0a2a0a5109dd-0a2a450aec56-32
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:59:21 +0100
Received: from [148.163.158.5] (helo=mx0b-001b2d01.pphosted.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <dengler@linux.ibm.com>)
 id 69c28aa8-1772-0a2a450a0019-94a39e051568-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 13:59:21 +0100
Received: from pps.filterd (m0353725.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62O9UV8t564224; Tue, 24 Mar 2026 12:59:01 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 4d1ky02vr9-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 24 Mar 2026 12:59:00 +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 62OCedC1011824;
 Tue, 24 Mar 2026 12:58:59 GMT
Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229])
 by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4d27vk1pae-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 24 Mar 2026 12:58:59 +0000
Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com
 [10.20.54.101])
 by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 62OCwtnj51904902
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 24 Mar 2026 12:58:55 GMT
Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 8811920063;
 Tue, 24 Mar 2026 12:58:55 +0000 (GMT)
Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id DD0782004E;
 Tue, 24 Mar 2026 12:58:54 +0000 (GMT)
Received: from [9.52.215.154] (unknown [9.52.215.154])
 by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTP;
 Tue, 24 Mar 2026 12:58: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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=pp1 header.d=ibm.com header.i="@ibm.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=pp1; bh=Ej3Isx
	3J43WHcbqsXFspxuLWGfpG7XzaDk8RnET7IuY=; b=Su7gQstz3B6aM6PFBG8uQh
	x01IvkgpF4akIkC2Yv8b74FadNo9e27ekRxXsakT3p1TARe7CZAY29h53xxd8wz1
	F4kZz+lkiD78vGhCs+laxqnB5u9xFRGK/Tsh6twYP7thvfsNIeWAGdP1jRWjsBE2
	2NrTa+0v/b8PhcVeJOs61gs29vpCXXnXjqWi5QPV0rxXNiDc7IpzG9wKPCFU1dJu
	hyIdXPUJ8IHi1NA9903kpVA7KAIe5DifhKuhpq4v9lSgLr3r1ewpvKEptBjvZ2uB
	zO3ARjeDVnRRo3nNzvOHwsDydcL2Hd5OJrLdyn0FWx65JkOT58sm1iZ5/kZyz6iA
	==
Message-ID: <43139b81-2d3a-407b-9ddf-bd42aa70f780@linux.ibm.com>
Date: Tue, 24 Mar 2026 13:58:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 10/12] s390/ap: use generic driver_override infrastructure
To: Danilo Krummrich <dakr@kernel.org>, Russell King <linux@armlinux.org.uk>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        "Rafael J. Wysocki" <rafael@kernel.org>,
        Ioana Ciornei <ioana.ciornei@nxp.com>,
        Nipun Gupta <nipun.gupta@amd.com>,
        Nikhil Agarwal <nikhil.agarwal@amd.com>,
        "K. Y. Srinivasan"
 <kys@microsoft.com>,
        Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>,
        Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>,
        Bjorn Helgaas <bhelgaas@google.com>, Armin Wolf <W_Armin@gmx.de>,
        Bjorn Andersson <andersson@kernel.org>,
        Mathieu Poirier <mathieu.poirier@linaro.org>,
        Vineeth Vijayan <vneethv@linux.ibm.com>,
        Peter Oberparleiter <oberpar@linux.ibm.com>,
        Heiko Carstens <hca@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>,
        Alexander Gordeev <agordeev@linux.ibm.com>,
        Christian Borntraeger <borntraeger@linux.ibm.com>,
        Sven Schnelle <svens@linux.ibm.com>,
        Harald Freudenberger <freude@linux.ibm.com>,
        Mark Brown
 <broonie@kernel.org>,
        "Michael S. Tsirkin" <mst@redhat.com>,
        Jason Wang <jasowang@redhat.com>,
        Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
        =?UTF-8?Q?Eugenio_P=C3=A9rez?= <eperezma@redhat.com>,
        Alex Williamson <alex@shazbot.org>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        "Christophe Leroy (CS GROUP)" <chleroy@kernel.org>
Cc: linux-kernel@vger.kernel.org, driver-core@lists.linux.dev,
        linuxppc-dev@lists.ozlabs.org, linux-hyperv@vger.kernel.org,
        linux-pci@vger.kernel.org, platform-driver-x86@vger.kernel.org,
        linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org,
        linux-s390@vger.kernel.org, linux-spi@vger.kernel.org,
        virtualization@lists.linux.dev, kvm@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-arm-kernel@lists.infradead.org
References: <20260324005919.2408620-1-dakr@kernel.org>
 <20260324005919.2408620-11-dakr@kernel.org>
From: Holger Dengler <dengler@linux.ibm.com>
Content-Language: en-US
In-Reply-To: <20260324005919.2408620-11-dakr@kernel.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-TM-AS-GCONF: 00
X-Proofpoint-Reinject: loops=2 maxloops=12
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI0MDEwMSBTYWx0ZWRfX6N1fBrtwZrfl
 aNao0Xhwv2iPArpXTciFzlHehJzd3FqyuyxByqEu+FLvzIew8kt3PjWdYdZtO7Ev/dzu1juD33i
 ULiVxPJi+Eu3Wm01+pD7w41oOcB6CO0eS2PR+DcOqwrlrsqbZgbqKoknbOSccN4kN1AdGDnpSh4
 giT9HWCMECWpapxDaYdMQ/IXQp+iHi2011iYdnklc4+iAjB4tA8YcsPMKFTESeLitzfCKx7CeYa
 F5bfAZ1prh5bHCsbzFtvW6c4E94vHNefJ4W5xyDv5bTOpwX5xpUV089SzGXBpTCh2Tn6j/1RJAy
 8JrNkM5IZMTuuFxodSI3N0ItWWwaPezBykvTmfdz5CNBYNkZhJ/G7w4qUg5Kyf1QOlPIUBtuFZ0
 TaNFvnH1pIhI71CTLphAPYyjG3E9oMOG+wVPVi77oKaFO89fYZRslVgre89UqkZSjDGRx3OB3Tc
 tkfYq5p7x6UpUVDBiYg==
X-Authority-Analysis: v=2.4 cv=JK42csKb c=1 sm=1 tr=0 ts=69c28a95 cx=c_pps
 a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VwQbUJbxAAAA:8
 a=VnNF1IyMAAAA:8 a=JtdtG7AWE7AhTqZWL1AA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
X-Proofpoint-ORIG-GUID: umcwOVG9OGh_DW7scW8FgcsJPpy_MgAT
X-Proofpoint-GUID: iDlj1Pn5DnrzHKXcEcJoAVIWEUdMu_KQ
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-24_03,2026-03-23_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 impostorscore=0 clxscore=1011 priorityscore=1501 malwarescore=0 adultscore=0
 spamscore=0 suspectscore=0 phishscore=0 lowpriorityscore=0 bulkscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603240101
X-purgate-ID: tlsNG-4011c0/1774357161-5389A900-E87E4E88/0/0
X-purgate-type: clean
X-purgate-size: 1500

On 24/03/2026 01:59, Danilo Krummrich wrote:
> When the AP masks are updated via apmask_store() or aqmask_store(),
> ap_bus_revise_bindings() is called after ap_attr_mutex has been
> released.
> 
> This calls __ap_revise_reserved(), which accesses the driver_override
> field without holding any lock, racing against a concurrent
> driver_override_store() that may free the old string, resulting in a
> potential UAF.
> 
> Fix this by using the driver-core driver_override infrastructure, which
> protects all accesses with an internal spinlock.
> 
> Note that unlike most other buses, the AP bus does not check
> driver_override in its match() callback; the override is checked in
> ap_device_probe() and __ap_revise_reserved() instead.
> 
> Also note that we do not enable the driver_override feature of struct
> bus_type, as AP - in contrast to most other buses - passes "" to
> sysfs_emit() when the driver_override pointer is NULL. Thus, printing
> "\n" instead of "(null)\n".
> 
> Additionally, AP has a custom counter that is modified in the
> corresponding custom driver_override_store().
> 
> Fixes: d38a87d7c064 ("s390/ap: Support driver_override for AP queue devices")
> Signed-off-by: Danilo Krummrich <dakr@kernel.org>

Tested-by: Holger Dengler <dengler@linux.ibm.com>
Reviewed-by: Holger Dengler <dengler@linux.ibm.com>

-- 
Mit freundlichen Grüßen / Kind regards
Holger Dengler
--
IBM Systems, Linux on IBM Z Development
dengler@linux.ibm.com



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 05:49:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 05:49:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1260715.1554466 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5H6r-0004mh-GK; Wed, 25 Mar 2026 05:48:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1260715.1554466; Wed, 25 Mar 2026 05:48:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5H6r-0004mZ-Ab; Wed, 25 Mar 2026 05:48:53 +0000
Received: by outflank-mailman (input) for mailman id 1260715;
 Tue, 24 Mar 2026 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=QNhb=BY=linux.ibm.com=freude@srs-se1.protection.inumbo.net>)
 id 1w515E-00022N-Pk
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 12:42: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 dd2c4f03-277e-11f1-b166-2bf370ae4941;
 Tue, 24 Mar 2026 13:42:06 +0100 (CET)
Received: from pps.filterd (m0353729.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62O7DT6Q481575; Tue, 24 Mar 2026 12:41:32 GMT
Received: from ppma21.wdc07v.mail.ibm.com
 (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4d1ktxudx6-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 24 Mar 2026 12:41:31 +0000 (GMT)
Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1])
 by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 62OC7Gcu008722;
 Tue, 24 Mar 2026 12:41:30 GMT
Received: from smtprelay03.wdc07v.mail.ibm.com ([172.16.1.70])
 by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4d26nnhuw0-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 24 Mar 2026 12:41:30 +0000
Received: from smtpav06.wdc07v.mail.ibm.com (smtpav06.wdc07v.mail.ibm.com
 [10.39.53.233])
 by smtprelay03.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 62OCf5V326608298
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 24 Mar 2026 12:41:05 GMT
Received: from smtpav06.wdc07v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 201225803F;
 Tue, 24 Mar 2026 12:41:29 +0000 (GMT)
Received: from smtpav06.wdc07v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 946D658055;
 Tue, 24 Mar 2026 12:41:25 +0000 (GMT)
Received: from ltc.linux.ibm.com (unknown [9.5.196.140])
 by smtpav06.wdc07v.mail.ibm.com (Postfix) with ESMTP;
 Tue, 24 Mar 2026 12:41:25 +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: dd2c4f03-277e-11f1-b166-2bf370ae4941
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:reply-to:subject:to; s=pp1;
	 bh=Shk48Guqth0dMGtPHiYWn3blJ70CgjGVRZHzaVpvLPY=; b=nqs3h6SkcQWZ
	+OwoltQeMxOO6RblQPqe55tAVjsackvCM4KkhWNpCQq04FPsFlS93zfiGSC7Di4+
	S9HKMl0Sjn5QTzbM3NfhhnAIAYBvkUkrdxOKSw7d0UM43AXyYRkeT8yYGAz8hak7
	ZGJjdVwyS8NI2NFgL8wvwtd0s6FHAxSN4ucTbH9O2vRt2+dg7MkFcwB5Thprjrjc
	U/howCgydGuthvICdFGdQd3XIc0EaU0k/lS6es2878jUgr/pm+7/onljXHYAZGv+
	d2SOZp5c+3ZgwIjW+EEdkE2KjadPhRrKOtZM1Zuf8LiFRmTbl3wfp/kpxlXGAEqB
	O8U48KsXUA==
MIME-Version: 1.0
Date: Tue, 24 Mar 2026 13:41:25 +0100
From: Harald Freudenberger <freude@linux.ibm.com>
To: Danilo Krummrich <dakr@kernel.org>
Cc: Russell King <linux@armlinux.org.uk>,
        Greg Kroah-Hartman
 <gregkh@linuxfoundation.org>,
        "Rafael J. Wysocki" <rafael@kernel.org>,
        Ioana
 Ciornei <ioana.ciornei@nxp.com>,
        Nipun Gupta <nipun.gupta@amd.com>,
        Nikhil
 Agarwal <nikhil.agarwal@amd.com>,
        "K. Y. Srinivasan" <kys@microsoft.com>,
        Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>,
        Dexuan
 Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>,
        Bjorn Helgaas
 <bhelgaas@google.com>, Armin Wolf <W_Armin@gmx.de>,
        Bjorn Andersson
 <andersson@kernel.org>,
        Mathieu Poirier <mathieu.poirier@linaro.org>,
        Vineeth Vijayan <vneethv@linux.ibm.com>,
        Peter Oberparleiter
 <oberpar@linux.ibm.com>,
        Heiko Carstens <hca@linux.ibm.com>, Vasily Gorbik
 <gor@linux.ibm.com>,
        Alexander Gordeev <agordeev@linux.ibm.com>,
        Christian
 Borntraeger <borntraeger@linux.ibm.com>,
        Sven Schnelle
 <svens@linux.ibm.com>,
        Holger Dengler <dengler@linux.ibm.com>,
        Mark Brown
 <broonie@kernel.org>,
        "Michael S. Tsirkin" <mst@redhat.com>,
        Jason Wang
 <jasowang@redhat.com>,
        Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
        =?UTF-8?Q?Eugenio_P=C3=A9rez?= <eperezma@redhat.com>,
        Alex Williamson
 <alex@shazbot.org>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini
 <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
 <oleksandr_tyshchenko@epam.com>,
        "Christophe Leroy (CS GROUP)"
 <chleroy@kernel.org>,
        linux-kernel@vger.kernel.org, driver-core@lists.linux.dev,
        linuxppc-dev@lists.ozlabs.org, linux-hyperv@vger.kernel.org,
        linux-pci@vger.kernel.org, platform-driver-x86@vger.kernel.org,
        linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org,
        linux-s390@vger.kernel.org, linux-spi@vger.kernel.org,
        virtualization@lists.linux.dev, kvm@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 10/12] s390/ap: use generic driver_override infrastructure
Reply-To: freude@linux.ibm.com
Mail-Reply-To: freude@linux.ibm.com
In-Reply-To: <20260324005919.2408620-11-dakr@kernel.org>
References: <20260324005919.2408620-1-dakr@kernel.org>
 <20260324005919.2408620-11-dakr@kernel.org>
Message-ID: <b5a80e06aa0240348dfa6826c20f3aec@linux.ibm.com>
X-Sender: freude@linux.ibm.com
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit
X-TM-AS-GCONF: 00
X-Proofpoint-Reinject: loops=2 maxloops=12
X-Authority-Analysis: v=2.4 cv=IqITsb/g c=1 sm=1 tr=0 ts=69c2867c cx=c_pps
 a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17
 a=kj9zAlcOel0A:10 a=Yq5XynenixoA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=RnoormkPH1_aCDwRdu11:22 a=uAbxVGIbfxUO_5tXvNgY:22 a=VwQbUJbxAAAA:8
 a=VnNF1IyMAAAA:8 a=V8-k01nbhAtxNRQPXScA:9 a=CjuIK1q_8ugA:10
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI0MDA5OCBTYWx0ZWRfX5BtF+dGcqKne
 ud3qOj4gTSLR9zLNfAq3JG6g/oOlaoDuAoL5ugYqpH9s9vpJjplhqsv+C5Fn13wLfcNuqTFjG2K
 8B20fOIVvCqa5XvNqyGQnMAHAZ9m7lornaYpmzRxy2uj+A1xP4iQsysQ7y+S7A488UAEKXq5qZ6
 LBbN3vhPXZJ/bEjV349pY7YewQW80X8aJiv4wUe79X39dz6GUwBnh+wAamLPOldfeVWA3ylebkO
 fpE77uN6WRT54jS8FnW/ZhUlXkVn14gcYRIyrgSPpzwxEiZ3nS5fgK7DV0UKCoQQHx0EyIcKLvI
 sxcDzd1vSEY19GMOKPv1ZW+MN86TCAn4dq3ojgq1Xg0hwRVL0L3YGoz9QETDntcaSlj/0kKtlA6
 UfD/yUxgwr0WFEGPDCZ3E/gq/ajxwH4hTrddRdALUSslhqrcmAjUB1i/qil1QJJkf8vWuRKoJjs
 AJigNCQkv9LzvxCAnUQ==
X-Proofpoint-GUID: YK3KYDPHgye9e3NvrRpemo-oOEIjjzeD
X-Proofpoint-ORIG-GUID: IG7OyOmEsbO9ZGMbJn71CzQus0Ee1qWf
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-24_02,2026-03-23_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 malwarescore=0 clxscore=1011 spamscore=0 impostorscore=0 suspectscore=0
 phishscore=0 bulkscore=0 adultscore=0 priorityscore=1501 lowpriorityscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603240098

On 2026-03-24 01:59, Danilo Krummrich wrote:
> When the AP masks are updated via apmask_store() or aqmask_store(),
> ap_bus_revise_bindings() is called after ap_attr_mutex has been
> released.
> 
> This calls __ap_revise_reserved(), which accesses the driver_override
> field without holding any lock, racing against a concurrent
> driver_override_store() that may free the old string, resulting in a
> potential UAF.
> 
> Fix this by using the driver-core driver_override infrastructure, which
> protects all accesses with an internal spinlock.
> 
> Note that unlike most other buses, the AP bus does not check
> driver_override in its match() callback; the override is checked in
> ap_device_probe() and __ap_revise_reserved() instead.
> 
> Also note that we do not enable the driver_override feature of struct
> bus_type, as AP - in contrast to most other buses - passes "" to
> sysfs_emit() when the driver_override pointer is NULL. Thus, printing
> "\n" instead of "(null)\n".
> 
> Additionally, AP has a custom counter that is modified in the
> corresponding custom driver_override_store().
> 
> Fixes: d38a87d7c064 ("s390/ap: Support driver_override for AP queue 
> devices")
> Signed-off-by: Danilo Krummrich <dakr@kernel.org>
> ---
>  drivers/s390/crypto/ap_bus.c   | 34 +++++++++++++++++-----------------
>  drivers/s390/crypto/ap_bus.h   |  1 -
>  drivers/s390/crypto/ap_queue.c | 24 ++++++------------------
>  3 files changed, 23 insertions(+), 36 deletions(-)
> 
> diff --git a/drivers/s390/crypto/ap_bus.c 
> b/drivers/s390/crypto/ap_bus.c
> index d652df96a507..f24e27add721 100644
> --- a/drivers/s390/crypto/ap_bus.c
> +++ b/drivers/s390/crypto/ap_bus.c
> @@ -859,25 +859,24 @@ static int
> __ap_queue_devices_with_id_unregister(struct device *dev, void *data)
> 
>  static int __ap_revise_reserved(struct device *dev, void *dummy)
>  {
> -	int rc, card, queue, devres, drvres;
> +	int rc, card, queue, devres, drvres, ovrd;
> 
>  	if (is_queue_dev(dev)) {
>  		struct ap_driver *ap_drv = to_ap_drv(dev->driver);
>  		struct ap_queue *aq = to_ap_queue(dev);
> -		struct ap_device *ap_dev = &aq->ap_dev;
> 
>  		card = AP_QID_CARD(aq->qid);
>  		queue = AP_QID_QUEUE(aq->qid);
> 
> -		if (ap_dev->driver_override) {
> -			if (strcmp(ap_dev->driver_override,
> -				   ap_drv->driver.name)) {
> -				pr_debug("reprobing queue=%02x.%04x\n", card, queue);
> -				rc = device_reprobe(dev);
> -				if (rc) {
> -					AP_DBF_WARN("%s reprobing queue=%02x.%04x failed\n",
> -						    __func__, card, queue);
> -				}
> +		ovrd = device_match_driver_override(dev, &ap_drv->driver);
> +		if (ovrd > 0) {
> +			/* override set and matches, nothing to do */
> +		} else if (ovrd == 0) {
> +			pr_debug("reprobing queue=%02x.%04x\n", card, queue);
> +			rc = device_reprobe(dev);
> +			if (rc) {
> +				AP_DBF_WARN("%s reprobing queue=%02x.%04x failed\n",
> +					    __func__, card, queue);
>  			}
>  		} else {
>  			mutex_lock(&ap_attr_mutex);
> @@ -928,7 +927,7 @@ int ap_owned_by_def_drv(int card, int queue)
>  	if (aq) {
>  		const struct device_driver *drv = aq->ap_dev.device.driver;
>  		const struct ap_driver *ap_drv = to_ap_drv(drv);
> -		bool override = !!aq->ap_dev.driver_override;
> +		bool override = device_has_driver_override(&aq->ap_dev.device);
> 
>  		if (override && drv && ap_drv->flags & AP_DRIVER_FLAG_DEFAULT)
>  			rc = 1;
> @@ -977,7 +976,7 @@ static int ap_device_probe(struct device *dev)
>  {
>  	struct ap_device *ap_dev = to_ap_dev(dev);
>  	struct ap_driver *ap_drv = to_ap_drv(dev->driver);
> -	int card, queue, devres, drvres, rc = -ENODEV;
> +	int card, queue, devres, drvres, rc = -ENODEV, ovrd;
> 
>  	if (!get_device(dev))
>  		return rc;
> @@ -991,10 +990,11 @@ static int ap_device_probe(struct device *dev)
>  		 */
>  		card = AP_QID_CARD(to_ap_queue(dev)->qid);
>  		queue = AP_QID_QUEUE(to_ap_queue(dev)->qid);
> -		if (ap_dev->driver_override) {
> -			if (strcmp(ap_dev->driver_override,
> -				   ap_drv->driver.name))
> -				goto out;
> +		ovrd = device_match_driver_override(dev, &ap_drv->driver);
> +		if (ovrd > 0) {
> +			/* override set and matches, nothing to do */
> +		} else if (ovrd == 0) {
> +			goto out;
>  		} else {
>  			mutex_lock(&ap_attr_mutex);
>  			devres = test_bit_inv(card, ap_perms.apm) &&
> diff --git a/drivers/s390/crypto/ap_bus.h 
> b/drivers/s390/crypto/ap_bus.h
> index 51e08f27bd75..04ea256ecf91 100644
> --- a/drivers/s390/crypto/ap_bus.h
> +++ b/drivers/s390/crypto/ap_bus.h
> @@ -166,7 +166,6 @@ void ap_driver_unregister(struct ap_driver *);
>  struct ap_device {
>  	struct device device;
>  	int device_type;		/* AP device type. */
> -	const char *driver_override;
>  };
> 
>  #define to_ap_dev(x) container_of((x), struct ap_device, device)
> diff --git a/drivers/s390/crypto/ap_queue.c 
> b/drivers/s390/crypto/ap_queue.c
> index 3fe2e41c5c6b..ca9819e6f7e7 100644
> --- a/drivers/s390/crypto/ap_queue.c
> +++ b/drivers/s390/crypto/ap_queue.c
> @@ -734,26 +734,14 @@ static ssize_t driver_override_show(struct device 
> *dev,
>  				    struct device_attribute *attr,
>  				    char *buf)
>  {
> -	struct ap_queue *aq = to_ap_queue(dev);
> -	struct ap_device *ap_dev = &aq->ap_dev;
> -	int rc;
> -
> -	device_lock(dev);
> -	if (ap_dev->driver_override)
> -		rc = sysfs_emit(buf, "%s\n", ap_dev->driver_override);
> -	else
> -		rc = sysfs_emit(buf, "\n");
> -	device_unlock(dev);
> -
> -	return rc;
> +	guard(spinlock)(&dev->driver_override.lock);
> +	return sysfs_emit(buf, "%s\n", dev->driver_override.name ?: "");
>  }
> 
>  static ssize_t driver_override_store(struct device *dev,
>  				     struct device_attribute *attr,
>  				     const char *buf, size_t count)
>  {
> -	struct ap_queue *aq = to_ap_queue(dev);
> -	struct ap_device *ap_dev = &aq->ap_dev;
>  	int rc = -EINVAL;
>  	bool old_value;
> 
> @@ -764,13 +752,13 @@ static ssize_t driver_override_store(struct 
> device *dev,
>  	if (ap_apmask_aqmask_in_use)
>  		goto out;
> 
> -	old_value = ap_dev->driver_override ? true : false;
> -	rc = driver_set_override(dev, &ap_dev->driver_override, buf, count);
> +	old_value = device_has_driver_override(dev);
> +	rc = __device_set_driver_override(dev, buf, count);
>  	if (rc)
>  		goto out;
> -	if (old_value && !ap_dev->driver_override)
> +	if (old_value && !device_has_driver_override(dev))
>  		--ap_driver_override_ctr;
> -	else if (!old_value && ap_dev->driver_override)
> +	else if (!old_value && device_has_driver_override(dev))
>  		++ap_driver_override_ctr;
> 
>  	rc = count;

Thanks Danilo
Reviewed-by: Harald Freudenberger <freude@linux.ibm.com>


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 05:49:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 05:49:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261358.1554477 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5H6r-0004tD-Vw; Wed, 25 Mar 2026 05:48:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261358.1554477; Wed, 25 Mar 2026 05:48:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5H6r-0004q0-OO; Wed, 25 Mar 2026 05:48:53 +0000
Received: by outflank-mailman (input) for mailman id 1261358;
 Tue, 24 Mar 2026 19:42:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <W_Armin@gmx.de>) id 1w57dr-0002yH-L4
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 19:42:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w57dp-00A8nJ-BC
 for xen-devel@lists.xenproject.org; Tue, 24 Mar 2026 20:42:18 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <W_Armin@gmx.de>)
 id 69c2e911-e002-0a2a0a5209dd-0a2a450a936e-4
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 20:42:18 +0100
Received: from [212.227.15.15] (helo=mout.gmx.net)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <W_Armin@gmx.de>)
 id 69c2e91a-1772-0a2a450a0019-d4e30f0fd4db-3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 20:42:18 +0100
Received: from client.hidden.invalid by mail.gmx.net (mrgmx004
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MJE6L-1vpN8Z0wQN-00N053; Tue, 24
 Mar 2026 20:42:04 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=s31663417 header.d=gmx.de header.i="w_armin@gmx.de" header.h="X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:In-Reply-To:Content-Type:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de;
	s=s31663417; t=1774381324; x=1774986124; i=w_armin@gmx.de;
	bh=GGWlvb2n3V4HaO8XQjVf9hW7XhuAzhwdcuVxgB5Di8o=;
	h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
	 References:From:In-Reply-To:Content-Type:
	 Content-Transfer-Encoding:cc:content-transfer-encoding:
	 content-type:date:from:message-id:mime-version:reply-to:subject:
	 to;
	b=ifvPJxvAhtek8q+pCeeyITFinHZKIJzqVHZWD0oNtpjBH1VESRkcZtiJ0sFNIVvR
	 +0tHnwJ18q+Z71ZrayUhU0vh5SiV1GPGwunmQmajPwVX4HXy1AnJ3jVQfcgYl/q0G
	 7GpW93BfuY2TpH5ZIbrRDM1vyhuFD6vaYRPfQPHs2isrsWWvKb6H9asjxTkbrpRtL
	 3vWhE/L/BP8v1cfiKyUpLIqIJ9UK3RIuIZtPTLzS2X0sC5ZIUWvYq6SpqamMfPhIB
	 3LW6jjBPxIdqM4s0+mkdYOjqtI6GXvkruP0E13jFM3HajUwIRo0KgB5dciwbWvO8R
	 RuMZmDRORvSKwwSOYw==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Message-ID: <50ed0e80-c1f3-48da-81f6-9edd2b1c35e1@gmx.de>
Date: Tue, 24 Mar 2026 20:41:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 06/12] platform/wmi: use generic driver_override
 infrastructure
To: Danilo Krummrich <dakr@kernel.org>, Russell King <linux@armlinux.org.uk>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 "Rafael J. Wysocki" <rafael@kernel.org>,
 Ioana Ciornei <ioana.ciornei@nxp.com>, Nipun Gupta <nipun.gupta@amd.com>,
 Nikhil Agarwal <nikhil.agarwal@amd.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>,
 Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
 Long Li <longli@microsoft.com>, Bjorn Helgaas <bhelgaas@google.com>,
 Bjorn Andersson <andersson@kernel.org>,
 Mathieu Poirier <mathieu.poirier@linaro.org>,
 Vineeth Vijayan <vneethv@linux.ibm.com>,
 Peter Oberparleiter <oberpar@linux.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>,
 Alexander Gordeev <agordeev@linux.ibm.com>,
 Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>,
 Harald Freudenberger <freude@linux.ibm.com>,
 Holger Dengler <dengler@linux.ibm.com>, Mark Brown <broonie@kernel.org>,
 "Michael S. Tsirkin" <mst@redhat.com>, Jason Wang <jasowang@redhat.com>,
 Xuan Zhuo <xuanzhuo@linux.alibaba.com>, =?UTF-8?Q?Eugenio_P=C3=A9rez?=
 <eperezma@redhat.com>, Alex Williamson <alex@shazbot.org>,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 "Christophe Leroy (CS GROUP)" <chleroy@kernel.org>
Cc: linux-kernel@vger.kernel.org, driver-core@lists.linux.dev,
 linuxppc-dev@lists.ozlabs.org, linux-hyperv@vger.kernel.org,
 linux-pci@vger.kernel.org, platform-driver-x86@vger.kernel.org,
 linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org,
 linux-s390@vger.kernel.org, linux-spi@vger.kernel.org,
 virtualization@lists.linux.dev, kvm@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-arm-kernel@lists.infradead.org,
 Gui-Dong Han <hanguidong02@gmail.com>
References: <20260324005919.2408620-1-dakr@kernel.org>
 <20260324005919.2408620-7-dakr@kernel.org>
Content-Language: en-US
From: Armin Wolf <W_Armin@gmx.de>
In-Reply-To: <20260324005919.2408620-7-dakr@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:KKKjGPofriNO2Y7ny8bzLW+ogpO7D8lGPS1ezTtV32qPriElMBO
 jvtg2QtMPBSSFpK+K9f9/W3IHaIUxxM1SjbuL+eF3f/6Z6WRzj/HQbWdJ/0smqYXW/iekvq
 A+6iz88zZSNd21TB/fuLIMalZH7T5q5DuSXS3//CqYIoGgOXkyuC7c9IHxbPHBnE7ZSgdkY
 FFp1rdFLmEZzrK9+h1giQ==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:kIvBWcj/zXQ=;/niOuXlWvI8Na8RihCaK5ylBNR/
 srrlCJLCyA9lW4CfsCokAFkzuwMrqPv1hxPCrVl+o3/G9Pto0dJN3340QJuNp6gEf7QqN2oK9
 LKC83Nmj88bZe7DCaGWJfR/0g5ydKWasjXvlGDS7l/KNi9FoUwruXavLPNBKoMJqrFfcHyXiO
 YHjWwyvHhrIAfKvsyQZ9f9I3l/YYtS2A36GjI2Rl962lt9X/siMC+PtFRjrwN81jZW3j0gy0L
 BN3yLQiE5QE4F1J1JtY4zrgPOusRXm66gVJU1HQ1N/UsmamNpDIoYXCbZ4Z0scFMjv2GOuZSY
 XY24Kfpd5jPheS/ZY41I6KhN/ETQphZ+CGRM6TRkZU3IFsMXsN/+675yetoiHluj/t/RV+Yqa
 RyN1uzTFdTP3DepuCGJm2EF5utIVSeTQR+ELDEvs99i5aDIlNE59OsvSPdCgcyaBZmVxjkQVu
 hdqQu9hoeFVQ+BhC/n9zWnGhiMBJYwMdWoBeW2HxFmYe2MFeCRccDt/zxoRIV1u4euyKiTZpS
 h+12+jr7GFq07QhQpu4dCryF8CSon8bq5AqDmrp1DfCkUQJ8GBqfYdDqRbazQPrCusu4jkCkH
 lVx6Jl/YU+0JuPZNXGz1Lzoz3SBS0GlNM8+EUfJMu2iv2++/C9t0Hce88vqGYfJV5GTpcOdzE
 1Rraw0Hu0AHsWKxPZWLFX9xHbb3eUiQU91U40b/qoOlJ0PtAQ5AXNslFfuMvgL4Nsa99AY4td
 H7Nh0JZkrcUvtMjn5wRx9pTb37VquxRWOmVFtt9H+DGJtREbJwSlL6K+1roV5i4xdMUo6dZl6
 qv80JJUEv81a3AJ/pj1FRQIN+8LSLNe+MDeyELzUYh0cVkxcHMORgBcTYu9FBaHPQfbKgdM3X
 W+5RuvAcyqyeZeqzXSOpzhlkdMw71DE+UL5Pz8HU+w4TA1SHWaBZv7LP0cp6tERs6udufBaOc
 MOa4PJ2+FW+P3AdkkX6SJM2d/mLtvTSD5E/f0G9rP3pF2aPUWgokJidrS4H5nglwB35gGQK7s
 FOEIwKoRRLC/yPI8WPa8BGwhr0Y0sskm44Z310w3X22tuCgOnDMCLkwriwAYwzUm9A8SCsLOQ
 zRfuwowT/m0ltbZcyl8t0U+DlbDkZ7swOdu4HyjyGxhhbeEhqe7N26XWuBv6YMA4YUMhWd4pn
 LutoWP+9OOiv+I6B8YVxJ55DxKp1uIfYow1Zf6Xu7f886SW9jniI4M5TkXKCuXzquwN87AdOn
 NBXnhbDk9BBLXHDxmsxe+4l/eJRJYKFJrFWZJkHdG176FvcfAzSn3m0LCpFCspjOR55SeYP8U
 ECFpgDnNBAa/Y7281OW6kwqRd+VBy5KpYREx3DTPxDAlQkX8EEQvhU8pVNhQbJuGRSwA9kaBV
 /8jlDv+J+0xG7sC023q94FPjqODSYTDOH4+vCPxh+5kgOIwGbhKp++L3A9CnROOP7eWsRNMVS
 D4iDev4moGcoYe/Y7BsyBjID2R8JBy1dCFL06D2LHD7xS+a7lK/CrvnfeYQhc0QQkryDqeMsF
 SFUd/z0GdUyE69S7UHZQpRKFozdQi51g3onh3nsZxwvqoG+prKJei/REhdr+6iBBci+riQtYw
 DoeAesIU3RhePX5yIyl5g+IM86W/JChIxusegqXH+7nR7yWJo3q7IWIVOV73lA9UC3dMhfFPD
 LbVhonrRdcFyfbEWBUDkySL6Jfe2ETA9zBNf7CnD8uBliv2qZH7imJjNyt0g5p52oIkk3+xPV
 FNxGnKg/ZhQgheVOrG8DtHM8zrSphOXfgdT3VZsuUF4oa3ruqh4et02Pr0FCw0ixvAgTKCi4F
 ZwwpujkvWkgm7MqFexnhuMuouV+lv9ok4HdGv9P5QVd3SLXNCP4KgqAicGw9F/AcIhn/A3xgV
 e28ZFhbaw8A1aNcrxZz8p47jYcX7ItJKrwZBh4UNurbqJwXY6emyq14GyKBu20pMgssEuGwwe
 eQmfFeXj3cJs5JdxOqZVeJy8gk+YprXZ1u3hKkhfNPqqy6YRyiAJVU9qgqyoqh7g1rXgGPsXh
 x2+8Z3PYBqX8NuAErNbNzm/6ny++G2kbcz+QF1TNLvFHvOWrUHihir5t1gZ65Crro82R3rPXo
 Ikymh8WlPsXJT1Bb8m3T7d4Jkd76W/VGpkXO6SohAXlxRzoHlwEgqEHC6War2RdunrIWhO5R8
 Q0eRBqELY8xwQCWIET3+6zx001unUTphhkRtj/kCzfJxoa7makbkhP596tqHh0mHshKnAesz8
 NwPV2YRl+pNFioy3GxhWY7bsoZP0aADVbMOGdMpRVwfNmAy1dXsGmk3IC66ihOygpAO8NRATM
 w92ancXYQuJC00Nfpmp0tVsO+FIcrIZykU2ihV50RMoXj4oBdQuk3uz/On10CH7t/lW76oimA
 qLED/JteDwV4ArSC7roh/GnGld5M816IcylJQvQS7vnmc2NrwJaY+5A5Gx9mGequT85WKBwK8
 kDafv57e5h58JLv3asKvJ3b7rRWiJlmJR7HnzQrgnA33mn3O8RFNQ918Ii89u1HXJHz7Vqzdw
 Ierpi50OcJIGayF8QJkzFNnAjSwSMmbMCkLFiWidpUcqdfNJ9/9gqoSUxM+Nv8qeudUOlivAw
 eKB3Le3exz5kdLbTR17L0tBJiqXPJwHcWbhl26giGXt66kLSAJAaR38rRXI5eqXDnjMBaLxNJ
 NIWSbsGzr8F4gKaFagf9kN6nUxFxYiioJz/N7eD71ScMcIt/pl1p9/JlU8sEQhvYJpNPDApk4
 j/5oIkV9g1UAYVj9aE5WE4WZEQv1SqHWFbPWatRH/dzDzTE6kM641bLfBg4wYBeKYzCK03X2N
 EiRzLl5NBQw1nUrnR7qt2yqNlRZC8G6ndJhlsrZZK1SGz8dsfy6+/UNkDGyIKnHvLbN2pU7ol
 IGkwiv5bZOqJhaqw0K7CgjBevzg7riRe4vgYFGemmzsHs7NsosOuO2fBY/6HOICS7T08iYNMd
 hsKFc8H6Zu5v6F7CAMqTgWOgVVjl7bQN1p8G+8XNXC6DW4mfGtHTotHP8pnlnmbf44147NhRG
 sHjxJvk7bb4jFxfFwAY3foZnyNpcvDJS6U2DBlCbSl5/uXugu2NS8aijf4Zwv81O8FYA3tzdy
 /84A142leCVZ0jfKUFy0yDRGCvf4Bs/5qVz+mPSl4Zd33cIEIkSSznd/cvJ6zVuoHXz0WVVz0
 Sp+5AqfA1UjGWcT8MEFtApNuKZOyhAnYURv7PmjiMBPF1EMayfg35ippx38DIVOfo44ZT6Fkp
 vECYE3hIn5DOPJ9w2Xm9pU+Y/4L7VxcasMq2uiV+iUI2vZzqy0+NQnj8S/p20Tr6X8pQOGbSu
 cxbZq69bG5XKXZf45E73ptz/pV96qIsYAAahlkL/3HSLqe4FguY5omNo8fK79U4iWNO/05vV6
 svqWtgkThQzcLMvtm6JcVwSVN+8Gz2K8QUHtenCfbJx5cNrq/P63bl1pVp51mqWlg8DN4Jq08
 hzwotlM1f1EhaI3c3RUsEu7Yt1/1oTIxzNcz1+4PrZg/Aah0ubanqek1x8aK7ddaiklAam+gw
 1sf/XCTdsxong6O5w6xLCt3dVeBg+aTaBvjLyoW35bSGvuWS8QMBNot/2nENyBXsBFNCi8piA
 QLCKNMRhw5JNLl2E8r7qeQHmg9m/Tp9zhGlw5BCAQpkbcYBvtNS4AUDgVRPJqZmr3NuRSdkpk
 jb61sVZu/utBzrH4xnPgz/4akVJEA3D8k5mRC5vPwCmONQYMwpMYRtT5QNLaE+bRuMJCVYZQZ
 vYGayqp2n2B+fMj3AxftIOSPvMv7CBbDdqTUHaiQvwTO3t2waXikEakNOlPx/s8C0oDppXdl1
 ekeMNBEDuQIpqmI6JWIZsQ1pkE86ySMP4ySM54hUugfsXDYSJfmaXK2bGtpqPBQtHIDN+8YFJ
 OYGjSwKME+u7V0dNnSpUb0Vvh4ceyQykcFkmM2fedEpHqsxOoWY7/dCtwOE64L+wh7CCwHz4p
 TrjtIbM9CRBfQVMI9BCKYMtLr/FTGvXR/BOeZv1KRXJtEVIueVK7aAzng/QuRgs+U3FXfWDbx
 I6DA7Wg9nrmH8dKRiEhcQVNddNLZuR1C6o8PnjgpNyAI+zaYCq//eIPiL43CiV6tlkWDcRkho
 sH9M9Iwy8j135LHiJXX8OZINLbIXJHGSYadUS5kvyUrFeB2BnAnrF6MHd85NEd3ezifaOGJSP
 tLlRyUxFWbzghwlZEbFRSNyqDpgE+GPDkgvnMA8fTR1HUvMj6HlWUFXlZAOjzJygo7mBBV0zw
 fqSZv874xy2JxljaWndJTmGfJ2i//MOHOXtLPJphHIUJHmtPNFinuMGoYaVNf1E08PNhKt7OA
 rjOOINAYWj7EcFwdBvgzDF4aB7aOK8SXPXxKNiwL4vLhv88EWq5KDbxuOnKI0/3ep3ZFVLbdc
 SlkT7nkggM7BXeWQKCYXNUiKabWdt3woP0I4axjEv8Z+JlX5Teib22VHQISgN3Q9Ks3QwBy2E
 Onuh3ddn/6JAEdEyxFrvl1zcYVYlDxTJW0IEjbqxDduP84jNyB9k2Tm3WEa9kScZSOEGx/4cd
 K95XgSH3Q1oD7HawNLir63duq6nYvVSczY2DPwKMZNjwg1q4vRBTz1g98lQGzwO3c6WXuvM2o
 MULCf1o7JwHFPBlz6BAPIbDWq1S0Ko2saIvZX1xxwA+m0y23k8AOGeX2Xq5s5jWZkvS6MXND7
 f3n1bYJWsgohJ1f6NoRSjs6KdQxmT1BM4St1VkGIRnByjy3XjRGiSRYFY8PVXyd+enFA7kvjs
 F0T/OnalfZhP7DoT69aRa0bc2N5zsTdqUPmzXnj+lrPO8UfSGvB+Tt96VrAUyr6j0zmTyIDel
 Gtky0gWjlkkXzUY1bot+2huNqiZIVZ4DPaIJlCcdSMFjHxZhzM2rlavMyxR5g9rYCPbKHifd0
 QvWIFPlIHv8LpNzETc9BvZYq3miIx9/PHOdK1ERI4BnoOLEFZ1md6ZCtZLoXmbazc/x1QDnWm
 Y35mET+fejaaLSNM+ZJ7oNcb5G7U/9OtnU+rv+MciD4YjbUJpDe7pxUoCVjOyKLzqFIySgZU0
 flp4qnhzMZw6b9FOFHsERsR2/fPHuKIYQ1fTpbi9r4gaNCUNENeRZn9pjg0ZuYuDpSspqGkU+
 XCBLltEwVb+ZsPuDY+psSraSG//AOBG1DgARd4WYHBdpX6czTkysdD0u6ymmVQL7smo+MZOBH
 e+TIufy34KP1QabGjwm0xiwRlYTJ3m/XqxcS6hx1EgCmKnuGVJa3g9bNOOgVqR/hwgwZ/U4s5
 Aw7279g0PhdlBAj9xcy1GD9F4qHl9iCD84hbXw4gEWmp8ox67G2KsmtKrIYucmxvv1xHbj67y
 eSo/U0DYF5r3qkh6Zj+wQBSizNxROKqsBLkEaT3nTQTGPJlebF2q2h3L86vXU9ttzQYcDULY6
 0lHMcHffqjUgNK4IIXlMy6ONQ+zLp59DsdYKa64Oom8CA=
X-purgate-ID: tlsNG-4011c0/1774381338-BF096900-8898AC5E/0/0
X-purgate-type: clean
X-purgate-size: 4278

Am 24.03.26 um 01:59 schrieb Danilo Krummrich:

> When a driver is probed through __driver_attach(), the bus' match()
> callback is called without the device lock held, thus accessing the
> driver_override field without a lock, which can cause a UAF.
>
> Fix this by using the driver-core driver_override infrastructure taking
> care of proper locking internally.
>
> Note that calling match() from __driver_attach() without the device lock
> held is intentional. [1]

Reviewed-by: Armin Wolf <W_Armin@gmx.de>

> Link: https://lore.kernel.org/driver-core/DGRGTIRHA62X.3RY09D9SOK77P@ker=
nel.org/ [1]
> Reported-by: Gui-Dong Han <hanguidong02@gmail.com>
> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=3D220789
> Fixes: 12046f8c77e0 ("platform/x86: wmi: Add driver_override support")
> Signed-off-by: Danilo Krummrich <dakr@kernel.org>
> ---
>   drivers/platform/wmi/core.c | 36 +++++-------------------------------
>   include/linux/wmi.h         |  4 ----
>   2 files changed, 5 insertions(+), 35 deletions(-)
>
> diff --git a/drivers/platform/wmi/core.c b/drivers/platform/wmi/core.c
> index b8e6b9a421c6..750e3619724e 100644
> --- a/drivers/platform/wmi/core.c
> +++ b/drivers/platform/wmi/core.c
> @@ -842,39 +842,11 @@ static ssize_t expensive_show(struct device *dev,
>   }
>   static DEVICE_ATTR_RO(expensive);
>  =20
> -static ssize_t driver_override_show(struct device *dev, struct device_a=
ttribute *attr,
> -				    char *buf)
> -{
> -	struct wmi_device *wdev =3D to_wmi_device(dev);
> -	ssize_t ret;
> -
> -	device_lock(dev);
> -	ret =3D sysfs_emit(buf, "%s\n", wdev->driver_override);
> -	device_unlock(dev);
> -
> -	return ret;
> -}
> -
> -static ssize_t driver_override_store(struct device *dev, struct device_=
attribute *attr,
> -				     const char *buf, size_t count)
> -{
> -	struct wmi_device *wdev =3D to_wmi_device(dev);
> -	int ret;
> -
> -	ret =3D driver_set_override(dev, &wdev->driver_override, buf, count);
> -	if (ret < 0)
> -		return ret;
> -
> -	return count;
> -}
> -static DEVICE_ATTR_RW(driver_override);
> -
>   static struct attribute *wmi_attrs[] =3D {
>   	&dev_attr_modalias.attr,
>   	&dev_attr_guid.attr,
>   	&dev_attr_instance_count.attr,
>   	&dev_attr_expensive.attr,
> -	&dev_attr_driver_override.attr,
>   	NULL
>   };
>   ATTRIBUTE_GROUPS(wmi);
> @@ -943,7 +915,6 @@ static void wmi_dev_release(struct device *dev)
>   {
>   	struct wmi_block *wblock =3D dev_to_wblock(dev);
>  =20
> -	kfree(wblock->dev.driver_override);
>   	kfree(wblock);
>   }
>  =20
> @@ -952,10 +923,12 @@ static int wmi_dev_match(struct device *dev, const=
 struct device_driver *driver)
>   	const struct wmi_driver *wmi_driver =3D to_wmi_driver(driver);
>   	struct wmi_block *wblock =3D dev_to_wblock(dev);
>   	const struct wmi_device_id *id =3D wmi_driver->id_table;
> +	int ret;
>  =20
>   	/* When driver_override is set, only bind to the matching driver */
> -	if (wblock->dev.driver_override)
> -		return !strcmp(wblock->dev.driver_override, driver->name);
> +	ret =3D device_match_driver_override(dev, driver);
> +	if (ret >=3D 0)
> +		return ret;
>  =20
>   	if (id =3D=3D NULL)
>   		return 0;
> @@ -1076,6 +1049,7 @@ static struct class wmi_bus_class =3D {
>   static const struct bus_type wmi_bus_type =3D {
>   	.name =3D "wmi",
>   	.dev_groups =3D wmi_groups,
> +	.driver_override =3D true,
>   	.match =3D wmi_dev_match,
>   	.uevent =3D wmi_dev_uevent,
>   	.probe =3D wmi_dev_probe,
> diff --git a/include/linux/wmi.h b/include/linux/wmi.h
> index 75cb0c7cfe57..14fb644e1701 100644
> --- a/include/linux/wmi.h
> +++ b/include/linux/wmi.h
> @@ -18,16 +18,12 @@
>    * struct wmi_device - WMI device structure
>    * @dev: Device associated with this WMI device
>    * @setable: True for devices implementing the Set Control Method
> - * @driver_override: Driver name to force a match; do not set directly,
> - *		     because core frees it; use driver_set_override() to
> - *		     set or clear it.
>    *
>    * This represents WMI devices discovered by the WMI driver core.
>    */
>   struct wmi_device {
>   	struct device dev;
>   	bool setable;
> -	const char *driver_override;
>   };
>  =20
>   /**


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 05:49:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 05:49:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261608.1554482 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5H6s-000513-7y; Wed, 25 Mar 2026 05:48:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261608.1554482; Wed, 25 Mar 2026 05: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 1w5H6s-0004yE-1t; Wed, 25 Mar 2026 05:48:54 +0000
Received: by outflank-mailman (input) for mailman id 1261608;
 Wed, 25 Mar 2026 03:08:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <hanguidong02@gmail.com>) id 1w5EbY-00026N-9G
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 03:08:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5EbX-00Ex5p-Lf
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 04:08:23 +0100
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <hanguidong02@gmail.com>)
 id 69c35169-e002-0a2a0a5209dd-0a2a4509e846-8
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 04:08:23 +0100
Received: from [209.85.161.51] (helo=mail-oo1-f51.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <hanguidong02@gmail.com>)
 id 69c351a6-e484-0a2a45090019-d155a133ac1b-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 04:08:23 +0100
Received: by mail-oo1-f51.google.com with SMTP id
 006d021491bc7-67df618d095so991908eaf.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 20:08:23 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1774408102; cv=none;
        d=google.com; s=arc-20240605;
        b=gBHQmR/q1NCtldVqWErJxCK1AkSe9Ku1IWy83KZWlFGr815x0Bpo3nViN0h8Ae4V28
         X5T9c1Jd1WPu2xDSKMD1KxpsytS6eNlWQ7l50hA0ST+B2nOT5SUE3QuRcjU3FV11sOF9
         Xs51YfsGcY27Wq4HnQINBWescZB/WDnGEJDYnKD2UrkFtQ9CbLEE3mBHUQhKiOauWGVv
         wU5mDdstIY9z6ljSfWlg6wn/fZT/W2X1+wqIV6bcOF6DsNs7EJAdwzacVSVLgjju1UAd
         VbU3vgtc+tQKGPp24LpJvqDcw0Ri3QN4SScfI84JTBDZHvduKZo+SA1ZjWr5CIf+wSPF
         mj5g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=L1agqMYRVyCUyftxunjR/Gctujg8X1gDCx6TflvnIV4=;
        fh=Vi6op3luKfE9MPSEiNfXvs1nabWx0kT0LfdXBBLUAps=;
        b=ltV0/p8CXR/yhxHuPs25WaLVNe1SlZ6ElNn1+pBgZ4yW1uYGMiYDypyH2s4n2J868L
         5YE6IMmTYwTp3BBXybbt3ZsqTRflxqFMOLyrxj7yQFZQzA5ltpb85+GKKchpjK5ikBI5
         Itstcf7xtGW/qiX+n9bnuFs9Y0a9ZVMX7h6reQVNQqqJxfSE+IqXogQcvbbJoYoWQi1R
         2TnL2ke38JFINiLbuFeadIOOleP3gnZWOjMz8mnZucHocPWi5LC17whsZ2gwYbjTI/G1
         fYNWp2bF8vDKlXs0MnJDV/Jy0DOn9FoyUxGr7tUGQI6M3VkvpDrut8fgdLNJqMYKzqSA
         ZKVA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774408102; x=1775012902; 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=L1agqMYRVyCUyftxunjR/Gctujg8X1gDCx6TflvnIV4=;
        b=Z3/quq3Yzt0NLZcvqtSxtTqxYPT9qqz9KJThUiuVPBorDXZPv9fXchH8eCAMm4iFI2
         yGkTR2r2PXLO/dfOiHl8q78QErLrKrZp6MiTOQXnU5grX7hXczidbDB/ZkWQdqf64nCA
         SedkvFYKVSuDJV/Q4fWjLppa+j99LUY1UjUsTFFsJvfYsLwJRsubr2Oz7WcKTxlesj9Z
         wQxb2P/cTRErHFF1IVAU8TuCMijS5PcoTVm9JsKKCxvDCqwA8sgEtMkV1JVYRO067u1+
         HVTaq/+s8sCOYoWCfaZzhjM9ds12y2NlPfJiiN2zf++dflmkgROObsBmv45Rdn0q+nMW
         MKCA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774408102; x=1775012902;
        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=L1agqMYRVyCUyftxunjR/Gctujg8X1gDCx6TflvnIV4=;
        b=bmUFRHOhxEHo8QfSA1XeinlyAzGzm1V3FJFYhER56lGIjgOutuXqg1orywvwqP1UvN
         N/FqpZ3VW2GitGAMNZI5XBpgAouyskfnCUn1L9KCYOq+ix1DS0dO/lgOTrMI7l93VcYm
         FQ6eveWzVKOIGLll1Fqr+39HxFwCwPIbhRL4JKhnRp0ovoWJ6sIilREG50YJaRLW54iO
         IuHvCkIdB2iCwtto2vWRDUY56Dv+P+gIceiELurIEhIoLI++yDqoQfK0uquzjSYE+DxX
         E22lFyGyKvkAt2wcX9E+nALDS41DrqSELipPMIpLJXJNY3qPTlnMtF3xgy3uzMk5Cc3d
         44mQ==
X-Forwarded-Encrypted: i=1; AJvYcCVmmOoy1rywfrWAGS4jsUlW6R7EyAKEOa5h6lWJ0CoA3ueHViGr6DUT3ZWJXbGzmMgUrJAAHEGcZUU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy/ED+rHAC8Vrz4vQl/o7/E3fY+Cvjqu7EksaZTBld1S+qYoKEv
	G9NnYoBOHQnanCuu87gePInStvPojdD/uhy1yHrY1Ac0TjqoWZlnqDSrACfarRCqGdZ5kScQ/FS
	x79kBNZGU46Vqb7H3lQwWDiEn3DicbnM=
X-Gm-Gg: ATEYQzzXJAQjX8zTWjH6fzmXZsy1Y6lzWcyTlaOn4trxUffaeBSPHklIr5St3hQkP0x
	qIZwj9DdGkyNfRW8nY8SWrp3rElRwVi4gXKv6EHgvLU8y6uqE3pm1dT8UUxkiKffzdQa5b4PrQV
	jtN7FqIhsBF0G6jZH39ceqTB/XlCUqUebWP6PTwosOAJQNxO+rKWuSNjfPXtssNxSDhjMvCKnZP
	6vtb8dxpoNqSKH8RNlI0GJX25B8x0q/nVxRqWakEyVjJJ6kReJthcFHvQWhc7zpLnK21xhqvaML
	LV391NZ7HP26e9rmX2BowR8gSliHV2xpPcPWT3J6cbIs3Io0Cwh//8fGc9rV0YK2qyf4UiKWwl9
	fxNBbQeA=
X-Received: by 2002:a05:6820:1787:b0:67b:e203:6c8d with SMTP id
 006d021491bc7-67dff53efc8mr1216692eaf.52.1774408101668; Tue, 24 Mar 2026
 20:08:21 -0700 (PDT)
MIME-Version: 1.0
References: <20260324005919.2408620-1-dakr@kernel.org> <20260324005919.2408620-6-dakr@kernel.org>
In-Reply-To: <20260324005919.2408620-6-dakr@kernel.org>
From: Gui-Dong Han <hanguidong02@gmail.com>
Date: Wed, 25 Mar 2026 11:08:11 +0800
X-Gm-Features: AQROBzD64p8E8k4KuR51RUiYotZVMtC9NAESBq-7RvJsmuQyKbQ4KJC_uWmm37s
Message-ID: <CALbr=La3gV5VmoXauF-fkmXveoJGtTvef1d1nrLtUZNHx2eF+w@mail.gmail.com>
Subject: Re: [PATCH 05/12] PCI: use generic driver_override infrastructure
To: Danilo Krummrich <dakr@kernel.org>
Cc: Russell King <linux@armlinux.org.uk>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
	"Rafael J. Wysocki" <rafael@kernel.org>, Ioana Ciornei <ioana.ciornei@nxp.com>, 
	Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Bjorn Helgaas <bhelgaas@google.com>, Armin Wolf <W_Armin@gmx.de>, 
	Bjorn Andersson <andersson@kernel.org>, Mathieu Poirier <mathieu.poirier@linaro.org>, 
	Vineeth Vijayan <vneethv@linux.ibm.com>, Peter Oberparleiter <oberpar@linux.ibm.com>, 
	Heiko Carstens <hca@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>, 
	Alexander Gordeev <agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>, 
	Sven Schnelle <svens@linux.ibm.com>, Harald Freudenberger <freude@linux.ibm.com>, 
	Holger Dengler <dengler@linux.ibm.com>, Mark Brown <broonie@kernel.org>, 
	"Michael S. Tsirkin" <mst@redhat.com>, Jason Wang <jasowang@redhat.com>, 
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>, =?UTF-8?Q?Eugenio_P=C3=A9rez?= <eperezma@redhat.com>, 
	Alex Williamson <alex@shazbot.org>, Juergen Gross <jgross@suse.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, 
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
	"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>, linux-kernel@vger.kernel.org, 
	driver-core@lists.linux.dev, linuxppc-dev@lists.ozlabs.org, 
	linux-hyperv@vger.kernel.org, linux-pci@vger.kernel.org, 
	platform-driver-x86@vger.kernel.org, linux-arm-msm@vger.kernel.org, 
	linux-remoteproc@vger.kernel.org, linux-s390@vger.kernel.org, 
	linux-spi@vger.kernel.org, virtualization@lists.linux.dev, 
	kvm@vger.kernel.org, xen-devel@lists.xenproject.org, 
	linux-arm-kernel@lists.infradead.org, Wang Jiayue <akaieurus@gmail.com>, 
	Yao Zi <me@ziyao.cc>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-bad1c0/1774408103-608BDA73-485AF369/0/0
X-purgate-type: clean
X-purgate-size: 8923

On Tue, Mar 24, 2026 at 9:00=E2=80=AFAM Danilo Krummrich <dakr@kernel.org> =
wrote:
>
> When a driver is probed through __driver_attach(), the bus' match()
> callback is called without the device lock held, thus accessing the
> driver_override field without a lock, which can cause a UAF.
>
> Fix this by using the driver-core driver_override infrastructure taking
> care of proper locking internally.
>
> Note that calling match() from __driver_attach() without the device lock
> held is intentional. [1]
>
> Link: https://lore.kernel.org/driver-core/DGRGTIRHA62X.3RY09D9SOK77P@kern=
el.org/ [1]
> Reported-by: Gui-Dong Han <hanguidong02@gmail.com>
> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=3D220789
> Fixes: 782a985d7af2 ("PCI: Introduce new device binding path using pci_de=
v.driver_override")
> Signed-off-by: Danilo Krummrich <dakr@kernel.org>

Tested on QEMU PCI with multiple debug configs enabled. The original
PoCs run cleanly without triggering the issue.

Thanks Danilo.

Tested-by: Gui-Dong Han <hanguidong02@gmail.com>
Reviewed-by: Gui-Dong Han <hanguidong02@gmail.com>

> ---
>  drivers/pci/pci-driver.c           | 11 +++++++----
>  drivers/pci/pci-sysfs.c            | 28 ----------------------------
>  drivers/pci/probe.c                |  1 -
>  drivers/vfio/pci/vfio_pci_core.c   |  5 ++---
>  drivers/xen/xen-pciback/pci_stub.c |  6 ++++--
>  include/linux/pci.h                |  6 ------
>  6 files changed, 13 insertions(+), 44 deletions(-)
>
> diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
> index dd9075403987..d10ece0889f0 100644
> --- a/drivers/pci/pci-driver.c
> +++ b/drivers/pci/pci-driver.c
> @@ -138,9 +138,11 @@ static const struct pci_device_id *pci_match_device(=
struct pci_driver *drv,
>  {
>         struct pci_dynid *dynid;
>         const struct pci_device_id *found_id =3D NULL, *ids;
> +       int ret;
>
>         /* When driver_override is set, only bind to the matching driver =
*/
> -       if (dev->driver_override && strcmp(dev->driver_override, drv->nam=
e))
> +       ret =3D device_match_driver_override(&dev->dev, &drv->driver);
> +       if (ret =3D=3D 0)
>                 return NULL;
>
>         /* Look at the dynamic ids first, before the static ones */
> @@ -164,7 +166,7 @@ static const struct pci_device_id *pci_match_device(s=
truct pci_driver *drv,
>                  * matching.
>                  */
>                 if (found_id->override_only) {
> -                       if (dev->driver_override)
> +                       if (ret > 0)
>                                 return found_id;
>                 } else {
>                         return found_id;
> @@ -172,7 +174,7 @@ static const struct pci_device_id *pci_match_device(s=
truct pci_driver *drv,
>         }
>
>         /* driver_override will always match, send a dummy id */
> -       if (dev->driver_override)
> +       if (ret > 0)
>                 return &pci_device_id_any;
>         return NULL;
>  }
> @@ -452,7 +454,7 @@ static int __pci_device_probe(struct pci_driver *drv,=
 struct pci_dev *pci_dev)
>  static inline bool pci_device_can_probe(struct pci_dev *pdev)
>  {
>         return (!pdev->is_virtfn || pdev->physfn->sriov->drivers_autoprob=
e ||
> -               pdev->driver_override);
> +               device_has_driver_override(&pdev->dev));
>  }
>  #else
>  static inline bool pci_device_can_probe(struct pci_dev *pdev)
> @@ -1722,6 +1724,7 @@ static const struct cpumask *pci_device_irq_get_aff=
inity(struct device *dev,
>
>  const struct bus_type pci_bus_type =3D {
>         .name           =3D "pci",
> +       .driver_override =3D true,
>         .match          =3D pci_bus_match,
>         .uevent         =3D pci_uevent,
>         .probe          =3D pci_device_probe,
> diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
> index 16eaaf749ba9..a9006cf4e9c8 100644
> --- a/drivers/pci/pci-sysfs.c
> +++ b/drivers/pci/pci-sysfs.c
> @@ -615,33 +615,6 @@ static ssize_t devspec_show(struct device *dev,
>  static DEVICE_ATTR_RO(devspec);
>  #endif
>
> -static ssize_t driver_override_store(struct device *dev,
> -                                    struct device_attribute *attr,
> -                                    const char *buf, size_t count)
> -{
> -       struct pci_dev *pdev =3D to_pci_dev(dev);
> -       int ret;
> -
> -       ret =3D driver_set_override(dev, &pdev->driver_override, buf, cou=
nt);
> -       if (ret)
> -               return ret;
> -
> -       return count;
> -}
> -
> -static ssize_t driver_override_show(struct device *dev,
> -                                   struct device_attribute *attr, char *=
buf)
> -{
> -       struct pci_dev *pdev =3D to_pci_dev(dev);
> -       ssize_t len;
> -
> -       device_lock(dev);
> -       len =3D sysfs_emit(buf, "%s\n", pdev->driver_override);
> -       device_unlock(dev);
> -       return len;
> -}
> -static DEVICE_ATTR_RW(driver_override);
> -
>  static struct attribute *pci_dev_attrs[] =3D {
>         &dev_attr_power_state.attr,
>         &dev_attr_resource.attr,
> @@ -669,7 +642,6 @@ static struct attribute *pci_dev_attrs[] =3D {
>  #ifdef CONFIG_OF
>         &dev_attr_devspec.attr,
>  #endif
> -       &dev_attr_driver_override.attr,
>         &dev_attr_ari_enabled.attr,
>         NULL,
>  };
> diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
> index bccc7a4bdd79..b4707640e102 100644
> --- a/drivers/pci/probe.c
> +++ b/drivers/pci/probe.c
> @@ -2488,7 +2488,6 @@ static void pci_release_dev(struct device *dev)
>         pci_release_of_node(pci_dev);
>         pcibios_release_device(pci_dev);
>         pci_bus_put(pci_dev->bus);
> -       kfree(pci_dev->driver_override);
>         bitmap_free(pci_dev->dma_alias_mask);
>         dev_dbg(dev, "device released\n");
>         kfree(pci_dev);
> diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci=
_core.c
> index d43745fe4c84..460852f79f29 100644
> --- a/drivers/vfio/pci/vfio_pci_core.c
> +++ b/drivers/vfio/pci/vfio_pci_core.c
> @@ -1987,9 +1987,8 @@ static int vfio_pci_bus_notifier(struct notifier_bl=
ock *nb,
>             pdev->is_virtfn && physfn =3D=3D vdev->pdev) {
>                 pci_info(vdev->pdev, "Captured SR-IOV VF %s driver_overri=
de\n",
>                          pci_name(pdev));
> -               pdev->driver_override =3D kasprintf(GFP_KERNEL, "%s",
> -                                                 vdev->vdev.ops->name);
> -               WARN_ON(!pdev->driver_override);
> +               WARN_ON(device_set_driver_override(&pdev->dev,
> +                                                  vdev->vdev.ops->name))=
;
>         } else if (action =3D=3D BUS_NOTIFY_BOUND_DRIVER &&
>                    pdev->is_virtfn && physfn =3D=3D vdev->pdev) {
>                 struct pci_driver *drv =3D pci_dev_driver(pdev);
> diff --git a/drivers/xen/xen-pciback/pci_stub.c b/drivers/xen/xen-pciback=
/pci_stub.c
> index e4b27aecbf05..79a2b5dfd694 100644
> --- a/drivers/xen/xen-pciback/pci_stub.c
> +++ b/drivers/xen/xen-pciback/pci_stub.c
> @@ -598,6 +598,8 @@ static int pcistub_seize(struct pci_dev *dev,
>         return err;
>  }
>
> +static struct pci_driver xen_pcibk_pci_driver;
> +
>  /* Called when 'bind'. This means we must _NOT_ call pci_reset_function =
or
>   * other functions that take the sysfs lock. */
>  static int pcistub_probe(struct pci_dev *dev, const struct pci_device_id=
 *id)
> @@ -609,8 +611,8 @@ static int pcistub_probe(struct pci_dev *dev, const s=
truct pci_device_id *id)
>
>         match =3D pcistub_match(dev);
>
> -       if ((dev->driver_override &&
> -            !strcmp(dev->driver_override, PCISTUB_DRIVER_NAME)) ||
> +       if (device_match_driver_override(&dev->dev,
> +                                        &xen_pcibk_pci_driver.driver) > =
0 ||
>             match) {
>
>                 if (dev->hdr_type !=3D PCI_HEADER_TYPE_NORMAL
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index 1c270f1d5123..57e9463e4347 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -575,12 +575,6 @@ struct pci_dev {
>         u8              supported_speeds; /* Supported Link Speeds Vector=
 */
>         phys_addr_t     rom;            /* Physical address if not from B=
AR */
>         size_t          romlen;         /* Length if not from BAR */
> -       /*
> -        * Driver name to force a match.  Do not set directly, because co=
re
> -        * frees it.  Use driver_set_override() to set or clear it.
> -        */
> -       const char      *driver_override;
> -
>         unsigned long   priv_flags;     /* Private flags for the PCI driv=
er */
>
>         /* These methods index pci_reset_fn_methods[] */
> --
> 2.53.0
>


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 06:12:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 06:12:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261692.1554501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5HTO-0002N0-7H; Wed, 25 Mar 2026 06:12:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261692.1554501; Wed, 25 Mar 2026 06:12:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5HTO-0002Mt-4Q; Wed, 25 Mar 2026 06:12:10 +0000
Received: by outflank-mailman (input) for mailman id 1261692;
 Wed, 25 Mar 2026 06:12:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5HTN-0002Mn-8b
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 06:12:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5HTM-003P1w-4d
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 07:12:08 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c37c8a-bab6-0a2a0a5309dd-0a2a4505a7da-36
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 07:12:07 +0100
Received: from [209.85.221.49] (helo=mail-wr1-f49.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c37cb7-5aeb-0a2a45050019-d155dd31c900-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 07:12:07 +0100
Received: by mail-wr1-f49.google.com with SMTP id
 ffacd0b85a97d-439bcec8613so3209262f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 23:12:07 -0700 (PDT)
Received: from ?IPV6:2003:ca:b744:7ebf:2977:bdbf:7f63:e225?
 (p200300cab7447ebf2977bdbf7f63e225.dip0.t-ipconnect.de.
 [2003:ca:b744:7ebf:2977:bdbf:7f63:e225])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b64703c7fsm44217920f8f.23.2026.03.24.23.12.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 23:12:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774419127; x=1775023927; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bA0B+33Q8q17uugzakYy1qRB96eZDNIMwdbLP1Crkjk=;
        b=Vm/d6/3TgDTdflk+HvQptXT15EFKWtL4dgTARPJP48F4nnQs8S+UWdIQJ2IP9lIfs/
         dJw+Swp0CIE4K2e/UfmRxqcdz9BhX52Ivl9BOniPS17ZM59n6GCDEkZGOCdoFSHLgzjv
         T3FJFNsnyDMPOOqpX3SP6gHAbn0r3VWLs1Lgk6QjJOmjo+Z0Imn4XeTTUzXztjPpuiCs
         hnqtFk3FyKikoo8KHOggJfMVlKEVe4hAvJudgjYN8CGpY7AuN1fJ81dfyrRK5vLWMeMF
         U2jYNwYtGV/GWE4BPKSwgW3O2PLxKaKrYwPIh1bSl1jnclKj98t0bGu6s81HyWyXsFAt
         t9kQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774419127; x=1775023927;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bA0B+33Q8q17uugzakYy1qRB96eZDNIMwdbLP1Crkjk=;
        b=Wc1l9flnZifkr+2tkaFRyCyNDdjhey0g9iQ8+ECfK8nDK0YdDj4Go1s96ka+sXoEun
         rwZrszv6a5EQSE5/t1PjbCNPx680Bxal9I9KwI5SLj1VWqFklXGOefMKEV/q1SsRiYMV
         ObZ80X1UEoaNiZvEPEcHppJAmlhROlrLieGkU/oMjeFuAdhxAg7Krt4DUNpkH6G62YLk
         +LOIeqFZYOwT5bJwE9XypUd7avp9zP0+Q3WXabPIRso0uEavniuevPFrLzrVBoqKDcIp
         pVQH9ZVGZjB9i+4u4wceIshcqs6WTP37XALjN42PhUjOlXli8QAu+YBIZxxbWuG5cgK0
         2ZTw==
X-Forwarded-Encrypted: i=1; AJvYcCVcgLEYayZK5Wr198G3IoKVBgwIjee66AdnQu4pbGtqoiOpRQGw04FOxPPmYr0MdhJ0fH314mBnCrw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyolhHg6+66LRqwQ5OMg6Po+BBIh8uofVEb6WeHKhIfwVl3eDE+
	VABuroCNytT6fxWcrSvgck3hHsKTFrJUlJAgrn1XQWvjrzfFV/pOwIxKEXCI7WrX6Q==
X-Gm-Gg: ATEYQzyyokqq62p1w4niD6LkAIaEJybd5mC17sV/PmIPAPKoZN3RQgTaTvjPmbowMqL
	c/jkyiVkZj3kQt7xb9+dJeIj1LoAjuCmsA9hgPW790bKHeLfg+u2THSNyNW2yrKW0bdR69+NMos
	3QksnX7ICL/pJakOqOgiweNZuCj4nnOrv20Ivpbt8w0z8C25pg1pyfPz+WmCqHU5h9N74QKV1/R
	2irVrdE63Ks8V6bhHBFfes+HFF9PzQ1LKp9GzsedEYerrIVqy2uZ0+2vabpL0uP1eSXBujF8/cc
	eEZXvzI5z7yltwqgmiMShaziuVrqZD483VVNTMrfwtUYOtwRp3S2BvJKuQK5VlOxeFlJmwnDI5/
	k3/kx9LvK0OKh7K5p3LnuRSlmQb/paMKXr8CeQ9vR9uXqlQQmitQkHfsKcgCL+b+YS/123G2Zpk
	Suz6v0fg/05ZsgvWwOsRCwkEjEZvIuariLbxaHjnkzJuVnjhnFDW2n9984h7Fd3N6gMsIlZaEcT
	BpI5mlVUgtU9DjL8xkSemDrzzJJWM3iIMw3wIJXtOpYfCEHebCRmIkeKtkb
X-Received: by 2002:a05:6000:2583:b0:43b:5037:7ef3 with SMTP id ffacd0b85a97d-43b889a4c9dmr3060676f8f.20.1774419126919;
        Tue, 24 Mar 2026 23:12:06 -0700 (PDT)
Message-ID: <d66de28e-ab0e-44cf-b255-deb5856f7c58@suse.com>
Date: Wed, 25 Mar 2026 07:12:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/5] EFI: avoid OOB config file reads
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Marek Marczykowski <marmarek@invisiblethingslab.com>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 Kamil Frankowicz <kamil.frankowicz@cert.pl>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <63284ab7-8e38-4448-a789-1b9c23c4d95c@suse.com>
 <f56a8eac-bd35-496d-ae9a-b429f8305b31@suse.com>
 <d86ec941-ba0a-4beb-b213-7d1bc9a1ec19@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d86ec941-ba0a-4beb-b213-7d1bc9a1ec19@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1774419127-9F082488-49006692/0/0
X-purgate-type: clean
X-purgate-size: 1364

On 24.03.2026 18:13, Andrew Cooper wrote:
> On 24/03/2026 4:36 pm, Jan Beulich wrote:
>> The message emitted by pre_parse() pretty clearly states the intention.
>> Make sure we actually do so.
>>
>> Fixes: bf6501a62e80 ("x86-64: EFI boot code")
>> Reported-by: Kamil Frankowicz <kamil.frankowicz@cert.pl>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>
>> --- a/xen/common/efi/boot.c
>> +++ b/xen/common/efi/boot.c
>> @@ -907,8 +907,13 @@ static void __init pre_parse(const struc
>>              start = 0;
>>      }
>>      if ( file->size && end[-1] )
>> +    {
>>           PrintStr(L"No newline at end of config file,"
>>                     " last line will be ignored.\r\n");
>> +
>> +         for ( UINTN pos = file->size; pos-- && *--end; )
>> +             *end = 0;
>> +    }
> 
> I agree this is what the the function intended.
> 
> But, ignoring the final line is rude and there's no viable editor in a
> UEFI shell to fix it.

On all the early EFI systems I had in use there was one. I'd need to check
more recent systems, though. (I know some come without any EFI shell at all.)

>  Can't we just copy the file into a
> one-byte-bigger buffer and terminate it properly?

If that would have been possible with equally little churn, I would have
done it that way. Of course it is possible in principle.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 06:14:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 06:14:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261699.1554510 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5HVq-0002vh-J2; Wed, 25 Mar 2026 06:14:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261699.1554510; Wed, 25 Mar 2026 06:14:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5HVq-0002va-GJ; Wed, 25 Mar 2026 06:14:42 +0000
Received: by outflank-mailman (input) for mailman id 1261699;
 Wed, 25 Mar 2026 06:14:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5HVp-0002vU-Ar
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 06:14:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5HVo-00BF7G-Mx
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 07:14:40 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c37d24-2eae-0a2a0a5409dd-0a2a4504a80e-40
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 07:14:40 +0100
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c37d50-c823-0a2a45040019-d155802ee01d-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 07:14:40 +0100
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-486b96760easo17999055e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 23:14:40 -0700 (PDT)
Received: from ?IPV6:2003:ca:b744:7ebf:2977:bdbf:7f63:e225?
 (p200300cab7447ebf2977bdbf7f63e225.dip0.t-ipconnect.de.
 [2003:ca:b744:7ebf:2977:bdbf:7f63:e225])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4871174f39dsm91805965e9.11.2026.03.24.23.14.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 23:14:39 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774419280; x=1775024080; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/HlyRX+r/IDkbsHeStt90nsR1iHgeC2rDxiFV9PRqYg=;
        b=gJFEJg/gimyvDB4TPV+vmb4rpHo+UNlDJWjcgl9PyeUlFCQysfypNS8krN152l+zJ8
         K91YFRtlCrzZCE7M4mGqtLXyrUbym/kinh2KkeLDFH2iVXv2nq+bO0yeNTHsu+sWJc7T
         MT5j5MqVGlia1bkz3U1LDYkQX36Y9eFc5IMTy0MlEgdiOuQkza2779ldcS0hCHuj5oBV
         QE98+a7bBB1gW+CWESydcYcF/ox2JrFJ256+ej1ELPLEGTg+epNqM6g3M5hosEk2Vjj/
         PUzjvuHc4nnDICtFywkR42bXuhjny1VIGLCNpQ8qClp2KkA5YSfrmel3RXfCQJG5AtjS
         hK/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774419280; x=1775024080;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/HlyRX+r/IDkbsHeStt90nsR1iHgeC2rDxiFV9PRqYg=;
        b=rdENaeuWpiaPXvbBSjODvKyyVw09nJLlqIUY5joqJEAvymXcLGSbCPsYMBaKLQru5U
         J2Q8beG7k4GwQxt/Wp1IYggZaj8e0CaKTbc/f0UwEKgqyJC5sSHdp8mTLoukw9O2ewbW
         ktAUJ/7gZ+fH6Gv53itG8yp2HQ7maxwzt4UDi3AZm2Kb45/f2t7+gYdjTDyuYfkl7ma4
         HGFzLaajllzjnWzn2hWaO8/e3xwBcOlUWq1YgH08iROLipvnHfKG+KZCbWV+HrOvfCjY
         1jHSBPjFED/cxq/74hPY7yx8fQlVI7DnZn1jcRBjhZeGEd+qgtkwg7CitpOuBt/e5R5m
         J2Ng==
X-Gm-Message-State: AOJu0YzaI5ss06YkwMXUWOLZB/MuMntfy8z6y9Li/m1VUsHDX1zO4heT
	6MpSH2YIwjzONbwjVStN4U6Pa6WzsyM0OrYTi9XG2k2on3FT+b8VpBJqOv4olvY/wQ==
X-Gm-Gg: ATEYQzz9+KzosI89bclQ4Y4NgNUb2sIBsoCpkBVug26hYCm0Iib8oC+BpoMWoTR9NFU
	9YoqMn4Ctw4CqqaB2tiT/77SNQ3YO48UwjWl/A1nrgrY5M1FW2ecq3E6Ocq06kr5NucsJw+XDNB
	0Mx3DYBp3cniFdHv8b3RGyzzjz7a5MfuV/WV7kPL6wlIc552KZUf0NEexYHHxJ42MgqjDEo1vDa
	mUfa6dfp65ekvOxfoMYjmdPMEk7qGDQK4c+QzloQLtdUqC+oh8rxnHAijvPAqLtjqPktMbJUheN
	fH4oyrhWAaOJYP21wVahNYUiGSapdz/ED0oRaEheYYUdb1sYNQOGBh/z4E+CSwmdhJHBNLC02Mq
	ymXWcUmOEkc66p00OckL53UpvZLKrwxVgBdQwqMPZGF1R1LNrNNeSpmLS5xAb4c8k1nr5pDBQ65
	Yozi5NyJLTexxd06pJLNVD794FJbu1FzDtMH5C7lIw/YhrniAXjFmOW96pw8SjhyGtTtyIRZp00
	ilU9ysusk0gely+LVAec2zYECLYCJ4mlrJk9Y+Hp+cBJp0jAU3zStD+Xk7y
X-Received: by 2002:a05:600c:4705:b0:485:a4de:f4f9 with SMTP id 5b1f17b1804b1-4871608406dmr32918685e9.27.1774419279842;
        Tue, 24 Mar 2026 23:14:39 -0700 (PDT)
Message-ID: <f27fc3a2-77a3-4b14-99fd-a4d4dcb17585@suse.com>
Date: Wed, 25 Mar 2026 07:14:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] llc-coloring: improve checking while parsing
To: Mykola Kvach <xakep.amatop@gmail.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>, Kamil Frankowicz <kamil.frankowicz@cert.pl>
References: <63284ab7-8e38-4448-a789-1b9c23c4d95c@suse.com>
 <97d6ba6c-4ffe-4e1b-814a-d51a0bcf363e@suse.com>
 <CAGeoDV-zPfn5iDN6gcwq2bA5vcG0SUsgZbQufDWpux1rugXFEg@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAGeoDV-zPfn5iDN6gcwq2bA5vcG0SUsgZbQufDWpux1rugXFEg@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1774419280-1227B9D1-B8C1DCDA/0/0
X-purgate-type: clean
X-purgate-size: 1349

On 24.03.2026 17:51, Mykola Kvach wrote:
> On Tue, Mar 24, 2026 at 6:37 PM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> We can easily avoid the risk of wrapping UINT_MAX <-> 0 by applying a
>> check against the compile-time-constant maximum number of colors.
>>
>> Additionally the overflow checks suffered from an off-by-1, as the parsed
>> ranges are inclusive (e.g. end == start being possible, requiring 1 array
>> slot, while availability of 0 slots was checked in that case).
>>
>> Fixes: 6cdea3444eaf ("xen/arm: add Dom0 cache coloring support")
>> Reported-by: Kamil Frankowicz <kamil.frankowicz@cert.pl>
> 
> For reference, I previously reported the UINT_MAX wraparound aspect here [1]
> and later also here [2].

I've added another Reported-by, yet I wonder (in particular wrt [2]): Why did
you not simply send patches? They likely would long have gone in.

Jan

> The off-by-1 in the inclusive-range accounting looks
> like a separate issue.
> 
> Those threads also mention a few other related corner cases.
> 
> 
> Best regards,
> Mykola
> 
> 
> [1] https://patchew.org/Xen/20241217170637.233097-1-carlo.nonato@minervasys.tech/20241217170637.233097-5-carlo.nonato@minervasys.tech/#db5d6a67-61d9-48d3-b6c4-213c1cbbda21@gmail.com
> [2] https://lists.xen.org/archives/html/xen-devel/2026-01/msg00369.html


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 06:19:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 06:19:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261711.1554520 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5HaR-0003l2-46; Wed, 25 Mar 2026 06:19:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261711.1554520; Wed, 25 Mar 2026 06:19:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5HaR-0003kl-0o; Wed, 25 Mar 2026 06:19:27 +0000
Received: by outflank-mailman (input) for mailman id 1261711;
 Wed, 25 Mar 2026 06:19:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5HaP-0003jp-TE
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 06:19:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5HaN-00BGic-GR
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 07:19:25 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c37e65-5cb7-0a2a0a5109dd-0a2a4505962a-20
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 07:19:25 +0100
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c37e6c-5aeb-0a2a45050019-d1558033cdb4-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 07:19:24 +0100
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-486fda2a389so38164485e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 23:19:24 -0700 (PDT)
Received: from ?IPV6:2003:ca:b744:7ebf:2977:bdbf:7f63:e225?
 (p200300cab7447ebf2977bdbf7f63e225.dip0.t-ipconnect.de.
 [2003:ca:b744:7ebf:2977:bdbf:7f63:e225])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48711764509sm104512755e9.13.2026.03.24.23.19.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Mar 2026 23:19:23 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774419564; x=1775024364; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mNo7+tkDrQm2r/ihneTJZEYXIu63vD+e4rWhWD8j3Pg=;
        b=HV6zCoLhKcrxsnqpgHQ0DlKLZAjXwjyWLKR0i4GOg3+Tqg3GLdoha4vsiJYBwMXzUH
         HAqIbUlivQqSuzGOV6h/8GZ++C4T8/tJ3NtZ9OOMtQfivfbNITEKZLdIcw2d4epl+Loa
         xWnSZ1z+OEwL+FStPxIHqaLu3TSDpMUi3RFBOJ0u2CsMNm5aE8xkQlTEAd6r6/sNOc63
         pvjhrfs3RTV5NWcG4qTKHXZx7D8ORPvz775V6CQxJ8pviwdj5uOwBkGzk+y4ppDdAQ9k
         7nSKMiVxyWdDL/aWslwoP8G7vjIb7E7jGPAxG7cab2of0PBnGENwrW+FiFF0CQ0WpJ0i
         +s/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774419564; x=1775024364;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mNo7+tkDrQm2r/ihneTJZEYXIu63vD+e4rWhWD8j3Pg=;
        b=FcBukMTuI6+skLk+YllBbC+nAKIkLRsWNt847mt4HZnSpVz0EAKrKA9SEyHAPsV/N/
         4CQXKUoajwVc1M/m/1lh0dKrPByjMwyPoRtLslgs+XGaMbP0EDffvj4VjmTZW0xwi8A7
         Ge1ZLV8B1ioSvl0I8Bq7lsIT8uME3Paz3rfLL7cJ3MfTmV9mCJPwPDDDBorPoIvaQh1L
         qJTLOXIs0T/ZaKbv4ztcIJ18iD1LqLUmBiupmUzkI14HnH1i5uElRWr5G1HJaVngSj0a
         b51IZmfC3aB8o2MK7+4gaEbnXqfwU2YYiEfGKhwMNieC/CcHJcgm2v0e7iE+s7YH/87R
         yYgA==
X-Forwarded-Encrypted: i=1; AJvYcCVAbbpWi6sU26ePlSNI/nAXKnv3P2Dwm/EChPSXMZ40gzXWX08HfiIW2aBA+MMANVCwnLC73KHGITs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzFGC40MjJVx1vWaRbAQFW+xDrgEU9GyNDJ8rYST8IQ0oa3kStB
	LMMRtuT5r+tT4b3rKwYb7Aye/StJnm5AEkCiOGLia41aGJvoCTdDR5Csw1UHbVnzoQ==
X-Gm-Gg: ATEYQzwbuQ1tbahZ2G2A+DLz596QxvpckfkC/b492A57SYiHAeO2TBHqAS/SRaCMcpc
	68FNj03fD3NCrucX4MhQs3olyRTEkzFuewPiF0sFSFvfiNKGgcKUkkag1dNTmWuT1sh9J524oQe
	yGubpiCnYqhyOXugVnsC5TVsGr7JsFXkq4SSua7I/ziwdpPap3KShe2K4hYlcAOygyCdES/ArUg
	gA29uE+iU/6ROQLdRPhJG4nGAjplnJm6glAISSaZcGowcY22difXuVx25QoBx8N7pkpR/r99lyW
	jg7NhD6YdDlvJxiToTT/UrHUB9FWDIJ9beehwnUvuRSl+eowtAd8L0glSNPfodyLhW1Z31x7vQe
	JA7HzRT0jYePUiSVjRfg0uwe/CxvVxGy3h5v6MNW9xgZGqOaQ9/EGtCcW4Hzi/Nz5Gsd7HykT24
	83d5HqLtxHjI/vQuU4wTzDiCH/7H/MbdDs40a5PpBflX//nKyyt5xcpMAdiFsSCZ5CbhWghVQhe
	mMf7f/sAIeB5NeXOvsVaNGQ8mKQdxc20yzXjsla7GchI7M5oj9VSGuxNA0R
X-Received: by 2002:a05:600c:3b22:b0:485:35a4:939c with SMTP id 5b1f17b1804b1-4871608dca6mr28945105e9.29.1774419564274;
        Tue, 24 Mar 2026 23:19:24 -0700 (PDT)
Message-ID: <845ddb3d-9493-4a01-96d8-3c9386a64e50@suse.com>
Date: Wed, 25 Mar 2026 07:19:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] arinc653: clear entire .dom_handle[] for Dom0 slots
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <3cde1263-d5fd-4bb0-a0ce-c5bf5d735a20@suse.com>
 <435e3eb6-76c8-4ac3-8838-ccb7174a13e7@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: <435e3eb6-76c8-4ac3-8838-ccb7174a13e7@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1774419564-23A8F488-0EAFE639/0/0
X-purgate-type: clean
X-purgate-size: 1482

On 24.03.2026 18:10, Stewart Hildebrand wrote:
> On 3/24/26 11:54, Jan Beulich wrote:
>> When that code still lived in a653sched_init(), it was redundant with the
>> earlier memset() / xzalloc(). Once moved, the full structure field needs
>> setting, as dom_handle_cmp() uses memcmp().
> 
> The whole a653sched_priv_t *sched_priv is still allocated in a653sched_init()
> with xzalloc(), so it's still redundant post-move.

No, because arinc653_sched_set() may have "polluted" the entries in the
meantime.

> With that said, the code is
> only setting the first element (of an already-zeroed array), which is suspicious
> and misleading. What we really should be doing here is copy unit->domain->handle
> to sched_priv->schedule[entry].dom_handle.

I can switch to doing that, but aiui for Dom0 that's still going to be
all zeroes. The difference will become relevant when switching to use
of is_control_domain() in the surrounding if().

>> Fixes: 9f0c658baedc ("arinc: add cpu-pool support to scheduler")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> There being no "else" to the if(), what about other Dom0 vCPU-s?
> 
> The condition is checking minor frame entries (i.e. available slots in the
> schedule). Once those are exhausted, Dom0 units beyond
> ARINC653_MAX_DOMAINS_PER_SCHEDULE would never be scheduled.

And hence the system overall would likely misbehave, without any halfway
clear indication in the log as to why?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 06:23:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 06:23:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261720.1554529 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5HeF-0005HO-JO; Wed, 25 Mar 2026 06:23:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261720.1554529; Wed, 25 Mar 2026 06:23:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5HeF-0005HG-Fn; Wed, 25 Mar 2026 06:23:23 +0000
Received: by outflank-mailman (input) for mailman id 1261720;
 Wed, 25 Mar 2026 06:23:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w5HeE-0005H9-3M
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 06:23:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5HeD-008XeZ-5U
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 07:23:21 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c37f53-2eae-0a2a0a5409dd-0a2a4504b32a-8
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 07:23:21 +0100
Received: from [209.85.208.179] (helo=mail-lj1-f179.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c37f58-c823-0a2a45040019-d155d0b3d868-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 07:23:21 +0100
Received: by mail-lj1-f179.google.com with SMTP id
 38308e7fff4ca-38bdb4b8e66so37348001fa.2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Mar 2026 23:23:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1774419800; cv=none;
        d=google.com; s=arc-20240605;
        b=Y82XPMqbJwjkC+M+/Y5ZBaevaiyaY5jsIeZThjRhF2dZ+L8EKkQ2RsZ4DpgirnX1kf
         anMTk0p61RqSW3uLrLZAHNFZfGfuSmFGGpytfU5NRRXsRlsUS77NWq+/15Ums/5R92ki
         Efywmyq93SX7iYCb+nG44koh9205QMgNkl1agw5Fw7vHzLZ+OWrlQq8oWi0TKWB8GN1I
         PZikiGTRNaNyK8w9YbzEVMLMZLKgsW+qWLiWEjD5cn9HDcfOVlzGyLS6WAOYJ2mcLzxM
         25IjLHK0RD67dWfACcJHr7B0wyQj+Wjg1eiBuMEQi3sObwf17wEFb0NZx5Ok1cFRvTeZ
         Vz9w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=gLI3zfj2vWe8Jy4i59VK3Ls/StUu3snZgoD1oL5+Vfk=;
        fh=SmKtTP+//FoTguQaCWAbd7P0/DDZIbvi8at9iFw3jIU=;
        b=EK/mWuvp1bhb1IB5OBHyS/rrvrxRDN+Aig85BPgrVzinTrWUz3bf/UgAmc9W6Kcmg3
         GJs/3g01Lzdlo+xQt0O4zeDx3m4PFwGMW/NPVoPcRMpCIR9nGCtefeFAqKgNYCjnyWzv
         JcoPgzz3EXtU9Lb2IRx7E3LI6iw9gv45pgukeHAxyhFAzrN30CXeUtrCMl/Q9uU4XshU
         Ih71zbY+MSyouo/18r+O4gAJfQmP35UuFejLN/tMyuLQMxppzoRVBa6ZD0lIuHMugcWT
         mzFmojunggcYyDQ3yicCa6vpW2pbkWKlLURPC+fDKXWh3S4HRDfha4ewCBpbalUN7ZqX
         Pt/A==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774419800; x=1775024600; 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=gLI3zfj2vWe8Jy4i59VK3Ls/StUu3snZgoD1oL5+Vfk=;
        b=RxxZ839ZFvPg6MX1e7GdKY20Fn8MHXVTBkQ0a5VNl/ML0zoUdk59j0UOpn2gR9uwmI
         gRNh39AymJmrZ8mU+h/0pNgjJdUuopBtSLdKD6fpFNllwHrGhHDEc9ue6Ke63vgLSsR9
         1mdzLu0DbIhCp6zrzx2dSrR3xLYZ+CJZBK8Bf9NyOEeYNw8nhi3wqxHCsAjeP+L76ZT1
         LUy6F7xMWDYXEpSZ/RF0qvVM/FZpeA7zxFmEh2rCRqE9vtsD+mb5GDeDiTFyVubIUbdV
         9WFx91Z3220actUoMhkPniPrL2UXks6epJNZBP7/wOTgh+NS4ydDzs1sEzkqm3b4hEvi
         bu2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774419800; x=1775024600;
        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=gLI3zfj2vWe8Jy4i59VK3Ls/StUu3snZgoD1oL5+Vfk=;
        b=N6vgx5wpb2KNrFykWTvjr0kO2qKKNrKCeZEZfLQCKiaJzXVWSi80XzcWohV/HBkjEC
         GtqUVeEovhay8b025wfyt85xl63xbsnDEbMM20D5Sa1tiKrsUT5JC+3fkBUAPeteqePx
         eHyQ/XjV5ANoJmEDFJEn4zWkkJt9/cW4KxsYqTgu8QJqOA2NJTg5TnW4HcWuz0/FHF6m
         QC8deTvQd4JQ8BzWS1abJA1i9vcejE4aD9t9bBg/su/n4DnS18PmWLmruuMvNEljpEzH
         QI/3BMCWl/oVXtPSrGowsWwLA3DN9feXOL7OPxCjIbFVrQbFuxykiwnk0HjjnSH6H0oW
         6p3w==
X-Gm-Message-State: AOJu0YzTpqA3LCwofyiE0uvCELuQcZe1lSG0XwWvX0kLLCU0dhhFkVvD
	BjlkS0FVTvCbq1CWDpz05q6jQ3G5oPS7AGepNK8daKYej7Wjs2CGMMRhb/ZZSdPgBmF5EdGEWZY
	qmTsPRbbQDgjwNC3Oj0KtvvRI127ceKE=
X-Gm-Gg: ATEYQzydzZE/vN4Z6DSGIjcmQcfsQ7Je9v1th0n/ttqeqNZkXE0klCNHfVG8zISSF+D
	If8HqqiNVXWw0sqqK6J8pkiw2c7esOFSz5hed5S0oBCRuWzt0KUQSzcCBpXyXe3MMIyLHk3GFv6
	5Ch/8/xwyg4cW0prF9zGYqP5oCXfhE1zC0oVitZF58bsdylsQKAnbLfXAsXJgPbVOCTVPOPEL5Z
	vmcLS7Fp4JBKocG8l/HAc2BDHXemt5kP+NPIpBxelpz0VvD6iir3tTfUPu91bxpgE3UrYNf8kz7
	xm0S8g==
X-Received: by 2002:a2e:b1c9:0:b0:387:1337:8be7 with SMTP id
 38308e7fff4ca-38c431fe9a6mr5606421fa.36.1774419799772; Tue, 24 Mar 2026
 23:23:19 -0700 (PDT)
MIME-Version: 1.0
References: <63284ab7-8e38-4448-a789-1b9c23c4d95c@suse.com>
 <97d6ba6c-4ffe-4e1b-814a-d51a0bcf363e@suse.com> <CAGeoDV-zPfn5iDN6gcwq2bA5vcG0SUsgZbQufDWpux1rugXFEg@mail.gmail.com>
 <f27fc3a2-77a3-4b14-99fd-a4d4dcb17585@suse.com>
In-Reply-To: <f27fc3a2-77a3-4b14-99fd-a4d4dcb17585@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Wed, 25 Mar 2026 08:23:08 +0200
X-Gm-Features: AaiRm505QOUprGYyBV791tg9vWBGbfQWTTB0Ar7k00vnIRRdIW0C_sAGWU1k9xs
Message-ID: <CAGeoDV87rNCYVrYYc4N1NiuYB8K3O3pRsCS+g2wdsN50c-kKrA@mail.gmail.com>
Subject: Re: [PATCH 2/5] llc-coloring: improve checking while parsing
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@vates.tech>, 
	Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Kamil Frankowicz <kamil.frankowicz@cert.pl>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-ebf023/1774419801-B96849D1-8673A121/0/0
X-purgate-type: clean
X-purgate-size: 1873

On Wed, Mar 25, 2026 at 8:14=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 24.03.2026 17:51, Mykola Kvach wrote:
> > On Tue, Mar 24, 2026 at 6:37=E2=80=AFPM Jan Beulich <jbeulich@suse.com>=
 wrote:
> >>
> >> We can easily avoid the risk of wrapping UINT_MAX <-> 0 by applying a
> >> check against the compile-time-constant maximum number of colors.
> >>
> >> Additionally the overflow checks suffered from an off-by-1, as the par=
sed
> >> ranges are inclusive (e.g. end =3D=3D start being possible, requiring =
1 array
> >> slot, while availability of 0 slots was checked in that case).
> >>
> >> Fixes: 6cdea3444eaf ("xen/arm: add Dom0 cache coloring support")
> >> Reported-by: Kamil Frankowicz <kamil.frankowicz@cert.pl>
> >
> > For reference, I previously reported the UINT_MAX wraparound aspect her=
e [1]
> > and later also here [2].
>
> I've added another Reported-by, yet I wonder (in particular wrt [2]): Why=
 did
> you not simply send patches? They likely would long have gone in.

Thank you.

I did not have the time earlier to turn those reports into proper patches.

This month I have had some bandwidth again, so I started revisiting a numbe=
r
of previously reported issues.

At the moment I am also preparing some other fixes related to ITS, and the
LLC issues were next on my list.


Best regards,
Mykola


>
> Jan
>
> > The off-by-1 in the inclusive-range accounting looks
> > like a separate issue.
> >
> > Those threads also mention a few other related corner cases.
> >
> >
> > Best regards,
> > Mykola
> >
> >
> > [1] https://patchew.org/Xen/20241217170637.233097-1-carlo.nonato@minerv=
asys.tech/20241217170637.233097-5-carlo.nonato@minervasys.tech/#db5d6a67-61=
d9-48d3-b6c4-213c1cbbda21@gmail.com
> > [2] https://lists.xen.org/archives/html/xen-devel/2026-01/msg00369.html


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 07:42:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 07:42:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261749.1554538 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Is7-0007rj-8Z; Wed, 25 Mar 2026 07:41:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261749.1554538; Wed, 25 Mar 2026 07:41:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Is7-0007rc-5O; Wed, 25 Mar 2026 07:41:47 +0000
Received: by outflank-mailman (input) for mailman id 1261749;
 Wed, 25 Mar 2026 07:41:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5Is6-0007rW-CP
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 07:41:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Is5-00FY7v-Kj
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 08:41:45 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c391b1-2eae-0a2a0a5409dd-0a2a450cad5a-20
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 08:41:45 +0100
Received: from [209.85.221.54] (helo=mail-wr1-f54.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c391b9-f93d-0a2a450c0019-d155dd36e16a-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 08:41:45 +0100
Received: by mail-wr1-f54.google.com with SMTP id
 ffacd0b85a97d-43b87970468so832997f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 00:41:45 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b86fbb195sm8459119f8f.14.2026.03.25.00.41.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 00:41:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774424505; x=1775029305; 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=9V565P+lYSBCUNizOzfMKl+sHas+5sTmvHZMhTc9/CM=;
        b=N4DTZDfLFrw9cNk4uWsJZxPIs45LmIg/QDbbY4oE8e2GPkrGBzBHN1VUFCnx+xpfyz
         WWenJa5/7vxsYmtJxMLJXKTXeV4Dt5DcU4/MWC8qxLQ+62oaOZeDSc5ZGpl5E3csj3SC
         dEKwheUwZwvTunCRMsIHJ12Ag5oKEJEUBn2byXhtVbe2egPwzQzqwpNZ9d92s4Ox0n8W
         rLjZt67pZoSbww5e76AxRKEOSyGMffe0Ip3X/xE9J4botXSKBieo8NAqK8ttWO4FWdmu
         QDwiwA6dlmz+3qt+dgCyRKx0+5TFfXU2JzJFtCRMpEhk+6Vs9xNq3LHjoJCAhhMdha4r
         q5Rg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774424505; x=1775029305;
        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=9V565P+lYSBCUNizOzfMKl+sHas+5sTmvHZMhTc9/CM=;
        b=bXWW66TY/QkZMy/PuIKtpgG3DU6M3O6sbGl4GyYGtLEWJwPVMaaWmtKrFLAYTqQxpa
         q0rOulgtoRRe3nBBHZyzQjxBhdJEs/xDHFxpWGwSxLVT5IaCEaQk8yjznjij96v3g/IP
         GeBGnQHToMXTt/69UccTZ78F3N09r7x09s9QbmylejGyDr+hgsEXZ6vi5ViummwMhQwn
         iMI4p/Pf3fs484NDf8bRoqhPUAltiTrI56WulfodkwBHKyNFYHnfyZ3uvKN99jjaoA3L
         uWHjVs3qHTWUUppH/okhmZ/LAFMY4A9n5JhqA/YRuH8oPr7Z0BkSpAVvY2JYFQpuEBXg
         Ropg==
X-Forwarded-Encrypted: i=1; AJvYcCXQ9kmPeSWwkMxE179ieGUAtPbbK+aofx1j4G/HZT14LzUbRHShe+AySaBWUM18gc2jZh/0SwATFSM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwbpIueTSm8ymG1ZdnFAN1qiUiCzlnKdd+U5HEYvPzua8DLvvp2
	9tSiOkFLBNWFeTQ87szpiNJBvxjJ4ChEjU6SUMQBLzUEgSysuEdF3fMcBDxJ8slmPYrvG9P3lzq
	tnp0CLg==
X-Gm-Gg: ATEYQzzJYhSHzRDEBMWi1StkN2+EpAsAN1NSiw8PX+IlyL+ENcjUlojhG7VXepnDYBV
	l/LNnmxhpIMumnwUgTeYIDtPh/hrZwVbsTulqr4WT8RAS9eNFTU6r6QfVJTETDAjudaHwiQ0iEx
	ljMODUbceLVTDCj/L/898TAqJj+f6H2DIsyKOov2Mt1s2yneOfVCM6xMzKNUl2D5lfIvSngN02d
	CLBdifkccSeNZdMuULkN4jbys7CfHBaLgunuQQWoXtOVHlGB+OY9D8UfjeD/LqGTQ7pI4joMDBr
	kLir0TF0NFBw/2KUscH1PIbzGdo5sJ8eK+oNZyioCUe/98yriEu0Fv90j69P2PjnqwKlJScFaxV
	UVwIYhu5O+4d31ybv7Aos/d04Emm1WNHl8phU0xsCtC+8V0bx8FJa07Vh99EDTbL9THTOX81N8n
	hGh11TUNvKWMMCSIaVI8FzwbiH+tdnO52ZTzrlgR2NQ0xRAlfv3pIXhrjHSfakjcmoXnl3l9rFg
	KrBxt0XJAEPPEQ=
X-Received: by 2002:a05:6000:18a8:b0:43b:4440:9c28 with SMTP id ffacd0b85a97d-43b88972329mr3138166f8f.0.1774424504656;
        Wed, 25 Mar 2026 00:41:44 -0700 (PDT)
Message-ID: <a582abf0-f41c-4a4d-9696-95d449f27b83@suse.com>
Date: Wed, 25 Mar 2026 08:41:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/5] EFI: avoid OOB config file reads
From: Jan Beulich <jbeulich@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Marek Marczykowski <marmarek@invisiblethingslab.com>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 Kamil Frankowicz <kamil.frankowicz@cert.pl>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <63284ab7-8e38-4448-a789-1b9c23c4d95c@suse.com>
 <f56a8eac-bd35-496d-ae9a-b429f8305b31@suse.com>
 <d86ec941-ba0a-4beb-b213-7d1bc9a1ec19@citrix.com>
 <d66de28e-ab0e-44cf-b255-deb5856f7c58@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: <d66de28e-ab0e-44cf-b255-deb5856f7c58@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1774424505-6C8BC734-271FA7D3/0/0
X-purgate-type: clean
X-purgate-size: 1516

On 25.03.2026 07:12, Jan Beulich wrote:
> On 24.03.2026 18:13, Andrew Cooper wrote:
>> On 24/03/2026 4:36 pm, Jan Beulich wrote:
>>> The message emitted by pre_parse() pretty clearly states the intention.
>>> Make sure we actually do so.
>>>
>>> Fixes: bf6501a62e80 ("x86-64: EFI boot code")
>>> Reported-by: Kamil Frankowicz <kamil.frankowicz@cert.pl>
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>
>>> --- a/xen/common/efi/boot.c
>>> +++ b/xen/common/efi/boot.c
>>> @@ -907,8 +907,13 @@ static void __init pre_parse(const struc
>>>              start = 0;
>>>      }
>>>      if ( file->size && end[-1] )
>>> +    {
>>>           PrintStr(L"No newline at end of config file,"
>>>                     " last line will be ignored.\r\n");
>>> +
>>> +         for ( UINTN pos = file->size; pos-- && *--end; )
>>> +             *end = 0;
>>> +    }
>>
>> I agree this is what the the function intended.
>>
>> But, ignoring the final line is rude and there's no viable editor in a
>> UEFI shell to fix it.
> 
> On all the early EFI systems I had in use there was one. I'd need to check
> more recent systems, though. (I know some come without any EFI shell at all.)
> 
>>   Can't we just copy the file into a
>> one-byte-bigger buffer and terminate it properly?
> 
> If that would have been possible with equally little churn, I would have
> done it that way. Of course it is possible in principle.

Actually, it doesn't look all that bad - let me give that a try.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 08:52:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 08:52:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261777.1554546 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Jya-00019S-Fk; Wed, 25 Mar 2026 08:52:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261777.1554546; Wed, 25 Mar 2026 08:52:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Jya-00019L-Cv; Wed, 25 Mar 2026 08:52:32 +0000
Received: by outflank-mailman (input) for mailman id 1261777;
 Wed, 25 Mar 2026 08:52:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5JyY-00019E-L4
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 08:52:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5JyX-00H7HE-CW
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 09:52:29 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c3a246-bab6-0a2a0a5309dd-0a2a450bca80-30
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 09:52:29 +0100
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c3a24c-ef63-0a2a450b0019-d1558031b118-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 09:52:29 +0100
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-4870206f73bso27348655e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 01:52:28 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b64703c35sm45275708f8f.22.2026.03.25.01.52.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 01:52:27 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774428748; x=1775033548; 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=FviJBiEjOOk/YLFgmm4rWqSaV+q9nGUgJ78/ddVORDw=;
        b=PG03u3vrpfnDYPXXWJLLA5aLLnLqsV6u2X1PKJJXEfDugISHJb/SQW0rTbYVM1Ptuq
         AvnBGlCBCYuCrH47oLDwIcxzWmvrGpkl7gT8k/AbQvocdArA4rtyopA+ws8CVlRoECT7
         E84ddKZMmU1b2idhTvkJ24ViQ7xUnUOcovwZNpeW2PLKxSAuFoUoStlNAOa6ZeguotgZ
         jvWPcBqwt/XetlHmE3kOgTPtAG50tbVsYli9KF03QqnxZGKYUzRxdobWbrI8O28JVIzK
         RLH0nowQz3Z5jBx5bn99wA+X8WG3Wd3Fd/C96njlhKyqhQHoVPOM5t/EfBO7kp98pgeG
         ujMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774428748; x=1775033548;
        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=FviJBiEjOOk/YLFgmm4rWqSaV+q9nGUgJ78/ddVORDw=;
        b=p4+va153l4/AEqw7AcOGUSLb7ToUxbDv6uN8eUEF9eDiFlVEzscM0DxPCgVmOg4fEW
         XorypJtnAon7j/AtuFjtMSTz6Bw8sESE0euOj+seZztWzIQCx/D8h0Kno/qsI4uUNd9H
         OoRu/++lY5b5zfATcWGmuDtjH/XQeazJKWz8bpwY+dCCVmkIDBoVo5l9yCD4EmaFLxqz
         aTWo2ffOxTOZ7cF59KdiBTtcu7RACui11XVHqAFj7azHnyNwNotQDAij5LL9OEBqaHyS
         TtC2Ylpr5Qb3gYN981kEJQwgtm9r8hvC+lQjzPN4nAaMghcnxEEe5LHANYbPGElg5SrP
         YYVw==
X-Forwarded-Encrypted: i=1; AJvYcCUTxqLv9nXnaxocHzWRGN5VFLNe+w4Dwi/lRMaYj7fsZ9R0Zjv4tXfASckII5ChwhMX8RZQc8h9l2Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxojWKbCqmrAuAHg5kcrpgHyeZ9X4BzrNDlb/Zm0WD9TjS0SPdU
	fs81odxFYmNElwzlzJvNAbB/x7jVy9ZyBkboD927kjS6/1dlBdheO+5B1xaBRBogOw==
X-Gm-Gg: ATEYQzwkvl/ZnO0R3Vda1ABALoB8n8DhmgjDg+pdqPDhLaGynjljAFTRWxsaMRAQ/hy
	annrnzSUgNCsB8Ol4/xIhqQh5Mss6jdkdF+J4pwzmTvoba0gYCP9bMUdn1lVeBbmvlD9hi1ksP/
	8uZNNrYT3uq+Fh3svcJHOMx/TjMV7Tcj3sejHsJTsggTgt0SUvYH/YF8WB1kUMjImwYD0C3LShD
	VcnA/5e2P66wzrdhEQe4ZritljVIEa7aWBXX/0B6fREgiGOkPJmmxvvf4uJJUPk4BMuG9v07wUW
	0GZBnq8BigG2p/exOuNPR8v1jSi29VcNPfxW0RBnMe8cTqMIqTTeqXhEWDfG3ouCQivFVdeAAtQ
	FNFfpan/Kc8WhoY7BUIDuskUkThw/dllqSxic72h8nGg62zNjKqUuFltLmXqnFXvAGTHDIU8OTv
	AmNcapNb/hGlWSa81n8UUAie2ittyDKtcecId4k4IGSXJM3FaEstDUX2ceSdoiR1zIsq3i1HP6o
	BCMhnuWWgYF6CY=
X-Received: by 2002:a05:6000:2203:b0:439:df03:f300 with SMTP id ffacd0b85a97d-43b88a25a01mr3611797f8f.40.1774428748331;
        Wed, 25 Mar 2026 01:52:28 -0700 (PDT)
Content-Type: multipart/mixed; boundary="------------QCfREM146YqYmfa34cSvSqgS"
Message-ID: <2e09bae2-4496-48c3-b60c-169022d03e7a@suse.com>
Date: Wed, 25 Mar 2026 09:52:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 12/16] x86/cpufeature: Introduce SME and SEV-related
 CPU features
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.1747312394.git.teddy.astie@vates.tech>
 <e9dca2b2675cd4a0bcd01ba7cf64f40bc6e442e1.1747312394.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: <e9dca2b2675cd4a0bcd01ba7cf64f40bc6e442e1.1747312394.git.teddy.astie@vates.tech>
X-purgate-ID: tlsNG-42698a/1774428749-9B2A8112-57A0FBA1/0/0
X-purgate-type: clean
X-purgate-size: 10339

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

On 16.05.2025 12:24, Teddy Astie wrote:
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
>  xen/arch/x86/cpu/common.c                   | 2 ++
>  xen/arch/x86/include/asm/cpufeature.h       | 4 ++++
>  xen/include/public/arch-x86/cpufeatureset.h | 5 +++++
>  xen/include/xen/lib/x86/cpu-policy.h        | 9 ++++++++-
>  4 files changed, 19 insertions(+), 1 deletion(-)

As I happened to look at this patch, there are pieces missing here. There
likely are existing commits or pending patches I could point you at, but I
think the not-yet-posted patch new in v4 of the AVX10 series is the best
reference (for having pretty few things beyond what you need to pay
attention to). See attached.

> --- a/xen/arch/x86/cpu/common.c
> +++ b/xen/arch/x86/cpu/common.c
> @@ -481,6 +481,8 @@ static void generic_identify(struct cpuinfo_x86 *c)
>  		c->x86_capability[FEATURESET_e8b] = cpuid_ebx(0x80000008);
>  	if (c->extended_cpuid_level >= 0x80000021)
>  		c->x86_capability[FEATURESET_e21a] = cpuid_eax(0x80000021);
> +	if (c->extended_cpuid_level >= 0x8000001f)
> +		c->x86_capability[FEATURESET_e1fa] = cpuid_eax(0x8000001f);

This would be nice to be kept in numerical order.

> --- a/xen/include/xen/lib/x86/cpu-policy.h
> +++ b/xen/include/xen/lib/x86/cpu-policy.h
> @@ -22,6 +22,7 @@
>  #define FEATURESET_7d1       15 /* 0x00000007:1.edx    */
>  #define FEATURESET_m10Al     16 /* 0x0000010a.eax      */
>  #define FEATURESET_m10Ah     17 /* 0x0000010a.edx      */
> +#define FEATURESET_e1fa      18 /* 0x8000001f.eax      */

I think this wants to be FEATURESET_e1Fa, much like it's FEATURESET_Da1
and (going to be; another yet to be posted patch that I have been
carrying for far too long) FEATURESET_1Ea1.

Jan
--------------QCfREM146YqYmfa34cSvSqgS
Content-Type: text/plain; charset=UTF-8; name="x86-CPUID-AVX10-2.patch"
Content-Disposition: attachment; filename="x86-CPUID-AVX10-2.patch"
Content-Transfer-Encoding: base64

eDg2L0NQVUlEOiBlbmFibGUgQVZYMTAuMiBzdWItbGVhZgoKVGhlIGxvZ2ljIGlzIG1vZGVs
ZWQgYXMgY2xvc2VseSBhcyBwb3NzaWJsZSBhZnRlciB0aGF0IG9mIGxlYWYgNwpzdWItbGVh
ZiBoYW5kbGluZy4KClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl
LmNvbT4KLS0tCldoaWxlIHRoZSAiQVZYMTAiIGluZml4IGlzIG5lY2Vzc2FyeSBldmVyeXdo
ZXJlLCB0aGUgImF2eDEwIiBwcmVmaXggb24KdGhlIGJpdGZpZWxkIG5hbWUgaXMgcmVkdW5k
YW50IHdpdGggdGhlIGNvbnRhaW5pbmcgc3RydWN0dXJlJ3MgZmllbGQKbmFtZSAoc2VlICJ4
ODZlbXVsOiBzdXBwb3J0IEFWWDEwLjIgbWVkaWEgaW5zbnMiIGZvciBob3cgdGhpcyBsb29r
cyBsaWtlCmluIGFjdHVhbCB1c2UpLiBEbyB3ZSB3YW50IHRvIHNwZWNpYWwtY2FzZSB0aGlz
IGluIGdlbi1jcHVpZC5weT8KLS0tCnY0OiBOZXcuCgotLS0gdW5zdGFibGUub3JpZy90b29s
cy9saWJzL2xpZ2h0L2xpYnhsX2NwdWlkLmMJMjAyNS0xMC0xNCAxOTozMTo0My4wMDAwMDAw
MDAgKzAyMDAKKysrIHVuc3RhYmxlL3Rvb2xzL2xpYnMvbGlnaHQvbGlieGxfY3B1aWQuYwky
MDI1LTA3LTIzIDEwOjA1OjAxLjAwMDAwMDAwMCArMDIwMApAQCAtMzQzLDYgKzM0Myw3IEBA
IGludCBsaWJ4bF9jcHVpZF9wYXJzZV9jb25maWcobGlieGxfY3B1aWQKICAgICAgICAgTVNS
X0VOVFJZKDB4MTBhLCBDUFVJRF9SRUdfRUFYKSwKICAgICAgICAgTVNSX0VOVFJZKDB4MTBh
LCBDUFVJRF9SRUdfRURYKSwKICAgICAgICAgQ1BVSURfRU5UUlkoMHg4MDAwMDAyMSwgTkEs
IENQVUlEX1JFR19FQ1gpLAorICAgICAgICBDUFVJRF9FTlRSWSgweDAwMDAwMDI0LCAgMSwg
Q1BVSURfUkVHX0VDWCksCiAjdW5kZWYgTVNSX0VOVFJZCiAjdW5kZWYgQ1BVSURfRU5UUlkK
ICAgICB9OwotLS0gdW5zdGFibGUub3JpZy90b29scy9taXNjL3hlbi1jcHVpZC5jCTIwMjUt
MDctMjIgMTY6MjE6MTguMDAwMDAwMDAwICswMjAwCisrKyB1bnN0YWJsZS90b29scy9taXNj
L3hlbi1jcHVpZC5jCTIwMjUtMDctMjMgMTA6MDQ6MzYuMDAwMDAwMDAwICswMjAwCkBAIC0z
OCw2ICszOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgewogICAgIHsgIk1TUl9BUkNIX0NB
UFMubG8iLCAgICAgICAgICJtMTBBbCIgfSwKICAgICB7ICJNU1JfQVJDSF9DQVBTLmhpIiwg
ICAgICAgICAibTEwQWgiIH0sCiAgICAgeyAiQ1BVSUQgMHg4MDAwMDAyMS5lY3giLCAgICAg
ICJlMjFjIiB9LAorICAgIHsgIkNQVUlEIDB4MDAwMDAwMjQ6MS5lY3giLCAgICAiMjRjMSIg
fSwKIH07CiAKICNkZWZpbmUgQ09MX0FMSUdOICIyNCIKLS0tIHVuc3RhYmxlLm9yaWcveGVu
L2FyY2gveDg2L2NwdS9jb21tb24uYwkyMDIzLTExLTEyIDE0OjEyOjIxLjAwMDAwMDAwMCAr
MDEwMAorKysgdW5zdGFibGUveGVuL2FyY2gveDg2L2NwdS9jb21tb24uYwkyMDI1LTExLTEy
IDE0OjIwOjUzLjAwMDAwMDAwMCArMDEwMApAQCAtNTUyLDYgKzU1MiwxNyBAQCBzdGF0aWMg
dm9pZCBnZW5lcmljX2lkZW50aWZ5KHN0cnVjdCBjcHVpCiAJCQkgICAgJmMtPng4Nl9jYXBh
YmlsaXR5W0ZFQVRVUkVTRVRfRGExXSwKIAkJCSAgICAmdG1wLCAmdG1wLCAmdG1wKTsKIAor
CWlmIChjcHVfaGFzKGMsIFg4Nl9GRUFUVVJFX0FWWDEwKSAmJiBjLT5jcHVpZF9sZXZlbCA+
PSAweDI0KSB7CisJCXVpbnQzMl90IG1heF9zdWJsZWFmOworCisJCWNwdWlkX2NvdW50KDB4
MjQsIDAsICZtYXhfc3VibGVhZiwgJnRtcCwgJnRtcCwgJnRtcCk7CisJCWlmIChtYXhfc3Vi
bGVhZiA+PSAxKQorCQkJY3B1aWRfY291bnQoMHgyNCwgMSwKKwkJCQkgICAgJnRtcCwgJnRt
cCwKKwkJCQkgICAgJmMtPng4Nl9jYXBhYmlsaXR5W0ZFQVRVUkVTRVRfMjRjMV0sCisJCQkJ
ICAgICZ0bXApOworCX0KKwogCWlmICh0ZXN0X2JpdChYODZfRkVBVFVSRV9BUkNIX0NBUFMs
IGMtPng4Nl9jYXBhYmlsaXR5KSkgewogCQl2YWwgPSByZG1zcihNU1JfQVJDSF9DQVBBQklM
SVRJRVMpOwogCQljLT54ODZfY2FwYWJpbGl0eVtGRUFUVVJFU0VUX20xMEFsXSA9IHZhbDsK
LS0tIHVuc3RhYmxlLm9yaWcveGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYwkyMDI1LTA3LTI0
IDEyOjI3OjI0Ljc5NTE5MzAyMSArMDIwMAorKysgdW5zdGFibGUveGVuL2FyY2gveDg2L2Nw
dS1wb2xpY3kuYwkyMDI1LTA3LTAxIDE0OjAxOjQxLjAwMDAwMDAwMCArMDIwMApAQCAtMjc3
LDYgKzI3Nyw5IEBAIHN0YXRpYyB2b2lkIHJlY2FsY3VsYXRlX21pc2Moc3RydWN0IGNwdV8K
ICAgICBwLT5hdngxMC5yYXdbMF0uYiAmPSAweDAwMDcwMGZmOwogICAgIHAtPmF2eDEwLnJh
d1swXS5jID0gMDsKICAgICBwLT5hdngxMC5yYXdbMF0uZCA9IDA7CisgICAgcC0+YXZ4MTAu
cmF3WzFdLmEgPSAwOworICAgIHAtPmF2eDEwLnJhd1sxXS5iID0gMDsKKyAgICBwLT5hdngx
MC5yYXdbMV0uZCA9IDA7CiAgICAgaWYgKCAhcC0+ZmVhdC5hdngxMCB8fCAhcC0+YXZ4MTAu
dmVyc2lvbiB8fAogICAgICAgICAgIXAtPmF2eDEwLnZzejUxMiB8fCAhcC0+YXZ4MTAudnN6
MjU2IHx8ICFwLT5hdngxMC52c3oxMjggKQogICAgIHsKLS0tIHVuc3RhYmxlLm9yaWcveGVu
L2luY2x1ZGUvcHVibGljL2FyY2gteDg2L2NwdWZlYXR1cmVzZXQuaAkyMDI1LTA2LTAzIDEy
OjM1OjUzLjAwMDAwMDAwMCArMDIwMAorKysgdW5zdGFibGUveGVuL2luY2x1ZGUvcHVibGlj
L2FyY2gteDg2L2NwdWZlYXR1cmVzZXQuaAkyMDI2LTAzLTEyIDEwOjI2OjE0LjAwMDAwMDAw
MCArMDEwMApAQCAtNDA5LDYgKzQwOSw5IEBAIFhFTl9DUFVGRUFUVVJFKElUU19OTywgICAg
ICAgICAgICAgMTYqMzIKIFhFTl9DUFVGRUFUVVJFKFRTQV9TUV9OTywgICAgICAgICAgMTgq
MzIrIDEpIC8qQSAgTm8gU3RvcmUgUXVldWUgVHJhbnNpdGl2ZSBTY2hlZHVsZXIgQXR0YWNr
cyAqLwogWEVOX0NQVUZFQVRVUkUoVFNBX0wxX05PLCAgICAgICAgICAxOCozMisgMikgLypB
ICBObyBMMUQgVHJhbnNpdGl2ZSBTY2hlZHVsZXIgQXR0YWNrcyAqLwogCisvKiBJbnRlbC1k
ZWZpbmVkIENQVSBmZWF0dXJlcywgQ1BVSUQgbGV2ZWwgMHgwMDAwMDAyNDoxLmVjeCwgd29y
ZCAxOSAqLworWEVOX0NQVUZFQVRVUkUoQVZYMTBfVjFfQVVYLCAgICAgICAxOSozMisgMikg
LyogICBBVlgxMCBWMSBBdXhpbGlhcnkgSW5zdHJ1Y3Rpb25zICovCisKICNlbmRpZiAvKiBY
RU5fQ1BVRkVBVFVSRSAqLwogCiAvKiBDbGVhbiB1cCBmcm9tIGEgZGVmYXVsdCBpbmNsdWRl
LiAgQ2xvc2UgdGhlIGVudW0gKGZvciBDKS4gKi8KLS0tIHVuc3RhYmxlLm9yaWcveGVuL2lu
Y2x1ZGUveGVuL2xpYi94ODYvY3B1LXBvbGljeS5oCTIwMjUtMDYtMTcgMTM6NTE6MjUuMjkw
OTkzNDA5ICswMjAwCisrKyB1bnN0YWJsZS94ZW4vaW5jbHVkZS94ZW4vbGliL3g4Ni9jcHUt
cG9saWN5LmgJMjAyNS0wOC0yOCAxNDo1NDoyMi4wMDAwMDAwMDAgKzAyMDAKQEAgLTIzLDYg
KzIzLDcgQEAKICNkZWZpbmUgRkVBVFVSRVNFVF9tMTBBbCAgICAgMTYgLyogMHgwMDAwMDEw
YS5lYXggICAgICAqLwogI2RlZmluZSBGRUFUVVJFU0VUX20xMEFoICAgICAxNyAvKiAweDAw
MDAwMTBhLmVkeCAgICAgICovCiAjZGVmaW5lIEZFQVRVUkVTRVRfZTIxYyAgICAgIDE4IC8q
IDB4ODAwMDAwMjEuZWN4ICAgICAgKi8KKyNkZWZpbmUgRkVBVFVSRVNFVF8yNGMxICAgICAg
MTkgLyogMHgwMDAwMDAyNDoxLmVjeCAgICAqLwogCiBzdHJ1Y3QgY3B1aWRfbGVhZgogewpA
QCAtNjQsNyArNjUsNyBAQCBjb25zdCBjaGFyICp4ODZfY3B1aWRfdmVuZG9yX3RvX3N0cih1
bnNpCiAjZGVmaW5lIENQVUlEX0dVRVNUX05SX0ZFQVQgICAgICAgKDJ1ICsgMSkKICNkZWZp
bmUgQ1BVSURfR1VFU1RfTlJfVE9QTyAgICAgICAoMXUgKyAxKQogI2RlZmluZSBDUFVJRF9H
VUVTVF9OUl9YU1RBVEUgICAgICg2MnUgKyAxKQotI2RlZmluZSBDUFVJRF9HVUVTVF9OUl9B
VlgxMCAgICAgICgwdSArIDEpCisjZGVmaW5lIENQVUlEX0dVRVNUX05SX0FWWDEwICAgICAg
KDF1ICsgMSkKICNkZWZpbmUgQ1BVSURfR1VFU1RfTlJfRVhURF9JTlRFTCAoMHg4dSArIDEp
CiAjZGVmaW5lIENQVUlEX0dVRVNUX05SX0VYVERfQU1EICAgKDB4MjF1ICsgMSkKICNkZWZp
bmUgQ1BVSURfR1VFU1RfTlJfRVhURCAgICAgICBNQVgoQ1BVSURfR1VFU1RfTlJfRVhURF9J
TlRFTCwgXApAQCAtMjc1LDYgKzI3NiwxNCBAQCBzdHJ1Y3QgY3B1X3BvbGljeQogICAgICAg
ICAgICAgYm9vbCB2c3oxMjg6MSwgdnN6MjU2OjEsIHZzejUxMjoxOwogICAgICAgICAgICAg
dWludDMyX3QgOjEzOwogICAgICAgICAgICAgdWludDMyX3QgLyogYyAqLzozMiwgLyogZCAq
LzozMjsKKworICAgICAgICAgICAgLyogU3VibGVhZiAxLiAqLworICAgICAgICAgICAgdWlu
dDMyX3QgLyogYSAqLzozMiwgLyogYiAqLzozMjsKKyAgICAgICAgICAgIHVuaW9uIHsKKyAg
ICAgICAgICAgICAgICB1aW50MzJfdCBfMjRjMTsKKyAgICAgICAgICAgICAgICBzdHJ1Y3Qg
eyBERUNMX0JJVEZJRUxEKDI0YzEpOyB9OworICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
IHVpbnQzMl90IC8qIGQgKi86MzI7CiAgICAgICAgIH07CiAgICAgfSBhdngxMDsKIAotLS0g
dW5zdGFibGUub3JpZy94ZW4vYXJjaC94ODYvbGliL2NwdS1wb2xpY3kvY3B1aWQuYwkyMDIz
LTEwLTE5IDE1OjIyOjIwLjAwMDAwMDAwMCArMDIwMAorKysgdW5zdGFibGUveGVuL2FyY2gv
eDg2L2xpYi9jcHUtcG9saWN5L2NwdWlkLmMJMjAyNS0wNy0yMyAwOTo1ODoyNi4wMDAwMDAw
MDAgKzAyMDAKQEAgLTgyLDYgKzgyLDcgQEAgdm9pZCB4ODZfY3B1X3BvbGljeV90b19mZWF0
dXJlc2V0KAogICAgIGZzW0ZFQVRVUkVTRVRfbTEwQWxdICAgICA9IHAtPmFyY2hfY2Fwcy5s
bzsKICAgICBmc1tGRUFUVVJFU0VUX20xMEFoXSAgICAgPSBwLT5hcmNoX2NhcHMuaGk7CiAg
ICAgZnNbRkVBVFVSRVNFVF9lMjFjXSAgICAgID0gcC0+ZXh0ZC5lMjFjOworICAgIGZzW0ZF
QVRVUkVTRVRfMjRjMV0gICAgICA9IHAtPmF2eDEwLl8yNGMxOwogfQogCiB2b2lkIHg4Nl9j
cHVfZmVhdHVyZXNldF90b19wb2xpY3koCkBAIC0xMDYsNiArMTA3LDcgQEAgdm9pZCB4ODZf
Y3B1X2ZlYXR1cmVzZXRfdG9fcG9saWN5KAogICAgIHAtPmFyY2hfY2Fwcy5sbyAgICAgICAg
ICA9IGZzW0ZFQVRVUkVTRVRfbTEwQWxdOwogICAgIHAtPmFyY2hfY2Fwcy5oaSAgICAgICAg
ICA9IGZzW0ZFQVRVUkVTRVRfbTEwQWhdOwogICAgIHAtPmV4dGQuZTIxYyAgICAgICAgICAg
ICA9IGZzW0ZFQVRVUkVTRVRfZTIxY107CisgICAgcC0+YXZ4MTAuXzI0YzEgICAgICAgICAg
ID0gZnNbRkVBVFVSRVNFVF8yNGMxXTsKIH0KIAogdm9pZCB4ODZfY3B1X3BvbGljeV9yZWNh
bGNfc3ludGgoc3RydWN0IGNwdV9wb2xpY3kgKnApCi0tLSB1bnN0YWJsZS5vcmlnL3hlbi90
b29scy9nZW4tY3B1aWQucHkJMjAyMy0xMS0yMiAwODoxMToyOS4wMDAwMDAwMDAgKzAxMDAK
KysrIHVuc3RhYmxlL3hlbi90b29scy9nZW4tY3B1aWQucHkJMjAyNi0wMy0xMiAxMDoyMToz
MC4wMDAwMDAwMDAgKzAxMDAKQEAgLTMxMCw2ICszMTAsOSBAQCBkZWYgY3J1bmNoX251bWJl
cnMoc3RhdGUpOgogICAgICAgICBBVlg1MTJCVzogW0FWWDUxMl9WQk1JLCBBVlg1MTJfVkJN
STIsIEFWWDUxMl9CSVRBTEcsIEFWWDUxMl9CRjE2LAogICAgICAgICAgICAgICAgICAgIEFW
WDUxMl9GUDE2LCBBVlg1MTJfQk1NXSwKIAorICAgICAgICAjIEFWWDEwIGRpc2NyZXRlIGZl
YXR1cmVzLgorICAgICAgICBBVlgxMDogW0FWWDEwX1YxX0FVWF0sCisKICAgICAgICAgIyBF
eHRlbnNpb25zIHdpdGggVkVYL0VWRVggZW5jb2RpbmdzIGtleWVkIHRvIGEgc2VwYXJhdGUg
ZmVhdHVyZQogICAgICAgICAjIGZsYWcgYXJlIG1hZGUgZGVwZW5kZW50cyBvZiB0aGVpciBy
ZXNwZWN0aXZlIGxlZ2FjeSBmZWF0dXJlLgogICAgICAgICBQQ0xNVUxRRFE6IFtWUENMTVVM
UURRXSwK

--------------QCfREM146YqYmfa34cSvSqgS--


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 09:30:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 09:30:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261791.1554557 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5KYr-0005xp-5k; Wed, 25 Mar 2026 09:30:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261791.1554557; Wed, 25 Mar 2026 09:30:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5KYr-0005xh-1n; Wed, 25 Mar 2026 09:30:01 +0000
Received: by outflank-mailman (input) for mailman id 1261791;
 Wed, 25 Mar 2026 09:29:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <mst@redhat.com>) id 1w5KYo-0005xZ-RG
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 09:29:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5KYo-00DXpy-75
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 10:29:58 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <mst@redhat.com>)
 id 69c3ab03-2eae-0a2a0a5409dd-0a2a4505bab2-38
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 10:29:57 +0100
Received: from [170.10.129.124] (helo=us-smtp-delivery-124.mimecast.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <mst@redhat.com>)
 id 69c3ab14-5aeb-0a2a45050019-aa0a817c7061-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 10:29:57 +0100
Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com
 [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-39-VBqF_G36NMOMT_sNJdAm4g-1; Wed, 25 Mar 2026 05:29:55 -0400
Received: by mail-wr1-f72.google.com with SMTP id
 ffacd0b85a97d-4362197d1easo1868187f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 02:29:54 -0700 (PDT)
Received: from redhat.com ([2a0d:6fc0:1525:da00:3ac2:1a22:72ff:4256])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b6470380asm44280922f8f.24.2026.03.25.02.29.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 25 Mar 2026 02:29:52 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mimecast20190719 header.d=redhat.com header.i="@redhat.com" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1774430996;
	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=/X6OQFIMMVlzQpHVcxvz5zk00vazKEddYu1a8TXBALA=;
	b=UIIwNU+nPUJJvHBBie22wcCjzDVg3JpRuHuXBHiy0rjpN6rDxNAzNlOeQY2QG9m8DWuxEm
	iaNmUUXhpXPFoYwUfpFYc/GchGtfpCQlnmZs/FYSLP7O1jEI3zV30Rr3AOr8Y9H0wsXSVL
	jcPPi+BUVu4IYinrziQaqTXzZ8OPLkY=
X-MC-Unique: VBqF_G36NMOMT_sNJdAm4g-1
X-Mimecast-MFC-AGG-ID: VBqF_G36NMOMT_sNJdAm4g_1774430994
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774430994; x=1775035794;
        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=/X6OQFIMMVlzQpHVcxvz5zk00vazKEddYu1a8TXBALA=;
        b=C3x1eqgPy8+1ekTsueF62wIiVrFy7uottAt4XTI+qRcNIGKDUb6y6nvWSPscJbVczm
         p3TQM080Xe91q37waoZbkAu0JX+v+g2MLS+Mwx15mzFHve9XVWcbosxupZxqHIgbgGfV
         Fldil7fm6MuQ54L0gLeJYvrvVOKekfhPr1htS18C3h0F5QdREErbVczRQOtkGnUi+VFs
         OeanQH4IHvJFHonkE6Bkk4F8Xt70nlvL7akL20ojWx/GrIebXGEPIAimmXLSRJO1jiNE
         VHrbBUUzwUrOOEEyNrP3Gfse5MGAUII2Ikk4pgUMe5TdT0q+cF0U0HZu7GhVmQpMUvOk
         yqjA==
X-Forwarded-Encrypted: i=1; AJvYcCU74HrLvUXQc1Q/bFkNj4CxHmMj7jABERZ1gUzlWkFn08tgbAYedJxmBuSbXAM5M1mK/nwZ09+mbUA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzKjDuZMKfQj3DsZBwGC4AR1af1I64qihXuisGjLNSC8V72TKNB
	PTZVa6kMnpoHF3RotDE5wlFRi09H3IJGburb7HhT9xIIOhLxqiEsZyCbxhLS1NAtl2G/ldTh0E2
	vEFFKCYPrlyrb7/OnxdPrKU6XQa4JyNd78AFaxOsF2SXwgZ58nTqo+7gT4bN8jr6drRsf
X-Gm-Gg: ATEYQzyRSXgJY5qXlKnQQYQS6KOkVcTEBltJGdzar5KLIqeZB0nfWXXB2j72GlQBXxZ
	7LeC9qsNKd59M3hy07jDMf+FfjYNhDmImgU+wzWTK2OqAOxZVxAR03Nbm0JcwHao+3zjuvVhwGQ
	TzD+T6QH0q8kkSbQueykNSwAbU9vwPjhO6z7n+qtgNdl0GHRFsujqBbKUIvJl1zMz/AKZfBkKar
	eu9eAZd3OUZ+0EpC2QOgfSJL17xOww74Sv7eGDtRcKDm4jrFEJhxxubXyhzHdjMsUjbGpBkQgp/
	TBBV4yPzhA+eb2lLJLYq/41t88D7pRUH6XmJ7/IbkIbu3msSyrxPmq5AEySuHVUKAg1/FmTB8Sy
	yxX6oMiAwH8tZHqvk
X-Received: by 2002:a05:6000:400c:b0:439:be78:e1e9 with SMTP id ffacd0b85a97d-43b88a3d3cdmr3692812f8f.14.1774430993588;
        Wed, 25 Mar 2026 02:29:53 -0700 (PDT)
X-Received: by 2002:a05:6000:400c:b0:439:be78:e1e9 with SMTP id ffacd0b85a97d-43b88a3d3cdmr3692727f8f.14.1774430992928;
        Wed, 25 Mar 2026 02:29:52 -0700 (PDT)
Date: Wed, 25 Mar 2026 05:29:45 -0400
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Danilo Krummrich <dakr@kernel.org>
Cc: Russell King <linux@armlinux.org.uk>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Ioana Ciornei <ioana.ciornei@nxp.com>,
	Nipun Gupta <nipun.gupta@amd.com>,
	Nikhil Agarwal <nikhil.agarwal@amd.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>, Bjorn Helgaas <bhelgaas@google.com>,
	Armin Wolf <W_Armin@gmx.de>, Bjorn Andersson <andersson@kernel.org>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	Vineeth Vijayan <vneethv@linux.ibm.com>,
	Peter Oberparleiter <oberpar@linux.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Harald Freudenberger <freude@linux.ibm.com>,
	Holger Dengler <dengler@linux.ibm.com>,
	Mark Brown <broonie@kernel.org>, Jason Wang <jasowang@redhat.com>,
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	Eugenio =?iso-8859-1?Q?P=E9rez?= <eperezma@redhat.com>,
	Alex Williamson <alex@shazbot.org>, Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>,
	linux-kernel@vger.kernel.org, driver-core@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org, linux-hyperv@vger.kernel.org,
	linux-pci@vger.kernel.org, platform-driver-x86@vger.kernel.org,
	linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-spi@vger.kernel.org,
	virtualization@lists.linux.dev, kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 00/12] treewide: Convert buses to use generic
 driver_override
Message-ID: <20260325052919-mutt-send-email-mst@kernel.org>
References: <20260324005919.2408620-1-dakr@kernel.org>
MIME-Version: 1.0
In-Reply-To: <20260324005919.2408620-1-dakr@kernel.org>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: 2Zfh4UGtArzb41qXaQXjObaAw_4G9KtsW7XU8p0DaVc_1774430994
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
X-purgate-ID: tlsNG-c201ff/1774430997-2209A488-CEDF4889/0/0
X-purgate-type: clean
X-purgate-size: 4713

On Tue, Mar 24, 2026 at 01:59:04AM +0100, Danilo Krummrich wrote:
> This is the follow-up of the driver_override generalization in [1], converting
> the remaining 11 busses and removing the now-unused driver_set_override()
> helper.
> 
> All of them (except AP, which has a different race condition) are prone to the
> potential UAF described in [2], caused by accessing the driver_override field
> from their corresponding match() callback.
> 
> In order to address this, the generalized driver_override field in struct device
> is protected with a spinlock. The driver-core provides accessors, such as
> device_match_driver_override(), device_has_driver_override() and
> device_set_driver_override(), which all ensure proper locking internally.
> 
> Additionally, the driver-core provides a driver_override flag in struct
> bus_type, which, once enabled, automatically registers generic sysfs callbacks,
> allowing userspace to modify the driver_override field.
> 
> SPI and AP are a bit special; both print "\n" when driver_override is not set,
> whereas all other buses (and thus the driver-core) produce "(null)\n" in this
> case.
> 
> Hence, SPI and AP do not take advantage of the driver_override flag in struct
> bus_type; AP additionally maintains a counter in its custom sysfs store().
> 
> Technically, we could support a custom fallback string when driver_override is
> unset in struct bus_type, but only SPI would benefit from this, since AP has
> additional custom logic in store() anyways.
> 
> (I'm not sure if there are userspace programs that strictly rely on this;
> driverctl seems to check for both, but I rather not break some userspace tool
> I'm not aware of. :)
> 
> This series is based on v7.0-rc5 with no additional dependencies, hence those
> patches can be picked up by subsystems individually.
> 
> [1] https://lore.kernel.org/driver-core/20260303115720.48783-1-dakr@kernel.org/
> [2] https://bugzilla.kernel.org/show_bug.cgi?id=220789
> [3] https://gitlab.com/driverctl/driverctl/-/blob/0.121/driverctl?ref_type=tags#L99

vdpa bits:

Acked-by: Michael S. Tsirkin <mst@redhat.com>

I assume it'll all be merged together?

> Danilo Krummrich (12):
>   amba: use generic driver_override infrastructure
>   bus: fsl-mc: use generic driver_override infrastructure
>   cdx: use generic driver_override infrastructure
>   hv: vmbus: use generic driver_override infrastructure
>   PCI: use generic driver_override infrastructure
>   platform/wmi: use generic driver_override infrastructure
>   rpmsg: use generic driver_override infrastructure
>   vdpa: use generic driver_override infrastructure
>   s390/cio: use generic driver_override infrastructure
>   s390/ap: use generic driver_override infrastructure
>   spi: use generic driver_override infrastructure
>   driver core: remove driver_set_override()
> 
>  drivers/amba/bus.c                 | 37 +++------------
>  drivers/base/driver.c              | 75 ------------------------------
>  drivers/bus/fsl-mc/fsl-mc-bus.c    | 43 +++--------------
>  drivers/cdx/cdx.c                  | 40 ++--------------
>  drivers/hv/vmbus_drv.c             | 36 ++------------
>  drivers/pci/pci-driver.c           | 11 +++--
>  drivers/pci/pci-sysfs.c            | 28 -----------
>  drivers/pci/probe.c                |  1 -
>  drivers/platform/wmi/core.c        | 36 ++------------
>  drivers/rpmsg/qcom_glink_native.c  |  2 -
>  drivers/rpmsg/rpmsg_core.c         | 43 +++--------------
>  drivers/rpmsg/virtio_rpmsg_bus.c   |  1 -
>  drivers/s390/cio/cio.h             |  5 --
>  drivers/s390/cio/css.c             | 34 ++------------
>  drivers/s390/crypto/ap_bus.c       | 34 +++++++-------
>  drivers/s390/crypto/ap_bus.h       |  1 -
>  drivers/s390/crypto/ap_queue.c     | 24 +++-------
>  drivers/spi/spi.c                  | 19 +++-----
>  drivers/vdpa/vdpa.c                | 48 ++-----------------
>  drivers/vfio/fsl-mc/vfio_fsl_mc.c  |  4 +-
>  drivers/vfio/pci/vfio_pci_core.c   |  5 +-
>  drivers/xen/xen-pciback/pci_stub.c |  6 ++-
>  include/linux/amba/bus.h           |  5 --
>  include/linux/cdx/cdx_bus.h        |  4 --
>  include/linux/device/driver.h      |  2 -
>  include/linux/fsl/mc.h             |  4 --
>  include/linux/hyperv.h             |  5 --
>  include/linux/pci.h                |  6 ---
>  include/linux/rpmsg.h              |  4 --
>  include/linux/spi/spi.h            |  5 --
>  include/linux/vdpa.h               |  4 --
>  include/linux/wmi.h                |  4 --
>  32 files changed, 88 insertions(+), 488 deletions(-)
> 
> 
> base-commit: c369299895a591d96745d6492d4888259b004a9e
> -- 
> 2.53.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 09:31:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 09:31:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261803.1554564 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5KZp-0007SL-IN; Wed, 25 Mar 2026 09:31:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261803.1554564; Wed, 25 Mar 2026 09: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 1w5KZp-0007SE-Fb; Wed, 25 Mar 2026 09:31:01 +0000
Received: by outflank-mailman (input) for mailman id 1261803;
 Wed, 25 Mar 2026 09:31:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5KZo-0007Rv-Ip
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 09:31:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5KZn-00FyKt-V9
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 10:30:59 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c3ab52-bab6-0a2a0a5309dd-0a2a4503a898-12
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 10:30:59 +0100
Received: from [209.85.221.41] (helo=mail-wr1-f41.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c3ab53-1947-0a2a45030019-d155dd29c85b-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 10:30:59 +0100
Received: by mail-wr1-f41.google.com with SMTP id
 ffacd0b85a97d-439b2965d4bso3426863f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 02:30:59 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b64703c7fsm45600471f8f.23.2026.03.25.02.30.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 02:30:58 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774431059; x=1775035859; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AOFWphkWWjRveNWf8Bwmoa61sWxixQrPMGYPVT7DGcc=;
        b=QQIT/TmaFP9I67aB7NLGaX6j998/ETP5GIJ7ewRY/yew0k4Y10sMNYR8Yc3Pbw8jI0
         u/WIB/U5A3aPsU6NqIqyJwhfjxauAP4llfJiSceF1OudHkSXtVYO98GsYbk0OPrnMmcV
         i9tbpRD+DLRWJwkWjddQU+0qhT08eOxRSMzYb0jJjC5gNtIQtQusdxPgbTSejIr3fKIt
         5g0xfUziORVQogsz0USm+iqv/nqX+5Q+9Vf26qbqOOn+FUzZuoLHywpGYmNESUq06rJ3
         AlNg39KT5+RxSDXLsTsca6TES5MFkuVPhvnAIUf7C1JSHGldBx4P4gYFSR5bvZAoU8/U
         qARA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774431059; x=1775035859;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AOFWphkWWjRveNWf8Bwmoa61sWxixQrPMGYPVT7DGcc=;
        b=j0yWCudD/0rQhFQ27AXM717Pq6MHP3NrnvGMXsHoI7y006sTbbHBwffCen3SYnY83n
         ypDequxRo0uZyh7lDV9xmH+Ym/iFmct3X2An21+ssDMWPaR154udYFAf3Dm38Kd8XK3u
         jMHMu/ecnRsQtVNBnVatZJ0zD/kIjwXBart8Gx9GlBz6fhCAufIKXtFynqT1W8bY1pKk
         axFN8SI7hm+rMsjuL6q+75Z4P1pZJ/H6qaabBZ16Gt3suX2o5hkDErtF3is+ioJqJuh/
         B93XefJpZd5EE/euUh2JG88Pe/orKbd+KkeCB6klz1k26AGz/gomYVRNYC68clT1pCbB
         Ezng==
X-Forwarded-Encrypted: i=1; AJvYcCWqQuPKP6ZTphpksQMV3uAMaxuo0OShIywQGEekkz7k6UM3e6eXejXi5eVRjrTnNEO6PHYcsJkDM5w=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy84aqy90XJXxHq7v2Ita0qpuyUh0vAMI1+KduWsm2BpwpVES+h
	vMSS2gz3B40tUXsLdSuTtywAh4Ym170PgUKTKPQ2grGMBU3OYOo0BbITnMHJn9f/QA==
X-Gm-Gg: ATEYQzyf9pWoaMt8QrEcdEjZUGJ9WCYl255L4FJDMIV1NtL4tayO3SpmtEwQWgP+v0K
	6XMQlmPI9JCX+t0OnykA4SbYGdWmECwmz2I48sngzxPOmzO1r5i+f1s8Bb2KdtcuLSB2i/zZ+LQ
	G570jgiI2ghkXZKw3oyyND86iCg46s+9q1e+vZx/XOdVOm37JF1XMUtb5020ATX291YPBlgmIDS
	Z+wHqdzMsQj1fJ5ngGA1REtlF9iqH8tEMbroEferN1ivA7xUg/ptJmpdu+jfW7XVzoVyk/UNYXS
	kUBE0zzzBogRw9CuWsV4rThB8+MjqAs1rS51BIhilwN5XEZzmzGXJYB7tY9jD36HVbKS4lGFeua
	vScbLL/1LKE1boLQCDKvYM7VjIpXojiFnOIS36qA4cT0i/FATkFVC3ZvpCFS7y8sji0XT/jFywJ
	8G3qp/08ycpIN2WBb1ZZf5nE9BmNU6FHbBmSr+JrFwmkOitIZcyvZCqxz+3Z2xjWTX8TqPcTfXI
	ciT2Z+K1D1O/WTjipGxh3h4tw==
X-Received: by 2002:a05:6000:2909:b0:439:d8cb:1392 with SMTP id ffacd0b85a97d-43b88a0513fmr4324315f8f.26.1774431058752;
        Wed, 25 Mar 2026 02:30:58 -0700 (PDT)
Message-ID: <33af69c4-3e35-4baa-abdc-57902a0db4bc@suse.com>
Date: Wed, 25 Mar 2026 10:30:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 7/9] x86: Remove fpu_initialised/fpu_dirty
To: Ross Lagerwall <ross.lagerwall@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 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: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
 <20260324181937.2465574-8-ross.lagerwall@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260324181937.2465574-8-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1774431059-EAC8472C-C5575400/0/0
X-purgate-type: clean
X-purgate-size: 601

On 24.03.2026 19:19, Ross Lagerwall wrote:
> --- a/xen/arch/x86/domctl.c
> +++ b/xen/arch/x86/domctl.c
> @@ -1409,8 +1409,7 @@ void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
>          c(flags = v->arch.pv.vgc_flags & ~(VGCF_i387_valid|VGCF_in_kernel));

It ends up a little odd to clear VGCF_i387_valid here, just to ...

>      else
>          c(flags = 0);
> -    if ( v->fpu_initialised )
> -        c(flags |= VGCF_i387_valid);
> +    c(flags |= VGCF_i387_valid);

... unconditionally set it afterwards. Could I talk you into cleaning
this up right away?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 09:43:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 09:43:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261817.1554574 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Klh-0000va-Jn; Wed, 25 Mar 2026 09:43:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261817.1554574; Wed, 25 Mar 2026 09:43: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 1w5Klh-0000vS-GX; Wed, 25 Mar 2026 09:43:17 +0000
Received: by outflank-mailman (input) for mailman id 1261817;
 Wed, 25 Mar 2026 09:43:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Oleksii_Moisieiev@epam.com>) id 1w5Klg-0000vG-Fl
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 09:43:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Klf-00C0sr-Ex
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 10:43:15 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 69c3ae2b-2eae-0a2a0a5409dd-0a2a450b9f0a-16
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 10:43:15 +0100
Received: from [52.101.70.88]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 69c3ae31-ef63-0a2a450b0019-3465465836fb-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 10:43:15 +0100
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com (2603:10a6:10:519::5)
 by FRWPR03MB11006.eurprd03.prod.outlook.com (2603:10a6:d10:173::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Wed, 25 Mar
 2026 09:43:10 +0000
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908]) by DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908%5]) with mapi id 15.20.9723.030; Wed, 25 Mar 2026
 09:43:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NCQedOq13nrgNjKlKYiOtD5VhSbv8UM1kUkAXwcjno6KMdsTxmO4I71uM/0x5BoFnX2BbXpcpXjwqEh4HJyVzQL9mc6lLP3yzpuIyKy7SHPRFvcdwB7kyHUjVbQ4Y7Bv64FDHjDqG8KjHURZoAlmDB1VoUKHczUSqBL4sVKKuCo7qTN/lzvgtbeoZhLXF0h6U/wu6Y824vMNwSz0cA/dIb9sra7izHfDdDDjTdF2rzQK+9Sm2IargMkejRSoKDPJsteie7ZmnLlpmiDoYZmcCzAGP6NPbn3jPmsBz3gs0HwhCoWdR6rNZeSy2UKlnRhTADMpHI/xvZiqx0k7Efi6pw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=t2RzNEiGKAjfQItZJJS0IgLaCJFzP3I0sfxeBqJoMco=;
 b=xELKRIpOElDT7hsI3BQEiIZXaiH0ik6vRCwTOu2HHA9WQkIkVgvbl3r8geeQ5W28FDI9rSHbSHMQHDAm7+ccCjdyGOO0hjIChlCyzGTOYEQ4VjFPaMKKpUGBbru65KA0w7KLDPvKMhGOkHQoYiZvf0/d1/XCp5N9GbBrZPYv4x1gIJVtk0ba462m5WgoDuWCyAjv1MwwrVwVdX7/4q14qdTPWTJQ2X3XC+W6evfgHH9BlL6MXiBrIWPjYn86r2CiH7/v3b0Jl1GzjoXc0CaaZrrDOiWFj1V0OBz91PHYk8cxKwRXDC3qea+y5PcNxwKayq8eehEw7zQ1ZzFshCoo7g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=t2RzNEiGKAjfQItZJJS0IgLaCJFzP3I0sfxeBqJoMco=;
 b=I53C4YQbxRQ0OusH7DKek5u5dZjp7zmIp91H4S8/acKLFFXG8INbdrfH31MXscm5eUvMCM28mQFO4m6XS/k5F7FpeQsl0rQbTYoYG1Jblce3z6JkBkVpOvzwBDS4nNA8pI1qKedeIVMeavhS80SqJwYzU8uYKJ7hgP9Xp/E64hstYltxW/HBOOk82Eowj3Nch98E7gljSah2zvUlklGUyCFFb17hT5PFruhI9HoY+Hog4db+oAKoHiQCMhfP8JUJtlVI9tSeLlG7r5px8Q2AzqzqJb25elRqarE44AXR4RshqxI4u/KNkhu7hL0hilypR+zw5dp0PWMkZKOmIcGnZw==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
	Juergen Gross <jgross@suse.com>, Meng Xu <mengxu@cis.upenn.edu>, Oleksii
 Moisieiev <Oleksii_Moisieiev@epam.com>
Subject: [PATCH] xen/sched: validate RTDS putinfo period and budget
Thread-Topic: [PATCH] xen/sched: validate RTDS putinfo period and budget
Thread-Index: AQHcvDvK8gNVwMujB0ygdi3PmK3CFw==
Date: Wed, 25 Mar 2026 09:43:10 +0000
Message-ID:
 <1a235cca6f37ee3d3f03132675247edfc19953cd.1774431761.git.oleksii_moisieiev@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DU5PR03MB10263:EE_|FRWPR03MB11006:EE_
x-ms-office365-filtering-correlation-id: c3d06d77-e928-4351-f766-08de8a52ed49
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021|18002099003|56012099003;
x-microsoft-antispam-message-info:
 kcVK2xTp31jYmna+AbgF3D11lXRCvvqiudtvi00r0+HMwVeYRLAycJG7H8igr+0xiOKJUw/o1X9Oxqs/difG5vnu7emkrET2nVJxyYZ3Urr2FK1lBmTE6p4hfMOnYy6CMBRbwz98avfeKr99psq+RJDuo8ZtREmctDDY0eEvxaAUzNbcHJtTcFCkZLQAIf+vMaVhVIiHy7HVPvywBU9lolH5Cy3Eeu1f0AoaX482sXGxCpmg7Xr9qoEdOX5cvDqaQ57pr6vOCLlSaYXVYAHliVEVeHq3L1r7JrhqkszH4mrSANBmWbzfS/rjEdyfFD5lpLQhIBKYP7CJF41CYpmfd1I4WJe45ff/40zB4G8AwNElvBI1jOG1176+ccc6Fr1Kol7zRd4nV/4R6xBeMnwlDaLKVjkJMUe7K1TuEV8doy12yoCv0eZbFiVrbyiKkpMs6KJYh4fdoIgWLFdU+3A68I9jzR7ImCpy6RGAAKDDkDv0enq86MR6BnGTWlAOAUgr5I5V7Gs5i7bzqEAhaVSTJZHVKtctcIUFJF1WkRR37TvJIEx0Qmu74etGmkYPX+Uizi8TuA3TC6CjwJ9XKU4NH6ho2upXJ/Dq7nmZ69upiyW9gIPyIsPQGf6cBk0H54ui/oha1GoK0DErwvp0SP9xTO0IG5me3gnMJJLinPBqcpqYrJogmUwF3uqNRKx00o/6GozTDEEDaUPk+y9oxSo0b7v5YkZz4WGFJTPO9W7ZzS4lKCy08tuemP8a+HEyouzoTDS84yFYexmUUcgS+A7Hwc+IbBvrlHjUmAJRi/KjpDU=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU5PR03MB10263.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?nYaLI2MgEUK/Hk9KiUYLtBBuBt7fmLmQLcCQig7p7o8v6oS0NxX8BJtYdS?=
 =?iso-8859-1?Q?D5OnwtlLKuLtHxfA/79bIdsPAajT3kxCCehA/15+lVrsQX3zZet6+LXGoS?=
 =?iso-8859-1?Q?JMJH8TuIwTq4KG5FbsqkJs2b1Isf0mcfIBjWXWpaKy1oCdJLwhfE8l5dvu?=
 =?iso-8859-1?Q?wFlbtoP4kY/fjYSABs4brDAX6ehxnY6xPjjC4jjje7RMhv49vvIdXgBYM7?=
 =?iso-8859-1?Q?yEPETC79mi+wdCBAUN53Aust1yjWc9yohlg1kPnemOFbN/u/O4EMRFSZzJ?=
 =?iso-8859-1?Q?jzDuVolpnuD3Loj1N/I3j+7VLCh9rmbiWYD7RnvZrdTT1di8RIdo3tRXBp?=
 =?iso-8859-1?Q?5/8IbvxatbLkWNxLG1b28APlqHo5f5g7nsz8XNMAkPysO05MimESMVIZun?=
 =?iso-8859-1?Q?oO5Qo744vi7OfDKXApkOFi6iY85m6hWIdBJcO5b1xYtBxvx/I8rrYr6dzK?=
 =?iso-8859-1?Q?metQ3bVLTIag5Q0Df2vHkLOB0Zgqv4eDx7hC6CVBqZg7LWEdDxi5IRtZcJ?=
 =?iso-8859-1?Q?8//lQXyk9fnISZmtvl4D0Sje28KfpIs+8zrrdJd35GlLQdRaKNhltjCcGD?=
 =?iso-8859-1?Q?pyzdGBAxCOlKq8+5rbErnuW4Wb3aJU+gFy6PahSsdThPdL2h4EY7u3VNPh?=
 =?iso-8859-1?Q?7Mi99poZq+wqpzJ1eVW9Q+gbfia7vWHgUFqpt/TiBxFqgAM+2tSUKb+YBT?=
 =?iso-8859-1?Q?oF9EnRDJdnSibPIWDLAa2Yrvr+Mkaoc7jU+2379vOI7fzaHDuO7F8dhXHF?=
 =?iso-8859-1?Q?Zd04P72hRDhxFpBqBELYJT8fx6lBgxfBILuQRzrEngxM8oAxHoTeQe7Sk7?=
 =?iso-8859-1?Q?3xEOLsu9IR79oT50tbjCsg0SmuI3/nroYIY7hsOLrj1tIikyD3ZC0+UZEq?=
 =?iso-8859-1?Q?IVLK1lfnI5e7dra19aYw2Z5IFsmcoTfKVl98TYJ6OdiTwXM3X8EZZGcXbK?=
 =?iso-8859-1?Q?WgS75i/WSY1Di8B8QT3ZnXhBKzbVU4oLD6wL2WsmBQ4Z4wP5zcNb210TkF?=
 =?iso-8859-1?Q?4P1jUft7r3KVpb+Bx5+43rZktbP/3efzqxQw8lzppJw/BazDRopblpYNQZ?=
 =?iso-8859-1?Q?V8sHX6NaNnz7xuRRinaC5kwQ5B/prlZqnXe+1HgRJ1vbC9W69+WiSwk461?=
 =?iso-8859-1?Q?BhiR8Ddc9m95lL8p0sTq0QYN0PvU6a0BmkUihgW3+3r5BofLYSDAGuasX/?=
 =?iso-8859-1?Q?VCaiMPuHFiD8IU2sMM5MfhjX2pBjHqNMrPJ0KLKamZGZ9Oa9YjEutmqEUr?=
 =?iso-8859-1?Q?QLlo02v1osgOIQQgHR2FnATOWYXSEF48C2qXOpii46woiQNE+kUimEtkVl?=
 =?iso-8859-1?Q?DkTzIgkwOP/zt32GY/xn++RR5nJ+ZKwEysZdgB2kJ+8ozZlb+r6wF/xFib?=
 =?iso-8859-1?Q?dZ9FN5mzRc7dmvAwgpznBcbwi0PGGKaDOVTfBR8KOq9snViB+SQryv0XzE?=
 =?iso-8859-1?Q?ydXjJMk3t8VaB1SjQfxatMVP38Zg5WepSaGOTTys4ws68befrcBKPGVxDH?=
 =?iso-8859-1?Q?YVpCsXbtXAvYpoN6JtkeIFCtWg7lrXwgVIJkPJNMnazWnCEB+tQBGnfX+k?=
 =?iso-8859-1?Q?1KsDEX5Ra7F4yBQm6tcCkK2POCsZKqeyvSaN4VgnSTTMUkAzyDtioNnZkp?=
 =?iso-8859-1?Q?uWCsj/YvAbuWN2GbDwjZVKzNUGrSTYSECLlxH3kRZJXLOlj6h6x3ZqmZvd?=
 =?iso-8859-1?Q?FwL6s2OjLnasWXyRSGdHskwoX0tNN0HB/NwlaobxnXo/TJdB1Y+n735QEd?=
 =?iso-8859-1?Q?UbY0xxquCUDER3wFKfc7smiSrKwszD9B5o/4XRNZYSs/JCVrHSkVfHXNhL?=
 =?iso-8859-1?Q?V3bgxiGiZPv3nU+vkvfZxOrSZ8eSF0I=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DU5PR03MB10263.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c3d06d77-e928-4351-f766-08de8a52ed49
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Mar 2026 09:43:10.5547
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: QKiwsN9VNYtHJLjR7r+peqU4bezwtOJ+83uS4aQnEoBItMuc5rcpWyl5KB3BcD0ALeUizXwSi+j9RNtulO851D2alXlmm5/rO54fLX1IVS8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: FRWPR03MB11006
X-purgate-ID: tlsNG-42698a/1774431795-9A0B1112-C0021055/0/0
X-purgate-type: clean
X-purgate-size: 1424

The RTDS domain-wide XEN_DOMCTL_SCHEDOP_putinfo path only checks for
zero values before applying period and budget to all vCPUs in the
domain.

This is weaker than the per-vCPU XEN_DOMCTL_SCHEDOP_putvcpuinfo path,
which already rejects values below the minimum, above the maximum, and
cases where budget exceeds period.

Use the same validation rules for putinfo as for putvcpuinfo, so
invalid domain-wide updates are rejected with -EINVAL instead of being
applied inconsistently.

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

 xen/common/sched/rt.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/xen/common/sched/rt.c b/xen/common/sched/rt.c
index 7b1f64a779..62188f37c6 100644
--- a/xen/common/sched/rt.c
+++ b/xen/common/sched/rt.c
@@ -1388,7 +1388,10 @@ rt_dom_cntl(
         op->u.rtds.budget =3D RTDS_DEFAULT_BUDGET / MICROSECS(1);
         break;
     case XEN_DOMCTL_SCHEDOP_putinfo:
-        if ( op->u.rtds.period =3D=3D 0 || op->u.rtds.budget =3D=3D 0 )
+        if ( op->u.rtds.period > RTDS_MAX_PERIOD ||
+            op->u.rtds.budget < RTDS_MIN_BUDGET ||
+            op->u.rtds.budget > op->u.rtds.period ||
+            op->u.rtds.period < RTDS_MIN_PERIOD )
         {
             rc =3D -EINVAL;
             break;
--=20
2.43.0

base-commit: a7bf8ff218ca05eb3674fdfd2817f6cff471e96a
branch: amoi_rtds_SCHEDOP_putinfo=


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 09:48:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 09:48:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261827.1554582 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Kr6-0001iA-5U; Wed, 25 Mar 2026 09:48:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261827.1554582; Wed, 25 Mar 2026 09:48: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 1w5Kr6-0001i3-2a; Wed, 25 Mar 2026 09:48:52 +0000
Received: by outflank-mailman (input) for mailman id 1261827;
 Wed, 25 Mar 2026 09:48:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <bounce-md_30504962.69c3af7f.v1-d93a7567d71940c395e9f609a47b96cd@bounce.vates.tech>)
 id 1w5Kr4-0001hx-JK
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 09:48:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Kr3-00DbSS-Uf
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 10:48:49 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <bounce-md_30504962.69c3af7f.v1-d93a7567d71940c395e9f609a47b96cd@bounce.vates.tech>)
 id 69c3af75-bab6-0a2a0a5309dd-0a2a4503b4c2-44
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 10:48:49 +0100
Received: from [198.2.132.30] (helo=mail132-30.atl131.mandrillapp.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from
 <bounce-md_30504962.69c3af7f.v1-d93a7567d71940c395e9f609a47b96cd@bounce.vates.tech>)
 id 69c3af80-1947-0a2a45030019-c602841e40c1-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 10:48:49 +0100
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-30.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fghtl6Y67zP0PSBR
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 09:48:47 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d93a7567d71940c395e9f609a47b96cd; Wed, 25 Mar 2026 09:48:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mte1 header.d=mandrillapp.com header.i="@mandrillapp.com" header.h="From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"; dkim=pass header.s=mte1 header.d=vates.tech header.i="teddy.astie@vates.tech" header.h="From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774432127; x=1774702127;
	bh=dfsx9jJk+LhQxtmUiK3ATUX67JKdlC/UN1yl5OqOLjY=;
	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=BMFV/7cm8xtljgcyPHwGubgU9bCXwhPGqXJcUWBa5BHEIQp7zaxsZWVqgWF5tWm1M
	 bQfe9xhIVd/p6SdpVxRUkh73/Z3yScQjsVkh+W1LeUIhB9Ed4yFCJgzCV8sxu8dp03
	 6BbOM+lxvh8MYPwSiAMqb1RrIo1I7tmBFtItPNikuNGlTVk1j65WkyEG0hGjUNN8jQ
	 9UrPtJ0e9FPsjVM7A2cAT1ZSISbqPdsp0dIg7sZXkzlyW8W5GkmW8ejjubetV8j3Iu
	 z4AcZVD+jp3y66zbEBbsibda7By3klu8rfKaoia/QCPBVQkfTC3uNhm1J5oaWNeelo
	 0Gbhxcxco6rqA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774432127; x=1774692627; i=teddy.astie@vates.tech;
	bh=dfsx9jJk+LhQxtmUiK3ATUX67JKdlC/UN1yl5OqOLjY=;
	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=i/m43qDhpi67wkcdlD7PhsExh6zWXqy1/hyzEDi9ty5Yn8wFqlrVXApKUWZ+pPI3l
	 YxnxVHlMr+fi6QchkKazurIXIhcOnhRm5A0MP2UNvx/MbeR/GhCRcUak4YhzF7Nf8J
	 T4nmbf0vePWYyIvFYHlMbmqSdlI5zuyRlT4dzOYPf67kBKMaERgwFiaie93h8AQ07z
	 EPty3q/oyx1Vcy1Dw0UCKUODgW68jPD8BBUh6EoIQhlVmiIKWKwKkg/X344HA81TAv
	 Ai+uZ+JEUfPImrADpAZMgYrQi/ruiK3Ldt71wielx5lUuQw1MzByrkvIX90zhtgauL
	 HuSHxhWFp1b+A==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=203/6]=20x86:=20Define=20some=20Intel=20vPMU=20leafs?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774432126933
Message-Id: <690ad4c0-d9b1-45ec-8634-f8c002c0282a@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.1773160025.git.teddy.astie@vates.tech> <83a573dcb365761c0f089325365090b6f963fb03.1773160025.git.teddy.astie@vates.tech> <d7438af9-1aad-446b-bd80-7d9e8f955cdc@suse.com>
In-Reply-To: <d7438af9-1aad-446b-bd80-7d9e8f955cdc@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.d93a7567d71940c395e9f609a47b96cd?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260325:md
Date: Wed, 25 Mar 2026 09:48:47 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-33051d/1774432129-EB28772C-3548E8F0/0/0
X-purgate-type: clean
X-purgate-size: 2740

Le 24/03/2026 =C3=A0 10:25, Jan Beulich a =C3=A9crit=C2=A0:
> On 10.03.2026 17:44, Teddy Astie wrote:
>> --- a/xen/include/xen/lib/x86/cpu-policy.h
>> +++ b/xen/include/xen/lib/x86/cpu-policy.h
>> @@ -162,7 +162,15 @@ struct cpu_policy
>>               uint64_t :64, :64; /* Leaf 0x9 - DCA */
>>   
>>               /* Leaf 0xa - Intel PMU. */
>> -            uint8_t pmu_version, _pmu[15];
>> +            struct {
>> +                uint8_t /* a */ version, num_gp_ctrs, gp_ctr_width,
>> +                                event_enum_length;
>> +                uint32_t /* b */:32;
>> +                uint32_t /* c */ fixed_ctr_mask;
>> +                uint32_t /* d */ num_fixed_ctr:5, fixed_ctr_width:8, :1=
,
>> +                                 anythread_depreciation:1, slots_per_cy=
c:4,
>> +                                 :13;
>> +            } pmu;
> 
> Style-wise this looks to follow e.g. the cache leaf, so perhaps okay, eve=
n
> if I would have preferred you to follow what we did for leaf 6. 

My idea was to put all that as .pmu.*, so I wouldn't need to prefix 
everything with "pmu_". I'm not sure if you're talking about a different 
approach.

 > The named> boolean field, however, wants to be of type bool.

Which fields ?

 > And then the unnamed 1-bit> field really wants to be 2 bits, for 
anythread_depreciation to be bit 15
> (etc).
> 

Ah yes thanks, I got confused with the fields size for a second.
I also found that slots_per_cyc is 3 bits instead of 4.

I think this diff fixes it overall.

diff --git a/xen/include/xen/lib/x86/cpu-policy.h 
b/xen/include/xen/lib/x86/cpu-policy.h
index 9161e2ad8d..796c2edb0e 100644
--- a/xen/include/xen/lib/x86/cpu-policy.h
+++ b/xen/include/xen/lib/x86/cpu-policy.h
@@ -167,9 +167,9 @@ struct cpu_policy
                                  event_enum_length;
                  uint32_t /* b */:32;
                  uint32_t /* c */ fixed_ctr_mask;
-                uint32_t /* d */ num_fixed_ctr:5, fixed_ctr_width:8, :1,
-                                 anythread_depreciation:1, slots_per_cyc:4=
,
-                                 :13;
+                uint32_t /* d */ num_fixed_ctr:5, fixed_ctr_width:8, :2,
+                                 anythread_depreciation:1, slots_per_cyc:3=
,
+                                 :11;
              } pmu;

              uint64_t :64, :64; /* Leaf 0xb - Topology. */

Making the first edx reserved gap actually 2 bits, slots_per_cyc 
actually 3 bits and adjusting the end reserved part that is actually 11 
bits.

> Jan
> 

Teddy


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Wed Mar 25 09:52:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 09:52:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261837.1554592 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Kuj-0003HE-Kl; Wed, 25 Mar 2026 09:52:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261837.1554592; Wed, 25 Mar 2026 09:52:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Kuj-0003H7-H7; Wed, 25 Mar 2026 09:52:37 +0000
Received: by outflank-mailman (input) for mailman id 1261837;
 Wed, 25 Mar 2026 09:52:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <bounce-md_30504962.69c3b062.v1-14bbfae5b9ba48c48016e920f26295b8@bounce.vates.tech>)
 id 1w5Kui-0003H1-FZ
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 09:52:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Kug-00C2yo-9i
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 10:52:35 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <bounce-md_30504962.69c3b062.v1-14bbfae5b9ba48c48016e920f26295b8@bounce.vates.tech>)
 id 69c3b060-5cb7-0a2a0a5109dd-0a2a450ab64c-10
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 10:52:35 +0100
Received: from [198.2.132.30] (helo=mail132-30.atl131.mandrillapp.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from
 <bounce-md_30504962.69c3b062.v1-14bbfae5b9ba48c48016e920f26295b8@bounce.vates.tech>)
 id 69c3b062-1772-0a2a450a0019-c602841ee076-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 10:52:35 +0100
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-30.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fghz63BVTzP0K4yd
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 09:52:34 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 14bbfae5b9ba48c48016e920f26295b8; Wed, 25 Mar 2026 09:52:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mte1 header.d=mandrillapp.com header.i="@mandrillapp.com" header.h="From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"; dkim=pass header.s=mte1 header.d=vates.tech header.i="teddy.astie@vates.tech" header.h="From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774432354; x=1774702354;
	bh=UaxZica+m1LUQHGkzYfJ1+kqnXdJBmBtC5PuT3IRKuc=;
	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=KoZO8QbzfTcB/A2lvA2Ohl9BPqfIwjvwyrCyW+557NlgNk15fiHj1D9w5PR95LRvL
	 cSrgIVOXOKUc772OPX2p0AwGvQg4Hy+JfDM5K3FM1OwfFja2ycNrBQhStodmzFomZW
	 eOwwOHhi3pNPXfP4iw2cPwluQtvwVgoozWYsRtfhMlPrzbJ/bbi4T6Gvu4WkGEVfPE
	 7uvtG1IXQFKlZVUt3PR0yHMsEZskrslokZfzhylb+stNU6GTHGK3dDLHLRUPzcN+7z
	 xaLnFc/Uaf5tbAamOxPcUeBq66+wv4RYUCucM6rJqgVamwyvLKNbIqX8n3eZHEMfkC
	 YBGvMEhRbpfRA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774432354; x=1774692854; i=teddy.astie@vates.tech;
	bh=UaxZica+m1LUQHGkzYfJ1+kqnXdJBmBtC5PuT3IRKuc=;
	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=qO7ETy4sAC9m6AVduv6MVBrin3g0wC0iqzQuYiGeLPJSUpfs+jA6iupVHrLAX10m8
	 33mSvuVzlPXxJINx/MAFNTTHO+aL1yKarjrRQ6se4IIq2D8ORBU+WbKml7s1xbOiIl
	 pKQlvk5ABfbtbic062rZdodwWeoK53g3Hv1TXK8h89QhLznG8cYK1mttz0mvWJy85x
	 a9iAgHbdtMOoDCK1nv2X8EWnZT3aljxssAnPUpionpq5EK9i36WQSPVDAGgYrQweF1
	 lZfezYTnwR5BA5dleaktp2GIyfMo+QcWk1zzfhVoeys6ttWJnvhHgbRulwSQ+Um4QC
	 Yk9weToOGREIg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=204/6]=20x86/vpmu:=20Sanitise=20Intel=20PMU=20version?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774432353580
Message-Id: <1bb2df7c-aabb-4449-9a77-8449b0d1a6cb@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.1773160025.git.teddy.astie@vates.tech> <dcd278658139976d1af92b4d201c17e12cf7eb2b.1773160025.git.teddy.astie@vates.tech> <0857c00d-f11e-4b84-8988-e7a096aa55f5@suse.com>
In-Reply-To: <0857c00d-f11e-4b84-8988-e7a096aa55f5@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.14bbfae5b9ba48c48016e920f26295b8?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260325:md
Date: Wed, 25 Mar 2026 09:52:34 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-4011c0/1774432355-BE691900-D3F13F7E/0/0
X-purgate-type: clean
X-purgate-size: 1934

Le 24/03/2026 =C3=A0 17:03, Jan Beulich a =C3=A9crit=C2=A0:
> On 10.03.2026 17:44, Teddy Astie wrote:
>> --- a/xen/arch/x86/cpu-policy.c
>> +++ b/xen/arch/x86/cpu-policy.c
>> @@ -253,6 +253,33 @@ static void recalculate_xstate(struct cpu_policy *p=
)
>>       }
>>   }
>>   
>> +static void sanitise_vpmu(struct cpu_policy *p)
>> +{
>> +switch ( p->x86_vendor )
> 
> Nit: Lack of indentation.
> 
>> +    {
>> +    case X86_VENDOR_INTEL:
>> +        if ( !p->basic.pmu.version )
>> +            return;
> 
> Better use "break", but: Why is this check needed anyway? Nothing ...
> 

My idea was to return early if there is no version (keeping everything 
0). But as I only added checks for PMU version in this patch, this is 
effectively redundant at this moment.

Although, "x86/vpmu: Limit to using supported general/fixed counters" 
makes some additional adjustments to the CPUID if pmu.version !=3D 0 
making it non redundant anymore.

But yes, it wants 'break' here.

>> +        /*
>> +         * Expose up to PMU version 2
>> +         *
>> +         * PMU version 3 introduced the AnyThread bit we don't want
>> +         * to support (see "AnyThread Counting and Software Evolution"
>> +         * regarding notes with virtualization). This is the only known
>> +         * feature introduced in PMU version 3.
>> +         *
>> +         * PMU version 5 deprecated AnyThread, and introduced a CPUID
>> +         * bit (ANYTHREAD_DEPRECATION) to indicate that this bit isn't =
supported.
>> +         * That CPUID bit should be set for PMU version 5.
>> +         */
>> +        if ( p->basic.pmu.version > 2 )
>> +            p->basic.pmu.version =3D 2;
>> +
>> +        break;
>> +    }
> 
> ... here breaks if it was dropped.
> 
> Jan
> 

Teddy


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Wed Mar 25 10:15:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 10:15:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261858.1554601 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5LGD-0006z6-EY; Wed, 25 Mar 2026 10:14:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261858.1554601; Wed, 25 Mar 2026 10:14:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5LGD-0006yz-BT; Wed, 25 Mar 2026 10:14:49 +0000
Received: by outflank-mailman (input) for mailman id 1261858;
 Wed, 25 Mar 2026 10:14:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w5LGC-0006yt-OE
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 10:14:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5LGC-009Ma5-3m
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 11:14:48 +0100
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c3b58e-5cb7-0a2a0a5109dd-0a2a45068758-46
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:14:48 +0100
Received: from [52.101.56.18]
 (helo=BN1PR04CU002.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c3b596-3034-0a2a45060019-3465381247db-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:14:47 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DM4PR03MB6909.namprd03.prod.outlook.com (2603:10b6:8:44::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Wed, 25 Mar
 2026 10:14:42 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026
 10:14:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YxH9loDWF1Sd6cg0tXAJaRtYpy/vCc4bD31dlkY06ch1furmKCWrQokmiTshcgQ1vFRDbi7X3g3/hgwHnsdoekkLYgwMz+XpSUgwxvuAutJW5qu+cYauKbV/YJN+6OfndGQb1aULOABgyYPY5BJswXkwX6RIbmyd4QofYze0LLOD48htUgWuVGKKk3FD6lY/vYB58dwosN/mTLcL5ggyimqMKTA63XXJdXsXJbyXFRCzQcYkJsSdtCqgEIxHkd0mnx2OrWfR4fhxrziN4fbBASSoiY0s+RQJ48pEHd3Wpa98ocgSoKs0r/xNPO0tS4Scj2yvktF3xDkczzpfzG4GJQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=i7FxLcReI3lvoqNVYr3/LYFjIZGhWVS54QrKUzNgnMI=;
 b=L4TdwDyCCa3qvRtzLmoO6UdEOvqJRd7ZrgV+HhP4BD2UkqI3IcFq0H8qC8CrK5cGG2T8OvS2iGr+2iurY3N3U+bFH/Y8XQMpLV/lsrxnGrnqBDdLrhPY5sRufTsxIouG/gPTsejtxbsf+bfFFJOrmkB2+/bbgIaeJH+tJjZQRu+EZYe+mZuq/1UKXnligpVLjiKG7KpppV5lOAMpJptIcU01/dXwKEAfHXpyFBynTtG7gLMpE3IlTwlRTYWrLgk396YDJzAvKfdYTkx54tC25aOY7hFbGdJjCxzJ8gWZMObmwya/t/Uc+K5tHqss6Je9jobiZDpBdEEFTkHzJiU2zA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=i7FxLcReI3lvoqNVYr3/LYFjIZGhWVS54QrKUzNgnMI=;
 b=tJMFAF9pROidzlNZJc7Q8AwmqCBtuFNws1E3M6pK12APJRhrY9RgKF9DkfDKfatx8YEO+dY4v3UolpwwI9Gy2yYvTvX/fUnSEK6kAbsQ4t7uKrAHO1LJwjhCQ6DaKHJVcVdhaSBlxqALM9cM91BJ1745RsvA0oxcPIRLlJ7WuiE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 0/2] xen/mm: fix fallout from populate_physmap() deferred scrub change
Date: Wed, 25 Mar 2026 11:08:01 +0100
Message-ID: <20260325100803.6640-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: MA3P292CA0051.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:48::19) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DM4PR03MB6909:EE_
X-MS-Office365-Filtering-Correlation-Id: 3e4df5b4-54eb-4c31-ed0c-08de8a5754bb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	UI3ceHjADr7E+nWHx3Tls2ag7I/Mxa2L8Alwf7g3+nfmF8s49ySq/JSh/mV/NF4GDSDfe1h9o49f3XOlp7HHPD/9HiksWzTyz8YAYgzpfxo6UYENXkRnE8d9eTqEFxeFKs2WDLb6QQPWN5M7bSAQ6/FUW0OAkfuhW07LpmGY46oHbO9H9RcaDD2G8G7D8bRVIn5CCOO+Tc6zq+x42KZoUGiyDMBKnAmWUGb4xBnpzXaY+kr4I5XTpn1tPmpMQRJTHckdBiy7fX3jWwmfwU1NZz8ggNvWUhHx3Uib2mFpSySltfynKyFAiUV7Css4TCALIRs16zeyyuNT7CLgvceRaAPiIEmcEwjk+NogNFTO20X0yQgyaIDBbHrWfJ40vPx5flpMwi7vZAYxe5qjaxhSmOLp0/Bp+Jhb0ZrlA4Ul4YDNgD6GSvnjhNpi185/U+DtgFj8Y7BG+cfaIcsDfjAx/HBjnbjpSNVzgiP1JFbNOWYQNuGZ40CiO5wAa2hptKEePtWxs1hlK/7z+Lxbmm0rM7SMFOcYzFnyoNWLn+gwjQPe+Hcv9R2k46aLRMYs/9v0x2v+umuQ8k6mEvGhuosp3IjD4sKEaYmVjogIKnXeSNneUY147zke5iGywzrr/Jd6jcwurvPFTiSSIWFX8ncXjH3jpBw5eSzGuDKSrNCNtW4nvdNg2XD6Ce1AzggFINkexFzLe88xaNhoLs1frV2qjORUK4Mo3E6kTgwVSGrqPj0=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OU1JNjVvRmxDR3pxVXpHalpMY1VoeXVsNzBHdVFYcW5uVUd0RzRxZGZqSU5a?=
 =?utf-8?B?MkFndm8wMnRkVGtWWjlGNFF4V0hIUXZVU2p5d3RERHlPaTdoL1UrektXdFp0?=
 =?utf-8?B?TU9iQ0RoTnZReCtKVUtWMlhkcFNZQXR3c1hUaWZnN2NSR3A3R0ppanl5RkFu?=
 =?utf-8?B?OUNQTmZpTWd5b3lEMlpWL2QvZlVqUllEVFJ2NW5Nc05GMmk2NGs2cEtHQjJH?=
 =?utf-8?B?Qjhwb2plL3cyOFdjcERhYnRxZkdmSEY4ZjZOeDZic01GTU1mUjJvMldlSHB0?=
 =?utf-8?B?anVDZFo4azJzaHVVSHY1ckdYVlZ2Mm43WWhsOFI2WWZpMlR1cVdwaHpXZytt?=
 =?utf-8?B?cEw4VGIwTnU2eGJDSzVpM1l6alNZYXZ6NUFVcEVTQzFnd1phdWRDQWFFSkVU?=
 =?utf-8?B?Smt1YmVQVHJSQjRzNzBLK3VPM2lhRktUeVl4NmdvUittYXZabURYTWVRRkFG?=
 =?utf-8?B?dFNITFRUOWQzMFhJc1g5bllMejk3UERTVHl3dTJZb2VNK3lNWnpSL2tZa0tn?=
 =?utf-8?B?MncwUjdab0hUSnRRSkJtcDZRZ3BBNG1uUmhkenhrSit3bjJseDRyQ1lUcUJQ?=
 =?utf-8?B?T3p4T3k1cGQ0aHNZOUNLRHRjQXh4aG9QWHR3S0s1SDgyZnoxQ1R3ZGJrNVlp?=
 =?utf-8?B?NjFnUy9EYklDUmdKN3Z0Z1NIZGViSlBqUmxBbnhsSWxtWE55MFRReHZmQ0pz?=
 =?utf-8?B?Ym5VbGhTSW5adGNndmcyVURMcXE4eTZLMC9iY29Zbk0xaGdpbmExWmhnZzZT?=
 =?utf-8?B?UTQ2R1doZkxCNWhBTnVXak9uV2pIREJEY0x2eDllVHFBUFQ4YkxEMlZIL3JO?=
 =?utf-8?B?YmlKbHpYbzJTR3Z0cG9MS09QWVUzT3ArdGpwdjRWK1hRSnVJRUVZNmw3bU83?=
 =?utf-8?B?OExnVUlqR0Z5anpWTUUwM01uQXExNHFoWVhwSkR0cmxOd05jdEdad0ZZdWhr?=
 =?utf-8?B?SEg3U011Y2xKOUY5OXF5UHJ6cktPL3lsMXJMT3VCL0haWHlTSm50aGpYckMx?=
 =?utf-8?B?S2I4MlZzS0tNLy93VHFzZ2o1Tm0xWnR2UkQwd285aXY4ejhQNlBicFpWUmNH?=
 =?utf-8?B?aWk4RVYxWHhIMjhQZ1hyMitpbjZ6QzZ1RUdYcjM1dzRuQXVJVWFsZ1FwbEZ2?=
 =?utf-8?B?bFlqODNOUENERU9pSGNxaXROajg2ZWNHRGgzeTdMZEJ6eWc5bXd1R1pIZGVQ?=
 =?utf-8?B?VGo1NkF2bU9uNzVkU0xuMFgrM2FWNzJGY0NCenFMeVVlaE41R0srMDNYbDZj?=
 =?utf-8?B?cm5kODZpT3cwTHhxK1JPellmemtCVzF0Yno2c3pVZ0w3MXpGdGJTaXNQWTZy?=
 =?utf-8?B?dW5GSVJQMGxKODBGRkFFMVJiUnc5STk5TEdicmNkd0djTWpnOUt2S2lMTEds?=
 =?utf-8?B?YmQzaEZEWWNMRVA2Wm5qMmFqR2t3VEFtdWlnUmxXV3ZhbkM0Sjl3TEpST0hv?=
 =?utf-8?B?VjF5WC9lRjk3b0k1Q1Y5ZXVqMVdJQkpNczkvWmtFTlJyaXlROU5UVjlzVVhi?=
 =?utf-8?B?bG1yek1jai9UUlNsUndYZVN6azB3ZjRrcUZqVVJ2aDhzaTB6REZheDRWMXhF?=
 =?utf-8?B?NURNWm54dVNhMlNTWFNkTG5CR0FUcTBOWnRjbzZEcmpzMWtndmRld2FmUnlH?=
 =?utf-8?B?RUVmUHBqaEtFakpvNnROMXp5NEN6Wk5Xa2ZmcjRaYlRDZTY2MkJNNzlQVXJo?=
 =?utf-8?B?Q0RMc3FKR3pZVUZrN0phcXNvUW1SdmxkKytFMCt4cGlHVDlnM3phNndPOWxh?=
 =?utf-8?B?ck90MzEzbGRjcWRqRDJBQ0N2dUhtLzFaOVBCYVp3V203Ri90VjNFelFzZkVR?=
 =?utf-8?B?NGZvd0ZpMnpHb2NENUdsMXlsOXN0UjFsa05nL3lNaGM3MHplZUZuM3ZSUDBG?=
 =?utf-8?B?WmphRlBtb3dkOWlpY1FLeVBwYTJ4ellYTm9KR1RTMmY4ak5VWWRqQ2YxdVla?=
 =?utf-8?B?U3FFcWNDbmNQOHV1cFp1STRIdzR1ZjAwSWZ3bk9aMksvMktLSitvUHpCUlhD?=
 =?utf-8?B?WUtURWpWUU1jMnlsQnlTS1l5YlFlUE9kZlViUTdNUDkzWkxGdEExblkxaTlV?=
 =?utf-8?B?UUNsOU1Bay9Vc1RwbXk4eTNGUVM1VGhCUlpVWjluMW1sSC9uU3JtN2hwS3lI?=
 =?utf-8?B?S2crL1RNWW5pS0ppam0wRDRWSnNpNEcvRXZOMFB1SEtieTRMUXFLRFJtM3BU?=
 =?utf-8?B?QytnSkJQSXl0K2oyTVgvTmtKUEtKcVBKV0llUUM5aVRHWW41RjBxWkpwcmhB?=
 =?utf-8?B?MHBjR0crODFSVHZlVXlpeEcvSjBwK0tKWXZHZjBEc0dxa2l2aHBIc1lyQm8r?=
 =?utf-8?B?V0pjTzU2R2hnbnFhOVNFYXNSMkhjY0Z0ODFRNmh2T0U2THc5OVkwQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3e4df5b4-54eb-4c31-ed0c-08de8a5754bb
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 10:14:42.4631
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: V13WbjO1BCsoS+U34Nf8rmqBKrE/7kbsq6qAHmjSHswnmVORZIvbrzSZR4AimcgwzIj2va+sB3geW9DKGa4Z/Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6909
X-purgate-ID: tlsNG-16d1c6/1774433687-829971C2-F0D34538/0/0
X-purgate-type: clean
X-purgate-size: 484

Hello,

Two fixes for the populate_physmap() deferred scrubbing changes.

Thanks, Roger.

Roger Pau Monne (2):
  xen/mm: don't unconditionally clear PGC_need_scrub in
    alloc_heap_pages()
  xen/mm: do not assign pages to a domain until they are scrubbed

 xen/common/memory.c     |  9 ++++++++-
 xen/common/page_alloc.c | 39 +++++++++++++++++++++++++++++----------
 xen/include/xen/mm.h    |  2 ++
 3 files changed, 39 insertions(+), 11 deletions(-)

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 10:15:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 10:15:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261860.1554619 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5LGK-0007RF-Up; Wed, 25 Mar 2026 10:14:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261860.1554619; Wed, 25 Mar 2026 10: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 1w5LGK-0007R8-R8; Wed, 25 Mar 2026 10:14:56 +0000
Received: by outflank-mailman (input) for mailman id 1261860;
 Wed, 25 Mar 2026 10:14:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w5LGJ-0007QG-Ej
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 10:14:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5LGI-00FaGp-QW
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 11:14:54 +0100
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c3b594-2eae-0a2a0a5409dd-0a2a4509eaaa-24
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:14:54 +0100
Received: from [40.93.196.62]
 (helo=SA9PR02CU001.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c3b59c-e484-0a2a45090019-285dc43e2eda-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:14:54 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DM4PR03MB6909.namprd03.prod.outlook.com (2603:10b6:8:44::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Wed, 25 Mar
 2026 10:14:49 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026
 10:14:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JOMK5BN+S4SwMYC0vyRnwkD49leYm7tBO/bzq60Q21XrB/3DQw6wpsvaOo/cSJEhZxAmrwcGqQ3yO+cBFOt3zzC0akH1ZuYFZlqnbD/bZKNiTfewxuEFJN9BIpWzdOwJYm18ImgWrKkENg+H7WblytGPuJzTwnxV1PTcb7fBojcl2ssc1HE08nILJtXRfKD0748vRV4LUyZLcJTMHWqSDQ2HqTNASjsB5LcRMFbMDvD/jgB/dA5DnBSxND1I6cbMjkL4uVTfGAxdaD/xt7RI59SF5EUoFrNyJUDUhSVKPI7IVI5nN9IvCF5zfx44I1VELZPwzbDQFlmfLkce0JUeQw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nhvUh8UyYnBfnnVo+URC4sTvpTPH371gNKBOBzKk7mU=;
 b=gnTGUzlH5eaXLQUAq1BDpqHCz50Jfb3xd9JHxBBy7MmBeF+gSvQF15TErhLaPlt2YU3bgkIQOHCLOiI3+jUmUtXHz8hrncFlqwUzA0BKO4cmxIzFce6t58t/tPub9mlsYPCWhhgsDGAwSXH2ivpC1gBn12IycF9o4zioR88ik2wM2KokTupBUo16t++E6gHjH3hHc4z2i+XqVV4eXqHEknC/YB71xJV9KQWfdRFm1t6fJ/oYm6N/kqXxxoYJP+fA+3RsCJAKlA9QqIKcPIjHuk78faQv4gkaRKi14nksxWwZFZEcgC+XVoNZsHSRI5w3UxV75lsp7auNlROKFC08EQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nhvUh8UyYnBfnnVo+URC4sTvpTPH371gNKBOBzKk7mU=;
 b=VgpBqaSa/aV1VaH8uegAyMH4mAiPiXPpxQ7y2IfEvSoeEe+7yUYfV11Ni5HZ67Omk/yQl7Z76sAPTrhaYln3a4Sot/u6vyMozatNN0VWLvmb+8qKPWP+UAmcLc6zR7lkbSj31ZkuqyEn1MrwwtZOtG28/B1ITD7bz0VbIvAT31o=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 2/2] xen/mm: do not assign pages to a domain until they are scrubbed
Date: Wed, 25 Mar 2026 11:08:03 +0100
Message-ID: <20260325100803.6640-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260325100803.6640-1-roger.pau@citrix.com>
References: <20260325100803.6640-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0021.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:47::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_|DM4PR03MB6909:EE_
X-MS-Office365-Filtering-Correlation-Id: e8080698-eb51-42f7-2c47-08de8a5758c0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	v6JAgpMuU+DIhAhBk9ItYa4UvjOssWqxGNGAVtwRlgxtAx4K4mOeECUFYXxwRc7MOCSKyfWHmvIkUQWyNxkmEvtolMMtG0eYqg5IcsGgR8MZ598umR4Q7hshXe81EEZh74GwzzdLiXSHuuaUPl+dYsr9bDxvoSYLyzp3HqYfMWXAkFSJkpMauWPE8uOBUJh9arKrkSUJ78wOxlUdSOXesdM9UGA2DtZaicQhWwf+CO639IE262yIH9hYcQMQf7rAdXtIi+b740iOw7Di1xUIaTQMYBiuyhtl9kZIQJS6uwV6ltVSY/dQ/WRyHP1H4tRjNVLujZ4SL2RrTScgb7ZRGT+UDV2NPDuwEe05hZHnXAW6BtaiTeuy6YjbJVleb0QTQHozTRHiHg9V6hPkqABBZYkVqoT7WhlVeR8jgJZnD6IpCjNlUGqyQW21GY76DICbYpr1AkgCHzDj0J49FNCklxRZT+HdNByt1uqdw2WrRLVaQ2vT0jYbcnorTgfCbPrawtNNGdzSx3rUBUaBaW32IazwCHQTqgjNbjumiAej83XArqMF8bqzzLtb/UPcQDX8gRyEHyT8hLP/P827N222HLm9tLiJEpf7du0I4/VyGtxAfvNWcMBzEuduneolLCHCwTvKr95MsLLQ6VitsJ58LbqqyjoEQfj4tzpeh/j06fiz4mjbZmLIxUDXbf7Dmrxuf7k1mY+vag2gaQTRlCzrdUEMXJnr2LT5ERSyjnrvKAQ=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TTdLd3VMZEM1OVVjS0xRN3JuYldIVXNvL0RLbWhGb1RMY3BTYjN3NzlnUlc5?=
 =?utf-8?B?dU9XUFphSEdIamh3aHVUOU9YbnhvbHZxSHRlVUt5TmNtVmV2ZUZ4Y3l3d1RG?=
 =?utf-8?B?SnBoWXBvNnp3VyswUWk0akRVMEhBVjdUbkVyOW5nTFNBZGZXT05EN01wNWk1?=
 =?utf-8?B?VHczTzBqMTVEVGFDWFg2a1ovU3lnMGg3Qmd2ZHVkQWN0KzNXSEdsMm9nTVRQ?=
 =?utf-8?B?VmZEbFpCNHM5YnlOMlh0NWcwTE44K1A4VDByV1RnM0Y5ODAzNDVZMk55SEhi?=
 =?utf-8?B?ekZnVVpZVjRtdEtLSVJHVzJUSnp6ak8yVzlKbEJ4NnRqaWtQdDFaY0dCMkFC?=
 =?utf-8?B?TVhqNkQyL01yU0cvVkpBN29mOWxWbWgySnExRVBrRWVJL1FVTEhSUXVVSFBr?=
 =?utf-8?B?SUo5VG1rMHIwTDdpU1ozK2JXbUhKRWdXV2lJWngvMEsyb3ZZM1NVM3Y1T1I5?=
 =?utf-8?B?YjVHbHhkQll5RndrWllOUDNXRkRhUm1oVjA4WmRORXBnREpRa0tnR1hScjM0?=
 =?utf-8?B?Tk52RXVNdUYyVUhuYjN4UEZyTnBuVkhJMis1QitDVFFFZm1RS3hQUi9RZVF1?=
 =?utf-8?B?a3I5MHEvdlE5ZHRHcktZbGMwOE82V2lDd0Zlb2pIQ05vcmw2TThPendYQVhh?=
 =?utf-8?B?WWQ0VVlaOURaQytqNHZLMmhYZlZxaTFjVmpuV21uRmRyZ1FoekZEcFE5MjAv?=
 =?utf-8?B?U3hQUDBsOG5RckI0cU8wYTNCcThjTEtxUDNEUGc2NmFEQURSQXIrZDd2ZDhC?=
 =?utf-8?B?ZEJSY2F4MUpjcEs0aVhWUjBBblBvN083akZEeW8yU0VYd2x0QWRMRjdjZUg5?=
 =?utf-8?B?UlZQMU03VVRncHAwS3ROV2I2MnQwSUZVSVV3a0RJc1llb1RyY0tYVnNPWXA5?=
 =?utf-8?B?R2QrZ2JOUVNVZnhJV3RBV1phcytxRnZMd3VYemYvWlR0Q2Z4d1M1V2pZZS9a?=
 =?utf-8?B?QzJpOGxaaGVKZHhUemloeEZQY2QrQk9ZNDdGQzJJYjVtUyt0dnVlUU0xQVRG?=
 =?utf-8?B?cjlLM1FHd09RRHdxNU9YM284bXgwcUo4SUhGRkkwcHZWY3pDeVozY0VIY29I?=
 =?utf-8?B?OEZHeERmbk5sMitMK2FwV0tCY1h5bDhHY1ZmZ25DbzVoYWdGYmd4S29TTnF2?=
 =?utf-8?B?TVppS1hNSE1JQlh3alNKZlkzVU1oRzJDbTJyNFVrYTVpN1hFZ29makJuV3ZQ?=
 =?utf-8?B?SllWdWZPc0c4NHh5cnZmNVl1eWpuR2wxWWpGMm1pMjA2QnVBaldrazYwclo1?=
 =?utf-8?B?a0dEQXN5RjBzeTU4eXJyeTRnZ0JldG9nbzJ6L3V5R2pvZWd3ZjRKeHl1ZDJY?=
 =?utf-8?B?VGRHYWlvSDZOZENvY2phSDFFSlM5SnBNRy9SWkZrVDI1SE9ya2dTaGJtUEdD?=
 =?utf-8?B?V1BhOCsvblJrQkJvSE1sbXcwcUNhb1NZNDhhQ2JlL3hIbGZkNmtPeWFqeFVS?=
 =?utf-8?B?ZFNGRDhUbFVqdDFrU2ZkdHhxWWpaMS9KMmpyM0dIZlYwaEYrWjI3Y2FxSno1?=
 =?utf-8?B?dVhEeGpVNjN2dVYrK1Z6cGhOek56WlZIelFuZzdmSHhQWEh0VFJGdk9IWktC?=
 =?utf-8?B?Q3RDQmpZMzUvbHNtVFdiTytaQUgxU2QzNlhmdkd1YkdieDJkM0MwWnN6cU1T?=
 =?utf-8?B?VU56ajBQSG83TXVONm1MVXRQdWV1K3gxVG9vaEFkbWh1dHdnZUpEM0pycHNZ?=
 =?utf-8?B?elR5cTBsRksrcGdZdEEwRnFhcVBqRHF5Y0pkby9OSEpvWFhWclBGblZYa29L?=
 =?utf-8?B?b1BUK0VTSi9HMkJlb3Z0WmJBcGFIN0lHa2FOQlhzeEl2WFRSdS9sKzBTTUJL?=
 =?utf-8?B?eGxZdG45UmJFeGpOU1NmRFFmK0d0VWZhMUl2WVR0WklvTG1SOVgvK3cxZklQ?=
 =?utf-8?B?cjJNNlhqbDFTR2taVU1OWXhRYU5yWStpSFBURHQ0TWhFWm9DSVFpaXNmbGFZ?=
 =?utf-8?B?UURrTStadHVYU0ZZRTNpWEZKeU15Znl0NnNLUTUySXFUUG1BYWxXUUllWkZ3?=
 =?utf-8?B?R1ZYZzRjM21WMXhqRlN0RVhDWFRZSXBEWmJzblhYSGtzdGVSczZVNzEzVE0w?=
 =?utf-8?B?ZEZmNzRzalNITVlRYnRKcklEVDU5WkxscVk2N3lxVVFFUHdMWDBIWnZrUUFz?=
 =?utf-8?B?eTNrR1RLZEN5SWdrd0RBNUtlL05SWXFOa29SR3N6TmJBSkhvL2VIb1ZMMFJs?=
 =?utf-8?B?ZDFQNnFtVXNMWC90OVZLZ0hvV0xNcVl0bUg1WGh3U3MzQjBYMzdQM2JtaVhH?=
 =?utf-8?B?c05Hc3BSVzJWWXdQeTZFQXNzTE5KckpRMTVhV20rdVdnTllLN3N5Zi8vVVkv?=
 =?utf-8?B?aDFyZnBoUE9weVZ3MUIrV0cxTXg3WXBMdWNYWk0rbFdXSGJxb2xhZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e8080698-eb51-42f7-2c47-08de8a5758c0
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 10:14:49.0851
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: +vLR2UJ8T3MKiAtehtpzBvkwH6PKrzOYibZFIYbdCaEGhOL8LpFfFkKnGSJntXLwGXm3BJv13OeugOuvg0qFyQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6909
X-purgate-ID: tlsNG-bad1c0/1774433694-638A5A73-EABFE20E/0/0
X-purgate-type: clean
X-purgate-size: 3588

Assigning pages to a domain make them the possible target of hypercalls
like XENMEM_decrease_reservation ahead of such pages being scrubbed in
populate_physmap() when the guest is running in PV mode.  This might allow
pages to be freed ahead of being scrubbed for example, as a stubdomain
already running could target them by guessing their MFNs.  It's also
possible other action could set the page type ahead of scrubbing, which
would be problematic.

Prevent the pages pending scrub from being assigned to the domain, and only
do the assign once the scrubbing has finished.  This has the disadvantage
that the allocated pages will be removed from the free pool, but not yet
accounted towards the domain consumed page quota.  However there can only
be one stashed page in that state, and it's maximum size is bounded by the
memop-max-order option.  This is not too different from the current logic,
where assigning pages to a domain (and thus checking whether such domain
doesn't overflow it's quota) is also done after the memory has been
allocated and removed from the pool of free pages.

Fixes: 83a784a15b47 ("xen/mm: allow deferred scrub of physmap populate allocated pages")
Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
I've attempted various different ways to solve this, but they all ended up
being impossible.

 * Prevent non-scrubbed pages from getting extra refcounts (iow: make
   get_page() fail for them).  This seemed nice, but the cleanup using
   put_page_alloc_ref() was impossible as non-scrubbed pages would return
   failure in get_page(), and so I couldn't take the extra reference ahead
   of calling put_page_alloc_ref().
 * Disallow XENMEM_decrease_reservation until the domain has finished
   creation would fix the issue of pages being freed while pending scrub,
   but it's not clear there might be other usages that would be problematic,
   as get_page() on non-scrubbed pages would still return success.
---
 xen/common/memory.c     | 6 ++++++
 xen/common/page_alloc.c | 8 +++++++-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/xen/common/memory.c b/xen/common/memory.c
index f0ff1311881c..1ad4b51c5b02 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -388,6 +388,12 @@ static void populate_physmap(struct memop_args *a)
                             goto out;
                         }
                     }
+
+                    if ( assign_page(page, a->extent_order, d, memflags) )
+                    {
+                        free_domheap_pages(page, a->extent_order);
+                        goto out;
+                    }
                 }
 
                 if ( unlikely(a->memflags & MEMF_no_tlbflush) )
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 1316dfbd15ee..b72a74c705ba 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -2699,7 +2699,13 @@ struct page_info *alloc_domheap_pages(
                                   memflags, d)) == NULL)) )
          return NULL;
 
-    if ( d && !(memflags & MEMF_no_owner) )
+    /*
+     * Don't add pages with the PGC_need_scrub bit set to the domain, the
+     * caller must clean the bit and then manually call assign_pages().
+     * Otherwise pages with the PGC_need_scrub would be reachable using
+     * get_page().
+     */
+    if ( d && !(memflags & MEMF_no_owner) && !(memflags & MEMF_keep_scrub) )
     {
         if ( memflags & MEMF_no_refcount )
         {
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 10:15:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 10:15:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261859.1554610 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5LGF-0007CA-Mp; Wed, 25 Mar 2026 10:14:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261859.1554610; Wed, 25 Mar 2026 10:14: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 1w5LGF-0007C3-J5; Wed, 25 Mar 2026 10:14:51 +0000
Received: by outflank-mailman (input) for mailman id 1261859;
 Wed, 25 Mar 2026 10:14:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w5LGE-00077S-5z
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 10:14:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5LGD-009Md1-Hw
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 11:14:49 +0100
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c3b598-5cb7-0a2a0a5109dd-0a2a4506b42c-6
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:14:49 +0100
Received: from [52.101.56.18]
 (helo=BN1PR04CU002.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c3b596-3034-0a2a45060019-3465381247db-4
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:14:48 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DM4PR03MB6909.namprd03.prod.outlook.com (2603:10b6:8:44::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Wed, 25 Mar
 2026 10:14:45 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026
 10:14:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QaFV3PKRxOkTSwq6Cg7GvCGBAyFbn5ChnZGyhH1VFqoODWZWa8gtS+Y/1OWbRFgAKUAhqhHUVp1afYC63IzPUPI3r7m9Bcc4xACFbecvtsvUyHrZHKt4l64xjOMXLM9jZ1JOklKuesnfAT+5EWh3b3ijdPpmqWbKIbY9FIi/8G+NEvHGJYQG1JrequqzTrDQZGXPp6dy9RkMH2zlCT90yvIlglT7fkBX9M0H4VCoGqvoQ+lfOTQMnM2wiF9ARkiCqr3+bret5oWZd2mDOyzFbNchWUl1+vDyAiRelqTo8zLN18QaJXMHlt8PPO27XIhwN/GCaxUpN2rxW4qrGfsPaw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mjvhhxyU4hEONnorl8Vk2zeEBhj4jDACdC0hApD8M4M=;
 b=j5776z7D6fJiao2nv9KUdB8xelQvLxmtVYzAyJwjKlu7pjJhUjtge0piuq9uwENo7G3U+vMtbjnCzizkMhf9BHnfWA6Xm341f+CmjftF2uLYNAynAQIjAqt67j8XVwYO49lAUiSoUT89YonXOGwiQbvbz1j+gh2YAHZ3yWNWvoExogZcE2rtx7KQOynd2ghY5eOwovzKsynEj/50htD4WTwefl/VVg2QmN9KAFH7lO3/i45CIPGcUbCQoSZJXklnB0ufMQNfk/x5P9DRzwoDQe4QF4h/sKFoh2nAgceCbeaWKu9B1AD4x36Zvxs1cbPzJiRq/1SZ7P2a49RCaQ55Og==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mjvhhxyU4hEONnorl8Vk2zeEBhj4jDACdC0hApD8M4M=;
 b=cPaFDUHG9MjT6VJBEud7orRA6Uh7DSks66KPlfkEL4G4W572LrkAE45DKW+LkiaZeJsUJsFNCvzYPkVfwyWxot9jIh8vTu5XlnYqrA0ll2Zk4DnJiSMs4S3/9Rkwv3KTHZX1x6shVcrf2fJMBpoEalKfpaXmtfAZAbvfGU76Eo8=
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>,
	Ayden Bottos <aydenbottos12@gmail.com>
Subject: [PATCH 1/2] xen/mm: don't unconditionally clear PGC_need_scrub in alloc_heap_pages()
Date: Wed, 25 Mar 2026 11:08:02 +0100
Message-ID: <20260325100803.6640-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260325100803.6640-1-roger.pau@citrix.com>
References: <20260325100803.6640-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA4P292CA0009.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2d::6) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DM4PR03MB6909:EE_
X-MS-Office365-Filtering-Correlation-Id: be4cced3-0406-43f1-7d25-08de8a5756b7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	iVGHhCd87QH5RkXlmNOr1hu925CKbMbUpil1Gu+Zd+lNDBRCs9eWbbyxpq2NbnWlqf6J/YTJ2qPvjCulGi9O41iyl7h35ao+iE0pAat10EYB1bavhakjxmC3VGmch0cyVaONjBgVIZ4HuQgJsK9ZvzDtX9WWRVooOah0WiSphYBjDgLObZst1m4d0qFMcI3iOYEf2kwz+1Cvn5J3xDr6iS3L4Cr+Jx/4SZhkNKFwGomaKe+E1QeatzVOuVHLwTqsvoM2FBPfjwZs/dXI5L9jFAio2F8275M7edM9eGS9FvaNtOvKFBrOzfSk7Dlt+pe1FpSvNxeADWiw9UB8mzGxldFNwcjLtBm024dR6ESRbJK7i0knbps4BzUGoRWQskvO4VYLdOFwYUxWYxkX0MBiINEoBA8wYsnODiinYxErc/ja4GUsHcBeJY19QxhdnFQ0zZj0T76aohRshTfp14E02a+h62bzuL/E4sfe72EbTW+wWUmxL/K6vvNuLAWv3mzMW3LY8TCCnIO94PtmIswQLICIaYsNmC/SJ81je3CC97O1sVtBTOql1+6JJBwbdEJq3f3yeoaeP+Ye39mrIo5rnnbP3KNS1wQEdOhsYZ8Eu1n8WnFyEse4/z6Ld4BCm9SFfd7M3uF1MQOp6LHwVIjUfxWQwrKXGYdpFC3jGGHkFwocWhSSf4ssuOx2B4HFsSu0jfUF3r/oX/3mSRxaIUihffYnf87PRGrCwxi8ToH9sfQ=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Tm8zcmxxdE5sVS93M2pkSXBDRzZsWER2TW0vRmJvS3RJK0JlUE9XSmExQlcx?=
 =?utf-8?B?cm1QSEFHSDNYYUpKVzA1alBrRnEzbVpDZUEwM1AraUFvVHFPTWhsOGQydGU0?=
 =?utf-8?B?YXhsMDg5aWNucnBpMWc3UWtoL3RORmd5ZlQ1UExqbnpVM2UxRGl2UFVtZXVs?=
 =?utf-8?B?cUtoWnh6VUlXc0FzaXpJTE0vSEFLS0s4b0JLSmhySm1FaXA2dG1CaXpFWFRG?=
 =?utf-8?B?c0xKekRrOGhkUWNSRmNxT0dmZEJzR0NRYTFwT2FzOFVtUEJEVEVCQVQ1a3Fo?=
 =?utf-8?B?K2JUTXQ0dE5wai9YTXAzY3NReFkreUpXelpBdlExMDhRVERkR3hSZjhpbCtO?=
 =?utf-8?B?dkpOVE8wY3ZxcUxoMUtlZFJ1TmpHZEV6OG5NY1J5em15Qit3OXlZZm5pQzd5?=
 =?utf-8?B?eGs0c1gwa0xiaFBkU2N2dkF6ZGdVcG53NTZsOXlDSWJ5c0p2SDFlOVl4Z01x?=
 =?utf-8?B?bWthc3VOdU9vdWtTNENZS1FFaWRseUxFMUxFUHdMQVRJVWtXVmRYM3JXN09n?=
 =?utf-8?B?OG1UVVRmUkJZVGE0c3QzWTdGcmVhcEFRL3JFSWZVMFR4RS92bjBzVzMwcWha?=
 =?utf-8?B?TjZnbE5jWlRPV09pa0h4WjhDVUZSdm5EMFdNYWx0UUFBL1lPNDI1Rmx4YnZl?=
 =?utf-8?B?LzdJVzZxcDk4Sm41b3VvbDNhUWRNbzk4SkhiRllNdXdTekxuYXphTVBpS1U3?=
 =?utf-8?B?cFVVblFNQzVERjd0QVE2VHpwRGF4RUVIQWJRSHhKS25raWx4QkhpZ0h1am5M?=
 =?utf-8?B?OS9FWlBwRDM1ZUtwTzYxZ3BVcDFoejEreG12MTlBdHQ5ZUExYmd3dUcxRllm?=
 =?utf-8?B?bG1oMlFMejM1NWxDLzEzTFBxT2JxSzlIOHBxcGc1K2FmQVNwT1Q0K1dwenI0?=
 =?utf-8?B?bFJGSFBLRkdXdVRIUWdoRkZRS2VrcEt5VjcwYjUwWDNERzViMzdRMDRzZy9Y?=
 =?utf-8?B?a2ppMVdqcklDbmIvQkEvclhwajNVOXRjMnl5Y1NYNjBEQi9IOXJBWWN6eFZZ?=
 =?utf-8?B?VlNCVWhTdEJPR3k0OWJLQWFrZzFqUnc5ZVppc3JQekNyWXhBdnJibnhDUGdL?=
 =?utf-8?B?MS8zUkkvZXA5cUptbDlPM3kxNlIzdk5sRE05bnkyU0Q0aU5NLzV4c2JCSEFl?=
 =?utf-8?B?WEZrWnVCRWl3bCtzemJBRnVaYW5YamxMNWtyVXBQQmJ4WmJFNkRJdzhVRzVS?=
 =?utf-8?B?SnNpV0Q3eUgzdTJjdmV1M1l1OGhtTk1NY282TVFhSWxaV001ZklUN3dueUZ6?=
 =?utf-8?B?bG5OUjFDbFRQcnk5MnNrVkVpWDQxaUlaMWFSRHhUZjRFSXZLWit4djh3SVNF?=
 =?utf-8?B?c3FkSXNNNUFlaDlXa2w3L1pzbk11MnlsSlFDRW1iRlhQTzR5bVhxMXBIVGxN?=
 =?utf-8?B?anUydGljWW1sK2dhelJ5dkd3Nkp0VzBtaDhINEpsR2N1ZWVkMlNsQktITkVH?=
 =?utf-8?B?b0Ric2FDMG1mQzRHWDBhZzdlUjUxcmFScGJiNlhQYUJrRmExQ0tVdHRERUpI?=
 =?utf-8?B?L1RqanpTcWQ1QzRzY2orQ1FjelhYWXVhd1lDcmxZWEluWFRxWnpHTWM5ODM0?=
 =?utf-8?B?STdMWUtEUks1cVlSTzNVUVB1VUFETE0wZUVVMmFvRkJndU8xTzk0TmZsY09a?=
 =?utf-8?B?WDNWdGQ1cmlKaytleXA2Zk9MYkdoZUp5aVRPajMreHFSazdPUGlaakFzbjFC?=
 =?utf-8?B?T2JPb2xiRHp4UHRYOVlTbXREb3k1ME96bnBGVWcrbzJ2YTd2OUd3RnY5QmRs?=
 =?utf-8?B?YXFYTVdTZHhBWVU1WHp5dTJPZVRZd0lmS0NGUE9rcmJHZnlXZ2JuUytuRHZS?=
 =?utf-8?B?bnZzT2hJY1lYaWJyeHpyb0NVUXNuNzYvS0N5bHdHbENWUWhtVE1qV0tIb2NQ?=
 =?utf-8?B?bkc1WldhWFVXanhWS3BiWFlhVEQ4bGx5Si9DZ3hHY0JPU2FEaHJjNk0vRVFo?=
 =?utf-8?B?YktzejBkT25ucWU2dWcwSXNwQk00VDh1ZUxpQ3F5ZjVhUjNlaDFvN1VZaXc3?=
 =?utf-8?B?NEVQVlk4OFVFczlodkM4dW5Ib2o2YWxxSEhGMjdmb3h2Q3hvMUl3eHdrZmt5?=
 =?utf-8?B?UWlFRTJCRE1SSTBuOEZCZ0VnOWZ1OEMxeVpsZGpWNEplTUluSEoyZU5sRHdE?=
 =?utf-8?B?Yjk5Z0wxTlNrL0lGaGtEM05NRDM2ekNnYkg3Z2ZwMkkxYzJyU0ZpZGZpWnlJ?=
 =?utf-8?B?S2JZTkJ6cXJXVGVGcVVaTm5YYnlrUjM5eVBaWTdEb21iZDBMcmRtL1RXNnFS?=
 =?utf-8?B?MmJpb2c2WmcraEhvcnpIQTV0ZFlZRkplRjNUM1FRdWFPRDl1dTVZME5HZ3pa?=
 =?utf-8?B?WjRSYUc0aWxkSUtvSHI0UUc1aVVWMHdTbFFwNmdtYmxwWVNRQWdFUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: be4cced3-0406-43f1-7d25-08de8a5756b7
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 10:14:45.6516
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: JphPsZor5u3LHerGmxn0AQU9oFnJRLHk3btoM5w+Oo0DOj1LQCCwDGipQcl9RmDi/9B7Uopc942TZ8nnFZcwmg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6909
X-purgate-ID: tlsNG-16d1c6/1774433688-83B9E1C2-A195B7EA/0/0
X-purgate-type: clean
X-purgate-size: 4934

alloc_heap_pages() will unconditionally clear PGC_need_scrub, even when
MEMF_no_scrub is requested.  This is kind of expected as otherwise some
callers will assert on seeing non-expected flags set on the count_info
field.

Introduce a new MEMF bit to signal to alloc_heap_pages() that non-scrubbed
pages should keep the PGC_need_scrub bit set. This fixes returning dirty
pages from alloc_domheap_pages() without the PGC_need_scrub bit set for
populate_physmap() to consume.

With the above change alloc_domheap_pages() needs an adjustment to cope
with allocated pages possibly having the PGC_need_scrub set.

Fixes: 83a784a15b47 ("xen/mm: allow deferred scrub of physmap populate allocated pages")
Reported-by: Ayden Bottos <aydenbottos12@gmail.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
This issue was initially reported to the Xen Security Team, and it did turn
out to not require an XSA only because the code hasn't been part of any
release, otherwise an XSA would have been issued.

The Security Team would like to thanks Ayden for the prompt report.

In the scrubbing loop in alloc_heap_pages() i should better be unsigned
long.
---
 xen/common/memory.c     |  3 ++-
 xen/common/page_alloc.c | 31 ++++++++++++++++++++++---------
 xen/include/xen/mm.h    |  2 ++
 3 files changed, 26 insertions(+), 10 deletions(-)

diff --git a/xen/common/memory.c b/xen/common/memory.c
index 918510f287a0..f0ff1311881c 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -345,7 +345,8 @@ static void populate_physmap(struct memop_args *a)
                 unsigned int scrub_start = 0;
                 unsigned int memflags =
                     a->memflags | (d->creation_finished ? 0
-                                                        : MEMF_no_scrub);
+                                                        : (MEMF_no_scrub |
+                                                           MEMF_keep_scrub));
                 nodeid_t node =
                     (a->memflags & MEMF_exact_node) ? MEMF_get_node(a->memflags)
                                                     : NUMA_NO_NODE;
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 588b5b99cbc7..1316dfbd15ee 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -989,6 +989,8 @@ static struct page_info *alloc_heap_pages(
     ASSERT(zone_lo <= zone_hi);
     ASSERT(zone_hi < NR_ZONES);
 
+    ASSERT(!(memflags & MEMF_keep_scrub) || (memflags & MEMF_no_scrub));
+
     if ( unlikely(order > MAX_ORDER) )
         return NULL;
 
@@ -1110,17 +1112,26 @@ static struct page_info *alloc_heap_pages(
     {
         bool cold = d && d != current->domain;
 
-        for ( i = 0; i < (1U << order); i++ )
+        if ( !(memflags & MEMF_no_scrub) )
         {
-            if ( test_and_clear_bit(_PGC_need_scrub, &pg[i].count_info) )
+            for ( i = 0; i < (1U << order); i++ )
             {
-                if ( !(memflags & MEMF_no_scrub) )
+                if ( test_and_clear_bit(_PGC_need_scrub, &pg[i].count_info) )
+                {
                     scrub_one_page(&pg[i], cold);
-
-                dirty_cnt++;
+                    dirty_cnt++;
+                }
+                else
+                    check_one_page(&pg[i]);
             }
-            else if ( !(memflags & MEMF_no_scrub) )
-                check_one_page(&pg[i]);
+        }
+        else
+        {
+            for ( i = 0; i < (1U << order); i++ )
+                if ( (memflags & MEMF_keep_scrub)
+                     ? test_bit(_PGC_need_scrub, &pg[i].count_info)
+                     : test_and_clear_bit(_PGC_need_scrub, &pg[i].count_info) )
+                    dirty_cnt++;
         }
 
         if ( dirty_cnt )
@@ -2696,8 +2707,10 @@ struct page_info *alloc_domheap_pages(
 
             for ( i = 0; i < (1UL << order); i++ )
             {
-                ASSERT(!pg[i].count_info);
-                pg[i].count_info = PGC_extra;
+                ASSERT(!(pg[i].count_info &
+                         ~((memflags & MEMF_keep_scrub) ? PGC_need_scrub
+                                                        : 0UL)));
+                pg[i].count_info |= PGC_extra;
             }
         }
         if ( assign_page(pg, order, d, memflags) )
diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index d80bfba6d393..0639fc0d21fb 100644
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -208,6 +208,8 @@ struct npfec {
 #define  MEMF_no_refcount (1U<<_MEMF_no_refcount)
 #define _MEMF_populate_on_demand 1
 #define  MEMF_populate_on_demand (1U<<_MEMF_populate_on_demand)
+#define _MEMF_keep_scrub  2
+#define  MEMF_keep_scrub  (1U<<_MEMF_keep_scrub)
 #define _MEMF_no_dma      3
 #define  MEMF_no_dma      (1U<<_MEMF_no_dma)
 #define _MEMF_exact_node  4
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 10:16:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 10:16:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261887.1554628 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5LHs-0008VS-Au; Wed, 25 Mar 2026 10:16:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261887.1554628; Wed, 25 Mar 2026 10:16:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5LHs-0008VL-80; Wed, 25 Mar 2026 10:16:32 +0000
Received: by outflank-mailman (input) for mailman id 1261887;
 Wed, 25 Mar 2026 10:16:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <bounce-md_30504962.69c3b5fc.v1-1ba30b6b94e04affa6ddb4cb77f9ed1d@bounce.vates.tech>)
 id 1w5LHq-0008V6-NT
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 10:16:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5LHq-004Hkx-3P
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 11:16:30 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <bounce-md_30504962.69c3b5fc.v1-1ba30b6b94e04affa6ddb4cb77f9ed1d@bounce.vates.tech>)
 id 69c3b5fd-2eae-0a2a0a5409dd-0a2a4507c86a-6
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:16:30 +0100
Received: from [198.2.132.30] (helo=mail132-30.atl131.mandrillapp.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from
 <bounce-md_30504962.69c3b5fc.v1-1ba30b6b94e04affa6ddb4cb77f9ed1d@bounce.vates.tech>)
 id 69c3b5fc-fd74-0a2a45070019-c602841e8ae4-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:16:29 +0100
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-30.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fgjVh24MBzP0Jw5k
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 10:16:28 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 1ba30b6b94e04affa6ddb4cb77f9ed1d; Wed, 25 Mar 2026 10: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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mte1 header.d=mandrillapp.com header.i="@mandrillapp.com" header.h="From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"; dkim=pass header.s=mte1 header.d=vates.tech header.i="teddy.astie@vates.tech" header.h="From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774433788; x=1774703788;
	bh=T7EpgRybNoifMSgAfOLkhykpvzIx7aiilD5wr3qTGqI=;
	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=Vpwp9jH0DQYWxQxudR41U1zHs0E0aqBJIJA1G2fsrQuPrc0cxh4vLpA4z4toZ+LyA
	 woMmkvB4HY/bwTyz/WezbixP9uJSeJ7ieKq6VlqQTgxgvRDABy4UWp9ke1eYzZWEYU
	 Lmln1IT4ZIPSykhliQ34CC3IMF8iE9l26bNNfN5Rnuud0exkMwygu/BtvYqXkKtNzk
	 dBh9pigm55wDLVUmlSx7LK7U9qL7nB9u5Tz8VwcLgLA9VvPvIb+2UhcBEZcWKpnKnC
	 Nme/o4qIu6268BpQV30PdIOqr4QpljJmDcJ0GELbxDkSoly3p+wKtqjsBjVNYxxJ1P
	 E3DYOaaITGreQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774433788; x=1774694288; i=teddy.astie@vates.tech;
	bh=T7EpgRybNoifMSgAfOLkhykpvzIx7aiilD5wr3qTGqI=;
	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=UiZAw4qt0mNH6EWY8pl0deAMZjXuOmSH5c59gA6pKN5Rqp6ltIFUC/8fZ7twbxbf7
	 zZ2j1OFdx1MoOtc5RZl6MnbkpI7ryohDWg7QlgPHNDirccBGL/3KGXz6lZ6/p1JcvG
	 1VLhbaE2y8ujNm3dbbDKs3erjNekKSUfGr/Fjmkj9fS5qkhCh3dHW66dIhn2quC7sJ
	 IaP/M/rPwUnmp5kDTcMUoMH2wEVAv1IkpCmcupQTqZr/vG+lo8n2TjlBauWYWUgjMK
	 0xodiUqhKtOzvQm5aJD05DVQLd1CBiAIpMQWPL40TZ2jf6nYUV2s7mAno/Ypm2RLFe
	 e+9K6RQxOIRrg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=202/6]=20x86/vpmu:=20Expose=20PEBS=20and=20DS=20area=20in=20PV=20mode?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774433787291
Message-Id: <d382d9e9-8a3d-4e1f-a437-f15620887078@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.1773160025.git.teddy.astie@vates.tech> <0762ceb722be83bbdf6703cf419debf30609feb0.1773160025.git.teddy.astie@vates.tech> <7e4be441-c0ae-498f-9fdf-e5ea8bf11e48@suse.com>
In-Reply-To: <7e4be441-c0ae-498f-9fdf-e5ea8bf11e48@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.1ba30b6b94e04affa6ddb4cb77f9ed1d?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260325:md
Date: Wed, 25 Mar 2026 10:16:28 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-ef75cf/1774433790-5D386303-ED4D20C7/0/0
X-purgate-type: clean
X-purgate-size: 1496

Le 24/03/2026 =C3=A0 10:14, Jan Beulich a =C3=A9crit=C2=A0:
> On 10.03.2026 17:44, Teddy Astie wrote:
>> I don't see any reason for them for not be available, especially
>> since core2_vpmu_do_wrmsr has PV specific logic for MSR_IA32_DS_AREA.
> 
> This is really dangerous: You allow PV domains to control whether the are=
a
> is actually mapped. It lacking a mapping can, iirc, on at least some CPUs
> result in a complete hang. I do, in fact, have been carrying a patch to
> completely disallow DS area use for PV, eliminating the misleading code
> you refer to.
> 

While PV case is particularly quirky (especially with L1TF), the issues 
still exists for HVM.
I suppose things may be a bit better with "EPT-Friendly PEBS" though.

Regardless, we already say that the feature is potentially unsafe to 
use, and it still needs to be opted-in, so this patch just allows the 
guest to use something we advertise (with its eventual quirks).

> Also note that VPMU_CPU_HAS_DS cannot be set for PV vCPU-s anyway.
> 

Why is that ?

`vpmu_set(vpmu, VPMU_CPU_HAS_DS);` made in core2_vpmu_initialise is 
called in either PV and HVM cases.

>> Fixes: 27c554198666 ("x86/VPMU: add support for PMU register handling on=
 PV guests")
> 
> Not just because of the above, I'm pretty sure a Fixes: tag is inappropri=
ate
> here.
> 
> Jan
> 

Teddy


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Wed Mar 25 10:37:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 10:37:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261916.1554636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Lc9-0003U9-UT; Wed, 25 Mar 2026 10:37:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261916.1554636; Wed, 25 Mar 2026 10: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 1w5Lc9-0003U2-Re; Wed, 25 Mar 2026 10:37:29 +0000
Received: by outflank-mailman (input) for mailman id 1261916;
 Wed, 25 Mar 2026 10:37:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1w5Lc7-0003Tw-Jt
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 10:37:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Lc6-00CDEz-Vt
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 11:37:27 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c3bae0-2eae-0a2a0a5409dd-0a2a4505b816-26
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:37:26 +0100
Received: from [52.101.201.35]
 (helo=PH7PR06CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c3bae4-5aeb-0a2a45050019-3465c923774a-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:37:26 +0100
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by CH0PR03MB6052.namprd03.prod.outlook.com (2603:10b6:610:bf::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Wed, 25 Mar
 2026 10:37:16 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026
 10:37:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AnjR8Br1oNeRYamYqaeptcsjcM+ORLBgonCk6EJb35zt/pzO0qnuebcHpoEc9grb096YBbXdUg15DK/PBneB5mVP3HBtVcE+r3kQbXrKwqDJjLgF4WMzmlUgoP9+y0vW8t3DHHzdtbA6v0vllTeV2+Zhq6sTPb8yrZMMbNMftt6Ppg4rsRwg3qhwIXd1ZKsxunAdqhu8rXb2PpYq9pevGiNIpeLHnKWGh3TED5QjwfItcDooR3qih9DfaNygFN0E4QPtwo2/nqg5+1mK+OshJSnfWFD3LKs7HB7AgohxDwbHh/1+I/RTA+73kT/SR88E7xjj8NavSY+vL6PWTXrpQQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OB0QI9da2qSM09sqEfgTvllWC+wma82Oqe1TiKZfULY=;
 b=Wqb+u4WcBepn9nvj5VPkmFXjf1fos1nVD9/9+gEbDysmFRDkA6DoEty8fasB/1z86ULY0pux9nz/mG/T2WYuJjpTA5VGEPoiUOR2UAYGQJduRn92tskq0YfpCIfFuEcGkQamvxtTlZP9scCK6JpZpPRQCjd0gpiwDKwHPYXp7OQRR1TAYlPQrgsdHLKk1lYQVGYHAflQPfdCpfbCzQ2wNCEDjFc2Qbgt1QGcHPVbjk0eAxHGL98WfmK/60TbDOoebwyYnfbDSwU8ZDzze+NIKXyFx84zcbnHjFPttVYGXLCKLtAJ8Whtl9Fm1h1ls4yBfGlzISO69bcI6barZUsG8A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=OB0QI9da2qSM09sqEfgTvllWC+wma82Oqe1TiKZfULY=;
 b=0SlebMSkcrmkdbdlewny8pmp2dXWkkjqibrs1QnAFnZzmdeN4qbqVjh+D2QhcYrMqVLm9o1sk/nB+DFCm2k5v6+ZA0q0D2DSmRv93A7a/cZMMh7FalIbDc+fw9OKYnHA4amEbQHNY7yrTcbAGo1QLpp9Iz1PhhXe6ZonXVPpcJE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <68469e6b-33c8-4020-bd8b-75afe8f6570a@citrix.com>
Date: Wed, 25 Mar 2026 10:36:03 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/9] x86/domain: Ensure a vCPU's FPU is reset early
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
 <20260324181937.2465574-2-ross.lagerwall@citrix.com>
 <0471e754-9ea7-4fb5-b573-b770713b2f53@citrix.com>
Content-Language: en-US
From: Ross Lagerwall <ross.lagerwall@citrix.com>
In-Reply-To: <0471e754-9ea7-4fb5-b573-b770713b2f53@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0691.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:37b::19) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|CH0PR03MB6052:EE_
X-MS-Office365-Filtering-Correlation-Id: ef861b0a-101c-40c3-35dc-08de8a5a7bec
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	+JVw/hvRfIyg2FOQe705MG8ENeQRNJw1qREjF2nGO5iK0M8akTsM81RYV2cQRJjz9JsoRGxk4GnTFpFBv6OLAhmmvoOqFzQ9m/KZ+eQzG+xrorrHKPfDXW/3xdCkOcAmzgWGduDe0Jr4fanzFwmugP9d/E3rBU+OqfhFcyCdwKsjCX47Gb5s205dhka1k5v2vR9H4PQwnEZbhTcEN7eaW27mAzHuFQV3mI/4hN0y02adstUcdD+wS1e2gdOm9MnD6QFJRqkLXMdKTGouT+S/4oBbk3880uiL5awBS7Fv+4zYd6CBdxLzFDaJ3Z1Abkekrq8XzZFGmeoithFxitZafxTouADFIibRCi7JV1G8uWH1V02HjRTBLKbWeFoiXq2pjHPVNFZ8MMXCz+iqqy3g5rn5JM+JlctrASjOhvZqFPWj3JkH9CwZ4/gVEUATHQwRfVdkFnMouMGzT6pUrVqJ4LgxZDgHCAfgin9f4bfsle1Teuws4BRkF7MLcALij0aXhFEXfkbcQ+poEQWQJBcxdvkSuCakHmGSvv7iojYEx4m0Mv1Jc1QqUartY8Hm+2BzGWYU6BdWAGMMuePgyNHDdIZSGSaqD/VgdygdEUXfstaTOlZv9itNdkI6jaqvBDg/j1tqejg2u1Do90lSn/LqTqRW4wxTGBNnLsOcVs/ovyJE+/ltLGSVedhQ9KkmzIab
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dEhadmo1bDRKdDV6WnZmLzVVZ0gvZjRBY054dEpTTlRzNEtJUkRUWU9mWElG?=
 =?utf-8?B?ODh6UlgxK2tpcDFJQlVEelJqS2NJcEZHRVVrM3Z6bVBXN3p0UWMrazNkYWJM?=
 =?utf-8?B?bjJwbGhENElHSzZ6NGN5TERTQ09ncWZFUUp5WThmeHA5c1J2RDVDMll6cWdD?=
 =?utf-8?B?RHhvdWRwdFdLMGMwWU9UeWJLMnhLYXI2OHFWT3YvaGIxZGJ1VHhuT0ZZQnBv?=
 =?utf-8?B?MmViSkxrcXFhWWxBTDFUN0JOZUJMeGMreDhVVXYzSmxYNUNVdHJvV0ZRWk1v?=
 =?utf-8?B?NXpmUGIrQnFDVTUvbUozTlN0eDVRZHdOMWR4WUl1OC9YUU56MkpUOWpTbHk4?=
 =?utf-8?B?cVhKK0VQQnNjbTVTWmo3VE1vejZmTHQxQ1M2a0phd0Yzbkp0WUFLRU4ybW1X?=
 =?utf-8?B?VWU4bUhhdFFsUXFFazJvMTJlRm9lUFl5V2N6VzR6dzQrbEU1Q3Z0dld5MHlY?=
 =?utf-8?B?UHIzcFhudWM3YTY4QnQyOXZOREhtT3ZtWE0zYlJYeENySXBHV3VpV3VOanF1?=
 =?utf-8?B?eWdpZU9aUkQvWEpFLzVkemErNUhWemJJNGJQZUlSYlpkcU5jMlZzQm8yYmFk?=
 =?utf-8?B?UEF5a0RuS0FmaWlxQXdBb1E4bnNlb3FLaUdUTW5iNTdkUXIybC95c0tHRjlY?=
 =?utf-8?B?Q2R5Y3l5eXVTd0p6Yzd2MFJlQkJUTDdSQzd0b1YwSVN0a2Fnbit3WDhiaUQx?=
 =?utf-8?B?YnJyQXpJUTlYNnJqc0YrYWc3ZUZyVXNLNnNlU25ydll2dmYvTC85WGk0UFNF?=
 =?utf-8?B?NkNzOHZ0YUdmelZaMHFBN2xrRHRBRkpqWDZnam15c2RIR3NxRHlGT2k5MGE2?=
 =?utf-8?B?cXJVajUyTEVRNnlEcWJ2TkloRkgzbDQ0eUU5T0FrTlZqZ1REMkk0Z3FSeG9M?=
 =?utf-8?B?OUtPV1J6bDMyckNtL09DL0pSc0VOa3pyOTNwM1NMMmhzdENSOTQzVUhXK01Q?=
 =?utf-8?B?YkRqenlrK09VdG13bUVpYkNucWRFdWU3U3ZBR0xpVHptVVozdlVlbkkwd211?=
 =?utf-8?B?clp3TnlsbVI2N243MThuZGQ5eEdWWlV2RXdDTzkxUEJkRXdQVXh6ekZ3b25y?=
 =?utf-8?B?bEMwbU9zdDZ3dXpTYnhhSldkY3VKTHRzV0VTZ3k4WlNTQ0RVaUhnQzF1MzhU?=
 =?utf-8?B?MloxYnZ6WEFBYU1MWWM4K3dTV2JjUjBzWWNQelh2UC9JQnlaYkt1OU9KMFFs?=
 =?utf-8?B?eXNVNkVxRkRxNVZsQktXaWc1TitnNlRTU3U1MTJkdDQ4TDgvMzdmazF0VG1n?=
 =?utf-8?B?Q3F0aGJZajNSc1N0MmJKbTRraG1BM1BiMTU3cVgzMzFXQ093SkNLaWV3YUpG?=
 =?utf-8?B?dzE1YytDVTQ2UVRQcm1mTHh5Y0F0MFpuTFdNSHIwcnZQTTBJQkhJZ2RZWWho?=
 =?utf-8?B?RHE3U0JsanZzbEtMb2EweUNiU1lVcFpxMEhGWXp1ajBFclBSQWZ1WHJUYWhO?=
 =?utf-8?B?LzFQNjBkR1ZCdEh0NnFIMXIvQkpLV2Jhc0NMOUFyeFpGUTZ5YlRmSTRtUFQr?=
 =?utf-8?B?Vko4L3lxUVhFSFFqbTZROXpQOEk0dGk1aG1CeWJpL01zbWFGelN0dVZXNjhK?=
 =?utf-8?B?NUhpSE92b25wR0VLajZsNmZUOHZZRFVLODl0c3plc0VocEZlVFFDRUlLWmcr?=
 =?utf-8?B?OC8yZVhmRFRVV0ZzNEsvc1R3YXVMbXhKU3drcEhEM3pURUphTVJscERtR1dL?=
 =?utf-8?B?NkJPSkhtcEx5T25nSW9ZZEc1M1JPYXF6UmR1WDAybnkrSVhPbUVBeGtVM2tN?=
 =?utf-8?B?WEcxMERZdDlsSzg5NWlKbElHMURyZEY2cUFDL2d6TmlWWi9yREU1eDIrSEE1?=
 =?utf-8?B?bDJ4aTVMZDNMZC9BeHcyTXZHSldQdzlwTFk5SmVHSkpsY1VWcFN0alZxY1By?=
 =?utf-8?B?UnVLck1qYXhrUDcycDFGcXhkL1lsaisxcGkxTWdkZmtyTkI0NndTUmdudzVw?=
 =?utf-8?B?RVFkTXZRVXd1NVNzZ2lzc1dzTWNhQWdCbno4dmN0Q2I1TE9td0xrdHZnOTU3?=
 =?utf-8?B?VjVTcllteURMZFF1RmhqT2tjQjFoUHZRWnZWVW5YcTQyUUJMN3B0aGliT2Jv?=
 =?utf-8?B?VzQzQXpGZGtZT2VQUDNpWHhoOGpVT1RQRmNMaSs5TTlZMWFMUUt1Y0pwclFP?=
 =?utf-8?B?cXlaRzVRbnJ0WHNBdnNZcmZrRVVDR2F6U3gxRlhSeE0xeFc2SFFYTmZqeFBu?=
 =?utf-8?B?dit4SjFGWkd6MERXenFSYzBVKzlSK0ZsWVRPcFM2K2Mrcy9sRmt6Wng0R3Y4?=
 =?utf-8?B?UEZBR3c0VEpsUnEvMkRZb3MzZEJIYVZORnZFc0cybzNFWDU4azVrQjVKdDhJ?=
 =?utf-8?B?T3FRY1Mvcm1qQUprMHhQRThNZ3hqTmFGWGhrRmRNQllZdDZ6SHdlTmVrcVpY?=
 =?utf-8?Q?9d23as5hACym8Dds=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ef861b0a-101c-40c3-35dc-08de8a5a7bec
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 10:37:16.5735
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: opwcYXo1tMq+U+OJVFPbOhgqNjQwpMrxpY5P1zrt0HobukQAPQLw0WG3fQxyPuu7Nb8eLlqk+wGSHiKqGybsdutpzlT1JPrKCVjJrYheJJA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR03MB6052
X-purgate-ID: tlsNG-c201ff/1774435046-2368D488-440F7024/0/0
X-purgate-type: clean
X-purgate-size: 4225

On 3/24/26 11:02 PM, Andrew Cooper wrote:
> On 24/03/2026 6:19 pm, Ross Lagerwall wrote:
>> When using eager-fpu, a vCPU's FPU is always marked as initialized on
>> context switch but it is possible that neither vcpu_reset_fpu() nor
>> vcpu_setup_fpu() has been called on it.
> 
> How?
> 
> I don't think a PV vCPU can.  You cannot VCPUOP_up a vCPU for which
> v->is_initialised is false, and setting is_initialised involves either
> giving a good FPU, or taking the "reset" path.
> 
> An HVM use of VCPUOP_initialise only passes basic state, so can be used
> to set v->is_initialised without touching the FPU state.
> 

Yes, then a subsequent VCPUOP_up allows the VCPU to be scheduled.
vcpu_restore_fpu_nonlazy(), called on context switch, always sets
fpu_initialised to 1 in the eager-fpu case. I confirmed this happens
with some debug logging during VM start:

[  106.281001] vcpu_init_fpu vCPU 1 (fpu_initialised is 0)
[  110.088015] vcpu_restore_fpu_nonlazy vCPU 1 (set fpu_initialised to 1)
[  110.088155] vcpu_restore_fpu_nonlazy vCPU 1 (set fpu_initialised to 1)
[  110.088518] vcpu_restore_fpu_nonlazy vCPU 1 (set fpu_initialised to 1)
[  110.356216] vcpu_reset_fpu vCPU 1 (set fpu_initialised to 0)
[  110.356236] vcpu_restore_fpu_nonlazy vCPU 1 (set fpu_initialised to 1)
...

> 
>>   If that happens,
>> arch_get_info_guest() would return a block of all 0's for the FPU
>> context claiming it to be valid.
>>
>> Fix this by calling vcpu_reset_fpu() during vCPU creation.
>>
>> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
> 
> The phrasing is a bit awkward, and the function names don't help, but it
> is something we're going to have to address properly when doing nested virt.
> 
> (A minor tangent which is relevant to where we want to end up)
> 
> https://sandpile.org/x86/initial.htm
> 
> #RESET and #INIT used to be a physical pins, but are just a message on
> the fabric. Either way they're events which alter state in well defined
> ways.
> 
>  From Xen's point of view, vcpu_create() is the only #RESET-like thing
> we've got.  If we didn't model crash/reboot as constructing a new
> domain, that would be the other place to use #RESET.
> 
> #INIT exists explicitly for HVM guests, via the APIC interface.  Xen has
> no working model of this because HVM guests were built on PV which
> wasn't modelled on how CPUs work.
> 
> v->is_initialised is a PV-ism which has infected x86 HVM and non-x86
> architectures too.  The key thing which PV vCPUs need that doesn't work
> like CPUs in the slightest is the chosen vCR3 (and vCR1 for PV64) need
> to refer to a property typed L4/L3 pagetable, and PV guests can't take a
> type ref on 0.
> 
> 
> Anyway, returning from the tangent ...
> 
>> ---
>> New in v2
>>
>>   xen/arch/x86/domain.c | 2 ++
>>   1 file changed, 2 insertions(+)
>>
>> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
>> index 9ba2774762cc..82da1c5d7b38 100644
>> --- a/xen/arch/x86/domain.c
>> +++ b/xen/arch/x86/domain.c
>> @@ -522,6 +522,8 @@ int arch_vcpu_create(struct vcpu *v)
>>           if ( (rc = vcpu_init_fpu(v)) != 0 )
>>               return rc;
>>   
>> +        vcpu_reset_fpu(v);
>> +
> 
> ... this really should be part of allocating the memory.
> 
> First, we should never have the backing memory in the wrong state, and
> second, the idle vCPU doesn't take this path.  i.e. in
> xstate_alloc_save_area().
> 
> Looking into this asks more questions.
> 
> xstate_alloc_save_area() does set some of the backing state, but misses
> FXSAVE_FTW_RESET.  That's easy enough to fix, and turns out to address
> my original concern.
> 
> vcpu_reset_fpu() sets v->fpu_initialised = false.  Doesn't this defeat
> the point of this patch?

No, since it means the backing memory has been properly initialised by
the time fpu_initalised gets unilaterally set in
vcpu_restore_fpu_nonlazy()...

> 
> Maybe it's easiest just to fix FXSAVE_FTW_RESET and then purge the
> booleans in the way this series does.  I don't think trying to unpick
> any other bugfixes is going to be fruitful.
> 

... but yes, that does seem like the best way to fix this.

Ross


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 10:41:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 10:41:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261929.1554647 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Lfd-0005DW-DT; Wed, 25 Mar 2026 10:41:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261929.1554647; Wed, 25 Mar 2026 10:41: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 1w5Lfd-0005DP-8l; Wed, 25 Mar 2026 10:41:05 +0000
Received: by outflank-mailman (input) for mailman id 1261929;
 Wed, 25 Mar 2026 10:41:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w5Lfc-0005DI-6P
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 10:41:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Lfa-00CE42-0i
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 11:41:03 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c3bbbf-5cb7-0a2a0a5109dd-0a2a4504cc78-0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:41:03 +0100
Received: from [209.85.218.53] (helo=mail-ej1-f53.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c3bbbf-c823-0a2a45040019-d155da35e92f-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:41:03 +0100
Received: by mail-ej1-f53.google.com with SMTP id
 a640c23a62f3a-b982d56dac4so371595666b.3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 03:41:03 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.25.73]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f8be14sm798491866b.17.2026.03.25.03.41.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 25 Mar 2026 03:41:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774435263; x=1775040063; 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=D9IUgVkMnSvSpiMpIQOwgKjrrKDZg8TzP8a6gJHM7DE=;
        b=H8ie4G8IP6S4hm1pm/ZJWOQezPUlzTtMk8GaObQOWP9otttXTHq1BnD9xhmvRNCdVT
         W1Z0ylP+1jO8QU4lrqEjW4uwSiRhklx4gSsJJMb/w1iN3wYJkMIaHnenSMBHzZJ6XLl2
         IhHjSNfV9efwlW4OmoJK3Q4asoZGiJjZNFmwIxD0nJyMn9TvR+PqPltasnf2N7Izx22x
         D4QoaYbjMEV9KpSadcrmfSuFgMb65oDnQdrJS0pKiQSafCZ5/CoRHF8jjnV72gu5wV8S
         o5tqzpZLeH4MmKk/L5Rw+TgPymYQs2bRHdo9r4rmG/2FWSHkOPekFw4kf6qXdU1Ks272
         ttIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774435263; x=1775040063;
        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=D9IUgVkMnSvSpiMpIQOwgKjrrKDZg8TzP8a6gJHM7DE=;
        b=e8lVpZrwhQh36xjRcNoqreLDz8CAYxVc9ervBmjeXXuC0781cJeu8FezV183Xi8uY1
         RzxgH6Ph2Cp2CpShd/XF3rvIWgl5WL83WWQOmzJEzx+OpEreKvVvCdEsTTs9CHi27H/e
         H9xjEfe8DpBXeFgVB2lSvfvgu3H2FpUYC+QQaeHiDjzoim0max7MmSY4TUVhafIGlc7q
         paz0cdKEjWyaRjMxC8dZHxNGnH3xcWZCCo6zA8IlbLn7r5XiVODTgCUPQ/6fF1l7IBUU
         hFffICfq5oZF2Wwmb0d8BJQwX61gtQ2s6nGhfgdlpeObqB0LcuJQysI1NAjIQL76A3YU
         JObQ==
X-Gm-Message-State: AOJu0YzytxEQ8jVQquwVCaOrgyw2bXTwoI30Qb+1zDXcSqLu7pLk/H8N
	Aopd2nPeWvqEaEz+i+qXMymRxY9SNVCCLWWkSNcAGrjhRCfODS6FfbZfoEYfNA==
X-Gm-Gg: ATEYQzy9wTPHlXgILRFe8tFsvzynrp7a4U+ntIRhGRgcQG5jY5Jl3nkka9fy5vRU+uJ
	sDSWm5g2N+hEdiDjMlQKssrTpp4DqSH6c9A2DqGtlskYPZHx4WfLJugalFEXg9C50RaVjl6OznC
	WVVTzlFGFKyFbCQ7ktNKSgX4rwAKfNF1tS65FTOjKM/N0ycITSvJ6WYPQFWrRkgjgAa9eVflaWu
	4FIcc7MFJ3GbpypJs457V7Cv34m4dzbrs+yx+nn99Td761KPw5LIetwT1oStD3L9LZ3IGH/KM8b
	7vsT8/pntgmQNi/1tuou75CA2X4yRmjtEUrGyVPsAnpI4CZYvoMFa4MP8Scd4TxsKTiOSKi7Lbd
	ltj0lwtzoSsPXWVPCJ+EYmndHwg/ZvCALKOYS74JItQw5qGo+UV/BueiiL+R0DjIu9eEHAP9oGt
	4IAC93ATjo58/HUuGVGdsQV+6/M3czwbniv6Fn
X-Received: by 2002:a17:907:7b9c:b0:b98:47a3:b41 with SMTP id a640c23a62f3a-b9a5420da89mr250828866b.29.1774435262349;
        Wed, 25 Mar 2026 03:41:02 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH 0/4] xen/arm: ITS quirk handling fixes and board-specific matches
Date: Wed, 25 Mar 2026 12:38:29 +0200
Message-ID: <cover.1774431310.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1774435263-B9A869D1-A6E38444/0/0
X-purgate-type: clean
X-purgate-size: 1399

From: Mykola Kvach <mykola_kvach@epam.com>

This series cleans up ARM GICv3 ITS quirk handling and fixes the point at
which quirk-derived memory attributes become visible to the LPI setup path.

The first patch switches the quirk handling from per-entry init callbacks to
declarative flags and folds in the DT dma-noncoherent property when deriving
the effective ITS attributes.

The second patch extends quirk matching with an optional platform callback so
that boards sharing the same IIDR can still be distinguished reliably. This
is then used by the third patch to add the Orange Pi 5 ITS quirk for
RK3588/RK3588S boards.

Finally, the last patch moves ITS quirk discovery and validation earlier in
the boot flow, before host LPI tables are initialized, so the boot CPU does
not allocate and program LPI data structures with default attributes when the
platform requires different ones.

Mykola Kvach (4):
  xen/arm: its: collect quirk flags and honor dma-noncoherent
  xen/arm: its: add platform match callback for ITS quirks
  xen/arm: its: add Orange Pi 5 ITS quirk
  xen/arm: its: pre-initialize ITS quirks before LPI setup

 xen/arch/arm/gic-v3-its.c             | 129 +++++++++++++++++++-------
 xen/arch/arm/gic-v3.c                 |   7 ++
 xen/arch/arm/include/asm/gic_v3_its.h |   5 +
 3 files changed, 107 insertions(+), 34 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 10:41:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 10:41:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261930.1554656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Lfe-0005Qp-KD; Wed, 25 Mar 2026 10:41:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261930.1554656; Wed, 25 Mar 2026 10:41:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Lfe-0005Qi-Fc; Wed, 25 Mar 2026 10:41:06 +0000
Received: by outflank-mailman (input) for mailman id 1261930;
 Wed, 25 Mar 2026 10:41:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w5Lfd-0005DO-F8
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 10:41:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Lfc-00CENL-RF
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 11:41:04 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c3bbb7-e002-0a2a0a5209dd-0a2a450bd7b6-32
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:41:04 +0100
Received: from [209.85.208.53] (helo=mail-ed1-f53.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c3bbc0-ef63-0a2a450b0019-d155d035b01a-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:41:04 +0100
Received: by mail-ed1-f53.google.com with SMTP id
 4fb4d7f45d1cf-667f8794e97so10873664a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 03:41:04 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.25.73]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f8be14sm798491866b.17.2026.03.25.03.41.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 25 Mar 2026 03:41:02 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774435264; x=1775040064; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JH93Di2V3lm2/5shCb0uuFhGc+gxIZ87omGm1UV+NOQ=;
        b=BrdwNUT0DUELUeYGQ+x4+zIw1Ckhb8sSJqKQEQbpfVMWzvfH0pqdrllpEw4TrbtRsu
         BdEOIKbgTmzoxDaHQyJbEqLBM80FAWt/B2vcUE+6zIGrgsRcFoJsrejSOrgNWQFu+/wn
         FwfsixoBN1UKsSJCMQpxmSZvOg1AAyZYusA9VtXPm0+0wTF/4r2Ab/a/336SupF4q4Og
         UswEpvhVJo3S/NRjPgK/c19pM/CSbjFjWHOQ9SjKFjNvWYyVVHco0YuobuTgV5SgZCB6
         OB3eGCB08z4H3pNifHFCq+4dEAXKCwo2H83R4DToIPo3Z9DoExVOxvz2FNjouGmN1BVt
         NmTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774435264; x=1775040064;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=JH93Di2V3lm2/5shCb0uuFhGc+gxIZ87omGm1UV+NOQ=;
        b=Eu04sQtK+Z1EeeD7mtvD+JYINKT8nQtZW+A0eOqbqiGDM3B+Zv+MsbXHI1zVgTjYvv
         gfU+zRXaafSwmQMR4Z0O7Ntd9hWSTg/Q805VZrUI89/qwIVBjLEcycw1NSXDsfbcm1b6
         RCOENv9nXWol+KdZ5p5WWWtL3FhyaoMFbCvq7GlsgHWE2+99L6npW6K7/6ZBJuSHUo2d
         B1lh/0datiQATtAXwT+UTKqTbdr6g6/1kvrt+t8eJYR6kNKgsOeLZWDhMrlYinwcPAjY
         GfGFjWc/XSC4R/cpw5hglk4KBh3wURcKIiT3xdDo+85o2Fv+dcvCUv/5DsE9WqsxuWZm
         H7LQ==
X-Gm-Message-State: AOJu0Yz6wy1OPRW0AuAgccqrNJkdgcONxF2vpRhuWCasdomGPSKf95hu
	ocfE/F1BbqoVuVGqTQxrZALyK+DCvi1cfN0f2eIkxN4TeUa538YEdIdzRXK2bw==
X-Gm-Gg: ATEYQzzljgXEGdQTlm7FlibIG3QQC3EmSVnECX77X2TGzxSuOgqg0VskoSEPWqGFNrR
	iJcO0C7RVkMgGzbUho47P7sbGJteN3Tcd8Mbmng/TkK2cvV2EYlifnTWEa/GPNN9wdGDX1FdPl/
	2vcNhd9ZWJBj58M7FpkrkTqpBMQyWJWkl/TZWXpsDV3ng/wk/1uUHmJwO9ij+ctg4O0uSO7AaM3
	5xh+Jsak9MsWtlHNhgRJrtSL6xNB87JMvQFYJUCShgFM+LUpw6hrzH5/oT1QCalmxKfiM5w9aF9
	RQlJING16n+SAUyVFyOl4gY3OqsHIUf4oVnpDLtQpmiZUyUY7iR3bf+3T88pi6VeMUTjKV3ijgQ
	Vzr3GHM5040XDuVwRjZSidn64iHFztzgMiuSMjNStVoFY3/zXZdXA4Jqq1R7XzrtPd8vgyTFdF9
	m/jrTo9MsreaTgi9xCAQXeZIBXyQ==
X-Received: by 2002:a17:907:e113:b0:b97:1d24:bfd7 with SMTP id a640c23a62f3a-b9a3f166610mr163314766b.6.1774435263745;
        Wed, 25 Mar 2026 03:41:03 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH 1/4] xen/arm: its: collect quirk flags and honor dma-noncoherent
Date: Wed, 25 Mar 2026 12:38:30 +0200
Message-ID: <5b68fa0a8403ea60db3047f6505876bc03a41f3f.1774431310.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1774431310.git.mykola_kvach@epam.com>
References: <cover.1774431310.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1774435264-A000B112-B5D61A7C/0/0
X-purgate-type: clean
X-purgate-size: 4195

From: Mykola Kvach <mykola_kvach@epam.com>

Replace the per-quirk init callback with declarative flags in
struct its_quirk, and introduce gicv3_its_collect_quirks() to gather
the effective workaround flags from both the IIDR-matched quirk entry
and the "dma-noncoherent" device-tree property.

This lets non-coherent platforms force non-cacheable ITS table
attributes even when no IIDR quirk entry matches.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
 xen/arch/arm/gic-v3-its.c | 70 ++++++++++++++++++++++++---------------
 1 file changed, 43 insertions(+), 27 deletions(-)

diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
index 9ba068c46f..00524b43a3 100644
--- a/xen/arch/arm/gic-v3-its.c
+++ b/xen/arch/arm/gic-v3-its.c
@@ -57,71 +57,87 @@ struct its_device {
  */
 struct its_quirk {
     const char *desc;
-    bool (*init)(struct host_its *hw_its);
     uint32_t iidr;
     uint32_t mask;
+    uint32_t flags;
 };
 
 static uint32_t __ro_after_init its_quirk_flags;
 
-static bool gicv3_its_enable_quirk_gen4(struct host_its *hw_its)
-{
-    its_quirk_flags |= HOST_ITS_WORKAROUND_NC_NS |
-        HOST_ITS_WORKAROUND_32BIT_ADDR;
-
-    return true;
-}
-
 static const struct its_quirk its_quirks[] = {
     {
-        .desc	= "R-Car Gen4",
-        .iidr	= 0x0201743b,
-        .mask	= 0xffffffffU,
-        .init	= gicv3_its_enable_quirk_gen4,
+        .desc  = "R-Car Gen4",
+        .iidr  = 0x0201743b,
+        .mask  = 0xffffffffU,
+        .flags = HOST_ITS_WORKAROUND_NC_NS |
+                 HOST_ITS_WORKAROUND_32BIT_ADDR,
     },
     {
         /* Sentinel. */
     }
 };
 
-static struct its_quirk* gicv3_its_find_quirk(uint32_t iidr)
+static const struct its_quirk *gicv3_its_find_quirk(uint32_t iidr)
 {
-    const struct its_quirk *quirks = its_quirks;
+    const struct its_quirk *quirk = its_quirks;
 
-    for ( ; quirks->desc; quirks++ )
+    for ( ; quirk->desc; quirk++ )
     {
-        if ( quirks->iidr == (quirks->mask & iidr) )
-            return (struct its_quirk *)quirks;
+        if ( quirk->iidr != (quirk->mask & iidr) )
+            continue;
+
+        return quirk;
     }
 
     return NULL;
 }
 
-static void gicv3_its_enable_quirks(struct host_its *hw_its)
+static uint32_t gicv3_its_collect_quirks(const struct host_its *hw_its,
+                                         const struct its_quirk **matched_quirk)
 {
+    const struct its_quirk *quirk;
+    uint32_t flags = 0;
     uint32_t iidr = readl_relaxed(hw_its->its_base + GITS_IIDR);
-    const struct its_quirk *quirk = gicv3_its_find_quirk(iidr);
 
-    if ( quirk && quirk->init(hw_its) )
+    quirk = gicv3_its_find_quirk(iidr);
+    if ( quirk )
+        flags |= quirk->flags;
+
+    if ( hw_its->dt_node &&
+         dt_property_read_bool(hw_its->dt_node, "dma-noncoherent") )
+        flags |= HOST_ITS_WORKAROUND_NC_NS;
+
+    if ( matched_quirk )
+        *matched_quirk = quirk;
+
+    return flags;
+}
+
+static void gicv3_its_enable_quirks(struct host_its *hw_its)
+{
+    const struct its_quirk *quirk;
+
+    its_quirk_flags = gicv3_its_collect_quirks(hw_its, &quirk);
+
+    if ( quirk )
         printk("GICv3: enabling workaround for ITS: %s\n", quirk->desc);
 }
 
 static void gicv3_its_validate_quirks(void)
 {
-    const struct its_quirk *quirk = NULL, *prev = NULL;
+    uint32_t quirks, prev_quirks;
     const struct host_its *hw_its;
 
     if ( list_empty(&host_its_list) )
         return;
 
     hw_its = list_first_entry(&host_its_list, struct host_its, entry);
-    prev = gicv3_its_find_quirk(readl_relaxed(hw_its->its_base + GITS_IIDR));
+    prev_quirks = gicv3_its_collect_quirks(hw_its, NULL);
 
-    list_for_each_entry(hw_its, &host_its_list, entry)
+    list_for_each_entry_continue(hw_its, &host_its_list, entry)
     {
-        quirk = gicv3_its_find_quirk(readl_relaxed(hw_its->its_base + GITS_IIDR));
-        BUG_ON(quirk != prev);
-        prev = quirk;
+        quirks = gicv3_its_collect_quirks(hw_its, NULL);
+        BUG_ON(quirks != prev_quirks);
     }
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 10:41:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 10:41:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261931.1554664 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Lff-0005fH-UY; Wed, 25 Mar 2026 10:41:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261931.1554664; Wed, 25 Mar 2026 10:41:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Lff-0005f7-R0; Wed, 25 Mar 2026 10:41:07 +0000
Received: by outflank-mailman (input) for mailman id 1261931;
 Wed, 25 Mar 2026 10:41:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w5Lfe-0005SP-Sq
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 10:41:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Lfc-00CE42-N8
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 11:41:06 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c3bbb7-5cb7-0a2a0a5109dd-0a2a4501c0c6-22
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:41:06 +0100
Received: from [209.85.208.53] (helo=mail-ed1-f53.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c3bbc2-6400-0a2a45010019-d155d035c405-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:41:06 +0100
Received: by mail-ed1-f53.google.com with SMTP id
 4fb4d7f45d1cf-667de793310so4106970a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 03:41:06 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.25.73]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f8be14sm798491866b.17.2026.03.25.03.41.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 25 Mar 2026 03:41:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774435265; x=1775040065; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CikO432tEUr8bFn5h+cx0SZD0cYZGcKrs8DBIckuAUw=;
        b=Ox2knnDiceog+aUcmcN1wGAS7FWppjuBH4ATtPiVz1+cftsBSZiivqwebKm9dj8hZ5
         eN0gtlda9SAJU0VTbl+3IY7Xu+DmwCTkF4WraGbKqn6UA1qwvLwvNcanRR/ccqOAe9Cw
         pWS2aFGaL0DqviBgcAFJIcmXokxjAYrgeMG6b9dA+N8PkxiUZpkJYqu9H1yTOfGMLrkN
         oMYug/Ptde0k0HYKprrAu5lDAh6dIy09HstRvrpIJ79aptFEf49nORf3cqd8edqGPnb/
         Rkn00+PMwQ6u2cibQ9EE/TL+DhgxEE+4c2lrxsT0rIGw5ExxITsWr3gWwVdUzBwl/X6N
         sQGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774435265; x=1775040065;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=CikO432tEUr8bFn5h+cx0SZD0cYZGcKrs8DBIckuAUw=;
        b=siSna0PFoZGIyBOilBs8UvRH6Pa+TzO/634SdUtqXC3zgF//VgtoP+Y2vnSSERD4KC
         ld1lgfr0/urCrVl4iUyJ6GhP6nDrdnL1QXhZWQsOfpJ4/ObroU7RErIVBlQiVEKaulTV
         A6oV1tn4U2y3nk8GQk+iBg9v0Vs1P/l7lS+oHLgmHqbGkjmKcFLe7BqgN9lcsEqWdvIj
         X8Gl3vwjIyFUr+qpi6lf8h8SjvLwoTn8R8QqfoHJ4dy4CcHTYnB/FWZylHAL3dGjTklB
         V5rr/5TK3sA0fxmu0W99Xge0DvD4JIIvenXgZQcPmNntBNlbbuk2RFIEG0C/9yoksIzD
         lmmQ==
X-Gm-Message-State: AOJu0YyvI9SaBEmL8W0zrPjQ4TaLjEMCb2whsgkYJHZE8LscIpX8cyhS
	AvETbLVT76rtti7uQWxNZTVcQbd/rNa0Qk01TRaHZ9SqZ3Y9a6No00EJKY6jxQ==
X-Gm-Gg: ATEYQzwcsch9fOf9t64vB3+QJD7gbphPdp4jPgOf5XQndoguolajMvrm4+VbvdkzFbV
	z4lDyIy7L4PsGsiQkUCvpTcesiUMBSXRTKYzR5reWRrL8jHPhVd4NkchvjpVg5pY/P+Q0+NiFAL
	qJGNXSQHOH6aHWG4d1N71MD5zuidCcWMqy3LH0zZqgAoNmhYO2R2aDvXvBKHR/TnZOEN1fPsSas
	gACor6ByAMhclMOD2wLbRUaz4rgLRSU7DX0sZE42/JB1vQKYlR0OdxCBicE43IO8Uqhs7RrGZbU
	ps2dBt9gDC30eLixHZgpPdAwaRv42kBTaWf3XxWWf1uMnQUbGjy0h1n/Co/F5Nz0/vpHWto8fkc
	QwtEJIJA5KlWKI7pMToz/h9vdd2Xrdm7QtMEuSNEbbeVD/2zrjbW0qjyiZ3HlxXyo3xT1Zc3L86
	J5ZWVL1mfKGqlRgDc1gekQBTbRVQ==
X-Received: by 2002:a17:907:9626:b0:b9b:e5d:71db with SMTP id a640c23a62f3a-b9b0e5d86c4mr157328866b.46.1774435265134;
        Wed, 25 Mar 2026 03:41:05 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH 2/4] xen/arm: its: add platform match callback for ITS quirks
Date: Wed, 25 Mar 2026 12:38:31 +0200
Message-ID: <10da5cf38dded9c3373c4b0ba54d7f7a7b2fd98f.1774431311.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1774431310.git.mykola_kvach@epam.com>
References: <cover.1774431310.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1774435266-21CFBDF3-3AE12AE1/0/0
X-purgate-type: clean
X-purgate-size: 2594

From: Mykola Kvach <mykola_kvach@epam.com>

Extend ITS quirk lookup with an optional match callback so that
platforms sharing the same IIDR can still be distinguished.

Use the board compatible string to positively identify Renesas R-Car
Gen4 before applying ITS workaround flags, preventing false matches
on other SoCs that happen to use the same GIC IP block.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
 xen/arch/arm/gic-v3-its.c | 22 +++++++++++++++++++---
 1 file changed, 19 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
index 00524b43a3..c40629731f 100644
--- a/xen/arch/arm/gic-v3-its.c
+++ b/xen/arch/arm/gic-v3-its.c
@@ -57,6 +57,7 @@ struct its_device {
  */
 struct its_quirk {
     const char *desc;
+    bool (*match)(const struct host_its *hw_its);
     uint32_t iidr;
     uint32_t mask;
     uint32_t flags;
@@ -64,11 +65,24 @@ struct its_quirk {
 
 static uint32_t __ro_after_init its_quirk_flags;
 
+static bool gicv3_its_match_quirk_gen4(const struct host_its *hw_its)
+{
+    if ( !hw_its->dt_node )
+        return false;
+
+    if ( !dt_machine_is_compatible("renesas,r8a779f0") &&
+         !dt_machine_is_compatible("renesas,r8a779g0") )
+        return false;
+
+    return true;
+}
+
 static const struct its_quirk its_quirks[] = {
     {
         .desc  = "R-Car Gen4",
         .iidr  = 0x0201743b,
         .mask  = 0xffffffffU,
+        .match = gicv3_its_match_quirk_gen4,
         .flags = HOST_ITS_WORKAROUND_NC_NS |
                  HOST_ITS_WORKAROUND_32BIT_ADDR,
     },
@@ -77,7 +91,8 @@ static const struct its_quirk its_quirks[] = {
     }
 };
 
-static const struct its_quirk *gicv3_its_find_quirk(uint32_t iidr)
+static const struct its_quirk *gicv3_its_find_quirk(
+    const struct host_its *hw_its, uint32_t iidr)
 {
     const struct its_quirk *quirk = its_quirks;
 
@@ -86,7 +101,8 @@ static const struct its_quirk *gicv3_its_find_quirk(uint32_t iidr)
         if ( quirk->iidr != (quirk->mask & iidr) )
             continue;
 
-        return quirk;
+        if ( !quirk->match || quirk->match(hw_its) )
+            return quirk;
     }
 
     return NULL;
@@ -99,7 +115,7 @@ static uint32_t gicv3_its_collect_quirks(const struct host_its *hw_its,
     uint32_t flags = 0;
     uint32_t iidr = readl_relaxed(hw_its->its_base + GITS_IIDR);
 
-    quirk = gicv3_its_find_quirk(iidr);
+    quirk = gicv3_its_find_quirk(hw_its, iidr);
     if ( quirk )
         flags |= quirk->flags;
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 10:41:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 10:41:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261932.1554674 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Lfh-0005tp-7l; Wed, 25 Mar 2026 10:41:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261932.1554674; Wed, 25 Mar 2026 10:41: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 1w5Lfh-0005th-25; Wed, 25 Mar 2026 10:41:09 +0000
Received: by outflank-mailman (input) for mailman id 1261932;
 Wed, 25 Mar 2026 10:41:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w5Lff-0005f1-Vc
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 10:41:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Lfd-00CE42-Q5
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 11:41:07 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c3bbbf-5cb7-0a2a0a5109dd-0a2a4504cc78-22
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:41:07 +0100
Received: from [209.85.218.50] (helo=mail-ej1-f50.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c3bbc3-c823-0a2a45040019-d155da32e8ff-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:41:07 +0100
Received: by mail-ej1-f50.google.com with SMTP id
 a640c23a62f3a-b79f8f7ea43so385276566b.2
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 03:41:07 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.25.73]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f8be14sm798491866b.17.2026.03.25.03.41.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 25 Mar 2026 03:41:05 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774435266; x=1775040066; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/rT8SR9SDzTxBQqKsvJCI0AzqlhVbVITm6mf7ezqebE=;
        b=j8uoYdFrUM1GvMC6l6T8lF5CrziORcBStp6HpiG4uvPPUYbwrAVKzup3nWP5xiDp8/
         iR82VW1vkkyUlwxi2DCXTu7AtTGcyggzWV+g/H/jTEHj1UinS8BOwCAMLV9dUFDmvNHq
         7lpnkQ8XnvH/JSlPz1Qb1r38CCQpvGhg1UFRpbgk/0CkltJiw9LFT5gSuZGfk6yaM08W
         U2b19y6mXW5zl2NSzbuAMAGeBgCjy0AvGGCb43oobzL1U+Fn3NQboooGLz49qi0XBLsW
         0f2JQKYj+SbwP4+iXK97GQy2TDO17GdNFxR1icuuCQeOyFShHGLfq9ci1B6BBB9SLvzn
         kizw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774435266; x=1775040066;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=/rT8SR9SDzTxBQqKsvJCI0AzqlhVbVITm6mf7ezqebE=;
        b=FySeze+Zz1nQF/Jxoxy2oitlgSyY/3GmX7nYBf8M9SFnx8hqC8vQqcRS3fVX4Az7vD
         a5sXDBojq6HDbn7eBKwr7JgZWz2XalcIQpqZFPlEPv2lLsEwCe5dDyBB+PRKUAK5fmmB
         dKv8XgDIdEplo9cMSjML+bmeuO/KY/d/YVUYs6t9GmR7RTKBoeipdf8txqZYL5oGhhzM
         n9wOPX9VbuO2Ri8I49nuQ789n2MB2xrdi418f0a3cO1PDJJVtX1k4YbNWhcvYGap/cON
         hCaT5/gI4syh337MVL/mkmoZ1muy04PR+7FWY0SoMhuoKXLGFsEzyuEDVkKW2bTR3VxW
         DJiw==
X-Gm-Message-State: AOJu0Yx0o1Pjy46iE7AnXHfEqrBEMU0j9lcH5TZyjlWcJ9wZz6XV8VNA
	EXKZyRYaNP5HC6a4c3E6FDfYSJVw8AOYGq1eeCo20PqQ4OfUd5RGV3fGyREYXA==
X-Gm-Gg: ATEYQzyLZC4dZU7Q1TZUyEhlnU40iSPaP8Va6SKUs6mjxWUWieaZu7c0EConlhVVi+I
	8n5TKvcreSACPMcIQZk4WwOVjq19a3EQLId3K89SS/3xKBCUg81hePLQL9gEY/dHiY5DL5PDkkn
	jSJYyhubZJW0RgNNc6BR5xmQxQoxR1pXI+XvNEzURMnGknrOIPZASofOZwJB5KBrWkSGbckR9Zb
	G5kf3MLjjEv6pjQrlKmIpUUIfHmj9IpYY41T0XoTQaScvVDdokHtWynOXN0Dc+q4/g61ogiCeqP
	1e0KaYTJft+dPlglQyWOwZEyX1rmpufN5vDMB2ycsbrVUF38TvWuGaEoSMsseoZDVTvwkZMRI6L
	ZaFdJGxLnJ95nKVkKfMbVWajoN3DuPLjMkCkbX40JeqsYuHGA+L2xZX00JAL5R4tLKlD++H8kvA
	FmGotv9ZGNygRp+25lDt4H8qwrhQ==
X-Received: by 2002:a17:906:af50:b0:b98:6926:13a5 with SMTP id a640c23a62f3a-b9a54241c2cmr156309266b.46.1774435266342;
        Wed, 25 Mar 2026 03:41:06 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH 3/4] xen/arm: its: add Orange Pi 5 ITS quirk
Date: Wed, 25 Mar 2026 12:38:32 +0200
Message-ID: <d2493972f7ba346c0921a4c7ad67220e5e85c89f.1774431311.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1774431310.git.mykola_kvach@epam.com>
References: <cover.1774431310.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1774435267-B38979D1-2A4B2AD9/0/0
X-purgate-type: clean
X-purgate-size: 1450

From: Mykola Kvach <mykola_kvach@epam.com>

Add an ITS quirk entry for Orange Pi 5 boards based on Rockchip
RK3588/RK3588S and match it via the platform compatible string.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
 xen/arch/arm/gic-v3-its.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
index c40629731f..ee432088cd 100644
--- a/xen/arch/arm/gic-v3-its.c
+++ b/xen/arch/arm/gic-v3-its.c
@@ -77,6 +77,18 @@ static bool gicv3_its_match_quirk_gen4(const struct host_its *hw_its)
     return true;
 }
 
+static bool gicv3_its_match_quirk_opi5(const struct host_its *hw_its)
+{
+    if ( !hw_its->dt_node )
+        return false;
+
+    if ( !dt_machine_is_compatible("rockchip,rk3588") &&
+         !dt_machine_is_compatible("rockchip,rk3588s") )
+        return false;
+
+    return true;
+}
+
 static const struct its_quirk its_quirks[] = {
     {
         .desc  = "R-Car Gen4",
@@ -86,6 +98,13 @@ static const struct its_quirk its_quirks[] = {
         .flags = HOST_ITS_WORKAROUND_NC_NS |
                  HOST_ITS_WORKAROUND_32BIT_ADDR,
     },
+    {
+        .desc  = "Orange Pi 5",
+        .iidr  = 0x0201743b,
+        .mask  = 0xffffffffU,
+        .match = gicv3_its_match_quirk_opi5,
+        .flags = HOST_ITS_WORKAROUND_32BIT_ADDR,
+    },
     {
         /* Sentinel. */
     }
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 10:41:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 10:41:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261933.1554682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Lfj-0006AI-DJ; Wed, 25 Mar 2026 10:41:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261933.1554682; Wed, 25 Mar 2026 10:41: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 1w5Lfj-0006A3-AC; Wed, 25 Mar 2026 10:41:11 +0000
Received: by outflank-mailman (input) for mailman id 1261933;
 Wed, 25 Mar 2026 10:41:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w5Lfh-0005su-5e
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 10:41:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Lff-00CE42-01
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 11:41:08 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c3bbb7-5cb7-0a2a0a5109dd-0a2a4501c0c6-34
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:41:08 +0100
Received: from [209.85.208.50] (helo=mail-ed1-f50.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c3bbc4-6400-0a2a45010019-d155d032e9c6-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:41:08 +0100
Received: by mail-ed1-f50.google.com with SMTP id
 4fb4d7f45d1cf-6694d00e01bso4273583a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 03:41:08 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.25.73]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f8be14sm798491866b.17.2026.03.25.03.41.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 25 Mar 2026 03:41:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774435268; x=1775040068; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zwKk50IewHoX8VCImGLVtNk1nwW7tGvQB6wa4lfiyaM=;
        b=mTCLEEm/Y9vnXShW9+VAZwyP8SIN7HM8T+43eVxwQLTqFnbcCk9TNPgkrijtxpM1VT
         9Epkleh+80OwsnLSGAN/cq8pYU2wxg1LbOFEbWLVAddNaRBRBykGAYjOtGUM6jN1qJUo
         OdxpQDaCWjRXBtB9gdV8ltgkcSAcouvqr20jOFa08CWnwr+KrT+QzNcTqblfrRh5JMlT
         hygnd0HUg9JUTSC4XecwH/3Ar/ypEFvcRy1QSASRTw6dL55J5PrDUNhdApfJzNSG5uKl
         WAzfFlZBDipXO85UDOGSgS598/aTAnqHxOaH5n/6bzO2goTJ6o+uX9/LLK1fclgFfsrS
         2OPA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774435268; x=1775040068;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=zwKk50IewHoX8VCImGLVtNk1nwW7tGvQB6wa4lfiyaM=;
        b=FJjtF6cksaRJme40sOCa5O+Gl+IhvkYoCpRh8zCjhDf2X1D/Es+k8uEpFbB0cOn8rI
         cz0YLWdTu0L9D147MGyxm5U1eTOdT/4wcYIckIYNqoaazUqBbEq1jzfboMl2RbFRO6jr
         av1zcHhuIPV/X73N4K0nLTueQfDdtfRmkx9lGq5YEsXHgEpL3KALfxSK2QUBSheq1anQ
         01Yt2MTEqdy2nKRHDajM93qERT3/O15fpyTrFJ9OXZN2m9Wo2LEm+1qIbi1gjBR0eijB
         ewoK6VJMh+gb4DQKEwo6WRWA43G9KWruwzPYYw+1PLfGPOc4My5WrTjb4+ylf3NK6I+5
         ML8A==
X-Gm-Message-State: AOJu0YzDqQ4F4fNkM86bsZODFz1h7/yNpI/wMW+p/tyKrn6sl9mEeB86
	/3A1pWjyNgFj1MozVjs9QEWkiUw/S6owMTGMPoS/NeNzgVaNTOMH8vNyc2nO9w==
X-Gm-Gg: ATEYQzyGBBiW9Ve7AHsISZdoK7OyFaeZbQMbqI+cODv6l66VxyDsguAe9SHOvJxRG9Q
	bC1/tGyDQ5r8ewL3KykMnG17euVX3BCyO1KaYNN/IURMad/Yx61JhCWYUkJXBvV2zxS6EKitZa3
	qtSLK0TUmszReH3IK4S+Ul41/Exn35Gi1KO5YT1YsxPZGhWSTsjEwZ21PNR+K5SsSjUKVbToHbe
	MGCdRGMuU1lKMeDaMm5WFnkwWUMWRFkFN9ZHnB2vyvNpJGjXc4xyQEy5Lfn3wEywVPMLixfBDdf
	rywOpa511OLECI4PePcvtMuwJKy2rfUXP+eYmZ6hDVGdlOxZiwBWbegQ0e+dprKWcYUTI4oo8GS
	g8OURhDlmLnAp5HXYxVaSEODzWA0SBGMnM0T7GhsnLcOd7mxh8dHRRAoEJzMmfqIM/t7hV8WJIe
	e1hrtOD1n+por0/yslGDWd5Vtd7Q==
X-Received: by 2002:a17:906:f59c:b0:b98:1b:5157 with SMTP id a640c23a62f3a-b9a3f1a54d5mr196571266b.23.1774435267531;
        Wed, 25 Mar 2026 03:41:07 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH 4/4] xen/arm: its: pre-initialize ITS quirks before LPI setup
Date: Wed, 25 Mar 2026 12:38:33 +0200
Message-ID: <a7732487959e777ff1de318cb28c588db69fbaa1.1774431311.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1774431310.git.mykola_kvach@epam.com>
References: <cover.1774431310.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1774435268-20CF3DF3-1B90C5EA/0/0
X-purgate-type: clean
X-purgate-size: 5396

From: Mykola Kvach <mykola_kvach@epam.com>

In the current initialization flow, gicv3_init() calls gicv3_dist_init()
before gicv3_its_init().

When LPIs are supported, gicv3_dist_init() calls
gicv3_lpi_init_host_lpis(), which initializes host LPI state and allocates
the boot CPU pending table before ITS quirk flags are computed. Non-boot
CPUs allocate their pending tables later from the CPU_UP_PREPARE notifier,
while redistributor LPI programming happens separately in
gicv3_lpi_init_rdist().

This means the boot CPU LPI setup can observe default ITS memory attributes
before dma-noncoherent and other ITS quirks are applied.

Introduce gicv3_its_preinit() and call it before gicv3_dist_init(). This
keeps the actual ITS hardware initialization in gicv3_its_init(), but moves
ITS discovery, quirk validation and quirk flag setup early enough for the
subsequent LPI initialization to use the correct attributes.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
TODO: Think about separating Redistributor/LPI attributes from ITS.
---
 xen/arch/arm/gic-v3-its.c             | 36 +++++++++++++++++----------
 xen/arch/arm/gic-v3.c                 |  7 ++++++
 xen/arch/arm/include/asm/gic_v3_its.h |  5 ++++
 3 files changed, 35 insertions(+), 13 deletions(-)

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



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 10:44:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 10:44:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261976.1554690 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5LiY-0007ky-Ql; Wed, 25 Mar 2026 10:44:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261976.1554690; Wed, 25 Mar 2026 10:44: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 1w5LiY-0007kr-OA; Wed, 25 Mar 2026 10:44:06 +0000
Received: by outflank-mailman (input) for mailman id 1261976;
 Wed, 25 Mar 2026 10:44:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1w5LiY-0007kc-6G
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 10:44:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5LiX-004OXw-Hm
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 11:44:05 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c3bc6b-e002-0a2a0a5209dd-0a2a450cd3e2-36
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:44:05 +0100
Received: from [40.107.209.52]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c3bc73-f93d-0a2a450c0019-286bd1343153-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:44:05 +0100
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by PH8PR03MB989114.namprd03.prod.outlook.com (2603:10b6:510:3a9::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Wed, 25 Mar
 2026 10:44:00 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026
 10:44:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qWJP3kXCj3P7TPvytByX8eJWCnhfBndLgLCofuCSi9tWPzpn7arnVb4orIffkb8+4gE+ixqHZAPTXiahlpoK8YOrDqY3YkjNmhBs3AAREGZ4w6Y41AieDI4O/ei9HVo2lpEweeR4ZZRmA5Ab2tV2EKOTA59UyarlAtsmb5nncJthXRC3Du7zONmuEU71jYxtc31UlQAj10sn+keG6AUav+ImvtfuB7sT6PyWzhywQhIdNorDI6L8gqWcDxLOF5e8P1LwezoXtCEXVwGo/45MYJJe7idI51/q2UlDZw1nF4lOs0JLHCi2rWmx230oTFyOntFW2PYfxMFca1CziA51vg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TrJgTBO+HgAU7k/miMlhva3uK06pR6mN0D9/No30HM0=;
 b=uOvs87Z1f5IP39MBnsEVrnnxmHUPG9O6tjK0i0kAicO6TBnRyuRd5cjQL6EkF5lFc9RpALWAej/T2WFRulNFG3xysnYZqtG/CYTFUnyAIjlIXzOlb/2ydRut5opGjypJdx1oGO0312DAzWPDDz/Vpma6Uocb5zBho70bAqkLXdfEk/WcAFwqaW4ZQ5ePdQctUPI/AeZEc++u4BEm8k/rHAdKtBp60Im78J1QG2XbUTXPes5x8gAlUXn/NW11Oq8o2gFfbehRs9n87pMDUghdwuLcjcyZnqPVnHjFMcnVQ9+AijKEXo1widd9LYm/2q0qIzDLO1+iqlfqsi9y/TH10g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TrJgTBO+HgAU7k/miMlhva3uK06pR6mN0D9/No30HM0=;
 b=qzovahlnsdn8J3+OCFtnDBuNY4iW1Nc4oA8e2AAqN0Qb/8Hq2kqAFdvBen8Fsh4eBUyisKW72M/mBFbX+S7V/aeJmIJg6n1azuR6hgV0TuPhb7TRzLLgZIM0QoFVNns1WpGBOr1Qqd0mC0/Fs+SokfUh394J3bh6eOPhRC0UHso=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <3305f87a-2279-4a61-afd4-f85ce8001e6a@citrix.com>
Date: Wed, 25 Mar 2026 10:43:11 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 7/9] x86: Remove fpu_initialised/fpu_dirty
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>, xen-devel@lists.xenproject.org
References: <20260324181937.2465574-1-ross.lagerwall@citrix.com>
 <20260324181937.2465574-8-ross.lagerwall@citrix.com>
 <33af69c4-3e35-4baa-abdc-57902a0db4bc@suse.com>
Content-Language: en-US
From: Ross Lagerwall <ross.lagerwall@citrix.com>
In-Reply-To: <33af69c4-3e35-4baa-abdc-57902a0db4bc@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P265CA0299.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a5::23) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|PH8PR03MB989114:EE_
X-MS-Office365-Filtering-Correlation-Id: 7966cee8-a507-45fb-d4aa-08de8a5b6cdd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	jgZwMn4aU/XFDQLsvnQBN+qK92+6M40xBrUoMnMCWeTapaTHRiO6RF7Ars7c0YJh1uqjSKlKpEyRv35lJ9A51M2dVgXOMkFReiDxScSbsG4X7+YDKddG+e1fbnHaKmzUcopLm5eiGoztSEE2lHeifcUB211zseK1Ki65ipT7qOC2xr1hPCQImq6VNMNq0hYnH+bZIVitMKdSPWHvHlle3Vv+3dkZAVyQFFxssQ+/QLLnk9UaJHYoWP5JLUiyZ+zsZvm5kTX2T2LWfNP/5nsuYlIdI5GMtYWGdyKDsRgf1yr8HuNuXwMmCbhI4HDDA15nqYlNiapurDb6U6YcHPit1foMa2QWXrieqCJxBNXJhXXQzXiWfBfskcU1UW/wtY8FP2x4/6nMFmWkpi3vjMDGTCV7o6d3jG43NldW5I8d7kCZDyo9nY4NQ9QPGBNEd+ieV7MYErne9gZisBBRF2taew8c61yPD5wYeWwJNcmJN3K/FPxM20vhH8maEVKUDe0C5Ft0p8q02GS0Qel0JyChxojo1fDaCxoXCD4bPnlf60Po/PkjLf0ZPYHWpNZ5PYbo1j8o9mXN5/1GocNTNsj8qsk9h/tL7Hudmk3jaZvQW69vvRAMIms07WKoWkTEKdzsjmy8tVK1MrYXvBNX/E6IFve/gDKkqLotGGcapCzuIo8IBpd/K+6wA7AaVuRpESWq3exIsStQBGjVZTiPIy5f2Lv+u1EZkLzUQYBjanzWTZk=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VSsxK1UwamlSaVQxa20zblBVU0QvVklDbXFXK3g1Y056TCtFYnFJZCtMc3lK?=
 =?utf-8?B?NWk1Yng5WE0xMVpiYys0V0ZXVlBEcElhNStNbkxMM1VsTk1PcUZUZnhCbXRM?=
 =?utf-8?B?R0t0RlhFd0xWbTh4cnZUU05sQ1hWUjdOaGt3Wnk2NUkyS0Vub0kvcVNIOHd2?=
 =?utf-8?B?RU1lSFkyWFVqV0JBNW9yeHJYZ2dKOHF6a3duRnRZSFF1VDRsS2U4akM3a0tu?=
 =?utf-8?B?MjdzeHNHQldYbFl6MmYvU1pIb0d0SXN4TDVhSmNHQlMxODRNK1dqUEpxTTdW?=
 =?utf-8?B?QyswK3RKQ1hGZ2xLdWkvRHg2OFhJL2dpN01qWkxKRWU0aEp5dFUyQ2xkeGs1?=
 =?utf-8?B?MlpTZ1VpK25ERWVEUzdBNUx1bVMyTTB6RGljeTdoZ2ZsQnd6MlF2bkdURzk0?=
 =?utf-8?B?RU1yMHV1ZG1vdzVEdVM5M216ekFoQVcrT09BaGJ1VFMyNEdSQkZKcklrT09Y?=
 =?utf-8?B?bXA0UWVFM3J4UmErbk1ibkpNOXdIZ2tiekZmaGZjUmFJYnZIYW00dy93eEJS?=
 =?utf-8?B?RXhtZWNSbWI3S2Y5Y2phWWpNc1U3NWM0RGZWSkJ0OGlzSUVWeVRqVjFja0tR?=
 =?utf-8?B?VktIbHdjUGplZll0RWtaSDFtR2ZlMytPWlNmaGIxT2xLNTNhSytXRWhWN2dl?=
 =?utf-8?B?VHZiMzc5UlphM2tRMExHbGZyeTNXVldSZXl6SE91NG83dEJTK3VEc3E2Vnhr?=
 =?utf-8?B?OWNFN2xUQjhWSXZYRE5GUWlSei9vc3JqM0YxQVJJVUtMV1h1akRqSjhVZVdk?=
 =?utf-8?B?MlU4cXk5Tk45Wk1UWXFRTjhaVDdUSWpOWW5qVVJsVWxUWEQ0VS94T3l2SGdi?=
 =?utf-8?B?V0RWcFdCbXlkWit1U0NUSURTOTVVSGJLQWtpay91NDZlQnVsU01yNDhKODhZ?=
 =?utf-8?B?R2ZvZkRjUGlVWW0rMWVyckNmQVZVaXBITFFWMDhuQjB2em5UZFBkQUI4c2ZE?=
 =?utf-8?B?UW5MTy9QSFdBODBDb3F2WnN1R1pzWW9jbkk3dHA2SVBmQUprYithdEtZMU9T?=
 =?utf-8?B?WTFoTUlsYnIyV3dEMFpEcDVwRzlSclh4bUxrcEFBVklUd2pKTkw1dkd0VURK?=
 =?utf-8?B?NGpwRDNXOSthWVVXb2FHQktCY3RnaVF0cUFMZis5MnBzSGJjRlp4RUl6NFd2?=
 =?utf-8?B?YUFBRzRnWE15OU5LRW16c1JwRFdYQyszUGJNWkk2N3QvcGRZb29LQllhNTh3?=
 =?utf-8?B?NVk5bUd5NE9kM1FyMGNVeUNLdmdHK2ozYnRvWGpxNUN1aEVsODZ6QjNabmh1?=
 =?utf-8?B?MXJobExVWTlUY1JCU3ZIUi9BWWpOT1RINEl6Y1ZaNm52ZzR0OU5BTzVoUzJO?=
 =?utf-8?B?akRlVE9tWjNBY3kvRU42TTlyeDBrNzUzUnRhdVlYbG9JTklZZGxnN3lzSVhW?=
 =?utf-8?B?ZzdONmJJRUVXeWRvZG9JMDRHT015YW9HSnJTUnFZSUUyMDM0UWtqZFFnRmZp?=
 =?utf-8?B?TjlweVhUUXd2RDhkNW01dWxaS0ZoYlFna3ZHc20xd0Nud1lmSEhqZmxFaDJn?=
 =?utf-8?B?VVZqN3lONXR6WHlvTGhjemxEQWdpd2Z1VFh3MEd5ZVBlYm9uQjU1UkpSdXVo?=
 =?utf-8?B?aFJxWGZJU2p3VzhPbTJqdC9CZTdIV0hhS1IxTkEraGpDSUkxQlRqRXE3cHhI?=
 =?utf-8?B?M09oSWFQSmxlbXlXZFdjNzRYUlZNclp3cjVsYjNvNW1TSlhybklHYWxHT1pH?=
 =?utf-8?B?RHBMb2JLTngxU045WHBWUGFUQkxibFBMWkpsMU4zOVV4cVAyNWQ2aGF4NGVV?=
 =?utf-8?B?ZUxMTmE1ZW96RTc5QThyMHkrbVN0U3U5dUZaclh4cTdpdlNSa1ZqNmhKTXpR?=
 =?utf-8?B?N2hVbGNlNDh2c2RQbGkyOXRXRkd5d1o1RERFR3lZeitKMDVOZkczd2FzQ2VH?=
 =?utf-8?B?VW1Ga2d6aXVJQmhIWk90bVhyUHNzaFZXOWdTRG1OVkZHUEQxWStFcHh0djRH?=
 =?utf-8?B?c0ZGclA4WkM1RWFWbFFJS3JqUjRERkRaS0NwVnRIS00xejRvcDZ0aVZ1V0tw?=
 =?utf-8?B?UzYzV0QwRWJOUWtRTTNqQUlWL1k4MTlES2t1c0xKSkpUcnczM284aG9HYXQv?=
 =?utf-8?B?aG5Md21IaVJiUERDL0hRRGk3SEdFTkZsVlpIRTBnejVwZUpmRlFqaG82MEZV?=
 =?utf-8?B?SWVZMnA5YzU5aE4yMlJmY1o3QkR1VzhkR2ozNnMwOU5ibHNaUWxzcDNpM2xI?=
 =?utf-8?B?RmdHeXZjSFZKUGRuSVRwMVZqaC9sUmxtK1Rtc0hTaFVya3owZlNuV2dydDZH?=
 =?utf-8?B?ZnFibng3S1FQOHRXTmdUbkpKckVRcUFpYVNkcVpFZFI0V2l3T1RTL25iQjRX?=
 =?utf-8?B?dmJHU0c0OW5qZmI5alZQN1lmK0lQNzNVL1ZOWXZRWUlOTmM3ejB6VE9KTFdR?=
 =?utf-8?Q?SxHnzI9JGwC3L1Iw=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7966cee8-a507-45fb-d4aa-08de8a5b6cdd
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 10:44:00.7902
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: mNggJVhZyrMJ+opPDA3TbAmelV/y2y700do8xhdZMBH/5kQ/3nFpINv0q81QR/kna4wOBP6tfTADSACf/WXM0V4PNsAZEVs7qLCmRffu38g=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR03MB989114
X-purgate-ID: tlsNG-d25034/1774435445-FC82D734-0D45BF07/0/0
X-purgate-type: clean
X-purgate-size: 716

On 3/25/26 9:30 AM, Jan Beulich wrote:
> On 24.03.2026 19:19, Ross Lagerwall wrote:
>> --- a/xen/arch/x86/domctl.c
>> +++ b/xen/arch/x86/domctl.c
>> @@ -1409,8 +1409,7 @@ void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
>>           c(flags = v->arch.pv.vgc_flags & ~(VGCF_i387_valid|VGCF_in_kernel));
> 
> It ends up a little odd to clear VGCF_i387_valid here, just to ...
> 
>>       else
>>           c(flags = 0);
>> -    if ( v->fpu_initialised )
>> -        c(flags |= VGCF_i387_valid);
>> +    c(flags |= VGCF_i387_valid);
> 
> ... unconditionally set it afterwards. Could I talk you into cleaning
> this up right away?
> 

Sure, I can do that in the next version.

Ross


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 10:59:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 10:59:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262004.1554700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Lww-00027S-6A; Wed, 25 Mar 2026 10:58:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262004.1554700; Wed, 25 Mar 2026 10:58:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Lww-00027L-2u; Wed, 25 Mar 2026 10:58:58 +0000
Received: by outflank-mailman (input) for mailman id 1262004;
 Wed, 25 Mar 2026 10:58:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w5Lwu-00027F-ER
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 10:58:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Lwt-00GHqz-QV
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 11:58:55 +0100
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c3bfeb-e002-0a2a0a5209dd-0a2a4506d27a-10
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:58:55 +0100
Received: from [52.101.193.18]
 (helo=CH1PR05CU001.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c3bfee-3034-0a2a45060019-3465c112c498-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:58:55 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH3PR03MB7434.namprd03.prod.outlook.com (2603:10b6:610:1a3::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Wed, 25 Mar
 2026 10:58:50 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026
 10:58:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lNVi6gPhOV6/tfMU99aAfCdCvRDfVC7YmJXdr5a80GkD8A5wN5MADcpa1wdT9Zopr0F12nV5738Gn7YBIOA016EuHozZ16RUnI2QPg/pRFe7ZWcWEjHzAgLzbFrl+eBQkZcalogPUmEwDcKA28ypFC+pzG6bFmrzeOWQFOCEhD/BJncPTO56GeDlSEsfT7wBiwhLbi9HPcnR0wV3cAvK4SO1FYCqyiuZcBFifpmXz0IsI6YCvJfTUySByS3DYE1GrF4+La6RCwp4ah8Ff1rAOYz5L7PRodIwLZg4hT2pVCWf3TRC8rJkRKrwTSPm6Rn2sCckDwO2Jy3pTfOP0BvPrw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Zevs2WTYtAaaIN9dkoW7HZvpod5J4Pf7OZr0nTk4VRE=;
 b=IPp2tglRCvSzDYiCGQGDLlgj+FTdGIMx+t18BD19+Vky60GMmzQ3+lpEonsem0Jm2rgxdGv0d5WNQoBFcFeJCCziTkEhzlwYpyCpjwxpx/zLw+mmX2Vm3ENC87+O2HQoSzx15p0ZHF0nkMpDeBvhoO3/5QHewqMxY/NXh4CW4B/mILjzFxBBTHiTrvSEAoAECMa0q/LQFkTZ3VeTmMO9BDmoN4DoNKPc+QVfAYAzYIhKuZIzMpcf71vKB4I4ojscjfjmSaBgQbEeeGHPUmmz77X9Ns/oEoiwJkWjv2zMEbD2n60kXZjd50wATpK8Jm8uuGaWPKzQ6AFTvlv1pYopfg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Zevs2WTYtAaaIN9dkoW7HZvpod5J4Pf7OZr0nTk4VRE=;
 b=M7h3BL04yBemiy0bPBs7KIQnz3eMXRZcsNsMfjaGsKQe8LymyFOf6VTt9tJ/EJQLVRquh6CxPPeCzBWyAkkyWezZavHidUgv5m81XvF/Tf1lA3xmGSgibIGLgf8U9gLMeHjVX4/92RzQm59JuWkWe0dUdY1q6e6QJzwUdT/vbv0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 25 Mar 2026 11:58:47 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Julian Vetter <julian.vetter@vates.tech>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Juergen Gross <jgross@suse.com>, Julien Grall <julien@xen.org>
Subject: Re: [PATCH v3 6/7] x86/dmop: Add XEN_DMOP_enable_ext_dest_id DM op
Message-ID: <acO_5y0JWYvtAvYk@macbook.local>
References: <20260309123055.880050-1-julian.vetter@vates.tech>
 <20260309123055.880050-6-julian.vetter@vates.tech>
 <aa7KcQQoc3-HwlcE@macbook.local>
 <1124b3b3-6593-4ef0-ad9a-28d21e06bbfd@vates.tech>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <1124b3b3-6593-4ef0-ad9a-28d21e06bbfd@vates.tech>
X-ClientProxiedBy: MA2P292CA0020.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::10)
 To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH3PR03MB7434:EE_
X-MS-Office365-Filtering-Correlation-Id: a279e9c2-17bd-43ae-3d9c-08de8a5d7f23
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	0wYUXeUeKcYynjQwP4cHJ1FKgYFchEhr0t42+PS9ZUNZvwe3tK5frYUJFu+oC5opydEgCqyyNJrSlnXWvrY5//9XcRX+bHMbI/tS+HbpiODzYZr34JYISd+fImQGqFQ3BlMQvbpTF6JU/veGqYRgtCZhuqd6LCgCfUtDsOS4qYXeiolobNsrR9RygjRtQxekJLYSo3LxV7JO8AqgrUjML4dJP/WXmlzGZ7Nk3rX8E4glvZSWBIXuoz5NAlHv8Yphuqi0TbsL5GNIQnVe7WR1Rdb46GmYcvaDGkqq1A2Jwr0JDJ/vXeIEYO376AFGlKuZ3iPiPc3PHvpLfXflArS5k7YCJ6qQlcgOpV0X/6VpZ3OEmLGVsJlcCSyIEjvD5rYtBKZzu/XcBKwPvR4sv+kIxgHETmPjusFOJAcdkgIdEFPSXD/X0SeM1dypvXx2BhSworguait3Y0CVJ+DwEPbddCmJpE3j8kp34zSVnwlPSjDsNwoPN4PVH7nLqeZksd6vQE/IP22h0J/p4z0ORgAQj0+7JZibIhCa49mN6OR8d21vSCSRmReDwBFkL5cJAh+ctDvprgLkUN69kJMzsxhohomyZplt4gx3UmCH1ZW2zYsNjYMBZqJ7dupPDY0D9eJ1B+ZS6n7igIieU/EeevMG+dfz+wZU7d962P0VJhfUz2DhevxMvpuLLj5uCWS4mWIHypLjCYi5youdmBzQbHqwdj+qZFyAIEa4KWKb2sSn46s=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?akFoUms3Z3lwQWk4WFZ0MnZ4ZUlwSUVnL00zb0pmZnZJMmhjNTdmYzRqMGtB?=
 =?utf-8?B?c05uZWh1dmVQQWQ2bWhPVnk2Rzk4d2FXZVMzUWY1VFFDdGhBcm9kaDlob3B4?=
 =?utf-8?B?TkhGQlg4Mk5KdTNYSHEybWkzVmZ6Smt6MjBNdUw0M0ZMczQvVFdSUk9tUG1D?=
 =?utf-8?B?RUoxRHhyM2FHN0ZlYnVBV2dlREgwY05LUFB4UGo0MzZLajlnR1FwY1dmL1dQ?=
 =?utf-8?B?b2dGZE9RcmlVdnZVdVRqRjJMT1UyVjlGYi9vTlU5QWwrRjNZc1EvSlhHenFa?=
 =?utf-8?B?VVJKOEtSWUtQS2xQS2x6ZnlvakxPTmNKaXpwNXY1bUoxdlBOZHIwbE1NS1NJ?=
 =?utf-8?B?bmovWlRySk9oS0h5MS9XRmFuRkJxd2ptQzg3MW00N252VUU5V1UrZit2Kzhx?=
 =?utf-8?B?NGVMUUh3cXd6Ty9MdENBN09KZWFwTFlINnhxZnRYVUtQMVBvc1JMRy9UdFZZ?=
 =?utf-8?B?MndSMitMdnQwNHV0SGFtNEZxT0Q1RkJRby9uQTExajdldTk5bmRqdGpsNnND?=
 =?utf-8?B?N2ZDUlhsZ3dWZm5GZmRqZm9Nc3dTL05FR1VGeHpVVXQ0cWNnajFSVWU4cHQz?=
 =?utf-8?B?ZGJuWkJTRW1hS2J0RFZYRlZPQ1hLemxYVzh4SHJuT2xQY1hLMHR0bnUxbURH?=
 =?utf-8?B?WC84eFN6ZDlKNzBQOS9jVlhGaTcvOHFBY1RjRVRkakJZN29GNVBnY0gxa3Yy?=
 =?utf-8?B?alRhZHBmR1BQTm1vZzVZWjVHREVVaytreUZmWmxvTmFDVUNmbTdMM2JuZ3ZC?=
 =?utf-8?B?UTBkUHZLSVJ5RWR3UGFGRXhMMENBdmdYbDNvU2REZ1R5L3lHQW5HTmVaVWh6?=
 =?utf-8?B?NXZBRzhYc0Z2T0hlZEtSM0QvVXA2SFNtNC9tNGQ1b2FsMk5CVjJVdkRaM042?=
 =?utf-8?B?T2M4OEhIQWdsRmdMY0ZpWlpiQlk1ckx5QytIbVBRWFd1QWhIdTd4dGJDWXdL?=
 =?utf-8?B?d1ovaFo3QWxKNGpVTnVQMlMxMUhPSTJRbTFQSS95eXpKQ1ZZZHFjY2huTCsw?=
 =?utf-8?B?aWdLVTNCcWo4OG9qVk9jVGVzcWNESDMvQS9XRGhEWVRzL3RWVWh0WVp2SmM4?=
 =?utf-8?B?YnRtR293bXMvSThFLzF3em1QdU5FQVdheXJQMDRqU0NZNWpkUGdHL0JjOXlu?=
 =?utf-8?B?VkxqZEp2eHhmb1FBbTlNcUprY2daZDBWV2tTUHZVTWUxditIQUdteW5sT0pz?=
 =?utf-8?B?eTNJMU5vRDNiazlBODlPSDV3TlJCaGtsN2trUDJuUUUwUUZkQ3g0RXNxeW9V?=
 =?utf-8?B?YXIvRThZdTBMa25OSGtLc3BUSCt1RDAwSi9VcXRpUUhmQ0pNS0pPNnVMYmpo?=
 =?utf-8?B?OG5LRkhwRjU5aFJXdnJxa1M1RHFGb2hvUCsyd25XN0Y4UlIrdEY4OFBYSSs3?=
 =?utf-8?B?cFZSR0dRbUllUzMxNDhNbGZkdlBPb1BoZnJQSGdnMFdlZVU5TG91UGtITDFN?=
 =?utf-8?B?c2M5YkE2ckk3VHIyQlJ3aGw1NWtDSTBXeitwNDhWRExvcGZTTElocjF0Q3pL?=
 =?utf-8?B?cUNLZS9nUFN0U0lEL2NPcWMvT3M5cm1vTkVkQURWZ3NKajFRS1VIQVcrTVlC?=
 =?utf-8?B?TXVndEtDbjdNQXJmU2NFWEs0TEZRYlUvb1MxTXFsaHZwY3cwS0ZycTNPVjlo?=
 =?utf-8?B?bmJqSVJmMzA0a0ZZbU1ldGtvMWtseXpIdGd4clhKWVBOeDgybFNZOFgvb3l1?=
 =?utf-8?B?VWNBaTVJQ3l4UE1PL25tK3hjeFVjekc5VCtleEs4SnFONGE3SmpDa245N0xa?=
 =?utf-8?B?bmhnVlNhS1hVbTdtQ09aZ2Z3TjRRaStqWUxqeGl1T3U2NTg2ZXorcGxVbFN3?=
 =?utf-8?B?dktkUHBYcEloa0hLbmxKaXpCTml2M0xnMG83a1kxeE9FS1BaRjQwWmhEUTR4?=
 =?utf-8?B?WDdmRkllVEFKSy9QQ3p4cVFncGtkKzN0cHVaR0pPSUhFUDlwRmJxb1lFZmtP?=
 =?utf-8?B?alZ2UnlGV2U4Tkdsb285SzJ4djdqT090Z2lhc1cxanVoQkgvai81ZWtGb293?=
 =?utf-8?B?U1JwSUwrVlo1bVBZdVhiZXZ1eVJXR2l6ZXhzVWUzZG5Nc1R6SjgwWlNzcHVa?=
 =?utf-8?B?VVpNSlBVeWt3OER1R3JmUGNwOVFZSW1NOXBOMCs4aWlmekdTb2pEdXkxai9J?=
 =?utf-8?B?dk9TVmpOQ1A4RzJTSm84Uk5lRk44aUtSd1VRWmxhWFp0M0Z1WVpLOWNkeGQv?=
 =?utf-8?B?WFRMMVB6MGNEV3puemd6em1ockgvUktCNnhTQU81Q1Q3dkY3eXdTREVYc0hi?=
 =?utf-8?B?eVNZank0dXc1NGJ3UmN2b3p4MUVtRnpVM3dlUm5JOWxSdTViMTRFVHZRN2pD?=
 =?utf-8?B?SERXMFFUR0pQWXBocTRVWVNNZ3AxMVk2SEZoUHBpMWtCdnl6M3VPQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a279e9c2-17bd-43ae-3d9c-08de8a5d7f23
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 10:58:50.4843
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: za5eehznLx7/9lgXnBM5hdsURVFmE+M324RdJL/PzBwlBpmRv5XxPOWiov7FzeY7P9d8hGzWGWKsjieGbkshGQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR03MB7434
X-purgate-ID: tlsNG-16d1c6/1774436335-7A3921C2-D3374AD2/0/0
X-purgate-type: clean
X-purgate-size: 5151

On Tue, Mar 17, 2026 at 10:22:20AM +0000, Julian Vetter wrote:
> On 3/9/26 14:29, Roger Pau Monné wrote:
> > On Mon, Mar 09, 2026 at 12:31:03PM +0000, Julian Vetter wrote:
> >> Xen cannot simply advertise XEN_HVM_CPUID_EXT_DEST_ID to the guest
> >> without knowing that the device model will handle extended destination
> >> IDs correctly for passthrough MSIs. A device model that still uses
> >> XEN_DOMCTL_bind_pt_irq would pass only the low 8 bits of the destination
> >> ID, misrouting interrupts to vCPUs with APIC IDs greater than 255. So,
> >> add a DM op XEN_DMOP_enable_ext_dest_id that the device model can call
> >> during domain setup (before vCPUs are started) to signal that it will
> >> use XEN_DMOP_bind_pt_msi_irq for all passthrough MSI bindings. When
> >> called, Xen sets ext_dest_id_enabled in struct hvm_domain, so it's
> >> visible to the guest via CPUID.
> > 
> > Have you considered whether you could re-use the padding in
> > XEN_DMOP_create_ioreq_server to signal whether the device model
> > supports Extended ID parsing?
> > 
> > Also, you might want some negotiation between multiple ioreq servers
> > on the same domain.  IOW: is multiple ioreq servers are registered
> > ahead of the domain having finished creation you could level whether
> > extended ID should be announced.  For ioreqs that are registered after
> > the domain have started you need to enforce the currently set Extended
> > ID support.  If the domain is running, and Extended ID is advertised
> > you must prevent registering any new ioreq that doesn't support
> > Extended ID.
> > 
> 
> Thank you Roger for your feedback! It's very appreciated! This was a 
> good idea. I have implemented this now. I have used one of the reserved 
> bytes and use it as a flag field.
> 
> But I have a remaining question/concern, which maybe you can clarify.
> If server A (e.g., a secondary emulator) registers WITH ext_dest_id 
> before the domain starts, hvm_ext_dest_id_enabled() returns true and the 
> guest will be advertised XEN_HVM_CPUID_EXT_DEST_ID. If QEMU's primary 
> ioreq server then registers WITHOUT the flag

But QEMU would also register ahead of domain build having finished,
and hence you need to take the minimum of all supported emulators.  In
this case, if there's a single emulator registered ahead of the domain
build having finished that doesn't support the Extended Destination ID
format you cannot advertise it.

> and goes on to use 
> XEN_DOMCTL_bind_pt_irq, pass-through MSIs will be misrouted (or rejected 
> if I then refuse calls to XEN_DOMCTL_bind_pt_irq for that domain). My 
> implementation allows this combination before 'd->creation_finished'.

Yes, the combination is fine as the feature is leveled across all
registered emulators before domain creation finished.  Once domain
creation has finished newly registered emulators must have Extended
Destination support if the feature has been advertised by Xen in
CPUID.

> I have added a check in ioreq_server_dm_op() for the 
> XEN_DMOP_create_ioreq_server case for the "runtime" case as you 
> suggested. If one of the existing ioreq servers announces it, and a new 
> server wants to join, that doesn't have this flag set, it will be 
> rejected with -EINVAL:

That seems fine, as long as the feature is levelled across all
registered ioreq server prior to the domain being started.  IOW: you
shouldn't take the value of the first registered ioreq server, it has
to be levelled across all registered ioreqs ahead of domain start.

> if ( d->creation_finished && hvm_ext_dest_id_enabled(d) &&
>       !(data->flags & XEN_DMOP_IOREQ_SERVER_EXT_DEST_ID) )
>      break;
> 
> But what happens to the first case I described, how can I reasonably 
> negotiate between different ioreq servers or determine who is the "main" 
> server? 

Why do you care how is the "main" ioreq server?  All ioreq servers
must support the feature for it to be enabled, it doesn't matter
whether it's a primary or a secondary server.

> In practice, usually if QEMU ("the only" server that matters for 
> pass-through) opted in, the feature is enabled.

Hm, not really, On XenServer we use a separate ioreq server (not QEMU)
just for passthrough of certain devices.  So I can tell you there are
other users of ioreq outside of QEMU that do passthrough.

> If it didn't, no other 
> server would have opted in either, no? The only "sort of" issue would be 
> if someone wrote a secondary emulator that sets ext_dest_id to basically 
> "lock out" a QEMU that doesn't support the new XEN_DMs?

Ahead of the domain being created you need to figure out whether it's
safe to expose the feature across all registered ioreq server at that
point.  After that, if Extended Destination ID is exposed, only server
supporting it can be added for the lifetime of the domain.

You will also need to migrate this setting AFAICT, so the guest
doesn't see it disappearing when it resumes on a different host.

Hope this makes sense, let me know if you think some of the above is
wrong or undoable.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 11:09:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 11:09:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262013.1554709 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5M6u-0004GL-2G; Wed, 25 Mar 2026 11:09:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262013.1554709; Wed, 25 Mar 2026 11:09:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5M6t-0004GE-UY; Wed, 25 Mar 2026 11:09:15 +0000
Received: by outflank-mailman (input) for mailman id 1262013;
 Wed, 25 Mar 2026 11:09:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 1w5M6s-0004Fn-P7
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 11:09:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5M6r-00FnYU-Mj
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 12:09:13 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 69c3c253-5cb7-0a2a0a5109dd-0a2a4505cc4e-12
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 12:09:13 +0100
Received: from [205.220.180.131] (helo=mx0b-0031df01.pphosted.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 69c3c258-5aeb-0a2a45050019-cddcb4831046-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 12:09:13 +0100
Received: from pps.filterd (m0279873.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62P7Zn6K2276792
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:09:11 GMT
Received: from mail-pf1-f200.google.com (mail-pf1-f200.google.com
 [209.85.210.200])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d40ratu40-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:09:11 +0000 (GMT)
Received: by mail-pf1-f200.google.com with SMTP id
 d2e1a72fcca58-82a6906e35fso1088399b3a.0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 04:09:11 -0700 (PDT)
Received: from hu-vjitta-hyd.qualcomm.com ([202.46.23.25])
 by smtp.gmail.com with ESMTPSA id
 d2e1a72fcca58-82b040da7besm14615911b3a.49.2026.03.25.04.08.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 25 Mar 2026 04:09:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=qcppdkim1 header.d=qualcomm.com header.i="@qualcomm.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:Message-Id:MIME-Version:Subject:To"; dkim=pass header.s=google header.d=oss.qualcomm.com header.i="@oss.qualcomm.com" header.h="Cc:To:Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:message-id
	:mime-version:subject:to; s=qcppdkim1; bh=0xsjrEryjWzRb9dOuIF+d8
	yzYCspWSHX+0TlzKhGxRo=; b=TiMEGExkVM9gpL8cmTL1Y1MM+EHGdJ2UifJ7G9
	+3eMUGbdKh5bKay+aRyF7hZyOgk2/v+Ic8E2ObTbeV+5jRc5ljbjfAM366mDRq8Q
	p/c6wKlT8DwRmmdjtytX4aZYLV7FsCQbrWiFiGIpvpHTlh5XQb3KFsSTaCfYpqqM
	1rCSphJtlm6zmKIuCrM6PhQAdSYH04ZNY7qyz3M6fxBj7kufweRkpHTvNuLf3B1e
	yNKDTM6ys0BdHBaZOEU0o7H9qmFXjVMSR5+KcOCSliemYOsSFSJRINAtb+096EuP
	x2tFAR5Nr6nKw8fI7XAcvpCn1JBCNK7ldq+j0SS2gOpp6XTw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1774436950; x=1775041750; darn=lists.xenproject.org;
        h=cc:to:content-transfer-encoding:mime-version:message-id:date
         :subject:from:from:to:cc:subject:date:message-id:reply-to;
        bh=0xsjrEryjWzRb9dOuIF+d8yzYCspWSHX+0TlzKhGxRo=;
        b=HoJCdYcUvnzlRDvE717v0TmuTGxFlknZpXvmu3voCEyyHO199XT980EulyAJBPd7Tq
         wCdA72Dmw9mW5gtCQC/ijub6PJQjNfM2birN0qmrRhs7ScuDihnavcueOoHzSFpnO6nY
         Im8eAdh33cbrGWye9dU5EqcJ0ucVOLeHDoroEnIjAujO35lQpMwKwxFAVOXB5FZjkMJW
         oZegTSisEdpd3BiD/R6hsw+2Rs1FpBN366FG6nZV2fyEXRht6mbVs+ih7dgAaUVbi0vQ
         RGWHwnHEWO70IxVrDaNGcYtnrVefdpIrSKM+f8QPuIhV4B5k3duXzIrwzVH6H+tG9OFI
         b6yA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774436950; x=1775041750;
        h=cc:to:content-transfer-encoding:mime-version:message-id:date
         :subject:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0xsjrEryjWzRb9dOuIF+d8yzYCspWSHX+0TlzKhGxRo=;
        b=BAYtnBmcce3dSaxmh9VscOqH08hqsc97KZpYK7iRbpnNkIMCrlxuWfpLgHMjmKgiZA
         EfWzMfIWxq5ewW/a0xev0IOvycGwsGwD1W23T9RB4LDP8v5t8hfKmQKV17GjQS3HLz8F
         ssFLfcDO0s1ovQPLVisgWntZufDF1bJ8cwghdZtOqesqxCM6ukgcVeQwLc7Jqj5h3bMn
         DCQIpt6BWokLkkvEdbBAGFtmnsBpBUX3HMcLan58LhgLE9LU2Sw5xNCP6t+INe3HuTSA
         MC9sQS+LTykGNFX6wo0Ry29hIO2R25CZK+8zF+SBGAch2uGb3Rak0yV9sFmQppscZSzG
         RAhA==
X-Forwarded-Encrypted: i=1; AJvYcCUJxUhB3ic/fy7yFIOtSTkWp1E5S7326UuIFk/H/jzhZRIe2NTM/fyQQ8b5+apWVPyVn7w9VubTRIQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzrAsIJIv52NNAGNfdo5mXv7xHt6JfJGaEpti5xUMOc67MYP81f
	CanmmS0uDJzPHE2uSfTce8i+3U66807I3tqRgG9R6RApIsgrMKTToANmE66cOkQsvqGeOsnJKpS
	mtXB/w+IidoBZbzBvlptz9GS3Qn+LDdrtRybil4KD/H9YIQ/hj2GBs4Ty9Dsv9sBK+p6gAA==
X-Gm-Gg: ATEYQzxgo1scw6BZtmCuzFuujl9ngm7XjgqDB6J3zEaFkwPQHrHVUW28bQba58Vtses
	KnfKM0pTOxdyWwB5yPRJLOFfT0qvPkFpugdCsnD+8SSxKJLY0d2yz/1qaUzhpikMvoHeXQarVv7
	xOqqP8ENUEFK5X0/T4VL8LsW9nVAPm4iKeiVmbB1CRa8rgpYY2nxc0cO0ij5GQmDeH42hO+g2rB
	kWlwp2OxR2vUpHUE/KG15cTwwPWF6eaWF0DYGqtPrJcd7iq2H2UG8eBPrX1ELf6DUsAw8GSJgoZ
	0YEfJN3C69ZgS7IIS4ksXXCKqsTocDq2Xdz8mTR3UUDdXipnAiQe/TcII7/HprNpt4vbcNP2naO
	Tes2k2GL1S6ySm6k2xN8OCNnMyOVY9lU/4EwqLuJrDNvZOd/pXDUFp2Hd
X-Received: by 2002:a05:6a00:1787:b0:827:2ee7:baaf with SMTP id d2e1a72fcca58-82c6d88a70emr3157403b3a.12.1774436950315;
        Wed, 25 Mar 2026 04:09:10 -0700 (PDT)
X-Received: by 2002:a05:6a00:1787:b0:827:2ee7:baaf with SMTP id d2e1a72fcca58-82c6d88a70emr3157358b3a.12.1774436949724;
        Wed, 25 Mar 2026 04:09:09 -0700 (PDT)
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Subject: [PATCH v11 0/3] of: parsing of multi #{iommu,msi}-cells in maps
Date: Wed, 25 Mar 2026 16:38:21 +0530
Message-Id: <20260325-parse_iommu_cells-v11-0-1fefa5c0e82c@oss.qualcomm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
X-B4-Tracking: v=1; b=H4sIACXCw2kC/33NwQ6CMAwG4FchOzuygiB48j2MIaUUWYIMN1k0h
 Hd3cPJAvDT5/7RfZ+HYanbiHM3CstdOmyEEgEMkqMPhzlI3oRCJSnKVKpAjWseVNo/HVBH3vZN
 AaXrKC+S6RhHuRsutfm/o9RZyp93L2M/2w5dr+0/zpVTy2EBNzEQZw8U4Fz8n7ClsxWGIFfWgf
 qVyTwIVKMqTlhAzhKbYoZZl+QLpzPWgBQEAAA==
To: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
X-Mailer: b4 0.12.3
X-Developer-Signature: v=1; a=ed25519-sha256; t=1774436938; l=5530;
 i=vijayanand.jitta@oss.qualcomm.com; s=20260301; h=from:subject:message-id;
 bh=b8dYo16XmJ2xon8GV97URYfm4xZzwK4rrsPqdHa33Kk=;
 b=J08zhEYoQn9e6bd4Kdzzm/0wjHfQUzVEJmTADcUj7e0wpazI3gC2Wl0RNNsNRBF8E/PVwFYJS
 bUPHaafLLEtCBMQtzU4gcpBawAiyPFytdIVdxsjxMVtFcpymsXi/9KL
X-Developer-Key: i=vijayanand.jitta@oss.qualcomm.com; a=ed25519;
 pk=Lpi7Cs3wHe8KZtqvyci7FTOLzsKpEHKGCaPNZw+1zRI=
X-Authority-Analysis: v=2.4 cv=Jvr8bc4C c=1 sm=1 tr=0 ts=69c3c257 cx=c_pps
 a=mDZGXZTwRPZaeRUbqKGCBw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22
 a=VwQbUJbxAAAA:8 a=COk6AnOGAAAA:8 a=NEAV23lmAAAA:8 a=EUspDBNiAAAA:8
 a=w9jVfKxUgDq0yQD5sDkA:9 a=QEXdDO2ut3YA:10 a=zc0IvFSfCIW2DFIPzwfm:22
 a=TjNXssC_j7lpFel5tvFf:22
X-Proofpoint-ORIG-GUID: QXdCWYqXSgpXP_rHm77lHLvfyLlncNZX
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI1MDA3OSBTYWx0ZWRfXwpMT1H8AIaP8
 PD1lbsGlPhrBGruM5QnouzRnPD49O1yui0Vx0W14ZXETHm9eVA1DTO9jf68ZIwMeijR4gBipN1f
 b5I0YfNxNv5XdCWbNXt6q7OH6ipPETJUYD6LqFmYNzsDZkz7H3V9hbwtBHw9yKmayAvtfB2S5Yt
 HOOWtiwzvX5OJXjvxPnEQixyDSFTltd9nwRbIBnDBMw8TSBNh4I7xLvshNRtSOwuVQ6ZO9Uw+AR
 +7mGAJyWXiNyIDvIXUnzN50BEWlQ847EEtbxnUb7kAvZe1tr9fIvmcHJlqJ5cA/xsJBkoMDZ3xV
 25VVE5nUd9SitcbVRDRXq4sjbMPOEMs5vu5F3si6AftmYKn5u1y7q0krIvw+YFadJFgggApx/jO
 Z8/PDOOuMIZPZzTxXqQMTlDmpqysJuvfPCdeclMLBNbuDHw1KEnVICczfQqrTal4x6vOCF99Iz5
 Mz0IeGk8wUZEzYMgFOA==
X-Proofpoint-GUID: QXdCWYqXSgpXP_rHm77lHLvfyLlncNZX
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-25_03,2026-03-24_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 lowpriorityscore=0 adultscore=0 impostorscore=0 suspectscore=0 phishscore=0
 priorityscore=1501 spamscore=0 clxscore=1015 bulkscore=0 malwarescore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603250079
X-purgate-ID: tlsNG-c201ff/1774436953-2169D488-29EACC37/0/0
X-purgate-type: clean
X-purgate-size: 5532

So far our parsing of {iommu,msi}-map properties has always blindly
assumed that the output specifiers will always have exactly 1 cell.
This typically does happen to be the case, but is not actually enforced
(and the PCI msi-map binding even explicitly states support for 0 or 1
cells) - as a result we've now ended up with dodgy DTs out in the field
which depend on this behaviour to map a 1-cell specifier for a 2-cell
provider, despite that being bogus per the bindings themselves.

Since there is some potential use[1] in being able to map at least
single input IDs to multi-cell output specifiers (and properly support
0-cell outputs as well), add support for properly parsing and using the
target nodes' #cells values, albeit with the unfortunate complication of
still having to work around expectations of the old behaviour too.
							-- Robin.

Unlike single #{}-cell, it is complex to establish a linear relation
between input 'id' and output specifier for multi-cell properties, thus
it is always expected that len never going to be > 1. 

These changes have been tested on QEMU for the arm64 architecture.

Since, this would also need update in dt-schema, raised PR[2] for the
same.

[1] https://lore.kernel.org/all/20250627-video_cb-v3-0-51e18c0ffbce@quicinc.com/
[2] PR for iommu-map dtschema: https://github.com/devicetree-org/dt-schema/pull/184

V11:
  - Added explicit filter_np parameter to of_map_id() and of_map_msi_id()
    per Dmitry Baryshkov's review feedback, making the filter explicit
    instead of overloading arg->np as both input filter and output parameter.
  - Removed of_node_put() from inside of_map_id(), making the caller responsible
    for reference management. Updated of_msi_xlate() to properly handle reference counting.
  - Collected ACKed by tags, and fixed minor typos.
  Link to v10:
  https://lore.kernel.org/r/20260309-parse_iommu_cells-v10-0-c62fcaa5a1d8@oss.qualcomm.com

V10:
  - Move of_map_iommu_id()/of_map_msi_id() from include/linux/of.h to
    drivers/of/base.c as out-of-line helpers per feedback from Marc Zyngier
    and Rob Herring.
  - Add kernel-doc to document both helpers for discoverability and
    usage clarity.
  - Fix of_map_msi_id() wrapper and all its callers (cdx_msi.c,
    irq-gic-its-msi-parent.c, drivers/of/irq.c) to correctly use the new
    struct of_phandle_args-based API with proper of_node_put() handling
    as per feeback from Dmitry.
  Link to v9:
  https://lore.kernel.org/r/20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com

V9:
  - Updated TO/CC list based on feedback to include all relevant
    maintainers.
  - No functional changes to the patches themselves.

  Link to V8:
  https://lore.kernel.org/all/20260226074245.3098486-1-vijayanand.jitta@oss.qualcomm.com/

V8:
  - Removed mentions of of_map_args from commit message to match code.

  Link to V7:
  https://lore.kernel.org/all/20260210101157.2145113-1-vijayanand.jitta@oss.qualcomm.com/

V7:
  - Removed of_map_id_args structure and replaced it with
    of_phandle_args as suggested by Dmitry.

  Link to V6:
  https://lore.kernel.org/all/20260121055400.937856-1-vijayanand.jitta@oss.qualcomm.com/

V6:
  - Fixed build error reported by kernel test bot.

  Link to V5:
  https://lore.kernel.org/all/20260118181125.1436036-1-vijayanand.jitta@oss.qualcomm.com/

V5:
  - Fixed Build Warnings.
  - Raised PR for iommu-map dtschema: https://github.com/devicetree-org/dt-schema/pull/184

  Link to V4:
  https://lore.kernel.org/all/20251231114257.2382820-1-vijayanand.jitta@oss.qualcomm.com/

V4:
  - Added Reviewed-by tag.
  - Resolved warnings reported by kernel test bot, minor code
    reorganization.

  Link to V3:
  https://lore.kernel.org/all/20251221213602.2413124-1-vijayanand.jitta@oss.qualcomm.com/

V3:
  - Added Reviewed-by tag.
  - Updated of_map_id_args struct as a wrapper to of_phandle_args and
    added comment description as suggested by Rob Herring.

  Link to V2:
  https://lore.kernel.org/all/20251204095530.8627-1-vijayanand.jitta@oss.qualcomm.com/

V2:
  - Incorporated the patches from Robin that does the clean implementation.
  - Dropped the patches the were adding multi-map support from this series
    as suggested.

V1:
 https://lore.kernel.org/all/cover.1762235099.git.charan.kalla@oss.qualcomm.com/

RFC:
 https://lore.kernel.org/all/20250928171718.436440-1-charan.kalla@oss.qualcomm.com/#r

Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
---

---
Charan Teja Kalla (1):
      of: Factor arguments passed to of_map_id() into a struct

Robin Murphy (2):
      of: Add convenience wrappers for of_map_id()
      of: Respect #{iommu,msi}-cells in maps

 drivers/cdx/cdx_msi.c                    |   8 +-
 drivers/iommu/of_iommu.c                 |   6 +-
 drivers/irqchip/irq-gic-its-msi-parent.c |  11 +-
 drivers/of/base.c                        | 213 ++++++++++++++++++++++++-------
 drivers/of/irq.c                         |  11 +-
 drivers/pci/controller/dwc/pci-imx6.c    |  18 ++-
 drivers/pci/controller/pcie-apple.c      |   6 +-
 drivers/xen/grant-dma-ops.c              |   5 +-
 include/linux/of.h                       |  30 ++++-
 9 files changed, 237 insertions(+), 71 deletions(-)
---
base-commit: 3fa5e5702a82d259897bd7e209469bc06368bf31
change-id: 20260301-parse_iommu_cells-1c33768aebba

Best regards,
-- 
Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 11:09:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 11:09:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262016.1554717 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5M75-0004YL-Bn; Wed, 25 Mar 2026 11:09:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262016.1554717; Wed, 25 Mar 2026 11: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 1w5M75-0004YE-8N; Wed, 25 Mar 2026 11:09:27 +0000
Received: by outflank-mailman (input) for mailman id 1262016;
 Wed, 25 Mar 2026 11:09:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 1w5M73-0004W6-Cy
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 11:09:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5M71-00CJyo-6U
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 12:09:24 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 69c3c25f-bab6-0a2a0a5309dd-0a2a4501bf54-26
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 12:09:24 +0100
Received: from [205.220.180.131] (helo=mx0b-0031df01.pphosted.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 69c3c262-6400-0a2a45010019-cddcb48352e2-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 12:09:23 +0100
Received: from pps.filterd (m0279872.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62P4wR2R2973560
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:09:22 GMT
Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com
 [209.85.215.199])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d40f4jw94-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:09:22 +0000 (GMT)
Received: by mail-pg1-f199.google.com with SMTP id
 41be03b00d2f7-c6e7f45e2ddso6672916a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 04:09:22 -0700 (PDT)
Received: from hu-vjitta-hyd.qualcomm.com ([202.46.23.25])
 by smtp.gmail.com with ESMTPSA id
 d2e1a72fcca58-82b040da7besm14615911b3a.49.2026.03.25.04.09.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 25 Mar 2026 04:09:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=qcppdkim1 header.d=qualcomm.com header.i="@qualcomm.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-Id:MIME-Version:References:Subject:To"; dkim=pass header.s=google header.d=oss.qualcomm.com header.i="@oss.qualcomm.com" header.h="Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding:MIME-Version:Subject:Date:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	QkYW84mNfsxJu25KdM9HhqHWqHHn7yyj15gOr+bOnfo=; b=kFqzj8ElIg4IuUQA
	JtxyVvgWvrtUWK8UNBmZVtjJApYGTenxxBQgJ0oPJ7sp+G8b/j4YyyyAgZstMG+u
	719uyWG6fu3MSf2pPlWQS5i7zQ3C7Ys8iuG/ap3oO9+1JHp2wkaES3doFUvH8YSN
	y118pR8e8AXGOdcrZfSQr3XytZcYlbXcIET0Iq7uMpAdmu7Ni+vUzN99E+c6L0DG
	OXmsh2UT7ERAZx6m6vnofE2XeKjbHwtaXbNpwo7zGlecCx/4rFxu3hcOtv8WErmu
	ZtEa3+1F9ihioadsQKPDjQUDGKI4SmiCtssnkJXhKhvfOmp2KCx5Sgzy6Op2XN9w
	xSOvtQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1774436961; x=1775041761; darn=lists.xenproject.org;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:from:to:cc:subject:date:message-id
         :reply-to;
        bh=QkYW84mNfsxJu25KdM9HhqHWqHHn7yyj15gOr+bOnfo=;
        b=NCgdTEJgeFtUR4iwqenhtLREE40/NB9Ggkb75iqDSJYvdmVZSuDLpSrYI7lVkMbu0W
         O+dG+wjuXFT9sPVkOLehBo7sazW1iiuOCctcm8ohRzVAPqqIRB/eaun+XJsVo8CPraEQ
         L9JSh+9V073hMCRrHIy1/Fybr9g8YuRneAXTs7gyghAtkyizu83koq8X4VSpb4nO92hI
         BhRRevfhDrvKx3F2J7JFEtwsiTf2Na7K5bIpQKqSQ/qd2kyvDCJaZPFORBloB8C5rCQg
         RhRICA8TmX4OMoF998MiIYXWRAeupZYLsTEK1KdiZxqi/CKoCgSsmCNBK05ygdFgvdq6
         vTDw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774436961; x=1775041761;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=QkYW84mNfsxJu25KdM9HhqHWqHHn7yyj15gOr+bOnfo=;
        b=CR/adKgNx9j8t7j2FWdSfJHMtYf5ZR9LRAeupTd8PD3OYgERqqcDJQhTAZY/0tLz8j
         GL+OsOR8jbysMF/1Rk7eZovnOOON4DiFKipCs72TRkxxzS6M8WY2WawCVSDCFE9m3swl
         brvF6RVS83AGFNEsfB9wtc/M8+FOyjsqyrhfRwN9ePGip5uB6zQ5LpL/Li2UjTQ1WSAa
         bOF6Ze+VzNKUmGOImyPGN336XnEw8cMscnwlkhQQ2tNqIA7ssjQbsaZfgQvwnb50qlez
         26FQ74UF81sOKPmXZaaaaB6Lp8OusNmpHsR/D5acsE2HK4Y+EYiiMb79kqHOOb1jAKET
         W9Hg==
X-Forwarded-Encrypted: i=1; AJvYcCV1eWQqa6kyICWSiWPjo8dAXSrEHGIU8yIj0VMYrnrzqxOAJMu+d+cL9kI7P1lRY+Ka8pTIi2fYPoA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YySCBpz22WGwFZ/rJauIWqJl2lOwKig1qlZpod98Fw6eHtV+daG
	qvwgkmIkAiIMPwqoQNjQATQCV6Lp0eXCPSQ3CjV2mBczNGaOjEiz0xIq0K0nLa/6rHV6G5hkPc2
	Me7Mhf9Gn6skldZcvGGTFEFg1NwyZpL5UbWIk2OtFhPowRFcPAqr3EXss6d5ctMGyzcTTJQ==
X-Gm-Gg: ATEYQzx+LgWYqmOUDc9XtevJnsLG1eSG00bkVETb1je8J6lElZBtN+sshAV+6W1nEW+
	8Nd2UBgm4KzcPZd+aGUQyO/lnlQwZQQGDfAJDiM5i4ovJ7wFya9cKULAIYWxk6nBfw2tSXz6ytB
	paPpvk5yefHiKPsSGzvnKSlhHQFn7727pST+1NWGPOql0X/OzwtXzZ9D3rMIyKPPzL1b30rkPuS
	NJRgKOL61Ww3fYPeOUUGaFBWSr8sHqAzmZV0MMYp6I3V4vIlc9XJz9SWWjnfLo8yNxN6eTvxOr3
	LQxW8sdhlOdqVyExcHiK8/QwskA4XIipoD62mY8Z/L565vqPsMTcLFeaFbFSbCgLPko7JsCsmY9
	g/YZVnMKcfG3chAhtcBfPC9cFXymXidPnhqOmIjGJ7KQV+bmiy/zjw23c
X-Received: by 2002:a05:6a00:a88e:b0:829:924c:3482 with SMTP id d2e1a72fcca58-82c6e0c86f9mr3070696b3a.53.1774436961036;
        Wed, 25 Mar 2026 04:09:21 -0700 (PDT)
X-Received: by 2002:a05:6a00:a88e:b0:829:924c:3482 with SMTP id d2e1a72fcca58-82c6e0c86f9mr3070656b3a.53.1774436960441;
        Wed, 25 Mar 2026 04:09:20 -0700 (PDT)
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Date: Wed, 25 Mar 2026 16:38:22 +0530
Subject: [PATCH v11 1/3] of: Add convenience wrappers for of_map_id()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260325-parse_iommu_cells-v11-1-1fefa5c0e82c@oss.qualcomm.com>
References: <20260325-parse_iommu_cells-v11-0-1fefa5c0e82c@oss.qualcomm.com>
In-Reply-To: <20260325-parse_iommu_cells-v11-0-1fefa5c0e82c@oss.qualcomm.com>
To: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
X-Mailer: b4 0.12.3
X-Developer-Signature: v=1; a=ed25519-sha256; t=1774436938; l=8620;
 i=vijayanand.jitta@oss.qualcomm.com; s=20260301; h=from:subject:message-id;
 bh=Bsp9hT6sgzNh1NrIZ0uduUy4Yj5U0gq9szC+ECoPqVA=;
 b=XTgGqalcyL/WLhRInaGtXLu5D/HUpXAmnrAFKW3XHxKkbT0f80fJnPG6NgpusUQ/1o+/QleBf
 abe0ppIcpOUDCujoSS9v/HAMK3rslqgr+MXWDyY7MfIW3OAe1ZlOh+0
X-Developer-Key: i=vijayanand.jitta@oss.qualcomm.com; a=ed25519;
 pk=Lpi7Cs3wHe8KZtqvyci7FTOLzsKpEHKGCaPNZw+1zRI=
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI1MDA3OSBTYWx0ZWRfX1mp069spV+Nb
 /iYhyFfA+/MBoaT60Zh0nnSYypdlJgJYLfk+O9YANTuFGdY//UVfUhcsAg8KJG7VrM5MvwsHU/4
 iHEzfGaPBu7PXT9GkQSgUdIXQuq/Actp12mi+EEeBCaHR9BWkhWPWIH8MYatdCwNjIqcCP78Epe
 scNAGbqFiutNCfjwHEljygcB644OrwA8v1NEMpKibMzETqEmZPscGFJmRUXCOTU+KfKns3HihLt
 RRr8DICBf8qznS2sCfDp/IA0HBxshnoIRLpGiGOA86UE4VXPXVMNH5XM84L0ZamrJ2Eh2AfUVXC
 aKSa6hSCXNQLFk9U4uLyTwQjByb6Ck3uTTSqb0MROcFsCOKyU17uazrnQ0Z3nP9xmjDiWhaQlei
 skywcpIhFCgL+pyWMmfB4DdvHFS/QM19IdY9foUkTJhZD59g4GaiZC4HVm0Ci57qYqvqZ9u7wIC
 Sk7k0Fp8eoFbkDjLVow==
X-Proofpoint-ORIG-GUID: 52-XfcBav_FGZzwEughk57xXpvBtOJO1
X-Authority-Analysis: v=2.4 cv=Cd8FJbrl c=1 sm=1 tr=0 ts=69c3c262 cx=c_pps
 a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22
 a=7CQSdrXTAAAA:8 a=VwQbUJbxAAAA:8 a=8AirrxEcAAAA:8 a=1XWaLZrsAAAA:8
 a=EUspDBNiAAAA:8 a=f4O9XJQV64orvU1ydW8A:9 a=QEXdDO2ut3YA:10
 a=_Vgx9l1VpLgwpw_dHYaR:22 a=a-qgeE7W1pNrGK8U0ZQC:22 a=ST-jHhOKWsTCqRlWije3:22
X-Proofpoint-GUID: 52-XfcBav_FGZzwEughk57xXpvBtOJO1
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-25_03,2026-03-24_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 impostorscore=0 spamscore=0 bulkscore=0 priorityscore=1501 clxscore=1015
 malwarescore=0 suspectscore=0 phishscore=0 lowpriorityscore=0 adultscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603250079
X-purgate-ID: tlsNG-d62444/1774436964-22CE3DF3-5C4ADBA8/0/0
X-purgate-type: clean
X-purgate-size: 8667

From: Robin Murphy <robin.murphy@arm.com>

Since we now have quite a few users parsing "iommu-map" and "msi-map"
properties, give them some wrappers to conveniently encapsulate the
appropriate sets of property names. This will also make it easier to
then change of_map_id() to correctly account for specifier cells.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Acked-by: Marc Zyngier <maz@kernel.org>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
---
 drivers/cdx/cdx_msi.c                    |  3 +--
 drivers/iommu/of_iommu.c                 |  4 +---
 drivers/irqchip/irq-gic-its-msi-parent.c |  2 +-
 drivers/of/base.c                        | 38 ++++++++++++++++++++++++++++++++
 drivers/of/irq.c                         |  3 +--
 drivers/pci/controller/dwc/pci-imx6.c    |  6 ++---
 drivers/pci/controller/pcie-apple.c      |  3 +--
 drivers/xen/grant-dma-ops.c              |  3 +--
 include/linux/of.h                       | 18 +++++++++++++++
 9 files changed, 64 insertions(+), 16 deletions(-)

diff --git a/drivers/cdx/cdx_msi.c b/drivers/cdx/cdx_msi.c
index 91b95422b263..63b3544ec997 100644
--- a/drivers/cdx/cdx_msi.c
+++ b/drivers/cdx/cdx_msi.c
@@ -128,8 +128,7 @@ static int cdx_msi_prepare(struct irq_domain *msi_domain,
 	int ret;
 
 	/* Retrieve device ID from requestor ID using parent device */
-	ret = of_map_id(parent->of_node, cdx_dev->msi_dev_id, "msi-map", "msi-map-mask",
-			NULL, &dev_id);
+	ret = of_map_msi_id(parent->of_node, cdx_dev->msi_dev_id, NULL, &dev_id);
 	if (ret) {
 		dev_err(dev, "of_map_id failed for MSI: %d\n", ret);
 		return ret;
diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
index 6b989a62def2..a511ecf21fcd 100644
--- a/drivers/iommu/of_iommu.c
+++ b/drivers/iommu/of_iommu.c
@@ -48,9 +48,7 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
 	struct of_phandle_args iommu_spec = { .args_count = 1 };
 	int err;
 
-	err = of_map_id(master_np, *id, "iommu-map",
-			 "iommu-map-mask", &iommu_spec.np,
-			 iommu_spec.args);
+	err = of_map_iommu_id(master_np, *id, &iommu_spec.np, iommu_spec.args);
 	if (err)
 		return err;
 
diff --git a/drivers/irqchip/irq-gic-its-msi-parent.c b/drivers/irqchip/irq-gic-its-msi-parent.c
index d36b278ae66c..b63343a227a9 100644
--- a/drivers/irqchip/irq-gic-its-msi-parent.c
+++ b/drivers/irqchip/irq-gic-its-msi-parent.c
@@ -180,7 +180,7 @@ static int of_pmsi_get_msi_info(struct irq_domain *domain, struct device *dev, u
 
 	struct device_node *msi_ctrl __free(device_node) = NULL;
 
-	return of_map_id(dev->of_node, dev->id, "msi-map", "msi-map-mask", &msi_ctrl, dev_id);
+	return of_map_msi_id(dev->of_node, dev->id, &msi_ctrl, dev_id);
 }
 
 static int its_pmsi_prepare(struct irq_domain *domain, struct device *dev,
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 57420806c1a2..ae04487bd614 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -2201,3 +2201,41 @@ int of_map_id(const struct device_node *np, u32 id,
 	return 0;
 }
 EXPORT_SYMBOL_GPL(of_map_id);
+
+/**
+ * of_map_iommu_id - Translate an ID using "iommu-map" bindings.
+ * @np: root complex device node.
+ * @id: Requester ID of the device (e.g. PCI RID/BDF or a platform
+ *      stream/device ID) used as the lookup key in the iommu-map table.
+ * @target: optional pointer to a target device node.
+ * @id_out: optional pointer to receive the translated ID.
+ *
+ * Convenience wrapper around of_map_id() using "iommu-map" and "iommu-map-mask".
+ *
+ * Return: 0 on success or a standard error code on failure.
+ */
+int of_map_iommu_id(const struct device_node *np, u32 id,
+		    struct device_node **target, u32 *id_out)
+{
+	return of_map_id(np, id, "iommu-map", "iommu-map-mask", target, id_out);
+}
+EXPORT_SYMBOL_GPL(of_map_iommu_id);
+
+/**
+ * of_map_msi_id - Translate an ID using "msi-map" bindings.
+ * @np: root complex device node.
+ * @id: Requester ID of the device (e.g. PCI RID/BDF or a platform
+ *      stream/device ID) used as the lookup key in the msi-map table.
+ * @target: optional pointer to a target device node.
+ * @id_out: optional pointer to receive the translated ID.
+ *
+ * Convenience wrapper around of_map_id() using "msi-map" and "msi-map-mask".
+ *
+ * Return: 0 on success or a standard error code on failure.
+ */
+int of_map_msi_id(const struct device_node *np, u32 id,
+		  struct device_node **target, u32 *id_out)
+{
+	return of_map_id(np, id, "msi-map", "msi-map-mask", target, id_out);
+}
+EXPORT_SYMBOL_GPL(of_map_msi_id);
diff --git a/drivers/of/irq.c b/drivers/of/irq.c
index 6367c67732d2..e37c1b3f8736 100644
--- a/drivers/of/irq.c
+++ b/drivers/of/irq.c
@@ -817,8 +817,7 @@ u32 of_msi_xlate(struct device *dev, struct device_node **msi_np, u32 id_in)
 	 * "msi-map" or an "msi-parent" property.
 	 */
 	for (parent_dev = dev; parent_dev; parent_dev = parent_dev->parent) {
-		if (!of_map_id(parent_dev->of_node, id_in, "msi-map",
-				"msi-map-mask", msi_np, &id_out))
+		if (!of_map_msi_id(parent_dev->of_node, id_in, msi_np, &id_out))
 			break;
 		if (!of_check_msi_parent(parent_dev->of_node, msi_np))
 			break;
diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
index a5b8d0b71677..bff8289f804a 100644
--- a/drivers/pci/controller/dwc/pci-imx6.c
+++ b/drivers/pci/controller/dwc/pci-imx6.c
@@ -1144,8 +1144,7 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
 	u32 sid = 0;
 
 	target = NULL;
-	err_i = of_map_id(dev->of_node, rid, "iommu-map", "iommu-map-mask",
-			  &target, &sid_i);
+	err_i = of_map_iommu_id(dev->of_node, rid, &target, &sid_i);
 	if (target) {
 		of_node_put(target);
 	} else {
@@ -1158,8 +1157,7 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
 	}
 
 	target = NULL;
-	err_m = of_map_id(dev->of_node, rid, "msi-map", "msi-map-mask",
-			  &target, &sid_m);
+	err_m = of_map_msi_id(dev->of_node, rid, &target, &sid_m);
 
 	/*
 	 *   err_m      target
diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
index 2d92fc79f6dd..a0937b7b3c4d 100644
--- a/drivers/pci/controller/pcie-apple.c
+++ b/drivers/pci/controller/pcie-apple.c
@@ -764,8 +764,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
 	dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
 		pci_name(pdev->bus->self), port->idx);
 
-	err = of_map_id(port->pcie->dev->of_node, rid, "iommu-map",
-			"iommu-map-mask", NULL, &sid);
+	err = of_map_iommu_id(port->pcie->dev->of_node, rid, NULL, &sid);
 	if (err)
 		return err;
 
diff --git a/drivers/xen/grant-dma-ops.c b/drivers/xen/grant-dma-ops.c
index c2603e700178..1b7696b2d762 100644
--- a/drivers/xen/grant-dma-ops.c
+++ b/drivers/xen/grant-dma-ops.c
@@ -325,8 +325,7 @@ static int xen_dt_grant_init_backend_domid(struct device *dev,
 		struct pci_dev *pdev = to_pci_dev(dev);
 		u32 rid = PCI_DEVID(pdev->bus->number, pdev->devfn);
 
-		if (of_map_id(np, rid, "iommu-map", "iommu-map-mask", &iommu_spec.np,
-				iommu_spec.args)) {
+		if (of_map_iommu_id(np, rid, &iommu_spec.np, iommu_spec.args)) {
 			dev_dbg(dev, "Cannot translate ID\n");
 			return -ESRCH;
 		}
diff --git a/include/linux/of.h b/include/linux/of.h
index be6ec4916adf..fe841f3cc747 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -465,6 +465,12 @@ int of_map_id(const struct device_node *np, u32 id,
 	       const char *map_name, const char *map_mask_name,
 	       struct device_node **target, u32 *id_out);
 
+int of_map_iommu_id(const struct device_node *np, u32 id,
+		    struct device_node **target, u32 *id_out);
+
+int of_map_msi_id(const struct device_node *np, u32 id,
+		  struct device_node **target, u32 *id_out);
+
 phys_addr_t of_dma_get_max_cpu_address(struct device_node *np);
 
 struct kimage;
@@ -934,6 +940,18 @@ static inline int of_map_id(const struct device_node *np, u32 id,
 	return -EINVAL;
 }
 
+static inline int of_map_iommu_id(const struct device_node *np, u32 id,
+				  struct device_node **target, u32 *id_out)
+{
+	return -EINVAL;
+}
+
+static inline int of_map_msi_id(const struct device_node *np, u32 id,
+				struct device_node **target, u32 *id_out)
+{
+	return -EINVAL;
+}
+
 static inline phys_addr_t of_dma_get_max_cpu_address(struct device_node *np)
 {
 	return PHYS_ADDR_MAX;

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 11:09:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 11:09:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262020.1554727 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5M7F-0004u3-Lg; Wed, 25 Mar 2026 11:09:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262020.1554727; Wed, 25 Mar 2026 11:09:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5M7F-0004tw-Hb; Wed, 25 Mar 2026 11:09:37 +0000
Received: by outflank-mailman (input) for mailman id 1262020;
 Wed, 25 Mar 2026 11:09:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 1w5M7E-0004rV-1u
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 11:09:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5M7D-00DuO1-EA
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 12:09:35 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 69c3c25d-e002-0a2a0a5209dd-0a2a4508916c-44
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 12:09:35 +0100
Received: from [205.220.180.131] (helo=mx0b-0031df01.pphosted.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 69c3c26d-1950-0a2a45080019-cddcb4839690-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 12:09:35 +0100
Received: from pps.filterd (m0279873.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62P5P9YA1862769
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:09:33 GMT
Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com
 [209.85.210.198])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d40ratu5f-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:09:33 +0000 (GMT)
Received: by mail-pf1-f198.google.com with SMTP id
 d2e1a72fcca58-82a84f21bf2so19974578b3a.0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 04:09:33 -0700 (PDT)
Received: from hu-vjitta-hyd.qualcomm.com ([202.46.23.25])
 by smtp.gmail.com with ESMTPSA id
 d2e1a72fcca58-82b040da7besm14615911b3a.49.2026.03.25.04.09.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 25 Mar 2026 04:09:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=qcppdkim1 header.d=qualcomm.com header.i="@qualcomm.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-Id:MIME-Version:References:Subject:To"; dkim=pass header.s=google header.d=oss.qualcomm.com header.i="@oss.qualcomm.com" header.h="Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding:MIME-Version:Subject:Date:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	lgE7Zsp3SLiKEODF/sUpup/AAiqq/KxN2EHDiN7r6NY=; b=ElBL7M58XLrUhGkH
	hc/3bNYY22usBRcqSpIiXXXfiQ/1JbJkaSSDb22QEvJGB1w2HZLUW8BCavwgToTW
	7iA9b3n1jWAQbCJILAMozSjaMMmc7C+WYfHJp+VzHSpfTqAf2E0q1w9MeMiP/vyM
	BGgnfelVK1SoVvlfx97PpcLNU7niq+b/ZTJ+sCX0aKtXma1XQRZOC5+3AHWUIoA6
	KGRBjvM+V7CPnExeVIqaM1551EcRcHGwi42+0l4KD6/5VcYhP3IEExMdDFcwnm9J
	WGDrl6/lbJ2KnS2ClRIDs3zttRvyg0mxstze7zvwGQuK4vS6Uax+8jy0iPCFo6B0
	H77FOQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1774436972; x=1775041772; darn=lists.xenproject.org;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:from:to:cc:subject:date:message-id
         :reply-to;
        bh=lgE7Zsp3SLiKEODF/sUpup/AAiqq/KxN2EHDiN7r6NY=;
        b=dUCNY4vNTDc9cMDZ0UhHY1ntuK73OKOEyA8nOSj2+2TGQDpOWf9Pm/qw3/4XY2x6Jd
         N+kkfy+6zK+MmJCfbvL5judcOzOHk6Kc3JCdjFm8RYjdG52B4yUbN357mzJr7afCGJR9
         1QZerjPlYuDkx5EAAU9c/BFltORI3stKG+BpVTvzQ2CRgNJmsD04jeRr3x2nkZ4nHhvd
         w/EACpnizPWPAZPbQwb2rgNN+zmgFwHKoScxoU6qsxGFm+V0z3+jn8gndTjJVZW6nNQh
         sfkqExTQtjFpr/n4c1SFzcSNZB+1mqEk1B4Wu3YiMuRfCgN0D3dn1mnxsMC2dSVEuyxu
         FTdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774436972; x=1775041772;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=lgE7Zsp3SLiKEODF/sUpup/AAiqq/KxN2EHDiN7r6NY=;
        b=HTt/AlFPY13UpE6rkLCpRttSibEn9mTOvuFQXH5UGIcutPUiNMs5NUkRrtgNzE2Aez
         pLyKD78twik57pfdNsgtZ691q6XV829/trCW/BjxfNLetHQ2gulQloEDxBrNfl67f0cU
         hbpqxSkge/NZVg4/9b1sWaSjTSHS5o2cIo2ksBfYyHp+bgoAUAaOBoSxekyC5ae2gxdk
         vHwWtAovdpEsMDn2dEVYrTKbEadmFfwkEdHG/bntga9xyGBbVQMkBEnCAR+SD23+Xg2u
         lAcVJEVV9c2IIG516AcIkwGbPcuVnMcgIg2NPajywndKTabf4M5fMIo6zJGHZsEtteqD
         dUuw==
X-Forwarded-Encrypted: i=1; AJvYcCXfLjUoqDvTihZLBRQTh8qXvOIVllMWqs9rOwNiC/ai9hHR1nen36o/nJXiODWISZYLvJBEI1Bj0+w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwTlpbxLX6t36Y5vNB/85Sw9lo/hi759iIAENOxsYjkdQchKtQg
	5YGP5W1cLwFJGHo7dIpW5UNsvd62aHRsDqBUG3YNXso7MLE3AYAOmoe4631AZIEZwUc3qoUuvzl
	8C3PkOFTnrfmY7mZzbLNlsK3oYgU5Hi+xWKCs6KZEujBNIbbmSO6x3lAiYiNibjaoVWFYUg==
X-Gm-Gg: ATEYQzzCPGfaiANmBkv/SUhX7et+x92+T1kvlckABPZ60B8dwJfucRo4cMR63BpTq/5
	mp9wXAZyaAqfdeORhQ2BQ91fHVg6H92QfO6DJMvu79UYUuc/gqWbD2/ZE5hm889pjDB7vnuaqJj
	0+mE64fSLuStLCF1T1y0spJKsGsGFp74iSNj0tAGRwBcUEMlsetgg5CUB8uxUYeqlxVFs+elLDy
	inu4Qchr1/PoCtjgRJ873wh5cNzx25lFy8DGT0H1/9ME0VOdhTs5HZo3Z7WgTkpBhU+GVJTM1rU
	hdhR4KhAXMxqBlDvobm5NC1Z+OpqdW3+isDxTJI6lpxxNE6YdNQ9j5sc9663tT7z1ZdqrnbYZ6A
	lOqQOf7O2K6dzXZD/BO9omlYxrfGHN+XvvkzbXVlaQ4TGeAFnprG172W0
X-Received: by 2002:a05:6a00:10cf:b0:829:9c5d:4342 with SMTP id d2e1a72fcca58-82c6e15d271mr2811202b3a.54.1774436972209;
        Wed, 25 Mar 2026 04:09:32 -0700 (PDT)
X-Received: by 2002:a05:6a00:10cf:b0:829:9c5d:4342 with SMTP id d2e1a72fcca58-82c6e15d271mr2811177b3a.54.1774436971553;
        Wed, 25 Mar 2026 04:09:31 -0700 (PDT)
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Date: Wed, 25 Mar 2026 16:38:23 +0530
Subject: [PATCH v11 2/3] of: Factor arguments passed to of_map_id() into a
 struct
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260325-parse_iommu_cells-v11-2-1fefa5c0e82c@oss.qualcomm.com>
References: <20260325-parse_iommu_cells-v11-0-1fefa5c0e82c@oss.qualcomm.com>
In-Reply-To: <20260325-parse_iommu_cells-v11-0-1fefa5c0e82c@oss.qualcomm.com>
To: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
X-Mailer: b4 0.12.3
X-Developer-Signature: v=1; a=ed25519-sha256; t=1774436939; l=16000;
 i=vijayanand.jitta@oss.qualcomm.com; s=20260301; h=from:subject:message-id;
 bh=gxyh8n3UqUiPA5dAPelXlk+6i5RBUb4GI89qh+AaKkQ=;
 b=cmC+TnDCTT7br0djfe9TJoPc8+8f1hTHJV9CIDTZRNBzWhCXkwhBe4lpX9dunABLkIBgsSpny
 Cd2K8mf9v2aDmz80oQoKSUpbWQg3qYP/LgX0C1TVvUKvw6nxE063Mxx
X-Developer-Key: i=vijayanand.jitta@oss.qualcomm.com; a=ed25519;
 pk=Lpi7Cs3wHe8KZtqvyci7FTOLzsKpEHKGCaPNZw+1zRI=
X-Authority-Analysis: v=2.4 cv=Jvr8bc4C c=1 sm=1 tr=0 ts=69c3c26d cx=c_pps
 a=m5Vt/hrsBiPMCU0y4gIsQw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22
 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=bNhV2RZpjyF2osP7l7QA:9 a=QEXdDO2ut3YA:10
 a=IoOABgeZipijB_acs4fv:22
X-Proofpoint-ORIG-GUID: HBCwXSL5tS6OLDnuhjXqjcMTs4_OolqG
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI1MDA3OSBTYWx0ZWRfX0yg67HvtSvle
 t9oAjsG5UC3/SgS2vGRng7zjq3sSg0VspMH+Q3VfzQxolF3iAtqBiZjMJtvkrZGLtuC5ec6FfXz
 ZRoNMUfe88GbtV09vpDBKs6mL+akkTOBHF/bIYRVgU6c/CmpZsQUV6ZvFQrlcHjTt0KDJsSdthh
 ThZsFTzM3J0RgTf2sAigYVCyQ0yje8uy98a2XeErxHgAejAAU7BAHKN1wiL4OKBAk0Wv/gQT1oL
 OKLKORswcs7R0UoccyHock9p6eMZPlYnyIDw5WsWL24nBcNmgHV4eG8waUu0JNb+bSEF1WcrJ94
 HiKKwCLl4/7Fxl7IH9YWzGlyvykkWYG7jYRYA7Nk5BTBErtcEuZBBXRoWmKvXApMNWzDo3Vmjea
 4eY0cu9mZIZVH41GPYq0tmdsPKKHQQeR2kfDNNZzifDd7k4aBwWVM4j7Rms4bDnoXzJQ8AW1VpF
 hd0QR5p3FlaSSgj5ZNQ==
X-Proofpoint-GUID: HBCwXSL5tS6OLDnuhjXqjcMTs4_OolqG
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-25_03,2026-03-24_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 lowpriorityscore=0 adultscore=0 impostorscore=0 suspectscore=0 phishscore=0
 priorityscore=1501 spamscore=0 clxscore=1015 bulkscore=0 malwarescore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603250079
X-purgate-ID: tlsNG-c1860d/1774436975-F0C1A726-3478DB4E/0/0
X-purgate-type: clean
X-purgate-size: 16061

From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>

Change of_map_id() to take a pointer to struct of_phandle_args
instead of passing target device node and translated IDs separately.
Update all callers accordingly.

Add an explicit filter_np parameter to of_map_id() and of_map_msi_id()
to separate the filter input from the output. Previously, the target
parameter served dual purpose: as an input filter (if non-NULL, only
match entries targeting that node) and as an output (receiving the
matched node with a reference held). Now filter_np is the explicit
input filter and arg->np is the pure output.

Previously, of_map_id() would call of_node_put() on the matched node
when a filter was provided, making reference ownership inconsistent.
Remove this internal of_node_put() call so that of_map_id() now always
transfers ownership of the matched node reference to the caller via
arg->np. Callers are now consistently responsible for releasing this
reference with of_node_put(arg->np) when done.

Suggested-by: Rob Herring (Arm) <robh@kernel.org>
Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
---
 drivers/cdx/cdx_msi.c                    |  7 ++--
 drivers/iommu/of_iommu.c                 |  4 +-
 drivers/irqchip/irq-gic-its-msi-parent.c | 11 ++++--
 drivers/of/base.c                        | 68 +++++++++++++++++---------------
 drivers/of/irq.c                         | 10 ++++-
 drivers/pci/controller/dwc/pci-imx6.c    | 16 ++++++--
 drivers/pci/controller/pcie-apple.c      |  5 ++-
 drivers/xen/grant-dma-ops.c              |  4 +-
 include/linux/of.h                       | 14 ++++---
 9 files changed, 86 insertions(+), 53 deletions(-)

diff --git a/drivers/cdx/cdx_msi.c b/drivers/cdx/cdx_msi.c
index 63b3544ec997..6924e07c7528 100644
--- a/drivers/cdx/cdx_msi.c
+++ b/drivers/cdx/cdx_msi.c
@@ -121,22 +121,23 @@ static int cdx_msi_prepare(struct irq_domain *msi_domain,
 			   struct device *dev,
 			   int nvec, msi_alloc_info_t *info)
 {
+	struct of_phandle_args msi_spec = {};
 	struct cdx_device *cdx_dev = to_cdx_device(dev);
 	struct device *parent = cdx_dev->cdx->dev;
 	struct msi_domain_info *msi_info;
-	u32 dev_id;
 	int ret;
 
 	/* Retrieve device ID from requestor ID using parent device */
-	ret = of_map_msi_id(parent->of_node, cdx_dev->msi_dev_id, NULL, &dev_id);
+	ret = of_map_msi_id(parent->of_node, cdx_dev->msi_dev_id, NULL, &msi_spec);
 	if (ret) {
 		dev_err(dev, "of_map_id failed for MSI: %d\n", ret);
 		return ret;
 	}
+	of_node_put(msi_spec.np);
 
 #ifdef GENERIC_MSI_DOMAIN_OPS
 	/* Set the device Id to be passed to the GIC-ITS */
-	info->scratchpad[0].ul = dev_id;
+	info->scratchpad[0].ul = msi_spec.args[0];
 #endif
 
 	msi_info = msi_get_domain_info(msi_domain->parent);
diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
index a511ecf21fcd..a18bb60f6f3d 100644
--- a/drivers/iommu/of_iommu.c
+++ b/drivers/iommu/of_iommu.c
@@ -45,10 +45,10 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
 				     struct device *dev,
 				     const u32 *id)
 {
-	struct of_phandle_args iommu_spec = { .args_count = 1 };
+	struct of_phandle_args iommu_spec = {};
 	int err;
 
-	err = of_map_iommu_id(master_np, *id, &iommu_spec.np, iommu_spec.args);
+	err = of_map_iommu_id(master_np, *id, &iommu_spec);
 	if (err)
 		return err;
 
diff --git a/drivers/irqchip/irq-gic-its-msi-parent.c b/drivers/irqchip/irq-gic-its-msi-parent.c
index b63343a227a9..dd5f84b6470a 100644
--- a/drivers/irqchip/irq-gic-its-msi-parent.c
+++ b/drivers/irqchip/irq-gic-its-msi-parent.c
@@ -152,6 +152,8 @@ static int its_v5_pci_msi_prepare(struct irq_domain *domain, struct device *dev,
 static int of_pmsi_get_msi_info(struct irq_domain *domain, struct device *dev, u32 *dev_id,
 				phys_addr_t *pa)
 {
+	struct device_node *msi_ctrl __free(device_node) = NULL;
+	struct of_phandle_args msi_spec = {};
 	struct of_phandle_iterator it;
 	int ret;
 
@@ -178,9 +180,12 @@ static int of_pmsi_get_msi_info(struct irq_domain *domain, struct device *dev, u
 		}
 	}
 
-	struct device_node *msi_ctrl __free(device_node) = NULL;
-
-	return of_map_msi_id(dev->of_node, dev->id, &msi_ctrl, dev_id);
+	ret = of_map_msi_id(dev->of_node, dev->id, NULL, &msi_spec);
+	if (!ret) {
+		msi_ctrl = msi_spec.np;
+		*dev_id = msi_spec.args[0];
+	}
+	return ret;
 }
 
 static int its_pmsi_prepare(struct irq_domain *domain, struct device *dev,
diff --git a/drivers/of/base.c b/drivers/of/base.c
index ae04487bd614..b3d002015192 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -2102,36 +2102,37 @@ int of_find_last_cache_level(unsigned int cpu)
  * @id: device ID to map.
  * @map_name: property name of the map to use.
  * @map_mask_name: optional property name of the mask to use.
- * @target: optional pointer to a target device node.
- * @id_out: optional pointer to receive the translated ID.
+ * @filter_np: optional device node to filter matches by, or NULL to match any.
+ *	If non-NULL, only map entries targeting this node will be matched.
+ * @arg: pointer to a &struct of_phandle_args for the result. On success,
+ *	@arg->args[0] will contain the translated ID. If a map entry was
+ *	matched, @arg->np will be set to the target node with a reference
+ *	held that the caller must release with of_node_put().
  *
  * Given a device ID, look up the appropriate implementation-defined
  * platform ID and/or the target device which receives transactions on that
- * ID, as per the "iommu-map" and "msi-map" bindings. Either of @target or
- * @id_out may be NULL if only the other is required. If @target points to
- * a non-NULL device node pointer, only entries targeting that node will be
- * matched; if it points to a NULL value, it will receive the device node of
- * the first matching target phandle, with a reference held.
+ * ID, as per the "iommu-map" and "msi-map" bindings.
  *
  * Return: 0 on success or a standard error code on failure.
  */
 int of_map_id(const struct device_node *np, u32 id,
 	       const char *map_name, const char *map_mask_name,
-	       struct device_node **target, u32 *id_out)
+	       const struct device_node *filter_np, struct of_phandle_args *arg)
 {
 	u32 map_mask, masked_id;
 	int map_len;
 	const __be32 *map = NULL;
 
-	if (!np || !map_name || (!target && !id_out))
+	if (!np || !map_name || !arg)
 		return -EINVAL;
 
 	map = of_get_property(np, map_name, &map_len);
 	if (!map) {
-		if (target)
+		if (filter_np)
 			return -ENODEV;
 		/* Otherwise, no map implies no translation */
-		*id_out = id;
+		arg->args[0] = id;
+		arg->args_count = 1;
 		return 0;
 	}
 
@@ -2173,18 +2174,14 @@ int of_map_id(const struct device_node *np, u32 id,
 		if (!phandle_node)
 			return -ENODEV;
 
-		if (target) {
-			if (*target)
-				of_node_put(phandle_node);
-			else
-				*target = phandle_node;
-
-			if (*target != phandle_node)
-				continue;
+		if (filter_np && filter_np != phandle_node) {
+			of_node_put(phandle_node);
+			continue;
 		}
 
-		if (id_out)
-			*id_out = masked_id - id_base + out_base;
+		arg->np = phandle_node;
+		arg->args[0] = masked_id - id_base + out_base;
+		arg->args_count = 1;
 
 		pr_debug("%pOF: %s, using mask %08x, id-base: %08x, out-base: %08x, length: %08x, id: %08x -> %08x\n",
 			np, map_name, map_mask, id_base, out_base,
@@ -2193,11 +2190,11 @@ int of_map_id(const struct device_node *np, u32 id,
 	}
 
 	pr_info("%pOF: no %s translation for id 0x%x on %pOF\n", np, map_name,
-		id, target && *target ? *target : NULL);
+		id, filter_np);
 
 	/* Bypasses translation */
-	if (id_out)
-		*id_out = id;
+	arg->args[0] = id;
+	arg->args_count = 1;
 	return 0;
 }
 EXPORT_SYMBOL_GPL(of_map_id);
@@ -2207,17 +2204,19 @@ EXPORT_SYMBOL_GPL(of_map_id);
  * @np: root complex device node.
  * @id: Requester ID of the device (e.g. PCI RID/BDF or a platform
  *      stream/device ID) used as the lookup key in the iommu-map table.
- * @target: optional pointer to a target device node.
- * @id_out: optional pointer to receive the translated ID.
+ * @arg: pointer to a &struct of_phandle_args for the result. On success,
+ *	@arg->args[0] contains the translated ID. If a map entry was matched,
+ *	@arg->np holds a reference to the target node that the caller must
+ *	release with of_node_put().
  *
  * Convenience wrapper around of_map_id() using "iommu-map" and "iommu-map-mask".
  *
  * Return: 0 on success or a standard error code on failure.
  */
 int of_map_iommu_id(const struct device_node *np, u32 id,
-		    struct device_node **target, u32 *id_out)
+		    struct of_phandle_args *arg)
 {
-	return of_map_id(np, id, "iommu-map", "iommu-map-mask", target, id_out);
+	return of_map_id(np, id, "iommu-map", "iommu-map-mask", NULL, arg);
 }
 EXPORT_SYMBOL_GPL(of_map_iommu_id);
 
@@ -2226,16 +2225,21 @@ EXPORT_SYMBOL_GPL(of_map_iommu_id);
  * @np: root complex device node.
  * @id: Requester ID of the device (e.g. PCI RID/BDF or a platform
  *      stream/device ID) used as the lookup key in the msi-map table.
- * @target: optional pointer to a target device node.
- * @id_out: optional pointer to receive the translated ID.
+ * @filter_np: optional MSI controller node to filter matches by, or NULL
+ *	to match any. If non-NULL, only map entries targeting this node will
+ *	be matched.
+ * @arg: pointer to a &struct of_phandle_args for the result. On success,
+ *	@arg->args[0] contains the translated ID. If a map entry was matched,
+ *	@arg->np holds a reference to the target node that the caller must
+ *	release with of_node_put().
  *
  * Convenience wrapper around of_map_id() using "msi-map" and "msi-map-mask".
  *
  * Return: 0 on success or a standard error code on failure.
  */
 int of_map_msi_id(const struct device_node *np, u32 id,
-		  struct device_node **target, u32 *id_out)
+		  const struct device_node *filter_np, struct of_phandle_args *arg)
 {
-	return of_map_id(np, id, "msi-map", "msi-map-mask", target, id_out);
+	return of_map_id(np, id, "msi-map", "msi-map-mask", filter_np, arg);
 }
 EXPORT_SYMBOL_GPL(of_map_msi_id);
diff --git a/drivers/of/irq.c b/drivers/of/irq.c
index e37c1b3f8736..f86a56bd81fc 100644
--- a/drivers/of/irq.c
+++ b/drivers/of/irq.c
@@ -817,8 +817,16 @@ u32 of_msi_xlate(struct device *dev, struct device_node **msi_np, u32 id_in)
 	 * "msi-map" or an "msi-parent" property.
 	 */
 	for (parent_dev = dev; parent_dev; parent_dev = parent_dev->parent) {
-		if (!of_map_msi_id(parent_dev->of_node, id_in, msi_np, &id_out))
+		struct of_phandle_args msi_spec = {};
+
+		if (!of_map_msi_id(parent_dev->of_node, id_in, *msi_np, &msi_spec)) {
+			id_out = msi_spec.args[0];
+			if (!*msi_np)
+				*msi_np = msi_spec.np;
+			else
+				of_node_put(msi_spec.np);
 			break;
+		}
 		if (!of_check_msi_parent(parent_dev->of_node, msi_np))
 			break;
 	}
diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
index bff8289f804a..cfd5eb8783b6 100644
--- a/drivers/pci/controller/dwc/pci-imx6.c
+++ b/drivers/pci/controller/dwc/pci-imx6.c
@@ -1137,6 +1137,8 @@ static void imx_pcie_remove_lut(struct imx_pcie *imx_pcie, u16 rid)
 
 static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
 {
+	struct of_phandle_args iommu_spec = {};
+	struct of_phandle_args msi_spec = {};
 	struct device *dev = imx_pcie->pci->dev;
 	struct device_node *target;
 	u32 sid_i, sid_m;
@@ -1144,7 +1146,12 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
 	u32 sid = 0;
 
 	target = NULL;
-	err_i = of_map_iommu_id(dev->of_node, rid, &target, &sid_i);
+	err_i = of_map_iommu_id(dev->of_node, rid, &iommu_spec);
+	if (!err_i) {
+		target = iommu_spec.np;
+		sid_i = iommu_spec.args[0];
+	}
+
 	if (target) {
 		of_node_put(target);
 	} else {
@@ -1156,8 +1163,11 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
 		err_i = -EINVAL;
 	}
 
-	target = NULL;
-	err_m = of_map_msi_id(dev->of_node, rid, &target, &sid_m);
+	err_m = of_map_msi_id(dev->of_node, rid, NULL, &msi_spec);
+	if (!err_m) {
+		target = msi_spec.np;
+		sid_m = msi_spec.args[0];
+	}
 
 	/*
 	 *   err_m      target
diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
index a0937b7b3c4d..c2cffc0659f4 100644
--- a/drivers/pci/controller/pcie-apple.c
+++ b/drivers/pci/controller/pcie-apple.c
@@ -755,6 +755,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
 {
 	u32 sid, rid = pci_dev_id(pdev);
 	struct apple_pcie_port *port;
+	struct of_phandle_args iommu_spec = {};
 	int idx, err;
 
 	port = apple_pcie_get_port(pdev);
@@ -764,10 +765,12 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
 	dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
 		pci_name(pdev->bus->self), port->idx);
 
-	err = of_map_iommu_id(port->pcie->dev->of_node, rid, NULL, &sid);
+	err = of_map_iommu_id(port->pcie->dev->of_node, rid, &iommu_spec);
 	if (err)
 		return err;
 
+	of_node_put(iommu_spec.np);
+	sid = iommu_spec.args[0];
 	mutex_lock(&port->pcie->lock);
 
 	idx = bitmap_find_free_region(port->sid_map, port->sid_map_sz, 0);
diff --git a/drivers/xen/grant-dma-ops.c b/drivers/xen/grant-dma-ops.c
index 1b7696b2d762..2aa1a772a0ff 100644
--- a/drivers/xen/grant-dma-ops.c
+++ b/drivers/xen/grant-dma-ops.c
@@ -319,13 +319,13 @@ static int xen_dt_grant_init_backend_domid(struct device *dev,
 					   struct device_node *np,
 					   domid_t *backend_domid)
 {
-	struct of_phandle_args iommu_spec = { .args_count = 1 };
+	struct of_phandle_args iommu_spec = {};
 
 	if (dev_is_pci(dev)) {
 		struct pci_dev *pdev = to_pci_dev(dev);
 		u32 rid = PCI_DEVID(pdev->bus->number, pdev->devfn);
 
-		if (of_map_iommu_id(np, rid, &iommu_spec.np, iommu_spec.args)) {
+		if (of_map_iommu_id(np, rid, &iommu_spec)) {
 			dev_dbg(dev, "Cannot translate ID\n");
 			return -ESRCH;
 		}
diff --git a/include/linux/of.h b/include/linux/of.h
index fe841f3cc747..8548cd9eb4f1 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -463,13 +463,13 @@ bool of_console_check(const struct device_node *dn, char *name, int index);
 
 int of_map_id(const struct device_node *np, u32 id,
 	       const char *map_name, const char *map_mask_name,
-	       struct device_node **target, u32 *id_out);
+	       const struct device_node *filter_np, struct of_phandle_args *arg);
 
 int of_map_iommu_id(const struct device_node *np, u32 id,
-		    struct device_node **target, u32 *id_out);
+		    struct of_phandle_args *arg);
 
 int of_map_msi_id(const struct device_node *np, u32 id,
-		  struct device_node **target, u32 *id_out);
+		  const struct device_node *filter_np, struct of_phandle_args *arg);
 
 phys_addr_t of_dma_get_max_cpu_address(struct device_node *np);
 
@@ -935,19 +935,21 @@ static inline void of_property_clear_flag(struct property *p, unsigned long flag
 
 static inline int of_map_id(const struct device_node *np, u32 id,
 			     const char *map_name, const char *map_mask_name,
-			     struct device_node **target, u32 *id_out)
+			     const struct device_node *filter_np,
+			     struct of_phandle_args *arg)
 {
 	return -EINVAL;
 }
 
 static inline int of_map_iommu_id(const struct device_node *np, u32 id,
-				  struct device_node **target, u32 *id_out)
+				  struct of_phandle_args *arg)
 {
 	return -EINVAL;
 }
 
 static inline int of_map_msi_id(const struct device_node *np, u32 id,
-				struct device_node **target, u32 *id_out)
+				const struct device_node *filter_np,
+				struct of_phandle_args *arg)
 {
 	return -EINVAL;
 }

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 11:09:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 11:09:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262031.1554735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5M7R-0005Ra-0T; Wed, 25 Mar 2026 11:09:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262031.1554735; Wed, 25 Mar 2026 11: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 1w5M7Q-0005RT-U1; Wed, 25 Mar 2026 11:09:48 +0000
Received: by outflank-mailman (input) for mailman id 1262031;
 Wed, 25 Mar 2026 11:09:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 1w5M7P-0005P0-8X
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 11:09:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5M7O-00Fng5-Ke
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 12:09:46 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 69c3c270-5cb7-0a2a0a5109dd-0a2a450b8900-44
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 12:09:46 +0100
Received: from [205.220.180.131] (helo=mx0b-0031df01.pphosted.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 69c3c279-ef63-0a2a450b0019-cddcb483de04-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 12:09:46 +0100
Received: from pps.filterd (m0279873.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62P7Zn6Q2276792
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:09:44 GMT
Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com
 [209.85.215.197])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d40ratu61-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:09:44 +0000 (GMT)
Received: by mail-pg1-f197.google.com with SMTP id
 41be03b00d2f7-c7414179cceso3238160a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 04:09:44 -0700 (PDT)
Received: from hu-vjitta-hyd.qualcomm.com ([202.46.23.25])
 by smtp.gmail.com with ESMTPSA id
 d2e1a72fcca58-82b040da7besm14615911b3a.49.2026.03.25.04.09.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 25 Mar 2026 04:09:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=qcppdkim1 header.d=qualcomm.com header.i="@qualcomm.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-Id:MIME-Version:References:Subject:To"; dkim=pass header.s=google header.d=oss.qualcomm.com header.i="@oss.qualcomm.com" header.h="Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding:MIME-Version:Subject:Date:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	VhGHqC2XDynARGpL/uIgYPGZtNXC+dk0e9MA3p7JUHk=; b=QSLCAAHeqJ/rairq
	W2AtAZldN7c3QxFk9yF70tP94pLAUW2pXBnpdsQKVqgKyF8q7kaRIvRgPvd+b/US
	3OLsC0pZ66M1zeiyfNbWDIHJDKAhjaSVrRJ5mjDyLYPEPuyc26TebrdxPWlfMQVN
	mj7hu+E9Lj6Qg40bB219wN0qc69SKSjLAShY/VoxHO+teX7IS59RzAeDcKgGEpLS
	3MObOD6EqSwJlRoC3qexEzo04zPXC5hojgaLj6TOk1zHIyaprP3NACjNwSHx0HXp
	jkWv/b0pKp+d/Txcp6HI5W8g2Z6A3N3KrWy1Hcqc3LauI8k2DPKKvEWumiHNj6Zc
	IppduA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1774436984; x=1775041784; darn=lists.xenproject.org;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:from:to:cc:subject:date:message-id
         :reply-to;
        bh=VhGHqC2XDynARGpL/uIgYPGZtNXC+dk0e9MA3p7JUHk=;
        b=aV/MvE5LI/bdh2fq895OSz7eI1uZ+d2xlh9OH0H9vbbp9Ofmee29BdskU7ETj5knO9
         DuJ3PCbNr+gmn7kUaVUj21DvLzIHoX/jhFLZf8X1N2Asnu97tATpyum85vGqZhWTlm4S
         ujBIcHmsLcc64Jmkmch0XW2o0CYzLO6cQCAqDE7/reCztMUSxIeDlrmgKnRJycU6ImqC
         RikFYw3CPVsQEP5veGsum0CUSKXDCYWEhuSZYCSnrxuhAXXh5Ym7JcQZVIMFIV1AgKUV
         IO0/JbGXRD+3HCMteV2XL5NMa9OgjGUc2/Gfo5rYHyJ8csd+cyEX/MgyJtiY2MVI93zx
         YPeg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774436984; x=1775041784;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=VhGHqC2XDynARGpL/uIgYPGZtNXC+dk0e9MA3p7JUHk=;
        b=iN2pgWOtMYenMgd46zYNrPVvk5qYjSadGGMKDfUrzieh8OXtohJmXReLXJpr0zczHH
         hBjWhuINwf5Rtlv8psev1YfnRYY+ga3yqeGgJIid9YpdzmRbBC6shoATPDmGjst4GwEr
         UcG4elb5YFVjgaVAUbrIc+VW4ZNXFwabDrJu6krrOfchS6HG3EIvl81prRMvFT3K5wR9
         eDwlFDdTnQUr5zJeHiJDRJLk+vPBN0ChjoOaBIBFyft8pbhoVMysZnyvrQLPOJTCXFbK
         yuvSpBlPpTky5W79m7iaCy+epmcOgZY/nYrfYm/bUtYo3m6lrq0lc/GkPiuODmgGKynl
         k9Wg==
X-Forwarded-Encrypted: i=1; AJvYcCX4K1Huv5Z+D+4fJ/0CACXunUpK1ats6WsAd3baS1Ya/ZUS80radnJ75202XCQGRCHEexQWWTFmSKM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzU1nPNCRe74QVi3icAYIX1QF+A+PIuc1HZFvqeWAIWOhWIDcLf
	v3Aj9UPzp1rLghV/DUBnTnba1KRQxX0yDlZH6X2zvaG6jJDoCgxeTlCOdg0gg1Zczp4kazgWBBg
	1OcvjKcb6rzC8ouiyv/bf/zr7RdIrp20kxVqbHMRG9aVwcIzgWnk6kRNbqhSnLI6a6nOaJA==
X-Gm-Gg: ATEYQzzn0qOxkWhnTdS/c0+w0NKW87AliY1c4Jv2NTn97+v3QQDuD56fcik9sICsXF0
	YoQxuCKZ1MffFBdbgexqSKlQgajFVJdAtCIdhtJZDDhj1ZiZol66tykrgEbb5LU16RthdJLz+aO
	1QSx8xc1Qo7954eN6+8Go/rKfq9iI5uvkDxWcGSpUFsAQD1pTOnlSRjinaI90zw8QPSMh7TGl+X
	0BDzvTv2PrBldGUVzYqGgQx3qeHsJmgXA16qYakiXAeICQR6WUUuy10oadot/NNzYa64DStTJ8B
	4Zc4oIg0/dSkRMG68elQEygd6eXvLF1RiApvOSjUTz09055wHIBTXjG2LhnhQFDI6Jjoe+YLukT
	TXEvHln+2Kdmn+jpREi5SgVqewAF2auw9/trk3zL1baj42M6A1mt5D+nI
X-Received: by 2002:a05:6a00:4fd4:b0:82c:2180:32e1 with SMTP id d2e1a72fcca58-82c6df87d2bmr2941801b3a.30.1774436983582;
        Wed, 25 Mar 2026 04:09:43 -0700 (PDT)
X-Received: by 2002:a05:6a00:4fd4:b0:82c:2180:32e1 with SMTP id d2e1a72fcca58-82c6df87d2bmr2941761b3a.30.1774436982988;
        Wed, 25 Mar 2026 04:09:42 -0700 (PDT)
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Date: Wed, 25 Mar 2026 16:38:24 +0530
Subject: [PATCH v11 3/3] of: Respect #{iommu,msi}-cells in maps
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260325-parse_iommu_cells-v11-3-1fefa5c0e82c@oss.qualcomm.com>
References: <20260325-parse_iommu_cells-v11-0-1fefa5c0e82c@oss.qualcomm.com>
In-Reply-To: <20260325-parse_iommu_cells-v11-0-1fefa5c0e82c@oss.qualcomm.com>
To: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
X-Mailer: b4 0.12.3
X-Developer-Signature: v=1; a=ed25519-sha256; t=1774436939; l=11993;
 i=vijayanand.jitta@oss.qualcomm.com; s=20260301; h=from:subject:message-id;
 bh=hhxFww84fiqdRnnSRnrS9vJjSjcq+XxylCTlpd3SMkE=;
 b=Us5vY/aPE5SlHmBokg/zubXLlUcnC104O2IL+pQVmfERbJAGAGDMwtGVFIs7pepIAUzGXYtVz
 BTwRA0K6JNYB0x3hR61JI70vT2yYKvdLkJwexsJ8go6z2MWSSMHveGS
X-Developer-Key: i=vijayanand.jitta@oss.qualcomm.com; a=ed25519;
 pk=Lpi7Cs3wHe8KZtqvyci7FTOLzsKpEHKGCaPNZw+1zRI=
X-Authority-Analysis: v=2.4 cv=Jvr8bc4C c=1 sm=1 tr=0 ts=69c3c278 cx=c_pps
 a=rz3CxIlbcmazkYymdCej/Q==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22
 a=7CQSdrXTAAAA:8 a=EUspDBNiAAAA:8 a=klF1l1D6msg2vEcBgDUA:9 a=QEXdDO2ut3YA:10
 a=bFCP_H2QrGi7Okbo017w:22 a=a-qgeE7W1pNrGK8U0ZQC:22
X-Proofpoint-ORIG-GUID: eDumccwB94BnMMHYlDCk5WBr1ySqCPms
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI1MDA3OSBTYWx0ZWRfX5pUzq87og/u7
 VafaTIiH15MweZWCoJC5K3UXnlI0CusCPh3bqCBezhAZJy8b98GZASFzC6zhyvY5BIqL6/21+Yr
 wjzUNgwgE54JYlRThmG0de8kUGj/yGSs027dWvC6KO5A4fhEkzL9ImwJYgFLIsH2/bBjcL3GqiU
 EuFwYoCUmwZtFpipB4qmAmLx01c5+p3h3KWAY4cuKtP3NnrubozvyFgZ/nkDZCQsHH3bERQfFSH
 gWcUM004WGPZRBXb4aNAfbM8y7bkrzSu6DKU5hmOE3GDaw8CEUoNhQ6vgZ5ANciHLgNPiVZMTw9
 MMPSfjdG0x55FO+pXaHO9g6EssgqwiR/2/wrWReDJYCq/6BR2b1Q7UsUvYZiBE6gNlSu2KITgQS
 HBho1CTKEdQF8mWK4Pa4acQ9j5tcHJnEn+esEGuzvnTLeS4PcqeHXGgxJDQEGHdApZY2yIoQE4L
 JaF3eTW4s5W2sUl98Dw==
X-Proofpoint-GUID: eDumccwB94BnMMHYlDCk5WBr1ySqCPms
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-25_03,2026-03-24_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 lowpriorityscore=0 adultscore=0 impostorscore=0 suspectscore=0 phishscore=0
 priorityscore=1501 spamscore=0 clxscore=1015 bulkscore=0 malwarescore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603250079
X-purgate-ID: tlsNG-42698a/1774436986-BB0A9112-2CA6020F/0/0
X-purgate-type: clean
X-purgate-size: 12040

From: Robin Murphy <robin.murphy@arm.com>

So far our parsing of {iommu,msi}-map properties has always blindly
assumed that the output specifiers will always have exactly 1 cell.
This typically does happen to be the case, but is not actually enforced
(and the PCI msi-map binding even explicitly states support for 0 or 1
cells) - as a result we've now ended up with dodgy DTs out in the field
which depend on this behaviour to map a 1-cell specifier for a 2-cell
provider, despite that being bogus per the bindings themselves.

Since there is some potential use in being able to map at least single
input IDs to multi-cell output specifiers (and properly support 0-cell
outputs as well), add support for properly parsing and using the target
nodes' #cells values, albeit with the unfortunate complication of still
having to work around expectations of the old behaviour too.

Since there are multi-cell output specifiers, the callers of of_map_id()
may need to get the exact cell output value for further processing.
Update of_map_id() to set args_count in the output to reflect the actual
number of output specifier cells.

Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
---
 drivers/of/base.c  | 155 ++++++++++++++++++++++++++++++++++++++++-------------
 include/linux/of.h |   6 ++-
 2 files changed, 123 insertions(+), 38 deletions(-)

diff --git a/drivers/of/base.c b/drivers/of/base.c
index b3d002015192..7b22e2484e1c 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -2096,18 +2096,48 @@ int of_find_last_cache_level(unsigned int cpu)
 	return cache_level;
 }
 
+/*
+ * Some DTs have an iommu-map targeting a 2-cell IOMMU node while
+ * specifying only 1 cell. Fortunately they all consist of value '1'
+ * as the 2nd cell entry with the same target, so check for that pattern.
+ *
+ * Example:
+ *	IOMMU node:
+ *		#iommu-cells = <2>;
+ *
+ *	Device node:
+ *		iommu-map = <0x0000 &smmu 0x0000 0x1>,
+ *			    <0x0100 &smmu 0x0100 0x1>;
+ */
+static bool of_check_bad_map(const __be32 *map, int len)
+{
+	__be32 phandle = map[1];
+
+	if (len % 4)
+		return false;
+	for (int i = 0; i < len; i += 4) {
+		if (map[i + 1] != phandle || map[i + 3] != cpu_to_be32(1))
+			return false;
+	}
+	return true;
+}
+
 /**
  * of_map_id - Translate an ID through a downstream mapping.
  * @np: root complex device node.
  * @id: device ID to map.
  * @map_name: property name of the map to use.
+ * @cells_name: property name of target specifier cells.
  * @map_mask_name: optional property name of the mask to use.
  * @filter_np: optional device node to filter matches by, or NULL to match any.
  *	If non-NULL, only map entries targeting this node will be matched.
  * @arg: pointer to a &struct of_phandle_args for the result. On success,
- *	@arg->args[0] will contain the translated ID. If a map entry was
- *	matched, @arg->np will be set to the target node with a reference
- *	held that the caller must release with of_node_put().
+ *	@arg->args_count will be set to the number of output specifier cells
+ *	as defined by @cells_name in the target node, and
+ *	@arg->args[0..args_count-1] will contain the translated output
+ *	specifier values. If a map entry was matched, @arg->np will be set
+ *	to the target node with a reference held that the caller must release
+ *	with of_node_put().
  *
  * Given a device ID, look up the appropriate implementation-defined
  * platform ID and/or the target device which receives transactions on that
@@ -2116,17 +2146,19 @@ int of_find_last_cache_level(unsigned int cpu)
  * Return: 0 on success or a standard error code on failure.
  */
 int of_map_id(const struct device_node *np, u32 id,
-	       const char *map_name, const char *map_mask_name,
+	       const char *map_name, const char *cells_name,
+	       const char *map_mask_name,
 	       const struct device_node *filter_np, struct of_phandle_args *arg)
 {
 	u32 map_mask, masked_id;
-	int map_len;
+	int map_bytes, map_len, offset = 0;
+	bool bad_map = false;
 	const __be32 *map = NULL;
 
 	if (!np || !map_name || !arg)
 		return -EINVAL;
 
-	map = of_get_property(np, map_name, &map_len);
+	map = of_get_property(np, map_name, &map_bytes);
 	if (!map) {
 		if (filter_np)
 			return -ENODEV;
@@ -2136,11 +2168,9 @@ int of_map_id(const struct device_node *np, u32 id,
 		return 0;
 	}
 
-	if (!map_len || map_len % (4 * sizeof(*map))) {
-		pr_err("%pOF: Error: Bad %s length: %d\n", np,
-			map_name, map_len);
-		return -EINVAL;
-	}
+	if (map_bytes % sizeof(*map))
+		goto err_map_len;
+	map_len = map_bytes / sizeof(*map);
 
 	/* The default is to select all bits. */
 	map_mask = 0xffffffff;
@@ -2153,39 +2183,82 @@ int of_map_id(const struct device_node *np, u32 id,
 		of_property_read_u32(np, map_mask_name, &map_mask);
 
 	masked_id = map_mask & id;
-	for ( ; map_len > 0; map_len -= 4 * sizeof(*map), map += 4) {
+
+	while (offset < map_len) {
 		struct device_node *phandle_node;
-		u32 id_base = be32_to_cpup(map + 0);
-		u32 phandle = be32_to_cpup(map + 1);
-		u32 out_base = be32_to_cpup(map + 2);
-		u32 id_len = be32_to_cpup(map + 3);
+		u32 id_base, phandle, id_len, id_off, cells = 0;
+		const __be32 *out_base;
+
+		if (map_len - offset < 2)
+			goto err_map_len;
+
+		id_base = be32_to_cpup(map + offset);
 
 		if (id_base & ~map_mask) {
-			pr_err("%pOF: Invalid %s translation - %s-mask (0x%x) ignores id-base (0x%x)\n",
-				np, map_name, map_name,
-				map_mask, id_base);
+			pr_err("%pOF: Invalid %s translation - %s (0x%x) ignores id-base (0x%x)\n",
+			       np, map_name, map_mask_name, map_mask, id_base);
 			return -EFAULT;
 		}
 
-		if (masked_id < id_base || masked_id >= id_base + id_len)
-			continue;
-
+		phandle = be32_to_cpup(map + offset + 1);
 		phandle_node = of_find_node_by_phandle(phandle);
 		if (!phandle_node)
 			return -ENODEV;
 
+		if (!bad_map && of_property_read_u32(phandle_node, cells_name, &cells)) {
+			pr_err("%pOF: missing %s property\n", phandle_node, cells_name);
+			of_node_put(phandle_node);
+			return -EINVAL;
+		}
+
+		if (map_len - offset < 3 + cells) {
+			of_node_put(phandle_node);
+			goto err_map_len;
+		}
+
+		if (offset == 0 && cells == 2) {
+			bad_map = of_check_bad_map(map, map_len);
+			if (bad_map) {
+				pr_warn_once("%pOF: %s mismatches target %s, assuming extra cell of 0\n",
+					     np, map_name, cells_name);
+				cells = 1;
+			}
+		}
+
+		out_base = map + offset + 2;
+		offset += 3 + cells;
+
+		id_len = be32_to_cpup(map + offset - 1);
+		if (id_len > 1 && cells > 1) {
+			/*
+			 * With 1 output cell we reasonably assume its value
+			 * has a linear relationship to the input; with more,
+			 * we'd need help from the provider to know what to do.
+			 */
+			pr_err("%pOF: Unsupported %s - cannot handle %d-ID range with %d-cell output specifier\n",
+			       np, map_name, id_len, cells);
+			of_node_put(phandle_node);
+			return -EINVAL;
+		}
+		id_off = masked_id - id_base;
+		if (masked_id < id_base || id_off >= id_len) {
+			of_node_put(phandle_node);
+			continue;
+		}
+
 		if (filter_np && filter_np != phandle_node) {
 			of_node_put(phandle_node);
 			continue;
 		}
 
 		arg->np = phandle_node;
-		arg->args[0] = masked_id - id_base + out_base;
-		arg->args_count = 1;
+		for (int i = 0; i < cells; i++)
+			arg->args[i] = id_off + be32_to_cpu(out_base[i]);
+		arg->args_count = cells;
 
 		pr_debug("%pOF: %s, using mask %08x, id-base: %08x, out-base: %08x, length: %08x, id: %08x -> %08x\n",
-			np, map_name, map_mask, id_base, out_base,
-			id_len, id, masked_id - id_base + out_base);
+			np, map_name, map_mask, id_base, be32_to_cpup(out_base),
+			id_len, id, id_off + be32_to_cpup(out_base));
 		return 0;
 	}
 
@@ -2196,6 +2269,10 @@ int of_map_id(const struct device_node *np, u32 id,
 	arg->args[0] = id;
 	arg->args_count = 1;
 	return 0;
+
+err_map_len:
+	pr_err("%pOF: Error: Bad %s length: %d\n", np, map_name, map_bytes);
+	return -EINVAL;
 }
 EXPORT_SYMBOL_GPL(of_map_id);
 
@@ -2205,18 +2282,21 @@ EXPORT_SYMBOL_GPL(of_map_id);
  * @id: Requester ID of the device (e.g. PCI RID/BDF or a platform
  *      stream/device ID) used as the lookup key in the iommu-map table.
  * @arg: pointer to a &struct of_phandle_args for the result. On success,
- *	@arg->args[0] contains the translated ID. If a map entry was matched,
- *	@arg->np holds a reference to the target node that the caller must
- *	release with of_node_put().
+ *	@arg->args_count will be set to the number of output specifier cells
+ *	and @arg->args[0..args_count-1] will contain the translated output
+ *	specifier values. If a map entry was matched, @arg->np holds a
+ *	reference to the target node that the caller must release with
+ *	of_node_put().
  *
- * Convenience wrapper around of_map_id() using "iommu-map" and "iommu-map-mask".
+ * Convenience wrapper around of_map_id() using "iommu-map", "#iommu-cells",
+ * and "iommu-map-mask".
  *
  * Return: 0 on success or a standard error code on failure.
  */
 int of_map_iommu_id(const struct device_node *np, u32 id,
 		    struct of_phandle_args *arg)
 {
-	return of_map_id(np, id, "iommu-map", "iommu-map-mask", NULL, arg);
+	return of_map_id(np, id, "iommu-map", "#iommu-cells", "iommu-map-mask", NULL, arg);
 }
 EXPORT_SYMBOL_GPL(of_map_iommu_id);
 
@@ -2229,17 +2309,20 @@ EXPORT_SYMBOL_GPL(of_map_iommu_id);
  *	to match any. If non-NULL, only map entries targeting this node will
  *	be matched.
  * @arg: pointer to a &struct of_phandle_args for the result. On success,
- *	@arg->args[0] contains the translated ID. If a map entry was matched,
- *	@arg->np holds a reference to the target node that the caller must
- *	release with of_node_put().
+ *	@arg->args_count will be set to the number of output specifier cells
+ *	and @arg->args[0..args_count-1] will contain the translated output
+ *	specifier values. If a map entry was matched, @arg->np holds a
+ *	reference to the target node that the caller must release with
+ *	of_node_put().
  *
- * Convenience wrapper around of_map_id() using "msi-map" and "msi-map-mask".
+ * Convenience wrapper around of_map_id() using "msi-map", "#msi-cells",
+ * and "msi-map-mask".
  *
  * Return: 0 on success or a standard error code on failure.
  */
 int of_map_msi_id(const struct device_node *np, u32 id,
 		  const struct device_node *filter_np, struct of_phandle_args *arg)
 {
-	return of_map_id(np, id, "msi-map", "msi-map-mask", filter_np, arg);
+	return of_map_id(np, id, "msi-map", "#msi-cells", "msi-map-mask", filter_np, arg);
 }
 EXPORT_SYMBOL_GPL(of_map_msi_id);
diff --git a/include/linux/of.h b/include/linux/of.h
index 8548cd9eb4f1..51ac8539f2c3 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -462,7 +462,8 @@ const char *of_prop_next_string(const struct property *prop, const char *cur);
 bool of_console_check(const struct device_node *dn, char *name, int index);
 
 int of_map_id(const struct device_node *np, u32 id,
-	       const char *map_name, const char *map_mask_name,
+	       const char *map_name, const char *cells_name,
+	       const char *map_mask_name,
 	       const struct device_node *filter_np, struct of_phandle_args *arg);
 
 int of_map_iommu_id(const struct device_node *np, u32 id,
@@ -934,7 +935,8 @@ static inline void of_property_clear_flag(struct property *p, unsigned long flag
 }
 
 static inline int of_map_id(const struct device_node *np, u32 id,
-			     const char *map_name, const char *map_mask_name,
+			     const char *map_name, const char *cells_name,
+			     const char *map_mask_name,
 			     const struct device_node *filter_np,
 			     struct of_phandle_args *arg)
 {

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 11:36:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 11:36:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262075.1554744 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5MXb-0002gK-24; Wed, 25 Mar 2026 11:36:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262075.1554744; Wed, 25 Mar 2026 11:36:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5MXa-0002gD-Vi; Wed, 25 Mar 2026 11:36:50 +0000
Received: by outflank-mailman (input) for mailman id 1262075;
 Wed, 25 Mar 2026 11:36:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5MXZ-0002fg-Um
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 11:36:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5MXX-00CQB8-NR
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 12:36:49 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c3c8ca-e002-0a2a0a5209dd-0a2a450cd392-18
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 12:36:49 +0100
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c3c8d0-f93d-0a2a450c0019-d1558035adac-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 12:36:49 +0100
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-48700b1ba53so46527385e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 04:36:49 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4871174f2cesm125888375e9.10.2026.03.25.04.36.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 04:36:48 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774438608; x=1775043408; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TrrfqRAHFVWJx37O8Fs32iWyY5wOLEvLspA/JjkjZ4Y=;
        b=b9lMh3i9FRlTAPlbnQrucV6Jjzg/xud4c2f0foPfSlKlClmUL81kJUwpqQp7mpm6r3
         KSLmJfkA+kghOph69DH6DADIAM2z49NIpdMUuZD87ib/Fz7x0H1xo4UD+4DI7WKejOsq
         cdxykaGXVZTMLai2hjFfR8Fv8E3H7zI6rL60Fw35EiaYwgfhmiNMMq3rKS4AzQT1ZD+j
         O2woWqZW4LPhCl63vRKocckRhW4JzbvUHSElAyKsALgn03ZwxXbC7KO6oQGr4NsDZEIE
         VnqvDc7uorJnKyq5/yuY/Jp0DdnaUgBRBgXZQuqWmtTxNa1dBhAYc54BxQ7jrclSEbQS
         ToUA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774438608; x=1775043408;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TrrfqRAHFVWJx37O8Fs32iWyY5wOLEvLspA/JjkjZ4Y=;
        b=m5a7A48nRy4KaT9z6cLcJ0Oc/5xkfjRomzMYpYmWBPMn2m8M1qphM3pJP3+Nspv8pF
         TyO9Ye8uBlg2xg1Mm+9dSH+bTC7vrqd0Jf4DoShbaqifAtiaQAsMpCUGDBB2+ZW77/7F
         dLRNXcDgYpFzjRL0Ts/FSDn98vu3tS4T9hnwuFJPNZfHvqhsH/rTq5jd7pEN4uwjCaAK
         fLQDTnSP1TvquurVbRM3N8XqCVp58pB6vCbF3//FEbG9VVlR1B6MpJExeiq8hBHaDz8Z
         6+v8N7BBDyyBu69TQ0jydAq1BJD+HhYUtGji3t+VBPLguXovU99tCraMiUb2j+GTt+SM
         G6tQ==
X-Forwarded-Encrypted: i=1; AJvYcCUYUU3XZUSsm6ylaWtzheumjAcXnlFTmVzoJN7CRRnaEfKu6gw3WtQjIZGbbAQS7O+A5TOCUrRuuVU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxvwH+PZhqrNKoxdRuzFkbwmMb7tzOPZjzNRu+c11Dtp7ekyXzq
	PhIH1jV8an52ARA+u6JP+IGiq1YPq9lVrHAilhTqfBHSfbH0o/JzxAvAyqZFRd7VBA==
X-Gm-Gg: ATEYQzxLZkWLu4X/TH+wfNhd61YjPdzzG9wmkqPK3WUpxDpPdxbxRCVXLCvcMVIQ2Zc
	J7hq5q+Oy97Akc3i0V4k+vLGfktuERp4/VFb8R+1WO6XiOYgZiicR5QjSNvfJAnO8L55LtUA7Uo
	Dws3w4vnd1cAZNZMlppeB8K8Vhdp+hyvCMBbK9Jh8XJJclgvQ67hPdO8qSoUecuWa5SHW1Lb+Ie
	11eVTBCeVP/y7C6HMdVuQs7V4MHLAMqpw91QUoxWZNOMHGDnSwf/P/kXRMQ/vtYAHpqV8aELJtd
	IAJOoJuFJ+rIZBlaIoJQ9OIou0gKLbSBmkxBJg1w+rbz/uDf0Hqe4v0xsrscZ4OPxizBQyllSmy
	bWNaYuNYh/1P54CAO3rVp4Zhy6FhTLVRsMxwXKsSXpcPN05/PLCeJgftqaVySW0s9GYobuf8Z0A
	tGHjWElXWEJZx3Ob58VQNMdGN9fmegtd8AnZyh2MDXqCMwq6iuqmOFLhgdjbbwrgftQSUWw3qsX
	UfIvXBipo30kJe9kd5sPWresg==
X-Received: by 2002:a05:600c:c166:b0:485:5812:bb9e with SMTP id 5b1f17b1804b1-48715f0272amr48820525e9.0.1774438608438;
        Wed, 25 Mar 2026 04:36:48 -0700 (PDT)
Message-ID: <bf12cdd9-be5f-4389-ad96-141980707de5@suse.com>
Date: Wed, 25 Mar 2026 12:36:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/6] x86/vpmu: Expose PEBS and DS area in PV mode
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.1773160025.git.teddy.astie@vates.tech>
 <0762ceb722be83bbdf6703cf419debf30609feb0.1773160025.git.teddy.astie@vates.tech>
 <7e4be441-c0ae-498f-9fdf-e5ea8bf11e48@suse.com>
 <d382d9e9-8a3d-4e1f-a437-f15620887078@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: <d382d9e9-8a3d-4e1f-a437-f15620887078@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1774438609-FC82D734-2DCA1773/0/0
X-purgate-type: clean
X-purgate-size: 1302

On 25.03.2026 11:16, Teddy Astie wrote:
> Le 24/03/2026 à 10:14, Jan Beulich a écrit :
>> On 10.03.2026 17:44, Teddy Astie wrote:
>>> I don't see any reason for them for not be available, especially
>>> since core2_vpmu_do_wrmsr has PV specific logic for MSR_IA32_DS_AREA.
>>
>> This is really dangerous: You allow PV domains to control whether the area
>> is actually mapped. It lacking a mapping can, iirc, on at least some CPUs
>> result in a complete hang. I do, in fact, have been carrying a patch to
>> completely disallow DS area use for PV, eliminating the misleading code
>> you refer to.
>>
> 
> While PV case is particularly quirky (especially with L1TF), the issues 
> still exists for HVM.
> I suppose things may be a bit better with "EPT-Friendly PEBS" though.
> 
> Regardless, we already say that the feature is potentially unsafe to 
> use, and it still needs to be opted-in, so this patch just allows the 
> guest to use something we advertise (with its eventual quirks).
> 
>> Also note that VPMU_CPU_HAS_DS cannot be set for PV vCPU-s anyway.
>>
> 
> Why is that ?
> 
> `vpmu_set(vpmu, VPMU_CPU_HAS_DS);` made in core2_vpmu_initialise is 
> called in either PV and HVM cases.

Oh, I'm sorry, that's yet again a result of aforementioned patch.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 11:41:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 11:41:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262090.1554753 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Mc8-0004Ys-MS; Wed, 25 Mar 2026 11:41:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262090.1554753; Wed, 25 Mar 2026 11:41:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Mc8-0004Yl-JF; Wed, 25 Mar 2026 11:41:32 +0000
Received: by outflank-mailman (input) for mailman id 1262090;
 Wed, 25 Mar 2026 11:41:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5Mc7-0004Yf-Cl
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 11:41:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Mc6-00GRvB-Oz
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 12:41:30 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c3c9d9-2eae-0a2a0a5409dd-0a2a450c8356-32
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 12:41:30 +0100
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c3c9ea-f93d-0a2a450c0019-d155802abd67-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 12:41:30 +0100
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-486ff201041so44204965e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 04:41:30 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487116f17f3sm118826675e9.1.2026.03.25.04.41.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 04:41:29 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774438890; x=1775043690; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vrnG1blid79MHtdcU5CENzTWQvRfwshseOaU/wz0hKA=;
        b=Rw+gLcS1cB2MAuf3SZyxoOMm+VvjDzUxQtftqhZJUFqEBqM5+ZoCO3V5+9sx+ktN+A
         bx/H8bo7Na4z/bn+Kl5JhFxspcGd6WC1dwxDRRRG0tfbH/NSIf8tO8WnRlGbXKxujFWy
         8btF0v4DavnS9105dNFXEb9qP2+7gyCyi7gf8mRuSaNfRCSqp7b725sd0pJJkIuwyDJ9
         jXY5HRrv2OUoJIJ94QqfJbA3jb7afzoVRIlXIBi7T0Q9dwEge8Y6Lh3eTOxt5ulSt8e1
         fP1loh5kbh3+73R9pjOXWJXmfYY8UG2/xVP4R4vLz7mhL8Ft08PBc+ynwhJb94woeGpg
         I6mw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774438890; x=1775043690;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vrnG1blid79MHtdcU5CENzTWQvRfwshseOaU/wz0hKA=;
        b=ht2TvUEdKF4ra0syqzrnSZ50cA33qYJYUmaNwsqLzEr4O+hzimFwc8QiOvwfKXwZ3X
         1s+IFUpryAgRlPoBNxJtw9P3fK7tTK+OLHnF+Yxu7WYnLVctyVd9MR/pugKRes4M9yue
         qp0lOdEvlgjExWjBHdr2J2UvXBuWlEMhsAZp47MYCGWxBi+d9qaq8XbF52vuPi0KfSrd
         UolbXvX/Hk14Gwt/73RCSWU/MF/iC0kL6QyCqUTOTxWGSw/qdrVblQfL/SPA2kcghqmI
         yo29IZaTPNsOBIMfIE1JgkUbJveQMVWepPx2RMLCgM/QFao9VLxu9Bzd09jPsL79muxq
         17aQ==
X-Forwarded-Encrypted: i=1; AJvYcCW2uD3bi//A9p6MbTVQyJeqnq3B+O8UCZoc7l6ep8b5H6iwu6DL37OhvmNsoY96GwpkMee7Bn907SU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz+8lN9UEEuAxG6xBhEk5VcCbvpjm91jY3EYkGvOCFoYVwg744N
	vSV++2K9p8WAi45PvEFWg9cPJaDpA3tjFU0fNMYc0wJux3tZHBcm1LYirbE8QXwyx69YJP/2YQm
	HXMuBKg==
X-Gm-Gg: ATEYQzzNn4tKGnhmpu7nQyicRXaSD9TumUpQTVF1nA81FeO2g00wIrKxuQa7qoJyQrE
	bQOnxurW3nyeLOxSTUC6aDSw4Pu+6+gEq6wA3Uhg/BhDuSuNoHYPxZ0jReqCNCEV+/igQc61D1L
	Ch7LAW/tk1lwlk/QwNyTihd2IUldMF9KxxQGWgzV2LFiXsleTHu5LgexOTEzkEF7peP1WltIMEp
	CtXJsBmJF4oHNjleoGJtjIwRPW4bgOX1GBmQPeGh2LnrWGfPpJc9JxpvzEt0lRUFCcaRnuu+jXm
	mzsa5Tuo8G2Fbuf0pDTgKjQl0N3Zk7PicXHk795cJ15Nyze2gAFmU8ih1r5vOpYRo2qyfLVicpy
	6fP3uWR87HUKSnhLzFn9VFlc9GirxuFOO5YY5Pc/Mwrp1CPYHEnj1fR5ze75FkjAzwnXXCaSDsH
	WXljwd1ux/WQ4H3kNqAjLiN/IVyQCLbKmCNux83ACnK5L9gW4WT6gimSSnd16ng4mimFOGSZQJO
	aQ/tgk6rtb4X2w=
X-Received: by 2002:a05:600c:1d0e:b0:485:3ec6:e634 with SMTP id 5b1f17b1804b1-48715febda2mr46101175e9.15.1774438889929;
        Wed, 25 Mar 2026 04:41:29 -0700 (PDT)
Message-ID: <ab2802f8-1253-4be4-a4c8-5094d7378a8f@suse.com>
Date: Wed, 25 Mar 2026 12:41:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/6] x86: Define some Intel vPMU leafs
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.1773160025.git.teddy.astie@vates.tech>
 <83a573dcb365761c0f089325365090b6f963fb03.1773160025.git.teddy.astie@vates.tech>
 <d7438af9-1aad-446b-bd80-7d9e8f955cdc@suse.com>
 <690ad4c0-d9b1-45ec-8634-f8c002c0282a@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: <690ad4c0-d9b1-45ec-8634-f8c002c0282a@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1774438890-F6AAD734-6A79268A/0/0
X-purgate-type: clean
X-purgate-size: 2514

On 25.03.2026 10:48, Teddy Astie wrote:
> Le 24/03/2026 à 10:25, Jan Beulich a écrit :
>> On 10.03.2026 17:44, Teddy Astie wrote:
>>> --- a/xen/include/xen/lib/x86/cpu-policy.h
>>> +++ b/xen/include/xen/lib/x86/cpu-policy.h
>>> @@ -162,7 +162,15 @@ struct cpu_policy
>>>               uint64_t :64, :64; /* Leaf 0x9 - DCA */
>>>   
>>>               /* Leaf 0xa - Intel PMU. */
>>> -            uint8_t pmu_version, _pmu[15];
>>> +            struct {
>>> +                uint8_t /* a */ version, num_gp_ctrs, gp_ctr_width,
>>> +                                event_enum_length;
>>> +                uint32_t /* b */:32;
>>> +                uint32_t /* c */ fixed_ctr_mask;
>>> +                uint32_t /* d */ num_fixed_ctr:5, fixed_ctr_width:8, :1,
>>> +                                 anythread_depreciation:1, slots_per_cyc:4,
>>> +                                 :13;
>>> +            } pmu;
>>
>> Style-wise this looks to follow e.g. the cache leaf, so perhaps okay, even
>> if I would have preferred you to follow what we did for leaf 6. 
> 
> My idea was to put all that as .pmu.*, so I wouldn't need to prefix 
> everything with "pmu_". I'm not sure if you're talking about a different 
> approach.

The "pmu" is fine. I'm talking of what's inside the struct {}.

>  > The named> boolean field, however, wants to be of type bool.
> 
> Which fields ?

There's only one named 1-bit field: anythread_depreciation.

>  > And then the unnamed 1-bit> field really wants to be 2 bits, for 
> anythread_depreciation to be bit 15
>> (etc).
>>
> 
> Ah yes thanks, I got confused with the fields size for a second.
> I also found that slots_per_cyc is 3 bits instead of 4.

Not as far as I can see.

> I think this diff fixes it overall.
> 
> --- a/xen/include/xen/lib/x86/cpu-policy.h
> +++ b/xen/include/xen/lib/x86/cpu-policy.h
> @@ -167,9 +167,9 @@ struct cpu_policy
>                                   event_enum_length;
>                   uint32_t /* b */:32;
>                   uint32_t /* c */ fixed_ctr_mask;
> -                uint32_t /* d */ num_fixed_ctr:5, fixed_ctr_width:8, :1,
> -                                 anythread_depreciation:1, slots_per_cyc:4,
> -                                 :13;
> +                uint32_t /* d */ num_fixed_ctr:5, fixed_ctr_width:8, :2,
> +                                 anythread_depreciation:1, slots_per_cyc:3,
> +                                 :11;

Why 11 all of the sudden?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 11:50:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 11:50:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262103.1554764 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Ml4-0006Z6-H4; Wed, 25 Mar 2026 11:50:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262103.1554764; Wed, 25 Mar 2026 11: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 1w5Ml4-0006Yz-Df; Wed, 25 Mar 2026 11:50:46 +0000
Received: by outflank-mailman (input) for mailman id 1262103;
 Wed, 25 Mar 2026 11:50:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5Ml3-0006Yt-2x
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 11:50:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Ml2-00E3je-E8
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 12:50:44 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c3cc12-2eae-0a2a0a5409dd-0a2a45038522-4
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 12:50:44 +0100
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c3cc14-1947-0a2a45030019-d155802eec8d-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 12:50:44 +0100
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-486507134e4so28693315e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 04:50:44 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48717341e29sm18769975e9.15.2026.03.25.04.50.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 04:50:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774439444; x=1775044244; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tn9KdA6knE2yrL+FHC4SIwpDMGXgGXscbEGwvd31e9Q=;
        b=JZygfRB+nvZ8FzWzAexXEHLqhzspM1AOzyJTcZ1szZAyTSZy9fz75+ikyHPj6Hzziv
         QTDRT9vFKZv0lsYrUpaMtNiMx1UXqPciikXCPiSeeSkpIUcr/TuDhjJsS1diGT25BcyR
         aJuntGwArDqpylbqCmu2dMSsxAwntUVFL3ye9Zn9wWflesEoG8+rRoXUykFYFOS6nV7t
         yfud3rVOKP/UPJrgONrMYXLqotBWkMdVWSkVdfp6rvgCsWmF6B92hjGNtlnVcYP1P+jU
         aw4fh26oruavqf1f7Dj+GPzhKAu5X0W0rQISwqZcHf1z64V6nWi5tGRQHs5CPhJz0xf9
         F9xA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774439444; x=1775044244;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tn9KdA6knE2yrL+FHC4SIwpDMGXgGXscbEGwvd31e9Q=;
        b=PXuIaY/HDQagJTA6wk6XHi0k/MVhipeZyAvgrbdEFoRcG9SDyAlqYoInClNYYuQq3N
         U6HVgkDPQnfkpYn5SlcXl784YjbTqga+ze4J12EYd5zJ60NdN6j1TbpZQ3PUVXrU2+G3
         hsAYGzXzMMDZIO0h020mbwQDMKzsDgf/IbOBlU3+bTUcEBH/RSNDJ47hyMYQHPCWKevO
         Gp7OK647HhnPAneCTbX8S5Th4p5IrsIFdUBYjXrHZUahHRrs3uO0h9mpfIVTHIEiMw8Z
         CqxXkcWsr62uPPDwBI5uVHLinhogfPlCYAoKIXQN9PsNkQC9yYJGQQcSBEdPyCN5muFP
         B5BQ==
X-Forwarded-Encrypted: i=1; AJvYcCVabhoISblOPtd4v+MCcu2fa0Bj+qzeWoCZ+ZQiIBDLiZm97n51XkDoE9I9Z0dib8Hrl2oPjsIcNO0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzSrAzFCUKrlDgYXifx2/JL1CSYfISbHGWUi2/B8/hNGN8fYlOA
	VVOGw5IhzFhJQ3TRwF1b2IZkpTOzZxLE3u4KvRfY+bLj6Gta1UDLqWcA0z6faqyE+A==
X-Gm-Gg: ATEYQzxIoagHxpTdB4z51mnAfrHGbTioXndTwCiAEkOO9cFzLLw2ykY9Dxx8qn7vhBa
	c1rNz6q0WZcMjQkgR10c+u+vFb2qmM0ZTqhDMHfJXc48KoOWUfYkc0yVmbVKdJ1HofUaAtSOT6z
	UAIjGIk31jH8g3I8D+duBaOMepKJ8Bg10mrJ2MM28TJ3rGVhXFtXjGcDFBdNX0gZ7I3HXtOIOAw
	C/Pq4jnfOlpK9WqOMytzokYh+Y1tIQ4kUFgrdm7/p9cTYIhCKeh3EbkF47U73sh2+QItWC+6Xqb
	DjP01akz8+tYoOMrMSmxN0IE+crCVZZ/8iedJFeDXEc5Q98qNhXWIBK2jTW5IgfEeOAhLfTtDWB
	1+P4yKh8Zn/j0ZCdqfp1NHZg1LB/E6XGLXJWn/x+G1IuWh8GaBR2WxXb6e4XW45gNKYHg4t9W6x
	XCQEDVkTyxNr7snNYf8quKL0AHvt50qelJ1D3a0Et09Pj6TLf4Z68R6EvTvaHFIh0ukfji1yAMr
	emSrZ9EnCTC+6LB95E1lTULIw==
X-Received: by 2002:a05:600c:3b12:b0:485:363b:fafe with SMTP id 5b1f17b1804b1-48715fc37f7mr51466725e9.1.1774439443108;
        Wed, 25 Mar 2026 04:50:43 -0700 (PDT)
Message-ID: <f49dcd5e-d905-4f43-8143-afd7209a1300@suse.com>
Date: Wed, 25 Mar 2026 12:50:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/sched: validate RTDS putinfo period and budget
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
Cc: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 Juergen Gross <jgross@suse.com>, Meng Xu <mengxu@cis.upenn.edu>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <1a235cca6f37ee3d3f03132675247edfc19953cd.1774431761.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: <1a235cca6f37ee3d3f03132675247edfc19953cd.1774431761.git.oleksii_moisieiev@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1774439444-E909672C-C690DEC2/0/0
X-purgate-type: clean
X-purgate-size: 1767

On 25.03.2026 10:43, Oleksii Moisieiev wrote:
> The RTDS domain-wide XEN_DOMCTL_SCHEDOP_putinfo path only checks for
> zero values before applying period and budget to all vCPUs in the
> domain.
> 
> This is weaker than the per-vCPU XEN_DOMCTL_SCHEDOP_putvcpuinfo path,
> which already rejects values below the minimum, above the maximum, and
> cases where budget exceeds period.
> 
> Use the same validation rules for putinfo as for putvcpuinfo, so
> invalid domain-wide updates are rejected with -EINVAL instead of being
> applied inconsistently.
> 
> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
> ---
> 
>  xen/common/sched/rt.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/common/sched/rt.c b/xen/common/sched/rt.c
> index 7b1f64a779..62188f37c6 100644
> --- a/xen/common/sched/rt.c
> +++ b/xen/common/sched/rt.c
> @@ -1388,7 +1388,10 @@ rt_dom_cntl(
>          op->u.rtds.budget = RTDS_DEFAULT_BUDGET / MICROSECS(1);
>          break;
>      case XEN_DOMCTL_SCHEDOP_putinfo:
> -        if ( op->u.rtds.period == 0 || op->u.rtds.budget == 0 )
> +        if ( op->u.rtds.period > RTDS_MAX_PERIOD ||
> +            op->u.rtds.budget < RTDS_MIN_BUDGET ||
> +            op->u.rtds.budget > op->u.rtds.period ||
> +            op->u.rtds.period < RTDS_MIN_PERIOD )

Besides there being an indentation issue here, are the inputs of putinfo
really in different units than those of putvcpuinfo? The latter first
applies MICROSECS() before comparing against bounds. Assuming they are
using identical units (actually, they do, as putinfo uses MICROSECS()
when storing the values into the internal structure), I guess you'd best
make a small helper function used by both.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 12:09:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 12:09:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262134.1554781 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5N3P-0001NF-QA; Wed, 25 Mar 2026 12:09:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262134.1554781; Wed, 25 Mar 2026 12: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 1w5N3P-0001LL-Lv; Wed, 25 Mar 2026 12:09:43 +0000
Received: by outflank-mailman (input) for mailman id 1262134;
 Wed, 25 Mar 2026 12:03:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <zhaoguohan@kylinos.cn>) id 1w5Mww-0000e6-0Y
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 12:03:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Mwv-004h1T-Cs
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 13:03:01 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <zhaoguohan@kylinos.cn>)
 id 69c3cef4-bab6-0a2a0a5309dd-0a2a4501a90a-8
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 13:03:00 +0100
Received: from [124.126.103.232] (helo=mailgw.kylinos.cn)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <zhaoguohan@kylinos.cn>)
 id 69c3ceef-6400-0a2a45010019-7c7e67e8c0b0-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 13:03:00 +0100
Received: from localhost.localdomain [(10.44.16.150)] by mailgw.kylinos.cn
 (envelope-from <zhaoguohan@kylinos.cn>)
 (Generic MTA with TLSv1.3 TLS_AES_256_GCM_SHA384 256/256)
 with ESMTP id 1348781306; Wed, 25 Mar 2026 20:02: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>
Authentication-Results: eu.smtp.expurgate.cloud; none
X-UUID: 8ade3388284211f1a21c59e7364eecb8-20260325
X-CID-P-RULE: Release_Ham
X-CID-O-INFO: VERSION:1.3.11,REQID:140d25ea-eb09-4808-8438-de17a524f1a1,IP:0,U
	RL:0,TC:0,Content:0,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION:
	release,TS:0
X-CID-META: VersionHash:89c9d04,CLOUDID:ab8db2c8cd2d23d717ed6e4592da157a,BulkI
	D:nil,BulkQuantity:0,Recheck:0,SF:102|850|898,TC:nil,Content:0|15|50,EDM:-
	3,IP:nil,URL:0,File:nil,RT:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,A
	V:0,LES:1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0,ARC:0
X-CID-BVR: 2,SSN|SDN
X-CID-BAS: 2,SSN|SDN,0,_
X-CID-FACTOR: TF_CID_SPAM_SNR
X-CID-RHF: D41D8CD98F00B204E9800998ECF8427E
X-UUID: 8ade3388284211f1a21c59e7364eecb8-20260325
X-User: zhaoguohan@kylinos.cn
From: GuoHan Zhao <zhaoguohan@kylinos.cn>
To: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org,
	GuoHan Zhao <zhaoguohan@kylinos.cn>
Subject: [PATCH] xen/privcmd: unregister xenstore notifier on module exit
Date: Wed, 25 Mar 2026 20:02:46 +0800
Message-ID: <20260325120246.252899-1-zhaoguohan@kylinos.cn>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1774440180-22EE2DF3-3651D3B0/0/0
X-purgate-type: clean
X-purgate-size: 1111

Commit 453b8fb68f36 ("xen/privcmd: restrict usage in
unprivileged domU") added a xenstore notifier to defer setting the
restriction target until Xenstore is ready.

XEN_PRIVCMD can be built as a module, but privcmd_exit() leaves that
notifier behind. Balance the notifier lifecycle by unregistering it on
module exit.

This is harmless even if xenstore was already ready at registration
time and the notifier was never queued on the chain.

Fixes: 453b8fb68f3641fe ("xen/privcmd: restrict usage in unprivileged domU")
Signed-off-by: GuoHan Zhao <zhaoguohan@kylinos.cn>
---
 drivers/xen/privcmd.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
index bbf9ee21306c..15ba592236e8 100644
--- a/drivers/xen/privcmd.c
+++ b/drivers/xen/privcmd.c
@@ -1765,6 +1765,9 @@ static int __init privcmd_init(void)
 
 static void __exit privcmd_exit(void)
 {
+	if (!xen_initial_domain())
+		unregister_xenstore_notifier(&xenstore_notifier);
+
 	privcmd_ioeventfd_exit();
 	privcmd_irqfd_exit();
 	misc_deregister(&privcmd_dev);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 12:09:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 12:09:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262128.1554776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5N3P-0001HX-Iv; Wed, 25 Mar 2026 12:09:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262128.1554776; Wed, 25 Mar 2026 12: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 1w5N3P-0001Gi-Ea; Wed, 25 Mar 2026 12:09:43 +0000
Received: by outflank-mailman (input) for mailman id 1262128;
 Wed, 25 Mar 2026 12:01:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ioana.ciornei@nxp.com>) id 1w5Mvd-0000XF-7g
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 12:01:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Mvc-009lXS-Jv
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 13:01:40 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ioana.ciornei@nxp.com>)
 id 69c3cea2-2eae-0a2a0a5409dd-0a2a4505b2d4-8
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 13:01:40 +0100
Received: from [52.101.70.64]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <ioana.ciornei@nxp.com>)
 id 69c3cea4-5aeb-0a2a45050019-34654640ae3e-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 13:01:40 +0100
Received: from PAXPR04MB8253.eurprd04.prod.outlook.com (2603:10a6:102:1bf::7)
 by PAXPR04MB8989.eurprd04.prod.outlook.com (2603:10a6:102:20c::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Wed, 25 Mar
 2026 12:01:36 +0000
Received: from PAXPR04MB8253.eurprd04.prod.outlook.com
 ([fe80::2b4e:8130:4419:d633]) by PAXPR04MB8253.eurprd04.prod.outlook.com
 ([fe80::2b4e:8130:4419:d633%3]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026
 12:01:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=nxp.com header.i="@nxp.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kttRFgI2/iylIRsj5YKB10FAyWAymytV5Lq2Au/ItdO/sXFz8Ow659hb8KKMq+gHsxYaakF/46S7IaN/3KDvO/5kyPTzlAx+JQRVhCIFRO+EFWxmXy9RjS3wr05ooQvgLdEBR4lyG9MItZZPiomX4sp+Da4DZigG6GfO9hBwczfJTuxw+hT/eW8FoNSc04UPMN2RL5jtEX1n1CkghV/zxGYua9ZHEN+wDhHz5jnQ2rSv06nT/DFcrzpeBzLagtSSqX5CO76TgT/myxzMgWrLYmxGpYppKg1WMhY+OxFuUoXZ9bRSenrtN9qBMyx3Gm8K63RDCZAAmQn+rTlDfNo1jA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YXXBntpqyuvabK9QKfgQGbDJFMmQc0BuxpCyE+N0g9M=;
 b=LrQ3k0K7bQbLI7Ga/VdoS9zgSx0tF/y38T2czp4oQfSdl50dc1Bbj35Id8ErsxEFGUAZ3aUtRKGy9L/Nxq/IsFesr4kUloiYWhJXZYsDgHOKMM2QInNDDdK+6p9jWSbDIQkkyWgttVkLBz4Su06qJn45bnVYwqsss+NMRS2YRlijnuUpfw0AlXxrVnvqXuIw88tsNLBhvvKIDkjoT86Sv/CeS8mcfHZzA+C7tmoBHPPjiQE7do2lwMtrvDlPScc6taJeAgXUXVEjBF88cSgelNRuW276dFNy9exbssWFnhiV35VBQwVHomgtWnKX+lSIvBr09/gpjSSmQMYyMaiLYQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass
 header.d=nxp.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YXXBntpqyuvabK9QKfgQGbDJFMmQc0BuxpCyE+N0g9M=;
 b=J7wS3kOIzOp/PM1Yoou83qDqv3RnBDES7+thUv0J/24R3LLR10nSMH9la88tBzqfn8aMvhoh/Fth2vqnZUhdNydapTA9hesLUSFZjoncUjWs+LE+FjJMnVVxBe/JkmMvL5F3lhA0Ak/TxLUmBgyeIP4gdk0Qvd4xkvBz5ZGktJwAIGEHKiVf169FqLaIHUUUk/A9EDg4vbRDMSWQCos9KeHmaaGo3qyNZr0cwK4vKIvQFTSPpC+EKroRKgLqr2bT8xNcbmAZs20jB2tNF4CP8lkGOjUHTfaAaMC/PGbNjAq1A7WayuEduk5jVOkpEpNgdWzWoNsOxmW9VzvUPlOZug==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nxp.com;
Date: Wed, 25 Mar 2026 14:01:29 +0200
From: Ioana Ciornei <ioana.ciornei@nxp.com>
To: Danilo Krummrich <dakr@kernel.org>
Cc: Russell King <linux@armlinux.org.uk>, 
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>, "Rafael J. Wysocki" <rafael@kernel.org>, 
	Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, 
	Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Bjorn Helgaas <bhelgaas@google.com>, Armin Wolf <W_Armin@gmx.de>, 
	Bjorn Andersson <andersson@kernel.org>, Mathieu Poirier <mathieu.poirier@linaro.org>, 
	Vineeth Vijayan <vneethv@linux.ibm.com>, Peter Oberparleiter <oberpar@linux.ibm.com>, 
	Heiko Carstens <hca@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>, 
	Alexander Gordeev <agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>, 
	Sven Schnelle <svens@linux.ibm.com>, Harald Freudenberger <freude@linux.ibm.com>, 
	Holger Dengler <dengler@linux.ibm.com>, Mark Brown <broonie@kernel.org>, 
	"Michael S. Tsirkin" <mst@redhat.com>, Jason Wang <jasowang@redhat.com>, 
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>, Eugenio =?utf-8?B?UMSCwqlyZXo=?= <eperezma@redhat.com>, 
	Alex Williamson <alex@shazbot.org>, Juergen Gross <jgross@suse.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
	"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>, linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, 
	linuxppc-dev@lists.ozlabs.org, linux-hyperv@vger.kernel.org, linux-pci@vger.kernel.org, 
	platform-driver-x86@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, 
	linux-s390@vger.kernel.org, linux-spi@vger.kernel.org, virtualization@lists.linux.dev, 
	kvm@vger.kernel.org, xen-devel@lists.xenproject.org, 
	linux-arm-kernel@lists.infradead.org, Gui-Dong Han <hanguidong02@gmail.com>
Subject: Re: [PATCH 02/12] bus: fsl-mc: use generic driver_override
 infrastructure
Message-ID: <cvcetxkxjq2tz6n2vsofhyzove3qdi2e4r6rq6yxou3joejk2h@rmt5ygav7ssu>
References: <20260324005919.2408620-1-dakr@kernel.org>
 <20260324005919.2408620-3-dakr@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260324005919.2408620-3-dakr@kernel.org>
X-ClientProxiedBy: AM8P189CA0012.EURP189.PROD.OUTLOOK.COM
 (2603:10a6:20b:218::17) To PAXPR04MB8253.eurprd04.prod.outlook.com
 (2603:10a6:102:1bf::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PAXPR04MB8253:EE_|PAXPR04MB8989:EE_
X-MS-Office365-Filtering-Correlation-Id: 444f69f3-3f50-4dac-40a4-08de8a664393
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|1800799024|19092799006|366016|56012099003|7053199007|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	YauE1OL9qVz6Ghkd3J4iiweYC+KTDcwgtVBRc6SzyGeDcIvAqr9GqhVgU2IK4k2+zD1XxZPGsKYLsEqiaS8RfvJO+yGdO9WoswEWIvqsqEFASVmWheIaYF6Je+a++RK8CPtKoUmtGv0bPuHQKh69kpeVWHxQA8bfzVd9gd2G4mJHqF2R/yvxG+kaFflL98lVbOhBJZVh46//CdTR5tE+vo9FZKLdM/PRl0QIa3bNJbT1IaRCJM+wNaaqNBIzvTqtbT98uIsOogkVCldOOrVdOIf3BEt28eAOqFMZ+TV6ETNq7EP8+961S1GpXqtc3J70y71lXxATEDMw4M7LruoJUvQCiEtLcFoE1s1XQG91q/Nj6FXkloupIpOwpO473+cAm5hHdWM8Lk7DN4mhymvIm8xrXzQomkVk0NxAwKEqKbG1hLhuQNb9GFMLvFeZE7wHopHrdCggnTb1OInKne9bPE5qCv6pjzjBvuCNuCasTBGwOUxQunyzQ3hhubR4Y5OBTIbDBTi+2fWt6pSW58kN8BCEXnWy5UvBhChefiek3+SDDzHh8IC6jKp5Z97r8VmNAfpxZw2XP05S5Ns/ZXQeLnXH57l5nV+ceXhGsEnYLBhJBHqGuDr3dTgOpwloRdJVUaA27Kw+UJgstnRgDw4BljSRQ1rbyIFnP2TZ5QuxCAsf0Q+eVAioW0X7cYqdNsEmIbHoBc2xrdOVB3nvcWTPoD2bk6N4r430UGOrsCSf/nI=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB8253.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(19092799006)(366016)(56012099003)(7053199007)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?wCOZvBxNyCZSbHbedjI2V2n4mKP/k/5gUrgXOwWGXKwOn843BAEy0H3Lu4Jf?=
 =?us-ascii?Q?t44F1A4mUDlyXUpBILTQsalQEZqPTb+cgccdo7yvS+9mDAmiACTuVKmRxjl7?=
 =?us-ascii?Q?M9InKZa5Am5jYZR+Y6nl4ZdHDTt+hCMDHFlOxI8riOBJRZnOAJTz6yzIxFaW?=
 =?us-ascii?Q?NuMDAuy0o8Seeb2//8zVOsrPkVe3gADXMwB6++DuHMeIgAiNc+QyX8DkXR5q?=
 =?us-ascii?Q?aXO5ih1Tyr4trPF30eexsGtUxbZX/V34UnBKtUiXaYtMXX9HbRMMTpbk92Gt?=
 =?us-ascii?Q?W3VVjo6p1M/5FsoqIX6FIBBE04QhKDSZIjs2/bYt7tHIfc+gW/pXT3ErP3Pg?=
 =?us-ascii?Q?Qt23L/3abciooF+nRzpRJO+oiAGqlsGlj8DFB3f4iExSOluU3feBUrelvZWZ?=
 =?us-ascii?Q?FxSnZY09HaUgZUBPbbvoMIt3wbRpiW5bmvMMr940BU+Q3A16vVDypKtcz3NV?=
 =?us-ascii?Q?BU0Ai/kGVJmc8saIbewJrV7vIIOx9ablRosiAQQpIPpLGSNdnB/PM5htvMOd?=
 =?us-ascii?Q?tY3Cqz+BLDwhYnCGEBFjg52OnkE8ZrA8OpAQPUXis7s9E/fs7Es7xl2IyPKX?=
 =?us-ascii?Q?V7kOH3wgDFGeIdk7u4bQcFKCuIWl7nqfG/FWiXnb8NouOGV5DjHiFcog3DG9?=
 =?us-ascii?Q?D3NwL0JdIPZlmBs+gt4O4kPQNcuuailEOeHJZWjQjdbP3DajBo3zTqnqaA4O?=
 =?us-ascii?Q?gcbrXQjGO/JlVf7IAR7Xj9as5QqU/RiCVFD2Kf4P9AqJrbGbb7paHfrs+ghk?=
 =?us-ascii?Q?B5dSKXfEUK9B9FDjyJ93sA3zJphdWq8KRjLbs0MF24LtTWFyB/a1sPoQfaY7?=
 =?us-ascii?Q?1zjFk06ZXuV00pBCIc7/0lmVkFqzmc81hUg6Ezs4fYmUMbzjyImSJkNC/Sqs?=
 =?us-ascii?Q?WohdgnB6eAaLAyYHxSO9ChXnD2BFaDtkPBzhNiyCIoT78MxbQPbT2auRlzDC?=
 =?us-ascii?Q?v+jj3XxnIFr/JFs1Qcq8L6SZ4dYzvAQrfNQbx8aCfUpQhn/Hm0OoXMY1eXdQ?=
 =?us-ascii?Q?2YtNVHLe5xsnkRrmnSasZ/8Vhs0RclkimVYpMzvWd+2VhUKS1HNh+0PGXCLe?=
 =?us-ascii?Q?aW2prGUn9xxanWMbaMLFsxrRFF0jdUZNStlj455tQaK/4JyvBzmTFz+GYGv0?=
 =?us-ascii?Q?SKKHB5GUNuTYcMNxcbmcbn4DNkC2IyYPpM2R/Z6FTxYHx1MTZnpWN/WrIrst?=
 =?us-ascii?Q?hpTDu1KHxUK3hzNP1zioROI0d1O3u2bHMyK6Oe0dISAyEbs+/swDAEQuQSJM?=
 =?us-ascii?Q?oMJZ6UFrgjS3+94++VT/pbI7PFmWnZiEIOnCkYqGC9Ip6y6KIcMc6Na6G5+p?=
 =?us-ascii?Q?oK2MFDEYv0QtNh92FmTJn/Q3Laz5Qm7zQahprTiJbJYTHxmHwhwGruDzKrLx?=
 =?us-ascii?Q?Dtwe5YakcFHXbUyqLxoipZvV6ysWEsbAM2nO1VYpddukv9PWHPrxRQm8l5A7?=
 =?us-ascii?Q?0tyBj3eFzm9quJ+hx/7kBMUz87EFfDU0j82a8ylOOTuRtMqApXfhMjI7kEzB?=
 =?us-ascii?Q?u+H9bPwh+nLvLbW9uXZj5JjZaAy23me2qngR1rLKYU8CiT8GwTcSYRwWw54W?=
 =?us-ascii?Q?p+dVtKlYG+ALObSrmAromuRz7Yxo9Dhfv2pIVyJ46WHdX6+8yYfBZQijauNP?=
 =?us-ascii?Q?E+YNOs80TCBLXN3dW0tPjl711h0vaRrW5uqL5qfhEkGoQyn/iuS4IB//Jo1u?=
 =?us-ascii?Q?k6YfWxq4S/jk9UJRRJ2uNOSdmAu29mvcMsK+yqML/1LIa1SBVvmCnZM3ZcZp?=
 =?us-ascii?Q?GB9hLE4kFg=3D=3D?=
X-OriginatorOrg: nxp.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 444f69f3-3f50-4dac-40a4-08de8a664393
X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8253.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 12:01:36.0520
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Chgczccg4htJAVG6e4L1PTVeI+yR3WIw7pB21S+3KjxkMI90qw6f2G+r96bnAJFWq8f6hC+FMUaXR7ipTyy5SA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8989
X-purgate-ID: tlsNG-c201ff/1774440100-2388E488-5E31228C/0/0
X-purgate-type: clean
X-purgate-size: 954

On Tue, Mar 24, 2026 at 01:59:06AM +0100, Danilo Krummrich wrote:
> When a driver is probed through __driver_attach(), the bus' match()
> callback is called without the device lock held, thus accessing the
> driver_override field without a lock, which can cause a UAF.
> 
> Fix this by using the driver-core driver_override infrastructure taking
> care of proper locking internally.
> 
> Note that calling match() from __driver_attach() without the device lock
> held is intentional. [1]
> 
> Link: https://lore.kernel.org/driver-core/DGRGTIRHA62X.3RY09D9SOK77P@kernel.org/ [1]
> Reported-by: Gui-Dong Han <hanguidong02@gmail.com>
> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220789
> Fixes: 1f86a00c1159 ("bus/fsl-mc: add support for 'driver_override' in the mc-bus")
> Signed-off-by: Danilo Krummrich <dakr@kernel.org>

Tested-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 12:09:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 12:09:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1261898.1554771 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5N3P-0001ER-Av; Wed, 25 Mar 2026 12:09:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1261898.1554771; Wed, 25 Mar 2026 12: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 1w5N3P-0001EK-8K; Wed, 25 Mar 2026 12:09:43 +0000
Received: by outflank-mailman (input) for mailman id 1261898;
 Wed, 25 Mar 2026 10:18:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <eperezma@redhat.com>) id 1w5LJh-0000qR-6O
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 10:18:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5LJg-00FbXh-IQ
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 11:18:24 +0100
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <eperezma@redhat.com>)
 id 69c3b660-bab6-0a2a0a5309dd-0a2a4506a894-42
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:18:24 +0100
Received: from [170.10.129.124] (helo=us-smtp-delivery-124.mimecast.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <eperezma@redhat.com>)
 id 69c3b66f-3034-0a2a45060019-aa0a817c8cdd-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:18:24 +0100
Received: from mail-yw1-f197.google.com (mail-yw1-f197.google.com
 [209.85.128.197]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-77-akHOpxKhN6WAkXex-vokJg-1; Wed, 25 Mar 2026 06:18:21 -0400
Received: by mail-yw1-f197.google.com with SMTP id
 00721157ae682-79868381229so25442097b3.0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 03:18:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mimecast20190719 header.d=redhat.com header.i="@redhat.com" header.h="From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:In-Reply-To:References"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1774433903;
	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=HBOh/aoPlGxYDPbqkk5UK0G4/ytz0Hu0GxFXOarsu9g=;
	b=G8h17s9J2A17bpLlEZzx+cMqFoWKBjIwok/JGT+oyiL2v93hAn+uN4vWrMqf/bS6njEgQZ
	u/PfmWYtA1Zr7nKpg3Jdk67X9os+pigzYkdnyW9CLjLrczbeon9GJdjPgZx2NPVKG7HjvA
	ZB6mXl8lDGE/G9qCrGITbXOUFGU7xCk=
X-MC-Unique: akHOpxKhN6WAkXex-vokJg-1
X-Mimecast-MFC-AGG-ID: akHOpxKhN6WAkXex-vokJg_1774433901
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774433901; x=1775038701;
        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=HBOh/aoPlGxYDPbqkk5UK0G4/ytz0Hu0GxFXOarsu9g=;
        b=DpB3+lYwaPUyElstlPgRPrxK9aUuvI37CSomPUUcejou1IIRkGWRgHfT9M8NavMYJ8
         CBxUIgLCgtq+dXDcx0QzcPnwPlxlYA+xRV3+jL5nmGwILNAwkQgSKApqXi8sxD56NL6c
         Ael2tjPlDukHSqL0vPzLnZ3KHDTwbCXPTfNlw+cKVrQp4wc3jA2SfJoc2T4H0OZOL1PI
         ndP6GEBc3yxcv+bo+cEbchJ0YCeTv4ArKTiKwtZ2qdOTclMKUk5AoN3c475Lx/zc6XZ4
         YCb8YRmnFZkMglS7kwHkZDLkcFiMP9GTzP9kreNeY09Z9BqWhcSIgCllQ4CbYRwpkcOm
         nDJw==
X-Forwarded-Encrypted: i=1; AJvYcCWyOQQevRGadJTT3JXKpQFEiRSZ/qMHukI4o4tifl0olaMNnCBY6PGRhgjtXpEvE5ANd4jw1lHt5CQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyLxND0oYUtIGVAxXzxugnJASUV5hWGIEGtux+jR4yKMmBq1Ptv
	BQt9tG9nbbSnJ/n/rhqcxvPD/SZOJGYdJIwL4ohMG5D0FbTG4TxL9fcmlT93n8CdaYUwAizn0kz
	ABwma2DzbLCSc07aBorTUxRmeLS2DtmXNbQaOzmijNWf/NlHTronR+JO7xBbHMnYBTnBkPY/Yjv
	+1W0t3jRefulpfpT6gRokTPbIKUS5IDfDrgmAWE1RwPXk=
X-Gm-Gg: ATEYQzzD90d+PEWf+s9J8JTzBcmcJcgl1K/ie9txw/gQQG/CtS0dFvjoHZk9TcswH1H
	HllK03lsJSz443seFCyvzr3WnqS+k7bqfWsx8tQLvv3cGD59GRb5xNdD7F4orsvvMHadkMe4fN2
	X9m0/lKvmFug6fpXU2YyEfsrSrxUIjsDCrZXtGE4ICkUOuhkzMuPIOGNeR4gNv27HDFjO621aiO
	9oGsw==
X-Received: by 2002:a53:acd1:0:20b0:64c:9f60:19d4 with SMTP id 956f58d0204a3-64ed77ef1ecmr4805254d50.8.1774433900686;
        Wed, 25 Mar 2026 03:18:20 -0700 (PDT)
X-Received: by 2002:a53:acd1:0:20b0:64c:9f60:19d4 with SMTP id
 956f58d0204a3-64ed77ef1ecmr4805242d50.8.1774433900219; Wed, 25 Mar 2026
 03:18:20 -0700 (PDT)
MIME-Version: 1.0
References: <20260324005919.2408620-1-dakr@kernel.org> <20260324005919.2408620-9-dakr@kernel.org>
In-Reply-To: <20260324005919.2408620-9-dakr@kernel.org>
From: Eugenio Perez Martin <eperezma@redhat.com>
Date: Wed, 25 Mar 2026 11:17:43 +0100
X-Gm-Features: AaiRm50qMzjkKEJ7Fkr-Roi7I1a_DrzOw3E963yu_3LAy7xQt4ygKXGG9Px12Pc
Message-ID: <CAJaqyWeuvD+XntgE9q4epQELpYYTOs1CznFn_tuOxeh_LurrcA@mail.gmail.com>
Subject: Re: [PATCH 08/12] vdpa: use generic driver_override infrastructure
To: Danilo Krummrich <dakr@kernel.org>
Cc: Russell King <linux@armlinux.org.uk>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
	"Rafael J. Wysocki" <rafael@kernel.org>, Ioana Ciornei <ioana.ciornei@nxp.com>, 
	Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Bjorn Helgaas <bhelgaas@google.com>, Armin Wolf <W_Armin@gmx.de>, 
	Bjorn Andersson <andersson@kernel.org>, Mathieu Poirier <mathieu.poirier@linaro.org>, 
	Vineeth Vijayan <vneethv@linux.ibm.com>, Peter Oberparleiter <oberpar@linux.ibm.com>, 
	Heiko Carstens <hca@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>, 
	Alexander Gordeev <agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>, 
	Sven Schnelle <svens@linux.ibm.com>, Harald Freudenberger <freude@linux.ibm.com>, 
	Holger Dengler <dengler@linux.ibm.com>, Mark Brown <broonie@kernel.org>, 
	"Michael S. Tsirkin" <mst@redhat.com>, Jason Wang <jasowang@redhat.com>, 
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>, Alex Williamson <alex@shazbot.org>, 
	Juergen Gross <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
	"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>, linux-kernel@vger.kernel.org, 
	driver-core@lists.linux.dev, linuxppc-dev@lists.ozlabs.org, 
	linux-hyperv@vger.kernel.org, linux-pci@vger.kernel.org, 
	platform-driver-x86@vger.kernel.org, linux-arm-msm@vger.kernel.org, 
	linux-remoteproc@vger.kernel.org, linux-s390@vger.kernel.org, 
	linux-spi@vger.kernel.org, virtualization@lists.linux.dev, 
	kvm@vger.kernel.org, xen-devel@lists.xenproject.org, 
	linux-arm-kernel@lists.infradead.org, Gui-Dong Han <hanguidong02@gmail.com>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: SBdhpUkHwzTBhfqiubrRuwpH8nm53Y2Dhu-p-cVttc0_1774433901
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-16d1c6/1774433904-7998F1C2-2706C7ED/0/0
X-purgate-type: clean
X-purgate-size: 4897

On Tue, Mar 24, 2026 at 2:00=E2=80=AFAM Danilo Krummrich <dakr@kernel.org> =
wrote:
>
> When a driver is probed through __driver_attach(), the bus' match()
> callback is called without the device lock held, thus accessing the
> driver_override field without a lock, which can cause a UAF.
>
> Fix this by using the driver-core driver_override infrastructure taking
> care of proper locking internally.
>
> Note that calling match() from __driver_attach() without the device lock
> held is intentional. [1]
>
> Link: https://lore.kernel.org/driver-core/DGRGTIRHA62X.3RY09D9SOK77P@kern=
el.org/ [1]
> Reported-by: Gui-Dong Han <hanguidong02@gmail.com>
> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=3D220789
> Fixes: 539fec78edb4 ("vdpa: add driver_override support")
> Signed-off-by: Danilo Krummrich <dakr@kernel.org>
> ---
>  drivers/vdpa/vdpa.c  | 48 +++++---------------------------------------
>  include/linux/vdpa.h |  4 ----
>  2 files changed, 5 insertions(+), 47 deletions(-)
>

Consolidate this logic is great, thanks!

> diff --git a/drivers/vdpa/vdpa.c b/drivers/vdpa/vdpa.c
> index 34874beb0152..caf0ee5d6856 100644
> --- a/drivers/vdpa/vdpa.c
> +++ b/drivers/vdpa/vdpa.c
> @@ -67,57 +67,20 @@ static void vdpa_dev_remove(struct device *d)
>
>  static int vdpa_dev_match(struct device *dev, const struct device_driver=
 *drv)
>  {
> -       struct vdpa_device *vdev =3D dev_to_vdpa(dev);
> +       int ret;
>
>         /* Check override first, and if set, only use the named driver */
> -       if (vdev->driver_override)
> -               return strcmp(vdev->driver_override, drv->name) =3D=3D 0;
> +       ret =3D device_match_driver_override(dev, drv);
> +       if (ret >=3D 0)
> +               return ret;
>
>         /* Currently devices must be supported by all vDPA bus drivers */
>         return 1;

Nit: Maybe all of this can be replaced by
abs(device_match_driver_override(dev,drv))? Or maybe we're putting too
much in the same line.

Either way,

Acked-by: Eugenio P=C3=A9rez <eperezma@redhat.com>

Thanks!




>  }
>
> -static ssize_t driver_override_store(struct device *dev,
> -                                    struct device_attribute *attr,
> -                                    const char *buf, size_t count)
> -{
> -       struct vdpa_device *vdev =3D dev_to_vdpa(dev);
> -       int ret;
> -
> -       ret =3D driver_set_override(dev, &vdev->driver_override, buf, cou=
nt);
> -       if (ret)
> -               return ret;
> -
> -       return count;
> -}
> -
> -static ssize_t driver_override_show(struct device *dev,
> -                                   struct device_attribute *attr, char *=
buf)
> -{
> -       struct vdpa_device *vdev =3D dev_to_vdpa(dev);
> -       ssize_t len;
> -
> -       device_lock(dev);
> -       len =3D sysfs_emit(buf, "%s\n", vdev->driver_override);
> -       device_unlock(dev);
> -
> -       return len;
> -}
> -static DEVICE_ATTR_RW(driver_override);
> -
> -static struct attribute *vdpa_dev_attrs[] =3D {
> -       &dev_attr_driver_override.attr,
> -       NULL,
> -};
> -
> -static const struct attribute_group vdpa_dev_group =3D {
> -       .attrs  =3D vdpa_dev_attrs,
> -};
> -__ATTRIBUTE_GROUPS(vdpa_dev);
> -
>  static const struct bus_type vdpa_bus =3D {
>         .name  =3D "vdpa",
> -       .dev_groups =3D vdpa_dev_groups,
> +       .driver_override =3D true,
>         .match =3D vdpa_dev_match,
>         .probe =3D vdpa_dev_probe,
>         .remove =3D vdpa_dev_remove,
> @@ -132,7 +95,6 @@ static void vdpa_release_dev(struct device *d)
>                 ops->free(vdev);
>
>         ida_free(&vdpa_index_ida, vdev->index);
> -       kfree(vdev->driver_override);
>         kfree(vdev);
>  }
>
> diff --git a/include/linux/vdpa.h b/include/linux/vdpa.h
> index 2bfe3baa63f4..782c42d25db1 100644
> --- a/include/linux/vdpa.h
> +++ b/include/linux/vdpa.h
> @@ -72,9 +72,6 @@ struct vdpa_mgmt_dev;
>   * struct vdpa_device - representation of a vDPA device
>   * @dev: underlying device
>   * @vmap: the metadata passed to upper layer to be used for mapping
> - * @driver_override: driver name to force a match; do not set directly,
> - *                   because core frees it; use driver_set_override() to
> - *                   set or clear it.
>   * @config: the configuration ops for this device.
>   * @map: the map ops for this device
>   * @cf_lock: Protects get and set access to configuration layout.
> @@ -90,7 +87,6 @@ struct vdpa_mgmt_dev;
>  struct vdpa_device {
>         struct device dev;
>         union virtio_map vmap;
> -       const char *driver_override;
>         const struct vdpa_config_ops *config;
>         const struct virtio_map_ops *map;
>         struct rw_semaphore cf_lock; /* Protects get/set config */
> --
> 2.53.0
>



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 12:15:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 12:15:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262169.1554800 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5N8q-0003w5-CV; Wed, 25 Mar 2026 12:15:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262169.1554800; Wed, 25 Mar 2026 12:15: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 1w5N8q-0003vy-8r; Wed, 25 Mar 2026 12:15:20 +0000
Received: by outflank-mailman (input) for mailman id 1262169;
 Wed, 25 Mar 2026 12:15:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <abdelkareem.abdelsaamad@citrix.com>)
 id 1w5N8o-0003vs-Kv
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 12:15:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5N8n-00G0I0-Vl
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 13:15:18 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <abdelkareem.abdelsaamad@citrix.com>)
 id 69c3d1d5-2eae-0a2a0a5409dd-0a2a4501e840-2
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 13:15:17 +0100
Received: from [160.101.131.9] (helo=na1pdmzitismtp02.tibco.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <abdelkareem.abdelsaamad@citrix.com>)
 id 69c3d1d4-6400-0a2a45010019-a0658309c58a-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 13:15:17 +0100
Received: from fedora.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id 175FE81836F4;
 Wed, 25 Mar 2026 08:14:33 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	jason.andryuk@amd.com,
	Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
Subject: [PATCH] x86/svm: Fix the IRET instruction completion tracking
Date: Wed, 25 Mar 2026 12:13:42 +0000
Message-ID: <20260325121342.1216471-1-abdelkareem.abdelsaamad@citrix.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1774440917-21EFADF3-0B6022DB/0/0
X-purgate-type: clean
X-purgate-size: 5072

On the AMD platform without the vNMI support, the current implementation of the
NMI completion tracking, via the IRET instruction interception, entails
functional correctness corner cases. The IRET interception causes VMExit as the
first step before its execution. A corner case can happen where the IRET
instruction faults during its execution and before it retires. In such
a scenario, if a VMExit occurs in between, due to NPF exit, for example, the
Xen hypervisor will incorrectly inject a pending NMI. Additionally, the single
stepping implementation with the explicit setting of the interrupt shadow bit
and intercepting an injected virtual interrupt could entail unnecessary delays
until the RFLAGS.IF is set to 1. Ensure the IRET instruction is retired by
verifying the forward progress of the IRET's instruction pointer (RIP) before
injecting a pending NMI. Rather implement the single stepping with a debug trap.

Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
---
 - CI tests:
https://gitlab.com/xen-project/people/aabdelsa/xen/-/pipelines/2407770975
---
 xen/arch/x86/hvm/svm/intr.c              | 17 +++++++++++++++++
 xen/arch/x86/hvm/svm/svm.c               | 17 +++++++++--------
 xen/arch/x86/include/asm/hvm/svm-types.h |  3 +++
 3 files changed, 29 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/intr.c b/xen/arch/x86/hvm/svm/intr.c
index 6453a46b85..c36d89e08b 100644
--- a/xen/arch/x86/hvm/svm/intr.c
+++ b/xen/arch/x86/hvm/svm/intr.c
@@ -112,6 +112,17 @@ static void svm_enable_intr_window(struct vcpu *v, struct hvm_intack intack)
          (general1_intercepts & GENERAL1_INTERCEPT_IRET) )
         return;
 
+    /*
+     * If there is a pending NMI but NMIs are blocked due to either the currently
+     * executing IRET is not yet retired or there is an interrupt shadow. Single
+     * step over the possible blocker.
+     */
+    if ( intack.source == hvm_intsrc_nmi )
+    {
+        vmcb->rflags |= (X86_EFLAGS_TF | X86_EFLAGS_RF);
+        return;
+    }
+
     intr = vmcb_get_vintr(vmcb);
     intr.fields.irq     = 1;
     intr.fields.vector  = 0;
@@ -136,6 +147,12 @@ void asmlinkage svm_intr_assist(void)
     /* Crank the handle on interrupt state. */
     pt_update_irq(v);
 
+    /*
+     * If there is an IRET instruction in-flight, ensure it is retired and
+     * it is accordingly safe to inject a pending NMI.
+     */
+    v->arch.hvm.svm.iret_mask &= ( guest_cpu_user_regs()->rip == v->arch.hvm.svm.nmi_iret_rip );
+
     do {
         intack = hvm_vcpu_has_pending_irq(v);
         if ( likely(intack.source == hvm_intsrc_none) )
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 243c41fb13..65da9ab777 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -548,7 +548,8 @@ static unsigned cf_check int svm_get_interrupt_shadow(struct vcpu *v)
     if ( vmcb->int_stat.intr_shadow )
         intr_shadow |= HVM_INTR_SHADOW_MOV_SS | HVM_INTR_SHADOW_STI;
 
-    if ( vmcb_get_general1_intercepts(vmcb) & GENERAL1_INTERCEPT_IRET )
+    if ( (vmcb_get_general1_intercepts(vmcb) & GENERAL1_INTERCEPT_IRET) ||
+         v->arch.hvm.svm.iret_mask )
         intr_shadow |= HVM_INTR_SHADOW_NMI;
 
     return intr_shadow;
@@ -3063,15 +3064,15 @@ void asmlinkage svm_vmexit_handler(void)
         u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
 
         /*
-         * IRET clears the NMI mask. However because we clear the mask
-         * /before/ executing IRET, we set the interrupt shadow to prevent
-         * a pending NMI from being injected immediately. This will work
-         * perfectly unless the IRET instruction faults: in that case we
-         * may inject an NMI before the NMI handler's IRET instruction is
-         * retired.
+         * IRET clears the NMI mask. However, The IRET instruction in the
+         * guest is not retired yet. We should ensure the IRET instruction
+         * retired / completed  before injecting another pending NMI, if
+         * there is a pending NMI. Store the current IP, so we can later
+         * verify, if we had any progress.
          */
         general1_intercepts &= ~GENERAL1_INTERCEPT_IRET;
-        vmcb->int_stat.intr_shadow = 1;
+        v->arch.hvm.svm.iret_mask = true;
+        v->arch.hvm.svm.nmi_iret_rip = guest_cpu_user_regs()->rip;
 
         vmcb_set_general1_intercepts(vmcb, general1_intercepts);
         break;
diff --git a/xen/arch/x86/include/asm/hvm/svm-types.h b/xen/arch/x86/include/asm/hvm/svm-types.h
index 051b235d8f..d2fbab6940 100644
--- a/xen/arch/x86/include/asm/hvm/svm-types.h
+++ b/xen/arch/x86/include/asm/hvm/svm-types.h
@@ -23,6 +23,9 @@ struct svm_vcpu {
     uint64_t vmcb_pa;
     int     launch_core;
 
+    bool iret_mask;
+    unsigned long nmi_iret_rip;
+
     uint8_t vmcb_sync_state; /* enum vmcb_sync_state */
 
     /* VMCB has a cached instruction from #PF/#NPF Decode Assist? */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 12:52:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 12:52:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262222.1554807 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Nif-00021a-4E; Wed, 25 Mar 2026 12:52:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262222.1554807; Wed, 25 Mar 2026 12: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 1w5Nif-00021T-1Z; Wed, 25 Mar 2026 12:52:21 +0000
Received: by outflank-mailman (input) for mailman id 1262222;
 Wed, 25 Mar 2026 12:52:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5Nid-00021N-Hf
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 12:52:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Nib-00CeoI-6K
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 13:52:18 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c3da7a-e002-0a2a0a5209dd-0a2a450880d2-34
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 13:52:18 +0100
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c3da82-1950-0a2a45080019-d155802dec51-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 13:52:18 +0100
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-486507134e4so29499265e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 05:52:18 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487165ba70dsm21817955e9.3.2026.03.25.05.52.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 05:52:17 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Content-Language:Cc:To:Subject:From:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774443138; x=1775047938; 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=xVrLyiOzdoV4vF9CYA7wz8r+UywYJtBVKxDjTLF4KcE=;
        b=ZxXmA/cS2zwxZOe62ZDb53E6wKOB8cSK4U977IHfrXxcZJXZsaQ9UK/Ffy0GJOlfMk
         A5k0K3Q+jdTqeYNlwsKzVI85rWuOcQoK8GF3kQ/68v38xyUPvI76MRcdfNplV7MQ/+VN
         Pi02FtOWS8zSyGzRLdFB03wLSSIPPSsUKawreJDJLOma74XD/XwBjXCa/NKV9J/8mlOL
         SRRi+j5xMOD3I/26nzgnLz/YDVxRgOc1IE/36pEHtKdNx9ozLoypM0w5fkMYgtfEnUkB
         ak7tkeF4DZTL2JwKYgHD8gifQvW5LMx3QN2KGj66kx1lXnkvmKcA/lka6zix7EK0Lm7k
         +Dfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774443138; x=1775047938;
        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=xVrLyiOzdoV4vF9CYA7wz8r+UywYJtBVKxDjTLF4KcE=;
        b=j9CE8CPMNK8UPTes/kh/zJLT8869LnB8QjrE/0KTzpL918RsttWW2mi58YzirCT7SC
         rVADQ117Iqbgak3v5G1FOMVOMiURokhHk3cIYybbb/h9CPZYaIB8jBwFwXkAo8zkiky/
         MvKYyr3aHwf+aw9lRQtgF6nQ2UczBrX7qbEIpsk9PytiSGBfkmpAiw5QHZI9tYSbMdsA
         5OZ+HPR7kDFOf8gp6cVbJAf1pd+n9EL/JvabY5zFfxZ5G++oi3o31wPpBSANwInV9bzA
         t0mMYkEh9Cjx1ZB2m+Q49ezoGmbuW68f7uQWV2EDDrOmfDxwEegRGfaSA5K4YA2wvV86
         R3SQ==
X-Gm-Message-State: AOJu0Yw8xd1WtfkBBbWAQQIKYWAcKVUZBF+8YSgK4UJL5LSw7DJGsG9N
	cXqAk2t0/xX8Ys2sRsJCGp8sP+NbltpvfwbzB2GjP6mhG7MKsvI4Dvu5SdJv1lXcEctoNQdXJ18
	GxEjF6A==
X-Gm-Gg: ATEYQzyjz4GV0v0PcNnWyQSVBmYmKAjYaFK3XfFvQZNJqQ/+GiOTBSU7Fe8Q3rxoWwu
	jKhuSTIeETMiYt72SkBPiD8Pquvoqlm7awwmEa/vyoz6PpOuqk7ty6MOprtvrlwXJRo0A2x5Xqn
	aRHYMbRiciUO12/NcPFlpgNEfuJzBTENcu6/+mr5U5jDKaaUbryB5qCKwpYhE7RahLFCKvoywEG
	maTQ7xjV6hadNg40C4wURhgPhuoTs1WOty4gAGSjXOeGtV2b5nW9LFMsv8ytgHCRejgN38HpeQg
	XOgadyVwD2O5lZPckeoaZkCLoKYAtOrHQ0aiAE/ktyu2sooJrorBVbjYj+Tu8BIVmC8RXiAul6n
	mV8/NPciPcnCumx0cB0pOD1zhZ5LcNWb9xpER2xiojjlnwdIhTpgHOJKeNFxvSxHyPpqg8SWpN6
	iv1djU81GALrKjwMn4op4GlfS3B5hq2ZSvJXdK8D780eeccRJdYNlXJ++fnGMk8P/CJ2bc4a19N
	HPwD0sGYsWoOyJk/xvl8b6omA==
X-Received: by 2002:a05:600c:3b12:b0:485:3b00:f92e with SMTP id 5b1f17b1804b1-48715fc370fmr55488815e9.2.1774443137909;
        Wed, 25 Mar 2026 05:52:17 -0700 (PDT)
Message-ID: <89d17a24-0a1f-4f3f-ac2f-f3701a8d78dd@suse.com>
Date: Wed, 25 Mar 2026 13:52:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2 0/3] arinc653: misc small adjustments
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1774443138-F141E726-F859D3C4/0/0
X-purgate-type: clean
X-purgate-size: 125

1: overwrite entire .dom_handle[] for Dom0 slots
2: don't assume Dom0 is the control domain
3: avoid array overrun

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 12:53:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 12:53:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262232.1554816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5NkD-0002V0-DS; Wed, 25 Mar 2026 12:53:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262232.1554816; Wed, 25 Mar 2026 12:53:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5NkD-0002Ut-Aw; Wed, 25 Mar 2026 12:53:57 +0000
Received: by outflank-mailman (input) for mailman id 1262232;
 Wed, 25 Mar 2026 12:53:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5NkC-0002Un-SO
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 12:53:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5NkC-005qMb-7v
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 13:53:56 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c3dadf-5cb7-0a2a0a5109dd-0a2a45088cb2-34
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 13:53:56 +0100
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c3dae4-1950-0a2a45080019-d155802cb1e4-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 13:53:56 +0100
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-4870206f73bso28899325e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 05:53:56 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4871169384dsm140463055e9.1.2026.03.25.05.53.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 05:53:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774443236; x=1775048036; 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=LmSd5qruvs0NXHmpFxUrztIz9TUvxd6siuRZ84L3jZ8=;
        b=Gv2S208KLi9dGKlFw8T1N55diCBU9RD85H0Gd84pb2/eg21VGQkfZlaUOI06maGTao
         jffGlUQBBTH0dv7RM8Z0p06N+cOAoerPvozWTFzBy7Me3E7otudFhEixUnxLX1CakCNe
         Nh5seKr5UEMu7uBLXj0KCQe4a4rIyUklv9QSap6UvFas2FZzCTPWQaCaLlw0mnghDZVu
         nFTX3/fZaf7kFWfL5wTQGaP/Re8WvZh3vAMhb0RNZF5ynha+tvPhKvqOizinHGfGN6/g
         yIIGo4YH/RmiOWAQNZR/0ihaltO4Fjf0TWRfDG4ZH3xwyLpeo0Ium96B8pCTR535XHOR
         ip3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774443236; x=1775048036;
        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=LmSd5qruvs0NXHmpFxUrztIz9TUvxd6siuRZ84L3jZ8=;
        b=A6p5Sz4nFwUYi+ipAoOT5uSbQOvOH4ZCTdIw1LAv60w3aiMJ03vOsqV2ezvzTfXXvk
         KqgQxpyaSBG/AWVYYEEChvOkfcqhr7FpNd7zN5oDXhMK5hpXI4p7tUSys48uknrClgJa
         DgccAmBb5g0fr36AdHf7vO392q8VhYw6zNBjb2MxeqieI0aUt6PAFEVHUXptpt6QDOTc
         N4n9bhGl0zMjdoBu4uG5U1a/6mJaNItLTNpMXrLteh5J9faPDYTb2vDfWBGqm6RIU4HU
         7SkgGxuyNSkjTZzOUnVO3Im6myaXY/mwGZgRlhaZgtIL+xjvO/+hkUYPvCJVU/gq1xyV
         Qbpw==
X-Gm-Message-State: AOJu0YyieiT4FoJrqq0ke/O/YP2KWnrqipRZVM2AIYpdS1GJzlSPil/d
	zyDaIRWqCNTphRqa+qnTrZdmk1Ag74lvneLmER2Ppp4DYLmU/XDS/BQvy/2vAVpHwUFib32j2oB
	gfn2SCQ==
X-Gm-Gg: ATEYQzyhRMKFmi2V+YGvFKuehJUal8r1U++mBl8Hks+a92TfAR7PwOFSkujKD59R1MT
	fMre/HEbYSYM9j4znxhfEji+XfLB47fb7NTx6cAUFBFBrxqa/w8FDFcAnrCha3n+l1VTwF+JRzC
	IG8AkiWNZ97sm8cypykJ/K0geBpZs5CWY19ARl/kHTSH4Gdp+j5QnQzihU7x7uVdQKzIGPbz0Bo
	xDzEDVXzKp82nBWFsMRWJtczq6+AdAj3eqTMTO4vC5qOvk5dakZrKhEvlm4bP2Ra3/qxO1lBoVz
	7CzgT6R0qEXrqKXziVP0F0XeMYqo/cwU/0GTGHWAuXYHrxTqRAiFNu37Fw2WmBrUuKUUOJSNx99
	NjbwhxDzupwVoZLtxukRQZxsMV8zGnmTGftrA8p8r+havi0bI7qN3UZngGS5VW8WK6uEj3VGUHp
	nCnOtANYrCv8QISZIfSbQuE2PfvEhYFJmrSDjNiU9L9TWFb7O4deMLQXEhIK64CShUCGkdhEAf+
	DlsY54XRzQ1uEo=
X-Received: by 2002:a05:600c:1394:b0:485:3fe6:21f5 with SMTP id 5b1f17b1804b1-48715fd9fe7mr51133765e9.10.1774443235603;
        Wed, 25 Mar 2026 05:53:55 -0700 (PDT)
Message-ID: <1b73213f-90ec-436f-821e-b9998be9a9b1@suse.com>
Date: Wed, 25 Mar 2026 13:53:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 1/3] arinc653: overwrite entire .dom_handle[] for Dom0
 slots
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>
References: <89d17a24-0a1f-4f3f-ac2f-f3701a8d78dd@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: <89d17a24-0a1f-4f3f-ac2f-f3701a8d78dd@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1774443236-EBE9D726-E5CBFCB5/0/0
X-purgate-type: clean
X-purgate-size: 1086

When that code still lived in a653sched_init(), it was redundant with the
earlier memset() / xzalloc(). Once moved, the full structure field needs
setting, as dom_handle_cmp() uses memcmp(). Rather than implying the
handle to be all zero, copy the handle out of the domain structure.

Fixes: 9f0c658baedc ("arinc: add cpu-pool support to scheduler")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: Copy handle rather than clearing it.

--- a/xen/common/sched/arinc653.c
+++ b/xen/common/sched/arinc653.c
@@ -420,7 +420,9 @@ a653sched_alloc_udata(const struct sched
 
         if ( entry < ARINC653_MAX_DOMAINS_PER_SCHEDULE )
         {
-            sched_priv->schedule[entry].dom_handle[0] = '\0';
+            memcpy(sched_priv->schedule[entry].dom_handle,
+                   unit->domain->handle,
+                   sizeof(sched_priv->schedule->dom_handle));
             sched_priv->schedule[entry].unit_id = unit->unit_id;
             sched_priv->schedule[entry].runtime = DEFAULT_TIMESLICE;
             sched_priv->schedule[entry].unit = unit;



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 12:54:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 12:54:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262241.1554826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Nkm-000305-Ln; Wed, 25 Mar 2026 12:54:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262241.1554826; Wed, 25 Mar 2026 12:54:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Nkm-0002zy-IX; Wed, 25 Mar 2026 12:54:32 +0000
Received: by outflank-mailman (input) for mailman id 1262241;
 Wed, 25 Mar 2026 12:54:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5Nkl-0002zm-Fg
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 12:54:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Nkk-009vQn-Rt
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 13:54:30 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c3dafc-e002-0a2a0a5209dd-0a2a450c9200-34
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 13:54:30 +0100
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c3db06-f93d-0a2a450c0019-d1558035bcdc-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 13:54:30 +0100
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-486b9675d36so54026355e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 05:54:30 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487172f916asm30216625e9.5.2026.03.25.05.54.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 05:54:29 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774443270; x=1775048070; 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=Hr58uimG8bI+Ne0+PIoQEbzojsnDffZKHoNOIV+6NWk=;
        b=S9qirmPZ0uSESPmxXwrC6lvjY94O7XFwAHQuM5esE7sIbUCC9sEuV3W9oHtAql/kzR
         GdpmXBrG8ZnzLeLEruvIARu/NBU55rexoghJL2qDS0Lx3ojzcuRUDyukLPAPSMbVQ8d9
         O+QjyPUHDGZMX086pk0x2bzSaIBWS6PGGY+7pulzKn90SedsnS8FrDXcPuVOqQ782QCx
         NqrHZd8lqyBlPADA2EEWTE1TpNr/grPMHUQ/uW3DXn0x45/vFl58tm8rn+pzT+fUjrry
         T7Hjsxg87ygF/wxohxISAyVcH6fyMo5K/6oHL/Bdp/ml4cGnhPuagT9hjWt3dK0uZK/e
         9cCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774443270; x=1775048070;
        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=Hr58uimG8bI+Ne0+PIoQEbzojsnDffZKHoNOIV+6NWk=;
        b=bNw9iRh9tJIDnrRiIx5LcKCEtBXtInRfcyljpvnsWhRNE8p+uahHdYS2atrida160X
         gulZnLhdDyLsqc0OKQMYJ4Y2k3dDw23YuFz23641x6KrDqjjfj9suvBhm/CM/0DWG0Hw
         nNbAgfFmzFIN3JC2wBzVpgEwIk8vpDqyKZ21jHFLntzmvObR+o7P7S9ILXCFv1lhGHID
         4xHeW5G4ot5tTCioknruBISl2x1jxK6LcQk1WSi4Dm+/MkSQsUqC4UAteXTSwkrvsnUe
         huh42PxRmnz2Mzobm87/wO4/LF+VcYN0uzbgX/ZQj6n87zqPsEhxiBRBEPZJSSuAZPEc
         K83A==
X-Gm-Message-State: AOJu0YxOKBPSEuwXA9buucNhtTZnw7louMGK0SEmx84H5DChk95gi7Co
	aP4c5BlQhRnNOFV9gop03OWYVdsLpIfEGa1e7toCdHxCXChL36fvh4Jtjj3VjxWoBr6H6bjPit/
	Ec2Hlyg==
X-Gm-Gg: ATEYQzykOpnhOS8Z/30TJXtdVXOwcGZI6SCc7vXE3vbCAi13daaGTjtXUq3XwQDhOti
	MU3fMtLqcl0CTvzXFmw/1skYiywYME7cFom7PBfvVIHRHWIkzyP7jJ8ZMcNsekZQOq7ThXKoOve
	ML/zHv8K9VBIudy7l0qiprS2XRyGpN+Lqp2Um+chz2ljqgOcxF7A0vbQAzZ+UJDkYmgDeCLB4m2
	MLXAhnXYKkRA14dTFVwoDahVOI8JCbAP7TkLvzr4Rc+1A6djDqJ4pnVHbAI4mvBgLwJ9EcFDT01
	s9JbnUEt5m46aUkvNBwogFJQB+ToJtxtgwP/UH2LeQSyl0cUp+p0xX2smTX3ua0I3SvPaGyyKhr
	UB8UhhNk+5yb8YOJoYXgfZDQMvThr+qqRE39CBvLCyp771i8xcEtLqisv5fAwAJZV3YkBvKtamB
	A8k90AIzSwsy1sG2972ZGeN9EWj1PTUPtBDrK+jEMvUdAKt1pFkFvd/w0MvbAgdkCVhyX/MBg3I
	K0EeKDDzhI6GzQ5eHBQyzgo1g==
X-Received: by 2002:a05:600c:45c4:b0:485:3dfc:57a with SMTP id 5b1f17b1804b1-487160717d3mr49116945e9.32.1774443270200;
        Wed, 25 Mar 2026 05:54:30 -0700 (PDT)
Message-ID: <3a491956-81a6-4c7e-acb0-14f135fc5596@suse.com>
Date: Wed, 25 Mar 2026 13:54:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 2/3] arinc653: don't assume Dom0 is the control domain
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>
References: <89d17a24-0a1f-4f3f-ac2f-f3701a8d78dd@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: <89d17a24-0a1f-4f3f-ac2f-f3701a8d78dd@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1774443270-F5AB5734-4CB8D694/0/0
X-purgate-type: clean
X-purgate-size: 1090

Leaving aside highly disaggregated environments, the control domain is
what will invoke XEN_SYSCTL_SCHEDOP_putinfo. Its vCPU-s therefore need to
be able to run unconditionally, not those of the domain with ID 0 (which
may not exist at all).

Fixes: 9f0c658baedc ("arinc: add cpu-pool support to scheduler")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
There being no "else" to the if(), what about other control domain vCPU-s?
And why are they added to all scheduler instances?
---
v2: New.

--- a/xen/common/sched/arinc653.c
+++ b/xen/common/sched/arinc653.c
@@ -411,10 +411,10 @@ a653sched_alloc_udata(const struct sched
     spin_lock_irqsave(&sched_priv->lock, flags);
 
     /*
-     * Add every one of dom0's units to the schedule, as long as there are
-     * slots available.
+     * Add every one of the control domain's units to the schedule, as long as
+     * there are slots available.
      */
-    if ( unit->domain->domain_id == 0 )
+    if ( is_control_domain(unit->domain) )
     {
         entry = sched_priv->num_schedule_entries;
 



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 12:55:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 12:55:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262250.1554836 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5NlX-0003YP-Vv; Wed, 25 Mar 2026 12:55:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262250.1554836; Wed, 25 Mar 2026 12:55:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5NlX-0003YI-SA; Wed, 25 Mar 2026 12:55:19 +0000
Received: by outflank-mailman (input) for mailman id 1262250;
 Wed, 25 Mar 2026 12:55:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5NlW-0003Xd-Of
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 12:55:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5NlW-004tIQ-4X
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 13:55:18 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c3db2d-5cb7-0a2a0a5109dd-0a2a45049b9c-28
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 13:55:18 +0100
Received: from [209.85.128.52] (helo=mail-wm1-f52.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c3db35-c823-0a2a45040019-d1558034e97e-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 13:55:18 +0100
Received: by mail-wm1-f52.google.com with SMTP id
 5b1f17b1804b1-486fba7ce4cso23780265e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 05:55:18 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487116f17f3sm123754005e9.1.2026.03.25.05.55.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 05:55:17 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774443317; x=1775048117; 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=oR28QN8+Eegb6HhdyO3GVPROtcEHLWwVpemo8dhr310=;
        b=ULvoizBodET5YDqgan504+BSaiIamkGn1+4QRcnkIoRHA8fRjuiL5M2qS1olyMnbOr
         jNgXJFJJ8pxmwpM8+gfZUiJMOngQinzsTWeo1hFkReOzDAz8A30CDJwWI+gd3LKOfJpv
         +tL66KOcmKEQqtkgoOfL+F9/Lf8RMXprzznSwGCgtuNVttnz41h1goHOZXIybi29k1wQ
         McEdEJcSlfGlZD84psZf3c4MSzrvpHg0INt3MlT9mkWdaTc9lGS4ipQvsumqtu1SBVFS
         vEmqvnLSDXcYySuTq2b8whxkopOP5dJ7S2SPpKdwTyz26skTq80/StD+Q9zoW/WcCi/I
         vrcw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774443317; x=1775048117;
        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=oR28QN8+Eegb6HhdyO3GVPROtcEHLWwVpemo8dhr310=;
        b=Tx9e1qCWNq3NobCDmy+9eGv3Jh/rqHZ5jOBalyjVslgfWcd+p4rv5phPIoUsrYHeS6
         a9l27cAIW3zxNz7B5Xm2hE4XxqHyUtIzVTuCio1BZ83aMcb+cUpGeJYonx22kOA9TUwu
         SkKVqTTcaVgC/nHaCES3XtdeGB3qoQ1MRdrUYWIGyWvm4wDz0mo7tzqliF19RpldXlWi
         nYxhvNWwItJAqpXdbAugoKC/pNF61QPsmzWRPs6/l38iA0k4bpvzb+sKV5eq35WO1DWp
         sxaQSBvD467IzN1NSJTIA737O32B2bLkC2Rsp9Cwl09yuBLbRV+LP91n/yC6KElL5XSS
         NDMQ==
X-Gm-Message-State: AOJu0YxqOTbfUqWSIckIfTgf28dgDAoHvLFM4L4w4YElNr71FAbEGwEq
	mWED1Q1Osl356RG+UE852YnIiFa00/ei1no8OqpXTHcrlAQVWfr71/c4WnxCf91HVCrEZWj7xdf
	GZO/k3Q==
X-Gm-Gg: ATEYQzwLAXNl6mES3iQxO5carzsWU47GSSPRNhmM+w8G3BTOrcHSqUjrrNa6GOMS3Ou
	VlfSuPQ9Ro6Smk4ZtSIFKVEOtdi1M6qUgJyZYPHA0wxXQl0zXb3PoCxlGVMrvL0jt3bnNnuxwVX
	ITHW4Q0kUoaTnjedVC/1hvHDThqSC3nw4JdlF5ufhFnWDmlfrA/0tzcOoOp+coB2kmMsAGDyWWD
	f4sdFkwA9cB73CB8hYMNF8cSKS5D6yzGkEAt1GhAXx7b/Xi4uc8jlqHfyCMLNR6Sryd7XL3KAA2
	tKZN4RIyaBazQNCQSTaOYMwYdV5/+PzyM9p6zPjsde5I8kAAwGvmFTW6kG5LawB4CDtHP+LwswH
	+krxmioKhE2NiwXHNk/llDSQ9NWBx10lW3oC91yu4BXHSj0cuw9LXhbhq19ibhN2jHn/h+1gwNk
	dPlruDZ9ITz0MNEjEla3Xa+O8Dbz5PdkcgFyv8Wf3unsJ5lknxiQi8AlD7NSmZtk5pM8aLg7dev
	2QV0AqAFtA79QtrxYBt7R9LNQ==
X-Received: by 2002:a05:600c:3b12:b0:471:700:f281 with SMTP id 5b1f17b1804b1-4871607a3c5mr56024565e9.25.1774443317484;
        Wed, 25 Mar 2026 05:55:17 -0700 (PDT)
Message-ID: <7829c799-64b2-4686-8895-6ec73231c5d8@suse.com>
Date: Wed, 25 Mar 2026 13:55:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 3/3] arinc653: avoid array overrun
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>,
 Kamil Frankowicz <kamil.frankowicz@cert.pl>, Juergen Gross <jgross@suse.com>
References: <89d17a24-0a1f-4f3f-ac2f-f3701a8d78dd@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: <89d17a24-0a1f-4f3f-ac2f-f3701a8d78dd@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1774443318-1227B9D1-2EB0B1F5/0/0
X-purgate-type: clean
X-purgate-size: 1659

Incrementing ->sched_index between bounds check and array access may
result in accessing one past the array when that is fully filled
(->num_schedule_entries == ARINC653_MAX_DOMAINS_PER_SCHEDULE).

Fixes: 22787f2e107c ("ARINC 653 scheduler")
Reported-by: Kamil Frankowicz <kamil.frankowicz@cert.pl>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Jürgen, provided I understood him correctly, suggests that something like

    while ( now >= sched_priv->next_switch_time )
    {
        sched_priv->sched_index++;
        ASSERT(sched_priv->sched_index < sched_priv->num_schedule_entries);
        sched_priv->next_switch_time +=
            sched_priv->schedule[sched_priv->sched_index].runtime;
    }

should also be valid to move to, due to constraints applied by
arinc653_sched_set(). I'm hesitant to make such a change though, not
really knowing the scheduler; the change here looks more obviously correct
to me. Albeit the Fixes: tag may thus want dropping.
---
v2: New.

--- a/xen/common/sched/arinc653.c
+++ b/xen/common/sched/arinc653.c
@@ -552,12 +552,9 @@ a653sched_do_schedule(
 
     /* Switch minor frame or find correct minor frame after a miss */
     while ( (now >= sched_priv->next_switch_time) &&
-        (sched_priv->sched_index < sched_priv->num_schedule_entries) )
-    {
-        sched_priv->sched_index++;
+            (++sched_priv->sched_index < sched_priv->num_schedule_entries) )
         sched_priv->next_switch_time +=
             sched_priv->schedule[sched_priv->sched_index].runtime;
-    }
 
     /*
      * If we exhausted the domains in the schedule and still have time left



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 13:05:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 13:05:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262282.1554844 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5NvB-0005dc-UR; Wed, 25 Mar 2026 13:05:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262282.1554844; Wed, 25 Mar 2026 13:05:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5NvB-0005dV-Rd; Wed, 25 Mar 2026 13:05:17 +0000
Received: by outflank-mailman (input) for mailman id 1262282;
 Wed, 25 Mar 2026 13:05:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <bounce-md_30504962.69c3dd89.v1-690d33c367e14505967812fda87fbdd9@bounce.vates.tech>)
 id 1w5NvA-0005dO-2P
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 13:05:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Nv9-005suX-Cb
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 14:05:15 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <bounce-md_30504962.69c3dd89.v1-690d33c367e14505967812fda87fbdd9@bounce.vates.tech>)
 id 69c3dd82-e002-0a2a0a5209dd-0a2a450be136-26
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 14:05:15 +0100
Received: from [198.2.132.30] (helo=mail132-30.atl131.mandrillapp.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from
 <bounce-md_30504962.69c3dd89.v1-690d33c367e14505967812fda87fbdd9@bounce.vates.tech>)
 id 69c3dd8a-ef63-0a2a450b0019-c602841e782a-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 14:05:15 +0100
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-30.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fgnFP2N3CzP0KGQF
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 13:05:13 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 690d33c367e14505967812fda87fbdd9; Wed, 25 Mar 2026 13:05:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mte1 header.d=mandrillapp.com header.i="@mandrillapp.com" header.h="From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"; dkim=pass header.s=mte1 header.d=vates.tech header.i="teddy.astie@vates.tech" header.h="From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774443913; x=1774713913;
	bh=EmYNPxd/fkrYVjGGg/zcCsWJR8I68XdbR6a/tSj2C3Y=;
	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=FieBcGnmz9LWXS04t7K1fu3K1npiHiemUkl0agl0JsJEMhsn9sJQy7OhqisUsO+U7
	 lkhkL4eDrb+eyVBFcopImkKzFK6mzI8nuvgtYpNBjgXgSO/CmxKM0v52SvXobhf9OF
	 3XLvQX6VXmqAoTZR1Rtv92USJlJkH7kKLe607kd+5zG8VvEdQ//MoOZ2esTOxU8xE4
	 vEynyHteIdkwjK19QPoNpV0v+ZyJq6+qlGC+5mMhAhM9kCAZnTNOqV8RDcwwHgsE9C
	 64M9gZg1aI/udqH3aL2d92J1m+aIwxAWlg2iohr20D24IoLlLwMufrdOrVVr0WoBoI
	 0HqXfr5q7CFcw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774443913; x=1774704413; i=teddy.astie@vates.tech;
	bh=EmYNPxd/fkrYVjGGg/zcCsWJR8I68XdbR6a/tSj2C3Y=;
	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=DWcR3dGeYuq2dVXGAi8pSsBukKDPWPSZGt3P0+9X0U0j/IB4rgZm2lZ1d+HrTNqfA
	 4XpUr76fnjjG4dpPRkhlZXgf0fLfAWV5LX470n6uryyjrPRDt4vCKNgBySc4s2/WfE
	 fRaio4A3nQiu5BJfTJVbNkv2x3PpgQ22LQF6m7hEFv7LI1EOHLKOWGZsJmw9d5p02X
	 6P0KUe5yYq/qrECpGV32b76+r01wijC77IUFdVBsrmlA4i+V27oL371HBhe1Pv7bEB
	 gYHfnpmXdSyEkXYIeD3b3o1x2AJ6Gev8QE1uW1mvDkoRqh7dQ1ua4+MjLkKaknFw5X
	 GZ9QLd728bvIw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=203/6]=20x86:=20Define=20some=20Intel=20vPMU=20leafs?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774443912148
Message-Id: <fcad4b7f-b3db-4835-9c95-dd5a801f0690@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.1773160025.git.teddy.astie@vates.tech> <83a573dcb365761c0f089325365090b6f963fb03.1773160025.git.teddy.astie@vates.tech> <d7438af9-1aad-446b-bd80-7d9e8f955cdc@suse.com> <690ad4c0-d9b1-45ec-8634-f8c002c0282a@vates.tech> <ab2802f8-1253-4be4-a4c8-5094d7378a8f@suse.com>
In-Reply-To: <ab2802f8-1253-4be4-a4c8-5094d7378a8f@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.690d33c367e14505967812fda87fbdd9?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260325:md
Date: Wed, 25 Mar 2026 13:05:13 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-42698a/1774443915-9A6AE112-FDCC507E/0/0
X-purgate-type: clean
X-purgate-size: 3336

Le 25/03/2026 =C3=A0 12:43, Jan Beulich a =C3=A9crit=C2=A0:
> On 25.03.2026 10:48, Teddy Astie wrote:
>> Le 24/03/2026 =C3=A0 10:25, Jan Beulich a =C3=A9crit=C2=A0:
>>> On 10.03.2026 17:44, Teddy Astie wrote:
>>>> --- a/xen/include/xen/lib/x86/cpu-policy.h
>>>> +++ b/xen/include/xen/lib/x86/cpu-policy.h
>>>> @@ -162,7 +162,15 @@ struct cpu_policy
>>>>                uint64_t :64, :64; /* Leaf 0x9 - DCA */
>>>>    
>>>>                /* Leaf 0xa - Intel PMU. */
>>>> -            uint8_t pmu_version, _pmu[15];
>>>> +            struct {
>>>> +                uint8_t /* a */ version, num_gp_ctrs, gp_ctr_width,
>>>> +                                event_enum_length;
>>>> +                uint32_t /* b */:32;
>>>> +                uint32_t /* c */ fixed_ctr_mask;
>>>> +                uint32_t /* d */ num_fixed_ctr:5, fixed_ctr_width:8, =
:1,
>>>> +                                 anythread_depreciation:1, slots_per_=
cyc:4,
>>>> +                                 :13;
>>>> +            } pmu;
>>>
>>> Style-wise this looks to follow e.g. the cache leaf, so perhaps okay, e=
ven
>>> if I would have preferred you to follow what we did for leaf 6.
>>
>> My idea was to put all that as .pmu.*, so I wouldn't need to prefix
>> everything with "pmu_". I'm not sure if you're talking about a different
>> approach.
> 
> The "pmu" is fine. I'm talking of what's inside the struct {}.
> 

Is it regarding having union and _aa, _ab, (...) fields or prefixing 
fields with pmu_ ?

>>   > The named> boolean field, however, wants to be of type bool.
>>
>> Which fields ?
> 
> There's only one named 1-bit field: anythread_depreciation.
> 
>>   > And then the unnamed 1-bit> field really wants to be 2 bits, for
>> anythread_depreciation to be bit 15
>>> (etc).
>>>
>>
>> Ah yes thanks, I got confused with the fields size for a second.
>> I also found that slots_per_cyc is 3 bits instead of 4.
> 
> Not as far as I can see.
> 
>> I think this diff fixes it overall.
>>
>> --- a/xen/include/xen/lib/x86/cpu-policy.h
>> +++ b/xen/include/xen/lib/x86/cpu-policy.h
>> @@ -167,9 +167,9 @@ struct cpu_policy
>>                                    event_enum_length;
>>                    uint32_t /* b */:32;
>>                    uint32_t /* c */ fixed_ctr_mask;
>> -                uint32_t /* d */ num_fixed_ctr:5, fixed_ctr_width:8, :1=
,
>> -                                 anythread_depreciation:1, slots_per_cy=
c:4,
>> -                                 :13;
>> +                uint32_t /* d */ num_fixed_ctr:5, fixed_ctr_width:8, :2=
,
>> +                                 anythread_depreciation:1, slots_per_cy=
c:3,
>> +                                 :11;
> 
> Why 11 all of the sudden?
> 
Okay, I think I finally figured out field sizes (5-bit field confuses me).

struct {
     uint8_t /* a */ version, num_gp_ctrs, gp_ctr_width,
                     event_enum_length;
     uint32_t /* b */:32;
     uint32_t /* c */ fixed_ctr_mask;
     uint32_t /* d */ num_fixed_ctr:5, fixed_ctr_width:8, :2;
     bool             anythread_depreciation:1;
     uint32_t         slots_per_cyc:4, :12;
} pmu;


> Jan
> 

Teddy


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Wed Mar 25 13:15:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 13:15:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262292.1554853 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5O55-0007VL-Qp; Wed, 25 Mar 2026 13:15:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262292.1554853; Wed, 25 Mar 2026 13:15:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5O55-0007VE-No; Wed, 25 Mar 2026 13:15:31 +0000
Received: by outflank-mailman (input) for mailman id 1262292;
 Wed, 25 Mar 2026 13:15:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5O54-0007V7-89
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 13:15:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5O53-00GmDx-K7
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 14:15:29 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c3dfea-2eae-0a2a0a5409dd-0a2a450aa876-22
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 14:15:29 +0100
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c3dff1-1772-0a2a450a0019-d155802fc51b-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 14:15:29 +0100
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-486fd3a577eso45240585e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 06:15:29 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487116d82e4sm267048175e9.12.2026.03.25.06.15.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 06:15:27 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774444529; x=1775049329; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RkH9AR3j/hJ32hms72OZj0/BvkDSHLrYYwhfZ0YTeEo=;
        b=StYE+NcSyZSmg8beEzjmDGxY7F23zKwHyVOQyZN1ppf6alnE3q+eMUnqK8UYmbJ8T8
         rEwsx4H+IzQCR7+mSPmXktHwNDVsX7Tj03rzR6C7PImvn4kFGLDdPkT50/NcoyXpyMtD
         LT1wGScKPzHStmRIkmkyUAQrgxq3UjWStdUNwbYtUEzxmVxEfmpymiIBYzEttmO3MACP
         GcTo/AmIC6NfHcAGjnpeyA1k5O6kbmv4KAgy/qA2/lg6KPHSPP8X9LOZvBTm/jJJReIU
         F2el3GIGp+kYTHdCZPq7moNU/MYuc6TbuJ9HA+hG3JLaURO5MCMbsuV+pctA56kA2Ldt
         Sw1w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774444529; x=1775049329;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RkH9AR3j/hJ32hms72OZj0/BvkDSHLrYYwhfZ0YTeEo=;
        b=IlO6xLkHC5tZLN5k38kl8AOb5UPSOuQ7yzwYPwF5FaEcrwF8mzTAhDHPatImm0p0OX
         YTM2vXyFMSqFO1N5jcz0jKP+fcWk40YqlEsE9z94u2c31y7tNc1HU+puaOxYCwiLBW9o
         gqXayUSspLpI9VJYmutbE64CXQtHuvPmLnLY6d29nr1mMPuAlltHGA/lAunBn7yTwuTY
         Z5QC06ov7f5h+KCehLS9UfBVJfxBZ2OmaeAUeGI1zzFSQz/u36iUUOLTi6dK+87XSlxT
         AreM3F5eMF5uDgohTHfq/U/NYiqxX4NVBmXIiOhln4CexryOUwdAIlyqpW9icQL/gul3
         +dcA==
X-Forwarded-Encrypted: i=1; AJvYcCX5pZeNsjU9zA4R+ygd3rTmM+vOZ/uYfBEvD08sY7bBMQoqBKcV/A0Il1U/QewuLilJgqgqN+YwaqQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwNOAhhEMlhWCetK5BAOXwg9r74L0o051DqYqJ1TwM/FmgSsG5c
	5Xdx4PNBiH4weatm5kPu0wCpQ0ClfJEqGDxIVLGybN9za/V2X6GYLOAgYPL9KKDNLA==
X-Gm-Gg: ATEYQzx9J33Jl1kF8kaeF8Q97+twZIdft8FaFTb2FALEWqB+RP1l1kzdjbd+NLiRtCE
	nvVO1KY5y0Xx4638nifyhpO9nUnfH8xY+hjUubhBevwo3iNHiQ3RXMby1PStMLOxzCUz96jciXt
	k0rXWMa0nA5rFj+ThUD1yfV/ZQ6BKsRBCj9eOYhsu7WThK/wCrKvFyE4I7OwktvXY+4/pR5FVFK
	F7ie4OtrFntO07Kfn6drtMSLKCGoP42aNO/+LUOEtWUiQ/BU3aGZPU8JAcnHpCh4XZMqmRQZNkR
	6Ed1M6InqZYzr4EAyflV9xViZ+a8XK4Xz70A4IpWi2h+x/Mol921iTnRoT2mYQyzpnaMEXiW6x3
	7Km1gWkYs9jD7XTs6OIWfKUB5SF4UUl8F+QDcRMc21owBXFXqs40TaGj4y9otvGGH0O7BOtpxAG
	S7F15uIqft/1YBnqhissfpVo8qMepRgVmmWNW16kKeYntNR4XDp1gZEhkFybRrYpYMHJOWrN71K
	at/g7/bClkjXlaP3M1/CuRx0A==
X-Received: by 2002:a05:600d:8453:b0:486:ffa3:594 with SMTP id 5b1f17b1804b1-4871604c8d4mr37395835e9.23.1774444528697;
        Wed, 25 Mar 2026 06:15:28 -0700 (PDT)
Message-ID: <566dfb38-f7fe-4d01-8056-0f823e88de71@suse.com>
Date: Wed, 25 Mar 2026 14:15:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/6] x86: Define some Intel vPMU leafs
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.1773160025.git.teddy.astie@vates.tech>
 <83a573dcb365761c0f089325365090b6f963fb03.1773160025.git.teddy.astie@vates.tech>
 <d7438af9-1aad-446b-bd80-7d9e8f955cdc@suse.com>
 <690ad4c0-d9b1-45ec-8634-f8c002c0282a@vates.tech>
 <ab2802f8-1253-4be4-a4c8-5094d7378a8f@suse.com>
 <fcad4b7f-b3db-4835-9c95-dd5a801f0690@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: <fcad4b7f-b3db-4835-9c95-dd5a801f0690@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1774444529-52C94900-F90D27F6/0/0
X-purgate-type: clean
X-purgate-size: 2131

On 25.03.2026 14:05, Teddy Astie wrote:
> Le 25/03/2026 à 12:43, Jan Beulich a écrit :
>> On 25.03.2026 10:48, Teddy Astie wrote:
>>> Le 24/03/2026 à 10:25, Jan Beulich a écrit :
>>>> On 10.03.2026 17:44, Teddy Astie wrote:
>>>>> --- a/xen/include/xen/lib/x86/cpu-policy.h
>>>>> +++ b/xen/include/xen/lib/x86/cpu-policy.h
>>>>> @@ -162,7 +162,15 @@ struct cpu_policy
>>>>>                uint64_t :64, :64; /* Leaf 0x9 - DCA */
>>>>>    
>>>>>                /* Leaf 0xa - Intel PMU. */
>>>>> -            uint8_t pmu_version, _pmu[15];
>>>>> +            struct {
>>>>> +                uint8_t /* a */ version, num_gp_ctrs, gp_ctr_width,
>>>>> +                                event_enum_length;
>>>>> +                uint32_t /* b */:32;
>>>>> +                uint32_t /* c */ fixed_ctr_mask;
>>>>> +                uint32_t /* d */ num_fixed_ctr:5, fixed_ctr_width:8, :1,
>>>>> +                                 anythread_depreciation:1, slots_per_cyc:4,
>>>>> +                                 :13;
>>>>> +            } pmu;
>>>>
>>>> Style-wise this looks to follow e.g. the cache leaf, so perhaps okay, even
>>>> if I would have preferred you to follow what we did for leaf 6.
>>>
>>> My idea was to put all that as .pmu.*, so I wouldn't need to prefix
>>> everything with "pmu_". I'm not sure if you're talking about a different
>>> approach.
>>
>> The "pmu" is fine. I'm talking of what's inside the struct {}.
>>
> 
> Is it regarding having union and _aa, _ab, (...) fields or prefixing 
> fields with pmu_ ?

As said, the "pmu" name of the containing struct is fine. Obviously then there
is no need for pmu_ prefixes. The differences between the cache leaf and leaf
6 go beyond the union aspect though, and I really mean all differences there.
As Andrew wasn't overly happy with the _6a and _6c union members, I wouldn't
insist on the introduction of counterparts here (and if they were omitted,
unions wouldn't be needed either). I think it's advisable though, allowing to
omit the trailing unnamed bitfield (the size of which you've now corrected a
2nd time).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 13:22:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 13:22:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262310.1554862 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5OC0-0000up-I2; Wed, 25 Mar 2026 13:22:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262310.1554862; Wed, 25 Mar 2026 13:22: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 1w5OC0-0000ui-Ej; Wed, 25 Mar 2026 13:22:40 +0000
Received: by outflank-mailman (input) for mailman id 1262310;
 Wed, 25 Mar 2026 13:22:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1w5OBz-0000ub-C9
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 13:22:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5OBy-00GFEK-A0
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 14:22:38 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69c3e191-e002-0a2a0a5209dd-0a2a4501a084-42
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 14:22:38 +0100
Received: from [209.85.218.43] (helo=mail-ej1-f43.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jgross@suse.com>)
 id 69c3e19d-6400-0a2a45010019-d155da2bf081-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 14:22:37 +0100
Received: by mail-ej1-f43.google.com with SMTP id
 a640c23a62f3a-b7cf4a975d2so324506366b.2
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 06:22:37 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b98335f1747sm790969366b.33.2026.03.25.06.22.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 06:22:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774444957; x=1775049757; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=L+cqNa7YcOUKSoQ7EG4ov8dwqBhYtaSI/mWmcIOm5G0=;
        b=HwCxTHyNKh+3r9qfk+gBOaKHw/arTvKigSlCqXsgI81SvkQhzgQb1sFjFnLvlpW5XJ
         IyKTxJoAmQguYjWgy7g/ei4AwZDQPOqm+/3F4eGGqSJ7HywcRPb1tggkpkLfWxsFSoif
         G+/33R7RvPHwiRYAakggkrzEvfojm+Iz+H21tKFtcEtqPhOegWTyidfV7xE0lk+zBseS
         WeerN1LqWskDX4NQd5MVKuIAw6e6XTBLGjnzzx3t3kF6Rw6GbqTwdM3k8VpFP8twUu4i
         0TvKn55uqhY+ZaRSriP6GEm7wdwaASyn7MIVoCxMr1ubMH1nWNtI38F1TyiLlesLHA5R
         eHzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774444957; x=1775049757;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=L+cqNa7YcOUKSoQ7EG4ov8dwqBhYtaSI/mWmcIOm5G0=;
        b=BlREWzfCqm0INP2rOMQIN4NSEZa30wsIIIW7ENusC0a2iZCcStl43K5iB3qzB39391
         HvjiYRGA3dMyfDc3ie5ql7RwEU7mAXSBYFioQuoGF///pFsGEMkA7LC2DFDkReRSvm3C
         d1bitj01Hpo+cDFOp/+q1D6XjtOWmXmPL0to/jWgtbiEl4YZiplODyOcT+tIVk12ilee
         gI/jh8C+U86nsMBGzlxAjzs5odMWu0Z8dtENX3XxQxjo0hr3jqzRcKRy+dZHtFUisQxF
         KDlVx5pqM+gJJMyyf5I2MFVWCe+NiDr66cFzKKONeWYHdqsgyZnUCAJRdYwyipTBB6Oc
         /2dA==
X-Forwarded-Encrypted: i=1; AJvYcCW86Y0Kt7PWG8vFRGh3m46TD5+zqphlc+6fiRrHSjCApQq/3vJmgVqjcnV8zI0lDit46/0I1saQaAs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy9J8o9BMbYskFX0QtKX0Rj7qy4Sb3ILpiK1VdW92iHuIivG/hu
	ixav97lwLGCjrV+0mdlxkYm7as0orbKvuZKnSfJtrhk53wSTEdoL9gE6s7+vD/XNm3I=
X-Gm-Gg: ATEYQzxod5JUZpv3yUx15HrhKT2lFecofhlMW8uncN/mU+BWPWZclea3cUVHFNJtnPm
	Pl52IHYCegJacTsHckWRldRgnE0JkBAjKZQklj1EZVRn+v3GOp4dtCs5tj4/gfBRb9Uw0j5Lb4X
	1ZNZJfbJ1+/BHYD4QIjudLeY+TrDdVk9G4TYhSVATzVW7lwzC93iPLSL6M/F8lEB3ZJQ1qoExI8
	SYkt4hP6rU/i1CcJhT+Q7ZfeMAolAF1FrVwDC9q5JdiDULDKPHGRzjJwWpGRTavSjenIJXhTWxJ
	sJFjhuTNGZYzna8dfBQ1HprcnJnCeKaC4sau31q3Zu3oSi03YD5nZYbEFnhZVneitDLzh9ZpPzl
	Y/xeRwpCJ5voCaT3fmAAb7hW4+7omfWZZ45V4skQSXZngj8cGHKLH5ooRn0JtH+qSLpK2FR0gRk
	+dECdfzEm+i3iVcttoubrYbRllPkA0lQINYyPNXPXOZbSoL3pQSb+o+gRt2i9WkQC8AJBn2noM6
	f+OWLhl4r6rQuV03ok7xyLoqT2KR7KpyY/aKWwToYfI5acksK83WQ==
X-Received: by 2002:a17:907:8694:b0:b98:11cb:5fa9 with SMTP id a640c23a62f3a-b9a3f1ac473mr246395666b.22.1774444957033;
        Wed, 25 Mar 2026 06:22:37 -0700 (PDT)
Message-ID: <362f599f-b195-49da-8c53-1db69add203f@suse.com>
Date: Wed, 25 Mar 2026 14:22:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] arinc653: avoid array overrun
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>,
 Kamil Frankowicz <kamil.frankowicz@cert.pl>
References: <89d17a24-0a1f-4f3f-ac2f-f3701a8d78dd@suse.com>
 <7829c799-64b2-4686-8895-6ec73231c5d8@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: <7829c799-64b2-4686-8895-6ec73231c5d8@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------E8kN60KZ20qHA15vjNqk2d4C"
X-purgate-ID: tlsNG-d62444/1774444957-228E5DF3-7012851D/0/0
X-purgate-type: clean
X-purgate-size: 9513

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------E8kN60KZ20qHA15vjNqk2d4C
Content-Type: multipart/mixed; boundary="------------HJ35cNX2pDmumbNuSRbjSygA";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>,
 Kamil Frankowicz <kamil.frankowicz@cert.pl>
Message-ID: <362f599f-b195-49da-8c53-1db69add203f@suse.com>
Subject: Re: [PATCH v2 3/3] arinc653: avoid array overrun
References: <89d17a24-0a1f-4f3f-ac2f-f3701a8d78dd@suse.com>
 <7829c799-64b2-4686-8895-6ec73231c5d8@suse.com>
In-Reply-To: <7829c799-64b2-4686-8895-6ec73231c5d8@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=

--------------HJ35cNX2pDmumbNuSRbjSygA
Content-Type: multipart/mixed; boundary="------------Dq40zhO00aWGOwD49nfIA4Ox"

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

T24gMjUuMDMuMjYgMTM6NTUsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBJbmNyZW1lbnRpbmcg
LT5zY2hlZF9pbmRleCBiZXR3ZWVuIGJvdW5kcyBjaGVjayBhbmQgYXJyYXkgYWNjZXNzIG1h
eQ0KPiByZXN1bHQgaW4gYWNjZXNzaW5nIG9uZSBwYXN0IHRoZSBhcnJheSB3aGVuIHRoYXQg
aXMgZnVsbHkgZmlsbGVkDQo+ICgtPm51bV9zY2hlZHVsZV9lbnRyaWVzID09IEFSSU5DNjUz
X01BWF9ET01BSU5TX1BFUl9TQ0hFRFVMRSkuDQo+IA0KPiBGaXhlczogMjI3ODdmMmUxMDdj
ICgiQVJJTkMgNjUzIHNjaGVkdWxlciIpDQo+IFJlcG9ydGVkLWJ5OiBLYW1pbCBGcmFua293
aWN6IDxrYW1pbC5mcmFua293aWN6QGNlcnQucGw+DQo+IFNpZ25lZC1vZmYtYnk6IEphbiBC
ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCg0KUmV2aWV3ZWQtYnk6IEp1ZXJnZW4gR3Jv
c3MgPGpncm9zc0BzdXNlLmNvbT4NCg0Kd2l0aCAuLi4NCg0KPiAtLS0NCj4gSsO8cmdlbiwg
cHJvdmlkZWQgSSB1bmRlcnN0b29kIGhpbSBjb3JyZWN0bHksIHN1Z2dlc3RzIHRoYXQgc29t
ZXRoaW5nIGxpa2UNCj4gDQo+ICAgICAgd2hpbGUgKCBub3cgPj0gc2NoZWRfcHJpdi0+bmV4
dF9zd2l0Y2hfdGltZSApDQo+ICAgICAgew0KPiAgICAgICAgICBzY2hlZF9wcml2LT5zY2hl
ZF9pbmRleCsrOw0KPiAgICAgICAgICBBU1NFUlQoc2NoZWRfcHJpdi0+c2NoZWRfaW5kZXgg
PCBzY2hlZF9wcml2LT5udW1fc2NoZWR1bGVfZW50cmllcyk7DQo+ICAgICAgICAgIHNjaGVk
X3ByaXYtPm5leHRfc3dpdGNoX3RpbWUgKz0NCj4gICAgICAgICAgICAgIHNjaGVkX3ByaXYt
PnNjaGVkdWxlW3NjaGVkX3ByaXYtPnNjaGVkX2luZGV4XS5ydW50aW1lOw0KPiAgICAgIH0N
Cj4gDQo+IHNob3VsZCBhbHNvIGJlIHZhbGlkIHRvIG1vdmUgdG8sIGR1ZSB0byBjb25zdHJh
aW50cyBhcHBsaWVkIGJ5DQo+IGFyaW5jNjUzX3NjaGVkX3NldCgpLiBJJ20gaGVzaXRhbnQg
dG8gbWFrZSBzdWNoIGEgY2hhbmdlIHRob3VnaCwgbm90DQo+IHJlYWxseSBrbm93aW5nIHRo
ZSBzY2hlZHVsZXI7IHRoZSBjaGFuZ2UgaGVyZSBsb29rcyBtb3JlIG9idmlvdXNseSBjb3Jy
ZWN0DQo+IHRvIG1lLiBBbGJlaXQgdGhlIEZpeGVzOiB0YWcgbWF5IHRodXMgd2FudCBkcm9w
cGluZy4NCg0KdGhlIEZpeGVzOiB0YWcgZHJvcHBlZCwgYXMgdGhlIGNvbnN0cmFpbnRzIG1l
bnRpb25lZCBhcmUgSU1PIHJlYWxseSBlbm91Z2gNCnRvIGF2b2lkIGFuIGlzc3VlLg0KDQpJ
IGFncmVlIHRoYXQgdGhlIGN1cnJlbnQgY29kZSBpcyBmYXIgZnJvbSBvYnZpb3VzbHkgY29y
cmVjdCwgc28geW91ciBwYXRjaA0KaXMgZGVmaW5pdGl2ZWx5IGFuIGltcHJvdmVtZW50Lg0K
DQoNCkp1ZXJnZW4NCg==
--------------Dq40zhO00aWGOwD49nfIA4Ox
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-----

--------------Dq40zhO00aWGOwD49nfIA4Ox--

--------------HJ35cNX2pDmumbNuSRbjSygA--

--------------E8kN60KZ20qHA15vjNqk2d4C
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/Ey8FAmnD4ZsFAwAAAAAACgkQsN6d1ii/Ey+e
Dgf/T3Usezpe2g9SQU3IzdZu90xIVAaZIXN/uKSpctHRSpMJ543U8f5wGGSq5cJ3NgMj/AryFI6p
4ZUbgaG7J0bUQ+eRYn+2L5bN3VrZKahZfCPTefhE35b4MTQy4RCK1yi07yy1A+9fn+QlbbXSOtEe
ZM6Srnbo/n35lLha4zoItPVFOTEQLxSp3wqPBMhVLWeSimo51JUopegjtMzWp4DW2vaBGIIc8Ewt
Q8ls8br+eQaE+ZokkGfdrMIzKI3oqBXK50HjnjatU9HmGj1pxbelAy5pDR+LEywRHgHd4Jrx/xk8
UgYDG8i75nIBrbFANfYyUnGVYTXJRG8lTsP6W6TUKw==
=xkqA
-----END PGP SIGNATURE-----

--------------E8kN60KZ20qHA15vjNqk2d4C--


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 13:23:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 13:23:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262313.1554871 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5OCL-0001Hb-SH; Wed, 25 Mar 2026 13:23:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262313.1554871; Wed, 25 Mar 2026 13:23: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 1w5OCL-0001HU-P1; Wed, 25 Mar 2026 13:23:01 +0000
Received: by outflank-mailman (input) for mailman id 1262313;
 Wed, 25 Mar 2026 13:23:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5OCL-0001ES-1A
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 13:23:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5OCK-005xsz-Cq
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 14:23:00 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c3e1aa-bab6-0a2a0a5309dd-0a2a45058d38-20
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 14:23:00 +0100
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c3e1b4-5aeb-0a2a45050019-d155802be8a8-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 14:23:00 +0100
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-4853c1ca73aso23903665e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 06:23:00 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4871736b808sm19311475e9.23.2026.03.25.06.22.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 06:22:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774444980; x=1775049780; 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=iqac+6c8t8wghMoXvnhnXW9xcCqlv3ehXF1kkwdr1HM=;
        b=RxEWzFEQZkXh7SnCUIb3he0HZlZClOluFQTFjYEwQOuyr3L3T4Ox7R9kzYbjRoay6J
         JMuzOEcrCpUa2tJ8U45WOeV+muwBD2f4OJnx7lK8ihKHDnEmoH8MNZHzLCrukmamCg/s
         xSgSVlNTQOoQELOSwyr1a5I7wIJLhMLkAfulYNFPIgy0TWwKj5n/gDcW0Q5qeOefFARv
         BMrFei/BW2eGeC2cV21Sem1x11UJY8D6lffE3y9Q2FW4AM6/pF9wBIbRASzqUQnK+lM/
         WlDkZ6kqvrMwOaoWDXqP7G40+nPW6+Pi8uUGq9SctrFaG8yE2JwmljlDkcdz9QuKW7MG
         mrZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774444980; x=1775049780;
        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=iqac+6c8t8wghMoXvnhnXW9xcCqlv3ehXF1kkwdr1HM=;
        b=eKokjhnv6mUUwmezor+3YV0hy/V5mxcPyu3w8iwGFsBMY8TvneITXvK85rr4NQi43Y
         IgWahEmyYXTWQznG90b5Td5EqbmbrFyvfkFjsRJj90VJylsVGzIAgI2B8BJ8KNrbyMBE
         w1ZWu6Ej2yPbOu6Fvo0UxciLnVJLB7TwASFdUZTHDa9/HbxEG3epqOJIArbFypbZAtU7
         SDzxYIdCb/KgjVyXWvm6Te+b81Nt/JL3dpwRU68NX+/By/P9E6s5PFHr7vLqBbZ25KVf
         AAm7sHdT25VpZEMBThyyg12KJB21XARELh44SNIdUrvJLlt3p5mK43m8YgRPtOlNzUhI
         GBAg==
X-Gm-Message-State: AOJu0YxWDmOLq02aSMCFgSOnB9ohPHYBQQZTPj/sqV+bF/45Ka479PNB
	p3KiZN6mCUEbsxQcPX9gRtvawK5L8fIT89Y41C4Lr4gCDylxSrsBCN0QmbpaUnh8r/euO2yp/zF
	gzDkP4Q==
X-Gm-Gg: ATEYQzw648D1aF5MdIL1ulhOtxdmECx7prrzW9jQwOFPfBTy68plNq8sPAazIQoQu0I
	WwB7cjNkTPC2aNEGKJjEoxK9lt30Yjsfcm2tIJGM2i6P0fOAhvrXds3BOPDBs7stNCsw7zLvXdy
	/0LKJFX0nkGLf//jHyPgxrGkXV/mQDqrkLuRPNOF4i0nSKXlfFXBO1vY/iHUBF42K3oy5ydEI6F
	BSMa/E88g2O3q8I6KnpiHmiq1s8rs2/uLvNUjcxWxIhsCQlQ+McvdQGk2oeQMIn4qRm0h8u8sSg
	CPr+ruRmQo/LHHZzbDS8ZCCradmrNRmvcwj47MJ48dUUsx9oMOOPRdL500BeXrFpTe8hGx1ylhp
	LehKWTVxgyBA8wfRggJRX18j6zRRzTNmPtBuER8iIPrAOeCM24b+uNGjqObt30jS1BfNPrTERmM
	1bvlPMyXJZbInq7cjG7nE3s9NxNQT8TNgK0eZl5KZcNXXNSPCqkRwVVXBkVTv3XE1FCRaQfeqMS
	ZYjmS69oD/NMvE=
X-Received: by 2002:a05:600c:5296:b0:485:364e:934e with SMTP id 5b1f17b1804b1-4871605cec5mr55665575e9.21.1774444979551;
        Wed, 25 Mar 2026 06:22:59 -0700 (PDT)
Message-ID: <aa19318c-c91a-4cda-b36f-d2049914c42c@suse.com>
Date: Wed, 25 Mar 2026 14:22:57 +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: Marek Marczykowski <marmarek@invisiblethingslab.com>,
 Daniel Smith <dpsmith@apertussolutions.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2 0/2] EFI: cfg file parsing 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
X-purgate-ID: tlsNG-c201ff/1774444980-23082488-76B5DEC6/0/0
X-purgate-type: clean
X-purgate-size: 85

1: avoid OOB config file reads
2: move pre_parse() back next to get_value()

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 13:24:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 13:24:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262330.1554880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5ODP-0001uO-4i; Wed, 25 Mar 2026 13:24:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262330.1554880; Wed, 25 Mar 2026 13: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 1w5ODP-0001uH-1l; Wed, 25 Mar 2026 13:24:07 +0000
Received: by outflank-mailman (input) for mailman id 1262330;
 Wed, 25 Mar 2026 13:24:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5ODN-0001u9-8h
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 13:24:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5ODM-00ES7v-Kj
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 14:24:04 +0100
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c3e1f4-bab6-0a2a0a5309dd-0a2a4506d9ba-0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 14:24:04 +0100
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c3e1f4-3034-0a2a45060019-d1558036f039-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 14:24:04 +0100
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-4852afd42ceso18539075e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 06:24:04 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487172f909asm29347635e9.6.2026.03.25.06.24.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 06:24:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774445044; x=1775049844; 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=4z2f6acb15Hu47Bm0pjYeGaxQ7vqXYq12+Jv1/7oZr4=;
        b=bzayj5fA/Y9qLJkhj7Eg1DtmI5MLZPGOusszw2Fw7X/d2g4VBTDD/yu6YBtaglW1HG
         1mW8fzP7OgHfWOiYaFjnWIKwU+ZFYbt1GYJiGZkrh7MTI2M4TM8WlGycGnpjzjyarJTx
         N6dZbdsk/a9XkdyGLsoRB/l1imSK/mRuq6bBVQLHV5NabLBO+lbezH30YxVVPCVlOKT3
         pv82enE9PjKnXRiO48ISsin2XMG2iT9pMBk+zbPuUbhGZGxgRwSSeJC26QLErmocpD5Z
         SuQ2MjyYZ0fS9350+Al/rM1yXHGT3vLvGntmzXo7OvmzqZrDxkLKjJHgLrqJp2k7VXFq
         KJmQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774445044; x=1775049844;
        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=4z2f6acb15Hu47Bm0pjYeGaxQ7vqXYq12+Jv1/7oZr4=;
        b=EAVs3oSHjnsxlb/UBqVvIRa4XFhcqXQoKExbblgAusMK2GAQ/tHHJgNVr+OYSf96dx
         0hP5oHKReSDJUS/gk5Ck2fMTZRz6q7MLf+F0O2XYy2nvpA542I0lkGJ3DtcjVEMpvCvM
         2cYDjBzo7qPGdYrdYVQGpFlOsktNkpSNf0VBUuHIagb/cuGEORbg1wgRg9B6XEwZGwEq
         1xCmeGs7ES8YhieLD2JvYtQednCqyQUr5rWx7S0YvaobbRXPgodv6GkSYPVr7IUS6Xu1
         EmLHp7RmVBHkm/RlzYKBYX5b+E6SZsgnqDJYw3zsSwWOGuYta2ThYQEfwZMPR8Rw2IR/
         K8gQ==
X-Gm-Message-State: AOJu0YwrJEyyA6FXNvM/rMDwBLdkx3K/bNJUp3fRZPzo5ZNG4QdwzZlE
	0OtlBdj3/Po7mwFco+2MZq4/wLnzACpaCCz3cP7C9pgDa2HE0jyQrk/6vl0b0YuSeRxx6xF7pfh
	sdJyjjg==
X-Gm-Gg: ATEYQzxAUfJUBE6Oh+GJFFw/RRQZaJ6jQDaO8mudRUaTTH56z3Ws/hSB64VO9uO3qgC
	y0eF8TTgyhIcHSDhAHvd1n/9u0BhN806rJDk7CQdEaOinTxdz/LzuRKrMsVEMCMzKH82BztnQnG
	Mx6of3/838MXe6ICDyoOasXvbTqvIG2AtHhU0QqJ7tiLmvv7dge+G6FHbozEGU/fF3eAzHIbBzh
	6dGf8Y4wrcZdbbt9tLOE9DitcijW45ZA7t22T6P9rHqoj5ZmQPhbSbTTeE+lkBTPB330oieSyLd
	BS98fLeWknVdHOk0wt/F5MdJWOaMSc3SMHZU8+5YAPAPEj27y+L1s3p+wTJmwdJhx+v++3vIp8D
	JSM5qN9ziKSdWfiTWpoHhLUVOrUuyZEwxHiKvYvsl1o1x1Ec5p8usARLrHtb3G7bWEX7KUpgOV+
	BfDyA74iLmG1zStl5ikADyyVX5jMJNNd4KziIxt0MAlVacmSVNw3K8Vv3pHEkVEvWXedpOAp4HL
	ABrVCqYsTWkyhTqvfPLxIVJmw==
X-Received: by 2002:a05:600c:6287:b0:479:1b0f:dfff with SMTP id 5b1f17b1804b1-48715fd545bmr54798785e9.10.1774445043897;
        Wed, 25 Mar 2026 06:24:03 -0700 (PDT)
Message-ID: <f0cd81c0-81d2-4273-a2c8-736ce976670a@suse.com>
Date: Wed, 25 Mar 2026 14:24:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 1/2] EFI: avoid OOB config file reads
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>
References: <aa19318c-c91a-4cda-b36f-d2049914c42c@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: <aa19318c-c91a-4cda-b36f-d2049914c42c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1774445044-82B961C2-9087AD82/0/0
X-purgate-type: clean
X-purgate-size: 3185

The message emitted by pre_parse() pretty clearly states the original
intention. Yet what it said wasn't done, and would have been unfriendly to
the user. Hence accesses past the allocated buffer were possible. Insert a
terminating NUL immediately past the data read, to then drop the no longer
applicable message.

NB: The iscntrl() check of just the last byte is more strict than what
pre_parse() would accept without issuing its prior message, yet I'd like
to keep the new logic reasonably simple. Config files shouldn't be huge,
and we shouldn't be _that_ short of memory (or we'd fail elsewhere pretty
soon).

Fixes: bf6501a62e80 ("x86-64: EFI boot code")
Reported-by: Kamil Frankowicz <kamil.frankowicz@cert.pl>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Is the efi_arch_flush_dcache_area() really needed for config files? Else
it could be in an "else" to the "if()" added to read_file(). And then,
how is it guaranteed that data from the area isn't brought back into the
cache (perhaps speculatively)?

In read_section() we could further leverage section alignment padding (if
present, and if filled with zeroes), to limit when to allocate and copy.
Thoughts?
---
v2: Entirely different approach.

--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -833,8 +833,9 @@ static bool __init read_file(EFI_FILE_HA
     what = L"Allocation";
     file->addr = min(1UL << (32 + PAGE_SHIFT),
                      HYPERVISOR_VIRT_END - DIRECTMAP_VIRT_START);
+    /* For config files allocate an extra byte to put a NUL there. */
     ret = efi_bs->AllocatePages(AllocateMaxAddress, EfiLoaderData,
-                                PFN_UP(size), &file->addr);
+                                PFN_UP(size + (file == &cfg)), &file->addr);
     if ( EFI_ERROR(ret) )
         goto fail;
 
@@ -853,6 +854,9 @@ static bool __init read_file(EFI_FILE_HA
 
     efi_arch_flush_dcache_area(file->ptr, file->size);
 
+    if ( file == &cfg )
+        file->str[file->size] = 0;
+
     return true;
 
  fail:
@@ -878,6 +882,23 @@ static bool __init read_section(const EF
 
     file->ptr = ptr;
 
+    /* For cfg file, if necessary allocate space to put an extra NUL there. */
+    if ( file == &cfg && file->size && !iscntrl(file->str[file->size - 1]) )
+    {
+        EFI_PHYSICAL_ADDRESS addr;
+        EFI_STATUS ret = efi_bs->AllocatePages(AllocateMaxAddress,
+                                               EfiLoaderData,
+                                               PFN_UP(file->size + 1), &addr);
+
+        if ( EFI_ERROR(ret) )
+            return false;
+
+        memcpy((void *)addr, ptr, file->size);
+        file->addr = addr;
+        file->need_to_free = true;
+        file->str[file->size] = 0;
+    }
+
     handle_file_info(name, file, options);
 
     return true;
@@ -906,9 +927,6 @@ static void __init pre_parse(const struc
         else
             start = 0;
     }
-    if ( file->size && end[-1] )
-         PrintStr(L"No newline at end of config file,"
-                   " last line will be ignored.\r\n");
 }
 
 static void __init init_secure_boot_mode(void)



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 13:24:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 13:24:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262336.1554889 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5ODp-0002NO-Bb; Wed, 25 Mar 2026 13:24:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262336.1554889; Wed, 25 Mar 2026 13:24: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 1w5ODp-0002NH-89; Wed, 25 Mar 2026 13:24:33 +0000
Received: by outflank-mailman (input) for mailman id 1262336;
 Wed, 25 Mar 2026 13:24:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5ODn-0002N4-S5
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 13:24:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5ODn-00A2Wh-7v
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 14:24:31 +0100
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c3e1fd-5cb7-0a2a0a5109dd-0a2a450998f4-40
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 14:24:31 +0100
Received: from [209.85.221.53] (helo=mail-wr1-f53.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c3e20e-e484-0a2a45090019-d155dd35e5bf-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 14:24:31 +0100
Received: by mail-wr1-f53.google.com with SMTP id
 ffacd0b85a97d-43b9144790dso2518f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 06:24:31 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b644bdaf8sm53050131f8f.13.2026.03.25.06.24.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 06:24:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774445070; x=1775049870; 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=9BxAnQbQlusdq+Un61mXTAQpPPP3xW8V/k0uzyq9UTY=;
        b=bkVe48Vk84IlAUBMmIwCIYXQFLPevH8kNgSVd7sRqcVqZGx32lmyYG0o4g6ml23RBX
         Q3NqIU/958xf9ieoz/VDEvXuSlZ/RhyOl4rg0hyFNooVBKW0Tvj3tGVfC6pPWjjvOOZY
         1H4NQlu++B9I/PVI0h4YsekjsWXRbw//3iM8M7nOlfOJMfXEEdc3rXv3Vd2CGccVJ1d3
         ppiIsh/5kvX0e9a5cPNzaIqTx8YcCztaCfqzK5kLHPO63CzE4OOxoVKDSSsKLB+Mnjy0
         FxyJwgVNZQNYSLU0UbkUC1OplEcamBZEHQrf41tZbYrr/ElfrsnUPmZOGHWN6ymNpgQ3
         Dgrg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774445070; x=1775049870;
        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=9BxAnQbQlusdq+Un61mXTAQpPPP3xW8V/k0uzyq9UTY=;
        b=r55fAWeaPP3HYP+PwnRg2cAEBHKcePvnK6NPqj3uK6AGaDFdOJUWYSknkzgDltGAfD
         Me7htZiu8TmdUeuElArgw2NiZRqV3KmIN81rwhRJTiDhJwmU4srxwYuyvUCUZ6UXFLkh
         sgPeXzeHc6rqeMb8rWTZ8V428b7XkWEdWA8h5y6VaAG1DuQ7H21/On4+EbLHD96jE16c
         NpXNtnSc+uwJ5hhFKeLtwP00G5KP735csb3AWMqO46aHgVfbKmgWv9cLY+RC+NDJlbOc
         jEnMS5AAArAXbYdrb9hgyg6I+NYh3b4QkdETEUwY9VOsdUMbp8mAGec+MCc0kD7bHNnp
         M8Ng==
X-Gm-Message-State: AOJu0YyFVt2tDCo7VBgsUOm/KUaKUpDlF6RXpyzirzT0EFP+keE/Gs1S
	Q1YFLt+UAGEW1Igu0cTm8fzBZDTbv33IwdnEvohk6KXqvhn+MhBwqZunDbgIsAfQ55nIlFvtAeT
	askTb5A==
X-Gm-Gg: ATEYQzwrlsZXDckFi5l+4T64Xf7eFmAl1xOdKfgPT67K86miSYzlIzIzHM+jlmArTTT
	Ja78SX/ndgZgt9fN6KFh1unN0BH2zggiexLeup46iBmg4b/O4MK/16PS5V/Jdzkg+4nUL3icZ8Z
	CSDq8ZSNOffAyRiNiucV3WjyvzfcyPsVHw3p8fWEIuCD3l3abrHR7I5aDRhrr6y5w/Z2rGvs4s0
	szRs0coAt6Mq1MYL+34VJ7DdknchXF3j8FKGXWSE3NK5H2wyWaeFfIToXKYRwijlZTD+TBsvmid
	Km/267EQMLdI/jlfVwQQdeYbQsZKw+AaUjyBJiEhX1H3kvTynOnkdqYEiLMQtwEMKf5xjtYSniZ
	MIkJEzSehf01C8yemg1lFZi7wxZc/vpfxzq1eVmKn+pwy5BqVTH3Fni16IjqqD56eXG4HRBDTmR
	tjjStbTFuMo4a/ePFNo32qmq9hj8M1Hx8Ay8PmjCv5eKW9Z5d0Xrnsu8/6BNa+QDwtybKO2nMnw
	lwPOWSUYt6Q7lA=
X-Received: by 2002:a5d:5d0b:0:b0:43b:4592:f91b with SMTP id ffacd0b85a97d-43b8899d295mr5377546f8f.5.1774445070438;
        Wed, 25 Mar 2026 06:24:30 -0700 (PDT)
Message-ID: <32ae65d3-8305-419e-8180-183a2fc8c29e@suse.com>
Date: Wed, 25 Mar 2026 14:24:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 2/2] EFI: move pre_parse() back next to get_value()
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>
References: <aa19318c-c91a-4cda-b36f-d2049914c42c@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: <aa19318c-c91a-4cda-b36f-d2049914c42c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1774445071-68152A73-45487F9D/0/0
X-purgate-type: clean
X-purgate-size: 1941

These are siblings, so better would live close together. Sadly in
1f9540cd8eb6 ("EFI: move efi-boot.h inclusion point") I moved get_value()
without also moving pre_parse().

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

--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -581,6 +581,31 @@ static char * __init split_string(char *
     return NULL;
 }
 
+static void __init pre_parse(const struct file *file)
+{
+    char *ptr = file->str, *end = ptr + file->size;
+    bool start = true, comment = false;
+
+    for ( ; ptr < end; ++ptr )
+    {
+        if ( iscntrl(*ptr) )
+        {
+            comment = false;
+            start = true;
+            *ptr = 0;
+        }
+        else if ( comment || (start && isspace(*ptr)) )
+            *ptr = 0;
+        else if ( *ptr == '#' || (start && *ptr == ';') )
+        {
+            comment = true;
+            *ptr = 0;
+        }
+        else
+            start = 0;
+    }
+}
+
 static char *__init get_value(const struct file *file, const char *section,
                               const char *item)
 {
@@ -904,31 +929,6 @@ static bool __init read_section(const EF
     return true;
 }
 
-static void __init pre_parse(const struct file *file)
-{
-    char *ptr = file->str, *end = ptr + file->size;
-    bool start = true, comment = false;
-
-    for ( ; ptr < end; ++ptr )
-    {
-        if ( iscntrl(*ptr) )
-        {
-            comment = false;
-            start = true;
-            *ptr = 0;
-        }
-        else if ( comment || (start && isspace(*ptr)) )
-            *ptr = 0;
-        else if ( *ptr == '#' || (start && *ptr == ';') )
-        {
-            comment = true;
-            *ptr = 0;
-        }
-        else
-            start = 0;
-    }
-}
-
 static void __init init_secure_boot_mode(void)
 {
     static EFI_GUID __initdata gv_uuid = EFI_GLOBAL_VARIABLE;



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 13:37:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 13:37:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262366.1554897 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5OQU-0004af-DT; Wed, 25 Mar 2026 13:37:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262366.1554897; Wed, 25 Mar 2026 13:37:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5OQU-0004aY-Ab; Wed, 25 Mar 2026 13:37:38 +0000
Received: by outflank-mailman (input) for mailman id 1262366;
 Wed, 25 Mar 2026 13:37:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5OQS-0004Y4-EH
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 13:37:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5OQR-00EVK6-Q6
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 14:37:35 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c3e517-bab6-0a2a0a5309dd-0a2a450bd214-40
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 14:37:35 +0100
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c3e51f-ef63-0a2a450b0019-d155802db976-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 14:37:35 +0100
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-48374014a77so67411515e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 06:37:35 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487166064fasm22895295e9.7.2026.03.25.06.37.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 06:37:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774445855; x=1775050655; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5/LntUo37M9RpNs2XDXUdbrdjJqYjk31+yPfucwUJGg=;
        b=Rq2y5SPfgcyI0Ra4vmVdWHerxUkZP0ET7HEANxcLnGq1jDkOBWBmk+P7v8hiyYp1GG
         khbjpa6q4vfWDUWEzG1rV4Pk4QEFfASGys5izR0URl9naI1aw23cUgoTyWfzB7JI8W7B
         h8BU51ncpgXDLNv46ZsO2X6Yr/LXAlQKsQwJaHmG9Uxv9aQSUmw27xwBZi8sFE5T8uxC
         JwtQ7fTgjBbXEI23HqLj8LAzxoq0EAqF7A/bqRyOHOjOYdzHTsLMoIn4BhVz0zf9VQ9k
         3hpW+N1BYXFX7L5i+qkWhlbilZD7MMJhT2uhw/2Y/eBnDw4DcE4kQPPFb1TK5YWQ8hbE
         JaLA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774445855; x=1775050655;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5/LntUo37M9RpNs2XDXUdbrdjJqYjk31+yPfucwUJGg=;
        b=DYyHjdhT12wtLDSey2chXfJSzyXVtiYiGFWNUCY/zoQxLqKEW+Dg7kpyt+bDawA61y
         C8mQEOfM1/3NGdo/oLW0qhJ2EDN7cMzqmTNnQmNF8IP4GfEwa9qdXjOSFlz+bKUj9UJX
         jK2g7UGv0gocBR71tpB7LDYWcETE101xbfLVOvzbLn8NgaR3gsMwoG8W/0O7DsB+rKB9
         RV8nZf6TwzG82iT8xjTWyw1+hIDAQJhz9WvqkklbFjKyKMaDEpR9xraS4evwuYXm7ies
         ghXm1oK3BG0AZ06tJb58Dn/y6rlDd91ls1tMx41GtoBFhmJa6Sejs2688kGaqPEV9/3G
         v9SQ==
X-Forwarded-Encrypted: i=1; AJvYcCXUXVbL4q8zFzfCwyaokfU/iog7jWIYC05d6qmcOElOIFffZnnE/wn8yc53S+Op0O6jPPQkQ+glCS0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwbtxPPHNupPxZ0OJKhXy8WoiE16CSOcxB6K2YoMMTNiUTvwYfE
	0aUB7D9vOeIoILIS1TsFEWDvhv6bnNmxHfd88kUZUIMpBX9N29gkkuJJVShpXhrS6w==
X-Gm-Gg: ATEYQzwKZNcqJrERouClstsledR4TrRUAemfB7CqCE/+eP5F1bskikT5paTUOgQUSMz
	5Bj/356b44v4axRhTQ+2wBTO298KYJ+D0pTPQ69XKiu/7Y1rXZz+ketF3qykw+ifvj6qLBO5WU5
	DOjlASzi7E4ZtRlFVFqvxMv4acR30il89dZC+mN2oUbdfp746ewHVSfNAyrDZK1363xxexbG+Rh
	x6pFhQihcZc9MurDblYhRzD5yrYXXdyiYNsaJhJO3LDyk3rHsgGWYnDuZA2V7oIGnbzM0m/60Q7
	+etHkXxUGq802ClkojjQUgDbVG9VC6sVdIUt7jAuRj2O+qHlnAGQmWe5hbJ0RyvtwDFTIZHlnBw
	7zqWQ8tWERW4SELCAg6jQLQES5058yjAXr+X/9Q+kl7EygxpVlfOkf5fI1iFty47YiHhJ9I6zI0
	KOGozekf2TTCbVFDugV/PU00rXhibI82GBIBGLoZ24mIvvCr7dNZGHIUGUAEijp4QW/mDPSy9TH
	dGVGrcIktQMer0=
X-Received: by 2002:a05:600c:350f:b0:485:40c6:f528 with SMTP id 5b1f17b1804b1-487160a213bmr50531645e9.30.1774445854880;
        Wed, 25 Mar 2026 06:37:34 -0700 (PDT)
Message-ID: <ab36ce57-2067-4f1a-8384-403e015732dd@suse.com>
Date: Wed, 25 Mar 2026 14:37:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen/mm: don't unconditionally clear PGC_need_scrub in
 alloc_heap_pages()
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Ayden Bottos <aydenbottos12@gmail.com>, xen-devel@lists.xenproject.org
References: <20260325100803.6640-1-roger.pau@citrix.com>
 <20260325100803.6640-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: <20260325100803.6640-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1774445855-9A4AF112-924A363C/0/0
X-purgate-type: clean
X-purgate-size: 2579

On 25.03.2026 11:08, Roger Pau Monne wrote:
> alloc_heap_pages() will unconditionally clear PGC_need_scrub, even when
> MEMF_no_scrub is requested.  This is kind of expected as otherwise some
> callers will assert on seeing non-expected flags set on the count_info
> field.
> 
> Introduce a new MEMF bit to signal to alloc_heap_pages() that non-scrubbed
> pages should keep the PGC_need_scrub bit set. This fixes returning dirty
> pages from alloc_domheap_pages() without the PGC_need_scrub bit set for
> populate_physmap() to consume.
> 
> With the above change alloc_domheap_pages() needs an adjustment to cope
> with allocated pages possibly having the PGC_need_scrub set.
> 
> Fixes: 83a784a15b47 ("xen/mm: allow deferred scrub of physmap populate allocated pages")
> Reported-by: Ayden Bottos <aydenbottos12@gmail.com>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
with one nit (minor request) at the bottom.

> ---
> This issue was initially reported to the Xen Security Team, and it did turn
> out to not require an XSA only because the code hasn't been part of any
> release, otherwise an XSA would have been issued.
> 
> The Security Team would like to thanks Ayden for the prompt report.
> 
> In the scrubbing loop in alloc_heap_pages() i should better be unsigned
> long.

This issue is wider than just that function. As long as MAX_ORDER <= BITS_PER_INT,
I think we could have all such loops consistently use unsigned int induction
variables. But of course switching to unsigned long would be okay as well, just
perhaps a little less efficient on (at least) x86. My main wish would be for all
of those variables to be consistent in type (and hence all involved literal
number suffixes also being consistently U or UL).

> --- a/xen/include/xen/mm.h
> +++ b/xen/include/xen/mm.h
> @@ -208,6 +208,8 @@ struct npfec {
>  #define  MEMF_no_refcount (1U<<_MEMF_no_refcount)
>  #define _MEMF_populate_on_demand 1
>  #define  MEMF_populate_on_demand (1U<<_MEMF_populate_on_demand)
> +#define _MEMF_keep_scrub  2
> +#define  MEMF_keep_scrub  (1U<<_MEMF_keep_scrub)
>  #define _MEMF_no_dma      3
>  #define  MEMF_no_dma      (1U<<_MEMF_no_dma)
>  #define _MEMF_exact_node  4

Irrespective of all the similar issues in surrounding code, may I ask that << be
surrounded by blanks in the new addition, to conform to ./CODING_STYLE?

As an aside, I wonder whether we really need the separate _MEMF_keep_scrub, but
the same likely applies to most other _MEMF_*.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 13:38:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 13:38:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262378.1554906 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5ORW-0005Ej-QL; Wed, 25 Mar 2026 13:38:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262378.1554906; Wed, 25 Mar 2026 13: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 1w5ORW-0005Ec-Nr; Wed, 25 Mar 2026 13:38:42 +0000
Received: by outflank-mailman (input) for mailman id 1262378;
 Wed, 25 Mar 2026 13:38:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1w5ORV-0005ET-Ow
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 13:38:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5ORV-00EVnn-4u
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 14:38:41 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69c3e55e-bab6-0a2a0a5309dd-0a2a450a91f8-16
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 14:38:41 +0100
Received: from [209.85.208.42] (helo=mail-ed1-f42.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jgross@suse.com>)
 id 69c3e560-1772-0a2a450a0019-d155d02ac898-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 14:38:40 +0100
Received: by mail-ed1-f42.google.com with SMTP id
 4fb4d7f45d1cf-6611f41eebcso3582231a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 06:38:40 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f8ef74sm766221666b.25.2026.03.25.06.38.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 06:38:39 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774445920; x=1775050720; 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=yBMf19ww6C4snxZ95wNLRitOcSpe4iwhoiaZE2ZQ5JI=;
        b=OEKs6QQQL5D0jLpe0QnEQwYHMXdUGEuLSYbM6eN+ylgpsiw0Vkls4mXYR6TPw9gF+m
         mD6XOwbZ12QtiLQIU+OpOkHH5Z1e9O1+bBKpREjLcVpNmbrRcg3WHJCoPG+cjlKBwTRR
         xlV8brrbdIyobKJ+x4xsCtmxSgPnaJHakWFP0UaV0Lea/+Sb+JUfCXQh4KZw9r2hG0gS
         Flu9eQQLhKRUrKrNa1xb9DRnI24LLHEEqHfiwT8YxKATIDdtf1wGEwZ23cTvRzjayz3v
         n3vp0WLD/XyT3iCCRbgcWEZgvC/MLppnd9TxIIg5Y/5siPx18Kw12uzLJIRNuUQS9lBc
         BfYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774445920; x=1775050720;
        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=yBMf19ww6C4snxZ95wNLRitOcSpe4iwhoiaZE2ZQ5JI=;
        b=RnELbBZYKFodkIEVpDENKtlmdZ1hLz8TjqVEHQpdlQs849JE10YtRDkDSmrkYdhXbW
         USanQ9Y2CHTzcwM/UxosB9VUNw7eFQB0xJ8Ye63MM/N1BtZyTDQexKigSyxZ1JlWGpP3
         a4WcU2+mpw47rebEZ13aLqv3NKejgI2yiXhiX0SHClneatYw51QVkw9qXnNL8algsFEd
         r+JjdqbsFQRTRHHiB9jPBTq4YPbzc7SSsPw54WaxCkYwSaz89jpRBbQAhSQAnyUl/zXJ
         gwRTat1SMy5ytchgxiPwFoyTwsHy6qex6BzuSx4EvP0tPKE187ooD6nehvcvtPLQcjT3
         DR6g==
X-Forwarded-Encrypted: i=1; AJvYcCU2+j59jDbyIEzOR/lG3AdUHQPk10SlTpZevmFiFp+ct15g4oDRVHh+zcHZhk6q/bzG/myZKxy69ZU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx6hiHOO//C7WHeYips+8MByz/gVAcNCZE/veRE6TdruNaNR02b
	FVLp7B07M3ZooT4MK75gB59LxNNf9CJlwClROkSMW3GrmPT93QYxYpQEUtDI/vw0nZ8=
X-Gm-Gg: ATEYQzzbIacRscAW3050LSnbe/LCcwLEA2AalwaWhT9EWuePdVNaaOowv9F2p0+NBvz
	P6Zf2tcLgqoyRSoj89Syv5pF8xeAeOMhdOO8+oBRFsnSfoPow3lb31aMoLwo0sDPqVjHBMgH4zy
	JuThAnZe6+BYxiqlRdKQfnLRh9zkKyQucnlMOdU6l+a4BsAiQTEwvIX/FUDfJZeoX2tsCy6OWKL
	OTQNf3TZYkWGaRFKa5mXZRNs88XfHuSifOCqJPOuJZjouIfbqBRa1805SAZL4j7Z8zdaYQBuCGL
	VcXfjzTKQQTZiGafHsrVOOpc9GbAkl26ftp2niQMozk+LKiDSw6NEjGU35JfnG1CIw4UVHkh9iX
	lge3wIoFnm8BGyz/uhIT7axat21fFUdrNZtuQ1B8rQZoz3bmLHNh8b/Cd65JUt9snEA66jvb9qD
	hs8tUF/Ez54wcDVRefME49rGxExFa+loqbwhT8HIDKXaEj9s/wf/XkKGXZ/9b6B08nRbYQSH+oz
	QVBxsrbXdiSBsQfpekdLIPh5ymFP8NgygAjBtiQlwlv04vLG1Z/5A==
X-Received: by 2002:a17:907:6b8e:b0:b98:235b:4dfa with SMTP id a640c23a62f3a-b9a542bcccfmr229554366b.47.1774445920135;
        Wed, 25 Mar 2026 06:38:40 -0700 (PDT)
Message-ID: <e0031df1-12a6-4459-a670-fbcbca13368a@suse.com>
Date: Wed, 25 Mar 2026 14:38:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] arinc653: don't assume Dom0 is the control domain
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>
References: <89d17a24-0a1f-4f3f-ac2f-f3701a8d78dd@suse.com>
 <3a491956-81a6-4c7e-acb0-14f135fc5596@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: <3a491956-81a6-4c7e-acb0-14f135fc5596@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------fd0Q01bpugZgIcUpAkk51Pav"
X-purgate-ID: tlsNG-4011c0/1774445920-53498900-49453201/0/0
X-purgate-type: clean
X-purgate-size: 9692

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------fd0Q01bpugZgIcUpAkk51Pav
Content-Type: multipart/mixed; boundary="------------8mmuz0eiMV7E7ka70U1VfC3s";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>
Message-ID: <e0031df1-12a6-4459-a670-fbcbca13368a@suse.com>
Subject: Re: [PATCH v2 2/3] arinc653: don't assume Dom0 is the control domain
References: <89d17a24-0a1f-4f3f-ac2f-f3701a8d78dd@suse.com>
 <3a491956-81a6-4c7e-acb0-14f135fc5596@suse.com>
In-Reply-To: <3a491956-81a6-4c7e-acb0-14f135fc5596@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=

--------------8mmuz0eiMV7E7ka70U1VfC3s
Content-Type: multipart/mixed; boundary="------------vcHHNiUTwxU4PvgTSJ92Rq0F"

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

T24gMjUuMDMuMjYgMTM6NTQsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBMZWF2aW5nIGFzaWRl
IGhpZ2hseSBkaXNhZ2dyZWdhdGVkIGVudmlyb25tZW50cywgdGhlIGNvbnRyb2wgZG9tYWlu
IGlzDQo+IHdoYXQgd2lsbCBpbnZva2UgWEVOX1NZU0NUTF9TQ0hFRE9QX3B1dGluZm8uIEl0
cyB2Q1BVLXMgdGhlcmVmb3JlIG5lZWQgdG8NCj4gYmUgYWJsZSB0byBydW4gdW5jb25kaXRp
b25hbGx5LCBub3QgdGhvc2Ugb2YgdGhlIGRvbWFpbiB3aXRoIElEIDAgKHdoaWNoDQo+IG1h
eSBub3QgZXhpc3QgYXQgYWxsKS4NCj4gDQo+IEZpeGVzOiA5ZjBjNjU4YmFlZGMgKCJhcmlu
YzogYWRkIGNwdS1wb29sIHN1cHBvcnQgdG8gc2NoZWR1bGVyIikNCj4gU2lnbmVkLW9mZi1i
eTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KDQpSZXZpZXdlZC1ieTogSnVl
cmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPg0KDQo+IC0tLQ0KPiBUaGVyZSBiZWluZyBu
byAiZWxzZSIgdG8gdGhlIGlmKCksIHdoYXQgYWJvdXQgb3RoZXIgY29udHJvbCBkb21haW4g
dkNQVS1zPw0KDQphNjUzc2NoZWRfYWxsb2NfdWRhdGEoKSBpcyBjYWxsZWQgZm9yIGFsbCB1
bml0cyBvZiBhIGRvbWFpbi4NCg0KPiBBbmQgd2h5IGFyZSB0aGV5IGFkZGVkIHRvIGFsbCBz
Y2hlZHVsZXIgaW5zdGFuY2VzPw0KDQpXaGF0IGRvIHlvdSBtZWFuIHdpdGggImFkZGVkIHRv
IGFsbCBzY2hlZHVsZXIgaW5zdGFuY2VzIj8NCg0KYTY1M3NjaGVkX2FsbG9jX3VkYXRhKCkg
d2lsbCBiZSBjYWxsZWQgb25seSBmb3IgdGhlIHVuaXRzIG9mIGEgZG9tYWluIGJlaW5nDQpp
biB0aGUgaW5zdGFuY2UgKGkuZS4gY3B1cG9vbCkgZGVzaWduYXRlZCBieSB0aGUgb3BzIHBh
cmFtZXRlci4NCg0KPiAtLS0NCj4gdjI6IE5ldy4NCj4gDQo+IC0tLSBhL3hlbi9jb21tb24v
c2NoZWQvYXJpbmM2NTMuYw0KPiArKysgYi94ZW4vY29tbW9uL3NjaGVkL2FyaW5jNjUzLmMN
Cj4gQEAgLTQxMSwxMCArNDExLDEwIEBAIGE2NTNzY2hlZF9hbGxvY191ZGF0YShjb25zdCBz
dHJ1Y3Qgc2NoZWQNCj4gICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJnNjaGVkX3ByaXYtPmxv
Y2ssIGZsYWdzKTsNCj4gICANCj4gICAgICAgLyoNCj4gLSAgICAgKiBBZGQgZXZlcnkgb25l
IG9mIGRvbTAncyB1bml0cyB0byB0aGUgc2NoZWR1bGUsIGFzIGxvbmcgYXMgdGhlcmUgYXJl
DQo+IC0gICAgICogc2xvdHMgYXZhaWxhYmxlLg0KPiArICAgICAqIEFkZCBldmVyeSBvbmUg
b2YgdGhlIGNvbnRyb2wgZG9tYWluJ3MgdW5pdHMgdG8gdGhlIHNjaGVkdWxlLCBhcyBsb25n
IGFzDQo+ICsgICAgICogdGhlcmUgYXJlIHNsb3RzIGF2YWlsYWJsZS4NCj4gICAgICAgICov
DQo+IC0gICAgaWYgKCB1bml0LT5kb21haW4tPmRvbWFpbl9pZCA9PSAwICkNCj4gKyAgICBp
ZiAoIGlzX2NvbnRyb2xfZG9tYWluKHVuaXQtPmRvbWFpbikgKQ0KPiAgICAgICB7DQo+ICAg
ICAgICAgICBlbnRyeSA9IHNjaGVkX3ByaXYtPm51bV9zY2hlZHVsZV9lbnRyaWVzOw0KDQoN
Cg==
--------------vcHHNiUTwxU4PvgTSJ92Rq0F
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-----

--------------vcHHNiUTwxU4PvgTSJ92Rq0F--

--------------8mmuz0eiMV7E7ka70U1VfC3s--

--------------fd0Q01bpugZgIcUpAkk51Pav
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/Ey8FAmnD5V8FAwAAAAAACgkQsN6d1ii/Ey9B
8Qf/U8lPkT5gEjuUPUngNLbt5SZsl+FdViCHK6zgNo2Po+8PM9hgCV3NO5/dIOjebsSCroJ4zgfU
ULijyOGcnHj/K7xW8sglxjdbOw4pYdExQBDItQMHMRLFToSWb76Y0IFveYLSpNV1wIsnvlDRS9Z3
+uZVodZeEksmkScbAgsnSlqlSj2uOLD5fQxYEdCso4er+AG5Bpn8QAkopiHTrR4HLqCs3qGFyapM
V/VO8yKr27G8hFFmcHja5i7zeUTwrJcyYeVb7p/REPGbVFMARi9lCUA3KQ+e+itJy6NzR3xuhAs+
LnTAHpquU1RrZdRw505Wepu0rvEIxJAiH2koQ4z5dQ==
=uaxZ
-----END PGP SIGNATURE-----

--------------fd0Q01bpugZgIcUpAkk51Pav--


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 13:52:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 13:52:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262398.1554915 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5OeL-0008Lm-Vk; Wed, 25 Mar 2026 13:51:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262398.1554915; Wed, 25 Mar 2026 13: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 1w5OeL-0008Lf-T4; Wed, 25 Mar 2026 13:51:57 +0000
Received: by outflank-mailman (input) for mailman id 1262398;
 Wed, 25 Mar 2026 13:51:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1w5OeK-0008LZ-9b
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 13:51:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5OeJ-00A8VK-LE
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 14:51:55 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69c3e86d-2eae-0a2a0a5409dd-0a2a45089c54-34
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 14:51:55 +0100
Received: from [209.85.208.49] (helo=mail-ed1-f49.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jgross@suse.com>)
 id 69c3e87b-1950-0a2a45080019-d155d031e157-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 14:51:55 +0100
Received: by mail-ed1-f49.google.com with SMTP id
 4fb4d7f45d1cf-66971ccfcabso3903383a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 06:51:55 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-66a281b6fb0sm2050208a12.19.2026.03.25.06.51.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 06:51:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774446715; x=1775051515; 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=pP3ekrTmIynICyzdRNNvcWM7m+PmhNBa4G1EO8BA5tg=;
        b=XzX+j9U8tBp97PfKFQ8EF1uwDDcWEfG8Mfe1PazqnaKGYttXTK/Jzurq+9I+a0cERw
         /MnIV2UL1j8J24bcvpgtfmbg9mO85SPsJTR66xsRwG5NTXdECB16VVG6r6U/zgIQzVaN
         IfGcmx4JCQ1fyMTkDstv6Ss2tZ1ZT+RoPRCFy3D4Lja84F3hg4MtTa1nKejEpYvtc6Qj
         y8TBhhW1LOJl5C9ttONxNAUaeDrhFX9ZHccWT10pu/jxlPjP6kYy2mtqiKssMzVt0NDA
         31FKqCFTs1Nk831fq4/WyNrzEfjxtuO5RUWSN1LLFF8gxeYbiWLcwdHEn635BIWuabTe
         KwZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774446715; x=1775051515;
        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=pP3ekrTmIynICyzdRNNvcWM7m+PmhNBa4G1EO8BA5tg=;
        b=BnZ1MhATk9Y/VqR9ATF9dmbSx6Q2U0IJdIMDDeikQORkHXbIUTGEk+3+CIj9NlPef7
         ogBAiX7WIH/gBwhpKLZDfSChoNcyAjVzsu+MoFj8uoEHVlIyWmb0yZbvjg3+JupMQbqk
         ujEwDzoAEEytIXpr99UKXmfAkhj0K1Z4VeifOUvQcwJH4JEQa78wunVqN08DQApmfWeM
         l9lJUK7kkSJ78MopSsSPrzXF7Lo2XWbTQiuCLkfFBBtkd+A64qOjpuTFxEZaaaXDmp5b
         ROa11bGK60ymr/1MJydq2Hk3JZI1JnId5tkHj4HKjY5aKrzjFcEIJPgArC0VidtEUuBi
         6fBA==
X-Forwarded-Encrypted: i=1; AJvYcCWMPGs9cU0R9Nqu+oknj89NRbT+iF3djC1A6Hun2tEG5fE5NpCJLYxhMTasT/cGfLWlsIAE6Vm5ybs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx5eWOTZo006zxtxsgYqaxe5aOFlBZ+A48ZvKgA5XWU0YSYQV/J
	6TwBfdNQi88HkSbQxh7YASRQ+LH0oyHkhZNjjmZr+wL/CdhTaDYuZHX+C5gh96+91NE=
X-Gm-Gg: ATEYQzwhs2HQmqIl9AqCVg4QRxd1OScs/5BZPI43uaaCleVbv4axHc5YlV9K91NWh5/
	yQJTIELYHlD5a9VM4TxmgnBIYaJaFBzVGWQyK+XZXWw6uGyrwGa0Q7ONScsYXz+7NQt7XxVUeFd
	BgjGcWJMMVqXTf+9WpMX5FwcKghk+mo6ugz2tiKAVHJ5EHMxeHdgn/Xkn5QXCSJaSnor8kxyEvl
	jSQN5XqJHde879VU0kwJ3/06RqMY3Js+lGKpGVOBcFmMAOtf00qm6X12W0au80HOAXqW4oxeQ3c
	enlNwSxgcsdyDfjTflsE81HEOVqEPxJTKKdo/SiHHdt1q/uLwJcJksRZouNUerBuwKkOCOyXT34
	qb3XjThmCu575cL5IAkYwywjrYE3Mvme+5mYpfLPfawD1nL0+32F810sksNghbswDEXlU84K5e5
	zonHKseuPUuUgDZ8tc5kexKQF9EGZBmNQ0qM5QGeAQKMrowkgUIpyNuxnaRFxxkVx77i66XlX2Z
	J3qCjKptvTpsGbgciMjHSY7u+SRV1p2AwbMaR0Z9QN2GcH03EFXcA==
X-Received: by 2002:a05:6402:360e:b0:665:67d5:b76e with SMTP id 4fb4d7f45d1cf-66a826bc361mr2205018a12.21.1774446714457;
        Wed, 25 Mar 2026 06:51:54 -0700 (PDT)
Message-ID: <80341e7f-4a06-4882-b678-09a83ceccea5@suse.com>
Date: Wed, 25 Mar 2026 14:51:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] arinc653: overwrite entire .dom_handle[] for Dom0
 slots
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>
References: <89d17a24-0a1f-4f3f-ac2f-f3701a8d78dd@suse.com>
 <1b73213f-90ec-436f-821e-b9998be9a9b1@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: <1b73213f-90ec-436f-821e-b9998be9a9b1@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------qneWDozPOPsRc9fOXLVRLIh9"
X-purgate-ID: tlsNG-c1860d/1774446715-EA892726-0398A1E6/0/0
X-purgate-type: clean
X-purgate-size: 8334

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------qneWDozPOPsRc9fOXLVRLIh9
Content-Type: multipart/mixed; boundary="------------KqMMUwWudKsyGDjrR6LRDgJg";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>
Message-ID: <80341e7f-4a06-4882-b678-09a83ceccea5@suse.com>
Subject: Re: [PATCH v2 1/3] arinc653: overwrite entire .dom_handle[] for Dom0
 slots
References: <89d17a24-0a1f-4f3f-ac2f-f3701a8d78dd@suse.com>
 <1b73213f-90ec-436f-821e-b9998be9a9b1@suse.com>
In-Reply-To: <1b73213f-90ec-436f-821e-b9998be9a9b1@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=

--------------KqMMUwWudKsyGDjrR6LRDgJg
Content-Type: multipart/mixed; boundary="------------g0vLWJkWPU2btvvqbrOBoeN0"

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

T24gMjUuMDMuMjYgMTM6NTMsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBXaGVuIHRoYXQgY29k
ZSBzdGlsbCBsaXZlZCBpbiBhNjUzc2NoZWRfaW5pdCgpLCBpdCB3YXMgcmVkdW5kYW50IHdp
dGggdGhlDQo+IGVhcmxpZXIgbWVtc2V0KCkgLyB4emFsbG9jKCkuIE9uY2UgbW92ZWQsIHRo
ZSBmdWxsIHN0cnVjdHVyZSBmaWVsZCBuZWVkcw0KPiBzZXR0aW5nLCBhcyBkb21faGFuZGxl
X2NtcCgpIHVzZXMgbWVtY21wKCkuIFJhdGhlciB0aGFuIGltcGx5aW5nIHRoZQ0KPiBoYW5k
bGUgdG8gYmUgYWxsIHplcm8sIGNvcHkgdGhlIGhhbmRsZSBvdXQgb2YgdGhlIGRvbWFpbiBz
dHJ1Y3R1cmUuDQo+IA0KPiBGaXhlczogOWYwYzY1OGJhZWRjICgiYXJpbmM6IGFkZCBjcHUt
cG9vbCBzdXBwb3J0IHRvIHNjaGVkdWxlciIpDQo+IFNpZ25lZC1vZmYtYnk6IEphbiBCZXVs
aWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCg0KUmV2aWV3ZWQtYnk6IEp1ZXJnZW4gR3Jvc3Mg
PGpncm9zc0BzdXNlLmNvbT4NCg0KDQpKdWVyZ2VuDQo=
--------------g0vLWJkWPU2btvvqbrOBoeN0
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-----

--------------g0vLWJkWPU2btvvqbrOBoeN0--

--------------KqMMUwWudKsyGDjrR6LRDgJg--

--------------qneWDozPOPsRc9fOXLVRLIh9
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/Ey8FAmnD6HkFAwAAAAAACgkQsN6d1ii/Ey9P
ywf/Z1K3WDm02TmV2rE8iXr/EviTEd/1Ze/bEbV3Zfc5GggYlx9ZveOyCbq022hNO8rSE4Gdp7RG
D7Ber96rsd9D4VqNLItJ+twXZD2Jw4X4VBvN3AmesYR9TCk646ObpUkzWzO6eu9LuseGTCdSNwoi
zL+mu+txSDt0Ivu+rU17yPAdY3QCXDJQdivC37l8YtiPV238X50EYDd46jJ4KYycB3pJnyt3mNrk
sZVu8MkWSoKXUXOSq7u5a848TP+CqVDks1JouurJ4nJA0Sqkhw6EHRDJr7dHE1w06uQyfTRhBldy
MgGIPZr9mljK7ewbAWlBMz78muuxgMaCBb0RO+8gOw==
=AYmF
-----END PGP SIGNATURE-----

--------------qneWDozPOPsRc9fOXLVRLIh9--


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 13:59:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 13:59:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262413.1554925 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Olu-0000eg-PG; Wed, 25 Mar 2026 13:59:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262413.1554925; Wed, 25 Mar 2026 13:59:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Olu-0000eZ-MZ; Wed, 25 Mar 2026 13:59:46 +0000
Received: by outflank-mailman (input) for mailman id 1262413;
 Wed, 25 Mar 2026 13:59:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1w5Olt-0000eT-BG
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 13:59:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Ols-00EaHU-Mh
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 14:59:44 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69c3ea40-bab6-0a2a0a5309dd-0a2a45088594-46
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 14:59:44 +0100
Received: from [209.85.208.53] (helo=mail-ed1-f53.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jgross@suse.com>)
 id 69c3ea50-1950-0a2a45080019-d155d035e800-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 14:59:44 +0100
Received: by mail-ed1-f53.google.com with SMTP id
 4fb4d7f45d1cf-66132b22182so3296979a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 06:59:44 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9832f43ae8sm803120166b.6.2026.03.25.06.59.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 06:59:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774447184; x=1775051984; 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=ZIJTtohtFqy4Ks8G8HLz3X+RfQwxTvYhb7MxN+I0mZA=;
        b=drAzVGOOaJkSjakcHka3GJjmCRDnJQg0XM19S/aUl2E1lSPQ/Kl/gfygN+Xd9i5Vjp
         PdGQ18cwpL0aXSKrs2BTyLTDfxfyg1p80YbFmNOjZ2ajrMrierDO10x/wpn9z4P6niiX
         lJIxj+7ldQ+WnRatARpvKYN99zgo+0a78QL1vWfi/FvT3lTd7lNDU+4vCM10xa3r4pll
         FsSIdWntWmPCda+MGFMIL0KMZWNegJotgj5GfezsIhj7hm4tNhONYEo78KuLayINz1nU
         Zb2xBE1dQW9tqCKcVTSYRFVdUx30h/mw6m5A3SXuPlXXdTDZlhnbl1/c+foUs3fF79tx
         PZTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774447184; x=1775051984;
        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=ZIJTtohtFqy4Ks8G8HLz3X+RfQwxTvYhb7MxN+I0mZA=;
        b=DvqdXSO+4jdTAxI1itOAz8bo8tug7YP+NlrrPiff1Azf4Qnj9lEDElWv+vqxlclYi3
         cg8hblh1cd15uTxGN8pg4QNnIKmiHQVy5fWL4RE25YmUqNkdH+HMwF6bBLDfFaHJnxAY
         g0KqlOtQqzc14ES/N5ISj7XWW2ScI9ayjnKgVZHqRNfzcDiaKT4lCjLcOrT0Kvk6eHYH
         +5UmDGzFhRaCvnhvs1sbhRgfRD0ex1zhxja7+f0KhQef7KWRCKaKZ9z4f1hDSlLGK96/
         DCZxfQistXbfEtKv7BRyEpupukaMvGysR4KZ63OfXoly4KGsMbGUCW/+Y88Om/DT+qSM
         XebA==
X-Forwarded-Encrypted: i=1; AJvYcCUXptJ7LXP2nD/S9rTAD6XF9SF3d5hU2VPWNG8e2Lp+zap1m+DogtYHUA2CJroRyy3CKLnXyIoOngc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy4kDs/dfCHvuq5h4EK2hxsDFlnyw43GsOdRdzttPdZIalLqzn9
	DjhoeSuU2Jpj9Q79+op2I79n6JFRmoPchgwnzz0l57xqx0zYElcSdWDv/tZrZOqoWN0=
X-Gm-Gg: ATEYQzytwmk9XgN/dQdh/1wlgZrTjzw7JpJyIcQWyrmngJ3Rie5ZNU1IURIv7kyx6u8
	UwZD/8NfhFSwdtkUlhBW2i41ZI2T6HdOT1uU6LRJMOJyZ9gC4uXw4bs4Vmz8kmnU9D0gAHVkIPh
	MfKB53+8Cnoa6ofjsQ/X13XxzV8aPayVH+8B93WI0QxoKqcIQVHLoaZk7Xbw3JecoXAvllPeyx6
	vbG8E2iIuIAjKcdsnHP8Z8bymMAvpTgCDJ2+Bghd0FY1ndWiNlKg1j+XhGk7vOkOeBYUj/uisAI
	EdvYsj31O65th8melNXoO/rPcEJdssCTBptm9O0KKIXixd0yoFu4jclzxpm9uSq3a5w16UEtZHk
	oqOEUa4eH9GJIWxhkug2JmDvVJ4gdjpACitytEI/zJF59qs6d9Ev99g88YIjS77ifynsa5TjUYO
	RSHH8Mp22ZQZkNnBKhVY2P2HJKrGwuTbvqJVWkPYWewKa9KPrOVHLXwD/yPa2Q0Z4KubIQby9OR
	0WeaMi/bHcUR7jMpqUIPKidR910MbcmTXSlz9p57b4HptJ/u/R9UA==
X-Received: by 2002:a17:907:9445:b0:b93:9407:ea5c with SMTP id a640c23a62f3a-b9b0ea80993mr241333466b.57.1774447183860;
        Wed, 25 Mar 2026 06:59:43 -0700 (PDT)
Message-ID: <6d909f11-528a-4d30-9e29-c7e29bc8f730@suse.com>
Date: Wed, 25 Mar 2026 14:59:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/privcmd: unregister xenstore notifier on module exit
To: GuoHan Zhao <zhaoguohan@kylinos.cn>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
References: <20260325120246.252899-1-zhaoguohan@kylinos.cn>
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: <20260325120246.252899-1-zhaoguohan@kylinos.cn>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------zIcy4MJOaE34JslqqeCe60BD"
X-purgate-ID: tlsNG-c1860d/1774447184-EA490726-CC91C6A3/0/0
X-purgate-type: clean
X-purgate-size: 6899

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------zIcy4MJOaE34JslqqeCe60BD
Content-Type: multipart/mixed; boundary="------------CtEQO9rbEi0ak0QEtbpwwnby";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: GuoHan Zhao <zhaoguohan@kylinos.cn>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Message-ID: <6d909f11-528a-4d30-9e29-c7e29bc8f730@suse.com>
Subject: Re: [PATCH] xen/privcmd: unregister xenstore notifier on module exit
References: <20260325120246.252899-1-zhaoguohan@kylinos.cn>
In-Reply-To: <20260325120246.252899-1-zhaoguohan@kylinos.cn>

--------------CtEQO9rbEi0ak0QEtbpwwnby
Content-Type: multipart/mixed; boundary="------------7xG8BAGCSJ6jtPnm1Az7vPq6"

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

T24gMjUuMDMuMjYgMTM6MDIsIEd1b0hhbiBaaGFvIHdyb3RlOg0KPiBDb21taXQgNDUzYjhm
YjY4ZjM2ICgieGVuL3ByaXZjbWQ6IHJlc3RyaWN0IHVzYWdlIGluDQo+IHVucHJpdmlsZWdl
ZCBkb21VIikgYWRkZWQgYSB4ZW5zdG9yZSBub3RpZmllciB0byBkZWZlciBzZXR0aW5nIHRo
ZQ0KPiByZXN0cmljdGlvbiB0YXJnZXQgdW50aWwgWGVuc3RvcmUgaXMgcmVhZHkuDQo+IA0K
PiBYRU5fUFJJVkNNRCBjYW4gYmUgYnVpbHQgYXMgYSBtb2R1bGUsIGJ1dCBwcml2Y21kX2V4
aXQoKSBsZWF2ZXMgdGhhdA0KPiBub3RpZmllciBiZWhpbmQuIEJhbGFuY2UgdGhlIG5vdGlm
aWVyIGxpZmVjeWNsZSBieSB1bnJlZ2lzdGVyaW5nIGl0IG9uDQo+IG1vZHVsZSBleGl0Lg0K
PiANCj4gVGhpcyBpcyBoYXJtbGVzcyBldmVuIGlmIHhlbnN0b3JlIHdhcyBhbHJlYWR5IHJl
YWR5IGF0IHJlZ2lzdHJhdGlvbg0KPiB0aW1lIGFuZCB0aGUgbm90aWZpZXIgd2FzIG5ldmVy
IHF1ZXVlZCBvbiB0aGUgY2hhaW4uDQo+IA0KPiBGaXhlczogNDUzYjhmYjY4ZjM2NDFmZSAo
Inhlbi9wcml2Y21kOiByZXN0cmljdCB1c2FnZSBpbiB1bnByaXZpbGVnZWQgZG9tVSIpDQo+
IFNpZ25lZC1vZmYtYnk6IEd1b0hhbiBaaGFvIDx6aGFvZ3VvaGFuQGt5bGlub3MuY24+DQoN
ClRoYW5rcyBmb3IgY2F0Y2hpbmcgdGhpcyENCg0KUmV2aWV3ZWQtYnk6IEp1ZXJnZW4gR3Jv
c3MgPGpncm9zc0BzdXNlLmNvbT4NCg0KDQpKdWVyZ2VuDQo=
--------------7xG8BAGCSJ6jtPnm1Az7vPq6
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-----

--------------7xG8BAGCSJ6jtPnm1Az7vPq6--

--------------CtEQO9rbEi0ak0QEtbpwwnby--

--------------zIcy4MJOaE34JslqqeCe60BD
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/Ey8FAmnD6k8FAwAAAAAACgkQsN6d1ii/Ey9m
Ggf6Ax7p4KWJm7PCLUEA6HDYWk4hhozq5ovrfYHZ7paTXoP/F+86os1UzbRctez7Rh0u08a61i5V
MKKIXrhr0ehZBdSaqdb2TO6ModzTEXwyMktVFuHy39XTMjdSwhrTGjTnCulEAEUI3U1qlviMOggr
qfdMG5QckzT/ZDI4AIPp4G47+ywgzncWKW8uwOIwCswjcj0A43N2sznkjXlIAZ6pd3s1p0Z1ICbL
mdnr0gM23qhoP3Hn8SmY96cIeShEaVQ6aGSiwzyLWFl/Z6S2s1r/0o83Ed/ChHhombv5tok+o+S3
g2+qj5/My/Whkb8sLDzAUHO1dsCtrkc5o2VgDWDhhQ==
=QXCQ
-----END PGP SIGNATURE-----

--------------zIcy4MJOaE34JslqqeCe60BD--


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 14:18:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 14:18:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262430.1554933 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5P3e-0003nZ-80; Wed, 25 Mar 2026 14:18:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262430.1554933; Wed, 25 Mar 2026 14:18: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 1w5P3e-0003nS-5M; Wed, 25 Mar 2026 14:18:06 +0000
Received: by outflank-mailman (input) for mailman id 1262430;
 Wed, 25 Mar 2026 14:18:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5P3c-0003nM-K3
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 14:18:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5P3b-00GQFb-W6
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 15:18:04 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c3ee8f-2eae-0a2a0a5409dd-0a2a4505dc9c-34
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 15:18:03 +0100
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c3ee9b-5aeb-0a2a45050019-d155802fdde7-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 15:18:03 +0100
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-486fd5360d4so29173895e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 07:18:03 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4871728a19dsm49635665e9.1.2026.03.25.07.18.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 07:18:02 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774448283; x=1775053083; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nMa517r3rqrOKroxl3qfk1vcKX0SLtgxKamRzDe99k4=;
        b=fSGN6dSJfIptNClIjPbdlRdfqFXSkU9j5oMpvXVrjsviBS8/QhfK1c42lBbnLu35fw
         gO+m9lXOZBvd9T8IYl1Kwj86k9UstukkS4nNAgRFr9L0b6LVmjqrT4cPIyviqjt0MYY6
         LuM2nYE6W51pm239WqjhpjsYaYJTNDWezH1d0EHtD9DyFEBBCaQGyOaz99HSyRrreWjp
         hxcLrhXUyfOjBIAOTIOtuXMnWwl2lcM4AnZLP6/4S+R0qsYT7wInTgKym02r+aU2/t7W
         Q3K8B2I9cEsEzoHiEX2okDDlJ7cBfECKtI2YqMigx2PqP4ZMEcGNYdqb+se7H2RKQZVP
         DWPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774448283; x=1775053083;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nMa517r3rqrOKroxl3qfk1vcKX0SLtgxKamRzDe99k4=;
        b=Dmkh+yU4/L3+eQMXvF+EGTYBm7g1dgklJG52K5Lor7uCla/kUcCVREigzJwZy1LJV8
         ENIZneBNx/etu466wUOMz+SNiECs4/TZrgOfOGb+Hc8kNEA9PRNrUdDKfS8t2Q88qPMA
         4ziMD59chxO0QOg5Msf5HIPzv0wJGuufz4WxED+gBLKIq+5wWWlVt04oT665gP6PCbES
         03JlYjX6l5A9CjJsZDrcGPBOXnC21JgCwIoVSr9n0zqEGA2vBRAtdnLi8FbXJkqg9NMy
         E3h/eQIWghJS4ZYcMZ+ULzURDOyychSkBOS5GvcpUrxoCnJiy6TAiB1DSdu7KDiDc0lg
         WNLw==
X-Forwarded-Encrypted: i=1; AJvYcCUJ3pVmF8jDJJcWcYWH3BkYsX/HUIlYfSEhgJD+VnjK8tNZuNoEXr235xLyfKVQDpfe4UExgVkzHLo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YycifkSyUYj+6JUwNOYQJAZfJMXdFjLiyK0voYdS4OsVdDAktyT
	9XZUeE+zCK6R/GBN/Un4vYiNvcv49ZueMwuuP030mYNRwwJSLtfaDqa+VbTqi2KM0Q==
X-Gm-Gg: ATEYQzwUxxh9OJE+9n1FkBu8fDCq5OJUWvToPZJFL7yQUZ006BmEEXBkQE+9hnZIK1O
	fNj0PHOFknGR0BOCAVhdcN2cXht2enTuK0dNUaL2OjTSBXUQW4eNSw3j/31zTaOHiwFtcd9fztq
	KW24KxVS6eJUlc7hEuMnF0iPMMDHTO5Kgn9XsS7wHvFPGtAZsVH6GEPauaqPb9FZ/6GekWoVliq
	VkhQwxqmVLxODJuQzIghLye77FnQ8cWg4CD7zhgwXQ1pn+MAixlBg3qLtdPbu1AijqQHQkBbOJc
	6+znK5bobGeLPBCOcCOZEKXDhkUZwf877XHWj4sEYyYNX79oLbXztdTIfxeWyidRltPIeVqvzSr
	gufkQ1P18IyAZCd8PkQBhKnlQ9O7T2XgNyGNfxWRr5RYR+zKMwaZtH697GkKMGmW6oItRfcGA8b
	gpGRhaSiVlfUA5dWzhy3NCvXNKBaKZnfQvoDibDU0xCmqaT3waoyWeawuKJxb3D61+uj2o3UOEp
	y0ZX9Ho4mRhWZY=
X-Received: by 2002:a05:600c:4e50:b0:485:40ed:2d1 with SMTP id 5b1f17b1804b1-48716051d3fmr61554365e9.17.1774448282945;
        Wed, 25 Mar 2026 07:18:02 -0700 (PDT)
Message-ID: <d7af5c2d-f700-4a16-bc55-750cd7f5ba1b@suse.com>
Date: Wed, 25 Mar 2026 15:18:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] arinc653: don't assume Dom0 is the control domain
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <89d17a24-0a1f-4f3f-ac2f-f3701a8d78dd@suse.com>
 <3a491956-81a6-4c7e-acb0-14f135fc5596@suse.com>
 <e0031df1-12a6-4459-a670-fbcbca13368a@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: <e0031df1-12a6-4459-a670-fbcbca13368a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1774448283-20896488-4EFEADE0/0/0
X-purgate-type: clean
X-purgate-size: 1839

On 25.03.2026 14:38, Jürgen Groß wrote:
> On 25.03.26 13:54, Jan Beulich wrote:
>> Leaving aside highly disaggregated environments, the control domain is
>> what will invoke XEN_SYSCTL_SCHEDOP_putinfo. Its vCPU-s therefore need to
>> be able to run unconditionally, not those of the domain with ID 0 (which
>> may not exist at all).
>>
>> Fixes: 9f0c658baedc ("arinc: add cpu-pool support to scheduler")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Reviewed-by: Juergen Gross <jgross@suse.com>

Thanks.

>> ---
>> There being no "else" to the if(), what about other control domain vCPU-s?
> 
> a653sched_alloc_udata() is called for all units of a domain.

Yes, and what if for the last few no vacant slot is available? With one vCPU
per unit and Dom0 having 65 vCPU-s, this would already be a problem aiui.
And ARINC653_MAX_DOMAINS_PER_SCHEDULE can't even be changed easily, as it's
baked into the sysctl public header (when such an upper bound should really
be an implementation detail, maybe a Kconfig setting). Yet then even the
"DOMAINS" in the name is confusing, when it limits the number of units which
can be dealt with.

Imo at the very, very least not being able to deal with all Dom0 / ctldom
vCPU-s should be logged.

>> And why are they added to all scheduler instances?
> 
> What do you mean with "added to all scheduler instances"?
> 
> a653sched_alloc_udata() will be called only for the units of a domain being
> in the instance (i.e. cpupool) designated by the ops parameter.

Perhaps the question is a result of me being confused. My understanding was
that a653sched_alloc_udata() is supposed to be setting up per-unit data,
not per-scheduler instance stuff. Yet the latter is what looks to be
happening in the Dom0 (now control-domain) specific block of code.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 14:42:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 14:42:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262462.1554942 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5PRd-00081Q-20; Wed, 25 Mar 2026 14:42:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262462.1554942; Wed, 25 Mar 2026 14: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 1w5PRc-00081J-Va; Wed, 25 Mar 2026 14:42:52 +0000
Received: by outflank-mailman (input) for mailman id 1262462;
 Wed, 25 Mar 2026 14:42:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Volodymyr_Babchuk@epam.com>) id 1w5PRc-00081D-1C
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 14:42:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5PRb-00Em3w-D3
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 15:42:51 +0100
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Volodymyr_Babchuk@epam.com>)
 id 69c3f464-5cb7-0a2a0a5109dd-0a2a4506d07e-32
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 15:42:51 +0100
Received: from [52.101.84.105]
 (helo=DB3PR0202CU003.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Volodymyr_Babchuk@epam.com>)
 id 69c3f469-3034-0a2a45060019-34655469758c-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 15:42:51 +0100
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AS2PR03MB9612.eurprd03.prod.outlook.com
 (2603:10a6:20b:594::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Wed, 25 Mar
 2026 14:42:47 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3%7]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026
 14:42:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Buk8yj2+M4PR+VYU0yXfb+SllGjOE46QY3y1CvXa+xSJOhamGWLggwYPvEbkCDGY6D1JCgv6PDS3evLHAMQ6PKpQopkzkkMkzm0U6fkC0VfPodGxjJyFVUbEzK+/bZ64OFD3Wso0TX2WPyjf5rHji1xBf+Q8T08gbdKMdX78XUdYtY2uNlNE/OqV+g6S8IetVR3fPxv9c86/0GqB4LuMDdRjAia1zgF15cmUVGTrnrhEKFaxK0Yf3VTDqmIzIp7lYHzvNMIFc+XAfNEWb3P19rT+mE1Rr/sTWpo2Axwo+flvVHxsj17ko2jRwj150iCdOhQqghNCHzFJgskZN1oIrw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IPRBuAwM2nPbK0bQVX6iSNMTZygQqDxA7T5CIWvTl7w=;
 b=RZZeWWaepm0QibieD6F+HY6k1XPz+lt21YQ9gNcpEneO89zt8yAiVhrDtXdVu1Kmx0AogZG0QiIHCIhihUm5d0w8eLXpMgeZhlmxS1woPTFgQLzqbMc/qGJqk5GZouFf631XpvG/P/cB2XUjiJe9XM2FM9i1V+pOBfQRA84MpblK9Ie5ZLD0QOlzwEz95fEhCcjHEc7Mc6rkOTWSV2MZjO4GJidQSh4mm1VVKxJKPUYrH0+42EHL3RzOonLTL4/JRGVaTsl8Ct7Hy/T4sJ0i+ojH1FPIppwRU3pRADWsx9j9XJlhW4gw8aS5YoVNqVAKN6kXbf7jkDllcUEjolgY5Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IPRBuAwM2nPbK0bQVX6iSNMTZygQqDxA7T5CIWvTl7w=;
 b=vpOkJPbWqWDywynNZ2w1Z6X4eGjKPY8Ihazq0nV3RFGgb9AE+jf5Zy4rqiY9ZAECirWevoQt26RhPuTyIqbYjKffW4/j2HTUtb9u4ZUU1YWC/J28XBMMXRswQEQRf9FSchB1/jQoFIAB42j0Kf1lxawTHR3AML/thfwTSEzFQa8E4WDyYCtoNRm9395fyuwsjscQe61RDkB67NL/ANtyMY5qs6MH5rYVnFCVk2VsBA0tVvy3JSwpOJOe1f4oV31D/ymWMPUc6vYmNBXHCU9JBbokfl/Ap5RJpguVQueRtlMLR//RbOhgF1DseQ6RweJhHtkYIEVWv6QGrre21/s8fQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <Mykola_Kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH 1/4] xen/arm: its: collect quirk flags and honor
 dma-noncoherent
Thread-Topic: [PATCH 1/4] xen/arm: its: collect quirk flags and honor
 dma-noncoherent
Thread-Index: AQHcvEPlse85KJ7ml0OZmvGoi7I/KA==
Date: Wed, 25 Mar 2026 14:42:46 +0000
Message-ID: <87bjgcvul6.fsf@epam.com>
References: <cover.1774431310.git.mykola_kvach@epam.com>
	<5b68fa0a8403ea60db3047f6505876bc03a41f3f.1774431310.git.mykola_kvach@epam.com>
In-Reply-To:
 <5b68fa0a8403ea60db3047f6505876bc03a41f3f.1774431310.git.mykola_kvach@epam.com>
	(Mykola Kvach's message of "Wed, 25 Mar 2026 12:38:30 +0200")
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV1PR03MB10456:EE_|AS2PR03MB9612:EE_
x-ms-office365-filtering-correlation-id: 3390f4b3-0c03-456b-7bb6-08de8a7cc7ec
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|42112799006|38070700021|18002099003|56012099003|22082099003;
x-microsoft-antispam-message-info:
 YKKHS47vpe9qKfnLPniY0+/lCLCC/ZikSbsTnGiPZGGVT6Sp19Smp1pTctkkNwsURJ9/SQrQXiue20EdApj6PtG55I4lXDe4rsdlpcWTyoVkSpyIyIyDzlRvDrpqIR0WB8RoaXpZ3enoIaOuxVD+4wu85wv4OLeXYPJJhOLTiaA75v/T9EqQSO0wzWXQo2KETIIjgjuzNbO0Cv/sMDNUjNOmi+B2sQm3FR3B4Fu7cGV4wgRvbxdObD29XjhXPuJNcCCZUtiIRRLle/0Yek6LpuBLjy6sEMsaNWCS6Yh+qKp+AJCZ+I8KoPzEWbPlm/FgZK5ApADOaZqFBzHrGOO3PsUEPoopikn1oRZ5uVKhwtQQlU5h8cq9XEepW/K4IaresPBOGSTKj2qXlS0xctP9VRGCQvWoK/ncnjifNNTCxDhZhiQg4mvvyv+1rezE0v4/utzdBFRZC+manBWpp7E965+SVLGspr5zD+RKmRmhC00kq4pC1iEMsY58q1mjUYpJh0rZhGs1jAkPsfAuBgHrvslB5Xz8lVIgaHESjJ09MaViLUXkEAQBQhF5WonkJuyWzZbBVE//BOiNRd2SbtTOG1+bcz0Y3ZmzKvSXXkUlQmQjCn68Oa+LoKDZrG3dHLLZiEZwz5CFJ89V1OE5y2vInG5iXoInPju69V1uSb+ex0ZrxxQPs6QE2WNakx5s5dN+Rnk6J3VfVdTIelKQq46IRARZ13iRLg1vYEja2WXmGS39lNvJYxYga7RQ+0qu4fM8nQwEb7EH8wKkhnsk1sYM4lGzSAmuxi2ZU0YyJkBAs/8=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(42112799006)(38070700021)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?KfUXqXZZPDr7q25IrR/w+R1gaT5dGenU6asfyBFuKAaHsj1O3DC7KTG2GY?=
 =?iso-8859-1?Q?5lZVSIP88tfx0gbuiV6gWxrBaieMpQZAjmt4zMiyu+c0SQ8eE5lrO8VHn9?=
 =?iso-8859-1?Q?6BM8cPNpy0/1uM2E84/1Q4GkN3+ZAsF2bw71S9USzRFSN7YfRRKcByCPyF?=
 =?iso-8859-1?Q?Tj9yqzllUQfcfZB+pHt5fuCRZrVg2g1xU7Q8ZjiA7MHKcGTJLjuIpih4Wb?=
 =?iso-8859-1?Q?ksGmDdN/F5R3UhTVK831k+L/9195zUpowuAEnj5wXwyEERH8kkynYSVcUP?=
 =?iso-8859-1?Q?3kDJpAL+qtXfkbZpKDJNW6ZZ226s+4gyyZM2Ggv7mBSXdhJlZw6GYay67Z?=
 =?iso-8859-1?Q?++xzryXiQOMG6ZF9ZnHDbsARUj/Aq5Oh6caC/1lBNBnWs3Z8S+x2Dj6gtX?=
 =?iso-8859-1?Q?T+MPpkjir5/eIieSf/GpNp1a7MkjC6EJBLGC8A2t4HniY8qOj2UzbLOc+Z?=
 =?iso-8859-1?Q?mWAyzseuAXhHuIzsy3dl7pjZXc2Wmsm5+EiWByJ128bmwllorOhIGwfStU?=
 =?iso-8859-1?Q?IEsOjH4SsloN3CcQpnBmHCq4tvOwm6mRKYVcJsW2uqQCPfF7no3Xr32brx?=
 =?iso-8859-1?Q?XPIrzOyXKDx0C9LG0mAh8RAbc5dxVQGMEig+2sokQbaP01NAqVyYsk0FHS?=
 =?iso-8859-1?Q?4WBby7iMQVDa6DNgBkfoSR1pre9KgpMj9PEhKyT8me5RzdskQ4xHHYh0u2?=
 =?iso-8859-1?Q?87VmIboUrESHZXcau1eSLWQ8+yKmTuPvf8RV43pBhAtQESCfqT6nM0vuoa?=
 =?iso-8859-1?Q?Mj6iNUJf7bDDZaCrUFXGajbixKYqoqO7yKcTXNF0d0RseWl/j+tUp5l22w?=
 =?iso-8859-1?Q?ov/QrLB+JdmEtGjZW61BwM25hgOG/QEn2GYgm57TToWbH+vRW3oPw+uQbZ?=
 =?iso-8859-1?Q?pKLM2BQyG8uPyVHDdgGdUITyLSxCvzY0wTVwrv4TedHtFKVLoKVPRt6plC?=
 =?iso-8859-1?Q?DGR/rJKm0pPKkFIQ557aPMv7QqyY8MNhDSSQA0zrWhKar9+Ay5n9bX/AXa?=
 =?iso-8859-1?Q?WWtmSvQRJjLwJQnSsrmrvK5qiqezFGigXqTbXqOpegEhw8dTjHxLls41jQ?=
 =?iso-8859-1?Q?JbleF21NxTBq3xBVzGtAhmbUTcoJ9RMt4BL7Aqv8mqEHYIHq1Abyda5sU0?=
 =?iso-8859-1?Q?3xSbx1kL3/DgGmRYG1Rlf2U/Eskqw1v6QSKlNMo0+JFvNYcsBofGFOjk4c?=
 =?iso-8859-1?Q?Bfm6YrpARFGyrhAKA6liShmdpmlhlxYpoFnE1vW4KgAEikwk4xtGnTMVtG?=
 =?iso-8859-1?Q?CZZz6yZh2+t6z5nK+PwEwvBfVjIcbJYDLQQPhhPlO8v2fAXekiWSlDFQpC?=
 =?iso-8859-1?Q?rOR13RP5+xOBUTM958uyjJj9a5BIY+tXYCGk5xV4y2xPP6qKrxtQNMfD8r?=
 =?iso-8859-1?Q?sV3/HTAytS9bv6LjaCBn2SnIC+JDBBBJMN6Hv3WQoA/HxikIiWFwskYdzw?=
 =?iso-8859-1?Q?77J0XObBbq99oZGr+lBqtOlD7D0KCpF7W+5OblGffLSGpZoxZZnyp/WdNr?=
 =?iso-8859-1?Q?6DQsGMIvc2vhYaQNtk/YBJeyclVEc5PNE4JGJ0HNfITweTdyu+sUBdIZNR?=
 =?iso-8859-1?Q?qgGWsr7xiRX3AfCpIgpmuyisTZM3Hh/y7q0dC/0YGlfxcdhveIcseiBLks?=
 =?iso-8859-1?Q?Wr3hleJMviLRVfTjs2FnAwpWc9TCGEAPypDYJtr9A/lECMVzo3vjdi751i?=
 =?iso-8859-1?Q?fGttEznKFQ2MazMQahPWbByTwtYXMuY5oIRE0Oj8MJfYX9jXkvznSmvAiZ?=
 =?iso-8859-1?Q?tJewTUpLUuEeAb/jsDIsVXdxScRYT7sGq65tK9hBnjkEVk3VaC8WtPpIGz?=
 =?iso-8859-1?Q?LSU1yehDrQLCjQvK/wuJCEN+HM+YdQU=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: 3390f4b3-0c03-456b-7bb6-08de8a7cc7ec
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Mar 2026 14:42:46.7824
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ZqLa9sfvAmOn1JdIxIa2HXifXvoQMxl2CefeaXES8VUY58X2I5gbcFLvF+q3ahDwMNWNWu3CcrEE2urJL1/CCWuQwdPvtPobGONWdDOTCE4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9612
X-purgate-ID: tlsNG-16d1c6/1774449771-825911C2-823C2391/0/0
X-purgate-type: clean
X-purgate-size: 5214

Hi Mykola,

Mykola Kvach <xakep.amatop@gmail.com> writes:

> From: Mykola Kvach <mykola_kvach@epam.com>
>
> Replace the per-quirk init callback with declarative flags in
> struct its_quirk, and introduce gicv3_its_collect_quirks() to gather
> the effective workaround flags from both the IIDR-matched quirk entry
> and the "dma-noncoherent" device-tree property.
>
> This lets non-coherent platforms force non-cacheable ITS table
> attributes even when no IIDR quirk entry matches.
>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
>  xen/arch/arm/gic-v3-its.c | 70 ++++++++++++++++++++++++---------------
>  1 file changed, 43 insertions(+), 27 deletions(-)
>
> diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
> index 9ba068c46f..00524b43a3 100644
> --- a/xen/arch/arm/gic-v3-its.c
> +++ b/xen/arch/arm/gic-v3-its.c
> @@ -57,71 +57,87 @@ struct its_device {
>   */
>  struct its_quirk {
>      const char *desc;
> -    bool (*init)(struct host_its *hw_its);
>      uint32_t iidr;
>      uint32_t mask;
> +    uint32_t flags;
>  };
> =20
>  static uint32_t __ro_after_init its_quirk_flags;
> =20
> -static bool gicv3_its_enable_quirk_gen4(struct host_its *hw_its)
> -{
> -    its_quirk_flags |=3D HOST_ITS_WORKAROUND_NC_NS |
> -        HOST_ITS_WORKAROUND_32BIT_ADDR;
> -
> -    return true;
> -}
> -
>  static const struct its_quirk its_quirks[] =3D {
>      {
> -        .desc	=3D "R-Car Gen4",
> -        .iidr	=3D 0x0201743b,
> -        .mask	=3D 0xffffffffU,
> -        .init	=3D gicv3_its_enable_quirk_gen4,
> +        .desc  =3D "R-Car Gen4",
> +        .iidr  =3D 0x0201743b,
> +        .mask  =3D 0xffffffffU,
> +        .flags =3D HOST_ITS_WORKAROUND_NC_NS |
> +                 HOST_ITS_WORKAROUND_32BIT_ADDR,
>      },
>      {
>          /* Sentinel. */
>      }
>  };
> =20
> -static struct its_quirk* gicv3_its_find_quirk(uint32_t iidr)
> +static const struct its_quirk *gicv3_its_find_quirk(uint32_t iidr)
>  {
> -    const struct its_quirk *quirks =3D its_quirks;
> +    const struct its_quirk *quirk =3D its_quirks;
> =20
> -    for ( ; quirks->desc; quirks++ )
> +    for ( ; quirk->desc; quirk++ )
>      {
> -        if ( quirks->iidr =3D=3D (quirks->mask & iidr) )
> -            return (struct its_quirk *)quirks;
> +        if ( quirk->iidr !=3D (quirk->mask & iidr) )
> +            continue;
> +
> +        return quirk;
>      }
> =20
>      return NULL;
>  }
> =20
> -static void gicv3_its_enable_quirks(struct host_its *hw_its)
> +static uint32_t gicv3_its_collect_quirks(const struct host_its *hw_its,
> +                                         const struct its_quirk **matche=
d_quirk)
>  {
> +    const struct its_quirk *quirk;
> +    uint32_t flags =3D 0;
>      uint32_t iidr =3D readl_relaxed(hw_its->its_base + GITS_IIDR);
> -    const struct its_quirk *quirk =3D gicv3_its_find_quirk(iidr);
> =20
> -    if ( quirk && quirk->init(hw_its) )
> +    quirk =3D gicv3_its_find_quirk(iidr);
> +    if ( quirk )
> +        flags |=3D quirk->flags;
> +
> +    if ( hw_its->dt_node &&
> +         dt_property_read_bool(hw_its->dt_node, "dma-noncoherent") )
> +        flags |=3D HOST_ITS_WORKAROUND_NC_NS;
> +
> +    if ( matched_quirk )
> +        *matched_quirk =3D quirk;
> +
> +    return flags;
> +}
> +
> +static void gicv3_its_enable_quirks(struct host_its *hw_its)
> +{
> +    const struct its_quirk *quirk;
> +
> +    its_quirk_flags =3D gicv3_its_collect_quirks(hw_its, &quirk);
> +
> +    if ( quirk )
>          printk("GICv3: enabling workaround for ITS: %s\n", quirk->desc);
>  }
> =20
>  static void gicv3_its_validate_quirks(void)
>  {
> -    const struct its_quirk *quirk =3D NULL, *prev =3D NULL;
> +    uint32_t quirks, prev_quirks;
>      const struct host_its *hw_its;
> =20
>      if ( list_empty(&host_its_list) )
>          return;
> =20
>      hw_its =3D list_first_entry(&host_its_list, struct host_its, entry);
> -    prev =3D gicv3_its_find_quirk(readl_relaxed(hw_its->its_base + GITS_=
IIDR));
> +    prev_quirks =3D gicv3_its_collect_quirks(hw_its, NULL);
> =20
> -    list_for_each_entry(hw_its, &host_its_list, entry)
> +    list_for_each_entry_continue(hw_its, &host_its_list, entry)
>      {
> -        quirk =3D gicv3_its_find_quirk(readl_relaxed(hw_its->its_base + =
GITS_IIDR));
> -        BUG_ON(quirk !=3D prev);
> -        prev =3D quirk;
> +        quirks =3D gicv3_its_collect_quirks(hw_its, NULL);
> +        BUG_ON(quirks !=3D prev_quirks);

I know it was in the previous version, but as you are already touching
this... This is not Xen BUG(). This is a platform problem. So you need
to panic here. Something like

 if (quirks !=3D prev_quirks)=20
        panic("Different ITS instances has different quirks")


Also, I want to point out that you are not validating "dma-noncoherent"
quirk here. I mean, some ITS entries can have this property, some other
- don't. This makes me think that you need to promote this
"dma-noncoherent" quirk from open coded check to a `struct
its_quirk` entry, so it will be handled in generic way.


--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 14:45:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 14:45:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262476.1554952 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5PU6-0000BB-H1; Wed, 25 Mar 2026 14:45:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262476.1554952; Wed, 25 Mar 2026 14:45:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5PU6-0000B4-EG; Wed, 25 Mar 2026 14:45:26 +0000
Received: by outflank-mailman (input) for mailman id 1262476;
 Wed, 25 Mar 2026 14:45:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Volodymyr_Babchuk@epam.com>) id 1w5PU5-0000Ay-Cl
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 14:45:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5PU3-00D49e-6G
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 15:45:24 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Volodymyr_Babchuk@epam.com>)
 id 69c3f504-bab6-0a2a0a5309dd-0a2a4504a65a-0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 15:45:24 +0100
Received: from [52.101.69.120]
 (helo=AM0PR83CU005.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Volodymyr_Babchuk@epam.com>)
 id 69c3f504-c823-0a2a45040019-346545788383-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 15:45:24 +0100
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PA4PR03MB8245.eurprd03.prod.outlook.com
 (2603:10a6:102:26e::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Wed, 25 Mar
 2026 14:45:20 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3%7]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026
 14:45:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=O04MiYQlHz/LvWGjIBc8OitlXkgP1YlsQRUCfZnmDkMs8qEmULLzj4XCyvtr6Smpu/NCB3QK72anIUVGbWRiwi/Ki1YdH6MGVFbAEO2AynLeL/aUjvLdjMGVnAmm2dNXbjQtuvbtgs7TJINvlUbwy42Xyu//LemlwrC/alPkbaQrldoBxXPryKuopRsxXveBz/eMS+CYt+DviRdKQWJGo7epEv+tjdzfR5jTCZ3Uuo1bRJCLzgiJ0NtCz37YTbzoyiFGRStzt+7XyFrJGAviMFEW9hz+whnVwxiZyHzqfcFjDCj7CR1p86mPLYxDhBLb8P85yByBlfnRq1z3nMRjhA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TbEni8vswSWmayvLOdrlJNVIlOh1EX8ez+dkbyHhEdg=;
 b=zS+ABbGfImc4KJvswhvkNQqpCrW0XN20EOxSL37X/H5efVz7taSfk1c1ePxKrFCBPMLkqH/kwMgT6FCv+opi5ukNdHMgLn2FODETCpbGcnNRfVOceR1nuDoDRchCoMHmnFdpk2gP2mAjmKypxsMyVa2YNluojP2to7qPyv2DqJ3JFDTYrH0NjjwR4iUGCKhbj+zOdIeU8XM4s1wi3M1PfSYDGhzRJ0OlXvZ43Mfae0PfT5QSS/TXx7jY3hyCqi7EkMbRID/5mPD6idPD62LHEjAAWKf3TJq/LnwJfXxnQqFI98pRYhbMeX6/cRiS1X4XKQZMOlvuv7T6pBKOVPk4xw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TbEni8vswSWmayvLOdrlJNVIlOh1EX8ez+dkbyHhEdg=;
 b=iGtIvjvVO1ihJ63x3rCAWdmEytPwNE92TvOTTHaGzehs8I2LEz1UEJqVIhqoU6KGXD6KyhTp+qd3TOEGRhbcWFfv2Boq81XW+ns/TF2Acr8xkYcDDjj4f2QnPrGNZ2f3yR7HTZ4BcPow6udxmkYKia7EiVXDaKMekEdX3i+XUTg7oUOogzLNCuxKk7tj4GEgMhQjFhqTpe5idhqpr+nknUuSTQQPJbkk9VgYh/bOf4sPSeBuHHB53LZAmjAGRfZADX0SFDjb/eBE741VCRtpvOlflcfafhSYLQXN5Dy/dGte32wKbx6JvQ4m3WjaDCpVsGTe5+sMo505uiITWoTETQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <Mykola_Kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH 2/4] xen/arm: its: add platform match callback for ITS
 quirks
Thread-Topic: [PATCH 2/4] xen/arm: its: add platform match callback for ITS
 quirks
Thread-Index: AQHcvEPkvPnBPPoH7U6Wnzsnt2hLeg==
Date: Wed, 25 Mar 2026 14:45:20 +0000
Message-ID: <87341ovugw.fsf@epam.com>
References: <cover.1774431310.git.mykola_kvach@epam.com>
	<10da5cf38dded9c3373c4b0ba54d7f7a7b2fd98f.1774431311.git.mykola_kvach@epam.com>
In-Reply-To:
 <10da5cf38dded9c3373c4b0ba54d7f7a7b2fd98f.1774431311.git.mykola_kvach@epam.com>
	(Mykola Kvach's message of "Wed, 25 Mar 2026 12:38:31 +0200")
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV1PR03MB10456:EE_|PA4PR03MB8245:EE_
x-ms-office365-filtering-correlation-id: 72dac3a5-ffb2-4f7a-ae64-08de8a7d23b7
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|42112799006|1800799024|366016|38070700021|56012099003|18002099003|22082099003;
x-microsoft-antispam-message-info:
 XCQiEmdxnMcSW6K4Q8qRF+CxZ/bd5ATXHgjDmta+VCLoDCqw0MHp7KKZ1g7vJdCUyXxZI0Mzjo4fNhdoFNrF9z1MdFfKjs63654a2CuEzEN5o5ITQxAqNKrMUeZwkIRAvWcNYb2hPXLxsAkQG8I7PImUYgXODfFAUYv+pIH4FIyAsiF3YMEEoeSOSSIyRjzKovVoQRGU+yhh+ZLKkpR3KWsmwLisjkTWC3NeReePBRRFEfqZFK+A4ytAdsH+HwDb97zjmCHVHZEWVaYT1AkIbdlJNXGwh7SIJmghICYGw8AbUBusLq0rpA9xc8tq6pJ2gt301tNoDBVFmeFpCqebBAVAhG1CvSW2+rzgOwvtpo9yKZcRFRlvdrKOsABSigxgUd7KphD4ontc8hJ6HqgxlFkgTykWtERM/WKEoaaZ2NQmvYGsPMow1agXXDFHEt7Q6esoqHpB52Fk3JHGWfj7LTs39PTyBsnsofMGBBbuYfgIHvdzcw+DKfEXHNaWynXEewlQblDi4JhvCGStsw83yTW4WM0bURtnseC2f3YWMYbk3NftLY3RvRjcKI2bW/c8bguPfBd22S6Qp+PQK3lPWboX8iiBSvB52Nmx9iyMPI04brzbSifw43kZSdxegIiKPrdZbvkLalGBke244xlBoQ0rJ0D8b7Y/t9MT88vDDNVqlj55esB7Bz01fadZ0M2y0H9W6X2DnP1/UXG1+3WCl7XvWGxlFrvim6gm4x8uoM/JTG9OBFr/vALy02pUjS41Lo4WDF6LF1EmTY62gv8A7OM12ZGWX4qP/M6EZRbrcIc=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(42112799006)(1800799024)(366016)(38070700021)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?ajIRtKbrA9hAuVcDMrx/WvthzLMUvyXP64jjdfNtkcpA0Ycx8KPlWL2SAA?=
 =?iso-8859-1?Q?MaYNNqrPCc92k2Nu+fooQk46zheftRkimp+GIHXGCRf6eMVyrSaXbNMxum?=
 =?iso-8859-1?Q?3JfmKSHOFC7wFkdGb69lGnjvpieZg66z5mNKHCRZSCyZnKnXOI62hrSxKB?=
 =?iso-8859-1?Q?9EY3lVbwoOfGSwow0NdM9mcdGdWrixWL5LhAaRaXP8mfyf4VfTTlEdaioM?=
 =?iso-8859-1?Q?VoXrpfKg7pFYb3ZiNc7OwT7idwUY4bnp5eLoE2+B4N3aJh3HE3PryBL9bm?=
 =?iso-8859-1?Q?WhoGSXQh0yWSYhgDlX3Aa1fUaVnY4Zhr+x/u4V2iBoGbND3GsXuHsJlm26?=
 =?iso-8859-1?Q?onnx2hDffc1B88LxNEgb3A2O4M/s1CZxHiAeWGyrAaPCRr41Q9W2xbClgc?=
 =?iso-8859-1?Q?KJm1Oe05Bz8unC7zzNdod9CPYf93BHZCukM+HmWkb4txXXlirhsZKiPpQ6?=
 =?iso-8859-1?Q?22qQLEmQRnwRHK1cR+upm5qztrO6LsO75AkwvN6VrGE4U8fHdwBQCkXdbW?=
 =?iso-8859-1?Q?f0Mr6fFK/zK7vh5QkCW2BR3a2H0z2TkKaxVZPHFyS9acWStEV3UAHUv0+z?=
 =?iso-8859-1?Q?Fl9FrgA4Aam5Qh8rDTXxuZV3FDLQkVynnB4/d0oevdGRGZsZDB4nMH3XNb?=
 =?iso-8859-1?Q?PABqdltgN3hXxyzFdgtpSHqWOsSJmIf3aMlLdNJ5KHAxAMDq6Db7kkMGne?=
 =?iso-8859-1?Q?vJ7x2ZOlFQevh7x1XPO7wxhuTn3asXekLiuzYnqy+0fbFAHDoqihz2tNhR?=
 =?iso-8859-1?Q?r2LKuhWspv+fon2t92S3oUMsKbQGgjAemU8qroEPyjs4JUG7vxK4NxEjb5?=
 =?iso-8859-1?Q?Hg9HeGyCkGzVH+ehS/m/XGbUNOv7/I3KqiOGQqaonkzGlz2+zMvuLJPoKa?=
 =?iso-8859-1?Q?cqBjdhfWIVyvfAg2N++MhSTz2i6D4t9180ncI97UZTdEwq4ZY0G0NQJ1+d?=
 =?iso-8859-1?Q?DZlTOzTcA1m8kpjVmsjGqUo+0whwSXtFatMTVrrGs4BdtKPwpAu7GsLOfC?=
 =?iso-8859-1?Q?dq8rZucFMIT3WIW9pVthW562QHp8Vt+NJGeW0bNCPC0KbWAZ8w9zRWptsg?=
 =?iso-8859-1?Q?+6vvqnH3r6dyZao4/3HLthok3RqEi3zl9uQtK8+/A4EEdhUFfPwkrITMGf?=
 =?iso-8859-1?Q?pEpiaX1a2v7zBVVMoYVZfO87dGFUUDCXIXVZxce3PIDb8GgdKQbA2xFlI5?=
 =?iso-8859-1?Q?LULrwsIknotK947DTmaivgF4rmLnjo7qqyDia++SSsjDDSu8yic8g5TISJ?=
 =?iso-8859-1?Q?ZIG3MBop7eFyqpNDjjAgkTAaMkCzYpBFZe+cYqGfKxwMd0ZsZZzMCD1elL?=
 =?iso-8859-1?Q?7frcRLRe1uIKERIAU/q30jLuTI/XNU9/kbz76dkzo2eR8fWxaMgTdsWJp5?=
 =?iso-8859-1?Q?zVwO8jfwkRLKEfxH2LfuY5jGQAxRwjA5ZIAu03V/Unw/55swcRY91NBShP?=
 =?iso-8859-1?Q?SJd4PlgeceXHkfq7ildHFLdVxOY9jmLqM5KVBy3vYoNqZnG+r31qRO11cP?=
 =?iso-8859-1?Q?VwIY5+wHQsrV4AJsou1+0u9faEmbyiBOges2dxLv7ok0taWwG3jVsU7bTx?=
 =?iso-8859-1?Q?dd+4scVyi3DrvSnzNcuxe6ZNbcucrp8mVV08XmAoCDxUjlGNdkn60ndEsj?=
 =?iso-8859-1?Q?KZl1sGATOKSCfW/1LoNGjFl5il0CfkTA8N7olYSlh6yZrGjfoEoIh5+qmB?=
 =?iso-8859-1?Q?GAHm/YNb+sUDdabKwWBq15TbHw00j1T4Zl5dE3WzuzIgZonsjNNbhUGV13?=
 =?iso-8859-1?Q?FUKSizr8MkDE6FOQyUnTj3W4ra/qNluwcx0uuLDOt6j6NKdGCk/ughFzEi?=
 =?iso-8859-1?Q?G9TAnYndrL7gA8kAYi8TP9vZmMrRdwk=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: 72dac3a5-ffb2-4f7a-ae64-08de8a7d23b7
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Mar 2026 14:45:20.7589
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: QCfpOAqEukxYetInEK7UhgxGc3ptbTB/Hb8oICHeQPm/NraKRxjahMFdymghqwWQ5sx1jhN69QHBN/RzLnmtXBAtkHmJ9iNfkg2hvQdwsxY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB8245
X-purgate-ID: tlsNG-ebf023/1774449924-B38979D1-0E0A07DB/0/0
X-purgate-type: clean
X-purgate-size: 3003

Hi Mykola,

Mykola Kvach <xakep.amatop@gmail.com> writes:

> From: Mykola Kvach <mykola_kvach@epam.com>
>
> Extend ITS quirk lookup with an optional match callback so that
> platforms sharing the same IIDR can still be distinguished.
>
> Use the board compatible string to positively identify Renesas R-Car
> Gen4 before applying ITS workaround flags, preventing false matches
> on other SoCs that happen to use the same GIC IP block.
>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
>  xen/arch/arm/gic-v3-its.c | 22 +++++++++++++++++++---
>  1 file changed, 19 insertions(+), 3 deletions(-)
>
> diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
> index 00524b43a3..c40629731f 100644
> --- a/xen/arch/arm/gic-v3-its.c
> +++ b/xen/arch/arm/gic-v3-its.c
> @@ -57,6 +57,7 @@ struct its_device {
>   */
>  struct its_quirk {
>      const char *desc;
> +    bool (*match)(const struct host_its *hw_its);

If you are introducing match predicate, then why do you need...

>      uint32_t iidr;
>      uint32_t mask;
>      uint32_t flags;

these? You can use a predicate function to match against iidr

> @@ -64,11 +65,24 @@ struct its_quirk {
> =20
>  static uint32_t __ro_after_init its_quirk_flags;
> =20
> +static bool gicv3_its_match_quirk_gen4(const struct host_its *hw_its)
> +{
> +    if ( !hw_its->dt_node )
> +        return false;
> +
> +    if ( !dt_machine_is_compatible("renesas,r8a779f0") &&
> +         !dt_machine_is_compatible("renesas,r8a779g0") )
> +        return false;
> +
> +    return true;
> +}
> +
>  static const struct its_quirk its_quirks[] =3D {
>      {
>          .desc  =3D "R-Car Gen4",
>          .iidr  =3D 0x0201743b,
>          .mask  =3D 0xffffffffU,
> +        .match =3D gicv3_its_match_quirk_gen4,
>          .flags =3D HOST_ITS_WORKAROUND_NC_NS |
>                   HOST_ITS_WORKAROUND_32BIT_ADDR,
>      },
> @@ -77,7 +91,8 @@ static const struct its_quirk its_quirks[] =3D {
>      }
>  };
> =20
> -static const struct its_quirk *gicv3_its_find_quirk(uint32_t iidr)
> +static const struct its_quirk *gicv3_its_find_quirk(
> +    const struct host_its *hw_its, uint32_t iidr)
>  {
>      const struct its_quirk *quirk =3D its_quirks;
> =20
> @@ -86,7 +101,8 @@ static const struct its_quirk *gicv3_its_find_quirk(ui=
nt32_t iidr)
>          if ( quirk->iidr !=3D (quirk->mask & iidr) )
>              continue;
> =20
> -        return quirk;
> +        if ( !quirk->match || quirk->match(hw_its) )
> +            return quirk;
>      }
> =20
>      return NULL;
> @@ -99,7 +115,7 @@ static uint32_t gicv3_its_collect_quirks(const struct =
host_its *hw_its,
>      uint32_t flags =3D 0;
>      uint32_t iidr =3D readl_relaxed(hw_its->its_base + GITS_IIDR);
> =20
> -    quirk =3D gicv3_its_find_quirk(iidr);
> +    quirk =3D gicv3_its_find_quirk(hw_its, iidr);
>      if ( quirk )
>          flags |=3D quirk->flags;

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 14:51:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 14:51:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262428.1554961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5PZg-0001vG-4p; Wed, 25 Mar 2026 14:51:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262428.1554961; Wed, 25 Mar 2026 14:51: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 1w5PZg-0001v9-1B; Wed, 25 Mar 2026 14:51:12 +0000
Received: by outflank-mailman (input) for mailman id 1262428;
 Wed, 25 Mar 2026 14:16:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <aydenbottos12@gmail.com>) id 1w5P1j-0003l4-M9
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 14:16:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5P1h-00Cxa0-23
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 15:16:06 +0100
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <aydenbottos12@gmail.com>)
 id 69c3ee1c-bab6-0a2a0a5309dd-0a2a45068d6c-34
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 15:16:06 +0100
Received: from [209.85.160.45] (helo=mail-oa1-f45.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <aydenbottos12@gmail.com>)
 id 69c3ee25-3034-0a2a45060019-d155a02db8d6-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 15:16:06 +0100
Received: by mail-oa1-f45.google.com with SMTP id
 586e51a60fabf-40946982a78so2094151fac.2
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 07:16:05 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1774448164; cv=none;
        d=google.com; s=arc-20240605;
        b=PkiGqVneoTAN8tT6/3QfKjxN4t4IpqHI375XykqZCGLWvPYFNIC3sp67A4aoOBCVkn
         U2PyXrklrhbSaTTESZykcwnfAAjn61wgQ1Z8iOD1u/yJnVupCTEEIYVyywrrO63r56gL
         FWEGc0WtPyD8dggd/f58ccKjT4SeNo+JnnWz8gxrhleJKznHyPUcdG6QsEIvd4pg+PsQ
         OLbctyM1c33peAr6H/cdtPezAX0eYIZkQyG+VR+ziRCmDPMXt1tW+HhuqdmlFfEM6+Ay
         S07f2/cvwSC53mYHZbdCDPggNnEj9FzpP4agHEwqeRPzUWBwLejnXTPX28l1ZacS7aaA
         MDBA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=r7y6YKolCJv5+RCixJGv6yuwL2cEKqM475jxEEtn/XU=;
        fh=g1WkAsZ2h5zzPyv9sSr+bkKXIKzQT0CMUrA/Ka8vWHk=;
        b=OkjO2PL677FWqSWeqkcAt7CjYNuWLGx77gZ3OAGoZAhsgRsNqZIM8R51QseWvaZ6/o
         +gjeqTdobjMQtStevKF/NA+crjM+cNisDCUJ05qOJ+OLHiCqXnzJa2lUPZFVnVnxlHlp
         wfcy7uyhuawbEV1PakV0PTPvjXfnuEv1mN81lEWfQUjy7ABXBKaG0/sWrGrJeSoAujoW
         MDwEKvZKF0qHvsU84b4nGgPAWAck0clIkIYWIaGDfYY59f29JViD0jXBq7hkj2BnjTV0
         18zaID6zGx8MU/cq7CQP/1+utzIO3xKC0WrU7HGKSdcgmhRtDLx0awOpRUfmf/2gEyJg
         53Pg==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774448164; x=1775052964; 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=r7y6YKolCJv5+RCixJGv6yuwL2cEKqM475jxEEtn/XU=;
        b=mPGQTbDg7iuLa9hEoVDZ59eYdg/ET3bGHDsA6yr7dxcFc70v3ATaapCzzeZHw99Iui
         9OtkLfNpaEQHI8xTpS4tG3kgK6Kdn1AdQvM8wg/3yKNfh/Rcz3i6Ce8vZJAbDJ1z1LGp
         2/g59PFsDMa20N8sozVmHJFED+HJjLGmXsUs4I4EOaZMXWlLn+aGRGC1JO3pPb691DuC
         01Zu5lWe0IUW/GbHCxg1cKXeeoAwm5diUgaFoLCsC5WGwnSAvTt2gUQAllqP6ZG5RKAQ
         f0/ubOUXNIqNb0P/WRYOY/pWfzCCueYbdN6Kjs8gewxrKnfwE9vhtCf8ta/Htqtl3n07
         hHtg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774448164; x=1775052964;
        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=r7y6YKolCJv5+RCixJGv6yuwL2cEKqM475jxEEtn/XU=;
        b=TQnm1F/s7lUlyBsfUsI8XP0Dxdm2tUevbWzz6TgolPIcaa1g63nLeh8nXk+/NFe0fl
         OroeoLgucJQaR1n4w/xVce82oOX6T6pJ/90dElH9DVrSH7s4u+G+KoT/iiHP1RoUU5JS
         y6ndMFskjMZFprSjjGTnOXdsj8qrbFjgs67v1uss1xRcOPxJHjpMjd5IUtmdhO/YAiya
         efRvMZeAGI/rvJ1BSS6aqu9FH51yATRtbCnqADPCH0AEj6NWPm5Yc4WneRWf9DWqbcPo
         6srX/1bGbT/68RWxurtk8gT4zfq739XfWUzGl9O7o0JAeDzzxuy8ty+4x8U5qqllKcRi
         sFXQ==
X-Forwarded-Encrypted: i=1; AJvYcCXvaMndhgb9Cq0SjhhjosvhvVBIANtguftoXuG3kNtcbiUxVLvzE8ynIGlKyMGQ1CZWKldi6kPW6t8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwO6SpAJWD1ixh9AQvK83BhSH4bA4toXCxcUHe1KpgTtLpKCFAH
	vkIE9SO77iA+HBuwMngBxQe6MPoSvz2enWKHflG4MqG5oO0Pm9Ikqd8Eq0v9l3As0xJsLjEWXiY
	8m3+xo79OuQbcsJFux8CeaafMMbpoYLQ=
X-Gm-Gg: ATEYQzyhGroAzStKck2GMZt2JasO17UN3k2aOXjts1TYbU3UPVi0eh41EZiEvtAUKmv
	sIi8TrkpAuK6uygb+/zOClLtvMtgepxJjbEYzm0H+HAtS7Qy+bLo45+1DaRiF54fdBrwcrfqTF+
	ZdMsVmuIhDjg0r7lzuSl5zQB+8S+83IxOLb21gdVeX9HZxTWqa+5x06pxue7v7MJ/TGsbL6MK9/
	pss0fhZuHWOEVz8ZBr0yqahBKsmNx69QNludU1GHgCYIRGAUc8EJbeJNTGAPTkpMUD2vf7f3cnc
	vCR2sb4+XWErxVGCqvchucu2vjRUgZyvCuZcvRZ1YV2HJke/abM=
X-Received: by 2002:a05:6871:3a28:b0:41c:4849:38b9 with SMTP id
 586e51a60fabf-41ca6d6a4c3mr2111306fac.5.1774448164335; Wed, 25 Mar 2026
 07:16:04 -0700 (PDT)
MIME-Version: 1.0
References: <20260325100803.6640-1-roger.pau@citrix.com> <20260325100803.6640-2-roger.pau@citrix.com>
 <ab36ce57-2067-4f1a-8384-403e015732dd@suse.com>
In-Reply-To: <ab36ce57-2067-4f1a-8384-403e015732dd@suse.com>
From: Ayden Bottos <aydenbottos12@gmail.com>
Date: Thu, 26 Mar 2026 01:15:52 +1100
X-Gm-Features: AQROBzBfCfuizWLiShRP0VGdIuXL2zuUtpdad1ADypykvE1mouKdJNmF1GNiB5Q
Message-ID: <CAMAzJ6GmqZpwCCnVh3nk4u0ddwtJCiF9DbdmP=ybsm1F3f2_tA@mail.gmail.com>
Subject: Re: [PATCH 1/2] xen/mm: don't unconditionally clear PGC_need_scrub in alloc_heap_pages()
To: Jan Beulich <jbeulich@suse.com>
Cc: Roger Pau Monne <roger.pau@citrix.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-16d1c6/1774448166-B30951C2-E9C2566E/0/0
X-purgate-type: clean
X-purgate-size: 3015

This looks good to me. I would also add a brief comment in mm.h to
make the contract clearer for future callers: MEMF_keep_scrub is an
internal allocator flag and only valid together with MEMF_no_scrub.

On Thu, Mar 26, 2026 at 12:37=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wr=
ote:
>
> On 25.03.2026 11:08, Roger Pau Monne wrote:
> > alloc_heap_pages() will unconditionally clear PGC_need_scrub, even when
> > MEMF_no_scrub is requested.  This is kind of expected as otherwise some
> > callers will assert on seeing non-expected flags set on the count_info
> > field.
> >
> > Introduce a new MEMF bit to signal to alloc_heap_pages() that non-scrub=
bed
> > pages should keep the PGC_need_scrub bit set. This fixes returning dirt=
y
> > pages from alloc_domheap_pages() without the PGC_need_scrub bit set for
> > populate_physmap() to consume.
> >
> > With the above change alloc_domheap_pages() needs an adjustment to cope
> > with allocated pages possibly having the PGC_need_scrub set.
> >
> > Fixes: 83a784a15b47 ("xen/mm: allow deferred scrub of physmap populate =
allocated pages")
> > Reported-by: Ayden Bottos <aydenbottos12@gmail.com>
> > Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> with one nit (minor request) at the bottom.
>
> > ---
> > This issue was initially reported to the Xen Security Team, and it did =
turn
> > out to not require an XSA only because the code hasn't been part of any
> > release, otherwise an XSA would have been issued.
> >
> > The Security Team would like to thanks Ayden for the prompt report.
> >
> > In the scrubbing loop in alloc_heap_pages() i should better be unsigned
> > long.
>
> This issue is wider than just that function. As long as MAX_ORDER <=3D BI=
TS_PER_INT,
> I think we could have all such loops consistently use unsigned int induct=
ion
> variables. But of course switching to unsigned long would be okay as well=
, just
> perhaps a little less efficient on (at least) x86. My main wish would be =
for all
> of those variables to be consistent in type (and hence all involved liter=
al
> number suffixes also being consistently U or UL).
>
> > --- a/xen/include/xen/mm.h
> > +++ b/xen/include/xen/mm.h
> > @@ -208,6 +208,8 @@ struct npfec {
> >  #define  MEMF_no_refcount (1U<<_MEMF_no_refcount)
> >  #define _MEMF_populate_on_demand 1
> >  #define  MEMF_populate_on_demand (1U<<_MEMF_populate_on_demand)
> > +#define _MEMF_keep_scrub  2
> > +#define  MEMF_keep_scrub  (1U<<_MEMF_keep_scrub)
> >  #define _MEMF_no_dma      3
> >  #define  MEMF_no_dma      (1U<<_MEMF_no_dma)
> >  #define _MEMF_exact_node  4
>
> Irrespective of all the similar issues in surrounding code, may I ask tha=
t << be
> surrounded by blanks in the new addition, to conform to ./CODING_STYLE?
>
> As an aside, I wonder whether we really need the separate _MEMF_keep_scru=
b, but
> the same likely applies to most other _MEMF_*.
>
> Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 14:56:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 14:56:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262496.1554970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5PeU-0002V7-MJ; Wed, 25 Mar 2026 14:56:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262496.1554970; Wed, 25 Mar 2026 14:56:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5PeU-0002V0-Im; Wed, 25 Mar 2026 14:56:10 +0000
Received: by outflank-mailman (input) for mailman id 1262496;
 Wed, 25 Mar 2026 14:56:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5PeS-0002Uu-NR
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 14:56:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5PeR-000pLk-US
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 15:56:07 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c3f77f-2eae-0a2a0a5409dd-0a2a4508a824-24
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 15:56:07 +0100
Received: from [209.85.221.54] (helo=mail-wr1-f54.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c3f787-1950-0a2a45080019-d155dd36a8b9-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 15:56:07 +0100
Received: by mail-wr1-f54.google.com with SMTP id
 ffacd0b85a97d-43b467dcf0bso673286f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 07:56:07 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b919cf2c8sm245027f8f.20.2026.03.25.07.56.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 07:56:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774450567; x=1775055367; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KSBQDY5YAbV8oot7jmEyT9W2PVJxD7+iZuvlPSORLZ0=;
        b=Ns+pMblJaERDBuMdRAP+1qAVZnEadXvjW45cbcohVYVdb+rzIIQJLkqe4usvWtqO+O
         g20BOxQUR1mpVRYa5ZK/FKSPICuRYXc89eaJxLjkYT696Nx33WBqVkfYeNeBEG7SokNo
         JryPbsLUAxlhd0+rR8vAoCG9CISL+CjyUOZrz57CVZw7I0f0MNzhEOT/h3YNSzN508zy
         y1I49mC6Natbo3/w60vXCeDps80TnbRD7k/bGsstWdIqfkJWRMKuhuFvEwIDXALWkrEw
         9anlUw9AJHAu3UNgAMGgI7wadZW8CssIm3wiJKOdrXM7LYA5R3dhY4Ckk4KLfNRQ7Lpe
         xcJQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774450567; x=1775055367;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KSBQDY5YAbV8oot7jmEyT9W2PVJxD7+iZuvlPSORLZ0=;
        b=j8A3AyiJZGJxF4xsS9XllkQ9NAmiaPNKeR6QBa9IAhLoSkZsedLLrA5/8l76wuswLw
         w08KiIFDhNgaQUKcgmo568SLsUK7TpfRHpo0k+fa94LCBIhoI/eMsSFuNj/BcQCHvWd7
         e2CASlwj9lEyK6xOoYV7yXqWMB9iePxDLAFCcxTxtt5rorRbCKYUXyv0YE+2VFd3gsyx
         i/0V9L/B+G/tpzCBohybjK9Tq5OlNSZEEowplbP+07EHokcfrcoxu2T8rNKL4SUn5LZi
         5C6INOTB//AwLfz8yX8lo2QVL/G0btQ4DCBQ7/cGPhm2OINmQGU6zjiRfwjsJHUyMNr1
         eqww==
X-Forwarded-Encrypted: i=1; AJvYcCXuLIeJPEl9ktqlcwN2lhWO0ueLCrDPzn+IW0M0/BcWKXTdHjmzs0iA6RgfMVW4bdZjXLdzOldNMaQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyW6Pjdi1HL8ROo9f7aUkv0LmVKGPtKfqFYIaY4IfvF1hCN0N2B
	Q7a+PW1wIdRaGxLBrq9PfTVcbstpZsMqaGgC/fezh5nhVQIMObpyPoGg9iiHR+bPAQ==
X-Gm-Gg: ATEYQzzonnqhm6a9smBVo94zPbzDdWmyDGs3ZkYrJCwGwaioKDTGE2/szGza+IO17KM
	EUC+4DM0V3NAw3CC1pv7dchUMWmFLJLxwgbN5K7DTC2AU60w3uILGlBYSrqf5k56cSWObDEc8zW
	8H7iDpReu3K+QhpBpRmvjJdlJHWq9FSji1YD4geZujOfsdq1J6aa+zHBEka3RQcY92w8Mr8mayJ
	GOcgqrDy3oHXEa76uQBBTMWS2QmhIseoMgzzdQ5q6u4Im2UN5/wzezn7oj8btTElUIYvT9UtR/h
	BTWJ02WfqMBb71SLGikbKbuEKRbzuiJIg4vFemijzUhALJIqzX7+sUIyTQblAGT0sWLQWnIm5uO
	rRws9pK+YpL8dTa4Khr9UrsTrRXf8ez4e9qMYvaXXujlbbtGRRiodDME14EX9GcrdZtuDpf3aDS
	flyRCEiljD0QlyRNs79vq1ltbku9bxksNteeLsc+rES3XhP1cbb0WMWnhbFDQ9omvs9YhsN8IMA
	VocuerAMANcp3E=
X-Received: by 2002:a5d:6f0b:0:b0:439:ccd7:cdcc with SMTP id ffacd0b85a97d-43b80592b2amr10890169f8f.18.1774450567028;
        Wed, 25 Mar 2026 07:56:07 -0700 (PDT)
Message-ID: <73c705eb-95f9-456c-ba0b-c6e0f7730ef1@suse.com>
Date: Wed, 25 Mar 2026 15:56:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xen/mm: do not assign pages to a domain until they
 are scrubbed
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: <20260325100803.6640-1-roger.pau@citrix.com>
 <20260325100803.6640-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: <20260325100803.6640-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1774450567-E80BE726-F607F77B/0/0
X-purgate-type: clean
X-purgate-size: 3124

On 25.03.2026 11:08, Roger Pau Monne wrote:
> ---
> I've attempted various different ways to solve this, but they all ended up
> being impossible.
> 
>  * Prevent non-scrubbed pages from getting extra refcounts (iow: make
>    get_page() fail for them).  This seemed nice, but the cleanup using
>    put_page_alloc_ref() was impossible as non-scrubbed pages would return
>    failure in get_page(), and so I couldn't take the extra reference ahead
>    of calling put_page_alloc_ref().

A special-case variant of get_page() could be introduced, but maybe that
would still be overly fragile.

When we discussed this, what I had proposed didn't require use of get_page()
though. assign_pages() would install two general references (plus one type
ref for PGT_writable) in this special case. To free, you'd call
put_page_alloc_ref() followed by put_page_and_type().

That said, the patch here is still less intrusive than I feared, so I'm not
asking to re-work this again.

>  * Disallow XENMEM_decrease_reservation until the domain has finished
>    creation would fix the issue of pages being freed while pending scrub,
>    but it's not clear there might be other usages that would be problematic,
>    as get_page() on non-scrubbed pages would still return success.

I agree this is of concern.

> --- a/xen/common/memory.c
> +++ b/xen/common/memory.c
> @@ -388,6 +388,12 @@ static void populate_physmap(struct memop_args *a)
>                              goto out;
>                          }
>                      }
> +
> +                    if ( assign_page(page, a->extent_order, d, memflags) )
> +                    {
> +                        free_domheap_pages(page, a->extent_order);

The pages don't have an owner set yet, so that function will go straight
to free_heap_pages(), needlessly passing "true" as last argument. Correct,
but (for large pages, which the stashing is about) highly inefficient.

> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -2699,7 +2699,13 @@ struct page_info *alloc_domheap_pages(
>                                    memflags, d)) == NULL)) )
>           return NULL;
>  
> -    if ( d && !(memflags & MEMF_no_owner) )
> +    /*
> +     * Don't add pages with the PGC_need_scrub bit set to the domain, the
> +     * caller must clean the bit and then manually call assign_pages().
> +     * Otherwise pages with the PGC_need_scrub would be reachable using
> +     * get_page().
> +     */

How about replacing the latter "with the PGC_need_scrub" by "still subject
to scrubbing"?

> +    if ( d && !(memflags & MEMF_no_owner) && !(memflags & MEMF_keep_scrub) )
>      {
>          if ( memflags & MEMF_no_refcount )
>          {

This no-refcount code isn't repeated at the new call site of assign_page().
It's not needed there, yes, but wouldn't we better allow this to be taken
care of right here, moving the MEMF_keep_scrub check immediately ahead of
the call to assign_page()?

Otherwise should we reject (much earlier) MEMF_no_refcount used together
with MEMF_keep_scrub?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 14:58:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 14:58:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262510.1554989 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Ph0-0003IJ-Fr; Wed, 25 Mar 2026 14:58:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262510.1554989; Wed, 25 Mar 2026 14:58:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Ph0-0003I3-9r; Wed, 25 Mar 2026 14:58:46 +0000
Received: by outflank-mailman (input) for mailman id 1262510;
 Wed, 25 Mar 2026 14:58:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w5Pgz-0003Hm-Cd
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 14:58:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Pgy-00H94M-Oi
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 15:58:44 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c3f81e-5cb7-0a2a0a5109dd-0a2a450b8c88-18
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 15:58:44 +0100
Received: from [52.101.52.57]
 (helo=BL2PR02CU003.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c3f823-ef63-0a2a450b0019-3465343945fa-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 15:58:44 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA1PR03MB8032.namprd03.prod.outlook.com (2603:10b6:806:45a::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Wed, 25 Mar
 2026 14:58:14 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026
 14:58:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=F3FBUMdoo8NBUo4GSWACakMgNySExrJ8s4sC23Zok81KfYJgakc/sbUu2wZZGzS5F1FyRHp5BA49JPGQdJjdcWVt0SyZW58lvnAgUiNYffCpSh3XzuYBKyGHW/ixxUaXEBrOLMk1kMERlGstSZGhnzZbrCHLqc/EfN7lXUBb3uoI2U8uLwM29t+dkY8fU8fLQVOoa0SLOSylBxCNJ9Me84S0aggLQiQk1VK/6VhPwHRg3t7mA2zS2tpYVubvs7U0cNjrGR9DEusAZbuYUAqREgQ2+4NC42Pi69zetu0CmPdueiJe01lQEoOiXdcaM5gkn1h7NMbkdOsLxWdE/kB70w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LCCbnci/1/Eb/HhtKG9s1fldlqwHd88/UxiGZ/Ck8Yw=;
 b=W0uRWdl+sENRJYCNhastCSV7r2y6niXWxQ1ihxdxk8fD3fksYgr9BrTxriAg1y87ALp31hiEELQXyEaycEGqwq3luliZRNb8fm5OBrpigWFEc/4u9R8DTb0VrMFGUvqXQQgDodPo8IDfcMI9z0dFMOhR3Pk/cb9WL2HcM5P3Km9Ait11VDcyKs8mIfTqmH13cZ4pHnhtArBW3ZdnzG0NBneMN1QKEJYYJpNiLna43k8JoztNAgfd4Kn8vTcvJgpgLvzkZSy96BcVhsppZS0GD+M2Nn26/VN0RjrVuN80kBVLJ18Dz0iuTdjN7zGwVIYht0+eg1kjBbPvY24Ja8DchA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LCCbnci/1/Eb/HhtKG9s1fldlqwHd88/UxiGZ/Ck8Yw=;
 b=rDlcdElYr0BXQSVxVzIWxju6ika5OYpM0Ot1drHOXN9Vp5on5CN8LpfXotfxQHR/vn67o9TK1idq9jUh4HojpDr0tSz5K9YSY45URkrqORmFKSMwG0hFi0RSvXXKA0Ljmu0uSLTZK1hKPYpLkyLaaA84XtOvKmrvCdqcUIZpWvA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 1/4] xen/uart: be more careful with changes to the PCI command register
Date: Wed, 25 Mar 2026 15:58:21 +0100
Message-ID: <20260325145824.31601-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260325145824.31601-1-roger.pau@citrix.com>
References: <20260325145824.31601-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA4P292CA0007.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2d::12) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA1PR03MB8032:EE_
X-MS-Office365-Filtering-Correlation-Id: 28a28ed3-829a-438b-568e-08de8a7effb4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	Cj92Xa800JsgpTwsbQH5CXLk+hlt8XkOTPXROhjzBzr9O274BJvormJQEAaBfUP6ThxwE4NO77LVkFLM2Ip9bzKQpjozF+/EpNEi0jIUzEVkcB7dpfD0wHefbtNdCQoW7Np83IhZX5T1hk8WGScxkWCzkk7NHxth0aM8Z4ZcVQNGktcfb7ix2czWflvMvLHtmirmptVI92HpUqS3nLdWm4n6BV13CiJ40KNKQDdn5430gtjw5JDFurZL8GPwzVoUQ1K/uNHL+bf06+x4jhyHSyl3ISMFe9FbmlJW3yfF4+NHMud4H/U4w0jkGCNlWj29WN/xkGCmFq91vUKKcz/rSITf5l3itg1wv67lOBD4slVisTVYUUSE8yLGlbAdxYOW9DCNNJE+wKZq7IQf/kfoSmc8RLQOJ7Atyw74cyfTot3j8xdLqvJ8Kr1CYNmvYu4o9ImK21DV2O4mogIiwkvzVGDLkmZBn5Kep+qz0LvkAaeX/2axyUnK+3ipkhCx2OWLPjEQ1tIEurFaOUPZRWDYvtoM1tMg4M2kyPMlgGpqBUPstVotAUfHgjBz2geKbXNxi8A041HuDVy8bjFBL/i7go+OLJ+XIE/3YDgT+Za1++eV4fMPLiIuC5ss1FP4kbxuqdE5MF7xrXxCvM1zn0SUaRNdlhDVnba2yTxLk7SSI9shZJQJqT5fCfFr064ijbfwfvB87UTDo5LuhnxhFb/dY7B9YJP7vr07p+MGxH26i9k=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QU96eW4wOWljYkNrQW9VRXpFVkJQeG1MYTY2N2l5dEYwK0s0MmpSUzZkbnhx?=
 =?utf-8?B?aS93SXlLTy9memdZSFRZM0M5MGROMDdIWjV2RVlkOUFTVVBoTHAvUitrbFdP?=
 =?utf-8?B?SWJnbS9xTUU5OUtjU2RmQmVNY2dLTDE0OUp1enJuR1crU2VwMDBEKzYrdloy?=
 =?utf-8?B?WG1SY1Q0TEM1cmUvN0hHUHBOWDJmL2MycE05WTY5Yk9aQkVhbmdRaXhCRmdo?=
 =?utf-8?B?dVZ0cXlUNk5pNlNvZTQ0KzEwNEh0R2pHcTloU2xwRVV4ZXdPbHJnVEFsL1VM?=
 =?utf-8?B?MFE1NkJQUXViR0Z2ZEpCWUVDemJDUFo4Y0lBNGlNUlRPbHg0UWJtNkFOdTFS?=
 =?utf-8?B?OEhjVHB6VzhQSUQrWGJFTUdVcnBVMzBkelpocjZmb2REYkM2cGJieWlMaUlm?=
 =?utf-8?B?U2dEeEtxTU4weFo2UUtHWk1kMjc5UHZ6azdVQW5vaEhtRXJNNUtQczdSUVFj?=
 =?utf-8?B?Nk80Vnd3WUpRWUcwV0dncUp6WWY2WTFNd3pnU1MydGNrUjhKNnNJZ2N6dGdD?=
 =?utf-8?B?RTJ3emd1OHpQVE1pdVZiaUpodEdQamdDRVBWdDN3a1ZOSWFGdjJRZzNUSTZj?=
 =?utf-8?B?Z1NwMklRejF2RTEva2F5aTNZV256NDlrNFE5YzB3UlkyRzNzSmZveC9QR1FR?=
 =?utf-8?B?djJCTXMyaEZuYWJlSHZBaWhnaTgxZWhkeWc4Z21vMHlkSEFSNm1mS2U5djNl?=
 =?utf-8?B?NDkyU2F6WTFQdUw1S1E1Mk81ekI4RGh3R0RxNGM0aFY0RmczMlhpYWxiWWh6?=
 =?utf-8?B?a2E4YkMrR0hVZENnKzNVRVZ0YmNRbFpyT1EzTG8xVGpZcGJrYS9Uc2lZU21L?=
 =?utf-8?B?dzJKWjRDQWtBd1dXNjdzdm9QV3NjSnNhWmIvZXB6TkZjVGZpeW9XODlUSk5S?=
 =?utf-8?B?c0pxV0VUbnpWbEtBNHUxejQyclA3UkczOVplUkF4UWp6bFYrL0czWVFXZGpq?=
 =?utf-8?B?ZVRyd1crTnhVNWk0MGZHSXBrUUMvRHBCelNIcjY1ZGVXKy9BQ0tKelgrdmd2?=
 =?utf-8?B?Z0lDQTI2QkJWS0ZkVDlTckRCcWNhOGlabTZydGs5bXNNM2k2cERXSytuOXdL?=
 =?utf-8?B?eDAyeXd6c3ltTnBpUmRxdHQxaDFJdEZwTkNQNDdxVDNnNEdVeGNkSVlNRnI5?=
 =?utf-8?B?bUtScTNZRGFSRGdSanE5eW04Uk5qWDh6YkJFWVpFSnlQK2pqazQyNkFtTjZI?=
 =?utf-8?B?SHhnUDdEWG5EVXE5Y3Q5Rmk2YXpzVWdvMzZZR21CMTFySng2SDJZSDI5azA4?=
 =?utf-8?B?QXltZjQ3OFhNVnVnTWJwbitIQTdBYWNPdlV1SDVUVnRFc21hVjB2bFB1eHp2?=
 =?utf-8?B?UzNYOVNkRkJRaVYyM1VhZndPSEpvUXRJK20vTFVweVNDeEYycGtJclFzUkFB?=
 =?utf-8?B?U1kvWUJaUWZveENnYzhEMFZUajNNeFQ2ZVc2U1R2QzZ5ZjE5SVVWUTYweHNk?=
 =?utf-8?B?OTlqNHNzVkN6N05LdzZVY0NwVzVhVjhsZjBjRlF4YjhDWThScEdKK2lpNXZK?=
 =?utf-8?B?N0ZZZVZLSTV0am1WRU5zVkNaNDMzOE5YdUFxMjJlVWh5ZC8xY1hQLytFRHpu?=
 =?utf-8?B?dVNobWJCSkJKbDJqdi9YWHNGb2YrMkRKQWNPNjNYS2ZwS0VHSHppbTJsVk12?=
 =?utf-8?B?NHF2cm15SEp5clpJUkhDTysyd05sdFB1c1Z6ZmpIWktzWENhY0Z4RnNyczJH?=
 =?utf-8?B?MW5TS3RwcFZpWHFTd3FBZjRQYWNWejZTdll5VTRnMWxzbzdrMExJbUFkUWRL?=
 =?utf-8?B?Q2thUmhjMm1IV0kvUHZ3UVdqV2piSGVzTkk2VDAvT2ZJcjFzQkJBQk1Qd09s?=
 =?utf-8?B?QTJlSGY2dmpoajVRS2pUcnMvaGU3bmZNSSttdGNjeWlnU1lnYjlwNndFTUFQ?=
 =?utf-8?B?U3NMSW1neTdBQXN3bnpkc3ZSTlFDZm9kMFF4TmZFKzJHSjVWUFNGWVdOS3or?=
 =?utf-8?B?KzlCeXVDb2FNMHU4Q09NZ0xvVGRYeG5pZDE1NU4rek8yc1FrY1AweWVId25h?=
 =?utf-8?B?aCt0UWlMSE9mUzV3WDZPbWQzd0RMaDg5ZGJkU3RQNDZZM3VySnhaeWZYVHFL?=
 =?utf-8?B?RkhqMmNpY25lb21nMXF2NTVvRTVCRVhTNFBkR214dGY0eGpWSjNQenZMUERU?=
 =?utf-8?B?aHQwQ2pJZnV3eWVqYnRLNmRTdE1lNDUyZ0lneUNQWHdwVFUvdVhucEZHWEhD?=
 =?utf-8?B?THZjVUZ5SXlqRnkwNHdwMzhiaExpbG4yRVdadzFlNmdhQnJiaFZyL0JtTTdz?=
 =?utf-8?B?UjkxVGRrZktVWExsZmxqOEx1ZlNSamFLQkFWelV0Vk13eXpyV0h6N3k2cnZM?=
 =?utf-8?B?R2dtYmU0VGMrdGNrNlFaTE91bmtJR1VtTDI1WHhOOVpkc0RRdGVoZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 28a28ed3-829a-438b-568e-08de8a7effb4
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 14:58:39.5644
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: x8q3wji2hdxGdFcDvo21gZnk2bCum+XScQBXw1z9Hq5zpJxsOziilaOVpBCsflj3y+5lXjZDDT39fbVMdMGcMA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB8032
X-purgate-ID: tlsNG-42698a/1774450724-A1003112-0154B624/0/0
X-purgate-type: clean
X-purgate-size: 2062

Read the existing PCI command register and only add the required bits to
it, as to avoid clearing bits that might be possibly set by the firmware
already.

This fixes serial output when booting with `com1=device=amt` on a system
using an "Alder Lake AMT SOL Redirection" PCI device (Vendor ID 0x8086 and
Device ID 0x51e3).  That device has both IO and memory decoding enabled by
the firmware, and disabling memory decoding causes the serial to stop
working (even when the serial register BAR is in the IO space).

Fixes: f2ff5d6628b3 ("ns16550: enable PCI serial card usage")
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/drivers/char/ns16550.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index df7fff7f81df..41d6380367ca 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -283,11 +283,17 @@ static int cf_check ns16550_getc(struct serial_port *port, char *pc)
 static void pci_serial_early_init(struct ns16550 *uart)
 {
 #ifdef NS16550_PCI
+    uint16_t cmd = 0;
+
+    if ( uart->ps_bdf_enable )
+        cmd = pci_conf_read16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
+                                       uart->ps_bdf[2]), PCI_COMMAND);
+
     if ( uart->bar && uart->io_base >= 0x10000 )
     {
         pci_conf_write16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
                                   uart->ps_bdf[2]),
-                         PCI_COMMAND, PCI_COMMAND_MEMORY);
+                         PCI_COMMAND, cmd | PCI_COMMAND_MEMORY);
         return;
     }
 
@@ -307,7 +313,7 @@ static void pci_serial_early_init(struct ns16550 *uart)
                      uart->io_base | PCI_BASE_ADDRESS_SPACE_IO);
     pci_conf_write16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
                               uart->ps_bdf[2]),
-                     PCI_COMMAND, PCI_COMMAND_IO);
+                     PCI_COMMAND, cmd | PCI_COMMAND_IO);
 #endif
 }
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 14:58:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 14:58:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262511.1554997 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Ph1-0003Vz-L6; Wed, 25 Mar 2026 14:58:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262511.1554997; Wed, 25 Mar 2026 14: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 1w5Ph1-0003Vq-H1; Wed, 25 Mar 2026 14:58:47 +0000
Received: by outflank-mailman (input) for mailman id 1262511;
 Wed, 25 Mar 2026 14:58:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w5Ph0-0003Hw-35
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 14:58:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Pgz-00H94M-FS
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 15:58:45 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c3f81e-5cb7-0a2a0a5109dd-0a2a450b8c88-20
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 15:58:45 +0100
Received: from [52.101.52.57]
 (helo=BL2PR02CU003.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c3f823-ef63-0a2a450b0019-3465343945fa-4
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 15:58:45 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA1PR03MB8032.namprd03.prod.outlook.com (2603:10b6:806:45a::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Wed, 25 Mar
 2026 14:58:18 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026
 14:58:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yrOZvG87EWg2+nb8D2wy4UXJeKw94N+vnlnZHBiIX1qvPOQyozCmu+itxY8/EukLpJ/w+Ida/YFBlZW4hBXLF1ag1+5lGHBbyWG50G+0xHjylMyNp1adyGFWH1Js+Drm5dlDtVzVhhmGeLcF6zZ+d1uZ/iEKwncRi1j3CzR7O7XvKiS0lEYnDgUuYRaXTuMXpWgU17RfXywLuFc4QCrbDLNriAJZ34FBeP0K4/G4PyHcTrkCtmUZNr+VWs5oU+JDht7DfeaaHd02l/oSEJgyrN6xr3Sj8/dHOvBuQWtCaPnouPl4veEg/QT7glYXcep7EfkH2yTPsrffgBfTz6Rg7Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JEgJ8Wd5qW4VAjfsP1HrFdECze8KglxkMRJ4l8ASAB0=;
 b=JYz8VkFiJeUV7GhVv/mkweX8N1FBLB4kBUnKy0nk9S/9p644R/W0BxA9Tse5SP3v26M2ZnfwMHjRIc6iE2tnj0mhNNJRBjPVJz9dmfUPNPcC75TZHFF0ZnPNgHJzUWsQYgoSYQOK2W2mctmTFaV654uZLJ3LdLBuWOx8OJZOZnv8CxlU/86cq9nA22oaDIRmAj8Op4kkfLcP8gv66ntwW6v3qDRIfucHvUETwMw+odzSDdff9Lu05st1XbsP+uBLGg1DwpOOyDdeU6xXE5dX3TpipN4DzKdS55JoWQSGNJM21KJE62wANKnx6ZyTFc9a97i91XXXmyt8sZ8/8XiW+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=JEgJ8Wd5qW4VAjfsP1HrFdECze8KglxkMRJ4l8ASAB0=;
 b=pAnYjCspYhtEyK+cRQ8dyslOlEPqx7OB/58KLBcYQTWNS47W0yYhlahiDbhtxTefg+exHf/OyiQ4g73edQmBA+5wGjX2Reu30d3bUdHnAGJsIHXTTeo+ZuFa1nYLG2rtTClnobNMNnqdhEB4x6fKZKGX4GzXDfEZUr7TBMUXav8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 2/4] xen/uart: switch ns16550 to use pci_sbdf_t
Date: Wed, 25 Mar 2026 15:58:22 +0100
Message-ID: <20260325145824.31601-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260325145824.31601-1-roger.pau@citrix.com>
References: <20260325145824.31601-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0046.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:48::16) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA1PR03MB8032:EE_
X-MS-Office365-Filtering-Correlation-Id: d60645bd-1fb3-42cd-946f-08de8a7f01ab
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	1QC4Z8XYk+zkmknKj+WDxIUxvTy6QewrXQw7dZyr4rUMn8B0Imd3zLS92xf4cDz7Tro1siCeHHYP4JvXX7b15o15Oyo9bKqZjX019caYJ0nzwSg02ag64/GN2hJgOVW0cbWdHx9dbmVsYHaa1Pf9hTJfTJc7+AIKyId5NjOMveBvoZGzVCAE9oajNMclK0R5kwKvGYgJ8s4YFA2mPDh0O5lNxqewqleCkhY8VJbvsn7YKf/CzY1AHqdXUAzPhJiq/vlW1gLVR5uyHhxKbUX8Mekm5HXqOzKQkemYnkdJjhG8FnRnbUfMeimfw611yN/M+AdUcoIGndyOLgR5PoT4O0ACHAd44tuk9SyvUszws6VQ7H4F2whJXQ0SQGvvz6YMnAE04YO0FhbbLtnCxfHmZprFQ/fEpWhPnqaMfh63S4JpGEA3ws/SciBEJTe4kMX+K7YalmaB2aIuUeTYNatw7LiA0jRCLH9stQHDpEDZ/8B6evagZGE6pT0CPPC4A3U8d0i7SQM+IMjX+kHv0UCgifQuiSubZVl3vA5wKNkr4FsdbAlYJBibOLKp8jemjNKca5WrZvy5jrw50E9IGjdIZN+8QV34xwQFLwf0T62TO/cBKc88qdKsMzltUAbwizL4xRfMc4kJKj7HzmqMnP10m/pP29wfRb/glkTFW0wvsf2gCuNwn/mb42jrFmJWhv58ejP+7nx3ykuR+kqMpmg3ao+uvzK8gEe/JbN6S/xGgAE=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?M0JxWVd5UkJlTlJYOXIyZXFwNmJGU0l4U2xZbGY3Vk03Q3pqSUlLNm9WT3dN?=
 =?utf-8?B?dDNhSWpLYTQxNDFaWEpIMVJnTzJ4RWU3aUw5Q0x0b2x1S0FUM3plRjZEbDRj?=
 =?utf-8?B?WGdhVExCYi8xaE4zTXdHTDVJMGZPOUkydldRNDl6aVFvaDUxU0U2U01ZT09m?=
 =?utf-8?B?ZXpIZWtwNjZ0TEJZOVN2RFV1c09nVjBGL2lOeDNzQVdpZUtoYVd4bHdSSnls?=
 =?utf-8?B?YlZCU3ZNRzlUbHVZTlNhTkdOdTZuOENXSUlJUVF6cG4vN3RHR3FEUzU2WmV3?=
 =?utf-8?B?a1JmRi9YbXR1WENJUXcyODkwdDRWRmE4MXMzdCtURU8vLzJTV2JYQjkyMmxY?=
 =?utf-8?B?RmNrL05FWEpJUm41WVEzaE1DSkJjWVZMMXE4eDVVR1hKNERuUi9qVUQwYUhS?=
 =?utf-8?B?bTRZRmZDaVhoQktPUHV5cDlzVmdZMjJTd280L214cUpDNmU2dWp4YmxUTkVF?=
 =?utf-8?B?cUplc08xbWUxZTZIZVFsVmc2T3IyZU5SMC9WSzZta0M2MHJ5aDJXRGdweUlU?=
 =?utf-8?B?VGRrZjdUNloyZWZKUnFVaFZpSis2ZUJBTDQvK25xRml4K1A5VDdCajBSZDc5?=
 =?utf-8?B?bysySzFHay81UlJXTXNMUEFjdzgwZ2hLTXZacXRRMTd1V3Nzc0Q3cWlrZDR4?=
 =?utf-8?B?N0JNWTNNUHIvbnV5R3hzeXhKcjI0cUw5VFpoUnp5cTdyOEJkVkZNYmM2UC9V?=
 =?utf-8?B?ckJjcW1ZYzNZR1ZsK0t5R3V1ZVcwMkE3MGU3VXlncXBYV3FuZVFyVXhQTTZC?=
 =?utf-8?B?ci8wRXF4T05ST3FuNjJNTW1Tb2tERlZieVpFMldQSmt1WHZDZzE5RFk5aGNH?=
 =?utf-8?B?ZHFvVnVTUFZQV1FoSkF6RmNReHhVclBzMmlzQzZJUTR4RzYyNFl4SlBaR2xH?=
 =?utf-8?B?VzJwUjFRaHZTaTcxTmVtNkEveVNWMUhJT01TcnR0am5BeU1vM0xGbTI1KzB4?=
 =?utf-8?B?dTRqOGU1em1IckNhU01jQTZaanptQWxXMDJtQWEvNC8rV2l0Y2pZV1ZlSU1l?=
 =?utf-8?B?eXFvY21LVk9wUUhyeDdnTEN0Zld5T1dCMUVpa1FHYTdvalgvZUt2UytWRGZp?=
 =?utf-8?B?YXZLUzJsY25EUGx5aTZaU3RqSWZzRFZwZDZPYkJHL0pldUJaMFVTaHVtenZz?=
 =?utf-8?B?eDlxWFNOMWs5bFpYVUZxRU1qbkpoNmVGZnk4U1Irbll2ZmppOUR2bFJqb3Iy?=
 =?utf-8?B?N3BXRzRsalpxMExJMTRvTnpZVDlxQjZ0UTIvKzJGWUVaMzZaVHAzbEgrZVZR?=
 =?utf-8?B?MEthc1Z3ZGJxU3BYaC9Bd0pQeEF6RGUrTVpSMmJwNGp1VDkzR2NWSWI3Rmp5?=
 =?utf-8?B?enEvNmJmZE5BUHQ2L0R5NHQrWDVyTzRjY2o3T3h6ckJKOGVSam42MkdCZVFJ?=
 =?utf-8?B?M29tTmpML3dFOWVrM3dNdGVDYlVWNGJFNFcrdzZSa0ZoMWhlcStlcmlFVnB0?=
 =?utf-8?B?YUQ1WUw3Vng3bzhlWTB2WGpJbVl0QnA2MDZvU3lONHdKVWhSLytUMDczNmtr?=
 =?utf-8?B?bkFqZFNQbXIzeGpNdHREaUorNnh2YUlyUElJOG5NY2kyUjB6OGpEZnFtM1pz?=
 =?utf-8?B?UVV0ODNXUVNFUUJodjREZ2hqNFlxUEJTU3pzR1dFY3RJSXgrV3pXcjg3YXFH?=
 =?utf-8?B?RVNEVEhlUEtGcTc2T1IxRmJhdUJhSEx1d1ovckVhTExlVDkySWFIcmdtUWx5?=
 =?utf-8?B?ZGlEcnoyYmVlbHZsK2RpUGF4aHAwWkFIUmNUaUd6d1pSaXBYUngzeENnbkN5?=
 =?utf-8?B?Q0h2bWpabEVoN2hxbXpGSlFlQ2hJUTF3YkpsdzVsTEY3dVNnMmFVeUkrQzdm?=
 =?utf-8?B?ZEJuRDc1NlFzVW5HNVdSMSsrb1llbVUxZWlzTlRZdEdtbGp2WnNPZjROWnFo?=
 =?utf-8?B?dm9CYzEwZFdWMWMwZGo0Y09YanVuUEIzS2E5UTBSNndSUGhXa0owSnFLZVlO?=
 =?utf-8?B?dm1JdTI3M25sV2Q0MlBTWGlYTWhpT0piemxoc2FkYTRIZ2dmdjhwRkJRUUdo?=
 =?utf-8?B?cTQ4NDdZNGNRUmpKWCs5NUd0NzNrZW5PV2RveXN2NzhQZnJ2WTcxb0h2MTRB?=
 =?utf-8?B?WVBWV1R3cFJlZCtLbXZCM1pzb3pvcUR0VkZCVDhXa25EMTVaaU5hZGhyY3Z2?=
 =?utf-8?B?NUlqMy9jcDJ4WnVWWU5NTDlndk9PVVNVRDJGcWNwdEZQVDhhQ2JQYlRvTUdJ?=
 =?utf-8?B?bXdDMnp4MExwSStVZGJlSTRlWHllSVJxMVdtVVR0M1I3aTQrOHVKc251WnhB?=
 =?utf-8?B?S21TOGJ6cnliSVduMGpiY3pHa0FUK2t2a2dsOHN0RW9taGJlQlM1SFdHQ3JQ?=
 =?utf-8?B?QXh4RlNLZTZTSlJjWUs1N3hrRjlBc1c1THpqdExGZUovWTVtL0p0Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d60645bd-1fb3-42cd-946f-08de8a7f01ab
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 14:58:42.8157
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: OKib/BomPupOiiXOtPbmkn9ZZD/ciFx4/4s0gbxWHPp8I7CQzyEmpeyLVL36ABxXfbjUuDJTWpEJarIcPhBy1g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB8032
X-purgate-ID: tlsNG-42698a/1774450725-BB0A9112-9A782E94/0/0
X-purgate-type: clean
X-purgate-size: 13785

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/drivers/char/ns16550.c | 133 ++++++++++++++++---------------------
 1 file changed, 58 insertions(+), 75 deletions(-)

diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index 41d6380367ca..da3b6fdf99d9 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -67,8 +67,8 @@ static struct ns16550 {
     /* PCI card parameters. */
     bool pb_bdf_enable;     /* if =1, pb-bdf effective, port behind bridge */
     bool ps_bdf_enable;     /* if =1, ps_bdf effective, port on pci card */
-    unsigned int pb_bdf[3]; /* pci bridge BDF */
-    unsigned int ps_bdf[3]; /* pci serial port BDF */
+    pci_sbdf_t pci_bridge;
+    pci_sbdf_t pci_device;
     u32 bar;
     u32 bar64;
     u16 cr;
@@ -286,14 +286,11 @@ static void pci_serial_early_init(struct ns16550 *uart)
     uint16_t cmd = 0;
 
     if ( uart->ps_bdf_enable )
-        cmd = pci_conf_read16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
-                                       uart->ps_bdf[2]), PCI_COMMAND);
+        cmd = pci_conf_read16(uart->pci_device, PCI_COMMAND);
 
     if ( uart->bar && uart->io_base >= 0x10000 )
     {
-        pci_conf_write16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
-                                  uart->ps_bdf[2]),
-                         PCI_COMMAND, cmd | PCI_COMMAND_MEMORY);
+        pci_conf_write16(uart->pci_device, PCI_COMMAND, cmd | PCI_COMMAND_MEMORY);
         return;
     }
 
@@ -301,19 +298,13 @@ static void pci_serial_early_init(struct ns16550 *uart)
         return;
 
     if ( uart->pb_bdf_enable )
-        pci_conf_write16(PCI_SBDF(0, uart->pb_bdf[0], uart->pb_bdf[1],
-                                  uart->pb_bdf[2]),
-                         PCI_IO_BASE,
+        pci_conf_write16(uart->pci_bridge, PCI_IO_BASE,
                          (uart->io_base & 0xF000) |
                          ((uart->io_base & 0xF000) >> 8));
 
-    pci_conf_write32(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
-                              uart->ps_bdf[2]),
-                     PCI_BASE_ADDRESS_0,
+    pci_conf_write32(uart->pci_device, PCI_BASE_ADDRESS_0,
                      uart->io_base | PCI_BASE_ADDRESS_SPACE_IO);
-    pci_conf_write16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
-                              uart->ps_bdf[2]),
-                     PCI_COMMAND, cmd | PCI_COMMAND_IO);
+    pci_conf_write16(uart->pci_device, PCI_COMMAND, cmd | PCI_COMMAND_IO);
 #endif
 }
 
@@ -453,17 +444,16 @@ static void __init cf_check ns16550_init_postirq(struct serial_port *port)
                                 PFN_UP(uart->io_base + uart->io_size) - 1) )
             printk(XENLOG_INFO "Error while adding MMIO range of device to mmio_ro_ranges\n");
 
-        if ( pci_ro_device(0, uart->ps_bdf[0],
-                           PCI_DEVFN(uart->ps_bdf[1], uart->ps_bdf[2])) )
-            printk(XENLOG_INFO "Could not mark config space of %02x:%02x.%u read-only.\n",
-                   uart->ps_bdf[0], uart->ps_bdf[1],
-                   uart->ps_bdf[2]);
+        if ( pci_ro_device(uart->pci_device.seg, uart->pci_device.bus,
+                           uart->pci_device.devfn) )
+            printk(XENLOG_INFO
+                   "Could not mark config space of %pp read-only.\n",
+                   &uart->pci_device);
 
         if ( uart->msi )
         {
             struct msi_info msi = {
-                .sbdf = PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
-                                 uart->ps_bdf[2]),
+                .sbdf = uart->pci_device,
                 .irq = uart->irq,
                 .entry_nr = 1
             };
@@ -505,9 +495,8 @@ static void __init cf_check ns16550_init_postirq(struct serial_port *port)
             }
 
             if ( rc )
-                printk(XENLOG_WARNING
-                       "MSI setup failed (%d) for %02x:%02x.%o\n",
-                       rc, uart->ps_bdf[0], uart->ps_bdf[1], uart->ps_bdf[2]);
+                printk(XENLOG_WARNING "MSI setup failed (%d) for %pp\n",
+                       rc, &uart->pci_device);
         }
     }
 #endif
@@ -534,8 +523,7 @@ static void cf_check ns16550_suspend(struct serial_port *port)
 
 #ifdef NS16550_PCI
     if ( uart->bar )
-       uart->cr = pci_conf_read16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
-                                  uart->ps_bdf[2]), PCI_COMMAND);
+       uart->cr = pci_conf_read16(uart->pci_device, PCI_COMMAND);
 #endif
 }
 
@@ -546,19 +534,15 @@ static void _ns16550_resume(struct serial_port *port)
 
     if ( uart->bar )
     {
-       pci_conf_write32(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
-                                 uart->ps_bdf[2]),
+       pci_conf_write32(uart->pci_device,
                         PCI_BASE_ADDRESS_0 + uart->bar_idx*4, uart->bar);
 
         /* If 64 bit BAR, write higher 32 bits to BAR+4 */
         if ( uart->bar & PCI_BASE_ADDRESS_MEM_TYPE_64 )
-            pci_conf_write32(PCI_SBDF(0, uart->ps_bdf[0],  uart->ps_bdf[1],
-                                      uart->ps_bdf[2]),
+            pci_conf_write32(uart->pci_device,
                         PCI_BASE_ADDRESS_0 + (uart->bar_idx+1)*4, uart->bar64);
 
-       pci_conf_write16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
-                                 uart->ps_bdf[2]),
-                        PCI_COMMAND, uart->cr);
+       pci_conf_write16(uart->pci_device, PCI_COMMAND, uart->cr);
     }
 #endif
 
@@ -1218,13 +1202,12 @@ pci_uart_config(struct ns16550 *uart, bool skip_amt, unsigned int idx)
                 uint32_t bar, bar_64 = 0, len, len_64;
                 u64 size = 0;
                 const struct ns16550_config_param *param = uart_param;
+                pci_sbdf_t sbdf = PCI_SBDF(0, b, d, f);
 
-                nextf = (f || (pci_conf_read16(PCI_SBDF(0, b, d, f),
-                                               PCI_HEADER_TYPE) &
+                nextf = (f || (pci_conf_read16(sbdf, PCI_HEADER_TYPE) &
                                0x80)) ? f + 1 : 8;
 
-                switch ( pci_conf_read16(PCI_SBDF(0, b, d, f),
-                                         PCI_CLASS_DEVICE) )
+                switch ( pci_conf_read16(sbdf, PCI_CLASS_DEVICE) )
                 {
                 case 0x0700: /* single port serial */
                 case 0x0702: /* multi port serial */
@@ -1241,10 +1224,8 @@ pci_uart_config(struct ns16550 *uart, bool skip_amt, unsigned int idx)
                 /* Check for params in uart_config lookup table */
                 for ( i = 0; i < ARRAY_SIZE(uart_config); i++ )
                 {
-                    u16 vendor = pci_conf_read16(PCI_SBDF(0, b, d, f),
-                                                 PCI_VENDOR_ID);
-                    u16 device = pci_conf_read16(PCI_SBDF(0, b, d, f),
-                                                 PCI_DEVICE_ID);
+                    u16 vendor = pci_conf_read16(sbdf, PCI_VENDOR_ID);
+                    u16 device = pci_conf_read16(sbdf, PCI_DEVICE_ID);
 
                     if ( uart_config[i].vendor_id == vendor &&
                          uart_config[i].dev_id == device )
@@ -1267,29 +1248,26 @@ pci_uart_config(struct ns16550 *uart, bool skip_amt, unsigned int idx)
                 }
 
                 uart->io_base = 0;
-                bar = pci_conf_read32(PCI_SBDF(0, b, d, f),
-                                      PCI_BASE_ADDRESS_0 + bar_idx * 4);
+                bar = pci_conf_read32(sbdf, PCI_BASE_ADDRESS_0 + bar_idx * 4);
 
                 /* MMIO based */
                 if ( param->mmio && !(bar & PCI_BASE_ADDRESS_SPACE_IO) )
                 {
-                    pci_conf_write32(PCI_SBDF(0, b, d, f),
-                                     PCI_BASE_ADDRESS_0 + bar_idx*4, ~0u);
-                    len = pci_conf_read32(PCI_SBDF(0, b, d, f),
+                    pci_conf_write32(sbdf, PCI_BASE_ADDRESS_0 + bar_idx*4, ~0u);
+                    len = pci_conf_read32(sbdf,
                                           PCI_BASE_ADDRESS_0 + bar_idx * 4);
-                    pci_conf_write32(PCI_SBDF(0, b, d, f),
-                                     PCI_BASE_ADDRESS_0 + bar_idx*4, bar);
+                    pci_conf_write32(sbdf, PCI_BASE_ADDRESS_0 + bar_idx*4, bar);
 
                     /* Handle 64 bit BAR if found */
                     if ( bar & PCI_BASE_ADDRESS_MEM_TYPE_64 )
                     {
-                        bar_64 = pci_conf_read32(PCI_SBDF(0, b, d, f),
+                        bar_64 = pci_conf_read32(sbdf,
                                       PCI_BASE_ADDRESS_0 + (bar_idx + 1) * 4);
-                        pci_conf_write32(PCI_SBDF(0, b, d, f),
+                        pci_conf_write32(sbdf,
                                     PCI_BASE_ADDRESS_0 + (bar_idx+1)*4, ~0u);
-                        len_64 = pci_conf_read32(PCI_SBDF(0, b, d, f),
+                        len_64 = pci_conf_read32(sbdf,
                                     PCI_BASE_ADDRESS_0 + (bar_idx + 1) * 4);
-                        pci_conf_write32(PCI_SBDF(0, b, d, f),
+                        pci_conf_write32(sbdf,
                                     PCI_BASE_ADDRESS_0 + (bar_idx+1)*4, bar_64);
                         size  = ((u64)~0 << 32) | PCI_BASE_ADDRESS_MEM_MASK;
                         size &= ((u64)len_64 << 32) | len;
@@ -1303,12 +1281,9 @@ pci_uart_config(struct ns16550 *uart, bool skip_amt, unsigned int idx)
                 /* IO based */
                 else if ( !param->mmio && (bar & PCI_BASE_ADDRESS_SPACE_IO) )
                 {
-                    pci_conf_write32(PCI_SBDF(0, b, d, f),
-                                     PCI_BASE_ADDRESS_0 + bar_idx*4, ~0u);
-                    len = pci_conf_read32(PCI_SBDF(0, b, d, f),
-                                          PCI_BASE_ADDRESS_0);
-                    pci_conf_write32(PCI_SBDF(0, b, d, f),
-                                     PCI_BASE_ADDRESS_0 + bar_idx*4, bar);
+                    pci_conf_write32(sbdf, PCI_BASE_ADDRESS_0 + bar_idx*4, ~0u);
+                    len = pci_conf_read32(sbdf, PCI_BASE_ADDRESS_0);
+                    pci_conf_write32(sbdf, PCI_BASE_ADDRESS_0 + bar_idx*4, bar);
                     size = len & PCI_BASE_ADDRESS_IO_MASK;
 
                     uart->io_base = bar & ~PCI_BASE_ADDRESS_SPACE_IO;
@@ -1341,18 +1316,14 @@ pci_uart_config(struct ns16550 *uart, bool skip_amt, unsigned int idx)
                 if ( param->fifo_size )
                     uart->fifo_size = param->fifo_size;
 
-                uart->ps_bdf[0] = b;
-                uart->ps_bdf[1] = d;
-                uart->ps_bdf[2] = f;
+                uart->pci_device = sbdf;
                 uart->bar_idx = bar_idx;
                 uart->bar = bar;
                 uart->bar64 = bar_64;
                 uart->io_size = max(8U << param->reg_shift,
                                     param->uart_offset);
-                uart->irq = pci_conf_read8(PCI_SBDF(0, b, d, f),
-                                           PCI_INTERRUPT_PIN) ?
-                            pci_conf_read8(PCI_SBDF(0, b, d, f),
-                                           PCI_INTERRUPT_LINE) : 0;
+                uart->irq = pci_conf_read8(sbdf, PCI_INTERRUPT_PIN) ?
+                            pci_conf_read8(sbdf, PCI_INTERRUPT_LINE) : 0;
 
 #ifdef CONFIG_X86
                 /*
@@ -1591,18 +1562,22 @@ static bool __init parse_positional(struct ns16550 *uart, char **str)
 #ifdef CONFIG_HAS_PCI
     if ( *conf == ',' && *++conf != ',' )
     {
-        conf = parse_pci(conf, NULL, &uart->ps_bdf[0],
-                         &uart->ps_bdf[1], &uart->ps_bdf[2]);
+        unsigned int b, d, f;
+
+        conf = parse_pci(conf, NULL, &b, &d, &f);
         if ( !conf )
             PARSE_ERR_RET("Bad port PCI coordinates");
+        uart->pci_device = PCI_SBDF(0, b, d, f);
         uart->ps_bdf_enable = true;
     }
 
     if ( *conf == ',' && *++conf != ',' )
     {
-        if ( !parse_pci(conf, NULL, &uart->pb_bdf[0],
-                        &uart->pb_bdf[1], &uart->pb_bdf[2]) )
+        unsigned int b, d, f;
+
+        if ( !parse_pci(conf, NULL, &b, &d, &f) )
             PARSE_ERR_RET("Bad bridge PCI coordinates");
+        uart->pci_bridge = PCI_SBDF(0, b, d, f);
         uart->pb_bdf_enable = true;
     }
 #endif
@@ -1683,18 +1658,26 @@ static bool __init parse_namevalue_pairs(char *str, struct ns16550 *uart)
             break;
 
         case port_bdf:
-            if ( !parse_pci(param_value, NULL, &uart->ps_bdf[0],
-                            &uart->ps_bdf[1], &uart->ps_bdf[2]) )
+        {
+            unsigned int b, d, f;
+
+            if ( !parse_pci(param_value, NULL, &b, &d, &f) )
                 PARSE_ERR_RET("Bad port PCI coordinates\n");
+            uart->pci_device = PCI_SBDF(0, b, d, f);
             uart->ps_bdf_enable = true;
             break;
+        }
 
         case bridge_bdf:
-            if ( !parse_pci(param_value, NULL, &uart->pb_bdf[0],
-                            &uart->pb_bdf[1], &uart->pb_bdf[2]) )
+        {
+            unsigned int b, d, f;
+
+            if ( !parse_pci(param_value, NULL, &b, &d, &f) )
                 PARSE_ERR_RET("Bad bridge PCI coordinates\n");
+            uart->pci_bridge = PCI_SBDF(0, b, d, f);
             uart->pb_bdf_enable = true;
             break;
+        }
 #endif
 
         default:
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 14:58:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 14:58:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262509.1554979 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Pgy-00034w-6a; Wed, 25 Mar 2026 14:58:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262509.1554979; Wed, 25 Mar 2026 14:58:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Pgy-00034p-2z; Wed, 25 Mar 2026 14:58:44 +0000
Received: by outflank-mailman (input) for mailman id 1262509;
 Wed, 25 Mar 2026 14:58:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w5Pgv-00034j-Px
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 14:58:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Pgv-00DBmH-5E
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 15:58:41 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c3f806-e002-0a2a0a5209dd-0a2a4504d036-46
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 15:58:41 +0100
Received: from [52.101.62.41]
 (helo=DM5PR21CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c3f81f-c823-0a2a45040019-34653e29455b-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 15:58:40 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA1PR03MB8032.namprd03.prod.outlook.com (2603:10b6:806:45a::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Wed, 25 Mar
 2026 14:58:11 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026
 14:58:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gWQ/XXY+vFl6ksggvzys+RvATkXFredh8b8uiq7gXZ6r7bDCbYwKlRhcgYimZeCsZQqZGmSmxlFsM06XDXCOQ2igis/Sh4LkUbLMaWsXCnvs2FvPE9pv802vlDuzCCd31oB7qkAo7A/Dy4K6t6CcOWus36gYpfz8nE6eMI+8IfUORDN4KbaBzxXbbz4JrPG756WoN932L4JgDnM2SVnLjRrSRQCnNFScWEauZihIea1Z576ZizPWpF6eSZOkqx+8jG0gH7+MbiyuQsXDO+Lr8nIfb/Nkz7vgynTd9epPnXXfP+oiMRPwdduQrTrfBnxPQkarOzTygjEN3lG4nKJvlA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8Bw+fm6hju0Q38OCLE/W6SziFn74bzUBojgYD8xApJk=;
 b=gCvAtMtqvFTTsMjB1+qXu4jUsIHvJV6ZK7085WjDEtwHgyxzSKrBTIL60n/EZiPrYiLXww83VnUatzufXn3V6Fkc3IwfRECglnAggnqI1mYbInklzTIHX++mOfFeMi+kF53M7Vo1pI7cuo1x64AQq2sn1TiO3AZQpo5/JLGjRMyuzdhCBGmL7VL+8bpOw/Oo4E2nZcpwiKjf+XgZyypULGMI80+mkRrpftegKwu4AdMRyPffTAquHTvo9Qbj2uW/7d0KtoJjlKCtNU+faAaTPVe6Xkwf2DKgCg76TUjtqCIvdmLYmWjFaylq5n+boHDCjVM44E5qVP9EMi5QA0ab9w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8Bw+fm6hju0Q38OCLE/W6SziFn74bzUBojgYD8xApJk=;
 b=BlnRc3xOzXTwyTvm3E/zXeB9xGjx319ygwoM4JdhW8c4JiZZD2JsPLnk6j0LV0coJKY9IISczdTjv54fAveOwDPIlxNOWggx6IV4hQFRIk+U48cr8OkiQRMqKGvQeRd8RS8ngzSUE4YDeQeiDepsRHN+AouhIniObUgvff3ApPU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 0/4] xen/uart: some fixes and improvements
Date: Wed, 25 Mar 2026 15:58:20 +0100
Message-ID: <20260325145824.31601-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: MA3P292CA0068.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:49::6) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA1PR03MB8032:EE_
X-MS-Office365-Filtering-Correlation-Id: 6ce32d55-1b4e-49c5-ceac-08de8a7efd94
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	Bt7GT0GBxu2EowDKxmS41qBhkRPi/y+KUvxVkdEPrxpExA9JLPMuWXPrLmotRrDz1aNFhXGCxV9ECRjwzfoVxJFT0oXwkox12pky3lXPD/KGkSXEnUZQlnLFhQYVNqBNlMSY1/wmYzdBdFSb2hfnDnOrZecH+V5oxnRCoou+xSNvvdqFVKQwK5JUj8xWEy7/wx9BjYC/rbxHcFhZiPyZY0ZT8wppYqiiLhJmLSm7Ys3NFVpexO2GLRVFvu8S5NCduf+d/giPs4cO0rRoTZLtX8Ntg+PUvmqeFGdJ5M583sBxC7MD6EHepOW06v0LQEoqQ/bsXI0omnvf3VQNxOdgndSxiwrx4yu538vMShQKZ0nRYNwvkFCWGWSfjh6G4oIG1QRZgjOVjGWIQ2B6BWU1hCH5k5V772e4LoSsFZdW9PL2Jp0K0B8Wd21b+XNuiIdImZxaSCX9sBZ3vo+2PvonxsAM2vI+tDX5xo1f5pzOzrAqjheGuWs4LULJbiod+UUxhgimu8jU1X2/ey0BVuE4pKkAAlC8DnW4WxOtXIfOhRsym5FuvvAjfwSr+KyJg1nHYMUXk1jJioYYK8qyJwk2rJPaSTCjDt2miAGf90RydNZ3mlUYwIooBllTz+e9e34bTwRY62tEIQmldXimQyEFMpalq449lWMsy2gwzAu4ochKz2KGrL/Xrxooz0CNcG/VtYtj7voC53oVKLYp6kxnLvONkBaS4QjEN1Z7xuKsePw=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?andpcktYQ05XTEJzU0trRjlzcmR1VVF5c1hXc3kwOTFFaStPdGVJWTR4ajJk?=
 =?utf-8?B?OTdWYjBvWk9ZNnBneERXUEE3S2VVdi9Ec3o4VlhocGRCcWVSd2JrMVEvaCtt?=
 =?utf-8?B?S1hneHc2RXI0K3JSSjNjUk1GaEJSeGRiK05CNk5hOEl5cUZMaWx1emRDNGg2?=
 =?utf-8?B?d0JUWHROYzhnMWY1bHlzb096alp3dVFaY3FXdCtXUUwwdm9xbWpidnYyL3Q4?=
 =?utf-8?B?S2NMTmxmeXdvSDVZT1NGU1BBS3RzME5kV0pVV0NWbjh4ajh2VGVBRnBJT1Q4?=
 =?utf-8?B?VGg4Z01DVXFQcGhkeFBsUGZaZG44TVpEU1IzUVFGR1QzYVhCWXh4TVpEQ1hV?=
 =?utf-8?B?MlF3MSt6a2JTeXpqWEs1QzdGRStKS2Y1VmFzdWxhcUc3dnpTWWV4NEtwcWk5?=
 =?utf-8?B?RFBpWDVxME5nQWRBL3NMU1c1TXU1bDNoRjVaeGorWmZHLzJGTWFoemdidjky?=
 =?utf-8?B?NS9tSS84SmpGWjJ2MHp4amVpdUp0VmZoWnVVcFNDblFEUWlDSFF4NjNLdXV1?=
 =?utf-8?B?Wk5PSXAzbW5qZU96amdwQis3amh6Ymd0RnBzQVdoUVlZaE53QlRKWHIxeVJM?=
 =?utf-8?B?ZVQ4bVYreU8wRklaNkEzWlFleG5wUklidW5UbkY0OUw4OXpZaTFsOXlkVVgy?=
 =?utf-8?B?bVJUV3IwOWh5MFdQME5MdTBzU080SVp4Z2JhRzZEeUZtMGZ6bzhrRG5sblhM?=
 =?utf-8?B?cmt3Q01yTTY1WkVrbDV0V3BPQk02MTFadk5UOVhHYWQ5MUhhaGtGanFhdWJp?=
 =?utf-8?B?MXhUdE44M1Byb3lGMmc4dDdCb0V3bWFXSmM0QjZDU0NRMHY4RElUc2Mwa2k3?=
 =?utf-8?B?eFlZdTBBZ0I4emtPS0J5Vk5QV0hxenRnNTVUVTEzdUxoalpMcjVEbTFlY3hJ?=
 =?utf-8?B?dzA3Q0lSSWVWL2hoOXdXdGo1MzZ5T1luYVJhbjNwbzRXQVJxN3dLb1FVc1Jh?=
 =?utf-8?B?YmFYZm53Y1o1azgrUCtRRWNiWkQ1UTA4aWx2T21MVE04dnd5SjkyM1JoVFlm?=
 =?utf-8?B?dTZvbThkY0NmY1E4VHRtOEZkMU9iaHBYUjNkajJTUXdJUXEzbVAyUEhhY0VD?=
 =?utf-8?B?RVBKT2RiVXl0TTk4ZFNHamRHa3F5WUdtNEt1NlMvYytxdkZEVkpiMkIwQ0Uy?=
 =?utf-8?B?Z2hmWVBsZGs4MmV4TTNDMDNMejBRdDQxVG80M2hRU0x5V0NTaXI1eUZlTzVV?=
 =?utf-8?B?WTRWanlYd1lkSkdlcVZ2aStpZ1dJRXhhTGxMdU5lY1AwKzFSZ3EwRmFJNW9X?=
 =?utf-8?B?OXlPUzhUMzhHdkU2c2FxVkRiekwwTE81b0x0SUtwcGwyZFRuUE9HQTdaaEtS?=
 =?utf-8?B?U0sxVWQzQnhNVFNxVERlRGRQWGhTQmhHcXNLNzdjMnZKdGpYNzBPMVlIM3Fs?=
 =?utf-8?B?MTU5NGNtUHNqK1JMb0tvdlgxZHUxYUhyT2ZCV0s3cGZXWnByQXJrTW41YTJz?=
 =?utf-8?B?TmpZNU9tdk9pelV2MS9QMXh4Z2h5ZU52WnR3MmRSdi96TDUzYVJMZXc3M3FJ?=
 =?utf-8?B?V3FKM3Vta0xXK1VEbVlLOVRMMnNWb2N6RzBiOFlzSzlMUHdURno0SXIxZHNi?=
 =?utf-8?B?Q1Z4c1RJUzF2NFRsVjQvcjdHZERzdFRWMmttdVZsWHZydXdzM3FVRnlhUUV4?=
 =?utf-8?B?T0RXbmdEMC8zT3dObjRQeHBtN0ZHYUNWYWtTbFUybk9WN0p0cW5qWDh1VFIw?=
 =?utf-8?B?NEVHM2M5RTVhSmVsWHhweFBKdFM5MWVNSzFMNVcrSUh0cmNFZjZFNm9UbHFV?=
 =?utf-8?B?VEtnbG43TU9RQnFnV0g1cFQvT0pwKzR5ZkxNVWFCd3hWTStvUTkrQ3J0ZnFV?=
 =?utf-8?B?aENDaFBRbHpNZytBMlNRajF6eWVjdFo5ZEw1eHo5anZhSDZndEtTbEVhSzRo?=
 =?utf-8?B?a3lXWDdaR3JUZ1hxUHd1cDdFcnVlWldVbjdJTWlzRUhtK1FqK01vRUJZQnZN?=
 =?utf-8?B?Ym1RaEI4RUVtMU8rc3d5eDZ6cVB0OEMzdlVUbW84T0Nub3BDNExPaHhSblBT?=
 =?utf-8?B?TVY1a2g5bnZnY0ZzSW5lbG1RenJ1NDV0RFBEUGVnb1huK1pMQlAxRUt6NGFB?=
 =?utf-8?B?NmhhSHRpZGtEeFBwSWlGSFFDTFMvVm5RRzBLWm9TSG02N1hocmFIQWpTWnh0?=
 =?utf-8?B?WWNsRCsvTlpiYVlSU00rUXBFK2ZJdUNJSldzWlZBQm5uaWwxellCUEd0Sm8z?=
 =?utf-8?B?UXdZNjdtY0NSd0N5eGhMR2cyWVB1WHl3SG1jdjd5M1crZHlpY1RQVlZDWEdK?=
 =?utf-8?B?UVhyeUoweGQ3OVJYbUVtQjgyVS85WUVPSjVJcVpkckMyTmQxOUNzR1p5M1lo?=
 =?utf-8?B?OW5xOFFRZGMyOUpKZU5ranlYNmFZdE53OUxDTThxVUx3dzBzSHZQUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6ce32d55-1b4e-49c5-ceac-08de8a7efd94
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 14:58:36.0636
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: /4gauN+Iot59s8v2cNtVqiPnK/RXYhrycyAr4jTgQyrxm0851LRYXY2Ocr2FkXXLuKLj7caDKX/GcJmUBU+7dw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB8032
X-purgate-ID: tlsNG-ebf023/1774450721-BBC919D1-16558651/0/0
X-purgate-type: clean
X-purgate-size: 887

Hello,

First patch is a fix that otherwise prevents using the serial on some
(newish?) Intel AMT devices (at least the one I have).  Patches 2 and 3
are general improvements and cleanups.  Finally patch 4 adds support for
getting the serial configuration from ACPI SPCR table.

Thanks, Roger.

Roger Pau Monne (4):
  xen/uart: be more careful with changes to the PCI command register
  xen/uart: switch ns16550 to use pci_sbdf_t
  xen/uart: report an error if the device type is not supported
  xen/uart: enable parsing ACPI SPCR on x86

 docs/misc/xen-command-line.pandoc |   8 +-
 xen/drivers/acpi/tables/tbutils.c | 131 +++++++++---
 xen/drivers/char/ns16550.c        | 339 +++++++++++++++++++-----------
 xen/include/acpi/actables.h       |   5 +
 xen/include/acpi/actbl2.h         |  10 +
 5 files changed, 346 insertions(+), 147 deletions(-)

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 14:58:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 14:58:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262512.1555006 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Ph7-0003pU-12; Wed, 25 Mar 2026 14:58:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262512.1555006; Wed, 25 Mar 2026 14: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 1w5Ph6-0003pF-T7; Wed, 25 Mar 2026 14:58:52 +0000
Received: by outflank-mailman (input) for mailman id 1262512;
 Wed, 25 Mar 2026 14:58:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w5Ph4-0003mm-UI
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 14:58:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Ph4-00GX2B-A4
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 15:58:50 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c3f811-bab6-0a2a0a5309dd-0a2a4507d41a-46
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 15:58:50 +0100
Received: from [40.93.194.40]
 (helo=SN4PR0501CU005.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c3f828-fd74-0a2a45070019-285dc228b9de-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 15:58:50 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA1PR03MB8032.namprd03.prod.outlook.com (2603:10b6:806:45a::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Wed, 25 Mar
 2026 14:58:21 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026
 14:58:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ieuV3YtokPS0ABuZKF/6NiNMC60w3jO6TVXXDyJ7yOcYFOKzMeF7bkzE3p1A0C75Jjd5lQLzvtjYwwTV4amSxBosBnAhTfmf0oWhQAPYTtzKqeg5obsdwgF9LHWGK+7qxhTT3XwkSnRvrSqM2aQqJUxpZRn2feQ6NitgXTt315tEUn9g+omAaZCDe5b2RslgcCLf9GhkL2GxTai5SBlaIwLI07fYVjP58rS8bEXXXIJMGMus/4AoLfnAv6hzJk/zuaDC4qCoQtMy4rS9ikDBia3EoTriaFXkfVYz3JfZO9B0NE2yafFcdredkqWWneiJMGMhAjS6xmNk71THFoWNTA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0HJQmWV5LXBRJiOFnmS7ItBccNC3tJXifThqLT1z2f4=;
 b=Z/SQHsk2JRf1VMo2/GFthJBiuHybXPX8FY1lW9AyfTZ5NuJ1t2JYPAPKDaqfJLxfaaa3owYieABzbZ8gALnL4X6+IXStifKUhXNpG3eyOipCeE9OdRZ9BIRo4w6/ELjYomY11mRKR1aG7fSzVVLfAGtnIs7OGEYaIKbMs+d396P9ThsGSm7higNnmIgtOFReK0zuGvtst4Rrp13yyV8lLlAjj7clPm5gearfYfjvnlw0c6uBoHi6rmf8BvflADuHjOkQ+hsLGECqwuV6tcZj0zUpWOKqZB9UtvoTXNRtAaXhs48mNwgA44itM/jLkTZW8kd+y6/x5dbM+cPt0Kz46g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0HJQmWV5LXBRJiOFnmS7ItBccNC3tJXifThqLT1z2f4=;
 b=S/IBT+kADLsTiVLCvN2ri338FFRaVXWQHu8eyTala17a8MQ1r+TQ3OmMUj5fb9CEIsz4pF2yJTjk2nXU8Hsu7q+wYDfCi416c/I/ZVCpagiiq5EAOyBEmEY+tMnuZBjCgb0HU8Os3lT0gt4dQA3d7oGNH4B3lEJlBaq6ZVao/6M=
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 3/4] xen/uart: report an error if the device type is not supported
Date: Wed, 25 Mar 2026 15:58:23 +0100
Message-ID: <20260325145824.31601-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260325145824.31601-1-roger.pau@citrix.com>
References: <20260325145824.31601-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA2P292CA0022.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::11)
 To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA1PR03MB8032:EE_
X-MS-Office365-Filtering-Correlation-Id: e827eb6a-1d12-41a7-d930-08de8a7f03dc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	jgMgvq5l2jx1XL5JtOr3YkaG8hN4J0SyAItSaVOmSVwC+MTST00q01Y0y8VHiHWJmtk1AGgm01V8fYrYPetv9j30MtXfeKqWamMJ2pGcOjLlR7DyJKnYSsZyvU38pdj2ZEyfT91Kv9UQAWBUYQk/FEXNmULyNcPdY5pNhdzo8JrhYq7bWninjeNDOZqXvroxaky8we+ppTmk8Gh6zZVtjrziFOacOpMnuozV8Ey7nyJm5lk0vmWq3LPgCr/1wdw2MjQpHzsTsbDeF5jOJV3szfaYrSI+E8Flfccmo7G3p0gyg3m6oo12XwSFyn9wzXq4KzmXb/YWUvS9uIwXb749pyP6dr1IjTlqRqzAdT/SiUd0m0BvqRQy6QLFURQXOVGYyJeRScSclRney/3SArmoWdr94oieXFLpeiK0FlFsYHcDrphN4v5dj+10GBtdWhR9cgHn94jYcgz9Q4VDy9cIYVFVURWPO8WJ27d5Eg3VH4g5YOh1RWyPUFnUgO5Jaa5Dz08jv7f2dgJywhTRixqrIgDZ5zgTlTbGqNtnW/oWhO+05VwVfJ1Bk7I7sNjR0CiOaojGIJcD1SckaFCVv6O1deSpIy8x9WRlFKR4KLQQMbSHgo68jrnJrcnMGHa8htoVG0YFFILKdQ048XvGviHwkIRw7Xsqbu2jHNNl1v2x1uyegmvg1Ix9G64MeBb0+x6opWXV35K2zVBpBNb4lGdwc+4XZIDaA+BlsiTUgvIAOwo=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?a3VrZHNrSjcreUNCUExBYnQrV3E0SS9MZzA2QlgvcXIvVGNhYU5wd3FwNTRX?=
 =?utf-8?B?SjZBNHJ3Z1FKd1Qya3cvOFFtTHFNNC9qYkMzQmRYbEJ4SDVWRVBIcEhSNnpp?=
 =?utf-8?B?QmdhK2NETXpDa01xL0NycytGSWZXVkd2eURkcFRTcTJTbzd5NHh2bG4vUkM2?=
 =?utf-8?B?cEdUM3ZJSmJHT3pkVDJ0TEFkR0kzRXJMWlJzTUhkRkRWOUFobDByaWVIT0hV?=
 =?utf-8?B?dGw1TmpmbThFWHpuMjhxdk1FZGo3RFJJQ1NBaU1nRFRRV2t3bHNjSjNGc0RK?=
 =?utf-8?B?Vno4MkI4cUdTNEZHYXVPM0tza1VJRzU0N3RpQkxxc01aUUV6QWxleGhFWUhy?=
 =?utf-8?B?K0pHdFA5ZmxkSHI0WERlR1puM0w0cC91TFZxYnEzUHRIMmJKRXV1aGJ5Nmw4?=
 =?utf-8?B?MjFaZUFrN3pWSFlwN2RVejdJRFBUdW1wUDk1cDduelNua1lXM1RLZkU1Vm9r?=
 =?utf-8?B?UjVaeEJrdlJiNnhkSVQxamI3RER0M3JGNzErUkwra1JVWjZGMnBpUzRxaEta?=
 =?utf-8?B?UjNXbTk2UmFvd09OSTJHQ25hZTVCL2dvQnZvS2c1SUpkWWxxdGM1ZHNlZVNP?=
 =?utf-8?B?WTY4aE40cG5mUTZDUWRqcTFKdTErazIyR1FUQVJsalhnb0I5ZklTN1QyOXJo?=
 =?utf-8?B?cDNhM09pcTR4ZWszckFaRU9PQUVMYVhJUDlqaDNtOS9QaDRRcVNnbS91TWRZ?=
 =?utf-8?B?d3JIdlMwMGRLN3dIaGRaVkExNHJBeHVIcW0vSW1TY2tBbzU0YVRyL3lVN01Y?=
 =?utf-8?B?bE4zVjJWUm9pY3VJZDB4TzhkNmhRd1NRM0FHQzYwclYvazR1dmcyVTlzR1NJ?=
 =?utf-8?B?VGltOGl0U1ZaR0FLUlpqaThlNWkwRTdoR1dsWGRHazVKeG5uQVpNd09ZdGox?=
 =?utf-8?B?QkZtOFhxdWhUclo2RkRwemFicGNJd2FLNEd4cE1iSmo1cFNPTGs4WmxWT0pB?=
 =?utf-8?B?Tjhjd0ZQQWttV00xRjVCSDJvU2JQYm4zZzhsQlA4a0cwYjlnTUJZQ3JYVkh1?=
 =?utf-8?B?L0VTcFZxRi83aTl3d2NNTGUwM29pWFJ0U093blVWVXFuQS9VYkJvK2ZMOUFo?=
 =?utf-8?B?aFFNSUxyTnBEMElIUXQ1a05CR3REVXpQQklLdDlmUWdCc2hmSElFMEJYdFps?=
 =?utf-8?B?dG90bDMzQ1VPU1h5R2NVOEgrL0pVMGZoazFnYU8vcUpiM0JnRGRRQUt3YUJN?=
 =?utf-8?B?dEdNd1NSLzhUOFBqMUZ3dXlEc3RPa3JtT1FSM0c1NGVwalN0M2N2VVhXYU5I?=
 =?utf-8?B?SHU4cUJnYktPRGlObHFhN0NWNDFLcEJzUmo5cDRVZUJSTG9LeHFiOXlERDRz?=
 =?utf-8?B?TUczZEhDN1c1SGszOUNXb1U3c0Jsc3VndzUzNVQxTzJHSnJMWGN5QldQcEQ4?=
 =?utf-8?B?Q0E1dExNN3N5clRleFhYc0FwaDBDRG00b0E2TkpuQnpIdmVYbUpaWGF2NDNC?=
 =?utf-8?B?eGVHQm9ZR214a3ZZVzd1WXNFR25zU0xKTnV6d2pPbzcrcjlIZGNhcTY3RC9H?=
 =?utf-8?B?SVNqWEd5VE1lRzhucXh4bFU1Z3ZWZ3ZGNnVBQlI4VVJLak9EdjlHVXFoTFYw?=
 =?utf-8?B?bUtJSlI4Q2lqT3JxY0ZtKzR1NDJQcll1bE1HajVRUlZ1QjIxUHAwWUowYXc1?=
 =?utf-8?B?N2RzV1VMbS80Z1Y1MXlCUUl0bllvcE5xbFV1ZVQ4cUVuSXRpQzg5bFI0bWhi?=
 =?utf-8?B?dmo3aGthZkprUkhZNkNhMDdaYk16TjNGVTJHQ1FuWEdSbEFVbTBkMTlCdEFs?=
 =?utf-8?B?M1gxRVZDelh2MDN1bE53azM0NFdwU21MOVhJZURvNWJVOW8yU0V1YmN0S2Zq?=
 =?utf-8?B?NGN4ejRURVRWOHhCNVdXaW1Ma2pCWkJaeXpoWkJKaW90OFhjZ3NrdkQzbXdX?=
 =?utf-8?B?RTNxdXlLU0FQVXo4MUhldkhKVDdDd3ZvOTFrb0ZvVGZ4ZXpHditUZkFrQ01X?=
 =?utf-8?B?cUNlWWFwOGx1RDZBMHdIUDZqQzV2SWs3aWZ3TnU5Tng4cElBejU5a2FQSVJ4?=
 =?utf-8?B?Z0RzbVpsSkZQTlFIdDNjeTdWS2orcW5CZFJRVFVDMGJ0dXRZMGJFL1Uvdjg5?=
 =?utf-8?B?MVBFZFBsem5YL0Y4Z1dpUFdLeVFKL3RHVE9GS2FTSG45Ykd3WHFEVEl4Y3pY?=
 =?utf-8?B?TTZyWWVFdWY3QlMvNlFLL2wyYTgrSEQyTlRYYkdiRTVkMXd4QnA0bEZvSVp0?=
 =?utf-8?B?TUJQUUhuY1ZxWmhnVWlTWkVwRE1SNk5mblhiTDF0UU03cmJRUlNCS2VwUXEr?=
 =?utf-8?B?Qmx1RlpUa1kvallLc0RjenN5T2E5WkhmT2c0a1RkTDhRS216L2JldzhDQkF2?=
 =?utf-8?B?eW1NMW4xblkvSHliRFg2M3RxeWt4NmxFbU8wdDlsVkRyY25GRnowdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e827eb6a-1d12-41a7-d930-08de8a7f03dc
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 14:58:46.5378
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: x1Pjeil8tVgIbzkgke61f+qGv1DHyRqM0T6HyDWTRAelUAgoN9J7lYUpJlVCwTXoOPpoGUKyRGy82z/laxJ/8Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB8032
X-purgate-ID: tlsNG-ef75cf/1774450730-566AF303-9F04E9DC/0/0
X-purgate-type: clean
X-purgate-size: 866

When using key pairs for the uart configuration (com1 and com2 command line
options), report an error if the passed device=<type> is not recognized
instead of silently ignoring it.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/drivers/char/ns16550.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index da3b6fdf99d9..9cd3e471bfa5 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -1655,6 +1655,8 @@ static bool __init parse_namevalue_pairs(char *str, struct ns16550 *uart)
                 pci_uart_config(uart, 0, uart - ns16550_com);
                 dev_set = true;
             }
+            else
+                PARSE_ERR_RET("Unknown device type %s\n", param_value);
             break;
 
         case port_bdf:
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 14:58:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 14:58:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262515.1555016 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5PhA-00047B-An; Wed, 25 Mar 2026 14:58:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262515.1555016; Wed, 25 Mar 2026 14:58:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5PhA-000471-4p; Wed, 25 Mar 2026 14:58:56 +0000
Received: by outflank-mailman (input) for mailman id 1262515;
 Wed, 25 Mar 2026 14:58:54 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w5Ph7-0003yr-Sl
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 14:58:54 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Ph7-00GX2B-8V
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 15:58:53 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c3f81e-bab6-0a2a0a5309dd-0a2a450ca2c4-36
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 15:58:53 +0100
Received: from [40.107.201.38]
 (helo=CH4PR04CU002.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c3f82b-f93d-0a2a450c0019-286bc9263638-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 15:58:52 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA1PR03MB8032.namprd03.prod.outlook.com (2603:10b6:806:45a::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Wed, 25 Mar
 2026 14:58:24 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026
 14: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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CxTpgdybzIUTejkbmW1/tQr7jiS8PiFL0U97Q4uYeWrJlhYZZGeBHfZalnOI5Y3HVAB0+zuLZs2f1vGhv3BLrnbzX4TyLw4+dQhdkCstESJ+fopwaL8KIuVOUDbXrFUvrY1LAj5Y+YXpTB7yBBcWKUaAOu83WCjv42GSFbZGJyvLKhUrq8ndL6aKbOGk45uIJxabWWCwFmp3XDZdi4KkozCuUqrEHP8VZOlN0C7o/Eg73FO3waFxEUhS71mQqMWbbR3irf0yM9cJW2uXAvWj7edk1jYKqBgKSDPNYzgm7M8t6D1dbGhe1iyBHX4gT2TWvk/5lKHcrIku5QqIC6srnQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=psSwTiMHxfUat3/JIkx9r7muILzs13+b/MhPgdlVn7k=;
 b=qpA1VTLSndzxbdwh5VlyKU6JkXJp1r/KdP8T/KtH7ltMFyRd76H0oR1+ivzhAh4yIkLRqkmJgcUE2Lv7axA2HSgvpbOekb064Pv+agOwq1timDBSPwlM+GJp9iFvH5W52ZgK3r9UVhE1K+Hsg+BAcEN4TkWpT8PiRTrU0uXcXF19Ppw6s/hzPWDit65zLhp7YNbN2e6P6jrhoQLBSuxGbqiVCiXxNkKO56g3+hqRQD4C4NSpLpp80ND1k8Dex6VJKX5YBkUMgOe+DsdyWGtZfKZY1llNcivV+Q64RRZ7tGuCbn+IJJiY4dhdrr5aRAwPxTZmNYdYcSxkFlt1Omd73Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=psSwTiMHxfUat3/JIkx9r7muILzs13+b/MhPgdlVn7k=;
 b=xM/S7Bc9h/QDsbJUbuKYOIpjL6rp9GHT54yZNLURHAXKd+KSOnhWoMSa8kqNGk18jynh5dFU1xs199vq2ulupttWmSEjuqEvZd0DPIdwKTfnbQ9DqwjgHoRW92yu8QSo4kBG1xNWaDMwPkj5auI9vU44gIcZc9+tOZFoDGnpjZQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 4/4] xen/uart: enable parsing ACPI SPCR on x86
Date: Wed, 25 Mar 2026 15:58:24 +0100
Message-ID: <20260325145824.31601-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260325145824.31601-1-roger.pau@citrix.com>
References: <20260325145824.31601-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0068.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:49::6) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA1PR03MB8032:EE_
X-MS-Office365-Filtering-Correlation-Id: 242e09b4-95b9-460a-d95b-08de8a7f058e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	pWECrpdXnbhs5XNshngbPzddDPy25r6EmyRmdUSo8OXlnCJlUfP3ax827uZnbkQspd+MgXiUSXF1rNN5zrbb4azPPDk1treww7sMrNFts6PcruQ+Nmbn7pc17DpYpT0MwbzTYD4iBx2Ozqyg0J2dRqqpfkZMaTBrmOZKKj0BIRG12U8NskYP713LNBZNlLnPgCe9nKK4bqqeFFWo+ylWcDljUsVeynkXM38NlbYYWX3IprDiZXW6ULj3RUnwux+Umfu20teCVrmLFw0Oip56LdyE5lITW41wC03F8T1cwPIe+YCuG5YFahA68QARxjayoxSBmuryysPsArY2ZWAhGA1PJptmPWGS9v3GupYS8LKn3BuTjpfE+CCd3Bt1bow/8ptvdegoUIDzwO53BFRhZKwVu7wK0E0Jbkp2Kw0skThlRniK7pgkbnYAyqzq4wy/PLJA7ZS/BCrsCLicM7Lp8ntr8y5ei+qHoz3kBU9PcftEUqCk59ayMXw48DxO1OWvd+eRFPgHtowXj+VD99VP0ObdGrich7INfQJXEc8BQDNPYNpLU/vwob/nz3WJ2miKjuKOvGzB3gNMYXaXvyE2JBF9b8KRG7j0xpp7r9StdriI08d2z/fUNPsi590UtJJcxURkeKWIjyx4uxu3Dlb1vOqjXq7yeUZNAdJsIxd9Nv2Sj/Umwo2O6TAm0a+o/UWRwf7K8G5siFPfullKuNDDTVp3g8onp6Hd+d6B1OAb44U=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZmRyaExsT3l3Q0ZtZzVsbnBUUTQ2S0FZU1ArS3VPQThMVDNtYklDVTV3ZU5n?=
 =?utf-8?B?YzcrRGhWOGNkeGdmbjV2c0IzTk5RYUZuWEVMVmhPZWZUZTBDZDN6eDhxNFpZ?=
 =?utf-8?B?Qk9jR1o0ZkhuVk4zNTFtbytvMUhmaE1xNmxJODFZTEMxRmxuQ2QyT08veVVp?=
 =?utf-8?B?ZFJKRzdyRXFZQlJ4bXlINlV3Qm5wbUFuR294cE9admdLNU02WXQ1YzA4eWVV?=
 =?utf-8?B?SmtGZXhLNnlBWm1DUlo5R1BZMFNYYSswU0tJUkYwdVYzMkE2V0dVaVQwNElN?=
 =?utf-8?B?RXViMFFYZ3RQRU5MYXVma1FKcmM5Q0hsNTQ3V1I2OUhPNmxTV2tKeVo1QUdi?=
 =?utf-8?B?YXo4QVh0cVVJaGgvUlZ6SjdJK2J1QndPSzBQT2l6YkRiQmF0SER2MDhlM282?=
 =?utf-8?B?MW4xZlRUTm5TRlpTR1pOc2k4VGZaeFRNYzh5c3c3aTRsb0FCcTVUQXVKNFBa?=
 =?utf-8?B?M3dWQjRLdnpCek9mamV0NGtuMWZ3MERFTzB2ZzNzUEdLbTl1Qmg5VVIzaDM2?=
 =?utf-8?B?S0VmeE1DSjkrSEJwdE1NcUpVb0g4SEF4TUdDRVNxa1VNRERNZWZBTVVqVFBh?=
 =?utf-8?B?NHRUUnFlSjdtOGFhdXBQZVh0T0RyNEVCMys5NGhpQldGM05YaFUyYStZMGVU?=
 =?utf-8?B?YStqOEQ4NEVpa1JuN2VxQ0dmazlaak1mSGVwWVpGOTUvd2xOWWJyRlpWc28z?=
 =?utf-8?B?UzNhdTV1aUJGU0JYWFhJajBuQmhRVXlEWDNCd1V4ZkQ0TFFUNFVIQ0UxS2E5?=
 =?utf-8?B?M0l0TWdMMndtY0syK0hUdlZza29DRnFCdmkxaG9yVzNqdi8wN2dtc1NwVm9y?=
 =?utf-8?B?cHJoQ3VRM3JpWUw2eXVQeUVEd0dXcGFvdXZVVWRRRzladDA1STJmbG9lazZG?=
 =?utf-8?B?dE16bHlWa0dSSTNlSlBQZ0d2NnpYNHZHeTlYOHdXOEg1LzhiY3UwRXhVeCtF?=
 =?utf-8?B?NlJ1WnBweFVZdkpFb0hvditTVWFUMEhGT1lWRC9RUTBXeTExakhSWHc0SXhs?=
 =?utf-8?B?VzAxMU1GYkEwWkdrWDZJOWpNSm5PcnlKVFFrd2VUUW9ibjdvK2trSjY5OFRs?=
 =?utf-8?B?c2pVTzBmVjJKRE9OSkwybzJvUXY5c2xSSkF1bS9vaWdYeFd1WFd0dTZheU5k?=
 =?utf-8?B?eTY0TUNCL2kwQS9xSVFKUkhjd0tsVzBqUVRMY3JCd1Y0am5kY0pOckV4VmxH?=
 =?utf-8?B?a3ZkeCtPQVZsdzJ1SGhrS0I2M1BDQzQ5MVJlYk1XblIyWWV5V2JDbFQxZHlS?=
 =?utf-8?B?eSthdko3UmJ3UEdnc0tLSllxVUc0UUJmaVRlenljK05xTHc0NjNYNkRjaDZk?=
 =?utf-8?B?NnVXK09oaXdtNWs2RmM5M1NKSkdpR0pxbitXcEVGNU5HWUpsUCtxMThZc2Fi?=
 =?utf-8?B?WEFmSVVvNWdadjBDNkYzaytuenNXSVc4UkpsYUpMd1Q5US94Szg2T29wbklS?=
 =?utf-8?B?M01SdFoxcXAwTW1kMUZTUmR4L3ptcCtpak5YYk8rREkvR2VlbENiMk9RREE1?=
 =?utf-8?B?bml1cXA0U1l4WEtLWGtqdDRwazltOFA0VkFZQmJybVpSc21ROFNtQnM5N1g0?=
 =?utf-8?B?TWR4a0Y5SEcxY3BZajE5K3dRNEJsWERjTnB4VHdqNVJmRWdYRmtKWHk1dVZK?=
 =?utf-8?B?YllpV1h5SW1OZm9TbzdkaVo2cFBPM1Q0MjduV3Rpd3kzUWVSUGNtbEExMUlo?=
 =?utf-8?B?SG85SFdaaW9qY3UyM2pDbWRIOWl4Vk1oVzJUTlhoL0laV1YvRmdCRE1MMWpW?=
 =?utf-8?B?OE1kaENrbmIwYnBScC80TEwwb1ZxdUdIMEw4SUN1dFhjdVZoam15K09rbU9K?=
 =?utf-8?B?MFgyZE9WTVJhZ3lqTkExYlJtc2NCRFJ2a2ZiYzNPRFdlZnVBQlkvdGhCODJH?=
 =?utf-8?B?SVRsS3BCcHM0OVpLSzAzcWJWWHduQklIOGR2RVphTjcxQkhxd1FudU81cUNF?=
 =?utf-8?B?WE5SRHZaVGlHQ3hDVWp3clYwb1BwTkJzVk4wSWYzYXNMOExUSXFnVHRDRnc3?=
 =?utf-8?B?T3dUU3Q3a0R4cWpDK25ZZk1NS3kycVRreXJtVm8vK0hoa2FYb00rWUhyc2RT?=
 =?utf-8?B?L2RGL1lIQW9JTEdOY3BtbTBwUjdBQ0xxazlQZ2d1aFlUSUJCREppMDY1Smcv?=
 =?utf-8?B?WkZkQW9KVFBvQ1Q3N1A4T2E3Tk56SlJETFBmbm1DbGRIRlNTTFZYRy94WVJR?=
 =?utf-8?B?Z3hDSnhUTTFZZmJkTG1uRm9oanE2b2grMmNXQ1NDL21VeGRvcldYOTdMejhS?=
 =?utf-8?B?TU1rcG5ZV0dvT1dKQWNYUWxscHN5Q2ZsNVJ2c2lSSm9IMVQ5UkN0VVdUVXlI?=
 =?utf-8?B?V3VaQThVdEd2OVhFeTFwTFRyU3Y1YWhHSFNjUnZpcllFcGt4TWpGQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 242e09b4-95b9-460a-d95b-08de8a7f058e
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 14:58:49.3472
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Nm+zvVcPwCbyw6kQBjFDrAp832L+UOkY2HzhOtIMem/u35kgrd/A/JPUNhJbxAHMaCkrtiHhIazPKl0wuetJeQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB8032
X-purgate-ID: tlsNG-d25034/1774450733-F6EAB734-CD2B7F58/0/0
X-purgate-type: clean
X-purgate-size: 18677

Introduce extra logic to allow parsing ACPI tables extra early, and use it
to parse the ACPI SPCR table and obtain the serial configuration.

This is gated to the "acpi" device type being set in "com1" on the Xen
command line.  Note that there can only be one serial device described in
the SPCR, so limit it's usage to com1 exclusively for the time being.

I can't test the interrupt information parsing on my system, as the
interrupt is set to GSI with a value of 0xff, which is outside of the range
of GSIs available on the system.  I've also assumed that the interrupt
being 0xff is used to signal not interrupt setup (just like the Interrupt
Pin register on PCI headers).

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
WIP/RFC, not sure whether there's interest in attempting to pursue this
further on x86.  So far the device I have is also exposed on the PCI bus
aside from SPCR, so using com1=device=amt also works to detect it.

Posting it kind of early to know whether I should try to polish it for
submission or we are happy with not having this on x86.
---
 docs/misc/xen-command-line.pandoc |   8 +-
 xen/drivers/acpi/tables/tbutils.c | 131 +++++++++++++++----
 xen/drivers/char/ns16550.c        | 202 +++++++++++++++++++++++-------
 xen/include/acpi/actables.h       |   5 +
 xen/include/acpi/actbl2.h         |  10 ++
 5 files changed, 282 insertions(+), 74 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index ebdca007d26b..12e1965cfb60 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -349,7 +349,7 @@ ACPI indicating none to be there.
 
 ### com1 (x86)
 ### com2 (x86)
-> `= <baud>[/<base-baud>][,[DPS][,[<io-base>|pci|amt][,[<irq>|msi][,[<port-bdf>][,[<bridge-bdf>]]]]]]`
+> `= <baud>[/<base-baud>][,[DPS][,[<io-base>|pci|amt|acpi][,[<irq>|msi][,[<port-bdf>][,[<bridge-bdf>]]]]]]`
 
 Both option `com1` and `com2` follow the same format.
 
@@ -379,6 +379,8 @@ Both option `com1` and `com2` follow the same format.
   avoiding Intel AMT devices.
 * `amt` indicated that Xen should scan the PCI bus for the UART,
   including Intel AMT devices if present.
+* `acpi` indicates Xen should use ACPI information (from SPCR table) if present
+  to configure the serial console.  This option is only supported for com1.
 
 A typical setup for most situations might be `com1=115200,8n1`
 
@@ -403,9 +405,9 @@ The accepted name keywords for name=value pairs are:
 * `clock-hz`- accepts large integers to setup UART clock frequencies.
               Do note - these values are multiplied by 16.
 * `data-bits` - integer between 5 and 8
-* `dev` - accepted values are `pci` OR `amt`. If this option
+* `dev` - accepted values are `pci`, `amt` or `acpi`. If this option
           is used to specify if the serial device is pci-based. The io_base
-          cannot be specified when `dev=pci` or `dev=amt` is used.
+          cannot be specified when `dev=pci|amt|acpi` is used.
 * `io-base` - accepts integer which specified IO base port for UART registers
 * `irq` - IRQ number to use
 * `parity` - accepted values are same as positional parameters
diff --git a/xen/drivers/acpi/tables/tbutils.c b/xen/drivers/acpi/tables/tbutils.c
index 458989abea99..c5eb6b1fc523 100644
--- a/xen/drivers/acpi/tables/tbutils.c
+++ b/xen/drivers/acpi/tables/tbutils.c
@@ -341,39 +341,20 @@ acpi_tb_get_root_table_entry(u8 * table_entry,
 	}
 }
 
-/*******************************************************************************
- *
- * FUNCTION:    acpi_tb_parse_root_table
- *
- * PARAMETERS:  Rsdp                    - Pointer to the RSDP
- *              Flags                   - Flags
- *
- * RETURN:      Status
- *
- * DESCRIPTION: This function is called to parse the Root System Description
- *              Table (RSDT or XSDT)
- *
- * NOTE:        Tables are mapped (not copied) for efficiency. The FACS must
- *              be mapped and cannot be copied because it contains the actual
- *              memory location of the ACPI Global Lock.
- *
- ******************************************************************************/
-
-acpi_status __init
-acpi_tb_parse_root_table(acpi_physical_address rsdp_address, u8 flags)
+static acpi_status __init
+acpi_tb_get_root_table(acpi_physical_address rsdp_address,
+	               struct acpi_table_header **out_table,
+		       unsigned int *entry_size)
 {
 	struct acpi_table_rsdp *rsdp;
 	acpi_native_uint table_entry_size;
-	acpi_native_uint i;
-	u32 table_count;
 	struct acpi_table_header *table;
 	acpi_physical_address address;
 	acpi_physical_address rsdt_address = 0;
 	u32 length;
-	u8 *table_entry;
 	acpi_status status;
 
-	ACPI_FUNCTION_TRACE(tb_parse_root_table);
+	ACPI_FUNCTION_TRACE(tb_get_root_table);
 
 	/*
 	 * Map the entire RSDP and extract the address of the RSDT or XSDT
@@ -454,6 +435,42 @@ acpi_tb_parse_root_table(acpi_physical_address rsdp_address, u8 flags)
 		return_ACPI_STATUS(status);
 	}
 
+	*out_table = table;
+	*entry_size = table_entry_size;
+	return_ACPI_STATUS(AE_OK);
+}
+
+/*******************************************************************************
+ *
+ * FUNCTION:    acpi_tb_parse_root_table
+ *
+ * PARAMETERS:  Rsdp                    - Pointer to the RSDP
+ *              Flags                   - Flags
+ *
+ * RETURN:      Status
+ *
+ * DESCRIPTION: This function is called to parse the Root System Description
+ *              Table (RSDT or XSDT)
+ *
+ * NOTE:        Tables are mapped (not copied) for efficiency. The FACS must
+ *              be mapped and cannot be copied because it contains the actual
+ *              memory location of the ACPI Global Lock.
+ *
+ ******************************************************************************/
+
+acpi_status __init
+acpi_tb_parse_root_table(acpi_physical_address rsdp_address, u8 flags)
+{
+	struct acpi_table_header *table;
+	unsigned int table_count, table_entry_size, i;
+	void *table_entry;
+	acpi_status status;
+
+	status = acpi_tb_get_root_table(rsdp_address, &table,
+	                                &table_entry_size);
+	if (!ACPI_SUCCESS(status))
+		  return_ACPI_STATUS(status);
+
 	/* Calculate the number of tables described in the root table */
 
 	table_count =
@@ -502,7 +519,7 @@ acpi_tb_parse_root_table(acpi_physical_address rsdp_address, u8 flags)
 	 * It is not possible to map more than one entry in some environments,
 	 * so unmap the root table here before mapping other tables
 	 */
-	acpi_os_unmap_memory(table, length);
+	acpi_os_unmap_memory(table, table->length);
 
 	/*
 	 * Complete the initialization of the root table array by examining
@@ -523,3 +540,67 @@ acpi_tb_parse_root_table(acpi_physical_address rsdp_address, u8 flags)
 
 	return_ACPI_STATUS(AE_OK);
 }
+
+acpi_status __init
+acpi_early_get_table(const char *signature, acpi_native_uint instance,
+                     struct acpi_table_header **out_table)
+{
+	static acpi_physical_address __initdata table_addr[128];
+	static unsigned int __initdata table_count;
+	static unsigned int __initdata table_entry_size;
+	unsigned int i;
+
+	ACPI_FUNCTION_TRACE(tb_early_get_table);
+
+	if (!table_count) {
+		struct acpi_table_header *table;
+		void *table_entry;
+		acpi_status status;
+		acpi_physical_address rsdp_address = acpi_os_get_root_pointer();
+
+		if (!rsdp_address)
+			return_ACPI_STATUS(AE_NOT_FOUND);
+
+		status = acpi_tb_get_root_table(rsdp_address, &table,
+			                        &table_entry_size);
+		if (!ACPI_SUCCESS(status))
+			return_ACPI_STATUS(status);
+
+		/* Calculate the number of tables described in the root table */
+		table_count = (table->length - sizeof(*table)) / table_entry_size;
+
+		if (table_count > ARRAY_SIZE(table_addr)) {
+			table_count = 0;
+			return_ACPI_STATUS(AE_NO_MEMORY);
+		}
+
+		table_entry = ACPI_CAST_PTR(uint8_t, table) + sizeof(*table);
+
+		for (i = 0; i < table_count; i++) {
+			table_addr[i] =
+			      acpi_tb_get_root_table_entry(table_entry,
+			                                   table_entry_size);
+			table_entry += table_entry_size;
+		}
+
+		acpi_os_unmap_memory(table, table->length);
+	}
+
+	for (i = 0; i < table_count; i++) {
+		struct acpi_table_header *header =
+		      acpi_os_map_memory(table_addr[i], sizeof(*header));
+
+		if (ACPI_COMPARE_NAME(header->signature, signature)) {
+			unsigned int len = header->length;
+
+			acpi_os_unmap_memory(header, sizeof(*header));
+			*out_table = acpi_os_map_memory(table_addr[i], len);
+
+			return_ACPI_STATUS(AE_OK);
+		}
+
+		acpi_os_unmap_memory(header, sizeof(*header));
+	}
+
+	return_ACPI_STATUS(AE_NOT_FOUND);
+}
diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index 9cd3e471bfa5..606dd404fd76 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -1375,6 +1375,136 @@ static void enable_exar_enhanced_bits(const struct ns16550 *uart)
 
 #endif /* CONFIG_HAS_PCI */
 
+#ifdef CONFIG_ACPI
+#include <acpi/acpi.h>
+#include <acpi/actables.h>
+
+#include <xen/acpi.h>
+
+static int __init acpi_uart_config(struct ns16550 *uart, unsigned int idx)
+{
+    struct acpi_table_header *table;
+    struct acpi_table_spcr *spcr;
+    acpi_status status;
+    int rc = 0;
+
+    /*
+     * SPCR specifies a single port, expect it to be configured at position 0
+     * in the uart array.
+     */
+    if ( idx )
+        return -EXDEV;
+
+    if ( system_state <= SYS_STATE_early_boot )
+        status = acpi_early_get_table(ACPI_SIG_SPCR, 0, &table);
+    else
+        status = acpi_get_table(ACPI_SIG_SPCR, 0, &table);
+
+    if ( ACPI_FAILURE(status) )
+    {
+        printk(XENLOG_ERR "Failed to find or parse ACPI SPCR table\n");
+        return -ENODEV;
+    }
+
+    spcr = container_of(table, struct acpi_table_spcr, header);
+
+    rc = -EDOM;
+    if ( spcr->interface_type != ACPI_DBG2_16550_COMPATIBLE )
+    {
+        printk(XENLOG_ERR "Incompatible ACPI SPCR UART interface %u\n",
+               spcr->interface_type);
+        goto out;
+    }
+
+    if ( spcr->serial_port.space_id != ACPI_ADR_SPACE_SYSTEM_MEMORY &&
+         (IS_ENABLED(CONFIG_ARM) ||
+          spcr->serial_port.space_id != ACPI_ADR_SPACE_SYSTEM_IO) )
+    {
+        printk(XENLOG_ERR "Incompatible ACPI SPCR UART address space %u\n",
+               spcr->serial_port.space_id);
+        goto out;
+    }
+
+    if ( !spcr->serial_port.address )
+    {
+        printk(XENLOG_ERR "ACPI SPCR console redirection disabled\n");
+        goto out;
+    }
+
+    uart->io_base = spcr->serial_port.address;
+    uart->io_size = DIV_ROUND_UP(spcr->serial_port.bit_width, BITS_PER_BYTE);
+    uart->reg_shift = spcr->serial_port.bit_offset;
+
+    uart->parity = spcr->parity;
+    uart->stop_bits = spcr->stop_bits;
+    uart->data_bits = 8;
+
+    if ( uart->baud == BAUD_AUTO && spcr->baud_rate )
+    {
+        switch ( spcr->baud_rate )
+        {
+        case ACPI_SPCR_BAUD_9600:
+            uart->baud = 9600;
+            break;
+
+        case ACPI_SPCR_BAUD_19200:
+            uart->baud = 19200;
+            break;
+
+        case ACPI_SPCR_BAUD_57600:
+            uart->baud = 57600;
+            break;
+
+        case ACPI_SPCR_BAUD_115200:
+            uart->baud = 115200;
+            break;
+
+        default:
+            printk(XENLOG_WARNING
+                   "Ignoring invalid baud rate %u in ACPI SPCR\n",
+                   spcr->baud_rate);
+        }
+    }
+
+    if ( IS_ENABLED(CONFIG_X86) )
+    {
+        /* Use polling mode by default. */
+        uart->irq = 0;
+
+        if ( (spcr->interrupt_type & ACPI_SPCR_INTR_TYPE_IO_APIC) &&
+             spcr->interrupt < 0xff )
+            uart->irq = spcr->interrupt;
+        else if ( (spcr->interrupt_type & ACPI_SPCR_INTR_TYPE_PC_AT) &&
+                  ((spcr->pc_interrupt >=  2 && spcr->pc_interrupt <=  7) ||
+                   (spcr->pc_interrupt >=  9 && spcr->pc_interrupt <= 12) ||
+                   (spcr->pc_interrupt >= 14 && spcr->pc_interrupt <= 15)) )
+            uart->irq = spcr->pc_interrupt;
+    }
+
+#ifdef CONFIG_ARM
+    /* The trigger/polarity information is not available in spcr. */
+    irq_set_type(spcr->interrupt, IRQ_TYPE_LEVEL_HIGH);
+    uart->irq = spcr->interrupt;
+#endif /* CONFIG_ARM */
+
+#ifdef CONFIG_HAS_PCI
+    if ( spcr->pci_device_id != 0xffff && spcr->pci_vendor_id != 0xffff )
+    {
+        uart->ps_bdf_enable = true;
+        uart->pci_device = PCI_SBDF(spcr->pci_segment, spcr->pci_bus,
+                                    spcr->pci_device, spcr->pci_function);
+    }
+#endif /* CONFIG_HAS_PCI */
+
+    rc = 0;
+
+ out:
+    if ( system_state <= SYS_STATE_early_boot )
+        acpi_os_unmap_memory(&spcr, spcr->header.length);
+    return rc;
+}
+#endif /* CONFIG_ACPI */
+
 /*
  * Configure serial port with a string:
  *   <baud>[/<base_baud>][,DPS[,<io-base>[,<irq>[,<port-bdf>[,<bridge-bdf>]]]]].
@@ -1539,6 +1669,15 @@ static bool __init parse_positional(struct ns16550 *uart, char **str)
             conf += 3;
         }
         else
+#endif
+#ifdef CONFIG_ACPI
+        if ( strncmp(conf, "acpi", 4) == 0 )
+        {
+            if ( acpi_uart_config(uart, uart - ns16550_com) )
+                return true;
+            conf += 4;
+        }
+        else
 #endif
         {
             uart->io_base = simple_strtoull(conf, &conf, 0);
@@ -1643,8 +1782,17 @@ static bool __init parse_namevalue_pairs(char *str, struct ns16550 *uart)
             uart->reg_width = simple_strtoul(param_value, NULL, 0);
             break;
 
-#ifdef CONFIG_HAS_PCI
         case device:
+#ifdef CONFIG_ACPI
+            if ( strncmp(param_value, "acpi", 3) == 0 )
+            {
+                acpi_uart_config(uart, uart - ns16550_com);
+                dev_set = true;
+                break;
+            }
+            else
+#endif /* CONFIG_ACPI */
+#ifdef CONFIG_HAS_PCI
             if ( strncmp(param_value, "pci", 3) == 0 )
             {
                 pci_uart_config(uart, 1/* skip AMT */, uart - ns16550_com);
@@ -1656,9 +1804,11 @@ static bool __init parse_namevalue_pairs(char *str, struct ns16550 *uart)
                 dev_set = true;
             }
             else
+#endif /* CONFIG_HAS_PCI */
                 PARSE_ERR_RET("Unknown device type %s\n", param_value);
             break;
 
+#if CONFIG_HAS_PCI
         case port_bdf:
         {
             unsigned int b, d, f;
@@ -1680,7 +1830,7 @@ static bool __init parse_namevalue_pairs(char *str, struct ns16550 *uart)
             uart->pb_bdf_enable = true;
             break;
         }
-#endif
+#endif /* CONFIG_HAS_PCI */
 
         default:
             PARSE_ERR_RET("Invalid parameter: %s\n", token);
@@ -1845,8 +1995,6 @@ DT_DEVICE_END
 #endif /* HAS_DEVICE_TREE_DISCOVERY */
 
 #if defined(CONFIG_ACPI) && defined(CONFIG_ARM)
-#include <xen/acpi.h>
-
 static int __init ns16550_acpi_uart_init(const void *data)
 {
     struct acpi_table_header *table;
@@ -1857,51 +2005,13 @@ static int __init ns16550_acpi_uart_init(const void *data)
      * Only support one UART on ARM which happen to be ns16550_com[0].
      */
     struct ns16550 *uart = &ns16550_com[0];
-
-    status = acpi_get_table(ACPI_SIG_SPCR, 0, &table);
-    if ( ACPI_FAILURE(status) )
-    {
-        printk("ns16550: Failed to get SPCR table\n");
-        return -EINVAL;
-    }
-
-    spcr = container_of(table, struct acpi_table_spcr, header);
-
-    if ( unlikely(spcr->serial_port.space_id != ACPI_ADR_SPACE_SYSTEM_MEMORY) )
-    {
-        printk("ns16550: Address space type is not mmio\n");
-        return -EINVAL;
-    }
-
-    /*
-     * The serial port address may be 0 for example
-     * if the console redirection is disabled.
-     */
-    if ( unlikely(!spcr->serial_port.address) )
-    {
-        printk("ns16550: Console redirection is disabled\n");
-        return -EINVAL;
-    }
+    int rc;
 
     ns16550_init_common(uart);
 
-    /*
-     * The baud rate is pre-configured by the firmware.
-     * And currently the ACPI part is only targeting ARM so the flow_control
-     * field and all PCI related ones which we do not care yet are ignored.
-     */
-    uart->baud = BAUD_AUTO;
-    uart->data_bits = 8;
-    uart->parity = spcr->parity;
-    uart->stop_bits = spcr->stop_bits;
-    uart->io_base = spcr->serial_port.address;
-    uart->io_size = DIV_ROUND_UP(spcr->serial_port.bit_width, BITS_PER_BYTE);
-    uart->reg_shift = spcr->serial_port.bit_offset;
-    uart->reg_width = spcr->serial_port.access_width;
-
-    /* The trigger/polarity information is not available in spcr. */
-    irq_set_type(spcr->interrupt, IRQ_TYPE_LEVEL_HIGH);
-    uart->irq = spcr->interrupt;
+    rc = acpi_uart_config(uart, 0);
+    if ( rc )
+        return rc;
 
     uart->vuart.base_addr = uart->io_base;
     uart->vuart.size = uart->io_size;
diff --git a/xen/include/acpi/actables.h b/xen/include/acpi/actables.h
index 527e1c9f9b9d..afb808998825 100644
--- a/xen/include/acpi/actables.h
+++ b/xen/include/acpi/actables.h
@@ -104,4 +104,9 @@ acpi_tb_install_table(acpi_physical_address address,
 acpi_status
 acpi_tb_parse_root_table(acpi_physical_address rsdp_address, u8 flags);
 
+/* Get a table early, before acpi_tb_parse_root_table() is called. */
+acpi_status
+acpi_early_get_table(const char *signature, acpi_native_uint instance,
+                     struct acpi_table_header **out_table);
+
 #endif				/* __ACTABLES_H__ */
diff --git a/xen/include/acpi/actbl2.h b/xen/include/acpi/actbl2.h
index ee96e990d636..923c784e8bd5 100644
--- a/xen/include/acpi/actbl2.h
+++ b/xen/include/acpi/actbl2.h
@@ -1037,6 +1037,16 @@ struct acpi_table_spcr {
 
 #define ACPI_SPCR_DO_NOT_DISABLE    (1)
 
+/* Masks for interrupt_type field above */
+#define ACPI_SPCR_INTR_TYPE_PC_AT   0x01
+#define ACPI_SPCR_INTR_TYPE_IO_APIC 0x02
+
+/* Values for the baud_rate field above */
+#define ACPI_SPCR_BAUD_9600         3
+#define ACPI_SPCR_BAUD_19200        4
+#define ACPI_SPCR_BAUD_57600        5
+#define ACPI_SPCR_BAUD_115200       7
+
 /*******************************************************************************
  *
  * SPMI - Server Platform Management Interface table
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 15:07:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 15:07:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262572.1555024 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5PpR-00070L-87; Wed, 25 Mar 2026 15:07:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262572.1555024; Wed, 25 Mar 2026 15:07:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5PpR-00070E-5E; Wed, 25 Mar 2026 15:07:29 +0000
Received: by outflank-mailman (input) for mailman id 1262572;
 Wed, 25 Mar 2026 15:07:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1w5PpP-000707-TA
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 15:07:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5PpP-00Eqx6-8v
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 16:07:27 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69c3fa2d-5cb7-0a2a0a5109dd-0a2a4508c25e-14
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:07:27 +0100
Received: from [209.85.208.43] (helo=mail-ed1-f43.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jgross@suse.com>)
 id 69c3f722-1950-0a2a45080019-d155d02bb58a-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 15:54:26 +0100
Received: by mail-ed1-f43.google.com with SMTP id
 4fb4d7f45d1cf-6694c9c02c5so6255441a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 07:54:26 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-668cfdb4659sm6234664a12.13.2026.03.25.07.54.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 07:54:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774450466; x=1775055266; 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=HYAHAWzJvOJE6VRHhQ6GA5prEi6dP5vy8cKS5t0jXc0=;
        b=GtG6tuj95gFBEOrz+/USNyqVmF0ZTI3LBZ6RuAnLIiSWKoThPAxr7BjqNOw3COTk1a
         3vXi0SoNJywtvkMGgm0vI8Ga92XH848w61g18FqOk7NX5Duc7lPMW9vXI6p4iLj6vWQS
         djFe9YyvpKXc0yP30KKEOhLuTHnSmCEXGuwrMz+3ItoVmjnAzHi6kKTwq3J9JhdXkmzA
         uYLwRvhM2Q6cA+QAQO8kfoOQzjDt4G41zXPBI2p60kyx8Oox+Q0HEHt8rCbwrYkoeJdU
         2uI2AdnEfzur5zb8+zuxIQq1fOnPHO3igVMVYCIEj1Vg8FWyU1E8/753ImntLHZpQbOv
         ILBQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774450466; x=1775055266;
        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=HYAHAWzJvOJE6VRHhQ6GA5prEi6dP5vy8cKS5t0jXc0=;
        b=UKWVuGnkTVxOnx2BXvFKbOco4F5REBDY3j5oqqcDuxPT0KV+5mG/Ct+CCFAbTADkfz
         Nxxt8EWIzfD8et5DJ+a0pcS5kv4ni/7p7n/OnFq8nD9GVojX/oWd3jqRAJxGwnnkcwdy
         9r+mL1sddfZCWkfMrrD5Qt6l8ACk5kpXvPVuE2ht6RrLV1wCYymzC1AdGyb9Ez3zmzZO
         wn9y8lso1yexyKqVpftCLP9OoeLfG0X/8HADpMIQAXI997hgHeN5v3AdZCfgNVSHGO2j
         kSLQmhVpBOWEAnn90pAC9LjylprqPv86Q4b/uDM4Gt6N7VnJ98qyDRwbLKgcmli++Yr3
         HJ0g==
X-Forwarded-Encrypted: i=1; AJvYcCVAAWVtSqd5T23Hl/jkwnArX1kiZTNpYxxNHp/L/7Ye+cVPddW8o1Du4gGgNfKR5ffylkG5iX3GSXU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yze8zyJu1UAtZPeOi9WfO0SjaHC+zgB9RwYp5avUD1pZ+xOaCbo
	Kc+J9cHK5d91jYacx1XsG84OozssPIfDKx2uM2/4LQluuE9807rBEiUjXn5Dl6WXQt8=
X-Gm-Gg: ATEYQzwXkGJSX/3mk4MSpEv4vwgjyXIdxMC7wRnJyRRfbiEAaqdmEX9br4t+kqSsii9
	+6HRf3H8PMAkcUZFTuTto2gMaR/U79dLtTigqguBnZlkr8zbRcDXE28N2E9UsCNlOr7dn+KsR8f
	KR4qCrYVeWFwTH5gSKXAUWWpG8UVVTe8pgyDCaNuVVwCIjrh/dEfoLQCtpzw2XtzIekcKNrGo/m
	6Gh4IiUIJptCMJoV0zx/7OrB8tEvoSVb3m/XGxZxp4Ok9a0WGuWL9TXF5E39mgO+IA+aIJ4F/LT
	LS/QEnuodczf5TthMZJAYibb7jdYyzR6fAdBKInFd57LHSupefLQRuPhrtCLTXABvCQB25uUxfx
	A+FQZJAfjTJfQMFUttChqlgjsIgAHCsqtcHO1QFwD3cWngH9OkFypQGycRjgAdvAzAVuzWSJU2o
	zPupAPP9UqVlqboa+8nldmWxEofoKdXQWIXJUm6aVMkpH42/YtVa3s4NyepqusC2V0A9NUAkETB
	g7aX7X1Yc4+gVKMAcOSc1qbSNTA0dGfrcwfLwRPwFa/l9zQRPh1cw==
X-Received: by 2002:a05:6402:5213:b0:668:488a:d3da with SMTP id 4fb4d7f45d1cf-66a826cd5fbmr2295364a12.25.1774450465604;
        Wed, 25 Mar 2026 07:54:25 -0700 (PDT)
Message-ID: <bf76d5d5-5b3f-45fc-93e4-6bff07e60288@suse.com>
Date: Wed, 25 Mar 2026 15:54:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] arinc653: don't assume Dom0 is the control domain
To: Jan Beulich <jbeulich@suse.com>
Cc: Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <89d17a24-0a1f-4f3f-ac2f-f3701a8d78dd@suse.com>
 <3a491956-81a6-4c7e-acb0-14f135fc5596@suse.com>
 <e0031df1-12a6-4459-a670-fbcbca13368a@suse.com>
 <d7af5c2d-f700-4a16-bc55-750cd7f5ba1b@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: <d7af5c2d-f700-4a16-bc55-750cd7f5ba1b@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------Mw0D29h3sG4Q0oIlI3MJbP1o"
X-purgate-ID: tlsNG-c1860d/1774450466-F24E6726-5A4B9F2A/0/0
X-purgate-type: clean
X-purgate-size: 11191

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------Mw0D29h3sG4Q0oIlI3MJbP1o
Content-Type: multipart/mixed; boundary="------------nAngyBcelk0Y2H3NUlOYgmZh";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Message-ID: <bf76d5d5-5b3f-45fc-93e4-6bff07e60288@suse.com>
Subject: Re: [PATCH v2 2/3] arinc653: don't assume Dom0 is the control domain
References: <89d17a24-0a1f-4f3f-ac2f-f3701a8d78dd@suse.com>
 <3a491956-81a6-4c7e-acb0-14f135fc5596@suse.com>
 <e0031df1-12a6-4459-a670-fbcbca13368a@suse.com>
 <d7af5c2d-f700-4a16-bc55-750cd7f5ba1b@suse.com>
In-Reply-To: <d7af5c2d-f700-4a16-bc55-750cd7f5ba1b@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=

--------------nAngyBcelk0Y2H3NUlOYgmZh
Content-Type: multipart/mixed; boundary="------------ZdTaCr2GwlvQF0UofizSQ6jk"

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

T24gMjUuMDMuMjYgMTU6MTgsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyNS4wMy4yMDI2
IDE0OjM4LCBKw7xyZ2VuIEdyb8OfIHdyb3RlOg0KPj4gT24gMjUuMDMuMjYgMTM6NTQsIEph
biBCZXVsaWNoIHdyb3RlOg0KPj4+IExlYXZpbmcgYXNpZGUgaGlnaGx5IGRpc2FnZ3JlZ2F0
ZWQgZW52aXJvbm1lbnRzLCB0aGUgY29udHJvbCBkb21haW4gaXMNCj4+PiB3aGF0IHdpbGwg
aW52b2tlIFhFTl9TWVNDVExfU0NIRURPUF9wdXRpbmZvLiBJdHMgdkNQVS1zIHRoZXJlZm9y
ZSBuZWVkIHRvDQo+Pj4gYmUgYWJsZSB0byBydW4gdW5jb25kaXRpb25hbGx5LCBub3QgdGhv
c2Ugb2YgdGhlIGRvbWFpbiB3aXRoIElEIDAgKHdoaWNoDQo+Pj4gbWF5IG5vdCBleGlzdCBh
dCBhbGwpLg0KPj4+DQo+Pj4gRml4ZXM6IDlmMGM2NThiYWVkYyAoImFyaW5jOiBhZGQgY3B1
LXBvb2wgc3VwcG9ydCB0byBzY2hlZHVsZXIiKQ0KPj4+IFNpZ25lZC1vZmYtYnk6IEphbiBC
ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCj4+DQo+PiBSZXZpZXdlZC1ieTogSnVlcmdl
biBHcm9zcyA8amdyb3NzQHN1c2UuY29tPg0KPiANCj4gVGhhbmtzLg0KPiANCj4+PiAtLS0N
Cj4+PiBUaGVyZSBiZWluZyBubyAiZWxzZSIgdG8gdGhlIGlmKCksIHdoYXQgYWJvdXQgb3Ro
ZXIgY29udHJvbCBkb21haW4gdkNQVS1zPw0KPj4NCj4+IGE2NTNzY2hlZF9hbGxvY191ZGF0
YSgpIGlzIGNhbGxlZCBmb3IgYWxsIHVuaXRzIG9mIGEgZG9tYWluLg0KPiANCj4gWWVzLCBh
bmQgd2hhdCBpZiBmb3IgdGhlIGxhc3QgZmV3IG5vIHZhY2FudCBzbG90IGlzIGF2YWlsYWJs
ZT8gV2l0aCBvbmUgdkNQVQ0KPiBwZXIgdW5pdCBhbmQgRG9tMCBoYXZpbmcgNjUgdkNQVS1z
LCB0aGlzIHdvdWxkIGFscmVhZHkgYmUgYSBwcm9ibGVtIGFpdWkuDQo+IEFuZCBBUklOQzY1
M19NQVhfRE9NQUlOU19QRVJfU0NIRURVTEUgY2FuJ3QgZXZlbiBiZSBjaGFuZ2VkIGVhc2ls
eSwgYXMgaXQncw0KPiBiYWtlZCBpbnRvIHRoZSBzeXNjdGwgcHVibGljIGhlYWRlciAod2hl
biBzdWNoIGFuIHVwcGVyIGJvdW5kIHNob3VsZCByZWFsbHkNCj4gYmUgYW4gaW1wbGVtZW50
YXRpb24gZGV0YWlsLCBtYXliZSBhIEtjb25maWcgc2V0dGluZykuIFlldCB0aGVuIGV2ZW4g
dGhlDQo+ICJET01BSU5TIiBpbiB0aGUgbmFtZSBpcyBjb25mdXNpbmcsIHdoZW4gaXQgbGlt
aXRzIHRoZSBudW1iZXIgb2YgdW5pdHMgd2hpY2gNCj4gY2FuIGJlIGRlYWx0IHdpdGguDQoN
CkFGQUlVSSB0aGUgYXJpbmM2NTMgc2NoZWR1bGVyIGlzIG1lYW50IHRvIHNlcnZlIGEgc2lu
Z2xlIHBoeXNpY2FsIGNwdSBvbmx5Lg0KV2l0aCBjb3JlIHNjaGVkdWxpbmcgdGhpcyBjYW4g
YmUgZXh0ZW5kZWQgdG8gYSBjb3JlIG9yIGEgc29ja2V0LCBidXQgdGhpcw0Kd29uJ3QgaW5j
cmVhc2UgdGhlIG51bWJlciBvZiB1bml0cywgb2YgY291cnNlLg0KDQpJIGFncmVlIHRoYXQg
dGhlcmUgc2hvdWxkIGJlIHNhZmV0eSBjaGVja3MgYWRkZWQgdG8gZW5zdXJlIHRoaXMgYXNz
dW1wdGlvbg0KaXNuJ3QgdmlvbGF0ZWQsIGJ1dCBPVE9IIHRoZSBhcmluYzY1MyBzY2hlZHVs
ZXIgaXMgZm9yIHZlcnkgc3BlY2lhbCBzZXR1cHMNCm9ubHkuDQoNCj4gDQo+IEltbyBhdCB0
aGUgdmVyeSwgdmVyeSBsZWFzdCBub3QgYmVpbmcgYWJsZSB0byBkZWFsIHdpdGggYWxsIERv
bTAgLyBjdGxkb20NCj4gdkNQVS1zIHNob3VsZCBiZSBsb2dnZWQuDQoNCkkgYWdyZWUuDQoN
Cj4gDQo+Pj4gQW5kIHdoeSBhcmUgdGhleSBhZGRlZCB0byBhbGwgc2NoZWR1bGVyIGluc3Rh
bmNlcz8NCj4+DQo+PiBXaGF0IGRvIHlvdSBtZWFuIHdpdGggImFkZGVkIHRvIGFsbCBzY2hl
ZHVsZXIgaW5zdGFuY2VzIj8NCj4+DQo+PiBhNjUzc2NoZWRfYWxsb2NfdWRhdGEoKSB3aWxs
IGJlIGNhbGxlZCBvbmx5IGZvciB0aGUgdW5pdHMgb2YgYSBkb21haW4gYmVpbmcNCj4+IGlu
IHRoZSBpbnN0YW5jZSAoaS5lLiBjcHVwb29sKSBkZXNpZ25hdGVkIGJ5IHRoZSBvcHMgcGFy
YW1ldGVyLg0KPiANCj4gUGVyaGFwcyB0aGUgcXVlc3Rpb24gaXMgYSByZXN1bHQgb2YgbWUg
YmVpbmcgY29uZnVzZWQuIE15IHVuZGVyc3RhbmRpbmcgd2FzDQo+IHRoYXQgYTY1M3NjaGVk
X2FsbG9jX3VkYXRhKCkgaXMgc3VwcG9zZWQgdG8gYmUgc2V0dGluZyB1cCBwZXItdW5pdCBk
YXRhLA0KPiBub3QgcGVyLXNjaGVkdWxlciBpbnN0YW5jZSBzdHVmZi4gWWV0IHRoZSBsYXR0
ZXIgaXMgd2hhdCBsb29rcyB0byBiZQ0KPiBoYXBwZW5pbmcgaW4gdGhlIERvbTAgKG5vdyBj
b250cm9sLWRvbWFpbikgc3BlY2lmaWMgYmxvY2sgb2YgY29kZS4NCg0KSSBkb24ndCB0aGlu
ayBzby4NCg0KRG9tMCBpcyBzcGVjaWFsLCBhcyBpdCBuZWVkcyB0byBiZSBmdW5jdGlvbmFs
IHdpdGhvdXQgc29tZW9uZSBoYXZpbmcNCnVwbG9hZGVkIHRoZSBzY2hlZHVsaW5nIHRhYmxl
LiBJbiBjYXNlIGRvbTAgaXNuJ3QgaW4gdGhlIGNwdXBvb2wgb2YgdGhlDQphcmluYzY1MyBz
Y2hlZHVsZXIsIHRoZXJlIHdvbid0IGJlIGFueSBkb20wLXNwZWNpZmljIGVudHJpZXMuDQoN
Cg0KSnVlcmdlbg0K
--------------ZdTaCr2GwlvQF0UofizSQ6jk
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-----

--------------ZdTaCr2GwlvQF0UofizSQ6jk--

--------------nAngyBcelk0Y2H3NUlOYgmZh--

--------------Mw0D29h3sG4Q0oIlI3MJbP1o
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/Ey8FAmnD9yEFAwAAAAAACgkQsN6d1ii/Ey+M
VwgAkmM94PS7Df/V7v2rU3kyYBZjCBzxKpsvmK+Y6Ap+wppByDZquoHIWIsktFFlbhsNf/s4qcIe
iRvMu0ZYGt+ZEo8j0Ob+9cd6xmHgbUBvs/TXQlq7OwPMlKrE9HqC9tCSPDYPtCygPlmkADqk8s+M
7m665zOBACDVi2A6un78x7TEU2Qsxr78bRBHJSc4JNYCI3ifFQXIJHrbGqroAiaHPULCvrvaBvRG
xN9ZlBsMXgsKX9b/J8tmm016BpwHNnsBJmHKl7vMKfM3sjsCJqV/mbQAA9NZvtsbVbogbRNd0Yi/
WO+otAqQo+NxLhmOBWevnrCPjxIvGqR8SkJXI4Yglw==
=hzXZ
-----END PGP SIGNATURE-----

--------------Mw0D29h3sG4Q0oIlI3MJbP1o--


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 15:14:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 15:14:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262583.1555033 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Pw6-0000Ud-Vj; Wed, 25 Mar 2026 15:14:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262583.1555033; Wed, 25 Mar 2026 15:14:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Pw6-0000UW-S4; Wed, 25 Mar 2026 15:14:22 +0000
Received: by outflank-mailman (input) for mailman id 1262583;
 Wed, 25 Mar 2026 15:14:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Oleksii_Moisieiev@epam.com>) id 1w5Pw5-0000UQ-4R
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 15:14:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Pw4-005Qki-1Q
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 16:14:20 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 69c3fbb9-bab6-0a2a0a5309dd-0a2a45079af0-40
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:14:19 +0100
Received: from [52.101.72.108]
 (helo=AM0PR02CU008.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 69c3fbc9-fd74-0a2a45070019-3465486caf9b-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:14:18 +0100
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com (2603:10a6:10:519::5)
 by AM9PR03MB7026.eurprd03.prod.outlook.com (2603:10a6:20b:280::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Wed, 25 Mar
 2026 15:14:15 +0000
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908]) by DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908%5]) with mapi id 15.20.9723.030; Wed, 25 Mar 2026
 15:14:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hDhswLNuQU6AJ+o4ski3QweA7WDK411SbzAITywOgaHlapE0ccdjB8kVIEBZlo2SR27ANnePFoRxSUbVSAt9Pu8HIa9/VWo5rkDGH3BhStiOawiaecrgm3aEoCpGXyzY2c3OZP2nJ7th7CW4kdJX9QZUqEHgFYBiOX4pKWRDSQnrKJPUDttmf1lDBU8l6hXKkjIna1jGvfgfftkhkSthE+uREynDUkNTyZQ9jXnI1qJTFMBle7eplIEWLd9mqdtZD3bA3UQ7S8CUrOR34nbff+fxfG3apjG2SVX79ZsFE6oIQKIp6z8jQniPAVcVFvh0VuOgoc2FVdvSDYDvKcwNPQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4CL2YapEIHWElPPtkTCLPLMf2g8TP4z6plQvXNazHVs=;
 b=G0oXmeow/N217h/SR/7J3yTAwZCEvb19qjAm2uY11ysyDsnYEmLjErmTYG7afH0j5ThJTrnxMKfvm751pnsCAzaQl3d2ys3v2Hok/XTskrZi+sLj2vMhYjemLRKp7GxnGqu1K284BNe4nmMqbsW2HBYJCMT0t9NnW9bnuql4uKgmICuCJAYEwFNB9teG4qVnKaSvPWCFySxAeguudxglJT2s7FZr85V4fQLAHl9zk/CS2S4fw2/T9NU24qNG+HIyeDbU+e98uZ65euyW1dLItShguAeqgatfwsYUynxzAMElCC29xZ84F1qB7jEn39wIXKfh4CJZhd2Pj7upztsX8w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4CL2YapEIHWElPPtkTCLPLMf2g8TP4z6plQvXNazHVs=;
 b=K53luWZGSrOtOp3a6Sk7rgmradDq6urH82BiHig0jdnnvaI8TbTKoiw8nmWmvS9aTqS3hTfThJQ6xe8at4UsaiCSwPWUI8PsLH0fe+tbsF79gMs6qZPw0rgbZyMuRQI5F2ewqEqwZWmF+vK/SpcbYjNfv0a1Dk0V0NNdayrJspelEmeqHjbZ7bY2Cn0wu/GIbCCifjfT9MnVCJPQMVBZou73h/8xQdfZ9dtlVwbqoOThAtSMKSjsGlx1dv1v/onrnvpRYR0PpnWpjwLBP9Z7qsSuku8AtUD6C1tTj/A09NnCwxhmhv/ViCslhRrnMgbo85rBtGh1SqiArB98TXaVKw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <fee2fb06-f9ef-4bf3-ab79-89dec28ab2f5@epam.com>
Date: Wed, 25 Mar 2026 17:14:12 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/sched: validate RTDS putinfo period and budget
To: Jan Beulich <jbeulich@suse.com>
Cc: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 Juergen Gross <jgross@suse.com>, Meng Xu <mengxu@cis.upenn.edu>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <1a235cca6f37ee3d3f03132675247edfc19953cd.1774431761.git.oleksii_moisieiev@epam.com>
 <f49dcd5e-d905-4f43-8143-afd7209a1300@suse.com>
Content-Language: en-US
From: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
In-Reply-To: <f49dcd5e-d905-4f43-8143-afd7209a1300@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: BE1P281CA0033.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:b10:22::6) To DU5PR03MB10263.eurprd03.prod.outlook.com
 (2603:10a6:10:519::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU5PR03MB10263:EE_|AM9PR03MB7026:EE_
X-MS-Office365-Filtering-Correlation-Id: b4e34d03-2eac-44f9-b73c-08de8a812d4e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	FoKzt2snUbl1KDJ2y6w2QPWeqEi65qPYqa1sZf7qBTufM5lihwsQCSszi11ws2Qxtc6lvZDe2Xk+W5MrHCzzkS1LGKSHdjilRWoDvEoYAzXJKduopiUi/2sTAsMixBnNt6AlRybnBxyIXhI9d2CxiOVwiSJKJH3cCnpap3RRq4VFPyyxw7ZPI8kI87DIMCYBDpCiNa3KeYrxVMBGD+/V2uk3OSlFk5f/RNR7fo19VLSaJVPB4qBxf65WoLyAjCXaVnBicQeyJR6kfXl8XIjlNnCs2ecYp3isbx9E1l1BA9YrU/XhwkjavXqWODbmCoi6uTDUDBOtUqZq1TpEzP9ghkNZx0fk7jUvgzLFjnYF7K6xBjme8fsWRTYOsm98I2gPMTRmNSqpYon/yJqGBbhY30ulaIdjaMacrEWGo4Zj2hfNhzQzOFSnMGRS5yyONrlw5SZ8wdyz3SPaS3lO5aIM9E0WxRWIrMgzzi+UrUqhGaGEhJEIti+VaxJHQtkKNwfFlo3U9+us9VxcvqAqDd3tW9rxUemdj7L9QU7+eBBFC62b3haHFZ/+Mh+BFVZVDIDlzIZjbWDwHwGPQH0VB1Ye+cBM0E1x7099qVRmfJ/VCYYFwY26h6+HKPwsZQZrQVMyptADy2knkxePuFJ4ATY3MNw9iFQISuknvtUSb0JJh+wWHhzRvz6Y6V59MH+yY7YYwxyZqPJ7CLuWBu/vKvtOUJ7jPXqq6T7THp/Z8TpkvBw=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU5PR03MB10263.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?U1ZrY3JKWEsyU2IzRzVsV0puV2RBY0FXNFc4Qk9kakZ6RVBDb1gxMjVBSlJH?=
 =?utf-8?B?b0FTdFVMYnBjcnJpV1BMdkdwRjBEV1F1bkkyZDBKRUcvZEZmY1dpVGIxd2Fm?=
 =?utf-8?B?Qkl2TzlLQ1lVSDM5NEhDZTRsNmwrMWZtd1lqZTNnUnBMZFhHOHl5UnJQKy81?=
 =?utf-8?B?dVZXTkhZbTk1UE5jRUt0VXJ5ZVRsRUV5MFJkVDBJa3QzbHRheFVNSEFMYksw?=
 =?utf-8?B?RURYNU5pK2ZGS3VsS0h3Y1ZUOTFuY25IU3k5dVljUFpJSmRhSXhwUWR6SEhR?=
 =?utf-8?B?MnJKcy9lNG83T3lXWXNWaG0zeDJVUTV5RVMyYU15Z3MvRytSZkdTdWxmSXd5?=
 =?utf-8?B?cnhuK2RtU0F1TnBua0Q1eXJTbVdrdGFRVGZpRENlbzhhS3c2cytWT1g1b0Z2?=
 =?utf-8?B?Tk5UcVo5L3I0YnJzTXV3RHVnQnBhUm5DVkdTUjVlODlJTDJ6SDMxcUtwRklC?=
 =?utf-8?B?UVdNYk9WUDZoVldPNFVVaWdhTlhnS1ZOVXJVRmJVbXpJSXpDc25jU0g3cU1K?=
 =?utf-8?B?TzFsVVFnUnN4Slowa1FCOGE1UmdOMGNWSjNpMnhINGk0aTJsaU9UTmM0KzZX?=
 =?utf-8?B?ODVQOGZXajBKZ09jVGhscGp1NWtFaEorOW5MUndKTitmbUxiMDFtdVJkWmR1?=
 =?utf-8?B?MTBXeGtBL1lxZGFxYkxxOWRxbnFZcVFjZERZVUgxRjU0eDl3clh0M0xEUVY2?=
 =?utf-8?B?d2ViN2plWmlFSitENU9McTdrMWNaSmQ3ZE5qMS9YMG8vakUxWWRucXV5cTdF?=
 =?utf-8?B?V3hDTUN2NXIyZlFCS1pSK28xWUM2eTh4VFpYVWVxYVhKbCtpT3B6STlsdVZ6?=
 =?utf-8?B?Qk1QME1MSEM4RHIyZlUzeDlvdFNIRDlWL3Y0clkzTjV1SWI1RWFvVHhVNXlZ?=
 =?utf-8?B?WGtveTRWVlBuZE5yUU5lR2dYUXN2K1JUbUltUGQ3U1N4RXZnN1dUTXNqZVZG?=
 =?utf-8?B?MzZqcjcvc2VKemNIbHpjd3Q1MjRraFMySDZqUkJnVWVpLy8wQXA2M0wySVVu?=
 =?utf-8?B?UlYwL2RrMy94bDhKSDNWOERCSkZkL2dFOUhaR2pEcnVNQTRGa1dpQ05lZlp0?=
 =?utf-8?B?dTFVM1cvYVYvcGlicEFhOEx1YTJxeFNmcHVzVHNkM1dGWWRkL3Azb3JZcnNU?=
 =?utf-8?B?K1FQV3Y3dWZlSjZsQm5UaG14bVF1N3lZV1VaVmVxN1ZXUzJ1cFFqUGx0UHVO?=
 =?utf-8?B?RkdobDZqQmppQUZBTm8renE3NGJBR3NhazNKT09DaWU4Y3NOOWFpZkpqK29X?=
 =?utf-8?B?WXdRc0l4VEM5STNmRmxCOCs3NkhKYzhSQVRVYXVDR3kyT1lWQWhkYXZ4aXpV?=
 =?utf-8?B?QktoZVFvemtQZi83dXpwejV0ZXdGUGVqQ2pGaE00aE9qQ3JDUWJJNVBVbW5t?=
 =?utf-8?B?L0R2VFFhQ2UzdjNQYnFkZTA3K1lHTm51NC9TaUxJZktFWUp5elJOTzlFU3Vu?=
 =?utf-8?B?ajdLSzlTbmpyYUc3bHR0OHI0MFlOcEpBL2Urc3RvU093MER3c0dwN0grU2ts?=
 =?utf-8?B?N2dZZS9lSklkRWNxcU1wYnRaTWlLd1JkMHFOWUdsUjN1a3J6UUtoSnhaT0xl?=
 =?utf-8?B?RU1xcy9acDFHb2RkYjFGZVAxdW1VRVZLeDQ3bGlmcTlSNnl1R0NFWEFrU3BX?=
 =?utf-8?B?R1NwM2xjcXEvY3pRaXY5azNDMm9YQmlJTkNiNTNiRXdPT2I0MGVscTZwMUxq?=
 =?utf-8?B?N3lYZFZSeE5nbVJrcXY3TnNJcHVqcnV3NGNXYkd0Q0ZwTEJvS1VWZmNQcnB2?=
 =?utf-8?B?OEMwbDIyeTBJcXg3U1RJT1RYUzJjNWNTZVdZN1k4cWF2S0pMeXI3TGpEaWRr?=
 =?utf-8?B?OWJOWGJjRGt6OFpIWUpTZENiN05Wa0p0Nm44WVN6dUE3U2xVM2hlV2xKdlFa?=
 =?utf-8?B?VllCTkpQK2NRdUpxWDdkK0lXUzdsTWVPVVAvcnZYUmZheTNKV2k2TGxhdTEy?=
 =?utf-8?B?aGViQXMyMXd0VThHOGo3RDJ6b0ZxTnRKVzJvM3lUYmpIUGUxRk13TS9IMjQ1?=
 =?utf-8?B?YjVHUzdwZ2wzZGtCRE1xdkREZlJ2bEp3OURCWWpnY1d4bFdLYTJrR1Z2Q1Ni?=
 =?utf-8?B?WmNVMUE4emZNdHFhd0JmZDBpYi9acThlQ25Sb0FlUnNIbGJJTUFwbUZuOWpF?=
 =?utf-8?B?dEtUVzI0RVEyaXZ1SFpSbTBWWDRQNmZEeDRYM2YvanFCR09WVWo0N0pjREtv?=
 =?utf-8?B?TGNiK1dqV0gwaXVPYkZRSk1QR3E0RXlBallOaitpc2drWERaZkJCMkUyUnYr?=
 =?utf-8?B?ZUpXZUh1YXVVekR1UmV5TVR3VVo3ZklaZHdCWHR0ZzlQaWl4UjM1c1dPL0Fo?=
 =?utf-8?B?OU8yaTIxbUQweng1eXBhQVloYjlESDlSZmtLR0hHTFZsVndlQ0laYm5MZldh?=
 =?utf-8?Q?WpRU/J/rgv5/wFAM=3D?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b4e34d03-2eac-44f9-b73c-08de8a812d4e
X-MS-Exchange-CrossTenant-AuthSource: DU5PR03MB10263.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 15:14:15.0046
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: izLsoKNZYE+tfPBtzFvJrY7MJnBlYiKq9ghazJtBDTnmJhblGvPfGUjyy1SHZWoWIzRKEHQSkK2ehAgEQCcl82pGsq8D/IpIKiDN93XAHNY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7026
X-purgate-ID: tlsNG-ef75cf/1774451658-566AF303-82FC127C/0/0
X-purgate-type: clean
X-purgate-size: 1936

Hi Jan,

On 25/03/2026 13:50, Jan Beulich wrote:
> On 25.03.2026 10:43, Oleksii Moisieiev wrote:
>> The RTDS domain-wide XEN_DOMCTL_SCHEDOP_putinfo path only checks for
>> zero values before applying period and budget to all vCPUs in the
>> domain.
>>
>> This is weaker than the per-vCPU XEN_DOMCTL_SCHEDOP_putvcpuinfo path,
>> which already rejects values below the minimum, above the maximum, and
>> cases where budget exceeds period.
>>
>> Use the same validation rules for putinfo as for putvcpuinfo, so
>> invalid domain-wide updates are rejected with -EINVAL instead of being
>> applied inconsistently.
>>
>> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
>> ---
>>
>>   xen/common/sched/rt.c | 5 ++++-
>>   1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/xen/common/sched/rt.c b/xen/common/sched/rt.c
>> index 7b1f64a779..62188f37c6 100644
>> --- a/xen/common/sched/rt.c
>> +++ b/xen/common/sched/rt.c
>> @@ -1388,7 +1388,10 @@ rt_dom_cntl(
>>           op->u.rtds.budget = RTDS_DEFAULT_BUDGET / MICROSECS(1);
>>           break;
>>       case XEN_DOMCTL_SCHEDOP_putinfo:
>> -        if ( op->u.rtds.period == 0 || op->u.rtds.budget == 0 )
>> +        if ( op->u.rtds.period > RTDS_MAX_PERIOD ||
>> +            op->u.rtds.budget < RTDS_MIN_BUDGET ||
>> +            op->u.rtds.budget > op->u.rtds.period ||
>> +            op->u.rtds.period < RTDS_MIN_PERIOD )
> Besides there being an indentation issue here, are the inputs of putinfo
> really in different units than those of putvcpuinfo? The latter first
> applies MICROSECS() before comparing against bounds. Assuming they are
> using identical units (actually, they do, as putinfo uses MICROSECS()
> when storing the values into the internal structure), I guess you'd best
> make a small helper function used by both.
That's a good point. thank you. And sorry for the intendation. will fix.
> Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 15:16:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 15:16:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262595.1555042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5PyB-00017A-Dv; Wed, 25 Mar 2026 15:16:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262595.1555042; Wed, 25 Mar 2026 15:16: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 1w5PyB-000173-Ay; Wed, 25 Mar 2026 15:16:31 +0000
Received: by outflank-mailman (input) for mailman id 1262595;
 Wed, 25 Mar 2026 15:16:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5Py9-00016t-UW
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 15:16:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Py9-00DFuz-Ag
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 16:16:29 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c3fc49-e002-0a2a0a5209dd-0a2a4508ec98-18
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:16:29 +0100
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c3fc4d-1950-0a2a45080019-d155802cc897-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:16:29 +0100
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-487035181a7so30397735e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 08:16:29 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4871665647csm23210945e9.12.2026.03.25.08.16.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 08:16:27 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774451788; x=1775056588; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=b3Kwf2XG54CIgyY9uPMo+MCDlvtXL/0mUzcEbo0tGlc=;
        b=GnTKM64gdS4INsvAJ62nhjFvLMHbGC//xA/EDvahwOoTTlCFbs2imyJk2GSBWJzzbS
         Ftqih7r8RcZ9DCl6rR2FS8LGLiIL1Tl9OsvfAUFqqlYVtm9z3nfZYteXPx5DGv/tQtay
         MG7dLtQGwnL0Ey/0XxZPYMJhIFVmT12pqjwiNLxcBd/Mb6tLXsJKW7wbFd716D4AUpeG
         PFRMjORU7tVUKaKFIDmkudeHOejQI28uIK+HzHg9gHOXpkiWYBIJE00OSKdSGKBgokIW
         8CGsBMFdTGFMlHu/llMHqWif8Em5tBIreY1R0WF+EIceNhPqhpic2TH0QpbIZpY7c7x2
         8SFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774451788; x=1775056588;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=b3Kwf2XG54CIgyY9uPMo+MCDlvtXL/0mUzcEbo0tGlc=;
        b=bhAq9f0RwN+y5ooqRLEBTmgDlEi1saIvk70Ms9LF3bKoztpukEtDXP2iO2BT6FyKoV
         Pyn8wBCBH58BuyCOkOwQNa2DbKXWBUpvipUiHk9ziPUUeJE+QkcpTNL7T5LsDpUllmKe
         cMqzoE0gzLH+oCU6vDOq/MaVDbx3Iqa11HSVifbJBNCkMQrHJUDBhG/P9WUUS/VETKqv
         SqX9aMYlS4z1krtWvOXVVANrQMv3NUFgYAxuK1w4KE46WFEKtcniwcKqkdmXKkr0YJZs
         QmwkAzLX+behL9GNG5Hcswj4Dalm6GkbxjSatc+maCNshiCc1dyGw6k/dEtp0WajbDJa
         QrIg==
X-Forwarded-Encrypted: i=1; AJvYcCUi++mRMJ+qHVjUD5LyA5OPSxanD6uHSCAhIswx8KhWljnXwtyo08qtFh1V1bvS45t/eM/pkQqY7hk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz8MuOw8vOue1G4xv/5IwccM+kZ+kyn3pRvsWa8rknK6bHsFRXw
	JeH+2Sja88tCmdzU0jhznLMtilIQfyVtvHmunh86LchA0sReMgOcjlN9IQUsZvBdKA==
X-Gm-Gg: ATEYQzwVc4kegb1AURJovJRG/PpH0zxuy3sLAyWEZyD9Og1R03/LU9UyGRLktRr2a9s
	YdrPEtuDL55iSuO6YiReGv5zI3+5+tEaKIfCEvUruTk/NOIBe6hJRgTlBxne3mdIV+dhZ+5Dd4F
	TvPT7PF82evfLG9sJO+jwCja6EebURZuKMaKGpF/sHl3DwOQQPvK+8ipkUa9phTHK/XDJqtQxjc
	69N80IkCnUJIidzRHqFQrd8Ymd4HSqfb1eTNumlxRFifwnJUef70q3o9ov70lqCV6f9ZHtDWP+M
	45uT/v7vIxmfwuZfIwIIDwQMxWYP14J319lV0goRqmIluapJgON/mS+EyvYnvh2kjYIru+5mK3D
	+Oa/KYPWeu74G2ATbATVfGUx31BFigatevhe7h+hKagC9rVoFmIYbc5TuL8TqS5x6OF3tkfUWFe
	NBXT8odP/YTrvjxU1WoKIXWqBtX1tRsP5Zm7PvYapUd5EGBHj63TsnFWqoBG22e2Aa8kpDY0O+f
	nWklGflAK62zVY=
X-Received: by 2002:a05:600c:6287:b0:486:fc94:d8f2 with SMTP id 5b1f17b1804b1-48715fe2ad3mr52740005e9.14.1774451788446;
        Wed, 25 Mar 2026 08:16:28 -0700 (PDT)
Message-ID: <751e1d3e-d95a-4129-8baa-450a53d15efa@suse.com>
Date: Wed, 25 Mar 2026 16:16:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 2/3] x86/acpi: Integrate BGRT preservation with status
 reporting
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, sarkarsoumyajyoti23@gmail.com,
 xen-devel@lists.xenproject.org
References: <20260324123312.11076-1-soumyajyotisarkar23@gmail.com>
 <20260324123312.11076-3-soumyajyotisarkar23@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: <20260324123312.11076-3-soumyajyotisarkar23@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1774451789-E3096726-B19AAA3F/0/0
X-purgate-type: clean
X-purgate-size: 1956

On 24.03.2026 13:33, Soumyajyotii Ssarkar wrote:
> @@ -327,6 +328,11 @@ static int __init cf_check acpi_parse_hpet(struct acpi_table_header *table)
>  	return 0;
>  }
> 
> +/*
> + * Invalidate BGRT if image is in conventional RAM (preservation failed).
> + * If preservation succeeded, image is in EfiACPIReclaimMemory, which
> + * won't match RAM_TYPE_CONVENTIONAL check, so table remains valid.
> + */
>  static int __init cf_check acpi_invalidate_bgrt(struct acpi_table_header *table)
>  {
>  	struct acpi_table_bgrt *bgrt_tbl =
> @@ -754,5 +760,7 @@ int __init acpi_boot_init(void)
> 
>  	acpi_table_parse(ACPI_SIG_BGRT, acpi_invalidate_bgrt);
> 
> +	efi_bgrt_status_info();
> +
>  	return 0;
>  }

Does this really need doing from here? If you called it ...

> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -1911,6 +1911,22 @@ static bool __init cf_check rt_range_valid(unsigned long smfn, unsigned long emf
>      return true;
>  }
> 
> +void __init efi_bgrt_status_info(void)
> +{
> +    if ( !efi_enabled(EFI_BOOT) )
> +        return;
> +
> +    if ( bgrt_info.preserved )
> +    {
> +        printk(XENLOG_INFO "EFI: BGRT image preserved: %lu KB\n",
> +               bgrt_info.size / 1024);
> +        printk(XENLOG_INFO "EFI: BGRT relocated from %p to %p\n",
> +               bgrt_info.old_addr, bgrt_info.new_addr);
> +    }
> +    else if ( bgrt_info.failure_reason[0] )
> +        printk(XENLOG_WARNING "EFI: BGRT preservation failed: %s\n",
> +               bgrt_info.failure_reason);
> +}
> 
>  void __init efi_init_memory(void)
>  {

... out of this function, it could be static and no stub (misplaced in
the earlier patch) would be needed either.

Furthermore, is the EFI_BOOT check really needed? Without taking either
of the EFI boot paths, neither bgrt_info.preserved nor
bgrt_info.failure_reason[0] would have been altered from their initial
values.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 15:24:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 15:24:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262616.1555051 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Q64-00038g-5H; Wed, 25 Mar 2026 15:24:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262616.1555051; Wed, 25 Mar 2026 15:24: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 1w5Q64-00038Z-2R; Wed, 25 Mar 2026 15:24:40 +0000
Received: by outflank-mailman (input) for mailman id 1262616;
 Wed, 25 Mar 2026 15:24:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Oleksii_Moisieiev@epam.com>) id 1w5Q62-00038T-DV
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 15:24:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Q60-00DBoZ-7G
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 16:24:37 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 69c3fe2b-2eae-0a2a0a5409dd-0a2a4503afd4-32
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:24:37 +0100
Received: from [52.101.65.93]
 (helo=DU2PR03CU002.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 69c3fe35-1947-0a2a45030019-3465415db9bd-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:24:37 +0100
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com (2603:10a6:10:519::5)
 by AS4PR03MB8748.eurprd03.prod.outlook.com (2603:10a6:20b:577::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Wed, 25 Mar
 2026 15:24:33 +0000
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908]) by DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908%5]) with mapi id 15.20.9723.030; Wed, 25 Mar 2026
 15:24:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=efz0eJqv2/gpDxgljYecXGTKyotVSX6asoogrk3GsazDpnnVc0ItMiygJkXq/LpZrOkfk9bO03L0br+zunFfWkLRWXsErSq4Y8GIsv3z0E5JKcAHCQ8NfGjrme4C0Qgdf7/43uBPcS362W/sjAMqKQBJfPmre53WXVYZagQKS/odz1GFGb76CG+qzgPN4ZCsiOV6zaB5rAMRZWIuccIH9ej/ao1PhbT02cGCzijHMxK4LZbMLN/XZmSjRXrz/ZoFTfVULeQAJqEkgZnrmL3jr5LE7a26c3f60wBveqiKxoBJWY5hUSWvHbyEkNcyQE+ynw8d3swz/IwFto26sTMXwA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Gl5DzkLvkUsbuZvmclALmkdH0Fa/jxNkKUyFXrbC4EU=;
 b=pw8Bj2ruSfFd+mu718ta6Q4G3tT90E360ulqP1kePEiHvYmmRZjUyEkDdb3fHf0ZzBA2KMEW33uGSVyTb0A/9HmquJgkjDJ5bRTmVNXEXpiHAKF3n5VCs2PgmXgNKrQ/muVsWa31j+sU4QZCU6Gr2T4UvJPF4vY4PxwWfp8I5DPwNyGkyKM7DuT4BOKt4+heJ7EYi+XTUZhEWf3CeOOnoiNKprVJobVgnFUe69+tAuhSRDxAfvgWy0lVTAG9swOmmthzKY9PZEEJSZWQMq3wwvsTXVsnlDLQQ4yFRhO5kLG5mAX0shZNMGoIq3sUjEQWnU3jwDgk2ZRWHoBU5S37mA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Gl5DzkLvkUsbuZvmclALmkdH0Fa/jxNkKUyFXrbC4EU=;
 b=X7D8FaPELbGOR0EilBzKr9a6AWhoSKsjURaoUvYBzzR6mBhoQ7ZuBdIz30bsEtkP2qOipJqS2YLLTIegQN0CbR8l2iZD7jQT7TwiraqBvumTmbJAReuZtht16zAcq1FNLj2qAJV4R8P0F3xnjs7GAffBD4ixOVLKzHHSYeWF6s/AupzVvMvWjp6tuD4ulS+PZLWqK6eSuB5jIITB5Eyozq0xpVWT0zBN5GVg03qEj04WQ9UNjWvEtH/WuZ41H4hJBI5Eqhv2QUupHXp5RaSkuv+H/31t1Gvz3ETj4bzfIGAUDUhHx/QjqZyhE/Q7NMIwpve3GHjmVBY/iwUwsZmkjA==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
	Juergen Gross <jgross@suse.com>, Meng Xu <mengxu@cis.upenn.edu>, Oleksii
 Moisieiev <Oleksii_Moisieiev@epam.com>
Subject: [PATCH v2] xen/sched: validate RTDS putinfo period and budget
Thread-Topic: [PATCH v2] xen/sched: validate RTDS putinfo period and budget
Thread-Index: AQHcvGt7K20iwhRjJ0mqKQswQ8Pmwg==
Date: Wed, 25 Mar 2026 15:24:33 +0000
Message-ID:
 <c629e66ebf05d620423babf1e4e98866c1f75357.1774452210.git.oleksii_moisieiev@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DU5PR03MB10263:EE_|AS4PR03MB8748:EE_
x-ms-office365-filtering-correlation-id: 7b72d2e6-5f5e-457d-d7c6-08de8a829e08
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021|18002099003|56012099003;
x-microsoft-antispam-message-info:
 2EYD+R9mcrFfeN8GLKAUbsem2rhskaTsPY3dRBC+bZrLygloo/buD/YxY9FQXJPI7tXZpb1VJFLbTvo6XV9mcxYKQw82Gk86U+HZavj7pgRtcaTtpdNh2Zp1bIqt2x4no8c9ZF4QkBUy6j2g/RveGEjM7dxORC66K/jZxLJ9qXdKmMF+sMKn5TiBWPxAsq1uX2onjNC1UMETuQDVkqEjlUE6g9YQ5rlA2yYMF0PHV0Ph/9w+rkv7hNwLgy9l6j6a3/sit23zmB0dSrteYYeogZNj9Ty3uSo/r7SodEOL/9Cy0CWTcD4JcKIFqGkXab5+weCnwwGFTLf8u/gjJKurWI9dgTLWIxOxIXuK9PgEBHDk7WFOphKSjMzxLJQa22MT1kgnRzmqTOGIJwJf4KAU4wVTmNika0eYdXFAi0Rq7NcST0B/ttgvX61SHXTTOeJNf0tqJsYYmVFGIbdGbTwlqKhBkwOqVqs6kdV3i6LCNCn2pNLymsid65OAzrAhY2RhOuGKls+lIAQd3lcnWn5BP+NOenBKZtQ3YLVMDEKdbt9cC5cLX8QJo+hw/FUXdrfooUk7VotzxqTMfg4vNOXdW35FQ6L+6EDKZjo3uJJ0rozIWVhfJptoJLoZbfItOfc1Q7UEALcJ9pRoxTbWXEbGtMiY3t4+TesKWJa5INEXnemzQzUlg5+KJVlNWt1ZUrxR5GHO3i4xPaQ9HHz4E8vcrhrmcD9K5NVKB4i9+cktrwCMIwNtSJd0bUQOXZkW08jzh5H91tj1LO8msxCUZG01+O+ISLMo+kZoKcWU3OepDJg=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU5PR03MB10263.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?EAKFTXpEnk6ILP8cu/bhV26Y6pJyhlEnQl9IUR+LxUMmRdgg1wCsCRJYKW?=
 =?iso-8859-1?Q?pJXGv+qva4qZJA6EuEzNUALF34U+o3ozfv99/tM5u8xFUzuhzGe7vW6OUb?=
 =?iso-8859-1?Q?noR4eX6NUaOIuXSvfQJVJlI3NqEX5Hha/UyDQsHKPEfpySyaPychsKFm/X?=
 =?iso-8859-1?Q?ORDUyVY+jCEj5FNk8w09qjYOuGszx1V6tbBNCJT/KG2EnyN/LQKcoMhqIP?=
 =?iso-8859-1?Q?prlc59BIPNpPyBaSNSQa8HZiLFhTdXxk0/STAzB9OAntr1eKJE7Rffy0iy?=
 =?iso-8859-1?Q?8T3MJb336rBlCuWcfGb8j3rmSNLPxsXrf3HnNcBSgkPXaNDglAlNOUkEEk?=
 =?iso-8859-1?Q?vaLJIwHIjtoVMHOMG8k1nptWQi/wDYAESU4iN5/iKkv8b+1jA/If56cofj?=
 =?iso-8859-1?Q?5iAKJAWES8E9Qi1ZvnYhS8Y+HVrx1lyZAqGKGuIhiY98IMlPPyFC04iBa6?=
 =?iso-8859-1?Q?wRKvJ0aYNg1TWp6+MB4oboLgylYCLLKT6auYYejVqUz5zzXAhM3SqnUbrJ?=
 =?iso-8859-1?Q?JNwY2HmcCbD/IYPg3DCVHPhbJI15fsE28q+7jzlQBqgrOefPM8E1heyLtJ?=
 =?iso-8859-1?Q?NgPxTdYPD5nlpLrUi8UkB+5vlLsA11t3eni5ikcs/ArSsTa5bfDFRHCWW9?=
 =?iso-8859-1?Q?Ojal94vG2ZFUDpm8kaNL5rs0kcj/79UAS/N+Wq+pqaLqp1NFJ0Qk/MrwdM?=
 =?iso-8859-1?Q?Why16J2K7doIUYUIjwpJn8HWY0GTk2EmYkFjZWWXuyEAj8ObtLRhZsLe3f?=
 =?iso-8859-1?Q?944uX+9E5rcIhfdo+Hll1GtMbZaDLolze+xbnYCLLy6I4z7ssLrLM2m+4R?=
 =?iso-8859-1?Q?bKNzkPOGoF18AXwArH12jh9h+8GCx1NLz7zz+oAG/TMlinKi9WGscMk7vy?=
 =?iso-8859-1?Q?SEzlya7gbVdRA+K5Eu/V6UxhIWDzpMx/WmHhe+JZ77/BQbAlWPWa9vTp0g?=
 =?iso-8859-1?Q?HFAnKK0slClsS8aV3k+7O4o/uQQSlp90qu6MYKUE6LQaQzRlRGhx7+fFED?=
 =?iso-8859-1?Q?kWaIcI+g6R4+luTBwTSomYtN2A2Kita66ZyER7koBfLlsciP43ABN3pFkt?=
 =?iso-8859-1?Q?xHXJ69YEDM0kTN+B9+fgzbT3JWwcOd7u/8+ghydy4xPnZUej3TWXcEX1BU?=
 =?iso-8859-1?Q?XDZN9JZgc81sRkPJFlJ9T0T0gjJ7leLzDSrz9+4Sa6qm7on/ZeRCfl/iOf?=
 =?iso-8859-1?Q?5rMYOGWSDX+UzXMMVJwlRuDcs2EZn9pqmQJXLa36q/1vJlSKp+7kWgxEWy?=
 =?iso-8859-1?Q?f+G8mx8mzBClRiFZ2ufBvHnhWcr0v4qsi259lM3SRFL78EjQyDtFLwXZb7?=
 =?iso-8859-1?Q?26DNmt3RViZEuG1gk8xEJELvRmsGY1Pn6lYVOHzXjjmhvs8R46avR6EcuM?=
 =?iso-8859-1?Q?ctsquqgUgizzwKafq9EVGq+YdfYILXInPWhHKAuoLMeEq+HB3uSTeW62uU?=
 =?iso-8859-1?Q?B9Vaurzrkx4dfV1I5mGARP8q08wG6FJU4sZ2Xu461Epx4XxWWq+qJ91X7F?=
 =?iso-8859-1?Q?Gp2a65zn70PHrZDY+eXUr2H668VXRWVZGAdqn6ggZPUwbUozKJs9ctrdx5?=
 =?iso-8859-1?Q?aPdbpaSrVxUQk4zu/YDyNbyrRUSeCXsPHFd/Qdc4IQfocnMhydCbWCn+Xd?=
 =?iso-8859-1?Q?mOIOmyMD3EOkR/yyNTeOmqAVV/DRP02R7+5AyZlilfcphbx7e2ue/xM9Rt?=
 =?iso-8859-1?Q?NiLy73uq8NYtd2SDxdgW3PqYQd6UNXT9bHNYd+I8D5T5ncnw5h4DHRlK2B?=
 =?iso-8859-1?Q?OC3MDR+7e/QMdu+R0KmGg/jQPxtbAGm61zwVkg6ggDLDEpOEpVDNQtRgIJ?=
 =?iso-8859-1?Q?SP8o4kl9UI4Xc4cp874BMkO1Daz5zic=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DU5PR03MB10263.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7b72d2e6-5f5e-457d-d7c6-08de8a829e08
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Mar 2026 15:24:33.4341
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: qGv2PxfLjNAri2iJZhVc8t7fUIphN5h3cvaHDnl5s6LM7pi0f8t/HNh/QWliJDOsLrVlXoQZK/VNEW1eAgJpP87n5Au/mp6iGSWjnstoknk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR03MB8748
X-purgate-ID: tlsNG-33051d/1774452277-EB28772C-2C90C4A9/0/0
X-purgate-type: clean
X-purgate-size: 3332

The RTDS domain-wide XEN_DOMCTL_SCHEDOP_putinfo path only checks for
zero values before applying period and budget to all vCPUs in the
domain.

This is weaker than the per-vCPU XEN_DOMCTL_SCHEDOP_putvcpuinfo path,
which already rejects values below the minimum, above the maximum, and
cases where budget exceeds period.

Use the same validation rules for putinfo as for putvcpuinfo, so
invalid domain-wide updates are rejected with -EINVAL instead of being
applied inconsistently.

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

Changes in v2:
- introduce rt_validate_params helper function to check period and budget

 xen/common/sched/rt.c | 37 ++++++++++++++++++++++++-------------
 1 file changed, 24 insertions(+), 13 deletions(-)

diff --git a/xen/common/sched/rt.c b/xen/common/sched/rt.c
index 7b1f64a779..645b091de7 100644
--- a/xen/common/sched/rt.c
+++ b/xen/common/sched/rt.c
@@ -1362,6 +1362,20 @@ out:
     unit_schedule_unlock_irq(lock, unit);
 }
=20
+static int
+rt_validate_params(uint32_t period_us, uint32_t budget_us,
+                   s_time_t *period, s_time_t *budget)
+{
+    *period =3D MICROSECS(period_us);
+    *budget =3D MICROSECS(budget_us);
+
+    if ( *period > RTDS_MAX_PERIOD || *budget < RTDS_MIN_BUDGET ||
+         *budget > *period || *period < RTDS_MIN_PERIOD )
+        return -EINVAL;
+
+    return 0;
+}
+
 /*
  * set/get each unit info of each domain
  */
@@ -1388,17 +1402,17 @@ rt_dom_cntl(
         op->u.rtds.budget =3D RTDS_DEFAULT_BUDGET / MICROSECS(1);
         break;
     case XEN_DOMCTL_SCHEDOP_putinfo:
-        if ( op->u.rtds.period =3D=3D 0 || op->u.rtds.budget =3D=3D 0 )
-        {
-            rc =3D -EINVAL;
+        rc =3D rt_validate_params(op->u.rtds.period, op->u.rtds.budget,
+                                &period, &budget);
+        if ( rc )
             break;
-        }
+
         spin_lock_irqsave(&prv->lock, flags);
         for_each_sched_unit ( d, unit )
         {
             svc =3D rt_unit(unit);
-            svc->period =3D MICROSECS(op->u.rtds.period); /* transfer to n=
anosec */
-            svc->budget =3D MICROSECS(op->u.rtds.budget);
+            svc->period =3D period;
+            svc->budget =3D budget;
         }
         spin_unlock_irqrestore(&prv->lock, flags);
         break;
@@ -1440,14 +1454,11 @@ rt_dom_cntl(
             }
             else
             {
-                period =3D MICROSECS(local_sched.u.rtds.period);
-                budget =3D MICROSECS(local_sched.u.rtds.budget);
-                if ( period > RTDS_MAX_PERIOD || budget < RTDS_MIN_BUDGET =
||
-                     budget > period || period < RTDS_MIN_PERIOD )
-                {
-                    rc =3D -EINVAL;
+                rc =3D rt_validate_params(local_sched.u.rtds.period,
+                                        local_sched.u.rtds.budget,
+                                        &period, &budget);
+                if ( rc )
                     break;
-                }
=20
                 spin_lock_irqsave(&prv->lock, flags);
                 svc =3D rt_unit(d->vcpu[local_sched.vcpuid]->sched_unit);
--=20
2.43.0

base-commit: a7bf8ff218ca05eb3674fdfd2817f6cff471e96a
branch: amoi_rtds_SCHEDOP_putinfov2=


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 15:31:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 15:31:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262630.1555059 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5QCY-0004ws-Q1; Wed, 25 Mar 2026 15:31:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262630.1555059; Wed, 25 Mar 2026 15:31:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5QCY-0004wl-NA; Wed, 25 Mar 2026 15:31:22 +0000
Received: by outflank-mailman (input) for mailman id 1262630;
 Wed, 25 Mar 2026 15:31:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5QCX-0004wf-KY
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 15:31:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5QCX-00DJL7-0C
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 16:31:21 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c3ffc2-bab6-0a2a0a5309dd-0a2a4502e030-26
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:31:20 +0100
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c3ffc8-63bb-0a2a45020019-d155802acc37-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:31:20 +0100
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-48540d21f7dso58142625e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 08:31:20 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4871665647csm23434115e9.12.2026.03.25.08.31.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 08:31:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774452680; x=1775057480; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=z1PKMRpDzTliv2gbJ6J5rTaEcXgz20twQXnbHkvd9kI=;
        b=DB8TvHe7Wci/7LcGc8cn07dpOIQOewAUU1Wxf7xiYxSXdocOt9Su8HwCwXsFYSZfhF
         L4Uhsg22cAwB856RJ06X7K5pKk1ygQZqZ15KjEb2OxOMcf/MEtQUBeQtM6KGzrjN3s1M
         3xEml9cSLanneqx91NkRuYVPwXoe0pgHwguXLq6L4pP1+42Aej9VteSlGX2VtpkDapMh
         Ixh8cCrzmd0CTjoIUEReN/x6s9AwD5Jl8DYvSrDRUq0OD35z0RDsQva02KCUkJHc2lLy
         noRPUKzazPDoonG41iH2Dr3bhjazJEM6ye4zFJuHRVazX/0aMhjp+ck+rCd9AA8UDRsc
         1RKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774452680; x=1775057480;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=z1PKMRpDzTliv2gbJ6J5rTaEcXgz20twQXnbHkvd9kI=;
        b=gYatOghvZzvolOfpdXGLnZk1DeF0LLr4hNhiyT/zLwzRiX231FGqnOWAoZ33NnSU6P
         UIQMaPyS35+BOUvMN4xrEvi5nPz37bA0fQAGM8Q+f5hg3iTrvhiX35UELegKz6aMVmM9
         ZLvVEKAkX9Nb+mLNFlmVym3TLc+IRJVqdV9mz5IzC7L4y22hKS34GNg4d8JjV6rgKslt
         xIqIgUr+bBjePL8sjreivBF+3xG4Zf7u5tN1w9W/ShjBYKObUgo9NAZI/24Gik5QXORJ
         iXneLchLvqTfXKKyKqRq2memUcJafhqx4A45UKs09DCjh627HGyrplmteuOI5FYysXwR
         9x/Q==
X-Forwarded-Encrypted: i=1; AJvYcCXoUpjZS6tUJ7TE/+TgMTcfpmwm56a975jCOP9wgSLId4SHc/CaqzBZlqJeOUrTFVCsHtJOMITvCRY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxqpMHerRS4Sg3sEKFiQdydDcjG2PB34SIbmrSEYOAnW5AjdleL
	SkGrMU0VFZOj1CrRx9mGMV5HDdBKWh7b4LAJuHsGvQGM3SstvNOyFm58ert8XgiE8Q==
X-Gm-Gg: ATEYQzwduOY0VkPFkz4TBf982Rsduhu0OIE5SLTqA45L6a6WA30e/If8Wb4zuiGIyys
	4DVUF56AdsatX4d2shAqHZgx2BRCMK7w+p4oxkJGmu7Df8tYeIuuNI5IRuMNYIyn2yPQ8SnSFy4
	AxnhiuyztuTAen8VCxevn7hvBe8W9VmVMofMmm08DP59cbiYwmnf/Im/gCWFk26W9X9KIJrZ3Pi
	eaFsQvm9+ihf24YPpuNNq1dw4eQXm52NFK0uvaca65vii3DGSW6TMn3LQJekyATq94YTFgj1ay5
	tUcOGEisPh0xl3GNXdot345vNxR2psPU0yxeglt0ijr502dWGR0K54gcGe6uNeMw0LWgDNLzkVg
	XkzO/9wMra8kxctsFgljJ18QWeJL3bmN9SNkPBI9zErFcqIORmlA7oJ/UIPr6Sp8Ny50hrtEy1c
	4KgZO8UlhcPlB1ILFS99XnNPoClMkluU5K085Q4OXvUp+wJDB10VDels2FEJLsSGqwH9cAIYbef
	6VUq0hbryyrfas=
X-Received: by 2002:a05:600c:8489:b0:485:5981:1423 with SMTP id 5b1f17b1804b1-48715fbfcc0mr58747455e9.3.1774452680145;
        Wed, 25 Mar 2026 08:31:20 -0700 (PDT)
Message-ID: <3cf55d51-1bbd-41d9-89c1-5ec4e53bc6be@suse.com>
Date: Wed, 25 Mar 2026 16:31:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 3/3] x86/efi: Add opt-out mechanism for BGRT
 preservation
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, sarkarsoumyajyoti23@gmail.com,
 xen-devel@lists.xenproject.org
References: <20260324123312.11076-1-soumyajyotisarkar23@gmail.com>
 <20260324123312.11076-4-soumyajyotisarkar23@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: <20260324123312.11076-4-soumyajyotisarkar23@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1774452680-4169EDB8-C02FAEF3/0/0
X-purgate-type: clean
X-purgate-size: 1406

On 24.03.2026 13:33, Soumyajyotii Ssarkar wrote:
> --- a/xen/arch/x86/efi/efi-boot.h
> +++ b/xen/arch/x86/efi/efi-boot.h
> @@ -897,6 +897,9 @@ void __init efi_multiboot2(EFI_HANDLE ImageHandle,
>          efi_arch_edid(gop_handle);
>      }
> 
> +    if ( cmdline && get_option(cmdline, "efi=no-bgrt") )
> +        opt_bgrt_disabled = true;

Had you updated docs/misc/xen-command-line.pandoc as necessary, it likely
would have occurred to you that it's not this simple.

"efi=" already is a known top-level option. Hence for one, its parsing
function (parse_efi_param()) needs updating to not choke on finding a
"no-bgrt" sub-option. And then combinations with other sub-options will
want to be permitted, e.g. "efi=no-rs,no-bgrt".

> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -170,6 +170,7 @@ static SIMPLE_TEXT_OUTPUT_INTERFACE *__initdata StdErr;
> 
>  static UINT32 __initdata mdesc_ver;
>  static bool __initdata map_bs;
> +static bool __initdata opt_bgrt_disabled = false;

Nit: No need for the initializer (as can be seen from the other two
variables in context).

I also consider the variable name problematic. The (sub-)option is "bgrt"
with its negative form "no-bgrt". We generally aim at having opt_<name>
match (in <name>) with the corresponding command line (sub)option. IOW I
think this wants to be opt_bgrt, initialized to true.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 15:32:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 15:32:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262643.1555068 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5QDn-0005VO-5f; Wed, 25 Mar 2026 15:32:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262643.1555068; Wed, 25 Mar 2026 15: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 1w5QDn-0005VH-36; Wed, 25 Mar 2026 15:32:39 +0000
Received: by outflank-mailman (input) for mailman id 1262643;
 Wed, 25 Mar 2026 15:32:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w5QDl-0005V5-TP
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 15:32:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5QDl-005Us2-93
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 16:32:37 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c40015-e002-0a2a0a5209dd-0a2a4507a83e-2
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:32:37 +0100
Received: from [103.168.172.145] (helo=fout-a2-smtp.messagingengine.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c40012-fd74-0a2a45070019-67a8ac91e5e1-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:32:35 +0100
Received: from phl-compute-12.internal (phl-compute-12.internal [10.202.2.52])
 by mailfout.phl.internal (Postfix) with ESMTP id 70A3EEC0230;
 Wed, 25 Mar 2026 11:32:33 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Wed, 25 Mar 2026 11:32:33 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 25 Mar 2026 11:32:31 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm1 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1774452753;
	 x=1774539153; bh=bi0KmjW0NjZi8YPs0MLZpFRH/I6FhGD+iMHvjkZWXzc=; b=
	D7a2iQ+zM05W9otpFkCZzS5n/qFh0d/SZb3yi2TgWfFTaHJ9GV1Uxa6e4HN0nWpr
	IsyQNCUjxetyJzlZpxKcXRPLGNj6SdsNZ2Qn6Nec2n1cM7qqcfZ8atkL4kpdhe2V
	cgO3xjHB6SIeuJqMIYHLM6Iq8omhTRbW7j/uqpVUowsMPDfGuTVYm+0xEIgb6aQt
	+/XJ+866JnwjVcFYotCPh1RQHCWs203wZagxwWOxWOdPsiPoSnM7xeKGw+yVDykx
	rY5vKmT8Uym+OfADMWGdCLBHMnwRpoYOt9F+zBZByS47a7FMX33l2nijlZK8WHHj
	cNzFWJ7ZoMoW/ie+GEPZgA==
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=
	1774452753; x=1774539153; bh=bi0KmjW0NjZi8YPs0MLZpFRH/I6FhGD+iMH
	vjkZWXzc=; b=jTcqzRzS7/uHiV38QuXZY8kNvbvuLQO/XwPyM5M+eX32ymdSF3V
	0ds7+WXqvPVjHpBgSFDzuMHP49HW2smLVWs836SPvxX+AJX2fsyN6l/EPrjn3y0G
	yezm8jnHDyhjj6rvvWppMgULgPtGi+IUjVo9p6mAoAk1D9WUL+jA9WDW0DvjWB2s
	CDE1UpoZ2u3Sill5DsfY8OzKWAy10XO6RE/ero+KZVHPIWPbZSqvmBJ42sSL7rLc
	IYa0QLsPulNKGMExr1QUr3pujVA7aScCuQkLLQhyeIx/tISMjRvJ4LjoYtMF7Z51
	EPGTyaLi7QSe+9m+MItBC2faBNzIOpaO/5w==
X-ME-Sender: <xms:EADEaaOevVHIgsFnqb2zU0NeIH8KMRBVhI18m2Hj-qEY96IIcRhScQ>
    <xme:EADEaWjZyq0whSwq7WZRqXH517Lf0VKUQOTN0nIHw60Ccg6bojnrIu02eAb_fay7_
    fawmXXpxZPCB8CINP_kEVDC5DxsekTHSPgV4KMtHVsYsmYteg>
X-ME-Received: <xmr:EADEaXtvQWl6xVTIUyD2Om70uDur2_IGOIHPCJ8B-F8VJ-dJOWXhNVCfEyohY4SG8ElRHyfvVRpWyq8V8ZPQr-3YjN_ZeySm9zM>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdefvdegkeefucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepjedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtgho
    mhdprhgtphhtthhopehsohhumhihrghjhihothhishgrrhhkrghrvdefsehgmhgrihhlrd
    gtohhmpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtgho
    mhdprhgtphhtthhopeguphhsmhhithhhsegrphgvrhhtuhhsshholhhuthhiohhnshdrtg
    homhdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphht
    thhopehsrghrkhgrrhhsohhumhihrghjhihothhivdefsehgmhgrihhlrdgtohhmpdhrtg
    hpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhg
X-ME-Proxy: <xmx:EADEacTNHVKpRiJGZyv0lVKM319V2OrisZeEnp0QplTbyesVJaQ2eg>
    <xmx:EADEaT0UjLiiz_6g2fm0ducEYQ5gNR4FMdFOZ2rt6S16KApINGPHDw>
    <xmx:EADEaZvH6W9T1Sz8oinmgXsCrsP-Lg38ZvX1kgAkJtaJD73AQiIxPA>
    <xmx:EADEaRg6LKs5vIdIL9SweW14ad3LCENQuvR6V0HmRXmJaMHktXrMjQ>
    <xmx:EQDEab6oouuimYr9L8biqHaDDfxEr7QSbMY7N__y6oekIjmhgBPMMT1F>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 25 Mar 2026 16:32:29 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	sarkarsoumyajyoti23@gmail.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v5 2/3] x86/acpi: Integrate BGRT preservation with status
 reporting
Message-ID: <acQADhcNzkVBm3C3@mail-itl>
References: <20260324123312.11076-1-soumyajyotisarkar23@gmail.com>
 <20260324123312.11076-3-soumyajyotisarkar23@gmail.com>
 <751e1d3e-d95a-4129-8baa-450a53d15efa@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="ZBEFYMWGX+DlEeZ/"
Content-Disposition: inline
In-Reply-To: <751e1d3e-d95a-4129-8baa-450a53d15efa@suse.com>
X-purgate-ID: tlsNG-ef75cf/1774452755-578A4303-8DB9859E/0/0
X-purgate-type: clean
X-purgate-size: 3678


--ZBEFYMWGX+DlEeZ/
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 25 Mar 2026 16:32:29 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	sarkarsoumyajyoti23@gmail.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v5 2/3] x86/acpi: Integrate BGRT preservation with status
 reporting

On Wed, Mar 25, 2026 at 04:16:25PM +0100, Jan Beulich wrote:
> On 24.03.2026 13:33, Soumyajyotii Ssarkar wrote:
> > @@ -327,6 +328,11 @@ static int __init cf_check acpi_parse_hpet(struct =
acpi_table_header *table)
> >  	return 0;
> >  }
> >=20
> > +/*
> > + * Invalidate BGRT if image is in conventional RAM (preservation faile=
d).
> > + * If preservation succeeded, image is in EfiACPIReclaimMemory, which
> > + * won't match RAM_TYPE_CONVENTIONAL check, so table remains valid.
> > + */
> >  static int __init cf_check acpi_invalidate_bgrt(struct acpi_table_head=
er *table)
> >  {
> >  	struct acpi_table_bgrt *bgrt_tbl =3D
> > @@ -754,5 +760,7 @@ int __init acpi_boot_init(void)
> >=20
> >  	acpi_table_parse(ACPI_SIG_BGRT, acpi_invalidate_bgrt);
> >=20
> > +	efi_bgrt_status_info();
> > +
> >  	return 0;
> >  }
>=20
> Does this really need doing from here? If you called it ...
>=20
> > --- a/xen/common/efi/boot.c
> > +++ b/xen/common/efi/boot.c
> > @@ -1911,6 +1911,22 @@ static bool __init cf_check rt_range_valid(unsig=
ned long smfn, unsigned long emf
> >      return true;
> >  }
> >=20
> > +void __init efi_bgrt_status_info(void)
> > +{
> > +    if ( !efi_enabled(EFI_BOOT) )
> > +        return;
> > +
> > +    if ( bgrt_info.preserved )
> > +    {
> > +        printk(XENLOG_INFO "EFI: BGRT image preserved: %lu KB\n",
> > +               bgrt_info.size / 1024);
> > +        printk(XENLOG_INFO "EFI: BGRT relocated from %p to %p\n",
> > +               bgrt_info.old_addr, bgrt_info.new_addr);
> > +    }
> > +    else if ( bgrt_info.failure_reason[0] )
> > +        printk(XENLOG_WARNING "EFI: BGRT preservation failed: %s\n",
> > +               bgrt_info.failure_reason);
> > +}
> >=20
> >  void __init efi_init_memory(void)
> >  {
>=20
> ... out of this function, it could be static and no stub (misplaced in
> the earlier patch) would be needed either.

It was here before, and I complained about it, because it printed the
invalidation reason way later than the actual invalidation.

> Furthermore, is the EFI_BOOT check really needed? Without taking either
> of the EFI boot paths, neither bgrt_info.preserved nor
> bgrt_info.failure_reason[0] would have been altered from their initial
> values.
>=20
> Jan

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

--ZBEFYMWGX+DlEeZ/
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmnEAA4ACgkQ24/THMrX
1ywjXAf/U3cDCgX6UIk/F81aZu5KdGwE4xEeIb9MvH1RT/37z+7h6bQOwM6ip6bb
vzZgFXseF+Hb6vnCo65ZDeleBVnehDFGxtsPfVFtiZPOdKtuuncPHQMD12f5Rq/8
KnjFIEG7ZLdseQPdIS4OfDuZvyQtObfldW9SdYNJpSWGV9tWlR7xvKCRiLEYRrlv
PKtRBTmLIjbzkg6SiY+1O3yfvegrD1idNqmUzWCDjvRAIZcECRsul1r4z2v3gC6W
EjxMAgFK8uteM2hpV1ST0LEEyL3npysVKajcrkFK13DWLcPUSQYsoSiFb2bwQVVd
WqBYVWBR0/JaAlfy2UbTPysC7eTBoQ==
=oI9H
-----END PGP SIGNATURE-----

--ZBEFYMWGX+DlEeZ/--


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 15:33:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 15:33:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262647.1555078 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5QEA-0005sv-Cj; Wed, 25 Mar 2026 15:33:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262647.1555078; Wed, 25 Mar 2026 15:33:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5QEA-0005so-AB; Wed, 25 Mar 2026 15:33:02 +0000
Received: by outflank-mailman (input) for mailman id 1262647;
 Wed, 25 Mar 2026 15:33:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5QE9-0005sG-Es
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 15:33:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5QE8-00EwGl-Qx
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 16:33:00 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c4001a-2eae-0a2a0a5409dd-0a2a450bada4-40
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:33:00 +0100
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c4002c-ef63-0a2a450b0019-d155802de9f5-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:33:00 +0100
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-486fba7ce4cso25829465e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 08:33:00 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487166064fasm24974355e9.7.2026.03.25.08.32.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 08:32:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774452780; x=1775057580; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HLYlgYBKLFRnwkXnkX7u1E2r2oZ3laV5P0pZmrN32dU=;
        b=BI7xP61plQHprZDXm8L9FMuTv519zs1tycxQ1Ge4utQCaXBnhAx5QtZxYT1fqQOI/E
         3SYFgw4NBpNQ9dLD37NsGpS74l0C/sBAn3DADt5cskITzumLkQtGQqP8h6NdqeSqE3Hs
         iooMIGQGLQYPRFRNmA4eJB9JowZT84wSl5e87u/btCPSKvShFdOoBHpRaX34v1B/AC9v
         xeA17THESxoEgEAiOqlb+qhHmguo98k85S5PKI5FA1+Ys+xer4MJFTr9IN4pHEkLz09w
         GX1YRR3kvnzmYLOBF9P4PA46zg2MWShh7itBaEIdJYkE5WafuHqBk9vc7b7e3YpliljC
         DKGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774452780; x=1775057580;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HLYlgYBKLFRnwkXnkX7u1E2r2oZ3laV5P0pZmrN32dU=;
        b=bZIUWChtqIVmvLbl+02kW0PZ5UHgNsQPLm/BEXW7kaaOBfH7JmUKmghCq7ajx5PYp6
         xcPJ79JtGbR/jJDaLNbE6OeK7iVojmS/BnMhJVJSYMuhKgLPTZay8h5+8YbRim7ZBhXx
         JWRhX5AqdvnJCpkwagkCEzZFrMFf9GprnzzOJTUMvz5FswhAIsbLvSCJzOMyCsws1CXm
         +OqsDGG8QXC1NeHiBO6GkXE4+NVcjnbpZ6aBmMTsk5EkAzcZW6WowMW471IvrMylfW/8
         By58Q0NI6B3NrjQSCzitYIj6oIFNt65i2613ryowqV7COBPueVcCIScgIfDkPajqknqP
         jrDQ==
X-Forwarded-Encrypted: i=1; AJvYcCVwKiiuIsRpUKLO9mcVv878kHaQAjNIRcWX6Ryqhnq4f3a3EZIuYzHklTWEg53riKb698K0/guPhdA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyB9kZyTbzMZKw3LNrp0+TTNrAWXM9FUpCDrqjdEIncwptmUfwq
	/IoqAWcxMfOgZARxvJHXDlz3fJEd/M0JAZStbgz5OaUvsetRc1sorVaAFTfuJs44Ig==
X-Gm-Gg: ATEYQzzGmjTUlLSv2XQMUKaNOieDAn/Uri2i8ctxVzYmD7p5BaYYI2Dxe0M++eOoh/F
	lNFwMdbLoGjQAEfCTe2NroBXMHxIES1iu05kduQm/oe/JglbAPpWy55rivilSZxKCsqo6GTuYB8
	JRhUm77w75oBjYDpaFnvDa7bfNYk4H2JT8VCZ3msqO0sONQM44AHV3ZaL1sdC6QVcpR8SMyghNt
	YOWdcUoEURJMITXKdgsCOlJvXx+Ply339aRN1xCg12tGIv5B3oWEIKd2L+IkCOJcCUwcD+qN7rs
	aXpQuFyiOewvf8sTqRokh2t7MCOMjHXxP+3MJfwAGXdzDX+rkKIeJ6cUhZ8zMfH0pzSvYI7e2kS
	3lhr1uAncHXBP4C5BFaul3sNLLG7liu0uqPHhK2s9TvWQtY1u4XDZcd7GGQ6FwALLul4yobErcs
	5VHLbIbMhRaG8f1mqsyWkjTqM6iwvg2fCq9dfMFU3Z+u7hMTVHUUfVqdr5BTy5NE9Uz9DvidKZv
	p68Gg1RlPcOjI0NGjy6T8+AOQ==
X-Received: by 2002:a05:600c:154a:b0:485:3b00:f939 with SMTP id 5b1f17b1804b1-48715fd617dmr65148585e9.8.1774452779573;
        Wed, 25 Mar 2026 08:32:59 -0700 (PDT)
Message-ID: <48fb6a91-6515-4526-a46b-712325221a87@suse.com>
Date: Wed, 25 Mar 2026 16:32:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] x86/efi: Add BGRT image preservation
 infrastructure
To: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, sarkarsoumyajyoti23@gmail.com,
 xen-devel@lists.xenproject.org
References: <20260324123312.11076-1-soumyajyotisarkar23@gmail.com>
 <20260324123312.11076-2-soumyajyotisarkar23@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: <20260324123312.11076-2-soumyajyotisarkar23@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-42698a/1774452780-986BE112-5BD0683F/0/0
X-purgate-type: clean
X-purgate-size: 1089

On 24.03.2026 13:33, Soumyajyotii Ssarkar wrote:
> @@ -747,6 +751,133 @@ static void __init efi_relocate_esrt(EFI_SYSTEM_TABLE *SystemTable)
>      efi_bs->FreePool(memory_map);
>  }
> 
> +typedef struct {
> +    UINT16 signature;
> +    UINT32 file_size;
> +    UINT16 reserved[2];
> +    UINT32 data_offset;
> +} __attribute__((packed)) BMP_HEADER;
> +
> +static __initdata struct {
> +    bool preserved;
> +    const void *old_addr;
> +    const void *new_addr;
> +    UINTN size;
> +    const char *failure_reason;
> +} bgrt_info = {
> +    /* We would prefer the failure_reason to print */
> +    .failure_reason = "",
> +};

Noticed only while looking at patch 3: With this initializer, ...

> +static void __init efi_preserve_bgrt_img(void)
> +{
> +    struct acpi_table_bgrt *bgrt;
> +    const BMP_HEADER *bmp;
> +    const void *old_image;
> +    void *new_image;
> +    UINTN image_size;
> +    EFI_STATUS status;
> +    UINT8 checksum;
> +    unsigned int i;
> +
> +    bgrt_info.preserved = false;

... why would this be needed?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 15:44:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 15:44:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262666.1555087 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5QP7-00085v-AL; Wed, 25 Mar 2026 15:44:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262666.1555087; Wed, 25 Mar 2026 15:44:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5QP7-00085o-7a; Wed, 25 Mar 2026 15:44:21 +0000
Received: by outflank-mailman (input) for mailman id 1262666;
 Wed, 25 Mar 2026 15:44:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5QP5-00085i-Vn
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 15:44:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5QP5-00HHu8-7z
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 16:44:19 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c402c9-5cb7-0a2a0a5109dd-0a2a450aafe0-28
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:44:18 +0100
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c402d2-1772-0a2a450a0019-d1558030ccd2-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:44:18 +0100
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-48540d21f7dso36245e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 08:44:18 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b919cf1c4sm566552f8f.23.2026.03.25.08.44.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 08:44:17 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774453458; x=1775058258; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KAXkFHitePAjIh78QIydTDK9P765JV4CvSKwPMwQLgI=;
        b=UOPaz+mg2br8JwegKLGF9v5a88P0uO8JxBziXoTxKq5EMS4Oe7++/+0Qh9LMf7uqdi
         NKVO2jinToZ06S13gLthE9KFDmWSxG4plimM8lcW0PeOfjC95AhWy2A1r9y5inFLLov0
         clxwm9F62fFyIidiCee9ep4vjtl96Y2Mbl9W0Dsf492J0wFbQQU+3ZUH/1eB1XNf3oIl
         gsqdexys3d3RFhdJEPY/rlT+ctVMSUkNS8KwJUiivr23q6Npc0ga54CRrVlSt3b47W0a
         B6ZWhorwG5c0iYH3OZWfClTgHwzzY5hSy6qAkVvzgTYYWIKtDr5hFwaYkmV17DSFkbqK
         nz1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774453458; x=1775058258;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KAXkFHitePAjIh78QIydTDK9P765JV4CvSKwPMwQLgI=;
        b=k/HlS2bw2yuwhMEy1Jwu89NcN0TluXYbH8zIzpDBjn4Ga5sgT/2Fh3cL4Za+j4x2Kg
         8+GhU+CzIlbVF8Z2QP92D4kfvPgD3aN5583qxt5b7UM/12PV23FpBm5ohIMhWUB1/nNj
         XygHtuLDpT7wGgZtauEzNv3e9E8Sx09X/IlWf5x1yEBKVQ81xRVwfb5pPAR8+ncY7w/Y
         Qp5Hx/EjOvX7ctLjFXDnzAqNt2CvLmkOLfZepvZY64aQYk0QqKLb78+6c4HpqEvz/pSt
         IMpz9mU+xEsVKf3/y/zQvun0LoAVkrVW0SEbPsu6hd//LlIobHalZ5/h8ZlOtlgJipn3
         xvHA==
X-Forwarded-Encrypted: i=1; AJvYcCWFmXlPF2YsTUelimgCBkUpmqjCBnq0Dllb1wU+KuCUBmED0eI//+wORb1rgzKWdUqtRgTj+PVr8RM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwWn7M5MahSAlDalMyUUIyHLM3CvuXwgliLsSj6zJNYkEhgSwP4
	1HI98wA1rHiJT0xF63UzL919Bu+YEOlKvZvCohwWvXoL9RaEhsUB613dCi0D8wMTTw==
X-Gm-Gg: ATEYQzwn/Idy3cEG+s4NvF1QJ/MkUFAMphiFIAumobYZ40ILP2AIBCUK1P+UQVpj3kp
	7GmsVtfrfYQX4eqygwTgblzEny4K/C7XFphIf8MfVlIYuZnwgVWgOzn8RmTVVdrSqzsmCMcdvyE
	aj7jhO1Yw0mv10htzTE2cqo7QyWMw2H3p3mNtgx2AXt1gsvLt3wSOV0V57WuOpBA+s9U2FnovAJ
	2xF6ur3YP0ZtXljS1j1mtpNDdIlKy3cHKLTrishAp21T307C/PJFZEx7owUCSUNOc1im8OF0M6j
	hJk+Rydj67C5sv3VvPLNZitVBi8L/qCudFpWFGsh2sUvjb2DHnxcOHOPb9dJd9UPdDLbMivttRQ
	zUmhlCoGn+OiZhD16wkrM2MjfEy8S6kxTeC1WNRoFrliU7sLIu8Jrk4rm91Uy6j6ap6zxdOkGbu
	TiukXsbl75v/fsxLGGp+r7bViL2kCqF8yD6ec3+gQIHDukDYWP+aXiE1JhZrVKHScKBdFt0NdwO
	q7MRpZimnhV3fAvOkx7lvZmGg==
X-Received: by 2002:a05:600c:c4a4:b0:485:1878:7b8c with SMTP id 5b1f17b1804b1-48716056512mr55924185e9.18.1774453458218;
        Wed, 25 Mar 2026 08:44:18 -0700 (PDT)
Message-ID: <5e121a98-fcd1-4d20-aa6c-a02af7f7eef4@suse.com>
Date: Wed, 25 Mar 2026 16:44:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 2/3] x86/acpi: Integrate BGRT preservation with status
 reporting
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 sarkarsoumyajyoti23@gmail.com, xen-devel@lists.xenproject.org
References: <20260324123312.11076-1-soumyajyotisarkar23@gmail.com>
 <20260324123312.11076-3-soumyajyotisarkar23@gmail.com>
 <751e1d3e-d95a-4129-8baa-450a53d15efa@suse.com> <acQADhcNzkVBm3C3@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: <acQADhcNzkVBm3C3@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1774453458-51488900-E3EBB464/0/0
X-purgate-type: clean
X-purgate-size: 2245

On 25.03.2026 16:32, Marek Marczykowski-Górecki wrote:
> On Wed, Mar 25, 2026 at 04:16:25PM +0100, Jan Beulich wrote:
>> On 24.03.2026 13:33, Soumyajyotii Ssarkar wrote:
>>> @@ -327,6 +328,11 @@ static int __init cf_check acpi_parse_hpet(struct acpi_table_header *table)
>>>  	return 0;
>>>  }
>>>
>>> +/*
>>> + * Invalidate BGRT if image is in conventional RAM (preservation failed).
>>> + * If preservation succeeded, image is in EfiACPIReclaimMemory, which
>>> + * won't match RAM_TYPE_CONVENTIONAL check, so table remains valid.
>>> + */
>>>  static int __init cf_check acpi_invalidate_bgrt(struct acpi_table_header *table)
>>>  {
>>>  	struct acpi_table_bgrt *bgrt_tbl =
>>> @@ -754,5 +760,7 @@ int __init acpi_boot_init(void)
>>>
>>>  	acpi_table_parse(ACPI_SIG_BGRT, acpi_invalidate_bgrt);
>>>
>>> +	efi_bgrt_status_info();
>>> +
>>>  	return 0;
>>>  }
>>
>> Does this really need doing from here? If you called it ...
>>
>>> --- a/xen/common/efi/boot.c
>>> +++ b/xen/common/efi/boot.c
>>> @@ -1911,6 +1911,22 @@ static bool __init cf_check rt_range_valid(unsigned long smfn, unsigned long emf
>>>      return true;
>>>  }
>>>
>>> +void __init efi_bgrt_status_info(void)
>>> +{
>>> +    if ( !efi_enabled(EFI_BOOT) )
>>> +        return;
>>> +
>>> +    if ( bgrt_info.preserved )
>>> +    {
>>> +        printk(XENLOG_INFO "EFI: BGRT image preserved: %lu KB\n",
>>> +               bgrt_info.size / 1024);
>>> +        printk(XENLOG_INFO "EFI: BGRT relocated from %p to %p\n",
>>> +               bgrt_info.old_addr, bgrt_info.new_addr);
>>> +    }
>>> +    else if ( bgrt_info.failure_reason[0] )
>>> +        printk(XENLOG_WARNING "EFI: BGRT preservation failed: %s\n",
>>> +               bgrt_info.failure_reason);
>>> +}
>>>
>>>  void __init efi_init_memory(void)
>>>  {
>>
>> ... out of this function, it could be static and no stub (misplaced in
>> the earlier patch) would be needed either.
> 
> It was here before, and I complained about it, because it printed the
> invalidation reason way later than the actual invalidation.

Sadly now I complain about this call out of acpi_boot_init(). What's wrong
with logging the BGRT stuff together with the memory map?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 15:45:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 15:45:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262674.1555096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5QQD-000097-K5; Wed, 25 Mar 2026 15:45:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262674.1555096; Wed, 25 Mar 2026 15:45:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5QQD-000090-HK; Wed, 25 Mar 2026 15:45:29 +0000
Received: by outflank-mailman (input) for mailman id 1262674;
 Wed, 25 Mar 2026 15:45:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w5QQB-00008q-VP
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 15:45:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5QQB-00Eyv7-BH
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 16:45:27 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c4030e-e002-0a2a0a5209dd-0a2a450cbc1c-18
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:45:27 +0100
Received: from [40.93.196.15]
 (helo=SA9PR02CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c40314-f93d-0a2a450c0019-285dc40f2f01-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:45:27 +0100
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ2PR03MB7356.namprd03.prod.outlook.com (2603:10b6:a03:55c::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Wed, 25 Mar
 2026 15:45:17 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026
 15:45:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yUttoXpksp6qJa6osLtVUTMnfGespKX7rnS9x3dzFWhiemaJZCcAq1NQyUzucT+d8uaitC4xSudX3f2jnvciQ6jE19NC7VEnd32DRh6FW93CLPyv88md8JHbe+t2mFfhZNnWr1TN+CPSo1o2kiYiCKj6J5OW4Cuk/cWRJROuElnlBUB4x3/ntL0wRehbMCj+xnOmla1Vz8aM+TZf9S8zKcJEC1DptZLNNFwdloqbVjKAtvvpHr9SWyxyuao2opTOzUJOL1mswFJ+PwDrLkeglYpZ1+GIzZuvVgtgLBagessXMJiJ2CsdSBGbpnLkSTJpJh8cQqMvQfjjRNeqTvmjtA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gc2QDuvsxN8t5/jIo64cdy98ZNZAYdRd08s7dNyjEXQ=;
 b=KLnwJ7dukECD6lsTWHvsWPU1Rdj0QARc6Dr8A6477ca6hekQskt+hlFe8+NPlhyktFX3l1dS41wWEFMoWsse8oF1Qfgba0HZfn6l5y3542GAjsuq09qwQ6KAM3rNPtKME3vvlE3RvS+DDcwZ2XFxSErGgwNZuDbb480FLDlIyTungbRrqjIkBLQ87GbKM3FEnIoHSBN36ySfQn4Ghk728ZWjIul2H/RwoJSupmEnpVWVC43oZankXKG3Ext6x9ZpO4xftgsKxbk1s9vXwd59BERbmMhK94Gmcr7KKA0pwpYvgWTiWYSjQMnwk0J8Uz+1icOamJZCSocRe/v6sHRX9w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gc2QDuvsxN8t5/jIo64cdy98ZNZAYdRd08s7dNyjEXQ=;
 b=H0ApaMYNclEc9Y7ZfGqvF6AbZV+WUSb+xlNHwXhFmWOPmcEH2DcyP34o4or4OvEC0Oj248YGlAFOjU74MtozD8xX+mHTHVVujU0loEECZJp1ichjxm9cpZBaeCzntqdJjJ+2QyDnnnSNY/v91fvjkHs96La8X5k1q7L9kEOMJYM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d37e995a-332d-4917-aa42-15a5fec2d960@citrix.com>
Date: Wed, 25 Mar 2026 15:45:13 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 Juergen Gross <jgross@suse.com>, Meng Xu <mengxu@cis.upenn.edu>
Subject: Re: [PATCH v2] xen/sched: validate RTDS putinfo period and budget
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <c629e66ebf05d620423babf1e4e98866c1f75357.1774452210.git.oleksii_moisieiev@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <c629e66ebf05d620423babf1e4e98866c1f75357.1774452210.git.oleksii_moisieiev@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0201.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a5::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_|SJ2PR03MB7356:EE_
X-MS-Office365-Filtering-Correlation-Id: 2871fdb6-8b9b-48b8-bcf2-08de8a858365
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|56012099003|7053199007|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	WrMX+epEsQslVC6HoT2UgCL/3+Nz48CHfcecd0n91276c0kjwLT/pv2EvsgoX2fMSH+9t5NRew7QdmysbeMUn/CrIbZOXjKXrq8hw0qIJomz6NqvqgReXY3SkkUs7arjFmv3QvFWcpQA03l7qQo3hTi1vqdWLfaBxvX3pYWHIOWMqOaheSeBHMqMhVS1fh6L7graaUfPzoZxQOSFbvTUucoO0HTAdzFhsRq12QhSrNQra/zytXC6ZgpNzWvv/5hLXMj1x5y9qiPlHx8Vp/PxKqI37Og2nJVb0SHg+eJsI24bJt93hyPpFqsJ8lGAlYmjrf26jPUQu9L5clHkteHjegDO6sB1vHIqjNpOK0c0I1w6Ps9BJdJ5KUkUG4zoY30DWUe9puio14x4tm+4Yq4YeRUCLrL9g4wgGNIlfAesZ/MHuTBUvfLYaUGRD78E9XJYiwpjUWy1Lz8oLaypsT8UYrO5wuouggcbBcfKVKhRkX6PfT4GiUpVzl7TPY5I8H/Ze5xztImlRrpK1NEJVA7ikpb2Jeq4Mt16De+lbfjDciMhZn6oUPpAYfhnxI9AY699/phDwZ8mcaHOMacxW0f4mMEqrrQT1mnU/NOFPAsgYeP5uTxDcnYwpgEtJgyq0mGtspeiaSXETPjg+YJKoKlzR9A03xBYGV7VIuAYPAyM19dhnc+U/BzCH8T5bSrCvUVO
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(56012099003)(7053199007)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MjQxbHY5dnhTNE1RaXFtWHgzSUUxODJOL1dUdmRieTU2eXBFTWc2UHRUdy9h?=
 =?utf-8?B?ZWJEQjU3RG83ZzFSbXJtMnNQQ1pGT0dhamdkY1hKSWxtU3Y5VjVZK1hZQzhU?=
 =?utf-8?B?NUlWK29wR21FdVJmQ1E2Q0hERDRNbmthQ3RkcE9vWkZmWkxFTHc2UU9hRElQ?=
 =?utf-8?B?S3NXbXVrbVNvSThxZHBGM0k1ZnJwUUNzRGhIempoZjF4Ky9tenVrVlZCZjVm?=
 =?utf-8?B?TDRtTUx3TDYwQ0gveHBBRWhRK3VkeWpoUmZudFZ3b296MXBzQ2xPZFJpWW9a?=
 =?utf-8?B?MTRlUGZnaHlNeEk1SW9Fc1p6SWdwT01wSktEZ21xamVoQ0RJTHR1Q1ZyaWoy?=
 =?utf-8?B?S0p4TmQ5YWRYc083alYrRWlpRU5nUmNYeTYxck9XZVdoWDZraFFvNkJhZlhw?=
 =?utf-8?B?ajdKV0gwMDNBUTgrK0R3ejd0TitmM1dzZGgwanhYS2RrQW5xcy9JT2tiNWwx?=
 =?utf-8?B?ak82YkxxMGVHWWc1Wld3QVJMLzBzR3Y3elduak5qUGlHS1Y1ZWM0MklFY3Z0?=
 =?utf-8?B?Y1FBeVgvYkh3cGhjQmo3bDR0YmV0SUtGdFQzekF2NjJKUk5JeFdhOWhjNXIw?=
 =?utf-8?B?NnFvaDY2T25PVUpsSUFrV0xWeWRMTlBKQUszWXlkVzlsSGlVdUNyTG9leXFY?=
 =?utf-8?B?MnJhSUVkUXhsR2NCdlZkUGlvQVM1bGtZR2lCSjIwL0duVEorR3JLZk82NlN3?=
 =?utf-8?B?U3hDSkthNC9PZkZDaFlBWnlXZUVhTitnTG9SaDJjU0hBNWxWcmYvY0UvaUl1?=
 =?utf-8?B?YVhsTCtQNGdDN3N4ZWROQmtMRHV6WEhSdndLT2xhY2JDa29VZXAvbUh3Y1Rl?=
 =?utf-8?B?eStYTjdRNkIwMlNTL0RxNitZWEV6dll3dU9YaGhJOXhGZ0RDY2hvOW0vTGRX?=
 =?utf-8?B?d3ByWXhpVDBMclkrbDIrL0MvdXIySlFoQXBMTWpPbElRRE9nRzBvUU1GMCtp?=
 =?utf-8?B?NFk2ZDgzY3Q3NzZ0bE1CQy9GS2xwK0Evc2JwNVJ1YkdUdVBmMWxKS2dMdXBR?=
 =?utf-8?B?Q2VyZ01od0NuWEJrMk9JeEo0NVgyK1JDOWF4VG13ZWV6UkxvQ2JLeFZLQ2Fl?=
 =?utf-8?B?RlJ5MHpFQzJBNUtYdjFxbzAzUzlSanFCYVcyMDBxR0hucVllVUdTRldFcTB5?=
 =?utf-8?B?RHhrMlFoMzQxTmVHSGlYYkFSNnJsRlJqUFZNMmtFOUlSRTVmbHRZYkFPa09x?=
 =?utf-8?B?WkhuT0FFRyt3Z2ZuNGRNYVFya3l5OFVQaU9nMHlva1AvTEd0V00zNUtNa0Jt?=
 =?utf-8?B?WmlOTWxJUDMxNXNhVEgzT3JtS2czZVlVNnVXTXczRnlNQVE0bHdueWg0WXNW?=
 =?utf-8?B?c21ZN1AwY1lOTUdIZkFMZ1c2VjAvd3htTlNaUTNOTVA0YXdHN2NkVzVWY0tT?=
 =?utf-8?B?eXFQUEpGNFAvTWVwN0JXZEZRWGsvd29uZ0RhNDRiUWJRTHNzYUs4djUxbGhn?=
 =?utf-8?B?aEo5Q280Kzhxb1hGWVY2U0VocEM5c0hIamdPZi95dzFQTnJlRWwxTFd5ZXlp?=
 =?utf-8?B?MFBuVWozUnFKTUpIcHc0T2lCbEhrYU8rNHBPL0xTRU5oRnJwaUtBd0dRcFVu?=
 =?utf-8?B?STRwaDc0RUFtSTZTN2FxUTV6bmNXbnB0Uk9yZlN1YW1qNVVaT1o5YnhWNVFJ?=
 =?utf-8?B?WGxxNmpGdjJOUFVLMSt0NkJjaUFEajZNMkhyb28weGVqUEVtTDRGcE1NU0lR?=
 =?utf-8?B?Vm1pQkpFUWh3UDZ0SzNSOGdXQ1ZDWDdERlByRkN0NDJEbVNzQndISkxkKzlj?=
 =?utf-8?B?Qy9jZk4wN2NTLzcxekdFNlF3d2ZGMXJUL2JaQmRrZ2YzUkFYSFhsMzJNVWUy?=
 =?utf-8?B?UkZBZVNsV1VKVVE5UThYVlBOTEJOSnNteHRLZnVXSzJ0bVVjZ0s3Q2NJVXBp?=
 =?utf-8?B?NU9yRFYrNkh3YTBjMDFXYVUxNGk0em1YSXF4bE5JQk9ZR3RhZUtrbFkwV3VP?=
 =?utf-8?B?eEgrSG41S1NxN2R1Q1ZQWXI5RFFXbVUvdDJ3TDFlT29uczEyeTJHMnptTkRY?=
 =?utf-8?B?WlpNQjV2UlQ3d2MvOFRYWXlnWFNXUjFCNU5WQ3pMY0Z5Y0tVaWNDLzdtc24y?=
 =?utf-8?B?d3hBOEw2a2o1eHBCbFRsdFJ5bXJzVzdzZUx4b2k5S0s1ZzlmMUNuanJsWmxB?=
 =?utf-8?B?UnJDcHM4Nk5oaUlzNnhZZndxdk4zQnlQMnU5N0VhenVlSGdVSHdaRHVRdWM3?=
 =?utf-8?B?Wld5Rldmck5oL3YyRzltcVgxaTRFOGhSUzFsQUJlSVFaUmdhWU1IRm5wSHdn?=
 =?utf-8?B?VEtqa1ByeHlHMnFxWVhGalkrL0RTYnRJMDJ1U3BOSkFNTVIvWkw0Nzd5aGpQ?=
 =?utf-8?B?aS84M2p1MEpvemhWYk42ZWNiMG1TYmdia3N4bzVsOWpKNWw0WWdpakMya1E3?=
 =?utf-8?Q?uKJO+/+wtHzc8xmY=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2871fdb6-8b9b-48b8-bcf2-08de8a858365
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 15:45:17.4519
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: bfxa0VrXsljqb+uTpcJ5LLGRl0BXGi+AE9I79pnFgajJsaEQtlsY3/f14UlbhxP2qtBp9x+UavuEjWBUijb7xZ7bP0hgkS5cCiJJgKXQ3kI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR03MB7356
X-purgate-ID: tlsNG-d25034/1774453527-6FEA3734-70A0E5A1/0/0
X-purgate-type: clean
X-purgate-size: 2202

On 25/03/2026 3:24 pm, Oleksii Moisieiev wrote:
> The RTDS domain-wide XEN_DOMCTL_SCHEDOP_putinfo path only checks for
> zero values before applying period and budget to all vCPUs in the
> domain.
>
> This is weaker than the per-vCPU XEN_DOMCTL_SCHEDOP_putvcpuinfo path,
> which already rejects values below the minimum, above the maximum, and
> cases where budget exceeds period.
>
> Use the same validation rules for putinfo as for putvcpuinfo, so
> invalid domain-wide updates are rejected with -EINVAL instead of being
> applied inconsistently.
>
> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
> ---
>
> Changes in v2:
> - introduce rt_validate_params helper function to check period and budget
>
>  xen/common/sched/rt.c | 37 ++++++++++++++++++++++++-------------
>  1 file changed, 24 insertions(+), 13 deletions(-)
>
> diff --git a/xen/common/sched/rt.c b/xen/common/sched/rt.c
> index 7b1f64a779..645b091de7 100644
> --- a/xen/common/sched/rt.c
> +++ b/xen/common/sched/rt.c
> @@ -1362,6 +1362,20 @@ out:
>      unit_schedule_unlock_irq(lock, unit);
>  }
>  
> +static int
> +rt_validate_params(uint32_t period_us, uint32_t budget_us,
> +                   s_time_t *period, s_time_t *budget)
> +{
> +    *period = MICROSECS(period_us);
> +    *budget = MICROSECS(budget_us);
> +
> +    if ( *period > RTDS_MAX_PERIOD || *budget < RTDS_MIN_BUDGET ||
> +         *budget > *period || *period < RTDS_MIN_PERIOD )
> +        return -EINVAL;
> +
> +    return 0;
> +}

Code written like this is horrible; both to read, and in terms of
generated code.  Because of potential aliasing, that's 7 distinct memory
accesses because the values cannot be cached in registers.

You'll get far better code generation by writing it more like:

{
    s_time_t p = MICROSECS(period_us);
    s_time_t b = MICROSECS(budget_us);

    if ( p > RTDS_MAX_PERIOD || ... )
        return -EINVAL;

    *period = p;
    *budget = b;

    return 0;
}

See https://godbolt.org/z/W63TY8qTW

But it would also be better still if you passed op->u.rtds into this
function rather than {period,budget}_us separately.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 15:47:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 15:47:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262688.1555104 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5QSb-0000vI-3c; Wed, 25 Mar 2026 15:47:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262688.1555104; Wed, 25 Mar 2026 15: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 1w5QSb-0000vB-14; Wed, 25 Mar 2026 15:47:57 +0000
Received: by outflank-mailman (input) for mailman id 1262688;
 Wed, 25 Mar 2026 15:47:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w5QSa-0000v5-5H
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 15:47:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5QSZ-005Y5v-HY
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 16:47:55 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c403a9-e002-0a2a0a5209dd-0a2a450acd32-10
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:47:55 +0100
Received: from [209.85.208.178] (helo=mail-lj1-f178.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c403ab-1772-0a2a450a0019-d155d0b2f198-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:47:55 +0100
Received: by mail-lj1-f178.google.com with SMTP id
 38308e7fff4ca-38be5e86918so25640351fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 08:47:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1774453674; cv=none;
        d=google.com; s=arc-20240605;
        b=XKLJZapprnbqy1h+U4D5egSIO15tkfG8vJc6aD9QkAXyrtM1oOI7nsAkMjycJzfoPU
         fJkn1RGzRd6Hcns1l9SkZaIJDFr4+BNvU+tUqg48CZ5iieJ37f3ohc85AdWysfElFUaa
         z+vGKToM8tO2wSV2m8LaOW6S3t5bjOvaSnvycUwWElXSIKoZ9mMGMs387juIbiZVDZUc
         VSM26LseT5V2bJjiQkNQlC3KOAHaDdp9TgXNiJZ8GxlBttEWf11DEQymtKSmbB1ls+wE
         oqAz8RfwkGwRfGZfVvbk1PgYWZHN3MTzXtt1OGh5QVZFQFQYDTulGHyYx6QQ/3ojUftW
         qP7Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=wAC3dqVfQvzAfd2kLmhoLQ9o/WOFwtsH7xtwSy4+Feo=;
        fh=HHRjWkdysX2ZkNpVMY4DcdwfNbPq2J2BPJfxbJK3Acs=;
        b=OdSYwgx70M4wgo9RLMKAmvrTrRbUoavgNqefGvRhUM6vOZIfEQNvI+O8Em4HWfdvXh
         qDT7RSBtu4kCBSzkwKSv1E7dEv1Hn3E9mU/qzljVIXjJXjjVIdgYY0LxzqfHod6hRE4i
         QlsUTEx1+Vot3rEPI0DoywAbfzyrbXBq6XIHLbMP6/jg5Xjw9WjxpbM1QiI7Wr1E6sHB
         l5Ux+20vCzSL5mGwxGK3LmCDhmiDqD8pzZbByAo4kUbjx0KQ2SV/NxyV0Uj6hqYa+zlw
         tm8qYpz1Rd3B9B7m9ESUKNaJ4cEZSViV5hQIQx8WpFA74wuI3uyWXL3eeMOYJNr5T8Pj
         m05g==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774453674; x=1775058474; 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=wAC3dqVfQvzAfd2kLmhoLQ9o/WOFwtsH7xtwSy4+Feo=;
        b=jDs599uW66+WvcJjMxhNuLWDA8kaLXtbMeLBXf8XMskAZF8oeUry6gBJileQ6ltcPy
         6YlP2frtLTmj0StqYCXVOdV5/JHQWg5PJ0IHKL6zJt4dEczL1sAlNSiPDD7ZJnxQelLk
         bXxAliQjf72LDmSpeGS9FiFpP+PFRjCIFdJ68dJq9TqygmqRp/pmcMX3lg+Tx8EMnQpt
         IHnJ8BqJBBAm8QA73TZroPUdbqMMAklvMhSsddi3h4pGM5V1S8Bskk2FnzQ0zdvdnY69
         /D5vdtJ0S/DZlMPMtVatCbC872UAekNR74XNGJGTKr32TtSCngHXp+Mwyyqe4dzAaOm6
         xg7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774453674; x=1775058474;
        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=wAC3dqVfQvzAfd2kLmhoLQ9o/WOFwtsH7xtwSy4+Feo=;
        b=AkhlhIGxuv9IuaWUDw06h/DMf3RVkvNQDchfK8gXUG/JgY2eaiKAYgaxkxZMUo9jqw
         gwOm75xsFm1AAO4axNgYBD41p3sG0993BWpAShjRXGkgF/TytaGri7c1MmVIf1SIL+y9
         4FBI96o6qF/1wpKcYstXI/lZ7vEP7JzrScNYRVThHKaEW5jOTYSdbzqRxV5Ttie8YRk9
         Wl3lE827yDta3BWAerqAmV33FuxJfvw6KgEVLtjk8yBBq3p4B/oDueZL1uW+RvMZC/In
         muVm7imhJn2HiY1NPWTtQoC7eDBnLck+cqqIROIRH+CiBsP6xlUK27jv2jmk8oBNAVya
         jTuw==
X-Gm-Message-State: AOJu0Ywx7Joq0AujrN3OBn5PaJCAcFT3Z9qlF3I64HHNEbDdiDVgZaSk
	UyrOMt4OuywlbjATRGW/KRjOeAd7v7kHu2Eu46Te+8WAiHPgdQjSfmJh331BuPLamS3ep747sDE
	MVxllcNsd/xQVfkZ5mJSBrrNtYw7SyPY=
X-Gm-Gg: ATEYQzzWosAdLQtf+VEiLsfvCRGFn+ZNAnQxEBMw4G85dbZT9yu/9IwZVhT59ulOBfz
	hlB+lnOJXwozzru3HS1+TJHa9WzCsdZe+0IDvoCQM9VZeHsaajZ3fDy+ZlFcHY5BHHx76sWbR7z
	0X4tyVJrPLFjhr8DUVVoTg7vQCBocfkmh8AO7Fjs+PwPrkqiOfWltNYiBtARihqsm/TscLqGDzC
	chsWkmhxisoYexX2rNt6gKIq5vbgZ2HWzoM7/fdNn9Mkv0hwoY6yggcpS6SxBwg9OZPTwe+oKWQ
	yEIZ
X-Received: by 2002:a2e:90d2:0:b0:389:e6d4:e7cb with SMTP id
 38308e7fff4ca-38c4313da9dmr11147721fa.22.1774453674110; Wed, 25 Mar 2026
 08:47:54 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1774431310.git.mykola_kvach@epam.com> <5b68fa0a8403ea60db3047f6505876bc03a41f3f.1774431310.git.mykola_kvach@epam.com>
 <87bjgcvul6.fsf@epam.com>
In-Reply-To: <87bjgcvul6.fsf@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Wed, 25 Mar 2026 17:47:43 +0200
X-Gm-Features: AQROBzBnvr8t7Gz0_HZFVSoDxw4XxCynisr9rsnzwBgu3i9XQHZjS24fTikQv2o
Message-ID: <CAGeoDV87irnVf8k+Z2L6=k41p87N9O6DpLCFdkMwErzDpXB9KA@mail.gmail.com>
Subject: Re: [PATCH 1/4] xen/arm: its: collect quirk flags and honor dma-noncoherent
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <Mykola_Kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-4011c0/1774453675-BCA83900-C48F5392/0/0
X-purgate-type: clean
X-purgate-size: 6385

Hi Volodymyr,

Thank you for the review.

On Wed, Mar 25, 2026 at 4:42=E2=80=AFPM Volodymyr Babchuk
<Volodymyr_Babchuk@epam.com> wrote:
>
> Hi Mykola,
>
> Mykola Kvach <xakep.amatop@gmail.com> writes:
>
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > Replace the per-quirk init callback with declarative flags in
> > struct its_quirk, and introduce gicv3_its_collect_quirks() to gather
> > the effective workaround flags from both the IIDR-matched quirk entry
> > and the "dma-noncoherent" device-tree property.
> >
> > This lets non-coherent platforms force non-cacheable ITS table
> > attributes even when no IIDR quirk entry matches.
> >
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> >  xen/arch/arm/gic-v3-its.c | 70 ++++++++++++++++++++++++---------------
> >  1 file changed, 43 insertions(+), 27 deletions(-)
> >
> > diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
> > index 9ba068c46f..00524b43a3 100644
> > --- a/xen/arch/arm/gic-v3-its.c
> > +++ b/xen/arch/arm/gic-v3-its.c
> > @@ -57,71 +57,87 @@ struct its_device {
> >   */
> >  struct its_quirk {
> >      const char *desc;
> > -    bool (*init)(struct host_its *hw_its);
> >      uint32_t iidr;
> >      uint32_t mask;
> > +    uint32_t flags;
> >  };
> >
> >  static uint32_t __ro_after_init its_quirk_flags;
> >
> > -static bool gicv3_its_enable_quirk_gen4(struct host_its *hw_its)
> > -{
> > -    its_quirk_flags |=3D HOST_ITS_WORKAROUND_NC_NS |
> > -        HOST_ITS_WORKAROUND_32BIT_ADDR;
> > -
> > -    return true;
> > -}
> > -
> >  static const struct its_quirk its_quirks[] =3D {
> >      {
> > -        .desc        =3D "R-Car Gen4",
> > -        .iidr        =3D 0x0201743b,
> > -        .mask        =3D 0xffffffffU,
> > -        .init        =3D gicv3_its_enable_quirk_gen4,
> > +        .desc  =3D "R-Car Gen4",
> > +        .iidr  =3D 0x0201743b,
> > +        .mask  =3D 0xffffffffU,
> > +        .flags =3D HOST_ITS_WORKAROUND_NC_NS |
> > +                 HOST_ITS_WORKAROUND_32BIT_ADDR,
> >      },
> >      {
> >          /* Sentinel. */
> >      }
> >  };
> >
> > -static struct its_quirk* gicv3_its_find_quirk(uint32_t iidr)
> > +static const struct its_quirk *gicv3_its_find_quirk(uint32_t iidr)
> >  {
> > -    const struct its_quirk *quirks =3D its_quirks;
> > +    const struct its_quirk *quirk =3D its_quirks;
> >
> > -    for ( ; quirks->desc; quirks++ )
> > +    for ( ; quirk->desc; quirk++ )
> >      {
> > -        if ( quirks->iidr =3D=3D (quirks->mask & iidr) )
> > -            return (struct its_quirk *)quirks;
> > +        if ( quirk->iidr !=3D (quirk->mask & iidr) )
> > +            continue;
> > +
> > +        return quirk;
> >      }
> >
> >      return NULL;
> >  }
> >
> > -static void gicv3_its_enable_quirks(struct host_its *hw_its)
> > +static uint32_t gicv3_its_collect_quirks(const struct host_its *hw_its=
,
> > +                                         const struct its_quirk **matc=
hed_quirk)
> >  {
> > +    const struct its_quirk *quirk;
> > +    uint32_t flags =3D 0;
> >      uint32_t iidr =3D readl_relaxed(hw_its->its_base + GITS_IIDR);
> > -    const struct its_quirk *quirk =3D gicv3_its_find_quirk(iidr);
> >
> > -    if ( quirk && quirk->init(hw_its) )
> > +    quirk =3D gicv3_its_find_quirk(iidr);
> > +    if ( quirk )
> > +        flags |=3D quirk->flags;
> > +
> > +    if ( hw_its->dt_node &&
> > +         dt_property_read_bool(hw_its->dt_node, "dma-noncoherent") )
> > +        flags |=3D HOST_ITS_WORKAROUND_NC_NS;
> > +
> > +    if ( matched_quirk )
> > +        *matched_quirk =3D quirk;
> > +
> > +    return flags;
> > +}
> > +
> > +static void gicv3_its_enable_quirks(struct host_its *hw_its)
> > +{
> > +    const struct its_quirk *quirk;
> > +
> > +    its_quirk_flags =3D gicv3_its_collect_quirks(hw_its, &quirk);
> > +
> > +    if ( quirk )
> >          printk("GICv3: enabling workaround for ITS: %s\n", quirk->desc=
);
> >  }
> >
> >  static void gicv3_its_validate_quirks(void)
> >  {
> > -    const struct its_quirk *quirk =3D NULL, *prev =3D NULL;
> > +    uint32_t quirks, prev_quirks;
> >      const struct host_its *hw_its;
> >
> >      if ( list_empty(&host_its_list) )
> >          return;
> >
> >      hw_its =3D list_first_entry(&host_its_list, struct host_its, entry=
);
> > -    prev =3D gicv3_its_find_quirk(readl_relaxed(hw_its->its_base + GIT=
S_IIDR));
> > +    prev_quirks =3D gicv3_its_collect_quirks(hw_its, NULL);
> >
> > -    list_for_each_entry(hw_its, &host_its_list, entry)
> > +    list_for_each_entry_continue(hw_its, &host_its_list, entry)
> >      {
> > -        quirk =3D gicv3_its_find_quirk(readl_relaxed(hw_its->its_base =
+ GITS_IIDR));
> > -        BUG_ON(quirk !=3D prev);
> > -        prev =3D quirk;
> > +        quirks =3D gicv3_its_collect_quirks(hw_its, NULL);
> > +        BUG_ON(quirks !=3D prev_quirks);
>
> I know it was in the previous version, but as you are already touching
> this... This is not Xen BUG(). This is a platform problem. So you need
> to panic here. Something like
>
>  if (quirks !=3D prev_quirks)
>         panic("Different ITS instances has different quirks")

Ack.


>
>
> Also, I want to point out that you are not validating "dma-noncoherent"
> quirk here. I mean, some ITS entries can have this property, some other
> - don't. This makes me think that you need to promote this
> "dma-noncoherent" quirk from open coded check to a `struct
> its_quirk` entry, so it will be handled in generic way.

Just to clarify your point about dma-noncoherent:

In the current version it is already part of the effective quirk set,
because gicv3_its_validate_quirks() compares the flags returned by
gicv3_its_collect_quirks(), and those already include the
dma-noncoherent DT property.

So is your concern that DT-derived ITS properties such as
dma-noncoherent should also go through the same common quirk/collection
plumbing as the other ITS workaround sources, rather than being handled
as a separate open-coded check, similar to how Linux models this [1]?

Or did you have something else in mind?


Best regards,
Mykola

[1] https://elixir.bootlin.com/linux/v6.19.9/source/drivers/irqchip/irq-gic=
-v3-its.c#L4973

>
>
> --
> WBR, Volodymyr


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 15:49:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 15:49:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262698.1555115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5QUL-0001j5-FF; Wed, 25 Mar 2026 15:49:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262698.1555115; Wed, 25 Mar 2026 15:49: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 1w5QUL-0001iy-Am; Wed, 25 Mar 2026 15:49:45 +0000
Received: by outflank-mailman (input) for mailman id 1262698;
 Wed, 25 Mar 2026 15:49:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <mathieu.poirier@linaro.org>) id 1w5QUK-0001is-6g
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 15:49:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5QUJ-00GgsW-EG
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 16:49:43 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <mathieu.poirier@linaro.org>)
 id 69c40403-5cb7-0a2a0a5109dd-0a2a4504d784-44
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:49:43 +0100
Received: from [209.85.208.52] (helo=mail-ed1-f52.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <mathieu.poirier@linaro.org>)
 id 69c40417-c823-0a2a45040019-d155d034aca6-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:49:43 +0100
Received: by mail-ed1-f52.google.com with SMTP id
 4fb4d7f45d1cf-66a33f61d80so4392970a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 08:49:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=linaro.org header.i="@linaro.org" header.h="Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1774453782; cv=none;
        d=google.com; s=arc-20240605;
        b=X5fmlTZvxkVlDBdu3B9kMqirVBbp88cfiGZuxAXV3QMhDRDv+ZIaGPvZ0tq227XTDD
         4RunYdQiCMHUoifkZAxSQQ42S6V8tR5E0yYTjyFu8l6PCrwbrLnBwOy9OnSycikplUvy
         M6PAk/jxYFdNuQjZuqJ3IJZT3a1uQuj3CbtKkaKhsB+yr84mJC7c403VnZa1WiZgICGX
         e2+VG8gWoSqCUV7Xnbkl/xe0NGte0JaUqO2abZc43lsxgP99l2UuKA3kyoFxCcBNFEEA
         J+0KEWmO7CQ+TmW5xiVRswl3wABy87TqY6YSIxbdfgAFfs3kq0qsawrOVLVPt/qDqWiI
         gv0Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:dkim-signature;
        bh=PetZC3qxgw91I7G4PL1kgiG97oaIIgIA0g2FQ1jwb8M=;
        fh=BEse2LHURIga/im0N7SjF34mecH3uUNBuQ4L12A4nsI=;
        b=N+RdvQQ+DEJgot399QbSZVMcscuVCWpqqMKuP6O9J+gdIv5uQSnn8TvYD9Dg4mHBTg
         f5n0kykbP/D5YKhCsMFpHPDfwlVjiyDvuK3+YKPO/wm5ZAFkzvc0UiYev74Q+aXzPD/e
         t3xpLIWL7Ne8hJi8oE0FTexROHFR7+17ilDobOBT7l/8E52ppyNLGxOuWnBrGeuv8FMx
         hl5CUAzMp8K2MNot/GoXqXz62/3ciJYAJIC12l6/jFyqCTw5jeNXRVZFzy0RvzR1fqB7
         euG+d5QhEK1G4egoFmoC0gVa8COgBy8QqWqADanR30tB4GmYxKFeXskQpwQw5kTVtPSV
         uqZA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1774453782; x=1775058582; 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=PetZC3qxgw91I7G4PL1kgiG97oaIIgIA0g2FQ1jwb8M=;
        b=fxXlZ0Iqyim9I+ZN8Jq+jhpjFiTa8D2BjXIij+3YM54eMacwm1LaFBKyYFdkU20nNU
         sPeyrOO/yBxZVK4k8SXvrV/+0n1D5W7q+YmitC3qY96Q82MdChi+bpn/TX+cgTTPmkcg
         kHrudwnus0HmSmAfLzHLPIM3g9Mvn/fHs4TyqxNF31wJQR9CAtkWIAnhEMXYQq/hhpMI
         /z1RkNHZdxumDYbEGQe965Vp5olhU/YRkOs+7kBzbHhlKTAfs1Plm9IDaaVPULQoOTJZ
         C+OaHgR4WjTGs5PGZjbJ1FhrUMRwV7MD+7QdaEYZyVS+sSfNmPUOey2XPHh7w17kcu/u
         ZO+Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774453782; x=1775058582;
        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=PetZC3qxgw91I7G4PL1kgiG97oaIIgIA0g2FQ1jwb8M=;
        b=XU1Gd2zsg24BpZ5yXBuvSVaP3OT9ivr47d5gmE5fvH2pqCMLDuCij6jL6vnSaLRo/s
         CAusDQiN/45Y3nxON9Mn4WVpXkDvgYplbHtf1b3+4BqMkAhNQ/xH/rQ8I4XI6sLn/rUc
         enKZJNo2QmqJQJbhpTpQCRjBRDlJQddptX3RAXdg6gMbFZwZ1oh4XJi4/ne2d8IZJL+w
         Q6u6O2URYJlqvh7gp15PTaAfqoo1Wo0a7VeeSe+kEepYxF9tKTf4ZHiMi1mbLFyJDvUj
         HDHvXhtlP01ESWsT61wwoTBYtwOpIQDnnAC1lE0449+RpTWne8pjVSgAvr7C8F/2W6qT
         JY5g==
X-Forwarded-Encrypted: i=1; AJvYcCWBi7Wx0F+/wUtNCVppAV5pW7jY2HC08vSWb/diasyb2VW+0pcKsntSiE+CvXFGlVAOBdpZggTkiGM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyy2rm0Yb9s64/CyRmGSMF9ci35TifKSbfOB2wrZj1xIlCICd6K
	F/xdcr6MLOwJ+RtkIH6LGQLeA5thodA5t4Nc6wVakwq2lQN0ePZgBxNGGYZ9iudVoTsMN3ucH14
	X/gqWYZYuXiddghPPlJNL3Fm1v293PLhI88ah1bYyfw==
X-Gm-Gg: ATEYQzznbOVF6SbACe5Nc0ZoHJUe7adFyZy8AdyJElRinZkPPqjDswalC1PYRDIgtGA
	0oStJH0+HlPgG9oRN1LZr3TG3pSFNld2jboNcPibuCrc8jN0VKQnB72uExUk1Shhrr82gtu4eBB
	dJhKqjnkvug+wCEMkNv0JGZ0Et5fNrDkeZN/GT4HEhs878WOmv5sVwXXyioXg5sy6Z33Oj7R5VR
	OkO8y84S6RO+RTIXtBB+tL2eWlY65E1rMYDn3wlP+ZA1KYLGyNZuw2JOjYJt3UxAOSzcEb7NClY
	DIfaCf3VdIGtJsGNDpZ1OvornHWQZdJv085tyjg5pg==
X-Received: by 2002:a05:6402:3251:b0:668:368b:38d3 with SMTP id
 4fb4d7f45d1cf-66a82634560mr2196905a12.12.1774453782373; Wed, 25 Mar 2026
 08:49:42 -0700 (PDT)
MIME-Version: 1.0
References: <20260324005919.2408620-1-dakr@kernel.org> <20260324005919.2408620-8-dakr@kernel.org>
In-Reply-To: <20260324005919.2408620-8-dakr@kernel.org>
From: Mathieu Poirier <mathieu.poirier@linaro.org>
Date: Wed, 25 Mar 2026 09:49:31 -0600
X-Gm-Features: AQROBzDaUkN0ZNcFR8HLoPUZ0UwwRolGugOyW2ifJVz-O5YTothUc8ZwonnT9P8
Message-ID: <CANLsYkyNx+e=QrSc=ZOqgMcOpwqdpCWsuhrvByJYcXLHPSHMUw@mail.gmail.com>
Subject: Re: [PATCH 07/12] rpmsg: use generic driver_override infrastructure
To: Danilo Krummrich <dakr@kernel.org>
Cc: Russell King <linux@armlinux.org.uk>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
	"Rafael J. Wysocki" <rafael@kernel.org>, Ioana Ciornei <ioana.ciornei@nxp.com>, 
	Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>, 
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
	Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
	Bjorn Helgaas <bhelgaas@google.com>, Armin Wolf <W_Armin@gmx.de>, 
	Bjorn Andersson <andersson@kernel.org>, Vineeth Vijayan <vneethv@linux.ibm.com>, 
	Peter Oberparleiter <oberpar@linux.ibm.com>, Heiko Carstens <hca@linux.ibm.com>, 
	Vasily Gorbik <gor@linux.ibm.com>, Alexander Gordeev <agordeev@linux.ibm.com>, 
	Christian Borntraeger <borntraeger@linux.ibm.com>, Sven Schnelle <svens@linux.ibm.com>, 
	Harald Freudenberger <freude@linux.ibm.com>, Holger Dengler <dengler@linux.ibm.com>, 
	Mark Brown <broonie@kernel.org>, "Michael S. Tsirkin" <mst@redhat.com>, Jason Wang <jasowang@redhat.com>, 
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>, =?UTF-8?Q?Eugenio_P=C3=A9rez?= <eperezma@redhat.com>, 
	Alex Williamson <alex@shazbot.org>, Juergen Gross <jgross@suse.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, 
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
	"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>, linux-kernel@vger.kernel.org, 
	driver-core@lists.linux.dev, linuxppc-dev@lists.ozlabs.org, 
	linux-hyperv@vger.kernel.org, linux-pci@vger.kernel.org, 
	platform-driver-x86@vger.kernel.org, linux-arm-msm@vger.kernel.org, 
	linux-remoteproc@vger.kernel.org, linux-s390@vger.kernel.org, 
	linux-spi@vger.kernel.org, virtualization@lists.linux.dev, 
	kvm@vger.kernel.org, xen-devel@lists.xenproject.org, 
	linux-arm-kernel@lists.infradead.org, Gui-Dong Han <hanguidong02@gmail.com>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-ebf023/1774453783-108609D1-FC7C9E44/0/0
X-purgate-type: clean
X-purgate-size: 7141

On Mon, 23 Mar 2026 at 19:00, Danilo Krummrich <dakr@kernel.org> wrote:
>
> When a driver is probed through __driver_attach(), the bus' match()
> callback is called without the device lock held, thus accessing the
> driver_override field without a lock, which can cause a UAF.
>
> Fix this by using the driver-core driver_override infrastructure taking
> care of proper locking internally.
>
> Note that calling match() from __driver_attach() without the device lock
> held is intentional. [1]
>
> Link: https://lore.kernel.org/driver-core/DGRGTIRHA62X.3RY09D9SOK77P@kernel.org/ [1]
> Reported-by: Gui-Dong Han <hanguidong02@gmail.com>
> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220789
> Fixes: e95060478244 ("rpmsg: Introduce a driver override mechanism")
> Signed-off-by: Danilo Krummrich <dakr@kernel.org>
> ---
>  drivers/rpmsg/qcom_glink_native.c |  2 --

For the below files:

Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>

>  drivers/rpmsg/rpmsg_core.c        | 43 +++++--------------------------
>  drivers/rpmsg/virtio_rpmsg_bus.c  |  1 -
>  include/linux/rpmsg.h             |  4 ---
>  4 files changed, 7 insertions(+), 43 deletions(-)
>
> diff --git a/drivers/rpmsg/qcom_glink_native.c b/drivers/rpmsg/qcom_glink_native.c
> index 9ef17c2e45b0..e9d1b2082477 100644
> --- a/drivers/rpmsg/qcom_glink_native.c
> +++ b/drivers/rpmsg/qcom_glink_native.c
> @@ -1623,7 +1623,6 @@ static void qcom_glink_rpdev_release(struct device *dev)
>  {
>         struct rpmsg_device *rpdev = to_rpmsg_device(dev);
>
> -       kfree(rpdev->driver_override);
>         kfree(rpdev);
>  }
>
> @@ -1859,7 +1858,6 @@ static void qcom_glink_device_release(struct device *dev)
>
>         /* Release qcom_glink_alloc_channel() reference */
>         kref_put(&channel->refcount, qcom_glink_channel_release);
> -       kfree(rpdev->driver_override);
>         kfree(rpdev);
>  }
>
> diff --git a/drivers/rpmsg/rpmsg_core.c b/drivers/rpmsg/rpmsg_core.c
> index 96964745065b..2b9f6d5a9a4f 100644
> --- a/drivers/rpmsg/rpmsg_core.c
> +++ b/drivers/rpmsg/rpmsg_core.c
> @@ -358,33 +358,6 @@ rpmsg_show_attr(src, src, "0x%x\n");
>  rpmsg_show_attr(dst, dst, "0x%x\n");
>  rpmsg_show_attr(announce, announce ? "true" : "false", "%s\n");
>
> -static ssize_t driver_override_store(struct device *dev,
> -                                    struct device_attribute *attr,
> -                                    const char *buf, size_t count)
> -{
> -       struct rpmsg_device *rpdev = to_rpmsg_device(dev);
> -       int ret;
> -
> -       ret = driver_set_override(dev, &rpdev->driver_override, buf, count);
> -       if (ret)
> -               return ret;
> -
> -       return count;
> -}
> -
> -static ssize_t driver_override_show(struct device *dev,
> -                                   struct device_attribute *attr, char *buf)
> -{
> -       struct rpmsg_device *rpdev = to_rpmsg_device(dev);
> -       ssize_t len;
> -
> -       device_lock(dev);
> -       len = sysfs_emit(buf, "%s\n", rpdev->driver_override);
> -       device_unlock(dev);
> -       return len;
> -}
> -static DEVICE_ATTR_RW(driver_override);
> -
>  static ssize_t modalias_show(struct device *dev,
>                              struct device_attribute *attr, char *buf)
>  {
> @@ -405,7 +378,6 @@ static struct attribute *rpmsg_dev_attrs[] = {
>         &dev_attr_dst.attr,
>         &dev_attr_src.attr,
>         &dev_attr_announce.attr,
> -       &dev_attr_driver_override.attr,
>         NULL,
>  };
>  ATTRIBUTE_GROUPS(rpmsg_dev);
> @@ -424,9 +396,11 @@ static int rpmsg_dev_match(struct device *dev, const struct device_driver *drv)
>         const struct rpmsg_driver *rpdrv = to_rpmsg_driver(drv);
>         const struct rpmsg_device_id *ids = rpdrv->id_table;
>         unsigned int i;
> +       int ret;
>
> -       if (rpdev->driver_override)
> -               return !strcmp(rpdev->driver_override, drv->name);
> +       ret = device_match_driver_override(dev, drv);
> +       if (ret >= 0)
> +               return ret;
>
>         if (ids)
>                 for (i = 0; ids[i].name[0]; i++)
> @@ -535,6 +509,7 @@ static const struct bus_type rpmsg_bus = {
>         .name           = "rpmsg",
>         .match          = rpmsg_dev_match,
>         .dev_groups     = rpmsg_dev_groups,
> +       .driver_override = true,
>         .uevent         = rpmsg_uevent,
>         .probe          = rpmsg_dev_probe,
>         .remove         = rpmsg_dev_remove,
> @@ -560,11 +535,9 @@ int rpmsg_register_device_override(struct rpmsg_device *rpdev,
>
>         device_initialize(dev);
>         if (driver_override) {
> -               ret = driver_set_override(dev, &rpdev->driver_override,
> -                                         driver_override,
> -                                         strlen(driver_override));
> +               ret = device_set_driver_override(dev, driver_override);
>                 if (ret) {
> -                       dev_err(dev, "device_set_override failed: %d\n", ret);
> +                       dev_err(dev, "device_set_driver_override() failed: %d\n", ret);
>                         put_device(dev);
>                         return ret;
>                 }
> @@ -573,8 +546,6 @@ int rpmsg_register_device_override(struct rpmsg_device *rpdev,
>         ret = device_add(dev);
>         if (ret) {
>                 dev_err(dev, "device_add failed: %d\n", ret);
> -               kfree(rpdev->driver_override);
> -               rpdev->driver_override = NULL;
>                 put_device(dev);
>         }
>
> diff --git a/drivers/rpmsg/virtio_rpmsg_bus.c b/drivers/rpmsg/virtio_rpmsg_bus.c
> index 8d9e2b4dc7c1..e0dacb736ef9 100644
> --- a/drivers/rpmsg/virtio_rpmsg_bus.c
> +++ b/drivers/rpmsg/virtio_rpmsg_bus.c
> @@ -373,7 +373,6 @@ static void virtio_rpmsg_release_device(struct device *dev)
>         struct rpmsg_device *rpdev = to_rpmsg_device(dev);
>         struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(rpdev);
>
> -       kfree(rpdev->driver_override);
>         kfree(vch);
>  }
>
> diff --git a/include/linux/rpmsg.h b/include/linux/rpmsg.h
> index fb7ab9165645..c2e3ef8480d5 100644
> --- a/include/linux/rpmsg.h
> +++ b/include/linux/rpmsg.h
> @@ -41,9 +41,6 @@ struct rpmsg_channel_info {
>   * rpmsg_device - device that belong to the rpmsg bus
>   * @dev: the device struct
>   * @id: device id (used to match between rpmsg drivers and devices)
> - * @driver_override: driver name to force a match; do not set directly,
> - *                   because core frees it; use driver_set_override() to
> - *                   set or clear it.
>   * @src: local address
>   * @dst: destination address
>   * @ept: the rpmsg endpoint of this channel
> @@ -53,7 +50,6 @@ struct rpmsg_channel_info {
>  struct rpmsg_device {
>         struct device dev;
>         struct rpmsg_device_id id;
> -       const char *driver_override;
>         u32 src;
>         u32 dst;
>         struct rpmsg_endpoint *ept;
> --
> 2.53.0
>


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 15:55:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 15:55:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262711.1555124 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Qa8-0003Jl-2X; Wed, 25 Mar 2026 15:55:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262711.1555124; Wed, 25 Mar 2026 15:55: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 1w5Qa7-0003Jd-V9; Wed, 25 Mar 2026 15:55:43 +0000
Received: by outflank-mailman (input) for mailman id 1262711;
 Wed, 25 Mar 2026 15:55:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <freddy77@gmail.com>) id 1w5Qa6-0003JX-L6
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 15:55:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Qa5-0011j9-Iv
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 16:55:41 +0100
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <freddy77@gmail.com>)
 id 69c40566-e002-0a2a0a5209dd-0a2a45069f7e-44
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:55:41 +0100
Received: from [74.125.224.46] (helo=mail-yx1-f46.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <freddy77@gmail.com>)
 id 69c4057c-3034-0a2a45060019-4a7de02ec58d-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:55:41 +0100
Received: by mail-yx1-f46.google.com with SMTP id
 956f58d0204a3-64ad79df972so12930d50.1
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 08:55:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Cc:To:Subject:Message-ID:Date:From:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1774454140; cv=none;
        d=google.com; s=arc-20240605;
        b=UJNmxF5iKjd83WnJDfa7pkA84QHySmwYZI9zl+POIvPsiIW+9+mAozREI2Tr6fcTbs
         2U7QCqoSAB2t+6XSJT0rht8rLInbigmlGw5yPTVV85PkEDRSkpFrDSOSEeKHUxW8KQJU
         ubAS4OIG1hyyNyQR0jnlA+4x++1qokw5ry/uwOr65NadhZeKpTFIHtZ8C3LdctVeWQOr
         BjDaugn7X6IHr06E9G6Ry4zljdaTQam94wN4k1ZUoHP8WCgLNnetelwH7HFmrN2MGyZL
         OsbNabZtiukyHjMTkpFZZH3uyRYvODuZ2o3OUK3LD6ZIZzmnEyT3+zbZGVnXDZ8Wan5K
         rZBw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=cc:to:subject:message-id:date:from:mime-version:dkim-signature;
        bh=JXxe0Bf9ieucpKIlOPKNVX99SDhdj0cpjSOTYoaFpqM=;
        fh=cjIMuHVtIOL7V2Eciq8yuGIhPX9boPZT09IYD4Kz7ZA=;
        b=KW0x99BBMkQBMRgVpRgQ8b5QOhVjxFMq1xqVhGBTCNk12wuM2KDlmSB0jHDwQoeT/1
         7FftTx48xmT+pVcfk6EvRhoAuu7r0jdYfkuHMcGYQJDIC8pK6tjJ490FdTvAJGcJxf0H
         7yXyzgkXlArWXNmu2EGBW2WQ0wttZcrmA7qPFmTEUmsMaxSyKrQYBCx4NMADLnnORIIO
         DhSnMtfiNkdCLirC8Lr3oIc+2Agu8m2EnoKvp4eX8Z2A0LkDipa+52LKM0Ju2zDNodW9
         3avXshOnTy3aus6ZFSJ638gaRGNlfvtg6+i/1W+uklbw6e8VceXevu5tWKvasgTEtrUo
         mkTg==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774454140; x=1775058940; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=JXxe0Bf9ieucpKIlOPKNVX99SDhdj0cpjSOTYoaFpqM=;
        b=U2K5unrG3MYf9OTQnPqobqlCScW925FkiZjtbDY6w6FMKdVfnufEqFUokzJH8/3fCd
         fDIAnolEGMz4Tav2c6wgT8l2/3t5pnKYHpuDQcgG2isxppyOlPeaRBLReRIA7uW72X2r
         7rfdtGcbjaBRGO7AjgOFnDwHnjDxjS4Di67mP/GpYIRPOIc82BMq2cWnTD0SCW8yemYo
         k5TcqIspa2+ZV37CuV72odwAyo9FS5d0zbxE7tQeuYE8/2M1xlBLct1XXSjPuYHruOy+
         TdEUNre4sbNi6wKcCD8678kTdzEH91y6S3JIV3PgJ4uUkySpDUs6x4wdTpvmU8ZqC847
         lKZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774454140; x=1775058940;
        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=JXxe0Bf9ieucpKIlOPKNVX99SDhdj0cpjSOTYoaFpqM=;
        b=Noab3c54yYdlAdeUs0LCPygo0yrP8CI1N4ZkkdVud5/f7dXSonYrgA9BJ0ZakD/ISI
         Uzz8ndNUOJp45WN1jTKCpDujKBL0TvOGb2SQovyou6fcRTP5VGhFk75ca7s8sSGmtxGb
         80Lil8GzQSHieLspCD48mUp/I7j91nrAhGNi0jaXpwKTEaOHd211bZE0ICAjDM4Tbcpu
         ai6wLKZz3f3yg25UccWL885sAgbTuvClfLYq/yR/2uUtiiWpHKsuDsjoI4V2o5+2nTBc
         5l5T7l3harI//8VDZ7SIe5hwZxPxWaxFJ0CnOBA8+zCmIxERc0KB9w1dMzQf5IZsUjnY
         Y5GA==
X-Gm-Message-State: AOJu0Ywqfj6p2vAahu+NkaElrDZM/MJmwHMvNJtDcHVD7fcmHaR+evkV
	V4qd54f5mCreVZwnEJ+rHolRLIsWFlsPsoLylt3r2pes+7Ie0lzYSM+818eYuCp3L6EQMOU5CrY
	G6pkoLceIQCNcp3sJLoun7HgDxrgcZMwF6Pq9
X-Gm-Gg: ATEYQzzeoDJpNn25w8r/6QyHIobcERmMZLXn+YJ3dBCmSR0aaG2tFbHRoMHXhddpCFg
	R8nzZyCyseGIksR9I9jI/MtBTCDt4OX313zP/XquF7Ku4AqMp598QICsT6iUc1MmLrSqohezmr7
	KV+FjvtJ9dynssxsa7+ASONNjQVjWQa//Ls9Geje2xtM/ncZvbYsMrdxeBN0Ftti4BYawYNFWcU
	RKYs3yczhlJBN1PSKlTyPiQ+mt2/QQTC+PgW7sKG2wcQmGYAfgmkjUF/ZHkAJNgkId4FxDnYK2o
	grtn9w==
X-Received: by 2002:a53:ac8b:0:b0:64e:dbbf:6a85 with SMTP id
 956f58d0204a3-64ee744a6c1mr3291195d50.44.1774454139815; Wed, 25 Mar 2026
 08:55:39 -0700 (PDT)
MIME-Version: 1.0
From: Frediano Ziglio <freddy77@gmail.com>
Date: Wed, 25 Mar 2026 15:55:28 +0000
X-Gm-Features: AQROBzAzLGkkUNrgLDxmBGA_0hxFBhvV_bOyRI2xwvh1kP9E6Lf8yDdMoMY0bN4
Message-ID: <CAHt6W4f0iSN5vqbPHTCv6dLdoxUFXivoPX8BYV+gurxxv9q66Q@mail.gmail.com>
Subject: [PATCH] xen/x86: Check supported features even for PHV dom0
To: xen-devel <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>
Content-Type: text/plain; charset="UTF-8"
X-purgate-ID: tlsNG-16d1c6/1774454141-B3C9F1C2-8097FB2F/0/0
X-purgate-type: clean
X-purgate-size: 3135

The supported features ELF note was tested only if the dom0 was
PV. Factor out a function to check ELF notes and reuse it even
for PVH.

Signed-off-by: Frediano Ziglio <frediano.ziglio@citrix.com>
---
 xen/arch/x86/dom0_build.c             | 16 ++++++++++++++++
 xen/arch/x86/hvm/dom0_build.c         |  3 +++
 xen/arch/x86/include/asm/dom0_build.h |  2 ++
 xen/arch/x86/pv/dom0_build.c          | 10 ++--------
 4 files changed, 23 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 864dd9e53e..c6bb2f8067 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -321,6 +321,22 @@ unsigned long __init dom0_paging_pages(const
struct domain *d,
 }


+int __init dom0_check_parms(
+    const struct elf_dom_parms *parms, bool is_pv_shim)
+{
+    if ( parms->elf_notes[XEN_ELFNOTE_SUPPORTED_FEATURES].type !=
XEN_ENT_NONE )
+    {
+        if ( !is_pv_shim && !test_bit(XENFEAT_dom0, parms->f_supported) )
+        {
+            printk("Kernel does not support Dom0 operation\n");
+            return -EINVAL;
+        }
+    }
+
+    return 0;
+}
+
+
 /*
  * If allocation isn't specified, reserve 1/16th of available memory for
  * things like DMA buffers. This reservation is clamped to a maximum of 128MB.
diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index d69a83b089..ca96f32acd 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -699,6 +699,9 @@ static int __init pvh_load_kernel(
     if ( !check_and_adjust_load_address(d, &elf, &parms) )
         return -ENOSPC;

+    if ( (rc = dom0_check_parms(&parms, false)) != 0 )
+        return rc;
+
     elf_set_vcpu(&elf, v);
     rc = elf_load_binary(&elf);
     if ( rc < 0 )
diff --git a/xen/arch/x86/include/asm/dom0_build.h
b/xen/arch/x86/include/asm/dom0_build.h
index ff021c24af..a322bf455c 100644
--- a/xen/arch/x86/include/asm/dom0_build.h
+++ b/xen/arch/x86/include/asm/dom0_build.h
@@ -8,6 +8,8 @@

 extern unsigned int dom0_memflags;

+int dom0_check_parms(const struct elf_dom_parms *parms,
+                     bool is_pv_shim);
 unsigned long dom0_compute_nr_pages(struct domain *d,
                                     struct elf_dom_parms *parms,
                                     unsigned long initrd_len);
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 075a3646c2..9d0310ad91 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -494,14 +494,8 @@ static int __init dom0_construct(const struct
boot_domain *bd)
         return -EINVAL;
     }

-    if ( parms.elf_notes[XEN_ELFNOTE_SUPPORTED_FEATURES].type != XEN_ENT_NONE )
-    {
-        if ( !pv_shim && !test_bit(XENFEAT_dom0, parms.f_supported) )
-        {
-            printk("Kernel does not support Dom0 operation\n");
-            return -EINVAL;
-        }
-    }
+    if ( (rc = dom0_check_parms(&parms, pv_shim)) != 0 )
+        goto out;

     nr_pages = dom0_compute_nr_pages(d, &parms, initrd_len);

-- 
2.43.0


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 15:57:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 15:57:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262721.1555132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Qbs-0003va-Fw; Wed, 25 Mar 2026 15:57:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262721.1555132; Wed, 25 Mar 2026 15:57:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Qbs-0003vT-DH; Wed, 25 Mar 2026 15:57:32 +0000
Received: by outflank-mailman (input) for mailman id 1262721;
 Wed, 25 Mar 2026 15:57:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w5Qbq-0003vG-A8
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 15:57:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Qbp-005ZMt-KM
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 16:57:29 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c405dd-5cb7-0a2a0a5109dd-0a2a4501e860-28
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:57:29 +0100
Received: from [103.168.172.145] (helo=fout-a2-smtp.messagingengine.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c405e8-6400-0a2a45010019-67a8ac918d5f-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 16:57:29 +0100
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
 by mailfout.phl.internal (Postfix) with ESMTP id 44C1CEC020C;
 Wed, 25 Mar 2026 11:57:27 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-03.internal (MEProxy); Wed, 25 Mar 2026 11:57:27 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 25 Mar 2026 11:57:25 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm1 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1774454247;
	 x=1774540647; bh=B7NKIpT95RzW5AHLxD63GiRxn2u3esxFjLPjPwD3lkU=; b=
	LlCAgQOkat/LhWeV0OBj/x+9L6uYARGyCKWvIFrLEXGzuLTtMgJk33/PmBgDYrg8
	3wkABSEIQqnoknHU8aMp3Bu0x7LrGJWTFKvRLJMLt4KROjwRH3HV07HRViKjpJxQ
	PsHxIlF3q5v7cV7uIq8hxqYo+R4AngxlonB8hkB9juJk/3B/8AN06FX/e+Stdu3i
	RqY0uKjDG+zKZAUO3atWv033RPIfH5GDJdy69QSpGJLybRndGw9Z5IMb6Rsquiu2
	dgqtCTHEVAzU3q30+HuO7JlkS+s8rysFa5PhlsxpE5TwMxw+vmUb74TIwWjiartn
	p0SFSR6h6CMy+TzGTeXPCQ==
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=
	1774454247; x=1774540647; bh=B7NKIpT95RzW5AHLxD63GiRxn2u3esxFjLP
	jPwD3lkU=; b=ehrkWAd/FAO6PV+6xDRCTVqLMkc4tX514EzSEidYDtJpzKzHV7e
	t+ztw4FGMy59HlAYkOkv3BGVPWtCheAgBQYHyx7db8nBzs2OPSIbLcofu9z/4XpE
	Hj8cuOpiXuWcCfOkDpchZDrrlRJNFzgU2gcaSaHgxyVngE9unLFXO3zcQj76o72V
	wdhDiOhzWCFWhDLrB7GlHWeRJ6ed7WRGW3Lk74wCXVPpqTtvSwJj/BvBsS9S3iou
	KC0uEqoImf2QZJCcURvbr92H1bgm1rTDarf8LIz/mbVQnGcUs/4EsbS0EcwnjQ+9
	CG5e/LH0NT/HbKgT7ekGiri9/hJq1cj2jtw==
X-ME-Sender: <xms:5wXEaVYwcdnwvVz_47RTk8-r2tlBJugeHseDq3BVKmN_LuBmaUAU1A>
    <xme:5wXEaerctGiomgEJS04TvGegKL8NhM3KKkvO-i7s9I88_-wx79j4G4a9xSz9ISGFR
    6VsPfwOEiAcr44EZcZ7PUjSHrTigRq0B6EHecVb1nJq876ASg>
X-ME-Received: <xmr:5wXEaaMneJKfdmHLoyQ9qAnokw6vLIwROCiHiIARXgQoivuGDPTq_6RA3-XjXp-2u8JRUmMmJzY6e3AnE7F6Tx2I1QMKpt_qPeo>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdefvdegkeekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepjedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtgho
    mhdprhgtphhtthhopehsohhumhihrghjhihothhishgrrhhkrghrvdefsehgmhgrihhlrd
    gtohhmpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtgho
    mhdprhgtphhtthhopeguphhsmhhithhhsegrphgvrhhtuhhsshholhhuthhiohhnshdrtg
    homhdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphht
    thhopehsrghrkhgrrhhsohhumhihrghjhihothhivdefsehgmhgrihhlrdgtohhmpdhrtg
    hpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhg
X-ME-Proxy: <xmx:5wXEaZrAuMPPm7rLn0cc81yE71sgxTqKLi0kZRFwaVxGy5kSyOpgKw>
    <xmx:5wXEafcxYbSgcAozPejsf5M4BjNHQB-AVO8AdzXzIG_ew9rv95S_8w>
    <xmx:5wXEafSPR7Q-Op2MlUG44R6hjgPBP3oVcFYIuXbi8mkol-v6Hq8ytw>
    <xmx:5wXEaYbel85dzCGwQlFxn1Wa6y7JOFHHFnEuaL2oMICdpHBzt_AlCg>
    <xmx:5wXEaf0M5NSXTA77jE_St3ua-5rsIxB8u8ly8nP7_NVQ9t6r2WiWqcjE>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 25 Mar 2026 16:57:24 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	sarkarsoumyajyoti23@gmail.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v5 2/3] x86/acpi: Integrate BGRT preservation with status
 reporting
Message-ID: <acQF5Kd4kZzo3BN6@mail-itl>
References: <20260324123312.11076-1-soumyajyotisarkar23@gmail.com>
 <20260324123312.11076-3-soumyajyotisarkar23@gmail.com>
 <751e1d3e-d95a-4129-8baa-450a53d15efa@suse.com>
 <acQADhcNzkVBm3C3@mail-itl>
 <5e121a98-fcd1-4d20-aa6c-a02af7f7eef4@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="IsCjB6vHa36IQ6xv"
Content-Disposition: inline
In-Reply-To: <5e121a98-fcd1-4d20-aa6c-a02af7f7eef4@suse.com>
X-purgate-ID: tlsNG-d62444/1774454249-23EEADF3-71C8A054/0/0
X-purgate-type: clean
X-purgate-size: 4324


--IsCjB6vHa36IQ6xv
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 25 Mar 2026 16:57:24 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	sarkarsoumyajyoti23@gmail.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v5 2/3] x86/acpi: Integrate BGRT preservation with status
 reporting

On Wed, Mar 25, 2026 at 04:44:15PM +0100, Jan Beulich wrote:
> On 25.03.2026 16:32, Marek Marczykowski-G=C3=B3recki wrote:
> > On Wed, Mar 25, 2026 at 04:16:25PM +0100, Jan Beulich wrote:
> >> On 24.03.2026 13:33, Soumyajyotii Ssarkar wrote:
> >>> @@ -327,6 +328,11 @@ static int __init cf_check acpi_parse_hpet(struc=
t acpi_table_header *table)
> >>>  	return 0;
> >>>  }
> >>>
> >>> +/*
> >>> + * Invalidate BGRT if image is in conventional RAM (preservation fai=
led).
> >>> + * If preservation succeeded, image is in EfiACPIReclaimMemory, which
> >>> + * won't match RAM_TYPE_CONVENTIONAL check, so table remains valid.
> >>> + */
> >>>  static int __init cf_check acpi_invalidate_bgrt(struct acpi_table_he=
ader *table)
> >>>  {
> >>>  	struct acpi_table_bgrt *bgrt_tbl =3D
> >>> @@ -754,5 +760,7 @@ int __init acpi_boot_init(void)
> >>>
> >>>  	acpi_table_parse(ACPI_SIG_BGRT, acpi_invalidate_bgrt);
> >>>
> >>> +	efi_bgrt_status_info();
> >>> +
> >>>  	return 0;
> >>>  }
> >>
> >> Does this really need doing from here? If you called it ...
> >>
> >>> --- a/xen/common/efi/boot.c
> >>> +++ b/xen/common/efi/boot.c
> >>> @@ -1911,6 +1911,22 @@ static bool __init cf_check rt_range_valid(uns=
igned long smfn, unsigned long emf
> >>>      return true;
> >>>  }
> >>>
> >>> +void __init efi_bgrt_status_info(void)
> >>> +{
> >>> +    if ( !efi_enabled(EFI_BOOT) )
> >>> +        return;
> >>> +
> >>> +    if ( bgrt_info.preserved )
> >>> +    {
> >>> +        printk(XENLOG_INFO "EFI: BGRT image preserved: %lu KB\n",
> >>> +               bgrt_info.size / 1024);
> >>> +        printk(XENLOG_INFO "EFI: BGRT relocated from %p to %p\n",
> >>> +               bgrt_info.old_addr, bgrt_info.new_addr);
> >>> +    }
> >>> +    else if ( bgrt_info.failure_reason[0] )
> >>> +        printk(XENLOG_WARNING "EFI: BGRT preservation failed: %s\n",
> >>> +               bgrt_info.failure_reason);
> >>> +}
> >>>
> >>>  void __init efi_init_memory(void)
> >>>  {
> >>
> >> ... out of this function, it could be static and no stub (misplaced in
> >> the earlier patch) would be needed either.
> >=20
> > It was here before, and I complained about it, because it printed the
> > invalidation reason way later than the actual invalidation.
>=20
> Sadly now I complain about this call out of acpi_boot_init(). What's wrong
> with logging the BGRT stuff together with the memory map?

If you try to diagnose what went wrong with BGRT, that's not very
intuitive to find - for example on my system it's 32 messages later.
It's even worse if system happens to crash between those two points.
IMO it makes sense to log reason for BGRT invalidation together with
the actual invalidation (message). I would be okay with moving it before
the actual invalidation, but I don't think there is a place like this in
xen/common/efi/boot.c (at a point where normal printk can be used already).

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmnEBeQACgkQ24/THMrX
1yy75Qf/Rhz7VJ5ozQ6vzaB+ndMOtljsAfUbUKBaFES2089h2YFhw7qmX1HJpRxj
yu9RJbd9Evk8JOaIpwd/q0zODlPulQN302/7c3kCxRwXO8sIZI1NjNEOR6yc+0tS
L8574DQw0vYtjawcuKMbN7At50AT3UcK//LXDl0WBz6Wrh+1yJJQkFF6LXqeX2ww
Gbwoz3QmwC/oHie7c46vVEqzjJXFWVCJtaSHPI6/sVcF8uC4YAJUnHMtJ9WuVg/9
d0rs+24RiUFQPYsB+15C2yyYfaAu64MHbB3qYcFBqjGYliI36GHGsMkqFd6jkXc6
y1w+sniQxlj3d0Q5hlEN99g99VovGA==
=0WuX
-----END PGP SIGNATURE-----

--IsCjB6vHa36IQ6xv--


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 16:26:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 16:26:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262743.1555142 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5R3a-0001RV-M6; Wed, 25 Mar 2026 16:26:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262743.1555142; Wed, 25 Mar 2026 16:26:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5R3a-0001RN-H1; Wed, 25 Mar 2026 16:26:10 +0000
Received: by outflank-mailman (input) for mailman id 1262743;
 Wed, 25 Mar 2026 16:26:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w5R3Z-0001RH-Tf
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 16:26:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5R3Z-00HPYk-5W
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 17:26:09 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c40c8d-e002-0a2a0a5209dd-0a2a45039ae4-44
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 17:26:09 +0100
Received: from [40.93.196.69]
 (helo=SA9PR02CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c40c9f-1947-0a2a45030019-285dc445d95e-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 17:26:08 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA1PR03MB8084.namprd03.prod.outlook.com (2603:10b6:806:45a::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Wed, 25 Mar
 2026 16:25:59 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026
 16:26:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rZOI9rsADKKeNl1q1ZepXYELgTn4C1MgFBMY/QgPKWeD3recIt2WLzjgW7EvDbbAL/g0sXZj5MhWSKCXgmWVH/5IhpB2+CxF3ZJvIoBdZMFpRT/V2/esruMf6L9CiEQZD1T9WrdfZFcaEz/gdZ6Vo6LzjOOYzth37EwFmi38BufIasLr/GFd9LnLIljul6prgpKwMwOEQ3FQvmnhVh1Shjg2TOOge6szhlkXFikIEcPtjHHGIUBm3p/OOTsAj2ZnbxqnXQTeufBI/sEfC8X7FzZKadm6qb3tbfcI0XjNlsd2GjtMtm/KCbgkwtSjRhEKtQFO27M6rpS+Zi9djcI4+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=OxRHVU4Ie4B2eNaBFNdJ9gSoN4f0appxL4CDJDX7deQ=;
 b=Ypa0xvqAcg1WJqnPTOdWHE+gd1Apm/TchzFu0pXGas2kKVYBfaxcGOV0jB1zqGEoA38ym9DjTakdpVOSln5rGXM9pe1UWH1hvGlt8S5mUZtpDbHUb8DpJPkhobPKhb3EVndzqguqEkAwJ0CAPFcsM6QmcGf7PZiFMsu1GVk11OfTVArue1/a15xClWMHLLawq9n8gkd4YMSzcsPe7j5eH0OIsqGxUemAYPEMDk2VnjbV08sstotl/OtR2NKxccvwCZ/EMT/GPf+EIiAxuaDNbmWKvOy8GKMmI2E793Cc6h0G8u9r/+2Tkwe9SH8PL+Nf6BQBBSv9b1knE5ieEdq5Cg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=OxRHVU4Ie4B2eNaBFNdJ9gSoN4f0appxL4CDJDX7deQ=;
 b=oYHHv+KI5jXIgwkLnnokS0qea1NcWx/cdK0LOOnkQ9dX+78GqH9rBVJDykI83QEBAPZzfBLycyKWRW5mVjBuoiPc/p4CsCffEjBenFoTV99/r/g7wAPoNqKPiYA0NJw3E47Nii2iRXbN664SgarsCcyPUzVjiJQlomFbQ3LpXxQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 25 Mar 2026 17:26:01 +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 2/2] xen/mm: do not assign pages to a domain until they
 are scrubbed
Message-ID: <acQMmXyOGFe5AN2i@macbook.local>
References: <20260325100803.6640-1-roger.pau@citrix.com>
 <20260325100803.6640-3-roger.pau@citrix.com>
 <73c705eb-95f9-456c-ba0b-c6e0f7730ef1@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <73c705eb-95f9-456c-ba0b-c6e0f7730ef1@suse.com>
X-ClientProxiedBy: MA4P292CA0013.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2d::11) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA1PR03MB8084:EE_
X-MS-Office365-Filtering-Correlation-Id: b1944c5e-168d-4cc3-cde2-08de8a8b35ee
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	6QF4se3Re0+foaRwLqiwnhehmCge21ntxm7PQI7eYFchns/erU5NZ1YxQkNss7HLjN/rTIFolKMOktjCMGeqLYKO9bunxV82J86aGmivRO9JH53E9UEA9ZQCsOihetSE5oK4jW92H5qKMPA39P3sU617NxkCGL9j2E75hxDbZIrQluJNdXO5ODhTdPBqd6Z9rsY9WVgjsfByNpfLNCRQw9GsX0aBGnPTjjmcI3Ck3e2JotTmAGQNMJyMEtSg/jGAqxTlytUKNP2welz7m5mb+eueZraLFMkxhrxoHREvh6c1LdCLTUWCu16+4KB1aYBqchoh+aK6udQGnqhRIIylLPEXIGtIzNhHQP+Z1VUmZ+jLGuUkLgocj9X+6CvRzR6BuqFMoziQZqG1gM7od0dq2tMb9Ijh/S3S6dE0bbMfCAZAVoKdJjhLNhp8cc7Zdh0AvWzVaW7STJqMjyPof+eHYcEfhg7AzgXtCiboYl7p93cvkbW9trs9EnhgrKuEcAuAuHAHtcJmEb8UeqUE7CkDKE/hs6wHO9AGaH8zU9Jbp8U3agHLaq0h4kBGBkRzw7Q9TMsIYFxciF1ieCb4D5T7tWw7Bay2JTEyf6HUCWWcxJvNdmp9Gj7nC+BmADaLrnSkQowR+lj/s4efN3PmMacgg3S7J+kRq9NY+g6eaG75EOJW2JK5VNkP8biAErAmz0cKSxQtM47X7YlecMpvRW3H5HSiZt8/jxOVPBKxeoCpaws=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RzdBdlJZTUkvL3VGWmJSdkZ4NjdZa28xQURrVzlVcFp0YW01UGRQSkdXeDI0?=
 =?utf-8?B?NXpJQTF3YW8xTmJlbGN6MjRXYU93cUR5ODlOclVtSE10YjZ0V3FLdnNmOU9U?=
 =?utf-8?B?dFE2MHJZQzBuVURIa3RlTDVEWDlsQ3pCZlBGdzRtMVoyNzFySUd4RElScXRB?=
 =?utf-8?B?dFpZUGJoUFh1Z2RsWXA4Ui9zT1NzTE1hdkt1UnlncmtmeEROMEhDb0JCdnFD?=
 =?utf-8?B?dHl5eWFaeFNLcnJkZkNubVlIQmI5U3M1eFN3YVpLbXBZUnFNVWJzTFZkeVNS?=
 =?utf-8?B?UURuTmg2VFF1MHBVOUtmdEpZK01yY3B4TzgrcWdUOU1jT1o0WDU3WVdqZkky?=
 =?utf-8?B?R2tra0t0SGUybXBnOVlCWTErVGxSUUZvdmZCM1A5emIweFNTS2xXUXNsQlNk?=
 =?utf-8?B?b2w1SWprY3pOQmpxTlNvT0dXd0VZSVk5UWxzN1FpNDRWOHlEZTA1WTNvak1H?=
 =?utf-8?B?ZWFsOURJRm1EWEs0bTcwTGhkUXhNcGtYZ0JFWUZvbU1kdlpMSkZaWFRtNDV2?=
 =?utf-8?B?cDRTM3VsbG9CZjBXT1FXRnR5M2hrQlBWV2pUVHdFU0tMMkRIK0t2Z2JQRVUw?=
 =?utf-8?B?QmlXd1ovcDEzS3ZsQm4yeWZnQmZYdXp2cWlKSkhNc3lPakh0T1FLSTdTRFRR?=
 =?utf-8?B?YzFkN2xWY0pkcEh3ekcwQmxFc0psRFE3b0xiMHJuMjZOZWxQODg1RFpMd0Ns?=
 =?utf-8?B?QnlZK2ErNzFQS3FXU1hwNjAxZzR2VE5seC9DUjY1QnFhU3loTXhGWWhvd0pY?=
 =?utf-8?B?eUkyeGdERm9Sd3F3VUVLY2FWM3FpSzZmTVBYMHQxTy9GRldrbVFQRFRQbVF0?=
 =?utf-8?B?WVM1ZUtVWmQwWmZqRmtBcEdsZUlrdy9xMk1sbFI3U1BvTXgzd0JMZ2haUlNZ?=
 =?utf-8?B?dWNEZHdveUcreUxmK29YZThVTUVqcFBLUi9ZdlA3a1dBd1RvODVjMWtCZUpY?=
 =?utf-8?B?d2x6Q3E4TExGeDV4WEhKK051OUxEbmVvcWxkZDdwcDkzaWpKem5BUXh4UVds?=
 =?utf-8?B?MGlVZitxRklQYkl4MnNZUDRRR3N5TUJMSGlGQktKY2dGbG5LTFh4NENUNmFT?=
 =?utf-8?B?d2FaTzhoVkZubHZ1dDJwbEVaTUZwblBWa2lOMkpWb2xRc2lURWZRMFU2SmND?=
 =?utf-8?B?bVgyamk1MEh3cjlVeUE4clNoOVdnZWd2UkdUTllvT3VLMkN3ZUJhTVFYb3Vm?=
 =?utf-8?B?YVBsOGhRanRMcVRxdzVXVUl1aEpQdHplVFlRRHdUUWhGOG8wcStpT00ycGth?=
 =?utf-8?B?NjhVcHBQVVRnK0tKMDg5NzNaRlo1V0JpK2JoY3JOYitFM3Ezdi9WMTI2Z3dD?=
 =?utf-8?B?eWtKSUV5b05Cb2RGUHpSQ0s4RFk2OGNyMzJWY0hIWHNndDBodzBRdEJDeE43?=
 =?utf-8?B?MEI0Q1NVZW5KRGVySjhZdkhOejM2cHpIbzBOMjJiN2daUGQ5SjJIR0ZvY1lM?=
 =?utf-8?B?MTZmNE5Nc2VQZG9xa2F0TlFjR3BMMXd6REF0ZlQxZEtMYXhVenRnOHQyaUtj?=
 =?utf-8?B?WHg1UEcxT29ZRTlHTThqQXdETEFxZFYzVm80UHlNbUFIQVZVN3N4dk5DOGV1?=
 =?utf-8?B?V1kwS3hKcHREQjFqL2M1RHZNK0pKYW9qVGJsbVdxNmJOQXgvUFEwalllZnJR?=
 =?utf-8?B?YWh6eUxyVW1YQ2lvNTVBaCtpOHRxbGFPRVk2QUNWSCs5TlNxK2tDMzFGUm5z?=
 =?utf-8?B?dUtrOXM3cWR5Q1hwQmp3SXJWb3IveGRVdkwwcUlUZTV4OHUyYXptbG8veEpF?=
 =?utf-8?B?bzJCbXpBeFAzMmFzVm4yanVMSzBmUWNqU2s5Y1VsdnE2aUgwa0R5N3hxa2lC?=
 =?utf-8?B?VVNBeDhMcVkwUUM0bTVURHJSbFNYZFRSWWxPMzhyQkpPM2t3eHZZWDd1VlB0?=
 =?utf-8?B?ZERLUkhPaU1sQVJxOEtsVnV5OHQ5TDJKNWtxajBXTnNYdGwxS1RKcHVpK28y?=
 =?utf-8?B?d2w4UVQ4OWNJK200OUFJdWxlSzdKVlJWbzRxWENzb1RxV1FNbXhpdFlKL25S?=
 =?utf-8?B?TDYwVDVmdGNhUlhLalJ0MnVrTldvb2FaUWxYZU1nbWpxNW0yMWM4cjM0Y0Fl?=
 =?utf-8?B?ZkxDeE5KSHlqdUZyM0laSUc1Ykx6QUR2UE85bUo5UG5NYWp4ZzlzNmIwVWVT?=
 =?utf-8?B?UXNvVVBKWEI3MVZsODdLWGtsSWlJd01yQy9DZHBHbVFaN1hNNUxNa0JWbWtG?=
 =?utf-8?B?WGhnSjVVQjN3bUNYM1BpVXE1dHFLT25UQThqQVJGOWE5ajNXcXo0RnJBQ0hQ?=
 =?utf-8?B?TGZlaDlBKzlGaS9BU0ZkTTlYMHBZYVNGZmRiZ2lIa2l1a1c4SDlVSEVLZktw?=
 =?utf-8?B?clN1MGQvQmxFUGJ3OGNLNzRsbUlXU3prbGowZUZpUkJSVWlPd3hDdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b1944c5e-168d-4cc3-cde2-08de8a8b35ee
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 16:26:04.5544
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: XN+xnjtTpoCl84duPdbEOd9lcUkG3D2nWIt9Xanm9EOBwmByWSzo8k3kTe1KJTsWwtyy6687CxRlsxcMikV9CQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB8084
X-purgate-ID: tlsNG-33051d/1774455969-4A45E72C-C2AE650D/0/0
X-purgate-type: clean
X-purgate-size: 4172

On Wed, Mar 25, 2026 at 03:56:05PM +0100, Jan Beulich wrote:
> On 25.03.2026 11:08, Roger Pau Monne wrote:
> > ---
> > I've attempted various different ways to solve this, but they all ended up
> > being impossible.
> > 
> >  * Prevent non-scrubbed pages from getting extra refcounts (iow: make
> >    get_page() fail for them).  This seemed nice, but the cleanup using
> >    put_page_alloc_ref() was impossible as non-scrubbed pages would return
> >    failure in get_page(), and so I couldn't take the extra reference ahead
> >    of calling put_page_alloc_ref().
> 
> A special-case variant of get_page() could be introduced, but maybe that
> would still be overly fragile.

It seemed too much complexity (and risk), just to deal with this
scenario.

> When we discussed this, what I had proposed didn't require use of get_page()
> though. assign_pages() would install two general references (plus one type
> ref for PGT_writable) in this special case. To free, you'd call
> put_page_alloc_ref() followed by put_page_and_type().

Doesn't that risk under flowing the page counter if there's a parallel
call to decrease_reservation() against this MFN before?

How would the freeing done in populate_physmap() (in case of
concurrent calls) know whether already scrubbed pages have had it's
PGC_allocated bit dropped?

> That said, the patch here is still less intrusive than I feared, so I'm not
> asking to re-work this again.

Thanks.

> >  * Disallow XENMEM_decrease_reservation until the domain has finished
> >    creation would fix the issue of pages being freed while pending scrub,
> >    but it's not clear there might be other usages that would be problematic,
> >    as get_page() on non-scrubbed pages would still return success.
> 
> I agree this is of concern.
> 
> > --- a/xen/common/memory.c
> > +++ b/xen/common/memory.c
> > @@ -388,6 +388,12 @@ static void populate_physmap(struct memop_args *a)
> >                              goto out;
> >                          }
> >                      }
> > +
> > +                    if ( assign_page(page, a->extent_order, d, memflags) )
> > +                    {
> > +                        free_domheap_pages(page, a->extent_order);
> 
> The pages don't have an owner set yet, so that function will go straight
> to free_heap_pages(), needlessly passing "true" as last argument. Correct,
> but (for large pages, which the stashing is about) highly inefficient.

My bad, I was sure I was using the same freeing function as
alloc_domheap_pages() on failure to assign, but I clearly wasn't.  I
will switch to using free_heap_pages().

> > --- a/xen/common/page_alloc.c
> > +++ b/xen/common/page_alloc.c
> > @@ -2699,7 +2699,13 @@ struct page_info *alloc_domheap_pages(
> >                                    memflags, d)) == NULL)) )
> >           return NULL;
> >  
> > -    if ( d && !(memflags & MEMF_no_owner) )
> > +    /*
> > +     * Don't add pages with the PGC_need_scrub bit set to the domain, the
> > +     * caller must clean the bit and then manually call assign_pages().
> > +     * Otherwise pages with the PGC_need_scrub would be reachable using
> > +     * get_page().
> > +     */
> 
> How about replacing the latter "with the PGC_need_scrub" by "still subject
> to scrubbing"?

Sure.

> > +    if ( d && !(memflags & MEMF_no_owner) && !(memflags & MEMF_keep_scrub) )
> >      {
> >          if ( memflags & MEMF_no_refcount )
> >          {
> 
> This no-refcount code isn't repeated at the new call site of assign_page().
> It's not needed there, yes, but wouldn't we better allow this to be taken
> care of right here, moving the MEMF_keep_scrub check immediately ahead of
> the call to assign_page()?
> 
> Otherwise should we reject (much earlier) MEMF_no_refcount used together
> with MEMF_keep_scrub?

hm, I was likely too focus on the specific use-case of
populate_physmap(), which is the only user of MEMF_keep_scrub.  I've
noticed the MEMF_no_refcount bits here, but since populate_physmap()
never uses that flag I just left it as-is.

Will see about adjusting it.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 16:34:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 16:34:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262754.1555150 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5RBT-0003Ld-Bp; Wed, 25 Mar 2026 16:34:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262754.1555150; Wed, 25 Mar 2026 16: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 1w5RBT-0003LW-8T; Wed, 25 Mar 2026 16:34:19 +0000
Received: by outflank-mailman (input) for mailman id 1262754;
 Wed, 25 Mar 2026 16:34:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w5RBS-0003L6-5U
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 16:34:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5RBP-00DOOh-Hq
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 17:34:17 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c40e74-e002-0a2a0a5209dd-0a2a4508cdaa-38
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 17:34:16 +0100
Received: from [209.85.167.48] (helo=mail-lf1-f48.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c40e88-1950-0a2a45080019-d155a730a85a-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 17:34:16 +0100
Received: by mail-lf1-f48.google.com with SMTP id
 2adb3069b0e04-5a1443780c4so1040140e87.0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 09:34:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1774456456; cv=none;
        d=google.com; s=arc-20240605;
        b=ZBkI3sC0XliC+PVcAXXT/ZyUmkaG4YCEGPpnhjNSipQyQTk7RV5JMVex89R7Hfn9Aq
         zZmJGYSELD+W0n+mau6Ii3L0CaJMrE+s7qn0AOc2xo2tCswmUsJOGm6UZa+SGY/an/Gn
         E5p1NMHn8ZhjRtD8exvSS64ZesnPppjQDQdHGS4iCc+upT+CLXMvfICXEjEtL78vIC4C
         skp9t2hjOHUeMWPx/x6YWjLgNmwNhHPp2pMyeZMwgrfLVqcfRn5X8bTZxuMSWA/RzN5D
         k4uzJdrtyyIy+Rtzp7NYvxbqWKY0tqAqi82FzgsH0yXr2BmFvvRyAe3xMxpSnkwcNo2b
         eYxw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=oTEq9ukb/cjWdMxVcUQOINtz10aJOqZ6riJGIfoU3Sc=;
        fh=HHRjWkdysX2ZkNpVMY4DcdwfNbPq2J2BPJfxbJK3Acs=;
        b=UfcMGxgy9rNlqj3h20z3PZR9U7QcOW7tlQopgKaA45v/UWlJL+PaX4rvJaiatp80Zl
         v8Fmr6iWfUvOPdFK66GYsEa63BcBu/G50PpCt3FfKZKDIguvFIBzL3iu72SHzyJ0x/DP
         Qig+5bstFCJ6PV6tkknDmV+OuqxTtY31olPbuRmXSm9UrRd7Xps0eZR8tWR7tc8AWpU4
         J+sSExj7/Q8m/vPLCgcgORmRegjy0hfDSY5a2xjcgRBTUvEKj8CeBcTJlBqLWhcO51yR
         FBxwBnigNYZcQ9FDuvxP0Hl17miCm8vmXzJPBMIU+h09ROBFRHckDwQVV3Xijk6tPgqT
         hUKQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774456456; x=1775061256; 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=oTEq9ukb/cjWdMxVcUQOINtz10aJOqZ6riJGIfoU3Sc=;
        b=kAQfd8cIU5FM90qq+wlsqqBMMMmobxdLQFgDlDd4e655cPA+bcFGu5rjMUXqhBWeXI
         9BeDSh5VOdtjRu4fdGlc5LLDSmCM/T9Wz/c0sFSCX/2a3qvw9cbtgy/ErBrmKlUAyhfi
         XHqztYZh120f2hQk9sVQBV8ig+3UggxtFfTx1ncaDQy4xGWWj0zXfK+pmit40QwCAUs3
         Hmxu9x8cUQXEfwnsiL5ijT24/6TFap55GpSR14iJ7N2S0JhLWZBuCmETniNaD6ZNiyPz
         NsmrjwBX6aNVmwjvPixz9FRUxY/OwJNo9vavlsoy49hThnyGfRIZK3+XIWOzNJ/MxWQK
         q+uQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774456456; x=1775061256;
        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=oTEq9ukb/cjWdMxVcUQOINtz10aJOqZ6riJGIfoU3Sc=;
        b=OaND5PyGx3y1ayCxVYbYCU5ANgEHF265mkAuhsQNxQnU9kLvQ1gUzUKKb3xp52BiqS
         za7Oz8jAhqkSZXvM+qmB7KcwEPDlMQ3nKdM+ZiCiCXFmWt6U1nGGkUUGteMipw/kXiWy
         KnwDciA3KYIuWT7snViD+9LO5FpQ4PY18hyxXQRAjZr6vzSMNM479mwFFhSs9WAvvmpJ
         qVSZIuuV/TCeKgyxZrBedzPnZDfMxZhuHwKEKE+zZyUd3mCiMiRYLRpDJjXHRml74YjY
         zHUJFZAf117sG4sqinrywS2aZWEXMmxHiMUbMI4OacO71ROzRkOcCohrVVYZni2P12yu
         NRMQ==
X-Gm-Message-State: AOJu0Yw0EXV7SOhZyXzqgpRpnOXgHSDc7vttw6KVZdbl2LJ39rpzF1WV
	0jNfpJ2bPf8vaYgiTRLAwcm3i4wm08iqUm9lN1HOIAFeGHC5iqtXx2KnNwiOg2SERyrNq+L3r1x
	fzk3y9KDoLp0IOrl40lW//XPJ/TyWk4I=
X-Gm-Gg: ATEYQzx5+668Sg3sxzSjv78IjCMVaiPSCtCLyUl6cM6gXf2lZyf3CqdsEdPAmpMou4S
	ITx0vbNGhBeRp8026HgfOPjcoM8CgyuGEd7YOI1DJlNLEMQaaPYsImPHjsjCCFF54+dTkcOCazd
	3HdBpDRn1LHG/PTGM8ZYmXM39XkVfuFZfralXXLcPSRZngQ5VYHQJ9T75icZjZwrsnVgcc4X+8D
	RynbXxyd6NG/1rb43RXOl3FmyfEOFePY6Is8I8JToPrLgB5VjkntnJ7x0ozqum7j9h1UIw6Q7v9
	QXvQ9F0JMXys0Mw=
X-Received: by 2002:a05:6512:318f:b0:5a0:4ca4:4872 with SMTP id
 2adb3069b0e04-5a29b4ef506mr1498140e87.5.1774456455488; Wed, 25 Mar 2026
 09:34:15 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1774431310.git.mykola_kvach@epam.com> <10da5cf38dded9c3373c4b0ba54d7f7a7b2fd98f.1774431311.git.mykola_kvach@epam.com>
 <87341ovugw.fsf@epam.com>
In-Reply-To: <87341ovugw.fsf@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Wed, 25 Mar 2026 18:34:04 +0200
X-Gm-Features: AaiRm51RmYn8g3aoKcsDWCg6iUpTKZ4RjUpaY2awpdyuUE5YQdrF3YhOTjgHPfY
Message-ID: <CAGeoDV_1Zzh8pxBe=Mf7Yu1OXfNhzH7aFpsT+ktM62DwK-ropg@mail.gmail.com>
Subject: Re: [PATCH 2/4] xen/arm: its: add platform match callback for ITS quirks
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <Mykola_Kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-c1860d/1774456456-EA892726-61C79DD5/0/0
X-purgate-type: clean
X-purgate-size: 5559

Hi Volodymyr,

Thank you for the review.

On Wed, Mar 25, 2026 at 4:45=E2=80=AFPM Volodymyr Babchuk
<Volodymyr_Babchuk@epam.com> wrote:
>
> Hi Mykola,
>
> Mykola Kvach <xakep.amatop@gmail.com> writes:
>
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > Extend ITS quirk lookup with an optional match callback so that
> > platforms sharing the same IIDR can still be distinguished.
> >
> > Use the board compatible string to positively identify Renesas R-Car
> > Gen4 before applying ITS workaround flags, preventing false matches
> > on other SoCs that happen to use the same GIC IP block.
> >
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> >  xen/arch/arm/gic-v3-its.c | 22 +++++++++++++++++++---
> >  1 file changed, 19 insertions(+), 3 deletions(-)
> >
> > diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
> > index 00524b43a3..c40629731f 100644
> > --- a/xen/arch/arm/gic-v3-its.c
> > +++ b/xen/arch/arm/gic-v3-its.c
> > @@ -57,6 +57,7 @@ struct its_device {
> >   */
> >  struct its_quirk {
> >      const char *desc;
> > +    bool (*match)(const struct host_its *hw_its);
>
> If you are introducing match predicate, then why do you need...
>
> >      uint32_t iidr;
> >      uint32_t mask;
> >      uint32_t flags;
>
> these? You can use a predicate function to match against iidr

The rationale for keeping iidr/mask while adding match() is to keep
the quirk table declarative and easy to read. The match() callback is
meant only as an optional refinement for ambiguous cases where IIDR
alone is not sufficient to identify the platform.

In this design, iidr/mask remains the primary match key. If matching
were made entirely callback-based, the standard IIDR comparison would
have to move into callback code as well. That would make quirk entries
more open-coded and less data-driven, while the current split keeps the
common case simple and structured.

This is also close to what Linux does: IIDR-based matching remains the
generic declarative mechanism, and platform-specific checks such as
compatible strings are added only where needed.

That said, I agree that the callbacks introduced in this series are all
doing roughly the same kind of platform identification. A reasonable
follow-up cleanup would be to model this more generically, for example
by adding an optional compatible string list to struct its_quirk, and
reserving match() for cases that cannot be expressed through static
data.

So the intent here was to keep the table clean, with matching logic
effectively being:

  quirk_match =3D IIDR match && (no extra match rule || extra match passes)

If you prefer, I can rework this either into a fully callback-based
scheme, or introduce generic compatible-string matching in this series
and drop the match() callback for now.

>
> > @@ -64,11 +65,24 @@ struct its_quirk {
> >
> >  static uint32_t __ro_after_init its_quirk_flags;
> >
> > +static bool gicv3_its_match_quirk_gen4(const struct host_its *hw_its)
> > +{
> > +    if ( !hw_its->dt_node )
> > +        return false;
> > +
> > +    if ( !dt_machine_is_compatible("renesas,r8a779f0") &&
> > +         !dt_machine_is_compatible("renesas,r8a779g0") )
> > +        return false;
> > +
> > +    return true;
> > +}
> > +
> >  static const struct its_quirk its_quirks[] =3D {
> >      {
> >          .desc  =3D "R-Car Gen4",
> >          .iidr  =3D 0x0201743b,
> >          .mask  =3D 0xffffffffU,
> > +        .match =3D gicv3_its_match_quirk_gen4,
> >          .flags =3D HOST_ITS_WORKAROUND_NC_NS |
> >                   HOST_ITS_WORKAROUND_32BIT_ADDR,
> >      },
> > @@ -77,7 +91,8 @@ static const struct its_quirk its_quirks[] =3D {
> >      }
> >  };
> >
> > -static const struct its_quirk *gicv3_its_find_quirk(uint32_t iidr)
> > +static const struct its_quirk *gicv3_its_find_quirk(
> > +    const struct host_its *hw_its, uint32_t iidr)
> >  {
> >      const struct its_quirk *quirk =3D its_quirks;
> >
> > @@ -86,7 +101,8 @@ static const struct its_quirk *gicv3_its_find_quirk(=
uint32_t iidr)
> >          if ( quirk->iidr !=3D (quirk->mask & iidr) )
> >              continue;
> >
> > -        return quirk;
> > +        if ( !quirk->match || quirk->match(hw_its) )
> > +            return quirk;

Also, while reviewing gicv3_its_find_quirk() I realized that the
current first-match semantics may not scale well. Since the table
supports partial IIDR masks, we could have a broad entry covering
an entire GIC family alongside a narrower entry for a specific
platform. With first-match, only one of them would ever apply, so
their flags could never be combined. The same issue applies to the
match() callback: if an entry with match() is checked first and
fails, the loop does continue, but if it succeeds, all subsequent
entries for the same IIDR -- whether with different masks or different
match() predicates -- are skipped entirely.

If others agree, I will switch to accumulating flags from all
matching entries in v2.


Best regards,
Mykola

> >      }
> >
> >      return NULL;
> > @@ -99,7 +115,7 @@ static uint32_t gicv3_its_collect_quirks(const struc=
t host_its *hw_its,
> >      uint32_t flags =3D 0;
> >      uint32_t iidr =3D readl_relaxed(hw_its->its_base + GITS_IIDR);
> >
> > -    quirk =3D gicv3_its_find_quirk(iidr);
> > +    quirk =3D gicv3_its_find_quirk(hw_its, iidr);
> >      if ( quirk )
> >          flags |=3D quirk->flags;
>
> --
> WBR, Volodymyr


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 16:54:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 16:54:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262789.1555159 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5RVN-0006s6-0H; Wed, 25 Mar 2026 16:54:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262789.1555159; Wed, 25 Mar 2026 16:54: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 1w5RVM-0006rz-Td; Wed, 25 Mar 2026 16:54:52 +0000
Received: by outflank-mailman (input) for mailman id 1262789;
 Wed, 25 Mar 2026 16:54:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w5RVL-0006rt-SZ
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 16:54:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5RVL-006ene-8B
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 17:54:51 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c41336-5cb7-0a2a0a5109dd-0a2a450ba650-34
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 17:54:51 +0100
Received: from [52.101.57.45]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c41359-ef63-0a2a450b0019-3465392dca84-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 17:54:51 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS0PR03MB7178.namprd03.prod.outlook.com (2603:10b6:8:126::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Wed, 25 Mar
 2026 16:54:44 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026
 16:54:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SW/3Bb3lRgCnWW+EzWCGPgr+J+vIqaSGMNTzOtub+7S0qifFDEeUto+4GRWNDWTdd8XBol6H2GlbmvmNOyk2X41QI0z07UHp7m6SaVPu5BqhYsUgBdHGP62E1LObRQ/Cdj5uf42wYv3j/jVWbX8ZUtEaO92nGfoj+fBl27CqcMo3bab0pErMtUt5HjqE9aAx963MU8yyHoK7+CcxLTLs5F3/MqOXh08L5zkeH9BEl4IrmweyV2X+OVdb/nfiSYCkNt0LDf+In7BV1ewnKCrfe8sw+4/uhyxaJHpPv0uPPZZpi1nP3uEG12oeAC5zO/cgOCedj1sTh3xwd8n92d/doQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=p5cIfIRVdeZwC68hmSTsf+2fF1KF+UXOKOFvWyEOsWs=;
 b=m45+VQrdb5Lmb/vvDXwciztg8TqIXBPacNv29XBte8zGsOsccmVwdWuUH5PaM77boS1K0lMcmpOh88dBmZQYI9CUj5mkmM53NuTGqP1BOygbTnnD+H/JemQvFQHSKRMqmRGDLK9EiegcEFwuLfmcBZ3c81q92LUCUktuUnI7+9DVEznLMwwBwZbh2otkZdHoUN4Zf/7+itZ27RN1tZysgu0QuJxszvLu2tFz3cQLuZOk+fNZDhObRpCl4WqV8Q7GJLkNh/Ugpb9L4YN4jg84APPPcun1QbY1IVw97D/MGh+2BRkKZErnNOADqvhDk8P0bE3rsfHngnPFlTBr5Uj9gA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=p5cIfIRVdeZwC68hmSTsf+2fF1KF+UXOKOFvWyEOsWs=;
 b=YKrcnHPJFtHWaKXkwndKAwrKhYl3Z300ieUasjU1i56sq6vbPnv3407PkM3cuaYY1KSIWQICcxLYhOurf29uP35D/7z4K3IcElDgOaJBQcqZECb6f6CniS2Ctd0w2kW6OkxUI/4CkNxYFXurSKAIbGpqFxftMOfx8RMr4nvRIT8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 25 Mar 2026 17:54:40 +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 2/2] xen/mm: do not assign pages to a domain until they
 are scrubbed
Message-ID: <acQTUE3Lm7-KIcRj@macbook.local>
References: <20260325100803.6640-1-roger.pau@citrix.com>
 <20260325100803.6640-3-roger.pau@citrix.com>
 <73c705eb-95f9-456c-ba0b-c6e0f7730ef1@suse.com>
 <acQMmXyOGFe5AN2i@macbook.local>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <acQMmXyOGFe5AN2i@macbook.local>
X-ClientProxiedBy: MR1P264CA0159.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:54::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_|DS0PR03MB7178:EE_
X-MS-Office365-Filtering-Correlation-Id: 07d45430-568b-4e60-34e6-08de8a8f371f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	nK1xo6YUSrIoC7Af6j/I85n6VxioQrSOnYU50yQ86Ekgjc1tEqadKc7sl5y+Rt0nkInjUf9WRqKk2l0WcXasKK+ISr0ZXWkDX7oR/ZjMfF6+EeZ0ho4CaEWcudyXS9Ko+wDYvBLgDLM4LrE73kiradbERBJ6r7tIxrHvXO1gdW/Lm3BAhDIrgoBRvACVQTVtBWO9Nk5f/UWsNnYKwIYmiFn1XcaxQwm38xQO2R9k/3r5+mb+s1rlq7rXBZWG5NNLxQrdyHMXmkWh4YVeVQlmVVSoXOYU/5lSSD7mEPSShT0gNFq6KeWFw4tu1V6eorB2/Fd8cYjBFwnt0XJhssMy2dZrRfKQxxN6U0X44ELVkPWXH93RJMY/D+bpH8FNA/Yrl7yLoaz/nFlXsqsWOGK4dyakCKHSz833I8ighzihvE5eTxcTTpPSWfAdscEv7BeWm9HobEOOPqAT8IX60WWqkwUif0b6U4iPm5NltepniflkzC8YF0gLo2aMZm6KS4vYiJaxNVF73A9mYyiAr6MdGRCNZwceCMpUjbWwRC201GLkpJ44BObJ2vZoXEDbdSvYjzBPGuKDVnVdDYF78j2rZHQD4iUgYDAvRJPKh+TwuQxBxtHX1rIoim9BkKkpYmY39dqZCLak7gK1eJcAPkjbMxU7E5yaJoLgR657tWWAlGffL9WD6R1TwKtdLO3kguLuaXo+5Wcz59PA3LlNH1AQk1pkeDCO4JErrlL7EDi2TSQ=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WGdLakZFb1YreUo2M1Y5TVBUNThQSVRJY0tRaDBTSkFOM2tpVnJ2em9uNWJq?=
 =?utf-8?B?ZWp4T0RmODBnT01tTTNLbmNDQnF6YWJXVnBaQmJNVFMvamtrL1hIVXloWHQ3?=
 =?utf-8?B?TVJydHYvRmV4UTFlVnpLbXIrWVAxTWs1cWlvbGgrSDVBeEJiVVlGZVUvYWk0?=
 =?utf-8?B?dG5ySWxoYkxVUW1jTXFYQjcvTXc2V0ZoTnBYME5JS1lPVmwzcFVvalh1Qmkz?=
 =?utf-8?B?RDhMcGVzMWxQeVova010bE1ZTThFZzZ1dTI3R3pqYll2MDlkNUNaV2Y1YkMv?=
 =?utf-8?B?T1o2c2VRSVAwR1hOYUxkRnhTSkdHWGNUQjV0N1lPVmF5dXNNMjBCWWhWeEhX?=
 =?utf-8?B?UG1lMmVrV2labnFUNkwyeFN6dnJjU0VFUzhYWldmYStoTXJlazhDYXMxV0c2?=
 =?utf-8?B?NUxwVEJXUWhBWDN6Nng3bTdsZ2FVOTdXc0tGSG1lL0RnL013WDVnZXd3RDRG?=
 =?utf-8?B?WURlTm44dG5qRWhjU2FWVmU2WXd2dEJROEpaRjYvbHhBblQ4RDBTMUF5ZTJi?=
 =?utf-8?B?eGloSUNNWE8wL0ZGMUk2dThiZmxQM2R3MDFaaEVsODAzZk03T3dIUWJIbnJW?=
 =?utf-8?B?VmhFTFdrUmEvRjRCaFNycXIxdXNHTUsrK0lHbmFxczJFN2EvZlprN2tOYWJ1?=
 =?utf-8?B?VjBIKzRKZ1l4MjE2SGcxVGRpMkJiZVZSVzdOclBMZlRNTVp5UWlyMmYrcXFU?=
 =?utf-8?B?TGlPTVZraUZadFNEUjAvWk9Gbm41T1EwbWRXNEpuUVJLUkVsT25UdGF2NGdo?=
 =?utf-8?B?K0ZwaEpJVDFEL3RSK1pwWlRIWDNpQUxKMWFva0ttRWxodVFlNCswUFZ0QTJG?=
 =?utf-8?B?YnFjRUhJWHRINktsMFZLeFk4Zmw4bXQzWFFmSStMTFh1bG55RndzNkRRVW9C?=
 =?utf-8?B?TnlXUXB3SUkvQkY1M0hMRlVuSEtXTFNYTW1lcEFIS1gzVHh5RWhvY3F0Qk51?=
 =?utf-8?B?ZFhLNzJ5UTYveHZSRTFrejBuTkFnYzRTbGNGNzBiQUxwQjNlTVFoTnJMTFlV?=
 =?utf-8?B?MkdZUEREYVpKdHozQm1qRGVFdGY4RGRiSk5WendrejU5VksrQldDaXJ6aTRD?=
 =?utf-8?B?OUtzWDZsZmtMVnpLeUJOM2YvWWw2TmR6bmg3SzJjdEVyZWpseFNKOEtFbFdl?=
 =?utf-8?B?RFNEellscGlKOUs1cFY3VXZnWjdWQjE4UldsOVJIL2dkdlNpdnNKQlhIYmRP?=
 =?utf-8?B?QjhLelF0aHZPbUkrVFlGM0xTWWd1SXpoUGM5MHZuaWp3WUlhQkNVNnhyQTVE?=
 =?utf-8?B?T0JNT29Qb1lBY3ZyNldUenhubm9tTzgweXAycEp1YldlbVl5Z1UvUnZqdkF4?=
 =?utf-8?B?RmNITnBGT3ZDMm9ONi80ZTJvU054d1d1ZDNnc1FLMjVWQkErdTFHWWFlZXdk?=
 =?utf-8?B?NEZ0TXFpMVY0NVNwczZGNFNCUjdoTjhjcmk1NU5BQXpBSmFyUDVRdzNGdTha?=
 =?utf-8?B?YU0xamp6aU11UldGRWlTeXhab0V6Wm1Sd2FPM0RQVUY2S1V3czZ6bXVJNXVx?=
 =?utf-8?B?RGJKZi9TbFNId0d3UkR6WTdoVnNDQkJGN2RWaHBXWG1QbDhDTEFkWlVZM01i?=
 =?utf-8?B?ODcrSTNKUUx5U3hCRUFmYXVjcVJRbWhqWU80QTdoMXZxVzIya1BKRk9ZeHZy?=
 =?utf-8?B?Z0xOdTlmSVoyZ29RQmVpTkdQUit0Z0JsTTVsZGNERERDVDVnZzNobVZKUEo3?=
 =?utf-8?B?Mkhwbkk2bXA1QitXRlFITlBnVTVtK21LcDI3ME1JakJNM1YzcTUveXJhcnpk?=
 =?utf-8?B?dmd4eFJ0czdIaUVUd3ltQngyNklOM3VmSUNjOWgvSk56blErT0dVRkNTWkdk?=
 =?utf-8?B?cFRlYmRtNGxUcTRRWHZ5MWoyNVJqVzhBaDVqbmQrQVBuRGE1QkE5RnM0U01v?=
 =?utf-8?B?dGRvbXU1QXRiZlg4dVk4THJ3YklDWVk3S0xGMHhIRzdrQ0htaVFzdzRyTzB0?=
 =?utf-8?B?QlhvRHUxa0N1NXh3YVJZcnJZU3g4YlZmTFhiMFZ4MTlRMFIwVkZ2NlgyTkNR?=
 =?utf-8?B?RDlEQitFeUREWUVERE1KNUVua2VsRlNDVXF1WklnUG9FcFI2M2Q5ekdEQTRS?=
 =?utf-8?B?OGwvZFFSUCtWMXZiTXozTDBWd25XQ0RZRHVDYVBDYnZzOUorbjlRYkI0SC9G?=
 =?utf-8?B?ZGM5eklRemhuelNRbEorcW8vbWgyK3pOU2ExR1BDK2pqNWxNTjFYenkyTnVl?=
 =?utf-8?B?dmxvWEhiWjJiQ2dyRzl5TEg5Z3pha1hGUy9XK1B6cGJBMzl4S01vWHN0MTlN?=
 =?utf-8?B?NWl5UVFVSkNwbndHSzNUb1MzL1h6RVpaMm16NzdKYVZzUG5ieUt5UWhmRGZy?=
 =?utf-8?B?bFo3b3BxZng4eFN0MFE5ZWZzd25xRXE4RDQ4MzZQTk5JNm5TaTF6dz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 07d45430-568b-4e60-34e6-08de8a8f371f
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 16:54:44.4682
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: h/0FLL0m6MqTWNVXFE4gVga0ysThkLamu0c0wL8uRhnaTqNtCDKhYp6cu8SLpUgIfr3gqOO7D6VoKC30PNoFsw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR03MB7178
X-purgate-ID: tlsNG-42698a/1774457691-98ABC112-F8D7B9FF/0/0
X-purgate-type: clean
X-purgate-size: 1732

On Wed, Mar 25, 2026 at 05:26:01PM +0100, Roger Pau Monné wrote:
> On Wed, Mar 25, 2026 at 03:56:05PM +0100, Jan Beulich wrote:
> > On 25.03.2026 11:08, Roger Pau Monne wrote:
> > >  * Disallow XENMEM_decrease_reservation until the domain has finished
> > >    creation would fix the issue of pages being freed while pending scrub,
> > >    but it's not clear there might be other usages that would be problematic,
> > >    as get_page() on non-scrubbed pages would still return success.
> > 
> > I agree this is of concern.
> > 
> > > --- a/xen/common/memory.c
> > > +++ b/xen/common/memory.c
> > > @@ -388,6 +388,12 @@ static void populate_physmap(struct memop_args *a)
> > >                              goto out;
> > >                          }
> > >                      }
> > > +
> > > +                    if ( assign_page(page, a->extent_order, d, memflags) )
> > > +                    {
> > > +                        free_domheap_pages(page, a->extent_order);
> > 
> > The pages don't have an owner set yet, so that function will go straight
> > to free_heap_pages(), needlessly passing "true" as last argument. Correct,
> > but (for large pages, which the stashing is about) highly inefficient.
> 
> My bad, I was sure I was using the same freeing function as
> alloc_domheap_pages() on failure to assign, but I clearly wasn't.  I
> will switch to using free_heap_pages().

Coming back to this, I can export free_heap_pages(), but then the call
would also unconditionally have need_scrub == true, as the pages have
been allocated without scrubbing.  So I don't see much benefit of
using free_heap_pages(), the more that it requires making such
function global then.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 16:55:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 16:55:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262796.1555168 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5RW1-0007K6-8k; Wed, 25 Mar 2026 16:55:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262796.1555168; Wed, 25 Mar 2026 16:55:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5RW1-0007Jz-5h; Wed, 25 Mar 2026 16:55:33 +0000
Received: by outflank-mailman (input) for mailman id 1262796;
 Wed, 25 Mar 2026 16:55:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5RVz-0007Jl-Gw
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 16:55:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5RVy-00FAFv-T8
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 17:55:30 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c41380-bab6-0a2a0a5309dd-0a2a450b8d66-6
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 17:55:30 +0100
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c41382-ef63-0a2a450b0019-d1558031b9f1-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 17:55:30 +0100
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-48374014a77so796815e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 09:55:30 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4871176391fsm129951905e9.12.2026.03.25.09.55.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 09:55:29 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774457730; x=1775062530; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=t5K0wfKnJsP9IJpG6BvYI8BWiKuMPSPk7u+DqyMXWb0=;
        b=UC0wr2FfDHh1M0UGd/vlQJOYkrBLKhx/xVj474mys8b5EpZg8OoXFyR5SXqv0A+CHl
         72RF30Vg/SkaozUcqntbxEBqOWuJqwVRXJGpg9NAwOKWBf/Kp1GzL8xfjpZo2cai76do
         zBsDQMzdvtHv2zxj6ruKUtrehj1oVe3LuM9gOyfnPEFxuAGQJyA0z14eJ1QHsmQ1ApJ9
         TbyJ+7HyA2STiB4AwDJWVx9dC5XZuawbpbtGke3FwJcNwdtwe5uRZ79rBewZzw8fGY6h
         7vMqey605JKHuKUm6KT2DLRH8MiCKFy04UrXn9FYzWcfRgr60PKfSJ8Jt5KaIHET8fBX
         0e+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774457730; x=1775062530;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=t5K0wfKnJsP9IJpG6BvYI8BWiKuMPSPk7u+DqyMXWb0=;
        b=hCAcobmX/dTAQ6QzwJW3l55Y1DDxlfXacCpkk9aRcSUudNUR8KAfmFfpFhi+4LU++5
         9pH7HdLgx+bXNZ13Y3y1r1Xf1RbakcaQxN+wRLbB9pdi41EGU3LJErSaCw9SVML2QGei
         Ct+Z7GG0dxnhmS0GiVN0zy4a/dMsVOVPJuQtgvQyc0cJ5LfWNK8nI1cG6JLt6lNh07kL
         4+eDOobPnClGvYFcVW1ukWobwX//0rVLBER6wXCY0YZRe/TrBvPbO5i+HnHDaW/bVmgd
         DVYvi1FD7i/Zz2ZY5oiYPLgwW8fqGdBx4qqgcOUc2Djbgo+wh3tVDACHSZuynwdx6W8a
         Yfvw==
X-Forwarded-Encrypted: i=1; AJvYcCWNDznqc+Eyb0gZGqqKdehOO1qRenPv+B3BeNrHgQgqyVKUBI8uxlu9zCXVcOMdb4jkp0TEgnb6C8E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyapoHZAuew4FB6SpAkozUoQwP2pCCVYhJJShRrZMQrB9gIkrFV
	qVPznewPCbn4oYQar1c17eAfnVbzKnKeo9tCUZNiWoLDmsrxDBJXYbCaI1jOsGn06A==
X-Gm-Gg: ATEYQzyhVwfFzbFCn30F5U+W6XFvmJcc2frFGnmO3BwGB7WO1wGUTCxpX9XDF89/GHS
	5nXEvwT3vxlVp0RouQVJDVj0R7Y88a7QauQCv+qcay/pL+VTrXhC1SLWq7WLhB9iMIjvsAuVqNq
	lzn0qXHs2mDA7HL3xkl2KtRXO0+k+pFVhZdFdm+roCZI8r64oiTJx9V1c+RsYAFyZAatLYXUFqo
	ieoCs0UOJbCjDPDasU7ff5PgrcDwywgz7XsGcgQxTtBMlIF1QdctMVterUPwk6lSvyH0uXCXuA+
	ohKdWTloLOAITqOtWQfYdBcnB/R6eC+HlQCPniynZFqZJ9MW2aT4mid0G5Vdt6ssbU9OgxQM1hI
	TgcSHburol6UJDnBUYyU/i0EKFsbt7zvprYAYXAtwLQAP+NI6ZXQ77L9iBcO5Q+k8HsoaSDMt8D
	//4TTLVsr4z5FL/2dRq/ijVPG8b3ase3YhcyHVnyDz5AFO3PXwIaxauEWpnmw4PE3FpyHcMeXzg
	84hLBPBrHLUJSA=
X-Received: by 2002:a05:600c:4705:b0:487:300:d9ca with SMTP id 5b1f17b1804b1-487160a2a33mr68599505e9.31.1774457730125;
        Wed, 25 Mar 2026 09:55:30 -0700 (PDT)
Message-ID: <81910cb8-554e-4147-bf29-4c518cc9543c@suse.com>
Date: Wed, 25 Mar 2026 17:55:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xen/mm: do not assign pages to a domain until they
 are scrubbed
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: <20260325100803.6640-1-roger.pau@citrix.com>
 <20260325100803.6640-3-roger.pau@citrix.com>
 <73c705eb-95f9-456c-ba0b-c6e0f7730ef1@suse.com>
 <acQMmXyOGFe5AN2i@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <acQMmXyOGFe5AN2i@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1774457730-98ABC112-8309BD3E/0/0
X-purgate-type: clean
X-purgate-size: 1117

On 25.03.2026 17:26, Roger Pau Monné wrote:
> On Wed, Mar 25, 2026 at 03:56:05PM +0100, Jan Beulich wrote:
>> On 25.03.2026 11:08, Roger Pau Monne wrote:
>>> --- a/xen/common/memory.c
>>> +++ b/xen/common/memory.c
>>> @@ -388,6 +388,12 @@ static void populate_physmap(struct memop_args *a)
>>>                              goto out;
>>>                          }
>>>                      }
>>> +
>>> +                    if ( assign_page(page, a->extent_order, d, memflags) )
>>> +                    {
>>> +                        free_domheap_pages(page, a->extent_order);
>>
>> The pages don't have an owner set yet, so that function will go straight
>> to free_heap_pages(), needlessly passing "true" as last argument. Correct,
>> but (for large pages, which the stashing is about) highly inefficient.
> 
> My bad, I was sure I was using the same freeing function as
> alloc_domheap_pages() on failure to assign, but I clearly wasn't.  I
> will switch to using free_heap_pages().

Well, not so much your bad, but likely a result of free_heap_pages()
being static in page_alloc.c.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 17:02:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 17:02:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262815.1555195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5RcX-0001FV-F8; Wed, 25 Mar 2026 17:02:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262815.1555195; Wed, 25 Mar 2026 17:02:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5RcX-0001FM-Bv; Wed, 25 Mar 2026 17:02:17 +0000
Received: by outflank-mailman (input) for mailman id 1262815;
 Wed, 25 Mar 2026 17:02:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper3@citrix.com>) id 1w5RcW-00018Y-0M
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 17:02:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5RcV-005jek-C5
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 18:02:15 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69c41509-bab6-0a2a0a5309dd-0a2a45038590-32
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 18:02:15 +0100
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69c41517-1947-0a2a45030019-d1558029ac02-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 18:02:15 +0100
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-486fb439299so1020355e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 10:02:15 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487117077cbsm138217235e9.6.2026.03.25.10.02.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 25 Mar 2026 10:02:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1774458134; x=1775062934; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WaXXbZJGFw+J/a9/KjyHV/e8LqVzMv38oF803pEEldA=;
        b=smiY0GGz4FIA/6Ohev05TBGT7cyKSsRP2rAUPDurL7VGgGUnL5+dxc3uLSmc11DpdV
         gTK82axJaY70kXMw1Yu4bKSvuWcrW4KQPlx4ed76pw8B5OR3xdcjzPjAll0YkvJ/ntn+
         /VAI3qlR2UF0vKH3eZPlDRQDiUmgl1XLNlhvM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774458134; x=1775062934;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=WaXXbZJGFw+J/a9/KjyHV/e8LqVzMv38oF803pEEldA=;
        b=aApead63ykhcZmI8E3DLZRpcQJg9LHI+dcGAo7maEmP9B6gptc1NNMQXxEiFv0BzNY
         z6IeW7CJKoU1TpIj46ivYEFOsQA/s/qOqYunk5r6+QlOhwiefnTqq88svDIo//Z8jz8L
         driVkk9YkBpbWqkrHs4uPaFEkGN2iSuUji8t4zWgcRWi2H2eI82pSXEv7keK3VXr3RSe
         YCibvQtQBq+4M2noIb+p/6zXtmrNoqQzx33tji3Evqn+k9aSGxlse8CWQRVlZIr/3L7o
         63yniz32saeqSGSmhv0kUtSpqRXIT4CHNRsLV+8iTf91S+lgYH/latOJybezFQXchKqP
         UTZw==
X-Gm-Message-State: AOJu0Yy/4SMg7DCPpc+sgvmI72JFfCEKgHv/+nxXNxofP/KQEkjZ6bFR
	W9ZkosqPqARKMjyccMKBdFOJPk9/pa4ZIW06VfEU90ecbcfosI8SkfIFKOE4JBgukkLNL+B5VWL
	HFZfJ
X-Gm-Gg: ATEYQzw4DRAqaRUvU+sUklom0Dw2w0Ve3/CHLGekmsfmVwPyJ6zl2DSHrfLtl2Lz4wM
	Z6PtKX/09URdhTzDHqWBSVHTXxj2eKNX4iymQzrJnxi3y8gCEwzEJujmiIWty3qXgSes0nP27rD
	zGYIxNBNp9rKM1zwoFD3s6w/umUeLLfc/tmvyaqPdVcMXEGrRFtNEnsLifWnOhvum5AtIyptfm3
	dzbFWMYtuo/2AejB6+lt1L6yNysdFMverncM247K/BY57JDcviF21geCKweUULuFSHqAB9DFmq/
	hpI8HDaXfz+qHqTVVsaN46108oN/tSfomRo+ru9oj3hRJP5joltiu+bHTrrVUCO1/h8KcUrc6mu
	Xm1Q0ggJ0KsMMFrnF+Zx5AK58UZZw76ZflXkQVoKCoqKZuHiDqI8dfKD22JeC9YpKk/li3RXGhC
	OWd+jdoLV8bT97Ineu3dXRXZBwogmnyvPBThrXCPEhqg6vaKqh9wGlejDWNw4TD5QpAUynKOtLI
	lTf3vFR3L+i0es=
X-Received: by 2002:a05:600c:a41b:b0:486:fbe1:2499 with SMTP id 5b1f17b1804b1-48716043a6cmr38693335e9.22.1774458133043;
        Wed, 25 Mar 2026 10:02:13 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 2/2] x86/pv: Provide better SYSCALL backwards compatibility in FRED mode
Date: Wed, 25 Mar 2026 17:02:08 +0000
Message-Id: <20260325170208.1115832-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260325170208.1115832-1-andrew.cooper3@citrix.com>
References: <20260325170208.1115832-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1774458135-EA68172C-9DB9FEFA/0/0
X-purgate-type: clean
X-purgate-size: 2865

In FRED mode, the SYSCALL instruction does not modify %rcx/%r11.  Software
using SYSCALL spills %rcx/%r11 around the invocation, which is why FRED not
doing this goes largely unnoticed.

However, consider the following migration scenario:

 * VM suspends.  Hypercall, so SYSCALL, %rcx/%r11 left unmodified
 * VM moves to a non-FRED system
 * Xen resumes the VM with a real SYSRET instruction

Instead of resuming at the instruction following the SYSCALL instruction, the
VM is resumed at whatever dead value was in %rcx.

In FRED mode, manually adjust %rcx/%r11 when SYSCALL is and SYSRET would have
been used.

Regarding the choice of instructions in eretu_exit_to_guest(), a branch would
be a context dependent 50/50 split (i.e. increased chance of mispredict), and
only saves one instruction.  The CMOVs read the same cacheline that ERETU is
about to process, so are as close to free as we can reasonably get.

Fixes: 76193ef47d91 ("x86/pv: System call handling in FRED mode")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

Slightly RFC.  I'm still still completing the testing for this.
---
 xen/arch/x86/traps.c             |  2 ++
 xen/arch/x86/x86_64/entry-fred.S | 12 +++++++++++-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index b6b119769722..0013606baa19 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -2405,6 +2405,8 @@ void asmlinkage entry_from_pv(struct cpu_user_regs *regs)
 
             regs->ssx = l ? FLAT_KERNEL_SS   : FLAT_USER_SS32;
             regs->csx = l ? FLAT_KERNEL_CS64 : FLAT_USER_CS32;
+            regs->rcx = regs->rip;
+            regs->r11 = regs->rflags;
 
             if ( guest_kernel_mode(curr, regs) )
                 pv_hypercall(regs);
diff --git a/xen/arch/x86/x86_64/entry-fred.S b/xen/arch/x86/x86_64/entry-fred.S
index 2fa57beb930c..e9c84423dacd 100644
--- a/xen/arch/x86/x86_64/entry-fred.S
+++ b/xen/arch/x86/x86_64/entry-fred.S
@@ -4,6 +4,7 @@
 
 #include <asm/asm_defns.h>
 #include <asm/page.h>
+#include <asm/processor.h>
 
         .section .text.entry, "ax", @progbits
 
@@ -26,7 +27,16 @@ FUNC(entry_FRED_R3, 4096)
 END(entry_FRED_R3)
 
 FUNC(eretu_exit_to_guest)
-        POP_GPRS
+        /*
+         * PV guests aren't aware of FRED.  If Xen in IDT mode would have used
+         * a SYSRET instruction, preserve the legacy behaviour for %rcx/%r11
+         */
+        testb   $TRAP_syscall >> 8, UREGS_entry_vector + 1(%rsp)
+
+        POP_GPRS /* Preserves flags */
+
+        cmovnz  EFRAME_rip(%rsp), %rcx
+        cmovnz  EFRAME_eflags(%rsp), %r11
 
         /*
          * Exceptions here are handled by redirecting either to
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 17:02:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 17:02:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262813.1555177 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5RcU-0000oR-T3; Wed, 25 Mar 2026 17:02:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262813.1555177; Wed, 25 Mar 2026 17:02:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5RcU-0000oK-QD; Wed, 25 Mar 2026 17:02:14 +0000
Received: by outflank-mailman (input) for mailman id 1262813;
 Wed, 25 Mar 2026 17:02:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper3@citrix.com>) id 1w5RcT-0000o8-O4
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 17:02:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5RcT-005jek-0l
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 18:02:13 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69c41509-bab6-0a2a0a5309dd-0a2a45038590-26
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 18:02:12 +0100
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69c41514-1947-0a2a45030019-d155802ee4b5-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 18:02:12 +0100
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-487012ce896so524955e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 10:02:12 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487117077cbsm138217235e9.6.2026.03.25.10.02.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 25 Mar 2026 10:02:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1774458132; x=1775062932; 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=vGQRrkza3v1ao6NU9ioINrAMRJgBHyTENcqPj/bFcHQ=;
        b=vx5RliqRoieb5FYjyg4NhO1dwXnVhYXF+ZpJGfo23qH2N+oZKY2PqmMeem1IH39KOi
         SxHAXmJWmhDRlAtWU5ndyikh3p1UMoF75ZMJ3RpGMltc1SLQvQa+3nEhZ3c+3q6MxqNN
         WCtRobjiCxNPF7DA2ixyif2sszq6NoyTByd8c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774458132; x=1775062932;
        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=vGQRrkza3v1ao6NU9ioINrAMRJgBHyTENcqPj/bFcHQ=;
        b=jgqoYnmBcxHYwjrAco2efHZbBRT2VmzXuPjWJX8+xbQL81B9/0+SHEgYXgNenxT48/
         YqSwr7CEAj8/SzPKfLtSvk05gkAJRiour5yarkA9oc9tZjTa3oZ2xeycrNAhGCHBL3Ks
         Zn/+2de/R0Chwm9Ib9HSq/LxDJxxgfkdn10NIZZiLJHdhxsDaumEhBUu1tRcICnDmUqX
         ijUAWyf+Naz21S5sjT+ZTmR9m3szbfne4CE0rwvVtzLH6K63i4TxcSMInQCVkpRSgZOS
         7AxL/RdUQAwoTHPZ6s+0UaG3zzcMzjbpRukDPswAI6tMrTG/BZNkq+kgJizvleOqzEpA
         +xrw==
X-Gm-Message-State: AOJu0Yw96TKm4tnT1X7LzSbt81pNS+D1RgN6RXhEGcKEwqmsioov21HU
	11nJoIz+ZP8WLZEpdUD1jvSVzScKjXnQRVN+AOmWbceO0Y/LU/W5FJJssG6SP0kVNFxfKqw5kge
	KZwq8
X-Gm-Gg: ATEYQzzcl4+Mer42Q2miDmQKbodgGMZssOhfBtR2TsrHRb2Xy6F9IajytttQer4rYqT
	m5Po4xYhylH5CXZD8+fVGyhCn8a6IRrLg8a1G/LqcqdiGHL+nEF9FJUvmMwpBdfnzz4pgbg1jAU
	wZ3oU/Cn0ImI75Qp96mNpdNkjRyCAwE7JI8CylVUf1sDYzTFmGdSWx/BYjFbE9hJlphQ6kY48R4
	EdwQu0qYblAM/3XqfPpke+QhUvMj+OxdC7j5F+gBB00AoGgGRaVjMFCNOQybTPIataZURqus+m0
	J5GlhYB8LkabZ5kUw9ky5JRFQSN4DSC81y19ETzmoGIeVdQ5zxA1JopBaWko9LByyhZqhlyX84w
	JH5QWH+6E1LUB7DqB4U5eBbdadrNqDmsGksZ0ySJpQJrVRFpdKAZkhNT4M7BJP/94+uZwG+BtEB
	FtEwDzBMsYAVz8cmQ+DKksbwHlKZzV32bsShDtjJF+xm+NEpGQhGFh7Wnfyqa7R3f1tlM7uXZP5
	8Hq
X-Received: by 2002:a05:600c:5296:b0:485:364e:934e with SMTP id 5b1f17b1804b1-4871605cec5mr67256235e9.21.1774458131150;
        Wed, 25 Mar 2026 10:02:11 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 0/2] x86/fred: Fix SYSCALL handling
Date: Wed, 25 Mar 2026 17:02:06 +0000
Message-Id: <20260325170208.1115832-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1774458132-EB08672C-D0771D19/0/0
X-purgate-type: clean
X-purgate-size: 427

Andrew Cooper (2):
  x86/fred: Fix FRED name in comments
  x86/pv: Provide better SYSCALL backwards compatibility in FRED mode

 xen/arch/x86/include/asm/x86-defns.h        |  2 +-
 xen/arch/x86/traps.c                        |  2 ++
 xen/arch/x86/x86_64/entry-fred.S            | 12 +++++++++++-
 xen/include/public/arch-x86/cpufeatureset.h |  2 +-
 4 files changed, 15 insertions(+), 3 deletions(-)

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 17:02:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 17:02:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262814.1555182 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5RcV-0000r6-4v; Wed, 25 Mar 2026 17:02:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262814.1555182; Wed, 25 Mar 2026 17:02:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5RcU-0000pw-WB; Wed, 25 Mar 2026 17:02:14 +0000
Received: by outflank-mailman (input) for mailman id 1262814;
 Wed, 25 Mar 2026 17:02:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper3@citrix.com>) id 1w5RcT-0000o9-Pt
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 17:02:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5RcT-00HVHT-5m
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 18:02:13 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69c41509-2eae-0a2a0a5409dd-0a2a4501c680-34
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 18:02:13 +0100
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69c41514-6400-0a2a45010019-d155802fbd6e-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 18:02:12 +0100
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-486ff201041so710935e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 10:02:12 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487117077cbsm138217235e9.6.2026.03.25.10.02.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 25 Mar 2026 10:02:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1774458132; x=1775062932; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LmcFhx4OSAl5i+MrI+E6cImUT8FkRbryJfKmykppon0=;
        b=b99jg8PqqcZG/RfDEfgzRXhpzsYNcOZ6gblCeW1cSkAaK3Buf/+NjTybFijYABaux+
         f04/xsDPx0hrZLSWt7aJypgLMmyg3bA25RJI6XFIi9bjM9GueLF93+X09ddWmM33YHW6
         GK0B4UndT4exKNEehtwkL3SlRNtwWOK7RA79g=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774458132; x=1775062932;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=LmcFhx4OSAl5i+MrI+E6cImUT8FkRbryJfKmykppon0=;
        b=jbUDp7TfzGGcs/OWrpuzpGXiSGM2qnyqUhnSNnRv26xBAYrXS2JLJzSOqRz1UKfszn
         5VhaW3+tA0OG/82EtMAKcFQn2kHQ2L6IJZsBYsXDmgzHlrDlimU2iUmBs7gsMKnnQFzD
         TqGmju/4pIy0aVmUAPxNnDptvyUpFehsu+DkeqElFU8sp67jhtnWUkHMKOJbBbgBEBJ3
         tMt36Gel815ZxN6MnjIw+kvjpk+OaqsS/+r2GDqYYB0FgZd+ngRdowo1OuOyWCqmd5Zf
         hxjbBCP0SCsO774FKxb8Kugj3Dqgf6W21PpWJpT3xa8Y/OxDGjL69LyS7Xmf//65kQno
         8FhA==
X-Gm-Message-State: AOJu0YwAmKSk5NwDLGwB6Olv5lLlIZkS/3/uIC6s7Y8lMrPWAfjXie4l
	4KB1dAAw6fo+Vb/pJJX1g89OrUXbRDTxUuJh5ciE42fSosSi5rgOLdIWU2Eh0e1/bL5DST8Rr5j
	Kl9/W
X-Gm-Gg: ATEYQzwpHNIKpTLSFqUV3I3xjJZ5uN/e1PgdxM1xrXSnXyCzrZiF+7vGnZcswXQXK1U
	alWbo20q2gDzUf3KrbM9wu0xmQH8QW3LwGjgfcpmZGsNO3GFZl3/cVF5c6Pud2gNo6K+3lHR1Q+
	rB1XP6lX76WUZkb+4wce1UVqD+4KL9iE8mQcYPiOHZ3YiOshJq1+4gSUybOhjoTEwPGlEp4xyyJ
	Zy6dzl47t/z4zY2hgdslpSTuJXJKaPzNuGFBLYuHQxTtSyjXpr78vuVbjk5icJ2yXPj+Lfrsa3h
	Iy6SK0bwNRhbkuUVsVmPqmzaJNlTf8gwQ/yy45QOGnId6bF41GDIZencWccgec4LEv/zmdlgFQI
	C64yaTjE7g8SoBJHWhdb5N64A1g1fcTEP+tKpSQwANOTmF45AjdXbZzyspjoRWYkua45z0noz3Y
	qi8RWXlYKpRCLCAiW7P+0sX5WOezB9d2SWSD9fAy8IJX5zNFK+mT8ci6nwtL4fMegOGRabWTkNg
	b6DEyBpT+ejg8M=
X-Received: by 2002:a05:600d:1c:b0:485:3fe6:2209 with SMTP id 5b1f17b1804b1-48715fd4de3mr53159555e9.11.1774458131958;
        Wed, 25 Mar 2026 10:02:11 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 1/2] x86/fred: Fix FRED name in comments
Date: Wed, 25 Mar 2026 17:02:07 +0000
Message-Id: <20260325170208.1115832-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260325170208.1115832-1-andrew.cooper3@citrix.com>
References: <20260325170208.1115832-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1774458133-22AE4DF3-EF2AF4A8/0/0
X-purgate-type: clean
X-purgate-size: 2004

The patch introducing these constants predate the feature being renamed.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/x86-defns.h        | 2 +-
 xen/include/public/arch-x86/cpufeatureset.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/include/asm/x86-defns.h b/xen/arch/x86/include/asm/x86-defns.h
index edeb0b4ff95a..6dae36ef8134 100644
--- a/xen/arch/x86/include/asm/x86-defns.h
+++ b/xen/arch/x86/include/asm/x86-defns.h
@@ -82,7 +82,7 @@
 #define X86_CR4_PKE        0x00400000 /* enable PKE */
 #define X86_CR4_CET        0x00800000 /* Control-flow Enforcement Technology */
 #define X86_CR4_PKS        0x01000000 /* Protection Key Supervisor */
-#define X86_CR4_FRED       (_AC(1, ULL) << 32) /* Fast Return and Event Delivery */
+#define X86_CR4_FRED       (_AC(1, ULL) << 32) /* Flexible Return and Event Delivery */
 
 #define X86_CR8_VALID_MASK 0xf
 
diff --git a/xen/include/public/arch-x86/cpufeatureset.h b/xen/include/public/arch-x86/cpufeatureset.h
index 9cd778586f10..3bc4f5cad666 100644
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -310,7 +310,7 @@ XEN_CPUFEATURE(ARCH_PERF_MON, 10*32+8) /*   Architectural Perfmon */
 XEN_CPUFEATURE(FZRM,         10*32+10) /*A  Fast Zero-length REP MOVSB */
 XEN_CPUFEATURE(FSRS,         10*32+11) /*A  Fast Short REP STOSB */
 XEN_CPUFEATURE(FSRCS,        10*32+12) /*A  Fast Short REP CMPSB/SCASB */
-XEN_CPUFEATURE(FRED,         10*32+17) /*   Fast Return and Event Delivery */
+XEN_CPUFEATURE(FRED,         10*32+17) /*   Flexible Return and Event Delivery */
 XEN_CPUFEATURE(LKGS,         10*32+18) /*   Load Kernel GS instruction */
 XEN_CPUFEATURE(WRMSRNS,      10*32+19) /*S  WRMSR Non-Serialising */
 XEN_CPUFEATURE(NMI_SRC,      10*32+20) /*   NMI-Source Reporting */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 17:29:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 17:29:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262877.1555205 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5S2O-0005yn-GY; Wed, 25 Mar 2026 17:29:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262877.1555205; Wed, 25 Mar 2026 17: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 1w5S2O-0005yg-By; Wed, 25 Mar 2026 17:29:00 +0000
Received: by outflank-mailman (input) for mailman id 1262877;
 Wed, 25 Mar 2026 17:28:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <mhklinux@outlook.com>) id 1w5S2N-0005ya-1Y
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 17:28:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5S2M-006k1Q-Dp
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 18:28:58 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <mhklinux@outlook.com>)
 id 69c41b5a-e002-0a2a0a5209dd-0a2a4505e8f0-0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 18:28:58 +0100
Received: from [52.103.1.7] (helo=BL2PR02CU003.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <mhklinux@outlook.com>)
 id 69c41b55-5aeb-0a2a45050019-346701072f73-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 18:28:54 +0100
Received: from BN7PR02MB4148.namprd02.prod.outlook.com (2603:10b6:406:f6::17)
 by SA3PR02MB11069.namprd02.prod.outlook.com (2603:10b6:806:45f::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Wed, 25 Mar
 2026 17:28:50 +0000
Received: from BN7PR02MB4148.namprd02.prod.outlook.com
 ([fe80::6007:d1a1:bcf9:58ef]) by BN7PR02MB4148.namprd02.prod.outlook.com
 ([fe80::6007:d1a1:bcf9:58ef%2]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026
 17:28:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=outlook.com header.i="@outlook.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=A7niL8dK+tae6540T7P32RBaytyVW7zolF8lluf0r4R160iZvxMe8wz0w6vbYtaQIpwAjSMDr+dMe7EGtduuKqfdos64LihelGZuCCOvseUiqQzHnwIqIsGfLAquA+kP1kaJC4nC0Juoh386GRR1UboUJt1ZJpTBqskj9+q4dqEkMD+eo37Daomf0FTM/llT3T+FkOsxf6ip5NsucUlAUbbIKFudkCTIevCZSpHq1zthYC9rHMNAlt+RoZtUcQnHPGPeFUdpTQr5dFiDq9+qd6tmTeP8UAOZQdiObQLazoX5D5aGbLZORgkibaii+N6nHQuWHwzincJVMPUJAS3QKA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XxHfHViKfT/KJvdZf18l85ejznK+DDKKxrW5WwShbCU=;
 b=UQ+SKI6p0Uxa6vVjtOYIiFTOYBWymNEmhVqJEKQ2Ufm+ODmhzci0x2irjrsmwG64klbVF9J7sj+F2jQoHC3uAGoJ1htf8Uqhz3S0bUayiUYcr4vKyGe+wHmjOkEx2Bs9ConhKsB3+SHH7xSGCfcRuSpMJOlOXtyhPJxAKBwecZrJLzflw7mt7kQKuKe37lFnilDoVuvFx88wLp/3c8C1q9dOsSsCLXX9tPsOz9ZAYgYY6FW08a6ykjdyOCuVGAthPDR7bsWiN/7eC28/QRDASNCgLixtRiDxD1Ru8Ujfxy6iJaisNN5X6xet/Pa5o4QTajUbJcfLdjpiqUHP1Bv8Lg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none;
 dkim=none; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XxHfHViKfT/KJvdZf18l85ejznK+DDKKxrW5WwShbCU=;
 b=GTqwa1eWCRPC2rPEJoIg/aO0mDmO8aFoToC/PtO/QThE7d3SMDxLssVR/NFejVM+Y9Hwv6sZKhwmiGQvkBk7aD6FuxiBXjz01Bs/kDXcuattVT5iNAmikOt+xf1WFvobaERn2DKK4x5pk8fOblaBeuPQUyjxzwIKEksFKdZoX5fiLRr5njHKSqVs83dhBG3WVS2NTYEAtSFViFFeDuHowwM7hPDF4Dz2V2Lr0Lgp3bgpjvIvy2j88oZDVTzm0FVKbEAsmPQKIbfjqEP3Ttr32ZNbLlCvovbwSvq6kJ/xwEg5JXYa7qwEoHLp/iqJjT5UFZvY3jw+p+xihJljvzUALQ==
From: Michael Kelley <mhklinux@outlook.com>
To: Danilo Krummrich <dakr@kernel.org>, Russell King <linux@armlinux.org.uk>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>, "Rafael J. Wysocki"
	<rafael@kernel.org>, Ioana Ciornei <ioana.ciornei@nxp.com>, Nipun Gupta
	<nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>, "K. Y.
 Srinivasan" <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Wei
 Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>, Long Li
	<longli@microsoft.com>, Bjorn Helgaas <bhelgaas@google.com>, Armin Wolf
	<W_Armin@gmx.de>, Bjorn Andersson <andersson@kernel.org>, Mathieu Poirier
	<mathieu.poirier@linaro.org>, Vineeth Vijayan <vneethv@linux.ibm.com>, Peter
 Oberparleiter <oberpar@linux.ibm.com>, Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>, Alexander Gordeev
	<agordeev@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>, Harald Freudenberger
	<freude@linux.ibm.com>, Holger Dengler <dengler@linux.ibm.com>, Mark Brown
	<broonie@kernel.org>, "Michael S. Tsirkin" <mst@redhat.com>, Jason Wang
	<jasowang@redhat.com>, Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	=?iso-8859-1?Q?Eugenio_P=E9rez?= <eperezma@redhat.com>, Alex Williamson
	<alex@shazbot.org>, Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, "Christophe Leroy (CS GROUP)"
	<chleroy@kernel.org>
CC: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"driver-core@lists.linux.dev" <driver-core@lists.linux.dev>,
	"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>,
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"platform-driver-x86@vger.kernel.org" <platform-driver-x86@vger.kernel.org>,
	"linux-arm-msm@vger.kernel.org" <linux-arm-msm@vger.kernel.org>,
	"linux-remoteproc@vger.kernel.org" <linux-remoteproc@vger.kernel.org>,
	"linux-s390@vger.kernel.org" <linux-s390@vger.kernel.org>,
	"linux-spi@vger.kernel.org" <linux-spi@vger.kernel.org>,
	"virtualization@lists.linux.dev" <virtualization@lists.linux.dev>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>, Gui-Dong Han <hanguidong02@gmail.com>
Subject: RE: [PATCH 04/12] hv: vmbus: use generic driver_override
 infrastructure
Thread-Topic: [PATCH 04/12] hv: vmbus: use generic driver_override
 infrastructure
Thread-Index: AQEWuxLbDbmJwzc+SqngUlED+v4GuwG+YWLCtz2FqZA=
Date: Wed, 25 Mar 2026 17:28:49 +0000
Message-ID:
 <BN7PR02MB414825D0532A1DFE16F3B671D449A@BN7PR02MB4148.namprd02.prod.outlook.com>
References: <20260324005919.2408620-1-dakr@kernel.org>
 <20260324005919.2408620-5-dakr@kernel.org>
In-Reply-To: <20260324005919.2408620-5-dakr@kernel.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BN7PR02MB4148:EE_|SA3PR02MB11069:EE_
x-ms-office365-filtering-correlation-id: 3043ded6-cfcb-46d1-33ce-08de8a93fa3b
x-microsoft-antispam:
 BCL:0;ARA:14566002|13091999003|461199028|8062599012|19110799012|8060799015|41001999006|31061999003|37011999003|15080799012|1602099012|53005399003|40105399003|31055399003|440099028|4302099013|3412199025|10035399007|102099032;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?xDdh4OAArEx6ipBroHecRSDruWPZ8ExFDTLtZ5cfbygyWS3S9xLqnFxe5s?=
 =?iso-8859-1?Q?a+ujbZc8vkR+pPBqoIu5ezFO7ZTQ0YMwUIho6WDhB8OHb5pGXMG44l5HxP?=
 =?iso-8859-1?Q?2vFoGJnVFSczIt6xeqUty9w+A0CzDDQjzi/ah2ScPaReFloPOT9u920x/Q?=
 =?iso-8859-1?Q?to6/PgXLfCt/+1NiOgPNFWZDryyzPWZlQXuPs5B9eLA0b/oJZLe55S1pa9?=
 =?iso-8859-1?Q?Y36FcKSy427n3M2rboUDjlP99+ndwk0CR6mUIm+t+dqAD2cOypVbw879Hi?=
 =?iso-8859-1?Q?XZIuNTaV1JlNfgfQ2T2w8eiG4zIyG1JIFswZ1DeYcdEYrMZauDEI7uGISt?=
 =?iso-8859-1?Q?C3RZ9ey0pFmhuctIIHxHUvs4oS968ub/ml+NRRJm6z8h+FzlC1Cp8KkCnt?=
 =?iso-8859-1?Q?voV3ynhpZRsb6Fjo7N+tiy2Vdvk+7L/rnHwk2/6toeLMDYknHd/nNjFhSG?=
 =?iso-8859-1?Q?6UyvYRI01YvAMZ6fpkCv2wF6CnAfZs0bcZJvXLDOvGsPbp93+DduaG9xGm?=
 =?iso-8859-1?Q?VNmNwcarrgCyoijB37EBaJbfXXLYpiPUrFJ2tWYHgjTmtbDt19IVmwgGcK?=
 =?iso-8859-1?Q?Gy5QSXMYKvy04YgQNa0RiQWKi0F9ECheTBwVoamVN5A/vj0XV4KGHdQgLa?=
 =?iso-8859-1?Q?3Rj1TcVwREklQpnpiFLI320GaEUL8JkxffxhJ8HUC5sPTYaKwwLKp3cj8Z?=
 =?iso-8859-1?Q?iwncBsf9WLRorbM8jkj+jKBb6zWet+qu83dQbCDgs0WXuaWTqnQTvSE5cy?=
 =?iso-8859-1?Q?+tm/BjYApvnbeiGnEbf/xCGzrXL55OcdWW0B6RY0Jadk7DyPAfgedFTiy3?=
 =?iso-8859-1?Q?3k+KbsMfO0zJWK9is3LGC1Vvoe7L9nrGWGQsOQPldv0fHlJaldowbAKDv4?=
 =?iso-8859-1?Q?9WNZYQdcXB4eG4iY0X5grHsh382uInTvK6EsWF4nsumGRenwLfI73pa7HL?=
 =?iso-8859-1?Q?cUP9jrZdOJlkwqHHyqi/bpuaH272HXE+UR5s2YocuLCK69o9dJOQXL1r4T?=
 =?iso-8859-1?Q?f9ObHjpDhoKGIUoEBowjh+YN0hrnlFaKaBaXFHhMhk4ktfvWaouBlSiRV/?=
 =?iso-8859-1?Q?QBwKb0V7oNXWC6MaKJYDN9MExgBx8a9akOy1PyhzXvSlPjBPuvT8dyKhFS?=
 =?iso-8859-1?Q?TMkVJyHhlyaWETFYlmQ4y4/joJuO/fBGf1cDUcsNn5dokg1D5e47+l7AbL?=
 =?iso-8859-1?Q?QKRZx67WyvRLZEzVfZIXyLC/h4GjRDfwqPs=3D?=
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?mFtu/wRLMR80m+TtFnxJ48B9YizrMj6EnaIIOgVUnJ0WRooSmL4s/c64+0?=
 =?iso-8859-1?Q?BRUpvbE6jLLeEAcXqx2z4Oia+NoNpzg4qpVdbCK1F33yVfJ0zP37/uCCf6?=
 =?iso-8859-1?Q?dStD6w9DHSf0J29wLC7/fB0Iiw1A4kEzhFThe2gAQuSTaHSMPXVukYVdu5?=
 =?iso-8859-1?Q?0ZEjvHG2Mst9TO4qnhcP+dYVnrARk3WycHxGa98pqk3hMlO41QUhPYyD1S?=
 =?iso-8859-1?Q?qiMDNp3LLTXbcLVc7PkBNSzg723bKdZ9W77OvGgSz6NEe/VWl+YFcp5UXu?=
 =?iso-8859-1?Q?uWyoHtnrwG8pvZsn0GQ7kS5IyNhhZ/0CT2WlfY2vwOYM3zUkJi1WNStsrh?=
 =?iso-8859-1?Q?rEeIiWXucV3wjUiPTz/aVCxMVtn/ayI7vSFfeBMfR0D6UO1E7y2lOh+vYz?=
 =?iso-8859-1?Q?hub3yazex+VoZxOSVu39cQn/yIsTS9/T9SNsjUBnGFySpbcr4IFalfEoIo?=
 =?iso-8859-1?Q?W4yWlZVzYkmIcRmHUh3ZfHAMPQRyUImFPh1vYEa/jcoP1MDvrD9PCZICjQ?=
 =?iso-8859-1?Q?ViOywWR/g3MqPViFUdoiWfR2VlNKAKtHCqzTFtjGap7m0iH7H5Q5OLOCWa?=
 =?iso-8859-1?Q?wTgsyoosfRgaNXvKo8Blw5yxmPDzmfznJCcXqHgC+RobZac3e75k80KtCm?=
 =?iso-8859-1?Q?/ApbKF6+ybIwWQsmEbR2hNcBOa7t+ObJ8WloPHrGk3Bdp1mKuK3kQIJ49+?=
 =?iso-8859-1?Q?wmQ0tOgrN3UVjyI0mFdllicH3BNNTQQkcbVxRkGFW7MrPkCxkevIzQLH+5?=
 =?iso-8859-1?Q?N8tLzVGJXVMIl4H0Q4qgLgYLP+iPV8nHrDcJnZ6K+wpaIiULPdOS/uHLJ1?=
 =?iso-8859-1?Q?tfEdyILZHzwZrK2C2wrXMOVb2vq7gRtsLkHNMVq1lTOpJLowDRfkmaLfLo?=
 =?iso-8859-1?Q?8A+xgwdZry5BIGfYE6Q7NMsfKn+g8rIp8/yamr4R8sgTqAaWBHQESvqblI?=
 =?iso-8859-1?Q?TieTWqxSo5HJ3TDHVgkRXgC63CDxzg2dIKF1J1sKm7boa7ig7Rp84upZE+?=
 =?iso-8859-1?Q?Rs5Xq90tdKxWHNQpe29DvSEwVlQYmqVSx9LGSXuExmKIkiHKcS0Xn4z7//?=
 =?iso-8859-1?Q?lErzUgGK2FNrC9iFQzFGrg584FgJDjKQnITcprs8TI8wtoUhj+Vv8z9IM3?=
 =?iso-8859-1?Q?vFt7aNk/Y42iuZkeYSqFghCstl976KI29cqIl5P0iUo9tokW5Usfe89+od?=
 =?iso-8859-1?Q?na9qZS6uBtNnD8RDxUr2s6PkOUJQ/EhqJtxp6Kf2m2BVGLOjLK/D4E73A7?=
 =?iso-8859-1?Q?SZHPF6ZjZaVF78TnsLE8Jfcov57HBw3DxSgPk40VzlHZwuXya3ffTcEkSZ?=
 =?iso-8859-1?Q?OJ/IWTK++eEIt6tM0MpbZ31JfyDD3jp9XgyWNWJKjren3/fsE6hULgGP8l?=
 =?iso-8859-1?Q?X9qaEoQ7lAXLAsR/ksnRqKJWLh/SiBnTac7kf6PE/qG2TM4OlmzJw=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BN7PR02MB4148.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-CrossTenant-Network-Message-Id: 3043ded6-cfcb-46d1-33ce-08de8a93fa3b
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Mar 2026 17:28:49.5574
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR02MB11069
X-purgate-ID: tlsNG-c201ff/1774459735-81F5D488-FCD1E774/0/0
X-purgate-type: clean
X-purgate-size: 4105

From: Danilo Krummrich <dakr@kernel.org> Sent: Monday, March 23, 2026 5:59 =
PM
>=20

In the patch "Subject" line, the prefix for changes for vmbus_drv.c has
historically been "Drivers: hv: vmbus:".  It's a mouthful, but has been kep=
t
fairly consistent over time.

> When a driver is probed through __driver_attach(), the bus' match()
> callback is called without the device lock held, thus accessing the
> driver_override field without a lock, which can cause a UAF.
>=20
> Fix this by using the driver-core driver_override infrastructure taking
> care of proper locking internally.
>=20
> Note that calling match() from __driver_attach() without the device lock
> held is intentional. [1]

I've tested this patch in a Hyper-V VM with VMBus devices. Did a simple
VMBus driver override, listed the overrides, and then removed the override.
All the right things happened with driver binding, unbind, etc.

Tested-by: Michael Kelley <mhklinux@outlook.com>

Modulo updates to the comments that I've noted below (and the patch
Subject line mentioned above):

Reviewed-by: Michael Kelley <mhklinux@outlook.com>

>=20
> Link: https://lore.kernel.org/driver-core/DGRGTIRHA62X.3RY09D9SOK77P@kern=
el.org/ [1]
> Reported-by: Gui-Dong Han <hanguidong02@gmail.com>
> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=3D220789
> Fixes: d765edbb301c ("vmbus: add driver_override support")
> Signed-off-by: Danilo Krummrich <dakr@kernel.org>
> ---
>  drivers/hv/vmbus_drv.c | 36 +++++-------------------------------
>  include/linux/hyperv.h |  5 -----
>  2 files changed, 5 insertions(+), 36 deletions(-)
>=20
> diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
> index bc4fc1951ae1..bc8dfd136f3c 100644
> --- a/drivers/hv/vmbus_drv.c
> +++ b/drivers/hv/vmbus_drv.c

[snip]

>=20
> @@ -711,9 +682,11 @@ static const struct hv_vmbus_device_id
> *hv_vmbus_get_id(const struct hv_driver *
>  {
>  	const guid_t *guid =3D &dev->dev_type;
>  	const struct hv_vmbus_device_id *id;
> +	int ret;
>=20
>  	/* When driver_override is set, only bind to the matching driver */

This reference to "driver_override" in the comment was originally to the
"driver_override" field in struct hv_device, which has now gone away. Bette=
r
wording would be "If a driver override is set, only bind ...."

> -	if (dev->driver_override && strcmp(dev->driver_override, drv->name))
> +	ret =3D device_match_driver_override(&dev->device, &drv->driver);
> +	if (ret =3D=3D 0)
>  		return NULL;
>=20
>  	/* Look at the dynamic ids first, before the static ones */
> @@ -722,7 +695,7 @@ static const struct hv_vmbus_device_id *hv_vmbus_get_=
id(const struct hv_driver *
>  		id =3D hv_vmbus_dev_match(drv->id_table, guid);
>=20
>  	/* driver_override will always match, send a dummy id */

Again, the reference to "driver_override" no longer makes sense. The
original comment is a bit opaque in its own way. Let me suggest this new
wording:

If there's a matching driver override, this function should succeed. So
return a dummy device ID if no matching ID is found.

> -	if (!id && dev->driver_override)
> +	if (!id && ret > 0)
>  		id =3D &vmbus_device_null;
>=20
>  	return id;
> @@ -1024,6 +997,7 @@ static const struct dev_pm_ops vmbus_pm =3D {
>  /* The one and only one */
>  static const struct bus_type  hv_bus =3D {
>  	.name =3D		"vmbus",
> +	.driver_override =3D	true,
>  	.match =3D		vmbus_match,
>  	.shutdown =3D		vmbus_shutdown,
>  	.remove =3D		vmbus_remove,
> diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
> index dfc516c1c719..bf689d07d750 100644
> --- a/include/linux/hyperv.h
> +++ b/include/linux/hyperv.h
> @@ -1272,11 +1272,6 @@ struct hv_device {
>  	u16 device_id;
>=20
>  	struct device device;
> -	/*
> -	 * Driver name to force a match.  Do not set directly, because core
> -	 * frees it.  Use driver_set_override() to set or clear it.
> -	 */
> -	const char *driver_override;
>=20
>  	struct vmbus_channel *channel;
>  	struct kset	     *channels_kset;
> --
> 2.53.0
>=20



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 17:57:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 17:57:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262908.1555214 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5SU1-0002J2-JX; Wed, 25 Mar 2026 17:57:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262908.1555214; Wed, 25 Mar 2026 17: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 1w5SU1-0002Iv-Fa; Wed, 25 Mar 2026 17:57:33 +0000
Received: by outflank-mailman (input) for mailman id 1262908;
 Wed, 25 Mar 2026 17:57:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w5SU0-0002Ip-40
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 17:57:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5STz-00Djdd-GA
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 18:57:31 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c421f6-5cb7-0a2a0a5109dd-0a2a450895de-16
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 18:57:31 +0100
Received: from [52.101.62.3]
 (helo=DM5PR21CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c4220a-1950-0a2a45080019-34653e0333f2-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 18:57:31 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH7PR03MB7834.namprd03.prod.outlook.com (2603:10b6:610:250::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Wed, 25 Mar
 2026 17:57:22 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026
 17:57:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FpA0x0MiyKe+UFkaZE24Px6Y705K0b0BBqnGYrlctsJ7LwcWBXLMTMOa1Wa2g5b+/Gi2ivIfLynBRtTkp1rZHv+8W/SY8ZB9aMgJE3uFIP2ZyJc4YYaluHhNjljX7R0C3nQ0Ks7Kq/JezpEfrIwMWmKIDI2G2IAbwpK/9+rlayVpwgJXAsyi/Mq9vP4E2EDxX7/k/WE9LBUb2PiJgPMy8pWF1bzQfzDlvR2Lf4gWub5zczXUVryYuxzgRz4/qLIZV/tB26Exvr8It4Z/YmB30ZTfXX8NB5RjfO638vLac5cJj1bgm98zF72YS88fakctQLPmTyTxfHJbfvwHCC71sg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vDI5HUHEtewLgS8n/ZdbVrbOmqMLBLVgjnZksf+/KaM=;
 b=DxN/Vd3DYW3WW3sj1riV28FzA+WkBMA7U0neD7+cz9TtA0g/ZlREmTdV3XDOtqDORysPtrx0xnwRWtjHNCAocpbm0aNCx5+2Q9dyKf76TFbNAEnlO9K79ltOL6ac7ECRVTa8qnkGF/syzGJLopDBsaV4DlFrL1KI7MXXsZU08BiGqllFWyRnqjmFiX764bGb/3km5wcj/2+LsMPJmg5fiAgl2jSa0IJPl9QZ75fVtMbpko4RZBlUd4XUmqlpsBKz8881cvKZIGrvrpAJ8SAdM9rgEWAovHEKwkAdoTRbm/e7A/D7s9z6PjHPgJ4Ywxapk3JktdrEnmoRh3WkvAssqA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vDI5HUHEtewLgS8n/ZdbVrbOmqMLBLVgjnZksf+/KaM=;
 b=JmOzmlclb31sFMcUwaD0QSiXmclP9rXQtodkFOiexnhi4+8AcbwuIA0Opr8qHpIf5J02i1IYfmAfWhXXRTPY1x1U5XTtmxLHrW+THbFtB4/6dBuNoK+zplE/GJq1mt4jTIU5dWROnp4Yey3XUlluq7KakX111brdPl8Vf8fzU94=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 25 Mar 2026 18:57:19 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] x86/time: adjust handling of negative delta in
 stime2tsc()
Message-ID: <acQh__WRAoav6IHN@macbook.local>
References: <f97bbfb5-389c-4845-84fb-e6f07ba0ade8@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <f97bbfb5-389c-4845-84fb-e6f07ba0ade8@suse.com>
X-ClientProxiedBy: BL1P221CA0003.NAMP221.PROD.OUTLOOK.COM
 (2603:10b6:208:2c5::9) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH7PR03MB7834:EE_
X-MS-Office365-Filtering-Correlation-Id: f70f2c08-f8ed-4ae4-8d98-08de8a97f6f6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	8+32wdfH9gjXnreTrIHfsPJ7X1ZquyS8arM/TfzP6Bpb16JH3lmHrqvuyKJCQEwsTFL1JMXaEQvhvmHFJ/QSj816GU5a9G+n2zISVgZieliKbKxTspqsRibUGXXuUt9vE9dSGpb+0FVxcFMOKkFnMahpWe056F8u03ArQfMUC+wFgs3H+Y4kPP/BXF8OWsXMTGU5OsBF25pc708rGgbjnCSFmcKcmVjzFLvU3abgqoSVRLzsQyOW0I4TkIeJG6dB5MN/bVOOMi8T0w3czqKv6r/xQ7w3PS/LJgz2yijBLhCRhi+RYf5qE5McQmI4gc+SdniSlUKvwFnjkGpxFZVN37R+8UtEfgNoogt7bkHYSI90FRMuPmHIcyp0aCKlvjDDrfICp5s/RW0Ubxo2P0B8M0Wq5sHjtOA02BMKLr56FqxSoRYjKejfqYjlrv31CKShNbIGVte7ESLjJtJ5aVKrvs2lcvEyP5wKf8t61J9rUYH8pfJvK+JFt12MVZosZ8LFrREFqhSNm63n72wkprNGPgfrJLnNHvwQj/8jyUUCO00IGVPwbfMb+rrTXP4LAzNfJuWJult8OmLaMsqCkNGqvHIbH3AGuWWpLw812UACVz5WjHiy9kMt/uV3DEyuUnCb65iQdtl+JX5dzVDvT0FOvsFakF1AwfBpcSkob9NgznxeHPjsv5pL6wN1BGt3mW3msOI66Q10/SuzZBAg/JDqFN5CwiKAaQdAMeJix80t2Mw=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?b2xsMitNVDBwcmdEQTJBS25Ec2ZORDdrSEoxejZhREdmbE13S1Q2bFB6RXR0?=
 =?utf-8?B?MU9XZUJMbW5nU3lpdytjVFNTa0QwUUFVOStrUDV2SGs4UFJTaks3d0s0d09o?=
 =?utf-8?B?akNDNDd0TXBFeVB3RGVvSTc1SGRPNXRCSVVoeUMybWFEcFBVbEJua3QvYmdO?=
 =?utf-8?B?L2lQditzL0YwbktBSWlvQlk3bHdQUTFHaWRXUGxwekN4b1RTR0N2Nzd2SWRn?=
 =?utf-8?B?c0FEMXdWZnBGa0twWG1tV0haK0tkZHM0ZlFsaWVhV3pWWDlLT0VOeld6SGZo?=
 =?utf-8?B?VkJqZ1dyUVROY2FwcG5ZY0lFZmdiVDJyZ2c1OWFyd3lqQmlCblpSYkpPZ21Y?=
 =?utf-8?B?Q1IzTzdDOXRHNTRJc2w3bnpmSmhWZVQ2cTZHZzU4eWVZYmxrVDlreGlpdEMx?=
 =?utf-8?B?ais4Q3p6L0FuOXp2dElyVVU3Ny9iWGJlQlFaYzhDK2diN1JibVpYY3BMZ0U2?=
 =?utf-8?B?ZFpQSTNaWnpFZnpmU1dSYmVja2NtdStEVENTQlU3VkZzeEtFb0VmbThYNUc0?=
 =?utf-8?B?NXovOWI0Zk4ybk8vSi9OZWJubCtHanhNa1NJN0pQak82L21lTjhlSnRDdTFh?=
 =?utf-8?B?SnBMc1hLRzBDalNqNDk2RzJ2K0M1dEQyT09SQ2hwSVR2SFpMRlY4QmtXMHZN?=
 =?utf-8?B?ZTBvc3lBQ1BveXAwWHZGcWNnYWV1S256R3RFOVJpRW1FNDVHT1FLTmZpajJt?=
 =?utf-8?B?UEZpOXdTb2RlQlFtNmNORWZ4bmQwQWxQQWxucXdXYStTNWRrd0Nid212dWhV?=
 =?utf-8?B?dnJsTUpVYlFzcGhZcmdwUnZJY1ovYmsxbUtydlpZaStTdEFlUE5Ba3lwbGtI?=
 =?utf-8?B?K0t4Ri9tQXFFcGxndFM1K3liQVV1MWZsZmh6V05jN0dkRDV2Z3FERWpwWjY2?=
 =?utf-8?B?aDVYRmpjRkh4VE5ZamZ3dFNuVDZBQWwyM3ZpRi9kK3ZmZ095L1c2REp1TzFz?=
 =?utf-8?B?NHVycE1BUzBncTZ3dFVJU3M2VGZnRjQ5dGFsaXhWcld4enJBblBXNzBzY1hY?=
 =?utf-8?B?by83QktvazZHeHZQTlVzcmJxNXFaWjVDcWRGaTdscG5zQWE3L0JTaXhwRTZG?=
 =?utf-8?B?ZFNYdFRxRS9sMm9vcGR0ZS9lOVFXUFgrTUVOT2VQeDNHa0kzdUZ6d1VCMXEx?=
 =?utf-8?B?UzBGSktnRjR0V1RGMmwyNE8zR1ptZDlQSG5RN2pZZHBYU0Q3MVR1MDBsOEl3?=
 =?utf-8?B?bWd3OWNLK0lwV0ZXN3ltb0dwMnhoR29UOG9RSkZDR1lkalRROXd2M1grakxY?=
 =?utf-8?B?MGFYRjVSRkRWcjRsdVpVT1d6N0d1VnRaVjlOa3dxTExJZWpCRkhESGl4TFgv?=
 =?utf-8?B?NTdVRzROdE5zeGhOUWEydjR6Y0gwWWFpdmV4cDBrV3liZzZ1dlFDMEtpVkM0?=
 =?utf-8?B?T1NodUZLRW5hcGRKK0pQd2ZaM1Byb1dMUGdVWU83dzNjZmhKL2g2WlhLRkx2?=
 =?utf-8?B?VXJyTmJ6ZjI2bFlkV0o0NjY2ak1jTXpYbk1WTTUrcDBrVmVpR0dUWVV3VnRs?=
 =?utf-8?B?VzdkQzdUaUVhNzFzU21FVThBTFNhazM0TDJjb2pRcU8yY3ErMFdWdE82Rlhl?=
 =?utf-8?B?VHlMeUZwQlEyTXp1WXFQcVJ5QzhOdTg0eXo1Sm93aTRqUllUNGdpT1EyMHhT?=
 =?utf-8?B?QytmQktjSnpXYXZDRkhtbEVreFZtMUpCeE9jVGU4TVUxb2xqT3RteFFXaWw1?=
 =?utf-8?B?aWR0YjYxUlpoMVBLTGJ0VFM0VDkybmxvZzhNd0x2emdNVlBwZlExMllUbkcv?=
 =?utf-8?B?VTRDZFhaZTBIOW1CV3BaOEhJVjRvODVCUko0Y1RqRHBnZjFMczZza2hOQmRW?=
 =?utf-8?B?bjNjTTBGa1FVVk9aQVlUN2NPTWdpM0FhRGRuZEFma052TTlab2dqdzhjcFRw?=
 =?utf-8?B?bHZwbEdzNGs4OERpV3RyQm1nbzJIY2drWUhhcVRrOHlySnVkMjFQLzFnRjFH?=
 =?utf-8?B?c3kvMFJLRlBhVlplK25VaW14a3JuVTdCazMyVlhYN21HV1BKanFBby9McjB5?=
 =?utf-8?B?S2swME50VFRhUlFna2tWQkRYRDBJM3djTmIxU3pySllidDhwVFNnMHpYUGQ1?=
 =?utf-8?B?WXpFTGdJWHJDZ3U0eVppbk1XU3lZQ3pieGxZTWVIcTdoU3VVK25GZ3EyTWtv?=
 =?utf-8?B?VzRRYXpYOEc3T1hoRlVPRDNHM3lGQXU1aWNyM0txMllNcGM4NVNBSy9VcWFm?=
 =?utf-8?B?bndRMFJleGlCalJQVmlTcHZGeHFlWVcyYkJsNTFkdXZqT01KRU5RdEl2VkZD?=
 =?utf-8?B?bmFaQ3g1K1dkU05adHFnNzA0TVdFSmdhaTh1WjJ4QmxNbEwxcVU2a0tvamVC?=
 =?utf-8?B?eVZxeS90VFl2eTdONDJRb1hKN2xIOFVSSVU5bFV1V2tYWEZjRG50UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f70f2c08-f8ed-4ae4-8d98-08de8a97f6f6
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 17:57:22.3643
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: pzOnyha8qGftnbFOPngNj9TRK2oP0M+1TAsnqofBoSQu46PsyEs+eCMJuPYG3ILaftNL2zfteqjLby0LcIcqwQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH7PR03MB7834
X-purgate-ID: tlsNG-c1860d/1774461451-F141E726-8D8BFFA3/0/0
X-purgate-type: clean
X-purgate-size: 2097

On Tue, Feb 10, 2026 at 11:04:59AM +0100, Jan Beulich wrote:
> When we cap negative values to 0 (see code comment as to why), going
> through scale_delta() is pointless - it'll return 0 anyway. Therefore make
> the call conditional (and then also the one to scale_reciprocal()), adding
> a comment as to why there is this capping.
> 
> Modernize types used while there, and switch to usiong initializers for
> the local variables.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Adding likely() to the conditional here does make a difference. Question
> is whether to do so, seeing that there looks to be a possibility (of
> unknown frequency) for the delta to be non-positive.

Hm, what I've done lately with {un}likely() is not attempting to
optimize for the most taken path, but rather use it to force the
compiler to optimize the fast path, if the function has one.  The slow
path will be slow anyway, and hence any compiler optimization should
be towards making the fast path possibly faster IMO.

This function doesn't seem to have any fast (or slow) paths, so I
would leave it as-is.

> 
> --- a/xen/arch/x86/time.c
> +++ b/xen/arch/x86/time.c
> @@ -1176,20 +1176,26 @@ uint64_t __init calibrate_apic_timer(voi
>      return elapsed * CALIBRATE_FRAC;
>  }
>  
> -u64 stime2tsc(s_time_t stime)
> +uint64_t stime2tsc(s_time_t stime)
>  {
> -    struct cpu_time *t;
> -    struct time_scale sys_to_tsc;
> -    s_time_t stime_delta;
> +    const struct cpu_time *t = &this_cpu(cpu_time);
> +    s_time_t stime_delta = stime - t->stamp.local_stime;
> +    int64_t delta = 0;

Why do you make delta a signed integer, the value returned by
scale_delta() is unsigned.

>  
> -    t = &this_cpu(cpu_time);
> -    sys_to_tsc = scale_reciprocal(t->tsc_scale);
> +    /*
> +     * While for reprogram_timer() the capping at 0 isn't relevant (the returned

The capping might want mentioning in the function prototype, as maybe
new users expect stime2tsc() to return TSC values from times in the
past.

Otherwise LGTM.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 18:53:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 18:53:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262950.1555222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5TLc-00021V-JQ; Wed, 25 Mar 2026 18:52:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262950.1555222; Wed, 25 Mar 2026 18: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 1w5TLc-00021O-GP; Wed, 25 Mar 2026 18:52:56 +0000
Received: by outflank-mailman (input) for mailman id 1262950;
 Wed, 25 Mar 2026 18:52:54 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=b6f6=B2=ubuntu.com=enr0n@fe-bounces.ubuntu.com>)
 id 1w5TLa-00021I-0I
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 18:52:54 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5TLX-00Dk8Z-MX
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 19:52:53 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <SRS0=b6f6=B2=ubuntu.com=enr0n@fe-bounces.ubuntu.com>)
 id 69c42eed-bab6-0a2a0a5309dd-0a2a4501e2ee-26
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 19:52:53 +0100
Received: from [149.28.215.223] (helo=smtp.forwardemail.net)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <SRS0=b6f6=B2=ubuntu.com=enr0n@fe-bounces.ubuntu.com>)
 id 69c42f03-6400-0a2a45010019-951cd7df6139-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 19:52:52 +0100
Received: by mail-ua1-f69.google.com with SMTP id
 a1e0cc1a2514c-94de7380eeeso289315241.2
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:52:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fe-953a8a3ca9 header.d=ubuntu.com header.i="@ubuntu.com" header.h="Content-Transfer-Encoding:Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ubuntu.com;
 h=Content-Transfer-Encoding: Content-Type: Cc: To: Subject: Message-ID:
 Date: From: In-Reply-To: References: MIME-Version; q=dns/txt;
 s=fe-953a8a3ca9; t=1774464770;
 bh=nBHC2L9kQozGOnVl8ryO7ws91nevlMJi3dCrj7mCwow=;
 b=aLPiAkEpJ81IOmgWxi42I/wnYNs6mZR9Gsuy42pNwFq/PScc2S/2kNYAiFkV6t940iTT6IvIg
 Cw/zHzk6Eoz7+FCDHhVxcXUTaNe0q/uEin4KzEvgr78pmixEtia1j+FElCD6qnzNzHIVKN7Y/Q7
 W62HxzIpo/5XbTn211TjqAMfOT60qW4SQKvV7TLjpAFHQm6BNaTCayh8Wqc28iK98VlBFgcVPNN
 9eXRMFn8Ue9uL1RQ4F5XmUvL3dFL6Sy2xKETK3Dgyy6uph6AxKA2W59TQNxTRYzMAEOa1/aAbQD
 Z0fzs6gdpENHNd4wzbFKkibJ6FKOpCIb0CxHOUtdmp3g==
X-Forward-Email-ID: 69c42efe07e0c3ba78d7a45e
X-Forward-Email-Sender: rfc822; enr0n@ubuntu.com, smtp.forwardemail.net,
 149.28.215.223
X-Forward-Email-Version: 2.6.55
X-Forward-Email-Website: https://forwardemail.net
X-Complaints-To: abuse@forwardemail.net
X-Report-Abuse: abuse@forwardemail.net
X-Report-Abuse-To: abuse@forwardemail.net
X-Gm-Message-State: AOJu0Ywk8+BECjM9sgNfOf2Bymj/yK2+5sKZGW7zQMxO01nJ3Ecfyhkx
	ptAv97GiCVDfxUYhYYWVCMofthMei0eT5cmWO5qyO5DheJhi//ovOZl7pTOrWaG4f0fN+a1E69V
	5qX5bSUO5lFhd0YvgaRgli1j7L/x1zqUq7DU3QvKHY9LxI9sOgkZHCl99BLf+1WxVUVPepwxfAE
	rlXq2vhBAbiQFZFJp2AUQpkGuV49hvW/6Fx0VHTCHZeHvhDQRrWQOXdjzp3ro=
X-Gm-Gg: ATEYQzw9KEc5LrWMQOnoVGimF9zSC+hWM6P1V2MMQHa6gwNUL3EEV6QoH++5JFjyj5r
	zeg8URK69FyLOXkXiFL0lF/JibE62A6DkidU5DXX8XZUyskj2p1FS3uICRvGMcc3bjrpj2s1iPN
	vM5S6LRhQ/1O3RuoN7gLpsymxyjnaC+GunBAgLuVtx6bapdgyship4jNUjNdhq9IftatTRJsQmE
	GWP
X-Received: by 2002:a05:6102:6c4:b0:5ff:ed38:1889 with SMTP id ada2fe7eead31-60386ebc6c1mr2610995137.10.1774464764823;
        Wed, 25 Mar 2026 11:52:44 -0700 (PDT)
X-Received: by 2002:a05:6102:6c4:b0:5ff:ed38:1889 with SMTP id
 ada2fe7eead31-60386ebc6c1mr2610987137.10.1774464764544; Wed, 25 Mar 2026
 11:52:44 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1774305918.git.milan_djokic@epam.com> <f04d9186eb3b83a4f5fb27db412bf10fb6fb092c.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <f04d9186eb3b83a4f5fb27db412bf10fb6fb092c.1774305918.git.milan_djokic@epam.com>
From: Nick Rosbrook <enr0n@ubuntu.com>
Date: Wed, 25 Mar 2026 14:52:33 -0400
X-Gmail-Original-Message-ID: <CAEN5XSFA4AdFKXGiyYW58=Ltm+uVRrsSxGrNCC3T8UdHtivcnA@mail.gmail.com>
X-Gm-Features: AQROBzBNzU0BIDGovNQeyVE3tkTBqY0sSAyphFru-oY3R4n_dgn-5eJ_tDiKJzI
Message-ID: <CAEN5XSFA4AdFKXGiyYW58=Ltm+uVRrsSxGrNCC3T8UdHtivcnA@mail.gmail.com>
Subject: Re: [PATCH v2 06/23] xen/domctl: Add XEN_DOMCTL_CONFIG_VIOMMU_* and
 viommu config param
To: Milan Djokic <milan_djokic@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Rahul Singh <rahul.singh@arm.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, George Dunlap <gwd@xenproject.org>, 
	Juergen Gross <jgross@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-d62444/1774464772-228E5DF3-8681F2F4/0/0
X-purgate-type: clean
X-purgate-size: 6485

On Mon, Mar 23, 2026 at 6:51=E2=80=AFPM Milan Djokic <milan_djokic@epam.com=
> wrote:
>
> From: Rahul Singh <rahul.singh@arm.com>
>
> Add new viommu_type field and field values XEN_DOMCTL_CONFIG_VIOMMU_NONE
> XEN_DOMCTL_CONFIG_VIOMMU_SMMUV3 in xen_arch_domainconfig to
> enable/disable vIOMMU support for domains.
>
> Also add viommu=3D"N" parameter to xl domain configuration to enable the
> vIOMMU for the domains. Currently, only the "smmuv3" type is supported
> for ARM.
>
> Signed-off-by: Rahul Singh <rahul.singh@arm.com>
> Signed-off-by: Milan Djokic <milan_djokic@epam.com>
> ---
>  docs/man/xl.cfg.5.pod.in             | 13 +++++++++++++
>  tools/golang/xenlight/helpers.gen.go |  2 ++
>  tools/golang/xenlight/types.gen.go   |  1 +
>  tools/include/libxl.h                |  5 +++++
>  tools/libs/light/libxl_arm.c         | 13 +++++++++++++
>  tools/libs/light/libxl_types.idl     |  6 ++++++
>  tools/xl/xl_parse.c                  |  9 +++++++++
>  7 files changed, 49 insertions(+)
>
> diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
> index 27c455210b..f69cdee55c 100644
> --- a/docs/man/xl.cfg.5.pod.in
> +++ b/docs/man/xl.cfg.5.pod.in
> @@ -3162,6 +3162,19 @@ option.
>
>  =3Dback
>
> +=3Dover 4
> +
> +=3Ditem B<viommu=3D"N">
> +
> +To enable viommu, user must specify the following option in the VM
> +config file:
> +
> +viommu =3D "smmuv3"
> +
> +Currently, only the "smmuv3" type is supported for ARM.
> +
> +=3Dback
> +
>  =3Dhead3 x86
>
>  =3Dover 4
> diff --git a/tools/golang/xenlight/helpers.gen.go b/tools/golang/xenlight=
/helpers.gen.go
> index 8909fe8a1b..4f0997f02f 100644
> --- a/tools/golang/xenlight/helpers.gen.go
> +++ b/tools/golang/xenlight/helpers.gen.go
> @@ -1195,6 +1195,7 @@ x.ArchArm.NrSpis =3D uint32(xc.arch_arm.nr_spis)
>  if err :=3D x.ArchArm.ArmSci.fromC(&xc.arch_arm.arm_sci);err !=3D nil {
>  return fmt.Errorf("converting field ArchArm.ArmSci: %v", err)
>  }
> +x.ArchArm.Viommu =3D ViommuType(xc.arch_arm.viommu)
>  if err :=3D x.ArchX86.MsrRelaxed.fromC(&xc.arch_x86.msr_relaxed);err !=
=3D nil {
>  return fmt.Errorf("converting field ArchX86.MsrRelaxed: %v", err)
>  }
> @@ -1734,6 +1735,7 @@ xc.arch_arm.nr_spis =3D C.uint32_t(x.ArchArm.NrSpis=
)
>  if err :=3D x.ArchArm.ArmSci.toC(&xc.arch_arm.arm_sci); err !=3D nil {
>  return fmt.Errorf("converting field ArchArm.ArmSci: %v", err)
>  }
> +xc.arch_arm.viommu =3D C.libxl_viommu_type(x.ArchArm.Viommu)
>  if err :=3D x.ArchX86.MsrRelaxed.toC(&xc.arch_x86.msr_relaxed); err !=3D=
 nil {
>  return fmt.Errorf("converting field ArchX86.MsrRelaxed: %v", err)
>  }
> diff --git a/tools/golang/xenlight/types.gen.go b/tools/golang/xenlight/t=
ypes.gen.go
> index ab9d4ca7b4..8a37b52a82 100644
> --- a/tools/golang/xenlight/types.gen.go
> +++ b/tools/golang/xenlight/types.gen.go
> @@ -610,6 +610,7 @@ Vuart VuartType
>  SveVl SveType
>  NrSpis uint32
>  ArmSci ArmSci
> +Viommu ViommuType
>  }
>  ArchX86 struct {
>  MsrRelaxed Defbool

The generated go code doesn't look right - it appears to be missing a
definition for `ViommuType` and the associated constants for the
"viommu_type" Enumeration added to libxl_types.idl. Does the code need
re-generating?

> diff --git a/tools/include/libxl.h b/tools/include/libxl.h
> index bc35e412da..f7d5c77e23 100644
> --- a/tools/include/libxl.h
> +++ b/tools/include/libxl.h
> @@ -318,6 +318,11 @@
>   */
>  #define LIBXL_HAVE_BUILDINFO_ARCH_ARM_SCI 1
>
> +/*
> + * libxl_domain_build_info has the arch_arm.viommu_type field.
> + */
> +#define LIBXL_HAVE_BUILDINFO_ARM_VIOMMU 1
> +
>  /*
>   * LIBXL_HAVE_SOFT_RESET indicates that libxl supports performing
>   * 'soft reset' for domains and there is 'soft_reset' shutdown reason
> diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
> index 7e9f8a1bc3..a248793588 100644
> --- a/tools/libs/light/libxl_arm.c
> +++ b/tools/libs/light/libxl_arm.c
> @@ -247,6 +247,19 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
>      }
>      LOG(DEBUG, " - SCI type=3D%u", config->arch.arm_sci_type);
>
> +    switch (d_config->b_info.arch_arm.viommu_type) {
> +    case LIBXL_VIOMMU_TYPE_NONE:
> +        config->arch.viommu_type =3D XEN_DOMCTL_CONFIG_VIOMMU_NONE;
> +        break;
> +    case LIBXL_VIOMMU_TYPE_SMMUV3:
> +        config->arch.viommu_type =3D XEN_DOMCTL_CONFIG_VIOMMU_SMMUV3;
> +        break;
> +    default:
> +        LOG(ERROR, "Unknown vIOMMU type %d",
> +            d_config->b_info.arch_arm.viommu_type);
> +        return ERROR_FAIL;
> +    }
> +
>      return 0;
>  }
>
> diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_ty=
pes.idl
> index d64a573ff3..c7ad0e77b2 100644
> --- a/tools/libs/light/libxl_types.idl
> +++ b/tools/libs/light/libxl_types.idl
> @@ -561,6 +561,11 @@ libxl_arm_sci =3D Struct("arm_sci", [
>      ("type", libxl_arm_sci_type),
>      ])
>
> +libxl_viommu_type =3D Enumeration("viommu_type", [
> +    (0, "none"),
> +    (1, "smmuv3")
> +    ], init_val =3D "LIBXL_VIOMMU_TYPE_NONE")
> +
>  libxl_rdm_reserve =3D Struct("rdm_reserve", [
>      ("strategy",    libxl_rdm_reserve_strategy),
>      ("policy",      libxl_rdm_reserve_policy),
> @@ -736,6 +741,7 @@ libxl_domain_build_info =3D Struct("domain_build_info=
",[
>                                 ("sve_vl", libxl_sve_type),
>                                 ("nr_spis", uint32, {'init_val': 'LIBXL_N=
R_SPIS_DEFAULT'}),
>                                 ("arm_sci", libxl_arm_sci),
> +                               ("viommu_type", libxl_viommu_type),
>                                ])),
>      ("arch_x86", Struct(None, [("msr_relaxed", libxl_defbool),
>                                ])),
> diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
> index 1a2ea8b5d5..dcae8314fe 100644
> --- a/tools/xl/xl_parse.c
> +++ b/tools/xl/xl_parse.c
> @@ -3033,6 +3033,15 @@ skip_usbdev:
>          }
>      }
>
> +    if (!xlu_cfg_get_string (config, "viommu", &buf, 1)) {
> +        e =3D libxl_viommu_type_from_string(buf, &b_info->arch_arm.viomm=
u_type);
> +        if (e) {
> +            fprintf(stderr,
> +                    "Unknown vIOMMU type \"%s\" specified\n", buf);
> +            exit(-ERROR_FAIL);
> +        }
> +    }
> +
>      parse_vkb_list(config, d_config);
>
>      d_config->virtios =3D NULL;
> --
> 2.43.0

-Nick


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 18:59:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 18:59:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262962.1555231 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5TSI-0002oy-8M; Wed, 25 Mar 2026 18:59:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262962.1555231; Wed, 25 Mar 2026 18:59: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 1w5TSI-0002or-5F; Wed, 25 Mar 2026 18:59:50 +0000
Received: by outflank-mailman (input) for mailman id 1262962;
 Wed, 25 Mar 2026 18:59:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w5TSG-0002ol-Rx
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 18:59:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5TSE-00Dl8m-Bo
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 19:59:47 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c43081-2eae-0a2a0a5409dd-0a2a45089c3e-38
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 19:59:47 +0100
Received: from [209.85.218.52] (helo=mail-ej1-f52.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c430a3-1950-0a2a45080019-d155da34f1f2-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 19:59:47 +0100
Received: by mail-ej1-f52.google.com with SMTP id
 a640c23a62f3a-b9825ba7e8dso22545266b.3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 11:59:47 -0700 (PDT)
Received: from [192.168.50.2] ([45.12.25.73]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-66ad6c56b55sm109782a12.31.2026.03.25.11.59.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 11:59:46 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774465187; x=1775069987; 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=esmbZU2btHIqRpTS2Duxt2q456pim/XTgYgC0Cgzg0o=;
        b=Rbpb2I5k3BcHEg0d3mkvPEYqsZ6UNpKf0bxU2F1jQkLtyHLhw6//zilUEBLWO+uy9X
         2QLfPFA6j+z8IPYOXt+h+YURSPM52r2sQMOd5YHYnICgb/ho96GQNk8pbbUJ5arRsrEt
         LQL3Cx/KKHfVD9hMj/lIh97RCORwy6xOkCoIX6zE3MhwI9vdA0uxopWhEdvvo8CSxItR
         VKGQdJVExWZgjd53abHaRLHcajFWOSIBhnv2uYTTY4FE04vQo9Y6hryj2tC+JfxaFOrN
         IPqFOiVgzTJwBYnrqQzGQmOvEGSOmUCWTovc0qvShvLyo3W9nBgwXZ4VgQUiyYgMWF3+
         VtYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774465187; x=1775069987;
        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=esmbZU2btHIqRpTS2Duxt2q456pim/XTgYgC0Cgzg0o=;
        b=tQSA6faSzdrhJiNf+46X5avPYCw5mHYSAPkNWeqSnlOb5MxSIZoX5H+174UtfT7zoH
         hEo3qYueKKV9NkNQ7UaFOCkG/bi78AzDAmdVPXj1yx1lZcn1tkqeIXNKtFracaqOn45a
         cavzA3Jfms78pIYx5zmw7PDo5xmDwZRnqNFFIUmESUUiWAr7FVvBMnFAokp14+6UEqpA
         jdcHrVTSZ/NIXwZV4Oca6imREl1eM8nr4/EKfz7puv5msTrANVWCtA7tINvR8Ec0Its6
         qRo7sJidaw/OZI7MFZYkLE8LRXqjNHJEm5Q6gfr8ZUZKFe6+dHpaPvdddk5IGa5JINW3
         kOmQ==
X-Forwarded-Encrypted: i=1; AJvYcCUZrLFZBFq+tvWg0s/icqcSIiOdaL7qGngm/KkCb7E7+wjzv8i7pIfW+Eh4977L3Gte7nr8i9ohgsg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw/HtYftg8xptQu/YAOva8RHKOuZmPHZKzXzJmIbxo2zjbpMrgS
	HwxNUoLwxbNI2trldyKFPiu4KxawJh3FjG2Pnu6+Nw2DvKbbfOCfXf4V
X-Gm-Gg: ATEYQzz0HQWrWU2MpN8kao24hSwuXw6P8LS0r6TSf2k6QRw/akbr1SEmMY6c5nOx3C9
	Lvu5O+c7BSJnW2QUedultiJMMkvpOiIgWYIYASfFvJmOFICRopp+0peBH2qG00uKFRuR6tHGi2V
	7gSTueTnhRyhVtnoNbPfbBa/TKpUm0+Os0PSLUsSdV73NrD5Dz9MBQcTKch8YPb3/BUkE+Js/Ex
	l2FjX8aLF5VGlUv8eYEv0u5ktbTxKzxSsX6LwvXrBbjcUfJLAnmKNgabeFlAHIpHZRhWLxr9pKo
	5rAoNDxuTf0jtY7DUQUdiVYGk2+KNPE625i88dXq2nguhCcKcCGC0AsjeJ5wzijV9v91nCP0R0H
	lC/BNH7JI6qC7kQvOP1bMJVx9ZCk4VeERvLEcL2Owy+0QY9Ms7sWfXmcg+SagJwG11Gq5rdweQA
	0d1YMlkzbVyRmkkLI6CmYzoQ90HA==
X-Received: by 2002:a17:907:1ca3:b0:b9b:183a:7346 with SMTP id a640c23a62f3a-b9b183acecemr173427866b.12.1774465187032;
        Wed, 25 Mar 2026 11:59:47 -0700 (PDT)
Message-ID: <89f644a3-9d91-4971-8fb9-6b2b5cca5b29@gmail.com>
Date: Wed, 25 Mar 2026 20:57:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/23] xen/arm: smmuv3: Maintain a SID->device
 structure
To: Milan Djokic <milan_djokic@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Jean-Philippe Brucker <jean-philippe@linaro.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jonathan Cameron <Jonathan.Cameron@huawei.com>,
 Eric Auger <eric.auger@redhat.com>, Keqian Zhu <zhukeqian1@huawei.com>,
 Will Deacon <will@kernel.org>, Joerg Roedel <jroedel@suse.de>
References: <cover.1774305918.git.milan_djokic@epam.com>
 <1621f3abdcaac0e941df7474dfaaa035fb819b4c.1774305918.git.milan_djokic@epam.com>
Content-Language: en-US
From: Mykola Kvach <xakep.amatop@gmail.com>
In-Reply-To: <1621f3abdcaac0e941df7474dfaaa035fb819b4c.1774305918.git.milan_djokic@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1774465187-E8E85726-A98D719B/0/0
X-purgate-type: clean
X-purgate-size: 8087



On 24/03/2026 00:51, Milan Djokic wrote:
> From: Jean-Philippe Brucker <jean-philippe@linaro.org>
> 
> Backport Linux commit cdf315f907d4. This is the clean backport without
> any changes.
> 
> When handling faults from the event or PRI queue, we need to find the
> struct device associated with a SID. Add a rb_tree to keep track of
> SIDs.
> 
> Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> Reviewed-by: Eric Auger <eric.auger@redhat.com>
> Reviewed-by: Keqian Zhu <zhukeqian1@huawei.com>
> Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
> Acked-by: Will Deacon <will@kernel.org>
> Link: https://lore.kernel.org/r/20210401154718.307519-8-jean-philippe@linaro.org
> Signed-off-by: Joerg Roedel <jroedel@suse.de>
> Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git cdf315f907d4
> Signed-off-by: Rahul Singh <rahul.singh@arm.com>

Your Signed-off-by is missing:
Signed-off-by: Milan Djokic <milan_djokic@epam.com>

> ---
>   xen/drivers/passthrough/arm/smmu-v3.c | 131 +++++++++++++++++++++-----
>   xen/drivers/passthrough/arm/smmu-v3.h |  13 ++-
>   2 files changed, 118 insertions(+), 26 deletions(-)
> 
> diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthrough/arm/smmu-v3.c
> index bf153227db..73cc4ef08f 100644
> --- a/xen/drivers/passthrough/arm/smmu-v3.c
> +++ b/xen/drivers/passthrough/arm/smmu-v3.c
> @@ -809,6 +809,27 @@ static int arm_smmu_init_l2_strtab(struct arm_smmu_device *smmu, u32 sid)
>   	return 0;
>   }
>   
> +__maybe_unused
> +static struct arm_smmu_master *
> +arm_smmu_find_master(struct arm_smmu_device *smmu, u32 sid)
> +{
> +	struct rb_node *node;
> +	struct arm_smmu_stream *stream;
> +
> +	node = smmu->streams.rb_node;
> +	while (node) {
> +		stream = rb_entry(node, struct arm_smmu_stream, node);
> +		if (stream->id < sid)
> +			node = node->rb_right;
> +		else if (stream->id > sid)
> +			node = node->rb_left;
> +		else
> +			return stream->master;
> +	}
> +
> +	return NULL;
> +}
> +
>   /* IRQ and event handlers */
>   static void arm_smmu_evtq_tasklet(void *dev)
>   {
> @@ -1042,8 +1063,8 @@ static int arm_smmu_atc_inv_master(struct arm_smmu_master *master,
>   	if (!master->ats_enabled)
>   		return 0;
>   
> -	for (i = 0; i < master->num_sids; i++) {
> -		cmd->atc.sid = master->sids[i];
> +	for (i = 0; i < master->num_streams; i++) {
> +		cmd->atc.sid = master->streams[i].id;
>   		arm_smmu_cmdq_issue_cmd(master->smmu, cmd);
>   	}
>   
> @@ -1271,13 +1292,13 @@ static void arm_smmu_install_ste_for_dev(struct arm_smmu_master *master)
>   	int i, j;
>   	struct arm_smmu_device *smmu = master->smmu;
>   
> -	for (i = 0; i < master->num_sids; ++i) {
> -		u32 sid = master->sids[i];
> +    for (i = 0; i < master->num_streams; ++i) {
> +		u32 sid = master->streams[i].id;
>   		__le64 *step = arm_smmu_get_step_for_sid(smmu, sid);
>   
>   		/* Bridged PCI devices may end up with duplicated IDs */
>   		for (j = 0; j < i; j++)
> -			if (master->sids[j] == sid)
> +			if (master->streams[j].id == sid)
>   				break;
>   		if (j < i)
>   			continue;
> @@ -1486,6 +1507,80 @@ static bool arm_smmu_sid_in_range(struct arm_smmu_device *smmu, u32 sid)
>   
>   	return sid < limit;
>   }
> +
> +static int arm_smmu_insert_master(struct arm_smmu_device *smmu,
> +				  struct arm_smmu_master *master)
> +{
> +	int i;
> +	int ret = 0;
> +	struct arm_smmu_stream *new_stream, *cur_stream;
> +	struct rb_node **new_node, *parent_node = NULL;
> +	struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(master->dev);
> +
> +	master->streams = _xzalloc_array(sizeof(*master->streams), sizeof(void *),
> +					fwspec->num_ids);
> +	if (!master->streams)
> +		return -ENOMEM;
> +	master->num_streams = fwspec->num_ids;
> +
> +	mutex_lock(&smmu->streams_mutex);
> +	for (i = 0; i < fwspec->num_ids; i++) {
> +		u32 sid = fwspec->ids[i];
> +
> +		new_stream = &master->streams[i];
> +		new_stream->id = sid;
> +		new_stream->master = master;
> +
> +		/*
> +		 * Check the SIDs are in range of the SMMU and our stream table
> +		 */
> +		if (!arm_smmu_sid_in_range(smmu, sid)) {
> +			ret = -ERANGE;
> +			break;
> +		}
> +
> +		/* Ensure l2 strtab is initialised */
> +		if (smmu->features & ARM_SMMU_FEAT_2_LVL_STRTAB) {
> +			ret = arm_smmu_init_l2_strtab(smmu, sid);
> +			if (ret)
> +				break;
> +		}
> +
> +		/* Insert into SID tree */
> +		new_node = &(smmu->streams.rb_node);
> +		while (*new_node) {
> +			cur_stream = rb_entry(*new_node, struct arm_smmu_stream,
> +					      node);
> +			parent_node = *new_node;
> +			if (cur_stream->id > new_stream->id) {
> +				new_node = &((*new_node)->rb_left);
> +			} else if (cur_stream->id < new_stream->id) {
> +				new_node = &((*new_node)->rb_right);
> +			} else {
> +				dev_warn(master->dev,
> +					 "stream %u already in tree\n",
> +					 cur_stream->id);
> +				ret = -EINVAL;
> +				break;
> +			}
> +		}
> +		if (ret)
> +			break;
> +
> +		rb_link_node(&new_stream->node, parent_node, new_node);
> +		rb_insert_color(&new_stream->node, &smmu->streams);
> +	}
> +
> +	if (ret) {
> +		for (i--; i >= 0; i--)
> +			rb_erase(&master->streams[i].node, &smmu->streams);
> +		xfree(master->streams);
> +	}
> +	mutex_unlock(&smmu->streams_mutex);
> +
> +	return ret;
> +}
> +
>   /* Forward declaration */
>   static struct arm_smmu_device *arm_smmu_get_by_dev(const struct device *dev);
>   static int arm_smmu_assign_dev(struct domain *d, u8 devfn, struct device *dev,
> @@ -1495,7 +1590,7 @@ static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn,
>   
>   static int arm_smmu_add_device(u8 devfn, struct device *dev)
>   {
> -	int i, ret;
> +	int ret;
>   	struct arm_smmu_device *smmu;
>   	struct arm_smmu_master *master;
>   	struct iommu_fwspec *fwspec;
> @@ -1532,26 +1627,11 @@ static int arm_smmu_add_device(u8 devfn, struct device *dev)
>   
>   	master->dev = dev;
>   	master->smmu = smmu;
> -	master->sids = fwspec->ids;
> -	master->num_sids = fwspec->num_ids;
>   	dev_iommu_priv_set(dev, master);
>   
> -	/* Check the SIDs are in range of the SMMU and our stream table */
> -	for (i = 0; i < master->num_sids; i++) {
> -		u32 sid = master->sids[i];
> -
> -		if (!arm_smmu_sid_in_range(smmu, sid)) {
> -			ret = -ERANGE;
> -			goto err_free_master;
> -		}
> -
> -		/* Ensure l2 strtab is initialised */
> -		if (smmu->features & ARM_SMMU_FEAT_2_LVL_STRTAB) {
> -			ret = arm_smmu_init_l2_strtab(smmu, sid);
> -			if (ret)
> -				goto err_free_master;
> -		}
> -	}
> +	ret = arm_smmu_insert_master(smmu, master);
> +	if (ret)
> +		goto err_free_master;
>   
>   	/*
>   	 * Note that PASID must be enabled before, and disabled after ATS:
> @@ -1796,6 +1876,9 @@ static int __init arm_smmu_init_structures(struct arm_smmu_device *smmu)
>   {
>   	int ret;
>   
> +	mutex_init(&smmu->streams_mutex);
> +	smmu->streams = RB_ROOT;
> +
>   	ret = arm_smmu_init_queues(smmu);
>   	if (ret)
>   		return ret;
> diff --git a/xen/drivers/passthrough/arm/smmu-v3.h b/xen/drivers/passthrough/arm/smmu-v3.h
> index ab07366294..ab1f29f6c7 100644
> --- a/xen/drivers/passthrough/arm/smmu-v3.h
> +++ b/xen/drivers/passthrough/arm/smmu-v3.h
> @@ -639,6 +639,15 @@ struct arm_smmu_device {
>   	struct tasklet		evtq_irq_tasklet;
>   	struct tasklet		priq_irq_tasklet;
>   	struct tasklet		combined_irq_tasklet;
> +
> +	struct rb_root		streams;
> +	struct mutex		streams_mutex;
> +};
> +
> +struct arm_smmu_stream {
> +	u32							id;
> +	struct arm_smmu_master		*master;
> +	struct rb_node				node;
>   };
>   
>   /* SMMU private data for each master */
> @@ -647,8 +656,8 @@ struct arm_smmu_master {
>   	struct device			*dev;
>   	struct arm_smmu_domain		*domain;
>   	struct list_head		domain_head;
> -	u32				*sids;
> -	unsigned int			num_sids;
> +	struct arm_smmu_stream		*streams;
> +	unsigned int				num_streams;
>   	bool				ats_enabled;
>   };
>   



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 19:13:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 19:13:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262977.1555240 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5TfS-0005hM-BP; Wed, 25 Mar 2026 19:13:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262977.1555240; Wed, 25 Mar 2026 19:13:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5TfS-0005hF-87; Wed, 25 Mar 2026 19:13:26 +0000
Received: by outflank-mailman (input) for mailman id 1262977;
 Wed, 25 Mar 2026 19:13:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w5TfR-0005h9-0Y
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 19:13:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5TfQ-001WkW-Cn
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 20:13:24 +0100
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c433a4-e002-0a2a0a5209dd-0a2a45069d6e-20
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 20:13:24 +0100
Received: from [202.12.124.147] (helo=fout-b4-smtp.messagingengine.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c433d2-3034-0a2a45060019-ca0c7c93e5f7-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 20:13:23 +0100
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfout.stl.internal (Postfix) with ESMTP id B34B91D000EA
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 15:13:21 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-02.internal (MEProxy); Wed, 25 Mar 2026 15:13:21 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA for
 <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 15:13:20 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm1 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc: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=fm1; t=1774466001;
	 x=1774552401; bh=nMQNNNSmSCNW7nA5E6CSZFFUyNcWL9Sr+QS6B/QMb4M=; b=
	XLdjha7zsG63I3jxRL9ngIAiGFbWjRAdcAiawC17RaCmRm0kNRRln7ZHdNbibK5T
	zQKzgp8WmATEPE3or3ZY0WJzq2fxaPp9D5R8iHGt4RGGzMs7cDZthaR9A4S46TnL
	Ps+U/9SVZcBB0bDEvnEJ+RmKwN1Nyu2WqIhS4HyKImnZLngrmuriqQkYwMMma4Eh
	n18k7kl/ldc3fNx0CbH3Yfg0yROnfDOU0QMUWtCjCAEjjaVZDy8Hr9EERQmu2Yw/
	4hzI8gU4RM/zJIPnGi+U4qIzamSKFgvbfISFxYeOFspNasWKOPS/XVFEddpnlVIT
	7FrwhWvBYlmeOEdz7eetzw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to: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=
	1774466001; x=1774552401; bh=nMQNNNSmSCNW7nA5E6CSZFFUyNcWL9Sr+QS
	6B/QMb4M=; b=RQTvdilcOdqC8sTEVpTdfJCSjZDiOyI2sNRN3wTJ1yoHJpe53Ut
	/xPtYzt7Y26+55N8GbM+0eeORq+tM8r+PHiOOJIro9UW1t+aIR3wsK4ssiJxsGiK
	4W+xgMROycUQAGfr/z/8UVn7w50LB5fzI71B79ORckTlCzrMBjCkJ5kK+wdLQ1vC
	I27817+RPiOi+Vbns1etAFlz79hdG0ZhurCmewz7/AtGpP9WuBpr3nN15KBC8jfR
	mNNQ3zOWAdxU0rF7POradozKzdoaDAKgbrzxN+Rx051KQZD+ZxkhAcR3Vcegc4vw
	ofoRVNkZnwjguR5nzYuGIgg9f5KaXc2N/9w==
X-ME-Sender: <xms:0TPEaZCeF416IXMdx_sC7E6RxBuHzeFw-gNl4aO3XcRXPDkcfscW5w>
    <xme:0TPEaef34_5AwMkojwNOiCDoLYCiXCVYG2_TdDmmXcFibI35nVC1PPeLXNk81qFBx
    mFx49Gz3Y2sm3-Oe2EP9ZE8HsBJReOUPHFSCYYKu3WzcRtOnHU>
X-ME-Received: <xmr:0TPEaaOC4K6L2iwXXSQLMP8Be7xlpSGjtgc-2edIbdf47qQsC4QWlV47WC9PpQlah0wrz8C-bGA9zmtBe_9J4ficJ5gHyPpKFJ4>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdefvdehvdejucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucenucfjughrpeffhffvuffkfhggtggujgesghdtreertd
    dtjeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhi
    uceomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqne
    cuggftrfgrthhtvghrnhepkeegtdfgvdeihefhhedtvdelieeiueetveehteffjeejjedv
    ieejvefhueeffeegnecuffhomhgrihhnpehgihhthhhusgdrtghomhenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopedupdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrgh
X-ME-Proxy: <xmx:0TPEaY6Sr1sH13hAam65vvfhIiyNmFnT5rYe_UWzki2cC2ZxR2tEpQ>
    <xmx:0TPEaeLveackY7HGgscQZl4eqol8U73edCh25rrdchpOofYyNocIjA>
    <xmx:0TPEaSccc74wRNXJzzqU-ezsLZJCsBEmBJg9TGBExJdYBfcwB7YGaw>
    <xmx:0TPEaRcQQVefBfQAGpaxk6UdO7KuD55eRvtHnkQZxqtGE4kRLqaD8g>
    <xmx:0TPEaXxETLWqVzKDkJ4otU4EBJr9gSymuFFYMUD3rYD3Myl-f2DAQMbD>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 25 Mar 2026 20:13:18 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: Slow (higher scheduling latency?) system after S3 - regression
 4.17 -> 4.19 ?
Message-ID: <acQzzlXNDxNq885V@mail-itl>
References: <aPzBO_eW8mQHM66u@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="cdCRxXTfxIus4DWw"
Content-Disposition: inline
In-Reply-To: <aPzBO_eW8mQHM66u@mail-itl>
X-purgate-ID: tlsNG-16d1c6/1774466004-781831C2-BA19E5AE/0/0
X-purgate-type: clean
X-purgate-size: 4630


--cdCRxXTfxIus4DWw
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 25 Mar 2026 20:13:18 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: Slow (higher scheduling latency?) system after S3 - regression
 4.17 -> 4.19 ?

On Sat, Oct 25, 2025 at 02:23:23PM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> Hi,
>=20
> After updating from Xen 4.17 to 4.19 it appears that I have some
> performance issues if system was suspended before. For now this is just
> vague observation, as I don't have much data yet.
>=20
> Generally, the user observable effect is that audio playback (over
> Qubes's PV audio thing) becomes very choppy, beyond usefulness (cannot
> make audio calls anymore, music/video playback also becomes useless with
> some players. For me this suggests some increased latency in scheduling
> - maybe some timer fires too late?
>=20
> This doesn't happen always, but I'd say quite often after S3, sometimes
> may need two or three suspend cycles to trigger the issue. But it's
> possible it is also some other factor, like which pCPU the VM gets
> scheduled on, maybe? But for now I didn't hit this issue before
> performing any S3. I don't have a reliable reproducer yet.
>=20
> While I write it's related to 4.17 -> 4.19 update, there is also slight
> possibility it's related to hardware change (CFL -> MTL). But, it's
> unlikely, since I'd probably get much more bug reports about that (the
> stable Qubes version uses 4.17, and we have many users on MTL).
>=20
> What would be the method to collect some useful debugging info? Some
> debug-keys (r? a?), some cmdline options?

In the meantime (sharing some of it on Matrix already), I managed to
build a much more isolated test. Specifically, a single PVH domU with
VLC, preloading 1s of audio (and not playing it really, the output is
set to a file). The specific command is:

    VLC_VERBOSE=3D3 vlc -I cli -A afile --no-loop --play-and-exit --run-tim=
e 1   ./melodigne-quiz-blind-test-187140.mp3

The domU rootfs (or rather: initramfs) is based on AppImage of VLC,
there is not much more inside, and the above command is called as part
of init script (and domU is terminated shortly after).

There is no persistent state in the test, the whole thing is network
booted from the same base. The only things changing between runs is xen
binary + toolstack.

In the output I'm looking for this line: main input debug: Stream buffering=
 done (1018 ms in 2 ms)

Before S3 it takes 0-2ms, sometimes (rarely) 10ms (not sure why). Just
after S3 it takes very similar amount of time.
Then, I wait 30min, and run that command (or really the whole domU)
again a few times. I consider it "good" if I get at least one result
below 10ms. With this test in hand, I did run bisect between
staging-4.17 and staging-4.19. And here stuff gets interesting:

At 498a4ded74b3f062c52e42568223dc5858d27731 I get the following times
(in ms):

    30m after S3: 2, 2, 10, 10,=20
    1h after S3: 2, 16, 16, 2, 17

At 5effd810c629d9a836e46ee321ca7409dad27212:

    30m after S3: 26, 27, 26, 15
    1h after S3: 24, 25, 37, 37, 25

This doesn't make any sense to me. There is a clear difference, yet
5effd810c629d9a836e46ee321ca7409dad27212 looks like a no-op change (at
least for this Intel system).
The earlier case is still not great, as there is still some
degradation after S3, but it gets significantly worse after that commit.

Console log of both versions:
https://gist.github.com/marmarek/ebcb0ff65dbdb31875e4e69db19e4729

In the "bad" case, I see this extra line:
(XEN) [    6.902973] Platform timer appears to have unexpectedly wrapped 1 =
times.

But in an earlier run of the same build it's not there.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmnEM84ACgkQ24/THMrX
1yxLdAf+Le2Z/FsOifJWVC7scOVsd8thHkmifsXSBDutriwore/ZIKaami4Dzm96
JRxncqB7J7Rp/jT1FwtD51mmwKrpUQ2Jc7w+I3ArLf9oncswPe73spAd0OUN7J2c
sC6tSw1+AZDEIVfqFoDK2WcB6u+JNnibnr+DWBG7sZf/pDvHfy5FlFYFHz7F/Vsa
LuqVjCeSsXjwiAOgQMKef1xPsdQSgbR8gP3XPD1pGFATTJWYQgoeSB2dXjKBaHAb
pydmBhDanogsell0PNRgrz0eRLIizrZYbCFa2QWHOUiIrWyrW9YI70E3cT/vJgAr
x/UMN3UWq70VsTRveKTvl1WSeP2MHg==
=x2wZ
-----END PGP SIGNATURE-----

--cdCRxXTfxIus4DWw--


From xen-devel-bounces@lists.xenproject.org Wed Mar 25 19:16:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 19:16:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1262988.1555249 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Thw-0006JR-Sd; Wed, 25 Mar 2026 19:16:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1262988.1555249; Wed, 25 Mar 2026 19:16:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5Thw-0006JK-Oz; Wed, 25 Mar 2026 19:16:00 +0000
Received: by outflank-mailman (input) for mailman id 1262988;
 Wed, 25 Mar 2026 19:15:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w5Thv-0006JC-A2
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 19:15:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5Thu-00FRDC-MJ
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 20:15:58 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c4346a-e002-0a2a0a5209dd-0a2a450ac478-30
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 20:15:58 +0100
Received: from [209.85.208.52] (helo=mail-ed1-f52.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c4346e-1772-0a2a450a0019-d155d034cd3b-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 20:15:58 +0100
Received: by mail-ed1-f52.google.com with SMTP id
 4fb4d7f45d1cf-66a395905a4so226045a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 12:15:58 -0700 (PDT)
Received: from [192.168.50.2] ([45.12.25.73]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-66ad5e3bb1csm145357a12.4.2026.03.25.12.15.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 12:15:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774466158; x=1775070958; 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=fKyqcIJHHq+wA2L0yU3rOfeA0IeFgUSxGGXLM8ujDpw=;
        b=c97jOeLNwRS0zMISpVgZRhjuCVbdtDbssztnnfb4ed0+Evkx/FPfF59BHEVpcXgVTQ
         rX4hKctZHRlhRvl73lsB7OELSTCOm4SMIcj9P+UXH67M1gL1qW0x9PzFEsiU2mpgqb7h
         Hl8ZdxB6IPxXGYrW1fUPcMXuGBKMuhdpJlMHixB3w7i49aXcwUjpqr52WIryzGpMcwjt
         qL+8rpWKdMtHkDIFBBzhQgNIGTn0VKk4uKQ7FLdKK/JBtucRAvCb4yM7mxP7sTjPl+81
         bRDNasg76+zQ9Fwn6/fHg6AzfJVGh2+TrOvBkp8ThIRmR944MkFH8wT5p3mUxQsC2hUr
         t8JQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774466158; x=1775070958;
        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=fKyqcIJHHq+wA2L0yU3rOfeA0IeFgUSxGGXLM8ujDpw=;
        b=US9SWxnUTl2yS+l7ycv/zcYr4MwKKq2YTTLN2hVMes9voh5JHrvaqP7HpjpllnZgf/
         QRrhBQdBb6nNIyt5FPyEGDvFuDwLmP2uDUpe0WVhBBj0P6N9+1SK71ZDoYixL4WnsP2J
         wTo8wYjtQ0129bAbB3W5I3Qk+G7HvN1NZyHdYVoUQZsnUI/QoAfMDS18gTT/ERsmk5C7
         0kIRwut1pT9ye1d3ILgWc5sQsWMN8Ta2p58ROih2IARFU5PI8VDD52CrfWgBGAGgQT2R
         RT8F0U6MZysZK01tys/VagAq4MnmsXwwih35Q7w9xhGT1k854IAxCTnL1o9TKazx809I
         Ub5w==
X-Forwarded-Encrypted: i=1; AJvYcCUhRMHv1U95uJOdTpoJyGnxn16ADYqH5D0glnFxYDQ7UGGZRPwsoZesIhnPZbRMEv3tAnGL5FgEmJ4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy7FexDMk0KD4w/cRs33rTrNh4B0A0V/iH+qowt2NUUWbj4e669
	W3oM3NwdJETcwEoEIDSsnuXc6XgFg/pk18wkak9o7ORxssooIPeUp0aQUa3Jcg==
X-Gm-Gg: ATEYQzxcxtBVKtzSyxKKA6WmgqM0hq/iyZyRNg1MjIs/aIHzS8EXikXtAgX0ziWr/Rx
	ItlpYvdtb7ZYsiu3j9VPTRGKN1necqR0wCHilu87qmyf1G7WQ8rnZ1ZPq4F8k6aBtcg/nQ3obP4
	gF4fcZI/WOWViNc2jsyYi3rE965hHxSsG30BW+fPwV/goeZU+PJmNfAOkIwqW1dACIGHkiCVGJ8
	PFSQyEMV6ugXOw74CHqixkHVLYN9n+SQHhSChFSQaiT2/fbnPcinz5KbEmH+7BrSdN47yeWWSu5
	6RXJOsfRYIl81o/g5bT3Rw/5MgRyN1eOezO4DXeo5lWq+Ht7Nsw9dXKVvoIvVxmxc2iMt2lSVJa
	JqNRQOAlL7TjsyAqo05dr/jHyhrFan5IG/0pmPNXwKHpgx/ujfLDVrTmvhb4PUSd1p8BbPBzzbO
	QGAC1MJxg7sdWPFwZslbQbSogR8g==
X-Received: by 2002:a05:6402:34cf:b0:66a:16ed:46cb with SMTP id 4fb4d7f45d1cf-66a826e284fmr3010063a12.26.1774466157795;
        Wed, 25 Mar 2026 12:15:57 -0700 (PDT)
Message-ID: <93be90c5-8ea9-40f2-89f2-1da4f998eb0d@gmail.com>
Date: Wed, 25 Mar 2026 21:13:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 23/23] doc/arm: vIOMMU design document
To: Milan Djokic <milan_djokic@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>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1774305918.git.milan_djokic@epam.com>
 <49d070a544492530d8c861fec03c90ea136c989e.1774305918.git.milan_djokic@epam.com>
Content-Language: en-US
From: Mykola Kvach <xakep.amatop@gmail.com>
In-Reply-To: <49d070a544492530d8c861fec03c90ea136c989e.1774305918.git.milan_djokic@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1774466158-BD689900-A4821F55/0/0
X-purgate-type: clean
X-purgate-size: 16317

This patch seems to be missing both the Signed-off-by tag and the commit
message body.

On 24/03/2026 00:51, Milan Djokic wrote:
> ---
>   docs/designs/arm-viommu.rst | 390 ++++++++++++++++++++++++++++++++++++
>   1 file changed, 390 insertions(+)
>   create mode 100644 docs/designs/arm-viommu.rst
> 
> diff --git a/docs/designs/arm-viommu.rst b/docs/designs/arm-viommu.rst
> new file mode 100644
> index 0000000000..0cf55d7108
> --- /dev/null
> +++ b/docs/designs/arm-viommu.rst
> @@ -0,0 +1,390 @@
> +==========================================================
> +Design Proposal: Add SMMUv3 Stage-1 Support for XEN Guests
> +==========================================================
> +
> +:Author:     Milan Djokic <milan_djokic@epam.com>
> +:Date:       2026-02-13
> +:Status:     Draft
> +
> +Introduction
> +============
> +
> +The SMMUv3 supports two stages of translation. Each stage of translation
> +can be
> +independently enabled. An incoming address is logically translated from
> +VA to
> +IPA in stage 1, then the IPA is input to stage 2 which translates the IPA to
> +the output PA. Stage 1 translation support is required to provide
> +isolation between different
> +devices within OS. XEN already supports Stage 2 translation but there is no
> +support for Stage 1 translation.
> +This design proposal outlines the introduction of Stage-1 SMMUv3 support
> +in Xen for ARM guests.
> +
> +Motivation
> +==========
> +
> +ARM systems utilizing SMMUv3 require stage-1 address translation to
> +ensure secure DMA and
> +guest managed I/O memory mappings.
> +With stage-1 enabled, guest manages IOVA to IPA mappings through its own
> +IOMMU driver.
> +
> +This feature enables:
> +
> +- Stage-1 translation for the guest domain
> +- Device passthrough with per-device I/O address space
> +
> +Design Overview
> +===============
> +
> +These changes provide emulated SMMUv3 support:
> +
> +- **SMMUv3 Stage-1 Translation**: stage-1 and nested translation support
> +  in SMMUv3 driver.
> +- **vIOMMU Abstraction**: Virtual IOMMU framework for guest stage-1
> +  handling.
> +- **Register/Command Emulation**: SMMUv3 register emulation and command
> +  queue handling.
> +- **Device Tree Extensions**: Adds `iommus` and virtual SMMUv3 nodes to
> +  device trees for dom0 and dom0less scenarios.
> +- **Runtime Configuration**: Introduces a `viommu` boot parameter for
> +  dynamic enablement.
> +
> +A single vIOMMU device is exposed to the guest and mapped to one or more
> +physical IOMMUs through a Xen-managed translation layer.
> +The vIOMMU feature provides a generic framework together with a backend
> +implementation specific to the target IOMMU type. The backend is responsible
> +for implementing the hardware-specific data structures and command handling
> +logic (currently only SMMUv3 is supported).
> +
> +This modular design allows the stage-1 support to be reused
> +for other IOMMU architectures in the future.
> +
> +vIOMMU architecture
> +===================
> +
> +Responsibilities:
> +
> +Guest:
> + - Configures stage-1 via vIOMMU commands.
> + - Handles stage-1 faults received from Xen.
> +
> +Xen:
> + - Emulates the IOMMU interface (registers, commands, events).
> + - Provides vSID->pSID mappings.
> + - Programs stage-1/stage-2 configuration in the physical IOMMU.
> + - Propagate stage-1 faults to guest.
> +
> +vIOMMU commands and faults are transmitted between guest and Xen via
> +command and event queues (one command/event queue created per guest).
> +
> +vIOMMU command Flow:
> +
> +::
> +
> +    Guest:
> +        smmu_cmd(vSID, IOVA -> IPA)
> +
> +    Xen:
> +        trap MMIO read/write
> +        translate vSID->pSID
> +        store stage-1 state
> +        program pIOMMU for (pSID, IPA -> PA)
> +
> +All hardware programming of the physical IOMMU is performed exclusively by Xen.
> +
> +vIOMMU Stage-1 fault handling flow:
> +
> +::
> +
> +    Xen:
> +        receives stage-1 fault
> +        triggers vIOMMU callback
> +        injects virtual fault
> +
> +    Guest:
> +        receives and handles fault
> +
> +vSID Mapping Layer
> +------------------
> +
> +Each guest-visible Stream ID (vSID) is mapped by Xen to a physical Stream ID
> +(pSID). The mapping is maintained per-domain. The allocation policy guarantees
> +vSID uniqueness within a domain while allowing reuse of pSIDs for different
> +pIOMMUs.
> +
> +* Platform devices receive individually allocated vSIDs.
> +* PCI devices receive a contiguous vSID range derived from RID space.
> +
> +
> +Supported Device Model
> +======================
> +
> +Currently, the vIOMMU framework supports only devices described via the
> +Device Tree (DT) model. This includes platform devices and basic PCI
> +devices support instantiated through the vPCI DT node. ACPI-described
> +devices are not supported.
> +
> +Guest assigned platform devices are mapped via `iommus` property:
> +
> +::
> +
> +    <&pIOMMU pSID> -> <&vIOMMU vSID>
> +
> +PCI devices use RID-based mapping via the root complex `iommu-map`:
> +
> +::
> +
> +    <RID-base &viommu vSID-base length>
> +
> +PCI Topology Assumptions and Constraints:
> +
> +- RID space must be contiguous
> +- Pre-defined continuous pSID space (0-0x1000)
> +- No runtime PCI reconfiguration
> +- Single root complex assumed
> +- Mapping is fixed at guest DT construction
> +
> +Constraints for PCI devices will be addressed as part of the future work on
> +this feature.
> +
> +Security Considerations
> +=======================
> +
> +Stage-1 translation provides isolation between guest devices by
> +enforcing a per-device I/O address space, preventing unauthorized DMA.
> +With the introduction of emulated IOMMU, additional protection
> +mechanisms are required to minimize security risks.
> +
> +1. Observation:
> +---------------
> +Support for Stage-1 translation in SMMUv3 introduces new data structures
> +(`s1_cfg` alongside `s2_cfg`)
> +and logic to write both Stage-1 and Stage-2 entries in the Stream Table
> +Entry (STE), including an `abort`
> +field to handle partial configuration states.
> +
> +**Risk:**
> +Without proper handling, a partially applied configuration
> +might leave guest DMA mappings in an inconsistent state, potentially
> +enabling unauthorized access or causing cross-domain interference.
> +
> +**Mitigation:** *(Handled by design)*
> +This feature introduces logic that writes both `s1_cfg` and `s2_cfg` to
> +STE and manages the `abort` field - only considering
> +configuration if fully attached. This ensures  incomplete or invalid
> +device configurations are safely ignored by the hypervisor.
> +
> +2. Observation:
> +---------------
> +Guests can now invalidate Stage-1 caches; invalidation needs forwarding
> +to SMMUv3 hardware to maintain coherence.
> +
> +**Risk:**
> +Failing to propagate cache invalidation could allow stale mappings,
> +enabling access to old mappings and possibly
> +data leakage or misrouting between devices assigned to the same guest.
> +
> +**Mitigation:**
> +The guest must issue appropriate invalidation commands whenever
> +its stage-1 I/O mappings are modified to ensure that translation caches
> +remain coherent.
> +
> +3. Observation:
> +---------------
> +Introducing optional per-guest enabled features (`viommu` argument in xl
> +guest config) means some guests
> +may opt-out.
> +
> +**Risk:**
> +Guests without vIOMMU enabled (stage-2 only) could potentially dominate
> +access to the physical command and event queues, since they bypass the
> +emulation layer and processing is faster comparing to vIOMMU-enabled guests.
> +
> +**Mitigation:**
> +Audit the impact of emulation overhead effect on IOMMU processing fairness
> +in a multi-guest environment.
> +Consider enabling/disabling stage-1 on a system level, instead of per-domain.
> +
> +4. Observation:
> +---------------
> +Guests have the ability to issue Stage-1 IOMMU commands like cache
> +invalidation, stream table entries
> +configuration, etc. An adversarial guest may issue a high volume of
> +commands in rapid succession.
> +
> +**Risk:**
> +Excessive commands requests can cause high hypervisor CPU consumption
> +and disrupt scheduling,
> +leading to degraded system responsiveness and potential
> +denial-of-service scenarios.
> +
> +**Mitigation:**
> +
> +- Implement vIOMMU commands execution restart and continuation support:
> +
> +  - Introduce processing budget with only a limited amount of commands
> +    handled per invocation.
> +  - If additional commands remain pending after the budget is exhausted,
> +    defer further processing and resume it asynchronously, e.g. via a
> +    per-domain tasklet.
> +
> +- Batch multiple commands of same type to reduce emulation overhead:
> +
> +  - Inspect the command queue and group commands that can be processed
> +    together (e.g. multiple successive invalidation requests or STE
> +    updates for the same SID).
> +  - Execute the entire batch in one go, reducing repeated accesses to
> +    guest memory and emulation overhead per command.
> +  - This reduces CPU time spent in the vIOMMU command processing loop.
> +    The optimization is applicable only when consecutive commands of the
> +    same type operate on the same SID/context.
> +
> +5. Observation:
> +---------------
> +Some guest commands issued towards vIOMMU are propagated to pIOMMU
> +command queue (e.g. TLB invalidate).
> +
> +**Risk:**
> +Excessive commands requests from abusive guest can cause flooding of
> +physical IOMMU command queue,
> +leading to degraded pIOMMU responsiveness on commands issued from other
> +guests.
> +
> +**Mitigation:**
> +
> +- Batch commands that are propagated to the pIOMMU command queue and
> +  implement batch execution pause/continuation.
> +  Rely on the same mechanisms as in the previous observation
> +  (command continuation and batching of pIOMMU-related commands of the same
> +  type and context).
> +- If possible, implement domain penalization by adding a per-domain budget
> +  for vIOMMU/pIOMMU usage:
> +
> +  - Apply per-domain dynamic budgeting of allowed IOMMU commands to
> +    execute per invocation, reducing the budget for guests with
> +    excessive command requests over a longer period of time
> +  - Combine with command continuation mechanism
> +
> +6. Observation:
> +---------------
> +The vIOMMU feature includes an event queue used to forward IOMMU events
> +to the guest (e.g. translation faults, invalid Stream IDs, permission errors).
> +A malicious guest may misconfigure its IOMMU state or intentionally trigger
> +faults at a high rate.
> +
> +**Risk:**
> +Occurrence of IOMMU events with high frequency can cause Xen to flood the
> +event queue and disrupt scheduling with
> +high hypervisor CPU load for events handling.
> +
> +**Mitigation:**
> +
> +- Implement fail-safe state by disabling events forwarding when faults
> +  are occurred with high frequency and
> +  not processed by guest:
> +
> +  - Introduce a per-domain pending event counter.
> +  - Stop forwarding events to the guest once the number of unprocessed
> +    events reaches a predefined threshold.
> +
> +- Consider disabling the emulated event queue for untrusted guests.
> +- Note that this risk is more general and may also apply to stage-2-only
> +  guests. This section addresses mitigations in the emulated IOMMU layer
> +  only. Mitigation of physical event queue flooding should also be considered
> +  in the target pIOMMU driver.
> +
> +Performance Impact
> +==================
> +
> +With iommu stage-1 and nested translation inclusion, performance
> +overhead is introduced comparing to existing,
> +stage-2 only usage in Xen. Once mappings are established, translations
> +should not introduce significant overhead.
> +Emulated paths may introduce moderate overhead, primarily affecting
> +device initialization and event/command handling.
> +Testing is performed on Renesas R-Car platform.
> +Performance is mostly impacted by emulated vIOMMU operations, results
> +shown in the following table.
> +
> ++-------------------------------+---------------------------------+
> +| vIOMMU Operation              | Execution time in guest         |
> ++===============================+=================================+
> +| Reg read                      | median: 645ns, worst-case: 2us  |
> ++-------------------------------+---------------------------------+
> +| Reg write                     | median: 630ns, worst-case: 1us  |
> ++-------------------------------+---------------------------------+
> +| Invalidate TLB                | median: 2us, worst-case: 10us   |
> ++-------------------------------+---------------------------------+
> +| Invalidate STE                | median: 5us worst_case: 100us   |
> ++-------------------------------+---------------------------------+
> +
> +With vIOMMU exposed to guest, guest OS has to initialize IOMMU device
> +and configure stage-1 mappings for the devices
> +attached to it.
> +Following table shows initialization stages which impact stage-1 enabled
> +guest boot time and compares it with
> +stage-1 disabled guest.
> +
> +NOTE: Device probe execution time varies depending on device complexity.
> +A USB host controller was selected as the test device in this case.
> +
> ++---------------------+-----------------------+------------------------+
> +| Stage               | Stage-1 Enabled Guest | Stage-1 Disabled Guest |
> ++=====================+=======================+========================+
> +| IOMMU Init          | ~10ms                 | /                      |
> ++---------------------+-----------------------+------------------------+
> +| Dev Attach / Mapping| ~100ms                | ~90ms                  |
> ++---------------------+-----------------------+------------------------+
> +
> +For devices configured with dynamic DMA mappings, DMA allocate/map/unmap
> +operations performance is
> +also impacted on stage-1 enabled guests.
> +Dynamic DMA mapping operation trigger emulated IOMMU functions like mmio
> +write/read and TLB invalidations.
> +
> ++---------------+---------------------------+--------------------------+
> +| DMA Op        | Stage-1 Enabled Guest     | Stage-1 Disabled Guest   |
> ++===============+===========================+==========================+
> +| dma_alloc     | median: 20us, worst: 5ms  | median: 8us, worst: 60us |
> ++---------------+---------------------------+--------------------------+
> +| dma_free      | median: 500us, worst: 10ms| median: 6us, worst: 30us |
> ++---------------+---------------------------+--------------------------+
> +| dma_map       | median: 12us, worst: 60us | median: 3us, worst: 20us |
> ++---------------+---------------------------+--------------------------+
> +| dma_unmap     | median: 400us, worst: 5ms | median: 5us, worst: 20us |
> ++---------------+---------------------------+--------------------------+
> +
> +Testing
> +=======
> +
> +- QEMU-based ARM system tests for Stage-1 translation.
> +- Actual hardware validation to ensure compatibility with real SMMUv3
> +implementations.
> +- Unit/Functional tests validating correct translations (not implemented).
> +
> +Migration and Compatibility
> +===========================
> +
> +This optional feature defaults to disabled (`viommu=""`) for backward
> +compatibility.
> +
> +Future improvements
> +===================
> +
> +- Implement the proposed mitigations to address security risks that are
> +  not covered by the current design
> +  (events batching, commands execution continuation)
> +- PCI support
> +- Support for other IOMMU HW (Renesas, RISC-V, etc.)
> +
> +References
> +==========
> +
> +- Original feature implemented by Rahul Singh:
> +
> +https://patchwork.kernel.org/project/xen-devel/cover/cover.1669888522.git.rahul.singh@arm.com/
> +
> +- SMMUv3 architecture documentation
> +- Existing vIOMMU code patterns (KVM, QEMU)
> \ No newline at end of file



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 20:43:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 20:43:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263038.1555258 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5V4l-0001Ii-St; Wed, 25 Mar 2026 20:43:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263038.1555258; Wed, 25 Mar 2026 20: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 1w5V4l-0001Ib-Ph; Wed, 25 Mar 2026 20:43:39 +0000
Received: by outflank-mailman (input) for mailman id 1263038;
 Wed, 25 Mar 2026 20:43:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Stewart.Hildebrand@amd.com>) id 1w5V4k-0001IT-TH
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 20:43:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5V4j-00B9cg-73
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 21:43:37 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Stewart.Hildebrand@amd.com>)
 id 69c448ec-e002-0a2a0a5209dd-0a2a450cdf8e-20
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 21:43:36 +0100
Received: from [52.101.48.46]
 (helo=MW6PR02CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Stewart.Hildebrand@amd.com>)
 id 69c448f6-f93d-0a2a450c0019-3465302e1ce1-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 21:43:36 +0100
Received: from BYAPR03CA0003.namprd03.prod.outlook.com (2603:10b6:a02:a8::16)
 by MN6PR12MB8516.namprd12.prod.outlook.com (2603:10b6:208:46f::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Wed, 25 Mar
 2026 20:43:30 +0000
Received: from CO1PEPF00012E7E.namprd03.prod.outlook.com
 (2603:10b6:a02:a8:cafe::9e) by BYAPR03CA0003.outlook.office365.com
 (2603:10b6:a02:a8::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.32 via Frontend Transport; Wed,
 25 Mar 2026 20:43:33 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF00012E7E.mail.protection.outlook.com (10.167.249.53) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9745.21 via Frontend Transport; Wed, 25 Mar 2026 20:43:29 +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; Wed, 25 Mar
 2026 15:43:28 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 25 Mar
 2026 13:43:28 -0700
Received: from [172.24.66.250] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 25 Mar 2026 15:43:27 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OLTOlT4gPyVcaleGj+dDp4ygX/3sf2lLDdir1ulZzQY3QV8TA4+nW83fmipu5selO3kd3KRsOPu7Ut4Hc305ZUEJOTeQdn9/PYu9d2w21B6rmZL3FperVRyQcPzLtg65gAXL4XhTCRDxv3Ns2Jq6aB8Dg+UzWjRZPNfHbcaoiNNsAsFkUumUm3JyPJNV1w9JHCAkKXYkIZpKJQke/lcCpP3NfDJBwJnu2zQifCCvRqctBGI9NsUuWEUA3TX8VCOjVOZ2gp959tzl2RsqcWpfdakGaQrUbNcjDgGaq7aIT7w3AjJbQlrfKDLT0bQITEP8hHcPSApoGzEmFaQc/kkEbQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TJ3Ia7HHiDIHFDKjoU5aNoyIZsQbWwQfyFhF1mXh0Ek=;
 b=cvrIA/yihVwAHEUim6YYdzMDOyoozyN3i9TQ9x6LnnPoVVMjCXzLlbhpwc8F4XXXYwkdFiqzsbQ2fSCuG7fR7iNOoCFsXy+IMetgy7ciQuvXwaa0Z3MEJM/lSR0J7NuBGPueilIelsgaGJVzth0hyG7jFDzYbiT0P/YFtAaHCFisuBrLM1xR+uNS5u2UqSsGJxC4uvMietWvbK2KX5x8Fbk+AIEkqavhEtOeeOsPOEWlIvH/6ZLgHngh2O7WX3PTh1TOqTxcDAn5R/elrmQRrA9ZuqfPyn63AzIadcS68vZPmU7WAH++fjsAReS4wSDRGSMKK7gfACo2T176KZ0dDg==
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=TJ3Ia7HHiDIHFDKjoU5aNoyIZsQbWwQfyFhF1mXh0Ek=;
 b=VGVe7yJ3Xz0ksXHzT3P663h5PgJlRO3c7ZWJxhZuIeEgJvcVt6sVmPU/INVnFv8Qw048fwTgVaZ+gCUF+JDVuWcqSt9FTXmLOmZldPejLz9t24/lYqqNqyekV7IKAXGZmbmWk6T5rxEvNROSTRot2GYiDKJXONyOZrhQf+2b24M=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <0fde03b5-949a-4825-87fd-a11463a3c064@amd.com>
Date: Wed, 25 Mar 2026 16:43:26 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] arinc653: avoid array overrun
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>, Jan Beulich
	<jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Nathan Studer <nathan.studer@dornerworks.com>, Stewart Hildebrand
	<stewart@stew.dk>, Kamil Frankowicz <kamil.frankowicz@cert.pl>
References: <89d17a24-0a1f-4f3f-ac2f-f3701a8d78dd@suse.com>
 <7829c799-64b2-4686-8895-6ec73231c5d8@suse.com>
 <362f599f-b195-49da-8c53-1db69add203f@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <362f599f-b195-49da-8c53-1db69add203f@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF00012E7E:EE_|MN6PR12MB8516:EE_
X-MS-Office365-Filtering-Correlation-Id: e683eabb-f41e-41f5-9f64-08de8aaf2c17
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700016|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	NAbU+4iJOzj3FUWEvAYnBOonbfr5H/fNfhekVBMBU4xNkcOPnBGwMh0QyNuOEqV2zE2D6gPx2XGdKqCiLF80Ca8vF23ilR06JEWVB4/VLf7fpz3f/HR7QbTLKC2IDJ9pHHgMxqCfzhOskfGp5DiuQTzhYwDoTIiTCB3mCYwgydkYrNSkmAf13BT5inncdGH857Ki7AnDoX7R6QGc+RLGCytJpISBzoGosvtjvrIau7UjEXelTQRnvZrbRSY8YDJiVzI1LF0flvUG4ijixBl/N6PRLYQgGdn5eMzZMwh2twWdBqytgifxlK2Xp2UlJeS48/QPMuU/s26zrLJFySN9vq8TClqb+lPJ0ryMB+kep5WAc9bNEcNA/RxHsaQZ0T4zmQzYU8R80dbbWI5+J8W7z6VG0/ZoKHv5Mqf9wDOAAnmyQqRg0dcutA4K44RoEQaQXBsxOUfYTsU4P+6SpmsnUKunldR8qOsoP3fixUhaahTY7zlAbSz/fROxvPGzgVRXBr8w35OlVGDCFOqPxWCYqQGDSBwpSUKZie8eCKfwR4aSTQ40BuL9q43fXQ+tN85sk5Bug+a3Urslr1dCSR3Ni4m2gd+etFuGZoSSwkMIisam/Uj45HbJI7Mibegc2y/rGwRUSBGeYon0aX8mdwiVDHGApuO32VE5sp9A+gvo5URp7BZGTj/Ajr0Di1Bv10ABc2+y4j6/FqCp2aVj9+ZrJlERHPPpI3TrdMyH3bRYRLCAMNxp+QvQi3Ml0mbgTfSmDZr6KEoz75m/mIthtRTKmg==
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)(36860700016)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	XbMwSxWjyUJS1yh/ih7ayemnIpKU5iIPNrn5+sGWqeWHgR1+H2A4J6zFM8WzY++y8k+1RQwZnVBgnQMcpKJKE/YmZmiebxi9BU2NNuw8lzLvKPuU6dwhm877zjK0Vbe4x4NwlI49x+CVHHqBgKBPjSv46HynVjFixYrqSrhifRv/4dFuiMcIuwr0hLWK9cKeuseCWgo408VCq76xf8NCk3JKqwsXLejW4rJt6mS5fNX4qmS7CPsT6xHBzWlqaNGFnMl1LZHRwzQMwk9wWfIZScd2Zoo2jxpWrMZ4dWNl2icSIYiaoLzcKEenx8SfnYRI1FuETdzwwB/HtSoeG4NlH8RqFW6AhdMJpdar+A2NiNx5CDC4xNj+NButOTNTaJ99J8sEWvuICaZOPH3r/d5A1T76elrZiScl23AhaFrfi7yQWkrhNzhBy//XEgCV0KCu
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 20:43:29.5509
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e683eabb-f41e-41f5-9f64-08de8aaf2c17
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF00012E7E.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN6PR12MB8516
X-purgate-ID: tlsNG-d25034/1774471416-F4EBB734-E8FD0F4C/0/0
X-purgate-type: clean
X-purgate-size: 1900

On 3/25/26 09:22, Jürgen Groß wrote:
> On 25.03.26 13:55, Jan Beulich wrote:
>> Incrementing ->sched_index between bounds check and array access may
>> result in accessing one past the array when that is fully filled
>> (->num_schedule_entries == ARINC653_MAX_DOMAINS_PER_SCHEDULE).
>>
>> Fixes: 22787f2e107c ("ARINC 653 scheduler")
>> Reported-by: Kamil Frankowicz <kamil.frankowicz@cert.pl>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Reviewed-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Stewart Hildebrand <stewart@stew.dk>

Thanks for this.

> 
> with ...
> 
>> ---
>> Jürgen, provided I understood him correctly, suggests that something like
>>
>>      while ( now >= sched_priv->next_switch_time )
>>      {
>>          sched_priv->sched_index++;
>>          ASSERT(sched_priv->sched_index < sched_priv->num_schedule_entries);
>>          sched_priv->next_switch_time +=
>>              sched_priv->schedule[sched_priv->sched_index].runtime;
>>      }
>>
>> should also be valid to move to, due to constraints applied by
>> arinc653_sched_set().

Not quite, because major_frame is allowed to be larger than the sum of the
runtimes, and in that case the ASSERT would trigger during the idle period.

>> I'm hesitant to make such a change though, not
>> really knowing the scheduler; the change here looks more obviously correct
>> to me. Albeit the Fixes: tag may thus want dropping.
> 
> the Fixes: tag dropped, as the constraints mentioned are IMO really enough
> to avoid an issue.

No, the constraints aren't enough, the out-of-bounds access would occur during
an idle period of a fully filled schedule. I suggest keeping the Fixes: tag.

> 
> I agree that the current code is far from obviously correct, so your patch
> is definitively an improvement.
> 
> 
> Juergen



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 21:33:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 21:33:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263073.1555267 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5VqW-000807-Gh; Wed, 25 Mar 2026 21:33:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263073.1555267; Wed, 25 Mar 2026 21: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 1w5VqW-000800-DV; Wed, 25 Mar 2026 21:33:00 +0000
Received: by outflank-mailman (input) for mailman id 1263073;
 Wed, 25 Mar 2026 21:32:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Stewart.Hildebrand@amd.com>) id 1w5VqU-0007zu-Te
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 21:32:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5VqT-007F7O-R3
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 22:32:57 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Stewart.Hildebrand@amd.com>)
 id 69c45475-5cb7-0a2a0a5109dd-0a2a4502c61e-28
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 22:32:57 +0100
Received: from [52.101.85.13]
 (helo=BYAPR05CU005.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Stewart.Hildebrand@amd.com>)
 id 69c45487-63bb-0a2a45020019-3465550d5888-3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 22:32:56 +0100
Received: from SA1PR05CA0015.namprd05.prod.outlook.com (2603:10b6:806:2d2::24)
 by DS2PR12MB9797.namprd12.prod.outlook.com (2603:10b6:8:2ba::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.7; Wed, 25 Mar
 2026 21:32:49 +0000
Received: from SN1PEPF00036F40.namprd05.prod.outlook.com
 (2603:10b6:806:2d2:cafe::27) by SA1PR05CA0015.outlook.office365.com
 (2603:10b6:806:2d2::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.21 via Frontend Transport; Wed,
 25 Mar 2026 21:32:49 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SN1PEPF00036F40.mail.protection.outlook.com (10.167.248.24) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9745.21 via Frontend Transport; Wed, 25 Mar 2026 21:32:49 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 25 Mar
 2026 16:32:49 -0500
Received: from [172.24.66.250] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 25 Mar 2026 16:32:48 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DZqaAnW4aro8WAugMLHX6zk7MTSGHH/oSPovMUREmcFaj8fKtLJEUKuSc+zpov++7mbZTe2eNpISHXSBzU8ISP477HJbTPHS6tAQCGJmrGiz0BP3rXXqdwqIc3vY1QvtgkDp8L3JRqOqTf16PAOiGRXLJj1kU9leBhTRBi9CpZ5OO/lPjnpT6nhj1qz7pKMwUpVZCf/LCTiTQc2EzGGbW++HHuV05AA2LKV3DQUbjsV3fWpCQAct3AXgM1nHGGqc/IkraMAv8Dcd5ENFy0zAMX92mI896xI6Zi8pQ+YcZpnPgUf2rFg0ssFI6YMXGQ+fSWvz0JXoQy3Ts4KmSDlQSg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/ARDBad1bfc+Ep20ji2Krz8i0VzFmUeOG2n5LLiFqs0=;
 b=T1mfq8iYxLPhPaBML9X/Uk6lhKs9QNyI53i8U4JOJfzPjmsJuIEKeVs4WPTOYeE52sd7qb0Y9f6BcdtnemkpFfm64GcTLZPbbU7ecIQSyb3Mh9+7IdbsYKvV/iZt3UDr6farlykSP1UY5yFlDXGgD265SuiQo/YjTsJW2cZq3d+VXfyywxq3W0rCz2PZV0Ww3EJtd2WplLDZ/PONr3phILZbCQ74Ei5e70MtFIKJU1jF/TSNANFecmXN8Nrk4OSNdmYPes3MOJbX2FUpXrR/F9DHh8ZzP30RYmbZdHDAd2zUTa3olV48cNpmVxz22lAV3BxFOdlfue93dO/aVsTcOw==
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=/ARDBad1bfc+Ep20ji2Krz8i0VzFmUeOG2n5LLiFqs0=;
 b=fHNW4Vvt+mhJSB1x7we9Y7bR1nIWjixQsTOYqHiWwOv93qQ74FqG44zl1UPlekGJkXHbToECi4ukpFHz4ex/zaGsaSMQks+oLilQXasYNyGrYgi9HLSzzWBx2osFrWrvP0LvWvSGHAciYzZKak1oHNSrOTcCUK+K8pM96YoNkgA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <552ba562-e948-475e-a235-89663b9ff648@amd.com>
Date: Wed, 25 Mar 2026 17:32:47 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] arinc653: don't assume Dom0 is the control domain
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Nathan Studer <nathan.studer@dornerworks.com>, Stewart Hildebrand
	<stewart@stew.dk>
References: <89d17a24-0a1f-4f3f-ac2f-f3701a8d78dd@suse.com>
 <3a491956-81a6-4c7e-acb0-14f135fc5596@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <3a491956-81a6-4c7e-acb0-14f135fc5596@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F40:EE_|DS2PR12MB9797:EE_
X-MS-Office365-Filtering-Correlation-Id: c511f6f8-9614-42be-96ae-08de8ab61056
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700016|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	ubiuIdbMFVMeUC3TUvfENeV5uhPGJPV8RuM+Vmul8TuRJmzHSomzxM0McMBPf8dXFvtxychFuYexUyYN2FCl7EJPwHE7h6yFmJekpKUtokAlCj+inoW5pSuWOFudAQfuRI1QQvAigttSVetOi2BqmebO03L1/v8m5MVOvtzwn+dzRgxe9VVrSTBnp8+RKygosv3Ol2WkGMyspyy+4rjEIiDUFXJnBIrjoQcWilojRQOVYLAbKBgRGXH9JetnDqJysP8JWcaACALhcf5R3bEmySj/vnxVB55lfK2xdlWwpRq0oGn1RIo8JRqLpUtAPuu0TqlcKyt0J4uoQDTKUdLnMyqJZEkHf5EfYgmdsVQ74u0nTZo/yq8cdOg4YZYsC1bU6+URZsvxbmcnNLGw3MgOowuhgs0Xp+gxTAm+M2Y30MK++WQOxFsdcm5d9N4H4ZjaiOqUXwsn6TnXmAmeyh87C19W6hq+UtDJh/HxnyOER/sfNIKmeXkFZaO2NU7ABxtg/QbeveQtP+cKNEWA6RFrdAKENqRv+dIYLtUfjbm7bcnReyJVaAvadBcrlivanAYpPmhJm5eAOrpTn+djrFDt6pUpleOXxm8mFdAV1F6XN8nLjGxrhym8w/dSZ1cxuJ88R6AJbomYFYTcd3ELWQ4sHSYKSqY6e2bNXZSezvroNP8innJnyW9hfCCyLhkUOFUiunepInFuK1bTVtQxKde7PZ7RGKwyJPHHnm44ap4YJTda3ilyEmcP2dxw6duRVipyg2ePlkIk1+EmCzRHSZezWA==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700016)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	VGn9Qc6qQcU9sL5LcTD+HgTWZa+cUNuzXpUC3ZELihTciiGcNCtgpKFx/r3a7AAgEUpWwCKjp6rg0RcayI9moBROXJXakyraS38FKOzOBoopiKRaV+0zvxvAbfTIzMGmqOUrs/Mn5/vQK9OW6uv5LInPhP+j9T9Cna71DxQR5rsxptRl+aEBKhjRzTPZT329369xl7Wc6VDTgIFQSOZT/qJIrWNrKcUyn2XAjhKvroy6s6ci/OpyhhhCcqEKTTIISypvSrjMjWd29BVt3gEAIFMs8Q9pX4IpvEzCLLJeGzra8j9m6qf1v8RXGEIUpaA+VVl9El1OOCfCn/rWXFTc+ZvgBeZL6kxtweUo4mOZdJqHMyPt2HAmQsSrCSJNEmIGa6vrPzgy4NEV/qeSEMTdZX5yNFTIA4Cxo7xU2stMdMdNwp8CxD1azQR1EQi9KyXB
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 21:32:49.5547
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c511f6f8-9614-42be-96ae-08de8ab61056
X-MS-Exchange-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:
	SN1PEPF00036F40.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR12MB9797
X-purgate-ID: tlsNG-720697/1774474377-BE487DB8-7A7B3852/0/0
X-purgate-type: clean
X-purgate-size: 1543

On 3/25/26 08:54, Jan Beulich wrote:
> Leaving aside highly disaggregated environments, the control domain is
> what will invoke XEN_SYSCTL_SCHEDOP_putinfo. Its vCPU-s therefore need to
> be able to run unconditionally, not those of the domain with ID 0 (which
> may not exist at all).
> 
> Fixes: 9f0c658baedc ("arinc: add cpu-pool support to scheduler")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> There being no "else" to the if(), what about other control domain vCPU-s?

I wonder if a panic() is appropriate in the else case. If not, at least a
warning or error message should be logged.

> And why are they added to all scheduler instances?
> ---
> v2: New.
> 
> --- a/xen/common/sched/arinc653.c
> +++ b/xen/common/sched/arinc653.c
> @@ -411,10 +411,10 @@ a653sched_alloc_udata(const struct sched
>      spin_lock_irqsave(&sched_priv->lock, flags);
>  
>      /*
> -     * Add every one of dom0's units to the schedule, as long as there are
> -     * slots available.
> +     * Add every one of the control domain's units to the schedule, as long as
> +     * there are slots available.
>       */
> -    if ( unit->domain->domain_id == 0 )
> +    if ( is_control_domain(unit->domain) )

Sorry, I didn't realize before that is_control_domain() includes the idle
domain. We don't want to include the idle domain in the default schedule here.

I suggest adding '&& !is_idle_domain(unit->domain)' or similar.

>      {
>          entry = sched_priv->num_schedule_entries;
>  
> 
> 



From xen-devel-bounces@lists.xenproject.org Wed Mar 25 21:38:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Mar 2026 21:38:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263090.1555275 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5VvP-0000Ev-0i; Wed, 25 Mar 2026 21:38:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263090.1555275; Wed, 25 Mar 2026 21: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 1w5VvO-0000Eo-U5; Wed, 25 Mar 2026 21:38:02 +0000
Received: by outflank-mailman (input) for mailman id 1263090;
 Wed, 25 Mar 2026 21:38:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Stewart.Hildebrand@amd.com>) id 1w5VvN-0000Ei-CK
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 21:38:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5VvM-007FkX-KP
 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2026 22:38:00 +0100
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Stewart.Hildebrand@amd.com>)
 id 69c455af-5cb7-0a2a0a5109dd-0a2a4506c7f0-2
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 22:38:00 +0100
Received: from [40.107.208.58]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Stewart.Hildebrand@amd.com>)
 id 69c455b6-3034-0a2a45060019-286bd03a48b6-4
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 22:37:59 +0100
Received: from PH8P221CA0010.NAMP221.PROD.OUTLOOK.COM (2603:10b6:510:2d8::14)
 by CH3PR12MB9147.namprd12.prod.outlook.com (2603:10b6:610:19a::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.6; Wed, 25 Mar
 2026 21:37:52 +0000
Received: from CY4PEPF0000EE37.namprd05.prod.outlook.com
 (2603:10b6:510:2d8:cafe::7c) by PH8P221CA0010.outlook.office365.com
 (2603:10b6:510:2d8::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.32 via Frontend Transport; Wed,
 25 Mar 2026 21:37:51 +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.9745.21 via Frontend Transport; Wed, 25 Mar 2026 21:37:51 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Wed, 25 Mar
 2026 16:37:51 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 25 Mar
 2026 16:37:50 -0500
Received: from [172.24.66.250] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 25 Mar 2026 16:37:50 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dQQey1C2QfwOlVAN5jS+yTvnqMiA3iIl9vxSBpQFjRrJsWKIrSXu6SFDk7HoWQS7E1/yGrkxPyiXhBXSb1dXMzziLGd7C5xiBv9Q4pq6s3rJQUYpq9VfXxh+hB1uYmqFQkG7QEFDF1Y82FtSpe6+yxiDUmxResNPss1WzkOosb4oGe2x9v+A0f76KNKnNvPC0NihVfwcDAKJbicrIKBB2JojaFK8weN011Rrq6UnQk7MdANjQd5GCoMhuiIWnPVQNx3br35gbHWetbkpv5STHK9ZqQzRWagOU6rdUWXfQ0P3TqutDeWKz+gdCh65CpYPBM4tQbnR1+tkYKEWA38/Mg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=beu4NdR+dK3AFprj+R0bdkyG6IY9mV5sGu5B3BAz++U=;
 b=iMliYLe8fOWQRV5SwIVdJJm3g/3D0uwbA3SyH3rv1D8HtTsycHX596wpY/9XEYX5AAU3Wyb5SaJFWC6hS5GSEcyVxaPojDhejR8FW5JPIYXsbVfuglf1BnMl3xl3Hq51EgFmEVSSGPYiVxcC57BcgXDL3jsQx7QUSHRRHd9pu4nqRCOtfBX43CpgP7IhZOcbXhvnhm1a5KMfarQ0DberCNALFlI51IvN+jgE7brfS0jxwAQTxoa+gUkcutnhBr89IrnwXzdFHjJWaNVOjQOWLvN12WDH9paGpWJpU9oeeAS2BN+ZZAXYIF/ktiaPntT+zVOk7BoeEOmgVvwxYAwmaQ==
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=beu4NdR+dK3AFprj+R0bdkyG6IY9mV5sGu5B3BAz++U=;
 b=G5pYTMK2/gQaGZ75aOJlsYjpQsMcKW3ns4tKKFOShDEGBVwguslIZTma3cCrjUZ86BSA5pA1SnL4V3jgtHb/H8szc3to10/p6ZcbSm9zEGYwZJJRgJqNFN9K15PYrA90A+4wuqryXvLgGGhyXYrNxU2/Ks6Mr6w270P9J7rTxHY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <4d99d4f5-923a-42ec-9e9f-0b83a66dce2e@amd.com>
Date: Wed, 25 Mar 2026 17:37:49 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] arinc653: overwrite entire .dom_handle[] for Dom0
 slots
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>, Jan Beulich
	<jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Nathan Studer <nathan.studer@dornerworks.com>, Stewart Hildebrand
	<stewart@stew.dk>
References: <89d17a24-0a1f-4f3f-ac2f-f3701a8d78dd@suse.com>
 <1b73213f-90ec-436f-821e-b9998be9a9b1@suse.com>
 <80341e7f-4a06-4882-b678-09a83ceccea5@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <80341e7f-4a06-4882-b678-09a83ceccea5@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB04.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE37:EE_|CH3PR12MB9147:EE_
X-MS-Office365-Filtering-Correlation-Id: 96f044eb-52be-4a0e-4f3b-08de8ab6c47a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|1800799024|376014|82310400026|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	dHz3YUp37qWn07w5Bi5OTEOnA2xgBd/LvzstDYskzNXw+xMikJkTxDpXJe4F7mSUQraSO+Yd3Kewlppk/Vcz7eTyKpG6avCoHAB/QWaRBXKxdAh+digW+UZ+GPzjW5Wg+QWyYgPc/eCRysSr3iXA4PzoqR+i5HWhaOFK3lzvJ86XMzC9Pk+1qL/Z3Q4sqC51jFyDc7NYepvblYD4G0tCUZ/WuE4J/odVxqp/1Zf5fsPi8RyPthZGWvGFEQ0j6+8CEicuybNQrV/gyD4r+9fSkqUWjCFqQjhjt7sX+WyV344PWfG7DdST6JekueOWQQyyN2poxKbwryb7XQF+D3oCkpbhBkQ9xaeXfhjbCDL2hqAF8hl7xV0sO9Jq+tAkUtZE8W9QJSbKJj5vGy4F2DvRUdpobnXtJZDaH21ApIY+a+3lFMafl0Dx1QUzZPPuitEUzO7Sxn1l+IAL8eu6mnt9OiV5NweGaHE5idy7Y2VuhXNsZ/LDHKuTxtAwdJKjgW3xaLOU30lLFwyNTnmCutSPxBAc1ncLY5GavriiK3ngbfyCT41YXHQagwULIMWRkIRmeN6+1xCHvbUJy1GStxqkkB9CEtFLnfzWyyZGiq6XeSANPbP++tvw3zmJON3tZKktCkyRHh+xuRzWyW/OM14PWvunfvBHU1GYwtkBG7KlPRZD58Fv29r5foZsXte0RK6iEVIBQ6Krj4UCxEQEW0KBuZ/vRMhu+ayOKIbETqjefNBz8FmasXNisjffI9spru3DidEVym6wIz0CwGkWYxLJdA==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(1800799024)(376014)(82310400026)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ZhdswEMkclqnEtWJWengYElMG2KLf1FDrwERw4U72mhytjsVECn6hvKMQeZX3R/ttBSkuALoKo7YvxxIDwB99fKxjLAWVj0eyo2FJbHcIympVq8vSVFZJGVBWy459fxhPgfSrdqrG19CQP4hcToX9U4idZoXk3LLQfnABsb6PwaynVrUcYCb7vZbD9kqa7oahsvYuXK5yeqxhVRmNkJb4U38wdgsnWs+czaTEedibYGLLk1hqwW30syic2vF/w0qno853KmXlC5BToAuDwdWpTXLv0bgQCJ9DafhiimEHW5kHxBmIPsATH5zJATqSy9wWyJ7EcySicaU8Kv8PFyx1jaymm8ub/LhOCstPXoluY3T0A3n3LgklazZIAJGhXCWetXCzA/KtnFQ99I41W6Jcmo0ZPlMrQ+fR4LRY6+HrTrGU/ZUcI4KphCiOYw4ItHS
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 21:37:51.7311
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 96f044eb-52be-4a0e-4f3b-08de8ab6c47a
X-MS-Exchange-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: CH3PR12MB9147
X-purgate-ID: tlsNG-16d1c6/1774474680-81B8E1C2-440BD1EE/0/0
X-purgate-type: clean
X-purgate-size: 787

On 3/25/26 09:51, Jürgen Groß wrote:
> On 25.03.26 13:53, Jan Beulich wrote:
>> When that code still lived in a653sched_init(), it was redundant with the
>> earlier memset() / xzalloc(). Once moved, the full structure field needs
>> setting, as dom_handle_cmp() uses memcmp().

Nit: perhaps also mention that the concern is the dom_handle being clobbered by
arinc653_sched_set()

>> Rather than implying the
>> handle to be all zero, copy the handle out of the domain structure.
>>
>> Fixes: 9f0c658baedc ("arinc: add cpu-pool support to scheduler")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Reviewed-by: Juergen Gross <jgross@suse.com>

With or without the adjustment to the commit message:
Reviewed-by: Stewart Hildebrand <stewart@stew.dk>

Thanks!


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 02:19:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 02:19:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263223.1555285 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5aJk-0002B7-Uq; Thu, 26 Mar 2026 02:19:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263223.1555285; Thu, 26 Mar 2026 02:19:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5aJk-0002Az-Pb; Thu, 26 Mar 2026 02:19:28 +0000
Received: by outflank-mailman (input) for mailman id 1263223;
 Thu, 26 Mar 2026 02:19:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Stewart.Hildebrand@amd.com>) id 1w5aJj-0002At-Lj
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 02:19:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5aJh-00EWxc-GH
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 03:19:27 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Stewart.Hildebrand@amd.com>)
 id 69c4977c-2eae-0a2a0a5409dd-0a2a45049880-38
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 03:19:26 +0100
Received: from [40.107.209.61]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Stewart.Hildebrand@amd.com>)
 id 69c497ac-c823-0a2a45040019-286bd13dc6aa-4
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 03:19:26 +0100
Received: from BN9PR03CA0927.namprd03.prod.outlook.com (2603:10b6:408:107::32)
 by CY8PR12MB8193.namprd12.prod.outlook.com (2603:10b6:930:71::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.7; Thu, 26 Mar
 2026 02:19:20 +0000
Received: from BN3PEPF0000B06C.namprd21.prod.outlook.com
 (2603:10b6:408:107:cafe::f0) by BN9PR03CA0927.outlook.office365.com
 (2603:10b6:408:107::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.32 via Frontend Transport; Thu,
 26 Mar 2026 02:19:29 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN3PEPF0000B06C.mail.protection.outlook.com (10.167.243.71) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9769.0 via Frontend Transport; Thu, 26 Mar 2026 02:19:20 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Wed, 25 Mar
 2026 21:19:19 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 25 Mar
 2026 21:19:19 -0500
Received: from ubuntu (10.180.168.240) by satlexmb08.amd.com (10.181.42.217)
 with Microsoft SMTP Server id 15.2.2562.17 via Frontend Transport; Wed, 25
 Mar 2026 21:19:18 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QU8two/LqyWynI0ZBPBe8o4qwy5a9755vAGtykTm56HXjUaqCRQWh9g8SN83FcLNnmqrVCe9ZBkcMb8Ew6/Hr16+Insftaw+EHgWFkh1zGR1wgvjZGDOLw68ERTHQqYMhsfMn7rCM8wIuq0rkrRCCIZRcqyqtqOsJCAb5VumZEXuXRo4yI0QOtcgseI7rM5TA1lL52UqMEoAiN950Oi2xJEggoL+8AI3jODre1YIbgwPxHq7BvmJ2qKClLhBHWFVCPZaKLMFBieRxVgUzSnqdr2Jw0nmQZyZxKdpeU5ag2/neWYHNlHdydBYwOMnJZ20VpTWIHaUHauBl7ZfihslaA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YYlzIjD3JfzhhfUSRTGanYorEI5YvO428R5m6MXnJBo=;
 b=myFKihjt25GP/bct0Dx1++y7xoZDVP96ECJF6xwc8u0muA5aemhSLN3nIVCc83ENAIoUzcM3LF06WDGBxi6nGdhHPoDxYauX7E9euuLkKEwLvAwFt0Tv59HAsphcLJjBhJSkTNCyWNsLyfRW78h2lWiPU2NYkWeNxnseYt1vfEo+CyrZwiMjYtlK7qHLkr/OMlll4j8Kd20K23EPztwK21HUqiPQEapQMK7TFhBiIrgAZHciLucSwJ31/UkPob3CbR/3WAkbvjW1TL81l6ctdozhN9S9X8+X+HVRWLLsY6g+ORZmq27cktrmW0VVBtwVgOfN2VCIrRgW9w0edSi+4Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=dornerworks.com smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YYlzIjD3JfzhhfUSRTGanYorEI5YvO428R5m6MXnJBo=;
 b=i+RSHKhb6EePwRjORm+ez7ugr43aod99VFs8O9VMwflm2NyBksijA3LMnupg5RV6uyvyzYOeiP4kiw/SQmx7BETyglPkrUjZ+qUBPswBocg4hsInED8t0dGYyds+UqIFWv4cXPRj7SiDtUt5Y7BFaqcVhdbFuUyygLC4w7fF1h8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: <xen-devel@dornerworks.com>, <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>, Nathan Studer
	<nathan.studer@dornerworks.com>, Dario Faggioli <dfaggioli@suse.com>, Juergen
 Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>, "Jan Beulich"
	<jbeulich@suse.com>
Subject: [PATCH] arinc653: remove idle period in default schedule
Date: Wed, 25 Mar 2026 22:19:09 -0400
Message-ID: <20260326021911.782516-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB04.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B06C:EE_|CY8PR12MB8193:EE_
X-MS-Office365-Filtering-Correlation-Id: dcad2469-186a-485a-b1bc-08de8ade16ef
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700016|376014|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	OrULxt0rb1LYyzoYSdDHefRBd4NRjhuV8js/jZVLBgDIYyoyfvGKOfjBteca8rGemE1Lw8y2yVUjZB4VktvNrRwGfe5+GLDyoeHl2G9/i7b1uMMqrscADdni0kWpm345fh9PdE9JADXu26RpO7uXzkvYZjEryBVA6qydW7GTNV1blU5ZqQZL5wgOfVymAruXRsRJ6IDBda8SNaYxRiYTtQIojW6mKscC1co+LbtkTilzX5NAPcJc/QMmD3nxnQnbVl+VQgOPsUUm6oYgQTNR3r8aZLZ6eZFVxfAfet9y4zJV1T3+C1Wk7A3vV4R/WurDbA2Gez+BocbqML06Gai+KVWO6/9TT54x1dtuwZYBQQGVhtUtiYkdThOh+D56X4yW1aiIclxqNfFh9M2Ray5Wp5mH/vlWcH77HdfPlyICYoIWmbHI/f5jYJxTJ/2k0x4nN1A7iWp21dVQvBnsfAXEPbMjDqsAYoTkvsHnrYdbS/oOnZbv9MfBFmpTZUwb77hPic3yH/k2+P8gsuCBE4hzjHDXNWHFK03VvkeJJBikHwIIM3BPsluHeFZiTFRaTl7OZH6PCQjv/t4xG2daGdENtFsLj/VKItEhxfJYtsA17E50SBH/hLQxlQsqzAH+/PvSOpvfHCokgRhIyqx10bo/MtiUI+jznhgjeT7z+ojKnfdts2lNTR3+L13J9tosPylHu47oO7lQ7DgleYDf5Rmb/L1V1m2J4E+WQbmcJohTHkF7YTVD0vr8H1qfqhiqHzrvOdKhopb+rBhnYHX+E1X2Ug==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(376014)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	+NBTowrE7MHJ9zrcGtlv2syBQF+GJirKF/qK9PK47Vk4jjDgQCsEO5Sa8/dj/JI7ItH8bZSt85b5RDt6O74ulpUNPxVuxhyVkwLAZL+xTtfaYVVMlCvkvKuPYwyT7qBG44B7akOXxPUaq7tzladKr4OFQB/9gseQzlI56F+HX1ztPReEJAJJ7moRtifQkepIieYqo/ktdqaZWI0ctv4vv8/R8halSQU/brxQQfwIluWOoxVTw10E7XYWbX6UyAHsCt+EFVgQ+dFbKM4Qqz8jRs2jTu3ULnBxGCCdlzYklDHjznRu39q4AOKgoNv2nTrItWBrGLoONsFepTBL5qzHU0UXcKAO4aZyLkslebFfg9sHMFhB//IlZBcWzgjQJqGAm4ZvNg2MhR9qxYukkYKoSwHlyYGMRQFhc3DnItlgxO42tJj11uWyKw/VL5wGtRk6
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 02:19:20.4935
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dcad2469-186a-485a-b1bc-08de8ade16ef
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B06C.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB8193
X-purgate-ID: tlsNG-ebf023/1774491566-106659D1-C7FB828D/0/0
X-purgate-type: clean
X-purgate-size: 1145

By initializing major_frame in a653sched_init(), an idle period was
inadvertently introduced into the default schedule. Account for the
initial value of major_frame when populating the default schedule.

Fixes: f2927d8343ae ("xen/arinc653: fix delay in the start of major frame")
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
 xen/common/sched/arinc653.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/common/sched/arinc653.c b/xen/common/sched/arinc653.c
index 8a4f4259d8b3..b709bcfcc8a4 100644
--- a/xen/common/sched/arinc653.c
+++ b/xen/common/sched/arinc653.c
@@ -425,7 +425,8 @@ a653sched_alloc_udata(const struct scheduler *ops, struct sched_unit *unit,
             sched_priv->schedule[entry].runtime = DEFAULT_TIMESLICE;
             sched_priv->schedule[entry].unit = unit;
 
-            sched_priv->major_frame += DEFAULT_TIMESLICE;
+            if ( entry )
+                sched_priv->major_frame += DEFAULT_TIMESLICE;
             ++sched_priv->num_schedule_entries;
         }
     }

base-commit: 5ebd4dd14118e4eb24f1d409a7ca3773f77e7e41
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 26 02:20:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 02:20:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263231.1555294 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5aKS-0003cj-8B; Thu, 26 Mar 2026 02:20:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263231.1555294; Thu, 26 Mar 2026 02:20: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 1w5aKS-0003cc-56; Thu, 26 Mar 2026 02:20:12 +0000
Received: by outflank-mailman (input) for mailman id 1263231;
 Thu, 26 Mar 2026 02:20:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Stewart.Hildebrand@amd.com>) id 1w5aKR-0003cW-4i
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 02:20:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5aKQ-007k77-Gr
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 03:20:10 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Stewart.Hildebrand@amd.com>)
 id 69c497c1-e002-0a2a0a5209dd-0a2a4501827e-10
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 03:20:09 +0100
Received: from [52.101.57.26]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Stewart.Hildebrand@amd.com>)
 id 69c497d8-6400-0a2a45010019-3465391ad97f-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 03:20:09 +0100
Received: from BL1PR13CA0228.namprd13.prod.outlook.com (2603:10b6:208:2bf::23)
 by SJ2PR12MB9190.namprd12.prod.outlook.com (2603:10b6:a03:554::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.7; Thu, 26 Mar
 2026 02:20:02 +0000
Received: from BN3PEPF0000B069.namprd21.prod.outlook.com
 (2603:10b6:208:2bf:cafe::5) by BL1PR13CA0228.outlook.office365.com
 (2603:10b6:208:2bf::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.20 via Frontend Transport; Thu,
 26 Mar 2026 02:20:02 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN3PEPF0000B069.mail.protection.outlook.com (10.167.243.68) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9769.0 via Frontend Transport; Thu, 26 Mar 2026 02:20:01 +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, 25 Mar
 2026 21:20:01 -0500
Received: from ubuntu (10.180.168.240) by satlexmb08.amd.com (10.181.42.217)
 with Microsoft SMTP Server id 15.2.2562.17 via Frontend Transport; Wed, 25
 Mar 2026 21:19:59 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ufmtFeCi9W1Ri79UCx0oC3XM9eSNWN2AHDzgAgxLgzrTEAvBan9XPlpu8jFYfFGeSKOAJBO8nzDtWT5zII4TyNqyZvVIKKx1c7W0t7mJBWePv3VFQ6eiVQv/COP0SzLIrEY63b1Xg9IEM9nmGdPoFhv4Wz9t8H4ExJDybDCzgtN/rm9taJE2UDimGPhZm58uTLbyTKV44OQSkmrNQjUkq/e91X8z+EzROXT0QAPWxaBysuOaoB+nBgmoAFvzXHuyTskiIGQGeBkkT87+Su5xsC9nD5fLiaL49/AWR4p17CwIwfhD/aSsnReWe1jjgkdnSRt/wJV33ghKbhUM1XGznQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=H2BN058tDvxtB7ESNjGhv07rMi1pu0JzTHdD26YFS84=;
 b=spXft4hfx3wvZBWQ9Td2JV5F095AwX+pTiS80RM48A/ya1lclSCaSLRHIjxcU2ULr7h9VeXijVcTyMlu6ZzMx83adVY9OvItSoiuKdEDdnlbMmiLyPOMs1tv1sGYSD2yJiyalVdHI2MMeyi9QAkX0BCjsIJIJIzgeJ/WVogE/gCrp4Nq6ofnBFG0Y4vvPjKIMXGWL1uiWqNSv05uipYsal2NrxyHBSum7oY3v6ag4RcT89RBm05QryTweGaXkbpgd1jm0jIpQ1mUvuaQhDXx2iriyUcdZHjfYRuSsUDBhkZbZQ+xw3GY2VRbLaPfbnluGUeS50Ak2UEHgf4ZacNmOw==
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=H2BN058tDvxtB7ESNjGhv07rMi1pu0JzTHdD26YFS84=;
 b=0hkX0rmOjj/OMnKf6LtfBEQxGdOt9PUby2ZfSW7uEsXl0eT5rwp4rc+7kMr6NNpOfAdm0RBaKdu7vk/Sv0hPWYPGzd+hFFwTE3MpzGoivRE8xSZz4ls+C73az7VHBhK6BRtqvJfXQHvCHW0KGVWY5iqjMTFKpkq0y0AgbJOA9ag=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] MAINTAINERS: update my email
Date: Wed, 25 Mar 2026 22:19:57 -0400
Message-ID: <20260326021958.782550-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B069:EE_|SJ2PR12MB9190:EE_
X-MS-Office365-Filtering-Correlation-Id: ed2772ef-47dd-41d0-724e-08de8ade2f5d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700016|1800799024|82310400026|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	dWyGo5GdC4M99S+9ptsdyGI4n8+gOhgT57gZDOykw4pKFgM2jMB9UxgOsepoOZDtUXXUkB5ddjsxqfZ7/7XKu54GE8VJhMlqeCW7lr5tuPp2a6SuE3d5PD9LdhwEK/p0hpjPM2vTfzQKbIi2AF3nv7zd3WzM6XBYkB09MhyoYQU3l0UHzzeaPLEReKrU9CCdPLFy9pjAsmcEkoqpZtNm3fkNK1Uejk0SgjADx7YTWEI0pblIpIsFeqOMDQ1JJIF9T35DygglgAFTZ1bgY16fJjDO3hmvfxVscMZrDr8tA/YGtH/Qrwh04gObgAGgID0+tUDK86lSDX2S+XCMBh2/A8qtLUIro/i6jRBIoVuAch6QocbaGbCGEDu8jhb0yvhb0QHiD9rajb9jYCWfN2d9TCH6nWUnpR2Cf0QluN/FjK68qp9QNCbtz/Hfz44ebGd2w/5ZP7uzxuVSptGkzGGP4O8vzF1VbHJOdF0AP13K/JRURk0qUQRBkTmtbn7N0WvvLrCfGXkdq7XUPPQX18Q3NQfGrbkiPYWSOQrcd2UR0naHEWSPU4VKhezSz6lCWLxMzC8s4+9xvjE85jHtq1ouxgB1riBmJIJ0IO7MGadqjoo2TCTMksMJR+4CETS+NMpJDU1DAHt6KLsTgJth4lhsSXpNNI5bn1U/hbd7vv2EO5OyOV77FZU4V7sZ6v+iAy1k85UeccWirD1rmjtvBag/tYtxlAwcxymqfrBKw5KfURrVlKu8z8Ij7Kax63War7hP4u56zEdHv0zjijxa8XMYYg==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700016)(1800799024)(82310400026)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	++iVMDGCoypQq82yFdeh3KKXt44R7IZRKDiAKZ4obQVlHcPYgnvCr7tMW/3VcDoHu4o+bcwH+2GgESO1lljc8qLHWtp9UAes1R9XAOBMw3sZtXfb+lcQiBee9goEdn4cugcjCtsPoIeNKt/rQ8HkeKxV0NPHYO4Km82ZEUeAb7HrvEJhiXUsbkwKULE421GquT8wFBTNauXFHtI4WOv77YDCcLFnazJb3SOjI0MDxlZ0Vwd2+PUwSoftAVvttcQ40y88Z5y2+SU1lTS2PA9pbBjFrpG1vBnA/zaXB1tQ7MdqWbyqjXDXihj7XTrspF0/TmQlCvCFTGkkVoYsZPMiUH+rsnRkux8o3JFfIF5ZqqKDTOl0kI+6H8+1ZDZRihiL86DXsVLLFzhCVueEGNXARo2a/bKKaYiNb/4/0hTHCDHtRylUew/EDFP+8XoIbr+Q
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 02:20:01.4783
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ed2772ef-47dd-41d0-724e-08de8ade2f5d
X-MS-Exchange-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:
	BN3PEPF0000B069.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9190
X-purgate-ID: tlsNG-d62444/1774491609-8F6EEDF3-A896B100/0/0
X-purgate-type: clean
X-purgate-size: 654

It's more convenient for me.

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
 MAINTAINERS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index ccc25a0e55dc..1ac61da59afd 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -248,7 +248,7 @@ F:	xen/common/argo.c
 
 ARINC653 SCHEDULER
 M:	Nathan Studer <nathan.studer@dornerworks.com>
-M:	Stewart Hildebrand <stewart@stew.dk>
+M:	Stewart Hildebrand <stewart.hildebrand@amd.com>
 S:	Supported
 L:	xen-devel@dornerworks.com
 F:	xen/common/sched/arinc653.c

base-commit: 5ebd4dd14118e4eb24f1d409a7ca3773f77e7e41
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 26 05:55:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 05:55:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263324.1555302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5dgf-0006kL-Kq; Thu, 26 Mar 2026 05:55:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263324.1555302; Thu, 26 Mar 2026 05:55:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5dgf-0006kE-I5; Thu, 26 Mar 2026 05:55:21 +0000
Received: by outflank-mailman (input) for mailman id 1263324;
 Thu, 26 Mar 2026 05:55:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 1w5dge-0006k8-5c
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 05:55:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5dgd-002hcs-FV
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 06:55:19 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 69c4ca3b-bab6-0a2a0a5309dd-0a2a4508ba40-18
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 06:55:19 +0100
Received: from [205.220.168.131] (helo=mx0a-0031df01.pphosted.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 69c4ca45-1950-0a2a45080019-cddca8833b4a-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 06:55:18 +0100
Received: from pps.filterd (m0279862.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62Q3Zxhm4015116
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 05:55:16 GMT
Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com
 [209.85.214.198])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d4w1q8btn-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 05:55:16 +0000 (GMT)
Received: by mail-pl1-f198.google.com with SMTP id
 d9443c01a7336-2aeb90532f6so7590835ad.0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Mar 2026 22:55:16 -0700 (PDT)
Received: from [10.219.57.109] ([202.46.23.19])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2b0bc87e820sm17098715ad.50.2026.03.25.22.55.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Mar 2026 22:55:14 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=qcppdkim1 header.d=qualcomm.com header.i="@qualcomm.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=google header.d=oss.qualcomm.com header.i="@oss.qualcomm.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	808xdNmKLCaAFJRD8fSiUQE9ujHk0+F2A04hZAqckLw=; b=g6USjlaGedJfM+6c
	sh043EGNYzelCOV0izT4tNV/QLb3n01n46Bcfmfqhk0dekR80UJbYOv+ECiKyqF5
	hDGBoDW4HjYW1FAnHB6HQjPL6wiU4HzOonNQwpb/m8z7iZT58NXSi3dOBPrIjoKw
	wuQ+A2qImDN45is0qhRImk0Fg9/VXYXt4bbMo7IOL2woERqueHmWAt0hrmhyhiv0
	JLF5Kd2kqXU71weN+dS35T63ejg75uq5aWodNW+gv5W1MJbCfegg49wHfqx8ROk+
	Zh+yu0VCeaDvVnApliD+U5Gk5SVWVPwHYOe3DC9JmVtMZhekVG/bxeogXSihbsCE
	J0PCCw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1774504516; x=1775109316; 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=808xdNmKLCaAFJRD8fSiUQE9ujHk0+F2A04hZAqckLw=;
        b=ZU501NKLjfVUglsy9xGKdwyyM2wtiNMo8S+k3WIr0YEdCfWu4ymoMECOCwPP+7SO2M
         ylZ2MEoezbGwx2EMZnUNZuDoAEOcgSJo1LUQ8LSIdi8SSoAz5ouacCieCHVOUmscav9u
         Tk01bSPVkxBdyxb694vz0orXMSlhcAEJhLOIZZvv7O2n7HGRprZGTKHKrrMSwtBQy1HT
         3Oawwse/Ve6eAPdn2s4HTtRqtFUv6mSZEQ3uiqzZRdb9JbrfhwDy7Xz94ADbh2QruA/x
         vwS0ncg7WxRKput+E7t4VjEJ81n26pVRmxuj6tFwz5fi4WZbYrOvaxdmmEwZjkfSka0z
         KznA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774504516; x=1775109316;
        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=808xdNmKLCaAFJRD8fSiUQE9ujHk0+F2A04hZAqckLw=;
        b=CDV/S/o8FO2TIhoOD1sg13o5U2to1ZgXpUnt9sWJPb3nlhFJW1T4bTVSS7YD8YIidV
         L1lIRowm+Mwxa8cI8a0AXFe6a5b0yYkir6+2tw7TMrBlLWrG9OY8uVveezxO7tjgQM+g
         OnbNOQ8mK2u5XzwZ/ENX0Ahfaw45ZTo96TFYiRZ48Dr8gKtHPMBNVR8Ym3gHStFC4kDV
         xPVVhyOPq2PDgW6x3bAsxj9VBm4SJ8r5sIv15J1d8JXWyUGz1IZxD72oWvbJIYr0Za4Z
         7sftcrdZCImu7B9dLsxrOMjXg9X6+8o2zxw6a5ePGYZBRBPPmkEfNkee/9NxsqwHec9x
         gOQg==
X-Forwarded-Encrypted: i=1; AJvYcCUQMVVIJ3iOWqSBkv+zZaqc7Ir01w+vsMLgJGkx4pB826KSOVX+o/98CVD5Sxqb2SyG/rQDSgd4yE0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx5s5omX0i7CSduWl5ihM25JTz5mNyEW7tH/m3FSW17HxVyRbdG
	9qBw5Xmg7o4RDTHoGD3XZpfC3Es9aSZoFHwqkT9EpPLzPRTBiDhjeZEApdmiI7Z0YEBf4yQJTEL
	cKMECEXylap/vRMDHmO+tHUsh+4pXMkPSmRGYm5Efaa6Wnc/lFUNZM6wxAoPxaw68N4KS6A==
X-Gm-Gg: ATEYQzxzgsa0/RsVi7Hg5Jmp4Pi6BMtuWsldle5J/T955jfv1OTjzfuxP0wlQrR0vAw
	bm6VZHEWt7ioC66jImSEIZSBN/iP7PRDQpJHAH40Oh+cTKoAd0VVXvasoPJ7uB4kJM/sKZe3xC7
	YfNvb/WXG4T3GTVHlKv0E18u+uoCGAE66kuaqlPSMpK+OPjeQTxv2xPTySty9dK/SJ9Xtg9C8Pe
	JLf6JCBgkVP06uHB8VA01Z9ATUh8pvK4yXQ4fzuhKSo52gmNyYMAHRgVaoazduBNUM+VLmbie9O
	3cw7ScAFL4BKKXexTjVsNRuOv7eFVv7LVq/Vch2w9i+P6L0hls9LgmKIq9+EPkeYnaQ/oDRSq1g
	Gg8zWswBrfB0+bISJVbcdeLn0mqfOw/f9JeWvn+A466nAM/1T4kXFZ0/a
X-Received: by 2002:a17:903:1b10:b0:2b0:673a:7c90 with SMTP id d9443c01a7336-2b0b0aad881mr74442855ad.28.1774504515833;
        Wed, 25 Mar 2026 22:55:15 -0700 (PDT)
X-Received: by 2002:a17:903:1b10:b0:2b0:673a:7c90 with SMTP id d9443c01a7336-2b0b0aad881mr74442365ad.28.1774504515275;
        Wed, 25 Mar 2026 22:55:15 -0700 (PDT)
Message-ID: <65f76d05-1474-46d3-aa71-4acfe86c5718@oss.qualcomm.com>
Date: Thu, 26 Mar 2026 11:23:53 +0530
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v11 0/3] of: parsing of multi #{iommu,msi}-cells in maps
To: Nipun Gupta <nipun.gupta@amd.com>,
        Nikhil Agarwal
 <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?UTF-8?Q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas
 <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
References: <20260325-parse_iommu_cells-v11-0-1fefa5c0e82c@oss.qualcomm.com>
Content-Language: en-US
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
In-Reply-To: <20260325-parse_iommu_cells-v11-0-1fefa5c0e82c@oss.qualcomm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Proofpoint-ORIG-GUID: qmodhHmfsEw0YHkAwswg9KyGXpGcuIsK
X-Authority-Analysis: v=2.4 cv=HvV72kTS c=1 sm=1 tr=0 ts=69c4ca44 cx=c_pps
 a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=j4ogTh8yFefVWWEFDRgCtg==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22
 a=VwQbUJbxAAAA:8 a=COk6AnOGAAAA:8 a=NEAV23lmAAAA:8 a=EUspDBNiAAAA:8
 a=G4NFmJWIaiRLgIwbil8A:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22
 a=TjNXssC_j7lpFel5tvFf:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI2MDA0MiBTYWx0ZWRfX+eqXZixJV8mb
 zbrg6iPWrDvp17AZZPOkCfh/u1iHeswZz4EKkkudeTO8GQq+jEP8xOv3xTsziGaSq0Y/VjIRDNm
 m/eBnm5AQUBCt7LVp+C1qKs7+IjkhZhnpuHAKUSMc5OpJFUfM6b6mPZXcMEWqb2YSW+5xS3ZACt
 y3brYnqhXe0kjKB4kj1yXYlrHbwoxvFXFYK0Vk6k0jTh/rmpNPVGavxZCjLbPJ/0ISbfXN6e313
 NvddO4n4sQ60BA8CU+tJf88WGCL2PGsXU+vfw18otpZcYU9cU64lIzD2+1Q4EbjQnOkf0Pxvjat
 PG1C9tWehkfyCbcHOrk/NUqwIKTEeuoo0A/l5KnNAforCbmGOp4TPwufXPWcq88cfD1PNhVhuhd
 U8fejyM7d3ausDhJcxdC1YLY1YIf1CRj0HjVqqxvsZIuKE9ZO3Ypa+pMeUur4xk/fB4c1zgk946
 GGLXCWmCZiUi/pcK9jQ==
X-Proofpoint-GUID: qmodhHmfsEw0YHkAwswg9KyGXpGcuIsK
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-26_01,2026-03-24_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 clxscore=1015 malwarescore=0 lowpriorityscore=0 bulkscore=0 phishscore=0
 impostorscore=0 suspectscore=0 priorityscore=1501 adultscore=0 spamscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603260042
X-purgate-ID: tlsNG-c1860d/1774504519-E9488726-5D04B4BB/0/0
X-purgate-type: clean
X-purgate-size: 6062



On 3/25/2026 4:38 PM, Vijayanand Jitta wrote:
> So far our parsing of {iommu,msi}-map properties has always blindly
> assumed that the output specifiers will always have exactly 1 cell.
> This typically does happen to be the case, but is not actually enforced
> (and the PCI msi-map binding even explicitly states support for 0 or 1
> cells) - as a result we've now ended up with dodgy DTs out in the field
> which depend on this behaviour to map a 1-cell specifier for a 2-cell
> provider, despite that being bogus per the bindings themselves.
> 
> Since there is some potential use[1] in being able to map at least
> single input IDs to multi-cell output specifiers (and properly support
> 0-cell outputs as well), add support for properly parsing and using the
> target nodes' #cells values, albeit with the unfortunate complication of
> still having to work around expectations of the old behaviour too.
> 							-- Robin.
> 
> Unlike single #{}-cell, it is complex to establish a linear relation
> between input 'id' and output specifier for multi-cell properties, thus
> it is always expected that len never going to be > 1. 
> 
> These changes have been tested on QEMU for the arm64 architecture.
> 
> Since, this would also need update in dt-schema, raised PR[2] for the
> same.
> 
> [1] https://lore.kernel.org/all/20250627-video_cb-v3-0-51e18c0ffbce@quicinc.com/
> [2] PR for iommu-map dtschema: https://github.com/devicetree-org/dt-schema/pull/184
> 
> V11:
>   - Added explicit filter_np parameter to of_map_id() and of_map_msi_id()
>     per Dmitry Baryshkov's review feedback, making the filter explicit
>     instead of overloading arg->np as both input filter and output parameter.
>   - Removed of_node_put() from inside of_map_id(), making the caller responsible
>     for reference management. Updated of_msi_xlate() to properly handle reference counting.
>   - Collected ACKed by tags, and fixed minor typos.
>   Link to v10:
>   https://lore.kernel.org/r/20260309-parse_iommu_cells-v10-0-c62fcaa5a1d8@oss.qualcomm.com
> 
> V10:
>   - Move of_map_iommu_id()/of_map_msi_id() from include/linux/of.h to
>     drivers/of/base.c as out-of-line helpers per feedback from Marc Zyngier
>     and Rob Herring.
>   - Add kernel-doc to document both helpers for discoverability and
>     usage clarity.
>   - Fix of_map_msi_id() wrapper and all its callers (cdx_msi.c,
>     irq-gic-its-msi-parent.c, drivers/of/irq.c) to correctly use the new
>     struct of_phandle_args-based API with proper of_node_put() handling
>     as per feeback from Dmitry.
>   Link to v9:
>   https://lore.kernel.org/r/20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com
> 
> V9:
>   - Updated TO/CC list based on feedback to include all relevant
>     maintainers.
>   - No functional changes to the patches themselves.
> 
>   Link to V8:
>   https://lore.kernel.org/all/20260226074245.3098486-1-vijayanand.jitta@oss.qualcomm.com/
> 
> V8:
>   - Removed mentions of of_map_args from commit message to match code.
> 
>   Link to V7:
>   https://lore.kernel.org/all/20260210101157.2145113-1-vijayanand.jitta@oss.qualcomm.com/
> 
> V7:
>   - Removed of_map_id_args structure and replaced it with
>     of_phandle_args as suggested by Dmitry.
> 
>   Link to V6:
>   https://lore.kernel.org/all/20260121055400.937856-1-vijayanand.jitta@oss.qualcomm.com/
> 
> V6:
>   - Fixed build error reported by kernel test bot.
> 
>   Link to V5:
>   https://lore.kernel.org/all/20260118181125.1436036-1-vijayanand.jitta@oss.qualcomm.com/
> 
> V5:
>   - Fixed Build Warnings.
>   - Raised PR for iommu-map dtschema: https://github.com/devicetree-org/dt-schema/pull/184
> 
>   Link to V4:
>   https://lore.kernel.org/all/20251231114257.2382820-1-vijayanand.jitta@oss.qualcomm.com/
> 
> V4:
>   - Added Reviewed-by tag.
>   - Resolved warnings reported by kernel test bot, minor code
>     reorganization.
> 
>   Link to V3:
>   https://lore.kernel.org/all/20251221213602.2413124-1-vijayanand.jitta@oss.qualcomm.com/
> 
> V3:
>   - Added Reviewed-by tag.
>   - Updated of_map_id_args struct as a wrapper to of_phandle_args and
>     added comment description as suggested by Rob Herring.
> 
>   Link to V2:
>   https://lore.kernel.org/all/20251204095530.8627-1-vijayanand.jitta@oss.qualcomm.com/
> 
> V2:
>   - Incorporated the patches from Robin that does the clean implementation.
>   - Dropped the patches the were adding multi-map support from this series
>     as suggested.
> 
> V1:
>  https://lore.kernel.org/all/cover.1762235099.git.charan.kalla@oss.qualcomm.com/
> 
> RFC:
>  https://lore.kernel.org/all/20250928171718.436440-1-charan.kalla@oss.qualcomm.com/#r
> 
> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
> ---
> 
> ---
> Charan Teja Kalla (1):
>       of: Factor arguments passed to of_map_id() into a struct
> 
> Robin Murphy (2):
>       of: Add convenience wrappers for of_map_id()
>       of: Respect #{iommu,msi}-cells in maps
> 
>  drivers/cdx/cdx_msi.c                    |   8 +-
>  drivers/iommu/of_iommu.c                 |   6 +-
>  drivers/irqchip/irq-gic-its-msi-parent.c |  11 +-
>  drivers/of/base.c                        | 213 ++++++++++++++++++++++++-------
>  drivers/of/irq.c                         |  11 +-
>  drivers/pci/controller/dwc/pci-imx6.c    |  18 ++-
>  drivers/pci/controller/pcie-apple.c      |   6 +-
>  drivers/xen/grant-dma-ops.c              |   5 +-
>  include/linux/of.h                       |  30 ++++-
>  9 files changed, 237 insertions(+), 71 deletions(-)
> ---
> base-commit: 3fa5e5702a82d259897bd7e209469bc06368bf31
> change-id: 20260301-parse_iommu_cells-1c33768aebba
> 
> Best regards,

Hi Robin,

Could this series be pulled into an immutable branch/tag, if it doesn't
make it into the v7.1 merge window ? There are client changes dependent on it,
So it would help to get them moving forward rather than waiting another cycle.

Thanks,
Vijay


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 07:37:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 07:37:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263360.1555311 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5fHU-0002zc-GI; Thu, 26 Mar 2026 07:37:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263360.1555311; Thu, 26 Mar 2026 07:37:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5fHU-0002zV-DO; Thu, 26 Mar 2026 07:37:28 +0000
Received: by outflank-mailman (input) for mailman id 1263360;
 Thu, 26 Mar 2026 07:37:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5fHS-0002z6-Mc
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 07:37:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5fHR-001e4Z-OM
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 08:37:25 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c4e234-bab6-0a2a0a5309dd-0a2a4508b7a0-20
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 08:37:25 +0100
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c4e235-1950-0a2a45080019-d1558035d8c5-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 08:37:25 +0100
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-4852e9ca034so6007715e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 00:37:25 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48722cb10fcsm12523525e9.14.2026.03.26.00.37.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 00:37:24 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774510644; x=1775115444; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MKMXQmpC0QmzLwiYZW0LPjqUduiOTLHtUtYFXU0Gk7E=;
        b=K+ywxJJSd9rDSiFvPM0/JWfUWrIbG6Ty+PhNOrsqYXAqL2FqAEWPZAoHihZEQWQCYz
         NhmpMH/mnuoDrOZ5FuQWYwIOUkcZzf+L3JZNU5M1mNEAgcLb+mQKvDfvv5n1V6YI2WO6
         KZl0zQzoz9nJ6PsnvGBH710ufJmh4s4GrjCsAJ6ST+YTDN3fFjZ9O5vQPgCeFJZ6b7iJ
         ZmUP2pceT57MFLgomOHO9QAjadGh2n22xbINZPxDVeuFxdsHAinLY+rm3zcw2Kat36aj
         9OnzW0G/lGcgnlbYsWp/NJOP0RQiP2U8RuSlls9R4b2SbHMaN+jLbT8t2AikWZHaAMsn
         IbVg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774510644; x=1775115444;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MKMXQmpC0QmzLwiYZW0LPjqUduiOTLHtUtYFXU0Gk7E=;
        b=BBywBl32zD18C0PELmFL6BxWlh8SR0jv9Mx2X3XWpDWv83BNsMzalVNeJy9H9WYjzy
         EIoXH07NLFf0aicgkVfHIGmcTT9bcC+xpVyYvsCwAH4tleQFEbhsg7NCL+oIU21P8OfD
         IwT/3ommeHdLonkADCyvNx/lE3ZumNcfaerEOb98s7lttPGZi2OvnuHxGEJF3DKtKGDa
         zLlODRMLAD8ssMcoDlVwElfVQQDTc+26qm0gRpq3iX9+OwOqfRio8LOWKNjp3ggnjQfg
         D37DAaxFzGN278nZhndnvzCM8ES+7FcmVmOVW4FCSoS7DG2T1Gtso0N4BQ1HEH2NuAEr
         8emg==
X-Forwarded-Encrypted: i=1; AJvYcCWN5tsfor8htiSe5JhIzVYdE4NnPJtb6/jYlQL/vUQARo6Pinq5WJJvu8XZS/9hF87zi/EzicAyu3k=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywj5IaKqTR2OD3HOZ13cT8G8YUG0+bH3fXLQVtPExgOh3Emd9K5
	qXMSH9XS2FQF9ArQddbyualjh5BHcIwt9OIlpsJbpGQ6fYlay40LoqOYoTqpuQnYxQ==
X-Gm-Gg: ATEYQzyuMcAQNNyuQYz0kPlwK5E05okpHeAcdVvaUuCHslfoRuq2Dk4wtBTR4Z6hm/h
	3KB4r4/CL7V1zRC+WYf1699dw+dWFQRQkw1pUQJ9VhrFAjc+fR+ErW18EfuSPwh1StHBBBQ4hXG
	XVBRmgQCAjuc8SFoaRt6JMYAUTkNqGZ094VgzLHSyLO32YJ7EY7OwjmIx3wiCAd8i5frajJsTdo
	O2SqMrQGPKh0fKbH1JnwHzALs/x7Cqz6DR18P9FwXbUxeVr/UHJ6o3Hu2N6t6dXVE3tbQKarFce
	rMLRtwpd3/L24Ysik52hP8SjjnlMVSc4jehgrMiIAs+469W4h6tiVuoBGM00wmXuUmVBXZIk/7z
	sxSe68xMSMKPORT+z1E/JuoLX5/vP7sLXR4ZEyTfJSLvdcT+X2FdcncgepAsv34YFy9UNMBrekN
	jt0MDhs3FZqQqHRuHPC+6pRQdtK8qLcnMs5U/QAPStHdZ4RwzASA2PdmYrJeu9nNWlgJ4AxYWoV
	+ni5N5d21YSFMw=
X-Received: by 2002:a05:600c:45d4:b0:485:557d:9fe with SMTP id 5b1f17b1804b1-48715fd63a9mr92139985e9.12.1774510644513;
        Thu, 26 Mar 2026 00:37:24 -0700 (PDT)
Message-ID: <4aeb729d-df1d-4e89-9350-f0ef576c4b3d@suse.com>
Date: Thu, 26 Mar 2026 08:37:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] arinc653: avoid array overrun
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>,
 Kamil Frankowicz <kamil.frankowicz@cert.pl>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <89d17a24-0a1f-4f3f-ac2f-f3701a8d78dd@suse.com>
 <7829c799-64b2-4686-8895-6ec73231c5d8@suse.com>
 <362f599f-b195-49da-8c53-1db69add203f@suse.com>
 <0fde03b5-949a-4825-87fd-a11463a3c064@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: <0fde03b5-949a-4825-87fd-a11463a3c064@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1774510645-E9689726-17474419/0/0
X-purgate-type: clean
X-purgate-size: 1930

On 25.03.2026 21:43, Stewart Hildebrand wrote:
> On 3/25/26 09:22, Jürgen Groß wrote:
>> On 25.03.26 13:55, Jan Beulich wrote:
>>> Incrementing ->sched_index between bounds check and array access may
>>> result in accessing one past the array when that is fully filled
>>> (->num_schedule_entries == ARINC653_MAX_DOMAINS_PER_SCHEDULE).
>>>
>>> Fixes: 22787f2e107c ("ARINC 653 scheduler")
>>> Reported-by: Kamil Frankowicz <kamil.frankowicz@cert.pl>
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>
>> Reviewed-by: Juergen Gross <jgross@suse.com>
> 
> Reviewed-by: Stewart Hildebrand <stewart@stew.dk>
> 
> Thanks for this.
> 
>>
>> with ...
>>
>>> ---
>>> Jürgen, provided I understood him correctly, suggests that something like
>>>
>>>      while ( now >= sched_priv->next_switch_time )
>>>      {
>>>          sched_priv->sched_index++;
>>>          ASSERT(sched_priv->sched_index < sched_priv->num_schedule_entries);
>>>          sched_priv->next_switch_time +=
>>>              sched_priv->schedule[sched_priv->sched_index].runtime;
>>>      }
>>>
>>> should also be valid to move to, due to constraints applied by
>>> arinc653_sched_set().
> 
> Not quite, because major_frame is allowed to be larger than the sum of the
> runtimes, and in that case the ASSERT would trigger during the idle period.
> 
>>> I'm hesitant to make such a change though, not
>>> really knowing the scheduler; the change here looks more obviously correct
>>> to me. Albeit the Fixes: tag may thus want dropping.
>>
>> the Fixes: tag dropped, as the constraints mentioned are IMO really enough
>> to avoid an issue.
> 
> No, the constraints aren't enough, the out-of-bounds access would occur during
> an idle period of a fully filled schedule. I suggest keeping the Fixes: tag.

Jürgen, am I okay to keep your R-b with Fixes: re-added?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 07:48:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 07:48:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263375.1555321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5fSP-0004jf-IY; Thu, 26 Mar 2026 07:48:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263375.1555321; Thu, 26 Mar 2026 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 1w5fSP-0004jY-FR; Thu, 26 Mar 2026 07:48:45 +0000
Received: by outflank-mailman (input) for mailman id 1263375;
 Thu, 26 Mar 2026 07:48:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w5fSO-0004jS-JX
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 07:48:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5fSL-00FF6F-UI
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 08:48:43 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c4e4d8-e002-0a2a0a5209dd-0a2a450cbec2-12
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 08:48:43 +0100
Received: from [209.85.208.47] (helo=mail-ed1-f47.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c4e4db-f93d-0a2a450c0019-d155d02fa5e6-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 08:48:43 +0100
Received: by mail-ed1-f47.google.com with SMTP id
 4fb4d7f45d1cf-66aa2204e9dso1265803a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 00:48:43 -0700 (PDT)
Received: from [192.168.50.2] ([45.12.25.73]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-66ad60464c1sm667659a12.12.2026.03.26.00.48.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 00:48:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774511323; x=1775116123; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to
         :cc:subject:date:message-id:reply-to;
        bh=T/IbxMKVjMXwkjFATvXrjzg7ZTfbd3+P6hiqluOVjO8=;
        b=rPi8Gs7fRFyybP7Wcaex0aMdB9a+ZRrTRSpzts2EspA8aU+hVfFGWHKO59CopOeFJm
         lQcZE+Dp5DeeWYIQDCIP9yOTNxVZauBIntUFSKNzKRZbR/UdLNThLIKIUwlVpZJU3uTJ
         YA8PqQWaQO+D8dvklI4NC14+qs9ukjh0SK+Up90EWpJpY5JQRzmemxDeh5kS73tUGDWU
         Q5p5rZw0Eym8GyAv7b0dHCAXFuT2oE92rYW+80TY/k8L0roK5eRJRGq8ZzIWIjedI1pL
         HeWtakgxJA0zkdXCWODfYtz0+YqYJOR9t2Prl/sGvLtJuT1bnDYqChS1jFbi2rUKfC0F
         Gfww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774511323; x=1775116123;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=T/IbxMKVjMXwkjFATvXrjzg7ZTfbd3+P6hiqluOVjO8=;
        b=el1ur3z+4vijv9pYbRuZwQKHcw31hIMENIHPgvsZKPT0Pt+NZzDQdWFaRmNnwGb4yt
         rPiPZQGvs81YIQrcjyo5T/QeVcOYzTGZN1BRpvPM/m9mMNvaL3F6zyrLh6/JwTsSt6VR
         NlT0qDLKG/uDotHQOpsLBdgfesOlU9GgEDQPWdGI4sfNwa4viIwCXyihsFr3rQVOOwaV
         0Q4VM6nKQFkMgxsaxVCtEQ3pB+kGbrCqYB9UgKNgslcOWiBp3KiMkNVu76HcJBABbzAZ
         rlJIKMAE64gvEijFTXcpdeGQBelGhWV7LnoiXmBIGQIiSs4JDUPiTtaDwdTe5Kxdbk4C
         Dx3g==
X-Gm-Message-State: AOJu0YyK+8RKDph/4voz2rxcgiYzScqKxeSV3jA9RcxZFQhVqUOXxqej
	PqV8Q13YXIFDu1zhhhfiolkGCbWXx0PUUjCLcTlEhQwzcxBRvFHcJ3Tq
X-Gm-Gg: ATEYQzxVhq7h32tbOT2ledF1bgKTl4RwAzI9arGNDimvZpeDpQtDFiZl7wxS2YhWIX1
	mca3heNfebofpNfiKJ8XDExwT/Zxsl/2zar/gYh/7ApVoFN0rwgOnn3wwfJsFfcnFNQ3WsXdQOR
	ab9AsOSVBLJYLY7MgkRKkfRqX+8ZLB6widsoBEpbTQe1AQyPtH/uz/q5tN0B2sbnnzjSZ6sbTAB
	9a3BOhPhEFdXfJ52lxGjdbuFUwtnAYeV67Rpq6psYD/S0LjrdqD3rGIq/NT+CTsTGBcbSadYfDW
	QrciwnM4zARESIA6EWGuTHgEe4osIWIdCV1d4qj1qPj13MKBJ4+4/G3JJMdZYt1ZpR0EOjHVAC+
	Ricn66jMadYTaCy3h8pVJ3uDRWYDTb3ZSqHS59mPbn+leHMswlOwpP4vknwQkj24nkOb8ZUhuwr
	/NOcJcW3IGV69XOzzvKVL7A+Y8Zg==
X-Received: by 2002:a05:6402:3889:b0:662:811d:60f4 with SMTP id 4fb4d7f45d1cf-66b07f2a1a8mr397268a12.14.1774511322450;
        Thu, 26 Mar 2026 00:48:42 -0700 (PDT)
Message-ID: <bb714e67-3f88-4b09-8989-a011c2ed7c86@gmail.com>
Date: Thu, 26 Mar 2026 09:46:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 02/12] xen/arm: gic-v2: Implement GIC suspend/resume
 functions
From: Mykola Kvach <xakep.amatop@gmail.com>
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>,
 Saeed Nowshadi <saeed.nowshadi@xilinx.com>,
 Mykyta Poturai <mykyta_poturai@epam.com>
References: <cover.1765472890.git.mykola_kvach@epam.com>
 <fe8b4d92a8dfd7b4c40429d10233637a339ae8e6.1765472890.git.mykola_kvach@epam.com>
 <75823cb4-c14c-4a4a-b523-e131c820a4d3@xen.org>
 <CAGeoDV_beuoKuvdXpXsKv_RaNV0fsj0pHQcmQ+iPbsK4h4W6-w@mail.gmail.com>
Content-Language: en-US
In-Reply-To: <CAGeoDV_beuoKuvdXpXsKv_RaNV0fsj0pHQcmQ+iPbsK4h4W6-w@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1774511323-6F2A9734-48DA88BC/0/0
X-purgate-type: clean
X-purgate-size: 4926



On 15/01/2026 12:00, Mykola Kvach wrote:
> Hi Julien,
> 
> Thanks for the review.
> 
> On Fri, Dec 26, 2025 at 2:29 PM Julien Grall <julien@xen.org> wrote:
>>
>> Hi Mykola,
>>
>> On 11/12/2025 18:43, Mykola Kvach wrote:
>>> diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
>>> index b23e72a3d0..0b2f7b3862 100644
>>> --- a/xen/arch/arm/gic-v2.c
>>> +++ b/xen/arch/arm/gic-v2.c
>>> @@ -1098,6 +1098,123 @@ static int gicv2_iomem_deny_access(struct domain *d)
>>>        return iomem_deny_access(d, mfn, mfn + nr);
>>>    }
>>>
>>> +#ifdef CONFIG_SYSTEM_SUSPEND
>>> +
>>> +/* This struct represent block of 32 IRQs */
>>> +struct irq_block {
>>> +    uint32_t icfgr[2]; /* 2 registers of 16 IRQs each */
>>> +    uint32_t ipriorityr[8];
>>> +    uint32_t isenabler;
>>> +    uint32_t isactiver;
>>> +    uint32_t itargetsr[8];
>>> +};
>>> +
>>> +/* GICv2 registers to be saved/restored on system suspend/resume */
>>> +struct gicv2_context {
>>> +    /* GICC context */
>>   > +    struct cpu_ctx {> +        uint32_t ctlr;
>>> +        uint32_t pmr;
>>> +        uint32_t bpr;
>>> +    } cpu;
>>> +
>>> +    /* GICD context */
>>> +    struct dist_ctx {
>>> +        uint32_t ctlr;
>>> +        struct irq_block *irqs;
>>
>> To confirm my understanding, this will also include the PPIs, SGIs for
>> the boot CPU, am I correct? If so, I would suggest to add a comment.
> 
> Yes, correct. I’ll add a comment to make it explicit that this includes
> SGIs/PPIs for the boot CPU.
> 
>>
>>> +    } dist;
>>> +};
>>> +
>>> +static struct gicv2_context gic_ctx;
>>> +
>>> +static int gicv2_suspend(void)
>>> +{
>>> +    unsigned int i, blocks = DIV_ROUND_UP(gicv2_info.nr_lines, 32);
>>> +
>>> +    /* Save GICC configuration */
>>> +    gic_ctx.cpu.ctlr = readl_gicc(GICC_CTLR);
>>> +    gic_ctx.cpu.pmr = readl_gicc(GICC_PMR);
>>> +    gic_ctx.cpu.bpr = readl_gicc(GICC_BPR);
>>> +
>>> +    /* Save GICD configuration */
>>> +    gic_ctx.dist.ctlr = readl_gicd(GICD_CTLR);
>>
>> Do we want to disable the GIC distributor and CPU interface on suspend?
> 
> I think we should quiesce the CPU interface after saving state,
> but not disable the distributor globally.
> 
> I still prefer not to disable GICD globally for safety on platforms
> where the wake request is routed from the GIC to the PMU/SCP (e.g. via
> nIRQOUT/nFIQOUT). So I’d quiesce GICC, keep GICD enabled.
> 
> Are you OK with this approach?

I have revisited the documentation and could not find a
normative PSCI requirement to disable the GIC distributor.

PSCI 1.3, section 6.8 ("Preserving the execution context"),
only says that some systems may power down the GIC
distributor as part of SYSTEM_SUSPEND or a deep
CPU_SUSPEND, in which case the relevant GIC state must be
saved and restored. So PSCI acknowledges this as a possible
platform behavior, but it does not appear to mandate it.

The stronger guidance seems to come from BSA. In Arm BSA 1.2
(DEN0094E), section 3.10, semantic E allows the GIC to be
powered off after system software has saved its state.
Table 8 shows semantic E with the GIC distributor Off, and
Table 9 states that the GIC Distributor must be Off if all
PEs are in the Off state.


Best regards,
Mykola

> 
>>
>>> +
>>> +    for ( i = 0; i < blocks; i++ )
>>> +    {
>>> +        struct irq_block *irqs = gic_ctx.dist.irqs + i;
>>> +        size_t j, off = i * sizeof(irqs->isenabler);
>>> +
>>> +        irqs->isenabler = readl_gicd(GICD_ISENABLER + off);
>>> +        irqs->isactiver = readl_gicd(GICD_ISACTIVER + off);
>>> +
>>> +        off = i * sizeof(irqs->ipriorityr);
>>> +        for ( j = 0; j < ARRAY_SIZE(irqs->ipriorityr); j++ )
>>> +        {
>>> +            irqs->ipriorityr[j] = readl_gicd(GICD_IPRIORITYR + off + j * 4);
>>> +            irqs->itargetsr[j] = readl_gicd(GICD_ITARGETSR + off + j * 4);
>>> +        }
>>> +
>>> +        off = i * sizeof(irqs->icfgr);
>>> +        for ( j = 0; j < ARRAY_SIZE(irqs->icfgr); j++ )
>>> +            irqs->icfgr[j] = readl_gicd(GICD_ICFGR + off + j * 4);
>>> +    }
>>> +
>>> +    return 0;
>>> +}
>>> +
>>> +static void gicv2_resume(void)
>>> +{
>>> +    unsigned int i, blocks = DIV_ROUND_UP(gicv2_info.nr_lines, 32);
>>> +
>>> +    gicv2_cpu_disable();
>>   > +    /* Disable distributor */> +    writel_gicd(0, GICD_CTLR);
>>   > +> +    for ( i = 0; i < blocks; i++ )
>>> +    {
>>> +        struct irq_block *irqs = gic_ctx.dist.irqs + i;
>>> +        size_t j, off = i * sizeof(irqs->isenabler);
>>> +
>>> +        writel_gicd(0xffffffffU, GICD_ICENABLER + off);
>>
>> NIT: Can we use GENMASK? This will make easier to confirm we have the
>> correct number of bits.
> 
> Sure, I'll change it to GENMASK
> 
> Best regards,
> Mykola
> 
> 
>>
>> [...]
>>
>> Cheers,
>>
>> --
>> Julien Grall
>>



From xen-devel-bounces@lists.xenproject.org Thu Mar 26 07:57:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 07:57:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263387.1555331 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5faS-0006KB-Bv; Thu, 26 Mar 2026 07:57:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263387.1555331; Thu, 26 Mar 2026 07: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 1w5faS-0006K4-7b; Thu, 26 Mar 2026 07:57:04 +0000
Received: by outflank-mailman (input) for mailman id 1263387;
 Thu, 26 Mar 2026 07:57:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5faQ-0006Jw-Sw
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 07:57:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5faQ-00Gzuo-4m
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 08:57:02 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c4e6c2-bab6-0a2a0a5309dd-0a2a450c90aa-38
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 08:57:01 +0100
Received: from [209.85.221.47] (helo=mail-wr1-f47.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c4e6cd-f93d-0a2a450c0019-d155dd2fc8d3-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 08:57:01 +0100
Received: by mail-wr1-f47.google.com with SMTP id
 ffacd0b85a97d-439b2965d4bso462037f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 00:57:01 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4872092883bsm9853965e9.27.2026.03.26.00.57.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 00:57:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774511821; x=1775116621; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HaD71KqVf3pgvjmfLSL3rF58PUZdMzLRDfqYa982xjM=;
        b=L0mHpy6hSMgZCDZ8j2t73H6PrvmHW2y5H0UVI0m13sdrosPjH288RLkkrLqvsVRQ+M
         nX1EUg4Y6HFisVBu0+9Oc3DMhMdAd29ey+nfZKparWucotDts612rLSlwcADevqen7Bl
         nxWrGzNosueiM6X6KzSVC5cgxgoTyBEJZdsqWvKXJYOqS9nSH4Xa32m/kIsnxfoU1Pw4
         ryP9e/SmdOVIM5l+dToRI+FKlXC7ItPnpN/mxrBHWb2XdLB+UMf6u0yIoZOpIvm+B7ZS
         iJIjZOQgZVHcWbOG4i19hTW/gaZE+3xADPf6klKmE4pKq2YclH854uE+HSKltF3JPEqw
         SQWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774511821; x=1775116621;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HaD71KqVf3pgvjmfLSL3rF58PUZdMzLRDfqYa982xjM=;
        b=A2811e9quaGrLWOYSq/qxruUgHBD/fvhGdqApechbqeWlGrSmeFggogUGp8Nyc81qh
         SwDI2wJT8Av0W8GExgdyTR+1yv7VTip627fiuCDT5G9GFx+TApwCnWPQ6Or1/uLJMsJm
         3bluC8KDGi0EAFqAP841/8nGoz3UkzsIY3ACx/UtzI3bK8HtoQBQrBb2w/DsfjyOa5XL
         rGkEvOi+nBSfIhWDKHwCwmX5IUOcLD7hk97y4WkdIYsPaQzzTjIeecG457AX9V1HirHB
         VKHPzG7vvb5KzsO12MnlokTlFnFUWfzTTZka2Y/9uIQX0T2ZSJjQzXryMHZaVjAeHvgI
         kwyg==
X-Forwarded-Encrypted: i=1; AJvYcCVZJeo7vIn61HQs8pmiDXfKNMofJ3CeREWZBSBjj3EbY1EiJzDEfUqcsDiIGzUkp0xkav1PTnXNz8M=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxXvpt/YujTrMH85Fx7O7ShtDUsnP6KftWN8Qs1VMkHCDeUVjV6
	iAoZvDHGRc+ZlMlRWIBF0FbW4kLZaclSxZ19DuEqFkTmGgGHy1P1e/xprZE3rINgVw==
X-Gm-Gg: ATEYQzxhvRz14EmGrXKX75j6SU80m00bGdokP0FCaUzAaHG+hT/jwwzqhkXwlrW0cYq
	wneSotHqfoORzVWfixQ7S0paE/JvAz/k/dCOWG9NpTz8ZvFDSAGfEKm5uvIi7QI8xo5QjQBXFwM
	0HJqo8ivr7iB/D0ZNUzq3+eEz+OH2Vyl/AxkaMWUzZXqVh5IZwTNht7O2Tpzxm7pyuf4p5g+ZC0
	vQ1ue4ZgZOPorp5qj4+V6y4LNnNkP1QZxR8n7Hl3Nrv01jGJ1cJ9FjRdvnGY+Qr/V78ul+oFQLR
	AgENlB533nJSKjcM2QrA7WH6VH/g8Iqilm+EFNtpd3YrdT2iTg60jalndx945SzBPp3V7Kiiz3r
	8lwjE0qR0/UaNXwXy3YDEo2XnQmI1Jvt1T+jkQu8apCmJowrrwOkGHIu5Ie/6gfKXHyNJg6NHEO
	BO63L53ZzI+DKqFv6hZKNegUshPhHVXT8aAHucLBqjPSDJV4gJvRaa8NmGBttpdSJF0DVK6fJHd
	YsOEmAApsTcjd8=
X-Received: by 2002:a05:600c:1550:b0:487:1e7:8e7 with SMTP id 5b1f17b1804b1-4871606caadmr86960795e9.33.1774511821150;
        Thu, 26 Mar 2026 00:57:01 -0700 (PDT)
Message-ID: <65d27a54-5b81-4cbc-8fd2-39cce2f6092d@suse.com>
Date: Thu, 26 Mar 2026 08:56:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] arinc653: don't assume Dom0 is the control domain
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <89d17a24-0a1f-4f3f-ac2f-f3701a8d78dd@suse.com>
 <3a491956-81a6-4c7e-acb0-14f135fc5596@suse.com>
 <552ba562-e948-475e-a235-89663b9ff648@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: <552ba562-e948-475e-a235-89663b9ff648@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1774511821-F6EAB734-0703E77E/0/0
X-purgate-type: clean
X-purgate-size: 1064

On 25.03.2026 22:32, Stewart Hildebrand wrote:
> On 3/25/26 08:54, Jan Beulich wrote:
>> --- a/xen/common/sched/arinc653.c
>> +++ b/xen/common/sched/arinc653.c
>> @@ -411,10 +411,10 @@ a653sched_alloc_udata(const struct sched
>>      spin_lock_irqsave(&sched_priv->lock, flags);
>>  
>>      /*
>> -     * Add every one of dom0's units to the schedule, as long as there are
>> -     * slots available.
>> +     * Add every one of the control domain's units to the schedule, as long as
>> +     * there are slots available.
>>       */
>> -    if ( unit->domain->domain_id == 0 )
>> +    if ( is_control_domain(unit->domain) )
> 
> Sorry, I didn't realize before that is_control_domain() includes the idle
> domain. We don't want to include the idle domain in the default schedule here.

Hmm, I didn't recall that either (yet seeing xsm_set_system_active() I now
remember having been involved). Will add the extra check, albeit it'll
matter only during boot (i.e. if ARINC is the default scheduler or when
BOOT_TIME_CPUPOOLS=y, aiui).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 07:57:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 07:57:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263390.1555339 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5fai-0006by-I5; Thu, 26 Mar 2026 07:57:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263390.1555339; Thu, 26 Mar 2026 07: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 1w5fai-0006br-Ee; Thu, 26 Mar 2026 07:57:20 +0000
Received: by outflank-mailman (input) for mailman id 1263390;
 Thu, 26 Mar 2026 07:57:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1w5fag-0006b4-MM
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 07:57:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5fag-00FObt-2K
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 08:57:18 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69c4e6ce-2eae-0a2a0a5409dd-0a2a4503e336-34
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 08:57:17 +0100
Received: from [209.85.218.42] (helo=mail-ej1-f42.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jgross@suse.com>)
 id 69c4e6dd-1947-0a2a45030019-d155da2ab05d-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 08:57:17 +0100
Received: by mail-ej1-f42.google.com with SMTP id
 a640c23a62f3a-b8f97c626aaso106583766b.2
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 00:57:17 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9b202190f8sm84911666b.13.2026.03.26.00.57.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 00:57:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774511837; x=1775116637; 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=knediM1pdulY67wcu8dDc6F/VgzsTe0KJ6nRq5vb6oI=;
        b=UD2yAPQ7k+7CcrBq8hJPZBORs5M/kbUH5vKY0kMok85+lXgbzSCaeeKAOsUBiXly4y
         g9vzKs65Y6ALZsplKj3DqTRgRIRnWtj9WxGtK0G+vMA7hryBBFg3Z2mk43mT1ZMwEZ7+
         dAg47hmUpHgVVPe3gaaSljp3q9K8V0sy12GWPAl9NV+WEbqcPUpRJad20cNmM+0zXWiS
         4vIVliT+uVFU4+XG6fKevZG+PCt2Xw45hf7m7XnZwZbQoqPEoyGaTiLVXCYit6+MNAAt
         e4kik2Ea91idKrIqjayEZlIhEx5YrU/JX6K2fIotDFzX72Sgk4NMA68+6HmOIMvT/fnO
         US2Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774511837; x=1775116637;
        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=knediM1pdulY67wcu8dDc6F/VgzsTe0KJ6nRq5vb6oI=;
        b=FGAb29jSwZFfHQ8BYctXhIylptIf1aEczzHSEX0R4jqk1OJfIpQs1g69g3Djx7/Gk9
         sngrbBycCKSmTaD/r5vXWva0T7Q/51w+wTqC8hvQM3NQ/X2KmpDwfIUYYWNV/UEqOXpl
         ZhrGHPbjQDh0XYgIXdZG9oy2wu6tPwMbBDYVbDBcCt15blYy126PTWgf9Rf8Alg2Qz0M
         hNx35AkON9Es1X/XW6E2U5ukVUgS5S3NBWzALT/YrPyBwBGw83OElCtUytwuDE/iIUYr
         qMf8dIsxr1/5ZNUh22Em3h+eEnJJ9r6J27XAddOY0IhIu7Jc6uBGd1RFfCg8DQe6eA2m
         Xn0w==
X-Forwarded-Encrypted: i=1; AJvYcCVts6k88HSNYA5w/kJeDGJyVQ2EVGKqBe+WMsCZ87fYQ0zHHO9RXuhKgOAB9seIgSgsIEM+W1iUb6s=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx32+06Rm9+2cyksRm7QTLWX5WO5BezdjgbozAOd8TUwmB49Hc/
	dZJ7jTJ7UoAl22L7BGtPVMVBXhsqDw8u0gQqQ6pXdUsNan9D9kfG1IHdcPJZqtImfN8=
X-Gm-Gg: ATEYQzzCRCRaYXTrB2lxZrC8fzviIeBW5jksAmsAxaSjtFEXGgt0PJoGEju5MLQQTki
	ubgKS+fGsEpzS/TOiZAIB71MH6+lt1XcabYSOYU/pDBYOLHHJRIhJrMevnESAd6SU+CYf47OXXT
	96+j0iElxLQZ/WK6H3PNwOlTcfWzqTpaNIOuz+xpQ33wDxaDqb40zzsKz354ZXo7q4jwKnq3TTR
	qtsgYMj2jqrM/A4bcIDUNybHVWVbf1n+gRcmmukoyq20wu3u17yHtjilHAi1OzSKMrEl8OH95Rz
	a+mkH43ywLP5ohj4YtLePKj5rXElzhgZPlL/w1lDVLHlU+YKzlMGvA3KBKP3mP/5gFhzUjSlkuM
	p4khknci1Eo9BNsZAWz4Vbl06+n1OjTQ5u6z6t4tGxuV36tZOsW0prvggOY+QamT0HXoAw7dMtS
	5CzGTMK1rIb4+vTcmEJw3rtjYUD5Uyk2xVGDF4GvKKSIB7o6DMG+r+x+aj7AqHldIG+RrPELZV8
	nlhq1j1DBHz50W2SDNnhLQgndjBAm5u5QuPvwxlBRj5lq8ZkLainQ==
X-Received: by 2002:a17:907:a01:b0:b98:86ab:f14e with SMTP id a640c23a62f3a-b9a3f18b59fmr444207466b.13.1774511837198;
        Thu, 26 Mar 2026 00:57:17 -0700 (PDT)
Message-ID: <49129231-b806-4cce-bcc6-ca5b9aa00198@suse.com>
Date: Thu, 26 Mar 2026 08:57:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] arinc653: avoid array overrun
To: Jan Beulich <jbeulich@suse.com>
Cc: Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>,
 Kamil Frankowicz <kamil.frankowicz@cert.pl>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <89d17a24-0a1f-4f3f-ac2f-f3701a8d78dd@suse.com>
 <7829c799-64b2-4686-8895-6ec73231c5d8@suse.com>
 <362f599f-b195-49da-8c53-1db69add203f@suse.com>
 <0fde03b5-949a-4825-87fd-a11463a3c064@amd.com>
 <4aeb729d-df1d-4e89-9350-f0ef576c4b3d@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: <4aeb729d-df1d-4e89-9350-f0ef576c4b3d@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------nQh1geuvobLpkH1mbQbE0naw"
X-purgate-ID: tlsNG-33051d/1774511837-EB28772C-4BF2F847/0/0
X-purgate-type: clean
X-purgate-size: 10645

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------nQh1geuvobLpkH1mbQbE0naw
Content-Type: multipart/mixed; boundary="------------v5I8IsCVuslaJyXptlpjOR2X";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>,
 Kamil Frankowicz <kamil.frankowicz@cert.pl>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Message-ID: <49129231-b806-4cce-bcc6-ca5b9aa00198@suse.com>
Subject: Re: [PATCH v2 3/3] arinc653: avoid array overrun
References: <89d17a24-0a1f-4f3f-ac2f-f3701a8d78dd@suse.com>
 <7829c799-64b2-4686-8895-6ec73231c5d8@suse.com>
 <362f599f-b195-49da-8c53-1db69add203f@suse.com>
 <0fde03b5-949a-4825-87fd-a11463a3c064@amd.com>
 <4aeb729d-df1d-4e89-9350-f0ef576c4b3d@suse.com>
In-Reply-To: <4aeb729d-df1d-4e89-9350-f0ef576c4b3d@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=

--------------v5I8IsCVuslaJyXptlpjOR2X
Content-Type: multipart/mixed; boundary="------------erBE0Pqc861bOyXqHzo1LD7k"

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

T24gMjYuMDMuMjYgMDg6MzcsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyNS4wMy4yMDI2
IDIxOjQzLCBTdGV3YXJ0IEhpbGRlYnJhbmQgd3JvdGU6DQo+PiBPbiAzLzI1LzI2IDA5OjIy
LCBKw7xyZ2VuIEdyb8OfIHdyb3RlOg0KPj4+IE9uIDI1LjAzLjI2IDEzOjU1LCBKYW4gQmV1
bGljaCB3cm90ZToNCj4+Pj4gSW5jcmVtZW50aW5nIC0+c2NoZWRfaW5kZXggYmV0d2VlbiBi
b3VuZHMgY2hlY2sgYW5kIGFycmF5IGFjY2VzcyBtYXkNCj4+Pj4gcmVzdWx0IGluIGFjY2Vz
c2luZyBvbmUgcGFzdCB0aGUgYXJyYXkgd2hlbiB0aGF0IGlzIGZ1bGx5IGZpbGxlZA0KPj4+
PiAoLT5udW1fc2NoZWR1bGVfZW50cmllcyA9PSBBUklOQzY1M19NQVhfRE9NQUlOU19QRVJf
U0NIRURVTEUpLg0KPj4+Pg0KPj4+PiBGaXhlczogMjI3ODdmMmUxMDdjICgiQVJJTkMgNjUz
IHNjaGVkdWxlciIpDQo+Pj4+IFJlcG9ydGVkLWJ5OiBLYW1pbCBGcmFua293aWN6IDxrYW1p
bC5mcmFua293aWN6QGNlcnQucGw+DQo+Pj4+IFNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNo
IDxqYmV1bGljaEBzdXNlLmNvbT4NCj4+Pg0KPj4+IFJldmlld2VkLWJ5OiBKdWVyZ2VuIEdy
b3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQo+Pg0KPj4gUmV2aWV3ZWQtYnk6IFN0ZXdhcnQgSGls
ZGVicmFuZCA8c3Rld2FydEBzdGV3LmRrPg0KPj4NCj4+IFRoYW5rcyBmb3IgdGhpcy4NCj4+
DQo+Pj4NCj4+PiB3aXRoIC4uLg0KPj4+DQo+Pj4+IC0tLQ0KPj4+PiBKw7xyZ2VuLCBwcm92
aWRlZCBJIHVuZGVyc3Rvb2QgaGltIGNvcnJlY3RseSwgc3VnZ2VzdHMgdGhhdCBzb21ldGhp
bmcgbGlrZQ0KPj4+Pg0KPj4+PiAgwqDCoMKgwqAgd2hpbGUgKCBub3cgPj0gc2NoZWRfcHJp
di0+bmV4dF9zd2l0Y2hfdGltZSApDQo+Pj4+ICDCoMKgwqDCoCB7DQo+Pj4+ICDCoMKgwqDC
oMKgwqDCoMKgIHNjaGVkX3ByaXYtPnNjaGVkX2luZGV4Kys7DQo+Pj4+ICDCoMKgwqDCoMKg
wqDCoMKgIEFTU0VSVChzY2hlZF9wcml2LT5zY2hlZF9pbmRleCA8IHNjaGVkX3ByaXYtPm51
bV9zY2hlZHVsZV9lbnRyaWVzKTsNCj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqAgc2NoZWRfcHJp
di0+bmV4dF9zd2l0Y2hfdGltZSArPQ0KPj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IHNjaGVkX3ByaXYtPnNjaGVkdWxlW3NjaGVkX3ByaXYtPnNjaGVkX2luZGV4XS5ydW50aW1l
Ow0KPj4+PiAgwqDCoMKgwqAgfQ0KPj4+Pg0KPj4+PiBzaG91bGQgYWxzbyBiZSB2YWxpZCB0
byBtb3ZlIHRvLCBkdWUgdG8gY29uc3RyYWludHMgYXBwbGllZCBieQ0KPj4+PiBhcmluYzY1
M19zY2hlZF9zZXQoKS4NCj4+DQo+PiBOb3QgcXVpdGUsIGJlY2F1c2UgbWFqb3JfZnJhbWUg
aXMgYWxsb3dlZCB0byBiZSBsYXJnZXIgdGhhbiB0aGUgc3VtIG9mIHRoZQ0KPj4gcnVudGlt
ZXMsIGFuZCBpbiB0aGF0IGNhc2UgdGhlIEFTU0VSVCB3b3VsZCB0cmlnZ2VyIGR1cmluZyB0
aGUgaWRsZSBwZXJpb2QuDQo+Pg0KPj4+PiBJJ20gaGVzaXRhbnQgdG8gbWFrZSBzdWNoIGEg
Y2hhbmdlIHRob3VnaCwgbm90DQo+Pj4+IHJlYWxseSBrbm93aW5nIHRoZSBzY2hlZHVsZXI7
IHRoZSBjaGFuZ2UgaGVyZSBsb29rcyBtb3JlIG9idmlvdXNseSBjb3JyZWN0DQo+Pj4+IHRv
IG1lLiBBbGJlaXQgdGhlIEZpeGVzOiB0YWcgbWF5IHRodXMgd2FudCBkcm9wcGluZy4NCj4+
Pg0KPj4+IHRoZSBGaXhlczogdGFnIGRyb3BwZWQsIGFzIHRoZSBjb25zdHJhaW50cyBtZW50
aW9uZWQgYXJlIElNTyByZWFsbHkgZW5vdWdoDQo+Pj4gdG8gYXZvaWQgYW4gaXNzdWUuDQo+
Pg0KPj4gTm8sIHRoZSBjb25zdHJhaW50cyBhcmVuJ3QgZW5vdWdoLCB0aGUgb3V0LW9mLWJv
dW5kcyBhY2Nlc3Mgd291bGQgb2NjdXIgZHVyaW5nDQo+PiBhbiBpZGxlIHBlcmlvZCBvZiBh
IGZ1bGx5IGZpbGxlZCBzY2hlZHVsZS4gSSBzdWdnZXN0IGtlZXBpbmcgdGhlIEZpeGVzOiB0
YWcuDQo+IA0KPiBKw7xyZ2VuLCBhbSBJIG9rYXkgdG8ga2VlcCB5b3VyIFItYiB3aXRoIEZp
eGVzOiByZS1hZGRlZD8NCg0KWWVzLCBvZiBjb3Vyc2UuDQoNCg0KSnVlcmdlbg0K
--------------erBE0Pqc861bOyXqHzo1LD7k
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-----

--------------erBE0Pqc861bOyXqHzo1LD7k--

--------------v5I8IsCVuslaJyXptlpjOR2X--

--------------nQh1geuvobLpkH1mbQbE0naw
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/Ey8FAmnE5twFAwAAAAAACgkQsN6d1ii/Ey/u
1Af8DWSngR0QCPh7Y8B1PLd3UfpwSuy6Tlvg9jG01dTlGINVk7EGHW00l5D47lwNnXbNVqk8w4Tn
FBs8iRHwqM0MDFogjM5xK1QS3kdeL/gEdGKWnqBmXYKWFwZ915IUmKHKiPzDXODyLGd2cvc8B6KM
A8H0B22Lv4CMKerTeCxU02B11nbdYZ5YE00tighN+IifLKizNAEnKjOtJtxL5FmydJ49CzF9aEFE
O3STW6MdKRtj67eSdrOICNLEYGaxFBcTZ8j7e19xcoG2ky4wn7eYYELJtPeMCKRhWv3P03/cTWx0
eK7SV85c+rO7FgrljLmQ/cO9Iu+z+OKtnzL+u/D/eQ==
=WPDK
-----END PGP SIGNATURE-----

--------------nQh1geuvobLpkH1mbQbE0naw--


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 08:02:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 08:02:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263418.1555347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5ffb-0000gs-IE; Thu, 26 Mar 2026 08:02:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263418.1555347; Thu, 26 Mar 2026 08: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 1w5ffb-0000gl-Fa; Thu, 26 Mar 2026 08:02:23 +0000
Received: by outflank-mailman (input) for mailman id 1263418;
 Thu, 26 Mar 2026 08:02:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1w5ffa-0000gf-J1
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 08:02:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5ffY-0018ia-CY
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 09:02:20 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69c4e805-5cb7-0a2a0a5109dd-0a2a45048414-42
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:02:20 +0100
Received: from [209.85.218.46] (helo=mail-ej1-f46.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jgross@suse.com>)
 id 69c4e80c-c823-0a2a45040019-d155da2eb1f2-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:02:20 +0100
Received: by mail-ej1-f46.google.com with SMTP id
 a640c23a62f3a-b886fc047d5so99524166b.3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 01:02:20 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9b203ef910sm83219766b.53.2026.03.26.01.02.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 01:02:18 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774512140; x=1775116940; 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=4glkJohfQm8/vo8DR1k+l5bskwdFwhuj3OJ1/7JxpK0=;
        b=A8xwJ25V+L5k+64Rn6FGw9Jw3RBJ+KBH2QkAbkvcX8wpfKLC5cgSvIfY6+rZZvxsNZ
         NRpDKImN8fxCnsJe5AH58lSHaRVExqv3UBcQGMH1+j3adQzhFckcWCjiCsp6AWljQS1V
         gJ1fZmMv9YM/YE1cUJX6kYjSp7xb8Cj3bNyOjEVdxq03T9UpR4MDC1PJLPBkCuf07B3u
         EoJNWQ/fOTqsk+83NbNuvHv8F1B6715GHr/E7YOcIH/qEpfGiaBE5dbztZbQRevHegAG
         TY47CFMDXJ0SB3wtvLsDoFVPsvbhdaycznCHOXL5Ahej30LSFfMtGrR6/vGFzEQDGUbq
         S3wg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774512140; x=1775116940;
        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=4glkJohfQm8/vo8DR1k+l5bskwdFwhuj3OJ1/7JxpK0=;
        b=Wy9OpRjTgcY4uANzkPgq2TYt0oPP+LuL7y676DzJc78Tka9KgznO0NpCfjv+CxJgzg
         NQads8bXmMzcaxyUsWe9enmnAJAzCWhceZl8zZoma2WGkbN+9vzFljqgFWpMmCwTenlR
         v17otO6e5eLTxY3RD4xoJjG4QYEjz3Qgwifr2IUtqCtOZN0mCvkyKGSr4Xs6KQrpNTCJ
         ByN7/wp+DGB5N1Wc20IN0P38oQ5RQ6JpTX6UQcgyYpFjv4e45WGC0woURcQGIz1SMZDZ
         KypfORLN0kV5/JsjD/tU+zKbd94WI500kdnOENIHMTUGQGDXO9yy9kpDxq2eY5StWMZZ
         78NA==
X-Forwarded-Encrypted: i=1; AJvYcCWqcMt9AapP2WXM/AiSgVucB6b2l3XfJP65+dCgdRjs+83203u/Uq/IyEJbHZbqZd/+mbBu1EazYOY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YygLZ/yXAGW1icVPRtUwacQ7dV+huQFkeBfDkQjgoeC70ZwHplr
	q02ZsaXuRD4MeKF1KNUmXQPduEif+HMRMPszJDpYhRXuQRUVN0CbDnc3IpNm7rbEMGI=
X-Gm-Gg: ATEYQzyp2nK3Nk2vvmpsv8AM2rafvofcu1nOlv9cwQBiPp39RU9Ffumby6u2oTXeLzw
	xjKrjCXNPSNgyknVpYK2HvNePfl/9Y8a7CqpzxrmIVaB2YUm4M7JZUnfUCyKHR8xu5nFfOjJvXa
	w7cyNQ3Vt0LAqGhwkycacZdf7xgQtdrxppZEpAr6IX34E1KmWqkCRSKdICgzhZXrfMgyqgkHJ0c
	hV/6IRLibhvLWZg24kO4fYzTaxEt9QViWWoxeil0A/c1PXB/CKAhxUgWZ2FZIRNgUTdeL0pRQeG
	iHXAxyNz+gIKZUVx8BPVUgI8Xj6yJi4ppUqCENW95m1KET3NzIxejXEIFpMjtwACqWnTojrydxU
	i/MWrtDTBcGk+W4xJ/IpQ9APGJMU1fO+oVnLPlE5m3UoJXXDZxar+NvDYbNwgF1wHQFng0BpDsK
	qb0WiHegr8GsG68KlrgzzFVjH55Csge8EdhP3x9kPiZBCQR/UC5+5mAUJ1NdS2jGfsuPyzxEXup
	X//6OMCkeGshaLZPuX9VoEALzJ+bW3rQ2YBeQPre6ZB5OJ5GH4OlQ==
X-Received: by 2002:a17:907:a01:b0:b98:86ab:f14e with SMTP id a640c23a62f3a-b9a3f18b59fmr445371866b.13.1774512139362;
        Thu, 26 Mar 2026 01:02:19 -0700 (PDT)
Message-ID: <e30b8019-0e13-4ce7-a2ef-182c203ee3c3@suse.com>
Date: Thu, 26 Mar 2026 09:02:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] arinc653: remove idle period in default schedule
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 xen-devel@dornerworks.com, xen-devel@lists.xenproject.org
Cc: Nathan Studer <nathan.studer@dornerworks.com>,
 Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>
References: <20260326021911.782516-1-stewart.hildebrand@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: <20260326021911.782516-1-stewart.hildebrand@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------FmKHP3RzwiBorbP95NefVf0k"
X-purgate-ID: tlsNG-ebf023/1774512140-104669D1-6A3B15DE/0/0
X-purgate-type: clean
X-purgate-size: 8286

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------FmKHP3RzwiBorbP95NefVf0k
Content-Type: multipart/mixed; boundary="------------arT9rLoqaSWqUsMmUSkTaFkx";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 xen-devel@dornerworks.com, xen-devel@lists.xenproject.org
Cc: Nathan Studer <nathan.studer@dornerworks.com>,
 Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>
Message-ID: <e30b8019-0e13-4ce7-a2ef-182c203ee3c3@suse.com>
Subject: Re: [PATCH] arinc653: remove idle period in default schedule
References: <20260326021911.782516-1-stewart.hildebrand@amd.com>
In-Reply-To: <20260326021911.782516-1-stewart.hildebrand@amd.com>
Autocrypt-Gossip: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJ3BBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AAIQkQoDSui/t3IH4WIQQ+pJkfkcoLMCa4X6CgNK6L+3cgfgn7AJ9DmMd0SMJE
 ePbc7/m22D2v04iu7ACffXTdZQhNl557tJuDXZSBxDmW/tLOwU0EWTecRBAIAIK5OMKMU5R2
 Lk2bbjgX7vyQuCFFyKf9rC/4itNwhYWFSlKzVj3WJBDsoi2KvPm7AI+XB6NIkNAkshL5C0kd
 pcNd5Xo0jRR5/WE/bT7LyrJ0OJWS/qUit5eNNvsO+SxGAk28KRa1ieVLeZi9D03NL0+HIAtZ
 tecfqwgl3Y72UpLUyt+r7LQhcI/XR5IUUaD4C/chB4Vq2QkDKO7Q8+2HJOrFIjiVli4lU+Sf
 OBp64m//Y1xys++Z4ODoKh7tkh5DxiO3QBHG7bHK0CSQsJ6XUvPVYubAuy1XfSDzSeSBl//C
 v78Fclb+gi9GWidSTG/4hsEzd1fY5XwCZG/XJJY9M/sAAwUH/09Ar9W2U1Qm+DwZeP2ii3Ou
 14Z9VlVVPhcEmR/AFykL9dw/OV2O/7cdi52+l00reUu6Nd4Dl8s4f5n8b1YFzmkVVIyhwjvU
 jxtPyUgDOt6DRa+RaDlXZZmxQyWcMv2anAgYWGVszeB8Myzsw8y7xhBEVV1S+1KloCzw4V8Z
 DSJrcsZlyMDoiTb7FyqxwQnM0f6qHxWbmOOnbzJmBqpNpFuDcz/4xNsymJylm6oXiucHQBAP
 Xb/cE1YNHpuaH4SRhIxwQilCYEznWowQphNAbJtEKOmcocY7EbSt8VjXTzmYENkIfkrHRyXQ
 dUm5AoL51XZljkCqNwrADGkTvkwsWSvCSQQYEQIACQUCWTecRAIbDAAKCRCgNK6L+3cgfuef
 AJ9wlZQNQUp0KwEf8Tl37RmcxCL4bQCcC5alCSMzUBJ5DBIcR4BY+CyQFAs=

--------------arT9rLoqaSWqUsMmUSkTaFkx
Content-Type: multipart/mixed; boundary="------------bk1vRWaWIX4iaMQlFTuwM0E4"

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

T24gMjYuMDMuMjYgMDM6MTksIFN0ZXdhcnQgSGlsZGVicmFuZCB3cm90ZToNCj4gQnkgaW5p
dGlhbGl6aW5nIG1ham9yX2ZyYW1lIGluIGE2NTNzY2hlZF9pbml0KCksIGFuIGlkbGUgcGVy
aW9kIHdhcw0KPiBpbmFkdmVydGVudGx5IGludHJvZHVjZWQgaW50byB0aGUgZGVmYXVsdCBz
Y2hlZHVsZS4gQWNjb3VudCBmb3IgdGhlDQo+IGluaXRpYWwgdmFsdWUgb2YgbWFqb3JfZnJh
bWUgd2hlbiBwb3B1bGF0aW5nIHRoZSBkZWZhdWx0IHNjaGVkdWxlLg0KPiANCj4gRml4ZXM6
IGYyOTI3ZDgzNDNhZSAoInhlbi9hcmluYzY1MzogZml4IGRlbGF5IGluIHRoZSBzdGFydCBv
ZiBtYWpvciBmcmFtZSIpDQo+IFNpZ25lZC1vZmYtYnk6IFN0ZXdhcnQgSGlsZGVicmFuZCA8
c3Rld2FydC5oaWxkZWJyYW5kQGFtZC5jb20+DQoNClJldmlld2VkLWJ5OiBKdWVyZ2VuIEdy
b3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQoNCg0KSnVlcmdlbg0K
--------------bk1vRWaWIX4iaMQlFTuwM0E4
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-----

--------------bk1vRWaWIX4iaMQlFTuwM0E4--

--------------arT9rLoqaSWqUsMmUSkTaFkx--

--------------FmKHP3RzwiBorbP95NefVf0k
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/Ey8FAmnE6AcFAwAAAAAACgkQsN6d1ii/Ey9r
Bgf/coicO7LClWpKd8Rmhdl+AyRO7KQa9CtQlJOtqJ5T5VrKNHGhZcE9QJGgbZIAh5Z93/hl4W8N
f4usGb5K20/f+RJgrcAins1u/m4CTdCxYERjKYnwVv+ksup2gz65eBmgjRg1KKDBkWRaIZnjB/q2
1gqNZXagzidgkU6Agesb7Jc9FiJTHjN4P4MMLWM20oTLEGeV2NJC6sYm12lEZFBuAQVt8yvpKWXB
MFAJXpQOyaknRECql8x8/utnXsE0zwysO3ilJ/y3BlQ85re6mOlepDDDHYrPXoIcW9RT6yDSozXW
QmsmypBwtJzI5lX7XSEFNAkQ9AbOzOU0bFxuL5TczA==
=eq1k
-----END PGP SIGNATURE-----

--------------FmKHP3RzwiBorbP95NefVf0k--


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 08:05:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 08:05:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263431.1555356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5fiW-0001EL-Tx; Thu, 26 Mar 2026 08:05:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263431.1555356; Thu, 26 Mar 2026 08: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 1w5fiW-0001EE-RM; Thu, 26 Mar 2026 08:05:24 +0000
Received: by outflank-mailman (input) for mailman id 1263431;
 Thu, 26 Mar 2026 08:05:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5fiV-0001E5-Pt
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 08:05:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5fiT-00FKMx-Jx
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 09:05:23 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c4e8c0-e002-0a2a0a5209dd-0a2a45018d70-8
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:05:23 +0100
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c4e8c2-6400-0a2a45010019-d155802facdc-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:05:23 +0100
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-486fb439299so5919385e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 01:05:23 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48722c9f0afsm24052195e9.10.2026.03.26.01.05.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 01:05:22 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774512322; x=1775117122; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iAS/gZj5m/dVC0lNPyi3bdkO2korYQCsDdW/odNuq8s=;
        b=Hrndc9JoIDgCWrT/NpR9MuqtNjak3uHlp3/DLObPRyUPvnKWxATalEPVg3z7fBcCrY
         iXh8DB9GzFQR2gpTkMyRCRF+IA3OA3L3+7rAddJvE+0bOTPsK4tz7mRv/RW7MdU4kxJd
         K9tBAiUBXONidWRsUDIAPvhjcxdPfUxfq+HjCHhfNUNXtXKEl2Edkp2k4JYCHQAhqYVj
         nECmwFX7O0pxNpyZeBo3+abab2UBj89PRAKQ8dOKUcpkuQGZA1nob8n8DP9d8D31gTz1
         lN4neYaB/q4c4CG9RNpxj63EI7HJQANJ68MCok9PpWLehY8F83pxIW08AAFhMtf9w5HY
         q/hg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774512322; x=1775117122;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iAS/gZj5m/dVC0lNPyi3bdkO2korYQCsDdW/odNuq8s=;
        b=NYCa3pwVCMj0jtDoH3FdqZxduwZTQZSP110vy1zmJV/0jdmCsS3bMawCN3LONlOhxo
         lPKOKb7eeCnrZNCYQcUL9ig1wu0gUe0hKkEBUWiTRR7tjoKr/zjTwIWvRy1P9Yeqxo2C
         ERMJucRNuVwy/VU15LPynWTpuS8ZpVqWT4IPHIfk9YDcw3SXFw6Gs1cTpyQU6FPlT/Fs
         Pg6WPTwvsmCBG1nMUgkagDycy0/1M/RaAUd17MQUarm6mGCDhyb9w/BLIechkg6NiwKQ
         Tsut8UJswUiyQ/gEO7ox1yP5aMH9yLOqEXGMqRx5L2XAO9zL6dg6WqDS0Fp30n+uEu5x
         eQbA==
X-Gm-Message-State: AOJu0YwvfDtwoz7pArqtuYffRkGrQjYghUQmRS/j4WOPYmMFGNENgI+b
	Cxxr+K5SoRdDDLiq5FGVM5UCTJxJtQaOoulTQnjL+dqxJJulBUpc7xoQj9lU1bZtPZBfm7khe+r
	2jAJ+Sw==
X-Gm-Gg: ATEYQzz4ddC0Of4GgogbsEJ3dL+shuxtULqMQwWZyrZKulVrZl69ztHO3gNnE3bTX6E
	LNYu+n+m5OHYPGu/mbYs0c22if1UyrdHi7eK/0PVEbjNDpOtyrcM8FRHHijJzOumzCJ8HPe5kyx
	D5lk5CCU26DmtJmBMexaduBs08SyxL9VOeogf0lgtfQpsTvLGdQtWKwmGZ6/qSHlnZnkR8+Fl0p
	RhRzfi7+p6qrBOeQNi6355a5kz3wesLDeXzD4ofCIU5CURDO4eJki3Ydy7pkwbj5YNcO3c4k3lr
	c5layBPxqSfmkYXriT4rKZdi2AFbpkM8wU0tHxqFGALMoKBwf1jyWtgl//BxvnkIH6R/Uf++L58
	k8EvN02MxvCLt8Rf7PuQo5xt97KQIUJ07HyM3w5h9ykLJucY0Cq8oyRfPe6gIGYtbhemencGHWM
	+aghKiLEARONxK36pVupa4LfEIZZAV3vYyu4/WK8vKOCKjWeAQa92a+8g79BXJqKW1txS6f5R9m
	lcRFxpLdHGZuGI=
X-Received: by 2002:a05:600c:5296:b0:486:ffa3:593 with SMTP id 5b1f17b1804b1-4871606730amr91463315e9.28.1774512322491;
        Thu, 26 Mar 2026 01:05:22 -0700 (PDT)
Message-ID: <ee37a19a-5978-4724-abd8-6855b425724a@suse.com>
Date: Thu, 26 Mar 2026 09:05:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/time: adjust handling of negative delta in
 stime2tsc()
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <f97bbfb5-389c-4845-84fb-e6f07ba0ade8@suse.com>
 <acQh__WRAoav6IHN@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <acQh__WRAoav6IHN@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1774512323-48A14DF3-56307CAE/0/0
X-purgate-type: clean
X-purgate-size: 1168

On 25.03.2026 18:57, Roger Pau Monné wrote:
> On Tue, Feb 10, 2026 at 11:04:59AM +0100, Jan Beulich wrote:
>> --- a/xen/arch/x86/time.c
>> +++ b/xen/arch/x86/time.c
>> @@ -1176,20 +1176,26 @@ uint64_t __init calibrate_apic_timer(voi
>>      return elapsed * CALIBRATE_FRAC;
>>  }
>>  
>> -u64 stime2tsc(s_time_t stime)
>> +uint64_t stime2tsc(s_time_t stime)
>>  {
>> -    struct cpu_time *t;
>> -    struct time_scale sys_to_tsc;
>> -    s_time_t stime_delta;
>> +    const struct cpu_time *t = &this_cpu(cpu_time);
>> +    s_time_t stime_delta = stime - t->stamp.local_stime;
>> +    int64_t delta = 0;
> 
> Why do you make delta a signed integer, the value returned by
> scale_delta() is unsigned.

I guess purely mechanically, as deltas usually want to be signed. Changed.

>> -    t = &this_cpu(cpu_time);
>> -    sys_to_tsc = scale_reciprocal(t->tsc_scale);
>> +    /*
>> +     * While for reprogram_timer() the capping at 0 isn't relevant (the returned
> 
> The capping might want mentioning in the function prototype, as maybe
> new users expect stime2tsc() to return TSC values from times in the
> past.

Can do, sure.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 08:18:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 08:18:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263442.1555366 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5fv2-0003E1-0D; Thu, 26 Mar 2026 08:18:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263442.1555366; Thu, 26 Mar 2026 08:18: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 1w5fv1-0003Du-TV; Thu, 26 Mar 2026 08:18:19 +0000
Received: by outflank-mailman (input) for mailman id 1263442;
 Thu, 26 Mar 2026 08:18:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5fv0-0003Do-47
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 08:18:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5fuz-008a4v-13
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 09:18:17 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c4ebc2-2eae-0a2a0a5409dd-0a2a4501b244-34
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:18:16 +0100
Received: from [209.85.221.51] (helo=mail-wr1-f51.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c4ebc8-6400-0a2a45010019-d155dd33bd9a-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:18:16 +0100
Received: by mail-wr1-f51.google.com with SMTP id
 ffacd0b85a97d-439cd6b0aedso369417f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 01:18:16 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b919cf069sm5960415f8f.22.2026.03.26.01.18.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 01:18:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774513096; x=1775117896; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=j9vZF5Dz0TFARND9TH4AsgYVM6zKyc2F9Uh6URbA8pE=;
        b=I/l9aVMopvQujdkYUIE51iQYsD7fRS0uocYBtGF3h7t3rHUuwCizfoPoVhfD2MYNcC
         uRHN2vyrFXRILYexSWnULmkM+cFDCoXeatrpBx6OKqalcJgclssp8QEJDQuxU97oz0M7
         nMpY+7DxDne1mpJASJE+5gzLugWnrWBnqAJr9wteUu5g6YGlbKH8OAqCHpwlYv/pfp0G
         3EO3CLIleJzInRHNInOP8SzobSJEMY2zaaOFvRC9XhpREUbFexxHs5EC5D4L/DuZ67aY
         yCn/qX8Lb2iQsJ4sp6x28OmM8YQR9re5P3HwwuavwvVMegemt/dWYVbvlGkEJiBCi7DP
         5MFA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774513096; x=1775117896;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=j9vZF5Dz0TFARND9TH4AsgYVM6zKyc2F9Uh6URbA8pE=;
        b=Y12Vt48nhhSijIWZ8r5OC/VduYPytnhh2RtETkrsPMZLvMvon7tMxUYkcGJ0EFIoPU
         b381sTJQeW7DqdBajT58ln8HQonGY0CeMt5z3cEzwSPp26AgJXaqvUqD24QoYZhwNIkj
         5TT/WF3ZwNfONo4XwCHH9vwoeiMZb8YWTYFmOhJNfbN8e0DVIFRI0ZtMaEZxCJP5qRra
         wcUKY3El8XpynPkX1ivsPr1qsZWXnMj9ZECG8Px+hlWGus8WAPgSaxxwBnHKGX5RgdkA
         Dmsnri/RSilTsNotCNS6fai+7wuyuavZnkaZ2vQIK7ugSgLgllZj6Mb3GwyK3P0/oflk
         sRJQ==
X-Forwarded-Encrypted: i=1; AJvYcCWpMkFT72Mp0YcLtVIhF8JNYkaXNZ2Yh4VskuaI0RSes4BilUeubVIBq9LSXRmQ4KSn2IHVD1Odo4k=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywm4dJqce1XMqm7EVRQoFiLKEuYiBhVkzqz3bmuvXkMF8IHBP8b
	1vco2rVNWs4KYz50iDJR23nbGtj+yG6kA7/sxsCvG3vyq2VpUJQPCXtVswftrbFnbw==
X-Gm-Gg: ATEYQzzdZMI/uaqFTy1b6m9NNaQkWa2pYj3qHjc7RuDGGZrq5JyAd35bm+B9S/MWWd4
	8PGboyhvDljJ/A1pV5Rxg0c8fU1MkGPnMj4GXsGiZgTPVjCjU9F9WHLeC5WvrfS+NW+jil5f2P9
	amBldW0HStFkfXSp4CU22cO7gEmMvfMYKhBWMMHg/eJb5MO8xsdH8qYgBHTf7QKlWjsq2fI/oKF
	7rg5yqvp8+lI1GVAG7OTnlCeBjmi0/+Nvlh60hhNl09zSduXvDFhaomFEansDQwkTlnIu10l5KJ
	7x6FDNX19Q5tBjNpXB13vJpqH1K507mX3xanIq1k+kNHNYg9nBVeVc96RrV/PcaV1uCyL+TIbfO
	BS0iK1LnAto870QXMVstcyB6J0wUAZcSFsAy5JsNdslY1RJGi+0L2I7xAiIafCDioNYflYV3Tgi
	XMEGcXFn0zI7SXozPRzhLbQTvAQ0UUk2fRwveipua59r1r2TIk46M79ST6BpkEQFSKgSIgY4kC8
	bvLWwbmXZbxCXw=
X-Received: by 2002:a05:6000:60f:b0:43b:5765:96a9 with SMTP id ffacd0b85a97d-43b889af1d0mr9698430f8f.24.1774513096247;
        Thu, 26 Mar 2026 01:18:16 -0700 (PDT)
Message-ID: <9bd94a4b-6724-4978-b00f-c3fd0664814d@suse.com>
Date: Thu, 26 Mar 2026 09:18:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xen/mm: do not assign pages to a domain until they
 are scrubbed
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: <20260325100803.6640-1-roger.pau@citrix.com>
 <20260325100803.6640-3-roger.pau@citrix.com>
 <73c705eb-95f9-456c-ba0b-c6e0f7730ef1@suse.com>
 <acQMmXyOGFe5AN2i@macbook.local> <acQTUE3Lm7-KIcRj@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <acQTUE3Lm7-KIcRj@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1774513096-8F0E1DF3-41F78754/0/0
X-purgate-type: clean
X-purgate-size: 1778

On 25.03.2026 17:54, Roger Pau Monné wrote:
> On Wed, Mar 25, 2026 at 05:26:01PM +0100, Roger Pau Monné wrote:
>> On Wed, Mar 25, 2026 at 03:56:05PM +0100, Jan Beulich wrote:
>>> On 25.03.2026 11:08, Roger Pau Monne wrote:
>>>>  * Disallow XENMEM_decrease_reservation until the domain has finished
>>>>    creation would fix the issue of pages being freed while pending scrub,
>>>>    but it's not clear there might be other usages that would be problematic,
>>>>    as get_page() on non-scrubbed pages would still return success.
>>>
>>> I agree this is of concern.
>>>
>>>> --- a/xen/common/memory.c
>>>> +++ b/xen/common/memory.c
>>>> @@ -388,6 +388,12 @@ static void populate_physmap(struct memop_args *a)
>>>>                              goto out;
>>>>                          }
>>>>                      }
>>>> +
>>>> +                    if ( assign_page(page, a->extent_order, d, memflags) )
>>>> +                    {
>>>> +                        free_domheap_pages(page, a->extent_order);
>>>
>>> The pages don't have an owner set yet, so that function will go straight
>>> to free_heap_pages(), needlessly passing "true" as last argument. Correct,
>>> but (for large pages, which the stashing is about) highly inefficient.
>>
>> My bad, I was sure I was using the same freeing function as
>> alloc_domheap_pages() on failure to assign, but I clearly wasn't.  I
>> will switch to using free_heap_pages().
> 
> Coming back to this, I can export free_heap_pages(), but then the call
> would also unconditionally have need_scrub == true, as the pages have
> been allocated without scrubbing.

But the assign_page() call is here to have the scrubbing done ahead of
it, so re-scrubbing after freeing shouldn't be necessary?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 08:21:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 08:21:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263454.1555376 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5fxv-0004mL-Go; Thu, 26 Mar 2026 08:21:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263454.1555376; Thu, 26 Mar 2026 08:21:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5fxv-0004mE-Cr; Thu, 26 Mar 2026 08:21:19 +0000
Received: by outflank-mailman (input) for mailman id 1263454;
 Thu, 26 Mar 2026 08:21:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5fxu-0004m8-9R
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 08:21:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5fxt-007gN8-LW
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 09:21:17 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c4ec77-5cb7-0a2a0a5109dd-0a2a450a85d8-12
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:21:17 +0100
Received: from [209.85.221.52] (helo=mail-wr1-f52.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c4ec7d-1772-0a2a450a0019-d155dd34a88f-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:21:17 +0100
Received: by mail-wr1-f52.google.com with SMTP id
 ffacd0b85a97d-43b949bf4easo289316f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 01:21:17 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b919df6d4sm5949774f8f.25.2026.03.26.01.21.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 01:21:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Cc:Content-Language:References:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774513277; x=1775118077; 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=6urAeXWvgk6cNlszjl/35+RojX308Y1j/QIq7vY/jLU=;
        b=PGAHk17HZfCZgsDzQ3BGAkboymZPWfEUQbRL6uBZX1o9tAtJYBUnr9Ln7MqkwQ53Iv
         9B96kgzex1/7blxpyTJ+qkqY6RjGNS1YXAShMnD6zXt4ZgCpIcpRB8RVLhC0/xPsKWe7
         DWlq1pym3RQcpMNxkPm8cXeD+YLFPrhXhqL8jTHcOENAoWRU2rRoyA0umI9c4Y36SAVY
         EtcqZTxF1mprMKYu6gUQgCazBAEZXohmVS/t5k1J5ywTQ1w8Zs3cQTu4pV7FaikibLsq
         4L3mvDCDdBEx4tuf2+vUvDV8++1V9Yg2LSGgZIo5WUumdmkR7LsrHgh2zSQPfRq44HRQ
         dgrg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774513277; x=1775118077;
        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=6urAeXWvgk6cNlszjl/35+RojX308Y1j/QIq7vY/jLU=;
        b=VKAowxlI+5XNx1M7HR0smiT9XxepArFdGh6eWEFMhh0wqx1Kj1nhHdCf2NxOGolyoj
         YYI14/PW1gEL6UN2NSl6CJhwFCsGxqz1KDumZI9+L4LetbFgTqIryW/AZ2Ni5aKURuj6
         E21kMPPO+btGkOfTO+hOyhdjzH4/dQB/ha5MBemeKPwZlrDCtnmgoxGQoSG8J/pq150v
         49zWlQttP3MnLFmIJCnVEvpVd2Ve0s4HINkNSqnl69ABQTFp9I4Y5fBy1+0odFJ4J6ms
         oTAarcTPTNN6tuhHdOuzg0Qn4tWwVPvNdftIxRGetNGUk0oIXWGGHMBMfNqRE2nmnDd0
         8Hwg==
X-Gm-Message-State: AOJu0Ywp2IBGSm2XeTr6GmJxHpP/ux6u/ldciB1GwYajhp4JsBucTP+N
	XLvnmbk45S4RLJ2ovicuLRsvEeWE1nu9o9XW6/NzXtTPZ3XbuToAZ1KyasLFC2ZHyhqXAIr/8Qs
	cI2CQXQ==
X-Gm-Gg: ATEYQzxChxfrOD4vK5lN+viTwDIXKi2w2W4D3zpiMW6hlCpIX4oKyFxXhIdpimgmrZt
	hvenPhX/OmxJTXKDGznayrBqEa2kqFUw023T3YucUSM06xXwDIiLsZkYZq0FH8ekn5e1MxcotVC
	eUUO7oxPnGvdklC5CN96gw/mHjTTi6JdZYiH+j73G9CjVzDKOvGw6nTb0PwGN/8wYDAiOVju00b
	HYoz3CZSk/hgu5mtwU5nGZmNf5wLwqAznctLmDSIX/KdjoZju8rwnKHOMKP40YvI2L50IvCVlFH
	byIop+A2Pl/MDjh3iEI9eskEme0bXzS1W/6XamMdzWGm924MfFIlR8VWqHR1rpKlgOWKyBmH7Vj
	QgetTkMgTwuGjeYsO3B2GLYfUCyEZzAKFpiXp1Whctv5cdDUPcCw1obHkIP3sjd9dgzRKNrIkcK
	viS31FOHFCM6112+iY4oFH6vY65aNsYh7ceWFzBMgfZhW3BXNIAxaT4EbCN83Wjc+2T7cWq2ae/
	yMxbJLlsW4Lul4=
X-Received: by 2002:a05:600c:792:b0:485:4f11:aabc with SMTP id 5b1f17b1804b1-48722bf80d6mr5917265e9.15.1774513276976;
        Thu, 26 Mar 2026 01:21:16 -0700 (PDT)
Message-ID: <330c25da-1f7b-4af1-b14c-1c5e732ea441@suse.com>
Date: Thu, 26 Mar 2026 09:21:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Slow (higher scheduling latency?) system after S3 - regression
 4.17 -> 4.19 ?
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
References: <aPzBO_eW8mQHM66u@mail-itl> <acQzzlXNDxNq885V@mail-itl>
Content-Language: en-US
Cc: xen-devel <xen-devel@lists.xenproject.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <acQzzlXNDxNq885V@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1774513277-53E9D900-6A42FC99/0/0
X-purgate-type: clean
X-purgate-size: 324

On 25.03.2026 20:13, Marek Marczykowski-Górecki wrote:
> In the "bad" case, I see this extra line:
> (XEN) [    6.902973] Platform timer appears to have unexpectedly wrapped 1 times.
> 
> But in an earlier run of the same build it's not there.

And in that earlier run, did the post-S3 delays also not occur?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 08:28:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 08:28:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263465.1555383 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5g4O-0005Yv-4q; Thu, 26 Mar 2026 08:28:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263465.1555383; Thu, 26 Mar 2026 08:28:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5g4O-0005Yo-1y; Thu, 26 Mar 2026 08:28:00 +0000
Received: by outflank-mailman (input) for mailman id 1263465;
 Thu, 26 Mar 2026 08:27:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5g4M-0005Yi-PC
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 08:27:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5g4M-003FZi-4c
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 09:27:58 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c4ee09-5cb7-0a2a0a5109dd-0a2a450a864e-34
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:27:58 +0100
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c4ee0d-1772-0a2a450a0019-d155802ec476-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:27:57 +0100
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-486fe2024a9so5171155e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 01:27:57 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48722d49c18sm14272485e9.14.2026.03.26.01.27.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 01:27:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Cc:Content-Language:References:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774513677; x=1775118477; 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=BGh+VegIMFtFjLOpSwyfOkMDimDxlBlonwHQUY/NTe4=;
        b=OzNR34btWqSboqFBkalD5ggHeb4T/5HKWZlKG8X/Ypr8wc8kfrKWkh+L9ecl24Han3
         axhmfF5BKs9O/oW/qdcllu1dIKOf+DYGzVnPa3FmgE6SBiRPHvnfqcBlp9FpnhrFCvil
         iMinKXfqyrDiJY2Bfw9PCSPdKTbmg16FkFfVCbFs5V9lHnEcoyxo7RCvOoQc0UM62GyC
         05Q6ERtSYDBC+UGDKv4whefWohjwzZw4XpFlM4wX08dUhuS8Jpzj2ZDRRh+9+Wlx0fex
         phNdO8+dWERljU+xzTvPci6unDaHUcOvmRMzmM/YfOo9wbxhX22Kif/84HDyjiprAnzy
         w2tQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774513677; x=1775118477;
        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=BGh+VegIMFtFjLOpSwyfOkMDimDxlBlonwHQUY/NTe4=;
        b=cOiJSpEduJWX1MwGmjDiD1Lu81JUWlV6UzAHxRS/Z5f3O8JfV01RskMoEV7LsXKKYE
         GBltpP+SWS/4/t+DgAeJvbbWOFxNWyVoHFPFGBILHv7grQMzrPoohDwQAtmy/0khiHSB
         ok+3ZduVZFh4+U9DqC6mb7uFtfsOSl75yJEU+zrurE1nbvVQ+Q51qGLibCw/bh+HZfI2
         oaQDB/duJzcnERQoi2ayVSwjzhnqpDfL/O8Os89WDkqCfrcuyQWxbSOkdsMsy4XgBcVH
         uIF+SJAujshbITGmymJqrikxUSt1Gf1oK+N1QESZuFoquDOOvmolDeBEWMSvRJvgVpP6
         towQ==
X-Gm-Message-State: AOJu0YycifaPPpPjc6yMadFb4sG4FT323CdLo/MNl+rV+Mns14XIT2TK
	AthFyBQiPPGMjzC+q1OCIAvVfeS1b6gzf3jV+TsoH5eD7gsd/3igtmN21mwSv0ykIzLzBOI1Bsg
	tYnp/gA==
X-Gm-Gg: ATEYQzzBxdwEghyoBy/kWxAWJafBYXeHKpAiYoNz2e8BaelEU8KbAFz1danpiw5MxnW
	SZjauQg045frnpcn8HWjs3P+hUt1w7dqsIk87FnGc2mk2SxtFUWECfFkbMmjH0flygJEZjKXcwC
	F3WFzQY7aAi5dld5h1zxZAOqW+hkO2T2wsP0c92aYX+h9t7tlvIJ9xmRl86+03PQT+wZK3XK2BT
	E2/fQBgTYv+01XSNch517QLhsTYgIJsMjMzqgy+6XPoAbQW4Ukz9mT1k9paPKtejYnMko0Chu7l
	41d4DaFod6wvLy78ZL6DPWZYclvoW4j2p/etYQOO1DOcDwh2O1tvcUIilcK6Sri5COf0fI7fa/h
	FkKWC5+iT0BWJePDvchawoKG20/HjxJlIqXRI0ZZOcCkaAq7rWE+4tvX83cXSMtX8L7ZOCsITa+
	sUd5fIXbUCjfUJaJ893fKIY3s1xr/e5X89p4+jc7UK4V70KR67aRR9VApR3JH44MGXaOWFv0xvx
	sHJ8L28oc4Ot3Y=
X-Received: by 2002:a05:600c:484a:b0:487:1fbf:e0a1 with SMTP id 5b1f17b1804b1-4871fbfe189mr14672745e9.4.1774513677166;
        Thu, 26 Mar 2026 01:27:57 -0700 (PDT)
Message-ID: <29775afa-e17b-4c44-a2a8-4ef4bc7cdf0f@suse.com>
Date: Thu, 26 Mar 2026 09:27:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Slow (higher scheduling latency?) system after S3 - regression
 4.17 -> 4.19 ?
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
References: <aPzBO_eW8mQHM66u@mail-itl> <acQzzlXNDxNq885V@mail-itl>
Content-Language: en-US
Cc: xen-devel <xen-devel@lists.xenproject.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <acQzzlXNDxNq885V@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1774513677-5389A900-4A15B4DD/0/0
X-purgate-type: clean
X-purgate-size: 3864

On 25.03.2026 20:13, Marek Marczykowski-Górecki wrote:
> On Sat, Oct 25, 2025 at 02:23:23PM +0200, Marek Marczykowski-Górecki wrote:
>> Hi,
>>
>> After updating from Xen 4.17 to 4.19 it appears that I have some
>> performance issues if system was suspended before. For now this is just
>> vague observation, as I don't have much data yet.
>>
>> Generally, the user observable effect is that audio playback (over
>> Qubes's PV audio thing) becomes very choppy, beyond usefulness (cannot
>> make audio calls anymore, music/video playback also becomes useless with
>> some players. For me this suggests some increased latency in scheduling
>> - maybe some timer fires too late?
>>
>> This doesn't happen always, but I'd say quite often after S3, sometimes
>> may need two or three suspend cycles to trigger the issue. But it's
>> possible it is also some other factor, like which pCPU the VM gets
>> scheduled on, maybe? But for now I didn't hit this issue before
>> performing any S3. I don't have a reliable reproducer yet.
>>
>> While I write it's related to 4.17 -> 4.19 update, there is also slight
>> possibility it's related to hardware change (CFL -> MTL). But, it's
>> unlikely, since I'd probably get much more bug reports about that (the
>> stable Qubes version uses 4.17, and we have many users on MTL).
>>
>> What would be the method to collect some useful debugging info? Some
>> debug-keys (r? a?), some cmdline options?
> 
> In the meantime (sharing some of it on Matrix already), I managed to
> build a much more isolated test. Specifically, a single PVH domU with
> VLC, preloading 1s of audio (and not playing it really, the output is
> set to a file). The specific command is:
> 
>     VLC_VERBOSE=3 vlc -I cli -A afile --no-loop --play-and-exit --run-time 1   ./melodigne-quiz-blind-test-187140.mp3
> 
> The domU rootfs (or rather: initramfs) is based on AppImage of VLC,
> there is not much more inside, and the above command is called as part
> of init script (and domU is terminated shortly after).
> 
> There is no persistent state in the test, the whole thing is network
> booted from the same base. The only things changing between runs is xen
> binary + toolstack.
> 
> In the output I'm looking for this line: main input debug: Stream buffering done (1018 ms in 2 ms)
> 
> Before S3 it takes 0-2ms, sometimes (rarely) 10ms (not sure why). Just
> after S3 it takes very similar amount of time.
> Then, I wait 30min, and run that command (or really the whole domU)
> again a few times. I consider it "good" if I get at least one result
> below 10ms. With this test in hand, I did run bisect between
> staging-4.17 and staging-4.19. And here stuff gets interesting:
> 
> At 498a4ded74b3f062c52e42568223dc5858d27731 I get the following times
> (in ms):
> 
>     30m after S3: 2, 2, 10, 10, 
>     1h after S3: 2, 16, 16, 2, 17
> 
> At 5effd810c629d9a836e46ee321ca7409dad27212:
> 
>     30m after S3: 26, 27, 26, 15
>     1h after S3: 24, 25, 37, 37, 25
> 
> This doesn't make any sense to me. There is a clear difference, yet
> 5effd810c629d9a836e46ee321ca7409dad27212 looks like a no-op change (at
> least for this Intel system).

Pretty odd indeed. I assume you double checked the effect by going back
and forth between the two commits. If the effect persists, could you make
both binaries (xen-syms or xen.efi respectively, depending on which one
you use of the system) available somewhere for inspection? There has to
be some relevant difference, e.g. by addresses shifting slightly.

Another possible further step may be to move forward from that commit,
putting a revert of 5effd810c629 on top. If the behavioral effect is due
to particular layout of the linked images, the effect should re-surface
later (likely again at a seeming innocent change).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 08:30:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 08:30:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263473.1555393 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5g6R-0006xa-Hd; Thu, 26 Mar 2026 08:30:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263473.1555393; Thu, 26 Mar 2026 08: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 1w5g6R-0006x3-Cr; Thu, 26 Mar 2026 08:30:07 +0000
Received: by outflank-mailman (input) for mailman id 1263473;
 Thu, 26 Mar 2026 08:30:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5g6Q-0006ti-CF
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 08:30:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5g6P-001pyg-KD
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 09:30:05 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c4ee8a-5cb7-0a2a0a5109dd-0a2a450ca0f2-26
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:30:05 +0100
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c4ee8d-f93d-0a2a450c0019-d1558032c105-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:30:05 +0100
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-4838c15e3cbso4978915e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 01:30:05 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48722c65dc4sm16453785e9.3.2026.03.26.01.30.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 01:30:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774513805; x=1775118605; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=18eeoiNw47Lyaq+T58+sz6bLpTPGHfde3RXt4NPykPU=;
        b=dH65iKGvOdHo/gP3e266Bzbap3UEbrg/eV1TJmY9bB7y5kVS/+Rhvqd6dpV4EoG1a0
         8dOEPeauerMBjtdKftGsnQJjhmQoCa0sJ3sIToGGoK21eYocPPQvLB5gf79jwNaAg4eM
         z8fa0fDT6D5YYWkR380paQd/czhO1lVpWcVv0SDCc0R566HXd8hcy3AAaK/Xq5oiQ8Db
         fRTM8pj3Ink592Pf19iY8U94Te6/IQuSzZt0paPBaV9tT0VbOBNB+bDmSVGwliV11P+r
         w05RN+WWmvZkTC4c/a4vcRixnG7tP48QpLf6PKNuGCS3RzLJ2ZbAOFnmL1A2boLYI/Oi
         Z65w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774513805; x=1775118605;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=18eeoiNw47Lyaq+T58+sz6bLpTPGHfde3RXt4NPykPU=;
        b=Arven9upv7NwvdB1S7PaL+vpwYwKPCOvLCxuqenY7RRezx1C6n3cbUX9nWezovnQrM
         vzspuLMpoot8ZpgJZMu9ZJ0cEVGf0JXxRwq/li4nkOmeef00hPTppEfFpuIcPQZUGZSk
         fm/mvTGGGvSMC7dqvSlLrAS+P2UH2ytIyD7f29RKzg/A+r5zHzKoUkR0xsBhcG92k3Yr
         Z0z8hoSmyf3HCFBldKvcJ5d18JsuOjViRX0BNWYZ6ZYKgqKviD0lUoqe1xpycoR7mghl
         NjGxiHeAVqt54onZgjBCKgAYQSaGddx9r2evzVhaFQ2M28Z4592rUnRKblK9lQawh+MM
         Xskw==
X-Forwarded-Encrypted: i=1; AJvYcCXyqLoxS61u1Bm5l3aY14ymg059omb6OdTwRqCF/AAiZY59r20ehVsOWKLsaLwkkjo1013IFaABOm4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywf2MiQVbiD38bdd0bJJbkmSPq/Lx25kRpo1pi/vtbpr/F/iQA4
	qSDz5iLjWJwjrEMYujaTuRcalypwwU5GzUq4uG4ZihCBLqNVG38z/zeqgWG49XXk8Q==
X-Gm-Gg: ATEYQzzzvbSZlOGGKUX4Wh4+o14RocYR2zt4mUm2lJfhhFkW3BR7bNffVELOsmQ9pSY
	eQ61dZpbcT1Z8NkNQqWVfBo2+GYiQefORY1iAUoj+BX8sTJATT4DPVqsqWHdUyCXbKjmY+95YrE
	f/JhrbEzromjkvjxjp5pnS9YtW84f2kxHbAUyL53vPjQ/4gWZUTtrNPYhUHIt87/+d5+lsgeo62
	HAxCoGJnzDmY3xtBe1V+xW33HUergH0iRZENLWLXVmQZQFXr4WBPdN7yD3Yj0LY1YQOJ9HQnHdA
	2m3kBIJUHLxj0zAQL5mXKxDrjm2tVVkRh+tr6BJCmxbF+XFZkIllYBsnc4kfCJ3PxSVk00H8vNL
	S+7cHHyoAyC2ITwQ8pQD7vFSCdpRI/6gqLvUM1K/LOc2YgIzkLjc/l+t+Wx1Qzgf3WJGUc4cOgg
	9m9pvgWawPViYmf17avB9qyt5XmACGO7VTpH3NGeFs0MbsthlmXlbzQPOHcyFIGP/YJD3h2htMc
	lQC4aVdQaCEJhs=
X-Received: by 2002:a05:600c:4b89:b0:487:219e:42d with SMTP id 5b1f17b1804b1-487219e05a4mr8768735e9.11.1774513804704;
        Thu, 26 Mar 2026 01:30:04 -0700 (PDT)
Message-ID: <aa8baa28-98f2-4360-8dcb-62eef5079115@suse.com>
Date: Thu, 26 Mar 2026 09:30:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] MAINTAINERS: update my email
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20260326021958.782550-1-stewart.hildebrand@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260326021958.782550-1-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1774513805-6F4A6734-55C2C810/0/0
X-purgate-type: clean
X-purgate-size: 277

On 26.03.2026 03:19, Stewart Hildebrand wrote:
> It's more convenient for me.
> 
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>

I was in fact wondering, seeing that you communicate from this address.

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

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 08:31:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 08:31:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263482.1555402 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5g7y-0007WZ-QG; Thu, 26 Mar 2026 08:31:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263482.1555402; Thu, 26 Mar 2026 08:31:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5g7y-0007WS-N7; Thu, 26 Mar 2026 08:31:42 +0000
Received: by outflank-mailman (input) for mailman id 1263482;
 Thu, 26 Mar 2026 08:31:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5g7x-0007WM-KP
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 08:31:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5g7x-001qW9-0Q
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 09:31:41 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c4eee9-e002-0a2a0a5209dd-0a2a4508af60-16
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:31:40 +0100
Received: from [209.85.221.41] (helo=mail-wr1-f41.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c4eeec-1950-0a2a45080019-d155dd29a890-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:31:40 +0100
Received: by mail-wr1-f41.google.com with SMTP id
 ffacd0b85a97d-43b949bf4easo297448f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 01:31:40 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48722c9506dsm14138515e9.7.2026.03.26.01.31.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 01:31:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774513900; x=1775118700; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=av+gvpjR/nCmoEj2BaymoTmNoYKonXosNcZGwmll6WQ=;
        b=EK6N2bK3oFBoQjHrQLxvtcBj+OTK6xNVt2nhYpYnlFbjoXiMbiy0oOXD+whUa/DBdh
         NhUA3VN51mwe2qageIyN+1BeZKQM0hj750OMpfeKQ2unVtLKrSlNygcvn3DPblwLU5Se
         DaarhLfOJ5Gf0uNBCpdaYNITh6IZ+Ka+j8plLk8pYuDOvPcM/cMzFTfaWAFGY2Y8iB0I
         st6ZmsZnROLahoXfHgjpuU52gI/h+gi+NPziOXVKmANLbgh4JOqw0HC5UQ9eyXEsIO2X
         rApPB9RSNPxJP3AWdpSQQR+dv5SLOPJyBa9yXbCECh1roYedvus3NOpV5SLkLv5KhIjQ
         n+Bw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774513900; x=1775118700;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=av+gvpjR/nCmoEj2BaymoTmNoYKonXosNcZGwmll6WQ=;
        b=iUUymfSVtLMQvu3p+162qxO1BPKoX0Oz9/SekNoVm6O9kZU7PfA15Jd+Y1EZE5/0BY
         gDshmeA/KP1FKNt9RYqQv7RicRHLa732itup2LxP3v68zYDM5P2OBfolVOFdjAHjGWj+
         ry4t2nkMm5/vc/DJxA+F8p6ymG27KQQ1FY9SBQNu4VLrzJHEZEMAF/tv7viyEFiUzmxH
         dWK1CATIBMUu1rmrJ2DIqZHtirA1TRYlpP8J8ZJVdtBptxH4VK8FVAxj5r2x8yXNaXvu
         QQ1BUUytoqj0O6Y7beKsu6HN7ZtTimH9SMoPKPKEnJsEmTHColVDdFcsZcwr198bClcI
         kbPw==
X-Forwarded-Encrypted: i=1; AJvYcCXuMGtSbhBdqPD4nLs6GR4Hp6dJhRapSsPs66hPffL7giU6rGFoU4RFySFPE7UGMV+79dsd9QnuzvQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwrjzPkqwOU50Bonv+fM74U6UOgjtMUKvhPIOPB18xrj26fZuwu
	9wjwUFpHeGDg03M4+JiMhWw7TIQisCraYRopSUcNNnDQ4gvcWw8fpTfwSOEVPFLSQYPex4jH0Gd
	BeDpanA==
X-Gm-Gg: ATEYQzzZ7fErA3QXXktON8iUVY0WvzNShW4/oybUKqCemhiegAjdjDzdn9CrPgL0X75
	GmXuCQ9yhf/eMoB0Twq+CxVhZRM9Od45cWxrc3dulAMLKnLrtiJjVOiX4w7+JSRMOVax9aIF3/i
	RtNaBkkW+guR6eMcqefWhJaa8OJlIbEZlQWyeIkZ9naq0SWYfhWtniYO9r9rjg5KmThe20Kt1rp
	J5PyCpZlHbDY4JrmV36Ju8+3h+4Z4cAtrOM5hejJeZIWUyibq5N2DJkUlsdC4UlOHaTxXldsHM9
	iefIz9ALahPErGtYgZkJGIS++PeKVDIp8FH734QrApy1izi4i9tI9Ddq/7A9M3PDOyI8NXskN1T
	6UAFYgs6IWGngUX5qgyr2+rVuo2uWJnZxml9wqoHePHBfIGbvSRSDMqptE5FQ1I+4C52LbxM13c
	ZHODOon3dQYsKad10xqB4hZ1XNHR4DK+53GE44V8Y/WKYFnb25arY7CEHbw2LzidAuDUh4CD8a+
	jnXlZVg3abqC6g=
X-Received: by 2002:a05:600c:4e4f:b0:485:50ac:b8cf with SMTP id 5b1f17b1804b1-48722ad3f0fmr11003765e9.0.1774513900278;
        Thu, 26 Mar 2026 01:31:40 -0700 (PDT)
Message-ID: <8091ec6d-1ac0-49b2-9159-bb06d813731c@suse.com>
Date: Thu, 26 Mar 2026 09:31:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/fred: Fix FRED name in comments
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: <20260325170208.1115832-1-andrew.cooper3@citrix.com>
 <20260325170208.1115832-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: <20260325170208.1115832-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1774513900-F26E7726-7835E3B2/0/0
X-purgate-type: clean
X-purgate-size: 230

On 25.03.2026 18:02, Andrew Cooper wrote:
> The patch introducing these constants predate the feature being renamed.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Thu Mar 26 08:35:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 08:35:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263498.1555412 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5gBF-00089D-EF; Thu, 26 Mar 2026 08:35:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263498.1555412; Thu, 26 Mar 2026 08:35:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5gBF-000896-AZ; Thu, 26 Mar 2026 08:35:05 +0000
Received: by outflank-mailman (input) for mailman id 1263498;
 Thu, 26 Mar 2026 08:35:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5gBD-000890-Qk
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 08:35:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5gBD-001Fux-6J
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 09:35:03 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c4efb3-bab6-0a2a0a5309dd-0a2a4504d9ba-22
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:35:03 +0100
Received: from [209.85.221.44] (helo=mail-wr1-f44.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c4efb6-c823-0a2a45040019-d155dd2cb566-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:35:03 +0100
Received: by mail-wr1-f44.google.com with SMTP id
 ffacd0b85a97d-43b8e8e7432so550220f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 01:35:03 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b919df903sm6708466f8f.30.2026.03.26.01.35.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 01:35:02 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774514102; x=1775118902; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JhzzZ2880Nvz6taQCKxFGYMBBImG7WeDD9RWx4ASTEA=;
        b=FrYa6n/pe/iWV17O4gqf33itLlroWQ9AusyIc1MR+hqFVkZ7EFFTAXHto2mY/8UJeL
         ++Oga0aYzSEV0np9GiMmEgxQLu4SeUCsh9JGPQdJNLMQrPfmDrCGvB6COpRTUXVk6t+I
         R9bL9hkePcDCJM4lBReN+vorW1fAEQbjybD1uH93UbPZr88wpVobapiV+OSKRBT/Wpvg
         N70K+c1OB3VnGUAK8wRhXOIqzTOVMdkryAfyjVr1WfPe9ZLSsDUGDRUKlId2YITZdmTt
         YVs426ST1Rb4NMUI4F8gNRaD6oCIN7blFexF8uqVDWkYrnRrDziHa27Ty4IcmMv27Yxi
         5W9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774514102; x=1775118902;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JhzzZ2880Nvz6taQCKxFGYMBBImG7WeDD9RWx4ASTEA=;
        b=EPCgbOuUKzKl2RkHjv3ntq2WCZOeY8IInkWEMd8I3LGIpsrGv7j/TXqzdaD78Q/lXT
         mhBjLc7w8ekrX/L+zNoBy+YEWCNMUIPGuETo6vFrLIqD4S3NXkgyCjlZTod0D4Bj7dNC
         e2dDJBsZJjUuubCmzbLnEVmakATo6MoaeT6Kz9DEi4FSqF5tJNS80Aty6e9dmvlKmJsF
         axzyRKy6pHAl8v9d78viA4dXKIGD5Fdk+D4lk5XOqQuTj//zIP7kFSJoQY0hkIvldVZ1
         WvC8GiCwrmwOe/0MlX8uYib8DdSO4Vdc3FgKRkNkxc2t2mL0w19/jf123/kVwkwkP8ul
         b26w==
X-Forwarded-Encrypted: i=1; AJvYcCUh7X407iGglWWYQtnqd6rsykk88y/guG3XZ0Rn4Hm1b5zVL5+OptiWy+0MAZhzsrcu9tgwkKcPikQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz/rsmZ/2Q+tX+ovegMaduzLWu4jQha6Ctoe57nLdCQ5wqtk88S
	iR3nhwTKwqlxOr450G7WOr4ANHJdatH2ueZa+ORy6rTnKksUz64r2euLPGbD4ibLdQ==
X-Gm-Gg: ATEYQzzs8X1bFEw/VTYMw5meiCwidqI6IWGGFdRtEi67dABx/jZzTVJ7wLJJeOWoeYl
	YEE+sj12DI994UHMSyHJBxlD2KVMcEaZ+fc24BDJnqsD5UGp8p+FOmfO8JODS18ggWdqDsMcWn5
	GQ4hz2JHtulimDKgzf5xLqGUqSgkYEUBB/rJPW8SeBl/zSEtabGtsxBxbBEy47aRwoYGQWkhoBE
	wC8Tfaba4BnjG1ASDiatKsqcA3brgPJm1jBITHNIERhcXWh7tj9hQNyFSgbQQ8hCMX3SoWhuza8
	+REgDGJz8QOTyLhlqFeosLw1fnqawWESjVMYTLhkBsR440SxUy2wriZFHA5evEO9QQb1ny8Aqgy
	bkkm2E8UdN0WchZagCAgUsiuYEnAogzLr8tXHYE7izmLlV5+o3wg/dg/t3iq6rUsc55qUGA+qZo
	3mRHZQ1bPicdbUu7NFUAgCMyHnrZ8NJeAQhAo7GmnJqvb81RzTeRLXtDBQ6ipfzw9XHaj1gGYzg
	FMfGF0USIpGFJtjsBgGw/N26A==
X-Received: by 2002:a05:6000:2892:b0:439:b59e:5e65 with SMTP id ffacd0b85a97d-43b8896cedbmr9250073f8f.6.1774514102480;
        Thu, 26 Mar 2026 01:35:02 -0700 (PDT)
Message-ID: <73fdb2fd-8ec0-43ae-8e09-77a3d095633f@suse.com>
Date: Thu, 26 Mar 2026 09:35:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xen/mm: do not assign pages to a domain until they
 are scrubbed
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: <20260325100803.6640-1-roger.pau@citrix.com>
 <20260325100803.6640-3-roger.pau@citrix.com>
 <73c705eb-95f9-456c-ba0b-c6e0f7730ef1@suse.com>
 <acQMmXyOGFe5AN2i@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <acQMmXyOGFe5AN2i@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1774514103-B249D9D1-B6431888/0/0
X-purgate-type: clean
X-purgate-size: 1574

On 25.03.2026 17:26, Roger Pau Monné wrote:
> On Wed, Mar 25, 2026 at 03:56:05PM +0100, Jan Beulich wrote:
>> On 25.03.2026 11:08, Roger Pau Monne wrote:
>>> ---
>>> I've attempted various different ways to solve this, but they all ended up
>>> being impossible.
>>>
>>>  * Prevent non-scrubbed pages from getting extra refcounts (iow: make
>>>    get_page() fail for them).  This seemed nice, but the cleanup using
>>>    put_page_alloc_ref() was impossible as non-scrubbed pages would return
>>>    failure in get_page(), and so I couldn't take the extra reference ahead
>>>    of calling put_page_alloc_ref().
>>
>> A special-case variant of get_page() could be introduced, but maybe that
>> would still be overly fragile.
> 
> It seemed too much complexity (and risk), just to deal with this
> scenario.
> 
>> When we discussed this, what I had proposed didn't require use of get_page()
>> though. assign_pages() would install two general references (plus one type
>> ref for PGT_writable) in this special case. To free, you'd call
>> put_page_alloc_ref() followed by put_page_and_type().
> 
> Doesn't that risk under flowing the page counter if there's a parallel
> call to decrease_reservation() against this MFN before?
> 
> How would the freeing done in populate_physmap() (in case of
> concurrent calls) know whether already scrubbed pages have had it's
> PGC_allocated bit dropped?

In that case put_page_alloc_ref() simply does nothing. That's why we have
this wrapper: To avoid open-coding the same check in many places.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 08:46:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 08:46:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263511.1555421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5gLc-0001bY-Ba; Thu, 26 Mar 2026 08:45:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263511.1555421; Thu, 26 Mar 2026 08:45:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5gLc-0001bR-7j; Thu, 26 Mar 2026 08:45:48 +0000
Received: by outflank-mailman (input) for mailman id 1263511;
 Thu, 26 Mar 2026 08:45:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5gLb-0001bL-03
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 08:45:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5gLa-008fyN-C7
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 09:45:46 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c4f232-e002-0a2a0a5209dd-0a2a450cd698-28
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:45:46 +0100
Received: from [209.85.221.50] (helo=mail-wr1-f50.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c4f239-f93d-0a2a450c0019-d155dd32e42a-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:45:45 +0100
Received: by mail-wr1-f50.google.com with SMTP id
 ffacd0b85a97d-439c6fc2910so407007f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 01:45:45 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b919e722dsm5824472f8f.35.2026.03.26.01.45.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 01:45:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774514745; x=1775119545; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=OK6kAUOsV5F4+1Xd/60jF2be9L/gHqBtwrdyMSriVKI=;
        b=F9uv4O07gUA+hVQN9sX2s7ndjBmYqUZazXq1/YQjX+mPJmVvq5/ILUvyLJUMmPZez/
         tDtFCAjo24qOp3rDVoxA3U4PWr2aOQkVwfu/z2Y+e9loUuhfSjXJpkYZF9XXPMojqp61
         Lq30de18z30gECOo84va+YGSg4ApXdmoJIlKkP9D/mPscwv6GBHkAAOParlmk7qms3Oc
         x4KK0GN+zKtclNBUXFGifoguXTDYuM9FnLIkoWN9ZMyPowJL5IUTg7REJwkDwR6MDaHp
         WDqsTbLB5Wgd3QrGwXP9fzT7qM+oeaMLM9ZcylPofyaWnbiJn2+lHWMMdJN1MkK7dYoX
         uTxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774514745; x=1775119545;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OK6kAUOsV5F4+1Xd/60jF2be9L/gHqBtwrdyMSriVKI=;
        b=gZzVY04lgDQqOY7E2kJ4zo7cY1d6S9cwAifVkhx3lhpcS1PWw0nc2DK8RjVoqAzVz1
         FVKLaedFuXAod/65mDPaEGvCLcrBnW4cASdx2xGZebqyDAtabqg6/ndUYwW0llPuqAYX
         uHtbJZw4Grv9unez6TUSJRtN8q4D+n2ikVPwqr6ss7nnuWd3ZYcO+9BDkurqLoswSrjr
         OzUxc1h9Ap1Ikr7ppoAR6TTzjELiVZu7r924seXCSL1zjts7udW7B2nNe3ec8BUuuILi
         ZxIXTK7HfAl3po8vUA9I3x1iXZhu7Jlbjwg1fHFIN6nAyMWNgC/m/2DvYL3AFG1wokF7
         jqLw==
X-Forwarded-Encrypted: i=1; AJvYcCWJSpmmjv2Ex4L6y4Ztjmud9MI2vyb13QQ/AY0Eg0AcKw6FoJrJISkvdPwmv+nzWphowhwhcS9kYJo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxmg+4Cry0ZroaPCoW9pPs2ew7954Xb+Od1cYTE14uR4Px7WjQ4
	Rg7Nkm0cjUFwhxd4w4HIK+ALPLRRhM0db7eTk74cJciehxLOTmvQ6dJj2qawtrQybA==
X-Gm-Gg: ATEYQzxsZEA02TIIvyqsD0GsLhNruqXpDml3zRCiSs5+vEvRNpOqoYSYkf2zcLyUz+q
	6ZFHTYQMbJhRwIhxdoXoavMIuezUr6Xx8lUZpyCSR6a1DNUlp2XOy0mn7fjzBr9RvehSQMcUICR
	a7RSCw0AMUfyX5qF09uiYzUlOLEPczw9JhtxtmUjvkCOXnGeHFq4A1Ucm8J/fJ8SZYfeAO3qGmt
	AREX3J5NFztQcvdYqP3DK/FhulaIieXbxndIPIjhuk6Ufqdduop1tq78doltrzE6IEFSpghGLjE
	9LnN7ta9MAuHCho/gS5jFYwkCjZ4fg58IeoJvLEv1SysetAtXANgJSnxnjECLS56K9ibynRu+XS
	vQhmdvQqOQwpIwwi62Lr6qOG0Y0712TYelo7xw/LyWUqw5BkdOq2NwnWGrH+WUP5NdXOY1TVLsO
	gHsmHNKAd0tXIjqsEpU82dPcY9MWMy8XvCokIXhqoK5Ry8MjkpwujATNhNhaagyrJtv9S4JDu/z
	S4llE1jMdvfZ/A=
X-Received: by 2002:a05:6000:220b:b0:43b:43ae:8c25 with SMTP id ffacd0b85a97d-43b88a44842mr10137377f8f.52.1774514744853;
        Thu, 26 Mar 2026 01:45:44 -0700 (PDT)
Message-ID: <11c0a822-afc7-4e3d-b6f5-ef8e32bd2f0f@suse.com>
Date: Thu, 26 Mar 2026 09:45:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 2/3] x86/acpi: Integrate BGRT preservation with status
 reporting
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 sarkarsoumyajyoti23@gmail.com, xen-devel@lists.xenproject.org
References: <20260324123312.11076-1-soumyajyotisarkar23@gmail.com>
 <20260324123312.11076-3-soumyajyotisarkar23@gmail.com>
 <751e1d3e-d95a-4129-8baa-450a53d15efa@suse.com> <acQADhcNzkVBm3C3@mail-itl>
 <5e121a98-fcd1-4d20-aa6c-a02af7f7eef4@suse.com> <acQF5Kd4kZzo3BN6@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: <acQF5Kd4kZzo3BN6@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1774514745-6D2B9734-953399DA/0/0
X-purgate-type: clean
X-purgate-size: 3564

On 25.03.2026 16:57, Marek Marczykowski-Górecki wrote:
> On Wed, Mar 25, 2026 at 04:44:15PM +0100, Jan Beulich wrote:
>> On 25.03.2026 16:32, Marek Marczykowski-Górecki wrote:
>>> On Wed, Mar 25, 2026 at 04:16:25PM +0100, Jan Beulich wrote:
>>>> On 24.03.2026 13:33, Soumyajyotii Ssarkar wrote:
>>>>> @@ -327,6 +328,11 @@ static int __init cf_check acpi_parse_hpet(struct acpi_table_header *table)
>>>>>  	return 0;
>>>>>  }
>>>>>
>>>>> +/*
>>>>> + * Invalidate BGRT if image is in conventional RAM (preservation failed).
>>>>> + * If preservation succeeded, image is in EfiACPIReclaimMemory, which
>>>>> + * won't match RAM_TYPE_CONVENTIONAL check, so table remains valid.
>>>>> + */
>>>>>  static int __init cf_check acpi_invalidate_bgrt(struct acpi_table_header *table)
>>>>>  {
>>>>>  	struct acpi_table_bgrt *bgrt_tbl =
>>>>> @@ -754,5 +760,7 @@ int __init acpi_boot_init(void)
>>>>>
>>>>>  	acpi_table_parse(ACPI_SIG_BGRT, acpi_invalidate_bgrt);
>>>>>
>>>>> +	efi_bgrt_status_info();
>>>>> +
>>>>>  	return 0;
>>>>>  }
>>>>
>>>> Does this really need doing from here? If you called it ...
>>>>
>>>>> --- a/xen/common/efi/boot.c
>>>>> +++ b/xen/common/efi/boot.c
>>>>> @@ -1911,6 +1911,22 @@ static bool __init cf_check rt_range_valid(unsigned long smfn, unsigned long emf
>>>>>      return true;
>>>>>  }
>>>>>
>>>>> +void __init efi_bgrt_status_info(void)
>>>>> +{
>>>>> +    if ( !efi_enabled(EFI_BOOT) )
>>>>> +        return;
>>>>> +
>>>>> +    if ( bgrt_info.preserved )
>>>>> +    {
>>>>> +        printk(XENLOG_INFO "EFI: BGRT image preserved: %lu KB\n",
>>>>> +               bgrt_info.size / 1024);
>>>>> +        printk(XENLOG_INFO "EFI: BGRT relocated from %p to %p\n",
>>>>> +               bgrt_info.old_addr, bgrt_info.new_addr);
>>>>> +    }
>>>>> +    else if ( bgrt_info.failure_reason[0] )
>>>>> +        printk(XENLOG_WARNING "EFI: BGRT preservation failed: %s\n",
>>>>> +               bgrt_info.failure_reason);
>>>>> +}
>>>>>
>>>>>  void __init efi_init_memory(void)
>>>>>  {
>>>>
>>>> ... out of this function, it could be static and no stub (misplaced in
>>>> the earlier patch) would be needed either.
>>>
>>> It was here before, and I complained about it, because it printed the
>>> invalidation reason way later than the actual invalidation.
>>
>> Sadly now I complain about this call out of acpi_boot_init(). What's wrong
>> with logging the BGRT stuff together with the memory map?
> 
> If you try to diagnose what went wrong with BGRT, that's not very
> intuitive to find - for example on my system it's 32 messages later.

Simply grep the log for BGRT?

> It's even worse if system happens to crash between those two points.

Hmm, perhaps.

> IMO it makes sense to log reason for BGRT invalidation together with
> the actual invalidation (message). I would be okay with moving it before
> the actual invalidation, but I don't think there is a place like this in
> xen/common/efi/boot.c (at a point where normal printk can be used already).

I guess what you really mean is printk() output actually going out (i.e.
not just to the ring buffer).

While still requiring the function to be extern (and there to be a stub),
how about adding the call much earlier in __start_xen, in here:

    else if ( efi_enabled(EFI_BOOT) )
        memmap_type = "EFI";

? Or alternatively anywhere between setting system_state to SYS_STATE_boot
and the call to acpi_boot_init()? Or re-using the other EFI_BOOT check that
we have in __start_xen()?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 08:52:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 08:52:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263520.1555429 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5gRd-0003QY-Tn; Thu, 26 Mar 2026 08:52:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263520.1555429; Thu, 26 Mar 2026 08:52:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5gRd-0003QR-RD; Thu, 26 Mar 2026 08:52:01 +0000
Received: by outflank-mailman (input) for mailman id 1263520;
 Thu, 26 Mar 2026 08:52:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w5gRd-0003QK-8Z
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 08:52:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5gRc-00FZYJ-DO
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 09:52:00 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c4f3ab-5cb7-0a2a0a5109dd-0a2a45049bf0-10
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:52:00 +0100
Received: from [40.93.201.24]
 (helo=CY3PR05CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c4f3ae-c823-0a2a45040019-285dc9187e5b-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:51:59 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH0PR03MB6130.namprd03.prod.outlook.com (2603:10b6:610:b9::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.21; Thu, 26 Mar
 2026 08:51:55 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.022; Thu, 26 Mar 2026
 08:51:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ce5BwS1CIkLTTSH8KzREddY57YKBwa/FixrMzxqbRnTv9p1O2l5oL8tod5ZvXBkIVfZijHlxh2WfL5MfQ/Iuq84zHKUQydyc8okUXZmJjJUpIHPxXDiR7hCQ0A8aGga9/U4GSe+bw/tqB7tXj5d+JY233XY0SQfGsPvUpRHpZpf0iFfdpFE1hTt5UHi4/QKeLmWHg7mcnAp0sZwP9Y/qGCXYVwo1lUt4uQssGYRHPzMeIRpKbKy5lGnztfAjArtI6QJeeyeDdqELYBiw80fuow0Zk0gkG3Aj9YaaynC37AcfL+xJJbKiU5ZiPo9XKBiN6bpufSiK6mvk4hBkOHN62Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=17HZ3jI+bQlD2Prw4LOAzGgmCirP7diNopYd0fvwwRk=;
 b=AHes0iZFYx4ef8NI8pA5VSfE48z7gF832bm8IA+/ppNIgH5ouuyoIubH8ZBE7oHGi7ZPbbfrWrKj/PnJQ+n8Bz/xf42dI8URglsKlz0u2VvH//bA/39fXsIn46Dz6vVAW9x8U+gybyMY7Itta3EHQkhfBPZ5as82ELnFJkuAc84M8Pr68J7Rdb330crtiQ4r2lvS44aOwearB/V7mFOFHXYRIimzbrBLeeC8FzqjURv3QZB/KdsC4wJca6hzFk+abe2wdB4yZlKm2JSGrxiEDI8ln7C2lzOY6uvHu7avATLFUViueouFxYuExnPiHo/K8pO/Pb+8f3CmOD90L/aCyA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=17HZ3jI+bQlD2Prw4LOAzGgmCirP7diNopYd0fvwwRk=;
 b=IxIo9k/1LGJtK7s6bVEEYNK1dTIW86AHT1+xfp9fJbJGOC54rYHkEloXMVYwIA9j3+OZOeBKiHhjzNWQhl/nR54NLT++dRCdwk9hFRVcPkWJtbMdlaUbiZcOlcazpsIk9GzOqm4hIGQUVQbrQx7JlAuy1Z9ECHdJ7dSOa8cLjk8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 0/3] xen/mm: fix fallout from populate_physmap() deferred scrub change
Date: Thu, 26 Mar 2026 09:51:42 +0100
Message-ID: <20260326085145.61380-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: MR1P264CA0163.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:55::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_|CH0PR03MB6130:EE_
X-MS-Office365-Filtering-Correlation-Id: 950cd055-f90d-4a40-2cea-08de8b14edb2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	HYiMdETMdl/rnlZzge+yoUfghYdFkb8rRnO/CC6d4sSdBNkQT1XIuNqX1anjl/rzp9koc5Io3MBRUFjSUbLMJc0BTWxk02VEqv2WlQVDd7mItxxJUv58PYds0vbmRP3gY/xYmkZ/zGApHTkivnVndxHtLhHXeTWltJ4BU1rX7c47i73FbdrZAwa93sWcRn7acdc4dQ+pyOCfFcbV4WvogfuABhM95tA8GLj6Wb4chKLaPREHRlRswGBBD/w1t7Mhw1OIHSKlr1UrG7BiYhjG/fXqJ9nLG4XahQg6pA8b6+1YUOcUTMghWA8cs8Ba/S3Q3fz/Un+bkOspmXkE8NUoYqXDa3XhS0y12XOVYtyI4upae5WcNClTPCmIJQCAPwiZhy0BZKHj/tqrGpZyr+AmcjHUkE4Msjzy8E+FIDVuCTlJfjDN2K/R7x/I9qbcg9uQDd+I4HBTrieyIpZOU0lxVcEAkCqhmCy1LKQcOpMdsBxlxJD7GpMEP9ULRFIJCUsGUjdp6tPwf1anT6wyglsI0SVHesxGUef+UN6QeKFTUm7AkhEmZGzQabB7q6cPzUpps6FIwFanB/rUmWkxAXChndUT79HY3Veubopv42EglBHL+AV8ym6eL5SJoY8Lh5m0EjI5lUlqyN6XiBijMtzC8NfJdMRXnkQiGoZW9KJErOamGXsLP/XV8LBN7GW5BrqNp/DliKteGetoGDRzOgFE6kI2rpLuwJF/anF0E9DMAmA=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?L0F4eFZUMFhrOXhCRkMvbnZPeE54V1ZqSEVzdGUrQTYrNVFuUlJVRXFkNVQw?=
 =?utf-8?B?VTdwU2pDQ3BoclRXSm54Sk93eDZCaEtqRG16T1g3dTBkZmozWHZUUHM0RE52?=
 =?utf-8?B?NXhYakE3NnQzWXp1dUR5QitERmdPVm14TWxNUkJiSThPYjloU1lwTWlGNVYx?=
 =?utf-8?B?ejdxWVcrOC9EWW5pRWJkVkxPSEJVUm55bTRrNEFjVUhDU096VVI1a1NyZzE4?=
 =?utf-8?B?Q3ZRdi9mYjRMbVd1ZXk1blF5Ni9NWmEyV2NKQlR4cjJGMGp2MHJtOWx0dU56?=
 =?utf-8?B?UWFrb0xJNWZiWXNUVERsL1BDSUtZdWxuZkgrU1VOWnNZSDYwWmRYU3ZzL2lQ?=
 =?utf-8?B?YXJrRDJnTlBIRjVLRmRyMnovdFY4MGZBL1lHV2FFNDc1aW04MTNjUTlYbnN1?=
 =?utf-8?B?U2kwNFFVU3VEU1VJdmU5aGRMd3RQc3JEYUlHREthYlJwK2RCMHNKdWVITVBW?=
 =?utf-8?B?SlJLUWNBeHBjbHdjbi8vd1graWpFa1IvR2MwaC9lZStLWnZrdE5OdUZHa3NC?=
 =?utf-8?B?OFNjSUhDOVhMQ0J5S1F1SWJoN1B1N253QWpETE5KWHhFYmVzRTFVNUN3QWtx?=
 =?utf-8?B?T0Z5SHZBajB5eVBlY0FOYlVvOFNXK0k4UEJqdFNwdzRtdXVLaXYreXpCYktz?=
 =?utf-8?B?Z3UzV2ZLYnBHb3BVcExtblphbHpEOW9lSFdiOS9ZenFIZEJUZ2E3VHRMTnAx?=
 =?utf-8?B?dkY0b3Z3ODVQQW4yclZuMitJWnBTWmNtaWh3NnBJWG9QR0dXcHZ2T1VsVDVo?=
 =?utf-8?B?WlI2M0FlRmxYM0pXMDJwZ1FBeHJJS09uMGNiMFkxL0YyVkdYQjA5MWxkb0Nu?=
 =?utf-8?B?SXNZWUZtcm5FTlRGWkw1ckI4S2k4Z3RVc1JSKzFzWk5ZOEZPM2ZZOWdlZEsw?=
 =?utf-8?B?bGJTcGZxV0poVjAvLzhGdXlabXYrQVc0STUyd1VRb05DVnNncVVCdG4zcXNq?=
 =?utf-8?B?Wk5mSk9CL1VlMUQrMlZ0bnk1RkwwejdVQndYSlFyYjMwWnJkTjl1SE1LUU42?=
 =?utf-8?B?SlNnamRPbWpyU0hqY1JUSjQvZkVmc2tnTVRMNktxbW9mbmJWQkw0MzR2QWk5?=
 =?utf-8?B?eVlpOENrL29kZEZublJWaExkdmNOYzB6bW12dkZjVmZLN04vNDZ3TkgrcG9h?=
 =?utf-8?B?YmJ5cDJXSWlzWFdxUS9Qc2kxVmU3emRweEZyVk12aG1Wb3ZiOGFnN1M2bjNw?=
 =?utf-8?B?K3kvZ2RjWG05UnRYdzNZQjNOajFTYUNtYzZjalNtSjVkNHZWNStreVk5aUw2?=
 =?utf-8?B?aUxZNzRuaWxRdnFVaHUvOC83UE12WXdxWG5FU3R6b3luMGY0UGJha3hKMGZn?=
 =?utf-8?B?N0tFMHVTZ3I0Y2R6cGdVMFgrVnMwbDNUZHlZVFBQYzhwWU4zdHJ2cE80SGxK?=
 =?utf-8?B?OXJqU0RKalFMaWlxUHhJQWFsN05UYzBWMngzMmxxYmFmY1BEZHVOeERPNHNK?=
 =?utf-8?B?M0hHQkpjT1k5Q3JGOFdSSE1hNG1pNm8vTC9GSnYzdzNyQitZV2Q0TitDemE0?=
 =?utf-8?B?KzExV2pZZnhSRzRaZFUzdDNTYk55dTFaVExoSnRhcVNjbGJrZkMzQ0FRMmg3?=
 =?utf-8?B?Y2x1VWFkUzU2Zkt5bWZMcDQ3NS9pNmF0U3J4Y1dTWk5LZkJRM3NwamRvVnhv?=
 =?utf-8?B?cnlRTk5PM21aRmgwWFlaQ1RTRjhaS2RqbWJhcytZbnVYbjZ5bEJIWHJ4VzJD?=
 =?utf-8?B?S3l6a1AydzVjWFdhamFhaXpKNitxaUpWVjBtSGphdDZBQzhEU3BGV3dWdG5a?=
 =?utf-8?B?SnQydGJUanRFb3B6YUN5RUlYUWVTT2lzNmd3eTdQUWliaytHdlUzcmFhRHB0?=
 =?utf-8?B?ZldqaVQxSzN3Z3YzL0VoZVd2L094ck1nN0RCQW9jSng4QzRWVVBxaGtmUVlo?=
 =?utf-8?B?MDhlVTRTZjIrbnV2eWdtS1pndEdsT3N3RlJ2dlhFQTIxYTJZRXN3bmNMV0tH?=
 =?utf-8?B?K09nOFYxcnZ4VlprdlpFM05NZ0hDNjNpbWYwYVVLQWFkNk51MDRqaGJkcE1u?=
 =?utf-8?B?elJSQjF0Tit0dWpVRGhaMTk3UkRDOHhSRFg2d2ZLWlNzSWRvVEFRY0NySE42?=
 =?utf-8?B?SXlmTUZFTjlaSFVZdERkT2dhVUlvUnR2MXdiRXB6cDk0SXZRYjI5UXRsL0dy?=
 =?utf-8?B?eFZQUWYxcEc2ZVdmdEptb1ExUVBBUVg5dWxPeUtENDdmUmM1Mnp4ajRBbCtF?=
 =?utf-8?B?a2VlY3dTckR2RjRNMVc1enhMTHg4YTREUk9Ga0JBUGFubVJOWXBmMTVWcEVq?=
 =?utf-8?B?MU5OdDRqY2IrdFB3STE5R2ExN3IwWEQ0WlUwQkkrdEpYSlZ2cWw1Z3pycndC?=
 =?utf-8?B?ZkpWRDFaV2tHb3ROdzgrNVJtN1JaWXNYZUJyNHd0cjZZNmhJb3BHUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 950cd055-f90d-4a40-2cea-08de8b14edb2
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 08:51:53.9036
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: KqFUhOSVY30BmOrifX2miAAPQpvFEkPr+pElvkJIKETKj73JyyKEWa48udSadRtKBixYv/ZesFfxLEnufA24MA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR03MB6130
X-purgate-ID: tlsNG-ebf023/1774515120-B888F9D1-65EBC410/0/0
X-purgate-type: clean
X-purgate-size: 573

Hello,

Two fixes for the populate_physmap() deferred scrubbing changes, plus an
improvement.

Thanks, Roger.

Roger Pau Monne (3):
  xen/mm: don't unconditionally clear PGC_need_scrub in
    alloc_heap_pages()
  xen/mm: do not assign pages to a domain until they are scrubbed
  xen/mm: improve freeing of partially scrubbed pages

 xen/common/memory.c     | 13 +++++++---
 xen/common/page_alloc.c | 56 +++++++++++++++++++++++++++++++----------
 xen/include/xen/mm.h    | 14 +++++++++++
 3 files changed, 67 insertions(+), 16 deletions(-)

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 26 08:52:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 08:52:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263521.1555439 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5gRf-0003dk-8D; Thu, 26 Mar 2026 08:52:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263521.1555439; Thu, 26 Mar 2026 08:52:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5gRf-0003dd-3z; Thu, 26 Mar 2026 08:52:03 +0000
Received: by outflank-mailman (input) for mailman id 1263521;
 Thu, 26 Mar 2026 08:52:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w5gRd-0003QQ-Vb
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 08:52:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5gRd-00FZYJ-Bb
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 09:52:01 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c4f3ab-5cb7-0a2a0a5109dd-0a2a45049bf0-14
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:52:01 +0100
Received: from [40.93.201.24]
 (helo=CY3PR05CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c4f3ae-c823-0a2a45040019-285dc9187e5b-4
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:52:00 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH0PR03MB6130.namprd03.prod.outlook.com (2603:10b6:610:b9::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.21; Thu, 26 Mar
 2026 08:51:58 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.022; Thu, 26 Mar 2026
 08:51:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ixNEF9S7/WD2t0p0E7Z2MvBrV7GdDsKKRz8FkckyZGJP4qRjLaoP1eYWKjC1QSaxntUQKxCtY6EzlxLh06jV8VCInL6b4tXOqeQ1he75eqXTVxFzjJ2wHOEudzHHk3KT3C5PG3Q3wUWV7y8Xux0jmqetK5wqAZiuog8mapRWJh2IE/LEXwf1VjN5gFxSCyBjJ7di83AgdMbOmCI++j2XDETMZLjCpfIKTmSZoAaTMFySnAHJ7+UMhWOI+lfQZnLv+5aZsqQOuVqCt63sfHRkTghrsph3yumOb1iAwf9WRo3s685W8SHU1DDLAtGwx2oUGYf/WfQefZitVJs1brV/pQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kZ1xpzEDrW0cINW1Khcas9uTksBFZTXi7/cO4ecCji4=;
 b=eNcuihLyHMR5QnKVmbBTmAEA9LPuhmFCy1aMHWrU2U2ZlCkGtlNoLp3vLvV9YvLfBsHVfWflSQ+VvZHhivnUvJWw/tfJaATee3pE5AaDwErjXWizeKVPAuTx9dUC9TwBcGP9hPzlHFI/+Fvto3e8TdBNigTPGvzrRG90sA90Bigpp6+hqt2yQxMAZD2Hu9JlX2uVJVGaW8M5VV/RqXr7hlUOxKAE2Nb3YAPJ9WeXzp8lEYH+X1GHv8pIQHx3CTDscaCH6tNOCn1sVSJOG896DzF91j/Jl0xPQNqzGfZfzzN8QISg7bh3+k02ZOdAC1iXoQsEMDFLGSrprm8+l6Bttg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kZ1xpzEDrW0cINW1Khcas9uTksBFZTXi7/cO4ecCji4=;
 b=G/e2I45xT77TvltnP5wP9pgjYa1e1EIpAItskEtqV6JJKwDR5UUwzNHCQeb4/Y/ZmWpOXJb255FVodNa+Q0NRB23NUGnwWN5OvZb31uZGWIebdZoWu49K8H2MfZRv6EknAUuXMWr/X1o1dsKyU+o0PZ531xgZudeO48EQTf9Wjc=
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>,
	Ayden Bottos <aydenbottos12@gmail.com>
Subject: [PATCH v2 1/3] xen/mm: don't unconditionally clear PGC_need_scrub in alloc_heap_pages()
Date: Thu, 26 Mar 2026 09:51:43 +0100
Message-ID: <20260326085145.61380-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260326085145.61380-1-roger.pau@citrix.com>
References: <20260326085145.61380-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR1P264CA0016.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2e::21) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH0PR03MB6130:EE_
X-MS-Office365-Filtering-Correlation-Id: 2c3f3dd9-fd7e-429c-f791-08de8b14f01b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	k8chdTFuHChl3+OOkx+z92ASZPXRafM8TWB9CztnM9KfInOSXYqUrBa9H5XuZCfeGQklStr+xrqQ2sOkaQN/yYbZ9MSSZiXjseuzU3GwnZMaQb1SfhFZj9YaiH98oTqHM+u1oSmPjjbZs8k6RGfYDZ5qVfs8D5ow4Ormp5iqDBNchAzX1As5N+BnbtuMQfDFFSUJIkYqplA4cda8izKR0TJv1zkHxpP1LQNRciKdtJscV5TS0YaEwM4T+FP8AIGYnXz3lbyCqGRx0gXA6AHQGgljrFe8eyfNhy37GdFWzaOJp4xCEgrnGi38z+AA5LIUmSoBx9iI7nnJAbwj2eJyCvGlfF84UwxR//cM3Yzf8q2RULH7rNFKoq2pX8h68oIiz6Z3Y/b+bbIFF4wNG/Jpd1KeG0eQTb9ky2IjNUsc3FDKKYxFfmUVMtSSqdfm+Kc7tvLHQjjKqd2S3ErPHh227Fqm85LhUjf4hDHDdAswO0ggZn+7mX7ad2RgdFBbWoGTS0iOW48gW8wPE1Dv5fDWMnepE9UcB9kgkFb7nOb0xEQSy6FLHNbIKPohlFLhkvLDdjdBuSJtDx2RJgvJ/phvYxrnUkZFY0O3R6byEkDX/9eZtcvc4a58YWbl71ju6AQsz74CpBiDzvfvKxNJymN6UdomdbP4mwL297OIXLDk/YOJB9uHG+ppepVAz3nu+k0gCvNCiDPKWihSWIzMrsUXCz4akBTwUCBjFBhJ2PUzzco=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VjliVEg2c2JNNUswa1dDa3ZXdFVaYjh2Qyszc2NERmtEOHFSaWV0Z0kyS09X?=
 =?utf-8?B?cXpHQnR5SlJRUTArSnpiZ2VqUmdMcVpEbGdzY0NxalhiUlRBRTNwS0VkTUR6?=
 =?utf-8?B?Umo4UExvTmVwRm1nOElaRmdvVWJZV0FhaUt5NFliTEdRVm9QaUp6aVhzM2pp?=
 =?utf-8?B?UlcxSzJqcUU5eVh0RHNJOVU2UFVtSXJEUFNzQ2pJcGRJbFZLOWxoZzVMTmFx?=
 =?utf-8?B?b2FxZFlkY3VwNnRCcEo0THNGMFg0M1ZKMng1SVUxbGlzY2RvQksvQTcwYXVz?=
 =?utf-8?B?eFpaL3MxdUsxSk96dm1mQWIxUFNpQ1JUSXR0NFBBaE1CeUNCUlNha3RQb2FQ?=
 =?utf-8?B?eXJWaEpGbnlVN3I0MkV2Q2xYZEJaVDV6UUU5aFlpeTF1WU81QWRTZlc5cjMw?=
 =?utf-8?B?R2VOWTg1aytwYllpb2Z2QjZFR2xNQTNBd0xNaDVieVZDME0zREMwSC9sNU9u?=
 =?utf-8?B?bzhLQXhLZWNGMm54VWVQNHlWZnl3TldEUDlqZGQwdGNsQjRFNmU3RVlVc0xH?=
 =?utf-8?B?Y3U2V0FCRjIwamVXQURUakJSWnJaL0l1eG4xNjRuc0ZXOEhNNWdWM0k5bVVO?=
 =?utf-8?B?UDBmNXF2Wjk4OU5qMkM1TzVualc1amdFMGJ4OWd5ZU9PMktiSkVaOGlzdG9s?=
 =?utf-8?B?NS9PUVNDYVF1WUdKaHM3ZTl5Z3hhUnFFRTJkd2dHUldRd3F5WnlOc0ZacjZL?=
 =?utf-8?B?QkF6ZDNIS2JPQ3E0Y0R5ay82ajJRMjdXbGNqczZPNVd1cWJXN0lCQXRRZFp4?=
 =?utf-8?B?U0duRWpybWk5cmJnRjJLVmlXRG0wU1FGRS9nNU4vTCtjTnBrdlFhQW1jWXpj?=
 =?utf-8?B?dTczMWVOZGRFbm5TNTBTcGV4aktEbk5BdzRLVWYzaGY0TER6SUFndlBPZ2pL?=
 =?utf-8?B?dDB1VHNRU2pHc0RzOC9sMGlJS2xWT0NZdjJzb0hvRXJFRXlzUUNTMjFsRVVY?=
 =?utf-8?B?VHN3cXVFMkFIM2VLc2I1R09kU2xwK28yRE42N0dMOUlUQW1YMVFHQ3VEUmV5?=
 =?utf-8?B?USt3UlhVZnRrVWtnY0ZOQ1Nqay90ZkJHTVJUUXVlQ0g1cXJ6VGZvRWE3dU9E?=
 =?utf-8?B?Wm83Rko3ZVZqd3JDb3FtQnlKbkVXL2ZSWG0rdTRMV3l0OXV6QmZYK1A4dmps?=
 =?utf-8?B?N0hHMFMxU1QrdmFUTVc4WWZFOWs0Z1FVZWFYSUN2Y1ZIZGUwSDhuZjIzam9j?=
 =?utf-8?B?S1RHay9oSkFFaHlOajdob2lEV2tzdGhIYmw2cDBXVTRqbjJNTmFKOXFLTGFK?=
 =?utf-8?B?NERRdTJFNHZqdkNsTnIwMit3MHFVUlRac1NLU3BRUFFhbExVUnVESFhVZDlX?=
 =?utf-8?B?SlBaQjZJMFpWQTdpc0FoazRCR2VsVTU1YWRsRUVXc2p0Q1RVdWthUVFTLzRW?=
 =?utf-8?B?Nm0vcXk3QmIvNmZzSThicldtN28zV0tnUEIvRnNiVDRmTWVncXgwT1BoY3FW?=
 =?utf-8?B?WkgyM0RMc0pIdVZBTlRaSTh0Z0ZrYzRhNGpYWUFhWmNCRmdVUHdpVFJGNnBH?=
 =?utf-8?B?WDl4cGY2YzM2cnJyRnpNMm5OYjBxN05IWHd0aFNMbFp3MWlOTHNqV0FBbVU5?=
 =?utf-8?B?dW94UkgvUDdlNDlBcUxIK3pnaUNKRElQVCtzc2hYQjQrbUc2OGVUVkI4SlZw?=
 =?utf-8?B?N3JMSllNSExoOVFxVXRQMm5DZ1p0WUUzMTlNcCtiYURtaWpHK0t2bVB5TDIx?=
 =?utf-8?B?dGlUVTJDVGp6YXgxdVQ3ZEthU1lyNVh4bmthQWlMdDJJU2dqWjE1MVczMGI4?=
 =?utf-8?B?TkNiQjBMVE8yRHVqWThiTW1aNmd2UlF5NXZRRWJtQXRiRFUxMEpGUlA0Y1Nh?=
 =?utf-8?B?SHZYNDBvd2pXa0pVQ21sZzNJRVZNdFhpNkVQMVZVZ1lpcnhCZnhDY1pNU1FU?=
 =?utf-8?B?T2ZzS29SSmM3ZGZqejhrcjAycGJ4VkNyS0FrVWlEYnJQK2lqUm1oVXkvMGY2?=
 =?utf-8?B?M2JWTlFOYWpEZmIxWXRNUDJSNm1LeUUwVWNkK2lBRGhEV1l0Szdpcnc4ZTBl?=
 =?utf-8?B?Qm1zOXFkbU96R1BURlVwOXc3V2JvQ29KREhLNGt0ano2MFg0QWJ3alFBbDJD?=
 =?utf-8?B?STBZeUNhNzFTQXJ4UXlySmtKcHlrcUFXSXRIbjNpakNPWjh0ZlRtanpFbnBm?=
 =?utf-8?B?STNkd3lTTXRXSzJSU0xPZFFhZ3ZwNDc1WVZEdG9mbDVKMEVxZnpxOGMyd0N4?=
 =?utf-8?B?QWJ2amFOYTRWV3JnUGo1M0NiS2xLVkR2UkZScjBDMVVjUFZYdGkyaDhabHNv?=
 =?utf-8?B?V1dDUVc3Nis0VDBBWDg1Nm1hRmJ2c3BsOUVpNnVPS3ZvMFVXeW42RVVaQVN3?=
 =?utf-8?B?N3JCRVFXZ3F3TC8vTHN3elgxejZlK0F2VXFxTlhncm12TThnTzFZZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2c3f3dd9-fd7e-429c-f791-08de8b14f01b
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 08:51:57.9096
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 9aN7lAJfHuYPPSfC8K0YJZNq6nj9q9AFX532+4S7I99SwafmnCLtCHi70BAh3uvH3CW0O9dbQWyMDKK7ntUwVg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR03MB6130
X-purgate-ID: tlsNG-ebf023/1774515121-B3A969D1-C722C90D/0/0
X-purgate-type: clean
X-purgate-size: 4706

alloc_heap_pages() will unconditionally clear PGC_need_scrub, even when
MEMF_no_scrub is requested.  This is kind of expected as otherwise some
callers will assert on seeing non-expected flags set on the count_info
field.

Introduce a new MEMF bit to signal to alloc_heap_pages() that non-scrubbed
pages should keep the PGC_need_scrub bit set. This fixes returning dirty
pages from alloc_domheap_pages() without the PGC_need_scrub bit set for
populate_physmap() to consume.

With the above change alloc_domheap_pages() needs an adjustment to cope
with allocated pages possibly having the PGC_need_scrub set.

Fixes: 83a784a15b47 ("xen/mm: allow deferred scrub of physmap populate allocated pages")
Reported-by: Ayden Bottos <aydenbottos12@gmail.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
 xen/common/memory.c     |  3 ++-
 xen/common/page_alloc.c | 31 ++++++++++++++++++++++---------
 xen/include/xen/mm.h    |  3 +++
 3 files changed, 27 insertions(+), 10 deletions(-)

diff --git a/xen/common/memory.c b/xen/common/memory.c
index 918510f287a0..f0ff1311881c 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -345,7 +345,8 @@ static void populate_physmap(struct memop_args *a)
                 unsigned int scrub_start = 0;
                 unsigned int memflags =
                     a->memflags | (d->creation_finished ? 0
-                                                        : MEMF_no_scrub);
+                                                        : (MEMF_no_scrub |
+                                                           MEMF_keep_scrub));
                 nodeid_t node =
                     (a->memflags & MEMF_exact_node) ? MEMF_get_node(a->memflags)
                                                     : NUMA_NO_NODE;
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 588b5b99cbc7..1316dfbd15ee 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -989,6 +989,8 @@ static struct page_info *alloc_heap_pages(
     ASSERT(zone_lo <= zone_hi);
     ASSERT(zone_hi < NR_ZONES);
 
+    ASSERT(!(memflags & MEMF_keep_scrub) || (memflags & MEMF_no_scrub));
+
     if ( unlikely(order > MAX_ORDER) )
         return NULL;
 
@@ -1110,17 +1112,26 @@ static struct page_info *alloc_heap_pages(
     {
         bool cold = d && d != current->domain;
 
-        for ( i = 0; i < (1U << order); i++ )
+        if ( !(memflags & MEMF_no_scrub) )
         {
-            if ( test_and_clear_bit(_PGC_need_scrub, &pg[i].count_info) )
+            for ( i = 0; i < (1U << order); i++ )
             {
-                if ( !(memflags & MEMF_no_scrub) )
+                if ( test_and_clear_bit(_PGC_need_scrub, &pg[i].count_info) )
+                {
                     scrub_one_page(&pg[i], cold);
-
-                dirty_cnt++;
+                    dirty_cnt++;
+                }
+                else
+                    check_one_page(&pg[i]);
             }
-            else if ( !(memflags & MEMF_no_scrub) )
-                check_one_page(&pg[i]);
+        }
+        else
+        {
+            for ( i = 0; i < (1U << order); i++ )
+                if ( (memflags & MEMF_keep_scrub)
+                     ? test_bit(_PGC_need_scrub, &pg[i].count_info)
+                     : test_and_clear_bit(_PGC_need_scrub, &pg[i].count_info) )
+                    dirty_cnt++;
         }
 
         if ( dirty_cnt )
@@ -2696,8 +2707,10 @@ struct page_info *alloc_domheap_pages(
 
             for ( i = 0; i < (1UL << order); i++ )
             {
-                ASSERT(!pg[i].count_info);
-                pg[i].count_info = PGC_extra;
+                ASSERT(!(pg[i].count_info &
+                         ~((memflags & MEMF_keep_scrub) ? PGC_need_scrub
+                                                        : 0UL)));
+                pg[i].count_info |= PGC_extra;
             }
         }
         if ( assign_page(pg, order, d, memflags) )
diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index d80bfba6d393..5e786c874a73 100644
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -208,6 +208,9 @@ struct npfec {
 #define  MEMF_no_refcount (1U<<_MEMF_no_refcount)
 #define _MEMF_populate_on_demand 1
 #define  MEMF_populate_on_demand (1U<<_MEMF_populate_on_demand)
+/* MEMF_keep_scrub is only valid when specified together with MEMF_no_scrub. */
+#define _MEMF_keep_scrub  2
+#define  MEMF_keep_scrub  (1U << _MEMF_keep_scrub)
 #define _MEMF_no_dma      3
 #define  MEMF_no_dma      (1U<<_MEMF_no_dma)
 #define _MEMF_exact_node  4
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 26 08:52:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 08:52:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263522.1555447 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5gRl-0003uv-EY; Thu, 26 Mar 2026 08:52:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263522.1555447; Thu, 26 Mar 2026 08:52:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5gRl-0003uo-BH; Thu, 26 Mar 2026 08:52:09 +0000
Received: by outflank-mailman (input) for mailman id 1263522;
 Thu, 26 Mar 2026 08:52:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w5gRj-0003t7-Lo
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 08:52:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5gRj-00HEad-1f
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 09:52:07 +0100
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c4f3b0-e002-0a2a0a5209dd-0a2a4509a5ea-24
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:52:07 +0100
Received: from [40.107.208.54]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c4f3b5-e484-0a2a45090019-286bd03694a7-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:52:06 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH0PR03MB6130.namprd03.prod.outlook.com (2603:10b6:610:b9::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.21; Thu, 26 Mar
 2026 08:52:02 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.022; Thu, 26 Mar 2026
 08:52:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ypyo5p1GneAEZA85Iprm2bHy7hSS2X072Tjh9AxAe6WTc56oZ73GQFkKNk4IqqM/stpgDH5LgdmTWrjZ2bMk2CHWyobl9+/WAHrCUOI9Fp2BXN2so5QBtfL8iRV57U46ZdgMuz/MUmTmq80jJEhC7fWN6aDJuTDl6W25GezvUqF7FTQ6TmxeMdf6vIiWyvuyfnoED4/d14UrPKVgsZmD13Cx4rQjZ1sELSD+dTyAQsY7LqfkBl42BYlRvg2fDdvIvh1Yw4tdK9KvkjBjGWn5Xk9OUYxrIA8nbg/hRfnxiJ9Q70TcnzNf+F5qQuVzOAXIt5Z/I4mXtwewlg5sfJg1IA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UlSCfR/RG1m/YuILyUlHdFZCze5KGIHSmla47GQ4Db0=;
 b=dXWNYkjW4lk/u1FME7PpmB3q2Z52+W4YUOTz+mic1b8oNG93kq+FHSzQq2uPj5l2rjd8v8nyqljEbHjio96/Ppwmp1gAGUbNH1RCf6Opih8MDfksbU/NQ9dHnEAh6FY3sGQ2pdJsDNipU76rzMcCZJ71wmLBubcOASyiD6r63rxY4wBBWBM6S5q2J2GyA6Vl8d6tefFEHGdZggAg61EzyDektUmpr0as+fpYJ//hCSMnzqDvi8bD6av7cDQhOlp+Ax0ryPtV+cyMN2zMSeDqCkMOxUUm4zgiSKpGFQs5HOGko+Td3GZzD12FZWAs7RBCu0A5Qbtyu1KEC79DfafCMQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=UlSCfR/RG1m/YuILyUlHdFZCze5KGIHSmla47GQ4Db0=;
 b=cCWrBBg6ll8zBbg6N17LqB+kJJxU9QEofK/9uPFMFNs5I8SfOXBc3LmDRxR+cXpeBYiowo32QOn8GC7sILwvrs+FQ0qpoqUZCCg3jcd9pjkdADQVaZFByXBBt2gJZYAzHacvCM/ZYzW2wM0sITo+QPn4eetf+sLO5xAUb7e8khk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 2/3] xen/mm: do not assign pages to a domain until they are scrubbed
Date: Thu, 26 Mar 2026 09:51:44 +0100
Message-ID: <20260326085145.61380-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260326085145.61380-1-roger.pau@citrix.com>
References: <20260326085145.61380-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR1P264CA0048.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3e::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_|CH0PR03MB6130:EE_
X-MS-Office365-Filtering-Correlation-Id: 9615aa61-7a6e-4f46-1807-08de8b14f29a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	cl4vQFqyQr76WQPmHdlwPfeLTC3aZ1pYsqdqtnzIRkpkUF+f2SIV7xWoafNjjg/ec0jYsAb4YIOtX/1EHV60nt6iERSORSpdU4jcX6gpLZ33U9bXq1DGf45tXNpvcslpsNvwz+b3XBiwf7FsY3xfyo+gclpmZvbjAhTUWT9DDZC711peDvgJuo5UtXyCwG5oT8buWg8gQQaaDJr0Dj6F7cfsjQLBu3fRJ5fpszuNR1MuBg6xt0MVyeOYxftDzKvUCcftb5h77vXTBP8SeUQQnMHgKdHbu/mvhDmQv0ji81DbZAhys/t8nsDms2hpbMOHhii6+aJyqocJMD4IRpbJbwksjf5VgEufkL9JrDA4MWYxv8H7ebCp1XIwE6gPIzhGqm3O3rgobSB0GhBpfOGTAa/qU01Gv5V8LnNm2JoEQDFA6q9rdYMyJrtfO4aUOgjmIeFKI4z09Fh5vNCdu1BeYahFh80/6VOWCbHkVXhCoTPr1dyA/KvqDCz3W9XB/gLzlR3afZ9rZtTI2tEhwAe/X5oVOx2X6wFym10C9T71ROyRBEY/ESGwjzIGM43kPRQ4G91cZQ04+WGyINbJWuGt8qO9Yc0LIxwY3hstTjWCRT6YmEwLPvD9+lxFc3eHgswxLREMJuVx8rF+5RifgMAj2HggaMu+FkQK503yb43D2ft/pGbly9u9tjt8aABFkn04Qr9wSJnKVy6CK+Sj+uzi3Pki6n9uRe7PFv8WEycFFLE=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?S01XZ3c2WFZNckl5d21BcWF6WkNZVHJkZEd0c1pHWHNsMTNsaTRFS1M4ODdE?=
 =?utf-8?B?VklqMFZnQ3pVWFMxOG1kdEtrKzE3dG9CWVFMdkJIdC9KK3FxZ2NCV3p3Y3VI?=
 =?utf-8?B?OWFUMkVGRUVtcVk4UnRObU1VdmdjRGxvZjVGUTU5QkFpcUk5dHZjdUlTZ21F?=
 =?utf-8?B?TEFVVkVCRlZiYzBud1RGbFNKQmRDb3duSDJZcUIvL3ZweG80YlBtRTg3VE1C?=
 =?utf-8?B?Ym5DSHBRNDlnem92S2tXVTd2UFJFK1ZFbWNSVTEyZjdjZXdmOFNOVFRSNWlU?=
 =?utf-8?B?clo2YXZmdHNyVkRLMGRwWUxCS20yaUhQc0VkTm9wSCtpS3BOdWNwdnpyeGNW?=
 =?utf-8?B?SmMxUDY3U2ovRFBscDRWRUlRWTQzbjVPampwTXZ3eTVKaUhUb3hxWWdjdHda?=
 =?utf-8?B?eEEwNXVBMDhJY01QZ3NMUmdFOE1Wd2ZaeHgxVTNUeHJwWG95N1JMeGR4TFN5?=
 =?utf-8?B?VFVCcWx4QVZpVVhad2ZTbnl5YXo0RDc0cTE2VmlNR2RHMngyM0J5WnVLK1Zi?=
 =?utf-8?B?eG5oM1FEQ0RTZWZrenBpRkNxeUFobkZrNVlCNWdzeGRMU0lmNDVnUWtocWRO?=
 =?utf-8?B?S2VrMU9wQnlhVEtrMHJTOU9ZNWYwRk1KUzhlK3JjUitnb2pvM1BFM094UVJs?=
 =?utf-8?B?S0pYa3Q3VmtwbmkvSkpuVFFuTHZnOElHdmpIcUx6VGxodlkxWkpsZDBHQW9K?=
 =?utf-8?B?dUM1elhRd2lSdWdxakw1VEZ3RW04QnpRM3ZUbWtESFMvUXpGV3p5QklFNkpv?=
 =?utf-8?B?WDJYY3MvanFHQ3lxZC80d2hjZmI2SmF1ZTZCQlFaM2FDaHNheGNFRlJSNVN5?=
 =?utf-8?B?eElvV3pjYVM5emVHU2pYcVhZRW5aYTM0aXlLdXRQbmcxMXRQKzRucDVlRUlX?=
 =?utf-8?B?S1JHbTBET0hEcTNHeHBDR0RaM0xSSHBLUkt4Qy9pOEZQVTA4N05BRUMwcnlj?=
 =?utf-8?B?eEN3SVpuVUNtcnNydnczcS9UKzFGeEZZaHZyS0xBK3RjVUlheUtCK0ZmcVhZ?=
 =?utf-8?B?Mm81WFU4NTB1TlBJSStKMzVnd3JkUGN1R3lGK2ovRlZmalZuejR1WjNiM0Vz?=
 =?utf-8?B?Z3IwOVRnWlhiZ0ZDVEU4L1RNWXFxMTh2UTJEb0FqTGlibEJSQkViTmVtRndJ?=
 =?utf-8?B?UmNTMUozc29pcTYzREdZWHFxcS9RMkR2MFFPWHkwQlJhQXBJOVZ2KzNGYjY5?=
 =?utf-8?B?ZnIyUEhZVU1DYit3WUVJQ1R2SWNXdytBM3I3ditPRGNXZHBzQ1JNMzl2Y3ht?=
 =?utf-8?B?Q3lsV1VTanVtQVRTczRHd3E0VFhFSEtPZHdIREx6T3pCK2RTSXZFbDRVZHJp?=
 =?utf-8?B?Si85c3hYSE5kaFRUakIvc1F2azhBdVRnVnhOZWp5MVZLZjE1RnRhTHE0bnBQ?=
 =?utf-8?B?REFIWXI4eldhUDJ4eno2aWJXL1JEbWRJeklXZ3UzbVdOTEVOODZ2YTVxWHVh?=
 =?utf-8?B?Q0x1L2RTWEFzYW1xaU1ud3doakkyVnVNS3BCK0ptalluMEVUMG9UVkN5c0hv?=
 =?utf-8?B?cFlEWU9lWXVQTVp0K0FvWXlIS2pZNE5KQzNDTmhPcFZrWkJ0OUIvdmR3UkpT?=
 =?utf-8?B?U0VhRnNWNUkveUV2b25KcERuanRyWittVzl1aUhlTGl1Ukt5d2lXeHVyK1ZM?=
 =?utf-8?B?RnRPS1JBTmk2TDl4VWt3TzdxU1VHaTlTelB3T2NLd0JyMW9YdHhkWHhFR1JF?=
 =?utf-8?B?VjhrY3U0emNuMi9vUmRqTzJKWW5zcEFMUXZQa1BWQXlrcHRkYnhUcE8xVitP?=
 =?utf-8?B?ckNna0tteGovRjdXN2ozNjlPcVNiT1dmVXN5aVAyVkxNNVFPOVlJWWxCMXJW?=
 =?utf-8?B?dWJNRDlXYk5sUnh5NEEzbEtzRmRwL0lUd0pvb3BVV2orL1hFbDlMWXBpU0E2?=
 =?utf-8?B?Qy9HaHg5ckV5THluRjl1aVU5bXlWUUU2RldlVDhXUTJGYlJkN0o1WndHL3M2?=
 =?utf-8?B?a2VFWHFzYkZUeTZwMERpNCs5VkxmaEYyR3kwODNWWGF2dFgvRlM0a2lpaXZ2?=
 =?utf-8?B?b2hweWVJd1ppaDh5TjBzNk4zdWZSWUE5WkI4b0dYVE1CYnB3VG5LYnlFZUtM?=
 =?utf-8?B?RVFyTmRnZGtEQk0zbEFZZWFUK2xZWmpxWWNaVTArZklTWXRJaisrOGJGMzVG?=
 =?utf-8?B?Y1ZuZzg0SW55REl4Z1BRUmVyOXhxZUJzaXEvMWpIcDU3UHdQZzJ3bkYwRUJY?=
 =?utf-8?B?QnEwbkNjcVN2dEVjZ3NjV0M4SEF2dGNCUGhtTlJWZ0FQNkRrWUhKZHM0a2Zl?=
 =?utf-8?B?VENVQjcvOUlvM3VUTitQank2VkNiVW1GNWI3cmRzRUdMZ1ZINjVnZFk0RTJY?=
 =?utf-8?B?Z1ArcXQ1RWpVTTAvSEVCYUxQZXZoZ0FIemZnV1Jub3RCVkVGZ0k1QT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9615aa61-7a6e-4f46-1807-08de8b14f29a
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 08:52:02.0813
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Hc7UuGB1w+HlWGIzLPILOsocM/k5wcPGTF/yoXgj9fgrSyBp1m008D3yaQKwVc6ZAJF+zVlxgk7pMmH1nGekag==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR03MB6130
X-purgate-ID: tlsNG-bad1c0/1774515126-61AB4A73-5CF8E391/0/0
X-purgate-type: clean
X-purgate-size: 3789

Assigning pages to a domain make them the possible target of hypercalls
like XENMEM_decrease_reservation ahead of such pages being scrubbed in
populate_physmap() when the guest is running in PV mode.  This might allow
pages to be freed ahead of being scrubbed for example, as a stubdomain
already running could target them by guessing their MFNs.  It's also
possible other action could set the page type ahead of scrubbing, which
would be problematic.

Prevent the pages pending scrub from being assigned to the domain, and only
do the assign once the scrubbing has finished.  This has the disadvantage
that the allocated pages will be removed from the free pool, but not yet
accounted towards the domain consumed page quota.  However there can only
be one stashed page in that state, and it's maximum size is bounded by the
memop-max-order option.  This is not too different from the current logic,
where assigning pages to a domain (and thus checking whether such domain
doesn't overflow it's quota) is also done after the memory has been
allocated and removed from the pool of free pages.

Fixes: 83a784a15b47 ("xen/mm: allow deferred scrub of physmap populate allocated pages")
Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/common/memory.c     | 6 ++++++
 xen/common/page_alloc.c | 9 ++++++++-
 xen/include/xen/mm.h    | 7 ++++++-
 3 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/xen/common/memory.c b/xen/common/memory.c
index f0ff1311881c..1ad4b51c5b02 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -388,6 +388,12 @@ static void populate_physmap(struct memop_args *a)
                             goto out;
                         }
                     }
+
+                    if ( assign_page(page, a->extent_order, d, memflags) )
+                    {
+                        free_domheap_pages(page, a->extent_order);
+                        goto out;
+                    }
                 }
 
                 if ( unlikely(a->memflags & MEMF_no_tlbflush) )
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 1316dfbd15ee..b1edef87124f 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -2713,7 +2713,14 @@ struct page_info *alloc_domheap_pages(
                 pg[i].count_info |= PGC_extra;
             }
         }
-        if ( assign_page(pg, order, d, memflags) )
+        /*
+         * Don't add pages with the PGC_need_scrub bit set to the domain, the
+         * caller must clean the bit and then manually call assign_pages().
+         * Otherwise pages still subject to scrubbing would be reachable using
+         * get_page().
+         */
+        if ( !(memflags & MEMF_keep_scrub) &&
+             assign_page(pg, order, d, memflags) )
         {
             free_heap_pages(pg, order, memflags & MEMF_no_scrub);
             return NULL;
diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index 5e786c874a73..b80bec00c124 100644
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -208,7 +208,12 @@ struct npfec {
 #define  MEMF_no_refcount (1U<<_MEMF_no_refcount)
 #define _MEMF_populate_on_demand 1
 #define  MEMF_populate_on_demand (1U<<_MEMF_populate_on_demand)
-/* MEMF_keep_scrub is only valid when specified together with MEMF_no_scrub. */
+/*
+ * MEMF_keep_scrub is only valid when specified together with MEMF_no_scrub.
+ * Allocations with this flag never assign the pages to the domain, the caller
+ * must call assign_page() after the PGC_need_scrub bit is cleared if
+ * required.
+ */
 #define _MEMF_keep_scrub  2
 #define  MEMF_keep_scrub  (1U << _MEMF_keep_scrub)
 #define _MEMF_no_dma      3
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 26 08:52:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 08:52:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263524.1555456 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5gRm-000492-L8; Thu, 26 Mar 2026 08:52:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263524.1555456; Thu, 26 Mar 2026 08:52:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5gRm-00048v-Hx; Thu, 26 Mar 2026 08:52:10 +0000
Received: by outflank-mailman (input) for mailman id 1263524;
 Thu, 26 Mar 2026 08:52:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w5gRk-0003uC-Nu
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 08:52:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5gRk-00HEad-3y
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 09:52:08 +0100
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c4f3b0-e002-0a2a0a5209dd-0a2a4509a5ea-32
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:52:08 +0100
Received: from [40.107.208.54]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c4f3b5-e484-0a2a45090019-286bd03694a7-4
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:52:07 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH0PR03MB6130.namprd03.prod.outlook.com (2603:10b6:610:b9::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.21; Thu, 26 Mar
 2026 08:52:05 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.022; Thu, 26 Mar 2026
 08: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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BAl/0Wo4RO6Dp5ROoPlzt2DYDukI7FQdftIE2AUZlW+rG8i+XLNuwpd/zp//KogPrEjEsTpvfwiZqM0lfurctsITp1FsN4FJPaZQI2/D8dEad+WJpbzUBNSagoXkOrVDzM95qxC7w0fM38LzfZp6FdoXBeDdTr2z0t3W40Db6skaxshgJDZfkhRllrnyRNa16jS3RabdMFTMw+ZE3HxIMLkiKFQ7HG+FRZDAKKDxapJUsS9yQIzluCmxJhR4BHqZ/dbY2ZLf4E8YjOE0mYiRxYpHs/sDlRHiiwwJvTY1SCDvIfUdmTpTEfiwoIDSpqocQLEHxQh1TFiSipB2DeKOjg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NRuxAg7+DFWaBUvv3afEF63Z3k/Yz3QGkGiV9EBbvyo=;
 b=s5+9rhvNzvmH1pLCTsvebd9eznNYEASebndo8oYJ9M+0SylPkUwlMP0Jr20F8XlHh/HMTbZCEcKmljZszi4o17kp8PW2neywoK+8OJqbaHO3cJ5T3gE2ghc80sazKvGLVFrbJvzDyIUQfR9NiI5jCNGZZi6EMrCbIXoExStrcETaJYzN7OhfBq5E42FGOj9GJUHe4CWEQsqZyIlOZkQtpZ3/B5kary7zaY16WSzocF1RMWe1HqVTTT7dU9DjT4olBsJwe4VMBjwbMZhuRzl04Ilz9x5AteHxUfxmlvBtN3u4zH4Ld0qAo+J9gB43eUiXF1MAiVnGxYpRSeX5kQ6p+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=NRuxAg7+DFWaBUvv3afEF63Z3k/Yz3QGkGiV9EBbvyo=;
 b=UNPL776QEzAfGZ26fR+oewYCQHcDyEtQFg2hhiYk0tuoSnT1Dr+lEp1jxeoGa4QkS8DHoYXXSovrGUej4X7Gi5+TwqBx/AdgqysBKP462mOArhDGjNPs0IMzy4sp/lOgCCSvJCZL7V0mLDfwnpAErFVexOEUqlDk4A24w+ahnLE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 3/3] xen/mm: improve freeing of partially scrubbed pages
Date: Thu, 26 Mar 2026 09:51:45 +0100
Message-ID: <20260326085145.61380-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260326085145.61380-1-roger.pau@citrix.com>
References: <20260326085145.61380-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR1P264CA0143.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:51::22) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH0PR03MB6130:EE_
X-MS-Office365-Filtering-Correlation-Id: b663659f-4802-4fa5-0797-08de8b14f4e1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	xv5Fl0CrAzzSXUVDivKF/tsc1hLgXDFeu+CVRRJZTErI+TRzZtJC890FzyDf3FbSUz8G0B+tzrNqQDUOedyFsEkiX84TPqTqpJfGP8Fxf75U/VIsdDWOJ95Jc8orR1zW6fIQAhyLoRO+U1MXvxdWnP11FvF66hXG8zCCXzK+mCycr4Qyz/iRHG/sxHCdNvV4/h6SjyeluRTXAfbjCCejejj63txpEmKmEA5rR95o9eljNaWEmqZeD+m6iva8Rb3pDqQIeRw1W+XocD3Rebnymg85iI7Pjr1VFoiAlOu2sCVf6G/oi4V7oBX0+bAFf3xmGGYy4L+t6dS8qBeKVek88ZDUF7xOhFvBjlRvLOXua3JcxcAUgu0AwB1WSDH1SZ+L4jPYMuAGE36EFdpzZM5PPhNWBC5sHmnNaOLCmkIN5Fw9GNLisaoD6bSMww3B7NIV8mBbhAIGwlbYc0q7wvq9RTE4qWSaxEXI9LUO9V5V8INJiGVldoYy0L+WS1nLczoNdKeWsCKjeoVgKfyk37UDPorzze+W0bekwSROh7VQs10Z25gXjCjIBH4X/xVYBcSvXwPazesYBQQ70epxsUSc12f360/iraHjLaFvTUY2wyR33zj7rl4sJfpO6/AHhwKYpc5o2oWvLf3VTnltg4QRxWoVAiOydn1NFMt2AdyLqGBftCwiryig9K73eres3Yw3v9EyNUg1/dyc+BR/cx+mEmddJTdqKgvDGXhiGMqmvcU=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SVhvUWdXOFZyNmZvdEUyVmQ3b3Z1dUpYby8xRDNxZXNZbDlTdHBTdjhWbjZh?=
 =?utf-8?B?S2p1aEE2ekFtcU1PZ3hEZWFMU09vZHE3ZHVxS2RUV2F2NTJjYTZzb0p2UGZV?=
 =?utf-8?B?c1JUamQyMkxMSVZuQUZ5MHZ1TFlkVW1Wa21KbFcwT2JYMGRZV0duQXFEVzdi?=
 =?utf-8?B?MXZDQlJrNGlHUmZMZnI5dENabzRjZEFHa3hWWXdZNkFCajJQVXFXVmx4M2Rt?=
 =?utf-8?B?cU1FRWVkREpqeFRnOERaQm9IblU4QTRrKzkva2ZLZjkyOTc5dzF5dnZtM0RE?=
 =?utf-8?B?Smp5cGpEd2llZDRmeW1EZkVQZTR5K3hRUXoxY3B1QlgyWHhSdmIzYzNLQ0k4?=
 =?utf-8?B?eUZYb3NkVXI5UHVPZklIbzlhaGphRS9PMCs5dFFFOTNJTy9heGYzeWJoVTcy?=
 =?utf-8?B?VzZqU3VVQ3p3K0ZMUkxaUE5pdXM0Q2Z2ZHlaOFZJMWN5NDB3dW5pRTRhV2dq?=
 =?utf-8?B?NzkzZE5VT095WmlYUTA1dUFjeGVCdmMyOHdjaExEU0hVT0xtL0hYU2tzbjBR?=
 =?utf-8?B?dkF3MmhRNitUdG0wWk4rU1RxV2ZuRUdha0QzN0RJc2w1Zy9YL0NiVlJYbkdW?=
 =?utf-8?B?VHdnM1dSUjRUcXU1QTBZUU1ybndLM2J0TlJCNDdIbHpSZWR6RTN5VGlQYXRM?=
 =?utf-8?B?dUJuSEh4YTBNV09iQUhaMXJyTTIrMWlwK20rSDFBcDdiKzd2MjZNOFgxSS9X?=
 =?utf-8?B?ajVCY2lGZlhjVFdyYk93cnRSL3lTdHhoYWdhbHJvQktFYVNrdWVqWlNZU0FL?=
 =?utf-8?B?ZTZ5b1ZibGt1Q3FRc1hJM0N4MHJMWHFQV0dVaS9xemJEdXlsMkZrL3Q3Um5S?=
 =?utf-8?B?YUg3TnV4N1ZiR1AwMWxleXQzMkpxVzdWL1cyc0dtRm1xUnRNQUwyWjhHK2Jj?=
 =?utf-8?B?NlJ0bSt0eVRoZmZTMFhFeTU1clFMR01ROEpWTlpEK2NDVHBEcGN6Y1oyR1Za?=
 =?utf-8?B?VlFkdGJFcXNOYlJkSEVhS3dYaHJRZElsanlYbjVuZkd4Y1ZtWjB6eTBuSXZZ?=
 =?utf-8?B?bjVjUmV4Z1pETGFFRjJCRlFOZmh4MUNoNUVydW5ieWhXOGJoWDg5S1JwbndF?=
 =?utf-8?B?V3Rvbm55V1ZPTGp0ODJGT0hXVXVjNWs5Z2ptbmc0Sit4Zk9zRHl1S3IzQk8w?=
 =?utf-8?B?dnh5a0FWb1JnZnRsczhMN3psQUlxSGFZdFpveGpoYUNXNlZMMm82aExQYVd0?=
 =?utf-8?B?UUxvL012c2lIalNwWk1FN2xJWks1WFByZmIrVTR1V1hKbVB5QVNyWlhkQVEx?=
 =?utf-8?B?NjVBakZKSlBhUnN2Ym1iVHB3cDdMa0h4M1poRXRoUnhKRW83QmxvTDhDWUhO?=
 =?utf-8?B?blZPVmhKcllEaXBzSlV2eGszQXU0L3puRDdrVHJZbTlkUk1acUU2U3NwNWIr?=
 =?utf-8?B?eXpuNlpiTmtldVgwbmpkUXhXSHY0eFk0YWJ6QXlKRmh4NXBxaDE3bWxwOWIx?=
 =?utf-8?B?R3BJbFVCNG1MMDJQU1g2UHVHalEzbTcwTUhjUXAwRi9BbW5PcjhyZlFpd0pv?=
 =?utf-8?B?N2JaM0tYQnlyb2pwdlltbWtSazFzb05TU3dGVEVOVXJxOGp0V2QyK0tnazYv?=
 =?utf-8?B?ZzNlZkt0L2x2TGFRaDZHb29HZVViZWFxRjU2QmF2V3VtYjZHMnRPVlpIMllw?=
 =?utf-8?B?dWJqcTloczhRMy9RYjlFVExnWFU4UGxUS2kwckszTnZLV2FuNno0cVFPRWc5?=
 =?utf-8?B?dTdHTUZoTjJqdHVqdURzT1cxU0dyVDRIT0FINmZ3WkZNaGNpR3ZOSDFUQXJm?=
 =?utf-8?B?THQ0T21xd0Vzb0NIZ0xOS1l5QlhzVExNa0tuTkQ1TnIvcVBJNFhHM1RIZnJw?=
 =?utf-8?B?MEtZb1hzRUUxeWp6WWV0TFRqQ1dRRlVzN3VRWElnY0oxaDkxWEdVZ00vc21o?=
 =?utf-8?B?bG5uNjhGczVKcm1jWXBPRjV6eTcrNG5xTTlZcVQwZDBPbWFNdkZqTTcrN1Zq?=
 =?utf-8?B?M1J0Nkw1cUxJL1lZVzd5QkIySHFkQjJBVHNBdk5yU0p0NjY0azhxZ2N2Zjd3?=
 =?utf-8?B?dEY2d3dlMDh3L1k1dVh3UFQ5NmQ5MUpxM1docXpGb3VadzJ6S1B6dkkvZERK?=
 =?utf-8?B?cEFGSVpCTUNGTnIxL0hSeE5aN21YYzdpbUJUeGtpYlBlanJzZUoyZmZYTVRE?=
 =?utf-8?B?OUZlSk90bnJmYVVEOEhaNCtGTTBpWllDTHN4dG9tbVlHM2RPOW5lWVhWTzVu?=
 =?utf-8?B?WmI2dURUNUVlNzNweElrZEJxZmxDclcxWEFTd3h2WitSNFNKUElsVmZIZzEw?=
 =?utf-8?B?bi9oTHpQQjFQTkgxWXlRcU8wZDBDenNXZklnaWRtQ21tdnQ3MFQxbEdHSExy?=
 =?utf-8?B?NjA0SXFCS014dzlYTVJCa2tiQk8vMDYxYlNodlBJeURDbWVZQUsvZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b663659f-4802-4fa5-0797-08de8b14f4e1
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 08:52:05.8482
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 8UZrsKbBut4UlHxfk5eRXaaT5Nw3TpY57mY4aOV2rnOoJW2xJ0cPeTlue3Pq1PEZVD9RDcGxdVovRjJ0fCybRg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR03MB6130
X-purgate-ID: tlsNG-bad1c0/1774515128-5AAACA73-DF0D5578/0/0
X-purgate-type: clean
X-purgate-size: 4597

When freeing possibly partially scrubbed pages in populate_physmap() the
whole page is marked as dirty, but that's not fully accurate.  Since the
PGC_need_scrub bit is preserved for the populate_physmap() allocation we
can use those when freeing to detect which pages need scrubbing instead of
marking the whole page as dirty.

This requires exposing free_heap_pages() globally, and switching
populate_physmap() to use it instead of free_domheap_pages().

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Jan: I'm not sure if that's what you suggested in the review of v1.  I've
added your Suggested-by but I can drop it if that's not what you were
thinking of.
---
 xen/common/memory.c     |  6 +++---
 xen/common/page_alloc.c | 16 +++++++++++++---
 xen/include/xen/mm.h    |  6 ++++++
 3 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/xen/common/memory.c b/xen/common/memory.c
index 1ad4b51c5b02..68eef8291571 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -177,7 +177,7 @@ static void stash_allocation(struct domain *d, struct page_info *page,
      * interface is designed to be used for single-threaded domain creation.
      */
     if ( d->pending_scrub || d->is_dying )
-        free_domheap_pages(page, order);
+        free_heap_pages(page, order, false);
     else
     {
         d->pending_scrub_index = scrub_index;
@@ -210,7 +210,7 @@ static struct page_info *get_stashed_allocation(struct domain *d,
             *scrub_index = d->pending_scrub_index;
         }
         else
-            free_domheap_pages(d->pending_scrub, d->pending_scrub_order);
+            free_heap_pages(d->pending_scrub, d->pending_scrub_order, false);
 
         /*
          * The caller now owns the page or it has been freed, clear stashed
@@ -391,7 +391,7 @@ static void populate_physmap(struct memop_args *a)
 
                     if ( assign_page(page, a->extent_order, d, memflags) )
                     {
-                        free_domheap_pages(page, a->extent_order);
+                        free_heap_pages(page, a->extent_order, false);
                         goto out;
                     }
                 }
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index b1edef87124f..8fc9b5a27f1b 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -1529,13 +1529,13 @@ static bool mark_page_free(struct page_info *pg, mfn_t mfn)
 static void free_color_heap_page(struct page_info *pg, bool need_scrub);
 
 /* Free 2^@order set of pages. */
-static void free_heap_pages(
-    struct page_info *pg, unsigned int order, bool need_scrub)
+void free_heap_pages(struct page_info *pg, unsigned int order, bool need_scrub)
 {
     unsigned long mask;
     mfn_t mfn = page_to_mfn(pg);
     unsigned int i, node = mfn_to_nid(mfn);
     unsigned int zone = page_to_zone(pg);
+    unsigned int first_dirty = INVALID_DIRTY_IDX, dirty_cnt = 0;
     bool pg_offlined = false;
 
     ASSERT(order <= MAX_ORDER);
@@ -1552,6 +1552,13 @@ static void free_heap_pages(
             pg[i].count_info |= PGC_need_scrub;
             poison_one_page(&pg[i]);
         }
+        else if ( test_bit(_PGC_need_scrub, &pg[i].count_info) )
+        {
+            /* The caller might have returned pages pending scrub. */
+            if ( first_dirty == INVALID_DIRTY_IDX )
+                first_dirty = i;
+            dirty_cnt++;
+        }
 
         if ( pg->count_info & PGC_colored )
         {
@@ -1571,7 +1578,10 @@ static void free_heap_pages(
         pg->u.free.first_dirty = 0;
     }
     else
-        pg->u.free.first_dirty = INVALID_DIRTY_IDX;
+    {
+        node_need_scrub[node] += dirty_cnt;
+        pg->u.free.first_dirty = first_dirty;
+    }
 
     /* Merge chunks as far as possible. */
     while ( order < MAX_ORDER )
diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index b80bec00c124..0b192caa07bc 100644
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -153,6 +153,12 @@ unsigned long avail_node_heap_pages(unsigned int nodeid);
 } while ( false )
 #define FREE_DOMHEAP_PAGE(p) FREE_DOMHEAP_PAGES(p, 0)
 
+/*
+ * Most callers should use free_{xen,dom}heap_pages() instead of directly
+ * calling free_heap_pages().
+ */
+void free_heap_pages(struct page_info *pg, unsigned int order, bool need_scrub);
+
 void scrub_one_page(const struct page_info *pg, bool cold);
 
 int online_page(mfn_t mfn, uint32_t *status);
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 26 08:55:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 08:55:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263564.1555464 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5gUn-0005Yt-6i; Thu, 26 Mar 2026 08:55:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263564.1555464; Thu, 26 Mar 2026 08:55:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5gUn-0005Ym-46; Thu, 26 Mar 2026 08:55:17 +0000
Received: by outflank-mailman (input) for mailman id 1263564;
 Thu, 26 Mar 2026 08:55:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w5gUk-0005Yd-St
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 08:55:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5gUk-001KW3-1r
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 09:55:14 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c4f472-2eae-0a2a0a5409dd-0a2a450c8ce8-0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:55:14 +0100
Received: from [40.107.200.10]
 (helo=CH5PR02CU005.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c4f470-f93d-0a2a450c0019-286bc80a2d4c-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:55:13 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH0PR03MB6130.namprd03.prod.outlook.com (2603:10b6:610:b9::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.21; Thu, 26 Mar
 2026 08:55:09 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.022; Thu, 26 Mar 2026
 08:55:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aUSsAaQNY8utpGuNlcKOk95vv3jbIb3Qv7VeGtmQdYv7RbOiI4tiGr2Ys0GQ1J0avsjX/U2dVwSx2lwP7o0xZfIwPW7sHp3aoAVRcSdIvmcrz3bRQZCemyFVWO+97SgJt7t/pKO0d3p6efP+qILzfgmhR3XJ0WR73Y5eb/WuhSjbCqD6/2yT607pElOj8sKsWFJHgAydLvZDrl54dJRoaIgdhq6iU05Pq449HnUhDf/jE31YKpciN5NGZ+qbaNDEn8Lg0pZ5NdJ52VbDD9llyh4PGlybPuT1njcfDkcfTSLBwE2ns8C3dOzl8QKwh1DkTw6JAK7d5JGFEDMcHprfmg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HE7ORryyLVtL2YJ5K9R5RomXN1arImF+mWtVO7dyQMc=;
 b=j9zIxd6l4yFrH4jtj/0mu9YJA0JY3WwKhdRlS9ZfGt4jq01Dm6NsQtbcLusArw4ppWxw+rbeKCNH4nA/cqoQGMlyAVQeFVFxqVpyV4wTwrw4nWpPYsv1X5gcnPTaNWC/T7aF1J/qJJRsOEnZIcCUE/RrDnWI610Xo54aI588WeDHXTmxDD6izH6pwWeuD4aqoEzjtCBs2noxMwaCr7BhBmm9zRFpiSWBKIAcTXXZ5feuLxpwVuwIEhtm+eX9UFWxu2cS9Xln/ouHJdWW+Rs6SlrCOqZlCFlYTUi0a86bweYApNIt5VN4i3oSBaw2dDx3+P2EM32LzA/BvxU1ORyXKg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HE7ORryyLVtL2YJ5K9R5RomXN1arImF+mWtVO7dyQMc=;
 b=oo1hjExR87nsb6+NqCpXLMVbHhlKqgb2lHeurUQqyFcXsGepxVVrBhOUxGpFg4ZvRS5QP4Q/hAQppBf14VwxmtwT9q2nqIfTPWqi26mzaAG1tsosNfhHDtnTH1CKDZWkPSZqi3/YBUGwBlH/PDLzokc8Xnv4+xp2XQb1RN4/ilY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 26 Mar 2026 09:55:06 +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 2/2] xen/mm: do not assign pages to a domain until they
 are scrubbed
Message-ID: <acT0ajy5ReUcmZVa@macbook.local>
References: <20260325100803.6640-1-roger.pau@citrix.com>
 <20260325100803.6640-3-roger.pau@citrix.com>
 <73c705eb-95f9-456c-ba0b-c6e0f7730ef1@suse.com>
 <acQMmXyOGFe5AN2i@macbook.local>
 <acQTUE3Lm7-KIcRj@macbook.local>
 <9bd94a4b-6724-4978-b00f-c3fd0664814d@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <9bd94a4b-6724-4978-b00f-c3fd0664814d@suse.com>
X-ClientProxiedBy: MA3P292CA0009.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2c::10) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH0PR03MB6130:EE_
X-MS-Office365-Filtering-Correlation-Id: 3be7acb1-806f-4dfa-02ce-08de8b15623b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	5/W1OrqmUi/cbJbkwr061APTannUgTAc4Qzb579ICxPXFWea+9SX9a3Xy1/tnRqu8yx4Bl2tJ0k8GXzJR7SNUYS/r1IKh0qlUFXfB4fgfInB0zuP2mXSeDELZXDzBgTc0x2rZBv8nIpoyOQmaiG2mWu8ltnBdorsJdaPHbbLLMmm4Uq3yuKni+PWuzT52IWDiIZ+TcZyb7btE4AtcALoqmE2NkiSiUF47qdhktk/G12g3aZlq44lVwXQJP/pyT9pUOwQnQK+eVMXZ4p3RWlorlAxzvzD3gqjwR3gFUsxchLN9596qcKvC/5jq5ERcWfo/iIpYAf9PzEc5XVCrigs2SVe7mgIgUL1O0qYIf6TkiRZUZ4X6opKZNgyoSAvRR+nuq0VOcPWKxxeSS2InDPnI7LUebFTqHrMDvsm9eINJYo4gC20vT9TH/Vs9mrGHv7s2uziHgxksXjpmhkHxicNG/3CxQefahoHvJKgoXYrqaEZkU8pv8/y5y598kGAxSmJ0UqB/aI3bSODvfUSJvoQ8eGGgzJfRdtuwf0NpYFBZDuPpA7ZW5+/+VzYWmEntAlJhFyARl2wGKmUx84IQA1CqDtVcPpd8SQjyBPBJoXKGNnTLiTe8/xQr5Dxncc6pdPVeRxdJ23oWHA7pjb0heBcl14b313Ic3wNDxsmWmicwDuR1jayVYivfD8dQsUkGQzpFvBKmgnunINJboo6hMd9mjeH14sk5RbBMs7MEMEPFCA=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?a25KZWF2UjdPdjk2STNXTFptR3pYb29CZ2I4VER2WmRnQTNnL3ROcm9jVEtW?=
 =?utf-8?B?RllxMnIvMHFZU1FVR1hZdU0vWUJ3OEphakV3YmIvUGFFdlZaQUdzOG43Z3Vs?=
 =?utf-8?B?V3Z5bDJkMFhQaVI4Z3ZNZEhaSXpVRzk5am82dWZRWEtNdmF0NThoeWlxVDFs?=
 =?utf-8?B?d09nVjZuN0EvK1RqcTJiNHZrVkpySlNUWVpPNDVrWDd1ZWFhdTJCQjN1ME9h?=
 =?utf-8?B?cjlORlBqaUwwMkM3dnA1VGttYVhTay9pbmtDMWk1eDZGa28vNmVRNU83UVd4?=
 =?utf-8?B?TktySnk5Zm1ES1JqNS9xQnVWaEwyaVVFaEhUbWVmVVh0YkRiRnRtZkorTkh5?=
 =?utf-8?B?KzVmbEl5WnBreDE5QytpZTNRNjV6M01PbHd6SUVpT011cWU4aHJ4TEhQcTgz?=
 =?utf-8?B?aHNub3VYc0poNlJJSFZwR2VqV0F0SzlBcmlnZVlKYWxoUW0xcHFPR1hCb0h1?=
 =?utf-8?B?ekhWMTRNS2NmSTlaMVBDVFFIRFdwSC96Vm5qMVZRR3JyNlpYcW9PMzVzeEVZ?=
 =?utf-8?B?Nng5Yy8yM21mTFYzUlVmUUgyWmt4YWpyNUFxZWhKbGRTOFNMa25ud0FpamI4?=
 =?utf-8?B?Yk5ORyszSkVCeG83SituT1pJcXlEU3J6aEdqbk0vZ2xnM0N1OEU2WGIvaE95?=
 =?utf-8?B?ZkdHYTU1NjVuN0pXb2FJdWlnNlpYTkQ3TGtNZUVYbWk2Q3U5RHJEcFhXSFdw?=
 =?utf-8?B?RDVUVVVRaFY2eCs2OG1QcUVKRkR3VzlKdSs1NGdVTjlCYjcvSDVVTlBnTUp5?=
 =?utf-8?B?S3d0M001bm9sbmJPcWQ3QU1HOTRIdnBQZVNpMmNkNktnR2M2SGlJcEZGUHh5?=
 =?utf-8?B?YnZSVUtJQ0lGOTlJK0ZJMC9sYmw4b2N1SXJzYk9MeVYxZ2hnTlg4dm1PNSsx?=
 =?utf-8?B?eWJxeDhFNGZ4bTE2dzcySzFXN0tKYnRpSmFYU2RKQUVpcHN6RHVLSUNtLyt3?=
 =?utf-8?B?dUcvM1ZlNzVVUEZUbmRlVVFZc3ExbnVQZEZodWRLdDhJTFFFUWFHcGJmSmxy?=
 =?utf-8?B?aC9seHY2cXZ1cWVJeTdSL0pRSms3eFRVWVRMUk1XWk9Bb1p3OGR4UTlGOFU5?=
 =?utf-8?B?cWYwYTZ4a1Y5MWtYMUQ2WWZ0Z1VQTEJWV3dCaWpNOGExeW1GSDV2U0tsdjdo?=
 =?utf-8?B?RkRYY2NnMmF1STBScEF2UTNjZ0tJOUtnREZqbzlRalM2TUIzcE9yY2pVZXVR?=
 =?utf-8?B?WjNFQzFIL3RYZzV6Nk9UakhwS0hxbExMekRncXcyOWlJZ3JnYnl0VW5ray9v?=
 =?utf-8?B?TkFRcktQY05uampRVkZySS9NYzBWOE1YeFR5RklSN0lITnBnSTkzclB4YUgv?=
 =?utf-8?B?THdrem5sNzBjYzdhcXhwUkZVQ3IzRHR3aGRjZDRBTjNHQnlUbDVNSDhZNmUv?=
 =?utf-8?B?cjRWd3ZyaVo2K0lRbG1yVTh5aEtDSXhwdnFuanhJNXNWSjVDRW9GVUZIMlZC?=
 =?utf-8?B?V0dlWmlLdEZINVpaTE5nY2xwdlZhSHJFTVNnQnBtcUVpYko1bWZaVWE3Wjhi?=
 =?utf-8?B?TmdwZWw5eXFsVWxSVDExZDVDbWIxUXVSK1ZTaUFHdUFtWFcvNWttcEwzU2Yr?=
 =?utf-8?B?aFF3VGdodHBCVE5XeHZpT3JUZEJoL1JBQUZiaGZtMjk5YmQ5ZTU0Y3BWeDlx?=
 =?utf-8?B?SmQwZUZGaFgwUEltZTRPM2NodnZKT0Y1MVk0a1VUaXFPa3pHTElKV040OHVp?=
 =?utf-8?B?SENFRjVkMldvS1BBOEUzWWtsVzQ3Uis4MlgxSnRwZzN4TWNQYlAxWS90QjUx?=
 =?utf-8?B?S1ZiTVRJTnJuSUlsaE9xNGFrdmJ6NjlYZTJrWXMwODBVODFqQmRROForUkdV?=
 =?utf-8?B?MW4wdnZzWlB5UjNOOUFkNk1reFJVbmtIN2ZmVHEzUHFiQzcwUmo1dlBSRThW?=
 =?utf-8?B?c0toMFYyTjY3Z3ZHODVjK2lpVEFpNUVmOTdLeHdCUHQwR0dpYUFRZlhHcTFx?=
 =?utf-8?B?SmhmMlQybUhrOTZucnZvTGtOazJWWWFvc3dvOVlGQzR0S0o0RCs0MWM1eDhh?=
 =?utf-8?B?R2djZ2x6ZHlCd1dSM0c2NVRlWC91RjFlbDQ4Ymd4YklVRlBTODVOQ1VlaHVu?=
 =?utf-8?B?NGdEL082bDl0UGlZeWkzRVNtMGp3M3d2Rjd5SWI0bHlWc3Zwc1grWEVkV0VG?=
 =?utf-8?B?R1JFSkJhZEV4ZWJJM2ZBVWFDUjN1U1lrUlVDWDRxSFE1MTNoSDFObytFRzJw?=
 =?utf-8?B?K2drbTNuRFEyMXQzOFNGcDN4UGMwSEg5NWFxdXg3UzNCY2lmR0RUbWdYRlEx?=
 =?utf-8?B?TUh5ZUMzWUluejJaR0RoQkVLbnN3OWpVdmdHQ052eUtVUzRobExZQkhSaDFJ?=
 =?utf-8?B?WitRa2FIc2gyK01RNm5pd3paeW9VYlNFQ2UySUVVQ0wvU2hPbEtUZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3be7acb1-806f-4dfa-02ce-08de8b15623b
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 08:55:09.4330
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: uhgQZynkrQ+yvgBE7EgF5Ex2A5Yl2nV+rav2doNFpJ+Qi/tHzToSFWIU5zrrpo+FKUrL962JnE6KbCrTr0zKjA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR03MB6130
X-purgate-ID: tlsNG-d25034/1774515314-F5CB2734-788A560B/0/0
X-purgate-type: clean
X-purgate-size: 2229

On Thu, Mar 26, 2026 at 09:18:14AM +0100, Jan Beulich wrote:
> On 25.03.2026 17:54, Roger Pau Monné wrote:
> > On Wed, Mar 25, 2026 at 05:26:01PM +0100, Roger Pau Monné wrote:
> >> On Wed, Mar 25, 2026 at 03:56:05PM +0100, Jan Beulich wrote:
> >>> On 25.03.2026 11:08, Roger Pau Monne wrote:
> >>>>  * Disallow XENMEM_decrease_reservation until the domain has finished
> >>>>    creation would fix the issue of pages being freed while pending scrub,
> >>>>    but it's not clear there might be other usages that would be problematic,
> >>>>    as get_page() on non-scrubbed pages would still return success.
> >>>
> >>> I agree this is of concern.
> >>>
> >>>> --- a/xen/common/memory.c
> >>>> +++ b/xen/common/memory.c
> >>>> @@ -388,6 +388,12 @@ static void populate_physmap(struct memop_args *a)
> >>>>                              goto out;
> >>>>                          }
> >>>>                      }
> >>>> +
> >>>> +                    if ( assign_page(page, a->extent_order, d, memflags) )
> >>>> +                    {
> >>>> +                        free_domheap_pages(page, a->extent_order);
> >>>
> >>> The pages don't have an owner set yet, so that function will go straight
> >>> to free_heap_pages(), needlessly passing "true" as last argument. Correct,
> >>> but (for large pages, which the stashing is about) highly inefficient.
> >>
> >> My bad, I was sure I was using the same freeing function as
> >> alloc_domheap_pages() on failure to assign, but I clearly wasn't.  I
> >> will switch to using free_heap_pages().
> > 
> > Coming back to this, I can export free_heap_pages(), but then the call
> > would also unconditionally have need_scrub == true, as the pages have
> > been allocated without scrubbing.
> 
> But the assign_page() call is here to have the scrubbing done ahead of
> it, so re-scrubbing after freeing shouldn't be necessary?

I think I've done what you suggested in patch 3 of the v2.  For the
call here, yes, we could entirely avoid the scrubbing.  For the other
free_domheap_pages() calls in stash_allocation() and
get_stashed_allocation() respectively we need to be more careful as
some pages will still be pending scrub.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 09:14:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 09:14:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263585.1555474 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5gnL-0000Xj-LG; Thu, 26 Mar 2026 09:14:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263585.1555474; Thu, 26 Mar 2026 09:14:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5gnL-0000Xc-IB; Thu, 26 Mar 2026 09:14:27 +0000
Received: by outflank-mailman (input) for mailman id 1263585;
 Thu, 26 Mar 2026 09:14:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5gnL-0000Wk-4U
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 09:14:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5gnK-0023XX-DG
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 10:14:26 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c4f8ef-5cb7-0a2a0a5109dd-0a2a4503871e-16
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 10:14:26 +0100
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c4f8f2-1947-0a2a45030019-d1558035c1bb-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 10:14:26 +0100
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-4838c15e3cbso5345765e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 02:14:26 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b91942f24sm7093488f8f.11.2026.03.26.02.14.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 02:14:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774516466; x=1775121266; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YaY5Mtc3vyE10CYVSwn6QWKaGGHtIStLX7Ld1MYNUSo=;
        b=aKUjdr+alkAI/qzBLt274Rqelcql5G3/nAQ0fLuyKM2hhlx+Tthvxt0apIYG5ZTIx4
         DmN0MdRHoyUpnNW5sBEuA8ZlkAeHqPyRFGoaqKnNJ4A0Klyld973gLP0kIzHaNJMriYc
         uUqxNUfOv/wvBZeuT0k3voY3aZwsnpKteAhNBdiEsrAMIfh+rDTn3g/yStfrm3gcSs4f
         aoRQLvBsk/wTmqknbXeSy/h994Ch3XLicOZMbn5P+yMtfU1oSFRtx1gEj0J1YUibuhoo
         Nqgib7MpTZopdeO5/OhjpGSMryB1cRn5yEkpsnnt9mbyykNL7vW3z8kfp4Wkujh7Cg/5
         28SQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774516466; x=1775121266;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YaY5Mtc3vyE10CYVSwn6QWKaGGHtIStLX7Ld1MYNUSo=;
        b=RoePH6jZEdjxESMTtI1WrVyxoiALrIb39ZIoesF6IamvRrIsmMGUvYcoEhT7Ny2aeM
         c2W1uLANj+lxCPjGp2nWMDX1QzAtBXKobE/Z9s5mD31x7e4HgiXBWG5GOqePAyXmfj2O
         dprVSyTokhP9NqQtVuLA5SzSaQEA6lRqajbmgTX04evH5wdB4jowuQOj+RnB/IqRHN8P
         j/eZkrjgWkfpPcBL6uCZqRjvMgFakEFwDb5UG5tY0455Gn069olE5BAbLCn6IM5IffaI
         T6c0aKIUAiPIXot+i3tFQW4xMyw27JbL3OomkVpD3Fe9tdew6Q8qDO0IFR4Er0zzNQje
         aDyA==
X-Forwarded-Encrypted: i=1; AJvYcCU1BNM9FNJHR/fmiX81fJnEdF34Rck+S9guB1a5y6+6aatFtQZ579WJZ7lYwtg6+Z5hPkwmEpTxgyY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxdKzwj0dbrwXBPeLuN+gQ4Ecc4I1Tpyv+NioMxcylNyznZC8Ju
	+46ruDcOxA+zNPTbsANLl1K77S4vcXyWaCmKl2+yn/V81vtMKNm0RYmlKGHdUVJ07Q==
X-Gm-Gg: ATEYQzwYuvuNmPYCwThzOPN4H2TsHpg8PepqSTzE6eD+87PsJl6Mp3xJGamlKZ8+KFU
	sN1lj9aIIop8X7t8ZP+NEx4/cooGYhxWFfDSh3mGOX03ZYbnCII6lXl14NBaJpaXRG9CFDXoPta
	25w7nudXT3LjnEJJhLl4JzoLxdtMfQH8tOjqmV+hQ/0C7rZOqfBs0y5+hEDdu2Oxz4ov1+oHDpJ
	Fawx9iSLyjaKJPD+VwHxU7DEWQCD4fFjiKZzorY8qVUyFXWceer6g40d3M4/y5o0xrTaeA0MXyH
	t1ZdqEfMFoA45yKpgfrik6ozIUjJ0dp1vkLPnOSzpz4gZO8hYlluIWL4x7817mWj9FX+h2f7dAg
	RMYtZAoLEbyK7eGkbV5GYKJfsjpBTupfN8eIzIWo3nx15sIVxmTPxQrRZCUkTnL7oQSb99NOFbu
	EW03ueOiXp05TjVqzJf960NmU7794KI28b+yC8FBG/x/b342rKtSVsrd18h0vBpSY5sUcsJRV4J
	QRE7RzUmHLznig=
X-Received: by 2002:a05:600c:8b6e:b0:485:3949:e5c6 with SMTP id 5b1f17b1804b1-48715fbfe01mr92879225e9.3.1774516465526;
        Thu, 26 Mar 2026 02:14:25 -0700 (PDT)
Message-ID: <059588cd-d73e-40a1-98b4-65be01957d41@suse.com>
Date: Thu, 26 Mar 2026 10:14:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/pv: Provide better SYSCALL backwards
 compatibility in FRED mode
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260325170208.1115832-1-andrew.cooper3@citrix.com>
 <20260325170208.1115832-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: <20260325170208.1115832-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1774516466-4A05C72C-5CB79164/0/0
X-purgate-type: clean
X-purgate-size: 2227

On 25.03.2026 18:02, Andrew Cooper wrote:
> In FRED mode, the SYSCALL instruction does not modify %rcx/%r11.  Software
> using SYSCALL spills %rcx/%r11 around the invocation, which is why FRED not
> doing this goes largely unnoticed.
> 
> However, consider the following migration scenario:
> 
>  * VM suspends.  Hypercall, so SYSCALL, %rcx/%r11 left unmodified
>  * VM moves to a non-FRED system
>  * Xen resumes the VM with a real SYSRET instruction
> 
> Instead of resuming at the instruction following the SYSCALL instruction, the
> VM is resumed at whatever dead value was in %rcx.

Would it? In restore_all_guest we load %r11 and %rcx from the stack
frame's EFLAGS and RIP fields. If we didn't, various other things wouldn't
work either.

> --- a/xen/arch/x86/traps.c
> +++ b/xen/arch/x86/traps.c
> @@ -2405,6 +2405,8 @@ void asmlinkage entry_from_pv(struct cpu_user_regs *regs)
>  
>              regs->ssx = l ? FLAT_KERNEL_SS   : FLAT_USER_SS32;
>              regs->csx = l ? FLAT_KERNEL_CS64 : FLAT_USER_CS32;
> +            regs->rcx = regs->rip;
> +            regs->r11 = regs->rflags;

Don't you also need to set TRAP_syscall here, for the new code in
eretu_exit_to_guest to actually make a difference? (There actually is
a paragraph about this in the comment out of context above, which then
may also want adjusting.)

Further a question as to limiting overhead: Doing this on every SYSCALL
entry ...

> @@ -26,7 +27,16 @@ FUNC(entry_FRED_R3, 4096)
>  END(entry_FRED_R3)
>  
>  FUNC(eretu_exit_to_guest)
> -        POP_GPRS
> +        /*
> +         * PV guests aren't aware of FRED.  If Xen in IDT mode would have used
> +         * a SYSRET instruction, preserve the legacy behaviour for %rcx/%r11
> +         */
> +        testb   $TRAP_syscall >> 8, UREGS_entry_vector + 1(%rsp)
> +
> +        POP_GPRS /* Preserves flags */
> +
> +        cmovnz  EFRAME_rip(%rsp), %rcx
> +        cmovnz  EFRAME_eflags(%rsp), %r11

... and every exit-to-guest isn't very nice when concern is about just the
specific case of migrating FRED -> non-FRED. Couldn't we instead make the
adjustment when generating the save record for the register state of the
vCPU?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 10:00:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 10:00:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263610.1555484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5hVT-0006Zc-12; Thu, 26 Mar 2026 10:00:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263610.1555484; Thu, 26 Mar 2026 10:00:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5hVS-0006Yt-Sm; Thu, 26 Mar 2026 10:00:02 +0000
Received: by outflank-mailman (input) for mailman id 1263610;
 Thu, 26 Mar 2026 10:00:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w5hVR-0006Iq-Oy
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 10:00:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5hVR-00HX76-2D
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 11:00:01 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c503a0-e002-0a2a0a5209dd-0a2a4504bd20-4
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 11:00:00 +0100
Received: from [52.101.201.22]
 (helo=PH7PR06CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c5039f-c823-0a2a45040019-3465c916825a-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 11:00:00 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH0PR03MB6955.namprd03.prod.outlook.com (2603:10b6:510:172::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.22; Thu, 26 Mar
 2026 09:59:55 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.022; Thu, 26 Mar 2026
 09:59:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Go4IpTjZRB2iIRE9BgIZ7vcvNAwqvfPZNbOCfkq+9wPMvcFsCUXXsR2jB1fdL8DrMzUUMaSrrPQ3ouR/kNQyRQ5adp+YEXyI6oJCR6N7l+CGwhWkS8Css8HyGMc76kz6cFSyZx5zD/ebyQkEiYjlN0OdfpHcP5FM/UgYTKQtbF5iwW8NSE9k7TVCf8mLDxy5RofPlwquA4X8TaP5thzI8d/AB86+/egMOJsvf5wf8gHQxY+4dj+7KYmPCL7SGAiHFPSOMXnyTLz1cAZURmMQKC5NCz38lUV+qnOrmJNiwJL9PNnYk2JaPru7AKceJHbsVA8bYC0WDTo6kQ0IN3G24A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2pQcyiS2okaqviuBzxQ6e8ze4ASPicCKknHoycmWre4=;
 b=R3Q4Hh9VutEjauyx0q9eks5lQhMq+sOUpRIdl41GyIuDlFJjI/kAYyxozmnBfkKMJabRec4otRXOZCNjY6P7NjfySeSNcqMW5tno6RPXytjZwlhtSRCr57gTd/WZJ/iQWKI2CtOvSXcvx6JOaKvL0v0ZpV56eUOcuzcglgHZ07EsAQfgSZ/RdkLfwcMAVrF5djkjcn5MSnvI8k/eDH6SoTD3Mpo9KzEVIeiYoNBnPYPF484Vxagk3Hl7ovFEWGF5JJRoxqfmpPXSAnmR03+HD/X68Ogq3NVfSIFFwvENcfYGMKTFBjSF4H9lG4lbLm8YVPHKbgxaIqMM3+Vm6RRmAw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2pQcyiS2okaqviuBzxQ6e8ze4ASPicCKknHoycmWre4=;
 b=QI4YV4io58A/ohZ2ylOfr7xk07txBMtt4TI2bnGgx0TQrUEceDDdDKYLfMvSMWaLUggLQk87IWCDpF4zLU1U4mmIl2sqn4VSnYLP0TMVebnv9mJoTH1bT21Fhw1sQ6cDySRmDbAGkMB4jaCvar+t2P84v7LJ4/jm7xlbtM8luIs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 26 Mar 2026 10:59:52 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Frediano Ziglio <freddy77@gmail.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] xen/x86: Check supported features even for PHV dom0
Message-ID: <acUDmOqvggJfmhHu@macbook.local>
References: <CAHt6W4f0iSN5vqbPHTCv6dLdoxUFXivoPX8BYV+gurxxv9q66Q@mail.gmail.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <CAHt6W4f0iSN5vqbPHTCv6dLdoxUFXivoPX8BYV+gurxxv9q66Q@mail.gmail.com>
X-ClientProxiedBy: MA3P292CA0040.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:46::12) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|PH0PR03MB6955:EE_
X-MS-Office365-Filtering-Correlation-Id: ad68f575-f96b-4a99-531c-08de8b1e6e76
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	amwsoERPjosawLvknjukpe/QW+pHeA0elzEqHcdNJVemaC/5cAzsGBPmkc4R/aMqGSJJOdFf1pmQXadwKaxviMeaOxPArXCbCC4nwMtuUBO5OhanyBCEwszOnZbYs/5EywLoaVdaz0ZlOiZaZE1pO1QXTdix7/5lhZCT6vuO3tKxCoij3fttygtaYCalPubKPCnOBr04OgxdqaMM8/mVV1qDcCmgb/26KZ9qxvRIAmURjJL8eiF1qI5qTYeClX7eoJPcdRsvmjjjAaiwYpxoLe5ooDGopQ0BakjcXq6SlX1J5Ov00kvBrkV0U/93AriGiAM8EAkTrg6zMXzMfL3+zN7qaxrsqSow1ID+nwvB3bHaRw/TZhBKdi5gn6Gsyg2qtqJ66A2au68dVdb3RuhDPw7JRutuK6ALuMslrouUK2vrzibdmiGMJ7l6MjPr487iZH6VBzRduNJKqTMMCZg1m3lFKW/iwm5MP2GsPws+bwNuRksjrAxGHrTL46JJiCAhS01dBKkRtitUzCKqiyZm7014ukITtvZ2+0WexVBYC+tvZlNREwzBgDu4GoXzy0DMMqGFh5W91nGyXUZsVQWEcvAXkBsopLrQ44HdbQFLs9/aABuYu0AUgf8ZLRLeYYfYbmYtXrpkoe84cB+fuwT1lXlxLoTEdYsw42OeH1HTUXKvPjD0chnrVn3tjUk1CggRjO9OfQbYslvSn3SZ2OsOGfOajXgsRoT594A+mSnJWxI=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TndUbmlQTjVwTCs1UmI1dWNHZ2txZW1sRi81eDZLNFU3TzVPbFB5R2xGMjNy?=
 =?utf-8?B?bytZL2F5RjhqMFUrV3pDK0JqeWNobU82Q0FpSmtBYWVlZlV0dWkrNXN0Wi9E?=
 =?utf-8?B?VGY0T2tmMGZMS2tmcjNoTkFjYUFMakZyb1EvSEo1OU40UkxxemNqL0tKMjIw?=
 =?utf-8?B?RmhVY0IyUW44cHJ2OEc2bnRJODBkTjI1ZnBjZlEzSDY4VmI2SkZnaHVhTW5m?=
 =?utf-8?B?VU9RcWFqbTNpZGtpSmRFV2xsU2NzQ2JoV2dIYkg5WkdJbm9CWkVVZVZ0M2JN?=
 =?utf-8?B?T052MHBNQWFLTytTdDkyWEpKT3VZZCthRzQyNUcyQURkTFVQVXBFRmdSRGYz?=
 =?utf-8?B?VjR1d2xrZWhWcVZ2ZGxEWnhKZ09DblNNbHZSQ05sUEc4aWRaWHN3L3JBdElR?=
 =?utf-8?B?NENuMzRWd1JrU1MyQllnMFZxek5sM3B1Qzl6SHU2TVBHUDQ0MUEwcTlPVDV0?=
 =?utf-8?B?aHo0NGhsMnlsckZvZ3F0WnRqMDVkTkZMZ01yK0NHSkk1ZGpPV0hIQUVmUVFh?=
 =?utf-8?B?UnBmL2k0NE13TjFlSHlVOGtLak1UOEVVSUN2TGVmMUhYOGE5TkFPRmtjbUhi?=
 =?utf-8?B?SGlUcWZYcDVDQVYzZC9ESk0xNnpxNEI4RmpPRzhOTFlWR1B0alZISk43MGQx?=
 =?utf-8?B?dVJZcjdoYkVZTU9Hdk91R0ViQ05wM0l1UkxjUTZRdGxxT2x0eXNiS0RQNllG?=
 =?utf-8?B?QUp4YmlTMTg0VTRmTHlDcHBscllBQmIxRUxFZ3RLREYwVWx2SkF5Q1kwekp4?=
 =?utf-8?B?anc4aWZlN3BiK0hsZ2ZQUHNpSVdZeXlkalRCZHVDMHV2RFExMVFkUnB2S1U2?=
 =?utf-8?B?bzVzSTkvZVd5UE51SEV6Zjdaenh6Q3pPL05GTHl1dnBVRjIvZ2hNU2E4NHU5?=
 =?utf-8?B?QzlXTnNYaHppTnkzZHVqMkhrWS9kTFNla2hhRzJMNUFoQVRtdGI3UXRRZ0hJ?=
 =?utf-8?B?VDR1dEtKdU1qTXlyUmpGcnI5REdvSHNUeVlEVVdrOHhYQ1dMcnZsZ2htQWZB?=
 =?utf-8?B?bldWRUNzOTZqT2dMU0lPNnpiM0prV0JYcURIeC9CVWZIWk16K0VTeFZ1Ryty?=
 =?utf-8?B?UEJWWkFPaG5ibmxSTUFjSkJZTE1od1Z1UU5QUnprd2UzVGNvUU8rWHFKMDVq?=
 =?utf-8?B?THBtT1VjeFlXUjFQRHk1dlp4TEdwSWpEekRGWldURHA0TnNJZ2tRTHdQYWQv?=
 =?utf-8?B?RzE3K29sQ3FvWHBVWnJTelg3U3FpUXZLL1dsZVpwcWxpVXlhc0h6YkZ3RFlH?=
 =?utf-8?B?VDgvSVRybTc4a2gxWHYzRkR5N01yQmJGTHhpR1BUd2VxS1RYN1RuR3dwWkhO?=
 =?utf-8?B?RHJFbVpWaGl5V3FhNTg1UzViUUJpWmZBWW8yM082WnhWVHRQekx2d0FXM0tX?=
 =?utf-8?B?SUV1WG1YWjR6OUtiQ3d2Ymc2TUI2dDlGNHVIRzY2Tlk4Ukh4Qk9uZk9UeDhT?=
 =?utf-8?B?d2IyNmhsKzBtdW4vRnZvaGcrS0Q1VElRMndDTEZBNklYRlNyQ0N4NDdyeHkv?=
 =?utf-8?B?KzVZUnRKdUpyV2wwd3ZGcm1Vek1LNmQxS3d6N1dTVFgwUisrRThkTzZGRkpI?=
 =?utf-8?B?ZStLb1c4ZjRqaXFHMWpHN2hTSThjOXN3MzhMbkplc083UklwTHYvQXl6cWRh?=
 =?utf-8?B?VHI1QTM4OEZ2M0FHR013OW9MdVNiOTlQM2Fqc1pzNzVJc3RPY2IvUHhBRzBX?=
 =?utf-8?B?dU5LNW0yWG9HdlpTYVE1b05wMFVZQVFHVTNVR2tnam5DVzk5RHh4VTAvbkk4?=
 =?utf-8?B?eXFjRGM2MllhcVN1YTczUjIvWHo2bnZUbU9XM3YzZFpQTGpFVWpBMmkvNjdB?=
 =?utf-8?B?RzRXY3NZRnZ6eDRiQXk0b21NdXU3OWhseFZCSnNiRmpvaEMreXJiNHZaU0pj?=
 =?utf-8?B?d0V6ME1jYytPMVRsMVNRY3kvZEV0WHowN0o1TEc5RmNIV3g5eG5hSVczNjJ4?=
 =?utf-8?B?TjJXRkRFcHQ5RzJncWdINXZPdWVZdTNvN3dzdUxlbVROa0UrcmdHdmNSV2pE?=
 =?utf-8?B?OUhzQ3ZKUTJEZmxzcUM3TkpIRGN1Z2JqVnlaMXBNdDhRcURaSndwZzkrZjNx?=
 =?utf-8?B?empZbFNSSHFDZFMxWVVVUVBlc0tUMzdQOGowMXFuRlhEb2RUbzRhZUUvL3hj?=
 =?utf-8?B?L1pSOTM1cHVHbjFvR3JtWGt3RDAzYkJiYTNvNUxKRVkxWDZMRHdJMU5BcXdQ?=
 =?utf-8?B?NWxxdlZNc3hDVHh0eExNWXVwa0M1YmhIWVphWTRWT0U2VENETkE0NXduMjJm?=
 =?utf-8?B?ZVA1a0puMktnb3hMVXZraktkR1pXQUpVOGdVaGtCRW9UOHpLVGd0Z2tHRGdF?=
 =?utf-8?B?S05RVENGZFpyU24zZVd2eThCblV2eDNNMHEzeCtkK0V3c2h5MzJKUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ad68f575-f96b-4a99-531c-08de8b1e6e76
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 09:59:55.3877
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 0dmOJSmz4QwUsmPrI383+ebvvP0o1rFgy3/wVAOrqfcY0WUpHPw/hjp8OeKbsxUWuj/QCsSp/fTxfVljjQC25w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6955
X-purgate-ID: tlsNG-ebf023/1774519200-B8E889D1-68A58FEC/0/0
X-purgate-type: clean
X-purgate-size: 3927

Typo on the subject s/PHV/PVH/.

On Wed, Mar 25, 2026 at 03:55:28PM +0000, Frediano Ziglio wrote:
> The supported features ELF note was tested only if the dom0 was
> PV. Factor out a function to check ELF notes and reuse it even
> for PVH.
> 
> Signed-off-by: Frediano Ziglio <frediano.ziglio@citrix.com>
> ---
>  xen/arch/x86/dom0_build.c             | 16 ++++++++++++++++
>  xen/arch/x86/hvm/dom0_build.c         |  3 +++
>  xen/arch/x86/include/asm/dom0_build.h |  2 ++
>  xen/arch/x86/pv/dom0_build.c          | 10 ++--------
>  4 files changed, 23 insertions(+), 8 deletions(-)
> 
> diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
> index 864dd9e53e..c6bb2f8067 100644
> --- a/xen/arch/x86/dom0_build.c
> +++ b/xen/arch/x86/dom0_build.c
> @@ -321,6 +321,22 @@ unsigned long __init dom0_paging_pages(const
> struct domain *d,
>  }
> 
> 
> +int __init dom0_check_parms(
> +    const struct elf_dom_parms *parms, bool is_pv_shim)
> +{
> +    if ( parms->elf_notes[XEN_ELFNOTE_SUPPORTED_FEATURES].type !=
> XEN_ENT_NONE )

The patch seems to be mangled here?

And the line is too long otherwise.  You might want to consider
returning early here, to reduce the indentation of the following code
block.

> +    {
> +        if ( !is_pv_shim && !test_bit(XENFEAT_dom0, parms->f_supported) )

I think you want to pass the domain being built to this function, so
you can do a check like:

if ( is_hardware_domain(d) && !test_bit(XENFEAT_dom0, parms->f_supported) )
{
    printk(...

That way you don't need to explicitly check for pv-shim mode, and
would more naturally work with things like
Hyperlaunch/dom0less/late-hwdom.

> +        {
> +            printk("Kernel does not support Dom0 operation\n");
> +            return -EINVAL;
> +        }
> +    }
> +
> +    return 0;
> +}
> +
> +
>  /*
>   * If allocation isn't specified, reserve 1/16th of available memory for
>   * things like DMA buffers. This reservation is clamped to a maximum of 128MB.
> diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
> index d69a83b089..ca96f32acd 100644
> --- a/xen/arch/x86/hvm/dom0_build.c
> +++ b/xen/arch/x86/hvm/dom0_build.c
> @@ -699,6 +699,9 @@ static int __init pvh_load_kernel(
>      if ( !check_and_adjust_load_address(d, &elf, &parms) )
>          return -ENOSPC;
> 
> +    if ( (rc = dom0_check_parms(&parms, false)) != 0 )
> +        return rc;
> +
>      elf_set_vcpu(&elf, v);
>      rc = elf_load_binary(&elf);
>      if ( rc < 0 )
> diff --git a/xen/arch/x86/include/asm/dom0_build.h
> b/xen/arch/x86/include/asm/dom0_build.h
> index ff021c24af..a322bf455c 100644
> --- a/xen/arch/x86/include/asm/dom0_build.h
> +++ b/xen/arch/x86/include/asm/dom0_build.h
> @@ -8,6 +8,8 @@
> 
>  extern unsigned int dom0_memflags;
> 
> +int dom0_check_parms(const struct elf_dom_parms *parms,
> +                     bool is_pv_shim);
>  unsigned long dom0_compute_nr_pages(struct domain *d,
>                                      struct elf_dom_parms *parms,
>                                      unsigned long initrd_len);
> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
> index 075a3646c2..9d0310ad91 100644
> --- a/xen/arch/x86/pv/dom0_build.c
> +++ b/xen/arch/x86/pv/dom0_build.c
> @@ -494,14 +494,8 @@ static int __init dom0_construct(const struct
> boot_domain *bd)
>          return -EINVAL;
>      }
> 
> -    if ( parms.elf_notes[XEN_ELFNOTE_SUPPORTED_FEATURES].type != XEN_ENT_NONE )
> -    {
> -        if ( !pv_shim && !test_bit(XENFEAT_dom0, parms.f_supported) )
> -        {
> -            printk("Kernel does not support Dom0 operation\n");
> -            return -EINVAL;
> -        }
> -    }
> +    if ( (rc = dom0_check_parms(&parms, pv_shim)) != 0 )

pv_shim is a global variable, you don't need to pass it around.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 10:00:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 10:00:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263615.1555491 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5hVs-0007gJ-CM; Thu, 26 Mar 2026 10:00:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263615.1555491; Thu, 26 Mar 2026 10: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 1w5hVs-0007gC-9F; Thu, 26 Mar 2026 10:00:28 +0000
Received: by outflank-mailman (input) for mailman id 1263615;
 Thu, 26 Mar 2026 10:00:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w5hVq-0007fz-BP
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 10:00:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5hVp-00HXcd-N5
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 11:00:25 +0100
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c503b5-5cb7-0a2a0a5109dd-0a2a4509e056-22
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 11:00:25 +0100
Received: from [103.168.172.144] (helo=fout-a1-smtp.messagingengine.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c503b8-e484-0a2a45090019-67a8ac90df93-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 11:00:25 +0100
Received: from phl-compute-12.internal (phl-compute-12.internal [10.202.2.52])
 by mailfout.phl.internal (Postfix) with ESMTP id 3C58CEC021F;
 Thu, 26 Mar 2026 06:00:24 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Thu, 26 Mar 2026 06:00:24 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 26 Mar 2026 06:00:22 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm1 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1774519224;
	 x=1774605624; bh=G+BqfjFs7RUwpGnKgULXJ4doTq7FLor4WHwBKTxbRiM=; b=
	dVsQm/ZmE047HeCY2PFAJ2HggCm+e1upz0C+OvwIuQosrqmhAenx/caKbzsyOSrH
	/iLEuzsrx/szXmHkpl7gRTMt7zOHM3qjmdcul5jbs5eNoFLITlCucJAHqFx25YPT
	AzHffUOaaC9hEUlXAkA+9PZ8eAePZRNdEJm28u2+DOONlvX+zHg5I+RcGp9sskYK
	X21P64MXZX1uwyaXZieSuFiu5wS+gQpmQ5wAjEtBDs8NFwtZ9kCr1Ag1fEUjtBF/
	VtnxbnaXYpSnNqaXawK/1SWyvvCDij41aYJL5EK1ESqkjrru422mMl1UlXI2NQu3
	5uLMVyoRc/U7bBsoy8EdxA==
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=
	1774519224; x=1774605624; bh=G+BqfjFs7RUwpGnKgULXJ4doTq7FLor4WHw
	BKTxbRiM=; b=uI8MHRU3+8oWU4E+AUKsfxbhOEEQwdZJP05Yo+e0IOF5vIr3ogv
	978yCaYMnpQzcaHR27qEzJbKYo99Mvox0k+GZPorefeagW2mtAi6i7OJrVC/Viu8
	k79BvJ4mUYOxXI4+mMxNRdK+eEyduDRCZCEatBnB+d822PXH2tmjr3X+PUhSvLP4
	2IlQIcpf1UY/Ne0LxoDgGvYgkzE+TeZIDk/r0V3CFCtijVCQrbKNRNt+he+qlqYO
	3n3/hjmbJMPyMbl0zEfzINp//xq1fM7aqL0cFjMGbQo9Z27LglgyX6KOxxYnAw56
	zu6PtsJRY1Je0roEdjXWjXI8X+0X2Vbt/uQ==
X-ME-Sender: <xms:twPFaRNjx_006EU-3tRw51XGLRaCpW48VoYuyL0hiZ3HuDIIZEmFVQ>
    <xme:twPFaWNFOv-MtwgNVDjT1enOYHfPudYaJXAPcUmeEnH8QN2YjO4HoyvysqXn-Iv-E
    r4KuPc5bWMZirSttCpbwZgv_znncTBHnysIoU1ugLHA_EWQEbw>
X-ME-Received: <xmr:twPFaShZrsJbyAeSHTFfjYHppgd7gDvf2TPCPuEh0rMP4jc8030R3WlJp_tjP88uZiyVsjW0X_11BwpdbSxC1yGL5U4m2CKgY9c>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdefvdejtdekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepjedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtgho
    mhdprhgtphhtthhopehsohhumhihrghjhihothhishgrrhhkrghrvdefsehgmhgrihhlrd
    gtohhmpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtgho
    mhdprhgtphhtthhopeguphhsmhhithhhsegrphgvrhhtuhhsshholhhuthhiohhnshdrtg
    homhdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphht
    thhopehsrghrkhgrrhhsohhumhihrghjhihothhivdefsehgmhgrihhlrdgtohhmpdhrtg
    hpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhg
X-ME-Proxy: <xmx:uAPFaTtU5fdu9u01yrV6M0NzGK_rSZNmkaaF9nSEzxT2KSxbLAM0hw>
    <xmx:uAPFaYSzaq7qvyuTWu12lzK2Abn61f0mztCbZeFcWA4WkBVrRR249Q>
    <xmx:uAPFaf1mtGhFrcNA0tSfOPeZjRsas69nTq_7Z2CCneBlkziNIdNsqw>
    <xmx:uAPFaVuDbXSdDQ1s9pYw3CNSpambmlmEDf4oDZ8URqcGcifFFqDUYA>
    <xmx:uAPFafdL7qm7vj99_KZSfiKhZK1zeVc4Av80N90McKRG0etvrizo983K>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 26 Mar 2026 11:00:21 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	sarkarsoumyajyoti23@gmail.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v5 2/3] x86/acpi: Integrate BGRT preservation with status
 reporting
Message-ID: <acUDtSXbv0-YLQ7g@mail-itl>
References: <20260324123312.11076-1-soumyajyotisarkar23@gmail.com>
 <20260324123312.11076-3-soumyajyotisarkar23@gmail.com>
 <751e1d3e-d95a-4129-8baa-450a53d15efa@suse.com>
 <acQADhcNzkVBm3C3@mail-itl>
 <5e121a98-fcd1-4d20-aa6c-a02af7f7eef4@suse.com>
 <acQF5Kd4kZzo3BN6@mail-itl>
 <11c0a822-afc7-4e3d-b6f5-ef8e32bd2f0f@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="dx68d3efQTV8AtnN"
Content-Disposition: inline
In-Reply-To: <11c0a822-afc7-4e3d-b6f5-ef8e32bd2f0f@suse.com>
X-purgate-ID: tlsNG-bad1c0/1774519225-5BEA2A73-C5489B02/0/0
X-purgate-type: clean
X-purgate-size: 5411


--dx68d3efQTV8AtnN
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 26 Mar 2026 11:00:21 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Soumyajyotii Ssarkar <soumyajyotisarkar23@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	sarkarsoumyajyoti23@gmail.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v5 2/3] x86/acpi: Integrate BGRT preservation with status
 reporting

On Thu, Mar 26, 2026 at 09:45:43AM +0100, Jan Beulich wrote:
> On 25.03.2026 16:57, Marek Marczykowski-G=C3=B3recki wrote:
> > On Wed, Mar 25, 2026 at 04:44:15PM +0100, Jan Beulich wrote:
> >> On 25.03.2026 16:32, Marek Marczykowski-G=C3=B3recki wrote:
> >>> On Wed, Mar 25, 2026 at 04:16:25PM +0100, Jan Beulich wrote:
> >>>> On 24.03.2026 13:33, Soumyajyotii Ssarkar wrote:
> >>>>> @@ -327,6 +328,11 @@ static int __init cf_check acpi_parse_hpet(str=
uct acpi_table_header *table)
> >>>>>  	return 0;
> >>>>>  }
> >>>>>
> >>>>> +/*
> >>>>> + * Invalidate BGRT if image is in conventional RAM (preservation f=
ailed).
> >>>>> + * If preservation succeeded, image is in EfiACPIReclaimMemory, wh=
ich
> >>>>> + * won't match RAM_TYPE_CONVENTIONAL check, so table remains valid.
> >>>>> + */
> >>>>>  static int __init cf_check acpi_invalidate_bgrt(struct acpi_table_=
header *table)
> >>>>>  {
> >>>>>  	struct acpi_table_bgrt *bgrt_tbl =3D
> >>>>> @@ -754,5 +760,7 @@ int __init acpi_boot_init(void)
> >>>>>
> >>>>>  	acpi_table_parse(ACPI_SIG_BGRT, acpi_invalidate_bgrt);
> >>>>>
> >>>>> +	efi_bgrt_status_info();
> >>>>> +
> >>>>>  	return 0;
> >>>>>  }
> >>>>
> >>>> Does this really need doing from here? If you called it ...
> >>>>
> >>>>> --- a/xen/common/efi/boot.c
> >>>>> +++ b/xen/common/efi/boot.c
> >>>>> @@ -1911,6 +1911,22 @@ static bool __init cf_check rt_range_valid(u=
nsigned long smfn, unsigned long emf
> >>>>>      return true;
> >>>>>  }
> >>>>>
> >>>>> +void __init efi_bgrt_status_info(void)
> >>>>> +{
> >>>>> +    if ( !efi_enabled(EFI_BOOT) )
> >>>>> +        return;
> >>>>> +
> >>>>> +    if ( bgrt_info.preserved )
> >>>>> +    {
> >>>>> +        printk(XENLOG_INFO "EFI: BGRT image preserved: %lu KB\n",
> >>>>> +               bgrt_info.size / 1024);
> >>>>> +        printk(XENLOG_INFO "EFI: BGRT relocated from %p to %p\n",
> >>>>> +               bgrt_info.old_addr, bgrt_info.new_addr);
> >>>>> +    }
> >>>>> +    else if ( bgrt_info.failure_reason[0] )
> >>>>> +        printk(XENLOG_WARNING "EFI: BGRT preservation failed: %s\n=
",
> >>>>> +               bgrt_info.failure_reason);
> >>>>> +}
> >>>>>
> >>>>>  void __init efi_init_memory(void)
> >>>>>  {
> >>>>
> >>>> ... out of this function, it could be static and no stub (misplaced =
in
> >>>> the earlier patch) would be needed either.
> >>>
> >>> It was here before, and I complained about it, because it printed the
> >>> invalidation reason way later than the actual invalidation.
> >>
> >> Sadly now I complain about this call out of acpi_boot_init(). What's w=
rong
> >> with logging the BGRT stuff together with the memory map?
> >=20
> > If you try to diagnose what went wrong with BGRT, that's not very
> > intuitive to find - for example on my system it's 32 messages later.
>=20
> Simply grep the log for BGRT?
>=20
> > It's even worse if system happens to crash between those two points.
>=20
> Hmm, perhaps.
>=20
> > IMO it makes sense to log reason for BGRT invalidation together with
> > the actual invalidation (message). I would be okay with moving it before
> > the actual invalidation, but I don't think there is a place like this in
> > xen/common/efi/boot.c (at a point where normal printk can be used alrea=
dy).
>=20
> I guess what you really mean is printk() output actually going out (i.e.
> not just to the ring buffer).
>=20
> While still requiring the function to be extern (and there to be a stub),
> how about adding the call much earlier in __start_xen, in here:
>=20
>     else if ( efi_enabled(EFI_BOOT) )
>         memmap_type =3D "EFI";
>=20
> ? Or alternatively anywhere between setting system_state to SYS_STATE_boot
> and the call to acpi_boot_init()? Or re-using the other EFI_BOOT check th=
at
> we have in __start_xen()?

Yes, either of those would be okay for me. I just want to avoid
potentially loosing important piece of information that Xen already has
at the point of invalidating BGRT.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmnFA7UACgkQ24/THMrX
1yy/dAf/UKsDeaJ0wWwIYWflDcH97jvCoWbPaEgUsDgMdxN3xVMR1DUR57JJlllV
TcOG9Av9DBpmgVaZTifd7opmRBQOwdw4hCaD0INkeyTgVZmh/VJa0IKBtoqc9ksO
zp3BEdumZ1Ux2zuiPLeQZvWhWdRYD9YAV3BfZZl2yCFp3RpU8iJTuDPR8m3SAF29
T+qlyQmc2VnSpuwOYE/i2dCgIsyy4E146Vgz9+CLpw/SPLbLfceBI/aKYQMUs9v9
DQI/IdjkhdPozEplvdF4hUd91ijqgZuH3eai/5QBT6yfqzJ1oD/iCmmb75Aypcuj
5jLj28139jDzV5LvM6R1RfCHVg/WrQ==
=s2dV
-----END PGP SIGNATURE-----

--dx68d3efQTV8AtnN--


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 10:15:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 10:15:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263603.1555501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5hk3-0001Hm-JM; Thu, 26 Mar 2026 10:15:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263603.1555501; Thu, 26 Mar 2026 10:15:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5hk3-0001Hf-FS; Thu, 26 Mar 2026 10:15:07 +0000
Received: by outflank-mailman (input) for mailman id 1263603;
 Thu, 26 Mar 2026 09:43:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vneethv@linux.ibm.com>) id 1w5hFt-0004rY-Op
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 09:43:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5hFt-0082OU-3H
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 10:43:57 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vneethv@linux.ibm.com>)
 id 69c4ffd0-2eae-0a2a0a5409dd-0a2a4504cef4-36
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 10:43:57 +0100
Received: from [148.163.156.1] (helo=mx0a-001b2d01.pphosted.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <vneethv@linux.ibm.com>)
 id 69c4ffdb-c823-0a2a45040019-94a39c01cc36-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 10:43:56 +0100
Received: from pps.filterd (m0360083.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62Q59Wqg1479684; Thu, 26 Mar 2026 09:43:19 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 4d1kxqmkhe-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 26 Mar 2026 09:43:18 +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 62Q70AQB026695;
 Thu, 26 Mar 2026 09:43:16 GMT
Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229])
 by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4d275m292g-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 26 Mar 2026 09:43:16 +0000
Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com
 [10.20.54.105])
 by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 62Q9hCts51970526
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 26 Mar 2026 09:43:12 GMT
Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 59BB320049;
 Thu, 26 Mar 2026 09:43:12 +0000 (GMT)
Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id B3A6C20040;
 Thu, 26 Mar 2026 09:43:11 +0000 (GMT)
Received: from [9.52.196.90] (unknown [9.52.196.90])
 by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Thu, 26 Mar 2026 09:43:11 +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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=pp1 header.d=ibm.com header.i="@ibm.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=pp1; bh=GQ61ku
	hdrfqFul0L2FFBXSHRCVEg6otwfwoaX1TK3/E=; b=avrMFIfOdugi4S/4hndTN+
	CLl/8HIMGz5Y/Oum5eOm3OxGCkgJK5eRyIT5itUmQlmpPCJa5rd7cEhD70kd89Vx
	sIkj70/bP26p1m99XZIqnezWszE2fOzkNLz1UKG/M+ZIpYxEchD1eZtuvPGMylcs
	oeHmw2eVFKJjsgFq0pWIzHhgjEoKzXSvm+Q3IfGfuYz/X6Rtw3ddqbg74qyboisW
	7VhJFSlPA/npMVSA1RxAqkj0qgcs/ITsZmLD/UBiIHDv6wpIicKFko9HHa1mxW7e
	FX0uQjKv616F5kTpsv6tLKCb9nFCwCPKBw3DJM+rLF0pILZ/li0SeQnt8POSnByw
	==
Message-ID: <e232e227-b022-40b7-ae9b-085398172aaa@linux.ibm.com>
Date: Thu, 26 Mar 2026 10:43:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/12] s390/cio: use generic driver_override
 infrastructure
To: Danilo Krummrich <dakr@kernel.org>, Russell King <linux@armlinux.org.uk>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        "Rafael J. Wysocki" <rafael@kernel.org>,
        Ioana Ciornei <ioana.ciornei@nxp.com>,
        Nipun Gupta <nipun.gupta@amd.com>,
        Nikhil Agarwal <nikhil.agarwal@amd.com>,
        "K. Y. Srinivasan"
 <kys@microsoft.com>,
        Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>,
        Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>,
        Bjorn Helgaas <bhelgaas@google.com>, Armin Wolf <W_Armin@gmx.de>,
        Bjorn Andersson <andersson@kernel.org>,
        Mathieu Poirier <mathieu.poirier@linaro.org>,
        Peter Oberparleiter <oberpar@linux.ibm.com>,
        Heiko Carstens <hca@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>,
        Alexander Gordeev <agordeev@linux.ibm.com>,
        Christian Borntraeger <borntraeger@linux.ibm.com>,
        Sven Schnelle <svens@linux.ibm.com>,
        Harald Freudenberger <freude@linux.ibm.com>,
        Holger Dengler <dengler@linux.ibm.com>,
        Mark Brown <broonie@kernel.org>, "Michael S. Tsirkin" <mst@redhat.com>,
        Jason Wang <jasowang@redhat.com>,
        Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
        =?UTF-8?Q?Eugenio_P=C3=A9rez?=
 <eperezma@redhat.com>,
        Alex Williamson <alex@shazbot.org>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini
 <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        "Christophe Leroy (CS GROUP)" <chleroy@kernel.org>
Cc: linux-kernel@vger.kernel.org, driver-core@lists.linux.dev,
        linuxppc-dev@lists.ozlabs.org, linux-hyperv@vger.kernel.org,
        linux-pci@vger.kernel.org, platform-driver-x86@vger.kernel.org,
        linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org,
        linux-s390@vger.kernel.org, linux-spi@vger.kernel.org,
        virtualization@lists.linux.dev, kvm@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-arm-kernel@lists.infradead.org,
        Gui-Dong Han <hanguidong02@gmail.com>
References: <20260324005919.2408620-1-dakr@kernel.org>
 <20260324005919.2408620-10-dakr@kernel.org>
Content-Language: en-US
From: Vineeth Vijayan <vneethv@linux.ibm.com>
In-Reply-To: <20260324005919.2408620-10-dakr@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-TM-AS-GCONF: 00
X-Proofpoint-Reinject: loops=2 maxloops=12
X-Proofpoint-ORIG-GUID: lM9ihgFyzDaKKK4hT6xbAWnBu4HPvbko
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI2MDA2NyBTYWx0ZWRfX2in2v/sm6fVn
 1EOEfnIWW9XHJhqTtN1dackcJvrGoIn6RYtzj2jaFpMYQNlaN3XxkuZ6dzpRGfvaZaU5moxAo8x
 trr+PwJfEqlepekJSKPo1fy9d5o6sgA5m683HkjOswpiKaLB0x2ZC2oGeSCAtUXbWtftJWxMU93
 r9db17SA3IR04n61jqkqo5Bm6YDmBdYR4V4J415d1oOQfmhBzzcsrs5XSBy2lSc6eI3Yyn+zNJA
 fVQxRgkOI9yEBwUOLE+1Bp0urJ3SQpsL6Mxqh1jqv0YqiavIDSQ9i78PTJ+7C/RudgHS8T2aNad
 w9soTfL5Lep9UESaYSAmOjYsSO5EEkxvuZXANkgGYCQiRzjVScD+Gyn69Rf+vvAYsxJQFXrQuWu
 UQoghhH9HNEe1gD65ozDrx3Bl3HFNi5z9FxZxdctIbC0r4+GoaXzUaZ2fC0g/Uri9kPCKMvcMLh
 7P5IIMyCHlQF+nN31cA==
X-Authority-Analysis: v=2.4 cv=bLEb4f+Z c=1 sm=1 tr=0 ts=69c4ffb7 cx=c_pps
 a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=RnoormkPH1_aCDwRdu11:22 a=iQ6ETzBq9ecOQQE5vZCe:22 a=VwQbUJbxAAAA:8
 a=pGLkceISAAAA:8 a=VnNF1IyMAAAA:8 a=rH2cy8X4UbemT2jZliAA:9 a=QEXdDO2ut3YA:10
X-Proofpoint-GUID: sWD6kkjX1ahK5tMWR5AN0EWZ8NVBfHg-
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-26_02,2026-03-24_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 spamscore=0 adultscore=0 clxscore=1011 phishscore=0 impostorscore=0
 malwarescore=0 lowpriorityscore=0 suspectscore=0 bulkscore=0
 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001
 definitions=main-2603260067
X-purgate-ID: tlsNG-ebf023/1774518236-BB8979D1-322EEF9E/0/0
X-purgate-type: clean
X-purgate-size: 897



On 3/24/26 01:59, Danilo Krummrich wrote:
> When a driver is probed through __driver_attach(), the bus' match()
> callback is called without the device lock held, thus accessing the
> driver_override field without a lock, which can cause a UAF.
> 
> Fix this by using the driver-core driver_override infrastructure taking
> care of proper locking internally.
> 
> Note that calling match() from __driver_attach() without the device lock
> held is intentional. [1]
> 
> Link:https://lore.kernel.org/driver-core/DGRGTIRHA62X.3RY09D9SOK77P@kernel.org/ [1]
> Reported-by: Gui-Dong Han<hanguidong02@gmail.com>
> Closes:https://bugzilla.kernel.org/show_bug.cgi?id=220789
> Fixes: ebc3d1791503 ("s390/cio: introduce driver_override on the css bus")
> Signed-off-by: Danilo Krummrich<dakr@kernel.org>
> ---

Thank you Danilo.

Reviewed-by: Vineeth Vijayan <vneethv@linux.ibm.com>


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 10:19:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 10:19:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263641.1555510 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5hoF-0001ox-3j; Thu, 26 Mar 2026 10:19:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263641.1555510; Thu, 26 Mar 2026 10:19:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5hoE-0001ok-Va; Thu, 26 Mar 2026 10:19:26 +0000
Received: by outflank-mailman (input) for mailman id 1263641;
 Thu, 26 Mar 2026 10:19:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <bounce-md_30504962.69c50829.v1-447310448c7741dbb43bce180333537a@bounce.vates.tech>)
 id 1w5hoC-0001nt-Qr
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 10:19:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5hoC-003mwb-5i
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 11:19:24 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <bounce-md_30504962.69c50829.v1-447310448c7741dbb43bce180333537a@bounce.vates.tech>)
 id 69c50828-e002-0a2a0a5209dd-0a2a45038944-18
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 11:19:24 +0100
Received: from [198.2.180.47] (helo=mail180-47.suw31.mandrillapp.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from
 <bounce-md_30504962.69c50829.v1-447310448c7741dbb43bce180333537a@bounce.vates.tech>)
 id 69c5082a-1947-0a2a45030019-c602b42fc85d-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 11:19:22 +0100
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-47.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4fhKWY597hzPm130t
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 10:19:21 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 447310448c7741dbb43bce180333537a; Thu, 26 Mar 2026 10:19:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mte1 header.d=mandrillapp.com header.i="@mandrillapp.com" header.h="From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"; dkim=pass header.s=mte1 header.d=vates.tech header.i="teddy.astie@vates.tech" header.h="From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774520361; x=1774790361;
	bh=apVr+6Zdzv3stI5wR/5aOupZbVz/jF2AjrrLVrCKY48=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=uw9fcNJGeP3dgF2/iwnT3FkR7KX5UQAqVgAtJv6Su2oRxjFlL4EI0p3NxP8361ni+
	 Q/kLFRV3YYWzJ6O/oRE2bN9xEk8ZxmqwFCGV6xoWn38de5OnzMNn0pEyXPF67rzy2s
	 +GeU1+lBYVtG2X5IsKF7S/yfqKct2izl6BYiW8ZDSTDMo1t2vzxgRS22ZYoso8OT+p
	 FROvJk/mIZAw6TjI+pLGtbCtpzufbNVnof6nNaJVwuVw6QVd1b4X5W+sIbadUFo8cR
	 ogqBtXZhH27HMxH2Z/c/BC28PIhcbA89QMcWANe80gl8h7GaOB6O1VgPx5uw/XjA1C
	 X2ng6ZvIq8iYg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774520361; x=1774780861; i=teddy.astie@vates.tech;
	bh=apVr+6Zdzv3stI5wR/5aOupZbVz/jF2AjrrLVrCKY48=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=t6bJhkVQb+xkg8PPE9cgKrn+h4Cb1YjI8iYgU044yjmUTzgOHhqmh1JA6PVXE3S6i
	 skrVdlQ7Ca2KucLiQauOxbyiA0MlfBdApcX/gTt1ZfZbNd5PYrgwUAJ3MiRrqq64fP
	 IRAW7hNmU3WRK46wiHvyjIx+ZZAjVYF3p8s5ScLi23CstAVnXst5LXnWlQSgTAYMFm
	 y2ipsSrHGU7xOTh/madCFe0OGuM32WczvkoLP19SFDPP2HqUFWM1gDZH9toWNr/QFY
	 fqIFlcCFhqzcwiqrYjK8SY+JAH3CIRQiDKPzv+BlQc6gW4TQP1/TLWZwaq/icAkt85
	 KKV0/evorIrnw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH]=20x86/intel:=20Add=20recent=20CPU=20models=20model-specific=20LBRs?=
X-Mailer: git-send-email 2.52.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774520360593
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: <888b0df36c6706de9d7ec1c5c4cc229297699670.1774519884.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.447310448c7741dbb43bce180333537a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260326:md
Date: Thu, 26 Mar 2026 10:19:21 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-33051d/1774520363-EAA8372C-53EE28CD/0/0
X-purgate-type: clean
X-purgate-size: 2326

Add all CPU models that supports these MSR as they are defined in February =
2026 SDM.
It uses the same list that span from Skylake to latest CPU models as a part=
 of

    MSRs in the 6th=E2=80=9413th generation Intel=C2=AE Core=E2=84=A2 proce=
ssors,
    1st=E2=80=945th generation Intel=C2=AE Xeon=C2=AE Scalable processor fa=
milies,
    Intel=C2=AE Core=E2=84=A2 Ultra 7 processors, 8th generation Intel=C2=
=AE Core=E2=84=A2 i3
    processors, Intel=C2=AE Xeon=C2=AE E processors, Intel=C2=AE Xeon=C2=AE=
 6 P-Core
    processors, Intel=C2=AE Xeon=C2=AE 6 E-Core processors, and Intel=C2=AE=
 Series 2
    Core=E2=84=A2 Ultra processors

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
Currently, none of these MSR are exposed on these CPUs, leading to BSOD [1]
in Windows when it is supposedly trying to debug some program.

I guess [2] is also caused by these missing MSRs.

[1] https://xcp-ng.org/forum/topic/12008/application-on-vm-causing-bsod
[2] https://lore.kernel.org/xen-devel/ced16fca-3b55-40a1-a7e2-ffadd9707394@=
vates.tech/

 xen/arch/x86/hvm/vmx/vmx.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 82c55f49ae..98a25ce301 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -541,10 +541,26 @@ static const struct lbr_info *__init get_model_specif=
ic_lbr(void)
         case 0x8c: case 0x8d:
         /* Tremont */
         case 0x86:
+        /* Saphire Rapids */
+        case 0x8f:
         /* Kaby Lake */
         case 0x8e: case 0x9e:
+        /* Alder Lake */
+        case 0x97: case 0x9a:
         /* Comet Lake */
         case 0xa5: case 0xa6:
+        /* Meteor Lake */
+        case 0xaa:
+        /* Granite Rapids */
+        case 0xad: case 0xae:
+        /* Sierra Forest */
+        case 0xaf:
+        /* Raptor Lake */
+        case 0xba: case 0xb7: case 0xbf:
+        /* Lunar Lake */
+        case 0xbd:
+        /* Emerald Rapids */
+        case 0xcf:
             return sk_lbr;
         /* Atom */
         case 0x1c: case 0x26: case 0x27: case 0x35: case 0x36:
-- 
2.52.0



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Mar 26 10:31:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 10:31:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263656.1555519 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5hzm-0004i5-2H; Thu, 26 Mar 2026 10:31:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263656.1555519; Thu, 26 Mar 2026 10:31:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5hzl-0004hy-VF; Thu, 26 Mar 2026 10:31:21 +0000
Received: by outflank-mailman (input) for mailman id 1263656;
 Thu, 26 Mar 2026 10:31:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5hzk-0004hs-Ox
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 10:31:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5hzi-00FuAt-EZ
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 11:31:20 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c50ae9-5cb7-0a2a0a5109dd-0a2a4505ac5c-42
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 11:31:19 +0100
Received: from [209.85.221.44] (helo=mail-wr1-f44.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c50af7-5aeb-0a2a45050019-d155dd2ccd38-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 11:31:19 +0100
Received: by mail-wr1-f44.google.com with SMTP id
 ffacd0b85a97d-439b97a8a8cso767088f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 03:31:19 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b91943184sm6303944f8f.14.2026.03.26.03.31.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 03:31:18 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774521079; x=1775125879; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=B005jyrLeguN/Hm7h4beFlQbyyiM3uJRIwjse60dLY0=;
        b=KjvT/Qjlgm1jWk/DLrldM63bnhomGJnvPZo/PsodOYVLELxWEIYcAY/J5C9rDLnSb1
         xlw3XnevWw6m0MeMfIH4Mg7m2eRniJvl5KxRX5SqL6c+A8SCd0hRvQsmdkv8hcXbdbqj
         DrKjA1cLHMfgmRcM2Nf62SoK766RRZt2QneIoKXfVI0iiV4QwG3JkZEzcIWImmPR2V77
         n2zEpTYdlwEGZ5Fz+yFL7l25m9AG77tEztz4RPpINLo8CEC+ltcdOfgh6vm3AGxoZ1nP
         YSTC6YC+RlYSBsSavU+zs7vciUtaIR3i7ywuPShmUPxuTd3psBzjMkb9RvJciAdluwPT
         NdWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774521079; x=1775125879;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=B005jyrLeguN/Hm7h4beFlQbyyiM3uJRIwjse60dLY0=;
        b=Q4kWw6fcYbSjcol1HoVmXEjPBjiArzXEEMlm/6rUpGNQobjP+ENvh7Enrg9dr7MUNx
         xeIHqNvE4tSgAYcH/4o8oNwIotOT9RYVqXHTXerynGouqfkoYYeVn0EqKjqBRPhcOii2
         +pTG8s3dkAqL8P2zACW1OhsY4dVK8MHHcGEESamOXkjLnSt6HgOvkcHjfT8uqDsyc4yB
         B7mJhRIOMuuzXatlQAIVFasxlgUvd66yH3ZWTGUMKxKey2ojI2YlEarPSdhqGhInkB7Z
         uay5+9xKcNAiPSA4ww1KCt7iFCVX5qUAJdp025YSkin+yEdvJUXJ8Pze3a1HtqS97r2G
         i34w==
X-Forwarded-Encrypted: i=1; AJvYcCVy3evhkvPEwWxzG6fcq9GEMhdRTVBOvgmNHn7ppNaQsSYFBKG98U/YpCuUrWpqVnbNSbo+HIBQoHA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwHUnAu+8cXPIV1somoibPhlVb1Rwet66+xD93wfg8y9rD1Vv1b
	HBbszEjAaOejibKcn9d8X3SqZhSzXneYAk/sHRaVqEbAkPQufhYS6w6Bv1mYIgL4JA==
X-Gm-Gg: ATEYQzzJDx71fzkd2H3KZz9o9Q9OzgSGKADV9xhY+H9B5+N0Kw318bVufUwrqPwjlEZ
	Zm5GwEn/IjMSAxXV+npxSIFmJOHk3Bt589f/D9IT4E+4qPdoI1zTiRqLMkPwB+kw6u3+S7C7sbL
	TMsN9JKjw3/VBqu5w4DaHAq72lntZhQ5iW1uDEi4NvhLq+i1JTpWOT/psLADROu2Ob2hz/JDCfu
	D+JZAmbbpWrr+OxLiI8M1DRxyvxuy4FFoGtqiz5NL1Vc7i1Dvs2DMfU9Y7mDk0OktD+F5Ihmv79
	EwXpfUAjkk6or0HY7+0jCokN6oONxvtnBPFA63IiRoGQCE5Fx4Bhqz7LpAj2gB7KwEJf8aYOPzw
	qfWU8a33kLa9xJD5Te6/BiRtDSeAAv/Uktc5+fX+E/dW3tsdqj+soQOLJwfLRLfcR0nJwUWMWEK
	g1DFfJ0TnBzzjaXq4M7DDLIy7dDHlI00tfBvogiTOaX4J5NWXmaxCjwlHGHmUOo5DWNdBW6yK5s
	2QBwhsW2zZ4QuY=
X-Received: by 2002:a05:6000:430e:b0:43b:7ff5:fdf7 with SMTP id ffacd0b85a97d-43b88a0561emr10988038f8f.29.1774521078914;
        Thu, 26 Mar 2026 03:31:18 -0700 (PDT)
Message-ID: <642c8ea4-61af-4235-a4e6-d518c5da1c3b@suse.com>
Date: Thu, 26 Mar 2026 11:31:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/x86: Check supported features even for PHV dom0
To: Frediano Ziglio <freddy77@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel <xen-devel@lists.xenproject.org>
References: <CAHt6W4f0iSN5vqbPHTCv6dLdoxUFXivoPX8BYV+gurxxv9q66Q@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: <CAHt6W4f0iSN5vqbPHTCv6dLdoxUFXivoPX8BYV+gurxxv9q66Q@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1774521079-2169D488-57B35EFB/0/0
X-purgate-type: clean
X-purgate-size: 1522

On 25.03.2026 16:55, Frediano Ziglio wrote:
> --- a/xen/arch/x86/dom0_build.c
> +++ b/xen/arch/x86/dom0_build.c
> @@ -321,6 +321,22 @@ unsigned long __init dom0_paging_pages(const
> struct domain *d,
>  }
> 
> 
> +int __init dom0_check_parms(
> +    const struct elf_dom_parms *parms, bool is_pv_shim)
> +{
> +    if ( parms->elf_notes[XEN_ELFNOTE_SUPPORTED_FEATURES].type !=
> XEN_ENT_NONE )
> +    {
> +        if ( !is_pv_shim && !test_bit(XENFEAT_dom0, parms->f_supported) )
> +        {
> +            printk("Kernel does not support Dom0 operation\n");
> +            return -EINVAL;
> +        }
> +    }
> +
> +    return 0;
> +}
> +
> +

Nit: Rather than adding another bogus pair of blank lines, pleases leverage
the two that there by inserting between them.

> --- a/xen/arch/x86/pv/dom0_build.c
> +++ b/xen/arch/x86/pv/dom0_build.c
> @@ -494,14 +494,8 @@ static int __init dom0_construct(const struct
> boot_domain *bd)
>          return -EINVAL;
>      }
> 
> -    if ( parms.elf_notes[XEN_ELFNOTE_SUPPORTED_FEATURES].type != XEN_ENT_NONE )
> -    {
> -        if ( !pv_shim && !test_bit(XENFEAT_dom0, parms.f_supported) )
> -        {
> -            printk("Kernel does not support Dom0 operation\n");
> -            return -EINVAL;
> -        }
> -    }
> +    if ( (rc = dom0_check_parms(&parms, pv_shim)) != 0 )
> +        goto out;

Why "goto" when it was "return" before? (This may be warranted, but if so it
needs justifying in the description.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 10:35:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 10:35:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263677.1555544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5i4D-0005TI-Qk; Thu, 26 Mar 2026 10:35:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263677.1555544; Thu, 26 Mar 2026 10: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 1w5i4D-0005TB-OA; Thu, 26 Mar 2026 10:35:57 +0000
Received: by outflank-mailman (input) for mailman id 1263677;
 Thu, 26 Mar 2026 10:35:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <bounce-md_30504962.69c50c09.v1-38453f29c1f54d709fc67d17b81deba1@bounce.vates.tech>)
 id 1w5i4C-0005T5-35
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 10:35:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5i4B-003rm6-4f
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 11:35:55 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <bounce-md_30504962.69c50c09.v1-38453f29c1f54d709fc67d17b81deba1@bounce.vates.tech>)
 id 69c50c07-5cb7-0a2a0a5109dd-0a2a450b83b4-22
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 11:35:55 +0100
Received: from [198.2.180.47] (helo=mail180-47.suw31.mandrillapp.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from
 <bounce-md_30504962.69c50c09.v1-38453f29c1f54d709fc67d17b81deba1@bounce.vates.tech>)
 id 69c50c09-ef63-0a2a450b0019-c602b42f94d0-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 11:35:54 +0100
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-47.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4fhKtd2ZbRzPm3LJk
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 10:35:53 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 38453f29c1f54d709fc67d17b81deba1; Thu, 26 Mar 2026 10:35:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mte1 header.d=mandrillapp.com header.i="@mandrillapp.com" header.h="From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"; dkim=pass header.s=mte1 header.d=vates.tech header.i="ngoc-tu.dinh@vates.tech" header.h="From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774521353; x=1774791353;
	bh=WIPzkTYKJTJ92I5bcFxtZV5gAYnq1t+9C/BGbsdU/3U=;
	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=iGZccFErGAEj8jrYRRu3kytNnMrIvi3KRtjOj/wQWDbA0nexQTJy9+Eid1X1Ygm17
	 rZSdxa0XGM78ovOYa0PgTtRmFjXtgHYV01LmT8/pTaxScsr5EXL7IZnWBudy2Ord2F
	 2tFiTz6z951RcrQf463HPJRjJtKk5T9uLKJS5hnR6rvROobxAgZneZbqfAnxflpeiZ
	 ZJ197CCCb08J1jVzWmJuXB9qA3u9s0WjE44C4vYTeBg04k7wBiH/86BskfDXHSxvdn
	 lcfdK2Mgd8scAE4kGllMO/p0lxpmSbffUy7tlYX8540Fy9GgpkCk238/zQYAMzgaOH
	 tkoj+8CNi0mAQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774521353; x=1774781853; i=ngoc-tu.dinh@vates.tech;
	bh=WIPzkTYKJTJ92I5bcFxtZV5gAYnq1t+9C/BGbsdU/3U=;
	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=izaGL37dR8/AWkgQk2v5ZUhImf/Mc56tcRtkBmDlkeFNfcDAMebzi8gaDcRU2bwx6
	 MxspkZ9Tz4eT6qrRhcntsiFr3oS8iqwyY550lKuHpsFvWsUn74aoOwF70cVUQpX/Ox
	 58M4iXQUHgFh4fBS1BKvfolUv4Ez6ipLavAJS/cagIeKLv85kLytP73qO4i7O+UpZY
	 ZHuezqeEnwCTulvRP+HhxZkOA5eFCF7KB59AWdfqk0V3WC87HSS8zjnsRU1wKQ0mCa
	 trjalWFm2K2LwNw+Fi4L1+4hENlosLubcyMt6KZ/eM3pc74YKmtk7+AF1oTXKC7uYJ
	 KbxvyMXfalshA==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH]=20x86/intel:=20Add=20recent=20CPU=20models=20model-specific=20LBRs?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774521352167
Message-Id: <975b6883-646d-4db4-b931-b21c45d0507b@vates.tech>
To: "Teddy Astie" <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
References: <888b0df36c6706de9d7ec1c5c4cc229297699670.1774519884.git.teddy.astie@vates.tech>
In-Reply-To: <888b0df36c6706de9d7ec1c5c4cc229297699670.1774519884.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.38453f29c1f54d709fc67d17b81deba1?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260326:md
Date: Thu, 26 Mar 2026 10:35:53 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-42698a/1774521354-988BD112-63802A27/0/0
X-purgate-type: clean
X-purgate-size: 2887

On 26/03/2026 11:21, Teddy Astie wrote:
> Add all CPU models that supports these MSR as they are defined in Februar=
y 2026 SDM.
> It uses the same list that span from Skylake to latest CPU models as a pa=
rt of
> 
>      MSRs in the 6th=E2=80=9413th generation Intel=C2=AE Core=E2=84=A2 pr=
ocessors,
>      1st=E2=80=945th generation Intel=C2=AE Xeon=C2=AE Scalable processor=
 families,
>      Intel=C2=AE Core=E2=84=A2 Ultra 7 processors, 8th generation Intel=
=C2=AE Core=E2=84=A2 i3
>      processors, Intel=C2=AE Xeon=C2=AE E processors, Intel=C2=AE Xeon=C2=
=AE 6 P-Core
>      processors, Intel=C2=AE Xeon=C2=AE 6 E-Core processors, and Intel=C2=
=AE Series 2
>      Core=E2=84=A2 Ultra processors
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
> Currently, none of these MSR are exposed on these CPUs, leading to BSOD [=
1]
> in Windows when it is supposedly trying to debug some program.
> 
> I guess [2] is also caused by these missing MSRs.
> 
> [1] https://xcp-ng.org/forum/topic/12008/application-on-vm-causing-bsod
> [2] https://lore.kernel.org/xen-devel/ced16fca-3b55-40a1-a7e2-ffadd970739=
4@vates.tech/
> 
>   xen/arch/x86/hvm/vmx/vmx.c | 16 ++++++++++++++++
>   1 file changed, 16 insertions(+)
> 

I don't think CPU models with architectural LBRs should be stuffed 
together with the model-specific ones instead of having their own case.

With that said, short of fully implementing arch LBR, it might make 
sense to at least stub out the LER MSRs to allow Windows to read them 
without crashing, as certain versions of Windows use LER MSR indexes 
without checking the arch LBR CPUID bit.

> diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
> index 82c55f49ae..98a25ce301 100644
> --- a/xen/arch/x86/hvm/vmx/vmx.c
> +++ b/xen/arch/x86/hvm/vmx/vmx.c
> @@ -541,10 +541,26 @@ static const struct lbr_info *__init get_model_spec=
ific_lbr(void)
>           case 0x8c: case 0x8d:
>           /* Tremont */
>           case 0x86:
> +        /* Saphire Rapids */
> +        case 0x8f:
>           /* Kaby Lake */
>           case 0x8e: case 0x9e:
> +        /* Alder Lake */
> +        case 0x97: case 0x9a:
>           /* Comet Lake */
>           case 0xa5: case 0xa6:
> +        /* Meteor Lake */
> +        case 0xaa:
> +        /* Granite Rapids */
> +        case 0xad: case 0xae:
> +        /* Sierra Forest */
> +        case 0xaf:
> +        /* Raptor Lake */
> +        case 0xba: case 0xb7: case 0xbf:
> +        /* Lunar Lake */
> +        case 0xbd:
> +        /* Emerald Rapids */
> +        case 0xcf:
>               return sk_lbr;
>           /* Atom */
>           case 0x1c: case 0x26: case 0x27: case 0x35: case 0x36:



--
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 Mar 26 10:40:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 10:40:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263688.1555553 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5i8t-0007Cd-Bm; Thu, 26 Mar 2026 10:40:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263688.1555553; Thu, 26 Mar 2026 10: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 1w5i8t-0007CW-99; Thu, 26 Mar 2026 10:40:47 +0000
Received: by outflank-mailman (input) for mailman id 1263688;
 Thu, 26 Mar 2026 10:40:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1w5i8r-0007CQ-Hu
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 10:40:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5i8q-00D867-UJ
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 11:40:44 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c50d28-bab6-0a2a0a5309dd-0a2a4504ae0a-28
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 11:40:44 +0100
Received: from [40.93.198.63]
 (helo=CY7PR03CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c50d2b-c823-0a2a45040019-285dc63fb76b-4
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 11:40:44 +0100
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by SA1PR03MB6628.namprd03.prod.outlook.com (2603:10b6:806:1cb::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.22; Thu, 26 Mar
 2026 10:40:41 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.20.9745.019; Thu, 26 Mar 2026
 10:40:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FMRC+Vf/SlWGhk12S4+K3IE09EPu6MrqBkVzqWcOEy1BEW38t40kLembagumzO+rRYs2E6EbZc+uPiZf/glx2pRMqKDIrxelpK2sKJMYrjmoF5p40q1jprVOZmj417bWCkBNSHPAO+auhnUYXzHp4a+ens6wZzJNQc0PeCXeWEuEfzobo69s4LfVO6qz0gdAeX33SMFKotTsTVOYX6nl6D5JNeHyybp6pb97pZfvqKoAHe+pnoh/VpzQaaFjkBa5iydd321h4Qsdhv8YRLYchFM58+RzZR4OizGi11N11nxmx6ZCU7nNrbUfyMtum4gl40jbqqLh+p0Tnav7Y2VSKg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+RCVkYHkOSgKiFDNbPFC2F9keZnpzFORnrBOnLlYrhI=;
 b=iLV9HEzJcf8ktUwZmdMrSqn7p+iPAUMZAPEEuZ+/v5Lr+/JuT7+9UZcqkbTNXprylITduuzz4C3dADqBPwOIKWwAMdssRjB16AcZ5mI55TRhyl2NBre95ujlbPFHk/bJaEWJiJu7AkLLVV2F6tkEAajJSqPeaOq/ehBIjJM7yo8hpjR2RaWBbRaFh+nN8MWWlSRjwZrD8Fug/LxJMzQT0C6c5xykJ6RNnXynre+qKi4ElCW1spf2iiaVTwH7rb8oihlCgEh7W/6v0cGQRR/6SboC8MWWiHKInbVaI2/S+NHdCLzd5AN16bR+SCO3SjtydKzyI75h0eV98RNT0vBtOQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+RCVkYHkOSgKiFDNbPFC2F9keZnpzFORnrBOnLlYrhI=;
 b=y/AbZpJH7mNu96AOdPJRZAHc2s5ZBokdtiUH/EVPv3ZnrkDmk7XGIGhFkvgyjL1Z4SDg2aKO1WxmuKEQQRK4DkfyzG1LdEkKAB30j2e/JE54/GNv1VukFybTPtYS9MwDrFt//+56I9ZVO3Ye34KOLUL1zeQE+vOZfL2NhF+oIng=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH] libacpi: Pass missing --dm_version to mk_dsdt
Date: Thu, 26 Mar 2026 10:40:12 +0000
Message-ID: <20260326104012.2649454-1-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.53.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P265CA0200.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:318::15) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|SA1PR03MB6628:EE_
X-MS-Office365-Filtering-Correlation-Id: de44f627-8874-4a41-d92f-08de8b242080
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	jiDgHAiQKTmDoASWuW90HWC+wv8I8AJAAj1i72+PBKIrOYHjwLknjD+aiOzPv0QPuNpqUw3ALQbOJi/K/4YF3yTm6MLfFxSbfKazm2fef6ehDr9M4hJuEIz8gleLXSZOR3p2MCOQD9W2UO2W3RFOGusVmr0Sm81pCWH6LLhg2X9OGdp4Ok02LyLRN+yc6aUTK3/T0gv+yAHP6+DrSyQnFdIUdXhbak66sRF01rb6QFZucrRI/SobjFSn2QrIz+QARttaMmMw4KGEaiEmCMTYppHhCPDdqepqvbfWV+lOB7rfzoign+nwVcLRAU6mEHFusmaDG+GMnZmP3chu5N8QqnTwNnBpEeXMMcAfATyo9zxBH7MJzHNckqI/LbHDdhfhFgrpw188oVR06VKGnaVehZ3way85wJIT1V9LhlxvLkfzT0PVH/Pa1QGI3llFsulaGrVWHoGi+766KA1V/8FCv6tXp8Z5jBj0NCHJE6AhHKnL2ObTiHL6RUObmwJoAM05B6+97SVi//FA2jCFk9cI1Ru3TmfeFY2h5fZ8TLNEibca3h4Ytv6A61NtQWGPbw3KXdd254YaueuQREh6FnPy8B5smXzEStAlOnIJNhfHRq/DHDAL2pCLO1qRliwSLXGSeeJXNjnOCQd9Iqfej4IlYqIbKRIibU7MuHPm+kgNuYCjM++Ie6HkCWysTCI6gSSpNNB7bexAOPLf/jTzMru/WnsXqWk+XJBwv5b5a2zDbHU=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Re6CXY9uy/koxopYN5Ygv2PPg8KLu/xPL6SkOY6HqmsVWeGLotHXQLwXnR7s?=
 =?us-ascii?Q?l1b0/H+9SgPobY5Vf6j3pwQ/r6W2+x/Q5uIY8PxwjeoPVwh1UwDfBWrzGMhb?=
 =?us-ascii?Q?4iAX0ocmW4H42b/UYmkcIbBYKQFRoJsakd0QMcw/tgHUQxOYOEPhWOfqk+aZ?=
 =?us-ascii?Q?zCS8E107p6GRL2FbBi2HsaLd9kskjsWz8iVDxhWKSgOniLiYF9BtkLmJTUPA?=
 =?us-ascii?Q?3ul96zkInJN9oFwSLcNW2h+UhRTRH30w3eu86jWG1m/LzXWZjXdWttfN2JVP?=
 =?us-ascii?Q?RE78K0TsZ8SrUytIJflDiqOEshNeTP+DK4khaizH/5HY3JdMslvZNGI6NMQM?=
 =?us-ascii?Q?eB8sn++xl9XF4KKo6ckxX/AnWYz8QYoNZTlJYSj7KnU8T1+PFMPszq3VPalM?=
 =?us-ascii?Q?9IBCNQBqekesidYpWdrcc8wchE6NRc/j26NeI6ISbf5oYO80t/nZTlvv9Nnz?=
 =?us-ascii?Q?9sDO1ZY2tDwCjJBL/swSuP+ql68jkzignrJmmKZSuKcjDPe4Lb4HOvPIbB1G?=
 =?us-ascii?Q?1W9LfrxX5Zv+4nsxckd2yEFQgeiCqLzlwbiM8PX6ZHewNhZvzfVhX9doyuLh?=
 =?us-ascii?Q?ySwc41PN0bPIXtBdNPoDOH2UZNNStq+lhQkYg2tQa4DopMgNmoOvCTfBiMSu?=
 =?us-ascii?Q?O4qnjdCYZeQ2xkZrhnzhaZl3/aQjzNvoZ5mcEvsXPFJV4E6WtJsZTj3mugPy?=
 =?us-ascii?Q?TOB+1256SwE0d5/0bP0PX5DDL4MRryW9L1UjDgMl/5TnBIxuX/P0Sf4X/D4r?=
 =?us-ascii?Q?J4dMB89uQSH3zivgJ8+yspzgI4TtNBNfAaJP6/mywFAnbBZHsGIIGMSrQ8DW?=
 =?us-ascii?Q?yTP6LzEWqTepJhGd4TxZQR+5W9OhiVMotTGnezkIPWnaO9G2NSJOzZ5RNEnV?=
 =?us-ascii?Q?54oK4EK7JY3/oknegzhZfF/5S1pZaXuyEw+TOWJuOJQ/jq+c0MsxhemK7i8M?=
 =?us-ascii?Q?dFkC95RzRc931BCfTszB0T19R5dGR3HSZMD3ULuX3AW7yF8/w+c6lqafMoQ2?=
 =?us-ascii?Q?4r0Mbbh8j/8ngbFbpydZDhxRHROcXl7vwvCXVyYndri0zll3qi7CeN073ZQv?=
 =?us-ascii?Q?9FzOT3qatu00oFt2GvoHhrSpPhnYlzJmVw8xdvMf2Db0w57gfHeUgnz+DY4Z?=
 =?us-ascii?Q?3HfCBHVVF8TXRDOQ2N6EOm6In4nadMEAyQ8CAKxLWkwTCLh1g/QKRA9i6pGy?=
 =?us-ascii?Q?+X565aWE4xAf7Nm7zjCb8dRaCMhuVqSsPnLOwFBVm/WMhlo3Xcttb5cTyNSh?=
 =?us-ascii?Q?DjPRzKEfdcLbOF/ve51C5DBnfjHXy0pXczRUI5ruKDDk48WYe/CVe3LPCE2J?=
 =?us-ascii?Q?dWCvhEURyP2DlA1CxTa3S4jz+1KDCesC2lg63lqYT2evENQ0fdCNXSt+dmYk?=
 =?us-ascii?Q?dV47dnDlzZkA0aXsOeGW0y/2uGiM2XUgkbX/ExSp4atCdvSjXnW8t4xS/FmJ?=
 =?us-ascii?Q?wLnNQ5AAjFdwnj155wKRnvh4CZG2LMbCg7ws3mu6zd69kzv/Ne2VjoCzMPnw?=
 =?us-ascii?Q?BIBOdqggTN2ysmBvVFlM7mPJ9wjEHZvTXxRhp0Z9WBKFPEmdzE2wPU7VXQCK?=
 =?us-ascii?Q?l7Nc33Z2QfuvgQOUozOCRM+n4BbUBBVaYVKpk3euz0vOncFxAYcjsaL5zXVV?=
 =?us-ascii?Q?nVIQSZpt5z4Pfi20MRQIoer38RzsJEPOrbxZX7tzgHZIuLq2Vplwk/pT2qxY?=
 =?us-ascii?Q?eGBIT/qJZJ9DHsIJ+Fkvp2ZuAIUbnzCkST6mSWSoWUQ70EhK8crkP0HDJ0CL?=
 =?us-ascii?Q?NJnVGKiRUqtu8CEn8lRr3BoVOw8aekE=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: de44f627-8874-4a41-d92f-08de8b242080
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 10:40:41.4330
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Su5y5KfR4qcTVx8zonfRRv5UhrN6k2B/WJ/yLnhH4OyxyZ5cBGDAarEnfEcXtcML5cXdf5UaJO2gYlekbc46joFOlbla5PHVEp2AQBv+kd8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6628
X-purgate-ID: tlsNG-ebf023/1774521644-B9E809D1-A33D0B0F/0/0
X-purgate-type: clean
X-purgate-size: 1269

Commit 19ab8356abe4 ("tools: remove support for running a guest with
qemu-traditional") made passing --dm_version to mk_dsdt mandatory on
x86 but didn't fix all the invocations of it.

The previous default was qemu-xen-traditional so with that removed set
the dm_version to qemu-xen for this invocation.

Without this change, Xen fails to build on x86 when using
--enable-rombios.

Fixes: 19ab8356abe4 ("tools: remove support for running a guest with qemu-traditional")
Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 tools/libacpi/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/libacpi/Makefile b/tools/libacpi/Makefile
index b21a64c6b441..193ec786723f 100644
--- a/tools/libacpi/Makefile
+++ b/tools/libacpi/Makefile
@@ -51,7 +51,7 @@ $(ACPI_BUILD_DIR)/dsdt_%cpu.asl: dsdt.asl dsdt_acpi_info.asl  $(MK_DSDT)
 	# Remove last bracket
 	awk 'NR > 1 {print s} {s=$$0}' $< > $@.$(TMP_SUFFIX)
 	cat dsdt_acpi_info.asl >> $@.$(TMP_SUFFIX)
-	$(MK_DSDT) --debug=$(debug) --maxcpu $*  >> $@.$(TMP_SUFFIX)
+	$(MK_DSDT) --debug=$(debug) --maxcpu $* --dm-version qemu-xen >> $@.$(TMP_SUFFIX)
 	mv -f $@.$(TMP_SUFFIX) $@
 
 $(ACPI_BUILD_DIR)/dsdt_pvh.asl: dsdt_acpi_info.asl $(MK_DSDT)
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Mar 26 11:03:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 11:03:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263736.1555593 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5iUC-0002Dw-CH; Thu, 26 Mar 2026 11:02:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263736.1555593; Thu, 26 Mar 2026 11:02:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5iUC-0002Dp-9L; Thu, 26 Mar 2026 11:02:48 +0000
Received: by outflank-mailman (input) for mailman id 1263736;
 Thu, 26 Mar 2026 11:02:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5iUA-0002Dj-Vv
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 11:02:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5iUA-003zLr-BU
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 12:02:46 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c51254-5cb7-0a2a0a5109dd-0a2a4503b2ba-12
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 12:02:46 +0100
Received: from [209.85.221.45] (helo=mail-wr1-f45.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c51256-1947-0a2a45030019-d155dd2de5c2-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 12:02:46 +0100
Received: by mail-wr1-f45.google.com with SMTP id
 ffacd0b85a97d-43b9144790dso443539f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 04:02:46 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b9192e533sm8420617f8f.2.2026.03.26.04.02.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 04:02:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774522966; x=1775127766; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=voxn08RLae975DzsSSC3A2hKJaqjKkKVCQEDoaN7x9A=;
        b=QMmFc6mLdb4PrETLAukBzdwa2tXrrz2Fc60UI/bq1jpIcX+aQkknxXTxmoEONdqdtL
         dx9PAek+YDUiQBEXHcus2sQeojmzAzJoTVANoWxv8bee0agA6IMnqOqEVjkWysblWgNZ
         YaqIQ2PKr71M7x4k4s0xB4BxRSwcaqvYcmDLIjthzs5UCw8YXAqnKwGLIq4/gzohTE9x
         dxqr+VIlkTHcJ9yiaHclC2uAENFXRR9rRbM6JuYW6UqtQlOSIfgWhxo1PEikQ/AFadLz
         eRn0Sa8jBcyLMWJq503yl04Zu3T3Hqdj81eaIzhS+U/454lLfDVuNIN6KM8B2A0GjyIv
         D0tA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774522966; x=1775127766;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=voxn08RLae975DzsSSC3A2hKJaqjKkKVCQEDoaN7x9A=;
        b=sj4k3Lc2/mGlUxnCvkPSu2st1pqvlZO3OegH7wsQsjDuZbsBNfPXZPNGiz2N2XpAWb
         rBeB1Uk+HFrsP/FK5caiiB+8z40slIxHlPXwT85xl6nNw561kJRoH5+mOJ/FDJ420i9X
         0vXNK3eoa6RtEZsR3uR9qo3w5Aoak1d+KHwiownRc7iDvjv7UKU1T+l9QGusiR57ixUE
         jYwXFdqd4wZBzoUwh47rwSdqLULFELgbDknGFzQkJcV1jWTZPCaLAhfk59lsulCjwnMF
         OkSjyQ8YXQ7DOUZZEF8Y96uXsCNvD0qAdFP8PVauKP8fahmTAnV2FParRzYPJ5p6p1B+
         2stQ==
X-Forwarded-Encrypted: i=1; AJvYcCXtFs+zouooRL2bUaB7gXSfu6WjNwQKqoEG8rTJ0KYeZPzZzKip1/Mkt4n1A0KHnnsFDnbastEiM7g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YypRdfKB9LrShzhy4+FtAPz7qJtAuPvZkLqo61BvVTGk91cSwRp
	6jfulK1qmReQJlkVxx3quoha7zrgmtVFGWUl+LRsiBNHImz2p8U0Gk8okRqyxfF/XA==
X-Gm-Gg: ATEYQzxCrYeJiMqD80gJAI2IdJhXrkA54NEQiLTcMy/ADJAcrJz7gyF9TwRGJ91gsvt
	c3Z2iUhesx7AzKpS34O7l3cAsBUal6dt9EcwvmXjTLY8KroQ08hw/3EUEjvKzcgcmDgJ5tIASlr
	ygt540wtKtlsclLFC+z3502GE/3wQv/Q1L5nyIbRig98C5SQMhUsTgxPIdTz++omr4aJlcd9Bmk
	cgX+eW4NL0J0keJaR57BuT/3J+7ozQ0gxGGQQgUS+yEr3F2wPCC5slA+Q0+WUokluUCv1oEIdy8
	pJTVNJrue5c8jR9ayoAHsH1D7E/kqnGGf5NDEeB0ksejAmaMBZcVD+MoYHhlyv5G8l4W7MSi/Vj
	BHr3Hos0NHMcELNhCSDv4ZKnQEo5ch/7FEyf8Kd+UBlsRMKU7+Cut4aJKGqG78N97zudeCI05jh
	qf5XGNyQ4JJRAiZdr1V8qtDEyz+Cm0iUx3sbdxrHP85dQrQ1HK/PB8qidGZr8BtxYc90Vy4ugdT
	gTpYacDhy3cOv0=
X-Received: by 2002:a05:6000:288c:b0:43b:3be3:9a16 with SMTP id ffacd0b85a97d-43b88a29212mr11557908f8f.38.1774522965443;
        Thu, 26 Mar 2026 04:02:45 -0700 (PDT)
Message-ID: <1e95cf58-0e40-4cfe-8ac9-cd31d97f8330@suse.com>
Date: Thu, 26 Mar 2026 12:02:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] x86/intel: Add recent CPU models model-specific LBRs
To: Tu Dinh <ngoc-tu.dinh@vates.tech>, 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: <888b0df36c6706de9d7ec1c5c4cc229297699670.1774519884.git.teddy.astie@vates.tech>
 <975b6883-646d-4db4-b931-b21c45d0507b@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: <975b6883-646d-4db4-b931-b21c45d0507b@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1774522966-4B04472C-CD4C0261/0/0
X-purgate-type: clean
X-purgate-size: 2005

On 26.03.2026 11:35, Tu Dinh wrote:
> On 26/03/2026 11:21, Teddy Astie wrote:
>> Add all CPU models that supports these MSR as they are defined in February 2026 SDM.
>> It uses the same list that span from Skylake to latest CPU models as a part of
>>
>>      MSRs in the 6th—13th generation Intel® Core™ processors,
>>      1st—5th generation Intel® Xeon® Scalable processor families,
>>      Intel® Core™ Ultra 7 processors, 8th generation Intel® Core™ i3
>>      processors, Intel® Xeon® E processors, Intel® Xeon® 6 P-Core
>>      processors, Intel® Xeon® 6 E-Core processors, and Intel® Series 2
>>      Core™ Ultra processors
>>
>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>> ---
>> Currently, none of these MSR are exposed on these CPUs, leading to BSOD [1]
>> in Windows when it is supposedly trying to debug some program.
>>
>> I guess [2] is also caused by these missing MSRs.
>>
>> [1] https://xcp-ng.org/forum/topic/12008/application-on-vm-causing-bsod
>> [2] https://lore.kernel.org/xen-devel/ced16fca-3b55-40a1-a7e2-ffadd9707394@vates.tech/
>>
>>   xen/arch/x86/hvm/vmx/vmx.c | 16 ++++++++++++++++
>>   1 file changed, 16 insertions(+)
>>
> 
> I don't think CPU models with architectural LBRs should be stuffed 
> together with the model-specific ones instead of having their own case.

I agree. We want to at least determine (or even enforce) how many LBRs
are accessible. After all we can't be sure the DEPTH field hasn't been
altered before we gained control.

Beyond that, because arch-LBR enabling is a significant effort, I guess
using the existing machinery for the time being might be okay.

> With that said, short of fully implementing arch LBR, it might make 
> sense to at least stub out the LER MSRs to allow Windows to read them 
> without crashing, as certain versions of Windows use LER MSR indexes 
> without checking the arch LBR CPUID bit.

This would be too Windows-centric for my taste.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 11:17:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 11:17:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263767.1555619 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5ii6-0004E8-Lz; Thu, 26 Mar 2026 11:17:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263767.1555619; Thu, 26 Mar 2026 11:17:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5ii6-0004E1-JB; Thu, 26 Mar 2026 11:17:10 +0000
Received: by outflank-mailman (input) for mailman id 1263767;
 Thu, 26 Mar 2026 11:17:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5ii5-0004Dv-JK
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 11:17:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5ii3-00G5gV-65
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 12:17:08 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c515b3-2eae-0a2a0a5409dd-0a2a450c9756-4
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 12:17:08 +0100
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c515b4-f93d-0a2a450c0019-d155802adc61-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 12:17:08 +0100
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-48557c8ad47so6416175e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 04:17:08 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4872091241asm13266325e9.21.2026.03.26.04.17.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 04:17:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774523828; x=1775128628; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Vxo/uj/Sm5xOQ2gq8IdB8hKXP+VsV7fEz3Z90js26YQ=;
        b=I2IGIcuJK1K5QqeuVKD5dovJ0XnSo5SOYKdKh8GtZQEpUPytMqecm0waZvTF3kBuQa
         p88SeX5o8I1B7CfR0nna8J2lTcmisBtA1hZGhrmmQjt7PhY7knBOQ4D+O/Yc1/ZN/KNi
         57UIiI+JZTaqaN59BYjQiBYsTqsZYdR7Rcjr1UngpYMsPqclG5lt23qOQTibd1swuxwF
         lYnfs3XE7K6nY4KYdWJBpMjfUHxJ46fiwnCcZa+7krlxtHZ7ATGSdrlF2Jcs5e8DjYCA
         zewuihInyykfJQNuES0LEuW5UmRw/zEPOa1s9by3F5mbBiBHuZCyDzw7FEIMSR5JQbP7
         TNUQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774523828; x=1775128628;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Vxo/uj/Sm5xOQ2gq8IdB8hKXP+VsV7fEz3Z90js26YQ=;
        b=iRMXzjOaS9LXB6kofRkeiarsqZisXzYGaNdZJl0CkcOYb37gU7Ii08qlEzb8uicfA3
         PM1bH9V3D3kazFiDaPKYtb6pVTc8IOCnLkVEwclJne0tiGgQghir0LlGTJ+aJvRTPEd/
         gVaSI9NMpRZ9vjx5j/VYNobmkE07bT1HnHs0sm0QsUNE7RRub6+Ou+0Y1b512sHaP+bo
         PALmMJnh+TCiyzqSddTtIaVDdp4FDgiQTihQsxfOV0YP24nEfyiMbN7PoFAl/Oge6Q2T
         aAWQiwIJ0jYqqOMmyowhkSbSuieBKfmkrY6A4lt1t5oIm0ETbE+YRSPwxMs0zm+XoSUY
         5Uug==
X-Forwarded-Encrypted: i=1; AJvYcCVDbp/IsGdX+AoYyYIbwRJ7z7tOVqQIvwqx0An9hGEmvjKbsyON3zBNGS3R4czAVm0Z/CBTVdui0R8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YztM1idQCFJdeiL9F244wm/EtudpfwKxBNDCAv0TQpK8dkrnd/T
	4++zVNG2ljgCh1v5WAuuAyrimbBYqQmWYt+Z3SDjHwuTKlNaNGtF/bzenZmbr2/cLQ==
X-Gm-Gg: ATEYQzx1KaGG6eZz1NXMeFbNrKlGksa/ti6MweWLNm263YagSGmJHFUy9crLn7nu46Y
	nCG7K2EvxCOMagAdMgIo1sf8JSWDgGq6I9xQmGJ0wQYg42wTnuuYHYLykYsaUwauYNR4sniD07u
	zcRxcmqtrTxWngSm8402su6vJaPNJr0XDMKrg6VkoFV1CIG+hDV/AltDF/C/z326qOzsNAQzQL/
	RavkOzLrGc9yOzxF2h36E06OJ5WyfAbPOZkbgF5tDNBZiUzWROsLYiLP0Bnqos9eClHNMihBFJq
	1hcR3ts8qKpdjz0HBz5XCR0HDxF9B6GcoIWA2JBXcySLUXMYSscNLBfq7w++P9s8z/RY08kjjxx
	r+O0QKWd53qlRb542jCbsY5zr//Sv403jnYawxDJYfry2o8h9Khoe/+dxsmT58skP4lJNE2EuCf
	+pNi4k5BKRAgMSvZ990K2TwCWn79Dzfprrtcy3eruelLrtOat3pBnOY14gFHaYW7MN5X88+Zdr/
	zxr7wIgg7EQZ5Q=
X-Received: by 2002:a05:600c:4e87:b0:477:6d96:b3e5 with SMTP id 5b1f17b1804b1-48715fd463emr103602525e9.7.1774523827917;
        Thu, 26 Mar 2026 04:17:07 -0700 (PDT)
Message-ID: <07b82f49-4827-4e92-b552-9860e61881c9@suse.com>
Date: Thu, 26 Mar 2026 12:17:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] libacpi: Pass missing --dm_version to mk_dsdt
To: Ross Lagerwall <ross.lagerwall@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20260326104012.2649454-1-ross.lagerwall@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260326104012.2649454-1-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1774523828-F5CB2734-F4502FB4/0/0
X-purgate-type: clean
X-purgate-size: 658

On 26.03.2026 11:40, Ross Lagerwall wrote:
> Commit 19ab8356abe4 ("tools: remove support for running a guest with
> qemu-traditional") made passing --dm_version to mk_dsdt mandatory on
> x86 but didn't fix all the invocations of it.
> 
> The previous default was qemu-xen-traditional so with that removed set
> the dm_version to qemu-xen for this invocation.
> 
> Without this change, Xen fails to build on x86 when using
> --enable-rombios.
> 
> Fixes: 19ab8356abe4 ("tools: remove support for running a guest with qemu-traditional")
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Thu Mar 26 11:38:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 11:38:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263789.1555627 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5j2O-0007U4-Ah; Thu, 26 Mar 2026 11:38:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263789.1555627; Thu, 26 Mar 2026 11:38:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5j2O-0007Tx-7z; Thu, 26 Mar 2026 11:38:08 +0000
Received: by outflank-mailman (input) for mailman id 1263789;
 Thu, 26 Mar 2026 11:38:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w5j2M-0007Tr-4H
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 11:38:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5j2L-008VIM-GG
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 12:38:05 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c51a88-2eae-0a2a0a5409dd-0a2a450c900e-32
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 12:38:05 +0100
Received: from [40.93.196.12]
 (helo=SA9PR02CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c51a9b-f93d-0a2a450c0019-285dc40c5f9a-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 12:38:05 +0100
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV3PR03MB7779.namprd03.prod.outlook.com (2603:10b6:408:285::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Thu, 26 Mar
 2026 11:38:02 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9745.019; Thu, 26 Mar 2026
 11:38:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CQsCnN98EIQw7jnSpiAUMQANwSEHxKaZ4L00X89p9iBI6MVs6L3POgQslq5BPnXwFC7CYpIk+EC+GeQZwdZHtgiNqNwH3OiWpOhBajN6cRUBRaUtxYR79DE4xLTtgAewgG4yoqijbGzyJW9x/PfVFLohikUlJRKOIjlyUngBYc3GU9RD2a02JMJwnwR1fmrDPfoGhrymk2XMrPZXu5YmpenKzTnURcyBzvtbaAtbnC6ka5MjvjD+Fa3GQEQ1dNl7isdcOI4WwcQWVIx8Ag7QjvRzNAe23b31F1G7mvcN/Qxb8uDdxcCT2ExIbsY7+ruANLY29kzCZy93qso4VLWoLw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sanxqKrLqAYJ0gbEbLvkMm7LZhfwJXghu37CCGww30o=;
 b=qIb60jFNB2ostRGaHtjCTPHtIB7JT9leK6hZTztPU9Jgi/SjeImfXeOAa6GYYaqxLHvtXHpYum54jfNfDJImNKWA8btyPNqqf8hgKy5WF5ycGF8SEk6BpeSHtPGYagOJJTW1L23Ugcubz7pKzIxUYl2H1zJ6dQp4YChe/ent2IbeJ8+i97L8Kt4J+EwyWvjoFFNou3JjXwy8p1Vpn1G99NDzlYMhC8tJz16YKFPU6WC9FlnUav565U5VjUYeo7xH/xV4sxbWM5bO5UQleTHw99eSyC7kSO5Zr3z/g2HuhH/mnRYYbTKSNYpW0Ei3gy2puevgreFbwtJTTRef94ne8A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sanxqKrLqAYJ0gbEbLvkMm7LZhfwJXghu37CCGww30o=;
 b=BrU/tV7GpQ15ccpdd26GLigWZPtdH6OjYh7mw5I7s4VoJh3jh/rXCFExar7Lxfkr+71k7jbBxQptFcQkdCtuhRIVqhVmYeJMhRSbm2/l6KCgxepOuFkSHU7sCkSOFIPOeoGOIb93eGVmvsJiDLLtsvP5fjCzmJbQ5a1oeDoSrK8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <b3b63ebb-eb4e-4de0-99c5-ecb8b8ca882f@citrix.com>
Date: Thu, 26 Mar 2026 11:37:57 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 1/4] xen/uart: be more careful with changes to the PCI
 command register
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20260325145824.31601-1-roger.pau@citrix.com>
 <20260325145824.31601-2-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260325145824.31601-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PR3P191CA0034.EURP191.PROD.OUTLOOK.COM
 (2603:10a6:102:55::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_|LV3PR03MB7779:EE_
X-MS-Office365-Filtering-Correlation-Id: d07d3a4e-9bab-48f7-a162-08de8b2c2331
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	1jADih+/K+W6heNHtHI0LRgVwMSI6lyyEl/fPN+pJC6KeFzvDo0S+JH9lBpDbPBa7hUyq8dFOTNivuAq0mIbwPLL9M6ez634IzmbDjeporXeL4CxPqh7MJXJbRYCBwZU6DdFFKq+Lda4YJZVXXTE1pnnBoDEcHxloUA7+uPFMOuWDeNHli9mutIQf4PkXr7OWwlR1nHvoCIuSJ1RZGMM9Qbgi0IT2hDADf79j1i/5Vlum8BHhkA5HyPo2HTm/4U5eesCg6fB2CWDCAB7FFvISA1XQ8tcsq9LgrHqA3sbUSrllwZHDI+deAlbbq2li39ArWCSjY7plIOsU/hzF2doREdMEaVicRFrWesv0fwavMKsY2MQUtO7MRzpIIbBUnRzcwHjRIOby1xn4lJ84F5/Ts83o8+T+yZnSyzf1L9jMC105S80+oheETSnwuekPtD3vUBTC+dsVfT62tBRFA8xo2uROos0N7ZMxH2tsx8RFelwi8XZ6KCY8rPKo7xDjDqPyQTKfNISjCJTIzN/iDhon6jdeFKuNd5YoeTZSqny2n6tHva8UzzdKLWp+xp57bvPHPMswTrjqN16tiySmYUJmRb2XPPcNAk4IoWA2N1MpWSBpGCZRnLpKLPj/TD+gbnM6iYzBcvrHhn3Gvr/zalDwau504pQARYA6gdfH7+pGD7XYzykKYnNUAQZtWaHQ5z/wq5kBxJpKDWtn4WAFdPyy+7EjW5/4pF6HZVerxiq0Uo=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MjBERnVaNFo3NUVrU25wWjJmK29BZ0YwZ2RaeVZlckxHNUR0SndPYXBJRzMx?=
 =?utf-8?B?VHB6ekNnQTlwS0NLMWw3Rnp5akg4cTMrWnBRckNVSXNjWkpDM21HY1lIS2JK?=
 =?utf-8?B?ZjV3OHlTdmQ5Y0x5clViaVZlYUlEOFFyR0Nzd3dTaHN4OHA2ancxT1M4SXp4?=
 =?utf-8?B?cDRkSlB5RGZHR0htMm1WOTJ0MU1udi9lRms5RDNPaUF0SThhTSsyOExKNFI5?=
 =?utf-8?B?T3p4MGw5MVd2dUYybW9uQ1J2RjBoY0lMOWlvL3p5Z0FjNXhSTG9iSmUyek15?=
 =?utf-8?B?a2cwaHJhVnZoYU1hdUxyYityTXAvSVJaTnJVNUJUOGxQcjh6eTFFbU83R3JU?=
 =?utf-8?B?b1NGTXJvZHVSalkyb3M4c05CM3d5eUlod2FtMWRzV2p4QWRhVG94a1d5T2xo?=
 =?utf-8?B?dmtmc3NrQ2I5YTB5amxHQlBBYnNFVko0SHIxZ2FXU1RaZG5JY3BMOGc0Q3dv?=
 =?utf-8?B?VTlSYktQZkFFL3ZRN1lVYklPNFhzUy9jNFZpK2REeU9OZGtDTzFNVldmZWZl?=
 =?utf-8?B?NDdLUVl0UUxKVEdmeDdkczFXWlErNVd3WlE5b3BiVVZGZUovY094WGo0VlJO?=
 =?utf-8?B?bG9IVjFScnNvRnNBdk1yS2s0ZzBibXMrWlpzL0xVdXRCMFBTeTUyK3c2SmxW?=
 =?utf-8?B?dXc5WFFlNk9IekEvUzY5WTlrcGhueFo0RTdnakNudmNhR1h6UUNNVWhnbjNz?=
 =?utf-8?B?a3RnUW1RUHNkcnZacFY2UmxEN1MyOTNFdTlzRS83ellIZUpaV2pxQ1VxMmli?=
 =?utf-8?B?SzBVVVlKUXlXWkJhblRCbFdnYjZsV1dhSWNPeWVHaUJBaC9tbW03eml6WUJx?=
 =?utf-8?B?UkdySGs2QkxST0M0UUJyWnJkVStTeUdJUW1rVmFlL1JpRi9xQlVKd2ZJMmor?=
 =?utf-8?B?NkZ6eGk1VDAzemkvTDNVbnF1aW45ZXoxSTV5eEJXUTlSTmUwenBrSWJXWnZD?=
 =?utf-8?B?czd0aCtoTklSdmR2K1FHU3czR1M5N01uOGF6ZnpGQkFRbmwxZFd3MGgvaEts?=
 =?utf-8?B?ZW43WkFLR0JZZE9YeFlmaUFrV3prNWJPSmtXakRiSzJyRG5ObU9YM1RaTHhq?=
 =?utf-8?B?RDJiTmtId1BsRExzdEJwc1pYUVlNN2FPWnBvSFZScHFId1hUZE45RWpyQ2hR?=
 =?utf-8?B?bFZsYWZXdnhIaVJuS1U0STMzeGJQdE5sVjA0VUx1UEk4YU9lVEZFMGFMM3Z6?=
 =?utf-8?B?cG5ramFDd3dNN0VjcHBjektxbjNsejZ5Zm40ai8rQkV0Z0hlbDNHcmZ3NXhD?=
 =?utf-8?B?YnF4dTJleUpKdlg3b2hyNXNWMkZidFhQdjZ2bmRheHV3Q3pDOEFUV2hxTklQ?=
 =?utf-8?B?V0RaL1FtR3pCNUFjWlR3MVRBbHhUbmN2UUhGd0xHNFZsSDN6QzhYNEU3aEQr?=
 =?utf-8?B?Tk16VmViOG1TcUkycE1CNktsNkpVTFJ1cHBVVDZhRVhNOEE4QW5ySVhla1RH?=
 =?utf-8?B?cWlUdkFpekcvYmNpNDVUUmdIdHcvaU5XUFRVbXdMWW1rL0k5R0ZLb3F1QU9G?=
 =?utf-8?B?K1FwbEU3elROMTJGOG0zRHNyTHRBTjRESmZFYUxXcVpYRTkyaFF1NmpuNmpt?=
 =?utf-8?B?cDVpYXRNUUU1NFJERHRaUlpJQUZ3V2xkdCtzcitteG4rU2h4OGVTZElsUVMw?=
 =?utf-8?B?bGM5a2ViUmE0enptR2lubS9FOG13eWRSbzlKMDIvTU5LMURUN2ZzUFpCOFZN?=
 =?utf-8?B?QXAxK0tOVFVweUZrb1I0bHRPcXBhMFdpZHZsSnlDOC9IVTZyUDFKdzBKNVNO?=
 =?utf-8?B?Rkt5UFFNdUlDWkl5TEFKL3lTVkQwQ3A5aHdPSG56bEI1eUFYVkc3czhyaVRx?=
 =?utf-8?B?Q05UdUpyYU5kVjkwYmQvSC81MGdObTcxSHB3b09NZDIwbllGdlR2QmFQWjNP?=
 =?utf-8?B?a0lZZDBKVlYrNmYxeVhKR2tTU3RZQmtMZXA0MTNPRTNMMVdPZXdiNkNzaFFM?=
 =?utf-8?B?QXM2NC9xRjNJQUs2WEs0VW0rVTdwTGNNUVJ2SGZoakdpbytENlFtbVNtUEYz?=
 =?utf-8?B?T09XWkRTTk5ldDN2WlFieEZ4N1VmQ011OFlrYTJZY0xNNnpwOTRBVWZ0Z2Zw?=
 =?utf-8?B?dk1BRlAxdktCTnZyek1XUlF0cjFVY0g0SU5RL201TmZicDUvNzUzQXk4OGFk?=
 =?utf-8?B?ZWEzSDhPdnZUYTdrNk9JS3hUVFVyT0s1RTJrYXd3QzdyYno2WEFJbk5CRG9I?=
 =?utf-8?B?ZzVVT1F3L21BdlFDNkZrR2hOQkRiTDkxMGlwWXhCcnpGTGU3bEFyMFppSllh?=
 =?utf-8?B?aEI4cmJVTnNCREZkaUQvVVNnWFNWb1ZNSjNtN000T2xBLzdKa1BQd2RMdS9Y?=
 =?utf-8?B?NkkxM1VOTDFFeGtDUmJPUllMSFJwL0NBYVBHeWtwelVTM2Jzc1N1RjdJL0h5?=
 =?utf-8?Q?vEim7Xss01FyAVe8=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d07d3a4e-9bab-48f7-a162-08de8b2c2331
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 11:38:02.0372
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: VmsSUa06dxQigveNWeKK7F7sCjmf998xNfmd2+Oelag76DrU5LK76pvJwwaFnO0W1jHq9ysY+Sw2RQ+hszekwOdGpHtOuB5iWWzKhhaolgo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR03MB7779
X-purgate-ID: tlsNG-d25034/1774525085-FC82D734-0F9297DB/0/0
X-purgate-type: clean
X-purgate-size: 770

On 25/03/2026 2:58 pm, Roger Pau Monne wrote:
> Read the existing PCI command register and only add the required bits to
> it, as to avoid clearing bits that might be possibly set by the firmware
> already.
>
> This fixes serial output when booting with `com1=device=amt` on a system
> using an "Alder Lake AMT SOL Redirection" PCI device (Vendor ID 0x8086 and
> Device ID 0x51e3).  That device has both IO and memory decoding enabled by
> the firmware, and disabling memory decoding causes the serial to stop
> working (even when the serial register BAR is in the IO space).
>
> Fixes: f2ff5d6628b3 ("ns16550: enable PCI serial card usage")
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 11:44:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 11:44:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263807.1555637 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5j8o-0000bt-U2; Thu, 26 Mar 2026 11:44:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263807.1555637; Thu, 26 Mar 2026 11: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 1w5j8o-0000bl-QN; Thu, 26 Mar 2026 11:44:46 +0000
Received: by outflank-mailman (input) for mailman id 1263807;
 Thu, 26 Mar 2026 11:44:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w5j8m-0000bf-O2
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 11:44:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5j8l-008Wk6-Uj
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 12:44:43 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c51c11-5cb7-0a2a0a5109dd-0a2a450bd9f6-44
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 12:44:43 +0100
Received: from [52.101.62.67]
 (helo=DM5PR21CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c51c2a-ef63-0a2a450b0019-34653e43d5de-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 12:44:43 +0100
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS4PR03MB8376.namprd03.prod.outlook.com (2603:10b6:8:328::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Thu, 26 Mar
 2026 11:44:40 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9745.019; Thu, 26 Mar 2026
 11:44:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kDGJheI4eKypSzI/NZDHV/W0mAZI9v2f2SaQp5D3qNHQQL9BgMmUQSL3pSvfLMHGx5KCPSgsfrCqlBA+/rTeUOoXWqyX/BPGA4Th/fyJHBqTPkk/vxGQecQlxIvZqaDAQhiXCemjrCqTCOSW4OVDYhMlySGSbMW400o4J2jWUEZDzwREo4AVSFQbbYT9MRdfug2PJhLF5AVpmXp+Pm8gtWBvkNNkyYDcQLx+zJPXiGe/pq/fmluTQ1kSteVCUlVSzvSorMburg7S/WhtgPCQjVE78+XCM0Yxae20MVF4CwOObqWX4rDyqQWxXRsWffl8b6/LiiVLMVu+AcBKnMwbwQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vYGwoJBqOjz3GfYEITrRmgAIdluvKemJVzO9E2/P/WA=;
 b=BwYl1suSjOYlvY7zuYKCGT933lCEbx6bOaH1AWwGsCSeRmVNLamoXg21EmU0WHeVPu+AiT/Ctom/L8VhA5NzwM4ZswiugSiw19QZXbLZdqRKay0fQ9RydJVCzUUVVv0XCShseel4TH1qaOJXb9ebQM7fUk413mfFKABc1Pym/OJ4b9vIGPXIW5nCA0W8onVhziwvYVxQDUr28KeAW6ZuhYOrpk8NbAGajEvPjBW/h/Q/9Umao4w4wtltHPMMNYo8ASmHVC+42XM1DS11gXX5MkBGVxQ7Uh+RtyRPSzssKdSKTM/88+seTUpTCc1uzLMTsbXdCM8f3xgJjXhz+iKkMw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vYGwoJBqOjz3GfYEITrRmgAIdluvKemJVzO9E2/P/WA=;
 b=D2+l421Zp50JRkYxle7q8VFlL6GJQK7bOOC/g6jV5pe5QyYeN02ggZK9vW8ZxZ+R0huYefxAf06Gj9YAvpjPrYH+bmnfw1z8zDLKSo/w2KMwg0/n/e0RWfCQV+kvuua5TBUrIBZiAXY1zczfQ2kXgfY3lg4cPiRSVLLRpdeXjmQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <f58e1df8-2c76-42dd-bd1a-b2c93facfa68@citrix.com>
Date: Thu, 26 Mar 2026 11:44:37 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 2/4] xen/uart: switch ns16550 to use pci_sbdf_t
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20260325145824.31601-1-roger.pau@citrix.com>
 <20260325145824.31601-3-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260325145824.31601-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0223.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a6::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_|DS4PR03MB8376:EE_
X-MS-Office365-Filtering-Correlation-Id: d8bb1d1c-df95-4c0f-7909-08de8b2d10a4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	VNQnpRugTK+Fz2vNvHqFty3dA9GhBYxmZ6rY/bx4SgalHuiAp1akHyqFoELG2JquwFhNQ07FbqbfctJqxeoXZmBQHuy/pjo4kkaHA0x9WbtHu8ESP2sdDTH4MppY8mxu+BsBkTAxn5eK2Ext4TJDQLpxsFwzBKm1nOiNjD61quts55+b553H3oEuUoZfxU1PPKF2ov8Sdp30BFl4KRC+8eA4X0xkhcOkkT1o3ohHxWTpFQCpk20TFzJUhZ0yili4XCDEDIpxOZbjNqm6qyWuvR3fD6NfQ+ASxhCKCHSdBE4+Ywp41H2kJpO/93JlLE/rAnGU70/h74drH+mc1ZvRNzOh//5izdlv4yN5q6PdWqM2MEAWmkUtnCI8tLKUo7IDCCINJh0fbROeMmBbyJadFnAJdgahudGc9xzqv6pxggUSpjJmguHzLTqAK79ilJ4PG+/9Dr613uX9kbRfQXVgAXfnKnDDLQKqZvXVUIabkT+DKtBD0tpF2LJXYfrLhIvGxlNrK5R+udI/H5gGwsNfJulbk5myGzsUBwDWXPYhQmQ3nU2wfXaQzTJG0LXkuL164fDzRyp1uDDhTZ9vZE9Q5zW3Qdss7Mz7j4h75gdF/8GD756S0Ef/6WXpXtFbDRIdJLzftu8HJtHWc1V96pk8RMiLdSi0akYP+GRz6D4bGmauy35wS3OogFJzNqTMbhmVJCUhWI98cFokBj+0G6q06jNJhTnGJskDl8kliW74IQU=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?T1ptN0ZocVJ0TDUrZUVJTWxVSnBKZklzVzh2ZURIWEVVYi9TMklleU9qSWxU?=
 =?utf-8?B?cjBXLzlZaEw1Q0FJWUdiSys1Q0p0bmJzOGZSSlc1THpRaXI1ZytHVWdyQ2Zq?=
 =?utf-8?B?c1A2ZXo4WnBPaXF5WEhUdEFnMkh5b01DenFuRElmN2RBOFhScHpIemt4dklF?=
 =?utf-8?B?WnVsdmtjM0FsZWMzYjl5YjZXZjU5SWlac093bWFtSGFEcUtWaVBhL0xOTzJL?=
 =?utf-8?B?RzhXSnpjemtXMzBZdEVtTlErUmwzT00vZ09BVnN4T0NxdEpxbnpQSlgyUGNG?=
 =?utf-8?B?cXN3V2dVNnlaSm9Od3Z4ZTJSZ1V4MVZHdER1VkhRRzdOQ3duS0tYOVBhNzJK?=
 =?utf-8?B?bmFxdmh1RXlWOWNqQzlHRTlLaW5TcDYzZ1Y0RHFqWWRiZ0RNZXEzTi9qVWJa?=
 =?utf-8?B?R0d6OHJUNTlqS05YSkt3VUJnZkpjS084cDdSTDBqQXR2ZnUyb3pkeWU1c1NH?=
 =?utf-8?B?R2pWeWxEV3crZGZpSkhGM3AvRlJkT2YrTEFyaXh1bFNmSVFtb2VxOFl1Nm8r?=
 =?utf-8?B?QWNoYVZYUUhYL2tndjI2MHJMZDdUVS9GYWVxbkowN1NYTTNZNU5RU2JoMkwx?=
 =?utf-8?B?UmE1YmQvNk1OT205alk0K3p0dWE5WldtVzVFWGhKd21wNktFbWpmTUdVcjY1?=
 =?utf-8?B?OTlWZ1ZMNGxMZkFzMVVmVTNuNlViaTREb1BwZlVEc002VWphS0d3SVVXV0ZC?=
 =?utf-8?B?RzdUWnU3R2xJWHJUSENZT1dPcjBWV1BsSTVwQXBFNVZRa1RMR0dLY2pzV01k?=
 =?utf-8?B?d2pDVStqUE4vaFZhMzZsYXp1d3RhallBd3pJK2ZtbGVCbi9HcWRSdlgxMzBO?=
 =?utf-8?B?STRWbjhialNibWZtM3ByVWMrcGU5YTNFSExNVjB6ZGVyKzZtamp5WnJaRVZa?=
 =?utf-8?B?ZXdaWDNxVmhhZjZZVVpsSUhwY1cwZlNwamQ2dmNHR2NwQW01em9tWGpvT1Qz?=
 =?utf-8?B?ZTlTTUdRdmduOXJFOHdpaFZ5UHpXTGZWWVhnVW5raWtvc05pWG51cFZSZCtT?=
 =?utf-8?B?citPVzNIaVQ1NkhmR0x1RWpsU0wrSDhJVUdhdjVCQWp6TWNZcEFLdDZ4cUZO?=
 =?utf-8?B?Y2E0Y3JQREdhclFZVHpQckpneXZ5dHZrc3Q0VGhINTFYNW8vNG42NTlpQVlw?=
 =?utf-8?B?NTZ4YjlrcktZRmNGVGNlZ2pMK2NMLzhQd29LcTNoak5QTEFWMXFSTUtxYlhU?=
 =?utf-8?B?Q0dSY3U5c1VlUmpYS2pzbGhNa2NFWGplam1NNmVnTW9UWGVIbFZ2R3M5SUNF?=
 =?utf-8?B?bU1QaWhwVzhubTBlRmVoWWxsSlpQWnpneWVyc1VST1Z1NDk5YVo5Q0JZeVlC?=
 =?utf-8?B?UXQxT0Y4U0tqNGduUlBjN0xMcERGUVBreGExSGdNUnNoVHNQUGVybzlNVVF2?=
 =?utf-8?B?REQrOGI0dGJBWnBRRkkvQVhrMGh6Sk5GVndUZlpUMlg1aUdlY2pLYlZpWEM2?=
 =?utf-8?B?QWdMN0NJTHFMaVhnOTdYMUQ4M3RmN294RTlrK2hYcTJjbkpjMXovUzVTOHNk?=
 =?utf-8?B?LzdwU3BYMkZaWFlJblRZdkh2UDE1RXdOWEVlMWtET2QwM3o3TG1yZ05RSnJh?=
 =?utf-8?B?Y3BYYmFydXM1Ry8zcXpqUk5CbFI3K1lFV1B1NHpSckgxMGNrRXhkSDRLVXd1?=
 =?utf-8?B?dCswY1gxNk5wNWc2L3JBd0VWdzQ2ZGk4a1VFMG42S2d4N2FVeTZFbUQydFhR?=
 =?utf-8?B?V1VYRzBjMmVrdDJKVXlyYzA0UXd4M0hUMG9IYW9FUVhJYnVFMFlMcndlR2pV?=
 =?utf-8?B?dlFiSXFQSGlLTm1mQ0lDeTQ1SnN6akd3LzZlWGV2TWx6VVY0Y1Z4MkZMQUNN?=
 =?utf-8?B?ZEdXQ2lqMUN5UlhxaGNTa0ZGaVJxVDM0THRSVmEwWjN0d3A0empXcVk5ZXBr?=
 =?utf-8?B?WlRtY0MzSG5YbVp3aHc2blZ4c0dCQzc4WURxd2NxUmtRTVRQSFVWcW03S0dQ?=
 =?utf-8?B?dnptUW1DWVpxVGFRM1hEbmIzYXpXa2dseUdwWVl4TS9rWG5OcGZrRVZBNUZQ?=
 =?utf-8?B?NWRkUkhTL0tjVUtzR2RuSUViQkpJenYxMEZGaVRnK2dpQkU0c2J4anRVZnhK?=
 =?utf-8?B?RnhGd1hNUW4ybEZGQ1R3SUpFMEFkWk16OWNDOC9JQUtqZ3lIc1d6M3owR0dL?=
 =?utf-8?B?UVZ6cStwdjhaS1plZ0hER1VYY2ZHamhNOVQ4aHhsWXVNbTh4dllSWlltdWxD?=
 =?utf-8?B?MEx3R1R2SFkxeGxTREN5MkFJVG5NdnM2UytRYyt2bVJYL2dBQ0FTMElUNUVL?=
 =?utf-8?B?aFJnVUh6MGhYekJhVzZhVFJPNXJQYlo3TnpwZStJL2E1Wm4vS3VDK0FYTGNV?=
 =?utf-8?B?UndhSnc5bktLcER3dVcySVBIQ1dVMlpzQW16ZmFHdEM4ODlxL0FJNDhIMmlJ?=
 =?utf-8?Q?ckvPSZgGjg6+oMtc=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d8bb1d1c-df95-4c0f-7909-08de8b2d10a4
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 11:44:40.4155
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: llNlHgVwk8sxJ6hzHROxl5VUGs5zGp80xaDQn5J+kfq7xemN89RX1RFHYvx4Us1r6dET9D8Ahqfc8HJ4ZbmvA4A8aj+tPCR7u7t+mNp39P4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR03MB8376
X-purgate-ID: tlsNG-42698a/1774525483-A0409112-1050F90D/0/0
X-purgate-type: clean
X-purgate-size: 285

On 25/03/2026 2:58 pm, Roger Pau Monne wrote:
> No functional change intended.
>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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

This looks to be a substantial improvement, even if there is clearly
more to go.


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 11:45:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 11:45:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263815.1555646 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5j9O-00013V-4u; Thu, 26 Mar 2026 11:45:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263815.1555646; Thu, 26 Mar 2026 11:45:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5j9O-00013O-21; Thu, 26 Mar 2026 11:45:22 +0000
Received: by outflank-mailman (input) for mailman id 1263815;
 Thu, 26 Mar 2026 11:45:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w5j9M-00013G-KN
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 11:45:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5j9M-00DN96-0Y
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 12:45:20 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c51c46-bab6-0a2a0a5309dd-0a2a45049334-34
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 12:45:19 +0100
Received: from [40.107.201.10]
 (helo=CH4PR04CU002.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c51c4e-c823-0a2a45040019-286bc90a3328-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 12:45:19 +0100
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS4PR03MB8376.namprd03.prod.outlook.com (2603:10b6:8:328::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Thu, 26 Mar
 2026 11:45:17 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9745.019; Thu, 26 Mar 2026
 11:45:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bqL74DCuOdsIK8HNuo3lfCoTzsaVlfGgIr6c4YE1FQZpt1rdUtX5ntpayBpczk1Ik66Ykq2+wv0LAcLcd5EX904/PySrDJ0tRgSBqQ7bh/Ia/J1gozl0zJlOUiK1rTzlp14ZmdvP/wGViS6yn/lpLrtSq7K4De8WAfH4c+JGGB7LGP324jNu92a8R7tTF2hCkWo0L2l0jYPrmUtwrNs/+0zp4InTr+rSbYCYuvWrJHBBvv26q4cYAQdg/uHVB3QoMEEdHtZSIr5+gWM6pBdmvxnR7hkmWiF75tF7ujPHea1sYYLHNGVLmiysbc4PSV46F3l6G7zWVDPuJ+jS1JpuRQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=08pkUNNtmgv1oSkIqIP1vTUv/TgAPKfzbrl7ssQAttU=;
 b=ILiFVq4jcRgc5+Gdupxsf2ZXHNtQU9hT4XoF/SXgQMqeQb0JK4cpjSsu+7E0SkY0kkk4JekNm6fQoGK3nwxyfZ1PO964Yiz3T0axFYjzc0vWcQvSCrbco/nzV2fdnou5ppDuCL7BVTZDRwPyVj+SttBDLyihOeVwJCr5la9kpSeFIpSiT4MXR5eUU8J+3mRedk5OYJlXVmoB5nUV0gZKkG/WvYorcrGzBonLFouLCNaVA7s2jOjODc7naxiVAUJ8mxwfG08axUINWJzYg60IJhQWFgWu1N8Br7JJpClNuUKryFF3QWTdgOHdIVsa+E9gz3KksYUkwrATNc7+q+B5BQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=08pkUNNtmgv1oSkIqIP1vTUv/TgAPKfzbrl7ssQAttU=;
 b=A2Nik4cAk6FPFu8NBA3xadkruYsObBTUZyCIZ4DjhKRl92xLa3AAM3g3Lecal224lfOrWX9VAFIFVufyRm6fZPtabYv6qLPmjA9Oj46/zJYCYND8tbgSfWK1TrzLa/+y3IgOcK/RZ7MPhL00NA4CO/bD60UTwFrccX+LqXEbgvI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <451fd937-bfa4-47cf-aa59-d2f60a04a6a4@citrix.com>
Date: Thu, 26 Mar 2026 11:45:14 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 3/4] xen/uart: report an error if the device type is not
 supported
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20260325145824.31601-1-roger.pau@citrix.com>
 <20260325145824.31601-4-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260325145824.31601-4-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0228.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a6::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_|DS4PR03MB8376:EE_
X-MS-Office365-Filtering-Correlation-Id: 566874f3-4f0f-43dc-d2a7-08de8b2d26c4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	EYiEyL9qGw1kEDjTvSM5lx6hf6H1WyQrjN+HUSH4k+001Ua5UMSe9tcRlXPe1CF1RHOsyMnozkdliHx7FW+ZMee5vxi35lf86krq+X7KSZzg/sZxaJPcH91//EeLuz+hUqk3zziiv1DlM4syInp24BvpYw3H4BlbX2WFQZIObWVyWYy11uMPwwv5ASbZy8KP5FYw/8l9WQnsZIDIeleMn0yTejNnFBKJblci1Mj6ObauyyyfCqc/Gl8/efPPxN6qfmmDM0lN9moDJSgOYMnYUG1Vx+LFvPNHGQ4Q7Dj9ej24eNppvWRVGGxEGqAZGLx/NZ4OGe3R2sduY2aoCy+codIBngTeQjEdNjXdTXAZ6QTYWN7c5nj+O+PVP7JNn3N2XS2xjCT/sTSZluJmG9rRUDOGeMRMvJ9ZcXePL43yscRZWFzUzvLTtpARF/N1KF1bjAS+hTXIwAYbJP+iu8fAjSdF01P1APlrXt9o+pBzoZMpwGLEEZpP7Oo7m5vW3r3FF0F199dbpFXBjCygrL7b+GNecbPfNbxtM+H7Mde+Nbllk2yzdsQ/3wkdxmkmuN6tptsWUCRxhzpfhLxSCeWjDbkQPu7tGRcbGcuMeoK1/LenDyZvIhck6WTDFGny5iPa9r6VoiL6r5Q7EO/oPf/2sfk0sWj1FXjwu5Ze7V5lr48xGLwfHK63DuCKimJhVNMMzp43kbT9/m6hn2GfQvsorojpf9hdrYjKjAyoxpSyvG4=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?N0hUMFIzaVpKbVp0elNubk9RQlg3S1NyYXhqNTZFMmJXUnRUMWV6Rm1yMGJC?=
 =?utf-8?B?blFra0hMMTJQSTJNd1NBK0JBRlA1elozbC8xeHg1RG5sdDRha3MvU0FSMmM0?=
 =?utf-8?B?aXhrellFajZqWjBYODFEeWtqa0ZjUjUyckE3NGMwWWpDbEt3Zlc2VC9NL3kx?=
 =?utf-8?B?Rytza2l1QnRkb2xTRExRcFZHZXFYZlhNNi9FWmRnWUlpbThvb3V1SnhEWFZT?=
 =?utf-8?B?eUliQ1hvNVJncGliWTd0QjJmMlVTKzczY254UytkSjNISTF2dEFQdjRaUlZN?=
 =?utf-8?B?VzhRZ3FaRmxSQkZodmt5SnI5dy9RVG5QcUtsZXdkanVPNEI3YU5VOW11OWhS?=
 =?utf-8?B?clZhOXBoekFDbmE0TzdkdFpIQzU5cUhHTkhuWE5LZnBDOUhVeUQ5WDBJekpN?=
 =?utf-8?B?MGdDaUIxNmdCUkVINU84a0VTemp6UFI1SHNQRDRzUGwweGZ1N1JHdUl2a0RO?=
 =?utf-8?B?NmdKQUFLbGN2MXlNTWRlVjFXcmN6ait1SzlIcVBZQSsvMWxZOENCMGRvdW5l?=
 =?utf-8?B?MDFVUDY0YXZVSTVUSlVzNTFMRWhLbnNqUnhRVFNoTVV5Vk50ekRwMTdjeExr?=
 =?utf-8?B?UmUrVmJidmNqOUtiMzdvVkFNWGJJNEt1TFpoYXJFTW12Q2Z6VHRjL2hRRlNI?=
 =?utf-8?B?VElLeDJUSlBUa3ZZRTZvZUErUnc4ZWwwczczOEcvcUY2MElJR2VjL0ZiS01G?=
 =?utf-8?B?cnhYaHY2dWdVYTI0M2tMaCtROVljaExGSEZVSE1rbTl6a21Bc1picHBFeC9Y?=
 =?utf-8?B?V05VMWR3K2VvOWNOYWtPLzgrU1ZLc1pIK08xSXBlNmN2cFJJT2R4RkdqZ2JT?=
 =?utf-8?B?NTNBeHlENkdMcmdjcUlrN0hySk1icVNaNWIwby8vNDVyWlJrZStuU0lqalli?=
 =?utf-8?B?aEp6RnhBOTduRjBvbEpvalhVNXhuSXJPZkNtRnNnMnRVSzh6ckJmdXhMKy9X?=
 =?utf-8?B?VithNHV6MWRwVks0OG5mY0M2RTV5Sm5ReDBWd0sxVDlqMlhEWkhxc3lsSWlM?=
 =?utf-8?B?SmxhMG01MnZrbHowSkltdjlTaUlDNnZFdWgyTzZwd0JpMVkwRmpvUXlGTzln?=
 =?utf-8?B?dFdBM3VNOUl1Nnl2OCtXOWNSN3Fjajk5NVFzMDQ5MHV2eldxaW5FV2VZYmtk?=
 =?utf-8?B?M3RFWHZSWk90K0tUOWlaMHlBdlQwRk1MdVVGTmZ1T0tpWnFTd01iUkZGcGpl?=
 =?utf-8?B?RE5DMWxiRHV4TE84VGxIR2t4VUpBUlBzTVh6UFRpQy9zZXJvdkpVR0o0eUtr?=
 =?utf-8?B?Wk5LUDRDZWJiUTVjTUJPWmtoZk83emNyUktpWm1WTkNUNG5wb0lMUHZxbC92?=
 =?utf-8?B?ZXRXbTNVMU1KalM1N1NsVW9LeEI5V3ROWUx2YzBlaXBpZXFTMy9yVUVYYzNj?=
 =?utf-8?B?d0VyNXJMajdDSForR0dLOXJxV0NIUDlEOEFWYWR4OUNjUDlpdCsrMHd4QmVD?=
 =?utf-8?B?bldzQWgrMG1JWURHcFh4ZWVlUjRMdXd4TEFmc2l4Mmc2RDlUTEJCb2lOUzM4?=
 =?utf-8?B?NGZYZjZubXNNbWRtMEpIQzdMZUpqSmQ0Mmd3VGM3eERqT2NrRmNMY2plVE9l?=
 =?utf-8?B?Yy9CeXlwWUtZR2JFK1huZ1FaTEw5N2NrV2xyTm1qSThON1lHVjJtT3UxOHp2?=
 =?utf-8?B?czQyaTRYWm1oK1BhczAxbUVDUjBab3N4Vk1UcWVKWTlxU3lhVXp3ZVcxbm1P?=
 =?utf-8?B?eE8rNEpWOXFKYi9lWVFuY2ozRnBFNUZla244dFFwR2ZLbkZTZ2sxRndQakJM?=
 =?utf-8?B?c1duckhZK1RlaVBXWEhzNTBtTkdYSE9BKzZFRXBGVzY2S1RDTXJFVHhGdXhh?=
 =?utf-8?B?ZTdUUGEyV01pTm1VSzJ0L3ZlYjNXYUlyNmQ1V05zWlBNSmg1cFBzM3FDMER4?=
 =?utf-8?B?NExRSy9teXRPU3lMTWpUelJPOGFTMnhvUXZXWGtMK1dlbEFnNWoySFkwTHpV?=
 =?utf-8?B?bnRkSEZuM2FNcm9lNXRWOFFzU3dvVml4RDRHbVdHT0J6Q2x3MWp0RWJDQ2py?=
 =?utf-8?B?aDN6RFpmdUVzUmJ5VnVzVWduYy9PU25vT0tkNFc3c3pRKzQ3OE1WRHBNUGtz?=
 =?utf-8?B?eFVhZzFCdW00bDNDR1B3WGlvZHpUcktZZ0pianJrUENSTVVYRUZEZC9wQitM?=
 =?utf-8?B?S3NpT3N1M0JaallYVForbnh3ZUp1L1l3NHd6RnRLd2lRNjl0cVZxeFkrWVNI?=
 =?utf-8?B?bTNtTys2QllUQWc1OTJ4QkphekxCancwVzBUWmErWGhKZVgzK0hobFR3NGZR?=
 =?utf-8?B?MUdObE95T0ljVEE4TkQ4akJaYkUvbHQ1V05adkpLVTdOUW9mWEpDUlV2Y2tv?=
 =?utf-8?B?b2tqZ0FTTEdyTFRlKys1ZXhjVGhXcTZJeFdtTVFFaVNpQ3k5b3lYcENnaWVp?=
 =?utf-8?Q?DbnIL46Qct/sfGxc=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 566874f3-4f0f-43dc-d2a7-08de8b2d26c4
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 11:45:17.5570
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: r8h9GyyQr3dDvZHK70Y11nkxFfxn8tsQAw67bMeDrM7SYcYZKFLzR2D14U3SYhVQSd4Vrt4y3526baWTLIMZcJUZenCvn8VHV6U9wnD2FzA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR03MB8376
X-purgate-ID: tlsNG-ebf023/1774525519-B309B9D1-A62481E7/0/0
X-purgate-type: clean
X-purgate-size: 356

On 25/03/2026 2:58 pm, Roger Pau Monne wrote:
> When using key pairs for the uart configuration (com1 and com2 command line
> options), report an error if the passed device=<type> is not recognized
> instead of silently ignoring it.
>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 11:50:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 11:50:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263830.1555655 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5jEN-0002wF-Q2; Thu, 26 Mar 2026 11:50:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263830.1555655; Thu, 26 Mar 2026 11:50:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5jEN-0002w8-NM; Thu, 26 Mar 2026 11:50:31 +0000
Received: by outflank-mailman (input) for mailman id 1263830;
 Thu, 26 Mar 2026 11:50:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5jEM-0002vm-Nc
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 11:50:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5jEL-00GGfd-Vx
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 12:50:30 +0100
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c51d83-5cb7-0a2a0a5109dd-0a2a4509ea66-8
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 12:50:29 +0100
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c51d85-e484-0a2a45090019-d1558030a4ff-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 12:50:29 +0100
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-48538c5956bso7648095e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 04:50:29 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48722c9f58fsm42493615e9.11.2026.03.26.04.50.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 04:50:28 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774525829; x=1775130629; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vtA1slz2tl9+esUZw3uwKOYvWjv+twSqUj92+LiXBA4=;
        b=XyTxUEh9konLt7lUqf4iHebmlMjDFZZO9vx1pW2cKf6euxJoiGSmnVU2rYEDQPYRSg
         7el3zLwda+2Q3ynj8p76tDMRMhG0odyouKnLlhrGzy2py8A8NHsBUQgFZparfWTUNkEy
         mDHy83qSVvqULrIXJMgMph9yC16dkcNdZont7EuiRWokxZDHC3ECpRWHkvqhxwLWbzU2
         2E2tc7+u0UinvkAogsXXLu5WVcf8UnJU2O2tbYkbVzR4oYfiFg7Uc7jP3LtkqH/mvac/
         WcrISoDku1Vs0yewIQoOQvaiunH7S2TdTJeMX9jr6tAtrpWRSEoS9q2nhjLhc1qZKFND
         ZUhQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774525829; x=1775130629;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vtA1slz2tl9+esUZw3uwKOYvWjv+twSqUj92+LiXBA4=;
        b=BQqmFI7ACLV/MxrSTuJjifi6jMXuQ/5CYef3Y4XdvN12b7yyyO5scdTTYje0db1kKY
         2JCX9FeRdo93TAyY9puyAg6OsDjgnBeg6/2a4sDliM2mddlV9Gcp8edWoq/6htDlyxHF
         SeBbVUdGw07jgUDq3AQhL1EVRcOFDNw5yQ10kXqZKft4brDkqSievWq17yLJoC8NXbOE
         gmVifyjgzmad4zxUdzaa7LT0smSV4XVfYkfYRNN2nBbG/sna8cygJxix9rMc3Toxh/q3
         kQ0SQ4fvMUqaAOXAqSilVmP0dfBgKPUwY4gYBxz1RnxmfqTwJyVfvXkCRAvpV8UyA2cM
         Lj4w==
X-Forwarded-Encrypted: i=1; AJvYcCVNcOM+utucQ8l6yyEq0buecgjINMagi2qSkzSMooM00NGkdLpWqPj9P2/EW/vGU6uUtDChArXLhxQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzGQvOQCd/pEFiHZgNV0ZR3tMAxkkyWNwGFs4pA6ACskT6ytgA5
	ihAyO/e9MFAfs3VtaXMtz9BUbd0jv3o0taLK+6Bd1ikJJKcDA7U6zzvEBPOlo+wDPA==
X-Gm-Gg: ATEYQzzd1wZQce91tBq+P3uqLx8zLZIwmwpNVlOEe58DVVPRmjeuvzjCTs+yboj4LR0
	dD8GFy6lgZKJeWWQYAOQ4/fUIc8MBepPloPZCoCrGJnX4vE8U932dhM4z01t7YutyCSQEyi5lmV
	iTR4rdksAidq9aIXL/vu92tTsOxCkd49VpuQnRsALMXdUI17IacoUI8bX6IcSR70T5Cx7DDUsja
	xS8ImUWjr8r070MW8sNdEvAQa6aBee/+t7qRyHX1K0vucg4nI0h0wj48WXjYwwBWgIPBpeYp3gr
	lQCVtAbLAXlupLZPa87qKnslqYnmQtgwqUA2dYiu1z+2Hh3ma8eTMK2QH8TFZJ8yZ0OWjg/2e8/
	5q5KFROh7OSETe1groHhBOeWakMznJwJNvS3+HJIHBC3ogUgOJVPyhtoCsmdkNKMdtC0tNYCup3
	ku2/AUc+davPoPS4Ui03BwBapfx819HwDoAxlB8wf1dX1DYr1asHVuiYirbhS9pZu5rBNAu6i6C
	TKsaoyHbUiFN1Y=
X-Received: by 2002:a05:600c:608c:b0:47e:e59c:67c5 with SMTP id 5b1f17b1804b1-48722bbf747mr19843085e9.8.1774525829025;
        Thu, 26 Mar 2026 04:50:29 -0700 (PDT)
Message-ID: <77e3a765-39dd-4eea-898d-cf9e31912cfb@suse.com>
Date: Thu, 26 Mar 2026 12:50:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] xen/mm: improve freeing of partially scrubbed
 pages
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20260326085145.61380-1-roger.pau@citrix.com>
 <20260326085145.61380-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: <20260326085145.61380-4-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1774525829-5BAA4A73-956525AD/0/0
X-purgate-type: clean
X-purgate-size: 3017

On 26.03.2026 09:51, Roger Pau Monne wrote:
> When freeing possibly partially scrubbed pages in populate_physmap() the
> whole page is marked as dirty, but that's not fully accurate.  Since the
> PGC_need_scrub bit is preserved for the populate_physmap() allocation we
> can use those when freeing to detect which pages need scrubbing instead of
> marking the whole page as dirty.
> 
> This requires exposing free_heap_pages() globally, and switching
> populate_physmap() to use it instead of free_domheap_pages().
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
> Jan: I'm not sure if that's what you suggested in the review of v1.  I've
> added your Suggested-by but I can drop it if that's not what you were
> thinking of.

You're going quite a bit farther. In my comment I really only meant the one
new use you add in patch 2 (in which case no changes to the body of
free_heap_pages() would have been needed, and hence why I thought that it
could maybe be done right there). Up to you whether to keep the tag.

> --- a/xen/common/memory.c
> +++ b/xen/common/memory.c
> @@ -177,7 +177,7 @@ static void stash_allocation(struct domain *d, struct page_info *page,
>       * interface is designed to be used for single-threaded domain creation.
>       */
>      if ( d->pending_scrub || d->is_dying )
> -        free_domheap_pages(page, order);
> +        free_heap_pages(page, order, false);
>      else
>      {
>          d->pending_scrub_index = scrub_index;
> @@ -210,7 +210,7 @@ static struct page_info *get_stashed_allocation(struct domain *d,
>              *scrub_index = d->pending_scrub_index;
>          }
>          else
> -            free_domheap_pages(d->pending_scrub, d->pending_scrub_order);
> +            free_heap_pages(d->pending_scrub, d->pending_scrub_order, false);
>  
>          /*
>           * The caller now owns the page or it has been freed, clear stashed
> @@ -391,7 +391,7 @@ static void populate_physmap(struct memop_args *a)
>  
>                      if ( assign_page(page, a->extent_order, d, memflags) )
>                      {
> -                        free_domheap_pages(page, a->extent_order);
> +                        free_heap_pages(page, a->extent_order, false);
>                          goto out;
>                      }
>                  }

Along with all of these there's then also domain_pending_scrub_free().

> --- a/xen/include/xen/mm.h
> +++ b/xen/include/xen/mm.h
> @@ -153,6 +153,12 @@ unsigned long avail_node_heap_pages(unsigned int nodeid);
>  } while ( false )
>  #define FREE_DOMHEAP_PAGE(p) FREE_DOMHEAP_PAGES(p, 0)
>  
> +/*
> + * Most callers should use free_{xen,dom}heap_pages() instead of directly
> + * calling free_heap_pages().
> + */
> +void free_heap_pages(struct page_info *pg, unsigned int order, bool need_scrub);

Might we better not put this here, but instead in a private header in common/?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 11:51:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 11:51:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263837.1555663 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5jF9-0003R9-21; Thu, 26 Mar 2026 11:51:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263837.1555663; Thu, 26 Mar 2026 11: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 1w5jF8-0003R2-VD; Thu, 26 Mar 2026 11:51:18 +0000
Received: by outflank-mailman (input) for mailman id 1263837;
 Thu, 26 Mar 2026 11:51:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5jF8-0003Qq-0q
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 11:51:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5jF7-00DOti-CQ
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 12:51:17 +0100
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c51db4-2eae-0a2a0a5409dd-0a2a4506a0b2-2
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 12:51:17 +0100
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c51db5-3034-0a2a45060019-d1558035d0fe-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 12:51:17 +0100
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-48702d51cd0so10510215e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 04:51:17 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487209204d5sm20941055e9.5.2026.03.26.04.51.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 04:51:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774525877; x=1775130677; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cgHbPY3il4fs7BpLDmBoNuMQOBUOgqBVYMOk11OJRik=;
        b=MrEp1w6y6ZG67a7DgnwkgaSCXYVv8hiSTGPbEZsbYrwCvEq0RUP1mds9rr842MbZ3v
         52ITDIafRDB8M8JjQmWcYg689DF4XF7my650PbtsWW0n5bqSK936n7LGwrWg829Gu0Vg
         br+HFSGO459OBocXLRq15Fw/WtVgbNYkd5KyK0f647hO5v/rWKkemsOZ99j18IEv6CXC
         9upLQp/IYpCTp21Dm1F4cebA0Yac/WTmppzxVXlqYRCklZ/YNa3qjsb7ylFfehNrddEi
         NQqM8lvevd/1er4rJ1nQ3iCzXlhKoX1I2q0QyuTq24idUAnFzRUObsAHoRUvPzD6T07x
         gSdw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774525877; x=1775130677;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cgHbPY3il4fs7BpLDmBoNuMQOBUOgqBVYMOk11OJRik=;
        b=DkOgdZixlVe9YTa7GTBC7wKLSszXXeNRhos+ptX2CLaw8/zO9VdV9gEs8JlbjKmNRD
         AOBZDimndfOCCT9wtDB9U1MFfm4m3SPq144ztGHH8xdSpbKgNQlmSeM8cN27qyRIJb1l
         pePrwsT5nE5fDSFTGS7kWG96OG6aovsZgGj0O6VfNlwcRpsHmh2VlXd4TTMqLP00s/aR
         b5A697wNpPQThu7zvf0W9Dv3AYugAIUrHfC7MPqDdqtmfPSxZdsXwzz/F8Bg1dpw5L03
         pjKEK47LC8kfaHIgdSRj9MIVrVeRWTNzkIDYPXjRcgsu4dC9Oqo6nER51dNs1xWx61Tp
         Gxfg==
X-Forwarded-Encrypted: i=1; AJvYcCXlNp0Z1Y2neEMsNOLVSlpepxTrUGzhHEUf+0eoag1acbtpsdUtV0uXEFsjqvIsCKjrq8qXqtSdebg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzBiMScvNGTYtCUfsharW08rvb8VpgskwOIEwamS592HeagnwiK
	IICV987JhrCxZvPf99sJcqPvrbDKHT3BwkJw2+ODWdpUk3UpmTdXx+LAXz0afRpdGYoafE0UDC9
	In+9klg==
X-Gm-Gg: ATEYQzxD6oQ48NBPiPezzgMC20zedmjtnM0oZmN6XAVfyZquAPF8BfI7TgbsXKJl1u+
	QT0vb7lbVtginpzgkwx3zAK+XHvJK39Ij03zqWDAye47V7y7r8GQGRfkgtmNom0TKBhrpHrOFTn
	rr+zjA2gF8Y9RN7hESUKP5hODmbKS20I8rt5FfLJu3sUV0tWYda8UWCZwJCKAfr7QwrtmdcBrBS
	DSSJFla2ru6TgyRoWFuq0EJ83/4wCfzMDxLV39+0zFlNIyzZMAIgYJwMpa0KzzdhFJr9ImITRPz
	38VLuaciC57Mv4cdMUViuuM1vL9FbqIZ5q4jWptwQnQC0XQonyCmDdETe6LT1+/KuuN6ZjIVWnz
	Qt8/PMRQtyZP7eQLCWsFqOCrHDwTHZz235IbXVSR8delS/lom5mcxNle0cU8FFGY3zN9PgJacUB
	P2myMBnUg3FXVaAModII+BsrPnnnCbG6A0JLpOS/F35p332/LHdgVZruSnnaS1qnevRpc7xg1t9
	tCM+PY6VuiuTzM=
X-Received: by 2002:a05:600d:e:b0:477:b734:8c53 with SMTP id 5b1f17b1804b1-48723317f06mr17311475e9.12.1774525876588;
        Thu, 26 Mar 2026 04:51:16 -0700 (PDT)
Message-ID: <bf4a3db4-802d-4a97-a07e-ac5470fe90b8@suse.com>
Date: Thu, 26 Mar 2026 12:51:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] xen/mm: do not assign pages to a domain until they
 are scrubbed
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: <20260326085145.61380-1-roger.pau@citrix.com>
 <20260326085145.61380-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: <20260326085145.61380-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1774525877-B3C9F1C2-C84D0750/0/0
X-purgate-type: clean
X-purgate-size: 1440

On 26.03.2026 09:51, Roger Pau Monne wrote:
> Assigning pages to a domain make them the possible target of hypercalls
> like XENMEM_decrease_reservation ahead of such pages being scrubbed in
> populate_physmap() when the guest is running in PV mode.  This might allow
> pages to be freed ahead of being scrubbed for example, as a stubdomain
> already running could target them by guessing their MFNs.  It's also
> possible other action could set the page type ahead of scrubbing, which
> would be problematic.
> 
> Prevent the pages pending scrub from being assigned to the domain, and only
> do the assign once the scrubbing has finished.  This has the disadvantage
> that the allocated pages will be removed from the free pool, but not yet
> accounted towards the domain consumed page quota.  However there can only
> be one stashed page in that state, and it's maximum size is bounded by the
> memop-max-order option.  This is not too different from the current logic,
> where assigning pages to a domain (and thus checking whether such domain
> doesn't overflow it's quota) is also done after the memory has been
> allocated and removed from the pool of free pages.
> 
> Fixes: 83a784a15b47 ("xen/mm: allow deferred scrub of physmap populate allocated pages")
> Reported-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Thu Mar 26 12:02:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 12:02:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263858.1555673 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5jPv-0005Or-5e; Thu, 26 Mar 2026 12:02:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263858.1555673; Thu, 26 Mar 2026 12:02:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5jPv-0005Ok-2g; Thu, 26 Mar 2026 12:02:27 +0000
Received: by outflank-mailman (input) for mailman id 1263858;
 Thu, 26 Mar 2026 12:02:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5jPt-0005Oe-VH
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 12:02:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5jPt-009Sje-BF
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 13:02:25 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c5204d-5cb7-0a2a0a5109dd-0a2a450190d2-20
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 13:02:25 +0100
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c52051-6400-0a2a45010019-d155802db903-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 13:02:25 +0100
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-48374014a77so10828265e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 05:02:25 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48720914e5dsm14104275e9.22.2026.03.26.05.02.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 05:02:23 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774526545; x=1775131345; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FeNuwUXtSTj/xR3BjqqT4rEnA7T0R1qi8aFedKcP+Ec=;
        b=UP5PlNQyPsQr4T90IFvOJj8G4aGrh+fDjqebJY1Nox2p3z+eVLyb4RBylUmw5S22Gi
         yEQT6jjA9u7M80VwZc75PIybZb++azSMtBo8qQKjtwHRlF3b+GLJ6kbjWDPGVXl4BzkB
         cpAippDgeDZSAKfMVqdSjJP+Oau9z1h5zL89NkFyxgMQvA7+2FPEfOX3HNKsKPTZ8xnw
         guUXcN90ug8BZYUn/suhAjG64xxBJYk5jTu6m5YTvSbL5TU1vJJmGOrT2lcOneQ/XnpA
         tGFZhfMyQ9MKL8cB/0hDrz9uaHqfAFPbHbH7gDFvtpr83ksXM8+RocnFQocxpgHtLUOS
         VmlQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774526545; x=1775131345;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FeNuwUXtSTj/xR3BjqqT4rEnA7T0R1qi8aFedKcP+Ec=;
        b=IVCXjAgfSniMfRgBE/Ap8v06eZ6QoYRHg+phK7BYR/RfsQ7380Baz9t2LdhjKhM/4b
         gI+aW1XKWZa9S8U8FsrZARQoktQzvALwyfG4BfZLK+bnSEgWfd1cZDWNLhAVVEkmsx8K
         gyyvfVza/xZJVEHT8M6xUTYMDGv+eIkolIVFD/Zm5J34eBSAe376tvx42o3s1siDpRSV
         SwZOv4bXopH+YQJn2L3imGSvjpT9EMOpQQSc0VKoYbzNJ1ZMZNb23T/I+LmaaZWfvyXh
         toWI0+TsIfSwAZJeTiM/WLLDUD69ZaLqjlR4H0ck+y6esD1WJg3sRQFwgOtIqRBXp6Bn
         wb9w==
X-Forwarded-Encrypted: i=1; AJvYcCXrKDhCkcs2JJYchURVeRUV6vNBQoEFnBNisIilDlEqMYyPA2SqtYLT3QmZeZttW3/yrMtYSUm4Uj4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyT8jzdEVePdSkZh9IB8+JKFk89FAJC1DlNbYHdQKc80n+6/nvP
	7tTqG6oSIUCCRZOaMoX1j0v+m7ShOT0zEFcTWB4uwGHC5TJXgCWXB3E7+pIU4iOGpA==
X-Gm-Gg: ATEYQzxLahKw8fqhgWNnHrdTyqlW4FYwUSieEJOFtOHWpmiShwPC+EHBEcY+4SRMDbS
	pBqCAv9sU3LPX78upQmMSM+1HZ4dEWeiYgCg3qo0P4NIgfIxNF+R+nyWEU9VF2tc1hgXxtdlEaF
	oTx+je9OwKkoTJT8FiQRuE0hw/AfB66OUNiNKDC7Gp4E0/A+sbEvwZjA/yKTa5jONsqHDKLCt+h
	LnUxFUwIcGu2rmTa7cj7V4Bz/Grpbeg9ZotMFbjG4/EF6liwnwgeI24AiwSdtmenjJb8K0Fzeax
	cPLBViOBdLZJruYJnr2gXlFSYPBNL598quJWUfyMPAccZjseDqBFy5TV6Gdx2EhJyY4lnlnxZQo
	ezRuIUs0IFxMcIePcnzNtCOErXnUCFBu+oinK9yZFVQpH47MCFw+7KGFMUzh1B9r+RZ7f/5Uk0C
	sXGKN15+q9f3k01jYD+IceP4euyoWRzsmkC7n0J/1lWUrYMgw+5DCFvYY0v4JQwq7eCQd1CCKwo
	D3tmjPM9v4An+I=
X-Received: by 2002:a05:600c:8106:b0:485:3f58:d84 with SMTP id 5b1f17b1804b1-487160b496emr112629615e9.32.1774526544523;
        Thu, 26 Mar 2026 05:02:24 -0700 (PDT)
Message-ID: <2a00a1d2-7017-4c76-8344-018eb3f30f50@suse.com>
Date: Thu, 26 Mar 2026 13:02:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/4] xen/uart: be more careful with changes to the PCI
 command register
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: <20260325145824.31601-1-roger.pau@citrix.com>
 <20260325145824.31601-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: <20260325145824.31601-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1774526545-8FAECDF3-8C8D1798/0/0
X-purgate-type: clean
X-purgate-size: 2412

On 25.03.2026 15:58, Roger Pau Monne wrote:
> Read the existing PCI command register and only add the required bits to
> it, as to avoid clearing bits that might be possibly set by the firmware
> already.
> 
> This fixes serial output when booting with `com1=device=amt` on a system
> using an "Alder Lake AMT SOL Redirection" PCI device (Vendor ID 0x8086 and
> Device ID 0x51e3).  That device has both IO and memory decoding enabled by
> the firmware, and disabling memory decoding causes the serial to stop
> working (even when the serial register BAR is in the IO space).
> 
> Fixes: f2ff5d6628b3 ("ns16550: enable PCI serial card usage")
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

I'm not convinced Fixes: is appropriate here. There's nothing wrong with that
commit, aiui. What's bogus is the device behavior.

> --- a/xen/drivers/char/ns16550.c
> +++ b/xen/drivers/char/ns16550.c
> @@ -283,11 +283,17 @@ static int cf_check ns16550_getc(struct serial_port *port, char *pc)
>  static void pci_serial_early_init(struct ns16550 *uart)
>  {
>  #ifdef NS16550_PCI
> +    uint16_t cmd = 0;
> +
> +    if ( uart->ps_bdf_enable )
> +        cmd = pci_conf_read16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
> +                                       uart->ps_bdf[2]), PCI_COMMAND);

Why is this conditional? While fine for the use at the bottom, ...

>      if ( uart->bar && uart->io_base >= 0x10000 )
>      {
>          pci_conf_write16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
>                                    uart->ps_bdf[2]),
> -                         PCI_COMMAND, PCI_COMMAND_MEMORY);
> +                         PCI_COMMAND, cmd | PCI_COMMAND_MEMORY);
>          return;
>      }

... it looks wrong(ish) for this path. Actually, in ns16550_init_postirq()
we use

    if ( uart->bar || uart->ps_bdf_enable )

for example. With the new conditional updated accordingly:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan

> @@ -307,7 +313,7 @@ static void pci_serial_early_init(struct ns16550 *uart)
>                       uart->io_base | PCI_BASE_ADDRESS_SPACE_IO);
>      pci_conf_write16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
>                                uart->ps_bdf[2]),
> -                     PCI_COMMAND, PCI_COMMAND_IO);
> +                     PCI_COMMAND, cmd | PCI_COMMAND_IO);
>  #endif
>  }
>  



From xen-devel-bounces@lists.xenproject.org Thu Mar 26 12:12:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 12:12:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263878.1555682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5jZJ-0007D2-0Y; Thu, 26 Mar 2026 12:12:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263878.1555682; Thu, 26 Mar 2026 12:12: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 1w5jZI-0007Cu-Sh; Thu, 26 Mar 2026 12:12:08 +0000
Received: by outflank-mailman (input) for mailman id 1263878;
 Thu, 26 Mar 2026 12:12:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w5jZG-0007Co-UE
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 12:12:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5jZG-009UPg-9l
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 13:12:06 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c52279-5cb7-0a2a0a5109dd-0a2a45049fae-42
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 13:12:06 +0100
Received: from [52.101.46.37]
 (helo=CO1PR03CU002.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c52294-c823-0a2a45040019-34652e25ffa7-4
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 13:12:06 +0100
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MW4PR03MB6947.namprd03.prod.outlook.com (2603:10b6:303:1be::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Thu, 26 Mar
 2026 12:12:02 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9745.019; Thu, 26 Mar 2026
 12:12:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pWyIBZsxidXZeNybSV8gv+TK/Lri0LajBo8CG8InvjNg1jlufcRv98WONgF6Yf5ag9IU14XGwWT5LxNDNhAfnx5vdCei6xgtpRIHRg+LuY2TMQonHqhss7Ue5F/GSQx2v2oSg/LXUitjyRvingCosIwirhsXZMfE2TwO/5mpD0p/Ki576vlDFlrdDXtFKKLaAaHqzYMBvoJnMiG2Bood85MPzMK0IJ6kuRlI68k7hH63p7i5Y8D+HLDGjf6FwgBdcTnzsdJGeamAzZNVZNCoQA8waGkRLCwxUTKcJBBCPzo/Y+SXTwKOcAiGy/UOPzlIGwigqiEcvwhgpMXZgYVAxg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OneWa1mTlOjw1igtSMmYu+pf/1N4Ajczen9Lk17MhiE=;
 b=zT1xKhLlN7hXdB2dYg3DV9AWAtZg1fCxuJJCSnG2mW5E6Aw8u54tKHOlzH/4mwx/mRtQVLWd8nZ53jVBTKO1KCsIjslu/YX/gBrjs2D/viMceFo2eqHkhtZoUaeAfAKIHYljf5EBYpBAs9veUBIist7t3hPCQmJ7m1YPU3SlvgsbNwlDvcCbCMqaD3FUnSuwZ+KgvU7cxKjcEbiGNQ/oXOZ4c2q58vHTCAfoaLP4Q7xI7kmg4VuyvCJKutmCaKkKxwaH2CtnXTqz8dEkpvngLO4Vei4pavm89LFJiAdmoGR4DBFzN81HBvjMtBOizuerbShdQyk+wlheMTI9rbzV0Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=OneWa1mTlOjw1igtSMmYu+pf/1N4Ajczen9Lk17MhiE=;
 b=kWVdEAzHGm6CZXlW9UAlBO6t+QrZWdUYGiMuJAJb5keWOm6DRDzMAoaDbbNL83zMiMGJ4uAm/MLAdGhNTzqkeDM21gq0e6nLstvihxzfNMeaYYYM2LpC9MnQoX1LbsI2GU1RYtU2VO3rSWtvz+5NRbdwtIuvfvOzMafXwbA2C3g=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <c930ee22-4cab-4bb4-b8fd-fa5e77f7505b@citrix.com>
Date: Thu, 26 Mar 2026 12:11:58 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 4/4] xen/uart: enable parsing ACPI SPCR on x86
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20260325145824.31601-1-roger.pau@citrix.com>
 <20260325145824.31601-5-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260325145824.31601-5-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0633.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:294::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_|MW4PR03MB6947:EE_
X-MS-Office365-Filtering-Correlation-Id: 7ce736a8-66a4-42d5-8f29-08de8b30e348
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	tCkdh1PHY1sDRDr4v0DACPbRMIkre6r41snvrYfUeluMBJRhkui4sBSgtVHQoGt0K/2NqdIv9Kf8HCffn82ueOc8yKOipXyt7jrZUTgkmkAsnZwnG9lLjeDCPZ1Js5A3/j4xVNk/F7GM9adTiztGIETY4RcKbU6EFH9Ms6wxLMfxvmotzwW2wRkVAFVU531dOjhfU1OSVuXkXvuPkWUkl8VWRW+y+8zSwfMEUwjot6I80DGcfMpCPZQvs/bT1ES2agX95QoaG262od2C+xKRkhpCQrgyXG2lqYLHsZAKLKbkYRdm95H8LbpClPGRRDjxiTsYhzqyNEcOtsETVkHbXGEHS688QDVGpTWrWpxWCuaB9AYrl2d3RdtKLifmXePDhS77EgasIoVpm7h2uZas1MijFPtmwsU4xtQ24DyWBwTi8tNNlvcxp+P0n4D3SxbYzyxZtcFr4hdlWptGClMhT8Re7JALp2kKpRMdd72748FYjxXvRKdR+fSFqyKv4qI2/zCKQwIQa91aiurrI1eHSPJ0lmh+llOskVFIn0LChz/qL4f/4KikB1aAXEJnl5qa17Pg3R2uCqGXGbclzWStinLQO3rUD0nEzQUo+eWl+O80e80aEfCr91NifxpvFFADnU6EDktJdWsTSAcm5dBL/gJFzEQygozQ6mC8bJHWjTuJk2RhzqkWoBmxrHpzYxV0Umouti6LKBFyO3jxda540NenBrgzVPcgBb+d5hILy+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)(1800799024)(366016)(376014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UXE0aXd0WDI2c1huTzVKUDQxZ3NKYjFjZFlhVkJDTWpodjdnVUVDcUZIclFU?=
 =?utf-8?B?QVZCNDMzcXVZMmFDU0U3M29wOXo3TzlUWU5HMFBJVFcyWXFwREFUOEYrQkpy?=
 =?utf-8?B?K0EyOTZUMWlYVjdNSlNOVXlJQTBnOFN4RUNWYURVRU8yR0I0SW1WOW51bk5Q?=
 =?utf-8?B?MGZTcEk4TXJWQ1hZaVl3Ym9TVUUwQ3VvMUlJelh0TWI5WmxGVnA5RE1hcmQy?=
 =?utf-8?B?RFFnZEFveXViYVRkRGlqaTZBVW9FZ0k3d3dvV2hTNkh4eWswSVozY3dONGZI?=
 =?utf-8?B?T2R0ZmdiblJ3ZWlmZVNCc1M4WXhsdzhZSEIrb0VCYzdOUXBJejJLWGw2YXFP?=
 =?utf-8?B?U2VqUzlBd3JhQStlY3I4cXQwbDhTczVTZytPZGltQW9JY1dqL2NaeUxNNVo2?=
 =?utf-8?B?RjNYRlRGZVNnYms1ZGx3RnM4M05SSGFvaGp1cFRXZi9Eak5qL1JmVStHVW9i?=
 =?utf-8?B?QjNZU2lPTitpNVdSbzNsMWt2bnBoVXQ5UWpaazZUWVpTQW1meVhsQy9Tczky?=
 =?utf-8?B?NVNYdldUc25zU0RJMWxVbXozMTRNSGk4NlVIWjRHb0ZlS0hqRXZYL1NzTjlv?=
 =?utf-8?B?SGpZTDNXVCtaMFJCQmRUWE05Y29kQlNBSlhsVlJmaGw3eDBCMTJYTmYrc0NB?=
 =?utf-8?B?UVJxTDZKYUNGeGdMVUZidlE1MGxmbzFtVit1S0MvRk11UWtVdTZDSDNoQ1pn?=
 =?utf-8?B?NEhSVGJFeisrVlNuNUdWYnFtanlvRTNpcGZ3WWovQzR6REdiSUh4RW1lRkgw?=
 =?utf-8?B?LzN6SEtYd2l6STA1YVpRSmZPUklZQ3M5RDdQMnV5dzl3emJNendycFN4Q3NC?=
 =?utf-8?B?YkZPanRWclpxdTJ2QVRiY3A1eWRyN0R6VTRLb3ZUOU03QjY1UFdlUDIxMThI?=
 =?utf-8?B?WE1OYmdVVXoyNDNpNk4zL0RUQ29kQy9aNWdJQnFlbmNMaG5mWWZwTnF6Z1ZL?=
 =?utf-8?B?ZkdjTHZlVlZwZVhaaFdCZ21VL1VoZjlwbVEwMkdNRjdGdXgwc0ZkUURIRWVN?=
 =?utf-8?B?Y3ZZZkg2NlJzbVJQdTZtN1BDZmJpNU1FRGlXdUVLTEFveEJBd3dsTEcydTFI?=
 =?utf-8?B?UUR0dG9KTHZ6bmd6TnM1UDZNWHJ0Qmt4Y1prSnFBcGJmS094M3RRUG9xR3U2?=
 =?utf-8?B?NkZ1dWhkSnV1VEh3Q3JzQldvNXMzT01uUXNwamF2MmlyK0dBNGdzL1NwYXVB?=
 =?utf-8?B?V2RxSzJlbzlCU0VSc3BPT2cwVGtZcnlQeW5ud01pTFJkeWF0UWhBK3Nyck9i?=
 =?utf-8?B?VHRZL3U5NHIrUEorR08zWFBCMGRsUng1WDM4S2VPNk1EeHo3SnF5WGRWekhE?=
 =?utf-8?B?LytJQ2dJNmxEc0tnR2ZQZmRWWGxHcFZ6WXZibmtlSy9XOElVTGNUM0dZeTBC?=
 =?utf-8?B?cGNwM3B6aVVBN2I1RjRINm1mL0NSSTIvVjNGOGp3ME9VNFRyakJWcTJocExF?=
 =?utf-8?B?NU1ycnk3eVJML1VxQlczVjJMYzRPWkpBeXZtUytBdFE3UHVFaTM2TDBNMnMx?=
 =?utf-8?B?V0pHdkFYS0Nrekw1TXlZUnhXcXMydTZ1R1RjZnd0ZWlqaCt5MGNBdVd6bUhL?=
 =?utf-8?B?Z0M0RkFTU2NQRSt6NzhEYzZYREx1cTIxdm9ONXRUeWl2L2ErUDJhU0tvR3A5?=
 =?utf-8?B?SDcwN0Y2N0l0aGV1cVZqakdDR3NHUkczTEtMMkJaVjN1QjVzcWRJM3VnY3da?=
 =?utf-8?B?L202SXh2blFYbmV5ZnZaYzZyZ3dML0hnbXdwRzlvbVl6bTRBZFcvUjdDN0ZL?=
 =?utf-8?B?RTNFRW9TeEFlRWNrVUZjak55NnNEMEF5YmFnbjI4UWxaR2M0blQyOGcwUlJO?=
 =?utf-8?B?Q0sxOFpzWHZyTkNTb2NHRjVMczhNVlgrb04zYU9KQ3FHR0NQMlZsYXBvVndu?=
 =?utf-8?B?TFU5UUxWL1MrbHZ4SFpvRUdFUmMxbjNJdmpKMTRQUU4zRjBadzdqQ1JUUmdM?=
 =?utf-8?B?T2dVR2JpTDl3aHdzcFVrL3JGZWVOVDFvT2JWMjBINmh0WW5xbFZhUFovaXZT?=
 =?utf-8?B?YmpZSUlxdkJrTzM1SjhoWmxmVVczT3FNbVQ0dlNnajRGQlhRMDBUL1FUQ01T?=
 =?utf-8?B?VXlsWVpQc012UDY0T3dBSmpRZzZHUk5QcVB6TWNHY29iSHQwa2pSZUI5ZEcz?=
 =?utf-8?B?T0pjdEdvT0NwbTdlNXEzMFJHc3ZPVkk4SHpvdk9ZRDZzS2NtT2JrV0NwdkNH?=
 =?utf-8?B?VjZYdEFJTHQ2QU9qYzl3aG9Yd0RDZmhXQWtTeFEzenk2WldXRHA2eVhYS0Zp?=
 =?utf-8?B?YkZCTmkzZTNWdnE2Mzd6NWxYMXowTk9QWFUrUU5GVWkxYVBwVTRSUUdLRXBP?=
 =?utf-8?B?Mk9rSm93cTd4VkJvTnJDOHFrbCtBTnpTQmpCZ2ROK1c3eU5mZ2FpUkFBMGZr?=
 =?utf-8?Q?9BD2dkgmV6U1F234=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7ce736a8-66a4-42d5-8f29-08de8b30e348
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 12:12:02.1724
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: rgy7jV8KoHu5E7CvLYMjGaspo1Om7tyWV1y0/d/dzVFjKFgZ0Mnpql8OYFS0T2n6vc8bTP5UIlmEQGlpyRyoIK+Ukx7JE4/14qgvolaZtfg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6947
X-purgate-ID: tlsNG-ebf023/1774527126-1147E9D1-9E689CDE/0/0
X-purgate-type: clean
X-purgate-size: 1635

On 25/03/2026 2:58 pm, Roger Pau Monne wrote:
> Introduce extra logic to allow parsing ACPI tables extra early, and use it
> to parse the ACPI SPCR table and obtain the serial configuration.
>
> This is gated to the "acpi" device type being set in "com1" on the Xen
> command line.  Note that there can only be one serial device described in
> the SPCR, so limit it's usage to com1 exclusively for the time being.
>
> I can't test the interrupt information parsing on my system, as the
> interrupt is set to GSI with a value of 0xff, which is outside of the range
> of GSIs available on the system.  I've also assumed that the interrupt
> being 0xff is used to signal not interrupt setup (just like the Interrupt
> Pin register on PCI headers).
>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
> WIP/RFC, not sure whether there's interest in attempting to pursue this
> further on x86.  So far the device I have is also exposed on the PCI bus
> aside from SPCR, so using com1=device=amt also works to detect it.
>
> Posting it kind of early to know whether I should try to polish it for
> submission or we are happy with not having this on x86.

I think we should be using SPCR/DBG2 when available.  Getting serial
configuration right is always tricky, and we might as well use the help
that Microsoft have forced the OEM/firmware world to provide.

But, I think it should be automatic when the user asked for any kind of
serial.  e.g. console=com1 with no com1 configuration.  The point of
these tables is to provide an enumeration mechanism where none
previously existed.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 12:24:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 12:24:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263896.1555691 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5jlP-0000eH-20; Thu, 26 Mar 2026 12:24:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263896.1555691; Thu, 26 Mar 2026 12:24:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5jlO-0000eA-Vc; Thu, 26 Mar 2026 12:24:38 +0000
Received: by outflank-mailman (input) for mailman id 1263896;
 Thu, 26 Mar 2026 12:24:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1w5jlN-0000dy-MF
 for xen-devel@lists.xen.org; Thu, 26 Mar 2026 12:24:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5jlN-004HuI-1x
 for xen-devel@lists.xen.org; Thu, 26 Mar 2026 13:24:37 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69c52581-2eae-0a2a0a5409dd-0a2a450cd252-30
 for <xen-devel@lists.xen.org>; Thu, 26 Mar 2026 13:24:36 +0100
Received: from [209.85.208.44] (helo=mail-ed1-f44.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jgross@suse.com>)
 id 69c52584-f93d-0a2a450c0019-d155d02cb850-3
 for <xen-devel@lists.xen.org>; Thu, 26 Mar 2026 13:24:36 +0100
Received: by mail-ed1-f44.google.com with SMTP id
 4fb4d7f45d1cf-661cfb9f3aaso1283458a12.2
 for <xen-devel@lists.xen.org>; Thu, 26 Mar 2026 05:24:36 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9b20218741sm111025866b.1.2026.03.26.05.24.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 05:24:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774527876; x=1775132676; darn=lists.xen.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=BjiVae1OUkiC7qr8+WSQzejecCRmB09E/ef3t348aHc=;
        b=YXk7+PPw02YvvA+qLePIed3855mUaWTOyCZnw/DOPJHyTtTIJGbOybKR9o1cBAM0DE
         R7kRctvMN0HwIgInMexFwnyWAqvDJiQsD/IxEF0bnkOS0hXh5C9KoqaT/4SCpPapExJP
         Me6Uub3Xhkha30GhdYWWpwXsqqDyPwIJjcRmAXx19rjOgMIoeaeDvys6gfI1h8xmK95K
         YZAt+mmv+/yfHGWAI5peKjbvAe1S1IDQl0WYc19IGqUVL41rHPjFa1vnhaECo9qB124Y
         Tji2xRU89ezFlpx2j12f4+wh4sFjZAUM2PmlpIOW3iYAlSVhfifFdsanNs/efpgA5M88
         n80g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774527876; x=1775132676;
        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=BjiVae1OUkiC7qr8+WSQzejecCRmB09E/ef3t348aHc=;
        b=UCZeE42UKItdmKbWnyVdTgLCgJqn9/tidpcxY7LlZAEhspgfsfnRRyNFNYBuTget2b
         hcpd10TsqUYxIx6r/uLuRKvvCrd6Epj0+bdf3kT0Wp9QavY/SFFEtNaqul0PEo7/GfDI
         tHE7jFVQijYVMtijxDWmFskXAACi7O93/FStuE+wMzregAjYyh6jBm/Xp03oj26IXhW1
         Czot2et8+W6xHdCT8X/fAGuxUb/tf/seqU1N3G3Up1XJLi0fNyeIn6MaEyogIJ44Zs6k
         9xywxIlLh0/8p9GdLAGKQjTjmxqicnZYYNjm5oSKpHKo/sL5+5fEI4t1I0akvf5U6ZUa
         VJ3A==
X-Gm-Message-State: AOJu0YxKCVRaw0ss4JwyllPnC5Z6GNF7GcErmIs99etyqPiNt8XrkBeg
	nvyzEzwJQHKt8c7yF4JVZuKdR9gU80kGE9/4EeD9cpoweAYRhjdsvxKUZqgD2+EyjSw=
X-Gm-Gg: ATEYQzypurFD5ArY9tDp77kBip3lIt7PuPTi+2SZPsqHQuOb0QkTI4p4cTbsRVBaqMG
	l9Mjf1ryOAk1BULLPLjikCt9zrhdr2UAc2WKhS0i//UVhXB2VDectGEc9lH2K4B7QvbBKkvoMnM
	w6eWV2Vy3YtlBsxYajG0ESD9yWSywp8NsRqQFMDEOCkV5kz3NxUPwniVE3bHLII6h8L7PBCgZAc
	lX87HegADECm2ZxyCQhr9YBAq9iP+SmjHjt4B78WT4EqdCNattcesxYOW1/2UfniX1hwHKw4bqd
	Ew9tMxFzwIl9ooG5sTy+mElpgNEPMj0pN6B7m8fpDBr48Gsyy0E2efmus13f2MDFnKvSK1vkDC0
	ORp2+PE9yVwZ612GLJps8d4+K/OEw0oW+jvDBqHQl/O68jkHfT1p+dwoyXoDxWAXSkF8Fknx1wC
	JjErQbgIscDBUg8PgXL0DbQ+MGUGmvbcHRGR+X/y/ppiPSY0jCmw7jRZsBu/w5Zrw3xojroVEqM
	KkBKlmrts1ampuIjdCA/LUGCLM7QBCllMBH1wZCfw/96Aq8+IN83A==
X-Received: by 2002:a17:907:e0d8:b0:b97:f12a:3f8c with SMTP id a640c23a62f3a-b9a3f17f152mr307406766b.20.1774527876090;
        Thu, 26 Mar 2026 05:24:36 -0700 (PDT)
Message-ID: <a8d5f53c-ad38-4439-9dc6-930519db9c0b@suse.com>
Date: Thu, 26 Mar 2026 13:24:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [oss-security] Xen Security Advisory 482 v2 - Linux privcmd
 driver can circumvent kernel lockdown
To: Greg KH <greg@kroah.com>, oss-security@lists.openwall.com
Cc: xen-devel@lists.xen.org, xen-users@lists.xen.org,
 "Xen.org security team" <security-team-members@xen.org>
References: <E1w50W0-00Bwo0-1i@xenbits.xenproject.org>
 <2026032453-departed-thrash-f153@gregkh>
 <2026032405-faculty-agony-2599@gregkh>
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: <2026032405-faculty-agony-2599@gregkh>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------nw8gdKChhgJqVH12D0LHtpD0"
X-purgate-ID: tlsNG-d25034/1774527876-6ECAA734-CE37728C/0/0
X-purgate-type: clean
X-purgate-size: 8271

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------nw8gdKChhgJqVH12D0LHtpD0
Content-Type: multipart/mixed; boundary="------------KP00Cr08CaoLPpzGlMsnkBLb";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Greg KH <greg@kroah.com>, oss-security@lists.openwall.com
Cc: xen-devel@lists.xen.org, xen-users@lists.xen.org,
 "Xen.org security team" <security-team-members@xen.org>
Message-ID: <a8d5f53c-ad38-4439-9dc6-930519db9c0b@suse.com>
Subject: Re: [oss-security] Xen Security Advisory 482 v2 - Linux privcmd
 driver can circumvent kernel lockdown
References: <E1w50W0-00Bwo0-1i@xenbits.xenproject.org>
 <2026032453-departed-thrash-f153@gregkh>
 <2026032405-faculty-agony-2599@gregkh>
In-Reply-To: <2026032405-faculty-agony-2599@gregkh>

--------------KP00Cr08CaoLPpzGlMsnkBLb
Content-Type: multipart/mixed; boundary="------------PP8RneE0SuDwvL0vSRYinmq3"

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

SGkgR3JlZywNCg0KT24gMjQuMDMuMjYgMTM6MzEsIEdyZWcgS0ggd3JvdGU6DQo+IE9uIFR1
ZSwgTWFyIDI0LCAyMDI2IGF0IDAxOjE2OjA4UE0gKzAxMDAsIEdyZWcgS0ggd3JvdGU6DQo+
PiBPbiBUdWUsIE1hciAyNCwgMjAyNiBhdCAxMjowNTo0NFBNICswMDAwLCBYZW4ub3JnIHNl
Y3VyaXR5IHRlYW0gd3JvdGU6DQo+Pj4gLS0tLS1CRUdJTiBQR1AgU0lHTkVEIE1FU1NBR0Ut
LS0tLQ0KPj4+IEhhc2g6IFNIQTI1Ng0KPj4+DQo+Pj4gICAgICAgICAgICAgICAgICAgICAg
WGVuIFNlY3VyaXR5IEFkdmlzb3J5IFhTQS00ODINCj4+PiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdmVyc2lvbiAyDQo+Pj4NCj4+PiAgICAgICAgICAgIExpbnV4IHByaXZj
bWQgZHJpdmVyIGNhbiBjaXJjdW12ZW50IGtlcm5lbCBsb2NrZG93bg0KPj4+DQo+Pj4gVVBE
QVRFUyBJTiBWRVJTSU9OIDINCj4+PiA9PT09PT09PT09PT09PT09PT09PQ0KPj4+DQo+Pj4g
UHVibGljIHJlbGVhc2UuDQo+Pj4NCj4+PiBJU1NVRSBERVNDUklQVElPTg0KPj4+ID09PT09
PT09PT09PT09PT09DQo+Pj4NCj4+PiBUaGUgTGludXgga2VybmVsJ3MgcHJpdmNtZCBkcml2
ZXIgY2FuIGJlIGFidXNlZCB0byBjaXJjdW12ZW50IGtlcm5lbA0KPj4+IGxvY2tkb3duIChz
ZWN1cmUgYm9vdCksIGUuZy4gYnkgbW9kaWZ5aW5nIHBhZ2UgdGFibGVzIHRvIGVuYWJsZSB1
c2VyDQo+Pj4gbW9kZSB0byBtb2RpZnkga2VybmVsIG1lbW9yeS4NCj4+Pg0KPj4+IFRoZSBD
TkEgY292ZXJpbmcgTGludXggaGFzIHJlZnVzZWQgdG8gYXNzaWduIGEgQ1ZFIGF0IHRoaXMg
anVuY3R1cmUuDQo+Pg0KPj4gVGhpcyBpcyBub3cgYXNzaWduZWQgdG8gQ1ZFLTIwMjYtMzE3
ODgNCj4gDQo+IEFuZCwgdG8gYmUgbW9yZSBjbGVhciwgdGhlIGtlcm5lbCBDTkEgc2hvdWxk
IGhhdmUgZ2l2ZW4geW91IGEgQ1ZFDQo+IGVhcmxpZXIsIHNvcnJ5IGFib3V0IHRoYXQsIHRo
YXQgd2FzIG15IGZhdWx0LiAgV2UgaGFkIGJlZW4gImJ1cm5lZCIgYnkNCj4gb3RoZXIgZ3Jv
dXBzL2NvbXBhbmllcyBhc2tpbmcgZm9yIENWRXMgImFoZWFkIG9mIHRpbWUiIGZvciBMaW51
eCBmb3INCj4gdGhpbmdzIHRoYXQgdHVybmVkIG91dCB0byBiZSB3cm9uZyBvciBub3QgbmVl
ZGluZyBhIENWRSBhdCBhbGwgYXQgdGhlDQo+IHNhbWUgdGltZSB5b3UgYWxsIGFza2VkIGZv
ciBvbmUsIHNvIEkgcmVhY3RlZCBtdWNoIGhhcnNoZXIgaGVyZSB0aGFuIHlvdQ0KPiBhbGwg
ZGVzZXJ2ZWQgYnkgc2F5aW5nIHdlIHdvdWxkIGFzc2lnbiBvbmUgb25jZSB0aGUgaXNzdWUg
d2FzIHB1YmxpYy4gIEkNCj4gc2hvdWxkIGhhdmUgdHJ1c3RlZCB5b3UgYXMgb2J2aW91c2x5
IHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZyBoZXJlDQo+IGFuZCBzaG91bGQgaGF2ZSBn
b3R0ZW4gYSBDVkUgZm9yIHlvdXIgYWNjb3VudGluZyBlYXJsaWVyLg0KPiANCj4gQWdhaW4s
IG15IGZhdWx0LCBzb3JyeSBhYm91dCB0aGF0LCBpZiB5b3UgYWxsIG5lZWQgb25lIGluIHRo
ZSBmdXR1cmUgZm9yDQo+IGFueSBpc3N1ZSwgd2Ugd2lsbCBhc3NpZ24gaXQgYWhlYWQgb2Yg
dGltZS4NCg0KVGhhbmtzIGZvciB0aGUgbm90aWNlLg0KDQpTdWNoIHRoaW5ncyBoYXBwZW4g
YXMgbm9ib2R5IGlzIHBlcmZlY3QuDQoNClN0YXkgdHVuZWQgZm9yIGZ1dHVyZSBDVkUgcmVx
dWVzdHMuIDotKQ0KDQoNCkp1ZXJnZW4NCg==
--------------PP8RneE0SuDwvL0vSRYinmq3
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-----

--------------PP8RneE0SuDwvL0vSRYinmq3--

--------------KP00Cr08CaoLPpzGlMsnkBLb--

--------------nw8gdKChhgJqVH12D0LHtpD0
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/Ey8FAmnFJYMFAwAAAAAACgkQsN6d1ii/Ey/D
nQf/frf7lOqSmDBJXfXZ/2DO0ZGv6qn75PPVjrd9AQfEKvdy6l6uxLXb2IPKSAvpb3aZZvb/7ZI4
2c2aYM0KHLHgiZDakcqS45/5+V28yunp0hH7anGj/VJ2c9abvo4AJ9kFxkeRBi08LSNGTIcS0Wyd
18nkgzWuUN5djvS3Ou5anij2ozbpSVLWfYCY6KfUPuux+v58VF3HbxVfwCJujdxtgMbABGvE4YWe
R1LitIOk4WZS6TAyVBrLVZlDQ6fsvxaUs7zBt5O3iTattGbM5RNx3SiM5lyt23bRGIGAGv566C43
jJUvW97uZJMX9K3fH2axA+EXm3nGMYR/UTnHFqn83Q==
=F6F6
-----END PGP SIGNATURE-----

--------------nw8gdKChhgJqVH12D0LHtpD0--


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 12:44:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 12:44:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263964.1555716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5k4t-0005Hi-2Y; Thu, 26 Mar 2026 12:44:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263964.1555716; Thu, 26 Mar 2026 12: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 1w5k4s-0005Hb-VX; Thu, 26 Mar 2026 12:44:46 +0000
Received: by outflank-mailman (input) for mailman id 1263964;
 Thu, 26 Mar 2026 12:44:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w5k4r-0005HT-DJ
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 12:44:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5k4q-009c9r-P7
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 13:44:44 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c52a39-2eae-0a2a0a5409dd-0a2a45048a3e-8
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 13:44:44 +0100
Received: from [202.12.124.144] (helo=fout-b1-smtp.messagingengine.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c52a3b-c823-0a2a45040019-ca0c7c90844d-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 13:44:44 +0100
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
 by mailfout.stl.internal (Postfix) with ESMTP id E7B901D000E8;
 Thu, 26 Mar 2026 08:44:42 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-03.internal (MEProxy); Thu, 26 Mar 2026 08:44:43 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 26 Mar 2026 08:44:41 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm1 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1774529082;
	 x=1774615482; bh=pQwJsngGFYorTGBf8FmLYGEiqapvMhi1HGAp9Pb5pgg=; b=
	rxqH8+vgyZA/C1Ae3TJgg0ed+LWNg1PKOhQwMG4aZGb64SmelcGlxuaP7bJ3hIDE
	82EuUwlTDMTRwL8Z3aEdtU1TJMRLY8LKuNtJek1XgznNvq1mGXLNumE5unYkgg4H
	3M3mral+7dnGrEysO2AaVYuXFRrTb94I+Mvy33RjpTmGdop+n6K+ZAtzl0VPbqGx
	xY7dHxroA0Wt+Ln2FbJD/GMdBK6xWNLLzcom2Sc7TX6ScLa2OdrR5EuLYHUiCs4E
	9YNjYBpG5BR6VpRiVBtKtRMGrwEKxz2qa1hTYqvgPd97jVghdlc5EjKOFMrZfLDX
	zStpMZk93j2RUedn3VPR3w==
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=
	1774529082; x=1774615482; bh=pQwJsngGFYorTGBf8FmLYGEiqapvMhi1HGA
	p9Pb5pgg=; b=UK3wozv42hL4aPtwLe+c1ls5oj/CHYgDC0ggd9KHmJkxcY1iF/S
	PpHX49CZcWDJU7SICT9rAj4+P0/VI3rPhrTb2z5GarKrGNLu0DWrRTOKb63dexqo
	dY7rXM/4aGAdnKTQ24C+yh/fLzh4mUpgcQVYSCMtLOgjFx0l4sReYQa8b2p2k8/i
	uhKIW5Jugol7WFTF3Re+VjbFyMQRpMsNVrwcWJh30hADuj5akyCa/1LnOqtvlnJR
	8nXmfR/LasVtpZJ1Pz1BeOnfCtSxpwZhEBFmzw29ehg2O6QiT7xjFwstkRFJ+qJk
	n412RvsiBoZVPgPOOKcqTCuRyrBZnKu11lQ==
X-ME-Sender: <xms:OirFabPbHgZDd44Gr08oOSDKcAwH7UOR-lSSU6YWFvKOzH3g9xfiYQ>
    <xme:OirFab_8HfBT1dnod70g9mJ53VtT1u9HFWmNzCLh9PyP85BFXg2ukZgC8IEC3_SmK
    tlYOxzsoQ8pirLFm6pYtHv4BKb7WrQR52g5_v2WmB1ETbBm5g>
X-ME-Received: <xmr:OirFaX4tNQRtZ0wby3_VibHpU2qnev1UNHKw5WN8ZusIGYKnjsxmf55FMMZftF7rwZVI8l9LsLQYKkNXhh1PCt5NGMWU4WDtuNE>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdefvdejgeduucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepueefuedt
    iedtvdeltddtieejgefhueejfeeiteelleeugeetkeevtdeifedvfeevnecuffhomhgrih
    hnpehquhgsvghsqdhoshdrohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgr
    mhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgsh
    hlrggsrdgtohhmpdhnsggprhgtphhtthhopedvpdhmohguvgepshhmthhpohhuthdprhgt
    phhtthhopehjsggvuhhlihgthhesshhushgvrdgtohhmpdhrtghpthhtohepgigvnhdqug
    gvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhg
X-ME-Proxy: <xmx:OirFaa3bhe3AHETypVw3Dzm52ImSu6VN6o7Z8YxVXzwywh58oPTQUg>
    <xmx:OirFaWB0ntgzEFIB2CZqFDQUAbqLGCYaSOPZygk31ll9Ro43403bGA>
    <xmx:OirFaU24Hb5MGAuXZreEDQlzGr2usL-jXQbLFLTdMWR_z-TuaCX8jQ>
    <xmx:OirFaYtZzS4I1CHew68Yx-DZczfPBrcmbU-MtGK6KWSHw3R-TiOKRw>
    <xmx:OirFaZjLBKef1a7OjJaxy4OMgvz3ppv-554HJUM2B5zA9i6fj8qZ96LZ>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 26 Mar 2026 13:44:40 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: Slow (higher scheduling latency?) system after S3 - regression
 4.17 -> 4.19 ?
Message-ID: <acUqOL232lp-Lw1v@mail-itl>
References: <aPzBO_eW8mQHM66u@mail-itl>
 <acQzzlXNDxNq885V@mail-itl>
 <29775afa-e17b-4c44-a2a8-4ef4bc7cdf0f@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="lCKMT5P1F6dXhpSG"
Content-Disposition: inline
In-Reply-To: <29775afa-e17b-4c44-a2a8-4ef4bc7cdf0f@suse.com>
X-purgate-ID: tlsNG-ebf023/1774529084-B9E809D1-82D4BD39/0/0
X-purgate-type: clean
X-purgate-size: 5386


--lCKMT5P1F6dXhpSG
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 26 Mar 2026 13:44:40 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: Slow (higher scheduling latency?) system after S3 - regression
 4.17 -> 4.19 ?

On Thu, Mar 26, 2026 at 09:27:56AM +0100, Jan Beulich wrote:
> On 25.03.2026 20:13, Marek Marczykowski-G=C3=B3recki wrote:
> > On Sat, Oct 25, 2025 at 02:23:23PM +0200, Marek Marczykowski-G=C3=B3rec=
ki wrote:
> >> Hi,
> >>
> >> After updating from Xen 4.17 to 4.19 it appears that I have some
> >> performance issues if system was suspended before. For now this is just
> >> vague observation, as I don't have much data yet.
> >>
> >> Generally, the user observable effect is that audio playback (over
> >> Qubes's PV audio thing) becomes very choppy, beyond usefulness (cannot
> >> make audio calls anymore, music/video playback also becomes useless wi=
th
> >> some players. For me this suggests some increased latency in scheduling
> >> - maybe some timer fires too late?
> >>
> >> This doesn't happen always, but I'd say quite often after S3, sometimes
> >> may need two or three suspend cycles to trigger the issue. But it's
> >> possible it is also some other factor, like which pCPU the VM gets
> >> scheduled on, maybe? But for now I didn't hit this issue before
> >> performing any S3. I don't have a reliable reproducer yet.
> >>
> >> While I write it's related to 4.17 -> 4.19 update, there is also slight
> >> possibility it's related to hardware change (CFL -> MTL). But, it's
> >> unlikely, since I'd probably get much more bug reports about that (the
> >> stable Qubes version uses 4.17, and we have many users on MTL).
> >>
> >> What would be the method to collect some useful debugging info? Some
> >> debug-keys (r? a?), some cmdline options?
> >=20
> > In the meantime (sharing some of it on Matrix already), I managed to
> > build a much more isolated test. Specifically, a single PVH domU with
> > VLC, preloading 1s of audio (and not playing it really, the output is
> > set to a file). The specific command is:
> >=20
> >     VLC_VERBOSE=3D3 vlc -I cli -A afile --no-loop --play-and-exit --run=
-time 1   ./melodigne-quiz-blind-test-187140.mp3
> >=20
> > The domU rootfs (or rather: initramfs) is based on AppImage of VLC,
> > there is not much more inside, and the above command is called as part
> > of init script (and domU is terminated shortly after).
> >=20
> > There is no persistent state in the test, the whole thing is network
> > booted from the same base. The only things changing between runs is xen
> > binary + toolstack.
> >=20
> > In the output I'm looking for this line: main input debug: Stream buffe=
ring done (1018 ms in 2 ms)
> >=20
> > Before S3 it takes 0-2ms, sometimes (rarely) 10ms (not sure why). Just
> > after S3 it takes very similar amount of time.
> > Then, I wait 30min, and run that command (or really the whole domU)
> > again a few times. I consider it "good" if I get at least one result
> > below 10ms. With this test in hand, I did run bisect between
> > staging-4.17 and staging-4.19. And here stuff gets interesting:
> >=20
> > At 498a4ded74b3f062c52e42568223dc5858d27731 I get the following times
> > (in ms):
> >=20
> >     30m after S3: 2, 2, 10, 10,=20
> >     1h after S3: 2, 16, 16, 2, 17
> >=20
> > At 5effd810c629d9a836e46ee321ca7409dad27212:
> >=20
> >     30m after S3: 26, 27, 26, 15
> >     1h after S3: 24, 25, 37, 37, 25
> >=20
> > This doesn't make any sense to me. There is a clear difference, yet
> > 5effd810c629d9a836e46ee321ca7409dad27212 looks like a no-op change (at
> > least for this Intel system).
>=20
> Pretty odd indeed. I assume you double checked the effect by going back
> and forth between the two commits.

Yes...

> If the effect persists, could you make
> both binaries (xen-syms or xen.efi respectively, depending on which one
> you use of the system) available somewhere for inspection? There has to
> be some relevant difference, e.g. by addresses shifting slightly.

Sure, here: https://salmon.qubes-os.org/~marmarek/xen-perf-weird.tar.gz

> Another possible further step may be to move forward from that commit,
> putting a revert of 5effd810c629 on top. If the behavioral effect is due
> to particular layout of the linked images, the effect should re-surface
> later (likely again at a seeming innocent change).

Good idea, will check.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmnFKjgACgkQ24/THMrX
1yy/ZwgAjvHhx3jUtXuwanLrziMWfltl0d8xxW/DOMOchAVqJwbYm+EGw1RmWTc2
fTshUGocxXEvqxsOHKOAHcF41tffRJklcy2XlGdy5oreGSAtrwDtFEhmVdrdxllt
52T0e9c9iCZ3Hohic1wIchDz9PQCu+QAPqCraXr2JnZl1VGym0CiFkPvOALaoqC2
rSDqNcXR31nH+qx9bzJpalZX3Sg3VwAswvCrVUJJjowikOgkB9wdz6o9ftaux8L1
WXcb6MfihOrua2A4tZxp78YEV2wVNiJpWfPZ86sICdoJ6bRLh9VbWBe3mQSpiCy2
ykcQwL7UlAlpqG1VAqbozyqa6WTF4Q==
=SXok
-----END PGP SIGNATURE-----

--lCKMT5P1F6dXhpSG--


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 12:45:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 12:45:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263972.1555725 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5k60-0005lL-BY; Thu, 26 Mar 2026 12:45:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263972.1555725; Thu, 26 Mar 2026 12:45:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5k60-0005lE-8X; Thu, 26 Mar 2026 12:45:56 +0000
Received: by outflank-mailman (input) for mailman id 1263972;
 Thu, 26 Mar 2026 12:45:54 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5k5y-0005l2-D1
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 12:45:54 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5k5x-002uI9-PI
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 13:45:53 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c52a6f-2eae-0a2a0a5409dd-0a2a450797c4-40
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 13:45:53 +0100
Received: from [209.85.221.51] (helo=mail-wr1-f51.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c52a81-fd74-0a2a45070019-d155dd33d4d1-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 13:45:53 +0100
Received: by mail-wr1-f51.google.com with SMTP id
 ffacd0b85a97d-43b871dd06eso539714f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 05:45:53 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b9192e305sm8441876f8f.8.2026.03.26.05.45.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 05:45:52 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774529153; x=1775133953; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wySk8c7UhCeKQTPR7Llyf9qGhatXAtWDrr0J0PKE4cw=;
        b=MgE8iHWzY4Um8DOQlH/p3/quAhC12GFqDLJHgxcy4TOGjmvcjzZ/WejyUZE8ueNjmN
         mMzZ2JIZPmAcRPgfjDmDiwH13+dGRHBn/lKweRm9UQGRl/1QMAZLEZFeyFZAO1vE/7v9
         NfVBz5xJQoPBSDWW5GSrZCHrFntkRgoJFSiBW0pH14PjplDc3STNlkhsrl+od1rBY8lc
         7et0Y+qQhSDlEq1y0Ku12yujx8oRe9Ean8J85T/v/eI/1T5Ux5yQaxbNs+5PXWZK+ZEM
         dq6oOaQMvfowR+x2H7Co4Qm/QC4FeqU6war4V3AkcA2yNU8MwgPE8dCtuW874bYZpQ+s
         ulCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774529153; x=1775133953;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wySk8c7UhCeKQTPR7Llyf9qGhatXAtWDrr0J0PKE4cw=;
        b=aNYHLBoPD1qnqXWAibrMVYPt+784L0oshEkIT8MAUh9Xnth0nV5WnYPCV4mJCIFnEL
         WBM1U3+FvNOnUfH9gV1GVf8HhFwtWdD7Zkm+DN196C9VZXdTApm54beTyE+CrGdbElP5
         HtOi76PsIZh26C5ThI6Ju2VkB8B3WcxM2XEU4L63JYxAt9Y4G1nVRSYeWBtAykjrLpXb
         9ovg0w56Ib2NPcuEBUQFsEA7zwjymMIjhUBheCcvY91URtyIR0z3Uo82zYhY2hKQrXw/
         5pAwy0qtQyvwKdgGbQOBv6WaeGqD8W+1K2cIwGO/Xm+BHDsNul+y79AXJtuDMCDshO9e
         AXkQ==
X-Forwarded-Encrypted: i=1; AJvYcCVU40C5B1ySAQoh2sqjwAk/t6QURby/+Fp7AgqMWbdXbJq+0+okImeN1nPVmLTlMgR1UB/2SrjfgIw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyNe4EYb6b8TaP8kigGy+K0rTY8Hy8qLv7q/I6M21Gj53W3PpBU
	Y2D/DJi84wjsrZFPNMruwigvoB35DtOVPHtsdTwvsmnjjmBZAzG7+LFYFzlfGZfUrQ==
X-Gm-Gg: ATEYQzwiVwRS5tKNWR+4yvFeNqhF+eB6CcM3z/JrM/Xww3DdiN+wOxtND/8tLYLkLQl
	WdPZLXZNyVXW3fV4RZorIKifNHfDHRtzQdsevwarnJyBqSXbRQaPPc4KaSAV8yhMIXL1xD0H3+T
	B4Qe8SBHYNV08J6ZqOw8WJvYRhebXR1aMC+RaBLDW+uPmt7TAd5tkPfmxQPRysQY2jmsRrzsp+s
	4v5hVw7e+3Qt/RjlyUPgNE39oaQOw77ig5yC6reFxDA5q1UXSyP0Ai5SGqG1JlkgLK2i/5KN69M
	befFZQ7yxRRJYqxze7kv6rgXY6yKJq9wG0UigrVQI81Ehq+GrSk6iNCnZCSlqjVwXLQ+P1Jhxsr
	4J7RUoyn2rU4oVxPp8oFxS9KMRh4UNA0KW2aTcwpFpveAE44fifMODI3qKI8zss5IMKRtLlugWK
	sJV4IJrkb1QZeb044wlY3XGuw9C0wjN9WDxvIBK2RVYGMndERpZnokco845GEtudkLVzuTnk/Wc
	wNExaOqqCEOm5n2N/vrPprOMQ==
X-Received: by 2002:a05:6000:4381:b0:43b:4468:b114 with SMTP id ffacd0b85a97d-43b889db4b2mr10832419f8f.23.1774529152708;
        Thu, 26 Mar 2026 05:45:52 -0700 (PDT)
Message-ID: <f4db1687-2f14-44d2-85b7-bcc0339d57c5@suse.com>
Date: Thu, 26 Mar 2026 13:45:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/4] xen/uart: enable parsing ACPI SPCR on x86
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: <20260325145824.31601-1-roger.pau@citrix.com>
 <20260325145824.31601-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: <20260325145824.31601-5-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1774529153-4E4AE303-0F4C6E30/0/0
X-purgate-type: clean
X-purgate-size: 9796

On 25.03.2026 15:58, Roger Pau Monne wrote:
> Introduce extra logic to allow parsing ACPI tables extra early, and use it
> to parse the ACPI SPCR table and obtain the serial configuration.
> 
> This is gated to the "acpi" device type being set in "com1" on the Xen
> command line.  Note that there can only be one serial device described in
> the SPCR, so limit it's usage to com1 exclusively for the time being.
> 
> I can't test the interrupt information parsing on my system, as the
> interrupt is set to GSI with a value of 0xff, which is outside of the range
> of GSIs available on the system.  I've also assumed that the interrupt
> being 0xff is used to signal not interrupt setup (just like the Interrupt
> Pin register on PCI headers).
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
> WIP/RFC, not sure whether there's interest in attempting to pursue this
> further on x86.  So far the device I have is also exposed on the PCI bus
> aside from SPCR, so using com1=device=amt also works to detect it.
> 
> Posting it kind of early to know whether I should try to polish it for
> submission or we are happy with not having this on x86.

One concern of mine is the altering ACPI CA code. Otoh, seeing how early
you need this for SPCR, I wonder if it then couldn't also be used for the
BGRT work that's being done in parallel.

> @@ -523,3 +540,67 @@ acpi_tb_parse_root_table(acpi_physical_address rsdp_address, u8 flags)
>  
>  	return_ACPI_STATUS(AE_OK);
>  }
> +
> +acpi_status __init
> +acpi_early_get_table(const char *signature, acpi_native_uint instance,
> +                     struct acpi_table_header **out_table)
> +{
> +	static acpi_physical_address __initdata table_addr[128];
> +	static unsigned int __initdata table_count;
> +	static unsigned int __initdata table_entry_size;
> +	unsigned int i;
> +
> +	ACPI_FUNCTION_TRACE(tb_early_get_table);
> +
> +	if (!table_count) {
> +		struct acpi_table_header *table;
> +		void *table_entry;
> +		acpi_status status;
> +		acpi_physical_address rsdp_address = acpi_os_get_root_pointer();
> +
> +		if (!rsdp_address)
> +			return_ACPI_STATUS(AE_NOT_FOUND);
> +
> +		status = acpi_tb_get_root_table(rsdp_address, &table,
> +			                        &table_entry_size);
> +		if (!ACPI_SUCCESS(status))
> +			return_ACPI_STATUS(status);
> +
> +		/* Calculate the number of tables described in the root table */
> +		table_count = (table->length - sizeof(*table)) / table_entry_size;
> +
> +		if (table_count > ARRAY_SIZE(table_addr)) {
> +			table_count = 0;
> +			return_ACPI_STATUS(AE_NO_MEMORY);
> +		}

Rather than failing, limit table_count to ARRAY_SIZE()?

> --- a/xen/drivers/char/ns16550.c
> +++ b/xen/drivers/char/ns16550.c
> @@ -1375,6 +1375,136 @@ static void enable_exar_enhanced_bits(const struct ns16550 *uart)
>  
>  #endif /* CONFIG_HAS_PCI */
>  
> +#ifdef CONFIG_ACPI
> +#include <acpi/acpi.h>

With xen/acpi.h included (below) this shouldn't be needed.

> +#include <acpi/actables.h>
> +
> +#include <xen/acpi.h>
> +
> +static int __init acpi_uart_config(struct ns16550 *uart, unsigned int idx)
> +{
> +    struct acpi_table_header *table;

While this can't be pointer-to-const, ...

> +    struct acpi_table_spcr *spcr;

... it looks like this can be.

> +    acpi_status status;
> +    int rc = 0;
> +
> +    /*
> +     * SPCR specifies a single port, expect it to be configured at position 0
> +     * in the uart array.
> +     */
> +    if ( idx )
> +        return -EXDEV;

While this matches what ns16550_acpi_uart_init() does / wants, I'm not sure
this is a good idea. If a system had a normal COM1 and something in SPCR,
one would need to re-define COM2 with the COM1 settings.

> +    if ( system_state <= SYS_STATE_early_boot )
> +        status = acpi_early_get_table(ACPI_SIG_SPCR, 0, &table);
> +    else
> +        status = acpi_get_table(ACPI_SIG_SPCR, 0, &table);
> +
> +    if ( ACPI_FAILURE(status) )
> +    {
> +        printk(XENLOG_ERR "Failed to find or parse ACPI SPCR table\n");
> +        return -ENODEV;
> +    }
> +
> +    spcr = container_of(table, struct acpi_table_spcr, header);
> +
> +    rc = -EDOM;
> +    if ( spcr->interface_type != ACPI_DBG2_16550_COMPATIBLE )
> +    {
> +        printk(XENLOG_ERR "Incompatible ACPI SPCR UART interface %u\n",
> +               spcr->interface_type);
> +        goto out;
> +    }
> +
> +    if ( spcr->serial_port.space_id != ACPI_ADR_SPACE_SYSTEM_MEMORY &&
> +         (IS_ENABLED(CONFIG_ARM) ||

Better !IS_ENABLED(CONFIG_X86), seeing how neither RISC-V nor PPC have
I/O ports?

> +          spcr->serial_port.space_id != ACPI_ADR_SPACE_SYSTEM_IO) )
> +    {
> +        printk(XENLOG_ERR "Incompatible ACPI SPCR UART address space %u\n",
> +               spcr->serial_port.space_id);
> +        goto out;
> +    }
> +
> +    if ( !spcr->serial_port.address )
> +    {
> +        printk(XENLOG_ERR "ACPI SPCR console redirection disabled\n");
> +        goto out;
> +    }
> +
> +    uart->io_base = spcr->serial_port.address;

Elsewhere we assume MMIO if the address is 0x10000 or above. Here we have
an ACPI_ADR_SPACE_* indicator, which I think we should take into account.
For now merely to reject values not fitting assumptions elsewhere, I guess.

> +    uart->io_size = DIV_ROUND_UP(spcr->serial_port.bit_width, BITS_PER_BYTE);
> +    uart->reg_shift = spcr->serial_port.bit_offset;
> +
> +    uart->parity = spcr->parity;
> +    uart->stop_bits = spcr->stop_bits;
> +    uart->data_bits = 8;
> +
> +    if ( uart->baud == BAUD_AUTO && spcr->baud_rate )
> +    {
> +        switch ( spcr->baud_rate )
> +        {
> +        case ACPI_SPCR_BAUD_9600:
> +            uart->baud = 9600;
> +            break;
> +
> +        case ACPI_SPCR_BAUD_19200:
> +            uart->baud = 19200;
> +            break;
> +
> +        case ACPI_SPCR_BAUD_57600:
> +            uart->baud = 57600;
> +            break;
> +
> +        case ACPI_SPCR_BAUD_115200:
> +            uart->baud = 115200;
> +            break;
> +
> +        default:
> +            printk(XENLOG_WARNING
> +                   "Ignoring invalid baud rate %u in ACPI SPCR\n",
> +                   spcr->baud_rate);

Maybe better s/invalid/unknown/?

Also, please add "break" for Misra's sake.

> +        }
> +    }
> +
> +    if ( IS_ENABLED(CONFIG_X86) )
> +    {
> +        /* Use polling mode by default. */
> +        uart->irq = 0;
> +
> +        if ( (spcr->interrupt_type & ACPI_SPCR_INTR_TYPE_IO_APIC) &&
> +             spcr->interrupt < 0xff )
> +            uart->irq = spcr->interrupt;
> +        else if ( (spcr->interrupt_type & ACPI_SPCR_INTR_TYPE_PC_AT) &&
> +                  ((spcr->pc_interrupt >=  2 && spcr->pc_interrupt <=  7) ||

Is 2 valid to use? That's the cascade in 8259-s.

> +                   (spcr->pc_interrupt >= 14 && spcr->pc_interrupt <= 15)) )
> +            uart->irq = spcr->pc_interrupt;
> +    }
> +
> +#ifdef CONFIG_ARM
> +    /* The trigger/polarity information is not available in spcr. */
> +    irq_set_type(spcr->interrupt, IRQ_TYPE_LEVEL_HIGH);
> +    uart->irq = spcr->interrupt;
> +#endif /* CONFIG_ARM */
> +
> +#ifdef CONFIG_HAS_PCI
> +    if ( spcr->pci_device_id != 0xffff && spcr->pci_vendor_id != 0xffff )
> +    {
> +        uart->ps_bdf_enable = true;
> +        uart->pci_device = PCI_SBDF(spcr->pci_segment, spcr->pci_bus,
> +                                    spcr->pci_device, spcr->pci_function);
> +    }
> +#endif /* CONFIG_HAS_PCI */
> +
> +    rc = 0;
> +
> + out:
> +    if ( system_state <= SYS_STATE_early_boot )
> +        acpi_os_unmap_memory(&spcr, spcr->header.length);

I think you'd better unmap "table" here, and I don't think the & is correct
to use.

> @@ -1643,8 +1782,17 @@ static bool __init parse_namevalue_pairs(char *str, struct ns16550 *uart)
>              uart->reg_width = simple_strtoul(param_value, NULL, 0);
>              break;
>  
> -#ifdef CONFIG_HAS_PCI
>          case device:
> +#ifdef CONFIG_ACPI
> +            if ( strncmp(param_value, "acpi", 3) == 0 )
> +            {
> +                acpi_uart_config(uart, uart - ns16550_com);
> +                dev_set = true;
> +                break;
> +            }
> +            else

May I ask to drop either the "else" or the "break"? To match PCI code,
it would be the latter.

> +#endif /* CONFIG_ACPI */
> +#ifdef CONFIG_HAS_PCI
>              if ( strncmp(param_value, "pci", 3) == 0 )
>              {
>                  pci_uart_config(uart, 1/* skip AMT */, uart - ns16550_com);
> @@ -1656,9 +1804,11 @@ static bool __init parse_namevalue_pairs(char *str, struct ns16550 *uart)
>                  dev_set = true;
>              }
>              else
> +#endif /* CONFIG_HAS_PCI */
>                  PARSE_ERR_RET("Unknown device type %s\n", param_value);
>              break;

I think for !ACPI && !HAS_PCI we'd better not alter behavior (i.e. that
case would still better end up at default:).

> --- a/xen/include/acpi/actbl2.h
> +++ b/xen/include/acpi/actbl2.h
> @@ -1037,6 +1037,16 @@ struct acpi_table_spcr {
>  
>  #define ACPI_SPCR_DO_NOT_DISABLE    (1)
>  
> +/* Masks for interrupt_type field above */
> +#define ACPI_SPCR_INTR_TYPE_PC_AT   0x01
> +#define ACPI_SPCR_INTR_TYPE_IO_APIC 0x02
> +
> +/* Values for the baud_rate field above */
> +#define ACPI_SPCR_BAUD_9600         3
> +#define ACPI_SPCR_BAUD_19200        4
> +#define ACPI_SPCR_BAUD_57600        5
> +#define ACPI_SPCR_BAUD_115200       7

Not your fault, but I wonder why we have SPCR here when Linux has it in
actbl3.h.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 12:48:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 12:48:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263982.1555733 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5k8d-0006lx-Ne; Thu, 26 Mar 2026 12:48:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263982.1555733; Thu, 26 Mar 2026 12: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 1w5k8d-0006lq-Kv; Thu, 26 Mar 2026 12:48:39 +0000
Received: by outflank-mailman (input) for mailman id 1263982;
 Thu, 26 Mar 2026 12:48:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5k8c-0006li-MB
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 12:48:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5k8b-002uxV-UO
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 13:48:37 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c52b25-5cb7-0a2a0a5109dd-0a2a450ca664-2
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 13:48:37 +0100
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c52b25-f93d-0a2a450c0019-d155802bf112-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 13:48:37 +0100
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-486fb14227cso11596635e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 05:48:37 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4871fbdd555sm26712725e9.2.2026.03.26.05.48.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 05:48:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774529317; x=1775134117; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KGurtcmdLO5dh65wB+IVIywIhpmVvZR1XLsJ+8rkUl4=;
        b=f1QHF8VMI56qUF/KygJwZmotFDWOwbixtvZOy1xVfWU1nzccZJBz12zW5WKCQlYX2a
         1JgrNjic8H/qgl3RHW7qwkCvTmKxb2y3H7myrm4g3azDhA5JiINUWA/7/wapuqEY8ik9
         iowd47iKa9lrTWGXmYFN2NbdFVwGrGCQHqJ4vicxD2lwBDHB+byB9t+c0+tT/sItYf9t
         kcAtoXID3bWznCl2hYogfVrZUO7D6E8A0sgZt5+xQOEvx90M//l85rmBVMoDwdcRCc7e
         Hb9itVf+46+jvJPd9LVPyhbVHopFOEnMuuwA1+fFgGnYAVKHHv6QzkkSIzkPgym8SjqW
         Xjvg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774529317; x=1775134117;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KGurtcmdLO5dh65wB+IVIywIhpmVvZR1XLsJ+8rkUl4=;
        b=AmWfRzQAQjNFcdY7Cx2YolaMPKSMmuVwjM8NxHdlPuWFeLAlH/Gtgshd2v5aWYlyOM
         7yTpL1wFJxghW82D/ZndmYOhFAGITNAW0LCt0bsF2/tYHJt6SyXAOzxrMYisKRDqqxAt
         FItlwpGBHXO3WzWhhYlZC9rinbVW/8y6DjvkKSoW5IIbDQZZ/txA+E61Ibr59RJycITx
         5m6xDfP3CZ6GxQ4P64/Iw7HpVo3pcehSA//NnALiGqDcb3+FwLRFW8Rj9cOPPOntZiEc
         8hg8/lSDdqxY2F2dK3Jjpwll5XikSE4EXP2CTo0Y3++C+TykPXzuNvC2MCoG04HKADBu
         IT+g==
X-Forwarded-Encrypted: i=1; AJvYcCWEpYL6Epnjh8/Se7/SSiV6dm/SV5JbNDuQIuy7gKmlP3sW2gWayybBY3dLzn3acNnsYa1FX3YNBPo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwC+iw+pe+SthTl3magI+UfqfV0uLdNdK35tLF6xJWsg9kT+4gl
	bUFdGuSKkMjMCK0KVCf7puA5QoR9DfcdJ5zqZdCWPLIj9EO6m37+98Y22wuhVYqyyw==
X-Gm-Gg: ATEYQzzfRVS2cmEnxv73ELbReFSEYWNqyTI2b4kfW9i5O4vuUPD0vTLnomVlUaPocAj
	+uVfLtS+c/gmS+/EIvjxR/Mpn9coutYXQffYkYuuXaO2+IJenu/yCigCjxz/GclC8LPw/6KQudh
	d0S69+xLchSaDOH38H5xy0tdtupcb2plHyxxjIMtLicJIcd6mHmeqJ6DLFUp6hXNvccs1KS9hLh
	d8yAxTGokhKWpgjMQVP3xoWZtxXHUWzbj/37F7OEf0jPiXhPMQ+aiHEEofjjU+QYj3VAGcpUuq1
	bOU1RXUaGlL7oEDql0GaBTSlB1DW6iqwYspIdggttheGfPORnotxSCWUUvkPJb7s4g/lRRjQbHF
	3g+neaHJhEPSTQC7IbzkQNgnCTxxE8ZfsETja/0qktzNa0qCiG0LRN4oWf5vhiWvAO0l7LBNOVw
	Yhmsu5uQPIBvok7SYq4NqQ9mH0fkSw5W2rCy4+bV1E9ErIbgNj4O4dGIJ80faDwcCOFCDa3cxU2
	wQfipcrrqgi74ejEe8enO7VCA==
X-Received: by 2002:a05:600c:4685:b0:486:5f71:5829 with SMTP id 5b1f17b1804b1-48715fc3870mr116803285e9.5.1774529317205;
        Thu, 26 Mar 2026 05:48:37 -0700 (PDT)
Message-ID: <67cffaf7-ef9c-4813-a829-ad5c962bc535@suse.com>
Date: Thu, 26 Mar 2026 13:48:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/4] xen/uart: enable parsing ACPI SPCR on x86
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20260325145824.31601-1-roger.pau@citrix.com>
 <20260325145824.31601-5-roger.pau@citrix.com>
 <c930ee22-4cab-4bb4-b8fd-fa5e77f7505b@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <c930ee22-4cab-4bb4-b8fd-fa5e77f7505b@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1774529317-F60B0734-7EE16C1F/0/0
X-purgate-type: clean
X-purgate-size: 1911

On 26.03.2026 13:11, Andrew Cooper wrote:
> On 25/03/2026 2:58 pm, Roger Pau Monne wrote:
>> Introduce extra logic to allow parsing ACPI tables extra early, and use it
>> to parse the ACPI SPCR table and obtain the serial configuration.
>>
>> This is gated to the "acpi" device type being set in "com1" on the Xen
>> command line.  Note that there can only be one serial device described in
>> the SPCR, so limit it's usage to com1 exclusively for the time being.
>>
>> I can't test the interrupt information parsing on my system, as the
>> interrupt is set to GSI with a value of 0xff, which is outside of the range
>> of GSIs available on the system.  I've also assumed that the interrupt
>> being 0xff is used to signal not interrupt setup (just like the Interrupt
>> Pin register on PCI headers).
>>
>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>> ---
>> WIP/RFC, not sure whether there's interest in attempting to pursue this
>> further on x86.  So far the device I have is also exposed on the PCI bus
>> aside from SPCR, so using com1=device=amt also works to detect it.
>>
>> Posting it kind of early to know whether I should try to polish it for
>> submission or we are happy with not having this on x86.
> 
> I think we should be using SPCR/DBG2 when available.  Getting serial
> configuration right is always tricky, and we might as well use the help
> that Microsoft have forced the OEM/firmware world to provide.
> 
> But, I think it should be automatic when the user asked for any kind of
> serial.  e.g. console=com1 with no com1 configuration.  The point of
> these tables is to provide an enumeration mechanism where none
> previously existed.

Hmm. In the PC world COM<n> have well-known configurations unless anything
else is provided. With multiple serial ports in a system, which one SPCR
describes also would be (largely) unknown.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 12:52:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 12:52:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263995.1555743 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5kCT-0008Lw-B9; Thu, 26 Mar 2026 12:52:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263995.1555743; Thu, 26 Mar 2026 12:52:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5kCT-0008Lp-7l; Thu, 26 Mar 2026 12:52:37 +0000
Received: by outflank-mailman (input) for mailman id 1263995;
 Thu, 26 Mar 2026 12:52:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w5kCS-0008Lj-Cu
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 12:52:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5kCR-008nby-Oo
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 13:52:35 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69c52c09-5cb7-0a2a0a5109dd-0a2a450785b4-36
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 13:52:35 +0100
Received: from [52.101.84.96]
 (helo=DB3PR0202CU003.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69c52c13-fd74-0a2a45070019-346554605367-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 13:52:35 +0100
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by AM7PR03MB6231.eurprd03.prod.outlook.com (2603:10a6:20b:142::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Thu, 26 Mar
 2026 12:52:32 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Thu, 26 Mar 2026
 12:52:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BL+uEnbNmZTW5vkimSuXlbL6gIoR20d0eWdWyo6d9XOxVB+SCOYYdUkPsK/72gmS6JaYLCRSLZXkqq1hoPYMC1lGw0S+2Syg98RYe1CcmCHwOQzZOrJ3fIYtOwt9iLPCVdJumMb7A3a2OIXDKugeoVbuhbfUSkhsX4oZ8K5BwWBzF5DjcfS01tmjFOCwAqmmZD5zlGHuKRDgAOzdjhY/wmczMfEQxUB9F17MG5bu7ljd/nrqKqT9RwMC+RQNK4e8MtKFc888WsV0fFkGI7ZEZxqA/uYmXSdXCvf8r6et7Ij2DPLPldpJt16ka7Fo014FzQXx3iK3gngiiCJVr9IxWA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=aS3sAu/k4Lc1ehYXV1vzfqBBW+7QOEyxPsyXQPrnr/4=;
 b=yLXhf4r2KqO/aeeU+dL4i/DgdXKWOeP1LqCSSufKizAO3tYUUPGrYO3zz+T+RbBeIIeGKIeXSJ/+rAUifRoNQsQK2f9MRJCDqVeWRl+WN8bFZJFB9bVI4RoOeynk2hnNqhzuHDvh9haW6/UYs/nGkU51kbhNijKzHomfh5+bdmGRMqzOQyxPBPSCgAlrV5cgVdb2DGSAiu5fiFNsxHieXvXklzteZDxFNA5BbD8dbdDedR+3O90N5Gbc3/OpeSjODKLXchM/CkrhKelFe1S8fvShH6PpgTfqm7v1Mn2jRmnSjJUe2evLpEB7l9F7khrPH97eiFQ+hI+GC5w6Yfe1vw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=aS3sAu/k4Lc1ehYXV1vzfqBBW+7QOEyxPsyXQPrnr/4=;
 b=jCRL/55r7WfwaVfoaSRU0Qb7kFElGMPq7rZYpq7wtttW49MhedYfvhiI5JCnrfCS3N6hBDnF34W2xO1mQrWKZ0aIFXFlefK6Eamxe3qVlhsOhn7zJNCtjXQ5CUQlWhvlNfdzr/rzbBLPYrwNi4TQR09c7+7wFkFIKSW/2RHN1SKcXctOO16DwOymMsX24xg3/bIvpQ+7FUWz+miahSEZEiedyFAFQMd2AawsA2VqjkBkNnm1hirs5gNp+f46ieVbAgZHxLC7LJYYzqMtlh02TgpKSsGUUFRuHiv5sq7+vKoivKwe14lx76O3JDtoK4dIgVc+RyL25Z6qCzRdg/KBRQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <d2256ee2-c7a1-4e76-aa82-9f2766209a5a@epam.com>
Date: Thu, 26 Mar 2026 13:52:31 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 04/23] xen/arm: vIOMMU: add generic vIOMMU framework
To: Jan Beulich <jbeulich@suse.com>
Cc: Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1774305918.git.milan_djokic@epam.com>
 <f20ce7b6b230ee234c9a278a6d69330f1abb03c1.1774305918.git.milan_djokic@epam.com>
 <fefe8733-e997-4eb8-a2b4-66975ff46b47@suse.com>
Content-Language: en-US
From: Milan Djokic <milan_djokic@epam.com>
In-Reply-To: <fefe8733-e997-4eb8-a2b4-66975ff46b47@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: VI1PR06CA0141.eurprd06.prod.outlook.com
 (2603:10a6:803:a0::34) To VI1PR03MB5088.eurprd03.prod.outlook.com
 (2603:10a6:803:c2::20)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: VI1PR03MB5088:EE_|AM7PR03MB6231:EE_
X-MS-Office365-Filtering-Correlation-Id: 262fef56-28ac-4415-42bc-08de8b368bd6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	IgvrD+dz2yolYBnBNw6iH4JUV1eYkJBZf24rhxKfQS94V7YPAasmGUvCCFv5qZZ/83Y2Xt7/zFjeU1DALIB2NWZysQo2JUj1Jx6t8ANC1z6OLz8w7pN+oytlOlOKEcHPu/WOD4fOh4G9fQVH/KlySU/2TlfG1dmuqukoPpGShVvMkqqKL51GZu7XxvdmFIrWMXxSOd5dLSDTL23bNfRlFIyTAGh7i73uNVrAikI5NbV0/lkMOC7nyR5OAJAEtqS5Fhrn70g5dz9imQ3/bUTS2C6WqFRN8qv8yF2MV/U6uK/V23IUUx9qRCESAuaBh5DAHmCA5vT5D7UE6fJyyVa7x895uLN83Madu4BUEoZ23PNvGjC1811OcT068GGMVlu//X58dNHjWWxtz8hAnWebiRT2L42EqF8E3rncXsYQTAA4PLh0kWB8Pf/9u5o90hmtu2nZQjOXh31FIL5Y897MfkNn4qpxSYvr9XZ8IXRRBwPZJABhtRRRsahVqfEGk8e0r5+Wn3ZV+eznT6CFhmq0+uM0ZOKQkfREG/UAgIrX/sogYwT60YwB8yl94HZYm4t1IrmwjCgz2yVPgyRL9M84BxpIchyJCYgNvcpigqemiVvceM6OhM+MR57uVG56XbW0lH4ZQz8baGdkhvqonAz/dUjxSgCs2gsFdUZeMTx+SRM3JJD3zzpmaIVCwuzGQoyjdRo9nZuUMKaEyEg8nQrLNgqXY53WbB0kgYq2BQq3JO4=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RkNIY0xpTU85K0U3aWNEOW5WZHd4a29XSEI5ZjdzY1dOMTFhSkFmVDNwRTQr?=
 =?utf-8?B?QUhCUWM4TVhBZHFDb1NFT2NlR0lvaktzQnhmNlBTMGpwaUxxQXViMUVhMjBw?=
 =?utf-8?B?Y2NKZ2NxeUlHRGppRmpSUTRzZnJYVEtGZzk3SC9ZS1M1bnVMWG5aT2Z6SHFk?=
 =?utf-8?B?OUNBa0xIcWQ4cEwvTTRZUHdXM1J5NkpZL1dIL2lEZnRsbDlPMjhOQ3JMZTZh?=
 =?utf-8?B?NmpNYWtnU0dwZU5sR2pQTHVtWjZRQzRnbHgwVE05dWlXYTQ5N3NFMkFzS0lR?=
 =?utf-8?B?cHVmMVRsS2JYREdUTlhVTkl6eUZiUWUyR3VDVXFtaHFtcHNsNGtNa0ZxbVlV?=
 =?utf-8?B?SWhuMC9iNWRpRGRNMngrWjJpYUVOUmsxSXVxNWN5akhTenNza3R3WVNDaU01?=
 =?utf-8?B?N3NnRU5uVVpnVEFxTzhpS1owZHVHV3pIS1BDWUhWbDI1aWk3c2NNV016NSsy?=
 =?utf-8?B?MnhESjZGdTZQQ3UxcHVNc0N0SUU0dFc1YzdjWE5XenFIVForWDNjUGphTHRJ?=
 =?utf-8?B?eEczMHdGQnlhVE9PeHZoQVBVUHp0NU54a2p6Y1g5b1psdy9GSGNlRzhWYUZn?=
 =?utf-8?B?WVR0Tm5ZMEM4ZHNqRWpIUFNqNktJc2txcndtWTFwQ0IwbGlMUjdteklRVU14?=
 =?utf-8?B?Y0RRaUI0enYvQjY5ckJvYXRjYXlkVzZmVjhCUUQ3ZWxickRFblpyLzZwZXZy?=
 =?utf-8?B?cnlJUno5R3FNK0t2YWhXNXRWR0g2ek1rSG9YOUFuWU9qVHFId2gyRHRJQlpk?=
 =?utf-8?B?b0RZNU9jNTNtK2pBNUMvc2RoMGpIMC9EQkVGdkhVdU9FbUl0SU9Vd3pzd0xq?=
 =?utf-8?B?ckIvUExhKzZSbUZFSTloTmhIVXc1ZmlZaWNyanlrSVpybDlKV2prZ0RTc1Np?=
 =?utf-8?B?SWFTNmxadW8wQzF0SHkxK3o4eC9mZjVycEZFbXAxc3ljYzR4aS81NDNvbmNL?=
 =?utf-8?B?VTVaMFZXUVFUY1pRbE1Mei9Rd3BEbG96RXBZbUZTSGJ0RnRrY3JUQ1d3ZTNo?=
 =?utf-8?B?ck8yVnllcHcvV1o5WGU3cW1ERHZRQ2Fma2Nnbk5xNFJ1YzF0UmlmeUJvamNZ?=
 =?utf-8?B?L1d4cDZVOG13Y29iL0IwVmUzMmtwM0xHMUp5cFJETzNIRHBiQnRrS1l4aFh4?=
 =?utf-8?B?VVNreE1INm1ORzNJdWZ3VFRpV2I1QnZzczhQQWFZZ05obmdFNGZSZkE4T1Vi?=
 =?utf-8?B?TnNQS3I4bm5ZRkdKeUZCQlBJaGxEeGJMMlhFa0hBcy9IVk9kK29UZDFLbUNu?=
 =?utf-8?B?NUlabXNlVC8zYmVyejUzVkJqWUp0aEJYQ2Foa2crTW1yOXVoYUtRRkJvUENS?=
 =?utf-8?B?RVRmT29EVmg3M1FHdzNaaFhEeTdOWG5Tc2VaMk9WMVd3UjcremR0OUVGa0RD?=
 =?utf-8?B?TWZWaFc3QndtU1EzVjJVR2N2TC95NTkrc3pyVWJlMUUwUDRHZ3dmWXg3cU52?=
 =?utf-8?B?OUdQdHVZWEJPRFcrNWlua1ZTalVNVUtheWttblhNbFRQVU1iNDFJeGNRaFd2?=
 =?utf-8?B?WEdNZUN3VzE4ZFpacGZ3MmdiVEk5OFVHMUcxUGw4SFc0UjdvTWxyTWxDTHZT?=
 =?utf-8?B?cEVWWDRpNllxaU1LcXFsUGJ2elh2cTNEcXZFSU9SZGY0ck5LUUZ6dWNQdHVn?=
 =?utf-8?B?M28zVkt5T3FJaUpjSjkvVW1KNGdLTHdWcENwNWJvRHBiOTMvNm1GdVVBb0lD?=
 =?utf-8?B?dTNmeVMxNWZCb1FrbndNK3c0UGVEYzUwSlFQYzBpN3pkUDVHdGRKeDh0VTJy?=
 =?utf-8?B?ckVOb0htcXR5QkhVV2doZEM3dWFPanE0Z0c1SWlqTjBEazg1SHFQRFduMGNi?=
 =?utf-8?B?aytES3pQdFVJZEx1RXZNalEvVFYwdWNvYWZiK1VMK01CRVNrMVdQL1N2cGRE?=
 =?utf-8?B?YkgyaUszdEI3N1l2V21TYUpQZlQ0WnF3Z1NYS1p5eEw4TUZHS0cxWW02cU9q?=
 =?utf-8?B?ZHpVck53akFVZUxVQUdKY1pKOVQ0bUZlbFVHcjh4SmNNeTNuOFU3dyt6eWlK?=
 =?utf-8?B?THE4UXdyUldULzB2VGFqOERHNXpuSTdjbUlBcm00bERtNnU2a3lNVGQvN1Yy?=
 =?utf-8?B?S2MwN1NSNVhxNXlVMkZUd0VPWEllMElmVGZFajl1VDgxME1MUmNmc2ZQbGVL?=
 =?utf-8?B?T2xEaVhuTm9nVXlrQmx4MUdkTUJmMUhzYWlrOXoxZEpqdUZWQndYSFVkYXFO?=
 =?utf-8?B?Rmx0OS9hSWlvSU9sQjNpa3BGMWRMc1RQMjQyRERlOURtZDA0TWJVZVp6c1RP?=
 =?utf-8?B?TUpyYTZHQndPMlVUSWM0MHRJaGFzRWRoSm40OVZTSTF0dTNNcnkrWk0yMngr?=
 =?utf-8?B?Z0Vsdk9ROW1FeTNhTk1UcklBRmxOUGYzRk5IWHM1aFJFMTNlVGVjdz09?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 262fef56-28ac-4415-42bc-08de8b368bd6
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 12:52:32.6618
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 9HUYhe0TZkFYd/Zy3jUcdcftEFtFXRaU9UyWHi3w6KmXrRh2MUeuISPJiKfccqngRi2XbAt26VXfZ+lc4829Mg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR03MB6231
X-purgate-ID: tlsNG-ef75cf/1774529555-554B6303-7939AE10/0/0
X-purgate-type: clean
X-purgate-size: 1270

Hello Jan,

On 3/24/26 09:27, Jan Beulich wrote:
> On 23.03.2026 23:51, Milan Djokic wrote:
>> --- a/xen/drivers/passthrough/Kconfig
>> +++ b/xen/drivers/passthrough/Kconfig
>> @@ -35,6 +35,11 @@ config IPMMU_VMSA
>>   	  (H3 ES3.0, M3-W+, etc) or Gen4 SoCs which IPMMU hardware supports stage 2
>>   	  translation table format and is able to use CPU's P2M table as is.
>>   
>> +config VIRTUAL_IOMMU
>> +	bool "Virtual IOMMU Support (UNSUPPORTED)" if UNSUPPORTED
>> +	help
>> +	 Support virtual IOMMU infrastructure to implement vIOMMU.
>> +
>>   endif
> 
> This is being added to an Arm-only section, without it having an Arm-only
> name. Judging from the diffstat in the cover letter, there's hardly any
> abstraction in common code, so likely adding an ARM_ prefix to the name
> would be the way to go (for now, i.e. if doing proper abstraction is
> specifically not a goal).
> 
> Jan

The idea is to reuse (if possible) the generic framework covered by this 
configuration option for RISC-V in the future. At the moment, most of 
the implementation resides under the ARM section, since only SMMUv3 
hardware is supported. I will add the ARM prefix for now and update the 
other patches according to the review comments.

BR,
Milan


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 12:53:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 12:53:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1263998.1555753 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5kCs-0000JR-J8; Thu, 26 Mar 2026 12:53:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1263998.1555753; Thu, 26 Mar 2026 12: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 1w5kCs-0000JK-Eo; Thu, 26 Mar 2026 12:53:02 +0000
Received: by outflank-mailman (input) for mailman id 1263998;
 Thu, 26 Mar 2026 12:53:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w5kCq-0000Hl-Kt
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 12:53:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5kCp-009ePk-Uq
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 13:53:00 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c52c2b-2eae-0a2a0a5409dd-0a2a450b82dc-0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 13:52:59 +0100
Received: from [40.93.201.37]
 (helo=CY3PR05CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c52c2a-ef63-0a2a450b0019-285dc9250738-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 13:52:59 +0100
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH7PR03MB7858.namprd03.prod.outlook.com (2603:10b6:610:24a::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.22; Thu, 26 Mar
 2026 12:52:55 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9745.019; Thu, 26 Mar 2026
 12:52:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EgG70xPInaS8cHWe9Qn2gkDKn9dWTiDowd925x2kUqiR61rTqQnrXlNNz13mbSSzS3mJ9LkP5bQ9Th6JFQwMRu3yvfCr1X2m6xPJp4cmM2VWHn5I8d9o6Jin6npN2+v/sBKI7eZsSljFPevG0M/bALAgTKQ92YNTclFnAAbJAZVayp/0ELySn5zTtBSDx2X+Wch6AAK+lG3bZT7xKJxPF9pIP05N699+fbMXnbvPPWefngZW/v3WWDissPl691LQavAxdymRKS+yw8VDmTrs6TUfvcBhqyTCcPBqdkxOlmaRM9/tcxg6kkBtYyiQXwyIsBdUu++/cA6R+8KRCixxSg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ui4DDCaRwVdHZQGY8AVngJOpBcIYzJwB4M+DvQ+RgNo=;
 b=jhdKH2n5vUGoMXUYIYTtL93VGgw/wIqid0Ida+xkHwXC/6Dj8iZJ/4Z6k3k45flS1wwgmYfV1apo9E3DIaxMxhYVuh2ZTriPt1Qsou0+8Tq9FQq7bCNO2tm2f9SX4T8zbGABJDjAS6PMeL4hPkOqzzTKCzv9TJEoLyOOG5yg6UCC0uLQL+uvDt4bCrJVFcRxTY2lOt2WQh1o6imcdw3u7pIjB+uubJzwy00EK2hKS2zmRQ0djiPAP2IBZjCjhKjAIRB0L6mPsoRChSgXUtbZ4yr0MyO3qTU2sO2y7OK7rpPETaIBPLIjGDpzImll6TE+AyWkobH5l7PZeYmRQCmD/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=ui4DDCaRwVdHZQGY8AVngJOpBcIYzJwB4M+DvQ+RgNo=;
 b=ePb+fhK9lh7Nq4QwMpNe1hFX3OOYB442AJ/2YO+/4KFRuPokHqJZqJ/AuARFwyHFE6gpTrSIuSXXjUDihumXBtilqbG8K5QIBf/k1D897rxYMoNK4v/uNImYfTRWV9CgBBzSHp19w3aPDrDyon9t+sQdHH3pCEiDwVZmG8+QU+I=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <4fd21b4f-fe78-4f41-b36a-0c63e2c451e3@citrix.com>
Date: Thu, 26 Mar 2026 12:52:51 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH 4/4] xen/uart: enable parsing ACPI SPCR on x86
To: Jan Beulich <jbeulich@suse.com>
References: <20260325145824.31601-1-roger.pau@citrix.com>
 <20260325145824.31601-5-roger.pau@citrix.com>
 <c930ee22-4cab-4bb4-b8fd-fa5e77f7505b@citrix.com>
 <67cffaf7-ef9c-4813-a829-ad5c962bc535@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <67cffaf7-ef9c-4813-a829-ad5c962bc535@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P123CA0077.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:138::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_|CH7PR03MB7858:EE_
X-MS-Office365-Filtering-Correlation-Id: a0fb828b-ff87-4f92-8a80-08de8b36993a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	zbonSkQsErD0fICLjxNXPZW51+q2M7saWzwvUn+bSMjMWa7V535HTfEdkc0l2gGqqAGjhPhD/YNiRtNbvwqRYgsBMSdMHlm9Qwjzti7OUj8vhTLuX0UDFuINuFePrLFlGIlhd2aWN1KW9uQHQEA0hrSkw9vNxcmFxI8VDpmquiPUg1ti6JsImeXv32MKsctNw5sG86YQ6uFSt6mKwW+CCxqxEbPC+6k8PdQ1dja0z68VBCEe2A3VNuMgttyNW//bYItbzEfv9fSLgVJkwkYjV/nTqMjEzXspjGP/Xem/3FALMSNFCG5dXSAkadW8gPxXWLDoNGQ0gqC4LbNcZZT16A5CwlfY+GePRgbv/U5hgzf6B6IWZdakSFEm8x/NW2YOGLm5iq4nu7EB4DVS+4vC28EulJRbpNrjKsam2n4vvuOtr+ix/wHvSGot1nhQeXF7pIvZBz+4kM19tAw+iWEtk8jKImEVCatIwXtGG4IdHenZnCluf4oeIuhiATVMGmBDZppT/kufBDiBe1el4hlJFlq5i8wU9wlbcw1kiJxHtgKiMPrk/cwMO0R3xOaxgu1ipX1+/FSzHJ7GqvnVVJvcMo7LtULmCrt8QzjrprfoMIdLRGFcp4U6oyaJ+AJylbP62L9DdOtB/QtW3Za/exZnrMYZVuHB2goJC8HRPZUDdjDgde8Px5DFEGGUIi78Oz64lKHQR9XNnBN3Vzp3N6i53LGNaTBe4EIw3DukDT8h1ds=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dmt4eFhNZXp6d3hTamtyQ2RNZ1NpTGtKeUdkbXJmdnlZNitxeXlDbDNYWjNx?=
 =?utf-8?B?SGRKRWpzc29qSXlUNThHZVNCWi9ZRTJUU3krY1BKTnJuUy9oeFVYTHVsTTNJ?=
 =?utf-8?B?K3c4THRzK1pQMDFSWDVoWHlaK0pNN3E3UTNSditIZjg4dC9rS0E1dVFBUjhH?=
 =?utf-8?B?eG9vYkY3VDBkbW93MkdvM0JCR09TVERiRzBXNHlwNSt3alJDQ1lPWmdDOEZW?=
 =?utf-8?B?YktSR2VnNFlhcWhYNUpxMHNrWml3bWQxN2F1U0tvcm9sNGRkU3VFVmJoalBZ?=
 =?utf-8?B?MVNLbGRpU3picnh6RkhIczlYM2VFelZJYURMN25SbTBJSTdHSW1GS3ZwTGdj?=
 =?utf-8?B?N29RNVZBdS8vZG9udTJUZmQzOExLLzliQ3FFMUVKcUlNRU15Rmp3clZvQ2pR?=
 =?utf-8?B?THNrc3F4R0lqZEVBdWtTM3dYOGQ2aW1ramt5c1VDVE9sUDh1V3RtazhzMDBl?=
 =?utf-8?B?RnBvSDlmNlIxYnVjSFZuV056YWVOWUlsZFo5TlRKb2VodmhLY0pKbW5OK0p0?=
 =?utf-8?B?TUh1OWt4VlpMc1FIRGJHNW8reHJsLzdkWFVVRHZYVTQ1VUYxU1h6eG5KVmV5?=
 =?utf-8?B?Z2I2QnpkeVlJeGh0SFFkbXBiRGg0cVNueXZEQVhCeDBoT2thamJoUXkxL3cz?=
 =?utf-8?B?bjdVdXVsbHIwL3NWb1NVcndYTFJBUndEb0N5Y3VraWxVMVloZlNCLzZUSFRt?=
 =?utf-8?B?cXRRbzdGRnVIY0QwYWNyRXRTMkxtWkpGZUhvazkwV2ZGWE11ckdGV0JEbGlQ?=
 =?utf-8?B?ZXlvNjRRUnRjajZOaENlcFB5QWhmZFRwamtQc1Z6aVgxbXdSYzVxazh5UlZR?=
 =?utf-8?B?ZjFNL25zUkZSL0JEWlRpejk3aHRLeVJacmo5dVpreEpmcTJkOVpNdmJUT3di?=
 =?utf-8?B?Rm5KK0padnhNWjBZbkw3VlRMTVFnRkFIV1g3bm0wSTY3bGhiSzFNR1hYVERZ?=
 =?utf-8?B?RmhNOEtYWU4xdTNPNkhvQ09ZU0c3NEo1UXVZWWVpdm12NXh6ZXFqK0xFRFFY?=
 =?utf-8?B?UWl1bzI4ekNyMVVNajZlb3ByVmtmUVZJOUpxT2pBaWdXNnQvSXBRbk5aUTZU?=
 =?utf-8?B?dkY0cmIrSktJWEtHS1htSndBeW5hdjVRTXBxSUFVeTlBb2ROUXFJMkwvTkZQ?=
 =?utf-8?B?LzYyTlNMUFBlUUErcVlxZldXVUFmZ0VMSng4MHQ0YWsrYW9iMnU2Z3l4dVo1?=
 =?utf-8?B?alh3VE1VeHNZeFdJaWRoZHFhYlYrRVZoWWRZWktnNXd6M0ZvQUt5OVdXQVUr?=
 =?utf-8?B?Y3lkUDFQcnVaMDVQbTd4RXF5cFJNOHo3NVhaOE82SkJPMXg1b1pnQmdpc1ZW?=
 =?utf-8?B?blFaaGtXVTdCL0FOQ2lDNkJlb2RSVnNGMFpVVHNCNlB5b3BLb2Q5bS9TUnB6?=
 =?utf-8?B?VVNZRlRLd1d1UjFiZ2x1dWVEUnpEQk1YQS9nVTZuaE9EMy9EUTNRNy9QVDFX?=
 =?utf-8?B?Wmtvbk5iMUtxWXkwSHRTc3BwS1IvamZ1RjljYjUwUnU5TVlIODY4TTE3dEw3?=
 =?utf-8?B?QmdPOXBzNlB1dTVGVnRHSmJpUHhyS0hmQVBnOFliYWZVUkU0eFA3b3FIWG03?=
 =?utf-8?B?eFJNY2ZLZFh4aE9naDkxUkZYdlVGYWpFVVcralBHbkVxUDZ5cmp3Z3BqMHhK?=
 =?utf-8?B?c3ZQWFZmSU1OMUZ3MGkxOWtZd3ZsV3BEdFVzd2pjbnBHVEI5TE9xY0UwK0Nz?=
 =?utf-8?B?aDl1Uno5VitBTFMwYkMwV00yWVA4NGo3Sy96T2YwWW1sejdLcmZPWmlGT0VL?=
 =?utf-8?B?WUI4ZW5RNWJCR1BwM0NIM1ZKc3g1UXVSNnBreEE2M2F0MGlJSnN3TDRNTlBS?=
 =?utf-8?B?RUd4blF2Nm9wRzlzQXZBd1RKQk1Na0w0Umo1QmZTdjRwcCtFcXlBS1BURlN6?=
 =?utf-8?B?blFucmxmYmpaeENIMUREWlBHemhVRUV4c0xmbEt3QUJWcnNIaUtUcE5iTm1J?=
 =?utf-8?B?M0phcVJyWEd5WkY3MDlFSkZRSGt6ZVp1Rkk3cGVpRURrTWxic3QyZFJYNWtp?=
 =?utf-8?B?TVRKNit5K2tRcDhmd1hxdGZFQmprWDBiNXRlVWVxNjd5ZXB3eW56SVhhbEwy?=
 =?utf-8?B?cW1QY2cwUUh6VGlkT2xYd2hQeFFsazIvTzk0Zm8vNWlGVStZeUpJOU93dTV6?=
 =?utf-8?B?eThsMVU2VVhRZ1QvNy9Pek5pekZnaW1SeTNjeVkxWTY2Z2o0ZW42ZzEraDZv?=
 =?utf-8?B?RUVEMko5L3l2b0RhcWhJOUgvaStteXNWSWhnVnQ5S0Y4enNXbG9wWkVMNld2?=
 =?utf-8?B?Nk5NT3VJeS9SUXl2TXltK3VPSll6MFFVU1lPaWZBWTZsaEdJYUMrMkc5d2Nv?=
 =?utf-8?B?ZFVpY3p3S3Bvci9HdStmbUpJVXM0QkVwdi9KSmpjZ2pZbU4wdDU0a24yQ2dB?=
 =?utf-8?Q?3XCA0D7nYZ1Zh7oc=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a0fb828b-ff87-4f92-8a80-08de8b36993a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 12:52:55.0659
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: yWNqcFoupWap8ZAz+dcrWhHE97e4tIznGjcbzpIDNUwZP+OLu6FVE6LyNta0EieBGj5yvc/qNyV+moM/hj40hznKTtn3cRKlmA4PZf5GShs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH7PR03MB7858
X-purgate-ID: tlsNG-42698a/1774529579-988BD112-31EDF3B0/0/0
X-purgate-type: clean
X-purgate-size: 2256

On 26/03/2026 12:48 pm, Jan Beulich wrote:
> On 26.03.2026 13:11, Andrew Cooper wrote:
>> On 25/03/2026 2:58 pm, Roger Pau Monne wrote:
>>> Introduce extra logic to allow parsing ACPI tables extra early, and use it
>>> to parse the ACPI SPCR table and obtain the serial configuration.
>>>
>>> This is gated to the "acpi" device type being set in "com1" on the Xen
>>> command line.  Note that there can only be one serial device described in
>>> the SPCR, so limit it's usage to com1 exclusively for the time being.
>>>
>>> I can't test the interrupt information parsing on my system, as the
>>> interrupt is set to GSI with a value of 0xff, which is outside of the range
>>> of GSIs available on the system.  I've also assumed that the interrupt
>>> being 0xff is used to signal not interrupt setup (just like the Interrupt
>>> Pin register on PCI headers).
>>>
>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>>> ---
>>> WIP/RFC, not sure whether there's interest in attempting to pursue this
>>> further on x86.  So far the device I have is also exposed on the PCI bus
>>> aside from SPCR, so using com1=device=amt also works to detect it.
>>>
>>> Posting it kind of early to know whether I should try to polish it for
>>> submission or we are happy with not having this on x86.
>> I think we should be using SPCR/DBG2 when available.  Getting serial
>> configuration right is always tricky, and we might as well use the help
>> that Microsoft have forced the OEM/firmware world to provide.
>>
>> But, I think it should be automatic when the user asked for any kind of
>> serial.  e.g. console=com1 with no com1 configuration.  The point of
>> these tables is to provide an enumeration mechanism where none
>> previously existed.
> Hmm. In the PC world COM<n> have well-known configurations unless anything
> else is provided. With multiple serial ports in a system, which one SPCR
> describes also would be (largely) unknown.

Xen's COM1/2 already do do far more than the PC world.  But ok then, we
invent a new "serial".

My point is, there should be a way to say "please use serial as
described by the system", and it shouldn't even require knowing that the
description is in APCI.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 12:54:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 12:54:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264015.1555761 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5kE3-0000ul-R9; Thu, 26 Mar 2026 12:54:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264015.1555761; Thu, 26 Mar 2026 12: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 1w5kE3-0000ue-OR; Thu, 26 Mar 2026 12:54:15 +0000
Received: by outflank-mailman (input) for mailman id 1264015;
 Thu, 26 Mar 2026 12:54:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <bounce-md_30504962.69c52c74.v1-709d0f9814064cb5bcc5ee894dd456fe@bounce.vates.tech>)
 id 1w5kE2-0000uU-9g
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 12:54:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5kE1-002wG4-KC
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 13:54:13 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <bounce-md_30504962.69c52c74.v1-709d0f9814064cb5bcc5ee894dd456fe@bounce.vates.tech>)
 id 69c52c63-e002-0a2a0a5209dd-0a2a4507ae3e-44
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 13:54:13 +0100
Received: from [198.2.180.47] (helo=mail180-47.suw31.mandrillapp.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from
 <bounce-md_30504962.69c52c74.v1-709d0f9814064cb5bcc5ee894dd456fe@bounce.vates.tech>)
 id 69c52c74-fd74-0a2a45070019-c602b42fb816-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 13:54:13 +0100
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-47.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4fhNyD0ZwrzPm1FF5
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 12:54:12 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 709d0f9814064cb5bcc5ee894dd456fe; Thu, 26 Mar 2026 12:54:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mte1 header.d=mandrillapp.com header.i="@mandrillapp.com" header.h="From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"; dkim=pass header.s=mte1 header.d=vates.tech header.i="teddy.astie@vates.tech" header.h="From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774529652; x=1774799652;
	bh=9ENfk9W5x+5JX/9DDcM93W1SN8UBRjYQUTb1bavyQnk=;
	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=JKVwDe8zycmD2FWulg3GVOCHP/ArsmdmxDBDns9XZ5vdNon/KgnUcm0b9hbm1WyvJ
	 Ws0WkKPXstY+NAMSKzBmWA2UL6lCHvYRfmqiQiBWGyOoF7h5FdZPc82kjtyAfr1cyO
	 5OjTx/lKxcY1PQF6ulUXmBtOkc51jEokJ+fCT5c/clMsY1o7wNq5DkOzcKvMB79udP
	 478L8SUoWB/pSVUhe+ToW/uVJi3Qm1VkZPOzEp5G654ytQkqJJr6ImuU3dmvJ2DiIO
	 hNoMjGK4qbHYRBMO6AP5KCAFPzCkZpCdTzudwv22XSF6hnfTA2PHbNjWxjWAJ2Lpba
	 LzvM30yWtaeew==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774529652; x=1774790152; i=teddy.astie@vates.tech;
	bh=9ENfk9W5x+5JX/9DDcM93W1SN8UBRjYQUTb1bavyQnk=;
	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=sVKd9jlFQKN6P15JonMDflisg3sE2kgo5d9+aLo7C2on5QrRf7gax8Gfm9yBPD2fq
	 iZQXmQGVYIQj1sZ20WDfSsf7KcmnrZbTh+IwhFGlAFY1iZBUvtaY5bpSFhbOIZ8Kec
	 NU7F6Clr+aHgCL8jOAvJC/gWhXAi9k6oquPAiRBBnhdmhXYEkm6h0pPgupSPAGGZBA
	 5r5raYlBduEurwL47ULB7LsMzBNdC5rJKblLPHVgVtn6Q9zNkLMovplF5Qo8RtcR6Y
	 Q/didwBp8UFEhZahLcbNNLfFpX70gsHrFmdBuUUDbCFdf87tdsz1Nod70m44f6LlTi
	 FPf21tQyP7s0g==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH]=20x86/intel:=20Add=20recent=20CPU=20models=20model-specific=20LBRs?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774529650965
Message-Id: <7ccb48df-8255-4e01-9367-f9496fe2ee18@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>, "Tu Dinh" <ngoc-tu.dinh@vates.tech>
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: <888b0df36c6706de9d7ec1c5c4cc229297699670.1774519884.git.teddy.astie@vates.tech> <975b6883-646d-4db4-b931-b21c45d0507b@vates.tech> <1e95cf58-0e40-4cfe-8ac9-cd31d97f8330@suse.com>
In-Reply-To: <1e95cf58-0e40-4cfe-8ac9-cd31d97f8330@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.709d0f9814064cb5bcc5ee894dd456fe?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260326:md
Date: Thu, 26 Mar 2026 12:54:12 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-ef75cf/1774529653-578A4303-18314A8C/0/0
X-purgate-type: clean
X-purgate-size: 3549

Le 26/03/2026 =C3=A0 12:05, Jan Beulich a =C3=A9crit=C2=A0:
> On 26.03.2026 11:35, Tu Dinh wrote:
>> On 26/03/2026 11:21, Teddy Astie wrote:
>>> Add all CPU models that supports these MSR as they are defined in Febru=
ary 2026 SDM.
>>> It uses the same list that span from Skylake to latest CPU models as a =
part of
>>>
>>>       MSRs in the 6th=E2=80=9413th generation Intel=C2=AE Core=E2=84=A2=
 processors,
>>>       1st=E2=80=945th generation Intel=C2=AE Xeon=C2=AE Scalable proces=
sor families,
>>>       Intel=C2=AE Core=E2=84=A2 Ultra 7 processors, 8th generation Inte=
l=C2=AE Core=E2=84=A2 i3
>>>       processors, Intel=C2=AE Xeon=C2=AE E processors, Intel=C2=AE Xeon=
=C2=AE 6 P-Core
>>>       processors, Intel=C2=AE Xeon=C2=AE 6 E-Core processors, and Intel=
=C2=AE Series 2
>>>       Core=E2=84=A2 Ultra processors
>>>
>>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>>> ---
>>> Currently, none of these MSR are exposed on these CPUs, leading to BSOD=
 [1]
>>> in Windows when it is supposedly trying to debug some program.
>>>
>>> I guess [2] is also caused by these missing MSRs.
>>>
>>> [1] https://xcp-ng.org/forum/topic/12008/application-on-vm-causing-bsod
>>> [2] https://lore.kernel.org/xen-devel/ced16fca-3b55-40a1-a7e2-ffadd9707=
394@vates.tech/
>>>
>>>    xen/arch/x86/hvm/vmx/vmx.c | 16 ++++++++++++++++
>>>    1 file changed, 16 insertions(+)
>>>
>>
>> I don't think CPU models with architectural LBRs should be stuffed
>> together with the model-specific ones instead of having their own case.
> 
> I agree. We want to at least determine (or even enforce) how many LBRs
> are accessible. After all we can't be sure the DEPTH field hasn't been
> altered before we gained control.
> 
> Beyond that, because arch-LBR enabling is a significant effort, I guess
> using the existing machinery for the time being might be okay.
> 

While Architectural LBR support could be useful on its own, I don't 
think it would be enough.

If the guest is started without architectural LBR, the guest could 
default into using model-specific ones (basing eventually on 
Family-Model). That can happen if we migrate a guest from a Skylake-era 
CPU to a Granite Rapids, yet we still need the guest to keep access to 
model-specific ones, especially if they are stable across these CPU 
generations.

>> With that said, short of fully implementing arch LBR, it might make
>> sense to at least stub out the LER MSRs to allow Windows to read them
>> without crashing, as certain versions of Windows use LER MSR indexes
>> without checking the arch LBR CPUID bit.
> 
> This would be too Windows-centric for my taste.
> 

A few specific LBR MSR happens to be stable and are identical between 
architectural and model-specific lists.

     MSR_IA32_LASTBRANCHFROMIP 0x000001db
     MSR_IA32_LASTBRANCHTOIP 0x000001dc
     MSR_IA32_LASTINTFROMIP 0x000001dd
     MSR_IA32_LASTINTTOIP 0x000001de

In Xen, we already consider them somewhat "architectural", for instance, 
traps-setup.c:init_ler always uses MSR_IA32_LASTINTFROMIP unless you are 
running on a Pentium 4.

Perhaps for these ones at least, we should always expose them (unless 
you are a Pentium 4) ? It may be enough to prevent some guests from 
crashing when trying to access it.

Currently, it is only exposed if the CPU family is in this known list.

> Jan
> 

Teddy


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Mar 26 13:05:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 13:05:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264062.1555786 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5kOm-0003TM-33; Thu, 26 Mar 2026 13:05:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264062.1555786; Thu, 26 Mar 2026 13:05:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5kOl-0003TF-VY; Thu, 26 Mar 2026 13:05:19 +0000
Received: by outflank-mailman (input) for mailman id 1264062;
 Thu, 26 Mar 2026 13:05:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w5kOl-0003T9-8H
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 13:05:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5kOk-004T1z-K2
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 14:05:18 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c52f0e-bab6-0a2a0a5309dd-0a2a4502ad28-2
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 14:05:18 +0100
Received: from [202.12.124.144] (helo=fout-b1-smtp.messagingengine.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c52f0d-63bb-0a2a45020019-ca0c7c908c01-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 14:05:18 +0100
Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])
 by mailfout.stl.internal (Postfix) with ESMTP id 89D131D00251;
 Thu, 26 Mar 2026 09:05:16 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-05.internal (MEProxy); Thu, 26 Mar 2026 09:05:16 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 26 Mar 2026 09:05:15 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm1 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1774530316;
	 x=1774616716; bh=CfmFvw8ObXq44CC8f+3G32ZkEUy+9zkHgLU1j+/oiGA=; b=
	pX6SMjB6A+lh6JVvAer4Z2PDb7xVKcTaOzu2X1deSeXQoVse1bwM+DxeVeponIcr
	aV+b4slNx+8UPz75fmWxvYcF8ia7ZzC4egL/B6hb3/pxHpH2CrAhrwpqv3Zf0vrl
	zsuHkWvN7aeh7UG7/4ECjThcL8q8oEW96pV+9lsE/PMoaw2FDLiMux1goZQU19cR
	mcDUzgkGp2LDFYNvplunz8N4xPWHzMFU505nUl7ADns59uDLzFKB9UQsfLzXNwVm
	tA5Sk4FIxU/NujUjFrsotOQo5onIPtllG+yw8Iz8r9C+ny92s09U50IUX6SOld3t
	kmwOsUcgOs4y0JSGuuRGMg==
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=
	1774530316; x=1774616716; bh=CfmFvw8ObXq44CC8f+3G32ZkEUy+9zkHgLU
	1j+/oiGA=; b=kqrFfOxvaDBmx7TUe1D4oXT+4EjeDucTQH3SwxeR5l1oSDtmyAq
	NZpNFMs15414El0l3UCgECe66Oo/ifHisglADWH7lTDhU9t9UAjsuw80zZNXQ2UI
	GRjl84/8DGQwMw0W8tD/sA5mP8d55enWr1WOjqHs/SjYVjVYHY+oxjpf+HADLlCe
	Wb94MTgUaMnWT9LOZYadcROwRZAOv6E4JMppq7Z9vBBoIJGcDS8p3bjQIyyHr4s1
	YjkaNG9mPvNQGya6cndRJP3nm36LrN0xxdvPW8tZ+M+r8R273sFvTpHjBQqnHJ2Z
	9Rs7ZjldauyRO6ux8iQCnCauEWbjnOQEz+g==
X-ME-Sender: <xms:DC_Fab5gEMw8PbfoQvAv4cQ5KO7-btgf_BAZ5RTB2ZZvxSrQL-xuMg>
    <xme:DC_FaW6En2WMZFj7udVPvdNTAzHFl2pvUkBv9e-ZoFrQv0FNHrkKXcJbyFOcjkfTh
    fsLZQQO01Tl4UNDJ69kD2irLeyCCdRU9YMAaKDhM1a-EGCCFA>
X-ME-Received: <xmr:DC_FaQEtl0PhR-hoPvKEQwwXcOTie0cEEQn4w12H0ImjUGtjEWvjlImQ9W6OfcErtja7YLCOfmBjgiRP43c42Kf2yoUYdD6Pdp0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdefvdejgeeiucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtroertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnheptdetvdfh
    kedutedvleffgeeutdektefhtefhfffhfeetgefhieegledvtddtkedtnecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepvddpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtgho
    mhdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtth
    drohhrgh
X-ME-Proxy: <xmx:DC_FaXRYkxykHAIs7bkYopH8UwpTrpjMs9i99xib9ILnb5qQ3povXA>
    <xmx:DC_FaRtf65iWT_aS-VEnCPZ50WmAOooj8OCQyNy8sqRW4ckftHkwvg>
    <xmx:DC_FaeyrJUhHLJlDTm3QUGnLpbR-Vh-EfrryM8sBtUhMTL41VIpqVQ>
    <xmx:DC_FaT7upJHs2WkBHLjYTy_sn4C6Bn7CZc29c14Yworz1j0NMcUpAA>
    <xmx:DC_FacN3kVXc0VsdSkvcOHq9v1bppbiiaCLvKyQviZKKksX_--thWj6a>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 26 Mar 2026 14:05:13 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: Slow (higher scheduling latency?) system after S3 - regression
 4.17 -> 4.19 ?
Message-ID: <acUvCYfOBRGydNGL@mail-itl>
References: <aPzBO_eW8mQHM66u@mail-itl>
 <acQzzlXNDxNq885V@mail-itl>
 <330c25da-1f7b-4af1-b14c-1c5e732ea441@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="wmr8rh80rw3UCODT"
Content-Disposition: inline
In-Reply-To: <330c25da-1f7b-4af1-b14c-1c5e732ea441@suse.com>
X-purgate-ID: tlsNG-720697/1774530318-40497DB8-461E029F/0/0
X-purgate-type: clean
X-purgate-size: 1631


--wmr8rh80rw3UCODT
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 26 Mar 2026 14:05:13 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: Slow (higher scheduling latency?) system after S3 - regression
 4.17 -> 4.19 ?

On Thu, Mar 26, 2026 at 09:21:16AM +0100, Jan Beulich wrote:
> On 25.03.2026 20:13, Marek Marczykowski-G=C3=B3recki wrote:
> > In the "bad" case, I see this extra line:
> > (XEN) [    6.902973] Platform timer appears to have unexpectedly wrappe=
d 1 times.
> >=20
> > But in an earlier run of the same build it's not there.
>=20
> And in that earlier run, did the post-S3 delays also not occur?

Regardless of the above message, the "bad" build had the post-S3 delays.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmnFLwkACgkQ24/THMrX
1yxPAggAi4IQWNFeDMBkERl2jU5dyB+uxKWr8aRqOsi8Cc8MesL8mD4579Qk1REs
Pyid79VVRXj3vWjZ79nOqwsrSIKRSH8p7JnpsfnVkM3a+5IevpViAPVLKf3bTfKi
nmz/sdndePgMg5MUlnDApZkbN895SY/cJbitlEQCWE3N8RJAqvl7cAx+GGxED6Bw
0UtBncefNakSrSs440Sr2PxvUsF1tDOoqdKWOeNBZ/ljlqBryx00R7vH0pPC7p47
EB7qo0cqDcK8so9EjtmwYn0HW7a+Wo+xVnqBcWvajMDzr1C6BtW5BJaCkzKej6bj
KUzvUUTwnLniu3t1niOsRcOllWhwFw==
=sU6H
-----END PGP SIGNATURE-----

--wmr8rh80rw3UCODT--


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 13:13:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 13:13:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264083.1555815 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5kWP-0005fn-WB; Thu, 26 Mar 2026 13:13:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264083.1555815; Thu, 26 Mar 2026 13:13:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5kWP-0005fg-TD; Thu, 26 Mar 2026 13:13:13 +0000
Received: by outflank-mailman (input) for mailman id 1264083;
 Thu, 26 Mar 2026 13:13:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5kWO-0005fa-Tz
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 13:13:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5kWO-0030gP-9E
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 14:13:12 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c530e3-2eae-0a2a0a5409dd-0a2a4502ca06-24
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 14:13:12 +0100
Received: from [209.85.128.52] (helo=mail-wm1-f52.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c530e7-63bb-0a2a45020019-d1558034cc32-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 14:13:11 +0100
Received: by mail-wm1-f52.google.com with SMTP id
 5b1f17b1804b1-48540d21f7dso10582775e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 06:13:11 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4871fbdcc65sm17188485e9.13.2026.03.26.06.13.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 06:13:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774530791; x=1775135591; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jChPMHIfCy74iW13t1kHRV+MEl7Qtl/7pc2UcsldZLw=;
        b=D5kb26OmtBCV1++S37CRRas6Ozt6fys9AvqcvD8La1IcXm9n72KHaZj+e+hf6AX7+1
         fNpxGz7kfl+wcWVanjXiUSB4WurQFZ7FowQduVkIIVuWut8OxJ0TRwv/G5NEgB0lAVSG
         gdsyJMFeWp21ahIdBEuWGTjoGLj3dbDjdVteY4SJsQjDQRzmhQ9VJyRgqo8yjs8uY1B5
         7EpeYOlL2Ef9UuSmVStHjpBurNnA52D3UCI2sDodbD8rc9g+Fypbc2sMSYOl74mzxpeE
         FSGvB6YsLyjBvHkBK4np2dpigniTApLOBxY3xcU28UkrC7rITwNdHrJqk709ccICOmEN
         jyGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774530791; x=1775135591;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jChPMHIfCy74iW13t1kHRV+MEl7Qtl/7pc2UcsldZLw=;
        b=aQ6R8dYJmfqisVZIilvxYV/tutWQzTRcy+qm4t1JVpbJHpqgygduDRU0Kx63eYXyAE
         pwyFMwWq7z1HvIouIinRTM/LHopP48fE0paPvn6HQBZfb70G15IEyF7GAX0g53NrOPUB
         Mipe/EorOYHcFqURuZxsZRPFrgnOaeXYsyMKnlKF7wCfxbLvp/ub3FV3rI8cuILc01lX
         DCLCfrGCu96YAg5Jr5ZEbgGPzEaWfeN1vdzEbdjhmEhTkEYEpaQ3Uqo78Yg35xfAZSeq
         IDL4G+PyB/gNd53y28EKsaxepIcZ16pIs+c8F3OK/KWpKcPpccx9l0ZFLSXXxGbpVaiF
         bAQQ==
X-Forwarded-Encrypted: i=1; AJvYcCUh96UBu1LVnHHgUFM65CEWbI9+XcvoINgBKUJ7Y9CStLCIeXUkHSe9EN91W6YC0NSz88WHU98b3t0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxgll2sgMEVAQoHf2RRX6MADQ3Yh/jc6ZXiCt6dwGYgf76dVkRH
	n/e+a6Sb3rC44RxdSf9d9cstgVg6K56qpF4/l1alC7QgE/VZsBjaBZin+8SiN+Pp/g==
X-Gm-Gg: ATEYQzxi8pD+B6MLcqkAxN0DwxQ+YXRy+SoUqG/DrfRi1vxbtTqB63z6cDXlKsI+US2
	6XbAwluM3Av5CankO55d2i2aL5bK7wMDQTucG0LYMfmDAICxlgu9Cr/p5Nv4dELsa99wZDMaivN
	k3H5+yB0oWVf+7YrIczmZ+bwen23hs49WQIfP91sbs8rX/3mwDYo1rdEp+qTpXnOo1tIseMn8U7
	d434T8DTGx9uQTsCubbioCn49OQ74Nx6QYW6pSTaSWiHNGIp7zw8Ni+90rQRYq9Na7cRmRulJcr
	wZxNZs7xmkIU4RLHVyt33VabriIE09QrnvYkcaSo+rn0uA1tFT+kHX85gGckXiuskEQhWepGWUP
	WPCNixrJjRWUNAscla53lUOZb1/dqMUueiitbMRGh1ERN4OpIDa1sNdJgydvH4HCp2bkLRDctRg
	lIcfdyptLIN5nojwNpmhJnGJOtIniuKNlRoE5yKUbMsZKn+QNwMGFbWGf/7beGTi1q9E2iNUCkt
	pTJTXKXpku+FOk=
X-Received: by 2002:a05:600c:8b88:b0:487:1c2:6a4c with SMTP id 5b1f17b1804b1-48715fbf6a6mr124172175e9.4.1774530791084;
        Thu, 26 Mar 2026 06:13:11 -0700 (PDT)
Message-ID: <5ae7f228-d0d4-4e4a-8353-e2de59b6fd8b@suse.com>
Date: Thu, 26 Mar 2026 14:13:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] x86/intel: Add recent CPU models model-specific LBRs
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, Tu Dinh <ngoc-tu.dinh@vates.tech>
References: <888b0df36c6706de9d7ec1c5c4cc229297699670.1774519884.git.teddy.astie@vates.tech>
 <975b6883-646d-4db4-b931-b21c45d0507b@vates.tech>
 <1e95cf58-0e40-4cfe-8ac9-cd31d97f8330@suse.com>
 <7ccb48df-8255-4e01-9367-f9496fe2ee18@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: <7ccb48df-8255-4e01-9367-f9496fe2ee18@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1774530791-BD69EDB8-93D6725C/0/0
X-purgate-type: clean
X-purgate-size: 3379

On 26.03.2026 13:54, Teddy Astie wrote:
> Le 26/03/2026 à 12:05, Jan Beulich a écrit :
>> On 26.03.2026 11:35, Tu Dinh wrote:
>>> On 26/03/2026 11:21, Teddy Astie wrote:
>>>> Add all CPU models that supports these MSR as they are defined in February 2026 SDM.
>>>> It uses the same list that span from Skylake to latest CPU models as a part of
>>>>
>>>>       MSRs in the 6th—13th generation Intel® Core™ processors,
>>>>       1st—5th generation Intel® Xeon® Scalable processor families,
>>>>       Intel® Core™ Ultra 7 processors, 8th generation Intel® Core™ i3
>>>>       processors, Intel® Xeon® E processors, Intel® Xeon® 6 P-Core
>>>>       processors, Intel® Xeon® 6 E-Core processors, and Intel® Series 2
>>>>       Core™ Ultra processors
>>>>
>>>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>>>> ---
>>>> Currently, none of these MSR are exposed on these CPUs, leading to BSOD [1]
>>>> in Windows when it is supposedly trying to debug some program.
>>>>
>>>> I guess [2] is also caused by these missing MSRs.
>>>>
>>>> [1] https://xcp-ng.org/forum/topic/12008/application-on-vm-causing-bsod
>>>> [2] https://lore.kernel.org/xen-devel/ced16fca-3b55-40a1-a7e2-ffadd9707394@vates.tech/
>>>>
>>>>    xen/arch/x86/hvm/vmx/vmx.c | 16 ++++++++++++++++
>>>>    1 file changed, 16 insertions(+)
>>>>
>>>
>>> I don't think CPU models with architectural LBRs should be stuffed
>>> together with the model-specific ones instead of having their own case.
>>
>> I agree. We want to at least determine (or even enforce) how many LBRs
>> are accessible. After all we can't be sure the DEPTH field hasn't been
>> altered before we gained control.
>>
>> Beyond that, because arch-LBR enabling is a significant effort, I guess
>> using the existing machinery for the time being might be okay.
>>
> 
> While Architectural LBR support could be useful on its own, I don't 
> think it would be enough.
> 
> If the guest is started without architectural LBR, the guest could 
> default into using model-specific ones (basing eventually on 
> Family-Model). That can happen if we migrate a guest from a Skylake-era 
> CPU to a Granite Rapids, yet we still need the guest to keep access to 
> model-specific ones, especially if they are stable across these CPU 
> generations.
> 
>>> With that said, short of fully implementing arch LBR, it might make
>>> sense to at least stub out the LER MSRs to allow Windows to read them
>>> without crashing, as certain versions of Windows use LER MSR indexes
>>> without checking the arch LBR CPUID bit.
>>
>> This would be too Windows-centric for my taste.
>>
> 
> A few specific LBR MSR happens to be stable and are identical between 
> architectural and model-specific lists.
> 
>      MSR_IA32_LASTBRANCHFROMIP 0x000001db
>      MSR_IA32_LASTBRANCHTOIP 0x000001dc
>      MSR_IA32_LASTINTFROMIP 0x000001dd
>      MSR_IA32_LASTINTTOIP 0x000001de
> 
> In Xen, we already consider them somewhat "architectural", for instance, 
> traps-setup.c:init_ler always uses MSR_IA32_LASTINTFROMIP unless you are 
> running on a Pentium 4.
> 
> Perhaps for these ones at least, we should always expose them (unless 
> you are a Pentium 4) ? It may be enough to prevent some guests from 
> crashing when trying to access it.

Might be an option, yes.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 13:15:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 13:15:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264096.1555823 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5kYn-0006Ep-By; Thu, 26 Mar 2026 13:15:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264096.1555823; Thu, 26 Mar 2026 13:15:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5kYn-0006Ei-94; Thu, 26 Mar 2026 13:15:41 +0000
Received: by outflank-mailman (input) for mailman id 1264096;
 Thu, 26 Mar 2026 13:15:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Oleksandr_Tyshchenko@epam.com>) id 1w5kYl-0006Ea-C2
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 13:15:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5kYk-004Vwj-Nd
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 14:15:38 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Oleksandr_Tyshchenko@epam.com>)
 id 69c5316b-bab6-0a2a0a5309dd-0a2a4507c162-44
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 14:15:38 +0100
Received: from [52.101.69.81]
 (helo=AM0PR83CU005.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Oleksandr_Tyshchenko@epam.com>)
 id 69c5317a-fd74-0a2a45070019-34654551319a-4
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 14:15:38 +0100
Received: from AM4PR03MB11152.eurprd03.prod.outlook.com
 (2603:10a6:20b:6cc::22) by GVXPR03MB10804.eurprd03.prod.outlook.com
 (2603:10a6:150:223::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Thu, 26 Mar
 2026 13:15:36 +0000
Received: from AM4PR03MB11152.eurprd03.prod.outlook.com
 ([fe80::bbbf:5b9b:1043:4510]) by AM4PR03MB11152.eurprd03.prod.outlook.com
 ([fe80::bbbf:5b9b:1043:4510%5]) with mapi id 15.20.9745.019; Thu, 26 Mar 2026
 13:15:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wdZ39SUTbUowxV36x/kD2WxgoRcsf7mB+AnBzChKGV1bBmHQ3klksu5zvYTjGnmqEESk+uc9UFJL/d5sayLlJL9KiCurL6d/ZK8dQmXfVJ/MHweWwxGPJmObs+D3Le6ASQSK72LabTndFMy8nX2ODj13zkBrpQBt2TGmNhlozE1DApzLYqx+VgJVwnVQE5JMDSfvCy4d7xK2mnDU/JMK6H7QASeVkFwx5WYEO+4Q4yHiPGzHX/aoiqh25hV3JNtT/AQDp0F1NEbUxBQp3CNlaSecy3qrB/j4GkcUJgKEy27rmgHkZrWDEiEx8D12C6JqUrHE+bKG/3EHdYvRf0F3Vw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hBA45rH/iUDhuUY3wYV77y73MaL2jmNL3rTz0lBSRcY=;
 b=yWEpnua3vsbM5AfHOOVJoXNyuMUSLSFFW/ceX7UK6sCqZmhBIFg26rkY2wbonZTYOPUs3yPTvR+o83iLOC2aNaIVee/Z2jL6gqoNUKBk8pQLd8nnI/ghPV7kCLiwkb9d9TuiAU0NYcEy9Gp92YGpbi/NGHfCCSs+A9ixTAxveTrhhL3Pb8NYXz6XSZEbTgXMQL67DRb2lceHL/T7zpiKd3JmK5mS0KXZdj4ycO9jW8VaQVDyXgXSfKhoLrvsbtLksre7FeSSwyYhIQ+MfH8CCmUdlAFvrxpObZ7SZiet+uK0ife6OvieFI7ZW8g996NO7uWhSJ5TZHCS3/HOnukNUg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hBA45rH/iUDhuUY3wYV77y73MaL2jmNL3rTz0lBSRcY=;
 b=izq8kfvQRdYJLDjROogTgm8FT8cicP3zjMdsfobQ08XvUgoOWE0mso5TyftjpGUDpbch5KSQVQEcMnMX4FK1qFj23ezp0uHbp5uHGKMfFwCUzWUUFuiqvfX/h8LJ4hglFfXLd12wU+84HqxFakCJRP9VHKTZCet5hI2b+lZT1J8edqMa2vLPlUHJ0RKO7Z7ykmKH7yuKOTPBoLuJOUKI8EKDRS0nqqzSjdtwkrXdtPukA0BhCgMl8H/Gt2rq6QIbYKbm8HwuRmidLuiH83cBAlbp00h7hsiOVwIo13loqkasS0jC9qmoixOuWNpLgogsLpxax8lYa/Yy34KZDQYqWw==
From: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH] xen/arm: Increase DOM0_FDT_EXTRA_SIZE to support max reserved
 memory banks
Thread-Topic: [PATCH] xen/arm: Increase DOM0_FDT_EXTRA_SIZE to support max
 reserved memory banks
Thread-Index: AQHcvSKiuRz6O/EU8kCzrBnRPjf18w==
Date: Thu, 26 Mar 2026 13:15:36 +0000
Message-ID: <20260326131535.662466-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: AM4PR03MB11152:EE_|GVXPR03MB10804:EE_
x-ms-office365-filtering-correlation-id: 1a80449e-75c5-47ae-81c5-08de8b39c4a2
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|42112799006|1800799024|366016|38070700021|56012099003|18002099003;
x-microsoft-antispam-message-info:
 d+XpNal6uLnSAvCXdLpEvzpm4reK0WYoyyquhBq9yXjw63MHjs0TDFpu5cAXEsnxcvDL0VJ5Bk40Ddulzb3Z4TSNV+XUSwmMLJE6BM+uuqxlpAUAmwJbZsdi6CTDJVEUzNYSNm5J4ohbvVmw0auz79uBfoX+9a5Pmx5Byo7X1xqFTzpDoOWAFE5blEIz0UJGl1ncJTvMm5YRpMPAzEMCnCWUxSE90YOASpdAWdpNVcvKpOCLk9fGwNIjwjvGKxXVoUBegMr/cmKp6sT+9AkT8WeZ1q1SLwwgQI8Xzz3944rjGSyBcuQe34jiJQLhHeiz7eiD6UYI4Pxwa8uMrxMK1ZSf1tBHHAvPpLlB4LylXL5Z5GF1+Yzo6WbMmQOwnNg6cxgIaMZ1+hAZqxPSKez0mdIY+Rlf4hRyeZJQo1NiRTiu2k04hGqG3vqxgM6ByWlmKV70vK6z99EW0IB50toYpDasi1kFZwzDEe+aLcjjVtuDxDd0qwjNd6zfouKF1KUbifrWO4Sn6QuGvg3VtNJiWxqhQ55cb1IjRBkXNwY0XfLkF2nvojmKA0EhKrRdWdMaJzU/rc8NQiiOMGffOimL5j2TK9joqixXoJcJTH41EXYEd8jnFiAE4Z8fbRUHpN/v+V6rov3Sz4X4iECX+2bemly7UgVn+UsDoQErylQ0D/hWrgLtLKVtACFJCUu6D/UgpzhNeZe8WNCqUsjJtyW8/qzYd5RDa/av54T1FmqXICnZeOdCqOLfosW2yoWrHemP+MzcTu5GGO5jegMb4u3SH2eFGky5L5MyKcnuPinjPj0=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM4PR03MB11152.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(42112799006)(1800799024)(366016)(38070700021)(56012099003)(18002099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?ZkVYK4F63S2Mbp/eHrVO9lxqFijJTtigTngxJFRdOOJ4vs95ldgM0aWL8D?=
 =?iso-8859-1?Q?ZFbCbFJAalNiCU0k+IVzQZmJdUqx/Fq8yN2NPhrgXAjj4FYxK4akFQoi/x?=
 =?iso-8859-1?Q?AQCRS3AxvKOLfpLWtC2raovcjDs3v9PZoKscikBV26QquIHgS1gNFigjEQ?=
 =?iso-8859-1?Q?MdvVEEYLOfXh91OUhSr8c6yTibDVwt3lDcM6u21W5lsCALty/yO69mf3vG?=
 =?iso-8859-1?Q?9BFSfDO4VAf0FqKxYcQZELOjxdILtZpjZRhvBnYTvQg3UNkUA+/ZxbJRvI?=
 =?iso-8859-1?Q?zWnd0cZpOUGopJ/qKOflP7gxhgtlSdbb1Tvapzz1Zl5XlpQZThAUNoJpc3?=
 =?iso-8859-1?Q?Etwr6Sg7IWOYaT3IV/JHixWxpSAxVL4yIdnn8EU/IkdOQ1rGOsw27V3GPZ?=
 =?iso-8859-1?Q?oSiXw4Go3YFGA718WUld4ZSV9jbXDnnr1VS1yb8OBEf4299nP9nkudk/FU?=
 =?iso-8859-1?Q?vLrWYYVZHD+frDPRoDqocV8sf3XltpbBrSn4XyPd1SMdxdzjhaMKZTSx9R?=
 =?iso-8859-1?Q?ZwBKMxkF5jo0ZdtHEEIgJYkewZ0TGo2TLaEUfBKNBq0TDKT1oN/CMCegZP?=
 =?iso-8859-1?Q?FaZDBygujx6P5IEo5XrLHy0p65tNCA2syqzLedxHZrwjtUbdIBER3HASs8?=
 =?iso-8859-1?Q?Vol2HHTTXeJYupvvo88XD/u+fA+rzQeIhTDXbzv5cMjF2HwMPLDW6YTKyD?=
 =?iso-8859-1?Q?L/ymTGj+uewM3qgQQCsk6DQzA9QgA7nyJmVGUqFk89UghtV8PPv562R86V?=
 =?iso-8859-1?Q?70w+ZmA6V5wkvL/ttt8njUB3PnaCZ0tIvEGzlQ7qxEoSDl+La6jKzeSvok?=
 =?iso-8859-1?Q?5N7TDUNsykrTl6/DXkEfUYHmkjgVdCfJy3dNYxN1XLe1KrhxLpqGcS/yLd?=
 =?iso-8859-1?Q?RGjnr+knvatrh0ix0xAjqDp9tUAYEhuvGvyMOWza1F16Wlts0KUQU6gXW9?=
 =?iso-8859-1?Q?sDUbvH/QmufbsKnNqbZof/09zW1GQYjzHx+ex06ta5y8AWXizu96AJfGVZ?=
 =?iso-8859-1?Q?ogDQwXs5H7gJgDRnRFxMqKWcQqgEcQMlXz0sEBPGEF8xfh8NLqiPE1c/DA?=
 =?iso-8859-1?Q?peunyzuR1lyVDYTft6avpkN4tCKhFOw0U4poy4E5dT6/cfzMZNdmQKcVd3?=
 =?iso-8859-1?Q?4So8z/9DObbxdN/yDvaqrX1+7bRfEES3DM3UfEiBYW+9zZiGzUGvgv7LiS?=
 =?iso-8859-1?Q?QE2bZ9xNOBRf2hJntv+rjUn85ZZndpzwt/RSmta833VS0iCjW0BRzIsWLA?=
 =?iso-8859-1?Q?XmBdXh1I59ZcH+s67k4EpWktLeP/1ywYSBg28agjaRE0MYEzYUpYUt+sdE?=
 =?iso-8859-1?Q?LiIntwg5P79+j3r2RYe/3pdu3xNiEM1yUHSeTITWxZfaOoCCFRfCm4vDvB?=
 =?iso-8859-1?Q?MUug3r7pXIqmvncQpjgmsSkzqJGfCyDyoMz26wxV+FwsrBg5xF+bEO7D2A?=
 =?iso-8859-1?Q?wDUqwjNC6P8EijpOwqE6LSxCMhhsdCgswJbA9XJaVfFJodZMtZdtgXW7Sy?=
 =?iso-8859-1?Q?KSBjthb5A/qKLCLMoa3AUiKLTWLhLz7UwbWPuhvparopILS6DZxUNxmvMz?=
 =?iso-8859-1?Q?mOajKDR5LSBgHGhT8F705WGI1mIza7OuwCT3vXnoXMzQjLYQqovS+SdZWF?=
 =?iso-8859-1?Q?aYE8I5N44dCTE8PPKb7dwqvfVPmu2qWKSIYMobZjPDnc+oBH9E7Tv0XZi4?=
 =?iso-8859-1?Q?TAPeun2/bQq7ftg4koPAN4N2tcxtIaSfwmuWTKRwp12wNW9oLd7ZfBaubK?=
 =?iso-8859-1?Q?2rQLeYpM3zq/5xYj2XE5NaGEIR7Xz764tbo3dtOUBnX3u3ALvwi4Xh+ufk?=
 =?iso-8859-1?Q?ZEQkW+PRARo1SHueeSlvmWkpLyBZ4/dLKAtvL7aZb5eHJmkqoin+?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM4PR03MB11152.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1a80449e-75c5-47ae-81c5-08de8b39c4a2
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Mar 2026 13:15:36.1373
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: EGGYKpYCyJ0auhyWAJif5svzqFRrfRB23rPE+zHbKAh4jRbWzf4zBrCtWDCvqBSK4zPo0KqvyTIO/uJ9wVak+EgUMt8tQLIQL9d4MkGvQGs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB10804
X-purgate-ID: tlsNG-ef75cf/1774530938-5C58B303-9BAC3241/0/0
X-purgate-type: clean
X-purgate-size: 1898

Xen fails to construct the hardware domain's device tree with
FDT_ERR_NOSPACE (-3) when the host memory map is highly fragmented
(e.g., numerous reserved memory regions).

This occurs because DOM0_FDT_EXTRA_SIZE underestimates the space
required for the generated extra /memory node. make_memory_node()
aggregates all reserved regions into a single reg property. With
NR_MEM_BANKS (256) and 64-bit address/size cells, this property
can grow up to 4KB (256 * 16), easily overflowing the allocated
buffer.

Fix this by increasing DOM0_FDT_EXTRA_SIZE to account for
the worst-case size: NR_MEM_BANKS * 16 bytes.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
Just to be clear, I have not seen a real-world issue with this.
The issue was observed during testing of limit conditions.
With this patch applied, Xen successfully boots the hardware domain,
exposing 256 reserved memory regions to it (using a synthetically
generated configuration).
---
---
 xen/arch/arm/domain_build.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index e8795745dd..7f9f0f5510 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -100,9 +100,11 @@ int __init parse_arch_dom0_param(const char *s, const =
char *e)
 /*
  * Amount of extra space required to dom0's device tree.  No new nodes
  * are added (yet) but one terminating reserve map entry (16 bytes) is
- * added.
+ * added. Plus space for an extra memory node to cover all possible reserv=
ed
+ * memory regions (2 addr cells + 2 size cells).
  */
-#define DOM0_FDT_EXTRA_SIZE (128 + sizeof(struct fdt_reserve_entry))
+#define DOM0_FDT_EXTRA_SIZE (128 + sizeof(struct fdt_reserve_entry) + \
+    (NR_MEM_BANKS * 16))
=20
 unsigned int __init dom0_max_vcpus(void)
 {
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 13:18:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 13:18:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264110.1555833 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5kbO-00074f-Ou; Thu, 26 Mar 2026 13:18:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264110.1555833; Thu, 26 Mar 2026 13:18:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5kbO-00074Y-M2; Thu, 26 Mar 2026 13:18:22 +0000
Received: by outflank-mailman (input) for mailman id 1264110;
 Thu, 26 Mar 2026 13:18:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper3@citrix.com>) id 1w5kbN-00074S-2b
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 13:18:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5kbM-004WTq-Ed
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 14:18:20 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69c5321b-2eae-0a2a0a5409dd-0a2a4501999c-6
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 14:18:20 +0100
Received: from [209.85.221.53] (helo=mail-wr1-f53.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69c5321c-6400-0a2a45010019-d155dd35ccbf-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 14:18:20 +0100
Received: by mail-wr1-f53.google.com with SMTP id
 ffacd0b85a97d-439b94a19fdso891306f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 06:18:20 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b919df7dcsm8948737f8f.27.2026.03.26.06.18.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 26 Mar 2026 06:18:17 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1774531099; x=1775135899; 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=j4dXXIcKAOdtd7nLvTgzA0mgx+BRrOkNsGYNjYLQUv4=;
        b=EQ+PifV4S7TIKDv6PLevQeVew0snt7NBs0PY1nxMua6DAe3ML6KogcHzDyWNuHlw/d
         +x8PTdjw2R0kn/v8YDx8YSCu+lb3aFv/nIpToXNDo0SRp+ENHGIWV9xpyo7cRnQCQjNT
         oO+2YWCj9KpL7awGMODw1UWzA1IdSIt/9Xd4o=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774531099; x=1775135899;
        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=j4dXXIcKAOdtd7nLvTgzA0mgx+BRrOkNsGYNjYLQUv4=;
        b=NT+kLciGQh3lgj6ZTKikTOO0GoCY33lGpLR1c6h16mDr05Gxe/PBOwMKpR9U99jqzD
         Wdd7t5VblJ4nJVnEor2BENgRpBTZlYYOfjVkLICIrXhkzcZjhQzbNb5qPXMEiiblifHd
         THe1lSdqoeZrMIENQB8k38S0ZUjZvia3t+erOc6XSi3iXoAwTKC6/DndpetLJK/vCMK3
         A5C3Wt7ASH30TX8U6MeFcDlDm4+j9Yqv8tAUlNnp2DSb2f+rYRxbCNUSJPE7VhWt9iBy
         qnaBolglUN3PVHFNY8Y3b74m7j3F5sUukDdlvK8Av0/5lKMdKM4hvNmlfbBThIkmVLFZ
         nHTQ==
X-Gm-Message-State: AOJu0Yz4x8nKprpIQlzGbaomx4tKS60w6be6ioiSQ78j5mwxQMMYI80i
	Cb96wDun0wkzGX69wEQX3uhHzCkMjACwZrL0pfUP14n0yy+JL0z1XaKvXAFHC380H9wAyUewbSH
	DrTn2
X-Gm-Gg: ATEYQzwhUTeI3HG2iNi1BRyWUm1yzi4kyqOn8JynlKzTk+5ksxXaPOsS4+bvxR2iMub
	iLCVZynI3TgDaQJCqgPc6plmgOdLKw/ZW22HUJcytC3B1hOIYNjyLhcJ1c/mO64onPnC3IgA8aD
	OzpsnCLHdggjr0RUTTWABTQgCTeNjXRil8H/sT8xiT4U+44KaZcz034zu0HNtsafuo1O6sM5oAX
	xIrqfArweYIdPEagO6sqQhrB6FKBaN5vR3k7Eo2idArdTINxsM4keEkXX0HI/fb74stdX+MiyrW
	DzOBVajIPRmiEElYa4k3c9nb/v550PnGa0fYGUenVXVJmw3Qmdm9xzZxQo8AKPX7aiwJhbAbtnY
	fM8Gs5J2TXuIqFCwukNY4soGdSPeQM5FtLNspe16noAFkfxwYCC2oaptOcKVcKoBeZA4bJFb4dq
	Qy2WwWqoZFPLRPIqYCkCZdU2ECJUIPxMkncKgsuBdEfyLCnHF+NvJakbnzVlFfoVjzSngWn5Vwd
	RZc
X-Received: by 2002:a05:6000:4212:b0:439:c1f4:302a with SMTP id ffacd0b85a97d-43b8899543emr11418473f8f.11.1774531097586;
        Thu, 26 Mar 2026 06:18:17 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] x86/hvm: Configuration for Linear Address Space Separation
Date: Thu, 26 Mar 2026 13:18:15 +0000
Message-Id: <20260326131815.1139203-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1774531100-8DEFADF3-8A923FD1/0/0
X-purgate-type: clean
X-purgate-size: 3288

LASS is a feature designed in the aftermath of Meltdown, which codifies the
user/kernel split in address space in order to block entire classes of
sidechanels.  Specifically, it allows the CPU to terminate any memory access
into the wrong half of the address space based on linear address alone and
without needing a pagewalk.

It is available in CPUs starting with Intel Sapphire Rapids (2023).

For now, allow LASS to be opted in to, but leave it off by default.  Some work
in the emulator is going to be needed to enable it by default.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

This needs rebasing around my correction to the FRED comment.

Abdel is going to look into the emulator side of things, which is going to be
easier with this patch already in place.  I intend to get it fully supported
for 4.22.
---
 xen/arch/x86/hvm/hvm.c                      | 1 +
 xen/arch/x86/include/asm/x86-defns.h        | 1 +
 xen/include/public/arch-x86/cpufeatureset.h | 2 +-
 3 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 4d37a93c57a5..b62b058861c3 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -1019,6 +1019,7 @@ unsigned long hvm_cr4_guest_valid_bits(const struct domain *d)
             (p->feat.pku      ? X86_CR4_PKE               : 0) |
             (cet              ? X86_CR4_CET               : 0) |
             (p->feat.pks      ? X86_CR4_PKS               : 0) |
+            (p->feat.lass     ? X86_CR4_LASS              : 0) |
             0);
 }
 
diff --git a/xen/arch/x86/include/asm/x86-defns.h b/xen/arch/x86/include/asm/x86-defns.h
index edeb0b4ff95a..51b603bb1a14 100644
--- a/xen/arch/x86/include/asm/x86-defns.h
+++ b/xen/arch/x86/include/asm/x86-defns.h
@@ -82,6 +82,7 @@
 #define X86_CR4_PKE        0x00400000 /* enable PKE */
 #define X86_CR4_CET        0x00800000 /* Control-flow Enforcement Technology */
 #define X86_CR4_PKS        0x01000000 /* Protection Key Supervisor */
+#define X86_CR4_LASS       (_AC(1, ULL) << 27) /* Linear Address Space Separation */
 #define X86_CR4_FRED       (_AC(1, ULL) << 32) /* Fast Return and Event Delivery */
 
 #define X86_CR8_VALID_MASK 0xf
diff --git a/xen/include/public/arch-x86/cpufeatureset.h b/xen/include/public/arch-x86/cpufeatureset.h
index 9cd778586f10..c0b52e4c9ef9 100644
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -304,7 +304,7 @@ XEN_CPUFEATURE(SM3,          10*32+ 1) /*A  SM3 Instructions */
 XEN_CPUFEATURE(SM4,          10*32+ 2) /*A  SM4 Instructions */
 XEN_CPUFEATURE(AVX_VNNI,     10*32+ 4) /*A  AVX-VNNI Instructions */
 XEN_CPUFEATURE(AVX512_BF16,  10*32+ 5) /*A  AVX512 BFloat16 Instructions */
-XEN_CPUFEATURE(LASS,         10*32+ 6) /*   Linear Address Space Separation */
+XEN_CPUFEATURE(LASS,         10*32+ 6) /*s  Linear Address Space Separation */
 XEN_CPUFEATURE(CMPCCXADD,    10*32+ 7) /*a  CMPccXADD Instructions */
 XEN_CPUFEATURE(ARCH_PERF_MON, 10*32+8) /*   Architectural Perfmon */
 XEN_CPUFEATURE(FZRM,         10*32+10) /*A  Fast Zero-length REP MOVSB */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Mar 26 13:20:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 13:20:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264122.1555842 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5kd6-0000Cg-6N; Thu, 26 Mar 2026 13:20:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264122.1555842; Thu, 26 Mar 2026 13: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 1w5kd6-0000CZ-37; Thu, 26 Mar 2026 13:20:08 +0000
Received: by outflank-mailman (input) for mailman id 1264122;
 Thu, 26 Mar 2026 13:20:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5kd5-00006D-IS
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 13:20:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5kd4-009lZ2-UW
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 14:20:06 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c53282-2eae-0a2a0a5409dd-0a2a45018922-30
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 14:20:06 +0100
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c53286-6400-0a2a45010019-d1558032d4cf-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 14:20:06 +0100
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-4852a9c6309so9201515e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 06:20:06 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b9192e35esm7365813f8f.6.2026.03.26.06.20.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 06:20:05 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774531206; x=1775136006; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rcYqFzyqvI8ig/NcoUHj2uFaipLPsf86wtjiCfYrbmU=;
        b=gI0b8CCaJlgJ5sXy+HtFh+Q5n4OLESpBaNvfex3KEv1kiWZzXykJgOY5+6Jv6Pfiup
         Le5MROHqo+l7THP0HJRwA5da2+E72kure2v5cNs7K4uHFiGfFCLoMmj8clpI2DaOAeBu
         UT7Wz5IqxdLunkJw3VL2M0VSyoKJdlJjfKSz3WsxlmHypXOzrO/oG3VMGgmBFBi1t8an
         qTcKuunsOLR66CkS3q7HJSE16UTgJdaxXrBluSMMoog+VWCiWJ9VPnHXdTYPCvUSgg9t
         Zfagozrx1mbtRfpVRgor9GOszWN3EwPADr2f17O7IbCyYqB18/Xe8WkfVI0ITSgRYXhn
         BT+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774531206; x=1775136006;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rcYqFzyqvI8ig/NcoUHj2uFaipLPsf86wtjiCfYrbmU=;
        b=i06ZFctn4dPZnWTW1gpn6GS0hYzA6WJb8BHUlGr37wXI9ZEnKU/Y+uGNOhmoJUpORt
         3LJd86UPrsOfz1BvyjURO3rPG0qW8nB9tB1rnaY8h0xSNNPyF4PxT4wPf9haA6jAh4D+
         b2zy9nwkaQwjAknGFKsh9pnoRP9Pn4lpy4VHYcA8E3bx6zNSvQRfcNGQMa5BUzxdLfWP
         2lJRbwypKR1W9zmnTRgOXnrqW4PtYmhgWZdpRvQjNWbYDR0ZN65k49RtjMPK9Hi/D8EB
         CtP9qEsJL2aMLMGNbbd5K/jND9Zz0slYI6XlApmO1acOC0WerYlUW6gbNguJrFWXo7HK
         sO7g==
X-Gm-Message-State: AOJu0YzMWzuKvXY1gvFG1f7VvA7THtxA8okEATE4TpWXZS7spcXJ5hH8
	zumlRS7jyrSFhd5BgDWvUYDpUcsWQiwFJJIOkb16kn1hidybnT0Ga6Sojsb+cQRS5UPj7iunJJv
	TDErQ3g==
X-Gm-Gg: ATEYQzxftaFPcRhsTiLmqbitkrD4xoYcezXrlb7uQOn+vn/KDw1MowHLFJbHRkEgPWA
	gnQpUv6sbTNpxKyoP0nXfNQbOTyJYSzBLbkgr8RdZv4ZXV3sfXBbKSL7l5UkOTmIGS+EtMR+HaY
	vlJ1LOaob8CMmaCuN6LnQoXKlxUo0aRVVSKN1x6D8ek/RqrPcLLCvrOUzf/WXlknF+Mj9KInbaJ
	cFJxQg6jRIOgT5+BhMBuXgBI59PyUgKoo+1MBf7BbxQzKXCSE3Jazhdw5olqi9c7yxEwZ/N9R/p
	zM8oflm9YUmnPGbBhx6FLyj3fJmPBEoZZ3GLYFtRu0zMqSQTjRtgnaaRsQan2IpIPuXBs9Oq4Ok
	9Rf7yPMO84HhOkXNfOqh7o7uR8BWhRB7MaqjJTOBA7Jrm+P2E3DB3ZfI/NUHFmjF2WPMyDPRHvW
	KCF985SYTxYt3iGI+rOeag8qHhGopXbT441O/RuSEwSLRcg/sKQR7uZJKi6EGJkdG1qDQ2Brf0D
	KarQ4O6T2fU+r8=
X-Received: by 2002:a05:600c:1394:b0:486:fe46:b647 with SMTP id 5b1f17b1804b1-48715fd6193mr114025445e9.10.1774531206116;
        Thu, 26 Mar 2026 06:20:06 -0700 (PDT)
Message-ID: <cbed767b-4ac4-4989-8778-43ff321ae977@suse.com>
Date: Thu, 26 Mar 2026 14:20:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Slow (higher scheduling latency?) system after S3 - regression
 4.17 -> 4.19 ?
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>
References: <aPzBO_eW8mQHM66u@mail-itl> <acQzzlXNDxNq885V@mail-itl>
 <29775afa-e17b-4c44-a2a8-4ef4bc7cdf0f@suse.com> <acUqOL232lp-Lw1v@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: <acUqOL232lp-Lw1v@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1774531206-8EEE2DF3-35FB3285/0/0
X-purgate-type: clean
X-purgate-size: 4212

On 26.03.2026 13:44, Marek Marczykowski-Górecki wrote:
> On Thu, Mar 26, 2026 at 09:27:56AM +0100, Jan Beulich wrote:
>> On 25.03.2026 20:13, Marek Marczykowski-Górecki wrote:
>>> On Sat, Oct 25, 2025 at 02:23:23PM +0200, Marek Marczykowski-Górecki wrote:
>>>> Hi,
>>>>
>>>> After updating from Xen 4.17 to 4.19 it appears that I have some
>>>> performance issues if system was suspended before. For now this is just
>>>> vague observation, as I don't have much data yet.
>>>>
>>>> Generally, the user observable effect is that audio playback (over
>>>> Qubes's PV audio thing) becomes very choppy, beyond usefulness (cannot
>>>> make audio calls anymore, music/video playback also becomes useless with
>>>> some players. For me this suggests some increased latency in scheduling
>>>> - maybe some timer fires too late?
>>>>
>>>> This doesn't happen always, but I'd say quite often after S3, sometimes
>>>> may need two or three suspend cycles to trigger the issue. But it's
>>>> possible it is also some other factor, like which pCPU the VM gets
>>>> scheduled on, maybe? But for now I didn't hit this issue before
>>>> performing any S3. I don't have a reliable reproducer yet.
>>>>
>>>> While I write it's related to 4.17 -> 4.19 update, there is also slight
>>>> possibility it's related to hardware change (CFL -> MTL). But, it's
>>>> unlikely, since I'd probably get much more bug reports about that (the
>>>> stable Qubes version uses 4.17, and we have many users on MTL).
>>>>
>>>> What would be the method to collect some useful debugging info? Some
>>>> debug-keys (r? a?), some cmdline options?
>>>
>>> In the meantime (sharing some of it on Matrix already), I managed to
>>> build a much more isolated test. Specifically, a single PVH domU with
>>> VLC, preloading 1s of audio (and not playing it really, the output is
>>> set to a file). The specific command is:
>>>
>>>     VLC_VERBOSE=3 vlc -I cli -A afile --no-loop --play-and-exit --run-time 1   ./melodigne-quiz-blind-test-187140.mp3
>>>
>>> The domU rootfs (or rather: initramfs) is based on AppImage of VLC,
>>> there is not much more inside, and the above command is called as part
>>> of init script (and domU is terminated shortly after).
>>>
>>> There is no persistent state in the test, the whole thing is network
>>> booted from the same base. The only things changing between runs is xen
>>> binary + toolstack.
>>>
>>> In the output I'm looking for this line: main input debug: Stream buffering done (1018 ms in 2 ms)
>>>
>>> Before S3 it takes 0-2ms, sometimes (rarely) 10ms (not sure why). Just
>>> after S3 it takes very similar amount of time.
>>> Then, I wait 30min, and run that command (or really the whole domU)
>>> again a few times. I consider it "good" if I get at least one result
>>> below 10ms. With this test in hand, I did run bisect between
>>> staging-4.17 and staging-4.19. And here stuff gets interesting:
>>>
>>> At 498a4ded74b3f062c52e42568223dc5858d27731 I get the following times
>>> (in ms):
>>>
>>>     30m after S3: 2, 2, 10, 10, 
>>>     1h after S3: 2, 16, 16, 2, 17
>>>
>>> At 5effd810c629d9a836e46ee321ca7409dad27212:
>>>
>>>     30m after S3: 26, 27, 26, 15
>>>     1h after S3: 24, 25, 37, 37, 25
>>>
>>> This doesn't make any sense to me. There is a clear difference, yet
>>> 5effd810c629d9a836e46ee321ca7409dad27212 looks like a no-op change (at
>>> least for this Intel system).
>>
>> Pretty odd indeed. I assume you double checked the effect by going back
>> and forth between the two commits.
> 
> Yes...
> 
>> If the effect persists, could you make
>> both binaries (xen-syms or xen.efi respectively, depending on which one
>> you use of the system) available somewhere for inspection? There has to
>> be some relevant difference, e.g. by addresses shifting slightly.
> 
> Sure, here: https://salmon.qubes-os.org/~marmarek/xen-perf-weird.tar.gz

While said commit changes the size of init_nonfatal_mce_checker() by 4
bytes, that doesn't lead to any other changes. I.e. all addresses remain
the same. I.e. I'm completely lost as to explaining the observed behavior
(or even just making a wild guess).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 13:50:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 13:50:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264173.1555871 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5l6l-0005hm-Kp; Thu, 26 Mar 2026 13:50:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264173.1555871; Thu, 26 Mar 2026 13:50:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5l6l-0005hf-I4; Thu, 26 Mar 2026 13:50:47 +0000
Received: by outflank-mailman (input) for mailman id 1264173;
 Thu, 26 Mar 2026 13:50:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5l6k-0005hZ-Hf
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 13:50:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5l6j-0093OK-U0
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 14:50:45 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c539b3-bab6-0a2a0a5309dd-0a2a4502bc30-6
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 14:50:45 +0100
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c539b5-63bb-0a2a45020019-d1558030ac90-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 14:50:45 +0100
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-486fb439299so9500255e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 06:50:45 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b9192e528sm7867942f8f.1.2026.03.26.06.50.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 06:50:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774533045; x=1775137845; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oRmIAczwzc6tHf8uMCnh9Nawk+I6B82vpZqm967EGkk=;
        b=faTpQdFTVGFyuPUNiV4a7ovm20Sv1D7pEydIAjcU03dis8b/NkmjHb/lwF9wQJdj6I
         FpRUgGo26AVq9V9pHG5K5qIB8f8OuoXGNnWc4piJ0X1eLHy40DwXR9mF9DIo9npZpEsF
         0PdJafWPO+2gqOdUBlp6cEgtzLNv1fU3zMTli7iL1hDvbkJ9+44+HZLH3Kqb741ot76W
         /5z+XzGqVLl6lPzuPgvUDkV5M8aOBCAGv3zkc2tx6hHWmwe9eoXrq3KQLUskc1QR3mrm
         ZV3ZxsPiOIhFWqnFNz8+yivrdirVkKkoTzJhKA7zC85w+IpB1S0TmkaIsBcwmMTrWQIb
         Y/8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774533045; x=1775137845;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oRmIAczwzc6tHf8uMCnh9Nawk+I6B82vpZqm967EGkk=;
        b=rOlBtSPKXHA9yHOApm9kxhm9dMC1EIW9q0+Vi5gkNRlJdi6PXsOyEZt3mpd3v0dGwR
         Pe7XH69OWWDh2XZIFhufNDiZOoP2G3TEs2keFHYMceZWHXh/Q9ITRwKYC/qin9W961ra
         6Jc4ZaKM2S4T+2cFJvioxLfZ5ZGFQipoXxZRq1O7F4NFvtbrl7vX+Z0WmN7V3F7dNuMB
         gfg9YAepj6CJ37ImU++5cZlbdn0tlFpMHphg8Wq9IXxn4jYgvz3bNqMfug8iyxCpYPRs
         37KWCjvm2jnNPQHEtowOsJSxj3bnFvn6s97UjeuwSOHR4bx3sZYhaGVsC4Rc5SC07gGs
         zRmw==
X-Forwarded-Encrypted: i=1; AJvYcCUspGGwxuh6TPCfwJgMsIfFwGt1e8nhscfLZTkdDbXI+OPrDBfTJp9Xx/jzR6gVpeKskxjiLmPbwuo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzQR7RPYlfvgRLSselF9DBpvRO4Y3NNZFNG1NDQxD4JUJGoLhK9
	sIKfTySVRglYCsmwbUx63cqXj3rRee3tIigEJ/ddeXCa0uMa7BiHFP898zNAj6izAQ==
X-Gm-Gg: ATEYQzyHtOO/URIiZwncXVPURG3C32vQj5cRwIt8xToUtA5opLTeT6vU91P6qPycHzy
	6N8eWS8DfdufeE2X+vRezuev+7XyCfAbIVBDIrMmqie2LhKFzi7WwS7jqQtN3TnqUV5dPGHJgoy
	BOrV/fj6bSf6SZeVnOQD+3ruEVLZ10a9mfPhaRFyutTssRdFJSXq6HY5RCBPebyjyRgF/VQIAaq
	kznPn8vsAKEmUEdBetFSIUR4MDhU2/sQxqcQXKNIpeXcIdGlSBAbdJvRvtoO07ZEB08LjBxRoBz
	QxcafHXxOXUnjwsLk37I09H5SwhpWNrGg0WlqbjNSX8kOK9uwcFKFovAXyB1FPpLRNgezd+1Sg8
	ZA+M2AOaiqnUmPB3rHeoh21t4nFH4/iUSiLXKKdX2d31mh+xvSoKB0MIm1jp8AGm/eB/l5zy8vx
	3ol3SSyfTVbnmbLNGtPKXcnC0OZW9QXXbQ33S1fTRFVbiiGnWexvj6GaXIzbgGCfV4H8/kEqdb9
	odefvHUtz774Yo=
X-Received: by 2002:a05:600c:1394:b0:485:3fe6:21f5 with SMTP id 5b1f17b1804b1-48715fd9fe7mr115439815e9.10.1774533045062;
        Thu, 26 Mar 2026 06:50:45 -0700 (PDT)
Message-ID: <ef4eac20-d136-4c9a-82be-72259c088537@suse.com>
Date: Thu, 26 Mar 2026 14:50:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/11] xen/riscv: implement get_page_from_gfn()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
 <ba0ea599c4ced7fca0b8f5dd66bb7ffb277f3a4f.1774281309.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: <ba0ea599c4ced7fca0b8f5dd66bb7ffb277f3a4f.1774281309.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1774533045-BF88DDB8-D8C17B95/0/0
X-purgate-type: clean
X-purgate-size: 1935

On 23.03.2026 17:29, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -1534,3 +1534,32 @@ void p2m_handle_vmenter(void)
>       * won't be reused until need_flush is set to true.
>       */
>  }
> +
> +struct page_info *get_page_from_gfn(struct domain *d, unsigned long gfn,
> +                                    p2m_type_t *t, p2m_query_t q)
> +{
> +    struct page_info *page;
> +    p2m_type_t p2mt;
> +
> +    /* Special case for DOMID_XEN as it isn't "normal" domain */
> +    if ( likely(d != dom_xen) )
> +        return p2m_get_page_from_gfn(p2m_get_hostp2m(d), _gfn(gfn), t);

Comments usually apply to immediately following code. When that's not
the case (as it is here), the comment either wants moving or wording
accordingly.

> +    if ( !t )
> +        t = &p2mt;
> +
> +    *t = p2m_invalid;
> +
> +    /* DOMID_XEN sees 1-1 RAM. The p2m_type is based on the type of the page */

As before - I don't think implying any kind of translation (even 1:1) is
correct for system domains.

> +    page = mfn_to_page(_mfn(gfn));

This, strictly speaking, is UB until ...

> +    if ( !mfn_valid(_mfn(gfn)) || !get_page(page, d) )

... the mfn_valid() check succeeded. Yes, Arm code has it like this, but
I can only repeat that you want to carefully inspect any code you copy.

> +        return NULL;
> +
> +    if ( page->u.inuse.type_info & PGT_writable_page )
> +        *t = p2m_ram_rw;
> +    else
> +        BUG_ON("unimplemented. p2m_ram_ro hasn't been introduced yet");
> +
> +    return page;
> +}

Finally, what doesn't become clear at all is why dom_xen needs special
casing. ISTR that when looking at the Arm code in the context of reviewing
v1, I spotted why Arm has this special case. Maybe I'm misremembering, as
now I can't spot it again / anymore. Yet whatever the reason there may not
apply at all to RISC-V.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 13:56:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 13:56:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264186.1555879 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5lCC-0006KG-7G; Thu, 26 Mar 2026 13:56:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264186.1555879; Thu, 26 Mar 2026 13:56:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5lCC-0006K9-4V; Thu, 26 Mar 2026 13:56:24 +0000
Received: by outflank-mailman (input) for mailman id 1264186;
 Thu, 26 Mar 2026 13:56:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5lCB-0006K3-3j
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 13:56:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5lCA-00GkHN-Fl
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 14:56:22 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c53b05-5cb7-0a2a0a5109dd-0a2a4508be06-8
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 14:56:22 +0100
Received: from [209.85.221.44] (helo=mail-wr1-f44.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c53afd-1950-0a2a45080019-d155dd2cc16a-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 14:56:13 +0100
Received: by mail-wr1-f44.google.com with SMTP id
 ffacd0b85a97d-439b611274bso523882f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 06:56:13 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b919cf069sm7946009f8f.22.2026.03.26.06.56.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 06:56:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774533373; x=1775138173; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=CShIXqWMoWDbuwpw2f5DtUXfSZFm4G9nJ3ghFUXlsOE=;
        b=g3LFnogEd8lXdeGUg6/RHF8/8fqgmTDwXp4mmqKpZnYnLI8r6FpuRGiSwxW3GyQXYY
         R5/imbUpr+1hQOZNFHxEwvAu5U+tjXUVx9IsDl50n4gyN+8PIAPRyTXkHJGIg78efDvR
         HFnlco/gCsHXY99HLN4Nl5Qm48wITTHkW8hjjAOYUzoDSx+HCaJbcGjAxh7AJsHTbf8T
         9b+DQTE82QwSIBNvQmKROtgbJmviSqV3DPwYR/GJk4Xwjm879mlCvh/ECywrWtm39FM6
         ubm5zSx2R7xzrDGEvLF4gaOlRpbwDgfFiEZO8M8N0vTKWOZn4QU5G1MKD/ctefYJAkG2
         DE5Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774533373; x=1775138173;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CShIXqWMoWDbuwpw2f5DtUXfSZFm4G9nJ3ghFUXlsOE=;
        b=MeSgZgER5DqDhKK2quIxPXZ1AppdSpGfK2L5lInTbL6yYnD9dKceqDjSK8Ln68GXMh
         ESfBOba2Aw34IxDyq7QfpE5NHJUbDxTaDzKMX4fFKKaLVWgJdWK0jY/aLtmtn25LZNet
         zMNndp5s4rlJEg/LZpIvkUhEoRSlJaC9Ca1Ru109CSHgFPigpcCs8ecDSCg9zVAo/74O
         8Y5kHK7L9gzo7zMCiWd/89OWGTfh0ez0EETfjgUvtNS+2wbEDo5cxyrhQxTBBKxvRMb0
         zyBh73O+eEElTlsMqEfc1KBK3SjrDEZa/T9Ku3un3XjAiHX1CBp/Xk1K+IKxxOqWcyPs
         4oXw==
X-Forwarded-Encrypted: i=1; AJvYcCW0zYfXGJpquofHLM6MVN1pB8LN8TQ5607h6NeJVGb2bIasR9tjwUx5KwtXQfz5QLKqQCR6vUaFWNg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyhipSDhjUQh/mbycHCzglVSp8YSuCaXLHUEdD1qe69TN+fKfG5
	RMDXBKlzPuTXff+fa64bkUjooSJYgmR47F+yM4gzgMmkr6lb+v6QpWdQT+JQz8lFXg==
X-Gm-Gg: ATEYQzxNzNVW+ncArFbrMpGl1LcUchVe9XCCMyGiBNA+mLSffF9AuMei1CP2JRqS7q6
	Tjwt3N4mJmuqhNnNMnNSvg/EMnSKjKx+NKk8WdH5IN6lyXbtZ5FyO2843vIrC7NqOT4HA8LTtCo
	SWrWgmvV8FaxMDU/GW+cIu8rTMQKAuaulkH+rsvZqGyYlgm1emcP9oZKCWoz3LoMUcB9FmT96Be
	izrK8KHkqy6gNh3Qcg2wR7q6Sqn/Xjlt9LhqSUb/KJTWA9RFntg6pan3gCVQPIet6wP034eGCPa
	d8JrXj7GG0VBg09mqpcy+J7UDmq06oQUrsTtx86palKf0O6UkOptECQJcJKad/pms5+GHswdPMB
	+Eaq8te/hPxxWRm1q/brc1GYZdiaD2w1aGQrDxaHOLbXYkb+XaQVWpurr1XgdecpYQs/zMxTshU
	/z05uESuE+1TdMqtATyyajI2FvFFYKCfKV9SaNR7EMvimjefJl6SzsbpQbfDGn/iEUFKiGiDy7J
	5Qv3FHXcBiDGmE=
X-Received: by 2002:a05:6000:200c:b0:43b:634a:8ee3 with SMTP id ffacd0b85a97d-43b889f5821mr12267751f8f.34.1774533373331;
        Thu, 26 Mar 2026 06:56:13 -0700 (PDT)
Message-ID: <5110de7f-da46-4043-8573-e131217c60f9@suse.com>
Date: Thu, 26 Mar 2026 14:56:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 02/11] xen: return proper type for guest access
 functions
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>, xen-devel@lists.xenproject.org
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
 <d990acbfe642a8c5c8d892e9dd43381c086e8c81.1774281309.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: <d990acbfe642a8c5c8d892e9dd43381c086e8c81.1774281309.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1774533373-F1AE1726-2C1FE221/0/0
X-purgate-type: clean
X-purgate-size: 1068

On 23.03.2026 17:29, Oleksii Kurochko wrote:
> --- a/xen/include/xen/fdt-domain-build.h
> +++ b/xen/include/xen/fdt-domain-build.h
> @@ -44,10 +44,10 @@ static inline int get_allocation_size(paddr_t size)
>      return get_order_from_bytes(size + 1) - 1;
>  }
>  
> -typedef unsigned long (*copy_to_guest_phys_cb)(struct domain *d,
> -                                               paddr_t gpa,
> -                                               void *buf,
> -                                               unsigned int len);
> +typedef unsigned int (*copy_to_guest_phys_cb)(struct domain *d,
> +                                              paddr_t gpa,
> +                                              void *buf,
> +                                              unsigned int len);

When making this change, did you look at the use sites of this type? If
so, did it not occur to you that initrd-s can be pretty much arbitrarily
large, i.e. in particular be larger than 4Gb? IOW I think there's a
truncation bug to be fixed in Arm / DT code.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 15:14:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 15:14:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264283.1555908 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5mPK-0001be-P0; Thu, 26 Mar 2026 15:14:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264283.1555908; Thu, 26 Mar 2026 15: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 1w5mPK-0001bX-LJ; Thu, 26 Mar 2026 15:14:02 +0000
Received: by outflank-mailman (input) for mailman id 1264283;
 Thu, 26 Mar 2026 15:14:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w5mPJ-0001bR-Dd
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 15:14:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5mPH-00Gvrl-5X
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 16:14:00 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c54d32-bab6-0a2a0a5309dd-0a2a4505a88a-14
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 16:14:00 +0100
Received: from [40.107.208.33]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c54d36-5aeb-0a2a45050019-286bd0216bdb-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 16:14:00 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS2PR03MB8419.namprd03.prod.outlook.com (2603:10b6:8:32d::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.22; Thu, 26 Mar
 2026 15:13:57 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.022; Thu, 26 Mar 2026
 15:13:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JevsTaBfT2I1gZ9dgck8MqFPgXAmHcnOH89t6pnCKOzF1yq9oe+NRNOdAAz5MtCxl0lW400aSNSJD6gQ/VPy2uB2bJC4YrWrMEoFVwTTOSJqtwAC6MjQq9aG8p8lfDO1kKXSQAIRW+VQKvzHg141i1/yW9s9IjwuG38CqJ12sEpFiw8QRIxG6JVmFQhDFkW5qGsw2IkcDkyhwFh6g2GVwPuCQeHGaLaIiBaF3NJKMeIqOwZqZCCB3sn4YU+OApdozCKxvr+WrTGUE0t/7JaN2jdNRf3DEw1P9BdzfRgBkX8U8sFC6J7iENIS6OoSms9Vx2WMS0iqT1A9zDNNAYm2bQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MtfrzVuSR/1QXQWjmv8y3dYGofEGjOG8070bQ1uYjxc=;
 b=j2fbv/Ul6EV0X70ULW14I3FdWMsXb9U8NxEs6UfRTLCc0LnkMf+sAIwcUnVK/BzEr2izWIjUwtM3KeWEZE/AlU9qo0SVrLwb8uXf5IX1ORxbwpEPC6yCgvque/7lt07hXLImFbKCMYJs4PHtj5DPuMAVo/TzkFhfdP43gm5+rMoPjHETOulqtBZsCe0p0+cgd1VH381FQ0W6cC9HvgYGsy6fg4mpuSsgiRcdnaOt/0TbGwEoZ+5PCq7G5wVJzRAUA8I+REKFCsaXdNuzDfdI6egxqxlhpDMfYy8OzznlHNIAQrqOv0QzrJNO2qg8Xlif+XQgyzeYh5vRHrQxArhkFw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MtfrzVuSR/1QXQWjmv8y3dYGofEGjOG8070bQ1uYjxc=;
 b=qvBCrv9SnBC2xiZowWeyXnCSIE4TC4xcYLa6AT3echFaA11NgukhQx7EpKd2WTjirKi+l6KZ2mnhdfIf5x4Tj7yglY7dR2olF4BdiUE733JXBC77jAHvSEc2QuCsfuf7O1kMVLy8ELZgNNjNYmUbClLcpg+0PLUNVE06zrTMcUg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 26 Mar 2026 16:13:53 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 1/4] xen/uart: be more careful with changes to the PCI
 command register
Message-ID: <acVNMQ_HqRpgkP7i@macbook.local>
References: <20260325145824.31601-1-roger.pau@citrix.com>
 <20260325145824.31601-2-roger.pau@citrix.com>
 <2a00a1d2-7017-4c76-8344-018eb3f30f50@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <2a00a1d2-7017-4c76-8344-018eb3f30f50@suse.com>
X-ClientProxiedBy: MA3P292CA0008.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2c::8) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS2PR03MB8419:EE_
X-MS-Office365-Filtering-Correlation-Id: 3ef14708-f5e9-479a-fef3-08de8b4a4d02
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	P5lSpv3e7PX0PpXfBlqUfqzCddFHHhhltSTmB66YoZtw6/VRZ9w1jZkm6zGlH4cQy3aP5XtEkGsoGyTxO62BusajwxoonjG6TbJYz2Yoi+fREam12jd2BAnMc5zW3/MfJfXAhjjpKud/7ujTNwNdjkrPiN+cOfiExKOm9f67JhTcJAQTsde9FnsXx3MSd3OUjavbIMbldf7oggbXYroVTomt+4m9qgM79IlV867OSqieslNdCyc+rNAgqn1jo+Coouim4PRopYKscdOZFOV20DGS6Awy6OHhfG8v8Pv/30oxmg5nuAc0h5vXJiYiIOYjE7JuoaAbb6vWzaH1J98n9ANJ3Ac2NaEz3FwrV742tXsbHgHohYWvr7iRjsO3ktzapo30K9mIJUhWbyJf3/vpX0YPLcb94owixtNruLaIW+gQ8TEjC78r7s/V8G2dlA13IXUGG41YNPSo+2qzrP/QMCtzsmKqO2GIlONKuNiiv0sAwaDu9A0R2j38oTcgJVRDA5zalZe1kc1KjD+ALEDZ1G89vMxwlNPCfrUNtzfYPZr49OSqelJJ69EQP2WZr93nhLHcDL0mhuJSfNCiwkgjQpwxY8xv/Vwa9OdhhBRxrwt6G8WZ42z4qxEI7XNSIvG0S1Vahvy8jYHQrUPKd3dPWwagoHuhN60VXpTP56lZMXp3KePhjO3RDjhQZxYcBf2LNRC2tEd0PPwubcjNuORYovxs26S/KrQMPwKzG1ivJEI=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MVhybklyczlHc3QzWUJETFhVT0lCQTdGRlVYWFFhSWdaR2ZGd2w4REo5OWlh?=
 =?utf-8?B?VktPY0JmWENYTTk4dmJld28vMmkyQ2ZadFRPaTcrWitKWDZBK2xOQWIzTUM3?=
 =?utf-8?B?YjFmcXNmUUREM2NCekl1d21CVkprWWxEeUpuYitUc2dteVVYWDI2QUwyc1Rk?=
 =?utf-8?B?TW1ldWZmTVNxQTM4N2hWTFhCRTJGZC9RcnlSakl1d0I3OG0xU2xoYWkvOHdu?=
 =?utf-8?B?L2ZicXdMemp1bUFFYjNaS0taNm1MSjNQcHdpR0I3eWgvUGErMzgwcjllWVdQ?=
 =?utf-8?B?bFhwaCtPTzk3UkIvKzh0MEF6L1A4NkN3bm9UZXZWbDFkM0VzalVrL0luZVVn?=
 =?utf-8?B?U1graEFNbmxiaDM2dzFDcGZZNjNWR2ZuRnZSVGZXcHhkSTZYQU96WnRqb0Na?=
 =?utf-8?B?dmMzODVmVXZDYjJFcnBkajlZWWo0akMzM0tqdEFka2M1a1d4OFA1NmlqTTlQ?=
 =?utf-8?B?cGRsekVMQ2hhMURBaG5mUlFTdTV2QlBHa3RSS011WTZoMThMVWJYSzU2dG9l?=
 =?utf-8?B?MFhCU0ZSUlgwMkFTVHQrUTRrYnY0N2Jza0lMTFdka3RxbjJuYXdjU09CMEp6?=
 =?utf-8?B?R3RDMFZ2dTQzbklNOFVOTG5vMm9Oc0ltN3dZeElGQndjZG04RzVMaTB6d3V1?=
 =?utf-8?B?a0ZzRXlTRzJKRGVldEpHc3M2WCsxaGdHSVRrb051N0JoV2RnUldxV3J0TGRq?=
 =?utf-8?B?T2JWUlFiQVd2MFhST1VBa05ubjY4WVlGZ3RST3BvcWZQL1Naa290aElxc3E4?=
 =?utf-8?B?RGU2M0R2ZTBSaFJLYjVqNUVKbUZ6aFhhSHNHQ01NOGpZOUVzM3VreWNBSHYv?=
 =?utf-8?B?cUFOSG5JNjdFNTdFTEduaHBsYjMzbmtYSGxzVXVCRnJGODRYd3dLdWxOMHFK?=
 =?utf-8?B?RTBaa2xRaUdhSnA3Ni91NVB4VmR6dlBpMVNERlBYeUN0WkVHRDZQYTZLazls?=
 =?utf-8?B?L1BCSWNEWmNzRmJPVnNzd01jaWpaZnQxOVhtZTcyUW9Dd3Q4aDBkZGE5Y2g1?=
 =?utf-8?B?bzM4RUlLN2ZnNnY4emhjYjJ1UHVkd3A0UklrQmpnaXBsNkJXTEI5UXBxZm9P?=
 =?utf-8?B?Rm9qeTZKbTVVMit6QWU4M1NERStUK29jUGk5SmZWMWxQbldma3h4MlRhdFYy?=
 =?utf-8?B?UjFLQUhuWGYzbzRYOCsraTBWcnM1cVh1RzAyTElQbXFjSUlreVlHdnU3K2dp?=
 =?utf-8?B?Qyt1YUF1ODZlU2dJeC9yN0xTRXp0MzJRS1lNamtveDFvTk9ia1RTeWRweDkr?=
 =?utf-8?B?UzFsWWJ2Q3hkT1FJd0JFdzJiYUNYa2VOejNzYTV6bmlvelpmVmxtdmlFcVk0?=
 =?utf-8?B?dVFDR2FXbVdvQ294NzdNb3M0RVZNSWN0NkwwRCtwL2hDTW84VzlCWFBNblIw?=
 =?utf-8?B?UDdRWDFza0E1NE5KQ3VWNjNVUlpEL3hQSm9IVUtSNjdNT3pHVXhuRDVlaEJF?=
 =?utf-8?B?aDFFeTg2OUl6T1BEb2pVSnhSR2dvbnVsWFBiUnMvQjgzTHZZa3JoaFUyL2FS?=
 =?utf-8?B?MjlnQks3bm93YTE4czUyMUlmTXpHcGtGT0k1TGtJVnlBYjcxQjdNS2tabEVN?=
 =?utf-8?B?NndpY0ZQbHZ6VTdTWWVIV1k1K2FpTXZQRzg0TnhTZ3l1T2duemxJMitXeXZN?=
 =?utf-8?B?T2xhWjZwbjlLRTVKcWNtNW9TTmhzVDg3ZUV3OFFaYjdYQlVlTmNZMEs4Q1o2?=
 =?utf-8?B?YXBCeDNYamV0UE5Wd2R0RVBsMWdZajcvVjBOb0o4bXRYSDlBamgydElraVha?=
 =?utf-8?B?ZGtqRWRjVm1GdFVCTHBGcW5BdndCSXFGa2twdFB3NnNXYlZtZUdqSWFlbVM5?=
 =?utf-8?B?eVpWOUZvUGtuNWV2a2FhbzVJRjZRQ0hWUUZib3NDRTBUc2RNcHpXTjQ1NDYr?=
 =?utf-8?B?TmczK0RnZVkxQXhJQ1N6VnpxUVFWbTZiV2Uza2hjM2poSHJJcDUzdTQ0UnA1?=
 =?utf-8?B?dU1aVzZONzlrT0NlazdQZkU0Y21HSDZPQ09YRkplbmZTSEZ2YStpMkhCZGl0?=
 =?utf-8?B?RWxFM0xrTldubndRL1oxeXVUT1ZUbUJPL0xWSndVSlNMQVhhRHZXb3d5cFdi?=
 =?utf-8?B?RXBHMTFMaCtGMjlxblhVekx3dTZ2TWtaTWNwc0NSOVdJRit2bmpoL2U2ZDU5?=
 =?utf-8?B?TFhaMy92MHcyQmQ5ajQ1S1R6VmgzN0QzcHFLc0tXV2dmM1NMYzBRcjF4Yzdz?=
 =?utf-8?B?K2ozd3BsUnhQbGNBZlYxVzcyWGZwdzB2Y0xidm81NnpObWVTZDRjVXF2S2hB?=
 =?utf-8?B?RTgyVFozOEd2Q05iTlhDenNtdUlMRzhsRDJveTQxSzhqK2ozckNNTWJ5OEZ3?=
 =?utf-8?B?bXRXTVFGMUs2dzRvOTNOanVmTDRVdmJZbkZaYy9IZ3BXbTA5ZXJGQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3ef14708-f5e9-479a-fef3-08de8b4a4d02
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 15:13:57.0945
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: IBQT/i7H9/h2bVFSf6xq1juh6etkEBjuSnxuxyR1dqCM0I9v75cXMEPMI1273kVhDTe1CAOhcEtQaMM++RGA8g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR03MB8419
X-purgate-ID: tlsNG-c201ff/1774538040-21A9F488-74B928E1/0/0
X-purgate-type: clean
X-purgate-size: 2977

On Thu, Mar 26, 2026 at 01:02:22PM +0100, Jan Beulich wrote:
> On 25.03.2026 15:58, Roger Pau Monne wrote:
> > Read the existing PCI command register and only add the required bits to
> > it, as to avoid clearing bits that might be possibly set by the firmware
> > already.
> > 
> > This fixes serial output when booting with `com1=device=amt` on a system
> > using an "Alder Lake AMT SOL Redirection" PCI device (Vendor ID 0x8086 and
> > Device ID 0x51e3).  That device has both IO and memory decoding enabled by
> > the firmware, and disabling memory decoding causes the serial to stop
> > working (even when the serial register BAR is in the IO space).
> > 
> > Fixes: f2ff5d6628b3 ("ns16550: enable PCI serial card usage")
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> I'm not convinced Fixes: is appropriate here. There's nothing wrong with that
> commit, aiui. What's bogus is the device behavior.

Hm, I would argue that disabling command register bits for devices
that have those enabled is in general dangerous.  What about device
RMRR or similar residing in BARs, and Xen disabling memory decoding
unintentionally while attempting to enable IO decoding?

> > --- a/xen/drivers/char/ns16550.c
> > +++ b/xen/drivers/char/ns16550.c
> > @@ -283,11 +283,17 @@ static int cf_check ns16550_getc(struct serial_port *port, char *pc)
> >  static void pci_serial_early_init(struct ns16550 *uart)
> >  {
> >  #ifdef NS16550_PCI
> > +    uint16_t cmd = 0;
> > +
> > +    if ( uart->ps_bdf_enable )
> > +        cmd = pci_conf_read16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
> > +                                       uart->ps_bdf[2]), PCI_COMMAND);
> 
> Why is this conditional? While fine for the use at the bottom, ...

The comment next to the field states:

    bool ps_bdf_enable;     /* if =1, ps_bdf effective, port on pci card */

So it didn't seem like further checking was needed and that was the
sole filed to decide whether ps_bdf is populated or not.

However, I also found that when using device=amt|pci ps_bdf_enable
doesn't get set, and hence I'm not sure if that's intended or not.
Shouldn't ps_bdf_enable get set unconditionally when the serial device
is a PCI one?

> >      if ( uart->bar && uart->io_base >= 0x10000 )
> >      {
> >          pci_conf_write16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
> >                                    uart->ps_bdf[2]),
> > -                         PCI_COMMAND, PCI_COMMAND_MEMORY);
> > +                         PCI_COMMAND, cmd | PCI_COMMAND_MEMORY);
> >          return;
> >      }
> 
> ... it looks wrong(ish) for this path. Actually, in ns16550_init_postirq()
> we use
>     if ( uart->bar || uart->ps_bdf_enable )
> 
> for example. With the new conditional updated accordingly:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks for the review, I don't mind adjusting, but I have a further
question above.

Roger.


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 15:25:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 15:25:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264303.1555916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5man-0003km-Rm; Thu, 26 Mar 2026 15:25:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264303.1555916; Thu, 26 Mar 2026 15:25:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5man-0003kf-Ou; Thu, 26 Mar 2026 15:25:53 +0000
Received: by outflank-mailman (input) for mailman id 1264303;
 Thu, 26 Mar 2026 15:25:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w5mam-0003kZ-Tb
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 15:25:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5mal-00195o-Rl
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 16:25:51 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c54ffa-e002-0a2a0a5209dd-0a2a450ab418-14
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 16:25:51 +0100
Received: from [40.93.195.40]
 (helo=SN4PR2101CU001.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c54ffe-1772-0a2a450a0019-285dc328ea41-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 16:25:51 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA1PR03MB6481.namprd03.prod.outlook.com (2603:10b6:806:1c0::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.22; Thu, 26 Mar
 2026 15:25:48 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.022; Thu, 26 Mar 2026
 15:25:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=h3d1z4JhItPrCY4Qc8rD+4pBTy7DMeXRAjA7QZOj625AIaGwwRBLETxEbwNNBfnyjiuJ8wlcKzD/3+DTjGrMED0dCJHZ02ULNorIHKyIDFyOH/WGkKOY6Xm9z6gErHBKeCQSnzWURLLWLw1l6TH/f+tzxD2hnxhaEc2aqEHzoZhKmuu5zCWlvOxHKxzYQmRbC8Or1YGwnTZgWIeEN+lWU3wztOVz6np0x/5RF7wO1V5fzzA3+ulBSlwiSGmkgyWgpF9QkACWO5iXN+hvXrLH4wKe5Ot9RlmS7jQUkpHA9OR8B1hqIHRFCeIquqzGDHUlArp8o3RIS4BcnJNRT+YrFA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YEf/kYzZWfyoejUnBl//IF4oJF4zSox+GBz/syNw/f8=;
 b=sQm/sfuVjqvrm/hvlFBmP5MqTeV7ZqTmEFWpwNutB2LSoJ5Qe0SZkWIKgF0oRDG9GPp62Rr3he+fWdn2ykMNI16bhHWeY6Sr+audGtg2vpPDYAT02TyYU3Yg3L+ttWCA4MIOIMqlj+WhleKSWV3V7PTDMPQNs+5zQI9i/74EcyKS44wOrPgbk9pZt7f0IGRrLn4vfQgKqdckqSSScxTjkJ+MsJq9HRiL+gquqVdhKZj27zgi0XPPjRLEs3ZcczYWvYc3npv6dz5BGAa9gKCCGNNHM75A9cEMdP54DPy4gO/T0ANSpCoh0Hwq7G3gm77OL/ley2KauA1HOkk1y88D/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=YEf/kYzZWfyoejUnBl//IF4oJF4zSox+GBz/syNw/f8=;
 b=Brn5fF22jLSOXqYO8uxC+hRqm0PPlbeB0IZvY3BVnq93D+nILob5wz/0qKLAVy8P4442G2R2Z/GSWTnvFJ8HJy2v96hLZxe4UzcJD5SgERJfbAf9T07WFmfHaZixcjG2OshRj+Rf98mlB87mLOsRV87qc5XgWZddK/eWMAUxSTg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 26 Mar 2026 16:25:45 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>,
	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 4/4] xen/uart: enable parsing ACPI SPCR on x86
Message-ID: <acVP-dkDAr2CLG5g@macbook.local>
References: <20260325145824.31601-1-roger.pau@citrix.com>
 <20260325145824.31601-5-roger.pau@citrix.com>
 <c930ee22-4cab-4bb4-b8fd-fa5e77f7505b@citrix.com>
 <67cffaf7-ef9c-4813-a829-ad5c962bc535@suse.com>
 <4fd21b4f-fe78-4f41-b36a-0c63e2c451e3@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <4fd21b4f-fe78-4f41-b36a-0c63e2c451e3@citrix.com>
X-ClientProxiedBy: MN2PR18CA0007.namprd18.prod.outlook.com
 (2603:10b6:208:23c::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_|SA1PR03MB6481:EE_
X-MS-Office365-Filtering-Correlation-Id: 7423863d-796c-40ca-11ce-08de8b4bf4b5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	9WsVhwypYfvCLI3Oa/YW61FXDNjUlGW+DDmTagqd7Klnip72QwdcnBQKW3KI69BdaD8OIgmBySiBQhPPg4ceu275uIgpQYUfrbJHirLbk7BA1j+P6P+BltEPVmHx5g0bE6OcZkye0Z3UvurJoy3K52CArhgXegyBZRpUwDI+f37wCnLJvHSoGxs85NexehXndTFdCIx3QIJ3peH5AOBBIfUXgL6wOAR6DvQuHAcFFDFnwdi8lCFbqMz2OY49a1s/8LZg/31XOwdKwqOUs1dJeF3bjoOpOe90vZxS8mqCrk1tOuAZ/RcqYaYM5VrITb+SIbvPlxHt29P9FkeFRK145H1noumZJMwEvo+rvO/dRqVRfa3bSJeIEptJlEsktAwX5/38GgyRZilpMYlXKKGMHs0R5RUBpZP+dY+horWszNfbdOYIGJjwVlNVxj7Au0WhpVSEM8JpGZjaZtbcQw2kTcYlRaut19sUuxakVjje+5DG6m8W8/4ld03MgTYgc9vnwx1U1ralLhw7gT8CTvrCKkAa59twqf8gv5EqV4JJGek7wm80M1h1cavAe4l4CcsfhcIiICpu7I53C87fON8mLeikVC9eojaAWaklrmspJqH6PNRa8puJ6/HT7jXG2pg+ZVl56rVshrWHHol/9uypZ2kYBdKs5kfdufJYukApYuhtKmyDMKCbJaiK4OHxSPnZTasUEU40YgF+jnqY2roog9X/5tmKXN35oia8nvdGS7Q=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TGdZK0FwSEZDdUZkcFhmUW5WOElCYjh2Nm5GY2o2dVZNc000YmhWeGRLNzkv?=
 =?utf-8?B?SUpodDloVE5pSWxVTklWbmlhTWlqWFl0SFB0Mmk4TXFUYWhaVzZXb0VieGQ5?=
 =?utf-8?B?Qi9Qem5CVEdQM0xVSVl2YzF3QnBXSGJzS1hhOThVMzNtSmFKcjFtd244Vlha?=
 =?utf-8?B?RTdpWmtMOXhlcVozWUZWNnNUTGxEbGQxVmo5c1JtQjQzUmRKSGxrRndjQ0Yw?=
 =?utf-8?B?SXR2K0xQRE4yU2k5NHBWQjJrM3pzWDFMNTY3UFcrVHVoTWZzSkdrS3dQV1o5?=
 =?utf-8?B?dDJZZk83cVBveEhFajk2Zk02VlJQNTJ1OEV5d2ZBNzFjRTc1RjduLzE2Q3ph?=
 =?utf-8?B?ckxyTEdpQm1ucklGZ2xaRlUzU2tCd1lUUGRGWGFQTWg2THVpQlkyc1ZvT01q?=
 =?utf-8?B?ejNQQndLN0l3VWthY1ZicXpraUd2ZHF5cGZwb2tOOGlLVWpHczhRQzc0NS9O?=
 =?utf-8?B?RkF3NlRXL0lxdmhXdXR5a25Wb2huSitYNC9HcmIyMlk5ZW45OThFQ2NMNlBm?=
 =?utf-8?B?ZldDQStnTFdudnpFYVVVMGRjdWpQSEpzNnV3UlRiRjVSOFdYWWFwTzhtQXBW?=
 =?utf-8?B?azQ0dGZkNXVBVUF1WG1XSEVuVjJrc2lmdkdyV1JtUGwzdUZxN1hpZnVmei9W?=
 =?utf-8?B?TjV5L3JpTm1OVXRTci82b1dRNXNOWGsvVm9sZHJUQlhwMVpSdXRuU3NxN1Yw?=
 =?utf-8?B?Q2hHa3hTZzlkYnJNODVOekJjUkYvb3p4YnFpM1lVcnl6ZVE5Z0RtZDRmQldS?=
 =?utf-8?B?WVdDTFIzcUE3eGZ5aC9PNzdiQUhsL0ViOUZYOGZJb3k4RXk2UTV6K3BJYWZE?=
 =?utf-8?B?VEdGN0lpcjFhUEF5QWVQZHEwb2t6ZjFGOVdKbFluV2FDSkRxbkc4R2wxeUZS?=
 =?utf-8?B?U3JicDhOc0sxeU9mQ1U4VnkrZWdxQzZrNyszUFFzU2JVVTYyTEFwaUgwQ01R?=
 =?utf-8?B?U1NyWThLRU8zQXh2Q2lNaHgzNy9MMDVBTGorSFJRdzVJcFdLUGFJWWtDTmEw?=
 =?utf-8?B?akZTZ2JlaTZOTFhhb0x3ZFdNYTJVU2dJTythWWxKTDFvS0dLSWZwYVVWNEFo?=
 =?utf-8?B?VTRlTnByeXYwYnJzMU1UU1NRbDZkbUxPb2JUc0tZNkYrUWxyTVpHUXBqaGVs?=
 =?utf-8?B?b0w2Q2FzNENIenhqNktQODFBOTRpaEJ5MHlvbWY4VUFxT2xBTkdsRHhNb0FV?=
 =?utf-8?B?c0RyNTdZMFk5MDVuUURFcWhHSHd2NEo1Z05aaEFTbzlSREVHSUpSUFJkTWUy?=
 =?utf-8?B?cmNsdHRzUi8ySW5xTEwwTWhkSmNBQTJxVW5VdlpOR0d5QSthQ0RXWUR1cnZo?=
 =?utf-8?B?TEVTUzB4UnlyMXJuaVZaZ0ZZaE9OUkk4OHZFSDNWUUpTWnYrSk5FTDNRMG5s?=
 =?utf-8?B?ME94MlJPUC85LzhOTnN2eXdUTVF3d01vaXlZM2dlMGdIZlU0SHo2U29yTHJv?=
 =?utf-8?B?VjdtYmxFOWM5UzFMNG5nem9ORG1qaXdvRWZLcURqUVFyUVpRRy82VS81eU9I?=
 =?utf-8?B?aHVndTcxVVVPUnVvWkVLUnB2dW9DSTlVZ3VmOTA3RTZ1OEE4VndhQTRLNndx?=
 =?utf-8?B?emVBQ1Z3NGNUUDlQUkVXd0xrOWRNdlBDRDFPWTdwT2RPZGo4QzlkMlBEYXRP?=
 =?utf-8?B?WWRSS1dtQzFqY3ZiL3kxVTVkYWNNc3NJSGZDRzljRU1PWGNGWXd4SmlYcXpK?=
 =?utf-8?B?YXNLUFFvR3dPcC9rcmxHVDUrMW1udjh6bUR6Z1BodHl6VnR4NDJtN1pvbkVR?=
 =?utf-8?B?Ri9zcExYTDVJeWNqeU5lM1F4K2IxYkZjamNZNDdJcVFQUk9yTHhpbWVJWHVw?=
 =?utf-8?B?M1hlOVo4cnBlQVdpS2MyQ2tHK3pjbkIrRnMyRHN4eGpZYVFYY3lEcUx5b2Ix?=
 =?utf-8?B?UlN3WFVEQjVMdE1UdG1wbUdLN2NOeWZSQVFUUW9XSEhQTXRmRE5OaExtcGpO?=
 =?utf-8?B?K2kxTGJ0TjNxMFMyaUlnRHYwNTFFNnJ5ZDI0SElPcTcvdDhNNVhrNmNaT1ZO?=
 =?utf-8?B?NkZIZkxRKzNYVGFHb2g1SDFkT3gvSFJJSGxBM0Zkb05wV3hTdllicTJOZHRF?=
 =?utf-8?B?R1BqcHJXckVsZ2JFbGFhNXF0N0hvZkJ6aVVyV2pDRmppQTlFdFkrWmdkV01I?=
 =?utf-8?B?UVNISEZBcm8vMVIrOWJraWtNbEtWQkxEN0E5M0FQbjd5d21nQTU3S2lvMS94?=
 =?utf-8?B?cGI4YVVsM05KN1RlTDAvQVhxRXFjM0VnbFRvdG5Ld3V6NnpPMjhNbDRFM25U?=
 =?utf-8?B?NG5RVXd3YmJwaUJxWlRlSTQxQ0tQa3lST043bm96aVp1aldkeUQxTWFHOXFq?=
 =?utf-8?B?N1gzYUxJakRPR0wzN3VHNEpvR3BGNExqUGRqZE85OGxtRVdoTmxIUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7423863d-796c-40ca-11ce-08de8b4bf4b5
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 15:25:47.9830
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: mu+rfxZO+hUbuVAVsFXc/u8Ofmp80R9iY6Y/MWVTJarl1Ygt+dYQIC8xrep5fpeowmvqEzS8aIyN7XTYM+ywMw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6481
X-purgate-ID: tlsNG-4011c0/1774538751-52E95900-D7D14448/0/0
X-purgate-type: clean
X-purgate-size: 2766

On Thu, Mar 26, 2026 at 12:52:51PM +0000, Andrew Cooper wrote:
> On 26/03/2026 12:48 pm, Jan Beulich wrote:
> > On 26.03.2026 13:11, Andrew Cooper wrote:
> >> On 25/03/2026 2:58 pm, Roger Pau Monne wrote:
> >>> Introduce extra logic to allow parsing ACPI tables extra early, and use it
> >>> to parse the ACPI SPCR table and obtain the serial configuration.
> >>>
> >>> This is gated to the "acpi" device type being set in "com1" on the Xen
> >>> command line.  Note that there can only be one serial device described in
> >>> the SPCR, so limit it's usage to com1 exclusively for the time being.
> >>>
> >>> I can't test the interrupt information parsing on my system, as the
> >>> interrupt is set to GSI with a value of 0xff, which is outside of the range
> >>> of GSIs available on the system.  I've also assumed that the interrupt
> >>> being 0xff is used to signal not interrupt setup (just like the Interrupt
> >>> Pin register on PCI headers).
> >>>
> >>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> >>> ---
> >>> WIP/RFC, not sure whether there's interest in attempting to pursue this
> >>> further on x86.  So far the device I have is also exposed on the PCI bus
> >>> aside from SPCR, so using com1=device=amt also works to detect it.
> >>>
> >>> Posting it kind of early to know whether I should try to polish it for
> >>> submission or we are happy with not having this on x86.
> >> I think we should be using SPCR/DBG2 when available.  Getting serial
> >> configuration right is always tricky, and we might as well use the help
> >> that Microsoft have forced the OEM/firmware world to provide.
> >>
> >> But, I think it should be automatic when the user asked for any kind of
> >> serial.  e.g. console=com1 with no com1 configuration.  The point of
> >> these tables is to provide an enumeration mechanism where none
> >> previously existed.
> > Hmm. In the PC world COM<n> have well-known configurations unless anything
> > else is provided. With multiple serial ports in a system, which one SPCR
> > describes also would be (largely) unknown.
> 
> Xen's COM1/2 already do do far more than the PC world.  But ok then, we
> invent a new "serial".
> 
> My point is, there should be a way to say "please use serial as
> described by the system", and it shouldn't even require knowing that the
> description is in APCI.

That's how it kind of works on FreeBSD, the user asks for "serial"
output and the first thing that's checked is SPCR (if the system
support ACPI).

We could have something like `console=serial` and let Xen figure it
out, but it would probably need more logic in case SPCR is not
present, and I'm unsure how the extra heuristics should look like.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 15:33:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 15:33:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264324.1555929 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5miO-0005ZI-KR; Thu, 26 Mar 2026 15:33:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264324.1555929; Thu, 26 Mar 2026 15: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 1w5miO-0005ZB-HY; Thu, 26 Mar 2026 15:33:44 +0000
Received: by outflank-mailman (input) for mailman id 1264324;
 Thu, 26 Mar 2026 15:33:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5miM-0005Z0-Tf
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 15:33:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5miM-009Sm7-9a
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 16:33:42 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c551d1-bab6-0a2a0a5309dd-0a2a450bea4c-34
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 16:33:42 +0100
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c551d5-ef63-0a2a450b0019-d155802ebd61-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 16:33:42 +0100
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-486ff201041so10063565e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 08:33:41 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48722c7cec3sm34609535e9.6.2026.03.26.08.33.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 08:33:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Content-Language:Cc:To:Subject:From:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774539221; x=1775144021; 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=yxhh10+xfSURNBMCt1w28m6g5PjG/+lhGkZlOGF6vg0=;
        b=b0lj4je1BFTPajxjaKAUU1v4Cp98D3nqZPgkSncYudA+WyDm4RDHi1T3qdOwimrwnr
         LQDRaQqIWbS89Bq6+XLEpYw1mk1XEY2W6Sj4IX6HKN77sGYn2GGxHtGrjTLBHtJ2rior
         VJpfNIZ1tqtdk+wGsJCYv5bZr3/dtH4BJlats35XqnNT6AIzCyFoR12heBQLo0iIMHjh
         UiFpNf8/N3WjjDYqZEGixD+GcfVgiZUIuJs6Kuu3d9l8YGeGIlfNqWtgXQpbyFjGGgug
         hyHWm2i/wkqWbyPeKij+zW5APFsHdHe5nX1pwgLSJyMRGm+SrZeOt+6ugjUTuFSOuPhH
         eUxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774539221; x=1775144021;
        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=yxhh10+xfSURNBMCt1w28m6g5PjG/+lhGkZlOGF6vg0=;
        b=Sb8i/qaA87Kk81sb5uzte2gv7ebiSxuUERN0DD2IUV9/1Jjylhoq+QlBiKcScIKjVE
         DD2MmylOivqJGBf3m3TBJYYGwKD0Rya2DSppakb4sL3YOMB3dINPKjIlqU6HIc/mLAmM
         WOw9/hLppvKqkLjqjsCGu1Zk88QmrBTitzKfxeUfys05k+hgExUWRWvdSJQU8eFYBILS
         PyKbQXDILIO/T24sc8OQi7apo9BeTa72pEXz5TxOZj7Wm0+BWp/EHs7haUwbd7cmdWfr
         V2iGIJCZSljQJF1Ys/HvIVGY/DCOiVkD+77dmq+rah4S5i+BVRTyDCh9qUqHu+vCCrsY
         Dm/Q==
X-Gm-Message-State: AOJu0Yz5Vn2K2WXUQsMCuLWW2jBGWnzjqtNsT8GFtDHSPfMb+5F8wxwt
	Arfl6tTVpxeV1yItg3FT2tnHWapzI+CkTpg/NGBNwl76njSMxQcfBX5gMp5NcaoK6w==
X-Gm-Gg: ATEYQzzpIiyrAf+41g3w9E7weO0++Oo24qOtk0iez5Ef8DMAjwA+x4nEfrH7I/3gETh
	ocxJuwrvVQhrOOoUCB56vVdPfvPTbT7v9XKc/eUxvoMY7OJjrvJh0voyi0Ze7YoIluc9BIpcPH3
	FtPi+vq6M/MlTDoRZwFp2NfeY+I2gpPgmhqycaRpz75Fii9EBc+9XLDn/ZAoWm7acWIRzu9tugy
	RDLWbYRal09N0OBc80TbMWW5oCn2odTgf6oE3hnzM5tTo4pRytsWwl9JnuPo0U9XC+Ya4+C6m1m
	eeW2YvqImk90nMkprE6D9vGkacIWWmc0SXTddOW03iWpPa3x0SAC4la208BE5rrrthpMh7qL6qf
	jVTHrYQtzGBilZ60gM0uKCfKnUM+PSq5Pjl9hGnmdIYd8iQxCkuhEigKyr+VC9xV7Rqe8mH4Pm7
	4fMqQib5mpC01oSWB1O0omfqdIB2fYwQGbJEl29JmtK5AM+whr+YxjBkuP5LReWikH/WQ+SPeTW
	o2ir3r82g87FMQ=
X-Received: by 2002:a05:600c:4447:b0:485:17a7:b9c7 with SMTP id 5b1f17b1804b1-48715fd4d49mr115156695e9.10.1774539221341;
        Thu, 26 Mar 2026 08:33:41 -0700 (PDT)
Message-ID: <d55033ca-8525-4dec-be8b-32144ff6c521@suse.com>
Date: Thu, 26 Mar 2026 16:33:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: Xen 4.19.5 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
X-purgate-ID: tlsNG-42698a/1774539222-BBEA2112-FD92BCBA/0/0
X-purgate-type: clean
X-purgate-size: 544

All,

we're pleased to announce the release of another bug fixing Xen version.

Xen 4.19.5 is available from its git repository
http://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=refs/heads/stable-4.19
(tag RELEASE-4.19.5) or from the XenProject download page
https://xenproject.org/resources/downloads/ (after entering 4.19 in the search
box there).

We recommend all users of the 4.19 stable series to update to this latest
point release. Note that the branch is now switching into security-only support
mode.

Regards, Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 15:34:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 15:34:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264334.1555939 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5mjL-00064V-Vs; Thu, 26 Mar 2026 15:34:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264334.1555939; Thu, 26 Mar 2026 15:34: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 1w5mjL-00064I-Rl; Thu, 26 Mar 2026 15:34:43 +0000
Received: by outflank-mailman (input) for mailman id 1264334;
 Thu, 26 Mar 2026 15:34:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5mjK-000641-Lw
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 15:34:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5mjK-00AFsZ-1O
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 16:34:42 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c55211-5cb7-0a2a0a5109dd-0a2a450acf84-16
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 16:34:41 +0100
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c55211-1772-0a2a450a0019-d1558036a5a4-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 16:34:41 +0100
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-486fc4725f0so9900945e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 08:34:41 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4871fbca47dsm31284155e9.1.2026.03.26.08.34.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 08:34:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Content-Language:Cc:To:Subject:From:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774539281; x=1775144081; 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=SxePKm9MA9Ww0nfWWjfwiW1VHF/AI1OJVgyRpuDvdvE=;
        b=aystEFJvKBBCD0rnYI5XydbF0SyB4gOcLFcgOLaDCG2pDQBzxRp/sAh8NvlM8AXe0U
         dbCD5E29AhEMU7riKj/4qaaWXC4cOqC6NY7HILj1f4CgykS+pyY6D60vmqCTI2YBKmfz
         dUR/BTv0puncW4CFiGxiwaHKrpmYRQXNA7H9ORTgAd1GFUxFYi5oYqUsfrqKCY3EdCru
         QViQo01APY9BmicvSlUqfYaaAgxJUY3kVQgLGfVglHJsydXNjrws+nQ1xmoF3yp6GF+s
         2CNndyUXf1fWvOnDZ75MBt1jdXgwWMjpyGbqpXoGDZs9DKwMQMRVNwl9L3u/C7rvZVDK
         AbYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774539281; x=1775144081;
        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=SxePKm9MA9Ww0nfWWjfwiW1VHF/AI1OJVgyRpuDvdvE=;
        b=WB1M35eavp+oG3r70rzCqth8TviQN2ECJ094/ZLa4nLA9dlnQC1kFVcHJF58o01z1o
         wREeI5KvZ5JYpw7XXFtD7izzcrHg1lMRlO4RJ3iVN1dq+9l/bFCBoUgqaN1yyCr8tPev
         vtGWh0SGQYChzwQqnJ/zmZkOQA5g0fzn5jEOcXG89rdaR2YIgTculXTUO6s7q4gNq6Rx
         TZtbxGDquY4OTkq3P4jP9gZNhHdvo+M5K9sAZrW4HEBZd+doFVUJDLC1Gq0ag+8H4pO1
         S8EDtktq3eOVITJ9tg/7I6vjOI87RdnxFxAKEJHy7TN8I/efcKEeEvbwRAP7FPTKddk5
         9JTw==
X-Gm-Message-State: AOJu0YzJmfhZiXcCgrJMgdkrpA5UJqToTMUF65Wqftxohols1Ex3ggMN
	7h6R/igVXhD5WG9Ec6i4yN7I7FV9Ul/WCrI0gh5WxlAWgUyWEJze1lQQ6ommiacKIM0ct4Eeu/1
	zgCXaIA==
X-Gm-Gg: ATEYQzwh4eU8RqvvincoGwTAdKwCzcKla8jKwoP9nr7TnQypvZDjLskp69oA92BxmNS
	MZDwLvEUHvbgygvBplYltm357mUiKy9rz2c7JFNJuAoEFpk9YcE+pHxeMfPxyA6Qrf8/Px7UwfM
	RTWqEynf+XDelQDF5gLbcU6GA7V/G0ghPk0Wm5zEbqMjtfWQJAnOLeOLz9NS9z/wYcCgnQ81yET
	fyv6JOJgAFGHyr8Qz2+GOpwNjyfxx0Eh6TnMXzAexyTYLbxTuJy+ql2Wg/qYfhp5nMQvxq/bSwP
	ou3voSU9oA4sHI09RLfMS795T8AC7E72IdKeIDAuopxUQIR3HgCwhqDeQkxdqtMtS2AoS3pzIxL
	brJqUaTWhkeGX9uuV0G/KXGhQSNhmawPba8924SCUip/j8uouwwYTqlExW5FevX4TSu5utqmX+J
	xvL33SwL3NP9X4xYpjUnb/TZtXr1+a0imxvbMTLm4i2FuwKIsJr3LWkE5xiNYT8A7Zefpk/jn6M
	e/q85CUVxi1+aI=
X-Received: by 2002:a05:600c:3ba1:b0:46e:59bd:f7e2 with SMTP id 5b1f17b1804b1-48722bdfeebmr35611965e9.11.1774539281284;
        Thu, 26 Mar 2026 08:34:41 -0700 (PDT)
Message-ID: <cf604fdc-0818-4d23-80e3-dffd9fa224bd@suse.com>
Date: Thu, 26 Mar 2026 16:34:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: Xen 4.20.3 released
To: xen-announce@lists.xenproject.org
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1774539281-BD689900-D1274B7F/0/0
X-purgate-type: clean
X-purgate-size: 425

All,

we're pleased to announce the release of another bug fixing Xen version.

Xen 4.20.3 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.3) 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 Mar 26 15:53:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 15:53:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264411.1555976 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5n1D-0002eu-0J; Thu, 26 Mar 2026 15:53:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264411.1555976; Thu, 26 Mar 2026 15:53:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5n1C-0002en-Tv; Thu, 26 Mar 2026 15:53:10 +0000
Received: by outflank-mailman (input) for mailman id 1264411;
 Thu, 26 Mar 2026 15:53:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w5n1A-0002eh-Tp
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 15:53:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5n19-002xBv-U3
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 16:53:08 +0100
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c55651-bab6-0a2a0a5309dd-0a2a4509ae0c-34
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 16:53:07 +0100
Received: from [202.12.124.150] (helo=fout-b7-smtp.messagingengine.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c55662-e484-0a2a45090019-ca0c7c96dfbd-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 16:53:07 +0100
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfout.stl.internal (Postfix) with ESMTP id C1FC91D001C5;
 Thu, 26 Mar 2026 11:53:05 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-06.internal (MEProxy); Thu, 26 Mar 2026 11:53:05 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 26 Mar 2026 11:53:04 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm1 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1774540385;
	 x=1774626785; bh=0AQV6UBJyfScC5+IgZOHN9pPm8iVLUpfGNzquD1O+EA=; b=
	QDFNVP8OI53iBe256U8wY59cToWjbrjx+YpM8GTH03GYCf2xNXtpljXhCNutp7oZ
	r4rVm0lVWrXjR0N+lJBWf5xSohukuL+YUzhg2Fn+l9aLlq+kTc9do/AVXGiJMm9f
	VFrfoZ3nZ1jAggTCMzL4KjKZYUaqOmaj9I9BAKVqOAVTGmD2m1c1yr8fM/3gAzqi
	2T6BTUktQrcFSqwBc7W3ihdBYLKUov2H3lyd0V1XDb5V8FKoLAdFG/F46c/XvmZX
	fzwgJkborU/Q89xlgpesZetC7Xnb+EZYiqYTiuoVmTGVKoUIoXtAGwrpB5YT5QpB
	GiZph4v5BXh4xwhFcri5yQ==
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=
	1774540385; x=1774626785; bh=0AQV6UBJyfScC5+IgZOHN9pPm8iVLUpfGNz
	quD1O+EA=; b=2MTXl24BV/630r0DPSvj47HnUbou3kVDSJ1SjHPeskdsokot2yn
	Z1Rl7SIfine4rJz5/heQAFWO8G+3UDsZ13qCpBGPIwO+pv6nXb+UHxJUkU43elIi
	WgceRsTa5tKvSjKuB9necXXwvNxhKcXGZO0wHJL81v5qNNrlBs2xu6hqQ4iXtEQh
	pLf0A5M+390eTTMNkxyg7BpcwgVls7yuLHsumAGWKVzGatWbM3rqwZNl5d79+4HH
	6pzAcndyJlFwkBkeBOAe7mTErFUL3sYZsENJEM1uQRr+4ffPEmTQNgKpZTyzm6aC
	/wsLcqJ7f1s5RKsEq5eCZu7kLw07JQL1g0A==
X-ME-Sender: <xms:YVbFaX7Jm6xY5U2MQoddzeOSL2KMgrv5ERgNk6rORtfjg6EFhVGgjw>
    <xme:YVbFaS6eF1JFcrXi7jOTNQqguZBRFovaSJCJASeBQY3QhSTwDic4ILOePS3QFzQKq
    JaCxrzj4q1ckPhWJwLKvrwKkSrgqzolCDyYyv5slhs_GjuTXlU>
X-ME-Received: <xmr:YVbFacGj3Bbb_LOGnDnQsP3Eea0JDq-ARSuTvrMAcZGO0H-_mP5Hj5EKBar53cTmcFOPx5W4zhX9SEEctjtWN2A2DR5S5VTFFoQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdefvdejjeelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepueefuedt
    iedtvdeltddtieejgefhueejfeeiteelleeugeetkeevtdeifedvfeevnecuffhomhgrih
    hnpehquhgsvghsqdhoshdrohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgr
    mhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgsh
    hlrggsrdgtohhmpdhnsggprhgtphhtthhopedvpdhmohguvgepshhmthhpohhuthdprhgt
    phhtthhopehjsggvuhhlihgthhesshhushgvrdgtohhmpdhrtghpthhtohepgigvnhdqug
    gvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhg
X-ME-Proxy: <xmx:YVbFaTRo13J0gnEMtcqAG7keAk4scRYVolT7mBRjN_nV2YXKN7nGeQ>
    <xmx:YVbFaduTDH8pDoNfdxxaDQ2_6o7VGfY4VqH18AzIea4hAl84ZF_ltA>
    <xmx:YVbFaayhrTrQVJ2LHRBi6XMjyTljBfYTaSDv-OF_QbRP9Jcq5c3qAQ>
    <xmx:YVbFaf4QUwmyYY9fSnVygEb2njTcRU26PU4cjms2Z0KMfvNFAHNmqw>
    <xmx:YVbFaYPoyhmMRtTA1-KqlY-Q5-KJDTYoa9PssCGJIUHM-p-xOjYLhljf>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 26 Mar 2026 16:53:03 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: Slow (higher scheduling latency?) system after S3 - regression
 4.17 -> 4.19 ?
Message-ID: <acVWX8vkhZiFfonP@mail-itl>
References: <aPzBO_eW8mQHM66u@mail-itl>
 <acQzzlXNDxNq885V@mail-itl>
 <29775afa-e17b-4c44-a2a8-4ef4bc7cdf0f@suse.com>
 <acUqOL232lp-Lw1v@mail-itl>
 <cbed767b-4ac4-4989-8778-43ff321ae977@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="8HmKRw480TDIdQJ/"
Content-Disposition: inline
In-Reply-To: <cbed767b-4ac4-4989-8778-43ff321ae977@suse.com>
X-purgate-ID: tlsNG-bad1c0/1774540387-630A9A73-B5956EF4/0/0
X-purgate-type: clean
X-purgate-size: 6115


--8HmKRw480TDIdQJ/
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 26 Mar 2026 16:53:03 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: Slow (higher scheduling latency?) system after S3 - regression
 4.17 -> 4.19 ?

On Thu, Mar 26, 2026 at 02:20:04PM +0100, Jan Beulich wrote:
> On 26.03.2026 13:44, Marek Marczykowski-G=C3=B3recki wrote:
> > On Thu, Mar 26, 2026 at 09:27:56AM +0100, Jan Beulich wrote:
> >> On 25.03.2026 20:13, Marek Marczykowski-G=C3=B3recki wrote:
> >>> On Sat, Oct 25, 2025 at 02:23:23PM +0200, Marek Marczykowski-G=C3=B3r=
ecki wrote:
> >>>> Hi,
> >>>>
> >>>> After updating from Xen 4.17 to 4.19 it appears that I have some
> >>>> performance issues if system was suspended before. For now this is j=
ust
> >>>> vague observation, as I don't have much data yet.
> >>>>
> >>>> Generally, the user observable effect is that audio playback (over
> >>>> Qubes's PV audio thing) becomes very choppy, beyond usefulness (cann=
ot
> >>>> make audio calls anymore, music/video playback also becomes useless =
with
> >>>> some players. For me this suggests some increased latency in schedul=
ing
> >>>> - maybe some timer fires too late?
> >>>>
> >>>> This doesn't happen always, but I'd say quite often after S3, someti=
mes
> >>>> may need two or three suspend cycles to trigger the issue. But it's
> >>>> possible it is also some other factor, like which pCPU the VM gets
> >>>> scheduled on, maybe? But for now I didn't hit this issue before
> >>>> performing any S3. I don't have a reliable reproducer yet.
> >>>>
> >>>> While I write it's related to 4.17 -> 4.19 update, there is also sli=
ght
> >>>> possibility it's related to hardware change (CFL -> MTL). But, it's
> >>>> unlikely, since I'd probably get much more bug reports about that (t=
he
> >>>> stable Qubes version uses 4.17, and we have many users on MTL).
> >>>>
> >>>> What would be the method to collect some useful debugging info? Some
> >>>> debug-keys (r? a?), some cmdline options?
> >>>
> >>> In the meantime (sharing some of it on Matrix already), I managed to
> >>> build a much more isolated test. Specifically, a single PVH domU with
> >>> VLC, preloading 1s of audio (and not playing it really, the output is
> >>> set to a file). The specific command is:
> >>>
> >>>     VLC_VERBOSE=3D3 vlc -I cli -A afile --no-loop --play-and-exit --r=
un-time 1   ./melodigne-quiz-blind-test-187140.mp3
> >>>
> >>> The domU rootfs (or rather: initramfs) is based on AppImage of VLC,
> >>> there is not much more inside, and the above command is called as part
> >>> of init script (and domU is terminated shortly after).
> >>>
> >>> There is no persistent state in the test, the whole thing is network
> >>> booted from the same base. The only things changing between runs is x=
en
> >>> binary + toolstack.
> >>>
> >>> In the output I'm looking for this line: main input debug: Stream buf=
fering done (1018 ms in 2 ms)
> >>>
> >>> Before S3 it takes 0-2ms, sometimes (rarely) 10ms (not sure why). Just
> >>> after S3 it takes very similar amount of time.
> >>> Then, I wait 30min, and run that command (or really the whole domU)
> >>> again a few times. I consider it "good" if I get at least one result
> >>> below 10ms. With this test in hand, I did run bisect between
> >>> staging-4.17 and staging-4.19. And here stuff gets interesting:
> >>>
> >>> At 498a4ded74b3f062c52e42568223dc5858d27731 I get the following times
> >>> (in ms):
> >>>
> >>>     30m after S3: 2, 2, 10, 10,=20
> >>>     1h after S3: 2, 16, 16, 2, 17
> >>>
> >>> At 5effd810c629d9a836e46ee321ca7409dad27212:
> >>>
> >>>     30m after S3: 26, 27, 26, 15
> >>>     1h after S3: 24, 25, 37, 37, 25
> >>>
> >>> This doesn't make any sense to me. There is a clear difference, yet
> >>> 5effd810c629d9a836e46ee321ca7409dad27212 looks like a no-op change (at
> >>> least for this Intel system).
> >>
> >> Pretty odd indeed. I assume you double checked the effect by going back
> >> and forth between the two commits.
> >=20
> > Yes...
> >=20
> >> If the effect persists, could you make
> >> both binaries (xen-syms or xen.efi respectively, depending on which one
> >> you use of the system) available somewhere for inspection? There has to
> >> be some relevant difference, e.g. by addresses shifting slightly.
> >=20
> > Sure, here: https://salmon.qubes-os.org/~marmarek/xen-perf-weird.tar.gz
>=20
> While said commit changes the size of init_nonfatal_mce_checker() by 4
> bytes, that doesn't lead to any other changes. I.e. all addresses remain
> the same. I.e. I'm completely lost as to explaining the observed behavior
> (or even just making a wild guess).

With staging-4.19 from a week ago +
5effd810c629d9a836e46ee321ca7409dad27212 reverted, I got the following
results:

30m after S3: 23, 22, 22, 23
1h after S3: 7, 25, 22, 8, 25

So, there are some fast runs, but most are in line with the "bad" case
above...

But, I have another idea why that seemingly no-op commit may change
something: maybe it's about stack content during/after the function
call, influencing some uninitialized variable down the road?

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmnFVl8ACgkQ24/THMrX
1yyoMwf8C2RBDp4cI7LxVITcO0lToqg85ycJL2rPA0mC9Fp/n+wV9fccbNgVm8au
AHWadR9KOCZA/K6JRA7BtvzhboAs28dF+KG63/Z6pVRPfAElqjYhx+0O8ihr7qW1
419OG8Ouq1s6yawawbtrUodgr+vxMidNSI1MLtYK9Pz7ebPey+kCOrBpi3NwXeQi
GKMIOmBRqHptvFwgokH8ZQjDz4f16DVchZ70ZkQ53G2dsntiRisjsEtmjgJEHUnS
X8E9tLY+EM5FeTdnYNSaKLq998cmoCuCH0iHdNqmm7PGqgLjlGeh1bkutlVFQ3un
KzyiRN6FcPr/mIFIyg7jSx4t7+J1MA==
=R05i
-----END PGP SIGNATURE-----

--8HmKRw480TDIdQJ/--


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 15:53:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 15:53:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264421.1555986 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5n1v-0003Ax-Dc; Thu, 26 Mar 2026 15:53:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264421.1555986; Thu, 26 Mar 2026 15:53:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5n1v-0003Aq-9e; Thu, 26 Mar 2026 15:53:55 +0000
Received: by outflank-mailman (input) for mailman id 1264421;
 Thu, 26 Mar 2026 15:53:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w5n1t-0003Aa-Ek
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 15:53:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5n1s-009WbJ-Qd
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 16:53:52 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c5567d-e002-0a2a0a5209dd-0a2a450ac0dc-36
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 16:53:52 +0100
Received: from [40.107.208.64]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c5568f-1772-0a2a450a0019-286bd040975a-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 16:53:52 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS7PR03MB8217.namprd03.prod.outlook.com (2603:10b6:8:265::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.23; Thu, 26 Mar
 2026 15:53:49 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.022; Thu, 26 Mar 2026
 15:53:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dSddm4ohQ7aAIcFrEgI27Gfa1v7is4GvwXSvCfnnLbp7M3EsnjYn1EVY4n0oDLGICBVifS5p8owSo/PMJus6lNheDX0+MP03QLEYBFRTWjWyhyT7ABznxg/YBI+kcE8BWBToOYjn5KikX2603w95fDrn5zyJAjCh6u+03QN1g2ysqu+jv7BAGWSOdVSuIc+/kBBJxrJGyoQW4cUaXHihHxmFYVD8T+BaABvHfB4Wv+57u1JPLDWZegu8fCU+Kjt0/ke1yI+ukT98O4VMqc2gwYazxfjpSABpfhhcRn4Eo9g0b7VhKy/H8FQJgC8lLCW5vLgyrrtrvQ8rXWDMppipSg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bP8NUXax0t4Rz0o4RI/tImXTY/b9b2KrK2Qorc+fYOU=;
 b=dEN9ndCm7LqEhGluEqJ9Hp4NoTBG6v2M1AdGioS+PgRNpkgIndw2YVD9j7+vAX4GimQT/ZjZk2IgkC9/It3J6RW9gd4z/t4ebTmbVoszAMI1f0+2cuJ0VTATgzIhF3EHaf3v6FrC3wv8nJnBUdOBg1SBg/yt/Mk5cv6P090F7SK7J9Np1UeGkLPZYsrWTNkXjwU0pp53uAUz9qLSy9n2xF4+jsybSBdJfdeayco7Lyd+JCiKiO3+5eK7ByP0XCroq4VteCnJ3HZZ2uIBJIMRb/yBst6bfE8D5vhti2J6KySvb0MS6pAkun4F6MHYK790YpXR8E+eZ4glMEXY/t1tZQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bP8NUXax0t4Rz0o4RI/tImXTY/b9b2KrK2Qorc+fYOU=;
 b=NCGlBgBGiwAkDlg0erM0rQ4qFeerYB7KhAUT2z1eUHkCZdxJKsekityd+NJvK0xijw9Vz8Eci17thX3IdICRdu5VnfcKHrnfaSaxBqsCHXps926MAUYWVdj7id3lsRminNGk6jtQ6aqx/xgEvKMkQe96Eg07ZIJZBdsZSWUupUs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 26 Mar 2026 16:53:45 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 3/3] xen/mm: improve freeing of partially scrubbed
 pages
Message-ID: <acVWidFD7twir5od@macbook.local>
References: <20260326085145.61380-1-roger.pau@citrix.com>
 <20260326085145.61380-4-roger.pau@citrix.com>
 <77e3a765-39dd-4eea-898d-cf9e31912cfb@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <77e3a765-39dd-4eea-898d-cf9e31912cfb@suse.com>
X-ClientProxiedBy: MA3P292CA0020.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:47::6) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS7PR03MB8217:EE_
X-MS-Office365-Filtering-Correlation-Id: a3e061bb-7a09-4811-15b6-08de8b4fde8c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	1yz4zvLfpNHpyd+X+y9buRuLkD/QDe2HBQ/KESbgMGMu/rTa810Ou3Rn+H3+hJ+3jj3ytP9Mv+jEphoOQWk5IxBBhelhjtyAlc8yPDgzN0PcaWmzY43FaRBpyNd5fUf84h9xPlV1RdEWjfJBsvireqhHBrza6mcnimgsyXEKda83rghyutL69YT5XuZwtOIeIMBhx3fIoTdchDKiCXFWfdk5dOXbl+D1Ez9MtUc2tPaP8c6lasqaU/v9sfoPTlZWmoWUcvwbfQeJDlaXwpTR6SYQUhQRdu+TEzB9eSEbLf2NaauYyl7plJuzYdxFBbNEUHtAHhfjkQS105PPPGy8GgMGtjHlThLoP7dFY5Vgv5cBA/F4yx95ac9fBshgdnMKtPzuZb5POtkv3HoTR/WZtt1CxoTx7Sb3rX38EA3ZURMEd0VOHoPBuGMsrJELeOKD5GcIWdo1qMvua2Nqt9G8lvraSpTT/jb/rkg2na6eD9wPWmZKjpmYjaCGAGeGidMYi1ilWY/7qLfNXt1bh2rzV7mfpOioqbwraqanslIF64uxsGjHA072S2BTaKv3DTUgeVura61R3LH/srhC6LBXxGBTDBJGHLhhPFBxXhu5gw3LucDyFAaZubDs2AylYLI7WRxS5BPY/1xs73UyyElkgxrUiOqVXzwSH8Y8roZh85YCWe4yjiExubznA3UsOq+XK7yhvRLzG3JOkocmqrh///5gZGz3EVTPH5u4nTX2W3k=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?M2FWclk2OGFXdENPc000NEtRQ2pGcVJGY05UR29pOENwNGpHNEZJdFVoUDMr?=
 =?utf-8?B?NjlWMzJQbVZaTTBta0lxbTJjak5hYURHN2Y1cCtjdWRMeTl4WUtrNUZES2hr?=
 =?utf-8?B?anRqcEIzMjZCOHA0V2pQWE9WcWJIREIyTHpzS1VwL0wzYWlpK3hOeXVHMm4y?=
 =?utf-8?B?WXVQUVA4T3ZFTUo5NkNmZkU1bWhLdFhFQUMxUnhoVzVIdTFwRDRlQ2JGZkNU?=
 =?utf-8?B?V3ZzNGRGUU1GbTYzQ3IvN0grbWNHRFh5VXF5NkNiT3dwWXdzVWRueXBNcTJp?=
 =?utf-8?B?OVNNZnBQN1hib21GTm92dVRvaGZyRXNGYzk1cUJLWHl6dWFmcU5hTExjQTFJ?=
 =?utf-8?B?R2JUVTBRdk5oM0dHM0MwNGZ0VENra0lYd2diblJIM0t0Y3FmZXMweUlIZ2ha?=
 =?utf-8?B?dGh6a2pXVEhXbEFBYUc0RlJkME84RUt1YkZlK2d6c2wwcTFXS2FPaFFIZTN3?=
 =?utf-8?B?OHUxbk9MQ05vTEU3L1E2cnNWa0svd3N2TC9GRm00UXBVTnZwaHB0RUJsSVZJ?=
 =?utf-8?B?RVBNbGpQYjlSZkNLSVBla1owQTRkOE8zYkUrajNHOFlvbnAwT1o0SklVMjVs?=
 =?utf-8?B?QU1FcjdOaWlrTUdNRHY3NFlUM1BzNmFpeCtKdjJQamF1N1JJN1M1bG5INldl?=
 =?utf-8?B?RG5CSUpRalNhMlFkZGlRcHhGL1FOeUZBaHdUcnNoVU81eE5Vd0c5NkM0Qlhw?=
 =?utf-8?B?Szg3Zm9MRitwMmFwNjBScmNkUko3dWtMSWVUK0JHQ1ZLc081WWM0WWxKWGpE?=
 =?utf-8?B?ZkVKWDVwRC96cWoxOUo3VHVRaTZJNjFSR1J0eTNVSGs0SmtSbE9aOFQyUG5C?=
 =?utf-8?B?N0Y2c0t5cGZlN1N3aDdueWZRRDNpTGN3NWpZYzNKelRFNElOYVFaZlhpL0o0?=
 =?utf-8?B?SGthYTVsR0ZvYnVlYjQvVWdrdUtwamZaUlJPN0xyakYvRmlJSFY2ZHdYREdH?=
 =?utf-8?B?bzR4TnlmZmV2V1RUVk9yekZuVG5ZWE5VWXg1RmVaUzNSd2oyM2VjWWVoeHJT?=
 =?utf-8?B?MFR3V3B1RC8zdXhod1E3cFovY25YdG5ONE9XbzVvc2Mya0pFWlhRbGRFampx?=
 =?utf-8?B?Q0dVSE1oUVhjdWEvemVHT0xkdkRnNVFhejZYUEdNK3gyOFRUaGRCYU0vTVFF?=
 =?utf-8?B?YVZibm5iS0NJMnAzK0VUaDNiTzRNek11RmN3bE0rYnM4am04Z0xMSitrSVE3?=
 =?utf-8?B?V1VxclloTklKVGJlUm1YdUREdVJSYTNlSXdMeDFjVEhlTG12aXIrTFBOUGJ3?=
 =?utf-8?B?cVEyZUIzL05neEp5dXRxU0dCSE5jeWN1OXJnSFAyUUhYZWZKYXkyR09wa1lY?=
 =?utf-8?B?eUtWMlRUVU5BOTZxOGNHcjIwLzJTY3o4TVdjanVFK01tY21jTCs4ekVzM0dl?=
 =?utf-8?B?NVJzZjAwZ0RuQVhHWVRNTWVhTEcwUG05dVJWZXhUREd2dFNQbGdsZ1JtMkda?=
 =?utf-8?B?VFBqSy9PQ1cxYTBzSHVXdngzTC80bFhXdlY5RTA3WXJSZXFzY1RGYWwzam41?=
 =?utf-8?B?OUMyV2JlbVorKzBCS09aQjVnR1o2NFFKNmhjVGs0TXpMY1JSc0VsQkMzRXQ2?=
 =?utf-8?B?dE1BSEo3TmpmbVlveHVydXQyRU9OL1BDWEV2c2Q1NWVoK0Z6amNpMHhKenJM?=
 =?utf-8?B?WE1LVWxJQnJ5SUl4ZHI3OEJ6STgwRmNIVXlzcTVsY1VDZ1E5bTBWbXVvdWlY?=
 =?utf-8?B?QXl2WENBV2lkdFFVRGFWNytFTmNhbHdwTEhJWDJnZERRMkhiUFdSQmlBdzFJ?=
 =?utf-8?B?Qk9TUWd3cGViUnhHL3ZKYW85ZGNYa3pwU0NkUldRbVhGWG5HUHNRRUtSNzBt?=
 =?utf-8?B?ajh4K2duUDFISERwVEJLTU1yVVF3bWkvOU8xLzcvY1lscVhVRmlSbTZnZVp6?=
 =?utf-8?B?SmNVZ3dsMjFTWmtWOXlBREM2VEgrYTVsM1hrOWJOV3IzMU1CS0FxS3V6L3NC?=
 =?utf-8?B?c0dZdUVrWE94VVlTMEtnSGhFMFhYQ0svejhpU2pEajFkL3BaT2hwRytWQTdp?=
 =?utf-8?B?Q1c1N3RLYXM3YnN1aHVQWHNONjd0VFAxckJwSFhiNXJqbldndzRVZ0hRS05B?=
 =?utf-8?B?MUZjdTV2YW9tQ29NaGxpR2tBdmk0YktDc3RpbDlwcGFZMXM2S2c5SENhdWJq?=
 =?utf-8?B?V2JITFg2K1RpZGQ5NzlLWUxaVFRlRWp1c0dMcHlhWnVObDZuVjBFUjErMlVv?=
 =?utf-8?B?TzZEdWVvU3dnQ0F6RmpNRzFEaWxUeHovKzV0OGdNNEt3SE1tL1N6K1lMRnF3?=
 =?utf-8?B?eXlnL2JxSTBsWWtqbGhNQUhqWm5zQkhnejZSTFkreUxmVXNLMU4wOFJPQUdi?=
 =?utf-8?B?V1VCY1ovTkV1TkxlOTdnSmxSMmVtTG1IbkxmanFlaHZRbGw4eEQxZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a3e061bb-7a09-4811-15b6-08de8b4fde8c
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 15:53:48.6936
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: u5pkhSFO8ULcv6k75EeUngGeTPYwHxb/kBHmo0X0TpwZelsl8y+ide3GvdeeEwmc25pRVfsPu9VzzxOl//2rVg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB8217
X-purgate-ID: tlsNG-4011c0/1774540432-52691900-A639467C/0/0
X-purgate-type: clean
X-purgate-size: 3621

On Thu, Mar 26, 2026 at 12:50:27PM +0100, Jan Beulich wrote:
> On 26.03.2026 09:51, Roger Pau Monne wrote:
> > When freeing possibly partially scrubbed pages in populate_physmap() the
> > whole page is marked as dirty, but that's not fully accurate.  Since the
> > PGC_need_scrub bit is preserved for the populate_physmap() allocation we
> > can use those when freeing to detect which pages need scrubbing instead of
> > marking the whole page as dirty.
> > 
> > This requires exposing free_heap_pages() globally, and switching
> > populate_physmap() to use it instead of free_domheap_pages().
> > 
> > Suggested-by: Jan Beulich <jbeulich@suse.com>
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> > ---
> > Jan: I'm not sure if that's what you suggested in the review of v1.  I've
> > added your Suggested-by but I can drop it if that's not what you were
> > thinking of.
> 
> You're going quite a bit farther. In my comment I really only meant the one
> new use you add in patch 2 (in which case no changes to the body of
> free_heap_pages() would have been needed, and hence why I thought that it
> could maybe be done right there). Up to you whether to keep the tag.

I see, you meant to change the single usage in case assign_page()
fails.  I think going a bit further is fine, seeing the adjustment to
free_heap_pages() is very minimal?

> > --- a/xen/common/memory.c
> > +++ b/xen/common/memory.c
> > @@ -177,7 +177,7 @@ static void stash_allocation(struct domain *d, struct page_info *page,
> >       * interface is designed to be used for single-threaded domain creation.
> >       */
> >      if ( d->pending_scrub || d->is_dying )
> > -        free_domheap_pages(page, order);
> > +        free_heap_pages(page, order, false);
> >      else
> >      {
> >          d->pending_scrub_index = scrub_index;
> > @@ -210,7 +210,7 @@ static struct page_info *get_stashed_allocation(struct domain *d,
> >              *scrub_index = d->pending_scrub_index;
> >          }
> >          else
> > -            free_domheap_pages(d->pending_scrub, d->pending_scrub_order);
> > +            free_heap_pages(d->pending_scrub, d->pending_scrub_order, false);
> >  
> >          /*
> >           * The caller now owns the page or it has been freed, clear stashed
> > @@ -391,7 +391,7 @@ static void populate_physmap(struct memop_args *a)
> >  
> >                      if ( assign_page(page, a->extent_order, d, memflags) )
> >                      {
> > -                        free_domheap_pages(page, a->extent_order);
> > +                        free_heap_pages(page, a->extent_order, false);
> >                          goto out;
> >                      }
> >                  }
> 
> Along with all of these there's then also domain_pending_scrub_free().

Yes, indeed.

> > --- a/xen/include/xen/mm.h
> > +++ b/xen/include/xen/mm.h
> > @@ -153,6 +153,12 @@ unsigned long avail_node_heap_pages(unsigned int nodeid);
> >  } while ( false )
> >  #define FREE_DOMHEAP_PAGE(p) FREE_DOMHEAP_PAGES(p, 0)
> >  
> > +/*
> > + * Most callers should use free_{xen,dom}heap_pages() instead of directly
> > + * calling free_heap_pages().
> > + */
> > +void free_heap_pages(struct page_info *pg, unsigned int order, bool need_scrub);
> 
> Might we better not put this here, but instead in a private header in common/?

No strong opinion.  It could logically be used outside of common in
principle, hence we might end up moving it anyway.  Would you prefer
me to introduce a common/memory.h header with just this prototype?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 16:00:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 16:00:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264446.1555999 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5n89-0005fp-4D; Thu, 26 Mar 2026 16:00:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264446.1555999; Thu, 26 Mar 2026 16:00:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5n88-0005fh-Um; Thu, 26 Mar 2026 16:00:20 +0000
Received: by outflank-mailman (input) for mailman id 1264446;
 Thu, 26 Mar 2026 16:00:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5n87-0005fb-4A
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 16:00:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5n86-00EN5P-GI
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 17:00:18 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c55808-5cb7-0a2a0a5109dd-0a2a450cdb3a-48
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 17:00:18 +0100
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c55812-f93d-0a2a450c0019-d1558036d9eb-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 17:00:18 +0100
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-4852b81c73aso10370625e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:00:18 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487209422b3sm16503695e9.36.2026.03.26.09.00.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 09:00:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774540818; x=1775145618; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SIjMwhrmXUnvxM6ihNtRA+/qOvvHP3HVBfBVvX5Bah8=;
        b=EzOz8kS4tHayEfV4/FzEvbKisfgLqPz/NnEdzPqDztHcTouge5t2jT12gzbjbIZgG3
         Oa8ZAuLb3DvH+GoVjpxpRC+suSuqsvVHuD2KomjNf+0knmQGdMQy33ncV4Z8tt4AbQwt
         IdG0LSBbUcO9iZGKYDNKwb0RPXdPHLYjdcEsOsjxQUV7w/9vl9eeZrxnW/LfXK2QLD9F
         CWMORgQ7S8DeRDNSRuyNPV6aVtk24tM1plakXPUovecTcccSdEuI5G2EWkUC84HkRktf
         A5+00/u97FICE/rUVxDrkPCqCTx/8gqR9CE0jp7zaJ0NYu75qBoJARNi12ASTDYe2Jw+
         09xQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774540818; x=1775145618;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SIjMwhrmXUnvxM6ihNtRA+/qOvvHP3HVBfBVvX5Bah8=;
        b=b6LkaC3t766+gKOFaOtUQG+9PQQiL6IRncqugmU709NFmG3oA3F4xHMu5cbfDvIgBx
         Nzh00XF0w43rqN9cF6uxB08suuOGhZ09J8xY7m9PbkxY+vwayWcgcIDjHeYgn+ri2awx
         XXqPhhK/Y3UIxnfifeQaCDEtJZ2YVbWmhC02r5TWWU9r4GTVQLnWuRC7xhIpe/Xo9rm0
         eaZEHIfdpg4yKm8xxo1f+6coVHAAbXcpVyY1d1s6rcm1kq9nJn6zQ3eagQSwPAU15hKT
         x32VIrVPrPlZAw7MAdpPLztHO5sRN9uiPxpKqlnsb3SCkVN0BNiXMtORkkTAxqmdmYpZ
         rZ5A==
X-Forwarded-Encrypted: i=1; AJvYcCUtVtxbgc1L6Eith7T6KBvuxeo8kF/I5zg1Df44x3rhmYgW7BYpnCe7G1FetwqJ5M+fr7hK+dqgc9Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxrEQe8bPf5LAyB3G8OxZ5UPaXlAZF5PCaA08OsiECJh/ux3mJx
	NtEn3pfI7OWg6/Dld0P8Ha33h9iFCxOVRBDWGvavDf3mnorwiew9fz0faMbOWeysIQ==
X-Gm-Gg: ATEYQzysUsySZil0RGTx7jnhJNXVg7TwVkvcOYU72vXEWrE6c56Uc9w+617pS8tbZij
	3WI7xSz742T/IkGZD301JhSk638t7+CD19OQLXkzGVDd0+uzbGEUGRPxUGZPR4m9gE9Wx2gmDdA
	KEuNmJzP1kZT3v+jS0ohMAOyE2roIPzru7BIDYQ5X3NE5iWsLUvXwX9eOIA8mPNs57dMbKiZbKV
	CWhJklmmoYXsrCROgxY/9eJTRAl2gtJc4ZtJlkyvtZGRDvZPCwxYkR70H+imjliPrj/vaUVKLGA
	ESj6y4W/loZX0cOCgaxIK0J1V5amFpLMwbxKy6OE1MR51VDCBpOThGPdiLGhXN0lCNFUCiv8vOG
	miz9dxu2sAVIjj/kxWZSR79m7YHb+CB5fO5QiyKFWeWwV72jyTmUNq932ESOmt03+cVruxE9Kvk
	jfwT0q6IEPPm3h1jPWmlXU1gQtm9sdDYU5aCo3WkIcR+iiCkcNMFowBK9oopFDOoCkxTMKXcQBf
	kDpk1oGRYCRt3w=
X-Received: by 2002:a05:600c:3490:b0:486:f8e9:add5 with SMTP id 5b1f17b1804b1-48716042c08mr122203105e9.19.1774540817521;
        Thu, 26 Mar 2026 09:00:17 -0700 (PDT)
Message-ID: <b4b67bc1-c7e4-4872-a018-789d7e87dcb2@suse.com>
Date: Thu, 26 Mar 2026 17:00:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/4] xen/uart: be more careful with changes to the PCI
 command register
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: <20260325145824.31601-1-roger.pau@citrix.com>
 <20260325145824.31601-2-roger.pau@citrix.com>
 <2a00a1d2-7017-4c76-8344-018eb3f30f50@suse.com>
 <acVNMQ_HqRpgkP7i@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <acVNMQ_HqRpgkP7i@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1774540818-6CABD734-C2999C66/0/0
X-purgate-type: clean
X-purgate-size: 3475

On 26.03.2026 16:13, Roger Pau Monné wrote:
> On Thu, Mar 26, 2026 at 01:02:22PM +0100, Jan Beulich wrote:
>> On 25.03.2026 15:58, Roger Pau Monne wrote:
>>> Read the existing PCI command register and only add the required bits to
>>> it, as to avoid clearing bits that might be possibly set by the firmware
>>> already.
>>>
>>> This fixes serial output when booting with `com1=device=amt` on a system
>>> using an "Alder Lake AMT SOL Redirection" PCI device (Vendor ID 0x8086 and
>>> Device ID 0x51e3).  That device has both IO and memory decoding enabled by
>>> the firmware, and disabling memory decoding causes the serial to stop
>>> working (even when the serial register BAR is in the IO space).
>>>
>>> Fixes: f2ff5d6628b3 ("ns16550: enable PCI serial card usage")
>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>>
>> I'm not convinced Fixes: is appropriate here. There's nothing wrong with that
>> commit, aiui. What's bogus is the device behavior.
> 
> Hm, I would argue that disabling command register bits for devices
> that have those enabled is in general dangerous.  What about device
> RMRR or similar residing in BARs, and Xen disabling memory decoding
> unintentionally while attempting to enable IO decoding?

RMRRs in BARs seems unlikely (as BARs can be moved), but you have a
point in general. Otoh devices are fully under our (later under Dom0's)
control, so we may clear (or set) bits as we see fit to get a device
to function. FTAOD, I'm not outright objecting to the tag, I'm merely
questioning it some.

>>> --- a/xen/drivers/char/ns16550.c
>>> +++ b/xen/drivers/char/ns16550.c
>>> @@ -283,11 +283,17 @@ static int cf_check ns16550_getc(struct serial_port *port, char *pc)
>>>  static void pci_serial_early_init(struct ns16550 *uart)
>>>  {
>>>  #ifdef NS16550_PCI
>>> +    uint16_t cmd = 0;
>>> +
>>> +    if ( uart->ps_bdf_enable )
>>> +        cmd = pci_conf_read16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
>>> +                                       uart->ps_bdf[2]), PCI_COMMAND);
>>
>> Why is this conditional? While fine for the use at the bottom, ...
> 
> The comment next to the field states:
> 
>     bool ps_bdf_enable;     /* if =1, ps_bdf effective, port on pci card */
> 
> So it didn't seem like further checking was needed and that was the
> sole filed to decide whether ps_bdf is populated or not.
> 
> However, I also found that when using device=amt|pci ps_bdf_enable
> doesn't get set, and hence I'm not sure if that's intended or not.
> Shouldn't ps_bdf_enable get set unconditionally when the serial device
> is a PCI one?

I think this was deliberate, hence why ...

>>>      if ( uart->bar && uart->io_base >= 0x10000 )
>>>      {
>>>          pci_conf_write16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
>>>                                    uart->ps_bdf[2]),
>>> -                         PCI_COMMAND, PCI_COMMAND_MEMORY);
>>> +                         PCI_COMMAND, cmd | PCI_COMMAND_MEMORY);
>>>          return;
>>>      }
>>
>> ... it looks wrong(ish) for this path. Actually, in ns16550_init_postirq()
>> we use
>>     if ( uart->bar || uart->ps_bdf_enable )

... this conditional is now in use.

Jan

>> for example. With the new conditional updated accordingly:
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> Thanks for the review, I don't mind adjusting, but I have a further
> question above.
> 
> Roger.



From xen-devel-bounces@lists.xenproject.org Thu Mar 26 16:02:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 16:02:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264453.1556007 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5nAN-0006Ka-D8; Thu, 26 Mar 2026 16:02:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264453.1556007; Thu, 26 Mar 2026 16:02:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5nAN-0006KT-AG; Thu, 26 Mar 2026 16:02:39 +0000
Received: by outflank-mailman (input) for mailman id 1264453;
 Thu, 26 Mar 2026 16:02:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5nAM-0006KJ-7m
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 16:02:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5nAL-001Gvm-Jq
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 17:02:37 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c55899-e002-0a2a0a5209dd-0a2a4503babe-28
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 17:02:37 +0100
Received: from [209.85.221.53] (helo=mail-wr1-f53.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c5589d-1947-0a2a45030019-d155dd35cc72-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 17:02:37 +0100
Received: by mail-wr1-f53.google.com with SMTP id
 ffacd0b85a97d-439b94a19fdso1085161f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:02:37 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b919df903sm9147491f8f.30.2026.03.26.09.02.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 09:02:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774540957; x=1775145757; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dI8bo9ARUgtzJLHKohHwufYiwlIKOeOrKOtPwrW4eX4=;
        b=fkGJHPpI1NFPVh74Yk9gR+42DXyupW9+TGUYUAN61k7ro4crt3hR0TC34fdCcCsVjM
         qYjVOueuxjImZDX+gEcpWkiZ7ohp2zIf2I43SzKA8vv6pLAyXzcm6jytg9uI6rydI6Xh
         sKSAZ4ucl93PbKZqiumQVy69KNE0YvvrCOtwMRHBjVjHYOGfzlU3vP2qsLEKvTPHkTYQ
         lbvhnn0C6jnu7Z6UzS47rRq6vlmo7guJgHO0C3GPKV0nA2ru4kTH09BkCiPJMSGeziwc
         /jEs4OZEdSYb2n7vpTfFMGaMJ59+SWrzNf83D0XME5o/783Fg0VNPxkjKo7te7GnIgTX
         U/tg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774540957; x=1775145757;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dI8bo9ARUgtzJLHKohHwufYiwlIKOeOrKOtPwrW4eX4=;
        b=tY1KwzjuT6jlLmUf3/2Iv2YKzVUcq6B9GUJY0VTrTHbjmktuz/3tYroQJxD/7VgTjA
         /8L25+Dag0ds6wEbYS66sKn33MqN4siVVMvK2vE8Ilcl2qvUND4C8ZOd6zWQ03qmo+kY
         i/GH7cjil9qB8EC3cuVJjV1ZBVGIJdFGiAe7UoNjhCTVocm0zXT+RpH+zatDbvg8DjAO
         F/vgsNDqQV+lyvW6k3QfDZOzW1fsAvbbFSLWMNOs35EBtRfCR9FjNvdT1Tz1SsXBTa9x
         K190WdIW66NQAH0knjvZkJOtFtfdfofVjKS3cNex2TvKrSV/TMHFjzH6owxNhEnFc3mO
         eBGA==
X-Gm-Message-State: AOJu0YxqqY08cWs4fLMWuIWVLz5/r5rDkBqWsGjxDsvDhTHoWZnhuOWh
	Mj6SnKH+z4vB5792Ui6f2nHDTfFrJ0crI8lXxroUMDErwTbGLHROiYb0nMcVoeqZpfmLPbSjnwo
	RxXUe9Q==
X-Gm-Gg: ATEYQzwwj7zn+KcNIJX3E1pXcPzZWIOsaYAn6fpfgHRRZ4P+njd45sZQGRpqFes02sa
	tkl2N+vQlgowENVlltvP8C3uV1GERcpDrI1XZn5Z2nBKMXwbzmDuTEJmTgECXClLiI6HacLO2oI
	+OyOmhi06nvsIaiL81xMho8ZLg0s8hcpMdPFaZZrrmnAyVBaWKACnP0aBBlvTzyhsBLy0Qf1Lxw
	znM/j67DGjanvmUCPrSYK6wnkJDx/VnK88GI3JN3sOKJLSXqv4b+8Z87og3swOMaGbVgO9Bi4YG
	bTB4PdM95Oq7oi0l+8I+9FJNVHGEAw/uLsfhvidTcCuWunmWpn9AJtt6HVSZKEwwiY5JnivEibB
	HHfyzcHbmh+vzpoVYhsvHsJiwnEAZR93fkglk2uboDJxXU1rTrqBDAvaEwd5vXk7Z4xKRc6tmo8
	WFk8PkMPX8cNRcewJsT8OFvyFTJMXLnlsBDUysU96pukDLDlxy0K/6AA54Vfo5H2UwqMTMJdWnR
	CGaZQ0NfW3AXaA=
X-Received: by 2002:a05:6000:40e0:b0:439:af81:1b23 with SMTP id ffacd0b85a97d-43b889aaf9fmr12259715f8f.21.1774540956671;
        Thu, 26 Mar 2026 09:02:36 -0700 (PDT)
Message-ID: <88c65ec7-b7f7-4d8b-a453-d707440b43cb@suse.com>
Date: Thu, 26 Mar 2026 17:02:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Slow (higher scheduling latency?) system after S3 - regression
 4.17 -> 4.19 ?
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>
References: <aPzBO_eW8mQHM66u@mail-itl> <acQzzlXNDxNq885V@mail-itl>
 <29775afa-e17b-4c44-a2a8-4ef4bc7cdf0f@suse.com> <acUqOL232lp-Lw1v@mail-itl>
 <cbed767b-4ac4-4989-8778-43ff321ae977@suse.com> <acVWX8vkhZiFfonP@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: <acVWX8vkhZiFfonP@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1774540957-77C8C72C-844C0C78/0/0
X-purgate-type: clean
X-purgate-size: 5123

On 26.03.2026 16:53, Marek Marczykowski-Górecki wrote:
> On Thu, Mar 26, 2026 at 02:20:04PM +0100, Jan Beulich wrote:
>> On 26.03.2026 13:44, Marek Marczykowski-Górecki wrote:
>>> On Thu, Mar 26, 2026 at 09:27:56AM +0100, Jan Beulich wrote:
>>>> On 25.03.2026 20:13, Marek Marczykowski-Górecki wrote:
>>>>> On Sat, Oct 25, 2025 at 02:23:23PM +0200, Marek Marczykowski-Górecki wrote:
>>>>>> Hi,
>>>>>>
>>>>>> After updating from Xen 4.17 to 4.19 it appears that I have some
>>>>>> performance issues if system was suspended before. For now this is just
>>>>>> vague observation, as I don't have much data yet.
>>>>>>
>>>>>> Generally, the user observable effect is that audio playback (over
>>>>>> Qubes's PV audio thing) becomes very choppy, beyond usefulness (cannot
>>>>>> make audio calls anymore, music/video playback also becomes useless with
>>>>>> some players. For me this suggests some increased latency in scheduling
>>>>>> - maybe some timer fires too late?
>>>>>>
>>>>>> This doesn't happen always, but I'd say quite often after S3, sometimes
>>>>>> may need two or three suspend cycles to trigger the issue. But it's
>>>>>> possible it is also some other factor, like which pCPU the VM gets
>>>>>> scheduled on, maybe? But for now I didn't hit this issue before
>>>>>> performing any S3. I don't have a reliable reproducer yet.
>>>>>>
>>>>>> While I write it's related to 4.17 -> 4.19 update, there is also slight
>>>>>> possibility it's related to hardware change (CFL -> MTL). But, it's
>>>>>> unlikely, since I'd probably get much more bug reports about that (the
>>>>>> stable Qubes version uses 4.17, and we have many users on MTL).
>>>>>>
>>>>>> What would be the method to collect some useful debugging info? Some
>>>>>> debug-keys (r? a?), some cmdline options?
>>>>>
>>>>> In the meantime (sharing some of it on Matrix already), I managed to
>>>>> build a much more isolated test. Specifically, a single PVH domU with
>>>>> VLC, preloading 1s of audio (and not playing it really, the output is
>>>>> set to a file). The specific command is:
>>>>>
>>>>>     VLC_VERBOSE=3 vlc -I cli -A afile --no-loop --play-and-exit --run-time 1   ./melodigne-quiz-blind-test-187140.mp3
>>>>>
>>>>> The domU rootfs (or rather: initramfs) is based on AppImage of VLC,
>>>>> there is not much more inside, and the above command is called as part
>>>>> of init script (and domU is terminated shortly after).
>>>>>
>>>>> There is no persistent state in the test, the whole thing is network
>>>>> booted from the same base. The only things changing between runs is xen
>>>>> binary + toolstack.
>>>>>
>>>>> In the output I'm looking for this line: main input debug: Stream buffering done (1018 ms in 2 ms)
>>>>>
>>>>> Before S3 it takes 0-2ms, sometimes (rarely) 10ms (not sure why). Just
>>>>> after S3 it takes very similar amount of time.
>>>>> Then, I wait 30min, and run that command (or really the whole domU)
>>>>> again a few times. I consider it "good" if I get at least one result
>>>>> below 10ms. With this test in hand, I did run bisect between
>>>>> staging-4.17 and staging-4.19. And here stuff gets interesting:
>>>>>
>>>>> At 498a4ded74b3f062c52e42568223dc5858d27731 I get the following times
>>>>> (in ms):
>>>>>
>>>>>     30m after S3: 2, 2, 10, 10, 
>>>>>     1h after S3: 2, 16, 16, 2, 17
>>>>>
>>>>> At 5effd810c629d9a836e46ee321ca7409dad27212:
>>>>>
>>>>>     30m after S3: 26, 27, 26, 15
>>>>>     1h after S3: 24, 25, 37, 37, 25
>>>>>
>>>>> This doesn't make any sense to me. There is a clear difference, yet
>>>>> 5effd810c629d9a836e46ee321ca7409dad27212 looks like a no-op change (at
>>>>> least for this Intel system).
>>>>
>>>> Pretty odd indeed. I assume you double checked the effect by going back
>>>> and forth between the two commits.
>>>
>>> Yes...
>>>
>>>> If the effect persists, could you make
>>>> both binaries (xen-syms or xen.efi respectively, depending on which one
>>>> you use of the system) available somewhere for inspection? There has to
>>>> be some relevant difference, e.g. by addresses shifting slightly.
>>>
>>> Sure, here: https://salmon.qubes-os.org/~marmarek/xen-perf-weird.tar.gz
>>
>> While said commit changes the size of init_nonfatal_mce_checker() by 4
>> bytes, that doesn't lead to any other changes. I.e. all addresses remain
>> the same. I.e. I'm completely lost as to explaining the observed behavior
>> (or even just making a wild guess).
> 
> With staging-4.19 from a week ago +
> 5effd810c629d9a836e46ee321ca7409dad27212 reverted, I got the following
> results:
> 
> 30m after S3: 23, 22, 22, 23
> 1h after S3: 7, 25, 22, 8, 25
> 
> So, there are some fast runs, but most are in line with the "bad" case
> above...
> 
> But, I have another idea why that seemingly no-op commit may change
> something: maybe it's about stack content during/after the function
> call, influencing some uninitialized variable down the road?

Possible in principle, but not something which would change specifically
by said commit, or specifically across S3.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 16:06:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 16:06:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264467.1556016 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5nDd-0006ws-U8; Thu, 26 Mar 2026 16:06:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264467.1556016; Thu, 26 Mar 2026 16: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 1w5nDd-0006wl-Qf; Thu, 26 Mar 2026 16:06:01 +0000
Received: by outflank-mailman (input) for mailman id 1264467;
 Thu, 26 Mar 2026 16:06:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w5nDd-0006wf-3p
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 16:06:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5nDc-001Hfk-Fy
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 17:06:00 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c55968-2eae-0a2a0a5409dd-0a2a450bd40a-0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 17:06:00 +0100
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c55968-ef63-0a2a450b0019-d1558031cd26-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 17:06:00 +0100
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-486fda2a389so9330575e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 09:06:00 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48722c845b8sm37225365e9.4.2026.03.26.09.05.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 09:05:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774541160; x=1775145960; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XvDKUxnp63sk9ZHITRCSTf+wf8aqBXRHHagMNfACX7Q=;
        b=NBQOjtMauMU2iRjcWzvs133pIFL4qKT+IHvWB9GdnUbhJjJethQWkkvVA+RuP2Syh1
         ynhI0a73Da8tUOzT3YQOcwYuVcIWYzxeXPj0xX+FFL/Srx3RKsUQiV4xnrJ1h/NtvDO1
         GVbfwQmu10RedZmCgWoKz7nJ/bcWl8maqJqHC4cXHdPEzTHB/jTAOXGVWrqwIH8ZVjrk
         vmQoXReWVEEWMa67zIZFN3umnGLKJea7e2eL3hXTWOvxyjnUryQ987Fan+frSBSbV/MA
         aA5BrXfBkmutNHsct1Z5YacwlQdZu8IC4zexdnRNL8If5dIX4z7C3RTwPI/zMLhV6zMW
         mylw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774541160; x=1775145960;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XvDKUxnp63sk9ZHITRCSTf+wf8aqBXRHHagMNfACX7Q=;
        b=iCbQ+M6CqYPhMJI88OQE96hRepQiMPSsIJ1oXKN5r2/iJ32tPTQgXkXgZid6vvbX9c
         cCCyinN36EsPDV8JJ4hYfZVchF1LhNBA4q47jZFizZtXjtxyl/CGllSBnwDN4Nj9z4G9
         q/g7s1jdVRpuo5qQLGI6vKKbWTEjVj9MwBd5nSyFTAsjUmdpF40n6V4AxwfEBE4HVNtj
         hLQ/nwKfgLkJ1MZdHORaAtmhdmMVjNCKxXz/rxhb4ZygKEL73rJPJ+RkAgcWkxLEZ0iH
         fZIqt9wrRpQlQCuXCLPb1a8lqqYEsnW5dbQczSfIJOxySJaJufNW4MsjNpHxmHGIBB/j
         aqqg==
X-Forwarded-Encrypted: i=1; AJvYcCWbHnmnPKe4GJ39f+FLn8A2apy58k13DE1VuytOlllBxCgDYSo6QvXjeY4k9EFb8HCi9XWlirmFFWk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy+WTGfNA+jM9bEpyIi0tbn0VrH9K/AdI4fNeXTqWPp5HhYZJlu
	WuBMBvP6LNIUbBFeGH92ZsXIMGAijI+ZpfOIh4NH4qw6sgvfFLanovNzZZmYyKoSYA==
X-Gm-Gg: ATEYQzzqmCQRj+fI4kEx6Ykrptkl+vcjRJvwCaiEE3kXZaxV2pZc1rio6f9o333LfEU
	JjCRYt4Y2Xcroq1LYcUyq1JUM0lnKnjoKIHd/Jc1zlKjJ5pBf9bnYO4ynz7tnPcxdKKCzDcvpHs
	6CLwXQTirRdB8lwl+I6yQyqOrw+YbPCL1ItwSVHL9r+p1zs8VAYfwtHwKA1lxhquDMhm4mmlOnx
	RIdCjPrdW73VTU8VO+ZEVAFKPBGJlCquDK0WzrnG9o0WHub55nhwEKO04e9dhcU6KBxClqO86gz
	XqKm8apLbn7xYjgi4s6AATx1sT1N8aUh5beCetTKYWQEogANVVIsU3U5kqHeLx8Ct+tXMoDEd1h
	SNRY4doU3SkJ6WkacZhCKeNd8zjDiuWRWrkZNQQPDItBucKlP2qAn/Tnjsc8lZKFCn85bcUKetB
	TwWIzeYUGicYkNQqUBWxOYqELqxALvyGgkYMCEDqFeBfGIcxZw5ImLRbEa6B2RNuD10Q+GK1EEm
	VgzA25ZKZRuBrI=
X-Received: by 2002:a05:600c:46c6:b0:485:40c6:f507 with SMTP id 5b1f17b1804b1-4871609d044mr133530395e9.30.1774541159782;
        Thu, 26 Mar 2026 09:05:59 -0700 (PDT)
Message-ID: <8043652a-368a-4819-a680-4dbe64168c3b@suse.com>
Date: Thu, 26 Mar 2026 17:05:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] xen/mm: improve freeing of partially scrubbed
 pages
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: <20260326085145.61380-1-roger.pau@citrix.com>
 <20260326085145.61380-4-roger.pau@citrix.com>
 <77e3a765-39dd-4eea-898d-cf9e31912cfb@suse.com>
 <acVWidFD7twir5od@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <acVWidFD7twir5od@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1774541160-9ACAB112-26B4F518/0/0
X-purgate-type: clean
X-purgate-size: 2508

On 26.03.2026 16:53, Roger Pau Monné wrote:
> On Thu, Mar 26, 2026 at 12:50:27PM +0100, Jan Beulich wrote:
>> On 26.03.2026 09:51, Roger Pau Monne wrote:
>>> When freeing possibly partially scrubbed pages in populate_physmap() the
>>> whole page is marked as dirty, but that's not fully accurate.  Since the
>>> PGC_need_scrub bit is preserved for the populate_physmap() allocation we
>>> can use those when freeing to detect which pages need scrubbing instead of
>>> marking the whole page as dirty.
>>>
>>> This requires exposing free_heap_pages() globally, and switching
>>> populate_physmap() to use it instead of free_domheap_pages().
>>>
>>> Suggested-by: Jan Beulich <jbeulich@suse.com>
>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>>> ---
>>> Jan: I'm not sure if that's what you suggested in the review of v1.  I've
>>> added your Suggested-by but I can drop it if that's not what you were
>>> thinking of.
>>
>> You're going quite a bit farther. In my comment I really only meant the one
>> new use you add in patch 2 (in which case no changes to the body of
>> free_heap_pages() would have been needed, and hence why I thought that it
>> could maybe be done right there). Up to you whether to keep the tag.
> 
> I see, you meant to change the single usage in case assign_page()
> fails.  I think going a bit further is fine, seeing the adjustment to
> free_heap_pages() is very minimal?

Oh, yes, sure. I was merely trying to address your remark.

>>> --- a/xen/include/xen/mm.h
>>> +++ b/xen/include/xen/mm.h
>>> @@ -153,6 +153,12 @@ unsigned long avail_node_heap_pages(unsigned int nodeid);
>>>  } while ( false )
>>>  #define FREE_DOMHEAP_PAGE(p) FREE_DOMHEAP_PAGES(p, 0)
>>>  
>>> +/*
>>> + * Most callers should use free_{xen,dom}heap_pages() instead of directly
>>> + * calling free_heap_pages().
>>> + */
>>> +void free_heap_pages(struct page_info *pg, unsigned int order, bool need_scrub);
>>
>> Might we better not put this here, but instead in a private header in common/?
> 
> No strong opinion.  It could logically be used outside of common in
> principle, hence we might end up moving it anyway.  Would you prefer
> me to introduce a common/memory.h header with just this prototype?

It would help if others could voice an opinion. To me exposing this
supposedly internal (to the page allocator) function feels a little
risky. Yet of course any undue use would likely be spotted and objected
to during review.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 16:20:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 16:20:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264498.1556025 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5nRD-0001MJ-28; Thu, 26 Mar 2026 16:20:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264498.1556025; Thu, 26 Mar 2026 16: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 1w5nRC-0001Ls-VM; Thu, 26 Mar 2026 16:20:02 +0000
Received: by outflank-mailman (input) for mailman id 1264498;
 Thu, 26 Mar 2026 16:20:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <helgaas@kernel.org>) id 1w5nRB-00010d-BW
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 16:20:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5nRA-009bfB-Ne
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 17:20:00 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <helgaas@kernel.org>)
 id 69c55cb0-bab6-0a2a0a5309dd-0a2a450cd54a-0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 17:20:00 +0100
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <helgaas@kernel.org>)
 id 69c55caf-f93d-0a2a450c0019-ac6904feaa5e-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 17:20:00 +0100
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id CF4E960053;
 Thu, 26 Mar 2026 16:19:58 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 58181C116C6;
 Thu, 26 Mar 2026 16:19:58 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:Cc:Subject:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774541998;
	bh=HUtRwEpymq8y1tHT5IuCcbjZ8WgelRutIBJgFxgBfwY=;
	h=Date:From:To:Cc:Subject:In-Reply-To:From;
	b=F8mHPbZMLywhR2KPKiO47GUlQve1aWTvrP9jUY2zHBn/GgXJAJ8kIosO6KRmT2xPy
	 0IOXnbxBuiHeZMvRl+TjIGCZL+xLIklcHleCk7JhPz7DuyprdCRvXeIavUjsvsJn3u
	 2Q1RhEo14xk900QBnukOrxjvVlgBCi/2LncSYTzSdhsFA5hJ9IBKJY83E/k7nfnIj+
	 5lTlIF6wm86KROEBrkkqhHauUmxF3ByqGulkPiq2SUiGMalg+b2lo7okZjYoEqA7SE
	 DQIUYImcIBQS+JZCWgUDtLEZ0SBKAUGmugBagt425A+Pxg6+wxIOHa2m/AYEY0slHj
	 ZzEGDAJHfpMMw==
Date: Thu, 26 Mar 2026 11:19:57 -0500
From: Bjorn Helgaas <helgaas@kernel.org>
To: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>,
	Richard Zhu <hongxing.zhu@nxp.com>,
	Lucas Stach <l.stach@pengutronix.de>
Cc: Nipun Gupta <nipun.gupta@amd.com>,
	Nikhil Agarwal <nikhil.agarwal@amd.com>,
	Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
	Lorenzo Pieralisi <lpieralisi@kernel.org>,
	Thomas Gleixner <tglx@kernel.org>,
	Saravana Kannan <saravanak@kernel.org>,
	Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
	Manivannan Sadhasivam <mani@kernel.org>,
	Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
	Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
	Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
	Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
	Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
	linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
	linux-pci@vger.kernel.org, imx@lists.linux.dev,
	xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
	Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Subject: Re: [PATCH v11 2/3] of: Factor arguments passed to of_map_id() into
 a struct
Message-ID: <20260326161957.GA1324845@bhelgaas>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260325-parse_iommu_cells-v11-2-1fefa5c0e82c@oss.qualcomm.com>
X-purgate-ID: tlsNG-d25034/1774542000-F7CA2734-0DE1B763/0/0
X-purgate-type: clean
X-purgate-size: 4293

[cc->to: Richard, Lucas for pci-imx6.c question]

On Wed, Mar 25, 2026 at 04:38:23PM +0530, Vijayanand Jitta wrote:
> From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> 
> Change of_map_id() to take a pointer to struct of_phandle_args
> instead of passing target device node and translated IDs separately.
> Update all callers accordingly.
> 
> Add an explicit filter_np parameter to of_map_id() and of_map_msi_id()
> to separate the filter input from the output. Previously, the target
> parameter served dual purpose: as an input filter (if non-NULL, only
> match entries targeting that node) and as an output (receiving the
> matched node with a reference held). Now filter_np is the explicit
> input filter and arg->np is the pure output.
> 
> Previously, of_map_id() would call of_node_put() on the matched node
> when a filter was provided, making reference ownership inconsistent.
> Remove this internal of_node_put() call so that of_map_id() now always
> transfers ownership of the matched node reference to the caller via
> arg->np. Callers are now consistently responsible for releasing this
> reference with of_node_put(arg->np) when done.
> ...

Not actually part of *this* patch, and AFAICS this patch is correct
as-is, but is it necessary to have different logic around
of_node_put() for imx_pcie_add_lut_by_rid() and
apple_pcie_enable_device()?

> +++ b/drivers/pci/controller/dwc/pci-imx6.c
> @@ -1137,6 +1137,8 @@ static void imx_pcie_remove_lut(struct imx_pcie *imx_pcie, u16 rid)
>  
>  static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
>  {
> +	struct of_phandle_args iommu_spec = {};
> +	struct of_phandle_args msi_spec = {};
>  	struct device *dev = imx_pcie->pci->dev;
>  	struct device_node *target;
>  	u32 sid_i, sid_m;
> @@ -1144,7 +1146,12 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
>  	u32 sid = 0;
>  
>  	target = NULL;
> -	err_i = of_map_iommu_id(dev->of_node, rid, &target, &sid_i);
> +	err_i = of_map_iommu_id(dev->of_node, rid, &iommu_spec);
> +	if (!err_i) {
> +		target = iommu_spec.np;
> +		sid_i = iommu_spec.args[0];
> +	}
> +
>  	if (target) {
>  		of_node_put(target);

Here it's conditional on "target" even though of_node_put() checks
internally for non-NULL, so it would be safe without the conditional
here.

>  	} else {
> @@ -1156,8 +1163,11 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
>  		err_i = -EINVAL;
>  	}
>  
> -	target = NULL;
> -	err_m = of_map_msi_id(dev->of_node, rid, &target, &sid_m);
> +	err_m = of_map_msi_id(dev->of_node, rid, NULL, &msi_spec);
> +	if (!err_m) {
> +		target = msi_spec.np;
> +		sid_m = msi_spec.args[0];
> +	}
>  
>  	/*
>  	 *   err_m      target

And here (outside the diff context) we also call of_node_put()
conditionally:

  ...
  else if (target)
    of_node_put(target);

> diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
> index a0937b7b3c4d..c2cffc0659f4 100644
> --- a/drivers/pci/controller/pcie-apple.c
> +++ b/drivers/pci/controller/pcie-apple.c
> @@ -755,6 +755,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
>  {
>  	u32 sid, rid = pci_dev_id(pdev);
>  	struct apple_pcie_port *port;
> +	struct of_phandle_args iommu_spec = {};
>  	int idx, err;
>  
>  	port = apple_pcie_get_port(pdev);
> @@ -764,10 +765,12 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
>  	dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
>  		pci_name(pdev->bus->self), port->idx);
>  
> -	err = of_map_iommu_id(port->pcie->dev->of_node, rid, NULL, &sid);
> +	err = of_map_iommu_id(port->pcie->dev->of_node, rid, &iommu_spec);
>  	if (err)
>  		return err;
>  
> +	of_node_put(iommu_spec.np);

Here we call of_node_put() unconditionally.

I think it would be much nicer if imx_pcie_add_lut_by_rid() used the
same style as apple_pcie_enable_device() and did the of_node_put()
unconditionally.  That would untangle the function a bit and make it
easier to analyze.

> +	sid = iommu_spec.args[0];
>  	mutex_lock(&port->pcie->lock);
>  
>  	idx = bitmap_find_free_region(port->sid_map, port->sid_map_sz, 0);


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 16:51:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 16:51:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264536.1556039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5nv6-0006xo-Dx; Thu, 26 Mar 2026 16:50:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264536.1556039; Thu, 26 Mar 2026 16:50:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5nv6-0006xh-A2; Thu, 26 Mar 2026 16:50:56 +0000
Received: by outflank-mailman (input) for mailman id 1264536;
 Thu, 26 Mar 2026 16:50:54 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1w5nv4-0006xb-8Z
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 16:50:54 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5nv3-00EW6h-Kq
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 17:50:53 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69c563d9-e002-0a2a0a5209dd-0a2a450cd02c-36
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 17:50:53 +0100
Received: from [40.93.201.8]
 (helo=CY3PR05CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69c563eb-f93d-0a2a450c0019-285dc908f9fe-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 17:50:52 +0100
Received: from BN9PR03CA0333.namprd03.prod.outlook.com (2603:10b6:408:f6::8)
 by SJ2PR12MB8781.namprd12.prod.outlook.com (2603:10b6:a03:4d0::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.7; Thu, 26 Mar
 2026 16:50:47 +0000
Received: from BN3PEPF0000B06F.namprd21.prod.outlook.com
 (2603:10b6:408:f6:cafe::6) by BN9PR03CA0333.outlook.office365.com
 (2603:10b6:408:f6::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.22 via Frontend Transport; Thu,
 26 Mar 2026 16:50:46 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN3PEPF0000B06F.mail.protection.outlook.com (10.167.243.74) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9769.0 via Frontend Transport; Thu, 26 Mar 2026 16:50:46 +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; Thu, 26 Mar
 2026 11:50:46 -0500
Received: from [10.71.194.215] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 26 Mar 2026 11:50:45 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WAc/kr4qwdEjbV3wXfcQ8qeaDIAWmzLMK4LxON1pEceXilUQtffRbrC0647lOHag+1/Qb7vdzNv84hdYSqwXRoJf/bDCqdbA9IcLvu8lTOA0l8MpKewHULJHan1XVsRaE4bsFZZHfxuLDNL4rNuhOL2vqlEImAgEyXUf4i5SIqxoHPTe4JTnZk+EOwLyBLMudr3yC2n6zphQlh9NfxAvlh5eRbJBtLVLvfRUv5deVAVm/MWbULhvLzkTs2M9DeL5gSzwuHOsDrpdeHHUA8aAX9aiWjqVbqQg/huv0RJbC8Qf9mzC38RLXXinkT196dVoI+DdhwILher1lO90bzkiIg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fZO+WnJWMa9OZKHa76ca+JXDuhCjqEGivfnwkU/mccA=;
 b=s9K25J2it3L2DEc+NZ9lVeTyjrKAHKdUYwPwsOPeSnI1oHbem4LekBVXIgcPSWLSKEydvty0r8456rdGoWxOsYa0XM9GpLkGES1ceJ1tcV0kmZY2j/G72JWtlWuQt6W7yrrBZKnIFYe/YQ2/msAO2KKxNTfzL63IQHp6CTqJhxOJN822GvhA8zCSPdVAsbnPpOmhidh46Ng8vNfm16yiSlgN+AFGfHRjYKXWyLJn4fc8PNWoX0ApQOJ5fqZTGF4pSdJ11Y10xMzyJws4Uulypgek0UAdrn7PB6Ohy34Nuf9Sk78FMjwC3UIoo2jGH5nKHBMHrqC8kUPyA7xssrp4oA==
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=fZO+WnJWMa9OZKHa76ca+JXDuhCjqEGivfnwkU/mccA=;
 b=kjtM8ssnyRfNztHvD6xCv/oBfUvW19qos9jurW3N8yg1X9NS8EZDq3s11guAwGyMTTxn08XYq3pP68W0lov1k9MN1iekVXvZF8D6jrtRKVYJZDnuvresSw67muc4ZwuZDg31VmkdaiaE8y4WlKZKTG9WLf/w8RDCRziaHiJ1x5A=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <29769bd9-8410-417b-9ad8-84131956db57@amd.com>
Date: Thu, 26 Mar 2026 17:50:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: Increase DOM0_FDT_EXTRA_SIZE to support max
 reserved memory banks
To: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@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: <20260326131535.662466-1-oleksandr_tyshchenko@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260326131535.662466-1-oleksandr_tyshchenko@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B06F:EE_|SJ2PR12MB8781:EE_
X-MS-Office365-Filtering-Correlation-Id: ded06974-0574-4e7b-80cd-08de8b57d3db
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700016|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	Drt3JhUrl3Qg9M6ZvGqCEliEb3tJboj85X0YmQgDpCoNJkL6LJvUbAcSnty8FbT1A96PFKeFHsNCdzO59m7eyRZI6KPnpSP8XMQ+kamEpscv7lFD3oZXBBqGzNVShBo/eCB78mTTVsYTBVx2rkp+4ZzzdahSUk+Y3p5dtJnBPs6lJ7ye0vepnRXaTu4AvGcGBdYwWoC6lujwdtoP5ITfzEfsEjv9OETkf/pXLDXmTr05Wow9tck55M5xUGDZ4dORCzanjY2b/QUEw4AupfCN1W7sBcnQhxbnriaTuPCgXa62N+d3ytXy8+B4y0T/BLr/Ku1iMf0SgMDX6eU3y3WHVfwUJpr9CMdkIQPaaq8jmEX2rVYm0JEqn9RII4+hS28xyc/jTbLxvUkkVM3mM37BrKNGXAnK7Zq1k68zCb8cezBXv8ZuxrqPsg9QZq/rhrLoMkzS1dCSIRTl0GhUG7pZegB+lVV9kgHu2935lKgS9Pni+HAV3zPb2cWFALAEaY4RqU7+5mO1pRKDHGLaNlnc5Xu2c9lnVGMknVQ3P2E+tCMXcUufpMyTojqB9lfKv92lAEs3pexyo3XTX1NeUQt3XDYmyazVmKnbFpv9CgLVoy9sAlzZ0wY+g4svNq+UxZxBW3p7kc818pAvqPFLt9R+9mWsVAjY0i5YF+7df5DRaAlQVx6yE/XAz7Wi1//RknNfVFbOa4UXdCTWJxNllBqA5OGhVOQf/JecqUpQ1QSA5MCBXZp0+MkUs6kd/HYFIvjKxhmyuOuBPEFwT1Gav1hooA==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700016)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	eChNL+rKJdbRPJwZfHliIqkWFh4nG/Zjx9F9ilqZyo3G6O1eZ9/POtsRM7qn5mqgb3PWNAqFx7DJzKe3aoMHmPodlqzpsBxTbGT5j1kus/5prSQjr7Hi4UDoH0oqK5vIM82j0+XpOJ4uqltL18UjA9VMMve9ph3dLv73Lj4Nv0X1QPMd2M4eEZosnrL1NV+Tqw5h6WFvlwwhstN13oBfqCq5sc/TuZ48BOftacIGmCwG2Gdwqv2CuSeLDraKHZoPKm0985Vv/U65eG090NIfCBTruKM84u/IaOgglGpfO6ZWCofBAIbUFhsGD2JDIbEs4FLCle2d2BGFsxNdU2bhEqIvMB4oxWVMiXMD7cnuIiIetBnO07y8XT7RF+J8wuwzTwIpdirdhaUOWSESDO3vP5bo5nZRhBuPSxHOnLRfFvvNXuYp2RQ4kZ5hVzAx0qtg
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 16:50:46.5501
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ded06974-0574-4e7b-80cd-08de8b57d3db
X-MS-Exchange-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:
	BN3PEPF0000B06F.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8781
X-purgate-ID: tlsNG-d25034/1774543853-6FCA2734-797ED25C/0/0
X-purgate-type: clean
X-purgate-size: 2500



On 26/03/2026 14:15, Oleksandr Tyshchenko wrote:
> Xen fails to construct the hardware domain's device tree with
> FDT_ERR_NOSPACE (-3) when the host memory map is highly fragmented
> (e.g., numerous reserved memory regions).
> 
> This occurs because DOM0_FDT_EXTRA_SIZE underestimates the space
> required for the generated extra /memory node. make_memory_node()
Where does this extra /memory node come from? If this is for normal reserved
memory regions, they should be present in the host dtb and therefore accounted
by fdt_totalsize (the host dtb should have reserved regions described in /memory
and /reserved-memory. Are you trying to account for static shm regions?

> aggregates all reserved regions into a single reg property. With
> NR_MEM_BANKS (256) and 64-bit address/size cells, this property
> can grow up to 4KB (256 * 16), easily overflowing the allocated
> buffer.
> 
> Fix this by increasing DOM0_FDT_EXTRA_SIZE to account for
> the worst-case size: NR_MEM_BANKS * 16 bytes.
> 
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> ---
> Just to be clear, I have not seen a real-world issue with this.
> The issue was observed during testing of limit conditions.
> With this patch applied, Xen successfully boots the hardware domain,
> exposing 256 reserved memory regions to it (using a synthetically
> generated configuration).
> ---
> ---
>  xen/arch/arm/domain_build.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index e8795745dd..7f9f0f5510 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -100,9 +100,11 @@ int __init parse_arch_dom0_param(const char *s, const char *e)
>  /*
>   * Amount of extra space required to dom0's device tree.  No new nodes
This comment would want to be updated because since its introduction things have
changed. Even the 128 came up as a result of adding /hypervisor node.

>   * are added (yet) but one terminating reserve map entry (16 bytes) is
> - * added.
> + * added. Plus space for an extra memory node to cover all possible reserved
> + * memory regions (2 addr cells + 2 size cells).
>   */
> -#define DOM0_FDT_EXTRA_SIZE (128 + sizeof(struct fdt_reserve_entry))
> +#define DOM0_FDT_EXTRA_SIZE (128 + sizeof(struct fdt_reserve_entry) + \
> +    (NR_MEM_BANKS * 16))
>  
>  unsigned int __init dom0_max_vcpus(void)
>  {

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Mar 26 17:02:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 17:02:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264548.1556048 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5o67-0000U7-CV; Thu, 26 Mar 2026 17:02:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264548.1556048; Thu, 26 Mar 2026 17:02:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5o67-0000U0-8J; Thu, 26 Mar 2026 17:02:19 +0000
Received: by outflank-mailman (input) for mailman id 1264548;
 Thu, 26 Mar 2026 17:02:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w5o65-0000Tu-QJ
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 17:02:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5o64-001SS2-Ct
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 18:02:16 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c56694-e002-0a2a0a5209dd-0a2a4507cf04-16
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 18:02:16 +0100
Received: from [40.107.209.59]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c56696-fd74-0a2a45070019-286bd13b4f5a-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 18:02:15 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ0PR03MB5808.namprd03.prod.outlook.com (2603:10b6:a03:2dd::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.22; Thu, 26 Mar
 2026 17:02:12 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.022; Thu, 26 Mar 2026
 17:02:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rM5lhlE2ZfjZdgeN/EMjgV2XydkcfNAllbqJr3nzL7PKh4SNJTUJYAWlC5d2CvthqGYzYoL9PpEnufFjkWfd9FxmC2SVvTGrMtDwkLysE82x/Cy9uxa0tAS0yS3CxJGEQ5R5H3/Ux0I2lwAyOSZFLfCbfH9fInrTP/a97D42tunRZJDppn/y6WEIx7G06a9DU4LO1/h9O7V7shrC2IE6RMEXM5vg4i88/GfcJrmzd6w0Aomr8Q8bGLqVYfN1TZqQqNzTVdDFFCWc4ebKOARDf5vYl2J8BsehNkCXPg0nz3LG3nxZdjXpQ9Ps1jTKj6zwsqlysa0pLA6CHBi7GJMY8w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=p6VK0tBK1USArK7lw3mvrKEzA8NfUXcwx2mbQe36k8I=;
 b=OE52pfmYrDojVzhflKhjMbbFPcpBe7yul90s0yuOBy6QaqHgjx8prdgHHrrwzvalDrxGq0TYvTfqyt/VHTPz/kWEIKg1rb4M0ZTPyE20JbdINfykpn9QE1W+VPvty2NUbLuN0UhlSKjSL20s9btkoN7MiM0QwrF+UldvCGtnzjffnTbOzuS/IQqmdTKIIfUzmV8+SC/mFayWt4+7H3WSjhXU1HzjI3GCuGtnLLdi0rlPlnlwUfkiL2ETJYHiocNhAV5aa58pN3AvQvyyHR3OmzY4Pj8sFDtQq9uXA6NR1hIo9Kd9gy1BkYJnYzCVAUBu+Y0uWYUuwi9uwn8rpsDSXQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=p6VK0tBK1USArK7lw3mvrKEzA8NfUXcwx2mbQe36k8I=;
 b=Oe4/+o2ZJx/s+tw2TLlpqy+62elLn36KU9CT2c9V11IOd4M+BBl94SuH80pUindY2Li1ZxosQDW5UY5drkeFioAP33GpGBynA7VxHUl0DdFIIO1lD7GaWpkda7wMUG+tInXnmNUDrAwiCz6ixCdowhEQ393sxHXKAH4VKobSq1A=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 26 Mar 2026 18:02:07 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 1/4] xen/uart: be more careful with changes to the PCI
 command register
Message-ID: <acVmj-agJOAX9hGV@macbook.local>
References: <20260325145824.31601-1-roger.pau@citrix.com>
 <20260325145824.31601-2-roger.pau@citrix.com>
 <2a00a1d2-7017-4c76-8344-018eb3f30f50@suse.com>
 <acVNMQ_HqRpgkP7i@macbook.local>
 <b4b67bc1-c7e4-4872-a018-789d7e87dcb2@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <b4b67bc1-c7e4-4872-a018-789d7e87dcb2@suse.com>
X-ClientProxiedBy: MR1P264CA0181.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:58::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_|SJ0PR03MB5808:EE_
X-MS-Office365-Filtering-Correlation-Id: 5510df7f-fe61-4468-4d00-08de8b596b78
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	5SEaQ7aFOxTxP00pCHndLwAI8P+B+Pk3oko33yoISniSrO++QYLehisGQfrmzBhS5EN6a2GtCi0op+b2iuOK/p1RXXylhEcRWU5dYBekEhU49p8JEef+QAnZgVr3aCRYS+dvpZoce/ey9FxHxQN5v4WgkM18NGkT4Vu5rNDd1qX6MhnIDtRMlexvS30svrPg1iB3FComy+FiIl86k0h/P1vxcB3e1W7TC92mCngFWgxiNIp6o+25Q4phikomzxDKznzYxRumigEaSpkAPz57JjXaH7H1srpycx3eFt5PgUftNbJDLRJZrSb5WtB5P7+27HYEXcer0ns2Izq8Pi8AAariwe7Tl0giQp9kNH1qIHVze3zD7M7ac5WgKzqUHSanBXTk+ofJ/OiwS1MAEotVdI7RUxRKdq89Z5Ue5of0Inrc3PeOqgLsS0T3kq3DPnL6VTRb3Si+8N9S8+z204Db2TXBg3uYM8XvYMqWBx2ymvuy8y77WKOpFgBLdjNonREO5eo4DHatb7iudNKo/ly2BdhQZLeARRAdYP6kiKkyIfQtEWFHEQC9a6ZjZScW54fJ6xJaK7G2V46F0TYYG37VNSarhnkzhPHc0g6oQOBqjwtsWwAFV/9qIXjAXhqb9Qgtv9fUlLRqawnqUKih+ZRAZiijOAUZmL+OBHO3x5EWjYmyDMFhv9H6Pi0/jufBlYN5kX7In1xioxkWaxIxKgKkP0ROHQFKeQvBmQq/rM5b/RE=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?b2hOTXZubUkvNGFZVnZxNFk2ZDlXOTF0WmY3TzhCTjJPdEszek5MTWI1c3p3?=
 =?utf-8?B?N1pOZUpqTW9QalRTMVd5MlhPWVdiSjV0Qmc0UFZYWkV3N0FBZFZGZTBPL2R3?=
 =?utf-8?B?RkVBTm1ZUTFud0VsWW43aTdhZ3BVNHk0bUkrWG9YUElxbTBPSGRnUkNBc3JY?=
 =?utf-8?B?V3BhbGQ1OGNSem5HaXEvMGpwTjEyem45Tk50Q0k5NlJVd2w3WGtHenUwcDY5?=
 =?utf-8?B?WmNKVXFabkZkdUdXMVYyWVNuSHpPcDM1eVhLTnJwSGtLSE52c0NCdEg3VG1K?=
 =?utf-8?B?aVc1a2ZPamxrRmMycHVEeUEraytSNS8yVlRRaUVwK1NSM0QyQlhwZGlTUGhm?=
 =?utf-8?B?VSs0aHBYTDROTDZYRzREQlIwY1FOQVhXZ2NrbUd2VUg3QlAzNmUvTk1sSDlr?=
 =?utf-8?B?ckpxOFpSUEk4M1gzK0toelQvMlZhalBXb09JUk5sRWFFRVdkM1ptM0UvV0E2?=
 =?utf-8?B?bUdGbklBQzYzUXAxTzNxMGZCRzFkMWt1TXIvZElMSHZ3S1Q4U0lHWnBIMk5a?=
 =?utf-8?B?L085aDhKK3J2VmE1SWp4VzNhb0puQzRqZ1hVQkdZUlFCZjdhaFZhS29aL1pv?=
 =?utf-8?B?cXBuTlByemxWVHBWK3VXcGEzVERQbi9zM01tYWVnWE9HZTVzSWV4UHlEa1Ja?=
 =?utf-8?B?c0tQY0tKQ0FLaXIvTi8vSElzbXowS2FhMllJRmk0eHo5T0xVZUhFeDFZcEV2?=
 =?utf-8?B?SUFsR2lpdy93RjVyN2tUaWlkRVlVVkpWaXdKN1JSSWU0Q3p2eXlZUXRqWW5F?=
 =?utf-8?B?Yy9sU1FnaEVKV21lckZmM3RHOXRzTTdScnpQRXdQZjhObnA0ZFp5MWpxRFh6?=
 =?utf-8?B?eUZPdXA3Z25lcjFscDJMN000Vm5sVkQySFc3Z3dkYnhDNUhaMEM2NVYrVllv?=
 =?utf-8?B?dHFtNHQ5MXRvMzlrcmNtWFVnT2RmblAwbzdReWc1cVFXR3hRcVZXa1U4U25B?=
 =?utf-8?B?Y2JMK1lUZXdDdGl3QUpvaE1qN2VoT2J6NHlEcUxqYVAweFJ6Skd4VG8rMXkx?=
 =?utf-8?B?ZWZoSjREZnpkai9uN29YYmM0cWsrcFZ3UjIzTzU5Zlk1NU5ST2xDNUJZYitZ?=
 =?utf-8?B?dnpJNElFSlh2eUxiUkdPeGFmNG15L0VPQldCL3pVcWEwSTExeHBUOEpRSUk3?=
 =?utf-8?B?bzNPYkUrU2k2Z1NYV2RoNFF6WCs0d01UUStWU0UyRk93Ymt4MlRZTko3eU8y?=
 =?utf-8?B?bEJnT0VYblUwQnlKS3AxdFQvMXZOakRHeDR0UmFRR2UzNk9PM2NQQTJXNldV?=
 =?utf-8?B?TFRsZUZDaWlMTFgzdWUwUUFxMjJoK0I3RjFnSU1POGRtZkFmcjhvS2hQQ21a?=
 =?utf-8?B?eTR4MkRaclBxV1lDdmdWTWZiY3BJQlBYa0FyOWZyOGdVVHZXUk5hTENBUGRM?=
 =?utf-8?B?c0hLaS9uRjZKaGcyb1V1NGNXVXZ2cTF5czdWQXZXWHFvQmM2aXdoT2ZheDl4?=
 =?utf-8?B?ZlZiT0prdGprQU95cnVBR0UxaVJOekJHekl1dHFUejhXTTlvVFJNdjI3dC9v?=
 =?utf-8?B?cVVuemZkOWthSCtFeDlMc0NnZTJVeUdQeW11ZEUycXVGdHVkK3JHOUFDczNq?=
 =?utf-8?B?U1d3QUN0TksxQjhCYUIzSXBKVXdFN2Y1NmlWYjN5N1ZTSzF2WkZTMDNTc0h1?=
 =?utf-8?B?SWVaR1NxM0llRGhDdjVnWkVMMUdUa2c1cU0vQjZPZjVhdlJBL0Y5bDYyZkFE?=
 =?utf-8?B?akFla3k4TzdBTDVJYkhzSDQ5UjFvZEVmSEpjUVNTSTZVOS9JNE41cC9FZllP?=
 =?utf-8?B?dXRuUDNNYUJMMFJZMGFrZ3NwK3REd09palIvby83MmUrYkNranI5a1M0UXFi?=
 =?utf-8?B?QjVuUE1vQTlvYTdqL2t2K3ZzMUZDeWlqRE5RVjJyQkJCREhlODRRdzg2VnNt?=
 =?utf-8?B?Y3hTRUtDL0xSWkF6SDlpZTlPUUJNd0xybjdWZU56NVpXc2RzOUczZk1VdXB2?=
 =?utf-8?B?Uk1UaGNGZGZXMHhVSjU3SjFXb3B3Z3pIM3dJSzlGbmRzNEFGeGNRalBsb1RM?=
 =?utf-8?B?Q1M2QzJobk4xVk41OTZibFRIOENLekphR1Y4aGhlKzhEcTdIc01vYzR0bnZv?=
 =?utf-8?B?WHlaekZLQkN4VTF0QVpWNENkUFhWVVArL25IRGt4SFdlWGFUUVhDMHFxZzlF?=
 =?utf-8?B?U0hIT2pTcHFNU280SmNBcEduSnRmaXV1VUx5Vzk3bTFaVVRhSjgvOXJVbGNP?=
 =?utf-8?B?cUVLczZpeFI0SURyUG9zdGV4TjVERzlSVExqaVlKS0luMGh4UEN4aGxDODN0?=
 =?utf-8?B?ZmRhbzh0eU1iRWRxNUtmMkFoYWhWZkVQOWFKU0xYY05FQnVHZS9DOGJCelo4?=
 =?utf-8?B?YnJhMm5veHczOWt0ZG91V01TaUVub2QvR2JDMWp6NGhWMXRGNTVXUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5510df7f-fe61-4468-4d00-08de8b596b78
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 17:02:10.6844
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: vo6FTANfrofrab6VDwRwWAJeCiec/DDI3Q0tbHoLBNIKDeVvpigimaMLrtbFXhmtiXcIbBzdzgVcDBcg6TzvFA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5808
X-purgate-ID: tlsNG-ef75cf/1774544536-4E2B1303-2A0D6145/0/0
X-purgate-type: clean
X-purgate-size: 3901

On Thu, Mar 26, 2026 at 05:00:15PM +0100, Jan Beulich wrote:
> On 26.03.2026 16:13, Roger Pau Monné wrote:
> > On Thu, Mar 26, 2026 at 01:02:22PM +0100, Jan Beulich wrote:
> >> On 25.03.2026 15:58, Roger Pau Monne wrote:
> >>> Read the existing PCI command register and only add the required bits to
> >>> it, as to avoid clearing bits that might be possibly set by the firmware
> >>> already.
> >>>
> >>> This fixes serial output when booting with `com1=device=amt` on a system
> >>> using an "Alder Lake AMT SOL Redirection" PCI device (Vendor ID 0x8086 and
> >>> Device ID 0x51e3).  That device has both IO and memory decoding enabled by
> >>> the firmware, and disabling memory decoding causes the serial to stop
> >>> working (even when the serial register BAR is in the IO space).
> >>>
> >>> Fixes: f2ff5d6628b3 ("ns16550: enable PCI serial card usage")
> >>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> >>
> >> I'm not convinced Fixes: is appropriate here. There's nothing wrong with that
> >> commit, aiui. What's bogus is the device behavior.
> > 
> > Hm, I would argue that disabling command register bits for devices
> > that have those enabled is in general dangerous.  What about device
> > RMRR or similar residing in BARs, and Xen disabling memory decoding
> > unintentionally while attempting to enable IO decoding?
> 
> RMRRs in BARs seems unlikely (as BARs can be moved), but you have a
> point in general. Otoh devices are fully under our (later under Dom0's)
> control, so we may clear (or set) bits as we see fit to get a device
> to function. FTAOD, I'm not outright objecting to the tag, I'm merely
> questioning it some.
> 
> >>> --- a/xen/drivers/char/ns16550.c
> >>> +++ b/xen/drivers/char/ns16550.c
> >>> @@ -283,11 +283,17 @@ static int cf_check ns16550_getc(struct serial_port *port, char *pc)
> >>>  static void pci_serial_early_init(struct ns16550 *uart)
> >>>  {
> >>>  #ifdef NS16550_PCI
> >>> +    uint16_t cmd = 0;
> >>> +
> >>> +    if ( uart->ps_bdf_enable )
> >>> +        cmd = pci_conf_read16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
> >>> +                                       uart->ps_bdf[2]), PCI_COMMAND);
> >>
> >> Why is this conditional? While fine for the use at the bottom, ...
> > 
> > The comment next to the field states:
> > 
> >     bool ps_bdf_enable;     /* if =1, ps_bdf effective, port on pci card */
> > 
> > So it didn't seem like further checking was needed and that was the
> > sole filed to decide whether ps_bdf is populated or not.
> > 
> > However, I also found that when using device=amt|pci ps_bdf_enable
> > doesn't get set, and hence I'm not sure if that's intended or not.
> > Shouldn't ps_bdf_enable get set unconditionally when the serial device
> > is a PCI one?
> 
> I think this was deliberate, hence why ...
> 
> >>>      if ( uart->bar && uart->io_base >= 0x10000 )
> >>>      {
> >>>          pci_conf_write16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
> >>>                                    uart->ps_bdf[2]),
> >>> -                         PCI_COMMAND, PCI_COMMAND_MEMORY);
> >>> +                         PCI_COMMAND, cmd | PCI_COMMAND_MEMORY);
> >>>          return;
> >>>      }
> >>
> >> ... it looks wrong(ish) for this path. Actually, in ns16550_init_postirq()
> >> we use
> >>     if ( uart->bar || uart->ps_bdf_enable )
> 
> ... this conditional is now in use.

Right, but then the logic in pci_serial_early_init() doesn't apply to
those devices (device=amt|pci) when the BARs are in IO space?

As uart->ps_bdf_enable == false, and uart->io_base < 0x10000, it will
return early from the function without attempting to enable the IO
BAR.  Is this really expected?  It looks like Xen should always make
sure the respective BARs are enabled if the device is to be used for
serial output?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 17:19:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 17:19:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264585.1556055 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5oMF-0002qW-Q9; Thu, 26 Mar 2026 17:18:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264585.1556055; Thu, 26 Mar 2026 17: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 1w5oMF-0002qP-NS; Thu, 26 Mar 2026 17:18:59 +0000
Received: by outflank-mailman (input) for mailman id 1264585;
 Thu, 26 Mar 2026 17:18:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <demiobenour@gmail.com>) id 1w5oME-0002qJ-3e
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 17:18:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5oMD-001VAt-BV
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 18:18:57 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <demiobenour@gmail.com>)
 id 69c56a65-e002-0a2a0a5209dd-0a2a4507cf2c-46
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 18:18:57 +0100
Received: from [209.85.128.172] (helo=mail-yw1-f172.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <demiobenour@gmail.com>)
 id 69c56a80-fd74-0a2a45070019-d15580ace4be-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 18:18:57 +0100
Received: by mail-yw1-f172.google.com with SMTP id
 00721157ae682-7991db3dc98so13860787b3.0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 10:18:56 -0700 (PDT)
Received: from [10.138.34.110]
 (h69-131-148-49.cncrtn.broadband.dynamic.tds.net. [69.131.148.49])
 by smtp.gmail.com with ESMTPSA id
 00721157ae682-79b10c64964sm15704197b3.7.2026.03.26.10.18.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 10:18:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774545535; x=1775150335; 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=catgTR0xDAfngSvOjKkRc4V9EBNqPXIOGG/xwNaa+5g=;
        b=Na0f1QRUd0doJ2A4QZnRYkmOJQw00Gmr69O5vp4V9jEw1/uBd3Tj6bZfoWW7GR6b2f
         7h/sYaldVDCB9zxcz+n43EWv6AUYYwTkHbthquU/suNmP5jY7AaKJQjsaxWIUEJ+SeYE
         bXLTG1BP7wFjeVn2lIvRkefr9WthcnggtnpmIBJkSaRDUkO8KvtMLAfrN1IHcg9nfIyV
         2YX80Q3ltYRggOmg5HNSpD4ISpFP898t80k1rSAT3qoIj+qY1ZN1BDu6T/TTmW0QolqY
         oMmFJSIU9/EAvcqjlHo+s4O2dUAC40D2dlrJQiHHjF5XzDn+dHMw/3yaH4uQ5R+KKJGl
         L8iQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774545535; x=1775150335;
        h=in-reply-to:autocrypt:from:content-language:references:to:subject
         :user-agent:mime-version:date:message-id:x-gm-gg:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=catgTR0xDAfngSvOjKkRc4V9EBNqPXIOGG/xwNaa+5g=;
        b=fmqeFwWaI0KKb8Sk18gITAS8LkRxD4+86M4rvxkunV7ivyjXZ/SeNBXU0mI4bWiTRf
         q+ml8pKgtjsi3N22WPvmm2bLy9+XoafbBtm7NmCaknO6Pgp4dQ0EtCyGGxCZ3l8fIz1T
         IG1cjpTrMDuASMDR6xG9XvH8GmOKebAAAk4Wsothd7Tng36a80Zq7vEtCO7/WvzNYDRK
         W/eTzXAFBy+Ha+s3E06ftA0q4/iug0lyHuKmrM78oXilmZhNfmWkrZjXt7VYoEQKpLsx
         vv/dEC6irts5GRLRMT6M7VrG2Yw1nQoKqi7g/wborugM2ycN1Il8oB8ywZ9xlOrVpxX/
         AyJQ==
X-Forwarded-Encrypted: i=1; AJvYcCXzj4380yRlhAaVB7JYCwmciYEMT/2JkO4CASxcnw0IYbznm8d3H6tTrBn4xwsSXnkEfi+Bap0V5gk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzSLAZDeeBUkXaDhFiMMtm2Oyf7ll+LMe2bSynctM1sGgp8E4SZ
	PVmzq3JRZ36a+ymSR3RrYTWkkLzE91JFwfhayBqgH9QUvHUfeaovG8K4
X-Gm-Gg: ATEYQzyAhAkbp9nzqUUSp9Qmngr0QYv+O5+ChGljqb1JE5tVX9priUnLeffvQfSQPtU
	GVHWllCpDmFSgjBxAp05d6Pt7RYpyAO0AsDsk5qdl7XSwVheFhixQzkvbhgPrAWWaqYyEq8sGU8
	eHM5kHPhjlqpRN0uiIiKnx8rH6q7GuYF1Qh8jYnUR6rW/AGB7EHcRINVJvuQeMnhcRJ+qk1D4Tv
	OoPnrfwaLO4bKVXQluF6YgO+YfxU7v1TUklbHcn4U7Q+CA7omZu6A/2goTprgE0ig7jZvkHvQ/Y
	nWs2JD3/44EUmJX+Ke8Ntj03SUuSdHt8OG168WGgzSGSoT9CY8ON4I24rX1X2YzhmGEic62InAe
	th2TduBbQzMyHnsjOdefszUM4M713EKM6R+q2cFh9U6RCyN6hy6iLaIGVXhx3f7QnvGpLLHKisK
	tpsC2pZPi/RcHpMm+OU5azRc1eE3troFWVJAyVPAfYpmFJniorVQvM8AKL+1SupYemodyVfYfB9
	MipOw7WyHb7ILa+hlHiK3fkJmByqKYmTkj213s=
X-Received: by 2002:a05:690c:c4e9:b0:79a:cdf0:e27e with SMTP id 00721157ae682-79acf3bdd43mr86695287b3.21.1774545535057;
        Thu, 26 Mar 2026 10:18:55 -0700 (PDT)
Message-ID: <4f201188-31ac-4dac-9cc6-79c4283486e5@gmail.com>
Date: Thu, 26 Mar 2026 13:18:39 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Mapping non-pinned memory from one Xen domain into another
To: Teddy Astie <teddy.astie@vates.tech>,
 Xen developer discussion <xen-devel@lists.xenproject.org>,
 dri-devel@lists.freedesktop.org, linux-mm@kvack.org,
 Jan Beulich <jbeulich@suse.com>, Val Packett <val@invisiblethingslab.com>,
 Ariadne Conill <ariadne@ariadne.space>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Juergen Gross <jgross@suse.com>
References: <84462c4b-7813-4ad1-aeb2-862ae4f3a627@gmail.com>
 <5123c11c-3b8a-4633-809f-16c24418a4ce@vates.tech>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <5123c11c-3b8a-4633-809f-16c24418a4ce@vates.tech>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------q4eFoExnaRHx7KlXZl2RC647"
X-purgate-ID: tlsNG-ef75cf/1774545537-5C78C303-381C810E/0/0
X-purgate-type: clean
X-purgate-size: 29028

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------q4eFoExnaRHx7KlXZl2RC647
Content-Type: multipart/mixed; boundary="------------Mw057gSCTShl0mrhaYEBlqTI";
 protected-headers="v1"
Message-ID: <4f201188-31ac-4dac-9cc6-79c4283486e5@gmail.com>
Date: Thu, 26 Mar 2026 13:18:39 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Mapping non-pinned memory from one Xen domain into another
To: Teddy Astie <teddy.astie@vates.tech>,
 Xen developer discussion <xen-devel@lists.xenproject.org>,
 dri-devel@lists.freedesktop.org, linux-mm@kvack.org,
 Jan Beulich <jbeulich@suse.com>, Val Packett <val@invisiblethingslab.com>,
 Ariadne Conill <ariadne@ariadne.space>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Juergen Gross <jgross@suse.com>
References: <84462c4b-7813-4ad1-aeb2-862ae4f3a627@gmail.com>
 <5123c11c-3b8a-4633-809f-16c24418a4ce@vates.tech>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <5123c11c-3b8a-4633-809f-16c24418a4ce@vates.tech>
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==

--------------Mw057gSCTShl0mrhaYEBlqTI
Content-Type: multipart/mixed; boundary="------------raEGs0y239z4seO7DQS7CzhM"

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

On 3/24/26 14:00, Teddy Astie wrote:
> Hello,
>=20
> I assume all this only concerns HVM/PVH DomU, I don't think it is doabl=
e=20
> for PV DomU (if that matters).
>=20
> Le 24/03/2026 =C3=A0 15:17, Demi Marie Obenour a =C3=A9crit=C2=A0:
>> Here is a proposed design document for supporting mapping GPU VRAM
>> and/or file-backed memory into other domains.  It's not in the form of=

>> a patch because the leading + characters would just make it harder to
>> read for no particular gain, and because this is still RFC right now.
>> Once it is ready to merge, I'll send a proper patch.  Nevertheless,
>> you can consider this to be
>>
>> Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
>>
>> This approach is very different from the "frontend-allocates"
>> approach used elsewhere in Xen.  It is very much Linux-centric,
>> rather than Xen-centric.  In fact, MMU notifiers were invented for
>> KVM, and this approach is exactly the same as the one KVM implements.
>> However, to the best of my understanding, the design described here is=

>> the only viable one.  Linux MM and GPU drivers require it, and changes=

>> to either to relax this requirement will not be accepted upstream.
>> ---
>> # Memory lending: Mapping pageable memory, such as GPU VRAM, from one =
Xen domain into another
>>
>> ## Background
>>
>> Some Linux kernel subsystems require full control over certain memory
>> regions.  This includes the ability to handle page faults from any
>> entity accessing this memory.  Such entities include not only that
>> kernel's userspace, but also kernels belonging to other guests.
>>
>> For instance, GPU drivers reserve the right to migrate data between
>> VRAM and system RAM at any time.  Furthermore, there is a set of
>> page tables between the "aperture" (mapped as a PCI BAR) and the
>> actual VRAM.  This means that the GPU driver can make the memory
>> temporarily inaccessible to the CPU.  This is in fact _required_
>> when resizable BAR is not supported, as otherwise there is too much
>> VRAM to expose it all via a single BAR.
>>
>> Since the backing storage of this memory must be movable, pinning
>> it is not supported.  However, the existing grant table interface
>> requires pinned memory.  Therefore, such memory currently cannot be
>> shared with another guest.  As a result, implementing virtio-GPU blob
>> objects is not possible.  Since blob objects are a prerequisite for
>> both Venus and native contexts, supporting Vulkan via virtio-GPU on
>> Xen is also impossible.
>>
>=20
> I'm not sure Vulkan fully allow memory to be moved between RAM and VRAM=
=2E=20
> Or at least, you would need to lie a bit on the=20
> VK_MEMORY_HEAP_DEVICE_LOCAL_BIT property.
>=20
> So I assume there is a way to choose between having memory as VRAM or a=
s=20
> RAM somehow, unless it is only a hint ?

On Linux, it is indeed only a hint.  If VRAM is exhausted, Linux
will move buffers to system RAM to free up space.  This significantly
benefits desktop workloads, which have a lot of GPU buffers that are
not used frequently.  Games are an exception, but I suspect they use
their buffers frequently enough that Linux doesn't decide to page
them out.

>> Direct Access to Differentiated Memory (DAX) also relies on non-pinned=

>> memory.  In the (now rare) case of persistent memory, it is because
>> the filesystem may need to move data blocks around on disk.  In the
>> case of virtio-pmem and virtio-fs, it is because page faults on write
>> operations are used to inform filesystems that they need to write the
>> data back at some point.  Without these page faults, filesystems will
>> not write back the data and silent data loss will result.
>>
>> There are other use-cases for this too.  For instance, virtio-GPU
>> cross-domain Wayland exposes host shared memory buffers to the guest.
>> These buffers are mmap()'d file descriptors provided by the Wayland
>> compositor, and as such are not guaranteed to be anonymous memory.
>> Using grant tables for such mappings would conflict with the design
>> of existing virtio-GPU implementations, which assume that GPU VRAM
>> and shared memory can be handled uniformly.
>>
>> Additionally, this is needed to support paging guest memory out to the=

>> host's disks.  While this is significantly less efficient than using
>> an in-guest balloon driver, it has the advantage of not requiring
>> guest cooperation.  Therefore, it can be useful for situations in
>> which the performance of a guest is irrelevant, but where saving the
>> guest isn't appropriate.
>>
>> ## Informing drivers that they must stop using memory: MMU notifiers
>>
>> Kernel drivers, such as xen_privcmd, in the same domain that has
>> the GPU (the "host") may map GPU memory buffers.  However, they must
>> register an *MMU notifier*.  This is a callback that Linux core memory=

>> management code ("MM") uses to tell the driver that it must stop
>> all accesses to the memory.  Once the memory is no longer accessed,
>> Linux assumes it can do whatever it wants with this memory:
>>
>> - The GPU driver can move it from VRAM to system RAM or visa versa,
>>   move it within VRAM or system RAM, or it temporarily inaccessible
>>   so that other VRAM can be accessed.
>> - MM can swap the page out to disk/zram/etc.
>> - MM can move the page in system RAM to create huge pages.
>> - MM can write the pages out to their backing files and then free them=
=2E
>> - Anything else in Linux can do whatever it wants with the memory.
>>
>> Suspending access to memory is not allowed to block indefinitely.
>> It can sleep, but it must finish in finite time regardless of what
>> userspace (or other VMs) do.  Otherwise, bad things (which I believe
>> includes deadlocks) may result.  I believe it can fail temporarily,
>> but permanent failure is also not allowed.  Once the MMU notifier
>> has succeeded, userspace or other domains **must not be allowed to
>> access the memory**.  This would be an exploitable use-after-free
>> vulnerability.
>>
>> Due to these requirements, MMU notifier callbacks must not require
>> cooperation from other guests.  This means that they are not allowed t=
o
>> wait for memory that has been granted to another guest to no longer
>> be mapped by that guest.  Therefore, MMU notifiers and the use of
>> grant tables are inherently incompatible.
>=20
>=20
>>
>> ## Memory lending: A different approach
>>
>> Instead, xen_privcmd must use a different hypercall to _lend_ memory t=
o
>> another domain (the "guest").  When MM triggers the guest MMU notifier=
,
>> xen_privcmd _tells_ Xen (via hypercall) to revoke the guest's access
>> to the memory.  This hypercall _must succeed in bounded time_ even
>> if the guest is malicious.
>>
>> Since the other guests are not aware this has happened, they will
>> continue to access the memory.  This will cause p2m faults, which
>> trap to Xen.  Xen normally kills the guest in this situation which is
>> obviously not desired behavior.  Instead, Xen must pause the guest
>> and inform the host's kernel.  xen_privcmd will have registered a
>> handler for such events, so it will be informed when this happens.
>>
>> When xen_privcmd is told that a guest wants to access the revoked
>> page, it will ask core MM to make the page available.  Once the page
>> _is_ available, core MM will inform xen_privcmd, which will in turn
>> provide a page to Xen that will be mapped into the guest's stage 2
>> translation tables.  This page will generally be different than the
>> one that was originally lent.
>>
>> Requesting a new page can fail.  This is usually due to rare errors,
>> such as a GPU being hot-unplugged or an I/O error faulting pages
>> from disk.  In these cases, the old content of the page is lost.
>>
>> When this happens, xen_privcmd can do one of two things:
>>
>> 1. It can provide a page that is filled with zeros.
>> 2. It can tell Xen that it is unable to fulfill the request.
>>
>> Which choice it makes is under userspace control.  If userspace
>> chooses the second option, Xen injects a fault into the guest.
>> It is up to the guest to handle the fault correctly.
>>
> Is it some ioreq-like mechanism where :
> - A guest access a "non-ready" page
> - Nothing there -> pagefault (e.g NPF) and guest vCPU is blocked
> - Xen asks Dom0 what to do (event channel, VIRQ, ...)
> - Dom0 explicitly maps memory to the guest (or do any other operation)
> - Guest resumes execution with the page mapped

This is exactly it!

> Something that looks a bit similar to "memory paging".

It *is* memory paging :).  I named it differently for two reasons:

1. I didn't want this to be confused with the existing memory paging
   mechanism in Xen.

2. I wanted to emphasize that lent memory is still "owned" by the
   lending domain.
  =20
>> ## Restrictions on lent memory>>
>> Lent memory is still considered to belong to the lending domain.
>> The borrowing domain can only access it via its p2m.  Hypercalls made
>> by the borrowing domain act as if the borrowed memory was not present.=

>> This includes, but is not limited to:
>>
>> - Using pointers to borrowed memory in hypercall arguments.
>> - Granting borrowed memory to other VMs.
>> - Any other operation that depends on whether a page is accessible
>>    by a domain.
>=20
> What about emulated instructions that refers to this memory ?

This would be allowed if (and only if) it can trigger paging as you
wrote above.

>> Furthermore:
>>
>> - Borrowed memory isn't mapped into the IOMMU of any PCIe devices
>>    the guest has attached, because IOTLB faults generally are not
>>    replayable.
>>
>=20
> Given that (as written bellow) Borrowed memory is a part of some form o=
f=20
> emulated BAR or special region, there is no guarantee that DMA will wor=
k=20
> properly anyway (unless P2P DMA support is advertised).
>=20
> Splitting the IOMMU side from the P2M is not a good idea as it rules ou=
t=20
> the "IOMMU HAP PT Share" optimization.

If the pages are mapped in the IOMMU, paging them out requires an
IOTLB invalidation.  My understanding is that these are far too slow.

How important is sharing the HAP and IOMMU page tables?

>> - Foreign mapping hypercalls that reference lent memory will fail.
>>    Otherwise, the domain making the foreign mapping hypercall could
>>    continue to access the borrowed memory after the lease had been
>>    revoked.  This is true even if the domain performing the foreign
>>    mapping is an all-powerful dom0.  Otherwise, an emulated device
>>    could access memory whose lease had been revoked.
>>
>> This also means that live migration of a domain that has borrowed
>> memory requires cooperation from the lending domain.  For now, it
>> will be considered out of scope.  Live migration is typically used
>> with server workloads, and accelerators for server hardware often
>> support SR-IOV.
>>
>> ## Where will lent memory appear in a guest's address space?
>>
>> Typically, lent memory will be an emulated PCI BAR.  It may be emulate=
d
>> by dom0 or an alternate ioreq server.  However, it is not *required*
>> to be a PCI BAR.
>>
>=20
> ---
>=20
> While the design could work (albeit the implied complexity), I'm not a =

> big fan of it, or at least, it needs to consider some constraints for=20
> having reasonable performance.
> One of the big issue is that a performance-sensitive system (virtualize=
d=20
> GPU) is interlocking with several "hard to optimize" subsystem like P2M=
=20
> or Dom0 having to process a paging event.
>=20
> Modifying the P2M (especially removing entries) is a fairly expensive=20
> operation as it sometimes requires pausing all the vCPUs each time it's=
=20
> done.

Not every GPU supports recoverable page faults.  Even when they
are supported, they are extremely expensive.  Each of them involves
a round-trip from the GPU to the CPU and back, which means that a
potentially very large number of GPU cores are blocked until the
CPU can respond.  Therefore, GPU driver developers avoid relying on
GPU page faults whenever possible.  Instead, data is moved in large
chunks using a dedicated DMA engine in the GPU.
As a result, I'm not too concerned with the cost of P2M manipulation.
Anything that requires making a GPU buffer temporarily inaccessible
is already an expensive process, and driver developers have strong
incentives to keep the time the buffer is unmapped as short as
possible.
If performance turns out to be a problem, something like KVM's
asynchronous page faults might be a better solution.

> If it's done at 4k granularity, it would also lack superpage support,=20
> which wouldn't help either. (doing things at the 2M+ scale would help, =

> but I don't know enough how MMU notifier does things.
>=20
> While I agree that grants is not a adequate mechanism for this (for=20
> multiples reasons), I'm not fully convinced of the proposal.
> I would prefer a strategy where we map a fixed amount of RAM+VRAM as a =

> blob, along with some form of cooperative hotplug mechanism to=20
> dynamically provision the amount.

I asked the GPU driver developers about pinning VRAM like this a couple
years ago or so.  The response I got was that it isn't supported.
I suspect that anyone needing VRAM pinning for graphics workloads is
using non-upstreamable hacks, most likely specific to a single driver.

More generally, the entire graphics stack receives essentially no
testing under Xen.  There have been bugs that have affected Qubes OS
users for months or more, and they went unfixed because they couldn't
be reproduced outside of Xen.  To the upstream graphics developers,
Xen might as well not exist.  This means that any solution that
requires changing the graphics stack is not a practical option,
and I do not expect this to change in the foreseeable future.
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)

--------------raEGs0y239z4seO7DQS7CzhM
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-----

--------------raEGs0y239z4seO7DQS7CzhM--

--------------Mw057gSCTShl0mrhaYEBlqTI--

--------------q4eFoExnaRHx7KlXZl2RC647
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/sszaHOrMp8lMFAmnFankACgkQszaHOrMp
8lMXhBAAmdOPhh8pYd8FNNgBBAJD5qFbwWHlA135Biww8R38taFSJ2v1RjBR0Xdj
mkkb9g/UmviJmVuEdi67a2qetWfOw0SpqHOnWjFPD18PAIqDH8u2mGgdNuVLmFbM
9c52ZvhmpbTLJJcQWAYroL/8F2A39220TKne4qI6pKElJsZtTTIjt1P+XD7fJx0B
Av8kGtZo/rRTKl03a8Dm/EiQuUiHsETFfluHniNq2/nSzvPRVp4wBSnhuqrjrHKO
n6m841Ze2QiSydMDLSOsGnM2kCfEwEiKbRK6K3Shn+1tYNGvUFRuSuTEGCF3d9LQ
h0QvpCwNSbRDmXBWw4Dpal3YWOzYnLGCw/sDT05Rvz+IT5Q1DRz3WzH42SwHj4zh
8aD6pveGaM93EGDCLQHiCa1+UIC+f71NdFTTXjbqmcTx3SVK89bCCbDNjk+dOtcM
mjuQiB801NsKooEQkzxLW1Mtl3jSinsxsXYb1eWynBHzSkR+DsjAM6t13tSY4K3y
GHJZWIR90YkR/pMJ4/3jkkjmtYFGWvK+BhcV1PmjtuIRmlVuPpnZVplk1j+xT5B9
Y0qJVQz3Ozl76ycE90QjuwAOI4aGkQAyBbh+8xq4pWZ0+n7GUhHBMIIX2TCN4pSk
BQB3ecfitOsy0cypWZvQyRzm+6G36gy3CS/TlGN+coEky1SfH8w=
=WsJg
-----END PGP SIGNATURE-----

--------------q4eFoExnaRHx7KlXZl2RC647--


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 17:39:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 17:39:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264610.1556066 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5ofR-00069X-GC; Thu, 26 Mar 2026 17:38:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264610.1556066; Thu, 26 Mar 2026 17:38:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5ofR-00069Q-CO; Thu, 26 Mar 2026 17:38:49 +0000
Received: by outflank-mailman (input) for mailman id 1264610;
 Thu, 26 Mar 2026 17:38:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dakr@kernel.org>) id 1w5ofQ-00069K-Hb
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 17:38:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5ofP-003rHA-QL
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 18:38:47 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dakr@kernel.org>)
 id 69c56f0c-5cb7-0a2a0a5109dd-0a2a4501b8fe-20
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 18:38:47 +0100
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <dakr@kernel.org>)
 id 69c56f26-6400-0a2a45010019-ac6904fe9d8c-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 18:38:47 +0100
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 2F2DE6011F;
 Thu, 26 Mar 2026 17:38:46 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 64CF3C116C6;
 Thu, 26 Mar 2026 17:38:37 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:Cc:To:From:Subject:References:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774546725;
	bh=hAAiF8xSgL3z4E5G5/XmRxGLgvCy/D0+zQfYgHI39gw=;
	h=Date:Cc:To:From:Subject:References:In-Reply-To:From;
	b=ArEAbT+s3n7x1zNm2qUyfultheclQsMn7Cylk1mxfVokFRrNp3WpcDfI8mmayZ+0h
	 m2cGLs0n6Sh6ZCu8EvHXqLDxmAX8LMqlZoRnQEfHReuoiYU3xPG1brRn0xv/B7nG91
	 dfctDdAzWRRIBz5wDeTdWGKHbyzznewMhiup0tTEhLqFpUABWkXccnP5fkKD1V8bqG
	 AQrp8yU+1knEeWB4pCRAjqoVJNKbnXs/r4tup9fByZXD5EgZfswwbwv0q7Wo741gye
	 MvHPzW2Tb0nrON4/+fHRtWe9N46CjKkZ5ux8WM6YRAe6n1JfA4kFbYnKDRvMa6t1Pa
	 3vRMCPXPpyakA==
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Thu, 26 Mar 2026 18:38:35 +0100
Message-Id: <DHCWB6YQ7B8E.1I9WCHXJ6FBPH@kernel.org>
Cc: "Russell King" <linux@armlinux.org.uk>, "Greg Kroah-Hartman"
 <gregkh@linuxfoundation.org>, "Rafael J. Wysocki" <rafael@kernel.org>,
 "Ioana Ciornei" <ioana.ciornei@nxp.com>, "Nipun Gupta"
 <nipun.gupta@amd.com>, "Nikhil Agarwal" <nikhil.agarwal@amd.com>, "K. Y.
 Srinivasan" <kys@microsoft.com>, "Haiyang Zhang" <haiyangz@microsoft.com>,
 "Wei Liu" <wei.liu@kernel.org>, "Dexuan Cui" <decui@microsoft.com>, "Long
 Li" <longli@microsoft.com>, "Bjorn Helgaas" <bhelgaas@google.com>, "Armin
 Wolf" <W_Armin@gmx.de>, "Bjorn Andersson" <andersson@kernel.org>, "Mathieu
 Poirier" <mathieu.poirier@linaro.org>, "Vineeth Vijayan"
 <vneethv@linux.ibm.com>, "Peter Oberparleiter" <oberpar@linux.ibm.com>,
 "Heiko Carstens" <hca@linux.ibm.com>, "Vasily Gorbik" <gor@linux.ibm.com>,
 "Alexander Gordeev" <agordeev@linux.ibm.com>, "Christian Borntraeger"
 <borntraeger@linux.ibm.com>, "Sven Schnelle" <svens@linux.ibm.com>, "Harald
 Freudenberger" <freude@linux.ibm.com>, "Holger Dengler"
 <dengler@linux.ibm.com>, "Mark Brown" <broonie@kernel.org>, "Jason Wang"
 <jasowang@redhat.com>, "Xuan Zhuo" <xuanzhuo@linux.alibaba.com>,
 =?utf-8?q?Eugenio_P=C3=A9rez?= <eperezma@redhat.com>, "Alex Williamson"
 <alex@shazbot.org>, "Juergen Gross" <jgross@suse.com>, "Stefano Stabellini"
 <sstabellini@kernel.org>, "Oleksandr Tyshchenko"
 <oleksandr_tyshchenko@epam.com>, "Christophe Leroy (CS GROUP)"
 <chleroy@kernel.org>, <linux-kernel@vger.kernel.org>,
 <driver-core@lists.linux.dev>, <linuxppc-dev@lists.ozlabs.org>,
 <linux-hyperv@vger.kernel.org>, <linux-pci@vger.kernel.org>,
 <platform-driver-x86@vger.kernel.org>, <linux-arm-msm@vger.kernel.org>,
 <linux-remoteproc@vger.kernel.org>, <linux-s390@vger.kernel.org>,
 <linux-spi@vger.kernel.org>, <virtualization@lists.linux.dev>,
 <kvm@vger.kernel.org>, <xen-devel@lists.xenproject.org>,
 <linux-arm-kernel@lists.infradead.org>
To: "Michael S. Tsirkin" <mst@redhat.com>
From: "Danilo Krummrich" <dakr@kernel.org>
Subject: Re: [PATCH 00/12] treewide: Convert buses to use generic
 driver_override
References: <20260324005919.2408620-1-dakr@kernel.org>
 <20260325052919-mutt-send-email-mst@kernel.org>
In-Reply-To: <20260325052919-mutt-send-email-mst@kernel.org>
X-purgate-ID: tlsNG-d62444/1774546727-234EFDF3-AADA0091/0/0
X-purgate-type: clean
X-purgate-size: 278

On Wed Mar 25, 2026 at 10:29 AM CET, Michael S. Tsirkin wrote:
> vdpa bits:
>
> Acked-by: Michael S. Tsirkin <mst@redhat.com>
>
> I assume it'll all be merged together?

I can take it through the driver-core tree if you prefer, but you can also =
pick
it up yourself.


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 18:08:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 18:08:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264643.1556074 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5p8B-0002OM-M4; Thu, 26 Mar 2026 18:08:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264643.1556074; Thu, 26 Mar 2026 18: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 1w5p8B-0002OF-JB; Thu, 26 Mar 2026 18:08:31 +0000
Received: by outflank-mailman (input) for mailman id 1264643;
 Thu, 26 Mar 2026 18:08:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <helgaas@kernel.org>) id 1w5p8A-0002O9-Di
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 18:08:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5p89-005UDX-Pq
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 19:08:29 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <helgaas@kernel.org>)
 id 69c57600-bab6-0a2a0a5309dd-0a2a450b9052-46
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 19:08:29 +0100
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <helgaas@kernel.org>)
 id 69c5761c-ef63-0a2a450b0019-aceafc1fbf2a-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 19:08:29 +0100
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 34FE9439AF;
 Thu, 26 Mar 2026 18:08:27 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E1DE6C116C6;
 Thu, 26 Mar 2026 18:08:26 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:To:Cc:Subject:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774548507;
	bh=0X1DCc+9Eo0RuIwrj7oY6TUZUNFxGIFKgMRZYFFzcYo=;
	h=Date:From:To:Cc:Subject:In-Reply-To:From;
	b=NM6w98Z1qWs2v5XGqBHmCWm6JxAhr8BMb8fUamV5wL+wE7MKHdSXLxwSME5ezhUbH
	 VOyIPsSXzcgwwfMsCgAvfntHYvRMCI5McoXeBkzm7PxpPr6CtwJ2j/g/tXcwFVa4Wo
	 mfwgQnoNGj3+Q2qe/VwxwVJGO8tkG/hoHlV41bfq7nPm+ifUdXZJTQQCfLoSTGkKKZ
	 GO/exOJI1I8y/8270z+FNS+HBZvuGqcXZFp+0eaxpOWl3481O7GW2mWATZewkwIy7q
	 K/JDPU1QB11yIcAtsgX6nNiKmDxqpi1JcRBv8ZiWu3lRldZ84kirC/fAvXlie0d9kJ
	 aLY5/Yv6bcogQ==
Date: Thu, 26 Mar 2026 13:08:25 -0500
From: Bjorn Helgaas <helgaas@kernel.org>
To: Danilo Krummrich <dakr@kernel.org>
Cc: Russell King <linux@armlinux.org.uk>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Ioana Ciornei <ioana.ciornei@nxp.com>,
	Nipun Gupta <nipun.gupta@amd.com>,
	Nikhil Agarwal <nikhil.agarwal@amd.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>, Bjorn Helgaas <bhelgaas@google.com>,
	Armin Wolf <W_Armin@gmx.de>, Bjorn Andersson <andersson@kernel.org>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	Vineeth Vijayan <vneethv@linux.ibm.com>,
	Peter Oberparleiter <oberpar@linux.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Harald Freudenberger <freude@linux.ibm.com>,
	Holger Dengler <dengler@linux.ibm.com>,
	Mark Brown <broonie@kernel.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	Eugenio =?utf-8?B?UMOpcmV6?= <eperezma@redhat.com>,
	Alex Williamson <alex@shazbot.org>, Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>,
	linux-kernel@vger.kernel.org, driver-core@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org, linux-hyperv@vger.kernel.org,
	linux-pci@vger.kernel.org, platform-driver-x86@vger.kernel.org,
	linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-spi@vger.kernel.org,
	virtualization@lists.linux.dev, kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	linux-arm-kernel@lists.infradead.org,
	Gui-Dong Han <hanguidong02@gmail.com>
Subject: Re: [PATCH 05/12] PCI: use generic driver_override infrastructure
Message-ID: <20260326180825.GA1330769@bhelgaas>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260324005919.2408620-6-dakr@kernel.org>
X-purgate-ID: tlsNG-42698a/1774548509-A000B112-24DD8271/0/0
X-purgate-type: clean
X-purgate-size: 7864

On Tue, Mar 24, 2026 at 01:59:09AM +0100, Danilo Krummrich wrote:
> When a driver is probed through __driver_attach(), the bus' match()
> callback is called without the device lock held, thus accessing the
> driver_override field without a lock, which can cause a UAF.
> 
> Fix this by using the driver-core driver_override infrastructure taking
> care of proper locking internally.
> 
> Note that calling match() from __driver_attach() without the device lock
> held is intentional. [1]
> 
> Link: https://lore.kernel.org/driver-core/DGRGTIRHA62X.3RY09D9SOK77P@kernel.org/ [1]
> Reported-by: Gui-Dong Han <hanguidong02@gmail.com>
> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220789
> Fixes: 782a985d7af2 ("PCI: Introduce new device binding path using pci_dev.driver_override")
> Signed-off-by: Danilo Krummrich <dakr@kernel.org>
> ---
>  drivers/pci/pci-driver.c           | 11 +++++++----
>  drivers/pci/pci-sysfs.c            | 28 ----------------------------
>  drivers/pci/probe.c                |  1 -
>  include/linux/pci.h                |  6 ------

For the above:

Acked-by: Bjorn Helgaas <bhelgaas@google.com>

"driver_override" is mentioned several places in
Documentation/ABI/testing/sysfs-bus-*.  I assume this series doesn't
change the behavior documented there?  Should any of this doc be
consolidated?

>  drivers/vfio/pci/vfio_pci_core.c   |  5 ++---
>  drivers/xen/xen-pciback/pci_stub.c |  6 ++++--
>  6 files changed, 13 insertions(+), 44 deletions(-)
> 
> diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
> index dd9075403987..d10ece0889f0 100644
> --- a/drivers/pci/pci-driver.c
> +++ b/drivers/pci/pci-driver.c
> @@ -138,9 +138,11 @@ static const struct pci_device_id *pci_match_device(struct pci_driver *drv,
>  {
>  	struct pci_dynid *dynid;
>  	const struct pci_device_id *found_id = NULL, *ids;
> +	int ret;
>  
>  	/* When driver_override is set, only bind to the matching driver */
> -	if (dev->driver_override && strcmp(dev->driver_override, drv->name))
> +	ret = device_match_driver_override(&dev->dev, &drv->driver);
> +	if (ret == 0)
>  		return NULL;
>  
>  	/* Look at the dynamic ids first, before the static ones */
> @@ -164,7 +166,7 @@ static const struct pci_device_id *pci_match_device(struct pci_driver *drv,
>  		 * matching.
>  		 */
>  		if (found_id->override_only) {
> -			if (dev->driver_override)
> +			if (ret > 0)
>  				return found_id;
>  		} else {
>  			return found_id;
> @@ -172,7 +174,7 @@ static const struct pci_device_id *pci_match_device(struct pci_driver *drv,
>  	}
>  
>  	/* driver_override will always match, send a dummy id */
> -	if (dev->driver_override)
> +	if (ret > 0)
>  		return &pci_device_id_any;
>  	return NULL;
>  }
> @@ -452,7 +454,7 @@ static int __pci_device_probe(struct pci_driver *drv, struct pci_dev *pci_dev)
>  static inline bool pci_device_can_probe(struct pci_dev *pdev)
>  {
>  	return (!pdev->is_virtfn || pdev->physfn->sriov->drivers_autoprobe ||
> -		pdev->driver_override);
> +		device_has_driver_override(&pdev->dev));
>  }
>  #else
>  static inline bool pci_device_can_probe(struct pci_dev *pdev)
> @@ -1722,6 +1724,7 @@ static const struct cpumask *pci_device_irq_get_affinity(struct device *dev,
>  
>  const struct bus_type pci_bus_type = {
>  	.name		= "pci",
> +	.driver_override = true,
>  	.match		= pci_bus_match,
>  	.uevent		= pci_uevent,
>  	.probe		= pci_device_probe,
> diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
> index 16eaaf749ba9..a9006cf4e9c8 100644
> --- a/drivers/pci/pci-sysfs.c
> +++ b/drivers/pci/pci-sysfs.c
> @@ -615,33 +615,6 @@ static ssize_t devspec_show(struct device *dev,
>  static DEVICE_ATTR_RO(devspec);
>  #endif
>  
> -static ssize_t driver_override_store(struct device *dev,
> -				     struct device_attribute *attr,
> -				     const char *buf, size_t count)
> -{
> -	struct pci_dev *pdev = to_pci_dev(dev);
> -	int ret;
> -
> -	ret = driver_set_override(dev, &pdev->driver_override, buf, count);
> -	if (ret)
> -		return ret;
> -
> -	return count;
> -}
> -
> -static ssize_t driver_override_show(struct device *dev,
> -				    struct device_attribute *attr, char *buf)
> -{
> -	struct pci_dev *pdev = to_pci_dev(dev);
> -	ssize_t len;
> -
> -	device_lock(dev);
> -	len = sysfs_emit(buf, "%s\n", pdev->driver_override);
> -	device_unlock(dev);
> -	return len;
> -}
> -static DEVICE_ATTR_RW(driver_override);
> -
>  static struct attribute *pci_dev_attrs[] = {
>  	&dev_attr_power_state.attr,
>  	&dev_attr_resource.attr,
> @@ -669,7 +642,6 @@ static struct attribute *pci_dev_attrs[] = {
>  #ifdef CONFIG_OF
>  	&dev_attr_devspec.attr,
>  #endif
> -	&dev_attr_driver_override.attr,
>  	&dev_attr_ari_enabled.attr,
>  	NULL,
>  };
> diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
> index bccc7a4bdd79..b4707640e102 100644
> --- a/drivers/pci/probe.c
> +++ b/drivers/pci/probe.c
> @@ -2488,7 +2488,6 @@ static void pci_release_dev(struct device *dev)
>  	pci_release_of_node(pci_dev);
>  	pcibios_release_device(pci_dev);
>  	pci_bus_put(pci_dev->bus);
> -	kfree(pci_dev->driver_override);
>  	bitmap_free(pci_dev->dma_alias_mask);
>  	dev_dbg(dev, "device released\n");
>  	kfree(pci_dev);
> diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c
> index d43745fe4c84..460852f79f29 100644
> --- a/drivers/vfio/pci/vfio_pci_core.c
> +++ b/drivers/vfio/pci/vfio_pci_core.c
> @@ -1987,9 +1987,8 @@ static int vfio_pci_bus_notifier(struct notifier_block *nb,
>  	    pdev->is_virtfn && physfn == vdev->pdev) {
>  		pci_info(vdev->pdev, "Captured SR-IOV VF %s driver_override\n",
>  			 pci_name(pdev));
> -		pdev->driver_override = kasprintf(GFP_KERNEL, "%s",
> -						  vdev->vdev.ops->name);
> -		WARN_ON(!pdev->driver_override);
> +		WARN_ON(device_set_driver_override(&pdev->dev,
> +						   vdev->vdev.ops->name));
>  	} else if (action == BUS_NOTIFY_BOUND_DRIVER &&
>  		   pdev->is_virtfn && physfn == vdev->pdev) {
>  		struct pci_driver *drv = pci_dev_driver(pdev);
> diff --git a/drivers/xen/xen-pciback/pci_stub.c b/drivers/xen/xen-pciback/pci_stub.c
> index e4b27aecbf05..79a2b5dfd694 100644
> --- a/drivers/xen/xen-pciback/pci_stub.c
> +++ b/drivers/xen/xen-pciback/pci_stub.c
> @@ -598,6 +598,8 @@ static int pcistub_seize(struct pci_dev *dev,
>  	return err;
>  }
>  
> +static struct pci_driver xen_pcibk_pci_driver;
> +
>  /* Called when 'bind'. This means we must _NOT_ call pci_reset_function or
>   * other functions that take the sysfs lock. */
>  static int pcistub_probe(struct pci_dev *dev, const struct pci_device_id *id)
> @@ -609,8 +611,8 @@ static int pcistub_probe(struct pci_dev *dev, const struct pci_device_id *id)
>  
>  	match = pcistub_match(dev);
>  
> -	if ((dev->driver_override &&
> -	     !strcmp(dev->driver_override, PCISTUB_DRIVER_NAME)) ||
> +	if (device_match_driver_override(&dev->dev,
> +					 &xen_pcibk_pci_driver.driver) > 0 ||
>  	    match) {
>  
>  		if (dev->hdr_type != PCI_HEADER_TYPE_NORMAL
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index 1c270f1d5123..57e9463e4347 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -575,12 +575,6 @@ struct pci_dev {
>  	u8		supported_speeds; /* Supported Link Speeds Vector */
>  	phys_addr_t	rom;		/* Physical address if not from BAR */
>  	size_t		romlen;		/* Length if not from BAR */
> -	/*
> -	 * Driver name to force a match.  Do not set directly, because core
> -	 * frees it.  Use driver_set_override() to set or clear it.
> -	 */
> -	const char	*driver_override;
> -
>  	unsigned long	priv_flags;	/* Private flags for the PCI driver */
>  
>  	/* These methods index pci_reset_fn_methods[] */
> -- 
> 2.53.0
> 


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 18:26:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 18:26:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264668.1556083 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5pPx-0005NI-3L; Thu, 26 Mar 2026 18:26:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264668.1556083; Thu, 26 Mar 2026 18:26:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5pPx-0005NB-0W; Thu, 26 Mar 2026 18:26:53 +0000
Received: by outflank-mailman (input) for mailman id 1264668;
 Thu, 26 Mar 2026 18:26:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <bounce-md_30504962.69c57a69.v1-452d7e70b9d944b4b844328b68b68019@bounce.vates.tech>)
 id 1w5pPw-0005N5-Bc
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 18:26:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5pPv-003Juu-MM
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 19:26:51 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <bounce-md_30504962.69c57a69.v1-452d7e70b9d944b4b844328b68b68019@bounce.vates.tech>)
 id 69c57a66-bab6-0a2a0a5309dd-0a2a450bc52e-6
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 19:26:51 +0100
Received: from [198.2.179.37] (helo=mail179-37.suw41.mandrillapp.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from
 <bounce-md_30504962.69c57a69.v1-452d7e70b9d944b4b844328b68b68019@bounce.vates.tech>)
 id 69c57a6a-ef63-0a2a450b0019-c602b325c953-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 19:26:51 +0100
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-37.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4fhXL169rkzG0CLs3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 18:26:49 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 452d7e70b9d944b4b844328b68b68019; Thu, 26 Mar 2026 18:26:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mte1 header.d=mandrillapp.com header.i="@mandrillapp.com" header.h="From:Subject:Message-Id:To:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"; dkim=pass header.s=mte1 header.d=vates.tech header.i="teddy.astie@vates.tech" header.h="From:Subject:Message-Id:To:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774549609; x=1774819609;
	bh=1AD6XtpInmedqkHt3lklQZZmmP5HZmKfK2sFPcPiL8Q=;
	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=vEsv4QQsazjAHRM3hDgnHJS/DV6TE2qRjFuL1KhzeJEGCPdaWKlZPr6GPJY8sd6Lw
	 DZbmBwgTTq5yuaPvSCCKPsOI6uX2VDeZ4cIxWKN2g8+e3cQnaHllnigRL447kxoEs6
	 y/YoG1nYUFel6p0+ipkWJz8SeNBs8+HM9Stb+fk9Bog5M6eoUo5e4gPumDYRZbPDgy
	 V1oIXg50UiDsBtspuPVmZwNkXymBPS2yKgqdIrNnE5dRjSFLPIilbAUGnUud8evcBP
	 2kbvHboKx2habjDMpda3HioZuqiWVkllMSer9+izacIc6QWMyYD6orGVNHYpw7ipka
	 /uw4MohVwXkLg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774549609; x=1774810109; i=teddy.astie@vates.tech;
	bh=1AD6XtpInmedqkHt3lklQZZmmP5HZmKfK2sFPcPiL8Q=;
	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=l8JHY/Tea6yBGHD1sI4FsunVDPU7/Y++mbqvOpZSJoQBLtQfgCYHF2QDpq3fUF0G5
	 ZOJNfuLl/mrRjHZIfkczqwaAAGxKopAkS+iAB/75GKxEACbuTACL7DEj4EFtSQa5fs
	 0WuDayNMs/82LGffSVpuHGz91NrlfQSQlqakKSfNY86YFvMegVGZ+eQoOxjs5+X8q0
	 lNWw2MZRVQPeQzjGf0eYFqALRkbag1S7yGwyvJmoO8ZkAbAxAoAA9itHVNLTgPWImw
	 8lITpTTpOP3FDfQFiM6Xdaj0AZ12vLBF70kI7ILOUaOHnMuRl6/GC7/iB+ZlW+EcHc
	 5urfVUKW3eWCg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20Mapping=20non-pinned=20memory=20from=20one=20Xen=20domain=20into=20another?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774549607657
Message-Id: <df6194cf-1fc4-4a20-ad46-6eeab1d920a2@vates.tech>
To: "Demi Marie Obenour" <demiobenour@gmail.com>, "Xen developer discussion" <xen-devel@lists.xenproject.org>, dri-devel@lists.freedesktop.org, linux-mm@kvack.org, "Jan Beulich" <jbeulich@suse.com>, "Val Packett" <val@invisiblethingslab.com>, "Ariadne Conill" <ariadne@ariadne.space>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Juergen Gross" <jgross@suse.com>
References: <84462c4b-7813-4ad1-aeb2-862ae4f3a627@gmail.com> <5123c11c-3b8a-4633-809f-16c24418a4ce@vates.tech> <4f201188-31ac-4dac-9cc6-79c4283486e5@gmail.com>
In-Reply-To: <4f201188-31ac-4dac-9cc6-79c4283486e5@gmail.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.452d7e70b9d944b4b844328b68b68019?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260326:md
Date: Thu, 26 Mar 2026 18:26:49 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-42698a/1774549611-990B9112-8381C09B/0/0
X-purgate-type: clean
X-purgate-size: 6581

Le 26/03/2026 =C3=A0 18:18, Demi Marie Obenour a =C3=A9crit=C2=A0:
> On 3/24/26 14:00, Teddy Astie wrote:
>>> ## Restrictions on lent memory>>
>>> Lent memory is still considered to belong to the lending domain.
>>> The borrowing domain can only access it via its p2m.  Hypercalls made
>>> by the borrowing domain act as if the borrowed memory was not present.
>>> This includes, but is not limited to:
>>>
>>> - Using pointers to borrowed memory in hypercall arguments.
>>> - Granting borrowed memory to other VMs.
>>> - Any other operation that depends on whether a page is accessible
>>>     by a domain.
>>
>> What about emulated instructions that refers to this memory ?
> 
> This would be allowed if (and only if) it can trigger paging as you
> wrote above.
> 
>>> Furthermore:
>>>
>>> - Borrowed memory isn't mapped into the IOMMU of any PCIe devices
>>>     the guest has attached, because IOTLB faults generally are not
>>>     replayable.
>>>
>>
>> Given that (as written bellow) Borrowed memory is a part of some form of
>> emulated BAR or special region, there is no guarantee that DMA will work
>> properly anyway (unless P2P DMA support is advertised).
>>
>> Splitting the IOMMU side from the P2M is not a good idea as it rules out
>> the "IOMMU HAP PT Share" optimization.
> 
> If the pages are mapped in the IOMMU, paging them out requires an
> IOTLB invalidation.  My understanding is that these are far too slow.
> 

yes (aside specific cases like with paravirtualized IOMMU), but only if 
you have a device in the guest.

The problem is that that would force us to modify the ABI to have 
"non-DMA-able" memory in the guest, which doesn't exist yet aside 
specific cases like grants in PV.

> How important is sharing the HAP and IOMMU page tables?
> 
>>> - Foreign mapping hypercalls that reference lent memory will fail.
>>>     Otherwise, the domain making the foreign mapping hypercall could
>>>     continue to access the borrowed memory after the lease had been
>>>     revoked.  This is true even if the domain performing the foreign
>>>     mapping is an all-powerful dom0.  Otherwise, an emulated device
>>>     could access memory whose lease had been revoked.
>>>
>>> This also means that live migration of a domain that has borrowed
>>> memory requires cooperation from the lending domain.  For now, it
>>> will be considered out of scope.  Live migration is typically used
>>> with server workloads, and accelerators for server hardware often
>>> support SR-IOV.
>>>
>>> ## Where will lent memory appear in a guest's address space?
>>>
>>> Typically, lent memory will be an emulated PCI BAR.  It may be emulated
>>> by dom0 or an alternate ioreq server.  However, it is not *required*
>>> to be a PCI BAR.
>>>
>>
>> ---
>>
>> While the design could work (albeit the implied complexity), I'm not a
>> big fan of it, or at least, it needs to consider some constraints for
>> having reasonable performance.
>> One of the big issue is that a performance-sensitive system (virtualized
>> GPU) is interlocking with several "hard to optimize" subsystem like P2M
>> or Dom0 having to process a paging event.
>>
>> Modifying the P2M (especially removing entries) is a fairly expensive
>> operation as it sometimes requires pausing all the vCPUs each time it's
>> done.
> 
> Not every GPU supports recoverable page faults.  Even when they
> are supported, they are extremely expensive.  Each of them involves
> a round-trip from the GPU to the CPU and back, which means that a
> potentially very large number of GPU cores are blocked until the
> CPU can respond.  Therefore, GPU driver developers avoid relying on
> GPU page faults whenever possible.  Instead, data is moved in large
> chunks using a dedicated DMA engine in the GPU.
> As a result, I'm not too concerned with the cost of P2M manipulation.
> Anything that requires making a GPU buffer temporarily inaccessible
> is already an expensive process, and driver developers have strong
> incentives to keep the time the buffer is unmapped as short as
> possible.
> If performance turns out to be a problem, something like KVM's
> asynchronous page faults might be a better solution.
> 

Asynchronous page fault looks like a interesting and potentially easier 
to implement.

IIUC, the idea is to make the pages disappears on the guest behalf, and 
the guest would have to deal with the eventual page fault. Currently in 
Xen, a unhandled #NPF is fatal, but that could be tuned down for 
specific regions and transformed into a #PF or another exception for the 
guest to handle.

We have actually a similar need for SEV-ES MMIO handling, as we need to 
distinguish "MMIO-related NPF" (to paravirtualize through GHCB) to the 
other NPF; which needs to be configured in advance in page-tables (so 
that the CPU choose between #VC and VMEXIT#NPF).

It would also need some form of para-virtualization coming from virtio 
or a new Xen PV driver for the guest to be made aware of this mechanism.
I also assume that the guest handles properly that kind of event.

>> If it's done at 4k granularity, it would also lack superpage support,
>> which wouldn't help either. (doing things at the 2M+ scale would help,
>> but I don't know enough how MMU notifier does things.
>>
>> While I agree that grants is not a adequate mechanism for this (for
>> multiples reasons), I'm not fully convinced of the proposal.
>> I would prefer a strategy where we map a fixed amount of RAM+VRAM as a
>> blob, along with some form of cooperative hotplug mechanism to
>> dynamically provision the amount.
> 
> I asked the GPU driver developers about pinning VRAM like this a couple
> years ago or so.  The response I got was that it isn't supported.
> I suspect that anyone needing VRAM pinning for graphics workloads is
> using non-upstreamable hacks, most likely specific to a single driver.
> 
> More generally, the entire graphics stack receives essentially no
> testing under Xen.  There have been bugs that have affected Qubes OS
> users for months or more, and they went unfixed because they couldn't
> be reproduced outside of Xen.  To the upstream graphics developers,
> Xen might as well not exist.  This means that any solution that
> requires changing the graphics stack is not a practical option,
> and I do not expect this to change in the foreseeable future.


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Mar 26 19:04:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 19:04:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264697.1556093 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5pzr-0002fe-Ov; Thu, 26 Mar 2026 19:03:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264697.1556093; Thu, 26 Mar 2026 19:03:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5pzr-0002fX-KZ; Thu, 26 Mar 2026 19:03:59 +0000
Received: by outflank-mailman (input) for mailman id 1264697;
 Thu, 26 Mar 2026 19:03:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Oleksandr_Tyshchenko@epam.com>) id 1w5pzq-0002fR-5q
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 19:03:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5pzn-00HY7F-SZ
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 20:03:57 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Oleksandr_Tyshchenko@epam.com>)
 id 69c582f4-5cb7-0a2a0a5109dd-0a2a450ac992-44
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 20:03:57 +0100
Received: from [40.107.130.88]
 (helo=MRWPR03CU001.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Oleksandr_Tyshchenko@epam.com>)
 id 69c5831c-1772-0a2a450a0019-286b82580f01-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 20:03:57 +0100
Received: from AM4PR03MB11152.eurprd03.prod.outlook.com
 (2603:10a6:20b:6cc::22) by PA4PR03MB7389.eurprd03.prod.outlook.com
 (2603:10a6:102:be::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Thu, 26 Mar
 2026 19:03:55 +0000
Received: from AM4PR03MB11152.eurprd03.prod.outlook.com
 ([fe80::bbbf:5b9b:1043:4510]) by AM4PR03MB11152.eurprd03.prod.outlook.com
 ([fe80::bbbf:5b9b:1043:4510%5]) with mapi id 15.20.9745.019; Thu, 26 Mar 2026
 19:03:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=y1hOPlrnJ+TKqAeNQrQneonaVMnuGH05ZW2mI6LaeSq16hhKwNZSoLeNe2wPhcpYTgnJgFVixIzpQkvRAV0B+J1WXfc5v+O1V97QvSR/0XiHxgLwkPUI07eKbsEycXcpR8bHIYO1/XKk/WUQlD90cBTagWqFX0yIi0dL3uEMeOMIVm+PyhGmNgwMLptYQquWBTl4imZQ0KhnIOr+OxVJIBNB63IioqH+z+4KEuvYdBfArg708yU6mxiweK3BET3lbYx0erDOjPEtjEUjzJDed5OD+q7ElIJA/VajQD5w3xKRb6Rrk0QuwhiZ14y6qEo5DL+27eROVDD3k/aM1anPeQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cMdUdBfSw1KZwrKOD+g64NVOANA5HuqmzSPMj2dbWII=;
 b=keb+p5WF+6Sy4VGSN42r87PyqxVwxL/46T4R5UHJcMSm2BOFIozSPhdUzGTMTJzNGgRCCj4IKHv7sgtfBYy7JdEgZiKckMHCoSFePYaoBZ3XuPA5X6SObr9bM/cCX7Ifl6dcUAydxB2LBikZ9qxREXDY0fPd0MR6fL4z9OcZNodqALPwfD62ECoNJ5mX1p3jQXliJwlyTyOSFsRi7raUfjvBU4lUSzH0oYyWrz9UBeSNFhCOuV6XkJCHBAbWXJh4E1Jjo63VnuCpzh5ISG0S7l5ENayawDP2wpdf5cXwAu6nBpvJqBnqVriXqGaQvOyR+GITw8S4vTkBzbjV1uhAxQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cMdUdBfSw1KZwrKOD+g64NVOANA5HuqmzSPMj2dbWII=;
 b=sivdl4q9nPrQxxDxNlCcStITu8x8OHy08oJWUPHIYCVLzTkn9DXWqSXIb4CkPUNiQ8sfapTE7+7FOcsHsNwN+6DLxgf4u4EhtqTeKJocztFwGc+Yg+hJJ46SEtZHJ/32JIOcgz9AgDrtGW83WyEthNxO3dMDE3IQ1+QxjE8y6AKNv5BFd2Y7dzULdDD2MIJOXN6Fsc1V6bqXbyc7YHu56AhqGRXQE7fp+w55qeVDQegjXMhVpQmjZvY5LYNwSe/WeephaWJ8635NmBESUILENPaq9rZXz3kGZYJ23IujB6wWgvqAHpwzD1s01CJ62Ifjp6xpvM01j/Nea7ynubTsDA==
From: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
To: "Orzel, Michal" <michal.orzel@amd.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>
Subject: Re: [PATCH] xen/arm: Increase DOM0_FDT_EXTRA_SIZE to support max
 reserved memory banks
Thread-Topic: [PATCH] xen/arm: Increase DOM0_FDT_EXTRA_SIZE to support max
 reserved memory banks
Thread-Index: AQHcvSKiuRz6O/EU8kCzrBnRPjf187XBBxoAgAAlNIA=
Date: Thu, 26 Mar 2026 19:03:54 +0000
Message-ID: <7d52cf29-c0bb-4e39-ae10-2b43f3e8e921@epam.com>
References: <20260326131535.662466-1-oleksandr_tyshchenko@epam.com>
 <29769bd9-8410-417b-9ad8-84131956db57@amd.com>
In-Reply-To: <29769bd9-8410-417b-9ad8-84131956db57@amd.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: AM4PR03MB11152:EE_|PA4PR03MB7389:EE_
x-ms-office365-filtering-correlation-id: dc7e1db5-44ba-4686-6aa2-08de8b6a6cd4
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|42112799006|1800799024|376014|56012099003|22082099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 q7Qtc2SDyCf6ANSAUhvrg8/2Kk3k0dpsatp2U5C90qe/SiwIwFdZrRwT8A/w40fjrpt7ZyCB61uvi8/sGcFwRZvn9ITHkNAiBjeYGocS5zcW51G4thfMcB1uORZ5Ctrwg/BLD3RZdtgn6+80NCgnUdXr7qe19A2t/7PZjVs+2/zMybX66HLDeSyiCV1DAhaoEpx+cAOjGgHzx/FMes4FDHvrUnNfDmLWVGCj68obRkyKajbDmdoJUPlez3BpzgHXRrfosUGFvwkCwbGJ+8OKQfJ1++gxyB2Oj/HWv5e6+dIrVcmlCWV+T2q5yWGx0q7eU847YvAP/VThk5qc7yU0/4hFF4wtiq+h5jXWoWQq0/j/DasrItXrgZ1l2I142M1Xpx+0FwZzlnqIui2tegXIeZj/lM26cnUNE7Su5FQ+eFFCqwnYlsV5CPRbF28VzkrW5SXmukz/BipYfadFvfHRQfZtoarciq2z0z1kky86+rHLCGQKRn4ty0xWnjkCASdlqYltqnoqSyiuugE5ueiocatIDNaDveDjphg9CeLnqvtr8l310hQpB20LawZw89HceMxQLIJxwCZHxTLHRccm+hhvpbZXSFb2GNm5yEBQ8S6DEeQO9Sk53h0h+N2SndbFRQstO+hIhpSNA5yqbESfVRmPiCOdv/Bo/ccjzv7ivMRCOqrf96rTOlkncZUGrui3D6MLFcUayJdkh8avGNvCFRyyu0mD0eW1QAg6CMhImGHl4d3/jG/QoDymurxcvVXX0Rew1+SxXJrjpB4DvnyKxxrlIsvkkLdDl8rPLlsipKo=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM4PR03MB11152.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(42112799006)(1800799024)(376014)(56012099003)(22082099003)(18002099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?MzhnS3l1M3ZYeEkzelhHKytoR2JFMDloVnZYKzdaUmZma0c3dHJXR2ZOdS9s?=
 =?utf-8?B?UzNhRUp5QjVUN2Q5Y0wwdnpwbTJ1L2FPR0E2d3FFYlVyTmQxbnhqVVJ0V0VC?=
 =?utf-8?B?ZGJmTmpycWJHdUJmcUZoUjNmKzNFdXQycThTT3FON0kyL2JmZVkvU1JsRnI2?=
 =?utf-8?B?SGtLRkZMTkhnWHo1UUxwQ0hac3BJVTBYUlFoS0pqWlJKSmVpcVo5elZFeFF5?=
 =?utf-8?B?NWVQYnA5SXNHYWFFdWQ2M0llOXIrQVJsaGMybG41VmorMzJ4OVJCTThRQlpW?=
 =?utf-8?B?dWNJamZ0NDViS1FnMnVOUm56d2tpUmVkTlkzb094QXQ3aGkxVHB1N1VrSVRo?=
 =?utf-8?B?T1NlT0xoUmsrZEE5T0l6b3lHUFlWeVhidnljNGVQc3FJSjZqRW1XQ1dUWnBk?=
 =?utf-8?B?M2phT1BmY2MrRDl1WWUyT3Q5U25YYkd4R3U3KzlRZEJyQVJNRWJwWTgvNHRw?=
 =?utf-8?B?MWgraTVJMFhRbU9uMVVVbzJ3N0lFYzJGRFpsZ2wzNU9WVHltY3hLQ1dTUEQ5?=
 =?utf-8?B?QkFkWjFRNlc1L0wvZnBzTGROOGZtMHJBd2ZaM1BjYUdNek9wRlB5RTkvcmgy?=
 =?utf-8?B?cFVNazZrcFRoZlRJejVTMWhBelp1RlJxZkhGbDgxV2VxRWdoODZrY3NZTGZv?=
 =?utf-8?B?OXNCN0NlRHRFTk1iNmVWVGdpd3FhTit6OW9Xb2xINm9BV25GSkZkc3NEQ1Zz?=
 =?utf-8?B?UWZ5dGwzK0RONmN2OWhhR2haNzBjQTlKbXloTXUzU3RYelJOSTNTRjVQQXEr?=
 =?utf-8?B?aW9qMGlPWHBtZHZmRTNFbEQ5SlNBT1lJOFFaa1EwUG9OY1UrRFNRRXhFTUJi?=
 =?utf-8?B?SFd2elNDcUN5Vm5jRkkyaUkxYTladENyS3dZOXE5UzV5eThzODljWTA1M3Zx?=
 =?utf-8?B?UnVpem5NZFJFQmFkTGkra3J4RE8yRFlRd1ZoUGNvd2xqdFRBWmxBT2YxSkJK?=
 =?utf-8?B?WEMzaFE3YW1nM2JGU3QxN1FuQ1RORWR4amk5aFRFRWxmamtEaEM1dm5TWHkw?=
 =?utf-8?B?QThpVmpWUGFWaWNVYVVSZTZRN2Y5M3VqTXlUaFRWNE1aTkhvaUxWaVlkaXNp?=
 =?utf-8?B?a25GNzRSMUFSaFd4OE5zMFNCZlB4STRLM0NTWS91dHQ0TmxaVTd3dCtTTjVY?=
 =?utf-8?B?QnYxQmNFbG42SUo2VC9GdVFaZjQ5WU01bU5DWGRuU29oK2JpTUlVNk9KejhP?=
 =?utf-8?B?bFU3SlpNdDI4TUdWa1NWUkRGYWllME9HS2trUVg4cVRxcmQ4S1VFaDNTT0xL?=
 =?utf-8?B?a2hmME8xT3FjQXhWb09LTjU5b0U4Sk14RHd3aDNKM0Nhb2ZBSzlSclpPQzAr?=
 =?utf-8?B?dCtDaWx1YzByc2drK2hVK1dsaTdhdFlrUG5kZXQxUEkwUXNlOU1QVWxGZGM1?=
 =?utf-8?B?U0FsL1M1eDZTeHpPN0JTRUVEYmtQZ2l1NzFxUXVrMnp5dHZYdGh0T0J5UlVO?=
 =?utf-8?B?dWFqZ1cwbmoxSVY5YkRqV0orMjhDcHcwVDh6eDVSbDUxYjNrUDdxWDY3cnMx?=
 =?utf-8?B?WFV6VmV5UDUxNnBVd2lBazBRa0sweDEyUEh3dStNNkh2MkR5UWd5VjBhcTFs?=
 =?utf-8?B?Yks0N20yUWdMUlBZMXBXNk5hd01nNGxOZ21yZy93eHpCMnIza2tsdUQ5Z0VL?=
 =?utf-8?B?MGJZbm1TUnB2UGhTbXVGVGd4TFg4YzVxbDBUYUZ1NW92K2NrRVkzWWRlVEd2?=
 =?utf-8?B?cTczVlhMbHFjZFkrUW9TcytFMDlwYjdURkFTTDFVOGlYcm95VlJvTlRiTEhi?=
 =?utf-8?B?a1pycVJ5ZVYzcmZBWTNhNE5YL1JvSjNZaEJoeEtXTm5vRngreEM2WmhJUzM0?=
 =?utf-8?B?YjhkYkM1T1c2Z0dkL2lJQjhDeDl3MCtaRE44UE0xZjRkdGxHLzBnVCtEdzhr?=
 =?utf-8?B?clpZOGJoY0ViQ2pwdzFrT09Ic1FLZTVnLzAzTUNZTElsN3diRE5pMmZHdWRv?=
 =?utf-8?B?cEQxMlI1VzlVS2E3QmRFUms1aFp2NkwyaXYzNkppOUJLU3ExeFhROXhmTkgz?=
 =?utf-8?B?VlZ5c1BLTmkxYUlDN2QrcTFNZFNVS0lkaEZqaG9wZTIwWlF5TFNuNHlQekkz?=
 =?utf-8?B?bVFodjZtdTcvUy9VdGd4b1RuL25KK3BTM3dDK1BqNjNSMlNIdWpvZFg1Nk5p?=
 =?utf-8?B?dkFjOUJxME9zMGgxQXZLbEVVbC8zM3hRWkpaNWV2ZWpmMm9hSzUrNlJmYWJq?=
 =?utf-8?B?d09GRktUTHBWQWdLczhYRmlQUnI0dStHYStCbzdPR1A3U1RBU1g3UHJWVkZG?=
 =?utf-8?B?aDRKZjRpbFhlaCtLdFB0UHo0b2lSWVJaelBwM3cxdVBjcWNLZjBXZWNMbldr?=
 =?utf-8?B?MTUxQ3YwYU91emt0amsyWUY0UlZUN2c0OEJ0ZUNDcnVEM3prdUV5VlV4bHEx?=
 =?utf-8?Q?7Zh7TyO0dKbZyORo=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <3EDB62C06DA1F649991864E05012CE54@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: AM4PR03MB11152.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dc7e1db5-44ba-4686-6aa2-08de8b6a6cd4
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Mar 2026 19:03:54.0857
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: i5sqih/T75Dy2Kliyly3pvIRZpgVKOia20iYyZOY9fSySgLrPgy6B0rI3etfZowLITLpBufoHDOhkTIEzYH7V2jhLJi5abVKiKqB/Tx6GEY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7389
X-purgate-ID: tlsNG-4011c0/1774551837-52E95900-96ED9117/0/0
X-purgate-type: clean
X-purgate-size: 7108

DQoNCk9uIDMvMjYvMjYgMTg6NTAsIE9yemVsLCBNaWNoYWwgd3JvdGU6DQoNCkhlbGxvIE1pY2hh
bA0KDQo+IA0KPiANCj4gT24gMjYvMDMvMjAyNiAxNDoxNSwgT2xla3NhbmRyIFR5c2hjaGVua28g
d3JvdGU6DQo+PiBYZW4gZmFpbHMgdG8gY29uc3RydWN0IHRoZSBoYXJkd2FyZSBkb21haW4ncyBk
ZXZpY2UgdHJlZSB3aXRoDQo+PiBGRFRfRVJSX05PU1BBQ0UgKC0zKSB3aGVuIHRoZSBob3N0IG1l
bW9yeSBtYXAgaXMgaGlnaGx5IGZyYWdtZW50ZWQNCj4+IChlLmcuLCBudW1lcm91cyByZXNlcnZl
ZCBtZW1vcnkgcmVnaW9ucykuDQo+Pg0KPj4gVGhpcyBvY2N1cnMgYmVjYXVzZSBET00wX0ZEVF9F
WFRSQV9TSVpFIHVuZGVyZXN0aW1hdGVzIHRoZSBzcGFjZQ0KPj4gcmVxdWlyZWQgZm9yIHRoZSBn
ZW5lcmF0ZWQgZXh0cmEgL21lbW9yeSBub2RlLiBtYWtlX21lbW9yeV9ub2RlKCkNCj4gV2hlcmUg
ZG9lcyB0aGlzIGV4dHJhIC9tZW1vcnkgbm9kZSBjb21lIGZyb20/IElmIHRoaXMgaXMgZm9yIG5v
cm1hbCByZXNlcnZlZA0KPiBtZW1vcnkgcmVnaW9ucywgdGhleSBzaG91bGQgYmUgcHJlc2VudCBp
biB0aGUgaG9zdCBkdGIgYW5kIHRoZXJlZm9yZSBhY2NvdW50ZWQNCj4gYnkgZmR0X3RvdGFsc2l6
ZSAodGhlIGhvc3QgZHRiIHNob3VsZCBoYXZlIHJlc2VydmVkIHJlZ2lvbnMgZGVzY3JpYmVkIGlu
IC9tZW1vcnkNCj4gYW5kIC9yZXNlcnZlZC1tZW1vcnkuIEFyZSB5b3UgdHJ5aW5nIHRvIGFjY291
bnQgZm9yIHN0YXRpYyBzaG0gcmVnaW9ucz8NCg0KDQpJIG1pZ2h0IGhhdmUgbWlzdW5kZXJzdG9v
ZCBzb21ldGhpbmcsIGJ1dCBoZXJlIGlzIG15IGFuYWx5c2lzOg0KDQpUaGUgZXh0cmEgL21lbW9y
eSBub2RlIGlzIGdlbmVyYXRlZCBieSBYZW4gaXRzZWxmIGluIGhhbmRsZV9ub2RlKCkgLT4gDQpt
YWtlX21lbW9yeV9ub2RlKCkgKHBsZWFzZSByZWZlciB0byB0aGUgaWYgKCByZXNlcnZlZF9tZW0t
Pm5yX2JhbmtzID4gMCANCikgY2hlY2spLg0KDQpFdmVuIHRob3VnaCB0aGUgbm9ybWFsIHJlc2Vy
dmVkIG1lbW9yeSByZWdpb25zIGFyZSBwcmVzZW50IGluIHRoZSBob3N0IA0KRFRCIChhbmQgdGh1
cyBhY2NvdW50ZWQgZm9yIGluIGZkdF90b3RhbHNpemUpLCBYZW4gZ2VuZXJhdGVzIGEgbmV3IA0K
L21lbW9yeSBub2RlIHNwZWNpZmljYWxseSBmb3IgdGhlIGhhcmR3YXJlIGRvbWFpbiB0byBkZXNj
cmliZSB0aGVzZSANCnJlZ2lvbnMgYXMgcmVzZXJ2ZWQgYnV0IHByZXNlbnQgaW4gdGhlIG1lbW9y
eSBtYXAuIEFuZCBzaW5jZSB0aGlzIG5vZGUgDQppcyBnZW5lcmF0ZWQgYXQgcnVudGltZSAoaXQg
aXMgbm90IGEgZGlyZWN0IGNvcHkgZnJvbSB0aGUgaG9zdCBEVEIpLA0KaXRzIHNpemUgbXVzdCBi
ZSBjb3ZlcmVkIGJ5IERPTTBfRkRUX0VYVFJBX1NJWkUuDQoNCkZvciB0aGUgaW5zdGFuY2UsIDEw
IHJlc2VydmVkIHJlZ2lvbnM6DQoNCihYRU4pIFJBTTogMDAwMDAwMDA0MDAwMDAwMCAtIDAwMDAw
MDAwN2ZmZmZmZmYNCihYRU4pDQooWEVOKSBNT0RVTEVbMF06IDAwMDAwMDAwNDMyMDAwMDAgLSAw
MDAwMDAwMDQzMzBhZmZmIFhlbg0KKFhFTikgTU9EVUxFWzFdOiAwMDAwMDAwMDQzNDAwMDAwIC0g
MDAwMDAwMDA0MzQwMmZmZiBEZXZpY2UgVHJlZQ0KKFhFTikgTU9EVUxFWzJdOiAwMDAwMDAwMDQy
ZTAwMDAwIC0gMDAwMDAwMDA0MzE2OTA3ZiBSYW1kaXNrDQooWEVOKSBNT0RVTEVbM106IDAwMDAw
MDAwNDA0MDAwMDAgLSAwMDAwMDAwMDQyZDJmZmZmIEtlcm5lbA0KKFhFTikgIFJFU1ZEWzBdOiAw
MDAwMDAwMDQwMDA5MDAwIC0gMDAwMDAwMDA0MDAwOWZmZg0KKFhFTikgIFJFU1ZEWzFdOiAwMDAw
MDAwMDQwMDA4MDAwIC0gMDAwMDAwMDA0MDAwOGZmZg0KKFhFTikgIFJFU1ZEWzJdOiAwMDAwMDAw
MDQwMDA3MDAwIC0gMDAwMDAwMDA0MDAwN2ZmZg0KKFhFTikgIFJFU1ZEWzNdOiAwMDAwMDAwMDQw
MDA2MDAwIC0gMDAwMDAwMDA0MDAwNmZmZg0KKFhFTikgIFJFU1ZEWzRdOiAwMDAwMDAwMDQwMDA1
MDAwIC0gMDAwMDAwMDA0MDAwNWZmZg0KKFhFTikgIFJFU1ZEWzVdOiAwMDAwMDAwMDQwMDA0MDAw
IC0gMDAwMDAwMDA0MDAwNGZmZg0KKFhFTikgIFJFU1ZEWzZdOiAwMDAwMDAwMDQwMDAzMDAwIC0g
MDAwMDAwMDA0MDAwM2ZmZg0KKFhFTikgIFJFU1ZEWzddOiAwMDAwMDAwMDQwMDAyMDAwIC0gMDAw
MDAwMDA0MDAwMmZmZg0KKFhFTikgIFJFU1ZEWzhdOiAwMDAwMDAwMDQwMDAxMDAwIC0gMDAwMDAw
MDA0MDAwMWZmZg0KKFhFTikgIFJFU1ZEWzldOiAwMDAwMDAwMDQwMDAwMDAwIC0gMDAwMDAwMDA0
MDAwMGZmZg0KLi4uDQoNCiBGcm9tIG1ha2VfbWVtb3J5X25vZGUoKToNCg0KKFhFTikgQ3JlYXRl
IG1lbW9yeSBub2RlDQooWEVOKSAgIEJhbmsgMDogMHg1MDAwMDAwMC0+MHg3MDAwMDAwMA0KKFhF
TikgKHJlZyBzaXplIDQsIG5yIGNlbGxzIDQpDQoNCg0KDQooWEVOKSBDcmVhdGUgbWVtb3J5IG5v
ZGUNCihYRU4pICAgQmFuayAwOiAweDQwMDA5MDAwLT4weDQwMDBhMDAwDQooWEVOKSAgIEJhbmsg
MTogMHg0MDAwODAwMC0+MHg0MDAwOTAwMA0KKFhFTikgICBCYW5rIDI6IDB4NDAwMDcwMDAtPjB4
NDAwMDgwMDANCihYRU4pICAgQmFuayAzOiAweDQwMDA2MDAwLT4weDQwMDA3MDAwDQooWEVOKSAg
IEJhbmsgNDogMHg0MDAwNTAwMC0+MHg0MDAwNjAwMA0KKFhFTikgICBCYW5rIDU6IDB4NDAwMDQw
MDAtPjB4NDAwMDUwMDANCihYRU4pICAgQmFuayA2OiAweDQwMDAzMDAwLT4weDQwMDA0MDAwDQoo
WEVOKSAgIEJhbmsgNzogMHg0MDAwMjAwMC0+MHg0MDAwMzAwMA0KKFhFTikgICBCYW5rIDg6IDB4
NDAwMDEwMDAtPjB4NDAwMDIwMDANCihYRU4pICAgQmFuayA5OiAweDQwMDAwMDAwLT4weDQwMDAx
MDAwDQooWEVOKSAocmVnIHNpemUgNCwgbnIgY2VsbHMgNDApDQoNCj4gDQo+PiBhZ2dyZWdhdGVz
IGFsbCByZXNlcnZlZCByZWdpb25zIGludG8gYSBzaW5nbGUgcmVnIHByb3BlcnR5LiBXaXRoDQo+
PiBOUl9NRU1fQkFOS1MgKDI1NikgYW5kIDY0LWJpdCBhZGRyZXNzL3NpemUgY2VsbHMsIHRoaXMg
cHJvcGVydHkNCj4+IGNhbiBncm93IHVwIHRvIDRLQiAoMjU2ICogMTYpLCBlYXNpbHkgb3ZlcmZs
b3dpbmcgdGhlIGFsbG9jYXRlZA0KPj4gYnVmZmVyLg0KPj4NCj4+IEZpeCB0aGlzIGJ5IGluY3Jl
YXNpbmcgRE9NMF9GRFRfRVhUUkFfU0laRSB0byBhY2NvdW50IGZvcg0KPj4gdGhlIHdvcnN0LWNh
c2Ugc2l6ZTogTlJfTUVNX0JBTktTICogMTYgYnl0ZXMuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTog
T2xla3NhbmRyIFR5c2hjaGVua28gPG9sZWtzYW5kcl90eXNoY2hlbmtvQGVwYW0uY29tPg0KPj4g
LS0tDQo+PiBKdXN0IHRvIGJlIGNsZWFyLCBJIGhhdmUgbm90IHNlZW4gYSByZWFsLXdvcmxkIGlz
c3VlIHdpdGggdGhpcy4NCj4+IFRoZSBpc3N1ZSB3YXMgb2JzZXJ2ZWQgZHVyaW5nIHRlc3Rpbmcg
b2YgbGltaXQgY29uZGl0aW9ucy4NCj4+IFdpdGggdGhpcyBwYXRjaCBhcHBsaWVkLCBYZW4gc3Vj
Y2Vzc2Z1bGx5IGJvb3RzIHRoZSBoYXJkd2FyZSBkb21haW4sDQo+PiBleHBvc2luZyAyNTYgcmVz
ZXJ2ZWQgbWVtb3J5IHJlZ2lvbnMgdG8gaXQgKHVzaW5nIGEgc3ludGhldGljYWxseQ0KPj4gZ2Vu
ZXJhdGVkIGNvbmZpZ3VyYXRpb24pLg0KPj4gLS0tDQo+PiAtLS0NCj4+ICAgeGVuL2FyY2gvYXJt
L2RvbWFpbl9idWlsZC5jIHwgNiArKysrLS0NCj4+ICAgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0
aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJt
L2RvbWFpbl9idWlsZC5jIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jDQo+PiBpbmRleCBl
ODc5NTc0NWRkLi43ZjlmMGY1NTEwIDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL2RvbWFp
bl9idWlsZC5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMNCj4+IEBAIC0x
MDAsOSArMTAwLDExIEBAIGludCBfX2luaXQgcGFyc2VfYXJjaF9kb20wX3BhcmFtKGNvbnN0IGNo
YXIgKnMsIGNvbnN0IGNoYXIgKmUpDQo+PiAgIC8qDQo+PiAgICAqIEFtb3VudCBvZiBleHRyYSBz
cGFjZSByZXF1aXJlZCB0byBkb20wJ3MgZGV2aWNlIHRyZWUuICBObyBuZXcgbm9kZXMNCj4gVGhp
cyBjb21tZW50IHdvdWxkIHdhbnQgdG8gYmUgdXBkYXRlZCBiZWNhdXNlIHNpbmNlIGl0cyBpbnRy
b2R1Y3Rpb24gdGhpbmdzIGhhdmUNCj4gY2hhbmdlZC4gRXZlbiB0aGUgMTI4IGNhbWUgdXAgYXMg
YSByZXN1bHQgb2YgYWRkaW5nIC9oeXBlcnZpc29yIG5vZGUuDQoNCllvdSBhcmUgcmlnaHQuIEkg
c3VnZ2VzdCB0aGUgZm9sbG93aW5nIHdvcmRpbmc6DQoNCkFtb3VudCBvZiBleHRyYSBzcGFjZSBy
ZXF1aXJlZCB0byBkb20wJ3MgZGV2aWNlIHRyZWUuDQpUaGlzIGNvdmVycyBub2RlcyBnZW5lcmF0
ZWQgYnkgWGVuLCB3aGljaCBhcmUgbm90IGRpcmVjdGx5IGNvcGllZA0KZnJvbSB0aGUgaG9zdCBE
VEIuIEl0IGlzIGNhbGN1bGF0ZWQgYXM6DQogIC0gU3BhY2UgZm9yIC9oeXBlcnZpc29yIG5vZGUg
KDEyOCBieXRlcykuDQogIC0gT25lIHRlcm1pbmF0aW5nIHJlc2VydmUgbWFwIGVudHJ5ICgxNiBi
eXRlcykuDQogIC0gU3BhY2UgZm9yIGEgZ2VuZXJhdGVkIG1lbW9yeSBub2RlIGNvdmVyaW5nIGFs
bCBwb3NzaWJsZSByZXNlcnZlZA0KICAgIG1lbW9yeSByZWdpb25zIChOUl9NRU1fQkFOS1MgKiAx
NiBieXRlcykuDQoNCg0KPiANCj4+ICAgICogYXJlIGFkZGVkICh5ZXQpIGJ1dCBvbmUgdGVybWlu
YXRpbmcgcmVzZXJ2ZSBtYXAgZW50cnkgKDE2IGJ5dGVzKSBpcw0KPj4gLSAqIGFkZGVkLg0KPj4g
KyAqIGFkZGVkLiBQbHVzIHNwYWNlIGZvciBhbiBleHRyYSBtZW1vcnkgbm9kZSB0byBjb3ZlciBh
bGwgcG9zc2libGUgcmVzZXJ2ZWQNCj4+ICsgKiBtZW1vcnkgcmVnaW9ucyAoMiBhZGRyIGNlbGxz
ICsgMiBzaXplIGNlbGxzKS4NCj4+ICAgICovDQo+PiAtI2RlZmluZSBET00wX0ZEVF9FWFRSQV9T
SVpFICgxMjggKyBzaXplb2Yoc3RydWN0IGZkdF9yZXNlcnZlX2VudHJ5KSkNCj4+ICsjZGVmaW5l
IERPTTBfRkRUX0VYVFJBX1NJWkUgKDEyOCArIHNpemVvZihzdHJ1Y3QgZmR0X3Jlc2VydmVfZW50
cnkpICsgXA0KPj4gKyAgICAoTlJfTUVNX0JBTktTICogMTYpKQ0KPj4gICANCj4+ICAgdW5zaWdu
ZWQgaW50IF9faW5pdCBkb20wX21heF92Y3B1cyh2b2lkKQ0KPj4gICB7DQo+IA0KPiB+TWljaGFs
DQo+IA0K


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 19:04:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 19:04:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264706.1556100 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5q0W-0003Ad-2h; Thu, 26 Mar 2026 19:04:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264706.1556100; Thu, 26 Mar 2026 19:04:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5q0V-0003AW-WD; Thu, 26 Mar 2026 19:04:40 +0000
Received: by outflank-mailman (input) for mailman id 1264706;
 Thu, 26 Mar 2026 19:04:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper3@citrix.com>) id 1w5q0U-0003AD-Gx
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 19:04:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5q0T-00EqAi-TJ
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 20:04:37 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69c58324-5cb7-0a2a0a5109dd-0a2a450395bc-42
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 20:04:37 +0100
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69c58345-1947-0a2a45030019-d1558035c026-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 20:04:37 +0100
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-486ff3a0fc1so13386215e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 12:04:37 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48725eb1ca0sm2176755e9.6.2026.03.26.12.04.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 26 Mar 2026 12:04:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1774551877; x=1775156677; 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=6y6WWaL0iQNCXHUAe5+30mnNmp1Rpaojczrt0DLvOSc=;
        b=DQaRMuVxu8z75MiyScgyANIDWsRSpuJmCA3aeE4KtMxruP1pWyZW9gaoKh7WXbDWct
         DiszVrreCcT8gS1JkQ6Co1he8SCbYQTUnU5YdJtnroMN7nMbyCfVEFMOzrbXePaPq/S5
         sHHrQAL97WLZHshfOr/yO7Lr/yd+WQujim/YY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774551877; x=1775156677;
        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=6y6WWaL0iQNCXHUAe5+30mnNmp1Rpaojczrt0DLvOSc=;
        b=dW1vI/P67iwI5ybgD23qS7Iu1la1OjzLULz7qAKxm5CsP1BnpXHzGfcRy+O2QsDMlD
         b6Gd+zKvXJVSTmrIn/vJZ6q1GRq+Eodg9RWBD1kJIxEr5lWG/fgTCaIEPhEiLWa619OU
         3gOnPAaGOnqS80Q/Kzg631FmjLrB5uv/49U5gRjLsQzfRV7a8LdOwqvwfF9QZxSbh4oO
         Tgl9VoOXMIcSd2nRejM+2H/oeVTsHlWQl5pxs8OmMjTdniLsA+ORUxFObMgw6E7q4AEN
         6bSet9jfjrS10K5ZjP4NjRGFly6hJ5Wk7BHw39ebWzZ28mYR2ljfUg2vKZRZkY4AWlSG
         7Jpg==
X-Gm-Message-State: AOJu0Yz02HaAD91mMmB6K/hTUSKn2q8BcD2qKUojgKEKuHRz2azEI7Zx
	zarCWMuogdY1j+oapf1oE5qvmR1lDKfMYZUgiSPCBdeVgZlvjyb9nJ2FTiW0xSvJEtBTcBzn8/U
	s4rkl
X-Gm-Gg: ATEYQzxrdAwiN/a++SU+GPfoxXhpr5dJUuYH4herrZu+lYNr3VSEIxT9fhQH4yXQsO2
	73LZwmHnB1JVRBV3LjtLU8nQAuqvV+GywE0CnPJ7T26x7D1Rn6HULEXUw47eK5n9etgKIL8+J5w
	aNmwFYKnr52y0RAJKoylnH4HouvJO/t2PnETxUxK1l5YaiOFR3AFRaVFh0UUptlnE7AM3Mzz8zB
	J5K7KVqtdgTNYhzCqoDHSP11w5LyqQmd8JQbszBe4iT5AgJTtNqqDeQLlLDCXAQFd8u0JwimwUD
	a27H90xbutFDk7R6t++nh4dYjSw1itkmqeMIRyAkedyXEcN3MaPc/mQQPjfgqtXYzmzTeVj3YT7
	HE3cbTf3ukLuSsMdymJyPS8PjHiva/DDLkc8FWQ8J+jzafHxY4ZV2I7u0KyI5MyQLo0tWJB2ryr
	o3nETPj6jeh8zVtW0P7mgn/d6qplUK4h9vdZOqS1LNxB3dAdM09ODXO/OQMnhIPSCXNrKJrMmi4
	Xz+
X-Received: by 2002:a05:600c:3b12:b0:485:419c:4eba with SMTP id 5b1f17b1804b1-48715fc3286mr134173975e9.1.1774551876282;
        Thu, 26 Mar 2026 12:04:36 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Juergen Gross <jgross@suse.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 0/2] x86/fpu: Lazy FPU removal prep
Date: Thu, 26 Mar 2026 19:04:27 +0000
Message-Id: <20260326190429.1156367-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1774551877-E949872C-0E9B8E07/0/0
X-purgate-type: clean
X-purgate-size: 399

Two patches to go ahead of Ross's removal series to simplify things a bit.

Andrew Cooper (2):
  docs/hypfs: Adjust the hypfs layout example
  x86/fpu: Initialise FTW as well as FCW in xstate_alloc_save_area()

 docs/misc/hypfs-paths.pandoc | 37 +++++++-----------------------------
 xen/arch/x86/xstate.c        |  3 ++-
 2 files changed, 9 insertions(+), 31 deletions(-)

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Mar 26 19:04:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 19:04:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264707.1556110 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5q0X-0003PW-A1; Thu, 26 Mar 2026 19:04:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264707.1556110; Thu, 26 Mar 2026 19:04: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 1w5q0X-0003PL-6m; Thu, 26 Mar 2026 19:04:41 +0000
Received: by outflank-mailman (input) for mailman id 1264707;
 Thu, 26 Mar 2026 19:04:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper3@citrix.com>) id 1w5q0V-0003AJ-GU
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 19:04:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5q0U-0043KZ-T1
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 20:04:38 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69c58327-bab6-0a2a0a5309dd-0a2a4505d758-38
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 20:04:38 +0100
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69c58346-5aeb-0a2a45050019-d155802ce5fe-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 20:04:38 +0100
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-48334ee0aeaso12186045e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 12:04:38 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48725eb1ca0sm2176755e9.6.2026.03.26.12.04.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 26 Mar 2026 12:04:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1774551878; x=1775156678; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Www+RzVGJQAg3udnubMZP5EQ5/tKE2rrKmnAefzSxeg=;
        b=CZ51ZSsBT/lVikJbUUVBpMAVwUD3LHM3bzH+fwS1fEOktCRzRkDrcGu9tEQ44UJAzP
         EgeicF38SncSv1R8bkMe3MFFB2sOGqYX3hkvCDozflUbd+QrdFZ4nPAMQQ8iqT8DPIVc
         wwZ0jFxAGoAT8g9FdwZ93x37Gy+KZNyIZ+zsc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774551878; x=1775156678;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Www+RzVGJQAg3udnubMZP5EQ5/tKE2rrKmnAefzSxeg=;
        b=fT6IXdSrFvUhp5+OJgINvYBNNuid+UC4erbRvpgLvkhuZYLoXQeHQsCsbs862tdBY2
         lSt0I2965xAFQ4NjkXIpYjU/RhWSzmdP12a3+4MkcbCu7HJ1rRKLYrKMfyhwlGWQfG0B
         KJT712kAz2ZYmRY9BwjY3sOQNf9yZRj4rIEddgsDqWPq42rDlb6O8DijHuVx1kNwr3PD
         Etg3rPZURA7a9npfcFcalmpOPGeemalOwjRJ1tAsj9DHBfMDsfleOGK4EhwkhW7TGCV4
         3JjsB1dHBteGUMN/wBoiJ+FG4rOPkwJUPbLdazE+ezOd38iP8hrRGFuY+tU7dwhv7LxX
         /zqg==
X-Gm-Message-State: AOJu0Yz/cujAGm1O9xxgC+fvjGNaPL0LOtGZXfPs2cfnmG39G3m7KXts
	G7zwCLBzzg9arYk53dnXMXfu/66m2pAyzdE74AIgZjgFKX+/U2am7+21fT3cQjmXUCTQDso/rnJ
	+P15V
X-Gm-Gg: ATEYQzziGhxZVN71TVsh9vUCETZDxd8V9jEKdEu93Ztrzt7R89ofBEdgn0XRDHiFBuF
	r7FP4PUDbYeV5LT6T9HcF5UxIV6b/zYLQO4lFy18mCzJn6q00Y4TZDQeGZAl9Cga9Q12B7VDpfy
	vnve/rDI9/ddv/AxC5SpDfDWIuUHBXG/zLocT6Inst46GG5U9ojwkUeE0t2kOaKBpwCx1/l+m6e
	b8T5RzLzwM3bxaywAAMZNQpSMBlcSpSQW+PrefU57Oro3VDm9QJXLqkifDei3BgyhnrtZG8F+ns
	uAbuObhNGnD16QlMWi9GLT3RtuC/afE1aYyQTeaFebSY0Wd7dJn/XOwswoC0FkoJXnWXLkfHl6l
	p+IvRxbkN4ZtO3EBRyJettgTasuVxL3Rd+MywrIEsOypSs6tdUIgw6wvp4gT7KnRGhcwh4Lagf5
	EucYMy7HBswyFHL241TL/Mj5Zmoq6bWbWoWrd3jGTRpfY9SZsFHyUiZN70jAwxoDU0jyc3jJiP8
	U+p
X-Received: by 2002:a05:600c:3515:b0:486:fe39:28b7 with SMTP id 5b1f17b1804b1-48715fd99admr129967535e9.9.1774551877252;
        Thu, 26 Mar 2026 12:04:37 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Juergen Gross <jgross@suse.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 1/2] docs/hypfs: Adjust the hypfs layout example
Date: Thu, 26 Mar 2026 19:04:28 +0000
Message-Id: <20260326190429.1156367-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260326190429.1156367-1-andrew.cooper3@citrix.com>
References: <20260326190429.1156367-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1774551878-80F55488-CAC67424/0/0
X-purgate-type: clean
X-purgate-size: 3478

The controls for cpu-bugs were ultimately not taken.  As the paths are
documented fully below, pick only a small subset for the example.  Include
cpupool/ as it exists now.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Juergen Gross <jgross@suse.com>
CC: Ross Lagerwall <ross.lagerwall@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>

This is mainly so the patch making eager-fpu unconditional doesn't contain a
hunk editing this file with no associated hypfs logic changes.
---
 docs/misc/hypfs-paths.pandoc | 37 +++++++-----------------------------
 1 file changed, 7 insertions(+), 30 deletions(-)

diff --git a/docs/misc/hypfs-paths.pandoc b/docs/misc/hypfs-paths.pandoc
index e86f7d0dbef9..dd089d90df53 100644
--- a/docs/misc/hypfs-paths.pandoc
+++ b/docs/misc/hypfs-paths.pandoc
@@ -89,36 +89,13 @@ the hypervisors, and in different configurations.  Specifically:
 A populated Xen hypervisor file system might look like the following example:
 
     /
-        buildinfo/           directory containing build-time data
-            config           contents of .config file used to build Xen
-        cpu-bugs/            x86: directory of cpu bug information
-            l1tf             "Vulnerable" or "Not vulnerable"
-            mds              "Vulnerable" or "Not vulnerable"
-            meltdown         "Vulnerable" or "Not vulnerable"
-            spec-store-bypass "Vulnerable" or "Not vulnerable"
-            spectre-v1       "Vulnerable" or "Not vulnerable"
-            spectre-v2       "Vulnerable" or "Not vulnerable"
-            mitigations/     directory of mitigation settings
-                bti-thunk    "N/A", "RETPOLINE", "LFENCE" or "JMP"
-                spec-ctrl    "No", "IBRS+" or "IBRS-"
-                ibpb         "No" or "Yes"
-                l1d-flush    "No" or "Yes"
-                md-clear     "No" or "VERW"
-                l1tf-barrier "No" or "Yes"
-            active-hvm/      directory for mitigations active in hvm doamins
-                msr-spec-ctrl "No" or "Yes"
-                rsb          "No" or "Yes"
-                eager-fpu    "No" or "Yes"
-                md-clear     "No" or "Yes"
-            active-pv/       directory for mitigations active in pv doamins
-                msr-spec-ctrl "No" or "Yes"
-                rsb          "No" or "Yes"
-                eager-fpu    "No" or "Yes"
-                md-clear     "No" or "Yes"
-                xpti         "No" or list of "dom0", "domU", "PCID-on"
-                l1tf-shadow  "No" or list of "dom0", "domU"
-        params/              directory with hypervisor parameter values
-                             (boot/runtime parameters)
+      buildinfo/             directory containing build-time data
+        config               contents of .config file used to build Xen
+      cpupool/               directory containing CPU Pool data
+        0/                   directory for cpupool 0
+          sched-gran         "cpu", "core" or "socket"
+      params/                directory with hypervisor parameter values
+        loglvl               "none", "error", "warning", "info", "all"
 
 ## General Paths
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Mar 26 19:04:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 19:04:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264708.1556115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5q0X-0003SI-KF; Thu, 26 Mar 2026 19:04:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264708.1556115; Thu, 26 Mar 2026 19:04: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 1w5q0X-0003Rh-Dy; Thu, 26 Mar 2026 19:04:41 +0000
Received: by outflank-mailman (input) for mailman id 1264708;
 Thu, 26 Mar 2026 19:04:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper3@citrix.com>) id 1w5q0V-0003AO-T8
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 19:04:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5q0V-00EqAi-99
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 20:04:39 +0100
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69c58338-5cb7-0a2a0a5109dd-0a2a4506ea40-14
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 20:04:39 +0100
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69c58347-3034-0a2a45060019-d1558031cc84-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 20:04:39 +0100
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-48540d21f7dso14778785e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 12:04:39 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48725eb1ca0sm2176755e9.6.2026.03.26.12.04.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 26 Mar 2026 12:04:37 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1774551878; x=1775156678; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EH0X5qsNryn7DMb7Z59PuUpS3Gk/+G4mt63iwdGVrdE=;
        b=wQYqUVpbZpB+EYWhk0q7238vJB2C8to3u0K+iQuw1HlEtfdSAJBr2pSrrBAlrJE7/C
         WslUv6nJSF+8L7+d2HIRSjakPQIYNnvi4atvwIHeNj3GWIfopCB/GaIvScqyFDxZmg9B
         tSyUrquVjoRzGhtYv516Z7+lMlVoOCZP/8Q5Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774551878; x=1775156678;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=EH0X5qsNryn7DMb7Z59PuUpS3Gk/+G4mt63iwdGVrdE=;
        b=BpOzWA7TGsIjMmeC3+r6gnzSc+/cg96AC1JpuSNrqVZtjHR9FV5agrQjyL5tCY04rH
         o2VexgyqrPp+iOspCHtOzIa7dHwV2eo2ST9Rif6pabTi11yGFkkgpcUzCJOIN28vLkpq
         j15KRiqeE3hXDE5gCKzxs8RrjSYLuE/vuU0/S+QRK4cdnOBrmBqkWUupwgyNmxeqpST3
         b5aqyYhkmUiWgMW8GilCYeb6TI2EXor2sdVBPI3BRLYBM+x6+PspzTHCCcN2ZTKFv0Uh
         ZYUARhDvWD8cTla7/yhh/dnKD/hrQR1uFKR2o3kpLWV2v2T7Rk+Pd/nNizblnsD7xDUM
         pwFw==
X-Gm-Message-State: AOJu0Yz34d/vZvc2UfGBGUO5GABwtTqknARB82UnLsEjBR+QYQQOcLsG
	U7why/HyK7p9GJIFEHiUJknyHqxrTshMHIko5W0diwVkmLmIKLFjROzXwIfYZ+dsMZIoXbO6+xS
	Hvdru
X-Gm-Gg: ATEYQzzSXpbHZRta8IkedYm+oDexm4Cv9jwyveX+iLpyZl8S95o1rJV2H+qBhgapMes
	OCyeVHFCFHt3/NWySxKZLWo7i62jwRoA7ijE95oQgyyQV9/IjO14TKgafXDEdBEXtcO1hzvcjeY
	69k/sVqXFcwXBNkVWd/i7N4PN1RF4pYQjxVDNyFGddTOl1iKlP3xBgRS9Ojm8/lBlED5oPLncfP
	qo+hon9C0bsedLrJKzDTVa86PbDiojpz1DZ6AMcvSBlmFU7I1uHO+NE775XVVHa7pj/AXR/BrHo
	HTIag2r3KXsngo8T7ArBPDA3ENjOn6bxiEZVat0L3GOawg2wQijwjkE4Ta5Q38aVRHhWNGZ/oFg
	TTlHp2Y41Exlx1HgiTjzD0lwIX1CJ5rQWahn3BsQ8Fum4Ck4Q1tTiWVYIs7YrlsH3tE9EPBorTN
	5vQVq3Q0myUHz/M8zSeu5hrb0wMhkw4hrrBzzO/TzZfkyj+fDkOMS7sf2sKoz/+IiQ1P7KUyThF
	fyO
X-Received: by 2002:a05:600c:524e:b0:486:d76c:fa51 with SMTP id 5b1f17b1804b1-48716071a07mr140127405e9.27.1774551877889;
        Thu, 26 Mar 2026 12:04:37 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH 2/2] x86/fpu: Initialise FTW as well as FCW in xstate_alloc_save_area()
Date: Thu, 26 Mar 2026 19:04:29 +0000
Message-Id: <20260326190429.1156367-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260326190429.1156367-1-andrew.cooper3@citrix.com>
References: <20260326190429.1156367-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1774551879-8198F1C2-CD0F8D85/0/0
X-purgate-type: clean
X-purgate-size: 1415

xstate_alloc_save_area() configures FCW and MXCSR to #RESET values but misses
FTW.  Fixing this means that the backing memory always has an architecturally
correct value.

Adjust the comment to state that it's the #RESET values which we care about.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Ross Lagerwall <ross.lagerwall@citrix.com>

I don't understand what the rest of the comment is trying to say, so have left
it alone.  There's still a lot of cleanup to be done to merge i387 and xstate.
---
 xen/arch/x86/xstate.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
index e990abc9d18c..747df0b2e9a9 100644
--- a/xen/arch/x86/xstate.c
+++ b/xen/arch/x86/xstate.c
@@ -550,11 +550,12 @@ int xstate_alloc_save_area(struct vcpu *v)
         return -ENOMEM;
 
     /*
-     * Set the memory image to default values, but don't force the context
+     * Set the memory image to #RESET values, but don't force the context
      * to be loaded from memory (i.e. keep save_area->xsave_hdr.xstate_bv
      * clear).
      */
     save_area->fpu_sse.fcw = FCW_DEFAULT;
+    save_area->fpu_sse.ftw = FXSAVE_FTW_RESET;
     save_area->fpu_sse.mxcsr = MXCSR_DEFAULT;
 
     v->arch.xsave_area = save_area;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Mar 26 19:15:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 19:15:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264757.1556128 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5qAY-00068A-ER; Thu, 26 Mar 2026 19:15:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264757.1556128; Thu, 26 Mar 2026 19: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 1w5qAY-000683-Au; Thu, 26 Mar 2026 19:15:02 +0000
Received: by outflank-mailman (input) for mailman id 1264757;
 Thu, 26 Mar 2026 19:15:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <freddy77@gmail.com>) id 1w5qAW-00067w-4r
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 19:15:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5qAV-00458i-Dl
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 20:14:59 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <freddy77@gmail.com>)
 id 69c5855e-e002-0a2a0a5209dd-0a2a4504bbce-46
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 20:14:59 +0100
Received: from [74.125.224.42] (helo=mail-yx1-f42.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <freddy77@gmail.com>)
 id 69c585b2-c823-0a2a45040019-4a7de02ac537-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 20:14:59 +0100
Received: by mail-yx1-f42.google.com with SMTP id
 956f58d0204a3-64ad79df972so1836078d50.1
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 12:14:58 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1774552498; cv=none;
        d=google.com; s=arc-20240605;
        b=adkXrNpFMLqSOfnVe3NrNgXskxDL08oOXngiYDuz7TJZrjQFfGFs1ANl3SQ8gRIMV4
         kWRpiGDzAGfhYHnev/Pwt9TKHXS7zANJTtPmGDh7e1G8EcKHnrktY4O0ZR9cXOPcPYYg
         WCLdBo7NgbqB6vuP6e9mZTfaITlwlC4mlPKM39bkUpQWqpCm5wkf9k/QdAH7kuFE/hPx
         rT2JIjQOV8VOxn4oaYFa5cZ65KiZK1BJQ1A6HPfa6ShianVoR4tAUJzCjzL7CWr4VfjZ
         F/Nh0ptCeH+nGDV2J3eQumEvD+naW6BdTfLYsmmq8Kh8gyL25bxzZmywSp4qLnSJ5I9r
         nQfw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=lVFuSMksdyADcslAlhv6lqx1bDjOdzZURNTs4avd3vg=;
        fh=vbpVoJ5l7XM4cklfGt2URSohpvrbMSl2gtnTqP4q0+w=;
        b=ek5So7NYQMgh/07plnFNASeTRUDmqLMZFVRSn18XYphyxwfNn7Qyz89dbYpl8UGKiK
         lVPwKRhPHR+fqmsjvunE+5soB54RBhE3leRMMP8q7iyumMsGLVpRflPHdaPJAukFNMMQ
         GY2mWnBWxn6gjs4vYUoxE0OFxRk5CnCeAZfZ7J9t27B17BzgukvPq1DggkpbkCrYyJBH
         4eHqdoNTZ0LYOMXJj/F1HPXl/eAcoScmgQZyYEfGGzzpXE8S9wC1PCOp9RX+3W4TRjem
         x3NoPY2AtNDle9EsPHvus88MbPxCSRMkCu27lADvpc25qc+EsP9RoklG4vstESCCXL1e
         Zixg==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774552498; x=1775157298; 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=lVFuSMksdyADcslAlhv6lqx1bDjOdzZURNTs4avd3vg=;
        b=RmilSV2YAEuZZqTnK63j2hz7M//Ah92ykRoYQclfitg3294dA3vC8nIf3nV0jm0DYW
         FAGXP5fDNlYp5A9ioDY69u0G1qozzaj3ZQeZeXoY7mDVITxI7VqAk/ABjmB7MwevIAx2
         ku12wkuUrTq8+MwFkBOLxcBdnGxFvLxVP4IpHjFXnzk1eIgMQ05pGATu9XMS9SAodMis
         cV/KRuCfYweyJFEEzMpYTko5T/yirbHhoKWphWy0NZYOTzTmkCl9I+9BnyCFHqU6laJc
         0kyO6jiKqmNLWZ7/H8CcKEOEgBVnrP+24LMGKQzZ+AldsKiihR96zFXR5nsawW+lwaYg
         1e1g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774552498; x=1775157298;
        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=lVFuSMksdyADcslAlhv6lqx1bDjOdzZURNTs4avd3vg=;
        b=h1/XtfL+iyXCj8G5DZODNRsK8Jj6m7AhgO0asOUedlN5/TkihIATMzmqXAA5g7044q
         83qyEWYUA8z8+G6/8f79kds7eMwez3/xt/3kYLnOyg7ykK3uGDb3YcsmXBJVHsbciaz/
         NVzIsN3NLPxkSrMfP90qo52/sjHHoYSV7pMr9ZIPJUa1EZjVUB3YYOl4XMwuj7lF+QqJ
         ws/JCqiwUQe0AbnDUPS7B+z6E1lDxeydBPs78s/emwgQ8+ltxrfaQta+q/8GCeQ659vg
         5E4W1uuFDAWNJxGzJIk0XUumEpuUUatzXjxho4LnKcTIiEkqtumjn5Zgd+OuWZxMQ0yT
         U3jQ==
X-Gm-Message-State: AOJu0YyEncvMP1ssjzE9hy90smlu0H/+TdVBERf2MeBRbF4Va86qGird
	MdDq5gyzOn8jG4Ai3J4vNIXuH3/DA8vcdyG9SIF1NtUAZRF5n+JyKaI3HG4fHYG6mQns1bbOptv
	pyAB9Vc2A2aVyU6+2ltvG9XbMOPjhZ0M=
X-Gm-Gg: ATEYQzxHbgZJ54O06++HOXNXdhtCjXx/sBU2hEP4fGVbc2iP98L9G+yxyvvhm8Q4ds3
	UnZeff2s137Jpu8s2nujOAK/wuTNrIitbNsoGoFqYdnSJz2wFY6+IgKoDov++ImV/ujWDafaqHA
	OYLJqaCofNDnwRsiOqB5bLMFtTVjzEoFLd09fi4eZkLSwZZuzQkufv1xMrYZ+O6Dj+yhP/OWMEU
	g84HgiAXUw1Rz2Cau27TjQZUnO374+XKwQ13t1FDrQsE4d+u51UOhMgYM/pEh0KjeTty/6H2J4O
	9KE5QIXcfQQHa9er
X-Received: by 2002:a53:c986:0:b0:64a:e959:b3be with SMTP id
 956f58d0204a3-64ee6382833mr6734046d50.71.1774552497616; Thu, 26 Mar 2026
 12:14:57 -0700 (PDT)
MIME-Version: 1.0
References: <CAHt6W4f0iSN5vqbPHTCv6dLdoxUFXivoPX8BYV+gurxxv9q66Q@mail.gmail.com>
 <acUDmOqvggJfmhHu@macbook.local>
In-Reply-To: <acUDmOqvggJfmhHu@macbook.local>
From: Frediano Ziglio <freddy77@gmail.com>
Date: Thu, 26 Mar 2026 19:14:45 +0000
X-Gm-Features: AQROBzBQZ_pkw89o0LWAXpKoJp7MBwY460TB1LFSHHkxuPpnpnx_z5OvlQstXhs
Message-ID: <CAHt6W4fDAPpTB5kj_TdtPa3Of=shrtOtqyh3AsEkOeaam2q=5g@mail.gmail.com>
Subject: Re: [PATCH] xen/x86: Check supported features even for PHV dom0
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-ebf023/1774552499-BBA969D1-4658C0A4/0/0
X-purgate-type: clean
X-purgate-size: 4684

On Thu, 26 Mar 2026 at 09:59, Roger Pau Monn=C3=A9 <roger.pau@citrix.com> w=
rote:
>
> Typo on the subject s/PHV/PVH/.
>

Fixed.

> On Wed, Mar 25, 2026 at 03:55:28PM +0000, Frediano Ziglio wrote:
> > The supported features ELF note was tested only if the dom0 was
> > PV. Factor out a function to check ELF notes and reuse it even
> > for PVH.
> >
> > Signed-off-by: Frediano Ziglio <frediano.ziglio@citrix.com>
> > ---
> >  xen/arch/x86/dom0_build.c             | 16 ++++++++++++++++
> >  xen/arch/x86/hvm/dom0_build.c         |  3 +++
> >  xen/arch/x86/include/asm/dom0_build.h |  2 ++
> >  xen/arch/x86/pv/dom0_build.c          | 10 ++--------
> >  4 files changed, 23 insertions(+), 8 deletions(-)
> >
> > diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
> > index 864dd9e53e..c6bb2f8067 100644
> > --- a/xen/arch/x86/dom0_build.c
> > +++ b/xen/arch/x86/dom0_build.c
> > @@ -321,6 +321,22 @@ unsigned long __init dom0_paging_pages(const
> > struct domain *d,
> >  }
> >
> >
> > +int __init dom0_check_parms(
> > +    const struct elf_dom_parms *parms, bool is_pv_shim)
> > +{
> > +    if ( parms->elf_notes[XEN_ELFNOTE_SUPPORTED_FEATURES].type !=3D
> > XEN_ENT_NONE )
>
> The patch seems to be mangled here?
>

email client, sorry about it.

> And the line is too long otherwise.  You might want to consider
> returning early here, to reduce the indentation of the following code
> block.
>

The line is actually exactly 80 characters, so it fits.

What about combining the 2 ifs instead ? In this case I would probably
need to split the line.

> > +    {
> > +        if ( !is_pv_shim && !test_bit(XENFEAT_dom0, parms->f_supported=
) )
>
> I think you want to pass the domain being built to this function, so
> you can do a check like:
>
> if ( is_hardware_domain(d) && !test_bit(XENFEAT_dom0, parms->f_supported)=
 )
> {
>     printk(...
>
> That way you don't need to explicitly check for pv-shim mode, and
> would more naturally work with things like
> Hyperlaunch/dom0less/late-hwdom.
>

It's not clear why. Are you saying that dom0 could be a no-hardware domain?
Wouldn't that change introduce a regression?

> > +        {
> > +            printk("Kernel does not support Dom0 operation\n");
> > +            return -EINVAL;
> > +        }
> > +    }
> > +
> > +    return 0;
> > +}
> > +
> > +
> >  /*
> >   * If allocation isn't specified, reserve 1/16th of available memory f=
or
> >   * things like DMA buffers. This reservation is clamped to a maximum o=
f 128MB.
> > diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_buil=
d.c
> > index d69a83b089..ca96f32acd 100644
> > --- a/xen/arch/x86/hvm/dom0_build.c
> > +++ b/xen/arch/x86/hvm/dom0_build.c
> > @@ -699,6 +699,9 @@ static int __init pvh_load_kernel(
> >      if ( !check_and_adjust_load_address(d, &elf, &parms) )
> >          return -ENOSPC;
> >
> > +    if ( (rc =3D dom0_check_parms(&parms, false)) !=3D 0 )
> > +        return rc;
> > +
> >      elf_set_vcpu(&elf, v);
> >      rc =3D elf_load_binary(&elf);
> >      if ( rc < 0 )
> > diff --git a/xen/arch/x86/include/asm/dom0_build.h
> > b/xen/arch/x86/include/asm/dom0_build.h
> > index ff021c24af..a322bf455c 100644
> > --- a/xen/arch/x86/include/asm/dom0_build.h
> > +++ b/xen/arch/x86/include/asm/dom0_build.h
> > @@ -8,6 +8,8 @@
> >
> >  extern unsigned int dom0_memflags;
> >
> > +int dom0_check_parms(const struct elf_dom_parms *parms,
> > +                     bool is_pv_shim);
> >  unsigned long dom0_compute_nr_pages(struct domain *d,
> >                                      struct elf_dom_parms *parms,
> >                                      unsigned long initrd_len);
> > diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.=
c
> > index 075a3646c2..9d0310ad91 100644
> > --- a/xen/arch/x86/pv/dom0_build.c
> > +++ b/xen/arch/x86/pv/dom0_build.c
> > @@ -494,14 +494,8 @@ static int __init dom0_construct(const struct
> > boot_domain *bd)
> >          return -EINVAL;
> >      }
> >
> > -    if ( parms.elf_notes[XEN_ELFNOTE_SUPPORTED_FEATURES].type !=3D XEN=
_ENT_NONE )
> > -    {
> > -        if ( !pv_shim && !test_bit(XENFEAT_dom0, parms.f_supported) )
> > -        {
> > -            printk("Kernel does not support Dom0 operation\n");
> > -            return -EINVAL;
> > -        }
> > -    }
> > +    if ( (rc =3D dom0_check_parms(&parms, pv_shim)) !=3D 0 )
>
> pv_shim is a global variable, you don't need to pass it around.
>

Okay, but in the other call I was always passing false. What do you think?

> Thanks, Roger.

Frediano


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 19:35:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 19:35:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264779.1556138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5qUD-00010x-6X; Thu, 26 Mar 2026 19:35:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264779.1556138; Thu, 26 Mar 2026 19:35:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5qUD-00010q-2K; Thu, 26 Mar 2026 19:35:21 +0000
Received: by outflank-mailman (input) for mailman id 1264779;
 Thu, 26 Mar 2026 19:35:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w5qUB-00010k-F6
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 19:35:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5qUA-0048It-By
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 20:35:18 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69c58a4f-5cb7-0a2a0a5109dd-0a2a450cec88-20
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 20:35:18 +0100
Received: from [52.101.65.134]
 (helo=DU2PR03CU002.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69c58a75-f93d-0a2a450c0019-34654186f59c-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 20:35:18 +0100
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by GVXPR03MB10552.eurprd03.prod.outlook.com (2603:10a6:150:153::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Thu, 26 Mar
 2026 19:35:13 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%6]) with mapi id 15.20.9723.022; Thu, 26 Mar 2026
 19:35:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fSRBJhs71sMJ6V5JvIJCqtyqpAAhcK/tP5wfgEDExJlSoTWMatpm/mcufYHcFe3+Vy21kjAGWbhM5JW8dG3L8pD8eBwOU81p0TnmF+Gl7aSL2NOgRXPZPtW2JNN/XtCwSJzeZ6S9bKR73Gco2aN1s4lC8+bBYnlDhN9taABFB0C4F8YfMjJ4WbO8xXZ2/TlqOOVfiir10C931f6dA056uVo9IxoV59rB2wzYvcKB/bbv1uY1kQibyVMhVjD5jgTqTpkrTrHxmsZ2QCPdgskSSRGzG5leb70FkYr1fjhRQvW9NV/qt4h9lhy1/PeFWw3VCfqD/jdE9InC1a6ebTujIQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NQDYybMQvCacvL5rb1fB8/Klqvp0bufgXnXFP6iNGlM=;
 b=nPa3tAKrgo34qSKAv9v/q3Fl9onDs0oEbt/mSzzbMlnNuLWrHTQuAhVGb5CNiocC58taZPoWqb6AATu7ZWYtXY7Mx8cAqP/Y6itrM1nBKlHFKh5mRnCB31dJY0MuQAAlt3ZRmXAAfif6SIMl1epZXYkKHwiDVa+qecAS0cOHpMj2svnZlp59j2QKdbc2FW7UF5di/TRH7vSTlUeG3bp4nYixyeGJnDtOdbZFbdCcIDPUA++MleIKuwa+rS4o+xIHITXyx90Horh5nKN7TnazkhRdxySMU4Gk1bGdrqr9YPpTLBZAPToMI+w9gjvxWOTfTMVr5L3CMKnT8Zed0D2yOg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NQDYybMQvCacvL5rb1fB8/Klqvp0bufgXnXFP6iNGlM=;
 b=V1pDk4kjClFSNgmhOfpE/8lcmuHlgwFW9B+47qULg/zJHtlQKUGS947yQmrrz/u9b9XNr6zNjPUQ9mCEHjqNw8BtqTbD7VJzy5kpqfnmUv377N6WhJIF11U62i1+AFlNNPyZ94+KRa9gqVIu+saq7euJ8ShyUSa4sIakBkb8VT6JokJoxhOHJlqnaS9Jm1C+QeP+0WQk+c6oLhlmj5pIZUky8X5SIIqI90eOf5/kS3nFrkswMWyZDQibYTPDVwEu3ITRjBr56gfzhVc6g2ZMZTPwRtceBGj7J91LvDVqzcB03NzIe7vzreoIk2F7hT2BHqbntGrohVeWwY7OYopMxg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <71b248ac-dad5-4a0b-aa09-20c970aa6c85@epam.com>
Date: Thu, 26 Mar 2026 20:35:10 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 06/23] xen/domctl: Add XEN_DOMCTL_CONFIG_VIOMMU_* and
 viommu config param
To: Nick Rosbrook <enr0n@ubuntu.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Rahul Singh <rahul.singh@arm.com>, Anthony PERARD
 <anthony.perard@vates.tech>, George Dunlap <gwd@xenproject.org>,
 Juergen Gross <jgross@suse.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
 <f04d9186eb3b83a4f5fb27db412bf10fb6fb092c.1774305918.git.milan_djokic@epam.com>
 <CAEN5XSFA4AdFKXGiyYW58=Ltm+uVRrsSxGrNCC3T8UdHtivcnA@mail.gmail.com>
Content-Language: en-US
From: Milan Djokic <milan_djokic@epam.com>
In-Reply-To: <CAEN5XSFA4AdFKXGiyYW58=Ltm+uVRrsSxGrNCC3T8UdHtivcnA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR2P281CA0130.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:9e::11) To VI1PR03MB5088.eurprd03.prod.outlook.com
 (2603:10a6:803:c2::20)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: VI1PR03MB5088:EE_|GVXPR03MB10552:EE_
X-MS-Office365-Filtering-Correlation-Id: 4dd8daf4-366f-4bbe-c4dd-08de8b6ecc68
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	LnDgs60ZTQHkHss48kL211teHVd38OlK1kwcsg5qFCp6cMl2if0QS8tUJMs7+1RBixFzJruZnmgxuASKYTuSmpn+bth6g63bBYDgYCD5+gUpGR0g0gJT6/02WEqDW2CfIogRfKpfW3d2cnh2R6g/ukYmNumHSqM4uF1y73IvHvu1BvgZAo60bXvdmJDjot2IAc8A7/FyyC45yoExAo8AvAdGTcBEvqmSLLey/OFOeInrRvP8CioT/HmwDh2Dc54JmP3lc/Di6wHcylWbs815p8lFaSbROvI50zBszX5D99v47NWJT5OghyCef/Ks36V3vEuDUSMcoGcLY+bEucDmYul30kS3GicvZsEInyeUeS3LcBAR1mvyApWE4mQCRZfyuSletYFRlH+cWEVK62l333/UyPrlVhYrBJkIEMegGCSwr70iu2OJCmbw+csCvBoxRMV2vFLdXgE/TCbplMmWOBV8YI/LQbK9gprC3UtfYgpFcxi1/D9040/PVGv7IR6ilJrPApqG30yuQc0jSDG0i7YhsFgzpECbeob6QsfMKme9XU9HANoZQxQCbQyxTErygjL6E2m0kGBwoLX0bls+nb1/ubnZ6xjrF5t10hxZaX+hnb8ESyWjoZLKrnyz/z/xy5zkqia0YxZL/KmMKbZ+AKVOx/4LMA0+RWz3cIHSu9hx6Et8U/BU1zB3sKisG0UpdU3GcEt66ZkAGYEQcsuOGkV0R64jpHlDOzqLDNQ3uF4=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VnlXUkUyYUJuSEkwNy9HZzYycHJvRWh1OXZlVmJCSFFQMGIxSVRvL1F0YUxu?=
 =?utf-8?B?NFNsT2hYRmlEcjZmcVJOaHZuMVBiRitvdFptNG0vVGZna0pHdjRUUnpMVEVr?=
 =?utf-8?B?WlpRVmY4TVlKemk1azNlaC9BNXJCa2t6clM1aWFyTnFrdzV2aEx0NFFQN1Jy?=
 =?utf-8?B?bkFvVHVvRXdDdjZyTFZMNzRIejJ1NVhTM1lYS0RHU09Fb043T3JwR29jeTlW?=
 =?utf-8?B?OStFbHQ1b2xoaStmcXpsVXNuYUFnVzU3ZjZOWVg4SWd3ZFJmQ0xtTkt2bEJ4?=
 =?utf-8?B?c0FJK0gzV2I4YUNMQkpTU0ZxazhJMEN5KzhMOG1FR1ltUys1SFA3aWdOalZ6?=
 =?utf-8?B?Q0RMVzV3djFOR1U2TUhVMUhVSG9tbVJ1ZGViZW1md2twRXpuelpvenlwOGs3?=
 =?utf-8?B?eHlrcjB6VFI3eS9EMGlEWTgyZ0g0S1dway9VWEY1aXZTT1BERHBjUStuUVQx?=
 =?utf-8?B?UTlLZ0JZWkh1VDhVTzlRRno0NUJrOUR0L2I3eEhYSXRNVXFVMHVpNUJaU1N0?=
 =?utf-8?B?SmI3dkNwcEF4dk56TUN6bnZTRmdYdi9vR1RXdDh6MzRicTl1enZidlAxV3Zk?=
 =?utf-8?B?UHhKUWkxYjFXd0huMkxEN2dxOVRaRkNtU2Jsd21BN1paS00rbWRFckR1TXRa?=
 =?utf-8?B?elN5NGhadGNxQk5jQ2p2OGVpaWo4bjUrNmo2YVpuQUlsRXgyTWxKejlDTDRX?=
 =?utf-8?B?UGpNMHlodlJoaHhUNm5HY1NjOXpDd2UxU05RYzZWOHVicDF2YSswaDVkbVFk?=
 =?utf-8?B?ZnFBWTRvajZzbGNYR3U5d1BPNWo2aGFFNnBUV1V3Y2M4YmJUZFVnSjVyV1lO?=
 =?utf-8?B?dUVrdlJXYjYyT1VHdXhURWdHM0VON2ZBYXVYVnpsWVYwenFiY3VFY1E2NXZW?=
 =?utf-8?B?TW41R0FsTlRPdkhsV01FNkdWOFRQZzR2WHpKVklIK0hHOG1WMU1FMVNpSFZh?=
 =?utf-8?B?Z3BYa2lFaWkrRHdEb2dSY2lFN0xBM2tsZmluZ0N4Qjh5M2dQemMySVU4ZVRx?=
 =?utf-8?B?dXlpeEhJTlJXZ0t4bWZrbEQ5QTI3Nlp4UkpXVnpnOGhJb0Q2clIvSWtjQ3Qx?=
 =?utf-8?B?RGhUM3JoaEd4V2hIOFYyYytzc1haYU9wSVNJQ2dnNElYZ1dnRGh4NFdYZHlj?=
 =?utf-8?B?Z2ZWYncycTVuNk9WdVBkeEU5aWxYRm1mdHVPdG5ESytjMVFXb0dCMlloYloz?=
 =?utf-8?B?NWRZdU8wM251TUs4dDIzd0NJOFdoTkxSK1BKUEJzK01yTXhKSXZXMnRpVGpO?=
 =?utf-8?B?RzRZRFljY1haQkhibEppdk94Rkk1emMyTWdMbTJpZDUyWTVndkp6cmpES20y?=
 =?utf-8?B?L2ZFbkJsWG55ZWdCRlVNRXdYdnNEaktCeUQzQTN1cE1jdzdBOWlFMm14RDBa?=
 =?utf-8?B?d25vcHpqdElzNmNQRHZmMFJBMXdPeDVrVlcxNXdNWHQ4RFMrMXYvUndWMFp3?=
 =?utf-8?B?NUd2VlRGd0hmWmtnbTNLUjFlUG9XaVVqLzJadjFKK0lqdHYvbzVsNnQ1Q2Jl?=
 =?utf-8?B?ZnZpbVYrclozUzBWME1ZanJEZ25OZUNtSUNGWHBsUVpOdFFlNUtrbXJidkcr?=
 =?utf-8?B?VDh3WE5vbGFKdDV0Uzg4K1lqUWVVZDV1S3RKT2hLaEtNak5kWGZSUG0yeUhi?=
 =?utf-8?B?U08xTVRJZzV3S1RkVm4zTzMxSkYwRElJUEpjU3NSU2hodjdMMkZrV09KaUR0?=
 =?utf-8?B?RW02bUZvQVliM3pnREViREczNnk0VDlsMm5LMld1NlVDOGN6VFZkVitwVDR3?=
 =?utf-8?B?djVLUmRFNnlXMUxpMzFsQlc5d2JOZVFHMzVPNnFqK28zbTd5S01uOERrOWdF?=
 =?utf-8?B?VFpkdDMyeWk3WmZTVm14cm1pTUdOMmtLK1Z3eFM4bWNvWm9ady9WY3A1ZVoy?=
 =?utf-8?B?YTZETWZuNHpSSnZxaEtiV2IrQk1FUm1iczRxTWRlemZhZS9OTHNydHI3K1c3?=
 =?utf-8?B?TUpwMWNGQ1pJUng3M2dscVVNRTNVSlg4L244SHlReUVpY21XTDZMVjdnc1VE?=
 =?utf-8?B?bm9Cc1I2R1NtYjVxbUdTNERmRG9yOWRGWWNZVGc1ekhiZmJxcE95SkMvdzRy?=
 =?utf-8?B?eEpoMHlwVjhhTW1tcDdBaGxiM1AvSkJaTGR3V0dIV0kzR0ZqLzc3OXdsbUp1?=
 =?utf-8?B?NEdyZlQ5NXlYTERjdjZscnovMmhrRWowMFNTaWVmejQwWU8vTTBlVFpRWGRV?=
 =?utf-8?B?VVNEY0d0TUl3YWhRWUtxT0tMdFlxeHlvVjF2NE5tSWJzdFlLQW4xK0I1c0x6?=
 =?utf-8?B?L2xmODF2KzJEamNpZlFBUWR1MndFNHBmUGprZTI5WnNWZWwwQi9nL0pWV1RC?=
 =?utf-8?B?V2tWR0VXQnovTUdHMElCckdGNzVyWktLVko4aXRZdmFYZDNVRGptdz09?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4dd8daf4-366f-4bbe-c4dd-08de8b6ecc68
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 19:35:12.7773
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ghOiFnHiZyg4xPWefTClvqfZaG8AuhDMj9WJGPZKDsPzClsuvSCOwR1yRSxlsXQtM+UYNsoQLomezjKeKg4roA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB10552
X-purgate-ID: tlsNG-d25034/1774553718-F62B1734-F51B042A/0/0
X-purgate-type: clean
X-purgate-size: 6764

On 3/25/26 19:52, Nick Rosbrook wrote:
> On Mon, Mar 23, 2026 at 6:51 PM Milan Djokic <milan_djokic@epam.com> wrote:
>>
>> From: Rahul Singh <rahul.singh@arm.com>
>>
>> Add new viommu_type field and field values XEN_DOMCTL_CONFIG_VIOMMU_NONE
>> XEN_DOMCTL_CONFIG_VIOMMU_SMMUV3 in xen_arch_domainconfig to
>> enable/disable vIOMMU support for domains.
>>
>> Also add viommu="N" parameter to xl domain configuration to enable the
>> vIOMMU for the domains. Currently, only the "smmuv3" type is supported
>> for ARM.
>>
>> Signed-off-by: Rahul Singh <rahul.singh@arm.com>
>> Signed-off-by: Milan Djokic <milan_djokic@epam.com>
>> ---
>>   docs/man/xl.cfg.5.pod.in             | 13 +++++++++++++
>>   tools/golang/xenlight/helpers.gen.go |  2 ++
>>   tools/golang/xenlight/types.gen.go   |  1 +
>>   tools/include/libxl.h                |  5 +++++
>>   tools/libs/light/libxl_arm.c         | 13 +++++++++++++
>>   tools/libs/light/libxl_types.idl     |  6 ++++++
>>   tools/xl/xl_parse.c                  |  9 +++++++++
>>   7 files changed, 49 insertions(+)
>>
>> diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
>> index 27c455210b..f69cdee55c 100644
>> --- a/docs/man/xl.cfg.5.pod.in
>> +++ b/docs/man/xl.cfg.5.pod.in
>> @@ -3162,6 +3162,19 @@ option.
>>
>>   =back
>>
>> +=over 4
>> +
>> +=item B<viommu="N">
>> +
>> +To enable viommu, user must specify the following option in the VM
>> +config file:
>> +
>> +viommu = "smmuv3"
>> +
>> +Currently, only the "smmuv3" type is supported for ARM.
>> +
>> +=back
>> +
>>   =head3 x86
>>
>>   =over 4
>> diff --git a/tools/golang/xenlight/helpers.gen.go b/tools/golang/xenlight/helpers.gen.go
>> index 8909fe8a1b..4f0997f02f 100644
>> --- a/tools/golang/xenlight/helpers.gen.go
>> +++ b/tools/golang/xenlight/helpers.gen.go
>> @@ -1195,6 +1195,7 @@ x.ArchArm.NrSpis = uint32(xc.arch_arm.nr_spis)
>>   if err := x.ArchArm.ArmSci.fromC(&xc.arch_arm.arm_sci);err != nil {
>>   return fmt.Errorf("converting field ArchArm.ArmSci: %v", err)
>>   }
>> +x.ArchArm.Viommu = ViommuType(xc.arch_arm.viommu)
>>   if err := x.ArchX86.MsrRelaxed.fromC(&xc.arch_x86.msr_relaxed);err != nil {
>>   return fmt.Errorf("converting field ArchX86.MsrRelaxed: %v", err)
>>   }
>> @@ -1734,6 +1735,7 @@ xc.arch_arm.nr_spis = C.uint32_t(x.ArchArm.NrSpis)
>>   if err := x.ArchArm.ArmSci.toC(&xc.arch_arm.arm_sci); err != nil {
>>   return fmt.Errorf("converting field ArchArm.ArmSci: %v", err)
>>   }
>> +xc.arch_arm.viommu = C.libxl_viommu_type(x.ArchArm.Viommu)
>>   if err := x.ArchX86.MsrRelaxed.toC(&xc.arch_x86.msr_relaxed); err != nil {
>>   return fmt.Errorf("converting field ArchX86.MsrRelaxed: %v", err)
>>   }
>> diff --git a/tools/golang/xenlight/types.gen.go b/tools/golang/xenlight/types.gen.go
>> index ab9d4ca7b4..8a37b52a82 100644
>> --- a/tools/golang/xenlight/types.gen.go
>> +++ b/tools/golang/xenlight/types.gen.go
>> @@ -610,6 +610,7 @@ Vuart VuartType
>>   SveVl SveType
>>   NrSpis uint32
>>   ArmSci ArmSci
>> +Viommu ViommuType
>>   }
>>   ArchX86 struct {
>>   MsrRelaxed Defbool
> 
> The generated go code doesn't look right - it appears to be missing a
> definition for `ViommuType` and the associated constants for the
> "viommu_type" Enumeration added to libxl_types.idl. Does the code need
> re-generating?
> 

Yes, I will re-generate the code in the updated version. Thanks for 
noticing.

>> diff --git a/tools/include/libxl.h b/tools/include/libxl.h
>> index bc35e412da..f7d5c77e23 100644
>> --- a/tools/include/libxl.h
>> +++ b/tools/include/libxl.h
>> @@ -318,6 +318,11 @@
>>    */
>>   #define LIBXL_HAVE_BUILDINFO_ARCH_ARM_SCI 1
>>
>> +/*
>> + * libxl_domain_build_info has the arch_arm.viommu_type field.
>> + */
>> +#define LIBXL_HAVE_BUILDINFO_ARM_VIOMMU 1
>> +
>>   /*
>>    * LIBXL_HAVE_SOFT_RESET indicates that libxl supports performing
>>    * 'soft reset' for domains and there is 'soft_reset' shutdown reason
>> diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
>> index 7e9f8a1bc3..a248793588 100644
>> --- a/tools/libs/light/libxl_arm.c
>> +++ b/tools/libs/light/libxl_arm.c
>> @@ -247,6 +247,19 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
>>       }
>>       LOG(DEBUG, " - SCI type=%u", config->arch.arm_sci_type);
>>
>> +    switch (d_config->b_info.arch_arm.viommu_type) {
>> +    case LIBXL_VIOMMU_TYPE_NONE:
>> +        config->arch.viommu_type = XEN_DOMCTL_CONFIG_VIOMMU_NONE;
>> +        break;
>> +    case LIBXL_VIOMMU_TYPE_SMMUV3:
>> +        config->arch.viommu_type = XEN_DOMCTL_CONFIG_VIOMMU_SMMUV3;
>> +        break;
>> +    default:
>> +        LOG(ERROR, "Unknown vIOMMU type %d",
>> +            d_config->b_info.arch_arm.viommu_type);
>> +        return ERROR_FAIL;
>> +    }
>> +
>>       return 0;
>>   }
>>
>> diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
>> index d64a573ff3..c7ad0e77b2 100644
>> --- a/tools/libs/light/libxl_types.idl
>> +++ b/tools/libs/light/libxl_types.idl
>> @@ -561,6 +561,11 @@ libxl_arm_sci = Struct("arm_sci", [
>>       ("type", libxl_arm_sci_type),
>>       ])
>>
>> +libxl_viommu_type = Enumeration("viommu_type", [
>> +    (0, "none"),
>> +    (1, "smmuv3")
>> +    ], init_val = "LIBXL_VIOMMU_TYPE_NONE")
>> +
>>   libxl_rdm_reserve = Struct("rdm_reserve", [
>>       ("strategy",    libxl_rdm_reserve_strategy),
>>       ("policy",      libxl_rdm_reserve_policy),
>> @@ -736,6 +741,7 @@ libxl_domain_build_info = Struct("domain_build_info",[
>>                                  ("sve_vl", libxl_sve_type),
>>                                  ("nr_spis", uint32, {'init_val': 'LIBXL_NR_SPIS_DEFAULT'}),
>>                                  ("arm_sci", libxl_arm_sci),
>> +                               ("viommu_type", libxl_viommu_type),
>>                                 ])),
>>       ("arch_x86", Struct(None, [("msr_relaxed", libxl_defbool),
>>                                 ])),
>> diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
>> index 1a2ea8b5d5..dcae8314fe 100644
>> --- a/tools/xl/xl_parse.c
>> +++ b/tools/xl/xl_parse.c
>> @@ -3033,6 +3033,15 @@ skip_usbdev:
>>           }
>>       }
>>
>> +    if (!xlu_cfg_get_string (config, "viommu", &buf, 1)) {
>> +        e = libxl_viommu_type_from_string(buf, &b_info->arch_arm.viommu_type);
>> +        if (e) {
>> +            fprintf(stderr,
>> +                    "Unknown vIOMMU type \"%s\" specified\n", buf);
>> +            exit(-ERROR_FAIL);
>> +        }
>> +    }
>> +
>>       parse_vkb_list(config, d_config);
>>
>>       d_config->virtios = NULL;
>> --
>> 2.43.0
> 
> -Nick

BR,
Milan



From xen-devel-bounces@lists.xenproject.org Thu Mar 26 19:53:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 19:53:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264811.1556146 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5qlh-0004CE-Ib; Thu, 26 Mar 2026 19:53:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264811.1556146; Thu, 26 Mar 2026 19:53:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5qlh-0004C7-Fs; Thu, 26 Mar 2026 19:53:25 +0000
Received: by outflank-mailman (input) for mailman id 1264811;
 Thu, 26 Mar 2026 19:53:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w5qlg-0004C1-KC
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 19:53:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5qlf-0006M9-Uc
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 20:53:24 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c58ea6-5cb7-0a2a0a5109dd-0a2a4507a94e-20
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 20:53:23 +0100
Received: from [40.93.201.25]
 (helo=CY3PR05CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c58eb2-fd74-0a2a45070019-285dc919677a-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 20:53:23 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by LV3PR03MB7657.namprd03.prod.outlook.com (2603:10b6:408:291::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Thu, 26 Mar
 2026 19:53:20 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.022; Thu, 26 Mar 2026
 19:53:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=myWduz52BppqMCZw+byz23OGtj91oWzOwE1HmwLKOnl29Eabcl1SHQWCoYX+sQY3jGF88kjBGAdiA3BvMY8si2ywRPerpAt8dRg2QnBmnktSGeHGiDqjqmyhNY3UkXvEjNEIWBP/q2nsnWOz9AUOJecZBq0XatPgYFYpWAivVHTaGc1bRoLxvpkRTjprmt0uekQtRPU6wNsKSs9JrQafp1YtEiM9jYcZ6Lud/4gDkD2MIWt7iYda2pbkuktKAGT7UGJrpsuOm7t6mDB6arura+7ON0Hil3JLWlDdRZvHOFYYeF7FiFSIM9e1LBFLYQ7j3I+CuG1g0vAcWFqeoNfdNQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2amyyJKzVNrwfOjO9KDSBbBLdfcMa3o2+yjMt/+W8lw=;
 b=lpArVPrZKzxWnD3BJ7papyXdjvGXVLFO6v17KsEHVpUxitNDcprC1HS3QWHsPtToU5USe+IoKhkyk0fxj9ljNLHUa/4vLvSBfRak+H+V+0rqEirmHbV+1N+2D7YSQNnlqhAqAZ5VGzRSoKKAqVGMmLT9zr/UcAX4n+XesyVv+QFzbvVrx2Fl8PlosaNX7P9MnXv1/PLP8A+Q1O1NedRJUNOr6GIZXAtlD5NWFXgNLwSMQ71L9LVlvCOIAgpxOzT8vX+/e+ziCh+Gmf3pYOY3TWybeHzwM0j1fuVANLcM7E0I8Qu8oAT5y8xp4dRzKMTxLR9y5hysgY6jJzdAL1tcIw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2amyyJKzVNrwfOjO9KDSBbBLdfcMa3o2+yjMt/+W8lw=;
 b=aZDqPhuyFxDqC0G1aNKMd1v02aimyOcV5qKnZh9rUuPJnMQcUf1vlE3N+2H0EQmXM5v2bsRgWXlXIow29HHQAKOuMUE7AQdK+ZBcLxV+H3YegWi3RqC7hW//tMOur7gJZQlAUUk+Otjmgiek1lz+41ppQLjLCwuCyT47SjTxPHk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 26 Mar 2026 20:53:16 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Frediano Ziglio <freddy77@gmail.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] xen/x86: Check supported features even for PHV dom0
Message-ID: <acWOrAJGKLnmyBnf@macbook.local>
References: <CAHt6W4f0iSN5vqbPHTCv6dLdoxUFXivoPX8BYV+gurxxv9q66Q@mail.gmail.com>
 <acUDmOqvggJfmhHu@macbook.local>
 <CAHt6W4fDAPpTB5kj_TdtPa3Of=shrtOtqyh3AsEkOeaam2q=5g@mail.gmail.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <CAHt6W4fDAPpTB5kj_TdtPa3Of=shrtOtqyh3AsEkOeaam2q=5g@mail.gmail.com>
X-ClientProxiedBy: MR1P264CA0151.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:54::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_|LV3PR03MB7657:EE_
X-MS-Office365-Filtering-Correlation-Id: eab5a90b-8bb3-44e0-b3c4-08de8b71544c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	x7lpsjW1I6koZRTprMeSSyd4oX6LiWG5x5xoX0It+xlsqfMilMjjjHm3zDokxe0dzHpWU0R2rU6ey/kbo02fVji5diAGuMziMZ+etUx7rGGqvam7lR+J7jlcux3EYbfBqex38sroMc12e0pQjlh/HjrDKixTYrE0Mcb+8rUhFiNMVaII4QHE6hJxeghQSxboSc7he+Ae+O5tchsXamfAOMmBP08EDgikgoYrsxzz/Q+mnWZWbcWz3TpD7/PxyF4QdSD/QEyT61XhdjzADrOh5O5potIUTbAPYR6d/9MSBPdpweTXrc9dGpZtjQQRWZPYlFGLSILdq03p9tVrcoR2DaglpvaHgs8amjzzjBEVemhAx+MXqWjPn37bcVxOrFuy36zbPnoJjc+2NzPKyFwJ2ocTfGAsPnJVd04po/NCuDZl7mXs5ZsoMb/9Xu25zYZXViQzBUMxF/pW5xO100SEbRb7VaG6SDHHLAwLjUjjRvROPseNnhN9oh4/RRy5pAFJz63D2cI0K2EEDSA8YYJqVhfhosbKUfhV+YtWakcgmSuRPvym7m8YHkZNn6kMLUGS8+/9eouZzuYUbQoNJEtFxB+ztdPBVviNSn7us4YtL5o1E9AFWoV5wElt3mqusx2o96d81vAIVeNmwpEpIyvf/iIKoJ9S2dWG+UAE2eMZEICdonp1IqABSW1rzroBwNyN03pBaeF/sydyRbLpF2YYi6AKmNi0mYwc4XMXmQeUvVA=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aCt1Mis3U2tuYlhVWmJrclcxY0I4TW1kSERiTFlJS2JJVndCMHlYVGM3ekR1?=
 =?utf-8?B?UzlscXBtdWREa1dPSW5lSUlZRGVKQkl4TEJ4ZjNEdlhwVElRNkNvTVlwbjVo?=
 =?utf-8?B?ak10U0hpdnpJVGpLRlQ1bm1kNUVWSjdPbkJvVnhjYXFzZDZPdkExakUyRFdH?=
 =?utf-8?B?MnpKdUZuSys5QWMwcE5QU0d0WTBrSHhEM2ExOStYWTVIUzVLRWw1MVVoRm92?=
 =?utf-8?B?cEtzQkk1WjdJM1g2cU9GNmRmQS80U2xnZk9hdzc0S3VqcjRCdHJobENsMHhm?=
 =?utf-8?B?WSs1YXh1M3lHeWVwaWd3Ny9nOHhtSGhEdS9QdzZFQkwzNHdwYkIwbFJ5TXJk?=
 =?utf-8?B?RTJTcmdxZFd3TGlrcFJlcW9ZRlVUbms2aUdJWEUrdDNZeGhucEhEK0Q3QjNQ?=
 =?utf-8?B?Nzcya2NHUCtPTlJKbnJJU09Id0dsL1RIL3lBZUx1S01MYjhUV2Y4TXhMdDZS?=
 =?utf-8?B?YkxUMit6ajJJcEcwMThzZWlZcFVubVpzOXJNai9JZ1BvYWRYZkc0VndkN3No?=
 =?utf-8?B?K3JobW1pZHRMV05WeWFYUmhpckRGYTR5M0gzcEoyVUhtZVVwUkJCOWZiWEda?=
 =?utf-8?B?REFSSW9uTGdUbTBiNHZNTENubUdoOWZxNnVKZEozRW04dDl5a094QnZhR3Fv?=
 =?utf-8?B?Q3BldmRZS09MK1dYazVaaTdFL2prSU9CUEREOTNUTFBZUmJiMmNSVklUTzNU?=
 =?utf-8?B?TGt6SUVhTVM2VFI1QnNxNE0wT096YnVNUHFYL0x3VEk1c1NhSyt3NWsrSUFw?=
 =?utf-8?B?K21HUUVIaFhJTm5sL1RTNWNxejdGaUlKRnpaVkhDd1ZiL0xHU1BDdHNwRHVq?=
 =?utf-8?B?OGl6azlHbHlRclNJeVNoOGtJS1BzRjVJNmxQRmhscDA0bUNMYU8yZGVzMmJr?=
 =?utf-8?B?dzU4VVhsb2ZLSkpQaWFkMFo3Y2pHNGM3YUE5Q1QyNHdQdWs5TVBhT2VtVFhJ?=
 =?utf-8?B?M1hvbTFibjB1NTd5YlJ3YzlSdU9hRzRRWDR6eG9nUE9MVWVZcEV3Y2RDRzcy?=
 =?utf-8?B?Um9LM1lWN3pHa1FkNGFicndBWVkzcnlSZG9kWmVGdUdSc3A4ZWJubmpTVW4y?=
 =?utf-8?B?NzlRUEI1MStIV0EvV2padTI5K2lsRjZQN0JDTzhMTmNaR2E4aU1VajBYN2th?=
 =?utf-8?B?VXZzSm9JaTRmOTlCTitqek1UMHhySEJRMG9iOXF5NlhHYi8wWEZOTmhIOTdF?=
 =?utf-8?B?THc1WHFkZXgxWmdQZVFwa2M4MnhtTEJJU0hSQ20yQzYzQlhleW4yb3BwRGwy?=
 =?utf-8?B?d2JET1hITDFLRDdDZGtSV3hnaXdGU1RrZ2pmdENYYlFNYjU5VDhHcjFYRzJj?=
 =?utf-8?B?Z2psdE9HYzZuSXBEbDFQRW9mWE8ydmNZZHVGR1dZTjVFZmNWTkJPcXB5Tkcy?=
 =?utf-8?B?dVd5SlRmTHpSdTVzamxuVTBGa0h1dHQ5SkpxV2xqeFhWMnNNMi9ib2xEV0da?=
 =?utf-8?B?MXFtTmhSajd5eGx6VElVVnpoNzJzZmFsM3hWbEdndmk4bWxJTDhrQWdHa1ZS?=
 =?utf-8?B?dm5jRS9rRGlTTUJmWWJRRU5Hc0wwZXIzblJod2pxMlBtanpKKzBpVVZCbmRp?=
 =?utf-8?B?Zyt1L0V0SVZSRkYvM3dFQytPMVpRTzc2VERsa3BoK2Q3QUxyMUFqQjkzdEtH?=
 =?utf-8?B?OTNMYlF5aHVYeEdtWWRtamVWOHcwR1RmQ09zdWpTOXlCYmM3dFF3Yk1LY3px?=
 =?utf-8?B?aXdCNHdmZ0dMRTdpTFN6dFZqTVJORzZkSUM2R25ydUtFUjFUTVA4eEVBWWVO?=
 =?utf-8?B?T2xvc1pNN1VWVS9ZVG9DUCtHUjNLejR2M2k2S3R3Y3R3SHlHc1VQZzBRS3Ft?=
 =?utf-8?B?U3ZScjJtUFA2R29INEpWOHZMRmwxdHZxcEFjRlVORWdXVGtNMzVEdnhQcWl2?=
 =?utf-8?B?VEtyZlN5ZUFienpKcUdNMitXM0JoWVlDSHF4OUFSbjRaOUhnKytxam5wcU1W?=
 =?utf-8?B?M01sV243NEhYWWluZUhjcDdWWkhQZ3NudTVzdzFvOE43UVpaZ0FOWnBXRHN6?=
 =?utf-8?B?NzJVREJFS3gwcHNrc2hGOEIxU3lvNXMxcVpCMG9nTjJwTHNRODNLWTRTbXhq?=
 =?utf-8?B?VUdPUHZJbVNoZDc1em5LVi9jSklNZTN3MWVOUDlkY2hLU3o5MlRuekc4Y011?=
 =?utf-8?B?TXltWGdhQ2NkZ0hzaGlvT3VxMVF0ejZhUVVhQXdIUjZrOThIK0xTZEh2K1Jn?=
 =?utf-8?B?THFaWGJETTVUS01YOUMwTzJEM0J2N01HMERPc3BGRk1ySlg0SEQrdzRBa0lr?=
 =?utf-8?B?NFc0Y3FFcCsxZ0dpL0lWSjRFR1laOHArQzd0aFFhUlhabEY0aXBLR2VTcThG?=
 =?utf-8?B?a2ZIOUtoT21zUkNDQlhmSEE0VUY4dmZXUnhkMTdxaUZxSEhVYjJXZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: eab5a90b-8bb3-44e0-b3c4-08de8b71544c
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 19:53:19.8295
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: z7Ae9NtGCr8zmRKno+eHr6e5GfaiTNF+J/s+38Igy2hsRV5HDhajCIHXHP2RJbkgDkZvsS2N8Yu2QqJYI5mZRg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR03MB7657
X-purgate-ID: tlsNG-ef75cf/1774554803-5DF80303-6B3C05BE/0/0
X-purgate-type: clean
X-purgate-size: 5900

On Thu, Mar 26, 2026 at 07:14:45PM +0000, Frediano Ziglio wrote:
> On Thu, 26 Mar 2026 at 09:59, Roger Pau Monné <roger.pau@citrix.com> wrote:
> >
> > Typo on the subject s/PHV/PVH/.
> >
> 
> Fixed.
> 
> > On Wed, Mar 25, 2026 at 03:55:28PM +0000, Frediano Ziglio wrote:
> > > The supported features ELF note was tested only if the dom0 was
> > > PV. Factor out a function to check ELF notes and reuse it even
> > > for PVH.
> > >
> > > Signed-off-by: Frediano Ziglio <frediano.ziglio@citrix.com>
> > > ---
> > >  xen/arch/x86/dom0_build.c             | 16 ++++++++++++++++
> > >  xen/arch/x86/hvm/dom0_build.c         |  3 +++
> > >  xen/arch/x86/include/asm/dom0_build.h |  2 ++
> > >  xen/arch/x86/pv/dom0_build.c          | 10 ++--------
> > >  4 files changed, 23 insertions(+), 8 deletions(-)
> > >
> > > diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
> > > index 864dd9e53e..c6bb2f8067 100644
> > > --- a/xen/arch/x86/dom0_build.c
> > > +++ b/xen/arch/x86/dom0_build.c
> > > @@ -321,6 +321,22 @@ unsigned long __init dom0_paging_pages(const
> > > struct domain *d,
> > >  }
> > >
> > >
> > > +int __init dom0_check_parms(
> > > +    const struct elf_dom_parms *parms, bool is_pv_shim)
> > > +{
> > > +    if ( parms->elf_notes[XEN_ELFNOTE_SUPPORTED_FEATURES].type !=
> > > XEN_ENT_NONE )
> >
> > The patch seems to be mangled here?
> >
> 
> email client, sorry about it.
> 
> > And the line is too long otherwise.  You might want to consider
> > returning early here, to reduce the indentation of the following code
> > block.
> >
> 
> The line is actually exactly 80 characters, so it fits.

Sorry, I didn't count correctly it seems then.

> What about combining the 2 ifs instead ? In this case I would probably
> need to split the line.

I wouldn't combine, in case more XENFEAT_* needs to be tested in the
future (I doubt, but you never know).

> 
> > > +    {
> > > +        if ( !is_pv_shim && !test_bit(XENFEAT_dom0, parms->f_supported) )
> >
> > I think you want to pass the domain being built to this function, so
> > you can do a check like:
> >
> > if ( is_hardware_domain(d) && !test_bit(XENFEAT_dom0, parms->f_supported) )
> > {
> >     printk(...
> >
> > That way you don't need to explicitly check for pv-shim mode, and
> > would more naturally work with things like
> > Hyperlaunch/dom0less/late-hwdom.
> >
> 
> It's not clear why. Are you saying that dom0 could be a no-hardware domain?
> Wouldn't that change introduce a regression?

TBH it's unclear to me what capabilities does XENFEAT_dom0 signal.  I
assume it's the ability of a PV kernel to boot as the hardware domain,
which is slightly different from a normal PV domain.

AFAIK dom0 could be a control domain only, and delegate the
hardware management to a hardware domain.  Whether the current code
can really do so I have no idea, as I've never tested it.

I don't think the proposed change introduces a regression.  It
limits the XENFEAT_dom0 checking to it's intended domain type (if my
understanding of XENFEAT_dom0 is correct).

> > > +        {
> > > +            printk("Kernel does not support Dom0 operation\n");
> > > +            return -EINVAL;
> > > +        }
> > > +    }
> > > +
> > > +    return 0;
> > > +}
> > > +
> > > +
> > >  /*
> > >   * If allocation isn't specified, reserve 1/16th of available memory for
> > >   * things like DMA buffers. This reservation is clamped to a maximum of 128MB.
> > > diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
> > > index d69a83b089..ca96f32acd 100644
> > > --- a/xen/arch/x86/hvm/dom0_build.c
> > > +++ b/xen/arch/x86/hvm/dom0_build.c
> > > @@ -699,6 +699,9 @@ static int __init pvh_load_kernel(
> > >      if ( !check_and_adjust_load_address(d, &elf, &parms) )
> > >          return -ENOSPC;
> > >
> > > +    if ( (rc = dom0_check_parms(&parms, false)) != 0 )
> > > +        return rc;
> > > +
> > >      elf_set_vcpu(&elf, v);
> > >      rc = elf_load_binary(&elf);
> > >      if ( rc < 0 )
> > > diff --git a/xen/arch/x86/include/asm/dom0_build.h
> > > b/xen/arch/x86/include/asm/dom0_build.h
> > > index ff021c24af..a322bf455c 100644
> > > --- a/xen/arch/x86/include/asm/dom0_build.h
> > > +++ b/xen/arch/x86/include/asm/dom0_build.h
> > > @@ -8,6 +8,8 @@
> > >
> > >  extern unsigned int dom0_memflags;
> > >
> > > +int dom0_check_parms(const struct elf_dom_parms *parms,
> > > +                     bool is_pv_shim);
> > >  unsigned long dom0_compute_nr_pages(struct domain *d,
> > >                                      struct elf_dom_parms *parms,
> > >                                      unsigned long initrd_len);
> > > diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
> > > index 075a3646c2..9d0310ad91 100644
> > > --- a/xen/arch/x86/pv/dom0_build.c
> > > +++ b/xen/arch/x86/pv/dom0_build.c
> > > @@ -494,14 +494,8 @@ static int __init dom0_construct(const struct
> > > boot_domain *bd)
> > >          return -EINVAL;
> > >      }
> > >
> > > -    if ( parms.elf_notes[XEN_ELFNOTE_SUPPORTED_FEATURES].type != XEN_ENT_NONE )
> > > -    {
> > > -        if ( !pv_shim && !test_bit(XENFEAT_dom0, parms.f_supported) )
> > > -        {
> > > -            printk("Kernel does not support Dom0 operation\n");
> > > -            return -EINVAL;
> > > -        }
> > > -    }
> > > +    if ( (rc = dom0_check_parms(&parms, pv_shim)) != 0 )
> >
> > pv_shim is a global variable, you don't need to pass it around.
> >
> 
> Okay, but in the other call I was always passing false. What do you think?

I think just using pv_shim directly in dom0_check_parms() is easier to
follow rather than passing it around.  But with my suggestion above
to use is_hardware_domain() you might not need to check for pv_shim.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Mar 26 21:05:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Mar 2026 21:05:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1264851.1556156 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w5rtO-0005cH-M5; Thu, 26 Mar 2026 21:05:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1264851.1556156; Thu, 26 Mar 2026 21: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 1w5rtO-0005cA-Hm; Thu, 26 Mar 2026 21:05:26 +0000
Received: by outflank-mailman (input) for mailman id 1264851;
 Thu, 26 Mar 2026 21:05:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w5rtM-0005c4-Lb
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 21:05:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w5rtM-00F3QR-1g
 for xen-devel@lists.xenproject.org; Thu, 26 Mar 2026 22:05:24 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c59f88-e002-0a2a0a5209dd-0a2a450880aa-12
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 22:05:23 +0100
Received: from [40.107.209.45]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c59f92-1950-0a2a45080019-286bd12db129-3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 22:05:23 +0100
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BY5PR03MB5110.namprd03.prod.outlook.com (2603:10b6:a03:1f0::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Thu, 26 Mar
 2026 21:05:19 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9745.019; Thu, 26 Mar 2026
 21:05:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iPpDi3b69Lj476m+Na6ZxiM1VPiRPmV7M8XytDhIgaKv/lg4lImnnSE4ZrTGg2GMVZt9jhFZoDTVLW/yMGr3BAFOG/+f2Yp2afArTFFOGnhTyZrr/skpMkzTV8w6hYt5SmNQaPnCE92ALcvAnE4IwrvbKRfXyRfI3QkLCIJCryZI3gQ/QPkhOuqgjbBgbbx1R4ZVFabQXg9Bk0QN/iP7nfCTaalKDihGoHwTu2j+B3BzIC9T02nTEdJv+vDoJh6tAt7GZwgOnXr53PMskrOYQMaa7xLucp7LaGyQszLYeDLzS79KIf03v7FPbPv2MCICkzxCdzbxfTem5+BPVsPXRA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZyXi2mDw2yn5bYl8URswAtqjBe1qdET2GRNQUUqZMLo=;
 b=CtMDHXNV2HcT1IGiFJm2y3vYfVCXkhguDDNI8Deynwn1+YPwiYxgIloO9mIqCyH+pah2TUtUBjqKAjcjjMUwUCv9NYEnteEa9hbheOFHxZzuFLZmsICzWck1bt+Hv5puFKVM1rYZL5Frk47+jVsr99IU1vyHNV6IUyd0N0JFqqCRCfi8XUwLQrnkcUqrzVTcnwVK/eWSoXDrEt+AoWAcqdm5GeZy8HfCWi+li08VdyklC6LTRXQ4m93I5iUEvj1Md9kddtmrZE8WZKITToOSAU3ddTeXvAhlqAqULTjzWBDASEunog+3MsZ/YnOWFMv/YLz+qBHz1T/bArV3JCmn+Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZyXi2mDw2yn5bYl8URswAtqjBe1qdET2GRNQUUqZMLo=;
 b=ThTU1I9xdcf4x7GuFfkpr40ZQa0jJdusGjiBKeV6L81DcUeZAxL4pR9WylSTMBTT5m8m8SJq+n7C1tXCT46lTjChi4XCZn+7HKdyd2v1VIMISYbevgeDoCcMXNnH8IhBWTAQt42/zd3eoib0c3ExY+RMBaV2i1eAReWBnq3l+YI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <08a02b65-92f5-4e78-8c34-38a22ae4d906@citrix.com>
Date: Thu, 26 Mar 2026 21:05:15 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 2/2] x86/pv: Provide better SYSCALL backwards
 compatibility in FRED mode
To: Jan Beulich <jbeulich@suse.com>
References: <20260325170208.1115832-1-andrew.cooper3@citrix.com>
 <20260325170208.1115832-3-andrew.cooper3@citrix.com>
 <059588cd-d73e-40a1-98b4-65be01957d41@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <059588cd-d73e-40a1-98b4-65be01957d41@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0089.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:190::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_|BY5PR03MB5110:EE_
X-MS-Office365-Filtering-Correlation-Id: 2477e2bf-f3fa-4d2c-692d-08de8b7b6322
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	m5+rC1Z+xTVE1mou5SDlODBD2/gLeJbd6kIbL7vy88weooFJsR5KCQtDFRXeebFgzSCqrrfAnKp43ubYc4TwCB52rv9nwrTuuVlszEu0HijRkNV0IxzIGCkW1dGJiqwe/ITYL38wv/63bvjdZwn7fIBx+6lTPd066NslAu6jWexhfoTFVxSTpEJITMzNrnJc7qTxZ61QtTlV5k7CbiGF/5a8Db74VzV0L3Rdv97VmLfjSY6nbceAK2QOLZA/izeN1gFTUHTiezax6x9vZJl0hRruXXINSHCVDrPIbb9Jr3wyTBOh4fKJB0T74IMcuCC9rqPTWQzqUK+vRpb15UOXeSqvl5QkG0s0JLU7ZCa4JVIfTuN4ESF9Ox9ALfzpTjLklayK4WYO2QoG4MkUbLZ249vJtUuOpYtr1wp0iti5IJOFbn5ReiQTGeip5sCEbGEbPkEuRb1uonYKpgFgZw2dr3QBoWiPTL5qpaHrDN7juZHRYHEaElrlClah3YOkCrBw/DrhoGvkIuN6ykzh7tqgiil6kc0lxksCuUj70/OAEVtR2X7kYNsIdEpbZCBpLlSTfV4/QETwNdzT9WLhFiXJH/k8ji3f+qZj8a8bDyyi9WUdVoolkF5qlf1+VBAX6R4+Yvg3MYPr6/8UuYHwZkDfHogNwh4Qq3Uk9Gy5OGfeCSzYnN+MoKa9qkUuRYX4wIQYXwp3Vac9dNRBqq/afwdd8jejxZgQf6e8wxmuxTBInK4=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZzNhS20rQVZVSzIzVzdrSWIzS0pEeklURXR5Ymw2OGpIY2hkUVNPM0pSbmFJ?=
 =?utf-8?B?Y0plTUdOa2xzNVR1UjM1TFI1bDI2THB1eUl6TnY3UXdUbDhYbGErdmYyN0J6?=
 =?utf-8?B?L0RQcC9sZ2tOYVRobEhGU0ZFWHoyZXM1c3g3MGx6Y0RrV1ZndXlIQ3VoYW1V?=
 =?utf-8?B?ZlVENWVmQ1BaZ0lKMm1BZXk0WXRGMFVNdWJVWjcwTEZVdnA3NzhBMjBQV254?=
 =?utf-8?B?TVRmQzlhZ0lZcnpYS1NRNWo0WGw1VlBRRnhlZDJyMTV5clBNbldWWUdqWktT?=
 =?utf-8?B?bU4ySWVrZmp0M2RTdi9UbkhIYWVBRERueGdmREJPZlQ1M20xdXF4dzdkbkpO?=
 =?utf-8?B?R0I0cEFMR3dMY054dmc1VlRiaHhmZEtsOWpLaUVqM2VNS0lrSjJDaUhoczFl?=
 =?utf-8?B?aFRybmxLNWYyZ3dvUGtrMno0NjQyRlphS1g4VE9KZ2RlZEJmSEhCN1NIaXRI?=
 =?utf-8?B?MkFsSDBjQ1RtQnZydHJQekFxNE5waVVVSW1MaG5veTlLUCtiQlFWblhJTUNu?=
 =?utf-8?B?eVB4c0FuWlU3TGwrUlR2c2dDZkxpMkJoREVYY05aVFFoOFExOXBlM3lWd09B?=
 =?utf-8?B?U2UyKzl2SkQvbllab3lvRDM2YXozV2JJOGJmMzNxVlZGUlBOODA5cndZTDh1?=
 =?utf-8?B?c2tjeVVGaklBYzRqZTlPbU40WkZoVEFGOXlxWDdIYTJjb1hlUlFsTjBmalBE?=
 =?utf-8?B?d2VmTm52cjFJamVla1A3NlZpSTl0YzNHVEV2QURCNVZVT2plZEk1SU5YMDFx?=
 =?utf-8?B?MEMvdWZGZkpNZHNEczJOT0gxZlFxNExVdFlGODI5RTlJMlQra2FmTnlETkx2?=
 =?utf-8?B?VTdySFVzSG5yZjVYak1ER3hEZmtMSStacTk3a29QWVpNdTVnNWMzU3JKMDBo?=
 =?utf-8?B?dGg4RVUrWGxsUitlVkhIK3VEL0JaNXVZZVZYYzdwbmd3N01NeHpvZkZhYmVp?=
 =?utf-8?B?WnVONGpMUUtYOHUvaVV2blQrR3IvSU9PemRQSitVQjUvOW91TVlyOVlkOEh1?=
 =?utf-8?B?d1hBVUthT3pUeEplWHlkb1oxUlhqaEpPZFVIQ3JXaU41TTBOQldvTUdyTlFQ?=
 =?utf-8?B?WEdRMDdBT3FlVU1rRFdWc2xsNGNWczkxeS9aWVR2MC8rS1ZCcURMazU0RHUv?=
 =?utf-8?B?RmpPQUxWVlJJbGNKSXdpZTE1aUNqTkk1VDhVK2l5cktrcFppaFlpWENWcmVT?=
 =?utf-8?B?RFh4dFVLR2JWR0NzelVvQjhWNThNbG9BemZDbnJubVJUTzVwbVZZVnVOaHNR?=
 =?utf-8?B?K0NrUXUwZlFxeE10b2dxb2pScmFvMWZSQ0FLY3h1ZURJakx1VmhsN3dNcG5v?=
 =?utf-8?B?YlQ2aGVFbzdsR1J4QUtkSXRQOVFrNnRKL2tRL1ZzaDdWb0VobkRaTzAwR25K?=
 =?utf-8?B?VktwOXZQSy9nRzFGSzdRUGR1K3h3UnlST3VJS1VsS3A4NEdHNEhYMStBSDl1?=
 =?utf-8?B?T2F2eUlhZkY1S0tjaFhzMmxXSnVPVm5yRzIzM1oxenZkT2g3Z29nSnI3TmZZ?=
 =?utf-8?B?VUhHVTlxNDJPSFBVSzU1T21ZV0llWjBQZnM5NFlMcVRaUmFqcUJsQmN6bzdz?=
 =?utf-8?B?M1EyN2daV2Y3THp3VmUrSS9PUHlqenNiSnRxRy9EcTJIcm9QcmFNMGlEOWw3?=
 =?utf-8?B?U0RtakZUUVJ6cTN0aXovOEpEOEJTWGo1QzVTR3l5RVF5b3N5ZzEzTjdtY3Ro?=
 =?utf-8?B?ZEVwdnIxL0JhVXRvMHZ2OGEyeWFsU1NyRlptQWFJS0dvazkydjFjeXlXRnYz?=
 =?utf-8?B?ZjVmV0pTQ2RTbEwzdTgyZ3I0NXBOVHI0TWpJb1Q0bVdUbUpGWnk1WE1BcG91?=
 =?utf-8?B?YWZrbDd6TzJ6TWVvenpabzdyTmZQbzMwUGZaSG1PcWM2bWdEbk1mNDBGU1Uy?=
 =?utf-8?B?VlRaQXBEWUt3OG5TQUJFcmt5cnZ3TnF1VUVqSnRxemwzOTd4Qzd5UUtGaDd6?=
 =?utf-8?B?N2NvUjJxNEJmaEl5b21aNys4Yi81QkcyOVJaT2hmTmg3d1dEanE1MzgyZ25T?=
 =?utf-8?B?b3FIV2FqblhRWUVsWERNYzRVQ2tJSmIxRDR3YkNaMVFSVnR1M29JZzUzVlg5?=
 =?utf-8?B?TFdNbm1NaFJ2a05YdE5BbzF6VHJDck9DOTFmNUhnV29ZUE5wcXMxN0FhZjJr?=
 =?utf-8?B?TlFvTnhUaXB3OURHSzFaV0llSmNCbVN6RzY3RlFGc1hUTjhZcjZraFMzMkl5?=
 =?utf-8?B?Z1ZjTTIvYUNNaWlIUmZtdDV5WC9kRm1oa2Rzdy9jblZneUZBZXA2ZStMR3Vp?=
 =?utf-8?B?TnAvbHdFZkxKcmRLTW9uTVNnU3hiRi9IWHpwVThvT1QzTlJRV2ZTV0JVaXNj?=
 =?utf-8?B?TDU1RjN5N2tDRjZPclVNeWVnUzdLVE5CdEgxQlhqa2hhQlYzVlhqZ09xSXNk?=
 =?utf-8?Q?wmFaHgmEddN6cOMA=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2477e2bf-f3fa-4d2c-692d-08de8b7b6322
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 21:05:19.4568
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Ar0YFoqixvX8TQy2ODCkQxzA5LucLoRY+e3HOuQ+5wRl16chgQssaNs+Q4Iafu5skGUS9FfQA9/0+PtuY2UXeDwMWHf0aXmPTT6z5Ejwu1U=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5110
X-purgate-ID: tlsNG-c1860d/1774559123-F0A19726-7E58D241/0/0
X-purgate-type: clean
X-purgate-size: 3975

On 26/03/2026 9:14 am, Jan Beulich wrote:
> On 25.03.2026 18:02, Andrew Cooper wrote:
>> In FRED mode, the SYSCALL instruction does not modify %rcx/%r11.  Software
>> using SYSCALL spills %rcx/%r11 around the invocation, which is why FRED not
>> doing this goes largely unnoticed.
>>
>> However, consider the following migration scenario:
>>
>>  * VM suspends.  Hypercall, so SYSCALL, %rcx/%r11 left unmodified
>>  * VM moves to a non-FRED system
>>  * Xen resumes the VM with a real SYSRET instruction
>>
>> Instead of resuming at the instruction following the SYSCALL instruction, the
>> VM is resumed at whatever dead value was in %rcx.
> Would it? In restore_all_guest we load %r11 and %rcx from the stack
> frame's EFLAGS and RIP fields. If we didn't, various other things wouldn't
> work either.

Hmm.  I suppose so.  regs->rip/eflags is always going to be
reconstructed properly for the records in the transmitted stream.

What will be wrong is the %rcx/%r11 put onto the guest stack.

>
>> --- a/xen/arch/x86/traps.c
>> +++ b/xen/arch/x86/traps.c
>> @@ -2405,6 +2405,8 @@ void asmlinkage entry_from_pv(struct cpu_user_regs *regs)
>>  
>>              regs->ssx = l ? FLAT_KERNEL_SS   : FLAT_USER_SS32;
>>              regs->csx = l ? FLAT_KERNEL_CS64 : FLAT_USER_CS32;
>> +            regs->rcx = regs->rip;
>> +            regs->r11 = regs->rflags;
> Don't you also need to set TRAP_syscall here, for the new code in
> eretu_exit_to_guest to actually make a difference?

It is create_bounce_frame() which sets up TRAP_syscall.

>  (There actually is
> a paragraph about this in the comment out of context above, which then
> may also want adjusting.)
>
> Further a question as to limiting overhead: Doing this on every SYSCALL
> entry ...
>
>> @@ -26,7 +27,16 @@ FUNC(entry_FRED_R3, 4096)
>>  END(entry_FRED_R3)
>>  
>>  FUNC(eretu_exit_to_guest)
>> -        POP_GPRS
>> +        /*
>> +         * PV guests aren't aware of FRED.  If Xen in IDT mode would have used
>> +         * a SYSRET instruction, preserve the legacy behaviour for %rcx/%r11
>> +         */
>> +        testb   $TRAP_syscall >> 8, UREGS_entry_vector + 1(%rsp)
>> +
>> +        POP_GPRS /* Preserves flags */
>> +
>> +        cmovnz  EFRAME_rip(%rsp), %rcx
>> +        cmovnz  EFRAME_eflags(%rsp), %r11
> ... and every exit-to-guest isn't very nice when concern is about just the
> specific case of migrating FRED -> non-FRED. Couldn't we instead make the
> adjustment when generating the save record for the register state of the
> vCPU?

Ignoring migration for a moment, there are two further cases where
things go wrong.  Consider a VM which logically does this:

    // user mode
    SYSCALL
    mov %rcx, dbg_syscall_was_here

    // kernel mode
entry_SYSCALL:
    ... setup stack
    mov %rcx, UREGS_rip(%rsp)


Both of these positions under FRED have unexpected content in %rcx/%r11.

In userspace it is common to spill %rcx/%r11 and restore them around
SYSCALL, but that's not an ABI.  This is addressed by the hunk in
entry_from_pv().


For kernel, the only reason CALLBACKTYPE_syscall functions in the
slightest in staging right now is because Xen gives the guest an IRET
frame and Linux doesn't need to reconstruct UREGS_rip/eflags manually.

In this case, it's baked into the PV64 ABI that "you will be entered by
SYSRET, so you must pick up the interrupted %rcx/%r11 off the stack",
and it strictly only applies to kernel code, and more than that, the Xen
specific parts.

If this were the only problem case, we could make an argument to say
that it would be a compatible change in the PV64 ABI, except we still
get into problems when the guest kernel is using HYPERCALL_iret in
SYSRET mode.

Linux is dealing with this problem by adjusting their unit test which
spots it to skip this test when FRED is active.  I'm not convinced this
is the best move.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 06:12:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 06:12:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265069.1556164 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w60Q8-0003TJ-4V; Fri, 27 Mar 2026 06:11:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265069.1556164; Fri, 27 Mar 2026 06:11:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w60Q7-0003TB-Ue; Fri, 27 Mar 2026 06:11:47 +0000
Received: by outflank-mailman (input) for mailman id 1265069;
 Fri, 27 Mar 2026 06:11:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1w60Q7-0003T5-24
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 06:11:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w60Q4-0019wv-5F
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 07:11:45 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69c61f91-e002-0a2a0a5209dd-0a2a45019a50-8
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 07:11:45 +0100
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jgross@suse.com>)
 id 69c61fa1-6400-0a2a45010019-d1558035c17c-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 07:11:45 +0100
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-4838c15e3cbso13761675e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Mar 2026 23:11:45 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48722d38a5fsm70246435e9.12.2026.03.26.23.11.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Mar 2026 23:11:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774591905; x=1775196705; 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=AW0lJOLP2s52E+qeBa0kT3gPMLIGh0wMizIYKT1QZBU=;
        b=a7VMBENV5B+5FHi7cBxRB/0VT7z90Vdny4Arc7NzzWyKd1CHLcz4tiatateQe3YBLx
         H6hZdDA3ov6BWGf9/0iKE+gCveltARDHESrFXiNwZLJ1p54oNxiXramg9ZSk71Z0AOTc
         7/ejKuJICraIPy0yF3K9fUhDdUtB/VdX8ZdMWb3g8Y4UOJE2XjS/DSG8c1VZHxwtW/Ms
         WRRm5ncTNjQBgWNOXUubCrU6aI3RewiPitYezpqMK5sR948aj1nC0YlCdX81+EGE5gmE
         U4nNiBEYmJcMcCI0c1hQkiPmyse/n2Vu2hXjTdGa6BldT/eV0wpzPjdepZtfAXo0Cjqm
         GcwA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774591905; x=1775196705;
        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=AW0lJOLP2s52E+qeBa0kT3gPMLIGh0wMizIYKT1QZBU=;
        b=NZxVbMsz1f6/gkvQcYXS0u7/Q5coXBoZzGlruRONhMAqwN1EoGoODbkqksH5X+pFiv
         OWtf8YzMnRybrrwy9GugBIfyVASbfgKxxy+nfGwjYv6GIuz3ztooklz89vpLR9iUKpbr
         Pd4NSZlQSwYUHttAcktTkNXKpAD4GOrpICQuFgrlwMfm2pwI0n3rq/oJyvKJyX+W2H6H
         ZwxweJD/LASsTmnTuy9VqpfBYIIP9RyGUKgIZuKlXb4hvI7CZisyPDymqD2pNAuQqd2U
         1ebRbA3XfRkbyJv426mq4Cjal7X751inNLtG0yE8ISmDj0/xKCYJF9fM0TZiL91rClGM
         LK6A==
X-Forwarded-Encrypted: i=1; AJvYcCX/orzU+QOusw7h3yZ9KgmhJz5z1xisKTMs3rrM3m1Y+SUOivN7PUxxNFNzCbCS7VjTJH6U/M74Wu8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzet8vg08TDQjXM/Zx2vqxRMB6deF84kVyd4pMDQK6mv7yLFwST
	uWkBbrlapHn6ztYH99LbJDqM8DS6l65aDssd5TzidHGNwty3rTCrGx7Ke1jM4Irc0/wqVvI0t0l
	VNZSU
X-Gm-Gg: ATEYQzxQxIdd5Zc1MPDWvZIR/o6IfGOr3A700w6V7r2jidfLEEYvyuYcJAcrDflNMk9
	8Sg0oIJewigRLvfbHj4kfJS3PvvwNpI836OqwvKOiMQQ2ZoJCuc59SAQqtjNq2P9MphlvdGMkA4
	viNjyibXbU5emp8J+qDGjsADpZUMiHEg3B/GWwDi306p5wztIDKWX7urQqx1BaitjO+XBo5MwcI
	7tNjGuin20LOCmlHOX3Ru//q5gL69FIDFp9oxUiCS4INo/HF7JcF1/0uRE8qsHFYB2oDZZpThzt
	W2r526bb7x7Tkm4Ly5opBezLrlXyyZti9KlgsWCttPhBFXSRfJLbyBT3rXgxVurARWFoDf4NHSr
	VmXpX9k554TV8Ok6e1DuCHmvQVPL4gLDyiNPjBhHz0/o/gCeSodC3BiDa1PqxOilYz3BTHkewgt
	eXiV+j7Re6cSmoQdBZQmRpmEY5LM4AWfWHWQCnUecuIvKkJIEfQ6nqhPc2y/E+QdE3eYq34kyZ8
	JL2QgBDeM52rb/9AD7R6rUMkK2Ux09gY+2eC7D/MITX5JJk5zYQKQ==
X-Received: by 2002:a05:600c:528e:b0:485:4bd1:4c64 with SMTP id 5b1f17b1804b1-48727ef55fcmr18158845e9.31.1774591904771;
        Thu, 26 Mar 2026 23:11:44 -0700 (PDT)
Message-ID: <8585d79b-ee7b-4add-b82c-d62cfd5325f9@suse.com>
Date: Fri, 27 Mar 2026 07:11:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] docs/hypfs: Adjust the hypfs layout example
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
 Anthony PERARD <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: <20260326190429.1156367-1-andrew.cooper3@citrix.com>
 <20260326190429.1156367-2-andrew.cooper3@citrix.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20260326190429.1156367-2-andrew.cooper3@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------EOaywGaswtyv9becHtV7GXVS"
X-purgate-ID: tlsNG-d62444/1774591905-200C9DF3-77DBCCA1/0/0
X-purgate-type: clean
X-purgate-size: 8297

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------EOaywGaswtyv9becHtV7GXVS
Content-Type: multipart/mixed; boundary="------------aWgKdCHDzsKeCkmPdvkJC0OT";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
 Anthony PERARD <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: <8585d79b-ee7b-4add-b82c-d62cfd5325f9@suse.com>
Subject: Re: [PATCH 1/2] docs/hypfs: Adjust the hypfs layout example
References: <20260326190429.1156367-1-andrew.cooper3@citrix.com>
 <20260326190429.1156367-2-andrew.cooper3@citrix.com>
In-Reply-To: <20260326190429.1156367-2-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=

--------------aWgKdCHDzsKeCkmPdvkJC0OT
Content-Type: multipart/mixed; boundary="------------CGPNT0tlSy0JapgGTsl5O2y4"

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

T24gMjYuMDMuMjYgMjA6MDQsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IFRoZSBjb250cm9s
cyBmb3IgY3B1LWJ1Z3Mgd2VyZSB1bHRpbWF0ZWx5IG5vdCB0YWtlbi4gIEFzIHRoZSBwYXRo
cyBhcmUNCj4gZG9jdW1lbnRlZCBmdWxseSBiZWxvdywgcGljayBvbmx5IGEgc21hbGwgc3Vi
c2V0IGZvciB0aGUgZXhhbXBsZS4gIEluY2x1ZGUNCj4gY3B1cG9vbC8gYXMgaXQgZXhpc3Rz
IG5vdy4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29w
ZXIzQGNpdHJpeC5jb20+DQoNClJldmlld2VkLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NA
c3VzZS5jb20+DQoNCg0KSnVlcmdlbg0K
--------------CGPNT0tlSy0JapgGTsl5O2y4
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-----

--------------CGPNT0tlSy0JapgGTsl5O2y4--

--------------aWgKdCHDzsKeCkmPdvkJC0OT--

--------------EOaywGaswtyv9becHtV7GXVS
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/Ey8FAmnGH58FAwAAAAAACgkQsN6d1ii/Ey9X
sgf8CNayvPIqMDkES4r+TLSSKZb2uPv/puUHcMCpih8ibK73Fkdtg5L5BC1iV6YYiUPj0YfhjLFj
/np1gYKShm7LmJq1QwNb197bAGucE1B02jMOicLlO/NnAph6j/4PUNa3FWhPIbHeaC0WoMyTtc3f
fuqTmLT4R75r0b1uVpZ063vWnG0LOeX70mORkEIPlSFKbN/+R3s4DnhsggqknXbx5mg1p40xobM5
bwGuoftP9smgR8cFrn6EKtG2BzTeq132bsPZUNN/pMaZpvaupT5UwSJ1/FCRTBhCDvpzCv9QlaBu
LfjYVEn3aL60IaHjlwQNzcp+i/r9/P3G+lUENO7b3Q==
=6LD6
-----END PGP SIGNATURE-----

--------------EOaywGaswtyv9becHtV7GXVS--


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 07:31:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 07:31:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265097.1556173 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w61eX-0006AN-HY; Fri, 27 Mar 2026 07:30:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265097.1556173; Fri, 27 Mar 2026 07: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 1w61eX-0006AG-Db; Fri, 27 Mar 2026 07:30:45 +0000
Received: by outflank-mailman (input) for mailman id 1265097;
 Fri, 27 Mar 2026 07:30:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1w61eW-0006A4-4I
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 07:30:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w61eV-004qDc-5E
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 08:30:43 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69c6321b-5cb7-0a2a0a5109dd-0a2a4502e652-38
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 08:30:42 +0100
Received: from [52.101.53.6]
 (helo=BL0PR03CU003.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69c6321f-63bb-0a2a45020019-34653506b7bf-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 08:30:40 +0100
Received: from BYAPR02CA0031.namprd02.prod.outlook.com (2603:10b6:a02:ee::44)
 by DS7PR12MB6240.namprd12.prod.outlook.com (2603:10b6:8:94::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.8; Fri, 27 Mar
 2026 07:30:35 +0000
Received: from SJ1PEPF000023CF.namprd02.prod.outlook.com
 (2603:10b6:a02:ee:cafe::1e) by BYAPR02CA0031.outlook.office365.com
 (2603:10b6:a02:ee::44) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.33 via Frontend Transport; Fri,
 27 Mar 2026 07:30:35 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF000023CF.mail.protection.outlook.com (10.167.244.11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9745.21 via Frontend Transport; Fri, 27 Mar 2026 07:30:35 +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; Fri, 27 Mar
 2026 02:30:35 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 27 Mar
 2026 02:30:34 -0500
Received: from [10.71.194.215] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 27 Mar 2026 02:30:33 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TxsyZx4SfZ5Z0I6LWyHCoQrxWBu7Bs8/cv5wVkccyBznngoChRhZnWZc5woApYXYoPXBHLMwg3e6C6dCK9QnnbQqS5YIoyZlSyUSskaJqfeRsIblfWCt+BlFuLWKIYn9Ls1aGMdWEFr5e1G47zQ20p6SHbAW33rFHmgvaC9AM1OZEjdNafiPCfcndH94LjfyEpp0pNkt17zcrJp9WCCYVH+cis3Ck3O0jFp9U3/ITFaRhAkCfDDoW3PqcXXOx7rAT2l1s5zoPTp9SQWB+H0ECdnH/Mm6rrWKiNCNeD/UdW6Dd/4hX8Nu1gFyu517r69nuvTL0G8YtHv0iom2mF3dSg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=B+x7CuKT81cEFIO+nKmHwglHzpWdK98meyNdtzmteFU=;
 b=xut/VQIwaOfwSa47jAlSSsFUeNu7A34y4igHu2FOnxfr1qpcLLDVbjkSXZIWcmx/1ZdLnYCM9wjMMHPAJJLv3QHAS96InmaqKDx0HUJJjFIthP9j0FQTCzN91h9nMZp8rZcGZHyi7z+3m4GVjEQC4z0/3qcV+QeI0KVIfq7uweZwRX1WzWmdu4jbc+PXbvra0lFD5WSe4Dk6D8x/l6VhAWjXnNES7O9YejiXbAWfbO+TcfgGh+BYBIAU+SqxYEHPJmeVWsOKWBDLUQkmok1jLEF2bhPCAoLyuZaDEFDk52c1vVVTmLPvvrkrDZ6gdlFHKT2kGamVcVQKb3EvqUh0/g==
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=B+x7CuKT81cEFIO+nKmHwglHzpWdK98meyNdtzmteFU=;
 b=IPfFn04kUBYC4iAVM6b9vfH64K/ejc1kwiatReK9z0PzJcg1B1+1MDAYXe2E/mnoG06EGJanu7M94ah5RBa2L67cgbrcnVs52llUjljLUV6TeO9WWYxJ7Ied35VBZ6E4oZklB6duEiMlhfLHMXbp+W7KdkqF2J/Fp3zhL1YacXw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <618e3227-10c7-46e4-9328-3d7d981fddfa@amd.com>
Date: Fri, 27 Mar 2026 08:30:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: Increase DOM0_FDT_EXTRA_SIZE to support max
 reserved memory banks
To: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@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: <20260326131535.662466-1-oleksandr_tyshchenko@epam.com>
 <29769bd9-8410-417b-9ad8-84131956db57@amd.com>
 <7d52cf29-c0bb-4e39-ae10-2b43f3e8e921@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <7d52cf29-c0bb-4e39-ae10-2b43f3e8e921@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000023CF:EE_|DS7PR12MB6240:EE_
X-MS-Office365-Filtering-Correlation-Id: ceb3e295-f40b-4bc2-4518-08de8bd2bcac
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700016|1800799024|376014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	Y/4NbRb9Hid1iNJdyh2l9ov7W1dNqPIrjSiYntvGvLp9IML86w293pP/yyebQ8V+UHNmonHmemWENIRlS0e2GagQzPlNlSCBp5UZqAbmJrqTMSFRnH2NTqxhH6pxRvuFBLel5NojBNEbMfdeaEsgYavlSZ8DvInRHoGn4MaBJyy4EB7aCucuvAZRvufqyGzTl/2GbiczFqAg9YgJoLHSswaZJ2wH0I59R+StU+tDuzcnBbrx2smKeabT7tF1r8c4YZ/fl5D1kQe0pVTvsAs985Gp78VzLgeV63Z9Znb4t7V5yTvceYQCw3INJDczODB/+D8yjpyDr+Ioh+ooNkgO+5gNr3iLJogHc7FvkWy51IU8lJ4PWjfh/BBs03XdYOoISvzXim0+INUfS9Z6L+QsiaJy5OtQlhifa30NIHBT6x0H2S3a2YoAIl5U7uGleDCqAy5qc6hGD5buAnvXvhZwc2LDaPG3xz1/hVgtu1gWRjJvmNezQP5qGSnkLqJbiCRPJQhj1ux+a5GJ//BQBt3gYu74WakBGPjyCs4IOapgK0UdiJhOOzZAAk3clU8EdgP9zYA/oUPChPWKN98i1S9NbCT5SBOdB+dz7M8fjPUH+YKvoF353CriS9irA4NAlPqOX8uSBRcJquoXOi27Q5AB0NSyand2mttvtnddbfZZm5QFnrRAQjABOq4uHPluSn6TezlmfzzxOqGxCo8LOXJ2kXrQuS28zswFQvhicqxuSdYl1DbYgbFTLm3wqPaZ7FjhKa5JzrGXZKgfyZ+T0Nw5cA==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(1800799024)(376014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	oljLyuOXxRTwKYX7vPq/tGuGrCwbEx57jfY0R5JLhSmCQRKGq4bIcAvScqsVAVpPS+gAtCaifuGDl+ew3+hDVMHCfh+l+Icl62SV100jJnNsXtTWwHwUxX4709ESMPiRCfsp6qgtiCdeaO4Lfdz+0yRr7LOQ6IJWdx3LaxX8a6orfSH7LOHP765O/zDqy0M359fgkQWoEEtmhVKOXMUVO9PhBi3YV24UdvXPtCs8tJQKnn+vtwnI8KlDV1Nt1mGXi7G3GqPGXwijx6pbdOqIR+znnzbF042/WL/eEvIiYqKVH1+kc1HauTWWG4Ued9PZqlOWPyAoM1WlqrXro+7vX7+KNZBpjwdxcFJ/mVrVaWxNUBnCQKHKivi+1+njBREQK/UmlG80t+eXvddSTI19dEUYog7aM7ItNsXmmD6uZgWVzEuG89DPMFbW3qnVuf7O
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 07:30:35.6847
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ceb3e295-f40b-4bc2-4518-08de8bd2bcac
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF000023CF.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6240
X-purgate-ID: tlsNG-720697/1774596640-BDA9CDB8-CF96DBAB/0/0
X-purgate-type: clean
X-purgate-size: 6255



On 26/03/2026 20:03, Oleksandr Tyshchenko wrote:
> 
> 
> On 3/26/26 18:50, Orzel, Michal wrote:
> 
> Hello Michal
> 
>>
>>
>> On 26/03/2026 14:15, Oleksandr Tyshchenko wrote:
>>> Xen fails to construct the hardware domain's device tree with
>>> FDT_ERR_NOSPACE (-3) when the host memory map is highly fragmented
>>> (e.g., numerous reserved memory regions).
>>>
>>> This occurs because DOM0_FDT_EXTRA_SIZE underestimates the space
>>> required for the generated extra /memory node. make_memory_node()
>> Where does this extra /memory node come from? If this is for normal reserved
>> memory regions, they should be present in the host dtb and therefore accounted
>> by fdt_totalsize (the host dtb should have reserved regions described in /memory
>> and /reserved-memory. Are you trying to account for static shm regions?
> 
> 
> I might have misunderstood something, but here is my analysis:
> 
> The extra /memory node is generated by Xen itself in handle_node() -> 
> make_memory_node() (please refer to the if ( reserved_mem->nr_banks > 0 
> ) check).
> 
> Even though the normal reserved memory regions are present in the host 
> DTB (and thus accounted for in fdt_totalsize), Xen generates a new 
> /memory node specifically for the hardware domain to describe these 
> regions as reserved but present in the memory map. And since this node 
> is generated at runtime (it is not a direct copy from the host DTB),
> its size must be covered by DOM0_FDT_EXTRA_SIZE.
Yes, but the original DTB should also have these reserved regions described in
/memory nodes, thus taking up some space that is already accounted in
fdt_totalsize. Are you trying to say that in host DTB, these reserved ranges fit
nicely into e.g. a single /memory node range (i.e. a single reg pair covering
most of the RAM)? I can see that it might be possible but the commit msg needs
to be clear about it. As of now, it reads as if the problem occured always when
there are multiple reserved memory regions. That's not true if a host DTB
generates one /memory per one /reserved.

Another issue is with the static shm nodes. User specifies the regions in the
domain configuration and Xen creates *additional* nodes under /reserved and
/memory that afaict we don't account for.

> 
> For the instance, 10 reserved regions:
> 
> (XEN) RAM: 0000000040000000 - 000000007fffffff
> (XEN)
> (XEN) MODULE[0]: 0000000043200000 - 000000004330afff Xen
> (XEN) MODULE[1]: 0000000043400000 - 0000000043402fff Device Tree
> (XEN) MODULE[2]: 0000000042e00000 - 000000004316907f Ramdisk
> (XEN) MODULE[3]: 0000000040400000 - 0000000042d2ffff Kernel
> (XEN)  RESVD[0]: 0000000040009000 - 0000000040009fff
> (XEN)  RESVD[1]: 0000000040008000 - 0000000040008fff
> (XEN)  RESVD[2]: 0000000040007000 - 0000000040007fff
> (XEN)  RESVD[3]: 0000000040006000 - 0000000040006fff
> (XEN)  RESVD[4]: 0000000040005000 - 0000000040005fff
> (XEN)  RESVD[5]: 0000000040004000 - 0000000040004fff
> (XEN)  RESVD[6]: 0000000040003000 - 0000000040003fff
> (XEN)  RESVD[7]: 0000000040002000 - 0000000040002fff
> (XEN)  RESVD[8]: 0000000040001000 - 0000000040001fff
> (XEN)  RESVD[9]: 0000000040000000 - 0000000040000fff
> ...
> 
>  From make_memory_node():
> 
> (XEN) Create memory node
> (XEN)   Bank 0: 0x50000000->0x70000000
> (XEN) (reg size 4, nr cells 4)
> 
> 
> 
> (XEN) Create memory node
> (XEN)   Bank 0: 0x40009000->0x4000a000
> (XEN)   Bank 1: 0x40008000->0x40009000
> (XEN)   Bank 2: 0x40007000->0x40008000
> (XEN)   Bank 3: 0x40006000->0x40007000
> (XEN)   Bank 4: 0x40005000->0x40006000
> (XEN)   Bank 5: 0x40004000->0x40005000
> (XEN)   Bank 6: 0x40003000->0x40004000
> (XEN)   Bank 7: 0x40002000->0x40003000
> (XEN)   Bank 8: 0x40001000->0x40002000
> (XEN)   Bank 9: 0x40000000->0x40001000
> (XEN) (reg size 4, nr cells 40)
> 
>>
>>> aggregates all reserved regions into a single reg property. With
>>> NR_MEM_BANKS (256) and 64-bit address/size cells, this property
>>> can grow up to 4KB (256 * 16), easily overflowing the allocated
>>> buffer.
>>>
>>> Fix this by increasing DOM0_FDT_EXTRA_SIZE to account for
>>> the worst-case size: NR_MEM_BANKS * 16 bytes.
>>>
>>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>> ---
>>> Just to be clear, I have not seen a real-world issue with this.
>>> The issue was observed during testing of limit conditions.
>>> With this patch applied, Xen successfully boots the hardware domain,
>>> exposing 256 reserved memory regions to it (using a synthetically
>>> generated configuration).
>>> ---
>>> ---
>>>   xen/arch/arm/domain_build.c | 6 ++++--
>>>   1 file changed, 4 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
>>> index e8795745dd..7f9f0f5510 100644
>>> --- a/xen/arch/arm/domain_build.c
>>> +++ b/xen/arch/arm/domain_build.c
>>> @@ -100,9 +100,11 @@ int __init parse_arch_dom0_param(const char *s, const char *e)
>>>   /*
>>>    * Amount of extra space required to dom0's device tree.  No new nodes
>> This comment would want to be updated because since its introduction things have
>> changed. Even the 128 came up as a result of adding /hypervisor node.
> 
> You are right. I suggest the following wording:
> 
> Amount of extra space required to dom0's device tree.
> This covers nodes generated by Xen, which are not directly copied
> from the host DTB. It is calculated as:
>   - Space for /hypervisor node (128 bytes).
>   - One terminating reserve map entry (16 bytes).
>   - Space for a generated memory node covering all possible reserved
>     memory regions (NR_MEM_BANKS * 16 bytes).
> 
> 
>>
>>>    * are added (yet) but one terminating reserve map entry (16 bytes) is
>>> - * added.
>>> + * added. Plus space for an extra memory node to cover all possible reserved
>>> + * memory regions (2 addr cells + 2 size cells).
>>>    */
>>> -#define DOM0_FDT_EXTRA_SIZE (128 + sizeof(struct fdt_reserve_entry))
>>> +#define DOM0_FDT_EXTRA_SIZE (128 + sizeof(struct fdt_reserve_entry) + \
>>> +    (NR_MEM_BANKS * 16))
>>>   
>>>   unsigned int __init dom0_max_vcpus(void)
>>>   {
>>
>> ~Michal
>>

~Michal




From xen-devel-bounces@lists.xenproject.org Fri Mar 27 07:56:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 07:56:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265112.1556181 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w622x-0001CL-FF; Fri, 27 Mar 2026 07:55:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265112.1556181; Fri, 27 Mar 2026 07:55: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 1w622x-0001CE-Ca; Fri, 27 Mar 2026 07:55:59 +0000
Received: by outflank-mailman (input) for mailman id 1265112;
 Fri, 27 Mar 2026 07:55:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <penny.zheng@amd.com>) id 1w622w-0001C8-DM
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 07:55:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w622v-00CCSO-Ex
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 08:55:57 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <penny.zheng@amd.com>)
 id 69c637f7-bab6-0a2a0a5309dd-0a2a4503c00e-28
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 08:55:57 +0100
Received: from [40.93.198.29]
 (helo=CY7PR03CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <penny.zheng@amd.com>)
 id 69c6380b-1947-0a2a45030019-285dc61d397b-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 08:55:56 +0100
Received: from DM6PR12CA0014.namprd12.prod.outlook.com (2603:10b6:5:1c0::27)
 by DS4PR12MB9706.namprd12.prod.outlook.com (2603:10b6:8:277::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.10; Fri, 27 Mar
 2026 07:55:51 +0000
Received: from DS3PEPF000099DD.namprd04.prod.outlook.com
 (2603:10b6:5:1c0:cafe::85) by DM6PR12CA0014.outlook.office365.com
 (2603:10b6:5:1c0::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.23 via Frontend Transport; Fri,
 27 Mar 2026 07:55:51 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS3PEPF000099DD.mail.protection.outlook.com (10.167.17.199) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9745.21 via Frontend Transport; Fri, 27 Mar 2026 07:55: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, 27 Mar 2026 02:55:47 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pQhS1qfTjXprGLDvwRFogGr7m8DgcynhSvmahPqYgh7Lf4yA8tVoQDMLM1CczYCL144x5hRHX3MnoO7OA71k7NU9PWQsh9Ctpg2gw6WGdS/72NzxRJcfX6Ge4conxQ9A07LWd5aiibZxtY/EG/5902+IkLrzaIBguoh4ImvI0usHcNVRzPWvQ2GbusYtVT0ElDhnZE6kJ+xAgJV0vZvbn4Qi+b37V+oUJa9/oQwHGp++VpymZMDnScnZaRKN8fQnbOtKOV2QNuhTh7meKTcECmO2mI2m0JXkWFKUeSJRy6ugD2O6ZhG8LsJgOVwFviHasPzzVewfpkM3wNCDC47cyA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Sgxa1hhL2v18xuShfJSpsCGyXr9KnhiEWhnZC3mWhts=;
 b=DgeMjA/5nzeSXm0CQq/XtZaZAY+4jQGJWf9OX1pJMUWC3newDDpvzy2TTAFom2Ld06+6CbBKLg328DFPKrqKx6qi/sMAv0qT2kNZnReU8IIpdTYi64ennbeFpblVkXq9gPsTZlBkp6C6szf+Gj4ambOeeRcHC/gyHJ7p5zaUiENFEkaCDZn971mgltQee0dzjkaNbf4raLu9z4a6/Bp4H0cqwfUMXEfZWD9Z4h3pR2kNR1mT9ZiVDjW51ueRo9YJVWTonn9omWKBhxxqW+sUkGzUWIUjttJSaCsvN4XrwvMGxmJSW/63BERvdtse5Timz/ibnXL2AdGeB8sz3nOWVg==
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=Sgxa1hhL2v18xuShfJSpsCGyXr9KnhiEWhnZC3mWhts=;
 b=Gn6lE5cUYxr2Rxn92MnKcG2qxdcxo0ml1PmVokd0aydCDfDMMMm7yv5uhVjhudB944RIMxFWqz/oHgZzLMSJvKUyWEGSoNSXmopX09JbC3SabAk4j7mR3aNVCKTFxweaj8FbJaa98ZmqPqQT/qpISvQzx4kF33iWMcMLVnLv5Eo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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>, <alejandro.garciavallejo@amd.com>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [PATCH v1 0/3] Remove mfn_to_gfn() on ARM
Date: Fri, 27 Mar 2026 15:50:22 +0800
Message-ID: <20260327075025.3008606-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: DS3PEPF000099DD:EE_|DS4PR12MB9706:EE_
X-MS-Office365-Filtering-Correlation-Id: 105536bf-725f-426c-0084-08de8bd643d9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|82310400026|36860700016|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	olz5uyNv6olPoSQb6Y3fVIHkm3Am/kanJFBVo4jjep7sAIkeyQOw7335g9IRZiF0tEPI1jGceHIRClA9DdBA2yCyIp+zMU+iS1klE+pnLj173muRQr/YPk+C5Yf4UzXDxSXN4q4nnQv9vFBa14iyF9mIaC7Uuu2Lp+YoOd6ihDAqC/iN8DiVJ5tZ36iHvKZVAkVZD8K8MjZiR2i45AsZeBPG38H8co7k+Xrofw/nhsk3thkmfG01uq8ejyDGlwrcfw3Lzvs64L70Gsjx71QCsHdzkVpYGAAlGYn4hx/y7O0uBPwmwRZ4F4Tj48ZnYMZkFwzE8kmiLl/NZZB+nOpCWHpXHilPjtCQpTSM3WchVd+CmDJSfqvxgQ3+ekwM7mIzKvjFvVUJU/ZWY2T8vAFj33hc7/OzDaiNrwaEZ9IiACiAsrElcCSfH02IO1A6o9EJ7Z7FpcxhWoJIwGYdEmuSDOvw24ecvZWGzPgipEKO1bFkJWjUzY+jLtzK0u4OvvvetvCCdo/zmdyRzC3PcbayTN9TFsJyEe3s4cf23FwVYYxZh4uNOwKpZVyb1Geuw1qpCTwx/51+rMY19WnfoBOJukwetoaYxSZ9bblKTNzocbGZGD3FxKqnz5sK/Bmc6/QKliGTauzlNEQCXk/Pdij9yMaNo5srK/omy3CH+oDi3D6n6SDmq6wkh8LETmpevl/i710jVjzpbyUMnh2jYqvM69yXd8fdRAhWZ6yq/Lvi4kX8YbubHy9zpEKINPsJzkNmxmZcp6hDhQwb6BssookV5w==
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)(36860700016)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	LxZdhiyKXOwiqw/Alxs30CHAofz/KWmXebYcPGxMwvr7zgasfWoN8vOyK1QGVIl25LdG08Ihi6RYkiNOj/nQzcyK0MaFwshrEqQxYIErxayQy0aMNpgW/y7uBgiDwfhqEeVTuqv122LEjg4+KsmH9Eng2OqO5wxiVmAttmIiOxf3RAfXlfniCXURQ/GWKFjQNF1hUcuhGQizaJGe5X+oyvUzGKfJL3tkIYAhDQ7Cxnheq7DBa5woMtKc4SDakH0KbbFVm55YLd93jTzu42TO+mJBKzhimdnm9aFmVESFzpD6n/P7A+iNgH6mM3egwcSFaP7vKQyBIuEoO1mJ5k9B77XUlxg7E2wXRI/s/ra9xYGl06PEl3BwqHrdWJ2ODRwtx7KOgnQ3IRmxeG68EvqRUP4oOo7bUbyeCHWpfb/Lr8Mk+SRS7UZISdCAEaaAgZYT
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 07:55:51.0058
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 105536bf-725f-426c-0084-08de8bd643d9
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF000099DD.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9706
X-purgate-ID: tlsNG-33051d/1774598157-4846E72C-1019620C/0/0
X-purgate-type: clean
X-purgate-size: 1517

On ARM, mfn_to_gfn() is defined as an identity macro that unconditionally
returns the MFN as the GFN. This is incorrect for any non-direct-mapped domain.

It only has two call sites: getdomaininfo() and memory_exchange().
It causes getdomaininfo() to report the wrong shared_info_frame on ARM,
breaking any toolstack or test that relies on it. While as steal_page() is not
supported on arm, the error does not propagate to memory_exchange().

This series fixes the problem in the following steps:

- Generalize the existing per-page GFN storage in type_info so it is
  usable beyond xenheap pages.
- Introduce a shared_info_to_gfn() macro so getdomaininfo() switches to
  use page_get_xenheap_gfn() on ARM and still mfn_to_gfn() on x86
- Fix memory_exchange() to use page_set_gfn()/page_get_gfn(), which generalize
  the existing page_set_xenheap_gfn()/page_get_xenheap_gfn() from xenheap
  pages, instead of mfn_to_gfn() on ARM for stolen pages.

With all the above modification, we could remove the now-unused mfn_to_gfn()
macro on ARM.

Penny Zheng (3):
  xen/arm: generalize per-page GFN storage beyond xenheap pages
  xen: introduce shared_info_to_gfn()
  xen/arm: fix mfn_to_gfn() usage in memory_exchange()

 xen/arch/arm/include/asm/mm.h  | 40 +++++++++++++++++++++++-----------
 xen/arch/x86/include/asm/p2m.h |  3 +++
 xen/common/domctl.c            |  3 +--
 xen/common/memory.c            | 11 ++++++++++
 4 files changed, 42 insertions(+), 15 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Mar 27 07:56:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 07:56:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265114.1556200 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6232-0001e1-VF; Fri, 27 Mar 2026 07:56:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265114.1556200; Fri, 27 Mar 2026 07:56:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6232-0001du-RL; Fri, 27 Mar 2026 07:56:04 +0000
Received: by outflank-mailman (input) for mailman id 1265114;
 Fri, 27 Mar 2026 07:56:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <penny.zheng@amd.com>) id 1w6231-0001Pc-7t
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 07:56:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w6230-005b5O-Jw
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 08:56:02 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <penny.zheng@amd.com>)
 id 69c63812-2eae-0a2a0a5409dd-0a2a4501a130-0
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 08:56:02 +0100
Received: from [40.107.208.21]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <penny.zheng@amd.com>)
 id 69c63810-6400-0a2a45010019-286bd015fa4b-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 08:56:02 +0100
Received: from DS7PR03CA0185.namprd03.prod.outlook.com (2603:10b6:5:3b6::10)
 by SAWPR12MB999140.namprd12.prod.outlook.com (2603:10b6:806:4e2::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.8; Fri, 27 Mar
 2026 07:55:57 +0000
Received: from DS3PEPF000099DC.namprd04.prod.outlook.com
 (2603:10b6:5:3b6:cafe::a3) by DS7PR03CA0185.outlook.office365.com
 (2603:10b6:5:3b6::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.22 via Frontend Transport; Fri,
 27 Mar 2026 07:55:57 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS3PEPF000099DC.mail.protection.outlook.com (10.167.17.198) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9745.21 via Frontend Transport; Fri, 27 Mar 2026 07:55: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, 27 Mar 2026 02:55:53 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zC7SEEq8vWMuIDXfUO6udV4HiArIfhki+36Log5uAKhImzKgYV90Ok3uj3zI4IUcPCAY56/taL4+zFkCLjRD2NYaqa3QM4jYmkIDvIhs8htOYZgUCAMn/qqNBHjqsK9GKqn1eSb+n7bYAVTeKzpyaE/NfIeHA6+L9h/8FiYKxouV17UXLhtzhVQKTceY7b60rMBs8mn8Jyt+eL0XTgui7pFVjV/xjT2O/fT0c3LZUJaCrD4kTXrlPz2ADW6qVmNwFv1kNezLu7UCDtjRwEK5lZwif7K8WUwmQ7x7TI3L3V9etKPTcMSEaL185K81M9SlqmxYykLm6SlmbmmtjeL7Tg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FNsX0tz7KlxvUQL2XaR7OMvrzRJaltI17tS9Ud2WDAA=;
 b=XnZ/PWz+cBLW9r1WryD3oMmzYX2IEDIKBHx+bEO+Ys5VyhWOHPjVrm64ZDf7/3lA5iTJnnUQaOyi7+Is5lsyc6na6fCHVB97A5XClKHzjjwk22oGGJHnRfVi9snrePBBQLEktfBPRjmGaI3PdpiHikTclwr5ChRHdQy7qfpwPQ6lOsDNIMdTq7vjbv/vfLDU4lf9e4uOLijV8bTBcsUzjCDd13ZolDxjIDMnHr9iptjzxFzjDWf+rLKWUZav2vdYLvaqsUe0cNxkbB6ygiHxeRsO4ORJ9DsorlxaHVxiesKx/x7Nmfasu/lgPxsJR5sFsgenKDnZx+d+NJiO08UlJQ==
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=FNsX0tz7KlxvUQL2XaR7OMvrzRJaltI17tS9Ud2WDAA=;
 b=B2b50Wg0e0a9j9P2GwUQN1CRcuFyVI2X776RCK6okwsE390SiypyNBuhE/gV2aS8Ydt0p+JTLhJv2d/bmyZSPbg5+4FwUsygCF4ckDJU6gVsOCzcukDSs3qcEI05Bz+khLaQji8iTHhPOPtzUsawj0LVv/ifRZOPpcW9/OYy9k0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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>, <alejandro.garciavallejo@amd.com>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Penny Zheng <penny.zheng@amd.com>
Subject: [PATCH v1 2/3] xen: introduce shared_info_to_gfn()
Date: Fri, 27 Mar 2026 15:50:24 +0800
Message-ID: <20260327075025.3008606-3-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20260327075025.3008606-1-Penny.Zheng@amd.com>
References: <20260327075025.3008606-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: DS3PEPF000099DC:EE_|SAWPR12MB999140:EE_
X-MS-Office365-Filtering-Correlation-Id: cd6f8299-73fd-4ca5-5474-08de8bd64775
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|82310400026|1800799024|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	xYmsDNwZFSenjicddY0Wln64GqMWPMXmkMfFANZkyp3fVTpRyUvjrIiyNTJM8ByjDWFgocA0DzL+cRkP/CPdGd1YD92a3Mer7fVjJvEtE7QE9pwmaZQFOOF664rWrJEKbqQFfLARZKqc9xCfmSxO20IdAWwxhWhcqOdYdB5c16s5/6EqgRa5gwMx3sq+P7gqWc33KGWth0q6646wJEfNmLgqSN2043dSffRlrldfb5OBo0I5pwkbtA0Epp44b6ZLhFPi8w76yGEsaMCjs05xQLLviRvQd/82B8uW91sdKStu+40KePn0jRoXAmRdYFRrufuOwDwzmyvDIsdVaopzwjE6nCs+G3vp5xgldiLwVRIBAbUVfyWkrJMWizMzZhyQkqGQe6bfUuT2DmhbWp8rNw08hY98mIKT4gprusky+spsy39Qs/mW9OMXYhxb6mmqiY2pTFmrU7CNv3wdmDO8ahipkL3a8nmzNGsE4YNgBHZo/9LWvGa4K+nFraE58I+FLemg/bdINX/oK2Ro4d3gJEB0ZwQhrJ7/2Ipvb1qIvChmA1vBYdzjaBZy9VtqNCMn1bASGf0uc1ULDLTJ4CiN49Bi4RRtPBBd7lvUs1q1Gj/XXyrGI1k1s3Kmf+Jx2UjgYFIJEYJe6MkzCnA4gJaXm2PsNXhBhyDZOA0q7y0LZFfddYWmiOTCcCiRik/PTZAArnj4MrbfTtC10e09L8whVaWH9wFVScnN77yvOSGHUd6xq++SnxOqZ/yrJukphmOJ8ancOakr8T49WXzYHFB9wQ==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(82310400026)(1800799024)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	A8VTo/pORTP+2pYrrybf9YerEAoonv7n36O3olGpMIFEwgB8794FhGQbqqe+YhATuqTUYSSIZxkXXe93IBxocspCL4FskCDEdlmGoFYlDx7l1zA+NrMr5n81ncvodb7b6CIxPFQV35atiuKOnaXaZ/2ivybZzUFbz/8FK1zGw3DTXPJtxARL2EON2qxuLkD3Sa1lctIZKIuX+l95rOIvK+cwi2o0Epnu4A4TtM6Gs8TpfATl04mFyXVkNgY8U7ovXobI/TcSucvgvq++M+MFtl5aWumaoU3GDqTszrhQeCWhFaGn892vYu1CxbqHRWjNK8GRX7jzue/wOqe/Nb4p83cf3wAWgMM0K573ubPCjjM9/OaY0rDh/pxExhuOf7yUMy1KHeOfViEIK982IcdXY6ieB4MiYkjZTW9fH3Xj7M+j2Rhm04RP/tSQjww/GCg7
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 07:55:57.0627
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cd6f8299-73fd-4ca5-5474-08de8bd64775
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF000099DC.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SAWPR12MB999140
X-purgate-ID: tlsNG-d62444/1774598162-48A14DF3-E19205C8/0/0
X-purgate-type: clean
X-purgate-size: 2550

On ARM, mfn_to_gfn() is a simple identity macro that actually does not return
the correct GFN for domains other than direct-map ones, so getdomaininfo() is
returning the wrong shared_info_frame on ARM.

Introduce a common shared_info_to_gfn(d) macro to output correct GFN for both
ARM and x86 in getdomaininfo():
- ARM: uses page_get_xenheap_gfn() to read the stored GFN
- x86: simply wraps the existing mfn_to_gfn() solution which consults the M2P
       table

Suggested-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Signed-off-by: Penny Zheng <penny.zheng@amd.com>
---
 xen/arch/arm/include/asm/mm.h  | 2 ++
 xen/arch/x86/include/asm/p2m.h | 3 +++
 xen/common/domctl.c            | 3 +--
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index d1873ec212..8d61b74e4f 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -308,6 +308,8 @@ struct page_info *get_page_from_gva(struct vcpu *v, vaddr_t va,
 /* Xen always owns P2M on ARM */
 #define set_gpfn_from_mfn(mfn, pfn) do { (void) (mfn), (void)(pfn); } while (0)
 #define mfn_to_gfn(d, mfn) ((void)(d), _gfn(mfn_x(mfn)))
+#define shared_info_to_gfn(d) \
+    page_get_xenheap_gfn(virt_to_page((d)->shared_info))
 
 /* Arch-specific portion of memory_op hypercall. */
 long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
diff --git a/xen/arch/x86/include/asm/p2m.h b/xen/arch/x86/include/asm/p2m.h
index 3a5a5fd43c..725403b28f 100644
--- a/xen/arch/x86/include/asm/p2m.h
+++ b/xen/arch/x86/include/asm/p2m.h
@@ -582,6 +582,9 @@ static inline gfn_t mfn_to_gfn(const struct domain *d, mfn_t mfn)
         return _gfn(mfn_x(mfn));
 }
 
+#define shared_info_to_gfn(d) \
+    mfn_to_gfn((d), _mfn(virt_to_mfn((d)->shared_info)))
+
 #ifdef CONFIG_ALTP2M
 #define AP2MGET_prepopulate true
 #define AP2MGET_query false
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 93738931c5..284926aa61 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -104,8 +104,7 @@ void getdomaininfo(struct domain *d, struct xen_domctl_getdomaininfo *info)
 #ifdef CONFIG_MEM_PAGING
     info->paged_pages       = atomic_read(&d->paged_pages);
 #endif
-    info->shared_info_frame =
-        gfn_x(mfn_to_gfn(d, _mfn(virt_to_mfn(d->shared_info))));
+    info->shared_info_frame = gfn_x(shared_info_to_gfn(d));
     BUG_ON(SHARED_M2P(info->shared_info_frame));
 
     info->cpupool = cpupool_get_id(d);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 27 07:56:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 07:56:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265113.1556192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6231-0001Q1-O3; Fri, 27 Mar 2026 07:56:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265113.1556192; Fri, 27 Mar 2026 07:56:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6231-0001Pu-Jr; Fri, 27 Mar 2026 07:56:03 +0000
Received: by outflank-mailman (input) for mailman id 1265113;
 Fri, 27 Mar 2026 07:56:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <penny.zheng@amd.com>) id 1w6230-0001PM-57
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 07:56:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w622x-001U1q-Q6
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 08:56:01 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <penny.zheng@amd.com>)
 id 69c63810-5cb7-0a2a0a5109dd-0a2a450599c4-2
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 08:56:01 +0100
Received: from [52.101.85.62]
 (helo=BYAPR05CU005.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <penny.zheng@amd.com>)
 id 69c6380f-5aeb-0a2a45050019-3465553e1339-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 08:56:00 +0100
Received: from DM6PR12CA0031.namprd12.prod.outlook.com (2603:10b6:5:1c0::44)
 by PH7PR12MB9174.namprd12.prod.outlook.com (2603:10b6:510:2ed::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.8; Fri, 27 Mar
 2026 07:55:54 +0000
Received: from DS3PEPF000099DD.namprd04.prod.outlook.com
 (2603:10b6:5:1c0:cafe::68) by DM6PR12CA0031.outlook.office365.com
 (2603:10b6:5:1c0::44) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.22 via Frontend Transport; Fri,
 27 Mar 2026 07:55:53 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS3PEPF000099DD.mail.protection.outlook.com (10.167.17.199) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9745.21 via Frontend Transport; Fri, 27 Mar 2026 07:55: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, 27 Mar 2026 02:55:50 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uNoEnqCNMGfN08G61n00dAavKvL08z0Delr1E2gLDi8QtHiRll6fy6nFRjHsLQpXoFLwHC+embdvi5JoDG57tRq/a1jZE4/IEit7L8qUyvqrjK/K3SIv2UprSiUwJgNoTpSu6XiTcRNcaEMJW/lAc4r0sI00l0xJSaaEFVHafCNfjFNAtg9bPcbrWhqP57cHn3FJNr/3yw/EevZP4+Ca+yqW12jH+WduzV+sTtCu7a57jmHLG8dnK2e5FUc67uYt9oAKMTnaCIID14mxDUBxTYMaiqvap/r8COjO85kAofAp8hIBc1Pfi/h7NRLX1u1AZk8Mmbi+ixRGeVCywwHmmQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YAfPwcQ9WQkre89jhdMSQOFTVOhS6f3es3Xfay/BKB8=;
 b=I2Rel786idscsezSDB46Ya8tfyx+y99eXMBzvM4J+SAj6Rb3UMPHo69+JqXUE9zmbNJYy3nP3rXp8Ov1/ZlLnBsAw/+XZ1iEkBasagKr/xAqsYjzmraIqGO1bl0wdR/rFZ0M1G5GKOnlN7mB5YGRxjeU/nLBTh+2pbpwjk8mgwgwFTds0cJ/AjKsi8OLNE/lN902hcpaTn6biJUB9ViwKxDBvvdr0TsQm95j4rYUqB/2mOX4Pyd3m/TjpmcXOC4WyMYW6vZKzj+rUvxQnvrJtSJ8obg7p8pTcvb92x1qoeYb1+TRq0C1i/YbRod5S619iyLk1U4SitYFwMDQPGY7Jw==
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=YAfPwcQ9WQkre89jhdMSQOFTVOhS6f3es3Xfay/BKB8=;
 b=add8h5DK7EnfMbTLPQm1+DbYu7NEBy7JJskCBMZev3ClIeCa34l6fhC4CZOz/P//TBwXdUd09dXHN8e9kzak7kUW2YamRO+9Glbg1OJv4N46GTd05hWJXaN/cRT/13wEas6IJ37bEFbwpA09pdGAdICjEtFkqjEfVTW7k4TNvQU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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>, <alejandro.garciavallejo@amd.com>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Penny Zheng <penny.zheng@amd.com>
Subject: [PATCH v1 1/3] xen/arm: generalize per-page GFN storage beyond xenheap pages
Date: Fri, 27 Mar 2026 15:50:23 +0800
Message-ID: <20260327075025.3008606-2-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20260327075025.3008606-1-Penny.Zheng@amd.com>
References: <20260327075025.3008606-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: DS3PEPF000099DD:EE_|PH7PR12MB9174:EE_
X-MS-Office365-Filtering-Correlation-Id: 8fc710ff-bd1e-4720-6a11-08de8bd64561
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700016|376014|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	EsNfP2mNFa8Tdtg52bILYkE53UStOkl/y+hFLXK1wC42iW+lNwWlafhRTKb2J1puWfhH48C7POwIQpF/qA9qSyNrziadplzDp9nKKv0S1ahmzdxFPRzclhxcHt7aHmxgAnldpb4rBuU075bzf0C6sZ3DGaPC5gxzb3p5el6MATjueFlu4tA2bko1JdnEuRbrvz7UKGr4JBp9QrVvQsb6TJZ98WPaWF4+NLB7u4DuvhJ6ceJmjv+hUKlHp3+STRJyGgKIgWKUsQHbyIM0hTy7v+wvJ1/MIDRG4e8/yBk546OT0hk6Avl2dAp0CUmbK9XoaENmKTpbeAnJ6yJB36ifkg3Js7yryb6e7KEagL2nxvfeszOvoC2RSwMVr8+q0KRLCY1FAera7G2EuueNDk9tX3slnFgGn9ADEP/Blnbn6RC6xoWJQQC/1e8sxh6rNJNfkBgK0OeD9GEjLj1yh/vhqbFhAs5svS0hcnJCBPlJEfzpZ4ARN95o28DlC7O2F9byaLAKXFPjCo/1f+zrJpzE7rP8bKnzrWrywx5thNTkY1peZwnbFhUzWGRVqQzMTqTDIT971qPTAnW4uVxuCs6QpMN3l1ynsJt6VHikF0QxxESkryYZyUXTlFPBp15db/TefQcMYpNl7JYq+61h+7NDzCN91BSscGEKnkZtq8snFvptJf/6f/XPwpAAFICrl71ySWVoM5ZJCL91zJUKVN4MybqLYAa4B/mqkTE4LVgi0MvNJX7LaWyt8IzcQAnp2hdi1G154FfZcjawNp3ImXryOg==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700016)(376014)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	4f83CXG7K+yjcPrkVabmky5LMIMSIBD3vUmnG+YA6bwkddrpMRwf/8MW+Xa6T2NYLnDOH6dP9GDSVVN9/BEhXEvYt3xXHQOmR1ASgHXMwxK0lJWLlqBoZ+H19Boyn88dYTg1Z+RH5m99OVNMZyZbn1xwjoCXI2Kp9ldobmq61+VquFGFVxevDhBqbCalM6uV892/YoCiv763uJ1gIhb8+Lz/U0BbxBAs3M4uh4Gm6/Q9y+TR1wXKVyY/VE4840PBEo1UAGReO8G2XO3ioDIoLnat3lKh3NI+4qA98iKksulAYfkwKCUaWpHMRRdhZa4tW5UnkzW6OWcp31AE6B/UNYu7dAVPLCUs7dJx1I273T1iDiiSyXRIU6bPbjcEVmjuTgTmulJgOvb46XYhTJqi7XwonNMj3CyIn9PDDsP95Lq3C/t/At4yhPKadVzZ4Z2b
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 07:55:53.5689
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8fc710ff-bd1e-4720-6a11-08de8bd64561
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF000099DD.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB9174
X-purgate-ID: tlsNG-c201ff/1774598161-81156488-BDD22C9E/0/0
X-purgate-type: clean
X-purgate-size: 3611

As preparation for fixing mfn_to_gfn() on ARM, we extend the existing GFN
field in page_info's type_info to be usable for not only xenheap ones.
Another usage will be introduced later for stolen pages in memory exchaging.

Introduce general-purpose page_get_gfn() and page_set_gfn() helpers
that read and write the GFN stored in type_info. The old
page_get_xenheap_gfn() and page_set_xenheap_gfn() are retained as thin
wrappers with their xenheap ASSERTs, so all current callers remain unchanged.

Also introduce PGT_INVALID_GFN as the general sentinel, with
PGT_INVALID_XENHEAP_GFN aliased to it for backward compatibility.

Signed-off-by: Penny Zheng <penny.zheng@amd.com>
---
 xen/arch/arm/include/asm/mm.h | 37 +++++++++++++++++++++++------------
 1 file changed, 25 insertions(+), 12 deletions(-)

diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index 72a6928624..d1873ec212 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -113,18 +113,21 @@ struct page_info
 #define PGT_count_mask    PG_mask(3, 3)
 
 /*
- * Stored in bits [28:0] (arm32) or [60:0] (arm64) GFN if page is xenheap page.
+ * Stored in bits [28:0] (arm32) or [60:0] (arm64) GFN if page is xenheap page,
+ * or stolen ones in memory exchanging.
  */
 #define PGT_gfn_width     PG_shift(3)
 #define PGT_gfn_mask      ((1UL<<PGT_gfn_width)-1)
 
-#define PGT_INVALID_XENHEAP_GFN   _gfn(PGT_gfn_mask)
+#define PGT_INVALID_GFN           _gfn(PGT_gfn_mask)
+#define PGT_INVALID_XENHEAP_GFN   PGT_INVALID_GFN
 
 /*
  * An arch-specific initialization pattern is needed for the type_info field
- * as it's GFN portion can contain the valid GFN if page is xenheap page.
+ * as it's GFN portion can contain the valid GFN if page is xenheap page, or
+ * stolen in memory exchanging.
  */
-#define PGT_TYPE_INFO_INITIALIZER   gfn_x(PGT_INVALID_XENHEAP_GFN)
+#define PGT_TYPE_INFO_INITIALIZER   gfn_x(PGT_INVALID_GFN)
 
  /* Cleared when the owning guest 'frees' this page. */
 #define _PGC_allocated    PG_shift(1)
@@ -338,28 +341,38 @@ unsigned int arch_get_dma_bitsize(void);
  * that requirement (risk of deadlock, lock inversion, etc) it is important
  * to make sure that all non-protected updates to this field are atomic.
  */
-static inline gfn_t page_get_xenheap_gfn(const struct page_info *p)
+static inline gfn_t page_get_gfn(const struct page_info *p)
 {
     gfn_t gfn_ = _gfn(ACCESS_ONCE(p->u.inuse.type_info) & PGT_gfn_mask);
 
-    ASSERT(is_xen_heap_page(p));
-
-    return gfn_eq(gfn_, PGT_INVALID_XENHEAP_GFN) ? INVALID_GFN : gfn_;
+    return gfn_eq(gfn_, PGT_INVALID_GFN) ? INVALID_GFN : gfn_;
 }
 
-static inline void page_set_xenheap_gfn(struct page_info *p, gfn_t gfn)
+static inline void page_set_gfn(struct page_info *p, gfn_t gfn)
 {
-    gfn_t gfn_ = gfn_eq(gfn, INVALID_GFN) ? PGT_INVALID_XENHEAP_GFN : gfn;
+    gfn_t gfn_ = gfn_eq(gfn, INVALID_GFN) ? PGT_INVALID_GFN : gfn;
     unsigned long x, nx, y = p->u.inuse.type_info;
 
-    ASSERT(is_xen_heap_page(p));
-
     do {
         x = y;
         nx = (x & ~PGT_gfn_mask) | gfn_x(gfn_);
     } while ( (y = cmpxchg(&p->u.inuse.type_info, x, nx)) != x );
 }
 
+static inline gfn_t page_get_xenheap_gfn(const struct page_info *p)
+{
+    ASSERT(is_xen_heap_page(p));
+
+    return page_get_gfn(p);
+}
+
+static inline void page_set_xenheap_gfn(struct page_info *p, gfn_t gfn)
+{
+    ASSERT(is_xen_heap_page(p));
+
+    page_set_gfn(p, gfn);
+}
+
 #endif /*  __ARCH_ARM_MM__ */
 /*
  * Local variables:
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 27 07:56:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 07:56:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265115.1556209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6236-0001vF-E0; Fri, 27 Mar 2026 07:56:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265115.1556209; Fri, 27 Mar 2026 07:56:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6236-0001v5-9W; Fri, 27 Mar 2026 07:56:08 +0000
Received: by outflank-mailman (input) for mailman id 1265115;
 Fri, 27 Mar 2026 07:56:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <penny.zheng@amd.com>) id 1w6235-0001th-6J
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 07:56:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w6233-001U1q-0Q
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 08:56:06 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <penny.zheng@amd.com>)
 id 69c63810-5cb7-0a2a0a5109dd-0a2a450599c4-16
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 08:56:06 +0100
Received: from [40.93.195.1]
 (helo=SN4PR2101CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <penny.zheng@amd.com>)
 id 69c63814-5aeb-0a2a45050019-285dc301fdaa-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 08:56:06 +0100
Received: from DM6PR12CA0001.namprd12.prod.outlook.com (2603:10b6:5:1c0::14)
 by BN3PR12MB9593.namprd12.prod.outlook.com (2603:10b6:408:2cb::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Fri, 27 Mar
 2026 07:56:00 +0000
Received: from DS3PEPF000099DD.namprd04.prod.outlook.com
 (2603:10b6:5:1c0:cafe::a) by DM6PR12CA0001.outlook.office365.com
 (2603:10b6:5:1c0::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.23 via Frontend Transport; Fri,
 27 Mar 2026 07:55:59 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS3PEPF000099DD.mail.protection.outlook.com (10.167.17.199) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9745.21 via Frontend Transport; Fri, 27 Mar 2026 07:56:00 +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, 27 Mar 2026 02:55:56 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=blHN6y9jzhIuJGYzhqPjqNlrZAPN/fD+ljVWlyYBeQKvySE1ePd9STgaggr/qq/GZBzNpJS4LFHa1B0rIQIZS/Zw+k2pmgUA43XVCAMPGfRn+qqjIVvIlckbPHsqqZ6OT3sEprIlNcoCHWbCsrmj9gakT0SzPT4LBhSFHzeZwa109lPmPCsTr1agYMdoD01AanoJXGnH3Db7VuU/LvTwDM8EUemti+Gg/PrrusS+ysYrMyxCFMM56LaM2+jax6P0a+L9OtMoH0xyqpg3nzFGMJNHGpa7A7cQI1qXExe96JrWQP33id75fXtpwrhzfNajBKPHpO0vlLs08x2qwdFvCw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=l83BYNp+aMnzNw6sbx4zGflMnyM8f979yRPcRxeM/Wc=;
 b=CLhB4GCjRCB3cnQjZ6SL81WyE0IJezNKN5f867ZxoyOUmUHOCjyhVrax0RW4MF1nKZKZEQiCRM2xjHAOcaGupEONkIRou1qrHk55rzICrtdMp+w6GBVDWTen6/f1K4vjpDH7Qp/MVPUjkXnpgoTxPi1xzDMcJ745OMfKOS2sCkKD7XReiotBBRVJ9NE13KNObbwnHCp45b1VESJfCcmwgb+0icSR+iVhkWrf8g3X2IyYqdxrrCXjv6GTQVlAmru8zSD9LIjFKg0dCkWtcABRdEklKAGoWAgrdOsMbpPBcPsD4SLDpjzN6R7beT/3fFP//GcC9c94E57kta4hb1G6Jw==
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=l83BYNp+aMnzNw6sbx4zGflMnyM8f979yRPcRxeM/Wc=;
 b=P1x2hj4Ruelvo/clAEPWhYWebSiVY5PeI+9cCOaT1Q0DDq7nKOAXhNxd6zyZYLkxbT1BPJo1WRATYbLknIqxBYp9oab7PjrQPzk2FrTskvhTjZtZozAT6KJTLy0d0s3UkQwFW7VALzlAeUo2EnKI5a9lXTel6Ag0FGl6cNgbDso=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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>, <alejandro.garciavallejo@amd.com>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Penny Zheng <penny.zheng@amd.com>
Subject: [PATCH v1 3/3] xen/arm: fix mfn_to_gfn() usage in memory_exchange()
Date: Fri, 27 Mar 2026 15:50:25 +0800
Message-ID: <20260327075025.3008606-4-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20260327075025.3008606-1-Penny.Zheng@amd.com>
References: <20260327075025.3008606-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: DS3PEPF000099DD:EE_|BN3PR12MB9593:EE_
X-MS-Office365-Filtering-Correlation-Id: 030b24cd-9b52-4120-8851-08de8bd6495b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700016|376014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	XGCfPDFJjj0q+KsZOsa9QmBSzxUgwYzTe4zabtLozCVEGSV3JIodl9KbNBATcu3H6NdQw9DaPUhYo0OnHBUEILX7Smgf6DBJWPZrVlgePxtsTn3RNdgbSfDazueQ9JtHsBQdI6Zzf+MGT096aSiwkfrbTD3/5beMTpXou/U4e7drSotSTzgtp9Yt0O6bkIZhY7N0DGC+DPmKeWwGDaEcD0ld9fngIp3ngJK9N6FAXGMddzqjBuy6vCg5RTsZOgAC7hhnPbakB2g8+a2P+0jrujxax9q0oXYSddLqhw0Phc3WXga4CXGoWaHnz0pOsq3Doa2SWY8rV3+HwNt7mvM1T21fhUtqthXhmgAQX0dX+PbMBJTujzeUwfdBNqxgWXXVeciqt5PmwNMh7dCrmid80afoUC7B48twLR1Uq+kNyJ4evExv4wNDXJubKAH4m6Ie5WxeImgeVWYaeTqfNQWhBKBcfKacHikUNLBMNwjaj+Pq158HsdXFU5owIoLMW64KwgECsFES0tWcjpzK00UAku+B1rqqk7SfvHdfHE7kpMeiEHCmWqRiY5p1CFyU4ZuwaOp8qwcB7qy6QoMX1YlyHtUBlk6YYHHY4eE1zeQbPkb25FF8/q/z/dEefvDt0DsX9Mp5ocvyIfDbFtJ/wNN9eICxUmZHZdD9xy+/Yyv0NjBeAlECpid1dAuEfHb8CoTmBYNT64UlThOs6qafzqA/VBUASnghmFaLQKH85KsuBEnV59ede8lDW3UncBgkIjird6HmoVOYIe+vLQpaFoIY0A==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(376014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	QPCjrOfrHFcz3+dQDJc8dYBxXaM8THu72CB3MWgm1q2qdmRa3jzFcdyiYiJ/THNF38+ZhGHB0asMY9zLfDQ4mrWyJO8CCCzMqXTOfYaUmiRPZMLt9U0FxnWdH2oar0ni5EN/ZGnTXxqANCVCNU+c2AZZtHR2EiBf/xrI0Mz9i6y5vIvAchji8G6/CXPZuD/yAXffpXNKq8QRlkNkj4D5Mdo5gmZGQLTm06yrQsWeq36v5C+IJaWShZ4+58/1J3Zn4tmsvsL3/Gi8Ujodg+d5Kd6sd7ysIwnonsgq12ZY11L39VwRcbHOqBMYHwaUXAY9TNqUGVsz8Ag77O9QE1XOmIn74+/4EVc9+Xntd5gNBFC5vPI+s52jkUFDId49WLdx9iqX2XZ1zl1A2dMj9qZ/D2H5tSrJo15esqkPyzdIbiJTIHJ7wTIz0P5TPfv9RHZE
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 07:56:00.2670
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 030b24cd-9b52-4120-8851-08de8bd6495b
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF000099DD.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR12MB9593
X-purgate-ID: tlsNG-c201ff/1774598166-80769488-C032C8C8/0/0
X-purgate-type: clean
X-purgate-size: 2523

On ARM, the only callsite of mfn_to_gfn() is in memory_exchange(). Although
memory_exchange() is actually not reachable on ARM because steal_page() always
returns -EOPNOTSUPP. We still need to fix it here to ensure correctness once
steal_page() is implemented for ARM in the future, and avoid propagating
broken usage.

Fixing it with the following steps:
- Recording the GFN into the page's type_info via page_set_gfn() at stolen time
- Retrieving it via page_get_gfn() at consume time instead of mfn_to_gfn().

With the only call site removed in ARM, mfn_to_gfn() macro is no longer
referenced and could be removed in ARM.

Signed-off-by: Penny Zheng <penny.zheng@amd.com>
---
 xen/arch/arm/include/asm/mm.h |  1 -
 xen/common/memory.c           | 11 +++++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index 8d61b74e4f..14cb3c3dfa 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -307,7 +307,6 @@ struct page_info *get_page_from_gva(struct vcpu *v, vaddr_t va,
 
 /* Xen always owns P2M on ARM */
 #define set_gpfn_from_mfn(mfn, pfn) do { (void) (mfn), (void)(pfn); } while (0)
-#define mfn_to_gfn(d, mfn) ((void)(d), _gfn(mfn_x(mfn)))
 #define shared_info_to_gfn(d) \
     page_get_xenheap_gfn(virt_to_page((d)->shared_info))
 
diff --git a/xen/common/memory.c b/xen/common/memory.c
index 918510f287..5c462c302d 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -814,6 +814,13 @@ static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen_memory_exchange_t) arg)
                     goto fail;
                 }
 
+#ifndef CONFIG_X86
+                /*
+                 * Record the GFN in the page's type_info,
+                 * so that we can retrieve it later when consuming the page.
+                 */
+                page_set_gfn(page, _gfn(gmfn + k));
+#endif
                 page_list_add(page, &in_chunk_list);
 #ifdef CONFIG_X86
                 put_gfn(d, gmfn + k);
@@ -849,7 +856,11 @@ static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen_memory_exchange_t) arg)
             gfn_t gfn;
 
             mfn = page_to_mfn(page);
+#ifdef CONFIG_X86
             gfn = mfn_to_gfn(d, mfn);
+#else
+            gfn = page_get_gfn(page);
+#endif
             /* Pages were unshared above */
             BUG_ON(SHARED_M2P(gfn_x(gfn)));
             if ( guest_physmap_remove_page(d, gfn, mfn, 0) )
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 27 07:59:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 07:59:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265156.1556218 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w626P-0003fZ-Rw; Fri, 27 Mar 2026 07:59:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265156.1556218; Fri, 27 Mar 2026 07: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 1w626P-0003fS-P9; Fri, 27 Mar 2026 07:59:33 +0000
Received: by outflank-mailman (input) for mailman id 1265156;
 Fri, 27 Mar 2026 07:59:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w626O-0003fM-EK
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 07:59:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w626N-005bjX-Qf
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 08:59:31 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c638db-5cb7-0a2a0a5109dd-0a2a450bd1bc-42
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 08:59:31 +0100
Received: from [209.85.221.41] (helo=mail-wr1-f41.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c638e3-ef63-0a2a450b0019-d155dd29c813-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 08:59:31 +0100
Received: by mail-wr1-f41.google.com with SMTP id
 ffacd0b85a97d-439b2965d4bso1350433f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 00:59:31 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b9192e305sm14201744f8f.8.2026.03.27.00.59.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 27 Mar 2026 00:59:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774598371; x=1775203171; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rtolMKUmK47Gbsa7Ihd+aVEhDn0ES4qeTkwpvzesPdY=;
        b=OvW3TW6LNL/sOo/XOPKCFrwr3QQ1IHC2rJTLdZjipbpE2Yf7FZ2u8OGKdxGb/J1etZ
         fdfJGTOqN73Fi+zE0duLQpd7P/vsijej5AOuId5w+SM48O5us5E4VS62xKgGT5T+ldaX
         HcEBBbq4r4Y3BssmkEIVIr3/cPPI/USY+vhN5GxGnrCisz2pc0QdtxMES/Zo36oQK7OR
         YBsg5FVZr1nZecnkCtaKtLQb67crVPQ87xTziiKmZKm8FSC8m0R1y8ADWrSIh6foYQzZ
         n30m2HX3vxEHfHYoNIEPM7ZL4QA6qUdHuAZlgtjT2QvqUXEVU28RhNw6B49Nr6uXLAdD
         Ufug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774598371; x=1775203171;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rtolMKUmK47Gbsa7Ihd+aVEhDn0ES4qeTkwpvzesPdY=;
        b=VUQ+gKCHZr5TIKmcOWH8O9RTzevMMjyZHZ1tfoKXLOXBL02+dBH0OKLgbHxWjbMcWE
         WH09IQRbUucwpmJtoIBsskRwWRI53NaVgwDQNPysEdQXVv3BdVBxyLRmK0bP4OX+tVt6
         jeD6HsPWRQyawAb6Q1FscNDKVvQXcqtAVEFlPPoskpTf3ISeLKMLWVPO67cwhDyQvWkZ
         Uhih9Gl0St/Vrk7jUiE0PGyiBOja65Uu+eWdcL6odkbx+8kPWa7thhcI7PO9QWgooD0Y
         Ca0av2ujTvS853l2OGYWRHcl1L1DuUDxGoaNI7DTzvX0hnMMIxmu/8+pv5CZst4Cozxd
         ynww==
X-Forwarded-Encrypted: i=1; AJvYcCV17jv8PdPdTjHD2EjIkX2i9f1kN4N9ZO5BCKXh3mzsSnsjlcC9RN35m+scRbDwVePe/Pa2ixUkp/U=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyGLbaLX1IWNmTHXrA3rBeZgLNg0I2ODP9brGG1VtsP/4ySFdwb
	Z74/hMoGF/uqau0Ij93B6CI+oxUdoHWc3nOG1BFvJeiiPNFsA2j4/eA1pSfNWjMBNQ==
X-Gm-Gg: ATEYQzwTxj987oVhmOTyp9MfIOu51VFGbAjkbDsM/U/1FOKOTq4dohrdfkEtIqCuwD9
	/7trm5H2oP8etrvmjMi1O8LNYAtiuWpdseLteQTGeH39s9by8Q7ErXlDidZcv6JiVok4G4CU0MH
	yiNewSikjK8AKA3jAgg6qmiDnGQAGqENrPV2rzvYnk1ZKgCAUv1yniVNWDa4lRgEJ9aOEs5WLqL
	ewzvp4frWjinO+D/oJqxutrMiqznzK1n4bUY8e403U83+2rKyqdnvCh5tdDWeDf7lrzcJgMHqMi
	BLrmzvRu7SpVShdjsmCu6KoP5QQNc87LIsAPLLff1NdiNdqLZoUkQnCHtBLQp1IXW8NlIpLM3NO
	EUCvjOCoZdkDp6UKMJsDs+giemitg2wKq+InQxp1Zotj/5Z8oELcIpSmOEShZV7f7J64HokKUrI
	ldQteckXUN8RwyKNo1WVGZSsdaFZ9VocgOC8SMzENX6Z7gA0mpQN+sjvu5FfsfLU1gDMmRqCnlb
	nm7V3mzWjDQOIdYCYoQYBBjtg==
X-Received: by 2002:a05:6000:268a:b0:439:fbbc:d593 with SMTP id ffacd0b85a97d-43b9ea49e55mr1971244f8f.27.1774598371034;
        Fri, 27 Mar 2026 00:59:31 -0700 (PDT)
Message-ID: <f671aca0-2782-40cc-9ee5-03916c1a31eb@suse.com>
Date: Fri, 27 Mar 2026 08:59:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/4] xen/uart: be more careful with changes to the PCI
 command register
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: <20260325145824.31601-1-roger.pau@citrix.com>
 <20260325145824.31601-2-roger.pau@citrix.com>
 <2a00a1d2-7017-4c76-8344-018eb3f30f50@suse.com>
 <acVNMQ_HqRpgkP7i@macbook.local>
 <b4b67bc1-c7e4-4872-a018-789d7e87dcb2@suse.com>
 <acVmj-agJOAX9hGV@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <acVmj-agJOAX9hGV@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1774598371-98EBA112-10F9D98D/0/0
X-purgate-type: clean
X-purgate-size: 4171

On 26.03.2026 18:02, Roger Pau Monné wrote:
> On Thu, Mar 26, 2026 at 05:00:15PM +0100, Jan Beulich wrote:
>> On 26.03.2026 16:13, Roger Pau Monné wrote:
>>> On Thu, Mar 26, 2026 at 01:02:22PM +0100, Jan Beulich wrote:
>>>> On 25.03.2026 15:58, Roger Pau Monne wrote:
>>>>> Read the existing PCI command register and only add the required bits to
>>>>> it, as to avoid clearing bits that might be possibly set by the firmware
>>>>> already.
>>>>>
>>>>> This fixes serial output when booting with `com1=device=amt` on a system
>>>>> using an "Alder Lake AMT SOL Redirection" PCI device (Vendor ID 0x8086 and
>>>>> Device ID 0x51e3).  That device has both IO and memory decoding enabled by
>>>>> the firmware, and disabling memory decoding causes the serial to stop
>>>>> working (even when the serial register BAR is in the IO space).
>>>>>
>>>>> Fixes: f2ff5d6628b3 ("ns16550: enable PCI serial card usage")
>>>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>>>>
>>>> I'm not convinced Fixes: is appropriate here. There's nothing wrong with that
>>>> commit, aiui. What's bogus is the device behavior.
>>>
>>> Hm, I would argue that disabling command register bits for devices
>>> that have those enabled is in general dangerous.  What about device
>>> RMRR or similar residing in BARs, and Xen disabling memory decoding
>>> unintentionally while attempting to enable IO decoding?
>>
>> RMRRs in BARs seems unlikely (as BARs can be moved), but you have a
>> point in general. Otoh devices are fully under our (later under Dom0's)
>> control, so we may clear (or set) bits as we see fit to get a device
>> to function. FTAOD, I'm not outright objecting to the tag, I'm merely
>> questioning it some.
>>
>>>>> --- a/xen/drivers/char/ns16550.c
>>>>> +++ b/xen/drivers/char/ns16550.c
>>>>> @@ -283,11 +283,17 @@ static int cf_check ns16550_getc(struct serial_port *port, char *pc)
>>>>>  static void pci_serial_early_init(struct ns16550 *uart)
>>>>>  {
>>>>>  #ifdef NS16550_PCI
>>>>> +    uint16_t cmd = 0;
>>>>> +
>>>>> +    if ( uart->ps_bdf_enable )
>>>>> +        cmd = pci_conf_read16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
>>>>> +                                       uart->ps_bdf[2]), PCI_COMMAND);
>>>>
>>>> Why is this conditional? While fine for the use at the bottom, ...
>>>
>>> The comment next to the field states:
>>>
>>>     bool ps_bdf_enable;     /* if =1, ps_bdf effective, port on pci card */
>>>
>>> So it didn't seem like further checking was needed and that was the
>>> sole filed to decide whether ps_bdf is populated or not.
>>>
>>> However, I also found that when using device=amt|pci ps_bdf_enable
>>> doesn't get set, and hence I'm not sure if that's intended or not.
>>> Shouldn't ps_bdf_enable get set unconditionally when the serial device
>>> is a PCI one?
>>
>> I think this was deliberate, hence why ...
>>
>>>>>      if ( uart->bar && uart->io_base >= 0x10000 )
>>>>>      {
>>>>>          pci_conf_write16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
>>>>>                                    uart->ps_bdf[2]),
>>>>> -                         PCI_COMMAND, PCI_COMMAND_MEMORY);
>>>>> +                         PCI_COMMAND, cmd | PCI_COMMAND_MEMORY);
>>>>>          return;
>>>>>      }
>>>>
>>>> ... it looks wrong(ish) for this path. Actually, in ns16550_init_postirq()
>>>> we use
>>>>     if ( uart->bar || uart->ps_bdf_enable )
>>
>> ... this conditional is now in use.
> 
> Right, but then the logic in pci_serial_early_init() doesn't apply to
> those devices (device=amt|pci) when the BARs are in IO space?
> 
> As uart->ps_bdf_enable == false, and uart->io_base < 0x10000, it will
> return early from the function without attempting to enable the IO
> BAR.  Is this really expected?  It looks like Xen should always make
> sure the respective BARs are enabled if the device is to be used for
> serial output?

I agree. Many of the changes were hacked in just to make someone's
device work, without having general aspects in mind. I expect most if
not all checks of ->ps_bdf_enable want amending by adding ->bar ones.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 08:14:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 08:14:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265183.1556227 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w62Ko-0007SG-Bn; Fri, 27 Mar 2026 08:14:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265183.1556227; Fri, 27 Mar 2026 08:14: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 1w62Ko-0007Rj-7M; Fri, 27 Mar 2026 08:14:26 +0000
Received: by outflank-mailman (input) for mailman id 1265183;
 Fri, 27 Mar 2026 08:14:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w62Km-0007RW-J8
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 08:14:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w62Kl-001ars-R5
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 09:14:23 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c63c56-5cb7-0a2a0a5109dd-0a2a45039b1a-36
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 09:14:23 +0100
Received: from [52.101.201.4]
 (helo=PH7PR06CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c63c5e-1947-0a2a45030019-3465c904bcba-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 09:14:23 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SN7PR03MB7118.namprd03.prod.outlook.com (2603:10b6:806:322::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.23; Fri, 27 Mar
 2026 08:14:18 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.023; Fri, 27 Mar 2026
 08:14:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oa28S9416hr+vkBHwh1d0+0A5g+ZSafZa+wWGmI4mGW/uzQQxad/ahQIrDJnau8nhLNlE3mZ/mvo3tCMgJ+10kgYJ0PgOqb698rGFAV6i0lyI196YyP1EnYrI7VuUI205+2b5Vd9ZZMhrPaNCrLleRpDASXkaKfNWwTMk70Fs1AlPnDMn8rEFlvdBxqKlSCLHv1WdckHTrIG+S6bIMSHzxDsGlFhGFOuuJ8nKGS0r9siy5/9NYXzoAHXtdkOd0XxzK2r2QzZsHMyRGWuzhfIlLGkO0myuqdgOPIScbT8GPNXJRhtdsIvAEUHVHFRipD0jCY9mS4URWa240TkHCNYZw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HjdDxTpWumEmfH0pI7JNY96NwPFteWjL7Ie4XZQQ3ww=;
 b=Tx3rjqu4Lde2E8e88IsAlORaukQ+nuSMj/5/78YO5NrZLSqioa9fV8/XPRKDfcZYjexUoipNF5qDu4wZmLrg5+vgc5twlrJ9rzUyjFEEXjNwE09EhDnpmXifTkFL2FHc5+Lbq8bxDih6WaBWUV5YXuiJ6Rf1W+32OJmFQuHx8CmMA9EwdkDFVN9mexocRmYRwYIfb9P5hpc3ycsXgTYa8zLO37u5SKqQH3nmCXzwGS12em+krJWnTGkrq8H/92YajnnA/zgiINsHstvB13HCvLJAsWTCyC5DKfkSsK+9nTloGO/4aNny8xa5nUpCvPd1lio0fGxlx/1qBJi1HzTGFQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HjdDxTpWumEmfH0pI7JNY96NwPFteWjL7Ie4XZQQ3ww=;
 b=mWHD4jJdXe+53yl0ZHtH3OfwbZSq2zBvnrnMhR+xWNz/7/mFGt+rAvA79S/OM2+sRLKy7mEvpFbnZ6s2ZB4r1Rvidl8AwhIQ5ZKMEp4C+cWAeCzrhCklHcTvF9CJR8+W8xfqig+/GZkGyNerAqf/wMYU9wygVkpKnfU2E5Xulf8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 27 Mar 2026 09:14:15 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 1/4] xen/uart: be more careful with changes to the PCI
 command register
Message-ID: <acY8VygqtQL7ZRQy@macbook.local>
References: <20260325145824.31601-1-roger.pau@citrix.com>
 <20260325145824.31601-2-roger.pau@citrix.com>
 <2a00a1d2-7017-4c76-8344-018eb3f30f50@suse.com>
 <acVNMQ_HqRpgkP7i@macbook.local>
 <b4b67bc1-c7e4-4872-a018-789d7e87dcb2@suse.com>
 <acVmj-agJOAX9hGV@macbook.local>
 <f671aca0-2782-40cc-9ee5-03916c1a31eb@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <f671aca0-2782-40cc-9ee5-03916c1a31eb@suse.com>
X-ClientProxiedBy: MN2PR05CA0016.namprd05.prod.outlook.com
 (2603:10b6:208:c0::29) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SN7PR03MB7118:EE_
X-MS-Office365-Filtering-Correlation-Id: f979722a-6b3c-4d3c-1e6f-08de8bd8d7be
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	Kh9pCNPl8t52ivaUF1y+6gSuniT1ChsaMs+9n6BsXxOz6ZNdhi6mr64F++JvOgktivYFpgeZfu7XQLkCe6KrpId4s2G0ltgJRrjjwL72ThgWK/iQzArRT3aPOfCTfu+jfhNOvbLmaPAXe9exw/OXFBqWpsVhMQABra1L224LBNf12gOq1J7e3dvd8U3OeGI7m9+BJWMgBzQmjUSddSWi7Naw5jdHiy6Axp0N4FBvvfpQarpvack+H03h95n2l+Gh6LgFhaVp61xOzzb9btg8sbJeJBOwRUZuyeaNgwyvFyycHHxQ2Y1tsghUOHDt/3HZtCgFyxIWzo6IU+AOWipQ+Uithh1CCEIm1/IQezp0OnV6JGR/6RPwh5gRS6VBDdN28005hnz8u6hcCfTYMhRbNhtX1ReSYn7nKMjhMAebivIwiC/9zPdlLjSBhZLcdE/7IPmdZFeWb4FeMriHh+c3egAvkgINWZVyImIsG4vuaJZtXGaBDKm4Hfpv53KdHxhZ7Q8TNBuBaowbtPOOS8lZm4Lf0/WP19Rrg6iPoot+QMUCgzOHtcQQNRp18buRLbWwvRKebXa74FpyZQpB3ehWoZWq8wX/DGQLmPXHI6UDkWeSUefLxMxFt7sfa1oBComBNWWbNa21ajo+zX2YyMf42IDZV/bxB6HsP7V6VXQlcPbzPR9ufNFcjpsD5fJIvonMD3SVEsLprn4V8p6q7UIE4pwmUluTjoUPMMnSzQYpQnk=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?T3pnQTBVOGxOTCthekduZGk2RERRVDJ1VitJZmhXVHkxUGh1ekxjcDl1Ymwy?=
 =?utf-8?B?M0piSWpjcHpDaTZ3U3IwRmtDMGttR1Zvc291bnZsTWw2d0pDdUQ0bStuVFlL?=
 =?utf-8?B?UXRmbXFTUmlpRGd3aGZPWDNNd0xVWmJrL1BXWmdoZzFyUS8yM2F2dHhkYzE1?=
 =?utf-8?B?ZkllcGMwb2VqSk9INzU0MFViZlVwRlNzVlhnWFl3ZkZGNzBmc1pKMVJJOGVi?=
 =?utf-8?B?c01hUXplbWZIb0hyV1Y2NXRXUE84SFFQN25nN2Z0MlZuZDBwY0FQMkxrSzUr?=
 =?utf-8?B?MGVPRnJSUi92WVJjMmlsT1RBY1VJNGc5aC9MbEZNKzBZQ29VVjI0VTBjLzl2?=
 =?utf-8?B?T0VoUU9UMVl4YWpybDczdEN4TDRNRG52YWdsMW1YbE1mVnU2K1hRa3ZyOG92?=
 =?utf-8?B?WUFIMS9zL0lXODNYVDdzRk1Fc3IxdmZVVlNISytldnJVeEROcGNIcTVvUUhw?=
 =?utf-8?B?Q2FXc1g0ZExWdEJmcFFMVGpuRmJHeXpKQ01HQ3dheXVWdWppZzJ3b3lRY1NW?=
 =?utf-8?B?bGRTTStCZ1EvRENRVUpPY0xaeHNJb1VBMjlQdWdmelcvQklSNkx0Umo0czN6?=
 =?utf-8?B?R2psaDNud1BrT1J1anpqSUpMMEhFWWlkT3R2d2xMZWtHcko4NjFTTENzUDRk?=
 =?utf-8?B?emlFYVlKUktlb0svUStRcjJrZ05GbHdjVndocnVadlhKR3ZMZXRuNlc3Ulpy?=
 =?utf-8?B?Z3owU2JncGVVNGZpTnlUalZyOENhc3VZSWJlUkJDWDU5UmVjdytCc3RSZUtp?=
 =?utf-8?B?UzdubjNMZEtTdnJ4RWRIWDI4RVptTXlqNGZua096cDNqbjFPdzFIakRYWWxp?=
 =?utf-8?B?b01yZmcwRFhpbjhHR082ZVZJR2xpWE1nUzJHT2JkM0hwbC9zZkxHdzlVM0c3?=
 =?utf-8?B?TGd5M0k4ZHpyN2tyOC9iRXRPVUF0VnNGaEtwb0ZjNlROUzBJSVZKc21VQ2lT?=
 =?utf-8?B?UXFKN3BaSVpWM3RRZ2cxOWVzYmEvOER1am84WVBLOGFzbTRBcW1KeEs2YjFw?=
 =?utf-8?B?NVArelgvL0RDeWJuTGVXOVhxQUlZNy9vYVlHSFlHcStKdmg3VitkN1Y2UFp1?=
 =?utf-8?B?L0Y1QnRGbXRTTDl4T3BNMmV3STBuSVpTeExKejl3Q0hJMFpCQ2xLQWhMYmI2?=
 =?utf-8?B?Z0NqOVg0ZEl1STcrSWhLR2xWSU92RHJ4L1pSTFhZZGNhZjhyNUdKazFzNHB6?=
 =?utf-8?B?d2E0M24zYkUyd0VJaW5ZOHE2VWNyY3lSUzRIQ0RJZjE2RUo3UkxWNms4anNU?=
 =?utf-8?B?dnJBQkhLK2lEZkczTjA4T1BaOEE2Vzl1K2lWUy9qN2NXQVIrUEx2c0Mxbk9s?=
 =?utf-8?B?ZnNjU3N5M3dPcU4wOW9Mb3pKSUFUZFRNTUFGN000RmZNc0d4VGdrd29jZHBm?=
 =?utf-8?B?czR5eHRRSHZJbmdsY2paMWVYSFRkL1R0S0ZkSFVJdWxEM3Rqd1dHTnJrSnNx?=
 =?utf-8?B?U0g4TkZJTVlOYUo4azRkMGNYUVhWTHNFRFA0ZlJ6OTNxM2FLNCtERldSVzB3?=
 =?utf-8?B?eDdoOWlSYVpnRDMySVNvQjVCK1pjQ1RuK0tXN3Exa0RnUEJaNzVSK3d0OVVl?=
 =?utf-8?B?aVJEMHM0aE93VFpDUjhzN0g4ek40czFxZWxXR2pZRFlEZ2w5YmRqTEpmb05U?=
 =?utf-8?B?WGlRRnZ5dlhMWDVUSVplYmZxYTJ4cmt4ZDdXcjdxQnF2cnQ3L0xoNVhDZmxl?=
 =?utf-8?B?UFFpT3ZHaFNpdUU1TXFFL3hZVTJaYTMvZmkzZ3Fqcy9OWjA4Z0tjbDFLVGxi?=
 =?utf-8?B?MDN6SitzLytnQW94Y2MrZUlYcGNpSnNXVFB6NDFFVlMvUEtDeEN0WlhFY0Na?=
 =?utf-8?B?K05PRjFGNi80Q2R5d1N1YnhZZ1REaVRGZ2syWmtYRWhJQTg0Z2pTMm1pSFQ3?=
 =?utf-8?B?WmpjeUpLZ1N5K2RYK0h3bWdhc3pmeGFzY1N4U2Jxd0pra3dWeVlNam5xQitv?=
 =?utf-8?B?N3BQek1LVncxWUR5b3BQM0tYc3lBRDJqam9Md2NZZ2lvMERzZjJzamVnMXZw?=
 =?utf-8?B?Yk1lUkRzbFp6RmFuSlFNQkNGU3dkY2xidURDZXpzZ3BOTlpSbUpEbHB6Mjkx?=
 =?utf-8?B?QVVTTEFKZUVFYWdNMzZCSXVtQkNoWGdCbkdEVWNHR3lBOXlqRTJ5USs5c3k2?=
 =?utf-8?B?Mk9YTkk0M0dyd3dzWFFrdnMrS0Z2dytUT2szM21JV1B2T2w1dXJIOVAxV1E4?=
 =?utf-8?B?UFl6WnFBeGtHd0RVbW56Q1ZJUStDUmR6WEcrVXQvVi9HZDNEdVBpOXJkZUs5?=
 =?utf-8?B?U29ZWTJoOEF3S3NtejhZOHpqK1p5bUQ4bm1JcVlaSkxLcDdYU0NUblhXcDFx?=
 =?utf-8?B?QkZvSURZSDN6Q043QVZmOFB5RnFiWHRDYTFDcVNFZkNLbGpETVhzdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f979722a-6b3c-4d3c-1e6f-08de8bd8d7be
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 08:14:18.4275
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: In7d2Gl7p82xIsFz/LaXG7n7HNwIIlNEUxVvHXkpHvOqBa8fX6VjfR1mIWnKcUQNu3WOdWpT1ZUo7LZAf9aZug==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR03MB7118
X-purgate-ID: tlsNG-33051d/1774599263-49C5A72C-FD4368C1/0/0
X-purgate-type: clean
X-purgate-size: 4647

On Fri, Mar 27, 2026 at 08:59:29AM +0100, Jan Beulich wrote:
> On 26.03.2026 18:02, Roger Pau Monné wrote:
> > On Thu, Mar 26, 2026 at 05:00:15PM +0100, Jan Beulich wrote:
> >> On 26.03.2026 16:13, Roger Pau Monné wrote:
> >>> On Thu, Mar 26, 2026 at 01:02:22PM +0100, Jan Beulich wrote:
> >>>> On 25.03.2026 15:58, Roger Pau Monne wrote:
> >>>>> Read the existing PCI command register and only add the required bits to
> >>>>> it, as to avoid clearing bits that might be possibly set by the firmware
> >>>>> already.
> >>>>>
> >>>>> This fixes serial output when booting with `com1=device=amt` on a system
> >>>>> using an "Alder Lake AMT SOL Redirection" PCI device (Vendor ID 0x8086 and
> >>>>> Device ID 0x51e3).  That device has both IO and memory decoding enabled by
> >>>>> the firmware, and disabling memory decoding causes the serial to stop
> >>>>> working (even when the serial register BAR is in the IO space).
> >>>>>
> >>>>> Fixes: f2ff5d6628b3 ("ns16550: enable PCI serial card usage")
> >>>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> >>>>
> >>>> I'm not convinced Fixes: is appropriate here. There's nothing wrong with that
> >>>> commit, aiui. What's bogus is the device behavior.
> >>>
> >>> Hm, I would argue that disabling command register bits for devices
> >>> that have those enabled is in general dangerous.  What about device
> >>> RMRR or similar residing in BARs, and Xen disabling memory decoding
> >>> unintentionally while attempting to enable IO decoding?
> >>
> >> RMRRs in BARs seems unlikely (as BARs can be moved), but you have a
> >> point in general. Otoh devices are fully under our (later under Dom0's)
> >> control, so we may clear (or set) bits as we see fit to get a device
> >> to function. FTAOD, I'm not outright objecting to the tag, I'm merely
> >> questioning it some.
> >>
> >>>>> --- a/xen/drivers/char/ns16550.c
> >>>>> +++ b/xen/drivers/char/ns16550.c
> >>>>> @@ -283,11 +283,17 @@ static int cf_check ns16550_getc(struct serial_port *port, char *pc)
> >>>>>  static void pci_serial_early_init(struct ns16550 *uart)
> >>>>>  {
> >>>>>  #ifdef NS16550_PCI
> >>>>> +    uint16_t cmd = 0;
> >>>>> +
> >>>>> +    if ( uart->ps_bdf_enable )
> >>>>> +        cmd = pci_conf_read16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
> >>>>> +                                       uart->ps_bdf[2]), PCI_COMMAND);
> >>>>
> >>>> Why is this conditional? While fine for the use at the bottom, ...
> >>>
> >>> The comment next to the field states:
> >>>
> >>>     bool ps_bdf_enable;     /* if =1, ps_bdf effective, port on pci card */
> >>>
> >>> So it didn't seem like further checking was needed and that was the
> >>> sole filed to decide whether ps_bdf is populated or not.
> >>>
> >>> However, I also found that when using device=amt|pci ps_bdf_enable
> >>> doesn't get set, and hence I'm not sure if that's intended or not.
> >>> Shouldn't ps_bdf_enable get set unconditionally when the serial device
> >>> is a PCI one?
> >>
> >> I think this was deliberate, hence why ...
> >>
> >>>>>      if ( uart->bar && uart->io_base >= 0x10000 )
> >>>>>      {
> >>>>>          pci_conf_write16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
> >>>>>                                    uart->ps_bdf[2]),
> >>>>> -                         PCI_COMMAND, PCI_COMMAND_MEMORY);
> >>>>> +                         PCI_COMMAND, cmd | PCI_COMMAND_MEMORY);
> >>>>>          return;
> >>>>>      }
> >>>>
> >>>> ... it looks wrong(ish) for this path. Actually, in ns16550_init_postirq()
> >>>> we use
> >>>>     if ( uart->bar || uart->ps_bdf_enable )
> >>
> >> ... this conditional is now in use.
> > 
> > Right, but then the logic in pci_serial_early_init() doesn't apply to
> > those devices (device=amt|pci) when the BARs are in IO space?
> > 
> > As uart->ps_bdf_enable == false, and uart->io_base < 0x10000, it will
> > return early from the function without attempting to enable the IO
> > BAR.  Is this really expected?  It looks like Xen should always make
> > sure the respective BARs are enabled if the device is to be used for
> > serial output?
> 
> I agree. Many of the changes were hacked in just to make someone's
> device work, without having general aspects in mind. I expect most if
> not all checks of ->ps_bdf_enable want amending by adding ->bar ones.

Wouldn't it be easier to unconditionally set ->ps_bdf_enable when a
PCI device is being used?  I find it confusing that there are two
different fields (->ps_bdf_enable and ->bar) that signal whether a PCI
device is in-use.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 08:51:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 08:51:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265209.1556237 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w62u7-0005kE-5M; Fri, 27 Mar 2026 08:50:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265209.1556237; Fri, 27 Mar 2026 08:50:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w62u7-0005k7-0O; Fri, 27 Mar 2026 08:50:55 +0000
Received: by outflank-mailman (input) for mailman id 1265209;
 Fri, 27 Mar 2026 08:50:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w62u5-0005k1-Fn
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 08:50:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w62u4-00583o-RB
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 09:50:52 +0100
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c644df-5cb7-0a2a0a5109dd-0a2a450c9176-26
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 09:50:52 +0100
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c644ec-f93d-0a2a450c0019-d1558029e93b-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 09:50:52 +0100
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-486fba7ce4cso18963795e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 01:50:52 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48725fd18b7sm13173765e9.13.2026.03.27.01.50.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 27 Mar 2026 01:50:51 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774601452; x=1775206252; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wuAQ4Bxx/ykp94+TYpISvvtOEOUswdYHZTQGuqAiPb4=;
        b=M1yDmIQRO7nYHn08M4MYjL4Rzgjau8HPV7wS96BQ7Kjvii5O4/6qte2b3ge4Ik/Mdp
         /5WrufgT2yjimaljHLCdt+NpqF3RKqrM68Ugm1SqMZcNeKcgfUF1wnjMj74pZUAGbJKZ
         exoMbIpnDhTrnqt7qyOxGFh9hvOYxlMBQLqCidgqJ0RcT30lErM4shxH8FkNf34ionOY
         R+0LDZo3quMfMDxltYspl6W7HC1Kj0SK30rFZqSzk2K+wsoB/KACzz/zTO0YZmZLCtC4
         uQC6fV70oTTs3YJgw7cIlcofUZvyoGRwQFzaaQ45h6PbD4kOG8HMi9wazTR8BKvSh3pB
         k4NQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774601452; x=1775206252;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wuAQ4Bxx/ykp94+TYpISvvtOEOUswdYHZTQGuqAiPb4=;
        b=dN0Iga2DidB3TQ86Nt4ZIvUreaMQSNF5XL/ex0C5nOul53zy3putMpHYCkCplBtITb
         Egxg5YNk5iFJ/uQnlPnG7mDaewem6uO3btry9ATlzLhFaq4GQb5Tt1gcsMhgFHV927If
         OJbdEijgE9J1GxSyB1CJvw/LwsltW/IHp3jGeOgKXjgAJK8htmJ7DyDRx54lP2oIZCSF
         4xbNlv9pZvkWTzulTTjE5GPnvbINrQamHwDgF3AcBG0Dko/gV0acv0/RKD/iH+Pc96PH
         GSxSwcshUR9wbCFzNUUx/4PyDeReHsdiSHpdgqd0b806i9hVmsgNt74t6wrYEtvZn4ur
         8s3A==
X-Forwarded-Encrypted: i=1; AJvYcCVAHFfe++ipUB0VQ1QrGj9t4tdSCbsFVbE9HnlgBpS90ROSspT26/1KxjEEfdbet9i36Z+Y319fPDI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxvf8bPfjl/cq8+Es6DUOPMEWOJWQ1Qsrw0wU6nkd5EFUbzGmml
	NaNXzqQYtH3jALdQ/b6HHODnLCjlHP/b0L9H8/PSttiXEGFZbfeAJyT2d1Gpr48+PQ==
X-Gm-Gg: ATEYQzz2HLyvN0ygBgyvSyuNt29Ov2tKowSd23EQ552iJyNj/0uX2CatyHVbonRwS/y
	l2hL6Ijjaz/1BWV7hOARziN4aWK4t/+gHq5PUeTLO7UPe/u4AcerIs/s06hRxx0frWMopsCm0cK
	j0rMuo0D65k47gy3wlKeDpcTgbjCD4HJNEBQ2CGTJOqhUSqDi4vX77ZuzQtxPf1yLYDckApRg+i
	GftWYTQysiUOjn3yq1qYCyTq0bcMW23eQ8uACWai7CfTeJ7DK5Y7QFNO7Lwz3rQEfq2cGRX3hUi
	Q8kAHl/ROwf03pmFRSh/givr09BuHK0KoscHHNyp6fMlz+PbzpECqkmMeWbJj21jP+Lxjt6uNVF
	8GsXW5wDDqjUkdvKUswVVzfCHsab52yXb3Do74h5Cl1ZNtg8yVuGYvqWei9Lq9kkSntxjl/Kvhs
	0d5Ik8xBSmzqF7iZ7PraxXIwqALs6sC+YHHRHYHM4Hj6g6b+cO7NxL67U6JmelGK41cGn7PIcIy
	qp0fNcuTOcTig4=
X-Received: by 2002:a05:600c:c493:b0:471:700:f281 with SMTP id 5b1f17b1804b1-48727ef16f4mr24811555e9.25.1774601451990;
        Fri, 27 Mar 2026 01:50:51 -0700 (PDT)
Message-ID: <b67bbdd7-e1dd-4a18-b552-1c90d6323ac9@suse.com>
Date: Fri, 27 Mar 2026 09:50:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/pv: Provide better SYSCALL backwards
 compatibility in FRED mode
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260325170208.1115832-1-andrew.cooper3@citrix.com>
 <20260325170208.1115832-3-andrew.cooper3@citrix.com>
 <059588cd-d73e-40a1-98b4-65be01957d41@suse.com>
 <08a02b65-92f5-4e78-8c34-38a22ae4d906@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <08a02b65-92f5-4e78-8c34-38a22ae4d906@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1774601452-F5EB3734-33FFD780/0/0
X-purgate-type: clean
X-purgate-size: 3971

On 26.03.2026 22:05, Andrew Cooper wrote:
> On 26/03/2026 9:14 am, Jan Beulich wrote:
>> On 25.03.2026 18:02, Andrew Cooper wrote:
>>> In FRED mode, the SYSCALL instruction does not modify %rcx/%r11.  Software
>>> using SYSCALL spills %rcx/%r11 around the invocation, which is why FRED not
>>> doing this goes largely unnoticed.
>>>
>>> However, consider the following migration scenario:
>>>
>>>  * VM suspends.  Hypercall, so SYSCALL, %rcx/%r11 left unmodified
>>>  * VM moves to a non-FRED system
>>>  * Xen resumes the VM with a real SYSRET instruction
>>>
>>> Instead of resuming at the instruction following the SYSCALL instruction, the
>>> VM is resumed at whatever dead value was in %rcx.
>> Would it? In restore_all_guest we load %r11 and %rcx from the stack
>> frame's EFLAGS and RIP fields. If we didn't, various other things wouldn't
>> work either.
> 
> Hmm.  I suppose so.  regs->rip/eflags is always going to be
> reconstructed properly for the records in the transmitted stream.
> 
> What will be wrong is the %rcx/%r11 put onto the guest stack.

Okay, this is addressed by ...

>>> --- a/xen/arch/x86/traps.c
>>> +++ b/xen/arch/x86/traps.c
>>> @@ -2405,6 +2405,8 @@ void asmlinkage entry_from_pv(struct cpu_user_regs *regs)
>>>  
>>>              regs->ssx = l ? FLAT_KERNEL_SS   : FLAT_USER_SS32;
>>>              regs->csx = l ? FLAT_KERNEL_CS64 : FLAT_USER_CS32;
>>> +            regs->rcx = regs->rip;
>>> +            regs->r11 = regs->rflags;

... this change.

>> Don't you also need to set TRAP_syscall here, for the new code in
>> eretu_exit_to_guest to actually make a difference?
> 
> It is create_bounce_frame() which sets up TRAP_syscall.

Hmm, right. I was misled by {l,c}star_enter and sysenter_entry setting
the flag explicitly. That looks to be necessary only for the pv_hypercall()
path out of lstar_enter; everything else goes through create_bounce_frame().

>>  (There actually is
>> a paragraph about this in the comment out of context above, which then
>> may also want adjusting.)
>>
>> Further a question as to limiting overhead: Doing this on every SYSCALL
>> entry ...
>>
>>> @@ -26,7 +27,16 @@ FUNC(entry_FRED_R3, 4096)
>>>  END(entry_FRED_R3)
>>>  
>>>  FUNC(eretu_exit_to_guest)
>>> -        POP_GPRS
>>> +        /*
>>> +         * PV guests aren't aware of FRED.  If Xen in IDT mode would have used
>>> +         * a SYSRET instruction, preserve the legacy behaviour for %rcx/%r11
>>> +         */
>>> +        testb   $TRAP_syscall >> 8, UREGS_entry_vector + 1(%rsp)
>>> +
>>> +        POP_GPRS /* Preserves flags */
>>> +
>>> +        cmovnz  EFRAME_rip(%rsp), %rcx
>>> +        cmovnz  EFRAME_eflags(%rsp), %r11
>> ... and every exit-to-guest isn't very nice when concern is about just the
>> specific case of migrating FRED -> non-FRED. Couldn't we instead make the
>> adjustment when generating the save record for the register state of the
>> vCPU?
> 
> Ignoring migration for a moment, there are two further cases where
> things go wrong.  Consider a VM which logically does this:
> 
>     // user mode
>     SYSCALL
>     mov %rcx, dbg_syscall_was_here
> 
>     // kernel mode
> entry_SYSCALL:
>     ... setup stack
>     mov %rcx, UREGS_rip(%rsp)
> 
> 
> Both of these positions under FRED have unexpected content in %rcx/%r11.
> 
> In userspace it is common to spill %rcx/%r11 and restore them around
> SYSCALL, but that's not an ABI.  This is addressed by the hunk in
> entry_from_pv().

Right, and the eretu_exit_to_guest change mirrors what we do ahead of
SYSRET (or its conversion to IRET). While there are cases (for both
paths) where RESTORE_ALL / POP_GPRS would already have restored the
intended values, there are enough other cases where the value would
have changed.

Overall, however, I think that the patch description would want
altering, to cover more aspects (as discussed).

Jan


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 08:52:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 08:52:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265219.1556245 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w62vv-0006FV-Dw; Fri, 27 Mar 2026 08:52:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265219.1556245; Fri, 27 Mar 2026 08:52:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w62vv-0006FO-Af; Fri, 27 Mar 2026 08:52:47 +0000
Received: by outflank-mailman (input) for mailman id 1265219;
 Fri, 27 Mar 2026 08:52:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w62vu-0006FI-7B
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 08:52:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w62vr-001fbz-WC
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 09:52:45 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c6455d-2eae-0a2a0a5409dd-0a2a45029a44-2
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 09:52:45 +0100
Received: from [209.85.221.54] (helo=mail-wr1-f54.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c6455d-63bb-0a2a45020019-d155dd36a8b9-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 09:52:45 +0100
Received: by mail-wr1-f54.google.com with SMTP id
 ffacd0b85a97d-43b949bf4easo1075629f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 01:52:45 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b9192e3e8sm15724275f8f.5.2026.03.27.01.52.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 27 Mar 2026 01:52:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774601565; x=1775206365; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8kAA2PHmnVB/lvtWwr69mMYqgee2MVOD2w7LzEDTq8E=;
        b=C8VfvVHhwBP798uDCLl93BcZ8ghnnFT+kiw2u/kPC79uIgSODwX0jniChiDQHCEZgX
         KbfYkjZYi7UcyKqY0BXodbN3nKSqaZoHbI72Eagitpb+m9o8DxFulWVriBS9iJN77PZ+
         JvaUmUoJqJe7EHClcY7T3ACa6A3kBgrBvoTnALy7Aa+wE43YUEuSyu5Vmm8B+wium25G
         hf+/cq81S6OBhRHgvMs/BfsO/hxQeBDC4nisRrA7D0nywY1VeZ6ewGPzbDqkziEeg1br
         Kf1nScg5Q9R1RAmtRpXM0MNWheBRpWb4pd7La7grqs+XhFNMJ4FKywjljyIAuOVEL73L
         aEww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774601565; x=1775206365;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8kAA2PHmnVB/lvtWwr69mMYqgee2MVOD2w7LzEDTq8E=;
        b=MeCPz/TnB/FcsJtB9k9F0t66aMYpAgObbWvaz1BHs1DCmLNn6p70k140F9EdgPgTmn
         hRznXIMhE1+HxWoILpJIStod2QlTGjmpZWCzXU+daSVSJFNW1hExwqHiFpfF6UH+4bzX
         Uuxy8wZ3gPi1kvnGS8wuqTcjiBelfWXSYnebkvCsy+nEhW3tVBwFvnzAL/d2VCC22IQP
         EGqnk75N25W1NRir7Cc3eqZ1OMENrVsveTkrMT1aXihCN4Vl3u4FhcV1VW6LoYtrqDc4
         ZgbMrGLp0PTKZE+EdGCd22lqxITPXlVJ+q8UIq0718sSwgmQLfnq2r+fTdpLjpzkvcH/
         SJ2A==
X-Forwarded-Encrypted: i=1; AJvYcCVdVZkBDNzhGSqtO1u9bmcdYt1/maefMQqOHi0J+lyPQkGYrnVmSP3pZAQJQTtS/Kl6RRzH+0j4JRk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyMdhbIl/27f2u1XYjAmJBEVQ1e1ECly2EgEvmsRLclCu02Ycel
	LzjgxhZsY53FOSVSrxNPUH3yw26Hwg0ZcY/QYGgIIJhtaW1QPYFEnXH0S8ojG5jwbQ==
X-Gm-Gg: ATEYQzw2zeePGK1FdgnladQHlg7xTNhQ8J+7p3kYWcgsPGeCVujA88oZN+60RemZadC
	Wpnu8fi8O+UHUNCWgsoAuzFmz403OlYutekhEbKr0+PC7xW1NDgMvmKZvO4C0nOQYP6d6aFPNZ3
	EJgJTwZF7ctWvFhkMn5PXFzN1jwizleycq5wVZTxA9q845tGWjcH91/QI/3RJQDiSUn63S9jazJ
	Kzwb/5jykwftbhhvS33btOMscA3rMyXhSr9ompt5vptCw6c86ULcJWGR1Pi8Ied5cgGm3vYK4nx
	NPVIlWUAI+3xwGh13CAjLhxTlXFb2cOZwhSzzlGsxVd6mk3NbpddNxjYt7c+CV94+HSyeV8Y8dc
	xkGcRGEfiUODez/D90+/pltE7/2rFSmZ3zoBuSF2VCj775dQSfYZKjeoDeNU2Pz8zsao5bRITZP
	9EkpO8KXFJqC7fh3jkMYwDP3W3MBlgZhClFXbrvJzDTMqoLsto2SFCVwJZtavm/ybSaQSOxM9cZ
	fu2wbtXjLsg7GQ=
X-Received: by 2002:a05:6000:1a89:b0:43b:9b9a:1bc with SMTP id ffacd0b85a97d-43b9ea9ac46mr2266877f8f.5.1774601564590;
        Fri, 27 Mar 2026 01:52:44 -0700 (PDT)
Message-ID: <09f19f3a-d37f-433f-a2b7-f21ca0a467d6@suse.com>
Date: Fri, 27 Mar 2026 09:52:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/4] xen/uart: be more careful with changes to the PCI
 command register
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: <20260325145824.31601-1-roger.pau@citrix.com>
 <20260325145824.31601-2-roger.pau@citrix.com>
 <2a00a1d2-7017-4c76-8344-018eb3f30f50@suse.com>
 <acVNMQ_HqRpgkP7i@macbook.local>
 <b4b67bc1-c7e4-4872-a018-789d7e87dcb2@suse.com>
 <acVmj-agJOAX9hGV@macbook.local>
 <f671aca0-2782-40cc-9ee5-03916c1a31eb@suse.com>
 <acY8VygqtQL7ZRQy@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <acY8VygqtQL7ZRQy@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1774601565-BF081DB8-A519D0C8/0/0
X-purgate-type: clean
X-purgate-size: 4816

On 27.03.2026 09:14, Roger Pau Monné wrote:
> On Fri, Mar 27, 2026 at 08:59:29AM +0100, Jan Beulich wrote:
>> On 26.03.2026 18:02, Roger Pau Monné wrote:
>>> On Thu, Mar 26, 2026 at 05:00:15PM +0100, Jan Beulich wrote:
>>>> On 26.03.2026 16:13, Roger Pau Monné wrote:
>>>>> On Thu, Mar 26, 2026 at 01:02:22PM +0100, Jan Beulich wrote:
>>>>>> On 25.03.2026 15:58, Roger Pau Monne wrote:
>>>>>>> Read the existing PCI command register and only add the required bits to
>>>>>>> it, as to avoid clearing bits that might be possibly set by the firmware
>>>>>>> already.
>>>>>>>
>>>>>>> This fixes serial output when booting with `com1=device=amt` on a system
>>>>>>> using an "Alder Lake AMT SOL Redirection" PCI device (Vendor ID 0x8086 and
>>>>>>> Device ID 0x51e3).  That device has both IO and memory decoding enabled by
>>>>>>> the firmware, and disabling memory decoding causes the serial to stop
>>>>>>> working (even when the serial register BAR is in the IO space).
>>>>>>>
>>>>>>> Fixes: f2ff5d6628b3 ("ns16550: enable PCI serial card usage")
>>>>>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>>>>>>
>>>>>> I'm not convinced Fixes: is appropriate here. There's nothing wrong with that
>>>>>> commit, aiui. What's bogus is the device behavior.
>>>>>
>>>>> Hm, I would argue that disabling command register bits for devices
>>>>> that have those enabled is in general dangerous.  What about device
>>>>> RMRR or similar residing in BARs, and Xen disabling memory decoding
>>>>> unintentionally while attempting to enable IO decoding?
>>>>
>>>> RMRRs in BARs seems unlikely (as BARs can be moved), but you have a
>>>> point in general. Otoh devices are fully under our (later under Dom0's)
>>>> control, so we may clear (or set) bits as we see fit to get a device
>>>> to function. FTAOD, I'm not outright objecting to the tag, I'm merely
>>>> questioning it some.
>>>>
>>>>>>> --- a/xen/drivers/char/ns16550.c
>>>>>>> +++ b/xen/drivers/char/ns16550.c
>>>>>>> @@ -283,11 +283,17 @@ static int cf_check ns16550_getc(struct serial_port *port, char *pc)
>>>>>>>  static void pci_serial_early_init(struct ns16550 *uart)
>>>>>>>  {
>>>>>>>  #ifdef NS16550_PCI
>>>>>>> +    uint16_t cmd = 0;
>>>>>>> +
>>>>>>> +    if ( uart->ps_bdf_enable )
>>>>>>> +        cmd = pci_conf_read16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
>>>>>>> +                                       uart->ps_bdf[2]), PCI_COMMAND);
>>>>>>
>>>>>> Why is this conditional? While fine for the use at the bottom, ...
>>>>>
>>>>> The comment next to the field states:
>>>>>
>>>>>     bool ps_bdf_enable;     /* if =1, ps_bdf effective, port on pci card */
>>>>>
>>>>> So it didn't seem like further checking was needed and that was the
>>>>> sole filed to decide whether ps_bdf is populated or not.
>>>>>
>>>>> However, I also found that when using device=amt|pci ps_bdf_enable
>>>>> doesn't get set, and hence I'm not sure if that's intended or not.
>>>>> Shouldn't ps_bdf_enable get set unconditionally when the serial device
>>>>> is a PCI one?
>>>>
>>>> I think this was deliberate, hence why ...
>>>>
>>>>>>>      if ( uart->bar && uart->io_base >= 0x10000 )
>>>>>>>      {
>>>>>>>          pci_conf_write16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
>>>>>>>                                    uart->ps_bdf[2]),
>>>>>>> -                         PCI_COMMAND, PCI_COMMAND_MEMORY);
>>>>>>> +                         PCI_COMMAND, cmd | PCI_COMMAND_MEMORY);
>>>>>>>          return;
>>>>>>>      }
>>>>>>
>>>>>> ... it looks wrong(ish) for this path. Actually, in ns16550_init_postirq()
>>>>>> we use
>>>>>>     if ( uart->bar || uart->ps_bdf_enable )
>>>>
>>>> ... this conditional is now in use.
>>>
>>> Right, but then the logic in pci_serial_early_init() doesn't apply to
>>> those devices (device=amt|pci) when the BARs are in IO space?
>>>
>>> As uart->ps_bdf_enable == false, and uart->io_base < 0x10000, it will
>>> return early from the function without attempting to enable the IO
>>> BAR.  Is this really expected?  It looks like Xen should always make
>>> sure the respective BARs are enabled if the device is to be used for
>>> serial output?
>>
>> I agree. Many of the changes were hacked in just to make someone's
>> device work, without having general aspects in mind. I expect most if
>> not all checks of ->ps_bdf_enable want amending by adding ->bar ones.
> 
> Wouldn't it be easier to unconditionally set ->ps_bdf_enable when a
> PCI device is being used?

Maybe.

>  I find it confusing that there are two
> different fields (->ps_bdf_enable and ->bar) that signal whether a PCI
> device is in-use.

I found the field itself confusing, not the least because of its name
and its sibling pb_bdf_enable.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 09:11:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 09:11:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265239.1556253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w63EE-0001L0-Ri; Fri, 27 Mar 2026 09:11:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265239.1556253; Fri, 27 Mar 2026 09: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 1w63EE-0001Kt-Ov; Fri, 27 Mar 2026 09:11:42 +0000
Received: by outflank-mailman (input) for mailman id 1265239;
 Fri, 27 Mar 2026 09:11:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w63EC-0001Kn-Ue
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 09:11:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w63EC-007WLY-As
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 10:11:40 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c649b9-2eae-0a2a0a5409dd-0a2a4505b002-40
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 10:11:40 +0100
Received: from [209.85.208.170] (helo=mail-lj1-f170.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69c649cb-5aeb-0a2a45050019-d155d0aaadb4-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 10:11:40 +0100
Received: by mail-lj1-f170.google.com with SMTP id
 38308e7fff4ca-38a23dd61c1so15009271fa.1
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 02:11:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1774602699; cv=none;
        d=google.com; s=arc-20240605;
        b=O0KzzXAM4rCUBmdkzzIo+Qy81UZjvhRhm4a+LL5w+pg8GQYbdB1MJISfbuPZeDKLob
         ULfU9l4JF3fMhN+pU33yDJzfnP/xyUp/Uxc283ECE/53XPMpQRONf6S5a/nPvkiYEbKQ
         QRh92Sw8/HpUlsUTc1KaBwL7EeIDZvVJExpv8PsCqGrFn4wF2qRqJQ9Ynk/N5EuS2SCk
         gRCfMpEoGklMLqpcWoBY5nPyiJAAxqHWGCtG6GzFncK1/v8bgij/s13OzXKAJIJStoCL
         /3A8dTaNpStkPTCFQSDeFDobol7tLraktmdsat4zy3Sj5NGQXJchXA8wS2QhDC7nV/hk
         lH7A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=KQML13fyfgAorc0tVFiOps1RwCyueKtabRMPDC/JYrY=;
        fh=GcAnV04oVU2HKEblD282Gh+CXQ2cxEXfEru6Er11u4o=;
        b=StctDlTMkJUDNfKzln1q0n02R9Byn8X/Kj/foi6agx2Kx8bCTE2Of1NQdXiRRWudR+
         uVKSKMq62yUGYNVCPinoRXs3/monbs0sZ2tOwYfl2Af7R5KIVoPXu2q7g+tXtoS6OA8W
         RYQePVQhoQczyNptxHl2JnPXFNWp1UiYt0cbQSfdAZTtkg4216sNjeE5WyfPQoqZwhQ4
         +5lLQgdrZVjX4qhiShSSY+OWf8ZCdDSONp5zZ7NWzcevozZMHy7yjgsj2O9jPJpU5bN1
         3ymKaCV9g8Mwe/vCvQyh23Pkk2zyFu2yxdLP3Z/n/v58Slplf1QWgTpGcjMXI9U40+ue
         bkyA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774602699; x=1775207499; 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=KQML13fyfgAorc0tVFiOps1RwCyueKtabRMPDC/JYrY=;
        b=ObZU6+NIB1Sn+euYiHSBtkoIfmStj8hIytxsFk9aJAbB42Lkbj+avQ5kWz7f6Vp0gi
         deA9ckijVWHgjtqVTAWzKXEz4+sy+VVPeL9sL6ePg4nf+pZ+zV2gt3VHGXUb618U9cRK
         nIumOcFmIcaTaH6/TXzw8Gdvi8+0XNcZvB6qPzYRzrXDtmPV8lMlvRqzN7edD691ZcGw
         cyAL913YvQVa/V5uH4o3NRIe4aDuNYDMCRcIPBNVKHNiROgnhP7l71BNd3yXJiZtZDQC
         x9Ezk4u9+y+HXtLRKu6VuYgDBjt9dx4f+QSKauYMkc5IC+Tf19GcQroMiPUl151bqSEB
         xD8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774602699; x=1775207499;
        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=KQML13fyfgAorc0tVFiOps1RwCyueKtabRMPDC/JYrY=;
        b=c83vXtKJeF5fhjL0Uez9F0GO9OssBk79Lm8lHFqzZm8p+gIsRKa+ntvm9cHKgKLRu7
         ktsPD75cwHbgAVKPiUQDCHT8/Hh3nKHQ2hWCYJ9oLPl+9fpQmMJ8qDK/2IezcEv89iMj
         0RLXCj/h1j5b8ztkZ35WvzZOdKIXGRb13yXm/boHue4hs8TV7ydrdmcWy4qeeDtGiQSc
         /pAljUIWMuhna+tg/KPSUgUdeNlW71nhDv+dcgEAO0nv+eREvfS7a4OKvBDj9KmAdhMh
         2u3NssY00BoVTHnecp5D1TaS035vMCO9cJ/4nXfJoJle55jXrp2Dayu0z1kZADFSvssq
         Bz0w==
X-Gm-Message-State: AOJu0Yy4/Kn4i/s9gwoaswN42D+4mRsXt/jQZNGa7bpmhpVBuVrJx75t
	mkkRYKeGpLoa1rDLbdv0KuleIAp/VnbnnQgcCsVoZ9y8pPfAbPrJgGfyf4cekTaStL46M/sVWb0
	0dJ3hrjhpzPtaxKn1jVNtav/ZRoeKAic=
X-Gm-Gg: ATEYQzxE1lA+s12CjsucAokXeJxLI3d1JMmQfJ3u1Z1mTTiS7sQIBjKWdSIEd5rQ9zu
	wXK3no4qo2wqOVTNkEM1aaCl5C2AAvTtd6VsWKY0/rEsr1e17javOSGz3Md2ei353czDJVoclKx
	agl1n0ULtBkC7dOoAtwG4at8Y/WZkusHkaf7EAF4QwBW7duc94u8FGYWdk/IW3QcyGIr73JoAi8
	N0XRIWA5SYMdnEOSWUR5e6WPS/YZ8Llb6lI/L6lVCy1P7dPAKnn672WGb3nXFeJs6gLXOf0xeO0
	ovOe
X-Received: by 2002:a2e:a00d:0:b0:38c:59a9:d536 with SMTP id
 38308e7fff4ca-38c74028a0amr4353691fa.26.1774602698960; Fri, 27 Mar 2026
 02:11:38 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1765472890.git.mykola_kvach@epam.com> <58c1873d355f5ea9b5182349895905d25cb57256.1765472890.git.mykola_kvach@epam.com>
 <c5466813-7436-4e24-b14a-24374d6a2c68@gmail.com>
In-Reply-To: <c5466813-7436-4e24-b14a-24374d6a2c68@gmail.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 27 Mar 2026 11:11:26 +0200
X-Gm-Features: AQROBzBXSP3M8Ym4qBUfuqigJw3iSO5nFiqZmtjmSOHbByaD-g9K9_nHct7djfQ
Message-ID: <CAGeoDV8krzHDWuJmBvDZkiomgsEynAq5qGQRzX7kQyVvXvvygg@mail.gmail.com>
Subject: Re: [PATCH v7 08/12] arm/smmu-v3: add suspend/resume handlers
To: Oleksandr Tyshchenko <olekstysh@gmail.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Rahul Singh <rahul.singh@arm.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	Pranjal Shrivastava <praan@google.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-c201ff/1774602700-83347488-25D9FD76/0/0
X-purgate-type: clean
X-purgate-size: 13279

Hi Oleksandr,

Thank you for the review.

On Sat, Jan 31, 2026 at 7:42=E2=80=AFPM Oleksandr Tyshchenko
<olekstysh@gmail.com> wrote:
>
>
>
> On 11.12.25 20:43, Mykola Kvach wrote:
>
> Hello Mykola
>
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > Before we suspend SMMU, we want to ensure that all commands (especially
> > ATC_INV) have been flushed by the CMDQ, i.e. the CMDQs are empty.
> >
> > The suspend callback configures the SMMU to abort new transactions,
> > disables the main translation unit and then drains the command queue
> > to ensure completion of any in-flight commands.
> >
> > The resume callback performs a full device reset via 'arm_smmu_device_r=
eset'
> > to bring the SMMU back to an operational state.
> >
> > Link: https://lore.kernel.org/linux-iommu/20251117191433.3360130-1-praa=
n@google.com   /
> > Based-on-patch-by: Pranjal Shrivastava <praan@google.com>
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> >   xen/drivers/passthrough/arm/smmu-v3.c | 170 ++++++++++++++++++++-----=
-
> >   1 file changed, 134 insertions(+), 36 deletions(-)
> >
> > diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passth=
rough/arm/smmu-v3.c
> > index bf153227db..10c4c5dee0 100644
> > --- a/xen/drivers/passthrough/arm/smmu-v3.c
> > +++ b/xen/drivers/passthrough/arm/smmu-v3.c
> > @@ -1814,8 +1814,7 @@ static int arm_smmu_write_reg_sync(struct arm_smm=
u_device *smmu, u32 val,
> >   }
> >
> >   /* GBPA is "special" */
> > -static int __init arm_smmu_update_gbpa(struct arm_smmu_device *smmu,
> > -                                       u32 set, u32 clr)
> > +static int arm_smmu_update_gbpa(struct arm_smmu_device *smmu, u32 set,=
 u32 clr)
> >   {
> >       int ret;
> >       u32 reg, __iomem *gbpa =3D smmu->base + ARM_SMMU_GBPA;
> > @@ -1995,10 +1994,29 @@ err_free_evtq_irq:
> >       return ret;
> >   }
> >
> > +static int arm_smmu_enable_irqs(struct arm_smmu_device *smmu)
> > +{
> > +     int ret;
> > +     u32 irqen_flags =3D IRQ_CTRL_EVTQ_IRQEN | IRQ_CTRL_GERROR_IRQEN;
> > +
> > +     if ( smmu->features & ARM_SMMU_FEAT_PRI )
> > +             irqen_flags |=3D IRQ_CTRL_PRIQ_IRQEN;
> > +
> > +     /* Enable interrupt generation on the SMMU */
> > +     ret =3D arm_smmu_write_reg_sync(smmu, irqen_flags,
> > +                                   ARM_SMMU_IRQ_CTRL, ARM_SMMU_IRQ_CTR=
LACK);
> > +     if ( ret )
> > +     {
> > +             dev_warn(smmu->dev, "failed to enable irqs\n");
> > +             return ret;
> > +     }
> > +
> > +     return 0;
> > +}
> > +
> >   static int __init arm_smmu_setup_irqs(struct arm_smmu_device *smmu)
> >   {
> >       int ret, irq;
> > -     u32 irqen_flags =3D IRQ_CTRL_EVTQ_IRQEN | IRQ_CTRL_GERROR_IRQEN;
> >
> >       /* Disable IRQs first */
> >       ret =3D arm_smmu_write_reg_sync(smmu, 0, ARM_SMMU_IRQ_CTRL,
> > @@ -2028,22 +2046,7 @@ static int __init arm_smmu_setup_irqs(struct arm=
_smmu_device *smmu)
> >               }
> >       }
> >
> > -     if (smmu->features & ARM_SMMU_FEAT_PRI)
> > -             irqen_flags |=3D IRQ_CTRL_PRIQ_IRQEN;
> > -
> > -     /* Enable interrupt generation on the SMMU */
> > -     ret =3D arm_smmu_write_reg_sync(smmu, irqen_flags,
> > -                                   ARM_SMMU_IRQ_CTRL, ARM_SMMU_IRQ_CTR=
LACK);
> > -     if (ret) {
> > -             dev_warn(smmu->dev, "failed to enable irqs\n");
> > -             goto err_free_irqs;
> > -     }
> > -
> >       return 0;
> > -
> > -err_free_irqs:
> > -     arm_smmu_free_irqs(smmu);
> > -     return ret;
> >   }
> >
> >   static int arm_smmu_device_disable(struct arm_smmu_device *smmu)
> > @@ -2057,7 +2060,7 @@ static int arm_smmu_device_disable(struct arm_smm=
u_device *smmu)
> >       return ret;
> >   }
> >
> > -static int __init arm_smmu_device_reset(struct arm_smmu_device *smmu)
> > +static int arm_smmu_device_reset(struct arm_smmu_device *smmu)
> >   {
> >       int ret;
> >       u32 reg, enables;
> > @@ -2163,17 +2166,9 @@ static int __init arm_smmu_device_reset(struct a=
rm_smmu_device *smmu)
> >               }
> >       }
> >
> > -     ret =3D arm_smmu_setup_irqs(smmu);
> > -     if (ret) {
> > -             dev_err(smmu->dev, "failed to setup irqs\n");
> > +     ret =3D arm_smmu_enable_irqs(smmu);
> > +     if ( ret )
> >               return ret;
> > -     }
> > -
> > -     /* Initialize tasklets for threaded IRQs*/
> > -     tasklet_init(&smmu->evtq_irq_tasklet, arm_smmu_evtq_tasklet, smmu=
);
> > -     tasklet_init(&smmu->priq_irq_tasklet, arm_smmu_priq_tasklet, smmu=
);
> > -     tasklet_init(&smmu->combined_irq_tasklet, arm_smmu_combined_irq_t=
asklet,
> > -                              smmu);
> >
> >       /* Enable the SMMU interface, or ensure bypass */
> >       if (disable_bypass) {
> > @@ -2181,20 +2176,16 @@ static int __init arm_smmu_device_reset(struct =
arm_smmu_device *smmu)
> >       } else {
> >               ret =3D arm_smmu_update_gbpa(smmu, 0, GBPA_ABORT);
> >               if (ret)
> > -                     goto err_free_irqs;
> > +                     return ret;
> >       }
> >       ret =3D arm_smmu_write_reg_sync(smmu, enables, ARM_SMMU_CR0,
> >                                     ARM_SMMU_CR0ACK);
> >       if (ret) {
> >               dev_err(smmu->dev, "failed to enable SMMU interface\n");
> > -             goto err_free_irqs;
> > +             return ret;
> >       }
> >
> >       return 0;
> > -
> > -err_free_irqs:
> > -     arm_smmu_free_irqs(smmu);
> > -     return ret;
> >   }
> >
> >   static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu)
> > @@ -2558,10 +2549,23 @@ static int __init arm_smmu_device_probe(struct =
platform_device *pdev)
> >       if (ret)
> >               goto out_free;
> >
> > +     ret =3D arm_smmu_setup_irqs(smmu);
> > +     if ( ret )
> > +     {
> > +             dev_err(smmu->dev, "failed to setup irqs\n");
> > +             goto out_free;
> > +     }
> > +
> > +     /* Initialize tasklets for threaded IRQs*/
> > +     tasklet_init(&smmu->evtq_irq_tasklet, arm_smmu_evtq_tasklet, smmu=
);
> > +     tasklet_init(&smmu->priq_irq_tasklet, arm_smmu_priq_tasklet, smmu=
);
> > +     tasklet_init(&smmu->combined_irq_tasklet, arm_smmu_combined_irq_t=
asklet,
> > +                             smmu);
> > +
> >       /* Reset the device */
> >       ret =3D arm_smmu_device_reset(smmu);
> >       if (ret)
> > -             goto out_free;
> > +             goto out_free_irqs;
> >
> >       /*
> >        * Keep a list of all probed devices. This will be used to query
> > @@ -2575,6 +2579,8 @@ static int __init arm_smmu_device_probe(struct pl=
atform_device *pdev)
> >
> >       return 0;
> >
> > +out_free_irqs:
> > +     arm_smmu_free_irqs(smmu);
> >
> >   out_free:
> >       arm_smmu_free_structures(smmu);
> > @@ -2855,6 +2861,94 @@ static void arm_smmu_iommu_xen_domain_teardown(s=
truct domain *d)
> >       xfree(xen_domain);
> >   }
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +
> > +static int arm_smmu_suspend(void)
> > +{
> > +     struct arm_smmu_device *smmu;
> > +     int ret =3D 0;
> > +
> > +     list_for_each_entry(smmu, &arm_smmu_devices, devices)
> > +     {
> > +             /* Abort all transactions before disable to avoid spuriou=
s bypass */
> > +             ret =3D arm_smmu_update_gbpa(smmu, GBPA_ABORT, 0);
> > +             if ( ret )
> > +                     goto fail;
> > +
> > +             /* Disable the SMMU via CR0.EN and all queues except CMDQ=
 */
> > +             ret =3D arm_smmu_write_reg_sync(smmu, CR0_CMDQEN, ARM_SMM=
U_CR0,
> > +                                     ARM_SMMU_CR0ACK);
> > +             if ( ret )
> > +             {
> > +                     dev_err(smmu->dev, "Timed-out while disabling smm=
u\n");
> > +                     goto fail;
> > +             }
> > +
> > +             /*
> > +              * At this point the SMMU is completely disabled and won'=
t access
> > +              * any translation/config structures, even speculative ac=
cesses
> > +              * aren't performed as per the IHI0070 spec (section 6.3.=
9.6).
> > +              */
> > +
> > +             /* Wait for the CMDQs to be drained to flush any pending =
commands */
> > +             ret =3D queue_poll_cons(&smmu->cmdq.q, true, 0);
>
> I wonder, why ignoring ARM_SMMU_FEAT_SEV in suspend? In the runtime
> function __arm_smmu_cmdq_issue_sync(), the driver checks if the SMMU
> supports ARM_SMMU_FEAT_SEV and passes this flag to queue_poll_cons().
> However, here, this check is missing, and the wfe argument is hardcoded
> to 0.

Good catch, that's an oversight on my side. The suspend path should indeed
use the same SEV/WFE handling as the runtime CMD_SYNC path instead of
hardcoding wfe =3D 0. I'll switch this to pass
!!(smmu->features & ARM_SMMU_FEAT_SEV) to queue_poll_cons().

>
>
> > +             if ( ret )
> > +             {
> > +                     dev_err(smmu->dev, "Draining queues timed-out\n")=
;
> > +                     goto fail;
> > +             }
> > +
> > +             /* Disable everything */
> > +             ret =3D arm_smmu_device_disable(smmu);
> > +             if ( ret )
> > +                     goto fail;
> > +
> > +             dev_dbg(smmu->dev, "Suspended smmu\n");
> > +     }
> > +
> > +     return 0;
> > +
> > + fail:
> > +     {
> > +             int rc;
> > +
> > +             /* Reset the device that failed as well as any already-su=
spended ones. */
> > +             rc =3D arm_smmu_device_reset(smmu);
> > +             if ( rc )
> > +                     dev_err(smmu->dev, "Failed to reset during resume=
 operation: %d\n", rc);
> > +
> > +             list_for_each_entry_continue_reverse(smmu, &arm_smmu_devi=
ces, devices)
> > +             {
> > +                     rc =3D arm_smmu_device_reset(smmu);
> > +                     if ( rc )
> > +                             dev_err(smmu->dev, "Failed to reset durin=
g resume operation: %d\n", rc);
> > +             }
>
> NIT: Could this duplicated reset call (and error message) be optimized
> somehow? Maybe, by using a do-while loop to manually walk back up the
> list from the current SMMU to the head, but not sure.

Yes, that can be cleaned up. The duplicated reset + error reporting is just
rollback boilerplate, so I'll fold it into a small helper and reuse it for
the failing SMMU and the reverse walk over the already-suspended ones.
That should also let me fix the misleading "during resume operation"
wording in this suspend rollback path.

>
>
> > +     }
> > +
> > +     return ret;
> > +}
> > +
> > +static void arm_smmu_resume(void)
> > +{
> > +     int ret;
> > +     struct arm_smmu_device *smmu;
> > +
> > +     list_for_each_entry(smmu, &arm_smmu_devices, devices)
> > +     {
> > +             dev_dbg(smmu->dev, "Resuming device\n");
> > +
> > +             /*
> > +             * The reset will re-initialize all the base addresses, qu=
eues,
> > +             * prod and cons maintained within struct arm_smmu_device =
as well as
> > +             * re-enable the interrupts.
> > +             */
> > +             ret =3D arm_smmu_device_reset(smmu);
> > +             if ( ret )
> > +                     dev_err(smmu->dev, "Failed to reset during resume=
 operation: %d\n", ret);
>
> In your GICv3 ITS patch, a failure during resume triggers a panic(), but
> here only an error message that might go unnoticed. May I please ask,
> why such diverging? The IOMMU is as critical as the Interrupt
> Controller. I see that you configure Abort state during suspend, so if I
> understand the things correctly - if the SMMU fails to reset (e.g.,
> remains in GBPA_ABORT), all DMA for for any passed-through devices
> behind it will be blocked after resuming.

Fair point. Logging only is too weak here. Unlike the suspend failure path,
resume has no recovery path, and iommu_ops.resume() currently cannot
propagate an error upwards. If arm_smmu_device_reset() fails, the SMMU may
remain unusable after resume (for example, with transactions still aborted
or translation disabled), which can silently break DMA for devices behind
it. I will therefore treat a resume reset failure as fatal rather than
just logging it.


Best regards,
Mykola

>
>
> > +     }
> > +}
> > +#endif
> > +
> >   static const struct iommu_ops arm_smmu_iommu_ops =3D {
> >       .page_sizes             =3D PAGE_SIZE_4K,
> >       .init                   =3D arm_smmu_iommu_xen_domain_init,
> > @@ -2867,6 +2961,10 @@ static const struct iommu_ops arm_smmu_iommu_ops=
 =3D {
> >       .unmap_page             =3D arm_iommu_unmap_page,
> >       .dt_xlate               =3D arm_smmu_dt_xlate,
> >       .add_device             =3D arm_smmu_add_device,
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +     .suspend                =3D arm_smmu_suspend,
> > +     .resume                 =3D arm_smmu_resume,
> > +#endif
> >   };
> >
> >   static __init int arm_smmu_dt_init(struct dt_device_node *dev,
>


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 09:35:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 09:35:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265264.1556267 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w63b9-00055Q-PK; Fri, 27 Mar 2026 09:35:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265264.1556267; Fri, 27 Mar 2026 09: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 1w63b9-00055J-Lh; Fri, 27 Mar 2026 09:35:23 +0000
Received: by outflank-mailman (input) for mailman id 1265264;
 Fri, 27 Mar 2026 09:35:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 1w63b8-00055D-Sv
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 09:35:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w63b8-00BtAg-5z
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 10:35:22 +0100
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 69c64f56-bab6-0a2a0a5309dd-0a2a4506db0e-32
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 10:35:21 +0100
Received: from [205.220.168.131] (helo=mx0a-0031df01.pphosted.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 69c64f57-3034-0a2a45060019-cddca883a0ba-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 10:35:21 +0100
Received: from pps.filterd (m0279863.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62R6w3QH1860253
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 09:35:19 GMT
Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com
 [209.85.214.197])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d5bxv2drx-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 09:35:19 +0000 (GMT)
Received: by mail-pl1-f197.google.com with SMTP id
 d9443c01a7336-2b064884a7cso63019405ad.3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 02:35:19 -0700 (PDT)
Received: from [10.219.57.109] ([202.46.23.19])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2b0bc7a7e3bsm72543195ad.27.2026.03.27.02.35.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 27 Mar 2026 02:35:17 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=qcppdkim1 header.d=qualcomm.com header.i="@qualcomm.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=google header.d=oss.qualcomm.com header.i="@oss.qualcomm.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	iimVuL7Si0EC2QW/qRbXnzLK0ktDtNjpoesWqPPB7kk=; b=dfqtedcKdd+VWg1M
	7rr8jESz/4pyob5K2fouLMEhfpda0yOt9fk6Il6m7RWjeliiACai4e+ZB2hlrx1I
	9MgYxRv0KQ/ku0BWB2gtqXXvKiBRNyf12jRfiUQuuolYntBskTlFgAufv+olHd4U
	9+pYzSrzGS/nBGGzKPqngAx3//YA4A3M7kaA4l965KaJ1iChtAww5Rf4BioiNEed
	zzoIYSIj9ktfWv7IMm3l/NGkcKvqOL4pYOu59I2WfsLqBIG6r82rTb5Ka8Nq3b8H
	ykkyk8hGHoSagfqLpuEBqOyCW+kifxN5Cw9NttYhmJ8EX02pYG8IZakCzrf4EwZ0
	7Q/RGw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1774604119; x=1775208919; 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=iimVuL7Si0EC2QW/qRbXnzLK0ktDtNjpoesWqPPB7kk=;
        b=JWxyX2YREtD3Bd756VAi6+tA2CzQ90gFE8GxHp56fvDNFeFfmQqLyP1WYjsD4U435A
         f6WDdgQbTG/vVwYZAUw9cNAys4CATFpCkvvHEz+sqQqILwXurouVcRSTT7eDXo3R/t7f
         jPgLsKKr9fk1BW6Bxw/UL5JtN4Hb5GM4Mt/tC/us2pF7zS/MODdcKSLnmT/zbK9kL4tW
         I4pydNeG5A5itUgeujy555WVbYWaEbjxyD6kdaf9XsVAykH89qtGuE8dYPP73Uh7YVqJ
         ebWPVkx9mK0+VfPfv/ur6WG38zGSkIKz4eFLSRNrCdQ26I2SgmuB74mF9frtSEx0F9mK
         MIyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774604119; x=1775208919;
        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=iimVuL7Si0EC2QW/qRbXnzLK0ktDtNjpoesWqPPB7kk=;
        b=AV60DXW4dzitufg/GvUZ0DROc5r2ZSYnNJ5mw5KXeDlWstx/VH+DprjsErqmCheD/X
         dk6f6e8h9eBPdCroG5xfdvXb8OQjo+EkfAQNLaCi4mRqs37NqVciLlALiYI1Wv5mo2JU
         hu4H0IEDeaP00y5Uw+uV3ZEKhnXriMcASYc3jCawEmvvkTWETVav+XoIbz4coPGxmwm2
         O4C4SYwJhsQLAvzzIS9oXC0h4eM0vvg9IyGkEQseKGQvQj9fKS8KI65AHneR3ZQ7HvDt
         S7Ir5/Q9OwyN3jAsj01mdbxZo0h+7RvtBHa9lJTdYLcNqoNlsA71yJxTE4O9tyFrLlkz
         vMBA==
X-Forwarded-Encrypted: i=1; AJvYcCUNHtJ/0n23F+4GPO1JS2t0HMaEtEKIAcMsc7WbbYj6djO85VFrSg+B4MhY+8CAIOQdWRsAeXvPfac=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwLc5KEI9NNqeT5rczLKL2BMkrEok/YMTnwCa0yLL660fp+Fa6U
	Lb6bDfnBEajtXrXPq6EzmN/FdKYgwpM7gLLicqynTuVu+nOEIcmUH1MAHPBKGqubRjJdoqS6E06
	a5zORMrcD6F1kcCTndh6uNXwlCx4MY0y9B2huublB3NVTI2u857zJurLePXbXAC/fOIx+qA==
X-Gm-Gg: ATEYQzzF3IwujmyunB5kqYfAnt4dceZ5WBXCecUpHey+aeVflGeLfEbgpxZcUfRcPbI
	j1XevXk3L53eQsSmjZd3lq9MuTXoRYfwXN1K2Zm3IrTaq7H+e6nZTt1l0mMiwK1Xsj/gu1kPPs+
	deeIz9GyLdzlVIx7VJuK/QOZ4ha6DqroWWAvdBmLg2tUNvUQJA+CdaeYH2ybtDSiLl/9Ob2hYCz
	a/P/21gkjVbCKjse6ChDADxgJl6DRZBSJ7Zf9P/5UsWFIYla5Y5UQiv8M4/S/EMDgAdryzc760H
	ovgBz+tjfQsIyOoYaQK22IL/T+aSevVceupW9MMYBnYbHEKw+uoxnwKb5fY5XbA3YX+J5dCmoiF
	02gFvF0f3fqAREVSnyrOmFfscEa1qlswwb/ynvxOwyuxpZMNkmoA+DLr8
X-Received: by 2002:a17:902:d502:b0:2b0:6d8b:6a07 with SMTP id d9443c01a7336-2b0cdcaa738mr20284085ad.25.1774604118577;
        Fri, 27 Mar 2026 02:35:18 -0700 (PDT)
X-Received: by 2002:a17:902:d502:b0:2b0:6d8b:6a07 with SMTP id d9443c01a7336-2b0cdcaa738mr20283585ad.25.1774604117910;
        Fri, 27 Mar 2026 02:35:17 -0700 (PDT)
Message-ID: <2c21c307-99bd-4051-8c09-06d370ad9b24@oss.qualcomm.com>
Date: Fri, 27 Mar 2026 15:05:02 +0530
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v11 2/3] of: Factor arguments passed to of_map_id() into a
 struct
To: Bjorn Helgaas <helgaas@kernel.org>, Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>
Cc: Nipun Gupta <nipun.gupta@amd.com>,
        Nikhil Agarwal
 <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        =?UTF-8?Q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas
 <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
        linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
References: <20260326161957.GA1324845@bhelgaas>
Content-Language: en-US
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
In-Reply-To: <20260326161957.GA1324845@bhelgaas>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Authority-Analysis: v=2.4 cv=A99h/qWG c=1 sm=1 tr=0 ts=69c64f57 cx=c_pps
 a=cmESyDAEBpBGqyK7t0alAg==:117 a=j4ogTh8yFefVWWEFDRgCtg==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22
 a=EUspDBNiAAAA:8 a=vU6kfqNVzfA0ps7fDeEA:9 a=QEXdDO2ut3YA:10
 a=1OuFwYUASf3TG4hYMiVC:22
X-Proofpoint-ORIG-GUID: 8OvA6rrdqbCzTFgL72ghcCOc2FXzA7dc
X-Proofpoint-GUID: 8OvA6rrdqbCzTFgL72ghcCOc2FXzA7dc
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI3MDA3MCBTYWx0ZWRfXyjXpxrCa3nsR
 N2et4W/SqXvJyEKdkmLpoWPPyoQFzmDvPv6++NIgrLMpR4aeYXXt1yVu8ONPvWeSWe7cbmGGN1s
 GZTE5RT+1fMdpfgikzLjD25zJQQFQpX1fnhDkGBk1KWJAYVsFn06ioDvtyOZhQzjZnWj20qXkde
 FD45dwZrxW0U4xQeZnZSY0Ufv7re1yxmh0/ZUtzdu5Nl8C7gb4rNNyxWQUa/wBZSfDuioXNFFdi
 uT4G/4h4RLi8dqubKB15zTZH63voG1gejRcIAxsaiajvJrVNu39VddsL5KIa+c/qxVCfVXUOjLX
 zUlIGc5z/dDVYMJW2MPnVyC85wkivmpgcaP6F7sKU1H4vQPcIuus7RCmIT2jPANAlXjiOC5g3jJ
 iG1i6oygG58tO7nQ7BgBemFXc7rSJySnL2GJUx7yX8IfKYfTr4eG9ktQyoyF1arYVaYsaeBp0Vd
 el8JPFaJTVnmPfZICvQ==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-26_04,2026-03-26_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 suspectscore=0 adultscore=0 malwarescore=0 spamscore=0 impostorscore=0
 phishscore=0 bulkscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603270070
X-purgate-ID: tlsNG-16d1c6/1774604121-7BA981C2-75A3C9E2/0/0
X-purgate-type: clean
X-purgate-size: 4901



On 3/26/2026 9:49 PM, Bjorn Helgaas wrote:
> [cc->to: Richard, Lucas for pci-imx6.c question]
> 
> On Wed, Mar 25, 2026 at 04:38:23PM +0530, Vijayanand Jitta wrote:
>> From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
>>
>> Change of_map_id() to take a pointer to struct of_phandle_args
>> instead of passing target device node and translated IDs separately.
>> Update all callers accordingly.
>>
>> Add an explicit filter_np parameter to of_map_id() and of_map_msi_id()
>> to separate the filter input from the output. Previously, the target
>> parameter served dual purpose: as an input filter (if non-NULL, only
>> match entries targeting that node) and as an output (receiving the
>> matched node with a reference held). Now filter_np is the explicit
>> input filter and arg->np is the pure output.
>>
>> Previously, of_map_id() would call of_node_put() on the matched node
>> when a filter was provided, making reference ownership inconsistent.
>> Remove this internal of_node_put() call so that of_map_id() now always
>> transfers ownership of the matched node reference to the caller via
>> arg->np. Callers are now consistently responsible for releasing this
>> reference with of_node_put(arg->np) when done.
>> ...
> 
> Not actually part of *this* patch, and AFAICS this patch is correct
> as-is, but is it necessary to have different logic around
> of_node_put() for imx_pcie_add_lut_by_rid() and
> apple_pcie_enable_device()?
> 

Thanks for the review comments. Right, there is no need to have different
logic, I will update imx_pcie_add_lut_by_rid() in v12 so that of_node_put()
would be called unconditionally.

>> +++ b/drivers/pci/controller/dwc/pci-imx6.c
>> @@ -1137,6 +1137,8 @@ static void imx_pcie_remove_lut(struct imx_pcie *imx_pcie, u16 rid)
>>  
>>  static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
>>  {
>> +	struct of_phandle_args iommu_spec = {};
>> +	struct of_phandle_args msi_spec = {};
>>  	struct device *dev = imx_pcie->pci->dev;
>>  	struct device_node *target;
>>  	u32 sid_i, sid_m;
>> @@ -1144,7 +1146,12 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
>>  	u32 sid = 0;
>>  
>>  	target = NULL;
>> -	err_i = of_map_iommu_id(dev->of_node, rid, &target, &sid_i);
>> +	err_i = of_map_iommu_id(dev->of_node, rid, &iommu_spec);
>> +	if (!err_i) {
>> +		target = iommu_spec.np;
>> +		sid_i = iommu_spec.args[0];
>> +	}
>> +
>>  	if (target) {
>>  		of_node_put(target);
> 
> Here it's conditional on "target" even though of_node_put() checks
> internally for non-NULL, so it would be safe without the conditional
> here.
> 

Agreed, here of_node_put can be called unconditionally , will fix it in v12. 

>>  	} else {
>> @@ -1156,8 +1163,11 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
>>  		err_i = -EINVAL;
>>  	}
>>  
>> -	target = NULL;
>> -	err_m = of_map_msi_id(dev->of_node, rid, &target, &sid_m);
>> +	err_m = of_map_msi_id(dev->of_node, rid, NULL, &msi_spec);
>> +	if (!err_m) {
>> +		target = msi_spec.np;
>> +		sid_m = msi_spec.args[0];
>> +	}
>>  
>>  	/*
>>  	 *   err_m      target
> 
> And here (outside the diff context) we also call of_node_put()
> conditionally:
> 
>   ...
>   else if (target)
>     of_node_put(target);
> 

Agreed, same as above.

>> diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
>> index a0937b7b3c4d..c2cffc0659f4 100644
>> --- a/drivers/pci/controller/pcie-apple.c
>> +++ b/drivers/pci/controller/pcie-apple.c
>> @@ -755,6 +755,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
>>  {
>>  	u32 sid, rid = pci_dev_id(pdev);
>>  	struct apple_pcie_port *port;
>> +	struct of_phandle_args iommu_spec = {};
>>  	int idx, err;
>>  
>>  	port = apple_pcie_get_port(pdev);
>> @@ -764,10 +765,12 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
>>  	dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
>>  		pci_name(pdev->bus->self), port->idx);
>>  
>> -	err = of_map_iommu_id(port->pcie->dev->of_node, rid, NULL, &sid);
>> +	err = of_map_iommu_id(port->pcie->dev->of_node, rid, &iommu_spec);
>>  	if (err)
>>  		return err;
>>  
>> +	of_node_put(iommu_spec.np);
> 
> Here we call of_node_put() unconditionally.
> 
> I think it would be much nicer if imx_pcie_add_lut_by_rid() used the
> same style as apple_pcie_enable_device() and did the of_node_put()
> unconditionally.  That would untangle the function a bit and make it
> easier to analyze.
> 

Sure, as mentioned above will align imx_pcie_add_lut_by_rid() and
apple_pcie_enable_device().

Thanks,
Vijay
>> +	sid = iommu_spec.args[0];
>>  	mutex_lock(&port->pcie->lock);
>>  
>>  	idx = bitmap_find_free_region(port->sid_map, port->sid_map_sz, 0);



From xen-devel-bounces@lists.xenproject.org Fri Mar 27 10:05:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 10:05:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265289.1556285 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6447-0001sD-2O; Fri, 27 Mar 2026 10:05:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265289.1556285; Fri, 27 Mar 2026 10:05:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6446-0001s6-Uh; Fri, 27 Mar 2026 10:05:18 +0000
Received: by outflank-mailman (input) for mailman id 1265289;
 Fri, 27 Mar 2026 10:05:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ross.lagerwall@citrix.com>) id 1w6445-0001s0-OF
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 10:05:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w6444-00Bzrb-Qu
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 11:05:16 +0100
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c65653-2eae-0a2a0a5409dd-0a2a4506e884-40
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 11:05:16 +0100
Received: from [52.101.61.16]
 (helo=DM1PR04CU001.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <ross.lagerwall@citrix.com>)
 id 69c6565b-3034-0a2a45060019-34653d10e07b-4
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 11:05:16 +0100
Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5)
 by PH7PR03MB7485.namprd03.prod.outlook.com (2603:10b6:510:2f1::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.22; Fri, 27 Mar
 2026 10:05:12 +0000
Received: from CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com
 ([fe80::ebe2:32c1:d2be:a096%7]) with mapi id 15.20.9745.023; Fri, 27 Mar 2026
 10:05:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eYJvi0WdWgrIXkje5b8+OZC+4XAYx6lB30dueH3AclAUnhgItTwUi1tyR3wOtc2lG703D/VGjegUrvg3jbJSwD782P7/DMFBEv2qulQvCWOoxGm6hQwFnxHsTRflFjkECivAocQGGCu+7iemXtZ5jdZW0blYjZG1qaOXUp0ZL0LQZW7W6lnW2IQ+t1NeqEAm7XMyG+oBECAXZkdExrodRpa81aU7KGRtxN4EQ+a4cvVWj29pAmwxzpPqMN838CkqR+Hz94tpCzbQIubbGFO6NYs045K42wqpw5wczy7H2aD0eOtggAfYujU7ikAv41Sx3tw648ibeD7Ug7SG15HPkA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lATMMXG+NWg2y3eQXyaSPwpqqFTx9NEydPGz3X1MHwM=;
 b=jveL7FQCCfNw9NXVUC6D2VfGLgEw4wr4Gh9mGuN6GypUz5sP7REXnQYwWjZtmW8kPglcpKELEKWHIlNp7gB1JI0WNjEffgov4HiMTscQ4dHbIsMw373Mdqo7VjFv0nbjqdT+k0pKGewJEiW4FdY2fgPyBr3Zl23ThfahF1h7befvwbJSzOjcxoo/qDFdWk6IiVu5AL7mZI463hYeOgdgWLpNEw0Ic37KnHX8rV3x5YWddFr5VCKu1qi9vKG2W7qnPI20GFdUs5yZr56peFGj0wjS5418ykGUS7dogWZNKCizQP7/EawNSLNtnfdkvQ5BcZHmo4lcfVJVkXGtiSXQnQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lATMMXG+NWg2y3eQXyaSPwpqqFTx9NEydPGz3X1MHwM=;
 b=ySSToK3I95DmnCk8R/1mUqX5lEq0eblaQp5Bm+72BCE+a77j68u3ws+0W5lMkDInGYMA7rTd8Usyncv536pyW8YU4IWiiGZiDH5Hdis/5Akav3uQhp1LN+QstDvBU08fnD0y0TyAsXkyE3jqgr+ehIUNc/2KLbG+dItrCqEg0NY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <a0cf5128-9387-4796-8440-7e33b6dd8337@citrix.com>
Date: Fri, 27 Mar 2026 10:04:19 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/fpu: Initialise FTW as well as FCW in
 xstate_alloc_save_area()
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: <20260326190429.1156367-1-andrew.cooper3@citrix.com>
 <20260326190429.1156367-3-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Ross Lagerwall <ross.lagerwall@citrix.com>
In-Reply-To: <20260326190429.1156367-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO3P123CA0025.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:388::14) To CH8PR03MB8274.namprd03.prod.outlook.com
 (2603:10b6:610:2ba::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|PH7PR03MB7485:EE_
X-MS-Office365-Filtering-Correlation-Id: c46e665a-5fc0-4eba-f56a-08de8be85597
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	Mm+Vcx4sZQzqWOjj7zitUJWsuaIhevGN82zZim33iH0SoPm4t2tWEJIAqnzRtfbNQT3EGeeiphFGgV6r/5ZYOV8gl3uHrQrZJBEx9YSaP2pBEdoi8EL8nlYbKb0uP1P3U+joFZjxjZFvWNQ3c4VNt4YzIfZHve5wCCjn+yOkZafH92Ces/kVhaIL489eZgOcrRHJIC57BhxDU0F2+HnOHxL9r5SGS2lTmSpaDZDI53SEbTMhEvyx23EfFm3nybldFoFRLwqzuK2e8p3kv2fzwpDTbZtRFDhN0/FNOvS1bVXy4To3hFDyEs/1HuheRVr4M9znoAfXrJOubL4+Upe1inIE403KbsF5xtma3BrNUPXOhjnIMhFnQ7ZUJfqU9gpdx7adqzUOjfGxyLJIWL++wgaNmwY1Ej63b/69VhF7j/bsuv0JUZcMEi2/BmUIx2CFrQ+ksbLzk1PyKYstkB6QICphyNwbzDqUBCUfl1CNVAUNvh/kSnX1TNLDha2YrwxkET5EBDacQUUTbb82/8FciX5QLSaJVhCPJZMwIA0rIc+jwbjoNQFmc6i0jnVD+LgWgx5yRTcIsTV/zZXTcWxrKwCJ5QJ2hKAcWUvIUujvGB4Wf5kG02Urdk6qMenWVNTBf14DR92trgomkmE1x7FN4cWhv0AObsBzOrR7nr28vMD+RicoUsG4jYIYVXY7VWtpxKWxiA4soIo0newMSp0Y11ZmblmMkJ1v2jBFSl15v3c=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Y0h5VHBlQVNTZGlHUnJBOTNaVm1oLzk0ejEwN243N0pjS2IyanRXc3pYNERs?=
 =?utf-8?B?N3JsNVV0c2RSYmw4bENOTVEyUENzWTR1OUR2M0hYL05vbko2bEoyYVhwMVEr?=
 =?utf-8?B?VHNlZWVmRHV4MkRHMm5SakVFRGFJWDFLeGNnenRBU2JpVjM4aWFPTjY5UGR0?=
 =?utf-8?B?bmZqUWlVeXVBRUdqcis2blVOb0dCZ1VTeEV5eEF1bEE1L0x4VERjejg1amJ6?=
 =?utf-8?B?eldnSzZURmFNZWJiYVRRNzJCdUFUNmJJVXFvdlQyR2Z6WDc3NXU3ZHFXUUds?=
 =?utf-8?B?RmJVL3hDempCMnRBQUhENnFncncyZXZxT2tBR3kvV3V1eUlWclFWT1gzbEFY?=
 =?utf-8?B?Vk83a0lhenVDUVR6TG1ybjRkR1UrR1Vrems2YklvWGh5ejdyODhHNEgyZGxt?=
 =?utf-8?B?bUM3T3B3a2czcXpTYVVIWkRpNGRvRjZjNlF4U3RCSk9BQlFnM2pLN1lHN0tz?=
 =?utf-8?B?NHduK2JIL0pna1VkdVhvdjRiTWlCcjFqdjJYdFBlbVF1QmN2Vk5JbUZEbzJG?=
 =?utf-8?B?enc0L01pVGxRVzBhWEw1OER0RllNc1hVR1NqSHlwUlZITllIdUpSOXk2UW5W?=
 =?utf-8?B?SkowZ1ZsY3hmOUdYQUFacUVPaFhWQk9YZjJQZXBVSXFjamVmU3UzOVhlbXpH?=
 =?utf-8?B?SVhmOUpldUdTcnNRTXZSam8raXpuYkNndG52Vld4WkpUNkxKKy9kR3QxenJQ?=
 =?utf-8?B?SEFIM0MzZjl1d1BwMVVSR1lyV0pGS3R0Yzh2cUI4MGpFU0JyY2R3elpUNTNB?=
 =?utf-8?B?NHM2RW9kelJGZjY2N0tDYmxPNWlZelRqeFpLQlF4R21oc3d0RUdDbUdncmdu?=
 =?utf-8?B?akM5NDhqY0VtNnNQb0l2cTNIQXdTTW5FbC9sRXcrY28yUm1RVHB4M1N2UmxP?=
 =?utf-8?B?dVpTTHI0K1hTUHR3VHRON21mVnFUeEFmVHRzSGI3MVByU1gzNDlMUlFldzd6?=
 =?utf-8?B?NWdMSCs0TmdVNklUMGtLdjdrVEhzbnA1R3RyNy85SzNBaGFwdXNkclJNeU5W?=
 =?utf-8?B?b2YzczNXUVJkUWJHaDdYSDY1VW95WktzQzg2bGFoeS9TZTY3UWNORW80TDFi?=
 =?utf-8?B?WnZqWDRvMklHRnhkYzdTcTZhWGpEeFd3Vy9ycTh5bGJRNXBlLzE5T2pkd2pW?=
 =?utf-8?B?cEJYcjVScDZzdGFPTFJYWGpxMVJidnZoM21lRFhia2VoOGlBRktXa09zbC94?=
 =?utf-8?B?NkpPTHZtOWU1dUZGbUxGRFZYbXBaQmJXVGx1NlA0ZS9rYmlabHgrZ21MQnh2?=
 =?utf-8?B?SUx1UTFMVG5UemhSeTFpdFNkNnl6WmRRN3RaMVlkYktmcEpoVTRMUkRDYnpJ?=
 =?utf-8?B?TkdDbEQxT1RxVjZ1UzcyMUdka2NXTTdwOTlCZW5QT0ZaV0h0VUx0QlE1cUVE?=
 =?utf-8?B?ZkR2cWFuM24xaDJ0bHVrckVhMWpoTWtFN05NL0xPL2lBUUZaaWpnektMQUFZ?=
 =?utf-8?B?ajRYcTFWc0hhNWlKbXdnaGtVYi9oYWFEWHQ0bVlKRkkrWFFwdVNxalhBRHRo?=
 =?utf-8?B?a3FPMktGbDA3dWYvUnpEdTdSL09OMllvWXArMUJzM05oY3JFdGZjYUUwc3pQ?=
 =?utf-8?B?VWNxY0k0Tmd0clk2dW5jOTVQRlpxTWhwRkcvSjdSb3lHWnY5aWJPdjdXK3RW?=
 =?utf-8?B?Q0VpUUFyNlF6WC90TmRFdTZHM2JKTHgxbGRmRmYzZ0ZkRVJ3dWJUYWRoa1E3?=
 =?utf-8?B?bHR5dkFoQVJhNkUwKzM2LzVtNmwycmxOcFRhcCt4YTdJTmNnTjZETnYyQWhU?=
 =?utf-8?B?ajRQV1cwdmpyRld4S0E3MHFYOGZrQjNJYWNLOVQyakhzTmxtL1VBWW4ydzNH?=
 =?utf-8?B?VWFTaUZMbHMwRkNGelVxZVpHVUJyMjAyTjBWOVA3QTVHZnBRUjV1RUZmNFdn?=
 =?utf-8?B?RS9VZGJKcHVJaElkRWNVcjVjcE9aKzJMam0xbFczRXhzTDNSWEd6QVFtMXVK?=
 =?utf-8?B?a3ZBdFg3ZmhqakdkRUx5cjlySW13OEkrY0FvOVFvaG1OTVVsdlJEazloZnox?=
 =?utf-8?B?US84Tk9KQTI2S1dDa3FGNm5jTTUrckFpQmVFRFMzbmp1dzI1ZTBtdHdmN1Fo?=
 =?utf-8?B?QXQzQUJ2a29aSWdVT1RGK0p1TlJ4OVlBWEZxWWY2Q1VHTEwxWCtnVjVnZkZV?=
 =?utf-8?B?bCtYRUJURDlLWlJvSnVlQ25hY254SFkrMGViMTFXMGNaMVpKQ3VYNkRZVU9P?=
 =?utf-8?B?VmoyQkpoMDhNRTZWb1NROW1Obm40OHJOUUtwOG5Ucm5YOVE3OEZuV1UzdGZX?=
 =?utf-8?B?ZXBXbnpja0Z2MkNVRThJTzQ0MjltTjlEMnNNckJiL0JZRjNLWWpIVWFJTVQv?=
 =?utf-8?B?RWRLMC9NNTc2RWNZemRZbVNEeGVBZCtXZ1JvUlBEMlM4RE9iUTNtdXFUQ3dS?=
 =?utf-8?Q?IW4cNUsy094Wr8Hw=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c46e665a-5fc0-4eba-f56a-08de8be85597
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 10:05:11.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: 5ktSkBydARV6Aiego5n/HC4/H26FdyBFYDdZt3V9o23FO9sruRbAit3auJ3gVz7EgqJEAXWjG69tUiwI0CccRk1fvScSvID9fsDsfcEERkI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR03MB7485
X-purgate-ID: tlsNG-16d1c6/1774605916-823921C2-4211A6B7/0/0
X-purgate-type: clean
X-purgate-size: 1743

On 3/26/26 7:04 PM, Andrew Cooper wrote:
> xstate_alloc_save_area() configures FCW and MXCSR to #RESET values but misses
> FTW.  Fixing this means that the backing memory always has an architecturally
> correct value.
> 
> Adjust the comment to state that it's the #RESET values which we care about.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Ross Lagerwall <ross.lagerwall@citrix.com>
> 
> I don't understand what the rest of the comment is trying to say, so have left
> it alone.  There's still a lot of cleanup to be done to merge i387 and xstate.
> ---
>   xen/arch/x86/xstate.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
> index e990abc9d18c..747df0b2e9a9 100644
> --- a/xen/arch/x86/xstate.c
> +++ b/xen/arch/x86/xstate.c
> @@ -550,11 +550,12 @@ int xstate_alloc_save_area(struct vcpu *v)
>           return -ENOMEM;
>   
>       /*
> -     * Set the memory image to default values, but don't force the context
> +     * Set the memory image to #RESET values, but don't force the context
>        * to be loaded from memory (i.e. keep save_area->xsave_hdr.xstate_bv
>        * clear).
>        */
>       save_area->fpu_sse.fcw = FCW_DEFAULT;
> +    save_area->fpu_sse.ftw = FXSAVE_FTW_RESET;
>       save_area->fpu_sse.mxcsr = MXCSR_DEFAULT;
>   
>       v->arch.xsave_area = save_area;

Is this comment correct given that it is initializing FCW to FCW_DEFAULT
which is different from FCW_RESET?

As they seem to be mostly doing the same thing, could we call
vcpu_reset_fpu() here instead?

Ross


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 10:07:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 10:07:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265300.1556293 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w645s-0002OW-Cp; Fri, 27 Mar 2026 10:07:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265300.1556293; Fri, 27 Mar 2026 10:07: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 1w645s-0002OO-8D; Fri, 27 Mar 2026 10:07:08 +0000
Received: by outflank-mailman (input) for mailman id 1265300;
 Fri, 27 Mar 2026 10:07:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w645r-0002OH-3g
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 10:07:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w645q-003oWk-Fu
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 11:07:06 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c656c2-5cb7-0a2a0a5109dd-0a2a4505addc-36
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 11:07:06 +0100
Received: from [209.85.221.44] (helo=mail-wr1-f44.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c656ca-5aeb-0a2a45050019-d155dd2cbc8d-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 11:07:06 +0100
Received: by mail-wr1-f44.google.com with SMTP id
 ffacd0b85a97d-439d8df7620so1351134f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 03:07:06 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b919e708asm12623004f8f.36.2026.03.27.03.07.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 27 Mar 2026 03:07:05 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774606026; x=1775210826; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nI6PQH0I1xNlel60JvN/8kkpWj4Kr3ZernyupuEs5gE=;
        b=Ak2bicar0tv0psYhIDKgn6WSpdVRv8oU9XIbpV/CzGVn/3ikPUglgiWmjtdR0Oh3No
         MAsyq75AZ+53Bjbn0hGTKaM05vNmKQcElQlr12iwdEmxpdwUMX9CafysgNMH65frn/4Q
         lnsuYWtAqOwUtc3MJT/NiouzaXnwRDUL+KdOVnjhiHJtPhv+0L8pcIZLcoU9SlqImE/5
         T/5MQJCootldE30FDAOUMBMx6ecyBY4WWtTfXtFEu2zILJ6/El1lVyNMVQ6DhXqt8bij
         qAva+7AF610MM7h0VTTqPdTpGCn21OwO86RcvbLz1MFil+8a5VRt9IEH4wFLcMezRM17
         bM0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774606026; x=1775210826;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nI6PQH0I1xNlel60JvN/8kkpWj4Kr3ZernyupuEs5gE=;
        b=Us1KfmkrWpnB+6BjGOGV9PQ0keGmDZ73jdpantBeR1M8eZTpQwLQ9W06+rU6bxpGW0
         9LRu3lYd5TzHPEIJJsBopc6bTO2xOoVbBwjLlpU2HqfYC3i8XUOJMSbYcYxnn1rtZEpa
         0+TeMsMhZPZfBqXslIum/81YF8fIBUwoRcIGIG4SOxRwWBqfcZU8k8xyElW9eeVknTSy
         eZ5mnMVAY+ab2tkGeAQXc42PDsWWAO1apG5E1pELZrCgjKVKcso9cRqBRNjKhvJq/Deb
         aam0EgZ4F6rBSts9AVvXw6v8SDXgIeChXwek9BhGxBJ2P01vdu6EAMBjSBUHCGJ7Jxa5
         4Tiw==
X-Forwarded-Encrypted: i=1; AJvYcCWjVlnSOg5cC0ZK5nXZyYg+mVpcvtG/XCw0DyQ0VHwY3VwD2SPn2FGRHHIRKBzrOREJfNdYa/T3oXg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxInXvxaNxPn0mDR1/S3k53V+MMrA9zv3LWnYUhtPPeqt+Vg1gk
	XrFxtbFtbo2VyODuuC73/JgYVx7lCW9g22HJgx+pFH0TSu5bzQY9uqRVRc78ujCBdA==
X-Gm-Gg: ATEYQzxwsqIoiKjeLZTMhWMEZ3WX4H9sUCTAWoREeWlUG3uvfa41oPB9fU5H9Ycrqr+
	L7OOGmoZ5VvmZ/toiGR4gR/4msXZPo3gwWKTsa8312nK17cNaQ/Uhrf01m4QofqbmunkNRLT7Jk
	xmfemhulXHifiF7kmTaKLqiGinywhh3kGsAXhzhB68HEokq02hUFzUnNs2qvQbwCH4D9CeUAeCC
	gfynY3qJe1cejm948ye/OsE+rzu7f2vOsdgiEcPR1F3eY53xhBPWCmI/kFDCmr07YC2ClP2Xflc
	MfqTJDv+XwbrVMLolkmQp+wQv/PVsOm2osfsjjCPwptSklyK5SyX6lE2wj4xjNBcl9hTAD1yZxn
	FXuEGX2YkqKp83tRNSZ2hQAYhQjf3b6ehcJS95JsXWh51QceQmcv5arrnh7ARs0SHaoGOV6EkS6
	duNbVdYgWl+0qgOKUsx/9PPjXFxmbp1LO/y+Wm0bzFAtDzGB+mibEZK7do7HkfW5xQCTbKMTj2I
	oX0q6runf7WEkI=
X-Received: by 2002:a05:6000:2406:b0:439:c550:d920 with SMTP id ffacd0b85a97d-43b9ea77410mr2889184f8f.47.1774606025683;
        Fri, 27 Mar 2026 03:07:05 -0700 (PDT)
Message-ID: <0c4143b1-730e-4078-b2a4-e180d0437450@suse.com>
Date: Fri, 27 Mar 2026 11:07:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/fpu: Initialise FTW as well as FCW in
 xstate_alloc_save_area()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260326190429.1156367-1-andrew.cooper3@citrix.com>
 <20260326190429.1156367-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: <20260326190429.1156367-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1774606026-9F68D488-016246B2/0/0
X-purgate-type: clean
X-purgate-size: 952

On 26.03.2026 20:04, Andrew Cooper wrote:
> xstate_alloc_save_area() configures FCW and MXCSR to #RESET values but misses
> FTW.  Fixing this means that the backing memory always has an architecturally
> correct value.
> 
> Adjust the comment to state that it's the #RESET values which we care about.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

The title using "as well as" reads to me as if both are being fixed, when
really you bring FTW in line with FCW. Preferably with this adjusted to be
unambiguous:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

> I don't understand what the rest of the comment is trying to say, so have left
> it alone.  There's still a lot of cleanup to be done to merge i387 and xstate.

I think it tries to say that the values put in memory aren't actually going
to be used by a subsequent XRSTOR, by it putting the respective registers
into init-state without reading memory.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 10:17:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 10:17:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265322.1556303 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w64G0-0004o9-C8; Fri, 27 Mar 2026 10:17:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265322.1556303; Fri, 27 Mar 2026 10: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 1w64G0-0004o2-8E; Fri, 27 Mar 2026 10:17:36 +0000
Received: by outflank-mailman (input) for mailman id 1265322;
 Fri, 27 Mar 2026 10:17:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w64Fy-0004j8-OT
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 10:17:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w64Fy-005Tsv-4S
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 11:17:34 +0100
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c65937-2eae-0a2a0a5409dd-0a2a4508cbe6-46
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 11:17:33 +0100
Received: from [209.85.221.52] (helo=mail-wr1-f52.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c6593d-1950-0a2a45080019-d155dd34a5a0-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 11:17:33 +0100
Received: by mail-wr1-f52.google.com with SMTP id
 ffacd0b85a97d-439b6d9c981so1225006f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 03:17:33 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43b919e722dsm12824398f8f.35.2026.03.27.03.17.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 27 Mar 2026 03:17:32 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774606653; x=1775211453; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+B6wstCydzAEGTgL1iPeEd+t1hg3s3EyAxpurnUpQA0=;
        b=eZDAmGKgkJucgBSTjI+A1pM1HuE+TEZq2qiVCGAHKEGZNthyTgbfRBX+ffoosCELPb
         CQfdOR9chLBHaCd5SNfpRL2SFoSpT955uglCIlxexSbYhw3Pl5GiSMSGXR1FTI/luFQu
         TmMv8be0TBW4cKtRJOnXwlVgRsjCmWW2HR3toznCOOZlK6gzMDa+NhhIVsQcsq1eE+Tr
         7gLFsOx1joZYHfdabHiRifWJqRKVx2NkAmTGPdsQ27jslJiWN+6sOojr91TjlamhxDDj
         yqezmbNqT+Cy0lnPKiZJp6QtDDlcSancnzkN/7KWrcYoZbffJ7EXJ+Uz3djIi8rBvnk6
         RiHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774606653; x=1775211453;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+B6wstCydzAEGTgL1iPeEd+t1hg3s3EyAxpurnUpQA0=;
        b=l9fe4+ZR2QXGZdabUMAC4/KkTlD5qkTkcINUhSdZ+GrvveBkM6yOkgvtA3T5NtC7jB
         42w37Sz7MiVE+pdMLPmjxtn6DsTdB3tw+SxFVdtBcueSZf0JEK/WMYBlE1sqM9T8ljr1
         hXJYsYWuXF+RY1JzD/nNG0fSK0Aq3zrVh3B36uqNDhlLEY+npqF2DXZcrF51oMsqpXdm
         20+IUBfTRrTzVq2CgNSY6uUV2AsdPDeb7T+mGu1fNRULjzhxlUWEQftFPmvRE+sZ0Tj4
         iKI2UFIprYdys76Vo8NNetTIW7OGY8ho6rmY4XxbczvqFqHD0z4fSiXfHZSCbjuT3UPl
         XsKw==
X-Forwarded-Encrypted: i=1; AJvYcCXRJiYv/ivZZnHr3I4OG3ZqqcmJXezkctpYkeZCnH7207XH/YZ9ekYWZ9noCuxxxUzfuxRIvewoUh8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyLRssQDfGWz/gpdcInwU2CY9evK9xsDNWy+n3cwW9i8Y+9+xzI
	yv+J002PbLd1Iza10ch/6I3WBN1WQ/2FAibeHvuKHUWmX2dDWa7AcGyV3Nj7ufZhVg==
X-Gm-Gg: ATEYQzyOJOoXWrJ4zp59M6WSHI5p9o1LIBNtQlBHkU0lwewrgMbjsrk1I0aMSYR4f82
	q+VnSSuPyCNzilMTWF6cfXxRMSPVopC2Gl8sBDGGWt/J/ar2RBNfs3P6zn736FA4eGc69tRdMro
	V8pCxOVI6M6CaOx8H/fY5D+K2c60VYfuRibkb5hn5TsXQv/CGDzuxFNTd89q4nKOt36e63mF0P4
	/AV+wOsrogzHnVt60ycor+kYrJmMCsKSnrD1iweAC0ZQjCKAgiOW6/wC14IMdlv25mVXa/BZg5b
	S4CW7YDR6PwT/oRldgCutBiHkuSKRqs7z4Pn/0J7Z3bjfrcXXLMr+iZhCVGu7lejNQt8ry/kz7I
	VUPNoinLp9g55paoGnNNdVt16rDnleXr+PrNu/v0RvhGPuQiddxl8FPdYC0S2sp5VviFsMmYcjJ
	3c9xNbxIl/ssQlD9+VMi2Amk2HGNr5sOzPrnSZ6DnxiSl7mOSKEk/vDRVa14fmAmOiqSqtFCDcc
	NV5VvOOL3any/c=
X-Received: by 2002:a05:6000:400b:b0:43b:94bf:63ff with SMTP id ffacd0b85a97d-43b9eb27f76mr2929039f8f.21.1774606653095;
        Fri, 27 Mar 2026 03:17:33 -0700 (PDT)
Message-ID: <e6a36adb-20fc-41ce-9db7-7c7bc4ba9fd5@suse.com>
Date: Fri, 27 Mar 2026 11:17:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/fpu: Initialise FTW as well as FCW in
 xstate_alloc_save_area()
To: Ross Lagerwall <ross.lagerwall@citrix.com>,
 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: <20260326190429.1156367-1-andrew.cooper3@citrix.com>
 <20260326190429.1156367-3-andrew.cooper3@citrix.com>
 <a0cf5128-9387-4796-8440-7e33b6dd8337@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <a0cf5128-9387-4796-8440-7e33b6dd8337@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1774606653-E9086726-450BE835/0/0
X-purgate-type: clean
X-purgate-size: 1933

On 27.03.2026 11:04, Ross Lagerwall wrote:
> On 3/26/26 7:04 PM, Andrew Cooper wrote:
>> xstate_alloc_save_area() configures FCW and MXCSR to #RESET values but misses
>> FTW.  Fixing this means that the backing memory always has an architecturally
>> correct value.
>>
>> Adjust the comment to state that it's the #RESET values which we care about.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>> CC: Ross Lagerwall <ross.lagerwall@citrix.com>
>>
>> I don't understand what the rest of the comment is trying to say, so have left
>> it alone.  There's still a lot of cleanup to be done to merge i387 and xstate.
>> ---
>>   xen/arch/x86/xstate.c | 3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
>> index e990abc9d18c..747df0b2e9a9 100644
>> --- a/xen/arch/x86/xstate.c
>> +++ b/xen/arch/x86/xstate.c
>> @@ -550,11 +550,12 @@ int xstate_alloc_save_area(struct vcpu *v)
>>           return -ENOMEM;
>>   
>>       /*
>> -     * Set the memory image to default values, but don't force the context
>> +     * Set the memory image to #RESET values, but don't force the context
>>        * to be loaded from memory (i.e. keep save_area->xsave_hdr.xstate_bv
>>        * clear).
>>        */
>>       save_area->fpu_sse.fcw = FCW_DEFAULT;
>> +    save_area->fpu_sse.ftw = FXSAVE_FTW_RESET;
>>       save_area->fpu_sse.mxcsr = MXCSR_DEFAULT;
>>   
>>       v->arch.xsave_area = save_area;
> 
> Is this comment correct given that it is initializing FCW to FCW_DEFAULT
> which is different from FCW_RESET?

Is the goal here to represent XSAVE init-state in memory, or do we truly mean
#RESET state (in which case FCW_RESET would need using, and in which case
leaving xstate_bv bit 0 clear would be wrong).

Jan


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 10:19:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 10:19:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265330.1556311 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w64HX-0005Kv-LJ; Fri, 27 Mar 2026 10:19:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265330.1556311; Fri, 27 Mar 2026 10: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 1w64HX-0005Ko-I5; Fri, 27 Mar 2026 10:19:11 +0000
Received: by outflank-mailman (input) for mailman id 1265330;
 Fri, 27 Mar 2026 10:19:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w64HV-0005Ke-Ov
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 10:19:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w64HU-006BHL-Q1
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 11:19:09 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c65996-2eae-0a2a0a5409dd-0a2a4504b988-26
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 11:19:08 +0100
Received: from [202.12.124.147] (helo=fout-b4-smtp.messagingengine.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c6599b-c823-0a2a45040019-ca0c7c93a529-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 11:19:08 +0100
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfout.stl.internal (Postfix) with ESMTP id 968781D00071;
 Fri, 27 Mar 2026 06:19:06 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Fri, 27 Mar 2026 06:19:06 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 27 Mar 2026 06:19:05 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Type:Date:From:Message-ID:MIME-Version:Subject:To"; dkim=pass header.s=fm1 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Type:Date:Feedback-ID:From:Message-ID:MIME-Version:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:message-id:mime-version:reply-to
	:subject:subject:to:to; s=fm1; t=1774606746; x=1774693146; bh=T9
	PMY9DFdJXlLu5egrUOc86EVZd3HqqVfAflpl48KNk=; b=feF7A+aIZjtTc9UhQl
	Oh68hIOy69XaJFb/Oy74EySbnn17JqIIktOi6vGR5ZEOdkidbfYfEdNaik3J+xts
	ISweGonz6+x/bGZtj2SEx826/5mmrJuZLEXl0nQTynbp6hnIgsbdxaFRaT2GeNR2
	520kX1Uo6RkEhWFmKdi/1G591SCjPbb6ynY4UWEdfd3Ql3dB4PQuy7FdCB9kgNa3
	vPPLbYQ2FHNLGtPe3zi/uZ8CLuKPmvkl7sG4D584Dy2rESOmUy9FP+wFM+un1uwk
	Hfd/AWUpBi5OTgKxX12p3TrE1Fwi0BIl+zvY27at4TahB7DUdaB6sX93a9ajzM16
	pm3A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:message-id
	:mime-version:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1774606746; x=
	1774693146; bh=T9PMY9DFdJXlLu5egrUOc86EVZd3HqqVfAflpl48KNk=; b=S
	BPV9v7CiS4jwqPvjiXIU1KjoqYJtRWteOWdKsWau4e5mDeaJYnyoUgUIvgO2mVoa
	B3j9EtB2+izFj0yky2hGy5swZZJYk9QgSu5LVc0ovbKqXT5i3K0RexXf+DpGmgjR
	yRJv+j9UU8t1akFQS+syEc4H69nRd6TOgDTv5TeulghXNnKXiLf38IUD+KrACNUN
	7ppPukjD7k6/2fNxk7rSPkO59YDmwe5gx3O+JhhglBmgh2AM2mnPb9jVllv7snCV
	r9Z+XZEfbGG6CE6tppBM9QWXcVTJFc2HDIH14cYAm+YmQIL/QZMpbWNh8ZzL4YP0
	pup55Q8S1HRMNjLMMSHMw==
X-ME-Sender: <xms:mlnGaVYLUxmSieAcYwil4dbH8o5jjvrLrX-8_fSH-2evRe2ePqanfQ>
    <xme:mlnGaSa3ZkQ_SdzOBMiy8v6LRFoQ6Ws0Gd_K-YFWVNQz0frmKrmPDnMAzC_SV_oye
    ecznRCl7BmZyhIDsW6tRztWHsjBE58q1jEN7eiGHuJY3HhRIA>
X-ME-Received: <xmr:mlnGaVkVmWem-OT4OuZuhIMp83dj1U-nmnY39W_qOn4l4NuPTcGd3CqFV-YSb7D6J1UB5GZIG9E8zSIwtEb5RzxNKFyFR1dHoOc>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeffedttddvucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkgggtugesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcuofgr
    rhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvihhsih
    gslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepvdelvedtfedt
    jeegtedvieduveejteehiefgfefhfeeuvdfhudffgfekjedtfeetnecuffhomhgrihhnpe
    hgihhtlhgrsgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgr
    ihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrd
    gtohhmpdhnsggprhgtphhtthhopedvpdhmohguvgepshhmthhpohhuthdprhgtphhtthho
    peigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtph
    htthhopehjsggvuhhlihgthhesshhushgvrdgtohhm
X-ME-Proxy: <xmx:mlnGaexVQqm9qN6W_vnirsGGaIdeLmT7_VnVrzkXrK-0d6BOxNUQDw>
    <xmx:mlnGaTMbx3EGzdr19IauL9HoJFqNHz1kjbh6fr5n7Y_6Ms58ni3Eeg>
    <xmx:mlnGaSRS0j4iHI5E1Ed8LqqNKcekTyLBRLL6PhwKnsA8YW6QGdqmCQ>
    <xmx:mlnGaRYEHoKpy4m_ubHGuGPx6YQx02KlNNkJxl7vWnfKdhvnsgwY8Q>
    <xmx:mlnGaVtz2jUSHsahyL92IqJwUZXKq8kKmT7NTbAuA40iaQQnsYFz6h7N>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 27 Mar 2026 11:19:04 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>
Subject: IOMMU faults after S3
Message-ID: <acZZmGXIJlmN3KGm@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="jyaOBGeUZIKSV3mQ"
Content-Disposition: inline
X-purgate-ID: tlsNG-ebf023/1774606748-B8A8E9D1-38D921FA/0/0
X-purgate-type: clean
X-purgate-size: 3021


--jyaOBGeUZIKSV3mQ
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 27 Mar 2026 11:19:04 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>
Subject: IOMMU faults after S3

Hi,

I noticed that on some systems, there are a lot of IOMMU faults after
S3. I can see it also on a laptop with MTL, but it affects also the ADL
gitlab runner:

    https://gitlab.com/xen-project/hardware/xen/-/jobs/13661033722
    (XEN) [   37.201160] [VT-D]DMAR:[DMA Write] Request device [0000:00:1e.=
6] fault addr 0
    (XEN) [   37.201164] [VT-D]DMAR: reason 02 - Present bit in context ent=
ry is clear
    (XEN) [   37.202332] [VT-D]DMAR:[DMA Write] Request device [0000:00:1e.=
6] fault addr 0
    (XEN) [   37.202339] [VT-D]DMAR: reason 02 - Present bit in context ent=
ry is clear

Interestingly, the 0000:00:1e.6 device is not even listed by lspci.

The issue is present only on staging, not staging-4.21.

Bisect says:

5ec93b2f19ff8873fca65d38c1164b0a56d3898b is the first bad commit
commit 5ec93b2f19ff8873fca65d38c1164b0a56d3898b
Author: Jan Beulich <jbeulich@suse.com>
Date:   Thu Jan 22 14:13:35 2026 +0100

    x86/HPET: drop .set_affinity hook
   =20
    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 act=
ive
    use again.
   =20
    Along with adjusting fixup_irqs() (in a more general way, i.e. covering=
 all
    vectors which are marked in use globally), also adjust section placemen=
t of
    used_vectors.
   =20
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>

 xen/arch/x86/hpet.c | 17 -----------------
 xen/arch/x86/irq.c  | 12 ++++++++----
 2 files changed, 8 insertions(+), 21 deletions(-)


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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmnGWZgACgkQ24/THMrX
1yxPjggAlPAFrHJ3jn1JcEeCvilGgls72KrF6WHOREZbKKPWqB00Meiv16+T1FYp
BLDPL0mzb5MqUj4JxJMAs8Urw01629MTCrU0xPyRKnT3YeMVKDzhg+OJzLCwX+ra
pOIcnJ826uu2UTq1MG41thQoqadOiq71opndqOlPnN5cva4RQsaWnPa++tAU+2bi
MYvHMBPeMoPOGILlrGloTbZLhA+VlKCS0VxUbijKa6+w4GNg8/mSfhIT1P7PeF/7
lfNjDAfRAokfn71Xnr1srWjCDzRRnlkwJxYemiaediaygZ9VOphXX/sfu2KmtfUe
o5n/NaS4Ykd4kDxsZiHdFV3c01OsIA==
=MTO3
-----END PGP SIGNATURE-----

--jyaOBGeUZIKSV3mQ--


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 10:39:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 10:39:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265349.1556319 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w64bB-0000eJ-4b; Fri, 27 Mar 2026 10:39:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265349.1556319; Fri, 27 Mar 2026 10: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 1w64bB-0000eC-1x; Fri, 27 Mar 2026 10:39:29 +0000
Received: by outflank-mailman (input) for mailman id 1265349;
 Fri, 27 Mar 2026 10:39:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Mykyta_Poturai@epam.com>) id 1w64bA-0000e4-3j
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 10:39:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w64b9-002EiG-Fm
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 11:39:27 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 69c65e57-bab6-0a2a0a5309dd-0a2a45079e16-40
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 11:39:27 +0100
Received: from [52.101.83.125]
 (helo=GVXPR05CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 69c65e5e-fd74-0a2a45070019-3465537d5ddf-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 11:39:27 +0100
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PA6PR03MB10548.eurprd03.prod.outlook.com
 (2603:10a6:102:3d9::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Fri, 27 Mar
 2026 10:39:24 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9745.019; Fri, 27 Mar 2026
 10:39:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=w1voaCGBE+Bb/B7nU+rE9N9tDGBCo0NGJHbdK9yKqD22rwgHrN+iwnrcPCp8t0Ek7UuHh8ElVVAoEdg3gNlzRml5gbFN+sirc/FdLu2UxSSaM4xUPJfg4ABr7sn0EiGrObZMQ7FO948TaCois1Q8IitSVBzrszzWc6FccdZ9UEWBtkqtPJC6o8fTLQsq7dRsg8RJDX0K349nGS/b83AdbggeXuW+JImPRMN1kKhA76iwXbXc8q4HJYAqRuNNwS7H+eDK2oOiE4EqDx76r2n57m/HpUVnRSj+jtd/ywpt02nAR4Fn15Mo1txbuphak5jSaNfVxmb1WOHV1CRbFECNQA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ft+lreCixcMUMH0Zc1yPqDd0lnChZ3cmDDQLk6vYaZw=;
 b=QShyoZfStxi7lhFdR6HS2vpefs3FkhFv+UcmRkXhzQ102Yb1E3j0TbjSBWKlaGY6Exq6urwFgUSjr69Sb09FpdgnHyLMENITQR3dnXAQR56o5wr4V0NBW99UGwoieTKWB8g2Dfx1Oni7VucMOsGQ23T4/BYcn+8yaQD3cvM0MaL0UwHY2q2S/Y5q0/Y9ah2VdAWrikridDEtQonQ3RrGh4LAlmMnnvh4UmgAtBQWTZ7IPB/S7ScX0/V4WMGLnf4CBFGZXV54epL1kO32r9Vr7/HKfRuYYMkpE1TP7g9Co1MOxZieliLH2cMUZ2EO3niQwumBeJS6gyLptInTnckkoA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ft+lreCixcMUMH0Zc1yPqDd0lnChZ3cmDDQLk6vYaZw=;
 b=vRVMEaywKqi3HjjPN3KHSHL+DaKwSKPQbbUlMx2UUbYIJLgZMY74MTszupw9TgcZI6qa0s0FQc+s0GIdGd6im00ILyqFIkSI5TmTh9k2RpiqJKD4ZxmjjpY/EI/vw7k3VJxFVNl8M6+WKT56F3eR/VwRkvH/uMZ72iB4G5mPiKcvWQZB2n/05diWawrfSQm9gsHXkZUibepJhkkq5n5xQ+ojgKaD6Hfh+bbCy0mO/ndJ0gsrQ34wVUENek6zCuzuAsjBcSutL+4+BxdC2tgpm2IWZOH4G6MRg8+kCoxh7RhvEH2NVCix7Snf46WPh1msZt+w+CWPzkNjuYR2RgxnPQ==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>, Connor Davis
	<connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v6 3/5] arm/sysctl: Implement cpu hotplug ops
Thread-Topic: [PATCH v6 3/5] arm/sysctl: Implement cpu hotplug ops
Thread-Index: AQHcsgQgazJGD0vsMEiWnzOogqs2jLW8BwkAgAZA4oA=
Date: Fri, 27 Mar 2026 10:39:23 +0000
Message-ID: <eb459343-12a2-4fc1-b26c-efe4fa636aa9@epam.com>
References: <cover.1773307749.git.mykyta_poturai@epam.com>
 <206261ba0b60ebcff25e083c22d9e9b885645199.1773307749.git.mykyta_poturai@epam.com>
 <be38f4ce-48f8-459c-9bfc-caa60794a652@suse.com>
In-Reply-To: <be38f4ce-48f8-459c-9bfc-caa60794a652@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_|PA6PR03MB10548:EE_
x-ms-office365-filtering-correlation-id: 3128dad8-b54b-4868-4374-08de8bed1ce5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|7416014|38070700021|56012099003|18002099003|22082099003;
x-microsoft-antispam-message-info:
 Lr2VYan5T5MbBuYYyYFu9suijTWPpfNOKnbRjkk7+W0ofyaf238zxFzmzkgocXE6lYp1bkvg2gW1QkEUjCe1TR9Eqi5ipSEuxAntTU6X1GS1FM+7QPuF94JKcIQ+rPDO+uFbkNQShhvE6S0kRLrMl5ZJxbcnJPvBlKYJmQGuUdbmRx67nsGRdFEkturln3vyC/cSEIwerHNDXQrWCR4RKYHtc//wC8SHYD/gYkE0K676msR3AVVV3XtugM0RWfrHMqFyt2FAxoA+Um6rmZu6izM1pXp3briXZSdvEo4kCPiAO20HpOqNU8q/R8g5XdaK+GHBWYoOlXqJYySrSebasiA1LEtq6xQJT5/2QAHR9k1mK4T9SlSajfaNutlcepLbmveQA8zotqBx2331+ZZfy+ggFbhQq8JRzfpnIUwEhJdzy6eOMeArfKuuVWlcD61jTGwddfT0UsWcVOlodCkZR+As8SPtvB8+JTAQDgsvIPLmQ8rp/aaBAeDMOOJ+nbfFYN0iS8BHqHbrdaZW/IGx0JU2lQOiGvNv7NyOZN0UBWw4/OTjCirHoupnJsvHPKH27mvlyQQPRGgyN/GvurjLtP8CFRenakvVIAocfDFI4f2hvExOphHSWATGPkFd+2GoQGun9279EGTMLu60ra5xNJ11IqovYpmRo2K2b/m9r52R1WWknw/gjmPLBzfGzabZRAHy9wpURr+pPHrDPqUB8mqZa0C979xKjBTBPt1UAkYqwXGzBxjj2RWNNF/2/zQFFkoHsGwJjjPzvxjAbRZ+9WXsPXez78d2otR1CdGbDnA=
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)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?alVUUER0OUtUTUp0ZHQvZzRQbDlvVjgyQmdsUHZrWXhldVI2RG9kNkVxcUdJ?=
 =?utf-8?B?blh0aUhXTmYyV2N2dkIvZmdXZnNScUNVTXRQb1B1aEQ5cFdNOXZ6YTV4Nk5a?=
 =?utf-8?B?MG0zalJISTNINmFVYm5EVVZjQ3MzUm40WmlmWEF0V1ZoR0Zja1M0bGN6SzE5?=
 =?utf-8?B?T3Vvakd5RUV0SGc4Nk5ETVJWVEVmT214NlMzaUxoSTY4L240M3lSSnhoaTVs?=
 =?utf-8?B?dEcrV1IzZUJ5M21ZcHRBU04xRjRFVVNPMkh2eW1DbGY5cUdnZVJKZW9BZUNH?=
 =?utf-8?B?Z3RkUTlqZC9qRmpFdmhjcTM2TXdFbzBPbFpidis3Z2xSNWRYOS9LVGxrZzM0?=
 =?utf-8?B?d3hnUmZwZWcxd1FBNXVNcHBubVplMGdFTCtzWnZBTlk4cGJUVXBBZWlzRlcv?=
 =?utf-8?B?Y0h4RUtwdnFXWVlDUjRSNVhtdVdwNjlzL0ZsVm9LSy9mekZHZWpXVlM5elBQ?=
 =?utf-8?B?OUswVGRzYWovZk8rdVJseHpCN2pqd2QrQmlDYVFpNytJWXUvYkhUbnpYZDlU?=
 =?utf-8?B?R0VyR2JPdG1IZ29BUXlBVzRJRUxucUhDYi9NUXBiTTJOaWpLT1NrUFlDOXZB?=
 =?utf-8?B?Q1RTWkdGY3hiUFp0ZGs3SlpoVS9EYmhNU0VlL1p1UmVyOHU3N01IRXZ5ZGEv?=
 =?utf-8?B?ZWN1d1cyVEFWWDd1ZFNNOTdIdTI5aWMrb1RuVDNaZXk5V0QyaWdidGNYSGx6?=
 =?utf-8?B?RmZLZXE5TnJEK0I5TjZxODBGYklRTUxQNExNTWdkTVB4WnB2SkFzdUx1Wk1r?=
 =?utf-8?B?TmluS3ZYdm1HUCtBZUhHUUNxaFVacFAzZFlLL1ZHWGpGSnhIaGU1ODhXRzRu?=
 =?utf-8?B?d1F0UFd4U2MxckhnM3pyaGxodkxhRUl4M2puVVZJZHIwZkdVQWJJTFhKZWcy?=
 =?utf-8?B?QVJVWk9NQ1UxL1RBZXJsYUNGOFlSeE01TS8rNXlWRU5kT0s3bUcweU5NbTM3?=
 =?utf-8?B?WkkxbmZXRGNzTWwwVEdMTEFDYmtKbGp6VHh6eVB2emxJeFdkQWNiKzdDZ04x?=
 =?utf-8?B?VUs3QmZMWTh1YUtkUmtLSnF0eVZHaDBrdmZONzhQUG12OXF6MmVIcmRDSExQ?=
 =?utf-8?B?WTFNN0NSSm5pcFBWalhyTmx2bFVLV1hRY25VQk8wZHVHclV5S09HUmV1eHBJ?=
 =?utf-8?B?ZVFWVWV1NUxwZ210UnNQaC9uNGt3WGY4NXZqNUYvZEZxc2lkMlgyYlAwMGtO?=
 =?utf-8?B?OE5ZcHpaemRGMFVIdzlMU2h6Q2Iva0x2Njd6ejFsclAyTTRnbUIvOTI5TmNv?=
 =?utf-8?B?ZngrZUFvUzl1UU9QajQxOGtudzJOamxDODVlS2Z6RHRpZUNRYlIycXp5TUJJ?=
 =?utf-8?B?SEtBdFI4OGdPZHZxVDhlY1NheXk3SUprdjZtdDJRTVNJMlRPOVZieGlHRXZv?=
 =?utf-8?B?aUdCTklnUjEzYkZSTngzdkFDWVhiZGVWa05PcGpXWDc4WmFyTzF4SWxxTk9L?=
 =?utf-8?B?aFlSRFM0dXFaQjZ1MDdrTjhzZGtvcE1LWmVua0gweDROSnhnZStTazVRNEpT?=
 =?utf-8?B?SjVkUzNLREtRZXIvcFhYeTVhR3I2d05tMG1ZZDBrMWdvM3BkS1BFYks2Vldp?=
 =?utf-8?B?bmcyZUt1SFp0NmpYVDFkM3ZUQld3UmJUbGR0RThxTUNlaEp6bEw4bDdnbjY2?=
 =?utf-8?B?MkFpdy9PSXJZZUdySEIrOEd6eUtFV3paY3BVQXBEVUZjZEJxRldLaEZJUVJ6?=
 =?utf-8?B?NmVpcHNEaUhNRkFOT2l4U1BNaWdWRjlsdlpCR29QNHpONXg2SHZjbno0OGk0?=
 =?utf-8?B?K3FscmV3WVpzRXJhdENVZHlWUkd4TEpwL2hNdVZlOVNNblQ3WHArQkpPMzhi?=
 =?utf-8?B?ZzZ2VkpZZHJISmMrMVpMamRCMDJtWjhhajk0cXJxbHZ4VVh0dGhoVmw3cC91?=
 =?utf-8?B?UG9mKzNON0Z6Qm5LakxSZGtGeDB2Y2VoTHpDeHpmUldlbzNvS2c0UGJ5emlx?=
 =?utf-8?B?Z0Y1UXpJTGRtQmtUVU5LbmJDZTJSbGs4ZUwwY2xqeVpJNm44eC94NVFNcXNm?=
 =?utf-8?B?TmxHZFhJRXdyVVg4bXJmV0lCbjhDQitKVDJNN0g3MG56d1FsMCtqanh2WU0v?=
 =?utf-8?B?UEhxNWNaUTFka0Q2R0ROR29xWTgrV0dVRE5iUkV2K3BKcUFwemRxM0FRa3hN?=
 =?utf-8?B?MmNUdThXSEc2SlJtY1hZdkxwczVkL1lMNWxSZndscWFTeUwzZ2lscjY0dHRs?=
 =?utf-8?B?UzJ0QUZId056dUlDWkpNeUx0Ym4rUkxIODFkbXFnOTBMdDhidkRMOUFtMnV4?=
 =?utf-8?B?bk5lTkRrcFVySGhENTBqTHdMTU9pUFM1Ly9lbitEeGZFN01lTFoxMVJqc1hl?=
 =?utf-8?B?VEZEQlEvWk9yOEp6NzJwREFqZ0RpanZBdkh2eWUwcE9LbGgzbVBra25QZFVH?=
 =?utf-8?Q?24HH9GMOB9BcIyys=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <A32E41926C63B84F80C15BD86860B4B1@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: 3128dad8-b54b-4868-4374-08de8bed1ce5
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Mar 2026 10:39:24.1244
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: WbWOtawpt6F3vCm0uv1naGEyyEiOQBCwaAxdxqK0RgchMri+AstTXNRFkEgP+NKldp+4auIMXV8jRNxqvqendg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR03MB10548
X-purgate-ID: tlsNG-ef75cf/1774607967-4FAA5303-A7DC4345/0/0
X-purgate-type: clean
X-purgate-size: 12086

T24gMy8yMy8yNiAxMzowOSwgSmFuIEJldWxpY2ggd3JvdGU6DQo+IE9uIDEyLjAzLjIwMjYgMTA6
MzksIE15a3l0YSBQb3R1cmFpIHdyb3RlOg0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL3NtcC5jDQo+
PiArKysgYi94ZW4vYXJjaC9hcm0vc21wLmMNCj4+IEBAIC00NCw2ICs0NCwxNSBAQCB2b2lkIHNt
cF9zZW5kX2NhbGxfZnVuY3Rpb25fbWFzayhjb25zdCBjcHVtYXNrX3QgKm1hc2spDQo+PiAgICAg
ICB9DQo+PiAgIH0NCj4+ICAgDQo+PiArLyoNCj4+ICsgKiBXZSBjdXJyZW50bHkgZG9uJ3Qgc3Vw
cG9ydCBTTVQgb24gQVJNIHNvIHdlIGRvbid0IG5lZWQgYW55IHNwZWNpYWwgbG9naWMgZm9yDQo+
PiArICogQ1BVIGRpc2FibGluZw0KPj4gKyAqLw0KPj4gK2Jvb2wgYXJjaF9jcHVfY2FuX3N0YXlf
b25saW5lKHVuc2lnbmVkIGludCBjcHUpDQo+PiArew0KPj4gKyAgICByZXR1cm4gdHJ1ZTsNCj4+
ICt9DQo+IA0KPiBTb21ldGhpbmcgYXMgc2ltcGxlIGFzIHRoaXMgd291bGQgYmUgbmljZSB0byBi
ZSBhbiBpbmxpbmUgZnVuY3Rpb24gKG9yLCBsZXNzDQo+IGRlc2lyYWJseSwgYSBtYWNybykuDQo+
IA0KPj4gLS0tIGEveGVuL2FyY2gveDg2L3BsYXRmb3JtX2h5cGVyY2FsbC5jDQo+PiArKysgYi94
ZW4vYXJjaC94ODYvcGxhdGZvcm1faHlwZXJjYWxsLmMNCj4+IEBAIC03MzUsNiArNzM1LDEyIEBA
IHJldF90IGRvX3BsYXRmb3JtX29wKA0KPj4gICAgICAgew0KPj4gICAgICAgICAgIGludCBjcHUg
PSBvcC0+dS5jcHVfb2wuY3B1aWQ7DQo+PiAgIA0KPj4gKyAgICAgICAgaWYgKCAhSVNfRU5BQkxF
RChDT05GSUdfQ1BVX0hPVFBMVUcpICkNCj4+ICsgICAgICAgIHsNCj4+ICsgICAgICAgICAgICBy
ZXQgPSAtRU9QTk9UU1VQUDsNCj4+ICsgICAgICAgICAgICBicmVhazsNCj4+ICsgICAgICAgIH0N
Cj4+ICsNCj4+ICAgICAgICAgICByZXQgPSB4c21fcmVzb3VyY2VfcGx1Z19jb3JlKFhTTV9IT09L
KTsNCj4+ICAgICAgICAgICBpZiAoIHJldCApDQo+PiAgICAgICAgICAgICAgIGJyZWFrOw0KPj4g
QEAgLTc2MSw2ICs3NjcsMTIgQEAgcmV0X3QgZG9fcGxhdGZvcm1fb3AoDQo+PiAgICAgICB7DQo+
PiAgICAgICAgICAgaW50IGNwdSA9IG9wLT51LmNwdV9vbC5jcHVpZDsNCj4+ICAgDQo+PiArICAg
ICAgICBpZiAoICFJU19FTkFCTEVEKENPTkZJR19DUFVfSE9UUExVRykgKQ0KPj4gKyAgICAgICAg
ew0KPj4gKyAgICAgICAgICAgIHJldCA9IC1FT1BOT1RTVVBQOw0KPj4gKyAgICAgICAgICAgIGJy
ZWFrOw0KPj4gKyAgICAgICAgfQ0KPj4gKw0KPj4gICAgICAgICAgIHJldCA9IHhzbV9yZXNvdXJj
ZV91bnBsdWdfY29yZShYU01fSE9PSyk7DQo+PiAgICAgICAgICAgaWYgKCByZXQgKQ0KPj4gICAg
ICAgICAgICAgICBicmVhazsNCj4gDQo+IEkgd29uZGVyIHdoZXRoZXIgb24geDg2IHRoaXMgcmVh
bGx5IHNob3VsZCBiZWNvbWUgYW4gb3B0aW9uYWwgdGhpbmcgKGFuZA0KPiBpZiBzbywgd2hldGhl
ciB0aGF0IHdvdWxkbid0IGJldHRlciBiZSBhIHNlcGFyYXRlIGNoYW5nZSB3aXRoIHByb3Blcg0K
PiBqdXN0aWZpY2F0aW9uKS4gU2VlIGFsc28gdGhlIGNvbW1lbnQgb24gY29tbW9uL0tjb25maWcg
ZnVydGhlciBkb3duIC0gYnkNCj4gdGhlIG5hbWUgb2YgdGhlIG9wdGlvbiwgYW5kIGdpdmVuIHRo
ZSBzdXBwb3J0IHN0YXR1cyB0aGUgY2hhbmdlIGFib3ZlIG1heQ0KPiBiZSBsZWdpdGltYXRlLCBi
dXQgbm90IHNvbWUgb2YgdGhlIHNpbWlsYXIgcmVzdHJpY3Rpb25zIGFkZGVkIGVsc2V3aGVyZS4N
Cj4gDQoNCk1heWJlIGZvcmNlIGl0IHRvIGJlIGFsd2F5cyBvbiBsaWtlIHg4NiB0aGVuPyBJIGRv
bid0IHJlYWxseSBoYXZlIGEgDQpqdXN0aWZpY2F0aW9uIGZvciBtYWtpbmcgaXQgb3B0aW9uYWwg
b24geDg2LCBpdCBqdXN0IGhhcHBlbmVkIGFzIHNpZGUgDQplZmZlY3Qgb2YgY3JlYXRpbmcgYSBj
b25maWcgb3B0aW9uLg0KDQo+PiAtLS0gYS94ZW4vYXJjaC94ODYvc21wLmMNCj4+ICsrKyBiL3hl
bi9hcmNoL3g4Ni9zbXAuYw0KPj4gQEAgLTQxOCwzNSArNDE4LDggQEAgdm9pZCBjZl9jaGVjayBj
YWxsX2Z1bmN0aW9uX2ludGVycnVwdCh2b2lkKQ0KPj4gICAgICAgc21wX2NhbGxfZnVuY3Rpb25f
aW50ZXJydXB0KCk7DQo+PiAgIH0NCj4+ICAgDQo+PiAtbG9uZyBjZl9jaGVjayBjcHVfdXBfaGVs
cGVyKHZvaWQgKmRhdGEpDQo+PiArYm9vbCBhcmNoX2NwdV9jYW5fc3RheV9vbmxpbmUodW5zaWdu
ZWQgaW50IGNwdSkNCj4+ICAgew0KPj4gLSAgICB1bnNpZ25lZCBpbnQgY3B1ID0gKHVuc2lnbmVk
IGxvbmcpZGF0YTsNCj4+IC0gICAgaW50IHJldCA9IGNwdV91cChjcHUpOw0KPj4gLQ0KPj4gLSAg
ICAvKiBIYXZlIG9uZSBtb3JlIGdvIG9uIEVCVVNZLiAqLw0KPj4gLSAgICBpZiAoIHJldCA9PSAt
RUJVU1kgKQ0KPj4gLSAgICAgICAgcmV0ID0gY3B1X3VwKGNwdSk7DQo+PiAtDQo+PiAtICAgIGlm
ICggIXJldCAmJiAhb3B0X3NtdCAmJg0KPj4gLSAgICAgICAgIGNwdV9kYXRhW2NwdV0uY29tcHV0
ZV91bml0X2lkID09IElOVkFMSURfQ1VJRCAmJg0KPj4gLSAgICAgICAgIGNwdW1hc2tfd2VpZ2h0
KHBlcl9jcHUoY3B1X3NpYmxpbmdfbWFzaywgY3B1KSkgPiAxICkNCj4+IC0gICAgew0KPj4gLSAg
ICAgICAgcmV0ID0gY3B1X2Rvd25faGVscGVyKGRhdGEpOw0KPj4gLSAgICAgICAgaWYgKCByZXQg
KQ0KPj4gLSAgICAgICAgICAgIHByaW50aygiQ291bGQgbm90IHJlLW9mZmxpbmUgQ1BVJXUgKCVk
KVxuIiwgY3B1LCByZXQpOw0KPj4gLSAgICAgICAgZWxzZQ0KPj4gLSAgICAgICAgICAgIHJldCA9
IC1FUEVSTTsNCj4+IC0gICAgfQ0KPj4gLQ0KPj4gLSAgICByZXR1cm4gcmV0Ow0KPj4gLX0NCj4+
IC0NCj4+IC1sb25nIGNmX2NoZWNrIGNwdV9kb3duX2hlbHBlcih2b2lkICpkYXRhKQ0KPj4gLXsN
Cj4+IC0gICAgaW50IGNwdSA9ICh1bnNpZ25lZCBsb25nKWRhdGE7DQo+PiAtICAgIGludCByZXQg
PSBjcHVfZG93bihjcHUpOw0KPj4gLSAgICAvKiBIYXZlIG9uZSBtb3JlIGdvIG9uIEVCVVNZLiAq
Lw0KPj4gLSAgICBpZiAoIHJldCA9PSAtRUJVU1kgKQ0KPj4gLSAgICAgICAgcmV0ID0gY3B1X2Rv
d24oY3B1KTsNCj4+IC0gICAgcmV0dXJuIHJldDsNCj4+ICsgICAgcmV0dXJuIG9wdF9zbXQgfHwg
Y3B1X2RhdGFbY3B1XS5jb21wdXRlX3VuaXRfaWQgIT0gSU5WQUxJRF9DVUlEIHx8DQo+PiArICAg
ICAgICAgICBjcHVtYXNrX3dlaWdodChwZXJfY3B1KGNwdV9zaWJsaW5nX21hc2ssIGNwdSkpIDw9
IDE7DQo+PiAgIH0NCj4gDQo+IFVubGlrZSBmb3IgQXJtLCB0aGlzIG1heSBpbmRlZWQgYmV0dGVy
IGJlIGFuIG91dC1vZi1saW5lIGZ1bmN0aW9uLg0KPiANCj4+IC0tLSBhL3hlbi9hcmNoL3g4Ni9z
eXNjdGwuYw0KPj4gKysrIGIveGVuL2FyY2gveDg2L3N5c2N0bC5jDQo+PiBAQCAtNDksNiArNDks
NyBAQCBzdGF0aWMgdm9pZCBjZl9jaGVjayBsM19jYWNoZV9nZXQodm9pZCAqYXJnKQ0KPj4gICAN
Cj4+ICAgc3RhdGljIGxvbmcgY2ZfY2hlY2sgc210X3VwX2Rvd25faGVscGVyKHZvaWQgKmRhdGEp
DQo+PiAgIHsNCj4+ICsgICAgI2lmZGVmIENPTkZJR19DUFVfSE9UUExVRw0KPj4gICAgICAgYm9v
bCB1cCA9IChib29sKWRhdGE7DQo+PiAgICAgICB1bnNpZ25lZCBpbnQgY3B1LCBzaWJsaW5nX21h
c2sgPSBib290X2NwdV9kYXRhLng4Nl9udW1fc2libGluZ3MgLSAxOw0KPj4gICAgICAgaW50IHJl
dCA9IDA7DQo+PiBAQCAtODksNiArOTAsOCBAQCBzdGF0aWMgbG9uZyBjZl9jaGVjayBzbXRfdXBf
ZG93bl9oZWxwZXIodm9pZCAqZGF0YSkNCj4+ICAgICAgICAgICAgICAgICAgdXAgPyAiZW5hYmxl
ZCIgOiAiZGlzYWJsZWQiLCBDUFVNQVNLX1BSKCZjcHVfb25saW5lX21hcCkpOw0KPj4gICANCj4+
ICAgICAgIHJldHVybiByZXQ7DQo+PiArICAgICNlbmRpZiAvKiBDT05GSUdfQ1BVX0hPVFBMVUcg
Ki8NCj4+ICsgICAgcmV0dXJuIDA7DQo+PiAgIH0NCj4gDQo+IFRoZSAjLWVzIG9yIHByZS1wcm9j
ZXNzb3IgZGlyZWN0aXZlcyB3YW50IHRvIGJlIGluIHRoZSB2ZXJ5IGZpcnN0IGNvbHVtbi4NCj4g
DQo+IFNoYXJpbmcgInJldHVybiByZXQiIHdvdWxkIGFsc28gYmUgbmljZSwgaW1vLiBXb3VsZCBy
ZXF1aXJlIHJldCdzIGRlY2wgdG8NCj4gbW92ZSBhaGVhZCBvZiB0aGUgI2lmZGVmLiBBY3R1YWxs
eSAtIGlzIHRoZXJlIGFueXRoaW5nIHByZXZlbnRpbmcNCj4gDQo+ICAgICAgaWYgKCAhSVNfRU5B
QkxFRChDT05GSUdfQ1BVX0hPVFBMVUcpICkNCj4gICAgICAgICAgcmV0dXJuIDA7DQo+IA0KPiBh
dCB0aGUgdG9wIG9mIHRoZSBmdW5jdGlvbj8gUGVyaGFwcyBldmVuIHdpdGggQVNTRVJUX1VOUkVB
Q0hBQkxFKCkgYWRkZWQNCj4gaW4/DQo+IA0KPj4gQEAgLTExNSwyNCArMTE4LDI0IEBAIGxvbmcg
YXJjaF9kb19zeXNjdGwoDQo+PiAgIA0KPj4gICAgICAgY2FzZSBYRU5fU1lTQ1RMX2NwdV9ob3Rw
bHVnOg0KPj4gICAgICAgew0KPj4gLSAgICAgICAgdW5zaWduZWQgaW50IGNwdSA9IHN5c2N0bC0+
dS5jcHVfaG90cGx1Zy5jcHU7DQo+PiAgICAgICAgICAgdW5zaWduZWQgaW50IG9wICA9IHN5c2N0
bC0+dS5jcHVfaG90cGx1Zy5vcDsNCj4+ICAgICAgICAgICBib29sIHBsdWc7DQo+PiAgICAgICAg
ICAgbG9uZyAoKmZuKSh2b2lkICpkYXRhKTsNCj4+ICAgICAgICAgICB2b2lkICpoY3B1Ow0KPj4g
ICANCj4+IC0gICAgICAgIHN3aXRjaCAoIG9wICkNCj4+ICsgICAgICAgIGlmICggIUlTX0VOQUJM
RUQoQ09ORklHX0NQVV9IT1RQTFVHKSApDQo+PiAgICAgICAgICAgew0KPj4gLSAgICAgICAgY2Fz
ZSBYRU5fU1lTQ1RMX0NQVV9IT1RQTFVHX09OTElORToNCj4+IC0gICAgICAgICAgICBwbHVnID0g
dHJ1ZTsNCj4+IC0gICAgICAgICAgICBmbiA9IGNwdV91cF9oZWxwZXI7DQo+PiAtICAgICAgICAg
ICAgaGNwdSA9IF9wKGNwdSk7DQo+PiArICAgICAgICAgICAgcmV0ID0gLUVPUE5PVFNVUFA7DQo+
PiAgICAgICAgICAgICAgIGJyZWFrOw0KPiANCj4gQVNTRVJUX1VOUkVBQ0hBQkxFKCkgbG9va3Mg
dG8gYWxzbyBiZSB2YWxpZCB0byBiZSBhZGRlZCBoZXJlLCBzZWVpbmcgaG93DQo+IGRvX3N5c2N0
bCgpIG5vdyB3b3Jrcy4NCj4gDQo+PiAtLS0gYS94ZW4vY29tbW9uL0tjb25maWcNCj4+ICsrKyBi
L3hlbi9jb21tb24vS2NvbmZpZw0KPj4gQEAgLTYzNyw2ICs2MzcsMTIgQEAgY29uZmlnIFNZU1RF
TV9TVVNQRU5EDQo+PiAgIA0KPj4gICAJICBJZiB1bnN1cmUsIHNheSBOLg0KPj4gICANCj4+ICtj
b25maWcgQ1BVX0hPVFBMVUcNCj4+ICsJYm9vbCAiRW5hYmxlIENQVSBob3RwbHVnIg0KPiANCj4g
SSdtIG5vdCBoYXBweSB3aXRoIHRoaXMgcHJvbXB0LiBGb3IgeDg2IFNVUFBPUlQubWQgZGVjbGFy
ZXMgKEFDUEkpIENQVQ0KPiBob3RwbHVnIGFzIGV4cGVyaW1lbnRhbC4gVGhhdCdzIHBoeXNpY2Fs
IGhvdHBsdWcuIFRoZSBjb2RlIHlvdSdyZQ0KPiBmaWRkbGluZyB3aXRoLCBob3dldmVyLCBpcyBh
bHNvIHVzZWQgZm9yIHNvZnQte29mZixvbn1saW5pbmcuIFdoaWNoLA0KPiBlLmcuIHRvIGRpc2Fi
bGUgU01UIG9uIHg4NiwgbWF5IG5lZWQgdG8gYmUgdXNlZCBmb3Igc2VjdXJpdHkgcHVycG9zZXMu
DQo+IA0KPj4gKwlkZXBlbmRzIG9uIChYODYgfHwgQVJNXzY0KSAmJiAhRkZBICYmICFURUUgJiYg
IUhBU19JVFMNCj4gDQo+IFdoYXQgaWYgb24geDg2IEZGQSwgVEVFLCBvciBJVFMgZ2FpbiBhIG1l
YW5pbmc/DQo+IA0KPj4gKwlkZWZhdWx0IHkNCj4+ICsNCj4+ICsNCj4gDQo+IE5pdDogTm8gZG91
YmxlIGJsYW5rIGxpbmVzIHBsZWFzZS4NCj4gDQo+PiAtLS0gYS94ZW4vY29tbW9uL3N5c2N0bC5j
DQo+PiArKysgYi94ZW4vY29tbW9uL3N5c2N0bC5jDQo+PiBAQCAtNDgzLDYgKzQ4Myw1MiBAQCBs
b25nIGRvX3N5c2N0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9zeXNjdGxfdCkgdV9zeXNj
dGwpDQo+PiAgICAgICAgICAgICAgIGNvcHliYWNrID0gMTsNCj4+ICAgICAgICAgICBicmVhazsN
Cj4+ICAgDQo+PiArICAgIGNhc2UgWEVOX1NZU0NUTF9jcHVfaG90cGx1ZzoNCj4+ICsgICAgew0K
Pj4gKyAgICAgICAgdW5zaWduZWQgaW50IGNwdSA9IG9wLT51LmNwdV9ob3RwbHVnLmNwdTsNCj4g
DQo+IEkgZG9uJ3QgdGhpbmsgdGhpcyB2YXJpYWJsZSBpcyB2ZXJ5IHVzZWZ1bCB0byBrZWVwLiBJ
bnN0ZWFkIHVzZSAuLi4NCj4gDQo+PiArICAgICAgICB1bnNpZ25lZCBpbnQgaHBfb3AgPSBvcC0+
dS5jcHVfaG90cGx1Zy5vcDsNCj4+ICsgICAgICAgIGJvb2wgcGx1ZzsNCj4+ICsgICAgICAgIGxv
bmcgKCpmbikodm9pZCAqZGF0YSk7DQo+PiArICAgICAgICB2b2lkICpoY3B1Ow0KPiANCj4gICAg
ICAgICAgdm9pZCAqaGNwdSA9IF9wKG9wLT51LmNwdV9ob3RwbHVnLm9wKTsNCj4gDQo+IHJpZ2h0
IGhlcmUsIGRyb3BwaW5nIHRoZSBhc3NpZ25tZW50cyBmdXJ0aGVyIGRvd24uDQo+IA0KPj4gKyAg
ICAgICAgcmV0ID0gLUVPUE5PVFNVUFA7DQo+PiArICAgICAgICBpZiAoICFJU19FTkFCTEVEKENP
TkZJR19DUFVfSE9UUExVRykgKQ0KPj4gKyAgICAgICAgICAgIGJyZWFrOw0KPj4gKw0KPj4gKyAg
ICAgICAgc3dpdGNoICggaHBfb3AgKQ0KPj4gKyAgICAgICAgew0KPj4gKyAgICAgICAgY2FzZSBY
RU5fU1lTQ1RMX0NQVV9IT1RQTFVHX09OTElORToNCj4+ICsgICAgICAgICAgICBwbHVnID0gdHJ1
ZTsNCj4+ICsgICAgICAgICAgICBmbiA9IGNwdV91cF9oZWxwZXI7DQo+PiArICAgICAgICAgICAg
aGNwdSA9IF9wKGNwdSk7DQo+PiArICAgICAgICAgICAgYnJlYWs7DQo+PiArDQo+PiArICAgICAg
ICBjYXNlIFhFTl9TWVNDVExfQ1BVX0hPVFBMVUdfT0ZGTElORToNCj4+ICsgICAgICAgICAgICBw
bHVnID0gZmFsc2U7DQo+PiArICAgICAgICAgICAgZm4gPSBjcHVfZG93bl9oZWxwZXI7DQo+PiAr
ICAgICAgICAgICAgaGNwdSA9IF9wKGNwdSk7DQo+PiArICAgICAgICAgICAgYnJlYWs7DQo+PiAr
DQo+PiArICAgICAgICBkZWZhdWx0Og0KPj4gKyAgICAgICAgICAgIGZuID0gTlVMTDsNCj4+ICsg
ICAgICAgICAgICBicmVhazsNCj4+ICsgICAgICAgIH0NCj4+ICsNCj4+ICsgICAgICAgIGlmICgg
Zm4gKQ0KPj4gKyAgICAgICAgew0KPj4gKyAgICAgICAgICAgIHJldCA9IHBsdWcgPyB4c21fcmVz
b3VyY2VfcGx1Z19jb3JlKFhTTV9IT09LKQ0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgOiB4
c21fcmVzb3VyY2VfdW5wbHVnX2NvcmUoWFNNX0hPT0spOw0KPj4gKw0KPj4gKyAgICAgICAgICAg
IGlmICggIXJldCApDQo+PiArICAgICAgICAgICAgICAgIHJldCA9IGNvbnRpbnVlX2h5cGVyY2Fs
bF9vbl9jcHUoMCwgZm4sIGhjcHUpOw0KPj4gKw0KPj4gKyAgICAgICAgICAgIGJyZWFrOw0KPj4g
KyAgICAgICAgfQ0KPj4gKw0KPj4gKyAgICAgICAgLyogVXNlIHRoZSBhcmNoIGhhbmRsZXIgZm9y
IGNhc2VzIG5vdCBoYW5kbGVkIGhlcmUgKi8NCj4+ICsgICAgICAgIGZhbGx0aHJvdWdoOw0KPj4g
KyAgICB9DQo+PiArDQo+PiAgICAgICBkZWZhdWx0Og0KPj4gICAgICAgICAgIHJldCA9IGFyY2hf
ZG9fc3lzY3RsKG9wLCB1X3N5c2N0bCk7DQo+PiAgICAgICAgICAgY29weWJhY2sgPSAwOw0KPiAN
Cj4gVGhpcyBmb3JtIG9mIGZhbGxpbmcgdGhyb3VnaCBtYXkgYmUgYSBsaXR0bGUgcmlza3ksIHRv
d2FyZHMgc29tZW9uZSBub3QNCj4gbG9va2luZyBjbG9zZWx5IGVub3VnaCBhbmQgaW5zZXJ0aW5n
IGFub3RoZXIgY2FzZSBsYWJlbCBpbW1lZGlhdGVseSBhaGVhZA0KPiBvZiB0aGUgZGVmYXVsdCBv
bmUuIFdoaWxlIEkgZG9uJ3QgdGhpbmsgdGhlcmUncyBhIHJlYWxseSBnb29kIHNvbHV0aW9uIHRv
DQo+IHRoaXMsIHBsZWFzZSBjb25zaWRlcg0KPiANCj4gICAgICB9DQo+ICAgICAgICAgIC8qIFVz
ZSB0aGUgYXJjaCBoYW5kbGVyIGZvciBjYXNlcyBub3QgaGFuZGxlZCBhYm92ZSAqLw0KPiAgICAg
ICAgICBmYWxsdGhyb3VnaDsNCj4gICAgICBkZWZhdWx0Og0KPiANCj4gaW5zdGVhZC4NCj4gDQoN
Ckp1c3Qgd2FudCB0byBjbGFyaXJmeSBpZiBJIGdvdCB0aGUgaWRlYS4gSXMgdGhpcyB3aGF0IHlv
dSBtZWFudD8NCg0KICAgICBzd2l0Y2ggKCBvcC0+Y21kICkNCiAgICAgew0KICAgICAuLi4uDQog
ICAgIGNhc2UgWEVOX1NZU0NUTF9jcHVfaG90cGx1ZzoNCiAgICAgew0KICAgICAuLi4uDQogICAg
IH0NCg0KICAgICAgICAgLyogVXNlIHRoZSBhcmNoIGhhbmRsZXIgZm9yIGNhc2VzIG5vdCBoYW5k
bGVkIGhlcmUgKi8NCiAgICAgICAgIGZhbGx0aHJvdWdoOw0KICAgICBkZWZhdWx0Og0KICAgICAg
ICAgcmV0ID0gYXJjaF9kb19zeXNjdGwob3AsIHVfc3lzY3RsKTsNCiAgICAgICAgIGNvcHliYWNr
ID0gMDsNCiAgICAgICAgIGJyZWFrOw0KICAgICB9DQoNCg0KPj4gLS0tIGEveGVuL3hzbS9mbGFz
ay9ob29rcy5jDQo+PiArKysgYi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMNCj4+IEBAIC04MzUsNyAr
ODM1LDcgQEAgc3RhdGljIGludCBjZl9jaGVjayBmbGFza19zeXNjdGwoaW50IGNtZCkNCj4+ICAg
ICAgIGNhc2UgWEVOX1NZU0NUTF9nZXRkb21haW5pbmZvbGlzdDoNCj4+ICAgICAgIGNhc2UgWEVO
X1NZU0NUTF9wYWdlX29mZmxpbmVfb3A6DQo+PiAgICAgICBjYXNlIFhFTl9TWVNDVExfc2NoZWR1
bGVyX29wOg0KPj4gLSNpZmRlZiBDT05GSUdfWDg2DQo+PiArI2lmZGVmIENPTkZJR19DUFVfSE9U
UExVRw0KPj4gICAgICAgY2FzZSBYRU5fU1lTQ1RMX2NwdV9ob3RwbHVnOg0KPj4gICAjZW5kaWYN
Cj4+ICAgICAgICAgICByZXR1cm4gMDsNCj4gDQo+IElzIHRoZXJlIGEgcmVhc29uIHRoZSAjaWZk
ZWYgY2FuJ3Qgc2ltcGx5IGJlIGRyb3BwZWQ/DQo+IA0KPiBKYW4NCg0KLS0gDQpNeWt5dGE=


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 10:56:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 10:56:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265372.1556329 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w64ru-00045c-K4; Fri, 27 Mar 2026 10:56:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265372.1556329; Fri, 27 Mar 2026 10:56: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 1w64ru-00045V-GO; Fri, 27 Mar 2026 10:56:46 +0000
Received: by outflank-mailman (input) for mailman id 1265372;
 Fri, 27 Mar 2026 10:56:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <bounce-md_30504962.69c6626b.v1-335e150ddaf9412d935ee21057e6ff9e@bounce.vates.tech>)
 id 1w64rt-000459-GT
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 10:56:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w64rs-0040gQ-RB
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 11:56:44 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <bounce-md_30504962.69c6626b.v1-335e150ddaf9412d935ee21057e6ff9e@bounce.vates.tech>)
 id 69c6626b-e002-0a2a0a5209dd-0a2a450ad8f0-6
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 11:56:44 +0100
Received: from [198.2.132.14] (helo=mail132-14.atl131.mandrillapp.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from
 <bounce-md_30504962.69c6626b.v1-335e150ddaf9412d935ee21057e6ff9e@bounce.vates.tech>)
 id 69c6626b-1772-0a2a450a0019-c602840ee423-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 11:56:44 +0100
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-14.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fhyJC2Q0pz8XRqqp
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 10:56:43 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 335e150ddaf9412d935ee21057e6ff9e; Fri, 27 Mar 2026 10:56:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mte1 header.d=mandrillapp.com header.i="@mandrillapp.com" header.h="From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"; dkim=pass header.s=mte1 header.d=vates.tech header.i="teddy.astie@vates.tech" header.h="From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774609003; x=1774879003;
	bh=0dNJjQP7XjYEVS8VW5u2fwHRPOGEtTTyk4PN88fsd7A=;
	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=cSMThih67oaojjLhWVOf8LFhjT5Irc6NckubycoVk1Bh0zBOoL2k0/0mcONVlh6mj
	 /LH7lKG+om8Wqw72lPYY5wug7MUwoh3PNIGPooeCWT0J/C9thEVUdK3pg24hgkZGCg
	 n042v2dfYRlDUexMw8JvkMTvINEDCu2YoWdKq1SS7iWJwcFC7DhpZio0iJG4hmBJQL
	 /sTFwh+nRPgMSxLkkXtn0yZCpNsKRX8FV+K172DsIvAWU0x12ZL+5/ekz1xAK62Ux9
	 mbkqyHFm0tyKgPjuyabDoOJvgaYTVxWUUZksAtVvdSBr/ekLX/yNyLH7C/clu7JqVJ
	 9O8m2c/JgLnkg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774609003; x=1774869503; i=teddy.astie@vates.tech;
	bh=0dNJjQP7XjYEVS8VW5u2fwHRPOGEtTTyk4PN88fsd7A=;
	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=cil0blbhSOIRp3B7bJKNB3lPWa/5UK9h7jT1iTDN8+wuJUoalq0PjB6s8MWpAl6+y
	 t2FD5gWvAxkJ02+Un49M7cQIwDLSh0wKk+ePmT6VzgEgaU7opJZAzYYnNSmkuliw1H
	 dXiMdqRT2CRVgCEmr2BbZ/Jk+GSBEUHrHHMoWDQFTAXyJ5pz1haPQC4uQP6c5L0PrB
	 hkV9BV1VKEsWQBJ7fR0ApSPJbg2C844mXwIwDak7m5fzbOeUbG/RGzmZAjzAgFbsFc
	 Qok3vTDs2Pjv1srG6otbI7h78b5b7vYIE4cwKfdZGcDGE1cNI+BA8XZbCwDfoeIW0D
	 mW8vUQVXDnbig==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20IOMMU=20faults=20after=20S3?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774609002527
Message-Id: <dc88adaf-401d-4585-b310-7647220a3739@vates.tech>
To: "=?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?=" <marmarek@invisiblethingslab.com>, xen-devel <xen-devel@lists.xenproject.org>
Cc: "Jan Beulich" <jbeulich@suse.com>
References: <acZZmGXIJlmN3KGm@mail-itl>
In-Reply-To: <acZZmGXIJlmN3KGm@mail-itl>
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.335e150ddaf9412d935ee21057e6ff9e?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260327:md
Date: Fri, 27 Mar 2026 10:56:43 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-4011c0/1774609004-52892900-4F5177FC/0/0
X-purgate-type: clean
X-purgate-size: 2326

Le 27/03/2026 =C3=A0 11:19, Marek Marczykowski-G=C3=B3recki a =C3=A9crit=C2=
=A0:
> Hi,
> 
> I noticed that on some systems, there are a lot of IOMMU faults after
> S3. I can see it also on a laptop with MTL, but it affects also the ADL
> gitlab runner:
> 
>      https://gitlab.com/xen-project/hardware/xen/-/jobs/13661033722
>      (XEN) [   37.201160] [VT-D]DMAR:[DMA Write] Request device [0000:00:=
1e.6] fault addr 0
>      (XEN) [   37.201164] [VT-D]DMAR: reason 02 - Present bit in context =
entry is clear
>      (XEN) [   37.202332] [VT-D]DMAR:[DMA Write] Request device [0000:00:=
1e.6] fault addr 0
>      (XEN) [   37.202339] [VT-D]DMAR: reason 02 - Present bit in context =
entry is clear
> 
> Interestingly, the 0000:00:1e.6 device is not even listed by lspci.
> 
> The issue is present only on staging, not staging-4.21.
> 

Is there a 1e.0 device ? That could be a "phantom" PCI device.

> Bisect says:
> 
> 5ec93b2f19ff8873fca65d38c1164b0a56d3898b is the first bad commit
> commit 5ec93b2f19ff8873fca65d38c1164b0a56d3898b
> Author: Jan Beulich <jbeulich@suse.com>
> Date:   Thu Jan 22 14:13:35 2026 +0100
> 
>      x86/HPET: drop .set_affinity hook
>      
>      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. So=
me
>      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. cover=
ing all
>      vectors which are marked in use globally), also adjust section place=
ment of
>      used_vectors.
>      
>      Signed-off-by: Jan Beulich <jbeulich@suse.com>
>      Reviewed-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> 
>   xen/arch/x86/hpet.c | 17 -----------------
>   xen/arch/x86/irq.c  | 12 ++++++++----
>   2 files changed, 8 insertions(+), 21 deletions(-)
> 
> 



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Fri Mar 27 10:58:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 10:58:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265387.1556339 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w64ta-0004oO-VS; Fri, 27 Mar 2026 10:58:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265387.1556339; Fri, 27 Mar 2026 10:58:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w64ta-0004oH-Rl; Fri, 27 Mar 2026 10:58:30 +0000
Received: by outflank-mailman (input) for mailman id 1265387;
 Fri, 27 Mar 2026 10:58:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Oleksii_Moisieiev@epam.com>) id 1w64tZ-0004o9-JP
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 10:58:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w64tY-007uEJ-VO
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 11:58:28 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 69c662d2-e002-0a2a0a5209dd-0a2a4505df4e-22
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 11:58:28 +0100
Received: from [52.101.66.77]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 69c662d4-5aeb-0a2a45050019-3465424d39a1-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 11:58:28 +0100
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com (2603:10a6:10:519::5)
 by VI1PR03MB6160.eurprd03.prod.outlook.com (2603:10a6:800:131::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.23; Fri, 27 Mar
 2026 10:58:26 +0000
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908]) by DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908%5]) with mapi id 15.20.9745.019; Fri, 27 Mar 2026
 10:58:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HXYh27ByHjIR5ZxuvRWmYOKDuUYg2xopLtFtUnAJS6GBnRNf4/AZaR92s2ztWPhzZp7VrszHOJu1KdJl85Tf8wQAuZCjUPlMfFjv4ClNlcxy9i94fYbtXnj8dYdIeBYVsdZUkRfPBpjSk1JyGbUx8owjW5jiCe0sd3jZ76bJVJ2EiJs3NOOz0BNYZ6OVsl8F8bJWTJmDVQrSkktvUQRBkMu41PUBXWjSYRngEmwsbOyzYqxHFkXdDYRFf+26lFn+XWgpJSttLqTsZbTVlBT8q/wfNAz8vHLcGao43mtD5Jd6Yzjt5EqLjTptQhL8AelZt7u1KLa3HnhSDIp/cYaqTg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=se165X370Re8SnfjgibmhB332t7RWSJ80b3DwY8FBnY=;
 b=CmrBgGkUDqkx5VtvnRuFzw6Ky61rRiOVH4pjj8f11F5P5nKyYSa0mmxB7P9USUwcj4j3YsQ6kwvxYen19Q3oide2Hno1yam14512IRhjWyNPk301ddaIMlV0sp4H2nJ0OQpNj+ZB7KyjW7vLfykvr7ZXjkeGfN7oLXcTyz4L1pPYoH1/iUSwN+LmdN9rQCh3U2cJPpBl2r1L+//7RaaIQyxrH7hPNAfOoGliWm41EAVuyW19t4u+fEgoRYbJNWZchTZoLxC/Y1gv2eJnLpa+93tkVDXDQW8lidHMEMMdvirN1TWh67Hd2yqA5pYL6FNFXdA5X2iId1fi7AltbtRkbA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=se165X370Re8SnfjgibmhB332t7RWSJ80b3DwY8FBnY=;
 b=CUpuDI8m6qK0tmtJUUfSkNCMWxc8emZSIFm2KdiANcr1K9UCTqn3kNsMhdOTNtNPjuN4IHFVbQzww+OiMKK1FKb0KkKHV0jM5z3dAvbsN62jflYGuW3ndhTQDKHtf3dH8SZEZ+MYFvTUysJzXsg2bpk3YePE08O5JFzwYvMI7T6Kgj2grLNhlz4lzxzbBPaKIOHIstcCcHneotQNfIiP/pSD4o48tDu4+fxW+nLRlKhBFAfIRVKx0GH8c/fUbOltcs96GILw+F7IwPxafryS8GV85Xpm8fJsApKnCmCRGOUlSKkh+w3bEEgjdBTqkm6yjVNIK110rXEJ4ivQ5+j19A==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <40ac90e4-c643-4226-b590-6c4b33755807@epam.com>
Date: Fri, 27 Mar 2026 12:58:23 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/sched: validate RTDS putinfo period and budget
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 Juergen Gross <jgross@suse.com>, Meng Xu <mengxu@cis.upenn.edu>
References: <c629e66ebf05d620423babf1e4e98866c1f75357.1774452210.git.oleksii_moisieiev@epam.com>
 <d37e995a-332d-4917-aa42-15a5fec2d960@citrix.com>
Content-Language: en-US
From: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
In-Reply-To: <d37e995a-332d-4917-aa42-15a5fec2d960@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: BE1P281CA0168.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:b10:66::16) To DU5PR03MB10263.eurprd03.prod.outlook.com
 (2603:10a6:10:519::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU5PR03MB10263:EE_|VI1PR03MB6160:EE_
X-MS-Office365-Filtering-Correlation-Id: 684a593d-ced6-4054-1225-08de8befc593
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	EUALEN3HWfKFajfuD1kpfZD0HeUsGz79RD8W8MU++f9omUBb5b2oMen65+z00gOZPEo5w2oJIB6wZpxwkfKEFVRQpgxp0qeBEI6FcWb/ylWF1lmFHw+4D2+URpfYvqaroyzf8K1cuN+a7ZhYcEQpxSJvCHgl8xUDoH5oxwHRn5hKKd81L79PsoIRoOQkYzbgkjkpcJ1LFTTlLKB1m98VmbAdetrBshl3rkXIUxkjfqtuCfnJiJuGjz3iaoZbMlgw5duX/a0ssCoiRCq/Fjjkc16IeBS2WqdXxVDqR4OdKpaqcntb6C+48iCF6NowYLcc89qeuWth1o6ZxDTpe3lrxcl3oAaIg3/ilvzocKEmNLjC7uOncOIWjIZDzLyGdjbBubiWaOXiyhvDRB44cm6VyY8gPF4QG1oP0o5E5rrl5V5dKyUmOFBYRCwMaLj7/RC2C94S3r+Xwlt+Yd6X1ICFsneZIxkrov2f1Pqw5q5/c5QiKWsdJGh1yZ0zCJhUE3zggD1ONFwJUAzaSs0pNi8uq4ZcmAVlCbXXYpaw4N7+5MPfYIuqEABiGmTiAv3Uf7l8Nforqtkq17l6sowTiXWUugfZNoxVj809OKyDgkDqTd4fTLAnCwxW4nGC37OUogGz9W1D1tFuwfYpVXJuppY1SscghOkl3uIxS44kGeBBNc/mrAZsoiwkpUkN2H3tF6kL
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU5PR03MB10263.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Z0w4QnN3NEs1cytRWFQ0cWdJdS9LSnpHQnRyNy93NlcyUlYrV09xMDg2b3Qz?=
 =?utf-8?B?eG4yVU5zZ0VyNTBOcGF0eGZGeFgrck5Ra2w1ZXpNYlBSZmdtZVkwQmc1UlRN?=
 =?utf-8?B?M2RxTU5zTGRpV0J0cmVyck5mamhyczRKTHlhY0R1M2FzVjZ3QTNFYVZPR2JQ?=
 =?utf-8?B?MEs3Vzc3U3JkaSs5YXY2RnNXMHJ6eUtwUlJOOXpoWkc3QXNOTVJwM2V1U2hF?=
 =?utf-8?B?R1B5Wm5MbGRleEMzQklKNUpqMmtma2hINnAzdDVjRWhGcU9oNGVTdzFnVytS?=
 =?utf-8?B?SWhhZ3RlaWV3UzBheHIwcE1SaHY1UVZUVmNYb2d6YzBsUVNScTlLalZXY2N1?=
 =?utf-8?B?NE5iU3hvRmR2b1dsTXpRUENuQWVSQWdldExXbGpvMEVWZ3pudDZKdFhyUlV2?=
 =?utf-8?B?dGZpUjgxWDJjRk9Ub2doS2JXbDl1OUpKQTA4ZW5GZ1hINEpxejM0YTB1SlNJ?=
 =?utf-8?B?NmF2Qyt6ZVEzUnRtcjJwdDhzenkvUDdVVnZxVmNmcU5MbHZudGc0Znh1d2tO?=
 =?utf-8?B?d05DWklQVnFVZXZTOWM1djRVQWpMc2tpQkJaeWdDeU1acTZCZDluc3hxNjhQ?=
 =?utf-8?B?QVRUd0J0bk9GRnlMVjNhanZ1R3JtbzY2Nk14K0VNOGU2MkZRR1NLSFZXOWdz?=
 =?utf-8?B?eWROZHRWL3l6L1p2NW9SQWszTWVXWjVXcGJLRFZoK2VOejhXalhWbTZWbnNw?=
 =?utf-8?B?b0RrbW1GdURxM3dPNFV6Vk5JUTg0SnVhYVVDV040ejFmQmltNHdXNFo3NEJp?=
 =?utf-8?B?T2E1c2MwZm45YjhGaWhueFk3N2Q4RWxzVS8yMHhoaUM3WVgwZXhXS2pqdnYx?=
 =?utf-8?B?b2U4enFRMFJOM05GUDQ4Y0FpcjA1dGdDY211WmVwTmtZb0I0M3ZXN3JFMGp6?=
 =?utf-8?B?cTUyNHg4KzNXZjB2R1h5R1QrZ3pTREdKZExsMm41emE5ZytSUnhnZnlsdEQw?=
 =?utf-8?B?MGR4U3lEUnNKZTFvVEM0QUxCSDRML3kxQ2hab0RRWjIza3NjaDlNZjhBd1N2?=
 =?utf-8?B?c29pUUh2Qmw5NDlTL1RaVjIzd1V5VysxU2xFU2c0Q0hSempmYkJiMHpNLzg1?=
 =?utf-8?B?Unc1V05WWmlDMXJ5T20vZWVEc2hBci9QTWoxbkRWcnFML2RZbUoyejZIcjFU?=
 =?utf-8?B?d1Z1MVJKdlQvWVNJKzRocnVnRE1PRnM3NTRDR0xxNkdVeG1aa1pTcjVucXZO?=
 =?utf-8?B?aUJaUWU5aWROb21BZ2JsUWVjUmZqQ1E2QlJSc21qNGQvWnFsc1AvaEVQakZl?=
 =?utf-8?B?QURpK2RDd1V4SzhqNUZZVWx5V1NIZldsd0RYaC9QdE9FaTBPSTFIbVNiTjZq?=
 =?utf-8?B?aXdpT21IYnBNUldjRS9UYkhQVEp2aExqbStpdnBSNGx1Q09IM3RIeGp6Y0VK?=
 =?utf-8?B?MzRvbDVuUk9GNFFRUFBlb0dKR04rOUFGV0diVHBkLzVGNnd4bExvWjZ0SEUv?=
 =?utf-8?B?c1JhODNZRHQyTTUvZnZ5clZtY1ZOZVY0YU90YjZPSk5yc1hqR1J0b0hKTitH?=
 =?utf-8?B?SUk2Q0p1ZlR0Y01PLzdZZEx6U0lRVE56dTVMZXBwUzVZV1UrMG5sU096MmdL?=
 =?utf-8?B?enArWUZZZDVINmg5STd4K1ZQUTM5anQ0YmNKbTlwVjFzZzBHYVBPYlA2ZWtP?=
 =?utf-8?B?ZkhRNXB4RGgrM1JsZW5EblF0bkYvdWoxaWZUTEZiNzBHTWNqS2xFM2NscjR1?=
 =?utf-8?B?RTZqL1l1dG42VVRVR0hQRG5sd2xyWXNhd3lsM09RMlFJaWJubmVmWHZGMW14?=
 =?utf-8?B?bjFkaVpTZld3dVcvSlFOMlBOcmRUNVJJZlZrTEtBbEtHZFZDZU5LZEZFRk83?=
 =?utf-8?B?UGhad3A4aFJvYWNMSlk1UmxGOXhzTmpiWGVRYkJJSlE0UTlwbmM3Vmp0YTIr?=
 =?utf-8?B?MEtZVkxjWHNIUVJWWXV1NXdSb1RoUjdOUmFWS09PVmlGVXlya3EyeDQvVm1a?=
 =?utf-8?B?d21CVnVWQ2dpejlmamhWUmM2UURDMVdDalhHZVBYdzI4ellzak4rT1NpbHo2?=
 =?utf-8?B?Q2F5WEttenJBQ0JFU2JMSU5HK3VIQ3djWGJYTDhqaWc2NHZtOWlOM0VuRWUz?=
 =?utf-8?B?aGQzQzhQTWZVekd6UU96bk5VYkUvS0QxZWFJb0JadE11cDU3cC9TTk4wNWow?=
 =?utf-8?B?cHR2S3luaWdWQ2xSVU1Ec0sxNThZb1c5RGNXZHpZNEFQWGpkMlMxZ3hVZVBE?=
 =?utf-8?B?My9mQ0lrU0JYRzZZNmxXbEc1T3ZCVTJ2SzhEelM1QzBqNmV6b2ZQZUJrcUgz?=
 =?utf-8?B?MHhKS1RwZmpoRGdOclVtL05LZUl4WXlCSCtqSmgwS05TaGlHYnM1SXpUeWZY?=
 =?utf-8?B?K2hSWFpjN3ZzU2tJN3FEbTJ5Z2ltSnlaOWh1b2tybjB0MGEwNnRTSGJwZ280?=
 =?utf-8?Q?KbSLalefeY4DXPW0=3D?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 684a593d-ced6-4054-1225-08de8befc593
X-MS-Exchange-CrossTenant-AuthSource: DU5PR03MB10263.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 10:58:26.2799
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: UnQaFF4+9Ao8LSZh4q0DR+PSkmp90oX5EQOKglQtoNl0MSrvBLEXjts3+Fmy1n73cZIkIdlPatSwNb+aNopyatzrwsSIvt0QXKgoW3s8GBY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB6160
X-purgate-ID: tlsNG-c201ff/1774609108-2169D488-8A271A3A/0/0
X-purgate-type: clean
X-purgate-size: 2439


On 25/03/2026 17:45, Andrew Cooper wrote:
> On 25/03/2026 3:24 pm, Oleksii Moisieiev wrote:
>> The RTDS domain-wide XEN_DOMCTL_SCHEDOP_putinfo path only checks for
>> zero values before applying period and budget to all vCPUs in the
>> domain.
>>
>> This is weaker than the per-vCPU XEN_DOMCTL_SCHEDOP_putvcpuinfo path,
>> which already rejects values below the minimum, above the maximum, and
>> cases where budget exceeds period.
>>
>> Use the same validation rules for putinfo as for putvcpuinfo, so
>> invalid domain-wide updates are rejected with -EINVAL instead of being
>> applied inconsistently.
>>
>> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
>> ---
>>
>> Changes in v2:
>> - introduce rt_validate_params helper function to check period and budget
>>
>>   xen/common/sched/rt.c | 37 ++++++++++++++++++++++++-------------
>>   1 file changed, 24 insertions(+), 13 deletions(-)
>>
>> diff --git a/xen/common/sched/rt.c b/xen/common/sched/rt.c
>> index 7b1f64a779..645b091de7 100644
>> --- a/xen/common/sched/rt.c
>> +++ b/xen/common/sched/rt.c
>> @@ -1362,6 +1362,20 @@ out:
>>       unit_schedule_unlock_irq(lock, unit);
>>   }
>>   
>> +static int
>> +rt_validate_params(uint32_t period_us, uint32_t budget_us,
>> +                   s_time_t *period, s_time_t *budget)
>> +{
>> +    *period = MICROSECS(period_us);
>> +    *budget = MICROSECS(budget_us);
>> +
>> +    if ( *period > RTDS_MAX_PERIOD || *budget < RTDS_MIN_BUDGET ||
>> +         *budget > *period || *period < RTDS_MIN_PERIOD )
>> +        return -EINVAL;
>> +
>> +    return 0;
>> +}
> Code written like this is horrible; both to read, and in terms of
> generated code.  Because of potential aliasing, that's 7 distinct memory
> accesses because the values cannot be cached in registers.
>
> You'll get far better code generation by writing it more like:
>
> {
>      s_time_t p = MICROSECS(period_us);
>      s_time_t b = MICROSECS(budget_us);
>
>      if ( p > RTDS_MAX_PERIOD || ... )
>          return -EINVAL;
>
>      *period = p;
>      *budget = b;
>
>      return 0;
> }
>
> See https://godbolt.org/z/W63TY8qTW
>
> But it would also be better still if you passed op->u.rtds into this
> function rather than {period,budget}_us separately.
>
> ~Andrew


Hi Andrew,

Thank you for pointing this out.

Will fix and make v3

--

Oleksii.



From xen-devel-bounces@lists.xenproject.org Fri Mar 27 10:59:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 10:59:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265395.1556347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w64uw-0005Mk-8B; Fri, 27 Mar 2026 10:59:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265395.1556347; Fri, 27 Mar 2026 10:59: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 1w64uw-0005Md-4S; Fri, 27 Mar 2026 10:59:54 +0000
Received: by outflank-mailman (input) for mailman id 1265395;
 Fri, 27 Mar 2026 10:59:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w64uu-0005MX-HM
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 10:59:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w64ut-00CvAN-TB
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 11:59:51 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c66318-5cb7-0a2a0a5109dd-0a2a4502d7fa-34
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 11:59:51 +0100
Received: from [202.12.124.148] (helo=fout-b5-smtp.messagingengine.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c66326-63bb-0a2a45020019-ca0c7c94921d-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 11:59:51 +0100
Received: from phl-compute-07.internal (phl-compute-07.internal [10.202.2.47])
 by mailfout.stl.internal (Postfix) with ESMTP id 503F11D0024B;
 Fri, 27 Mar 2026 06:59:50 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-07.internal (MEProxy); Fri, 27 Mar 2026 06:59:50 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 27 Mar 2026 06:59:48 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm1 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1774609190;
	 x=1774695590; bh=FcdK16LBUGMAvFrGVeURP8c4G98XF6VCNzM+p4nvso0=; b=
	EYRFTQf+6+vZlAEerxBM/km04ijgUs2594+8j5BUghvzXWSreSpbeIAyL9bJpoTF
	l3AW3AnSnISrvrPCPTjTERKE6LSoUUNq8bAeWtPi0DEST3Se1JoRe/CqIGBsjfpw
	u6MiZzORDpiff8V558Zb75nKv/Cg6ResIIxp9GyOu2AGtf2hqYiLKiYenZBvYo3V
	+k4MIbMjWe3xVoemr4/EiVYSpvb8T9R4/yvLSHvy22VrKFGKxfx+WhC3kycpEMuM
	W1rtj/tTRBeqXA+ztVstcSt7NIU6qaF118gQqEzerKZ/As4gACckhrjhjF1n8pKd
	uiLsX25uQlxXQrsy1MHM6w==
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=
	1774609190; x=1774695590; bh=FcdK16LBUGMAvFrGVeURP8c4G98XF6VCNzM
	+p4nvso0=; b=WdF6XvMmSb7Qql0yPT1KQpFMVSzKBrXRumRklCs6+AyEJLV+xEE
	iew/mTrVEsErVoTYZrQggUBhYWrth2Abu/TS2F1Snej/iEnbvHG9fjQaB5zxTRzw
	bZrvQFkHhAueXtanxHRkint61uvHGRTZSaiJkHanrtGv0QM1aqXv/tA0e0on9BO/
	g91ayXIvNbCWd5n1pOO8OQugRt1xeFAyOV+o4KQ+4Rbn9W3CyAL63U/aPzzqUutk
	Kdkoeaa97SB5gusQnGIvrxX/IstThkLnAD//prLzo1IyXyPKIuQ0Kc9sTiVRwoL3
	rB/lGVD5i+7I4SjygnizejQcNCVrPloFrOg==
X-ME-Sender: <xms:JWPGabfmjm7tdl8nelG8Gmh7IMpd0I8I_I8M2uPGLvubj_8Jr264wQ>
    <xme:JWPGaYqdpoqiaPwJ0BLBk6RCVLMtkdTSIlkMfn9E_RRjOThOffGI4BTebPkxN25II
    -laKAri07RrwLJsMkXKc4HjRUE9glHly2e8JHxtszdLSvBo9A>
X-ME-Received: <xmr:JWPGaR4YMdaj8RQtFGz2wZDMWBzn__eTqwptVYVog_ZQjWqNyfYSSdrZUg1njjnBGQIDOX3NUuwDN0EMrvsfG5voCYkgax5DJQQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeffedtuddtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepffeigfdv
    ledvffetheeigeeuhfekjedtudfhtdfgtdeftdfguddvteetueelvdffnecuffhomhgrih
    hnpehgihhtlhgrsgdrtghomhdpvddurdhishenucevlhhushhtvghrufhiiigvpedtnecu
    rfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthh
    hinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeefpdhmohguvgepshhmthhpohhu
    thdprhgtphhtthhopehtvgguugihrdgrshhtihgvsehvrghtvghsrdhtvggthhdprhgtph
    htthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdp
    rhgtphhtthhopehjsggvuhhlihgthhesshhushgvrdgtohhm
X-ME-Proxy: <xmx:JWPGaWq8BHcVoOvIJETtqxsy755EgktULTo-hJwHIxKwDdwQiuHOpw>
    <xmx:JWPGabjwZPaycxCIFanNeb1gszk2deV4CjUatUHMjyDesSztjffOng>
    <xmx:JWPGaYJPcR2NwXWq1mm09V3pQNieUy-RIHiUHEoAIvwLglb8PJRV7A>
    <xmx:JWPGaTCwWMxImlPefsu49v-4B-rqqjqdqwkeydZh4YJ4jLNqwO112g>
    <xmx:JmPGabEcWTk1P5gyIGvbtQnAf96qypaTpXtZHtX6Z-Tyn-t3jXCAGR7d>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 27 Mar 2026 11:59:47 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Teddy Astie <teddy.astie@vates.tech>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	Jan Beulich <jbeulich@suse.com>
Subject: Re: IOMMU faults after S3
Message-ID: <acZjI-9keWFyTQ4I@mail-itl>
References: <acZZmGXIJlmN3KGm@mail-itl>
 <dc88adaf-401d-4585-b310-7647220a3739@vates.tech>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="1yxRQQcmYgEP4lfK"
Content-Disposition: inline
In-Reply-To: <dc88adaf-401d-4585-b310-7647220a3739@vates.tech>
X-purgate-ID: tlsNG-720697/1774609191-BF48FDB8-0FDFDC83/0/0
X-purgate-type: clean
X-purgate-size: 2419


--1yxRQQcmYgEP4lfK
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 27 Mar 2026 11:59:47 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Teddy Astie <teddy.astie@vates.tech>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	Jan Beulich <jbeulich@suse.com>
Subject: Re: IOMMU faults after S3

On Fri, Mar 27, 2026 at 10:56:43AM +0000, Teddy Astie wrote:
> Le 27/03/2026 =C3=A0 11:19, Marek Marczykowski-G=C3=B3recki a =C3=A9crit=
=C2=A0:
> > Hi,
> >
> > I noticed that on some systems, there are a lot of IOMMU faults after
> > S3. I can see it also on a laptop with MTL, but it affects also the ADL
> > gitlab runner:
> >
> >      https://gitlab.com/xen-project/hardware/xen/-/jobs/13661033722
> >      (XEN) [   37.201160] [VT-D]DMAR:[DMA Write] Request device [0000:0=
0:1e.6] fault addr 0
> >      (XEN) [   37.201164] [VT-D]DMAR: reason 02 - Present bit in contex=
t entry is clear
> >      (XEN) [   37.202332] [VT-D]DMAR:[DMA Write] Request device [0000:0=
0:1e.6] fault addr 0
> >      (XEN) [   37.202339] [VT-D]DMAR: reason 02 - Present bit in contex=
t entry is clear
> >
> > Interestingly, the 0000:00:1e.6 device is not even listed by lspci.
> >
> > The issue is present only on staging, not staging-4.21.
> >
>=20
> Is there a 1e.0 device ? That could be a "phantom" PCI device.

On ADL - no, there is 1c.2, and then 1f.0.
But on that MTL, yes:
00:1e.0 Communication controller [0780]: Intel Corporation Meteor Lake-P Se=
rial IO UART Controller #0 [8086:7e25] (rev 20)

(I wish there would be a connector populated on the board...)

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmnGYyMACgkQ24/THMrX
1ywiYwf+IvMuS4HDusawLlbhHZozr8a0BCYDH01PyqI0mhAt1MBjPCO2SpVN9fC8
ObY8r+rm3/1AKQWdFNVHrPBy92PUqkQh0zm9vzKY+YWwuxgKAuYgE4IlFn2okFhm
xHU2d9bQpxPvbIOVUGJe3eJteUSgouAz8MDbatahWhd9D55VVgnl6WwsWaDjglDQ
8jlfKpH1VwfdkxGBPEY4daYMUx6kdfksDgZ2bak66OL79icem0oTzZiRS5rkadUT
PWR8Hhj1kfs5fojFiZVxuNtoAfbCPIO3mEJtaksPAE/YzDUX+OGjSADANpED6IKX
lAj2IzWbnGiHct4iC/krswKCUhoHcA==
=SA29
-----END PGP SIGNATURE-----

--1yxRQQcmYgEP4lfK--


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 11:32:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 11:32:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265438.1556356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w65Pq-0002zs-IC; Fri, 27 Mar 2026 11:31:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265438.1556356; Fri, 27 Mar 2026 11:31:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w65Pq-0002zl-Es; Fri, 27 Mar 2026 11:31:50 +0000
Received: by outflank-mailman (input) for mailman id 1265438;
 Fri, 27 Mar 2026 11:31:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Oleksii_Moisieiev@epam.com>) id 1w65Po-0002zf-V9
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 11:31:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w65Po-0081Im-B2
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 12:31:48 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 69c66aa2-5cb7-0a2a0a5109dd-0a2a450ac24a-6
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 12:31:48 +0100
Received: from [52.101.66.97]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 69c66aa3-1772-0a2a450a0019-3465426124f0-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 12:31:48 +0100
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com (2603:10a6:10:519::5)
 by DB3PR0302MB9182.eurprd03.prod.outlook.com (2603:10a6:10:430::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.22; Fri, 27 Mar
 2026 11:31:46 +0000
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908]) by DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908%5]) with mapi id 15.20.9745.019; Fri, 27 Mar 2026
 11:31:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PvkBtO7ZPPyi4ktds2t0fZYUvo8SP/Q2pdHFO9qzlfR6zr10kXqnJOcXg7EM8pT7PX3nLVZpqDV6WXjkQHonjbb7bc8Ibp20aERqtyfY27N80X67ZNmXlnwplCpSzUR/0snCfmvwJVX0KwFccDXWkbnNTyGNrn8eitnEVG/eG0Q/UziRqBpxzKTPGzkgeB1eDotVnVKJ2ChneCsarll82mwd9RspjMV4QzKUh/nsgzdZpaa5nq6Tfg1ZJs1YF7KkyOx9Jf20ZPQTQtc/sTCzZmbqtWoAdDvqQLY3pTlXVUBMZoqOb4qJaGkS8Xodi+X889lRmTjGrJrhKfbYp/F8Pw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NzNxvYqU5Nk3XBoeZ1EiMkn0Wrn2aF/uhbEso1rQ8Ms=;
 b=zTNxvc2D7T9dg3kH/kBdj5fpAArIHgU4n/iTqKXXCzVrVwqEHgvEp/4jjm1YNATg5OZ1faX8+2Gepr9Fe1SV61NEnP72m3WUXNA2TWaBQPV0J5IBrx5LbOXbzLBfaBe5a4Tdxovmr3cjmE4qb0X6gySJ6iUWwScUrD6J+laT5Qvmr94Q5UVPseHzhBjAT0C7TcdX6YuSMN0nVQKkQdUKLdxdByYY72vCs2323h0loukLZgkXWMWUp1IwyD90XSH0fP5+qmrMkW5mJb9o5GHrWZrVc2JOz+c9/TshM9tLqJRgI8PPEp/EYKZ+kcyI96/N6CM9eJA21Jz3fOzdercjJQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NzNxvYqU5Nk3XBoeZ1EiMkn0Wrn2aF/uhbEso1rQ8Ms=;
 b=poXW08Gw9B0m2tTvFmOYc707QgqaWkqr0hNQQrn3o475otGTdv0ztf8tKtoiWsrxNJ2KhM89cQgb+eNSoUBIRI3Jx0XEXEVt981w7VwbeasqAUqUHrHr0k0C0lQFX+Radrxy77yWhpcp69kCUxAVP1Fo0aj4ExPOPD3oAmOiXZZSbEYk0LBwfWwk4Aze7sVKINMG4i1pF7lngJkbvjL/weUFvFcPlyoWFb6q74gW3kYFpwCU8w2kPEXVL9Xdrj41f6054ezkBm/EBhLRl0W9xayEVrOGkMVtejCNlM8I8ssukpC+N78rKsAWsE3Lr9SmpNej39HMKJpgnb5Y7Q0huQ==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
	Juergen Gross <jgross@suse.com>, Meng Xu <mengxu@cis.upenn.edu>, Oleksii
 Moisieiev <Oleksii_Moisieiev@epam.com>
Subject: [PATCH v3] xen/sched: validate RTDS putinfo period and budget
Thread-Topic: [PATCH v3] xen/sched: validate RTDS putinfo period and budget
Thread-Index: AQHcvd1L1b1gojMWXUypwX1G4oeCmQ==
Date: Fri, 27 Mar 2026 11:31:45 +0000
Message-ID:
 <06fbc96288c6aba60369914c2cdbc656ca32fcf8.1774611038.git.oleksii_moisieiev@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DU5PR03MB10263:EE_|DB3PR0302MB9182:EE_
x-ms-office365-filtering-correlation-id: 7ba6c45b-97bf-41de-9c59-08de8bf46d92
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|366016|38070700021|18002099003|56012099003;
x-microsoft-antispam-message-info:
 bOzRRMnTKbj56MjYiuOPySDefE+npRLqql+bLdfa2xEWqpRGN23crU1wT5gZH2yaABw85+q+dLDZ1GLuWyb88G1T+ZKnnBR9sUswSljuj8iA+ldLPkyoGjcQW42uxqSu9q8PhS4HJKcEucxP9h/V60BNRjR25E+Uq+mvLHNqUvf3IqUSWQuB2evolEAH/2rIgdDHGJBG464d8viQhhDLCpSCQZCrg/1vY+Qu+8agrFF0ZgMKkymAghLCHI/W1O5QvSgZymIxwrL6mAXmYl54qGpNZge7BHXLiUuhMk/a1YYK3oLVjvASiV5DdVuBEs1jzluYa0fGkCb00u/ehrfFItv05xRMe7s6iR6cH64tk+kC2V8jVjIlZ5sZkuVoRL5FSLO3449KGEVQXbYJIY8wrtigYBPdAXAqt5lsItxq+mw+n0dNjsFVssqyH7U6hVgrIxm5ND5r6hhgAj5qEMEFO7Mur0BszaRdse1oB+IDhs7L80fX4eL7r7LtmiHPMBbZ3vDB077eLMv/NGoRn1mDGR5XOdz+Qj0mC4D5V4G0vzvr7IzwwNIzcg869C64XGUXdjQcGamMRm1/pYyUM24zKz81vF67Hxg31qxJ9GovFsxCefsFkTQtQeSZ4sjIsli8JwoWa9e4HssXLcVQuoCqc5nBfK+3J6Fa1kVOYaRoBq2W5H48V+ShZsiFLwCcYe+AIKY9Zi1iyJdpGP8jiFBE/N/bxxrJzaAPmO/lwWcE5p3ywu0M8Ixfyy+OXLAELef29Ie4+SgqS28cxtGuUKkXbbTAjpW/u05MC3SC0Sska4A=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU5PR03MB10263.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?kGQcGQaWMRNdOyOLVQPXK6EyDFHbJ/PGlwLUL3y9j5Ol5mGCA11uXk3qKd?=
 =?iso-8859-1?Q?Vglksa1k8yYDyIoNCmoxgeZe6UTFUej09AXM9PavAo1+Fet8QpQHCugYea?=
 =?iso-8859-1?Q?eXJWaekGSmq+2gUkU4PrLDS6jPskquHTRmYK9O/Z5EVrYEoGWdWPLWFw+7?=
 =?iso-8859-1?Q?dbAJ22R37l6vmoMbEnbR6Cxh7r9ZWbN8KeUA/ldkv5FOUWxDdAvelFMJUc?=
 =?iso-8859-1?Q?Hy1BuVjo7VmYU141JreoVmB+VZSoxbJg0X77aKZPPSPjsfciAY7oDTmUJ5?=
 =?iso-8859-1?Q?J+MmSHw/T+K4ltP6UOjPP/75O32hhkledv6hguXd2x7SCj0yzJXIcfms2V?=
 =?iso-8859-1?Q?ZRX5DmCm+gK8zsFJAbVCsvM2QKCCGSar/oxKMsSEpSxNzRvW4Kxye9zyw0?=
 =?iso-8859-1?Q?9mGDNEZyOeGP5P4GyJXac5zauNcLYa5WXXlm+WWpsiB+5LrTZaGuPp/MGM?=
 =?iso-8859-1?Q?wddSaPYLJyucBf+WLjYgnOGCSOaEBkILFpiEbHmt4yLmWHU3LSjVgINrz1?=
 =?iso-8859-1?Q?aRlWmPQRg/Tu24KyGAhH+psKxRzupQn0piw/SvT3N2/XKyMRjTUXt/1dtE?=
 =?iso-8859-1?Q?DQP3oThUmJh9XTKTkfKD/n97PwN5RYeQKFOsyuhD+M1wNZaC4fW5p8BVW2?=
 =?iso-8859-1?Q?ZX2P9lbZMWR11dbcNYUgH23qdRgZeuTmmPMaMM6XZtRB7nrwJWyzSmc+fQ?=
 =?iso-8859-1?Q?+D9IKYDa9fPCK+eoVqtjv789Gl6R7R4zq1UcSJqrBcrko9yFrDX4iiEWds?=
 =?iso-8859-1?Q?757GjqKZSkDZQugV/droIfPPsf7mn0dvYGnr1HovwNJ6LhCVAqIiCGOxHU?=
 =?iso-8859-1?Q?Vqi4hvtWluErTTg3ZWvAtg3fGhA2/PvOz/JLgv359bDFw42876ze6rdyze?=
 =?iso-8859-1?Q?5MicHb/5ZAXhv6cuOpaheazwZAYY+6mUN+lgtuwmdn0D/08Cdg/3Pbtw2A?=
 =?iso-8859-1?Q?f+spxaAM/obYE0JHHczG5T6mXwGZEtZqe5kP4z+aqa6tMC/Ar7KsgMdFtN?=
 =?iso-8859-1?Q?6mcCgI6IjpZczxxwaZ4FXY3Vy29ulbpOKGRNKwyLftCDKSjpnk7dEpeWH9?=
 =?iso-8859-1?Q?Qci76LFKs+BYQEgi6JdbrvflO9/wbHu4FZhF96XeiazTfH+cnr7h3XqwJm?=
 =?iso-8859-1?Q?meUcJ67jqkMYedDQlUcbQVvP37R1d0kP/DTBJ7uGVJm1sy/LfYmP0B5tYS?=
 =?iso-8859-1?Q?6u7T/BhB9CptBrsf/CCT9f6HIxt3fPrUj9mk9Tjx1Rgu+mM6N8ANWab8yT?=
 =?iso-8859-1?Q?rZdKwtFOxYKKEO28ETzhFjcdY3hLBx+Qc1rrRaOmwluI8X7Ufz8lCEiphV?=
 =?iso-8859-1?Q?4fwsQMvKZSlMqmWYTffz7P2aHUs7UK1dknDg/AzZlPuVqA1+lAnt86aQJF?=
 =?iso-8859-1?Q?Q7sDp0KFiJBowNMv0YXQcpb77RCDKI/uEbNLGYH0DCB8yA2eG6vkEQnygo?=
 =?iso-8859-1?Q?enZo5Vkmg2cohohci3KFaaCbLkj4FW79I1XIrXBUqVuRMLquLxDLWpwQjQ?=
 =?iso-8859-1?Q?bf1BpMYpiWyJz4d/GaRS6OSulirPscDVHYybF695O3227xZ84VVpMJMKRq?=
 =?iso-8859-1?Q?GcL+PronebZn0RO69HZp9nql1y79OtHeMC89r3k5nBr58+1AqSrMMFFGol?=
 =?iso-8859-1?Q?tcI0z3N6OZHDjXLdyD7ygBPUgjJVwqADvox0qLPDg83aMn4zGiv44/CNRY?=
 =?iso-8859-1?Q?o08zU0zvsa05rmm76P+98ztPkbQJv624YAz5ZoiuaclxG1hdatcwEG+hji?=
 =?iso-8859-1?Q?JI5EKgGbkPKMZQDlhcxce+qdeCb+FmDgvJqczRkU/g4bP35DCVKVSM+La0?=
 =?iso-8859-1?Q?yH8w+HUYqicUgUQdJYG+oLRbHv737bg=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DU5PR03MB10263.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7ba6c45b-97bf-41de-9c59-08de8bf46d92
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Mar 2026 11:31:45.9204
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ueJDqU5wBhP8D1jAM3kaTORxwbWl3PMcf1Sb5G0mnARTCWCLXGtLlTLMjzVVslPycs8EbniCWuPaLmOtyHO88drLSK1WbdYG9WbKu+UEFiY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0302MB9182
X-purgate-ID: tlsNG-4011c0/1774611108-BE691900-B97CB0CA/0/0
X-purgate-type: clean
X-purgate-size: 3271

The RTDS domain-wide XEN_DOMCTL_SCHEDOP_putinfo path only checks for
zero values before applying period and budget to all vCPUs in the
domain.

This is weaker than the per-vCPU XEN_DOMCTL_SCHEDOP_putvcpuinfo path,
which already rejects values below the minimum, above the maximum, and
cases where budget exceeds period.

Use the same validation rules for putinfo as for putvcpuinfo, so
invalid domain-wide updates are rejected with -EINVAL instead of being
applied inconsistently.

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

Changes in v3:
- changed rt_validate_params input to get struct instead of
period and budget
- improved code readability

Changes in v2:
- introduce rt_validate_params helper function to check period and budget

 xen/common/sched/rt.c | 37 ++++++++++++++++++++++++-------------
 1 file changed, 24 insertions(+), 13 deletions(-)

diff --git a/xen/common/sched/rt.c b/xen/common/sched/rt.c
index 7b1f64a779..c161bf7f78 100644
--- a/xen/common/sched/rt.c
+++ b/xen/common/sched/rt.c
@@ -1362,6 +1362,23 @@ out:
     unit_schedule_unlock_irq(lock, unit);
 }
=20
+static int
+rt_validate_params(struct xen_domctl_sched_rtds *rtds,
+                   s_time_t *period, s_time_t *budget)
+{
+    s_time_t p =3D MICROSECS(rtds->period);
+    s_time_t b =3D MICROSECS(rtds->budget);
+
+    if ( p > RTDS_MAX_PERIOD || b < RTDS_MIN_BUDGET ||
+         b > p || p < RTDS_MIN_PERIOD )
+        return -EINVAL;
+
+    *period =3D p;
+    *budget =3D b;
+
+    return 0;
+}
+
 /*
  * set/get each unit info of each domain
  */
@@ -1388,17 +1405,16 @@ rt_dom_cntl(
         op->u.rtds.budget =3D RTDS_DEFAULT_BUDGET / MICROSECS(1);
         break;
     case XEN_DOMCTL_SCHEDOP_putinfo:
-        if ( op->u.rtds.period =3D=3D 0 || op->u.rtds.budget =3D=3D 0 )
-        {
-            rc =3D -EINVAL;
+        rc =3D rt_validate_params(&op->u.rtds, &period, &budget);
+        if ( rc )
             break;
-        }
+
         spin_lock_irqsave(&prv->lock, flags);
         for_each_sched_unit ( d, unit )
         {
             svc =3D rt_unit(unit);
-            svc->period =3D MICROSECS(op->u.rtds.period); /* transfer to n=
anosec */
-            svc->budget =3D MICROSECS(op->u.rtds.budget);
+            svc->period =3D period;
+            svc->budget =3D budget;
         }
         spin_unlock_irqrestore(&prv->lock, flags);
         break;
@@ -1440,14 +1456,9 @@ rt_dom_cntl(
             }
             else
             {
-                period =3D MICROSECS(local_sched.u.rtds.period);
-                budget =3D MICROSECS(local_sched.u.rtds.budget);
-                if ( period > RTDS_MAX_PERIOD || budget < RTDS_MIN_BUDGET =
||
-                     budget > period || period < RTDS_MIN_PERIOD )
-                {
-                    rc =3D -EINVAL;
+                rc =3D rt_validate_params(&local_sched.u.rtds, &period, &b=
udget);
+                if ( rc )
                     break;
-                }
=20
                 spin_lock_irqsave(&prv->lock, flags);
                 svc =3D rt_unit(d->vcpu[local_sched.vcpuid]->sched_unit);
--=20
2.43.0

base-commit: a7bf8ff218ca05eb3674fdfd2817f6cff471e96a=


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 11:40:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 11:40:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265454.1556364 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w65Y3-0004x9-E4; Fri, 27 Mar 2026 11:40:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265454.1556364; Fri, 27 Mar 2026 11: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 1w65Y3-0004x2-BU; Fri, 27 Mar 2026 11:40:19 +0000
Received: by outflank-mailman (input) for mailman id 1265454;
 Fri, 27 Mar 2026 11:40:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w65Y2-0004ww-Fu
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 11:40:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w65Y1-006T14-Dw
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 12:40:17 +0100
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c66c93-e002-0a2a0a5209dd-0a2a4509bc4a-20
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 12:40:17 +0100
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c66ca1-e484-0a2a45090019-d155802cb938-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 12:40:17 +0100
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-48374014a77so24323705e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 04:40:17 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48722c9f0afsm161243095e9.10.2026.03.27.04.40.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 27 Mar 2026 04:40:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774611617; x=1775216417; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+u2maqohZDYF43Fj9MdkMeddSKVNfy5U1xhezuVooVE=;
        b=ZhU1H5BJsNL5GkdFgyIosf5ChvlZiCLqv8IvUYttgr/kIoL12qRqcbxXVu0SIIi4QZ
         lo1RveW0tq38PEg7HYGPSA3SqDeqQbSxzZwvcpggpT2xwPgC9Y7ThLsiikgcIUTLWUqQ
         hFVesZMS5aV4pzzlh27pxX+vqZ0WjK8qBOFaqWzFBcV74M2SVWD8y030yhWW0UhDjFeK
         ZTNGr/rDtNrdpEE5Mvhw/ZSe6kZYQj4kuVUxBKaBYkXfRtrK7RbbDsfJP1uzqp1VikVN
         XN/7V182QFxNLpvuBC8Xs46ov5ZAs6sgJLWZIF2C/gMhlza7AlMMNuTFjpS2RHw3+L4i
         GnMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774611617; x=1775216417;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+u2maqohZDYF43Fj9MdkMeddSKVNfy5U1xhezuVooVE=;
        b=dKi3lNfhX9mANs0wRcRR1R5F5fz3cOFzeCfHwPo3yppOYyLsfuMvpXyeyGuwPPHz/T
         +6aNLsWRZ33hTb9xWVJMDepkpLFRSrEMx5q1p2Gaa0LypZrHz3FwGFzcPUwAmeS9bgZb
         1YNS9fJWUMR1IubGlc6wB/3bYfJdHM+gPGOJdbmFfntfFBE+PbTsHd/kKQz5SVVlWfbR
         JUXIvC6TOxCEMYc/W80nskx4hnhV5kBC5QT1rId8O1MpSk9ZFDHBAX6vseo+J2ketkm9
         NpXxQutHsNtyY00zrnaqXbR4ZsyXHOLaj8Y+RwX9zLOKkwcy2ey40jdkBvqGhGqvDWBB
         fXYg==
X-Forwarded-Encrypted: i=1; AJvYcCUoNCtGgZEzn056YMmch/wbFbAjoWLZ1/A1tf3HeJ6MlkJ9ZjI3ay9q0nuJR+0dRbQctAuGDCcJ6Go=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyMIWoV0bK9qvB45LAB6hzFXCA+sfpyPaMe3OU2c9GjiOS2wfvJ
	Aa78fuGS+ONAaoxmsMABRFLq8Al7tAePzChhfSwhGMVRsZm7GkOVt7w8684nQ4uIBg==
X-Gm-Gg: ATEYQzyvQDCZ4Rqc8Ndok9mYKT3PsDyhk4Mx/+swNxs4SxB9PYkZSzHL6miF6BFr25j
	dGHQgIjvc0z4FEPGc1ddP7AkDJJcSvKQdnMTymJ0x3Xe469ALru4qM9kheT9ncyUNXlQaaGUkpz
	GOLjnf8MUaAt/eQw719ooAy5y6EPwDAt6t39khCgP0vB7FNoMQEpt6HBVXNARsMGQJm8yT+uwwc
	IUjhPfly+1kgohDFR+JP0XEVqZRX+9Z5ACcD/ZpYbar03w513QfZfWy2nDTnLodmVl+/EmLxAn1
	sr3sJzrQ3t4LMZyDvqOnin57vIwol8VqEa++inmu09L+YqtuU+UyWXw+wpmvim9vnJoRe7QlD9h
	oKiGw//DJ5qBnMew4PYPj1myqI+vLJjBVNqlu3+JxJ6kRkyEGQ7Qh5K48gbiEo+90RZIfMdEi1G
	WkoE3vfXq+lRo+LogmRfNwBV+brK6au8j2IDJyYhDTnsgEZ6zZDNFDh1IF4DcqcP0Nh8Bp5kG+Q
	G3//WTvidwQjQ4=
X-Received: by 2002:a05:600c:450a:b0:485:531d:28b9 with SMTP id 5b1f17b1804b1-48727d774e6mr33189135e9.14.1774611616538;
        Fri, 27 Mar 2026 04:40:16 -0700 (PDT)
Message-ID: <99938f35-bbca-4e68-a4ac-4a599e42eede@suse.com>
Date: Fri, 27 Mar 2026 12:40:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 3/5] arm/sysctl: Implement cpu hotplug ops
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1773307749.git.mykyta_poturai@epam.com>
 <206261ba0b60ebcff25e083c22d9e9b885645199.1773307749.git.mykyta_poturai@epam.com>
 <be38f4ce-48f8-459c-9bfc-caa60794a652@suse.com>
 <eb459343-12a2-4fc1-b26c-efe4fa636aa9@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: <eb459343-12a2-4fc1-b26c-efe4fa636aa9@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1774611617-63AA4A73-0535FF38/0/0
X-purgate-type: clean
X-purgate-size: 4605

On 27.03.2026 11:39, Mykyta Poturai wrote:
> On 3/23/26 13:09, Jan Beulich wrote:
>> On 12.03.2026 10:39, Mykyta Poturai wrote:
>>> --- a/xen/arch/x86/platform_hypercall.c
>>> +++ b/xen/arch/x86/platform_hypercall.c
>>> @@ -735,6 +735,12 @@ ret_t do_platform_op(
>>>       {
>>>           int cpu = op->u.cpu_ol.cpuid;
>>>   
>>> +        if ( !IS_ENABLED(CONFIG_CPU_HOTPLUG) )
>>> +        {
>>> +            ret = -EOPNOTSUPP;
>>> +            break;
>>> +        }
>>> +
>>>           ret = xsm_resource_plug_core(XSM_HOOK);
>>>           if ( ret )
>>>               break;
>>> @@ -761,6 +767,12 @@ ret_t do_platform_op(
>>>       {
>>>           int cpu = op->u.cpu_ol.cpuid;
>>>   
>>> +        if ( !IS_ENABLED(CONFIG_CPU_HOTPLUG) )
>>> +        {
>>> +            ret = -EOPNOTSUPP;
>>> +            break;
>>> +        }
>>> +
>>>           ret = xsm_resource_unplug_core(XSM_HOOK);
>>>           if ( ret )
>>>               break;
>>
>> I wonder whether on x86 this really should become an optional thing (and
>> if so, whether that wouldn't better be a separate change with proper
>> justification). See also the comment on common/Kconfig further down - by
>> the name of the option, and given the support status the change above may
>> be legitimate, but not some of the similar restrictions added elsewhere.
> 
> Maybe force it to be always on like x86 then? I don't really have a 
> justification for making it optional on x86, it just happened as side 
> effect of creating a config option.

Well, I would have asked for that if there wasn't a (presumed) use case for
making it optional - certification, where as much unused code as possible
(apparently) wants compiling out. You'll need to ask those doing prep work
for certification whether they'd be interested in it becoming optional.

>>> --- a/xen/common/sysctl.c
>>> +++ b/xen/common/sysctl.c
>>> @@ -483,6 +483,52 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
>>>               copyback = 1;
>>>           break;
>>>   
>>> +    case XEN_SYSCTL_cpu_hotplug:
>>> +    {
>>> +        unsigned int cpu = op->u.cpu_hotplug.cpu;
>>
>> I don't think this variable is very useful to keep. Instead use ...
>>
>>> +        unsigned int hp_op = op->u.cpu_hotplug.op;
>>> +        bool plug;
>>> +        long (*fn)(void *data);
>>> +        void *hcpu;
>>
>>          void *hcpu = _p(op->u.cpu_hotplug.op);
>>
>> right here, dropping the assignments further down.
>>
>>> +        ret = -EOPNOTSUPP;
>>> +        if ( !IS_ENABLED(CONFIG_CPU_HOTPLUG) )
>>> +            break;
>>> +
>>> +        switch ( hp_op )
>>> +        {
>>> +        case XEN_SYSCTL_CPU_HOTPLUG_ONLINE:
>>> +            plug = true;
>>> +            fn = cpu_up_helper;
>>> +            hcpu = _p(cpu);
>>> +            break;
>>> +
>>> +        case XEN_SYSCTL_CPU_HOTPLUG_OFFLINE:
>>> +            plug = false;
>>> +            fn = cpu_down_helper;
>>> +            hcpu = _p(cpu);
>>> +            break;
>>> +
>>> +        default:
>>> +            fn = NULL;
>>> +            break;
>>> +        }
>>> +
>>> +        if ( fn )
>>> +        {
>>> +            ret = plug ? xsm_resource_plug_core(XSM_HOOK)
>>> +                       : xsm_resource_unplug_core(XSM_HOOK);
>>> +
>>> +            if ( !ret )
>>> +                ret = continue_hypercall_on_cpu(0, fn, hcpu);
>>> +
>>> +            break;
>>> +        }
>>> +
>>> +        /* Use the arch handler for cases not handled here */
>>> +        fallthrough;
>>> +    }
>>> +
>>>       default:
>>>           ret = arch_do_sysctl(op, u_sysctl);
>>>           copyback = 0;
>>
>> This form of falling through may be a little risky, towards someone not
>> looking closely enough and inserting another case label immediately ahead
>> of the default one. While I don't think there's a really good solution to
>> this, please consider
>>
>>      }
>>          /* Use the arch handler for cases not handled above */
>>          fallthrough;
>>      default:
>>
>> instead.
>>
> 
> Just want to clarirfy if I got the idea. Is this what you meant?
> 
>      switch ( op->cmd )
>      {
>      ....
>      case XEN_SYSCTL_cpu_hotplug:
>      {
>      ....
>      }
> 
>          /* Use the arch handler for cases not handled here */
>          fallthrough;
>      default:
>          ret = arch_do_sysctl(op, u_sysctl);
>          copyback = 0;
>          break;
>      }

I can't spot anything different from what I wrote, so (presumably) yes.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 11:44:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 11:44:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265464.1556375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w65bm-0005dU-Tn; Fri, 27 Mar 2026 11:44:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265464.1556375; Fri, 27 Mar 2026 11: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 1w65bm-0005dN-Pu; Fri, 27 Mar 2026 11:44:10 +0000
Received: by outflank-mailman (input) for mailman id 1265464;
 Fri, 27 Mar 2026 11:44:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w65bm-0005dH-1Z
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 11:44:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w65bl-005qDP-Dy
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 12:44:09 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c66d72-2eae-0a2a0a5409dd-0a2a4507856e-30
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 12:44:08 +0100
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c66d88-fd74-0a2a45070019-d1558029cdaf-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 12:44:08 +0100
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-486fda2a389so16268135e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 04:44:08 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48722c65dc4sm96601185e9.3.2026.03.27.04.44.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 27 Mar 2026 04:44:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774611848; x=1775216648; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oxKrPsI2eDkIy3KL0s9SZz26jzr0u5XOd3U130luGgU=;
        b=Io1ORe+HOaLjYAeq8zWXVHFSK6Rs1OUctX9fawUT9LbS0NuJCgEadIHRypsrTMvknS
         HzC1lhjqh6FvwszDchkcNLa6oIE7nGWY2WkiXVoqYKHC2r/16VUvUwkhLlzNXsNiAv54
         W/ZiG8FA5x647wz6vVKZi73BUffh3FdMVttRavbgzpppwAQQzxoxhwCZvvZEEe3A+lyW
         BE1KUyNP9XXaJIhpayITKJ7XcmerVSJWEZA1m/EkH7Iau2YWuRuH6nFMdE3C8MwG9xsb
         cuGnhJkM9KluWEXwAleWzRqbtDmuItr6frP+D/TZVHtcZdlSWR92b23Skul10bxX6CRB
         PCLA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774611848; x=1775216648;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oxKrPsI2eDkIy3KL0s9SZz26jzr0u5XOd3U130luGgU=;
        b=Y2ZcCGRBfKYweTOV+b1knR1zqWRUrZFcMODQQ4qwFFLzuisjIwZBIK0ibbTVe89h0F
         LFpnAK4u3tahhBdZtYksLd520R+adBtxz1xMHy7z5m6LJxcJNo8QsDbb93ycUMrhFSZ4
         G2wLJ40vYXWa38ClHHeseqSFg7JQsvm1lrC4thecvYCuz6e8m32NoidbrO1AsU7lY+qp
         +3/lM7ACHR2fSuX8++Fos0q111v/ISOIet6KimYBDPkOsOij1XpyEyqkH72xJb5+HwMD
         e6DpkWRpsmkvjVnJKeiFBDvaxOpP6Td6OnIdIhii9IS+i0+TMufMXNGZhV3zaMleKxx8
         XdAg==
X-Forwarded-Encrypted: i=1; AJvYcCU3NGN0DW0uDO0eObEosJFn8sHnM0L0ZVStxtBBxB5VZI21y2brqgC/6GhbtflTib0S/TEqM0hzLQs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxxHHrqYcdoj3/4LACZl/t6DbsIr4vW0Inr20/kl7KQB3AnMONa
	W0ponBbfb9siOBB724EBj85FnKz361k0eQb0rWGtQztYA2W6e1feNZCCrDP92zwRoGokOtmXPNF
	zYcSE1A==
X-Gm-Gg: ATEYQzxpv8wMBkYyMhqM/AK9TLRS7uZBl7Iw//G1TNOkPU1o9GJrmcxbgB0rxbeHvfJ
	2qYASqSjeOwW2BGWe8xIhSpJ3KO8waJ678yAJ6nOd4cg6aObt1FD/Oq6aLOnl0/U1oged7Y2KEN
	hyJREI/mEyqyO/BhOvkwoQJ34XcoOXdXIbB+RQLhUBg0I54Kb3dUkb0fSSNJbIljD929ST66j7J
	j3cY3IDBbmv/wp29/m1725kKQdtS89GAOnYK62g3w6p8T9CZvcWES2gIHFksR0xXXKk+Dvs5Pj+
	J+Hsw8cy2wj4+a7ehIlpXnFVrVi36hib4hpvSAMDUTg9o24M/S8JNmptak8g5vBFGjgTmNvlbEZ
	T/t+BEqTcJ5+z+LQaUUzAu3ohQHWKt6vTulKA5R9/wDSVaiLdjCM/qxqFgcgf6WXlahqm6Hcbm4
	ovpaO3X77e4zvHkFgw/7S6/RwENCXbZt2Sb7CYkhhOcV728ScTXb+KP8SsszKQS98JePDOQyoN7
	zMhPwCZuKodPyj2JPlHR2r7KQ==
X-Received: by 2002:a05:600c:450a:b0:485:5981:1423 with SMTP id 5b1f17b1804b1-48727d67a16mr32560905e9.3.1774611848009;
        Fri, 27 Mar 2026 04:44:08 -0700 (PDT)
Message-ID: <c2fe5809-0e23-43c5-876b-6cc3a41e3d92@suse.com>
Date: Fri, 27 Mar 2026 12:44:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/sched: validate RTDS putinfo period and budget
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
Cc: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 Juergen Gross <jgross@suse.com>, Meng Xu <mengxu@cis.upenn.edu>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <06fbc96288c6aba60369914c2cdbc656ca32fcf8.1774611038.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: <06fbc96288c6aba60369914c2cdbc656ca32fcf8.1774611038.git.oleksii_moisieiev@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1774611848-4E6AF303-5CEA6736/0/0
X-purgate-type: clean
X-purgate-size: 1477

On 27.03.2026 12:31, Oleksii Moisieiev wrote:
> The RTDS domain-wide XEN_DOMCTL_SCHEDOP_putinfo path only checks for
> zero values before applying period and budget to all vCPUs in the
> domain.
> 
> This is weaker than the per-vCPU XEN_DOMCTL_SCHEDOP_putvcpuinfo path,
> which already rejects values below the minimum, above the maximum, and
> cases where budget exceeds period.
> 
> Use the same validation rules for putinfo as for putvcpuinfo, so
> invalid domain-wide updates are rejected with -EINVAL instead of being
> applied inconsistently.
> 
> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
> ---
> 
> Changes in v3:
> - changed rt_validate_params input to get struct instead of
> period and budget
> - improved code readability
> 
> Changes in v2:
> - introduce rt_validate_params helper function to check period and budget
> 
>  xen/common/sched/rt.c | 37 ++++++++++++++++++++++++-------------
>  1 file changed, 24 insertions(+), 13 deletions(-)
> 
> diff --git a/xen/common/sched/rt.c b/xen/common/sched/rt.c
> index 7b1f64a779..c161bf7f78 100644
> --- a/xen/common/sched/rt.c
> +++ b/xen/common/sched/rt.c
> @@ -1362,6 +1362,23 @@ out:
>      unit_schedule_unlock_irq(lock, unit);
>  }
>  
> +static int
> +rt_validate_params(struct xen_domctl_sched_rtds *rtds,

Since you only read from that struct, pointer-to-const please. Can likely
be adjusted while committing if no other need for a v4 arises.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 12:23:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 12:23:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265530.1556384 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w66Dn-0004Q5-4z; Fri, 27 Mar 2026 12:23:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265530.1556384; Fri, 27 Mar 2026 12:23:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w66Dn-0004Py-1O; Fri, 27 Mar 2026 12:23:27 +0000
Received: by outflank-mailman (input) for mailman id 1265530;
 Fri, 27 Mar 2026 12:23:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w66Dl-0004Pq-Jx
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 12:23:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w66Dj-002Vfq-CK
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 13:23:25 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c676b9-5cb7-0a2a0a5109dd-0a2a450acb0c-14
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 13:23:24 +0100
Received: from [40.107.209.63]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c676bb-1772-0a2a450a0019-286bd13f2ffd-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 13:23:24 +0100
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA2PR03MB5833.namprd03.prod.outlook.com (2603:10b6:806:114::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.23; Fri, 27 Mar
 2026 12:23:21 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9745.023; Fri, 27 Mar 2026
 12:23:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lDcxe0yhvHeM6sJJYBtYMhqQhHerZ60EJ9dTjZ3VOcEMnoB7WdmMW+4JyGJfF887auxxyquG/fyno6Iy+tzuIwbk+FrFPvTC7C6eKYl3bbpFb9jYaCIuERffbJ7K0gMPLRcGK5wyWNPIa3sBEIPGiF9+L+uedTW67sPY5SmS8L4KusO/AxSsiDiJFNikwHOsxaPYepQ/TxTwWF9cs7z+WIIVfszA7Vb6nuBngeUeOYFemr0j9muY+5HkS5xYwiXrQEoNlQ69UJJfrgYM8aJgtQ3F0lPyQu1ylQGqNKxHjJrc0dnBvVHWbKcR/fo2sZnfyTkP3rKw7UrsKm5zijnjAQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dsZnhq0sZwcOoKP17KmNt95ytMCuW07FZhhsS//8P9Y=;
 b=IRMpWaH4aYpsl1ebpwAjTRs161TLa8RYQ7sXDrBUzieq4rIcEHqMYmL4JBZKoDXbJI86+Ydty+9M/O+PXYKF3r1TOR6AsSXJI3oq4mZDGetVGNT/twszlaqvaHcLpNSEzxwmXw0AbBEam/BdihKz4e1KD/Sfe9W3YsSrPE7DyzLQja/WEfl1HYwEO8RXK/xrwnh3ZqCj3ljYgzcYDxs+8U2UowJKGtD0o3H5qH9iqt8Pke45Tfo173D4P55r5MQJwA31YZgpeInYRa+faq9MStCmIYrg2Jrm9e35o5XXCVQKMcqNsywAmlWaDcQ34VlHYFdv9utC19yrabaxXyuxpQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dsZnhq0sZwcOoKP17KmNt95ytMCuW07FZhhsS//8P9Y=;
 b=JtoNsJVze/U5fPs+CYcu7cxu8bSH4DeqZ1r8Fx6n7znalxuxktAHSxp30BfJ9deuawOi3XifV8D+quArWFSAv9/M3HAG5obw0qfEpeGO78Yq2MYr+94h5+HffEnkijDrtVUI2iqlNS5dBuEB4awgpkamqLy8HxKK7pE7lEKkhwQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <a7303981-ac39-4562-9899-205c281d3ea3@citrix.com>
Date: Fri, 27 Mar 2026 12:23:18 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>
Subject: Re: IOMMU faults after S3
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel <xen-devel@lists.xenproject.org>
References: <acZZmGXIJlmN3KGm@mail-itl>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <acZZmGXIJlmN3KGm@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0099.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2bc::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_|SA2PR03MB5833:EE_
X-MS-Office365-Filtering-Correlation-Id: 3eeadcb3-0043-4a28-1fee-08de8bfba28c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	AfTKaR3GBdSVygyXD663ra7cRl4BXWRJBEAQfmb0Sf6uFdifyTsSd5BA0tiz2wHuoOFuEiGoMKG1blsBiTOL82ASR6pMCUgyLCAMHejTNQ0tAG4qzsvQFEnAf9jkQsLBQU9lyjKysC8/beFCeiQRPQE6lU54KNg2AqPehph6mWQIUqDpJljgQnPND9ZQ4ZgnGy21+MwVEEFS/xexXOeH4N4FmmZ00R4WvZFqRDzZJDwp47k/BU0ur7QvcjyhcS/7d1Bs36gBVaVsyXrN+OfGMtdbNUHUMksAiCcdYCjzge9TOUOkB39aJfBfBGTorOSskGDL9iIkHVSmOpfKMKK/Q594cPrBoNkUoWamSlaCnqLyg5HYEvnr4rInUS9sOYH2qVFCEUNGz+n9bYt53sSGKYtOXVuHgD4UVdjIaWS1ZNgyvS6WPgOjX64njArcBFYBzp2U3+mfEl/JO+l3Yrz2w3XamtJkKyJXBb7wDzoWDsB+0q2LEg4RdkaSJMnbUyakMnon1HBUP8AEeW7v4/SVWR5RwijEHOLC7KLASGNPYc0w+QzwLEBUuEEl1WIBO0gz3T3Mh5oLEAh4H1yqoV1RPs6MylC+Gz+TFPQ+Hq6ib3Qw+63ZFgQeN/urcTw5xaCTA8I4ZQ6AbHZlky4S9PJT98yitq0no0/5WHDdr0WKEdiGywbsetQVrnr85JvasFW/bF2bN16f+LB1zJ+hvalwsUiIDJnFGKdYMwNd72nG/VF6QywqZGkh5mYSx26houEa
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Y0ErRTZFM0IxZkprb1pnOWR5Zkp4T3YrTFUxR1hteGovNU03U0RZWmw3WUZH?=
 =?utf-8?B?dGZWZmZKUW5JK1dOcWJwd3hJOHB3Z0JBTUFvUHQ2NTdYWENRSEVrVkxneUp5?=
 =?utf-8?B?UngwbDFNNHZEQ05ydzVyRG10ZE5veXB5UGtRM3RMZDhEMTg3T1BtOUJLb085?=
 =?utf-8?B?Y0lqZ1ExSUtpMzhOdzFtR251V2xLVnZNN2Zzb28wdER0VEJicmN6cE91VUJL?=
 =?utf-8?B?b1duNXl1RHRDUTRWcHdzT0VjdC9EUWtPMDBrREF6K1htRWU4NG81dkt3dEJz?=
 =?utf-8?B?VzJHWENTV3M3QUVCVlhVMmhBcXBPSS9XQlNzcTU2bXFtQXZnL2tUaVJPb1I0?=
 =?utf-8?B?Z3R5MiszVW5yTWtXdkpsOGdaZDlhcEJ3Y2U1dG5aY0hYYVRjMi81N2dqTmdS?=
 =?utf-8?B?TW1ZblBSUkZ4dFJ5TUc2QlE1M0pqcGtFU2k5QnVqSWxkZHJsNkJXSVIySlJX?=
 =?utf-8?B?VkM3STNtZHhSdkV6dHpkVnRiUitPdmkxY1JkTmpzRStKMGJwYkx3UDQ2L0V6?=
 =?utf-8?B?MCs3WDBJc1NWUHBkQ2M3eTZpOUh4TEJDRGF4UzEyYXlUcldzN2xsRG5oZU93?=
 =?utf-8?B?M0IxNGNmVnVWR2R5blFRQUZpQmxZVnU3T0JNRzIrQlFSYWM2elFhQnVSYVZF?=
 =?utf-8?B?R3ZkWXlDbHJRVnRoNGIzTURRYjh1S3FyYTFDdFhmYk0ycnNZbjFaTS9mWjd3?=
 =?utf-8?B?V0E1VFBNZ3lYVWhsYlh2M3V6MHJLVEpVc2xOK1JnNzRuMWs5ZXc0aThlMXpi?=
 =?utf-8?B?Y3o5a0h4ak5CU0Jna1Fvc0hpZlBPUkk3YzYwNnZscFk0eWFZN3hzQnBHZDQ2?=
 =?utf-8?B?ZkdJbGxMUkV0VkF1azloeW5aUHRld3JKRTFoNGE4aHFCOFh5UGFWU0pCSzZw?=
 =?utf-8?B?ZmRORmVDRERZRFg1Z3FJNWVJeEkxdWJXY2tjQVV6dDZnUjRYdUhxN0IrMjYv?=
 =?utf-8?B?ZVhJMklhdHB6NkpNS1Y2L09HbUUzNmJGRW1xc0FvZVQyaU90YWxqOVZwZTVw?=
 =?utf-8?B?ak5rajcxRm1tVlczNUtMeEN1Qzl2UTluaEV1dmFWbFhSL3h3Z2IyMnJIdFRS?=
 =?utf-8?B?T1NtQ2hUQitxQVRDaHk2bGRvS3pPbmlGR0hObVloZmVFVVRUMFlXc1R5emhB?=
 =?utf-8?B?ckorSFVOK25xNnJ1cldkQnpOL1plZmVIcjlrNjRsQW80L1R2WTFWeXk1U21C?=
 =?utf-8?B?ejhad1lqZ09Pb3cvTEYyb1k1aDFISGM0NjhPaGJHODlLL1loR1NNZ1JQanB0?=
 =?utf-8?B?bXFNRjVBRldBUWxPL0lOckpMekZnbTE4SHM1S01vRGFVNXRaUUlHM1dOQ01N?=
 =?utf-8?B?ZWEydXBmaldaMHYwbHR0VC9hVTFDMzd3NXRlTEY5bUhINDZwWEJ4K2RSamQ3?=
 =?utf-8?B?dHlMWWZXdUlucnl4SzZ5MFI0SXg3aEN1a3NsdC9FRDBLSVlIRXlsbUFKblJt?=
 =?utf-8?B?MzBUMVVhbEVEMlNNbkpNYU9UeW9lTEFhOU9QV1hRRkNBanpKSEtvQ0czQmhj?=
 =?utf-8?B?N1pZT0tRRStVWWJuVGdXWTFDemR3K0x2MUg2ZFJmaU9jREU0VTFDL1V6Vndx?=
 =?utf-8?B?QmdxUy9DeityYnVYVW5BUUR0TVNEcnBTT1poN0R3WVcxK3lDMkU4YStyZ2lL?=
 =?utf-8?B?SFlzVHZRRUV1WTEyT2NaUmluUWZtNW13bVNiY3VLZm9ISWZYell0MVM2NVdP?=
 =?utf-8?B?SDJCOHlaSDRBMXVqQlMyVGk5WENxeUp6RUlIVWpCS1hCeWF1RHVlTXpsczVo?=
 =?utf-8?B?dVFEODBIYkNFOU1LdVE0V2NxZndoUmp6akVQYjJqZ2VFRTE0QTkwUXlDYnRC?=
 =?utf-8?B?TGg2ZEluWXpqb05RcFNoYTgvRmlQSlRCWkRBZytpMTlGcktkVlluaEc2ZWUw?=
 =?utf-8?B?K1BwaEFYS3RQc0pvVkljUEhHNTlGWW1SUlE2M3FQeG9EYUQvWHNEMVlMYlNL?=
 =?utf-8?B?SEp0ZUU5SkNpVTFMdmJiUzRFK1ZVOVdCbEQ1bnZHa1d5UFh5bFRFWHlDVnZy?=
 =?utf-8?B?dDE2WWVSSGtQK01mcVRoTEdIK1gxL3JodFZqRXdOVjR6N0VTUXZINlA0Nkkz?=
 =?utf-8?B?d3JZUnNnSlgrbXROL2NiWHA3NVJJS1RFaUc4dGVObkpJZ3VFTytoU1RHcUNh?=
 =?utf-8?B?aU1WbFRrdXRBU3FjcGNHaWVRRDhsWDBNY3NkTTZnYVZHeUpZYWdsQnJzdXI3?=
 =?utf-8?B?L1lna3pzU04wZHFuMjg2Umx6TGlWa2M2TlpPeVZUa1RQMlZ2Z0hLbnJRQnIy?=
 =?utf-8?B?RHpFSytmWUdGa3BmNnF4WW00ZFBuVlgzM3lZb2FUTUpBQTNTUkx6TW1MeTJE?=
 =?utf-8?B?ajd1Wnhxamp6RngvQU5OLzc2STRrNVVreFFUZmtJd093eFlaVHE5V25pOFp5?=
 =?utf-8?Q?/Sp2ov+aoHWRAPP8=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3eeadcb3-0043-4a28-1fee-08de8bfba28c
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 12:23:21.4058
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: SVjJ64w62IzZXrTCRgbcly1bm4pgWqQsL8/Fs4mcKmA+6SfpwPIAwk5h9URrJ38QUyVkoPyFP/2cleA57Q4sAbR/Tla+rgNb1pSPF3SEWyY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5833
X-purgate-ID: tlsNG-4011c0/1774614204-BF096900-CC7185DA/0/0
X-purgate-type: clean
X-purgate-size: 1447

On 27/03/2026 10:19 am, Marek Marczykowski-Górecki wrote:
> Hi,
>
> I noticed that on some systems, there are a lot of IOMMU faults after
> S3. I can see it also on a laptop with MTL, but it affects also the ADL
> gitlab runner:
>
>     https://gitlab.com/xen-project/hardware/xen/-/jobs/13661033722
>     (XEN) [   37.201160] [VT-D]DMAR:[DMA Write] Request device [0000:00:1e.6] fault addr 0
>     (XEN) [   37.201164] [VT-D]DMAR: reason 02 - Present bit in context entry is clear
>     (XEN) [   37.202332] [VT-D]DMAR:[DMA Write] Request device [0000:00:1e.6] fault addr 0
>     (XEN) [   37.202339] [VT-D]DMAR: reason 02 - Present bit in context entry is clear
>
> Interestingly, the 0000:00:1e.6 device is not even listed by lspci.

Ah.  HPETs and IO-APICs get assigned an otherwise unused PCI address for
the purposes of interrupt remapping.

acpi$ grep -A7 HPET dmar.dsl 
[060h 0096   1]            Device Scope Type : 04 [Message-capable HPET Device]
[061h 0097   1]                 Entry Length : 08
[062h 0098   2]                     Reserved : 0000
[064h 0100   1]               Enumeration ID : 00
[065h 0101   1]               PCI Bus Number : 00

[066h 0102   2]                     PCI Path : 1E,06


This is information carried in the DMAR / IVRS ACPI tables, and it seems
to be the same on a random Intel system of mine.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 12:23:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 12:23:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265537.1556392 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w66EH-0004q5-C7; Fri, 27 Mar 2026 12:23:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265537.1556392; Fri, 27 Mar 2026 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 1w66EH-0004px-8G; Fri, 27 Mar 2026 12:23:57 +0000
Received: by outflank-mailman (input) for mailman id 1265537;
 Fri, 27 Mar 2026 12:23:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Oleksandr_Tyshchenko@epam.com>) id 1w66EF-0004pd-M3
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 12:23:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w66ED-002Vx6-G3
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 13:23:55 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Oleksandr_Tyshchenko@epam.com>)
 id 69c676c8-2eae-0a2a0a5409dd-0a2a45019b56-30
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 13:23:54 +0100
Received: from [52.101.69.126]
 (helo=AM0PR83CU005.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Oleksandr_Tyshchenko@epam.com>)
 id 69c676da-6400-0a2a45010019-3465457e30ac-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 13:23:54 +0100
Received: from AM4PR03MB11152.eurprd03.prod.outlook.com
 (2603:10a6:20b:6cc::22) by VI2PR03MB10690.eurprd03.prod.outlook.com
 (2603:10a6:800:27a::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Fri, 27 Mar
 2026 12:23:52 +0000
Received: from AM4PR03MB11152.eurprd03.prod.outlook.com
 ([fe80::bbbf:5b9b:1043:4510]) by AM4PR03MB11152.eurprd03.prod.outlook.com
 ([fe80::bbbf:5b9b:1043:4510%5]) with mapi id 15.20.9745.019; Fri, 27 Mar 2026
 12:23:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ns6VKo4Qa4zt5n2ciNJEI2Aedd4e5Ttyg089tvjX+LKT5C2GAg9ArM5ZkWIaSCpGRvA6UrC4Sh51XtUJD3ngorwq4VCjwVcAhUmOQmU3smP7wDesUJD4iAB8szyhMeBfc/vi0aPnbTI6fZeUcRd6J8Fdpb8oAQh9NWzgWj94TuEnpQNcsM8BXprJDjMdPXxXcY56QBnonps0jNyh+k7OVsUailPOzOM8DYF4NYzrvx7LlOidcWMSpRUHMs4vVLePiduu9HnfY3qM6eVZ5GrwjM3JR4G24wkMoYryJFazVZ4jkeyQ+xThVzhIHAwWOzvWXL+XCMQQLzHYhLDWDb9vkw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tRi63K1VTk+7L+b9SJ6aDUmJBiPrKSQmdvGIsQImC14=;
 b=oAdR+qjblF0LkqgVeB6v7Okkjd1QJQK4r8vnPpVZqA50JxpZ4h5Vin9Mp6B+Tlgowm+2gqKotA80zAncuFdevqdestw/J6wC6zf96hVOYa6Pc+1mKLvX2W3sbzyYbNteyhKufPvGtbxC477T+iS9o02/eGGMqM1inc2SP8GjNkD039LKFQY23e4Hm/LHO3qmV9ZLPSaAGSwi/8ZHjz5GxyW1Fj7p5iRasrdY3fqUZG3v5vcpGGm9oDHIQdxDCgNAwJCLRLPLZ7ZSJ8b0I5092N+BAusKRwYD3cnVcDHC7taWnKrfzZ5+eCzIb+pz40BgunL3gzOizVDgTV4twWfBSw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tRi63K1VTk+7L+b9SJ6aDUmJBiPrKSQmdvGIsQImC14=;
 b=tb0ew6JUXU9M2LMrz2LrvxqRx6FG3d+Ixgc/uStFufNoNNCJUrhjZdTFyWIEACseAcj7W2HHgS37Pva74MdUemPIu5OH6lIRDd7VaIZ4ceG4vwXMKdRJXA4aMWj0xSsHkCFKynin2F6lXrJtlDPh8y0YBdRBf4nmW6zBuwULzM2/Ng1bNQDNlnnpOyaN8P3ujJz/RwTIDlfjzylRu45kSWfb0SAORRWlZuB/Qn0ffiA5Tok71GqPzI375BlerkGPmrFbjDJIyG/yFHJ9dMaLvEes7XZlQC50IR2zJ9e4uQSqClDDKggbu8Fq5WrqQqF3sHoW8GoSx6UcAXYgWvWOVg==
From: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
To: "Orzel, Michal" <michal.orzel@amd.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>
Subject: Re: [PATCH] xen/arm: Increase DOM0_FDT_EXTRA_SIZE to support max
 reserved memory banks
Thread-Topic: [PATCH] xen/arm: Increase DOM0_FDT_EXTRA_SIZE to support max
 reserved memory banks
Thread-Index: AQHcvSKiuRz6O/EU8kCzrBnRPjf187XBBxoAgAAlNICAANCdgIAAUd4A
Date: Fri, 27 Mar 2026 12:23:52 +0000
Message-ID: <89782bb0-d910-49b8-9a7d-83c3cf38d442@epam.com>
References: <20260326131535.662466-1-oleksandr_tyshchenko@epam.com>
 <29769bd9-8410-417b-9ad8-84131956db57@amd.com>
 <7d52cf29-c0bb-4e39-ae10-2b43f3e8e921@epam.com>
 <618e3227-10c7-46e4-9328-3d7d981fddfa@amd.com>
In-Reply-To: <618e3227-10c7-46e4-9328-3d7d981fddfa@amd.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: AM4PR03MB11152:EE_|VI2PR03MB10690:EE_
x-ms-office365-filtering-correlation-id: baf4de94-ddb8-4464-2a53-08de8bfbb4eb
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|42112799006|376014|1800799024|38070700021|22082099003|56012099003|18002099003;
x-microsoft-antispam-message-info:
 ubTNKAttg7IP/Q3tXa+YxKzqHo+yr1lx4YqLsRDrZ/i0IzyVBnsA1d/g1OVD6974pEIwEryarp6CV4vQFHdxcoNlwH6PWfZMJ1pW+hQkPLpRV2pqOEflrleQsiGZ3LKII3pvnQmV+8/bDJqZN76TjByu/yt+KX9VebhjDz35MBHVaq8FkWhSOuFwBZNfOZCQUPQ1ru1KXXNzWC8bCIg7mFECsGxntu/xZR8dpinAnTGJDuTZXVhwOfpnyQkBLTYfdcUOckJuUCgJ6gEOdjKlkpeSygw9sc9YbUpuFcX2Oa5F5jYeNFzfU6abp6jNGBLmv4kpYc3058FyjJe6h1gPik18K+n2I2WGHt8NOR1l46wKHvSvFjiRW+vBGG8Bw2/V2d+HiJUI0A4R29JWz2IWfmRMR4rZiidq5AYq3wE5smnoz/N8o590Cj5v02aU1A3CiAWpUS314CQ7ev1RYScmFIXIDXYdBZt85+Ny8aD2FNoROckkeoQZDpTM1j6LjPTDhBYOFYaZGVuPElxK+DwB6rsBhT/mF9u5JOqj19nDnmeoMs2a7/VuTa1BujPYR60IEr/sB31qP/ql6nq5/qjnxazPN3qjONrtkPoW9kb2YJCS4+VseKI/SOmm+tb6RbDATYljJgl0WgQ5qT13gWY0JTHY1Ek+JVy4lYMWzKGoCYaZVBpm1bBbGP0uCVunWRXZKbm8yt1QTKXJxwR0NAZjHDptOM5OZtidVuMZVUfwJ3nsRgFeeyr+1aYftwUPADxk+OVjinlemZMvsD1ZlS/4//UwDRBJ9PX3AqfUtCgP0U0=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM4PR03MB11152.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(42112799006)(376014)(1800799024)(38070700021)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?RjA4bmpOUW1Gc1pGUXpwcDl4TUFuNjlhN09rRVA1aDN4dlRwUko4cHVEcWtz?=
 =?utf-8?B?c2ZqOWw2SnZTbGpSWWkrS1FCRlpxN2ZZSnpCbVNOaThNUWY1K2ZaUGRqeGZ3?=
 =?utf-8?B?cXF0WURRWm9EZTcvMXBrQ1dKZXp0bzRhTHI4cko5L215ZGdwY3BHMWJYYjY4?=
 =?utf-8?B?V3NlY0JtRVVMeDJ1SmlwckhhN0h4aGJNQmR6NWZLMVJUdW5IM2g0SXNHQmls?=
 =?utf-8?B?NGhXZjRDRnBqQVI3UUpZRzNDcUI0Wm13bWdaUFlWbHMwazYyOWZJeDJXdUYx?=
 =?utf-8?B?VVRSdVVmTWR3VVNPYmhVNy9xSjE2TEg3bVg0dzNIOHlGaFBiQkFieWFZR1Jj?=
 =?utf-8?B?NkhMbWxGeHB4VVlISWdSMTRYUVB1UmpkSHhubkRHVFYyQUpTekNKMklHNmIx?=
 =?utf-8?B?aU5ZUitaOXRIMGMxUlVabkNCRE51QzdNRmo4MFJlYVd6VmdYa0Y3Vk9aT3V2?=
 =?utf-8?B?QlZ1UnE0NGV1NjFxS0JaL0FXNzNxQkZuRVN1N1ZPbjJIVy9wQ09OVjFud3Z5?=
 =?utf-8?B?KzBmcXQrZXljWFdMM1VRVThsdC85ZTJLSTJKQ2dkRWJwR1dRK1lld2VGUStw?=
 =?utf-8?B?QUlGcTlKa2ZvMWhMZFlNRlNpbTM4NnQ5OXJDNnpsUmFJdlM2VGpia3JIajMv?=
 =?utf-8?B?QTZiUjRMbjhoazZIeUE3bGcza0FwR2VkczdXc0pnOUdXcUtxd3NuZU13ZGtv?=
 =?utf-8?B?RWtFTmNtNjBSZGhRelA3eFFxd1dlWENNeW5TOEJueFV4VTlxM0JEYzVHL0hl?=
 =?utf-8?B?KzRIeGxaSm9MVTdweEZ1VldKU3Jxdzhqb2NNUEdGeGJWODNiMm44UGpua2l2?=
 =?utf-8?B?dy9DUDBUbEZWOUdaNFQ0bWNCaUZqZ3EyV0ZQWjlvRDU1YWttc3FPeTNYTm92?=
 =?utf-8?B?akJ0VFVPc3NjMEpyRjRLVFFSUk5zb0ptQzRnUkEzS2E0T284b0cxRUZNSlJL?=
 =?utf-8?B?ZHJWU3B3aXQycFpEaDhLM0FTeEQzbHpWN3hZa1hyQms0eHFCczArM2NmajA2?=
 =?utf-8?B?dUdaMlQybzZQYjB5TFJYclJmYTNQQUZJM3VqclUzTGFTb1BONncvZ3VOaFNr?=
 =?utf-8?B?Vk1ta3IzS2JkeTlHd09mM2o2TURwNEZMZjJLeFBqWUNCVXgzQlpQbVQycWFM?=
 =?utf-8?B?OFU2bjRSRUVDajBlV2laVXFtN2kxYy83RHhPbzdWMTdiaXpyTVh2NUpCSTVO?=
 =?utf-8?B?M2FudE05YVVENllpMGhwN21kMmplWEtWa0Fqd2QyWXpMOTdtN2V1aU9neHNj?=
 =?utf-8?B?RWE3SlBlMkdjWXMwNHJPejRKd3BEc0tmdUhjWEhxc0FpOTlnSEdmdHMybzNQ?=
 =?utf-8?B?ZTFmYnVDUXJmbEV6cVlLbkc3cWFaMjg1MVlPY2RoMnJkZnljc1E3YWROaFhy?=
 =?utf-8?B?K2pGaGwxQXdaOVJOOGZjdWVObngwVU93RWsxOUt2bHZjZVhmV1hQeFN3aDUw?=
 =?utf-8?B?WUFxdVJtTDFOb1g1WVNVZEljZnorMGFxVzZqYmdlMjMzdjhlUDZCMFIwdVVk?=
 =?utf-8?B?dnN2WEFrMDdqRC9kdUxzUUxxZjU4VmljLzNOL3oyLzVEWU1rNnhxWXlPdGhJ?=
 =?utf-8?B?ZnJtNnhESWt0TmFmWUlwTHE5ZU9OV2x1RTl4N3k1emhwbzFzOEZKY0dkNnJS?=
 =?utf-8?B?NEk1TUVsV2VHdUtkN096WldUd0l2Y0E0NmRYY2ZCUWNPNnpNMUl4d1dJd1Z4?=
 =?utf-8?B?bWdpb2pyRGlDZmpRT1A4R1hTdWJIdnVLZDJ3ajM0bG80K2tpd2JERVF6U1B2?=
 =?utf-8?B?R1NOckpmcFhwcllEdHB4YVpGVnhNRDUvZXM0WnRYME1aNWRyeDFPbGt0MWlk?=
 =?utf-8?B?K0J4ZWZJMFNDanRmaU1oQzJwb2VaWko1aHpyZ0pPem1MTVE5NWo3RlNCdTFn?=
 =?utf-8?B?akZkWU4wWTNFS3gxS2wwNm9WaGo4ZlZlc0d5WG9UZk9nRHJSTUlubC9sVk5a?=
 =?utf-8?B?a1VLRDZ1Tk5lcE1MS3BxSlJPSmhhYmlkQjBEdkJGY1UzL1hVRHhVVjNtVGVu?=
 =?utf-8?B?RlhrTG43MjkvRkhxblpYM1NRTEtCeGtoTFdrTFNBRHRCS28vRkswNDlLSS9B?=
 =?utf-8?B?N3h3bVFiVWZBeTlINXJNbUlxMmJpcytvS2pMRjkrMjdiUHJKRkM3d3dEZTEy?=
 =?utf-8?B?dkhRd1l3bHhsbmdSVCtTRjVwQkZ6R2xxVnJZazFLM09VM0FVMFFhd2x1anYx?=
 =?utf-8?B?RHhURWMrMkVrazlLRW93R0RQMXIvWVQxTlY1NU1oSlZQVG0yaGNZSWF2Vm9I?=
 =?utf-8?B?ZFpFUUNMRTBLdDZmMWp6TEp0UVNkbkNUSVNtZ2hhWnJVNHBZVHB2OUkyNVdp?=
 =?utf-8?B?aEdsRURwVUZLWml4OUFmaUNxdTRhZWM4TmM0YW04Q0FybHk3alFoQlpQMW5C?=
 =?utf-8?Q?JvseheHACaB60MsJu7hpHvEh6+5hhm0RR4rCA?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <0D6D582A68987E4D8168716F7CC1BC37@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: AM4PR03MB11152.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: baf4de94-ddb8-4464-2a53-08de8bfbb4eb
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Mar 2026 12:23:52.1481
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: IhG7BDeLrKpNC/Tp8uBP4OF59KIyAhktlAxZbAKiP397c5oRvQxYir9ORqQO3IjbCAerIDUzVCGj9tXmcdD6Xrao9dKg8ZbD/EAqDH9xkNc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR03MB10690
X-purgate-ID: tlsNG-d62444/1774614234-8E0F9DF3-3F59934C/0/0
X-purgate-type: clean
X-purgate-size: 12144

DQoNCk9uIDMvMjcvMjYgMDk6MzAsIE9yemVsLCBNaWNoYWwgd3JvdGU6DQoNCkhlbGxvIE1pY2hh
bA0KDQo+IA0KPiANCj4gT24gMjYvMDMvMjAyNiAyMDowMywgT2xla3NhbmRyIFR5c2hjaGVua28g
d3JvdGU6DQo+Pg0KPj4NCj4+IE9uIDMvMjYvMjYgMTg6NTAsIE9yemVsLCBNaWNoYWwgd3JvdGU6
DQo+Pg0KPj4gSGVsbG8gTWljaGFsDQo+Pg0KPj4+DQo+Pj4NCj4+PiBPbiAyNi8wMy8yMDI2IDE0
OjE1LCBPbGVrc2FuZHIgVHlzaGNoZW5rbyB3cm90ZToNCj4+Pj4gWGVuIGZhaWxzIHRvIGNvbnN0
cnVjdCB0aGUgaGFyZHdhcmUgZG9tYWluJ3MgZGV2aWNlIHRyZWUgd2l0aA0KPj4+PiBGRFRfRVJS
X05PU1BBQ0UgKC0zKSB3aGVuIHRoZSBob3N0IG1lbW9yeSBtYXAgaXMgaGlnaGx5IGZyYWdtZW50
ZWQNCj4+Pj4gKGUuZy4sIG51bWVyb3VzIHJlc2VydmVkIG1lbW9yeSByZWdpb25zKS4NCj4+Pj4N
Cj4+Pj4gVGhpcyBvY2N1cnMgYmVjYXVzZSBET00wX0ZEVF9FWFRSQV9TSVpFIHVuZGVyZXN0aW1h
dGVzIHRoZSBzcGFjZQ0KPj4+PiByZXF1aXJlZCBmb3IgdGhlIGdlbmVyYXRlZCBleHRyYSAvbWVt
b3J5IG5vZGUuIG1ha2VfbWVtb3J5X25vZGUoKQ0KPj4+IFdoZXJlIGRvZXMgdGhpcyBleHRyYSAv
bWVtb3J5IG5vZGUgY29tZSBmcm9tPyBJZiB0aGlzIGlzIGZvciBub3JtYWwgcmVzZXJ2ZWQNCj4+
PiBtZW1vcnkgcmVnaW9ucywgdGhleSBzaG91bGQgYmUgcHJlc2VudCBpbiB0aGUgaG9zdCBkdGIg
YW5kIHRoZXJlZm9yZSBhY2NvdW50ZWQNCj4+PiBieSBmZHRfdG90YWxzaXplICh0aGUgaG9zdCBk
dGIgc2hvdWxkIGhhdmUgcmVzZXJ2ZWQgcmVnaW9ucyBkZXNjcmliZWQgaW4gL21lbW9yeQ0KPj4+
IGFuZCAvcmVzZXJ2ZWQtbWVtb3J5LiBBcmUgeW91IHRyeWluZyB0byBhY2NvdW50IGZvciBzdGF0
aWMgc2htIHJlZ2lvbnM/DQo+Pg0KPj4NCj4+IEkgbWlnaHQgaGF2ZSBtaXN1bmRlcnN0b29kIHNv
bWV0aGluZywgYnV0IGhlcmUgaXMgbXkgYW5hbHlzaXM6DQo+Pg0KPj4gVGhlIGV4dHJhIC9tZW1v
cnkgbm9kZSBpcyBnZW5lcmF0ZWQgYnkgWGVuIGl0c2VsZiBpbiBoYW5kbGVfbm9kZSgpIC0+DQo+
PiBtYWtlX21lbW9yeV9ub2RlKCkgKHBsZWFzZSByZWZlciB0byB0aGUgaWYgKCByZXNlcnZlZF9t
ZW0tPm5yX2JhbmtzID4gMA0KPj4gKSBjaGVjaykuDQo+Pg0KPj4gRXZlbiB0aG91Z2ggdGhlIG5v
cm1hbCByZXNlcnZlZCBtZW1vcnkgcmVnaW9ucyBhcmUgcHJlc2VudCBpbiB0aGUgaG9zdA0KPj4g
RFRCIChhbmQgdGh1cyBhY2NvdW50ZWQgZm9yIGluIGZkdF90b3RhbHNpemUpLCBYZW4gZ2VuZXJh
dGVzIGEgbmV3DQo+PiAvbWVtb3J5IG5vZGUgc3BlY2lmaWNhbGx5IGZvciB0aGUgaGFyZHdhcmUg
ZG9tYWluIHRvIGRlc2NyaWJlIHRoZXNlDQo+PiByZWdpb25zIGFzIHJlc2VydmVkIGJ1dCBwcmVz
ZW50IGluIHRoZSBtZW1vcnkgbWFwLiBBbmQgc2luY2UgdGhpcyBub2RlDQo+PiBpcyBnZW5lcmF0
ZWQgYXQgcnVudGltZSAoaXQgaXMgbm90IGEgZGlyZWN0IGNvcHkgZnJvbSB0aGUgaG9zdCBEVEIp
LA0KPj4gaXRzIHNpemUgbXVzdCBiZSBjb3ZlcmVkIGJ5IERPTTBfRkRUX0VYVFJBX1NJWkUuDQo+
IFllcywgYnV0IHRoZSBvcmlnaW5hbCBEVEIgc2hvdWxkIGFsc28gaGF2ZSB0aGVzZSByZXNlcnZl
ZCByZWdpb25zIGRlc2NyaWJlZCBpbg0KPiAvbWVtb3J5IG5vZGVzLCB0aHVzIHRha2luZyB1cCBz
b21lIHNwYWNlIHRoYXQgaXMgYWxyZWFkeSBhY2NvdW50ZWQgaW4NCj4gZmR0X3RvdGFsc2l6ZS4g
QXJlIHlvdSB0cnlpbmcgdG8gc2F5IHRoYXQgaW4gaG9zdCBEVEIsIHRoZXNlIHJlc2VydmVkIHJh
bmdlcyBmaXQNCj4gbmljZWx5IGludG8gZS5nLiBhIHNpbmdsZSAvbWVtb3J5IG5vZGUgcmFuZ2Ug
KGkuZS4gYSBzaW5nbGUgcmVnIHBhaXIgY292ZXJpbmcNCj4gbW9zdCBvZiB0aGUgUkFNKT8NCg0K
eWVzDQoNCg0KICBJIGNhbiBzZWUgdGhhdCBpdCBtaWdodCBiZSBwb3NzaWJsZSBidXQgdGhlIGNv
bW1pdCBtc2cgbmVlZHMNCj4gdG8gYmUgY2xlYXIgYWJvdXQgaXQuIEFzIG9mIG5vdywgaXQgcmVh
ZHMgYXMgaWYgdGhlIHByb2JsZW0gb2NjdXJlZCBhbHdheXMgd2hlbg0KPiB0aGVyZSBhcmUgbXVs
dGlwbGUgcmVzZXJ2ZWQgbWVtb3J5IHJlZ2lvbnMuIFRoYXQncyBub3QgdHJ1ZSBpZiBhIGhvc3Qg
RFRCDQo+IGdlbmVyYXRlcyBvbmUgL21lbW9yeSBwZXIgb25lIC9yZXNlcnZlZC4NCg0KWWVzLCB5
b3UgYXJlIGNvcnJlY3QgdGhhdCB0aGUgdG90YWwgc2l6ZSBkZXBlbmRzIG9uIGhvdyB0aGUgaG9z
dCBEVEIgaXMgDQpzdHJ1Y3R1cmVkIGNvbXBhcmVkIHRvIGhvdyBYZW4gcmVnZW5lcmF0ZXMgaXQg
YXQgcnVudGltZS4gU28sIHRoZSBpc3N1ZSANCmNhbiBhcmlzZSBpZiBob3N0IERUQiByZXByZXNl
bnRzIFJBTSB1c2luZyBhIHNpbmdsZSwgbGFyZ2UgcmVnIGVudHJ5IG9yIA0KYSBmZXcgZW50cmll
cy4NCg0KKioqDQoNCkkgd2lsbCB1cGRhdGUgdGhlIGNvbW1pdCBtZXNzYWdlIHRvIGNsYXJpZnkg
dGhhdCwgc29tZXRoaW5nIGxpa2UgYmVsb3c6DQoNClhlbiBmYWlscyB0byBjb25zdHJ1Y3QgdGhl
IGhhcmR3YXJlIGRvbWFpbidzIGRldmljZSB0cmVlIHdpdGgNCkZEVF9FUlJfTk9TUEFDRSAoLTMp
IHdoZW4gdGhlIGhvc3QgbWVtb3J5IG1hcCBpcyBoaWdobHkgZnJhZ21lbnRlZA0KKGUuZy4sIG51
bWVyb3VzIHJlc2VydmVkIG1lbW9yeSByZWdpb25zKSBhbmQgdGhlIGhvc3QgRFRCIHJlcHJlc2Vu
dHMNClJBTSBjb21wYWN0bHkgKGUuZy4sIGEgc2luZ2xlIHJlZyBwYWlyIG9yIGp1c3QgYSBmZXcp
Lg0KDQpUaGlzIG9jY3VycyBiZWNhdXNlIERPTTBfRkRUX0VYVFJBX1NJWkUgdW5kZXJlc3RpbWF0
ZXMgdGhlIHNwYWNlDQpyZXF1aXJlZCBmb3IgdGhlIGdlbmVyYXRlZCBleHRyYSAvbWVtb3J5IG5v
ZGUuIFdoaWxlIHRoZSBob3N0IERUQg0KbWlnaHQgcmVwcmVzZW50IFJBTSBjb21wYWN0bHksIG1h
a2VfbWVtb3J5X25vZGUoKSBhZ2dyZWdhdGVzDQphbGwgcmVzZXJ2ZWQgcmVnaW9ucyBpbnRvIGEg
c2luZ2xlIHJlZyBwcm9wZXJ0eS4NCldpdGggTlJfTUVNX0JBTktTICgyNTYpIGFuZCA2NC1iaXQg
YWRkcmVzcy9zaXplIGNlbGxzLCB0aGlzIHByb3BlcnR5DQpjYW4gZ3JvdyB1cCB0byA0S0IgKDI1
NiAqIDE2KSwgZWFzaWx5IGV4Y2VlZGluZyB0aGUgc3BhY2Ugb3JpZ2luYWxseQ0Kb2NjdXBpZWQg
YnkgdGhlIGhvc3QgRFRCJ3Mgbm9kZXMgcGx1cyB0aGUgY3VycmVudCBwYWRkaW5nLCB0aGVyZWJ5
DQpvdmVyZmxvd2luZyB0aGUgYWxsb2NhdGVkIGJ1ZmZlci4NCg0KDQo+IA0KPiBBbm90aGVyIGlz
c3VlIGlzIHdpdGggdGhlIHN0YXRpYyBzaG0gbm9kZXMuIFVzZXIgc3BlY2lmaWVzIHRoZSByZWdp
b25zIGluIHRoZQ0KPiBkb21haW4gY29uZmlndXJhdGlvbiBhbmQgWGVuIGNyZWF0ZXMgKmFkZGl0
aW9uYWwqIG5vZGVzIHVuZGVyIC9yZXNlcnZlZCBhbmQNCj4gL21lbW9yeSB0aGF0IGFmYWljdCB3
ZSBkb24ndCBhY2NvdW50IGZvci4NCg0KWWVzLCB5b3UgYXJlIHJpZ2h0Lg0KDQpTaW5jZSB0aGVz
ZSBTSE0gc3ViLW5vZGVzIGFuZCBwcm9wZXJ0aWVzIGFyZSBnZW5lcmF0ZWQgcHVyZWx5IGZyb20g
dGhlIA0KWGVuIGRvbWFpbiBjb25maWd1cmF0aW9uIGFuZCBhcmUgbm90IHByZXNlbnQgaW4gdGhl
IGhvc3QgRFRCLCB0aGV5IGhhdmUgDQp6ZXJvIHNwYWNlIGFsbG9jYXRlZCBmb3IgdGhlbSBpbiBm
ZHRfdG90YWxzaXplLg0KDQpTbyB3ZSBuZWVkIHRvIHJlZGVmaW5lIHRoZSBtYWNyby4gSSBwcm9w
b3NlIHRoZSBmb2xsb3dpbmcgZm9ybXVsYSB0aGF0IA0Kc2VwYXJhdGVzIHRoZSByYW5nZSBkYXRh
ICgxNiBieXRlcyBwZXIgYmFuayBpbiAvbWVtb3J5KSBmcm9tIHRoZSBub2RlIA0Kb3ZlcmhlYWQg
KDE2MCBieXRlcyBwZXIgU0hNIHJlZ2lvbik6DQoNCiNkZWZpbmUgRE9NMF9GRFRfRVhUUkFfU0la
RSAoMTI4ICsgc2l6ZW9mKHN0cnVjdCBmZHRfcmVzZXJ2ZV9lbnRyeSkgKyBcDQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChOUl9NRU1fQkFOS1MgKiAxNikgKyAgICAgICAgICAgICAgICAg
ICAgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTlJfU0hNRU1fQkFOS1MgKiAxNjAp
KQ0KDQoqKioNCkkgd2lsbCBhcHBlbmQgdGhlIGZvbGxvd2luZyB0ZXh0IGZvciB0aGUgY29tbWl0
IG1lc3NhZ2U6DQoNCkFkZGl0aW9uYWxseSwgU0hNIHJlZ2lvbnMgcmVxdWlyZSBzcGFjZSBmb3Ig
ZGlzY3JldGUgc3ViLW5vZGVzIHVuZGVyIA0KL3Jlc2VydmVkLW1lbW9yeS4gRWFjaCBvZiB0aGUg
dXAgdG8gTlJfU0hNRU1fQkFOS1MgKDMyKSByZWdpb25zIHRyaWdnZXJzIA0KdGhlIGNyZWF0aW9u
IG9mIGEgc3ViLW5vZGUgd2l0aCBwcm9wZXJ0aWVzIChjb21wYXRpYmxlLCByZWcsIHhlbixpZCwg
YW5kIA0KeGVuLG9mZnNldCkuIFRoZXNlIHJ1bnRpbWUtZ2VuZXJhdGVkIHN1Yi1ub2RlcyByZXF1
aXJlIGFwcHJveGltYXRlbHkgMTYwIA0KYnl0ZXMgZWFjaCwgZnVydGhlciBjb25zdW1pbmcgdGhl
IGFsbG9jYXRlZCBidWZmZXIgc3BhY2UuDQoNCkZpeCB0aGlzIGJ5IGluY3JlYXNpbmcgRE9NMF9G
RFRfRVhUUkFfU0laRSB0byBhY2NvdW50IGZvciBib3RoDQpmcmFnbWVudGVkIHJlZyBwcm9wZXJ0
aWVzIChOUl9NRU1fQkFOS1MgKiAxNikgdW5kZXIgZXh0cmEgL21lbW9yeQ0Kbm9kZSBhbmQgdGhl
IGluamVjdGlvbiBvZiBkaXNjcmV0ZSBTSE0gc3ViLW5vZGVzIHVuZGVyIC9yZXNlcnZlZC1tZW1v
cnkgDQpub2RlIChOUl9TSE1FTV9CQU5LUyAqIDE2MCkuDQoNClBsZWFzZSB0ZWxsIG1lLCBkb2Vz
IGl0IGxvb2sgb2s/DQoNCg0KPiANCj4+DQo+PiBGb3IgdGhlIGluc3RhbmNlLCAxMCByZXNlcnZl
ZCByZWdpb25zOg0KPj4NCj4+IChYRU4pIFJBTTogMDAwMDAwMDA0MDAwMDAwMCAtIDAwMDAwMDAw
N2ZmZmZmZmYNCj4+IChYRU4pDQo+PiAoWEVOKSBNT0RVTEVbMF06IDAwMDAwMDAwNDMyMDAwMDAg
LSAwMDAwMDAwMDQzMzBhZmZmIFhlbg0KPj4gKFhFTikgTU9EVUxFWzFdOiAwMDAwMDAwMDQzNDAw
MDAwIC0gMDAwMDAwMDA0MzQwMmZmZiBEZXZpY2UgVHJlZQ0KPj4gKFhFTikgTU9EVUxFWzJdOiAw
MDAwMDAwMDQyZTAwMDAwIC0gMDAwMDAwMDA0MzE2OTA3ZiBSYW1kaXNrDQo+PiAoWEVOKSBNT0RV
TEVbM106IDAwMDAwMDAwNDA0MDAwMDAgLSAwMDAwMDAwMDQyZDJmZmZmIEtlcm5lbA0KPj4gKFhF
TikgIFJFU1ZEWzBdOiAwMDAwMDAwMDQwMDA5MDAwIC0gMDAwMDAwMDA0MDAwOWZmZg0KPj4gKFhF
TikgIFJFU1ZEWzFdOiAwMDAwMDAwMDQwMDA4MDAwIC0gMDAwMDAwMDA0MDAwOGZmZg0KPj4gKFhF
TikgIFJFU1ZEWzJdOiAwMDAwMDAwMDQwMDA3MDAwIC0gMDAwMDAwMDA0MDAwN2ZmZg0KPj4gKFhF
TikgIFJFU1ZEWzNdOiAwMDAwMDAwMDQwMDA2MDAwIC0gMDAwMDAwMDA0MDAwNmZmZg0KPj4gKFhF
TikgIFJFU1ZEWzRdOiAwMDAwMDAwMDQwMDA1MDAwIC0gMDAwMDAwMDA0MDAwNWZmZg0KPj4gKFhF
TikgIFJFU1ZEWzVdOiAwMDAwMDAwMDQwMDA0MDAwIC0gMDAwMDAwMDA0MDAwNGZmZg0KPj4gKFhF
TikgIFJFU1ZEWzZdOiAwMDAwMDAwMDQwMDAzMDAwIC0gMDAwMDAwMDA0MDAwM2ZmZg0KPj4gKFhF
TikgIFJFU1ZEWzddOiAwMDAwMDAwMDQwMDAyMDAwIC0gMDAwMDAwMDA0MDAwMmZmZg0KPj4gKFhF
TikgIFJFU1ZEWzhdOiAwMDAwMDAwMDQwMDAxMDAwIC0gMDAwMDAwMDA0MDAwMWZmZg0KPj4gKFhF
TikgIFJFU1ZEWzldOiAwMDAwMDAwMDQwMDAwMDAwIC0gMDAwMDAwMDA0MDAwMGZmZg0KPj4gLi4u
DQo+Pg0KPj4gICBGcm9tIG1ha2VfbWVtb3J5X25vZGUoKToNCj4+DQo+PiAoWEVOKSBDcmVhdGUg
bWVtb3J5IG5vZGUNCj4+IChYRU4pICAgQmFuayAwOiAweDUwMDAwMDAwLT4weDcwMDAwMDAwDQo+
PiAoWEVOKSAocmVnIHNpemUgNCwgbnIgY2VsbHMgNCkNCj4+DQo+Pg0KPj4NCj4+IChYRU4pIENy
ZWF0ZSBtZW1vcnkgbm9kZQ0KPj4gKFhFTikgICBCYW5rIDA6IDB4NDAwMDkwMDAtPjB4NDAwMGEw
MDANCj4+IChYRU4pICAgQmFuayAxOiAweDQwMDA4MDAwLT4weDQwMDA5MDAwDQo+PiAoWEVOKSAg
IEJhbmsgMjogMHg0MDAwNzAwMC0+MHg0MDAwODAwMA0KPj4gKFhFTikgICBCYW5rIDM6IDB4NDAw
MDYwMDAtPjB4NDAwMDcwMDANCj4+IChYRU4pICAgQmFuayA0OiAweDQwMDA1MDAwLT4weDQwMDA2
MDAwDQo+PiAoWEVOKSAgIEJhbmsgNTogMHg0MDAwNDAwMC0+MHg0MDAwNTAwMA0KPj4gKFhFTikg
ICBCYW5rIDY6IDB4NDAwMDMwMDAtPjB4NDAwMDQwMDANCj4+IChYRU4pICAgQmFuayA3OiAweDQw
MDAyMDAwLT4weDQwMDAzMDAwDQo+PiAoWEVOKSAgIEJhbmsgODogMHg0MDAwMTAwMC0+MHg0MDAw
MjAwMA0KPj4gKFhFTikgICBCYW5rIDk6IDB4NDAwMDAwMDAtPjB4NDAwMDEwMDANCj4+IChYRU4p
IChyZWcgc2l6ZSA0LCBuciBjZWxscyA0MCkNCj4+DQo+Pj4NCj4+Pj4gYWdncmVnYXRlcyBhbGwg
cmVzZXJ2ZWQgcmVnaW9ucyBpbnRvIGEgc2luZ2xlIHJlZyBwcm9wZXJ0eS4gV2l0aA0KPj4+PiBO
Ul9NRU1fQkFOS1MgKDI1NikgYW5kIDY0LWJpdCBhZGRyZXNzL3NpemUgY2VsbHMsIHRoaXMgcHJv
cGVydHkNCj4+Pj4gY2FuIGdyb3cgdXAgdG8gNEtCICgyNTYgKiAxNiksIGVhc2lseSBvdmVyZmxv
d2luZyB0aGUgYWxsb2NhdGVkDQo+Pj4+IGJ1ZmZlci4NCj4+Pj4NCj4+Pj4gRml4IHRoaXMgYnkg
aW5jcmVhc2luZyBET00wX0ZEVF9FWFRSQV9TSVpFIHRvIGFjY291bnQgZm9yDQo+Pj4+IHRoZSB3
b3JzdC1jYXNlIHNpemU6IE5SX01FTV9CQU5LUyAqIDE2IGJ5dGVzLg0KPj4+Pg0KPj4+PiBTaWdu
ZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgVHlzaGNoZW5rbyA8b2xla3NhbmRyX3R5c2hjaGVua29AZXBh
bS5jb20+DQo+Pj4+IC0tLQ0KPj4+PiBKdXN0IHRvIGJlIGNsZWFyLCBJIGhhdmUgbm90IHNlZW4g
YSByZWFsLXdvcmxkIGlzc3VlIHdpdGggdGhpcy4NCj4+Pj4gVGhlIGlzc3VlIHdhcyBvYnNlcnZl
ZCBkdXJpbmcgdGVzdGluZyBvZiBsaW1pdCBjb25kaXRpb25zLg0KPj4+PiBXaXRoIHRoaXMgcGF0
Y2ggYXBwbGllZCwgWGVuIHN1Y2Nlc3NmdWxseSBib290cyB0aGUgaGFyZHdhcmUgZG9tYWluLA0K
Pj4+PiBleHBvc2luZyAyNTYgcmVzZXJ2ZWQgbWVtb3J5IHJlZ2lvbnMgdG8gaXQgKHVzaW5nIGEg
c3ludGhldGljYWxseQ0KPj4+PiBnZW5lcmF0ZWQgY29uZmlndXJhdGlvbikuDQo+Pj4+IC0tLQ0K
Pj4+PiAtLS0NCj4+Pj4gICAgeGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jIHwgNiArKysrLS0N
Cj4+Pj4gICAgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkN
Cj4+Pj4NCj4+Pj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYyBiL3hl
bi9hcmNoL2FybS9kb21haW5fYnVpbGQuYw0KPj4+PiBpbmRleCBlODc5NTc0NWRkLi43ZjlmMGY1
NTEwIDEwMDY0NA0KPj4+PiAtLS0gYS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMNCj4+Pj4g
KysrIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jDQo+Pj4+IEBAIC0xMDAsOSArMTAwLDEx
IEBAIGludCBfX2luaXQgcGFyc2VfYXJjaF9kb20wX3BhcmFtKGNvbnN0IGNoYXIgKnMsIGNvbnN0
IGNoYXIgKmUpDQo+Pj4+ICAgIC8qDQo+Pj4+ICAgICAqIEFtb3VudCBvZiBleHRyYSBzcGFjZSBy
ZXF1aXJlZCB0byBkb20wJ3MgZGV2aWNlIHRyZWUuICBObyBuZXcgbm9kZXMNCj4+PiBUaGlzIGNv
bW1lbnQgd291bGQgd2FudCB0byBiZSB1cGRhdGVkIGJlY2F1c2Ugc2luY2UgaXRzIGludHJvZHVj
dGlvbiB0aGluZ3MgaGF2ZQ0KPj4+IGNoYW5nZWQuIEV2ZW4gdGhlIDEyOCBjYW1lIHVwIGFzIGEg
cmVzdWx0IG9mIGFkZGluZyAvaHlwZXJ2aXNvciBub2RlLg0KPj4NCj4+IFlvdSBhcmUgcmlnaHQu
IEkgc3VnZ2VzdCB0aGUgZm9sbG93aW5nIHdvcmRpbmc6DQo+Pg0KPj4gQW1vdW50IG9mIGV4dHJh
IHNwYWNlIHJlcXVpcmVkIHRvIGRvbTAncyBkZXZpY2UgdHJlZS4NCj4+IFRoaXMgY292ZXJzIG5v
ZGVzIGdlbmVyYXRlZCBieSBYZW4sIHdoaWNoIGFyZSBub3QgZGlyZWN0bHkgY29waWVkDQo+PiBm
cm9tIHRoZSBob3N0IERUQi4gSXQgaXMgY2FsY3VsYXRlZCBhczoNCj4+ICAgIC0gU3BhY2UgZm9y
IC9oeXBlcnZpc29yIG5vZGUgKDEyOCBieXRlcykuDQo+PiAgICAtIE9uZSB0ZXJtaW5hdGluZyBy
ZXNlcnZlIG1hcCBlbnRyeSAoMTYgYnl0ZXMpLg0KPj4gICAgLSBTcGFjZSBmb3IgYSBnZW5lcmF0
ZWQgbWVtb3J5IG5vZGUgY292ZXJpbmcgYWxsIHBvc3NpYmxlIHJlc2VydmVkDQo+PiAgICAgIG1l
bW9yeSByZWdpb25zIChOUl9NRU1fQkFOS1MgKiAxNiBieXRlcykuDQo+Pg0KPj4NCj4+Pg0KPj4+
PiAgICAgKiBhcmUgYWRkZWQgKHlldCkgYnV0IG9uZSB0ZXJtaW5hdGluZyByZXNlcnZlIG1hcCBl
bnRyeSAoMTYgYnl0ZXMpIGlzDQo+Pj4+IC0gKiBhZGRlZC4NCj4+Pj4gKyAqIGFkZGVkLiBQbHVz
IHNwYWNlIGZvciBhbiBleHRyYSBtZW1vcnkgbm9kZSB0byBjb3ZlciBhbGwgcG9zc2libGUgcmVz
ZXJ2ZWQNCj4+Pj4gKyAqIG1lbW9yeSByZWdpb25zICgyIGFkZHIgY2VsbHMgKyAyIHNpemUgY2Vs
bHMpLg0KPj4+PiAgICAgKi8NCj4+Pj4gLSNkZWZpbmUgRE9NMF9GRFRfRVhUUkFfU0laRSAoMTI4
ICsgc2l6ZW9mKHN0cnVjdCBmZHRfcmVzZXJ2ZV9lbnRyeSkpDQo+Pj4+ICsjZGVmaW5lIERPTTBf
RkRUX0VYVFJBX1NJWkUgKDEyOCArIHNpemVvZihzdHJ1Y3QgZmR0X3Jlc2VydmVfZW50cnkpICsg
XA0KPj4+PiArICAgIChOUl9NRU1fQkFOS1MgKiAxNikpDQo+Pj4+ICAgIA0KPj4+PiAgICB1bnNp
Z25lZCBpbnQgX19pbml0IGRvbTBfbWF4X3ZjcHVzKHZvaWQpDQo+Pj4+ICAgIHsNCj4+Pg0KPj4+
IH5NaWNoYWwNCj4+Pg0KPiANCj4gfk1pY2hhbA0KPiANCj4gDQo=


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 12:48:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 12:48:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265567.1556400 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w66bW-0000Gq-7O; Fri, 27 Mar 2026 12:47:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265567.1556400; Fri, 27 Mar 2026 12:47: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 1w66bW-0000Gj-4a; Fri, 27 Mar 2026 12:47:58 +0000
Received: by outflank-mailman (input) for mailman id 1265567;
 Fri, 27 Mar 2026 12:47:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <oleksii.kurochko@gmail.com>) id 1w66bU-0000Gd-Mt
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 12:47:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w66bU-008Gwh-2b
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 13:47:56 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69c67c7a-e002-0a2a0a5209dd-0a2a4505dc78-10
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 13:47:56 +0100
Received: from [209.85.218.52] (helo=mail-ej1-f52.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69c67c7b-5aeb-0a2a45050019-d155da34a96a-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 13:47:55 +0100
Received: by mail-ej1-f52.google.com with SMTP id
 a640c23a62f3a-b980b35534eso479465266b.1
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 05:47:55 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-66ad6a4c4b3sm2225062a12.22.2026.03.27.05.47.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 27 Mar 2026 05:47:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774615675; x=1775220475; 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=G1JZ7x4TFZ9YUUsRHNL827EegWnaHOoVxvnjo4qZ/vc=;
        b=KG3jd4XriBqlzXsU0KdFgG7nOHd9/rXBCtef1NKYTAZLJl2bfvml8tRtTi9BjEEyLY
         ZjCaf9Pd/EMl8DOt/vuzQBe4vyoyKr7+psQGG0zL0PLNTLw/e/XymA+ceazuX9ID3rU3
         AFgQ3oAYygF2pLYlAKkhrn3GAtDP6bYGUJdHHfiSa1AhPwdnf+3J+Id1Ps7EzrGUasBu
         aZn0YowdjB8Ym87vfjUyuUkjebQTdbMdYbruRM7xzUrueGrufcf031hhI3rqiL1VyE8g
         IaYV0BPKjo7jwvPSwfAQWYIzkgJLohY9VyrT9CtNvTt56UUPSmqHNaAuZEV5AiHDY0uB
         Z3LQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774615675; x=1775220475;
        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=G1JZ7x4TFZ9YUUsRHNL827EegWnaHOoVxvnjo4qZ/vc=;
        b=QzKIPACzJII+OsJEVS9iH3fKx7G/Xq0GRTpJ7bc7ZSxGoK2JcOJlcLPHTyMXmg55CB
         KS/DBuOJgn8toUwYULFQXlf74DHsbyZpMRPw582FGi96b/dTVwyb2Jk9gXJB6D8CZ4+J
         60O+CQ4RrYLM9Sbc4+anMlFwHppEzOBvfhlC+P4Z85Fdj9UBiUPsdUtqFLck58JomWFP
         yP+0G/iSI5yA+UGvumBKAv76kwQ5HLzaoDDVsIF+ZPPOGuvFz6lD8Zu8K6YHqr4xzIv0
         ihKeJ0uO+w7nwQHuQd4ckEor+uzp5znsfIgn4OX7QflTe/+6Bref5ZholOk6HphVQwUt
         y+OA==
X-Forwarded-Encrypted: i=1; AJvYcCXWSyMF2u+O6f29dWbD4sivDEEWE+6LXx5AIVgj4EUnTmzPlUGBkBlmJdK9JScylLDGbnMoB8nmWgg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzHZi6myfaGZ2gym6qa6es+sR0PIJ7DKoqapuXtQSO8c8RqEKEt
	A/WmDeMcCK/biOJ5++wuQu74qzS/8uPfyvD326K7LnLQlfpAVZdS/zfz
X-Gm-Gg: ATEYQzyvjRjjeVf7dgLQeGdXV6kPkcgxJ6nDG1ox1s/UM5FdkH9EFQFBZOqLZJNtSR1
	+I0wtQdrIC1gPo5cXEPN+StOITtvqGEs4S+o4JK18TY2PN0fu7WHYH8qi5xl/0jQUkS+bLdQSEM
	rgZkZ1jEi3OKFa+inKLQq/V6qNB+4Bf5n1kB0fbIodd+qZCwSj2PDVdjcMy5r6cLUQXBAM3wtI8
	Mm+ZkMzzAlq1P4NHHq+1QtdLuZM4U5tP/WdUhN+4CbgS+yqWGlO2cS25dSxz/I2gN4VRvH0Xl1q
	iB1OkRYVcA3ympIf+1QPaAiG1TGld2tcczvM8Vts/8J2sme1oMChfo3XCenv6DU8DpGCJCFB5JJ
	R912ThTG+pN4hUduB1PZGSlCOqy+yykNaOsLVBG0/B3utVRRGlVCzv2H7oV9eL8fWH+08E74D6F
	5Ee50+6sYczbh5A0Hce/GZM49xaOW3y0NRtuLngHDgcr47zMRfcaNzMjXm/43QnCf0Ro8H3d4UF
	50=
X-Received: by 2002:a17:907:2d8a:b0:b98:f1d:6a63 with SMTP id a640c23a62f3a-b9b2e5921bbmr345986566b.9.1774615674917;
        Fri, 27 Mar 2026 05:47:54 -0700 (PDT)
Message-ID: <09c5badb-f58b-4331-8138-cba99eba17b0@gmail.com>
Date: Fri, 27 Mar 2026 13:47:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/4] xen/riscv: add exception table support
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1773419622.git.oleksii.kurochko@gmail.com>
 <c6d30625371d56bb8345c987ac6d8095cc7301d2.1773419622.git.oleksii.kurochko@gmail.com>
 <db8fd1fa-2db4-4df4-8e21-1412783786b2@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <db8fd1fa-2db4-4df4-8e21-1412783786b2@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1774615675-81D5C488-6C13E4F5/0/0
X-purgate-type: clean
X-purgate-size: 10888



On 3/24/26 3:04 PM, Jan Beulich wrote:
> On 13.03.2026 17:44, Oleksii Kurochko wrote:
>> Introduce exception table handling for RISC-V so faults from selected
>> instructions can be recovered via fixup handlers instead of being
>> treated as fatal.
>>
>> Add the RISC-V exception table format, sorting at boot to allow binary
>> search used furthuer, and lookup from the trap handler. Update the
>> linker script to emit the .ex_table section using introduced common
>> EX_TABLE macro shared with other architectures.
>>
>> Also, the __start___ext_table is aligned now by POINTER_ALIGN instead
>> of just using hard-coded 8 as there is no too much sense to align
>> __start___ext_table by 8 for 32-bit systems.
> 
> Nit: The identifier named here twice isn't correct (extra 't').
> 
>> This implementation is based on Linux 6.16.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> ---
>> Open question:
>>
>> With some renaming the following could be generic, at least, between
>> x86 and RISC-V:
>>   - ASM_EXTABLE() definition
>>   - All what is conencted with sort_extable().
>>   - With some change of how x86 searchs an extension this cmp_ex_search()
>>     could also go to common file.
>>
>> Does it make sense to introduce xen/extable.h and common/extable.c?
> 
> Maybe, but not right here. Already the introduction of EX_TABLE for
> linker script use might better have been broken out.
> 
> Seeing the names you suggest here, ...
> 
>> ---
>>   xen/arch/riscv/Kconfig                |  1 +
>>   xen/arch/riscv/Makefile               |  1 +
>>   xen/arch/riscv/extables.c             | 85 +++++++++++++++++++++++++++
>>   xen/arch/riscv/include/asm/extables.h | 72 +++++++++++++++++++++++
>>   xen/arch/riscv/setup.c                |  3 +
>>   xen/arch/riscv/traps.c                |  3 +
>>   xen/arch/riscv/xen.lds.S              |  3 +
>>   xen/arch/x86/xen.lds.S                |  6 +-
>>   xen/include/xen/xen.lds.h             | 10 ++++
>>   9 files changed, 179 insertions(+), 5 deletions(-)
>>   create mode 100644 xen/arch/riscv/extables.c
>>   create mode 100644 xen/arch/riscv/include/asm/extables.h
> 
> ... is there a reason you use plural in the name here?

No, I'll use singular form.

I called it tables as potentially I will need a different types of 
exception table, so I counted different types as different exception tables.

> 
>> --- a/xen/arch/riscv/Makefile
>> +++ b/xen/arch/riscv/Makefile
>> @@ -3,6 +3,7 @@ obj-y += cpufeature.o
>>   obj-y += domain.o
>>   obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
>>   obj-y += entry.o
>> +obj-$(CONFIG_HAS_EX_TABLE) += extables.o
> 
> Simply obj-y please as long as the select is unconditional.

I see your point and at the moment there is no also other options how
to handle case(s) for which exception table is introduced now. But if 
potentially another mechanism will be introduced what will be the point 
to have extable.o code in the final binary?

> 
>> --- /dev/null
>> +++ b/xen/arch/riscv/extables.c
>> @@ -0,0 +1,85 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#include <xen/init.h>
>> +#include <xen/bsearch.h>
>> +#include <xen/lib.h>
>> +#include <xen/sort.h>
>> +#include <xen/virtual_region.h>
>> +
>> +#include <asm/extables.h>
>> +#include <asm/processor.h>
>> +
>> +#define EX_FIELD(ptr, field) ((unsigned long)&(ptr)->field + (ptr)->field)
>> +
>> +static inline unsigned long ex_insn(const struct exception_table_entry *ex)
>> +{
>> +    return EX_FIELD(ex, insn);
>> +}
>> +
>> +static inline unsigned long ex_fixup(const struct exception_table_entry *ex)
>> +{
>> +    return EX_FIELD(ex, fixup);
>> +}
>> +
>> +static void __init cf_check swap_ex(void *a, void *b)
>> +{
>> +    struct exception_table_entry *x = a, *y = b, tmp;
>> +    int delta = b - a;
> 
> Better play safe and use "long" (as we have it for x86)?

It makes sense. Lets switch to "long".

> 
>> +    tmp = *x;
>> +    x->insn = y->insn + delta;
>> +    y->insn = tmp.insn - delta;
>> +
>> +    x->fixup = y->fixup + delta;
>> +    y->fixup = tmp.fixup - delta;
>> +}
>> +
>> +static int __init cf_check cmp_ex_sort(const void *a, const void *b)
>> +{
>> +    const unsigned long l = ex_insn(a);
>> +    const unsigned long r = ex_insn(b);
>> +
>> +    /* avoid overflow */
>> +    return (l > r) - (l < r);
>> +}
>> +
>> +void __init sort_extable(void)
> 
> Better account for live-patching right away (see corresponding x86 code)?

I will introduce then void init_or_livepatch sort_exception_table(...) 
and re-use it inside sort_extable() with renaming it to 
sort_exception_tables() to take into account live-patching which 
requires sort_exception_table().

> 
>> +{
>> +    sort(__start___ex_table,  __stop___ex_table - __start___ex_table,
>> +         sizeof(struct exception_table_entry), cmp_ex_sort, swap_ex);
>> +}
>> +
>> +static int cf_check cmp_ex_search(const void *key, const void *elt)
>> +{
>> +    const unsigned long k = *(const unsigned long *)key;
> 
> The deref here looks to be needed solely because you pass &pc into bsearch().
> Generally I'd expect both search functions to be pretty similar (if already
> distinct ones are needed, which indeed looks to make things easier here).

The stuff is easier with such implementation.

We could really drop cmp_ex_search() if to pass struct 
exception_table_entry instead of (unsigned long *) so the following will 
allow to drop cmp_ex_search():

@@ -78,12 +78,15 @@ bool fixup_exception(struct cpu_user_regs *regs)
      unsigned long pc = regs->sepc;
      const struct virtual_region *region = find_text_region(pc);
      const struct exception_table_entry *ex;
+    struct exception_table_entry key;

      if ( !region || !region->ex )
          return false;

-    ex = bsearch(&pc, region->ex, region->ex_end - region->ex,
-                 sizeof(struct exception_table_entry), cmp_ex_search);
+    key.insn = pc - (unsigned long)&key.insn;
+
+    ex = bsearch(&key, region->ex, region->ex_end - region->ex,
+                 sizeof(struct exception_table_entry), cmp_ex_sort 
/*cmp_ex_search*/);

Also, then I will rename l and r variable inside cmp_ex_sort() to
insn_a and insn_b.

> 
>> +    const unsigned long insn = ex_insn(elt);
>> +
>> +    /* avoid overflow */
>> +    return (k > insn) - (k < insn);
>> +}
>> +
>> +static bool ex_handler_fixup(const struct exception_table_entry *ex,
>> +			                 struct cpu_user_regs *regs)
> 
> Nit: Bad indentation.
> 
>> +{
>> +	regs->sepc = ex_fixup(ex);
>> +
>> +	return true;
> 
> Nit: Bad use of hard tabs.
> 
> And then - why the boolean return type, when this can't fail anyway?

As potentially we could have other handlers which might return not only 
true, so it will be easier to handle return type inside fixup_exception().

But if you think there is no any sense to have for handlers the same 
signature then I am also return void instead of bool for 
ex_handler_fixup().

> 
>> --- /dev/null
>> +++ b/xen/arch/riscv/include/asm/extables.h
>> @@ -0,0 +1,72 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#ifndef ASM__RISCV__ASM_EXTABLES_H
>> +#define ASM__RISCV__ASM_EXTABLES_H
>> +
>> +#ifdef __ASSEMBLER__
>> +
>> +#define ASM_EXTABLE(insn, fixup)    \
>> +    .pushsection .ex_table, "a";    \
>> +    .balign     4;                  \
>> +    .long		((insn) - .);       \
>> +    .long		((fixup) - .);      \
> 
> Nit: More uses of hard tabs. Maybe that alone is the reason for the mis-aligned
> trailing backslashes.
> 
>> +    .popsection;
>> +.endm
> 
> I can't spot the corresponding .macro. What's going on here?

Good question... It was:

.macro asm_extable, insn, fixup
     ASM_EXTABLE(\insn, \fixup)
.endm

>> +
>> +/*
>> + * The exception table consists of pairs of relative offsets: the first
>> + * is the relative offset to an instruction that is allowed to fault,
>> + * and the second is the relative offset at which the program should
>> + * continue. No registers are modified, so it is entirely up to the
>> + * continuation code to figure out what to do.
> 
> And the program counter is not a register?
It is. "No register" meant no general purpose register. I will reprase 
this part to:

No general-purpose registers are modified by the exception handling 
mechanism itself, so it is up to the fixup code to handle any necessary 
state cleanup.

Or it could be just dropped.

> 
>> + * All the routines below use bits of fixup code that are out of line
>> + * with the main instruction path.  This means when everything is well,
>> + * we don't even have to jump over them.  Further, they do not intrude
>> + * on our cache or tlb entries.
> 
> What is this paragraph about? There's nothing "below" which I can
> associate this with.

It is orphaned from Linux (generally it is about that some functions 
from uaccess.h are using ASM_EXTABLE, the similar for Xen has in 
x86/uaccess.h). I'll rephrase it to:
  * The exception table and fixup code live out of line with the main
  * instruction path. This means when everything is well, we don't even
  * have to jump over them. Further, they do not intrude on our cache or
  * tlb entries.

> 
>> + */
>> +struct exception_table_entry {
>> +	int32_t insn, fixup;
>> +};
>> +
>> +extern struct exception_table_entry __start___ex_table[];
>> +extern struct exception_table_entry __stop___ex_table[];
>> +
>> +#ifdef CONFIG_HAS_EX_TABLE
> 
> Why, when this is a RISC-V specific header and HAS_EX_TABLE is selected
> unconditionally?

To handle the potential in future case that CONFIG_HAS_EX_TABLE will 
become conditional.
I thought that it makes sense to be in sync with common/virtual_region.c 
also uses ifdef around exception table related information.

> 
>> --- a/xen/include/xen/xen.lds.h
>> +++ b/xen/include/xen/xen.lds.h
>> @@ -219,4 +219,14 @@
>>   #define VPCI_ARRAY
>>   #endif
>>   
>> +#ifdef CONFIG_HAS_EX_TABLE
> 
> No real need for this?

Here I can agree that there is not reason as if CONFIG_HAS_EX_TABLE is n
then no one is expected to use exception table so the section is empty 
and don't occupy any extra space in binary (except potentially some 
space because of alignment).


> 
>> +#define EX_TABLE                  \
>> +        . = ALIGN(POINTER_ALIGN); \
> 
> Strictly speaking the original 8 (in x86 code) as much as this is more
> than we need - each element is a struct of 2 4-byte entities, after all.

For the  current struct - yes, we can do . = ALIGN(4) but if the 
architecture will add uint64_t inside (or unsigned long) shouldn't we 
then have ALIGN(POINTER_ALIGN)?

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Mar 27 12:48:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 12:48:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265568.1556410 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w66ba-0000UR-Fl; Fri, 27 Mar 2026 12:48:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265568.1556410; Fri, 27 Mar 2026 12:48: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 1w66ba-0000UH-Bv; Fri, 27 Mar 2026 12:48:02 +0000
Received: by outflank-mailman (input) for mailman id 1265568;
 Fri, 27 Mar 2026 12:48:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w66bZ-0000Tz-3m
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 12:48:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w66bY-008Gwh-7A
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 13:48:00 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c67c7a-e002-0a2a0a5209dd-0a2a4505dc78-22
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 13:48:00 +0100
Received: from [202.12.124.152] (helo=fhigh-b1-smtp.messagingengine.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69c67c7e-5aeb-0a2a45050019-ca0c7c98e05d-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 13:47:59 +0100
Received: from phl-compute-09.internal (phl-compute-09.internal [10.202.2.49])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 419007A0154;
 Fri, 27 Mar 2026 08:47:58 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-09.internal (MEProxy); Fri, 27 Mar 2026 08:47:58 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 27 Mar 2026 08:47:56 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm1 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1774615678;
	 x=1774702078; bh=kgH6kXJD5WWblM90MR2rtcRLFzDJDDUs/OympKktGHM=; b=
	UfsN30xbA73JrguiPoXf+zllTYSIwaj8x2UrTmHps7im7UKAxgBsmdEQ8Rj+Xz8c
	A68IdqfAXIV4+n3yYhus57Yvv34mGqSUxx5usZ7GAEW3gJn4is1GJdlkpwieTAaD
	VJOuDzjGRVtbv3WWoVtX6FPEw+uF8sSKHQ7U1/1pDaqDVwI5oB1cY4p8ojOqT4dZ
	9GXOkRo70kGzn2tmT8f2C2lqBzce5JE2o+Hc3HVpHbQKU+N9Xcei0Y/SVQHTotkA
	V2b5BWpYzsui16nAe2FsEPfj5MzSOOx95cdPFDiMrVsLk+BNHOFQByvTVM+4txxH
	CcV+7fClR1VkvPFhWWEk3Q==
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=
	1774615678; x=1774702078; bh=kgH6kXJD5WWblM90MR2rtcRLFzDJDDUs/Oy
	mpKktGHM=; b=QQ2exnl2XYnTHVSs4U1IMLrrcbX6BX5viF0q4xru6lnOrjTGIgM
	P0vVgfiAoihIdyLbJO841JnYDrfPIBr74ZHSaL5ZHsAJFcIgK8HuUVUp71WJgaQR
	EvdeD8k3HycH8WhcYGwB18SzXnRIm51g3v7/DCvFA5eiWryN7ZN2N2n0sgnrZPJM
	4HnrmMrtjJLF34VN0pfzP/lqaRzdMHZHucE+pzGb33vUTc82cGY/81C28rO4d7r5
	q5+HC9KXMI9InyzJ1CTgSs38/Vfu4VfvadKYcsEFcYmzhZ+kRF4NH9iX9OiNrMnG
	vWXG1LD9FHAlUgqxdqY066Fgznol5c/FLQA==
X-ME-Sender: <xms:fXzGaQxm0XXRi3zrY-WQhKgFKIF_LS_8KXEHG0x0GqKF7pa4abn7ag>
    <xme:fXzGabsyuXhM4TVqwDi_-m0t9kgNNMiNiUyoSPNPDWR4KIhmbPIOI2EyguqmLZPCE
    4qnQcjNAedmBo74WuP70F_7JUM70tAr4V_I6hhKaokURvE7jA>
X-ME-Received: <xmr:fXzGafujUO1Qv-KkioTdbTMNgNzF86nLKbcJ06AaIEa3pHTw9QfKJahxj9Ww7eD2upThbPvvHYta4pcyFOZU7lCqcY7c7dshhLA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeffedtfedvucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepfedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtgho
    mhdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtth
    drohhrghdprhgtphhtthhopehjghhrohhsshesshhushgvrdgtohhm
X-ME-Proxy: <xmx:fXzGaYPX1zw0PlZpCjOQioeJggd-n49Ccsp-QKG5KeER5n4MNiVlYg>
    <xmx:fXzGaV3wq4Rd5Flfw49YrjhDArqvpJfdu7oDv97YaUShcCvMSPCKpA>
    <xmx:fXzGacNmdj3TD0mcXmiSWx-ynHiv-aER-oWfBiufY6siA6MVOZzQPQ>
    <xmx:fXzGad38U8-Ip4TbGGwkzTmbovasKbH_4AMYW7SzV8zF53IZqNi3sg>
    <xmx:fnzGadV2JosnlcVxY4FdOwwXLkoZnFP9y2z-D7ie_w-GE-HiEGcGS6FW>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 27 Mar 2026 13:47:55 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	=?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Subject: Re: Slow (higher scheduling latency?) system after S3 - regression
 4.17 -> 4.19 ?
Message-ID: <acZ8ez4dmQay1JSw@mail-itl>
References: <aPzBO_eW8mQHM66u@mail-itl>
 <acQzzlXNDxNq885V@mail-itl>
 <29775afa-e17b-4c44-a2a8-4ef4bc7cdf0f@suse.com>
 <acUqOL232lp-Lw1v@mail-itl>
 <cbed767b-4ac4-4989-8778-43ff321ae977@suse.com>
 <acVWX8vkhZiFfonP@mail-itl>
 <88c65ec7-b7f7-4d8b-a453-d707440b43cb@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="U3WZiaCdmRm0vx68"
Content-Disposition: inline
In-Reply-To: <88c65ec7-b7f7-4d8b-a453-d707440b43cb@suse.com>
X-purgate-ID: tlsNG-c201ff/1774615680-200AA488-EF344AC8/0/0
X-purgate-type: clean
X-purgate-size: 10324


--U3WZiaCdmRm0vx68
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 27 Mar 2026 13:47:55 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	=?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Subject: Re: Slow (higher scheduling latency?) system after S3 - regression
 4.17 -> 4.19 ?

Some further observation, this time regarding timers:

Just before S3:

    (XEN) [  150.264757] Dumping timer queues:
    (XEN) [  150.265181] CPU00:
    (XEN) [  150.265497]   ex=3D         736us timer=3Dffff82d040643540 cb=
=3Ddrivers/char/xhci-dbc.c#dbc_uart_poll(ffff82d0404e5e78)
    (XEN) [  150.266590]   ex=3D      460377us timer=3Dffff82d04065d2c0 cb=
=3Darch/x86/time.c#time_calibration(0000000000000000)
    (XEN) [  150.267636]   ex=3D     1377460us timer=3Dffff82d04065d220 cb=
=3Darch/x86/time.c#plt_overflow(0000000000000000)
    (XEN) [  150.268651]   ex=3D    13525100us timer=3Dffff82d040644c20 cb=
=3Darch/x86/cpu/mcheck/intel-nonfatal.c#mce_work_fn(0000000000000000)
    (XEN) [  150.269820] CPU02:
    (XEN) [  150.270126]   ex=3D      616653us timer=3Dffff830461931070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461931000)
    (XEN) [  150.271276] CPU04:
    (XEN) [  150.271577]   ex=3D      630577us timer=3Dffff830461935070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461935000)
    (XEN) [  150.272734]   ex=3D      634586us timer=3Dffff830461921070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461921000)
    (XEN) [  150.273884] CPU06:
    (XEN) [  150.274184]   ex=3D       44474us timer=3Dffff830461905070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461905000)
    (XEN) [  150.275334] CPU08:
    (XEN) [  150.275633]   ex=3D       11465us timer=3Dffff83046190d070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff83046190d000)
    (XEN) [  150.276783] CPU09:
    (XEN) [  150.277083]   ex=3D       12465us timer=3Dffff830461909070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461909000)
    (XEN) [  150.278236] CPU10:
    (XEN) [  150.278536]   ex=3D       14464us timer=3Dffff830461901070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461901000)
    (XEN) [  150.279686] CPU11:
    (XEN) [  150.279986]   ex=3D       15464us timer=3Dffff830461911070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461911000)
    (XEN) [  150.281139] CPU12:
    (XEN) [  150.281438]   ex=3D       17463us timer=3Dffff830461919070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461919000)
    (XEN) [  150.282592] CPU13:
    (XEN) [  150.282890]   ex=3D      347090us timer=3Dffff830461941070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461941000)
    (XEN) [  150.284040] CPU14:
    (XEN) [  150.284341]   ex=3D       20462us timer=3Dffff83046191d070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff83046191d000)
    (XEN) [  150.285496] CPU15:
    (XEN) [  150.285806]   ex=3D         470us timer=3Dffff83046192d070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff83046192d000)
    (XEN) [  150.286972]   ex=3D       15316us timer=3Dffff8304619cdaa0 cb=
=3Ddrivers/cpufreq/cpufreq_ondemand.c#do_dbs_timer(ffff8304619cdae0)
    (XEN) [  150.288156]   ex=3D        6230us timer=3Dffff8304619e8ed0 cb=
=3Dcommon/sched/core.c#s_timer_fn(0000000000000000)
    (XEN) [  150.289192] CPU16:
    (XEN) [  150.289492]   ex=3D      633594us timer=3Dffff830461929070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461929000)
    (XEN) [  150.290642] CPU18:
    (XEN) [  150.290942]   ex=3D      614601us timer=3Dffff830461939070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461939000)
    (XEN) [  150.292094] CPU20:
    (XEN) [  150.292394]   ex=3D       27459us timer=3Dffff830461915070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461915000)
    (XEN) [  150.293553]   ex=3D       55316us timer=3Dffff830461979aa0 cb=
=3Ddrivers/cpufreq/cpufreq_ondemand.c#do_dbs_timer(ffff830461979ae0)
    (XEN) [  150.294744]   ex=3D       35413us timer=3Dffff83046198fdc0 cb=
=3Dcommon/sched/core.c#s_timer_fn(0000000000000000)
    (XEN) [  150.295776] CPU21:
    (XEN) [  150.296076]   ex=3D      617580us timer=3Dffff830461925070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461925000)

Just after S3:

    (XEN) [  164.462198] Dumping timer queues:
    (XEN) [  164.462630] CPU00:
    (XEN) [  164.462949]   ex=3D         768us timer=3Dffff82d040643540 cb=
=3Ddrivers/char/xhci-dbc.c#dbc_uart_poll(ffff82d0404e5e78)
    (XEN) [  164.464064]   ex=3D     1286532us timer=3Dffff82d04065d220 cb=
=3Darch/x86/time.c#plt_overflow(0000000000000000)
    (XEN) [  164.465099]   ex=3D      395997us timer=3Dffff830461921070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461921000)
    (XEN) [  164.466262]   ex=3D    15327843us timer=3Dffff82d040644c20 cb=
=3Darch/x86/cpu/mcheck/intel-nonfatal.c#mce_work_fn(0000000000000000)
    (XEN) [  164.467461] CPU02:
    (XEN) [  164.467773]   ex=3D       37756us timer=3Dffff830461931070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461931000)
    (XEN) [  164.468953] CPU04:
    (XEN) [  164.469267]   ex=3D      940042us timer=3Dffff830461935070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461935000)
    (XEN) [  164.470444] CPU06:
    (XEN) [  164.470759]   ex=3D      485896us timer=3Dffff830461905070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461905000)
    (XEN) [  164.471937] CPU08:
    (XEN) [  164.472251]   ex=3D      459720us timer=3Dffff83046190d070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff83046190d000)
    (XEN) [  164.473430] CPU09:
    (XEN) [  164.473745]   ex=3D     1563081us timer=3Dffff830461909070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461909000)
    (XEN) [  164.474922] CPU10:
    (XEN) [  164.475237]   ex=3D      948204us timer=3Dffff830461901070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461901000)
    (XEN) [  164.476417] CPU11:
    (XEN) [  164.476732]   ex=3D      948071us timer=3Dffff830461911070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461911000)
    (XEN) [  164.477912] CPU12:
    (XEN) [  164.478219]   ex=3D      892163us timer=3Dffff830461919070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461919000)
    (XEN) [  164.479398] CPU13:
    (XEN) [  164.479713]   ex=3D      308429us timer=3Dffff830461941070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461941000)
    (XEN) [  164.480893] CPU14:
    (XEN) [  164.481208]   ex=3D      954493us timer=3Dffff83046191d070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff83046191d000)
    (XEN) [  164.482386] CPU15:
    (XEN) [  164.482700]   ex=3D     1487692us timer=3Dffff83046192d070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff83046192d000)
    (XEN) [  164.483881] CPU16:
    (XEN) [  164.484195]   ex=3D       22890us timer=3Dffff830461929070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461929000)
    (XEN) [  164.485373] CPU18:
    (XEN) [  164.485688]   ex=3D       85902us timer=3Dffff830461939070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461939000)
    (XEN) [  164.486864] CPU20:
    (XEN) [  164.487171]   ex=3D         895us timer=3Dffff830461915070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461915000)
    (XEN) [  164.488358]   ex=3D       17895us timer=3Dffff830461979aa0 cb=
=3Ddrivers/cpufreq/cpufreq_ondemand.c#do_dbs_timer(ffff830461979ae0)
    (XEN) [  164.489569]   ex=3D        2914us timer=3Dffff83046198fdc0 cb=
=3Dcommon/sched/core.c#s_timer_fn(0000000000000000)
    (XEN) [  164.490633] CPU21:
    (XEN) [  164.490947]   ex=3D      461154us timer=3Dffff830461925070 cb=
=3Dcommon/sched/core.c#vcpu_singleshot_timer_fn(ffff830461925000)

In the latter case, I see only one cb=3Dcommon/sched/core.c#s_timer_fn
(two of them before). And also only one
cb=3Ddrivers/cpufreq/cpufreq_ondemand.c#do_dbs_timer.

Is the s_timer_fn related to runqueues? I have two of them:

    (XEN) [   11.751480] Adding cpu 0 to runqueue 0
    (XEN) [   11.753580]  First cpu on runqueue, activating
    (XEN) [   11.755731] Adding cpu 2 to runqueue 0
    (XEN) [   11.757818] Adding cpu 4 to runqueue 0
    (XEN) [   11.759891] Adding cpu 6 to runqueue 0
    (XEN) [   11.761955] Adding cpu 8 to runqueue 0
    (XEN) [   11.764001] Adding cpu 9 to runqueue 0
    (XEN) [   11.766029] Adding cpu 10 to runqueue 0
    (XEN) [   11.768045] Adding cpu 11 to runqueue 0
    (XEN) [   11.770050] Adding cpu 12 to runqueue 1
    (XEN) [   11.772033]  First cpu on runqueue, activating
    (XEN) [   11.774051] Adding cpu 13 to runqueue 1
    (XEN) [   11.776047] Adding cpu 14 to runqueue 1
    (XEN) [   11.777993] Adding cpu 15 to runqueue 1
    (XEN) [   11.779913] Adding cpu 16 to runqueue 1
    (XEN) [   11.781872] Adding cpu 18 to runqueue 1
    (XEN) [   11.783912] Adding cpu 20 to runqueue 1
    (XEN) [   11.785855] Adding cpu 21 to runqueue 1

But when I force all CPUs into a single runqueue, there are still two of
those s_timer_fn timers (and also two cpufreq ones). And still only one
after S3. And still the issue after S3 persists.

Could the issue be related to those timer differences?


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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmnGfHsACgkQ24/THMrX
1yyOoAf+J/Um5unsDNqh4unMBlGJx5D7CJPTanfcEDzpgk5X0epHrClkkGdzKTb6
gCiSxQ3GtlgGkCaEiavQkx2qDvjoMZfhNK5A6wjZgS1uh39J9na95zUUUCWaTIJb
uzmdY/Lt96RBrcEka1sloDSFAOpBsszmzt3QdGOgLYhvASEIJ4uC/JUNOrjOfKFK
GxLdhyNq3cjypqWMgGXi9r5580Qw/xIXo53uR4BHb6Uo4uBXlZgQe7YNYEJ1pzw8
kjhpwmpzv7z4Bz2FrfpuMVBSlX1gPwETfnhvjXw/tQunXZifTp1axKNpBlDSGy8q
ItDK6dbcew77Q1yv8p3gGA/isjUhyQ==
=wcyC
-----END PGP SIGNATURE-----

--U3WZiaCdmRm0vx68--


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 12:51:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 12:51:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265592.1556418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w66en-0002SZ-0k; Fri, 27 Mar 2026 12:51:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265592.1556418; Fri, 27 Mar 2026 12:51:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w66em-0002SS-UJ; Fri, 27 Mar 2026 12:51:20 +0000
Received: by outflank-mailman (input) for mailman id 1265592;
 Fri, 27 Mar 2026 12:51:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1w66el-0002SM-QZ
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 12:51:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w66el-006iA4-5U
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 13:51:19 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69c67d45-5cb7-0a2a0a5109dd-0a2a45039146-8
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 13:51:19 +0100
Received: from [209.85.128.52] (helo=mail-wm1-f52.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jgross@suse.com>)
 id 69c67d46-1947-0a2a45030019-d1558034f00b-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 13:51:18 +0100
Received: by mail-wm1-f52.google.com with SMTP id
 5b1f17b1804b1-4852afd42ceso16067205e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 05:51:18 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48727189cd1sm15062955e9.29.2026.03.27.05.51.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 27 Mar 2026 05:51:17 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774615878; x=1775220678; 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=SckRGSf6TTBxZUFG7HmhvZkcg5DfrpwMyToGdndXJJ0=;
        b=SIbFtVd54eQAbv3ikX+l3gPLd25m8o9PKoer1Z9wStWFDKvbrWOymWD+a/1OOk7+/L
         uB0qWd+YxvgdljB5awVuvlEQLCSVmpGimthqc9fbnRzl0bRLrun2vjsV5fMEc+dnLGw7
         s92RuYb+62VGGKGxIO4nEtmycxSAZek4Kb+TBUBx4kxZybEk7n/ibPKg3rai34t2d6B5
         N93263yANgaATtFq68Xg0RkPQKkDoPjUqBn+2ezJcvLX5FEJX85NOmmBb3QJVoIMsbXg
         MDJIAbCelgUDHsrFDDSQ3AdzZogCTrJxC2JCTdWggX11r3xmQ7b8jaEVnF5ISB1REBeD
         RQvA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774615878; x=1775220678;
        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=SckRGSf6TTBxZUFG7HmhvZkcg5DfrpwMyToGdndXJJ0=;
        b=XE2Tz5mYIUHl+TgCnUp3GPH3+T1zUkVG1uHQOa/eXwCfsJ7UNjeYqP3G1UHZt5nT2e
         II99IG+HX3TOEvKPShiIzgoBD9Tc9xYMEXoL78ZwpXyVHFF4OQVVHzaBeVDcb7Irpafb
         Lf1Kcwg8HJ4iCyweTxg/dVanV10jFut6ANFyuGJz5E+6I7CSn3z+1S0ou17BAMAyu7pg
         zV5k6MnZJFqVFlU6vUM8PKwZVi6sfvTXnQXV6LFIrP6N61wOiZWhu3io87WgGtNKKvgj
         W1s3Wyscow5/9K1BdHW56V1uH7KqhIdaUTlFKezvjiqQclzGu/kuIuawJnKkeBnqpDGr
         JIWw==
X-Forwarded-Encrypted: i=1; AJvYcCXALY7JldFcnR1wzvGPPpJ9fRIDREKLnpI/v2Q77I+O8BHN1QjxKVFREhLgk5G/3M/CV6HEpm0Srkk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwLzB7O9oh9PqRMmqw/mico2qxxhINuH90HBXgbKU/0w0+/wGNE
	/m2v73WwnUedvZ5DwAyaJ040zBFwpOIvH1+vVndemZbW7758kC3OfOHLUQV5U9gLD+w=
X-Gm-Gg: ATEYQzx7+QT6PbyWsVU3SF8RFlXweReqs1x7EBCVIC+QgS1hOpzRgC6U2Y5XGj9w+nW
	S5TJ0gr+LkwG/Ah9t0WGTfXaDPyWBeaVxr4WwEMMNik8+ik4QIN8fimW+etvWWUheoeKVC+mbJi
	SFtRdpmTT0Vb/Y1ZYffPNPXsR5X1MJKOdZtnk3jGnQfuEQAiKYlT9EYnmZ9wD2fpV9gRRiNbQvc
	fGfNQomFy0estxWiS4KSqFmZFWLXt0Y/wFdpeclRRfNurCbkbqpUZYsgcDEyna0HVaU/iaFZd6/
	Ks9lMzrDdzVhiwP6f+Peq2Ps/rKZtDK3B+9+25+5tY0PQw4J4Vbb4zZHyZ7N1xXrnYOh0lskp3k
	1zYqwppucNBy8/pJ/WFiKJ25R5NAGynpog2sSRTPVd9nmP42LPo4n4NmBqTyM4/uR5PAYfdHAX/
	n3xHW/zyBixc3J+7nhjd9ZI0akI/GlO1dZZu2Z2ofqJdmDfOfc2Mwk7aS7sb5FoLCfBUZNkyxG8
	TMVK0Po6isLRLrbkxe7+tm7ae5oipdo7sFzyYYsSBCzPnQux3apyg==
X-Received: by 2002:a05:600c:1d1c:b0:483:7903:c3b1 with SMTP id 5b1f17b1804b1-48727efacb3mr37802375e9.20.1774615878339;
        Fri, 27 Mar 2026 05:51:18 -0700 (PDT)
Message-ID: <7e21c108-f747-4805-8904-b116bf04be89@suse.com>
Date: Fri, 27 Mar 2026 13:51:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/sched: validate RTDS putinfo period and budget
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 Meng Xu <mengxu@cis.upenn.edu>
References: <06fbc96288c6aba60369914c2cdbc656ca32fcf8.1774611038.git.oleksii_moisieiev@epam.com>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <06fbc96288c6aba60369914c2cdbc656ca32fcf8.1774611038.git.oleksii_moisieiev@epam.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------mGWDMak0AFJ5fCbzeXNA2PzL"
X-purgate-ID: tlsNG-33051d/1774615879-49E5B72C-7748545E/0/0
X-purgate-type: clean
X-purgate-size: 8687

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------mGWDMak0AFJ5fCbzeXNA2PzL
Content-Type: multipart/mixed; boundary="------------851aCZfoFMbQORZHgbqNyCMR";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 Meng Xu <mengxu@cis.upenn.edu>
Message-ID: <7e21c108-f747-4805-8904-b116bf04be89@suse.com>
Subject: Re: [PATCH v3] xen/sched: validate RTDS putinfo period and budget
References: <06fbc96288c6aba60369914c2cdbc656ca32fcf8.1774611038.git.oleksii_moisieiev@epam.com>
In-Reply-To: <06fbc96288c6aba60369914c2cdbc656ca32fcf8.1774611038.git.oleksii_moisieiev@epam.com>

--------------851aCZfoFMbQORZHgbqNyCMR
Content-Type: multipart/mixed; boundary="------------3JwH9fE6pjrrowzAiv4koBDy"

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

T24gMjcuMDMuMjYgMTI6MzEsIE9sZWtzaWkgTW9pc2llaWV2IHdyb3RlOg0KPiBUaGUgUlRE
UyBkb21haW4td2lkZSBYRU5fRE9NQ1RMX1NDSEVET1BfcHV0aW5mbyBwYXRoIG9ubHkgY2hl
Y2tzIGZvcg0KPiB6ZXJvIHZhbHVlcyBiZWZvcmUgYXBwbHlpbmcgcGVyaW9kIGFuZCBidWRn
ZXQgdG8gYWxsIHZDUFVzIGluIHRoZQ0KPiBkb21haW4uDQo+IA0KPiBUaGlzIGlzIHdlYWtl
ciB0aGFuIHRoZSBwZXItdkNQVSBYRU5fRE9NQ1RMX1NDSEVET1BfcHV0dmNwdWluZm8gcGF0
aCwNCj4gd2hpY2ggYWxyZWFkeSByZWplY3RzIHZhbHVlcyBiZWxvdyB0aGUgbWluaW11bSwg
YWJvdmUgdGhlIG1heGltdW0sIGFuZA0KPiBjYXNlcyB3aGVyZSBidWRnZXQgZXhjZWVkcyBw
ZXJpb2QuDQo+IA0KPiBVc2UgdGhlIHNhbWUgdmFsaWRhdGlvbiBydWxlcyBmb3IgcHV0aW5m
byBhcyBmb3IgcHV0dmNwdWluZm8sIHNvDQo+IGludmFsaWQgZG9tYWluLXdpZGUgdXBkYXRl
cyBhcmUgcmVqZWN0ZWQgd2l0aCAtRUlOVkFMIGluc3RlYWQgb2YgYmVpbmcNCj4gYXBwbGll
ZCBpbmNvbnNpc3RlbnRseS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE9sZWtzaWkgTW9pc2ll
aWV2IDxvbGVrc2lpX21vaXNpZWlldkBlcGFtLmNvbT4NCj4gLS0tDQo+IA0KPiBDaGFuZ2Vz
IGluIHYzOg0KPiAtIGNoYW5nZWQgcnRfdmFsaWRhdGVfcGFyYW1zIGlucHV0IHRvIGdldCBz
dHJ1Y3QgaW5zdGVhZCBvZg0KPiBwZXJpb2QgYW5kIGJ1ZGdldA0KPiAtIGltcHJvdmVkIGNv
ZGUgcmVhZGFiaWxpdHkNCj4gDQo+IENoYW5nZXMgaW4gdjI6DQo+IC0gaW50cm9kdWNlIHJ0
X3ZhbGlkYXRlX3BhcmFtcyBoZWxwZXIgZnVuY3Rpb24gdG8gY2hlY2sgcGVyaW9kIGFuZCBi
dWRnZXQNCj4gDQo+ICAgeGVuL2NvbW1vbi9zY2hlZC9ydC5jIHwgMzcgKysrKysrKysrKysr
KysrKysrKysrKysrLS0tLS0tLS0tLS0tLQ0KPiAgIDEgZmlsZSBjaGFuZ2VkLCAyNCBpbnNl
cnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS94ZW4vY29t
bW9uL3NjaGVkL3J0LmMgYi94ZW4vY29tbW9uL3NjaGVkL3J0LmMNCj4gaW5kZXggN2IxZjY0
YTc3OS4uYzE2MWJmN2Y3OCAxMDA2NDQNCj4gLS0tIGEveGVuL2NvbW1vbi9zY2hlZC9ydC5j
DQo+ICsrKyBiL3hlbi9jb21tb24vc2NoZWQvcnQuYw0KPiBAQCAtMTM2Miw2ICsxMzYyLDIz
IEBAIG91dDoNCj4gICAgICAgdW5pdF9zY2hlZHVsZV91bmxvY2tfaXJxKGxvY2ssIHVuaXQp
Ow0KPiAgIH0NCj4gICANCj4gK3N0YXRpYyBpbnQNCj4gK3J0X3ZhbGlkYXRlX3BhcmFtcyhz
dHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZF9ydGRzICpydGRzLA0KPiArICAgICAgICAgICAgICAg
ICAgIHNfdGltZV90ICpwZXJpb2QsIHNfdGltZV90ICpidWRnZXQpDQo+ICt7DQo+ICsgICAg
c190aW1lX3QgcCA9IE1JQ1JPU0VDUyhydGRzLT5wZXJpb2QpOw0KPiArICAgIHNfdGltZV90
IGIgPSBNSUNST1NFQ1MocnRkcy0+YnVkZ2V0KTsNCj4gKw0KPiArICAgIGlmICggcCA+IFJU
RFNfTUFYX1BFUklPRCB8fCBiIDwgUlREU19NSU5fQlVER0VUIHx8DQo+ICsgICAgICAgICBi
ID4gcCB8fCBwIDwgUlREU19NSU5fUEVSSU9EICkNCg0KVGhpcyBzZXF1ZW5jZSBvZiB0ZXN0
cyBtYWtlcyBpdCBoYXJkZXIgdG8gcmVhZCB0aGFuIG5lY2Vzc2FyeS4NCg0KQ291bGQgeW91
IHBsZWFzZSByZWFycmFuZ2UgdG86DQoNCisgICAgaWYgKCBwIDwgUlREU19NSU5fUEVSSU9E
IHx8IHAgPiBSVERTX01BWF9QRVJJT0QgfHwNCisgICAgICAgICBiIDwgUlREU19NSU5fQlVE
R0VUIHx8IGIgPiBwICkNCg0KVGhpcyBtYWtlcyBpdCByYXRoZXIgb2J2aW91cyB3aGF0IHRo
ZSBhbGxvd2VkIHJhbmdlcyBhcmUuDQoNCldpdGggdGhpcyBhbmQgdGhlICJjb25zdCIgYWRk
ZWQgbWVudGlvbmVkIGJ5IEphbiB5b3UgY2FuIGFkZCBteToNCg0KUmV2aWV3ZWQtYnk6IEp1
ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCg0KDQpKdWVyZ2VuDQo=
--------------3JwH9fE6pjrrowzAiv4koBDy
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-----

--------------3JwH9fE6pjrrowzAiv4koBDy--

--------------851aCZfoFMbQORZHgbqNyCMR--

--------------mGWDMak0AFJ5fCbzeXNA2PzL
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/Ey8FAmnGfUUFAwAAAAAACgkQsN6d1ii/Ey+S
6Qf+KCJLWpgdV2wtXkXAOqjU9Cb36rJlefMLZEW36K9c1c1WXUWa1F/PKvQiClWhRAvCzIPcIEZW
/k4FHM1S73B7OYTCETcGaNzjdQlWtq7etZ6855RezgropNeln8/PZ9+8jHR4FVgsPOj1BFexOsAx
ELJl2pSJo7HfrpllmPjTEZtDW+/w9wnskSF7jBmTgnW12zmw3AGdlwY1jbo5xmTpFLqYgZ2WVvEX
HZ8yIalrjKxGFZ/9Q0oxlm7onUP9ydmDjMghFAIzSwXE5MeB0x+dUvgLdvqLkRm/E/QvwsshzyGB
dmpitpDktavOr86/LICqIyRvoV6gV4j8I4PcvsR5Qw==
=NeA0
-----END PGP SIGNATURE-----

--------------mGWDMak0AFJ5fCbzeXNA2PzL--


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 13:47:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 13:47:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265677.1556476 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w67Wn-0002yI-Ds; Fri, 27 Mar 2026 13:47:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265677.1556476; Fri, 27 Mar 2026 13:47:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w67Wn-0002yB-Ai; Fri, 27 Mar 2026 13:47:09 +0000
Received: by outflank-mailman (input) for mailman id 1265677;
 Fri, 27 Mar 2026 13:47:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w67Wm-0002xd-8D
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 13:47:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w67Wl-002rfW-4Y
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 14:47:07 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c68a4b-2eae-0a2a0a5409dd-0a2a4507c436-42
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 14:47:07 +0100
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c68a5a-fd74-0a2a45070019-d1558035c515-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 14:47:06 +0100
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-486fd3a577eso19108745e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 06:47:06 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487271be661sm15312185e9.35.2026.03.27.06.47.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 27 Mar 2026 06:47:05 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774619226; x=1775224026; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mrsqabFDGCS4QDEge6h/NqjrtgpOfCibn08AUIYnCPE=;
        b=BIcTD56a67ikJecaGND66/fiAYwbZjzWK64GYaZQ1wBExWeGmlqJrg/309t+n3AfJE
         UPFaDvlYwNKVcBmVOskMmJ1x133MfgTtba0rwrUNFdDpenpaVSLoyDhurI3WLIJwWzKH
         94keoV6SHqfa6HXIOQy1aYO3nFiKZuP/FkSomyPVcFDBCqGcUNTW2wWSz8q9ibQjLxzf
         090XKwEwSRd/Ajocola/3hV+UIinanfUzAS9tu2Unlm2jMJIX1Y4i/uq65VqfYsXXSlg
         +E3euTYszqWNWJ90bD36dCgUZSi9tT00sT2cGxC0MmTWVjRs/3qCubBnpWRI+dF53QQZ
         uUoA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774619226; x=1775224026;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mrsqabFDGCS4QDEge6h/NqjrtgpOfCibn08AUIYnCPE=;
        b=f+sjXNfJuwenVo8r3gs34syzPIWZT1USvAKRo9cgV8AtqFp0OKlYCtwLjHH7fCtMbf
         E/I6zgONsyfPD1bNFeaooz9XOol6v8jWW3ovr+IYp1owvtohchCWockxY8SullyduU+8
         rTSBegjznCoB23d8EWW+KBjgKC0wNnPv0RHZDSSVtX5clHXes7IVIOa6AsjXd3hfS2O1
         I5HFXoavd1/AuLwwCR5y3iiWlNnCjTRoKStSsXjQ/BeOojy/R+LwqpCBNTaamy9XDhF/
         v1FzeLSqqnUXTV3Pdj47kfm8Qw9HXJBretQ5V/Q9xYMmLrS/WcueP+MyKaPr1MLMdJIo
         psJw==
X-Forwarded-Encrypted: i=1; AJvYcCXIJIJoPLYYnTauq+80WC3qHB7+8EQ76WIRCDCgk9BOnZPGEEHndqs2mwZYaQV360L7rCAVs/xT5zc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwOUc5UC5xVsPCXjIqqA2ifTws6M/2DcxUkLfAwP9DfIquQm3gJ
	tqyWIpXg1JX9EUSgU+1fou5yEjXl4MOyonoG+f4urO5igvNpjHjgPPaZn2Y6xae7Gw==
X-Gm-Gg: ATEYQzwxuMdHOKtzCPPstZFvgQgWDV5CVA+tZGIhELqNC92AStZK0hBpP+PAYO186ZS
	Jbtr/d9mGeaSysZTKOhaYJOOR+HgBFzE4MAaIQC0Tmaz5Vu4fzYDvcU61brVEPfcLfl/dcETovf
	HTcJvi2Ed/72eX8zMllAdo/ZCkCz8ty7ZjBaUbCDqau3yAnu5jTAsSUguz0B92rZpaM1TBu2C+6
	BPEH5U1tmT/ii+NwKtKbCLQRurQcTr5VQRnkIpbN4L9mHR87MBbQFcC1XEr+tyOeLvGUGhT1kpr
	8kzUbAsJwHWlaZKhOr9P2+9gqxFOeSeQNh+WQv+vEGX2BeBE/JCNd/64C4BQQ3fW1swkZy+Yxpz
	ZrjIYigFz/ejl1y94FOU9OnXh+C5IcnxFtoPBRLK6Ze1tpXJv6bKF5j+vF5x4TuBcTPwP2Psm08
	RnJoeIR/LT5CUlYb7l10crCj37gPanymeeow90hjK3j9AoZuWCVhvlbA8R+sQa3hwJ0i3atOCUu
	E7+ITiUDCOcRVqLPP7iGAwaog==
X-Received: by 2002:a05:600c:3d87:b0:487:1fbf:e0a1 with SMTP id 5b1f17b1804b1-48727d5a2bamr42394035e9.4.1774619226373;
        Fri, 27 Mar 2026 06:47:06 -0700 (PDT)
Message-ID: <d7ef8378-9cce-4be6-b513-7dede80fe7d0@suse.com>
Date: Fri, 27 Mar 2026 14:47:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/4] xen/riscv: add exception table support
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1773419622.git.oleksii.kurochko@gmail.com>
 <c6d30625371d56bb8345c987ac6d8095cc7301d2.1773419622.git.oleksii.kurochko@gmail.com>
 <db8fd1fa-2db4-4df4-8e21-1412783786b2@suse.com>
 <09c5badb-f58b-4331-8138-cba99eba17b0@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: <09c5badb-f58b-4331-8138-cba99eba17b0@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1774619226-56CAA303-226EAB3F/0/0
X-purgate-type: clean
X-purgate-size: 3489

On 27.03.2026 13:47, Oleksii Kurochko wrote:
> On 3/24/26 3:04 PM, Jan Beulich wrote:
>> On 13.03.2026 17:44, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/Makefile
>>> +++ b/xen/arch/riscv/Makefile
>>> @@ -3,6 +3,7 @@ obj-y += cpufeature.o
>>>   obj-y += domain.o
>>>   obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
>>>   obj-y += entry.o
>>> +obj-$(CONFIG_HAS_EX_TABLE) += extables.o
>>
>> Simply obj-y please as long as the select is unconditional.
> 
> I see your point and at the moment there is no also other options how
> to handle case(s) for which exception table is introduced now. But if 
> potentially another mechanism will be introduced what will be the point 
> to have extable.o code in the final binary?

I'd like to suggest to keep things simple as long as they are simple. It
might be different if you firmly knew the other variant is going to be
needed pretty soon.

>>> +static bool ex_handler_fixup(const struct exception_table_entry *ex,
>>> +			                 struct cpu_user_regs *regs)
>>
>> Nit: Bad indentation.
>>
>>> +{
>>> +	regs->sepc = ex_fixup(ex);
>>> +
>>> +	return true;
>>
>> Nit: Bad use of hard tabs.
>>
>> And then - why the boolean return type, when this can't fail anyway?
> 
> As potentially we could have other handlers which might return not only 
> true, so it will be easier to handle return type inside fixup_exception().
> 
> But if you think there is no any sense to have for handlers the same 
> signature then I am also return void instead of bool for 
> ex_handler_fixup().

It's not like there's no sense in that at all, but again - let's keep things
simple as long as they are simple.

>>> +struct exception_table_entry {
>>> +	int32_t insn, fixup;
>>> +};
>>> +
>>> +extern struct exception_table_entry __start___ex_table[];
>>> +extern struct exception_table_entry __stop___ex_table[];
>>> +
>>> +#ifdef CONFIG_HAS_EX_TABLE
>>
>> Why, when this is a RISC-V specific header and HAS_EX_TABLE is selected
>> unconditionally?
> 
> To handle the potential in future case that CONFIG_HAS_EX_TABLE will 
> become conditional.
> I thought that it makes sense to be in sync with common/virtual_region.c 
> also uses ifdef around exception table related information.

But that's common code, which has to deal with mixed needs of the various
architectures.

>>> --- a/xen/include/xen/xen.lds.h
>>> +++ b/xen/include/xen/xen.lds.h
>>> @@ -219,4 +219,14 @@
>>>   #define VPCI_ARRAY
>>>   #endif
>>>   
>>> +#ifdef CONFIG_HAS_EX_TABLE
>>
>> No real need for this?
> 
> Here I can agree that there is not reason as if CONFIG_HAS_EX_TABLE is n
> then no one is expected to use exception table so the section is empty 
> and don't occupy any extra space in binary (except potentially some 
> space because of alignment).
> 
> 
>>
>>> +#define EX_TABLE                  \
>>> +        . = ALIGN(POINTER_ALIGN); \
>>
>> Strictly speaking the original 8 (in x86 code) as much as this is more
>> than we need - each element is a struct of 2 4-byte entities, after all.
> 
> For the  current struct - yes, we can do . = ALIGN(4) but if the 
> architecture will add uint64_t inside (or unsigned long) shouldn't we 
> then have ALIGN(POINTER_ALIGN)?

Along the lines of what I said above, here things want to be consistent.
The alignment effected should be possible to justify by just what is in
the tree, without resorting to any unknown future.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 13:55:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 13:55:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265691.1556490 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w67eo-0004vc-7W; Fri, 27 Mar 2026 13:55:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265691.1556490; Fri, 27 Mar 2026 13:55: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 1w67eo-0004vV-34; Fri, 27 Mar 2026 13:55:26 +0000
Received: by outflank-mailman (input) for mailman id 1265691;
 Fri, 27 Mar 2026 13:55:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w67en-0004vO-4a
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 13:55:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w67em-00006j-ET
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 14:55:24 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c68c44-2eae-0a2a0a5409dd-0a2a4502830e-12
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 14:55:24 +0100
Received: from [52.101.48.23]
 (helo=MW6PR02CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c68c4a-63bb-0a2a45020019-346530175dc9-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 14:55:24 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DM6PR03MB5370.namprd03.prod.outlook.com (2603:10b6:5:249::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Fri, 27 Mar
 2026 13:55:19 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.024; Fri, 27 Mar 2026
 13:55:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hW0IwVEpoB6nu6nnnPftMw32GKkKJdWFEPE4gwkBoDjAvBy0aXRK4i7OBQ5uU3gLmMvRuZ3hFFw//Ixc8XbSKoWdfJha9xKZcmNuYnN1/DVGMYRhv3rn5OTbeYDWuax4mSR2zrMlGRwKcF5Wr32syzptVHiVBxhHSWqknXJ8CtuI8pc0WWoogElAhPMySxqWZXpZYOA13Ye7yzckqLlpSEiIIReRX7LT8JfXU0V5fzrjZJ6GfdsO717cEnn1QWr6uB8KD+GF8rGj5jBCaB6MNV3qmrU9qIHXhRO9QAzvjVITROXxDxkT3R2TCDF+WqpQbpKTmsBjCUe76gt2bzpJmQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Y9pb3sng9zipYA4/4IZ+bKnGfqk0Aeb69HVG0bun0+k=;
 b=XfT/BJhXJv1hxfRjy3YN6i/mnSWxI+mpXM9EH3SxC+VK100596wKcmCKrjxT0dIgFgrD8EN/D+7QitL3P3PGZjTmfwRRGdIl7LvFHFxdF9znOfrtZOhp/UCemes/qhSWP9KuEASqVIMe2A6UvNHzTyW8uP4rIZWUwQKoMj9aK1X4N7XegQWUGJ9aLM6OvarXQdrAkeBfO/Fea1wu5jLX9JtWlCqB1dmpVdAVPZNqHBdgvdSGd5/gVuMIZ2tblzyQ1vuXAK68/DmFxapulD1oUKfHbpys7Uuit25BM6XEGh2uDa1ABTMKvynL70wAcIjFIpLn62UitUVrXsoCIFSs4A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Y9pb3sng9zipYA4/4IZ+bKnGfqk0Aeb69HVG0bun0+k=;
 b=oRIqew+GolKYH0WJQj+xYAQUn6W4jkErd2pm5KNKiIsV5itLHdu0j0jv6hPLbClHToki0UUNwLeAlL450xK2Vg53iN0yxw+9GKd5q0PzL3qk38ixBnLIthVpHmUVNZAFWdGIfkFIWpPW4H9DHP6QPbavNdnDJvdItIc4LLZKmfQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 0/3] xen/uart: some fixes and improvements
Date: Fri, 27 Mar 2026 14:54:17 +0100
Message-ID: <20260327135420.7246-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: MA3P292CA0058.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:48::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_|DM6PR03MB5370:EE_
X-MS-Office365-Filtering-Correlation-Id: 05b69511-260a-4626-ead9-08de8c087b5e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	lniu2MvbTVoYLR09zqxpKxt7y6FhAVGZvXHx6pPhPbcl7NqRaTJUEqQbz/8OWCFhF+s+ydwylAdLaPsQHtUZe7K/gp6/f13qYmNuIXToHI99ivhDH+xLwzdcQl+aKbNPmnNVrOS2/RdnlGz3Tj2/OQrbyA/CM9CyFPOj0kvwggLrKO/OLgAVjkxm3Z83kflya2In1TKNXCjn/Z8VuJN8WQiZPcRzDSECMXUxUgGJswzDb+XQwiDfmQQc1QAUC3E/d0Yf10EESWaUmrxrLFQVduJ2LmOwN5krLQNlR9dSrNNPi/W5TGkRRTa8xRRGy/ZY+O61f01fQG4Bl8Naur/R2jTmngVyH2Q6gYbnnttxP9KJF3qfkBD6JYTDooqwYuBHbgIPKXeY1DJV7w2NfflBPY1CkJbBQ/FvPXppPM11SaZxOo9TqIkGkzMH/UlzB3B80GKJbZ6kp3KCCpIBiHYyEFwCGN9UVnEhw22g5y9AOC+rvddaw2DDWFw0RwXuLE4fj5Sh0p0CXkSfbD/gIS3SA0/vUz9YDzkdNUNs47CPw+wy78SyEZaSnVXYL0/6KrkttAi/YPrawW29WSKiPTSOg2vw9nTVZ954n3rkx+3uH6IXAXLpxL/BpM2EFph4+xBjvsQCFd0mOcKkTDR1G8OAONiztnbkrnLsHMAfvucMNn20r1XyvaQJ8MD5erV9edLaXqEYQNDuhYDJXqmOmGo+UIIHitxdFQIHK87f3iOEgWI=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Q3k4SzVCTVNmQTRiK3V5Vnh5MFRKNzVRdUVIYzRnZHR2REJqdnJzbnFpSTlu?=
 =?utf-8?B?NWR2TzU3dkx0UTd5UWswVkdDa3Bqb3J3ckV5Z1h1NmdOQ2FTV1B0OTZlUmJv?=
 =?utf-8?B?a1Y3ano3V2U2TitZYVFzYW9aRWxLTWFTQndWa2MzbVU0VitLaEdoUVkvY0pD?=
 =?utf-8?B?bkJiSVp3Zi95Mk0zaDZpOFFnaUt3T1QzUjJMSVFXTHBUU0lXOGtDWUpOTXZ5?=
 =?utf-8?B?bDIwT05wWWZtM09UMXZ2OWM2TEpkSjZKb2lHc3NPZmNCVXRXVHV0aDBBaDRU?=
 =?utf-8?B?Y0dSb3FsaGJVMVdKMXlNS29DNmNSa0prSjRBNFFGUkdESG5NdWgyaGR1a2NL?=
 =?utf-8?B?SWJzMnVJTktER2dzUWpwTjNiRkFpcHkyRlNoejBQN0RoZ25RMEdERjd1aVZQ?=
 =?utf-8?B?SVBxYmprR3c3bzlUNkxna3d2SG80NlhVSGJYaEdLSEl2VzJKcVdkMHZUSVFM?=
 =?utf-8?B?em1sb3J3d2NCUzJsNE5JSFNrK2pkdmttUGg3L2ZOTDNWRG8yZExZV01pdXRB?=
 =?utf-8?B?NEEvUzhDdkhDTE9JUnp1dEdjOGJCd1hWdE5QMXhYcG9mdHlaN0JPWlpoS3d0?=
 =?utf-8?B?dmdQN2MwckFnM3ZuZ1FXR0FpajQ4REdqWTBuSGVMZFZUUjBOUkVpbnREdytq?=
 =?utf-8?B?Ykl4a3JPbkJkc1dxZ2Fyc0dmWkNlNUZXeXhiZ3VFOTVrVzJyd3kxSWw4MzZ4?=
 =?utf-8?B?RmgzbTM3ZlFLUFBxa3ovOU5pTU02TE5leGpjamRuWG5nKzhqdlhhK0dkbzlK?=
 =?utf-8?B?TzJTNCtiNE9RNEJzYXdSUVVjSDNVTDRkbFZrSjgzam9YQnlqclQ3KzIrZU9p?=
 =?utf-8?B?NmpsTCs1NUxpQVhKY2pxc0p5Sm1xVW5CZTgzZkVTRzJOcGYwWHcrMUEzMFUy?=
 =?utf-8?B?TStHWmVxU1IzajFmTjZxMW5zZ2I3Q0VEUWpxL0hwZ1JrZGc1cWgwMHpjM3VD?=
 =?utf-8?B?aGUveTdQR1d2bGdzK2xRYVdLN1NKK2gxY0d4dkl4cjVaSzA5V25jVG1sR0My?=
 =?utf-8?B?ZjZVT21xV1IwY3M0cTFSMHRDaFlrR2FYMFNEK0lvMklWY2EycVZjazdCSUNJ?=
 =?utf-8?B?WU5yd3RRYjViWHZXdWlaM21VZFVXaFVFZnBzZlNIdWZEalBoNGU2MDN4Q2k2?=
 =?utf-8?B?QjZPMHZnSUlVb3NieStmY1d2bStrQXg2d1QweDE0NU1RZzQreDBQTzRaUWJZ?=
 =?utf-8?B?UXlHU3NVS1l0VkNtMFIxTzZUczVCNmFMMWhLOTF5dXU4dEw5SjlDUEZNTy9Q?=
 =?utf-8?B?WXpuNnE3TGk4SXZzTUZvdG5vMlN1TkRVZmZaMW9zelIvaExFdzZkZ0hObmM2?=
 =?utf-8?B?S0ZjWTVzN1JkNDNzSDhWcXUzVEs4OGJXOFhPYitIUFBxVURWTFFqbzYvbFo3?=
 =?utf-8?B?QU1FS3BMQlNyUDhBSUF0TzBCek1UaEZHMTJZaU9CTXU4YnJScVBTcW9KR3JF?=
 =?utf-8?B?Q3lXUnMzeVpvOWUxS0VtSUEyWkRBd2o5enNWSXZnZ1ZubnRaU3lmZHVUa1Vu?=
 =?utf-8?B?NytlQ2JXTzBpd0x4akUzdUl2bEYycjBFb0VqNENWVjdmSlFxc0hIVDBGWXND?=
 =?utf-8?B?VXQza3JaTkY0TjhDRzR2c21melRydTZWTjFvNmIrOWo1Mzh3L0R4Y3ZNbUlj?=
 =?utf-8?B?ZlAyaGNwZWdJNTFZOU9rNVVmaW85T0RFNDlXdXNVa0ZJb0FWMGhGcTdnVmJs?=
 =?utf-8?B?czljMllZNG5kRzcvL1BvMkYrQ2syQ0xEYTYvZ0JEeU1nRjgzdnlYaFVqN3JC?=
 =?utf-8?B?Y3VZelczRTBObW45S3pyTHVZbkY1dTk2eFBFaEJ2Z2Y0bmZnK1FZK2RxdFVP?=
 =?utf-8?B?aUs4REtCYmRReTcwTkErSGQ1UWxmT1hSWjU0N1NjWDNlNlYrUzd5bUxMNzJQ?=
 =?utf-8?B?MktDM3lrTHhHc0oxcTRYOHAwQ3d0S2c5c1o3KzcvczJmOHpTcXZMTnp1cktU?=
 =?utf-8?B?U0NkVTV0M2R2MUFiaHNpR0piRWhzWS96TnF3eldIUGdNSDlEMW4vMVBpT0Vq?=
 =?utf-8?B?WnRoYitKRVgzb0tnL3oxbjJTK3JxbUliVWw1UjJPQmMwbDhaT3UxV0RRa1NG?=
 =?utf-8?B?Nm5IdTVvRi9NSHE2QThCUTZCUkYzd0NnVE5TS2g3eG1qVHZNcjY4TWsyRnBB?=
 =?utf-8?B?YUZUekM3SlJSK2ZMRFVWUmlGMm80eXh4Z1ZhLzJFQUI0bys0VGJNb1I5eUxI?=
 =?utf-8?B?cDUxRThHLytSVHIxczQxRTd0RnJ3NDBjUTgvK1VoVHV4TkE3ZmllaDQrVUdP?=
 =?utf-8?B?Z1puOG5wZitVQlVjK2dheWpVMGhOQko2WHRGbWRsQmJabGJVdTZLa3UyWkND?=
 =?utf-8?B?TTQ5VFlxVFdiWk55amhzcldGaDNyVGdLeGpkWkMxUWtHTE1PZzNidz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 05b69511-260a-4626-ead9-08de8c087b5e
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 13:55:19.3583
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: YH2u8mLdC1B5e6SlxelfmgE3t0YZ6tYlMNYEXq7gp6ar7NhpO3pzvchz+VrkEIyNE4t3J4TcsyATC0+iv9DApg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5370
X-purgate-ID: tlsNG-720697/1774619724-41290DB8-F632E9D0/0/0
X-purgate-type: clean
X-purgate-size: 474

Hello,

First two patches are bugfixes, last patch switches the ns16550 driver
to use pci_sbdf_t.

Thanks, Roger.

Roger Pau Monne (3):
  xen/uart: uniformly set ->ps_bdf_enable for all PCI serial devices
  xen/uart: be more careful with changes to the PCI command register
  xen/uart: switch ns16550 to use pci_sbdf_t

 xen/drivers/char/ns16550.c | 145 +++++++++++++++++--------------------
 1 file changed, 67 insertions(+), 78 deletions(-)

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 27 13:55:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 13:55:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265693.1556506 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w67es-0005Nt-Mc; Fri, 27 Mar 2026 13:55:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265693.1556506; Fri, 27 Mar 2026 13:55: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 1w67es-0005Ni-Js; Fri, 27 Mar 2026 13:55:30 +0000
Received: by outflank-mailman (input) for mailman id 1265693;
 Fri, 27 Mar 2026 13:55:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w67er-0005Mk-5i
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 13:55:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w67eq-002tUt-HM
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 14:55:28 +0100
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c68c4e-bab6-0a2a0a5309dd-0a2a450ae2a4-8
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 14:55:28 +0100
Received: from [40.93.196.2]
 (helo=SA9PR02CU001.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c68c4f-1772-0a2a450a0019-285dc402f33c-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 14:55:28 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DM6PR03MB5370.namprd03.prod.outlook.com (2603:10b6:5:249::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Fri, 27 Mar
 2026 13:55:25 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.024; Fri, 27 Mar 2026
 13:55:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jXpBxFgmWHq+sRMVRK+Ges0s8czGkBxI5p8JPrpSSn6JD0Iq+dXheDM4iiSZzLdJ6l0XKy8mU2Eh3TNUGx2rj7sXeKdFBB3VO312ZLrXayT+gelLYprMYKDF0B1PoN2ziWaRGRpFvp2ghVC5i9MxYPZMCsN6tgqL3fzYuoohBsfpZtVyDQJc+EviwT70lq43bWKujyDm1rXoArxqvKnm3OfZUqLvVMvaUUupB5vGVCtzFMIbQ5PmQeAgroHNLp0/Ih6QYJdUSSyql53ZpS3Ejc8iKfzQy0F9tW7LntAlCcnSJtv8LasMrCEYz2z4mv/3PMjOzDIbnUBHLj8Rkw0S/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=FJ0Ji5W2h3aOIBrVtvdFNdAp9lxGhfHtiIvV+ocnmZg=;
 b=l/UwnxKfO8sEKlaZAw/GDCB7bNpKcphMcJhm/psk2vB2D0ZMWThsAwFeAFAtxJQagBB8MTnkJ4b1Sb95HHgGWEhJ6ms5ncQn9jZlYsHsbiY4LeATdSWCPrcVzECd80GHgb66zOpE1WoTt5DxildVQvJCCziJJUNS4UW6nttegl+gY3d/kxjBnpun/XNTNdtWyPuSDL8GZjWLmGomS6I2wLNq0u7hJUzqHYaqHmk2rD3LvgWA/tIrxoMQmeMkRGHMglIZ4nReUE+aqNl68n3LXZrLHmKSvxRAB0ixob2P0Sn8a4KaofWHZOStKUPvuytCAvs3VdXWn1jYNEwDpB/sbA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=FJ0Ji5W2h3aOIBrVtvdFNdAp9lxGhfHtiIvV+ocnmZg=;
 b=ukDUlovWCJrGE4StQxqz4WS7LDqMJENBiOCiYTp5yUiJNS6QP5Q0pu9aIt2w8Xk3/lVRtvz2r7HAAmwPy1+0iRJtKFbBpj1OFpXbIzZspaTDwxXILw1pNgnID7m0cQft0N3OwHj4GK8kyw7ipl/SlM2p0r/Xx1wwV7YA+0IPNrw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 2/3] xen/uart: be more careful with changes to the PCI command register
Date: Fri, 27 Mar 2026 14:54:19 +0100
Message-ID: <20260327135420.7246-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260327135420.7246-1-roger.pau@citrix.com>
References: <20260327135420.7246-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0053.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:48::6) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DM6PR03MB5370:EE_
X-MS-Office365-Filtering-Correlation-Id: 4065a55a-1c13-4de4-c334-08de8c087f18
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	ADQm7JzVMIdmKY9qo+YZU2j1GQaqIOfWdFmHPjssSBAno01T0f2mWfPgcG962IcWCZa38yUJQwW2RfuoZKp1GjglbyIeve+alu73LqMW2F14EAI+GXfQc9azDJBuvjeXiSK/BmwXhrGLZMn2CY8Z9OetGSEUim5ihqpgrezf0mMSMzQabwJMslnn8zpXIAHAlVA2yteLHvrrQmxl0T67/yGPa3xTzYhAb7DFmPC+aszC65usbybLsONXLxwxzI7iQjCnHqsN2luRKdEwNM/rJ4szftRXkEFbiDuFxoJ/ei1+u34WFahBkVRicDgZEFPeindYPlCFdD9/bK65whF3ylJ/DLiRHJ74tM7b5XlCBITBXj4TvmxG/WnzzQjFrlno7skIFD4xyjbjUXNK6CHR/r30G8Tw/fFR55kdGyX1GGU2W97K8hQVQOsShSQXILJdVmdEq7eaH0D67rOL5IFaqyDpyxvsjb4ILzM1trgteDt2nlysitO1rRONHObHIMaX2aRcy6bQzZDu7kVrzbb+NcmA1l8e4Bnw2NvHy4LiZyP3OlkvAb2REKkdZlCbgjUXHRfDL+HOfI2O+bsQweq7dA1P2galfUID/p4ONUS0G4IMSVo6tB7YpdL7BY8+LCI1muAS4OB11N6ZJG0RQ/Ax3yJbl8PIZfAa8e3HHKAeBd74D97Tnfsuiz1eW+YjQJG+GOkl7HKLmZKikErWGCWATDIzyKcDaYBK6Iwe9hCOlzI=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZmZuWnRGQ3ZvZ0JXYUdxQVZoTzRtb3hPaWh6WUZoaW1qeUhXWC9hSFQ5ejhT?=
 =?utf-8?B?VDB2VDlkMEpVU09qb2tRQklYT01MM3kwczRmaE1mbDJQbERzayt0bXMyVXAr?=
 =?utf-8?B?OVJkUzNja0VQQXh2WEZBU2lHTHpqbVUwL2x0UU92TkFOMHU3cFdrNkkzSUpO?=
 =?utf-8?B?MjU3UzNqdzE1ckdRM0ZqZ2lWbHpUdEZZU3huWDg4dzErV1h4bnM5LzFzdXNP?=
 =?utf-8?B?SVoyUStqREhwWi9SSXYzTHZ1c0ttMlE0eXhVTWptTE5pS25KYmxkRlJ2emIx?=
 =?utf-8?B?NGp1UFBWZ3YwNjg3MHBWWUE4cW1rME1QcFhheWFpYjR3clZBVkxUa3pjZklo?=
 =?utf-8?B?V0EyNzI2VXhqUjFwVEljYXdHVWMvRUd4bzB6YitzQnRzSTRsUXFlQjk1UWpJ?=
 =?utf-8?B?WkFZOE03NVdqdFlCN01oNmI3YS94a2NhbTArRHFkSnBJWXRUdzhKRGl6UzRQ?=
 =?utf-8?B?bCtwSnpWMUZYZDZvc2xySk9xaFdwOUxqL0FtbjYvYzFWdzA5d3pZVXVXUEVu?=
 =?utf-8?B?b0VncVpscy9iN3NOeVJGUUJHSUpvMEdYVFgrS0lFcXZqbnNSRWJtM1ZtbG1U?=
 =?utf-8?B?OXFQcHZIY1NrQkFPZnNnK1U2ajhicVJyNndMd1AybW5tWXZPeDhDZlRHVXFw?=
 =?utf-8?B?NGgrZDNPK1ExK1Z4b1ZEcW4zbUlWUUk0cVdVNXkxL1ZjbGNjOVMxMHBydGxP?=
 =?utf-8?B?cG9DaXlYcmxkTytsMDJnT3RIb3hpdkMrWUluV2lQR0hFZ0lHVTBjZ1RDUDZF?=
 =?utf-8?B?Sm5wSERDbXVkVEdOdDd2TE9KakxSRFBxQlMrRlJqQThDWVkzaXVQVmhmdEZm?=
 =?utf-8?B?Wkt3bWR3OE83dGxjZjZHd1VOUVdIbWgxUnR3TXpYdE82eS9kWWpYUDZPMGdT?=
 =?utf-8?B?NkJNRExLWUdMODlsaDlYRVdhSzFtYXF2ajhtSGplam0yTWliSStEaUpScTdj?=
 =?utf-8?B?NFhnYVRLT3VRdmZ5TXBnbW92c295TmV5SncyaFJHMWVpcGxmTlZadHg2Vks1?=
 =?utf-8?B?V0M1Z1FXR1hQc2RKck55bzkxY1JjdURsTUVyNnBVWnBOSkdOVXRUTGZvcnRN?=
 =?utf-8?B?c1ZpWEJMZGxPK01ETENTNzBoK2JFYnRjS0lDeWhieGJ3N3Zuayt0TTIvbVNT?=
 =?utf-8?B?QjBEZDJJTG9HYWpMWWpjMnpqWDBKdElnR1hlbThrUEh4SlFrOVoweHFScFRp?=
 =?utf-8?B?N2Y1RjhvU0g4VTlzTjhLSHFVcTJvVk1KMUtUZlVEMkc0dTJrYnhMM2phNVN5?=
 =?utf-8?B?WFNEL2JLRVJUNGVmT2hYQ1JhMzJidVl2S2ZtZTJRYjVlN0VRa1FLa292Skhp?=
 =?utf-8?B?cHpqTGw3SnY0WnZkcnNUbUpKdllFY3RuV1U2QWNxenhiYWpkNjNDcWx0dnlD?=
 =?utf-8?B?bkxldERLZm5mSW1jMFcvdm91SFVzQVM4Q09KVzNGMnlmYktrZFUybmtac0ZM?=
 =?utf-8?B?TXdaWEFSUU1BNElVMHJUNmtLTEk4c3BhUnZTYVF4VnpObzB0cHdsZXBEWDMv?=
 =?utf-8?B?eFdHNHZ6U2VldnNJS2Nvcm0xT3hHNS9BMmVsVGxxRDNMU2xORjRhVEdVK0l0?=
 =?utf-8?B?c3JvR0hYeXAxdEhPTUhiLzNNbmZHcVJwMzUxazM5bGYrSXF4Ui8yZVIyaHZU?=
 =?utf-8?B?MWlBZXQzdjBhRkRvTVhVNWFLWWtzc2hXWmpseUNqUFBMQTZMbDc4SStja0pZ?=
 =?utf-8?B?Ums0b3MvUDkyQXZpTUtIUUkrRzNrUXVKUkJEREtMYWVjQS9SSlNwdFBTL25J?=
 =?utf-8?B?U0NEUVBNQTdRSENpZ3BxK0RYNmMrT1FZbTNNak5TblFkMVQxa2FWSnl2RzZn?=
 =?utf-8?B?RXRoSStwQVoxaEFRdjlRQitLYU9JeU1qQlh1YTBNSndBZEtvUDd6M2paZDR4?=
 =?utf-8?B?YmZ3ZkwxMTJxL0o2NXh3cGR6WG10bHMzM1hLS2FLUGlzL0Ryb3htbGlZcFdB?=
 =?utf-8?B?aWh1bG11a3J1dmRYS0VUQmJnY2FTZmcrSE5FWHJKaExpZXB5bEZLNTNzSWxq?=
 =?utf-8?B?MHpuZUtZNS9IRldyOGJjdmRUNW9aMS9BTlNSQk5JVHh1Q2pNbzkvc3puY3Mx?=
 =?utf-8?B?NnREU2ZXMC9Td3ZiODFyYldUb3VoUnRLNTdFMi84dUc4RDhoZVlNOWc2REFs?=
 =?utf-8?B?WU5aUHk0Z29WbWJ0QUg2ZkU0elVKL2tNNkpsOHR1NXFPTHNuQXpSby8waXAw?=
 =?utf-8?B?T0Q1ajdlQWxRcXlRZDNvSTMzeHd2ZnhOUmVQZDF0aE9mTGV0eVZrWkV5dk15?=
 =?utf-8?B?T3dBQk45OE9NRkhvZUxQVnc0S1p6alVHdVZOMVdmZ3pVZHVuWXhnU2JORCsw?=
 =?utf-8?B?b1VuKzZwV2YwZnBSZzBzK1FLdzZqTVhINzVqZGp0aWd5eElpVWt6UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4065a55a-1c13-4de4-c334-08de8c087f18
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 13:55:25.4898
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: QL9j5cEs4ViaHU19XCp9NOP+G2g15Zkn3mv47XNM4i0sCf6NmZcq9JbeXqycDJ1bvht5ui5Jzw9SLpJV3mS0ZQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5370
X-purgate-ID: tlsNG-4011c0/1774619728-BDE8D900-87EB11E9/0/0
X-purgate-type: clean
X-purgate-size: 1803

Read the existing PCI command register and only add the required bits to
it, as to avoid clearing bits that might be possibly set by the firmware
already, which might put the device into a non-working state.

Fixes: f2ff5d6628b3 ("ns16550: enable PCI serial card usage")
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v1:
 - Adjusted over previous fixes.
---
 xen/drivers/char/ns16550.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index d05dc506ed9c..d16e447c0e76 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -283,14 +283,19 @@ static int cf_check ns16550_getc(struct serial_port *port, char *pc)
 static void pci_serial_early_init(struct ns16550 *uart)
 {
 #ifdef NS16550_PCI
+    uint16_t cmd;
+
     if ( !uart->ps_bdf_enable )
         return;
 
+    cmd = pci_conf_read16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
+                                  uart->ps_bdf[2]), PCI_COMMAND);
+
     if ( uart->io_base >= 0x10000 )
     {
         pci_conf_write16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
                                   uart->ps_bdf[2]),
-                         PCI_COMMAND, PCI_COMMAND_MEMORY);
+                         PCI_COMMAND, cmd | PCI_COMMAND_MEMORY);
         return;
     }
 
@@ -307,7 +312,7 @@ static void pci_serial_early_init(struct ns16550 *uart)
                      uart->io_base | PCI_BASE_ADDRESS_SPACE_IO);
     pci_conf_write16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
                               uart->ps_bdf[2]),
-                     PCI_COMMAND, PCI_COMMAND_IO);
+                     PCI_COMMAND, cmd | PCI_COMMAND_IO);
 #endif
 }
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 27 13:55:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 13:55:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265694.1556516 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w67eu-0005d1-Vo; Fri, 27 Mar 2026 13:55:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265694.1556516; Fri, 27 Mar 2026 13:55:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w67eu-0005cr-SC; Fri, 27 Mar 2026 13:55:32 +0000
Received: by outflank-mailman (input) for mailman id 1265694;
 Fri, 27 Mar 2026 13:55:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w67eu-0005bl-4n
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 13:55:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w67et-008VBd-Gw
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 14:55:31 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c68c51-e002-0a2a0a5209dd-0a2a4503b4f6-6
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 14:55:31 +0100
Received: from [40.93.196.8]
 (helo=SA9PR02CU001.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c68c51-1947-0a2a45030019-285dc408d95a-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 14:55:31 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DM6PR03MB5370.namprd03.prod.outlook.com (2603:10b6:5:249::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Fri, 27 Mar
 2026 13:55:28 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.024; Fri, 27 Mar 2026
 13:55:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=T3n4JlecW2F3zyvlT/XP74gJIAK8atAb0lHE9Y+gNVjX9sSyIjlGX0igSCvU4a92s1OmTFi6q9uA7xXrqjPzjPBdd30oU2boGi6rZU7rU1XaMjV3aI78En64UvWpZm63/6uBWFLYKFqFakiV4gBZEhGRqvjWjrBn1v1a7RD8/enGvAxOmA5aylGKik+LtZEK0Mirrx4FKQCJy0bQbmg2te2q7Wcha1DHjKgAWeUIKWYH2jdayaxgyipttcIm9OD0sTx9gc4q0hnP6w8muDFD1AWd165DU3I+q9xtlBzbnVhdF0etgKYhTHzizfKake6dUAto5lkmY/UKyq4dMKFNpA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=X/hgFVUOUeEuadjSINl4NrZjcrgOSJUIv+5SLjSBL9c=;
 b=ezVvAKDYe9BJShI1yE3lnRVBvr+AIMLGjzbEEspbLbI/NyLVu+jHARH5ub6pV1hqTbdJX210nGyRvcicB3ZvDkHfNVyaBRdmGXZ099/Z++eNdE1bRt8Pl00uGUt5tb2U+t8BxyCx+KLkzcYkH/NwCQzeSpGlRuDrMGgEHYlgJSHt9VaiklJWFPgp93vLukUWmaHkJ3hFyJSMpe1RM3PXbMV1kvICd7MGJmi+oqVxIKqmXL8Sd2Gawjbg/qLTkS3c5XlhKL69PwmllK/uBzV2M89+j16tosUICHQqZL4ym7VB8ijYK8O/VW/UsaNR062l1csHipnkD8hgUh6pjOFLNA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=X/hgFVUOUeEuadjSINl4NrZjcrgOSJUIv+5SLjSBL9c=;
 b=SBD+BtjOBGOHAMSpx0MbGZUwS3RzEAy5K2OQh7ODqIuyUUy0AECF2ZneqXMO6BCLMY1G7n/kLlu8lzPE4YEVXZAqyYCp+20KfvZ9w6T4AkBiKjtitIKeYUAQcDnLPwcwkkAGlyOrQUcQ9RfweNKgfdhfEXFJ7C9dO4amWpXIx8I=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 3/3] xen/uart: switch ns16550 to use pci_sbdf_t
Date: Fri, 27 Mar 2026 14:54:20 +0100
Message-ID: <20260327135420.7246-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260327135420.7246-1-roger.pau@citrix.com>
References: <20260327135420.7246-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0056.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:48::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_|DM6PR03MB5370:EE_
X-MS-Office365-Filtering-Correlation-Id: 869f2f13-ce33-46d1-ce29-08de8c0880cb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	7Krex+70GzXMm1jfwAUdiiIyWYecHmYnbOI6sgYd7yayzmnSoFuV3H4EVi0AJDhspiVBkOQkk29/Ln1cLEmpJp8VHp6KgrKsKF8Bdm10IVJILOzGV6Uof+OT+Io0LYaRScXX0d2TsFulAhvjfB34LSnMSQR4wE79xOgAIjqmzm5UO8tJKS4M7d6y5Zmy7/GlYKtSgYKeQKbYdRj9eW9fXThxfOdWE1I16WOzlf/Vt64EtdPlh6NZMsN5Kuook/KePISXEnfmx5x4na+i1Hm1Ku5YYuG3bP7O/AaTskbhyNrO1hSNorz9fxDdFqjUU/tP1hd9XLP3ExRz1eKDyZCaDhWJamfllHd/sKEui2m8Xk9Nmk8WKbU2TSOpng/O8ww0W56ZRASMzds3Mo4/iYZHLb9vrWjYzRvVvNCG9gLD2HNp9PJLJZ9d3Qz8+dPAUxvp/0ps8dRsCWmqnjAOaOjSbF+szGZ4i9OeNqVSD9zdYoRBsmyB8jJr4Zy/dn2jdqxRD8zKpryJWcI2C9/hNi8F6yPIVQkn2Y3UW2sa42BfqVFRneCVUMYy1CLF/THz9F+jlcSkkuSfD65/cYucqpUHshLWsLj42T1PviLHFGyySVjplwL0c8MXnRNR8wabcmaWNl4AISZ849FQoFzrfwthllAKVrPcgrhXXJTF5b9+3+BXfzG8hSWdIEgNbVNw3JB0XCa8O+4FyboR69+C498sZZdOmzeiD0rm4Gjw+7So8D8=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cWVVK1ZkWndLYkhEQzc3b2Nac1ZvZVNrNmwrdWZqU3hjc3dsNDdvODIzOWJO?=
 =?utf-8?B?YTM3aFM4QzdJV2poWlV1SlRWdVJXZmp0Z0lkWGlIdkJFZ2x3eE5WUytXZlJ3?=
 =?utf-8?B?VVJpZ3UwbXJJNDIxTVprUGZuUlZ0OW50enc5ZExEYmRQcXhVL2wyZnEydVVJ?=
 =?utf-8?B?bWVONzdiSGpBdWRnVWhMQnphZ3JvQUw2MGNmemgzMFFXODlpazdsZXNxTUx1?=
 =?utf-8?B?TzlsaHEyR3dKcmxRQjBKVUJ4YW4xWmpyVkhtRVduc0hlVkxNRWFFbU9ueWNa?=
 =?utf-8?B?RThSUThxNy9jV1FBdGdXODIrTmtCVzhOQXRsUDVVS0ZvUStHRTNtZklLOC9v?=
 =?utf-8?B?MHA1YmdHTTFlUitLTERXc0NyMmtWVkdEczFHT2E0eUhLemZ1ZnlWeE1xMFBV?=
 =?utf-8?B?U0NKNUFwVzM3dkZoZDZSNUNpWDZVcWE0d1o1VU5zM0FaOWRBb3VETkY2SkpS?=
 =?utf-8?B?Q0MvN1A3eHhhSHNTTnUxMzV6MGtnMXErbGZtRFZyV2hqRDZCVVcrNFNDWVNJ?=
 =?utf-8?B?b2JMYnRDVGZlb2ZwNVNmYXhDbjFsV29mdVdnaXphb2k5d3F4a3JGL2tkdFRJ?=
 =?utf-8?B?a0xZV2dObysrY0tjaXdyK1Jjc20wQVphSGt0dVJJeUp4cVhnN0NCdjFtdmN0?=
 =?utf-8?B?ZVBKNHZJYUFqbE1aSUJZMWljUmR3QVBwbjBHKzlYYm9lV1RLR3V3RU1JZng4?=
 =?utf-8?B?UXZiZnJGTTNnT0pyaUpSYlFvUkU3SldINnlVUzNlNFVubUVndm42UGJsRUpJ?=
 =?utf-8?B?K2FMNlBrblZ4WmFaM1p4aHdCdEh2UXZiaDd1OElXOFM5bUNzSkxCVld0UWlD?=
 =?utf-8?B?SmdiOGNnMUtvQUhVRkprYXdFUzlSSWoxOFpOWE5iclpsRFhzRGRLaDlwVlZn?=
 =?utf-8?B?ODJVU1AyVytMMyswVVpubXFQd1cxaER2dTEzT2FwY3RzYjJpakxnanRCNm9p?=
 =?utf-8?B?akdEd1VYSnlQc2ZqdDgxMzRWaTJ6aldWTmR1clhwaWphVmJ4djBvRXBHSW1a?=
 =?utf-8?B?Qk53Uitob29kTHMrZndwQzZ2QXdFUkxCb2hNOHpYbEJHTk9QcCtKYllQV2N3?=
 =?utf-8?B?ZEJFK0lORG1TWUNmNHRtUmVteXV2M2N6RnUzekMxTm8rdzRvempaMzBtK0V6?=
 =?utf-8?B?TDhmaGJzYlVJL2Rtb1cvdzVudDV6alZ5bi9JWEdlS2pRWVRjVFVSM0Fmdm5u?=
 =?utf-8?B?L1krTmV5aHB6VGhoTXdnZExUeTVuYUVVUGczZWdyU0laUnRkUitRc0tCTTU0?=
 =?utf-8?B?VlNxcjhFb1kxLy9zRXcyRHEvbEpGSVYwZVdKQWdHM1pORldOOTdEaXhnM0RU?=
 =?utf-8?B?TWJXUnJ1K2lOWWxTVG1HYS8yY3VYbWt2TTF0dTZieWY4YURTTm1KUTBUSlk5?=
 =?utf-8?B?Mmk3MjF4TVNQS1hxeEZzMCtmaU93NzR3SUpvTSs2TGZ2NDVQcEZoS0orSnQy?=
 =?utf-8?B?aDYyci80bEFEMENRMG50ZXd0MnhUWVlhdlkrWEtvVGJMS2ovTWpOZGtzSmJj?=
 =?utf-8?B?M0VyNkh5b04rdkd3K3RHV2tMWjNVRzZ3OHdkWXJBTHpzZmtMS3ZwV1NvVyt2?=
 =?utf-8?B?RlpLaWI0UXIvRkFGQjloTU1zaVZqcTgvQzZZYXFNOEljb0gvWkNXbFlVMkpN?=
 =?utf-8?B?RDhuQmZDZWpOYm1DL0JrSkpyWFphYTl1WmoyUmJVVVRabDdPNGFpS0FVVkcv?=
 =?utf-8?B?cVZuZGdoZFYzUVBrZWFGdGRpNFV4ZmlqcnRoVXZKUzgrU1FZeTFnTmdlTWFJ?=
 =?utf-8?B?ZEd2Vk55b2NTQXZCb2dnMXNjQ1lyc1BVeTZhL1NuUXNvaVpJMThyY3BtMndY?=
 =?utf-8?B?VTNXNFBZbkx4RFdBVStMMTJvKzk1MVlHRFhHMDNaZUN2S083Z1YzL2RaRFJr?=
 =?utf-8?B?dW91YWhxRVF3cFZSTzJlOXdVU2ZCQ1B5QmsyMk9XbHVFcndjSlNtQjYvZHF4?=
 =?utf-8?B?UHFHZ29tN0JCRndlRXlSUzlVakpRN01MblYxNmUzVGdnSWhwRm5xZlJhOURx?=
 =?utf-8?B?dnJEMXVhcWpVakxublJoMWN4TmY3dkdqNklIZ1I4d1N3ZGtIbi9vcDBMNlpV?=
 =?utf-8?B?cHMvVmxJclZWektjb1QrSVh3RlN3dnRyT2FBZzNPaEFvYVFUS0xsQytHUUJH?=
 =?utf-8?B?SGRVSDl4aGI5Z1ZCb1lhOFJLZ1Vqd2dPTXQ4VEJOdnNpK3JoTEhUSTR0TmhU?=
 =?utf-8?B?UTkxeXZ6VUYyVllJK1dXWGRYcVN3dnd6WjNMN0lzRW9tSHpsVDVtNTBNcEtS?=
 =?utf-8?B?QnhQL1BwVFFnTFpaVWtNdXRBZU9ldTY2K0EvQ0xvUTZGdHJtR3dZaGptRWVw?=
 =?utf-8?B?Rk9GUDc2cGJhd3dWUDNhWWYyd0NGRWE4YllFR0VDYngvU1lBNUxzZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 869f2f13-ce33-46d1-ce29-08de8c0880cb
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 13:55:28.3085
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: MKobCBEQCTVNgKuKGkrgN7vZrsKAmqoARcAwDT74ch4fNTgP8FjvR8BFrtvMAJJOvYs1U1STkTk+fH4bsrOCUQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5370
X-purgate-ID: tlsNG-33051d/1774619731-EB88A72C-36E9BB14/0/0
X-purgate-type: clean
X-purgate-size: 13801

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
Not committing this ahead of the bugfixes, as to make those easier to
backport.
---
 xen/drivers/char/ns16550.c | 133 ++++++++++++++++---------------------
 1 file changed, 58 insertions(+), 75 deletions(-)

diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index d16e447c0e76..0d780d82f918 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -67,8 +67,8 @@ static struct ns16550 {
     /* PCI card parameters. */
     bool pb_bdf_enable;     /* if =1, pb-bdf effective, port behind bridge */
     bool ps_bdf_enable;     /* if =1, ps_bdf effective, port on pci card */
-    unsigned int pb_bdf[3]; /* pci bridge BDF */
-    unsigned int ps_bdf[3]; /* pci serial port BDF */
+    pci_sbdf_t pci_bridge;
+    pci_sbdf_t pci_device;
     u32 bar;
     u32 bar64;
     u16 cr;
@@ -288,31 +288,22 @@ static void pci_serial_early_init(struct ns16550 *uart)
     if ( !uart->ps_bdf_enable )
         return;
 
-    cmd = pci_conf_read16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
-                                  uart->ps_bdf[2]), PCI_COMMAND);
+    cmd = pci_conf_read16(uart->pci_device, PCI_COMMAND);
 
     if ( uart->io_base >= 0x10000 )
     {
-        pci_conf_write16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
-                                  uart->ps_bdf[2]),
-                         PCI_COMMAND, cmd | PCI_COMMAND_MEMORY);
+        pci_conf_write16(uart->pci_device, PCI_COMMAND, cmd | PCI_COMMAND_MEMORY);
         return;
     }
 
     if ( uart->pb_bdf_enable )
-        pci_conf_write16(PCI_SBDF(0, uart->pb_bdf[0], uart->pb_bdf[1],
-                                  uart->pb_bdf[2]),
-                         PCI_IO_BASE,
+        pci_conf_write16(uart->pci_bridge, PCI_IO_BASE,
                          (uart->io_base & 0xF000) |
                          ((uart->io_base & 0xF000) >> 8));
 
-    pci_conf_write32(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
-                              uart->ps_bdf[2]),
-                     PCI_BASE_ADDRESS_0,
+    pci_conf_write32(uart->pci_device, PCI_BASE_ADDRESS_0,
                      uart->io_base | PCI_BASE_ADDRESS_SPACE_IO);
-    pci_conf_write16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
-                              uart->ps_bdf[2]),
-                     PCI_COMMAND, cmd | PCI_COMMAND_IO);
+    pci_conf_write16(uart->pci_device, PCI_COMMAND, cmd | PCI_COMMAND_IO);
 #endif
 }
 
@@ -452,17 +443,16 @@ static void __init cf_check ns16550_init_postirq(struct serial_port *port)
                                 PFN_UP(uart->io_base + uart->io_size) - 1) )
             printk(XENLOG_INFO "Error while adding MMIO range of device to mmio_ro_ranges\n");
 
-        if ( pci_ro_device(0, uart->ps_bdf[0],
-                           PCI_DEVFN(uart->ps_bdf[1], uart->ps_bdf[2])) )
-            printk(XENLOG_INFO "Could not mark config space of %02x:%02x.%u read-only.\n",
-                   uart->ps_bdf[0], uart->ps_bdf[1],
-                   uart->ps_bdf[2]);
+        if ( pci_ro_device(uart->pci_device.seg, uart->pci_device.bus,
+                           uart->pci_device.devfn) )
+            printk(XENLOG_INFO
+                   "Could not mark config space of %pp read-only.\n",
+                   &uart->pci_device);
 
         if ( uart->msi )
         {
             struct msi_info msi = {
-                .sbdf = PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
-                                 uart->ps_bdf[2]),
+                .sbdf = uart->pci_device,
                 .irq = uart->irq,
                 .entry_nr = 1
             };
@@ -504,9 +494,8 @@ static void __init cf_check ns16550_init_postirq(struct serial_port *port)
             }
 
             if ( rc )
-                printk(XENLOG_WARNING
-                       "MSI setup failed (%d) for %02x:%02x.%o\n",
-                       rc, uart->ps_bdf[0], uart->ps_bdf[1], uart->ps_bdf[2]);
+                printk(XENLOG_WARNING "MSI setup failed (%d) for %pp\n",
+                       rc, &uart->pci_device);
         }
     }
 #endif
@@ -533,8 +522,7 @@ static void cf_check ns16550_suspend(struct serial_port *port)
 
 #ifdef NS16550_PCI
     if ( uart->bar )
-       uart->cr = pci_conf_read16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
-                                  uart->ps_bdf[2]), PCI_COMMAND);
+       uart->cr = pci_conf_read16(uart->pci_device, PCI_COMMAND);
 #endif
 }
 
@@ -545,19 +533,15 @@ static void _ns16550_resume(struct serial_port *port)
 
     if ( uart->bar )
     {
-       pci_conf_write32(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
-                                 uart->ps_bdf[2]),
+       pci_conf_write32(uart->pci_device,
                         PCI_BASE_ADDRESS_0 + uart->bar_idx*4, uart->bar);
 
         /* If 64 bit BAR, write higher 32 bits to BAR+4 */
         if ( uart->bar & PCI_BASE_ADDRESS_MEM_TYPE_64 )
-            pci_conf_write32(PCI_SBDF(0, uart->ps_bdf[0],  uart->ps_bdf[1],
-                                      uart->ps_bdf[2]),
+            pci_conf_write32(uart->pci_device,
                         PCI_BASE_ADDRESS_0 + (uart->bar_idx+1)*4, uart->bar64);
 
-       pci_conf_write16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
-                                 uart->ps_bdf[2]),
-                        PCI_COMMAND, uart->cr);
+       pci_conf_write16(uart->pci_device, PCI_COMMAND, uart->cr);
     }
 #endif
 
@@ -1217,13 +1201,12 @@ pci_uart_config(struct ns16550 *uart, bool skip_amt, unsigned int idx)
                 uint32_t bar, bar_64 = 0, len, len_64;
                 u64 size = 0;
                 const struct ns16550_config_param *param = uart_param;
+                pci_sbdf_t sbdf = PCI_SBDF(0, b, d, f);
 
-                nextf = (f || (pci_conf_read16(PCI_SBDF(0, b, d, f),
-                                               PCI_HEADER_TYPE) &
+                nextf = (f || (pci_conf_read16(sbdf, PCI_HEADER_TYPE) &
                                0x80)) ? f + 1 : 8;
 
-                switch ( pci_conf_read16(PCI_SBDF(0, b, d, f),
-                                         PCI_CLASS_DEVICE) )
+                switch ( pci_conf_read16(sbdf, PCI_CLASS_DEVICE) )
                 {
                 case 0x0700: /* single port serial */
                 case 0x0702: /* multi port serial */
@@ -1240,10 +1223,8 @@ pci_uart_config(struct ns16550 *uart, bool skip_amt, unsigned int idx)
                 /* Check for params in uart_config lookup table */
                 for ( i = 0; i < ARRAY_SIZE(uart_config); i++ )
                 {
-                    u16 vendor = pci_conf_read16(PCI_SBDF(0, b, d, f),
-                                                 PCI_VENDOR_ID);
-                    u16 device = pci_conf_read16(PCI_SBDF(0, b, d, f),
-                                                 PCI_DEVICE_ID);
+                    u16 vendor = pci_conf_read16(sbdf, PCI_VENDOR_ID);
+                    u16 device = pci_conf_read16(sbdf, PCI_DEVICE_ID);
 
                     if ( uart_config[i].vendor_id == vendor &&
                          uart_config[i].dev_id == device )
@@ -1266,29 +1247,26 @@ pci_uart_config(struct ns16550 *uart, bool skip_amt, unsigned int idx)
                 }
 
                 uart->io_base = 0;
-                bar = pci_conf_read32(PCI_SBDF(0, b, d, f),
-                                      PCI_BASE_ADDRESS_0 + bar_idx * 4);
+                bar = pci_conf_read32(sbdf, PCI_BASE_ADDRESS_0 + bar_idx * 4);
 
                 /* MMIO based */
                 if ( param->mmio && !(bar & PCI_BASE_ADDRESS_SPACE_IO) )
                 {
-                    pci_conf_write32(PCI_SBDF(0, b, d, f),
-                                     PCI_BASE_ADDRESS_0 + bar_idx*4, ~0u);
-                    len = pci_conf_read32(PCI_SBDF(0, b, d, f),
+                    pci_conf_write32(sbdf, PCI_BASE_ADDRESS_0 + bar_idx*4, ~0u);
+                    len = pci_conf_read32(sbdf,
                                           PCI_BASE_ADDRESS_0 + bar_idx * 4);
-                    pci_conf_write32(PCI_SBDF(0, b, d, f),
-                                     PCI_BASE_ADDRESS_0 + bar_idx*4, bar);
+                    pci_conf_write32(sbdf, PCI_BASE_ADDRESS_0 + bar_idx*4, bar);
 
                     /* Handle 64 bit BAR if found */
                     if ( bar & PCI_BASE_ADDRESS_MEM_TYPE_64 )
                     {
-                        bar_64 = pci_conf_read32(PCI_SBDF(0, b, d, f),
+                        bar_64 = pci_conf_read32(sbdf,
                                       PCI_BASE_ADDRESS_0 + (bar_idx + 1) * 4);
-                        pci_conf_write32(PCI_SBDF(0, b, d, f),
+                        pci_conf_write32(sbdf,
                                     PCI_BASE_ADDRESS_0 + (bar_idx+1)*4, ~0u);
-                        len_64 = pci_conf_read32(PCI_SBDF(0, b, d, f),
+                        len_64 = pci_conf_read32(sbdf,
                                     PCI_BASE_ADDRESS_0 + (bar_idx + 1) * 4);
-                        pci_conf_write32(PCI_SBDF(0, b, d, f),
+                        pci_conf_write32(sbdf,
                                     PCI_BASE_ADDRESS_0 + (bar_idx+1)*4, bar_64);
                         size  = ((u64)~0 << 32) | PCI_BASE_ADDRESS_MEM_MASK;
                         size &= ((u64)len_64 << 32) | len;
@@ -1302,12 +1280,9 @@ pci_uart_config(struct ns16550 *uart, bool skip_amt, unsigned int idx)
                 /* IO based */
                 else if ( !param->mmio && (bar & PCI_BASE_ADDRESS_SPACE_IO) )
                 {
-                    pci_conf_write32(PCI_SBDF(0, b, d, f),
-                                     PCI_BASE_ADDRESS_0 + bar_idx*4, ~0u);
-                    len = pci_conf_read32(PCI_SBDF(0, b, d, f),
-                                          PCI_BASE_ADDRESS_0);
-                    pci_conf_write32(PCI_SBDF(0, b, d, f),
-                                     PCI_BASE_ADDRESS_0 + bar_idx*4, bar);
+                    pci_conf_write32(sbdf, PCI_BASE_ADDRESS_0 + bar_idx*4, ~0u);
+                    len = pci_conf_read32(sbdf, PCI_BASE_ADDRESS_0);
+                    pci_conf_write32(sbdf, PCI_BASE_ADDRESS_0 + bar_idx*4, bar);
                     size = len & PCI_BASE_ADDRESS_IO_MASK;
 
                     uart->io_base = bar & ~PCI_BASE_ADDRESS_SPACE_IO;
@@ -1341,18 +1316,14 @@ pci_uart_config(struct ns16550 *uart, bool skip_amt, unsigned int idx)
                     uart->fifo_size = param->fifo_size;
 
                 uart->ps_bdf_enable = true;
-                uart->ps_bdf[0] = b;
-                uart->ps_bdf[1] = d;
-                uart->ps_bdf[2] = f;
+                uart->pci_device = sbdf;
                 uart->bar_idx = bar_idx;
                 uart->bar = bar;
                 uart->bar64 = bar_64;
                 uart->io_size = max(8U << param->reg_shift,
                                     param->uart_offset);
-                uart->irq = pci_conf_read8(PCI_SBDF(0, b, d, f),
-                                           PCI_INTERRUPT_PIN) ?
-                            pci_conf_read8(PCI_SBDF(0, b, d, f),
-                                           PCI_INTERRUPT_LINE) : 0;
+                uart->irq = pci_conf_read8(sbdf, PCI_INTERRUPT_PIN) ?
+                            pci_conf_read8(sbdf, PCI_INTERRUPT_LINE) : 0;
 
 #ifdef CONFIG_X86
                 /*
@@ -1591,18 +1562,22 @@ static bool __init parse_positional(struct ns16550 *uart, char **str)
 #ifdef CONFIG_HAS_PCI
     if ( *conf == ',' && *++conf != ',' )
     {
-        conf = parse_pci(conf, NULL, &uart->ps_bdf[0],
-                         &uart->ps_bdf[1], &uart->ps_bdf[2]);
+        unsigned int b, d, f;
+
+        conf = parse_pci(conf, NULL, &b, &d, &f);
         if ( !conf )
             PARSE_ERR_RET("Bad port PCI coordinates");
+        uart->pci_device = PCI_SBDF(0, b, d, f);
         uart->ps_bdf_enable = true;
     }
 
     if ( *conf == ',' && *++conf != ',' )
     {
-        if ( !parse_pci(conf, NULL, &uart->pb_bdf[0],
-                        &uart->pb_bdf[1], &uart->pb_bdf[2]) )
+        unsigned int b, d, f;
+
+        if ( !parse_pci(conf, NULL, &b, &d, &f) )
             PARSE_ERR_RET("Bad bridge PCI coordinates");
+        uart->pci_bridge = PCI_SBDF(0, b, d, f);
         uart->pb_bdf_enable = true;
     }
 #endif
@@ -1685,18 +1660,26 @@ static bool __init parse_namevalue_pairs(char *str, struct ns16550 *uart)
             break;
 
         case port_bdf:
-            if ( !parse_pci(param_value, NULL, &uart->ps_bdf[0],
-                            &uart->ps_bdf[1], &uart->ps_bdf[2]) )
+        {
+            unsigned int b, d, f;
+
+            if ( !parse_pci(param_value, NULL, &b, &d, &f) )
                 PARSE_ERR_RET("Bad port PCI coordinates\n");
+            uart->pci_device = PCI_SBDF(0, b, d, f);
             uart->ps_bdf_enable = true;
             break;
+        }
 
         case bridge_bdf:
-            if ( !parse_pci(param_value, NULL, &uart->pb_bdf[0],
-                            &uart->pb_bdf[1], &uart->pb_bdf[2]) )
+        {
+            unsigned int b, d, f;
+
+            if ( !parse_pci(param_value, NULL, &b, &d, &f) )
                 PARSE_ERR_RET("Bad bridge PCI coordinates\n");
+            uart->pci_bridge = PCI_SBDF(0, b, d, f);
             uart->pb_bdf_enable = true;
             break;
+        }
 #endif
 
         default:
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 27 13:55:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 13:55:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265692.1556498 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w67ep-00059H-GS; Fri, 27 Mar 2026 13:55:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265692.1556498; Fri, 27 Mar 2026 13:55:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w67ep-000598-CI; Fri, 27 Mar 2026 13:55:27 +0000
Received: by outflank-mailman (input) for mailman id 1265692;
 Fri, 27 Mar 2026 13:55:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w67eo-0004vU-2d
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 13:55:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w67en-00006j-Ef
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 14:55:25 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c68c44-2eae-0a2a0a5409dd-0a2a4502830e-14
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 14:55:25 +0100
Received: from [52.101.48.23]
 (helo=MW6PR02CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c68c4a-63bb-0a2a45020019-346530175dc9-4
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 14:55:25 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DM6PR03MB5370.namprd03.prod.outlook.com (2603:10b6:5:249::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Fri, 27 Mar
 2026 13:55:22 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.024; Fri, 27 Mar 2026
 13:55:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aVhh2QX+IfrMB81zqosvz2AgZ8kClcAdXh+8N8BudTc3ZaPZJ5cUsozEVe/yeGIe+V7eSo240RfUKmzFnfr2SNbCmwuUqp39bfhS9dCUJlaQmQLfvikogv1uj1pFGDHbG9NL3iPPjQHnA/oJna7UdSEwti5AFuAF+o2VY+2Rge8k+Cd+xTGJ5SfXqeDAoRvircIYPB/i2zdngqya1lk8/y2n6dY56ZTnTRXUgAHVfiumM0dYLUmdtuRvhw0hRv7zXv8C5xTDuPQKDsnHJsk0/sq0UTwcvXrbXc3ZxfTAqvNLAmt3sxeOcTUqrs1/a1ATeGPN5B6I4GwiTV5rV/h7mg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bhmHBEQUQsV67sJGN1j2fx0kLUU8zzBp+J69Zw8ktbA=;
 b=Ht1/9ru79fgMP5zfyG4oyj93khxvw5MuFXFDfM2nPUR9azKupcdyTWN3MYcNBmtHkMXyKBG1PS5sgBzm2OMuZBbPEpMCICDSaEmbLLpCOFW1VCaSNvhUBJnGYL1VGVAsSJRbK/HMNeuqrNX9l7SKKPE5B8rnFdXzi+44zDz9lNNpnEfEO2xcyt8X+WncolplbNIAraqjWMzEFpvQtchG5WcwRwlUsf5DjYtShZJLMS8/90A3eOZfPmAYEXSdrIFyNhUP26qcS0KRUQ63Kfku35ZIUreBujCWZOgP95jm4R3XrEgfALocXry7HHSok587e2VmJPoWXpb7LtIhBZlL3w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bhmHBEQUQsV67sJGN1j2fx0kLUU8zzBp+J69Zw8ktbA=;
 b=XKI9qy6IZK6WMjvyrpsPLC0Yni1gKJEcl22GXh7sx96ks3sHicK3tuP99ldhGjfrUWyeS5WuirLhnsuu1BU37ayQduZ5L17Bo1s5Fc9sXodeNFxsXQPoTVR6pK5l+yq8gOCe6FSsY+ulNfihrjV8uShXwyvDDxbG2DrhdaFF46k=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 1/3] xen/uart: uniformly set ->ps_bdf_enable for all PCI serial devices
Date: Fri, 27 Mar 2026 14:54:18 +0100
Message-ID: <20260327135420.7246-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260327135420.7246-1-roger.pau@citrix.com>
References: <20260327135420.7246-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0039.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:46::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_|DM6PR03MB5370:EE_
X-MS-Office365-Filtering-Correlation-Id: 83a00c15-36b4-40b7-03e2-08de8c087d70
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	NOwHscqcH+XD5bhZI+aX/sOj7EI8SuBEMJCPnRex+/YIZKvKzxSnVE28jA7Ko8jpeCePZh/3s1dt2c3rq7QXUDlt2amDDuNts7sYs8H0A1Ca/rM2HNrARkSzqHvwJ2dkJwFPfjTcdFTGR6eSZWlMpCKMxlG9Us9vybdr9aEA0+xzy6IKxEybpYmeuL5v9RpDZ19eOQCoyzW19TphdyuHEiKMLyzQlMvS5DwrS4CKJErbirYveoabyZzYmyjfZB5QAMbHjKt+o7hVMX1F7SHtCQ0mGNHwetXmB424nKBCh4Mi9QO2JyY757wDjmJoionKXNjGOrdd7SuilALspQlI/NSHt0Scb5kPuZ8eyvG2aMZ/5BCOULdnqkZB7oTC6s+yHGM/mtvz6bQfI7fWbh6RpPhFLv5pFZM+zmlEo/uVKZU2GDAMGP/Nsi+XZb221cf4lFiSom+SmXv0DZw/A1MrEJZ0iKCB59Ijs//whkeG3TUrmiBWkEtgbNCTtpEvJhIQi+bljWbYjVxOV129GJVcanv1mANqbCFVeLpuDRfOi2UQwhejLLJcV5JvVEqLlzUkb6U6F+TKqkMukA4kA197YaKpSIb2n3qMwuUmQsSy4z0ZxokoaeWG/HGNGjC1MYAyeg8VQyGFd85kGAMRJJIiuBCb/nB/OaAD069+q1flY+OFMu2NwBJ6xlj6oiYI4P7B6QwC2DvkgWaYBRu2wjnSro7JgJZnSlS3KXEbTdazCJU=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RWI3UFd6VWFDeDBQSzJnNVZ1ZWtsUXAxakVQYUp3Ujh4Vm5XbVNYUzJWOU5s?=
 =?utf-8?B?aDlpOGpWdEdiSlRNQ1E4eVZ4MHBPZjdEREg2dmZoRXZBN0N1WmRINmo1ZGE3?=
 =?utf-8?B?cmZZVE5RazhPMUM5T0RDOXFZR1VUcUZjbm0wM2pSRGI1NlR0TkJlNWUxcmVa?=
 =?utf-8?B?MHUvRjc3S0tRbzllS0dxQUo0MmRRWmRHWmF0VlhnQW1aUXRNQ1l6a0FKSzJi?=
 =?utf-8?B?L29aNlBtSnVDOURWWFJrUC9tTmRGUEd5a1RwenJGeHhuOFIreEtqN2VSM2Rj?=
 =?utf-8?B?c3pleGhyRzd2MXU3UjVQQzZUSjVvcHd4a3FjTHF1RlZaMzB3cnZzR3ZXZW5J?=
 =?utf-8?B?TnBkdkYybGxjM1lyZWtaeER5am1KSEh5ZEdGd2p0VW1PN2N6NGpJVkRIamU3?=
 =?utf-8?B?d3BWQ1pBdjZ4eUV0TDY5ejlTTFFmaVIrcmV1S3RlQWloZTJxeDlpcWdrM1ZP?=
 =?utf-8?B?VU11WDVQNXZwelpNcDBLd1ZDQS9wNUhDUzl3WnlUMURhSGpiL1AvU21XZnU2?=
 =?utf-8?B?ZjNCbU5CTkxaYllQOHI0YW5kclUzdmtZUXBXRTRja1JNMmVVcmlWSGJla29I?=
 =?utf-8?B?ZFBmU3RuRmYyd3ZUN2trUXVuaDBKS3JsS05DejJ4U2Qza3hVWjd3WFRJS0U0?=
 =?utf-8?B?cCttVXl0Q0VyUGhsblptZ24yMGh1alZCTElSWnpJbnFoYUMrVGpMbEtCeVRI?=
 =?utf-8?B?dWxPYjZTTmRhaTViNUYwS1VRNXJ1WWJvTWozSXNwM3FEZDEyVyt4VHRLa2VE?=
 =?utf-8?B?TVZ1My9vT1YrTGxRUFUxczR0dmZodnRQdkFydVJhYVB6VXh1YXptUTViVjg1?=
 =?utf-8?B?KzBPVzY5NjJuOFFUbFVWamZUaDNjOVQrQ21qVUtiY0xJdlcrS2xNZEFVRXVR?=
 =?utf-8?B?S2R5TXhMZEhvSi8rakk1ZVgwQTlOYjlGd0MvU05Oai9EY01BWHI4NG5qcDlh?=
 =?utf-8?B?YU8wQ3l2aVhmK0lNREM4eWNPWHVUUnliU2ZsUGxmQi9qMmNxZ3NINFpaeTVs?=
 =?utf-8?B?ODhSMENIN1JVWEc4dEV4OUFJelNVeFBBRmgwYXhMNmtoMHBQcVlCZjF3T0tE?=
 =?utf-8?B?OVBWemIzdStpOXphYmlHMW82aHh4Yi96OXJVdXdSN0d1NUUwTlNiZzBsbkEw?=
 =?utf-8?B?Kzd3aWFPdDlhS2JYcHM2N0tZNzZrakZWbFBHaEJoUm1Lb0kvRXBlQVYzcW8x?=
 =?utf-8?B?RDFZb3RVM0hVZmxVbUZpMi9pS1ZxR2NjS1B2QXE3THcyeERGcmhpeXdveEdF?=
 =?utf-8?B?dGV6OER6a3V4bklZOVJpdlYxNlNmNkVrVnZyUCtnandXMVY2RHIxSXFyRyt2?=
 =?utf-8?B?L29rWkpZb0ZadzRaQXZ1VHE3WEV6d0MvNkM3QW8xaUs1Z1dQWFFoNHl6azYr?=
 =?utf-8?B?ZGI4QjB0a3JkMUQ1M0FnL0Vwemc1L2F3UVYrWCtOK1JIWXNiejRScW9XQmoz?=
 =?utf-8?B?YTIxTnVzSE8zRTJ1cldCRHpneURWOVA3bGhwY1Zyby85c2hsYWlONGtOWkpq?=
 =?utf-8?B?QzljZ2VyVmVKVmY4eFpweElKa0lLTG5lemFHZ1lKeTN4VUh0Y29pWWNCcFRN?=
 =?utf-8?B?QTRCR21TSXZPT3VvcHhCb0hoY1k5Z0h5S0J2d1dWejY1NlpScFdDV2JHemgz?=
 =?utf-8?B?b1J6WTJWMlJQeWtXSHJ4aFp4WVY0dXlLZHVlNFNQY0xNOW9lcHBicll1cWov?=
 =?utf-8?B?MEFIQWFmSGVZVkdIYXJkdzdGd25RNFdhZ1BjMXJGc0o5QlFLcFJVOVhiNXFI?=
 =?utf-8?B?bkVOMjE5THo1d3ZPelFwdzkzay9ZNSsxbU9ZeDdLaFJ0TEpuSkZyaW5GZlBn?=
 =?utf-8?B?N0hJVHhOQ3BvaTQzWE52dGhtZ3pwRHdBc01yY0pOd3B5TW9sK1d2UDA3YTNK?=
 =?utf-8?B?K1d6b2h0L0pkZ2lwMFZJVHVmSEt1L0xvaTRTZXZPYUFUNTF4M29zc2M0YURB?=
 =?utf-8?B?WFNMQnBObU9BUFZ4ZlZTNFl6eWQ0cCtLY21RU0Z1bFBUblQ5UWh1bmt2bWdk?=
 =?utf-8?B?TXpOY1owbkQ0N2t1V1ZGRTY5Smw4SGVJckFraW5KZnhsRzU2cGpyRVhydE5s?=
 =?utf-8?B?U0FXY0laNnVjdWFJWEpXdmJXUWl1UzJVQkYvY21HOW5yZDdJT2hsRXRDbFhh?=
 =?utf-8?B?N2RaTzc1aDFGdDdmVkg1bjFpMksyQVBLSHI1RGhwbkpvTm1TZVdHd0lTRWtr?=
 =?utf-8?B?TjFqVjhDTE5kL05wWjhOVnV1MnZkbzBYNzZtMVM3NU9FTko0TlU0ODhSSUJv?=
 =?utf-8?B?VW5ySXlNM1BibWFiY2lkVDFLOHV6b1M2bERaOExoMVVKRXhUMkNrTkpJcXdQ?=
 =?utf-8?B?UnhKQUtvV1I4KzV4UndsalBYWVFqRGF1Q1cyTmJuWmtrd0xNcTh6UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 83a00c15-36b4-40b7-03e2-08de8c087d70
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 13:55:22.7281
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: PNpSKzt9a3WtLHeIsZM/NpMm2FXkV9+ffuZ08Q4kgc+StoZaDyxu72b1IjdX9SpenJfio/vTKta12JnbzZufnQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5370
X-purgate-ID: tlsNG-720697/1774619725-6957CDB8-C56201F6/0/0
X-purgate-type: clean
X-purgate-size: 2508

Auto-discovered serial PCI devices when using device=amt|pci won't get
->ps_bdf_enable, and as such some of the logic (like making sure the
respective BARs are enabled) won't be applied to them.

Fix by unconditionally setting ->ps_bdf_enable for all PCI serial devices,
and removing the special case that was done in some places by checking
whether the ->bar was set.  This also allows simplifying the logic in
pci_serial_early_init().

Fixes: 9738db88f68f ("xen: Automatically find serial port on PCI/PCIe and AMT devices.")
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v1:
 - New in this version.
---
 xen/drivers/char/ns16550.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index d384f1c69d2c..d05dc506ed9c 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -283,7 +283,10 @@ static int cf_check ns16550_getc(struct serial_port *port, char *pc)
 static void pci_serial_early_init(struct ns16550 *uart)
 {
 #ifdef NS16550_PCI
-    if ( uart->bar && uart->io_base >= 0x10000 )
+    if ( !uart->ps_bdf_enable )
+        return;
+
+    if ( uart->io_base >= 0x10000 )
     {
         pci_conf_write16(PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
                                   uart->ps_bdf[2]),
@@ -291,9 +294,6 @@ static void pci_serial_early_init(struct ns16550 *uart)
         return;
     }
 
-    if ( !uart->ps_bdf_enable || uart->io_base >= 0x10000 )
-        return;
-
     if ( uart->pb_bdf_enable )
         pci_conf_write16(PCI_SBDF(0, uart->pb_bdf[0], uart->pb_bdf[1],
                                   uart->pb_bdf[2]),
@@ -440,7 +440,7 @@ static void __init cf_check ns16550_init_postirq(struct serial_port *port)
         unsigned int, 1, (bits * uart->fifo_size * 1000) / uart->baud);
 
 #ifdef NS16550_PCI
-    if ( uart->bar || uart->ps_bdf_enable )
+    if ( uart->ps_bdf_enable )
     {
         if ( uart->param && uart->param->mmio &&
              rangeset_add_range(mmio_ro_ranges, PFN_DOWN(uart->io_base),
@@ -1335,6 +1335,7 @@ pci_uart_config(struct ns16550 *uart, bool skip_amt, unsigned int idx)
                 if ( param->fifo_size )
                     uart->fifo_size = param->fifo_size;
 
+                uart->ps_bdf_enable = true;
                 uart->ps_bdf[0] = b;
                 uart->ps_bdf[1] = d;
                 uart->ps_bdf[2] = f;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 27 14:39:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 14:39:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265780.1556529 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w68Li-0004xM-83; Fri, 27 Mar 2026 14:39:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265780.1556529; Fri, 27 Mar 2026 14: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 1w68Li-0004xF-5Z; Fri, 27 Mar 2026 14:39:46 +0000
Received: by outflank-mailman (input) for mailman id 1265780;
 Fri, 27 Mar 2026 14:39:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w68Lh-0004x7-7U
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 14:39:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w68Lg-0074aP-J5
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 15:39:44 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69c696a8-bab6-0a2a0a5309dd-0a2a45048808-22
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 15:39:44 +0100
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69c696b0-c823-0a2a45040019-d1558030c1ed-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 15:39:44 +0100
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-4838c15e3cbso17927325e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 07:39:44 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48722c9f0afsm174396405e9.10.2026.03.27.07.39.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 27 Mar 2026 07:39:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Content-Language:Cc:To:Subject:From:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774622384; x=1775227184; 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=BIapZxRnDOssXgnv5RJRZMWVrnwBRoUenD8zoanxkCE=;
        b=VFX6w1m4CHFk/aRzsH1zQCNrYyUeUys7/TvrdL/W/2xmAYcl/OFCt+X7VDWuDfYz0v
         cmuzFegYeHJbDOvWqzyhs0x/OJjjLtWQvhF6br76QVc5koBiavcbJISaM6sj48/WXAZC
         u1QeHI98l9gCkwVVpAYTpYbUjeHykvPcJaIFwGYZifUbexcj5M6h9VTCLhqM1WIIPYqF
         o+H4E1dN/+KJM4ir/O3sHbfBullzWQ4jr9C2/qEva/YiaY06PsJSUbM9TuatXNUluvYq
         l8Orrb7kqz+0u4VOF0bVPJBPe4KY41G9tsuVK5ORVu6w7wL5QYuTS3/Dd52ze65/OV9W
         r1pw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774622384; x=1775227184;
        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=BIapZxRnDOssXgnv5RJRZMWVrnwBRoUenD8zoanxkCE=;
        b=bHEXQHo/+S1Lsl1/w+aqtqtZI1lzIjic/NRK+CdJ/dgNMTyHRjNhYdOcqTcV9rVyZO
         3tcG7Tcq64K9BHDLjHlCJN9YI+Re6EiNS8BPokPhDLNruVMZUo7hd5HajK+LJQclq5n1
         jMPzrshYLOfNCpXb7pCcg9l4QMeSmt5eubDxqZOyc94a62CpDB1htdCQRqEEdUbaseE2
         csDUUKhQY/RKUzYT0Ok0ldDBPtBouda/Y8dac8xP9d07GvOpFzUn+ZycMzgn+YoP//A1
         vcMsIvd9N5t2kFDyjZ63EbTF8IHkPc2wOi7LIz1w6bBSO9dkAIxM3ko38hloUQead7h+
         J6Eg==
X-Gm-Message-State: AOJu0Yx5DzEkAZEJvhZfIxIDhpYoaAaiOtaCYYkVxsLKHMMsPymo6/+a
	l5+6GMMX8kbnGZacinXXErvH+s5RfJbfhkL7i95E4cKTI7eQP80gu17FFY0KCqTqaQQUNtbjjDH
	9qxOl2w==
X-Gm-Gg: ATEYQzxZanrVB/womGck7haPGwTNkKa9WWtm7Z07jTVv9TGmCi5W5KQFLuC0cdar/V8
	xRD/HvUSeznW8LHP+3yh9m3ZRIvGdx7lofL766ePYF19G8AYFNM9U9XN4VeRYZ+Xxe2uY7E9CLE
	7MV+b+vxPdTOLvx/+MGnMpCVFbe03r+qwCpd/LpDSaT9mdbTGnPp4d62zEVHrYfENgkDls/P1VO
	JMy0DmNSA4TzsbNf81OyZfklVWJdoCA7IAf56+ofOCO24cDch0Rx1TegGYMDQ5dtja8QG92E8BI
	p/QDkE/p+FlSE1YhD6xy0eB8KKKpAhw2sPC5X9qmAZpLR90WxDQgWFoYGqXEpa1LDwxWAV3UQp8
	1CSpaHU+1KBvpb8uebZ/0ZVOvaARY1sWJqfYGl0pNBv4ZG/G2kxmLc5HG9DVkQa1I3jS3/gMs4G
	KdgEH9FhR68+c+DU4RbnpmoWE5Wt2P/9j4DK8TofnI9BWC3tsbjKHJtuJQuFaRIeFWfBt5BGAqw
	7KgRWkeRZSF6Eg=
X-Received: by 2002:a05:600c:529b:b0:485:3ec6:e634 with SMTP id 5b1f17b1804b1-48727d84100mr43438075e9.15.1774622383708;
        Fri, 27 Mar 2026 07:39:43 -0700 (PDT)
Message-ID: <df31ece3-2c42-43b6-b97c-0867255e58b1@suse.com>
Date: Fri, 27 Mar 2026 15:39:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2] x86/time: adjust handling of negative delta in stime2tsc()
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ebf023/1774622384-B908B9D1-49E60D5D/0/0
X-purgate-type: clean
X-purgate-size: 2558

When we cap negative values to 0 (see code comment as to why), going
through scale_delta() is pointless - it'll return 0 anyway. Therefore make
the call conditional (and then also the one to scale_reciprocal()), adding
a comment as to why there is this capping.

Modernize types used while there, and switch to usiong initializers for
the local variables.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Adding likely() to the conditional here does make a difference. Question
is whether to do so, seeing that there looks to be a possibility (of
unknown frequency) for the delta to be non-positive.
---
v2: Make delta unsigned. Add comment to function decl. Make the function
    decl also use uint64_t.

--- a/xen/arch/x86/include/asm/time.h
+++ b/xen/arch/x86/include/asm/time.h
@@ -50,7 +50,12 @@ void force_update_vcpu_system_time(struc
 
 bool clocksource_is_tsc(void);
 int host_tsc_is_safe(void);
-u64 stime2tsc(s_time_t stime);
+
+/*
+ * Note: This function "caps" times ahead of the local CPU's stime stamp,
+ * supplying the corresponding TSC stamp in that case.
+ */
+uint64_t stime2tsc(s_time_t stime);
 
 struct time_scale;
 void set_time_scale(struct time_scale *ts, u64 ticks_per_sec);
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -1176,20 +1176,26 @@ uint64_t __init calibrate_apic_timer(voi
     return elapsed * CALIBRATE_FRAC;
 }
 
-u64 stime2tsc(s_time_t stime)
+uint64_t stime2tsc(s_time_t stime)
 {
-    struct cpu_time *t;
-    struct time_scale sys_to_tsc;
-    s_time_t stime_delta;
+    const struct cpu_time *t = &this_cpu(cpu_time);
+    s_time_t stime_delta = stime - t->stamp.local_stime;
+    uint64_t delta = 0;
 
-    t = &this_cpu(cpu_time);
-    sys_to_tsc = scale_reciprocal(t->tsc_scale);
+    /*
+     * While for reprogram_timer() the capping at 0 isn't relevant (the returned
+     * value is likely in the past anyway then, by the time it is used), for
+     * cstate_restore_tsc() this is relevant: We need to avoid moving the TSC
+     * backwards (relative to when it may last have been read).
+     */
+    if ( stime_delta > 0 )
+    {
+        struct time_scale sys_to_tsc = scale_reciprocal(t->tsc_scale);
 
-    stime_delta = stime - t->stamp.local_stime;
-    if ( stime_delta < 0 )
-        stime_delta = 0;
+        delta = scale_delta(stime_delta, &sys_to_tsc);
+    }
 
-    return t->stamp.local_tsc + scale_delta(stime_delta, &sys_to_tsc);
+    return t->stamp.local_tsc + delta;
 }
 
 void cstate_restore_tsc(void)


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 15:11:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 15:11:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265846.1556590 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w68pi-0002Z6-47; Fri, 27 Mar 2026 15:10:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265846.1556590; Fri, 27 Mar 2026 15:10:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w68pi-0002Yz-0o; Fri, 27 Mar 2026 15:10:46 +0000
Received: by outflank-mailman (input) for mailman id 1265846;
 Fri, 27 Mar 2026 15:10:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Oleksii_Moisieiev@epam.com>) id 1w68ph-0002Yt-3L
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 15:10:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w68pg-00D2BO-Dl
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 16:10:44 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 69c69ddc-2eae-0a2a0a5409dd-0a2a450192fe-40
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 16:10:44 +0100
Received: from [40.107.130.78]
 (helo=MRWPR03CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 69c69df3-6400-0a2a45010019-286b824e97f5-4
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 16:10:44 +0100
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com (2603:10a6:10:519::5)
 by DBAPR03MB6392.eurprd03.prod.outlook.com (2603:10a6:10:192::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.23; Fri, 27 Mar
 2026 15:10:42 +0000
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908]) by DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908%5]) with mapi id 15.20.9745.019; Fri, 27 Mar 2026
 15:10:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kI0n9VT5yqoUt+quJM1BvoPMBRLenfrW7vlEQqNO9jv0HlU+uZw/PfUgumSxJrbdqx0sN+Lz+eJOvoY37XeKwgC+oQHUFdtsAYSLloQbuVeb69BgIAQF9W4HJRvhGPrc8hAn/uPRbd2yL02Xks9ZaQaqH6qHn7f3rFQAiq5hN0jfd7CBH9hdFftACPvt0c58IPa8+tkAgShnufQoTToZv9RwdrEGkrqr0OnCffzoaaHyTZJEQ0C8b8Rk8HjzZXm3o5HW+eT6Kz8xP+9YZxP4WqBptlenlJlVHaCWVSnryZGgIUws5O/VBlspUbCT/OP830XVEqQTLM2s1bz3s03hUQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xyE7EWmKuzN9aNOOfrcmBtZ9Fgo2lRaTMao1kbNldko=;
 b=vSK5PSXnjx4PMXpmn8TGL0Oz6W0IX9oPzlmfEjdqh9OOMgulEKZBVwBk9/93oIlzfXhXKwaPuY20WwwESB38u+Z7WJVRvsdAG60bCzZ/hK1xsU35k2qlBtBcU+qcy4ZFXCe0b65WF4PVBNbelPR9sSeEJarXtb8DwGvkjoS3LkNWu/2NqCLsKdiATq6Elq8p9W9GivLFOjDz1MsLelTLwRSyIGi7DyujFw/rwYAHNM9z/HJImHiNKFoDKdAp/9URjXxksTE06IWSfTuOC6xfDIukZs+KokgaUxHJAhIIYSTJ5hcbmJ8bC05Hx5fSxiZ28EAoo2D6bVGuRyX2w/jYAA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xyE7EWmKuzN9aNOOfrcmBtZ9Fgo2lRaTMao1kbNldko=;
 b=ornsokGPMMRFFntiSxXhBvrxX6l6aYFGHNUuWti8aN8pK4svjOFp/pACcdc6hLApLYJ0gRDCn4/x29EQWNYxurq20RsiqINo9Hpf5ABia7F3nCvzj28JvSDFL09RE7bkJHPgAhPKgIGN0wtv3aPib1vjaUljiqWYW1o0VSiOGZDFUx55oS/rMfmGN5Aj1i6XGwMZ5H0AFgHnQx2hmUTJHpPKJL+ajl36DvBE2ZWSXsDBgn5rA9CDUML/rexT8m6yPd5+EtJrUxMaF3xXR9Y2LCYbVv4UzKyi2vizR7YEFHP1pQLTtLrGTjk6gG9GPrNxUkwNLD1JLbaUqOICC0H3QA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <232076fe-2a9c-48da-8969-0ef63e971a20@epam.com>
Date: Fri, 27 Mar 2026 17:10:40 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/sched: validate RTDS putinfo period and budget
To: Juergen Gross <jgross@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 Meng Xu <mengxu@cis.upenn.edu>
References: <06fbc96288c6aba60369914c2cdbc656ca32fcf8.1774611038.git.oleksii_moisieiev@epam.com>
 <7e21c108-f747-4805-8904-b116bf04be89@suse.com>
Content-Language: en-US
From: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
In-Reply-To: <7e21c108-f747-4805-8904-b116bf04be89@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA2P291CA0042.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1f::14) To DU5PR03MB10263.eurprd03.prod.outlook.com
 (2603:10a6:10:519::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU5PR03MB10263:EE_|DBAPR03MB6392:EE_
X-MS-Office365-Filtering-Correlation-Id: 819724d9-efc5-4466-647d-08de8c130377
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	ver4D+mQ10Hcy6y8yUkkHUlThOTzkyfzCOLohQHUQwiyjk7cjqSsKV2YB2rdrAaCyRlZ4UA35E9Hw5mUdgxUbDY45zovcOHaJCXGgA3/7sOSMfHb6Gw/JMDESM8nc2t7c9e2AQLiyz58QR35U50ZghD9HvrKl3jocWhYsXJpWIAjWDkJfgKo20xQuvwKNl//0qHetsqhWTAuYjTCIM9Wu5l335X+Lg1j4V5k1bwQ8ZnwYunYce6du/lueWCjfS6TB03oYMIasQvkLtd7NeC3GszMH5DKNeFVrOsMYw1H6efY5B7l81xbq1xohyN/J+8lK0WgxFEs3ILugzh6kacnWaj8/69TQV6rr4b6wqpUrjmye6HQd4l/lIQG9+FwBH0MqaQrPIPptO0POIJZpjc8//R/LYv8LKtYNdknFYeYk89OuMNOyJBqhyjQrsgw5pvJ6iXm9XQbWkwT8PG0k5j9dR30X7JOFrukqYzLPSe1XV7tB2krz4yZMs1LJ70+vpPwxxNAk4wQOYS8pk4c6lr3eFv7ELAx07NIswsaFx5cNR5kyvL74hgs+kTEducWnSaqaNPEiZ27ZHnxB5s8LliQM9ZyGgz4wpbhPQNqIApkzStidF+N5PSEjBGgNqiFdFjGXhfCfyiorlBNuYkBovdM5CekQrKlevjXNkKgqonihAhIUsPduKn7aMHjMwI6LCqsFwlt33PcyaP31heu6L9CiL84Tr7QmzC15FyQkYSYtd0=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU5PR03MB10263.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WS9UUWhpTDc0dmM0YW5adHNQcmg1NHdqeUNsZitJaThMZGF6SkQyOUFVWHZ4?=
 =?utf-8?B?OXpJRWZMRThMSzBRUzVhYUpHMGFCNUZrMklZaHNpbHZ6Ty84NTVlemFpNStS?=
 =?utf-8?B?ZS9LalAxMnFCMncrQ2RucDFEbzBUbXloeXc0NkhPRW16MjhwcjE3WWVJbGlN?=
 =?utf-8?B?c25jSExVellKTkdleWF0Ukpyc1ZFdG1FdWU3b0t4cUN0endBczBpTXhnOFBx?=
 =?utf-8?B?Zjl6alJEOVNJM09JNFNqOWlHZHcrR2lkK285bkhFb3hwbHlYN3J1TVRDYk9D?=
 =?utf-8?B?WllIOWYwVTRpZUdqTnhtT1pQWUFlQlZORHozbEhKYVNQRlZBQktDUkVDbHYr?=
 =?utf-8?B?czhIMWZVc2lFL2dCQnhJNGk5dXRRSE04TDQzTUlFT1o0VFBIandsVVJkMzlG?=
 =?utf-8?B?Q1l0OHo4cFpQc1MyakxwekFMT25Ed1psTHNiY01HMVI5ZFNxWUhQMURqSldn?=
 =?utf-8?B?UkJ0Mm12SnphUjYwd1hxWkF3SlY3bTZIbHQxbjZtSjVvTExBV3QvMGFvUFU4?=
 =?utf-8?B?bWhQMWVwdENPTHBIMlZUZThaajIvdDdGVDVvd2cxOVlWVXgrRmw5RGVELzZw?=
 =?utf-8?B?TDlEeURlTkRwTVNJUStWRm5PWmVqK2pGWncwcldUaE9JN1A3NkJTcGdQc3F2?=
 =?utf-8?B?cDhVUmJPTENudWxpaE9SSkVneEt6NTJOdUJrWjBzS1ZwV2hkaDhvTmRUVG1m?=
 =?utf-8?B?WDhmWGZzdnhaVndEZ1JnSnRDRTkwS0oyTmNWSzJHVjRlb0s3TldlOVA3Z0NB?=
 =?utf-8?B?bzBqNEh3SWxVQUpDT09FblhBbXBBRVBPSWlCUlVCalFZRnZkU0JOSUgxMnIz?=
 =?utf-8?B?VzZjMkVycVoyN2thdHM1WEU2UnJRdlZvQ2hBVTlRdmUyUHBqUGJWYU12UTg5?=
 =?utf-8?B?VmN1UlY1cjRDbEdWSjdsSDM0blJFc0UyVVBpRFhPZHMvR2FWaVRlcTMvNHQz?=
 =?utf-8?B?ZEtsVGV6MWhOamEwTStjZjB5NXRHbkN1bzBLRW1hZ05zMGpJdm0yekYwSnRZ?=
 =?utf-8?B?aVV6TGprYWdwRGp4cHR6UVFUdUJmcU92VnBUalVsYlNycnAyZ0tLazBKOXgw?=
 =?utf-8?B?SWdhM2xHaVp0UDdxWjRHV1gramxEaHhwSFhKNmJNYW1oSUhQVVdJQjA2Z25U?=
 =?utf-8?B?QUV6ekdXcGtoemtHV29FZ0tVMis5RHBKRFp5dEhNRWlBVmlwa3E2bUZiYlJr?=
 =?utf-8?B?RERnMEVDQlNaSmZZYmFBaXMyMDU1NXYrZVlNdlhOeHRwbEM0WFc3b2MzY3lp?=
 =?utf-8?B?cDZUKzdHSE5IY0lJNnRIczZDVHA0ZVdTU0JTSW1MZG42QVBCRVdSYzNEOUpQ?=
 =?utf-8?B?Q0dyWVdnRzErYlVDcWhlaFhpVkNLM3Z4MTZVemdmb2lVRXFYOElyRmd6c1pL?=
 =?utf-8?B?bTh1S3poZFBFcFlKZ05xS21wT1MrWndqK3FkQ2xKR0tVYjZzYzNoU3dMTjZi?=
 =?utf-8?B?dG5zYUM4OWNleldTQW96S2UwN21uYzlIeXVmSVJrOVdLK294SlJMeWpGWHZQ?=
 =?utf-8?B?MGR0ejNkOGd5WGJZZCt0ZWIzUko5YStTTWJNRHNTRVdFS3M2TEFiaENzOEpD?=
 =?utf-8?B?SExLUERCV0xrUndPR2hocGFSU3h1b3VEZlhPV3VGVTQ2eHFMUVFObEs2UU9G?=
 =?utf-8?B?MTh3b1lHTzFVTFdvcEZvUjFaTkdybS9NcXNYRXhuR2RObVR6clRIWDhRK1BK?=
 =?utf-8?B?OThjdHpTYW93RlN1VHU2UzN0MWtycUZON01pbW56U2djbmNBb2NNODZaTGJF?=
 =?utf-8?B?emI2eE0yUEtBSlhMTDJCQWIvTmJTYmhOY08xVWN2dW04dnNYbFZCREpXVjAr?=
 =?utf-8?B?RXExelJ1c1V1RVJSZTBlYjllT3A1VFN3b0g3OTVpQ2hUTEZKSUhxSGR6RFZi?=
 =?utf-8?B?VElsVy9ZcDhIbURhWnh6bzNZZFdPcVJSVllBRVJoVVhSU2lnZlhTaThMSnYy?=
 =?utf-8?B?R1NrZkIrOXVrcUJnckhsVDNlclRoMlZPSjZON0MramJyMktwcnA4OFFGaXVU?=
 =?utf-8?B?V2ptT3JtR2lsYXBZU1lSeXM0VDd6N3pRSFRXTkJSbCtHbmp1UVBzaWFDOXRL?=
 =?utf-8?B?czVtU2M3M2ZKTjlHWTg0K1psNHRwWUMrc2lkdWFKRHdkczN5SCtFUisrUnNw?=
 =?utf-8?B?Ry9GZU9wRnlMYy9lT2hRaHRPeW8rZ3MxeCt4QlMxeUxHQVd2VzFxWjJXM0g1?=
 =?utf-8?B?U3FzQ0MvK2JXRjdMcGZBdjBnOHNoZkI5bXVYWkY2bWdRN1dXVDNCK1VqL21E?=
 =?utf-8?B?VkovWkdPUUVVcDB2ZTQxSWNWSXB3akVLM3c0RVRJdlUrMUZxR01mcjg1WGdH?=
 =?utf-8?B?NjJBT0xjL0ROcXNzUFgrK3R5SmQ0YjlySC81d3RmOWU2SjAwR2hGN2hDdXdG?=
 =?utf-8?Q?LA5QfmBHhhGMUAVQ=3D?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 819724d9-efc5-4466-647d-08de8c130377
X-MS-Exchange-CrossTenant-AuthSource: DU5PR03MB10263.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 15:10:42.4573
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 0W3q5+G++r3wDW8QcXTTtLak02NC9uTvBPpf8B0frz5ZLQMbvwmhmVdWHKA+RqbJ/dgJX9t6OltsdCwVd8E79LixnyasT58G3ew3uVC/SuU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR03MB6392
X-purgate-ID: tlsNG-d62444/1774624244-8F8EDDF3-36B98B9A/0/0
X-purgate-type: clean
X-purgate-size: 2191

Hi Juergen

On 27/03/2026 14:51, Juergen Gross wrote:
> On 27.03.26 12:31, Oleksii Moisieiev wrote:
>> The RTDS domain-wide XEN_DOMCTL_SCHEDOP_putinfo path only checks for
>> zero values before applying period and budget to all vCPUs in the
>> domain.
>>
>> This is weaker than the per-vCPU XEN_DOMCTL_SCHEDOP_putvcpuinfo path,
>> which already rejects values below the minimum, above the maximum, and
>> cases where budget exceeds period.
>>
>> Use the same validation rules for putinfo as for putvcpuinfo, so
>> invalid domain-wide updates are rejected with -EINVAL instead of being
>> applied inconsistently.
>>
>> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
>> ---
>>
>> Changes in v3:
>> - changed rt_validate_params input to get struct instead of
>> period and budget
>> - improved code readability
>>
>> Changes in v2:
>> - introduce rt_validate_params helper function to check period and 
>> budget
>>
>>   xen/common/sched/rt.c | 37 ++++++++++++++++++++++++-------------
>>   1 file changed, 24 insertions(+), 13 deletions(-)
>>
>> diff --git a/xen/common/sched/rt.c b/xen/common/sched/rt.c
>> index 7b1f64a779..c161bf7f78 100644
>> --- a/xen/common/sched/rt.c
>> +++ b/xen/common/sched/rt.c
>> @@ -1362,6 +1362,23 @@ out:
>>       unit_schedule_unlock_irq(lock, unit);
>>   }
>>   +static int
>> +rt_validate_params(struct xen_domctl_sched_rtds *rtds,
>> +                   s_time_t *period, s_time_t *budget)
>> +{
>> +    s_time_t p = MICROSECS(rtds->period);
>> +    s_time_t b = MICROSECS(rtds->budget);
>> +
>> +    if ( p > RTDS_MAX_PERIOD || b < RTDS_MIN_BUDGET ||
>> +         b > p || p < RTDS_MIN_PERIOD )
>
> This sequence of tests makes it harder to read than necessary.
>
> Could you please rearrange to:
>
> +    if ( p < RTDS_MIN_PERIOD || p > RTDS_MAX_PERIOD ||
> +         b < RTDS_MIN_BUDGET || b > p )
>
> This makes it rather obvious what the allowed ranges are.
>
Sure. Will fix and post v4.
> With this and the "const" added mentioned by Jan you can add my:
>
> Reviewed-by: Juergen Gross <jgross@suse.com>
>
>
> Juergen


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 15:14:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 15:14:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265858.1556602 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w68tO-00039k-KN; Fri, 27 Mar 2026 15:14:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265858.1556602; Fri, 27 Mar 2026 15: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 1w68tO-00039d-Hb; Fri, 27 Mar 2026 15:14:34 +0000
Received: by outflank-mailman (input) for mailman id 1265858;
 Fri, 27 Mar 2026 15:14:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1w68tN-00039X-Qa
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 15:14:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w68tN-00Dlc6-55
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 16:14:33 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69c69ed3-5cb7-0a2a0a5109dd-0a2a4502bfca-16
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 16:14:32 +0100
Received: from [195.135.223.130] (helo=smtp-out1.suse.de)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jgross@suse.com>)
 id 69c69ed8-63bb-0a2a45020019-c387df8282de-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 16:14:32 +0100
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 8ED3C4D535;
 Fri, 27 Mar 2026 15:14:32 +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 4BC6B4A0A2;
 Fri, 27 Mar 2026 15:14:32 +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 Z+5sEdiexmnSfwAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 27 Mar 2026 15:14:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding"; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774624472; 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=u+v235gKbnonYGl0XF3mG3PKEgLDPwuoPDKs8Ee7J8g=;
	b=I85Dwcd964mb3UyD756jSW1cm3hsm6Pe6tO9r2czWu3rDTQR01eKJCod4NUyOpCiAPjqvx
	FqjEvB7b/O5BSn5FQBC79/OvuHaxqFAl4Q6Y+oc7CHotdStJIG+z4euUWmmzJsrZrdv8nN
	VoP7J9qPtv563dlFxFc14u3ALTjGOyA=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774624472; 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=u+v235gKbnonYGl0XF3mG3PKEgLDPwuoPDKs8Ee7J8g=;
	b=I85Dwcd964mb3UyD756jSW1cm3hsm6Pe6tO9r2czWu3rDTQR01eKJCod4NUyOpCiAPjqvx
	FqjEvB7b/O5BSn5FQBC79/OvuHaxqFAl4Q6Y+oc7CHotdStJIG+z4euUWmmzJsrZrdv8nN
	VoP7J9qPtv563dlFxFc14u3ALTjGOyA=
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] Config: update Mini-OS commit id
Date: Fri, 27 Mar 2026 16:14:29 +0100
Message-ID: <20260327151429.438096-1-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-2.80 / 50.00];
	BAYES_HAM(-3.00)[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.997];
	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)[imap1.dmz-prg2.suse.org:helo,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: 
X-purgate-ID: tlsNG-720697/1774624472-400A9DB8-F848DF38/0/0
X-purgate-type: clean
X-purgate-size: 725

Use the newest Mini-OS.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 Config.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Config.mk b/Config.mk
index fdc0245079..b3d48e49c7 100644
--- a/Config.mk
+++ b/Config.mk
@@ -217,7 +217,7 @@ QEMU_UPSTREAM_URL ?= https://xenbits.xen.org/git-http/qemu-xen.git
 QEMU_UPSTREAM_REVISION ?= master
 
 MINIOS_UPSTREAM_URL ?= https://xenbits.xen.org/git-http/mini-os.git
-MINIOS_UPSTREAM_REVISION ?= 6732fd42d8eb8d0af9f5eb54aca17f4c250213a8
+MINIOS_UPSTREAM_REVISION ?= b6f79f5f44cf69044079c042b88fe9d75367642e
 
 SEABIOS_UPSTREAM_URL ?= https://xenbits.xen.org/git-http/seabios.git
 SEABIOS_UPSTREAM_REVISION ?= rel-1.17.0
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 27 15:21:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 15:21:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265871.1556613 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w68zk-0004y6-AI; Fri, 27 Mar 2026 15:21:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265871.1556613; Fri, 27 Mar 2026 15:21: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 1w68zk-0004xz-62; Fri, 27 Mar 2026 15:21:08 +0000
Received: by outflank-mailman (input) for mailman id 1265871;
 Fri, 27 Mar 2026 15:21:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1w68zj-0004xt-4Y
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 15:21:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w68zi-00DmtL-Gj
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 16:21:06 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69c6a056-2eae-0a2a0a5409dd-0a2a4505d310-10
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 16:21:06 +0100
Received: from [195.135.223.130] (helo=smtp-out1.suse.de)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jgross@suse.com>)
 id 69c6a062-5aeb-0a2a45050019-c387df82dbd2-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 16:21:06 +0100
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 E616A4D437;
 Fri, 27 Mar 2026 15:21:05 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id B5A924A0A2;
 Fri, 27 Mar 2026 15:21:05 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id q0/BKmGgxmk4CAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 27 Mar 2026 15:21:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding"; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774624866; 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=jtL0ZUce9zRQ8p5jmN3/gHx/nnJ0oai9KtYu4NYHCNA=;
	b=GY/LeRc0/lq3c5c8W8TpJlYPxtvlg2m/7w44Yi/2SI9F6Wbhtw+7F8waoF6TDGB1+ZRR/i
	4Y/zPbF9eTF0VOSzN5Dn4n02TbBSVzek1/jnO20IQGTDZHlNXve2fCTlPVAauJ9KM8cJw0
	9WezTvjuk3ejOiGpAEYGMsvE91x9v6g=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=dQ0qQ6zI
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774624865; 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=jtL0ZUce9zRQ8p5jmN3/gHx/nnJ0oai9KtYu4NYHCNA=;
	b=dQ0qQ6zI9QQ7L3V/48JTQyRzJYfK3KeHRcENWdQ6CTghtNXUEv41s+waibuic8AJOI0rox
	MADz89jsnP2J4rKjGA+lIJQ1u/px3e6fpZ0IytkYht2SUFuTdMQS33uqKNIJC+c5GRQYUi
	UNREI/mEV+fvmAcACg2ZZPjdq/rUBFQ=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH] CHANGELOG: add xenstore quota support
Date: Fri, 27 Mar 2026 16:21:03 +0100
Message-ID: <20260327152103.438997-1-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-1.51 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	SUSPICIOUS_RECIPS(1.50)[];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	TO_DN_SOME(0.00)[];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	FREEMAIL_CC(0.00)[suse.com,gmail.com,xenproject.org];
	RCVD_TLS_ALL(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns,suse.com:mid,suse.com:dkim,suse.com:email];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	SPAMHAUS_XBL(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];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	TAGGED_RCPT(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	RCPT_COUNT_THREE(0.00)[4];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Rspamd-Action: no action
X-Spam-Flag: NO
X-Spam-Score: -1.51
X-Spam-Level: 
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Rspamd-Queue-Id: E616A4D437
X-purgate-ID: tlsNG-c201ff/1774624866-22A87488-EE116363/0/0
X-purgate-type: clean
X-purgate-size: 644

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 CHANGELOG.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index c191e504ab..566fe510c5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 ### Changed
 
 ### Added
+ - Support of per-domain Xenstore quota in C xenstored (includes
+   xenstore-stubdom), libxl and xl.
  - On x86:
    - Support for Bus Lock Threshold on AMD Zen5 and later CPUs, used by Xen to
      mitigate (by rate-limiting) the system wide impact of an HVM guest
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Mar 27 15:21:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 15:21:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265881.1556625 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w690H-0005TU-LF; Fri, 27 Mar 2026 15:21:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265881.1556625; Fri, 27 Mar 2026 15:21:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w690H-0005TN-Hj; Fri, 27 Mar 2026 15:21:41 +0000
Received: by outflank-mailman (input) for mailman id 1265881;
 Fri, 27 Mar 2026 15:21:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Oleksii_Moisieiev@epam.com>) id 1w690G-0005T4-01
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 15:21:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w690F-0039gU-CH
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 16:21:39 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 69c6a069-e002-0a2a0a5209dd-0a2a4501dd6e-30
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 16:21:39 +0100
Received: from [52.101.65.85]
 (helo=DU2PR03CU002.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 69c6a082-6400-0a2a45010019-34654155f43e-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 16:21:39 +0100
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com (2603:10a6:10:519::5)
 by PR3PR03MB6427.eurprd03.prod.outlook.com (2603:10a6:102:7b::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Fri, 27 Mar
 2026 15:21:36 +0000
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908]) by DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908%5]) with mapi id 15.20.9745.019; Fri, 27 Mar 2026
 15:21:35 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NE1eQFw55jKkG87us87IDHz1M1UqYHX2cpvpK2qX6jyFmb5buV4nivNpEXyXk0PyEY9s+5S9xfokeqov6j1EWsGinnVbfraWm1P3c5E4Wb/+103/vAQMLxwlXEDUFhtEnRGQYfYkP6M9EAG3Skbb+ayKr6FdjL/tv8QewGPmZIqDE2KoTHBir+xCWmpYla2n3flYxInoKP8+7C6vHhOyqtUAs8vb9Vxz6Zwtw/2HCMRp9PE+QYzXg3LjJuyzwOZbU74gjVoQMCIxFQ97qgcdgL1U09MKkJF/Tc1gYMtAe9hBdrx6w0jiIuNOLcrF/JOc6KjLcjZ4VG5BVuGyt/pIsQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LR8mJcOvh/N050TtHYXW65ot9TYuYnMtLA21dZ2q1QY=;
 b=MT4tfqs7Hb+GoApZCUWQd5poX8b9/tn/E8VWsYOnx21RXh/ujysmppn+xAEoPnzfZDfAycAvqvmS00Aug+KiZXEsx1tjJBymxz2DIgPBdbgqKmbg35sY/o2jHLi5TrYC9IpJqGrWtI4x1nuKQ+8Todt0BS1xbJhYh530PKY0evXzKi+yrj/5q6vtk4RBc1mkfABciTq9ZQ8MqM8eMhRYTYlXzq1/1AseOM2O6A08ssb9E4LBF216pCD9PbJzzhhqYEMUAbJ1H1Gx0OKp/RXcHFSfF6MDlcYuLY9Yp7x0Y6GlE7PhnYJgJFmjG1P7q5FZUE0JTC77TVir0lJ8ekd6ZA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LR8mJcOvh/N050TtHYXW65ot9TYuYnMtLA21dZ2q1QY=;
 b=GAOCfCodUJbZaeR0aH/r8qod/pSphmIOXkpO/N9DAI/1mT0gx+9VjW9UrNsOx6UxMOPlUoc4N/3IsMqykQ+xrSXzxOckwzZUrItq2bPPkXvzCo8uqfsAaS080umnELJrfDMxymEpe4yRASLpzxP39UXN/yPR6Hd8gl1QqPnJuSNjofk3tIb27JVUBE69+re25NzdbTUv/BpYXBjpUzfri+qh1/4Vp23TyqGxsQt6Ie2LpXqI1LI0tE3nae6PEVNkdznkNCpQD9jMEJw0vE7wemaqH43Ed5s5p2jF1EzHTTXQv8khoMNaJl9aaxulIhMHfjXv0Q28ndgVMOY/JU0A+w==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
	Juergen Gross <jgross@suse.com>, Meng Xu <mengxu@cis.upenn.edu>, Oleksii
 Moisieiev <Oleksii_Moisieiev@epam.com>
Subject: [PATCH v4] xen/sched: validate RTDS putinfo period and budget
Thread-Topic: [PATCH v4] xen/sched: validate RTDS putinfo period and budget
Thread-Index: AQHcvf1m+kNbfbdjU0G8nxFPhowXWg==
Date: Fri, 27 Mar 2026 15:21:35 +0000
Message-ID:
 <1bd06f2d7ba922f519141561979160747cf0c28a.1774624811.git.oleksii_moisieiev@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DU5PR03MB10263:EE_|PR3PR03MB6427:EE_
x-ms-office365-filtering-correlation-id: 02a3cab9-867f-48b6-cadf-08de8c1488d2
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 PjhmoHIDyk3QVAwyk99GBtsTk13uACL2O3czg+3MY+a3/onStwWUF9WtQaiasAwCI1mdJx8OY5Pgx+ADnAvVKaid7RnK2jEAYRI3+Od44c9eMh5+OYJq5GXTDT1cD2pV3OK7GaJGS2NTj+wQnCndiyc2JHGanNc1eCHjAuNyIWVf45bgt9C8wND2QWdVJcnhI24sji9mSLXdHP7SxZhuamcyXBuVs7zI7EH0ZGtZ3i8HJRuV2KiJgBhBPH2ACD6jxvQcmVCjTL0fpmXqKwC1DQ17cCcy5/uWtmC/ThUTW+sM51u4Pj/t4v/FJm5LbEuimTiSOep5/+B5z1XgLXbJcii/7nkI99L+4kjOJDyk4HEHT2FiZyYlhcuNcFrdbcpknPy1rQZVSLkJZ9AtVgW4ika54Ewa30NtddQtZoCbxqqAwDQFSWVaZJVGCWjsLDAARhcDP1AtnY6nrK7Xhi7N0UldWCk79tAmiP2zoy5VRux3b6PivNxkCNcqqcTHzqg9PY8dkXzzZa1kMNwP1CjniI+Bv29n43T40IsvtGOVzc/XY1NWRRMZZGrNPNXVEjwDGaoz9JiwsXWEihp141qfEJdNuMxDQ9xd3hQFSgZtF+qs3KoqKBqiiX7E0Ijs+dJLiDZ4VOIiEC72CLoe08zBR1HYW4l7/L+CR5wWiSYX3XvQRyQ5rFLufJC1z9S/LgRkFsxa/Qh2uaiRQDcEvxsHJqQJBG7thkP/aO5HlHoPHsMlERRzv2rE2RX1VjIo6cG/PeZLNR8RqFEEMF8kz2gbZbDJMdeDU0ihMbtPndiIU2I=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU5PR03MB10263.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(18002099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Crr+GDjfkJYf9dkhC0FBuIIJyhWVTNg+5zDP6/yxEIWPJqtuBAtNT9PnX/?=
 =?iso-8859-1?Q?fkZdPw9tgCFQndfL6zEq6xQDS8e9VTlpmTrGyRTZxRJwARF0MJnaPuHkq3?=
 =?iso-8859-1?Q?9S00eUd0E/0fzmeywptjO9e+PefVPVs05YytkrK38aca31CM+3ahHINIPi?=
 =?iso-8859-1?Q?isX5Oo5i3espskbxS1e4VvqL6c0q8dhHmGr+h9UdrfU4kggtV3ZZd1Xjsd?=
 =?iso-8859-1?Q?fvYfzBObXmE0O7g30CnNw98Kg/a8sFOSRSYsKpdmk394V9zkqEqymtXCR9?=
 =?iso-8859-1?Q?73l/0qqD4ucQj12GHfe3qnra01Zsq/yDQUpFPe60WLuDsygLngiU3oSZhA?=
 =?iso-8859-1?Q?Br/RgknK8MD9FeOPoQYwKac8DA6n+97Dh/F7lXJIJk6dJTR9xmlTO2mygl?=
 =?iso-8859-1?Q?pI3WFSWpvDMePvwOyNrvArueoh7h/NwT/w9dN88K2Z/5i9p2MikzvA6Xwq?=
 =?iso-8859-1?Q?vwMZlAV23Bj3i9QjYu+ovCjlpJgBamCdXDtb+SGK6UdLAZsXLlXUl+cM+m?=
 =?iso-8859-1?Q?tTbzfJfdIk7Kqad11TWfrKwTvzmaz0yQTL55OqTw4AJ3neb1RWZj0OBB/N?=
 =?iso-8859-1?Q?IiQ1NPnPQiyL9oMw5jjcieEbuFoBcSRVEKBFoebGWZ4s89jE/Kxn6Ggt+I?=
 =?iso-8859-1?Q?jRBDM3FCcGM6N0SXblxHbnrPV5cuGTeg6r1OxBuUyy/nzzYXXZnglg0YWG?=
 =?iso-8859-1?Q?9mpQuVlngWMoPSS8V9vodu5K+1zGN/sh9fAyOZJnqXP4uziioGKbqprK92?=
 =?iso-8859-1?Q?P0JSm3hKrYOJH7gL67JjCDEN1atYKi9E52EO+qAYIpeBkREKqMZ6X9IigW?=
 =?iso-8859-1?Q?F9p0V2ekpqpZW1HlBDQtSOj0TO1DYxedp1zsrh51UcSrihxSUb1sriaNbp?=
 =?iso-8859-1?Q?NdYU+mbVMABsxr2AjYFTc7I6xmScKFtv8gQbNnahCO/1ANW5pkczZMFQdh?=
 =?iso-8859-1?Q?N+j6RfHzDPWozEPxCq9eBoNLqb3b6dN/KLsAc8HVqMaBZZn11icNLirPas?=
 =?iso-8859-1?Q?5WYxTF/ML55C1mIozNpk81lrmHA9I22aOELYxpxasjj+XjenecVy6y+bRt?=
 =?iso-8859-1?Q?+fWH3Zmyj+8YaxE/xW4iRjUx2B79rArUTaKKDDK+Mv4Yswqz17sj16nqNQ?=
 =?iso-8859-1?Q?bxnxxMI0C2pobXtO2hs6kcUtbhLapgcsPdgWZc4T5kzubbYJLnHGDWc3vJ?=
 =?iso-8859-1?Q?GuvplrtXTW1W+v25Q41nQSVhfEHfUAplNUEtuNZ1tGJ0789YyRL2vsQXfF?=
 =?iso-8859-1?Q?GdsC0t4VI6HRlk2S4uMTSxyxtK/4YkVZhc7T6jWkmfnLrx6kMU5ao+KdkA?=
 =?iso-8859-1?Q?CweVSBQ9AxP9gFg+EdABSQcPRUZHTCanymwW4k/Z3hM3aVsOyMzYNsb17I?=
 =?iso-8859-1?Q?muakcY99TQNamcOFzUEGTTPptdQbTQvZ+Gmot9k1Nke9WbsjDtmAT1BiUH?=
 =?iso-8859-1?Q?2pSU1Q/vuaJd7lCI9KgwPHkwvucdRpMaCAj4RjlyFAhBSNaSTg7R76xHoz?=
 =?iso-8859-1?Q?wP017t3CC0I1wJSxDPaHrqVT/R+gC+zgP4Bz3YJZYpDgwZMuoZmhYG4NPg?=
 =?iso-8859-1?Q?ghOmO3og1zOipHm+hWKr2MvA6coXBFoidN5mSruptQ8FYr7EN+XrbJxomT?=
 =?iso-8859-1?Q?hVS/jcYFGq85e5pHSqYGMWnxi5wchdnWiYojoBpOMJR2VGW6saW7jMeaeK?=
 =?iso-8859-1?Q?bcBxPxsYX1VOB65VKrmRKN1wm4wUehFETq/ZzmI/x7HlOsk9xUYz46wHB1?=
 =?iso-8859-1?Q?+oUVESSO4XxIayucquea/6ADxxca77JR/UKtriqiwymYR/o2x/sr3kxuVJ?=
 =?iso-8859-1?Q?c/L7F7XvLF1qym8nRKSOAsYKLbmcdMc=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DU5PR03MB10263.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 02a3cab9-867f-48b6-cadf-08de8c1488d2
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Mar 2026 15:21:35.5314
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: PXlVYAZmds/wjBN0hK2PgaKdZ0oUnci3qGVV7YKUmYQ8hSAV89JTxwTbrqzF8ffQE2ZEgwMOiVJtnOLrGTEO5kzJjPpXCekt99nLHuUcPR0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR03MB6427
X-purgate-ID: tlsNG-d62444/1774624899-8DCFBDF3-029C50B2/0/0
X-purgate-type: clean
X-purgate-size: 3462

The RTDS domain-wide XEN_DOMCTL_SCHEDOP_putinfo path only checks for
zero values before applying period and budget to all vCPUs in the
domain.

This is weaker than the per-vCPU XEN_DOMCTL_SCHEDOP_putvcpuinfo path,
which already rejects values below the minimum, above the maximum, and
cases where budget exceeds period.

Use the same validation rules for putinfo as for putvcpuinfo, so
invalid domain-wide updates are rejected with -EINVAL instead of being
applied inconsistently.

Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
---

Changes in v4:
- add R-b
- reorganize p and b checks order for readability
- add const to the struct parameter in rt_validate_params

Changes in v3:
- changed rt_validate_params input to get struct instead of
period and budget
- improved code readability

Changes in v2:
- introduce rt_validate_params helper function to check period and budget

 xen/common/sched/rt.c | 37 ++++++++++++++++++++++++-------------
 1 file changed, 24 insertions(+), 13 deletions(-)

diff --git a/xen/common/sched/rt.c b/xen/common/sched/rt.c
index 7b1f64a779..b156f61afa 100644
--- a/xen/common/sched/rt.c
+++ b/xen/common/sched/rt.c
@@ -1362,6 +1362,23 @@ out:
     unit_schedule_unlock_irq(lock, unit);
 }
=20
+static int
+rt_validate_params(const struct xen_domctl_sched_rtds *rtds,
+                   s_time_t *period, s_time_t *budget)
+{
+    s_time_t p =3D MICROSECS(rtds->period);
+    s_time_t b =3D MICROSECS(rtds->budget);
+
+    if ( p < RTDS_MIN_PERIOD || p > RTDS_MAX_PERIOD ||
+         b < RTDS_MIN_BUDGET || b > p )
+        return -EINVAL;
+
+    *period =3D p;
+    *budget =3D b;
+
+    return 0;
+}
+
 /*
  * set/get each unit info of each domain
  */
@@ -1388,17 +1405,16 @@ rt_dom_cntl(
         op->u.rtds.budget =3D RTDS_DEFAULT_BUDGET / MICROSECS(1);
         break;
     case XEN_DOMCTL_SCHEDOP_putinfo:
-        if ( op->u.rtds.period =3D=3D 0 || op->u.rtds.budget =3D=3D 0 )
-        {
-            rc =3D -EINVAL;
+        rc =3D rt_validate_params(&op->u.rtds, &period, &budget);
+        if ( rc )
             break;
-        }
+
         spin_lock_irqsave(&prv->lock, flags);
         for_each_sched_unit ( d, unit )
         {
             svc =3D rt_unit(unit);
-            svc->period =3D MICROSECS(op->u.rtds.period); /* transfer to n=
anosec */
-            svc->budget =3D MICROSECS(op->u.rtds.budget);
+            svc->period =3D period;
+            svc->budget =3D budget;
         }
         spin_unlock_irqrestore(&prv->lock, flags);
         break;
@@ -1440,14 +1456,9 @@ rt_dom_cntl(
             }
             else
             {
-                period =3D MICROSECS(local_sched.u.rtds.period);
-                budget =3D MICROSECS(local_sched.u.rtds.budget);
-                if ( period > RTDS_MAX_PERIOD || budget < RTDS_MIN_BUDGET =
||
-                     budget > period || period < RTDS_MIN_PERIOD )
-                {
-                    rc =3D -EINVAL;
+                rc =3D rt_validate_params(&local_sched.u.rtds, &period, &b=
udget);
+                if ( rc )
                     break;
-                }
=20
                 spin_lock_irqsave(&prv->lock, flags);
                 svc =3D rt_unit(d->vcpu[local_sched.vcpuid]->sched_unit);
--=20
2.43.0

base-commit: a7bf8ff218ca05eb3674fdfd2817f6cff471e96a=


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 15:29:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 15:29:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265908.1556637 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w697H-0006ZC-CJ; Fri, 27 Mar 2026 15:28:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265908.1556637; Fri, 27 Mar 2026 15: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 1w697H-0006Z5-9f; Fri, 27 Mar 2026 15:28:55 +0000
Received: by outflank-mailman (input) for mailman id 1265908;
 Fri, 27 Mar 2026 15:28:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w697F-0006Yy-MJ
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 15:28:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w697F-000JKS-2O
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 16:28:53 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c6a230-5cb7-0a2a0a5109dd-0a2a45079dd4-6
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 16:28:52 +0100
Received: from [52.101.193.70]
 (helo=CH1PR05CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c6a233-fd74-0a2a45070019-3465c146d6b0-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 16:28:52 +0100
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH2PR03MB8113.namprd03.prod.outlook.com (2603:10b6:610:27e::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.24; Fri, 27 Mar
 2026 15:28:29 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9745.023; Fri, 27 Mar 2026
 15:28:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TNt+7CMSYE8NYVtCYuZFe0PxRwDK2kYnB+VBEv3N5joFApC+noiIdpE3Gb+jX/skMhDIyi9WSR1jzsuUARb0oPnS8yg5zWXgphqerqwl7gVXQ9LNzZRAzhNMEm0rI7nI2nHpssaYBjEyUf3n85e4CStHRECitcdd5i2wzvIKEUlKkTjReyPj1uqAykuOrsSbRX/lEixIP4mg911PXLiJmlK0HqzhmPhjgVCv0H49NyFnw/xLpHdWTLPcD+xmJfGGzCvHsSXXPvWRqqNZThU5e/Gx+bu3efvJCbd6DRO5spa4aY/GUOA/ZHwqjkP+UilJZrmkQHNBhzLyHN6moJHkaQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eki5njl91rCGqW7qNiThUEKlKFAvhE6lV+GEdJXtjDk=;
 b=ecE+T2vRDLo5zKaVIJ2J5f+UqAYmH0vQMhPPimnZMATZABmiT4dQLobQOlWyWgM7O/d+Un9Dar3v/B73aLAgeda27J+FnSIysABODAT1l+ZPVWqeS9NZs7ebnXeemDmUlMW7YYNFwtDGhLhBaynpqh4BT4DDjgIeqKF3G/+t+StByG3dXP5b07422XuDG80ZVeoo2dpp7utumcVzSc/m1f1Gwh5xq1t6UVKYS/u1aasrjzOOXoL35cgSdqTB2E0WfBNMqKzBDmL3BriPtD1zRw55m7NYNuuxQEJoW1Eb5LqFjfhb0NkTVyNt3bTqLfyR0oOcP9eINbYmR4m/Wmyd0w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=eki5njl91rCGqW7qNiThUEKlKFAvhE6lV+GEdJXtjDk=;
 b=eFszoP8GMZLjIyOn4pZJOANlG7Bwtm+LWUbhZjy67kFxVgc+yARKStpvvOOkAm5FtABwvCev/7L4mXSxJqYO0xbm1SvrK1JLxCJGZ0j51lFpHQUZC33zz7rBwDgMDXlKVsoc/QmGb8m0Z3bW+V7/Zqo3/lzYGNUAUgVyzU5ibb0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <78400798-1183-4edc-a32f-a6f0ef67759d@citrix.com>
Date: Fri, 27 Mar 2026 15:28:42 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] Config: update Mini-OS commit id
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <20260327151429.438096-1-jgross@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260327151429.438096-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P265CA0350.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:d::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_|CH2PR03MB8113:EE_
X-MS-Office365-Filtering-Correlation-Id: 8426f5a9-520f-4cc6-2ea3-08de8c15895f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	aLvUKNWM5WqI6VqTryyWA9YdC90OntfxspKAmzqU1sICARRV+ANMKMQxj0SEIjwdZnF7eBDml3BuVEzzTmncoiPo70CK8Gp69oea1XLVcbsKLbzwvvDGpc6HcsJmcdfbzgN9w9EP0EXol7Q4ofd7LYD4OXwv8bIkv9b8g8u4EXmoTMSnF/TeTR+TppcsaYtkgzN0tgo5c9cUZZMOcTlgduyOjjXz2RUe13MX+iFKJAs30MdgB3Hh+ViG73dntUUc94e2d1wWdv2WZmyqtOA4QnSvXDCbaj/WJqdsk962UB3xHBFDGZBWjxvmN0puPb2dFxsZzdNqX0cM1jm89TZOuI3YLP8yz6xxXGDmb5ZCi46mebzUbv2NHUMh3WaaVoWVQZ+/Q+Es9QMm4GhSxWv0aRD/Cznym9Oci0uSi4LZ9cu8r97pxGVBD1PM2rtnZQb8JaHDZ65ms2Vm6DnV1q2wY34F1kHyfb0OFCtJTmjI1ix4o3qNh21ruID9IP8MJorRZQ5uEV9CBHwxRcm73ONf0BK8vayBmrCvp+RozxzQP3Eccddvn3rq+xfgxhDqXIAFKc1Didmx/eB7U5J62T183+k+l47Zpx9t47nkZA/X5rXVfuj9nKTz2VrqxVxMQzWMDiHdbi/wWE55V9/sg3LWfABzCCQzz8k7XztWGcFda5ja/JYLN1IE0sfrJC/O/ars5tOemyjX0O4FeZhPWIK+U6d/IznbmJHluzkXUx0s3l0=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VzE1ZktVWVdFZUtIdWhiN2JzWk1PYkNZZGUxZFBzWGYyNGh6ckJFSys4T1ZM?=
 =?utf-8?B?V0srM1IwSzdUNGI0THlXM2FQUWl5ckVBckdoNUI1STlUVTRuL04yZzl1QUJZ?=
 =?utf-8?B?a3dpcDlIOWYrbWN0UDNwMTYrb1VrQyttRDNucWhqUlR2M21aZStxZGRrRWl0?=
 =?utf-8?B?bGdRU1VxN2JwNzRZNmxWcVlMUjdrWmppcE5yaGtuM3NPdzh3ekFPM3RSMnl6?=
 =?utf-8?B?TzR2TWdpb1ZpVUt1alFoaWZGLytqZEN5MFduV3lYVWpZRHFFUEpoWE5aaTh3?=
 =?utf-8?B?NGllcjY2OHVhQTlibkk3ZkRZUW5aTnVvWmNkenJGbVViMFAxVWtQZGRzNW9k?=
 =?utf-8?B?UHAvU2RsVEdXT3NGZG1SdDlMUlYwU0gxRFR1NWxoR01VN1l6TlZjUXVIQ2dM?=
 =?utf-8?B?eGY1WFR4MzZ5VTF4NGtWeEIrV3I1UmlwaVg4OVVxOUV3VzhQbHBiMkkrTkQ0?=
 =?utf-8?B?VXdDUW1pVEFod1JCemljNnVTYysrc2dTZTdONzM4ZGw3SnloTEpHTURKTXg1?=
 =?utf-8?B?UUpwU1IxMGN4RGcyNE5WSk5WNGNZdmRJbnByLzFIb1UwT1FuZW5QeTNSQ29w?=
 =?utf-8?B?czh1ZjMxOXlEWTd5RmZXbUd3YUp0eEVyNFZOSW04dHpreWo0MW9kTjRPL3lZ?=
 =?utf-8?B?eDJKczljTUZKWGdnTTNsci9VY3orTFpTVHZyaUtGK0FzLzAwUEtuV2Z0aHl4?=
 =?utf-8?B?RmJ2RXVSQ3NZNEJXWFV0eHh1RDVUNjdCU0dXWlZKMmx3SGtCRDQ5eHkxZDNt?=
 =?utf-8?B?YjZnWkRqQkJDb2E2MVJoYVdXZ1ErTGtRdStNSGpiRE1rZ1lwWDNDWjdtVjQ2?=
 =?utf-8?B?NVlSUWZBTndlN1Z2RGM1SkFSVGZyRTRrS291VThjU1UweE01QUxzQTRacG9B?=
 =?utf-8?B?b2pVeGJPbTRNemNWNG1ETHMwK01xMnZuSWltTjBrTWZvNWZaVnh3STF1bnpS?=
 =?utf-8?B?a1paZCszRWluTFJNUGM1VWlKSFBDd2lRckJ6bk04QnJpWGlRdzNMck5EZlRy?=
 =?utf-8?B?K0xYeHo0YTdMOHpzdTdWRWZaeDNvZ3loUkFlaGV0ZGVjWlNieFY2MEtFanB0?=
 =?utf-8?B?MXRJNHp2aUNXTjhNOUlRNnNGdXdxY2k4M2FHUlN1WmIwYU9OY214TXRZSGxa?=
 =?utf-8?B?TjRhb0tndS9wYUtjRktCWFVZT2h5d2FBRTB6b0NXWHE2ZnhhQmtJQXhEeWxB?=
 =?utf-8?B?WTY2ZXVXalY5WXMzNGhBZVNaRXhLZWlNaW9pek5JMUpDdkRrWENlYVRXOU5l?=
 =?utf-8?B?cENtYVVvY3gwZ2ZlWnpuUENUSUJ5NFhENEdlWXZzYnpVTjM2Q2NsQkdNQ205?=
 =?utf-8?B?YmZYMU50MDFmVWp1aHd0U0xJbjh3WlhYQ3c2T2dHdUt6NWZhQjdpL2kzblhj?=
 =?utf-8?B?Sml0SEtmOWZFNTJvcWFKYzF5cVMzNnMzc0Y5YVRiM1Q1Z282Z0d2RnBaRndt?=
 =?utf-8?B?Wng4RE4zSUs1KzdqR2I2MTdvMVoySW1DWXp3dW1iSnkwKzdBQUZob1N2UVk0?=
 =?utf-8?B?dW5HSUhCa05IRkhQcDA4K2E1V2pQekdBNVQ3aWM3bS9NdFVGVWdLcmliRzRq?=
 =?utf-8?B?VndSNi9TMkNleDlrdDlOUHNQNDNRMnJGKzd6Z0pUYlRlL0xRTzZkM3pPZEU4?=
 =?utf-8?B?MHVOaG05d0l4ZHlSME13TDhRL1A5aEc0MnhMZnQrZTBxdE1mOUI0bUR2eWF0?=
 =?utf-8?B?MkFOWUE4Wi8wZ0VHTUNOdWVOWjdaSUtFVnEra1c5eEhNbCtYcGZ0U3JkbW9M?=
 =?utf-8?B?YlJIeGhQbmtzRUZzL1l1b3pQeS9LdWxsdjA3MjZKeUQ1MDdGa3Z4Wk9BNE9P?=
 =?utf-8?B?MTIrTkpJNGVGNytQdFhxR3c1L3QzNkF0YWZiVmY0YkoxYmdMSXVBR0lnQTJY?=
 =?utf-8?B?YW1pUlh5MXVjVmNXUm9paUZHc1JzVVhtQ0M4NTU4ZVdDUE91cVRQQi9iSGpo?=
 =?utf-8?B?SURhb3ZOaFcybWRzTU9kTkJmdFIvMWRKMnQveVM4VkNxYWIvMVFCQUJhRHNX?=
 =?utf-8?B?bVdjSTRwclFWS1IyVG52VTVvZnZGT1EvTEN3YU5xMGJMRFVyK3VOUkxKZlFl?=
 =?utf-8?B?UlZtdDlFMmNpeUl5dzR4V2pyR2RyY0drd1lPeEVvaHdaZzFtT3JDTk0rRXFp?=
 =?utf-8?B?TGg4MUp4UGVuUFZ5dmpmVUtXc3JhY0hHcXZ2U3RZb2pSUFlTZlN6Y3puZVQv?=
 =?utf-8?B?N0xIajdacVFQcXBEVG54aHYrUk5iZkhvUEU0S1JMNDBTNGlxOVVhYzh1eUJm?=
 =?utf-8?B?U2kxeS9lQ3ZoY3Z4d213WnBjd1BUTzJobUhvQWdRZFhYUU5OSkhtak5KZzdS?=
 =?utf-8?B?WmF2TXpwV0pIWFFNbjVPM256aGdQUjhoaU5BVENneFJjOEc0WW11dUxlMzJw?=
 =?utf-8?Q?wSUeFKndNGYecNy0=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8426f5a9-520f-4cc6-2ea3-08de8c15895f
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 15:28:46.2419
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: mlxKodtlMjpJJDjaAwNb+o5efI34+oxmH1mfvtBuUxfpkspemgVVaCKtKfy72YaTKz3Q8OXDTrffmQNqnDQTJuYv17Q55+RkDBZK++vrPLM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB8113
X-purgate-ID: tlsNG-ef75cf/1774625332-4DCB2303-0F664B84/0/0
X-purgate-type: clean
X-purgate-size: 180

On 27/03/2026 3:14 pm, Juergen Gross wrote:
> Use the newest Mini-OS.
>
> Signed-off-by: Juergen Gross <jgross@suse.com>

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


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 16:22:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 16:22:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1265973.1556651 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w69wo-0006wP-4u; Fri, 27 Mar 2026 16:22:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1265973.1556651; Fri, 27 Mar 2026 16:22:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w69wo-0006wI-1s; Fri, 27 Mar 2026 16:22:10 +0000
Received: by outflank-mailman (input) for mailman id 1265973;
 Fri, 27 Mar 2026 16:22:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w69wm-0006wC-Hh
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 16:22:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w69wl-00DveF-U2
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 17:22:07 +0100
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c6aea2-5cb7-0a2a0a5109dd-0a2a4502db36-12
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 17:22:07 +0100
Received: from [40.93.195.34]
 (helo=SN4PR2101CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c6aeae-63bb-0a2a45020019-285dc322ad47-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 17:22:07 +0100
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ0PR03MB7023.namprd03.prod.outlook.com (2603:10b6:a03:432::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.22; Fri, 27 Mar
 2026 16:22:01 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9745.023; Fri, 27 Mar 2026
 16:22:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ik//9bHvcWrHBt1BMAHrnPzozTLzUzs7QO2PypnzROisQpoaRVq6E+ZNokEiWBWIg9b/H8dkwP0AZCV7oA9R7Ocgs1UvqBgfXuWceF4HVvFaB99XW2idD9PAHDLkKAAyexzj6rnJSV9nm4q4LJjnsTfUcM7GlCMkMtXxICrtK9gwTjEJiDdGmsnKEiohUl+AWCAxB8AKwCr2p3gmjTf3OA7uVaE3N8r92Jn/Q44VJcopE/FR4FOh/YQDrszNi0vgwYAdGJKZQ1OLrhhCtmz1C3hwzYc9kkXIAUZsXyTWluH59KKcc4JwFDgYiiFc4WBkc/3z8DHQE25wscOIxIgzEg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ycr6zfo8t9VZ5q0vHSI77f2ZyV3kSnoqeHgKcKxwuOc=;
 b=ZqpiVJ2lzyNbDqGrlvfnAgjP/Z1CAFG216DJN67WV/Qn0yqerxGPemWGiX/BpzrjQn033euh87Y/T8+ls5gfGPkMKMQUKJuaiEvuvapX0iVZ+0CdVulI2jBw3RDuv33Pa4XEX2morwR/lS4HK41XevZgpuCPMP9MtxyKGpGAog9ipJRKW8a1OX7qArKCGxiRzMspU6YWtvK2OuF0/mHg2JTuo0Zr7Yd4jSEZYVYIX89/7ZFWUbioescXtE1sZK2p/zc7CDJKlGztwljvgexyl471hWSHbZeUV0BsjBoq2dniySwEiD4yACOtQgbTXQhG6pvElu59bnOV/Nz/eL0/+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=ycr6zfo8t9VZ5q0vHSI77f2ZyV3kSnoqeHgKcKxwuOc=;
 b=Q7CF3+/azajmtYwsxEjcLCQu2+jkzcXDhgTvftDmj7SmpsApyWC7QxWiBkKCwxQxobjSJlvewJTDTVUnL0p8VWZWCTH9GsyQbwrLyZADCbJZDWauYh6d+O14DHRW+q04hhULBYLTNGu0TmHy9ChjbVvZk8bUa+E0//f0SbLwaVc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <13153741-134b-45ea-8de6-3f87c6fb2ec8@citrix.com>
Date: Fri, 27 Mar 2026 16:21:58 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 2/2] x86/fpu: Initialise FTW as well as FCW in
 xstate_alloc_save_area()
To: Jan Beulich <jbeulich@suse.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>
References: <20260326190429.1156367-1-andrew.cooper3@citrix.com>
 <20260326190429.1156367-3-andrew.cooper3@citrix.com>
 <a0cf5128-9387-4796-8440-7e33b6dd8337@citrix.com>
 <e6a36adb-20fc-41ce-9db7-7c7bc4ba9fd5@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <e6a36adb-20fc-41ce-9db7-7c7bc4ba9fd5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PA7P264CA0127.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:36e::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_|SJ0PR03MB7023:EE_
X-MS-Office365-Filtering-Correlation-Id: 3d90db3e-93e0-4b37-6a8e-08de8c1cfa24
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	/d/iz6hcI5JZoYsarhR8NgKVrtiUJ0r+Deb78ZNnuC/C9806jue9LiRYwEsIljaurqg1ssgU/xVegCa/3TJ56ca1mSr9T5Orr0p+27i63ZZdJ0laqpNt2KZZYMXhgrW1Tu7Bx0GgR+KlOYhv7ExgQ0DNNo4qA8M0YP45hTKu8GDzfhMugXP1ZUWok2BtxXaJx8sVoOqxdyOx3paLsmTiup2wTg2iE7KbpfdaziPcXjr3U3TJHL/x9uL7zMcJ0aV3bo3a2emZGNpBCFzIZ/dzmtKZcmEY/bYNIDzPHvotOQwOG95o1AACPz5rjbOb0EdwfKODorjnHbJji1MdSgvl05TjMpMp4ET0t1twf6DUIf/g4dQhAyxyIF+fyMRD0e/uk7chGfpJ6pjmsclBHO9mRv3dDKYXsUoxJb7lpBMOm9wZv3kTtcihsrF3Nv3g7uMcbJVfsGDuIEG5Xp1QaRvj3BK93vbW0xnXRkOeA6NPpuUVCWkaK6j2HYS0S8DBeiHuYb8aVBLMlB0caJ4ZrLnOaRFE9uexqXcLkd6WNt0SpK530jQs0htv9mOypsYR2T0c9MmdA0K3SspE52aLudRGYZAW7Mr+YnqriD/d1XfNQebskY2XX8KlqJCZyRlqh1C32LzoIoVtJxnzL2SM4M5LW05/2JMUMhSfe04+q/An8BfHP6b6P5IwOe3GbtUau5DJ+13Z6czvYWF0y6vq30vlI6UQCSbZdbHmcS7Uo7tc0cc=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NXNScGJpY0psaHpLMWE0cTRtQVkvNjJvaG1yby9VMDE3Yk9XMk4wcnFvSTk1?=
 =?utf-8?B?VlFzcm9FejVveVpTeXJmY0VtV0c1cFRUeWJIVHJVTmxoZlUxY3hzb29YaXIy?=
 =?utf-8?B?MUh2VXhoUndxcnMvZ0JFY1YyRnd2N1dwY1RQc0VKd0pyeDlFVlVWN1UyZEw5?=
 =?utf-8?B?UmlpQmxVcWZ1aXpPZEhlU1hHc2ZKSDVyOGNvbFdCcGpOOEVxNERFd3VwMm43?=
 =?utf-8?B?RkdDRU94K3R0OEhSZ3FSZEdjZFB1VVBJWkZJam5vWDFhWUtZbXhRTnM4N2tF?=
 =?utf-8?B?d09nYWFrdHZ1bU9LdkVuVXJHN0lVUTZ4d2gxVHczalJpT2FXNGllZTI5SWVO?=
 =?utf-8?B?U0pVV0p2VVVJaUswejhkM0tIL1g4QkJGeUtpZmlIU1V4aUl0N0JqYzREbzFi?=
 =?utf-8?B?RkpOMFVyVlNSK3NIOFUxeTNvUStxT0FHS1NyVFFCYTU1emZqYmhxQ0tCOGFv?=
 =?utf-8?B?b0NWUDJzY3NmeTJDUEhSRXZHYXJRMWRpUnQxeUhrdXVJVjdXaHpHWlhsSHVK?=
 =?utf-8?B?cVJvOTlGYnQ2TklJM0VPbHVBcnl2dkUxSlVhTVRLRHEvRzk2ckZ0Q0pyV1VU?=
 =?utf-8?B?Q21OT2hzRWRJRHdoL0g2NkVXZ3JxT1ZsbVBqQmxUQ0ZwOFdIeFJpWG03VlBW?=
 =?utf-8?B?MEEzUGVzY244c3FwMGhrVy9xZWtyRUptTEJieXhJL0dIVk1ZRW5La0l5OFlX?=
 =?utf-8?B?b0llL3JSQ3ZGZFI2WFhYVnF0MXVKVWZGOE5tRmdIcElkM2ttOVErUDhYL0Vq?=
 =?utf-8?B?eWJtQkpZOGlSN2dJcHBxWFdhUmVGbWpNT0JzNlViWjhlU1pQSy9LT09wMmg5?=
 =?utf-8?B?Vm91MTBEUFpOdFBCc0kvOGo0YzBING01cHMwZXBRNG8vVVNiYm9oQUZWaWFx?=
 =?utf-8?B?aTdPbm14SUdCdEJrR2ZwcDNPTEtFY2RicjVkN2p2ZUpsZjh2M0FvU1N0c3Az?=
 =?utf-8?B?M3d6Z2dPaGVPanc3REd6MEtyT3pnajgraGJHcTJ3Nk1pSFhoejZxNVA4V3Fn?=
 =?utf-8?B?RkNvMEdha0pETlArSXk1VmE2T2x0ZS9OY2h3MXhvSlBuQkVIeVhCbmhhbmZj?=
 =?utf-8?B?ZktwYytSM1VQUHZXa1JMUEFzYmMyRVI2TWk4aCtDcnpuTVcwcnpWdHBYMExP?=
 =?utf-8?B?Q2Y4VEJHQzRxZFRneGNhbUsyWkhnL1RuUFRic3VJNlEvblFSVHJjR3FQTGpK?=
 =?utf-8?B?Q3dLNFJEeUIxSmJQOU9CQTlubk5DSVdBTjgrVlNhSElzVTlTYmJjRU9CY3dO?=
 =?utf-8?B?ellmbXpscmF1QWJWUVkvUjFBUU1aNHJmenZhTlJlbWxZK0NIc0RXTUMzZ2hS?=
 =?utf-8?B?NzVLdDJxR2E4cGs5eWJZVmpFaEg4aVg3SG5oZnJJOVhTRitJN0JlUzlLUWxs?=
 =?utf-8?B?NlljNy9VR1NCOHRQZllOODdLYjk5UEo0VXhMZ0ZkckNXRWdOVkFLS2JETDg5?=
 =?utf-8?B?R0NPNE0zdjVNeGk3ZVRLeGIxazVuaDRWTStBV1FJaEtKQTRhSTVqVUR4NmpW?=
 =?utf-8?B?SWZ2eDVDeVdvcUN2Mkw1MFFhZmxCenpEYzRGaXZxOEdCb3RFdEEwN1ZTVXVu?=
 =?utf-8?B?c3grd2RhMjIxSStnQld5MG9zaVlEeitreXBRSFU3U0FNWmV2M0ltZ3FXcWtv?=
 =?utf-8?B?U0NxRDVUYkVpK2J6bS8vSjZPWTVOYjZWNUpSSi9TU1lETVgxRlloYk93L0FC?=
 =?utf-8?B?b1FZOGQzcVBuM04xb2Z3UldMQkI0N1VxeHpwbXJHUVRyR1ZzWDdQb2J0elFk?=
 =?utf-8?B?bFVGTVFvWTh3cWxHdGhETXFCOHdmUnF1M0E4U2E0cFE3OUJrdHFGUGVMU3hp?=
 =?utf-8?B?ZkxSbXVad3V6VWlDaU53b2k5eVRQYm5LNWtCZElqdmJaK2lUOHo2TldISVlT?=
 =?utf-8?B?SWFLQVVRUHl3aENyaFB6WDRIeWFsSjZaeEpodzRFbURVaW1Nb3lmbzZ4Q3JB?=
 =?utf-8?B?VUt3bVVtdlA5U2ltZk5IbUlLaHQxbmJ5cmx0RWcvSnBYWUsxVGlWMGJ5eXBB?=
 =?utf-8?B?bklGM3ZJTnFhQllKTWlJdUIwUVF2djRBK3AwZVhsR01RNWpKS1J5WUZHOUpF?=
 =?utf-8?B?VXp6L0l6UXZNYUY4TVVXaEUxaURyV0lFWE5XMEFnd3czMlpCemdlWnNkemhS?=
 =?utf-8?B?elkyempxdVI5ZFFybzRZU2FxQW1TdzZGY1owUGl1OTdxcHlpYTB4NFB1UGx2?=
 =?utf-8?B?RmNmVjFmOVErK3VGMklVWEhvUk5CaXFVMVdtTmNBbjFBRVNGMXd3eEc5QlR6?=
 =?utf-8?B?L3pqS0NydkVpckFKclNYVldqbmdZL25QVWNjZTBxRTI0ZDdIWlZOMU1TWWVv?=
 =?utf-8?B?R0ZtYUhhY3VtM2orVDB5SlQyV3ZNRS9rSEg3QzJFdHltbzBGb0UrTXV1OGx2?=
 =?utf-8?Q?8j4HCKiiA/5zt2+c=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3d90db3e-93e0-4b37-6a8e-08de8c1cfa24
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 16:22:01.7658
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: pheIuhtZL2AItB2iTvrAQL21jrLLxw7gDyUFJNcKesOjGmxQ875loWpstq2Z74B+BKWVf1SUlWsgmegwcmfJT1qYvzbgvUxBuI/zkWYRmo0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB7023
X-purgate-ID: tlsNG-720697/1774628527-4368EDB8-5FD3C22E/0/0
X-purgate-type: clean
X-purgate-size: 2506

On 27/03/2026 10:17 am, Jan Beulich wrote:
> On 27.03.2026 11:04, Ross Lagerwall wrote:
>> On 3/26/26 7:04 PM, Andrew Cooper wrote:
>>> xstate_alloc_save_area() configures FCW and MXCSR to #RESET values but misses
>>> FTW.  Fixing this means that the backing memory always has an architecturally
>>> correct value.
>>>
>>> Adjust the comment to state that it's the #RESET values which we care about.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> ---
>>> CC: Jan Beulich <JBeulich@suse.com>
>>> CC: Roger Pau Monné <roger.pau@citrix.com>
>>> CC: Ross Lagerwall <ross.lagerwall@citrix.com>
>>>
>>> I don't understand what the rest of the comment is trying to say, so have left
>>> it alone.  There's still a lot of cleanup to be done to merge i387 and xstate.
>>> ---
>>>   xen/arch/x86/xstate.c | 3 ++-
>>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
>>> index e990abc9d18c..747df0b2e9a9 100644
>>> --- a/xen/arch/x86/xstate.c
>>> +++ b/xen/arch/x86/xstate.c
>>> @@ -550,11 +550,12 @@ int xstate_alloc_save_area(struct vcpu *v)
>>>           return -ENOMEM;
>>>   
>>>       /*
>>> -     * Set the memory image to default values, but don't force the context
>>> +     * Set the memory image to #RESET values, but don't force the context
>>>        * to be loaded from memory (i.e. keep save_area->xsave_hdr.xstate_bv
>>>        * clear).
>>>        */
>>>       save_area->fpu_sse.fcw = FCW_DEFAULT;
>>> +    save_area->fpu_sse.ftw = FXSAVE_FTW_RESET;
>>>       save_area->fpu_sse.mxcsr = MXCSR_DEFAULT;
>>>   
>>>       v->arch.xsave_area = save_area;
>> Is this comment correct given that it is initializing FCW to FCW_DEFAULT
>> which is different from FCW_RESET?
> Is the goal here to represent XSAVE init-state in memory, or do we truly mean
> #RESET state (in which case FCW_RESET would need using, and in which case
> leaving xstate_bv bit 0 clear would be wrong).

We're creating the vCPU, so conceptually I think #RESET state is what we
want.

But, I'd forgotten that #RESET and #INIT FCW are different.  Also, we
don't really want to be taking the overhead of keeping this properly at
the #RESET state until the guest executes an FNINIT/etc.

I think it's better to keep using DEFAULT here.  I'll rework the comment
and commit message.

This also suggests that we want to rethink vcpu_reset_fpu(), but we can
leave that for later.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 16:44:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 16:44:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1266001.1556659 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6AId-0001jS-VG; Fri, 27 Mar 2026 16:44:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1266001.1556659; Fri, 27 Mar 2026 16:44:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6AId-0001jL-Sf; Fri, 27 Mar 2026 16:44:43 +0000
Received: by outflank-mailman (input) for mailman id 1266001;
 Fri, 27 Mar 2026 16:44:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <oleksii.kurochko@gmail.com>) id 1w6AIc-0001jA-1X
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 16:44:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w6AIb-00DIVI-Dt
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 17:44:41 +0100
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69c6b3f6-bab6-0a2a0a5309dd-0a2a4503c388-4
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 17:44:41 +0100
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69c6b3f9-1947-0a2a45030019-d155802ac9ec-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 17:44:41 +0100
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-48558d6ef83so22481295e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 09:44:41 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487270ea4bdsm38450145e9.6.2026.03.27.09.44.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 27 Mar 2026 09:44:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774629881; x=1775234681; 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=xxnK4MKJkXqbZDfJW2Al+wM8TzSUN50cXJDicC5o8nc=;
        b=XeiTUMB5C+WbUtZMxhOvytlMPpP+UQV66cka5X9wiDnfJKba9XcOvlmAteH9Q7HEAV
         NtVU9xVcb8B4SqRlyjxJEFul6WNjYRYFPfymIWw2vPCxgRK2UXyppwmFMlO9+wz1vRRR
         YoBac7ILr1K7AtHBXhwTqIhfV4DsurK55867GMxZNMW1NfBxfxduaG8OVeCR1AgQXcu1
         8cOJ+1P1p+mhunopXUdsVPmsSLcYzyEdjmp3CZ3URsgnPWAxcbqO5tLmjiG523qT7SDK
         4Fhs+vh3MqwXjljU/GKO6QKYa13RMNvT0o3N8Tyrs1rQVPuzbDZIZeI1TwOEXKeMymyY
         2nMQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774629881; x=1775234681;
        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=xxnK4MKJkXqbZDfJW2Al+wM8TzSUN50cXJDicC5o8nc=;
        b=MkozCOvFjByGyXzXgpoMWCEAMAbOcC2vkx1vtev2N7fFijaexFRNdT1otYSd37WhIg
         BKMcAuD88a/67KcZl7SshQA00hnGZWEzGku2vbD2EK+7pkB2MN+sG6Dbxb6uMCeS37YR
         em2EDE4EyvJISmKCY6dD2Bd3Esi/s9URkL5iwBTI4UxAyI4dh++JE92R+3QjUsXB8hDT
         ksavrqeKbJ717Uq2g955FQT3XcfYtxpehDDSTZdqChQcxMR/brIF5TJLxbjjgB++9q04
         sLtHknTIZSRlZL69mXO9l+1rQWkPSr5HKwmrxhAAqbLw3i/EMjLfMLwJ+wAkwB6mhOST
         E84g==
X-Forwarded-Encrypted: i=1; AJvYcCWQkC6TVbraIr6mc7KBzWgx9BHg/d22haftkBhjTjtXh0rgyODMb1VJLJsW3n40E6bWWn3GgQ5G2CQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywi8Tv4kLZ7EBTIPyukVd1x1vcU2mmgUnHwIDS4dPFVnKtY52QP
	36p5C+1LpN0G2rUuWnG29JQr8ntw8jWrfFhVVH+v2kFlpttH6KWli2p/
X-Gm-Gg: ATEYQzzIR5DiLVmHWDSjAFoYZ6oUrOMe8kfSjYRw30fXHX3ky03tCFEw+A5tPZEZrEe
	kZmkK5Aw5bwqNGBBxgEIChLu3JC3bFI6nok0OhkaolCeQqT9EU22xBf0g8+6jcVS+5ZIZWCXk8r
	eQodu+fr50hNL8aAGCmFhl/aVUyGD7PfryzAeCwgyFf8azM1NcboXsLaoJdA5NRD0+bNqjAkGnX
	1nDEwFpjP/FDuLlVdPaxflzyyyEvzH49PxozLQW7xa8cssY4pgFkaUSYn29HMfWdH+zqbCx8eb4
	uEspdGvexpjsS1q/G9t/hP45RZ4XPfqLqrT3RElC86w6ShftvzWVkCBCqCc8SqDbqF+WFG4I5cf
	lZu5MDHhOTdnjNRrR1UJS2Ck+mU0tSKBIEvI8Lx+sJAjTOEsaZZVGTsu+AN/YZAUZ0N9AjEslid
	LC/KzkOSljA4wocmIQhrWMQKbFCcyuVHETkmLRMB6d17eq+Ym8hVUU+vY3Y2j/UDB+xLAZBpjKJ
	sY=
X-Received: by 2002:a05:600c:3d87:b0:487:2092:b2e0 with SMTP id 5b1f17b1804b1-48727d5a246mr54546515e9.1.1774629880650;
        Fri, 27 Mar 2026 09:44:40 -0700 (PDT)
Message-ID: <3e3e0082-c39b-46d5-9c19-0a85959877d6@gmail.com>
Date: Fri, 27 Mar 2026 17:44:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/4] xen/riscv: allow Xen to use SSTC while hiding it
 from guests
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1773419622.git.oleksii.kurochko@gmail.com>
 <0f0849b53625f9f9f939000f29579e264e522fd2.1773419622.git.oleksii.kurochko@gmail.com>
 <4ebe7434-ce4a-421d-b027-f8c110b7b2dc@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <4ebe7434-ce4a-421d-b027-f8c110b7b2dc@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1774629881-E989A72C-989B8E63/0/0
X-purgate-type: clean
X-purgate-size: 3476



On 3/24/26 3:32 PM, Jan Beulich wrote:
> On 13.03.2026 17:44, Oleksii Kurochko wrote:
>> OpenSBI currently does not advertise the SSTC extension via the device
>> tree. Additionally, SSTC can no longer be reliably disabled by removing
>> the "sstc" string from riscv,isa, as OpenSBI probes support by attempting
>> to access CSR_STIMECMP.
> 
> Still don't yopu need to remove that string from what guests get to see, ...
> 
>> Introduce a runtime probe in Xen to determine whether SSTC is available.
>> The probe attempts to read CSR_STIMECMP using csr_allowed_read(). If the
>> access succeeds, SSTC is considered available; if a trap occurs, it is
>> treated as unsupported.
>>
>> When SSTC is detected, Xen may use it internally to program timers.
>> However, the extension is not exposed to guests because the required
>> context switch handling for the SSTC CSRs is not yet implemented.
>>
>> To prevent guests from using SSTC, RISCV_ISA_EXT_sstc is cleared from the
>> riscv_isa bitmap. As a result, the corresponding HENVCFG bit is not set
>> and guests fall back to the SBI timer interface. Timer requests are then
>> handled by Xen via the usual SBI interception path.
> 
> ... alongside the riscv_isa adjustment?

Right, I have to mentioned that in the commit message. It will be 
skipped for riscv_isa property here:
  
https://lore.kernel.org/xen-devel/cover.1773157782.git.oleksii.kurochko@gmail.com/T/#m6e45279d24258fe78c6aebf29379fa9135ec9f1c

(what will require to add SSTC extension to guest_unsupp_exts.)

I will add to commit message that except HEVFCFG bit shouldn't be set to 
not let a guest try to access VSTIMECMP register, it should be droppped 
(or not added) from riscv,isa property.

>> --- a/xen/arch/riscv/domain.c
>> +++ b/xen/arch/riscv/domain.c
>> @@ -99,6 +99,9 @@ static void vcpu_csr_init(struct vcpu *v)
>>       if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_svpbmt) )
>>           v->arch.henvcfg = ENVCFG_PBMTE & csr_masks.henvcfg;
>>   
>> +    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_sstc) )
>> +        v->arch.henvcfg |= ENVCFG_STCE & csr_masks.henvcfg;
> 
> Wouldn't this better be part of the (future) patch enabling SSTC for guests?

Probably, it will be better. Lets drop these changes and re-introduce 
later when guests will support SSTC.

> 
>> --- a/xen/arch/riscv/include/asm/riscv_encoding.h
>> +++ b/xen/arch/riscv/include/asm/riscv_encoding.h
>> @@ -396,6 +396,8 @@
>>   #define CSR_VSTVAL			0x243
>>   #define CSR_VSIP			0x244
>>   #define CSR_VSATP			0x280
>> +#define CSR_VSTIMECMP		0x24D
>> +#define CSR_VSTIMECMPH		0x25D
> 
> I think it would be nice if throughout the CSR definitions you settled on
> using upper case hex digits uniformly, or all lower case ones (personally
> I'd prefer the latter).
> 
>> --- a/xen/arch/riscv/time.c
>> +++ b/xen/arch/riscv/time.c
>> @@ -13,6 +13,20 @@
>>   unsigned long __ro_after_init cpu_khz; /* CPU clock frequency in kHz. */
>>   uint64_t __ro_after_init boot_clock_cycles;
>>   
>> +static int cf_check sstc_set_xen_timer(uint64_t deadline)
>> +{
>> +#ifdef CONFIG_RISCV_32
>> +    csr_write(CSR_STIMECMP, deadline & 0xFFFFFFFF);
> 
> The "& 0x..." isn't needed here, is it? I.e. the whole function could be ...

I think you are right, it "& 0x..." could be dropped as it anyway will 
be truncated by (unsigned long) cast inside csr_write().

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 16:54:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 16:54:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1266015.1556670 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6ARr-0003WO-RF; Fri, 27 Mar 2026 16:54:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1266015.1556670; Fri, 27 Mar 2026 16: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 1w6ARr-0003WH-Mv; Fri, 27 Mar 2026 16:54:15 +0000
Received: by outflank-mailman (input) for mailman id 1266015;
 Fri, 27 Mar 2026 16:54:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <oleksii.kurochko@gmail.com>) id 1w6ARq-0003WB-3w
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 16:54:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w6ARo-00DJwo-R7
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 17:54:12 +0100
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69c6b610-bab6-0a2a0a5309dd-0a2a4501a8b4-36
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 17:54:12 +0100
Received: from [209.85.221.52] (helo=mail-wr1-f52.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69c6b634-6400-0a2a45010019-d155dd34dcca-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 17:54:12 +0100
Received: by mail-wr1-f52.google.com with SMTP id
 ffacd0b85a97d-439b9cf8cb5so2255043f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 09:54:12 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48722c9506dsm102043135e9.7.2026.03.27.09.54.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 27 Mar 2026 09:54:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774630452; x=1775235252; 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=iz0Ap59StazEpO5nMqP6Ndy0HXqx8y8hyNMyp9Y7AQ0=;
        b=hoX8EE2Eu6tHYCRv6uayVmLWgTWAqQeEzFbOoO7eD51ylSqyCULja5aaosYyZlMHZZ
         QvpY5TtuYDptbKt5kYyyPPEpgSUP/d3D4jQiscCuVXsHLA5xZ+eNGpqZIKQ2JTNpYZJD
         OH2n0V8tlsi7BX1cWEua3KDCiMiqtW7x37kt2hmgZbmi7GabA01Ml9jTYBDDS7F9d8Tl
         blERiJOzJCKzeYH+UeCTsnFuJvy0G4oVHpGRYdVysJmOP/vyGqQAnJ32nFC27byTk4Hg
         ZVmmHyORs6S/xMT+Jxg3CgVojdBo4ZWMe8ua1N6RwBcrFv7pEmEHEZ5amUwrfE7EqVRw
         SNGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774630452; x=1775235252;
        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=iz0Ap59StazEpO5nMqP6Ndy0HXqx8y8hyNMyp9Y7AQ0=;
        b=NYKDkNu7BjhdxOeaUe04DNyI3NqBspOsElI2chv6DE2Rm2ym7eyqAHktCJ4/tg4R3U
         9fIUWvFqki0JVGekuoqJdnRecWjefkHXeF6kqgsjS+Pk8ATeJa4kDEzoLAru9mEtQOEr
         IKD48PRdqMPnVaTD6K8gbJDHObGPBajxOjBYhvBjzG1c9SCr8bAov0Rv2aPJJrhQcZ/f
         ee5MPno9tGm3p8qU85ZSSMSyog0rVxopO33+qDAUKVJ7/hxqcvC+pMzdr2NYelIig2ft
         8jPetTaLj9Y0BQ85/IqLFxRiyyPxcUuXQpKal3BHbz7PchhVZj2jrLyezTGB6VQ3oLDo
         RS8Q==
X-Forwarded-Encrypted: i=1; AJvYcCUEJ3RZznFbCdQ8doj9KYjsTevyMaTcmvs5BoRmplZ+5qTeQoHNx5NO57QAcsWlwXfLpQmD3DyF3Jw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxZOWTufzukfz0AI9WxSZuxirMxb2jASPRRfR7Ck0MqHs/MQrn7
	g9/9lKXQ3LVojCEOroh6rm6uCsYeREc/Iw+Rv3esbTrynuCKUi0S5WjM
X-Gm-Gg: ATEYQzyjL6BOApsVE3ClzVFfalAFfwSBfjChpBgXsN7lhVOC1c4o++3dCNdCDY/Lx1v
	fEgSkuKww/Xz2G3fgEWZm2Haiev3Bk0NQz51TMrvFfO44YzRjaMdW4tPtmpkUMyy+8y2GAqdD7t
	0xRm9iISEvE2tStijJdDWa2wJIlZbNdNx0ACP0U07HlKY/Ir1Bb83dNfef9G7e9W54nriFQiNze
	6uVjtKx8HBxCMgIEXPQ+zwkJUvcBv75G3wqKiEo49ZSUPWp5g/UpVqDq3cPWRZ2GgSoLE4Im3xd
	ifVdxxR6mamkYxu0KEv8A9JQKM58jBQSoqjY0qiUem2T4BLVPTi5ZiKKJvvFRlztA6BfGVTDf2X
	noLE0DMuiGyVME/xYvqOaxA7q/2zSpqbxksyWg4HLO8BQ6ED3h22lSCtPc330AoIzOjJpnG6vfZ
	l6FHbZnqaVv93N5l/xjuTSueQCLmxyH/qRnpf4AsW3IXWpPLydluHGcbHvuiaXIWWOqNiP2kaPw
	g5XwVi2XrkU/Q==
X-Received: by 2002:a05:600c:1d0e:b0:485:a4de:f4f9 with SMTP id 5b1f17b1804b1-48727ee54bcmr58520215e9.27.1774630451894;
        Fri, 27 Mar 2026 09:54:11 -0700 (PDT)
Message-ID: <f005dbcd-89a4-40b9-9abd-45d645e9ce8d@gmail.com>
Date: Fri, 27 Mar 2026 17:54:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 4/4] xen/riscv: init_csr_masks()-related improvements
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1773419622.git.oleksii.kurochko@gmail.com>
 <b283d6a8d59d66010f6249161245e4a7f4219589.1773419622.git.oleksii.kurochko@gmail.com>
 <c5e1cd58-92ba-43cd-bef6-16578d0f06b8@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <c5e1cd58-92ba-43cd-bef6-16578d0f06b8@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d62444/1774630452-23AECDF3-5AFAD958/0/0
X-purgate-type: clean
X-purgate-size: 775



On 3/24/26 3:36 PM, Jan Beulich wrote:
> On 13.03.2026 17:44, Oleksii Kurochko wrote:
>> There is no reason to use _UL() in define-s sitting in C file hence use UL
>> prefix instead.
>>
>> Drop 3d argument of INIT_CSR_MASK() and INIT_RO_ONE_MASK() to reduce risk
>> of incomplete editing after copy-and-paste, or other typo-ing.
> 
> Another brief sentence about the AVAIL -> VALID transformation? Then ...

Sure, I will add then:
  Use _VALID_ infix instead of _AVAIL_ as the mask identifies 
architecturally defined bits, not bits available for software use.

> 
>> Suggested-by: Jan Beulich <jbeulich@suse.com>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 17:16:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 17:16:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1266057.1556678 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6Anb-0006mz-I4; Fri, 27 Mar 2026 17:16:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1266057.1556678; Fri, 27 Mar 2026 17:16:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6Anb-0006ms-Ee; Fri, 27 Mar 2026 17:16:43 +0000
Received: by outflank-mailman (input) for mailman id 1266057;
 Fri, 27 Mar 2026 17:16:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper3@citrix.com>) id 1w6AnZ-0006mm-Ut
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 17:16:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w6AnY-00E3WY-RE
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 18:16:40 +0100
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69c6bb5d-2eae-0a2a0a5409dd-0a2a4504af5c-38
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 18:16:40 +0100
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69c6bb78-c823-0a2a45040019-d1558031cd85-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 18:16:40 +0100
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-486fda2a389so19183475e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 10:16:40 -0700 (PDT)
Received: from localhost.localdomain (host-78-146-242-105.as13285.net.
 [78.146.242.105]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48722d2366dsm98991055e9.10.2026.03.27.10.16.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 27 Mar 2026 10:16:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1774631800; x=1775236600; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0VEaJHVlFf1RyDf4mFUIyI/gmCJzqHaIWFNIxE0++FM=;
        b=qcX3BxREjvW1Xd4H8AdvNkvVo1k+FQ3UBgD1coSDdGtIUr3sgY3fvVp2tYlp8nWkBr
         vj2JJnB6cDN3TRJaMxegby6BPeU850/JUbbNdE7evCI5NAZGf7D6r8fY7i9DZWqB7IPZ
         NXzLzFkA5270LYK2kyLlKYUVCEejgSm9JZfh4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774631800; x=1775236600;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=0VEaJHVlFf1RyDf4mFUIyI/gmCJzqHaIWFNIxE0++FM=;
        b=Ceek3SERmPjUrGYI3YMEpeZV5GzkQcz+Q+FIZ+RUvrry1t6J9xRMXrclqcKy/dg+bQ
         ULOQp2h5QZK0A1roXbTkIJ1Cdw0y1+7XFah0gjFa1WUrycQIdM0PO21VIbdzhhzmOPo9
         XJwdvLLsQ1i2pqAVWG5IVk7dowRzLwDR77Ck9Qlfmn04HW2bRzj4fgs6blSuvSAugCwq
         mNdTr+/rXWSbkQr4R3sfqyYj8RC1ya4S5HTNv5xmwmlqdULvNoNnFVHdZG9Tea+J/xr8
         pdLv4sc1WLZ1W01sFjsemyd4JHUX0u5lVwHDwp7TeUhzFabJQ3O2NUndq5Dz/XW5LeVx
         XI3A==
X-Gm-Message-State: AOJu0YxPRG4JsNHGLsdGkl9uwtTDhEf1lsQjJujazPzhXytS146dsQUz
	sfHxtjzlbdQCbDxQGEpQk/6CfUsh/NGRF3pfS+e2TKAAoLEjDYjRXjsnJzMdM7YeX+goBEKFcHd
	ABwNd
X-Gm-Gg: ATEYQzz3HJU+QTXi/mbF7dTogp2bhCYg0JmHcwGRVZN90xeEySkdLvaI6qxdyOxHiXK
	zSpHEc0RRj6fGf/lBIO6YM0Gv1LQ893foyU9rIjWFdGiKsKQRY+qYMxPRvTclRPzA1fGWeO3BMg
	OJGnVreNXsntQROihHjVwzyqz/9x3z9GimhfSjVHMsqu89VCznh7Es7iKmSRn+5i7W0iOfn+NiK
	oNGlP1a5v6F3sbjHCoJuh3qYudw4P8e4P8dVOsLcwCs7yUyeDpVoVHfwGk5XyJqK7h0CM8OArkc
	/wdpopTShqmJOw0pFhdnixDyS1JKaTnfIMxwg5dN11imvmozdfNGIPuKTYX7jexDcZAQLKQxTst
	1QX7eCok0NU1ZhnBtiY64MroO+sfwp5zX0FvDeGXtLtksk4as6r77V1O0OWKE6OM2ZR/cAkx03c
	3nlCiDJxDN+b5QcYTYGp69o7+sOMgg/8pJUyt+dqQ3QFI/hdpBvMos6xGceme0VvzwsRrDXKp3W
	wbk
X-Received: by 2002:a05:600c:8b63:b0:482:f564:d613 with SMTP id 5b1f17b1804b1-48727eafa46mr51482005e9.15.1774631798963;
        Fri, 27 Mar 2026 10:16:38 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH v2 2/2] x86/fpu: Initialise FTW in xstate_alloc_save_area()
Date: Fri, 27 Mar 2026 17:16:36 +0000
Message-Id: <20260327171636.1182604-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260326190429.1156367-3-andrew.cooper3@citrix.com>
References: <20260326190429.1156367-3-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1774631800-B8A8E9D1-81B5EAC6/0/0
X-purgate-type: clean
X-purgate-size: 1964

Right now, xstate_alloc_save_area() leaves both XSTATE_BV and FTW clear.  This
causes a difference in behaviour between FXRSTOR and XRSTOR.

Switch to using using XSTATE's idea of initial configuration which will behave
the same even on pre-XSAVE hardware.  Expand the comment to explain why.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Ross Lagerwall <ross.lagerwall@citrix.com>

v2:
 * Rewrite the commmit message and comment.
---
 xen/arch/x86/xstate.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
index e990abc9d18c..defe9b3f0cbe 100644
--- a/xen/arch/x86/xstate.c
+++ b/xen/arch/x86/xstate.c
@@ -550,11 +550,22 @@ int xstate_alloc_save_area(struct vcpu *v)
         return -ENOMEM;
 
     /*
-     * Set the memory image to default values, but don't force the context
-     * to be loaded from memory (i.e. keep save_area->xsave_hdr.xstate_bv
-     * clear).
+     * We're creating a vCPU, so conceptually we should be choosing the
+     * architectural #RESET values.
+     *
+     * However for historical reasons of configuring the external
+     * co-processor, FCW's #RESET state is different to what F(N)INIT and
+     * XSTATE consider the "initial configuration".
+     *
+     * Guests won't care about the difference; all software tends to executes
+     * FNINIT very early during setup.
+     *
+     * Use XSTATE's idea of initial configuration.  This allows XSTATE_BV to
+     * remain clear and for CPUs to use the INIT optimisation where
+     * applicable.
      */
     save_area->fpu_sse.fcw = FCW_DEFAULT;
+    save_area->fpu_sse.ftw = FXSAVE_FTW_RESET;
     save_area->fpu_sse.mxcsr = MXCSR_DEFAULT;
 
     v->arch.xsave_area = save_area;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Mar 27 17:18:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 17:18:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1266070.1556687 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6Apa-0007YY-Sv; Fri, 27 Mar 2026 17:18:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1266070.1556687; Fri, 27 Mar 2026 17: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 1w6Apa-0007YR-QJ; Fri, 27 Mar 2026 17:18:46 +0000
Received: by outflank-mailman (input) for mailman id 1266070;
 Fri, 27 Mar 2026 17:18:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <demiobenour@gmail.com>) id 1w6ApZ-0007YJ-Uc
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 17:18:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w6ApZ-00DMZu-Aa
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 18:18:45 +0100
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <demiobenour@gmail.com>)
 id 69c6bbd1-e002-0a2a0a5209dd-0a2a450be380-30
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 18:18:45 +0100
Received: from [74.125.224.51] (helo=mail-yx1-f51.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <demiobenour@gmail.com>)
 id 69c6bbf4-ef63-0a2a450b0019-4a7de033b140-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 18:18:45 +0100
Received: by mail-yx1-f51.google.com with SMTP id
 956f58d0204a3-64ee82e853cso1966606d50.3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 10:18:44 -0700 (PDT)
Received: from [10.138.34.110]
 (h69-131-148-49.cncrtn.broadband.dynamic.tds.net. [69.131.148.49])
 by smtp.gmail.com with ESMTPSA id
 956f58d0204a3-64ef5cb5b6fsm3209109d50.9.2026.03.27.10.18.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 27 Mar 2026 10:18:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774631923; x=1775236723; 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=owyRg+e0creHUiFeSqqqdHeQvtQkCIkfG6HG1AOe1C0=;
        b=k0gylgbaAjQuXS3hiVV/ACnNxNs9mdf4Y6NbQzUjmlHycn4rzojNKD8FYVGv3KyATo
         nV2upbnyM8NuL+ITtzPiN2Tu+5makzkkt1fpphJcOqQ5aLVVDMYtn3SDz462/q6OV9n4
         U7KMRVh0i5vnqu5CgGbaGyzaqfWmvDi4QPO69eRRt4zdnBNGFju0Y6asKT0mEQTb9N1h
         gvE5T7pZCUGDElYsNuj+uxCeEEbERIHT95YndmJbxMbHCfFKKimGzIkk95VcFEzfmWv6
         b7GMYF+yMRG+NqervzEhOW/FZE3x/8eaRTZWtl3qEMU5u6/IZ9OircUL+MLsWWQ9Aafr
         cpIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774631923; x=1775236723;
        h=in-reply-to:autocrypt:from:content-language:references:to:subject
         :user-agent:mime-version:date:message-id:x-gm-gg:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=owyRg+e0creHUiFeSqqqdHeQvtQkCIkfG6HG1AOe1C0=;
        b=NxvjkR3GT07iGii5ttSKyLDJD6NVMMjqZ01ttiPomz0uY+IiAJejwysOs1NhFFXLTo
         FTP5hWVT11aVYLtq7LLlgfDTXjEcteBv+WQpTVFAxI/xGFc69eooZNxpVGYHz3+2lqY0
         sr6S5Y8m011LiLQV8WDwaZdAMyD8kTUFnBAGxWkIQCoXhpIm3i/QMMmgJNblFpewf7Ei
         dfZHowKMZeyD5QAaZF+c3z2oi9zCNikqWvVpLrv1UFkzXcTffJdtkT+5mGOEeJB98l0s
         N6n5tZGD4dGPQsr5I80XgD9yK3dpsnpySc7IgdQ2vJTXV8BDuh64Jp1mlbugtmkj0Bbp
         5NDQ==
X-Forwarded-Encrypted: i=1; AJvYcCXg5RF0fVYgxDhbWXlBz1EiDdJgOhUR1mwdTlcxx+fDJp6TYam8dJNIKTawoVnq468OLbwETAoQfFs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxIbTJzJ27S+xX5u4/vM4iuPfJD90JtNf5IslpYGzYxqfGoc7OS
	VEa4XNpyUXuhKplFbOsUlBFGFzp0F38S0D0+/wn1Fwfm0MGKrN3LIXZy
X-Gm-Gg: ATEYQzxSLHnTEQCUoz1KTe6GcrKQX7djaGpUNMK2+luJtdrgLsaNx5vvK/5A54j6MD7
	lGez5iPCrF+edXelNVTu25aVcl3LEw6NPn7fLUItdJ0FlbE1cUGKmAjbGy2a2G6NUhFLsgEIpVF
	00zLpxiVMghrtOU5WNMOiUQgh0RVGEhBtiaTm2bpL6pqmZ7LOrRvPbFxS3Gdth63F74ShPrfTTg
	goCGGB/kr2jZko4OMIZRqgtAvGm69ERxSRsQScrPEn8UlUsVohC4ZJ/I56fIYOyExJsdeSwpH3/
	4ao0GGPHC0CSP38hLGHNi9bPVA29IL1XTShvuPgXgr51waCPp46y9SJT6lRgaNP+uZW1EMtxjev
	7VQu+U2rlaIW2vUhg/KOHmNir1ZIMYNuE4n7/KajeNnlpdwq+kmye9N7ez0LZf+sv7uhreVMFhr
	vsvW796H5AIfMAEcb+LIkP8dzdhnvd4MXxMhRzLAucQUmASWDAa8gcwDna+WjMtIqDbkqg6z2n/
	GSWCG2W6cbrBQO1cGQgqqjxdOTIp3wO6p4oayU=
X-Received: by 2002:a05:690e:1c08:b0:64c:a894:f723 with SMTP id 956f58d0204a3-64ff7027e97mr3571173d50.0.1774631923248;
        Fri, 27 Mar 2026 10:18:43 -0700 (PDT)
Message-ID: <d96c3e5d-2302-43cc-9eee-926ff4954678@gmail.com>
Date: Fri, 27 Mar 2026 13:18:27 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Mapping non-pinned memory from one Xen domain into another
To: Teddy Astie <teddy.astie@vates.tech>,
 Xen developer discussion <xen-devel@lists.xenproject.org>,
 dri-devel@lists.freedesktop.org, linux-mm@kvack.org,
 Jan Beulich <jbeulich@suse.com>, Val Packett <val@invisiblethingslab.com>,
 Ariadne Conill <ariadne@ariadne.space>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Juergen Gross <jgross@suse.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <84462c4b-7813-4ad1-aeb2-862ae4f3a627@gmail.com>
 <5123c11c-3b8a-4633-809f-16c24418a4ce@vates.tech>
 <4f201188-31ac-4dac-9cc6-79c4283486e5@gmail.com>
 <df6194cf-1fc4-4a20-ad46-6eeab1d920a2@vates.tech>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <df6194cf-1fc4-4a20-ad46-6eeab1d920a2@vates.tech>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------LW2qA8kgQi2s0bOYdBcsPyxu"
X-purgate-ID: tlsNG-42698a/1774631925-A1202112-65AF72EF/0/0
X-purgate-type: clean
X-purgate-size: 24914

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------LW2qA8kgQi2s0bOYdBcsPyxu
Content-Type: multipart/mixed; boundary="------------QJMzZWGisNC6YWRFRRXAw0I8";
 protected-headers="v1"
Message-ID: <d96c3e5d-2302-43cc-9eee-926ff4954678@gmail.com>
Date: Fri, 27 Mar 2026 13:18:27 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Mapping non-pinned memory from one Xen domain into another
To: Teddy Astie <teddy.astie@vates.tech>,
 Xen developer discussion <xen-devel@lists.xenproject.org>,
 dri-devel@lists.freedesktop.org, linux-mm@kvack.org,
 Jan Beulich <jbeulich@suse.com>, Val Packett <val@invisiblethingslab.com>,
 Ariadne Conill <ariadne@ariadne.space>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Juergen Gross <jgross@suse.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <84462c4b-7813-4ad1-aeb2-862ae4f3a627@gmail.com>
 <5123c11c-3b8a-4633-809f-16c24418a4ce@vates.tech>
 <4f201188-31ac-4dac-9cc6-79c4283486e5@gmail.com>
 <df6194cf-1fc4-4a20-ad46-6eeab1d920a2@vates.tech>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <df6194cf-1fc4-4a20-ad46-6eeab1d920a2@vates.tech>
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=

--------------QJMzZWGisNC6YWRFRRXAw0I8
Content-Type: multipart/mixed; boundary="------------SSAIK0gF4zCfjDAjARSXUev3"

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

On 3/26/26 14:26, Teddy Astie wrote:
> Le 26/03/2026 =C3=A0 18:18, Demi Marie Obenour a =C3=A9crit=C2=A0:
>> On 3/24/26 14:00, Teddy Astie wrote:
>>>> ## Restrictions on lent memory>>
>>>> Lent memory is still considered to belong to the lending domain.
>>>> The borrowing domain can only access it via its p2m.  Hypercalls mad=
e
>>>> by the borrowing domain act as if the borrowed memory was not presen=
t.
>>>> This includes, but is not limited to:
>>>>
>>>> - Using pointers to borrowed memory in hypercall arguments.
>>>> - Granting borrowed memory to other VMs.
>>>> - Any other operation that depends on whether a page is accessible
>>>>     by a domain.
>>>
>>> What about emulated instructions that refers to this memory ?
>>
>> This would be allowed if (and only if) it can trigger paging as you
>> wrote above.
>>
>>>> Furthermore:
>>>>
>>>> - Borrowed memory isn't mapped into the IOMMU of any PCIe devices
>>>>     the guest has attached, because IOTLB faults generally are not
>>>>     replayable.
>>>>
>>>
>>> Given that (as written bellow) Borrowed memory is a part of some form=
 of
>>> emulated BAR or special region, there is no guarantee that DMA will w=
ork
>>> properly anyway (unless P2P DMA support is advertised).
>>>
>>> Splitting the IOMMU side from the P2M is not a good idea as it rules =
out
>>> the "IOMMU HAP PT Share" optimization.
>>
>> If the pages are mapped in the IOMMU, paging them out requires an
>> IOTLB invalidation.  My understanding is that these are far too slow.
>>
>=20
> yes (aside specific cases like with paravirtualized IOMMU), but only if=
=20
> you have a device in the guest.
>=20
> The problem is that that would force us to modify the ABI to have=20
> "non-DMA-able" memory in the guest, which doesn't exist yet aside=20
> specific cases like grants in PV.

This would make the mechanism *de facto* incompatible with PCI
passthrough.  That is unfortunate but not a dealbreaker for most
applications.  It's quite annoying, though, because of dual-GPU setups
where one GPU is paravirtualized and the other is passed through.

I don't think it necessarily needs any new guest ABI changes.
As you pointed out, guests are not allowed to assume that P2PDMA
works, so if the guest tries to DMA to these pages it's a guest bug.
This means that whether the pages can be DMA'd to or not is not a
guest-facing ABI.

That said, this should not block getting this feature implemented.

>> How important is sharing the HAP and IOMMU page tables?
>>
>>>> - Foreign mapping hypercalls that reference lent memory will fail.
>>>>     Otherwise, the domain making the foreign mapping hypercall could=

>>>>     continue to access the borrowed memory after the lease had been
>>>>     revoked.  This is true even if the domain performing the foreign=

>>>>     mapping is an all-powerful dom0.  Otherwise, an emulated device
>>>>     could access memory whose lease had been revoked.
>>>>
>>>> This also means that live migration of a domain that has borrowed
>>>> memory requires cooperation from the lending domain.  For now, it
>>>> will be considered out of scope.  Live migration is typically used
>>>> with server workloads, and accelerators for server hardware often
>>>> support SR-IOV.
>>>>
>>>> ## Where will lent memory appear in a guest's address space?
>>>>
>>>> Typically, lent memory will be an emulated PCI BAR.  It may be emula=
ted
>>>> by dom0 or an alternate ioreq server.  However, it is not *required*=

>>>> to be a PCI BAR.
>>>>
>>>
>>> ---
>>>
>>> While the design could work (albeit the implied complexity), I'm not =
a
>>> big fan of it, or at least, it needs to consider some constraints for=

>>> having reasonable performance.
>>> One of the big issue is that a performance-sensitive system (virtuali=
zed
>>> GPU) is interlocking with several "hard to optimize" subsystem like P=
2M
>>> or Dom0 having to process a paging event.
>>>
>>> Modifying the P2M (especially removing entries) is a fairly expensive=

>>> operation as it sometimes requires pausing all the vCPUs each time it=
's
>>> done.
>>
>> Not every GPU supports recoverable page faults.  Even when they
>> are supported, they are extremely expensive.  Each of them involves
>> a round-trip from the GPU to the CPU and back, which means that a
>> potentially very large number of GPU cores are blocked until the
>> CPU can respond.  Therefore, GPU driver developers avoid relying on
>> GPU page faults whenever possible.  Instead, data is moved in large
>> chunks using a dedicated DMA engine in the GPU.
>> As a result, I'm not too concerned with the cost of P2M manipulation.
>> Anything that requires making a GPU buffer temporarily inaccessible
>> is already an expensive process, and driver developers have strong
>> incentives to keep the time the buffer is unmapped as short as
>> possible.
>> If performance turns out to be a problem, something like KVM's
>> asynchronous page faults might be a better solution.
>>
>=20
> Asynchronous page fault looks like a interesting and potentially easier=
=20
> to implement.
>=20
> IIUC, the idea is to make the pages disappears on the guest behalf, and=
=20
> the guest would have to deal with the eventual page fault. Currently in=
=20
> Xen, a unhandled #NPF is fatal, but that could be tuned down for=20
> specific regions and transformed into a #PF or another exception for th=
e=20
> guest to handle.

Yup!

> We have actually a similar need for SEV-ES MMIO handling, as we need to=
=20
> distinguish "MMIO-related NPF" (to paravirtualize through GHCB) to the =

> other NPF; which needs to be configured in advance in page-tables (so=20
> that the CPU choose between #VC and VMEXIT#NPF).
>=20
> It would also need some form of para-virtualization coming from virtio =

> or a new Xen PV driver for the guest to be made aware of this mechanism=
=2E
> I also assume that the guest handles properly that kind of event.

On KVM, asynchronous page faults are purely an optimization.  I have
a few concerns with relying entirely on them:

1. Can guest userspace use this to crash the guest kernel?  What
   happens if the guest kernel takes a fault in copy_{to,from}_user()?

2. Can this be made to work with Windows guests?

3. Could this run into a livelock problem?  Xen could tell the guest
   that the page is ready, but by the time the guest gets around to
   scheduling the userspace program, the page has been paged out again.

>>> If it's done at 4k granularity, it would also lack superpage support,=

>>> which wouldn't help either. (doing things at the 2M+ scale would help=
,
>>> but I don't know enough how MMU notifier does things.

As an aside, graphics very much needs huge pages.  On AMD, using 4K
pages means a 30% performance hit.

>>> While I agree that grants is not a adequate mechanism for this (for
>>> multiples reasons), I'm not fully convinced of the proposal.
>>> I would prefer a strategy where we map a fixed amount of RAM+VRAM as =
a
>>> blob, along with some form of cooperative hotplug mechanism to
>>> dynamically provision the amount.
>>
>> I asked the GPU driver developers about pinning VRAM like this a coupl=
e
>> years ago or so.  The response I got was that it isn't supported.
>> I suspect that anyone needing VRAM pinning for graphics workloads is
>> using non-upstreamable hacks, most likely specific to a single driver.=

>>
>> More generally, the entire graphics stack receives essentially no
>> testing under Xen.  There have been bugs that have affected Qubes OS
>> users for months or more, and they went unfixed because they couldn't
>> be reproduced outside of Xen.  To the upstream graphics developers,
>> Xen might as well not exist.  This means that any solution that
>> requires changing the graphics stack is not a practical option,
>> and I do not expect this to change in the foreseeable future.
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------SSAIK0gF4zCfjDAjARSXUev3
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-----

--------------SSAIK0gF4zCfjDAjARSXUev3--

--------------QJMzZWGisNC6YWRFRRXAw0I8--

--------------LW2qA8kgQi2s0bOYdBcsPyxu
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/sszaHOrMp8lMFAmnGu+4ACgkQszaHOrMp
8lMWBBAApQAKUwrPoabseGgGZQvRglxrTdtnUiwwashJl45tK5+3m6pgmgDdSgl3
0Mw94H0/evlKh15WpmmarOLijGBJoiseu5R/jOG7ijtP9e1yCEicYiYB/mut3D7H
DHXMEWgYBQML/bC2uBaXlHMr/vZX6Y8U16V3jds28/EBDwGjZVWOHXebjAZxAY+S
z7AyQajugoBxcRVnFBhnr4I0fs+2Od3zJ2QViQ0lf8/OYim1mGut/OqRVb3lHuPh
oCrMOTAe9UzF8DkmpKZB9lnWQi4Qfeptv1caZm0BieWNilhWEvYs/Jth4MN3tN3K
Uf6OjcTzL/xXPypJANnj65r9jAc7KVrKHEkjxfD5gCUjsuDb5tX/9+DFMq5RESRu
mKNkC5kWaYWK7K9eGTnQKSpx6eQGc2NywsIP8OjV2nqctWNG7rdW5Xeo4gB54F7L
efNFDDkAUrHRAZCitupMabjvxHJzWqlMbYg1trOVyMpzqJYgu1hWzHGbSdppS1vZ
CMiBM1tIs2XV4Xj1sUHOL/WXh8OvZnzHZPW4d4/mwSNUPh4+ns6lBH952WVlj6OR
m3bTlOyIibym4+S834s5y1wWg8fT00sAsbpK3FBlozBZd2d3c2NErf5hXwYyNZag
9tWHCFxDEAuYvqRez6CDFAD7ZnpaxebUKvZ8LM/5FT+L1dvsuVI=
=7b0G
-----END PGP SIGNATURE-----

--------------LW2qA8kgQi2s0bOYdBcsPyxu--


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 17:40:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 17:40:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1266103.1556695 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6BAD-0003DW-NV; Fri, 27 Mar 2026 17:40:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1266103.1556695; Fri, 27 Mar 2026 17:40:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6BAD-0003DP-Kx; Fri, 27 Mar 2026 17:40:05 +0000
Received: by outflank-mailman (input) for mailman id 1266103;
 Fri, 27 Mar 2026 17:40:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w6BAC-0002wf-JY
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 17:40:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w6BAB-00DPeo-KX
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 18:40:03 +0100
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c6c0be-e002-0a2a0a5209dd-0a2a4505d7f0-28
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 18:40:03 +0100
Received: from [40.107.200.45]
 (helo=CH5PR02CU005.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69c6c0f2-5aeb-0a2a45050019-286bc82d140b-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 18:40:03 +0100
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB6624.namprd03.prod.outlook.com (2603:10b6:510:b6::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.23; Fri, 27 Mar
 2026 17:39:58 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9745.023; Fri, 27 Mar 2026
 17: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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ER8Rp+GtITfOdd0/iV9a5T+Cs3NIpdk3+T3nuaHY9rcND6uejP8I/cZSphJ2sRZU1UnoBB2c577KuKZDYW2+Ku9XbTQ0CYqOwUZI27TR++mrQRG0WbNJteYyc7mHMXc4Zs9nGHEUKiB4xkGSCPBB0PqvvUTPkQyw1WltnLj3Qn6sV47xu/ZUCHKkfMfMByFSoWlB/nxqAcsoHQjTXdkrCJJtuXPgFvQvQMARUEoIHHuFag/+eIvE3mM9rRi/kEw3nR+AGY9IBAGVZUtLBRrXQib+hAoygTe99SddfdQ6ex4yrkczKlJ/GRafMd0vm3UcEnWOGEH+jup9T60HaDbA/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=XyVfYYJLsIfQu6nRJym6crqaewUS2jJ6hc07Vn7P8g4=;
 b=PW9/xZuj6AV1w7GY0/bZ2SSf5QYp4CHM89BNh2dTXhKouGVKtFDuYa0m3l50IZDZwt2prgdJ2Yu2zF2VVLAs7Mcl3zXCuYDYIrmrQXq/2kWuxTFiy6LN1gScHcustmRh0cQ+UFj84W2OWJFcVwdmZwa5XWGPleQa8Fs3dhb+G4wKA4nlIgmUdkTcqOL+aMKHjwdF7J7EEZjafWo1YqEIbogINj4X8TUMktjqIfMTg76D35U3amtavuwbbF6PkKN061QKeNZ6/1qjtpn45O7BcCiwe/7nzUCuivyJdDPgDIl3xt/cuTRlQPHlOACU7nmNgSrnHxi8nd4rKv4t9s/Z/A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XyVfYYJLsIfQu6nRJym6crqaewUS2jJ6hc07Vn7P8g4=;
 b=hT7BVjr97pFkn1YLpUGQKZwHMRMWQnbYvjQiITu5tbSr3m+R5tgZYwnP748QSBO2d3nvbsC1KSO724YZaMrnDqa37+ZbJWm5EtesdrlMhU5SRJsL1luz39l4ixgvE4p0bsmqeeUpDOoNea5QU2/fAjnAG+/GwmoF6YEHGfhb9v4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <49a3c6fe-db8a-4814-8638-6242dfee495d@citrix.com>
Date: Fri, 27 Mar 2026 17:39:55 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>
Subject: Re: [PATCH] CHANGELOG: add xenstore quota support
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <20260327152103.438997-1-jgross@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260327152103.438997-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P265CA0077.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2bd::8) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH0PR03MB6624:EE_
X-MS-Office365-Filtering-Correlation-Id: 0b59bd93-bec6-4524-6cb5-08de8c27dd6c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|56012099003|18002099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	UelrBUr4HkC0zrqVEyzav2ni+XfOEa2/udWsitPXP+V9BiVScDrPAHmlYWJCrvJt3riOTsO4CUDjiODrfGePGK3kBgmS+qsB29ZvbaPjJlN4XfYPEwayPm2WpyyF/0ktRyJBqH0lZD+quuYoXS2qyy/GA2brVYgo7FBkZvZ8zU/Rz79ZwAGYrh5h/rZS2dA+rQVci71u3JInOAs9oO+tM3LhCjpFmbTMmQCiOBbfCmDJgwy8uG019p1hkaQPk/2wU3dlVsztB324mT5BdlxZR5fkTNevYfvmVTBu+m4Ff8WPWtGYEPUuLpduYgLNMWext5dj74ATT3WxYGl62AuFNt5cNxMgnm1qOyIE4RnUvuH68JHMETwBboAbHdQBhtdRxCI82H6R4qFXUv/xejLEbzeUnHmOhqTFpYPYdZNbt5hP7kgOlK9VHAaAfyaVZwyWep96nCRMD7G1SJxBeEjDcMixbMFSL/N7JaVlRSJLe5ENpo6JS+eAdaHZ0FjZHDGx/k2s/v6uAW015MxKPDr5TeqLbLNdT/8fc1NUdhJepgnSolImvZzA0LvuWFZBa1j1vyTfeQUE5RX/ANQFXAbV0CPeFK5xlbzTscd8WicFPNAeBtodFaYxUlnYve4sS+0q8URvzBtulkp7iJu+YP7z03184VAjFXl/8cx2/85jGxeMuKQzUBCsMEd/2rMNtSfy
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)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NFRKa3pBKzVQWTF0UU11N2N2aUUzOTZLZWcxdnlNVFhjdVBTdlV2MTllekov?=
 =?utf-8?B?M0JMdy9Gdkh4VHhzUkxYT1NxdVNpMWpjN0ltV2Qyakp1NVRWOHBoS041MGw3?=
 =?utf-8?B?THZIMDdUK2Y3c25UOEdPb29tRzdoa1lzbTRGUmRvK1UwZlpaWVRzNWc5WEFj?=
 =?utf-8?B?YmZ2UDhOa2xBbWpSenN4b0RHZ1lwcWJlRlRvNkhNckMwNTJ0b3MxR2xwNjg1?=
 =?utf-8?B?UXNrdmxrRnNsQm9rNXZtQUs0ZHRUOVJjNlpYNnRZRjFMNmZrVytjeFBGcjVx?=
 =?utf-8?B?aGFETGl1am1mNk1KTGFjZlF0NlROZzVyRWpaWGFaU0hxVlFXQS9IOGphNGNi?=
 =?utf-8?B?Ym8vMDVOeE9QUTNPMllleHVPUFFjUllJa1JMaEdzQVFDcmVXVFJPenRzYm9v?=
 =?utf-8?B?NUpiNE1yZVQ0ZWFwU0xaQjB0MDMxSG5YSkJhTzZLMWIzZVBCZ0ZkaVNHSThY?=
 =?utf-8?B?bGp1eGZDMkVncWtSd0doVUNLV3pKdW8xSWJLdjJrNDlMLzQ3Vm0zZmt5UUhU?=
 =?utf-8?B?Y1g3WlBxUXgyaUNzbFBSM0lGeThsR2JhM3RHSHpwUDRYendPVytOYlZabEsx?=
 =?utf-8?B?dXZIVnRrdTY4YlZtd0dSSDJoOVJ0TTJEV2U2NGFqazBpdVR5UVM1VmJPdm5M?=
 =?utf-8?B?QXZBSWsvNTMzaUpSMDRtQzhlc212Ni9JWWZRbGFZZUNLRGNsZHd2QzF4TnNS?=
 =?utf-8?B?eFJVOG0rQU45NnlhUjZzL002c3dqOEZmZDNYbnZJQ0Q4aEo0TjhTSUtPTmNx?=
 =?utf-8?B?dE13RDZRNVRlRkkyNVc2N0N4eEl4cjk1dnFkN1pEUTdVZG1wd1FYY2dKN0xy?=
 =?utf-8?B?ME5oZXRQYjU3eVJZRUJuTUZOdXZ2anZOcGlxYmVsajRnamJxd2ZhR24ydTFV?=
 =?utf-8?B?ekd1cWY5ZUV1Z1JlOGFpanFFd1NWQzFKOUh5UWtIb1FHS1JJdldoS3VtcWls?=
 =?utf-8?B?NlNNbVNTYjZyQ2JlcjRXQTJFa05OeEZlajYxbmdrK2szSHdiRm14bjRNTGlj?=
 =?utf-8?B?NHhGWlkxWm90YXVTZHR1NkhHL05iTTZjbFMrQzRtU01oOGY5WHhPVlF6amUx?=
 =?utf-8?B?b3JmZk9SaGpJYm9xVnE5NXpwb0wvWkxzVVcvUGxJLzZyaTFOenlKUzUyQlhk?=
 =?utf-8?B?MFBaeTRaaWhrUEhnMm9QTDdOVkpnOG5lb1ZBQWJrQXNwOGlSZkhMajBZSkJx?=
 =?utf-8?B?d3k1aUlNbEpwMGZpZVBra0RscVRmZzNub1ZDSFZOcUNpRWRrVDVuVkp1b0dh?=
 =?utf-8?B?UHB4bURmbjE0NjNpR1BxWFlMNzBMUklxRExCMzV0cVZwZkFCbW1qbURveDk3?=
 =?utf-8?B?eUwzNnArSjlJeGNsZHF3SnZ4eVkrWGRySmVpSVdOWTlUNExqSlZtREhGVTVE?=
 =?utf-8?B?RHAvWGFZUGJaM3JBNUZOUXlwZGw5NGdickJzMFQ3cnc3RVFxU0pvY3JKTEpB?=
 =?utf-8?B?N3Q2UDVpdDAyUSt6VnBMd2RyTFdrNnUxQy84dllPeUpDUGw3bzlTUzI1dzVv?=
 =?utf-8?B?dUJHSFYyazJmQm5SUWxWblk5UEc5M0dkZk1tNXY3aFBDTHJkNUR5QmJCSjNi?=
 =?utf-8?B?M2tac09VYUJzc2FlN092OUZveXJUNkhaRWpzeHVhWmhPdTlXWnlqY2J3VEVs?=
 =?utf-8?B?R3MzNld1NDdpbVlLQ0w3WHRiN1ZNQ2hpbGhDRmM5aVlpQTVQQmtjUzduMW1n?=
 =?utf-8?B?MVZNd2xNd0xrazFMS0JnVHo3Yzg4UzRTU0xuemRkVHpLL3d5TDRqM01OYTRJ?=
 =?utf-8?B?MHFsei9ZaHdPQkVXRzMra1lFVUpYL0k5VXZpOTJMMEx2K1hydUp0YWg4eE1H?=
 =?utf-8?B?a2lFVWFIRDhUTXRPeWxpTXNwZUtBNU94QlhOaGNibkFGR0UxWlRMeStlRFEz?=
 =?utf-8?B?MkVIV2h3a0liV3V3b1pSWmhDakFRN0d2dXUwTytpWWhPdXJhb3lTODNvdjN0?=
 =?utf-8?B?aEJwRm1rTlgxMGJBcVBPWlRKbUNEb3luR0RTQmU4R0p3K2hBSC9qQjF2U2Na?=
 =?utf-8?B?RFpmOHd1bE01bzNhZUVnVkpsd0oyQmNzSU52VzZCcGpzOGdlZG55aitLcnpq?=
 =?utf-8?B?UEs5VEdkUEpNeFRKUmhlWUR4NFI2enBrSEFxcFBLNXUxZ2lZLzlHUGNnNDRx?=
 =?utf-8?B?NXRlQ0VmWkcvdXhsYnJIcXZLb2krdldNUjNEcW95bHZlZ2d1K2RMWmZ0YTI1?=
 =?utf-8?B?enV2T055TWpQdytEaVZycmVZTzVKYTkvTDVUd2NMZGdwTUpOVGphblhHVHd0?=
 =?utf-8?B?SzZuTE1VbXMyd2w4QzJRYlJ0ZWJ4eHh1ckZaYUtESXVQc1BtMUlML0N6QVJJ?=
 =?utf-8?B?QzdoY0c3WHdocUI2bXVjSytqUzZvSzhCaUxQL0lqN2tuanFmSUlRcFhKTTF3?=
 =?utf-8?Q?7Ugvmu16Tkc1rRIU=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0b59bd93-bec6-4524-6cb5-08de8c27dd6c
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 17:39:58.0355
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 0Z81coJ5do7Nzi9CPHAw7EXYCdZYpy6uGFbCheUJKqpFCjsXNbQPy6zBDLGLx1IAX1E1qzah1SoZcRkEQzKiDyK/WJCAnjfCOBOHGKp3zUc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6624
X-purgate-ID: tlsNG-c201ff/1774633203-20A97488-669EBD59/0/0
X-purgate-type: clean
X-purgate-size: 694

On 27/03/2026 3:21 pm, Juergen Gross wrote:
> Signed-off-by: Juergen Gross <jgross@suse.com>

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

> ---
>  CHANGELOG.md | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index c191e504ab..566fe510c5 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -9,6 +9,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>  ### Changed
>  
>  ### Added
> + - Support of per-domain Xenstore quota in C xenstored (includes
> +   xenstore-stubdom), libxl and xl.

A minor point, but "Support for", mainly for consistency with the rest
of the section.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Mar 27 20:05:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Mar 2026 20:05:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1266212.1556705 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6DR7-0006xJ-H7; Fri, 27 Mar 2026 20:05:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1266212.1556705; Fri, 27 Mar 2026 20:05:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6DR7-0006xC-Dy; Fri, 27 Mar 2026 20:05:41 +0000
Received: by outflank-mailman (input) for mailman id 1266212;
 Fri, 27 Mar 2026 20:05:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w6DR5-0006x6-QM
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 20:05:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w6DR5-005SjX-68
 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 21:05:39 +0100
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69c6e2cc-5cb7-0a2a0a5109dd-0a2a4507ab3a-38
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 21:05:39 +0100
Received: from [52.101.56.4]
 (helo=BN1PR04CU002.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69c6e311-fd74-0a2a45070019-34653804cc92-3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Mar 2026 21:05:38 +0100
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BY5PR03MB4919.namprd03.prod.outlook.com (2603:10b6:a03:1ef::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Fri, 27 Mar
 2026 20:05:34 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.024; Fri, 27 Mar 2026
 20:05:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BoF0AtWX35yTwWEyQ03ZCAjQYvlz7QSVD8SW0REv58P0RcOks0LyZ4JsBbQVFKHbiDSCRm59qIFMtuNHeNUGL0c9L113JtVBXMm/jI47rNmUrrhDt+BmMizZPHJkjbP5VPUtrPoZG9VZGRE11C2V7ModgAySv+sC1RAC4+2KVoauiFbPYGDRCvGXZcuhjX6/js3pV9+4chu93ktFw/3vy9PGc8DEMBhHdmKu8IsFZVXXjKyjzTy5Oo+PnVVXhppF5wLv34FP30VYi68o14yfp/EmUOZr8aYG5K4e+WkSyk3kb8R8SaGoekw7Wgln2xKS3D0AiYPGSJ+oFDILm/i8MQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cLqNwHq9MYNAGDx+8vF5IRUVzTyHXsl5Qtc8I/H4QX8=;
 b=Y9CoJkorjtz/nq/Nk9Ue3geR+lQ6KJlQETWZOMVMadC+16xup8CmqkH/R6H626HzJoDKWEjrAQJrgE/k7FVuRJFCNIUQus2VsTkwZofNx58QZIzsswIFXkmGchEZ4yZGRydRLT6dScJuTfnAz+0aLgdX9J7xTucwKFvKKuYEIZ1PKcZgoYXwAiKzQdIxq8eKmomjjIlKahWFh0ute18zVRrGFH71SW6epFYrQ5/qkjMgr+H4eosv6GqHIObC36hnCRkf5t3dJ0rvSXQn3efZTIRdhV/fyLdq23JSpi95DBFNeTxOurM25or8J0j7s9r3hFGUgP8/ckmAr7p10mktMg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cLqNwHq9MYNAGDx+8vF5IRUVzTyHXsl5Qtc8I/H4QX8=;
 b=Nk33XM45BBNnox8nNb7vkWkE8rk12tT72X5Aas8NzeyfV/z7JH4s68g0W7f6PLS9QZyBMDKs47bGQDwrYI2BK+Es7yqJWfhCKJr+8kVDrraMpggC59x6NRsq00FwM6Yi92c4lKuMXURlaNq+vAoRWis3w+jhP3UDtTyqQ9PU+1U=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 27 Mar 2026 21:05:31 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH v2] x86/time: adjust handling of negative delta in
 stime2tsc()
Message-ID: <acbjC0uq98Tcwj0H@macbook.local>
References: <df31ece3-2c42-43b6-b97c-0867255e58b1@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <df31ece3-2c42-43b6-b97c-0867255e58b1@suse.com>
X-ClientProxiedBy: BN1PR12CA0004.namprd12.prod.outlook.com
 (2603:10b6:408:e1::9) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BY5PR03MB4919:EE_
X-MS-Office365-Filtering-Correlation-Id: a8b10557-6d97-44ef-e6e3-08de8c3c3468
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	rC+TJuRn9ojedVV8P7jI9Df3ldbHxW2sSG+/lrGk95NGjm3byp+6AYnQTP/LCmhzK+2/5vJECoOunio531Pzafhb782IvAEG5IPy3kK8ZX5FqG2mHLoFIfQQhRx5wnpMZRSAyYheAIC/WGDuch/K5M0HYZ6Ic6+WU8jPaDPOqQ+3Q7aAGS04KgOlxg/6P3XtmJny1aIVGMh/6y03iA0awvwJ35AwB2Ge1H5q1oFlxONU6Kh/A2JevmypOj9jvXh4j/WJoDDMmaR5z071R4JKEWMi2mxM0C5UHw5UwGBvg22DJfZMfG3snf80GFqN/fjtgobs5sUPl8jZWWzRdketC6QtDCwRLrgBK9btr47O55zbaNC9totuWRr8oPW/3jpn0NPNyUYX9dGnt3WbJZGGd+CYFDiHPKm0wrsYrFY3rjzkrO1F6YRJrKqkFBd45rZmi2snnHT9Yx2Mndz6pd+/D0b+B04sUNn7xUcw0W7kSLuSQdDm/zTTgXrudtTIjzyKi3DYkbPY+QvMUCVbShwoVPXI6Vmd/8SY13ZQq05xxyLqpCYLReWxRe0x885Ma5oxT58ah+U+0yq6TiYborzstOhIPo1RI/HZWcYj/+ucX9xWlbDPXaKb3goL4pcsqnz7czEyPKmEGg6OqkgLvYJzbQd3nI1vlrM6wNoF1EkSZoTdId/XaCFzhPhYuprqgaVgBKjWTVGU2/lj3+nOUtX/K4F6Zk9SJyIPCKin5SjKHQM=
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)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?M1IrT3JWMEVhL2NvTlhTanBETjhHeExDR09FeUFlWXI1RU9qVmk0aUZoKzZX?=
 =?utf-8?B?RDVPNm52WWlkd1hyVzRXcFZNM0s2YXV4bVgxd3RXbEZ4MFhrVGwreTFoNFdu?=
 =?utf-8?B?TXlCTE43QWozTzVCR2FsSVBFMHBMNU4rcEVVRGw5TjBtdFJnMXdsNnkyYmFX?=
 =?utf-8?B?WDFod0c1cXhCUWRPRnF2WGlzSnA3Rk1ISTFHRUF5RUtlM2JYUzQ5Zi9FZlhF?=
 =?utf-8?B?MXZMaWVXUytabVBLeEllOVNEL0ZHVGNPYktSNkkreDJta1FvZlluQVZQZGc1?=
 =?utf-8?B?YXJHdE8zVnl1NmV6RHZzK1h6VzhWUUZZbGN5ZTNkczhXNnkxcXBwbEZacGpX?=
 =?utf-8?B?TllLY2p3Qm1iVXNHMWxZY0E5VzR2TWlrNnkzSWM3Y1hlRFdPRW5GMkwralpz?=
 =?utf-8?B?OWtRVDB0cHUwajF4SFlIbUEwS1JTMmh0cVJzdG9UbmwwMDFKRmRxV3UrT21T?=
 =?utf-8?B?Z2RNSDVRR0k5RS93SUVHQzNRQTFSeEIzWnNTQTdERWNGa012WDBjVnVyU0VV?=
 =?utf-8?B?SGI3TGxzeWFkQ2psL20wMUJsdk1KOHpCYnBjbDkvTW5yNGEwVjlPc201bWQ5?=
 =?utf-8?B?ejcxTmhUc3l6OHQwcEFocUNXQjlnVkJybWdjQjh4SWYyK0E2cmRYaUsxVTdD?=
 =?utf-8?B?N2owZXhkSjB4cTlPMll5R09UcDlvZHNTdGNFajdsWFQyZmdwYllGWkFTMmNG?=
 =?utf-8?B?R0M1Rkd6dEVmVCtXdWlRbWJ6N3FHN1pPMEpXQmZVTCtZZzc0SGFLRHdpWVc3?=
 =?utf-8?B?czZxUU1TQlFyWCtYc1R0TjZMWHhEa21LTzUxR20rK2dkTVF5VHR5VFY5dHZ4?=
 =?utf-8?B?SWNSYTZuWUdQTlJxUmJCam53NGMzSEpDQnYwUWhDeU9yVWVkQllxUWZZTEhO?=
 =?utf-8?B?Y1BnWFJLTFc2dFB0THprZzMrL0h6cmNnbXJnaFZCU3pDQmtza2tzbjJKZ3ZW?=
 =?utf-8?B?Wkk4aWNxcGtmemJTOW9ZaHdGOW1iZXhOZ0VoVk1aY3ArMyt1QlN6Nk1jOXhD?=
 =?utf-8?B?YlVIejV4SmNxTnpZYk5weHF5Q3pRUE5DdWlQb3FiUnV0UXl3Y09wWkUwWmJk?=
 =?utf-8?B?U1pKVjdxQkNNTUF1M08zaEMrdkZsV1Z0Z1dnK004VGJRTEtGUUZtbjVUODFG?=
 =?utf-8?B?SjlUcmhUaDVaTWpmOGsyVG5PaTZkc2g4dnVGTXpjSlZLMCtrRXJRcEZGb0kr?=
 =?utf-8?B?YnN1VFd1UnVvVVpTZC9abEp5cTNjcGxKSVJLeXZjcWhPS1NMalpCZVVvZmFz?=
 =?utf-8?B?TEJsUUlKK3VLMHFSdWJKaG1IdWlBdzY0SWd2QVhqVnhIekh2SlJHS0dkVU9u?=
 =?utf-8?B?OTY3ajArK0NrK0JON0E1UTNtQjByYmxpOFpzdDVvZFpxbE5mOUtsRmxzS01r?=
 =?utf-8?B?TG1sT095R2JGT1QrdTB5ME8ySzlRRVFVbDBPOGNnRjVlb2pzaU9nb0xERTV3?=
 =?utf-8?B?Y0JGem5OdVovbkIxRXl3TWMzYlcyWEtXTm1qZE1mbzQvRXQ4N2FLVTJzdTFP?=
 =?utf-8?B?RWk1SkI3V3VJWFBuMzRVTnAxWnA5OXJ6ek8rSktJYWNRVkZ2MmxIbE41elZZ?=
 =?utf-8?B?TzVwY2pMZ0IraG10YUxJRWxZMm91TGZBeVFwTmxmc2lkRHBCUjhENDd3MjZC?=
 =?utf-8?B?RGc0SytaTUNJbUhMdHpSNWl1WFR3SzNLM2NybWpYZjNIZWQxSytGM2pyZGtP?=
 =?utf-8?B?dmkzR2szM3NTNzFaSUxQcDhMa0FLV0tUQWNBMVVRZ3NpN2tubUZjZEJOeWR2?=
 =?utf-8?B?Tmt4UnBwZnU5RjZ6NEtwaFVMQkpxQVlvSndySUlmanRQSnlIaWU5b1ZiUWVs?=
 =?utf-8?B?UFpVc2pxMVVyOE1sRGdSZ0pEU1JzWUxTWXVaenIxbTlvK01TS1hoZHBWZnBR?=
 =?utf-8?B?MmR6Q0wrUnJhV1haTGw0NjcvZldNYWp1Y3dTZDcxQ1RmTk5vVzhITWV6OHlo?=
 =?utf-8?B?dW1FclgrVzY4Mm82aG9EcDR6cGZiZFliV0RrTVQwM0xYdEtlWFZOMGlWVnFQ?=
 =?utf-8?B?bjByN0lNZWhYdjdTRWdvTUJSb0YxeGdoYnBFUGZ0UjdtcDJCS3BhaDFvQnQ0?=
 =?utf-8?B?TUorU3hIOWVwQzFYUkJhUnFoSFRaTU5tOFBrN2hYQkQ2MlVyODc2S0x4dGZl?=
 =?utf-8?B?UHdGMHpTVWFJV2NWSDNqMEt3U3NLU0pYWWFGcVNValBlbStpOVpleWdyNTRt?=
 =?utf-8?B?NmxIUEhGeEtBNE5Ndm54VHlSTzJvS0hCYXA0dmRORm1LbGg0dXkxWkM0VUt5?=
 =?utf-8?B?clZNODlCSFZPa0tOM0dTYVNxc3paQzFnUUNGVXhiS1ZubHFMaVdiS3g1MDI2?=
 =?utf-8?B?V29CMUxNV0FQd20rZDU5QkZrWjhuNEZCa0J5WnZxYXVqQmNjRzRCUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a8b10557-6d97-44ef-e6e3-08de8c3c3468
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 20:05:34.0755
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 8B7sl/l/mD1B2GS5oUgSrRMBToTabFJTaRrDkR5ROcqA3MWQ31FT/D0LK/D2qy5cfPpWwuHPfci5/ikTH6SDkQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB4919
X-purgate-ID: tlsNG-ef75cf/1774641939-4E8AC303-ACEAB31A/0/0
X-purgate-type: clean
X-purgate-size: 567

On Fri, Mar 27, 2026 at 03:39:42PM +0100, Jan Beulich wrote:
> When we cap negative values to 0 (see code comment as to why), going
> through scale_delta() is pointless - it'll return 0 anyway. Therefore make
> the call conditional (and then also the one to scale_reciprocal()), adding
> a comment as to why there is this capping.
> 
> Modernize types used while there, and switch to usiong initializers for
> the local variables.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Sat Mar 28 13:17:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 28 Mar 2026 13:17:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1266512.1556746 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6TWs-0002GF-HQ; Sat, 28 Mar 2026 13:16:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1266512.1556746; Sat, 28 Mar 2026 13:16:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6TWs-0002G7-Cm; Sat, 28 Mar 2026 13:16:42 +0000
Received: by outflank-mailman (input) for mailman id 1266512;
 Sat, 28 Mar 2026 12:10:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <chleroy@kernel.org>) id 1w6SV0-0002qm-TP
 for xen-devel@lists.xenproject.org; Sat, 28 Mar 2026 12:10:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w6SV0-00G0B2-5y
 for xen-devel@lists.xenproject.org; Sat, 28 Mar 2026 13:10:42 +0100
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <chleroy@kernel.org>)
 id 69c7c531-e002-0a2a0a5209dd-0a2a45069552-12
 for <xen-devel@lists.xenproject.org>; Sat, 28 Mar 2026 13:10:42 +0100
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <chleroy@kernel.org>)
 id 69c7c540-3034-0a2a45060019-aceafc1f8264-3
 for <xen-devel@lists.xenproject.org>; Sat, 28 Mar 2026 13:10:41 +0100
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 52B8543FD2;
 Sat, 28 Mar 2026 12:10:39 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 24AC2C4CEF7;
 Sat, 28 Mar 2026 12:10:26 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:Subject:To:Cc:References:From:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774699839;
	bh=NTFcZ7aSZIsyP3qPdyEPoyvUbM7dBDc1cogifZf44fs=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=LQI2u2FJrZdfURKcCR9tStL7U7j9JDQoiHCmq72vccMs+ZUBhp+9/TKvL161WNaYt
	 HB6Cn/KW4bpF4LE8szU/Ttp0n1iAeBjvFxI338mQ+OH5v7/aZmAQ9mRmTZhzpLHT8Q
	 2ij/qw3sRiilAWVo3GAkTfwxr5AaAfiGpMiRoVeACXWF2FpqJdBr1mqCSFspFTpRGG
	 IWAWGn1ScwG3hTcEoF9XWrUzsMNbRCB9m36GDK5FSVbYng9NVfLXXuJIcV7JatH039
	 EqdHKj9j/+OVngUAIX3Bg6ahCKh6k16Ub4DhdqyNRlVlqKadrI7x9Bvws94pvNi0EJ
	 U/HidD7p2Gw6Q==
Message-ID: <4c5e9bad-82f0-4714-99c2-8ccd79a45043@kernel.org>
Date: Sat, 28 Mar 2026 13:10:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/12] bus: fsl-mc: use generic driver_override
 infrastructure
To: Ioana Ciornei <ioana.ciornei@nxp.com>, Danilo Krummrich <dakr@kernel.org>
Cc: Russell King <linux@armlinux.org.uk>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 "Rafael J. Wysocki" <rafael@kernel.org>, Nipun Gupta <nipun.gupta@amd.com>,
 Nikhil Agarwal <nikhil.agarwal@amd.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>,
 Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
 Long Li <longli@microsoft.com>, Bjorn Helgaas <bhelgaas@google.com>,
 Armin Wolf <W_Armin@gmx.de>, Bjorn Andersson <andersson@kernel.org>,
 Mathieu Poirier <mathieu.poirier@linaro.org>,
 Vineeth Vijayan <vneethv@linux.ibm.com>,
 Peter Oberparleiter <oberpar@linux.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>,
 Alexander Gordeev <agordeev@linux.ibm.com>,
 Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>,
 Harald Freudenberger <freude@linux.ibm.com>,
 Holger Dengler <dengler@linux.ibm.com>, Mark Brown <broonie@kernel.org>,
 "Michael S. Tsirkin" <mst@redhat.com>, Jason Wang <jasowang@redhat.com>,
 Xuan Zhuo <xuanzhuo@linux.alibaba.com>, =?UTF-8?Q?Eugenio_P=C4=82=C2=A9rez?=
 <eperezma@redhat.com>, Alex Williamson <alex@shazbot.org>,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 linux-kernel@vger.kernel.org, driver-core@lists.linux.dev,
 linuxppc-dev@lists.ozlabs.org, linux-hyperv@vger.kernel.org,
 linux-pci@vger.kernel.org, platform-driver-x86@vger.kernel.org,
 linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org,
 linux-s390@vger.kernel.org, linux-spi@vger.kernel.org,
 virtualization@lists.linux.dev, kvm@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-arm-kernel@lists.infradead.org,
 Gui-Dong Han <hanguidong02@gmail.com>
References: <20260324005919.2408620-1-dakr@kernel.org>
 <20260324005919.2408620-3-dakr@kernel.org>
 <cvcetxkxjq2tz6n2vsofhyzove3qdi2e4r6rq6yxou3joejk2h@rmt5ygav7ssu>
Content-Language: fr-FR
From: "Christophe Leroy (CS GROUP)" <chleroy@kernel.org>
In-Reply-To: <cvcetxkxjq2tz6n2vsofhyzove3qdi2e4r6rq6yxou3joejk2h@rmt5ygav7ssu>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1774699842-815891C2-424DDE06/0/0
X-purgate-type: clean
X-purgate-size: 1868



Le 25/03/2026 à 13:01, Ioana Ciornei a écrit :
> On Tue, Mar 24, 2026 at 01:59:06AM +0100, Danilo Krummrich wrote:
>> When a driver is probed through __driver_attach(), the bus' match()
>> callback is called without the device lock held, thus accessing the
>> driver_override field without a lock, which can cause a UAF.
>>
>> Fix this by using the driver-core driver_override infrastructure taking
>> care of proper locking internally.
>>
>> Note that calling match() from __driver_attach() without the device lock
>> held is intentional. [1]
>>
>> Link: https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.kernel.org%2Fdriver-core%2FDGRGTIRHA62X.3RY09D9SOK77P%40kernel.org%2F&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7C4b9262ddecdd4ce29f9808de8a66485e%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C639100369055903282%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=%2BRfjlUkq7oWV%2F0v2S2B%2BEuxCY%2FLRQv6qHiEWiupd6kc%3D&reserved=0 [1]
>> Reported-by: Gui-Dong Han <hanguidong02@gmail.com>
>> Closes: https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.kernel.org%2Fshow_bug.cgi%3Fid%3D220789&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7C4b9262ddecdd4ce29f9808de8a66485e%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C639100369055936232%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=XL1K1ICiygOZnlvDUbQFe192KnLsBQms0HFNGCuyz%2Fw%3D&reserved=0
>> Fixes: 1f86a00c1159 ("bus/fsl-mc: add support for 'driver_override' in the mc-bus")
>> Signed-off-by: Danilo Krummrich <dakr@kernel.org>
> 
> Tested-by: Ioana Ciornei <ioana.ciornei@nxp.com>
> Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
> 


Applied, thanks


From xen-devel-bounces@lists.xenproject.org Sun Mar 29 14:14:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 29 Mar 2026 14:14:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267125.1556758 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6qtq-0001Z5-E5; Sun, 29 Mar 2026 14:13:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267125.1556758; Sun, 29 Mar 2026 14: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 1w6qtq-0001Yx-9O; Sun, 29 Mar 2026 14:13:58 +0000
Received: by outflank-mailman (input) for mailman id 1267125;
 Sun, 29 Mar 2026 14:13:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1w6qto-0001Yr-Tr
 for xen-devel@lists.xenproject.org; Sun, 29 Mar 2026 14:13:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w6qtm-0088d1-JN
 for xen-devel@lists.xenproject.org; Sun, 29 Mar 2026 16:13:56 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69c9335e-5cb7-0a2a0a5109dd-0a2a450cb6fa-34
 for <xen-devel@lists.xenproject.org>; Sun, 29 Mar 2026 16:13:55 +0200
Received: from [195.135.223.131] (helo=smtp-out2.suse.de)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jgross@suse.com>)
 id 69c933a3-f93d-0a2a450c0019-c387df83b538-3
 for <xen-devel@lists.xenproject.org>; Sun, 29 Mar 2026 16:13:55 +0200
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 491475BD24;
 Sun, 29 Mar 2026 14:13:55 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 1904E4A0A2;
 Sun, 29 Mar 2026 14:13:55 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id 4Z11BKMzyWmSNgAAD6G6ig
 (envelope-from <jgross@suse.com>); Sun, 29 Mar 2026 14:13:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding"; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774793635; 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=hZJHJOBncsdCISoe84MZId4U5RAezTe1aFUpQmj77wo=;
	b=a6XzJBiMzTfofOjXKUZXk8BkrC/VLmvCa5qiFwp3Jr09fGJQaKgYVkV6yT49+HceUw2VUr
	vP/fXzl6wU+dCFBRFxoTpNc4Fn9m1A4FdQhyCZlB+sVUNhiDMEy9j7mKwk/Jl3fh2m1695
	WxvXoZisLPBw3UWcf3dfY/ftGIdwjww=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774793635; 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=hZJHJOBncsdCISoe84MZId4U5RAezTe1aFUpQmj77wo=;
	b=a6XzJBiMzTfofOjXKUZXk8BkrC/VLmvCa5qiFwp3Jr09fGJQaKgYVkV6yT49+HceUw2VUr
	vP/fXzl6wU+dCFBRFxoTpNc4Fn9m1A4FdQhyCZlB+sVUNhiDMEy9j7mKwk/Jl3fh2m1695
	WxvXoZisLPBw3UWcf3dfY/ftGIdwjww=
From: Juergen Gross <jgross@suse.com>
To: torvalds@linux-foundation.org
Cc: linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	sstabellini@kernel.org
Subject: [GIT PULL] xen: branch for v7.0-rc6
Date: Sun, 29 Mar 2026 16:13:54 +0200
Message-ID: <20260329141354.575385-1-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.80
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];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MIME_TRACE(0.00)[0:+];
	ARC_NA(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.com:mid];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	TO_DN_NONE(0.00)[];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-purgate-ID: tlsNG-d25034/1774793635-F56B7734-D7B90374/0/0
X-purgate-type: clean
X-purgate-size: 402

Linus,

Please git pull the following tag:

 git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-7.0a-rc6-tag

xen: branch for v7.0-rc6

This is just a single fix of a very rare bug introduced in rc5.


Thanks.

Juergen

 drivers/xen/privcmd.c | 3 +++
 1 file changed, 3 insertions(+)

GuoHan Zhao (1):
      xen/privcmd: unregister xenstore notifier on module exit


From xen-devel-bounces@lists.xenproject.org Sun Mar 29 17:32:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 29 Mar 2026 17:32:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267186.1556767 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6tzq-0004gr-UN; Sun, 29 Mar 2026 17:32:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267186.1556767; Sun, 29 Mar 2026 17:32: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 1w6tzq-0004gk-Qa; Sun, 29 Mar 2026 17:32:22 +0000
Received: by outflank-mailman (input) for mailman id 1267186;
 Sun, 29 Mar 2026 17:32:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <demiobenour@gmail.com>) id 1w6tzp-0004gX-BX
 for xen-devel@lists.xenproject.org; Sun, 29 Mar 2026 17:32:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w6tzo-00A0Jv-GI
 for xen-devel@lists.xenproject.org; Sun, 29 Mar 2026 19:32:20 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <demiobenour@gmail.com>)
 id 69c961e1-2eae-0a2a0a5409dd-0a2a450ab924-28
 for <xen-devel@lists.xenproject.org>; Sun, 29 Mar 2026 19:32:20 +0200
Received: from [74.125.224.42] (helo=mail-yx1-f42.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <demiobenour@gmail.com>)
 id 69c96222-1772-0a2a450a0019-4a7de02ab5c8-3
 for <xen-devel@lists.xenproject.org>; Sun, 29 Mar 2026 19:32:20 +0200
Received: by mail-yx1-f42.google.com with SMTP id
 956f58d0204a3-650152687c8so945440d50.1
 for <xen-devel@lists.xenproject.org>; Sun, 29 Mar 2026 10:32:19 -0700 (PDT)
Received: from [10.138.34.110]
 (h69-131-148-49.cncrtn.broadband.dynamic.tds.net. [69.131.148.49])
 by smtp.gmail.com with ESMTPSA id
 956f58d0204a3-65009326eddsm2731855d50.13.2026.03.29.10.32.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 29 Mar 2026 10:32:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="In-Reply-To:Autocrypt:Content-Language:References:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774805538; x=1775410338; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:content-language:references:to:from:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nf/N5/T851ta5P4Z0W48sBbwNdoI9CHZu3wQNdOpQeY=;
        b=agDIOJKrFYvl3kyGZtJkBlqHyx8t1kWkUdmvoAq8MAwgKOU7S/7nzt525WCu6d7N6I
         Y/Juvu+Bt+07IDkJMjwA20lb1EJ0jhdszI7E9oyA47WEju7Fb5rdcbe1G1/o3rhKP+2P
         eYaP/i1GXVVG+jOgXtTic4xuY0NkznmPg3Ba5CvDT3N7FOz4sYcBJTGPkqyXs8fRDZ4i
         qpL8I3l9E3XxloFiM5AHuJvdKsIpDWwDlw3vEVgElfKbVvrIKbaL5GNetIBZqcfg6lTy
         e3Yo1xfx0Op2P8mhKWZNcYNMpABzo093ml5Ri9b9MMp/wzmEE3AXxDRsqDLRv7KP8ii8
         bh6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774805538; x=1775410338;
        h=in-reply-to:autocrypt:content-language:references: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=nf/N5/T851ta5P4Z0W48sBbwNdoI9CHZu3wQNdOpQeY=;
        b=cSBprYOp5ndrRZWUX0hrHDYZbt5dTEWS9hiRWTNm1DyIOWc0oGKgXHM9whcdCUZvw+
         qRCq2XCQ4+O9y/ojgU4RLlZt+OzfEpaeNzzV7pNKVfTBDC0rL1LX62rhQIRUiZGP6xxK
         YSOTd+YR+GxqDAJiYz5XM+ni0l1E0SaOzkrzcmQAOYPBMW6r7ySGsddSmGUr/LPevy88
         BIJwr2deF/TZjwH+3HSNjT615ECtRXnW8xjmM/ZUWd9/zxnUiEPP3zRkGaFrPeFbPNMq
         nM1huP43x5Qel/PBa2gtpqQ4zA87BAzdZhSN4jmJ1Isiboo0TR2Wm93NwKfasL4mIxQV
         ZWWg==
X-Gm-Message-State: AOJu0YzUYLbwlaS3e0xlixt4Y4NayXg5XyokN9ftlSHb0RMNbap/AugQ
	yy9rJFifBS7MAOgpBPUrvi7MvyIzedP7he+gwjKCEEBdYJ1ZJvym+uKkvwWwf69T
X-Gm-Gg: ATEYQzxBH/GBCksV5IuXubDvq3GnImPrIBWQanIMB6AHBnMYI/qRb6gdWwoP+dreyYM
	WhNLwtntogdtg9FCkn4jmnm9dnh7eg9DH2C8gF77VorwrcmU0xYSmHwtpJMHHFF0TUI6mR5+TcR
	CMmK3/gb4E5j6V/yMzIWDBn4BqOow52Jf3sZabZ9rvE3S1zygxih7K6jif/jmxE6B6N6BrHpX3w
	ZHUzvj5Egl3ayJhKy7w4P23Rs+yhuhgYEWkvsN6TFrUbG5vRFNv1uijfwlKTVo1S/Pu8Yb2RVAs
	fcKALrTevqTMPdRXFxbvZsn5A0pwF+PH8Zt5uoOkyb2SWQxeyWNXRtYFY/56zi2OHHD/Xc0k4aD
	ZPKRQGhsGM4ACiF3CHWJ7K5+PnvZMwm+TBIAksCO8qgJCqWUPCwKcI8OYBtpNZQNERNANpCIH72
	ezAvfMSdGaKJ4osKELzBrkeuUgpsWBoOsvuQokmMdq5/6bXt6thDBWzOhI6xQfaxqxi9l+68krF
	ONBMakRNN+x5MS7SjOH95ENAOlnvbaKUiMnh2co6CCs7OxSPQ==
X-Received: by 2002:a05:690e:b87:b0:650:1bff:603e with SMTP id 956f58d0204a3-6501bff64eamr838738d50.54.1774805537585;
        Sun, 29 Mar 2026 10:32:17 -0700 (PDT)
Message-ID: <c38387fe-beef-4f50-b928-74f96b881b7a@gmail.com>
Date: Sun, 29 Mar 2026 13:32:09 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Why memory lending is needed for GPU acceleration
From: Demi Marie Obenour <demiobenour@gmail.com>
To: Xen developer discussion <xen-devel@lists.xenproject.org>,
 dri-devel@lists.freedesktop.org, linux-mm@kvack.org,
 Jan Beulich <jbeulich@suse.com>, Val Packett <val@invisiblethingslab.com>,
 Ariadne Conill <ariadne@ariadne.space>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Juergen Gross <jgross@suse.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <84462c4b-7813-4ad1-aeb2-862ae4f3a627@gmail.com>
Content-Language: en-US
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: <84462c4b-7813-4ad1-aeb2-862ae4f3a627@gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------M4itWcqxgptiTNkOr9J7EdkW"
X-purgate-ID: tlsNG-4011c0/1774805540-BF297900-D1052CEC/0/0
X-purgate-type: clean
X-purgate-size: 18867

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------M4itWcqxgptiTNkOr9J7EdkW
Content-Type: multipart/mixed; boundary="------------dTBvLoaEMmhBo1p8OlQAVFYd";
 protected-headers="v1"
Message-ID: <c38387fe-beef-4f50-b928-74f96b881b7a@gmail.com>
Date: Sun, 29 Mar 2026 13:32:09 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Why memory lending is needed for GPU acceleration
From: Demi Marie Obenour <demiobenour@gmail.com>
To: Xen developer discussion <xen-devel@lists.xenproject.org>,
 dri-devel@lists.freedesktop.org, linux-mm@kvack.org,
 Jan Beulich <jbeulich@suse.com>, Val Packett <val@invisiblethingslab.com>,
 Ariadne Conill <ariadne@ariadne.space>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Juergen Gross <jgross@suse.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <84462c4b-7813-4ad1-aeb2-862ae4f3a627@gmail.com>
Content-Language: en-US
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: <84462c4b-7813-4ad1-aeb2-862ae4f3a627@gmail.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==

--------------dTBvLoaEMmhBo1p8OlQAVFYd
Content-Type: multipart/mixed; boundary="------------QekcogRZyLk0V7Vo2wvrqX10"

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

On 3/24/26 10:17, Demi Marie Obenour wrote:
> Here is a proposed design document for supporting mapping GPU VRAM
> and/or file-backed memory into other domains.  It's not in the form of
> a patch because the leading + characters would just make it harder to
> read for no particular gain, and because this is still RFC right now.
> Once it is ready to merge, I'll send a proper patch.  Nevertheless,
> you can consider this to be
>=20
> Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
>=20
> This approach is very different from the "frontend-allocates"
> approach used elsewhere in Xen.  It is very much Linux-centric,
> rather than Xen-centric.  In fact, MMU notifiers were invented for
> KVM, and this approach is exactly the same as the one KVM implements.
> However, to the best of my understanding, the design described here is
> the only viable one.  Linux MM and GPU drivers require it, and changes
> to either to relax this requirement will not be accepted upstream.

Teddy Astie (CCd) proposed a couple of alternatives on Matrix:

1. Create dma-bufs for guest pages and import them into the host.

   This is a win not only for Xen, but also for KVM.  Right now, shared
   (CPU) memory buffers must be copied from the guest to the host,
   which is pointless.  So fixing that is a good thing!  That said,
   I'm still concerned about triggering GPU driver code-paths that
   are not tested on bare metal.
  =20
2. Use PASID and 2-stage translation so that the GPU can operate in
   guest physical memory.
  =20
   This is also a win.  AMD XDNA absolutely requires PASID support,
   and apparently AMD GPUs can also use PASID.  So being able to use
   PASID is certainly helpful.

However, I don't think either approach is sufficient for two reasons.

First, discrete GPUs have dedicated VRAM, which Xen knows nothing about.
Only dom0's GPU drivers can manage VRAM, and they will insist on being
able to migrate it between the CPU and the GPU.  Furthermore, VRAM
can only be allocated using GPU driver ioctls, which will allocate
it from dom0-owned memory.

Second, Certain Wayland protocols, such as screencapture, require program=
s
to be able to import dmabufs.  Both of the above solutions would
require that the pages be pinned.  I don't think this is an option,
as IIUC pin_user_pages() fails on mappings of these dmabufs.  It's why
direct I/O to dmabufs doesn't work.

To the best of my knowledge, these problems mean that lending memory
is the only way to get robust GPU acceleration for both graphics and
compute workloads under Xen.  Simpler approaches might work for pure
compute workloads, for iGPUs, or for drivers that have Xen-specific
changes.  None of them, however, support graphics workloads on dGPUs
while using the GPU driver the same way bare metal workloads do.

Linux's graphics stack is massive, and trying to adapt it to work with
Xen isn't going to be sustainable in the long term.  Adapting Xen to
fit the graphics stack is probably more work up front, but it has the
advantage of working with all GPU drivers, including ones that have not
been written yet.  It also means that the testing done on bare metal is
still applicable, and that bugs found when using this driver can either
be reproduced on bare metal or can be fixed without driver changes.

Finally, I'm not actually attached to memory lending at all.  It's a
lot of complexity, and it's not at all similar to how the rest of
Xen works.  If someone else can come up with a better solution that
doesn't require GPU driver changes, I'd be all for it.  Unfortunately,
I suspect none exists.  One can make almost anything work if one is
willing to patch the drivers, but I am virtually certain that this
will not be long-term sustainable.

If Xen had its own GPU drivers, the situation would be totally
different.  However, Xen must rely on Linux's GPU drivers, and that
means it must play by their rules.
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------QekcogRZyLk0V7Vo2wvrqX10
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-----

--------------QekcogRZyLk0V7Vo2wvrqX10--

--------------dTBvLoaEMmhBo1p8OlQAVFYd--

--------------M4itWcqxgptiTNkOr9J7EdkW
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/sszaHOrMp8lMFAmnJYhoACgkQszaHOrMp
8lODMBAAkIA6VjfpEz/zye56Qmmok4DOmG9X9mR0O17lGAYZ89kI5u+Rdhj27Jyv
7kTlCdX2FSNXzskgOgPvw9FI6qR5Nwm9fTKjeEVwevQljuHi3rtwkBlytDvObCyF
0ODa5X6OgKAkDDNDRU3weoFOvbTVSE9ag+/Y2LEQxFxP/TdnIGsK7EYIMjtfs0pF
1sBDqbu4h7nZn3S/Tj3VWsnFZ+C+Z53eDk2dz9ioa9qOpwtgIiBiI83zhtRnziTA
z0GlAyMfiiK6lWVvbkeGjDwycbiAaxsgo9AoDrZLHL4aa9Mdz1qEZa5eBSA1KT6a
6ZTbf8/qwSvj0k1wgCzoeAHdhpZJ8hskmnUnLnz06uQmzD6NfvSy1LCXXJyJqd6E
X5O1DvbXRLQEVkLkCX4o00Nr4TcQgSzwbbowQHbSYduBq+y3S/OlzUmQxq8tfrd6
LaHTCSejNPU5qtj3z5U2w5k9GBI5l9CLA4QF5CH7g4oKiYzdNwHyHzcv/CKiEdPC
4cJzjW1lmMSiNy4oqz2D0MQ6ZRjMxbR0ct9VKF4UBx5A5zh2bgH2Nz0jz/vndP1X
5OwnsicASjU4p+OoW0vdKjjo0V1OjOIk9V71IZKguU2jXdCPH2583oz618pYtlVG
Z7TGSDyTQ3nX1z6xSpOXccEpG3zH9zv33PxK10j58NI1GouJxUU=
=7Szj
-----END PGP SIGNATURE-----

--------------M4itWcqxgptiTNkOr9J7EdkW--


From xen-devel-bounces@lists.xenproject.org Sun Mar 29 19:28:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 29 Mar 2026 19:28:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267216.1556777 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6vnw-0003tx-UR; Sun, 29 Mar 2026 19:28:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267216.1556777; Sun, 29 Mar 2026 19:28:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w6vnw-0003tq-Qx; Sun, 29 Mar 2026 19:28:12 +0000
Received: by outflank-mailman (input) for mailman id 1267216;
 Sun, 29 Mar 2026 19:28:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <pr-tracker-bot@kernel.org>) id 1w6vnu-0003tk-OF
 for xen-devel@lists.xenproject.org; Sun, 29 Mar 2026 19:28:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w6vns-008gKM-IY
 for xen-devel@lists.xenproject.org; Sun, 29 Mar 2026 21:28:10 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <pr-tracker-bot@kernel.org>)
 id 69c97cca-5cb7-0a2a0a5109dd-0a2a4508a33c-46
 for <xen-devel@lists.xenproject.org>; Sun, 29 Mar 2026 21:28:10 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <pr-tracker-bot@kernel.org>)
 id 69c97d49-1950-0a2a45080019-ac6904fed8aa-3
 for <xen-devel@lists.xenproject.org>; Sun, 29 Mar 2026 21:28:09 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 3C0FE60054;
 Sun, 29 Mar 2026 19:28:08 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E42B9C116C6;
 Sun, 29 Mar 2026 19:28:07 +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
 B9F403930012; Sun, 29 Mar 2026 19:27:53 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Subject:From:In-Reply-To:References:Date:To:Cc"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774812487;
	bh=2IU6bv32d3BC9Bv3872/Z5iryshhu/ycxEmy/JZ0e60=;
	h=Subject:From:In-Reply-To:References:Date:To:Cc:From;
	b=ufbVpb0m+YhxLsrGBzxXpo1+cblRe5iSHuPd8tasqWWeOB+a+bS2344XONUECWHKV
	 njraIXRLf8byEIUrFAXRIFjtWBADIwJNVTOd8mGTULUZOYWIhCMXUYep6d1QDjUCLg
	 nQVx+E0y5UnQc3RGG1HiS/lpngRJCnTGmmtnnpGH838GURYjgzljomeVWvfbgxY3a/
	 hjZpQXsZSZPwsGyrmu5ONt8fTkZJI9VeUegVxQNdBl7XzxB/PoylEC2FfGagEqIh4E
	 n4qE+smkjAv8pRX8N4Win7DQIRYwWpoesLe3ZOq7ZejW0mvZwGgCxlVy6EvqF2en1o
	 zcf5j9JMPtlzw==
Subject: Re: [GIT PULL] xen: branch for v7.0-rc6
From: pr-tracker-bot@kernel.org
In-Reply-To: <20260329141354.575385-1-jgross@suse.com>
References: <20260329141354.575385-1-jgross@suse.com>
X-PR-Tracked-List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
X-PR-Tracked-Message-Id: <20260329141354.575385-1-jgross@suse.com>
X-PR-Tracked-Remote: git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-7.0a-rc6-tag
X-PR-Tracked-Commit-Id: cd7e1fef5a1ca1c4fcd232211962ac2395601636
X-PR-Merge-Tree: torvalds/linux.git
X-PR-Merge-Refname: refs/heads/master
X-PR-Merge-Commit-Id: b8a3bc856735a53269270bc4c7ccd04ad2355069
Message-Id: <177481247244.444538.14299549126964600323.pr-tracker-bot@kernel.org>
Date: Sun, 29 Mar 2026 19:27:52 +0000
To: Juergen Gross <jgross@suse.com>
Cc: torvalds@linux-foundation.org, linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org, sstabellini@kernel.org
X-purgate-ID: tlsNG-c1860d/1774812490-E2892726-D6FDCD43/0/0
X-purgate-type: clean
X-purgate-size: 363

The pull request you sent on Sun, 29 Mar 2026 16:13:54 +0200:

> git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-7.0a-rc6-tag

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/b8a3bc856735a53269270bc4c7ccd04ad2355069

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 07:47:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 07:47:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267253.1556786 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w77Kz-0005qj-Dl; Mon, 30 Mar 2026 07:47:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267253.1556786; Mon, 30 Mar 2026 07:47:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w77Kz-0005qc-9u; Mon, 30 Mar 2026 07:47:05 +0000
Received: by outflank-mailman (input) for mailman id 1267253;
 Mon, 30 Mar 2026 07:47:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <oleksii.kurochko@gmail.com>) id 1w77Ky-0005qW-3N
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 07:47:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w77Kv-00ACgL-0H
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 09:47:02 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69ca2a74-e002-0a2a0a5209dd-0a2a4502d174-6
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 09:47:02 +0200
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69ca2a76-63bb-0a2a45020019-d155802ee815-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 09:47:02 +0200
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-4853c1ca73aso40507155e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 00:47:02 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48722c95041sm242110645e9.6.2026.03.30.00.47.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 00:47:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774856822; x=1775461622; 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=e8YfyAv+OiHKmh8cOjSKiL7chdcEdvllKRsxAnC59Pg=;
        b=Vs8P9eWsa0JPD5Amlc9TKp3GWH4jQrqf4VRpv2b+q2v2+RFDz4F0O3tTBP/Grz9+Gb
         OP+wIi54bYltMLAr6v5NTEum7M9dI1qRBGrvCiqnVVNNeM28vDcp4dhNCDOdTrLsxWE7
         v8WT8ErQ5MlL1Y/aow30zfo9M9AAo72Og7FbH66TX8aR1w5JVZBYJXfMzF6jkLA9Pv+A
         1vCiEU1SukyKb+Ol9Fvow+802vS7jmPT/AnVoY1OO6StzuHYaxyWFJl6nhrN6GK3jsrv
         VvYd6HpbrMQMumi+30xQrR6ZEaSBQMNj58Mm0D90ZSsJY+GZaOE2cJAJhB9WQUjeW+GH
         Q1lw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774856822; x=1775461622;
        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=e8YfyAv+OiHKmh8cOjSKiL7chdcEdvllKRsxAnC59Pg=;
        b=cvMuzGTLTZD2ORStCyn1ANjR6qdlf4uC3L+5VNYysr3XZgooacIPSG321FKmlUEoV3
         1gOCfSTm92Q+XctmOT0dIksMolHySYuWhTfbUWEUN3QyzmFwmWs72OzDKt8GEqugm5OV
         131+4Oqv0Mn2BVEV+YLEC1x8VNeAfxFku1Pwutgm00b7ZN0mwhFp4Kf9/9gV/AYBi8WS
         044rgQBPO0ukyUubVN1x7sHb6J56Y3qcL6hwhIffzeCga5OGkrySNuDyO80VbheGdxlP
         B9hTlelM3FVbibTTNTgKEUedVUbqEP2iv8jT+zzrZkn1G7ntm9Z5B2e7kQ2OvUiJJNyF
         nw7g==
X-Forwarded-Encrypted: i=1; AJvYcCU9vNRm0GZZj3ERbXFiIfXp00nmEwP7ovsgSVCZcKtEcUO5jpiDlPa9cLBiP2TH9snze9Z3HkhS8hE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzDfjkhMvaMNUI2DLYOODEih0yDnyyfdXnYPBCoKUUS/n44yxe6
	9imjHV9SXUHmMxsMs/2oF0Yy+IhU+v6xFOwnIB0OlIl0gk8mtN2J5DPF
X-Gm-Gg: ATEYQzz+tAqcLqp03pStWE7YsBJbkbNxwhe7zSx7e2GPMO390mbW6iicRHPvCHAHArd
	ElTH1BpuEXpZqqszr5loCgp926d4/x0VlDsSnCRI4eMTgaurjh9fvl0yyWeSOdWtpkFhDXAQQzd
	XBtaGzaib/qORm4THad2HM+rerJ8Uw7926X8g05H7H/9OwSoHGZ0i/L5w1s+Hl09AMC+q0e9y+K
	AR0bhHqBk8K2iqozi2uS/Y3FCaY+TIcOjaWaP9/hFLuqa2D3iXKRiGdv/RyLDBBjGUExchiNXdJ
	MdeabQl8047J6lGJhuAADscgyOMy7PZrzkDgWxf3cyNVeGywKvHY9dzRc+OJVE3ZHa+Wgv0sipC
	rW8SQoivicwe9njrB7XlvFHvG9Zz8714UFbBduSA9k0EmcMWdPka7iF8SDuFGXzBo2YojeBtxTL
	2PT2BmPa2eibdXLRX8Q4z8s2dVb7JAsRhGetaO6Kgfg4IpCxoJUf7QyEQRwPGeEU9bSmjDAR083
	K7BaqP+cDTo/A==
X-Received: by 2002:a05:600c:c178:b0:487:59c:2bb8 with SMTP id 5b1f17b1804b1-48727ef16bamr191648535e9.27.1774856821431;
        Mon, 30 Mar 2026 00:47:01 -0700 (PDT)
Message-ID: <cf43e50b-d7d6-4578-abf7-f93c69ca7ead@gmail.com>
Date: Mon, 30 Mar 2026 09:47:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CHANGELOG: add xenstore quota support
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Community Manager <community.manager@xenproject.org>
References: <20260327152103.438997-1-jgross@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20260327152103.438997-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1774856822-42885DB8-2A477CD6/0/0
X-purgate-type: clean
X-purgate-size: 808



On 3/27/26 4:21 PM, Juergen Gross wrote:
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>   CHANGELOG.md | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index c191e504ab..566fe510c5 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -9,6 +9,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>   ### Changed
>   
>   ### Added
> + - Support of per-domain Xenstore quota in C xenstored (includes
> +   xenstore-stubdom), libxl and xl.
>    - On x86:
>      - Support for Bus Lock Threshold on AMD Zen5 and later CPUs, used by Xen to
>        mitigate (by rate-limiting) the system wide impact of an HVM guest

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

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 07:52:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 07:52:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267261.1556793 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w77QV-0007YU-05; Mon, 30 Mar 2026 07:52:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267261.1556793; Mon, 30 Mar 2026 07: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 1w77QU-0007YN-TW; Mon, 30 Mar 2026 07:52:46 +0000
Received: by outflank-mailman (input) for mailman id 1267261;
 Mon, 30 Mar 2026 07:52:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w77QT-0007YF-K0
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 07:52:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w77QS-00E9Fj-SU
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 09:52:44 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69ca2bc3-2eae-0a2a0a5409dd-0a2a45088cd8-46
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 09:52:44 +0200
Received: from [209.85.221.41] (helo=mail-wr1-f41.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69ca2bcc-1950-0a2a45080019-d155dd29a946-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 09:52:44 +0200
Received: by mail-wr1-f41.google.com with SMTP id
 ffacd0b85a97d-43cf3ee0fc1so908138f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 00:52:44 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf2471ee2sm15826666f8f.29.2026.03.30.00.52.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 00:52:43 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774857164; x=1775461964; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=d51HySKidONBjxhWEIOhZg/Myko4MA48dlh0bdk2DWI=;
        b=HfPX4QcH5LAQ795sFOnt21WV9YHymLxH02iCTjcxAtzimMG+cIg3rfITp7UPD7/W9P
         aFkYezb3UDhx/ax7JwPfX2tNfjWwRhXXoQx0Ll7TiSpq9SXLrT9Iv6qJa+fD7wHLzRXz
         M2CtvGJS1mF+ohjX3aUoog6NOPXNM4QSzpC4nWZ9uWEfnUGdpiTTj0CUBbXfdreXL3Da
         /RV5Rz09bijR1jX+VvJbD9Zm0H49o393eUDupi0XWYL6KV3lYTzH5l1B/2eS6mbrkrBv
         bSrT0mK5eJVuMtTkL/zF54MiGPJx18w69eXKn8IEjQQm6G6ZYcMSmu7UmLZoKtLDMX3R
         q+jQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774857164; x=1775461964;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=d51HySKidONBjxhWEIOhZg/Myko4MA48dlh0bdk2DWI=;
        b=mEdAB5xLlOSDy05bZwBb0+oNWAUiRqsn6nmunTFRDRxmFlcBQMltk1OmVrgtLt6t4n
         6ITmV/t/NWaWXSo47bdF8AKlhVEIM1dLZCzZnO0e9S5Q/VVyl4mooxH1JyINdgtKo/nF
         6B4Y2BaYjvk4cNANp7tx8KQcY2OteQeN4SLxLhdhP1PlfoMzKvC4vS/p+ldvvw3uQOjD
         fT3E+OkReD1E+jVy+f59x/4qsOIKFn7GjnaqWEnbAWAcNXolXUOnc/p4T1mcIkVSIa8a
         A9qG60Md7L6GfCUrqayqLe3DXUKukxP1CabQJ89aTVurg5/M4ywK6zsTNaX/j7Qx9US8
         aBVQ==
X-Forwarded-Encrypted: i=1; AJvYcCUg2tp99pJhv94sKrxj9EMVPxeCba3j65dBZVsUMx6EFp/aWzH3u6rXVNh4t9i/PqrrMkVb7BxjKp4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxdJYC35Cs5TJPxPeORfH8soTimWVf7BWmy1GSIrGXKX61ya/in
	n31OguvY5Qzg6MNdjTrmeAoPHAgxpyoDnlt5n1NGjvhAfJeHqSTEYT7mT8puTece+w==
X-Gm-Gg: ATEYQzzkEEZ48Ren/LWneaSng3ErDRWOBtlXWbsV6LDXx1SgilAt3Vt0K3KZ02AJmtF
	8Tpg1aHtMAMXuTgxJIa+DN+g05yUFjrPqFr7GCn2NDqpd+LZmepVATZq2gP/tiaSMvjNm9DdGh4
	8XhQoSUxOMDSJ/XhPgmX+omk2kz5ySxSSLbgnFCrw92QX51h5MQEwPKmoJljIs1fHOzDjOSBIAy
	tUBWOAsqJKbeTW5FPXqX43cZISNP9tP00T5suDjtjuYEMQyTOHO3hsXxEYvGZfmagVdUAnBp7nW
	0h+Tk+RxwF+J2cQgxtmlS5QoD2k1AbBje7upetCoND6xq40l0LPk+EMCBfMxyvlK06EMI6n5iGQ
	726kXBYu5vOx2VDm5umCgEXQG33R6c0fQQpM67fADN29JOgQK4sm+Z+c4ao2UJuoAMOmDeHmmVB
	E4mfHHV1ZAcUmJFKgwOzjd8S1O1EFILDKdwdDY6pmY1w7Tw2DqdcCL8vYKmu6oqP7DC0pRCSJJO
	El/pHwUUH9LBic=
X-Received: by 2002:adf:e183:0:b0:43b:4166:b855 with SMTP id ffacd0b85a97d-43b97a4b81emr22093213f8f.14.1774857164087;
        Mon, 30 Mar 2026 00:52:44 -0700 (PDT)
Message-ID: <7ecad1d7-75ff-4bb7-89c1-7f51398b156c@suse.com>
Date: Mon, 30 Mar 2026 09:52:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/hvm: Configuration for Linear Address Space
 Separation
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: <20260326131815.1139203-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: <20260326131815.1139203-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1774857164-E2892726-00350388/0/0
X-purgate-type: clean
X-purgate-size: 979

On 26.03.2026 14:18, Andrew Cooper wrote:
> LASS is a feature designed in the aftermath of Meltdown, which codifies the
> user/kernel split in address space in order to block entire classes of
> sidechanels.  Specifically, it allows the CPU to terminate any memory access
> into the wrong half of the address space based on linear address alone and
> without needing a pagewalk.
> 
> It is available in CPUs starting with Intel Sapphire Rapids (2023).
> 
> For now, allow LASS to be opted in to, but leave it off by default.  Some work
> in the emulator is going to be needed to enable it by default.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> Abdel is going to look into the emulator side of things, which is going to be
> easier with this patch already in place.  I intend to get it fully supported
> for 4.22.

It indeed as "as simple as this" if you leave out the emulator part.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 07:55:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 07:55:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267270.1556802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w77Sz-0008BC-Be; Mon, 30 Mar 2026 07:55:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267270.1556802; Mon, 30 Mar 2026 07:55:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w77Sz-0008B5-97; Mon, 30 Mar 2026 07:55:21 +0000
Received: by outflank-mailman (input) for mailman id 1267270;
 Mon, 30 Mar 2026 07:55:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w77Sy-0008Az-Ba
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 07:55:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w77Sx-00A2em-Nt
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 09:55:19 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69ca2c5d-bab6-0a2a0a5309dd-0a2a450adcbe-28
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 09:55:19 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69ca2c67-1772-0a2a450a0019-d1558030c50e-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 09:55:19 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-486fd3a577eso36351445e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 00:55:19 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487386b005asm29210625e9.12.2026.03.30.00.55.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 00:55:18 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774857318; x=1775462118; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NAGOEhf3CF+pHz0pCD7Od2vAPDHCDxzURBNlexotl5U=;
        b=BqDdomYppQOPn/Z8dKS0WWpNVMqQwDJ/MvP87iI/icthfvpuU7B1Fz5fzsSc31krwE
         CShUPyr6WF40n7U+jZWGGfI43+MOYUnX1kPkbERsH0ZxoG45bgv36+bfpSp3fb5skrXR
         LHxpXG+xkavddq1n+fttEY6kirmWUPBLS9cCkw3vBZbZElFPqy2hH8xpQVBs0MrtAt7q
         v0M7YB2mT0KhYl/f/iX8lV8LA04iPXvsTtoHjLLDTlKvKAqGEMN+I1k9AU/286i7xqE/
         JxaHARFoQoAtC5WGZGXFzKx7snFI0Jo5hHmohfTnL33xupVMMxT1yJUFK8JdYdupHnDs
         4pgQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774857318; x=1775462118;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NAGOEhf3CF+pHz0pCD7Od2vAPDHCDxzURBNlexotl5U=;
        b=FdFSza/tGxh0reiDFuH1JmvH2ilDQFpu+7k0O8KRHROnzODrl5GcF7/l1ZiA3IJlnY
         Car7bDvhJA4p52nCFExfHUcsqvT7GFce3IXnInQ3fYh+6Ewu6F2ysB9D2hAvNjvZjw9e
         KknHgwfVM4faqzdaaPbRsqA0OgvbBbzGeALculy9BS2iGziZZ42jVGgwoBA5Q5I5Qt8+
         99GSB2h83UJqnsFc0t9JvsyM1bSxo76VE5Ry0/8C/EY5Y/7Hzcf4gLrI0jTttfH7K3FK
         MhDk3YPKXC/+04kfOThsvzo5kamXaQaZnbXMsnqY3r9u+ywMvh+E69QJJwdwN8e86fAA
         O88A==
X-Forwarded-Encrypted: i=1; AJvYcCUvoqifmutf3MygWJs9x4Ulq5MD/tXhGl1ZGv2W42LO8QYCaIndcBkYR/+KW0tS6QzTOMl3h7SFPaw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyTeKouHFj3pYZMWtN34sbVLhEeyJ21QSK0nntipf23ddY36H5h
	SmHwkMln7BN0+gltsxZPjnvWzE8EBFPnv4+6yKNIr7D4uTJWvOBGNY/cFIRKVBJFEQ==
X-Gm-Gg: ATEYQzxtYA2sHCPRhqDLt63P2d52Y2I7ozzi3pKi3XjVxDkOgAWJpYxkZh1cpAJFLJh
	mEpjnR7BWfm6Tzia6vvaPl9fn66qj/xxiMhpcqLnAKRZ7kTiZrN6liQO65+Rr4Ho/0g/vgqHHWP
	ZO8f4eNuoMdzS4Dw5aO0/UsqmweqhNpYGa9ig9MrvVjGRzOyDnrBhzqamI6UqzSXVJ8QYCSVYl1
	xXJSQHhJB0tS+ez9wuVgQ+yrFcr6vPwipyJy/BJCL6MbypFdTpjaEeKrXM6OttNOfxO1DKYBhfp
	GnbeqLthQxW9u2oRJm/1NsbetL8IOK9gIxau7WeFTmq6Bkw46pTAfVa3kYeSQmFfslyvEyfJcKs
	dOzhZjE+RN22RiJc03UTiWk2P6a+TAq23RZ9Gu+IUsXiNt8BQaR0GSLuyKzu+UzbVv63av+CbZP
	bqt4AF1i2lhor0b6oYy3exikmvLw1crENcEtElebzU0Rlj8NCxMm7rR45RC4IJYCoDxn7LLWbrv
	gSvh7HwSR92tyU=
X-Received: by 2002:a05:600c:45c7:b0:486:fc94:d8f2 with SMTP id 5b1f17b1804b1-48727d8b80bmr181913825e9.14.1774857318539;
        Mon, 30 Mar 2026 00:55:18 -0700 (PDT)
Message-ID: <becb1850-e068-4063-ab7c-d2edb21471cd@suse.com>
Date: Mon, 30 Mar 2026 09:55:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] xen/uart: uniformly set ->ps_bdf_enable for all
 PCI serial devices
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: <20260327135420.7246-1-roger.pau@citrix.com>
 <20260327135420.7246-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: <20260327135420.7246-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1774857319-BFE9D900-D1A89583/0/0
X-purgate-type: clean
X-purgate-size: 1213

On 27.03.2026 14:54, Roger Pau Monne wrote:
> Auto-discovered serial PCI devices when using device=amt|pci won't get
> ->ps_bdf_enable, and as such some of the logic (like making sure the
> respective BARs are enabled) won't be applied to them.
> 
> Fix by unconditionally setting ->ps_bdf_enable for all PCI serial devices,
> and removing the special case that was done in some places by checking
> whether the ->bar was set.  This also allows simplifying the logic in
> pci_serial_early_init().
> 
> Fixes: 9738db88f68f ("xen: Automatically find serial port on PCI/PCIe and AMT devices.")
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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

> @@ -1335,6 +1335,7 @@ pci_uart_config(struct ns16550 *uart, bool skip_amt, unsigned int idx)
>                  if ( param->fifo_size )
>                      uart->fifo_size = param->fifo_size;
>  
> +                uart->ps_bdf_enable = true;
>                  uart->ps_bdf[0] = b;
>                  uart->ps_bdf[1] = d;
>                  uart->ps_bdf[2] = f;

Largely for the look of it, perhaps set the boolean only after having set
the covered fields?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 07:59:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 07:59:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267281.1556812 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w77Wy-0000Sz-T9; Mon, 30 Mar 2026 07:59:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267281.1556812; Mon, 30 Mar 2026 07:59:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w77Wy-0000Ss-Ou; Mon, 30 Mar 2026 07:59:28 +0000
Received: by outflank-mailman (input) for mailman id 1267281;
 Mon, 30 Mar 2026 07:59:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1w77Wx-0000S0-0x
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 07:59:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w77Wv-00EAm0-RE
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 09:59:25 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69ca2d5c-e002-0a2a0a5209dd-0a2a45068f32-12
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 09:59:25 +0200
Received: from [209.85.221.47] (helo=mail-wr1-f47.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jgross@suse.com>)
 id 69ca2d5d-3034-0a2a45060019-d155dd2fbca2-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 09:59:25 +0200
Received: by mail-wr1-f47.google.com with SMTP id
 ffacd0b85a97d-439d8df7620so2923395f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 00:59:25 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf21e265fsm17812126f8f.1.2026.03.30.00.59.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 00:59:24 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774857565; x=1775462365; 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=I1/ngx8dqMUrkqXrEfucYH2Pz/hZbbL5OxMBleXDniU=;
        b=URYzYSQNKWTrVpGvHw1d4j+wPeQu7x6FPAVzXlcnazUEGmXKsx3gXKWcfkQDLakvgx
         Xji+3ffMI68UC2z1fzbncMNYFN1hU8EB2/KTDVr752dcdxS4jYQWv4xJXtwEJxvTW3SU
         XrdpAnq+qprq13WMv5CydnWiZnf3vuLhshq62SJqUdrQdN/NdzvySDBgvgyRTdH6VaFd
         /u8v99aB4LrzN5Krz1Je9vdqXrgasVkaBcxwl70YPD63f/9kQDU9LFeeJ9YF/fdCCegq
         1iVUMNn8zhA4a/PKDXA9QEONu05JwQ/NdRbC0tgKlh2e7xfHdlyCOg827FzySfY3vEoh
         JHgw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774857565; x=1775462365;
        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=I1/ngx8dqMUrkqXrEfucYH2Pz/hZbbL5OxMBleXDniU=;
        b=eX+kaytkyQmEOxLPXJfC6FRqD6rF9cAQ8O0Uo/DBpyjuleTkDK0f9TfFvU/PYqLRTP
         3PhAD+i52/htLcmFdBL9PeAlxdtZXHzNm2UL1AiLjzwQV4y37f4fHlrBDktSK5gu4NKT
         XtYwWF+jRqaOoIxlM9EjFoZ+DXVE2FlWYp2ZpMTPYtx1zLurXPdhlfspcLoAAdHbfrL3
         oC136J3GYObeXqURA/6zOf6xnivkdEkkXrq95edTCj+4E46QixIZrFdwaWxRqWe9x+l3
         tgKbw6PuE2ZPytyNP6EQUeR7MjgmwL55sbk6LZPgCAu1oDEdNYekvvEz995ku8WWXwpS
         eiZw==
X-Forwarded-Encrypted: i=1; AJvYcCU+77JvBH3MCxXgFB437o91htPxCqB6pb0wqbb/TddtRsH9zkWcfqHmnffwH1Fv21nrxySmnK+wbxs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxCrVNaabrv4xLkiUr3ot77W6X29ZmNnXDcDd0L5TjHKTwstCoy
	mR/HP+7AAdabB/8YzbaSf7viSFtJa/mObDIIxn03rzHn6OC+0WBnyUhyNxd50fu7VPQ=
X-Gm-Gg: ATEYQzztxmUIZe+Fw5p/8BFVHlT63Y8x66C99EUBZViRe1WcF739zl2R2R0/vtuDJ2q
	eNiQ7vu8j/bp3RLXvYAp9EgU0jPcpW59WHdZOmabQPB7yLPxog/yU+s38C+Zb/KGJmv5id5YZGj
	rSxE4wQzIALZD3Kn8cq/bbCzwVoDO3IjLzI/NV/Fzdrkz85mQM0iX+EMgVYHCa3JDTekMscktl2
	X93ogxtYPAUTDN08PWFJ/6rk/BpryaoN7fIt9MyLO12kLgh+mzMbYYDPBHv8vpTbYZRDOfKLcWv
	JwEdnhTeo6lMUUkEeAXSed1MFzjBKZXh6RHRaekvlBC+DytmopGBiuBxbN1AHga5sxBjdndbzkV
	gSttn5uOs/fayOhieeSxsv9nTpIut8Ioo6bT5P29QAsUOD1Cr9iK4QFVbGa+QcAicHo/4qjlsVN
	n2cmqCpxeWyWnU2mg2SBc9r5Wo8AYqSR4pyC/xjgIQkxXmc2JfMQkUN4r8CdAIPTx4cBdkt4Dp0
	ul1sZtw4Ww67ugDtBc3ustWTSnt/jhlzaloYgFALYoEEq89NjmevQDh43bn8Ccy
X-Received: by 2002:a05:6000:26d1:b0:43c:f7e5:817b with SMTP id ffacd0b85a97d-43cf7e58252mr8506607f8f.19.1774857565021;
        Mon, 30 Mar 2026 00:59:25 -0700 (PDT)
Message-ID: <f172ffac-777d-4280-9538-a4d0e20ffc06@suse.com>
Date: Mon, 30 Mar 2026 09:59:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CHANGELOG: add xenstore quota support
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>
References: <20260327152103.438997-1-jgross@suse.com>
 <49a3c6fe-db8a-4814-8638-6242dfee495d@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: <49a3c6fe-db8a-4814-8638-6242dfee495d@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------hkjoVOealAuyAkD48AKTYQeJ"
X-purgate-ID: tlsNG-16d1c6/1774857565-7A9971C2-75163EC3/0/0
X-purgate-type: clean
X-purgate-size: 7072

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------hkjoVOealAuyAkD48AKTYQeJ
Content-Type: multipart/mixed; boundary="------------vfduRjwt3n6nT0VBVOLFDwtX";
 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: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>
Message-ID: <f172ffac-777d-4280-9538-a4d0e20ffc06@suse.com>
Subject: Re: [PATCH] CHANGELOG: add xenstore quota support
References: <20260327152103.438997-1-jgross@suse.com>
 <49a3c6fe-db8a-4814-8638-6242dfee495d@citrix.com>
In-Reply-To: <49a3c6fe-db8a-4814-8638-6242dfee495d@citrix.com>

--------------vfduRjwt3n6nT0VBVOLFDwtX
Content-Type: multipart/mixed; boundary="------------nFEDVdT3MlIeDmZQmf76PBfM"

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

T24gMjcuMDMuMjYgMTg6MzksIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDI3LzAzLzIw
MjYgMzoyMSBwbSwgSnVlcmdlbiBHcm9zcyB3cm90ZToNCj4+IFNpZ25lZC1vZmYtYnk6IEp1
ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCj4gDQo+IEFja2VkLWJ5OiBBbmRyZXcg
Q29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPg0KPiANCj4+IC0tLQ0KPj4gICBD
SEFOR0VMT0cubWQgfCAyICsrDQo+PiAgIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMo
KykNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvQ0hBTkdFTE9HLm1kIGIvQ0hBTkdFTE9HLm1kDQo+
PiBpbmRleCBjMTkxZTUwNGFiLi41NjZmZTUxMGM1IDEwMDY0NA0KPj4gLS0tIGEvQ0hBTkdF
TE9HLm1kDQo+PiArKysgYi9DSEFOR0VMT0cubWQNCj4+IEBAIC05LDYgKzksOCBAQCBUaGUg
Zm9ybWF0IGlzIGJhc2VkIG9uIFtLZWVwIGEgQ2hhbmdlbG9nXShodHRwczovL2tlZXBhY2hh
bmdlbG9nLmNvbS9lbi8xLjAuMC8pDQo+PiAgICMjIyBDaGFuZ2VkDQo+PiAgIA0KPj4gICAj
IyMgQWRkZWQNCj4+ICsgLSBTdXBwb3J0IG9mIHBlci1kb21haW4gWGVuc3RvcmUgcXVvdGEg
aW4gQyB4ZW5zdG9yZWQgKGluY2x1ZGVzDQo+PiArICAgeGVuc3RvcmUtc3R1YmRvbSksIGxp
YnhsIGFuZCB4bC4NCj4gDQo+IEEgbWlub3IgcG9pbnQsIGJ1dCAiU3VwcG9ydCBmb3IiLCBt
YWlubHkgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIHJlc3QNCj4gb2YgdGhlIHNlY3Rpb24u
DQoNCkZpbmUgd2l0aCBtZS4NCg0KQ2FuIHRoaXMgYmUgY2hhbmdlZCB3aGlsZSBjb21taXR0
aW5nLCBvciBkbyB5b3Ugd2FudCBtZSB0byBzZW5kIFYyPw0KDQoNCkp1ZXJnZW4NCg==
--------------nFEDVdT3MlIeDmZQmf76PBfM
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-----

--------------nFEDVdT3MlIeDmZQmf76PBfM--

--------------vfduRjwt3n6nT0VBVOLFDwtX--

--------------hkjoVOealAuyAkD48AKTYQeJ
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/Ey8FAmnKLVwFAwAAAAAACgkQsN6d1ii/Ey//
hAf/V47VUXiq4rkv7aUG71EJyCuJQR0eDeyi8YF4JhUf07hXvP7VcqWYI2dFwpugjO9HurM610nG
EjfRmGiAqEGXgPY1Jt5qA30i5czI/kOxLPO6dZWuZPWCpb9WPbmdQanPT4jAALHwSr07ozpUZp3V
hukVsbLU9AvJlu00KKX71oSvF4bFNGYB8ivnQQFdtxHO7zjM7/tjBPGTxgTHr9d6PQzy3/xwKEl5
R9I2s6KQPwpSv0K+EUAzvn0ZocNvTwn/ECb7zp1y5ypeeOcglD+q/l+PGjKF9JW8fW0L7S9KdSAN
kj4R6Gu3jAQ4fnFtypfZDH4rkK7iVxd7S4VMOoKQLQ==
=WVTX
-----END PGP SIGNATURE-----

--------------hkjoVOealAuyAkD48AKTYQeJ--


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 08:00:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 08:00:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267298.1556821 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w77Xd-0002P9-NQ; Mon, 30 Mar 2026 08:00:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267298.1556821; Mon, 30 Mar 2026 08: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 1w77Xd-0002P2-Ko; Mon, 30 Mar 2026 08:00:09 +0000
Received: by outflank-mailman (input) for mailman id 1267298;
 Mon, 30 Mar 2026 08:00:08 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w77Xc-0002J5-LF
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 08:00:08 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w77Xc-00BkGu-0S
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 10:00:08 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69ca2d87-5cb7-0a2a0a5109dd-0a2a4509ce10-6
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 10:00:07 +0200
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69ca2d85-e484-0a2a45090019-d155802cf059-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 10:00:05 +0200
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-4873ce69ba9so6057895e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 01:00:05 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4873062ec9bsm161486845e9.7.2026.03.30.01.00.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 01:00:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774857605; x=1775462405; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iUAoe2m34DxJl0uWWmPyamVUQZ4sX3dBrUARbb2few8=;
        b=LE/3cTWRLNFttiNS4xwfR23MVmflAankgD/Myas34TLa2JyNMxTj/nmmmVUVgZS0R5
         WdxUTmO24uoaGgKqilkWjJjlH/zzJAzwBCKBeOg3s3+0roH1epIK6BnpY+G64r73+fOk
         Ag189XgZilEKy1oQ7jfNIBxKC4Jz+8sO551eyFaeAsocSPVv4Opm/wo+El1THKRR3zHL
         448o2EvGlRg12o/LOnv+/hHBF1Q0NZnBxURyBqQ6t/LcWPRJttuQ53ZszHuwtligz7SB
         Seie2jcHPYu18f3sXYYjog9rRjQFflCZ+l7ogriqlX06SaysODLEHNUBnpf8Inhwe7Wf
         zxOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774857605; x=1775462405;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iUAoe2m34DxJl0uWWmPyamVUQZ4sX3dBrUARbb2few8=;
        b=eLc5DxK1VqAMogvSAzqkeMJzbhlAXxy4EAzBs6WeNOU2B27K3h0EifK+tq8bjdgbyl
         F7wmoL4bgVASQHURmFds2hvn/bKtiRtzH1DwwV4wumidRQpc0IM+qefN5Kvo2szr2YFs
         q9pHtTju1WGNnP/fCzTH25YBDmhjgSiPEhZ4nyu9vO68FJpfFPC4yYdRfqADFfjhMZiE
         Zsy9nqYt+QNLtIMH0Gw6choJ83yip7ijfe0JL0r7Z/JU0LdPe+ynvoRbm+GOuSxXYJH7
         EnSS2p1vuYf0nzJCLpk/vL9j80YN1vP9Y6iGMjAB+eH3/jnT69F+hVb5Rs7/IO1hYz3P
         zqQA==
X-Forwarded-Encrypted: i=1; AJvYcCW5lNSGCxqRaFXoIdpvx/rtSVPjHfRggD2AWEsif49fkj4HykRu5AZ/FHVYGyICZvx5T32uufvf43g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzTl/pERH6X/WsKAgfi/Mzbau0JUY0zGRr3dq10PrnuzejCV6+u
	udFo54KVsgFAk7KXZI7MqJzXcY4zNEB2xiuMcBLL3hgrrNSBW/xF22DIboUjjtMl7Q==
X-Gm-Gg: ATEYQzxorNv0FNiY8sZI7NvxleztJupcgMsbZNcJ9pSwsWEZEw1DqizlIJZbyDPJO6Q
	wYdRL5CNjdRnugbXw4vsi9aDO/LdSVVv85CQUVG4sPvDVejRIDEHWwF2DW6s+nCULmuH9UloNgD
	xmAo3GH/v1fZ1fnQl+wsQ23Dj1THyISaoX8nx+DGaL+fFoUjrC99ITqQ5SS8D5yqgmPGQPjrDNM
	1sDZMTUTmb/e2Nhv/IxI+zH3TXEAdOCL1fhlXMDWfrBoM+E7K8PfxDkb4AKr95Zr/7QBz5r3IqG
	7DsQN6q9yFTV4QIPCS5XTW2YFtIpTz0vgQWDfikBmCEvG2iA3v4sCNyOG0NoCrtDsjoPOG5eXxq
	aaYZZ4Pok6KjLR7wNwCbO4Gwe+JGOcS2wPsmAnvv+cGlgRxHnCGLBs2eUdWONehp6B72z12ZVzP
	jrmOM7s6QxBrmYGXUlX07JTjBkNqYsjOXGerCX59LgUzEEuMhIBy6es2LljBFAD0ea+6W0dz9NR
	7pZRQxqRjn1EC4=
X-Received: by 2002:a05:600c:638d:b0:477:76bf:e1fb with SMTP id 5b1f17b1804b1-48727efadcamr188554685e9.16.1774857604723;
        Mon, 30 Mar 2026 01:00:04 -0700 (PDT)
Message-ID: <93a09dbb-0a8c-4eeb-b544-c9409b9f85ce@suse.com>
Date: Mon, 30 Mar 2026 10:00:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] xen/uart: be more careful with changes to the PCI
 command register
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: <20260327135420.7246-1-roger.pau@citrix.com>
 <20260327135420.7246-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: <20260327135420.7246-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1774857605-62AACA73-7FE428C1/0/0
X-purgate-type: clean
X-purgate-size: 989

On 27.03.2026 14:54, Roger Pau Monne wrote:
> Read the existing PCI command register and only add the required bits to
> it, as to avoid clearing bits that might be possibly set by the firmware
> already, which might put the device into a non-working state.
> 
> Fixes: f2ff5d6628b3 ("ns16550: enable PCI serial card usage")
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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

I would have preferred if the description mentioned the particular case,
turning this more into a workaround than an apparent bugfix. As mentioned,
us driving the device generally means we're free to do whatever we want to
the command register, as long as resulting device state is consistent
overall (or else we may indeed have a non-working device). Having to keep
memory decoding enabled in order for I/O ports to function is pretty
clearly a bug in the device, and hence us "violating" that requirement
isn't really o bug of ours.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 08:01:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 08:01:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267309.1556830 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w77Yy-00035M-17; Mon, 30 Mar 2026 08:01:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267309.1556830; Mon, 30 Mar 2026 08:01: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 1w77Yx-00035F-U3; Mon, 30 Mar 2026 08:01:31 +0000
Received: by outflank-mailman (input) for mailman id 1267309;
 Mon, 30 Mar 2026 08:01:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w77Yw-00034n-2Z
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 08:01:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w77Yv-00EBZI-DD
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 10:01:29 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69ca2dd6-e002-0a2a0a5209dd-0a2a450cb86e-6
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 10:01:29 +0200
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69ca2dd9-f93d-0a2a450c0019-d155802fa4be-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 10:01:29 +0200
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-48538c5956bso40798715e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 01:01:29 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4873061ef41sm167216895e9.3.2026.03.30.01.01.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 01:01:28 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774857689; x=1775462489; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oZeMVZq3dQAUfClGA/R2uQq6s60jStnII12uavj4k9I=;
        b=ajCsNEuf6b9fUqCq+7iqY7OkXaTwuyYazjn8S59zcN1RlLqaU5HcPV0+7XOIRWm/o9
         vmkQxY93O9jtCaGXFm5lGnIpbydq8JcMhXDSe6f7nm3jnyoqS2CZ8odfDtPtYqbu/olu
         uwK9OCjEKC+FDT/NDezTfHSDRIMn6eLDjJezzGi6RZQWoQ1vVR+wNiTvih5ZvhliboYh
         xDd9PLcmYAR9SIlcFzM8Mx0WR4wStFdXly1ArZE9u8IZjW7/6CKGDtwHgUa1HAmA1r9P
         cF8JRHuxk1zwULQcOFn+MKXvlzOPbcdMtTQWbjxWiJLz0MKtfogrYM4FzZfCPGEg+hfW
         PcWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774857689; x=1775462489;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oZeMVZq3dQAUfClGA/R2uQq6s60jStnII12uavj4k9I=;
        b=NzzYdY2B9hi/fWImwe8pPuroTImQvYe3JPOfIImvbZHlRirEmqCOKQpWAjj/ndYjDe
         fZmcg00d/pu3KS0mQE3GWeta2mY0m6Za7JOY77ZxiDreyQB5qxe579JV0jORLLklPyOk
         nJ0mUsWaimUoM4Fhk5iUexPIq6HsaJOCRca5yupFBJ6YBlynKnAaMkaskKPhSvNZzoq2
         SCoqEHHL5I6Uz0OBE32LFx4aDxn4ZmvpZG3iEULvA0Z5HqwDOc7uTaThZuDP3RnIaQ/v
         tDQtC7omPpDt0ZDAMGud5HOMGGhd18tgxwWZmbkQ7oTBfPbl/EKjfQ6isK7bX6/ggk2b
         6KdA==
X-Forwarded-Encrypted: i=1; AJvYcCWLPHrMxGDSV7oAPq6JtWrFns6TIdyW7gt43UnLmd1+iWWk0cVe5Lw1Oe6n7iGHSSwRQIutCsCxXFQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxPYM1lQMCQ9Jk2ceuXwIxuUkUx9iCPZhW+WDLTzLLpABwLC9cg
	YvW5fzPG+pKNfUCaUDYEnSwJq0M8jNBb3oiZw+UCGJO1uJygwRKElt9/90nvM1SA9A==
X-Gm-Gg: ATEYQzww12qk+1rzayQAQAcU5i41C62w4YVzSHdfBG40AtcgblczO5wD3e23fRV9DB/
	8p+yF5HCaCYXncGLuisv4QJ32rFckgmF1+KqcxH1KmCOGpi+/EXE8L6Hs6ra1zmi335XsnAJbDN
	dXKfgwqoXNbR1hc4rTCLnz6w+HVvBY83JyfZU3Nup/PfN3Skc/t4hCrp7w5qATAHLEqO8vjS7fQ
	iyc4avPA/3LDefev9CrqW9MrgGBQe89yEEiNhzzs8Y+290MPzGeU8e2eOS/hL3QxJ9YHcOhkLIr
	qRaV5vpqluv1co8dJyb5dPJ7NXPP5Z8oVO+Dpb5FUfK8tETy6XiY0FWXn22tCCoYwl2F0J23eWn
	AYzoEPoDVBNNEJZWnT4D8fQLSQVtvQCZBpvU0PwQXkwp0fKfBigpw28qncg/XMWFTxS+CR2l4n5
	XiMzlE3RnYFjoMcKplVk8TqhDt3AE1q1igG0Rmj5F0pfpnM26Ppk4TW6HuNL/fatSY/dGYc8ynE
	iF/SncOiFJQPVA=
X-Received: by 2002:a05:600c:4e0b:b0:485:fbd2:f72 with SMTP id 5b1f17b1804b1-487290a9254mr168328545e9.1.1774857688478;
        Mon, 30 Mar 2026 01:01:28 -0700 (PDT)
Message-ID: <45bd794d-62bb-4680-8f7f-4dc98ccb4c4e@suse.com>
Date: Mon, 30 Mar 2026 10:01:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CHANGELOG: add xenstore quota support
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20260327152103.438997-1-jgross@suse.com>
 <49a3c6fe-db8a-4814-8638-6242dfee495d@citrix.com>
 <f172ffac-777d-4280-9538-a4d0e20ffc06@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: <f172ffac-777d-4280-9538-a4d0e20ffc06@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1774857689-F7EA3734-459CFF9A/0/0
X-purgate-type: clean
X-purgate-size: 977

On 30.03.2026 09:59, Jürgen Groß wrote:
> On 27.03.26 18:39, Andrew Cooper wrote:
>> On 27/03/2026 3:21 pm, Juergen Gross wrote:
>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>
>> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>
>>> ---
>>>   CHANGELOG.md | 2 ++
>>>   1 file changed, 2 insertions(+)
>>>
>>> diff --git a/CHANGELOG.md b/CHANGELOG.md
>>> index c191e504ab..566fe510c5 100644
>>> --- a/CHANGELOG.md
>>> +++ b/CHANGELOG.md
>>> @@ -9,6 +9,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>>>   ### Changed
>>>   
>>>   ### Added
>>> + - Support of per-domain Xenstore quota in C xenstored (includes
>>> +   xenstore-stubdom), libxl and xl.
>>
>> A minor point, but "Support for", mainly for consistency with the rest
>> of the section.
> 
> Fine with me.
> 
> Can this be changed while committing, or do you want me to send V2?

I'm fine making the adjustment while committing.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 08:56:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 08:56:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267333.1556852 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w78PY-0002sE-Pr; Mon, 30 Mar 2026 08:55:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267333.1556852; Mon, 30 Mar 2026 08:55:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w78PY-0002s7-M5; Mon, 30 Mar 2026 08:55:52 +0000
Received: by outflank-mailman (input) for mailman id 1267333;
 Mon, 30 Mar 2026 08:55:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w78PX-0002rZ-82
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 08:55:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w78PW-00DWdV-EP
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 10:55:50 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69ca3a93-bab6-0a2a0a5309dd-0a2a4503a7d2-10
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 10:55:50 +0200
Received: from [40.107.201.38]
 (helo=CH4PR04CU002.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69ca3a94-1947-0a2a45030019-286bc926c4d8-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 10:55:50 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA2PR03MB5721.namprd03.prod.outlook.com (2603:10b6:806:117::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Mon, 30 Mar
 2026 08:55:47 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9745.027; Mon, 30 Mar 2026
 08:55:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=msopv0qdPJjXrBKToM/neH28ymxDscT9YZW4+q3fyzZH/ty+3rZAUM/DqjuW/4re4+jVTf/7Dq8xGWuH6/P8wA+T5ZLSB9wcB1//h73M4gPV5MpQb8ZQRvR6qKRUJjo3WuQXUB3O09DtZE4X9n7SN0GC/ScTb6DHsoWYwURYRs//6ekvcMj4AW0NhMT9qS8KrRY5YZNcBshnpkvCEJWbwOz5HtwaJgG8yHWgYXGkxruhKoTf6/spOuum+/UJzl96WTuq5LaIaxAotrS828ZzIb/ox9YZ3G/VN0SGov5POMKRe7fxGMl3F7w0nqsjOj/CxQ1MEhuOjVdBajMJa949gw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6nTwyqSj+xjYcrFYb6izSYsz2D2CD87r2ZLpDVT2Jfo=;
 b=wX7xKQllVTBU8Gyfb42Fn58IuTT+vS7i1FAFXJ1j6KMjIr2aoqDCigZEAxaWN4LCazjM6Km+l08hvYDRWcD1a/aCsL0jPpBvkWpEE3S8gxtsExc/S+a/fSVi2ShlJK0lRx1dZrgX1Vj7s/WVmnXgLQYegF/FOoaccIcOtGsODX9j0b1o+3zDqV7srWIFl/J0WUe6blzpmvzUgG6naTVWYLwwc7TC7NLK6qG2IubghFz1W585+vwtJJ/+WO91kjnq7LoxUJa6v5XxEGUuZWI14S4ykrCTCc+GXVTqIIY2lexiWD3B83ZoFTwwPqQ3H8TVWzJ7QZk7IDNvEjhrrClKhw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6nTwyqSj+xjYcrFYb6izSYsz2D2CD87r2ZLpDVT2Jfo=;
 b=E41vv+uPXMo7Csk/txhGvK5YqPBBZ2mZpXNhLiOiO+TAzv3xKeNrVtVMEORNSA6JxqFh4s51q8LMUUfwcSdgY4ek1rQf0pzlpIZkF0+6X36PVdlVPyzfTNZZW3PNshW1oeGdo1nbbjjwh3lqkOPh+j6LvjaMfl/+HvkzLq4RSW4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <20f9a41f-2a81-4ea5-acd6-85313a30db9a@citrix.com>
Date: Mon, 30 Mar 2026 09:55:42 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] x86/hvm: Configuration for Linear Address Space
 Separation
To: Jan Beulich <jbeulich@suse.com>
References: <20260326131815.1139203-1-andrew.cooper3@citrix.com>
 <7ecad1d7-75ff-4bb7-89c1-7f51398b156c@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <7ecad1d7-75ff-4bb7-89c1-7f51398b156c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PAZP264CA0004.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:21::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_|SA2PR03MB5721:EE_
X-MS-Office365-Filtering-Correlation-Id: 0b6ab3c9-ac6b-408c-a0ae-08de8e3a2276
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	ml1VL3teoMxawg1w5hmI7HePQTiLnKPiVFHAYh0o1J8XUrWTeIAZvLXTEM9IlVFhXa3dHwvB4GQd9AqFEYrMAWKu8699PcT4AVDRf0hnP0KfuhbZnOTgD0v6BhAreSQv/NaXbfa4L0lgmNaUOPJ3u7jTzRDWu+Qk9MWyVJPgDdk9Bru734c42sPWWOu9+0rkVxU9xqV8ZBQYk9DceLBOsei0wKdPaaZUDY45DekT21mGKsJas3j3K+geqLFBbH/MH67Nd6VsTlBWshIRChHdXDokHMagfua2hrMIrMYsvTag1eQTY73paDyyWCQRwQ21UEPvaI1kkPXKg5LekyN/UrY4pWuN7jOE425aNbPmV7++a6X+dvOSxaqgingbNBjnPhakiZQh6L21O4oyb8H3uRIvKZXDVNELCHLA0eBs0DYYaMEjOrEn96xe2EmuFaTbJY6n327sPA3xZMMkfxmXeBo2QwRTR5bBTABTlSjxKaIGPXq4SehzOe2vrWAsfKPCZWl7yN4Ypy13iPWeciXWUBcmtRqoU9RhEHlKwRTzv3b7/7yN2YK6h14/MzNn3V0KByxFK72OzoPLxBJYp412Hju+FQ/u9T/XdNgno4cV2qy+P8tQVhRiyyE7968AG2jHX57N2K3HQzcEZwjL08U3qES/Ve9auB8zU+TslltIASe8b6ap5Mpq7m4CfXD26/MjgnsG5nSE4B4Cu2i9aJfCgPOGS32Triyg2TBH9BCtbk0=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZUxXc25hNWU3ZHIwcmFEa0RvSDdJd1czOFEyYlVBK1M3OFFtNW50WUYwR1hm?=
 =?utf-8?B?T3Z1UUhaaGZvaFdkVVN6MTB1TDVCMUMycVFkK2QxNEVDRUZZdjJLa3hVWDB2?=
 =?utf-8?B?aFV5dkhzYWVUNUJ0bmMwM09LOUYxOE42a1p3TTlCREVRZGRIcXkvSlVRRlhK?=
 =?utf-8?B?U0JNUEJadk5FVVg4UDlUeWpHUGU5ZndmdDM3YjRyVmJiTytuUXBiSWhNS21i?=
 =?utf-8?B?M0tjRjRtQUF0UHoxM2pBZ2xzNE95a1cwVmw1WWFLcHNZbnhKUi93SnJQdkpz?=
 =?utf-8?B?NGQzd0ZmQUdzMU51NHVzUWQ2QkVKeHlzRTYzbTlFWmdjV2MzRkJiRVNWaEY3?=
 =?utf-8?B?bCtYZTdSREIvZ3luSXZ2eHFOL2Z0emljVys3QTBscnFKZndFSnAzTy80Q2JN?=
 =?utf-8?B?WkhHYUVZOEpjU1I3UGFCNVJVeDhDNmk3c3ExdTdYc1V2VWN5Q2pjQUxuSzAz?=
 =?utf-8?B?VUJ4NTYycmJBU0NoWVhmclcxNHBUaHd6aTFCRW1sbTBGVlBvMEFrUFEvTVln?=
 =?utf-8?B?MityM0NLb1JyeDlzUnlrTkNub21yazAvc2l6YzZzRlRralQ2UVVTSjJjOXZq?=
 =?utf-8?B?WFZEUVgvYi8xTUR6Z0M5ZExGQlkvRVdpbEVqNlQrY0x4L3d3WldQSlM3Y0dR?=
 =?utf-8?B?ZWRJZTF4cVd0bFNGWjVQMEZTTWtQZ1YreUhyS1ZzOFdNNUM0UldFUnAzUnhI?=
 =?utf-8?B?RlBvblhJeFRQbitSakJyek96YmRTWW9sWm1XRlcyY2xYTzdHdlFqQUdwWXpq?=
 =?utf-8?B?d2lpWElEanRTbW5idkwwd2xPU1FXdzB2bHRzRS9na21XR1E2aHhIYjVSWXZM?=
 =?utf-8?B?dnNzblZSZmg4OEZZRU1HWS9ia01JUmUwT0w2YTBZL1l1R3ZpaXFMYVc1NDQr?=
 =?utf-8?B?eGpiaXo1L2tTRkNDRHFSamxvZzdBdjRBWUxTRlFSVk91MmFlNVdRekcvSHVO?=
 =?utf-8?B?N3JGZXFUM1R5eGYzNk1xQ3JWbUJwV2ltNTJrWmtHcis4RmtJVjZNTXg3b1Jt?=
 =?utf-8?B?a2hnUE1JcWQ0WkVDR1lqdW1UZ1ozUVpJb2QrUTNSZ000bG9SQ1ViVWF0VnVU?=
 =?utf-8?B?WVBBZW5oYTdsQ2FEUENrVXIrSTBmR2I3TjAzK1piOFlVYmZTLy9oVkZVamlU?=
 =?utf-8?B?SDJOSHZOU0Ercy83bzJwaXF4ZGI1V3k1ZjdSLzE0RjllUzlHakw0ZzY3TjlK?=
 =?utf-8?B?SjBYM09nVlhRNzNRWFFpTzgxcHNBeGlHYUd0UnVJa3dNMGw1N0ZRVVBvM043?=
 =?utf-8?B?NXdUQ2dWR0w3OWFtY2lTaDVLQXVFNEQ4UzlabjIxOVBSRmVBSWNDTlVscEhZ?=
 =?utf-8?B?QitVWlFoUmd6aDdUUGdMV0E5UmRnQnJGeEtSUDZSZ1poTStiK2VGY1FrZkJP?=
 =?utf-8?B?U2MwZTRINnVlODdiTDBDTDk4NUJGblRoUUxxSUxQQThCV0xFaTVsL0tiOTJr?=
 =?utf-8?B?R3FqS1FNcm9aZVAwTjJmVzFsVVQzWERwQi9EbXJDelRBUTZUaDllOEdnV3JQ?=
 =?utf-8?B?ejZaUEpCTGZtcTlSYlIwUTBUVG1WTGF6TXExSm9qZlJTZmtoZlNiek9iUHZy?=
 =?utf-8?B?WEVmTnFObWdFQXJtYVN2dHYxRDE4WTk5WmZPVHEvVy9BRnVKWGJESzZEWmVp?=
 =?utf-8?B?WFpLQmthSFJtQ3Jpb3pCSWVOOG5ucGpwdmtRMnl5RDFTK1J1SWx6WnFYaXA0?=
 =?utf-8?B?L3F1OG1NaGFJUFJ6RElNTjh4QUZybVV5Y0FsNHlYclFwUFFIeWxxRVk5WWx4?=
 =?utf-8?B?b3pjdzhwMGN4Q3VVK1lCNWNBV1B0Uk03UDh4c0Z5QlZRbmsrTUdwNTVSTm54?=
 =?utf-8?B?ek1CY2ZUV1liS1QrT3dZMytnNXAwdFowS1dRc2lyRjBYN0djSGM2YnE1eHZ1?=
 =?utf-8?B?ekRyV25SUGVUMks5cXdEWnc3TmdIWFpnWEZaaGI4dThwS0hNTnYxM1UxOFQ3?=
 =?utf-8?B?UmJNNFlScllLeEMva3p2UU9qZ0pUUTZOQnRJVVdtUjU2MEJ3d3E3WGZ4Q29v?=
 =?utf-8?B?NlVpWm5TUCtRczBTY0VsYXdXMmVEbnM2UzBYZDNOamtUTGZ3QzdxRkxVeS83?=
 =?utf-8?B?VzJwY3dERHhsZXJnSENhZ1FscEY3bW5kS2t4MU5aM0drcWNQb2JNUmh6QkRx?=
 =?utf-8?B?Ny9Ick1uRUJCNENvdU1HVkpnTFkvTG1qMmRJdUlFTTF0c05OR3FwT0VRenhO?=
 =?utf-8?B?aXJ4NjgwTlE5ZWhpY0ZkY2tsajNKRHpPZC9yOUVUdlpsVjlrRVFCNkVscXhW?=
 =?utf-8?B?WklYUHBwNnBEdG9Pc2g4Z0czS3ZYUGhlSGVYNkU1NHY4c2h4UXROSDhPN2ZX?=
 =?utf-8?B?SS9vOGRERTdJclJSN3RLNnplNVIxTWxXUC94cVlTNnlYYkhQTCtFQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0b6ab3c9-ac6b-408c-a0ae-08de8e3a2276
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Mar 2026 08:55:47.2009
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: EJhwOKXrpZh/i8Hww7dEu+JsC4y0F4OZoryH4BoLKytsdQ0w+rhTkOMkDYQ8Bw8sliIow+5k/x6U8PZARlYi0Wy4r/BI5iB4ADmECbvERJI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5721
X-purgate-ID: tlsNG-33051d/1774860950-76E8572C-9BE84566/0/0
X-purgate-type: clean
X-purgate-size: 1256

On 30/03/2026 8:52 am, Jan Beulich wrote:
> On 26.03.2026 14:18, Andrew Cooper wrote:
>> LASS is a feature designed in the aftermath of Meltdown, which codifies the
>> user/kernel split in address space in order to block entire classes of
>> sidechanels.  Specifically, it allows the CPU to terminate any memory access
>> into the wrong half of the address space based on linear address alone and
>> without needing a pagewalk.
>>
>> It is available in CPUs starting with Intel Sapphire Rapids (2023).
>>
>> For now, allow LASS to be opted in to, but leave it off by default.  Some work
>> in the emulator is going to be needed to enable it by default.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks, although SPR should have been SRF.  I'll fix up on commit.

>
>> Abdel is going to look into the emulator side of things, which is going to be
>> easier with this patch already in place.  I intend to get it fully supported
>> for 4.22.
> It indeed as "as simple as this" if you leave out the emulator part.

Yeah, quite possibly the easiest feature I've encountered.  It's a shame
we need so much plumbing change in the emulator to complete it.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 09:06:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 09:06:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267343.1556861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w78ZY-0004qz-MI; Mon, 30 Mar 2026 09:06:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267343.1556861; Mon, 30 Mar 2026 09:06:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w78ZY-0004qs-Ie; Mon, 30 Mar 2026 09:06:12 +0000
Received: by outflank-mailman (input) for mailman id 1267343;
 Mon, 30 Mar 2026 09:06:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w78ZW-0004ql-Qe
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 09:06:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w78ZV-00DaBV-R5
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 11:06:09 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69ca3cf3-2eae-0a2a0a5409dd-0a2a450bc832-48
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 11:06:09 +0200
Received: from [52.101.53.11]
 (helo=BL0PR03CU003.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69ca3d00-ef63-0a2a450b0019-3465350bc0d3-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 11:06:09 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA0PR03MB5497.namprd03.prod.outlook.com (2603:10b6:806:b5::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Mon, 30 Mar
 2026 09:06:06 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.027; Mon, 30 Mar 2026
 09:06:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=l0lLYPAMCB8PxgjtGcWyf/hhPecK0FL+rSla2pVSMauKykIOAnYKDLDWruR3ZevAS+oJsbhFABact22Oj0vAQps7yUlbIJqT7MXnDdEJeyZFaaAgH8HvjQWFHp+rE5VLV/RnjQGGAdKaVi5EkMDcNi1F4sAGvn2TZUvL4r1Dz814QxhYXWz/XRYGjFsMSjDsGeJFcJhwamDrv0F8py01V0sZcwmQ7bdwqeFXR7dKs73MiwDe2odS9MbDgleDoemwzSWMJ9vR1jAxm3FOcJsqHsgW9YAS7MpQNwURjyfb6MxZTzpf0KJXHNRsxD5TCWY5ozLOId3zLKtF0EVtm6t0eA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=N4KWgcq2qbhLKGx8vdRuANk9N6HpmxdVZE8nIV7+vfc=;
 b=Op9t+JFsDeBO1DhoD1X4tCFmi6Tyd2Rcw2Mc5yUdSeaNTGLYs3aTpnX0mw/J6/X5CriwKDTCjkET3aNlMcsoUqLHoCGUCYsU/ChaEM88QJzRDpuKTTTq/U1yvWqKpV4yyAXIRv8BbnEAB1CdMxW7fLkcowRHjtsocXPbHbxgwcQYTxCMEBlQbN7Qfe3dfNcYO2sbjTlBHeBkIJRsJ+RgcvDmIq3sBx9GK3k9kOJPbgcimyNRFkIFs8iIPvOtLpqJZgXwVq+tgKDmPwMFmJiFezf/jv2qTItziiRNf9maK7AJ2H7LRpCvAAYqrluLhBbWVQokqAU7BQpRmis5Tws0RQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=N4KWgcq2qbhLKGx8vdRuANk9N6HpmxdVZE8nIV7+vfc=;
 b=F3l4zBarh4SzrSU5J+7sr6/tod7KGzybj9gmdhdtjMIBJ5N/B5aViVNNt+Cpt6sGSPcZLtRMXOMsCazf+zq8Uzp8FB9TEewv/N6XiR7qSRmLpTVP1dzrN2Bqo4eG8eGa61OLxuTQmCp2dMcfmqnfhMjQAaHTWSIDu9cCyCUB32U=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 30 Mar 2026 11:06:03 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 2/3] xen/uart: be more careful with changes to the PCI
 command register
Message-ID: <aco8-8hc5xJCZeal@macbook.local>
References: <20260327135420.7246-1-roger.pau@citrix.com>
 <20260327135420.7246-3-roger.pau@citrix.com>
 <93a09dbb-0a8c-4eeb-b544-c9409b9f85ce@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <93a09dbb-0a8c-4eeb-b544-c9409b9f85ce@suse.com>
X-ClientProxiedBy: MA3P292CA0070.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:49::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_|SA0PR03MB5497:EE_
X-MS-Office365-Filtering-Correlation-Id: 0c0b688a-fcf9-4bcc-e66d-08de8e3b938d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	EkYM2Z5BSvEOiYQXztzf+8ULvVDpcq+j2k69iTYDdcluyAF7EIDbzIj7WUFzUI6WOkIm3yzl2Kor1U4J61wHtPUfmgNDYy0SH+NJYIiRQg2xdjA2EzvexbkJMxsXHLUbLbh0QA+1Lmp3wScuRlyN2dEOmdZxQRSp/rV1wXXKQKDMGqJdIoWQJwx1G5Qxn+2cRNHxwDJeSsrZF/vHdGhuuwbri1epAgo4dNj9j4n7Wf8xzWT6MKovMVTzu4oHBux1ELvS2m8oxPXJPXG+nn0kV7oef3jSLxJPlJ5IT2CNxkAOOanQmecyQq7BYK/C9X1hp42WZQbUDJr0p0mKZcR7T5ISceL5dl7Y6db1cyG31dpSXduYRu4cAONEwRVvwXPBCFmU8DtSdvxHnvZoj8UIdSD7MfP07uGWat+JP/G2QKiNW5UTv8HFiX4o7mhig/GV7NL6D784WoFMtHcNmoq6hZdtxIw6QxfHpVBEfZT/OGJBKeUc19ALKbpV4aoipM/Tt7UCAj6UuskodEWj4XyWId2x8YgAdOQIrhMcz6C3RMMtqx4l+GUs4xQGK19CT1R8YQKJmrSU19DfrdHQxlImFmIw/iuaSY2ARph0tGPOazyWoFjq8yau7gEwAv8BY7wtRBEGS4VAWeRewWThyj82EaQZ93BJTK0+pZRgQxBwwjvZQtFAQTfWCssQtDK/2d4iI+F/oKSKMD9jwcKWs4SjvzbFJyLDnzLr1Qria71fQUY=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UlprMFlQaWVkS01XK2twOFZRMUx0eDB5cldaeURRdFUxZEloRkltL3hVelhs?=
 =?utf-8?B?amE2eVFMcjBtV3EweHdPdVY0c2s0THR6L0I1UnV2TWM2V0MxajR0ZGpJQjl4?=
 =?utf-8?B?bTgwRlAxeis3Uzg3YWQzY21OaDk5MFp3YVZRbzVCV2NVb0VjcUxGdjFvRCtX?=
 =?utf-8?B?ZU9XL21tWnFzTzJ6ZTJKRHpDdDBIQ09xVHJWNFhrU1I4TDJFdnJ3SFFwWWxm?=
 =?utf-8?B?Sk1aQnRFZHJKR1JRdlYvUytqdkYxZEtiSHdWQVhhSU1TalZOMVgzdVRFcWZk?=
 =?utf-8?B?RGpudGtvWTlXQ3FhQ2R0R0l2SVBoTGRVMXhXb2JPQWVCZS8xNUVWZlJMVFRR?=
 =?utf-8?B?VFlzR3JBbzV0MEsvSEtIc1UxWVJ0bW9kMUJDSnV0elA0aVl3YkZqTXREWXNy?=
 =?utf-8?B?eDZYWW9HSXpVOEJjZysxblgrSDFBMVZvTUdrWXNqUnE0NWNWWTUwMEtoeFo2?=
 =?utf-8?B?M2lYbU1yMVVOaEhma3JVeEMxZUJ0aDJZQzRBa251dytlRmVRSkxVOXg2VXdz?=
 =?utf-8?B?ckt5SUNiTjZGc1IrRzJkZm1mRUpzeGFQVGZnUy9wSnBid3hRWjFGNnJ4elRC?=
 =?utf-8?B?QzZsRkhqRjFOM3NtS1UyQU94NlBQK2xERk9rSlpEQjZGWFB0OUFwZTlXTFVC?=
 =?utf-8?B?bkN0MDNNYUhiM3E3UGRLK01JR1RMNWhwMC9pWHJBd0lHZTViY21TeUkrbTdo?=
 =?utf-8?B?elZyOUVaN1hEd082M3FGTlo1TGhRVGZxMXRjN282b2ZIOVRvcU12dG1YTVRw?=
 =?utf-8?B?MStGdmxwYS9UbWVZYURONmVVS1J2YnBiMlhXMGE5eFl2R0lyNlkzcm41UEVL?=
 =?utf-8?B?L2ZiTlVlTWhWZkJWVTl4UGV5ZVh4cEdyWnRmcmV2TFBBNmJMa3FtWE04eWwr?=
 =?utf-8?B?NXpRZlVlaXVUa093TUZPV0R4YTNiR3JOcWZROHpsSzk0R0R2ZDVkKy84c2hY?=
 =?utf-8?B?eU41ZGF1Q0VVUU5VUXZ0QW0zd3VDbzd0Mk9uYWVKT0NTblFLVllIdmd1ZmZl?=
 =?utf-8?B?SXBleERhZmZVQ3dWL3crRWZKQnFQZXRzajFTL0FDdWxwaFZyS2NCV3RDemtH?=
 =?utf-8?B?ejRmSGo3eEVteFVaOG9VazcweklpbEFZREtFMzhXeklaTDJzZWVRL21PYU5V?=
 =?utf-8?B?R1FBdUV5K2hMTUpJUExBUzdpL1ZnKzdOWnJEWEgwcXBPMzVSdE40UzNqNVRv?=
 =?utf-8?B?R3JtelZDM3lYKzFiTGZhZmF2ZHJJRlNkTHhEUHRORHlmZ0J3RFlwRnIrTUJ6?=
 =?utf-8?B?N1JrQWR4WVlCTnRNbVM1bStUQVhEak1TZDZobEFjc2Fvb0J3K3BiSk0wTG12?=
 =?utf-8?B?U3VDeFdkWVdBNG1ZVXIyRm9URVRrWWdCM1ZBOUFLaHFPMFd5YS84VVp3V2Zh?=
 =?utf-8?B?WWJzZnFvN3RtcExSZXRZNFJjVC81SldJTnpyUERKdWVSZmlacmI3OFZMWVRC?=
 =?utf-8?B?NE9BbFNJZnhDTTEvd0dPUmhqN3krRzFReTRPMXZuMk5obHpoWitGTnBhOFlI?=
 =?utf-8?B?aGdaVm5YTXp6aEt4bnJ4SHpMZmt5Sm1PWUxlNEpxU0VpUkdMSmQrYkhiQmRD?=
 =?utf-8?B?endJTEtUMUthZWk0UFZXcVhMTjYzdzZuZ0N0bmhIcnpNRmZPZDNUVytvOFB1?=
 =?utf-8?B?ak1JK3NMbldSQ2VManQwQUpVUjlvdzBlc2xvcDZhWHdOeFp6cFVJYkZpbHFh?=
 =?utf-8?B?RDlwenFMd1U0d2Zhbm50SmVuSlFzbGNySnU3ZGsranZGRW1tSW9lVHN2OWZP?=
 =?utf-8?B?OUhHRUpKTWZqWDh5U2xrSi8vMzlhc1NHVEorN2h2SVdyZXlwYys5ZW9FTXg5?=
 =?utf-8?B?OUk5ZGh1Q2xwcTd1elpiK2puY082NjlhOFMvNEFMUXQxODRwbU4zdGtCMzBx?=
 =?utf-8?B?Snh6SlM1LzByTkd1YXNZVCt3TFV4eUw2YWZ2Z3laNG50dk1iYUhlR3dxZnBa?=
 =?utf-8?B?Vjlib1dvR3hpM00vNXZjTEI4UGFCUVRRWDRjUUFYWWdHTllrbVRjY1E3YXA0?=
 =?utf-8?B?VXJ5WGxQTTBvMGVGVkprNUN0UTRkcjVvZkpERnVTMHlneUp1UVhZM1llUFly?=
 =?utf-8?B?SnArSEUwdXFCTklRelQ3dmFkTHd2L0pudjdBc0diRnhXRkxOVmZpbFg4STR6?=
 =?utf-8?B?aVFtUEZRSDJUVHZaaGhwM01LY0htamkzTFhhamE5d0VYSVlBUUY0RVFWZ3hy?=
 =?utf-8?B?NDd6ekx3MjBtYi94STNiREovZUdGRVFSeUx0Ky9iRncvNzhoR1NGTmdXUlEv?=
 =?utf-8?B?SWdsYzI3YndsNC94RWpPWHMrdkxPU0ZxYTdDYXFvNFFmWDJKdmpvaE9PTERq?=
 =?utf-8?B?WmllOEJRYWN4dE9JZU44eDRDM1Rra3ZMdkE2U3BOOStZWFZkVHlFUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0c0b688a-fcf9-4bcc-e66d-08de8e3b938d
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Mar 2026 09:06:06.6593
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: uHoHJxZJd5ZlLzOsUjkUtAmcwkPAfzVMURoYiIfZkbJwwIrXofcECy/LuaEcFIiW0kjYbbylhoVu3ijYSHEV2Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR03MB5497
X-purgate-ID: tlsNG-42698a/1774861569-A1401112-2E3ABB9D/0/0
X-purgate-type: clean
X-purgate-size: 1654

On Mon, Mar 30, 2026 at 10:00:05AM +0200, Jan Beulich wrote:
> On 27.03.2026 14:54, Roger Pau Monne wrote:
> > Read the existing PCI command register and only add the required bits to
> > it, as to avoid clearing bits that might be possibly set by the firmware
> > already, which might put the device into a non-working state.
> > 
> > Fixes: f2ff5d6628b3 ("ns16550: enable PCI serial card usage")
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> I would have preferred if the description mentioned the particular case,
> turning this more into a workaround than an apparent bugfix. 

It turns out that the console does seem to work fine, even with memory
decoding disabled on the device (as expected).  I've updated the
firmware in the meantime, so I'm unsure whether that update has
changed the behavior of the device, or it simply was some other
instability that was causing the issue in the past.  This SOL AMT
device is not reliable at all I'm afraid.

> As mentioned,
> us driving the device generally means we're free to do whatever we want to
> the command register, as long as resulting device state is consistent
> overall (or else we may indeed have a non-working device). Having to keep
> memory decoding enabled in order for I/O ports to function is pretty
> clearly a bug in the device, and hence us "violating" that requirement
> isn't really o bug of ours.

I think given the fragility of some of those SOL devices it's best to
limit the number of bits Xen changes, as to having a bigger chances of
getting output working.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 09:09:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 09:09:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267355.1556868 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w78cS-0005dW-4r; Mon, 30 Mar 2026 09:09:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267355.1556868; Mon, 30 Mar 2026 09: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 1w78cS-0005dP-1o; Mon, 30 Mar 2026 09:09:12 +0000
Received: by outflank-mailman (input) for mailman id 1267355;
 Mon, 30 Mar 2026 09:09:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w78cR-0005dC-2m
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 09:09:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w78cQ-00C14Q-Eh
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 11:09:10 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69ca3daf-2eae-0a2a0a5409dd-0a2a450ad574-40
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 11:09:10 +0200
Received: from [209.85.221.43] (helo=mail-wr1-f43.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69ca3db6-1772-0a2a450a0019-d155dd2be5c2-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 11:09:10 +0200
Received: by mail-wr1-f43.google.com with SMTP id
 ffacd0b85a97d-43b9144790dso2255812f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 02:09:10 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf21f173dsm20114921f8f.15.2026.03.30.02.09.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 02:09:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774861750; x=1775466550; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GU2484/kukHHI0UlzrGXhBPzV320Q3raj1dQLV1TsKQ=;
        b=YFo76r6JAf/CwsMQzbgCJpu9HKX92sz2rFZMojhxFLPSyIEYLFiWk7u94lTQCtKmxI
         xGTPo4FGK43uIMVuRwNkQ1Xzwe5MX62ewKOWzS2y1N+TCz8/LWrxHPseWG4GQusidbLP
         v/4ThHe/OXo4r1h93xBsdNnQOjsbtVNwiJ3wcMaNXtHYz1VnZfldiUKbqSPykeZ3FVkh
         TOWdc9juFNpUjtt23tG6rbLDiTo3iw6IevawgXMA+c3QxI2kDzRze/dcwEn4A59GmQGB
         4/lUmNhjgS/3x6+NyekEe+z4Y8T8UdnANyatnxm7pDDd+EUAoJM/fwKdgRTLIvjmkR+o
         8fsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774861750; x=1775466550;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GU2484/kukHHI0UlzrGXhBPzV320Q3raj1dQLV1TsKQ=;
        b=CE6UDAS9VtSMUxsgDDWpIODtN+PA3VdUjeJjVJhNzw+wQmzvpcQ1E2TgozZJvMNIuo
         MiWmffratHdBfxaWGDzoQ3Io9uOjrsH5jRDWRC/FiJdxjlSxK+/sLWpb5mKyApa34SIs
         cEaw4rvGvOmYPavvXvlFu98SjtXQ4zcHiLLh0Pv4dMnTeq0IH67NOJ6taVDJzsNbVhSP
         kKdMLw86OpBB31qLdUFPjBOWc7hZmHceP+ZibmZHmc+rh/Oyu75/wce7le/h19rj+MJw
         Q9hg6B7SRFhfq8lx4XPpQKHkiwZv7qVAZ0BZaKf89QzmZgJP/H70Es8MFMrkvMdDbP/u
         uJsg==
X-Forwarded-Encrypted: i=1; AJvYcCVhOCcPqTxuRn0obERhWkn2KziX4cfIq61pj2TCfMIh7veqkpTao2Kmm0UZmd5oxk1UmXGgo56OXCw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzWY/9YxoXZyJTiUjYL6fenAeReIoCmQGK2jBm0BrUB4eGumgCs
	jjtAySX8TFNJa4vhkYIE3oEzFlW+VscCUJN+Y25Qzgh/0P1zgeokCSKFSBed/AZcUQ==
X-Gm-Gg: ATEYQzzJ4gfPoyo7YXmeCrpl/QGwBJchQMP0tHl9MO/aoufvOdOc2T9MJtvhUvPHFbq
	AV4pZx0XeN2xyVf/nJpraW7WogYtmVeBfe5MNj/i01igV2G5Ni3QcqBsiCGz1E+oUy0rNWq1YxO
	7Dya8nQsMTHUhi9mqG7hjd1Z7IW5oHJ7mb5YdVJvoDUCqOzZ0+oT+ImXSxOC2TfywjD9OJ0JdUm
	06uaKNJLh4nOnZLaQVqmsAz9B+QASUw33/H8OKkQi2NdC4foNhM5P5OD+uhpJOFpnXmOr15hfyR
	9kbIMWNRsx4Aqx2GWNKHQl4BblPOCOSi2Rcw3O9pBboGWidowzPX/IXgcoSo+Bhjb6h9hmRPLWl
	h40Gewk1Aeisf01ZvVFMVEFxZaRE6k0M/PWSWvgB59XYDwwV6GN7UTa4JMyx3Mk54BIDHLAzjph
	bSt3Nh+tjPqbtA1NHRybrT62ZQzoDl9BYdDLveQhzEWi4Qv+6+4CXKTNUVLI/r5bZETyXzzTFwy
	bJJdmPJBgT8rHeW22DqyonO+g==
X-Received: by 2002:a05:6000:1ac8:b0:43b:8858:1146 with SMTP id ffacd0b85a97d-43b9e9fad6dmr19160672f8f.41.1774861749629;
        Mon, 30 Mar 2026 02:09:09 -0700 (PDT)
Message-ID: <ad18bddf-9cc5-469c-8b8e-d5cf39840660@suse.com>
Date: Mon, 30 Mar 2026 11:09:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] xen/uart: be more careful with changes to the PCI
 command register
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: <20260327135420.7246-1-roger.pau@citrix.com>
 <20260327135420.7246-3-roger.pau@citrix.com>
 <93a09dbb-0a8c-4eeb-b544-c9409b9f85ce@suse.com>
 <aco8-8hc5xJCZeal@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aco8-8hc5xJCZeal@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1774861750-BE28F900-BE64D2A3/0/0
X-purgate-type: clean
X-purgate-size: 1838

On 30.03.2026 11:06, Roger Pau Monné wrote:
> On Mon, Mar 30, 2026 at 10:00:05AM +0200, Jan Beulich wrote:
>> On 27.03.2026 14:54, Roger Pau Monne wrote:
>>> Read the existing PCI command register and only add the required bits to
>>> it, as to avoid clearing bits that might be possibly set by the firmware
>>> already, which might put the device into a non-working state.
>>>
>>> Fixes: f2ff5d6628b3 ("ns16550: enable PCI serial card usage")
>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>>
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>>
>> I would have preferred if the description mentioned the particular case,
>> turning this more into a workaround than an apparent bugfix. 
> 
> It turns out that the console does seem to work fine, even with memory
> decoding disabled on the device (as expected).  I've updated the
> firmware in the meantime, so I'm unsure whether that update has
> changed the behavior of the device, or it simply was some other
> instability that was causing the issue in the past.  This SOL AMT
> device is not reliable at all I'm afraid.
> 
>> As mentioned,
>> us driving the device generally means we're free to do whatever we want to
>> the command register, as long as resulting device state is consistent
>> overall (or else we may indeed have a non-working device). Having to keep
>> memory decoding enabled in order for I/O ports to function is pretty
>> clearly a bug in the device, and hence us "violating" that requirement
>> isn't really o bug of ours.
> 
> I think given the fragility of some of those SOL devices it's best to
> limit the number of bits Xen changes, as to having a bigger chances of
> getting output working.

That's okay(ish); I merely would wish the patch description was less
suggesting that Xen was actually buggy.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 09:57:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 09:57:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267367.1556878 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w79NP-0004lq-Ir; Mon, 30 Mar 2026 09:57:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267367.1556878; Mon, 30 Mar 2026 09:57:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w79NP-0004lj-FV; Mon, 30 Mar 2026 09:57:43 +0000
Received: by outflank-mailman (input) for mailman id 1267367;
 Mon, 30 Mar 2026 09:57:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w79NO-0004ld-EN
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 09:57:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w79NM-007YUL-GL
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 11:57:40 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69ca4907-2eae-0a2a0a5409dd-0a2a450a8194-48
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 11:57:40 +0200
Received: from [40.107.200.46]
 (helo=CH5PR02CU005.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69ca4912-1772-0a2a450a0019-286bc82efab2-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 11:57:40 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ0PR03MB5760.namprd03.prod.outlook.com (2603:10b6:a03:2d3::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Mon, 30 Mar
 2026 09:57:36 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.027; Mon, 30 Mar 2026
 09:57:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yvEtOwVBUlZu7A119Soj8xvd7Mf5lEy85A/vYife9dN96oZcmMk2R+pygR1B4HbQRi8NEdVd6GYlDZQGCKffKDbGFWhg1A4zP/cWMAz2AXz5xCbfJzjIjtBOVtiXOWFMXmC80ErA+4vrhWGh9doz+RcFhv88PfkVEYhLNtt5oviMIInnvd54cX2G5/0e2gDyfKzJWPY5sOJZHNKZX0AMPw+9ogjrlhtCJONBmkr42BGw/hnzKQh7XBBj5+FquhiijYdldP6+rUwVVFZAeJuLgJbgg2fgOoHW0WN/ZMoOnnaqUOdeuGfMB4/1deRr6qcxYv7mJxVo3yCcNqGXu1PNdA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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/spZ7bUzzZXh1IwnaF8NBSOaFQlR5NAV/f+qjpJJuU=;
 b=J8hqWXHerI1qVUHMqO1h07TVlIInPxA7lXXcNCgrrboQFrgi9fyyRMfr7e5N5X3+4rOk7mNPbgFP/MavVr7om4cfhxkbko9zKIjIemQqT1leDrdWIaIsda6XXnrWdjgR62BzB1nEQQUil2cB0lH0cQNzLXy0qp4PB4uMv4EF6LirsVVxPv0qolO+MF+z+YO8m5oFZCWCTm7fkA5pd4aeBHPnNaHLp3YkL1/Hehg81nGRlMf8tchPYSDfH0n9Hk/F5H5o5aftcaUN3w7JyOm6gGKT/LEifjVvDkq9nYHtufeGjkBTdfsMxhGpRr0HxoMhRC4r55h1E1dvXpuNG24SFg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-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/spZ7bUzzZXh1IwnaF8NBSOaFQlR5NAV/f+qjpJJuU=;
 b=Sil3mGmQA+QrVIGKIJ4gQPrCniQeKd99QFGGFYqZX4G8MTjWtnREMW1TjPKTYWQvyuZGGe7WnfN+W8o+fugvru2ABDoEOYUAoLRJmywMZuSRIEwwYl/Pi299l46ofuhz5edekYQo0V2neOuoyd/DSfjpyJr5/1p6BQ3aNNUdpsQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 30 Mar 2026 11:57:32 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 2/3] xen/uart: be more careful with changes to the PCI
 command register
Message-ID: <acpJDODr4hXTqDxz@macbook.local>
References: <20260327135420.7246-1-roger.pau@citrix.com>
 <20260327135420.7246-3-roger.pau@citrix.com>
 <93a09dbb-0a8c-4eeb-b544-c9409b9f85ce@suse.com>
 <aco8-8hc5xJCZeal@macbook.local>
 <ad18bddf-9cc5-469c-8b8e-d5cf39840660@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ad18bddf-9cc5-469c-8b8e-d5cf39840660@suse.com>
X-ClientProxiedBy: MR1P264CA0051.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3e::26) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SJ0PR03MB5760:EE_
X-MS-Office365-Filtering-Correlation-Id: 36ad50f9-c2fa-4190-5543-08de8e42c52b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|56012099003|22082099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	ZM6HKsDoF+FuvBEGajT5oB+bB86ri6+KtjAHTg7bOj8tugVSl8g22Kp05CSxJ9ko8wxXm5EbkAUlfqwMFOa8+WYQiwR03vQUYvOkpeJIAdAvse7WD5XS4nqfDB76ZqKGYLrojcDPsadCdzyUN+rmiAlktIQ7jUESFMCnPBYgyNyKv0sVV1Srwznf2ZcRpd2/w94IIf8SPspT9QO9fGWFlNas2HMO80aYpEY2apa0oipBZ25R0QBCW9g9kmZsuQPMYHNzJLNueurrY24bJ9Ra7bi79HYzhtDZApzbHc6JKWmo9vECbh9ZdjS11r1Nzd0OpGJtve6uL9RJ8VD5N+1Aujtz352cDXjwBavIW5roEVsBBQnUDfkxrAVbEW0DX3Kha+RwD9+ZgKV+Bj524G3ApbL5i4iKfIT8eBWXoJb2tzlcc09cuUXRT+8tjao05DB3uJ2/gRcDUh9g/A39ayoR57n56SLvZricoalzXkoK+7sEKQOWw8l3EHq93dvgd+ukUWjGscyczMpGrTLwRISBkmjTL5oXx8Qnua7ykvkV5aWk8Q3CDu0CBAkpYI4178jazDN2j+Bv81ZT8gj8obLpHlN2yp8H6bnh5R8F1/jNoIUHyYPAEiTNq2nEqR+QD7R/2Ezu1EKCC1rIJEK/K3tN8Vg41Nwlsm+4rlQys3ltWu0K532MiTHwfD1XGjcxehcBDWDFy6m9wdGq7vjYAO1tzE7q27Uy+uHivG1EnaXjwZo=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VEtoV25FVWNXbFFBZXNrUGZBWEEzeVhpd29HSnlLS1FBSlhqcG40ZDhqdGVm?=
 =?utf-8?B?aXBybE5KR0RaYXg4YWQvaEFGTWJWN2hHSDAzbjlHV1VMWm9KQzc0Qk5tY3pM?=
 =?utf-8?B?L0c1cEFSNDVtcFBWMzlsRm1UeURCZ1RDSWVVdVZKYURPUVZmRnFwblRKbnlK?=
 =?utf-8?B?VlY1VnFNWXNzWjJ5TnAvL1ZIdnZZNEpZNWJMcDBDSTRrU1E2VElwUDVGSFRr?=
 =?utf-8?B?ZmEyQzQzQ24rMFBiMUFQOXZHS1VFR282QUtQZzhjRlRoLzdPN0ZTZjRpYzZn?=
 =?utf-8?B?aXRpRVR3eDYyeFl2ZCtlSFZqRVFCN2h6ZHh2czRNRnVEOTdUTlRjd0FwdVdK?=
 =?utf-8?B?ajc4NlJqT0ZmMitqZ1BtRkZGY3FCTldqcmhzV3B5aUl1bEFIc29udTFBNVhr?=
 =?utf-8?B?QXFEZm5NcG5GRG1YbkRISG1WdGRGOU9ld3BQWERwcjVTRnF4Sk5sdDJKVWo4?=
 =?utf-8?B?d3YydWFkY1dVdG9Lb1NZOXE4aE84RjRtYlB4MS9ncW55aWlyV3M3blcvTGF2?=
 =?utf-8?B?WEV2VE0vdEEwejZTbHRDMk9pRzVVZFhLQUJvU3FOa0N6ZmJHNlZMQzV4eEVY?=
 =?utf-8?B?UFhpR2R0YldQV0pUN08wVUlvQW9DOWU2TWFkMmgrZ2JNYWxnYkdnNE1RNHdX?=
 =?utf-8?B?QW02VjlMeXF3a3JBcFVmZjY3VkhjK2l3bUtjUVh0aUY4a0RzcExXWUNUb1ZQ?=
 =?utf-8?B?YW8wZnJJaEhBNDYrNzdRbmovbExYeGlnSVJNVitlQTlqbzRCYmFXVTFUa0pJ?=
 =?utf-8?B?d3g3UjlQTWtzNlF3UEhpZmpDMTg3QVlkV0k5aEtycHFCL1Awb3dYdC9IU1Fs?=
 =?utf-8?B?WUI0MjJIMGNDdThxSUI0NTFJS2NweFQwVktkMzJPRkM3amhEZFdnZFRWNUox?=
 =?utf-8?B?eGxXdVZTYW1DWmtVVVBJWk1pZm4vejVGRFNvWXNlYjhEZUlWMjZ5NFJGa3l3?=
 =?utf-8?B?eXZqZmVlR2J4em5JS1lJZHNHS0lTalZTRUNDbXhEREJ1aS9DdkEzeE1YMndz?=
 =?utf-8?B?NUJ6TEx6QkRaWVRlV0ZhRHh3S016eFZjeWNlM2tIQkV2TEJHU1B1K29mSUd6?=
 =?utf-8?B?d09hUVBvN2JBbzU1V1dOZklPSWgzOEk0eGRVWis2Qk1RakhpMWVZM1lmMUxj?=
 =?utf-8?B?M3ZkZ1RaRDBVR3JYbHFzNmpHOVJEQWJVTXM5V1NzY3ZUVFpZK1QzR3lmMkZG?=
 =?utf-8?B?dHdqTHBhUkQ2QUJjaWdGM0JxTVJBUUw3NnlUOHhFZmhISXlhdm1kSGg0THZv?=
 =?utf-8?B?T2F2L2hqZTgrT1lGSWcwYkdlTyt6N05YMm1YaGdHSVdmL3FOUlVFd0RHRkhr?=
 =?utf-8?B?c0RBWUo0a0NoVWFHUmthZFFraDZuUjFYbGNSK0wvWlBBRW8yUDJGQ1c4Tmwz?=
 =?utf-8?B?UEdsZXpsN0h1YkxPc0pEWUpjZzA2UGdoYnNkRENoR1BUOXZDenJ2WUJpVzdy?=
 =?utf-8?B?Kzljb0Y5RmRXT212OGE0SGhOVHg1UG1WN0h1MXJTT2xORmtoUGtRdUVsU2FT?=
 =?utf-8?B?YURYS3R0enJyWUVqWlhKb2lON2dpVUJycldkY2JNcTk4dUhMZXRjQTFrVUg3?=
 =?utf-8?B?dGZXNzQ1Z29NU2s1Q29MaGhNMW0wOVhrY1k1b2xydUJXWXg3bStMY2ZVOHlE?=
 =?utf-8?B?Q1VUU081Y0tjM2R1YjkrQzl1SlNpYnM1TmlXUTdXOG1iRlBRZmVaTFA0Q2M3?=
 =?utf-8?B?MGZhTWw2eFY0WVpJZ3cybTk4cUk0MmM3YkhFVzNDK3BJNzBmMlRUa0JYRGtC?=
 =?utf-8?B?dUp4SGVyYVAwKzJFMncyQXZpTVRFaUp4U091VjZJZE5NSmVmeWVqUDBmWTZw?=
 =?utf-8?B?ZnRSKzYwQVhlajBQVFVXUWtnUURYVUc0SkpOMENLdUtZUTMyaWNnWE9KUnYz?=
 =?utf-8?B?YitBcm1PR0NUSmRGMUpOUGV3VWdNdUZKUFcxeWJmWlF3UEUzeVc0bnFrMDEw?=
 =?utf-8?B?R3E2V29rdmg5ejlsK25SeGl4Wk9QSHE3b1dXWW9PS2d6SWJ1TWZxaEc5cUFS?=
 =?utf-8?B?bVNCN1Bxd3lTTS9SZjFyT1pOMGhnR0RyRHlMUjVxWlBxclh6d2U3TVkrblhM?=
 =?utf-8?B?QWZQakZpWXFBVlFKcVZEY0V6NmVQTVQvSWUzaTUvdER6cGlRVTQ3NnhQaUFa?=
 =?utf-8?B?Q2V5R0lwWkpoaEdWdTVHVTdPR3Q3YW0xK0hjeXhDb1cyTFBTQnRJbnczQksx?=
 =?utf-8?B?Q0xoRDEzdmNIT0FRcU5PdUN5RFc4S284cndtdDRpcy8zSXhVb043WEVMSXpW?=
 =?utf-8?B?dmhGSzVTV0dOWTJzeHFFNW51TkJjZ0tnOGpWbWliYVI5a25sQmpFR3RHVkw5?=
 =?utf-8?B?SDlKRk8wdVV2Y1FzMkhSMEFkNThHR0lRRmtzQitqb0Vkcm9pRHhiUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 36ad50f9-c2fa-4190-5543-08de8e42c52b
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Mar 2026 09:57:36.2720
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: uDsOHn8XwYY915HP3G5rMOShITxgo8EcwvxRhB5I8DMYKZc2W26KUQqjptAZkde+SbOoxI3C49LZu/0L811aoQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5760
X-purgate-ID: tlsNG-4011c0/1774864660-BFC9C900-41A61AA8/0/0
X-purgate-type: clean
X-purgate-size: 2142

On Mon, Mar 30, 2026 at 11:09:10AM +0200, Jan Beulich wrote:
> On 30.03.2026 11:06, Roger Pau Monné wrote:
> > On Mon, Mar 30, 2026 at 10:00:05AM +0200, Jan Beulich wrote:
> >> On 27.03.2026 14:54, Roger Pau Monne wrote:
> >>> Read the existing PCI command register and only add the required bits to
> >>> it, as to avoid clearing bits that might be possibly set by the firmware
> >>> already, which might put the device into a non-working state.
> >>>
> >>> Fixes: f2ff5d6628b3 ("ns16550: enable PCI serial card usage")
> >>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> >>
> >> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> >>
> >> I would have preferred if the description mentioned the particular case,
> >> turning this more into a workaround than an apparent bugfix. 
> > 
> > It turns out that the console does seem to work fine, even with memory
> > decoding disabled on the device (as expected).  I've updated the
> > firmware in the meantime, so I'm unsure whether that update has
> > changed the behavior of the device, or it simply was some other
> > instability that was causing the issue in the past.  This SOL AMT
> > device is not reliable at all I'm afraid.
> > 
> >> As mentioned,
> >> us driving the device generally means we're free to do whatever we want to
> >> the command register, as long as resulting device state is consistent
> >> overall (or else we may indeed have a non-working device). Having to keep
> >> memory decoding enabled in order for I/O ports to function is pretty
> >> clearly a bug in the device, and hence us "violating" that requirement
> >> isn't really o bug of ours.
> > 
> > I think given the fragility of some of those SOL devices it's best to
> > limit the number of bits Xen changes, as to having a bigger chances of
> > getting output working.
> 
> That's okay(ish); I merely would wish the patch description was less
> suggesting that Xen was actually buggy.

What about if I change the title to:

xen/uart: avoid clearing PCI command register bits set by the firmware

I think that's clearer and less blameful?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 10:15:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 10:15:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267380.1556886 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w79ew-00086w-Vd; Mon, 30 Mar 2026 10:15:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267380.1556886; Mon, 30 Mar 2026 10:15: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 1w79ew-00086p-SL; Mon, 30 Mar 2026 10:15:50 +0000
Received: by outflank-mailman (input) for mailman id 1267380;
 Mon, 30 Mar 2026 10:15:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <bounce-md_30504962.69ca4d52.v1-6de7ea1bf3054b2aaf7438b3b3807385@bounce.vates.tech>)
 id 1w79ev-00086j-0F
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 10:15:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w79eu-00ElqN-CG
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 12:15:48 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <bounce-md_30504962.69ca4d52.v1-6de7ea1bf3054b2aaf7438b3b3807385@bounce.vates.tech>)
 id 69ca4d4a-2eae-0a2a0a5409dd-0a2a4503eb60-34
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 12:15:48 +0200
Received: from [198.2.179.37] (helo=mail179-37.suw41.mandrillapp.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from
 <bounce-md_30504962.69ca4d52.v1-6de7ea1bf3054b2aaf7438b3b3807385@bounce.vates.tech>)
 id 69ca4d53-1947-0a2a45030019-c602b325afdb-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 12:15:48 +0200
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-37.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4fknFZ6120zG0CBJN
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 10:15:46 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 6de7ea1bf3054b2aaf7438b3b3807385; Mon, 30 Mar 2026 10:15:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mte1 header.d=mandrillapp.com header.i="@mandrillapp.com" header.h="From:Subject:Message-Id:To:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"; dkim=pass header.s=mte1 header.d=vates.tech header.i="teddy.astie@vates.tech" header.h="From:Subject:Message-Id:To:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774865746; x=1775135746;
	bh=4ftzqy59DoR80wgnd7UbR3KsoDNOo82PR4o/Q/pNvFk=;
	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=zAunaEDMh9/YaluxSVYm/LbBfNkwZdAWDDxMInhP8qlK4tgUKH72JncQLkeTFNjfx
	 r8eZlKsgbPb5yN1Trg6xGvUlF99OdiV660Mmcy8RQTfyWeAKHWnAQoai5mHeNlwpzZ
	 m6i7TJ1pRJLpzjR12c4DJx2IueaQJlXZ0yWdBY9c7BvZQ5jdJ5ib7iv8zPMNil5trx
	 W/5LmDl2Vc/teqwzR6B/IM8XDKLsq8ZJZOPTXIKtrDT3nGvaPCG4i68yEth9MpEA/G
	 VgDUVSf9MqvDFej0rMvWlNYKaIOoc/qoZSLw4rRUnj/s84VkWOkeqjCI+IA/CRAAI+
	 l21DhC9yAGDbg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774865746; x=1775126246; i=teddy.astie@vates.tech;
	bh=4ftzqy59DoR80wgnd7UbR3KsoDNOo82PR4o/Q/pNvFk=;
	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=jI2M4JuXtzdviGXc3SgG/8H7DsUure+J+CuF316hFxaEkomdKq8pGWY8jUWUHVCcV
	 VCd5SeraVdhFe7faKY/x9N08aTGYmh3K6AtsnMWHd8vl0ideBc0QKMw4WnuCzs4d5G
	 dkjm6VLQbnSyRjvUf51vGcpOGjS9ba+XfHPXAvosZFsOTdsZDDMc3srKC2/TZC81YW
	 K7ApGsDXWAhzBix7m6vgq9PwTXF26TmdNZCAp/TnykoYKZWSD5WkBswZwxLx708f8R
	 ZK5g46Mxl1XyffPjlR7JN4khsn407MdW8hO3ZzGHHNvapmTEQxMpwWdiVfnTFJgtV0
	 MebEzFjIV9qdQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20Why=20memory=20lending=20is=20needed=20for=20GPU=20acceleration?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774865745207
Message-Id: <ce114f02-f45e-4638-84ee-a8fd86ce1c5d@vates.tech>
To: "Demi Marie Obenour" <demiobenour@gmail.com>, "Xen developer discussion" <xen-devel@lists.xenproject.org>, dri-devel@lists.freedesktop.org, linux-mm@kvack.org, "Jan Beulich" <jbeulich@suse.com>, "Val Packett" <val@invisiblethingslab.com>, "Ariadne Conill" <ariadne@ariadne.space>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Juergen Gross" <jgross@suse.com>
References: <84462c4b-7813-4ad1-aeb2-862ae4f3a627@gmail.com> <c38387fe-beef-4f50-b928-74f96b881b7a@gmail.com>
In-Reply-To: <c38387fe-beef-4f50-b928-74f96b881b7a@gmail.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.6de7ea1bf3054b2aaf7438b3b3807385?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260330:md
Date: Mon, 30 Mar 2026 10:15:46 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-33051d/1774865748-E9A9B72C-06826D80/0/0
X-purgate-type: clean
X-purgate-size: 5267

Le 29/03/2026 =C3=A0 19:32, Demi Marie Obenour a =C3=A9crit=C2=A0:
> On 3/24/26 10:17, Demi Marie Obenour wrote:
>> Here is a proposed design document for supporting mapping GPU VRAM
>> and/or file-backed memory into other domains.  It's not in the form of
>> a patch because the leading + characters would just make it harder to
>> read for no particular gain, and because this is still RFC right now.
>> Once it is ready to merge, I'll send a proper patch.  Nevertheless,
>> you can consider this to be
>>
>> Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
>>
>> This approach is very different from the "frontend-allocates"
>> approach used elsewhere in Xen.  It is very much Linux-centric,
>> rather than Xen-centric.  In fact, MMU notifiers were invented for
>> KVM, and this approach is exactly the same as the one KVM implements.
>> However, to the best of my understanding, the design described here is
>> the only viable one.  Linux MM and GPU drivers require it, and changes
>> to either to relax this requirement will not be accepted upstream.
> 
> Teddy Astie (CCd) proposed a couple of alternatives on Matrix:
> 
> 1. Create dma-bufs for guest pages and import them into the host.
> 
>     This is a win not only for Xen, but also for KVM.  Right now, shared
>     (CPU) memory buffers must be copied from the guest to the host,
>     which is pointless.  So fixing that is a good thing!  That said,
>     I'm still concerned about triggering GPU driver code-paths that
>     are not tested on bare metal.
>     
> 2. Use PASID and 2-stage translation so that the GPU can operate in
>     guest physical memory.
>     
>     This is also a win.  AMD XDNA absolutely requires PASID support,
>     and apparently AMD GPUs can also use PASID.  So being able to use
>     PASID is certainly helpful.
> 
> However, I don't think either approach is sufficient for two reasons.
> 
> First, discrete GPUs have dedicated VRAM, which Xen knows nothing about.
> Only dom0's GPU drivers can manage VRAM, and they will insist on being
> able to migrate it between the CPU and the GPU.  Furthermore, VRAM
> can only be allocated using GPU driver ioctls, which will allocate
> it from dom0-owned memory.
> 
> Second, Certain Wayland protocols, such as screencapture, require program=
s
> to be able to import dmabufs.  Both of the above solutions would
> require that the pages be pinned.  I don't think this is an option,
> as IIUC pin_user_pages() fails on mappings of these dmabufs.  It's why
> direct I/O to dmabufs doesn't work.
> 

I suppose it fails because of the RAM/VRAM constraint you said 
previously. If the location of the memory stays the same (i.e guest 
memory mapping), pin should be almost "no-op".

(though, having dma-buf buffers coming from GPU drivers failing to pin 
is probably not a good thing in term of stability; some stuff like 
cameras probably break as a result; but I'm not a expert on that subject)

> To the best of my knowledge, these problems mean that lending memory
> is the only way to get robust GPU acceleration for both graphics and
> compute workloads under Xen.  Simpler approaches might work for pure
> compute workloads, for iGPUs, or for drivers that have Xen-specific
> changes.  None of them, however, support graphics workloads on dGPUs
> while using the GPU driver the same way bare metal workloads do.
> 
> Linux's graphics stack is massive, and trying to adapt it to work with
> Xen isn't going to be sustainable in the long term.  Adapting Xen to
> fit the graphics stack is probably more work up front, but it has the
> advantage of working with all GPU drivers, including ones that have not
> been written yet.  It also means that the testing done on bare metal is
> still applicable, and that bugs found when using this driver can either
> be reproduced on bare metal or can be fixed without driver changes.

One of my main concerns was about whether dma-buf can be used as 
"general purpose" GPU buffers; what I read in driver code suggest it 
should be fine, but it's a bit on the edge.

> 
> Finally, I'm not actually attached to memory lending at all.  It's a
> lot of complexity, and it's not at all similar to how the rest of
> Xen works.  If someone else can come up with a better solution that
> doesn't require GPU driver changes, I'd be all for it.  Unfortunately,
> I suspect none exists.  One can make almost anything work if one is
> willing to patch the drivers, but I am virtually certain that this
> will not be long-term sustainable.
> 

There's also the virtio-gpu side to consider. Blob mechanism appears to 
insist that GPU memory to come from the host by allowing buffers that 
aren't bound to virtio-gpu BAR yet (that also complexifies the KVM 
situation).

You can have GPU memory that exists in virtio-gpu, without being 
guest-visible, then the guest can map it on its own BAR.

> If Xen had its own GPU drivers, the situation would be totally
> different.  However, Xen must rely on Linux's GPU drivers, and that
> means it must play by their rules.




--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Mar 30 10:25:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 10:25:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267394.1556897 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w79oF-0001f1-TF; Mon, 30 Mar 2026 10:25:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267394.1556897; Mon, 30 Mar 2026 10:25: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 1w79oF-0001eu-PL; Mon, 30 Mar 2026 10:25:27 +0000
Received: by outflank-mailman (input) for mailman id 1267394;
 Mon, 30 Mar 2026 10:25:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w79oE-0001eo-ID
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 10:25:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w79oD-00G4Fw-TT
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 12:25:25 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69ca4f92-2eae-0a2a0a5409dd-0a2a4504c648-22
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 12:25:25 +0200
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69ca4f95-c823-0a2a45040019-d1558032c4c5-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 12:25:25 +0200
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-486fe2024a9so30603755e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 03:25:25 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487270e7248sm123961175e9.6.2026.03.30.03.25.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 03:25:24 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Cc:Content-Language:References:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774866325; x=1775471125; 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=Bk9iPA4aEAPWdzSPecO+wqcTKPBLIZIOOXlz3adrPoA=;
        b=gIrPmYOF3kwfxQ6CSH3E0SQL+990TVuk7awmEHckpbBJc1FTyS5zAsavQFCow3O74t
         CeKp9E0c3S01T2v9cJFeTaqOvGk4uCYpvdNpvJz3P0SlGMIuQ2M3wLf1v2NYedNEQiIE
         0vdh6Z9T7eJsYqfHt30l17kMgwqrLKCrat3cGb0WX+o8IbIH/HzTNTGnQafw7Xof7nLh
         3IfNDwgIriLEW+5w5QpI91nNlyDFI6teIw1PGmga54COOmjuGLf6V0LBAKwzyO2ydCHY
         qV16hZNVfOVy9UTLPYlCMFhsBnxyJycJx/NfZA9kfAPdw/wlN0srKJuNzxGynknuCCwb
         BuDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774866325; x=1775471125;
        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=Bk9iPA4aEAPWdzSPecO+wqcTKPBLIZIOOXlz3adrPoA=;
        b=lfupm5pPJlOnMpGBsaSYiwv0BnFUza2O6NfHrepSOqBXuLUsWb8ofUOPSCUi6VSlBY
         PvAWPCVQl52+VRZS+OoF7VAybrQy9xBWlKiDchQMMxjtsOhLB7z4xX5rIE8bn+Ibn9Fk
         uAQYpqbnbZsVqn1CJqX/4Nx3+cCCdmaroRUaH1jHtCrHfJJt2sVQAKcvJNzZlRPHP7zQ
         QuOEXK23aGoxadnXQ60+HBD8aQ2XkHiJsGIszAwIUyRddJHXx54Kp0vHVWInzq6ySFlt
         IvJMGGulsQAgZKOCldM3R9VufilkfECHwkqmecXonQLNaphYDjgAaftCFo1LzV+2PT6q
         U9Dw==
X-Gm-Message-State: AOJu0YycopJ5f8XXAd6awffTKSU1vm26j5Obb5YKg/gmrQL8ZWCKK5/W
	lBFxtnqxipd8FANyYgOHv2qXJtBjy2GOzhc8b9jCUlnot/VXhDMXePc3fyC8LyuGgWif2BpzCq5
	l0ws+Ug==
X-Gm-Gg: ATEYQzy0e9noT3TVDg6ZGVfYxMAIVElf5AJ/Rsu2Gqoh/OPPRLjnEsMq2KMQR35gOOY
	CIrpqjgDTAS4AB3cdYMMuJyhwQ5zrbDNs3I2z4aDvdgaZKszFBzkpG+NVqm+UXhEOT8iwS/trQH
	IHokvZpG42LTU7MzMlgRupk2Yi+AAbYkksh2k79RUSHsta7Q4EIhaL/S6I2vccFRXQPni9goU+N
	2QoZyDFPX7Qkvef0gPP0RvaGTf2d7ftwSajMcOfcdntogJhx6NFxXIhPmrNq71oaOoyticmGR/z
	0vxJcouYYxkqMMhB2u6KFiJvInJ9hYVCafAvnUtYC3eSrFQfi7NZDzREmTFIxINdVmW7SDzUCVk
	t6vT5GCTqKjXL94zWZcZfR+cOi8UYbNYAqCJy1e9ml4BrtJlqoPFJhSOWulfEgZHXAqrlDt4YtP
	OzPTMM6GAu3yIEsWW4rUKqQ1t05tPdTZCoRXzCgPc5StMAHbSV+J95x9wk2ekyXkZWpcQaEkZLc
	g3fTSAF2UPhChg=
X-Received: by 2002:a05:600c:a408:b0:485:9a50:3370 with SMTP id 5b1f17b1804b1-48727d735a7mr152106215e9.8.1774866325041;
        Mon, 30 Mar 2026 03:25:25 -0700 (PDT)
Message-ID: <cf54e793-63d6-417c-b7c5-3301455fcf33@suse.com>
Date: Mon, 30 Mar 2026 12:25:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Why memory lending is needed for GPU acceleration
To: Teddy Astie <teddy.astie@vates.tech>,
 Demi Marie Obenour <demiobenour@gmail.com>
References: <84462c4b-7813-4ad1-aeb2-862ae4f3a627@gmail.com>
 <c38387fe-beef-4f50-b928-74f96b881b7a@gmail.com>
 <ce114f02-f45e-4638-84ee-a8fd86ce1c5d@vates.tech>
Content-Language: en-US
Cc: Xen developer discussion <xen-devel@lists.xenproject.org>,
 dri-devel@lists.freedesktop.org, linux-mm@kvack.org,
 Val Packett <val@invisiblethingslab.com>,
 Ariadne Conill <ariadne@ariadne.space>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Juergen Gross <jgross@suse.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: <ce114f02-f45e-4638-84ee-a8fd86ce1c5d@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1774866325-BB29A9D1-F81F165E/0/0
X-purgate-type: clean
X-purgate-size: 5519

On 30.03.2026 12:15, Teddy Astie wrote:
> Le 29/03/2026 à 19:32, Demi Marie Obenour a écrit :

May I ask that the two of you please properly separate To: vs Cc:?

Thanks, Jan

>> On 3/24/26 10:17, Demi Marie Obenour wrote:
>>> Here is a proposed design document for supporting mapping GPU VRAM
>>> and/or file-backed memory into other domains.  It's not in the form of
>>> a patch because the leading + characters would just make it harder to
>>> read for no particular gain, and because this is still RFC right now.
>>> Once it is ready to merge, I'll send a proper patch.  Nevertheless,
>>> you can consider this to be
>>>
>>> Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
>>>
>>> This approach is very different from the "frontend-allocates"
>>> approach used elsewhere in Xen.  It is very much Linux-centric,
>>> rather than Xen-centric.  In fact, MMU notifiers were invented for
>>> KVM, and this approach is exactly the same as the one KVM implements.
>>> However, to the best of my understanding, the design described here is
>>> the only viable one.  Linux MM and GPU drivers require it, and changes
>>> to either to relax this requirement will not be accepted upstream.
>>
>> Teddy Astie (CCd) proposed a couple of alternatives on Matrix:
>>
>> 1. Create dma-bufs for guest pages and import them into the host.
>>
>>     This is a win not only for Xen, but also for KVM.  Right now, shared
>>     (CPU) memory buffers must be copied from the guest to the host,
>>     which is pointless.  So fixing that is a good thing!  That said,
>>     I'm still concerned about triggering GPU driver code-paths that
>>     are not tested on bare metal.
>>     
>> 2. Use PASID and 2-stage translation so that the GPU can operate in
>>     guest physical memory.
>>     
>>     This is also a win.  AMD XDNA absolutely requires PASID support,
>>     and apparently AMD GPUs can also use PASID.  So being able to use
>>     PASID is certainly helpful.
>>
>> However, I don't think either approach is sufficient for two reasons.
>>
>> First, discrete GPUs have dedicated VRAM, which Xen knows nothing about.
>> Only dom0's GPU drivers can manage VRAM, and they will insist on being
>> able to migrate it between the CPU and the GPU.  Furthermore, VRAM
>> can only be allocated using GPU driver ioctls, which will allocate
>> it from dom0-owned memory.
>>
>> Second, Certain Wayland protocols, such as screencapture, require programs
>> to be able to import dmabufs.  Both of the above solutions would
>> require that the pages be pinned.  I don't think this is an option,
>> as IIUC pin_user_pages() fails on mappings of these dmabufs.  It's why
>> direct I/O to dmabufs doesn't work.
>>
> 
> I suppose it fails because of the RAM/VRAM constraint you said 
> previously. If the location of the memory stays the same (i.e guest 
> memory mapping), pin should be almost "no-op".
> 
> (though, having dma-buf buffers coming from GPU drivers failing to pin 
> is probably not a good thing in term of stability; some stuff like 
> cameras probably break as a result; but I'm not a expert on that subject)
> 
>> To the best of my knowledge, these problems mean that lending memory
>> is the only way to get robust GPU acceleration for both graphics and
>> compute workloads under Xen.  Simpler approaches might work for pure
>> compute workloads, for iGPUs, or for drivers that have Xen-specific
>> changes.  None of them, however, support graphics workloads on dGPUs
>> while using the GPU driver the same way bare metal workloads do.
>>
>> Linux's graphics stack is massive, and trying to adapt it to work with
>> Xen isn't going to be sustainable in the long term.  Adapting Xen to
>> fit the graphics stack is probably more work up front, but it has the
>> advantage of working with all GPU drivers, including ones that have not
>> been written yet.  It also means that the testing done on bare metal is
>> still applicable, and that bugs found when using this driver can either
>> be reproduced on bare metal or can be fixed without driver changes.
> 
> One of my main concerns was about whether dma-buf can be used as 
> "general purpose" GPU buffers; what I read in driver code suggest it 
> should be fine, but it's a bit on the edge.
> 
>>
>> Finally, I'm not actually attached to memory lending at all.  It's a
>> lot of complexity, and it's not at all similar to how the rest of
>> Xen works.  If someone else can come up with a better solution that
>> doesn't require GPU driver changes, I'd be all for it.  Unfortunately,
>> I suspect none exists.  One can make almost anything work if one is
>> willing to patch the drivers, but I am virtually certain that this
>> will not be long-term sustainable.
>>
> 
> There's also the virtio-gpu side to consider. Blob mechanism appears to 
> insist that GPU memory to come from the host by allowing buffers that 
> aren't bound to virtio-gpu BAR yet (that also complexifies the KVM 
> situation).
> 
> You can have GPU memory that exists in virtio-gpu, without being 
> guest-visible, then the guest can map it on its own BAR.
> 
>> If Xen had its own GPU drivers, the situation would be totally
>> different.  However, Xen must rely on Linux's GPU drivers, and that
>> means it must play by their rules.
> 
> 
> 
> 
> --
> Teddy Astie | Vates XCP-ng Developer
> 
> XCP-ng & Xen Orchestra - Vates solutions
> 
> web: https://vates.tech
> 
> 



From xen-devel-bounces@lists.xenproject.org Mon Mar 30 10:26:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 10:26:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267403.1556905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w79p9-00029U-4O; Mon, 30 Mar 2026 10:26:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267403.1556905; Mon, 30 Mar 2026 10:26:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w79p9-00029K-1U; Mon, 30 Mar 2026 10:26:23 +0000
Received: by outflank-mailman (input) for mailman id 1267403;
 Mon, 30 Mar 2026 10:26:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w79p7-00029C-KP
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 10:26:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w79p7-00DvHb-0O
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 12:26:21 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69ca4fab-2eae-0a2a0a5409dd-0a2a4501aba4-44
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 12:26:20 +0200
Received: from [209.85.221.44] (helo=mail-wr1-f44.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69ca4fcc-6400-0a2a45010019-d155dd2cd072-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 12:26:20 +0200
Received: by mail-wr1-f44.google.com with SMTP id
 ffacd0b85a97d-43ba1f3fa7eso2359950f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 03:26:20 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf2580168sm18583494f8f.36.2026.03.30.03.26.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 03:26:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774866380; x=1775471180; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=17Kcb2XUd8/KzrosOnGNWx3h62rPb6UJ3uwrFR0DmAE=;
        b=JhyWxRMTQKY+gFAz6cN1kRn8poGdlsE1iPex1S9Wb0VLtOBlIYfE8xr8zI4IvYnGsl
         HCXIKWhVBEI+YtXNuP1idHLUelFRGLTI6eqS1IiYNowbccJmJAcvd52gSQRwu9u2UO8W
         UeUh3jqdYR0xXmcZVoC5YxNy6FOQfVlx5PCyNB30UL1DLR/+WT3oH5VdVt0oysopJ3YC
         PHrIhPDPBw0PAptp8Sj6n0KPJNkm/yB2vAg0MMpp4HWk3uyHjCrXEqK/rSj2YnYPKFA1
         er1MLzc6h3olQJyFijAgW6N/mMj+sq2HjeUMIRgzray5D3Eoq1nuabuNKKhjdjsf5xal
         8Vlw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774866380; x=1775471180;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=17Kcb2XUd8/KzrosOnGNWx3h62rPb6UJ3uwrFR0DmAE=;
        b=VZQWmKw3JcKcnM4xEN72HbQamt+M0dHM5tcFaJUHmibhoNVR2xpylICHlaXo9LlU+a
         eo3hDHBuqu5yvdF1M5m/yPzWybXqjoY2d7A8Xu9SBHCJfZO2S6kExWFzphVC+VOWuKZ/
         knxhhrlQK4IF5orBFupB+Bc6yCBDy7Sp/jx2ejtWN9pmD20glZEudF6JTL9gzhHY2PwS
         HLpKJN8xehpfcgh30wRbeG3RBrqXxYnKxOcjHWvpLp0Tq2ObPOQdg5Ji1eqj3V73lwHZ
         8D4FzoHV119e/O/b47kjXDJYnBlBdR5Cd9G4nQaasw7/qDkNZyiAB9hZ0DC2iKE8eeE2
         6WZg==
X-Forwarded-Encrypted: i=1; AJvYcCUpdoZBUww59YZcr3XZ7nz+UfXSFvpi1TBxpvXhwab8HelBMghf9kW669DyFRGh5wBO6v/37xwrS4c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyJSqwwIcyeql/OvcA8z/bV3lQ1U8M3ySmztwuQ8FdK1Ebgl92i
	KZSVZ4GtrHExYk678h+Pvb3CUXA9PccEzuRCiVHu+1yno9nkZJxsN35UEaWiMqFNbg==
X-Gm-Gg: ATEYQzxPmSHp9s6zRLklG1YlYPLg4i/m1alGpvOy+jYyk5uakuo+QVLsFU0uVjmOSyD
	1dXuXWY20opKBNhp7c4p0xSegmP3x98Yffk9F1B4WMTjwBRJumSe8lAukzE9amG3U4IQv1Nzq5C
	kcMYnd2bFjkoTU1Oco/UA/Zmghoh7mKRPdqrK5y5avMLbFwI5dW5IeNeVw7I0+2ungWlDh9O2Qc
	U+Mbci7B7/oWzlmA6DT1ldlHvnfSO15UoZHwc3Sk0CpTJaNvbljmqyzkER6FknVMmttIf5+r1Ph
	jaTlG8NCQKiobABVLyHtQp2RbgkwM2YJeflLmDHPgSTEWsW6A5LpYegh/C9fCigVtAcY491QoLZ
	n8c2Ud4ogbgQ1Be6WLaRxymsC7mAxQcCk4Jv09proPIhvJUNm3jvvxg9nVIuWsYPaDJsMNb+gGX
	F74p9WNoUJeEmRSO6zlCBKjpvUp5aujaCPcaT9eOrhYqdKewvV56q7OGShsqDxz3N9Q+qUtVjQp
	VkkXPVoLgsU1ro=
X-Received: by 2002:a05:6000:40db:b0:43c:f8b9:1d12 with SMTP id ffacd0b85a97d-43cf8b91dafmr9944663f8f.39.1774866380223;
        Mon, 30 Mar 2026 03:26:20 -0700 (PDT)
Message-ID: <2572c45b-1b9f-4081-b653-f95d5de1eaa7@suse.com>
Date: Mon, 30 Mar 2026 12:26:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] xen/uart: be more careful with changes to the PCI
 command register
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: <20260327135420.7246-1-roger.pau@citrix.com>
 <20260327135420.7246-3-roger.pau@citrix.com>
 <93a09dbb-0a8c-4eeb-b544-c9409b9f85ce@suse.com>
 <aco8-8hc5xJCZeal@macbook.local>
 <ad18bddf-9cc5-469c-8b8e-d5cf39840660@suse.com>
 <acpJDODr4hXTqDxz@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <acpJDODr4hXTqDxz@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1774866380-8E4E7DF3-8C58288E/0/0
X-purgate-type: clean
X-purgate-size: 2261

On 30.03.2026 11:57, Roger Pau Monné wrote:
> On Mon, Mar 30, 2026 at 11:09:10AM +0200, Jan Beulich wrote:
>> On 30.03.2026 11:06, Roger Pau Monné wrote:
>>> On Mon, Mar 30, 2026 at 10:00:05AM +0200, Jan Beulich wrote:
>>>> On 27.03.2026 14:54, Roger Pau Monne wrote:
>>>>> Read the existing PCI command register and only add the required bits to
>>>>> it, as to avoid clearing bits that might be possibly set by the firmware
>>>>> already, which might put the device into a non-working state.
>>>>>
>>>>> Fixes: f2ff5d6628b3 ("ns16550: enable PCI serial card usage")
>>>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>>>>
>>>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>>>>
>>>> I would have preferred if the description mentioned the particular case,
>>>> turning this more into a workaround than an apparent bugfix. 
>>>
>>> It turns out that the console does seem to work fine, even with memory
>>> decoding disabled on the device (as expected).  I've updated the
>>> firmware in the meantime, so I'm unsure whether that update has
>>> changed the behavior of the device, or it simply was some other
>>> instability that was causing the issue in the past.  This SOL AMT
>>> device is not reliable at all I'm afraid.
>>>
>>>> As mentioned,
>>>> us driving the device generally means we're free to do whatever we want to
>>>> the command register, as long as resulting device state is consistent
>>>> overall (or else we may indeed have a non-working device). Having to keep
>>>> memory decoding enabled in order for I/O ports to function is pretty
>>>> clearly a bug in the device, and hence us "violating" that requirement
>>>> isn't really o bug of ours.
>>>
>>> I think given the fragility of some of those SOL devices it's best to
>>> limit the number of bits Xen changes, as to having a bigger chances of
>>> getting output working.
>>
>> That's okay(ish); I merely would wish the patch description was less
>> suggesting that Xen was actually buggy.
> 
> What about if I change the title to:
> 
> xen/uart: avoid clearing PCI command register bits set by the firmware
> 
> I think that's clearer and less blameful?

Sgtm, ideally also with an explaining sentence in the description.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 11:30:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 11:30:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267422.1556913 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7ApI-0004Kc-M8; Mon, 30 Mar 2026 11:30:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267422.1556913; Mon, 30 Mar 2026 11:30:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7ApI-0004KV-JJ; Mon, 30 Mar 2026 11:30:36 +0000
Received: by outflank-mailman (input) for mailman id 1267422;
 Mon, 30 Mar 2026 11:30:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w7ApH-0004KP-5y
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 11:30:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7ApE-00B5T8-IK
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 13:30:34 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69ca5ed2-bab6-0a2a0a5309dd-0a2a450ad510-40
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 13:30:34 +0200
Received: from [52.101.57.43]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69ca5ed8-1772-0a2a450a0019-3465392b3c4e-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 13:30:33 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV9PR03MB8437.namprd03.prod.outlook.com (2603:10b6:408:375::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Mon, 30 Mar
 2026 11:30:31 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9745.027; Mon, 30 Mar 2026
 11:30:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GWYOXYsaP2DRjYyVtQRJ9Z9+3lkdgnd74+LcGCGnwJ+dk7mgGGdTJpbKRwxJpmCsb/NVSVvqI6//F3BZ/mO3kNQpQ9cCee+Wtx6fGUJnSRPgAZrX9gCMaMJlArpC/YbW5Eq+S7WEOhrBZs8ZR6G0+INSGZkd/u9bo7YG5h//1L7b1xZrtHcaq1ZC4bvfd7ihXuupisQnvRs0rfTieDP/UTOAKbzA3PQDw77nGlhILOitNeFkU7qPq/JA6rQAVtBNwI9WUh2RjZsgxxCxlmiqPGOorA0v+XFmTOOU6AaLzLaXmJkdNZySrQsrbVV+Vsgwmw3pFYrGIg2NxV8NIsf9RA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YKaciZHHuvlMpBgEFguwrZbjb6za9/FhxbeiKIO+mSs=;
 b=q+AJwRC/KSiyp4ZeNSFsXa07rZgD5stCO956kCEN7EhifyNT4vEIGK/3opKs+wZYijO9bysGwW2aIXf8s0M/rqML+Hqkw+U1vC9BewsMEcNCqFq7zaV6MaMfjg1grkY/yCVs38YaWblkUIMNjWhazkYEhPrbPa/+OZTEBohcAyyC6zc9gVM2+JjksYwVT0v/iooP35HntdaHvTume+wSl6BYqnJ3l4+SYe8niwBthP/4LlhRkv3C8oKpP+hjT8l8M2WFByNz8zA2Q7zGWIeUqYJ8Mjq6HbU8RDMmWkZPJD4GycU7orKz/UGdvKKyBIhfAxjtsxUjBJkXG6w44lMFMw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YKaciZHHuvlMpBgEFguwrZbjb6za9/FhxbeiKIO+mSs=;
 b=uoYYm5OJvVV2nhIWvC9bbF0+Jc2uxf8nY9EmzEj+YYqlGfGYZ6sDDNsy+dOhd7UifWRIs0fGi++8pTuMKJhbpa3kBnOWYxzOCQj55NTtp8uBUxYBV4qXxEVzO4FlOQe0XwpoyQvMamtcAr+SKTimuTtBDOHquCb2IJq6TN/zEAk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <fa553d9d-ac4f-4ae0-a93d-8d34585d17f7@citrix.com>
Date: Mon, 30 Mar 2026 12:30:13 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Kamil Frankowicz <kamil.frankowicz@cert.pl>
Subject: Re: [PATCH] unlzma: avoid UB shift
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cb5ad24b-03a5-4c1b-9d98-8df534854b2f@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <cb5ad24b-03a5-4c1b-9d98-8df534854b2f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO3P265CA0028.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:387::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_|LV9PR03MB8437:EE_
X-MS-Office365-Filtering-Correlation-Id: aeaf500f-bf81-455b-6c57-08de8e4fbfaa
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	BwLSJUeyPIdONFZSkLTc+JQOzSriFV9wrmuTVQcivxJcblyOmcs99Pi47RI060gIHmSELG6M5d1w4rEOQVkn0XdnGobFgJkwdNfVMJREAsc8whttWXbEtYgSuzjxekF47jJOKr8YlcfMRcweuGTVjlMte2lSaIMeJKm8hCrw5/6fhkq8BBv7gDhgvyjW5y+Kr33ZLhZ3N0l/tzwNBHzxnZHFSz799UqQcmqP4iEYq0J6oZBqWYtTiFEz3KnlZL2JrepX2va1N1iv7elSQtI50D/QZ7CJav5NjIK3Z9Z1KYyTtqrV38J/KeO0COJKNGRghZNhldwyXT2egPO8tXru6yu2dsaP0Z8FmfCyw7szbSpluC5XLNLVm3I5UinnwkZk+CzY67SrQK4BRFe/IAOp4PlvIJAi+NN7k7eyM9HRkR9OZFdwVicdApDoI9I6C3QmUqClb1ssHaPO9B+aJRDsg4DquIILYnxxqNZqhPEgGs3M/1LJwjz596ZhLs4P4YCJ0TqKyptbebljIa2pXJOWrsNOe1gqW2raYdzGTfFHuH2v8XkOI1TwQLBpLFQ/ukrYhZLeU+leqzNS5PM3VNBsISI8Ww2Sy+v4OTzCuByBHlTup240Bn+rwA9rXpKVw2W60x4TO3dlHL20ep+eaHik/Vfm8GMXD4D/RpcxhSYuxYntIwN9Z4+UAwNNavC0aEdjPpvIsP9Xe4rb5usvGN5xLjTV5tK74itB/bWGBBDcbYM=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WGlYQXgrQTFpVE5CK3YyRWhzU0IwalhwQndIaTZLK1RuUFdwUjI0QUFMRDJE?=
 =?utf-8?B?dUpTb250ekxXUkxGRS9VTEpjNEhKSUlVak9hSk1zbUZOOExVOUJYSDdQT01C?=
 =?utf-8?B?bzlIVlhrd2dsZUt3RVNTUG91TUVBQVJ4OVRSS1JMTHJGcU9NUmFnckFrT3pl?=
 =?utf-8?B?bjBaSG9OUkJac1dWQmtiemYvZXliTWdTZ2NJd1ZvSjhmWWMwRnFQK0Q3bXNu?=
 =?utf-8?B?QzE0YXZ0enJ3NEZZVVMySktDMnZ1UUhzelYyQXB4UU5vNTBPTjlGQ2tlSzEz?=
 =?utf-8?B?di9FSVNTWGRZOGhtU2dYY21XRDc4cXJJd2M3K3VaTXZhZHMrd0FFOFVqVm9E?=
 =?utf-8?B?eWYvNC9nVVM2VVpWcjIrdWdqVHVRcnJaWGFqSDRpVXRXN1BCV0U1MVhBUS9Z?=
 =?utf-8?B?Qi84V0gzL0hrLzUxL0NhVXJMMEphdXFIdEVUZWNhNXphWEl5cmVxeWFSRSs5?=
 =?utf-8?B?SmdvbUszYlRaMVBiK2tkdHFjMlJyTExpRStoS0V4YkNseHhISEFpWWVFUWNl?=
 =?utf-8?B?R2RYQU56UUdPOC84dDY5M1cwbThnZzhnRXNVNGtBdXBaeVhYaGxVRW55blYz?=
 =?utf-8?B?dS9OK3ZtNEMweEZnWFM3ZTBPZDhTSUUxVXg4NG4rTXhRcWlSbGM1VUlVTUNn?=
 =?utf-8?B?ZHlBRnc3ZXp5WmJWcG9pTDk1SnZrU0MrbGNGaU1pTlNoRTA4bWg5d1NBdm0x?=
 =?utf-8?B?dVlENGt0a0srYno0Vm5mRE1wbUVSSUV2MEcyRmRrTVVtRk1PaTE2WlljQ2E2?=
 =?utf-8?B?YWRFUE5xdEJKTkhBdXFya2sxNWd1ZHh0Vk9RaXFRK1NubnpHZmRxWjRmTnZU?=
 =?utf-8?B?UGJQaXdxQnBLM3VtdlNQRVdIQllPMmZQYUxvQ21jVlZaT0ZZbXhFb29zWkhZ?=
 =?utf-8?B?VFBLcGJiVzRJL1d3M0M1Nmk2MFNDZEZWVG9DTlhETDA0dEs3dEw0a2NlQjdL?=
 =?utf-8?B?QUkzSU9oWktTa1QyL0FmVmllRHRTR0JrTnVhRjUrY2FRZGhKNXYydG9nL0Nq?=
 =?utf-8?B?anM4eGVNM3hERG9wRkNmZ3VQSEw3SnFUZmRvQ2pqaGFxd1c3N2RhZy84b0ZM?=
 =?utf-8?B?NDRiQmViMFdxLzNvQXJpaW9CQWd6bFRvY0FpRlpLaGVnOXh3RTc4TTNTcDNC?=
 =?utf-8?B?clRXY1hxR1J2bU43SWVIVnF3RVJUNlcwODBwb2RwbVQ2Z3ZBa2dBTlpvNHds?=
 =?utf-8?B?UjVnVTdOT1pTbW5UL3pnTktBRk05Q1dLV0ZGb0YwTzArRTd3UEJ4bmVJa0Zj?=
 =?utf-8?B?WmczcWZzTElDVzlRb05MWFA4akFld21qRmhXKzlTSVRqeVoyYkNZdFcyWm9C?=
 =?utf-8?B?YkZWZXRMeVFJSUxOMHN2T1kxdVV6cjZhS0Vya2lpZEZrK2dycVNVQVYyNHV6?=
 =?utf-8?B?bjBBdjJXOEZpZm9EbEV6QTdiY2ZrQW9pdUdpNitSQVBXS1lJTk1pQVk4TkZT?=
 =?utf-8?B?Mmc0THZqMUF4bkRuaFVuOXhoNFZSNGhYMUZuUlRIaUNIcFlmQWhBMnd4dG5V?=
 =?utf-8?B?YjFCZDA4S3NlTjNFZU1FSTJocEZyWUswajBscVhBOEd3SFFCbUxVRHRVMFZu?=
 =?utf-8?B?RjhHclpzeHNrQUdqeitpSjcyN1dzYitLT2FHbmx0azl2YVRCMi91R3p1dCt6?=
 =?utf-8?B?NWN4UlpjaE4vL0hIYkpUVU94OE4zUGFQRmdsZGtkSjJqUThRNkg2UUYwVXJl?=
 =?utf-8?B?T1EwdGRVU21xeVg3YkpLTkhpckc2WUlaTUpkRFoyMVJXaTM4VkpsTGNuK0x1?=
 =?utf-8?B?ZkZsaGFCV1Q4cnpYUEE4Z3RhbElDNTR5MlNGVm9iaFBhTFJaT0xKTXlvd09r?=
 =?utf-8?B?MVZ1ZndpRU1MUkVVZHR3c3FBQklSNVJHSmx1UW1JOHFCTlNnY1Nvdy9mK3ZM?=
 =?utf-8?B?cGl0OEJXczcwRTd4TVF6VFQxbHFiTFJ3MlpsaXVEM1VBWGNza2FrNjRScGxm?=
 =?utf-8?B?NEErMHNOUE1EeCtZZTlMMXRFN2tLZUtoQm1tN3lLOFRIdXIxQklFdFJRMWpp?=
 =?utf-8?B?UnZNZ3N1Wm9NTVNBdlZiMVQ4ZlN0RGF3NGEyekNZM0ZmR3piTmFGK2xxSGhL?=
 =?utf-8?B?aml3QU5ydEJUMW5rSCtzN0tqOXAzQjNNU3BTa0tibmNvR3VtWm5ZdVlvenZn?=
 =?utf-8?B?UmZDaTgyWVQ3WnNHY0lFUkZsSkhHVHpETjFSQWFRUGF3WDlNRUNyZUg2VXdU?=
 =?utf-8?B?OXdqMWlDbzI0bTNIblh4eGJLakdqK2VjeFJicXh3Wm9XRWJySnRLaCsyZXVH?=
 =?utf-8?B?ekVhb1FZamFUNlVDbnh3MTBPMnY4TnpDcUtMcGRBNXhmMVpFMWtLSy91bExV?=
 =?utf-8?B?UmRFc3QvUzNwNG5NTGNQTDc5ZVVuRnpnS2dDZXRKS01JWTdoRjcyUTlKa2wx?=
 =?utf-8?Q?CJOIkWQfS0d1033E=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: aeaf500f-bf81-455b-6c57-08de8e4fbfaa
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Mar 2026 11:30:31.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: LpkyRufgH0YNwKqs575sFdbKEZxLorKPQChYuyWHHiPNXchXJC0uNSZx0HDHnmsKXDL/sNIDbSFfexZTIGZ69yTMbrvHPcHpCtqBNP0Fq4E=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV9PR03MB8437
X-purgate-ID: tlsNG-4011c0/1774870234-BC681900-7100F389/0/0
X-purgate-type: clean
X-purgate-size: 428

On 24/03/2026 3:26 pm, Jan Beulich wrote:
> Shifting signed quantities has restrictions. Since the wrapping macro of
> read_int() type-casts the result anyway, switch function return type as
> well as the local variable to the corresponding unsigned type.
>
> Reported-by: Kamil Frankowicz <kamil.frankowicz@cert.pl>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 11:35:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 11:35:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267434.1556923 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7AtX-00052l-7d; Mon, 30 Mar 2026 11:34:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267434.1556923; Mon, 30 Mar 2026 11:34:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7AtX-00052e-4k; Mon, 30 Mar 2026 11:34:59 +0000
Received: by outflank-mailman (input) for mailman id 1267434;
 Mon, 30 Mar 2026 11:34:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7AtV-00052Y-NZ
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 11:34:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7AtV-00GKjD-3S
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 13:34:57 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69ca5fcf-e002-0a2a0a5209dd-0a2a450689e8-38
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 13:34:56 +0200
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69ca5fe0-3034-0a2a45060019-d1558035ac48-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 13:34:56 +0200
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-486fb439299so39840755e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 04:34:56 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48722c9506dsm263601925e9.7.2026.03.30.04.34.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 04:34:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:Autocrypt:Subject:From:Cc:To:Content-Language:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774870496; x=1775475296; 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=CXRCZYhfiOXMyDaM8umPhi6xsmZXvlmdqNRfyyJ8Sho=;
        b=bjmRlY2TzjmYlTZjLRv7B9h/SiO/xcSrUVJZoPIv/u8RjhRqXGtOsnHyMIQVGMenjZ
         kjbGwRM9Sk2NXN1bOQRhQ3WswXsNbzF79RlOzcnZY98buwnpW3OExbi8M6d0lIj3kXeh
         XCqDxtORql1VPTIeBxIy4ReXsebcWtP+ZBcmH81FGM8OxrCQMDk9SxozwRi2qZ8oHR1W
         ljg3Vg+mcR/efIHgersVgctKqNybnlHJj5VqQZ82+2fPZhzdiG2i8Sp789cMvelBrCwT
         Sj+c+Vutlu7pgwXlXNff4l2TMqz7SOsGB0hnolrRoiwlVdTdY/a+IK3iuZ0LJgUxAyBZ
         qP9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774870496; x=1775475296;
        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=CXRCZYhfiOXMyDaM8umPhi6xsmZXvlmdqNRfyyJ8Sho=;
        b=ZfdZt1F4q60oXA4ooeztCWhlAeH3Kb24gUkIUxpvJF8iNUi+MqXWF1sllfnV7X2RSS
         tGS+4W/AIzEiKCKb7atte9Nk4IhkZWnY70ZUIwQeckOaasJfvaYs4Xk/hfOAGYVcdk/U
         nU8kpSkFWBGmUJg32KkZXZWOHNnp2W3DXK7O1pa78jatpJQoZDliw70sSb43B1mLo36l
         BR2cmTJ8OigCDjsbRLnSgljLJfl1f6EoCtPD3SA1fEkxmxlJHxmiqtixfqzQhkVd2nik
         ZyxZgbv6NLCb/cSKIZZ+ffBDuDv7B4Uoq5ztNTQaAxeYg7aCViDf767aSVtEhLdX8H5H
         sqLw==
X-Gm-Message-State: AOJu0YzBHB0e1ZDp9aB2lTSck/e/sHkIkwAOz5corHr8ox07K30yVMrZ
	rCrEp1fwmISILVGXDGDyiFbc0ptlaKRU0nrOHW3gFf32c5riJTm4nRo++IHgXPoRAHp8iQR70bB
	v+tmn/A==
X-Gm-Gg: ATEYQzwuUhCawkpLyrtssmjf+If55m36McAzU3W8+1m99YlIB7jPA6XyD6YIty9Ij6W
	K89YfJYvmLoCw0rBAlaC/GUWG5MLcJFoG/CDxL00+zMLgHUHC7CgPYLvlAhbEgOkG6RLt1k0Tr3
	OU8HHTy9pSnf8HIRJc7pNTVMKve0s0R5UhGjvnmsgnXZDU9Crt3FkKWtITWsAaMmlGSMDIeDJhY
	Evh8V7gMIBnfJcvBDYwpLLkywp9wuGz92fNxqRFnBvvGLSu4hpFTSW99yt6ZhM1Ifm9AM7tpRtH
	UtVadPCKQdaEw1l1k4T0fJARSzvmEAOUbQbf09zBOB8aW17y8a95ynl3aERIMhQCmINu0XNEK0t
	gmhg73DjKfyowxUYdGxD4LHvD9cODHWqusgKT4DhD6MTLgwzG5mG6ONrcuZP9X9yuw1rMkSPZ9x
	L7jLbqMlY8rNRSkrC/B/N6+tcm+M2SdbG1ie+7QjbSC/sYRfDGEXE8oH/2SGpRjaXkyM9f84OV5
	1fM8KYAEtGYXWqvJJ653/F9IQ==
X-Received: by 2002:a05:600c:4743:b0:485:3d3e:1675 with SMTP id 5b1f17b1804b1-48727f0e5c7mr185765645e9.8.1774870496365;
        Mon, 30 Mar 2026 04:34:56 -0700 (PDT)
Message-ID: <0ba80bf0-e786-4e17-936c-0b769194d369@suse.com>
Date: Mon, 30 Mar 2026 13:34:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, 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] common: move safe_copy_string_from_guest() to 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
X-purgate-ID: tlsNG-16d1c6/1774870496-785811C2-5C26E525/0/0
X-purgate-type: clean
X-purgate-size: 1720

This function is unreachable on x86 when XSM_FLASK=n, and it is another
good candidate to put in an archive.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
I question its behavior: If the guest supplied string isn't nul-
terminated, imo the input shouldn't be treated as valid, i.e. no nul
should be silently appended. This would then also eliminate the order-1
allocations which will result here if exactly PAGE_SIZE input is provided
by a guest (all callers passing PAGE_SIZE for max_size).
---
 xen/common/Makefile                            | 1 -
 xen/lib/Makefile                               | 1 +
 xen/{common/guestcopy.c => lib/guest-strcpy.c} | 0
 3 files changed, 1 insertion(+), 1 deletion(-)
 rename xen/{common/guestcopy.c => lib/guest-strcpy.c} (100%)

diff --git a/xen/common/Makefile b/xen/common/Makefile
index dac8b711cdd3..6018e256147f 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -16,7 +16,6 @@ obj-y += event_2l.o
 obj-y += event_channel.o
 obj-$(CONFIG_EVTCHN_FIFO) += event_fifo.o
 obj-$(CONFIG_GRANT_TABLE) += grant_table.o
-obj-y += guestcopy.o
 obj-y += gzip/
 obj-$(CONFIG_HYPFS) += hypfs.o
 obj-$(CONFIG_IOREQ_SERVER) += ioreq.o
diff --git a/xen/lib/Makefile b/xen/lib/Makefile
index dcef1610b2a3..933f6d96fbb8 100644
--- a/xen/lib/Makefile
+++ b/xen/lib/Makefile
@@ -6,6 +6,7 @@ lib-y += find-next-bit.o
 lib-y += generic-ffsl.o
 lib-y += generic-flsl.o
 lib-y += generic-hweightl.o
+lib-y += guest-strcpy.o
 lib-y += list-sort.o
 lib-y += memchr.o
 lib-y += memchr_inv.o
diff --git a/xen/common/guestcopy.c b/xen/lib/guest-strcpy.c
similarity index 100%
rename from xen/common/guestcopy.c
rename to xen/lib/guest-strcpy.c


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 11:59:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 11:59:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267452.1556959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7BHh-0000pe-AF; Mon, 30 Mar 2026 11:59:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267452.1556959; Mon, 30 Mar 2026 11:59: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 1w7BHh-0000oS-4E; Mon, 30 Mar 2026 11:59:57 +0000
Received: by outflank-mailman (input) for mailman id 1267452;
 Mon, 30 Mar 2026 11:59:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Mykyta_Poturai@epam.com>) id 1w7BHf-0000HC-Cl
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 11:59:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7BHe-00CdRq-Oc
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 13:59:54 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 69ca65af-bab6-0a2a0a5309dd-0a2a4503af12-42
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 13:59:54 +0200
Received: from [52.101.70.120]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 69ca65ba-1947-0a2a45030019-346546784220-4
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 13:59:54 +0200
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by GV1PR03MB8639.eurprd03.prod.outlook.com
 (2603:10a6:150:95::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Mon, 30 Mar
 2026 11:59:52 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9745.027; Mon, 30 Mar 2026
 11:59:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hIc499sFUw8lkh0bZ9WPSTPEF/tZbScmczs5jRBtBQXZYHpb7WPfRKFzqbDZ6JFmUsdT4sZshblvXnbsYza5WWt7XjlkUOAnElEAwGukPjwcYDjE4fdqMtWi4yaqCLkPHdF1cTOilVaeLebFUNM/WSMA/Y+T6vY/jygc8/Sj5uo+7P8Mvp6FZR6IDuDpMSjyBPTb9xpw0XW+u8Cxcw1B4XmOB6o7vLEjlwULV+uJFhN7DFOL5BxS4Vu9sRnuIFph4fjMM35kT0W1Xrj+cxplc3xeXCemheQPXMVn8iKs010r93Vi1BqmjrgfURrUEAer+tM35p17OzFk9xFp0PtqpA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UVva9UsjGtzKa4kTaxsRcqz3Xro518EwThLU9bHiHLQ=;
 b=oaIwkaXabe6VckHHSaH6mrkZ2P6WFkYm2l8trGBDSaPOKEEVtOtoDKiJR/T/mdUvG9ELXvccr8fJHGs+pDesQd4QdSaq/0xYrUk6eRu/3ik4xyflHabrKF9X17ZVfcp8oIUzQF7Z9ZEvroprgzw2SWIo0NxFHpg981SYJ2Cp87QC0DJPrqSAACiI4JoLCRYJMda3yqclDe9inaWhGaVJ4OfEzI8VehtBkStJ6MbDYoPEkSKJdIVy0ioOXlKIEDJpt/R92A4AHLn7C1i2FTc6ltegXwFjk1+ei8pv3ZcHBYSFinc4lIbToydoZADOtHOzFJ4DNyD+Zs501/qxhh9TDg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=UVva9UsjGtzKa4kTaxsRcqz3Xro518EwThLU9bHiHLQ=;
 b=VyiCBU3WxecZXxOV+u6HH58eb8bIXiu3ksJ5dhDx0qzUlr2TRdq6sjss2uo+MkKiHYfGbUmMmx/5aRyYC17aTLeZUqRCal7Yby7b3gmP+KXkjHiSpM2rVSbyJwSdYaGdY0vn2ZwklJlMTVK3olxFQ2qcy4zXzPP2YtPcWi0QLPGmy9zYMGrJU48ep5NTHZuwF/Lq/LLYN0hZP8i81RniNPFOd3iFU4wW72PNVGqcySNZb2MHNRdwZgw0bJB+C5nO1TCw9vJs2f9EtAdpaFJ5BYfdMImykK1XUdPUihV1Pgkga+icsHPWXtgMoqln/ufH+nMbUZJRG/TvvV561azzqw==
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 v7 5/6] tools: Allow building xen-hptool without
 CONFIG_MIGRATE
Thread-Topic: [PATCH v7 5/6] tools: Allow building xen-hptool without
 CONFIG_MIGRATE
Thread-Index: AQHcwDy3LJnr4T20vUWAas874pXmiw==
Date: Mon, 30 Mar 2026 11:59:52 +0000
Message-ID:
 <73db845e6617130966a565cdca6274db4cb46428.1774871881.git.mykyta_poturai@epam.com>
References: <cover.1774871881.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1774871881.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_|GV1PR03MB8639:EE_
x-ms-office365-filtering-correlation-id: a55796dc-0cfa-40eb-83a6-08de8e53da0b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|38070700021|22082099003|18002099003|56012099003;
x-microsoft-antispam-message-info:
 Nf361VG/sV0FUImvp1vegKN61Dz8HAKlLKRNyVnOK5cWaosrjE4TRY8z1pVG3DC0rxn0Rw14J7+LbjAyb8A2l5NifFT91sODAtaVY+IslGMNmoqu5ZfqxnFtGC84kUy50c3b37EmsGEEPzaJesVoTkOX6zYFDlHjZaqFBMlLbBbRAPfWy+FL94pty6BjTA51qTi3pC1/91a7aEhjrC57Bzq8LaTPp0Uy8AdeduMCSFNlEG6tGZYIsLCBt06aZ4MTCB++C4juPgKPiI0ltfrmkGvw70InDhBsWY3GsNgibk9OUh/Ic5rTynSVVmoKapxbe9Z3aiEpvaiazmYeCbkEgYb/d5/Yw9CHYt/RjBUnVdMchz3Avng6jdexJP9uNGmhbzJU08xiN6a2vShqjZ7MGmRHJXbyJsCDqBlwc6oh5I7JIf6zYSqPXB4Incf2ognHzhhXY0rtPlWZb0QEbCvja+EiH4tdWS52yGtiXpwLT4DHPQRaB2cO/oPLylZHOkPJRxRxY9WVl8PB0DJJDja0K2Fs/I5ORbIXhkEKtDcskiD7bb3ynHLVmpcT2UwH8Q5wkkM069ykBnm0dJajtsmvEmx1AE/nt7RZ5GAeKLl3AHH3pETEt/1tdtl9Vc4EBCZxf686hi8BByWC79dEzU2qhzG15ZRi8bRlQeV6gBhAGgMH81ejj+OZg+nZGFFn3us7pZg4a4VP9EGt0OsE3i3v4AqCFfMoytg9vy0ptChR5U7ghbcG90LKuiqGBmAq58XAv4T3aZIois9hsIWHah/06NnZaDVVjFtPzn+M0B7JZJg=
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)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?pkQu8vurc0ihZimgWYMKjGaHrjHwWPfG4ouLCLax5yHS2SdmMN/zFk8/7u?=
 =?iso-8859-1?Q?yQPMPPNNGgu8yEW34tKxEQ+sG1TmGZqz+WrDPdIUOhqkhQj2IRyQ6dImdN?=
 =?iso-8859-1?Q?PdyjHfqYEAFSRGcAgFemIKEQtMc111+7mVM9OYL47HNEpHXcKPlM6gdSzc?=
 =?iso-8859-1?Q?Mg09w+VVmVz/+DgeTiqjMztqe/MNnlSMiT6qtierHFfLb7gqd0bEqN6n6g?=
 =?iso-8859-1?Q?PQGQdvB9nLTg1rU+cZ1INe2qJXBt7/S3SOYz6/G7eubEoa8yGefep1/OPX?=
 =?iso-8859-1?Q?1U2Aom/hXQfQyK/cZP8FUdLrhwwOY0+Ok9DLte25aeOsfZ1/Kzrt/R/LH+?=
 =?iso-8859-1?Q?V7J/e8LcnVoZkRhvBUk1inaMqE76fOYTBZzMr6C5y2oEIXvjABHQHxqqMi?=
 =?iso-8859-1?Q?zOT+JufZdBtxZ6LrfxQ4EJculTQo+sx15gb95hm0btm18NIspYxBcLjcXS?=
 =?iso-8859-1?Q?65bap9uwuJVQ6vEXZW8dxDbwHKVOicy8E5O/A+GEx5HRXRqWUb6IOI4bJm?=
 =?iso-8859-1?Q?aPw6sdw/5EVl67PI3P5hXBqxsvzEaGN4apiYzqOJAZSMFgm4sVJmbkTAJu?=
 =?iso-8859-1?Q?+ML//r0c5G6YvDeHXIzkfKcDlCt4auSnaoYKhueQYo9brKtlBfib4uNjm6?=
 =?iso-8859-1?Q?cQMoxhJske+52VCLjyhUnpX+bJbXzmofL+relwWR715w8b+hgEdg6R/29t?=
 =?iso-8859-1?Q?LiDvpWdFR7ArDueMx5W/aSqfhtcK9LBK4w2CZu9BiYmK71eWJCdoyVMvkv?=
 =?iso-8859-1?Q?poE7MPKYJGin5fIVTPhmWnmekeWI2cv5Q6+1sSZtLQxAl0LJW64KBOqI5U?=
 =?iso-8859-1?Q?BIxK9+vF98utuu+z+D3FPMfKPbCsKJKCQQm1GdTea5+HGTCj6lfHLY9QzU?=
 =?iso-8859-1?Q?cVfpvtB63irfGhVUOGDWc48kr/xgDpB9EYSx6K2eCTV1IrtYtH9Gpds3DR?=
 =?iso-8859-1?Q?WpwY/R1EN+8y+9hKPDO4qzje7lz4pnDAFK2nlsCAWartSKZSx/HzOEE9bj?=
 =?iso-8859-1?Q?yONNljgcLy5EbBKL3h5bBOh6bNe6/bqen/fMmwmUoj0QLLzdfPQzo/sBdu?=
 =?iso-8859-1?Q?PUtQzSwp5+RJpb9YPP2AiuDcK3h7mHpCh9XIt+tIwGUulf+xdtM3Dmm4gC?=
 =?iso-8859-1?Q?Bort6sbHwNSA+8CW8C9a2BtqogvVHHArdmp6JKV0INN36uS46y60X3lmT6?=
 =?iso-8859-1?Q?t0FLUZ03w5v/KxwZwcwHJjErXrRKTmfhFfjYonYCrZRCub6zNTTnyXEr32?=
 =?iso-8859-1?Q?8by4kU1NVylBxMWy1SKtGU9P+sFJS/6M6p+jVn3ic8cSv2U60OSp3EUoEv?=
 =?iso-8859-1?Q?D7SJeskd3EcQAIlXrQ2tIgLrH9aPrRWWmetREm9Mefk4hDthhHOCJ4o3Yy?=
 =?iso-8859-1?Q?hMsv9RKyXE2xuLNOZciCVFu8v0BaWHbw93m3ansxOA0G/Xd9ba/n3R8EjE?=
 =?iso-8859-1?Q?3YxnSzsqTM8nmkBqcvcqJQcRUh6+6RqE3WygbCnquGJYd7cCHFepVOSmJi?=
 =?iso-8859-1?Q?4Kulvbvm0qLueZfEMFF36qsXMe61Qjf9gIOuX+Z3wMPJPThNaGtRLKv5T/?=
 =?iso-8859-1?Q?H2GuVq8ib1VIGuSA9mZ3iuod49kv45i41eRTlWhJ8zG9tgt5fun0LMIFRz?=
 =?iso-8859-1?Q?IE57cMDsO7lpBQvkceSChhpq5gRUUoU5UXKCVqoAazMQFmADA3LhjKul9W?=
 =?iso-8859-1?Q?dFtZS0yl2Ca7Fl1tyryr9KaZT4cGW+fmep9QVTpSFOJ0ysvn3PGLPQ3QHE?=
 =?iso-8859-1?Q?43wIInjjFf3tSEDE+2sEog0ejK392+jThApzCWAIEvgCbS6eRFCABe8XR3?=
 =?iso-8859-1?Q?lLTzEPyxyfWKx9AZe1W8ifY34xty618=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: a55796dc-0cfa-40eb-83a6-08de8e53da0b
X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Mar 2026 11:59:52.1375
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Ek5dL2mc6Wu9WnJ+VuYQVkSO0YEG4cqWg85oR1lNr/Tb+51h2r+RgBJDlMNc0pSI3jIdvWShUjf9m5nDplv4OA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR03MB8639
X-purgate-ID: tlsNG-33051d/1774871994-EAE8572C-4DE07EC7/0/0
X-purgate-type: clean
X-purgate-size: 1989

With CPU hotplug sysctls implemented on Arm it becomes useful to have a
tool for calling them.

According to the commit history it seems that putting hptool under
config MIGRATE was a measure to fix IA64 build. As IA64 is no longer
supported it can now be brought back. So build it unconditionally.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v6->v7:
* no changes

v5->v6:
* don't change order in Makefile

v4->v5:
* make hptool always build

v3->v4:
* no changes

v2->v3:
* no changes

v1->v2:
* switch to configure from legacy config
---
 tools/libs/guest/Makefile.common | 2 +-
 tools/misc/Makefile              | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/libs/guest/Makefile.common b/tools/libs/guest/Makefile.c=
ommon
index b928a4a246..03dfcee7fa 100644
--- a/tools/libs/guest/Makefile.common
+++ b/tools/libs/guest/Makefile.common
@@ -7,6 +7,7 @@ OBJS-y +=3D xg_private.o
 OBJS-y +=3D xg_domain.o
 OBJS-y +=3D xg_suspend.o
 OBJS-y +=3D xg_resume.o
+OBJS-y +=3D xg_offline_page.o
 ifeq ($(CONFIG_MIGRATE),y)
 OBJS-y +=3D xg_sr_common.o
 OBJS-$(CONFIG_X86) +=3D xg_sr_common_x86.o
@@ -17,7 +18,6 @@ OBJS-$(CONFIG_X86) +=3D xg_sr_save_x86_pv.o
 OBJS-$(CONFIG_X86) +=3D xg_sr_save_x86_hvm.o
 OBJS-y +=3D xg_sr_restore.o
 OBJS-y +=3D xg_sr_save.o
-OBJS-y +=3D xg_offline_page.o
 else
 OBJS-y +=3D xg_nomigrate.o
 endif
diff --git a/tools/misc/Makefile b/tools/misc/Makefile
index 6ee783f43e..5a206133f7 100644
--- a/tools/misc/Makefile
+++ b/tools/misc/Makefile
@@ -16,7 +16,7 @@ INSTALL_BIN                    +=3D xencov_split
 INSTALL_BIN +=3D $(INSTALL_BIN-y)
=20
 # Everything to be installed in regular sbin/
-INSTALL_SBIN-$(CONFIG_MIGRATE) +=3D xen-hptool
+INSTALL_SBIN                   +=3D xen-hptool
 INSTALL_SBIN-$(CONFIG_X86)     +=3D xen-hvmcrash
 INSTALL_SBIN-$(CONFIG_X86)     +=3D xen-hvmctx
 INSTALL_SBIN-$(CONFIG_X86)     +=3D xen-lowmemd
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 11:59:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 11:59:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267450.1556949 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7BHg-0000gR-MB; Mon, 30 Mar 2026 11:59:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267450.1556949; Mon, 30 Mar 2026 11:59: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 1w7BHg-0000gK-J0; Mon, 30 Mar 2026 11:59:56 +0000
Received: by outflank-mailman (input) for mailman id 1267450;
 Mon, 30 Mar 2026 11:59:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Mykyta_Poturai@epam.com>) id 1w7BHf-0000FF-0o
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 11:59:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7BHe-00CdRq-Ck
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 13:59:54 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 69ca65af-bab6-0a2a0a5309dd-0a2a4503af12-36
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 13:59:54 +0200
Received: from [52.101.70.120]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 69ca65ba-1947-0a2a45030019-346546784220-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 13:59:54 +0200
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by GV1PR03MB8639.eurprd03.prod.outlook.com
 (2603:10a6:150:95::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Mon, 30 Mar
 2026 11:59:51 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9745.027; Mon, 30 Mar 2026
 11:59:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AM50aZ4ISwxkt5YJBE1FQ86cgijEhTNV3pJgK42CHERX9trvYaFyIVHi/4SbO98/KYLIkCrTjmdBvPfWKQxDYX6cbJCqJXZ2Mtyd5L8pGp3B/vQMh50BMu/y7pDEOhovVPmZ9gAqRpjA7+jfT7EhDBqiKxyFUtArXofrZ+xsR6ozRh5qZ8+0R4DMgWC2uBU0BS7v7jEFChV7D1WQ1qvxvJ2BwLQqBaB4DcndJEjDPEPc4Rzpk20/1oQrKUxMkXU3nbIkOInKP/QDxTQ9zjVsQU1VXsMXYm9D7v1Z9yE4QN4TTH1i3hs0u7A9aIMKynpYoseNp2iTm2VGiVMVCx4bTQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0xTyO2upwSLUp4nTUcsf626YB6NY7IhNhJBAKKSZkKc=;
 b=KFG3LU+rUONVXNued0k9UCdoiq2CIsT5qat1iiS5mPbdI1xhtZcuK9/x7xVKjrV/2QAPqr+6D+HZp2Bg7WuIjBe5mm6G1VjyGh0iJn4ZNOWWJOos/oMftQwlxy563GslH4s3qisi9iXl5l59JElihD1PDnRhAfZmIS5KUgw9S51ibW+dgPpkQVAqMeJVD2jLUv8kQkQemEIs3ltQpCsEe9c626GaomiyAxVawzMQVCq6u2kf2Ou1CRkq4DaP8FAtNQAhxlfc89/FSy9YgyLV9Z7ChzXxU4E3VweqQUWR0Jy9b1/cRerIE+mOlFnmKhfASxaexkTIsDX1EQn0UypfNw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0xTyO2upwSLUp4nTUcsf626YB6NY7IhNhJBAKKSZkKc=;
 b=PdOKF9ULXnmuQcAL7nTvTaTDbUg1NGfdsrE66Gbl0lXtfBeArg2EehwuntCsZkdNciZfTnWnDuvYLSWt4W/DKnatnI3mYk9XM/5Zj1bfEy9pHyBD7rMYw2SeqGMMxn9QkFOKtnhPMrTO0pXh6xs/8kGQB0jeEdzL2chJr1yG30qvte+dAL/rqJqsoQu+peXvYvaJwk+A78cxt3i8LUMwy3cyEJ6+MR5+7amyeS8LRNipHhRiUegr8fe+mgLVRJJWwbCkAqDoiV+WeJLrp9Ib1rEai+fiCl4s0DpkITTYh2s8ZV9aF+kTdMSZL+d6tlYWf1u/cyHpPYx1vVal80qAMA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Michal
 Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 3/6] Kconfig: Make cpu hotplug configurable
Thread-Topic: [PATCH v7 3/6] Kconfig: Make cpu hotplug configurable
Thread-Index: AQHcwDy29LsBHsG5wEG6AuodBSMA4Q==
Date: Mon, 30 Mar 2026 11:59:51 +0000
Message-ID:
 <f3c523ef5b94e930902016d69b440032c9e6c3bd.1774871881.git.mykyta_poturai@epam.com>
References: <cover.1774871881.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1774871881.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_|GV1PR03MB8639:EE_
x-ms-office365-filtering-correlation-id: a4b55bc4-8d77-4b4c-be4c-08de8e53d956
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|38070700021|22082099003|18002099003|56012099003;
x-microsoft-antispam-message-info:
 Nlt9eYmtIXFMEHBUlvs1NuKeGDjx2nl7cBuut0T0rVbgrmtsSUAdnbvUvqbIVcAQXbI+SrW9BA7xCz9y0Jowdt2pUuaVEDLbEtruVlybCWnroa4w3A+W4mIMSrV5oCoVMCBJ20LWB2n3ggl251Pewp8xKmrkXywTmcJQKfoqZCuRbz/BZsDngUTHZw87On0b671sYLoDh87UXR91twqPEShoxNsrFs/+D37120jfDt4TXmbpM6nK/ZgdLOp5ffKq7TTqIFHGhMNeUBkNxCUNNKOYoeWrMLmCkM8gV66I0HaARO1iikS+u+l87qU83o5FTpQQ3XQU35FNdwRHQ7OvZJaT+v89dmANJSIVeEEoP6jL3KDvBFy011qg7xjTe8g6Xq1hHK/eT6lb0AZUMdI+2wjbbA9wXvTuFNfh2DR/HKbPyk2+7l87u9G4KhdSsUgYYI9fXzy1JXjiRuRuYrBg+ibd0oyhrw28SJ7pW4a5Xsz5/wdmPFzpFflY8WdPNOLRTCIld1iGN1E29UHF23swLRC3BLqvh6UWLhZQIYjrtcZi0T46S8WP2+b+aUSs/7sMuHaDjeIvSX7hIBMNvk2m2WVBuVy6aeflCne5QxOzcCEk1pf0sU0xB86mT1DMf0zaNBM2t4MWTLbiM6Gb+8ad3hnNQLQbqiJ5tH2gxBaep7NwlD8/94q80hYVQVWwcCuOP8yJwMYDsIJpuFPFo61F92IpMFxG+zadvtRgFi9mGt4b4v9dhMkvSfeKpjQdFIeneNGbXDvif5/miYvzNxbDoAHLEXjF8yYQCN60wuKFzQ4=
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)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?y18DOCd6FB5TRyYlHfbH8ie1UWQg94USW+ZPCKL304nmDyvBGws4ozM1Uk?=
 =?iso-8859-1?Q?IgybyGc5SRrGFJ5E0G+Ac8KOIjUFxWzj0dVe6ZpdQbkJ8+dxuLzOONMhbi?=
 =?iso-8859-1?Q?l/FoFrYVrYb2/sQCSDtGQdpDzNeia7am0m5bHbnvvA6VyAZjrraL4Qltbw?=
 =?iso-8859-1?Q?Nl5e7uN+teM0S3VhhDVWDS4kMgwgothasCeMiK3BofxqKx8NwwHmJmga7q?=
 =?iso-8859-1?Q?rF8ahXDe//9c5WDfp/dSoPKVOOdlBfX5ltc6qM2wGEELoU826EpoOfbmwD?=
 =?iso-8859-1?Q?pDF2gldCHtu+w1jR/a9+uiEGYhGIv4p/kYyCUzquux+tHGjUzz633Zrzmr?=
 =?iso-8859-1?Q?ylm917NZj4Ay0+fMUIhKNNHXKtY08Mj1Z19lmtYM9kqFbycr1b6c0VEKSI?=
 =?iso-8859-1?Q?Aptetq4QiFRc5R6XX2hRAIz3uoRDeXFiBvKAzmUl+eaz9ZbzboRrdeLAuT?=
 =?iso-8859-1?Q?bHkO190dnJNC///97r/B0e6c68s2SUMCJmRAs4br8w2k/d8N9thxQbhPTI?=
 =?iso-8859-1?Q?dEnUtD3Lcd300ZnkGIvuO1eUiXB9MazYJeSWp1xLFPNoAdZDDylPqpMlf5?=
 =?iso-8859-1?Q?tr2wuE7L5fui1gPj3WYEERfUPl8YVDykcji4pfrWHYHLACPO4aesGtSXwj?=
 =?iso-8859-1?Q?Gvu6n2v0hh+jCoSqN17cRvohBUbvFVpdJLRMWJRJxW/36a9zu+qAIdaz2x?=
 =?iso-8859-1?Q?CEGMVRYpGrpNyCcZ3tteycFyVDci+kgBs/hf1XOzWiUayIPq1Mm3hVLO8u?=
 =?iso-8859-1?Q?aNnbuqmlEQtfTfNpuNNcPZAvzhdUSfUmNxE7R3oX2x+4fjGixNE5DtS3VO?=
 =?iso-8859-1?Q?t48G9t7uxMumIWJR8lkpY+xzgp213QuC1eyQXi12eZBbvtYF00XvUn8UO7?=
 =?iso-8859-1?Q?p/B6uFLVGKXQKrsUa8bqP2hiUHvjhXc5hb708ovcNhElI9gYTQxUvAfT7i?=
 =?iso-8859-1?Q?/HkxiVT1Gj2dSD+EVqScGY22mxEIRm9PeJzwxgZlPQRznmJYgjEJqe48Uo?=
 =?iso-8859-1?Q?lCK+Lng6J6vHb6k/8RU4yKXUXEtk+531xAG310afGGpgi9vS1pPgjuMXnG?=
 =?iso-8859-1?Q?LT8TI0Z0k/IOGiXMObijxJeCz2U5eoJJEECNPyHdK2KBqGhYrmypdl4fo7?=
 =?iso-8859-1?Q?YofcPL9zEM0DBRtUVE0yHGz90DL6mQiTnz/TnegazgmnKe8DjgZemO2RJS?=
 =?iso-8859-1?Q?njh46zMXmBpEWBOTOYlmLmhb5YdxRtsWUGcV6Ro/CGl3sMuB5U7oeZQoaA?=
 =?iso-8859-1?Q?jkDu5Tjizg8TP0wubCuZHvHOsF+xRYKVuGYD2S9K3tH5+K1EMjLD/SNsvc?=
 =?iso-8859-1?Q?zhP7Z4Fl08MAewFcYyXH1gZpGrV4jqjOBrbXy6qlagyo6j2SUgGMEJzGEr?=
 =?iso-8859-1?Q?nXVtfIvBleVnl95ThbHfL48igDgVhVLmTGaIZ0+xK3vv9sVnL71qlA0S4e?=
 =?iso-8859-1?Q?8OMn6A1ly3NXDXsrXACnboSzU4U//5Grkjft9TsWFWPvHguAm20ud+6U9B?=
 =?iso-8859-1?Q?OFVp8ukZFJa/z5Vtwv+0/L4taoJpCWlVvfmBlbP8RjCcEoAtBevF6wjScq?=
 =?iso-8859-1?Q?KT7XEHSJ98YJUrfgOFpO3sN43N44CbBTSXgkaagblDDzFFGTbUkVRUD/U+?=
 =?iso-8859-1?Q?TXveJJLAQqiqj0PhexnRT0qa8AqDm5/twAnChnRbNBwtmNdR0zhGS93G3Q?=
 =?iso-8859-1?Q?jdMbDyAAygmT25XiWuOQGTCcEKloLZhgtqOlLZlkoeufC7aBaS6DsX9zaM?=
 =?iso-8859-1?Q?O5zgHOnnLg8iF7ELQn9OFc5GDhQYws5pZZJK19EMY68XtgCZ0GZ+/2dWDK?=
 =?iso-8859-1?Q?I5GiudqolywFUa9bP1j4MfrHt8XRqRA=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: a4b55bc4-8d77-4b4c-be4c-08de8e53d956
X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Mar 2026 11:59:51.2052
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: aLFBYyMAEBtiNhzqULvvMNchQZhws9v59nQEYmKH3lgW4klhP6fxvPKA9tOGgRpTU7/e3I0me338OE5DuUcqNw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR03MB8639
X-purgate-ID: tlsNG-33051d/1774871994-7748872C-DC4FCF76/0/0
X-purgate-type: clean
X-purgate-size: 3464

For the purposes of certification, we want as little code as possible to
be unconditionally compiled in. Make CPU hotplug and SMT operations
configurable to ease the process. This will also help with introducing
CPU hotplug on Arm, where it needs to be configurable.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v6->v7:
* new patch
---
 xen/arch/x86/platform_hypercall.c | 12 ++++++++++++
 xen/arch/x86/smp.c                |  3 +++
 xen/arch/x86/sysctl.c             | 11 +++++++++++
 xen/common/Kconfig                |  8 ++++++++
 4 files changed, 34 insertions(+)

diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hype=
rcall.c
index cd4f0ae5e5..e745151790 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -735,6 +735,12 @@ ret_t do_platform_op(
     {
         int cpu =3D op->u.cpu_ol.cpuid;
=20
+        if ( !IS_ENABLED(CONFIG_CPU_HOTPLUG) )
+        {
+            ret =3D -EOPNOTSUPP;
+            break;
+        }
+
         ret =3D xsm_resource_plug_core(XSM_HOOK);
         if ( ret )
             break;
@@ -761,6 +767,12 @@ ret_t do_platform_op(
     {
         int cpu =3D op->u.cpu_ol.cpuid;
=20
+        if ( !IS_ENABLED(CONFIG_CPU_HOTPLUG) )
+        {
+            ret =3D -EOPNOTSUPP;
+            break;
+        }
+
         ret =3D xsm_resource_unplug_core(XSM_HOOK);
         if ( ret )
             break;
diff --git a/xen/arch/x86/smp.c b/xen/arch/x86/smp.c
index 7936294f5f..a49505fb57 100644
--- a/xen/arch/x86/smp.c
+++ b/xen/arch/x86/smp.c
@@ -418,6 +418,7 @@ void cf_check call_function_interrupt(void)
     smp_call_function_interrupt();
 }
=20
+#ifdef CONFIG_CPU_HOTPLUG
 long cf_check cpu_up_helper(void *data)
 {
     unsigned int cpu =3D (unsigned long)data;
@@ -445,8 +446,10 @@ long cf_check cpu_down_helper(void *data)
 {
     int cpu =3D (unsigned long)data;
     int ret =3D cpu_down(cpu);
+
     /* Have one more go on EBUSY. */
     if ( ret =3D=3D -EBUSY )
         ret =3D cpu_down(cpu);
     return ret;
 }
+#endif
diff --git a/xen/arch/x86/sysctl.c b/xen/arch/x86/sysctl.c
index 1b04947516..bdad44fef1 100644
--- a/xen/arch/x86/sysctl.c
+++ b/xen/arch/x86/sysctl.c
@@ -53,6 +53,11 @@ static long cf_check smt_up_down_helper(void *data)
     unsigned int cpu, sibling_mask =3D boot_cpu_data.x86_num_siblings - 1;
     int ret =3D 0;
=20
+    if ( !IS_ENABLED(CONFIG_CPU_HOTPLUG) )
+    {
+        ASSERT_UNREACHABLE();
+        return -EOPNOTSUPP;
+    }
     opt_smt =3D up;
=20
     for_each_present_cpu ( cpu )
@@ -121,6 +126,12 @@ long arch_do_sysctl(
         long (*fn)(void *data);
         void *hcpu;
=20
+        if ( !IS_ENABLED(CONFIG_CPU_HOTPLUG) )
+        {
+            ret =3D -EOPNOTSUPP;
+            break;
+        }
+
         switch ( op )
         {
         case XEN_SYSCTL_CPU_HOTPLUG_ONLINE:
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index d7e79e752a..0e5b4738a8 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -637,6 +637,14 @@ config SYSTEM_SUSPEND
=20
 	  If unsure, say N.
=20
+config CPU_HOTPLUG
+	bool "CPU online/offline support"
+	depends on X86
+	default y
+	help
+	  Enable support for bringing CPUs online and offline at runtime. On
+	  X86 this is required for disabling SMT.
+
 menu "Supported hypercall interfaces"
 	visible if EXPERT
=20
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 11:59:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 11:59:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267454.1556973 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7BHi-00015G-0c; Mon, 30 Mar 2026 11:59:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267454.1556973; Mon, 30 Mar 2026 11:59: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 1w7BHh-00013v-RJ; Mon, 30 Mar 2026 11:59:57 +0000
Received: by outflank-mailman (input) for mailman id 1267454;
 Mon, 30 Mar 2026 11:59:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Mykyta_Poturai@epam.com>) id 1w7BHg-0000WF-25
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 11:59:56 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7BHf-00CdRq-Db
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 13:59:55 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 69ca65af-bab6-0a2a0a5309dd-0a2a4503af12-48
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 13:59:55 +0200
Received: from [52.101.70.120]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 69ca65ba-1947-0a2a45030019-346546784220-6
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 13:59:55 +0200
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by GV1PR03MB8639.eurprd03.prod.outlook.com
 (2603:10a6:150:95::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Mon, 30 Mar
 2026 11:59:53 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9745.027; Mon, 30 Mar 2026
 11:59:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IduI0HwK2pki22wBNIS+VQjP1Z5r5ldzHiSj11SSZHJG+kn7ZMGuVOEAIaEEoNmG9VpOsbJLkgC4rnBP5u04xekKflE4xhnwg86TZw2QhyKIEaIESWfaBhbk/5YFIJrd695bUpuN1vNDk95+2eSleJP3hozryMAoQO8OqgC0FfemiHcm09FErdA89Jb+xJM8MSLvGZAdZvXpVLDdZp83kbn2Z3zIA99yzMVo9+4C9tb/XMuBkIgFeZsOUfLTeiwazF+FYGXgCRoexSPem4iIR4E2ggF4uGmn4rE6onkUsEDooYOyUBOpsJqa6uMRCaKd58dnaX+1dTFsTAim1oDHtw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WTCqvktoss0PlPaY9Z2E3mkzRUXnUI9T8SLc0HonleM=;
 b=WwQ/xLjfRLzJk5wHFZjvJrt3WuiRIS7hxEk7n7JkcZo5onmA5NUc+Zf/W5xj6fuOxRMbHVRz0PYDD2X0gBOFskd8av9JSk/1Utch0H37taXBNKeTnhzfNWH0u1aoBGoLqE7/3Jl19KcbxPrfKkOwNDHz9Lv2ww1OSGTt+EOd/pGA8/5Tq0lio9eVK08wdV8wboNLHOR6ESHZfCcQvIRDHnUoWYHxZXX12SXJWE1uRR8vUghHpHVWN/ThdWoNqWZkmlo91rOwhZkQUXVQemo5BbAT3dSSvo7IHujSGytg86c9F6fzAkxi9LSxU6kSKD0NdBKLeLgWxpzfxqnMxgIeag==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WTCqvktoss0PlPaY9Z2E3mkzRUXnUI9T8SLc0HonleM=;
 b=EpJOszXCnW5wHcID3ovYaGEpmMmxySUKTw8HYs100OAddwOm0vVs93pGqG+3Qe0omFcPD+gJS/kko1jOpmNWWnyXxM4Gcva53BVc16Xr4wwJ3MU9MhyxqzrfDfHzmJ25/IzuLjhJuIT/OWavslNCYkEjBJn97Xkv49489sRWI0ZnQCwQDVYR6hgR0yvZsI7j9SGJG+hAdGXThNVBhe0xKcfYkO5lNghkC1i/03CSde4e35237b6xb743oc/NzCfaNtg4RcZfWqiY2OQFFhTTPvkTTKwt8eO9MCBTXq5dPUzAg9es27yX+RRi5Wwv2pqZ+VCST1XdvocXSzTJffgwxA==
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 v7 6/6] docs: Document CPU hotplug
Thread-Topic: [PATCH v7 6/6] docs: Document CPU hotplug
Thread-Index: AQHcwDy33hgEL/FPskqSHUwGNRQgfg==
Date: Mon, 30 Mar 2026 11:59:52 +0000
Message-ID:
 <97ad7b68c5e42fc396b155ef1d0a69a738b28881.1774871881.git.mykyta_poturai@epam.com>
References: <cover.1774871881.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1774871881.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_|GV1PR03MB8639:EE_
x-ms-office365-filtering-correlation-id: 7d63fa7e-606f-4695-e969-08de8e53da48
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|38070700021|22082099003|18002099003|56012099003;
x-microsoft-antispam-message-info:
 kGA23be0nnST3cqucJHVH9+CsH8s3Kx2o/JTDj7//F3QmkDRIunkIeZPL5HbrexhOAat0hk5kxLfYX0u594ckUtIBIiZjMApQnNWYKrWQ+W89bkXBggOZDUTZfN6GAvb2WZ6qvf/vz04shQQDtX9naLsMdXQcN1dlKTR9Utbk3QX5PwRRI5/TLDuiR/Tsn/QHsYRMyuLGjuzKh6qDoR3OeMbsN3lH7vVaR+tx6GMgjj4AB28dVjC0h9r83pEh/5lGP/DevaKX2mWtokkpPGQwRibAAMGuRgQRiOMB2Iz0cCw8L5JmetJfSATbBm1VTLQonvjFmvKx+bgyEViJNh2YnqQkuKdYgefnjndEqZIeFxCgCZ4Sx1qdEJqkAWI6nYnGMLAe7zAebWEhz5QaxbRr1bAJgBQte/1V9x5aPKHEvbA/JEvk62eU2M0kbxjYzyQWkHIeh0MeDOWegqAowkptVqXrrYxemsTfjaMWHv2hZs2rnrjYoBQh6Nf0L8SBlBzj4Z+Ce3igbLHsXQPhfa9KSpkuhusXxhnOGirCzp0j9nHh9XPEKFCQbokqM2gRmLTlQbWxVWYubgueGtAgtKrj0lSKbfNQu+tde+7Pr1HbTIpJvNNZe9yy6g1O5VT60bWOM5ycvNjXA9CKj7Q3jUHLyyrOHavBQYjN05khKdMZDpsU3iFcDgmZ/IPyQcA4Xz7uC1xJj/vnJH6uQQbtU4on/fpPLHLt56fYqF+tbX1mXe2WSPkjJ4yq6tOYpZCLcDvF0db/mzkWELuxwrJsBsNpcaKhzFvbOLs2C5fQVhohpw=
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)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?puMQJfbNdBBnX3hfCITSYda1IQsahj4yh+wZS4fGJcg0Tza+bZdHQ9Q0ka?=
 =?iso-8859-1?Q?3HRgorx6XJBhR/A/CEhZC3Nvd4LIaW7RoysVHp5qXBalPG5Vn553PsI4a0?=
 =?iso-8859-1?Q?7tzNWNe60ZqNJc5XelpI483ULyl/SgVbYRdk4IFyY3vLq6sM0HSdkeo9uv?=
 =?iso-8859-1?Q?v2dq1JZCiL6vXcBLOXcqT1QWaUeXx7PKczOlbzBXMV7/C0MDoW5mQpSri/?=
 =?iso-8859-1?Q?f9hQ1XVBjSas1ahz/K8kuVoUJzHMkxtKZ731hK8Nc/nw+S8T5a0fr+NcW5?=
 =?iso-8859-1?Q?eygKlE+cm8U2gueAq9UiKRzpfLLNJ2at+Ll0BXg7ssR912P8OHwE37GyPh?=
 =?iso-8859-1?Q?AMiy2yI1CTDVwY+TnKaD5au5dFAZZhvYL7IQ+pMPUsxnsTYKSYnMJtUksR?=
 =?iso-8859-1?Q?Mkb4KLybcxNJ5Zban5slfIr6qqXopuGGsNUomhORpifom/MzP7AhohBtiy?=
 =?iso-8859-1?Q?Kd312nvrbsMRnQxvfQGtsXNUuYMSY5SFw7qo04FVwzU+ErmumWyvZZwJIZ?=
 =?iso-8859-1?Q?JrtW/0OonpAao5J2HWYbjuPE9sSflJTkhgxXIiENVsvUDVYZI3eIA/JnPB?=
 =?iso-8859-1?Q?jy2iKExtyYE7+g9imXvJrnsngDVYBQnw2NWL0ya8apwcFZrDjqntCCyS3e?=
 =?iso-8859-1?Q?nUgLJHJJpjIBT4/y7MJZ+bs9AUGppvj29zGXuBFCZ6fpL7JKXY9sgxVifT?=
 =?iso-8859-1?Q?osWgYuInrCi+a8GkVXNdkMXgrR04Ymp3sAgvOdoyl37kPujpsQvJnpb6C1?=
 =?iso-8859-1?Q?kZEMC9fxVEigDgyKX94aJ1k+NA30lXpir6XLnVCGNRUFlLurgJjcU4Itk9?=
 =?iso-8859-1?Q?1WHPwSHBwCZncis8Lloc3MF+ZCRWOZGlloW3Maq9XL0yNZITuD2nhD/eLC?=
 =?iso-8859-1?Q?gkPympF4/Ow4tXbr1ReUTffuMI1yDuNUgEkMK+XbgB6pnISOBuZa66krTM?=
 =?iso-8859-1?Q?dd1rhVoLjMFloS9I36Vyi7KiNsNadhhQz4AUD+L9lVOxjUgk8AJw2yrPlo?=
 =?iso-8859-1?Q?Ky+SMyPQ+At53HJ0VvoEdBThi/byYsYeQ4OM8ChpCkIAvPgZbYTYbxkUM9?=
 =?iso-8859-1?Q?8tb4AsV9t+x8wljjZVTMLClldSUncXF0n66ADVDcyOY06hXYZPsKN3ONLS?=
 =?iso-8859-1?Q?h5/QWTO+SWimFv+uLtWU13rZk2/RWAx3ILNt5TEoTSy/YHAYTC3BrxuiSO?=
 =?iso-8859-1?Q?mhhydemWXfq61o4yDpZ7g7jQ4CwIPz3icVRjzlgifiL4sDWCdFABg1HcuQ?=
 =?iso-8859-1?Q?IwJPsEepDsgCGX/VrX94KQEz+PZ9C7knyOEle1Hlr7cRVKWf9ZpDfBUcHl?=
 =?iso-8859-1?Q?fc654XEojVAGkXCm3o7VJZeLPQ0+OUz394uHhKETXv3vW1Yqnj5v8LaIdD?=
 =?iso-8859-1?Q?jE6oZuD5yp++I69YohyjSDYAHmeom2lbyHuPL18MypDpArbqtXI13qhzJ5?=
 =?iso-8859-1?Q?tr2s1j/3JS0P070fV+Ai331tDhBpfYDidy6F7omIDIk9gNxprkRs0jI2bz?=
 =?iso-8859-1?Q?T5pXSmLy/OAmMqMIkzIEmRzuKtWok7zoqR85wWmNxZyOG1ZEWQLQ1wXLfu?=
 =?iso-8859-1?Q?4vI3keqlpDyUSOOnEO1WU99kG+wCmZWM6AtjVZLVPw4JAQGQApukn2tpc/?=
 =?iso-8859-1?Q?r7S4B9wZvs+nDC90ghZTxyn2dA/7UMbLJi86cNDgLGiEdcnXiSiiWcM9SF?=
 =?iso-8859-1?Q?Y12rj8IN/s8ao6uCZtPzTLCZx0F2YduGqC6HTDxK04KHqEf3bQw7MV6xbb?=
 =?iso-8859-1?Q?UrEmvksDQ94gmRz1A6YJxcM3dxQaA4wuIZQM/lM+xBPcDXp0r1VjWwTZLV?=
 =?iso-8859-1?Q?A+sAirtv4YgHmo8jY3AV0yhF3izfwRQ=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: 7d63fa7e-606f-4695-e969-08de8e53da48
X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Mar 2026 11:59:52.5644
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: LaJ5pDIxn4vYEks2N7zU6DRGieQYx2Gm2DNdgbH8wwjEzRoxMuiwuVwB37YfRl7aeq1rkmDHlJ7gFhxpRgGhKw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR03MB8639
X-purgate-ID: tlsNG-33051d/1774871995-4866F72C-2CA92510/0/0
X-purgate-type: clean
X-purgate-size: 4305

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v6->v7:
* add testing and limitations

v5->v6:
* no changes

v4->v5:
* s/supported/implemented/
* update SUPPORT.md

v3->v4:
* update configuration section

v2->v3:
* patch introduced
---
 SUPPORT.md                |  1 +
 docs/misc/cpu-hotplug.txt | 97 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 98 insertions(+)
 create mode 100644 docs/misc/cpu-hotplug.txt

diff --git a/SUPPORT.md b/SUPPORT.md
index d441bccf37..7b93ae69e7 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -52,6 +52,7 @@ For the Cortex A77 r0p0 - r1p0, see Errata 1508412.
 ### ACPI CPU Hotplug
=20
     Status, x86: Experimental
+    Status, Arm64: Experimental
=20
 ### Physical Memory
=20
diff --git a/docs/misc/cpu-hotplug.txt b/docs/misc/cpu-hotplug.txt
new file mode 100644
index 0000000000..09a2855873
--- /dev/null
+++ b/docs/misc/cpu-hotplug.txt
@@ -0,0 +1,97 @@
+CPU Hotplug
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+CPU hotplug is a feature that allows pCPU cores to be added to or removed =
from a
+running system without requiring a reboot. It is implemented on x86 and Ar=
m64
+architectures.
+
+Implementation Details
+----------------------
+
+CPU hotplug is implemented through the `XEN_SYSCTL_CPU_HOTPLUG_*` sysctl c=
alls.
+The specific calls are:
+
+- `XEN_SYSCTL_CPU_HOTPLUG_ONLINE`: Brings a pCPU online
+- `XEN_SYSCTL_CPU_HOTPLUG_OFFLINE`: Takes a pCPU offline
+- `XEN_SYSCTL_CPU_HOTPLUG_SMT_ENABLE`: Enables SMT threads (x86 only)
+- `XEN_SYSCTL_CPU_HOTPLUG_SMT_DISABLE`: Disables SMT threads (x86 only)
+
+All cores can be disabled, assuming hardware support, except for the boot =
core.
+Sysctl calls are routed to the boot core before doing any actual up/down
+operations on other cores.
+
+If there are Xen-bound interrupts pinned to the pCPU being offlined, they =
will
+be automatically migrated to other online pCPUs. Interrupts used by guest
+domains are handled by the scheduler when it reschedules the vCPUs to a ne=
w,
+online, pCPU. When a pCPU is being onlined, some Xen-bound interrupts will=
 get
+redistributed to the newly onlined pCPU to prevent imbalance.
+
+If pCPU being offlined has some vCPUs pinned to it, they will be automatic=
ally
+unpinned and migrated to other online pCPUs.
+
+Limitations
+-----------
+
+On Arm64 cpu hotplug is currently not compatible with ITS, due to an issue=
s with
+the redistributor assignment.
+
+On Arm64 there can be problems with FFA if secure FW support notification =
ABI.
+
+Configuration
+-------------
+
+The presence of the feature is controlled by CONFIG_CPU_HOTPLUG option. It=
 is
+enabled by default on x86 architecture. On Arm64, the option is disabled b=
y
+default and marked as EXPERT.
+xen-hptool userspace tool is built unconditionally.
+
+Usage
+-----
+
+Disable core:
+
+$ xen-hptool cpu-offline 2
+Prepare to offline CPU 2
+(XEN) Removing cpu 2 from runqueue 0
+CPU 2 offlined successfully
+
+Enable core:
+
+$ xen-hptool cpu-online 2
+Prepare to online CPU 2
+(XEN) Bringing up CPU2
+(XEN) GICv3: CPU2: Found redistributor in region 0 @00000a004005c000
+(XEN) CPU2: Guest atomics will try 1 times before pausing the domain
+(XEN) CPU 2 booted.
+(XEN) Adding cpu 2 to runqueue 0
+CPU 2 onlined successfully
+
+Disabling a core with pinned vCPUs:
+
+$ xl vcpu-pin 0 3 3 3
+$ xl vcpu-pin 0 2 3 3
+$ xl vcpu-pin 0 1 3 3
+$ xl vcpu-pin 0 0 3 3
+$ xen-hptool cpu-offline 3
+Prepare to offline CPU 3
+(XEN) Breaking affinity for d0v0
+(XEN) Breaking affinity for d0v1
+(XEN) Breaking affinity for d0v2
+(XEN) Breaking affinity for d0v3
+(XEN) Removing cpu 3 from runqueue 0
+CPU 3 offlined successfully
+
+Testing
+-------
+
+The CPU hotplug feature has been tested on both x86 and Arm64 QEMU setups =
and on
+R-Car Gen5 (Arm64) hardware.
+
+The tests included:
+- Offlining and onlining cores with no pinned vCPUs
+- Offlining cores with pinned vCPUs
+- Offlining cores with Xen-bound interrupts
+- Offlining all cores except the boot core
+- Offlining the boot core (expected to fail)
+- Enabling and disabling SMT threads (x86 only)
+- Ofllining cores to which guests with passthrough devices are pinned
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 11:59:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 11:59:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267451.1556954 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7BHh-0000jj-0T; Mon, 30 Mar 2026 11:59:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267451.1556954; Mon, 30 Mar 2026 11:59: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 1w7BHg-0000jV-Ri; Mon, 30 Mar 2026 11:59:56 +0000
Received: by outflank-mailman (input) for mailman id 1267451;
 Mon, 30 Mar 2026 11:59:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Mykyta_Poturai@epam.com>) id 1w7BHf-0000FG-40
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 11:59:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7BHe-003QIn-Fn
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 13:59:54 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 69ca65a8-2eae-0a2a0a5409dd-0a2a4509bac8-46
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 13:59:54 +0200
Received: from [52.101.66.84]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 69ca65b7-e484-0a2a45090019-34654254c0bd-5
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 13:59:52 +0200
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PA4PR03MB6847.eurprd03.prod.outlook.com
 (2603:10a6:102:eb::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Mon, 30 Mar
 2026 11:59:50 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9745.027; Mon, 30 Mar 2026
 11: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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oOoT7OjvRhZINl3Rio4Blw3tDvxWBgq7SOvoNTg8M+nEYLUK+0hgxOdC0egWpxedU6RQHGGLEAX2BpZZdQiA8MgvhQAm+V3wVmAnLw1mkJXOJ4W90NE9z3ktDNUOCmNvBF4Wzys6BzKUpVP9LW2qCf0+uJUmzeVgymk7in/r4epaFWy890Kym1DsdTNJ/krSvKIkDoWIGI0RNe29fbulvTs7zTITNsaW48E5lqphau5ZPbZB5mF0Hd2T+y1ijcxR3DQmSqmrmVLI7V5Ymv84S42R33HtpfFtW31Utlt8gKJJnEU/jLg0p1v5ppJhkjTMTbhtC+/UQBsq02yuxflQWg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YJF2GnvkUpeFC8MeYR5G0v/n9PCj1jBo1kZj44vU37Q=;
 b=YK4cIBBROeQVCFM/a5tJvAAfI57fudjOZgzWlifA9VbZW7MQtOk3fGDBniJWtRLKIh6lSfW7xwsSjlULCCxGmaFszkdXfCn7wrqhM/S0nU5DyFH0HAmFwcHTK6YuluOZag1J2aQlIYtYCkIDB3XRazeil08XHlN37oI1wNqwZqOQiAnZJ/kM0wdZCXEdE9XB4JHKwUZEpRAi+3BWfxMwJxd7Yary7RJzZe6Zh2mfikT/0Zd+czef4riW/LagKrhQAsaUBA/8IuVlGhf//7cTcz3QRuVzuCNYy8PcpXTZ6Vm7ShPmFH1y6q1I3sCT03w2kH5gVdzqjuNl8WAud6l6Ig==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YJF2GnvkUpeFC8MeYR5G0v/n9PCj1jBo1kZj44vU37Q=;
 b=IqGWG1vVM4mWOYJcAN+gDfRMBvcOuAMm+y8yHabkuhxaW5w2Rl2i8uqxzZvIoq/Q5ZaKE+aOy+TlIKU45zGrc5SxdOM7hhw0oW8O8Khd1RLtYPQfjinqwIBnvj0RAnfVW3vSmwkwhz8x54MBe7TbjSISIWjcY3Gwkzn8gqLvITAjUbsbvkpREVHXA3tzWHNqae/pzIH0rWw6Fdb+t0v/05EmZDJeFfKpKqrkISgO+z61ujSsLZY7kede1GSApdp72hQnfCKGPKuhL/tm0ThSo7JN8/mBlrutvpFil6fjZzxu5fkSP9qC9OfHdacZw7sOWFUgJn6vdmJDlJfU8HfChw==
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 v7 2/6] arm/irq: Migrate IRQs during CPU up/down operations
Thread-Topic: [PATCH v7 2/6] arm/irq: Migrate IRQs during CPU up/down
 operations
Thread-Index: AQHcwDy2Ii3JnaWGS0ukts0X6B0lGQ==
Date: Mon, 30 Mar 2026 11:59:50 +0000
Message-ID:
 <d1fce979525d4296b0f461fda7dc08ad1d596d6d.1774871881.git.mykyta_poturai@epam.com>
References: <cover.1774871881.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1774871881.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_|PA4PR03MB6847:EE_
x-ms-office365-filtering-correlation-id: d1eb3613-99c9-44f8-54b5-08de8e53d8f6
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|1800799024|56012099003|18002099003|22082099003|38070700021;
x-microsoft-antispam-message-info:
 OoPgo5w+fOfKHVaazEkk4og55ZsTpDIRIOS0/9xbqYrTeIrCCBpmZ20ulSROCiftobIKyxb+/f3Imta0cVSg+lIR8h3KlPl+DPgEh6CUdk3o9ZrQiqcGtSj9Q0M81BSRnjJil8NcmyEfwAK2ej1Cndl5GcXH9+sxU1rVFPwGV0PHDLXHAv6Xg6vXJsK0eLKCMNI92KMv+RdJEwI19L/CjtOI5idntkS3SNwIzoUjXX8yrXbh+SosRSTRmQJx5qlcMNsO742oauCsyS8GfSPUvcF5eIMBrHQDfelKHe+5rQszR4EKTtFOkGgi+gLF4ZyF6deQusCYCVQlASAZ6IuyXro17Y/je2Lm/P5rG4yq3YZqO96Un45+Iz782iMcfkGMUxhGUPnL1P6SOEdoQOIKwwRC8TigaCPmXZr5FMqLhsQo+7GwZrtLQK8R9hg1ne3r/JXU3lSW8nTzDGA3LLXsAu1AzX+B1rMo+xqaDw6eHsupXi6SaRD8F9r6yj/9cPCSXlTQBqkVw/Y73E/xO7yeqs0SBOL/U+6FabdNqIVuOJwJWBpRbWgB81uIDKi+ybgRcg0aqmFeSqh56AHt0iTerTOZGogCyphbk6vjYWahj1IaasGL1qWQ3mTxYc5zuvfV5iwFJUTMJU+azhhJiej5fzSgIqzBfASF6sZhd2wbGD8xG8ZivX07kUP2eVR3BBRKXNC5Kk6aHAcskrDNj7p+HxgM375XQZ3fIMGHOE1PfbU7YMXK8+PtsZLL1cYKP8N6oOsc4/0gD3uO1hRnnCbyolyEEQ7y7PfAMbheuq4+cic=
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)(56012099003)(18002099003)(22082099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?OmqmLzDTxAaNiOxTmjxr2pr4UYvLVQ3/PMa8Gxj2ILjq66m7+yV4CgUmoA?=
 =?iso-8859-1?Q?wCE/jt1W4E5DlS80vEd0bEGcEKYPKE8AyqddJxup2XhBVmpdP91zDPyN/F?=
 =?iso-8859-1?Q?s8S3IkgTzPwecsiTe0OutoBxqcs8WRvJbUxdrAgPfD53UwjDLapGPrBG9I?=
 =?iso-8859-1?Q?TI9acpprxTnoc1DwtjU5drGnOPOHv5GaM58OWcOvYZE5KVo9+ddpKwIvWa?=
 =?iso-8859-1?Q?lmmaYDQFmdYCDS1LFwtZGkDNquI/LM2qx56Gksghs+6ulvbcIUSfI8z6/R?=
 =?iso-8859-1?Q?9zWXqjsMufd7FdGoWN8nRbMlNVLjdP6mgO0UEnxHDtjj/Tzl8LP7JOatis?=
 =?iso-8859-1?Q?kFYXHfXYFqXC4kOB+uBtGqUfzh3VshBTzMFUG3SkDOtM6PuySzj7PocGEL?=
 =?iso-8859-1?Q?jdF9lFdfjTKIYd+YtaqNJ+1PF+yfY3++0CqJjItQPF8NBKINCjzrD6ZdhM?=
 =?iso-8859-1?Q?IRVRZqYoZEXRHjCVxbJEEm2eO786RdZQ4kwZvvmdnbURmfMKDtyPPKQBJ3?=
 =?iso-8859-1?Q?+NKUZpeWK1e+arSZAZuG1z2HudQ2qHqbLomWiCglxpTdmg+W2J+oi2DoLt?=
 =?iso-8859-1?Q?O45AbUljQAQvXcZJdjBU6FSmI2l1fcRrOrqNdIsy1oNniivryxqDgLdHoE?=
 =?iso-8859-1?Q?naPYT8NFY+FQWTt1o07kRUdTRHx8jc3/WG8lR0DhqjI1N3vZmjr0BkpQkf?=
 =?iso-8859-1?Q?7gQ99D4fcXElRmqW8cgU4HHxJMfK0+6gR1m1BuBWPzr6TG/p6CfhziUdEO?=
 =?iso-8859-1?Q?4lYTwCkchsy6boFkwFHGHjJc+3b5Y8J5AElCsbVPZ2LNUm/JGSBi/schcA?=
 =?iso-8859-1?Q?xJ33ZPj4gfeiFaPlu5AZyWexDWd9q8DMe/TDrlI9of2L1kdkI2R1S6Xeth?=
 =?iso-8859-1?Q?wPJA2pglAo53zPy0PyQgOtGAbYDL+IE/FHaLKNWNOegmWjGnzUwcWJiqoV?=
 =?iso-8859-1?Q?Uxlj7jYZdQLc0JwadaWihkQJl7ELyJMX73hx2ULfjgGH2IiiDls7iX2zVP?=
 =?iso-8859-1?Q?9RQrub3N7FslRt9Zg//FQQgYAD85heAGuf9SZqq31dbYP7W+cdmmePouKs?=
 =?iso-8859-1?Q?FZ8q450RHEHc2WMiRq77rcxdo5fatr0qSvYwYKTsaY5hO+UcM17iQWf47D?=
 =?iso-8859-1?Q?M3n3G+HfyhGKWyG4uEsb0d6j/As/t5ZbQICphaHVDFOCKYjci8A47OVk5s?=
 =?iso-8859-1?Q?g2dh2ueHTdsM+ic52RqGKdqlLryR8NARv8XpOVULMRrkxSJXADxUxjV4kO?=
 =?iso-8859-1?Q?3otBQkUEveM3a2ZYSs8RBdrL8oknRwMakyzXx+ci11TDREgGysbf/lrcks?=
 =?iso-8859-1?Q?1xGwkdaw/A/hPq6geEao9GzX1Wr7ESfLVEBwXaE1k7T+CkNwWY2rhAwYfa?=
 =?iso-8859-1?Q?vt9f0eEYlJ5DRr9aEw2lZFOGLobZThxX98dtostwOldRm/hPfx3+GOuxHX?=
 =?iso-8859-1?Q?EtTXdUTNm+xzxZTn/A21XPJjFms9mseMbmjBQyn5Q4j6p32a8Wq3RJi2HL?=
 =?iso-8859-1?Q?qPu1koN2+KGzoLmUhE3xcfUuuLGJoYYUyHXm1dWRRBdGtP73ooWkp5/Ltf?=
 =?iso-8859-1?Q?6dE4jdJR11ZNhV4ibg/BQrLEDiFM1oW4WU4I+b2sNfXcBmybuKHIdP5FiQ?=
 =?iso-8859-1?Q?xSf3xQDlrgT8jKdERbmJo/ab/32Lfwcc4//vSrWrBFUj/WhnpC+i/LBcVO?=
 =?iso-8859-1?Q?lduz7tB3VHY8t1dI3CNXsVvyYC89rNaNyOGITdLg0M06zqZYPlP9wMvHDt?=
 =?iso-8859-1?Q?A5TqgIxbynGMd6KvQqumKFEB18aAZJLAupQ2OiXmq2qh86k/pcacNfocxq?=
 =?iso-8859-1?Q?r8pYTXIOybHmaCxxg1CMsv0EsTCbvWA=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: d1eb3613-99c9-44f8-54b5-08de8e53d8f6
X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Mar 2026 11:59:50.6311
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: MQzmndRzo+dw6rWASBUMvXBTAjVmk3OeIuQtiPBpowHDDSQfmkXNg6ZA2WR60VeWCku24WYFbcDIhoh8priDPQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB6847
X-purgate-ID: tlsNG-bad1c0/1774871992-60CBBA73-8904E72D/0/0
X-purgate-type: clean
X-purgate-size: 4772

Move IRQs from dying CPU to the online ones when a CPU is getting
offlined. When onlining, rebalance all IRQs in a round-robin fashion.
Guest-bound IRQs are already handled by scheduler in the process of
moving vCPUs to active pCPUs, so we only need to handle IRQs used by Xen
itself.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v6->v7:
* replace ifdef with IS_ENABLED

v5->v6:
* don't do any balancing on boot
* only do balancing when cpu hotplug is enabled

v4->v5:
* handle CPU onlining as well
* more comments
* fix crash when ESPI is disabled
* don't assume CPU 0 is a boot CPU
* use insigned int for irq number
* remove assumption that all irqs a bound to CPU 0 by default from the
  commit message

v3->v4:
* patch introduced
---
 xen/arch/arm/include/asm/irq.h |  6 ++++
 xen/arch/arm/irq.c             | 59 ++++++++++++++++++++++++++++++++++
 xen/arch/arm/smpboot.c         |  7 ++++
 3 files changed, 72 insertions(+)

diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/irq.=
h
index 09788dbfeb..3ed55e02c3 100644
--- a/xen/arch/arm/include/asm/irq.h
+++ b/xen/arch/arm/include/asm/irq.h
@@ -126,6 +126,12 @@ bool irq_type_set_by_domain(const struct domain *d);
 void irq_end_none(struct irq_desc *irq);
 #define irq_end_none irq_end_none
=20
+#ifdef CONFIG_CPU_HOTPLUG
+void rebalance_irqs(unsigned int from, bool up);
+#else
+static inline void rebalance_irqs(unsigned int from, bool up) {}
+#endif
+
 #endif /* _ASM_HW_IRQ_H */
 /*
  * Local variables:
diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 7204bc2b68..447bee428e 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -158,6 +158,60 @@ static int init_local_irq_data(unsigned int cpu)
     return 0;
 }
=20
+#ifdef CONFIG_CPU_HOTPLUG
+static int cpu_next;
+
+static void balance_irq(int irq, unsigned int from, bool up)
+{
+    struct irq_desc *desc =3D irq_to_desc(irq);
+    unsigned long flags;
+
+    ASSERT(!cpumask_empty(&cpu_online_map));
+
+    spin_lock_irqsave(&desc->lock, flags);
+    if ( likely(!desc->action) )
+        goto out;
+
+    if ( likely(test_bit(_IRQ_GUEST, &desc->status) ||
+                test_bit(_IRQ_MOVE_PENDING, &desc->status)) )
+        goto out;
+
+    /*
+     * Setting affinity to a mask of multiple CPUs causes the GIC drivers =
to
+     * select one CPU from that mask. If the dying CPU was included in the=
 IRQ's
+     * affinity mask, we cannot determine exactly which CPU the interrupt =
is
+     * currently routed to, as GIC drivers lack a concrete get_affinity AP=
I. So
+     * to be safe we must reroute it to a new, definitely online, CPU. In =
the
+     * case of CPU going down, we move only the interrupt that could resid=
e on
+     * it. Otherwise, we rearrange all interrupts in a round-robin fashion=
.
+     */
+    if ( !up && !cpumask_test_cpu(from, desc->affinity) )
+        goto out;
+
+    cpu_next =3D cpumask_cycle(cpu_next, &cpu_online_map);
+    irq_set_affinity(desc, cpumask_of(cpu_next));
+
+out:
+    spin_unlock_irqrestore(&desc->lock, flags);
+}
+
+void rebalance_irqs(unsigned int from, bool up)
+{
+    int irq;
+
+    if ( cpumask_empty(&cpu_online_map) )
+        return;
+
+    for ( irq =3D NR_LOCAL_IRQS; irq < NR_IRQS; irq++ )
+        balance_irq(irq, from, up);
+
+#ifdef CONFIG_GICV3_ESPI
+    for ( irq =3D ESPI_BASE_INTID; irq < ESPI_MAX_INTID; irq++ )
+        balance_irq(irq, from, up);
+#endif
+}
+#endif /* CONFIG_CPU_HOTPLUG */
+
 static int cpu_callback(struct notifier_block *nfb, unsigned long action,
                         void *hcpu)
 {
@@ -172,6 +226,11 @@ static int cpu_callback(struct notifier_block *nfb, un=
signed long action,
             printk(XENLOG_ERR "Unable to allocate local IRQ for CPU%u\n",
                    cpu);
         break;
+    case CPU_ONLINE:
+        if ( IS_ENABLED(CONFIG_CPU_HOTPLUG) &&
+             system_state >=3D SYS_STATE_active )
+            rebalance_irqs(cpu, true);
+        break;
     }
=20
     return notifier_from_errno(rc);
diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
index 7f3cfa812e..7d877179c0 100644
--- a/xen/arch/arm/smpboot.c
+++ b/xen/arch/arm/smpboot.c
@@ -425,6 +425,13 @@ void __cpu_disable(void)
=20
     smp_mb();
=20
+    /*
+     * Now that the interrupts are cleared and the CPU marked as offline,
+     * move interrupts out of it
+     */
+    if ( IS_ENABLED(CONFIG_CPU_HOTPLUG) )
+        rebalance_irqs(cpu, false);
+
     /* Return to caller; eventually the IPI mechanism will unwind and the=
=20
      * scheduler will drop to the idle loop, which will call stop_cpu(). *=
/
 }
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 11:59:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 11:59:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267453.1556965 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7BHh-0000tg-IL; Mon, 30 Mar 2026 11:59:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267453.1556965; Mon, 30 Mar 2026 11:59: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 1w7BHh-0000r9-DH; Mon, 30 Mar 2026 11:59:57 +0000
Received: by outflank-mailman (input) for mailman id 1267453;
 Mon, 30 Mar 2026 11:59:56 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Mykyta_Poturai@epam.com>) id 1w7BHf-0000Nt-Ox
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 11:59:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7BHf-00CdRq-46
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 13:59:55 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 69ca65af-bab6-0a2a0a5309dd-0a2a4503af12-46
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 13:59:55 +0200
Received: from [52.101.70.120]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 69ca65ba-1947-0a2a45030019-346546784220-5
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 13:59:54 +0200
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by GV1PR03MB8639.eurprd03.prod.outlook.com
 (2603:10a6:150:95::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Mon, 30 Mar
 2026 11:59:52 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9745.027; Mon, 30 Mar 2026
 11:59:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=b0y66QiZM3Ap3iVY09S89Mtp4XI57DXDVjOXnhOD8hvneScOY/z5YTBJr9nSp78W95reA6BiCzDcbbp6BgRLDJ1l4cWSg45AG77EHUuIrIn0cNm5KAMatjALP+oIowAdS0rgWxLo3wIksuga7nyC8Ng4xAqYMJy6xqSI4ofeOsvk6ooQyh/lbK47AL0j8FY+mASuOV2OQ96VkTgoP1zt+3xTFjhjEC/jIPHFS3O223rgtiQNqvYqzhNV2tpS2DmO+Dl9EnYdlIM6b3b2cQ+nsKZrS3tcEPnhlfdlNVEANPsx1WWRPBx+GWonZuWmclBNI6xP/zvVjcN6N/Ner9NIzA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=E3iSLGPHqmeiKU0oUeQNqssLEt+HtM9f9hldHYWh/ZE=;
 b=hzch4FgvrxIqLQdoC2LSCfsrSyKComsehHgMloIhyOCD0e6hYfwEvAYRepoPv4G5tka8Wu5AQDy46xhuQbosK1C+tuZKyh4v5XBPORVeTXDc4o3K3oXcioydMnlBfUCiCyIBmYBnFnhBLyTQURKWwIg5aaH+3hj/G49g4Rsj0xAR+q+tWce03rCXkGYCuBsFHoNCr4RyJKq85t3Z0ida5F0FcjhO31USInhX2pfUK+5Tjo3x+0+z0PiwnyUGubCPSWezcxgNOfHnOdWiTjQYJZeDMHA23Cog/UZ1IQoXOy/l3xFsmR4u9dGh+1WuwG+jvH/AEzDV9MzvevJB7g3WPw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=E3iSLGPHqmeiKU0oUeQNqssLEt+HtM9f9hldHYWh/ZE=;
 b=HmS/CeHgsMMbd8zZAjwUZwClJeBYRIpwJ+4jCVIxQFLRpdFMYmUNhxPk8A9HAKxMkqYUCRIXOzAqxMisVQ3zSz9KjIzBVPtkjg0PuTFhuaI3Kl2r5OYJxUUrYTDAnA/zah6Dwc7Zlm9updCMUfBoz4c0KOdWhYcQWh5kHPlIHbRiGxfzTCeuYVEFWLUruaazg/xJ0tcCZsRhShESE8b3xQ1oQ7/mnP1UmXmR8s2r12Jy65xiWjdQdDg4zUblh9cCcDtXAqSi/yN3B8gK+8xNGCFYWdjXGDCSGeIBFpdwoZ9r1x4aeBXzlxRkq5cE2iL/x4aCTSrPDhoC+VzjpbG/qw==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>, Connor Davis
	<connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v7 4/6] arm/sysctl: Implement cpu hotplug ops
Thread-Topic: [PATCH v7 4/6] arm/sysctl: Implement cpu hotplug ops
Thread-Index: AQHcwDy3jsTaF4UzaEqMI3x4mLb6EQ==
Date: Mon, 30 Mar 2026 11:59:51 +0000
Message-ID:
 <9ac96559ed00257f347bd61b1e074fc3f6ce8a32.1774871881.git.mykyta_poturai@epam.com>
References: <cover.1774871881.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1774871881.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_|GV1PR03MB8639:EE_
x-ms-office365-filtering-correlation-id: 9b5cc244-782b-4fa6-1d85-08de8e53d9ca
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|376014|366016|1800799024|38070700021|22082099003|18002099003|56012099003;
x-microsoft-antispam-message-info:
 8QbRfh/jT9D8bw2p8y3/4Bxmdyh3Ry52U+h6cCl2Mxoyvfz6B635w5mGSRd6bWmhXSpREnHUbcacCTK/X/h6yW7mPhQ6MetZ8VXCSiPuEmsWxLMqrpdpdaGmNYiMrQ74VQI05C8xv6+P99vudpA2eBGCvrNw+bSYYuu+gmkMn1ocaGNIbZlqd97zUN8P5t9CjnJ3yaB1KS652Zp3RRuFSGpCwa49qEfQjR5Mn0wxBDLAe4nHvDRalnIiJkfW77dG3+tWZ29Yots7DrWtxi+SsdCGTrX+TFlU6LY8KZ0Ehm/Zheu8U7GOVGmpCHCRFZ+Xv0TwqP2QJo38aACEDsPbr3pAV0SGJU3A4l46meGRA0V0vXR5fx0GUryj4qq3n8xm9CE4MDwHygM02hHiXIFkt15+2Qhu3RVB8Pxai9oFs7VJbyGzX6Si2vRhJUgUVWapWptzJn3sTVWac9UwC3jHtuBfkRXCb+EhzSaExz1tv5WKapsN4xesAErfadWnSrBjndqFh9zMtPZtS8kSmYGMle4ga0MfmwXjQmQOJHBcd7AEFDXTnJSM5E0qcIQXo3WcPUlH7/6BaZlsuhoIBbS+9FHBQz64jVCIEdCmPCkwPvgbJIJZR+bJwnY4D/RF84Ug7RMrPpIOsg6+7MZAQRgJ4t+DfALBnPkFb6mK7vlQiLrSCcJRRUqgpRZk0kC9Z5VspK/5rP4FHac4bausvaxCL5GyjCMZcOgioN/vOKy+V4bj/jqfwiTPnXYN2kkWgvApGWE8GTwm8NqfglD902mOHerv8Ve8XQmYc9r4qv3Sqxo=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(38070700021)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?s+GKFinJO2KzNzs7rr0ldjBrWLx2VNvqFkailmvAS90KHd19+3brLQFted?=
 =?iso-8859-1?Q?WlnlcbJVzj/G2rGUAtkvJdGwB/mVJaVNrkHYbEXABEhCpb365yCYVq6YQ8?=
 =?iso-8859-1?Q?AclKtAcuyh2vWIiAlQ7Me3MjNRSyScIWVDGkp5yZgDdQb+eyUnZj5rsdOI?=
 =?iso-8859-1?Q?/zUoted/Z8bikYS6iSA0xeOMkApwgkyJ2j7gYvk/09HTaUNgZKut5Polld?=
 =?iso-8859-1?Q?ExNOfBdpxROrFPJ62KTnxCOfC0dpbTlFBDuQGc4i4xw2o1UefnSoGQudZ3?=
 =?iso-8859-1?Q?WmeFV/92MUH2d/u8LOK7hhG9CYxUDHYCBCi5PqmiB23vfx3VbokqrD87iA?=
 =?iso-8859-1?Q?BlOQacbIz0r2VWH41smWVfGOKJV3tm41BMbRraGhSBjbJ4kooJ+wmjyNOe?=
 =?iso-8859-1?Q?EhWN5rsVdJ334YBoNnP3zJljpmjlhLqcMXe3PcYZWGf3B+mJIiZjB3qLkR?=
 =?iso-8859-1?Q?dPdiNGBNxq9Ij0abgbEVx2BhvVoxL9mfYkpUB8oPiF7if9VVcIE5qpYa6j?=
 =?iso-8859-1?Q?enRGQms3/8TpNYF9H6dt34VV5pmoPcg7LfEMjiHK2oxysTWQDWVA+zdC8Y?=
 =?iso-8859-1?Q?7lC6Dc8zQTPUFjULPis0jbSFUpPDNpvdxDFu0sPp+6yamXQsaIlz7ZdtH7?=
 =?iso-8859-1?Q?wnbX0GVcNkpVA2WpXL+4sTYpZePNcJWbBhpv/dkEWc9Dm6IPFmJsgG37pP?=
 =?iso-8859-1?Q?aYNnTjcC8o/i3tCNTLsmbkn3RdG406+JArDREeAiZRM9H9CaIUpGo82Cxe?=
 =?iso-8859-1?Q?x72XLGegrH9zofOEUsShArt4Wi31KRPQe40tdYlZvOHuIzysUG/t5CulPt?=
 =?iso-8859-1?Q?fwi/fkmQvJg4OZ3vDiM5CCBCpjr/mfCdgX7ulAzrc4xQxBt8yWA4UCgtTO?=
 =?iso-8859-1?Q?n/0CI/mFgvwjbbwblF5/lLYyzL3YX3oAQ9Z++Qtmj9czx9Ylh9kTLPr+FZ?=
 =?iso-8859-1?Q?op2NXSHrYx1TFxZBhfF6Op7ySqxOQADt5MfPCsrjRYvrKaB7te+Hf2KDdL?=
 =?iso-8859-1?Q?yRHIVoIbXL6IKAm6VZKlyclpypVo8B9AJZ0aCvkJfvxGmkWSVQJmlysuyv?=
 =?iso-8859-1?Q?8l5onsGZHuozb+MdO/qYW/kib2O77Msr8uv53JGelRVAjqD3SahwhdcGl9?=
 =?iso-8859-1?Q?XBg8PSaUvfuo8mg7UU+GSm2Jc5pwjFtrtI+X29xTkOM1xXVfnhFsinxM7m?=
 =?iso-8859-1?Q?ViPwOtcRbT2c4c0lqRqbS22sGENQWsymO3f37fm7ofXBVcH4rleYDylX0p?=
 =?iso-8859-1?Q?PDOlR2C5B09F6ADuelDy3OhgC0lF2RjtHI1AMK1itcJ3xfPX3/49It5ijj?=
 =?iso-8859-1?Q?U3xqcyUfyLPIjc99HezGWRAjtvIc5raoLX+iXxmBWrtx1nfwKxvy3s76bb?=
 =?iso-8859-1?Q?295QOZSBLuxGkZRRXf6TwjUdC3FWpzyj+EzWL+suIOUKXV9C1tiWa4sSCi?=
 =?iso-8859-1?Q?7Tfjhng/sKrUZLswP7chXfBLgDe4e/i2NveQRMrMRR+3isv26GxdmFzQjX?=
 =?iso-8859-1?Q?wuJSxgg5jYGrZcVA7X2zi/lJVD86MEmopJeEoIdN6ixeCBgjQhQDKkUXEP?=
 =?iso-8859-1?Q?s7N9LTi7a4330OIjWNnZ3nA6Smb/dvRoqYWwbTbLWh//WGWzU88Y6mF16P?=
 =?iso-8859-1?Q?NbpTmzJMapkcChZEdvYoqVrOg/kMsOV6dloFYgXa5jepeB0iFKhQac+iRE?=
 =?iso-8859-1?Q?Nf6p6J5Kraw486MbEJo1VJCx9j0+9ZjAJg1roqdPP7SKOD5ULEoxewfNkr?=
 =?iso-8859-1?Q?6wTL0inKRDliDbkkbJdWbcxWEZYPmIgAkltmsAN9+IckPB5eHOl4v8H7A9?=
 =?iso-8859-1?Q?/X+k3xeng4uhl5NmBF9FVS569el0UjM=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: 9b5cc244-782b-4fa6-1d85-08de8e53d9ca
X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Mar 2026 11:59:51.6847
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: aqVUqB4LrCUeZfVqWuJjMdcPi2M9Kqbp20oQwQIizPoWYRAc7vcjWBl5SEnyHr6l9jKz+TIni9f00so3PyG4vA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR03MB8639
X-purgate-ID: tlsNG-33051d/1774871994-4885072C-57F18BA1/0/0
X-purgate-type: clean
X-purgate-size: 10644

SMT-disable enforcement check is moved into a separate
architecture-specific function.

For now this operations only support Arm64. For proper Arm32 support,
there needs to be a mechanism to free per-cpu page tables, allocated in
init_domheap_mappings. Also, hotplug is not supported if ITS enabled,
and partially supported FFA, or TEE is enabled, as they use non-static
IRQ actions.

Remove ifdef guards for x86 in flask, as cpu hotplug is now
supported on more architectures.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

---
v6->v7:
* use IS_ENABLED istead of ifdef in more places
* remove unneded variables
* more explicit fallthrough in do_sysctl

v5->v6:
* fix style issues
* rename arch_smt_cpu_disable -> arch_cpu_can_stay_online and invert the
logic
* use IS_ENABLED istead of ifdef
* remove explicit list af arch-specific SYSCTL_CPU_HOTPLUG_* options
from the common handler
* fix flask issue

v4->v5:
* move handling to common code
* rename config to CPU_HOTPUG
* merge with "smp: Move cpu_up/down helpers to common code"

v3->v4:
* don't reimplement cpu_up/down helpers
* add Kconfig option
* fixup formatting

v2->v3:
* no changes

v1->v2:
* remove SMT ops
* remove cpu =3D=3D 0 checks
* add XSM hooks
* only implement for 64bit Arm

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 xen/arch/arm/smp.c             |  9 ++++++++
 xen/arch/ppc/stubs.c           |  4 ++++
 xen/arch/riscv/stubs.c         |  5 ++++
 xen/arch/x86/include/asm/smp.h |  3 ---
 xen/arch/x86/smp.c             | 36 +++--------------------------
 xen/arch/x86/sysctl.c          | 13 ++++-------
 xen/common/Kconfig             |  6 ++---
 xen/common/smp.c               | 35 ++++++++++++++++++++++++++++
 xen/common/sysctl.c            | 42 ++++++++++++++++++++++++++++++++++
 xen/include/xen/smp.h          |  4 ++++
 xen/xsm/flask/hooks.c          |  2 --
 11 files changed, 109 insertions(+), 50 deletions(-)

diff --git a/xen/arch/arm/smp.c b/xen/arch/arm/smp.c
index b372472188..0ea64d2ee1 100644
--- a/xen/arch/arm/smp.c
+++ b/xen/arch/arm/smp.c
@@ -44,6 +44,15 @@ void smp_send_call_function_mask(const cpumask_t *mask)
     }
 }
=20
+/*
+ * We currently don't support SMT on ARM so we don't need any special logi=
c for
+ * CPU disabling
+ */
+inline bool arch_cpu_can_stay_online(unsigned int cpu)
+{
+    return true;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
index a333f06119..8f280ba080 100644
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -101,6 +101,10 @@ void smp_send_call_function_mask(const cpumask_t *mask=
)
     BUG_ON("unimplemented");
 }
=20
+bool arch_cpu_can_stay_online(unsigned int cpu)
+{
+    BUG_ON("unimplemented");
+}
 /* irq.c */
=20
 void irq_ack_none(struct irq_desc *desc)
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index daadff0138..7c3cda7bc5 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -70,6 +70,11 @@ void smp_send_call_function_mask(const cpumask_t *mask)
     BUG_ON("unimplemented");
 }
=20
+bool arch_cpu_can_stay_online(unsigned int cpu)
+{
+    BUG_ON("unimplemented");
+}
+
 /* irq.c */
=20
 void irq_ack_none(struct irq_desc *desc)
diff --git a/xen/arch/x86/include/asm/smp.h b/xen/arch/x86/include/asm/smp.=
h
index 3f16e62696..cb3e0fed19 100644
--- a/xen/arch/x86/include/asm/smp.h
+++ b/xen/arch/x86/include/asm/smp.h
@@ -50,9 +50,6 @@ int cpu_add(uint32_t apic_id, uint32_t acpi_id, uint32_t =
pxm);
=20
 void __stop_this_cpu(void);
=20
-long cf_check cpu_up_helper(void *data);
-long cf_check cpu_down_helper(void *data);
-
 long cf_check core_parking_helper(void *data);
 bool core_parking_remove(unsigned int cpu);
 uint32_t get_cur_idle_nums(void);
diff --git a/xen/arch/x86/smp.c b/xen/arch/x86/smp.c
index a49505fb57..b781e933f2 100644
--- a/xen/arch/x86/smp.c
+++ b/xen/arch/x86/smp.c
@@ -418,38 +418,8 @@ void cf_check call_function_interrupt(void)
     smp_call_function_interrupt();
 }
=20
-#ifdef CONFIG_CPU_HOTPLUG
-long cf_check cpu_up_helper(void *data)
+bool arch_cpu_can_stay_online(unsigned int cpu)
 {
-    unsigned int cpu =3D (unsigned long)data;
-    int ret =3D cpu_up(cpu);
-
-    /* Have one more go on EBUSY. */
-    if ( ret =3D=3D -EBUSY )
-        ret =3D cpu_up(cpu);
-
-    if ( !ret && !opt_smt &&
-         cpu_data[cpu].compute_unit_id =3D=3D INVALID_CUID &&
-         cpumask_weight(per_cpu(cpu_sibling_mask, cpu)) > 1 )
-    {
-        ret =3D cpu_down_helper(data);
-        if ( ret )
-            printk("Could not re-offline CPU%u (%d)\n", cpu, ret);
-        else
-            ret =3D -EPERM;
-    }
-
-    return ret;
-}
-
-long cf_check cpu_down_helper(void *data)
-{
-    int cpu =3D (unsigned long)data;
-    int ret =3D cpu_down(cpu);
-
-    /* Have one more go on EBUSY. */
-    if ( ret =3D=3D -EBUSY )
-        ret =3D cpu_down(cpu);
-    return ret;
+    return opt_smt || cpu_data[cpu].compute_unit_id !=3D INVALID_CUID ||
+           cpumask_weight(per_cpu(cpu_sibling_mask, cpu)) <=3D 1;
 }
-#endif
diff --git a/xen/arch/x86/sysctl.c b/xen/arch/x86/sysctl.c
index bdad44fef1..072726debc 100644
--- a/xen/arch/x86/sysctl.c
+++ b/xen/arch/x86/sysctl.c
@@ -120,7 +120,6 @@ long arch_do_sysctl(
=20
     case XEN_SYSCTL_cpu_hotplug:
     {
-        unsigned int cpu =3D sysctl->u.cpu_hotplug.cpu;
         unsigned int op  =3D sysctl->u.cpu_hotplug.op;
         bool plug;
         long (*fn)(void *data);
@@ -128,6 +127,7 @@ long arch_do_sysctl(
=20
         if ( !IS_ENABLED(CONFIG_CPU_HOTPLUG) )
         {
+            ASSERT_UNREACHABLE();
             ret =3D -EOPNOTSUPP;
             break;
         }
@@ -135,15 +135,10 @@ long arch_do_sysctl(
         switch ( op )
         {
         case XEN_SYSCTL_CPU_HOTPLUG_ONLINE:
-            plug =3D true;
-            fn =3D cpu_up_helper;
-            hcpu =3D _p(cpu);
-            break;
-
         case XEN_SYSCTL_CPU_HOTPLUG_OFFLINE:
-            plug =3D false;
-            fn =3D cpu_down_helper;
-            hcpu =3D _p(cpu);
+            /* Handled by common code */
+            ASSERT_UNREACHABLE();
+            ret =3D -EOPNOTSUPP;
             break;
=20
         case XEN_SYSCTL_CPU_HOTPLUG_SMT_ENABLE:
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 0e5b4738a8..9e26217404 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -638,9 +638,9 @@ config SYSTEM_SUSPEND
 	  If unsure, say N.
=20
 config CPU_HOTPLUG
-	bool "CPU online/offline support"
-	depends on X86
-	default y
+	bool "CPU online/offline support" if EXPERT || X86
+	depends on X86 || (ARM_64 && !HAS_ITS)
+	default y if X86
 	help
 	  Enable support for bringing CPUs online and offline at runtime. On
 	  X86 this is required for disabling SMT.
diff --git a/xen/common/smp.c b/xen/common/smp.c
index a011f541f1..e2bf82856e 100644
--- a/xen/common/smp.c
+++ b/xen/common/smp.c
@@ -16,6 +16,7 @@
  * GNU General Public License for more details.
  */
=20
+#include <xen/cpu.h>
 #include <asm/hardirq.h>
 #include <asm/processor.h>
 #include <xen/spinlock.h>
@@ -104,6 +105,40 @@ void smp_call_function_interrupt(void)
     irq_exit();
 }
=20
+#ifdef CONFIG_CPU_HOTPLUG
+long cf_check cpu_up_helper(void *data)
+{
+    unsigned int cpu =3D (unsigned long)data;
+    int ret =3D cpu_up(cpu);
+
+    /* Have one more go on EBUSY. */
+    if ( ret =3D=3D -EBUSY )
+        ret =3D cpu_up(cpu);
+
+    if ( !ret && !arch_cpu_can_stay_online(cpu) )
+    {
+        ret =3D cpu_down_helper(data);
+        if ( ret )
+            printk("Could not re-offline CPU%u (%d)\n", cpu, ret);
+        else
+            ret =3D -EPERM;
+    }
+
+    return ret;
+}
+
+long cf_check cpu_down_helper(void *data)
+{
+    unsigned int cpu =3D (unsigned long)data;
+    int ret =3D cpu_down(cpu);
+
+    /* Have one more go on EBUSY. */
+    if ( ret =3D=3D -EBUSY )
+        ret =3D cpu_down(cpu);
+    return ret;
+}
+#endif /* CONFIG_CPU_HOTPLUG */
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
index 5207664252..da95446039 100644
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
@@ -483,6 +483,48 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_=
sysctl)
             copyback =3D 1;
         break;
=20
+    case XEN_SYSCTL_cpu_hotplug:
+    {
+        unsigned int hp_op =3D op->u.cpu_hotplug.op;
+        bool plug;
+        long (*fn)(void *data);
+        void *hcpu =3D _p(op->u.cpu_hotplug.cpu);
+
+        ret =3D -EOPNOTSUPP;
+        if ( !IS_ENABLED(CONFIG_CPU_HOTPLUG) )
+            break;
+
+        switch ( hp_op )
+        {
+        case XEN_SYSCTL_CPU_HOTPLUG_ONLINE:
+            plug =3D true;
+            fn =3D cpu_up_helper;
+            break;
+
+        case XEN_SYSCTL_CPU_HOTPLUG_OFFLINE:
+            plug =3D false;
+            fn =3D cpu_down_helper;
+            break;
+
+        default:
+            fn =3D NULL;
+            break;
+        }
+
+        if ( fn )
+        {
+            ret =3D plug ? xsm_resource_plug_core(XSM_HOOK)
+                       : xsm_resource_unplug_core(XSM_HOOK);
+
+            if ( !ret )
+                ret =3D continue_hypercall_on_cpu(0, fn, hcpu);
+
+            break;
+        }
+    }
+
+        /* Use the arch handler for cases not handled here */
+        fallthrough;
     default:
         ret =3D arch_do_sysctl(op, u_sysctl);
         copyback =3D 0;
diff --git a/xen/include/xen/smp.h b/xen/include/xen/smp.h
index 2ca9ff1bfc..04530738c9 100644
--- a/xen/include/xen/smp.h
+++ b/xen/include/xen/smp.h
@@ -76,4 +76,8 @@ extern void *stack_base[NR_CPUS];
 void initialize_cpu_data(unsigned int cpu);
 int setup_cpu_root_pgt(unsigned int cpu);
=20
+bool arch_cpu_can_stay_online(unsigned int cpu);
+long cf_check cpu_up_helper(void *data);
+long cf_check cpu_down_helper(void *data);
+
 #endif /* __XEN_SMP_H__ */
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index b250b27065..01f9d50605 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -835,9 +835,7 @@ static int cf_check flask_sysctl(int cmd)
     case XEN_SYSCTL_getdomaininfolist:
     case XEN_SYSCTL_page_offline_op:
     case XEN_SYSCTL_scheduler_op:
-#ifdef CONFIG_X86
     case XEN_SYSCTL_cpu_hotplug:
-#endif
         return 0;
=20
     case XEN_SYSCTL_tbuf_op:
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 11:59:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 11:59:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267448.1556931 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7BHf-0000FO-36; Mon, 30 Mar 2026 11:59:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267448.1556931; Mon, 30 Mar 2026 11:59: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 1w7BHe-0000FH-W9; Mon, 30 Mar 2026 11:59:54 +0000
Received: by outflank-mailman (input) for mailman id 1267448;
 Mon, 30 Mar 2026 11:59:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Mykyta_Poturai@epam.com>) id 1w7BHc-0000F3-TR
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 11:59:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7BHb-003QIn-Ua
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 13:59:51 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 69ca65a8-2eae-0a2a0a5409dd-0a2a4509bac8-38
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 13:59:51 +0200
Received: from [52.101.66.84]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 69ca65b7-e484-0a2a45090019-34654254c0bd-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 13:59:51 +0200
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PA4PR03MB6847.eurprd03.prod.outlook.com
 (2603:10a6:102:eb::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Mon, 30 Mar
 2026 11:59: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%5]) with mapi id 15.20.9745.027; Mon, 30 Mar 2026
 11:59:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BwPh2pPLeNyySPkiQaNd8fxmzTf+vZuT/R8mdzKu8rbDFXkDGdSvjUuBQ2dFGdI8koRQDXFKwhOuS96JYkUVrd/ylrQ15YmQkmanUaAK15OGSl1sLxYgeRBZojrutNd6wp/H5w1c/fad9ZnAgNGOme1lN5Jr0E8caqnAqXPHkIdEyF2j9cgk0ldHmbw8DddHJ9eF6qoU5Js/xSm9HXzXdTqrLd8z4B3KDbcDFF5k3VJ8lokoObkV2sfJHA9YO7CJEBrTJBW9+kbqdgaS9beFGEWtDx9y7RZ0ypeYizbbiCh5d1tqfzXawbXFEsjhTrtZKbtlCLDUzEjRWiYUy9w3bg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MQjhq1ZOYxXuFsg+35Krc2rMKNWMSZXODxY3onBl7+c=;
 b=ZgHtO57SnnMmKHTMUVIlZEwUxbzQUBdixYANRkJnw10twlMP6mTs1xhuxlfsQejwHPCuoSYeRirHHIPNxKJRZK9q4eNM/Jb4UJjNnOu5kA6XnXtj47NC46n2sWaOAzHtPgwtmU+ms2i2JExfmr7/adsC73NMhND/yNsz3hZ6oZw0vSgkjAl3Qk9KLxr+3QdJ+lL3YDpauZDlb4TUf+qktYfRCihdJjovP4E4pbs/DTI/JbCvioPlA9lyFFWupcIDu6iPWdvqvfbSbf1DarpPMyfvCu/CJ2SV4tSxWVbWhbCdboDGZijVdilSX5voLdSVlN3/iwU/j/UClwQAVNxlNA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MQjhq1ZOYxXuFsg+35Krc2rMKNWMSZXODxY3onBl7+c=;
 b=t5zJc7fgDX9LbJ8D/2ZpK8HrQKs7r+uHtQbt8bOKSUmirply/3dC+QrDaamcrozoKn0bPmFbnyUJHchtMC5NhEqZE0ykqMcwj8jk5LJ1KgVSUP/owpYpnmT8Hp/IDE+TstXAw+e/x5+J4TK+oWoOm9ETOcaL0+hmCS/txm8lek95nOK3HUALNDXKB93ibuivE6uv5DtBcxEXgOpRKAK6Qwd/gJIO9SanEwl3/wgzRctk9dQ3XsrTjl4UY4UhDAclosc2B/ZUC0YAa60fbQNNUpTxOp5IJFv+m8Qbp269WxrzC3RnTPo5isijCfSpOW9OQo1X10acxD7L5E306fALqw==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Timothy
 Pearson <tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Connor Davis <connojdavis@gmail.com>, Oleksii
 Kurochko <oleksii.kurochko@gmail.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Juergen Gross <jgross@suse.com>
Subject: [PATCH v7 0/6] Implement CPU hotplug on Arm
Thread-Topic: [PATCH v7 0/6] Implement CPU hotplug on Arm
Thread-Index: AQHcwDy1/SbobzFSYEOfZMP9koGeVg==
Date: Mon, 30 Mar 2026 11:59:49 +0000
Message-ID: <cover.1774871881.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_|PA4PR03MB6847:EE_
x-ms-office365-filtering-correlation-id: 03c07f55-5c41-4716-eaef-08de8e53d85b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|7416014|1800799024|56012099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 eTBr1rJYGVd3Z4KuyC2C6YBMzSGcjqAE+V0LLqkinW+ccxrQf6uze2psO+1+teB2Oga3vxZHo4paGjewbxRcyaaRA5k1lhdXu+Y/r6lMeQubfX0pWujR8jXjr5nWY2SSU1Eb1YDUdOO5TlyU0XCOXMqQpQvZcNkRkbTtpHyRgYhys+IsJyF8qwgiJnV7xoQgmxVv52wNq/pZzw+p2IQkJHUbK8Cy94c2z3doEAMSxgAqZdFcvZ0OmqUmRI9uI0jGYPHzbgSJ8otpHm1lMDMGd8beBXv8eciXOeM3hbg96AYCQlOzkLZ1ZGQIx21u49JPzNDUMQMo2TjotoK2GsL+W3kunCotkjeorcIfSWg/kCj9YwltGejmenogP+Aw7XGXw1cgzGQtkPy5fozkeeMs0d7/VG0b5B9ydNKo+HhmzCPnthMVeXeWVmzdSURH6ZK1cvOB4ajcvMahZoBSvKVzKY1Jg9vgFOrh2+84hzmETrhcG9TXcsaWgPDUovRfjTio4g/ZzOGbEIbmR7wHIRfG//SyOdKOtNu5OWQvc/ag4viZwC3PFKzfAxFKJEQW2OtZYn9WviW4o/g+RZsr74Y1xDua6aaNNJujk3GFpXXYpYw+O5g1UfXLXbCaG9LLKB9BEjaDx3QSKqOhkSsoc86bLcvNuDLicZyIhs4OPXCtepz8SCbKk2uPyU8IbRqunf+4vNsuNkE5qkxqXAO8VZ/caMZIaa3WFZZtTYfsHCz0tZoIyuwoPTdqlmApct1bjJK/rs4+v6aVwFfqWsrexk9ySJGw4lcUkCCf3kom+wc3GDQ=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(56012099003)(18002099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?boUnFz6qCNMN3/p7sFeL29fAdlaNQFq99qzjZbwyZhOlCwH6HFqBvvnj9Y?=
 =?iso-8859-1?Q?HHBTqP/7CuljramSpxuqubk1C65yJUDjrPi3+RwnbJgkk1poeSiHjUMEPr?=
 =?iso-8859-1?Q?WocvDoxlS2/D8Sb5iPWYTTDInkOC979LYWOkVFxZ4H6eiiPfZDrzm8LfTW?=
 =?iso-8859-1?Q?P/a7cZZkF6UnwAvWuigUaBDAwOKJmCaRs0cei5KemaSTmKUas7TXxmV1zS?=
 =?iso-8859-1?Q?KKRabBqFUBcnmJkaeyDVWRZnFd67d7Q+AY7lWY/bSkh9jh5a35QZvIzpIM?=
 =?iso-8859-1?Q?VEq6QvVmjwAK5A9uIdiaSU65G1I+94PW9UjQSXS58DAKmkyuR6NWpYtpQc?=
 =?iso-8859-1?Q?ih6QSEii0Eiw4f48ez9B/30eUeU3mT3EvsClMa+DGYiFhDZNy1y1p9K3Xs?=
 =?iso-8859-1?Q?aRhBQLxvj75aTWMeXjwOGn4Cnku8h+4XnJGFQEK70VmnS0nQQmThiMg6bp?=
 =?iso-8859-1?Q?fHqftAD4lXEY+d6p4uIJZr1PcKtt+DjgNXhxRIBBkHsm5ZRXAIvP5xhoic?=
 =?iso-8859-1?Q?ib50tHWu+vZBz636fGsi+jlOnuebZBxfRC6xyAevUhWoJB6iN8DZjFGsx7?=
 =?iso-8859-1?Q?BAhQ75TOnLBLh9/OCti4bLNB9fYK62JyUGmMeRyhK02XlPl+3T7pFfIiE+?=
 =?iso-8859-1?Q?oa+vWOF9H4vYJGuN1MUJDabCw0NXMQn6uyL5aUT5VLhl8j1KvmfDB6Aipx?=
 =?iso-8859-1?Q?r2jqSh//6Q+3mDuh0NMgOEJVvY/v/Np6ZPiidDDq680S2sTfW7iOjuOVlM?=
 =?iso-8859-1?Q?Cw7Hr4AqUT+fziN5HtdmaMvSFUnpwnNHyzEX6JJJppVq14+4+g7ApJ9YbM?=
 =?iso-8859-1?Q?mHZd+5BIZd5PaTXrxGZMQ7uXKi05B64G3LTi6Sj+xC30XjahueKLJtYpbU?=
 =?iso-8859-1?Q?kjTJ1lMIoc9/Mvla8N/YBWAuYZGOJ7zuOg612DPychtWbj2r1uZ1+Bryg8?=
 =?iso-8859-1?Q?EPXnwN0vWE8nbBoQYuCBzWzhvM6f3uAMQtP2TYBNeVmmtCFXZJydvWxhsI?=
 =?iso-8859-1?Q?+Pm1DFPz9fncdd2L5cDrRO0lEN/Myxg9DddwBhs7GqnmyhzUZF1mQuPi9z?=
 =?iso-8859-1?Q?lcdX6ZNY9c2wBZkWvXE6pmFgdBc7OM+SNj/DELlDI4DOWyyCUbd1KAjeWa?=
 =?iso-8859-1?Q?8r0Z1p0Hd6FbBXZFx2jHrB06d4T+VN9fZeTlLQujyFLE2HH0UwbJSW4zzC?=
 =?iso-8859-1?Q?N2mTIGcUJrW9kQLS7Oxma6O+LuibAjKAkOiuBt66fjBAUmY4OYfPTLgpRm?=
 =?iso-8859-1?Q?Gs0plGDVL/hFTLwT+xBesi9b2jAfvpTuSBFhzLGVv+OSwIr7edgh/yofIu?=
 =?iso-8859-1?Q?yX8im7aFzgKb4OLXGT7VRhRouoZbgFUz94b1eX6euKVX93jJFddhqABXPT?=
 =?iso-8859-1?Q?9BgfPa2Aytr+CbsBFnxnfW2B5/xH/wO5Ko/pIJlEyqxC97A4Kx3Ab7o8gs?=
 =?iso-8859-1?Q?QhVZhuYs9imtzQu9tji0aHhdB2/2fYdX05YLkib+S54FvQZQvzdWK9mcQ2?=
 =?iso-8859-1?Q?E5ugt0b7qRt1SZEDhFsK+9A88Imhk4RkV+qj7VisbvsePNVafjM9KglRZf?=
 =?iso-8859-1?Q?G+OlRePoulRRSuhSXMyQZU+1hAEkMQwe6YxTOtKG/DO9WSqRu/tlrNtmx3?=
 =?iso-8859-1?Q?sBMrKli5kPTZqsG7vbowYs5pNNs+PAncZqyTP3+7cOkYIgH+7WFSuOxuAB?=
 =?iso-8859-1?Q?8vVNisQCFDDIulTob4dxjCJXuDOcXQeub4RkUArS6B+f70b93O0jpOSX9U?=
 =?iso-8859-1?Q?YWbLgzpTt9uCzFVmyntkaF1YDlm6UucxacensU/HiGc9SHxXum+0kPR2mo?=
 =?iso-8859-1?Q?FeSulVYBvUavkXf0bKbdZxZEWjAsY60=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: 03c07f55-5c41-4716-eaef-08de8e53d85b
X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Mar 2026 11:59:49.5871
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 4pyTL2G3DQ5ij9MSVkfVkJ0EDMoTiqBCFppu4CHK2R/Df1RCoKxrMH8sZBhWSBqcqroktOFPz0dyWA8uAb8o6A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB6847
X-purgate-ID: tlsNG-bad1c0/1774871991-6894EA73-20CC0BB4/0/0
X-purgate-type: clean
X-purgate-size: 2214

This series implements support for CPU hotplug/unplug on Arm. To achieve th=
is,
several things need to be done:

1. XEN_SYSCTL_CPU_HOTPLUG_* calls implemented on Arm64.
2. Enabled building of xen-hptool.
3. Migration of irqs from dying CPUs implemented.

Tested on QEMU and R-Car Gen5 HW.

v6->v7:
* new patch "Kconfig: Make cpu hotplug configurable

v5->v6:
* see individual patches

v4->v5:
* drop merged patches
* combine "smp: Move cpu_up/down helpers to common code" with=20
  "arm/sysctl: Implement cpu hotplug ops"
* see individual patches

v3->v4:
* add irq migration patches
* see individual patches

v2->v3:
* add docs

v1->v2:
* see individual patches

Mykyta Poturai (6):
  arm/irq: Keep track of irq affinities
  arm/irq: Migrate IRQs during CPU up/down operations
  Kconfig: Make cpu hotplug configurable
  arm/sysctl: Implement cpu hotplug ops
  tools: Allow building xen-hptool without CONFIG_MIGRATE
  docs: Document CPU hotplug

 SUPPORT.md                        |  1 +
 docs/misc/cpu-hotplug.txt         | 97 +++++++++++++++++++++++++++++++
 tools/libs/guest/Makefile.common  |  2 +-
 tools/misc/Makefile               |  2 +-
 xen/arch/arm/gic-vgic.c           |  2 +
 xen/arch/arm/include/asm/irq.h    |  6 ++
 xen/arch/arm/irq.c                | 68 +++++++++++++++++++++-
 xen/arch/arm/smp.c                |  9 +++
 xen/arch/arm/smpboot.c            |  7 +++
 xen/arch/arm/vgic.c               | 14 ++++-
 xen/arch/arm/vgic/vgic-mmio-v2.c  | 11 ++--
 xen/arch/arm/vgic/vgic.c          | 21 ++++---
 xen/arch/ppc/stubs.c              |  4 ++
 xen/arch/riscv/stubs.c            |  5 ++
 xen/arch/x86/include/asm/smp.h    |  3 -
 xen/arch/x86/platform_hypercall.c | 12 ++++
 xen/arch/x86/smp.c                | 33 +----------
 xen/arch/x86/sysctl.c             | 24 +++++---
 xen/common/Kconfig                |  8 +++
 xen/common/smp.c                  | 35 +++++++++++
 xen/common/sysctl.c               | 42 +++++++++++++
 xen/include/xen/smp.h             |  4 ++
 xen/xsm/flask/hooks.c             |  2 -
 23 files changed, 348 insertions(+), 64 deletions(-)
 create mode 100644 docs/misc/cpu-hotplug.txt

--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 11:59:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 11:59:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267449.1556937 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7BHf-0000IC-CZ; Mon, 30 Mar 2026 11:59:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267449.1556937; Mon, 30 Mar 2026 11:59: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 1w7BHf-0000Hm-6m; Mon, 30 Mar 2026 11:59:55 +0000
Received: by outflank-mailman (input) for mailman id 1267449;
 Mon, 30 Mar 2026 11:59:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Mykyta_Poturai@epam.com>) id 1w7BHc-0000F4-WF
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 11:59:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7BHc-003QIn-8F
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 13:59:52 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 69ca65a8-2eae-0a2a0a5409dd-0a2a4509bac8-40
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 13:59:52 +0200
Received: from [52.101.66.84]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Mykyta_Poturai@epam.com>)
 id 69ca65b7-e484-0a2a45090019-34654254c0bd-4
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 13:59:52 +0200
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PA4PR03MB6847.eurprd03.prod.outlook.com
 (2603:10a6:102:eb::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Mon, 30 Mar
 2026 11:59:50 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9745.027; Mon, 30 Mar 2026
 11: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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IXKq9730CIG8FDs14n6+zIQP3QWBKuUeE9//gOy6VPERJ47vRa6VCMJ4fPuWbPXtCT3XHGIO2KHfvOMho2d8dXf1qHfbG8DmefpI8y0HCIE55Pjvc95n06AMPyy8TI8xxgGg89L/tiXimI307krVDafL2YeC5++G605zg6AWiMz7bbB7xgZtcihblLX+UZLNF6uJ/CdOoR1TaEXG73iKSqRI8kS9enclgKutv0sGOcdnSSFP/5UuUEy8GuGS+3DJ8juHOlW+zys5ra5KT8n8tZn7W+szyYu//ouyaob1agGQtIpk8C1bSZYk+vt8HAc7a5RSH3mIkth3CGLZYvXZlQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=v1iQlWpWUlX2W69fYSmCagQKGYvJZO6E1KFm/axIUUg=;
 b=g8ov3+pshNY746ORxGglTCSQNSJXjM7mwsVFK9EUrb5p8EDd6919GA3u7P+ULvEaQm6uAv774O/fyP5DMTEzR/VTFT1lof3g9NxMdpbMftfNzAF+lysxqiuaZAGLLpYPt0RyKuBxRQvcwML5WrAt8TnSYYoxvwrrp/0tkn2kXX/LgwQ4eWFj0I4tNhn5cIpwDR0a7Nrb9VrDZh+sBFIkHbsnrACJuFUgw4DDQIQkvhAzNs8+NxkYEt01qcpGk+/Bt0Wwm1x2BVgswpMZ1VlKdg575TtV5H4kPluK9VkjZoEoW3y5a4Z6X7yy5WLE1JIcdEaOvMC5+Xt5YDdxuz/7mw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=v1iQlWpWUlX2W69fYSmCagQKGYvJZO6E1KFm/axIUUg=;
 b=DvL2aOqrRNw73RDbq7Q/Sx5ZJCzV33PWcpajV+fIi9Q6VzbzmKBggdkWlVvwVrCtsfYsvyL/Ekh6H3laI68IPxWeYVi6BWjmyfCxXFL6oeCI3kj6s2BYjVTV289Yx5JM14/gNkm0imJ5NXuPzjvQvJBaxvjFY3+0p1nM0fHOvsEqJ62FS2KOhqetEyR4YYYket9YqVEWfXD6KTIweFotVw6JssyDAnKWf2XXLfBGFa3J0z5R8AEMf4EP/O5lp0YH1khV37qcje3p60aay345F6Br0mX0amMYOVF5r8z3H6E6angVLAREJOrRUw63kwbF0hVvk+wEor3Q0iU+BqLmMg==
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 v7 1/6] arm/irq: Keep track of irq affinities
Thread-Topic: [PATCH v7 1/6] arm/irq: Keep track of irq affinities
Thread-Index: AQHcwDy2nbDObKGCpEa2H43UsrK34Q==
Date: Mon, 30 Mar 2026 11:59:50 +0000
Message-ID:
 <0ff697dc791aeb6c2a44db93b862ec381a1e7468.1774871881.git.mykyta_poturai@epam.com>
References: <cover.1774871881.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1774871881.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_|PA4PR03MB6847:EE_
x-ms-office365-filtering-correlation-id: be2a7249-5093-41c6-186a-08de8e53d8b2
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|1800799024|56012099003|18002099003|22082099003|38070700021;
x-microsoft-antispam-message-info:
 gnBdlEtCEzoZajGMVs650NqjZddKBJRCPWOQvPVytpSzXPrPDTU9ePLwMSF+3vzD3LGVAM9QGG3yYcVHJY7+b7h/gclyAWW2ZBG5kKtkIAo/EXRwBwttgBSLO8cqKHWGsUvJlwwWWWgs9AqjJbk4qyjykjyHpmPlNv30fC63T9jb46MaPhBZ09EM55WZwxDe8OjliL3tYMc5vnA3pwCbtADLNaWGG+sx7WC0f48FTaG/K2ocDXH4DtmpSHBL2oKEUqEVRCaLPHLYIwiIN2FHp2d5iGFMlci7WT37isH/dQWnjHh0FQG2My5Y85LApPZBmfwspmlsfNxaQmI9JiWryAaRmgvsMp5LYLkCouUs5k6QN8Frm2D3misxTDYg0cvDmsaN2O+/S3QS/ZhGxmZ7Ap/YrIEAvscof5JSzAme/p4tXy/SRpwP79hXNEdsQM4TDrfu45QWYbJds16ktFli0wb6cWDdZ2/T1XEc+c3RBveLGlyOnet9m+ojBWM9pAb6CGtpVbnbvLhmveN5gLu8QUviwTO3ddV3q84bO9nr+QUMstkfvUyBVeRBWN9tTs3JeVpge/LofTxNl/XOo8fTbOxGm0aPQJ599AE0TdpkSK9/HFUtOX+P339NW3G3nnByQ0MOZaHlJZl7iMXdG7ow043snTUzgIXfwEIe+omNTJ10yhKCPnoL8v1nEMUNdtGNa9xclAPISpUKS0RRQnVpq6e7JmbeOKF8MIswCXLsJkyCVusxuuxXK6wrnuCz/8Yd46M7998xter9Sk3hQpdG1fpQkXMQanDedDuVgR/pFds=
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)(56012099003)(18002099003)(22082099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?TuSvTM3f6ViM80kTjl/9Z+e29tfyMPyps358Ahtc7FnNYkwcqav+kcro3c?=
 =?iso-8859-1?Q?AgIZER/z1ALKyCTCfQINEBoRPE36CtD3FOxdkRFJKLnagHHKWqxyFJNIaP?=
 =?iso-8859-1?Q?9DacwkpS1Zg7+RfaxE2yEjM9oEwwCEV9BybTckx+SBF+EgkfJ8c7PThTsX?=
 =?iso-8859-1?Q?R5yMPldfPRLzkQ+RYsJEvIWP7aOzuAOoAf41R3Zhw4pGpMbf+5JrTj54uc?=
 =?iso-8859-1?Q?EiM/fxN4GZhuueJRfWJJNu9dueup+xMOWtP7IxqJuz18bNJ9gpzp6Ho7sa?=
 =?iso-8859-1?Q?HqJ/vxtyPpZL4jSP0c7sefkD4cQx03trFZx7D7242qQlgrButyow3iRXBU?=
 =?iso-8859-1?Q?+CAs7CpBhwgLCj40jka+xjk4w+aX4QMIDHPnB3eZQLYBdXuz7gvY8l49IQ?=
 =?iso-8859-1?Q?CAC4lXtW77+2025USmeXZheaNeTdlzzahjyyRbqsRF7pav9PFuqRVS1jKN?=
 =?iso-8859-1?Q?KMni4NCxMg/Iek+5CHnRuTzMgr3+eEuclNC8XntzjQrgZyRZ5JOk6Vu2y0?=
 =?iso-8859-1?Q?90/aBIgQ/ItgzdMFiz/ETw/MFUimS2gOO8Qxa3rYoxxtp9eySKhKaRhTdt?=
 =?iso-8859-1?Q?qUhOCJ4vOfSC96qoOBAl1o8HAsEkF1G0mpz47sBfhTvVdyjZezs/c0IxDS?=
 =?iso-8859-1?Q?NJXCOj196UrBVebNX8g0S+IKNN/6b/IYsUpEnNEPO+pnKOwWf7cf/jND17?=
 =?iso-8859-1?Q?PKw8aAua63VXYb+ZEJnsvBC7t8clr5aXItG9xZQKFAgY86np3bXTxkbsoA?=
 =?iso-8859-1?Q?SYrwLY4bN1sE52HdnJdW2QjE2Ikc929LMyp494Rdnsx2DGvFo2Yi+uQYe+?=
 =?iso-8859-1?Q?xqmBqv56kNfDmeMIcLfKZR1e0gJ9h6Wx/Sd//qLpv8j9YhbTWBOaWd8fR2?=
 =?iso-8859-1?Q?rZZ61EWLiSyv805IixHA0xoOEkI5Y0AghoQ6F7/j9FSRPEAdfX9426285w?=
 =?iso-8859-1?Q?n05JaP8CP8dfpY0rr6P3fosEQK2JxACZCfTuf6GAPnl2FxRCp/DVn/cMlN?=
 =?iso-8859-1?Q?czmVvAPqkv2kiwlARGVW1kMJQOcpJ3wdiUbDT/OVQEnzooC1Ct87zvpbwF?=
 =?iso-8859-1?Q?affhfLqn01PFxbKORiEBUYqwHVmHc0EZ0P2qr+4dDpIpliLL+pE0L8qgYF?=
 =?iso-8859-1?Q?umN4C94DEP73IdXY7wp+W29Z+QMJYyV24ztGAfXfCb6wPa6Uo1LUnI3fAf?=
 =?iso-8859-1?Q?wxTc5ne0aBxXLg5fAIY2/xPbBIAt3YmE3MS/JNaUbWJhumCxWl4yW+62IY?=
 =?iso-8859-1?Q?5JoMbKKBccDtpb/JHWtCmQ5JPdmKmf4RyDkx724NWh6ku2WNx5abEe2tox?=
 =?iso-8859-1?Q?AlqEu8zpjetaSnwpnCJY6GTgoGN/1N6gWE0rQ0LfAqRmOU90OZk3QeLdHJ?=
 =?iso-8859-1?Q?faWjpQ6DCqvac4l/0MRcxd8JcTcsUHvBI8cJNHYANMFPJgKbuO15eoQdaP?=
 =?iso-8859-1?Q?cX3w3eWzPhEPsqn+sTweKbsAkwUrJG2jiaQjBpdv0foTfpwy9Mu0ZzpzI4?=
 =?iso-8859-1?Q?S6oCCnc4psfe9kZcmU7NL10v9HMj3eYOw/3zmY+TLPKVNp5/gf0UcHXXP/?=
 =?iso-8859-1?Q?u2UBLaWhIfOG3LqWXYSlCv6q6cTy34aiDLVrU2WNL20eti4OstNkqT6pmS?=
 =?iso-8859-1?Q?jR2KKbFPy4ivyll2t20xteGcnc+w8YcUA6psT73QVLpVRaQOAMoV/aiYTj?=
 =?iso-8859-1?Q?p6NceTLZ+Sk7M//7crq9oS61CDz+F1lAZUnoqIZjUPD9lodUZ9BBjlOFel?=
 =?iso-8859-1?Q?qv+m+gWRIopca3IAKDISjfKlrlICsl8jsPc0Xw5joHwadIelMz75maFibs?=
 =?iso-8859-1?Q?/FkeU+YdUw5cK+WTr1pIgBYtCgTIfDw=3D?=
Content-Type: text/plain; charset="iso-8859-1"
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: be2a7249-5093-41c6-186a-08de8e53d8b2
X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Mar 2026 11:59:50.2131
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: WTQ6777rsV0tXglTjQKIm//O4hlULHrdbL8t16ASMvrV4G+rhd+2JhZL83A3bvIYUePA1C6olV28loJqq4O45g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB6847
X-purgate-ID: tlsNG-bad1c0/1774871992-69D44A73-30B83DD5/0/0
X-purgate-type: clean
X-purgate-size: 7495

Currently on Arm the desc->affinity mask of an irq is never updated,
which makes it hard to know the actual affinity of an interrupt. Fix
this by updating the field in irq_set_affinity. Changing desc->affinity
requires desc->lock to be held, so add an assertion to ensure that
callers of irq_set_affinity are doing so correctly.

With desc->lock now being required for irq_set_affinity, add locking
around calls to it where it was missing.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>

---
v6->v7:
* update commit message
* fix possible locking on null desc
* collect RBs

v5->v6:
* add missing locking around irq_set_affinity calls

v4->v5:
* add locking

v3->v4:
* patch introduced
---
 xen/arch/arm/gic-vgic.c          |  2 ++
 xen/arch/arm/irq.c               |  9 +++++++--
 xen/arch/arm/vgic.c              | 14 ++++++++++++--
 xen/arch/arm/vgic/vgic-mmio-v2.c | 11 +++++------
 xen/arch/arm/vgic/vgic.c         | 21 +++++++++++++--------
 5 files changed, 39 insertions(+), 18 deletions(-)

diff --git a/xen/arch/arm/gic-vgic.c b/xen/arch/arm/gic-vgic.c
index ea48c5375a..5253caf002 100644
--- a/xen/arch/arm/gic-vgic.c
+++ b/xen/arch/arm/gic-vgic.c
@@ -232,7 +232,9 @@ static void gic_update_one_lr(struct vcpu *v, int i)
             if ( test_bit(GIC_IRQ_GUEST_MIGRATING, &p->status) )
             {
                 struct vcpu *v_target =3D vgic_get_target_vcpu(v, irq);
+                spin_lock(&p->desc->lock);
                 irq_set_affinity(p->desc, cpumask_of(v_target->processor))=
;
+                spin_unlock(&p->desc->lock);
                 clear_bit(GIC_IRQ_GUEST_MIGRATING, &p->status);
             }
         }
diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 73e58a5108..7204bc2b68 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -216,10 +216,15 @@ static inline struct domain *irq_get_domain(struct ir=
q_desc *desc)
     return irq_get_guest_info(desc)->d;
 }
=20
+/* Must be called with desc->lock held */
 void irq_set_affinity(struct irq_desc *desc, const cpumask_t *mask)
 {
-    if ( desc !=3D NULL )
-        desc->handler->set_affinity(desc, mask);
+    if ( desc =3D=3D NULL )
+        return;
+
+    ASSERT(spin_is_locked(&desc->lock));
+    cpumask_copy(desc->affinity, mask);
+    desc->handler->set_affinity(desc, mask);
 }
=20
 int request_irq(unsigned int irq, unsigned int irqflags,
diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
index 6647071ad4..c59f6873db 100644
--- a/xen/arch/arm/vgic.c
+++ b/xen/arch/arm/vgic.c
@@ -445,7 +445,9 @@ bool vgic_migrate_irq(struct vcpu *old, struct vcpu *ne=
w, unsigned int irq)
=20
     if ( list_empty(&p->inflight) )
     {
+        spin_lock(&p->desc->lock);
         irq_set_affinity(p->desc, cpumask_of(new->processor));
+        spin_unlock(&p->desc->lock);
         spin_unlock_irqrestore(&old->arch.vgic.lock, flags);
         return true;
     }
@@ -453,7 +455,9 @@ bool vgic_migrate_irq(struct vcpu *old, struct vcpu *ne=
w, unsigned int irq)
     if ( !list_empty(&p->lr_queue) )
     {
         vgic_remove_irq_from_queues(old, p);
+        spin_lock(&p->desc->lock);
         irq_set_affinity(p->desc, cpumask_of(new->processor));
+        spin_unlock(&p->desc->lock);
         spin_unlock_irqrestore(&old->arch.vgic.lock, flags);
         vgic_inject_irq(new->domain, new, irq, true);
         return true;
@@ -473,6 +477,7 @@ void arch_move_irqs(struct vcpu *v)
     struct domain *d =3D v->domain;
     struct pending_irq *p;
     struct vcpu *v_target;
+    unsigned long flags;
     int i;
=20
     /*
@@ -494,7 +499,13 @@ void arch_move_irqs(struct vcpu *v)
         p =3D irq_to_pending(v_target, virq);
=20
         if ( v_target =3D=3D v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p->s=
tatus) )
+        {
+            if ( !p->desc )
+                continue;
+            spin_lock_irqsave(&p->desc->lock, flags);
             irq_set_affinity(p->desc, cpu_mask);
+            spin_unlock_irqrestore(&p->desc->lock, flags);
+        }
     }
 }
=20
@@ -574,8 +585,8 @@ void vgic_enable_irqs(struct vcpu *v, uint32_t r, unsig=
ned int n)
         spin_unlock_irqrestore(&v_target->arch.vgic.lock, flags);
         if ( p->desc !=3D NULL )
         {
-            irq_set_affinity(p->desc, cpumask_of(v_target->processor));
             spin_lock_irqsave(&p->desc->lock, flags);
+            irq_set_affinity(p->desc, cpumask_of(v_target->processor));
             /*
              * The irq cannot be a PPI, we only support delivery of SPIs
              * to guests.
@@ -944,4 +955,3 @@ void vgic_check_inflight_irqs_pending(struct vcpu *v, u=
nsigned int rank, uint32_
  * indent-tabs-mode: nil
  * End:
  */
-
diff --git a/xen/arch/arm/vgic/vgic-mmio-v2.c b/xen/arch/arm/vgic/vgic-mmio=
-v2.c
index b7c2d7ce99..fc04741ca1 100644
--- a/xen/arch/arm/vgic/vgic-mmio-v2.c
+++ b/xen/arch/arm/vgic/vgic-mmio-v2.c
@@ -159,24 +159,23 @@ static void vgic_mmio_write_target(struct vcpu *vcpu,
     for ( i =3D 0; i < len; i++ )
     {
         struct vgic_irq *irq =3D vgic_get_irq(vcpu->domain, NULL, intid + =
i);
+        struct irq_desc *desc =3D irq_to_desc(irq->hwintid);
=20
-        spin_lock_irqsave(&irq->irq_lock, flags);
+        spin_lock_irqsave(&desc->lock, flags);
+        spin_lock(&irq->irq_lock);
=20
         irq->targets =3D (val >> (i * 8)) & cpu_mask;
         if ( irq->targets )
         {
             irq->target_vcpu =3D vcpu->domain->vcpu[ffs(irq->targets) - 1]=
;
             if ( irq->hw )
-            {
-                struct irq_desc *desc =3D irq_to_desc(irq->hwintid);
-
                 irq_set_affinity(desc, cpumask_of(irq->target_vcpu->proces=
sor));
-            }
         }
         else
             irq->target_vcpu =3D NULL;
=20
-        spin_unlock_irqrestore(&irq->irq_lock, flags);
+        spin_unlock(&irq->irq_lock);
+        spin_unlock_irqrestore(&desc->lock, flags);
         vgic_put_irq(vcpu->domain, irq);
     }
 }
diff --git a/xen/arch/arm/vgic/vgic.c b/xen/arch/arm/vgic/vgic.c
index b2c0e1873a..1c44236c4f 100644
--- a/xen/arch/arm/vgic/vgic.c
+++ b/xen/arch/arm/vgic/vgic.c
@@ -812,22 +812,27 @@ void arch_move_irqs(struct vcpu *v)
     {
         struct vgic_irq *irq =3D vgic_get_irq(d, NULL, i + VGIC_NR_PRIVATE=
_IRQS);
         unsigned long flags;
+        irq_desc_t *desc;
=20
         if ( !irq )
             continue;
=20
-        spin_lock_irqsave(&irq->irq_lock, flags);
-
-        /* Only hardware mapped vIRQs that are targeting this vCPU. */
-        if ( irq->hw && irq->target_vcpu =3D=3D v)
+        if ( !irq->hw )
         {
-            irq_desc_t *desc =3D irq_to_desc(irq->hwintid);
+            vgic_put_irq(d, irq);
+            continue;
+        }
=20
+        desc =3D irq_to_desc(irq->hwintid);
+        spin_lock_irqsave(&desc->lock, flags);
+        spin_lock(&irq->irq_lock);
+
+        /* Only hardware mapped vIRQs that are targeting this vCPU. */
+        if ( irq->target_vcpu =3D=3D v )
             irq_set_affinity(desc, cpumask_of(v->processor));
-        }
=20
-        spin_unlock_irqrestore(&irq->irq_lock, flags);
-        vgic_put_irq(d, irq);
+        spin_unlock(&irq->irq_lock);
+        spin_unlock_irqrestore(&desc->lock, flags);
     }
 }
=20
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 12:14:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 12:14:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267525.1556995 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7BVG-0006bf-K4; Mon, 30 Mar 2026 12:13:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267525.1556995; Mon, 30 Mar 2026 12: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 1w7BVG-0006bY-Gk; Mon, 30 Mar 2026 12:13:58 +0000
Received: by outflank-mailman (input) for mailman id 1267525;
 Mon, 30 Mar 2026 12:13:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <bounce-md_30504962.69ca6902.v1-42acbbf6014e4024bb2f48564484fbd8@bounce.vates.tech>)
 id 1w7BVE-0006bS-W4
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 12:13:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7BVE-003vEH-Bf
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 14:13:56 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <bounce-md_30504962.69ca6902.v1-42acbbf6014e4024bb2f48564484fbd8@bounce.vates.tech>)
 id 69ca68fb-bab6-0a2a0a5309dd-0a2a4508b11c-42
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 14:13:56 +0200
Received: from [198.2.179.37] (helo=mail179-37.suw41.mandrillapp.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from
 <bounce-md_30504962.69ca6902.v1-42acbbf6014e4024bb2f48564484fbd8@bounce.vates.tech>)
 id 69ca6902-1950-0a2a45080019-c602b325dd49-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 14:13:55 +0200
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-37.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4fkqst4cJXzG0CBMd
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 12:13:54 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 42acbbf6014e4024bb2f48564484fbd8; Mon, 30 Mar 2026 12:13:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mte1 header.d=mandrillapp.com header.i="@mandrillapp.com" header.h="From:Subject:Message-Id:To:References:Cc:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"; dkim=pass header.s=mte1 header.d=vates.tech header.i="teddy.astie@vates.tech" header.h="From:Subject:Message-Id:To:References:Cc:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774872834; x=1775142834;
	bh=8/UEoCpZgSsa/b7GuIF8NEs0PMrAel8kk9xZN9ljZb4=;
	h=From:Subject:Message-Id:To:References:Cc:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=RSV7sX3WkfWGHnsfyQghtG8deP1aTV1h9tcowxjf/4kdRwGvFCNyiNNBOq1XQlwRT
	 Gp+8lqEcpcYn4Eyy/GVpTJtHjDLnGmfYkRafyXnInywCazCCQ+mwNIWGKiBACdsUlx
	 tP7h6LjCy4UP8EOKnGqRL1oej9eeUw3OgdN/p2KQc2dP5azlnNQ5Q5A+hDrbxG1AOj
	 3WZsYJ8LyfweLDncqqJ1kepSuMI/snqj2D7mD1QxkfJhViyHkEgApKN+RryitqtXu3
	 dnnw2m9Jeo9iH4I62zdVxYj70UEWPvLJ7fDr0wCnUkF8jR4CKiPdAuvvsVXWNdOb2V
	 XTtKfch6Tt+Lw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774872834; x=1775133334; i=teddy.astie@vates.tech;
	bh=8/UEoCpZgSsa/b7GuIF8NEs0PMrAel8kk9xZN9ljZb4=;
	h=From:Subject:Message-Id:To:References:Cc:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=FjfHojRPHKxVbVOirgIkXCEiz3LY3QjJRReQeqIf7oU0QS3mAaQeIGjS4pHxeqApm
	 Xd+OZorH7atLW/vSfNqZEhGlC71mEy/v4h+7Gr4TkT+fwKUKsZvFaJc+2etaLlTkjY
	 JEvaj/sPe+qYBCmVXaVUlqJRrBc1WlUdttYQNvlDKVj+FfMvDdDMAED7cSF9QKGnTf
	 KZwaHjbUxWTK/rLKIYE3Ifb4GFIdKic/5DIUqCNqy569dbOFjHplrvLcKPLlHHSYIx
	 1hDS1quLmMHiJ0az4t14q7R++yc61vt7b9v0VICMtxPsaqmqncC/UtzgxmLc2ZgpuD
	 xZLrOlnuCxDGA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20Mapping=20non-pinned=20memory=20from=20one=20Xen=20domain=20into=20another?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774872833084
Message-Id: <bd136f57-3d16-482a-9014-be44183bc86f@vates.tech>
To: "Demi Marie Obenour" <demiobenour@gmail.com>, dri-devel@lists.freedesktop.org, linux-mm@kvack.org, "Val Packett" <val@invisiblethingslab.com>, "Ariadne Conill" <ariadne@ariadne.space>
References: <84462c4b-7813-4ad1-aeb2-862ae4f3a627@gmail.com>
Cc: "Xen developer discussion" <xen-devel@lists.xenproject.org>
In-Reply-To: <84462c4b-7813-4ad1-aeb2-862ae4f3a627@gmail.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.42acbbf6014e4024bb2f48564484fbd8?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260330:md
Date: Mon, 30 Mar 2026 12:13:54 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-c1860d/1774872836-F0E1B726-9ACFCCC3/0/0
X-purgate-type: clean
X-purgate-size: 10061

(back to the original problem)

Le 24/03/2026 =C3=A0 15:17, Demi Marie Obenour a =C3=A9crit=C2=A0:
> Here is a proposed design document for supporting mapping GPU VRAM
> and/or file-backed memory into other domains.  It's not in the form of
> a patch because the leading + characters would just make it harder to
> read for no particular gain, and because this is still RFC right now.
> Once it is ready to merge, I'll send a proper patch.  Nevertheless,
> you can consider this to be
> 
> Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
> 
> This approach is very different from the "frontend-allocates"
> approach used elsewhere in Xen.  It is very much Linux-centric,
> rather than Xen-centric.  In fact, MMU notifiers were invented for
> KVM, and this approach is exactly the same as the one KVM implements.
> However, to the best of my understanding, the design described here is
> the only viable one.  Linux MM and GPU drivers require it, and changes
> to either to relax this requirement will not be accepted upstream.
> ---
> # Memory lending: Mapping pageable memory, such as GPU VRAM, from one Xen=
 domain into another
> 

(...)

> ## Informing drivers that they must stop using memory: MMU notifiers
> 
> Kernel drivers, such as xen_privcmd, in the same domain that has
> the GPU (the "host") may map GPU memory buffers.  However, they must
> register an *MMU notifier*.  This is a callback that Linux core memory
> management code ("MM") uses to tell the driver that it must stop
> all accesses to the memory.  Once the memory is no longer accessed,
> Linux assumes it can do whatever it wants with this memory:
> 
> - The GPU driver can move it from VRAM to system RAM or visa versa,
>    move it within VRAM or system RAM, or it temporarily inaccessible
>    so that other VRAM can be accessed.
> - MM can swap the page out to disk/zram/etc.
> - MM can move the page in system RAM to create huge pages.
> - MM can write the pages out to their backing files and then free them.
> - Anything else in Linux can do whatever it wants with the memory.
> 
> Suspending access to memory is not allowed to block indefinitely.
> It can sleep, but it must finish in finite time regardless of what
> userspace (or other VMs) do.  Otherwise, bad things (which I believe
> includes deadlocks) may result.  I believe it can fail temporarily,
> but permanent failure is also not allowed.  Once the MMU notifier
> has succeeded, userspace or other domains **must not be allowed to
> access the memory**.  This would be an exploitable use-after-free
> vulnerability.
> 
> Due to these requirements, MMU notifier callbacks must not require
> cooperation from other guests.  This means that they are not allowed to
> wait for memory that has been granted to another guest to no longer
> be mapped by that guest.  Therefore, MMU notifiers and the use of
> grant tables are inherently incompatible.
> 
> ## Memory lending: A different approach
> 
> Instead, xen_privcmd must use a different hypercall to _lend_ memory to
> another domain (the "guest").  When MM triggers the guest MMU notifier,
> xen_privcmd _tells_ Xen (via hypercall) to revoke the guest's access
> to the memory.  This hypercall _must succeed in bounded time_ even
> if the guest is malicious.
> 
> Since the other guests are not aware this has happened, they will
> continue to access the memory.  This will cause p2m faults, which
> trap to Xen.  Xen normally kills the guest in this situation which is
> obviously not desired behavior.  Instead, Xen must pause the guest
> and inform the host's kernel.  xen_privcmd will have registered a
> handler for such events, so it will be informed when this happens.
> 
> When xen_privcmd is told that a guest wants to access the revoked
> page, it will ask core MM to make the page available.  Once the page
> _is_ available, core MM will inform xen_privcmd, which will in turn
> provide a page to Xen that will be mapped into the guest's stage 2
> translation tables.  This page will generally be different than the
> one that was originally lent.
> 
> Requesting a new page can fail.  This is usually due to rare errors,
> such as a GPU being hot-unplugged or an I/O error faulting pages
> from disk.  In these cases, the old content of the page is lost.
> 
> When this happens, xen_privcmd can do one of two things:
> 
> 1. It can provide a page that is filled with zeros.
> 2. It can tell Xen that it is unable to fulfill the request.
> 
> Which choice it makes is under userspace control.  If userspace
> chooses the second option, Xen injects a fault into the guest.
> It is up to the guest to handle the fault correctly.
> 

To me there are multiples problems :
- mapping a host-owned page into the guest
- make such mapping "non-persistent", i.e letting Linux discard it
- tracking guest access to such "non-existent mappings" (to remap it)

All problems could be mixed into a single solution, but I don't think 
it's a good idea, that means various kind of MM events for Linux could 
originate from Xen. There is also the "process disappeared" situation 
that could cause of lof of problems for the kernel. In KVM, the guest 
existence is tied to the process by construction but with Xen, things 
are different.
But I think at least for the virtio-gpu use-case, these can be separated.

Here is a approach (multiples parties) :

The first 2 problems can be solved in a "simple" way, just make a 
"reverse foreign map" with a MMU notifier attached to it. If Linux wants 
to discard the mapping, the remote mapping in the guest is unmapped.
(something still needs to be done for doing that for VRAM)

The 3rd one is a bit trickier. It's mostly a result of the 2nd problem 
e.g swap or RAM/VRAM migration. The page has disappeared in the guest. 
That could be dealt with a slightly modified ioreq server, but instead 
of responding to read/writes, it would just act on "accesses" (it's 
mostly to avoid having to emulate the read/writes in the device model).

So overall, pages are mapped but "may disappears" (by kernel) and device 
model (e.g QEMU) would need to remap them explicitly if that happens and 
guest needs it.

What do you think ?

> ## Restrictions on lent memory
> 
> Lent memory is still considered to belong to the lending domain.
> The borrowing domain can only access it via its p2m.  Hypercalls made
> by the borrowing domain act as if the borrowed memory was not present.
> This includes, but is not limited to:
> 
> - Using pointers to borrowed memory in hypercall arguments.
> - Granting borrowed memory to other VMs.
> - Any other operation that depends on whether a page is accessible
>    by a domain.
> 
> Furthermore:
> 
> - Borrowed memory isn't mapped into the IOMMU of any PCIe devices
>    the guest has attached, because IOTLB faults generally are not
>    replayable.
> 
> - Foreign mapping hypercalls that reference lent memory will fail.
>    Otherwise, the domain making the foreign mapping hypercall could
>    continue to access the borrowed memory after the lease had been
>    revoked.  This is true even if the domain performing the foreign
>    mapping is an all-powerful dom0.  Otherwise, an emulated device
>    could access memory whose lease had been revoked.
> 
> This also means that live migration of a domain that has borrowed
> memory requires cooperation from the lending domain.  For now, it
> will be considered out of scope.  Live migration is typically used
> with server workloads, and accelerators for server hardware often
> support SR-IOV.
> 
> ## Where will lent memory appear in a guest's address space?
> 
> Typically, lent memory will be an emulated PCI BAR.  It may be emulated
> by dom0 or an alternate ioreq server.  However, it is not *required*
> to be a PCI BAR.
> 
> ## Privileges required for memory lending
> 
> For obvious reasons, the domain lending the memory must be privileged
> over the domain borrowing it.  The lending domain does not inherently
> need to be privileged over the whole system.  However, supporting
> situations where the providing domain is not dom0 will require
> extensions to Xen's permission model, except for the case where the
> providing domain only serves a single VM.
> 
> Memory lending hypercalls are not subject to the restrictions of
> XSA-77.  They may safely be delegated to VMs other than dom0.
> 
> ## Userspace API
> 
> To the extent possible, the memory lending API should be similar
> to KVM's uAPI.  Ideally, userspace should be able to abstract over
> the differences.  Using the API should not require root privileges
> or be equivalent to root on the host.  It should only require a file
> descriptor that only allows controlling a single domain.
> 
> ## Future directions: Creating & running Xen VMs without special privileg=
es
> 
> With the exception of a single page used for hypercalls, it is
> possible for a Xen domain to *only* have borrowed memory.  Such a
> domain can be managed by an entirely unprivileged userspace process,
> just like it would manage a KVM VM.  Since the "host" in this scenario
> only needs privilege over a domain it itself created, it is possible
> (once a subset of XSA-77 restrictions are lifted) for this domain
> to not actually be dom0.
> 
> Even with XSA-77, the domain could still request dom0 to create and
> destroy the domain on its behalf.  Qubes OS already allows unprivileged
> guests to cause domain creation and destruction, so this does not
> introduce any new Xen attack surface.
> 
> This could allow unprivileged processes in a domU to create and manage
> sub-domUs, just as if the domU had nested virtualization support and
> KVM was used.  However, this should provide significantly better
> performance than nested virtualization.



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Mar 30 12:19:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 12:19:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267536.1557004 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7BaK-0007XS-5m; Mon, 30 Mar 2026 12:19:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267536.1557004; Mon, 30 Mar 2026 12:19:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7BaK-0007XL-2C; Mon, 30 Mar 2026 12:19:12 +0000
Received: by outflank-mailman (input) for mailman id 1267536;
 Mon, 30 Mar 2026 12:19:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7BaJ-0007Wn-9T
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 12:19:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7BaI-00GVhU-LZ
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 14:19:10 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69ca6a2b-5cb7-0a2a0a5109dd-0a2a450a90f8-46
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 14:19:10 +0200
Received: from [209.85.221.43] (helo=mail-wr1-f43.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69ca6a3e-1772-0a2a450a0019-d155dd2be49e-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 14:19:10 +0200
Received: by mail-wr1-f43.google.com with SMTP id
 ffacd0b85a97d-43cf906b007so793057f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 05:19:10 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf21ebef9sm19603760f8f.13.2026.03.30.05.19.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 05:19:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774873150; x=1775477950; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=VHI1Wz8teT2f6WnrsYQ7cdBVIyJmSpTgTKdO+a+m1Ec=;
        b=WgBz3yGoE9mQf07x0lDWO0PxpsZlMWD+lWJjGELoOHPEM+Vaxfr7L8dklG1ZYhUCyw
         3U6cq9JjsWw9fXKLUJYZcsjVFfaEzl1Dj/wkzkyNpvvGMgOWI+l1q8Mq1VW+jBn88TT5
         Fww4On005HWnjSb+ls30m0f9NjphLRl9Z6KLPNLH2ZMs7mwKNIBYgZoyDXhHRBjuAgD3
         PEIHniYU48Bi5Z2Z8z6cXQrdSpJGMeBQHyVu7lDob0fE9nlfHjfWsNPEEaknnASeyDg5
         0vH0kdLc4sUNf5WS/T7IG+tolwJK4qyefuzfcuXF79CACW5VbGh3uzD01kuMAaAbOn13
         24ag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774873150; x=1775477950;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VHI1Wz8teT2f6WnrsYQ7cdBVIyJmSpTgTKdO+a+m1Ec=;
        b=QuUYEL6I69sBuBWv7Rm/EOAlPY3XOoeKA1m2oAEeZNg35u7SfZxJMJLf19zJMp0sGB
         iIkYK1f4kq+4I1qzOJZjnzgwUTUs123R4CtJn20Csg83exyvw5PMEYv6oeFOFsmo4IuZ
         ujEA2emrmKsgQqtXtpUtDieD0WoyhLD0h98IxYAlPGiin83DHVwcFJwQ6BD5S345jJ7j
         bDlRSyyAjnma2mzT7kqAewfjGKcgjkQvn5kXiawTqTusRovchlurA1BU4MyQbr+L86f1
         NSMTzOxGkkVZXHeBPULoxx1Qreo/57Co0Ew9nb0wzx58xqtc/MH8uRGjzHd0PzrK6Qlo
         Xusw==
X-Forwarded-Encrypted: i=1; AJvYcCVUWYkvFusZRaJyrPiyh3yswM0+MfI/6ygpyUktxvj3XHfFzJ+lYQZI0O8GNbMNl0Xx3zkSpy2D8+8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyZaWhYfY/0okDCigt7Df5GRAbA96sRVUwfVoRDK5Bavf1AYEnD
	gLMHxe5nAuxWdtMgF5ON8yNNlhIpbtp8CtiMsbDkUDq0MjrH1EmVcrWVrWQ1DCeluw==
X-Gm-Gg: ATEYQzy7QUWHgn1GObjWBGnwftJT1REQjCBgCTLIW20Ix0sQmOdJdmBWpX3AO5UL1dL
	5miDTsD/B2S995lgHgDPYiVrARb75UuHkt4ZZYB9bIVRny7uPKbrGntW8H33PZOY4kZ8c1/HkVi
	PwfCZVLDiowD0PETwI9w2o0d3LCNXcYriW9TNxGd/LANdXDyLO0lmNzCWSBLNRKKJSbY/u7t7gw
	MNG5Y1tnbn0aHRseYJV6adwcGMVl7SysnIRMXedl/rp6qTrZFzHYB/ngaYTK3TswkA7TF7E8gGk
	9rUHJ6u6B+fkU+0m2eBoqCpTY9ej8Sqo1ZRPgQs+XWJudzQC7DXA6VQOji95drpnb8WzNPzPaPK
	mSFTD/i9jHmEIo3I0MFTgz4xO4FWd2b8pWM4w4ea0QrdcW28FD0IFG8FWf+5BVC7ERp3TC4xLVo
	vREirM+hT91bAO8J06Vq9Tf+39ZKbtz3GsEwq5Vn0jdztkXecWQ+XaUkmVSo13STefdjE2rEHBc
	VcLjiJx7Uefwd8=
X-Received: by 2002:a05:6000:2283:b0:43c:fe0e:5bb8 with SMTP id ffacd0b85a97d-43cfe0e5e2dmr7159925f8f.35.1774873149805;
        Mon, 30 Mar 2026 05:19:09 -0700 (PDT)
Message-ID: <e37330f7-96ca-41a9-81b1-14d7f3947dd6@suse.com>
Date: Mon, 30 Mar 2026 14:19:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 3/6] Kconfig: Make cpu hotplug configurable
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1774871881.git.mykyta_poturai@epam.com>
 <f3c523ef5b94e930902016d69b440032c9e6c3bd.1774871881.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: <f3c523ef5b94e930902016d69b440032c9e6c3bd.1774871881.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1774873150-51A8B900-D08F5966/0/0
X-purgate-type: clean
X-purgate-size: 1487

On 30.03.2026 13:59, Mykyta Poturai wrote:
> For the purposes of certification, we want as little code as possible to
> be unconditionally compiled in. Make CPU hotplug and SMT operations
> configurable to ease the process. This will also help with introducing
> CPU hotplug on Arm, where it needs to be configurable.
> 
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

Looks largely okay from a technical pov; one nit and one (repeated) remark
below.

> --- a/xen/arch/x86/sysctl.c
> +++ b/xen/arch/x86/sysctl.c
> @@ -53,6 +53,11 @@ static long cf_check smt_up_down_helper(void *data)
>      unsigned int cpu, sibling_mask = boot_cpu_data.x86_num_siblings - 1;
>      int ret = 0;
>  
> +    if ( !IS_ENABLED(CONFIG_CPU_HOTPLUG) )
> +    {
> +        ASSERT_UNREACHABLE();
> +        return -EOPNOTSUPP;
> +    }
>      opt_smt = up;

Another blank line above this one perhaps?

> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -637,6 +637,14 @@ config SYSTEM_SUSPEND
>  
>  	  If unsure, say N.
>  
> +config CPU_HOTPLUG
> +	bool "CPU online/offline support"
> +	depends on X86
> +	default y
> +	help
> +	  Enable support for bringing CPUs online and offline at runtime. On
> +	  X86 this is required for disabling SMT.

The name of this option may need input from others; I'm not quite convinced
that this is a good name, as there's no true "hot-plugging" involved here.
IOW I fear the present name is misleading.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 12:25:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 12:25:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267546.1557013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7BgC-0000vB-PE; Mon, 30 Mar 2026 12:25:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267546.1557013; Mon, 30 Mar 2026 12: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 1w7BgC-0000v4-MG; Mon, 30 Mar 2026 12:25:16 +0000
Received: by outflank-mailman (input) for mailman id 1267546;
 Mon, 30 Mar 2026 12:25:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <demiobenour@gmail.com>) id 1w7BgB-0000u2-1j
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 12:25:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7Bg8-00BHqI-O8
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 14:25:14 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <demiobenour@gmail.com>)
 id 69ca6ba4-bab6-0a2a0a5309dd-0a2a4506a64e-22
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 14:25:14 +0200
Received: from [74.125.224.43] (helo=mail-yx1-f43.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <demiobenour@gmail.com>)
 id 69ca6ba9-3034-0a2a45060019-4a7de02bac0d-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 14:25:13 +0200
Received: by mail-yx1-f43.google.com with SMTP id
 956f58d0204a3-6501547d7edso2557840d50.0
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 05:25:13 -0700 (PDT)
Received: from [10.138.34.110] ([172.58.149.67])
 by smtp.gmail.com with ESMTPSA id
 00721157ae682-79cba66cf09sm34567277b3.43.2026.03.30.05.25.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 05:25:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="In-Reply-To:Cc:Autocrypt:From:Content-Language:References:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774873512; x=1775478312; darn=lists.xenproject.org;
        h=in-reply-to:cc:autocrypt:from:content-language:references:to
         :subject:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=KkLtDs6yFWruoXuiXOulJbkto15/qYEfrQT8RWN5rd4=;
        b=nF6PF5JJRVpw0YPwORZfEtwKnWI2KkBSEbCKdpqxM1amKm9FG63rh/el56PLFu1gMD
         nSiPDeMVoB92be0Ms0VPbo6PE3vc2Pzp29pTc0F47Fm5WdzAgrWnelJrHiy5t0m5CQXF
         DsUwRNDDbGBW9WH8DxG40JuqbHWpsIhUFNWzawSZlL/3u8F7Lvo66OzjOPARrpwEZeQF
         X5z6ELHHWly2fJFvDiTV0Itt6C1/6Kdu0Un9n97rKyk743BJClbHJmPHOjEZ0qvFEg1a
         TSJOqydFSKkzf7AoBYwllqLL5OOZKdnutdtz37+pHxsocu0PmNyB34ydiwYBb0+EEoun
         huFw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774873512; x=1775478312;
        h=in-reply-to:cc:autocrypt:from:content-language:references:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=KkLtDs6yFWruoXuiXOulJbkto15/qYEfrQT8RWN5rd4=;
        b=LT8N71z8GyCV0eFl50TR5YbYVWnx8FSIFJNCFcPbQv6NFn12q6hrGgqIlbJDChDaQf
         LPD8zRucxYISQ7x+ypB8bT0izoCFiA77s9Srlj2gCY2bDdtYaeHGvZQG2aEkah1ZQrb8
         gsDorMrB0/4XJsAAF9pYRskyeT2TeRmne6m7rwtBa4ceIx9VAHqXOXCZTJRhYVP+Li9y
         s1q6INQXvXL+D1ePIRHQ0c1DsN1S04tZoVCELZXcpv+kL6Omp1PWOGzTWalCtj7oujgF
         FHUw6PRGgXc+fwMuiJn2/CSEbEo03mzIOt/07SGbFBYfnyt7riAJenOAikYXR24bLV0k
         XOJg==
X-Gm-Message-State: AOJu0Yzja0UXJgYp9MQGZEBn6HcgrljrtRToRYqmFWBpUQiyD0/B9zqM
	7jTCpPNs3OSOM9s8jWWS1yQdznbdST3+p33lI+CggsNKkEqwOUAj/NEt
X-Gm-Gg: ATEYQzyQDPIa5gfx41V+2SIl4kldCtpenn0g7olT8/qHtKM4PYLBeaAkRZRboUzLMGV
	cWy87Zhz2w/bmUxDOuFrov+eoCnI3PXRpJ+NgfBsmEPH2CMfOQg5TtS8nSp+iTH9f+MSz76iGcv
	Sh5n8Mc1FoVZYxeBCc09CR2llnkY3Wx9p5wHmmj5JZ0rOKj8hzLFSMkNMg3cne242xQHRE+xI4g
	QTPxffexwnuHGhoDqMBpCZc7QrEISLOMGaeP92OIJLW4BivIEOvtoWfPM1lPNjta6sTviFIUQC+
	s/Q79lqJapoKcJcwTzf3s1LbTmgAYrln5W8cAB38Q8yQS1SFnh05Pu+8eDH3UDjfz6B7IDxaBCc
	bG6IWfd0D1hCK1qGlq76Htb7iumKokUzIH/gmAG97qIB9o0QysqT9U94m2b1KU/KOfxinyg0kV3
	VNeLWzm9i62hs7wiSHQCbZ7pE0ZeoBi+LWiHzrU5UrQKr6ZoJSLszYQwe8AXXn
X-Received: by 2002:a05:690c:387:b0:79a:4419:71bb with SMTP id 00721157ae682-79bddd16fffmr119526847b3.21.1774873512143;
        Mon, 30 Mar 2026 05:25:12 -0700 (PDT)
Message-ID: <09a2f7e9-0e36-4009-9813-c5aa8e801557@gmail.com>
Date: Mon, 30 Mar 2026 08:24:53 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Why memory lending is needed for GPU acceleration
To: Teddy Astie <teddy.astie@vates.tech>
References: <84462c4b-7813-4ad1-aeb2-862ae4f3a627@gmail.com>
 <c38387fe-beef-4f50-b928-74f96b881b7a@gmail.com>
 <ce114f02-f45e-4638-84ee-a8fd86ce1c5d@vates.tech>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
Cc: Xen developer discussion <xen-devel@lists.xenproject.org>,
 dri-devel@lists.freedesktop.org, Jan Beulich <jbeulich@suse.com>,
 Juergen Gross <jgross@suse.com>, linux-mm@kvack.org,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Ariadne Conill <ariadne@ariadne.space>,
 Val Packett <val@invisiblethingslab.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Alyssa Ross <hi@alyssa.is>
In-Reply-To: <ce114f02-f45e-4638-84ee-a8fd86ce1c5d@vates.tech>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------jlshIcNJGAQuLqmgL2Mliith"
X-purgate-ID: tlsNG-16d1c6/1774873514-B3E9E1C2-07BFDF06/0/0
X-purgate-type: clean
X-purgate-size: 25977

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------jlshIcNJGAQuLqmgL2Mliith
Content-Type: multipart/mixed; boundary="------------Ypm0cPcRDo19SiwsEQFv8Pbc";
 protected-headers="v1"
Message-ID: <09a2f7e9-0e36-4009-9813-c5aa8e801557@gmail.com>
Date: Mon, 30 Mar 2026 08:24:53 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Why memory lending is needed for GPU acceleration
To: Teddy Astie <teddy.astie@vates.tech>
References: <84462c4b-7813-4ad1-aeb2-862ae4f3a627@gmail.com>
 <c38387fe-beef-4f50-b928-74f96b881b7a@gmail.com>
 <ce114f02-f45e-4638-84ee-a8fd86ce1c5d@vates.tech>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
Cc: Xen developer discussion <xen-devel@lists.xenproject.org>,
 dri-devel@lists.freedesktop.org, Jan Beulich <jbeulich@suse.com>,
 Juergen Gross <jgross@suse.com>, linux-mm@kvack.org,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Ariadne Conill <ariadne@ariadne.space>,
 Val Packett <val@invisiblethingslab.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Alyssa Ross <hi@alyssa.is>
In-Reply-To: <ce114f02-f45e-4638-84ee-a8fd86ce1c5d@vates.tech>
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=
Autocrypt-Gossip: addr=hi@alyssa.is; keydata=
 xsFNBFpSgoYBEAC4xkCYidG2JlRWulUkTWcx0pHFDf3oSbb6Q872Kb3iDChWgluNVz43hva1
 3xfDo9foV0GoyfGl/ycSCkXX5hlQr7ir/5FN38E7H/yY6tH8+l68iDgIOcb1qY0OYaxyg+Lz
 WesfFQedrmwNTbF4L1BtWzrTR5PflDdhDo5VWSguHGJFSclchcr/6UmMb/gOUN+2ElBC2TE2
 EKY099phZ6DJZ2aZCsclwKIdCpZzXlEmXPAeaH5om6xo90JYv5+sFji40R0Plqec3WC+jTxy
 lGca6IbPdOminuUF+GvsR86eVsgh/0XNK7/zus7gyc4PuMUA1rCoeHcWOBDPgmelgCQyJGXd
 /bXeKuUsGoge58uc7/YNvOh1vfpD3AaEMqAyXfmmUwBnIicml74+2eOpH3Oljfs01g+DhkOB
 MtpVSZSgaIDvP0WG6cbAxImoUasnmNxEDNskfVmI8bsajPW9bt4z5hiP5Q9G3vE0D5HcIFdM
 adOz81PpOwNiUXcjtYV1PWZQ56jbSTOf8EBvsB71WwB+XgVWcPzIlY8hAykiHIO87oV3o71U
 JTAn1Foj7mjSADnY0deleOmar/K5jrK3wvKKM1XlB7PXcGBdkorJC+cbxVsw0ADzMw0c7bVc
 wEE7OFvHjQiIK1lO+lb1cvGBBY3IZxjsjZdA/VsFHFdAeYlzNQARAQABzRpBbHlzc2EgUm9z
 cyA8aGlAYWx5c3NhLmlzPsLBlwQTAQgAQQIbAwULCQgHAgYVCAkKCwIEFgIDAQIeAQIXgAIZ
 ARYhBHVzVtd5u7iIdz5BXnNszfnvUb2XBQJpbOVGBQkPuJbAAAoJEHNszfnvUb2XkB4P/0oS
 loQmNNad3yj2gkaLWiT4FDlqa3LtCCstnA24SNK6jd9aJQ4ay+YuxW9/mw/DgE86T1D8HU4x
 bbr6alcR7w4JhbwBRepkkqYwsa6v8fz83AHgs/nIpu5yVOUDYw+xoXnWwlvY4IS4/krzw100
 huSCfT609lhxR+7gvlXDMTysdlPaj90FVHFBuPZvpvS4pIks2B0A42qA5C8b8uK+OeIP8DBE
 Zj43UfWz9qXS/2734QMqh0lZM3hH1rceJvR30djM3olHQ7RMYrXoWFurGrGoo8njzqzPa7pq
 iZ11o7gtn/llrntBywkKtVUYRd76UKub2mRAb3HmI5HX86j6g0xxTJ4kazdYHU8rLGkL5ZVZ
 EIZI0LmjnVeG2zcfIChYOtrAsycR64cbxwJzSqspd9cDIIh0TijmFZapMjO+gt1sKAKHRqKC
 vGh16/4K3/uaGquBSSE40CQefXXKaFL4y80JpC/7/reumiHoIB8m48c8EQ31ZMY8oIF6UenB
 gJ6o05wSjEEywhp7W3jADsRqyMRex9elpzbqDlLlS6SAay4zoWxREufygLdi2dVTJ1t01ZyL
 Jkks8kiv7ZkXqpyubiMdubWHJZ3gZXmoaKg8eKHbWWR8ulcD7cw8wMZjg5685gPMK08RYlDl
 sRgROnmW6HAP1ef96FtGD6OUNt/qfwQHzjgEZyd/yxIKKwYBBAGXVQEFAQEHQCVxoiHOlsEo
 NDKGCbxg4nL3E1CV0MRQCU1hPowd77h3AwEIB8LBfAQYAQoAJgIbDBYhBHVzVtd5u7iIdz5B
 XnNszfnvUb2XBQJpbOU8BQkC45lnAAoJEHNszfnvUb2XoPIP/3KC9PLDrdiFTDjYSZQGdHz+
 jQ7e5EMpDdDMww6I9XKOHUQuFiYwRmpckGGY/q5sDn14Yxs0kmuQyc7XUB+U3x/kzXyUaFWp
 GiQ8mmHyrs7SIRI89qb5BA7Dl7G60Bmlu1i7VUIDpfyEUNxkLMMWiY+THcUyquYiKpTYYOSu
 3L9WOr60yDFzCpzbeEtsk8u80Eptx6XU5vphY8iYLjXgoardZ8WI6l1vpPnafWklhbViJ5KY
 5+2LqV3cEYFfTfHWdsCrY65jx6gl0nzxv//VQp7L4RrcZ2HMn3ZMcRLluaiX1sOFICG7aPCj
 AjSOFGsZ8k6PPzuNxPjgqn+UVLGEu5Vcd2t1DXZ7+fwUxawcas7/Pe9DhZDZXG9a3766TVoS
 BcDXVR7GPdMtE8Bf1r42LPwFX4w53SrRJtt53zxggPac4hHuqU5bVJFqpbhkEZkP+/Bx0DbB
 xBeWkrnBRIgSQth+tSbS9db0mFm6a8qLQq3a3u3bBlhmFfiX0ftaruB0gpD1QEUJomTvWo0s
 3VZeL4pzQItem2CA+NrVaLQ51PotBY38shD+21s+SLuyP01OJxdhq5M+Qy77T+vmArg7n3vi
 Vq4ExbzZQNCRjhy5IfjuKipOyZVEQvwwma6bjGXcpG/gw3Ej9e6Vf+g8KHcc9Nthzt7tyjd2
 9KKY1Fh8LBKH

--------------Ypm0cPcRDo19SiwsEQFv8Pbc
Content-Type: multipart/mixed; boundary="------------CEjOtsrNhNmH0IESK77TKm7Y"

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

On 3/30/26 06:15, Teddy Astie wrote:
> Le 29/03/2026 =C3=A0 19:32, Demi Marie Obenour a =C3=A9crit=C2=A0:
>> On 3/24/26 10:17, Demi Marie Obenour wrote:
>>> Here is a proposed design document for supporting mapping GPU VRAM
>>> and/or file-backed memory into other domains.  It's not in the form o=
f
>>> a patch because the leading + characters would just make it harder to=

>>> read for no particular gain, and because this is still RFC right now.=

>>> Once it is ready to merge, I'll send a proper patch.  Nevertheless,
>>> you can consider this to be
>>>
>>> Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
>>>
>>> This approach is very different from the "frontend-allocates"
>>> approach used elsewhere in Xen.  It is very much Linux-centric,
>>> rather than Xen-centric.  In fact, MMU notifiers were invented for
>>> KVM, and this approach is exactly the same as the one KVM implements.=

>>> However, to the best of my understanding, the design described here i=
s
>>> the only viable one.  Linux MM and GPU drivers require it, and change=
s
>>> to either to relax this requirement will not be accepted upstream.
>>
>> Teddy Astie (CCd) proposed a couple of alternatives on Matrix:
>>
>> 1. Create dma-bufs for guest pages and import them into the host.
>>
>>     This is a win not only for Xen, but also for KVM.  Right now, shar=
ed
>>     (CPU) memory buffers must be copied from the guest to the host,
>>     which is pointless.  So fixing that is a good thing!  That said,
>>     I'm still concerned about triggering GPU driver code-paths that
>>     are not tested on bare metal.
>>    =20
>> 2. Use PASID and 2-stage translation so that the GPU can operate in
>>     guest physical memory.
>>    =20
>>     This is also a win.  AMD XDNA absolutely requires PASID support,
>>     and apparently AMD GPUs can also use PASID.  So being able to use
>>     PASID is certainly helpful.
>>
>> However, I don't think either approach is sufficient for two reasons.
>>
>> First, discrete GPUs have dedicated VRAM, which Xen knows nothing abou=
t.
>> Only dom0's GPU drivers can manage VRAM, and they will insist on being=

>> able to migrate it between the CPU and the GPU.  Furthermore, VRAM
>> can only be allocated using GPU driver ioctls, which will allocate
>> it from dom0-owned memory.
>>
>> Second, Certain Wayland protocols, such as screencapture, require prog=
rams
>> to be able to import dmabufs.  Both of the above solutions would
>> require that the pages be pinned.  I don't think this is an option,
>> as IIUC pin_user_pages() fails on mappings of these dmabufs.  It's why=

>> direct I/O to dmabufs doesn't work.
>>
>=20
> I suppose it fails because of the RAM/VRAM constraint you said=20
> previously. If the location of the memory stays the same (i.e guest=20
> memory mapping), pin should be almost "no-op".

Yup, there is no reason it shouldn't work for mappings of guest memory,
udmabufs or indeed for iGPU dmabufs.  Whether it does work is another
question.  I believe it sometimes fails even when it could work,
due to (fixable) Linux kernel limitations.

> (though, having dma-buf buffers coming from GPU drivers failing to pin =

> is probably not a good thing in term of stability; some stuff like=20
> cameras probably break as a result; but I'm not a expert on that subjec=
t)

I suspect that it works for the drivers where this situation applies
in practice.  To the best of my knowledge, these drivers are either
for iGPUs or for compute workloads.  Compute workloads *do* need tight
control of whether a workload is in system RAM or VRAM, and typical
desktops don't have a bunch of them sitting idle so the benefits of
paging out their VRAM are vastly reduced.

>> To the best of my knowledge, these problems mean that lending memory
>> is the only way to get robust GPU acceleration for both graphics and
>> compute workloads under Xen.  Simpler approaches might work for pure
>> compute workloads, for iGPUs, or for drivers that have Xen-specific
>> changes.  None of them, however, support graphics workloads on dGPUs
>> while using the GPU driver the same way bare metal workloads do.
>>
>> Linux's graphics stack is massive, and trying to adapt it to work with=

>> Xen isn't going to be sustainable in the long term.  Adapting Xen to
>> fit the graphics stack is probably more work up front, but it has the
>> advantage of working with all GPU drivers, including ones that have no=
t
>> been written yet.  It also means that the testing done on bare metal i=
s
>> still applicable, and that bugs found when using this driver can eithe=
r
>> be reproduced on bare metal or can be fixed without driver changes.
>=20
> One of my main concerns was about whether dma-buf can be used as=20
> "general purpose" GPU buffers; what I read in driver code suggest it=20
> should be fine, but it's a bit on the edge.

Importing dmabufs into GPU drivers should work unless there is a
reason it cannot work.  If it doesn't, I would consider it to be a bug.
However, "should work" and "is widely tested" are two different things.
I don't want to have something regress and whoever is using this
(probably the Qubes team) responsible for fixing it.

is that what you meant by "it's a bit on the edge"?

>> Finally, I'm not actually attached to memory lending at all.  It's a
>> lot of complexity, and it's not at all similar to how the rest of
>> Xen works.  If someone else can come up with a better solution that
>> doesn't require GPU driver changes, I'd be all for it.  Unfortunately,=

>> I suspect none exists.  One can make almost anything work if one is
>> willing to patch the drivers, but I am virtually certain that this
>> will not be long-term sustainable.
>>
>=20
> There's also the virtio-gpu side to consider. Blob mechanism appears to=
=20
> insist that GPU memory to come from the host by allowing buffers that=20
> aren't bound to virtio-gpu BAR yet (that also complexifies the KVM=20
> situation).

Indeed, that's not a good situation for anyone and ought to just
be fixed.  CC'ing Alyssa Ross as this probably would help Spectrum too.

> You can have GPU memory that exists in virtio-gpu, without being=20
> guest-visible, then the guest can map it on its own BAR.

Would you mind explaining this?

One other question: How difficult would it be to implement memory
lending for someone experienced in Linux, Xen, and their interface?
What about for someone who is not experienced?
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------CEjOtsrNhNmH0IESK77TKm7Y
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-----

--------------CEjOtsrNhNmH0IESK77TKm7Y--

--------------Ypm0cPcRDo19SiwsEQFv8Pbc--

--------------jlshIcNJGAQuLqmgL2Mliith
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/sszaHOrMp8lMFAmnKa54ACgkQszaHOrMp
8lMCiA/9EWOaRgYiZku11AhSTG0TZT9GsRXTB/pXcKauvRsJnnOPldQdrBODkkUI
pZUKjdmLqeiiGl55EToFdL+ZOwFg6Z9u9S+0Nr99Bzi5o79KFjkhciGFpGYX01vw
pJh6qUOLXpauHG33OUcjAhxOomH0u8wFizT7Yz2Powh7C538dvljuluxc9fsmwAe
nLaKcyajeILzt/QNMoE6nMGg1QNkTDsCiYK8v2uVROjl+4XSqtet4BXpyyB8cY8P
XEmvmWVM3SVnY/xDvid7CY3tyuaCtwl976F1IeesU8VN7x71HiXCK28GBmgrkyGW
JspRefC2XzGMcDkBaUPcPQ/2Ihdv8rkb/JC1ReGB9kMf1twEh7jqOxjPePt7lJQ3
j0gUICkGlnpXws/EjZN9vux/AQEnSW1dRtDzGASu5DmmXxqcBCfkpZsovIarVffR
o+/JQgeAWN7qs5yMni38cFjpaQulvNu+B0w0hxRLmBx9i0oik98b8QID3352LpVg
iYy9g2+Od33awINuoRphvr+rG/0ychE6kw2ARDzI6DcXWVyWzjn2ydp5efqIGwRG
e2vGB9WLRBsYkMhj1NcIrskVeFmicxaSgAzubiWNz/BJnnJs376XTNs698CUzj2A
yfbI5nKyXzDIBMNxpaOSuW9jcudTUwFvulUHVVM61ixEw8UB+64=
=bmH5
-----END PGP SIGNATURE-----

--------------jlshIcNJGAQuLqmgL2Mliith--


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 12:28:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 12:28:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267560.1557022 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7BjZ-0001r4-BR; Mon, 30 Mar 2026 12:28:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267560.1557022; Mon, 30 Mar 2026 12: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 1w7BjZ-0001qx-8F; Mon, 30 Mar 2026 12:28:45 +0000
Received: by outflank-mailman (input) for mailman id 1267560;
 Mon, 30 Mar 2026 12:28:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7BjX-0001qr-V8
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 12:28:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7BjX-00B5Hj-BE
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 14:28:43 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69ca6c71-bab6-0a2a0a5309dd-0a2a45029c74-36
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 14:28:43 +0200
Received: from [209.85.221.43] (helo=mail-wr1-f43.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69ca6c7b-63bb-0a2a45020019-d155dd2be45f-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 14:28:43 +0200
Received: by mail-wr1-f43.google.com with SMTP id
 ffacd0b85a97d-43cf906b007so799167f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 05:28:43 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf21e9e18sm17913406f8f.9.2026.03.30.05.28.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 05:28:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774873723; x=1775478523; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gBIUal41bkGn052vURwam2vvsH0vs17Vri8jDNMqMJE=;
        b=BCDSW4yTtts3+LqYKgCiSlpr3rDyHpCMA1jyga95BpyBsrD6sP2P+JG5JMRMyk5lIC
         FCYeNdJSUKsnETh8pvqSCUfnqKXdXbzbUFTLgSX1xZOpVjwAjulIGxJBT987tDbvhZ0b
         GNNWrm7SPdkxI9b12vvsFpGhrgcn0SNSkyK9x5ulir0YVMo495CLjUGqRF7awz1qmZ+W
         olKZLXWIgcZGET6iqPM+H9V1JVIMm6k3NRcSeseD6Nx1IwVNwRAy3/B98LBfpSonY/iI
         dtJl7fMmkzL/Zqv1tUduYuS0LQ+3kgOLMbehwo3vfHy5OVA/CdKtFG+dI54HAnultgIm
         e/YA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774873723; x=1775478523;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gBIUal41bkGn052vURwam2vvsH0vs17Vri8jDNMqMJE=;
        b=oQWQtrweTW79E+bTRS0UYsMlXUoCA8BJ/ERqzvFsltkZu4IpHmgrpWu2x6J35ZIyH+
         UMwr6z4HKa/z0JqvaEW6w1ZUOnFEjchn9MTdFlGkAj5OLUrX3y0ny4THNMmYxeRg4t+g
         R5NWIZuhZ2txkkGW8aZJt+DExeBmMUmiMPAKn1Ji2rDrlU0/ctYWadkUWAJM1mJUj/VH
         qemB4Qu1ikPbIgDFfoZLcA2fhYVJWxZvJhNw9PFS3u9mbXrMRyIsIAKRJ8OZOn6wK07H
         YeKa3LlEGsTnsqs83Rm91eXkQDg1wGJ5gsCdcOMiuZuya9fSC/5Kb7fiABQ8yjnOud6d
         QRcA==
X-Forwarded-Encrypted: i=1; AJvYcCV+5S+MzCwOKYnfdxVDwrezPbWOTXSNEyKh76t7CmkmN7wUm528UL7hJOymnmCzsmctp9iUrFvVM6w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyNon5OyZjGo43D1U0VJU9I1zqaVd+sUzFkWp5hjmyupBfDwNPY
	24fDZZZNswB9JpcLqd1QunJSoGgU1xIUH4P6Flv6PATu60H+HA6vp7POS5IgKKLb4A==
X-Gm-Gg: ATEYQzx9NV7AxHC/Rkh2Hpc051F/DeZ9/29b3tNyDRjjJjAzNiRCXkwaX+FEQgFPP3R
	g2Aj8inju6tv4SpCPvPQrw0Kel2r2hByGNFTop8SPUxt03uuayZQV6Q7aOA/K2GVP1uCRIYzk/n
	OwhZbGGdbGxt9AAw0YvFZkVSHJf2vpYNFSlINQ+OD7VRxLiK4PpOr7UyIW+QE6axTRo+s58QLVM
	BZgnz7hZj6Pw0VY86aDFOEI3fa/Kzs0EOaEpfX9fnEXKsjGBFkIhLI7EApM41yYB5AdCdYwqt2v
	HaTf0KRZm1pedPx2Eka+8sel5DSxI/tktJEQy1fHbdx5fM8p6kZbzerjymgfMP7ioKDOW+JlypS
	F0wOy5KFrzAfKke5b3lRLgN/sDkNRXmUXXdoIvLrWb5RRjJoBPfcWnMG6nedPm9ad+evF8PXLGj
	UoeNITJFsCFC2R22OVp6ifxOfSBdi0pY8QbCHN02uWgtN+kGLYERkTe29KBT0U2YTq/G5aBarCN
	3T5F5pU7ROBGwk=
X-Received: by 2002:a05:6000:220c:b0:43c:fbfa:20a0 with SMTP id ffacd0b85a97d-43cfbfa22a2mr8567554f8f.25.1774873722653;
        Mon, 30 Mar 2026 05:28:42 -0700 (PDT)
Message-ID: <d8622bdf-9ccf-488d-af9a-3eccf6fd3226@suse.com>
Date: Mon, 30 Mar 2026 14:28:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 4/6] arm/sysctl: Implement cpu hotplug ops
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1774871881.git.mykyta_poturai@epam.com>
 <9ac96559ed00257f347bd61b1e074fc3f6ce8a32.1774871881.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: <9ac96559ed00257f347bd61b1e074fc3f6ce8a32.1774871881.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1774873723-40497DB8-2E70716A/0/0
X-purgate-type: clean
X-purgate-size: 701

On 30.03.2026 13:59, Mykyta Poturai wrote:
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -638,9 +638,9 @@ config SYSTEM_SUSPEND
>  	  If unsure, say N.
>  
>  config CPU_HOTPLUG
> -	bool "CPU online/offline support"
> -	depends on X86
> -	default y
> +	bool "CPU online/offline support" if EXPERT || X86

Why not just EXPERT?

> +	depends on X86 || (ARM_64 && !HAS_ITS)

The !HAS_ITS is puzzling, and it doesn't help that that option looks
misnamed (HAS_* shouldn't have prompts imo). The description says
something there, yes, but then also mentions FFA and TEE. Yet for
those the option remains available.

> +	default y if X86

Shorter as "default X86".

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 12:33:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 12:33:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267570.1557031 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7BnU-0003Sm-P5; Mon, 30 Mar 2026 12:32:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267570.1557031; Mon, 30 Mar 2026 12:32:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7BnU-0003Sf-M0; Mon, 30 Mar 2026 12:32:48 +0000
Received: by outflank-mailman (input) for mailman id 1267570;
 Mon, 30 Mar 2026 12:32:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7BnT-0003SZ-CJ
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 12:32:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7BnS-00FISc-KH
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 14:32:46 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69ca6d65-5cb7-0a2a0a5109dd-0a2a45039648-42
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 14:32:46 +0200
Received: from [209.85.221.44] (helo=mail-wr1-f44.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69ca6d6e-1947-0a2a45030019-d155dd2cd0b6-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 14:32:46 +0200
Received: by mail-wr1-f44.google.com with SMTP id
 ffacd0b85a97d-43ba1f3fa7eso2480275f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 05:32:46 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf2471ee2sm17710611f8f.29.2026.03.30.05.32.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 05:32:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774873966; x=1775478766; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qdTqZk0U2u2U5c9sisVKBhh6F1UstE0ElJysNxuRGvU=;
        b=MEsZCZO7FhfWBer+1Hq8FK7r4MaBRqPdjwtWJ3CPCTXQmZvIl3PHW/v10HaqHfvzPE
         hRHj6SXwemSi++FNITf0a3vQhBQsMAscemqoLSeAWQiL0q2Ta+5BLUKQufRq9lfn3J0l
         R9AO/VAWnqNhPSIOMtLGrb6YEpy3QJEwR9Opvs9k+MJo8heqgRTUHajCFSHd5n8I44/U
         iwONNkHNLIane4UKmwUieag6WIDl5pk/cRu+LjjqL9KrV2HX1BDK5O1NG8K9gEt4IQ7S
         jl6Z8WIYkcQYlvKGKplW6GZvPYeTp6UIOzCuiWbk9+3lSJxE6e2K131/Uek2XcmolJDU
         2rIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774873966; x=1775478766;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qdTqZk0U2u2U5c9sisVKBhh6F1UstE0ElJysNxuRGvU=;
        b=FZTKTziRIGaBXdZzxqEv0lrjkny3HsOv/geEapdCQLx5xro0aJEner6bcHRwXcN5ZX
         mRYsHEvS3xTb81tX3sZu1OfhBIsNKB0YX7ZHNUI9rLV09O6/POOWra7UxL6rq8jEk8ym
         xc7Q5OjzPh49llERt6NQKAi7/FiTsAauGfPpnFz+H4gqX9pGSorbXtGbzAOUvYQ7L6gz
         0XXZz91EM6bWKP81HNx5Efdqiz0/enwBLV9X8zO9ndSooc5zylnsKjJFPIEq4Ti8YMXW
         /xEjONNoVSDOKvIVXjBAEGFTtY4JMFPtcnj0XYJxqEi2Ox5NM6siskDhtpnNtRaHFPNz
         X6DA==
X-Forwarded-Encrypted: i=1; AJvYcCWPjbn68Yk+TfPYfoejPPZszF4Evkccp2SlnGcr63M9DlNyux8y0B8zdNT3aQP1viucVKYAegcalPI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwG/doc7i+uwRqmuC9RHIUPZcmFhESv4AX8Bj16QsxbkptThT1d
	16s5i4t60esuaxTFgthVGegPapMxE7enOhz/tEwKZ+BeltANcVR3ae6nyerP8yTg1qShADg2lgl
	Bw2jDQg==
X-Gm-Gg: ATEYQzxgY/cRf1b1AeYAj0FdA4Y18+/MFUaVgPvVhHTQM/jrq9Mpc9Zdeo6Q58JhSx2
	7t1H8F8bjaKMBA1bJX77H/ri4u9eRbg4ubZ3bq42qUE1pbqUOvQFD9wLltH/mMGth8UCirF27BD
	s+6jMq7JfxFRtvGQUpnUaScoXUgNEvsv/UBGdREOGQcwZKQZb5yW878HIBewJNHI4OyFEc1qsPR
	cLHayEGZX/pF/7YSBYPEz6MhH/hAl5YXB32Pi5JU1TIQ0m6EBVYBVSxwdXo4cALIrIqMZlbrReU
	qT24xyKp7+PHq3VIbsQPTbQWlCgiJDbO+O5iIxsn+Lk0xazbeIuO8bc9vSuXE9Zw0tNMbB6hH+S
	J8mfvMAUZiPA71yebtSKzG0ZHbPOopGpLvlIwVr40TnMjkfpOWzf2R2Zw7sltRpAK21LvCL81Q3
	2zmNiQ9Un8j9AXQoWYcJIcI1yBg0ZMPlkZuxdMKeJ4rLvz6S4GbzlqnxUcFMfiqeSGVmUfUA0gs
	g97hoyW5OvpOfw=
X-Received: by 2002:a05:6000:24c7:b0:43c:f81f:3e7c with SMTP id ffacd0b85a97d-43cf81f4010mr10747414f8f.3.1774873965922;
        Mon, 30 Mar 2026 05:32:45 -0700 (PDT)
Message-ID: <58cfab3b-7cf2-4e38-9968-1248e665f985@suse.com>
Date: Mon, 30 Mar 2026 14:32:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 5/6] tools: Allow building xen-hptool without
 CONFIG_MIGRATE
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1774871881.git.mykyta_poturai@epam.com>
 <73db845e6617130966a565cdca6274db4cb46428.1774871881.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: <73db845e6617130966a565cdca6274db4cb46428.1774871881.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1774873966-4925572C-7D649678/0/0
X-purgate-type: clean
X-purgate-size: 1725

On 30.03.2026 13:59, Mykyta Poturai wrote:
> With CPU hotplug sysctls implemented on Arm it becomes useful to have a
> tool for calling them.
> 
> According to the commit history it seems that putting hptool under
> config MIGRATE was a measure to fix IA64 build. As IA64 is no longer
> supported it can now be brought back. So build it unconditionally.
> 
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
> v6->v7:
> * no changes
> 
> v5->v6:
> * don't change order in Makefile
> 
> v4->v5:
> * make hptool always build
> 
> v3->v4:
> * no changes
> 
> v2->v3:
> * no changes
> 
> v1->v2:
> * switch to configure from legacy config
> ---
>  tools/libs/guest/Makefile.common | 2 +-
>  tools/misc/Makefile              | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/libs/guest/Makefile.common b/tools/libs/guest/Makefile.common
> index b928a4a246..03dfcee7fa 100644
> --- a/tools/libs/guest/Makefile.common
> +++ b/tools/libs/guest/Makefile.common
> @@ -7,6 +7,7 @@ OBJS-y += xg_private.o
>  OBJS-y += xg_domain.o
>  OBJS-y += xg_suspend.o
>  OBJS-y += xg_resume.o
> +OBJS-y += xg_offline_page.o
>  ifeq ($(CONFIG_MIGRATE),y)
>  OBJS-y += xg_sr_common.o
>  OBJS-$(CONFIG_X86) += xg_sr_common_x86.o
> @@ -17,7 +18,6 @@ OBJS-$(CONFIG_X86) += xg_sr_save_x86_pv.o
>  OBJS-$(CONFIG_X86) += xg_sr_save_x86_hvm.o
>  OBJS-y += xg_sr_restore.o
>  OBJS-y += xg_sr_save.o
> -OBJS-y += xg_offline_page.o
>  else
>  OBJS-y += xg_nomigrate.o
>  endif

This looks wrong to me. There are x86-specifics in that file, which shouldn't
be built on Arm. And the name of the file also doesn't indicate any relation
to CPU management.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 12:37:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 12:37:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267580.1557040 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Brb-00047r-93; Mon, 30 Mar 2026 12:37:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267580.1557040; Mon, 30 Mar 2026 12:37:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Brb-00047k-5l; Mon, 30 Mar 2026 12:37:03 +0000
Received: by outflank-mailman (input) for mailman id 1267580;
 Mon, 30 Mar 2026 12:37:01 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7BrZ-00047e-4e
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 12:37:01 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7BrY-0041AB-Gk
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 14:37:00 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69ca6e65-e002-0a2a0a5209dd-0a2a45048efc-24
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 14:37:00 +0200
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69ca6e6c-c823-0a2a45040019-d155802ff1ac-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 14:37:00 +0200
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-486fb14227cso58629945e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 05:37:00 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48722c845b8sm256351125e9.4.2026.03.30.05.36.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 05:36:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774874220; x=1775479020; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wqbTovqReXLHlu4nksmlR9M7+VDsBy7ec+OQZw5Bb9U=;
        b=dBvkKpQz820VKJgMREfGMm7l8WKcsCeXgULh6QWN4SJKrLv+w+YpK7bcHWFlU5FeIj
         t4il94G73Bn1NVacnqoMjYI6xGoIW2IoRPND/SGY3QYNrqaSlJgKYuFCya7t9/687wXQ
         /F632AvwWOI1c4wnJ1tMym1E1MUPa8066oMBwurkjjpQQ0QPwo0o2ztKW5vBPmCmDe+x
         tUrZsV63A12EIABunKYFNwkaMusYMVkim3H4nPWHCY/RCX4+dKSq8doybYFGFHVzylx/
         jAA2SiI/rjPTxBGAUQp2/8I5Wwa9/zyamMr/RH69GTM9uHpCDHnmU/CG1Z6voJazONjB
         yQdA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774874220; x=1775479020;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wqbTovqReXLHlu4nksmlR9M7+VDsBy7ec+OQZw5Bb9U=;
        b=tUZbxRi3lX/ctVJMhZHNt5AGicMnyUlrhe4xkAwp7Oprgr/tjKzPL1Pj7Dx6YSNa+X
         Ix2HLhvACDvvdcVuv3hS2yK6yyI8H4jbwc3Yb6iDYBMbG5KKPBL/lo2sxnlL1PCmX9uO
         62gPLjyF9uHG+7JILLmO4LMHw3yafYEOP26a5ZFNFvzFgE6sH5CFsDzOAjbk7b6LIrZT
         J+P/5M20EqLQBZLuXNIsRdN1CY7SB9g1FvwxxCR/qpxeKF6bgqCCtnVMN/BpRawQ/TGy
         oC5lkcj5QF0qngyX6qMaIF4UnYAwQoBf80jSXCZU0ZRoaKpnwIAmB6cveoE8EzDBzJuG
         R22A==
X-Forwarded-Encrypted: i=1; AJvYcCVkHsgPW45gos8H6H3kvsXGjhKdNI1y4n9vyw0lHexhHf5z+ZVK4h/Fd7/AB/P3AOGsJbgWzCrRABE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxi5qcsT4gSd8NW1uvp8vo9Svjp8nJ7k0m6+o/OBG34ranDjHrK
	O+Yp+9j0hbyeVU4QhKPvdEjMG2DKrBN/cUFmnjL5/Yi5RMo8ciMORJAtOLfdHxA5MQ==
X-Gm-Gg: ATEYQzyRr1u5KRn4RGYDdY2qYJIrcSJrz+XugxJ49CY77A+RCSQAi0WcBo7GgzIQtot
	NdoGD6GvHVm5Dis+NdnDNTO0BSbobitFWz9rJMUIj3e4DXWJeuEQ7jNbynZoZ2VtK0Atv+mFnzX
	QQwYRiLKfk6EMUi5JXvmIJaooJDn9DGlK35kYCExdzNsRlNUVGGsbC7Khq67/1bmq4vZqHHqQe4
	jPnlNek4lC+6Ay0Vrpw6lrexwtmnKiBC/qKNS/H0W6JO1FYnKw3omBwlqcU8E5Q/XBcWOW0kFbb
	+gANOthBA6DreUei4r0oWT7em0HlPS0qSYLyXyIRzsREjFc4KBG6YQl9m01/AKkszZHI22sWxI7
	QjgyW5sDDBgIgUq7cv12TZoHKu37ccleRgt484gPjb+tT+vvW/rZ44rbPf0OoXVrAX0bxB/KG2Y
	Mio/KROrMSq8mHiUy3FCwCbLBWVp2H6GGHYJ/zvadRnpmCOp1iNwv7HTQKE+raLZfEACDnVC62Q
	W/dPUxVdKoV4DU=
X-Received: by 2002:a05:600c:6819:b0:485:40fd:8390 with SMTP id 5b1f17b1804b1-48727f238d9mr215317195e9.26.1774874219827;
        Mon, 30 Mar 2026 05:36:59 -0700 (PDT)
Message-ID: <c5cef874-b47c-4b18-a069-e6656fed6080@suse.com>
Date: Mon, 30 Mar 2026 14:37:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 6/6] docs: Document CPU hotplug
To: Mykyta Poturai <Mykyta_Poturai@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: <cover.1774871881.git.mykyta_poturai@epam.com>
 <97ad7b68c5e42fc396b155ef1d0a69a738b28881.1774871881.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: <97ad7b68c5e42fc396b155ef1d0a69a738b28881.1774871881.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ebf023/1774874220-BB6949D1-5A0EA12F/0/0
X-purgate-type: clean
X-purgate-size: 358

On 30.03.2026 13:59, Mykyta Poturai wrote:
> --- a/SUPPORT.md
> +++ b/SUPPORT.md
> @@ -52,6 +52,7 @@ For the Cortex A77 r0p0 - r1p0, see Errata 1508412.
>  ### ACPI CPU Hotplug
>  
>      Status, x86: Experimental
> +    Status, Arm64: Experimental

Are you sure? I didn't spot an ACPI connection in the patches (in particular
in patch 4).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 13:03:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 13:03:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267599.1557061 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7CHL-0008NJ-Dg; Mon, 30 Mar 2026 13:03:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267599.1557061; Mon, 30 Mar 2026 13:03:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7CHL-0008NC-9x; Mon, 30 Mar 2026 13:03:39 +0000
Received: by outflank-mailman (input) for mailman id 1267599;
 Mon, 30 Mar 2026 13:03:38 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <bounce-md_30504962.69ca74a8.v1-0bd2a37b017a4187b18ee74058cd82a3@bounce.vates.tech>)
 id 1w7CHK-0008N4-FG
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 13:03:38 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7CHJ-008Fqc-IV
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 15:03:37 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <bounce-md_30504962.69ca74a8.v1-0bd2a37b017a4187b18ee74058cd82a3@bounce.vates.tech>)
 id 69ca74a8-e002-0a2a0a5209dd-0a2a45069b50-4
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 15:03:37 +0200
Received: from [198.2.132.14] (helo=mail132-14.atl131.mandrillapp.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from
 <bounce-md_30504962.69ca74a8.v1-0bd2a37b017a4187b18ee74058cd82a3@bounce.vates.tech>)
 id 69ca74a8-3034-0a2a45060019-c602840e56da-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 15:03:37 +0200
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-14.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fkrzD0Xmfz8XRwkm
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 13:03:36 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 0bd2a37b017a4187b18ee74058cd82a3; Mon, 30 Mar 2026 13:03:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mte1 header.d=mandrillapp.com header.i="@mandrillapp.com" header.h="From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"; dkim=pass header.s=mte1 header.d=vates.tech header.i="anthony.perard@vates.tech" header.h="From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774875816; x=1775145816;
	bh=cg8xMuCWMMEqVNb+cDFGfpeqWU2pSI2OVfrn3SI5X0o=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=N2KmwhnMagTfyC6N4hOWNWJxOyCQRXaWg0rsV0PKAczKLTFjiF0uJ/a6TY/VNrNx0
	 BxhuwgPm5xUU87zYcJuln4Yf9lDuBObm9Jpu88TfgOkURjEA3g+IEmTOzcBFzUztfZ
	 7jmXexuRN40EHqLHVxtF4b26hKshg6VMWd4WG4+Z13Tz+Xr/GpYver/GIjX2S10maf
	 YVbKUouDdYKJBsmu/E7AQJb6XYn4ThQ+G1H8Zvep1Ha57Cu+CRkaG8m6qaxJQjI4fz
	 AjxwxEp9+8mSUc0EfZeJI6H3sfrrMyIhwcXLFMOxA0XZoNl9wiwyO8SGSgtPxSjgd5
	 +BjFuPBl2tgIg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774875816; x=1775136316; i=anthony.perard@vates.tech;
	bh=cg8xMuCWMMEqVNb+cDFGfpeqWU2pSI2OVfrn3SI5X0o=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=QAv+2rCEMy6nPAWaHx9rYeFSeC9v2PlOJ7rZCuLBjtZ2aMDvpUIK79dxvyuH8Kpln
	 oEm4StmWDdAdeGQWv5KJv1x9QU15j/dyqhYtU8G/WRjqON8j5zTqMouSDYV6/mUHIX
	 gxNewul+4BAfYuX3mSiKh342VvYDivJUBuQFHu1iEGa8WRPSyoyV7rXGZZC58Cjrbm
	 9Rc8g5se0A3UBwKHhgNSu9Pypp9EHUEpcgv3nWufkBRS19breH2vvb8VkWJ4dkdz8x
	 usopzHIMgR6sRODW5ma0HJrv5neDkkxiDn9RDeldVlAM5JU40TOhSBwSK3pe0yVNdZ
	 UufTIBar6Pn8w==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v9=201/3]=20libxc:=20Report=20EINVAL=20in=20invalid=20xc=5Fresource=5Fop=20use?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774875814941
To: "Teddy Astie" <teddy.astie@vates.tech>
Cc: xen-devel@lists.xenproject.org, "Juergen Gross" <jgross@suse.com>
Message-Id: <acp0prvC3CFkR5zv@l14>
References: <d7d0fa8ca02d59d34bd3be7ecfacd5c0376fafc0.1773671343.git.teddy.astie@vates.tech>
In-Reply-To: <d7d0fa8ca02d59d34bd3be7ecfacd5c0376fafc0.1773671343.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.0bd2a37b017a4187b18ee74058cd82a3?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260330:md
Date: Mon, 30 Mar 2026 13:03:36 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1774875817-7A1931C2-97C25ABB/0/0
X-purgate-type: clean
X-purgate-size: 412

On Mon, Mar 16, 2026 at 02:34:05PM +0000, Teddy Astie wrote:
> xc_report_op doesn't update errno when called with 0 operations
> (even though it returns -1).
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 30 13:04:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 13:04:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267605.1557070 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7CHq-0000O6-NE; Mon, 30 Mar 2026 13:04:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267605.1557070; Mon, 30 Mar 2026 13:04:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7CHq-0000Nz-Ka; Mon, 30 Mar 2026 13:04:10 +0000
Received: by outflank-mailman (input) for mailman id 1267605;
 Mon, 30 Mar 2026 13:04:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <bounce-md_30504962.69ca74c7.v1-13f2a4e58d4041a1a932ee0616fd37ca@bounce.vates.tech>)
 id 1w7CHp-0000M5-6N
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 13:04:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7CHo-00EQZX-I3
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 15:04:08 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <bounce-md_30504962.69ca74c7.v1-13f2a4e58d4041a1a932ee0616fd37ca@bounce.vates.tech>)
 id 69ca74bb-5cb7-0a2a0a5109dd-0a2a4509eab0-48
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 15:04:08 +0200
Received: from [198.2.179.37] (helo=mail179-37.suw41.mandrillapp.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from
 <bounce-md_30504962.69ca74c7.v1-13f2a4e58d4041a1a932ee0616fd37ca@bounce.vates.tech>)
 id 69ca74c7-e484-0a2a45090019-c602b325203c-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 15:04:08 +0200
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-37.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4fkrzq0PLLzG0CBNF
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 13:04:07 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 13f2a4e58d4041a1a932ee0616fd37ca; Mon, 30 Mar 2026 13:04:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mte1 header.d=mandrillapp.com header.i="@mandrillapp.com" header.h="From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"; dkim=pass header.s=mte1 header.d=vates.tech header.i="anthony.perard@vates.tech" header.h="From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774875847; x=1775145847;
	bh=OpnNCie1+X46hSYHJy3bjZaeFwsCA4q7T2ADeDx038k=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=Lf++vvEkBQa5R1fY67ct7qRYQ+sNTXbpogHrIDEFTeXXLs6ra1SMNf6W9tcL2Pnsj
	 aiJVHaIi2Kp68w8y1LT8F6sISOCtSqcaNztWZNKIUo3JRv0t+b8Lml5M4TFXr45OEL
	 rkVV+2G1fu5y6EceKsSqmQRHpatwjTvbVEVhJ3ymsGfgFJxSWCoHUgmd7Dkck3FOzu
	 hmTsq42GesQOgzSdT75y4cVH91gaIoLd0+BvadB9227/I/rBCfxVG6KItko72FYVwm
	 HamLgpEFmfeInG77WqAr7cEatyt7Euvbzfza7wY7VKyhyByxA+L7SdY1WwZxagPE3r
	 3Bt3CafeXKgFw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774875847; x=1775136347; i=anthony.perard@vates.tech;
	bh=OpnNCie1+X46hSYHJy3bjZaeFwsCA4q7T2ADeDx038k=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=Q9v7lIm+Up9ygHWiDsPZJR8/nE0z7pqJQOoqI/kaWkQG0G/cb46yj/1aav7k4QyW/
	 g4SUEYyBumyYD6sGKmnWWHXhZLfLyvuw7ujP63/JNOScmJQofBRhPp35egzmSrWbkH
	 OOpXC8ThuV6smHcuZqi4n/UyTj0k/1Zd86Ekkl0y34EV4b/GThRh6Qx/05f57ctdiV
	 +tsH1tVn7Nn9wTIyXxWkavi/A1FdvlwEjhCrBpSJdYvdSs2HC2/STrPpOU/vX/ROfs
	 DqK1OON7BGctPTOeuO95mDjDdeg4xN9TNG4Eaa2aRRdjRcVwR09X+Mo8+OMB6vFCc8
	 LajdqJlp8/wUg==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v9=202/3]=20xenpm:=20Use=20EXIT=5F{SUCCESS,FAILURE}=20instead=20of=20errno=20as=20=20exit=20codes?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774875846505
To: "Teddy Astie" <teddy.astie@vates.tech>
Cc: xen-devel@lists.xenproject.org, "Jan Beulich" <jbeulich@suse.com>
Message-Id: <acp0xvKOvI78-01W@l14>
References: <d7d0fa8ca02d59d34bd3be7ecfacd5c0376fafc0.1773671343.git.teddy.astie@vates.tech> <cafb3c93e212a20e314517418dc2ab9f316708b1.1773671343.git.teddy.astie@vates.tech>
In-Reply-To: <cafb3c93e212a20e314517418dc2ab9f316708b1.1773671343.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.13f2a4e58d4041a1a932ee0616fd37ca?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260330:md
Date: Mon, 30 Mar 2026 13:04:07 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1774875848-6974BA73-87C02114/0/0
X-purgate-type: clean
X-purgate-size: 618

On Mon, Mar 16, 2026 at 02:34:07PM +0000, Teddy Astie wrote:
> errno is not unified accross platforms, which makes error codes actually
> platform specific. C standard defines EXIT_SUCCESS and EXIT_FAILURE
> (respectively 0 and 1) as standard errors codes, even though it only reports
> whether it failed or not.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Mar 30 13:09:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 13:09:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267621.1557079 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7CMS-00019N-8B; Mon, 30 Mar 2026 13:08:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267621.1557079; Mon, 30 Mar 2026 13:08:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7CMS-00019G-4Z; Mon, 30 Mar 2026 13:08:56 +0000
Received: by outflank-mailman (input) for mailman id 1267621;
 Mon, 30 Mar 2026 13:08:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <bounce-md_30504962.69ca75e4.v1-0ce58cf1903347f2bf5eab2ab4093227@bounce.vates.tech>)
 id 1w7CMR-00019A-36
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 13:08:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7CMQ-00FSVf-0e
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 15:08:54 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <bounce-md_30504962.69ca75e4.v1-0ce58cf1903347f2bf5eab2ab4093227@bounce.vates.tech>)
 id 69ca75e1-5cb7-0a2a0a5109dd-0a2a4508c058-16
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 15:08:53 +0200
Received: from [198.2.179.37] (helo=mail179-37.suw41.mandrillapp.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from
 <bounce-md_30504962.69ca75e4.v1-0ce58cf1903347f2bf5eab2ab4093227@bounce.vates.tech>)
 id 69ca75e4-1950-0a2a45080019-c602b325e9e2-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 15:08:53 +0200
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-37.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4fks5J3HtHzG0CBMd
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 13:08:52 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 0ce58cf1903347f2bf5eab2ab4093227; Mon, 30 Mar 2026 13:08:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mte1 header.d=mandrillapp.com header.i="@mandrillapp.com" header.h="From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"; dkim=pass header.s=mte1 header.d=vates.tech header.i="anthony.perard@vates.tech" header.h="From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774876132; x=1775146132;
	bh=mIEm/iN6fS8KrIMEKNtAJdkxNl1wvFYMuGBbwzIso9s=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=dNNEjd+R88zXUCt8zOhkINrMA/vbtAe2+33+Jmyb0iRdX9BgQnCQTnHPvN1TWuabK
	 aPuD7Rf46BrfaXTenj23XPgGFUWz0UKPeRa/wqiscPplpSmiDs+IryikyfSd8aX2UU
	 BKKOwkFWGO2Nr8UAjcasPLePkrZxsmeiW9a66Ls1wJrmpscXXd54izRaF7V3aMuZ+F
	 0uvAmwj2dv+Ba4yi1yBOFnR57csx+FHaMou9mvvAgnl8FF0/skeltnru+UItcvpLcw
	 WTe8dymhC4Ig4mvh8a8MNWsz6p7XEgO2arvH5vr/GOzOzh40F+w+eTQJ4/ku/C/QUa
	 j+QTNCnr81aAQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774876132; x=1775136632; i=anthony.perard@vates.tech;
	bh=mIEm/iN6fS8KrIMEKNtAJdkxNl1wvFYMuGBbwzIso9s=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=JN2yXSfjGsSxvIzwIyrgkzQ77q6OTvp3776rY7XJaFyGVdziOhW22S/1dhmzHPsNN
	 H9shES4u3kQkJ+J0MVxzSulGQmK4k8oEWuFIvr3vw6dyYeftz/4kNiZGBuOaObux8H
	 o0zbHjqjdUJl5sGr2Gl/uM+F6qJuekhQIuSWdXS9Q6NuvqbUlx+SKl9Ojm48OvQAXM
	 NJVSC/RcIQlTWodicnqktoAYrDfYIngWN8HZsJw82JlcaUxHmiNyCnT7NgsuZ+PJed
	 mjYWA7CZPBLqx8Uoa9p1BsGVRw8DEP4U4gD32/eg3NnWoRG9oa0+R+n1tGf3w0l+pA
	 smRkRnFhdORCA==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v9=203/3]=20xenpm:=20Add=20get-core-temp=20subcommand?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774876130735
To: "Teddy Astie" <teddy.astie@vates.tech>
Cc: xen-devel@lists.xenproject.org, "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, "Community Manager" <community.manager@xenproject.org>, "Jan Beulich" <jbeulich@suse.com>
Message-Id: <acp14kg1WJKKwa_Z@l14>
References: <d7d0fa8ca02d59d34bd3be7ecfacd5c0376fafc0.1773671343.git.teddy.astie@vates.tech> <97e34958e8070ee8771157e5ece78e7db1308174.1773671343.git.teddy.astie@vates.tech>
In-Reply-To: <97e34958e8070ee8771157e5ece78e7db1308174.1773671343.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.0ce58cf1903347f2bf5eab2ab4093227?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260330:md
Date: Mon, 30 Mar 2026 13:08:52 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-c1860d/1774876133-E9488726-97333838/0/0
X-purgate-type: clean
X-purgate-size: 2941

On Mon, Mar 16, 2026 at 02:34:09PM +0000, Teddy Astie wrote:
> diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
> index e4902d2e82..37f484b362 100644
> --- a/tools/misc/xenpm.c
> +++ b/tools/misc/xenpm.c
> +static void get_core_temp(int argc, char *argv[])
> +{
> +    int temp =3D -1, cpu =3D -1;
> +    unsigned int socket;
> +    bool has_data =3D false;
> +
> +    if ( argc > 0 )
> +        parse_cpuid(argv[0], &cpu);
> +
> +    if ( cpu !=3D -1 )
> +    {
> +        if ( !fetch_dts_temp(xc_handle, cpu, false, &temp) )
> +            printf("CPU%d: %d=C2=B0C\n", cpu, temp);
> +        else
> +        {
> +            fprintf(stderr, "Unable to fetch temperature (%d - %s)\n",
> +                    errno, strerror(errno));
> +            printf("No data\n");

What is this "no data" for? There's already two clues which says that
there's nothing to print, the error message on stderr, and the non-zero
exit value.

> +            exit(EXIT_FAILURE);
> +        }
> +        return;
> +    }
> +
> +    /* Per socket measurement */
> +    for ( socket =3D 0, cpu =3D 0; cpu < max_cpu_nr;
> +          socket++, cpu +=3D physinfo.cores_per_socket * physinfo.thread=
s_per_core )
> +    {
> +        if ( fetch_dts_temp(xc_handle, cpu, true, &temp) )

Here, you deal with the error return by fetch_dts_temp() first, then the
success, but in the previous block (cpu=3Dall) you do the opposite. Also,
here the success isn't even in the else part, but after. Could you
choose one style to be consistent?

I think I prefer to deal with the error first, so like here.

> +        {
> +            fprintf(stderr,
> +                    "[Package%u] Unable to fetch temperature (%d - %s)\n=
",
> +                    cpu, errno, strerror(errno));
> +            continue;

If we got an error one one package, aren't we likely to got more error?
Is it worth to keep trying on the next package?

> +        }
> +
> +        has_data =3D true;
> +        printf("Package%u: %d=C2=B0C\n", socket, temp);
> +    }
> +
> +    if ( has_data )
> +        /* Avoid inserting a trailing line if we have nothing */
> +        printf("\n");
> +
> +    for ( cpu =3D 0; cpu < max_cpu_nr; cpu +=3D physinfo.threads_per_cor=
e )
> +    {
> +        if ( fetch_dts_temp(xc_handle, cpu, false, &temp) )
> +        {
> +            fprintf(stderr, "[CPU%d] Unable to fetch temperature (%d - %=
s)\n",
> +                    cpu, errno, strerror(errno));
> +            continue;
> +        }
> +
> +        has_data =3D true;
> +        printf("CPU%d: %d=C2=B0C\n", cpu, temp);
> +    }
> +
> +    if ( !has_data )
> +    {
> +        printf("No data\n");

Another "no data".

> +        exit(EXIT_FAILURE);
> +    }
> +}
> +

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Mar 30 13:14:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 13:14:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267631.1557088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7CRl-0002es-QO; Mon, 30 Mar 2026 13:14:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267631.1557088; Mon, 30 Mar 2026 13:14:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7CRl-0002el-Mj; Mon, 30 Mar 2026 13:14:25 +0000
Received: by outflank-mailman (input) for mailman id 1267631;
 Mon, 30 Mar 2026 13:14:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7CRk-0002ea-Et
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 13:14:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7CRj-008IG3-NF
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 15:14:23 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69ca771f-bab6-0a2a0a5309dd-0a2a4506891c-48
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 15:14:23 +0200
Received: from [209.85.221.43] (helo=mail-wr1-f43.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69ca772f-3034-0a2a45060019-d155dd2bacc4-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 15:14:23 +0200
Received: by mail-wr1-f43.google.com with SMTP id
 ffacd0b85a97d-43b983bb07eso2243242f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 06:14:23 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf21ebef9sm19935817f8f.13.2026.03.30.06.14.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 06:14:18 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774876463; x=1775481263; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZSqrni6DqIrxEPhZ9hSWrm/UDd1g4U0+JQ1ZYvAYX74=;
        b=KTD7azAMLDLZo9x51BjNNs4rvDZAaIcEqSjnuAbKz1gr5sXGGrIDNmvLxmvrzamLKV
         D06wgboMEuBu8AhK+hLY5OS6GSNeVY/XCWzYNpeINXWfySOOtexKyccdly/dgw3QdOCD
         6FksTRB8NZfBVR9b5X2io+f3FC5S2A/GOkACaFbF9sVNt/jrdzP+zG3AA4nwftG5uUHf
         hQjaOZVr0p4BIX10Pf6pMxo73bXlXBPi0S3JlLRHXVAnBzBA7XIoUKcqyY/xJW47lL7e
         cH1bLydmtr2h6das+2L0w4VHzcbXUKHk8kPrbchRm9dfRG0bnSUs3dLBJ0EQvEksGvQW
         l27A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774876463; x=1775481263;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZSqrni6DqIrxEPhZ9hSWrm/UDd1g4U0+JQ1ZYvAYX74=;
        b=fgddIWStW1B5sd05ZM/vCJWbu2RizmcNjVRqGqeCWoFVOccjDI7aj13K9x0ou44eao
         EEq0jxL+bt09Q5uEeH+Zfc9VnPj2GylhdSNVTAhpFeAk4jJRq+51xuCWeLc8vYwYPvXM
         vzI9NjiAm6v4VtaflivnZYql+1ZrV4XSTEY7llG0WlJ2Wy6WcIKh9n1zdQqnFvxF64rN
         OM424B0qM9HOPqs0DG6a+v973Hl8Y+bdIgfwDSdf2u/nP6DxTotfxKLxVg9r6Ns4dAzK
         iRkmidhH6lPaGuxj7E6QB63GtJOuNogo/YFoG/Zp0G78GmAR8y8A8QdQQtrRD9hohRGR
         qzzg==
X-Forwarded-Encrypted: i=1; AJvYcCU+7pD5/kdX/L9reESWXDOz/qqc3D+7N1HrEyN9P1UjILSSc7oSAgQcJlDIdMU2F9LqdIs/am6WsAE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz/SFsaOhVtFfjf1dP9SVtpUqlN0vBMODfCj/L/nPPTiBdKa5qe
	LKKufjy3+I/8thdWhUQe6oQKCO5bmPzzJeq7cooan4CwPU1oOR9Uz0JmKm2DeXaqLA==
X-Gm-Gg: ATEYQzybZhm35CbdFMsdrTQqwNCGrqQM+t9OQH/JCHa6Q2SMtnF4YdOr6gb3HgAaHlP
	YhvOmFBSq4MU5C+Hb/u4DwKfIiruZa8yPuosonebyycOyj+e/aG3Is/gDCqYDdREJ+3JpU/uFk/
	r4kdam1ZDQsdu+/UAzYcB4DR6Cdzcg1tzuEUvZ+osCitfPbht7AbKJL33KEfKE3Uy8Kyqmxo1IW
	knrze7hUgVJ/qM/h39fqbLZNT6KVFsTndwY8fy7rc7wQruThFfhvMdQ5WNGOnDM3ejnyg3Yxa+m
	+y0cn9wX1DrqR+elpZzn1A5hTb5Ayp3s6VUMaQnZyz7RldYKSSxVFdN0v61ybuj3kyfWvr60mfy
	LBG5PsWRKxsCqAM4xdBWMAw6ordJHk+1tukkQCDHIgBiSeWVy/b+6ZrHaneBIweqq3Yzv2IP8LE
	7gLqR3lb5pwMXNEIh7X62282dUCR+tr3JnboYUz07T9m0qsqrTfgwACqrmpAX3pc5sTKxXhIZwL
	BxXVPyWDFQYMFw=
X-Received: by 2002:a5d:64e6:0:b0:43b:3d54:3154 with SMTP id ffacd0b85a97d-43b9e9d5e5emr19167376f8f.7.1774876458988;
        Mon, 30 Mar 2026 06:14:18 -0700 (PDT)
Message-ID: <df084abe-f005-450c-ba45-4ee79427c4e5@suse.com>
Date: Mon, 30 Mar 2026 15:14:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen: introduce shared_info_to_gfn()
To: Penny Zheng <Penny.Zheng@amd.com>
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>,
 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, alejandro.garciavallejo@amd.com
References: <20260327075025.3008606-1-Penny.Zheng@amd.com>
 <20260327075025.3008606-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: <20260327075025.3008606-3-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1774876463-797881C2-61ECCD93/0/0
X-purgate-type: clean
X-purgate-size: 1561

On 27.03.2026 08:50, Penny Zheng wrote:
> On ARM, mfn_to_gfn() is a simple identity macro that actually does not return
> the correct GFN for domains other than direct-map ones, so getdomaininfo() is
> returning the wrong shared_info_frame on ARM.
> 
> Introduce a common shared_info_to_gfn(d) macro to output correct GFN for both
> ARM and x86 in getdomaininfo():
> - ARM: uses page_get_xenheap_gfn() to read the stored GFN
> - x86: simply wraps the existing mfn_to_gfn() solution which consults the M2P
>        table
> 
> Suggested-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> Signed-off-by: Penny Zheng <penny.zheng@amd.com>

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

> --- a/xen/arch/x86/include/asm/p2m.h
> +++ b/xen/arch/x86/include/asm/p2m.h
> @@ -582,6 +582,9 @@ static inline gfn_t mfn_to_gfn(const struct domain *d, mfn_t mfn)
>          return _gfn(mfn_x(mfn));
>  }
>  
> +#define shared_info_to_gfn(d) \
> +    mfn_to_gfn((d), _mfn(virt_to_mfn((d)->shared_info)))

... the excess parentheses removed from the first argument. (Can be
adjusted while committing if no other need for a v2 arises.)

It also looks as if this change was independent of patch 1. As indicated
before, such information would be useful to supply right away, as it
allows this patch to go in ahead of patch 1 (if acks arrive here but not
there).

Btw, shouldn't there be a Fixes: tag? If so, and if this then was to be
backported, it being (in)dependent of patch 1 would become yet more
relevant.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 13:34:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 13:34:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267642.1557098 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7CkZ-0005aq-9D; Mon, 30 Mar 2026 13:33:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267642.1557098; Mon, 30 Mar 2026 13:33:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7CkZ-0005aj-3p; Mon, 30 Mar 2026 13:33:51 +0000
Received: by outflank-mailman (input) for mailman id 1267642;
 Mon, 30 Mar 2026 13:33:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7CkX-0005ad-Kc
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 13:33:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7CkW-00EVqe-VB
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 15:33:49 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69ca7bb6-2eae-0a2a0a5409dd-0a2a4507a3bc-20
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 15:33:48 +0200
Received: from [209.85.221.47] (helo=mail-wr1-f47.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69ca7bbc-fd74-0a2a45070019-d155dd2fa5a3-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 15:33:48 +0200
Received: by mail-wr1-f47.google.com with SMTP id
 ffacd0b85a97d-43cf5fbacc9so911021f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 06:33:48 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf21eb95fsm21196306f8f.12.2026.03.30.06.33.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 06:33:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774877628; x=1775482428; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Mg/CbfknMaJVwMYfT16B838FDln3W0SfrBw3dLtEV/4=;
        b=HQmFoztVSVt9yadkdxqy2BoxQFElF0Xgyi2X6ssI3bc6KZhII2RWS3EmAC54oy2Trz
         cuPIlJYm5ehOnTJZpUMgnBkI5t/10yEdUgl1O1KAQ0UARXqwCIeP9E3R5uwGAZnO5rQc
         BEJX1/lWZxFFjxTU3vwhleJLfjLT106ZAt1s5q3khtLWtQi/YMkCah0YP1Q92RytfD6G
         +zBZ7dlkCjzVaRSOBnBVdGu5Ff8Gov+Wr5L1HbM8rFBSaTb6aw63ZdMipmAk442r3KVL
         tPJJj788nO3u5YIDVv0Y7Wrkb+Qcpw6t6VPgyQgLqRKoiH9PIEnkeQJlPTYrVMhAGqdZ
         MeaQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774877628; x=1775482428;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Mg/CbfknMaJVwMYfT16B838FDln3W0SfrBw3dLtEV/4=;
        b=QvKWm+35GFhNaT6BZtyVCUCrwhpKkX05x7Co5F2L485ODQw9fqbUQBka/joAylqgFM
         y+krhAk+ClPtFLQR4hn4EFKkApHilAPiMcP87aimj/Zjt55eNtWbveFn0pVVqVna/z+l
         HkJnqpxZT5JWWkXyr9RSss6t+rdULbqx+A4r3tBX/MGYLrK3M4Q1UJnWZodqkWR/kmJy
         Crw4nHgFtp1d8gM+j4a2dahJPh5UbxYcx7/uiMizBE4HtFtp0VL7E7qRUNkSRNVPtmBl
         5tbbFGX22SoPm8TqsmCp1i3xQjJlxIOST7WCKGgAiDcMy+4/AphiX7mgO6oq/inMXZzT
         Ou3Q==
X-Forwarded-Encrypted: i=1; AJvYcCUbbEYmu6frSCRfTrx5IzjaPlIB4qaeDOsVHkVW46K892SkjseL2J9nu/KibcmKW+2KFGVhU2l3tLQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx08OWgFDgLfVib6Osq5HENWPxz81YL76Kpauzht8G9yWQnKOaI
	wF8sv39iOLPY3z4UGqQUF4AjbNHy5CA8R3KcbRToNndrP6R097y/zQkmuAgZks4rhg==
X-Gm-Gg: ATEYQzxGC0N444eRNlvfhx7SsPuiAuGCt4qLictnHBVJuU/cYJ1CIMUbLRxsl9UTfbm
	RINN1ZVxzR9aoFUpnfv/EThen1NcbeTtZ6B0ZEumL/N0m0Zct9n0xfP1PjVvFa95qrjGLFE2ADr
	sIMSdDKMwgOG/QKzNhHiUSc3oglulQeCUcUJ03z9YhQeXeXRgFcdo5IbqaEnv98hGxPAb3JVplG
	FdU4PSVVGNFv1JH6kCeai3rB3qqZZkCghk2vt8GT3+PLWkTfrXRXzQIXbQqAT96W1dmVVHGrINp
	kXx4kZZy0TNuRdpXPf7bEib2+o0RORJjvoKXngL1nL373fzb9P+hu+C1lJmPZzCdntydgx0eFJg
	MHrMqDA2qn4oHsYdw77JtTwCLGRpj0n+xCbjvrYsNKpzclDdb/hEmPlOmQ6aEa8N6Arxf7ir2KO
	e7LEQ90Sxy67+th+rDsmuFDDWDygAioWOHLq6APHlC/LlJ/IKPQ+4y7wMQi/uQjo04K0jZXx8uO
	THbzwYAhc53oCg=
X-Received: by 2002:a05:6000:2c06:b0:43b:4312:2cbb with SMTP id ffacd0b85a97d-43b9eb10dc5mr19894273f8f.17.1774877628161;
        Mon, 30 Mar 2026 06:33:48 -0700 (PDT)
Message-ID: <07790d30-a739-46de-8e87-60f239cd8ad1@suse.com>
Date: Mon, 30 Mar 2026 15:33:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/3] xen/arm: fix mfn_to_gfn() usage in
 memory_exchange()
To: Penny Zheng <Penny.Zheng@amd.com>
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>,
 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, alejandro.garciavallejo@amd.com
References: <20260327075025.3008606-1-Penny.Zheng@amd.com>
 <20260327075025.3008606-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: <20260327075025.3008606-4-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1774877628-562B1303-4443844E/0/0
X-purgate-type: clean
X-purgate-size: 2248

On 27.03.2026 08:50, Penny Zheng wrote:
> On ARM, the only callsite of mfn_to_gfn() is in memory_exchange(). Although
> memory_exchange() is actually not reachable on ARM because steal_page() always
> returns -EOPNOTSUPP. We still need to fix it here to ensure correctness once
> steal_page() is implemented for ARM in the future, and avoid propagating
> broken usage.

steal_page() may need making functional on Arm without the need to permit
memory_exchange(). That would allow a different approach to the problem.

> --- a/xen/common/memory.c
> +++ b/xen/common/memory.c
> @@ -814,6 +814,13 @@ static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen_memory_exchange_t) arg)
>                      goto fail;
>                  }
>  
> +#ifndef CONFIG_X86
> +                /*
> +                 * Record the GFN in the page's type_info,
> +                 * so that we can retrieve it later when consuming the page.
> +                 */
> +                page_set_gfn(page, _gfn(gmfn + k));
> +#endif
>                  page_list_add(page, &in_chunk_list);
>  #ifdef CONFIG_X86
>                  put_gfn(d, gmfn + k);
> @@ -849,7 +856,11 @@ static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen_memory_exchange_t) arg)
>              gfn_t gfn;
>  
>              mfn = page_to_mfn(page);
> +#ifdef CONFIG_X86
>              gfn = mfn_to_gfn(d, mfn);
> +#else
> +            gfn = page_get_gfn(page);
> +#endif
>              /* Pages were unshared above */
>              BUG_ON(SHARED_M2P(gfn_x(gfn)));
>              if ( guest_physmap_remove_page(d, gfn, mfn, 0) )

I pretty strongly object to further CONFIG_<arch> uses in common code. We should
reduce their amount, not increase it. Why can't page_set_gfn() be a no-op on x86,
while page_get_gfn() would resolve to mfn_to_gfn()?

The #ifdef-ary here will, btw, likely need reducing if you want to make
steal_page() and memory_exchange() work on Arm: Like x86, a GFN reference would
then presumably need holding across the steal_page() invocation.

After you have fetched the GFN, I think you want to invalidate the field again.
Otherwise, after the subsequent guest_physmap_add_page(), the stored value will
likely be stale.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 13:40:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 13:40:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267654.1557106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Cr4-0007Iv-Vu; Mon, 30 Mar 2026 13:40:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267654.1557106; Mon, 30 Mar 2026 13:40:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Cr4-0007In-SW; Mon, 30 Mar 2026 13:40:34 +0000
Received: by outflank-mailman (input) for mailman id 1267654;
 Mon, 30 Mar 2026 13:40:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <oleksii.kurochko@gmail.com>) id 1w7Cr4-0007IO-9z
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 13:40:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7Cr3-00D0we-IF
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 15:40:33 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69ca7d4d-5cb7-0a2a0a5109dd-0a2a4506b600-26
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 15:40:33 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69ca7d51-3034-0a2a45060019-d1558030c90a-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 15:40:33 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-48558d6ef83so44779505e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 06:40:33 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487270ea4bdsm141846615e9.6.2026.03.30.06.40.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 06:40:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774878033; x=1775482833; 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=Hicmc3h5Xh0i+iO2B/3pYhiTPqSbqVQJT/VWCPOgds4=;
        b=DY6nojE2xrBJMRGbSbVcIsezbfbKYXDHIyfZhHRU3ka3+DltgCMo63C8EmHflyAK3B
         IXl9ibI4KsbKryvdMGbMHQ15gRsDw7H7s0FBSt2T0z1LyQ8HDiapiTVg/UA7Ca67uT8u
         v7YpVySKEgywDM1tArdN6Of4P8KsQsethxjJQa/LakVJrQ2kqsSrDn9H0liAEyzr7X3t
         PtRuFXRMCZNWHenP7/acmeIiRcGBzCFBdgfusIuQr+3w2TAe/hvJKxzAT2s1BQtzET8/
         nre21KOIZLKCc5gkDGeCJ3QpN/aIRznr5I0g4SsrcB7yw/SKTFLsKL5Kj1GXrGfNzEQ8
         58oQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774878033; x=1775482833;
        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=Hicmc3h5Xh0i+iO2B/3pYhiTPqSbqVQJT/VWCPOgds4=;
        b=imBqxVyBDf7hkeXJecWmnB4C7YrUdIwwotYvT0jfHcA1vHVHh8CB45kaJdScQ1FgR3
         9hd4Ji7zLS3FPwCt1EvSCNsTlECvJnymFrp3LdMOmaMtS7AilatvScbW4hI+exhjy5aR
         EZ04n4qSvDzMrSV74j7SBCERwtKSOQ80ooVZkGPkff6IeDWZGWN+wrmbUTxtOXYhvKyZ
         jDpsYkAlVMIASCfdZ4efFuSdRPnOEEcprGfu/YSHcV8IEppXloKZd4OE3ViziTExno1O
         gycM5+JcOoUCzmr+wZW+aszDGmY0IRXpa1BGwsPWcyYrrTPyAy5+i+1kGLne+Wq96+zT
         Pt/Q==
X-Forwarded-Encrypted: i=1; AJvYcCWqiFB8RpesFMyf2X+nheoUshFaJWue9/iOp0L/ciiClGfdVaZPGV0jYgZXwkqizYj7o/95JsPt7I4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxhE7ApQa7mJv0CJAIvKoovXqwDGBdY5ae++ViPsPosu6N3PBCx
	ULVZ4IhZfMSGz1ueTOFeuSB0BLdavedOOiQECFdRziKBRYLy4lB29nda
X-Gm-Gg: ATEYQzziZ8kRUnTuIHqAZolWFr/n2RqS66r+hDXTD5GbDUkt0g+N3DUEfmp00W63RFb
	WzeX8MklRgCq0/RLHtqt7ToYobzoDQDUUM2hXDV2FW7cCF/6Trsy5LrfsWnBFdZ22wJy8OwbMTe
	xlMRuOiKLtnf2ORIEn4CJnsNq0a1DxuKqR0XpBVHZy6CkHoQY7gV1QmdD9AGxwvhXzLJJX2bbDI
	Au4pEq9XQditKxcPXrYPRAIlk7MzSIR+VwcwUtg3etkivGS6kGOwDHk4hozo0+FZhZ1rNgdqUzs
	CLWPJSpKm6uRXarH2daRcP6Cdj5taxufVyfCQe4qnuzMiWroG6g0rahkyzJrRy3cR38pKcbXjJ5
	3E7YMJJ+J8eJhaKKbcxVfEpFtkM+uiNoS2ORC1u+q34mzCuK4R38S2q5vlm1KrTSwKwPgPwPsby
	8Rtpz5Zw9VCHd6lGwcQHDrhgV19Ba0K96Mn9oUAGTJL6k5erheTzZbrRXKh4fromAqJG7VYYoX8
	gI=
X-Received: by 2002:a05:600c:3504:b0:485:3e20:4013 with SMTP id 5b1f17b1804b1-48727f0b109mr180427075e9.28.1774878032262;
        Mon, 30 Mar 2026 06:40:32 -0700 (PDT)
Message-ID: <437b0d3c-916d-4513-9159-ee4e4c904bf4@gmail.com>
Date: Mon, 30 Mar 2026 15:40:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/11] xen/riscv: implement get_page_from_gfn()
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
 <ba0ea599c4ced7fca0b8f5dd66bb7ffb277f3a4f.1774281309.git.oleksii.kurochko@gmail.com>
 <ef4eac20-d136-4c9a-82be-72259c088537@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <ef4eac20-d136-4c9a-82be-72259c088537@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1774878033-829971C2-44D61C6A/0/0
X-purgate-type: clean
X-purgate-size: 2481



On 3/26/26 2:50 PM, Jan Beulich wrote:
> On 23.03.2026 17:29, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -1534,3 +1534,32 @@ void p2m_handle_vmenter(void)
>>        * won't be reused until need_flush is set to true.
>>        */
>>   }
>> +
>> +struct page_info *get_page_from_gfn(struct domain *d, unsigned long gfn,
>> +                                    p2m_type_t *t, p2m_query_t q)
>> +{
>> +    struct page_info *page;
>> +    p2m_type_t p2mt;
>> +
>> +    /* Special case for DOMID_XEN as it isn't "normal" domain */
>> +    if ( likely(d != dom_xen) )
>> +        return p2m_get_page_from_gfn(p2m_get_hostp2m(d), _gfn(gfn), t);
> 
> Comments usually apply to immediately following code. When that's not
> the case (as it is here), the comment either wants moving or wording
> accordingly.

I will move it after if-() statement.

> 
>> +    if ( !t )
>> +        t = &p2mt;
>> +
>> +    *t = p2m_invalid;
>> +
>> +    /* DOMID_XEN sees 1-1 RAM. The p2m_type is based on the type of the page */
> 
> As before - I don't think implying any kind of translation (even 1:1) is
> correct for system domains.

I will rephrase that to:
  "DOM_XEN has no stage-2 translation at all, so the gfn argument is 
treated directly as an mfn"

> 
>> +    page = mfn_to_page(_mfn(gfn));
> 
> This, strictly speaking, is UB until ...
> 
>> +    if ( !mfn_valid(_mfn(gfn)) || !get_page(page, d) )
> 
> ... the mfn_valid() check succeeded. Yes, Arm code has it like this, but
> I can only repeat that you want to carefully inspect any code you copy.
> 
>> +        return NULL;
>> +
>> +    if ( page->u.inuse.type_info & PGT_writable_page )
>> +        *t = p2m_ram_rw;
>> +    else
>> +        BUG_ON("unimplemented. p2m_ram_ro hasn't been introduced yet");
>> +
>> +    return page;
>> +}
> 
> Finally, what doesn't become clear at all is why dom_xen needs special
> casing. ISTR that when looking at the Arm code in the context of reviewing
> v1, I spotted why Arm has this special case. Maybe I'm misremembering, as
> now I can't spot it again / anymore. Yet whatever the reason there may not
> apply at all to RISC-V.

IIUC, then Arm having this special case for DOMID_XEN as it is used to 
share pages beloging to the hypervisor, for example, trace buffers and 
considering that trace buffers are part of common code it will be also 
true for RISC-V.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Mar 30 13:48:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 13:48:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267666.1557114 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Cyq-0007yz-L4; Mon, 30 Mar 2026 13:48:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267666.1557114; Mon, 30 Mar 2026 13:48:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Cyq-0007ys-IX; Mon, 30 Mar 2026 13:48:36 +0000
Received: by outflank-mailman (input) for mailman id 1267666;
 Mon, 30 Mar 2026 13:48:35 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7Cyp-0007ym-JV
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 13:48:35 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7Cyo-00EYvL-S4
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 15:48:34 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69ca7f2c-e002-0a2a0a5209dd-0a2a4507b718-24
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 15:48:34 +0200
Received: from [209.85.221.42] (helo=mail-wr1-f42.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69ca7f32-fd74-0a2a45070019-d155dd2ac5e6-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 15:48:34 +0200
Received: by mail-wr1-f42.google.com with SMTP id
 ffacd0b85a97d-43cfa33a983so845762f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 06:48:34 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf1db08e6sm29082874f8f.0.2026.03.30.06.48.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 06:48:33 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774878514; x=1775483314; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZqBgRGen6k/0ph3p5uFFTz07oq/YgG0W+10SwN62QdU=;
        b=TcFf4vCW7x1wip89zs10Ll/vwPs7wSh8olawEvwUW9dCIOB09BGJlAFhwFo4As2BgQ
         QcUUDBGC5EG4FA3k63lhAxryMu3SYnZyYZISlHCULBxE5AhUVXvfQIfinXhKS5NJsypq
         3c72FwiX/bXbK0KUWzjs6CgdIqzFQ6RGPKid9Dogbra8BDpBwfaIQ2W+J9F9/oyLQTiZ
         zRvgTxplGqGnBF1n81wgpKaM+vn6/+PwLrWQhiE0xIGpFWbwGlcPlt2B6JBl09SZB19d
         IwajRofa/Q8c5eeXskUca93cBA4EtnDJATCDkXBM2+6/yj9+XtVuGZ5X8jOlu7fk4mBR
         shmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774878514; x=1775483314;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZqBgRGen6k/0ph3p5uFFTz07oq/YgG0W+10SwN62QdU=;
        b=Ij+7R2i705zpRWKSJPqYPLyq/cGGCQfouNoXetCXoNQpFseTVHQdCBBLXIO/hL4i09
         ktAylNNQjF+8muyqzv6cZZ3s6a3F8iDYYtwKzSQMQBU+EpyiAQdgn6bYVwDh+Ii8FpM6
         UiykrpW/OdNA1XrvOFokafNMgv/3zJ9pQ7xJW/Ef5xu1JY5/qj/iypLRfC1RLfpjce/V
         O3X5VDnvydD4EIH/6eHwNt/85PUO+qCbSZFjGCIdD4xlcMwucpt2LeIZUQoXEuk8VnKt
         ztwcLp1ikYy6B7KNsdL8XWRhFkxOqSQsl6S57U7iI7YA8Pw9ENjd03wJgLNDc4a6yfmU
         RUAQ==
X-Forwarded-Encrypted: i=1; AJvYcCXOv7pCgCamVuoeUyAy5ztE7yU27ffmoqEreI0b/wqK4f8ZGomp41kcVWyV8aXTepzCA7IECuVolY4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzLvjnI9Yk2AI45DMAiUVJIphVi83pzF0ymmrjsGzyLPuxFoflc
	OEnVK5+Cc2I1XtSG/vukiYL3UoAMaLmAJ1Rk/8raKDuO4UsckhXbedjxYHau87J2Wg==
X-Gm-Gg: ATEYQzy9HdlkPLbgMQ9V3wCR2j9j2TacCpfLJwZBRXaMN1y4VmfMPQmLtnwTBjC/WL4
	syWbSTLps7sj1v97RbC43r9dHMgnL44xw1lFhZr2yJntA3qztr1KJ3+1vZYLPRqvcj1wAcl2Zsg
	DW0xHEhtzDImJtC/RpEzbbOYpXB73B3a3l645PLMW/yKH7qKkB+9U51A76OohfzY2E4A5Tp/ZJN
	p3wJEf4TQqsXxlhZlS3QUYsLljUGgXTzivRoumuyGYnW7PBiBxwbUHk4eQDegKkuOk8XWvZLEbJ
	YHxCBOCniE2qxw86QPMFf7Nf4ZQPTO0wZlevdCF+cmdK2ji1V4pu9uCKCqHKIJkbY9o2zsMmfdv
	vOhWKPpZ2NA7HlAlvkNEMHBHm8AdxouJ8kM0Wa9qByJyJvbbSZt3ZCmZgc5zoOtfXLmGSnm115t
	27QFBoGUMCBEolvhUZj4c9eDFi0bWWl9sW8YVF/pfUVo/JkhgAOFBFbT9/JJJvdOLG+gktK30gW
	qnnu5Y9Zo4/vws=
X-Received: by 2002:a05:6000:200c:b0:43b:4f7d:e08b with SMTP id ffacd0b85a97d-43b9ea6213amr19903257f8f.36.1774878514070;
        Mon, 30 Mar 2026 06:48:34 -0700 (PDT)
Message-ID: <8a0762de-493f-46f7-be8d-25949532e2fc@suse.com>
Date: Mon, 30 Mar 2026 15:48:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/3] xen/arm: generalize per-page GFN storage beyond
 xenheap pages
To: Penny Zheng <Penny.Zheng@amd.com>
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>,
 xen-devel@lists.xenproject.org, alejandro.garciavallejo@amd.com
References: <20260327075025.3008606-1-Penny.Zheng@amd.com>
 <20260327075025.3008606-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: <20260327075025.3008606-2-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1774878514-4D8B4303-6945BFB3/0/0
X-purgate-type: clean
X-purgate-size: 1819

On 27.03.2026 08:50, Penny Zheng wrote:
> As preparation for fixing mfn_to_gfn() on ARM, we extend the existing GFN
> field in page_info's type_info to be usable for not only xenheap ones.
> Another usage will be introduced later for stolen pages in memory exchaging.
> 
> Introduce general-purpose page_get_gfn() and page_set_gfn() helpers
> that read and write the GFN stored in type_info. The old
> page_get_xenheap_gfn() and page_set_xenheap_gfn() are retained as thin
> wrappers with their xenheap ASSERTs, so all current callers remain unchanged.

Why was this GFN setting limited to Xenheap pages back at the time? Depending
on the reasons, retaining the old accessors may or may not be a good idea.

> Also introduce PGT_INVALID_GFN as the general sentinel, with
> PGT_INVALID_XENHEAP_GFN aliased to it for backward compatibility.

This I view as unnecessary, if not confusing.

> --- a/xen/arch/arm/include/asm/mm.h
> +++ b/xen/arch/arm/include/asm/mm.h
> @@ -113,18 +113,21 @@ struct page_info
>  #define PGT_count_mask    PG_mask(3, 3)
>  
>  /*
> - * Stored in bits [28:0] (arm32) or [60:0] (arm64) GFN if page is xenheap page.
> + * Stored in bits [28:0] (arm32) or [60:0] (arm64) GFN if page is xenheap page,
> + * or stolen ones in memory exchanging.
>   */

Does the purpose really need limiting like this? If the field covered by PGT_gfn_*
is uniformly available (see the question above), I don't see why a new constraint
would need spelling out. If it's not uniformly available, then likely the
description needs expanding as to when the new accessors are okay to use. If
uniformly available, what may want spelling out is under what conditions one can
expect the field to be properly set (until such time where it's set correctly on
all guest-owned pages).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 13:57:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 13:57:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267676.1557124 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7D75-0001As-EJ; Mon, 30 Mar 2026 13:57:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267676.1557124; Mon, 30 Mar 2026 13:57:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7D75-0001Al-BR; Mon, 30 Mar 2026 13:57:07 +0000
Received: by outflank-mailman (input) for mailman id 1267676;
 Mon, 30 Mar 2026 13:57:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <oleksii.kurochko@gmail.com>) id 1w7D74-0001Af-Cd
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 13:57:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7D73-004K7O-9c
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 15:57:05 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69ca811d-2eae-0a2a0a5409dd-0a2a4501c69c-32
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 15:57:05 +0200
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69ca8130-6400-0a2a45010019-d1558031f146-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 15:57:05 +0200
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-486fb14227cso59793375e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 06:57:05 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4872717c3dcsm80351265e9.28.2026.03.30.06.57.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 06:57:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774879024; x=1775483824; 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=q/aDwDJsyV35jLE5E99dr4Y4PR6FRHOO0zqMwc0HlNA=;
        b=rxyBeGkgseI6zAGvVhrIjmHxKgEtOMWT57wy1SYkSZQY+CTADnN8Ei2GuYjg6HKBgj
         lw+C9OrJ3MfhPl0SYusGcPA8ZJFd4A8ClckfM7Ccu7H1SwSq5XmvbOPx1/f8xy774VV7
         LwuVaBEpMWYVKge14cwnyGGPfqpcMlvHjvv+nnDfBFN6qwCjXdnjSwuwp1gaAlJA/qeQ
         ElQCH4iydGNiCX42+DX4hg4XK4maDbNYmijxzRoxpKZqBiQLgZvZHq/d+ksk1cCZv5t5
         sxD1UZSnyaD05Wog4RtDlO2QEO/EoJ5HALKGaM23TTQz/yoJzrZManGX8oNQ6px+eV7E
         qMpg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774879024; x=1775483824;
        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=q/aDwDJsyV35jLE5E99dr4Y4PR6FRHOO0zqMwc0HlNA=;
        b=RyUNSf8pjp7TS275tO9ysBPBCo4BikCtJQtOcR4+M5VsbFPHgfK+6Hd38KVyhF776D
         x2DsdB3zhWMepcuY9tIOrznarP/0zHOBEMkAk4eb600tqrbW0iNXVPF3kIcgDuxU2ahD
         dSKDA4gnirQVegFVu8yWCnyTQsTUPEWXoOQ8Ge4L6Dj3aDWSK12pT448nfj8h0Rvjwdz
         fBD5Ml+VLve+g63yWBIT2vr+vaLj9o+9qC+sBsNT/rbP2CDbhrxGG4d5SPvnKY/RdSGT
         5Xz2GAyFV9ds/K40zriPJz44/i89yDOxx+25b5NpZTV46508OBoleRvB1yMaKX7XGDgg
         dflw==
X-Forwarded-Encrypted: i=1; AJvYcCWU72Xr+IjRowGtU89xtM38CJbEKgFOOvzRhDdB5kvHUyDPg9xvdpbuzhpwu6EcCTb4psFTLnCjWkQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzIQQfAo21Mpzf1ZXJIrwz6M18ar2FqeLNLeKpnUfVka7Vq/4bU
	keyP9xSX9+D1COETIb9bwhrpQ9A8wiYj1JMqOPLrZunb4GUZmXUtzTET
X-Gm-Gg: ATEYQzyU2RxtDBzSV/WOFhzL5vHu2dWtlDQhRcSlMIe64rcf1+a6WQbiUWQJRJTfORs
	oD7ZnMw9HAmVQqOL3Li/40dPr9PtUmge7z/juKQzsYS8Y3FfXZec4CirV8VlHuy95Whopg8oTIP
	tQLhsO1h8MTGseF/D/96+KbfocNTIcnaslcEd7Mmy2iZbY1R/gxRkvGvJN/+hA4EW+86/HyY69V
	NqQAnWSHVqQ64zFEwtwMHf021f3A0/rSwaDPv/7GztK31fA6ytoXGFgJJmk09jD4Lzr1fr25CSr
	DmVo1fRBRvgcVgP11JvrbE3PhEypdnwOkBstJmcBif4o8ZBzU/vJ2gnnxZm8oZtNJgbYpAHLWUY
	/GEgQBP4FNs8oIM00g2TBhvt5UTaAq/lwkuGH3UBffVgsiknVoAX2k5fpFYyK3d0FkST2JFfc3F
	cjy3cxJrFx8fvTOXOse8+2fBnD0aXzyyCeK+6N9Ebq7P2wPA+w0iua1bvJC2ue34d9xQ9HIG2bJ
	Pw=
X-Received: by 2002:a05:600c:3b27:b0:485:3aa1:a7f1 with SMTP id 5b1f17b1804b1-48727d5a252mr217347885e9.7.1774879024269;
        Mon, 30 Mar 2026 06:57:04 -0700 (PDT)
Message-ID: <20d15829-f2b4-4ab8-836d-4a6e9a6a1b47@gmail.com>
Date: Mon, 30 Mar 2026 15:57:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] make ioremap_attr() common
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>,
 Connor Davis <connojdavis@gmail.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Timothy Pearson <tpearson@raptorengineering.com>
References: <924f3ef2-7883-4322-a921-edc814c96719@suse.com>
 <81e4f7e0-df57-4a5b-b16d-fe668682d94c@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <81e4f7e0-df57-4a5b-b16d-fe668682d94c@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d62444/1774879025-8E2F8DF3-923CFF8D/0/0
X-purgate-type: clean
X-purgate-size: 1156



On 2/19/26 4:51 PM, Jan Beulich wrote:
> This core backing function is uniform; what varies across architectures
> are the attributes passed and hence the wrappers around it. Yet of course
> extra checking or special handling may be needed per arch, so introduce a
> suitable hook. Permit such a hook to return both adjusted and un-adjusted
> (for the page offset) pointers.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Declarations (or inline counterparts) aren't being moved around, to avoid
> the need to touch source files using the functions. Quite possibly they
> want to consistently go into xen/io.h and asm/io.h.
> 
> Of course ioremap.c could also go into lib/.
> 
> For RISC-V the wrappers likely should become inline functions?
These wrappers are implemented not as static inline function or macros 
as it will require to include asm/page.h into asm/io.h what will lead to 
compilation issue.

I am okay to leave them in the way they are implemented now.

For other part of the changes, everything looks okay to me:
  Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 14:04:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 14:04:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267685.1557133 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7DE9-0002vv-4Q; Mon, 30 Mar 2026 14:04:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267685.1557133; Mon, 30 Mar 2026 14:04:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7DE9-0002vo-1H; Mon, 30 Mar 2026 14:04:25 +0000
Received: by outflank-mailman (input) for mailman id 1267685;
 Mon, 30 Mar 2026 14:04:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7DE7-0002vd-3z
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 14:04:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7DE6-008Rrc-C9
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 16:04:22 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69ca82db-2eae-0a2a0a5409dd-0a2a4507b34c-22
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 16:04:22 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69ca82e5-fd74-0a2a45070019-d1558033e8d9-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 16:04:22 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-4853c1ca73aso45418155e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 07:04:22 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48722d23679sm529882985e9.9.2026.03.30.07.04.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 07:04:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774879461; x=1775484261; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4XJaoDmj9rU7BKNttWDNX2p73LCzMAvFtjJhEh1LxtQ=;
        b=F0GSFpUqRcvxcjxmVitE/I5NvtRA0esDIfA0L9Lq5NOOBrUiFzZuQFAT5XAjUhKv7C
         7IvU0BHhn/+T+Vhb/0cEM4beS3xds7QcMjrP0rKpbyecQrnJZFyAGqY9MqgQpqM3rxHq
         2/eU5L63S0Vb/VvDclbc9AOQ2ig2dx6BUQIOZEF75jgmfFeOAjCunoyz71gvD7XHp4DJ
         JjI0iPO82b5/ez7UQjp/QBhnv3Qsnz9qP/fu0WcW2OX5jXApjnu8fpgmsjlmeFRUWBQa
         YJrlwVZ2QjzUSLnK2UweVoBloEU4s/L244fzMuGOnDo8bvi2nL28Q2JBz4JGP4FuOqp5
         2jPQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774879461; x=1775484261;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4XJaoDmj9rU7BKNttWDNX2p73LCzMAvFtjJhEh1LxtQ=;
        b=SJqKvF06ydBwtQWscUB9u+Lq6u0w4Hs3yoZpPB9ZwmzUMU+9wXt8btFuRZOsSSjNVY
         bWEGDhgYooSgdHP2aB4NSKdbZlEfnEtiHCGq1EbC36iC1eGVLrsSB8iJpjzvUj7NufYB
         Jz2EN1v9ixKRSp6BiNdMoqL4rKk+vf+6Y+wDE9RhxNHZCauWb9t+DOSdlfJONCOIZW3U
         erbsgmnIA5qMo7fSX6BzJZ+ldCK+DUMyAX0sGW8zOOcKwcAGdnPf+w/KFbd5T1GnpeFJ
         M0Ja42jWeVTrJwSsYlC7hYiqgaMlF9WswkVFzVr81F1slLL6lFfuC0bgfkBUePLMxMw4
         etKQ==
X-Forwarded-Encrypted: i=1; AJvYcCVPKNoOHivsdiDk0x/5gl+v2QZ7MHKu1+gUkLoD6Jw7HKo/j4I7A1uU/YltSUbSgqpjQ23lah7GIFU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwTpUfM7zS5mZrA6Xz2P5vM82J/Q7AMnxfPYDU1w939rqYs4TNi
	E8MBEZk/c3JLrE++Cu3g36Z9Bk90Lqh88ossCweeGdJwV5N0ttkjJUUlC2oIqOSWmw==
X-Gm-Gg: ATEYQzzJop65P5pQu1cUDSRWG4rzPlBbBKovagOzkQSxrbFtcJzLgSDkZ0gSpMREtH8
	LN0foF+o45mmx/2v7TT5+DgKpLe2Bp+xpbYw2fFW29Hnhkod7JEGrGt2j/WXGXeklaWcQYz10UX
	l5QN2mCEqtn177HgP7+3X+0kjaWolm40TgO0gj/IcmjXVkc7vAiWYRQVEyyx3hMeX2+Sq4nL2Ne
	xJ/Ix0+CcY0jhuM9dHslwFVfHyLScmBk8IPXjDcTWBLVCwwPdMrOc3z+FkfHzqgHXlyNt9Kc6ZV
	v7SDAFH5lIErETrlOsjFOFMLAS+YK5pZnxs5gLe4ejq1pwzlROhZMX4pVeywiVFUJ4HmV2wyVDz
	BA6XFQnFtsSR1Jxpr3AQxqV/2B5ysFkyYqmHjml6muPMAb+yMQuGYRyRDBAMgq8uFmIgzK+B7Fq
	xvlnLbGCO0ZHgUw2z0fbCI7+5UtfUV04+TdcV4fZYhjF0ZEp8MdVLxk0zJLyE5mAsCpWsPR6SNC
	80ZiO+ZJXv4Uvk=
X-Received: by 2002:a05:600c:c10b:b0:485:35d3:ce59 with SMTP id 5b1f17b1804b1-48727d87bd6mr165580505e9.10.1774879461525;
        Mon, 30 Mar 2026 07:04:21 -0700 (PDT)
Message-ID: <cefb810b-0366-43dd-8979-62702b628611@suse.com>
Date: Mon, 30 Mar 2026 16:04:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/11] xen/riscv: implement get_page_from_gfn()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
 <ba0ea599c4ced7fca0b8f5dd66bb7ffb277f3a4f.1774281309.git.oleksii.kurochko@gmail.com>
 <ef4eac20-d136-4c9a-82be-72259c088537@suse.com>
 <437b0d3c-916d-4513-9159-ee4e4c904bf4@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: <437b0d3c-916d-4513-9159-ee4e4c904bf4@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1774879462-5C989303-B1FF526A/0/0
X-purgate-type: clean
X-purgate-size: 1363

On 30.03.2026 15:40, Oleksii Kurochko wrote:
> On 3/26/26 2:50 PM, Jan Beulich wrote:
>> On 23.03.2026 17:29, Oleksii Kurochko wrote:
>>> +    if ( page->u.inuse.type_info & PGT_writable_page )
>>> +        *t = p2m_ram_rw;
>>> +    else
>>> +        BUG_ON("unimplemented. p2m_ram_ro hasn't been introduced yet");
>>> +
>>> +    return page;
>>> +}
>>
>> Finally, what doesn't become clear at all is why dom_xen needs special
>> casing. ISTR that when looking at the Arm code in the context of reviewing
>> v1, I spotted why Arm has this special case. Maybe I'm misremembering, as
>> now I can't spot it again / anymore. Yet whatever the reason there may not
>> apply at all to RISC-V.
> 
> IIUC, then Arm having this special case for DOMID_XEN as it is used to 
> share pages beloging to the hypervisor, for example, trace buffers and 
> considering that trace buffers are part of common code it will be also 
> true for RISC-V.

Ah yes, share_xen_page_with_privileged_guests() is what I didn't spot this
time round. But then you also need to implement the XENMAPSPACE_gmfn_foreign
case of xenmem_add_to_physmap_one() for this code to actually be reachable.
IOW either you make crystal clear (by way of commentary) why the case wants
dealing with, or both parts get introduced together (thus making their
connection obvious).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 14:22:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 14:22:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267698.1557142 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7DVo-0005t5-KH; Mon, 30 Mar 2026 14:22:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267698.1557142; Mon, 30 Mar 2026 14:22: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 1w7DVo-0005sy-Hj; Mon, 30 Mar 2026 14:22:40 +0000
Received: by outflank-mailman (input) for mailman id 1267698;
 Mon, 30 Mar 2026 14:22:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <oleksii.kurochko@gmail.com>) id 1w7DVn-0005ss-AL
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 14:22:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7DVm-004QRG-FI
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 16:22:38 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69ca8727-e002-0a2a0a5209dd-0a2a4507d050-16
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 16:22:38 +0200
Received: from [209.85.208.173] (helo=mail-lj1-f173.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69ca872e-fd74-0a2a45070019-d155d0adb089-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 16:22:38 +0200
Received: by mail-lj1-f173.google.com with SMTP id
 38308e7fff4ca-38704f70ea3so43320821fa.2
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 07:22:38 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-38c836d3f54sm14277501fa.7.2026.03.30.07.22.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 07:22:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774880558; x=1775485358; 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=oOWcZKiBKZzgHreVScVA78cQA+fuwJEoOD1DWxJ8gcM=;
        b=TN8YxNiM3c+voomAGY2fm2CB8y+Av4t7IN/4vjdf7KOmsVKGavazM0GIEsUPjP0Ka5
         K1qdUkV/XxJN0qMDMr5KaIfbsAdvA1wvEl+VDPPHWxbQKDEhlokxnotM9E4sHFU1szDr
         mFajFxfsg3YNfjZJHgjM2sDmCZtLFCMWdvkZgVgqVaCWBDCJOsTM0VcbKkvEfPGH2PTM
         cKDCdKh6W93cI3i1DRc8Z+YvQ+8Ft0Rv+vR+0ZL+XnM7F+DXy5s3zuPfvo+zu9nJkw2q
         SLDM0DW/EAYGZmuFCVeoz3/8W6zPlA+ZaiPLAJ9cKW0qlSgMRkCR9FS8k2x7qZ5hvQp6
         WR3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774880558; x=1775485358;
        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=oOWcZKiBKZzgHreVScVA78cQA+fuwJEoOD1DWxJ8gcM=;
        b=QNRwMIhRg32cteNQMUbbVdI4aQIaYYwPjEsNmhosGpMb58x3N0A2ORk+fbUNirxOXd
         oP/QKr46CxUBOiuk2kbgahn5N4/AiVExFpvELIcZkrR241oaCg4aPNRumkXkqqcYX8DS
         lHqZrfHEJUdgJXwPVGIYcMHbO5s+6qWaeZ/Br42JlPQLaVKWuojFWrl9vhX9PRVHEzLe
         GeKL4eu2GsF68NoQJdqWBQlKt5S4rAzTApWWbCFu6Ckwt25No+jexfJL9QtN1MIOpo5P
         2gmtfQ5xbYOhH20v0NGmvx9juNfq8kY2L4k3QNQ8XG2Bpmof9KxpLxP2E63pQ3f+vz6L
         HNvQ==
X-Forwarded-Encrypted: i=1; AJvYcCVceJyTVF4B0xTrY8JFoI8ZNS8WLAd/C+MQU6CIRDl2Ud/31QwHYY8q1q9p584bptDIiYrhZZhMjA4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz5YfrUjGvWp0Ve+W0UbdRyH1G9SGrU0Tf7KaHCcBPXluqXJkGK
	1TROm/jfGKyOwGQccCJorUeQlIty3CoxCZRzvigbVMdCfGKefupH5zst
X-Gm-Gg: ATEYQzye6aXtSjC5+/ESzTcdXp05oY3NkHs+UyAWtV0QnmHgvA+DLvEbBYZS26QFDuy
	4KFxMNNtOAcVTcm7lrH+gJ3R3+ThB4bmdH54GstXXAglFXUtdX9THSEBUXf4ortGN7paVmDo9sX
	kPSV2U8g11LAwnMlpzLRuheIke3seIiXfdqSwQDnnvwXQWxkeTnhcpwgCSN7sOiCBitc9hqbPTG
	fhPkEztJ+8b2eNvSduLhXbCDZzcmhAU3B4kiz/WA4YuKdSq0T8xdRWgX3QcNj9IhbWV8+7QyJJD
	8dQemIJh3WYARRxhnWhAb7zTE3xQQcN7QzG4iLvtU1EyJRE6rDWInmWQtUQgZ18dBx1MrOL7WA3
	nmpzgril73xTrfpVe5SdD1N5xM/7L+GGgz92f9e8XgtUyv40g/Rw9Kceg0Fjr7zCTQQXY+r/Pnj
	tBPa7yzY9PPQ/H/wgQmI/kYWXuHcj2/nvglBFVrPnTk4MGlCTY2Mo1eZ6gY6UhjibWSSOayrt4u
	f0=
X-Received: by 2002:a05:651c:41d4:b0:38a:5584:cea2 with SMTP id 38308e7fff4ca-38c73106e37mr36312661fa.3.1774880557283;
        Mon, 30 Mar 2026 07:22:37 -0700 (PDT)
Message-ID: <3bf90b33-c028-4f45-bda0-9d1bd5386c02@gmail.com>
Date: Mon, 30 Mar 2026 16:22:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] make ioremap_wc() x86 only (for the time being)
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>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <924f3ef2-7883-4322-a921-edc814c96719@suse.com>
 <20adacfa-06ce-4508-916d-f15d8f17788f@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20adacfa-06ce-4508-916d-f15d8f17788f@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1774880558-57AA5303-464E3FDD/0/0
X-purgate-type: clean
X-purgate-size: 979



On 2/19/26 4:53 PM, Jan Beulich wrote:
> Its use in domain building is questionable: Already at the point both uses
> were introduced, ioremap_cache() existed. I can't see why kernel and
> initrd would need mapping WC, when at the same time other similar mappings
> (in common/device-tree/) are done WB.
> 
> With those uses replaced, neither Arm nor RISC-V have a need for the
> function anymore.
> 

It is okay for RISC-V, but for Arm, IIRC, likely it was done because 
guest might start with cache disabled and PAGE_HYPERVISOR_WC on Arm uses 
"Normal Non-cacheable" what could lead to that guest won't see some part 
of kernel and/or initrd as it could be in a cache and won't be flushed 
to RAM.

But probably I misremembered something and 
clean_and_invalidate_dcache_va_range() or something similar should be 
called before guest is laucned.

For RISC-V part,
  Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Mar 30 14:24:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 14:24:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267704.1557151 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7DXB-0006LV-Un; Mon, 30 Mar 2026 14:24:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267704.1557151; Mon, 30 Mar 2026 14:24:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7DXB-0006LN-R1; Mon, 30 Mar 2026 14:24:05 +0000
Received: by outflank-mailman (input) for mailman id 1267704;
 Mon, 30 Mar 2026 14:24:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7DXA-0006LG-F1
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 14:24:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7DX9-00GyK6-Qf
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 16:24:03 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69ca8781-2eae-0a2a0a5409dd-0a2a4502db8c-10
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 16:24:03 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69ca8783-63bb-0a2a45020019-d1558029d482-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 16:24:03 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-4852a9c6309so38486745e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 07:24:03 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48722d40741sm297012165e9.13.2026.03.30.07.24.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 07:24:02 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774880643; x=1775485443; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IPME0beY/JgQP8EwdQi3SsyLjLC0HbjHHiAmcEehBvQ=;
        b=DkDo1n+O20KYeyK/Ds49odQ0ZEsrzJ5Bps52y1TxzG7itrif1oQSOuVV8tFI+V1Oqd
         jnaRmJONjGTkKSraGiW+0BNHtYV53P/cL/kGnP4Rqjl5diyCo4NsO2akwpGO899U/P4e
         K/0eju8NBiq74tBH352w1hN5vqxxY6wE5yFyN1kN4dsFCsqKVVBn3WW1OTprkjlkol5R
         M7pIKdxoiCEwkZW3EWwJMV93VZjCAjGSvCEKFWjxB0X3uljJ0g55o2ydN5e1VHZO5uFb
         LzzptLTeCtstGJ/+zZiQBBjr30+ViYu4QPXQnGRYWzf7LoS6gnPfvfigS7u3xcPoKcp8
         e/ww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774880643; x=1775485443;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IPME0beY/JgQP8EwdQi3SsyLjLC0HbjHHiAmcEehBvQ=;
        b=DYALbUKpVYHXUQctYaL1rgT/A19/Insrhn+Y2CisfJLmp1bVnqWGoz8N/izVnEBr7L
         I5I3cn+5NJL721IvliajnW3AarsLaZFHBkzrBHK5p7XUC6e0YoDzWL6x6oz18cmKciPf
         JNG5Aq8s2S+RHHCl/ew2Q4rUrsLpa46AIm2Kms4K2nnbtHKZYEfj+NgZ7PPcY6f8LJgU
         SUBZMZrxc4k7D4GO3d20XN5f7TNlLCaFPo9Bt2Lr+tx36D9y29KemJZoOuI5NbTBnaIg
         29IFVjlS6bGSwZW25+U0X8EaUpSRIEO9i98JZM2vOtd/6AWM/gNpy1bG2ibwzTAwq7zl
         PeRQ==
X-Forwarded-Encrypted: i=1; AJvYcCWfzMjzrLhS8bMcKuHttTEYN/85SQ3CkRcZI7Zp0MvQmgNwy+U8fcuTs2PL54bpSsEteNYIpOH80aY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyuRtL2RpTLqiZsRnv6Gpn7R4gw4COSiV7SIH81xYjRxptu6v/G
	UGAD0evJjmi6G7qZW1rWloU7Ne1DeOUg74QV98pM15B9GXsZiTZsXWogAqKTZjzVKVADtU/PiXH
	9CSe/WQ==
X-Gm-Gg: ATEYQzz7ykstNsQbiGPbvQWQ5E6ng9Jw6RG5uzvkGiCfITuqFwF1mNLkEl/MS0VSaAh
	ois4TUvQOC0PqUJQ2RbS4SlvzjbopbAvh4rC64TfgLZVU3U8pf+0Sr6R7JqNYn8DdLln5zr7WTm
	RNH169BrM/SEDh+HvfQ7C0VKBr4uCjrok96t5WsgXuV3PHBQvS6w9GRb1KNha3g72/ivGnjI5le
	I4v9wv0d5LUD3durZCi98jrwxrnjJy3xO+rvo8O1ZYp9hfRtRQdMRzE9fUEViIS+9eTWC9uAscq
	o21lC6TsEaE/lG69PLXNUJgPUfkCTo7xVjmDF+qDEhI07FKaGveKTlg7vdLrL13VGqCJyX4xfBM
	ngaOd4rVHI7PyWN8XR5g34oMXP/kC3pHKnmtwgfNRHUr768a/mFQLem3Ig6grp18TKqklvwYDpw
	Cb2jX64WWnJsBXjRdV2SsUI5YHoAoKgozsdhai37w0AE0tOXNLPF2+DKrO/McQQGaiPZ494G83l
	VC9In/bZrjIWY4=
X-Received: by 2002:a05:600c:a44:b0:487:2432:f7ed with SMTP id 5b1f17b1804b1-48727efbffbmr217076295e9.8.1774880643113;
        Mon, 30 Mar 2026 07:24:03 -0700 (PDT)
Message-ID: <09f94c6c-349b-4f28-961d-4210fe953616@suse.com>
Date: Mon, 30 Mar 2026 16:24:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 03/11] xen/riscv: implement copy_to_guest_phys()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
 <062e50c596b9271858d2d63e101bfde5311a3817.1774281309.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: <062e50c596b9271858d2d63e101bfde5311a3817.1774281309.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1774880643-4149FDB8-3A907766/0/0
X-purgate-type: clean
X-purgate-size: 2165

On 23.03.2026 17:29, Oleksii Kurochko wrote:
> Introduce copy_to_guest_phys() for RISC-V, based on the Arm implementation.
> 
> Add a generic copy_guest() helper for copying to and from guest physical
> (and potentially virtual addresses in the future), and implement
> translate_get_page() to translate a guest physical address into a struct
> page_info via the domain p2m.
> 
> Compared to the Arm code:
> - Drop COPY_flush_dcache(), as no such use cases exist on RISC-V.
> - Do not implement the linear mapping case, which is currently unused.
> - Use PAGE_OFFSET() to initialize the local offset variable in copy_guest().
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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

> +static unsigned int copy_guest(void *buf, uint64_t addr, unsigned int len,
> +                               copy_info_t info, unsigned int flags)
> +{
> +    unsigned int offset = PAGE_OFFSET(addr);
> +
> +    BUILD_BUG_ON((sizeof(addr)) < sizeof(vaddr_t));
> +    BUILD_BUG_ON((sizeof(addr)) < sizeof(paddr_t));
> +
> +    while ( len )
> +    {
> +        void *p;
> +        unsigned int size = min(len, (unsigned int)PAGE_SIZE - offset);
> +        struct page_info *page;
> +
> +        page = translate_get_page(info, addr, flags & COPY_gva,
> +                                  flags & COPY_to_guest);
> +        if ( page == NULL )

... this consistent ("!page") with ....

> +            return len;
> +
> +        p = __map_domain_page(page);
> +        p += offset;
> +        if ( flags & COPY_to_guest )
> +        {
> +            /*
> +             * buf will be NULL when the caller request to zero the
> +             * guest memory.
> +             */
> +            if ( buf )

... this.

> +                memcpy(p, buf, size);
> +            else
> +                memset(p, 0, size);
> +        }
> +        else
> +            memcpy(buf, p, size);
> +
> +        unmap_domain_page(p - offset);

It doesn't look like the subtracting of "offset" would be needed here. Any
pointer into the correct page will do.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 14:24:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 14:24:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267710.1557161 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7DXh-0006o7-6i; Mon, 30 Mar 2026 14:24:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267710.1557161; Mon, 30 Mar 2026 14: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 1w7DXh-0006nz-2H; Mon, 30 Mar 2026 14:24:37 +0000
Received: by outflank-mailman (input) for mailman id 1267710;
 Mon, 30 Mar 2026 14:24:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <oleksii.kurochko@gmail.com>) id 1w7DXg-0006np-8O
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 14:24:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7DXf-00Fkms-K6
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 16:24:35 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69ca879d-bab6-0a2a0a5309dd-0a2a4507d07e-16
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 16:24:35 +0200
Received: from [209.85.208.46] (helo=mail-ed1-f46.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69ca87a3-fd74-0a2a45070019-d155d02eb800-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 16:24:35 +0200
Received: by mail-ed1-f46.google.com with SMTP id
 4fb4d7f45d1cf-66c1d0f2b2bso477582a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 07:24:35 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-66beb39e725sm1347328a12.0.2026.03.30.07.24.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 07:24:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774880675; x=1775485475; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to
         :cc:subject:date:message-id:reply-to;
        bh=llF0PfPj1ZVfl5h1xnqGfZXBub4oIKkESisjLyDj+Tk=;
        b=ik2IRTOmlFqZHT4d9BziLmQhQIEW97fld24ijNl0vDMW6pPqSbvWFX/HLIiLRt9Wkf
         AF43lYWIW4zVQvyQ/YeGuj+4t50Um1+7gufrlY2bdhZNKptDcgWVU10zeeioJBd/K8y1
         jy23j8t3zG9kOvKFVsCOgXmRbID5cVgQTorTec8vFTKTfiMuRSRmoaMZa3va0I09Ux10
         LP6sx6tZZPhXLfGkUraeJ5Otf7G4AEKI0b6DEj8RVn/Xrlg6ixf+aaTsyEVX8xQir91w
         znnmZ4dNjyJW2QnTBQGuqZ2Gd5f9vkke0hK1WpsMpdKZ0JxLnP24r7EOm0/g/pn46Thr
         HPgQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774880675; x=1775485475;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=llF0PfPj1ZVfl5h1xnqGfZXBub4oIKkESisjLyDj+Tk=;
        b=qf9D2Ldtu9T0txfmmpGhdAPTlJ4T7ZOQQU+5l+kpYCyIAniD5qchPaGqrCl4po4Geo
         jIuqMMW7FxMcxl6lKHhmZxHvHIerveYVlNlQsYGpGqXoOjq7H66wY3ais9TXd8IuTCKs
         P2tS7Za7SE+HuBiofoI1VYeaONuJwHCjNUuNz+UQI5bqUQ68udk6uECmD7e/7AZaWYGq
         YqZEEC/+mP95akgKbytqWpKpw5q+fY6lb0MN6Q6INXrPhnHf2wzTTLUnBN9GJda6bz7z
         bVFmaibrSdjDiww31QxbZqBdIs87L/Ir3rKEehVQf4vUefCtD7yGQGqxWFW6vbSMcWgR
         yqjw==
X-Forwarded-Encrypted: i=1; AJvYcCVeK2oQxcDyNHOiLHF1ZlfOdF0RvKdXqKPK3ZLcxa+ZmecEBIeEIjapXeButQCtsOoPSO2/yWjSjvY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw4BoJLuP8wMiNwapLlhmbQOPow751NntIHsQI1CzqGYBzQDQme
	NEpf5beUeAZfWNh7cfISI+YjkzjwEd/9cf5xDNBdIism7lXTn4OmP1Sg6ylt4w==
X-Gm-Gg: ATEYQzzkhKJVpioCWHqMVzgY7R9iJMCDcvzSc1dTAp9oNDDcf8798H1ovhkf6GT4d5o
	m6FLa3yIID4VBswOuyW5pR2BJCDdBGDNzWOrX9Zo/UsWcNUii8+3J9f3i+22GRsIHpJM+M6PcJ/
	M47hKU0kbDv9mDI7Z6g6cpOUTEZkfX34m//uhqgZTnCq7WGwhj1KWQzq3mNcD/F0+ONwXgdJ9/q
	2LkfhjvLlQNO6OaYVbmgigM2vWG8cYs4eb+P0TGEV/htN7PK3GeOHEuUifxEDjl3jWrIr6LQ1im
	2R3iGdgnT36epvVBOVeXlYOUjXHdIzjji6469t7fCNsCvNL1itWD8v2g47oDi7ZJl5SiUmz5Hsc
	4b5V/L1FcR0J5MTB+vHpPyaRuOwOHJty4hkhA4DT7IBxemhdvHz2QKr/5IwroBCk7w7H9C4pK6r
	Y8lMtIPSfhCuvuQuDKFSZEnj0wxW4nWBE0tlwILi+k5/n35GscemidacaDPHr+qqIN5UDNBtM41
	XA=
X-Received: by 2002:a05:6402:50cb:b0:66c:582:9c00 with SMTP id 4fb4d7f45d1cf-66c0582a423mr1255376a12.25.1774880674822;
        Mon, 30 Mar 2026 07:24:34 -0700 (PDT)
Message-ID: <6fa82fcc-d21d-476d-b020-fc40a645a74c@gmail.com>
Date: Mon, 30 Mar 2026 16:24:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] make ioremap_wc() x86 only (for the time being)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <924f3ef2-7883-4322-a921-edc814c96719@suse.com>
 <20adacfa-06ce-4508-916d-f15d8f17788f@suse.com>
 <3bf90b33-c028-4f45-bda0-9d1bd5386c02@gmail.com>
Content-Language: en-US
In-Reply-To: <3bf90b33-c028-4f45-bda0-9d1bd5386c02@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1774880675-4F6A7303-17E36D51/0/0
X-purgate-type: clean
X-purgate-size: 1124



On 3/30/26 4:22 PM, Oleksii Kurochko wrote:
> 
> 
> On 2/19/26 4:53 PM, Jan Beulich wrote:
>> Its use in domain building is questionable: Already at the point both 
>> uses
>> were introduced, ioremap_cache() existed. I can't see why kernel and
>> initrd would need mapping WC, when at the same time other similar 
>> mappings
>> (in common/device-tree/) are done WB.
>>
>> With those uses replaced, neither Arm nor RISC-V have a need for the
>> function anymore.
>>
> 
> It is okay for RISC-V, but for Arm, IIRC, likely it was done because 
> guest might start with cache disabled and PAGE_HYPERVISOR_WC on Arm uses 
> "Normal Non-cacheable" what could lead to that guest won't see some part 
> of kernel and/or initrd as it could be in a cache and won't be flushed 
> to RAM.
> 
> But probably I misremembered something and 
> clean_and_invalidate_dcache_va_range() or something similar should be 
> called before guest is laucned.

okay, so for this case copy_to_guest_phys_flush_dcache() is called after 
initrd and kernel are loaded.

Then it looks okay to me for Arm too.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 14:28:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 14:28:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267725.1557168 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Dbj-0007bZ-Hk; Mon, 30 Mar 2026 14:28:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267725.1557168; Mon, 30 Mar 2026 14:28: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 1w7Dbj-0007bS-Ei; Mon, 30 Mar 2026 14:28:47 +0000
Received: by outflank-mailman (input) for mailman id 1267725;
 Mon, 30 Mar 2026 14:28:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7Dbh-0007bM-Vq
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 14:28:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7Dbh-00Gzc4-Bt
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 16:28:45 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69ca8895-e002-0a2a0a5209dd-0a2a4504d44a-22
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 16:28:45 +0200
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69ca889d-c823-0a2a45040019-d155802fc1c5-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 16:28:45 +0200
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-4838c15e3cbso37393375e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 07:28:45 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-487270e7248sm134754175e9.6.2026.03.30.07.28.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 07:28:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774880925; x=1775485725; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HZH/H//Uzu8ragJ7CJo9ShkfED7j7s06uBVKfaGVCPs=;
        b=OkwaaZcFqM7Ldh01drRBv5s/DEPfyHZbJgP1Breg99PvsSL7DnCcMdww70aj3+pHGt
         H02jMUbrguwHCRYZ7q1P2dhJqIS63ty3lfuGaVWqh6lNOl8LUtP6IMf2e1yWF2pB0ULi
         tvV6JQ+r96m8uPJNRgv01eDkhuJfbvkfThy319emECEzUP7dSiEQ3PRiffbPsUrnOrLu
         Ue8LY/RODVUVIY3dAzyoEiaRGAHLSkh015V7Oky15ituEEd19sZnUGP6alNMggnJNiyH
         p3p86o/Itf2KwCLP69gpSTUxnAMpiSmHxM7E9IVrg+KYBdEvzvFVHjw9TuYHPB3MiPO0
         zuVg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774880925; x=1775485725;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HZH/H//Uzu8ragJ7CJo9ShkfED7j7s06uBVKfaGVCPs=;
        b=J7/ru8ibX/nmLL/sPjwUyMnPpN/T2oZR1tA0HJ/MHHj1V1qLHQpS+Zt/glTZNqjsDP
         k7xi8ip8PZkwwkacEmw9okMjfSQELwBny2pHv3D9A75SRz9CnFCYPohZcS+RaYApsin+
         0EqTKVHuYSnUTBklOoqLA8vpQl9RMNFbyh5vI9KhJ/05VKn/BFqeKrrqASDtr6v3sMd4
         G5o+VNMBFtdMVrDyfmGOZImYvRcjAdJL4H++2UyY+hffLPSbQPcFBU0AwlB3vrSlbTaU
         Z2agDSlatkNvRnRYKT+Dcu6K/gzpnFsuDWkG6BIXHZONlR8HMtfjGYhPI/IQ48j3AWp7
         DcrQ==
X-Forwarded-Encrypted: i=1; AJvYcCW1c8L3aPlEDrnInQg3D3IjwOSXEIBlmoWqH2gFQJQLLn9iwBGAPIb3+UfjQdyhECLr1ffOAXCSlSM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw6rwGOkCwfApVRFeMD0ZcrPCU8w59PtJJJv8fjXm0EdBTO61Ua
	jL45tjX1l3urj31KNElNAzRq9OU0MHOrscGq1szFbR9DZVhgoC8l5UDmP/12cK6MtvbcrU1SLpe
	zXoEE6g==
X-Gm-Gg: ATEYQzxe/iCIjHEyFqw0z/WHGOKfRbJ/VEiHktXs492uwZJ7WxdGYkFvFQeB6AMHBN3
	/R5Fs5oSPH02Ax3Tk5RyT5aTGyjslv42ZoPDN2RYQHiri+QbsUzWtesttcqzUd3u6n7vNARFk4U
	f7OhqDWkL87zCVyaMQ4YN5zdjig+Tv2DtrEpV1WaMrPPD0rBB5NBAY/SVNGS+6m9Az1UyA+lidM
	FEyEXF0YTqK3cXHZTFZbRm8lvleW6hGLXOdLRXprK5WX2kLIcwgOeKqpLCn76DilLJdoRKlR4Sc
	qrlZ6qEgmXbnyXxHcZHRDy0UY/ABcYprSQftGRF9AU0x+nUCzUvLLjWhEPIYIuOUvTtm2Bvj9fM
	nqfCZnyZRO3xCQfc/GYyccqPuN2kDevazlkYxZ9MHLyUlmF94go/yovX/RahN+fSO7261MZEn/A
	IXVFDSiz3tQCaK7XF/dAYDr23VjeWLCevxBr+jtPf2dBS+p/Zk+o5ykQzP4K9Wy2rVoFqNHPz0S
	H4CB6UaggqfbCM=
X-Received: by 2002:a05:600c:8819:b0:485:3ff1:d5c5 with SMTP id 5b1f17b1804b1-48727d55fc3mr210696545e9.7.1774880924646;
        Mon, 30 Mar 2026 07:28:44 -0700 (PDT)
Message-ID: <c5379e9b-b759-437b-85e1-733751851504@suse.com>
Date: Mon, 30 Mar 2026 16:28:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] make ioremap_wc() x86 only (for the time being)
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <924f3ef2-7883-4322-a921-edc814c96719@suse.com>
 <20adacfa-06ce-4508-916d-f15d8f17788f@suse.com>
 <3bf90b33-c028-4f45-bda0-9d1bd5386c02@gmail.com>
 <6fa82fcc-d21d-476d-b020-fc40a645a74c@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: <6fa82fcc-d21d-476d-b020-fc40a645a74c@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ebf023/1774880925-B8A8E9D1-61DB22A2/0/0
X-purgate-type: clean
X-purgate-size: 1317

On 30.03.2026 16:24, Oleksii Kurochko wrote:
> 
> 
> On 3/30/26 4:22 PM, Oleksii Kurochko wrote:
>>
>>
>> On 2/19/26 4:53 PM, Jan Beulich wrote:
>>> Its use in domain building is questionable: Already at the point both 
>>> uses
>>> were introduced, ioremap_cache() existed. I can't see why kernel and
>>> initrd would need mapping WC, when at the same time other similar 
>>> mappings
>>> (in common/device-tree/) are done WB.
>>>
>>> With those uses replaced, neither Arm nor RISC-V have a need for the
>>> function anymore.
>>>
>>
>> It is okay for RISC-V, but for Arm, IIRC, likely it was done because 
>> guest might start with cache disabled and PAGE_HYPERVISOR_WC on Arm uses 
>> "Normal Non-cacheable" what could lead to that guest won't see some part 
>> of kernel and/or initrd as it could be in a cache and won't be flushed 
>> to RAM.
>>
>> But probably I misremembered something and 
>> clean_and_invalidate_dcache_va_range() or something similar should be 
>> called before guest is laucned.
> 
> okay, so for this case copy_to_guest_phys_flush_dcache() is called after 
> initrd and kernel are loaded.
> 
> Then it looks okay to me for Arm too.

May I ask whether that removes the RISC-V restriction on the R-b (thanks
for that) you gave in the earlier reply?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 14:48:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 14:48:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267745.1557190 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7DuB-0002DW-8f; Mon, 30 Mar 2026 14:47:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267745.1557190; Mon, 30 Mar 2026 14:47: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 1w7DuB-0002DP-5G; Mon, 30 Mar 2026 14:47:51 +0000
Received: by outflank-mailman (input) for mailman id 1267745;
 Mon, 30 Mar 2026 14:47:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7Du9-0002Ap-8f
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 14:47:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7Du8-004VvS-6T
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 16:47:48 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69ca8d02-2eae-0a2a0a5409dd-0a2a4508e350-26
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 16:47:48 +0200
Received: from [209.85.221.48] (helo=mail-wr1-f48.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69ca8d13-1950-0a2a45080019-d155dd30d14b-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 16:47:47 +0200
Received: by mail-wr1-f48.google.com with SMTP id
 ffacd0b85a97d-43cfde3c3f3so934884f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 07:47:47 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf245e4b9sm17708674f8f.20.2026.03.30.07.47.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 07:47:46 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774882067; x=1775486867; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=M2lKzkvcp/5rst2tKlCQyuyRBHib1VqG+RYhnZ32Aso=;
        b=LXY99KF7SIXxhR9ajmTSdVsBYgVVc9gLruVkHBNROY92kJRUXC9/yQS+7KePuEHIHY
         d3NHWJJ9ic4eT5FsQiXN5ZxkDKyR9vfR4OP2gg5SQKLjXjz0+gWBBqcVxm6Y0xYsiUyW
         +MIETGIZAKZ1I4nOZYdIOCNhOFLKPFVhNwTAZFAu6JjyoGNFtim/0CHnJwUVLAlBl5fI
         PYYkWzEgNdtHPCuB24yqcmRiQ7xDoH5dMF4zFB7DSIdL9uhjSobQSiCCLXGH1zDF1pgM
         1a2yg3ih6zCAVpkbqsd8pleZZqcc40NjZI55Ituo0Y5OF59EWlQNESNZ9Uz1pQJYv1b4
         TgMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774882067; x=1775486867;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=M2lKzkvcp/5rst2tKlCQyuyRBHib1VqG+RYhnZ32Aso=;
        b=MmSKpdQ044AKiFSlFV8pSL8bnuARDGTYKATRs4Axc68J/CqvrJCu7E/1oQgYTS3xyy
         j9ZxkJNS/vTCO6qfWmGOULQLi4o8vPJIiOwlKE2h0aX6ykatR7dDhZhZtM6IvHyFUB/j
         n+wVibQWLw5b/Bj8TeRDaVCauD7zI3owIg3uSk/tCR+wf6+g0fqbBcQk7hkC09xHZWpi
         nErWYIr0J2ZODnrryiUbqhHiN+WVCieRcrpxthtFZeBNrbPqM05VMgqECFiHMh2OsNSV
         XvNA/FY1g/iUW7yZML4W2o0F4x+hU4ZZWOmYKFAGPzrCYbBksdw27x/DnYaiEAnku1NX
         luMA==
X-Forwarded-Encrypted: i=1; AJvYcCV3nsuBopyjql7k7VMgTuH0TaIS73ZF6CZZMCYeienkbUVThvcJxhB66xhzpnq9ftTHwxFl6F6f5nU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzm45KTb7W1DCUKQ442OuJCUmZpiBsXfCoC+Zw6yQ7M5u/PldiV
	sveRQZprYHk4uyq188E8MV45gWQdMsl5CZfMdlLc5zuzOAZ20apCxR0QTAnL0YF0AFmgHjAfIOr
	YqfrYTA==
X-Gm-Gg: ATEYQzwqJqzBDhPCgQdvZejYSrdQiR3cOGmDtRqu5oiGZ0WevVutyrFJI6WiCWAjN33
	Kw0FoqCqNoNKu712S7/IenT/m04JhaPYxYD85OXbZBwWxb0oUYdWFhfXLqGs51aWnUiS3awo2uq
	UxjID2A6EV82n+f24qk1VBNUrMuBCZaPdWf2oD6Y0bZKP0EG2/+WijjzSljemUqSIaaD7qEXOaz
	gzvcfJ1Er3FuQW9z7qZbePYOOqm5FCpkFxBnxLC7rFuoOX5MraDokwzDuJGqetyTcoVeWrK8Huz
	TkRFfyOQ71GSI5PZO5hAEIJ/ar4ELUlH6RtrtggTVVWbA8VNFzsbLsjfFbbcLe0kJvn0fW3cN/c
	9cXa2TZ0Yviq2MTbN2iNslezlqCcFJjqgZfCZjYeOGp5wubvEsbhBQa1wxYWc08C+I+8zWk9IPd
	OoBf/nHLC8Rx7Yh2f7NFX1RVGRNgRdwK4cfpYzIBQTAUj6kjc6Lr4uDm6UXLuM2bengCaD0I7eQ
	1VssG2nSZ54ZlQ=
X-Received: by 2002:a05:6000:290a:b0:43c:ff58:35cd with SMTP id ffacd0b85a97d-43cff5837a7mr6915785f8f.2.1774882067329;
        Mon, 30 Mar 2026 07:47:47 -0700 (PDT)
Message-ID: <0a28eda9-a1c5-4e12-907e-b85f8972881c@suse.com>
Date: Mon, 30 Mar 2026 16:47:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/11] xen/riscv: add kernel loading support
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
 <1688c6e0e616b2d1bc1a9050d66f007e0e65d3b2.1774281309.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: <1688c6e0e616b2d1bc1a9050d66f007e0e65d3b2.1774281309.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1774882067-E9287726-5CA60B33/0/0
X-purgate-type: clean
X-purgate-size: 6340

On 23.03.2026 17:29, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/Makefile
> +++ b/xen/arch/riscv/Makefile
> @@ -8,6 +8,7 @@ obj-y += guestcopy.o
>  obj-y += imsic.o
>  obj-y += intc.o
>  obj-y += irq.o
> +obj-y += kernel.o

kernel.init.o, like Arm has it?

> --- a/xen/arch/riscv/include/asm/config.h
> +++ b/xen/arch/riscv/include/asm/config.h
> @@ -151,6 +151,19 @@
>  extern unsigned long phys_offset; /* = load_start - XEN_VIRT_START */
>  #endif
>  
> +/*
> + * KERNEL_LOAD_ADDR_ALIGNMENT is defined based on paragraph of
> + * "Kernel location" of boot.rst:
> + * https://docs.kernel.org/arch/riscv/boot.html#kernel-location
> + */
> +#if defined(CONFIG_RISCV_32)
> +#define KERNEL_LOAD_ADDR_ALIGNMENT MB(4)
> +#elif defined(CONFIG_RISCV_64)
> +#define KERNEL_LOAD_ADDR_ALIGNMENT MB(2)
> +#else
> +#error "Define KERNEL_LOAD_ADDR_ALIGNMENT"
> +#endif

But that's Linux-specific. You want to be able to loader other OS kernels,
I suppose? The needed alignment should be a property of the kernel image,
suitably conveyed to the loader.

Is Arm similarly capable of loading only Linux images? What about in
particular XTF?

> --- /dev/null
> +++ b/xen/arch/riscv/kernel.c
> @@ -0,0 +1,158 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/bug.h>
> +#include <xen/compiler.h>
> +#include <xen/errno.h>
> +#include <xen/fdt-kernel.h>
> +#include <xen/guest_access.h>
> +#include <xen/init.h>
> +#include <xen/libfdt/libfdt.h>
> +#include <xen/mm.h>
> +#include <xen/types.h>
> +#include <xen/vmap.h>
> +
> +#include <asm/setup.h>
> +
> +#define IMAGE64_MAGIC_V2 0x05435352 /* Magic number 2, le, "RSC\x05" */
> +
> +static void __init place_modules(struct kernel_info *info, paddr_t kernbase,
> +                                 paddr_t kernend)
> +{
> +    const struct boot_module *mod = info->bd.initrd;
> +
> +    const paddr_t initrd_len = ROUNDUP(mod ? mod->size : 0, MB(2));
> +    const paddr_t dtb_len = ROUNDUP(fdt_totalsize(info->fdt), MB(2));
> +    const paddr_t modsize = initrd_len + dtb_len;
> +
> +    const paddr_t ramsize = info->mem.bank[0].size;
> +    const paddr_t kernsize = ROUNDUP(kernend, MB(2)) - kernbase;
> +
> +    if ( modsize + kernsize > ramsize )
> +        panic("Not enough memory in the first bank for the kernel+dtb+initrd\n");
> +
> +    info->dtb_paddr = ROUNDUP(kernend, MB(2));
> +
> +    info->initrd_paddr = info->dtb_paddr + dtb_len;
> +}

Where are all of the MB(2) coming from in here? Do they mean to be
KERNEL_LOAD_ADDR_ALIGNMENT?

Also, how come all of this is limited to the first memory bank?

> +static paddr_t __init kernel_image_place(struct kernel_info *info)
> +{
> +    paddr_t load_addr;
> +
> +    /*
> +     * At the moment, RISC-V's Linux kernel should be always position
> +     * independent based on "Per-MMU execution" of boot.rst:
> +     *   https://docs.kernel.org/arch/riscv/boot.html#pre-mmu-execution
> +     *
> +     * But just for the case when RISC-V's Linux kernel isn't position
> +     * independent it is needed to take load address from
> +     * info->image.start.
> +     *
> +     * If `start` is zero, the Image is position independent. */
> +    if ( likely(!info->image.start) )
> +        /*
> +         * According to boot.rst kernel load address should be properly
> +         * aligned:
> +         *   https://docs.kernel.org/arch/riscv/boot.html#kernel-location
> +         */
> +        load_addr = ROUNDUP(info->mem.bank[0].start, KERNEL_LOAD_ADDR_ALIGNMENT);
> +    else
> +        load_addr = info->image.start;
> +
> +    return load_addr;
> +}

*info doesn't look to be altered here, so likely the parameter wants to
be pointer-to-const.

> +static void __init kernel_image_load(struct kernel_info *info)
> +{
> +    int rc;
> +    paddr_t load_addr = kernel_image_place(info);
> +    paddr_t paddr = info->image.kernel_addr;
> +    paddr_t len = info->image.len;
> +    void *kernel;
> +
> +    info->entry = load_addr;

What if this is outside of memory bank 0 (as is possible when
info->image.start is non-zero).

> +    place_modules(info, load_addr, load_addr + len);
> +
> +    printk("Loading Image from %"PRIpaddr" to %"PRIpaddr"-%"PRIpaddr"\n",
> +            paddr, load_addr, load_addr + len);
> +
> +    kernel = ioremap_wc(paddr, len);

ioremap_cache()?

> +/* Check if the image is a 64-bit Image */
> +static int __init kernel_image64_probe(struct kernel_info *info,
> +                                       paddr_t addr, paddr_t size)
> +{
> +    /* riscv/boot-image-header.rst */
> +    struct {
> +        u32 code0;		  /* Executable code */
> +        u32 code1;		  /* Executable code */
> +        u64 text_offset;  /* Image load offset, little endian */
> +        u64 image_size;	  /* Effective Image size, little endian */
> +        u64 flags;		  /* kernel flags, little endian */
> +        u32 version;	  /* Version of this header */
> +        u32 res1;		  /* Reserved */
> +        u64 res2;		  /* Reserved */
> +        u64 magic;        /* Deprecated: Magic number, little endian, "RISCV" */
> +        u32 magic2;       /* Magic number 2, little endian, "RSC\x05" */
> +        u32 res3;		  /* Reserved for PE COFF offset */

uint<N>_t throughout, please. And no use of hard tabs.

> +    } image;
> +    uint64_t start, end;
> +
> +    if ( size < sizeof(image) )
> +        return -EINVAL;
> +
> +    copy_from_paddr(&image, addr, sizeof(image));
> +
> +    /* Magic v1 is deprecated and may be removed.  Only use v2 */
> +    if ( image.magic2 != IMAGE64_MAGIC_V2 )
> +        return -EINVAL;

This doesn't look to be endian-ness-agnostic.

> +    /* Currently there is no length in the header, so just use the size */
> +    start = 0;
> +    end = size;

What's image_size then?

> +    /*
> +     * Given the above this check is a bit pointless, but leave it
> +     * here in case someone adds a length field in the future.
> +     */
> +    if ( (end - start) > size )
> +        return -EINVAL;
> +
> +    info->image.kernel_addr = addr;
> +    info->image.len = end - start;
> +    info->image.text_offset = image.text_offset;

This again doesn't look to be endian-ness-agnostic.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 15:01:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 15:01:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267773.1557262 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7E7R-0005bY-26; Mon, 30 Mar 2026 15:01:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267773.1557262; Mon, 30 Mar 2026 15:01: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 1w7E7Q-0005bR-VP; Mon, 30 Mar 2026 15:01:32 +0000
Received: by outflank-mailman (input) for mailman id 1267773;
 Mon, 30 Mar 2026 15:01:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w7E7P-0005bL-9D
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 15:01:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7E7O-00DIj5-Ap
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 17:01:30 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69ca9048-5cb7-0a2a0a5109dd-0a2a450ccbc8-10
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 17:01:30 +0200
Received: from [52.101.53.13]
 (helo=BL0PR03CU003.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69ca9048-f93d-0a2a450c0019-3465350d349f-4
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 17:01:29 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH2PR03MB5190.namprd03.prod.outlook.com (2603:10b6:610:91::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Mon, 30 Mar
 2026 15:01:25 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.027; Mon, 30 Mar 2026
 15: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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tErYHar9ZdfnITDwPNhs7QYVcmW43XWTXci/4yWxLtr4sfLbuWLfKYPjfisdO8rO/VhVboXpD8RAMcL3j5gkWStXyllDqd3+1r9t78L5UAZm32fu6igIehkJSllLjCVVl676xlVFFNyaw0cD7NFv1P8Xxvzf8mnjsI/4s2i74e8vviMlJgo44kQ+wVj5e7638iZjfUpLqbrKOTxBG2zFBlKcbG50LNLezTn5jzBgxrj6yNanb2VS6c67V6bO6GfsPdiqTaDTqrIEQJA4w09AVZrPf7o8G9GKGeLY2eMCPsNq/BT/pmXJqGXYbWWRRXjt9B9i3wQeKWwHgHW+74qgiw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=e/Wpa+dqtxDBbvTgOf3beO0ep55Yd6lsRJJRLt4s6Uw=;
 b=aaWbQO/LUdknWgEGze88TxMW2ulHmaBGK+KD76Ze0pGFCKd2LaKLx3KF4wrY3Y2iE8dep+eDZFACxaPCluvtri1xyQgABAV7vIFvQMrAm86Sm2ikLYIbeBzvTc2zrnvQuRbiQzq8N0nVgRTTnmbzs8APRCNurDQGyFi56HVy+vkj/GajD+Q9vlkHxK29uP2ucJoMl5UqbrAavPv8UWkD0Qzs056ibzak+lWEq38pVG3KTFOyqX6kFQGlDIhXqwzOzLNzedLGi+6EP8XdUWR4dHWu1dGKq95qwDea689mgbMAlsT3gedq4bAjFqzbO10vr7AvoRrAAjJR3mCUefCG4A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=e/Wpa+dqtxDBbvTgOf3beO0ep55Yd6lsRJJRLt4s6Uw=;
 b=ghIaUjKMD0e8kVBEaPDNu9sE21g39yW7sngEt4h/WVQj086HrVII6TZslBW4wzvzq0LCkKQPf61QmzYFYdZ6BeSpEt2ocF2vRD6aNWRWi9k3YzL/BpG0Y3c9L73+iWBRtfWkaMPKplhUIjmM/6Lg5rraDS5rKDYyVpHd8EmE5NQ=
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 v3] xen/mm: improve freeing of partially scrubbed pages
Date: Mon, 30 Mar 2026 17:01:19 +0200
Message-ID: <20260330150119.10546-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: MA3P292CA0012.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2c::16) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH2PR03MB5190:EE_
X-MS-Office365-Filtering-Correlation-Id: 1b616755-ab74-4662-2966-08de8e6d369a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	z9XYZXgrhE84c3x9ZxcU8LjqMKQfpLChOJlqqz4Zfwl6DQzDcmcxjXTDoyoqPNVFLCVGgr03yoD33SRbHmn9jiy+jR56aPet9KqAT/xx8mFb79lzvSNroHj+iUh0SAXokIrPp3dA+MYHalXjhwj1nOWkWzLE9OPlnN+JnMzwG/kxZmStCHhMGQDniK+wbO/DNj3jSv+/9F+lTwTUN5YtWG4AYd5IdY6z+5A34RYXcxRfNIZOU7Oi7gseqSGgJLVGiLy0dl6QJsaHuNZZr+jiLfsApvpK8yCImbbX4FqDGUSGHctZpNbt2e3bn/mQjlsD7Sz5zmDitsxeVNNbqdoOnAhmVGYDO0QU3qrKMoojBIos+k+dcUO8xpGm/MsWitiZFkrLTx2uGAZMaCPNpGbfuGbMGByuu1OTQmMgbvd0VKMSz4BylaDdrUFjQILDZp9xdPv5gItCulia4YiiN9vsntNfASpjhZrjiVWYQs5/owrQCuB5XBh4xuNnP1s/cLIOffHhas65RJoq5fPyioua1Scq4TVanbaIh5BA6VmoL6ym3XIeSMzgkEZla7vgfR9hnqBMyyJvyreAlyHG+E/QrkE4bKAohqF7eqE6ZWYIfch2j5ebwmSUvck4FFyz25juVMdWz+JIK4t7T14z6NnjSMXF41N0AglJ5yuS3IKExqlg49cpuLkEOtR36lvXcwHxB5F8L7KWiubJm2pL+doYI36S5QGZOwihkHzfLMPT894=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OGl5TzM4UG14SzViN09hS0lCRjk2dFRwcE8zb0RLVmFtZENabnRHcDJKM3J5?=
 =?utf-8?B?SkhSU2NRWk5JM1Foa0MvbkRPTXl0KzlDTmNiZDN6YWxQWXNvQjVndmdJMnZL?=
 =?utf-8?B?ejFhbXVBekZMQXpRQ3VNQjl0dmUyZ0dZMFNPbUZ3eDU2SEpMcUZwVGxmaTdM?=
 =?utf-8?B?NTBmdDluMDJRNjVHckI2SlduRXl1Q1UxMXFvbUlxRWpWcHorOVhrRE9TUksx?=
 =?utf-8?B?dXJkTDVtQmpuS0lDSDg0OHZCNDl3WWZndm9MN0gwclJEajZ1ZDFPV3VTZm4y?=
 =?utf-8?B?R3Naek5mcHRxd0NROUV4c0NNK2s5ZlhFdDVsTnVVR2NzMGVBWkF6cm82TU4r?=
 =?utf-8?B?TEl1TUFYRUc3OTkzeGRTQk0yOU1LRVRka0dTTzgyUmhEUDNGWFoxdGIzeXBx?=
 =?utf-8?B?N3YzdFI4cHM4aXAzRlA4dHFFUnFsSEIwVjU2UGZjekY5TFhkd0xJdkswNGNu?=
 =?utf-8?B?UzZMK2IrTTlLNGtyZUlyd1VscFhXM2I0a3hSV1czWWhsamUxWGhJNG5icEFp?=
 =?utf-8?B?RUNsQ1Fmb1gwZkVXSUU4ZUFlYURlV1FsaHZTcTRjUm9jakxldG85MU1VaHo1?=
 =?utf-8?B?TGN3WHZ0T2hLdTJsQm03NXdvTGVXLzRRU3NyZytGWExNamxtd1BsVDVPVDFm?=
 =?utf-8?B?a2ErWVJLSExaWUJqcVVjNjUzZ3NsbThxQktPTG15aG5sNWh6WHg2bGhsZ2Ix?=
 =?utf-8?B?U2c0a2dwdjdHa1R1Z29vQUlzbUtsM1dlS0o2MFZPcUYybWpESkpjOWJUTCsv?=
 =?utf-8?B?NnRFM0orQndpbnZnQncva0xuN2JDVUprRXoxRzQ3d3NQanJiVFU2T0lYNGQ5?=
 =?utf-8?B?dUF6WW4zWlIxVWJnSllJVHE2SzNDT2UrNEI0S3JJeG40eE5hdlc2NFBRTlRx?=
 =?utf-8?B?REFYUExqQlM5VDhDMkhXQUo4dzRnSGdlRFVVS2lKYkI1ZDdCVWFCVHlGb2lC?=
 =?utf-8?B?SE54Wk5FQWF4M21kK3RkOEtZVTAxQUFPUTlhSzlET0gyM2MxMUgzTWd2ZkRY?=
 =?utf-8?B?OHh4M3ZVcldPakRkWi8xTW9TYTAyTjJWeHVyMCthTXB1bDgwMUhQeHFWTUhl?=
 =?utf-8?B?MWFOZ2J2MU5wUkVOQzVSUU9rSGxlak5EcUp4RHVuTGExNGZlUmFNM2F4M205?=
 =?utf-8?B?T0s5Z1ZBS1JKY0JxSHNId1lkUFhTQWg5SXZpZnFRbElkeU1rbXprV0w1ZDNP?=
 =?utf-8?B?eVYrL1ZYb0NFempwc1Z6cy9CcXJUN04zcUxraGw5bVl1ejNlWnhXMHppbTU5?=
 =?utf-8?B?c0hHY09odGJpVi9zNEE3eGU5UDFVdVd2Q1RUOHdyeTNSMitqeFhVZVpkQy9w?=
 =?utf-8?B?MG5aUnU0dzhMYnhvY1RMbTdpdW8yeGpOTVhWYTNSb1VRSVFiZk0rWjRaeHox?=
 =?utf-8?B?NDJBVmtMNk5hMWhSWDNEa1VaQzIzRHpHaEUwdkdDcC9uZnRCTFJJZUdJeVZG?=
 =?utf-8?B?QU1XbGFwZkQ4Q1hFczJ6QU1TV01JMzEwS1hESEk3eTViaWpHWWFtN3hRNHlj?=
 =?utf-8?B?alI4Z3dLbGJaVFIyV1lDR1V5REsvMlB3NVpGaXUyVXd1dnJpZkxUMStFc3dZ?=
 =?utf-8?B?S04vMTlmazBIZjhSWlZzeW5SY0R0Y0FrU1dMdGRhWFhGSWRrMTJZRU1kRzZ2?=
 =?utf-8?B?NzV5eTdsTjZTWUhSc29jckg0cVlvRmdlZVYreWc0Rno4QWFUWGkxSjMyUW1P?=
 =?utf-8?B?VE9FejJZMTUwaGtaTlFlZ0FFclJnV052L2R4cjk3YW1DUW1ST0ZTdEJ1VHRr?=
 =?utf-8?B?ZlJheEZBcEd6a0UraHJlZUpXYk9PMkUzSm1SYzl5dldRcE1FTXNDRXgyY3N2?=
 =?utf-8?B?SFRYMW1uRjJVVnoyUkZ3UC9kUzcyWGxYNFVhc0pDSncwQkxsTHNTTVExQWZO?=
 =?utf-8?B?TCt4aWVBdUtxdnJ0YTlRdnNRSnorMkRyUjVQeldEanNWUGF0K3ZVRU5HaHJy?=
 =?utf-8?B?cWJXMU9UeUcvdnNKbWxJeUowb1hjRW0zUzh2VUFXbFpUcG1EaCtZc0NVdHIv?=
 =?utf-8?B?TVY5YW1TdEpORTdiMk9kOStmTVhkVUV5N0RUL0Q1U3VxYXpGR1VJSWNUcEJF?=
 =?utf-8?B?WjEyb0lVYlR6ZjR1MkxpM3NReW15YTFqMUxjNHVYeE42OWF3YzNtZE5JUW5Q?=
 =?utf-8?B?ZFExSFRyTDZvaEM1QkgzRm4zUWl2dC9aaXJKYVkzRjdqQUlPRzBWRmFZejJW?=
 =?utf-8?B?endESkNFWktmbnkzeHpKcGo0V2l6QzZ2ckFSVWI0Z0xwcVpOaVRrSVRoZlFt?=
 =?utf-8?B?S1p2U042Y2hPUkdtVWgyUGVkbjRpVTVsTmx2dm90ZmpmRENVUnVXSXQ4WWVh?=
 =?utf-8?B?YUlOZmVLQ2QzVUduRlJtQWswVHVNQlUwSTltUzQrOFdHSGNZTEk2UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1b616755-ab74-4662-2966-08de8e6d369a
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Mar 2026 15:01:25.4185
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: eGkf+A/oY0kY2yGEWBL/KntirN3QAZ9c/ldXBZoyzxqAqQd9sm4m4UdyRWuG86H4OXCisQTHKRGKwdIb1g7gRA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5190
X-purgate-ID: tlsNG-d25034/1774882890-F74A6734-BD4E0A00/0/0
X-purgate-type: clean
X-purgate-size: 5663

When freeing possibly partially scrubbed pages in populate_physmap() and
domain_pending_scrub_free() the whole page is marked as dirty, but that's
not fully accurate.  Since the PGC_need_scrub bit is preserved for the
populate_physmap() allocation we can use those when freeing to detect which
pages need scrubbing instead of marking the whole page as dirty.

This requires exposing free_heap_pages() globally, and switching
populate_physmap() and domain_pending_scrub_free() to use it instead of
free_domheap_pages().

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v2:
 - Use free_heap_pages() in domain destruction.
 - Introduce private header.
---
 xen/common/domain.c     |  4 +++-
 xen/common/memory.c     |  8 +++++---
 xen/common/page_alloc.c | 16 +++++++++++++---
 xen/common/page_alloc.h | 14 ++++++++++++++
 4 files changed, 35 insertions(+), 7 deletions(-)
 create mode 100644 xen/common/page_alloc.h

diff --git a/xen/common/domain.c b/xen/common/domain.c
index ab910fcf9306..567887ab3202 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -48,6 +48,8 @@
 #include <asm/guest.h>
 #endif
 
+#include "page_alloc.h"
+
 /* Linux config option: propageted to domain0 */
 /* xen_processor_pmbits: xen control Cx, Px, ... */
 unsigned int xen_processor_pmbits = XEN_PROCESSOR_PM_PX;
@@ -636,7 +638,7 @@ static void domain_pending_scrub_free(struct domain *d)
     rspin_lock(&d->page_alloc_lock);
     if ( d->pending_scrub )
     {
-        FREE_DOMHEAP_PAGES(d->pending_scrub, d->pending_scrub_order);
+        FREE_HEAP_PAGES(d->pending_scrub, d->pending_scrub_order, false);
         d->pending_scrub_order = 0;
         d->pending_scrub_index = 0;
     }
diff --git a/xen/common/memory.c b/xen/common/memory.c
index 1ad4b51c5b02..0e3a86e37381 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -40,6 +40,8 @@
 #include <asm/guest.h>
 #endif
 
+#include "page_alloc.h"
+
 struct memop_args {
     /* INPUT */
     struct domain *domain;     /* Domain to be affected. */
@@ -177,7 +179,7 @@ static void stash_allocation(struct domain *d, struct page_info *page,
      * interface is designed to be used for single-threaded domain creation.
      */
     if ( d->pending_scrub || d->is_dying )
-        free_domheap_pages(page, order);
+        free_heap_pages(page, order, false);
     else
     {
         d->pending_scrub_index = scrub_index;
@@ -210,7 +212,7 @@ static struct page_info *get_stashed_allocation(struct domain *d,
             *scrub_index = d->pending_scrub_index;
         }
         else
-            free_domheap_pages(d->pending_scrub, d->pending_scrub_order);
+            free_heap_pages(d->pending_scrub, d->pending_scrub_order, false);
 
         /*
          * The caller now owns the page or it has been freed, clear stashed
@@ -391,7 +393,7 @@ static void populate_physmap(struct memop_args *a)
 
                     if ( assign_page(page, a->extent_order, d, memflags) )
                     {
-                        free_domheap_pages(page, a->extent_order);
+                        free_heap_pages(page, a->extent_order, false);
                         goto out;
                     }
                 }
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index b1edef87124f..8fc9b5a27f1b 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -1529,13 +1529,13 @@ static bool mark_page_free(struct page_info *pg, mfn_t mfn)
 static void free_color_heap_page(struct page_info *pg, bool need_scrub);
 
 /* Free 2^@order set of pages. */
-static void free_heap_pages(
-    struct page_info *pg, unsigned int order, bool need_scrub)
+void free_heap_pages(struct page_info *pg, unsigned int order, bool need_scrub)
 {
     unsigned long mask;
     mfn_t mfn = page_to_mfn(pg);
     unsigned int i, node = mfn_to_nid(mfn);
     unsigned int zone = page_to_zone(pg);
+    unsigned int first_dirty = INVALID_DIRTY_IDX, dirty_cnt = 0;
     bool pg_offlined = false;
 
     ASSERT(order <= MAX_ORDER);
@@ -1552,6 +1552,13 @@ static void free_heap_pages(
             pg[i].count_info |= PGC_need_scrub;
             poison_one_page(&pg[i]);
         }
+        else if ( test_bit(_PGC_need_scrub, &pg[i].count_info) )
+        {
+            /* The caller might have returned pages pending scrub. */
+            if ( first_dirty == INVALID_DIRTY_IDX )
+                first_dirty = i;
+            dirty_cnt++;
+        }
 
         if ( pg->count_info & PGC_colored )
         {
@@ -1571,7 +1578,10 @@ static void free_heap_pages(
         pg->u.free.first_dirty = 0;
     }
     else
-        pg->u.free.first_dirty = INVALID_DIRTY_IDX;
+    {
+        node_need_scrub[node] += dirty_cnt;
+        pg->u.free.first_dirty = first_dirty;
+    }
 
     /* Merge chunks as far as possible. */
     while ( order < MAX_ORDER )
diff --git a/xen/common/page_alloc.h b/xen/common/page_alloc.h
new file mode 100644
index 000000000000..4661767148d1
--- /dev/null
+++ b/xen/common/page_alloc.h
@@ -0,0 +1,14 @@
+#ifndef PAGE_ALLOC_H
+#define PAGE_ALLOC_H
+
+void free_heap_pages(struct page_info *pg, unsigned int order, bool need_scrub);
+
+/* Free an allocation, and zero the pointer to it. */
+#define FREE_HEAP_PAGES(p, o, s) do { \
+    void *_ptr_ = (p);                \
+    (p) = NULL;                       \
+    free_heap_pages(_ptr_, o, s);     \
+} while ( false )
+#define FREE_HEAP_PAGE(p, s) FREE_HEAP_PAGES(p, 0, s)
+
+#endif
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 30 15:04:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 15:04:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267781.1557273 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7EA0-000671-Eu; Mon, 30 Mar 2026 15:04:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267781.1557273; Mon, 30 Mar 2026 15:04:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7EA0-00066u-Az; Mon, 30 Mar 2026 15:04:12 +0000
Received: by outflank-mailman (input) for mailman id 1267781;
 Mon, 30 Mar 2026 15:04:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <roger.pau@citrix.com>) id 1w7E9z-00066m-Co
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 15:04:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7E9y-00Ft3B-Ou
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 17:04:10 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <roger.pau@citrix.com>)
 id 69ca90d9-5cb7-0a2a0a5109dd-0a2a4507e60a-40
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 17:04:10 +0200
Received: from [52.101.52.56]
 (helo=BL2PR02CU003.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <roger.pau@citrix.com>)
 id 69ca90e9-fd74-0a2a45070019-34653438a43b-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 17:04:10 +0200
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH2PR03MB5190.namprd03.prod.outlook.com (2603:10b6:610:91::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Mon, 30 Mar
 2026 15:04:07 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9745.027; Mon, 30 Mar 2026
 15:04:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JdmgLJQmuf1r+9KcnQMYA6UUaFj4pPWdJMfYjzONPUo2QntqevyNRCE1fmfHTkSdteBkF0VNta3XBYvYBt0dsVzBEsQkKixflr93gvNGq0ma9mkVgvC4NmmKeWbujqL3zuIuLbgS2VBvU88lOYRBix+9nF7XN/qDB+uqbdWCaxsYU/9cXFA4qn2vrDzgZHZ6m+Mg84Bu6fbMB0ev9CLaE8LpHR3hkScuK0VD+ZK0bfOqNn7JPGPwyCEnnDPKzaah+sV9C8wgAfGoLkWEB8HDF0wG4qqLreoJ6KFc3GJLFkE5yf6U1G9N3xwoapX8YLsQRZQdS6qZaJO5O1YV+o67+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=nOEYxFkMgLVMEzDV0VHVibpdSm59ZWCphXiB0Z8mhOs=;
 b=PnZ/EU+eajKmfMBkoHbATiGUvtjC2oD3CmtTfjeX8eW3Ir4kH2Z3LyfCmmW6yEHRKW3zqFSbG777/FiUr/4pDcU9Nw8KChO/UUVaCqjQMYzttRCXOfLP+6tO2z2zY0ZXnE+/mNTE6DVCfJvZzrWwinyyh9+e13ld+E/E9bNNFCYkgyCAhUAz7+EXUdBOkhNj2EQ0E4Qs9vZ3yJxtgNhyFZ1CbkL4GCWW/DXErsPPLs1/050GeeJBMTbYQJApZiKW8pwliYk/DLdESsI9JiAqbrEkifp/qMsCh6+9OIf7k3Cgh5Hu4jaK0taFo9D9ucBe91WKcoxLc0RMntTBJIGclQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nOEYxFkMgLVMEzDV0VHVibpdSm59ZWCphXiB0Z8mhOs=;
 b=su80s9ZYdeSseWsTTsiwRIfeGelZNO6yzNEe5RoAbaeRo88KxUsIiIYrZQMkDVFvgScbjknUOfFfZpJNP5KmNkpc+xYyry32JAfX9Fk4W2/qF7olgZZaCAzoBe8fx+Rvca+Ds4UYbMk2d9llZu8NmWEc9iv2qqtHX7jscYKMduQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] xen/uart: set a default baudrate if non specified neither found
Date: Mon, 30 Mar 2026 17:03:50 +0200
Message-ID: <20260330150350.10657-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: MA3P292CA0030.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:46::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_|CH2PR03MB5190:EE_
X-MS-Office365-Filtering-Correlation-Id: 3dc9de83-bfca-42f6-623e-08de8e6d9730
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	t9D3X/FeoFcGmS0Uv7k7kqzVieSCfd0fzkEgO6sPmnLrAgqSfuM3W+U+xMf0dVqcoV1wVoKxK5MoE7HoZYlJu1hRpnVE/NuRpn9+B2f3QQDwxyBZSZjmC1nrac4Y6zSsUxLtjiCK5FIMsiyyl0NmYSmIIUpyoEsQBXPeJ2QqA19uzQTyn2F5V6jk/7RpskBIbpv8G4quCTeZ/+fffKrESK658YEx4fDBh1X27aaRcblhhHNxPM3vy0SdgrO9YJwPxjH/gFgyjd2sG9TFmCYjX3WlmRYL3g9G1y3j/azCJwS+h+qyS7MkN+w2CFQeQYRnYPbtdCcX91mQjxl4Bykfy6RLI0eFN9aS/h5O+EUEmvSHgftbb9jxN5hE++5tR4au8xKjh/W0rpuvfsNO1W97E0fjfFYp9sFQ+3txY7B03fH9lmyecR+wnvvCyMCKGM3D9O7SXiWZTZfu5/NnPXMDiiWtLZ32xNKAJahThgSX6uA4CYYiUlynOFHRTw3kV67gss8g5sivZf+gGT7LcSftHUGZ6mHXMrHoylDCySUgj5OMU2olRYyr7cDf6OdNdNMzgNcwmB5Jl3BMu7spBe/ju6kSmjyJioHqNnMknRUBD4AziXhElXCLJ++7p/yVT6s7/wdm+uo57TJVnoeZc/O0JmSG8ye7S07BAX5kP6pBZ2Es1rffOp32udAyY2kiE95wU0XyS6RIGRn0X6b2faZ+G88rsxuQ6WNB4mFRWIzhKiQ=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dVJwVDY1Q0RpNGltSFhCbWRkblJpalZhSWFHTFdzb0FHKzFkaTJ4RlRQb3hJ?=
 =?utf-8?B?UERyTW5hVmFscG9KQkRUbXI4R0RoVkt1Yk1WbERpMDlGc0xLKzJvWkJ3d04w?=
 =?utf-8?B?Z002YzJ5dCtHdnlXcm1OSWVyUmVtWERCeldUenZTRmZwOExMYlZlNzMwcXNp?=
 =?utf-8?B?UG8vZ2tRNFIzS0hFLzRDaWVsRVAycTRyRXBhMWlONXJMSHRaUTVhK3hTdFZv?=
 =?utf-8?B?WXpjQW5yM21TcURPalFMUlFkZUdxRXhQYi9yWVRUTzhFTUVYbnFERUUrTW9i?=
 =?utf-8?B?N3pNQm9qNzVxK1VFUk91N09LdHhNSW41ZmMwWDllL2ZEbGsrNGNrc0xlOVdy?=
 =?utf-8?B?a1R4KzNwMmxRWjg4b1RwaE51b0ZRMDZxeHJWcWJxME16VEJQeXBmaCtGVmI2?=
 =?utf-8?B?ZzZySmxFNlFJUUp4N1plQzlhNXZ2VWhWT3pOdWNOVXlqamVMdHFKbTlFV3da?=
 =?utf-8?B?aGhVRkdIa0hKWWRCcDJwb05PSXY2Y2JNWmZYVDRNNnUzWnpRbFNlWlk4Ris1?=
 =?utf-8?B?amRpMi9sQUpQRlVNZmZYR3VydjRVR2VTcUZNME0reHRESU1UL2xFdmh3OVZk?=
 =?utf-8?B?azR2Qld0K1AxSVZoN05oZkFOQ1p5L2ttQUpPRHNSTHhOV2Q4b1BEa1IzRHJJ?=
 =?utf-8?B?aGFJNHJWQzFqd29udXgxUWlsWHZjTGxyNWdsQnNTT3h3STZ0Y2JwOVBzNndP?=
 =?utf-8?B?TkkybEJnb1dadExaR0JqZkk3TUovWTVPdXJObEl6SUpJQnkyT291M05wckJF?=
 =?utf-8?B?TStsWGpqZ1Y4aW5YT0d4Tm1CbGtRd0dwME1jUHZyaXFmV0g2bGVpVlUzZnlz?=
 =?utf-8?B?WnFWZThDZVBQNFdqRytiWW1zdHhwdjdsblRaN2V6QTVuVnE3RDV6bGY4Y1M0?=
 =?utf-8?B?ZjMrQTQrUGlIZFZ3b0tmdW1USVNoWWhNcmJybFo2R2w1YkRKampHNWNGbHJv?=
 =?utf-8?B?WFY3eUVDdzg5R3c3Mk5nakg3L2ZQczVSMEk3cXlNditzYU9qWXkwc3RXRW9L?=
 =?utf-8?B?alpjVTdtTmIyTDVvNVhrVFA3ekFHMUlMS3BBeWxKS0xsdTl6cWY1aURZWXI5?=
 =?utf-8?B?ZmxNZFU1cWcwVUdrUEwzZHZXeXJMSTdCbldDaElDSXNqMVByZXlpM3VIbWtU?=
 =?utf-8?B?QU5OT0lacHppclBXeDJqU253YURaN04zMFNQVms2MzdqcHJTVGRiU2sxUmJl?=
 =?utf-8?B?b1BhMlJmYW1aY3RrRjd6NHBSbjc2dWpEd3JKR2cvZEtQcWZ1ZHRIc2RyRFh4?=
 =?utf-8?B?bk8ya3krYzZOYlZwRVhzRlptTTRaT09Bbzlzd1FxWTUzZE9pM1pRZncrNDla?=
 =?utf-8?B?dExialJCVmwzbTAxaXk2U3kzdTFKNWFKbjdyRVVHNjd3dXNETkJUVlR5bWt6?=
 =?utf-8?B?RFhuUnN4ZTBjRUIxSXhFYTR1bUJyQit5bTc5U3RUODNNb2JnV3RJV0ZkYWxF?=
 =?utf-8?B?dkVxdlJJMEVPRDdUby9EN1lTL1NzTWpTaE9KUnNwOURBd3JFUXgrckE5Vk0r?=
 =?utf-8?B?RzV3VFRTdlpNRWhaSlo1MndwRHFETFJZNHcwUkkvWDUvYjRHNkRrMml3VE9Q?=
 =?utf-8?B?TDJJYkVuSWpsMldDcU1UUTRxbDZPZTU0b0NDSTdJREduTnZlMnJud2wrdXhr?=
 =?utf-8?B?MDhTYmpqcVhHc1ZWMll0V1VwNUFHc2IvdjQ5a2FVVy9zNWRYSjRvcmZEcVd3?=
 =?utf-8?B?OCsrRmgxWUJEa0lhUjFwWGFQdi9ibTVramtwSzR3dXVXdm9ublFpR2pMQm9k?=
 =?utf-8?B?bWNMTk4rTVFDeTlxZGhDZVZvYnorSVFOV0xxLytGN3JzUnAxdUdtYTNvaVFt?=
 =?utf-8?B?K3g2T0tFR3ZoeXc3RlQ5aVEwTWk4Q2lIRWgybDZGazIvbEJrdHJhdjhlV01D?=
 =?utf-8?B?SUxNNnR0ejN4dWRSbk9tb0lSUkY4VGhwU1ZGajFZYUZLZW84NjFQMm9HYWU4?=
 =?utf-8?B?TFFXdEhBZXp6Q3JsNUg5SlN6S1gyK2Z3YmNJcWIyeCtINWRPZEdJWFB1eGZX?=
 =?utf-8?B?UlBiMHFhaU5EMmxrNDFaNWlFVHBEUVRTNldRbHhmRU51bDRQSm1qS3VBZ0d0?=
 =?utf-8?B?K0RTOW4rRVU2U1d5NVJzM0k5UUJFQlhGNG5hd2JhTWk5RXN0MDEwOVdaczV3?=
 =?utf-8?B?anY5bzlmWWMyMUJJdVMyejdMTWZnWHRxT0I1azEybW4yZTBub3EvRWFMRFRr?=
 =?utf-8?B?QnFRc3pOSiswQjBVR2xpZGdSOThFeHRZaGxXSUFISkFKZysvS0o0ZTV6dEpU?=
 =?utf-8?B?NjRmSWRNUVFxVndPaTc5YVdxVVJuY0s4WlR6aWRDcGdiT0V5SHFFVjR3NVA5?=
 =?utf-8?B?aGxMOFFUY1YzTXkwcDRxRjB5NUt1SjRqVVRTSDNJeXQ1NHdYcVl5Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3dc9de83-bfca-42f6-623e-08de8e6d9730
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Mar 2026 15:04:07.4873
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 0wMMFuYXADswC2Px3FA9JzVQ+BJ1el6Xmw99q+Q6Z7nDSsAyxDRBlavdeGZV4sMXtxozwxYzYU2uMO79LoaIlg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5190
X-purgate-ID: tlsNG-ef75cf/1774883050-4F6A7303-55EB69D0/0/0
X-purgate-type: clean
X-purgate-size: 1495

If the user has set baudrate as "auto" (use whatever was configured) but
Xen cannot find any set baudrate use a default fallback baudrate of
115200.

Otherwise the console will very likely end up being non-functional, as
further values are derived from the baudrate (like the transmit timeout),
and using -1 will result in screwed parameters being derived from the
baudrate.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/drivers/char/ns16550.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index b23e85a3c68b..130e292f057d 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -346,9 +346,16 @@ static void ns16550_setup_preirq(struct ns16550 *uart)
         if ( divisor )
             uart->baud = uart->clock_hz / (divisor << 4);
         else
+        {
+            uart->baud = 115200;
             printk(XENLOG_ERR
                    "Automatic baud rate determination was requested,"
-                   " but a baud rate was not set up\n");
+                   " but a baud rate was not set up\n"
+                   "Setting baudrate to %u\n", uart->baud);
+            divisor = uart->clock_hz / (uart->baud << 4);
+            ns_write_reg(uart, UART_DLL, (uint8_t)divisor);
+            ns_write_reg(uart, UART_DLM, (uint8_t)(divisor >> 8));
+        }
     }
     ns_write_reg(uart, UART_LCR, lcr);
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 30 15:13:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 15:13:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267796.1557281 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7EJH-0007rC-Dm; Mon, 30 Mar 2026 15:13:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267796.1557281; Mon, 30 Mar 2026 15: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 1w7EJH-0007r5-B5; Mon, 30 Mar 2026 15:13:47 +0000
Received: by outflank-mailman (input) for mailman id 1267796;
 Mon, 30 Mar 2026 15:13:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7EJF-0007qz-QT
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 15:13:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7EJE-008iCK-Rf
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 17:13:44 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69ca9320-2eae-0a2a0a5409dd-0a2a450ab972-14
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 17:13:44 +0200
Received: from [209.85.221.43] (helo=mail-wr1-f43.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69ca9328-1772-0a2a450a0019-d155dd2bdc58-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 17:13:44 +0200
Received: by mail-wr1-f43.google.com with SMTP id
 ffacd0b85a97d-43cfe71e5d3so1026519f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 08:13:44 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf1db08e6sm29749698f8f.0.2026.03.30.08.13.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 08:13:41 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774883624; x=1775488424; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=US0rhK1UAP+IufGU9PQwh5kL3B34tJbGefIpkNGfEJ4=;
        b=WWK+o5fgtEaF8lEhxpv4JL2jJA5rDJQD0exI4A6xO0MZlQhiEGU2G1MplyxVvWNW4I
         aY2I6OYgZ/Kn1y5lQ2b+wztA2I8ARVlE6Z52Aq1/Y89hglfu4jvqEYBsfZtLh7YXz3rT
         rEed+ZsjNslE9LuTiiJ2DEhcCu2fZxW+iF8FXgzdeCGSSAiqGnXrFCR6RWmzEkNi9gAA
         44a+NrWcSIACMmgcmRjQLTXf7If36eyqMSz479FXs1FoT9LdowjrpqBWY0vuDZ2smfm8
         rNIjDRwTnJMaZVROZB9q0YlYVhjD8t4HGIeb8Dz6tNPhy/N6n+Kfr8a9YDntUC/JfBXu
         zw4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774883624; x=1775488424;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=US0rhK1UAP+IufGU9PQwh5kL3B34tJbGefIpkNGfEJ4=;
        b=OhTHD6JtZ4kwWaZp0zwoFOa+3LbnGcUIBxOYcXoFUxGNp3YfQ4l7qp7TBScyEgjXQI
         +Y3L2ad5ULANui5/g4+254TSmKVDeenm5Yguy+EABjg1zPW2+jLm57GZEB8DfuaKSLdZ
         BjSRIudK8IrzUdQ5Jx8wHFsIaAcQylEPOp9ZhPKSByoIuQevSTrshzz6pU8rnWDhXVQm
         Tfn/nAcUWvfzAXPyq0Y1qkz1Dgc7hldI5MnhFk9NIgEQv2OQteVd8LXklpk3s4O+1L/G
         iquteX5MP5fy3rZtwfixD1E1ABXtq06ZsuKhpClG7YVw70ddpEX+xAhm/st073uVEgjs
         xVQg==
X-Forwarded-Encrypted: i=1; AJvYcCX87ItBYmO6VhYQsUILvXjLC7+25oIWsDDBC3mv/7Dnh1LBDuc9RsAL1IM+n18FCy7vVcypnXp6FD4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw17T0sQcpOdgxs6b3C8w8JQBiDZOGM3mHqpk1/p14fTxh37xuJ
	u8AmjOuUJwPj680dt25vuZfIq33ISoezj7f130vfzbskG+gA8ZEIxqXgU8Rr0jb1Dw==
X-Gm-Gg: ATEYQzyjCz90rAmjaaNf+i2CqoI9pII55aMguKfPNKs8oXqTXxbeit7LcYwVXPM4QJj
	pDMOVB5s/jjme4AivMPW0jaEmbTXfnoVJE4s9nhLERvWusG5/eYKUo5hg5H2uZ/5FPtmxFfQNry
	M8c4liAo+ncmCCJ4/YvpM9M+DsSpVe+R+RsDSrj12dNCZxWAHevOPuC5Qt9V/wY4ZaGPiXQJpxg
	a9tpY75pZxnZMDxwvHtcI7c0EjwL38Cke83pxA0EdQZogLe4cGI3wxCnd/9zkMmnXhtlq2pqkRv
	2zd2ehdThsKX6hCbaU1tUPsj6OPaEeTT7xM8tdS3nmeZ2KXuGbuBXq5z2kLVNVwMgwrugT3BG9p
	4VqL2gnxqUBcees1wSk6ESQ7+f7OsU+L3yFY1TGKO0b1klD5/X1a7aiYpqIyl38ddkJ0fFPEGTP
	yX7bSUA0wjRMSs1niPunGQceqZ6fCiR1kOLvIIWlLXgOq9T9WtfjcU+n4AyM5VWhwar39xmaEH1
	J0YuFUcas83fyc=
X-Received: by 2002:a05:6000:18a6:b0:43d:740:fb37 with SMTP id ffacd0b85a97d-43d0740fe10mr1183763f8f.24.1774883621801;
        Mon, 30 Mar 2026 08:13:41 -0700 (PDT)
Message-ID: <6df9470e-4969-48d1-bf0c-c6569a5e5577@suse.com>
Date: Mon, 30 Mar 2026 17:13:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 07/11] xen: move domain_use_host_layout() to common
 code
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
 <533d01db2b36b8357cd87e99a64a6e66dbdd1db4.1774281309.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: <533d01db2b36b8357cd87e99a64a6e66dbdd1db4.1774281309.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1774883624-BCA83900-0865B4B3/0/0
X-purgate-type: clean
X-purgate-size: 2147

On 23.03.2026 17:29, Oleksii Kurochko wrote:
> domain_use_host_layout() is not really architecture-specific, so move it
> from the Arm header to the common header xen/domain.h and provide a common
> implementation in xen/common/domain.c. domain_use_host_layout() potentially
> is needed for x86 [1].

No matter that this may indeed be true, ...

> Turn the macro into a function to avoid header dependency issues.

... this introduces unreachable code on x86, i.e. a Misra rule 2.1 violation.

> @@ -2544,6 +2544,12 @@ void thaw_domains(void)
>  
>  #endif /* CONFIG_SYSTEM_SUSPEND */
>  
> +bool domain_use_host_layout(struct domain *d)
> +{
> +    return is_domain_direct_mapped(d) ||
> +           (paging_mode_translate(d) && is_hardware_domain(d));
> +}

The placement of paging_mode_translate() doesn't match ...

> --- a/xen/include/xen/domain.h
> +++ b/xen/include/xen/domain.h
> @@ -62,6 +62,22 @@ void domid_free(domid_t domid);
>  #define is_domain_direct_mapped(d) ((d)->cdf & CDF_directmap)
>  #define is_domain_using_staticmem(d) ((d)->cdf & CDF_staticmem)
>  
> +/*
> + * Is the auto-translated domain using the host memory layout?
> + *
> + * domain_use_host_layout() is always False for PV guests.

... the description of the function.

Further, the first sentence above suggests the caller has to check
paging_mode_translate() before calling, which as per the implementation
clearly isn't the intention.

> + * Direct-mapped domains (autotranslated domains with memory allocated
> + * contiguously and mapped 1:1 so that GFN == MFN) are always using the
> + * host memory layout to avoid address clashes.
> + *
> + * The hardware domain will use the host layout (regardless of
> + * direct-mapped) because some OS may rely on a specific address ranges
> + * for the devices. PV Dom0, like any other PV guests, has
> + * domain_use_host_layout() returning False.
> + */
> +bool domain_use_host_layout(struct domain *d);

Like about any other predicate, its parameter wants to be pointer-to-
const. (And I really shouldn't need to repeat this to you every other
time.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 15:16:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 15:16:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267806.1557291 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7EM5-0008Oh-S3; Mon, 30 Mar 2026 15:16:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267806.1557291; Mon, 30 Mar 2026 15:16:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7EM5-0008Oa-NT; Mon, 30 Mar 2026 15:16:41 +0000
Received: by outflank-mailman (input) for mailman id 1267806;
 Mon, 30 Mar 2026 15:16:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7EM4-0008OU-Kg
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 15:16:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7EM4-0048A0-0a
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 17:16:40 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69ca93d1-5cb7-0a2a0a5109dd-0a2a4508bc50-16
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 17:16:39 +0200
Received: from [209.85.221.52] (helo=mail-wr1-f52.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69ca93d7-1950-0a2a45080019-d155dd34b5a4-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 17:16:39 +0200
Received: by mail-wr1-f52.google.com with SMTP id
 ffacd0b85a97d-43b8e8e7432so3840949f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 08:16:39 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf245f87esm18928826f8f.22.2026.03.30.08.16.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 08:16:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774883799; x=1775488599; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Bc/rE4qH/6KZTScNENcv6A/Mmu46KFFRY4Zf+9qK/G8=;
        b=UnZcYktGPvmeHuArEYJh45pixHdYZzEICapZ+8ee0Mxs6jhwMG3YR93a4X8inQB2ZL
         ALeTrwAbhNxlBEmN88KlX9Q6pN97OwsL/ynM8bPDPqY80SVRdCaMiss3mbqD8ZaFE3Ua
         vFT8I9gTtqiF73IKTiq6N+GFZLjcJWFNcj7WEtHTgFwPxvecTDJOvzAyvwpqL3FSpmTA
         r8DmdkJAXuraG8bakFJHYF8ndJJw3OwqwDTCE+RiLaGDoMDKnOCPKKsu75XVXZf1yfQM
         EFkJUpYyzxrPgMyRYQ2UVUcYtwgOfq1CXL/3YZ+eE5QqrE1x1whSniQDWPz31mGkK9dl
         Mlzg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774883799; x=1775488599;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Bc/rE4qH/6KZTScNENcv6A/Mmu46KFFRY4Zf+9qK/G8=;
        b=SvN+SGmp9+QBsOyi5R2pOCyFBUpsBj9dZUSqNOdHMf7NxTokm+/lkahm51Ky0gGmLv
         BaKfPu8n8uoQ/VkB1l7GS76nA4yoQmqjnx2QsbyppuAPGSy75A7O46iTss6fUU/kp9qz
         RZ3hgQHYxbOKZuvDOMn8yECBGWL+GxTuWuHvztQakGIaSsDmG3/y/7VVw/ZEb45GnsJM
         V2ZA5YM5pa3DPbagOkCcDjZ2OHlJM+U91MoX/4YgSZxlXjQIE3eDHVISylvM7eFa5Ege
         /Ccohx1I7ocX0t6y+YXvC08BKE973Gc/Vr4TDRTh4QdkkAL4eYDL/Mod0s2OCiFjnyda
         JNQQ==
X-Forwarded-Encrypted: i=1; AJvYcCXW+bjslE38IT9d7YTZSxIfS/x93vjgC1GgwsffZ/eg9j5K5AmJG4LhWT3nky627NE6b8PS0a5AoSw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzub4KJ3i7F+PSoeqkqmsUvJ+14zK7RP+X0A6/RZeTBSu5gKdPk
	6d4mJeQQwyQSC4PM5YAUtRU5dbZHyQnN8VpuSuEj5XSk4oqj2nETFex2pp9eoQqqDQ==
X-Gm-Gg: ATEYQzxhzrkCu8AB6VfFEvSf+W/sN9HgmHPPRjSemYUvyyjaz6SAIkhTRMzwU1wpnsR
	SaHm871UGCDbm6aLnFCrwMpprV4nJbKdtZlf8QVTKMvksiktaDDo4IsWgY29YAPncbm6chbXlmU
	MX9gztNcoTbJJdgbowcbGB5a9bZPFl0yUWZl0NJMPYCODEiSWUCe5B6ds52BuNeypHBMYGuYfkV
	8xzRBIgcg6IUji0MPlrXozyMtd4gtx2jwnkJDkuUyyoc0pfiLUmO8S94AyhXvxPQv1FB5uGa8hL
	cKmoVnYG8hcR/ZeRYN7CDB8nVMMmFxEzWK6quiuipZJauiPy6lf9jcKeAd5bsbIAjAyavfQMcm4
	/e0LCTW8m2qBzdfPOhKQNSp2mSPPxQXQ6inrlV6c5YeXFNx0hGYN4ZzwwKwUSs0xSZ6ywXaHPXu
	MCxsSVvlDpNaLYDMzZ3VgSPsIOvyEnKnu8yCNfQCgGWiIHmHV73SzxzBxKYrb7gaFE0N+tfL06G
	VUxyVoKTRMxs0c=
X-Received: by 2002:a05:6000:1889:b0:43b:4273:a6d1 with SMTP id ffacd0b85a97d-43b9e987aecmr22654964f8f.7.1774883799316;
        Mon, 30 Mar 2026 08:16:39 -0700 (PDT)
Message-ID: <7a10da47-1e5d-4911-8731-f20ae48a8d04@suse.com>
Date: Mon, 30 Mar 2026 17:16:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 08/11] xen: rename p2m_ipa_bits to p2m_gpa_bits
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Rahul Singh <rahul.singh@arm.com>, xen-devel@lists.xenproject.org
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
 <05365c2b70147f30fd97a2fe5b7ab66d773c0f32.1774281309.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: <05365c2b70147f30fd97a2fe5b7ab66d773c0f32.1774281309.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1774883799-F0818726-25792027/0/0
X-purgate-type: clean
X-purgate-size: 567

On 23.03.2026 17:29, Oleksii Kurochko wrote:
> The IPA terminology is Arm-specific, so rename p2m_ipa_bits to
> p2m_gpa_bits to use architecture-neutral naming.

This desire is limited to xen/common/device-tree/, which could do with
saying. I don't know whether Arm folks mind the renaming and the involved
churn. An alternative maybe to have

#define p2m_gpa_bits p2m_ipa_bits

in a suitable Arm header.

> No functional changes.
> 
> Reported-by: Jan Beulich <jbeulich@suse.com>
> ---
> Changes in v2:
>  - New patch

Missing your S-o-b.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 15:20:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 15:20:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267815.1557300 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7EPP-0001Pe-9a; Mon, 30 Mar 2026 15:20:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267815.1557300; Mon, 30 Mar 2026 15:20: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 1w7EPP-0001PX-4x; Mon, 30 Mar 2026 15:20:07 +0000
Received: by outflank-mailman (input) for mailman id 1267815;
 Mon, 30 Mar 2026 15:20:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <bounce-md_30504962.69ca94a2.v1-7a98e02100ce4a4da531b8a42863f51e@bounce.vates.tech>)
 id 1w7EPO-0001Gf-0m
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 15:20:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7EPN-004cBL-7l
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 17:20:05 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <bounce-md_30504962.69ca94a2.v1-7a98e02100ce4a4da531b8a42863f51e@bounce.vates.tech>)
 id 69ca94a3-e002-0a2a0a5209dd-0a2a450bb756-4
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 17:20:04 +0200
Received: from [198.2.179.37] (helo=mail179-37.suw41.mandrillapp.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from
 <bounce-md_30504962.69ca94a2.v1-7a98e02100ce4a4da531b8a42863f51e@bounce.vates.tech>)
 id 69ca94a2-ef63-0a2a450b0019-c602b325a699-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 17:20:03 +0200
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-37.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4fkw0f0bXRzG0CBK5
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 15:20:02 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 7a98e02100ce4a4da531b8a42863f51e; Mon, 30 Mar 2026 15: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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mte1 header.d=mandrillapp.com header.i="@mandrillapp.com" header.h="From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"; dkim=pass header.s=mte1 header.d=vates.tech header.i="teddy.astie@vates.tech" header.h="From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774884002; x=1775154002;
	bh=PeO2S1AWRgDSx8/UdTM17lTckXg5MBjaSPLBSlRlcys=;
	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=WJZVIOAnCKewQFcVKavIEp4qPhEfkseeEqPhmjyLg9catcoVBel2KeMdlE0WulLQw
	 3puspz1OgSeusVY/8QRTzzl87jQ3sBNMGFVwkS4gb97Dlcl5j40WOqTMKIeRWGJDGg
	 tSs7s9fnlnj1aizC3qSZSe7rMphM96xkJ1VMCHxImFumbBekulp9KRCc0Nk3Qadzn8
	 co4PNk3nPDI6HiemWqdN3Qzo9jyaz+Pc6cmRtn0Ou9GX2AAzFYq3VWZOWmzSsHG52z
	 +V0mvfVoOMm2KS2zLNmiMAeHKSeJ2ME3jd17QpcAL5cDbnchEhGehbjADzMcik8RTS
	 s8rRjII+YqcYw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774884002; x=1775144502; i=teddy.astie@vates.tech;
	bh=PeO2S1AWRgDSx8/UdTM17lTckXg5MBjaSPLBSlRlcys=;
	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=SdKVD21eFyh6MKbvJg6bHHaUfgwZ5EAMP0ILGoOitxRV9qlC9RZl681/O9oe08J82
	 TzhOp7hyOSE5xm5kpz6k6nYicXBmf8vpxPsVVmKjgEO2OXoZgFBp4jTzakMXXC62vZ
	 Ikv7jrUa1371rhVnuq5FTzoizx0DIYdL4BdPzgRvV976Zfr3oIAjwgvHUh7flYv38V
	 TwGddUSlSOGhsF+Y9CdsrOIItI4d6a4eAUzNZo/cEATLvMsulsepaU0PpDOjsVkcLO
	 1e6wsViDJpaZgFOITBtrRANvYuDSBbwAPgV1srTWZlahnCXfP4xec8nNs7raCsy03q
	 9XzYDGXGJ/RNQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v9=203/3]=20xenpm:=20Add=20get-core-temp=20subcommand?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774884001337
Message-Id: <a41e6e2d-3aa8-4025-892a-632ffadd2e33@vates.tech>
To: "Anthony PERARD" <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, "Community Manager" <community.manager@xenproject.org>, "Jan Beulich" <jbeulich@suse.com>
References: <d7d0fa8ca02d59d34bd3be7ecfacd5c0376fafc0.1773671343.git.teddy.astie@vates.tech> <97e34958e8070ee8771157e5ece78e7db1308174.1773671343.git.teddy.astie@vates.tech> <acp14kg1WJKKwa_Z@l14>
In-Reply-To: <acp14kg1WJKKwa_Z@l14>
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.7a98e02100ce4a4da531b8a42863f51e?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260330:md
Date: Mon, 30 Mar 2026 15:20:02 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-42698a/1774884003-A2638112-FF0C2414/0/0
X-purgate-type: clean
X-purgate-size: 3714

Le 30/03/2026 =C3=A0 15:11, Anthony PERARD a =C3=A9crit=C2=A0:
> On Mon, Mar 16, 2026 at 02:34:09PM +0000, Teddy Astie wrote:
>> diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
>> index e4902d2e82..37f484b362 100644
>> --- a/tools/misc/xenpm.c
>> +++ b/tools/misc/xenpm.c
>> +static void get_core_temp(int argc, char *argv[])
>> +{
>> +    int temp =3D -1, cpu =3D -1;
>> +    unsigned int socket;
>> +    bool has_data =3D false;
>> +
>> +    if ( argc > 0 )
>> +        parse_cpuid(argv[0], &cpu);
>> +
>> +    if ( cpu !=3D -1 )
>> +    {
>> +        if ( !fetch_dts_temp(xc_handle, cpu, false, &temp) )
>> +            printf("CPU%d: %d=C2=B0C\n", cpu, temp);
>> +        else
>> +        {
>> +            fprintf(stderr, "Unable to fetch temperature (%d - %s)\n",
>> +                    errno, strerror(errno));
>> +            printf("No data\n");
> 
> What is this "no data" for? There's already two clues which says that
> there's nothing to print, the error message on stderr, and the non-zero
> exit value.
> 

The "no data" could be removed now that the information is transmitted 
differently.

>> +            exit(EXIT_FAILURE);
>> +        }
>> +        return;
>> +    }
>> +
>> +    /* Per socket measurement */
>> +    for ( socket =3D 0, cpu =3D 0; cpu < max_cpu_nr;
>> +          socket++, cpu +=3D physinfo.cores_per_socket * physinfo.threa=
ds_per_core )
>> +    {
>> +        if ( fetch_dts_temp(xc_handle, cpu, true, &temp) )
> 
> Here, you deal with the error return by fetch_dts_temp() first, then the
> success, but in the previous block (cpu=3Dall) you do the opposite. Also,
> here the success isn't even in the else part, but after. Could you
> choose one style to be consistent?
> 
> I think I prefer to deal with the error first, so like here.
> 

Looks good to me.

>> +        {
>> +            fprintf(stderr,
>> +                    "[Package%u] Unable to fetch temperature (%d - %s)\=
n",
>> +                    cpu, errno, strerror(errno));
>> +            continue;
> 
> If we got an error one one package, aren't we likely to got more error?
> Is it worth to keep trying on the next package?
> 
>> +        }
>> +
>> +        has_data =3D true;
>> +        printf("Package%u: %d=C2=B0C\n", socket, temp);
>> +    }
>> +
>> +    if ( has_data )
>> +        /* Avoid inserting a trailing line if we have nothing */
>> +        printf("\n");
>> +
>> +    for ( cpu =3D 0; cpu < max_cpu_nr; cpu +=3D physinfo.threads_per_co=
re )
>> +    {
>> +        if ( fetch_dts_temp(xc_handle, cpu, false, &temp) )
>> +        {
>> +            fprintf(stderr, "[CPU%d] Unable to fetch temperature (%d - =
%s)\n",
>> +                    cpu, errno, strerror(errno));
>> +            continue;
>> +        }
>> +
>> +        has_data =3D true;
>> +        printf("CPU%d: %d=C2=B0C\n", cpu, temp);
>> +    }
>> +
>> +    if ( !has_data )
>> +    {
>> +        printf("No data\n");
> 
> Another "no data".
> 

It could be removed as well.

---

I wonder if we can remove the "has_data" boolean by making any (aside 
package temperature if it's not supported) failure cause a 
exit(EXIT_FAILURE) instead ?

We lose the empty line between Package and CPU temperature though, as we 
need to add it only if package temperature exists.

>> +        exit(EXIT_FAILURE);
>> +    }
>> +}
>> +
> 
> Thanks,
> 
> 
> --
> Anthony Perard | Vates XCP-ng Developer
> 
> XCP-ng & Xen Orchestra - Vates solutions
> 
> web: https://vates.tech
> 
> 
> 



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Mar 30 15:34:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 15:34:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267830.1557307 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7EdC-0003CS-CT; Mon, 30 Mar 2026 15:34:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267830.1557307; Mon, 30 Mar 2026 15: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 1w7EdC-0003CL-9p; Mon, 30 Mar 2026 15:34:22 +0000
Received: by outflank-mailman (input) for mailman id 1267830;
 Mon, 30 Mar 2026 15:34:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7EdA-0003CE-MG
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 15:34:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7Ed8-004BIQ-Ss
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 17:34:18 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69ca97e5-2eae-0a2a0a5409dd-0a2a4506b698-42
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 17:34:18 +0200
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69ca97fa-3034-0a2a45060019-d155802fb8d1-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 17:34:18 +0200
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-486fe655187so60538045e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 08:34:18 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48727192012sm83775255e9.32.2026.03.30.08.34.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 08:34:17 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774884858; x=1775489658; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RpuvXpmUdHMn7YaX3pBXjxq/HVeiMQouQrOyLB0i8lo=;
        b=BzWJ6TaK4AcP9eby3ACGXP3VLQZW8w4I4Jgh3eUvFrgZDTv3Oj1Zlg26sVTw3rVG3H
         DgSWNyl/xwRnJGtkmx24uqnD1cA+rjML6+RehRsOLiHGxV3cl2bn9rsOiqSxGD/SIjmq
         uIVmLCdUJe/QOQtM+Dpd6nBkjqVV29aOqI4gnZ7YPitwewrZUudVGVtJF9I9vnme42U3
         1loDx3O3BDFK5XYW8EIEet/F8o2zFP++1czit1BTpcjAc4ZyYFiOogpFOdgPKmIowTWZ
         A6XnmTTrikjjcorvcpKHnPE4u9Tw5fpIb5KFaMxMNIfI2RCl4nQLIJCGj4QlITHSgqZj
         t93Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774884858; x=1775489658;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RpuvXpmUdHMn7YaX3pBXjxq/HVeiMQouQrOyLB0i8lo=;
        b=VG8VOnBBD+tj/gY6WTAk4YmI79lk3fKFNTqhBLI9Kl9W9/IN/9QntMjE5Z+9BiVG2Q
         u4k53QeG8r4KBCDx8e25IeP+1WJWv1ZtmsI0sBzJ+cXgRSz8Sfsx21U+EZJN/rpK0IpI
         QYbfy4B2KOQXjXDevkNwvELdzKrgsLKd0HNVqaemHVOgOGzf1Hg39+gdf4hq+Vc5Gtgv
         jZyP/ilIEC8Ws+eT1YPVRyWX25uOl7dEeMWPahemHeHKLOJhFQrz23rGHM+iCixM6btk
         7s5LNRFJq8L/uitVJIim7T28bGMLOZ5ZMHpfWqcVDf4Sba7dvdlUQY9VxJfJ0rep/efk
         KidA==
X-Forwarded-Encrypted: i=1; AJvYcCXm8lNtoVpmfTbcfaunIOT7iR7cbNOAQPiUd9hkEFjRfu0OTls6Kl0jv+QEf4qXPk/PHXNFoXdkMgo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx1nmTxtGYVPAQq6J0dH6DiEOHv2nLSM9fnFIOx04txBvU08+ZY
	2+PZ0Jryx3WwghryRrobtwLFberZwH26MVQnsuuWhRIzMPP1WRpc9APhpAJQ1TJjgQ==
X-Gm-Gg: ATEYQzygp2d/Z1nadah6BYRSyCNDwqkXHWalkrlPK/54TEHADTO2c2b2M5Ed2OSeUGw
	l82UnYxdtH38L9Yg2pcE0Q41v/NXRWrvocvUsZhDCx/YL0ZfWdAVxwuROSAML6emsuxBqBGjI5Q
	rbisXkpu6GZTw9LCgP7UQic3ANFdE+fMpe1IryWhmkQ+c86jR8oAAjZtc8FxCYaPyuo2eod//iu
	YUYh3sFqEfgBk4Sm+gV7kOyfQkCws6S7MDkBofhiVRkUMo/0TuvQDiKQaS3IAdM5PNQ444+9v1S
	DN+YvkRbS7/N9HgEBbnt1dbI/uEUVhqGLfZzdzi/iuR/a80M2gxjRl3KYeY/sxpa6geS0VyQOgY
	2qr6YO4P5D+X5Iz1SMintDhoSKVf0FPTJTIebKI88sJ3Y2UBvd9Wl/L2lFHYM/8irvkhuZ2zCg3
	QK4KUkE67HHcSJ6guLpvXhysHRjxJW+9GPcStwGq9tMXaE8Ypow1U1nW95fJQCmC/gvTAhxiqvU
	NnyiUTPGSMu6trUwnXW8K6sUA==
X-Received: by 2002:a05:600c:1f11:b0:480:1d0b:2d32 with SMTP id 5b1f17b1804b1-48727d638efmr226832975e9.12.1774884858153;
        Mon, 30 Mar 2026 08:34:18 -0700 (PDT)
Message-ID: <4a0f4313-2694-4986-810c-0f4eac191cef@suse.com>
Date: Mon, 30 Mar 2026 17:34:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 09/11] xen/riscv: introduce p2m_gpa_bits
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
 <775374eab7b9868b7cabe6c76fa1b7ac2f8466d8.1774281309.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: <775374eab7b9868b7cabe6c76fa1b7ac2f8466d8.1774281309.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1774884858-7B8991C2-8E16372B/0/0
X-purgate-type: clean
X-purgate-size: 2414

On 23.03.2026 17:29, Oleksii Kurochko wrote:
> p2m_gpa_bits is used by common/device-tree/domain-build.c thereby when
> CONFIG_DOMAIN_BUILD_HELPERS=y it is necessary to have p2m_gpa_bits properly
> defined as it is going to be used to find unused regions.
> 
> Introduce default_gstage_mode to have ability to limit p2m_gpa_bits before
> p2m_init() is being called as it will be too late.

This is a somewhat strange way of describing things. Of course you want to
establish globals before doing any per-domain setup.

> Limit p2m_gpa_bits in guest_mm_init() as it could be that default G-stage
> MMU mode uses less VA wide bits than IOMMU,

How does a VA come into play here? And what is "less VA wide bits"?

> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -51,6 +51,24 @@ static struct gstage_mode_desc __ro_after_init max_gstage_mode = {
>      .name = "Bare",
>  };
>  
> +static struct gstage_mode_desc __ro_after_init default_gstage_mode = {
> +    .mode = HGATP_MODE_SV39X4,
> +    .paging_levels = 2,
> +    .name = "Sv39x4",
> +};
> +
> +/*
> + * Set to the maximum configured support for GPA bits, so the number of GPA
> + * bits can be restricted by an external entity (e.g. IOMMU) and the
> + * restriction must happen before the call of guest_mm_init().

DYM before p2m_init()? Because you do the calculation in the named
function.

> + * The widest G-stage mode defined by the RISC-V specification is Sv57x4,
> + * which yields 59-bit GPAs: Sv57 maps 57-bit VAs onto 56-bit PAs (PADDR_BITS),
> + * and the G-stage "x4" extension widens the address space by a further 2 bits,
> + * hence PADDR_BITS + 1 + P2M_ROOT_EXTRA_BITS.
> + */

I fear I don't follow. I can't explain the +1 at all. And adding in
P2M_ROOT_EXTRA_BITS seems wrong too: Whatever the width of output of
guest paging _is_ the width of input to stage-2 paging. There's no way
for a guest to encode 2 extra bits.

> @@ -191,8 +209,13 @@ static void __init gstage_mode_detect(void)
>  
>  void __init guest_mm_init(void)
>  {
> +    unsigned int gpa_bits;
> +    unsigned int paging_levels = default_gstage_mode.paging_levels;

Deriving a global from a default, when ...

>      gstage_mode_detect();
>  
> +    ASSERT(default_gstage_mode.paging_levels <= max_gstage_mode.paging_levels);

... the default isn't the maximum possible, isn't going to fly.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 15:52:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 15:52:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267844.1557317 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Eu2-00068w-TU; Mon, 30 Mar 2026 15:51:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267844.1557317; Mon, 30 Mar 2026 15:51:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Eu2-00068p-Qe; Mon, 30 Mar 2026 15:51:46 +0000
Received: by outflank-mailman (input) for mailman id 1267844;
 Mon, 30 Mar 2026 15:51:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7Eu1-00068j-Co
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 15:51:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7Eu0-008o7d-As
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 17:51:44 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69ca9bfb-5cb7-0a2a0a5109dd-0a2a450aaa4e-44
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 17:51:44 +0200
Received: from [209.85.221.41] (helo=mail-wr1-f41.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69ca9c0f-1772-0a2a450a0019-d155dd29ad29-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 17:51:43 +0200
Received: by mail-wr1-f41.google.com with SMTP id
 ffacd0b85a97d-43cfd832155so804405f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 08:51:43 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf2580194sm18405238f8f.37.2026.03.30.08.51.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 08:51:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774885903; x=1775490703; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=p7XdhkhCDLZT0BfoxgMn+qGUvz4sfXzzYfX8Q9jHuq0=;
        b=eXAzCI7UInEl1Y5F4x1osN1AcEAeq1eoEjCFEa2sD86PoGUcPr1He6gN/R8sOrc1ig
         bF4Qf28ZBZYEZncvsGgJlOFtB+Qtze4fGSIifzHQ7yf6taeGzkeAU7yuppUwOaKD/+ZR
         trxw8jXpwx/kU4cA4g64+tl6pQjQFlaPcsuXTScYVkGIi7Ru3cJ0ji+P0XrjIxXZhUqb
         6ThvWhvxSxtP+RCxQ81NAqaDrkd8Hank9XRg975Yn7Th6DhDvgYiYmDBPbyuy85RE50G
         GIMjh5ICitD5RxIawUF1HjxbJb6UgBrXFI1jvVmnJm31VKnMhAyPTyYi79ieqBv/4Zpt
         s0BA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774885903; x=1775490703;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=p7XdhkhCDLZT0BfoxgMn+qGUvz4sfXzzYfX8Q9jHuq0=;
        b=f4eg44BVsg1JJs6Fo22/a4SVZ3JBqkmrPTpabqH0Se2czPJldMMwLL2OmqTh9rFnPh
         xwTx2AMpIndCqdZtb+55hRwkEMzjY3dVZHeXDDFCmPRb2qNHibAQfC+it/zU+G7qocOw
         CjViYLiLGj1h7DoWT86C64K5J087riIn1So1l0Nx4Uv/oe0YlN/WLKMTqH2S/0JZc2JY
         2ztnJGM2kV1jVunwlPBGw/XG3Xl9OQbg3DeuDa68KFzG9LgGmoCgjyMq/zOshM5ad6OV
         ejPEmwkhqzjKp0NEz+GxNQXZVIssGgjsQwESO05XCkNwlDLPJn6fiVg7AINm07KmczaV
         5l5A==
X-Forwarded-Encrypted: i=1; AJvYcCXd4dgPNIIo64udeWtjVGrY21oSFEQwpS5mrHvC+NQihN5oy6NnJ4REHzrWnmn6+miGUp+tZWydG5Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxzCMI7fdKNIenS+floqk+ujkuA7VcVrv3NfzZqgKNWK+niyCvW
	xFlT66+Dxj4+3Ro1ESCNGe4iRYmwq9XM6mS5WOFmO8e2v+mfRBKD4TZOpSN+8hCFkw==
X-Gm-Gg: ATEYQzyEsfCFqKaiNVdADJlR73PWPiYqXt2MA0116yTluyOQk1gFXUc7MV+LwIDkQbc
	WwcROYkb2Jb3ep4zM5ZrWQxPHd1BDhiBSUNN11oUUj2v8wAbC8x3tErCPJMWmHtu1sTZBgJQFYp
	6PG/i2NBxeq0j1kIwPmpP4am4jzpxdFV9qG0WQVZoOwrDscKu0QNYcRiTJlno7WXLtZIRdHTV4h
	vlVBkv3K0FCS4tSZ0gkn6/CHOCKMNrymIUFaHfOUrOFkwlXvlHJZLovCkXQ1jffvv7qvj57joyK
	UxTn7pwmAKrUo/+QZhUbxDUYEMP1j86oexYvlQfsm6tifIAQbZrtOZRJ6Mdt6Yrt03ddh/TfZU2
	KlzOCZOf05ACqfGAFu7Hg/yE5+l46Do4JM5x2sQM9b03zdSlbQ6JfdNnOhHM4fxmxUF6jTWexss
	8fn16fiw0bBCEsZ75mnxbUT+EA7RW7nOvQhGi0PNu81Cd0XkicyA0m++uSrTILVL1vRfvQgxhkJ
	uYhLTxdCVv81L8=
X-Received: by 2002:a05:6000:2406:b0:439:b59e:5e6a with SMTP id ffacd0b85a97d-43b9e9e8424mr22103610f8f.14.1774885903188;
        Mon, 30 Mar 2026 08:51:43 -0700 (PDT)
Message-ID: <1a3a316e-f0ea-4514-95d6-9813d6d5ca76@suse.com>
Date: Mon, 30 Mar 2026 17:51:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 10/11] xen/riscv: add definition of guest RAM banks
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.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.1774281309.git.oleksii.kurochko@gmail.com>
 <8278256f3d270b456d19cb9891b89b88a46548a5.1774281309.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: <8278256f3d270b456d19cb9891b89b88a46548a5.1774281309.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1774885903-CC5C6900-74052CC2/0/0
X-purgate-type: clean
X-purgate-size: 2770

On 23.03.2026 17:29, Oleksii Kurochko wrote:
> The dom0less solution uses defined RAM banks as compile-time constants,
> so introduce macros to describe guest RAM banks.
> 
> The reason for 2 banks is that there is typically always a use case for
> low memory under 4 GB, but the bank under 4 GB ends up being small because
> there are other things under 4 GB it can conflict with (interrupt
> controller, PCI BARs, etc.).

Fixed layouts like the one you suggest come with (potentially severe)
downsides. For example, what if more than 2Gb of MMIO space are needed
for non-64-bit BARs? Further, assuming that the space 4G...8G is what
you expect 64-bit BARs to be put into, what if there's a device with a
4G BAR? It'll eat up that entire space, requiring everything else to
fit in the 2G you reserve below 4G.

> So a second bank is added above that MMIO
> region (starting at 8 GiB) to provide the remaining RAM; the gap between
> the two banks also exercises code paths handling discontiguous memory.
> For Sv32 guests (34-bit GPA, 16 GiB addressable), bank0 provides 2 GB
> (2–4 GB) and the first 8 GB of bank1 (8–16 GB) is accessible.
> 
> Extended regions are useful for RISC-V: they could be used to provide a
> "space" for Linux to map grant mappings.
> 
> Despite the fact that for every guest MMU mode the GPA could be up
> to 56 bits wide (except Sv32 whose GPA is 34 bits), the combined size
> of both banks is limited to 1018 GB as it is more than enough for most
> use cases.

Okay, more memory can be made available by (later) adding an optional
3rd bank.

> --- a/xen/include/public/arch-riscv.h
> +++ b/xen/include/public/arch-riscv.h
> @@ -50,6 +50,22 @@ typedef uint64_t xen_ulong_t;
>  
>  #if defined(__XEN__) || defined(__XEN_TOOLS__)
>  
> +#define GUEST_RAM_BANKS   2
> +
> +/*
> + * The way to find the extended regions (to be exposed to the guest as unused
> + * address space) relies on the fact that the regions reserved for the RAM
> + * below are big enough to also accommodate such regions.
> + */
> +#define GUEST_RAM0_BASE   xen_mk_ullong(0x80000000) /* 2GB of low RAM @ 2GB */
> +#define GUEST_RAM0_SIZE   xen_mk_ullong(0x80000000)

Connecting this with my comment on the earlier patch regarding kernel, initrd,
and DTB fitting in bank 0: How's that going to work with a huge kernel and/or
initrd (I expect DTBs can't grow very large)?

> +#define GUEST_RAM1_BASE   xen_mk_ullong(0x0200000000) /* 1016 GB of RAM @ 8GB */
> +#define GUEST_RAM1_SIZE   xen_mk_ullong(0xFE00000000)
> +
> +#define GUEST_RAM_BANK_BASES   { GUEST_RAM0_BASE, GUEST_RAM1_BASE }
> +#define GUEST_RAM_BANK_SIZES   { GUEST_RAM0_SIZE, GUEST_RAM1_SIZE }

Why's this needed in the public header?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 16:17:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 16:17:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267860.1557341 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7FJB-0001R0-7J; Mon, 30 Mar 2026 16:17:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267860.1557341; Mon, 30 Mar 2026 16: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 1w7FJB-0001QG-1l; Mon, 30 Mar 2026 16:17:45 +0000
Received: by outflank-mailman (input) for mailman id 1267860;
 Mon, 30 Mar 2026 16:17:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <edwin.torok@citrix.com>) id 1w7FJA-0001MP-JH
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 16:17:44 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7FJ9-008sKR-VO
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 18:17:43 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <edwin.torok@citrix.com>)
 id 69caa21b-bab6-0a2a0a5309dd-0a2a4505958c-20
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 18:17:43 +0200
Received: from [160.101.131.8] (helo=na1pdmzitismtp01.tibco.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <edwin.torok@citrix.com>)
 id 69caa226-5aeb-0a2a45050019-a06583088046-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 18:17:43 +0200
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTPS id 9BB8841B6C96;
 Mon, 30 Mar 2026 12:17:07 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 2/5] CI: drop Ubuntu 16.04
Date: Mon, 30 Mar 2026 17:17:25 +0100
Message-ID: <587eb0701db6e5852e9628d0cb9db90250424c4a.1774886602.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <cover.1774886602.git.edwin.torok@citrix.com>
References: <cover.1774886602.git.edwin.torok@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1774887463-2149C488-4B51C207/0/0
X-purgate-type: clean
X-purgate-size: 2023

Ubuntu 16.04 is EoL on 2026-04-02.
It fails to build the emulator tests, probably due to a binutils that is too old:

```
gcc -m32 -march=i686 -DBUILD_ID -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wno-unused-but-set-variable -Wno-unused-local-typedefs -Werror -O2 -fomit-frame-pointer -D__XEN_INTERFACE_VERSION__=__XEN_LATEST_INTERFACE_VERSION__ -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -mno-tls-direct-seg-refs -fno-pie -fno-exceptions -fno-asynchronous-unwind-tables -ffreestanding -nostdinc -I/builds/xen-project/people/edwintorok/xen/tools/tests/x86_emulator/../../../tools/firmware/include -fno-stack-protector -g0 -D_16 -mpclmul -mssse3 -mpclmul -ffixed-xmm0 -Os -DVEC_SIZE=16 -c ssse3-pclmul.c
/tmp/cchhD6n5.s: Assembler messages:
/tmp/cchhD6n5.s:202: Error: junk at end of line, first unrecognized character is `{'
/tmp/cchhD6n5.s:203: Error: junk at end of line, first unrecognized character is `{'
/tmp/cchhD6n5.s:205: Error: junk at end of line, first unrecognized character is `{'
```

Same test passes on Ubuntu 18.04.

Note: the minimum version of binutils might have to be updated.
Ubuntu 16.04 had version 2.26.1, which satisfies the >= 2.25 requirement
in the README, and yet it failed as shown above.

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
---
 automation/gitlab-ci/build.yaml | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index b69bad9202..41914cf898 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -615,16 +615,6 @@ fedora-41-x86_64-gcc-debug:
   variables:
     CONTAINER: fedora:41-x86_64
 
-ubuntu-16.04-x86_64-gcc:
-  extends: .gcc-x86-64-build
-  variables:
-    CONTAINER: ubuntu:16.04-x86_64
-
-ubuntu-16.04-x86_64-gcc-debug:
-  extends: .gcc-x86-64-build-debug
-  variables:
-    CONTAINER: ubuntu:16.04-x86_64
-
 ubuntu-18.04-x86_64-gcc:
   extends: .gcc-x86-64-build
   variables:
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Mon Mar 30 16:17:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 16:17:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267859.1557335 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7FJA-0001P0-Um; Mon, 30 Mar 2026 16:17:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267859.1557335; Mon, 30 Mar 2026 16:17:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7FJA-0001Ot-Rt; Mon, 30 Mar 2026 16:17:44 +0000
Received: by outflank-mailman (input) for mailman id 1267859;
 Mon, 30 Mar 2026 16:17:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <edwin.torok@citrix.com>) id 1w7FJ9-0001Bl-Ab
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 16:17:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7FJ7-00C3GE-4l
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 18:17:42 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <edwin.torok@citrix.com>)
 id 69caa218-2eae-0a2a0a5409dd-0a2a450bb5da-32
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 18:17:42 +0200
Received: from [160.101.131.8] (helo=na1pdmzitismtp01.tibco.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <edwin.torok@citrix.com>)
 id 69caa225-ef63-0a2a450b0019-a0658308eac0-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 18:17:42 +0200
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTPS id CAD8141B6C80;
 Mon, 30 Mar 2026 12:17:05 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 1/5] README: update minimum make to 4.1
Date: Mon, 30 Mar 2026 17:17:24 +0100
Message-ID: <4bbe4e23abcd5b1b32204d391bdd593205b89201.1774886602.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <cover.1774886602.git.edwin.torok@citrix.com>
References: <cover.1774886602.git.edwin.torok@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1774887462-9A0B1112-A397F903/0/0
X-purgate-type: clean
X-purgate-size: 905

Using .DEFAULT_GOAL requires at least GNU make 3.81.
It was suggested to update make to match ~2015 era gcc/binutils, hence
4.1.

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
Suggested-by: Jan Beulich <jbeulich@suse.com>
Link: https://lore.kernel.org/xen-devel/c0ba57bb-0d86-4209-b019-daf8328b5205@suse.com/
---
 README | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README b/README
index 889a4ea906..af1f539d29 100644
--- a/README
+++ b/README
@@ -35,7 +35,7 @@ Second, there are a number of prerequisites for building a Xen source
 release. Make sure you have all the following installed, either by
 visiting the project webpage or installing a pre-built package
 provided by your OS distributor:
-    * GNU Make v3.80 or later
+    * GNU Make v4.1 or later
     * C compiler and linker:
       - For x86:
         - GCC 5.1 or later
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Mon Mar 30 16:17:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 16:17:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267858.1557326 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7FJ9-0001By-OH; Mon, 30 Mar 2026 16:17:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267858.1557326; Mon, 30 Mar 2026 16:17:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7FJ9-0001Br-L0; Mon, 30 Mar 2026 16:17:43 +0000
Received: by outflank-mailman (input) for mailman id 1267858;
 Mon, 30 Mar 2026 16:17:41 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <edwin.torok@citrix.com>) id 1w7FJ7-0001Bc-NH
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 16:17:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7FJ6-00Ey33-L7
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 18:17:40 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <edwin.torok@citrix.com>)
 id 69caa212-e002-0a2a0a5209dd-0a2a450cba5a-36
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 18:17:40 +0200
Received: from [160.101.131.8] (helo=na1pdmzitismtp01.tibco.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <edwin.torok@citrix.com>)
 id 69caa223-f93d-0a2a450c0019-a0658308eab6-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 18:17:40 +0200
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTPS id 7358541B69BC;
 Mon, 30 Mar 2026 12:17:03 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH v1 0/5] run unit tests in the CI
Date: Mon, 30 Mar 2026 17:17:23 +0100
Message-ID: <cover.1774886602.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1774887460-6D4B6734-EA63D5D6/0/0
X-purgate-type: clean
X-purgate-size: 1662

Currently the unit tests aren't run in the CI during the build.
Introduce a 'make check' rule that can run them all (in parallel if `-j`
is specified).

To make reading the CI output easier make's `-O` flag is used (which
buffers output per target, making it obvious which command failed).

TBD: what is the actual minimum version of binutils required by the
existing tests, because Ubuntu 16.04 with binutil 2.26.1 failed.
That version of Ubuntu is EoL in a few days, so it is dropped from the CI build step.
The actual containers and the xilinx-arm64 jobs are kept for now
(although these should be updated to use bionic).

A followup patch series will rearrange the unit test make rules,
so it is useful to test that all the unit tests worked both prior and
following that change on all supported platforms in the CI.

For convenience this series is also available as a git repository:
https://gitlab.com/xen-project/people/edwintorok/xen/-/tree/private/edvint/run-ci?ref_type=heads

Edwin Török (5):
  README: update minimum make to 4.1
  CI: drop Ubuntu 16.04
  tools/test: introduce a 'make check' rule
  automation/scripts/build: run unit tests in the CI
  automation/scripts/build: group command output from parallel jobs

 Makefile                        |  4 ++++
 README                          |  2 +-
 automation/gitlab-ci/build.yaml | 10 ----------
 automation/scripts/build        | 10 ++++++----
 tools/Makefile                  |  4 ++++
 tools/Rules.mk                  |  2 +-
 tools/tests/Makefile            | 20 +++++++++++++++++++-
 7 files changed, 35 insertions(+), 17 deletions(-)

-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Mon Mar 30 16:17:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 16:17:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267861.1557352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7FJD-0001rA-Bv; Mon, 30 Mar 2026 16:17:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267861.1557352; Mon, 30 Mar 2026 16:17:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7FJD-0001qx-8d; Mon, 30 Mar 2026 16:17:47 +0000
Received: by outflank-mailman (input) for mailman id 1267861;
 Mon, 30 Mar 2026 16:17:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <edwin.torok@citrix.com>) id 1w7FJC-0001qM-MM
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 16:17:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7FJC-00Ey33-2S
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 18:17:46 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <edwin.torok@citrix.com>)
 id 69caa20a-e002-0a2a0a5209dd-0a2a4506932c-46
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 18:17:45 +0200
Received: from [160.101.131.8] (helo=na1pdmzitismtp01.tibco.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <edwin.torok@citrix.com>)
 id 69caa229-3034-0a2a45060019-a0658308c6cc-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 18:17:45 +0200
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTPS id 48A5541B6C97;
 Mon, 30 Mar 2026 12:17:09 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 3/5] tools/test: introduce a 'make check' rule
Date: Mon, 30 Mar 2026 17:17:26 +0100
Message-ID: <aa855bc8e8721bd799c7699525b68d67430eb9cb.1774886602.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <cover.1774886602.git.edwin.torok@citrix.com>
References: <cover.1774886602.git.edwin.torok@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1774887465-83B9E1C2-3787F03A/0/0
X-purgate-type: clean
X-purgate-size: 2779

It runs all unit tests (those that do not require xenctrl) in parallel.
The for loop fragment from tools/Rules.mk is not used, because that
serializes make invocations in subdirectories (tested by inserting a
'sleep 5' into the 'run' rules).

There might be dependencies between directories in tools/,
but all tests are independent and can be built and run in parallel.

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
---
 Makefile             |  4 ++++
 tools/Makefile       |  4 ++++
 tools/Rules.mk       |  2 +-
 tools/tests/Makefile | 20 +++++++++++++++++++-
 4 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index 67b71ac3d4..ca7ec58c99 100644
--- a/Makefile
+++ b/Makefile
@@ -50,6 +50,10 @@ install: $(TARGS_INSTALL)
 .PHONY: build
 build: $(TARGS_BUILD)
 
+.PHONY: check
+check:
+	$(MAKE) -C tools check
+
 .PHONY: build-xen
 build-xen:
 	$(MAKE) -C xen build
diff --git a/tools/Makefile b/tools/Makefile
index 6ecf7c0da8..7f6c29965d 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -55,6 +55,10 @@ endif
 .PHONY: build all
 build all: subdirs-all
 
+.PHONY: check
+check:
+	$(MAKE) -C tests check
+
 .PHONY: install
 install:
 	$(INSTALL_DIR) -m 700 $(DESTDIR)$(XEN_DUMP_DIR)
diff --git a/tools/Rules.mk b/tools/Rules.mk
index d9b9c740e9..abb1cbd783 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -194,7 +194,7 @@ subdirs-all subdirs-clean subdirs-install subdirs-distclean subdirs-uninstall: .
 		$(MAKE) subdir-$(patsubst subdirs-%,%,$@)-$$subdir; \
 	done
 
-subdir-all-% subdir-clean-% subdir-install-% subdir-uninstall-%: .phony
+subdir-all-% subdir-clean-% subdir-install-% subdir-uninstall-% subdir-run-%: .phony
 	$(MAKE) -C $* $(patsubst subdir-%-$*,%,$@)
 
 subdir-distclean-%: .phony
diff --git a/tools/tests/Makefile b/tools/tests/Makefile
index 6477a4386d..d73a6d7cfb 100644
--- a/tools/tests/Makefile
+++ b/tools/tests/Makefile
@@ -17,5 +17,23 @@ ifneq ($(clang),y)
 SUBDIRS-$(CONFIG_X86) += x86_emulator
 endif
 
-.PHONY: all clean install distclean uninstall
+.PHONY: all clean install distclean uninstall check
 all clean distclean install uninstall: %: subdirs-%
+
+# Subset of SUBDIRS that do not depend on xenctrl
+# Thus these tests can be run in the CI directly,
+# or on the developer's machine.
+
+SUBDIRS_CHECK-y :=
+SUBDIRS_CHECK-y += domid
+SUBDIRS_CHECK-y += pdx
+SUBDIRS_CHECK-y += rangeset
+SUBDIRS_CHECK-y += vpci
+
+SUBDIRS_CHECK-$(CONFIG_X86) += cpu-policy
+ifneq ($(clang),y)
+SUBDIRS_CHECK-$(CONFIG_X86) += x86_emulator
+endif
+
+# Ensure tests can run in parallel, the for loop in ../Rules.mk would serialize them
+check: $(foreach subdir,$(SUBDIRS_CHECK-y),subdir-run-$(subdir))
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Mon Mar 30 16:17:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 16:17:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267862.1557362 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7FJF-000273-N6; Mon, 30 Mar 2026 16:17:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267862.1557362; Mon, 30 Mar 2026 16:17:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7FJF-00026r-Hx; Mon, 30 Mar 2026 16:17:49 +0000
Received: by outflank-mailman (input) for mailman id 1267862;
 Mon, 30 Mar 2026 16:17:48 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <edwin.torok@citrix.com>) id 1w7FJE-000205-4Y
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 16:17:48 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7FJD-008sKR-Go
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 18:17:47 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <edwin.torok@citrix.com>)
 id 69caa215-bab6-0a2a0a5309dd-0a2a45078ada-30
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 18:17:47 +0200
Received: from [160.101.131.8] (helo=na1pdmzitismtp01.tibco.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <edwin.torok@citrix.com>)
 id 69caa22a-fd74-0a2a45070019-a065830897da-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 18:17:47 +0200
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTPS id 2293D41B6C98;
 Mon, 30 Mar 2026 12:17:11 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 4/5] automation/scripts/build: run unit tests in the CI
Date: Mon, 30 Mar 2026 17:17:27 +0100
Message-ID: <8749dcae7962383993ecb27dacb2f6cfef9fe78e.1774886602.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <cover.1774886602.git.edwin.torok@citrix.com>
References: <cover.1774886602.git.edwin.torok@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1774887467-552B9303-9C68DE14/0/0
X-purgate-type: clean
X-purgate-size: 694

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
Link: https://lore.kernel.org/xen-devel/aa7V_nOG0ctnjxH3@macbook.local/
---
 automation/scripts/build | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/automation/scripts/build b/automation/scripts/build
index 359ee18444..26ffdf3350 100755
--- a/automation/scripts/build
+++ b/automation/scripts/build
@@ -107,6 +107,8 @@ else
     ./configure "${cfgargs[@]}"
     make -j$(nproc) dist
 
+    make -j$(nproc) check
+
     # Preserve artefacts
     # Note: Some smoke tests depending on finding binaries/xen on a full build
     # even though dist/ contains everything, while some containers don't even
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Mon Mar 30 16:17:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 16:17:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1267863.1557372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7FJH-0002Ml-64; Mon, 30 Mar 2026 16:17:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1267863.1557372; Mon, 30 Mar 2026 16: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 1w7FJH-0002Ma-0r; Mon, 30 Mar 2026 16:17:51 +0000
Received: by outflank-mailman (input) for mailman id 1267863;
 Mon, 30 Mar 2026 16:17:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <edwin.torok@citrix.com>) id 1w7FJF-00026i-IW
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 16:17:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7FJE-008sKR-Ux
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 18:17:48 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <edwin.torok@citrix.com>)
 id 69caa22b-bab6-0a2a0a5309dd-0a2a4506ab40-4
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 18:17:48 +0200
Received: from [160.101.131.8] (helo=na1pdmzitismtp01.tibco.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <edwin.torok@citrix.com>)
 id 69caa22b-3034-0a2a45060019-a0658308aeb8-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 18:17:48 +0200
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTPS id 8B93741B6C9C;
 Mon, 30 Mar 2026 12:17:12 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 5/5] automation/scripts/build: group command output from parallel jobs
Date: Mon, 30 Mar 2026 17:17:28 +0100
Message-ID: <0061ddf6e91e07a960c10dd2f44bdda18dd243b1.1774886602.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <cover.1774886602.git.edwin.torok@citrix.com>
References: <cover.1774886602.git.edwin.torok@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1774887468-801831C2-3AE34AA0/0/0
X-purgate-type: clean
X-purgate-size: 2011

Whenever 'make -j' is used, '-O' should be used too.
This ensures that output from parallel invocations of the compiler or
tests do not mix with each-other.
The downside is that make has to buffer the output and will only print
it when the command completes, which can add a noticable delay during
local development, but should have no impact on the CI.

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
---
 automation/scripts/build | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/automation/scripts/build b/automation/scripts/build
index 26ffdf3350..e30ac24e46 100755
--- a/automation/scripts/build
+++ b/automation/scripts/build
@@ -19,7 +19,7 @@ if [[ "${RANDCONFIG}" == "y" ]]; then
     # Append job-specific fixed configuration
     echo "${EXTRA_FIXED_RANDCONFIG}" >> xen/allrandom.config.tmp
 
-    make -j$(nproc) -C xen KCONFIG_ALLCONFIG=allrandom.config.tmp randconfig
+    make -j$(nproc) -O -C xen KCONFIG_ALLCONFIG=allrandom.config.tmp randconfig
 
     # RANDCONFIG implies HYPERVISOR_ONLY
     HYPERVISOR_ONLY="y"
@@ -34,7 +34,7 @@ else
         echo "${EXTRA_XEN_CONFIG}" >> xen/.config
     fi
 
-    make -j$(nproc) -C xen olddefconfig
+    make -j$(nproc) -O -C xen olddefconfig
 fi
 
 # Save the config file before building because build failure causes the script
@@ -64,7 +64,7 @@ if [[ "${CPPCHECK}" == "y" ]] && [[ "${HYPERVISOR_ONLY}" == "y" ]]; then
     cp xen/cppcheck-report/xen-cppcheck.txt xen-cppcheck.txt
 elif [[ "${HYPERVISOR_ONLY}" == "y" ]]; then
     # Xen-only build
-    make -j$(nproc) xen
+    make -j$(nproc) -O xen
 
     # Preserve artefacts
     collect_xen_artefacts
@@ -105,9 +105,9 @@ else
     fi
 
     ./configure "${cfgargs[@]}"
-    make -j$(nproc) dist
+    make -j$(nproc) -O dist
 
-    make -j$(nproc) check
+    make -j$(nproc) -O check
 
     # Preserve artefacts
     # Note: Some smoke tests depending on finding binaries/xen on a full build
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Mon Mar 30 16:29:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 16:29:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268030.1557379 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7FU8-0005Yb-2r; Mon, 30 Mar 2026 16:29:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268030.1557379; Mon, 30 Mar 2026 16: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 1w7FU8-0005YU-0A; Mon, 30 Mar 2026 16:29:04 +0000
Received: by outflank-mailman (input) for mailman id 1268030;
 Mon, 30 Mar 2026 16:29:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dakr@kernel.org>) id 1w7FU6-0005YO-HK
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 16:29:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7FU5-004L0x-Bn
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 18:29:01 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dakr@kernel.org>)
 id 69caa493-5cb7-0a2a0a5109dd-0a2a450c8b36-44
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 18:29:01 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <dakr@kernel.org>)
 id 69caa4cc-f93d-0a2a450c0019-ac6904feac1a-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 18:29:00 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 3C334600CB;
 Mon, 30 Mar 2026 16:28:59 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2732FC4CEF7;
 Mon, 30 Mar 2026 16:28:49 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:Subject:Cc:To:From:References:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774888138;
	bh=HnR3T8HyhR5zh3UidQc9tY5GP+iCNJ+9G4eesNsn66c=;
	h=Date:Subject:Cc:To:From:References:In-Reply-To:From;
	b=P/3XWocfTvHDzL/TvgnY90VGL4nSlLd5QBe5hsYLKubBK3nWHOJaPjPq5JQAaRhM8
	 iAGk5KjaD3ik9GNqL6YSdRdGeXxBgLs24zJtsj3e6fxOpDbi7ZZd8I/d1cyMypX8NE
	 2XOL2YHA8im3TC/6MZc4CKSvIWYdWZeBHcvNBDXSWRJJuejsAH9jaZzQRbryV+m5kG
	 lnPI2WxSgVXB97c4laa/t/vZgU3QAb4tmja9ypMEFSoxTNm4EFRWFco06IOLdeGzNC
	 AdWvpkXe36xoTq6sFQYDIMUXUgS6vorYizdKVDGjM2rmv+ZiFnuwAzo46ijHVV7DUf
	 PA+6jJae0BAbA==
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Mon, 30 Mar 2026 18:28:48 +0200
Message-Id: <DHG9BXUEUEU4.2DTNLE8Z61DKX@kernel.org>
Subject: Re: [PATCH 05/12] PCI: use generic driver_override infrastructure
Cc: "Russell King" <linux@armlinux.org.uk>, "Greg Kroah-Hartman"
 <gregkh@linuxfoundation.org>, "Rafael J. Wysocki" <rafael@kernel.org>,
 "Ioana Ciornei" <ioana.ciornei@nxp.com>, "Nipun Gupta"
 <nipun.gupta@amd.com>, "Nikhil Agarwal" <nikhil.agarwal@amd.com>, "K. Y.
 Srinivasan" <kys@microsoft.com>, "Haiyang Zhang" <haiyangz@microsoft.com>,
 "Wei Liu" <wei.liu@kernel.org>, "Dexuan Cui" <decui@microsoft.com>, "Long
 Li" <longli@microsoft.com>, "Bjorn Helgaas" <bhelgaas@google.com>, "Armin
 Wolf" <W_Armin@gmx.de>, "Bjorn Andersson" <andersson@kernel.org>, "Mathieu
 Poirier" <mathieu.poirier@linaro.org>, "Vineeth Vijayan"
 <vneethv@linux.ibm.com>, "Peter Oberparleiter" <oberpar@linux.ibm.com>,
 "Heiko Carstens" <hca@linux.ibm.com>, "Vasily Gorbik" <gor@linux.ibm.com>,
 "Alexander Gordeev" <agordeev@linux.ibm.com>, "Christian Borntraeger"
 <borntraeger@linux.ibm.com>, "Sven Schnelle" <svens@linux.ibm.com>, "Harald
 Freudenberger" <freude@linux.ibm.com>, "Holger Dengler"
 <dengler@linux.ibm.com>, "Mark Brown" <broonie@kernel.org>, "Michael S.
 Tsirkin" <mst@redhat.com>, "Jason Wang" <jasowang@redhat.com>, "Xuan Zhuo"
 <xuanzhuo@linux.alibaba.com>, =?utf-8?q?Eugenio_P=C3=A9rez?=
 <eperezma@redhat.com>, "Alex Williamson" <alex@shazbot.org>, "Juergen
 Gross" <jgross@suse.com>, "Stefano Stabellini" <sstabellini@kernel.org>,
 "Oleksandr Tyshchenko" <oleksandr_tyshchenko@epam.com>, "Christophe Leroy
 (CS GROUP)" <chleroy@kernel.org>, <linux-kernel@vger.kernel.org>,
 <driver-core@lists.linux.dev>, <linuxppc-dev@lists.ozlabs.org>,
 <linux-hyperv@vger.kernel.org>, <linux-pci@vger.kernel.org>,
 <platform-driver-x86@vger.kernel.org>, <linux-arm-msm@vger.kernel.org>,
 <linux-remoteproc@vger.kernel.org>, <linux-s390@vger.kernel.org>,
 <linux-spi@vger.kernel.org>, <virtualization@lists.linux.dev>,
 <kvm@vger.kernel.org>, <xen-devel@lists.xenproject.org>,
 <linux-arm-kernel@lists.infradead.org>, "Gui-Dong Han"
 <hanguidong02@gmail.com>
To: "Bjorn Helgaas" <helgaas@kernel.org>
From: "Danilo Krummrich" <dakr@kernel.org>
References: <20260324005919.2408620-6-dakr@kernel.org>
 <20260326180825.GA1330769@bhelgaas>
In-Reply-To: <20260326180825.GA1330769@bhelgaas>
X-purgate-ID: tlsNG-d25034/1774888141-6E0B0734-E2663AF9/0/0
X-purgate-type: clean
X-purgate-size: 1460

On Thu Mar 26, 2026 at 7:08 PM CET, Bjorn Helgaas wrote:
> On Tue, Mar 24, 2026 at 01:59:09AM +0100, Danilo Krummrich wrote:
>> When a driver is probed through __driver_attach(), the bus' match()
>> callback is called without the device lock held, thus accessing the
>> driver_override field without a lock, which can cause a UAF.
>>=20
>> Fix this by using the driver-core driver_override infrastructure taking
>> care of proper locking internally.
>>=20
>> Note that calling match() from __driver_attach() without the device lock
>> held is intentional. [1]
>>=20
>> Link: https://lore.kernel.org/driver-core/DGRGTIRHA62X.3RY09D9SOK77P@ker=
nel.org/ [1]
>> Reported-by: Gui-Dong Han <hanguidong02@gmail.com>
>> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=3D220789
>> Fixes: 782a985d7af2 ("PCI: Introduce new device binding path using pci_d=
ev.driver_override")
>> Signed-off-by: Danilo Krummrich <dakr@kernel.org>
>> ---
>>  drivers/pci/pci-driver.c           | 11 +++++++----
>>  drivers/pci/pci-sysfs.c            | 28 ----------------------------
>>  drivers/pci/probe.c                |  1 -
>>  include/linux/pci.h                |  6 ------
>
> For the above:
>
> Acked-by: Bjorn Helgaas <bhelgaas@google.com>
>
> "driver_override" is mentioned several places in
> Documentation/ABI/testing/sysfs-bus-*.  I assume this series doesn't
> change the behavior documented there?

Correct, none of this is altered.


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 16:32:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 16:32:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268038.1557389 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7FWw-000728-G6; Mon, 30 Mar 2026 16:31:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268038.1557389; Mon, 30 Mar 2026 16:31:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7FWw-000721-D7; Mon, 30 Mar 2026 16:31:58 +0000
Received: by outflank-mailman (input) for mailman id 1268038;
 Mon, 30 Mar 2026 16:31:57 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1w7FWv-00071t-EM
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 16:31:57 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7FWu-004nCd-QW
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 18:31:56 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69caa56f-bab6-0a2a0a5309dd-0a2a450388b4-28
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 18:31:56 +0200
Received: from [195.135.223.130] (helo=smtp-out1.suse.de)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jgross@suse.com>)
 id 69caa57c-1947-0a2a45030019-c387df82a4f2-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 18:31:56 +0200
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 4DB994D522;
 Mon, 30 Mar 2026 16:31: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 211514A0A2;
 Mon, 30 Mar 2026 16:31:56 +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 QcD9Bnylymm0WwAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 30 Mar 2026 16:31:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding"; dkim=pass header.s=susede1 header.d=suse.com header.i="@suse.com" header.h="From:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774888316; 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=cCmmnfsjsR1FfBOfPVTo9rY5b6iLiQ5Z5igoSN4IYdM=;
	b=a0ukubFl7Z3WCJVnh5jv+V2cuLge4x6EkE6WIHA9vjM8fBKItg6FEm4BGCkpA10/fK8K0C
	vYBaBUz66kk8PAe5TMCP78N1iBVy48GZAnsSctZ2dI+Guv5SAkyzM9MvCH7NjsvN9ElqUp
	EuW8uxwlR70WF+0AznRjPRhlajZ4jD8=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1774888316; 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=cCmmnfsjsR1FfBOfPVTo9rY5b6iLiQ5Z5igoSN4IYdM=;
	b=a0ukubFl7Z3WCJVnh5jv+V2cuLge4x6EkE6WIHA9vjM8fBKItg6FEm4BGCkpA10/fK8K0C
	vYBaBUz66kk8PAe5TMCP78N1iBVy48GZAnsSctZ2dI+Guv5SAkyzM9MvCH7NjsvN9ElqUp
	EuW8uxwlR70WF+0AznRjPRhlajZ4jD8=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH] tools/xenstored: remove unneeded check in create_node()
Date: Mon, 30 Mar 2026 18:31:53 +0200
Message-ID: <20260330163153.676464-1-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.80
X-Spam-Level: 
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)[-1.000];
	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)[imap1.dmz-prg2.suse.org:helo,suse.com:mid,suse.com:email];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCPT_COUNT_THREE(0.00)[4];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-purgate-ID: tlsNG-33051d/1774888316-EB48872C-F3D4C910/0/0
X-purgate-type: clean
X-purgate-size: 727

create_node() is called only for issued xenstore commands. This means
that the "conn" parameter is never NULL.

Remove checking whether "conn" is not NULL.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/xenstored/core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/xenstored/core.c b/tools/xenstored/core.c
index 4786a2a82e..34cb266e8a 100644
--- a/tools/xenstored/core.c
+++ b/tools/xenstored/core.c
@@ -1524,7 +1524,7 @@ static struct node *create_node(struct connection *conn, const void *ctx,
 	if (!node)
 		return NULL;
 
-	if (conn && conn->transaction)
+	if (conn->transaction)
 		ta_node_created(conn->transaction);
 
 	node->data = data;
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Mon Mar 30 17:39:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 17:39:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268069.1557461 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7GZl-0006d4-MO; Mon, 30 Mar 2026 17:38:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268069.1557461; Mon, 30 Mar 2026 17:38:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7GZl-0006cx-Jl; Mon, 30 Mar 2026 17:38:57 +0000
Received: by outflank-mailman (input) for mailman id 1268069;
 Mon, 30 Mar 2026 17:38:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dakr@kernel.org>) id 1w7GZj-0006cr-Tx
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 17:38:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7GZj-00HT9e-5l
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 19:38:55 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dakr@kernel.org>)
 id 69cab521-e002-0a2a0a5209dd-0a2a4507c428-18
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 19:38:54 +0200
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <dakr@kernel.org>)
 id 69cab52d-fd74-0a2a45070019-aceafc1fe2a4-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 19:38:54 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 9772E42A31;
 Mon, 30 Mar 2026 17:38:52 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 39967C2BCB5;
 Mon, 30 Mar 2026 17:38:43 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:From:Subject:Cc:To:References:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774892332;
	bh=/8RwifExta3hi9wb0UAvoCzja5DI/LlE9XUZDEKtDlU=;
	h=Date:From:Subject:Cc:To:References:In-Reply-To:From;
	b=S56YWHrxhwHLS+EfSzEoW6H9YreN8wrQZ/7HEDAWqAjDAvn6rNoi6jXsbwo3fyTXv
	 TjHIGPt2qRPbkCCC5yCfSjAbtAw6BzXCZXCaq/yn658JrR6/xBRJ7/mYaDQNBA9Pmv
	 wsEtOTKeR8oMh9VC6LyR87wz4W/9tT1+Zpl9oixkuOSdi9YZxoGPEs7WRJpEIUF6YP
	 QT3eMcBSThXdTkmokN7Q16p5we5dG5K2/LjDkgP9NUYvkxjgwB7vubbfIKhxuyu2dj
	 oq30Tych+FNSMtuze99IC0ZOa+AcROHbp3uZujJVXn+3TGN1ylZ7O8WH21Mk5oRMNX
	 /gBaIKRkeOGJg==
Content-Type: text/plain; charset=UTF-8
Date: Mon, 30 Mar 2026 19:38:41 +0200
Message-Id: <DHGATG6LJOM1.2AI7BYQ2O4DFU@kernel.org>
From: "Danilo Krummrich" <dakr@kernel.org>
Subject: Re: [PATCH 05/12] PCI: use generic driver_override infrastructure
Cc: "Russell King" <linux@armlinux.org.uk>, "Greg Kroah-Hartman"
 <gregkh@linuxfoundation.org>, "Rafael J. Wysocki" <rafael@kernel.org>,
 "Ioana Ciornei" <ioana.ciornei@nxp.com>, "Nipun Gupta"
 <nipun.gupta@amd.com>, "Nikhil Agarwal" <nikhil.agarwal@amd.com>, "K. Y.
 Srinivasan" <kys@microsoft.com>, "Haiyang Zhang" <haiyangz@microsoft.com>,
 "Wei Liu" <wei.liu@kernel.org>, "Dexuan Cui" <decui@microsoft.com>, "Long
 Li" <longli@microsoft.com>, "Bjorn Helgaas" <bhelgaas@google.com>, "Armin
 Wolf" <W_Armin@gmx.de>, "Bjorn Andersson" <andersson@kernel.org>, "Mathieu
 Poirier" <mathieu.poirier@linaro.org>, "Vineeth Vijayan"
 <vneethv@linux.ibm.com>, "Peter Oberparleiter" <oberpar@linux.ibm.com>,
 "Heiko Carstens" <hca@linux.ibm.com>, "Vasily Gorbik" <gor@linux.ibm.com>,
 "Alexander Gordeev" <agordeev@linux.ibm.com>, "Christian Borntraeger"
 <borntraeger@linux.ibm.com>, "Sven Schnelle" <svens@linux.ibm.com>, "Harald
 Freudenberger" <freude@linux.ibm.com>, "Holger Dengler"
 <dengler@linux.ibm.com>, "Mark Brown" <broonie@kernel.org>, "Michael S.
 Tsirkin" <mst@redhat.com>, "Jason Wang" <jasowang@redhat.com>, "Xuan Zhuo"
 <xuanzhuo@linux.alibaba.com>, =?utf-8?q?Eugenio_P=C3=A9rez?=
 <eperezma@redhat.com>, "Juergen Gross" <jgross@suse.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, "Oleksandr Tyshchenko"
 <oleksandr_tyshchenko@epam.com>, "Christophe Leroy (CS GROUP)"
 <chleroy@kernel.org>, <linux-kernel@vger.kernel.org>,
 <driver-core@lists.linux.dev>, <linuxppc-dev@lists.ozlabs.org>,
 <linux-hyperv@vger.kernel.org>, <linux-pci@vger.kernel.org>,
 <platform-driver-x86@vger.kernel.org>, <linux-arm-msm@vger.kernel.org>,
 <linux-remoteproc@vger.kernel.org>, <linux-s390@vger.kernel.org>,
 <linux-spi@vger.kernel.org>, <virtualization@lists.linux.dev>,
 <kvm@vger.kernel.org>, <xen-devel@lists.xenproject.org>,
 <linux-arm-kernel@lists.infradead.org>, "Danilo Krummrich"
 <dakr@kernel.org>, "Gui-Dong Han" <hanguidong02@gmail.com>
To: "Alex Williamson" <alex@shazbot.org>, "Jason Gunthorpe" <jgg@ziepe.ca>
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0
References: <20260324005919.2408620-1-dakr@kernel.org>
 <20260324005919.2408620-6-dakr@kernel.org>
In-Reply-To: <20260324005919.2408620-6-dakr@kernel.org>
X-purgate-ID: tlsNG-ef75cf/1774892334-4EAAD303-DB0ACEB9/0/0
X-purgate-type: clean
X-purgate-size: 1452

(Cc: Jason)

On Tue Mar 24, 2026 at 1:59 AM CET, Danilo Krummrich wrote:
> diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci=
_core.c
> index d43745fe4c84..460852f79f29 100644
> --- a/drivers/vfio/pci/vfio_pci_core.c
> +++ b/drivers/vfio/pci/vfio_pci_core.c
> @@ -1987,9 +1987,8 @@ static int vfio_pci_bus_notifier(struct notifier_bl=
ock *nb,
>  	    pdev->is_virtfn && physfn =3D=3D vdev->pdev) {
>  		pci_info(vdev->pdev, "Captured SR-IOV VF %s driver_override\n",
>  			 pci_name(pdev));
> -		pdev->driver_override =3D kasprintf(GFP_KERNEL, "%s",
> -						  vdev->vdev.ops->name);
> -		WARN_ON(!pdev->driver_override);
> +		WARN_ON(device_set_driver_override(&pdev->dev,
> +						   vdev->vdev.ops->name));

Technically, this is a change in behavior. If vdev->vdev.ops->name is NULL,=
 it
will trigger the WARN_ON(), whereas before it would have just written "(nul=
l)"
into driver_override.

I assume that vfio_pci_core drivers are expected to set the name in struct
vfio_device_ops in the first place and this code (silently) relies on this
invariant?

Alex, Jason: Should we keep this hunk above as is and check for a proper na=
me in
struct vfio_device_ops in vfio_pci_core_register_device() with a subsequent
patch?

>  	} else if (action =3D=3D BUS_NOTIFY_BOUND_DRIVER &&
>  		   pdev->is_virtfn && physfn =3D=3D vdev->pdev) {
>  		struct pci_driver *drv =3D pci_dev_driver(pdev);


From xen-devel-bounces@lists.xenproject.org Mon Mar 30 20:08:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 20:08:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268086.1557471 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Itr-0006zZ-Tk; Mon, 30 Mar 2026 20:07:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268086.1557471; Mon, 30 Mar 2026 20: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 1w7Itr-0006zS-Q2; Mon, 30 Mar 2026 20:07:51 +0000
Received: by outflank-mailman (input) for mailman id 1268086;
 Mon, 30 Mar 2026 20:07:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <val@invisiblethingslab.com>) id 1w7Itq-0006zM-HO
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 20:07:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7Itn-00CVw8-Pm
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 22:07:49 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <val@invisiblethingslab.com>)
 id 69cad7f5-bab6-0a2a0a5309dd-0a2a450bb2a0-18
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 22:07:49 +0200
Received: from [103.168.172.152] (helo=fhigh-a1-smtp.messagingengine.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <val@invisiblethingslab.com>)
 id 69cad814-ef63-0a2a450b0019-67a8ac98d4fb-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 22:07:49 +0200
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfhigh.phl.internal (Postfix) with ESMTP id D98F41400237;
 Mon, 30 Mar 2026 16:07:47 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-06.internal (MEProxy); Mon, 30 Mar 2026 16:07:47 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 30 Mar 2026 16:07:45 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm1 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1774901267; x=1774987667; bh=BOoZ4+1vDC
	orDNqLh55ozbf1TI816t8IDrbHJQudFlc=; b=J98PO7UciOPuDlbFOLxVr8brvv
	avsxrKqh5I5dda792C57PqhOrTwi6yElbJ6EcGm6wy2pv+yYzvHsrVWiZohtlWP7
	Q8sxa6C1khaJRaSGkalK0Zq1EUXWvg95zEi0HQnththWFTd8ZsgfstZDKhCLDLK+
	G8wHDCqmqyOg1twg4UXO6ehYjIgPuy4Frt0iWEvf3Xubtq2OgrS0qdDygs8NHaX+
	Eds3U+Qkq1anBmPAzIj/rtjU7C6F4mzo04VvwekrW+Bgq6gICNn2VaXWqqetcnOD
	jLzkvw/u0GKOyP8gcaym9P7nD4TihwS7XgiQEeNgO+o/0rNiat5WDqDvxa6Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:content-transfer-encoding:content-type
	:content-type:date:date:feedback-id:feedback-id:from:from
	:in-reply-to:in-reply-to:message-id:mime-version:references
	:reply-to:subject:subject:to:to:x-me-proxy:x-me-sender
	:x-me-sender:x-sasl-enc; s=fm1; t=1774901267; x=1774987667; bh=B
	OoZ4+1vDCorDNqLh55ozbf1TI816t8IDrbHJQudFlc=; b=f6ATStt55tAUXaiSF
	G7gf0ZjnYIGctHHHVSD+wkoL7MKPEth5YQ0Doy7AcTT4OWfL8y7hIkgWwm4I27OI
	PIhRCeZq778Gxx+SkPlKpblZdwcWsurEZlHpNoDD2J9RxbF5+pUUjYbXwFcei7Oh
	LxNh/qRLYAOqFQxzmtH13+JlH/UNd9LHjUrHBDkrTUC2HG5dltlZqNo1/Kl02/Ys
	0n26SXd8tzGisEaOsaxt90BTAIdIXLhDN4UuXBdywgWUvVX69SKsfUq5GSdWGjuA
	xiRdn2hP1c8fA/rAUQb091He9SPvb38KOSV3x2mzd6PgXOrjwFBjdzk41iV43lT+
	7FUmQ==
X-ME-Sender: <xms:E9jKaYdbX1Lkdh2HQfOiqiKutYDNC5y91lnSAJC_MrLXLeXq09rmIg>
    <xme:E9jKafL31T4Oqi-rZyw4LL92u3ErK_rjphXpqK3xVBzTayP44M9oBnJEbfcupUHyT
    5OdfooOcIfwRtL5IeskskbyCFEWAz5lnb791JdxOUpboSKTRF8>
X-ME-Received: <xmr:E9jKadwtdu5y-FQLqNnBEsQ2QCyVajtKhqYBrz_7y49NGbO7MZ-x8Oq472UpyMMSSA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeffeelledtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepkfffgggfuffvfhfhjggtgfesthekredttddvjeenucfhrhhomhepgggrlhcurfgr
    tghkvghtthcuoehvrghlsehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqne
    cuggftrfgrthhtvghrnhepvdevgeevheehtefggeehjefhfeetjeekgfejkeettdejkeeh
    heekvdffvdfhtefgnecuffhomhgrihhnpehkvghrnhgvlhdrohhrghenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehvrghlsehinhhvihhsihgs
    lhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepledpmhhouggvpehsmh
    htphhouhhtpdhrtghpthhtohepuggvmhhiohgsvghnohhurhesghhmrghilhdrtghomhdp
    rhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdroh
    hrghdprhgtphhtthhopegurhhiqdguvghvvghlsehlihhsthhsrdhfrhgvvgguvghskhht
    ohhprdhorhhgpdhrtghpthhtoheplhhinhhugidqmhhmsehkvhgrtghkrdhorhhgpdhrtg
    hpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtghomhdprhgtphhtthhopegrrhhirggu
    nhgvsegrrhhirggunhgvrdhsphgrtggvpdhrtghpthhtoheprghnughrvgifrdgtohhoph
    gvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopehjghhrohhsshesshhushgvrdgt
    ohhmpdhrtghpthhtohepthgvugguhidrrghsthhivgesvhgrthgvshdrthgvtghh
X-ME-Proxy: <xmx:E9jKadvk9tVbPIOJQo4UeUVAQqSW7D2yY69AzUbtpFCI47-zJ3TCSA>
    <xmx:E9jKaYAvp5ix4VXM8jtMTbOsl_5ciZfxEnmdwGmJVh_TaP22M5DTIw>
    <xmx:E9jKaXEgqHXU-zFlDd2o0DVAUDMkXdWg07uN2uBOaVkUBRVF3Y1ZjA>
    <xmx:E9jKaQCPjX_A0J4GXRS9f2EBu6KWzLYfYdftFprmCRXw3YArMqivNw>
    <xmx:E9jKaalk8FuQiVBwWWtayCwYnIELz1NFCF-M3O0m8g8l8GfazkJ8Jwnn>
Feedback-ID: i001e48d0:Fastmail
Message-ID: <0bbf0349-1006-485f-a2db-6c8b795b4242@invisiblethingslab.com>
Date: Mon, 30 Mar 2026 17:07:42 -0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Why memory lending is needed for GPU acceleration
To: Demi Marie Obenour <demiobenour@gmail.com>,
 Xen developer discussion <xen-devel@lists.xenproject.org>,
 dri-devel@lists.freedesktop.org, linux-mm@kvack.org,
 Jan Beulich <jbeulich@suse.com>, Ariadne Conill <ariadne@ariadne.space>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Juergen Gross <jgross@suse.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <84462c4b-7813-4ad1-aeb2-862ae4f3a627@gmail.com>
 <c38387fe-beef-4f50-b928-74f96b881b7a@gmail.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: <c38387fe-beef-4f50-b928-74f96b881b7a@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1774901269-A0807112-30D37F32/0/0
X-purgate-type: clean
X-purgate-size: 6344

Hi,

On 3/29/26 2:32 PM, Demi Marie Obenour wrote:
> On 3/24/26 10:17, Demi Marie Obenour wrote:
>> Here is a proposed design document for supporting mapping GPU VRAM
>> and/or file-backed memory into other domains.  It's not in the form of
>> a patch because the leading + characters would just make it harder to
>> read for no particular gain, and because this is still RFC right now.
>> Once it is ready to merge, I'll send a proper patch.  Nevertheless,
>> you can consider this to be
>>
>> Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
>>
>> This approach is very different from the "frontend-allocates"
>> approach used elsewhere in Xen.  It is very much Linux-centric,
>> rather than Xen-centric.  In fact, MMU notifiers were invented for
>> KVM, and this approach is exactly the same as the one KVM implements.
>> However, to the best of my understanding, the design described here is
>> the only viable one.  Linux MM and GPU drivers require it, and changes
>> to either to relax this requirement will not be accepted upstream.
> Teddy Astie (CCd) proposed a couple of alternatives on Matrix:
>
> 1. Create dma-bufs for guest pages and import them into the host.
>
>     This is a win not only for Xen, but also for KVM.  Right now, shared
>     (CPU) memory buffers must be copied from the guest to the host,
>     which is pointless.  So fixing that is a good thing!  That said,
>     I'm still concerned about triggering GPU driver code-paths that
>     are not tested on bare metal.

To expand on this: the reason cross-domain Wayland proxies have been 
doing this SHM copy dance was a deficiency in Linux UAPI. Basically, 
applications allocate shared memory using local mechanisms like memfd 
(and good old unlink-of-regular-file, ugh) which weren't compatible with 
cross-VM sharing. However udmabuf should basically solve it, at least 
for memfds. (I haven't yet investigated what happens with "unlinked 
regular files" yet but I don't expect anything good there, welp.)

But I have landed a patch in Linux that removes a silly restriction that 
tied dmabuf import into virtgpu to KMS-only mode:

https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=df4dc947c46bb9f80038f52c6e38cb2d40c10e50

And I have experimented with it and got a KVM-based VMM to successfully 
access and print guest memfd contents that were passed to the host via 
this mechanism. (Time to actually properly implement it into the full 
system..)

> 2. Use PASID and 2-stage translation so that the GPU can operate in
>     guest physical memory.
>     
>     This is also a win.  AMD XDNA absolutely requires PASID support,
>     and apparently AMD GPUs can also use PASID.  So being able to use
>     PASID is certainly helpful.
>
> However, I don't think either approach is sufficient for two reasons.
>
> First, discrete GPUs have dedicated VRAM, which Xen knows nothing about.
> Only dom0's GPU drivers can manage VRAM, and they will insist on being
> able to migrate it between the CPU and the GPU.  Furthermore, VRAM
> can only be allocated using GPU driver ioctls, which will allocate
> it from dom0-owned memory.
>
> Second, Certain Wayland protocols, such as screencapture, require programs
> to be able to import dmabufs.  Both of the above solutions would
> require that the pages be pinned.  I don't think this is an option,
> as IIUC pin_user_pages() fails on mappings of these dmabufs.  It's why
> direct I/O to dmabufs doesn't work.
>
> To the best of my knowledge, these problems mean that lending memory
> is the only way to get robust GPU acceleration for both graphics and
> compute workloads under Xen.  Simpler approaches might work for pure
> compute workloads, for iGPUs, or for drivers that have Xen-specific
> changes.  None of them, however, support graphics workloads on dGPUs
> while using the GPU driver the same way bare metal workloads do.
> […]
To recap, how virtio-gpu Host3d memory currently works with KVM is:

- the VMM/virtgpu receives a dmabuf over a socket 
(Wayland/D-Bus/whatever) and registers it internally with some resource 
ID that's passed to the guest;
- When the guest imports that resource, it calls 
VIRTIO_GPU_CMD_RESOURCE_MAP_BLOB to get a PRIME buffer that can be 
turned into a dmabuf fd;
- the VMM's handler for VIRTIO_GPU_CMD_RESOURCE_MAP_BLOB (referencing 
libkrun here) literally just calls mmap() on the host dmabuf, using the 
MAP_FIXED flag to place it correctly inside of the VMM process's 
guest-exposed VA region (configured via KVM_SET_USER_MEMORY_REGION);
- so any resource imported by the guest, even before guest userspace 
does mmap(), is mapped (as VM_PFNMAP|VM_IO) until the guest releases it.

So the generic kernel MM is out of the way, these mappings can't be 
paged out to swap etc. But accessing them may fault, as the comment for 
drm_gem_mmap_obj says:

  * Depending on their requirements, GEM objects can either
  * provide a fault handler in their vm_ops (in which case any accesses to
  * the object will be trapped, to perform migration, GTT binding, surface
  * register allocation, or performance monitoring), or mmap the buffer 
memory
  * synchronously after calling drm_gem_mmap_obj

It all "just works" in KVM because KVM's resolution of the guest's 
memory accesses tries to be literally equivalent to what's mapped into 
the userspace VMM process: hva_to_pfn_remapped explicitly calls 
fixup_user_fault and eventually gets to the GPU driver's fault handler.

Now for Xen this would be… painful,

but,

we have no need to replicate what KVM does. That's far from the only 
thing that can be done with a dmabuf.

The import-export machinery on the other hand actually does pin the 
buffers on the driver level, importers are not obligated to support 
movable buffers (move_notify in dma_buf_attach_ops is entirely optional).

Interestingly, there is already XEN_GNTDEV_DMABUF…

Wait, do we even have any reason at all to suspect 
that XEN_GNTDEV_DMABUF doesn't already satisfy all of our buffer-sharing 
requirements?


Thanks,
~val

P.S. while I have everyone's attention, can I get some eyes on:
https://lore.kernel.org/all/20251126062124.117425-1-val@invisiblethingslab.com/ 
?



From xen-devel-bounces@lists.xenproject.org Mon Mar 30 20:45:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 20:45:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268103.1557486 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7JUW-0003Z8-5P; Mon, 30 Mar 2026 20:45:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268103.1557486; Mon, 30 Mar 2026 20:45:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7JUV-0003Yb-Vs; Mon, 30 Mar 2026 20:45:43 +0000
Received: by outflank-mailman (input) for mailman id 1268103;
 Mon, 30 Mar 2026 20:45:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <edwin.torok@citrix.com>) id 1w7JUU-0003Vn-Ig
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 20:45:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7JUT-00FXeb-SJ
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 22:45:41 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <edwin.torok@citrix.com>)
 id 69cae0e8-2eae-0a2a0a5409dd-0a2a4502a576-12
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 22:45:41 +0200
Received: from [160.101.131.9] (helo=na1pdmzitismtp02.tibco.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <edwin.torok@citrix.com>)
 id 69cae0f4-63bb-0a2a45020019-a0658309ba84-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 22:45:41 +0200
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTPS id 1B952816F7A6;
 Mon, 30 Mar 2026 16:44:54 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: marcus.granado@citrix.com,
	=?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v1 1/2] tools/tests/migration: introduce migration functional and performance tests
Date: Mon, 30 Mar 2026 21:45:31 +0100
Message-ID: <a098c74f0ff51e55ca57d10a68b141107928e04d.1774903347.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <cover.1774903347.git.edwin.torok@citrix.com>
References: <cover.1774903347.git.edwin.torok@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1774903541-BDA9CDB8-473B162D/0/0
X-purgate-type: clean
X-purgate-size: 41210

Create a minimal guest that is localhost-migratable via
xc_domain_save/xc_domain_restore.
This only exercises the basics of a migration (no device emulators, no
page dirtying), but has already been useful at detecting bugs in an
upcoming migration improvement patches.

Fill the memory with a deterministic pattern (either the page's own
address, or a random value constructed from a fixed seed).
Regenerate the same pattern after migration (one page at a time),
and check whether it matches the expected pattern.

On a mismatch it prints a hexdump, and this can be useful to identify
whether the entire memory is corrupted, or whether the data is present,
but at a constant offset, and whether the entire memory is corrupted, or
just some particular pages.

To construct a somewhat more realistic scenario it also:
* inserts a gap of some non-streamable pages, by marking them as MMIO
* tests explicitly aligned userspace buffers
* tests explicitly unaligned userspace buffers (at a constant offset
  from an aligned one)

Each of these scenarios has been useful in finding and fixing bugs in
prototype optimization patches.

To distinguish bugs in memory mapping/copying from bugs in the migration
streaming code, it contains a separate test for foreign mapping, using
the same patterns test.
The code is generic, to allow introducing other forms of mapping/copying
in the future (e.g. foreign copy)

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
---
 tools/tests/Makefile                   |   1 +
 tools/tests/common/guests.c            |   1 +
 tools/tests/migration/.gitignore       |   1 +
 tools/tests/migration/Makefile         |  70 +++
 tools/tests/migration/memory.c         |   6 +
 tools/tests/migration/memory.h         |  92 ++++
 tools/tests/migration/patterns.c       |  76 +++
 tools/tests/migration/patterns.h       |  22 +
 tools/tests/migration/test-migration.c | 713 +++++++++++++++++++++++++
 tools/tests/migration/xen_patterns.c   |  92 ++++
 tools/tests/migration/xen_patterns.h   |  14 +
 11 files changed, 1088 insertions(+)
 create mode 100644 tools/tests/migration/.gitignore
 create mode 100644 tools/tests/migration/Makefile
 create mode 100644 tools/tests/migration/memory.c
 create mode 100644 tools/tests/migration/memory.h
 create mode 100644 tools/tests/migration/patterns.c
 create mode 100644 tools/tests/migration/patterns.h
 create mode 100644 tools/tests/migration/test-migration.c
 create mode 100644 tools/tests/migration/xen_patterns.c
 create mode 100644 tools/tests/migration/xen_patterns.h

diff --git a/tools/tests/Makefile b/tools/tests/Makefile
index 6477a4386d..d67b4e415f 100644
--- a/tools/tests/Makefile
+++ b/tools/tests/Makefile
@@ -4,6 +4,7 @@ include $(XEN_ROOT)/tools/Rules.mk
 SUBDIRS-y :=
 SUBDIRS-y += domid
 SUBDIRS-y += mem-claim
+SUBDIRS-y += migration
 SUBDIRS-y += paging-mempool
 SUBDIRS-y += pdx
 SUBDIRS-y += rangeset
diff --git a/tools/tests/common/guests.c b/tools/tests/common/guests.c
index a46ff2f68d..20acd9129e 100644
--- a/tools/tests/common/guests.c
+++ b/tools/tests/common/guests.c
@@ -53,6 +53,7 @@ void test_guest(struct xen_domctl_createdomain *c)
 
 void test_guests(void)
 {
+    xen_has_pv = 0;
     if ( xen_has_pv )
     {
         struct xen_domctl_createdomain c = {
diff --git a/tools/tests/migration/.gitignore b/tools/tests/migration/.gitignore
new file mode 100644
index 0000000000..619b2b4578
--- /dev/null
+++ b/tools/tests/migration/.gitignore
@@ -0,0 +1 @@
+test-migration
diff --git a/tools/tests/migration/Makefile b/tools/tests/migration/Makefile
new file mode 100644
index 0000000000..04f32a3b7b
--- /dev/null
+++ b/tools/tests/migration/Makefile
@@ -0,0 +1,70 @@
+XEN_ROOT=$(CURDIR)/../../..
+include $(XEN_ROOT)/tools/Rules.mk
+
+TARGET := test-migration
+TARGETS := $(TARGET)
+
+CFLAGS += $(CFLAGS_libxenctrl)
+CFLAGS += -Og -g -pthread
+
+LDFLAGS += $(LDLIBS_libxenctrl)
+LDFLAGS += $(LDLIBS_libxenguest)
+LDFLAGS += $(LDLIBS_libxentoollog)
+LDFLAGS += $(LDLIBS_libxenforeignmemory)
+LDFLAGS += $(LDLIBS_libxendevicemodel)
+LDFLAGS += -pthread -lrt
+
+$(TARGET): ../common/guests.o patterns.o xen_patterns.o memory.o
+
+# The fragment below can be eventually replaced with a shared rule:
+# include $(XEN_ROOT)/tools/tests/Rules.mk
+
+ifndef XEN_ROOT
+$(error XEN_ROOT is not defined)
+endif
+
+.PHONY: all
+all: $(TARGETS)
+.DEFAULT_GOAL: all
+
+.PHONY: run
+run: $(TARGETS)
+ifeq ($(CC),$(HOSTCC))
+	set -e;             \
+	for test in $? ; do \
+		./$$test ;  \
+	done
+else
+	$(warning HOSTCC != CC, will not run test)
+endif
+
+.PHONY: clean
+clean::
+	$(RM) -- *.o $(TARGETS) $(DEPS_RM)
+
+.PHONY: distclean
+distclean: clean
+	$(RM) -- *~
+
+.PHONY: install
+install: all
+	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
+	$(if $(TARGETS),$(INSTALL_PROG) $(TARGETS) $(DESTDIR)$(LIBEXEC)/tests)
+
+.PHONY: uninstall
+uninstall:
+	$(RM) -- $(addprefix $(DESTDIR)$(LIBEXEC)/tests/,$(TARGETS))
+
+CFLAGS += -D__XEN_TOOLS__
+CFLAGS += $(CFLAGS_xeninclude)
+CFLAGS += -I../common/
+
+%.o: Makefile
+
+$(TARGET): $(TARGET).o
+	$(CC) $^ -o $@ $(LDFLAGS) $(APPEND_LDFLAGS)
+
+$(TARGETS): $(XEN_ROOT)/tools/tests/common/tests.o
+
+-include $(DEPS_INCLUDE)
+
diff --git a/tools/tests/migration/memory.c b/tools/tests/migration/memory.c
new file mode 100644
index 0000000000..e29a32af5d
--- /dev/null
+++ b/tools/tests/migration/memory.c
@@ -0,0 +1,6 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#include "memory.h"
+
+#include <stddef.h>
+#include <stdint.h>
+
diff --git a/tools/tests/migration/memory.h b/tools/tests/migration/memory.h
new file mode 100644
index 0000000000..04ff88bf4d
--- /dev/null
+++ b/tools/tests/migration/memory.h
@@ -0,0 +1,92 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#include <assert.h>
+#include <errno.h>
+#include <stddef.h>
+#include <stdlib.h>
+
+#include <xen-tools/common-macros.h>
+#include <xenctrl.h>
+
+/* A variable with the register qualifier cannot have its address taken,
+ * and is therefore cannot alias any pointer.
+ * The variable may or may not get stored in a register.
+ * */
+#define noalias register
+
+/** a writable region of memory, together with its size
+ *
+ * Invariant: buf[i] is valid, for all 0 <= i < n
+ * */
+struct wbuffer {
+  size_t n;
+  void *buf;
+  void *allocated;
+};
+
+/** a readable region of memory */
+struct rbuffer {
+  const size_t n;
+  const void *const buf;
+};
+
+/** A writable region of memory out of an array.
+ * This could be stack allocated, or not, but it needs to have a lifetime
+ * at least as long as the returned struct wbuffer.
+ *
+ * @parm A the array
+ */
+#define WBUFFER_OF_ARRAY(A)                                                    \
+  ((struct wbuffer){.n = ARRAY_SIZE(A), .buf = (A), .allocated = NULL})
+
+/** Allocates an aligned region of memory
+ *
+ * @parm alignment the desired alignment of the memory region
+ * @parm n the size in bytes of the memory region
+ * @return a struct wbuffer of n bytes, and alignment. On failure buf is NULL
+ * and errno is set.
+ */
+static inline struct wbuffer wbuffer_aligned_alloc(size_t alignment, size_t n) {
+  struct wbuffer b = {.allocated = NULL, .n = n};
+  errno = posix_memalign(&b.allocated, alignment, n);
+  b.buf = b.allocated;
+  return b;
+}
+
+/** A page from a buffer
+ *
+ * @parm b a struct wbuffer, holding at least a page
+ * @parm page_index which page to return
+ * @return a wbuffer refering to the requested page
+ * */
+static inline struct wbuffer wbuffer_sub(const struct wbuffer b[1],
+                                         size_t page_index) {
+  assert(page_index <= (b->n >> XC_PAGE_SHIFT));
+  return (struct wbuffer){.n = XC_PAGE_SIZE,
+                          .buf = b->buf + (page_index << XC_PAGE_SHIFT),
+                          .allocated = NULL};
+}
+
+/** Frees the wbuffer if it was allocated.
+ *
+ * It is safe to call this even when WBUFFER_OF_ARRAY was used to construct it.
+ * It only frees memory allocated by wbuffer_aligned_alloc.
+ *
+ * @parm struct wbuffer to free
+ * */
+static inline void wbuffer_free(struct wbuffer b[1]) {
+  b->n = 0;
+  b->buf = NULL;
+  free(b->allocated);
+}
+
+/** A readable region of memory out of an array.
+ * This could be stack allocated, or not, but it needs to have a lifetime
+ * at least as long as the returned struct rbuffer.
+ *
+ * @parm A the array
+ */
+#define RBUFFER_OF_ARRAY(A) ((struct rbuffer){.n = ARRAY_SIZE(A), .buf = (A)})
+
+static inline struct rbuffer rbuffer_of_wbuffer(const struct wbuffer b[1]) {
+  return (struct rbuffer){.n = b->n, .buf = b->buf};
+}
diff --git a/tools/tests/migration/patterns.c b/tools/tests/migration/patterns.c
new file mode 100644
index 0000000000..6ea6d5e1f9
--- /dev/null
+++ b/tools/tests/migration/patterns.c
@@ -0,0 +1,76 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#include "patterns.h"
+
+#include <assert.h>
+#include <inttypes.h>
+#include <stdlib.h>
+#include <string.h>
+
+void pattern_fill(size_t n, char dest[n], enum pattern_kind kind, uint64_t seed)
+{
+    switch ( kind )
+    {
+    case PATTERN_RANDOM:
+        /* not thread safe */
+        srandom(seed);
+        long l;
+        assert(sizeof(l) <= n);
+        memcpy(dest, &seed, sizeof(seed));
+        for ( size_t i = sizeof(seed); i < n; i += sizeof(l) )
+        {
+            l = random();
+            memcpy(&dest[i], &l, sizeof(l));
+        }
+        return;
+    case PATTERN_ADDR:
+        assert(sizeof(seed) <= n);
+        for ( size_t i = 0; i < n; i += sizeof(seed), seed += sizeof(seed) )
+            memcpy(&dest[i], &seed, sizeof(seed));
+        return;
+    }
+}
+
+void pattern_dirty(size_t n, char dest[n], size_t iteration)
+{
+    if ( n > 2 * sizeof(iteration) )
+        memcpy(&dest[sizeof(iteration)], &iteration, sizeof(iteration));
+}
+
+int pattern_cmp(size_t n, const char src[n], char tmp[n],
+                enum pattern_kind kind, uint64_t seed, size_t iteration)
+{
+    pattern_fill(n, tmp, kind, seed);
+    if ( iteration )
+        pattern_dirty(n, tmp, iteration);
+    return memcmp(src, tmp, n);
+}
+
+void pattern_hexdump(size_t n, const char src[n], FILE *out)
+{
+    for ( size_t i = 0; i < n; i++ )
+        fprintf(out, " %02x", (uint8_t)src[i]);
+}
+
+#define HEXDUMP_LINE 8
+
+void pattern_hexdump_diff(size_t n, const char a[n], const char b[n], FILE *out)
+{
+    fprintf(out, "0x%lx bytes\n", n);
+    fprintf(out, " off:%*s | %*s\n", HEXDUMP_LINE * 3, "expected",
+            HEXDUMP_LINE * 3, "actual");
+    for ( size_t i = 0; i < n; i += HEXDUMP_LINE )
+    {
+        size_t remaining = n - i;
+        size_t len = remaining < HEXDUMP_LINE ? remaining : HEXDUMP_LINE;
+        if ( !memcmp(&a[i], &b[i], len) )
+            continue;
+        /* show expected | actual side-by-side,
+         * but only when they are actually different */
+        fprintf(out, "\n %03zx:", i);
+        pattern_hexdump(len, &a[i], out);
+        fprintf(out, " | ");
+        pattern_hexdump(len, &b[i], out);
+        fprintf(out, "\n");
+    }
+    fprintf(out,"\n");
+}
diff --git a/tools/tests/migration/patterns.h b/tools/tests/migration/patterns.h
new file mode 100644
index 0000000000..e7187c3775
--- /dev/null
+++ b/tools/tests/migration/patterns.h
@@ -0,0 +1,22 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#include <stddef.h>
+#include <stdint.h>
+#include <stdio.h>
+
+enum pattern_kind {
+    PATTERN_ADDR,
+    PATTERN_RANDOM
+};
+
+void pattern_fill(size_t n, char dest[n], enum pattern_kind kind,
+                  uint64_t seed);
+
+void pattern_dirty(size_t n, char dest[n], size_t iteration);
+
+int pattern_cmp(size_t n, const char src[n], char tmp[n],
+                enum pattern_kind kind, uint64_t seed, size_t iteration);
+
+void pattern_hexdump(size_t n, const char src[n], FILE *out);
+
+void pattern_hexdump_diff(size_t n, const char a[n], const char b[n],
+                          FILE *out);
diff --git a/tools/tests/migration/test-migration.c b/tools/tests/migration/test-migration.c
new file mode 100644
index 0000000000..b4dc87168f
--- /dev/null
+++ b/tools/tests/migration/test-migration.c
@@ -0,0 +1,713 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#include <err.h>
+#include <errno.h>
+#include <inttypes.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/mman.h>
+#include <sys/socket.h>
+#include <time.h>
+
+#include <assert.h>
+#include <xen-tools/common-macros.h>
+#include <xenctrl.h>
+#include <xenforeignmemory.h>
+#include <xengnttab.h>
+#include <xenguest.h>
+#include <xendevicemodel.h>
+
+#include "guests.h"
+#include "tests.h"
+#include "xen_patterns.h"
+
+/* a prime number, to ensure it is not aligned */
+#define UNALIGNED_OFFSET 1367
+#define SKIP_UNALIGNED 7
+
+static enum pattern_kind patterns[] = { PATTERN_ADDR, PATTERN_RANDOM };
+
+/** Map pages i, where
+ * 0 <= i < contigous_pages
+ * || contiguous_pages + skip_pages <= i < 2*contiguous_pages + skip_pages
+ * ||...
+ * For a total number of mapped pages total_pages.
+ *
+ * Invariants:
+ *  contiguous_pages + skip_pages <= total_pages
+ *  contiguous_pages > 0
+ *  total_pages % (contiguous_pages + skip_pages) == 0
+ *  offset < alignment
+ */
+static struct batching_scenario {
+    size_t contiguous_pages;
+    size_t skip_pages;
+    size_t total_pages;
+    size_t alignment; /* userspace buffer alignment in bytes */
+    size_t offset;    /* userspace buffer offset in bytes */
+} batching_scenarios[] = {
+    { 1,    0,              1,    XC_PAGE_SIZE, 0                }
+    /* basic scenario: single page, full alignment */
+    ,
+    { 1,    0,              1,    XC_PAGE_SIZE, UNALIGNED_OFFSET }
+    /* basic scenario: single page, unaligned (prime number offset) */
+    ,
+    { 2,    0,              2,    XC_PAGE_SIZE, 0                }
+    /* basic scenario: batch of 2 pages, aligned */
+    ,
+    { 2,    0,              2,    XC_PAGE_SIZE, UNALIGNED_OFFSET }
+    /* basic scenario: batch of 2 pages, unaligned */
+    ,
+    { 1,    1,              4,    XC_PAGE_SIZE, 0                }
+    /* basic scenario: batch of 4 pages, with gaps, aligned */
+    ,
+    { 1,    1,              4,    XC_PAGE_SIZE, UNALIGNED_OFFSET }
+    /* basic scenario: batch of 4 pages, with gaps, unaligned */
+    ,
+    { 1024, 0,              1024, XC_PAGE_SIZE, 0                }
+    /* typical migration batch */
+    ,
+    { 2,    SKIP_UNALIGNED, 1017, XC_PAGE_SIZE, 0                }
+    /* migration batch with gaps */
+};
+
+static void print_batching_scenario(const struct batching_scenario s[1])
+{
+    printf(
+        "%zu pages = (%zu + %zu /* skip */) + ... /* %zu times */, align %zu " "+ %zu\n",
+        s->total_pages, s->contiguous_pages, s->skip_pages,
+        s->total_pages / (s->contiguous_pages + s->skip_pages), s->alignment,
+        s->offset);
+    assert(s->contiguous_pages + s->skip_pages <= s->total_pages);
+    assert(!(s->total_pages % (s->contiguous_pages + s->skip_pages)));
+    assert(s->offset < s->alignment);
+    assert(s->contiguous_pages > 0);
+}
+
+/** Writes pages with a given write scenario, and reads/verifies them with a
+ * read scenario. The pages in the read scenario must be a subset of the pages
+ * in the write scenario.
+ */
+struct scenario {
+    struct batching_scenario write_scenario;
+    struct batching_scenario read_verify_scenario;
+};
+
+static void print_scenario(const struct scenario s[1])
+{
+    printf("Write scenario:");
+    print_batching_scenario(&s->write_scenario);
+    printf("Read/verify scenario:");
+    print_batching_scenario(&s->read_verify_scenario);
+    assert(s->read_verify_scenario.total_pages <=
+           s->write_scenario.total_pages);
+}
+
+#define TEST_PFN 0xde
+static size_t pfns_of_scenario(xen_pfn_t pfn_start, xen_pfn_t pfn_end, size_t n,
+                               xen_pfn_t pfns[n],
+                               const struct batching_scenario s[1])
+{
+    xen_pfn_t pfn = pfn_start;
+    size_t i;
+    for ( i = 0; i < n && pfn < pfn_end; )
+    {
+        assert(s->contiguous_pages > 0);
+        for ( size_t j = 0; j < s->contiguous_pages && pfn < pfn_end; j++ )
+        {
+            assert(i < n);
+            xen_pfn_t p = pfn++;
+            if (p != TEST_PFN)
+            pfns[i++] = p;
+        }
+        pfn += s->skip_pages;
+    }
+    return i;
+}
+
+struct buffer {
+    size_t n;
+    void *buf;
+    void *allocated;
+};
+
+typedef void (*scenario_callback)(struct buffer b[1], domid_t domid, size_t n,
+                                  xen_pfn_t pfns[n],
+                                  const struct batching_scenario s[1]);
+
+#define MAX_BATCH_SIZE 1024
+
+static void run_scenarios(scenario_callback write_begin,
+                          scenario_callback write_end,
+                          scenario_callback read_begin,
+                          scenario_callback read_end, domid_t domid,
+                          xen_pfn_t pfn_start, size_t nr_pages,
+                          size_t iterations)
+{
+    struct scenario s;
+    for ( size_t i = 0; i < 2 * ARRAY_SIZE(batching_scenarios) + 1; i++ )
+    {
+        if ( i < ARRAY_SIZE(batching_scenarios) )
+        {
+            s.write_scenario = batching_scenarios[i];
+        }
+        else
+        {
+            /* full memory */
+            s.write_scenario = (struct batching_scenario){
+                .contiguous_pages = nr_pages,
+                .skip_pages = 0,
+                .total_pages = nr_pages,
+                .alignment = XC_PAGE_SIZE * (XC_PAGE_SIZE / sizeof(void *)),
+                .offset = 0
+            };
+        }
+
+        if ( i < 2 * ARRAY_SIZE(batching_scenarios) )
+        {
+            s.read_verify_scenario =
+                batching_scenarios[i % ARRAY_SIZE(batching_scenarios)];
+        }
+        else
+        {
+            /* full memory */
+            s.read_verify_scenario = s.write_scenario;
+        }
+
+        print_scenario(&s);
+
+        xen_pfn_t wpfn = pfn_start, rpfn = pfn_start;
+        xen_pfn_t wpfn_end = pfn_start +
+                             MIN(nr_pages, s.write_scenario.total_pages);
+        xen_pfn_t rpfn_end = pfn_start +
+                             MIN(nr_pages, s.read_verify_scenario.total_pages);
+        xen_pfn_t wpfns[MAX_BATCH_SIZE], rpfns[MAX_BATCH_SIZE];
+
+        while ( wpfn < wpfn_end || rpfn < rpfn_end )
+        {
+            size_t wbatch = min(ARRAY_SIZE(wpfns), wpfn_end - wpfn);
+            if ( wbatch > 0 )
+                wbatch = pfns_of_scenario(wpfn, wpfn + wbatch, wbatch, wpfns,
+                                          &s.write_scenario);
+            if ( wbatch > 0 )
+                wpfn = wpfns[wbatch - 1] + s.write_scenario.skip_pages + 1;
+            size_t rbatch = min(ARRAY_SIZE(rpfns), rpfn_end - rpfn);
+            if ( rbatch > 0 )
+                rbatch = pfns_of_scenario(rpfn, rpfn + rbatch, rbatch, rpfns,
+                                          &s.read_verify_scenario);
+            if ( rbatch > 0 )
+                rpfn = rpfns[rbatch - 1] + s.read_verify_scenario.skip_pages +
+                       1;
+
+            for ( size_t i = 0; i < ARRAY_SIZE(patterns); i++ )
+            {
+                /* dirty won't work with copy! we don't have the old buffer */
+                for ( size_t iteration = 0; iteration < 1; iteration++ )
+                {
+                    const enum pattern_kind kind = patterns[i];
+                    if ( wbatch > 0 )
+                    {
+                        struct buffer wb = { .n = 0, .buf = NULL };
+                        // printf("write_begin()\n");
+                        write_begin(&wb, domid, wbatch, wpfns,
+                                    &s.write_scenario);
+                        if ( iteration )
+                            xen_dirty_pages(wb.n, wb.buf, iteration);
+                        else
+                        {
+                            xen_pattern_fill(wb.n, wb.buf, kind, domid, wbatch,
+                                             wpfns);
+                        }
+                        // printf("write_end()\n");
+                        write_end(&wb, domid, wbatch, wpfns, &s.write_scenario);
+                        assert(!wb.buf);
+                    }
+
+                    if ( rbatch > 0 )
+                    {
+                        struct buffer rb = { .n = 0, .buf = NULL };
+                        // printf("read_begin()\n");
+                        read_begin(&rb, domid, rbatch, rpfns,
+                                   &s.read_verify_scenario);
+                        xen_pattern_check(rb.n, rb.buf, kind, domid, rbatch,
+                                          rpfns, iteration);
+                        // printf("read_end()\n");
+                        read_end(&rb, domid, rbatch, rpfns,
+                                 &s.read_verify_scenario);
+                        assert(!rb.buf);
+                    }
+                }
+            }
+        }
+    }
+}
+
+static xenforeignmemory_handle *fmem;
+struct xendevicemodel_handle *xdm;
+
+
+static void xfm_map_prot(int prot, struct buffer b[1], domid_t domid, size_t n,
+                         xen_pfn_t pfns[n])
+{
+    int *errs = malloc(n * sizeof(*errs));
+    assert(errs);
+
+    assert(fmem);
+    b->n = n * XC_PAGE_SIZE;
+    b->buf = xenforeignmemory_map(fmem, domid, prot, n, pfns, errs);
+    if ( !b->buf )
+        err(1, "xenforeignmemory_map(domid:%u, pages: %zu) failed: %d - %s",
+            domid, n, errno, strerror(errno));
+    for ( size_t i = 0; i < n; i++ )
+        if ( errs[i] )
+            err(1, "xenforeignmemory_map(%u).err[%zu]: %d - %s", domid, i,
+                -errs[i], strerror(-errs[i]));
+    free(errs);
+}
+
+static void xfm_map_write(struct buffer b[1], domid_t domid, size_t n,
+                          xen_pfn_t pfns[n],
+                          const struct batching_scenario s[1])
+{
+    xfm_map_prot(PROT_WRITE, b, domid, n, pfns);
+}
+
+static void xfm_map_read(struct buffer b[1], domid_t domid, size_t n,
+                         xen_pfn_t pfns[n], const struct batching_scenario s[1])
+{
+    xfm_map_prot(PROT_READ, b, domid, n, pfns);
+}
+
+static void xfm_unmap(struct buffer b[1], domid_t domid, size_t n,
+                      xen_pfn_t pfns[n], const struct batching_scenario s[1])
+{
+    assert(b->buf);
+    assert(fmem);
+    if ( xenforeignmemory_unmap(fmem, b->buf, b->n / XC_PAGE_SIZE) )
+        err(1, "xenforeignmemory_unmap(%u, %p): %d - %s", domid, b->buf, errno,
+            strerror(errno));
+    b->buf = NULL;
+}
+
+static void test_foreign_map_unmap(domid_t domid, xen_pfn_t pfn, uint8_t fill)
+{
+    char page[XC_PAGE_SIZE];
+    void *mapping = xenforeignmemory_map(fmem, domid, PROT_WRITE, 1, &pfn,
+                                         NULL);
+    // printf("%p = xenforeignmemory_map(%u, PROT_WRITE, PFN %zu)\n", mapping,
+    //        domid, pfn);
+    if ( !mapping )
+        err(1,
+            "xenforeignmemory_map(domid:%u, PROT_WRITE, %zu) failed: %d - %s",
+            domid, pfn, errno, strerror(errno));
+    memset(mapping, fill, XC_PAGE_SIZE);
+    memset(page, fill, sizeof(page));
+    // printf("memset(%p, 0x%02x, %zu)\n", page, fill, sizeof(page));
+    xenforeignmemory_unmap(fmem, mapping, 1);
+
+    mapping = xenforeignmemory_map(fmem, domid, PROT_READ, 1, &pfn, NULL);
+    // printf("%p = xenforeignmemory_map(%u, PROT_READ, PFN %zu)\n", mapping,
+    //        domid, pfn);
+    if ( !mapping )
+        err(1, "xenforeignmemory_map(domid:%u, READ, %zu) failed: %d - %s",
+            domid, pfn, errno, strerror(errno));
+    if ( memcmp(mapping, page, sizeof(page)) )
+    {
+        pattern_hexdump_diff(sizeof(page), page, mapping, stdout);
+        fail("write/read mismatch");
+    }
+    xenforeignmemory_unmap(fmem, mapping, 1);
+}
+
+struct test_migration {
+    pthread_t sender;
+    pthread_t receiver;
+    domid_t orig;
+    int fds[2];
+};
+
+#define TEST_ORDER 17
+#define TEST_SMALL_ORDER 11
+static xen_pfn_t wrpfns[1 << TEST_ORDER];
+
+static void test_migration_fill(domid_t domid, enum pattern_kind kind)
+{
+    struct buffer rb = { .n = 0, .buf = NULL };
+    struct batching_scenario scenario = { ARRAY_SIZE(wrpfns), 0,
+                                          ARRAY_SIZE(wrpfns), XC_PAGE_SIZE, 0 };
+    pfns_of_scenario(0, ARRAY_SIZE(wrpfns), ARRAY_SIZE(wrpfns), wrpfns,
+                     &scenario);
+
+    xfm_map_prot(PROT_WRITE, &rb, domid, ARRAY_SIZE(wrpfns), wrpfns);
+    xen_pattern_fill(rb.n, rb.buf, kind, domid, ARRAY_SIZE(wrpfns), wrpfns);
+    xfm_unmap(&rb, domid, ARRAY_SIZE(wrpfns), wrpfns, &scenario);
+}
+
+static void test_migration_check(domid_t domid, domid_t domid_check,
+                                 enum pattern_kind kind)
+{
+    struct buffer rb = { .n = 0, .buf = NULL };
+    struct batching_scenario scenario = { ARRAY_SIZE(wrpfns), 0,
+                                          ARRAY_SIZE(wrpfns), XC_PAGE_SIZE, 0 };
+    pfns_of_scenario(0, ARRAY_SIZE(wrpfns), ARRAY_SIZE(wrpfns), wrpfns,
+                     &scenario);
+
+    xfm_map_prot(PROT_READ, &rb, domid, ARRAY_SIZE(wrpfns), wrpfns);
+    xen_pattern_check(rb.n, rb.buf, kind, domid_check, ARRAY_SIZE(wrpfns),
+                      wrpfns, 0);
+    xfm_unmap(&rb, domid, ARRAY_SIZE(wrpfns), wrpfns, batching_scenarios);
+}
+
+static int test_migration_suspend(void *data)
+{
+    struct test_migration *m = data;
+    assert(m);
+    if ( xc_domain_shutdown(xch, m->orig, SHUTDOWN_suspend) )
+    {
+        fail("xc_domain_shutdown failed: %d - %s", errno, strerror(errno));
+        return 0;
+    }
+    struct xen_domctl_getdomaininfo info;
+    do
+    {
+        if ( xc_domain_getinfo_single(xch, m->orig, &info) )
+        {
+            fail("xc_domain_getinfo_single failed: %d - %s", errno,
+                 strerror(errno));
+            return 0;
+        }
+        if ( info.flags & XEN_DOMINF_shutdown )
+            break;
+        usleep(4000);
+    } while ( 1 );
+
+    /* create some non-migratable pages, but this confuses the rest of the tests */
+    if (xendevicemodel_set_mem_type(xdm, m->orig, HVMMEM_mmio_dm, TEST_PFN, 1))
+        fail("xendevicemodel_set_mem_type: %d - %s", errno, strerror(errno));
+
+    return 1;
+}
+
+static int test_migration_postcopy(void *data)
+{
+    return 0;
+}
+
+static int test_migration_checkpoint(void *data)
+{
+    return 0;
+}
+
+static int test_migration_wait_checkpoint(void *data)
+{
+    return 0;
+}
+
+static int test_switch_qemu_logdirty(uint32_t domid, unsigned enable,
+                                     void *data)
+{
+    return 0;
+}
+
+static int test_migration_restore_static_data_done(unsigned int missing,
+                                                   void *data)
+{
+    return 0;
+}
+
+static void test_migration_restore_results(xen_pfn_t store_gfn,
+                                           xen_pfn_t console_gfn, void *data)
+{}
+
+static struct timespec save_start, save_end, restore_end;
+
+static void print_diff(const char name[static 1], const struct timespec start[1], const struct timespec stop[1])
+{
+    double dt = (stop->tv_sec - start->tv_sec) + (stop->tv_nsec - start->tv_nsec) * 1e-9;
+    printf("Performance of '%s': %.9fs\n", name, dt);
+}
+
+static void *test_migration_receiver(void *arg)
+{
+    struct test_migration *m = arg;
+    assert(m);
+
+    struct restore_callbacks restore_callbacks = {
+        .static_data_done = test_migration_restore_static_data_done,
+        .suspend = test_migration_suspend,
+        .postcopy = test_migration_postcopy,
+        .checkpoint = test_migration_checkpoint,
+        .wait_checkpoint = test_migration_wait_checkpoint,
+        .restore_results = test_migration_restore_results,
+        .data = m
+    };
+
+    uint32_t domid = -1;
+    struct xen_domctl_createdomain c = {
+            .flags = XEN_DOMCTL_CDF_hvm,
+            .max_vcpus = 1,
+            .max_grant_frames = 1,
+            .grant_opts = XEN_DOMCTL_GRANT_version(1),
+            .arch = {
+#ifdef __x86_64__
+                .emulation_flags = XEN_X86_EMU_LAPIC,
+#endif
+            },
+        };
+    if ( physinfo.capabilities & XEN_SYSCTL_PHYSCAP_hap )
+        c.flags |= XEN_DOMCTL_CDF_hap;
+    int rc = xc_domain_create(xch, &domid, &c);
+    if ( rc )
+        err(1, "xc_domain_create");
+    rc = xc_domain_max_vcpus(xch, domid, 1);
+    if ( rc )
+        fail("xc_domain_max_vcpus(%d, 1) failed: %d - %s", domid, errno,
+             strerror(errno));
+    rc = xc_domain_setmaxmem(xch, domid, -1);
+    if ( rc )
+        err(1, "  Failed to set maxmem: %d - %s\n", errno, strerror(errno));
+
+    unsigned long store_mfn, console_mfn;
+    printf("xc_domain_restore(fd:%d, domid:%d)\n", m->fds[1], domid);
+    if ( xc_domain_restore(xch, m->fds[1], domid, 0, &store_mfn, 0, 1,
+                           &console_mfn, 0, XC_STREAM_PLAIN, &restore_callbacks,
+                           -1, 0) &&
+         errno != ENODEV )
+    {
+        fail("xc_domain_restore(domid: %d, fd: %d) failed: %d - %s", m->orig,
+             m->fds[1], errno, strerror(errno));
+    }
+    if ( clock_gettime(CLOCK_MONOTONIC, &restore_end) )
+    {
+        fail("clock_gettime failed: %d - %s", errno, strerror(errno));
+    }
+
+    test_migration_check(domid, m->orig, PATTERN_ADDR);
+
+    int fd = m->fds[1];
+    m->fds[1] = -1;
+    if ( close(fd) )
+        err(1, "close(%d)", fd);
+    rc = xc_domain_destroy(xch, domid);
+    if ( rc )
+        err(1, "xc_domain_destroy");
+    return NULL;
+}
+
+
+static void *test_migration_sender(void *arg)
+{
+    struct test_migration *m = arg;
+    assert(m);
+
+
+    struct save_callbacks save_callbacks = {
+        .suspend = test_migration_suspend,
+        .precopy_policy = XGS_POLICY_CONTINUE_PRECOPY,
+        .postcopy = test_migration_postcopy,
+        .checkpoint = test_migration_checkpoint,
+        .wait_checkpoint = test_migration_wait_checkpoint,
+        .switch_qemu_logdirty = test_switch_qemu_logdirty,
+        .data = m
+    };
+    printf("xc_domain_save(fd:%d, domid:%d)\n", m->fds[0], m->orig);
+
+    test_migration_fill(m->orig, PATTERN_ADDR);
+    test_migration_check(m->orig, m->orig, PATTERN_ADDR);
+
+    if ( clock_gettime(CLOCK_MONOTONIC, &save_start) )
+    {
+        fail("clock_gettime failed: %d - %s", errno, strerror(errno));
+    }
+
+    if ( xc_domain_save(xch, m->fds[0], m->orig, XCFLAGS_LIVE | XCFLAGS_DEBUG,
+                        &save_callbacks, XC_STREAM_PLAIN, -1) )
+    {
+        fail("xc_domain_save(domid: %d, fd: %d) failed: %d - %s", m->orig,
+             m->fds[0], errno, strerror(errno));
+    }
+    if ( clock_gettime(CLOCK_MONOTONIC, &save_end) )
+    {
+        fail("clock_gettime failed: %d - %s", errno, strerror(errno));
+    }
+    int fd = m->fds[0];
+    m->fds[0] = -1;
+    if ( close(fd) )
+        err(1, "close(%d)", fd);
+
+    /* we don't expect the migration to actually succeed, so resume original,
+     * so we can try again */
+    if ( xc_domain_resume(xch, m->orig, 0) )
+    {
+        fail("xc_domain_resume(domid: %d) failed: %d - %s", m->orig, errno,
+             strerror(errno));
+    }
+
+    return NULL;
+}
+
+void test_guest_domid(domid_t domid)
+{
+    int rc;
+
+    rc = xc_domain_max_vcpus(xch, domid, 1);
+    if ( rc )
+        return fail("xc_domain_max_vcpus(%d, 1) failed: %d - %s", domid, errno,
+                    strerror(errno));
+
+    rc = xc_domain_setmaxmem(xch, domid, -1);
+    if ( rc )
+        return fail("  Failed to set maxmem: %d - %s\n", errno,
+                    strerror(errno));
+
+    xen_pfn_t ram[] = { 0 };
+    unsigned extent_order = TEST_ORDER;
+    rc = xc_domain_populate_physmap_exact(xch, domid, ARRAY_SIZE(ram),
+                                          extent_order, 0, ram);
+    if ( rc )
+        return fail("  Failed to populate physmap domain: %d - %s\n", errno,
+                    strerror(errno));
+
+    printf("Allocated PFN: %lx\n", ram[0]);
+
+    fmem = xenforeignmemory_open(NULL, 0);
+    if ( !fmem )
+        return fail("xenforeignmemory_open: %d - %s", errno, strerror(errno));
+
+    xdm = xendevicemodel_open(NULL, 0);
+    if (!xdm)
+        return fail("xendevicemodel_open: %d - %s", errno, strerror(errno));
+
+    printf("\nbasic 1 page test:\n");
+    test_foreign_map_unmap(domid, ram[0], 0xc1);
+    test_foreign_map_unmap(domid, ram[0], domid);
+
+    printf("\nxenforeignmemory_map:\n");
+    run_scenarios(xfm_map_write, xfm_unmap, xfm_map_read, xfm_unmap, domid,
+                  ram[0], 1 << TEST_SMALL_ORDER, 2);
+
+    const char *repeat_str = getenv("REPEAT");
+    unsigned repeat = repeat_str ? atoi(repeat_str) : 1;
+
+    for (unsigned r = 0; r < repeat; r++) {
+        struct test_migration m;
+        if ( socketpair(AF_UNIX, SOCK_STREAM, 0, m.fds) < 0 )
+            err(1, "socketpair");
+
+        m.orig = domid;
+        rc = pthread_create(&m.sender, NULL, test_migration_sender, &m);
+        if ( rc )
+        {
+            errno = rc;
+            err(1, "pthread_create(%d) failed", 0);
+        }
+        rc = pthread_create(&m.receiver, NULL, test_migration_receiver, &m);
+        if ( rc )
+        {
+            errno = rc;
+            err(1, "pthread_create(%d) failed", 0);
+        }
+        rc = pthread_join(m.sender, NULL);
+        if ( rc )
+        {
+            errno = rc;
+            err(1, "pthread_join(%d) failed", 0);
+        }
+        rc = pthread_join(m.receiver, NULL);
+        if ( rc )
+        {
+            errno = rc;
+            err(1, "pthread_join(%d) failed", 0);
+        }
+        for ( size_t i = 0; i < 2; i++ )
+        {
+            const int fd = m.fds[i];
+            m.fds[i] = -1;
+            if ( fd >= 0 && close(fd) )
+                err(1, "close(%d)", fd);
+        }
+
+        printf("Migration complete: %u pages\n", 1 << TEST_ORDER);
+        print_diff("xc_domain_save", &save_start, &save_end);
+        print_diff("xc_domain_restore", &save_start, &restore_end);
+    }
+}
+
+int test_main(int argc, char *argv[argc + 1])
+{
+    printf("Migration tests\n");
+
+    fmem = xenforeignmemory_open(NULL, 0);
+    if ( !fmem )
+        fail("xenforeignmemory_open: %d - %s", errno, strerror(errno));
+    test_guest_init();
+    test_guests();
+
+    int domains = argc - 1;
+    if ( domains > 0 )
+    {
+        struct test_migration *migrations = calloc(domains,
+                                                   sizeof(*migrations));
+        if ( !migrations )
+            err(1, "calloc(%d)", domains);
+
+        for ( int j = 0; j < argc - 1; j++ )
+        {
+            struct test_migration *m = &migrations[j];
+            m->orig = atoi(argv[j + 1]);
+            if ( socketpair(AF_UNIX, SOCK_STREAM, 0, m->fds) < 0 )
+                err(1, "socketpair");
+            int rc = pthread_create(&m->sender, NULL, test_migration_sender, m);
+            if ( rc )
+            {
+                errno = rc;
+                err(1, "pthread_create(%d) failed", j);
+            }
+            rc = pthread_create(&m->receiver, NULL, test_migration_receiver, m);
+            if ( rc )
+            {
+                errno = rc;
+                err(1, "pthread_create(%d) failed", j);
+            }
+        }
+
+        for ( int j = 0; j < argc - 1; j++ )
+        {
+            struct test_migration *m = &migrations[j];
+            int rc = pthread_join(m->sender, NULL);
+            if ( rc )
+            {
+                errno = rc;
+                err(1, "pthread_join(%d) failed", j);
+            }
+            rc = pthread_join(m->receiver, NULL);
+            if ( rc )
+            {
+                errno = rc;
+                err(1, "pthread_join(%d) failed", j);
+            }
+            for ( size_t i = 0; i < 2; i++ )
+            {
+                const int fd = m->fds[i];
+                m->fds[i] = -1;
+                if ( fd >= 0 && close(fd) )
+                    err(1, "close(%d)", fd);
+            }
+        }
+    }
+    xenforeignmemory_close(fmem);
+    fmem = NULL;
+
+    return !!nr_failures;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/tools/tests/migration/xen_patterns.c b/tools/tests/migration/xen_patterns.c
new file mode 100644
index 0000000000..6f7835cb1c
--- /dev/null
+++ b/tools/tests/migration/xen_patterns.c
@@ -0,0 +1,92 @@
+#include "xen_patterns.h"
+#include "tests.h"
+
+#include <assert.h>
+#include <stdbool.h>
+#include <string.h>
+
+struct iter {
+    size_t nr_pages;
+    const xen_pfn_t *pfns;
+    size_t i;
+    size_t offset;
+    uint64_t seed;
+    domid_t domid;
+};
+
+static inline void iter_init(struct iter it[1], size_t n, domid_t domid,
+                             size_t nr_pages, const xen_pfn_t pfns[nr_pages])
+{
+    assert(!(n % XC_PAGE_SIZE));
+    assert(n >> XC_PAGE_SHIFT >= nr_pages);
+
+    memset(it, 0xcc, sizeof(*it));
+
+    it->nr_pages = nr_pages;
+    it->pfns = pfns;
+    it->offset = it->i = 0;
+    it->domid = domid;
+    it->seed = (((uint64_t)it->domid) << 48) | it->pfns[0];
+}
+
+static bool iter_done(const struct iter it[1])
+{
+    return it->i >= it->nr_pages;
+}
+
+static inline void iter_next(struct iter it[1])
+{
+    assert(!iter_done(it));
+    it->seed = (((uint64_t)it->domid) << 48) | it->pfns[++it->i];
+    it->offset += XC_PAGE_SIZE;
+}
+
+void xen_pattern_fill(size_t n, char dest[n], enum pattern_kind kind,
+                      domid_t domid, size_t nr_pages,
+                      const xen_pfn_t pfns[nr_pages])
+{
+    assert(dest);
+    assert(pfns);
+    struct iter it;
+    for ( iter_init(&it, n, domid, nr_pages, pfns); !iter_done(&it);
+          iter_next(&it) )
+    {
+        assert(it.offset < n);
+        assert(it.offset + XC_PAGE_SIZE <= n);
+        pattern_fill(XC_PAGE_SIZE, &dest[it.offset], kind, it.seed);
+    }
+}
+
+void xen_dirty_pages(size_t n, char dest[n], size_t iteration)
+{
+    assert(!(n % XC_PAGE_SIZE));
+    for ( size_t i = 0; i < n; i += XC_PAGE_SIZE )
+        pattern_dirty(n - i, &dest[i], iteration);
+}
+
+void xen_pattern_check(size_t n, const char src[n], enum pattern_kind kind,
+                       domid_t domid, size_t nr_pages,
+                       const xen_pfn_t pfns[nr_pages], size_t iteration)
+{
+    assert(src);
+    assert(pfns);
+    struct iter it;
+    char page[XC_PAGE_SIZE];
+    size_t failures = 0;
+
+    for ( iter_init(&it, n, domid, nr_pages, pfns); !iter_done(&it);
+          iter_next(&it) )
+    {
+        const char *s = &src[it.offset];
+        if ( !pattern_cmp(sizeof(page), s, page, kind, it.seed, iteration) )
+            continue;
+        if ( failures++ < 5 ) /* don't flood the output */ {
+            pattern_hexdump_diff(sizeof(page), page, s, stdout);
+            printf("PFN: 0x%lx\n", it.pfns[it.i]);
+        }
+    }
+
+    if ( failures > 0 )
+        fail("Corrupted %zu/%zu pages at iteration %zu, pattern %u\n", failures,
+             nr_pages, iteration, kind);
+}
diff --git a/tools/tests/migration/xen_patterns.h b/tools/tests/migration/xen_patterns.h
new file mode 100644
index 0000000000..1470235f07
--- /dev/null
+++ b/tools/tests/migration/xen_patterns.h
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#include "patterns.h"
+
+#include <xenctrl.h>
+
+void xen_pattern_fill(size_t n, char dest[n], enum pattern_kind kind,
+                      domid_t domid, size_t nr_pages,
+                      const xen_pfn_t pfns[nr_pages]);
+
+void xen_pattern_check(size_t n, const char src[n], enum pattern_kind kind,
+                       domid_t domid, size_t nr_pages,
+                       const xen_pfn_t pfns[nr_pages], size_t iteration);
+
+void xen_dirty_pages(size_t n, char dest[n], size_t iteration);
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Mon Mar 30 20:45:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 20:45:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268102.1557479 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7JUV-0003W1-RT; Mon, 30 Mar 2026 20:45:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268102.1557479; Mon, 30 Mar 2026 20:45:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7JUV-0003Vu-Ot; Mon, 30 Mar 2026 20:45:43 +0000
Received: by outflank-mailman (input) for mailman id 1268102;
 Mon, 30 Mar 2026 20:45:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <edwin.torok@citrix.com>) id 1w7JUT-0003Vh-VC
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 20:45:41 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7JUS-000FMV-Dp
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 22:45:40 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <edwin.torok@citrix.com>)
 id 69cae0b1-e002-0a2a0a5209dd-0a2a4509d484-34
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 22:45:40 +0200
Received: from [160.101.131.9] (helo=na1pdmzitismtp02.tibco.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <edwin.torok@citrix.com>)
 id 69cae0f2-e484-0a2a45090019-a0658309e9ae-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 22:45:40 +0200
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTPS id 5559F816F799;
 Mon, 30 Mar 2026 16:44:52 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: marcus.granado@citrix.com,
	=?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v1 0/2] Functional and performance tests for migration
Date: Mon, 30 Mar 2026 21:45:30 +0100
Message-ID: <cover.1774903347.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1774903540-624AFA73-ED89A249/0/0
X-purgate-type: clean
X-purgate-size: 3290

This is a test that can be run in Dom0, which constructs a minimal
guest, fills the memory with a deterministic pattern,
xc_domains_save/xc_domain_restore on 2 threads, and checks the pattern
at the end. On mismatch hexdumps of the portions that do not match are
printed.
Although the test is very simple it has already been very useful during
the development of 2 migration optimization patch sets (foreign copy and
migration compression, to be posted separately).

Of course the test is not a guarantee that migration works correctly,
there are lots of aspects that are not tested (interaction with device
emulators, more complicated memory layouts, the memory layout changing
during migration, etc.), but is a lot easier to debug when it goes wrong
than a real guest crashing (quite often even if you run 'memtest' in the
guest, it'll either crash while executing without printing where the mismatch
is -- if you corrupted the actual program, or continue undetected,
requiring many migration iterations to catch the bug).

It can also be used as a low-level performance test by specifying the
REPEAT environment variable.

Example usage from the tests/migration directory when working on
optimizations in libxenguest:
```
make -j$(nproc) -O -C ../../libs/guest && make -j$(nproc) -O && scp ../../libs/guest/libxenguest.so.4.22.0 ../../libs/guest/libxenguest.so.4.22 test-migration root@$HOST: && ssh root@$HOST env REPEAT=20 LD_LIBRARY_PATH=/root ./test-migration 2>/dev/null | grep 'Performance.*xc_domain_restore'
```
The output can be post-processed with `cut -f2 -d: |cut -f1 -ds`, and
then compared with `ministat` for example.

Currently this patchset depends on another that refactors the unit test
Makefiles. Once I've updated that patchset I'll send a rebased version
of this one.

Edwin Török (2):
  tools/tests/migration: introduce migration functional and performance
    tests
  tools/lib/call: cache up to 4 pages in hypercall bounce buffers

 tools/libs/call/buffer.c               |  28 +-
 tools/libs/call/core.c                 |   3 +-
 tools/libs/call/private.h              |   8 +-
 tools/tests/Makefile                   |   1 +
 tools/tests/common/guests.c            |   1 +
 tools/tests/migration/.gitignore       |   1 +
 tools/tests/migration/Makefile         |  70 +++
 tools/tests/migration/memory.c         |   6 +
 tools/tests/migration/memory.h         |  92 ++++
 tools/tests/migration/patterns.c       |  76 +++
 tools/tests/migration/patterns.h       |  22 +
 tools/tests/migration/test-migration.c | 713 +++++++++++++++++++++++++
 tools/tests/migration/xen_patterns.c   |  92 ++++
 tools/tests/migration/xen_patterns.h   |  14 +
 14 files changed, 1111 insertions(+), 16 deletions(-)
 create mode 100644 tools/tests/migration/.gitignore
 create mode 100644 tools/tests/migration/Makefile
 create mode 100644 tools/tests/migration/memory.c
 create mode 100644 tools/tests/migration/memory.h
 create mode 100644 tools/tests/migration/patterns.c
 create mode 100644 tools/tests/migration/patterns.h
 create mode 100644 tools/tests/migration/test-migration.c
 create mode 100644 tools/tests/migration/xen_patterns.c
 create mode 100644 tools/tests/migration/xen_patterns.h

-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Mon Mar 30 20:45:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 20:45:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268104.1557498 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7JUX-0003wL-EO; Mon, 30 Mar 2026 20:45:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268104.1557498; Mon, 30 Mar 2026 20:45:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7JUX-0003wE-BH; Mon, 30 Mar 2026 20:45:45 +0000
Received: by outflank-mailman (input) for mailman id 1268104;
 Mon, 30 Mar 2026 20:45:44 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <edwin.torok@citrix.com>) id 1w7JUV-0003Vt-Vq
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 20:45:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7JUV-00FXeb-AE
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 22:45:43 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <edwin.torok@citrix.com>)
 id 69cae0ca-2eae-0a2a0a5409dd-0a2a4505a6cc-32
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 22:45:43 +0200
Received: from [160.101.131.9] (helo=na1pdmzitismtp02.tibco.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <edwin.torok@citrix.com>)
 id 69cae0f6-5aeb-0a2a45050019-a0658309c8d0-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 22:45:43 +0200
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTPS id C9A68816F799;
 Mon, 30 Mar 2026 16:44:55 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; none
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: marcus.granado@citrix.com,
	=?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v1 2/2] tools/lib/call: cache up to 4 pages in hypercall bounce buffers
Date: Mon, 30 Mar 2026 21:45:32 +0100
Message-ID: <3600ed9b6af21c9b2fd9e5b7cf5947d344800854.1774903347.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <cover.1774903347.git.edwin.torok@citrix.com>
References: <cover.1774903347.git.edwin.torok@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1774903543-9FC88488-D05DDEAF/0/0
X-purgate-type: clean
X-purgate-size: 4802

During migration there are a lot of mmap/munmap calls,
because `xc_get_pfn_type_batch` exceeds the default hypercall bounce
buffer cache size, and needs to allocate every time it is called.

`munmap` is slow, especially in a PV Dom0 (takes an emulation fault),
so is best avoided.

Eventually it'd be good if the memory pool from  xmalloc_tlsf.c
was reused here, but for now make it handle the commonly encountered
sizes (so far up to 4 pages).

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
---
 tools/libs/call/buffer.c  | 28 ++++++++++++++++------------
 tools/libs/call/core.c    |  3 ++-
 tools/libs/call/private.h |  8 +++++---
 3 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/tools/libs/call/buffer.c b/tools/libs/call/buffer.c
index 2579b8c719..5601ee83ba 100644
--- a/tools/libs/call/buffer.c
+++ b/tools/libs/call/buffer.c
@@ -56,13 +56,13 @@ static void *cache_alloc(xencall_handle *xcall, size_t nr_pages)
     if ( xcall->buffer_current_allocations > xcall->buffer_maximum_allocations )
         xcall->buffer_maximum_allocations = xcall->buffer_current_allocations;
 
-    if ( nr_pages > 1 )
+    if ( nr_pages > ARRAY_SIZE(xcall->buffer_cache) )
     {
         xcall->buffer_cache_toobig++;
     }
-    else if ( xcall->buffer_cache_nr > 0 )
+    else if ( xcall->buffer_cache_nr[nr_pages-1] > 0 )
     {
-        p = xcall->buffer_cache[--xcall->buffer_cache_nr];
+        p = xcall->buffer_cache[nr_pages-1][--xcall->buffer_cache_nr[nr_pages-1]];
         xcall->buffer_cache_hits++;
     }
     else
@@ -84,10 +84,10 @@ static int cache_free(xencall_handle *xcall, void *p, size_t nr_pages)
     xcall->buffer_total_releases++;
     xcall->buffer_current_allocations--;
 
-    if ( nr_pages == 1 &&
-         xcall->buffer_cache_nr < BUFFER_CACHE_SIZE )
+    if ( nr_pages && nr_pages < ARRAY_SIZE(xcall->buffer_cache) &&
+         xcall->buffer_cache_nr[nr_pages-1] < BUFFER_CACHE_SIZE )
     {
-        xcall->buffer_cache[xcall->buffer_cache_nr++] = p;
+        xcall->buffer_cache[nr_pages-1][xcall->buffer_cache_nr[nr_pages-1]++] = p;
         rc = 1;
     }
 
@@ -108,17 +108,21 @@ void buffer_release_cache(xencall_handle *xcall)
     DBGPRINTF("current allocations:%d maximum allocations:%d",
               xcall->buffer_current_allocations,
               xcall->buffer_maximum_allocations);
-    DBGPRINTF("cache current size:%d",
-              xcall->buffer_cache_nr);
+    for ( unsigned i = 0; i < ARRAY_SIZE(xcall->buffer_cache_nr); ++i) {
+        DBGPRINTF("cache current size[%u pages]:%d", i+1,
+                xcall->buffer_cache_nr[i]);
+    }
     DBGPRINTF("cache hits:%d misses:%d toobig:%d",
               xcall->buffer_cache_hits,
               xcall->buffer_cache_misses,
               xcall->buffer_cache_toobig);
 
-    while ( xcall->buffer_cache_nr > 0 )
-    {
-        p = xcall->buffer_cache[--xcall->buffer_cache_nr];
-        osdep_free_pages(xcall, p, 1);
+    for ( unsigned i = 0; i < ARRAY_SIZE(xcall->buffer_cache_nr); ++i) {
+        while ( xcall->buffer_cache_nr[i] > 0 )
+        {
+            p = xcall->buffer_cache[i][--xcall->buffer_cache_nr[i]];
+            osdep_free_pages(xcall, p, 1);
+        }
     }
 
     cache_unlock(xcall);
diff --git a/tools/libs/call/core.c b/tools/libs/call/core.c
index 02c4f8e1ae..dd8877c1a0 100644
--- a/tools/libs/call/core.c
+++ b/tools/libs/call/core.c
@@ -14,6 +14,7 @@
  */
 
 #include <stdlib.h>
+#include <string.h>
 
 #include "private.h"
 
@@ -44,7 +45,7 @@ xencall_handle *xencall_open(xentoollog_logger *logger, unsigned open_flags)
     xentoolcore__register_active_handle(&xcall->tc_ah);
 
     xcall->flags = open_flags;
-    xcall->buffer_cache_nr = 0;
+    memset(xcall->buffer_cache_nr, 0, sizeof(xcall->buffer_cache_nr));
 
     xcall->buffer_total_allocations = 0;
     xcall->buffer_total_releases = 0;
diff --git a/tools/libs/call/private.h b/tools/libs/call/private.h
index 9c3aa432ef..7aca526abe 100644
--- a/tools/libs/call/private.h
+++ b/tools/libs/call/private.h
@@ -31,13 +31,15 @@ struct xencall_handle {
     Xentoolcore__Active_Handle tc_ah;
 
     /*
-     * A simple cache of unused, single page, hypercall buffers
+     * A simple cache of unused, small, hypercall buffers
+     * buffer_cache[i]'s size is (i-1) pages
      *
      * Protected by a global lock.
      */
 #define BUFFER_CACHE_SIZE 4
-    int buffer_cache_nr;
-    void *buffer_cache[BUFFER_CACHE_SIZE];
+#define BUFFER_CACHE_NRPAGES 4
+    int buffer_cache_nr[BUFFER_CACHE_NRPAGES];
+    void *buffer_cache[BUFFER_CACHE_NRPAGES][BUFFER_CACHE_SIZE];
 
     /*
      * Hypercall buffer statistics. All protected by the global
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Mon Mar 30 23:44:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 30 Mar 2026 23:44:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268197.1557507 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7MHN-0008MK-7R; Mon, 30 Mar 2026 23:44:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268197.1557507; Mon, 30 Mar 2026 23:44:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7MHN-0008MD-3d; Mon, 30 Mar 2026 23:44:21 +0000
Received: by outflank-mailman (input) for mailman id 1268197;
 Mon, 30 Mar 2026 23:44:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Volodymyr_Babchuk@epam.com>) id 1w7MHL-0008M7-Mk
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 23:44:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7MHK-00GyY1-3B
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:44:18 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Volodymyr_Babchuk@epam.com>)
 id 69cb0a58-e002-0a2a0a5209dd-0a2a4505a15c-44
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 01:44:18 +0200
Received: from [52.101.69.110]
 (helo=AM0PR83CU005.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Volodymyr_Babchuk@epam.com>)
 id 69cb0ad1-5aeb-0a2a45050019-3465456ec4f7-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 01:44:17 +0200
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DB9PR03MB9638.eurprd03.prod.outlook.com
 (2603:10a6:10:458::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Mon, 30 Mar
 2026 23:44:15 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3%7]) with mapi id 15.20.9745.027; Mon, 30 Mar 2026
 23:44:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xOMD4tdyg8yXt94AvoVH2zjR7pTYN/7mgu1RDMXKPrI4beSgeeUlWUSxfKQFOodu/XhUjn4EMYU3RVnFd/+7JELCzDKezcOLpOv318ashIS9i6iqsBXO0RTr3YBUEcKyrB7eeBrfsZigcYZKoV6nexjEiQR1gxfh5Wdn7DGHs66qDcPgpBuPTSHusNZwhgxf2Xo1Y544YXZw5KjoWhUbRxDn2i+7sQVWlK9c+c5ELT3ygTCqHnqpFfjMYtkGoLQ689D0rsjjBP+XaQQnqWsHghGugmmKqgEFxqsp7pOTB1dBFjiHd0/9uuILBFQKinCsNoOXo3ghD01+5SZBj4vBBA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8fPsvRapofhmAxW35fldnrYM5OVDRSI+lv6JF2LcqV4=;
 b=D9N519I/uIi+Zs0x7WxDz2pYH2otHSRQKCVQ0ZP5YLJlOQsgH030tMhaV8SLMjoaCLtNp1T2rqVxH2moJly39T4fJLC3onE3i8QQAfAMGKS49zO9T6CQZVAQXHHe9cR8/S6uOquVtlHJ35Lqlag+3XvlxNsbeTr9npXMz1BqwR/rjPc8VSEd1zOivVp6vHNEEO1bkZpd+MJLHYmKbbmGdq4spu3UWETsiQ4DiEZ1mRHM5fXkNmz29QPYD2kwncSHvanZJPsB9i8C+wcWNodA++xfSObRT++J+Loa4j9K1Ozj1dWskyEpXNA6VVD5wBSlCR4AckByTp9zaQKkNbxDSA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8fPsvRapofhmAxW35fldnrYM5OVDRSI+lv6JF2LcqV4=;
 b=ciXTC81WGIVxi7YoklsE105ZTofOcAC+D/md5R56QGtHF5LcunzB6QL2bRv7+Fd0sYPdZX7h2kbRGjVIRgQ3684be3toEpGmChaf9HU/n8GF5Uden5yx+RgKkafNhW4QKR0AiuZeKDHeLMOwAGS98BQTcRdMnm51bVqGblpLosXz+5dsy37j9g4IKGziTnKoWqapowLlB77uEFkX+3tFpCVty1xtD0kYYnZ230vZeNsDQGNYU5P+Tc455gVkmNiCn2HDgwrbT2fS1TaKFPHjFK3voVj48xEPVIjAMlcrU8a9PWCNgdZmWrELmCiVs9w8ymYOK++nSuJ84eGGVkZhIA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <Mykola_Kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH 1/4] xen/arm: its: collect quirk flags and honor
 dma-noncoherent
Thread-Topic: [PATCH 1/4] xen/arm: its: collect quirk flags and honor
 dma-noncoherent
Thread-Index: AQHcvEPlse85KJ7ml0OZmvGoi7I/KA==
Date: Mon, 30 Mar 2026 23:44:12 +0000
Message-ID: <87o6k4vq5x.fsf@epam.com>
References: <cover.1774431310.git.mykola_kvach@epam.com>
	<5b68fa0a8403ea60db3047f6505876bc03a41f3f.1774431310.git.mykola_kvach@epam.com>
	<87bjgcvul6.fsf@epam.com>
	<CAGeoDV87irnVf8k+Z2L6=k41p87N9O6DpLCFdkMwErzDpXB9KA@mail.gmail.com>
In-Reply-To:
 <CAGeoDV87irnVf8k+Z2L6=k41p87N9O6DpLCFdkMwErzDpXB9KA@mail.gmail.com>	(Mykola
 Kvach's message of "Wed, 25 Mar 2026 17:47:43 +0200")
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV1PR03MB10456:EE_|DB9PR03MB9638:EE_
x-ms-office365-filtering-correlation-id: 40d9ac21-3f0c-48e1-c74f-08de8eb63f84
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|42112799006|56012099003|22082099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 zwVwt7zg+3BorbOpKuKeSKqtMv3NVrErPNKz5QuX/zRL1agnn7+st80TjeA3Bsd931YEHw864xWCY9I0X/odDh/5aehHnCc0wjChC+2EBoE9bLLEftESyQnu72GW6oTHhdmcULAwkAGSb1oNl0qD94zZzNehHXqELDy7rtxeQXhkF4oZ184DtWhJG1BQyC1spC5hjDjtzxmoZOCfM2fiSGyooQIxiQuZIT0FNnFp/HW8OzDwBT6aXu0hsM60lYBCWASdlrLl6r1GcHOkbIRRAqJS0UiDgetWRwWI7QhKAUsetYdbyNnwrPZXzyIm7FO5MF8yy5cqVn3VCQd/+QKmZoLCXsXOAwX792MKe7OuiBVR8Enf9mFII74QmPRvrvXycFT5upOOaSuhUNcTBRCVn9xn8fkddpxi8kina3SAS8nAhnEp7KwkZSoQviWYMNFLI9j/c2tWqMuUkfQAmBS/CqRiF3nNNoBp5kx+ZJoTXmWq86lgLz2h9xas640ytFMc4agz3cmFC8WHis+dmpPq6O4+0045pWZMkUbZNer9ZFs3vsktO2W6F2noj1iSPaQ2/VtkAkG5ajbdMM+H2c/fybIz/e3IzAkCniORWnU4o1r/4GF0w3uJQpv1BNj0+nTZuoj+UcW5jk2ORdr1YVaahOcAAP0ILaFHWuqyU5PyphnnQirZPdy+/voBeLPvhGFg/XVV1X42+qTbunPhiINSxYGRZK/ZZA8+wMUFrqFkDmL27Se7WUIRA1mdfH3im5NaJWxgs+G6uVNIGn3OatZgDSIVVx6qHn13XuqxMtkGw04=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(42112799006)(56012099003)(22082099003)(18002099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?TkJqZEtZdGM1aHNBYzBDQ0xhSHowWWh5bFVqOHNpSUp1SWZCR2VqcmZUT2l2?=
 =?utf-8?B?R0NSdW9wSEtudFE5V0NTS1p0YmxveVhxaGtNNEt3V1FOOGlYUEhBRTdMeWVk?=
 =?utf-8?B?TjBNdE5nQXpvcWxIOXNRaTJCeXgzb1pObmhjanl5VWNUcDdxeDAxYWhvQ05Q?=
 =?utf-8?B?NzN0dXAvNGpnVCtMMjEzRkVITGwxQzZTSHY5cU5ZYi95d0NYVzM5REJLc1h2?=
 =?utf-8?B?aWZ3cVcvVnlvb3dQRUg2RmxRM1ZlbG42ZENLOEJIUytPUitRV084Z3FGbmRH?=
 =?utf-8?B?MzdScGltTlJYQzNJT1JLc3ZxZm1BS09Vd3RuRStESDBnS1VneG1NUllQRmNJ?=
 =?utf-8?B?OXArdGRZU3ZyZ1QrREtQN0hNUk5UZDRKUmE5RHk4VlBvV0VKYUp6Yi9jbkZv?=
 =?utf-8?B?cXkwbHdKTzM3U1ZQcXhheVVCZzM1V05TdzZkWlNqU05Ta1BHUjBrRE9vNVEx?=
 =?utf-8?B?V3RGK0lIRVluQm9kRSttQUw2UTZjYXlnTWNpR0xGZXNZUm9TM05obE5PVTNh?=
 =?utf-8?B?TlNHYmlKbEx6OGpoTFUxNWU1aytZN0xZcFVoc1ViMW9jZFpaYlVZaUpKZnUx?=
 =?utf-8?B?NUJSSTlTdTNMNUlmaTVQdUZzSXJucmtETkdDMXhncEdaczF2WTdBMVk2bXJK?=
 =?utf-8?B?SHdkTWNSV0NEYXhjeGdOcUFhWFcrcWR1WlMxdDlHR0ZWb1BDcTl5ZitaQXlH?=
 =?utf-8?B?dzBNTjl3ZUVDYWkyTUhhZzF1UVFvMlUzd1k3LzJRZmNJZG8yTUpRZlFjTmVq?=
 =?utf-8?B?MVVOZDI3TVdJMWNRMkZKWVFoRzRPbEJYc2F4bDFscy95bnptRXBiVnBIREwr?=
 =?utf-8?B?Mk5iRUNMZ0JlZ1Zib2lCZkpTb0tKL0pmZ3A3clZaZ2F0NXZLYy80Q0JTa3FT?=
 =?utf-8?B?dk51Ly9PZEFvWUVPeThjRXpRYkZ6RUdUYnZNcE1TYnVxME1VOUJBNzczdEkz?=
 =?utf-8?B?Nm9PZlNkK0RTRlZuS1NTcG1jaFpPVHFTbzE1YlJIcGVZREpySEo5bzgzZW1N?=
 =?utf-8?B?WmRkNFZiTmxWUFFjcStZdXdJdTZsRi9XbTZzWThTRjZVa2lmQkhieTY5elNS?=
 =?utf-8?B?aEJqUkM1L2d6M2doVi8weE9kK3g1SFZiN2o4WnZVZDhlTDZPb2N5L2d1L1BN?=
 =?utf-8?B?TzV0VitvVGZYbUxYTzZEZVlGSXBGaERJcWo5U0J4SGV5bCtzanhNRFlrU0FE?=
 =?utf-8?B?WUU3YWNjN3NtbzUwODhuNXphY1JjNVNFeVlDYkkyNVZTOHlwUTJSSTZoQ0x5?=
 =?utf-8?B?RE5oV0JsaVhvY3BqN050b0ZPRVk2OHZtc2dBdk1lOHp2OVZLSVp0TjdzMFZX?=
 =?utf-8?B?Q2Qwc3hEeVFPM0taVDRWSCszQmFmWVZCTldnNGtNZ1lodW5LNkxrcXFCdmM2?=
 =?utf-8?B?MjYzUTd2Z1dvSUtJN1RNK2Z3NlhYMGpvdUdlVmYxWFA4L05jcFRNS2F5SFlH?=
 =?utf-8?B?N2NhcjAzWVJrbnVoMmdQVUVlZi9rWnV1MGVOUVZqRGtmajlBbENmV1dBOUVN?=
 =?utf-8?B?UU1MQlROS2dsWGV1SFBsZE9MNzc1ZUlWT2pweXljRWpjNkxnYVB3WmNPR0t0?=
 =?utf-8?B?K2lBMGM4OUo1NDRHalpXenFsQnVxNEpYMzEwaXpscGVBVGR5a3ZGM0l6UEo3?=
 =?utf-8?B?VnNtN0pkYm5MeHY0WUl0c2ZreDRxRzBBWEV0blVUQStiVDhOK21UQllmcnls?=
 =?utf-8?B?Rm8wTWp2WjBvOUd0V0dCRmxNMGllQmxuZlYvMUplY1hQSlB2ZlZMcDNRNHo5?=
 =?utf-8?B?ZkUwMWNMVFhMSVozd0ZlTDQ4VXM2VXRNbVRGZS8renU4RGhDb1V1a2UvcGdq?=
 =?utf-8?B?a3k0UVorM1V1ZzFjN0dybmJEeC9udmZyZnJpNSsrRUJsWmZscStHekRQQ0Jn?=
 =?utf-8?B?RTA0ZGNaV3BreWxSdGk0eDY1NFZ4QUQxZ0U4SGpaQWhzR2ZMN3pBdzlsUXN6?=
 =?utf-8?B?VG1zeDJvVE5LMnozd3haS0MxV2htS3dMTldydCtmZ2hkaDBLVFpYMnB2WWN6?=
 =?utf-8?B?aWcwNlFKYURoWG90b3NnbExMVTJ0YisrRVFTbjMxQ1hCOFFBc2VPTmFWZ2po?=
 =?utf-8?B?cFlqR0dIYXErQTk1ZlNrb1ovdnhrWVBVYjRPRENpR3JESnJ2UXRvMTk2UXA1?=
 =?utf-8?B?c3JYQTdpNHdSNk5wR1Jyb0ovb3gzZWtzWTZaczlqNjAwVnY2T20yTG5qclNh?=
 =?utf-8?B?cjBRUlhXRWdhSW40c2ZTdGIxVUh5a3ZqZTJmalVVV3hKRXlHazdtWk1nVnYx?=
 =?utf-8?B?TVZQNjVjVzM3ZnEyc2pueDZoMHBhMiszcytFWkhLYm1VYndDbVRWM1N3bVhr?=
 =?utf-8?B?dXpIbi9mblF0QVExYXdKVUEzLzN1eDhTSllkNkV0eXo3bmpkUWlFZFJXZVQw?=
 =?utf-8?Q?7mu6y5pFDZL6KjdM=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <D8E90783CE6184408A256FC05B9F2CB2@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 40d9ac21-3f0c-48e1-c74f-08de8eb63f84
X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Mar 2026 23:44:13.3505
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: TevItMy4JBGa2tecqpW8rBGSepSz+aKAT+QmSCDyQ7XK9IEnj0ESgQ7Fzpmk+/jKqhhaXYRWuX+/wV9paWH1VOOPkxozORTo/pc6VVyxKJ4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB9638
X-purgate-ID: tlsNG-c201ff/1774914258-83347488-95163E5E/0/0
X-purgate-type: clean
X-purgate-size: 8926

SGkgTXlrb2xhLA0KDQpNeWtvbGEgS3ZhY2ggPHhha2VwLmFtYXRvcEBnbWFpbC5jb20+IHdyaXRl
czoNCg0KPiBIaSBWb2xvZHlteXIsDQo+DQo+IFRoYW5rIHlvdSBmb3IgdGhlIHJldmlldy4NCj4N
Cj4gT24gV2VkLCBNYXIgMjUsIDIwMjYgYXQgNDo0MuKAr1BNIFZvbG9keW15ciBCYWJjaHVrDQo+
IDxWb2xvZHlteXJfQmFiY2h1a0BlcGFtLmNvbT4gd3JvdGU6DQo+Pg0KPj4gSGkgTXlrb2xhLA0K
Pj4NCj4+IE15a29sYSBLdmFjaCA8eGFrZXAuYW1hdG9wQGdtYWlsLmNvbT4gd3JpdGVzOg0KPj4N
Cj4+ID4gRnJvbTogTXlrb2xhIEt2YWNoIDxteWtvbGFfa3ZhY2hAZXBhbS5jb20+DQo+PiA+DQo+
PiA+IFJlcGxhY2UgdGhlIHBlci1xdWlyayBpbml0IGNhbGxiYWNrIHdpdGggZGVjbGFyYXRpdmUg
ZmxhZ3MgaW4NCj4+ID4gc3RydWN0IGl0c19xdWlyaywgYW5kIGludHJvZHVjZSBnaWN2M19pdHNf
Y29sbGVjdF9xdWlya3MoKSB0byBnYXRoZXINCj4+ID4gdGhlIGVmZmVjdGl2ZSB3b3JrYXJvdW5k
IGZsYWdzIGZyb20gYm90aCB0aGUgSUlEUi1tYXRjaGVkIHF1aXJrIGVudHJ5DQo+PiA+IGFuZCB0
aGUgImRtYS1ub25jb2hlcmVudCIgZGV2aWNlLXRyZWUgcHJvcGVydHkuDQo+PiA+DQo+PiA+IFRo
aXMgbGV0cyBub24tY29oZXJlbnQgcGxhdGZvcm1zIGZvcmNlIG5vbi1jYWNoZWFibGUgSVRTIHRh
YmxlDQo+PiA+IGF0dHJpYnV0ZXMgZXZlbiB3aGVuIG5vIElJRFIgcXVpcmsgZW50cnkgbWF0Y2hl
cy4NCj4+ID4NCj4+ID4gU2lnbmVkLW9mZi1ieTogTXlrb2xhIEt2YWNoIDxteWtvbGFfa3ZhY2hA
ZXBhbS5jb20+DQo+PiA+IC0tLQ0KPj4gPiAgeGVuL2FyY2gvYXJtL2dpYy12My1pdHMuYyB8IDcw
ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQ0KPj4gPiAgMSBmaWxlIGNo
YW5nZWQsIDQzIGluc2VydGlvbnMoKyksIDI3IGRlbGV0aW9ucygtKQ0KPj4gPg0KPj4gPiBkaWZm
IC0tZ2l0IGEveGVuL2FyY2gvYXJtL2dpYy12My1pdHMuYyBiL3hlbi9hcmNoL2FybS9naWMtdjMt
aXRzLmMNCj4+ID4gaW5kZXggOWJhMDY4YzQ2Zi4uMDA1MjRiNDNhMyAxMDA2NDQNCj4+ID4gLS0t
IGEveGVuL2FyY2gvYXJtL2dpYy12My1pdHMuYw0KPj4gPiArKysgYi94ZW4vYXJjaC9hcm0vZ2lj
LXYzLWl0cy5jDQo+PiA+IEBAIC01Nyw3MSArNTcsODcgQEAgc3RydWN0IGl0c19kZXZpY2Ugew0K
Pj4gPiAgICovDQo+PiA+ICBzdHJ1Y3QgaXRzX3F1aXJrIHsNCj4+ID4gICAgICBjb25zdCBjaGFy
ICpkZXNjOw0KPj4gPiAtICAgIGJvb2wgKCppbml0KShzdHJ1Y3QgaG9zdF9pdHMgKmh3X2l0cyk7
DQo+PiA+ICAgICAgdWludDMyX3QgaWlkcjsNCj4+ID4gICAgICB1aW50MzJfdCBtYXNrOw0KPj4g
PiArICAgIHVpbnQzMl90IGZsYWdzOw0KPj4gPiAgfTsNCj4+ID4NCj4+ID4gIHN0YXRpYyB1aW50
MzJfdCBfX3JvX2FmdGVyX2luaXQgaXRzX3F1aXJrX2ZsYWdzOw0KPj4gPg0KPj4gPiAtc3RhdGlj
IGJvb2wgZ2ljdjNfaXRzX2VuYWJsZV9xdWlya19nZW40KHN0cnVjdCBob3N0X2l0cyAqaHdfaXRz
KQ0KPj4gPiAtew0KPj4gPiAtICAgIGl0c19xdWlya19mbGFncyB8PSBIT1NUX0lUU19XT1JLQVJP
VU5EX05DX05TIHwNCj4+ID4gLSAgICAgICAgSE9TVF9JVFNfV09SS0FST1VORF8zMkJJVF9BRERS
Ow0KPj4gPiAtDQo+PiA+IC0gICAgcmV0dXJuIHRydWU7DQo+PiA+IC19DQo+PiA+IC0NCj4+ID4g
IHN0YXRpYyBjb25zdCBzdHJ1Y3QgaXRzX3F1aXJrIGl0c19xdWlya3NbXSA9IHsNCj4+ID4gICAg
ICB7DQo+PiA+IC0gICAgICAgIC5kZXNjICAgICAgICA9ICJSLUNhciBHZW40IiwNCj4+ID4gLSAg
ICAgICAgLmlpZHIgICAgICAgID0gMHgwMjAxNzQzYiwNCj4+ID4gLSAgICAgICAgLm1hc2sgICAg
ICAgID0gMHhmZmZmZmZmZlUsDQo+PiA+IC0gICAgICAgIC5pbml0ICAgICAgICA9IGdpY3YzX2l0
c19lbmFibGVfcXVpcmtfZ2VuNCwNCj4+ID4gKyAgICAgICAgLmRlc2MgID0gIlItQ2FyIEdlbjQi
LA0KPj4gPiArICAgICAgICAuaWlkciAgPSAweDAyMDE3NDNiLA0KPj4gPiArICAgICAgICAubWFz
ayAgPSAweGZmZmZmZmZmVSwNCj4+ID4gKyAgICAgICAgLmZsYWdzID0gSE9TVF9JVFNfV09SS0FS
T1VORF9OQ19OUyB8DQo+PiA+ICsgICAgICAgICAgICAgICAgIEhPU1RfSVRTX1dPUktBUk9VTkRf
MzJCSVRfQUREUiwNCj4+ID4gICAgICB9LA0KPj4gPiAgICAgIHsNCj4+ID4gICAgICAgICAgLyog
U2VudGluZWwuICovDQo+PiA+ICAgICAgfQ0KPj4gPiAgfTsNCj4+ID4NCj4+ID4gLXN0YXRpYyBz
dHJ1Y3QgaXRzX3F1aXJrKiBnaWN2M19pdHNfZmluZF9xdWlyayh1aW50MzJfdCBpaWRyKQ0KPj4g
PiArc3RhdGljIGNvbnN0IHN0cnVjdCBpdHNfcXVpcmsgKmdpY3YzX2l0c19maW5kX3F1aXJrKHVp
bnQzMl90IGlpZHIpDQo+PiA+ICB7DQo+PiA+IC0gICAgY29uc3Qgc3RydWN0IGl0c19xdWlyayAq
cXVpcmtzID0gaXRzX3F1aXJrczsNCj4+ID4gKyAgICBjb25zdCBzdHJ1Y3QgaXRzX3F1aXJrICpx
dWlyayA9IGl0c19xdWlya3M7DQo+PiA+DQo+PiA+IC0gICAgZm9yICggOyBxdWlya3MtPmRlc2M7
IHF1aXJrcysrICkNCj4+ID4gKyAgICBmb3IgKCA7IHF1aXJrLT5kZXNjOyBxdWlyaysrICkNCj4+
ID4gICAgICB7DQo+PiA+IC0gICAgICAgIGlmICggcXVpcmtzLT5paWRyID09IChxdWlya3MtPm1h
c2sgJiBpaWRyKSApDQo+PiA+IC0gICAgICAgICAgICByZXR1cm4gKHN0cnVjdCBpdHNfcXVpcmsg
KilxdWlya3M7DQo+PiA+ICsgICAgICAgIGlmICggcXVpcmstPmlpZHIgIT0gKHF1aXJrLT5tYXNr
ICYgaWlkcikgKQ0KPj4gPiArICAgICAgICAgICAgY29udGludWU7DQo+PiA+ICsNCj4+ID4gKyAg
ICAgICAgcmV0dXJuIHF1aXJrOw0KPj4gPiAgICAgIH0NCj4+ID4NCj4+ID4gICAgICByZXR1cm4g
TlVMTDsNCj4+ID4gIH0NCj4+ID4NCj4+ID4gLXN0YXRpYyB2b2lkIGdpY3YzX2l0c19lbmFibGVf
cXVpcmtzKHN0cnVjdCBob3N0X2l0cyAqaHdfaXRzKQ0KPj4gPiArc3RhdGljIHVpbnQzMl90IGdp
Y3YzX2l0c19jb2xsZWN0X3F1aXJrcyhjb25zdCBzdHJ1Y3QgaG9zdF9pdHMgKmh3X2l0cywNCj4+
ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0
IGl0c19xdWlyayAqKm1hdGNoZWRfcXVpcmspDQo+PiA+ICB7DQo+PiA+ICsgICAgY29uc3Qgc3Ry
dWN0IGl0c19xdWlyayAqcXVpcms7DQo+PiA+ICsgICAgdWludDMyX3QgZmxhZ3MgPSAwOw0KPj4g
PiAgICAgIHVpbnQzMl90IGlpZHIgPSByZWFkbF9yZWxheGVkKGh3X2l0cy0+aXRzX2Jhc2UgKyBH
SVRTX0lJRFIpOw0KPj4gPiAtICAgIGNvbnN0IHN0cnVjdCBpdHNfcXVpcmsgKnF1aXJrID0gZ2lj
djNfaXRzX2ZpbmRfcXVpcmsoaWlkcik7DQo+PiA+DQo+PiA+IC0gICAgaWYgKCBxdWlyayAmJiBx
dWlyay0+aW5pdChod19pdHMpICkNCj4+ID4gKyAgICBxdWlyayA9IGdpY3YzX2l0c19maW5kX3F1
aXJrKGlpZHIpOw0KPj4gPiArICAgIGlmICggcXVpcmsgKQ0KPj4gPiArICAgICAgICBmbGFncyB8
PSBxdWlyay0+ZmxhZ3M7DQo+PiA+ICsNCj4+ID4gKyAgICBpZiAoIGh3X2l0cy0+ZHRfbm9kZSAm
Jg0KPj4gPiArICAgICAgICAgZHRfcHJvcGVydHlfcmVhZF9ib29sKGh3X2l0cy0+ZHRfbm9kZSwg
ImRtYS1ub25jb2hlcmVudCIpICkNCj4+ID4gKyAgICAgICAgZmxhZ3MgfD0gSE9TVF9JVFNfV09S
S0FST1VORF9OQ19OUzsNCj4+ID4gKw0KPj4gPiArICAgIGlmICggbWF0Y2hlZF9xdWlyayApDQo+
PiA+ICsgICAgICAgICptYXRjaGVkX3F1aXJrID0gcXVpcms7DQo+PiA+ICsNCj4+ID4gKyAgICBy
ZXR1cm4gZmxhZ3M7DQo+PiA+ICt9DQo+PiA+ICsNCj4+ID4gK3N0YXRpYyB2b2lkIGdpY3YzX2l0
c19lbmFibGVfcXVpcmtzKHN0cnVjdCBob3N0X2l0cyAqaHdfaXRzKQ0KPj4gPiArew0KPj4gPiAr
ICAgIGNvbnN0IHN0cnVjdCBpdHNfcXVpcmsgKnF1aXJrOw0KPj4gPiArDQo+PiA+ICsgICAgaXRz
X3F1aXJrX2ZsYWdzID0gZ2ljdjNfaXRzX2NvbGxlY3RfcXVpcmtzKGh3X2l0cywgJnF1aXJrKTsN
Cj4+ID4gKw0KPj4gPiArICAgIGlmICggcXVpcmsgKQ0KPj4gPiAgICAgICAgICBwcmludGsoIkdJ
Q3YzOiBlbmFibGluZyB3b3JrYXJvdW5kIGZvciBJVFM6ICVzXG4iLCBxdWlyay0+ZGVzYyk7DQo+
PiA+ICB9DQo+PiA+DQo+PiA+ICBzdGF0aWMgdm9pZCBnaWN2M19pdHNfdmFsaWRhdGVfcXVpcmtz
KHZvaWQpDQo+PiA+ICB7DQo+PiA+IC0gICAgY29uc3Qgc3RydWN0IGl0c19xdWlyayAqcXVpcmsg
PSBOVUxMLCAqcHJldiA9IE5VTEw7DQo+PiA+ICsgICAgdWludDMyX3QgcXVpcmtzLCBwcmV2X3F1
aXJrczsNCj4+ID4gICAgICBjb25zdCBzdHJ1Y3QgaG9zdF9pdHMgKmh3X2l0czsNCj4+ID4NCj4+
ID4gICAgICBpZiAoIGxpc3RfZW1wdHkoJmhvc3RfaXRzX2xpc3QpICkNCj4+ID4gICAgICAgICAg
cmV0dXJuOw0KPj4gPg0KPj4gPiAgICAgIGh3X2l0cyA9IGxpc3RfZmlyc3RfZW50cnkoJmhvc3Rf
aXRzX2xpc3QsIHN0cnVjdCBob3N0X2l0cywgZW50cnkpOw0KPj4gPiAtICAgIHByZXYgPSBnaWN2
M19pdHNfZmluZF9xdWlyayhyZWFkbF9yZWxheGVkKGh3X2l0cy0+aXRzX2Jhc2UgKyBHSVRTX0lJ
RFIpKTsNCj4+ID4gKyAgICBwcmV2X3F1aXJrcyA9IGdpY3YzX2l0c19jb2xsZWN0X3F1aXJrcyho
d19pdHMsIE5VTEwpOw0KPj4gPg0KPj4gPiAtICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoaHdfaXRz
LCAmaG9zdF9pdHNfbGlzdCwgZW50cnkpDQo+PiA+ICsgICAgbGlzdF9mb3JfZWFjaF9lbnRyeV9j
b250aW51ZShod19pdHMsICZob3N0X2l0c19saXN0LCBlbnRyeSkNCj4+ID4gICAgICB7DQo+PiA+
IC0gICAgICAgIHF1aXJrID0gZ2ljdjNfaXRzX2ZpbmRfcXVpcmsocmVhZGxfcmVsYXhlZChod19p
dHMtPml0c19iYXNlICsgR0lUU19JSURSKSk7DQo+PiA+IC0gICAgICAgIEJVR19PTihxdWlyayAh
PSBwcmV2KTsNCj4+ID4gLSAgICAgICAgcHJldiA9IHF1aXJrOw0KPj4gPiArICAgICAgICBxdWly
a3MgPSBnaWN2M19pdHNfY29sbGVjdF9xdWlya3MoaHdfaXRzLCBOVUxMKTsNCj4+ID4gKyAgICAg
ICAgQlVHX09OKHF1aXJrcyAhPSBwcmV2X3F1aXJrcyk7DQo+Pg0KPj4gSSBrbm93IGl0IHdhcyBp
biB0aGUgcHJldmlvdXMgdmVyc2lvbiwgYnV0IGFzIHlvdSBhcmUgYWxyZWFkeSB0b3VjaGluZw0K
Pj4gdGhpcy4uLiBUaGlzIGlzIG5vdCBYZW4gQlVHKCkuIFRoaXMgaXMgYSBwbGF0Zm9ybSBwcm9i
bGVtLiBTbyB5b3UgbmVlZA0KPj4gdG8gcGFuaWMgaGVyZS4gU29tZXRoaW5nIGxpa2UNCj4+DQo+
PiAgaWYgKHF1aXJrcyAhPSBwcmV2X3F1aXJrcykNCj4+ICAgICAgICAgcGFuaWMoIkRpZmZlcmVu
dCBJVFMgaW5zdGFuY2VzIGhhcyBkaWZmZXJlbnQgcXVpcmtzIikNCj4NCj4gQWNrLg0KPg0KPg0K
Pj4NCj4+DQo+PiBBbHNvLCBJIHdhbnQgdG8gcG9pbnQgb3V0IHRoYXQgeW91IGFyZSBub3QgdmFs
aWRhdGluZyAiZG1hLW5vbmNvaGVyZW50Ig0KPj4gcXVpcmsgaGVyZS4gSSBtZWFuLCBzb21lIElU
UyBlbnRyaWVzIGNhbiBoYXZlIHRoaXMgcHJvcGVydHksIHNvbWUgb3RoZXINCj4+IC0gZG9uJ3Qu
IFRoaXMgbWFrZXMgbWUgdGhpbmsgdGhhdCB5b3UgbmVlZCB0byBwcm9tb3RlIHRoaXMNCj4+ICJk
bWEtbm9uY29oZXJlbnQiIHF1aXJrIGZyb20gb3BlbiBjb2RlZCBjaGVjayB0byBhIGBzdHJ1Y3QN
Cj4+IGl0c19xdWlya2AgZW50cnksIHNvIGl0IHdpbGwgYmUgaGFuZGxlZCBpbiBnZW5lcmljIHdh
eS4NCj4NCj4gSnVzdCB0byBjbGFyaWZ5IHlvdXIgcG9pbnQgYWJvdXQgZG1hLW5vbmNvaGVyZW50
Og0KPg0KPiBJbiB0aGUgY3VycmVudCB2ZXJzaW9uIGl0IGlzIGFscmVhZHkgcGFydCBvZiB0aGUg
ZWZmZWN0aXZlIHF1aXJrIHNldCwNCj4gYmVjYXVzZSBnaWN2M19pdHNfdmFsaWRhdGVfcXVpcmtz
KCkgY29tcGFyZXMgdGhlIGZsYWdzIHJldHVybmVkIGJ5DQo+IGdpY3YzX2l0c19jb2xsZWN0X3F1
aXJrcygpLCBhbmQgdGhvc2UgYWxyZWFkeSBpbmNsdWRlIHRoZQ0KPiBkbWEtbm9uY29oZXJlbnQg
RFQgcHJvcGVydHkuDQo+DQo+IFNvIGlzIHlvdXIgY29uY2VybiB0aGF0IERULWRlcml2ZWQgSVRT
IHByb3BlcnRpZXMgc3VjaCBhcw0KPiBkbWEtbm9uY29oZXJlbnQgc2hvdWxkIGFsc28gZ28gdGhy
b3VnaCB0aGUgc2FtZSBjb21tb24gcXVpcmsvY29sbGVjdGlvbg0KPiBwbHVtYmluZyBhcyB0aGUg
b3RoZXIgSVRTIHdvcmthcm91bmQgc291cmNlcywgcmF0aGVyIHRoYW4gYmVpbmcgaGFuZGxlZA0K
PiBhcyBhIHNlcGFyYXRlIG9wZW4tY29kZWQgY2hlY2ssIHNpbWlsYXIgdG8gaG93IExpbnV4IG1v
ZGVscyB0aGlzIFsxXT8NCg0KWWVzLCBleGFjdGx5IHRoaXMuIEkgc2VlIG5vIHBvaW50IGluIGlu
dHJvZHVjaW5nIGdlbmVyaWMgcHJlZGljYXRlDQpmdW5jdGlvbiBhbmQgdGhlbiBub3QgdXNpbmcg
aXQuIFRoaXMgd2lsbCBjb25mdXNlIGFueW9uZSB3aG8gdHJpZXMgdG8NCnJlYWQgdGhlIGNvZGUu
DQoNCi0tIA0KV0JSLCBWb2xvZHlteXI=


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 00:26:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 00:26:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268207.1557516 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Mw0-0005nu-Ex; Tue, 31 Mar 2026 00:26:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268207.1557516; Tue, 31 Mar 2026 00: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 1w7Mw0-0005nn-Bh; Tue, 31 Mar 2026 00:26:20 +0000
Received: by outflank-mailman (input) for mailman id 1268207;
 Tue, 31 Mar 2026 00:26:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Volodymyr_Babchuk@epam.com>) id 1w7Mvy-0005nh-FY
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 00:26:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7Mvx-00Co09-Ct
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 02:26:17 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Volodymyr_Babchuk@epam.com>)
 id 69cb1464-5cb7-0a2a0a5109dd-0a2a450c851c-40
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 02:26:17 +0200
Received: from [52.101.84.96]
 (helo=DB3PR0202CU003.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Volodymyr_Babchuk@epam.com>)
 id 69cb14a8-f93d-0a2a450c0019-34655460c057-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 02:26:17 +0200
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AM9PR03MB7316.eurprd03.prod.outlook.com
 (2603:10a6:20b:261::8) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Tue, 31 Mar
 2026 00:26:15 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::4484:fcf4:18ec:fbf3%7]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 00:26:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=G2DDE0vcT4ZsaAq4ZnSmL/+GFGihfg7TOJNd9sASYaj+M9YOPGqxBLk1GfhgJLXmysG0FnDzoWk7kCGg/AAwcMlG/agP7zkrABrWO0Wad0xi4cO3Fgb5wvQsc835ecuFOjqqfgi5/lmO+UuBegJGZJDoTmceC3lh7kwA7X1hGTBLpGnCdYUxb/55RQ7FWArdgHttJDde8lnUq9pzwZIbKjx4ra2cvDewK4PZIRFnRPrFIhh3I/Vui5Ee/yb/Cfq1JIDNSvBC7wlsoweZRdylkeb5azdndElmUxevLnJVgv1FmNoc8UIp+rE5u6ClkBxe9oJzTW0u4E1SSBr4Qrn5DA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3T8xl06VwrfDmJIbAUAM3zwIyafaALPF0ShcxU1b/34=;
 b=A3LllvFmFNhjsWjuHgas13XkhcbUEO/QN93NUn8J6pZCXzz1niliFGwxcLvtI6yZ40gKz4GbGHA9ZQ6hoXoxkEDl6nVT8SrLA0TZnEka4K5ZWhmZoIhBTagwAmOJiX9MEjyKtaTT4WtQN6QVjv5AxjU7jNLbkBq72cWQ9BQbLoylPeahHDLKPyQQxg3gRaycQ0FDCFZnz3KuDcDn0+9yBfHUuBE2F5siszg0GtW50qDzdbmHghESqBKsDLvsR5ZEhAcavnQ9VND5BSyws5XtFMsid4ChnDut3U5sGVg68wZ+9QeV6ov5TTBWcFQWB1LT9GeHPV7Zz09cgGAinOERnA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3T8xl06VwrfDmJIbAUAM3zwIyafaALPF0ShcxU1b/34=;
 b=Ux3KJWVW01JAhjJJwDT7fN/6sPpP4X8sPabsFjdWq19RmUDE1YErvkMNA8APKoJ0oczJr6b3RnLRU/2TevE1agem72GeZA34nnec+iVy62cxY1i7NCwG4xAl39GQNfdzbTtYaLIOcV+ziIpMgyEozGCqDTJ+sXwGz5vaOsj7o5uYzGGhJM88NITVI5kncCEm5PKsdfBhmGey9Q7uAcGVvtDqk/vFJek3c3iYNWEKMNPbsahF5bypyc5sNwo3gbsOY5rqUdsMUFRudrE/7BZUKuEetQk9D3Nujj7yoAPga+zQtqUXEDYK/YJ6Cea8XB4XS/tcr4+FfJ4KCEDtq9cmCg==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <Mykola_Kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH 2/4] xen/arm: its: add platform match callback for ITS
 quirks
Thread-Topic: [PATCH 2/4] xen/arm: its: add platform match callback for ITS
 quirks
Thread-Index: AQHcvEPkvPnBPPoH7U6Wnzsnt2hLeg==
Date: Tue, 31 Mar 2026 00:26:14 +0000
Message-ID: <87a4vovo7u.fsf@epam.com>
References: <cover.1774431310.git.mykola_kvach@epam.com>
	<10da5cf38dded9c3373c4b0ba54d7f7a7b2fd98f.1774431311.git.mykola_kvach@epam.com>
	<87341ovugw.fsf@epam.com>
	<CAGeoDV_1Zzh8pxBe=Mf7Yu1OXfNhzH7aFpsT+ktM62DwK-ropg@mail.gmail.com>
In-Reply-To:
 <CAGeoDV_1Zzh8pxBe=Mf7Yu1OXfNhzH7aFpsT+ktM62DwK-ropg@mail.gmail.com>	(Mykola
 Kvach's message of "Wed, 25 Mar 2026 18:34:04 +0200")
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV1PR03MB10456:EE_|AM9PR03MB7316:EE_
x-ms-office365-filtering-correlation-id: 56d3a699-2a47-47a5-18f2-08de8ebc1e7c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|42112799006|366016|1800799024|38070700021|56012099003|18002099003|22082099003;
x-microsoft-antispam-message-info:
 JWJVNmIYJxQ05dGMWYG0v/TL9h6P+/7IMP/ECfMSgqQ6c0OMBgTIZU+L0ZVfYr6qxx46TJ8EBzUkOtM1+jTC0PATQ4OoD0Ib4glgNwZk7MviT2/i4PBa2yg6xfVHc7vZUEUHnG9eMx0caC27IcATFkLme6GfqMnt7nR1bVCs5dQoQ7BjNFGKcDJu/yag/MLyWUuQZzF2/aTkXbBXmvCXnGBRYuADrIazrdOnsRvX4/o7dykSPLh18I0rfFM8JwadIIMmz/g87gyq5dpjyeAvl+oxXnkEA/MHobd6CCiDrPoLvNwK7vx8cgTNVWIRQwmA8pBdXO9UgKa6S8Hn7cIB9TpBYRBASxgtn5ToKSw+bK+zTFoEiZnD7oVjE0Wngmo+IQCKuqTEUJfxdqPtB6piKLp8U1ItPrKxmctm3wtMBzF/BOEs7b8CBjaDD2mvMD9Jrb5YxdLZN+kQluJGAiiStvYbmijupWOlhBM0G4BeXJFYU6BahcOdKDtU1gfhKsiSHv/zknk61zXQTdn7GdU3P5CPYveEYNRddj3lBL+MlOF63QMiaqIkf5FQdjUFKtnYdIDFaAY6A74f5NPQYi8WdBiAEzEB+80FqgDt2KW+MAX0N5E/zNqsjub8o+zim0jncTOY/YZ0FWAG4VHxXl8M4bGyE7r1vzvhzFWhI97BX+ZD8c14Qjdm829LISswYKCJUHv01VvRNhfcBc9wUUnsLyHLFzGE/m8zvlhid8+1ijmJU4d3dUwKYmHBM3YlDV1nuzkbV5vfQ5yutw2T5pGsVYnuvqJTf2Dgzsk9jCAAOtY=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(42112799006)(366016)(1800799024)(38070700021)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?N09LWnJocisrVzhiK3FzazdYNVhDTzQ2TG9ROGMycVJ2UDVLV2REWXNUQnZy?=
 =?utf-8?B?U3ZBbFg2ajkwOGYwSVF2Z0tiNU50RjFHUWNYMUovU0huWW84OTJpU01HZDNM?=
 =?utf-8?B?Z0ZSSVBITS9ZdDN6dm1mV3NrS3RHUnRXZVoxSm9laHFYM2VWNzdIRzN6elJ1?=
 =?utf-8?B?MHlseXp0eS9KeHJYaDZMUDZmelRFaTVEZkkvdjdzNFhqWHhKeFIvY1RLNTJY?=
 =?utf-8?B?TmxFVURnNklCeEJBczE3NnhYQlFodmdpTTgwcnJ2VXZLQ3I0YWhLbEpDTkty?=
 =?utf-8?B?SVU4NkVZRlBZbStCRW9uYWNTeGlabnpQQ1ArdEM2VGlNS2V4R3M1RTBGYVJS?=
 =?utf-8?B?U0hvNjZ3MG1tR1ZTYXpHSnRqbkJlZ2cwc2ZXTDFUdCtqMDhFeEFXZm4wemov?=
 =?utf-8?B?NFBrVEV2aWFTdzd6VllET2MzdlpCVVpXYmdQaHJOa2N0Mk1JRVVtdTFieVdu?=
 =?utf-8?B?aUpNcXZPaENlS1M4bFd2Vll3b0ZVdzA2VHV0Qk9YVnV4dThGVDhGSzg0ODV5?=
 =?utf-8?B?ZVVlTFAyOHpna0kxMUQzeDZoOHkySFJkUXEvV3dUZElQRnhTOVlSNWxJTm1X?=
 =?utf-8?B?OVQ2L0N0TE43RmtLbkp6SEgxZkpFOTNERnNleXo1Z2VxRUhGMzRsR01RNExz?=
 =?utf-8?B?L2xrWHcxUGNFb0MrYXF2NnRjVk9RaDhPb3VEV2dpRW5ocDFZd0tmcUNDNmMz?=
 =?utf-8?B?YXBLQjk5NTBNZUthQVBCUTVzcTM0K1UvdVZvWkhWZ3JPV1B6WitqcmV4cnNE?=
 =?utf-8?B?bXBvL2QrbGpQQWI3Y0tYNkNMRUhJNVZxNGpoWmIxejQrWHg0QnpTaXh3NjNN?=
 =?utf-8?B?UTU1WWZpMzFwZWdveGJyK29FcFAwUTZ0OXJ4T0JvT3BjRVc4WkQ2YVVYbEVh?=
 =?utf-8?B?WFZrcXJ3UzVieVF3ZjIwcERTOEFaZ01PZWNESmxnVE5FeHprTTRmbkxQOS8x?=
 =?utf-8?B?VSt1bnBzd1JGWklXTm5QUG9tQjdFWVcxQjkwV3hYU01SYUNjeDA1dmJteTY2?=
 =?utf-8?B?SHNra21aVUtXdmJ6L3EvR0dlV2J1U1pPSExRNnFNUFdPVkczS1ZHSTdmbFJ4?=
 =?utf-8?B?TURJN3BJRkpCRlRHOXFLdjEyL1kvWHVwSGN2U01TVnBGOE1jUTN5aC9YSmlC?=
 =?utf-8?B?ZjlxSG5EOEFLUHUzRlBKK3c4TUVJbUNrVGVmbC9XSklmUm5jaEhsdTFnU3BH?=
 =?utf-8?B?eGRiVS9YZVBzUEhjNGFsbzVEL2t0U3hYb3ZLTzVvS1ova1BFU3puWTdVbGFk?=
 =?utf-8?B?TjFESVFXRHdsMno5dEkvNnJRWlM3ZlhPUHdBZVJSdjRQVlJVK0tYOS8wbnI2?=
 =?utf-8?B?WVFNbW56Z3UwWFJ5MXFTMFM0b05yZll6M0J4b1cvazNkYXVWVkNId2xHdDJP?=
 =?utf-8?B?eTd0ZWdOQjNtSFIwZ1pITFFxVm1vMHhBK1p1dTJvZk1WWUpqbkJMMzl3T2d6?=
 =?utf-8?B?UklmYVNoYmpSeDczYStsUGNrL0dTSm5tSGcrQnQzSC9ydFpKejQzVGV6VFdZ?=
 =?utf-8?B?TEY3K3pwNnpTbjNiTm0xQ0lsZmREYTEwOU5MU1pVRUNvM3JFVko0dnYvbkFY?=
 =?utf-8?B?aVNiTThQbXJCWWt0Y0NyKzZxamMyVEJCZ2kyR29OZDFDU0o5SXQ0TUpnKzlE?=
 =?utf-8?B?TnlGL3poekRRdFdleVhvVXdrR1dTWmtQbkhKSmJYSGVnVkRHNm5ZcDFPdHZy?=
 =?utf-8?B?SDB1SEp3YW91RURwdnhGK2xVY2J0OStKTUhaT2xmd21BZTdIUWtPT2ozR2xF?=
 =?utf-8?B?RWJrQWFFeURyWWdzZ3dROG1kS1BZL3pUdERRS1BzdDFJaVJETjBaem53KzRD?=
 =?utf-8?B?SkVaV0c1bXVQV0J5cFBjQkUyb2ZSZGdxbW5WU1A0eWVIQjk3V2hnMWwyM1dq?=
 =?utf-8?B?UmF5c09BNGlGbHIzbjJnSnJJeUUwV0hYcEo0Q3g3Y3BFYUhzam5zYlRNYTdy?=
 =?utf-8?B?ZGhMWHVNZjJTV0g1cFBQQ2xZQkZHWHJCcGtpOWEvNnhoQ1YyRVUrbXBKR2Rl?=
 =?utf-8?B?SmxkTE5aUUlDQ09LUmdOZ1FrbEJ5bVdNZ0hteElGRVc2SUwvclRBdWNmZ2cy?=
 =?utf-8?B?bmdFdUNrbFE5ZjUwOEQ5YW53SnY2NC9tN0I0dVZZTENhbENyaW9Ja09Bb3Zw?=
 =?utf-8?B?MnRaMmhpUENMTDA4YllRQjhmN3IwY0dGTnUwR2NvSG0yK3NLWGdNU2p4ai92?=
 =?utf-8?B?Yyt5NHBuMTVVbWVoUGtza3VMVEUzWTNQSUdxUUhaam1KWVdBRDI1OVV2emRy?=
 =?utf-8?B?aVdTd1ZnSk91R1Nlb0pWdzB2Z2JUd2Q2eDdYbWY4cWFsY04wOTBDeUlSUURs?=
 =?utf-8?B?MUpLOUJ3NHNic0s3T0FTZlhmbUpNZkJleURPTmRMQmg3azZHdmV0QXNPS29u?=
 =?utf-8?Q?wm8YNBeCR830ONsU=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <7DD613C7C3A7EC4AA7F0E3A74FBFD315@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 56d3a699-2a47-47a5-18f2-08de8ebc1e7c
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 00:26:14.9435
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: izAANrL4B/MbHRY+/IpUSAbFPteIFm9cnOuOdVxWXul+5XemU21SJcOW1ykLFyrNRA/ByookndcetrDD+2H91sc9YmRv/KPaBFtquo2sPRQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7316
X-purgate-ID: tlsNG-d25034/1774916777-F52B9734-385F4530/0/0
X-purgate-type: clean
X-purgate-size: 8786

SGkgTXlrb2xhLA0KDQpNeWtvbGEgS3ZhY2ggPHhha2VwLmFtYXRvcEBnbWFpbC5jb20+IHdyaXRl
czoNCg0KPiBIaSBWb2xvZHlteXIsDQo+DQo+IFRoYW5rIHlvdSBmb3IgdGhlIHJldmlldy4NCj4N
Cj4gT24gV2VkLCBNYXIgMjUsIDIwMjYgYXQgNDo0NeKAr1BNIFZvbG9keW15ciBCYWJjaHVrDQo+
IDxWb2xvZHlteXJfQmFiY2h1a0BlcGFtLmNvbT4gd3JvdGU6DQo+Pg0KPj4gSGkgTXlrb2xhLA0K
Pj4NCj4+IE15a29sYSBLdmFjaCA8eGFrZXAuYW1hdG9wQGdtYWlsLmNvbT4gd3JpdGVzOg0KPj4N
Cj4+ID4gRnJvbTogTXlrb2xhIEt2YWNoIDxteWtvbGFfa3ZhY2hAZXBhbS5jb20+DQo+PiA+DQo+
PiA+IEV4dGVuZCBJVFMgcXVpcmsgbG9va3VwIHdpdGggYW4gb3B0aW9uYWwgbWF0Y2ggY2FsbGJh
Y2sgc28gdGhhdA0KPj4gPiBwbGF0Zm9ybXMgc2hhcmluZyB0aGUgc2FtZSBJSURSIGNhbiBzdGls
bCBiZSBkaXN0aW5ndWlzaGVkLg0KPj4gPg0KPj4gPiBVc2UgdGhlIGJvYXJkIGNvbXBhdGlibGUg
c3RyaW5nIHRvIHBvc2l0aXZlbHkgaWRlbnRpZnkgUmVuZXNhcyBSLUNhcg0KPj4gPiBHZW40IGJl
Zm9yZSBhcHBseWluZyBJVFMgd29ya2Fyb3VuZCBmbGFncywgcHJldmVudGluZyBmYWxzZSBtYXRj
aGVzDQo+PiA+IG9uIG90aGVyIFNvQ3MgdGhhdCBoYXBwZW4gdG8gdXNlIHRoZSBzYW1lIEdJQyBJ
UCBibG9jay4NCj4+ID4NCj4+ID4gU2lnbmVkLW9mZi1ieTogTXlrb2xhIEt2YWNoIDxteWtvbGFf
a3ZhY2hAZXBhbS5jb20+DQo+PiA+IC0tLQ0KPj4gPiAgeGVuL2FyY2gvYXJtL2dpYy12My1pdHMu
YyB8IDIyICsrKysrKysrKysrKysrKysrKystLS0NCj4+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxOSBp
bnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQ0KPj4gPg0KPj4gPiBkaWZmIC0tZ2l0IGEveGVu
L2FyY2gvYXJtL2dpYy12My1pdHMuYyBiL3hlbi9hcmNoL2FybS9naWMtdjMtaXRzLmMNCj4+ID4g
aW5kZXggMDA1MjRiNDNhMy4uYzQwNjI5NzMxZiAxMDA2NDQNCj4+ID4gLS0tIGEveGVuL2FyY2gv
YXJtL2dpYy12My1pdHMuYw0KPj4gPiArKysgYi94ZW4vYXJjaC9hcm0vZ2ljLXYzLWl0cy5jDQo+
PiA+IEBAIC01Nyw2ICs1Nyw3IEBAIHN0cnVjdCBpdHNfZGV2aWNlIHsNCj4+ID4gICAqLw0KPj4g
PiAgc3RydWN0IGl0c19xdWlyayB7DQo+PiA+ICAgICAgY29uc3QgY2hhciAqZGVzYzsNCj4+ID4g
KyAgICBib29sICgqbWF0Y2gpKGNvbnN0IHN0cnVjdCBob3N0X2l0cyAqaHdfaXRzKTsNCj4+DQo+
PiBJZiB5b3UgYXJlIGludHJvZHVjaW5nIG1hdGNoIHByZWRpY2F0ZSwgdGhlbiB3aHkgZG8geW91
IG5lZWQuLi4NCj4+DQo+PiA+ICAgICAgdWludDMyX3QgaWlkcjsNCj4+ID4gICAgICB1aW50MzJf
dCBtYXNrOw0KPj4gPiAgICAgIHVpbnQzMl90IGZsYWdzOw0KPj4NCj4+IHRoZXNlPyBZb3UgY2Fu
IHVzZSBhIHByZWRpY2F0ZSBmdW5jdGlvbiB0byBtYXRjaCBhZ2FpbnN0IGlpZHINCj4NCj4gVGhl
IHJhdGlvbmFsZSBmb3Iga2VlcGluZyBpaWRyL21hc2sgd2hpbGUgYWRkaW5nIG1hdGNoKCkgaXMg
dG8ga2VlcA0KPiB0aGUgcXVpcmsgdGFibGUgZGVjbGFyYXRpdmUgYW5kIGVhc3kgdG8gcmVhZC4g
VGhlIG1hdGNoKCkgY2FsbGJhY2sgaXMNCj4gbWVhbnQgb25seSBhcyBhbiBvcHRpb25hbCByZWZp
bmVtZW50IGZvciBhbWJpZ3VvdXMgY2FzZXMgd2hlcmUgSUlEUg0KPiBhbG9uZSBpcyBub3Qgc3Vm
ZmljaWVudCB0byBpZGVudGlmeSB0aGUgcGxhdGZvcm0uDQo+DQo+IEluIHRoaXMgZGVzaWduLCBp
aWRyL21hc2sgcmVtYWlucyB0aGUgcHJpbWFyeSBtYXRjaCBrZXkuIElmIG1hdGNoaW5nDQo+IHdl
cmUgbWFkZSBlbnRpcmVseSBjYWxsYmFjay1iYXNlZCwgdGhlIHN0YW5kYXJkIElJRFIgY29tcGFy
aXNvbiB3b3VsZA0KPiBoYXZlIHRvIG1vdmUgaW50byBjYWxsYmFjayBjb2RlIGFzIHdlbGwuIFRo
YXQgd291bGQgbWFrZSBxdWlyayBlbnRyaWVzDQo+IG1vcmUgb3Blbi1jb2RlZCBhbmQgbGVzcyBk
YXRhLWRyaXZlbiwgd2hpbGUgdGhlIGN1cnJlbnQgc3BsaXQga2VlcHMgdGhlDQo+IGNvbW1vbiBj
YXNlIHNpbXBsZSBhbmQgc3RydWN0dXJlZC4NCj4NCj4gVGhpcyBpcyBhbHNvIGNsb3NlIHRvIHdo
YXQgTGludXggZG9lczogSUlEUi1iYXNlZCBtYXRjaGluZyByZW1haW5zIHRoZQ0KPiBnZW5lcmlj
IGRlY2xhcmF0aXZlIG1lY2hhbmlzbSwgYW5kIHBsYXRmb3JtLXNwZWNpZmljIGNoZWNrcyBzdWNo
IGFzDQo+IGNvbXBhdGlibGUgc3RyaW5ncyBhcmUgYWRkZWQgb25seSB3aGVyZSBuZWVkZWQuDQo+
DQo+IFRoYXQgc2FpZCwgSSBhZ3JlZSB0aGF0IHRoZSBjYWxsYmFja3MgaW50cm9kdWNlZCBpbiB0
aGlzIHNlcmllcyBhcmUgYWxsDQo+IGRvaW5nIHJvdWdobHkgdGhlIHNhbWUga2luZCBvZiBwbGF0
Zm9ybSBpZGVudGlmaWNhdGlvbi4gQSByZWFzb25hYmxlDQo+IGZvbGxvdy11cCBjbGVhbnVwIHdv
dWxkIGJlIHRvIG1vZGVsIHRoaXMgbW9yZSBnZW5lcmljYWxseSwgZm9yIGV4YW1wbGUNCj4gYnkg
YWRkaW5nIGFuIG9wdGlvbmFsIGNvbXBhdGlibGUgc3RyaW5nIGxpc3QgdG8gc3RydWN0IGl0c19x
dWlyaywgYW5kDQo+IHJlc2VydmluZyBtYXRjaCgpIGZvciBjYXNlcyB0aGF0IGNhbm5vdCBiZSBl
eHByZXNzZWQgdGhyb3VnaCBzdGF0aWMNCj4gZGF0YS4NCj4NCj4gU28gdGhlIGludGVudCBoZXJl
IHdhcyB0byBrZWVwIHRoZSB0YWJsZSBjbGVhbiwgd2l0aCBtYXRjaGluZyBsb2dpYw0KPiBlZmZl
Y3RpdmVseSBiZWluZzoNCj4NCj4gICBxdWlya19tYXRjaCA9IElJRFIgbWF0Y2ggJiYgKG5vIGV4
dHJhIG1hdGNoIHJ1bGUgfHwgZXh0cmEgbWF0Y2ggcGFzc2VzKQ0KPg0KPiBJZiB5b3UgcHJlZmVy
LCBJIGNhbiByZXdvcmsgdGhpcyBlaXRoZXIgaW50byBhIGZ1bGx5IGNhbGxiYWNrLWJhc2VkDQo+
IHNjaGVtZSwgb3IgaW50cm9kdWNlIGdlbmVyaWMgY29tcGF0aWJsZS1zdHJpbmcgbWF0Y2hpbmcg
aW4gdGhpcyBzZXJpZXMNCj4gYW5kIGRyb3AgdGhlIG1hdGNoKCkgY2FsbGJhY2sgZm9yIG5vdy4N
Cg0KV2VsbCwgSSBkb24ndCB0aGluayB0aGF0IGludHJvZHVjaW5nICJjb21wYXRpYmxlIiBzdHJp
bmcgbWF0Y2hpbmcgd2lsbA0KZG8gYW55IGdvb2QuIEFjdHVhbGx5LCBJIHRoaW5rIHRoYXQgaXQg
d2lsbCBpbnRyb2R1Y2UgbW9yZSBwcm9ibGVtcy4NCg0KV2hhdCB5b3UgY2FuIGRvLCBpcyB0byBp
bnRyb2R1Y2UgYW4gYWRkaXRpb25hbCBkYXRhOg0KDQpzdHJ1Y3QgaXRzX3F1aXJrIHsNCgljb25z
dCBjaGFyICpkZXNjOw0KCWJvb2wgKCptYXRjaCkoY29uc3Qgc3RydWN0IGhvc3RfaXRzICpod19p
dHMsIHZvaWQgKnByaXYpOw0KCXZvaWQgKnByaXY7DQoJdWludDMyX3QgZmxhZ3M7DQp9Ow0KDQpz
dHJ1Y3QgaXRzX2lpZHJfbWF0Y2ggew0KCXVpbnQzMl90IGlpZHI7DQoJdWludDMyX3QgbWFzazsN
Cn07DQoNCnN0YXRpYyBib29sIGlpZHJfbWF0Y2goY29uc3Qgc3RydWN0IGhvc3RfaXRzICpod19p
dHMsIHZvaWQgKnByaXYpOw0Kc3RhdGljIGJvb2wgcGxhdGZvcm1fY29tcGF0YmlsZV9tYXRjaChj
b25zdCBzdHJ1Y3QgaG9zdF9pdHMgKmh3X2l0cywgdm9pZCAqcHJpdik7DQoNCnN0YXRpYyBzdHJ1
Y3QgaXRzX3F1aXJrIHF1aXJrc1tdID0gew0KCXsubWF0Y2ggPSBpaWRyX21hdGNoLA0KCSAucHJp
diA9ICYoc3RydWN0IGl0c19paWRyX21hdGNoKSB7LmlpZHIgPSAweGFhYWEsIC5tYXNrID0gMHhi
YmJifX0sDQoJey5tYXRjaCA9IHBsYXRmb3JtX2NvbXBhdGJpbGVfbWF0Y2gsDQoJIC5wcml2ID0g
InJlbmVzYXMscjhhNzc5ZzAifSwNCn07DQoNClNvbWV0aGluZyBsaWtlIHRoYXQuIEluIHRoaXMg
d2F5IHlvdSBjYW4gdXNlIGVpdGhlciBhIGdlbmVyaWMgcHJlZGljYXRlDQpmdW5jdGlvbiBvciBp
bXBsZW1lbnQgeW91ciBvd24gZm9yIG1vcmUgY29tcGxleCBjYXNlcy4NCg0KPg0KPj4NCj4+ID4g
QEAgLTY0LDExICs2NSwyNCBAQCBzdHJ1Y3QgaXRzX3F1aXJrIHsNCj4+ID4NCj4+ID4gIHN0YXRp
YyB1aW50MzJfdCBfX3JvX2FmdGVyX2luaXQgaXRzX3F1aXJrX2ZsYWdzOw0KPj4gPg0KPj4gPiAr
c3RhdGljIGJvb2wgZ2ljdjNfaXRzX21hdGNoX3F1aXJrX2dlbjQoY29uc3Qgc3RydWN0IGhvc3Rf
aXRzICpod19pdHMpDQo+PiA+ICt7DQo+PiA+ICsgICAgaWYgKCAhaHdfaXRzLT5kdF9ub2RlICkN
Cj4+ID4gKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KPj4gPiArDQo+PiA+ICsgICAgaWYgKCAhZHRf
bWFjaGluZV9pc19jb21wYXRpYmxlKCJyZW5lc2FzLHI4YTc3OWYwIikgJiYNCj4+ID4gKyAgICAg
ICAgICFkdF9tYWNoaW5lX2lzX2NvbXBhdGlibGUoInJlbmVzYXMscjhhNzc5ZzAiKSApDQo+PiA+
ICsgICAgICAgIHJldHVybiBmYWxzZTsNCj4+ID4gKw0KPj4gPiArICAgIHJldHVybiB0cnVlOw0K
Pj4gPiArfQ0KPj4gPiArDQo+PiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGl0c19xdWlyayBpdHNf
cXVpcmtzW10gPSB7DQo+PiA+ICAgICAgew0KPj4gPiAgICAgICAgICAuZGVzYyAgPSAiUi1DYXIg
R2VuNCIsDQo+PiA+ICAgICAgICAgIC5paWRyICA9IDB4MDIwMTc0M2IsDQo+PiA+ICAgICAgICAg
IC5tYXNrICA9IDB4ZmZmZmZmZmZVLA0KPj4gPiArICAgICAgICAubWF0Y2ggPSBnaWN2M19pdHNf
bWF0Y2hfcXVpcmtfZ2VuNCwNCj4+ID4gICAgICAgICAgLmZsYWdzID0gSE9TVF9JVFNfV09SS0FS
T1VORF9OQ19OUyB8DQo+PiA+ICAgICAgICAgICAgICAgICAgIEhPU1RfSVRTX1dPUktBUk9VTkRf
MzJCSVRfQUREUiwNCj4+ID4gICAgICB9LA0KPj4gPiBAQCAtNzcsNyArOTEsOCBAQCBzdGF0aWMg
Y29uc3Qgc3RydWN0IGl0c19xdWlyayBpdHNfcXVpcmtzW10gPSB7DQo+PiA+ICAgICAgfQ0KPj4g
PiAgfTsNCj4+ID4NCj4+ID4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaXRzX3F1aXJrICpnaWN2M19p
dHNfZmluZF9xdWlyayh1aW50MzJfdCBpaWRyKQ0KPj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBp
dHNfcXVpcmsgKmdpY3YzX2l0c19maW5kX3F1aXJrKA0KPj4gPiArICAgIGNvbnN0IHN0cnVjdCBo
b3N0X2l0cyAqaHdfaXRzLCB1aW50MzJfdCBpaWRyKQ0KPj4gPiAgew0KPj4gPiAgICAgIGNvbnN0
IHN0cnVjdCBpdHNfcXVpcmsgKnF1aXJrID0gaXRzX3F1aXJrczsNCj4+ID4NCj4+ID4gQEAgLTg2
LDcgKzEwMSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaXRzX3F1aXJrICpnaWN2M19pdHNfZmlu
ZF9xdWlyayh1aW50MzJfdCBpaWRyKQ0KPj4gPiAgICAgICAgICBpZiAoIHF1aXJrLT5paWRyICE9
IChxdWlyay0+bWFzayAmIGlpZHIpICkNCj4+ID4gICAgICAgICAgICAgIGNvbnRpbnVlOw0KPj4g
Pg0KPj4gPiAtICAgICAgICByZXR1cm4gcXVpcms7DQo+PiA+ICsgICAgICAgIGlmICggIXF1aXJr
LT5tYXRjaCB8fCBxdWlyay0+bWF0Y2goaHdfaXRzKSApDQo+PiA+ICsgICAgICAgICAgICByZXR1
cm4gcXVpcms7DQo+DQo+IEFsc28sIHdoaWxlIHJldmlld2luZyBnaWN2M19pdHNfZmluZF9xdWly
aygpIEkgcmVhbGl6ZWQgdGhhdCB0aGUNCj4gY3VycmVudCBmaXJzdC1tYXRjaCBzZW1hbnRpY3Mg
bWF5IG5vdCBzY2FsZSB3ZWxsLiBTaW5jZSB0aGUgdGFibGUNCj4gc3VwcG9ydHMgcGFydGlhbCBJ
SURSIG1hc2tzLCB3ZSBjb3VsZCBoYXZlIGEgYnJvYWQgZW50cnkgY292ZXJpbmcNCj4gYW4gZW50
aXJlIEdJQyBmYW1pbHkgYWxvbmdzaWRlIGEgbmFycm93ZXIgZW50cnkgZm9yIGEgc3BlY2lmaWMN
Cj4gcGxhdGZvcm0uIFdpdGggZmlyc3QtbWF0Y2gsIG9ubHkgb25lIG9mIHRoZW0gd291bGQgZXZl
ciBhcHBseSwgc28NCj4gdGhlaXIgZmxhZ3MgY291bGQgbmV2ZXIgYmUgY29tYmluZWQuIFRoZSBz
YW1lIGlzc3VlIGFwcGxpZXMgdG8gdGhlDQo+IG1hdGNoKCkgY2FsbGJhY2s6IGlmIGFuIGVudHJ5
IHdpdGggbWF0Y2goKSBpcyBjaGVja2VkIGZpcnN0IGFuZA0KPiBmYWlscywgdGhlIGxvb3AgZG9l
cyBjb250aW51ZSwgYnV0IGlmIGl0IHN1Y2NlZWRzLCBhbGwgc3Vic2VxdWVudA0KPiBlbnRyaWVz
IGZvciB0aGUgc2FtZSBJSURSIC0tIHdoZXRoZXIgd2l0aCBkaWZmZXJlbnQgbWFza3Mgb3IgZGlm
ZmVyZW50DQo+IG1hdGNoKCkgcHJlZGljYXRlcyAtLSBhcmUgc2tpcHBlZCBlbnRpcmVseS4NCj4N
Cj4gSWYgb3RoZXJzIGFncmVlLCBJIHdpbGwgc3dpdGNoIHRvIGFjY3VtdWxhdGluZyBmbGFncyBm
cm9tIGFsbA0KPiBtYXRjaGluZyBlbnRyaWVzIGluIHYyLg0KDQpJIGRvbid0IHRoaW5rIHRoYXQg
dGhlcmUgaXMgYSBnb29kIHVzZSBjYXNlIGZvciB0aGlzIHJpZ2h0IG5vdywgc28NCnBlcnNvbmFs
bHkgSSdkIHNraXAgZmxhZ3MgYWNjdW11bGF0aW9uLiBKdXN0IHdyaXRlIGEgY29tbWVudCB0aGF0
IGNvZGUNCnN0b3BzIGFuZCBmaXJzdCBtYXRjaCwgc28gbW9yZSBzcGVjaWZpYyBxdWlya3Mgc2hv
dWxkIGdvIGZpcnN0Lg0KDQotLSANCldCUiwgVm9sb2R5bXly


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268221.1557525 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OGo-0007nX-It; Tue, 31 Mar 2026 01:51:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268221.1557525; Tue, 31 Mar 2026 01: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 1w7OGo-0007nP-DV; Tue, 31 Mar 2026 01:51:54 +0000
Received: by outflank-mailman (input) for mailman id 1268221;
 Tue, 31 Mar 2026 01:51:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OGm-0007nJ-Ov
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:51:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OGl-000oDK-0v
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:51:51 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb288a-e002-0a2a0a5209dd-0a2a4506a066-24
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:51:50 +0200
Received: from [52.101.66.109]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28b6-3034-0a2a45060019-3465426d3ab7-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:51:50 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by PAWPR03MB9202.eurprd03.prod.outlook.com (2603:10a6:102:342::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:51:48 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01: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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iEo0ZPjJYR3BxdblNM13gx19TrALIerrTcr/k846edYuaBBgupePmSXTl4tqJfTArTu8OiyWj+TKmuGN127vvEWcgJQ1H5SlkvFPMirLaSk3iW6GEkPA6xzmFjtg50kX4NJ54QlBUdoP6gpx2maig3iWFGB4DX38WMv6WP1fuzO9L5g1WPxDR+L/YsC/AU9CXhV02Oye/fupmZMDHLRxeGNVnuwtU2IaG2uozsFJfpWz/da8a5AgqgjFys7uqTndfPczuTQBZPxrlLcC2g09KMKkPOOv3OUZbs1fFZl112ovpDuVl63Y3u1qMc0P7MYWj6cQhvWoDcRoRohcC7WdXQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1V4lSzQ+oc1K0UJmqyacChxdIgp0F4+8wJdNEg6E2TQ=;
 b=pVXjCfdWpC9oIZZ0fIrJDPsvnP11yTD8h2FuhVfNqaFigw39OJcUxbap4TZLVb0Dmk775YZLMHpgJDvKm+5BC5swkGZpqcg9llk6lPLSwYCY8rOOzc0oEf9atzEbTTTh54sp0QquMM/KbNFuXscA0Xc1KsZR9jDAH7RH1A+eLLDpgDKvOHlY1LGYtBPJjLX/PuRbUGt70w5ZIGYtSZlOI1Er4m4EPd6bOPdLrRJR4/SQFO/P77yyvrlYWre5onaN0uSPoCOzXeuG082qSQCvSD3OGYf9ibIkW2tJNggI1A4II7qykS4Ig58fJGWO5yFDaWOR3BCA/GpRm75PkdMOMw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1V4lSzQ+oc1K0UJmqyacChxdIgp0F4+8wJdNEg6E2TQ=;
 b=F0XTam0b05FCBlLK4xCtN3eRViJBuqdDy/zu42tq9xlfMoQiniXdf3md4+C5tro0nmgtvj9xjktybxnNsKqBozAounBSXY9A1gIzpfCiVzcZxvvY1MkGdku+wKMpO/GjzzRzc2XY5VXL38uh1u6+3uwrHVMfhxV/u4yEyROLh+jyl2K1u1mZUbHlPsBinhHyhoJABU4rg+hYRK4Rngx9417Y0MWv3RTfaEiIgz2btNVyL3v7PT/VRDogAffIhEObrpJM3X1W4p3O1bhtnKOEvBtw8h1uGvlfoggul93iN27vrl4SgmL20MGd4CxNAm6MNu5XMp9eYG/WgZZQQwB7lw==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Milan Djokic <milan_djokic@epam.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Rahul Singh <rahul.singh@arm.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Nick Rosbrook
	<enr0n@ubuntu.com>, George Dunlap <gwd@xenproject.org>, Juergen Gross
	<jgross@suse.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v3 00/23] Add SMMUv3 Stage 1 Support for Xen guests
Thread-Topic: [PATCH v3 00/23] Add SMMUv3 Stage 1 Support for Xen guests
Thread-Index: AQHcwLDvq2DoOU/dgEydgvmFX6euvA==
Date: Tue, 31 Mar 2026 01:51:48 +0000
Message-ID: <cover.1774918270.git.milan_djokic@epam.com>
References: <cover.1774305918.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774305918.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|PAWPR03MB9202:EE_
x-ms-office365-filtering-correlation-id: 447d46bc-5641-4d7b-472f-08de8ec8121b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|7416014|366016|38070700021|18002099003|56012099003|22082099003;
x-microsoft-antispam-message-info:
 Z8OcQ0k4uIQvQcG5yNREHkocHMdKExTQPtR4DwzBGGoseU3DX+xLJAoszvAAX15n5oYPilZhP56M4Y6hhQC1y+37E339xvMHCfTTSEuvmNAiqJZfQCuEUJwDLMhWlXj9bMu1m+jQTPbtdYtMVasxu2rkkqwMBWJibnNvwg3xMUDRUZMMJTPgKo0mpDwpagPSZmJJErpiS9iQXEuauXKo3GOmlUbomuTiQpd77ZuXS3q6AnslxfkH/jgbbTOyCLTzW58gh4ymBDnQmTGCrZTcjXwr4ZFssCvAVUNGy6Cqd3pg/lFcovjt4tpfIDmmSqZvKg7DwivEwILB//H9PeZUwECdqJfFlg9CJtSSao0/8nCdB4q9UMaob2W01nGmt7wSgFWIeZLSfo1i5K4fbN7XBinwAVXl5VmiILDVliBeU/jzP+mdskb37sH+fTtJ9JJlEJ7AojKrEAivrQY6eXJgA2Mf2lUjhr+1vPq2/a/fnwQOXq4/14AYZPG4yOxurl6/vvBx4MFOXKrHSi1cOqkLC1TwDT805LcyXYa3Z+ykjBgPsphgyLoTx/mRQ2Td9Z0uqVF3e9o5lNbCXB/ebQPiHVVFJvjW4pE6SNQf4ZLWl6up7glp8j2EIcrlF1tFq+284QXVt9+MJabOIdCj2fEIWpWywCCz/BOdZ76TAbOEjD6lodPaadlvSYMAve0FBOBWKpapuvfxp5eC/aSwE5o9KA5w4ycTZd84nkLPl6A6GxvLQQq8dhUqzgcDJ42DV3BrHH0ZtiILvx0CyEIYQlD9IvTqnzYCy3PFmdyBwcf2myo=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(366016)(38070700021)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?WVlVQU9vamlvTlc3VE10ZjJCK0NSeHBDMHA5NDJybTN4WFM5WGNWRDBUME5T?=
 =?utf-8?B?N2tuQU0vcktuSUhTQXdIQWFORm4yKzljZXFRQWxGaEJvWnVtaUVla2lrYXFk?=
 =?utf-8?B?ZU4yVGZuS3VOTSsyWUxjTVp5YWdvaU55cjh1V29rd3U4OXNjR2FKV01TSEJh?=
 =?utf-8?B?RndlU09GWXc3dHNsR285VGpCOFpUbWRXOW1ZU2liS3B5NG9DNjNiQzBNNUJY?=
 =?utf-8?B?UmJrbmV0QjBXVXdLQ0M3aXg4MFd3M01QWGJWUEg5L25YTXorRTJNcTBRUy9t?=
 =?utf-8?B?VVp1V1BHVG1VNEU4TGE0TzJtZFFGYUY5eTl3KzlBQll4eUJpelFmcUcrckhp?=
 =?utf-8?B?aFR1SWdYVUgrb0JKV2pqQ0s5S2kxMjRrMm8wNjI5eGhHYzQzdzZXOThFVWls?=
 =?utf-8?B?NVZNMXFIc09WRXhlYkZFNUxja0laSEtGZXlMN2ZMQlR6ME9HVGFOMHdUQldL?=
 =?utf-8?B?NjlxTWdOWGVBa1haM296dGQ1YWpWS1JESUU1REdZQjQ3RTJLWit5ell1NU5Y?=
 =?utf-8?B?R1ZRWXQ3a2pLclBIL1ZnSHBZNE5ZVndKUUNxTW9iRlJKV1Uvam1LRW03SmVS?=
 =?utf-8?B?S21aRVk1VlVFYVFIcFA4WUZvQmJ6UVZTejFiY3ExZGhoVk9JSlFxbXZDd3NV?=
 =?utf-8?B?Tm1WaTAvSjMzTWNLdmRyRFVXRzh1c01HWkM3Skl2WktKelhVTVd1WkYrK1dp?=
 =?utf-8?B?UTg2WTFXZFdBZlVFeW45NzRoTGlreCtad0hlU2Z2eG0vQVUxZ2RPbFFOK1dk?=
 =?utf-8?B?SEU4aXJnYldPY1RiZXVqdnNCeVRleE1GZG9oZFg0WVUwaXlBbVY1ZjJnYStL?=
 =?utf-8?B?SE5HbkE5d0hHZnk3TWVZUGVVN2xGaU1hbHBTRHpxK0J0NjBmWmRyQ0ptWjFW?=
 =?utf-8?B?dDA5cmZzeGRwNkpOaDhkUmVDWGdyenNueUUrUVNBUHlJUUs0UzlPemkrSGZq?=
 =?utf-8?B?OWpWbktmTkJ6VjdxVkZxa3YvNTZGZkdiNkR1RTZIMDAyZ1BzbGhkWWUwWDVz?=
 =?utf-8?B?QzJtYlhySXlvbkxJZ3lScGl0WXZqcXRJblRkdWFzdjF4UW1uSC9BSXlSL0k3?=
 =?utf-8?B?QW5TVEJVOXFkOTBRMHVXS29xS3d2M3RINWIxalpTR09VVnJGNnVXd3dianNn?=
 =?utf-8?B?b1AzQlBxekJyTEJTbGhwdFBLK2VBcDZDMWpZRVg2ZnB0MmNoK1pueTBvWUgw?=
 =?utf-8?B?Qm1EUS9xdkovK01XSmVRY0VLUDZIRHErbVdld0E0dkQreTVRUmpqTERmaVdV?=
 =?utf-8?B?eFFpSWVCaG5ubGRUbER5RUd0MWo1Yk1YcEpFcGVKY2dNRnFFbXJMbVR0eFV4?=
 =?utf-8?B?ZGdvWElUMXdrRWo5T2xicFo1K0Q4RFVRMlIzZlA3Y0JyZWZFRVRvc0tOdFdo?=
 =?utf-8?B?bkFZZk1laklzUys1bEpxWjZCNE5zZDFTNnNoZnQvcmF3OUZzdFE3TVJkcFh1?=
 =?utf-8?B?OS9jTGhyUVNlQWxmd3EyVEVkaGFWSmFPU0dEeHhKMytKZzBLcWFXNEFSeVpZ?=
 =?utf-8?B?RXNQWVRzd3d5TnZOSHZhUVFjM3lqdFZtUThhWDQ2cHo3dmRibStERFQydVdD?=
 =?utf-8?B?bitRc2JVZ2JveWZocWFGUyt5cFFmZnRTTWVJdHpWVXl5c3E3clBtWUpFT0o5?=
 =?utf-8?B?Vk1BTGtwdU9WUUVDTG96UzhlZE40UnI0RE9zV1FMWXNveTdzbzZGSHF5UTls?=
 =?utf-8?B?cGxTcHRCMzM1TTEvL3d2S1VlYUwyb21MWmd6eWo2b01Oem9wdmtTb3Nrb3hE?=
 =?utf-8?B?cERXVXFJUTNxc202ZDBXc2o4TUt6bWd5N3JaVTg1dTVjVk80WWpVZ05WNi9s?=
 =?utf-8?B?dE1HRmpzSWFmeFF3MFNBaDVUL3VwQnFCUEU2ODgvWStWWjZNZUZERU5rdzNj?=
 =?utf-8?B?Mmw0djVYUzJhN0pxVUZPN1U0NWhEaHBocWJudVlCYjdFenZyak8zUFhCd2Vk?=
 =?utf-8?B?a2N4Z3pGRmxicjRNMXZBUGZ6SFlHRlZiK2FObnNJVHJTRnhWclVINWkwbThp?=
 =?utf-8?B?RDVJandGMkRQQnNmSWVIZkJRUGM4NW1jV0YyREZ3ZmJ1amd3dW9xdzkvNzYz?=
 =?utf-8?B?VGd4d1lrcUJEa3RiajZNWTNKY0txVFA2c2ZTdzFZbXZJZlV5dWk4akxML3hq?=
 =?utf-8?B?S0lpQVBCMGthUHlJQTdHUEkrWWxRYThvbEtETnhJaVJvSzh4R1Qyc1NaclVO?=
 =?utf-8?B?Q3BXZk03UTNlS0dtL2xHU3IwMG90V1RQNmtNT0tvQ0F2VC83K2ZFMFZGVTc3?=
 =?utf-8?B?d3NFVWg3UmNHQS9xSXpSYzc0M2YrSUhBM3draXdDREkwZkxCSGhpQlpESGJu?=
 =?utf-8?B?SkhrQWN1dG1FQ0pscjBYRFVuZktaanBHMG9CS2ZBQ0VkcDlWVzVPdz09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <4E59AF8B5C7BF84FA02C71C8A65CAC40@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: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 447d46bc-5641-4d7b-472f-08de8ec8121b
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:51:48.1555
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: O/DdulF7JoIzS0/pSPHbHxCiwG/OqL+9vd+cqRY3fk62XaXu57H+z/Tb9ev4Z9SS5PpJDdbJrULCMQorOTB4Kw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9202
X-purgate-ID: tlsNG-16d1c6/1774921910-787801C2-BDBD1400/0/0
X-purgate-type: clean
X-purgate-size: 8126

VGhpcyBwYXRjaCBzZXJpZXMgcHJvdmlkZXMgZW11bGF0ZWQgU01NVXYzIHN1cHBvcnQgaW4gWGVu
LCBlbmFibGluZyBzdGFnZS0xDQp0cmFuc2xhdGlvbiBmb3IgdGhlIGd1ZXN0IE9TLg0KDQpTdGFn
ZSAxIHRyYW5zbGF0aW9uIHN1cHBvcnQgaXMgcmVxdWlyZWQgdG8gcHJvdmlkZSBpc29sYXRpb24g
YmV0d2VlbiBkaWZmZXJlbnQNCmRldmljZXMgd2l0aGluIE9TLiBYZW4gYWxyZWFkeSBzdXBwb3J0
cyBTdGFnZSAyIHRyYW5zbGF0aW9uIGJ1dCB0aGVyZSBpcyBubw0Kc3VwcG9ydCBmb3IgU3RhZ2Ug
MSB0cmFuc2xhdGlvbi4gVGhlIGdvYWwgb2YgdGhpcyB3b3JrIGlzIHRvIHN1cHBvcnQgU3RhZ2Ug
MQ0KdHJhbnNsYXRpb24gZm9yIFhlbiBndWVzdHMuDQoNClRoaXMgcGF0Y2ggc2VyaWVzIHJlcHJl
c2VudHMgYSBjb250aW51YXRpb24gb2Ygd29yayBmcm9tIFJhaHVsIFNpbmdoOg0KaHR0cHM6Ly9w
YXRjaHdvcmsua2VybmVsLm9yZy9wcm9qZWN0L3hlbi1kZXZlbC9jb3Zlci9jb3Zlci4xNjY5ODg4
NTIyLmdpdC5yYWh1bC5zaW5naEBhcm0uY29tLw0KT3JpZ2luYWwgcGF0Y2ggc2VyaWVzIGlzIGFs
aWduZWQgd2l0aCB0aGUgbmV3ZXN0IFhlbiBzdHJ1Y3R1cmUsIHdpdGggdGhlIGFkZGl0aW9uDQpv
ZiB0cmFuc2xhdGlvbiBsYXllciB3aGljaCBwcm92aWRlcyAxOk4gdklPTU1VLT5wSU9NTVUgbWFw
cGluZywgaW4gb3JkZXIgdG8NCnN1cHBvcnQgcGFzc3Rocm91Z2ggb2YgdGhlIGRldmljZXMgYXR0
YWNoZWQgdG8gZGlmZmVyZW50IHBoeXNpY2FsIElPTU1Vcy4NCg0KV2UgY2Fubm90IHRydXN0IHRo
ZSBndWVzdCBPUyB0byBjb250cm9sIHRoZSBTTU1VdjMgaGFyZHdhcmUgZGlyZWN0bHkgYXMNCmNv
bXByb21pc2VkIGd1ZXN0IE9TIGNhbiBjb3JydXB0IHRoZSBTTU1VdjMgY29uZmlndXJhdGlvbiBh
bmQgbWFrZSB0aGUgc3lzdGVtDQp2dWxuZXJhYmxlLiBUaGUgZ3Vlc3QgZ2V0cyB0aGUgb3duZXJz
aGlwIG9mIHRoZSBzdGFnZSAxIHBhZ2UgdGFibGVzIGFuZCBhbHNvDQpvd25zIHN0YWdlIDEgY29u
ZmlndXJhdGlvbiBzdHJ1Y3R1cmVzLiBUaGUgWGVuIGhhbmRsZXMgdGhlIHJvb3QgY29uZmlndXJh
dGlvbg0Kc3RydWN0dXJlIChmb3Igc2VjdXJpdHkgcmVhc29ucyksIGluY2x1ZGluZyB0aGUgc3Rh
Z2UgMiBjb25maWd1cmF0aW9uLg0KDQpYRU4gd2lsbCBlbXVsYXRlIHRoZSBTTU1VdjMgaGFyZHdh
cmUgYW5kIGV4cG9zZSB0aGUgdmlydHVhbCBTTU1VdjMgdG8gdGhlDQpndWVzdC4gR3Vlc3QgY2Fu
IHVzZSB0aGUgbmF0aXZlIFNNTVV2MyBkcml2ZXIgdG8gY29uZmlndXJlIHRoZSBzdGFnZSAxDQp0
cmFuc2xhdGlvbi4gV2hlbiB0aGUgZ3Vlc3QgY29uZmlndXJlcyB0aGUgU01NVXYzIGZvciBTdGFn
ZSAxLCBYRU4gd2lsbCB0cmFwDQp0aGUgYWNjZXNzIGFuZCBjb25maWd1cmUgaGFyZHdhcmUuDQoN
ClNNTVV2MyBEcml2ZXIoR3Vlc3QgT1MpIC0+IENvbmZpZ3VyZSB0aGUgU3RhZ2UtMSB0cmFuc2xh
dGlvbiAtPg0KWEVOIHRyYXAgYWNjZXNzIC0+IFhFTiBTTU1VdjMgZHJpdmVyIGNvbmZpZ3VyZSB0
aGUgSFcuDQoNClRoZSBmaW5hbCBwYXRjaCBzZXJpZXMgY29tbWl0IHByb3ZpZGVzIGEgZGVzaWdu
IGRvY3VtZW50IGZvciB0aGUgZW11bGF0ZWQNCklPTU1VIChhcm0tdmlvbW11LnJzdCksIHdoaWNo
IHdhcyBwcmV2aW91c2x5IGRpc2N1c3NlZCB3aXRoIHRoZSBtYWludGFpbmVycy4NCkRldGFpbHMg
cmVnYXJkaW5nIGltcGxlbWVudGF0aW9uLCBmdXR1cmUgd29yayBhbmQgc2VjdXJpdHkgcmlza3Mg
YXJlIG91dGxpbmVkDQppbiB0aGlzIGRvY3VtZW50Lg0KDQotLS0NCkNoYW5nZXMgaW4gdjI6DQog
LSBVcGRhdGVkIGRlc2lnbiBhbmQgaW1wbGVtZW50YXRpb24gd2l0aCB2SU9NTVUtPnBJT01NVSBt
YXBwaW5nIGxheWVyDQogLSBBZGRyZXNzZWQgc2VjdXJpdHkgcmlza3MgaW4gdGhlIGRlc2lnbiwg
cHJvdmlkZWQgaW5pdGlhbCBwZXJmb3JtYW5jZQ0KICAgbWVhc3VyZW1lbnRzDQogLSBBZGRyZXNz
ZWQgY29tbWVudHMgZnJvbSBwcmV2aW91cyB2ZXJzaW9uDQogLSBUZXN0ZWQgb24gUmVuZXNhcyBS
LUNhciBwbGF0Zm9ybSwgaW5pdGlhbCBwZXJmb3JtYW5jZSBtZWFzdXJlbWVudHMgZm9yDQogICBz
dGFnZS0xIHZzIHN0YWdlLTEtbGVzcyBndWVzdHMNCi0tLQ0KDQotLS0NCkNoYW5nZXMgaW4gdjM6
DQogLSBCdW1wIGRvbWN0bCB2ZXJzaW9uLCBhZGRlZCBleHBsaWNpdCBwYWRkaW5nIGZvciB0aGUg
bmV3IGRvbWN0bCBzdHJ1Y3R1cmVzDQogLSBSZW1vdmUgdW5uZWNlc3NhcnkgY2hhbmdlcyBhY2Nv
cmRpbmcgdG8gcmV2aWV3IGNvbW1lbnRzDQogLSBBZGQgIkFSTSIgcHJlZml4IGZvciB2SU9NTVUg
S2NvbmZpZyBvcHRpb25zLCBzaW5jZSBvbmx5IEFSTSBhcmNoaXRlY3R1cmUgaXMNCiAgIHN1cHBv
cnRlZCBhdCB0aGlzIHBvaW50IA0KIC0gUmUtZ2VuZXJhdGUgZ28gY29kZQ0KIC0gQWRkIG1pc3Np
bmcgY29tbWl0IHNpZ24tb2ZmIHRhZ3MNCi0tLQ0KDQpKZWFuLVBoaWxpcHBlIEJydWNrZXIgKDEp
Og0KICB4ZW4vYXJtOiBzbW11djM6IE1haW50YWluIGEgU0lELT5kZXZpY2Ugc3RydWN0dXJlDQoN
Ck1pbGFuIERqb2tpYyAoMyk6DQogIHhlbi9hcm06IHZJT01NVSB2U0lELT5wU0lEIG1hcHBpbmcg
bGF5ZXINCiAgbGlieGwvYXJtOiBJbnRyb2R1Y2UgZG9tY3RsIGNvbW1hbmQgZm9yIElPTU1VIHZT
SUQvdlJJRCBtYXBwaW5nDQogIGRvYy9hcm06IHZJT01NVSBkZXNpZ24gZG9jdW1lbnQNCg0KUmFo
dWwgU2luZ2ggKDE5KToNCiAgeGVuL2FybTogc21tdXYzOiBBZGQgc3VwcG9ydCBmb3Igc3RhZ2Ut
MSBhbmQgbmVzdGVkIHN0YWdlIHRyYW5zbGF0aW9uDQogIHhlbi9hcm06IHNtbXV2MzogQWxsb2Mg
aW9fZG9tYWluIGZvciBlYWNoIGRldmljZQ0KICB4ZW4vYXJtOiB2SU9NTVU6IGFkZCBnZW5lcmlj
IHZJT01NVSBmcmFtZXdvcmsNCiAgeGVuL2FybTogdnNtbXV2MzogQWRkIGR1bW15IHN1cHBvcnQg
Zm9yIHZpcnR1YWwgU01NVXYzIGZvciBndWVzdHMNCiAgeGVuL2RvbWN0bDogQWRkIFhFTl9ET01D
VExfQ09ORklHX1ZJT01NVV8qIGFuZCB2aW9tbXUgY29uZmlnIHBhcmFtDQogIHhlbi9hcm06IHZJ
T01NVTogQWRkIGNtZGxpbmUgYm9vdCBvcHRpb24gInZpb21tdSA9IDxzdHJpbmc+Ig0KICB4ZW4v
YXJtOiB2c21tdXYzOiBBZGQgc3VwcG9ydCBmb3IgcmVnaXN0ZXJzIGVtdWxhdGlvbg0KICB4ZW4v
YXJtOiB2c21tdXYzOiBBZGQgc3VwcG9ydCBmb3IgY21kcXVldWUgaGFuZGxpbmcNCiAgeGVuL2Fy
bTogdnNtbXV2MzogQWRkIHN1cHBvcnQgZm9yIGNvbW1hbmQgQ01EX0NGR0lfU1RFDQogIHhlbi9h
cm06IHZzbW11djM6IEF0dGFjaCBTdGFnZS0xIGNvbmZpZ3VyYXRpb24gdG8gU01NVXYzIGhhcmR3
YXJlDQogIHhlbi9hcm06IHZzbW11djM6IEFkZCBzdXBwb3J0IGZvciBldmVudCBxdWV1ZSBhbmQg
Z2xvYmFsIGVycm9yDQogIHhlbi9hcm06IHZzbW11djM6IEFkZCAiaW9tbXVzIiBwcm9wZXJ0eSBu
b2RlIGZvciBkb20wIGRldmljZXMNCiAgeGVuL2FybTogdklPTU1VOiBJT01NVSBkZXZpY2UgdHJl
ZSBub2RlIGZvciBkb20wDQogIHhlbi9hcm06IHZzbW11djM6IEVtdWxhdGVkIFNNTVV2MyBkZXZp
Y2UgdHJlZSBub2RlIGZvciBkb20wbGVzcw0KICBhcm0vbGlieGw6IHZzbW11djM6IEVtdWxhdGVk
IFNNTVV2MyBkZXZpY2UgdHJlZSBub2RlIGluIGxpYnhsDQogIHhlbi9hcm06IHZzbW11djM6IEFs
bG9jIHZpcnEgZm9yIHZpcnR1YWwgU01NVXYzDQogIHhlbi9hcm06IHZzbW11djM6IEFkZCBzdXBw
b3J0IHRvIHNlbmQgc3RhZ2UtMSBldmVudCB0byBndWVzdA0KICBsaWJ4bC9hcm06IHZJT01NVTog
TW9kaWZ5IHRoZSBwYXJ0aWFsIGRldmljZSB0cmVlIGZvciBpb21tdXMNCiAgeGVuL2FybTogdklP
TU1VOiBNb2RpZnkgdGhlIHBhcnRpYWwgZGV2aWNlIHRyZWUgZm9yIGRvbTBsZXNzDQoNCiBkb2Nz
L2Rlc2lnbnMvYXJtLXZpb21tdS5yc3QgICAgICAgICAgICAgfCAzOTAgKysrKysrKysrKw0KIGRv
Y3MvbWFuL3hsLmNmZy41LnBvZC5pbiAgICAgICAgICAgICAgICB8ICAxMyArDQogZG9jcy9taXNj
L3hlbi1jb21tYW5kLWxpbmUucGFuZG9jICAgICAgIHwgICA5ICsNCiB0b29scy9nb2xhbmcveGVu
bGlnaHQvaGVscGVycy5nZW4uZ28gICAgfCAgIDIgKw0KIHRvb2xzL2dvbGFuZy94ZW5saWdodC90
eXBlcy5nZW4uZ28gICAgICB8ICAgNyArDQogdG9vbHMvaW5jbHVkZS9saWJ4bC5oICAgICAgICAg
ICAgICAgICAgIHwgICA1ICsNCiB0b29scy9pbmNsdWRlL3hlbmN0cmwuaCAgICAgICAgICAgICAg
ICAgfCAgMTIgKw0KIHRvb2xzL2xpYnMvY3RybC94Y19kb21haW4uYyAgICAgICAgICAgICB8ICAy
MyArDQogdG9vbHMvbGlicy9saWdodC9saWJ4bF9hcm0uYyAgICAgICAgICAgIHwgMjMwICsrKysr
LQ0KIHRvb2xzL2xpYnMvbGlnaHQvbGlieGxfdHlwZXMuaWRsICAgICAgICB8ICAgNiArDQogdG9v
bHMveGwveGxfcGFyc2UuYyAgICAgICAgICAgICAgICAgICAgIHwgICA5ICsNCiB4ZW4vYXJjaC9h
cm0vZG9tMGxlc3MtYnVpbGQuYyAgICAgICAgICAgfCAgNzIgKysNCiB4ZW4vYXJjaC9hcm0vZG9t
YWluLmMgICAgICAgICAgICAgICAgICAgfCAgMzQgKw0KIHhlbi9hcmNoL2FybS9kb21haW5fYnVp
bGQuYyAgICAgICAgICAgICB8IDEwMyArKy0NCiB4ZW4vYXJjaC9hcm0vZG9tY3RsLmMgICAgICAg
ICAgICAgICAgICAgfCAgMzQgKw0KIHhlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9kb21haW4uaCAg
ICAgICB8ICAgNCArDQogeGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2lvbW11LmggICAgICAgIHwg
ICA3ICsNCiB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vdmlvbW11LmggICAgICAgfCAxMTMgKysr
DQogeGVuL2NvbW1vbi9kZXZpY2UtdHJlZS9kb20wbGVzcy1idWlsZC5jIHwgIDU1ICstDQogeGVu
L2RyaXZlcnMvcGFzc3Rocm91Z2gvS2NvbmZpZyAgICAgICAgIHwgIDEzICsNCiB4ZW4vZHJpdmVy
cy9wYXNzdGhyb3VnaC9hcm0vTWFrZWZpbGUgICAgfCAgIDIgKw0KIHhlbi9kcml2ZXJzL3Bhc3N0
aHJvdWdoL2FybS9zbW11LXYzLmMgICB8IDM2OSArKysrKysrKy0NCiB4ZW4vZHJpdmVycy9wYXNz
dGhyb3VnaC9hcm0vc21tdS12My5oICAgfCAgNDkgKy0NCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3Vn
aC9hcm0vdmlvbW11LmMgICAgfCAgOTYgKysrDQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJt
L3ZzbW11LXYzLmMgIHwgOTU4ICsrKysrKysrKysrKysrKysrKysrKysrKw0KIHhlbi9kcml2ZXJz
L3Bhc3N0aHJvdWdoL2FybS92c21tdS12My5oICB8ICAzMiArDQogeGVuL2luY2x1ZGUvcHVibGlj
L2FyY2gtYXJtLmggICAgICAgICAgIHwgIDE1ICstDQogeGVuL2luY2x1ZGUvcHVibGljL2Rldmlj
ZV90cmVlX2RlZnMuaCAgIHwgICAxICsNCiB4ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmggICAg
ICAgICAgICAgfCAgMjQgKy0NCiB4ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaCAgICAgICAgICAgICAg
ICAgfCAgIDYgKw0KIHhlbi94c20vZmxhc2svaG9va3MuYyAgICAgICAgICAgICAgICAgICB8ICAg
NCArDQogeGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMgICAgIHwgICAyICsNCiAz
MiBmaWxlcyBjaGFuZ2VkLCAyNjQ2IGluc2VydGlvbnMoKyksIDUzIGRlbGV0aW9ucygtKQ0KIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBkb2NzL2Rlc2lnbnMvYXJtLXZpb21tdS5yc3QNCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgeGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3Zpb21tdS5oDQogY3JlYXRlIG1vZGUg
MTAwNjQ0IHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS92aW9tbXUuYw0KIGNyZWF0ZSBtb2Rl
IDEwMDY0NCB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vdnNtbXUtdjMuYw0KIGNyZWF0ZSBt
b2RlIDEwMDY0NCB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vdnNtbXUtdjMuaA0KDQotLSAN
CjIuNDMuMA0K


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268222.1557534 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OGv-00081F-Nb; Tue, 31 Mar 2026 01:52:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268222.1557534; Tue, 31 Mar 2026 01:52:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OGv-000817-KV; Tue, 31 Mar 2026 01:52:01 +0000
Received: by outflank-mailman (input) for mailman id 1268222;
 Tue, 31 Mar 2026 01:52:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OGu-00080k-7v
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:52:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OGt-00Cy64-GH
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:51:59 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb2851-5cb7-0a2a0a5109dd-0a2a450ce0c0-34
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:51:59 +0200
Received: from [40.107.162.115]
 (helo=PA4PR04CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28bf-f93d-0a2a450c0019-286ba273d9ed-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:51:59 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by PAWPR03MB9202.eurprd03.prod.outlook.com (2603:10a6:102:342::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:51:57 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01:51:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HsiXqiQ18oKYenCvDJuv643jjJ2sbiqq7vxoJsiF6R+i4T+SpYWa8cwKxCF7dPv1Ex9J94JSKu1l+UXFLdg1HdeAuFrpHh/SZWb8O9WhRH8A7qCD2tulnqzLHeQ9z02CgkMaOWooeAVhyQwwTyZah5XCLZy0pn6J3IpdFVFaoiKwEPbYi732PxWb47eMOr0VzVbdt66Rxe/n3FGXnWvgUUEeFitu2EUSJ4eSgYfWhdKt3yyr3k/XQ+9Pebyj19JvGe+3zoF4v3Ms0hMk1qMEdGlHQe7CyEAcPLgA3kkGOBXDb4LJVXbwvXLQePTkAUYorQLJfhngVDnRKAOF50dwag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Q7XogBKcOl28rCBoj5eBhnCjmXH5hva/MVY1Q1e3WbQ=;
 b=gemqmFeXZfK7lJekpDTLAGPZLjq1zW1VheXktbIqscLml3AHTivRM2WG7wfDe6YBQ2ElQE8uTQNoKHpaVe6Hg+GBt/3GviXTfrFm0k5dKhUIWeOZ8MUF8JDH9tpbxufWCvgAe4mb/MsP/J2wszI/UyfXit/AAu0ligqGYxRttHMqKcI4QM1swZia+NO69RKz0FLDANW2ABLHoQxU4czbtcAK4kamM0foo+6BIDKzhGMSaqqR6419vrDRfcpV46uDEewH5mLeYLE450KlNRfW4wzg/CLWfkZW2TkSl9AGNwdkyqII0PmIxJ451c8oi6sZxysTjFOxiKYV5aqtHC2/uA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Q7XogBKcOl28rCBoj5eBhnCjmXH5hva/MVY1Q1e3WbQ=;
 b=IChjGPoH1lmvGBZI7I1U+y6JfoD8ZjwYwA1oY7ItJp0whtCTHOq0grKOL41+f2iHUCX/O8XUd3/rrmPBM9hALcRGyorROspRVE800iszoGGmUAauvUcyPleASHouIO8w1ColfyMKcxnlm6sqyWEo0mXWbIclBfGK4Q0Hu54T37062Im1EbrrxDXo779/PEwJ1fPB9K9tOPWjeFQyw9vjhIC7xxCQqNW1O3Iq/WNcKzlpJpAmskH7MV6WHlgTdmSA73USngtZ4+DgCjX7q/RcP9ob5b17ujwPfvDjP1QfN4Px4fOz4cwFQSYlrwVBkIbWedWOS8etAlCu99LsCcZxpg==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Jean-Philippe Brucker <jean-philippe@linaro.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Rahul Singh <rahul.singh@arm.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Jonathan Cameron <Jonathan.Cameron@huawei.com>, Eric Auger
	<eric.auger@redhat.com>, Keqian Zhu <zhukeqian1@huawei.com>, Will Deacon
	<will@kernel.org>, Joerg Roedel <jroedel@suse.de>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH v3 01/23] xen/arm: smmuv3: Maintain a SID->device structure
Thread-Topic: [PATCH v3 01/23] xen/arm: smmuv3: Maintain a SID->device
 structure
Thread-Index: AQHcwLD18+tJxs/wLkCVu096Urnyqw==
Date: Tue, 31 Mar 2026 01:51:57 +0000
Message-ID:
 <4fd154cc1d76972d85df6c426320555d6894adfb.1774918270.git.milan_djokic@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774918270.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|PAWPR03MB9202:EE_
x-ms-office365-filtering-correlation-id: 0714b654-b0ac-4ce8-74e6-08de8ec817b0
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|7416014|366016|38070700021|18002099003|56012099003|22082099003;
x-microsoft-antispam-message-info:
 jA0aNxz4HmFGU7UtjwDsvNgC2o7NDFIjt84YXhMSFDAgqjS2XG9Q4DKx4yuYejY2GEsxGRgSD1Lt+8sP0KYvPm8DXB/SPphoi02W9i9QGS5DBg5Crb3ewNU9BeLfqm998TnNnAZtmoid4+qiwrPAbQ6Rlv9wynMCJz/5wz3D+bPZV/LZFQAVtTnc/4Z78aB+QJ9iUMsV7w9P3kuBczvN6NvIIYCTiCC8F5ewS03wO4hup02mWC+E6YHv+wf7f7apws/bvlk1sCpPMeUBiNHMwmaY6/BVnA/ymS6WKPoAzYELzPZWU4GalbG7olZj/L6XevvXjEYXqIzq1sZbjji27Lq+HsywuatqId79bV2YlvdqTDCGHC3vvewQhstI45EeV0IlJF0jd4G3J9Z1HINg4yEVSIOe9S0Ph7rDvSiXnc4GwDVfT2FOktYHiXo/LESNMuUkLCyIFLZ6O/zqYlNZCdhzaraJ3SAgHJvITSsmCDaBCwySSjnR6QmYP3sJlSQqnqrIYaML9DEXtTMqlHjVvNUBBIzMpD0iSIEvH6fPqA9r1FOc4hN6Mc4NwuefmLuGQeBeutf9Ie/fhSHOhts2IV8bUqcpQMRRBnvnzpopxK/PqJzhDlIQmqdlkiC5ka2zSoMvdBgAFyIxwAsfxMguvEA/CIUbJ2v6hdRdHgQBhaunZeLctHoIC2RA6gTth/TOzeL1VVp9PDyHb0Sx5N0x83AxccUkvSN19yfgVwZ0Ty5u0wLQ/THRhtTVXLCdwiLHZx1CyircdnEgVu8jm0e67iIfJzM7zhJlXdHTBVd+sUM=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(366016)(38070700021)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?CEKAWH7+wm8/RziOadqM0nnI03J2DkKNed5CBHenfuEx79kLIkysR50EbJ?=
 =?iso-8859-1?Q?7paz69KARFzp2l6nxEVSDvTWbLEy5lGDhbAROR07wVl/HHiiRiIPbn4FWc?=
 =?iso-8859-1?Q?w4Coj3HE1DrrmeQyPgj21dTgk+EBBfKMWDSB//ETRNOc3fruhDPr914U+Q?=
 =?iso-8859-1?Q?PeAr6B0iS2vdYDd0THJZes08yEevgaJ4A0+cLILdb7Z1pstcwzSSwG7VOC?=
 =?iso-8859-1?Q?/0D6zbX7mSLq2FaCpFGPdLLDosKFbYFqnmqH8tbCzYmPmVfv1CVvtGnICK?=
 =?iso-8859-1?Q?ubQKZ6dZ6MfPrBYlQNrLe0vfP6+JUE5KMePNC3uedW74NZiTVKG4bxd9CJ?=
 =?iso-8859-1?Q?VgpWiyn5LmqocQgxEa0c4L9YvozuDeci9J5fMPTqMWSw1GxX07HJNim2M0?=
 =?iso-8859-1?Q?V5kxJNMNVA6dHSjekZgUWJLItGc5QV457o8dhOs3YPtkJxdt0wr6E7nfWF?=
 =?iso-8859-1?Q?1cyqhZVjlFNf1kESJ0Vius9QT9EwDsKpPKuqn/moSRuogjKXECxNrPet2t?=
 =?iso-8859-1?Q?rbG4If/DxSQPzAw8PTWtcXvxiasz8Aiud0jHI3/CfvBd7yGkGdz22Z1qAj?=
 =?iso-8859-1?Q?E0R3IIDyTf1KyapM5YU4E9T6e9vgWeMSendVdhifSFCefXxxIR1JDcyHwk?=
 =?iso-8859-1?Q?dNhDLTH5RuKPBvuhGFw8H4YRpc52jGvYKefOIsf39cP44IascfgVHdElC1?=
 =?iso-8859-1?Q?yLhEJJZeiLFtfjO6kfaa+SYQoPDqYEo8IUO0I8FSjbpy7zDQ8634L5/Ypz?=
 =?iso-8859-1?Q?grkv5Lg9PpLaP/Nwexrgj0lZwZ3tZGGTbf/TFtdzZ9rH72J4sbYDbaollp?=
 =?iso-8859-1?Q?Die92kvrXbTWJO4gu+zrWS+mNqhpLHdWzNh2kFScKyMHI/Syirxo5USmJa?=
 =?iso-8859-1?Q?Ilw2kNsMhrcUN5o91s8HYfulNcSg40IkXpDNQbkg0uZntD5d47vBmxvIP/?=
 =?iso-8859-1?Q?B2qCPs+f/mjOiJj4W/og0tGGDrem4SjCY7kXCM1joxN2Pc6bk5fGKj6Bls?=
 =?iso-8859-1?Q?vSGgagBUgMlGk4htMf9Oqr/pNtupsYWpR8LXgyCWx/XAIbjl+F7pjIThAl?=
 =?iso-8859-1?Q?hvq/SRSb6fXZuINgpIbUreuXQ6ng0byDdobSomiC1tLEKxg9U2MZqMpww3?=
 =?iso-8859-1?Q?g4YHu9XBdwaMyhi5gMAvXhPgvc+JzHmo6uZiTMU4BV4sBWViEvi46xARbH?=
 =?iso-8859-1?Q?U6iZLzDbWcreYwj3O1P9HXRg0K16tRv3JQut6aL6g6VAUnDsWf9AwU5Qps?=
 =?iso-8859-1?Q?n4lNPmt2gKmDyKPzHD5+Jwz0q7vLS0vUL2Xlz2PYnvcRlSZg7Yd0goDJc1?=
 =?iso-8859-1?Q?uW17vbw4TyQAOZkYrG6+7Nzz/YZnzrGC3AL/xuVreXeNklATrkKFmka6ah?=
 =?iso-8859-1?Q?tjKEptFyGbtXA3Mz4E0oj8dl8Nu3vUDcoSX/7se9Ghgn0oc/Tpayo6hS9U?=
 =?iso-8859-1?Q?m+Fv+Romt8d4hhFuzr1MqU2LI+VBTExqBbu16Q6/QA6JR28jlb6WO4WMe5?=
 =?iso-8859-1?Q?NU7T2n55QbqzI/zlD5utpUgE3kJsqkrx2S0lzLybiPlESiVso4ggLIh3l2?=
 =?iso-8859-1?Q?O3eDoaMJ5194B6wwLPYfZRLvDjmAUoflz9CJmQX8M6Bx9N7fOTAEqfe8mK?=
 =?iso-8859-1?Q?TD/VyDNHrxRa4rri0aCB04HJX1aaM0bc743yACHSZVf+G+u4b02dfE1sbn?=
 =?iso-8859-1?Q?PC2SVQhym/NmN1zkhbCOpjRYZB0i5lx5wpt37h5upBE9ZfkLh5y6eN2R2s?=
 =?iso-8859-1?Q?cptY3csVcMbvCXQCBwAT7Bqd5l505g+DxJmGEE6YYsXxkFQ+4UR5LLy9Vo?=
 =?iso-8859-1?Q?m/4XjPSua5t9ovY8QcVeBz9pGgtJVrw=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0714b654-b0ac-4ce8-74e6-08de8ec817b0
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:51:57.5217
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: wMveqthMxWLgpoLyXjr+uYLzhppsykMt+thyJxLNBkEMHcPBahCcWxTpxVAOmNrjQz1yeApjbO5f7H2u5LB/zw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9202
X-purgate-ID: tlsNG-d25034/1774921919-F78A4734-78CB666D/0/0
X-purgate-type: clean
X-purgate-size: 7633

From: Jean-Philippe Brucker <jean-philippe@linaro.org>

Backport Linux commit cdf315f907d4. This is the clean backport without
any changes.

When handling faults from the event or PRI queue, we need to find the
struct device associated with a SID. Add a rb_tree to keep track of
SIDs.

Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Keqian Zhu <zhukeqian1@huawei.com>
Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Acked-by: Will Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/20210401154718.307519-8-jean-philippe@linar=
o.org
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git cd=
f315f907d4
Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/drivers/passthrough/arm/smmu-v3.c | 131 +++++++++++++++++++++-----
 xen/drivers/passthrough/arm/smmu-v3.h |  13 ++-
 2 files changed, 118 insertions(+), 26 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthroug=
h/arm/smmu-v3.c
index bf153227db..73cc4ef08f 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -809,6 +809,27 @@ static int arm_smmu_init_l2_strtab(struct arm_smmu_dev=
ice *smmu, u32 sid)
 	return 0;
 }
=20
+__maybe_unused
+static struct arm_smmu_master *
+arm_smmu_find_master(struct arm_smmu_device *smmu, u32 sid)
+{
+	struct rb_node *node;
+	struct arm_smmu_stream *stream;
+
+	node =3D smmu->streams.rb_node;
+	while (node) {
+		stream =3D rb_entry(node, struct arm_smmu_stream, node);
+		if (stream->id < sid)
+			node =3D node->rb_right;
+		else if (stream->id > sid)
+			node =3D node->rb_left;
+		else
+			return stream->master;
+	}
+
+	return NULL;
+}
+
 /* IRQ and event handlers */
 static void arm_smmu_evtq_tasklet(void *dev)
 {
@@ -1042,8 +1063,8 @@ static int arm_smmu_atc_inv_master(struct arm_smmu_ma=
ster *master,
 	if (!master->ats_enabled)
 		return 0;
=20
-	for (i =3D 0; i < master->num_sids; i++) {
-		cmd->atc.sid =3D master->sids[i];
+	for (i =3D 0; i < master->num_streams; i++) {
+		cmd->atc.sid =3D master->streams[i].id;
 		arm_smmu_cmdq_issue_cmd(master->smmu, cmd);
 	}
=20
@@ -1271,13 +1292,13 @@ static void arm_smmu_install_ste_for_dev(struct arm=
_smmu_master *master)
 	int i, j;
 	struct arm_smmu_device *smmu =3D master->smmu;
=20
-	for (i =3D 0; i < master->num_sids; ++i) {
-		u32 sid =3D master->sids[i];
+    for (i =3D 0; i < master->num_streams; ++i) {
+		u32 sid =3D master->streams[i].id;
 		__le64 *step =3D arm_smmu_get_step_for_sid(smmu, sid);
=20
 		/* Bridged PCI devices may end up with duplicated IDs */
 		for (j =3D 0; j < i; j++)
-			if (master->sids[j] =3D=3D sid)
+			if (master->streams[j].id =3D=3D sid)
 				break;
 		if (j < i)
 			continue;
@@ -1486,6 +1507,80 @@ static bool arm_smmu_sid_in_range(struct arm_smmu_de=
vice *smmu, u32 sid)
=20
 	return sid < limit;
 }
+
+static int arm_smmu_insert_master(struct arm_smmu_device *smmu,
+				  struct arm_smmu_master *master)
+{
+	int i;
+	int ret =3D 0;
+	struct arm_smmu_stream *new_stream, *cur_stream;
+	struct rb_node **new_node, *parent_node =3D NULL;
+	struct iommu_fwspec *fwspec =3D dev_iommu_fwspec_get(master->dev);
+
+	master->streams =3D _xzalloc_array(sizeof(*master->streams), sizeof(void =
*),
+					fwspec->num_ids);
+	if (!master->streams)
+		return -ENOMEM;
+	master->num_streams =3D fwspec->num_ids;
+
+	mutex_lock(&smmu->streams_mutex);
+	for (i =3D 0; i < fwspec->num_ids; i++) {
+		u32 sid =3D fwspec->ids[i];
+
+		new_stream =3D &master->streams[i];
+		new_stream->id =3D sid;
+		new_stream->master =3D master;
+
+		/*
+		 * Check the SIDs are in range of the SMMU and our stream table
+		 */
+		if (!arm_smmu_sid_in_range(smmu, sid)) {
+			ret =3D -ERANGE;
+			break;
+		}
+
+		/* Ensure l2 strtab is initialised */
+		if (smmu->features & ARM_SMMU_FEAT_2_LVL_STRTAB) {
+			ret =3D arm_smmu_init_l2_strtab(smmu, sid);
+			if (ret)
+				break;
+		}
+
+		/* Insert into SID tree */
+		new_node =3D &(smmu->streams.rb_node);
+		while (*new_node) {
+			cur_stream =3D rb_entry(*new_node, struct arm_smmu_stream,
+					      node);
+			parent_node =3D *new_node;
+			if (cur_stream->id > new_stream->id) {
+				new_node =3D &((*new_node)->rb_left);
+			} else if (cur_stream->id < new_stream->id) {
+				new_node =3D &((*new_node)->rb_right);
+			} else {
+				dev_warn(master->dev,
+					 "stream %u already in tree\n",
+					 cur_stream->id);
+				ret =3D -EINVAL;
+				break;
+			}
+		}
+		if (ret)
+			break;
+
+		rb_link_node(&new_stream->node, parent_node, new_node);
+		rb_insert_color(&new_stream->node, &smmu->streams);
+	}
+
+	if (ret) {
+		for (i--; i >=3D 0; i--)
+			rb_erase(&master->streams[i].node, &smmu->streams);
+		xfree(master->streams);
+	}
+	mutex_unlock(&smmu->streams_mutex);
+
+	return ret;
+}
+
 /* Forward declaration */
 static struct arm_smmu_device *arm_smmu_get_by_dev(const struct device *de=
v);
 static int arm_smmu_assign_dev(struct domain *d, u8 devfn, struct device *=
dev,
@@ -1495,7 +1590,7 @@ static int arm_smmu_deassign_dev(struct domain *d, ui=
nt8_t devfn,
=20
 static int arm_smmu_add_device(u8 devfn, struct device *dev)
 {
-	int i, ret;
+	int ret;
 	struct arm_smmu_device *smmu;
 	struct arm_smmu_master *master;
 	struct iommu_fwspec *fwspec;
@@ -1532,26 +1627,11 @@ static int arm_smmu_add_device(u8 devfn, struct dev=
ice *dev)
=20
 	master->dev =3D dev;
 	master->smmu =3D smmu;
-	master->sids =3D fwspec->ids;
-	master->num_sids =3D fwspec->num_ids;
 	dev_iommu_priv_set(dev, master);
=20
-	/* Check the SIDs are in range of the SMMU and our stream table */
-	for (i =3D 0; i < master->num_sids; i++) {
-		u32 sid =3D master->sids[i];
-
-		if (!arm_smmu_sid_in_range(smmu, sid)) {
-			ret =3D -ERANGE;
-			goto err_free_master;
-		}
-
-		/* Ensure l2 strtab is initialised */
-		if (smmu->features & ARM_SMMU_FEAT_2_LVL_STRTAB) {
-			ret =3D arm_smmu_init_l2_strtab(smmu, sid);
-			if (ret)
-				goto err_free_master;
-		}
-	}
+	ret =3D arm_smmu_insert_master(smmu, master);
+	if (ret)
+		goto err_free_master;
=20
 	/*
 	 * Note that PASID must be enabled before, and disabled after ATS:
@@ -1796,6 +1876,9 @@ static int __init arm_smmu_init_structures(struct arm=
_smmu_device *smmu)
 {
 	int ret;
=20
+	mutex_init(&smmu->streams_mutex);
+	smmu->streams =3D RB_ROOT;
+
 	ret =3D arm_smmu_init_queues(smmu);
 	if (ret)
 		return ret;
diff --git a/xen/drivers/passthrough/arm/smmu-v3.h b/xen/drivers/passthroug=
h/arm/smmu-v3.h
index ab07366294..ab1f29f6c7 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.h
+++ b/xen/drivers/passthrough/arm/smmu-v3.h
@@ -639,6 +639,15 @@ struct arm_smmu_device {
 	struct tasklet		evtq_irq_tasklet;
 	struct tasklet		priq_irq_tasklet;
 	struct tasklet		combined_irq_tasklet;
+
+	struct rb_root		streams;
+	struct mutex		streams_mutex;
+};
+
+struct arm_smmu_stream {
+	u32							id;
+	struct arm_smmu_master		*master;
+	struct rb_node				node;
 };
=20
 /* SMMU private data for each master */
@@ -647,8 +656,8 @@ struct arm_smmu_master {
 	struct device			*dev;
 	struct arm_smmu_domain		*domain;
 	struct list_head		domain_head;
-	u32				*sids;
-	unsigned int			num_sids;
+	struct arm_smmu_stream		*streams;
+	unsigned int				num_streams;
 	bool				ats_enabled;
 };
=20
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268227.1557561 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OH0-0000I5-Ij; Tue, 31 Mar 2026 01:52:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268227.1557561; Tue, 31 Mar 2026 01:52:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OH0-0000Hy-Ei; Tue, 31 Mar 2026 01:52:06 +0000
Received: by outflank-mailman (input) for mailman id 1268227;
 Tue, 31 Mar 2026 01:52:05 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OGy-0008Qm-Q1
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:52:05 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OGy-00HCrd-6D
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:52:04 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28c4-e002-0a2a0a5209dd-0a2a450a9b40-2
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:04 +0200
Received: from [52.101.70.95]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28c3-1772-0a2a450a0019-3465465f3097-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:04 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by PAWPR03MB9202.eurprd03.prod.outlook.com (2603:10a6:102:342::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:52:02 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01:52:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lE2ETyQAUIPMd00zF88eFjI6u7YhpxcAzpMEQIc0UykKQpxYqdvwadZYU8JgADJNPfKwjMLeq6NsTh8TncaykXcCI5Dv2du2beicSkluGqdGfZhhVcqe4/pyE+bQe1csfgQzxt/yp6WfCK+1lC8hSdxM6ZUsutvnTHB4+PvSbmilQ0X3cN0p0eE0fSf7qXDnyF6zRElFrNSYfuafmEhiTUevDWN2CDVXbn93ztDg2puE6ZNq8eyHmmLa62mRXwf/0LQTDYPCmDRvnaBxvxAirDqqVMceVOgpudiT2bOC9mPOF6cLbJtBIHhBlZi3YFJqXAIwYuoRWrLNAKhIgyWrZA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=L4rNFUKhYH8C33Pp5LApkC1awPW5UGLmwXipdM/Yt3k=;
 b=Q6w4iqiyfNloKKJ29dybLJE+1mLEFqpjKeBNmY4X98Z5MCGpt1IfYKl8Djn1HiU/2AAouYzc9yMQAkwE85ITSd2xJiPA5nD605QeF+LWCbIU1r58OFgKi1kbyPkxfzupyNf2JvOLhKYiQ7M56gyw+if3qYrpyXfPxQ5gDTI4Gtck6/D4TuZNp9qnIbeaqoDD0leHzn9LmqDJGJ3mxfoIvccaJtH5vm/yp6fviCBUETM6ysSuTSKH7+qb6EC+/E6mxc1XnpgPt9L0puUUJ2Ed3+PhXqF95IfMKZ8g14v9b/zQeAonqV/AtI+yvqIXspRPjnHFBX3dtSMOkmI5w5JBiw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=L4rNFUKhYH8C33Pp5LApkC1awPW5UGLmwXipdM/Yt3k=;
 b=lgywjOsrSs1/yfSocyTlS/KbyBmDHg6SJSqGk5zMAMTAjpqyv8P8Nv2kWvKgrHHFLc+MNUvyPcRQrPyxoqeq+AmLtw5a4Y4bIXqlFPz41JrpdRyH6VOg8X2mxDQ/m3HCYMpNjneRFyvNyOh/RQtcIt4r5ui06YJrOEeHUQy2nFrlhvp74+m8RBlPQFxmniaKOtr0eSViS1tNJYxJFBhadXLXYLGj2gJIRdJt8FlTJnmj+Ws6zWNzJJRXKMWNKBVmVLc5T6qqQyyXQUh9b4da7/tYeub6HgZyB4IC4oUhowZuSuZFr6rNm7CJffENSji+Jl3np4dlz2BTc42aemT/dw==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH v3 04/23] xen/arm: vIOMMU: add generic vIOMMU framework
Thread-Topic: [PATCH v3 04/23] xen/arm: vIOMMU: add generic vIOMMU framework
Thread-Index: AQHcwLD37i4zgjynW0G6WbAFhYTvDg==
Date: Tue, 31 Mar 2026 01:52:02 +0000
Message-ID:
 <c12f84b9306a2b74a555c710f21f5362120205ed.1774918270.git.milan_djokic@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774918270.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|PAWPR03MB9202:EE_
x-ms-office365-filtering-correlation-id: aa0318e8-23f0-4138-80c0-08de8ec81a77
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|7416014|366016|38070700021|18002099003|56012099003|22082099003;
x-microsoft-antispam-message-info:
 RXodID7U8Ef0OZBGVJgDqGKn8CXMVXsOXBa9PO1CxBCsceqvdCnvqXouGczi5WGUw0Bghtl0BjogtbRdpW0+5xCujeoWP+kSuz+agi8hbHp4KgbLxFOsG2XnCHhjPXtoeB6gc8WZt+qL1t+cXOa8GxB4PoaewkzhhMFbLjNd4jbifAFlkexNRPfCC/LgZkTlYiRI1lwqhcMR6TSmQGTIwGB57REbCLOh8TFbd3+v/p9ggwD17YNwfnp0gWAU7Q3EU6ImOIrojVo16kpDNHL0yao5pz8Fsj7yzUOdkb02ApBm8S/f0+8h6v4zop+lV1p21u6krfKSu+NELEdjM/bPseIHGd8CEMMnzvdiGs2+esDbxzFA1uBV+7Soo80oQ77L1oxzWhMRY7bdzuu0LqR33fkJVak0y2D7ncuqvvZjbJA3XsoBlANbDhHjpePDKaGj2Z0Hg4Sgv8BZTPvp1mo0v12uosuntxzNprWeXr3dJH8f+0axveR14vutkFY838tCJY/fGdb6J1PbWqKoO9Ylsq1keKE7i8y9g8v+QvyKDB0BWwh/0LMPAJ1bS28KTfpeFMjOZD1WHu51EG+PC3FL/cKXt+MBVcK13NvCUxBnVO7IS0u12ujQ6XtXwxVPSqt6S7UwEASEzTVnn/o1PUHsdC2W2UGMsvDtNlm8ykE+4V1GXtZd209T3aJ3vbRlnO4CgjS2Nw1n6taoNkG8xLl6ddR8rcUbvlhfcR7LiGsYG6iMdsR0l5Zwj+YUH69SXayaGJYU0YdK7mqs4RAmuDAsJxii1txgaPDgPPaE5T4VSKk=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(366016)(38070700021)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?HV8+8wwAljb6tjimzAlxPkUlD0t04ezMX+geJI6lqcscQ9edaV4VaS5X15?=
 =?iso-8859-1?Q?kACMmSJnc4WlIPgl5OzZzcXerZwkr4rSZXQ2UYeIHIFSPqYHoPejxJJKUH?=
 =?iso-8859-1?Q?D8iFtgkckGL6gjgrmQ2KsIuee3GVKitJjzMbowrI8mXv0zPSDDI/rYm5ZC?=
 =?iso-8859-1?Q?/R4d5xY+xA9VZR83Z27LoFPlXSudl8SZxo70DAuMEu/z6E0i8HDLEoMxb1?=
 =?iso-8859-1?Q?UvkqxcoethJclNCWiZYppCNE2ZQNu5arO3CExFLVFp81+RobKDdHoZIT1P?=
 =?iso-8859-1?Q?sv8S3MioPDBI0FZawZxYlaL3zOXpi5ADmljXhJuXDn4dYnYyP22gjG5WdI?=
 =?iso-8859-1?Q?LiS97QQbDueu1ygyUu7XDZbi9xHXemtesZ5DUHatHH9ofDJlDelDJqyPXQ?=
 =?iso-8859-1?Q?FPYgGjenv6K4PTC2Rx57oNberlUx9+s+0nPIdYNeAa+qtOfZWpdckXHIdG?=
 =?iso-8859-1?Q?1v6MrmR6YJIZghkLaEp+k6rjERtRTzItGUUMoycxCdkV3RELrpiGqp4Ut9?=
 =?iso-8859-1?Q?3VJp3bpBq4M4kRfr2Anh+WxPM5GvzbOja1wuMoQ+m0bzTr2TaRyW2MztIh?=
 =?iso-8859-1?Q?F08AQXO3sROHm3XWcEhPzyQ+t+CT63wa/QlZ8LlCGnuJrS0Nf24Hs6SSIK?=
 =?iso-8859-1?Q?5aZBf0ofLfW17mdWACNvMt2urFmppcoSxtirnOPGw52KAoLDNPzAN61xTd?=
 =?iso-8859-1?Q?YToSszsslGDIUyi/zoNlz/Y0dRcQ9GIMm3LAdAYcWGhsxABtZOmFk8JUe1?=
 =?iso-8859-1?Q?78bLyV9icSR8371i+uGxl/wMEQBVc4Wryuzbb1eLfyEeyxrkJFxPRq+kwl?=
 =?iso-8859-1?Q?b79ZO4hj8w1tFtqrfitSgqXndjahAeMpKBIKQIfpyGuVL+J36zXidkl2MC?=
 =?iso-8859-1?Q?fdGnmFMxhLOXdYEyZrppOQQnYBmgygmFpRiAZZx3ad5UI0gFGvYFXLXgV9?=
 =?iso-8859-1?Q?RJC1ej/sgkd+Cq9yEhgGS/xZCg9tYck7zQlQroZG8F9Itd0HYOYz5rY3Zt?=
 =?iso-8859-1?Q?GeYz7yGOMivV5xOUqlRJpMUEKrXsDQ0EvsboXoZFDuGjnL2kSlnOU9hGol?=
 =?iso-8859-1?Q?iRTEYiIEc8H29ODjzTU2Od0XOoKsEIbFVPhXUy62u0Z/WMb0QiqyBx272D?=
 =?iso-8859-1?Q?0aoOSB/E2OstXspFgI8r3PrNOEKmnbv9l2mRWLq2We5y6BxJgoKWDg0zEn?=
 =?iso-8859-1?Q?w5VUtk+dujhuTlCNWOTpgeCReB/FsmkhS7y+gm3bGnioY3srpG1CB4+m38?=
 =?iso-8859-1?Q?tsGw5fuBveBhbGdscEyluVpNfLUnZfpqh3VLs3NFqVLTC7442wkAJptT2b?=
 =?iso-8859-1?Q?FonEcgaregtTw+6Z2gLDHPduX6Q3wli2CTt4ecXOV/sGaTdJlA2EmXmFyE?=
 =?iso-8859-1?Q?FhlIKdd6eQ0b03F+fv6Q6Y5OxY7FVaC3OnXuZtDW7y3ia94QaQO4xrS5ue?=
 =?iso-8859-1?Q?rlCt6WNdwjkAykUVgw3FcSuf2InAJf7Ic5nSBWlEC3e7omXmDhPHC3xGlV?=
 =?iso-8859-1?Q?nVcwRVaK4UysPOpb3/maFcLNPuZzk/qhiDODeYp53lpAbt2ey6zWqf5gCd?=
 =?iso-8859-1?Q?ZwksoY9XcjAp/j8dEml9578yUNcwIL1L/pp3d9cn6Ck8l0vx9IMgT+2Nzp?=
 =?iso-8859-1?Q?HhBRDJN6w6p9ETC99tCX6fatl+AQeax02+CR4X6sz0JvlAnqOhBE1/ZM3r?=
 =?iso-8859-1?Q?voGQbfOEhKD35/zEv74cGVYp0xAz/vZqDv1gU2Zz0ahVIaWYeQm9sccHYL?=
 =?iso-8859-1?Q?qrkpaYH9WwqYByf+GDVkib49Ra8TDsAX+YvFpU6H0DRUobQ2Gw+gNW8NYk?=
 =?iso-8859-1?Q?nXjlw8o/iKpydGphh643aqIZXkDnU/I=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: aa0318e8-23f0-4138-80c0-08de8ec81a77
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:52:02.1335
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: twyCft1yOhQYZTRLmib5xS9VxIxdFKwlUjTBHVxjg/hGqdl3Jv6M3lVlQRGHFZm2lEY0fKhXt/xyOrU6qGpcpg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9202
X-purgate-ID: tlsNG-4011c0/1774921924-BCE85900-8A5723D5/0/0
X-purgate-type: clean
X-purgate-size: 10013

From: Rahul Singh <rahul.singh@arm.com>

This patch adds basic framework for vIOMMU.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/arch/arm/dom0less-build.c        |  2 +
 xen/arch/arm/domain.c                | 33 +++++++++++++
 xen/arch/arm/domain_build.c          |  2 +
 xen/arch/arm/include/asm/viommu.h    | 70 ++++++++++++++++++++++++++++
 xen/drivers/passthrough/Kconfig      |  5 ++
 xen/drivers/passthrough/arm/Makefile |  1 +
 xen/drivers/passthrough/arm/viommu.c | 48 +++++++++++++++++++
 xen/include/public/arch-arm.h        |  5 ++
 xen/include/public/domctl.h          |  4 +-
 9 files changed, 168 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/viommu.h
 create mode 100644 xen/drivers/passthrough/arm/viommu.c

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 4181c10538..067835e5d0 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -23,6 +23,7 @@
 #include <asm/arm64/sve.h>
 #include <asm/domain_build.h>
 #include <asm/firmware/sci.h>
+#include <asm/viommu.h>
 #include <asm/grant_table.h>
 #include <asm/setup.h>
=20
@@ -317,6 +318,7 @@ int __init arch_parse_dom0less_node(struct dt_device_no=
de *node,
     uint32_t val;
=20
     d_cfg->arch.gic_version =3D XEN_DOMCTL_CONFIG_GIC_NATIVE;
+    d_cfg->arch.viommu_type =3D viommu_get_type();
     d_cfg->flags |=3D XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap;
=20
     if ( domu_dt_sci_parse(node, d_cfg) )
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 94b9858ad2..241f87386b 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -28,6 +28,7 @@
 #include <asm/tee/tee.h>
 #include <asm/vfp.h>
 #include <asm/vgic.h>
+#include <asm/viommu.h>
 #include <asm/vtimer.h>
=20
 #include "vpci.h"
@@ -550,6 +551,14 @@ int arch_sanitise_domain_config(struct xen_domctl_crea=
tedomain *config)
         return -EINVAL;
     }
=20
+    /* Check config structure padding */
+    if ( config->arch.pad )
+    {
+        dprintk(XENLOG_INFO,
+            "Invalid input config, padding must be zero\n");
+        return -EINVAL;
+    }
+
     /* Check feature flags */
     if ( sve_vl_bits > 0 )
     {
@@ -626,6 +635,21 @@ int arch_sanitise_domain_config(struct xen_domctl_crea=
tedomain *config)
         return -EINVAL;
     }
=20
+    if ( !(config->flags & XEN_DOMCTL_CDF_iommu) &&
+         config->arch.viommu_type !=3D XEN_DOMCTL_CONFIG_VIOMMU_NONE )
+    {
+        dprintk(XENLOG_INFO,
+                "vIOMMU requested while iommu not enabled for domain\n");
+        return -EINVAL;
+    }
+
+    if ( config->arch.viommu_type !=3D XEN_DOMCTL_CONFIG_VIOMMU_NONE )
+    {
+        dprintk(XENLOG_INFO,
+                "vIOMMU type requested not supported by the platform or Xe=
n\n");
+        return -EINVAL;
+    }
+
     return sci_domain_sanitise_config(config);
 }
=20
@@ -721,6 +745,9 @@ int arch_domain_create(struct domain *d,
     if ( (rc =3D sci_domain_init(d, config)) !=3D 0 )
         goto fail;
=20
+    if ( (rc =3D domain_viommu_init(d, config->arch.viommu_type)) !=3D 0 )
+        goto fail;
+
     return 0;
=20
 fail:
@@ -965,6 +992,7 @@ enum {
     PROG_pci =3D 1,
     PROG_sci,
     PROG_tee,
+    PROG_viommu,
     PROG_xen,
     PROG_page,
     PROG_mapping,
@@ -1021,6 +1049,11 @@ int domain_relinquish_resources(struct domain *d)
         if (ret )
             return ret;
=20
+    PROGRESS(viommu):
+        ret =3D viommu_relinquish_resources(d);
+        if (ret )
+            return ret;
+
     PROGRESS(xen):
         ret =3D relinquish_memory(d, &d->xenpage_list);
         if ( ret )
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index e8795745dd..a51563ee3d 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -35,6 +35,7 @@
 #include <asm/arm64/sve.h>
 #include <asm/cpufeature.h>
 #include <asm/domain_build.h>
+#include <asm/viommu.h>
 #include <xen/event.h>
=20
 #include <xen/irq.h>
@@ -1946,6 +1947,7 @@ void __init create_dom0(void)
     dom0_cfg.arch.nr_spis =3D vgic_def_nr_spis();
     dom0_cfg.arch.tee_type =3D tee_get_type();
     dom0_cfg.max_vcpus =3D dom0_max_vcpus();
+    dom0_cfg.arch.viommu_type =3D viommu_get_type();
=20
     if ( iommu_enabled )
         dom0_cfg.flags |=3D XEN_DOMCTL_CDF_iommu;
diff --git a/xen/arch/arm/include/asm/viommu.h b/xen/arch/arm/include/asm/v=
iommu.h
new file mode 100644
index 0000000000..4598f543b8
--- /dev/null
+++ b/xen/arch/arm/include/asm/viommu.h
@@ -0,0 +1,70 @@
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+#ifndef __ARCH_ARM_VIOMMU_H__
+#define __ARCH_ARM_VIOMMU_H__
+
+#ifdef CONFIG_ARM_VIRTUAL_IOMMU
+
+#include <xen/lib.h>
+#include <xen/types.h>
+#include <public/xen.h>
+
+struct viommu_ops {
+    /*
+     * Called during domain construction if toolstack requests to enable
+     * vIOMMU support.
+     */
+    int (*domain_init)(struct domain *d);
+
+    /*
+     * Called during domain destruction to free resources used by vIOMMU.
+     */
+    int (*relinquish_resources)(struct domain *d);
+};
+
+struct viommu_desc {
+    /* vIOMMU domains init/free operations described above. */
+    const struct viommu_ops *ops;
+
+    /*
+     * ID of vIOMMU. Corresponds to xen_arch_domainconfig.viommu_type.
+     * Should be one of XEN_DOMCTL_CONFIG_VIOMMU_xxx
+     */
+    uint16_t viommu_type;
+};
+
+int domain_viommu_init(struct domain *d, uint16_t viommu_type);
+int viommu_relinquish_resources(struct domain *d);
+uint16_t viommu_get_type(void);
+
+#else
+
+static inline uint8_t viommu_get_type(void)
+{
+    return XEN_DOMCTL_CONFIG_VIOMMU_NONE;
+}
+
+static inline int domain_viommu_init(struct domain *d, uint16_t viommu_typ=
e)
+{
+    if ( likely(viommu_type =3D=3D XEN_DOMCTL_CONFIG_VIOMMU_NONE) )
+        return 0;
+
+    return -ENODEV;
+}
+
+static inline int viommu_relinquish_resources(struct domain *d)
+{
+    return 0;
+}
+
+#endif /* CONFIG_ARM_VIRTUAL_IOMMU */
+
+#endif /* __ARCH_ARM_VIOMMU_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/drivers/passthrough/Kconfig b/xen/drivers/passthrough/Kcon=
fig
index b413c33a4c..3c174bc87b 100644
--- a/xen/drivers/passthrough/Kconfig
+++ b/xen/drivers/passthrough/Kconfig
@@ -35,6 +35,11 @@ config IPMMU_VMSA
 	  (H3 ES3.0, M3-W+, etc) or Gen4 SoCs which IPMMU hardware supports stage=
 2
 	  translation table format and is able to use CPU's P2M table as is.
=20
+config ARM_VIRTUAL_IOMMU
+	bool "Virtual IOMMU Support (UNSUPPORTED)" if UNSUPPORTED
+	help
+	 Support virtual IOMMU infrastructure to implement vIOMMU.
+
 endif
=20
 config AMD_IOMMU
diff --git a/xen/drivers/passthrough/arm/Makefile b/xen/drivers/passthrough=
/arm/Makefile
index c5fb3b58a5..c3783188e3 100644
--- a/xen/drivers/passthrough/arm/Makefile
+++ b/xen/drivers/passthrough/arm/Makefile
@@ -2,3 +2,4 @@ obj-y +=3D iommu.o iommu_helpers.o iommu_fwspec.o
 obj-$(CONFIG_ARM_SMMU) +=3D smmu.o
 obj-$(CONFIG_IPMMU_VMSA) +=3D ipmmu-vmsa.o
 obj-$(CONFIG_ARM_SMMU_V3) +=3D smmu-v3.o
+obj-$(CONFIG_ARM_VIRTUAL_IOMMU) +=3D viommu.o
diff --git a/xen/drivers/passthrough/arm/viommu.c b/xen/drivers/passthrough=
/arm/viommu.c
new file mode 100644
index 0000000000..7ab6061e34
--- /dev/null
+++ b/xen/drivers/passthrough/arm/viommu.c
@@ -0,0 +1,48 @@
+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
+
+#include <xen/errno.h>
+#include <xen/init.h>
+#include <xen/types.h>
+
+#include <asm/viommu.h>
+
+const struct viommu_desc __read_mostly *cur_viommu;
+
+int domain_viommu_init(struct domain *d, uint16_t viommu_type)
+{
+    if ( viommu_type =3D=3D XEN_DOMCTL_CONFIG_VIOMMU_NONE )
+        return 0;
+
+    if ( !cur_viommu )
+        return -ENODEV;
+
+    if ( cur_viommu->viommu_type !=3D viommu_type )
+        return -EINVAL;
+
+    return cur_viommu->ops->domain_init(d);
+}
+
+int viommu_relinquish_resources(struct domain *d)
+{
+    if ( !cur_viommu )
+        return 0;
+
+    return cur_viommu->ops->relinquish_resources(d);
+}
+
+uint16_t viommu_get_type(void)
+{
+    if ( !cur_viommu )
+        return XEN_DOMCTL_CONFIG_VIOMMU_NONE;
+
+    return cur_viommu->viommu_type;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
index cd563cf706..d4953d40fd 100644
--- a/xen/include/public/arch-arm.h
+++ b/xen/include/public/arch-arm.h
@@ -330,6 +330,8 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
 #define XEN_DOMCTL_CONFIG_ARM_SCI_NONE      0
 #define XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC  1
=20
+#define XEN_DOMCTL_CONFIG_VIOMMU_NONE   0
+
 struct xen_arch_domainconfig {
     /* IN/OUT */
     uint8_t gic_version;
@@ -355,6 +357,9 @@ struct xen_arch_domainconfig {
     uint32_t clock_frequency;
     /* IN */
     uint8_t arm_sci_type;
+    /* IN */
+    uint8_t viommu_type;
+    uint16_t pad;
 };
 #endif /* __XEN__ || __XEN_TOOLS__ */
=20
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 8f6708c0a7..23124547f3 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -30,9 +30,9 @@
  * fields) don't require a change of the version.
  * Stable ops are NOT covered by XEN_DOMCTL_INTERFACE_VERSION!
  *
- * Last version bump: Xen 4.19
+ * Last version bump: Xen 4.22
  */
-#define XEN_DOMCTL_INTERFACE_VERSION 0x00000017
+#define XEN_DOMCTL_INTERFACE_VERSION 0x00000018
=20
 /*
  * NB. xen_domctl.domain is an IN/OUT parameter for this operation.
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268223.1557543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OGy-0008G9-2Q; Tue, 31 Mar 2026 01:52:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268223.1557543; Tue, 31 Mar 2026 01:52:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OGx-0008G2-Uq; Tue, 31 Mar 2026 01:52:03 +0000
Received: by outflank-mailman (input) for mailman id 1268223;
 Tue, 31 Mar 2026 01:52:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OGw-00085b-5L
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:52:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OGv-00HCrd-HX
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:52:01 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb288a-e002-0a2a0a5209dd-0a2a4506a066-32
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:01 +0200
Received: from [52.101.65.82]
 (helo=DU2PR03CU002.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28c1-3034-0a2a45060019-346541529909-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:01 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by PAWPR03MB9202.eurprd03.prod.outlook.com (2603:10a6:102:342::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:51:59 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01:51:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tNjRLNLd4tOtMNiiste5Elr6LnZuDbQNZR0RwqO+uHkmhvpXkrY9JpvwhdKqstsg0osvUaybWRKWYmamoAER5seoULSLGAPrhW1Gj1l9kAmbvAkRCswgKNHTznV/P3VlysYD0CXRO3irfL4XVlqcvT3omuJAaP01wkN0mtoKleS6COh0ld8No/f1wQnBKnIuVXZZZqVaPWDlbcVQx+kEkZjgvJlzy65YlAVw47+VLksFSYdRU568VtvJWIHJxgUJtL1/rrVfPWY+Gm+gzBy9bcqWHvQECW9Y9ujtIcoAK1vRrg9XWDfMQe983ivx5I+QWsMJz/14ILCzX9ai73YoRQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=j9tecJs7l+jief5fwjcb0VdatPuGZ/jTmjdUcsZ7naQ=;
 b=H7QODlFIAoX/JnqmxO9rkQDE6pHZYBZO8su/5iglLmHIFGbaObikBWiuZwk4JC4D49CmPeiJacP4kM1l8pr4wN7421kXgM4tNnd3vOaUm0ogWJTOltMWyNlZl/FsPpbD4Z0vqCTTYfiQt+wKi6gSFoOsFUD7Hc7D7P7GB/64UpGwedDPk1YwmYqwhiXmvggOu6xWTWw8KifxUNyjIqqInvJjeRgHbWBoHFm8ty27eb2GU1NyhTSje1WPQlFwBwZGFTAsYfsx7CIdvIzBU1U/C/cpoRDfP3NAsosIK8rmswwu6r8sLhUQxqitERBCcUKpaBpQ3v63LZ3z1qk8uTqVmw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=j9tecJs7l+jief5fwjcb0VdatPuGZ/jTmjdUcsZ7naQ=;
 b=BESlUymbPb+D/vGMq5llAIk76JOpWRqoC9GdTrd54DRkEybl9XUi5gPs6wsv7TM7n9BMjHFpg7DEJBRuBy4VfYpEKp0xJ2TGOLrbpNP/RXCGRWQ8C6AktWKnUg4zf/Xqi6MZA3H21KVKVg0SozEdw8ekSd6oVsuCxE1XLsbcuoEiroRhGAtz2zrxcsu7rkr4lRZKHp3KaMMXP61Qon4w4kQuMfxEIkUvjhWlOhFM5XFnop42rxQLscnLWL26DkK0LkPfdxmN5Yop9wFfSrDkUiratKjOZ7c7JsbS40/cBSKA7XhBRmGkd9ZtyQY/9Tw8H8snjPAzJjfJUpsHnnOaag==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH v3 02/23] xen/arm: smmuv3: Add support for stage-1 and nested
 stage translation
Thread-Topic: [PATCH v3 02/23] xen/arm: smmuv3: Add support for stage-1 and
 nested stage translation
Thread-Index: AQHcwLD2/10nH0Xm2kCl3teEQVi7hw==
Date: Tue, 31 Mar 2026 01:51:59 +0000
Message-ID:
 <baa5aa0db3d8d2cbc5f46a60241330c4c7055d11.1774918270.git.milan_djokic@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774918270.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|PAWPR03MB9202:EE_
x-ms-office365-filtering-correlation-id: 3ef33927-a2b9-445c-045b-08de8ec818f7
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|366016|38070700021|18002099003|56012099003|22082099003;
x-microsoft-antispam-message-info:
 hcTjxPoL5wtogidfyHaCFuA1TaQtcxLuk13mJ7uDVvty+sc6mPbxlTZZ2GG4504ff9ksUACqGMx6iqMdgMuoIGnSlksEYvF3n57PFLOqLHZy8bcqlwMA14rZv4Gi3y07KYeRytiWJTa1r+MhGExTHIYMJTxDBUKZ6f+gluetSZ8K1xuOSnYV1meu3qcs2Mn8RqknXhTWXcBJ0nl2RP+y/WDnrf8+aUDTRvxNd/lZI6qLDL0LLj1FPYNSVZqcGLvX3R0bQhR1/2OHIRjaN5/Vb4VGWDQKvNeAwrTgIAyflOM1c+8s60ZxCAQmoIvY5LNSK34NkCL1cN4J1PMkXDC/rXgT7qd11uWyuVEmL7Eg/zEMWFIf9cKe+mJEwTqn0N65FgzBfIHwxxkD+lQnMfeiKoWFoUeUeqqVE3cNH27MDey/H49gSBzs1VAVYrvd1K9oeNB0/hEBU0cDRaOcoz2hUeaubpK6ibpQtRTLyGQnVmIt7k33fvr0TTvWcLfekukoFzlJh9gRU/8VZ8rrw+y86JE0r9iM+E8WLzk0gwHA6X8hu0D1i6ZBJfJtfPhG4MAOvJsHQMckRGtONmuoFHybcMiPo25kClpDXtKRoA6LzOkhk9riphLQdrKNV2Yyb85dJps8ClsyVBhov4C1YlLwQzHtRBb4Mqv3GDTk7cBWJ/wAmtfjOtj6GwtfeztQuhlPLqRf4y+YJbuCoq7AcPRhVBOyik0Bx5U3Hk6A2eAvvbwST4yhvdHT7iuAdynyP3pwuunwzI3KuXpN6srOrGdfb596iSfmfhctdZttDwIaamw=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?jIktKig026MCFztwCeVjWCErgFD3B2c0vu4igA18e/POJspE7ZHRt46PUJ?=
 =?iso-8859-1?Q?3vFwjrxoyYxu/h/M1LEI+vRy49l13W/iA9QM2J643zJSMOAU/Qpk5fxZgm?=
 =?iso-8859-1?Q?R3lxRfzgsHqnrQ0ZyyG+xU5O1prWBPmGJagWm9JxVLDaSZ8O9f5Ad/pA/W?=
 =?iso-8859-1?Q?+CPN+l9QPAMSNRVABjHlYomfgP59+whB/VNJAQZiibzl5sEby4tutSwo8Z?=
 =?iso-8859-1?Q?tQBA7HMxmW+WfPyAsDW+ht9qeP8x8hwzqIphKmiZcLwoC8M1+S6ovNMYmV?=
 =?iso-8859-1?Q?V19+H7xXOXceoHvpHRh84qcAQEewCZJuGMsZNFqMuf29AJLQ0U+mwmQTUQ?=
 =?iso-8859-1?Q?7PD8EjjLiKbb61NCcWbP3ilhr/RhKAdlJPrOlQD1RkxcM9rGH+MuIh2aa8?=
 =?iso-8859-1?Q?swTYL0TPJ7/7cYIAEs+VssAOdBovmgonyulgjQLnfEN5o+7QH0T2Utxcxz?=
 =?iso-8859-1?Q?YVdPy+kXsd86pXFhFzZgX6Hwd2G+PPyCZnx01vksUqwxs5aA+L4kRTH+FT?=
 =?iso-8859-1?Q?dn3SKY6HibPnfnza+TsRJ4JSbs9PGyVsf15LInvjXvrGgtfIT0RgQ/3l+E?=
 =?iso-8859-1?Q?vYFvRldhzX2+JrU25I2kXvd0NpSvI27vCQLeCn6PL/msPOP14NIZ1MZu5+?=
 =?iso-8859-1?Q?VcsArkMrXVMWV072vaAuqpz5QMMk3UKl88Djv+PZIysU1pfJP6M0Uaxokz?=
 =?iso-8859-1?Q?QHk6pN/hd8qksxOT/DQ9AXWDdQEp/4fGkTndkzz2PXWATC95yFmGfLYjaN?=
 =?iso-8859-1?Q?rb0sV+5aX/r7PjTAfTjsVM9yjHRfchYhipqIkPNaoM5Tt3OelCuWzAWHJm?=
 =?iso-8859-1?Q?LWShpLOMhRYJg5BXTU51dJpwwu05jBz8F0IWtXxBi7SjbjVtacrnV9tBdV?=
 =?iso-8859-1?Q?z99DP8oqVoPTdsTDf0tZnZ83UXGCNH6dBPPR3qF7CT5DH1xSVO0mvE+J5D?=
 =?iso-8859-1?Q?XO7az0Zj0RH2ygID7ioWcAtFpxTGLXYrpXZZxt63FBIzLyv5o0TR8Au2uE?=
 =?iso-8859-1?Q?GI216fi/LBIUQjzjMf3hD/fWkUVa6IoiKCd4UZoCgO96YoleqMtzYp9J4B?=
 =?iso-8859-1?Q?FffVYXv/AbVfuhgos4E9ESsEmBAAmFfbEV8K0Gt0n0ukqKypIpYj6OZJug?=
 =?iso-8859-1?Q?aZXhWNyWNMnD6ybbqFwvSEP83XezXT8nJ+YVCQwOsiqIWk4o4ZPnDjCfAC?=
 =?iso-8859-1?Q?BJffKa14H0a+XQYnCpyIufc6s5lBYu/bK/3S2/ToQFnGmhKxcD1PtiBe0Z?=
 =?iso-8859-1?Q?vyjE+MZ3ehjdl8G+n4j6fLm+dkDSzfA1H+Fi0zguNbpi821Bekc72M/FDn?=
 =?iso-8859-1?Q?EVkS3vfAKGw4wGShS4Zx38k4fbAZWF6PtwlgykMvzVccUjyE3yyWTXlhGa?=
 =?iso-8859-1?Q?O56HRW8kSaaey5C4F+bjc3OvftnjcLAeN3NFQtdOMneNO2ASx9PHcNcyiT?=
 =?iso-8859-1?Q?SpxUB8pUlOv15UcNxojKg6P3yzDcx7N84xhoNc/IaJI6VOgmnlC5gZjCLb?=
 =?iso-8859-1?Q?LaYVf9BtcBYC9wMQNstZTPq7feGtQPC5Eo6ofebrli15rq8Fmie45HEuZd?=
 =?iso-8859-1?Q?v7wEXtTsw+HatHC/b3oS4kjBXbjiT9jqBTIviminPNQrAg8KiXR8JT6U0o?=
 =?iso-8859-1?Q?1EA1s7ZoFDWrIUPYw0xmYc2d0H2hxONtgxfiNjf57aCgd8lSeWrr4L0hWB?=
 =?iso-8859-1?Q?ldgYb8OCbljyt4Xlv7GT4grDYSYaWWRZQs3oUGEwvNwlFnDFgmLRwaSrix?=
 =?iso-8859-1?Q?vMXGutl24t8o+X5KZV9nr6dPtcno7DpQookmvM9tFyn2DkBMDXuq+vtEn7?=
 =?iso-8859-1?Q?B3uDs2rn3pvzQUUefLRc3u9XiUOmtjo=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3ef33927-a2b9-445c-045b-08de8ec818f7
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:51:59.6356
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: VMn+9DuE4x6mXRYAD+p35UjZqFRWKRztl/jKrkLnchmWCq0B7QMqkvbMRF3naZKDP9R6P5169HN+qLd5Em5B7g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9202
X-purgate-ID: tlsNG-16d1c6/1774921921-82B961C2-18CA9FE4/0/0
X-purgate-type: clean
X-purgate-size: 7270

From: Rahul Singh <rahul.singh@arm.com>

Xen SMMUv3 driver only supports stage-2 translation. Add support for
Stage-1 translation that is required to support nested stage
translation.

In true nested mode, both s1_cfg and s2_cfg will coexist.
Let's remove the union. When nested stage translation is setup, both
s1_cfg and s2_cfg are valid.

We introduce a new smmu_domain abort field that will be set
upon guest stage-1 configuration passing. If no guest stage-1
config has been attached, it is ignored when writing the STE.

arm_smmu_write_strtab_ent() is modified to write both stage
fields in the STE and deal with the abort field.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/drivers/passthrough/arm/smmu-v3.c | 93 +++++++++++++++++++++++----
 xen/drivers/passthrough/arm/smmu-v3.h |  9 +++
 2 files changed, 91 insertions(+), 11 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthroug=
h/arm/smmu-v3.c
index 73cc4ef08f..f9c6837919 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -683,8 +683,10 @@ static void arm_smmu_write_strtab_ent(struct arm_smmu_=
master *master, u32 sid,
 	 * 3. Update Config, sync
 	 */
 	u64 val =3D le64_to_cpu(dst[0]);
-	bool ste_live =3D false;
+	bool s1_live =3D false, s2_live =3D false, ste_live =3D false;
+	bool abort, translate =3D false;
 	struct arm_smmu_device *smmu =3D NULL;
+	struct arm_smmu_s1_cfg *s1_cfg =3D NULL;
 	struct arm_smmu_s2_cfg *s2_cfg =3D NULL;
 	struct arm_smmu_domain *smmu_domain =3D NULL;
 	struct arm_smmu_cmdq_ent prefetch_cmd =3D {
@@ -699,30 +701,54 @@ static void arm_smmu_write_strtab_ent(struct arm_smmu=
_master *master, u32 sid,
 		smmu =3D master->smmu;
 	}
=20
-	if (smmu_domain)
-		s2_cfg =3D &smmu_domain->s2_cfg;
+	if (smmu_domain) {
+		switch (smmu_domain->stage) {
+		case ARM_SMMU_DOMAIN_NESTED:
+			s1_cfg =3D &smmu_domain->s1_cfg;
+			fallthrough;
+		case ARM_SMMU_DOMAIN_S2:
+			s2_cfg =3D &smmu_domain->s2_cfg;
+			break;
+		default:
+			break;
+		}
+		translate =3D !!s1_cfg || !!s2_cfg;
+	}
=20
 	if (val & STRTAB_STE_0_V) {
 		switch (FIELD_GET(STRTAB_STE_0_CFG, val)) {
 		case STRTAB_STE_0_CFG_BYPASS:
 			break;
+		case STRTAB_STE_0_CFG_S1_TRANS:
+			s1_live =3D true;
+			break;
 		case STRTAB_STE_0_CFG_S2_TRANS:
-			ste_live =3D true;
+			s2_live =3D true;
+			break;
+		case STRTAB_STE_0_CFG_NESTED:
+			s1_live =3D true;
+			s2_live =3D true;
 			break;
 		case STRTAB_STE_0_CFG_ABORT:
-			BUG_ON(!disable_bypass);
 			break;
 		default:
 			BUG(); /* STE corruption */
 		}
 	}
=20
+	ste_live =3D s1_live || s2_live;
+
 	/* Nuke the existing STE_0 value, as we're going to rewrite it */
 	val =3D STRTAB_STE_0_V;
=20
 	/* Bypass/fault */
-	if (!smmu_domain || !(s2_cfg)) {
-		if (!smmu_domain && disable_bypass)
+	if (!smmu_domain)
+		abort =3D disable_bypass;
+	else
+		abort =3D smmu_domain->abort;
+
+	if (abort || !translate) {
+		if (abort)
 			val |=3D FIELD_PREP(STRTAB_STE_0_CFG, STRTAB_STE_0_CFG_ABORT);
 		else
 			val |=3D FIELD_PREP(STRTAB_STE_0_CFG, STRTAB_STE_0_CFG_BYPASS);
@@ -740,7 +766,33 @@ static void arm_smmu_write_strtab_ent(struct arm_smmu_=
master *master, u32 sid,
 		return;
 	}
=20
+	if (ste_live) {
+		/* First invalidate the live STE */
+		dst[0] =3D cpu_to_le64(STRTAB_STE_0_CFG_ABORT);
+		arm_smmu_sync_ste_for_sid(smmu, sid);
+	}
+
+	if (s1_cfg) {
+		BUG_ON(s1_live);
+		dst[1] =3D cpu_to_le64(
+			 FIELD_PREP(STRTAB_STE_1_S1DSS, STRTAB_STE_1_S1DSS_SSID0) |
+			 FIELD_PREP(STRTAB_STE_1_S1CIR, STRTAB_STE_1_S1C_CACHE_WBRA) |
+			 FIELD_PREP(STRTAB_STE_1_S1COR, STRTAB_STE_1_S1C_CACHE_WBRA) |
+			 FIELD_PREP(STRTAB_STE_1_S1CSH, ARM_SMMU_SH_ISH) |
+			 FIELD_PREP(STRTAB_STE_1_STRW, STRTAB_STE_1_STRW_NSEL1));
+
+		if (smmu->features & ARM_SMMU_FEAT_STALLS &&
+		   !(smmu->features & ARM_SMMU_FEAT_STALL_FORCE))
+			dst[1] |=3D cpu_to_le64(STRTAB_STE_1_S1STALLD);
+
+		val |=3D (s1_cfg->s1ctxptr & STRTAB_STE_0_S1CTXPTR_MASK) |
+			FIELD_PREP(STRTAB_STE_0_CFG, STRTAB_STE_0_CFG_S1_TRANS) |
+			FIELD_PREP(STRTAB_STE_0_S1CDMAX, s1_cfg->s1cdmax) |
+			FIELD_PREP(STRTAB_STE_0_S1FMT, s1_cfg->s1fmt);
+	}
+
 	if (s2_cfg) {
+		u64 vttbr =3D s2_cfg->vttbr & STRTAB_STE_3_S2TTB_MASK;
 		u64 strtab =3D
 			 FIELD_PREP(STRTAB_STE_2_S2VMID, s2_cfg->vmid) |
 			 FIELD_PREP(STRTAB_STE_2_VTCR, s2_cfg->vtcr) |
@@ -750,12 +802,19 @@ static void arm_smmu_write_strtab_ent(struct arm_smmu=
_master *master, u32 sid,
 			 STRTAB_STE_2_S2PTW | STRTAB_STE_2_S2AA64 |
 			 STRTAB_STE_2_S2R;
=20
-		BUG_ON(ste_live);
+		if (s2_live) {
+			u64 s2ttb =3D le64_to_cpu(dst[3]) & STRTAB_STE_3_S2TTB_MASK;
+			BUG_ON(s2ttb !=3D vttbr);
+		}
+
 		dst[2] =3D cpu_to_le64(strtab);
=20
-		dst[3] =3D cpu_to_le64(s2_cfg->vttbr & STRTAB_STE_3_S2TTB_MASK);
+		dst[3] =3D cpu_to_le64(vttbr);
=20
 		val |=3D FIELD_PREP(STRTAB_STE_0_CFG, STRTAB_STE_0_CFG_S2_TRANS);
+	} else {
+		dst[2] =3D 0;
+		dst[3] =3D 0;
 	}
=20
 	if (master->ats_enabled)
@@ -1254,6 +1313,15 @@ static int arm_smmu_domain_finalise(struct iommu_dom=
ain *domain,
 {
 	int ret;
 	struct arm_smmu_domain *smmu_domain =3D to_smmu_domain(domain);
+	struct arm_smmu_device *smmu =3D smmu_domain->smmu;
+
+	if (smmu_domain->stage =3D=3D ARM_SMMU_DOMAIN_NESTED &&
+		(!(smmu->features & ARM_SMMU_FEAT_TRANS_S1) ||
+		 !(smmu->features & ARM_SMMU_FEAT_TRANS_S2))) {
+			dev_info(smmu_domain->smmu->dev,
+					"does not implement two stages\n");
+			return -EINVAL;
+	}
=20
 	/* Restrict the stage to what we can actually support */
 	smmu_domain->stage =3D ARM_SMMU_DOMAIN_S2;
@@ -2353,11 +2421,14 @@ static int arm_smmu_device_hw_probe(struct arm_smmu=
_device *smmu)
 		break;
 	}
=20
+	if (reg & IDR0_S1P)
+		smmu->features |=3D ARM_SMMU_FEAT_TRANS_S1;
+
 	if (reg & IDR0_S2P)
 		smmu->features |=3D ARM_SMMU_FEAT_TRANS_S2;
=20
-	if (!(reg & IDR0_S2P)) {
-		dev_err(smmu->dev, "no stage-2 translation support!\n");
+	if (!(reg & (IDR0_S1P | IDR0_S2P))) {
+		dev_err(smmu->dev, "no translation support!\n");
 		return -ENXIO;
 	}
=20
diff --git a/xen/drivers/passthrough/arm/smmu-v3.h b/xen/drivers/passthroug=
h/arm/smmu-v3.h
index ab1f29f6c7..3fb13b7e21 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.h
+++ b/xen/drivers/passthrough/arm/smmu-v3.h
@@ -197,6 +197,7 @@
 #define STRTAB_STE_0_CFG_BYPASS		4
 #define STRTAB_STE_0_CFG_S1_TRANS	5
 #define STRTAB_STE_0_CFG_S2_TRANS	6
+#define STRTAB_STE_0_CFG_NESTED		7
=20
 #define STRTAB_STE_0_S1FMT		GENMASK_ULL(5, 4)
 #define STRTAB_STE_0_S1FMT_LINEAR	0
@@ -549,6 +550,12 @@ struct arm_smmu_strtab_l1_desc {
 	dma_addr_t			l2ptr_dma;
 };
=20
+struct arm_smmu_s1_cfg {
+	u64				s1ctxptr;
+	u8				s1fmt;
+	u8				s1cdmax;
+};
+
 struct arm_smmu_s2_cfg {
 	u16				vmid;
 	u64				vttbr;
@@ -669,7 +676,9 @@ struct arm_smmu_domain {
 	atomic_t			nr_ats_masters;
=20
 	enum arm_smmu_domain_stage	stage;
+	struct arm_smmu_s1_cfg	s1_cfg;
 	struct arm_smmu_s2_cfg	s2_cfg;
+	bool			abort;
=20
 	/* Xen domain associated with this SMMU domain */
 	struct domain		*d;
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268225.1557549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OGy-0008JT-Br; Tue, 31 Mar 2026 01:52:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268225.1557549; Tue, 31 Mar 2026 01:52:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OGy-0008Ih-67; Tue, 31 Mar 2026 01:52:04 +0000
Received: by outflank-mailman (input) for mailman id 1268225;
 Tue, 31 Mar 2026 01:52:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OGx-0008FY-JT
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:52:03 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OGw-00HCrd-Vn
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:52:02 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb288a-e002-0a2a0a5209dd-0a2a4506a066-36
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:02 +0200
Received: from [52.101.70.107]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28c2-3034-0a2a45060019-3465466b342c-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:02 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by PAWPR03MB9202.eurprd03.prod.outlook.com (2603:10a6:102:342::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:52:00 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01:52:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Tdf9XitBkI14H2tsU4N1QD8g4ryqgC6y+oZzmsrAL7We3SshCEJb7rqkQbFb+qCVTW8ZXq4UfC7Rnu3uFPnaGyszvEYmkJ2fbWTjeOyLQUqif9ZbDTP1+bfsokEsH6xPUJ9vsSgBVyEoNvEU1tAx2PBjLuOVC8WbO6yCPVGk9pIglzZMELjOQrhbvUOtEHBfH70iefj7M1YoImNnfEbTO8u40JIczigCgBgZ3vlZitRw99f1BeFBmwdaDaNDpQdE8MFXmCIT8jZywSdjBLKLuAPIC0zakUGFRxu5GLjdLi6+wAzOuYDv6lJxkIHDguiexEgBG9ti5i0fKTwDkguozw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sU8GoKCw1duoKn68Ez7JxNbztNRn7RHZZ1LI+M+VqSU=;
 b=kJJrePJJcvO6sB/jKOiYqoqoeYrM3s/HSM88hpYK26NUWHHeTJhZA2fOj5Ei+RM3GUKAg8SoAjrblRooZiCEWzcRBXZJgO2ypj+ctuNJssynwpOHc2gW+RUZ0NfdlSoggLROfxGpcW+OLEgJtt1r4jDl+sgYLXrmhUFruEOVrKcT7eiVz3aNhMCeH+ea9onxKTLcQkn2JP8rL8LGl9ZZwHOO9iEfKJ+Z8Uy2Ud6N8NarM0DsARHaQlk6nHpiIa/uFLZNWIc+V0WKOECa68YdpqAnL8P7pWdBwR8wVSw868EvNxYD1kckBjd6gqeEwIEAeKdOrXyuyUo2tbwF5Qdb7w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sU8GoKCw1duoKn68Ez7JxNbztNRn7RHZZ1LI+M+VqSU=;
 b=YJoizQ8plWYFJXHSs57K4I4xLrhnxv4U1ivNzp9yi/dnOF0nQL5TUkqImDD6K5e0RuOVAF1IMcrjPjZf4ppZX96nZIU29Wnzx1ZJsHhe/W3UnbJ+4DkeGDreRpbXO6pFFgXIUqxzgiqGZ9oJIVEHUjKB2usKu4kwvVSZcI5aPlYbYV4uPN+V2DxheIZMLx2UtRVdfJI/ughOMSfsoEoIHNtCXrHQ9AfjDBG59RNtWUJ0jEJlr/VNKnulXXQOPzV8BUWv/aURV+//P88bhEvaUYhm6nlR2+XBRPAw3xeiwUEnBelJlF7kQYZhuGQr8F2huzZIAMDJi/b+cSVN/ycpeQ==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH v3 03/23] xen/arm: smmuv3: Alloc io_domain for each device
Thread-Topic: [PATCH v3 03/23] xen/arm: smmuv3: Alloc io_domain for each
 device
Thread-Index: AQHcwLD3sw7v0KnmckSgDcemNoDsCA==
Date: Tue, 31 Mar 2026 01:52:00 +0000
Message-ID:
 <78e4f2e2c68cdb75aa1c0dd7e8b456c03aa2fe6f.1774918270.git.milan_djokic@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774918270.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|PAWPR03MB9202:EE_
x-ms-office365-filtering-correlation-id: 6399de50-5434-4554-d200-08de8ec819ad
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|366016|38070700021|18002099003|56012099003|22082099003;
x-microsoft-antispam-message-info:
 PoirOyn4NVsexMnEfVij2wls5JJGvjdtCyxiqzFZNWye8Ryfxtgrufg4Zyi8rRhnD5LazJKpPMRdOxdOhxum5ylk0982XYW01GkhFia2hJU09Zh9Oi+eiYibcTZt/UD8NvwL53y8vkUhYfE+tiPu5yaKhxP8X9ruKPCI2aOtzqhXCT+lZESKoSR5Xwh0CwAnYjMbDIK6lLHsqFC4zION3R1UtARIbNe/qcZVrm1v/tvwgq7QxV2EkJyLPH3XaoUx13FX9dKdsoIZDOBF6HmGKyakQUeC7r4vi47eJCtwdJr9Yb6/NPHZTkKmmqYEBJttDgESODUbR0cFN05AYoZ35p6Ty5l4KXDaFA4nHUnbWN/PPSqSgpO9i2JOhh/mUD5nQ97zm/XMFVirUfOvQ6RaJGDBhJ6n5N//uKfRXUGouzF2a9gp2uYx/X2jkaYZ9z11LsLYGxkM7stPs6wNEmhyYeDUvzo9vgA8P5V/N8LZsdGyRfCRv4S7ivsJwjts3sfu1Xum/3Kylp5JeNM+5GIJixg6eqlWNfqC3NuwoAMhiLobLlAYyHuTJxf75wwj/4/Pr21lBYliwcdKfzUuMwzy6Qk52FKzwOcCEQDCg7PqSFR4tWUpq5wr2CoNe6rQ6xeyWaPbjCZj/XIcilCtZOgLOSQDFvjfO+A9aMupKtscaS3H4Gl+o6CKehSS0LiyW3kiDAhs6gXdtr3nxR2BlOZYdWKPiReOAN9TjzW48N7l4H4K1DeLV01ZNsWTo19U+ZB2qy8CBGCYHgGkURfO9SCPPkfIgQaRjzTSwmMtXE9Ip8s=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?URmOYvyxG4CNLWla79U1QpbxlQmAwBE20J0h294SA75c5rM15BI7BQ7DR5?=
 =?iso-8859-1?Q?+YwoXK45033+hL1wCEBXlZT+nA3uyiKN2M/di035c+KIlhCkk9iMlxXbk6?=
 =?iso-8859-1?Q?7X16H12hbRBJ0m2Q+2CN+Oh9uMGibXsGIkSesLkHVnYdfQzn545IR40QHo?=
 =?iso-8859-1?Q?jue04nmLt4nEMLewcXSOq+YtBIeE5Tx7GGJB9qfM0L21nju/jeFz3XQr9F?=
 =?iso-8859-1?Q?n9oD99fGX3/mzvsnMmjgBRIoLP/6QoYhGUDO/OFxZabKGziEgD/rKGJK+m?=
 =?iso-8859-1?Q?q5exDQq24PlNjEtMbcSO4agBobObyMO5WeysDOTcNnYODEPxWIHSmuQKda?=
 =?iso-8859-1?Q?9Ebb8mdins4M3KljARaD93mrgaP0j3uTRLMoVflweK3/L8Jl87iTSYHVkH?=
 =?iso-8859-1?Q?qJzM1cB2cl+TOZdT5r7Sah7E6FhS8UL3m2HGAdmkbNTdqsBG6kn1L1cdk3?=
 =?iso-8859-1?Q?LVOVRadJnQmFNPBWpRd6dAn4i7pjC7igg2bCDWX3T9bpHmcLevzIj3k7KY?=
 =?iso-8859-1?Q?monrGK4oPGIEjg5zZAA1V9F0LSwI9PsKWJNwP2HC8fq7DCln3E/tZfZfrk?=
 =?iso-8859-1?Q?fGMPdr7AoKkTzN+AJ9zNqnPP8HkZdGP1q5E2RETaP9LdkJDkIpzniWeR2Z?=
 =?iso-8859-1?Q?PKdSJDjSDxrmig/Wj/9Mh09306JWXhzYimVjr2ORyhY8fgrgzWK3GVKOcF?=
 =?iso-8859-1?Q?ZgDT6qyuM6DetnVp/bgPzp/bbmERrBGxq8DDIYBbkqzTA9V0iK5FsWgQgd?=
 =?iso-8859-1?Q?PG3Fl/3+0+gylhIxJ40cQTU3R9D5y+dihKNBMXIpjZ/50hLKDVxr6BwES7?=
 =?iso-8859-1?Q?JCs2VMQtof6ORCwWMu9PQLImURydzegp1gpzK4rzrmB0ziZaoG4PSoonN6?=
 =?iso-8859-1?Q?cXEJitCw1uLmpgW48Xm3AhgReua+MllWhaKYW4A6Rna16fKigaaUNFe2CB?=
 =?iso-8859-1?Q?Iqpv6Kt39oTxh3S9skLe0+EDY0gQH9SfXa4VWq3jLuAWfykMLMKXKNrn/W?=
 =?iso-8859-1?Q?Cx+KAxRIhhLt54ur7bCD8bmRvPr3J7+8FZyd13+GSy/mHEJjF5HQdR+jZN?=
 =?iso-8859-1?Q?9IQckH2me/5snJAeMWPTyfadAhPYmROSUdjeY+Eagt8U+/L2qkIOa2TIvT?=
 =?iso-8859-1?Q?zPNUEvv6Nuj9iiCaFjzwPppCSxe936Yay2fhqMXdlVkIB4tMP1V3VFUs3n?=
 =?iso-8859-1?Q?J4HXVOiRRCrlh1CqJXoKgthByc+GW+ilqhITiMrP35y4m6lRWR/1vD++mo?=
 =?iso-8859-1?Q?/6mAjB0x7UiH9q5slaJS3oc35YGw9Yfb9xqdjQ1x7YApAcerhg1xxlFJJp?=
 =?iso-8859-1?Q?PjV/hJ7EhYzQ8PAZOMixPmuiPw8iuko8JvcVuu+aJbUc1bykjRKuY/WjV0?=
 =?iso-8859-1?Q?ut/NTzH3uBMfzf8wP1mN91QmhioKnjqtutzmJX71e6zvYDruRG+Z0rZGJO?=
 =?iso-8859-1?Q?6ngRmUzY2+JAfOKW7unxqMOhjKAg6GTRsw3W96PMCwQYLZpzqgkGKcJqBY?=
 =?iso-8859-1?Q?NLRLNQ5vjPaesQD6woeBu8gB1iIHoXDBm2BMoKpGfWtKbdSUzkbxX97gZR?=
 =?iso-8859-1?Q?ciubp+8VOAo7mWl50zmiKASxPel28Pkmi1guT5m0UEXPdfTtQagXfAG42L?=
 =?iso-8859-1?Q?5bhiivxKANftLh9JhLcw5Fhlau/TsfsxvHEz5SqFqZpMZwezqD6YjtwWfJ?=
 =?iso-8859-1?Q?MaRJHhmV3+0v5F0J6tyUxnjt1e34KtyAE7OWxpIMC2UssjcXbLczcEtNwA?=
 =?iso-8859-1?Q?PDmTixCXHSI2kgLodshlZCNT6XDD5Qqad9HF6Fk3FKX4hG4OBLSpynhb20?=
 =?iso-8859-1?Q?My+2YyqDAx78761TZsONecRs+DyLcJg=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6399de50-5434-4554-d200-08de8ec819ad
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:52:00.8449
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: xkekH/FYSPKw3mBw63YW1jTp2WcV7aL2iuMwWfeS9UaMcUxJxid3Tkntv5q+uR7DaZtmzLoAcJ5oA9KqkMUwYg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9202
X-purgate-ID: tlsNG-16d1c6/1774921922-817881C2-7B777B61/0/0
X-purgate-type: clean
X-purgate-size: 2159

From: Rahul Singh <rahul.singh@arm.com>

In current implementation io_domain is allocated once for each xen
domain as Stage2 translation is common for all devices in same xen
domain.

Nested stage supports S1 and S2 configuration at the same time. Stage1
translation will be different for each device as linux kernel will
allocate page-table for each device.

Alloc io_domain for each device so that each device can have different
Stage-1 and Stage-2 configuration structure.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/drivers/passthrough/arm/smmu-v3.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthroug=
h/arm/smmu-v3.c
index f9c6837919..19e55b6c9b 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -2809,11 +2809,13 @@ static struct arm_smmu_device *arm_smmu_get_by_dev(=
const struct device *dev)
 static struct iommu_domain *arm_smmu_get_domain(struct domain *d,
 				struct device *dev)
 {
+	unsigned long flags;
 	struct iommu_domain *io_domain;
 	struct arm_smmu_domain *smmu_domain;
 	struct iommu_fwspec *fwspec =3D dev_iommu_fwspec_get(dev);
 	struct arm_smmu_xen_domain *xen_domain =3D dom_iommu(d)->arch.priv;
 	struct arm_smmu_device *smmu =3D arm_smmu_get_by_dev(fwspec->iommu_dev);
+	struct arm_smmu_master *master;
=20
 	if (!smmu)
 		return NULL;
@@ -2824,8 +2826,15 @@ static struct iommu_domain *arm_smmu_get_domain(stru=
ct domain *d,
 	 */
 	list_for_each_entry(io_domain, &xen_domain->contexts, list) {
 		smmu_domain =3D to_smmu_domain(io_domain);
-		if (smmu_domain->smmu =3D=3D smmu)
-			return io_domain;
+
+		spin_lock_irqsave(&smmu_domain->devices_lock, flags);
+		list_for_each_entry(master, &smmu_domain->devices, domain_head) {
+			if (master->dev =3D=3D dev) {
+				spin_unlock_irqrestore(&smmu_domain->devices_lock, flags);
+				return io_domain;
+			}
+		}
+		spin_unlock_irqrestore(&smmu_domain->devices_lock, flags);
 	}
 	return NULL;
 }
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268228.1557570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OH3-0000cV-W6; Tue, 31 Mar 2026 01:52:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268228.1557570; Tue, 31 Mar 2026 01:52:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OH3-0000cE-Ri; Tue, 31 Mar 2026 01:52:09 +0000
Received: by outflank-mailman (input) for mailman id 1268228;
 Tue, 31 Mar 2026 01:52:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OGz-0000HB-Tn
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:52:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OGz-00HCrd-A0
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:52:05 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb288a-e002-0a2a0a5209dd-0a2a4506a066-44
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:05 +0200
Received: from [52.101.84.108]
 (helo=DB3PR0202CU003.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28c4-3034-0a2a45060019-3465546cabb7-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:05 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by PAWPR03MB9202.eurprd03.prod.outlook.com (2603:10a6:102:342::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:52:03 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01:52:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KbMGvqA57Lne8xSs598xKd+25kZfhAO1yzftBK2hLlHceH2CcMHZqT5zjt2tNfy/4h4MUkTUEibnuyElDaLVD6laU92+56jdHnEMTeAsvevSJ9A1YnfMR6bYuwx9kUp8aKNLdkEYfevvev0Hm4uugU1GfH3SR3s+KwneEYxxyasJEF6MZ557f6pH4D6aSlr5qUCdpZzsRqbzt2BSUGqTCMo71krc18VInM1mw5i9pWREWg2UdPz7DQ9VHkIHpB9yYLfiiLt/Ap3TR4wizGOWCDSFvIb7T+KFUTZ/zoSJ/kC0p7s1mKsiQ9djDewOzZwtU9aCrF2TjcEJdEVTwzFbHg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5+N4Q23EAVLosvmloXu+zocp45zkE1gW0HnH28c7MEs=;
 b=DnttmNNXnGzsxGxvKkQjUGz2QpGuwg5kUyGTg+h4ZfNPCyXqrSZLgEIG3C07kOt8gUo0cvKt4ZS7QqTrX4xulmIHKJfWEvNzd3gMkoQkH/SGvPAb29C3DaPhhCTL6FJBc/Yzi/vj1eFK0S6cO8Hm4w6UecSSuEWX9el1TNlHHqYwmoSFSrQkgz0pSI7z9JhG5pioqd+16PoWgTFVUVgcBvywuLK4xJBBLss0Rj/4S0F+O7dwy5zXoTnNiBMmOGwb5u0YT3bBfsTW2JpJsY5QAoECZ9rgWx9PpmJO9CIoq3lHjhdaVZYOD0q1kMW60S901qLvT+vinh6DM4MJQbIZvA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5+N4Q23EAVLosvmloXu+zocp45zkE1gW0HnH28c7MEs=;
 b=EKjecrPwzjIdr/G+sD6lb9uXWv4WU8jUgq+zvt2n/vCuSJt19nlOUJFuvgG53GnXcFK4EDz2L2cHXp9dAz+K5VMQPj+PorZwxJQpoMIrsf6Nk6SLwZcoDVWHv419MldemHub1Fe5DUowhLYjD/8RUbe3qNfW+AFf1+YHqH6A++YDbz/bVMs0NXxmeTaN6JYGXYKfE1NJ89qDTN/m/sldWF6cAcRYoEe3eYd55+zCGziPX2hzxeI10jiASZupuAoZU7DUODX+8G1ThrOYNWq31Bq3dUhccES1m+FMIfvuTjkEHbFWMjGO3KFxwLccNQcXAfh6KWHSCxhmrZjbL1ehRw==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH v3 05/23] xen/arm: vsmmuv3: Add dummy support for virtual
 SMMUv3 for guests
Thread-Topic: [PATCH v3 05/23] xen/arm: vsmmuv3: Add dummy support for virtual
 SMMUv3 for guests
Thread-Index: AQHcwLD4A8aG8JRv9Eu1DAM3xyXr+Q==
Date: Tue, 31 Mar 2026 01:52:03 +0000
Message-ID:
 <97aa20fdcec324bb58c6869ddcba5fcf29bf75b3.1774918270.git.milan_djokic@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774918270.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|PAWPR03MB9202:EE_
x-ms-office365-filtering-correlation-id: e6be0a00-731c-4ce6-eb20-08de8ec81b10
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|366016|38070700021|18002099003|56012099003|22082099003;
x-microsoft-antispam-message-info:
 KXjCmKFAXJeQ6gaMsB5ZOcjMSCpkch0IJljirN6MSBWjW5Iz2YFIeCMXJnjQbdFcwkFsOAak6awNe+TAN+LCgKXZN7lOp46JoC8TqA4mr2Q9nJx2DlaCWNpSxJ0NZIVMRl4TtT7tUAzCSEwmLQfvo/jfGWN5OouOtXrpWChjzxfLTukLsp0MNZzP9FuvGZDHmZ/PWEQpegBs8XxQ9uB2LfF3RTjWBLki9RQOkQbsXXB4ia+rr+wC9tcXnrC6Wk3kpnuM7xpLLPBs9Uf00UaEA4t869t4dtLFyEHIWThtMQc9hvFK5oapegIwH8YmsqXhKFB/6eezdpybSQRKoXuVNssYiHh0hjJrUsqhtx7r1eNyO70qOMWDFzYwB68Mpn8/jbnOweDjayJ3iiI6a7ZbLfRcRISOnsRIjoHKBqvpWTYcuL8DIvwAFfB0P1it9JLua6+LyxIPiXgnf9eW4DggJJx3XOc39Ny3ruvCpJ1vV+qwSrxxg5jCfSai1oaM/Zj+pvmLlsPEuWa1ClSmDdZoPttQbM+1W/Zu1JugIE6Q7OKUA9ZyE/6hQHAXgLEUnqmWmCb3h6GqrfhrJnIzeKWXaCR3070961IB6BejGZsIH9B3DcQkzG3wMX4ZGSD2VQ8ON8O+4UFX4A6UTbnxAWyjsvRwTqFW884RymCGzYC0GVwVuyNRHSRTxIaPCiPp0ysUbf9kDtSynOJmBJfMz6jvfu6Ucue0fOn+qmrNpGt7RB8OKnKGIiteTy4b8cBtpoNY6ScqObi4SRlRSnV+IQBS0m+dUJcn9jsvBpHRy00/3kw=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?bzVkY2dsYzd1MjVXajZrK0pJbGhlKzd0cEVja21jd05lU29YekdBUTRNYlBO?=
 =?utf-8?B?QVo1bXd1MW1rZVlseCtzaEtFU0xWdDFZQW4zUklmR2NOK0QyU0NHV1FqNHdh?=
 =?utf-8?B?T2xUbnc1N3RBbmtCWFBIeVRyZzNDNlJpSERKZEdmRU52V2VwanBQelBFOGUr?=
 =?utf-8?B?L0JFUlAyWndnMXdQbEVyM3NuZWpHS0hzWG1rNjQrRU9rL1A4bXdRbTh5QXBY?=
 =?utf-8?B?VVJiVkZWRG11TW1oMEtoek9lR3lDOGZnZHdMSndPQ3pjRklyMitLMStXSTd6?=
 =?utf-8?B?d3ZrVU9SaitUZmRYejF1QTFjYUx1WUZ2cHN3YVQ4QjlFUk11QWpwVDVxaSsv?=
 =?utf-8?B?Z003cXcrRmNJODd0SU9kQlI0SkV2OTNNZ3JXTkxFa1gzdDZsdHUxbml2ekdt?=
 =?utf-8?B?cmhndCtBT2xhenZzSVVQckQ2cFdDSDFXamVzTXNvOXR0TWFTN2hReXJyMHJL?=
 =?utf-8?B?UjErRzNyMzlSUTAvVkpoUWM4NVEvOFd4dC9sTEF5cVllYitrUUZUeU9SanQw?=
 =?utf-8?B?c3FLOUUxbG5jNEkxZWJmUUZkcmVNMXlkWGVsdjZucDJJWFc3QmpXakpCR1gx?=
 =?utf-8?B?eXZEYWlkSS94N1ZFM0htcjhtQngvSHZkaXZ6RE9lZ0xIZ0lDZUtGWXlWMFVq?=
 =?utf-8?B?M2hLc2JKSXc4cnJMb3FlWTdUc0lZOHh3dmxtM1M3K2F6UDY0WHpZaTJKczhY?=
 =?utf-8?B?VVVCVUJ3Zkc1Qm0rQVR4eTZFQXpBM2pZMlJwNDFiTmJsT1pLU1ZZd3p4TFdh?=
 =?utf-8?B?ekNSQ2Y1YVpWT2U0OW14bVdRa3hHQlJZTVRGcFo5MTZDcUdiTnRHRWVvMTZJ?=
 =?utf-8?B?WVNrUHZaSjdvSGhYVzUwdDhnWHY3a0hDcnhUZ0pPNTlGTDgzT25CRmFzcGRZ?=
 =?utf-8?B?SXZNZkN4bjZrekY1VXhiTkhIU0JFd2I1S0Vvc2ZxR3BqMHhRRDViVnVaWG1K?=
 =?utf-8?B?UGQ5dVZ3Z3VTVC9ENnNocm1HQ1lQU2pndmxVYmQ0eFFJazFvVHJTQW0ySjd6?=
 =?utf-8?B?ZU9qVXZxUk5MY3V1YTBkaisramxWa05hcXVMRi9aZS9yYUtBR3pTdTkvSS90?=
 =?utf-8?B?T1hkeVJTYlVGTU5oSnNaZkVOcEtpaGk3aU5vTUlDdWxUbEw5OGIzZDluaFo5?=
 =?utf-8?B?eVE0RFprdU51VnNJK1NpaXpGQ3BtUHJwSXE3cjdlNHBkL01QaUtYLzNabTNZ?=
 =?utf-8?B?MFE5UVhkWGJsSVlFSGYxbmhHbW5ocm80dnFLQThNRmZpdStCYmQ2bitRWDFS?=
 =?utf-8?B?TGNQdzFVcFRHNklZdUIwMFdIRmJUc2Z1YUJMcHNVT3BwTFNGaHpTa2N3L3Yw?=
 =?utf-8?B?YjFHOENkNHppanRjMnBaUGZicHdqZDJ4U2xxRm1jM3pJNVhsZDZsa1VXOENI?=
 =?utf-8?B?Q21HUExEc0VLN244ODlOcis4Tlh4UDdleHRZRDVqcVcxVDZma2Z6S29IZSt5?=
 =?utf-8?B?ZGtPVFhkQVRQMzFHTkJuT3NPeHp4OWNkeE1GazN1d054TTZiQ0srbU1lazha?=
 =?utf-8?B?VmJTRXM1Ull6eEc3dWRVekc2N0hBeWozbXN3VnJBZlZnWWV5U0ZSVklFQmx4?=
 =?utf-8?B?aW93dlhTOEt0cVczblEzK3c1aEcvTDhxMXRUQnRwdVZUZ0grTnZqcXA5eHdu?=
 =?utf-8?B?dTNYcEkrQnY4U29DN09HMWNnK0orMG9pUzJkekNoRXNwZ0hNMVd0cytnQjFj?=
 =?utf-8?B?ekllOWlhcnRpeVJSa2ZsbmtpaDF1WjZkTDVQOWFRTHY4YXdCYWZqMXJNNldS?=
 =?utf-8?B?bVp4ZzYzdGgzZEhKYzZzRUlaQWVyZWF5UmdBbVVPU0NoVFNSSEFWUGJ5eEZt?=
 =?utf-8?B?aGVDa2lGM2ZhM2o4UzlHbzdwWlhOZFZJNEt6Q1g2dkdYNU50eW5oR1MxSDJK?=
 =?utf-8?B?UDVDOXYxWm9ManJRdk0yOHFaRFVlNW5HdkRlYm1QOTRYcTlRYmVodENuQ1Fz?=
 =?utf-8?B?VUxvY04ra0hJa3B0Y0xwRkFLSTc3R2JTYm40UmJJOVNJTG5PUVJhd211ZVJu?=
 =?utf-8?B?YWdnSE9iOGgvaEJDYS81d0lpbk9UQVFBR25HaXoyeWZHZTJSa1F4anZMVDZN?=
 =?utf-8?B?UlphQUlyN3RaSVBmMWx4T2UrSUZQNTh4c3ljTE9yYzlYWFhCN1hkeUZNUFZp?=
 =?utf-8?B?Myt6aTNhemJ4aWR5VE9FNlo1Nm5RdU41b3g1Snk3cmdDN1YvYldBZjIwRTk0?=
 =?utf-8?B?bW13a05wTUlYZWduNzRFeFpYQmVySTBvblpyMUhUOVA4M2lTK0hmVWttdDVj?=
 =?utf-8?B?UGdMMUdiNmhqM3YrTHJmVEJsdDU1VjJOenVaSzFvS2I3MmdrV0FuMlprVHAw?=
 =?utf-8?B?NkE1ZW9HVnBzNExHL2M2RC9jS0VmOHcycUJqZmlUdFc5ejAwWHhyODBqMW1H?=
 =?utf-8?Q?ddtZzOmW7FH9QN0M=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <7BDE5DE39662244FA6CB698E03792DB6@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: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e6be0a00-731c-4ce6-eb20-08de8ec81b10
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:52:03.1509
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: t03XseDHC/Tew/m9FtQA0CQee7x+W0mrESbIkjPaj6lLaBT0u3h6s8ux70ZXO9gbATEaKAI7iEBB2NNUBOEYtA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9202
X-purgate-ID: tlsNG-16d1c6/1774921925-7938A1C2-8109426A/0/0
X-purgate-type: clean
X-purgate-size: 16984

RnJvbTogUmFodWwgU2luZ2ggPHJhaHVsLnNpbmdoQGFybS5jb20+DQoNCmRvbWFpbl92aW9tbXVf
aW5pdCgpIHdpbGwgYmUgY2FsbGVkIGR1cmluZyBkb21haW4gY3JlYXRpb24gYW5kIHdpbGwgYWRk
DQp0aGUgZHVtbXkgdHJhcCBoYW5kbGVyIGZvciB2aXJ0dWFsIElPTU1VcyBmb3IgZ3Vlc3RzLg0K
DQpBIGhvc3QgSU9NTVUgbGlzdCB3aWxsIGJlIGNyZWF0ZWQgd2hlbiBob3N0IElPTU1VIGRldmlj
ZXMgYXJlIHByb2JlZA0KYW5kIHRoaXMgbGlzdCB3aWxsIGJlIHVzZWQgdG8gY3JlYXRlIHRoZSBJ
T01NVSBkZXZpY2UgdHJlZSBub2RlIGZvcg0KZG9tMC4gRm9yIGRvbTAsIDEtMSBtYXBwaW5nIHdp
bGwgYmUgZXN0YWJsaXNoZWQgYmV0d2VlbiB2SU9NTVUgaW4gZG9tMA0KYW5kwqBwaHlzaWNhbCBJ
T01NVS4NCg0KRm9yIGRvbVVzLCB0aGUgMS1OIG1hcHBpbmcgd2lsbCBiZSBlc3RhYmxpc2hlZCBi
ZXR3ZWVuIGRvbVUgYW5kIHBoeXNpY2FsDQpJT01NVXMuIEEgbmV3IGFyZWEgaGFzIGJlZW4gcmVz
ZXJ2ZWQgaW4gdGhlIGFybSBndWVzdCBwaHlzaWNhbCBtYXAgYXQNCndoaWNoIHRoZSBlbXVsYXRl
ZCB2SU9NTVUgbm9kZSBpcyBjcmVhdGVkIGluIHRoZSBkZXZpY2UgdHJlZS4NCg0KQWxzbyBzZXQg
dGhlIHZJT01NVSB0eXBlIHRvIHZTTU1VdjMgdG8gZW5hYmxlIHZJT01NVSBmcmFtZXdvcmsgdG8g
Y2FsbA0KdlNNTVV2MyBkb21haW4gY3JlYXRpb24vZGVzdHJveSBmdW5jdGlvbnMuDQoNClNpZ25l
ZC1vZmYtYnk6IFJhaHVsIFNpbmdoIDxyYWh1bC5zaW5naEBhcm0uY29tPg0KU2lnbmVkLW9mZi1i
eTogTWlsYW4gRGpva2ljIDxtaWxhbl9kam9raWNAZXBhbS5jb20+DQotLS0NCiB4ZW4vYXJjaC9h
cm0vZG9tYWluLmMgICAgICAgICAgICAgICAgICB8ICAgMyArLQ0KIHhlbi9hcmNoL2FybS9pbmNs
dWRlL2FzbS9kb21haW4uaCAgICAgIHwgICA0ICsNCiB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20v
dmlvbW11LmggICAgICB8ICAyMCArKysrDQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvS2NvbmZp
ZyAgICAgICAgfCAgIDggKysNCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vTWFrZWZpbGUg
ICB8ICAgMSArDQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUtdjMuYyAgfCAgIDcg
KysNCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vdmlvbW11LmMgICB8ICAzMCArKysrKysN
CiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vdnNtbXUtdjMuYyB8IDEyNCArKysrKysrKysr
KysrKysrKysrKysrKysrDQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3ZzbW11LXYzLmgg
fCAgMjAgKysrKw0KIHhlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLWFybS5oICAgICAgICAgIHwgICA3
ICstDQogMTAgZmlsZXMgY2hhbmdlZCwgMjIyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p
DQogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS92c21tdS12
My5jDQogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS92c21t
dS12My5oDQoNCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZG9tYWluLmMgYi94ZW4vYXJjaC9h
cm0vZG9tYWluLmMNCmluZGV4IDI0MWY4NzM4NmIuLmI5ODJkNzliM2IgMTAwNjQ0DQotLS0gYS94
ZW4vYXJjaC9hcm0vZG9tYWluLmMNCisrKyBiL3hlbi9hcmNoL2FybS9kb21haW4uYw0KQEAgLTY0
Myw3ICs2NDMsOCBAQCBpbnQgYXJjaF9zYW5pdGlzZV9kb21haW5fY29uZmlnKHN0cnVjdCB4ZW5f
ZG9tY3RsX2NyZWF0ZWRvbWFpbiAqY29uZmlnKQ0KICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQog
ICAgIH0NCiANCi0gICAgaWYgKCBjb25maWctPmFyY2gudmlvbW11X3R5cGUgIT0gWEVOX0RPTUNU
TF9DT05GSUdfVklPTU1VX05PTkUgKQ0KKyAgICBpZiAoIGNvbmZpZy0+YXJjaC52aW9tbXVfdHlw
ZSAhPSBYRU5fRE9NQ1RMX0NPTkZJR19WSU9NTVVfTk9ORSAmJg0KKyAgICAgICAgIGNvbmZpZy0+
YXJjaC52aW9tbXVfdHlwZSAhPSB2aW9tbXVfZ2V0X3R5cGUoKSApDQogICAgIHsNCiAgICAgICAg
IGRwcmludGsoWEVOTE9HX0lORk8sDQogICAgICAgICAgICAgICAgICJ2SU9NTVUgdHlwZSByZXF1
ZXN0ZWQgbm90IHN1cHBvcnRlZCBieSB0aGUgcGxhdGZvcm0gb3IgWGVuXG4iKTsNCmRpZmYgLS1n
aXQgYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vZG9tYWluLmggYi94ZW4vYXJjaC9hcm0vaW5j
bHVkZS9hc20vZG9tYWluLmgNCmluZGV4IDc1OGFkODA3ZTQuLjYxMTA4ZDAwNjggMTAwNjQ0DQot
LS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vZG9tYWluLmgNCisrKyBiL3hlbi9hcmNoL2Fy
bS9pbmNsdWRlL2FzbS9kb21haW4uaA0KQEAgLTEyNiw2ICsxMjYsMTAgQEAgc3RydWN0IGFyY2hf
ZG9tYWluDQogICAgIHZvaWQgKnNjaV9kYXRhOw0KICNlbmRpZg0KIA0KKyNpZmRlZiBDT05GSUdf
QVJNX1ZJUlRVQUxfSU9NTVUNCisgICAgc3RydWN0IGxpc3RfaGVhZCB2aW9tbXVfbGlzdDsgICAg
IC8qIExpc3Qgb2YgdmlydHVhbCBJT01NVXMgKi8NCisjZW5kaWYNCisNCiB9ICBfX2NhY2hlbGlu
ZV9hbGlnbmVkOw0KIA0KIHN0cnVjdCBhcmNoX3ZjcHUNCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9h
cm0vaW5jbHVkZS9hc20vdmlvbW11LmggYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vdmlvbW11
LmgNCmluZGV4IDQ1OThmNTQzYjguLjJhNjc0MmRlNzMgMTAwNjQ0DQotLS0gYS94ZW4vYXJjaC9h
cm0vaW5jbHVkZS9hc20vdmlvbW11LmgNCisrKyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS92
aW9tbXUuaA0KQEAgLTUsOSArNSwyMSBAQA0KICNpZmRlZiBDT05GSUdfQVJNX1ZJUlRVQUxfSU9N
TVUNCiANCiAjaW5jbHVkZSA8eGVuL2xpYi5oPg0KKyNpbmNsdWRlIDx4ZW4vbGlzdC5oPg0KICNp
bmNsdWRlIDx4ZW4vdHlwZXMuaD4NCiAjaW5jbHVkZSA8cHVibGljL3hlbi5oPg0KIA0KK2V4dGVy
biBzdHJ1Y3QgbGlzdF9oZWFkIGhvc3RfaW9tbXVfbGlzdDsNCisNCisvKiBkYXRhIHN0cnVjdHVy
ZSBmb3IgZWFjaCBoYXJkd2FyZSBJT01NVSAqLw0KK3N0cnVjdCBob3N0X2lvbW11IHsNCisgICAg
c3RydWN0IGxpc3RfaGVhZCBlbnRyeTsNCisgICAgY29uc3Qgc3RydWN0IGR0X2RldmljZV9ub2Rl
ICpkdF9ub2RlOw0KKyAgICBwYWRkcl90IGFkZHI7DQorICAgIHBhZGRyX3Qgc2l6ZTsNCisgICAg
dWludDMyX3QgaXJxOw0KK307DQorDQogc3RydWN0IHZpb21tdV9vcHMgew0KICAgICAvKg0KICAg
ICAgKiBDYWxsZWQgZHVyaW5nIGRvbWFpbiBjb25zdHJ1Y3Rpb24gaWYgdG9vbHN0YWNrIHJlcXVl
c3RzIHRvIGVuYWJsZQ0KQEAgLTM1LDYgKzQ3LDggQEAgc3RydWN0IHZpb21tdV9kZXNjIHsNCiBp
bnQgZG9tYWluX3Zpb21tdV9pbml0KHN0cnVjdCBkb21haW4gKmQsIHVpbnQxNl90IHZpb21tdV90
eXBlKTsNCiBpbnQgdmlvbW11X3JlbGlucXVpc2hfcmVzb3VyY2VzKHN0cnVjdCBkb21haW4gKmQp
Ow0KIHVpbnQxNl90IHZpb21tdV9nZXRfdHlwZSh2b2lkKTsNCit2b2lkIGFkZF90b19ob3N0X2lv
bW11X2xpc3QocGFkZHJfdCBhZGRyLCBwYWRkcl90IHNpemUsDQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqbm9kZSk7DQogDQogI2Vsc2UN
CiANCkBAIC01Niw2ICs3MCwxMiBAQCBzdGF0aWMgaW5saW5lIGludCB2aW9tbXVfcmVsaW5xdWlz
aF9yZXNvdXJjZXMoc3RydWN0IGRvbWFpbiAqZCkNCiAgICAgcmV0dXJuIDA7DQogfQ0KIA0KK3N0
YXRpYyBpbmxpbmUgdm9pZCBhZGRfdG9faG9zdF9pb21tdV9saXN0KHBhZGRyX3QgYWRkciwgcGFk
ZHJfdCBzaXplLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqbm9kZSkNCit7DQorICAgIHJldHVybjsNCit9DQor
DQogI2VuZGlmIC8qIENPTkZJR19BUk1fVklSVFVBTF9JT01NVSAqLw0KIA0KICNlbmRpZiAvKiBf
X0FSQ0hfQVJNX1ZJT01NVV9IX18gKi8NCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhy
b3VnaC9LY29uZmlnIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvS2NvbmZpZw0KaW5kZXggM2Mx
NzRiYzg3Yi4uOWM0OGU3NDE1ZSAxMDA2NDQNCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo
L0tjb25maWcNCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL0tjb25maWcNCkBAIC00MCw2
ICs0MCwxNCBAQCBjb25maWcgQVJNX1ZJUlRVQUxfSU9NTVUNCiAJaGVscA0KIAkgU3VwcG9ydCB2
aXJ0dWFsIElPTU1VIGluZnJhc3RydWN0dXJlIHRvIGltcGxlbWVudCB2SU9NTVUuDQogDQorY29u
ZmlnIFZJUlRVQUxfQVJNX1NNTVVfVjMNCisJYm9vbCAiQVJNIEx0ZC4gVmlydHVhbCBTTU1VdjMg
U3VwcG9ydCAoVU5TVVBQT1JURUQpIg0KKwlkZXBlbmRzIG9uIEFSTV9TTU1VX1YzICYmIEFSTV9W
SVJUVUFMX0lPTU1VDQorCWhlbHANCisJIFN1cHBvcnQgZm9yIGltcGxlbWVudGF0aW9ucyBvZiB0
aGUgdmlydHVhbCBBUk0gU3lzdGVtIE1NVSBhcmNoaXRlY3R1cmUNCisJIHZlcnNpb24gMy4gVmly
dHVhbCBTTU1VdjMgaXMgdW5zdXBwb3J0ZWQgZmVhdHVyZSBhbmQgc2hvdWxkIG5vdCBiZSB1c2Vk
DQorCSBpbiBwcm9kdWN0aW9uLg0KKw0KIGVuZGlmDQogDQogY29uZmlnIEFNRF9JT01NVQ0KZGlm
ZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9NYWtlZmlsZSBiL3hlbi9kcml2
ZXJzL3Bhc3N0aHJvdWdoL2FybS9NYWtlZmlsZQ0KaW5kZXggYzM3ODMxODhlMy4uYzhmMGE1Zjgw
MiAxMDA2NDQNCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9NYWtlZmlsZQ0KKysr
IGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL01ha2VmaWxlDQpAQCAtMywzICszLDQgQEAg
b2JqLSQoQ09ORklHX0FSTV9TTU1VKSArPSBzbW11Lm8NCiBvYmotJChDT05GSUdfSVBNTVVfVk1T
QSkgKz0gaXBtbXUtdm1zYS5vDQogb2JqLSQoQ09ORklHX0FSTV9TTU1VX1YzKSArPSBzbW11LXYz
Lm8NCiBvYmotJChDT05GSUdfQVJNX1ZJUlRVQUxfSU9NTVUpICs9IHZpb21tdS5vDQorb2JqLSQo
Q09ORklHX1ZJUlRVQUxfQVJNX1NNTVVfVjMpICs9IHZzbW11LXYzLm8NCmRpZmYgLS1naXQgYS94
ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vc21tdS12My5jIGIveGVuL2RyaXZlcnMvcGFzc3Ro
cm91Z2gvYXJtL3NtbXUtdjMuYw0KaW5kZXggMTllNTViNmM5Yi4uODc2MTJkZjIxZCAxMDA2NDQN
Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LXYzLmMNCisrKyBiL3hlbi9k
cml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LXYzLmMNCkBAIC05Myw2ICs5Myw3IEBADQogI2lu
Y2x1ZGUgPGFzbS9wbGF0Zm9ybS5oPg0KIA0KICNpbmNsdWRlICJzbW11LXYzLmgiDQorI2luY2x1
ZGUgInZzbW11LXYzLmgiDQogDQogI2RlZmluZSBBUk1fU01NVV9WVENSX1NIX0lTCQkzDQogI2Rl
ZmluZSBBUk1fU01NVV9WVENSX1JHTl9XQldBCQkxDQpAQCAtMjcyNyw2ICsyNzI4LDkgQEAgc3Rh
dGljIGludCBfX2luaXQgYXJtX3NtbXVfZGV2aWNlX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZp
Y2UgKnBkZXYpDQogCWxpc3RfYWRkKCZzbW11LT5kZXZpY2VzLCAmYXJtX3NtbXVfZGV2aWNlcyk7
DQogCXNwaW5fdW5sb2NrKCZhcm1fc21tdV9kZXZpY2VzX2xvY2spOw0KIA0KKyAgICAvKiBBZGQg
dG8gaG9zdCBJT01NVSBsaXN0IHRvIGluaXRpYWxpemUgdklPTU1VIGZvciBkb20wICovDQorCWFk
ZF90b19ob3N0X2lvbW11X2xpc3QoaW9hZGRyLCBpb3NpemUsIGRldl90b19kdChwZGV2KSk7DQor
DQogCXJldHVybiAwOw0KIA0KIA0KQEAgLTMwNTgsNiArMzA2Miw5IEBAIHN0YXRpYyBfX2luaXQg
aW50IGFybV9zbW11X2R0X2luaXQoc3RydWN0IGR0X2RldmljZV9ub2RlICpkZXYsDQogDQogCXBs
YXRmb3JtX2ZlYXR1cmVzICY9IHNtbXUtPmZlYXR1cmVzOw0KIA0KKwkvKiBTZXQgdklPTU1VIHR5
cGUgdG8gU01NVXYzICovDQorCXZzbW11djNfc2V0X3R5cGUoKTsNCisNCiAJcmV0dXJuIDA7DQog
fQ0KIA0KZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS92aW9tbXUuYyBi
L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS92aW9tbXUuYw0KaW5kZXggN2FiNjA2MWUzNC4u
NTNhZTQ2MzQ5YSAxMDA2NDQNCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS92aW9t
bXUuYw0KKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3Zpb21tdS5jDQpAQCAtMiwx
MiArMiw0MiBAQA0KIA0KICNpbmNsdWRlIDx4ZW4vZXJybm8uaD4NCiAjaW5jbHVkZSA8eGVuL2lu
aXQuaD4NCisjaW5jbHVkZSA8eGVuL2lycS5oPg0KICNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4NCiAN
CiAjaW5jbHVkZSA8YXNtL3Zpb21tdS5oPg0KIA0KKy8qIExpc3Qgb2YgYWxsIGhvc3QgSU9NTVVz
ICovDQorTElTVF9IRUFEKGhvc3RfaW9tbXVfbGlzdCk7DQorDQogY29uc3Qgc3RydWN0IHZpb21t
dV9kZXNjIF9fcmVhZF9tb3N0bHkgKmN1cl92aW9tbXU7DQogDQorLyogQ29tbW9uIGZ1bmN0aW9u
IGZvciBhZGRpbmcgdG8gaG9zdF9pb21tdV9saXN0ICovDQordm9pZCBhZGRfdG9faG9zdF9pb21t
dV9saXN0KHBhZGRyX3QgYWRkciwgcGFkZHJfdCBzaXplLA0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKm5vZGUpDQorew0KKyAgICBzdHJ1
Y3QgaG9zdF9pb21tdSAqaW9tbXVfZGF0YTsNCisNCisgICAgaW9tbXVfZGF0YSA9IHh6YWxsb2Mo
c3RydWN0IGhvc3RfaW9tbXUpOw0KKyAgICBpZiAoICFpb21tdV9kYXRhICkNCisgICAgICAgIHBh
bmljKCJ2SU9NTVU6IENhbm5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIGhvc3QgSU9NTVUgZGF0YVxu
Iik7DQorDQorICAgIGlvbW11X2RhdGEtPmFkZHIgPSBhZGRyOw0KKyAgICBpb21tdV9kYXRhLT5z
aXplID0gc2l6ZTsNCisgICAgaW9tbXVfZGF0YS0+ZHRfbm9kZSA9IG5vZGU7DQorICAgIGlvbW11
X2RhdGEtPmlycSA9IHBsYXRmb3JtX2dldF9pcnEobm9kZSwgMCk7DQorICAgIGlmICggaW9tbXVf
ZGF0YS0+aXJxIDwgMCApDQorICAgIHsNCisgICAgICAgIGdkcHJpbnRrKFhFTkxPR19FUlIsDQor
ICAgICAgICAgICAgICAgICAidklPTU1VOiBDYW5ub3QgZmluZCBhIHZhbGlkIElPTU1VIGlycVxu
Iik7DQorICAgICAgICByZXR1cm47DQorICAgIH0NCisNCisgICAgcHJpbnRrKCJ2SU9NTVU6IEZv
dW5kIElPTU1VIEAweCUiUFJJeDY0IlxuIiwgYWRkcik7DQorDQorICAgIGxpc3RfYWRkX3RhaWwo
JmlvbW11X2RhdGEtPmVudHJ5LCAmaG9zdF9pb21tdV9saXN0KTsNCit9DQorDQogaW50IGRvbWFp
bl92aW9tbXVfaW5pdChzdHJ1Y3QgZG9tYWluICpkLCB1aW50MTZfdCB2aW9tbXVfdHlwZSkNCiB7
DQogICAgIGlmICggdmlvbW11X3R5cGUgPT0gWEVOX0RPTUNUTF9DT05GSUdfVklPTU1VX05PTkUg
KQ0KZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS92c21tdS12My5jIGIv
eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3ZzbW11LXYzLmMNCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0DQppbmRleCAwMDAwMDAwMDAwLi42YjQwMDllNWVmDQotLS0gL2Rldi9udWxsDQorKysgYi94
ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vdnNtbXUtdjMuYw0KQEAgLTAsMCArMSwxMjQgQEAN
CisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKEdQTC0yLjAtb3ItbGF0ZXIgT1IgQlNELTIt
Q2xhdXNlKSAqLw0KKw0KKyNpbmNsdWRlIDx4ZW4vcGFyYW0uaD4NCisjaW5jbHVkZSA8eGVuL3Nj
aGVkLmg+DQorI2luY2x1ZGUgPGFzbS9tbWlvLmg+DQorI2luY2x1ZGUgPGFzbS92aW9tbXUuaD4N
CisNCisvKiBTdHJ1Y3QgdG8gaG9sZCB0aGUgdklPTU1VIG9wcyBhbmQgdklPTU1VIHR5cGUgKi8N
CitleHRlcm4gY29uc3Qgc3RydWN0IHZpb21tdV9kZXNjIF9fcmVhZF9tb3N0bHkgKmN1cl92aW9t
bXU7DQorDQorc3RydWN0IHZpcnRfc21tdSB7DQorICAgIHN0cnVjdCAgICAgIGRvbWFpbiAqZDsN
CisgICAgc3RydWN0ICAgICAgbGlzdF9oZWFkIHZpb21tdV9saXN0Ow0KK307DQorDQorc3RhdGlj
IGludCB2c21tdXYzX21taW9fd3JpdGUoc3RydWN0IHZjcHUgKnYsIG1taW9faW5mb190ICppbmZv
LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyX3Qgciwgdm9pZCAqcHJp
dikNCit7DQorICAgIHJldHVybiBJT19IQU5ETEVEOw0KK30NCisNCitzdGF0aWMgaW50IHZzbW11
djNfbW1pb19yZWFkKHN0cnVjdCB2Y3B1ICp2LCBtbWlvX2luZm9fdCAqaW5mbywNCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyX3QgKnIsIHZvaWQgKnByaXYpDQorew0KKyAg
ICByZXR1cm4gSU9fSEFORExFRDsNCit9DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBtbWlvX2hh
bmRsZXJfb3BzIHZzbW11djNfbW1pb19oYW5kbGVyID0gew0KKyAgICAucmVhZCAgPSB2c21tdXYz
X21taW9fcmVhZCwNCisgICAgLndyaXRlID0gdnNtbXV2M19tbWlvX3dyaXRlLA0KK307DQorDQor
c3RhdGljIGludCB2c21tdXYzX2luaXRfc2luZ2xlKHN0cnVjdCBkb21haW4gKmQsIHBhZGRyX3Qg
YWRkciwgcGFkZHJfdCBzaXplKQ0KK3sNCisgICAgc3RydWN0IHZpcnRfc21tdSAqc21tdTsNCisN
CisgICAgc21tdSA9IHh6YWxsb2Moc3RydWN0IHZpcnRfc21tdSk7DQorICAgIGlmICggIXNtbXUg
KQ0KKyAgICAgICAgcmV0dXJuIC1FTk9NRU07DQorDQorICAgIHNtbXUtPmQgPSBkOw0KKw0KKyAg
ICByZWdpc3Rlcl9tbWlvX2hhbmRsZXIoZCwgJnZzbW11djNfbW1pb19oYW5kbGVyLCBhZGRyLCBz
aXplLCBzbW11KTsNCisNCisgICAgLyogUmVnaXN0ZXIgdGhlIHZJT01NVSB0byBiZSBhYmxlIHRv
IGNsZWFuIGl0IHVwIGxhdGVyLiAqLw0KKyAgICBsaXN0X2FkZF90YWlsKCZzbW11LT52aW9tbXVf
bGlzdCwgJmQtPmFyY2gudmlvbW11X2xpc3QpOw0KKw0KKyAgICByZXR1cm4gMDsNCit9DQorDQor
aW50IGRvbWFpbl92c21tdXYzX2luaXQoc3RydWN0IGRvbWFpbiAqZCkNCit7DQorICAgIGludCBy
ZXQ7DQorICAgIElOSVRfTElTVF9IRUFEKCZkLT5hcmNoLnZpb21tdV9saXN0KTsNCisNCisgICAg
aWYgKCBpc19oYXJkd2FyZV9kb21haW4oZCkgKQ0KKyAgICB7DQorICAgICAgICBzdHJ1Y3QgaG9z
dF9pb21tdSAqaHdfaW9tbXU7DQorDQorICAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGh3X2lv
bW11LCAmaG9zdF9pb21tdV9saXN0LCBlbnRyeSkNCisgICAgICAgIHsNCisgICAgICAgICAgICBy
ZXQgPSB2c21tdXYzX2luaXRfc2luZ2xlKGQsIGh3X2lvbW11LT5hZGRyLCBod19pb21tdS0+c2l6
ZSk7DQorICAgICAgICAgICAgaWYgKCByZXQgKQ0KKyAgICAgICAgICAgICAgICByZXR1cm4gcmV0
Ow0KKyAgICAgICAgfQ0KKyAgICB9DQorICAgIGVsc2UNCisgICAgew0KKyAgICAgICAgcmV0ID0g
dnNtbXV2M19pbml0X3NpbmdsZShkLCBHVUVTVF9WU01NVVYzX0JBU0UsIEdVRVNUX1ZTTU1VVjNf
U0laRSk7DQorICAgICAgICBpZiAoIHJldCApDQorICAgICAgICAgICAgcmV0dXJuIHJldDsNCisg
ICAgfQ0KKw0KKyAgICByZXR1cm4gMDsNCit9DQorDQoraW50IHZzbW11djNfcmVsaW5xdWlzaF9y
ZXNvdXJjZXMoc3RydWN0IGRvbWFpbiAqZCkNCit7DQorICAgIHN0cnVjdCB2aXJ0X3NtbXUgKnBv
cywgKnRlbXA7DQorDQorICAgIC8qIENvcGUgd2l0aCB1bml0aWFsaXplZCB2SU9NTVUgKi8NCisg
ICAgaWYgKCBsaXN0X2hlYWRfaXNfbnVsbCgmZC0+YXJjaC52aW9tbXVfbGlzdCkgKQ0KKyAgICAg
ICAgcmV0dXJuIDA7DQorDQorICAgIGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwb3MsIHRlbXAs
ICZkLT5hcmNoLnZpb21tdV9saXN0LCB2aW9tbXVfbGlzdCApDQorICAgIHsNCisgICAgICAgIGxp
c3RfZGVsKCZwb3MtPnZpb21tdV9saXN0KTsNCisgICAgICAgIHhmcmVlKHBvcyk7DQorICAgIH0N
CisNCisgICAgcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdmlvbW11X29w
cyB2c21tdXYzX29wcyA9IHsNCisgICAgLmRvbWFpbl9pbml0ID0gZG9tYWluX3ZzbW11djNfaW5p
dCwNCisgICAgLnJlbGlucXVpc2hfcmVzb3VyY2VzID0gdnNtbXV2M19yZWxpbnF1aXNoX3Jlc291
cmNlcywNCit9Ow0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdmlvbW11X2Rlc2MgdnNtbXV2M19k
ZXNjID0gew0KKyAgICAub3BzID0gJnZzbW11djNfb3BzLA0KKyAgICAudmlvbW11X3R5cGUgPSBY
RU5fRE9NQ1RMX0NPTkZJR19WSU9NTVVfU01NVVYzLA0KK307DQorDQordm9pZCBfX2luaXQgdnNt
bXV2M19zZXRfdHlwZSh2b2lkKQ0KK3sNCisgICAgY29uc3Qgc3RydWN0IHZpb21tdV9kZXNjICpk
ZXNjID0gJnZzbW11djNfZGVzYzsNCisNCisgICAgaWYgKCBjdXJfdmlvbW11ICYmIChjdXJfdmlv
bW11ICE9IGRlc2MpICkNCisgICAgew0KKyAgICAgICAgcHJpbnRrKCJXQVJOSU5HOiBDYW5ub3Qg
c2V0IHZJT01NVSwgYWxyZWFkeSBzZXQgdG8gYSBkaWZmZXJlbnQgdmFsdWVcbiIpOw0KKyAgICAg
ICAgcmV0dXJuOw0KKyAgICB9DQorDQorICAgIGN1cl92aW9tbXUgPSBkZXNjOw0KK30NCisNCisv
Kg0KKyAqIExvY2FsIHZhcmlhYmxlczoNCisgKiBtb2RlOiBDDQorICogYy1maWxlLXN0eWxlOiAi
QlNEIg0KKyAqIGMtYmFzaWMtb2Zmc2V0OiA0DQorICogaW5kZW50LXRhYnMtbW9kZTogbmlsDQor
ICogRW5kOg0KKyAqLw0KZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS92
c21tdS12My5oIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3ZzbW11LXYzLmgNCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwLi5lMTFmODViNDMxDQotLS0gL2Rldi9u
dWxsDQorKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vdnNtbXUtdjMuaA0KQEAgLTAs
MCArMSwyMCBAQA0KKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiAoR1BMLTIuMC1vci1sYXRl
ciBPUiBCU0QtMi1DbGF1c2UpICovDQorI2lmbmRlZiBfX0FSQ0hfQVJNX1ZTTU1VX1YzX0hfXw0K
KyNkZWZpbmUgX19BUkNIX0FSTV9WU01NVV9WM19IX18NCisNCisjaW5jbHVkZSA8YXNtL3Zpb21t
dS5oPg0KKw0KKyNpZmRlZiBDT05GSUdfVklSVFVBTF9BUk1fU01NVV9WMw0KKw0KK3ZvaWQgdnNt
bXV2M19zZXRfdHlwZSh2b2lkKTsNCisNCisjZWxzZQ0KKw0KK3N0YXRpYyBpbmxpbmUgdm9pZCB2
c21tdXYzX3NldF90eXBlKHZvaWQpDQorew0KKyAgICByZXR1cm47DQorfQ0KKw0KKyNlbmRpZiAv
KiBDT05GSUdfVklSVFVBTF9BUk1fU01NVV9WMyAqLw0KKw0KKyNlbmRpZiAvKiBfX0FSQ0hfQVJN
X1ZTTU1VX1YzX0hfXyAqLw0KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLWFy
bS5oIGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gtYXJtLmgNCmluZGV4IGQ0OTUzZDQwZmQuLmVi
YWMwMmVkNjMgMTAwNjQ0DQotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC1hcm0uaA0KKysr
IGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gtYXJtLmgNCkBAIC0zMzAsNyArMzMwLDggQEAgREVG
SU5FX1hFTl9HVUVTVF9IQU5ETEUodmNwdV9ndWVzdF9jb250ZXh0X3QpOw0KICNkZWZpbmUgWEVO
X0RPTUNUTF9DT05GSUdfQVJNX1NDSV9OT05FICAgICAgMA0KICNkZWZpbmUgWEVOX0RPTUNUTF9D
T05GSUdfQVJNX1NDSV9TQ01JX1NNQyAgMQ0KIA0KLSNkZWZpbmUgWEVOX0RPTUNUTF9DT05GSUdf
VklPTU1VX05PTkUgICAwDQorI2RlZmluZSBYRU5fRE9NQ1RMX0NPTkZJR19WSU9NTVVfTk9ORSAg
ICAgICAwDQorI2RlZmluZSBYRU5fRE9NQ1RMX0NPTkZJR19WSU9NTVVfU01NVVYzICAgICAxDQog
DQogc3RydWN0IHhlbl9hcmNoX2RvbWFpbmNvbmZpZyB7DQogICAgIC8qIElOL09VVCAqLw0KQEAg
LTQ1Niw2ICs0NTcsMTAgQEAgdHlwZWRlZiB1aW50NjRfdCB4ZW5fY2FsbGJhY2tfdDsNCiAjZGVm
aW5lIEdVRVNUX0dJQ1YzX0dJQ1IwX0JBU0UgICAgIHhlbl9ta191bGxvbmcoMHgwMzAyMDAwMCkg
LyogdkNQVTAuLjEyNyAqLw0KICNkZWZpbmUgR1VFU1RfR0lDVjNfR0lDUjBfU0laRSAgICAgeGVu
X21rX3VsbG9uZygweDAxMDAwMDAwKQ0KIA0KKy8qIHZzbW11djMgSVRTIG1hcHBpbmdzICovDQor
I2RlZmluZSBHVUVTVF9WU01NVVYzX0JBU0UgICAgIHhlbl9ta191bGxvbmcoMHgwNDA0MDAwMCkN
CisjZGVmaW5lIEdVRVNUX1ZTTU1VVjNfU0laRSAgICAgeGVuX21rX3VsbG9uZygweDAwMDQwMDAw
KQ0KKw0KIC8qDQogICogMjU2IE1CIGlzIHJlc2VydmVkIGZvciBWUENJIGNvbmZpZ3VyYXRpb24g
c3BhY2UgYmFzZWQgb24gY2FsY3VsYXRpb24NCiAgKiAyNTYgYnVzZXMgeCAzMiBkZXZpY2VzIHgg
OCBmdW5jdGlvbnMgeCA0IEtCID0gMjU2IE1CDQotLSANCjIuNDMuMA0K


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268229.1557575 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OH4-0000eO-B9; Tue, 31 Mar 2026 01:52:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268229.1557575; Tue, 31 Mar 2026 01:52:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OH4-0000dM-2b; Tue, 31 Mar 2026 01:52:10 +0000
Received: by outflank-mailman (input) for mailman id 1268229;
 Tue, 31 Mar 2026 01:52:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OH0-0000Hh-C8
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:52:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OGz-00HCrd-OZ
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:52:05 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb2873-e002-0a2a0a5209dd-0a2a450ba5e2-30
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:05 +0200
Received: from [52.101.70.86]
 (helo=AS8PR04CU009.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28c5-ef63-0a2a450b0019-34654656355b-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:05 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by PAWPR03MB9202.eurprd03.prod.outlook.com (2603:10a6:102:342::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:52:04 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01:52:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=a/kAwxX4+OBTUH5X7AtKQy9OQOis9fdTdtfWvElbqS6VQ/h9SjNErw1LTQDahY0vS1eYXyLjVTQH41ObBLlAjblpnDXgxrApf4YHGg1wl5cTbbY0AhC0ZwO7D01DFZkgus79ViWQrI2dW1q/wySrJMKE9vyyuA7sotvx8p6pm8Em6EKaNlao5zs+0P7BVRYY3zgTZbqUm5S9rCTFs7IkUWL4oDZlLJzSp0oOUBqhrX+MrF5pl8TSm8XbQVmuBUFZfPHbSHFMZ8VeOiKXkjqwI5Ds1LEhZOnvoxftsKCQDykglJToPM9UMGUh1gfGvJ162GKjpXNQbHm8Fb60J9HggA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5UQkALZNSM6W80EXWFmegQRVGxnMDJJO0HOBLE/pK3E=;
 b=PmmpkyYhA+bbAUusRI8CRhu2I/9mrji1811jjLx0cC2ofjmQYnzUjSlsGwo63Tl4KzdJhKvpqWj43C8Py+55jxXOgZUpx5usJ2O8/VJnQPNOObv5GDbdH0qI3WeEfKotxeUzM6fEEmhT7FXJ02KpLkUUlUFdl/62Oyf1YoEBhYxFD0JTBd4OIUCDJ1JmzLugrhQvjz5vWvIJYOWltr2FzzB4mdcFTUEfYI3fgrCLQAxtnODkcXHzrMBLCNt3vs/upw+FGL/AF8023AO8oT3XqmcUkHGu25zzQAZ0LT+2Wl2P+juY9p5uUDNbXDeLd3easyXDs3q5HPsi5eG9WzyTNA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5UQkALZNSM6W80EXWFmegQRVGxnMDJJO0HOBLE/pK3E=;
 b=DVh2IOnFC2KJgtTc8ji5SntU9cHJWMWJSuP/qk2hsYM7PLpqbszAnCUHucfcVOYlKktjFbGshjpHIXaJig/YKGsM/bnRwcAaQcsCwsN52/s2f/vm1hAeFk14i5FRJqEAIkr6+L+xLaxnL0NTxivI78A+AA5t6kd5teiwiEdCk01ZKoj+XiAEC+qCGnS+BXttdkxrbsqVFsFTNlJLogjKHr4ssdbYOC90qUs8pIKDVyoHbK9Xn/pmi/A9rNCha9DerISDhJQUXmvCkbpeXadXnn4e8pImqWM1W7AhaCcviAeb6nS5/rUyTtZIZLJK1SnoU+vDomMqAYNxXljbkIfEzg==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Nick Rosbrook <enr0n@ubuntu.com>, George Dunlap
	<gwd@xenproject.org>, Juergen Gross <jgross@suse.com>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH v3 06/23] xen/domctl: Add XEN_DOMCTL_CONFIG_VIOMMU_* and
 viommu config param
Thread-Topic: [PATCH v3 06/23] xen/domctl: Add XEN_DOMCTL_CONFIG_VIOMMU_* and
 viommu config param
Thread-Index: AQHcwLD51dgqnwB0Y0ytQjpytpVPOw==
Date: Tue, 31 Mar 2026 01:52:04 +0000
Message-ID:
 <5bcbeb1d614be413c13196a38d13eb3de5c549e4.1774918270.git.milan_djokic@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774918270.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|PAWPR03MB9202:EE_
x-ms-office365-filtering-correlation-id: f37b7569-a499-408f-b2ad-08de8ec81bab
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|366016|38070700021|18002099003|56012099003|22082099003;
x-microsoft-antispam-message-info:
 Htxc+WsG38+/VGAgJswQHpLD6eWxIJds0saNm8b8QTVBcN/36mgzmkfUrvgJr7E/JWP9qfY4bMftEfgwIGY6TbVdFpziNKHaYoRh3kK1CkVIdzRrNBk5R3t71XdHMFYUn3S1PTTNoregB1TA8BWwnpZSLmpm7k5Tke1c6fW1x56xsXjo5cp1GLbQ4BjA2PZYLVs7ZbulwepaJnXVx7czR1oneUbQYrr8e8WGtohKnQHo0uJ87NUbatD6I7BCcOmVDHq1rwP0loJ0InuOoXk+4EdlQzdhPA6uXkJ9YZMsPSvr4uu0dU69vQnX0dS+GfpdewGtbhjZxG5gx8XDmxs7yI/K8HcUqo1SKzd8AbCxxg9DpvxN3Ww+Roy/BsVaQ7uvLd4eAE4dD/ZeuKTJC2rmlNK+mDAI9MQ7LxPVe5jN0URmpfn13wCjpZYXhoeyHY+jrtsjXWWNE+vTgN/iDtrKFpXD2SY0TqTDITkhwMNji8WzxUFpnPBfGXda4vr8p6lUXrVwxdQgfZFUy5sXDADn9zWHmSddM6cTadvOqAN/2ep+dEYk535YCHvQMh9A7bhduOP+4E2STIqUlT3S//WpKoBtAf1hvzAB4EDrSoZQuUFOTdIHE+Lt4a35lnSUqntzuTvess7HkLOMB3KQbiz8AF5BrbFH73dXgtXqxBm+MqnU9YgwaShRLhJy9RabDdfJuiki+8cA5Xaq4XAZNq4FXi4fIhH29Eg/myB0vilimjG6vBlyK9xprV2eKx9w3xcN2wXH+N7TgNP77Almn1NEyRxkpUksC6SCpM/SAklt1yI=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?zS4NaBLnoCFnQhnfcaQN+869GG7dRflNVYPL8VKqBW6wQf0KJEc6SKKlWB?=
 =?iso-8859-1?Q?IvBMM9lyY85Atp+I/8hj570323lip7xrt5PjRBrvg3Vba6CtJaraoj1XYZ?=
 =?iso-8859-1?Q?Tomv+2dkROnre0Y0tgr/LWAeboxNbcSiVZ7YOH/9o3ByDHX+BukZkVazJf?=
 =?iso-8859-1?Q?Bdg6cXKHlZq3rGZZe2NwIO76WSMfYKb21No6oYsHI44w9Rzo3Sqa/JHIss?=
 =?iso-8859-1?Q?0yw9PbQDdlo99G//7D1mXyhF6FKbK25+puuCIhhsr19598vFEtQM5a0+Ud?=
 =?iso-8859-1?Q?z8LjgPX2rc8u2T169lTVJCO2dYakncZEq8JOpkBVNXyjrazqPyG5mmKO9M?=
 =?iso-8859-1?Q?nF2YD4Dgw9SZLQl9E8Sx7VHQzZW2TIk3Pb69BhHLeyWpb0uBgUmfr+1nSG?=
 =?iso-8859-1?Q?Q0KzT6UIKCQwOzHcjMKXVt0/eutW3YEI2RrlKYFbdWtWXFiJtAOM/KCgTC?=
 =?iso-8859-1?Q?9bG+VFn5nbd19JjIdXnfpNrjaNosb0Bw4aTGkfur/wRral+iTMPdmGefPj?=
 =?iso-8859-1?Q?6qK8t7Bp56AlUrs7fQxg6D810nT9SWMgXkpfVP/FvY561XgqQQW1p3dzEO?=
 =?iso-8859-1?Q?EZYbPvZy6QVcKLZudIxwnSFUhQzCB3VXk3DMd0eI+avAENCgwTUrIiFetQ?=
 =?iso-8859-1?Q?1xQEva8KTGatGqQ5RcPLf0HgzLajAfOnFshgesWbfpeMSMukCTFWCNG6Qy?=
 =?iso-8859-1?Q?qNb/sBSDrufREPpJxxUw/cK15UxMdmt+nD8XLDNOnpipvLM0e3m42t5jh9?=
 =?iso-8859-1?Q?hThO2SLyB/qUJR05XjIv58iyJoyROm5xfnCL0dezMeGi4FGkf0S0ImEAxu?=
 =?iso-8859-1?Q?O9+BWMFuRb1n1KfKk3IGRRdbT0cBmE4kQrDOVP8RH9XZAls6yAN3S5mY3f?=
 =?iso-8859-1?Q?20Oyr0YTjuGbP51nbIQ4AiC+pT1ZPb5FlfrmBesIO856zMGrwuT6ETDlOS?=
 =?iso-8859-1?Q?XbC6K0aQTjMoSczlu+/cWsCoJHtd8KpptLREutwDnXzeH0h08A9O+BENdI?=
 =?iso-8859-1?Q?uupJ8CtM79EHmcMlOKrCTsa3PQPCAoTbtCYxc1jURqygwTTEKm++uhLCy8?=
 =?iso-8859-1?Q?90lAzPR7toMA+FSGk4CtEGdJd50zFbMHdIohgxBHJuVeqhj5OXOwVzSyOm?=
 =?iso-8859-1?Q?Nm0SSPzb77Rr/djPbEh0Fi3+TG/7fRUNTq32Fm06z0C4mG/4oFmNm2Ytu/?=
 =?iso-8859-1?Q?vcG747eGMMRRHX6DYNIbMNpc/WX8RCYdR0HtUIooT86/I9AUqeKO5vAixF?=
 =?iso-8859-1?Q?ZZAI5jtYJIUrVh9nh4sYxZyC+mCv3DU59z0Vm9kX9O6gziBpHSzpM1qOtg?=
 =?iso-8859-1?Q?X/2FaPUmXHLpHB24+EhazGJh9aiMoQfy/NwuD4fiHFWR4kAdMntbjsdVp8?=
 =?iso-8859-1?Q?+Gh2npM7uszs2jlwWnKBdK7MYCqFbhTRouUsN+SvSEbLdbzrvn9uZC7QKj?=
 =?iso-8859-1?Q?f/x5RiLmkvhWtDphODCHJ+04yzLEj1JoOVYk6D6VF+wJg3cQBa0kHpfwMl?=
 =?iso-8859-1?Q?hwKI6PmDa3LvWMWo4jEgsIBjNVxcuRmvk+rSFXg4oB7elc/jNoILYGmmws?=
 =?iso-8859-1?Q?R+sl0RKO4vd061CPbNGahNUwm+Nx+hUkLh9wu1chWQnUVA0Jpuf9I9EWDL?=
 =?iso-8859-1?Q?I5nw6n9fZCM0nBbO+pmYrZlCGA5TG2dX9bAtDVZG3BD6VLa2fun6muC2sq?=
 =?iso-8859-1?Q?0PtWgUJEDyQfqRLyJM/TADnkH/uyqWLbCXUUp5nlHfhZLp+DNAyUJC9Guh?=
 =?iso-8859-1?Q?Xo6a1uCLO99wWHsZPdEAAk3OnxBH9LrQ61PAVCugPCFNWPUmglfnvh8BuP?=
 =?iso-8859-1?Q?KnVo08QlzfPC9h8AsQ50dhc5lJNBSLc=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f37b7569-a499-408f-b2ad-08de8ec81bab
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:52:04.1711
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Hot8bFBrHYLTQX+5Daj5sDzeMH1t6YdxyRkV/zYR8Khrsh7T/3usMm2NyRTGtuA0QuZheYbChWQqc9DXrv5UNg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9202
X-purgate-ID: tlsNG-42698a/1774921925-A2837112-49BAD790/0/0
X-purgate-type: clean
X-purgate-size: 6157

From: Rahul Singh <rahul.singh@arm.com>

Add new viommu_type field and field values XEN_DOMCTL_CONFIG_VIOMMU_NONE
XEN_DOMCTL_CONFIG_VIOMMU_SMMUV3 in xen_arch_domainconfig to
enable/disable vIOMMU support for domains.

Also add viommu=3D"N" parameter to xl domain configuration to enable the
vIOMMU for the domains. Currently, only the "smmuv3" type is supported
for ARM.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 docs/man/xl.cfg.5.pod.in             | 13 +++++++++++++
 tools/golang/xenlight/helpers.gen.go |  2 ++
 tools/golang/xenlight/types.gen.go   |  7 +++++++
 tools/include/libxl.h                |  5 +++++
 tools/libs/light/libxl_arm.c         | 13 +++++++++++++
 tools/libs/light/libxl_types.idl     |  6 ++++++
 tools/xl/xl_parse.c                  |  9 +++++++++
 7 files changed, 55 insertions(+)

diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index 3aac0bc4fb..4de8db42ac 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -3175,6 +3175,19 @@ option.
=20
 =3Dback
=20
+=3Dover 4
+
+=3Ditem B<viommu=3D"N">
+
+To enable viommu, user must specify the following option in the VM
+config file:
+
+viommu =3D "smmuv3"
+
+Currently, only the "smmuv3" type is supported for ARM.
+
+=3Dback
+
 =3Dhead3 x86
=20
 =3Dover 4
diff --git a/tools/golang/xenlight/helpers.gen.go b/tools/golang/xenlight/h=
elpers.gen.go
index b0c09da910..b24cfd0533 100644
--- a/tools/golang/xenlight/helpers.gen.go
+++ b/tools/golang/xenlight/helpers.gen.go
@@ -1273,6 +1273,7 @@ x.ArchArm.NrSpis =3D uint32(xc.arch_arm.nr_spis)
 if err :=3D x.ArchArm.ArmSci.fromC(&xc.arch_arm.arm_sci);err !=3D nil {
 return fmt.Errorf("converting field ArchArm.ArmSci: %v", err)
 }
+x.ArchArm.ViommuType =3D ViommuType(xc.arch_arm.viommu_type)
 if err :=3D x.ArchX86.MsrRelaxed.fromC(&xc.arch_x86.msr_relaxed);err !=3D =
nil {
 return fmt.Errorf("converting field ArchX86.MsrRelaxed: %v", err)
 }
@@ -1815,6 +1816,7 @@ xc.arch_arm.nr_spis =3D C.uint32_t(x.ArchArm.NrSpis)
 if err :=3D x.ArchArm.ArmSci.toC(&xc.arch_arm.arm_sci); err !=3D nil {
 return fmt.Errorf("converting field ArchArm.ArmSci: %v", err)
 }
+xc.arch_arm.viommu_type =3D C.libxl_viommu_type(x.ArchArm.ViommuType)
 if err :=3D x.ArchX86.MsrRelaxed.toC(&xc.arch_x86.msr_relaxed); err !=3D n=
il {
 return fmt.Errorf("converting field ArchX86.MsrRelaxed: %v", err)
 }
diff --git a/tools/golang/xenlight/types.gen.go b/tools/golang/xenlight/typ=
es.gen.go
index e0fd78ec03..e306f9c1ac 100644
--- a/tools/golang/xenlight/types.gen.go
+++ b/tools/golang/xenlight/types.gen.go
@@ -530,6 +530,12 @@ type ArmSci struct {
 Type ArmSciType
 }
=20
+type ViommuType int
+const(
+ViommuTypeNone ViommuType =3D 0
+ViommuTypeSmmuv3 ViommuType =3D 1
+)
+
 type RdmReserve struct {
 Strategy RdmReserveStrategy
 Policy RdmReservePolicy
@@ -619,6 +625,7 @@ Vuart VuartType
 SveVl SveType
 NrSpis uint32
 ArmSci ArmSci
+ViommuType ViommuType
 }
 ArchX86 struct {
 MsrRelaxed Defbool
diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index 80e3ec8de9..231dbff5d9 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -318,6 +318,11 @@
  */
 #define LIBXL_HAVE_BUILDINFO_ARCH_ARM_SCI 1
=20
+/*
+ * libxl_domain_build_info has the arch_arm.viommu_type field.
+ */
+#define LIBXL_HAVE_BUILDINFO_ARM_VIOMMU 1
+
 /*
  * LIBXL_HAVE_SOFT_RESET indicates that libxl supports performing
  * 'soft reset' for domains and there is 'soft_reset' shutdown reason
diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index 7e9f8a1bc3..a248793588 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -247,6 +247,19 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
     }
     LOG(DEBUG, " - SCI type=3D%u", config->arch.arm_sci_type);
=20
+    switch (d_config->b_info.arch_arm.viommu_type) {
+    case LIBXL_VIOMMU_TYPE_NONE:
+        config->arch.viommu_type =3D XEN_DOMCTL_CONFIG_VIOMMU_NONE;
+        break;
+    case LIBXL_VIOMMU_TYPE_SMMUV3:
+        config->arch.viommu_type =3D XEN_DOMCTL_CONFIG_VIOMMU_SMMUV3;
+        break;
+    default:
+        LOG(ERROR, "Unknown vIOMMU type %d",
+            d_config->b_info.arch_arm.viommu_type);
+        return ERROR_FAIL;
+    }
+
     return 0;
 }
=20
diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_type=
s.idl
index a7893460f0..f0a9a21ba4 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -561,6 +561,11 @@ libxl_arm_sci =3D Struct("arm_sci", [
     ("type", libxl_arm_sci_type),
     ])
=20
+libxl_viommu_type =3D Enumeration("viommu_type", [
+    (0, "none"),
+    (1, "smmuv3")
+    ], init_val =3D "LIBXL_VIOMMU_TYPE_NONE")
+
 libxl_rdm_reserve =3D Struct("rdm_reserve", [
     ("strategy",    libxl_rdm_reserve_strategy),
     ("policy",      libxl_rdm_reserve_policy),
@@ -745,6 +750,7 @@ libxl_domain_build_info =3D Struct("domain_build_info",=
[
                                ("sve_vl", libxl_sve_type),
                                ("nr_spis", uint32, {'init_val': 'LIBXL_NR_=
SPIS_DEFAULT'}),
                                ("arm_sci", libxl_arm_sci),
+                               ("viommu_type", libxl_viommu_type),
                               ])),
     ("arch_x86", Struct(None, [("msr_relaxed", libxl_defbool),
                               ])),
diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index 48c72dce9c..f2a2bf4b23 100644
--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -3078,6 +3078,15 @@ skip_usbdev:
         }
     }
=20
+    if (!xlu_cfg_get_string (config, "viommu", &buf, 1)) {
+        e =3D libxl_viommu_type_from_string(buf, &b_info->arch_arm.viommu_=
type);
+        if (e) {
+            fprintf(stderr,
+                    "Unknown vIOMMU type \"%s\" specified\n", buf);
+            exit(-ERROR_FAIL);
+        }
+    }
+
     parse_vkb_list(config, d_config);
=20
     d_config->virtios =3D NULL;
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268230.1557579 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OH4-0000kC-Va; Tue, 31 Mar 2026 01:52:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268230.1557579; Tue, 31 Mar 2026 01:52:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OH4-0000it-GX; Tue, 31 Mar 2026 01:52:10 +0000
Received: by outflank-mailman (input) for mailman id 1268230;
 Tue, 31 Mar 2026 01:52:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OH1-0000WA-Oh
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:52:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OH1-00G5Gh-4W
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:52:07 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28c1-2eae-0a2a0a5409dd-0a2a4501906e-10
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:07 +0200
Received: from [40.107.130.136]
 (helo=MRWPR03CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28c6-6400-0a2a45010019-286b8288781d-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:07 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by PAWPR03MB9202.eurprd03.prod.outlook.com (2603:10a6:102:342::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:52:05 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01: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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YqZ46PbL9F2AS8mQg+Re8XDbSMitY7CsvWHGRcODBFntiT3XH5ThbHNPAJCnsFBGvKfd/RdO3LuTS6ai5hY48OEyNJaLFnNGPVl4A5GKpI/nQA20n8++zHSjL2ECur++GPv1awA5VKuA3m79fm+Xbs+gj+5TyGnbFAM1WkfJkQ5yJIaFR6N3YtreVORRM7Hjk9xxPEQZs/jlrQQWrC5+5N+D33CSRP6ntA+qk+w7z503MKkIaRlbhMUlNn3GO32pwxnm+CjwdiExbsqDDou9rpF7dPHyM4xSfAj7OMQ8Y1odk/cDc8SuEyhl17bK4Fv9bHC/Nd+a45NmDgAMBgenjg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uDUYrSIdo53ObCotDr7tj5YH439JuLXwKScEzghD/yo=;
 b=Dc+53AGUKmP4wpCEE5wtVIEf1Ct0Fv6dDQcc1rZEmHbn3rrGwfTNdXhgPccO/buaXZCFsTmbOt/wxa9BHvlSZ2ckPyx08RyJTm5xYViZEgO7ASyVSg+fmToDJ2OJ2Uxh0nZZTtuLegsD4/snX+8rnFEbYkPqYJyzIifYxeWrkCmR5fUuZ7REnDWxWu8//lm0FgaNDJCx0FBCJ+hmLWP2k6qgnmZGNOTrM79vMaPGrVkbHAp251m4sga85+uR2RjlEfoUKaNYzjVRQpRwpIlm7nBq81CR0CDWBn3HriUEQVRLusoYmKavdz1GpoaGTe8GoH74MfBopQvOr7uI9Jm9bw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uDUYrSIdo53ObCotDr7tj5YH439JuLXwKScEzghD/yo=;
 b=kyK/x9oZHvNd9RPV0d48dgDeS/6EFivBFH97CjQ1q+GXAzz7fnOU99CBukpok6RyASbPej53tH61Ih+8YWJUSsEXzlBVQSqvr3//DsY1gV4fYDec6krV5fhfk58G2UnGZuKfbtDou2aqBvL/4f0uDPLPG6hq3W6pTuvCjVbYURkGpaaDACmvVrqeEgBxvVY4ABh5vj7i2fWo7iGDX1m14i30WnrvtRtYxBL2bJvXA8dGGWcAeTEpsBoi3zX0tlcHwfntooEYyneMRtNfHzFrP3HX+ce1fIxCyo2wGxTHyfm7M0VGSwvfIAzJOFpDdQvPYYvRn6yl6gYlwjIEsHM6jQ==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH v3 07/23] xen/arm: vIOMMU: Add cmdline boot option "viommu =
 <string>"
Thread-Topic: [PATCH v3 07/23] xen/arm: vIOMMU: Add cmdline boot option
 "viommu = <string>"
Thread-Index: AQHcwLD57usK/+AyOEiltLG6u3MZ5g==
Date: Tue, 31 Mar 2026 01:52:05 +0000
Message-ID:
 <5d86efa38ca99439153822fa19064bda6843fdc2.1774918270.git.milan_djokic@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774918270.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|PAWPR03MB9202:EE_
x-ms-office365-filtering-correlation-id: 528b943c-3f13-4806-ac3b-08de8ec81c3a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|7416014|366016|38070700021|18002099003|56012099003|22082099003;
x-microsoft-antispam-message-info:
 qX1ak689Gl8cWmJ4ADLlEzG6RZMnCS7jQOIAs2T/rg64/5O1W5wqMyPNgWP09cO1mvmKmOxwCCR7Db3RNie4RrAM4iRRXz3Qoo9uPqM3sxINewY4z7hLE1Ifz0CNw60BJnE2eV5gcraLjN/yje6D29mBuduM1GgrJRrkBqSTCRY874o7EdOohZmJf4fOGLCwvT7uq167ig6Nnb81yb1iCA/JU/NjuAGrSe/g6oAKZU0ldWNkHE+C8Es6Yc8TqBUpy2w9TjJAVrXJg7r1gT3wl3W5xfa1CMyHkP7y0FQlDtHIdZUKmPuoUz+eLNXjbDQ+FnZxRAMLLQD84A9xe/tARN8+g06pT8xkGKV+SREIkJuCC1YXq7jDK2xbVZ6sawsc94rySv1vMsC8QTliHTV1QwcFfbN3FJ8KcxGahOKDlocmSai1iKRDT4ZneaoD7H7B6HnGOHJV7MrAywLA3veuMiGwe4cnVQW5jh0TAhyPbxg4POY+OyUw/QCPNKMOMc6Yl+2v+Rn7DH1Ks0UQw4sUPyF4PzpXhBqjKBePcS32zpfbhYiAcHkouDVO58e09MUknL1RZiu5Bj5v/3WJceVOC/6SewZm/cm9a963Xw38my+yNIDiogAzZ9dF45g2yM1ubGaxq8vsvOvbsPo9aeiaSoYVtvnXKpk8hzNyZQMglesYGAUGp9IAwEpQK4xlxyj03xkrrWzE5cNa2dQHxCN55+87tjrbKu+zjwFmMDJjJ47ciPki9zZcfniMkZYmhnEgzOav+/PGtHT+Yn7yNDX3neqthkiXF2NJc6mWf0Qz1Mk=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(366016)(38070700021)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?owWB9g2Hu+BALjoe/EcpSgi3k0044MqYX1RsGyp+/0H0grLhlPq0knvEqH?=
 =?iso-8859-1?Q?oA9y1eVET+GofFnkue2vr8tqORZsXYxDYJzHAX21X/NqZurI4LvCZUlthI?=
 =?iso-8859-1?Q?gAP2B+Xz6sKHV1Av04iYPZfnZJAcOkH39KD7ZaVgU1jobsf478DxDU82Jh?=
 =?iso-8859-1?Q?1p3bS/YQlfD0/qFMwxCcqYrhP+h0nl2+pdyz54bDjlBCUZ9pzhXBsTfWHU?=
 =?iso-8859-1?Q?DnrBqn19kt6Yi76pbiEllkzL1lp60y345IXzgVeh6AATljflZoPqaiLez3?=
 =?iso-8859-1?Q?OUs7soMO5LZ2h/oQ272sEV9CKv2OMqBguQ2S4YIsgeXBopK52q5O5KmGrD?=
 =?iso-8859-1?Q?O5sMK9h6Ymj+VhrAQE3u9yryM/2ASZpG2LOuH3IhW59ZE1co78KjpcTb6D?=
 =?iso-8859-1?Q?DfiIC6qbFNZ0xpqtXi6Q4a2g8FeVPWYBTVHzB063MlIGHI+8IitCD6fVZx?=
 =?iso-8859-1?Q?5tjrgrjfMAXZq8o4D6RLFEoM9SaBHlTByNYplqLUMUSyA8t6xA++plGJYP?=
 =?iso-8859-1?Q?YAQA0tep/7lB4qaBC/Rw4ALoqaI6x7/2nKKRFzFYJTG0zi5+dKH/5Yyd1B?=
 =?iso-8859-1?Q?RI/U9nFfnoVAIeiNMoKyeLaHrtHON1kQWHl/p6ZloXuxwT560Ipt7x0XcP?=
 =?iso-8859-1?Q?wKH79+xcm78i/QCguY4gs4yLZmCVimlurw1lD3HSIBkvllZ3igrS8tTbx9?=
 =?iso-8859-1?Q?k2EaJFQFQVrlJcg5GOwii+lR8FIUUN+XKd62SVrHfSIrXcRPsLKcsbJN27?=
 =?iso-8859-1?Q?RessUGIhGTx8lU3bPhSbH9ZeDCPNK/2bPjSO9vbqNrLjhbSVjRmfzespUj?=
 =?iso-8859-1?Q?rC35KU8/oQemDYSdpZkrgf8FMYtFK6B43y8MfM5Y82ggonEu0vfuIm/Qc5?=
 =?iso-8859-1?Q?gpRlEydf367xMGtwcqjvJSCOpHH8ytnT6vqg2AoPJujMDaLpPsYdhf1A5Q?=
 =?iso-8859-1?Q?CiAy1mUn08rH8AnObxo7nZfIsFHQwo9HKjyPMW1GEaaqP6rQPdMgSBMWq5?=
 =?iso-8859-1?Q?leaM3FPQu9PKJALkHPwB6fsIMLTM47JLE5z9aim/BtL2mgLq16JkWUtoH3?=
 =?iso-8859-1?Q?RAttr5HuNPqf6eHIktEU64j3g2AmHQU9LMMK83tPBH2q0VM07hYHO+rfzz?=
 =?iso-8859-1?Q?HVEPkXzF7rGRb8s6nscckCZilccl8LgwMI/xJVV+18yvaq9A39jSLMy9nd?=
 =?iso-8859-1?Q?vG6LSj6S8C9/Lw1sKc6xirEmxllywai0KfxTzVw5JQNFg0VL2HCZrydNZ7?=
 =?iso-8859-1?Q?c5Yjm06DR4geUmsfBxX5cn6hzwduqP9SomD4iGSxi5QUS9yb6vpDrimB0I?=
 =?iso-8859-1?Q?nffNq6xSkUHh/IRQrem5kqLkkTvgAUmuRqbt4XylQASoOixmsRa2+XvBCp?=
 =?iso-8859-1?Q?DohDaCjeYj4+dFx7j8W2Mzxw7NzK23iLZi7vjlPwM1SUt/8zYfQqp4gnE8?=
 =?iso-8859-1?Q?8d7rY4T5scC1g6ggNWvdJeI2fA2G3rB1Lt2JcTC4ksUaXPpSBKjIqneRnf?=
 =?iso-8859-1?Q?n8JkMAXm30tFX7qJhMUKsasm1UA7STrPXJ9EEDhUvHp7WJqp9EUSuNMWMJ?=
 =?iso-8859-1?Q?FdEWGx9WU8cc4+sVuG2ShrF4TseqnHDe6AZ4R3zcOrbqfjmSJ8Brpv31bh?=
 =?iso-8859-1?Q?WpZd/t7UVMSpxWhlYLbMkSJX1hlp9FboaDIUHQ+cv+t+AIuAcAr6rCzJgH?=
 =?iso-8859-1?Q?kiRt6lKFBBKzRQUcKPz9XI46k3jLE4M0LLty1dndBjMNYwJU8PjXz+0mTN?=
 =?iso-8859-1?Q?9Rf6sN03MQbBoDoKpCTrccllN9Yr0TqwkJK1OhuB8WZg8PC6WZpXzrTnqJ?=
 =?iso-8859-1?Q?6VhGreXAWgU8Pam2zXR8BtyebZgiDIA=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 528b943c-3f13-4806-ac3b-08de8ec81c3a
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:52:05.1342
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: v4DZpXyb4AfdC6/AUFa3aScXf6NTEjgFu/3Jm/8/KPVg5yJmndUYsCv/N46Ssg9O+RvdZqNGf5+kn4v90wPFHw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9202
X-purgate-ID: tlsNG-d62444/1774921927-48815DF3-EF10D7B7/0/0
X-purgate-type: clean
X-purgate-size: 3984

From: Rahul Singh <rahul.singh@arm.com>

Add cmdline boot option "viommu =3D <string>" to enable or disable the
virtual iommu support for guests on ARM (only viommu=3D"smmuv3" supported
for now).

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 docs/misc/xen-command-line.pandoc      |  9 +++++++++
 xen/arch/arm/include/asm/viommu.h      | 12 ++++++++++++
 xen/drivers/passthrough/arm/viommu.c   | 11 +++++++++++
 xen/drivers/passthrough/arm/vsmmu-v3.c |  3 +++
 4 files changed, 35 insertions(+)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line=
.pandoc
index 6c77129732..6531c2355c 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2850,6 +2850,15 @@ The optional `keep` parameter causes Xen to continue=
 using the vga
 console even after dom0 has been started.  The default behaviour is to
 relinquish control to dom0.
=20
+### viommu (arm)
+> `=3D <string>`
+
+> Default: ``
+
+Flag to enable or disable support for the virtual IOMMU for guests. Disabl=
ed by
+default. Enable by specifying target IOMMU type (if supported). Only "smmu=
v3"
+IOMMU emulation supported at this point.
+
 ### viridian-spinlock-retry-count (x86)
 > `=3D <integer>`
=20
diff --git a/xen/arch/arm/include/asm/viommu.h b/xen/arch/arm/include/asm/v=
iommu.h
index 2a6742de73..ed338fe0ec 100644
--- a/xen/arch/arm/include/asm/viommu.h
+++ b/xen/arch/arm/include/asm/viommu.h
@@ -10,6 +10,7 @@
 #include <public/xen.h>
=20
 extern struct list_head host_iommu_list;
+extern char viommu[];
=20
 /* data structure for each hardware IOMMU */
 struct host_iommu {
@@ -50,6 +51,12 @@ uint16_t viommu_get_type(void);
 void add_to_host_iommu_list(paddr_t addr, paddr_t size,
                             const struct dt_device_node *node);
=20
+static always_inline bool is_viommu_enabled(void)
+{
+    /* only smmuv3 emulation supported */
+    return !strcmp(viommu, "smmuv3");
+}
+
 #else
=20
 static inline uint8_t viommu_get_type(void)
@@ -76,6 +83,11 @@ static inline void add_to_host_iommu_list(paddr_t addr, =
paddr_t size,
     return;
 }
=20
+static always_inline bool is_viommu_enabled(void)
+{
+    return false;
+}
+
 #endif /* CONFIG_ARM_VIRTUAL_IOMMU */
=20
 #endif /* __ARCH_ARM_VIOMMU_H__ */
diff --git a/xen/drivers/passthrough/arm/viommu.c b/xen/drivers/passthrough=
/arm/viommu.c
index 53ae46349a..5f5892fbb2 100644
--- a/xen/drivers/passthrough/arm/viommu.c
+++ b/xen/drivers/passthrough/arm/viommu.c
@@ -3,6 +3,7 @@
 #include <xen/errno.h>
 #include <xen/init.h>
 #include <xen/irq.h>
+#include <xen/param.h>
 #include <xen/types.h>
=20
 #include <asm/viommu.h>
@@ -38,8 +39,18 @@ void add_to_host_iommu_list(paddr_t addr, paddr_t size,
     list_add_tail(&iommu_data->entry, &host_iommu_list);
 }
=20
+/* By default viommu is disabled.
+ * If enabled, 'viommu' param indicates type (smmuv3 is only supported typ=
e atm)
+ */
+char __read_mostly viommu[10] =3D "";
+string_param("viommu", viommu);
+
 int domain_viommu_init(struct domain *d, uint16_t viommu_type)
 {
+    /* Enable viommu when it has been enabled explicitly (viommu=3D"smmuv3=
"). */
+    if ( !is_viommu_enabled() )
+        return 0;
+
     if ( viommu_type =3D=3D XEN_DOMCTL_CONFIG_VIOMMU_NONE )
         return 0;
=20
diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index 6b4009e5ef..e36f200ba5 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -105,6 +105,9 @@ void __init vsmmuv3_set_type(void)
 {
     const struct viommu_desc *desc =3D &vsmmuv3_desc;
=20
+    if ( !is_viommu_enabled() )
+        return;
+
     if ( cur_viommu && (cur_viommu !=3D desc) )
     {
         printk("WARNING: Cannot set vIOMMU, already set to a different val=
ue\n");
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268231.1557585 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OH5-0000pL-6E; Tue, 31 Mar 2026 01:52:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268231.1557585; Tue, 31 Mar 2026 01:52:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OH4-0000ni-QF; Tue, 31 Mar 2026 01:52:10 +0000
Received: by outflank-mailman (input) for mailman id 1268231;
 Tue, 31 Mar 2026 01:52:09 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OH2-0000a1-RQ
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:52:09 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OH2-00CyDl-7T
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:52:08 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb2851-5cb7-0a2a0a5109dd-0a2a450ce0c0-46
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:08 +0200
Received: from [52.101.66.116]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28c7-f93d-0a2a450c0019-34654274e50f-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:08 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by PAWPR03MB9202.eurprd03.prod.outlook.com (2603:10a6:102:342::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:52:06 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01:52:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=t7PgGh9060MxH3nAmbKr7cCxI8gfyi8tWyM96JGu6kS4OHb9vAx63YoUb0esMhlf2cwFpM3BKldcbYJka+p5VaDGWlk/Xwb8Tf4eBRI84Qk8khb3AHND9qjHeZ/yi+kz4/HJst7zHS5GkVVmHGpLSWCslU6fvX9vJN+Mm8GiSFXpJT8vhp/ygPdhzsL6JAHqq7208eSa8KomuoP7bGS9ziG7/1+jDkUxW9vjTZiN2JfCP97HxxcojGl0pQle7mjhT6bbL/JlwJnMti1XhDcPoG2VFbf2hxF/qKVREZuLT5goDd7hRyBpabyiNFjkjYOaiKB1pzLtMn94NA+U0RvJig==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=a0wTnJYqnknl+EFQ6EApvgx2yijg5oFENe59EsVpe3Q=;
 b=UmZCRFbNHSwNiaCLZpWbiUGW9htnIGFEEg98gCHGKSyH9NQSiQP/7KUe/SFyIYtDVJ9GOSjSRNswpudUkedHx3VridzcEdtl3AQ+EAL65rgai2YL3Q3SWITb+IAx3vxzIobnccRDeoUKek7vPrhaY/dz8GMWImaHh7KWJ1DKrxgqnVycSEu87yhoYca26MBk4xi9DeQnBvb07PPjaTTy3oxyxkrXDgrXBDcbsRbehRpCj6esmKtlNCa6JqVUn0RHCTMotGXJ6JSTNxRj9X8xMYjMw5zpTFsM+T3vOLjK7LlSrUjN2IuR0MRmcOU5mGcdc9bYYVZ0XNCyx8x63Ry4jw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=a0wTnJYqnknl+EFQ6EApvgx2yijg5oFENe59EsVpe3Q=;
 b=amPN8jgQxnU7pOU6C6ZqTjoKHfTjL6eaUXWJxv9psdqZN6gzVVPBD0STPIhtrV+vsa3AWDLdYBzLl3KKZLif1vdNlla4CVNN90CIU41ke279IFCHEKBP/UM3lbjQCjLX3GsRJUaAsidMQizYn2r30P6dwowsq8YgDABYqbZK7pMRntfYXBs6NgyBBqpE+9cPsjWOW4Vuh11mNDi9BwcNnmkKa2fVB3yTlhZEYGBJOtmuiTvh0VBsc27Tmr1pEOd3+RomP1YyUTJsI2PjmnzDOlBAApdDFqzuI/uCd4kmSB0P097uIxTzpfAaBBmepI2C6jfth9pDV5xf4iESuKgirQ==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH v3 08/23] xen/arm: vsmmuv3: Add support for registers
 emulation
Thread-Topic: [PATCH v3 08/23] xen/arm: vsmmuv3: Add support for registers
 emulation
Thread-Index: AQHcwLD6roDhpzKvfUK5dtMCNddjVQ==
Date: Tue, 31 Mar 2026 01:52:06 +0000
Message-ID:
 <25adb33c4be3932c2d946cf7757c933eb042476c.1774918270.git.milan_djokic@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774918270.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|PAWPR03MB9202:EE_
x-ms-office365-filtering-correlation-id: 327efae3-b2f1-4d50-cfb0-08de8ec81cdd
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|366016|38070700021|18002099003|56012099003|22082099003;
x-microsoft-antispam-message-info:
 udSCqRR+VMk9Gk6GABZtZkkBGNpBtePpGq1FDCIh6rPZNcqwwR5dXiaZ/k4FCrH30cxOHtWfUycMgVGRPjZ1HcetWHI8kUcCMagDwqNKpIzKCQYvdnzJ8kKfX9V9nJXabMf6eQFiV2SeDJzBbbPqNFReFiywsEmxEydAAwUOafCrUEDxvtgb5cNLT6hvKWTWBEDldX0jcsWHXpBWuEKGKNHvxTmE8dNCU/ZinHio9TaFrfrEOfss5C+6jOaKFrvOp6SfoFVIBVh3b8AnobaLbTlbu6QbOQpaB0gMRLiHDJyjMrUjBZZbONaDFF0Xc/xj89OSS0JbUX7HkVwP8zbzI8UtrELARQvA8bLxwFFhStHVipPa0rk6r8K5E1rcrBGqgCxCL1CKXj2cxVSw1KfAaUlnTY/osjMztm0Yi8aGddYIIgvpTv2aC3uSlayqGK7kS62vGQtlGbDjINa/HEuXT4qg5zCp8t5YdX0LjD13V68dYOatLNGyaSiDYymeY7z6dLa1NnGO0pTnfVEOeYi2E9fhoZOsp9PjiI0tGeGo1DClfDde+bcqq+E0SJl1LibYwe+jkCH8ItsLQ077j6YilmczHOFf/zhEX14tBFkLDexeACTHYtiKWSkcLHHmf08swKjVp4IHMWmuJ56b8d95OrkSOZ50H25HBNmIkUTttbS/xJMQplpWJylofP/iZRJi6g5sb4HvkiZ/lSoTj5O2aZNIbS3ITKy6OvtCBxqUX2Ctg4/6MEs7GQ9VLEwKETDcgVK6VvDaVHvjUsAzqsVWzPRYTsxaPgktPagaGosMNaw=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?zZMNNFwUOUddFy4gBa7ong6Qvomb2IZOmsJ0XV0riyOPOpr4NfqrV6nbWK?=
 =?iso-8859-1?Q?V8e4EdrSSzopUHNumd2RycEW1kkkaDOndVNK/WCK04C0HeseSSrlf6u2GK?=
 =?iso-8859-1?Q?kymiDRj1uhQgwbc0JNiCRx3MSE4/YwVFAKITGHzUUczur0YwxSycXv33fV?=
 =?iso-8859-1?Q?UrVGkNYmjp25fY7iHY2pEv+PmzHJLqdAX0ajtv83pf9h9DITPFEgRm0gYN?=
 =?iso-8859-1?Q?qclvJmFZ8XYKVT20tbQDE/Nve5xuKPz3cb+0KPffEXblOdEawargaQPlTA?=
 =?iso-8859-1?Q?HbWvColp/Iu6yOh+cZwxsp0lR9O1fUq5TJh/HTD611kjy1/N8yzZburnPi?=
 =?iso-8859-1?Q?dpPsZHjVUMR+BeFLj8nKpEM5yztFuOupJnc9Rw9pb5YIRiV3XLX8GivWwH?=
 =?iso-8859-1?Q?2C7rcV2b2hm9z+jQ6V3uzFzJdqj/vdqzkFwTm5BrjtDyxAx4YUO/CcbFma?=
 =?iso-8859-1?Q?VSJtvqV6TlNAj6PsyrcsaifH7zdLWfMpYlsWzXccGNIL3jZ8Rd84tf2BNU?=
 =?iso-8859-1?Q?Zu8U4xxxnoBI03QTDOTxPq0hkPBPBU/Qzbt3K3AV4POnZNzp0KBcJO2HPv?=
 =?iso-8859-1?Q?QRxIomDl/6mDvxloWWkPXipsFIIylIWh4QsyFrnoH0gIEIXIAAOXuiC6r/?=
 =?iso-8859-1?Q?sMY/aag5I5TXekJGs457lTHeT2YHKtz6/ZPw8Ni+NmcqNgBJD9afSnMN4K?=
 =?iso-8859-1?Q?A8KLY+alJgHaEI5GIkZTjO0x2wYlF3bT+oxcHG3KNr60CyyniIaTRJufA3?=
 =?iso-8859-1?Q?xJS7TLjfWcdB9YDjk0tSacXkSz+anb66F/JWRhT+9lpdTbCoiaWMHt+5eg?=
 =?iso-8859-1?Q?1hqMlLycJPh6ujpKlMGonUX4pI2xl7f9oEqL51fIs44EahpTFEX/jkAxAo?=
 =?iso-8859-1?Q?tcy7oEBi2ujNih/8dTYqGmBjLacPD2FqGq2M0K4o86cLNC2CNBwwaFPW1e?=
 =?iso-8859-1?Q?j0P5nOQPFsuo4cTuSJxhwvVCDwPa3+9hpjfHst4TRf1+rILvl3d5aK+Srl?=
 =?iso-8859-1?Q?HM7BcG55fG+7zJORra2izUi528/3SPymLifpmhee7Oe+XHVCIWbuNw2qBw?=
 =?iso-8859-1?Q?aifrCMc2DjC3QX0tdNU2ThUPQOH4D6gb6zu/y8RVXu5hRxEJmMVxW1sqjf?=
 =?iso-8859-1?Q?M5qhPjd9YpwArpSqmL5IIvEIbrbu4wmIbiNgw8boynVn2nbkEJ48p/ts1+?=
 =?iso-8859-1?Q?ihE0KCo0x+rapDSFngSp+w/K+NPbphHiw+/1omvWkHsnQ7TykKpANhZt6v?=
 =?iso-8859-1?Q?5xy2I7Pxwn5jYM/gY4GjUAu2TrQn+cV308c/evMhxy3fRNG+87MPUHWaSc?=
 =?iso-8859-1?Q?6Sqcre6hNZmaVFwRfDSztKspN9PM30qPlbxFV3cho9NwaqvcuFkDZVL0s4?=
 =?iso-8859-1?Q?coYVRzwJEwlvjccP7CNLGk4BaHfzJNpfsjCxg3AEANf40RO7s6eV17YSfM?=
 =?iso-8859-1?Q?ma/pFgwNUfR+yakmZ3l03ZyQS2/jyzDVO1fl92RcFlx3oa+KdTDiBQE8uj?=
 =?iso-8859-1?Q?gVCGeFILAqNBdDGFOYmDNv04HrNAcrTxQeirFdq3jP20zBEU89BC9QVI8g?=
 =?iso-8859-1?Q?9MZDBJ/nF/OMLHbPBnhLxDsCRIJlkFOWJibIdyV3RVFBymV9y5mKLAu5QC?=
 =?iso-8859-1?Q?GU7ObsIV0yifYga9wCKY7hpNdoEJbqa/XRGOZIvR9ghZzukZADfMagEf2L?=
 =?iso-8859-1?Q?Dq23BWHy7om/5nHSMGHoyC6Kjs41UmVi9jSiz1MEkYj2Bt/WPyAViFngUw?=
 =?iso-8859-1?Q?p39zZ11qcZDt+9Ut1Rz3IfWaU/qE4cJcQGlCYF5XMW10uoVkNAVE/7kDhy?=
 =?iso-8859-1?Q?K6UtfTzs8VzogYilLGnkXzntKufuXAs=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 327efae3-b2f1-4d50-cfb0-08de8ec81cdd
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:52:06.1534
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ssrluwS1qSIoCqo5EGvewI3xzsCFVBV1Ajrp1RAHji5v59GT9Ap+C8BNJlzGKeaLgy8ygJWONslanKb0iE6e8A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9202
X-purgate-ID: tlsNG-d25034/1774921928-F7EA3734-293B3C77/0/0
X-purgate-type: clean
X-purgate-size: 11293

From: Rahul Singh <rahul.singh@arm.com>

Add initial support for various emulated registers for virtual SMMUv3
for guests and also add support for virtual cmdq and eventq.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/drivers/passthrough/arm/smmu-v3.h  |   6 +
 xen/drivers/passthrough/arm/vsmmu-v3.c | 286 +++++++++++++++++++++++++
 2 files changed, 292 insertions(+)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.h b/xen/drivers/passthroug=
h/arm/smmu-v3.h
index 3fb13b7e21..fab4fd5a26 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.h
+++ b/xen/drivers/passthrough/arm/smmu-v3.h
@@ -60,6 +60,12 @@
 #define IDR5_VAX			GENMASK(11, 10)
 #define IDR5_VAX_52_BIT			1
=20
+#define ARM_SMMU_IIDR			0x18
+#define IIDR_PRODUCTID			GENMASK(31, 20)
+#define IIDR_VARIANT			GENMASK(19, 16)
+#define IIDR_REVISION			GENMASK(15, 12)
+#define IIDR_IMPLEMENTER		GENMASK(11, 0)
+
 #define ARM_SMMU_CR0			0x20
 #define CR0_ATSCHK			(1 << 4)
 #define CR0_CMDQEN			(1 << 3)
diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index e36f200ba5..3ae1e62a50 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -3,25 +3,307 @@
 #include <xen/param.h>
 #include <xen/sched.h>
 #include <asm/mmio.h>
+#include <asm/vgic-emul.h>
 #include <asm/viommu.h>
+#include <asm/vreg.h>
+
+#include "smmu-v3.h"
+
+/* Register Definition */
+#define ARM_SMMU_IDR2       0x8
+#define ARM_SMMU_IDR3       0xc
+#define ARM_SMMU_IDR4       0x10
+#define IDR0_TERM_MODEL     (1 << 26)
+#define IDR3_RIL            (1 << 10)
+#define CR0_RESERVED        0xFFFFFC20
+#define SMMU_IDR1_SIDSIZE   16
+#define SMMU_CMDQS          19
+#define SMMU_EVTQS          19
+#define DWORDS_BYTES        8
+#define ARM_SMMU_IIDR_VAL   0x12
=20
 /* Struct to hold the vIOMMU ops and vIOMMU type */
 extern const struct viommu_desc __read_mostly *cur_viommu;
=20
+/* virtual smmu queue */
+struct arm_vsmmu_queue {
+    uint64_t    q_base; /* base register */
+    uint32_t    prod;
+    uint32_t    cons;
+    uint8_t     ent_size;
+    uint8_t     max_n_shift;
+};
+
 struct virt_smmu {
     struct      domain *d;
     struct      list_head viommu_list;
+    uint8_t     sid_split;
+    uint32_t    features;
+    uint32_t    cr[3];
+    uint32_t    cr0ack;
+    uint32_t    gerror;
+    uint32_t    gerrorn;
+    uint32_t    strtab_base_cfg;
+    uint64_t    strtab_base;
+    uint32_t    irq_ctrl;
+    uint64_t    gerror_irq_cfg0;
+    uint64_t    evtq_irq_cfg0;
+    struct      arm_vsmmu_queue evtq, cmdq;
 };
=20
 static int vsmmuv3_mmio_write(struct vcpu *v, mmio_info_t *info,
                               register_t r, void *priv)
 {
+    struct virt_smmu *smmu =3D priv;
+    uint64_t reg;
+    uint32_t reg32;
+
+    switch ( info->gpa & 0xffff )
+    {
+    case VREG32(ARM_SMMU_CR0):
+        reg32 =3D smmu->cr[0];
+        vreg_reg32_update(&reg32, r, info);
+        smmu->cr[0] =3D reg32;
+        smmu->cr0ack =3D reg32 & ~CR0_RESERVED;
+        break;
+
+    case VREG32(ARM_SMMU_CR1):
+        reg32 =3D smmu->cr[1];
+        vreg_reg32_update(&reg32, r, info);
+        smmu->cr[1] =3D reg32;
+        break;
+
+    case VREG32(ARM_SMMU_CR2):
+        reg32 =3D smmu->cr[2];
+        vreg_reg32_update(&reg32, r, info);
+        smmu->cr[2] =3D reg32;
+        break;
+
+    case VREG64(ARM_SMMU_STRTAB_BASE):
+        reg =3D smmu->strtab_base;
+        vreg_reg64_update(&reg, r, info);
+        smmu->strtab_base =3D reg;
+        break;
+
+    case VREG32(ARM_SMMU_STRTAB_BASE_CFG):
+        reg32 =3D smmu->strtab_base_cfg;
+        vreg_reg32_update(&reg32, r, info);
+        smmu->strtab_base_cfg =3D reg32;
+
+        smmu->sid_split =3D FIELD_GET(STRTAB_BASE_CFG_SPLIT, reg32);
+        smmu->features |=3D STRTAB_BASE_CFG_FMT_2LVL;
+        break;
+
+    case VREG32(ARM_SMMU_CMDQ_BASE):
+        reg =3D smmu->cmdq.q_base;
+        vreg_reg64_update(&reg, r, info);
+        smmu->cmdq.q_base =3D reg;
+        smmu->cmdq.max_n_shift =3D FIELD_GET(Q_BASE_LOG2SIZE, smmu->cmdq.q=
_base);
+        if ( smmu->cmdq.max_n_shift > SMMU_CMDQS )
+            smmu->cmdq.max_n_shift =3D SMMU_CMDQS;
+        break;
+
+    case VREG32(ARM_SMMU_CMDQ_PROD):
+        reg32 =3D smmu->cmdq.prod;
+        vreg_reg32_update(&reg32, r, info);
+        smmu->cmdq.prod =3D reg32;
+        break;
+
+    case VREG32(ARM_SMMU_CMDQ_CONS):
+        reg32 =3D smmu->cmdq.cons;
+        vreg_reg32_update(&reg32, r, info);
+        smmu->cmdq.cons =3D reg32;
+        break;
+
+    case VREG32(ARM_SMMU_EVTQ_BASE):
+        reg =3D smmu->evtq.q_base;
+        vreg_reg64_update(&reg, r, info);
+        smmu->evtq.q_base =3D reg;
+        smmu->evtq.max_n_shift =3D FIELD_GET(Q_BASE_LOG2SIZE, smmu->evtq.q=
_base);
+        if ( smmu->cmdq.max_n_shift > SMMU_EVTQS )
+            smmu->cmdq.max_n_shift =3D SMMU_EVTQS;
+        break;
+
+    case VREG32(ARM_SMMU_EVTQ_PROD):
+        reg32 =3D smmu->evtq.prod;
+        vreg_reg32_update(&reg32, r, info);
+        smmu->evtq.prod =3D reg32;
+        break;
+
+    case VREG32(ARM_SMMU_EVTQ_CONS):
+        reg32 =3D smmu->evtq.cons;
+        vreg_reg32_update(&reg32, r, info);
+        smmu->evtq.cons =3D reg32;
+        break;
+
+    case VREG32(ARM_SMMU_IRQ_CTRL):
+        reg32 =3D smmu->irq_ctrl;
+        vreg_reg32_update(&reg32, r, info);
+        smmu->irq_ctrl =3D reg32;
+        break;
+
+    case VREG64(ARM_SMMU_GERROR_IRQ_CFG0):
+        reg =3D smmu->gerror_irq_cfg0;
+        vreg_reg64_update(&reg, r, info);
+        smmu->gerror_irq_cfg0 =3D reg;
+        break;
+
+    case VREG64(ARM_SMMU_EVTQ_IRQ_CFG0):
+        reg =3D smmu->evtq_irq_cfg0;
+        vreg_reg64_update(&reg, r, info);
+        smmu->evtq_irq_cfg0 =3D reg;
+        break;
+
+    case VREG32(ARM_SMMU_GERRORN):
+        reg =3D smmu->gerrorn;
+        vreg_reg64_update(&reg, r, info);
+        smmu->gerrorn =3D reg;
+        break;
+
+    default:
+        printk(XENLOG_G_ERR
+               "%pv: vSMMUv3: unhandled write r%d offset %"PRIpaddr"\n",
+               v, info->dabt.reg, (unsigned long)info->gpa & 0xffff);
+        return IO_ABORT;
+    }
+
     return IO_HANDLED;
 }
=20
 static int vsmmuv3_mmio_read(struct vcpu *v, mmio_info_t *info,
                              register_t *r, void *priv)
 {
+    struct virt_smmu *smmu =3D priv;
+    uint64_t reg;
+
+    switch ( info->gpa & 0xffff )
+    {
+    case VREG32(ARM_SMMU_IDR0):
+        reg  =3D FIELD_PREP(IDR0_S1P, 1) | FIELD_PREP(IDR0_TTF, 2) |
+            FIELD_PREP(IDR0_COHACC, 0) | FIELD_PREP(IDR0_ASID16, 1) |
+            FIELD_PREP(IDR0_TTENDIAN, 0) | FIELD_PREP(IDR0_STALL_MODEL, 1)=
 |
+            FIELD_PREP(IDR0_ST_LVL, 1) | FIELD_PREP(IDR0_TERM_MODEL, 1);
+        *r =3D vreg_reg32_extract(reg, info);
+        break;
+
+    case VREG32(ARM_SMMU_IDR1):
+        reg  =3D FIELD_PREP(IDR1_SIDSIZE, SMMU_IDR1_SIDSIZE) |
+            FIELD_PREP(IDR1_CMDQS, SMMU_CMDQS) |
+            FIELD_PREP(IDR1_EVTQS, SMMU_EVTQS);
+        *r =3D vreg_reg32_extract(reg, info);
+        break;
+
+    case VREG32(ARM_SMMU_IDR2):
+        goto read_reserved;
+
+    case VREG32(ARM_SMMU_IDR3):
+        reg  =3D FIELD_PREP(IDR3_RIL, 0);
+        *r =3D vreg_reg32_extract(reg, info);
+        break;
+
+    case VREG32(ARM_SMMU_IDR4):
+        goto read_impl_defined;
+
+    case VREG32(ARM_SMMU_IDR5):
+        reg  =3D FIELD_PREP(IDR5_GRAN4K, 1) | FIELD_PREP(IDR5_GRAN16K, 1) =
|
+            FIELD_PREP(IDR5_GRAN64K, 1) | FIELD_PREP(IDR5_OAS, IDR5_OAS_48=
_BIT);
+        *r =3D vreg_reg32_extract(reg, info);
+        break;
+
+    case VREG32(ARM_SMMU_IIDR):
+        *r =3D vreg_reg32_extract(ARM_SMMU_IIDR_VAL, info);
+        break;
+
+    case VREG32(ARM_SMMU_CR0):
+        *r =3D vreg_reg32_extract(smmu->cr[0], info);
+        break;
+
+    case VREG32(ARM_SMMU_CR0ACK):
+        *r =3D vreg_reg32_extract(smmu->cr0ack, info);
+        break;
+
+    case VREG32(ARM_SMMU_CR1):
+        *r =3D vreg_reg32_extract(smmu->cr[1], info);
+        break;
+
+    case VREG32(ARM_SMMU_CR2):
+        *r =3D vreg_reg32_extract(smmu->cr[2], info);
+        break;
+
+    case VREG32(ARM_SMMU_STRTAB_BASE):
+        *r =3D vreg_reg64_extract(smmu->strtab_base, info);
+        break;
+
+    case VREG32(ARM_SMMU_STRTAB_BASE_CFG):
+        *r =3D vreg_reg32_extract(smmu->strtab_base_cfg, info);
+        break;
+
+    case VREG32(ARM_SMMU_CMDQ_BASE):
+        *r =3D vreg_reg64_extract(smmu->cmdq.q_base, info);
+        break;
+
+    case VREG32(ARM_SMMU_CMDQ_PROD):
+        *r =3D vreg_reg32_extract(smmu->cmdq.prod, info);
+        break;
+
+    case VREG32(ARM_SMMU_CMDQ_CONS):
+        *r =3D vreg_reg32_extract(smmu->cmdq.cons, info);
+        break;
+
+    case VREG32(ARM_SMMU_EVTQ_BASE):
+        *r =3D vreg_reg64_extract(smmu->evtq.q_base, info);
+        break;
+
+    case VREG32(ARM_SMMU_EVTQ_PROD):
+        *r =3D vreg_reg32_extract(smmu->evtq.prod, info);
+        break;
+
+    case VREG32(ARM_SMMU_EVTQ_CONS):
+        *r =3D vreg_reg32_extract(smmu->evtq.cons, info);
+        break;
+
+    case VREG32(ARM_SMMU_IRQ_CTRL):
+    case VREG32(ARM_SMMU_IRQ_CTRLACK):
+        *r =3D vreg_reg32_extract(smmu->irq_ctrl, info);
+        break;
+
+    case VREG64(ARM_SMMU_GERROR_IRQ_CFG0):
+        *r =3D vreg_reg64_extract(smmu->gerror_irq_cfg0, info);
+        break;
+
+    case VREG64(ARM_SMMU_EVTQ_IRQ_CFG0):
+        *r =3D vreg_reg64_extract(smmu->evtq_irq_cfg0, info);
+        break;
+
+    case VREG32(ARM_SMMU_GERROR):
+        *r =3D vreg_reg64_extract(smmu->gerror, info);
+        break;
+
+    case VREG32(ARM_SMMU_GERRORN):
+        *r =3D vreg_reg64_extract(smmu->gerrorn, info);
+        break;
+
+    default:
+        printk(XENLOG_G_ERR
+               "%pv: vSMMUv3: unhandled read r%d offset %"PRIpaddr"\n",
+               v, info->dabt.reg, (unsigned long)info->gpa & 0xffff);
+        return IO_ABORT;
+    }
+
+    return IO_HANDLED;
+
+ read_impl_defined:
+    printk(XENLOG_G_DEBUG
+           "%pv: vSMMUv3: RAZ on implementation defined register offset %"=
PRIpaddr"\n",
+           v, info->gpa & 0xffff);
+    *r =3D 0;
+    return IO_HANDLED;
+
+ read_reserved:
+    printk(XENLOG_G_DEBUG
+           "%pv: vSMMUv3: RAZ on reserved register offset %"PRIpaddr"\n",
+           v, info->gpa & 0xffff);
+    *r =3D 0;
     return IO_HANDLED;
 }
=20
@@ -39,6 +321,10 @@ static int vsmmuv3_init_single(struct domain *d, paddr_=
t addr, paddr_t size)
         return -ENOMEM;
=20
     smmu->d =3D d;
+    smmu->cmdq.q_base =3D FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_CMDQS);
+    smmu->cmdq.ent_size =3D CMDQ_ENT_DWORDS * DWORDS_BYTES;
+    smmu->evtq.q_base =3D FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_EVTQS);
+    smmu->evtq.ent_size =3D EVTQ_ENT_DWORDS * DWORDS_BYTES;
=20
     register_mmio_handler(d, &vsmmuv3_mmio_handler, addr, size, smmu);
=20
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268233.1557601 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OH7-0001Mw-AW; Tue, 31 Mar 2026 01:52:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268233.1557601; Tue, 31 Mar 2026 01: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 1w7OH6-0001M8-SG; Tue, 31 Mar 2026 01:52:12 +0000
Received: by outflank-mailman (input) for mailman id 1268233;
 Tue, 31 Mar 2026 01:52:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OH4-0000cY-3u
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:52:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OH3-00CyDl-Fr
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:52:09 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28c8-5cb7-0a2a0a5109dd-0a2a45089e38-2
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:09 +0200
Received: from [40.107.162.75]
 (helo=PA4PR04CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28c9-1950-0a2a45080019-286ba24bfb1c-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:09 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by GVXPR03MB11035.eurprd03.prod.outlook.com (2603:10a6:150:287::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:52:07 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01:52:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kmu0DQm1VfvzNkd2eYS2AP1M9C9na6XWTjBfeijTjXEkoWAqInaz9VxJz6hcBRe9CG1iaAdy7EWzvEOCDA/H6vm8vZmWw/JypDugBD/qo8OGgQUjRMKeGsKlaR0dqEwUR+H+4/o+BCMZnljqRz8eFrsSvh+W18bE3R4uDDxARDQFUnhrVlcqr1n0I/kzRNpfyjAyhrlzDbRsxFKje1uqzpocRbHYxL8ElCjtpz+I5PvN1kRCmuU+Acrpy/wHpnnQJoPxRb07GcOwwqbP9GVrFGAIySXDh5ddXZqxYdsHGNHzTiyjz2s7zRAk/ciZZzBGKSNR9C6iQyU5Z0r3CUJMgQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=r9jWrlUaHZapt3O5ynx/NVtTbPKS9eli1IbAE7tSe/A=;
 b=tdAYRmdDnSeYb/flZRHXZndf152D/eAXsWWlb473dLfjT+26UZuy568YWjaJEQtDqjWpe00hHRQjWMWcmljIALgbkdny64YReDzIksxEHEUMOjRgBC1zrhhJV8ABeW3V1PuYe9PxAGHuyEsz5PNGid98bUMLg7B09nyROOrozHcrycSc/66xisowuTabHOGv7xHmPEYnN/LINr0Vmes3qGlP4hR7Jl8n5jsu3mrr953VCBeY6PkvFsOYDKupjqqPhmPjOFFI3Cv9xC5WQ29LTDUYSrcVSwJEkAjQ9Pm6GyL4PBO4JiQx0y/5Opr2PPANIUUQOJtTyFz46i+EuBAkIw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=r9jWrlUaHZapt3O5ynx/NVtTbPKS9eli1IbAE7tSe/A=;
 b=arBCLGcilKeWt9ojrfvsWWja18+1wvJialPbLqRwUGXgqfN/LxBt0EoVQfgy3M/6ZzA84CWela/hMofGP5J2jfYkvGK2rnBg3zeva7GeEtWHK6I8VTcuVSNMi2AkLkLi8IEAR/nopimN0+uodsxU3uXQ90UKwmN5RdoFHXMQaFVgUW7cVxsgIdwdIkh7OhJdntceM5arhsa1ODggs8HAZaok5RF4Q3hU9nMRIXU7LXJR9rWHKpkkped/02oHeN/m62Qc4m1ZdS6wCtC1jxeVu8XefNqSaITP6B8Ptt+12PlMqkLEVnVniGVV0LHHm3tdNc4KuMx8DeHRisJxzgoMcA==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH v3 09/23] xen/arm: vsmmuv3: Add support for cmdqueue handling
Thread-Topic: [PATCH v3 09/23] xen/arm: vsmmuv3: Add support for cmdqueue
 handling
Thread-Index: AQHcwLD6ic3rtwSs7kyHtmKLMe6w0Q==
Date: Tue, 31 Mar 2026 01:52:06 +0000
Message-ID:
 <b223a8bb3e4d8771fc643c324a692a2639a91c12.1774918270.git.milan_djokic@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774918270.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|GVXPR03MB11035:EE_
x-ms-office365-filtering-correlation-id: 476082b5-8096-41b6-aa0f-08de8ec81d5a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 k+7CQgekP2YRlru+lvAEv2CgKJZfZTpczZKfAEEZHVGE9y3XPLu4LQhWb49Z2djqEow8mlGS0DwmWZmA4ZdnVEINybtXCOSUlM7da0gI6v+rJMUY/+CelKCUCUo9O3nTBcumK3h9roJ69GHTp7L9G1WtQY9g2SG0Icop7QybZsBgxfMw/aWJ9KPY29AVI8dNngJII3gdgxaaHJVuUlKrg30kDFWBinKM8H2D1SKIj4jZpRo1rCTibhbNkSwhpRg6kkKF5Uu7xGUbfnFBRRNcA16NPBzquHoY8kYE5zfQ7egnE4kIMoS2IdVU4+CBslEbLuQt/oezygsvC+BD4M0HcfPNezMkiv94oQtFsKgQtVnxNKOadufq9GO2Uq89BEXlnZr7n2R+taeUGkYq7T2TxJgZoLhoGeTtsJ50mZXz5wPrgtdM0N422CH6Go+DkjqlnsDxJsfcqSG32bXKEC6qChlxvpjG9UETY05lneOPAhphvLH5CEPcVX1AYomtTnopBQdKtkwVM8eJ01majlK4BaNHzgdLiHQfFxORVT4pFuVM5LnkFu3lEV0+CUOr4ltf1H+0ry+taeEzTIYYIIb2SkOVeEAuqnjgNaCnEh1kdeR/JddlWDOu5Q6K9NEihqwA8OlPuYc1UQ1nmv/BaMZFwQIQ1EJdR1tBtggsAXuxTBzzHwzP9KvsCmD+5wtkRMVsWrNf+vI5WfTpf1RVyCBvYl0ZNPs/2H/sQ55KEU65dickoIp7o09NidEwXTNbuIXNfV4AkjOAIPK/PFRrA6PHXdI7XGFhdbKeVTkOtY+ICl4=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?B6wvMKJfNn2sK/4zgW6pkTJ2qtcxUdiIuaHjhHOQ9anpE6hJpby1dZRm+S?=
 =?iso-8859-1?Q?9gxfW5iuzwvPaIEEKrPM60teUjn+4E4a3sv9WTcc6lKVHojGUYPmosm9Nz?=
 =?iso-8859-1?Q?pxUkAGM1cphKcN65EYK01aP3YaDb3gUXO5tLGPcXNOH1PS+4esnLDxEMNC?=
 =?iso-8859-1?Q?WCacdS6JzrnMewSWZLK1QKoOmnKGWYE+qMwtWNtYPkpFRg1sLqonPFdeAN?=
 =?iso-8859-1?Q?9PDS6em6pVMYAFA90ugN/kLYIVRDGFulbxCKcL00BGgFqnH9zSQC0DLHpZ?=
 =?iso-8859-1?Q?S6qYdzYvAzC5ytDVUPavLC0+txsLhDHbCYA6zqmI1ZcJq+GLfG1ftPIGI4?=
 =?iso-8859-1?Q?qcDIUzhRRyoRiYN5OTuBKwiuYFzB3w6FGEQT2KlCucVhWHlK5hq0YWLbS8?=
 =?iso-8859-1?Q?P2yNoZFo9hwe/JVOfOM+w7g7XbMCj2dQ0Dh0aTWGB/WRwo5z+7Q/8cgTQ+?=
 =?iso-8859-1?Q?OA3qNmK3tri6HdOeC5wmQxtoItjY4NIUrwpdmw17aWJf4Y1NkeP/XGqU3a?=
 =?iso-8859-1?Q?qQ/Qix8asYYEmQ2p7Je7ZKjTFzzgI0YVJRrwCwQhoIcze+xj61Ux8JcgYw?=
 =?iso-8859-1?Q?MuhkzR8hKhdZx1MtYMqkqxjVyqwJ+8YobAcSZmzFqM/GYsKeCA6kdmcnow?=
 =?iso-8859-1?Q?vH8+TgF3n67/qbHe2QJ7tW37z58ls72wXy0x3x5Qip2wtnq0rPifAY+Wk+?=
 =?iso-8859-1?Q?YqCP5/8IA9Qtwp0kak0AKGmCMC1uI5KgF/DAC/38Sk+PspNg2MILooTwAO?=
 =?iso-8859-1?Q?yWIkWxNi4RObz/nMAbZdO0O42pal3K0/mudSzUW2JYP3aivA4fSSDKGh1h?=
 =?iso-8859-1?Q?HOiF8bXC0tk6XzwoHWxTFbckHKaEZc5OgT3qvgWS9MvD7Jt2PemgaOvarG?=
 =?iso-8859-1?Q?z29JNv0bSYA2mmmqYsX1knJmxM+9JOaG2eLel0Q0YdCtxZjtRZuI9D+gqb?=
 =?iso-8859-1?Q?bUy+ot7ryuA+EolFbo8wOJAZKPasSXxxjmzEP5jafytKgfuQW3ZdXsDYF7?=
 =?iso-8859-1?Q?tAsbwcyn7MptLzFRDuuuSFPBlYcQHZJz4kFpF2Zxbk04MKQp40xgqGgBCI?=
 =?iso-8859-1?Q?RP3EMKRr2hfeltocQPUVlJ69bkY5EZNnyVMN2qorS6gZeTATFioEUi+5ZQ?=
 =?iso-8859-1?Q?StbkXFkLi6sfU3lb/mK2hfr5WQxYdVLZh15fwOugYaT0a7ndfEB0FNimgW?=
 =?iso-8859-1?Q?lRaNWU/PMOrtgG4pEDwpwQcqjg2U89CiAacoiahEMSrQB1nQnLHbh8ba/J?=
 =?iso-8859-1?Q?VgziMztiNH2DKSIu6iHZt8BHuZmNAU69Bvv5Sq2otOJGjjBbcVIrYVZH6t?=
 =?iso-8859-1?Q?VqpIt4fx8BefwMd40y9kbFOsBBs0g0sSlg5Ab+eesVCqaq4ZfC2sFGbMr2?=
 =?iso-8859-1?Q?ykB4+k6YCb8nq6yaziyiuker2/HyYQy4XvATHVmZrJ3tLK1hqX+5995H1j?=
 =?iso-8859-1?Q?n4iZi54xkPgzArbkjGZ0J31kUH/GIeUDWZzMAsnSMDysCRdoOkNUIKbKCC?=
 =?iso-8859-1?Q?XEvMwUY4+wGgrzn1/qHm6ETZA3tEopyx+Z6jQNnw5sIkw9QbotnYGfTPco?=
 =?iso-8859-1?Q?j+VfzmEZpyFYr1+aDMlz+Xq2YTvjhx1u+HRz0pYLRCYISsqxeTluGkAHb2?=
 =?iso-8859-1?Q?X+5Lrr3zL7zkWDhSyd84nJLi4/5FfkswQki9QSCrmQ6gyRvKUUQ4xAk4KU?=
 =?iso-8859-1?Q?NCA6hV7XXFlKPefQMop7idNSuoll3mwpTQ+RpFJkX/jj0S501fkZFMwshM?=
 =?iso-8859-1?Q?UP7NeE8D7Bu6sFnlcXto3UhIXV54VW+VYWJ/daOXZ4fdmLOiKeWX8ZjrWa?=
 =?iso-8859-1?Q?B078qS51QOFzu/GtIRz5UGLgcrO/ScQ=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 476082b5-8096-41b6-aa0f-08de8ec81d5a
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:52:07.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: +okX5OjZNRQEoq2pjMBDXXrKdcjWuEKOWi0dal2EsMolFujK3TA9blmZ4YsFL4WIf5/0X3dq3S8jrlw1g3A4rQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB11035
X-purgate-ID: tlsNG-c1860d/1774921929-F2AE9726-4B878DBC/0/0
X-purgate-type: clean
X-purgate-size: 5197

From: Rahul Singh <rahul.singh@arm.com>

Add support for virtual cmdqueue handling for guests

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/drivers/passthrough/arm/vsmmu-v3.c | 101 +++++++++++++++++++++++++
 1 file changed, 101 insertions(+)

diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index 3ae1e62a50..02fe6a4422 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
=20
+#include <xen/guest_access.h>
 #include <xen/param.h>
 #include <xen/sched.h>
 #include <asm/mmio.h>
@@ -25,6 +26,26 @@
 /* Struct to hold the vIOMMU ops and vIOMMU type */
 extern const struct viommu_desc __read_mostly *cur_viommu;
=20
+/* SMMUv3 command definitions */
+#define CMDQ_OP_PREFETCH_CFG    0x1
+#define CMDQ_OP_CFGI_STE        0x3
+#define CMDQ_OP_CFGI_ALL        0x4
+#define CMDQ_OP_CFGI_CD         0x5
+#define CMDQ_OP_CFGI_CD_ALL     0x6
+#define CMDQ_OP_TLBI_NH_ASID    0x11
+#define CMDQ_OP_TLBI_NH_VA      0x12
+#define CMDQ_OP_TLBI_NSNH_ALL   0x30
+#define CMDQ_OP_CMD_SYNC        0x46
+
+/* Queue Handling */
+#define Q_BASE(q)       ((q)->q_base & Q_BASE_ADDR_MASK)
+#define Q_CONS_ENT(q)   (Q_BASE(q) + Q_IDX(q, (q)->cons) * (q)->ent_size)
+#define Q_PROD_ENT(q)   (Q_BASE(q) + Q_IDX(q, (q)->prod) * (q)->ent_size)
+
+/* Helper Macros */
+#define smmu_get_cmdq_enabled(x)    FIELD_GET(CR0_CMDQEN, x)
+#define smmu_cmd_get_command(x)     FIELD_GET(CMDQ_0_OP, x)
+
 /* virtual smmu queue */
 struct arm_vsmmu_queue {
     uint64_t    q_base; /* base register */
@@ -49,8 +70,80 @@ struct virt_smmu {
     uint64_t    gerror_irq_cfg0;
     uint64_t    evtq_irq_cfg0;
     struct      arm_vsmmu_queue evtq, cmdq;
+    spinlock_t  cmd_queue_lock;
 };
=20
+/* Queue manipulation functions */
+static bool queue_empty(struct arm_vsmmu_queue *q)
+{
+    return Q_IDX(q, q->prod) =3D=3D Q_IDX(q, q->cons) &&
+           Q_WRP(q, q->prod) =3D=3D Q_WRP(q, q->cons);
+}
+
+static void queue_inc_cons(struct arm_vsmmu_queue *q)
+{
+    uint32_t cons =3D (Q_WRP(q, q->cons) | Q_IDX(q, q->cons)) + 1;
+    q->cons =3D Q_OVF(q->cons) | Q_WRP(q, cons) | Q_IDX(q, cons);
+}
+
+static void dump_smmu_command(uint64_t *command)
+{
+    gdprintk(XENLOG_ERR, "cmd 0x%02llx: %016lx %016lx\n",
+             smmu_cmd_get_command(command[0]), command[0], command[1]);
+}
+static int arm_vsmmu_handle_cmds(struct virt_smmu *smmu)
+{
+    struct arm_vsmmu_queue *q =3D &smmu->cmdq;
+    struct domain *d =3D smmu->d;
+    uint64_t command[CMDQ_ENT_DWORDS];
+    paddr_t addr;
+
+    if ( !smmu_get_cmdq_enabled(smmu->cr[0]) )
+        return 0;
+
+    while ( !queue_empty(q) )
+    {
+        int ret;
+
+        addr =3D Q_CONS_ENT(q);
+        ret =3D access_guest_memory_by_gpa(d, addr, command,
+                                         sizeof(command), false);
+        if ( ret )
+            return ret;
+
+        switch ( smmu_cmd_get_command(command[0]) )
+        {
+        case CMDQ_OP_CFGI_STE:
+            break;
+        case CMDQ_OP_PREFETCH_CFG:
+        case CMDQ_OP_CFGI_CD:
+        case CMDQ_OP_CFGI_CD_ALL:
+        case CMDQ_OP_CFGI_ALL:
+        case CMDQ_OP_CMD_SYNC:
+            break;
+        case CMDQ_OP_TLBI_NH_ASID:
+        case CMDQ_OP_TLBI_NSNH_ALL:
+        case CMDQ_OP_TLBI_NH_VA:
+            if ( !iommu_iotlb_flush_all(smmu->d, 1) )
+                break;
+        default:
+            gdprintk(XENLOG_ERR, "vSMMUv3: unhandled command\n");
+            dump_smmu_command(command);
+            break;
+        }
+
+        if ( ret )
+        {
+            gdprintk(XENLOG_ERR,
+                     "vSMMUv3: command error %d while handling command\n",
+                     ret);
+            dump_smmu_command(command);
+        }
+        queue_inc_cons(q);
+    }
+    return 0;
+}
+
 static int vsmmuv3_mmio_write(struct vcpu *v, mmio_info_t *info,
                               register_t r, void *priv)
 {
@@ -104,9 +197,15 @@ static int vsmmuv3_mmio_write(struct vcpu *v, mmio_inf=
o_t *info,
         break;
=20
     case VREG32(ARM_SMMU_CMDQ_PROD):
+        spin_lock(&smmu->cmd_queue_lock);
         reg32 =3D smmu->cmdq.prod;
         vreg_reg32_update(&reg32, r, info);
         smmu->cmdq.prod =3D reg32;
+
+        if ( arm_vsmmu_handle_cmds(smmu) )
+            gdprintk(XENLOG_ERR, "error handling vSMMUv3 commands\n");
+
+        spin_unlock(&smmu->cmd_queue_lock);
         break;
=20
     case VREG32(ARM_SMMU_CMDQ_CONS):
@@ -326,6 +425,8 @@ static int vsmmuv3_init_single(struct domain *d, paddr_=
t addr, paddr_t size)
     smmu->evtq.q_base =3D FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_EVTQS);
     smmu->evtq.ent_size =3D EVTQ_ENT_DWORDS * DWORDS_BYTES;
=20
+    spin_lock_init(&smmu->cmd_queue_lock);
+
     register_mmio_handler(d, &vsmmuv3_mmio_handler, addr, size, smmu);
=20
     /* Register the vIOMMU to be able to clean it up later. */
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268234.1557606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OH7-0001Qm-QU; Tue, 31 Mar 2026 01:52:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268234.1557606; Tue, 31 Mar 2026 01: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 1w7OH7-0001Ox-9M; Tue, 31 Mar 2026 01:52:13 +0000
Received: by outflank-mailman (input) for mailman id 1268234;
 Tue, 31 Mar 2026 01:52:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OH4-0000eF-CW
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:52:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OH3-00CyDl-Oc
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:52:09 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28c8-5cb7-0a2a0a5109dd-0a2a45089e38-4
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:09 +0200
Received: from [40.107.162.75]
 (helo=PA4PR04CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28c9-1950-0a2a45080019-286ba24bfb1c-4
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:09 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by GVXPR03MB11035.eurprd03.prod.outlook.com (2603:10a6:150:287::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:52:07 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01:52:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wCp+eC77mxtfOHbAVbFEe+XCLRKDmmfZi1UyaPgCcf+Ia0RIHLmgQa+/8SPUkPwqrv6Bg39DGHCsGxu0S4yKiCJQRiMl7R76lFVpP1OT2DnmTlz7P4I9s8/zueGPIBiBe0PfFPLF8OLUvQZVbt50KFrkK3aafHTYS0nlpzfZcMESbGTyaH4zpD9IJA6sZrxPcFcdoRnDFJKkyEIYO5pXvmhIiThlIQd4zbmQfUTxYxDilJnI0E56TJ0bhhZlG7gO8lv08tfhJghg2GpOVSxI2V8CEwiErhilkQypMrE1mJwqrGPORRRoGdriXEA8TDQ4s723v2ZNkImWlUgRd8S7Ew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0XZSO1UVrC8SXwDBQpjDCvjjP780VAbXtnJxzn+t7Pc=;
 b=TXfHO/7jBZthazLL8ZdvgXpF3sW8kKh6PqhExkiVl9oA5uAkqYDl0oAjcdlyHmMyFkLdBe7Y0xsaybDd1BxLKNsD2oPgzCOWAhmwc/LhR9LyyfJr2tYjSXZ9j2F9wpe7r/5zqJOqB9jZcsVNJcnEHfRqufRzLBflvM/sreO2LUkeMAvYLcD7H7QBdFpZmBhoL9xG/qPN7WIv4e5HEMpvYeSFUcP4aQ1akhfurCXerTurLFl9owlum7F/eiTrfl/Qb/U3TrA2aEUOLWCpBUNwqrNM2OB4glRFri3s7PjemdjtpNGJ8tG5LaZRMukq9KWo2NZ1qZBP10GWf1W+IbTRyQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0XZSO1UVrC8SXwDBQpjDCvjjP780VAbXtnJxzn+t7Pc=;
 b=SEbNCSAsy8w55b6rHF9DgXITNIG6QXTFMOYrdP7bixKu+J2fC3ubWtuKakzrBhRxnjRL1IfYe5poAUHEeq099AZj3YfeCZ2slid3k+EFmVcXR43XgannNtdJ2K7o8zTYLJUDWVrRoilZOsclFXNK6r4R4fourtMnvGUGJc5mvMwTXMWsmuqcFnj+VAim7AFxq49Htoi6/WpomRB3TNDe62y16wexOKuBP1g+dDC3oNsXIv3KXx4f6U5gZZx2mcHRr5YAZRlmI9LxUD8q8pgGtiUl212UCPvEY7bGPTfenDkbtCVyzk/pMcVVkfw4zu8iG8fXgNCxNBVCBcB1DhaT8w==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH v3 10/23] xen/arm: vsmmuv3: Add support for command
 CMD_CFGI_STE
Thread-Topic: [PATCH v3 10/23] xen/arm: vsmmuv3: Add support for command
 CMD_CFGI_STE
Thread-Index: AQHcwLD70TVWtdvxQUW3kRgdvQZ+4g==
Date: Tue, 31 Mar 2026 01:52:07 +0000
Message-ID:
 <5342a5355191ae3b5b7bfcb86c6494334dda82e6.1774918270.git.milan_djokic@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774918270.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|GVXPR03MB11035:EE_
x-ms-office365-filtering-correlation-id: e3cfe55f-b415-4c94-e090-08de8ec81de0
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 gdNwvrXbu5UFMj6Ao6fGg6rUsOmDVUjFjAAkDsbgTvAYM9emuG3siihCIR4DsXBejRM807yimNXoqITbNjIp2fGuh3cfcxjl7T3fncjU4jax/aYs9bG4HHaz/iWDzuou9nxcgXKjZIVN1bAxMEU07LHKVIbuus3vWmdUGbzEnl/44LhyLmAlyQys3HKXw2uzRFDJ10c/g9WsNcR1e75+D+/XVryy5n4QkkgdyG9397aYOwuLM2GRvN3memIn5Ui4FHRtELknCQi19H/HEIZ8TqDeIAPAvlU4of354I5JQ0dhbUrr+wLbzykb3sQT7y9khIPoLr70uxA9ZntI9yxCgy1DvwqO/3zefMrLYM12kMyaWRUy1vzfNK6bmcnxp8ylDMeutCMlLJz9dC6aaPEoHK1ROc0mZDFcre3vRzYjS+SBRisLgeqaybbFuqbPWUmgGJKupXKD9d2da09CT4ErcaoqqVkWltU1iWkz7vGyqm9giYLIqZ0dY/k5Tv8eD/xil5L/DWvTwD6dYl8gsunjA59TzJ7Ld/39UmNOHsxPlgZZEPIqaP/9IQ6Z86jrHGH2JmePW4pd0S5Uk99VABUDjUYNP7NWk8cynhx/8eM0N/BRNX+97MRoN7pKSIotwU4CNyfE24lu48HMgVZ6i3L4JGPD2hJ5gtGU+MypYfVOkMLI6dL7D9aCUS5FhK3ivKPmRqVPf39PY5xpon0Ot5QqWiVko8NZmesqHIrPZ0ppEFWOYL8HtC4JVh86FucfTfaC80gURSXMfsaB1RpRfDd9uobIiXROYEcqjBoruUXeqg0=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?xziJyB3N6vEIPqEI0vqi3UYzbmg/1myUBY5y/alK7hT4Q55vTeoIp2upfZ?=
 =?iso-8859-1?Q?OD8pwp2W8JBD/+x+nDRqmol3AHuqo+i0v2GE036fKcu33cz2GJNQZiSJf+?=
 =?iso-8859-1?Q?2C3udVckR9vJMkj2tDGiaFi0Im9apONRj+LdmoRwRJ5eozwsbiOrxMV2yN?=
 =?iso-8859-1?Q?jaMOoDYrRdp1HO6bPJSKc9a3VtBPMkmDxwuLKVmsgoFbbfUS+/TQ8JNkum?=
 =?iso-8859-1?Q?4Q6C++MjTofstAmS1PwdMfMrfCz2BOwdeLVI2r4xxMsSBc8UpXVTrkTeAt?=
 =?iso-8859-1?Q?fLhq1TPVzwdCGge1ZILBYJ5I20/ok6hINKfQqJ9eIkQZsa6bG+yZfGfZIz?=
 =?iso-8859-1?Q?KyIAngdvn1Ii6z38aHhEVC+EGvlXJokMepuHICQ5faOh+nAKdsCwn9LH2U?=
 =?iso-8859-1?Q?x+MBmjTQScZcP6H7amGmp2HsYRSBiDkp+PKNwAgB+AYm7Kmchx6f0YtwDN?=
 =?iso-8859-1?Q?Ou5loZvUakQ3Z4m/B2127KnGOj70Y5MS8kDviqynTDsiaQz4CCvROMQ4Id?=
 =?iso-8859-1?Q?f/6+sMcbsqsCke/9yT69fj4ZBxaDw9Ta3uYlu43l5TWrlDsI4JptEwoy9Q?=
 =?iso-8859-1?Q?duACIvPylzfvVhRAw6bVDhAguvPt71o2iHvih3jXhPz8NVTyyz65tzYlTB?=
 =?iso-8859-1?Q?igr5BkkuDh+V0WvYOCkKfg6Zr5gm+eRMheiqM0aDy5DERXUXGce1VGyC4A?=
 =?iso-8859-1?Q?nPHI4zMl/caHMCaoAIGi6WW16ZWmTZroqRC3LwS8PZ58ll1NQZvp3aA4YM?=
 =?iso-8859-1?Q?yYnYHdqLuUkA0n9dve529gKExC3w4WWal8bI++CuzpRhrBiqlvHHZU/Sw5?=
 =?iso-8859-1?Q?90bRDP1DMSKtny8nswWtg+41buXxpw33S+S0qC2DQMs7PkTTe2alJ4BKbM?=
 =?iso-8859-1?Q?T4FhhdqnrmKJVuWfv9+54adazahLwQhSIiKVrg9LN80KaBH6aEewEzhwbc?=
 =?iso-8859-1?Q?oJojWCNsscPJoIpDmlhasUptxvY2Km9V5k7MdplVk9ZWFuH4Yw9LsG8RMt?=
 =?iso-8859-1?Q?wQKT08NcW+l3akDGPgxgJGKzYNNtUk0+szIY93jgFVRlnAi3OeqyL2XDmm?=
 =?iso-8859-1?Q?GyC0pYyFkxMlCQCNSrmW35hpUSBJMcZNSIB/JFksLW5N/av/5Ys6LjryJ7?=
 =?iso-8859-1?Q?ABfYnDMgAA6QdTY3+4DbXGfPjQeixTfU4QFVhtL3LeEMXyxTYpjMdcDvF6?=
 =?iso-8859-1?Q?QSJpSNJX0naWA2VxHp7qFOy5jhUAc4gcdkhkC4HuzuoOf3xFmyktOgrE/8?=
 =?iso-8859-1?Q?PLnG2lgTE+bEOl9vWdac+TSYp3F1BBiiC5zGJaMYxxsm65yhibSzN4lbHd?=
 =?iso-8859-1?Q?NE9XbMsJTZHAbqs3ZOCCbQa6hRmdXZNKQwYADrPDaiLLqI6R00jeMeKcCj?=
 =?iso-8859-1?Q?C0Vgs9C0wKd8HhHjkv8M32/PouHedzNlyKrPCw9U2w1dB4KA4S8sxWBdKI?=
 =?iso-8859-1?Q?hWNKS3jsg8ALEYR6ekH1FSi/HkeuEI1mUxKDuWDLaxTTHVL+FvSc/s3Y5n?=
 =?iso-8859-1?Q?eLWDusyZ2A2UHzjbyNr6OLqS+29Dkmch6zNiczhcGALDCwxsnQ99AGMvmw?=
 =?iso-8859-1?Q?ga94VshdZaMl6/ffc3NCmfcMMn+M9UpbsPrQCThIWy7Db6d0qMYH17xPD3?=
 =?iso-8859-1?Q?3o+wng5mUoLf2uFaIyx4UBX1bBsrd8pFq2ZN0gTepI5Sv/18xhBi6PhCYw?=
 =?iso-8859-1?Q?udnRAyGAQCFEz709U3OEFEdp7vbK2f0cdt/81IQdsKFdUxpnKpfM6V2GyS?=
 =?iso-8859-1?Q?75Arvo7+L94/rUv9UNMJL17z9XCCwMBi20f9W1qGrWd1gdkgOBBiRKpUwz?=
 =?iso-8859-1?Q?Il/kF91/dhO/QDH00pz8USAJwGIlXUU=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e3cfe55f-b415-4c94-e090-08de8ec81de0
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:52:07.8804
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: xlLiwwyey/ZnI69M6yMxr1NHTEt2VOCWSwqWgbiM6zq7U+mc8kktGZMD6qA8Lw+Zxh+vGy7851JC9jPgO+v8KQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB11035
X-purgate-ID: tlsNG-c1860d/1774921929-EA691726-963038AB/0/0
X-purgate-type: clean
X-purgate-size: 6564

From: Rahul Singh <rahul.singh@arm.com>

CMD_CFGI_STE is used to invalidate/validate the STE. Emulated vSMMUv3
driver in XEN will read the STE from the guest memory space and capture
the Stage-1 configuration required to support nested translation.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/drivers/passthrough/arm/vsmmu-v3.c | 148 +++++++++++++++++++++++++
 1 file changed, 148 insertions(+)

diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index 02fe6a4422..39ed4dc577 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -45,6 +45,21 @@ extern const struct viommu_desc __read_mostly *cur_viomm=
u;
 /* Helper Macros */
 #define smmu_get_cmdq_enabled(x)    FIELD_GET(CR0_CMDQEN, x)
 #define smmu_cmd_get_command(x)     FIELD_GET(CMDQ_0_OP, x)
+#define smmu_cmd_get_sid(x)         FIELD_GET(CMDQ_PREFETCH_0_SID, x)
+#define smmu_get_ste_s1cdmax(x)     FIELD_GET(STRTAB_STE_0_S1CDMAX, x)
+#define smmu_get_ste_s1fmt(x)       FIELD_GET(STRTAB_STE_0_S1FMT, x)
+#define smmu_get_ste_s1stalld(x)    FIELD_GET(STRTAB_STE_1_S1STALLD, x)
+#define smmu_get_ste_s1ctxptr(x)    FIELD_PREP(STRTAB_STE_0_S1CTXPTR_MASK,=
 \
+                                    FIELD_GET(STRTAB_STE_0_S1CTXPTR_MASK, =
x))
+
+/* stage-1 translation configuration */
+struct arm_vsmmu_s1_trans_cfg {
+    paddr_t s1ctxptr;
+    uint8_t s1fmt;
+    uint8_t s1cdmax;
+    bool    bypassed;             /* translation is bypassed */
+    bool    aborted;              /* translation is aborted */
+};
=20
 /* virtual smmu queue */
 struct arm_vsmmu_queue {
@@ -91,6 +106,138 @@ static void dump_smmu_command(uint64_t *command)
     gdprintk(XENLOG_ERR, "cmd 0x%02llx: %016lx %016lx\n",
              smmu_cmd_get_command(command[0]), command[0], command[1]);
 }
+static int arm_vsmmu_find_ste(struct virt_smmu *smmu, uint32_t sid,
+                              uint64_t *ste)
+{
+    paddr_t addr, strtab_base;
+    struct domain *d =3D smmu->d;
+    uint32_t log2size;
+    int strtab_size_shift;
+    int ret;
+
+    log2size =3D FIELD_GET(STRTAB_BASE_CFG_LOG2SIZE, smmu->strtab_base_cfg=
);
+
+    if ( sid >=3D (1 << MIN(log2size, SMMU_IDR1_SIDSIZE)) )
+        return -EINVAL;
+
+    if ( smmu->features & STRTAB_BASE_CFG_FMT_2LVL )
+    {
+        int idx, max_l2_ste, span;
+        paddr_t l1ptr, l2ptr;
+        uint64_t l1std;
+
+        strtab_size_shift =3D MAX(5, (int)log2size - smmu->sid_split - 1 +=
 3);
+        strtab_base =3D smmu->strtab_base & STRTAB_BASE_ADDR_MASK &
+                        ~GENMASK_ULL(strtab_size_shift, 0);
+        idx =3D (sid >> STRTAB_SPLIT) * STRTAB_L1_DESC_DWORDS;
+        l1ptr =3D (paddr_t)(strtab_base + idx * sizeof(l1std));
+
+        ret =3D access_guest_memory_by_gpa(d, l1ptr, &l1std,
+                                         sizeof(l1std), false);
+        if ( ret )
+        {
+            gdprintk(XENLOG_ERR,
+                     "Could not read L1PTR at 0X%"PRIx64"\n", l1ptr);
+            return ret;
+        }
+
+        span =3D FIELD_GET(STRTAB_L1_DESC_SPAN, l1std);
+        if ( !span )
+        {
+            gdprintk(XENLOG_ERR, "Bad StreamID span\n");
+            return -EINVAL;
+        }
+
+        max_l2_ste =3D (1 << span) - 1;
+        l2ptr =3D FIELD_PREP(STRTAB_L1_DESC_L2PTR_MASK,
+                    FIELD_GET(STRTAB_L1_DESC_L2PTR_MASK, l1std));
+        idx =3D sid & ((1 << smmu->sid_split) - 1);
+        if ( idx > max_l2_ste )
+        {
+            gdprintk(XENLOG_ERR, "idx=3D%d > max_l2_ste=3D%d\n",
+                     idx, max_l2_ste);
+            return -EINVAL;
+        }
+        addr =3D l2ptr + idx * sizeof(*ste) * STRTAB_STE_DWORDS;
+    }
+    else
+    {
+        strtab_size_shift =3D log2size + 5;
+        strtab_base =3D smmu->strtab_base & STRTAB_BASE_ADDR_MASK &
+                      ~GENMASK_ULL(strtab_size_shift, 0);
+        addr =3D strtab_base + sid * sizeof(*ste) * STRTAB_STE_DWORDS;
+    }
+    ret =3D access_guest_memory_by_gpa(d, addr, ste, sizeof(*ste), false);
+    if ( ret )
+    {
+        gdprintk(XENLOG_ERR,
+                "Cannot fetch pte at address=3D0x%"PRIx64"\n", addr);
+        return -EINVAL;
+    }
+
+    return 0;
+}
+
+static int arm_vsmmu_decode_ste(struct virt_smmu *smmu, uint32_t sid,
+                                struct arm_vsmmu_s1_trans_cfg *cfg,
+                                uint64_t *ste)
+{
+    uint64_t val =3D ste[0];
+
+    if ( !(val & STRTAB_STE_0_V) )
+        return -EAGAIN;
+
+    switch ( FIELD_GET(STRTAB_STE_0_CFG, val) )
+    {
+    case STRTAB_STE_0_CFG_BYPASS:
+        cfg->bypassed =3D true;
+        return 0;
+    case STRTAB_STE_0_CFG_ABORT:
+        cfg->aborted =3D true;
+        return 0;
+    case STRTAB_STE_0_CFG_S1_TRANS:
+        break;
+    case STRTAB_STE_0_CFG_S2_TRANS:
+        gdprintk(XENLOG_ERR, "vSMMUv3 does not support stage 2 yet\n");
+        goto bad_ste;
+    default:
+        BUG(); /* STE corruption */
+    }
+
+    cfg->s1ctxptr =3D smmu_get_ste_s1ctxptr(val);
+    cfg->s1fmt =3D smmu_get_ste_s1fmt(val);
+    cfg->s1cdmax =3D smmu_get_ste_s1cdmax(val);
+    if ( cfg->s1cdmax !=3D 0 )
+    {
+        gdprintk(XENLOG_ERR,
+                 "vSMMUv3 does not support multiple context descriptors\n"=
);
+        goto bad_ste;
+    }
+
+    return 0;
+
+bad_ste:
+    return -EINVAL;
+}
+
+static int arm_vsmmu_handle_cfgi_ste(struct virt_smmu *smmu, uint64_t *cmd=
ptr)
+{
+    int ret;
+    uint64_t ste[STRTAB_STE_DWORDS];
+    struct arm_vsmmu_s1_trans_cfg s1_cfg =3D {0};
+    uint32_t sid =3D smmu_cmd_get_sid(cmdptr[0]);
+
+    ret =3D arm_vsmmu_find_ste(smmu, sid, ste);
+    if ( ret )
+        return ret;
+
+    ret =3D arm_vsmmu_decode_ste(smmu, sid, &s1_cfg, ste);
+    if ( ret )
+        return (ret =3D=3D -EAGAIN ) ? 0 : ret;
+
+    return 0;
+}
+
 static int arm_vsmmu_handle_cmds(struct virt_smmu *smmu)
 {
     struct arm_vsmmu_queue *q =3D &smmu->cmdq;
@@ -114,6 +261,7 @@ static int arm_vsmmu_handle_cmds(struct virt_smmu *smmu=
)
         switch ( smmu_cmd_get_command(command[0]) )
         {
         case CMDQ_OP_CFGI_STE:
+            ret =3D arm_vsmmu_handle_cfgi_ste(smmu, command);
             break;
         case CMDQ_OP_PREFETCH_CFG:
         case CMDQ_OP_CFGI_CD:
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268238.1557611 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OH8-0001Zy-Mn; Tue, 31 Mar 2026 01:52:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268238.1557611; Tue, 31 Mar 2026 01:52:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OH8-0001WH-1r; Tue, 31 Mar 2026 01:52:14 +0000
Received: by outflank-mailman (input) for mailman id 1268238;
 Tue, 31 Mar 2026 01:52:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OH5-0000th-ET
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:52:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OH4-00HCrd-Qa
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:52:10 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28c4-e002-0a2a0a5209dd-0a2a450a9b40-8
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:10 +0200
Received: from [52.101.69.97]
 (helo=AM0PR83CU005.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28ca-1772-0a2a450a0019-34654561d17f-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:10 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by GVXPR03MB11035.eurprd03.prod.outlook.com (2603:10a6:150:287::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:52:08 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01:52:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=otjT++I3sHDf5/sgY4BCllS3qwXmxDG1btJkWO8dMFBDMnNgvEN7rMiFMW3/sTRbcBnjHNrJw9R3ihaDQwSZGT0741SIFtdGR5CX8sv8kMxVebohdHANC3p+DRJ0XKCHyV7Gy2GI84QciutnYt1Po4cml6Bwb2SG/SzSBo7dHkjTGBnh0Xy9klY6HhsUAMmRCIMM9oSzmUNSUW5AynXivKfFDje4PoZV9neqE0W22y4AP9ClIaxg33Ewmzc0mTvSxtInWc1og4wZE0/w1WMk8V2HE/wr9BbJde4nxJc9VXHIhJTRjBE2pP89TLryf7cgh9d27k2fXRhMD176rJISmA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZXhNhmeBsAMGLXv0m9TJS6bdySQwdDw1TxpIXOUF0+Q=;
 b=KfzFOcr1975JS0mL5jQPNw08VQ6rjNpY2Jcu81M3HaaX30IvyQJyNtHIERouQEQ0k7x/fh7BLFzCbCtmMWBDnmKe7fifkzjw/393CGhYFarYEG5IlH/6MLodTFXHj2tFMqtJiDEVS57HTQZJvvjsSb9nJ+bQLdEezt590SHXFmSFXUK6HH50P0m98QNfga4wB9YsdtIKyjYgMzSonxsA/3PrAC4f7v2InIuflwvMQ8YBh2PRqKPgzqNDRImefHWKLCO+Q+d+xF9HrUqEqCMc2ydEMK6G4zZXFWkwr6o4HtrXEk1oVcnaHyX0mXIJDljcRuHY4KLVKWuVaDIQPMC//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=ZXhNhmeBsAMGLXv0m9TJS6bdySQwdDw1TxpIXOUF0+Q=;
 b=HNVvmJHIKISmYyZejuoYnwXS55m7NBvgK9/ZRE4xnTagnne6aBBOynIlUBOsojNqs7ZeCMBp2cnHS6bkjS7ZYpBgdI5kEYbD4aay1CrCSJbI+irWig4YYrMIq1jsOruyfDqYTIgM8cQVCnRGijgg20+3Il+1mbue9uiaGfwiCD9R4XP5inDV6If4m0TuWX5BQ+jZVmJxdMLGRvFuk/jZBdO2ArCRV1onQTbx0VmSPuv9YTxYwQHhWmKV4XM1Lw+q52gsnrRm0qwsn3OTlFESqPf/Qwwa1o7fF8Vk7gw99UL/CXIXNpzPWi2utZZG8oO6r7UAuSo9qxJqSlyzzDwK7A==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH v3 11/23] xen/arm: vsmmuv3: Attach Stage-1 configuration to
 SMMUv3 hardware
Thread-Topic: [PATCH v3 11/23] xen/arm: vsmmuv3: Attach Stage-1 configuration
 to SMMUv3 hardware
Thread-Index: AQHcwLD7gqsLwrZ2MUavkcfqF1wIOg==
Date: Tue, 31 Mar 2026 01:52:08 +0000
Message-ID:
 <059c718f5407b845b84ec53cdc3ff021296d8bf9.1774918270.git.milan_djokic@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774918270.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|GVXPR03MB11035:EE_
x-ms-office365-filtering-correlation-id: 115bf563-7140-4672-4bb2-08de8ec81e67
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 RUWsTWnTZUz/nzgk1/393tMrVPXFz9AWfnI83F1BCUPZw1EKd1Wvay41nd8M7CpaL8Cox1QJU+F3Auf42o12FsFd4muVAPKVor/NpJggojaah8Xe74NBnAGg9hwAdECNZDnv/IhmRuqHN1SrbE8Lq+RYyotPEZCp4Ykv7DI6KZd09VHMkg1UtoQFoPXA5J4+u1jdcDJKywp0pp1MHJdFFkFZWbDD+ZQAIH3eRyVDsgCVBsyzT+eJA+tCCvgiwtq4mrY7cQNkUohdn2Zpnb94MGsJSn0gHSbC4UbLOoiaZPDgcAoni5zjenBcw7PYpGdpKDgAtlevnr2P2P5f5uGeRfHuTyU/mXvRdsyIGetHCN+K02gBYGUe7e+5IrD3I4+1aBhwBqwPLihqMIGUhA2VACau3n0RM+zzism40Pt/uV6hD7EDPbxkaHmVigbdKi69zKNgVCdCwz1jrSoUNcOW4f/QKObGbFr1SyMpoICRFaJnLxXDhGMKXxiWraeqNsszC3MocWXJ3GNwuBLpFz3yg2nf5t0c59tj3PM+YAxD+mq7/iVnuBdhY64YfJsSgVSbbJjYs6X6KRlau/G0KEyo7o7UUUdyd31GbXvhAIogiS8IrwyTAW4YyZrzmRQgs3swexmc56Py62tktU59EmB42QG/yhbaEOjZQNf2Ad6RgR4DDID85AnpuGKKfuKF+UfUIC1ybbzVbInoBr/kakZ49Ip87FQvbui50MmsBGogs72NzkabZxhtnUAcBEKr7wuqNoFu8PpzDBJBidaHgVHfBXx8rh6XWWlnVRwoQaITtQw=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?P4mYxPE12kqnYB/N5gXfhriyr552SrsOpZn69jnurGfM5hMB9AKvk4RY4D?=
 =?iso-8859-1?Q?/NTcWGvEPmC+S87h/AtGi5VHYGwi5dSP2k3QaKs6YT1EH762Ft8CXicYLC?=
 =?iso-8859-1?Q?ggLID5a0LBOLQhUYRzMBFUn9Fls+RWBDVGOaZ0POc9+YrFqv/SrC/+v5MC?=
 =?iso-8859-1?Q?OsZcyYt8pmPcN4yq33RDVHOnzVqeam4MR6T7XX2r9jE/0Yz6kGi4ZlgwUT?=
 =?iso-8859-1?Q?+YPtAQk3xFQKQHzZ626eLw8E4oFFraMp7sN4p5nxO8NHvke97C1iW473za?=
 =?iso-8859-1?Q?3NOBSSFR6bQlSrL0kR7t3gJoIDRKUhKD7kAsW55B8b4k38M8/Op4jnZAS2?=
 =?iso-8859-1?Q?g/uGPxi3oxAUYbu1VCep1Quyk2X9wOfEBOOJCt02IJbK7oEOemrzAIsxlC?=
 =?iso-8859-1?Q?XSbXtiIm/6FZ2DhviPG49VT++dTb8FyKJY3HwHhh+xBuMbAgqySW/7PXUZ?=
 =?iso-8859-1?Q?wOK7XCokF43AKBqe937XKE9hbSbPFE1gD1STbXeIXcIGSb/LOhj5G+YA2G?=
 =?iso-8859-1?Q?i6iOv4XQ0ygTA9GCoJKpRnk/RrzxIiZ7/2dsvzvapPBx2upw47RIcIiToW?=
 =?iso-8859-1?Q?ZQOsAYbAYD38Xdc+Valy7ecVzD2IjsTf+QFxULvSKWRc+4X6PQQgUsaYRb?=
 =?iso-8859-1?Q?KrzuktDBG+GYb3hJSwJBwLgdzMSDggyy5YqeL8MUDHwj/AGeDh9Xg4KMTI?=
 =?iso-8859-1?Q?eScMxRyy6jyPXpjTMsvtYysol8JI8+sZz06MMclTjZGV5W7IP8lFfCXOI0?=
 =?iso-8859-1?Q?nQ9K3sqEmE2TSx6XocVv0Gc4BWAmILibD0gwyAF+WdnYBvqvrWDyjiHcFJ?=
 =?iso-8859-1?Q?aHTmhiT2XG3A/7dudfyR2FyxjgDncAs36MxXV5/Neuj8Xz3qqv1erjgGpy?=
 =?iso-8859-1?Q?GLjKK36qR9gWE2ku1ddq7CNFWyxm1xrPDGBXhVIY512uQl/P1igGHbc3ue?=
 =?iso-8859-1?Q?PFjFX8/unUESL0FUyiA98k+pLbSzcKBOysr8tRmQG1L4+e/+xW+i+rj2bl?=
 =?iso-8859-1?Q?lbWp5SW5O5I5pMOaaTW9kr6gSLDUPlmXkfnPxQNn0bBZMHgTuKwe+m49B3?=
 =?iso-8859-1?Q?d1e42R7ZGibWAjQl/eRTQ4OdxQB9wvBFrXkPfF3f4+FOzKWBnEtSZUY0YT?=
 =?iso-8859-1?Q?0xc4z4PM5FIy3Cm50nm2oTLBsCk4KD6IMd81rjORVYxRUrrl4vA9d46MXe?=
 =?iso-8859-1?Q?wsp8RXkgmW7kQy75FV8Pge+8WFy33zDC4GMcitoIcs4VdoOPCmyPCIVa9x?=
 =?iso-8859-1?Q?MJ9oPk8AVggbMZtnAA6c5GkITAOXJDQJwTlTELYwhP3VXuWnjI4oiveuX9?=
 =?iso-8859-1?Q?jAZhSywIJ3FA8aIshyJbYf4WE8yuOPidlvo91iIo9Zq3OjsO+eNy1rLIID?=
 =?iso-8859-1?Q?jYDNWWoBEJ/PBExXUJ4Dq+mGMNPpDFb52sDFQCjGx/Rfx4WEs/53zQmCyC?=
 =?iso-8859-1?Q?1gz7+yK7Tqi8nShJkhU6BYe8lm4giQ7cyLasEyDvdvA20RFqMfpq3PevsQ?=
 =?iso-8859-1?Q?iQ5iu5T/wG3XkPhGIfjlTf+VVxGidQRPZ2i9zthtaSPbl01H/smeV6XQrc?=
 =?iso-8859-1?Q?ew7hZXXjsVG5t/lr+WbrjdBVKI+ttIsbPKOS71p9cMIeqgl25q2QKbEgBJ?=
 =?iso-8859-1?Q?hGlKGADoR329vmIPDE2BfSqof1Xyw0wovnMPhtVQi0SSVx6uvk9HakBCCS?=
 =?iso-8859-1?Q?EUDdoqo4r0ATkiHOTK5TfDLgrOwld+lO7xaxv9n9PgzAkyfbHyyYLVTvLx?=
 =?iso-8859-1?Q?FDAN1PRh1Y050Jo3lj100e2crmCFMMsSNnMaa9e9bRSytMubn6Za1XwKR6?=
 =?iso-8859-1?Q?8rGjElfUkDvBBvKq/hdJLNJsNIoQRP0=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 115bf563-7140-4672-4bb2-08de8ec81e67
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:52:08.7684
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: t0RBCsIdtSEbhG4GJD4O+/1Kc2EJmvBhwOQz4VoLvdSK5rR9DUjeDwwpNOCm9gXUdpUIM49WsOuxfgGmbAzVXQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB11035
X-purgate-ID: tlsNG-4011c0/1774921930-BFE9D900-8BB2AA39/0/0
X-purgate-type: clean
X-purgate-size: 7004

From: Rahul Singh <rahul.singh@arm.com>

Attach the Stage-1 configuration to device STE to support nested
translation for the guests.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/arch/arm/include/asm/iommu.h       |  7 +++
 xen/drivers/passthrough/arm/smmu-v3.c  | 79 ++++++++++++++++++++++++++
 xen/drivers/passthrough/arm/smmu-v3.h  |  1 +
 xen/drivers/passthrough/arm/vsmmu-v3.c | 18 ++++++
 xen/include/xen/iommu.h                |  6 ++
 5 files changed, 111 insertions(+)

diff --git a/xen/arch/arm/include/asm/iommu.h b/xen/arch/arm/include/asm/io=
mmu.h
index ad15477e24..56bc9314a7 100644
--- a/xen/arch/arm/include/asm/iommu.h
+++ b/xen/arch/arm/include/asm/iommu.h
@@ -20,6 +20,13 @@ struct arch_iommu
     void *priv;
 };
=20
+struct iommu_guest_config {
+    paddr_t     s1ctxptr;
+    uint8_t     config;
+    uint8_t     s1fmt;
+    uint8_t     s1cdmax;
+};
+
 const struct iommu_ops *iommu_get_ops(void);
 void iommu_set_ops(const struct iommu_ops *ops);
=20
diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthroug=
h/arm/smmu-v3.c
index 87612df21d..cf8f638a49 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -2810,6 +2810,37 @@ static struct arm_smmu_device *arm_smmu_get_by_dev(c=
onst struct device *dev)
 	return NULL;
 }
=20
+static struct iommu_domain *arm_smmu_get_domain_by_sid(struct domain *d,
+				u32 sid)
+{
+	int i;
+	unsigned long flags;
+	struct iommu_domain *io_domain;
+	struct arm_smmu_domain *smmu_domain;
+	struct arm_smmu_master *master;
+	struct arm_smmu_xen_domain *xen_domain =3D dom_iommu(d)->arch.priv;
+
+	/*
+	 * Loop through the &xen_domain->contexts to locate a context
+	 * assigned to this SMMU
+	 */
+	list_for_each_entry(io_domain, &xen_domain->contexts, list) {
+		smmu_domain =3D to_smmu_domain(io_domain);
+
+		spin_lock_irqsave(&smmu_domain->devices_lock, flags);
+		list_for_each_entry(master, &smmu_domain->devices, domain_head) {
+			for (i =3D 0; i < master->num_streams; i++) {
+				if (sid !=3D master->streams[i].id)
+					continue;
+				spin_unlock_irqrestore(&smmu_domain->devices_lock, flags);
+				return io_domain;
+			}
+		}
+		spin_unlock_irqrestore(&smmu_domain->devices_lock, flags);
+	}
+	return NULL;
+}
+
 static struct iommu_domain *arm_smmu_get_domain(struct domain *d,
 				struct device *dev)
 {
@@ -3022,6 +3053,53 @@ static void arm_smmu_iommu_xen_domain_teardown(struc=
t domain *d)
 	xfree(xen_domain);
 }
=20
+static int arm_smmu_attach_guest_config(struct domain *d, u32 sid,
+		struct iommu_guest_config *cfg)
+{
+	int ret =3D -EINVAL;
+	unsigned long flags;
+	struct arm_smmu_master *master;
+	struct arm_smmu_domain *smmu_domain;
+	struct arm_smmu_xen_domain *xen_domain =3D dom_iommu(d)->arch.priv;
+	struct iommu_domain *io_domain =3D arm_smmu_get_domain_by_sid(d, sid);
+
+	if (!io_domain)
+		return -ENODEV;
+
+	smmu_domain =3D to_smmu_domain(io_domain);
+
+	spin_lock(&xen_domain->lock);
+
+	switch (cfg->config) {
+	case ARM_SMMU_DOMAIN_ABORT:
+		smmu_domain->abort =3D true;
+		break;
+	case ARM_SMMU_DOMAIN_BYPASS:
+		smmu_domain->abort =3D false;
+		break;
+	case ARM_SMMU_DOMAIN_NESTED:
+		/* Enable Nested stage translation. */
+		smmu_domain->stage =3D ARM_SMMU_DOMAIN_NESTED;
+		smmu_domain->s1_cfg.s1ctxptr =3D cfg->s1ctxptr;
+		smmu_domain->s1_cfg.s1fmt =3D cfg->s1fmt;
+		smmu_domain->s1_cfg.s1cdmax =3D cfg->s1cdmax;
+		smmu_domain->abort =3D false;
+		break;
+	default:
+		goto out;
+	}
+
+	spin_lock_irqsave(&smmu_domain->devices_lock, flags);
+	list_for_each_entry(master, &smmu_domain->devices, domain_head)
+		arm_smmu_install_ste_for_dev(master);
+	spin_unlock_irqrestore(&smmu_domain->devices_lock, flags);
+
+	ret =3D 0;
+out:
+	spin_unlock(&xen_domain->lock);
+	return ret;
+}
+
 static const struct iommu_ops arm_smmu_iommu_ops =3D {
 	.page_sizes		=3D PAGE_SIZE_4K,
 	.init			=3D arm_smmu_iommu_xen_domain_init,
@@ -3034,6 +3112,7 @@ static const struct iommu_ops arm_smmu_iommu_ops =3D =
{
 	.unmap_page		=3D arm_iommu_unmap_page,
 	.dt_xlate		=3D arm_smmu_dt_xlate,
 	.add_device		=3D arm_smmu_add_device,
+	.attach_guest_config =3D arm_smmu_attach_guest_config
 };
=20
 static __init int arm_smmu_dt_init(struct dt_device_node *dev,
diff --git a/xen/drivers/passthrough/arm/smmu-v3.h b/xen/drivers/passthroug=
h/arm/smmu-v3.h
index fab4fd5a26..df3b7ec1b5 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.h
+++ b/xen/drivers/passthrough/arm/smmu-v3.h
@@ -398,6 +398,7 @@ enum arm_smmu_domain_stage {
 	ARM_SMMU_DOMAIN_S2,
 	ARM_SMMU_DOMAIN_NESTED,
 	ARM_SMMU_DOMAIN_BYPASS,
+	ARM_SMMU_DOMAIN_ABORT,
 };
=20
 /* Xen specific code. */
diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index 39ed4dc577..6d3636b18b 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -224,8 +224,11 @@ static int arm_vsmmu_handle_cfgi_ste(struct virt_smmu =
*smmu, uint64_t *cmdptr)
 {
     int ret;
     uint64_t ste[STRTAB_STE_DWORDS];
+    struct domain *d =3D smmu->d;
+    struct domain_iommu *hd =3D dom_iommu(d);
     struct arm_vsmmu_s1_trans_cfg s1_cfg =3D {0};
     uint32_t sid =3D smmu_cmd_get_sid(cmdptr[0]);
+    struct iommu_guest_config guest_cfg =3D {0};
=20
     ret =3D arm_vsmmu_find_ste(smmu, sid, ste);
     if ( ret )
@@ -235,6 +238,21 @@ static int arm_vsmmu_handle_cfgi_ste(struct virt_smmu =
*smmu, uint64_t *cmdptr)
     if ( ret )
         return (ret =3D=3D -EAGAIN ) ? 0 : ret;
=20
+    guest_cfg.s1ctxptr =3D s1_cfg.s1ctxptr;
+    guest_cfg.s1fmt =3D s1_cfg.s1fmt;
+    guest_cfg.s1cdmax =3D s1_cfg.s1cdmax;
+
+    if ( s1_cfg.bypassed )
+        guest_cfg.config =3D ARM_SMMU_DOMAIN_BYPASS;
+    else if ( s1_cfg.aborted )
+        guest_cfg.config =3D ARM_SMMU_DOMAIN_ABORT;
+    else
+        guest_cfg.config =3D ARM_SMMU_DOMAIN_NESTED;
+
+    ret =3D hd->platform_ops->attach_guest_config(d, sid, &guest_cfg);
+    if ( ret )
+        return ret;
+
     return 0;
 }
=20
diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
index 37c4a1dc82..19e59095c3 100644
--- a/xen/include/xen/iommu.h
+++ b/xen/include/xen/iommu.h
@@ -312,6 +312,7 @@ static inline int iommu_add_dt_pci_sideband_ids(struct =
pci_dev *pdev)
 #endif /* HAS_DEVICE_TREE_DISCOVERY */
=20
 struct page_info;
+struct iommu_guest_config;
=20
 /*
  * Any non-zero value returned from callbacks of this type will cause the
@@ -387,6 +388,11 @@ struct iommu_ops {
 #endif
     /* Inhibit all interrupt generation, to be used at shutdown. */
     void (*quiesce)(void);
+
+#ifdef CONFIG_ARM
+    int (*attach_guest_config)(struct domain *d, u32 sid,
+                               struct iommu_guest_config *cfg);
+#endif
 };
=20
 /*
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268240.1557621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OHA-0001tr-2I; Tue, 31 Mar 2026 01:52:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268240.1557621; Tue, 31 Mar 2026 01: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 1w7OH9-0001qk-I7; Tue, 31 Mar 2026 01:52:15 +0000
Received: by outflank-mailman (input) for mailman id 1268240;
 Tue, 31 Mar 2026 01:52:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OH6-0001BV-98
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:52:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OH5-00G5Gh-Kt
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:52:11 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28c1-2eae-0a2a0a5409dd-0a2a4501906e-20
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:11 +0200
Received: from [52.101.69.92]
 (helo=AM0PR83CU005.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28cb-6400-0a2a45010019-3465455c2a2c-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:11 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by GVXPR03MB11035.eurprd03.prod.outlook.com (2603:10a6:150:287::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:52:09 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01:52:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UD2VyR2vsNvq14AKn80qkDi+Z+Aynfkl7tXyro/6zyMOGhX5/0s5bdQ+kpyDjTCkHY786rRrpe+AogBLASh62OrBajxIeyuBjbxnwaNrTuL2RS2ALBQaxAG3SBHobAhY5DJxgePYiOBw26Q1xxR0oLtBnhvFlTPoO61NA/C4HN8lLAZL7bdpZYOAsGQOGNE7u2LkrR6ampc7xNyltJNDuK+q+YGEll7m9NdTUZnHIga6uYCp9GUUBisIGkIDzI7DCDB/wPQ+ik6uwx4+u4j9ifReHeJEa16euLkZQgpPArNzDOL/64eAHWlyoEmYSTsj9WgIlecC7n2NLcOBNlJ+7Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Mw4q6XBgRnsKY1XYisbZ29/1x6QfAmZRONL0vS18R8c=;
 b=zEdR6Zcckh/D6hTVL9aGh9SfJlNJyEOSc9IaqQPWAe4yH3yD3sP+Ors/ntbeF+oeJUOhF7DDwci+6CofqgYdTG35Lp31V9/KZFzcWYVJ+CH8udhrezCrGU4ZZshT/870PZDJok/Q/tPIeG51jkzVdk/ncdaTVrgtU/UVCJzXcTLJonZkTY5/11X1MBIBcurvDq+xmdAvJozL7xoHTgdowccbdl5ww0h+vil40sgbV5+TKUwAmbtOIFC6rMvP46LEP77FCIz15f5FmaRHd0S8vQdIdNnh+6+92kpfUae910W7Brxi0rPz9Ngk1IO9HRIOHX/F6se2sMbf1zVL8k1JxQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Mw4q6XBgRnsKY1XYisbZ29/1x6QfAmZRONL0vS18R8c=;
 b=BIHUK4dWh1wDLvywfUYcd2E14HUdi7dTgR0HEPB15DmOzLIpeXqZLRGJuuatQ5/GtGB+Q92D7+bEHNee2AidC3tAxwJYRDJjUPgmdSECiWJvaeuH10MamSulNzRa8UqF9wzmLTsIUi8FgWgxaEml5SHfheUEJE34QN7r8kSzexmTTqykH7nihqGjGquMDSo1kosg7pLM+4zdvuO0y0G2rIeWjpVuijhZoiBIQ32dONrfrh7LmA2PTbwCvD2ahO0nAYgDQxcxCue8pt1kK6F3PYwYlsTMx6Tq2XreIZxfPmBXdg7HU/V35HGDWF9IZROj9PnDqMdFhONebL4ijzGFrQ==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH v3 12/23] xen/arm: vsmmuv3: Add support for event queue and
 global error
Thread-Topic: [PATCH v3 12/23] xen/arm: vsmmuv3: Add support for event queue
 and global error
Thread-Index: AQHcwLD8TbB0vBk5KkOu1RGZU75M7A==
Date: Tue, 31 Mar 2026 01:52:09 +0000
Message-ID:
 <b3c49d35b986dff560bba8a51f85fb6b4a57c0c5.1774918270.git.milan_djokic@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774918270.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|GVXPR03MB11035:EE_
x-ms-office365-filtering-correlation-id: 8bd6f12a-a087-4993-58cc-08de8ec81ef7
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 hPyzN5ucbLC2tr0Krum9+yeD0UavZGVALsJ9D3E4UQnukgfWa4DZfoCFtoWiGV/0X3GDHnc3Nix6+U+YVbWxn8ewg8IpSq9LZ79QLX4ekeTgVvYDMcA5vHhqeRCuS0zaQfieygpOBrI9hjpx6R94++L4Wruz46yegNpEKbpHXA5Ogs0YgmX8Slzk0Dyv0q5JTwvC2J9zhhKW4xVOWUj6vJpvGhyxUHDKWOB0YvQLYg5XbWaSpKDTieZmd/I6Xb0B1rZge8fMq2kACbeyJgIL3chBXGhL5xIHvkzQXFcWwAOK76Q9WMS3VxZIVpr/p6p9q7zuw6GCtOQBYuOzKn/Uifq+59g/4kJfYTvburW/VKatdhqqUknr780mN2ryF5shxN0pRrk6b9bNJghLM9Yrdj6Zpk7FTN6iR6UEfdAN1mmNLjfbOs1oGZyvIxurwoJvxo8bTdDiDLpDz+M1X9ZLUluxjqEKeuNUn/aM7eFxPw4bOiVQBFpGWB4+77x70zT6AvTIPgs5w7Yu09zcY63dkNrjj11HSn7uGVgRk3lD7PKqD0ojM4/ZLOIYib3e+/o1eoZ0DMOiRsVOsTv+ZBVAvEaYi0PGuZx1akXJdY9j9pYX9LlS4XuzXp7NmCxkWmQTX31WR0NlLNYJFgDFf9D9rvmh0OzWoYHEKrk7nFPNQ51ePLu3sHxNhYaJBe4rCbdCx34eLuHrvXtdyjkurEoyuUNyuIaph6ZtDzi1jMhuzSXHlWa1eAeRDfu9MEFAC5S31+/QUgoK3Pn/7fM0qeDH8e84uv4Z+tCQQdK7Zx0J+0c=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Zy2wrI86kIjN4JGVA2L+HJfv8rW6n3gqLIDQxRFMBfgIZCDx9Mi0Q7ZgKp?=
 =?iso-8859-1?Q?PKFngzTqDtSbScCJU2zrLR/5QJZqKuj6jSTe8ajlxBftggqiLcX0f2XUtM?=
 =?iso-8859-1?Q?/6Xou2Og6r5pfWDItNiawbnCeT0N5imZyEwz9TLZJ0WP6IdOp5aeqdzZLF?=
 =?iso-8859-1?Q?on1MGGrnEJ7g4VHQ3ZFmAYp269Yz+u4fm3H/0DRwmBZ3v/yNG84PaJoV7v?=
 =?iso-8859-1?Q?GzFgNP43yFFxqoNWfgv1iRjdBXtaookjM8Ao4e7PERKEi7BU36q2kh99C6?=
 =?iso-8859-1?Q?sQLjiv3p+fYMH7OQXWnU3GC947yJ2TbcNRrdBT9R0W7wg1lMRPpZHG7BLQ?=
 =?iso-8859-1?Q?EMCII+/Q5Tr0D+Tlk/ADvmlCuQwQqeybgMbzUPi5lGgfHznS1hIgzUKwOq?=
 =?iso-8859-1?Q?dJL2X9lWc0JrntsBoVEBaTIB/6JHDr3LOQWrm0CmjYl+rPXzXAKIi3PlkK?=
 =?iso-8859-1?Q?PlsJNojgaZnvaifgGGyckgUuraUpnXI9mW4ixzjKNAL77lyvpxECGy1Oto?=
 =?iso-8859-1?Q?ioutn4krFd0HSizx/PR0B16Iwi0pxApn4sTXLFUsS+FPvATfm2lThEju/Y?=
 =?iso-8859-1?Q?4zfW1QJFd4qw9GjBtNYjlLlDzzwA5EgVQhz1eAax8xo09e2kxKG5vhs9mP?=
 =?iso-8859-1?Q?BlVFw84lPyDMDFYnddO6sM/+33SLQfjfTp1hhTks9wY/dt/Eu/uk8EZPQU?=
 =?iso-8859-1?Q?dK/UJ5LZNd622TJOruKF3y52llB7cbTVEClkgSmDPXWGdhvSkB2x6onAe/?=
 =?iso-8859-1?Q?4MzQjE8OkfJ6eYy6V8vy0a4nUqrt65tC3MmjmaDZJ4cnOgN6+M/fh/BC0n?=
 =?iso-8859-1?Q?wTosDyzIdAzucfuqCDWFzt2rpU32BACKXZSej+k8EN4wJkwpif8+cWsDkW?=
 =?iso-8859-1?Q?2YQa1SCtUiUEJMB9R09/PS5URWvxeYfUeCPefEkX0ZzOygayQFvbQCOnrt?=
 =?iso-8859-1?Q?Xp9DDvGUk0A1hdaUy+llm9azI76+2J1Ox86Of9V7LKAZjcWTNtSbR8EvrY?=
 =?iso-8859-1?Q?X8dTYFcgUCKIpotx6n8JH/wfxq8DgUKhBr9rE1tJM0MD8kJMwqYszeHD9n?=
 =?iso-8859-1?Q?awj7szAlmS2KP9xEBcWCWJEU7sCeiqti5F7BcU8NWqpGAXW8QLloYtOcQ2?=
 =?iso-8859-1?Q?EP+cNz8X89ooksGPrdRHT12hwL+3eqrSrdjFRZhRpmcc3O0UByIaQ23h5l?=
 =?iso-8859-1?Q?ueWaQfbi/bj68raSlAHF4KJf61OGfV44Y6W/xwiPqBMZbIEtds5thxWsfQ?=
 =?iso-8859-1?Q?w6MLOYD78Kx5/c3Jc97MKp5Rz1xOqRQBJqL1bm5Hl5hvOV2rEHbILg4Nik?=
 =?iso-8859-1?Q?g1n8tEIOYpbTLqKiqdmiVdJ75ghpfH3ll1eewacORM7moH/j7dptKw+mqS?=
 =?iso-8859-1?Q?7iqgLncdQRhHLtcTi0fxmj+QCUlqdMBior7aHrCky9FwIETQJYrqLHFFgv?=
 =?iso-8859-1?Q?ms28xciNrXKAuI1UK3v0050uDw8wojkC6lZHpabeloEyBAivhr2iWe6K1c?=
 =?iso-8859-1?Q?gap43gccmCIT04ysyOpaDdi3B6Pfl5yidk1e0B4g/UcNfXfxhDnBHv9PdZ?=
 =?iso-8859-1?Q?ea1U00TeicFyGUQ4mQrtyFOzMWGVgDJM8Y7vtWNUJDCwPtfZw/08hd0oY+?=
 =?iso-8859-1?Q?oOZH6vHgulC7/w2vfmhMeX6ktIHIX3Ym1Ykqu2KnRZCGBbmrQD4u+Dy/dW?=
 =?iso-8859-1?Q?Y1vQtYL+YTKKPq+qy3/3UOEaC283Yh0tMQ6f/spBPEe49xJRzjJnU8naXv?=
 =?iso-8859-1?Q?3aHk1Ipror3k//p71Od0PvsJ1TZCn/66nSOklwfd3DpghYJwx33LtC2/IB?=
 =?iso-8859-1?Q?otI8Q1w/0hrbPXvTmRlRQR9D4y5m6HA=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8bd6f12a-a087-4993-58cc-08de8ec81ef7
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:52:09.6872
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Ml2WQ9m1kPeCKiBWaCxnax2XlVIgOeNLvY3G/ZGM7la+Ja5iUcDrF+IiaqERWjyndqdzGDQhhK/xoMVfT1crSQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB11035
X-purgate-ID: tlsNG-d62444/1774921931-8E0F9DF3-234B7142/0/0
X-purgate-type: clean
X-purgate-size: 11088

From: Rahul Singh <rahul.singh@arm.com>

Event queue is used to send the events to guest when there is an events/
faults. Add support for event queue to send events to guest.

Global error in SMMUv3 hw will be updated in smmu_gerror and
smmu_gerrorn register. Add support for global error registers to send
global error to guest.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/drivers/passthrough/arm/smmu-v3.h  |  20 +++
 xen/drivers/passthrough/arm/vsmmu-v3.c | 163 ++++++++++++++++++++++++-
 xen/include/public/arch-arm.h          |   5 +-
 3 files changed, 183 insertions(+), 5 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.h b/xen/drivers/passthroug=
h/arm/smmu-v3.h
index df3b7ec1b5..8d3e1877aa 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.h
+++ b/xen/drivers/passthrough/arm/smmu-v3.h
@@ -354,6 +354,26 @@
=20
 #define EVTQ_0_ID			GENMASK_ULL(7, 0)
=20
+#define EVT_ID_BAD_STREAMID		0x02
+#define EVT_ID_BAD_STE		    	0x04
+#define EVT_ID_TRANSLATION_FAULT	0x10
+#define EVT_ID_ADDR_SIZE_FAULT		0x11
+#define EVT_ID_ACCESS_FAULT		0x12
+#define EVT_ID_PERMISSION_FAULT		0x13
+
+#define EVTQ_0_SSV			(1UL << 11)
+#define EVTQ_0_SSID			GENMASK_ULL(31, 12)
+#define EVTQ_0_SID			GENMASK_ULL(63, 32)
+#define EVTQ_1_STAG			GENMASK_ULL(15, 0)
+#define EVTQ_1_STALL			(1UL << 31)
+#define EVTQ_1_PnU			(1UL << 33)
+#define EVTQ_1_InD			(1UL << 34)
+#define EVTQ_1_RnW			(1UL << 35)
+#define EVTQ_1_S2			(1UL << 39)
+#define EVTQ_1_CLASS			GENMASK_ULL(41, 40)
+#define EVTQ_1_TT_READ			(1UL << 44)
+#define EVTQ_2_ADDR			GENMASK_ULL(63, 0)
+#define EVTQ_3_IPA			GENMASK_ULL(51, 12)
 /* PRI queue */
 #define PRIQ_ENT_SZ_SHIFT		4
 #define PRIQ_ENT_DWORDS			((1 << PRIQ_ENT_SZ_SHIFT) >> 3)
diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index 6d3636b18b..7a6c18df53 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -44,6 +44,7 @@ extern const struct viommu_desc __read_mostly *cur_viommu=
;
=20
 /* Helper Macros */
 #define smmu_get_cmdq_enabled(x)    FIELD_GET(CR0_CMDQEN, x)
+#define smmu_get_evtq_enabled(x)    FIELD_GET(CR0_EVTQEN, x)
 #define smmu_cmd_get_command(x)     FIELD_GET(CMDQ_0_OP, x)
 #define smmu_cmd_get_sid(x)         FIELD_GET(CMDQ_PREFETCH_0_SID, x)
 #define smmu_get_ste_s1cdmax(x)     FIELD_GET(STRTAB_STE_0_S1CDMAX, x)
@@ -52,6 +53,35 @@ extern const struct viommu_desc __read_mostly *cur_viomm=
u;
 #define smmu_get_ste_s1ctxptr(x)    FIELD_PREP(STRTAB_STE_0_S1CTXPTR_MASK,=
 \
                                     FIELD_GET(STRTAB_STE_0_S1CTXPTR_MASK, =
x))
=20
+/* event queue entry */
+struct arm_smmu_evtq_ent {
+    /* Common fields */
+    uint8_t     opcode;
+    uint32_t    sid;
+
+    /* Event-specific fields */
+    union {
+        struct {
+            uint32_t ssid;
+            bool ssv;
+        } c_bad_ste_streamid;
+
+        struct {
+            bool stall;
+            uint16_t stag;
+            uint32_t ssid;
+            bool ssv;
+            bool s2;
+            uint64_t addr;
+            bool rnw;
+            bool pnu;
+            bool ind;
+            uint8_t class;
+            uint64_t addr2;
+        } f_translation;
+    };
+};
+
 /* stage-1 translation configuration */
 struct arm_vsmmu_s1_trans_cfg {
     paddr_t s1ctxptr;
@@ -82,6 +112,7 @@ struct virt_smmu {
     uint32_t    strtab_base_cfg;
     uint64_t    strtab_base;
     uint32_t    irq_ctrl;
+    uint32_t    virq;
     uint64_t    gerror_irq_cfg0;
     uint64_t    evtq_irq_cfg0;
     struct      arm_vsmmu_queue evtq, cmdq;
@@ -89,6 +120,12 @@ struct virt_smmu {
 };
=20
 /* Queue manipulation functions */
+static bool queue_full(struct arm_vsmmu_queue *q)
+{
+    return Q_IDX(q, q->prod) =3D=3D Q_IDX(q, q->cons) &&
+           Q_WRP(q, q->prod) !=3D Q_WRP(q, q->cons);
+}
+
 static bool queue_empty(struct arm_vsmmu_queue *q)
 {
     return Q_IDX(q, q->prod) =3D=3D Q_IDX(q, q->cons) &&
@@ -101,11 +138,105 @@ static void queue_inc_cons(struct arm_vsmmu_queue *q=
)
     q->cons =3D Q_OVF(q->cons) | Q_WRP(q, cons) | Q_IDX(q, cons);
 }
=20
+static void queue_inc_prod(struct arm_vsmmu_queue *q)
+{
+    u32 prod =3D (Q_WRP(q, q->prod) | Q_IDX(q, q->prod)) + 1;
+    q->prod =3D Q_OVF(q->prod) | Q_WRP(q, prod) | Q_IDX(q, prod);
+}
+
 static void dump_smmu_command(uint64_t *command)
 {
     gdprintk(XENLOG_ERR, "cmd 0x%02llx: %016lx %016lx\n",
              smmu_cmd_get_command(command[0]), command[0], command[1]);
 }
+
+static void arm_vsmmu_inject_irq(struct virt_smmu *smmu, bool is_gerror,
+                                uint32_t gerror_err)
+{
+    uint32_t new_gerrors, pending;
+
+    if ( is_gerror )
+    {
+        /* trigger global error irq to guest */
+        pending =3D smmu->gerror ^ smmu->gerrorn;
+        new_gerrors =3D ~pending & gerror_err;
+
+        /* only toggle non pending errors */
+        if (!new_gerrors)
+            return;
+
+        smmu->gerror ^=3D new_gerrors;
+    }
+
+    vgic_inject_irq(smmu->d, NULL, smmu->virq, true);
+}
+
+static int arm_vsmmu_write_evtq(struct virt_smmu *smmu, uint64_t *evt)
+{
+    struct arm_vsmmu_queue *q =3D &smmu->evtq;
+    struct domain *d =3D smmu->d;
+    paddr_t addr;
+    int ret;
+
+    if ( !smmu_get_evtq_enabled(smmu->cr[0]) )
+        return -EINVAL;
+
+    if ( queue_full(q) )
+        return -EINVAL;
+
+    addr =3D Q_PROD_ENT(q);
+    ret =3D access_guest_memory_by_gpa(d, addr, evt,
+                                     sizeof(*evt) * EVTQ_ENT_DWORDS, true)=
;
+    if ( ret )
+        return ret;
+
+    queue_inc_prod(q);
+
+    /* trigger eventq irq to guest */
+    if ( !queue_empty(q) )
+        arm_vsmmu_inject_irq(smmu, false, 0);
+
+    return 0;
+}
+
+void arm_vsmmu_send_event(struct virt_smmu *smmu,
+                          struct arm_smmu_evtq_ent *ent)
+{
+    uint64_t evt[EVTQ_ENT_DWORDS];
+    int ret;
+
+    memset(evt, 0, 1 << EVTQ_ENT_SZ_SHIFT);
+
+    if ( !smmu_get_evtq_enabled(smmu->cr[0]) )
+        return;
+
+    evt[0] |=3D FIELD_PREP(EVTQ_0_ID, ent->opcode);
+    evt[0] |=3D FIELD_PREP(EVTQ_0_SID, ent->sid);
+
+    switch (ent->opcode)
+    {
+    case EVT_ID_BAD_STREAMID:
+    case EVT_ID_BAD_STE:
+        evt[0] |=3D FIELD_PREP(EVTQ_0_SSID, ent->c_bad_ste_streamid.ssid);
+        evt[0] |=3D FIELD_PREP(EVTQ_0_SSV, ent->c_bad_ste_streamid.ssv);
+        break;
+    case EVT_ID_TRANSLATION_FAULT:
+    case EVT_ID_ADDR_SIZE_FAULT:
+    case EVT_ID_ACCESS_FAULT:
+    case EVT_ID_PERMISSION_FAULT:
+        break;
+    default:
+        gdprintk(XENLOG_WARNING, "vSMMUv3: event opcode is bad\n");
+        break;
+    }
+
+    ret =3D arm_vsmmu_write_evtq(smmu, evt);
+    if ( ret )
+        arm_vsmmu_inject_irq(smmu, true, GERROR_EVTQ_ABT_ERR);
+
+    return;
+}
+
 static int arm_vsmmu_find_ste(struct virt_smmu *smmu, uint32_t sid,
                               uint64_t *ste)
 {
@@ -114,11 +245,22 @@ static int arm_vsmmu_find_ste(struct virt_smmu *smmu,=
 uint32_t sid,
     uint32_t log2size;
     int strtab_size_shift;
     int ret;
+    struct arm_smmu_evtq_ent ent =3D {
+        .sid =3D sid,
+        .c_bad_ste_streamid =3D {
+            .ssid =3D 0,
+            .ssv =3D false,
+        },
+    };
=20
     log2size =3D FIELD_GET(STRTAB_BASE_CFG_LOG2SIZE, smmu->strtab_base_cfg=
);
=20
     if ( sid >=3D (1 << MIN(log2size, SMMU_IDR1_SIDSIZE)) )
+    {
+        ent.opcode =3D EVT_ID_BAD_STE;
+        arm_vsmmu_send_event(smmu, &ent);
         return -EINVAL;
+    }
=20
     if ( smmu->features & STRTAB_BASE_CFG_FMT_2LVL )
     {
@@ -156,6 +298,8 @@ static int arm_vsmmu_find_ste(struct virt_smmu *smmu, u=
int32_t sid,
         {
             gdprintk(XENLOG_ERR, "idx=3D%d > max_l2_ste=3D%d\n",
                      idx, max_l2_ste);
+            ent.opcode =3D EVT_ID_BAD_STREAMID;
+            arm_vsmmu_send_event(smmu, &ent);
             return -EINVAL;
         }
         addr =3D l2ptr + idx * sizeof(*ste) * STRTAB_STE_DWORDS;
@@ -183,6 +327,14 @@ static int arm_vsmmu_decode_ste(struct virt_smmu *smmu=
, uint32_t sid,
                                 uint64_t *ste)
 {
     uint64_t val =3D ste[0];
+    struct arm_smmu_evtq_ent ent =3D {
+        .opcode =3D EVT_ID_BAD_STE,
+        .sid =3D sid,
+        .c_bad_ste_streamid =3D {
+            .ssid =3D 0,
+            .ssv =3D false,
+        },
+    };
=20
     if ( !(val & STRTAB_STE_0_V) )
         return -EAGAIN;
@@ -217,6 +369,7 @@ static int arm_vsmmu_decode_ste(struct virt_smmu *smmu,=
 uint32_t sid,
     return 0;
=20
 bad_ste:
+    arm_vsmmu_send_event(smmu, &ent);
     return -EINVAL;
 }
=20
@@ -577,7 +730,8 @@ static const struct mmio_handler_ops vsmmuv3_mmio_handl=
er =3D {
     .write =3D vsmmuv3_mmio_write,
 };
=20
-static int vsmmuv3_init_single(struct domain *d, paddr_t addr, paddr_t siz=
e)
+static int vsmmuv3_init_single(struct domain *d, paddr_t addr,
+                               paddr_t size, uint32_t virq)
 {
     struct virt_smmu *smmu;
=20
@@ -586,6 +740,7 @@ static int vsmmuv3_init_single(struct domain *d, paddr_=
t addr, paddr_t size)
         return -ENOMEM;
=20
     smmu->d =3D d;
+    smmu->virq =3D virq;
     smmu->cmdq.q_base =3D FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_CMDQS);
     smmu->cmdq.ent_size =3D CMDQ_ENT_DWORDS * DWORDS_BYTES;
     smmu->evtq.q_base =3D FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_EVTQS);
@@ -612,14 +767,16 @@ int domain_vsmmuv3_init(struct domain *d)
=20
         list_for_each_entry(hw_iommu, &host_iommu_list, entry)
         {
-            ret =3D vsmmuv3_init_single(d, hw_iommu->addr, hw_iommu->size)=
;
+            ret =3D vsmmuv3_init_single(d, hw_iommu->addr, hw_iommu->size,
+                                      hw_iommu->irq);
             if ( ret )
                 return ret;
         }
     }
     else
     {
-        ret =3D vsmmuv3_init_single(d, GUEST_VSMMUV3_BASE, GUEST_VSMMUV3_S=
IZE);
+        ret =3D vsmmuv3_init_single(d, GUEST_VSMMUV3_BASE, GUEST_VSMMUV3_S=
IZE,
+                                  GUEST_VSMMU_SPI);
         if ( ret )
             return ret;
     }
diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
index ebac02ed63..1b606e20fd 100644
--- a/xen/include/public/arch-arm.h
+++ b/xen/include/public/arch-arm.h
@@ -527,9 +527,10 @@ typedef uint64_t xen_callback_t;
 #define GUEST_EVTCHN_PPI        31
=20
 #define GUEST_VPL011_SPI        32
+#define GUEST_VSMMU_SPI         33
=20
-#define GUEST_VIRTIO_MMIO_SPI_FIRST   33
-#define GUEST_VIRTIO_MMIO_SPI_LAST    43
+#define GUEST_VIRTIO_MMIO_SPI_FIRST   34
+#define GUEST_VIRTIO_MMIO_SPI_LAST    44
=20
 /*
  * SGI is the preferred delivery mechanism of FF-A pending notifications o=
r
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268241.1557627 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OHB-0002B4-IT; Tue, 31 Mar 2026 01:52:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268241.1557627; Tue, 31 Mar 2026 01:52:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OHA-00024f-Go; Tue, 31 Mar 2026 01:52:16 +0000
Received: by outflank-mailman (input) for mailman id 1268241;
 Tue, 31 Mar 2026 01:52:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OH6-0001L0-Sm
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:52:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OH6-00Cy7w-8D
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:52:12 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28a5-bab6-0a2a0a5309dd-0a2a4507d1a6-18
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:12 +0200
Received: from [52.101.69.126]
 (helo=AM0PR83CU005.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28cb-fd74-0a2a45070019-3465457e723b-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:12 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by GVXPR03MB11035.eurprd03.prod.outlook.com (2603:10a6:150:287::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:52:10 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01:52:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=myNmealWzdY5mI6h3ftSFJqQr3mMg3XCyKORDutnD5bl7Jmg+V77pOgbnLrQW0GEmltIOXXxmujOCNdz92HcwQ89rQHnfW612toeeZRVbRgBE5KPQ2vqMOXugBdrkIhunL21WvQhxYPjOQ1qdO+DGhaIcN3KFDgSR1h211BBbbvdff+NYH4JYDn/CBIRprp93LGgAi2OuxrnyBuWMD41ei2kq/U799gHYv9ugcVXIt7f5/wFCYEqMJLmuq0/caDxAhMDIblEBQhpTSX/cE1x4R3noxrLVKZudqAWi/3Fy553Pv91ONykhhe7vrz3xyfhBZMk4aAKJAgGeOVn/d29ag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7caqtP6kUCQ2bX8Z5xVRfCBcUDpyNyH303mwvuLmP5Q=;
 b=y0Q+lT5pHpI6gRl2oxqmzw6xlVJIMw51IOcXe3LHQqrk65WDNCIpBMAgr+RxajAXYKGhC8/SZ8xlNVLC87sUqqyFL/gP7vFxeRPGIN/PuQnv9MwsHn8EVX+GDzoRdTY61OMx3P1x9hf8ITsbSK7hKwFc71g54+dOVsSjqDsgfk5NioFopkJMpFFeZWo60FgQ0ndZDQ/Oa1ycsaUN/vrtbMR1HmGm1T+PJHaAbvGBJ0XKjOIYmSGxH0gkE4Flt++LJHQhzOHi9RIzsmDTNoExLjRQoJoybacmS/QfMCatURCR6mOwkJPQLq7T8jfeOa052gNVLuTa1I6xMqNb+asqwg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7caqtP6kUCQ2bX8Z5xVRfCBcUDpyNyH303mwvuLmP5Q=;
 b=iLnbl93TjtxV1zfRD/Qy52mOHbD4Tt4x0MXjk9h0KjorcsErzNtJfjP7to9W4H3YfbxrEe52naqweSABgdUQ9hbR1cZL/t6r0+wqEnF041CEGCNmAkGis7Eaq+Ndcrp1H0WV6LUQCcSOHZpwJG+PLQgNHnNwIBPUr7qG5lYZaTLyUHK/w1WaHUbSDTv4sYyxgaVGZlRob8Dd/GcRV5SStTRoPoOE3I/ktKSg1GXJxzcsuMMxm6MZwGWR7+S95UQ4jJY0C1IPYnWzqn5wLEwZ0tzNy/fjra4I1ru0v8vwheq7SKeK44v/b4vs7AVKXhAEkt+KWb1d7Vi4I9sG23JKLQ==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH v3 13/23] xen/arm: vsmmuv3: Add "iommus" property node for
 dom0 devices
Thread-Topic: [PATCH v3 13/23] xen/arm: vsmmuv3: Add "iommus" property node
 for dom0 devices
Thread-Index: AQHcwLD8+A6Q7QUy70+CNogGnruNBQ==
Date: Tue, 31 Mar 2026 01:52:10 +0000
Message-ID:
 <7911f13c4fa495fb330eb611e41465f8897fa87f.1774918270.git.milan_djokic@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774918270.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|GVXPR03MB11035:EE_
x-ms-office365-filtering-correlation-id: fa981a2f-88d0-4be3-3183-08de8ec81f74
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 aAkydTWkxACDNWruRqNre7eCBDKlYz7WENjRaO1/aSfdN+sVN0omvWJekpo9xOo6Iwy/ckaZhdQVUAGifUpq783F7SKCdULsIMgCqgC24gstJCEaaJC3dgPGsOgdUO2OmHmUyCTFMebwpzJiE3C98e0vE6dFQ5y7mVDPlvRgVIc+Xf7eCPoxoCzvu4+ZY4HzzjPAXYyP0eg/YY8M+gZNaHxxDv4EfgxtCtTwZWjKurrl9hQn/y0FoXglckmQrdS7mnSkKTQLBAkE/PjXDqGoVYu+ipSu0ogH5BRPoycrX8xd6mosjO+UL2ajRYRtQbtuJt7t0Sr+0VDk59fSr6JboVBQfsvqN2Mcio3rZMptcsbG0SwbQtLIO9+31dyE60Es4r49AidoUSS+Fbg6D3qzM0cR8mBx+geDLThwnoKXRR5tF8ePmUvVAaLjgvQ85QX8tX2BShrkvIZpKtKsc4AcJzihOnBle+Kdou/ixHEd4MWDv5yhrpT9A54MGmMpJrvC/+tpxqFLBTCUBpOBiBf6A2n0dQ6Rw9pYmhLRdxoqJW4pR0K8bkY5OouU13m6EtSr5DFLn0Rx2zkMvqDLiu+t3BG3LNUHSRzZrwfx09s9R5bKOEfj4LcI1v07Pf90F+LLxEBIamog6PkQAwISNpG83rkB//xWVjAjyOjSH6JrgY21J7FisGapWkKsIrpSeQpSSaNMBqqhBQ/HE8ibsNUVn78uLEct8+7J8xWYoS5txHts0H1ZbWLDyr7LZ20N1jlZPETErsNBBR7OwwMM2aGaUq4aFpy7llbL40KR8SQ7FjM=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?cWAW/piGozkzgOpznsOEiZXp8l2aDGmDk9EiwCGweX0eOzh1FP5u5tU3YW?=
 =?iso-8859-1?Q?Yty8t8KOIgfvA81CmqLTZlRT76fsa7d5Fx6JJKVB7dXSZh58N6goaEbgMz?=
 =?iso-8859-1?Q?T7sEnlriCNITD63U5d9eVzKI1W4BwrEhI2goFOmBfSl4Zbs2ghaoLmy5gx?=
 =?iso-8859-1?Q?B27DGZq8v3ZtyL81jBfGO0Q7jzmGec89z2n8VsFC7qY/HPPTSW/g0JmO+t?=
 =?iso-8859-1?Q?aIR7o+c9XxFIudn2B8qluc6e9o/rsiTXQATWe08ei2xwt4rRIC0IIf4f26?=
 =?iso-8859-1?Q?TJPm4VZtrw9EARltfc5wewWcEFml4mcccp/zOQWDqBWVkRv/DQRwdNb6fl?=
 =?iso-8859-1?Q?anm0TcBS8AU63e86gtqTaHBno1OniQARL2DepykgWKQ2lB2DmPyPlYrAfx?=
 =?iso-8859-1?Q?RSK8v0Sl7Bg0ZEfjInUISOtEjruGcTmYPhR+rw/II77aXnxXYLPLSiIaO3?=
 =?iso-8859-1?Q?J/DE5OuilmyoeLkGaCBASBIHaxWboog4rXEYLGxbDwjk9Xhj69z0e7xgge?=
 =?iso-8859-1?Q?UVD0WxSb2BWqiJt5Lbj8EMY6naYo4SuxooDbfMPh+tlI48F5E85glKxLcN?=
 =?iso-8859-1?Q?YulQMpm9eiDFlcCWFTI/KqaV4vHqvbX38hkPZ7B7LOCD9YaKeFY+mDolcV?=
 =?iso-8859-1?Q?uxtvhUb5oF/D34mGo54P54Nahpt1zzS3LlL2fDOEhzJon92RjeEIDbECfi?=
 =?iso-8859-1?Q?ZBV/x62B5NzwPwOiw7ZOw9yuxdvj0SLUsPM5lLYxzkIsTVkk0yAbyvOWLf?=
 =?iso-8859-1?Q?29N6yF42J27nL7lalfHxFBDQwR/KHjoTMsmfITcxWsRxEvkEh9QZIZYkI2?=
 =?iso-8859-1?Q?DqmECq/L1UuzFtQOskWV39rwqykOu9Y7DMYn/0V0/Q0ZTgC4575cmy8heO?=
 =?iso-8859-1?Q?dy+Y/6Vi/mIH66L0oWxT+m4Tnry+8DsYzgKfJq5wXa1sksJHuU+hJZWUJ4?=
 =?iso-8859-1?Q?l+ZA50arZAnHpfOKkRYcs+g7Kx9G5conUeFFSmpF+QkizMF/1oGgPtJmjV?=
 =?iso-8859-1?Q?No388PRhNZy86INfHDSq02DOC7RWgXJKxPhI4Xy2xxcnxwrDBJcYhcd49G?=
 =?iso-8859-1?Q?VTW2IcvUodqs77mKzfhxUGipaRcJy0ESrITEGUjcqapXYwX3EIvhG+CAxi?=
 =?iso-8859-1?Q?TClGItvNp7dX4MgOilHwJ/tU+J/Cu44ZmqePzHVKrNzP1gZeyGkDAPwgQj?=
 =?iso-8859-1?Q?NxMnLAKPpf8JfU+y6vFhHH61AceUPCt40jG69llxh/1aQIezRu4VjUiyPE?=
 =?iso-8859-1?Q?xjM2OHrfxZ2fXGJhBuGk9HrtRboLYhq/fj294IUUKg67DbSXZXoSSUHevk?=
 =?iso-8859-1?Q?QyYykyEiCANfA/AZxVV0UbhT16dz40gZwN3BLWInkitSu0XBYrL9C+95o7?=
 =?iso-8859-1?Q?WY2k+FfO90wKjs0fE1OCqOe2ce91dTA419qAj0zSS7b52a6pSaWMsWsEEg?=
 =?iso-8859-1?Q?hN+kudG+OXMbge5AkAs3pZngmpC2Cezpl77iK2h7RQuJpKuXqgEsa2RRqM?=
 =?iso-8859-1?Q?yt9Mt+Q7qV2IK/Hgkd9ECmGkjt/5VERveW2lZuNDHVpnX1LOt5huCH748P?=
 =?iso-8859-1?Q?9y/w0Wj8dskTWW58Bz5+tDbKb9VdVW96nTe0fV3ndBZWdns916UunARht3?=
 =?iso-8859-1?Q?nj/SqeiEP1QcihDykqArHPKlXLpTP/Gvuk4C2w7ZxqFSeDlsKzddTAZ/dd?=
 =?iso-8859-1?Q?MrdF0hlTdaTcO+E15IrgCRw6YYyqYD+v5xTzz1KwpRnnDj5YhoWiLLK7rv?=
 =?iso-8859-1?Q?xIjE4YeMhlLV/CFhrDp6F6LS+h655LgcyclcVv1UQFYiIVoEufaZc+DoDS?=
 =?iso-8859-1?Q?nj97JDY4RLOa2OYc2B5kZp5J7Dts3JE=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fa981a2f-88d0-4be3-3183-08de8ec81f74
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:52:10.5097
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: EsIsLIiV69iA4SH88HBpFPtaTV4KXpG73CMY9i49/VvRt998taSEdTgyKQUibIqarPm9E7UkGfvV1ii4ktqMbg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB11035
X-purgate-ID: tlsNG-ef75cf/1774921932-5C989303-53CBB828/0/0
X-purgate-type: clean
X-purgate-size: 1090

From: Rahul Singh <rahul.singh@arm.com>

"iommus" property will be added for dom0 devices to virtual
IOMMU node to enable the dom0 linux kernel to configure the IOMMU

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/arch/arm/domain_build.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index a51563ee3d..30a4f1fd09 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -538,9 +538,12 @@ static int __init write_properties(struct domain *d, s=
truct kernel_info *kinfo,
             continue;
         }
=20
-        if ( iommu_node )
+        /*
+         * Expose IOMMU specific properties to hwdom when vIOMMU is
+         * enabled.
+         */
+        if ( iommu_node && !is_viommu_enabled() )
         {
-            /* Don't expose IOMMU specific properties to hwdom */
             if ( dt_property_name_is_equal(prop, "iommus") )
                 continue;
=20
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268247.1557634 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OHC-0002OD-LK; Tue, 31 Mar 2026 01:52:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268247.1557634; Tue, 31 Mar 2026 01: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 1w7OHB-0002Ji-NS; Tue, 31 Mar 2026 01:52:17 +0000
Received: by outflank-mailman (input) for mailman id 1268247;
 Tue, 31 Mar 2026 01:52:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OH8-0001a7-DK
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:52:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OH7-00G5Gh-Od
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:52:13 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb2895-2eae-0a2a0a5409dd-0a2a450580c2-46
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:13 +0200
Received: from [52.101.84.91]
 (helo=DB3PR0202CU003.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28cd-5aeb-0a2a45050019-3465545b23da-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:13 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by GVXPR03MB11035.eurprd03.prod.outlook.com (2603:10a6:150:287::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:52:11 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01:52:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FLmNUmpZbVgA/bCxORaiRXHcWFN9ffiLH2lCIwJHf+n/Ykjn02axs2f9Kq1tAaxoJcgEJorsDlgYDrNc4eVfunqKsSZDpSWCuoI+FnJ98sJJ02XMPdMhqdmYqH9yi46x0z6UjMSx/lMBGhWpsSV2Octj1xUlzJ+ryHHjxl7QQqBMIZ6td38DQPbLQaMarpmITHJzjfvTf1rwVtGsuI1mAdR2kLrS+6zWFeHRMR8p2AyO0TR7T//XyYHJ5JTXzTPUx/bPMBn2zc1Kz4z9wYHWbhEF5VKChuiPjIleORcejhcX/skrft0U+blCo2Eg9Vov49uIoaNn0DMghGpqjbcG2Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lGucRxjoem7MAS3dc6mlC8+J9iI1gxrtrCaR0uXUaLI=;
 b=HsWLZMRH09uvdMqQqgciN2cOTe5TOValY7ysMQJfPf3MvN39yKdEd3f2udBKq6b2Icra43NuY/Hc+jmtTZ4vuewlQ/0J4DcyHpobNQfmdtOQ3XGJ6nx9mpSVy2x7tTNcwZZC0FvkjL8XkqRILOF6ZrZZdZXkwN82dIXqj9RisiddAWBp+bzLxNHaWZOQ3VOhfRkGck9i7edhoDGx6kOLp01+PoC3DQu1AcqQTK9H//wghgDUc32/1n49JbmEFaCtbM1cFshD+Z9ewpsUT13KEJzd3w9xa5VEZZrmeVh00Nf0/ntpHn3gdXc3sAtrZZ0S67sJ7rhqwCZ8Kss1DmLscA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lGucRxjoem7MAS3dc6mlC8+J9iI1gxrtrCaR0uXUaLI=;
 b=qxOYysYkA2NNaloec6eb84kSihPD8j6XcBMzU02s2p+fCwhnMr1WaKH4ibs1DittGpysat5rJP6NvT3Bi583eD7xOqXXkHdCR9tKLE5Jk1mFEFdPzc8wbWrwzeZnKBXpHJz0CXH6XbzYeQ9txdjG4zLbNWiewEirvDnDiPRSoLWZCus0pbo0i480MHx0/iRppi1Qu1wCd/5WdSJe/LQVbdLVqWpnu+3Vq41zR+6XNiHNB0yrAjwkoNFsX293jQ1N4Itxjq84ct8Pvx2sJ2Wwl5HTbfG5mdSE9yZ1ReaLAIKg8Yr1ORTMFnUvtzvnrdgx6YbDDEZjG31nyuBXB2K8VA==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH v3 14/23] xen/arm: vIOMMU: IOMMU device tree node for dom0
Thread-Topic: [PATCH v3 14/23] xen/arm: vIOMMU: IOMMU device tree node for
 dom0
Thread-Index: AQHcwLD92F0UqAfNCE6nQ24lJgi4xg==
Date: Tue, 31 Mar 2026 01:52:11 +0000
Message-ID:
 <ad7c5071c7d2424d292d4a2dc863a69c0a4b973c.1774918270.git.milan_djokic@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774918270.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|GVXPR03MB11035:EE_
x-ms-office365-filtering-correlation-id: ff1d3ccd-c8dd-4e24-0582-08de8ec81ffb
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 6zkKl+8a8V7cJySYUoRUfwOTtmbE9sNXZFSOzB5fGRizHZNkvr1e73Oj3IJNYrZVcP9UQgg15cdHtT9Ecf4TQIaJe959jBinCoIzYdy7xQDFD5aae7A/6xLit4ShiP5RzHfPm90wdvAN+PPsfD5Z3ZQVDxAiiiClXPS1vgwBFgWYwAJvXdJhR/6z1M49aHvk6wUCwPMeQ0Z6ffeN18Xpq/n9dSH075NK5/HNzPgnnd2XUJ4dt4N3CW1RnI4Sr9pHSwhrUO6D4yQwTQ6g8ZASFsV2W9Xrk2mZRpdQvpjuYTTzrSXz3oG4UrhITMJZI7OohXGyAXKH3pQKMN/ydkYx4hng9rBeH+K6sn+KmOi2zgYRPa8sKZQWdRofZEhOUr0TMVf9vWg+Qy+JNNoReW1i8VNdgHj0qRcyl6wGMZjKWJo1qsv20yJQ9e6DanDC3r4TXt3+YuML09l//Wkp0hr/wYg1HnrLlpxsz/M9Wc7qkrSRysZE8R3Rxl2lGtXDIEp9TKvPd/petRXQ41PcCwh+K9aHpPDSIDGeqY5VRUyd+GNE8WUS2LmbN/4dpY9DCWEWYcAXS/T4b0E3Hl2g3asDz4u64meI81vR/VDEJcNCvgomGmuKs0XUrgYX32MDt7KrQW/HYDMTr5ufa3ZUkOrs6+nEMnlzWq4TINxMwH9+qL1K7BpfaXG8ZAur8Y1L/IB7ZbEiOHuqd1J7Fbl1sYBJ/5hmxTbsmPBloLAOqElRecPNCGQuu56+o66O2VpFYxiM69oP049+Evl8rNx81XCZDWE+1KN/h+r7sUcmd4Ky6Ks=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?tFg+8bvNw3AZanTQvqZSt+MArwvd6doyY8Cn9CQZRa/1rzgAkhZ64mk8/+?=
 =?iso-8859-1?Q?9GNCHnae/h9YsVrIdJyYcHecXLiQH+BMjICiZAw8G8n1YwdxfwyjjfH4Pp?=
 =?iso-8859-1?Q?StufVdCD4a4fgTbUUhegf7IE4nfGqX72OZvqQtN2w1jlwbFBqcCPsKVFzl?=
 =?iso-8859-1?Q?xdCmFHfs6H5xdLDRRJqabbTyP7mpKR8sFMtrjE9HBFZ8zz79YE6PJOdDS9?=
 =?iso-8859-1?Q?hZop+1/EVwhuFiIQVT0Uc+tKCgzjOpL3Ec6ZyLASsIJKP/SCFN+Lo5LvIh?=
 =?iso-8859-1?Q?sJdc65EwqE9dX5wNPqbaDi0V+8gKA1+8I3/BT8mSBlh0N+xgzhlIjAS4jM?=
 =?iso-8859-1?Q?V7146bda0Uc20BIG5CWBlUH1+HSpuP8ZlCVBAUG/oqQPfuoO4ISUXR1vNl?=
 =?iso-8859-1?Q?jNVbV+Y8q2ewciATLaul5YWlgxIoUDqyHhTtbfUdUCTH6ZIXx/UiwLK66/?=
 =?iso-8859-1?Q?ZQ1amkhdoTbYetCBSZfh8T6mDRNG88yg5WoG8TlaGJ6qsHLIts3LgAn1Py?=
 =?iso-8859-1?Q?zipy9tgsVtdWP/chnIFppN0+wxQnuO0xl+fZlAJg14+QA1XAEy7Rvkbi1u?=
 =?iso-8859-1?Q?z8JGNszON33W2XdC+LMcilBsxscAl+0EA3bJE1zaeuVGy8wsgtuvp6HZLD?=
 =?iso-8859-1?Q?IY6pOrkUsHtknqIYA6K8JUvioj0k5aNLEesqLxB9gGn4VCzsM5IGGD937E?=
 =?iso-8859-1?Q?HivYgKlsyeQvyPRmmBVVtab00k3biPIhHjccIGWB0kCHg0UxmiBMJL7S+V?=
 =?iso-8859-1?Q?CKGbZzTy91Lmv5QwxKyU36vxbQD733sPOh8CDjdgrCRqoYer1rGjlpbHC2?=
 =?iso-8859-1?Q?QAjEiszfgwNPdOgo00Kyxkbocf77k4bwHGbi/6LKSsL6AOttR+Y1aFjhQv?=
 =?iso-8859-1?Q?6b3V17+4I2s48NgflP+Om3PNgH72i+dq+VmRXsxEtwwK1Hrnxu25p0tUYq?=
 =?iso-8859-1?Q?LimIGXNs5/hJEYYkiUJpXqmElr1i8bD+fZjU/lKnWiwMbuBoEYjn5mGKNx?=
 =?iso-8859-1?Q?unRhHZvaST7hzPZW4CmXcyuGMNJSKOLCMPVZsufkF+YJpXbSxdAivDS5cT?=
 =?iso-8859-1?Q?5q37gAyT22/HflQvKWjv04Nf+2sjvNrZ3BLNOsc1C0bBdkOSkWtaN7bDpm?=
 =?iso-8859-1?Q?soaxFN7Uw3rrXcRCeZP32a15q2zF1WJMAm5aX1x9Xd86zrUSHDD2dbQWCV?=
 =?iso-8859-1?Q?m3A7bbRYdFDQJIC7FYmRotP9l3aB4Z32KdD2vsWPfLgKYVAXgYgJGwCDD5?=
 =?iso-8859-1?Q?ioRUYvxiTjtkLS5mMMR46mYgTbB4snppjJxYzcvwUqEcldWt76xEc8fvP/?=
 =?iso-8859-1?Q?zvI3VFMNr8wDMNQDnbKoScspCxeW3SQmlpUF9MuM8RyqpsCDFhRjwP2TDx?=
 =?iso-8859-1?Q?wpAvw6jVaiW4IEu0xfG9Evaq0FQ0q1fRlS5m3QmGqQIo8aInxs8+J+gklJ?=
 =?iso-8859-1?Q?feSXiDcaqlPrqUMzP3yZPjEZEF9Jzgk7wJUEn4ADrbsVz4UBQPe+92c+6F?=
 =?iso-8859-1?Q?uLMduEajdzDdG0vFs9scq7zgUlMG59p4pxB0UAJzMl+/eeaskJ+IkcnBo8?=
 =?iso-8859-1?Q?mUca6lJrB/JkZd0gywYLQuSLeEMIrglufdFKraC23Oo9qyNpIgymasqqPI?=
 =?iso-8859-1?Q?kf1n9Zq9i36VBa5k46vqWwe6w1o6eOVPZkSe53Zme37ITzqV3sQ8VicPOE?=
 =?iso-8859-1?Q?D3NdUU/r+Mb2LS2fvnda8PhVnnAYF5cchVrnbMeN6/ekxMfkM/Nt+mLkK9?=
 =?iso-8859-1?Q?93PT04lyPwDD9aWZ51R8TvMe3k8P5EQWnwu8dW2LAsu18kA4I9eGZl9Z0x?=
 =?iso-8859-1?Q?WyJgZ7aMTvP82Sy1NwMs+F20zeZa/qg=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ff1d3ccd-c8dd-4e24-0582-08de8ec81ffb
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:52:11.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: EgweI40GOQ3rzaGBo85YWl/QRMEi0LuH0kx3Z5N7FDjX+DWr5D1eZHLMBs2lrWd2zMWRlI2+D9TnM0ETG8932A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB11035
X-purgate-ID: tlsNG-c201ff/1774921933-82558488-213CC8AD/0/0
X-purgate-type: clean
X-purgate-size: 4282

From: Rahul Singh <rahul.singh@arm.com>

XEN will create an IOMMU device tree node in the device tree
to enable the dom0 to discover the virtual SMMUv3 during dom0 boot.
IOMMU device tree node will only be created when cmdline option viommu
is enabled.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/arch/arm/domain_build.c       | 94 +++++++++++++++++++++++++++++++
 xen/arch/arm/include/asm/viommu.h |  1 +
 2 files changed, 95 insertions(+)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 30a4f1fd09..54ae3b5033 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1440,6 +1440,95 @@ int __init make_timer_node(const struct kernel_info =
*kinfo)
     return res;
 }
=20
+#ifdef CONFIG_ARM_VIRTUAL_IOMMU
+static int make_hwdom_viommu_node(const struct kernel_info *kinfo)
+{
+    uint32_t len;
+    int res;
+    char buf[24];
+    void *fdt =3D kinfo->fdt;
+    const void *prop =3D NULL;
+    const struct dt_device_node *iommu =3D NULL;
+    struct host_iommu *iommu_data;
+    gic_interrupt_t intr;
+
+    if ( list_empty(&host_iommu_list) )
+        return 0;
+
+    list_for_each_entry( iommu_data, &host_iommu_list, entry )
+    {
+        if ( iommu_data->hwdom_node_created )
+            return 0;
+
+        iommu =3D iommu_data->dt_node;
+
+        snprintf(buf, sizeof(buf), "iommu@%"PRIx64, iommu_data->addr);
+
+        res =3D fdt_begin_node(fdt, buf);
+        if ( res )
+            return res;
+
+        prop =3D dt_get_property(iommu, "compatible", &len);
+        if ( !prop )
+        {
+            res =3D -FDT_ERR_XEN(ENOENT);
+            return res;
+        }
+
+        res =3D fdt_property(fdt, "compatible", prop, len);
+        if ( res )
+            return res;
+
+        if ( iommu->phandle )
+        {
+            res =3D fdt_property_cell(fdt, "phandle", iommu->phandle);
+            if ( res )
+                return res;
+        }
+
+        /* Use the same reg regions as the IOMMU node in host DTB. */
+        prop =3D dt_get_property(iommu, "reg", &len);
+        if ( !prop )
+        {
+            printk(XENLOG_ERR "vIOMMU: Can't find IOMMU reg property.\n");
+            res =3D -FDT_ERR_XEN(ENOENT);
+            return res;
+        }
+
+        res =3D fdt_property(fdt, "reg", prop, len);
+        if ( res )
+            return res;
+
+        prop =3D dt_get_property(iommu, "#iommu-cells", &len);
+        if ( !prop )
+        {
+            res =3D -FDT_ERR_XEN(ENOENT);
+            return res;
+        }
+
+        res =3D fdt_property(fdt, "#iommu-cells", prop, len);
+        if ( res )
+            return res;
+
+        res =3D fdt_property_string(fdt, "interrupt-names", "combined");
+        if ( res )
+            return res;
+
+        set_interrupt(intr, iommu_data->irq, 0xf, DT_IRQ_TYPE_LEVEL_HIGH);
+
+        res =3D fdt_property_interrupts(kinfo, &intr, 1);
+        if ( res )
+            return res;
+
+        iommu_data->hwdom_node_created =3D true;
+
+        fdt_end_node(fdt);
+    }
+
+    return res;
+}
+#endif
+
 static int __init handle_node(struct domain *d, struct kernel_info *kinfo,
                               struct dt_device_node *node,
                               p2m_type_t p2mt)
@@ -1508,6 +1597,11 @@ static int __init handle_node(struct domain *d, stru=
ct kernel_info *kinfo,
     if ( dt_match_node(timer_matches, node) )
         return make_timer_node(kinfo);
=20
+#ifdef CONFIG_ARM_VIRTUAL_IOMMU
+    if ( device_get_class(node) =3D=3D DEVICE_IOMMU && is_viommu_enabled()=
 )
+        return make_hwdom_viommu_node(kinfo);
+#endif
+
     /* Skip nodes used by Xen */
     if ( dt_device_used_by(node) =3D=3D DOMID_XEN )
     {
diff --git a/xen/arch/arm/include/asm/viommu.h b/xen/arch/arm/include/asm/v=
iommu.h
index ed338fe0ec..01d4d0dfef 100644
--- a/xen/arch/arm/include/asm/viommu.h
+++ b/xen/arch/arm/include/asm/viommu.h
@@ -19,6 +19,7 @@ struct host_iommu {
     paddr_t addr;
     paddr_t size;
     uint32_t irq;
+    bool hwdom_node_created;
 };
=20
 struct viommu_ops {
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268249.1557642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OHD-0002ZY-Ud; Tue, 31 Mar 2026 01:52:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268249.1557642; Tue, 31 Mar 2026 01: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 1w7OHC-0002Vt-Pk; Tue, 31 Mar 2026 01:52:18 +0000
Received: by outflank-mailman (input) for mailman id 1268249;
 Tue, 31 Mar 2026 01:52:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OH9-0001la-9h
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:52:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OH8-00EbSb-Ku
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:52:14 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28ca-2eae-0a2a0a5409dd-0a2a450ca5a6-14
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:14 +0200
Received: from [52.101.84.119]
 (helo=DB3PR0202CU003.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28ce-f93d-0a2a450c0019-3465547766eb-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:14 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by GVXPR03MB11035.eurprd03.prod.outlook.com (2603:10a6:150:287::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:52:12 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01:52:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lj9ps9JWld6pog0LY1cxvqB5jOl5ed9o/ozXdfXKvqQLIn17rT6Wh7CUiRd4Hnlx1XMi9zgMiTG2CJfsv1CLF3GngljqyZhz4tQ+TG1Qff+2K21Kjsno2fQm0JFtnDjPXv9woLYuUw1Ksqp+yR1Krh4NFR9xFddxnjAW3tMFpOGE1NaJO2IlYH4YRo04MVDW2ZVW9MOE5ngfH+iwRrwxJzfec+R8n78KIuinYxWgR9t6/bqk3Y0nulVCsNtjcUfmqZxFLf9BvyUkhe+ZZ729q2Qk+WXHZ5JNTsyfH25PG/xf4RSxScuNva9j95gn0rs2UAIU5diL7W0hTDaWI5ozNA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=L8OQdvq9aXg/4SxgH4QegjDDNYf5k8N/mwCJ7C6pqRo=;
 b=Z9HOMs68XFBsOessW2KwVirVy3aalmZQwUtlAM4kQrWCoDVPGuizDz0ecnfG6RCjuj9KgyjiqhOiw12u4oFgPqZuMwgkuzHh8af2PPMzAd1YPUze8MOcpKo0wEwW21Bt1V2wA9z24dmu3ORZjk++Al+xhl693rg1pJ+OSRmquADidSjXQOvNF/O+eJ/XFMmyAbk4xeqGbrVQksXSMT+zL6PCB1fZjeLoF2l67Vp7wvr46nvURs2RMheGCtm373bqlDuxchJ/xQXYKh1qtW6G3oNggl0ZvU/LvF2GF2dKjSFR+kysg1a5IvQCchvxgIgqJKZ9Jf8TscwoKMjOx9WatA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=L8OQdvq9aXg/4SxgH4QegjDDNYf5k8N/mwCJ7C6pqRo=;
 b=QklSEOt3abRoejHbp49HdQ1MHGXP4HfQbv1F3+khQrap24/bfPJC88vhSAFbAuFJdSCrqj1Yl+cjWvV+jleroiDq+fQYMpk4tZ4NWEdVyp5Hwh3shuNh9xxOVPbbB25VdlD80yBJBk3iLzvO+r09I6UVHNk/03wr7zozsKGHou5HrfLsxHIiPAq3CscZckKFaNDSUXT+mfmI2lEle8CNTc20rV3r9taFM3spM/GQWfpv0gmRMIrhorls7+CTlBTAmBw7nNozrR2vXsnSVQBNF1zu4dCQfu4tD63BqyYf02c4G8ERTEBkxq5jk4LOqWh2Nlf9qDs20OYBokp58qMMzw==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH v3 15/23] xen/arm: vsmmuv3: Emulated SMMUv3 device tree node
 for dom0less
Thread-Topic: [PATCH v3 15/23] xen/arm: vsmmuv3: Emulated SMMUv3 device tree
 node for dom0less
Thread-Index: AQHcwLD+zNiyrbjSzkm+sUPipfSs/A==
Date: Tue, 31 Mar 2026 01:52:12 +0000
Message-ID:
 <c2eadb067d706e0f6f4289644d30cd4b1167c4df.1774918270.git.milan_djokic@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774918270.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|GVXPR03MB11035:EE_
x-ms-office365-filtering-correlation-id: 40aa60c9-d87f-4da9-0b20-08de8ec820a8
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|7416014|376014|56012099003|22082099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 SLhWRY1O5zPSzjmB2xY02W9/Bfb3rbw2ZmxfxVUeLFdVwbrutMhS3UQjJVmMTJ46t1+Q2w1v0SUnVm5yLHIT5BdHfWeURfF6pjvYQ8PRXnJWhw8qRnVjJf4Gp0a+vrkWHoPdQrTciKnkYI7fC51Zslb2VqyETmKt7QFB/yXyaUuYkVS1DcR0u+/P6tKh5tJ7kvRHMQpqEQBasLyNRHeM2yc4rqFYmyKJ5pgBSNfyuQe3ulS9D1P5iDcLodW7KpCQMG0kLAfJkR6xJ7254XJApcHAHQq+V7SGdff2lNhhvomltm3JW5R2hiqwzPxhRMNvNspilWDXs15GEAVOUgmn/q8YIQdZIiy4Pk3zFkXPHzXBBiomU7eAZZW7nwk//SQDax8gWKJuD5RcCeAwOeAp7kybgdAR5S9XqGQFJOdCjZ5h64kRhv5E+of2XdcaZKRLqnWLwR36LrQh5VWgewIpUPimPys/mTMYEkaydb2pzA0wRS9ox4r+Nw1ySze2ed6qconqcCVEySX+Lh/7DuFPVycdoVZMKPr1CTCfLhaY9BY3w8ioq8G1gkaWhzTQp4ixLSkJV3xrzkN/iEvQ6KOGglcvVy6GvtkyW0JfprQkGtx8TJ+hPAMHetNSSNtjZsbSvysrCTUgoe4H2oZVjhI7O9SUq0KAMeNt+wBhrcyVfktEheEACZwC1E52R0VGaX7fK14VZb5uLoKHwANbm/9H99/HbA+7egXfBRlbcH3PZ2+DFqUtWTjocQj5TK4xnRd2STKn/K65XlVeGH7pbsN5U9+Ll5HcfwL7+71zoyK3qpg=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(56012099003)(22082099003)(18002099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?J0UXZfNfvbVF2KQJTJl4wyoCfItMDqD9i+OiapiSYMDea51yQK3uI4tci7?=
 =?iso-8859-1?Q?HHel/xkmQCQNlmfV6F5YD39PBjTS+UQvEFha0EzrHrcTBccwf6aJ8gJfhZ?=
 =?iso-8859-1?Q?+00UyXwFqNqwlNIIC09Ju0811AGGnHWBGmCizJz5fWincne2XVqcEUboxs?=
 =?iso-8859-1?Q?gBzS3htCxdzA7tRAsghHh8fOlhDNrjJjprefUs7tDEiTu54bM7IKbEaX0t?=
 =?iso-8859-1?Q?k4PnC8HJvXKwGPqD1GPz+y03O9/JyiFlnpvCYDU8//IC6+I0Xs3m90Pmbh?=
 =?iso-8859-1?Q?7+DrFymIpgtX5Nfic+rR8TIJhV8g6hZt+Ht9Kdfm+S24La7BTxI1WFMHb2?=
 =?iso-8859-1?Q?NUjKLohDHDHWKLnntBBr8UY+8DBeOcFdkMVX6NPx/3xHVi2xM+VXjIFZVB?=
 =?iso-8859-1?Q?bQq3fuiAwiCaMIoGA3CWnazaT7/3MsZlO3W0qNVta1anqX0HyaVZrYTjUB?=
 =?iso-8859-1?Q?mzYR8fS6PciBjAcNV5dglHJpQjykTvtxgp3DJ3Wj1fU1uI/uaUfqcYyg7t?=
 =?iso-8859-1?Q?bR5sy6IB0V6J122/MsOoK9mck7X/FRzDO+k/ZG12n1SUU+hKsoyn72XD0p?=
 =?iso-8859-1?Q?zLsWXJ+nQqM85Z9j39QGsCG7hF5agq9Uu52h/WtWvkwykmcWWPEZR0YqXv?=
 =?iso-8859-1?Q?JMgklKf2cE/QSStdG0PLKZhgJ5EWwJXNZjrnkOD1aHC2lnyTKf+UZWD6KJ?=
 =?iso-8859-1?Q?xRfaL/lGmXfuMsg5LACW1j7JA/QyYdTm4Xzbodacvd5SFbCVqZfDOMpdjU?=
 =?iso-8859-1?Q?yN/5E2MhIXT1A23W5+5EklPwTHC8r3V6vp91nFr71QX2bffIDxgHjfv+b7?=
 =?iso-8859-1?Q?87dnZ27S+U6HWAVYCGAR1lfo+k1SUk48guBVqWgJ4q+9XPDxkomB145CYM?=
 =?iso-8859-1?Q?HtFAjMOgxsZoQrOhDErvZvOEsKl3SaGPOCoAw8nV/tFEognVoWaAbtkYyn?=
 =?iso-8859-1?Q?Hp4FzWEP97Ygnym9MbB648Cvx+NM7cruuzwFw0L9su58jzDZhAEDemdgmx?=
 =?iso-8859-1?Q?LD+ae/kemwopMo+bVn8B5utks9604zoQaQyBd1LdRFK3rCxK1zeeKRtvzZ?=
 =?iso-8859-1?Q?I0M3bb46U/CdOYNhKIlP2uRkghm/ZqFyWCzAPfdTMQ3+2NiSLwPCkYX8uO?=
 =?iso-8859-1?Q?YHvzizZ+YVSpduZdVIJvyMh77wA4UOLTkBMFbuGmXHkFl7kiLtVrslwmyB?=
 =?iso-8859-1?Q?ICAoKihJQmj0mDMvv5TetZaPQUNGLuZuDsCA+U8lQVgh4qLXtqaXFqiR8v?=
 =?iso-8859-1?Q?mEcuzJm3ThNImren0qEEkHDj/PWOxJ4vL+H51IYliCAaNF7KT4G9G8HO7x?=
 =?iso-8859-1?Q?Qibd1DH3/aZnGChFXoucCD+yeYb3w/Gr9AZE+BA2CnZdYSbN396+EPrfbW?=
 =?iso-8859-1?Q?m7JrKoVE9Lkil0S2Pkcv7P/e+WyA+MG3Z0CRXi3pWcD2Dy7KcdeY053fKM?=
 =?iso-8859-1?Q?MaRsLyad3lp8AUMoTiv7tPncHiIaW+O3pxF03Lsl+2JpHINvxCpF7fnWcL?=
 =?iso-8859-1?Q?pNlvy+0NH1pHdi+Hug2N1FSK8OhogbNoDWkWQtk1fC+2vcgiom+IGk5vD0?=
 =?iso-8859-1?Q?CMpU7cQfeeCQx/zu9hDZX62NBBw1qDb7AzbTN/my8yQbNJ//fU0MWMiYh8?=
 =?iso-8859-1?Q?8GdDoYcugi4jV/rQvN/JJUk1OF37tw3qdQ0kylRPgNcGVBm0dWiAVofJ/G?=
 =?iso-8859-1?Q?91UC/3xrJmC7uPq5bqPz+gasFe4aCslBmEDGEPMUIyNjWovYPNBiUBC/HX?=
 =?iso-8859-1?Q?joWrThLJfcvxcgxqDhLGHrbXsIpnB2Lw0aA3oISOqtDJWlSOIi3mvqVOcK?=
 =?iso-8859-1?Q?8h670cqVswIfQlM8CbxdrFL1AmpFMLo=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 40aa60c9-d87f-4da9-0b20-08de8ec820a8
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:52:12.4835
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 6i++xxj/30iSitvKttsg1hKhSS159lM90wWQ3/zhUvq2qnf910WkqEGPTBHNKfUfRQ2sq0J2hPDbbUCUVpIH5w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB11035
X-purgate-ID: tlsNG-d25034/1774921934-6FCA2734-82C87703/0/0
X-purgate-type: clean
X-purgate-size: 2928

From: Rahul Singh <rahul.singh@arm.com>

XEN will create an Emulated SMMUv3 device tree node in the device tree
to enable the dom0less domains to discover the virtual SMMUv3 during
boot. Emulated SMMUv3 device tree node will only be created when cmdline
option vsmmuv3 is enabled.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/arch/arm/dom0less-build.c         | 53 +++++++++++++++++++++++++++
 xen/include/public/device_tree_defs.h |  1 +
 2 files changed, 54 insertions(+)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 067835e5d0..a48edb9568 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -218,10 +218,63 @@ static int __init make_vpl011_uart_node(struct kernel=
_info *kinfo)
 }
 #endif
=20
+#ifdef CONFIG_VIRTUAL_ARM_SMMU_V3
+static int __init make_vsmmuv3_node(const struct kernel_info *kinfo)
+{
+    int res;
+    char buf[24];
+    __be32 reg[GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS];
+    __be32 *cells;
+    void *fdt =3D kinfo->fdt;
+
+    snprintf(buf, sizeof(buf), "iommu@%llx", GUEST_VSMMUV3_BASE);
+
+    res =3D fdt_begin_node(fdt, buf);
+    if ( res )
+        return res;
+
+    res =3D fdt_property_string(fdt, "compatible", "arm,smmu-v3");
+    if ( res )
+        return res;
+
+    /* Create reg property */
+    cells =3D &reg[0];
+    dt_child_set_range(&cells, GUEST_ROOT_ADDRESS_CELLS, GUEST_ROOT_SIZE_C=
ELLS,
+                       GUEST_VSMMUV3_BASE, GUEST_VSMMUV3_SIZE);
+    res =3D fdt_property(fdt, "reg", reg,
+                       (GUEST_ROOT_ADDRESS_CELLS +
+                       GUEST_ROOT_SIZE_CELLS) * sizeof(*reg));
+    if ( res )
+        return res;
+
+    res =3D fdt_property_cell(fdt, "phandle", GUEST_PHANDLE_VSMMUV3);
+    if ( res )
+        return res;
+
+    res =3D fdt_property_cell(fdt, "#iommu-cells", 1);
+    if ( res )
+        return res;
+
+    res =3D fdt_end_node(fdt);
+
+    return res;
+}
+#endif
+
 int __init make_arch_nodes(struct kernel_info *kinfo)
 {
     int ret;
=20
+
+#ifdef CONFIG_VIRTUAL_ARM_SMMU_V3
+    if ( is_viommu_enabled() )
+    {
+        ret =3D make_vsmmuv3_node(kinfo);
+        if ( ret )
+            return -EINVAL;
+    }
+#endif
+
     ret =3D make_psci_node(kinfo->fdt);
     if ( ret )
         return -EINVAL;
diff --git a/xen/include/public/device_tree_defs.h b/xen/include/public/dev=
ice_tree_defs.h
index 9e80d0499d..7846a0425c 100644
--- a/xen/include/public/device_tree_defs.h
+++ b/xen/include/public/device_tree_defs.h
@@ -14,6 +14,7 @@
  */
 #define GUEST_PHANDLE_GIC (65000)
 #define GUEST_PHANDLE_IOMMU (GUEST_PHANDLE_GIC + 1)
+#define GUEST_PHANDLE_VSMMUV3 (GUEST_PHANDLE_IOMMU + 1)
=20
 #define GUEST_ROOT_ADDRESS_CELLS 2
 #define GUEST_ROOT_SIZE_CELLS 2
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268255.1557646 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OHF-000347-F3; Tue, 31 Mar 2026 01:52:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268255.1557646; Tue, 31 Mar 2026 01: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 1w7OHE-0002tW-SM; Tue, 31 Mar 2026 01:52:20 +0000
Received: by outflank-mailman (input) for mailman id 1268255;
 Tue, 31 Mar 2026 01:52:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OHB-0002Ae-0K
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:52:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OHA-00Cy7w-BP
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:52:16 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28a5-bab6-0a2a0a5309dd-0a2a4507d1a6-24
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:16 +0200
Received: from [52.101.65.103]
 (helo=DU2PR03CU002.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28cf-fd74-0a2a45070019-3465416768bc-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:16 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by GVXPR03MB11035.eurprd03.prod.outlook.com (2603:10a6:150:287::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:52:14 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01:52:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qLieqmKsNjs/eto8Klfg31n31NUajU1jOfMddziYiCUbYppEgu76tRTJNKTN2b6xg85kWId6IL3YYkraoU6eyQ2sducOyideKmkaEvrq18lZ4UC9JPxKrz9Z7dx5mQofAy2kwkcnEYD25yLS/BqeMluqU7sL61pKKDwle2mlmg1oaAValWo80l5ltDcELvYqc1Izjpl7TIJ1FwMzUWufzd3I6T6fOIk3n8sjoQjbIQBImgGvdSb0d3BwHkQasVnuNcMsdN4NLomFZ+k9HgaqyJXNhhFKy7yGCwybWhkwW0ca9eFmrPT5wrXqZtVdYMX75saJ6AaNrlYgGZ4AbOG2VQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lj+Sg5LBkxi+H913KrrxXSn48z00gNy3tUlieV05i7o=;
 b=s6Yk8LggsmyxaHFNXeBnmYR2YmLr6nkdq79KY7jEdumisY3zL/PQXq0xQjBsMDYviRoZyuqNta3LShgeZXuL9DK8FLFl6jw/B1Ps9JgyJhSXruMbvfyN1FEUN2NETHeKsOl9gvJtIa19IYNH6fW/HT/wtCoJ5/NyyT54ISe0w9l8D59+ng2Ypvt8wIVYfCWa6vhhO5iSb3uJWw8j7sJ8Iejp5swkCyyQ2kpD+SU7xhnkX5qF51LcuO413TpnOCzPLgyYIljEei+/h8Pd75HNWEzzQoyaHckR2GR95UpWtKJEa7E9gM+Av8d+EkiTNmEwlv3SONuxT8npLLJ5gP6Igg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lj+Sg5LBkxi+H913KrrxXSn48z00gNy3tUlieV05i7o=;
 b=rZ3WCSx7wV1rnlZAjuz4w5yBfpIXOPq3GBPJKFB09HlUgZJZ+zFGtoA5Q1a2S0CB8/cjLkD5iNxhWw1h1zPrgo1eYhykjHMrdsC7FGC5HdpljdVNMEGXtNRl47JjqvhQTG8ni2FK537po9KEb+Gp7S5uHLyED72WkoNzkkt0RGhz4Bd90dag3UZyVBsCCGw0cSV8Xj6d8+xWAx9lJtM/40iqapSl/vRty10Q5GiE2RsiQyDjUVCnENJ8H3yw7jb3SmneKodrdPTGrRcpiiSgEl04nLnHeZL08WIK/4bD6JdqXAthutCRlctulFxZKfdyU/tr3/8I8xIBoMrxWsXozQ==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH v3 16/23] arm/libxl: vsmmuv3: Emulated SMMUv3 device tree node
 in libxl
Thread-Topic: [PATCH v3 16/23] arm/libxl: vsmmuv3: Emulated SMMUv3 device tree
 node in libxl
Thread-Index: AQHcwLD+lzo9LgbX1UGwfRiRzfrENQ==
Date: Tue, 31 Mar 2026 01:52:13 +0000
Message-ID:
 <58c7eb798749c8c78935f5a8fc9e0aeff81760bb.1774918270.git.milan_djokic@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774918270.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|GVXPR03MB11035:EE_
x-ms-office365-filtering-correlation-id: 96c066e4-3f3c-406f-a00f-08de8ec8217b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 rooekgsfGi+6/hTMqXI3v7yR8PQPe3x3rquohJcgbGpopptFds+kEcYi2RVdUfvsCB2E1MwVyMA/6Px3x3aKoVougCg/DjkuwHkGxl3SsDY0/2OuE/ozfnA219++GPyDKvvN4MJZi+vX0HB0kQS1d4gKo4AttivBIwmAUVt3+kIrYA8jfWvGumKdKzzic7TGCTghgTDLltykieBAkLaOQ8WHTAtPf/z5SgbIy5lHm7SPV+67/mX+QBIZMEK4gb/kh+xThWv/H9/aJZS36Gpsy84oN61hpP82zJTkndgOLysYVz65whnFdybiOzCQDAN2aHwhrTAfn9y97tFKC9LfI4s2JZFV7t1eKvi3ypEvqwKHIzeXQ2fasqiBNtFGA1yC1ammhqOBkY7aiHLAcHADiVF/N20iWD1x28/J2BTePm0OtGNqXyANANGI2J7ZbK4KJJaEhKuUdTKng6xqlwlwsEh9srJsGns/r5/6nkN2tA0FAysBCbtP8x/juvloUOBYEb3NSSigyMuzuZXBjam9fSZdI84eEBE4XKOy2fkAV+eTBm7TK66aEMaIbJP8Ld+ih5ISr7DdtReZ0j0UPDOxXS183IP8ABdOmwyNdAtrAH3A6V0f0GZ1RE0GiA271VCAhxfyAw/4ONTd5hiOg8ITf+JrVuPyGWfwcMl4WJJfXpani8m7Q5ljN0AJT/sFzbaxnWCiponsAmsYnNOtiYlHnS+w9eJJ1ug1ovcqz3GTAMeAN6/GbpXIgEyHrVtgpgAYRAUz3ayy3r/TGLvnGYwSWXgsbauE9DxwZVuSgzVlF8c=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?1jRpQicjhFRzUzMObvBfqBRSjKdqTORfkNjqOxTuWJFZkCsd0f5G/6OjVi?=
 =?iso-8859-1?Q?I0lILsG//2N7QKJ6z+V8tdSc+Z40ZQfzHt8agu3dXEKcw/xPvTmVR3gLB0?=
 =?iso-8859-1?Q?nSyZTFI67RBrAqcodxyVGhNcemcx3HBhPMR+nxWwCPmwc53BKg0vI/06QM?=
 =?iso-8859-1?Q?t0Vn5C5QAd1lXzzgQDLKunJz0ynE3VygEP1M4xoS6n1KzWjDMClVlbFA7y?=
 =?iso-8859-1?Q?nsb151PNemt/CQlYb94uPfZeL7PBDqBStgR1KZtT4WejWgMnFGkYe6cucg?=
 =?iso-8859-1?Q?zVZjXTjnqFn0j1LHClPzLkt/zxP0vmIm70Vy/6xNs8CT6v++NUZMAACV0w?=
 =?iso-8859-1?Q?LySsJfrcqv0oT9Cmfkg/jROYKZMnSG6mQ7FZFKLossnDegxmL0u5YlGQT3?=
 =?iso-8859-1?Q?ciHQE/yY6TMxw/3uSwFz49itNdqNTOW0S/1BxTPA9FLVz+Z41AXB2nJzfj?=
 =?iso-8859-1?Q?BR4prqB7W8jZg1khy/dGXRkib+/BJLjyd34wN+wwYfkdqKSBmsKawpqEV8?=
 =?iso-8859-1?Q?8ovPSnbrp38ZjRvshEyTp2Ghc3mAvkf9sYfUsQc2qoPI2IvVXLWaOFufUm?=
 =?iso-8859-1?Q?y4spFCTk/glNGmw6lwyg/OsCbF3rN8GtUZ+pnBeX2K5m8xEHmYZ76Bur8q?=
 =?iso-8859-1?Q?0WG8TO8B33UaK58jbYTUH0obMXcu06Fup66pEP6gOujWPKFzQBlt0DcnBO?=
 =?iso-8859-1?Q?uxzKaH5snC9e41Qqr5ClEVolvK7KuWZIr2/u9nMRYYhHk45jYBKoXKPIqk?=
 =?iso-8859-1?Q?pxX1oPnRfnPoOgABpYnyMqRm/yBDeRxMM3ZSMzqIH8Up7UZCAZhiyEVeZs?=
 =?iso-8859-1?Q?ojRa+4S8g0RO7LwPgpmIbO7QsPg7dAyFoVXVClpBQcde2Hjp/HwOjxin5c?=
 =?iso-8859-1?Q?1VoAQCQ3iSxaNri1A5wfDM33DBKJ7YxYJCmouVSYaIIvpl8u+BvQL195Jo?=
 =?iso-8859-1?Q?hvSg3NHgCrhBF3cUN22I7HtaUnqfSq+Rws1LDfV8X9IQIFLXvuUwbkrII7?=
 =?iso-8859-1?Q?yOj56eMwxx/VApgWvzRxZ+zv4YltKeLXmVbzmQh8yq+OVQlFAvr6ROv7Dg?=
 =?iso-8859-1?Q?xQCnGf8ruBRMQ64daol4b3C17RMqbeJOhG0OpQ+2ODF45IY6m2nheXRcBa?=
 =?iso-8859-1?Q?4Kt4qYlRNohEg6a2ZXakWGo/4/Rw2UWXV5iiJvKPJ5DdCBtP/D0UI7Z/ZL?=
 =?iso-8859-1?Q?hsL+rXz26xtNFRXEEDigYyN5D8O+wC3NJQrcCoUvuzQPhIyujLGoUXAdZY?=
 =?iso-8859-1?Q?YJreIhLWvN1s7Fjcz8gk1Axafv9TxTKwk9MBfMJ88UQgiJ3HRtGJ+fNqDW?=
 =?iso-8859-1?Q?z8TnyhOYgclmNN4KfYrbDaufOCxJ28RHlpvQI42QOdy+AhHqGiTpdRCeVa?=
 =?iso-8859-1?Q?pq8teVLH3/udApY7Q5RB6/0o1jiJq9yb5eoTIWY4R1KWT8ZrBzkeC191XC?=
 =?iso-8859-1?Q?F1rcxK2ywhz2ntfWnyv6Ysqccjwz3B5VzrXxz2mkHGeiizinaf+meOMj9A?=
 =?iso-8859-1?Q?hNH0tMaEwtCTIpQZzwblQAOmEVYem1Q2m8ooj/PAlO0seV6TthutPO5iwj?=
 =?iso-8859-1?Q?43epg/Jgs/SOeiY7i/CMEzANRTdYk8+BYd+zhPrENt+t+yKDQqtzFPpGG9?=
 =?iso-8859-1?Q?fPSY6Evj/sKZpy9h8pnG0Q597F87XxLG4fpASFtHBUZSioHciaKbaSE96x?=
 =?iso-8859-1?Q?2c6jA+FX3CbPjifETTsUyGSZQDALqS4KUC9RggooNB6cVXLh9Cgrvd+k4x?=
 =?iso-8859-1?Q?s9sVnu/B3wo2/PR5JbvWaErrQorFbE2kJ60wrwj7hzxdBPy+3qmLWDh8zG?=
 =?iso-8859-1?Q?Ex5MELtnw6xv73Fk7FPkjMFtFyA7CXI=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 96c066e4-3f3c-406f-a00f-08de8ec8217b
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:52:13.9170
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: GNmDvxidI0AnikCQil+3ETDSQkh7QqfrnOrZ8ArBMEqvAq72K7lJBAfXacUWeRKeHf5oV/RSIuxG8Pu1MjlcMQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB11035
X-purgate-ID: tlsNG-ef75cf/1774921936-5D185303-E0EC739E/0/0
X-purgate-type: clean
X-purgate-size: 2704

From: Rahul Singh <rahul.singh@arm.com>

libxl will create an Emulated SMMUv3 device tree node in the device
tree to enable the guest OS to discover the virtual SMMUv3 during guest
boot.

Emulated SMMUv3 device tree node will only be created when
"viommu=3Dsmmuv3" is set in xl domain configuration.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 tools/libs/light/libxl_arm.c | 37 ++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index a248793588..eb879473f5 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -901,6 +901,36 @@ static int make_vpl011_uart_node(libxl__gc *gc, void *=
fdt,
     return 0;
 }
=20
+static int make_vsmmuv3_node(libxl__gc *gc, void *fdt,
+                             const struct arch_info *ainfo,
+                             struct xc_dom_image *dom)
+{
+    int res;
+    const char *name =3D GCSPRINTF("iommu@%llx", GUEST_VSMMUV3_BASE);
+
+    res =3D fdt_begin_node(fdt, name);
+    if (res) return res;
+
+    res =3D fdt_property_compat(gc, fdt, 1, "arm,smmu-v3");
+    if (res) return res;
+
+    res =3D fdt_property_regs(gc, fdt, GUEST_ROOT_ADDRESS_CELLS,
+                            GUEST_ROOT_SIZE_CELLS, 1, GUEST_VSMMUV3_BASE,
+                            GUEST_VSMMUV3_SIZE);
+    if (res) return res;
+
+    res =3D fdt_property_cell(fdt, "phandle", GUEST_PHANDLE_VSMMUV3);
+    if (res) return res;
+
+    res =3D fdt_property_cell(fdt, "#iommu-cells", 1);
+    if (res) return res;
+
+    res =3D fdt_end_node(fdt);
+    if (res) return res;
+
+    return 0;
+}
+
 static int make_vpci_node(libxl__gc *gc, void *fdt,
                           const struct arch_info *ainfo,
                           struct xc_dom_image *dom)
@@ -942,6 +972,10 @@ static int make_vpci_node(libxl__gc *gc, void *fdt,
         GUEST_VPCI_PREFETCH_MEM_SIZE);
     if (res) return res;
=20
+    res =3D fdt_property_values(gc, fdt, "iommu-map", 4, 0,
+                              GUEST_PHANDLE_VSMMUV3, 0, 0x10000);
+    if (res) return res;
+
     res =3D fdt_end_node(fdt);
     if (res) return res;
=20
@@ -1408,6 +1442,9 @@ next_resize:
         if (d_config->num_pcidevs)
             FDT( make_vpci_node(gc, fdt, ainfo, dom) );
=20
+        if (info->arch_arm.viommu_type =3D=3D LIBXL_VIOMMU_TYPE_SMMUV3)
+            FDT( make_vsmmuv3_node(gc, fdt, ainfo, dom) );
+
         for (i =3D 0; i < d_config->num_disks; i++) {
             libxl_device_disk *disk =3D &d_config->disks[i];
=20
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268271.1557661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OHJ-0003ox-Hg; Tue, 31 Mar 2026 01:52:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268271.1557661; Tue, 31 Mar 2026 01:52: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 1w7OHI-0003l8-GR; Tue, 31 Mar 2026 01:52:24 +0000
Received: by outflank-mailman (input) for mailman id 1268271;
 Tue, 31 Mar 2026 01:52:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OHF-00036o-JI
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:52:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OHE-00HCrd-Uz
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:52:20 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28c4-e002-0a2a0a5209dd-0a2a450a9b40-20
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:20 +0200
Received: from [52.101.69.85]
 (helo=AM0PR83CU005.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28d4-1772-0a2a450a0019-34654555cfcb-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:20 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by GVXPR03MB11035.eurprd03.prod.outlook.com (2603:10a6:150:287::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:52:15 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01:52:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BNzAri/5Z+kDRPswJMqBn7FXz54NvyoI5lqhxlfxsKF4hN/skFjJzdslZCvSCTARFSDJSm8nebJQOYWS1t6CzT60X35JsfrnH2fiJQTZxi4W1L3OgTQ70FTqqYin9Uj79yn7uUQwBahM4o8wlkzsu1WB3FQdZQUWe/5+Mu8isHEBbczS9KZIDHIIgvbzZGpf8VvtNj2kDxyYydy2B8kKJ8LCEqar5/eLf/VuCIho3fKa/yRl066ChvPrPA5FwgSCuBbdZdU6/pBdyDE6bmtzZDl9GBUn8DJYdv6RMpBSBh7rA7i1C7pruZQqDqpDxs1tQgVUwYUUe6Q+ih80oUt+dQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/2Gp9ycmYctygUv4VGro3ykM2qKvLae9Koft7uwdj+w=;
 b=Y+wVa6jRsOQdv5GlfzI8KU5uXf4WZy59jsZjhzjxE0OY/PztHdP+7byt1Tio9cGiiP5snFw+6q9WITNFTmHSr83EtdBn5zv6OY8k5RA6ak0HMdJVGLxOg5+FbRSlJeLwuQT6Z2MvF2SZrNrujrebuvN680PUry3CrS6tW+ydusVF9qz8fZ4EyA8R1FfVHUmI0NmC2D/pE7mowx0qZFkuuDv5uTvj0MISVfjkE4iJFXucJGwJY1wZNtiuwOEocDqpvvFQozYL9OfInGZmCCFh1V5imPjqKRL5nRP1Tk9Faowu1hRjMZBivrYpSLKfTZ8u/cihmxpnHCvl1ZVOTKPaIQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/2Gp9ycmYctygUv4VGro3ykM2qKvLae9Koft7uwdj+w=;
 b=YVQYL0pGFQvzQpIAsVi2ywAfCMQ3XTclUGqZd7bfR2hsGtqHiXKa8D2ZKfqa2E9M0TlbjTkQweIAboWnxPy5JcnTfC9e3bCRJxdLF2ZnKjU+NYxebOX5ftt0/oqZf+/kNbxXewkX9jwFDBu9MYBan4mX5sACZHlJrAgfk0XmSasrdeKOnJAoIHTgbYWxZFZAa4ARdiOBVy6XswtUU7MvndUIZrfshYFo1VPHcxnvoC9+iUbIzMYafoKhw5ZOykqmU1NH4s8O4jOLXrTtpM/h+TDTOmBBh35f3XJvZBdwHHtzM8nc0D+Qdhx0Hw+sqTIAXZ93xmcUoNjaO6Y7WlqT0A==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH v3 17/23] xen/arm: vsmmuv3: Alloc virq for virtual SMMUv3
Thread-Topic: [PATCH v3 17/23] xen/arm: vsmmuv3: Alloc virq for virtual SMMUv3
Thread-Index: AQHcwLEAWcQmV2Z+ZEu7R9S6mbl5yg==
Date: Tue, 31 Mar 2026 01:52:15 +0000
Message-ID:
 <f06cb7dce5ae69de77164cef365ba659a077348f.1774918270.git.milan_djokic@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774918270.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|GVXPR03MB11035:EE_
x-ms-office365-filtering-correlation-id: b9d0b3ab-b334-4321-be98-08de8ec82291
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 iFP+CNMJB6ReTOYpTxHb8nr9hQGmVKVDFS+tKiciPiqY1HjQmbxKkg0rvzCM72Y+mt8TBgCwAuWXgWfyUhOYkpcwF46Xt2eL1K/5Sf5+qKhnl5leeMxqB/eAKZ/6qYSdih/WfutS4BCRCbdQBcdLOE1BbGl7AYnrTOO/Zf6UjVn7na3Hrkm/jK9Owgmzzzp0TyqmxVk9TQJWQJ5srkutJuMTW0Y7MHh5PIpgaqvU9oyDHbLaMDYeKLydHNljoorN4CFUlLF8JQpuNJ5Ou1X1Td2TXT3YEhZTX1gFw1BcV98NjbeiOiUy0lVqMV1YMwp7SgBYFD0oTSCyB21S1Cs5/GyjBOSqFtgzHKqhyClrJXpQqmyMNsFbt3R4wojHTIlx2TBsEaA/W1+BhAqTE+T4jFmFHKKiDxf5meQIYFufSEt2OspiW+aI6uhcEvc7XrSCaTezLLA5z4hZ7ztWYtMuRMFjcfYKXE2W+ITUXuwIjXWaimNnFBip0OvMtNP3Qx+gI3VxUUyJe1XUIalKKZs4r8m9Y2kk17tFbrX6rDytDXpE7zaaZ29szYJXVZq9B8t9wqHcXL+PVh50EidxqkeFFcTpkX31OUCIPz/mgswamenX6YLkEF/CDxCCwDAg+CO9eekQxR7yFLjw8gTVT8raikCUsYEmkxiTirkZSv4v0otyggAv13e9ES9QqLunP+jdE8u5N2urKDqLqpfLaaTxM4IityTm0AmNQGIykz7VKfFUM6zd0Y5E9uy9NPCQxRpmAL2fqngMr+ca7utH2oiNfyZ7YFg3tTVNLeZ25wpTBow=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?UcLEW46plBSol9PN6atgARvEtQ1kg7dtpcz13q2y+CwAJQi5PeOHxcdSzM?=
 =?iso-8859-1?Q?mXakKv7rA097lM9micvFHiHZWVl0+aRcgi693E3nGpcKy5e15uSBtVMRLu?=
 =?iso-8859-1?Q?xbSzprKgG8fLRXGT9AV/f5xLnXP1DoVgQxno962SWLE9Pn6wJV1SUDOBav?=
 =?iso-8859-1?Q?DNM0eS179xeuBAgSYtWXkFBZa6MHLS3lyLapYhwjoyDPWrfmpQ6odiALm6?=
 =?iso-8859-1?Q?iZ+ydE8LYIrlIiLox22JzmG400MfWwOlBYP/9J21U7ifOE8PBIa8AtI8f/?=
 =?iso-8859-1?Q?gRVUEN0ePSWugYKHhNnUaSRMAM1ONYk7n/hKinZRaTE+3zn9wYM1j9MyeJ?=
 =?iso-8859-1?Q?c1EgTxVRblSLi1bjVUSzP6AjrypNeiYCIjdXGlLm/02kL23HGTohFCxvXN?=
 =?iso-8859-1?Q?GDG0vzxGKpCFMcwe9CF+NwpOMFxJ7AzF0U/wG4BrCM96FhsUmtCUCnx8CF?=
 =?iso-8859-1?Q?p6Qv68n7PpCi0oupoaHL3QpfP/CdNG0ZRxCWMfV4jU97cFyTcvOWDmi2R0?=
 =?iso-8859-1?Q?WRl+uK8xO5R7MeSHQH8ZfzwzBLl7EhE+zhWzKZyv52v4tp87xy9B22qioF?=
 =?iso-8859-1?Q?PumByGQ8ZsuF2PKNOe3WQLXQfV8c05vevy6hDNcXWcn4l++nhvPl/5xrNB?=
 =?iso-8859-1?Q?qE10GwZXVs7/WSpKunsQLaHVw6jfBkv3ZplTv4bnqUoE/hZ+BgsPcR/zMG?=
 =?iso-8859-1?Q?Ew9XEqpyvpkXfJkDsfugxR72MEiK2mb9R4CImm6LmmrBBjJEbI66FJEdvk?=
 =?iso-8859-1?Q?O3iNGRiU+Dp+FdEDCaVNt29YGEUGn+2KQn5om8s2++uBvoFKM84BNlbCOn?=
 =?iso-8859-1?Q?3hOqiVtTYvdDpiD1dumKIdc38vOxmg0ExaO2sYtifXpH6jgBPJDNQoMC+q?=
 =?iso-8859-1?Q?fdPDZn+aJQOmhvteJK66nG/p3AzZWcvL37e+jNa7mPofaDszFQAXOPPEo0?=
 =?iso-8859-1?Q?GUqz1eBEhJZdIu68X2PKSaBT2fcF+GxgwpDRqxeP9+vAHRlAB+tOJeClTH?=
 =?iso-8859-1?Q?Kt5QoVIlopoEoPlfG4PT+d2pIO8b1ZyiEvGg5zBK+oL/oUyt7s/rSgIwQv?=
 =?iso-8859-1?Q?2Fl+jGnhDvHni/8Lk+Rxps48/4cfhIYlAtKFt/lkP30QuAcvu/mTvwuJQ/?=
 =?iso-8859-1?Q?VCLlD6UoHVY/5WLZUPDI2ugm+tijPWh52QDzqq8FQyKGIfOBi78TDn0Rjn?=
 =?iso-8859-1?Q?sYd9bgOqsvB9oLxzObMr9gr6HCTbwWeNWqtyM02+LagK1ACD6G+9RpKNTl?=
 =?iso-8859-1?Q?C96lyk0rXAoA+pWGD278+sPL8z8IAE+bDd/2Y671AsNNp0BFLj10v/SSwf?=
 =?iso-8859-1?Q?CRY4sxhdDkNc8GlpW2Tzh3/eXAtHj4l1ACJMv+mCqSM3wA40dRzaWYqUhC?=
 =?iso-8859-1?Q?d6nwwo7bNYgYeMkWNjzWBHo4kNWbQQHlx7Xv+U5kJv2cvnb2s8487VzEVM?=
 =?iso-8859-1?Q?JdsAgzl1e66okW1TK2o7CEYrZkYbq8p8b9pNDsl2nCznFYOSr9Wbu+QIEG?=
 =?iso-8859-1?Q?VlhScvk/g81IsmQHv6NgQ1ghTehPRFusvSxwaGJBUYDkYoipwzLCdYpzqG?=
 =?iso-8859-1?Q?FZJyzaZa6s9Qv2DlHANz8OJlSQJW/tThMYq2dnijVpWSBETCVfYH1wnL/n?=
 =?iso-8859-1?Q?ph1DD5fI0k8EX2souCjrZH4L/ODhG0iY1gcosYJVtxUKbG8mGI/uTqOJ/m?=
 =?iso-8859-1?Q?hed8Y33DqyQgcRA2PyDVKEHXTbPs7zZOht/RheofFk8cOmDeBmfeoOStch?=
 =?iso-8859-1?Q?bTHKq9Ifd8r51wmTkquLOqh/o5AUQuJNjjvZn5POgYJeD7/2eDz6Vx5hk3?=
 =?iso-8859-1?Q?NrGnOT0GfgETUMy0GRvmd/9BSaZ7uGY=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b9d0b3ab-b334-4321-be98-08de8ec82291
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:52:15.7499
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Oe711C1N6GET4z2LuBTQPKWcMRZ2722fcRquR6gM6wHJBKO7EUEqL3zEDWuEhzW8HRI+Bux4cl3kk6r9jN+xYQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB11035
X-purgate-ID: tlsNG-4011c0/1774921940-BEE95900-7B82EB4C/0/0
X-purgate-type: clean
X-purgate-size: 5412

From: Rahul Singh <rahul.singh@arm.com>

Alloc and reserve virq for event queue and global error to send event to
guests. Also Modify the libxl to accomadate the new define virq.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 tools/libs/light/libxl_arm.c           | 28 ++++++++++++++++++++++++--
 xen/arch/arm/dom0less-build.c          | 17 ++++++++++++++++
 xen/drivers/passthrough/arm/vsmmu-v3.c | 13 ++++++++++++
 3 files changed, 56 insertions(+), 2 deletions(-)

diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index eb879473f5..803c3b39b7 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -86,8 +86,8 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
 {
     uint32_t nr_spis =3D 0, cfg_nr_spis =3D d_config->b_info.arch_arm.nr_s=
pis;
     unsigned int i;
-    uint32_t vuart_irq, virtio_irq =3D 0;
-    bool vuart_enabled =3D false, virtio_enabled =3D false;
+    uint32_t vuart_irq, virtio_irq =3D 0, vsmmu_irq =3D 0;
+    bool vuart_enabled =3D false, virtio_enabled =3D false, vsmmu_enabled =
=3D false;
     uint64_t virtio_mmio_base =3D GUEST_VIRTIO_MMIO_BASE;
     uint32_t virtio_mmio_irq =3D GUEST_VIRTIO_MMIO_SPI_FIRST;
     int rc;
@@ -102,6 +102,16 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
         vuart_enabled =3D true;
     }
=20
+    /*
+     * If smmuv3 viommu is enabled then increment the nr_spis to allow all=
ocation
+     * of SPI VIRQ for VSMMU.
+     */
+    if (d_config->b_info.arch_arm.viommu_type =3D=3D LIBXL_VIOMMU_TYPE_SMM=
UV3) {
+        nr_spis +=3D (GUEST_VSMMU_SPI - 32) + 1;
+        vsmmu_irq =3D GUEST_VSMMU_SPI;
+        vsmmu_enabled =3D true;
+    }
+
     for (i =3D 0; i < d_config->num_disks; i++) {
         libxl_device_disk *disk =3D &d_config->disks[i];
=20
@@ -170,6 +180,11 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
             return ERROR_FAIL;
         }
=20
+        if (vsmmu_enabled && irq =3D=3D vsmmu_irq) {
+            LOG(ERROR, "Physical IRQ %u conflicting with vSMMUv3 SPI\n", i=
rq);
+            return ERROR_FAIL;
+        }
+
         if (irq < 32)
             continue;
=20
@@ -907,6 +922,7 @@ static int make_vsmmuv3_node(libxl__gc *gc, void *fdt,
 {
     int res;
     const char *name =3D GCSPRINTF("iommu@%llx", GUEST_VSMMUV3_BASE);
+    gic_interrupt intr;
=20
     res =3D fdt_begin_node(fdt, name);
     if (res) return res;
@@ -925,6 +941,14 @@ static int make_vsmmuv3_node(libxl__gc *gc, void *fdt,
     res =3D fdt_property_cell(fdt, "#iommu-cells", 1);
     if (res) return res;
=20
+    res =3D fdt_property_string(fdt, "interrupt-names", "combined");
+    if (res) return res;
+
+    set_interrupt(intr, GUEST_VSMMU_SPI, 0xf, DT_IRQ_TYPE_LEVEL_HIGH);
+
+    res =3D fdt_property_interrupts(gc, fdt, &intr, 1);
+    if (res) return res;
+
     res =3D fdt_end_node(fdt);
     if (res) return res;
=20
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index a48edb9568..7380753fa2 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -225,6 +225,7 @@ static int __init make_vsmmuv3_node(const struct kernel=
_info *kinfo)
     char buf[24];
     __be32 reg[GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS];
     __be32 *cells;
+    gic_interrupt_t intr;
     void *fdt =3D kinfo->fdt;
=20
     snprintf(buf, sizeof(buf), "iommu@%llx", GUEST_VSMMUV3_BASE);
@@ -255,6 +256,22 @@ static int __init make_vsmmuv3_node(const struct kerne=
l_info *kinfo)
     if ( res )
         return res;
=20
+    res =3D fdt_property_string(fdt, "interrupt-names", "combined");
+    if ( res )
+        return res;
+
+    set_interrupt(intr, GUEST_VSMMU_SPI, 0xf, DT_IRQ_TYPE_LEVEL_HIGH);
+
+    res =3D fdt_property(kinfo->fdt, "interrupts",
+                       intr, sizeof(intr));
+    if ( res )
+        return res;
+
+    res =3D fdt_property_cell(kinfo->fdt, "interrupt-parent",
+                            kinfo->phandle_intc);
+    if ( res )
+        return res;
+
     res =3D fdt_end_node(fdt);
=20
     return res;
diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index 7a6c18df53..a5b9700369 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -733,6 +733,7 @@ static const struct mmio_handler_ops vsmmuv3_mmio_handl=
er =3D {
 static int vsmmuv3_init_single(struct domain *d, paddr_t addr,
                                paddr_t size, uint32_t virq)
 {
+    int ret;
     struct virt_smmu *smmu;
=20
     smmu =3D xzalloc(struct virt_smmu);
@@ -748,12 +749,24 @@ static int vsmmuv3_init_single(struct domain *d, padd=
r_t addr,
=20
     spin_lock_init(&smmu->cmd_queue_lock);
=20
+    ret =3D vgic_reserve_virq(d, virq);
+    if ( !ret )
+    {
+        ret =3D -EINVAL;
+        goto out;
+    }
+
     register_mmio_handler(d, &vsmmuv3_mmio_handler, addr, size, smmu);
=20
     /* Register the vIOMMU to be able to clean it up later. */
     list_add_tail(&smmu->viommu_list, &d->arch.viommu_list);
=20
     return 0;
+
+out:
+    xfree(smmu);
+    vgic_free_virq(d, virq);
+    return ret;
 }
=20
 int domain_vsmmuv3_init(struct domain *d)
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268276.1557667 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OHK-00043P-Cd; Tue, 31 Mar 2026 01:52:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268276.1557667; Tue, 31 Mar 2026 01: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 1w7OHJ-0003zT-IR; Tue, 31 Mar 2026 01:52:25 +0000
Received: by outflank-mailman (input) for mailman id 1268276;
 Tue, 31 Mar 2026 01:52:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OHG-0003Cq-1d
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:52:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OHF-00HCrd-Ae
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:52:21 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28c4-e002-0a2a0a5209dd-0a2a450a9b40-24
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:21 +0200
Received: from [52.101.69.85]
 (helo=AM0PR83CU005.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28d4-1772-0a2a450a0019-34654555cfcb-4
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:21 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by GVXPR03MB11035.eurprd03.prod.outlook.com (2603:10a6:150:287::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:52:17 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01:52:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=y9XVFj5IeyYpkeKxZqajSVYSmjKa16sAjq+hQIxaZvu+8iGknJRaXFxz1QCe8Nw61S4DHvNkgcORk+QNdHeJ9o4g4RwW/viPzIt1q5MSe2uLHNp9LXoUHaF5k/+Jf+rhsNsRoe61nYtVPl1tqnOWgduUeIOX6UZrCcVsNCoiAFeTK9LtDteyYbWI8X/eh7x+X+ezJGh8xE1Ginud42cVEPowvVxGYNsNhGTHoRLo7/30NijicniwFONjs6ru98jJS6/JstPx3xTgrI/gjfA/IOxhZIAdJ7uRxlDbm90biD6nVyDpxbw44GaBv+tiCzSyBr1PLNGujEOYdc89zGtlsw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0lisQP+TLfEQnpO/kQ1D6SirUFzjk70NyNV3O+NFZVg=;
 b=tCPLOMlkfiRdwA0LpdN0+Vj4nyE3NSIn36+/K9g4Gink5kN5tyGcw73vD9KydkqubvfMJe0UVPVYpHJZasj4Af62Rv3V3JIjy4DAEZjXZOwVS4ddGR18Izzh4mtU36MODHb/sigWXfxYblFFeCjCMQwQn3bjZG8bMoBquI8ceu1lZCSqMlUsHiU5+szWqr5WDa0+4ny1CS24Ry2FUuZwIRHljakdd6Ky+u6HnwR82GxsYDtKweiJ0xAQNao25wWLAc+/arM72BUzQYkmToTZazcbU0Z2vpgUYLfGpVYlIRj5tjihF1lARt0AMrFmnsbQIy+EJSgmQXz5LL/43Y5fKQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0lisQP+TLfEQnpO/kQ1D6SirUFzjk70NyNV3O+NFZVg=;
 b=qXhxn11un5nxvO4SwPbeLSIGPNKzlxC4YUKZUOCp8qq3EJ6ncY9Bsj5F7l8QM21n17TCLbH0oq+cBQLfGHAxt/jmSEo226qFLLLTaf0RqTjxz98A3Qxzthe0A2yaggDofqzvaD6YtpjtKqzQ9iKnYV6UkJFb2/V4WaQHjACu/3x8C0YDveF4WA8Q49sNS4NVG9sxw17fBCgFq27OEA0J7C0tA7L1klz0jJ5QLAhKFPdxqiQzNdcNNAXIauiM0Au67ar3J0OPqQyuGOHqo6hTdqtljuqOjwkOTu1Mro1ApKHgGqYb5azLYUBfKbsrkCyyUd55ahqvpOKEYkQ9o2mW2w==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH v3 18/23] xen/arm: vsmmuv3: Add support to send stage-1 event
 to guest
Thread-Topic: [PATCH v3 18/23] xen/arm: vsmmuv3: Add support to send stage-1
 event to guest
Thread-Index: AQHcwLEA0bNvFoMK9kCOcLN/fsy07w==
Date: Tue, 31 Mar 2026 01:52:17 +0000
Message-ID:
 <51e727a521f25c3eb83b374529c8632fb8b2f314.1774918270.git.milan_djokic@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774918270.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|GVXPR03MB11035:EE_
x-ms-office365-filtering-correlation-id: 11912b27-d409-46d1-362f-08de8ec82365
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 32FG1xp4wR3vht2/Zdd1VfsuE7h1wzn7zejv8RDgNo6Q3oUluRidqSfNbia9K+Nq3KHfVvkAfYvA3BU4qU3m6euhh0picfZv2X+Omm1V3Mp8Ng+BVLueIoemG9TwOVXhbpSUibgTEBOd17M1hr90vRRIm1sry/zMKTkqdx+bFUEDGh9/enrlde8ZUYc3tWrvv30xxj8yTihsG0F1w966lwx38eG7iX26ylUknoXocY2emD6CaeYu6+8pSunsIIRULmZQeK2QNK4FfpkjgFzA0guhLmYRHOGYkTpOa5LSQrKzuzU7qKXUT+LzJ8LyB+ErB+9ftQo0WukQKzS60DG6CYRF/vYKKlQSIBQrwg8ithxUmD+CDoHgSKcwNJ86R8H22npdz2eJ+0Xm4NsfyZO+xOQlciwMpikk5sdD5Awy+FHJ9bhe7aIP2bxB4twx2t3Cbl7sEG5mUxLw+qujzfuilpCwGWGXwvYn/VguD+sH05gl9vxa/7f1q/S3f0qVLdp4SlRuAMqG2vEE1JXgEZp2nITDQfuDGI3OLtX/IU/9drPtTsjbbSu/B4GqmittndjdFY2FUdK+0rg+3N7ZIPT/PHfFCfJX1CrClqIrCpZf31EKWsbn++XageX7gcbJtanUmCI19t7fAaV9z17AeIZM4YRo8dbH+L06XPnEvOd2m2eRcGvgY/av1uhx0QZfBfoUCS3/c8ho3Kg+UhnJL7HwlJ19ZPP5Ihj9lrXu7H4c+mkCwvvtDLLIUV7M5HtXNQuaOiOIi5pVmr9E/Hk0x8ShfThQgRW2h1w0m3E3WMqbpvQ=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?y0uITYCjOl8v71ZAFvfHzqmM426YA5IQ4CFsY3h7PUmKTfmHjgzKlW0tm8?=
 =?iso-8859-1?Q?3Xyvh1+k+pgUXOIAr249WAeE48kbiiuglfbGNYQCdBpDzHt1sf/W4Mw2Yw?=
 =?iso-8859-1?Q?bVGgwW5KClzjqw1Okp3CiwO9v0Eg0/E/0Bax1ToIzX7H9WtUwsfyTFlorQ?=
 =?iso-8859-1?Q?guk+tCj66kJKi8YOrChZtih2BNb7rMrWJEgFs7wQexA9CUw0KvpG4sUHJU?=
 =?iso-8859-1?Q?xWK9NK0s2cDM2Px4LnwYspvANQP5i/uTP7AHvk4/4cYgsl/gfHJ+bLbPfL?=
 =?iso-8859-1?Q?XQSQf+hrM1PqBxoHGJqid3v99cSVLSsSiF7P5+iapZbGV/UPHFXEseuMQM?=
 =?iso-8859-1?Q?JCMHaVPn9okxl2xGkBEpePJet1j7K24GC7an2QH8rcvd1vqYlwkSSNcZ6T?=
 =?iso-8859-1?Q?916KKV8p+zLX2Tn/OntfkVjQ0p+FkHtGP0blKljaT89c7C6Q4kwlvDRc4z?=
 =?iso-8859-1?Q?e751V7Cc/2vRLm0w5Abddce3DfPzfZSM964/iOgRYba/QpTAcmZFdsixQS?=
 =?iso-8859-1?Q?luRLmxKCjASF8s+ZgL8wYbddpBTr9OXC1CAnnyxsHuxSg2/IEX+12PLCy6?=
 =?iso-8859-1?Q?QmBMXK8WNG5EBN77Q2vjHWbGAtXXJPxjGP/toew403BAa4Z3zmoOQHxAAS?=
 =?iso-8859-1?Q?JpW02ynUBGnyxkaooou02fLEJ5i7UQXa49hY+wJXHCRtQ7V6a2+VuwwB7V?=
 =?iso-8859-1?Q?Ci5pcgHSOB9QzYEl2BZRp/ypp+lUDQXIwz/NJFaKOjxgj/KpATVaXbRn5W?=
 =?iso-8859-1?Q?7uEHyyIuDe4vFKzrp7cmpkqKrOFAuiaUGThufJqAGE5DPA6Ia8rmO941FB?=
 =?iso-8859-1?Q?Sqtvb2WpwCMBVB5XXNQheESk5D+DVTYzJk/G7tjSPXwVr4XwI5DttN2aXN?=
 =?iso-8859-1?Q?7KImKu57p8wO2utcB776vGYWoiqb6cGEw5zH/Svh8CLKyBYj4TNYhyl8Ba?=
 =?iso-8859-1?Q?GXeURbYr290jAFHhqq4813oh7oDxezCLw7oDLDWv8l5nLUmxrTP1fwQ/Sj?=
 =?iso-8859-1?Q?2el7bQW3O6HJUW1hLJ47Y93M6p9fv/puerI7pUiIgOLNmil1XfU2fi3QyS?=
 =?iso-8859-1?Q?zrsb0arqLGVEB0ucpRdcxhsvloFn3Icwas2dht5GIyWtZFBEqEnpAOZggI?=
 =?iso-8859-1?Q?omFKtCbs0DOIUcmE73C5X0D5HIIT3xKzZeGj7lNS4ft0zMUga9+v3vmuBh?=
 =?iso-8859-1?Q?W1IKKygFKlCpjqNk9STtelBxMzWauTtJHRWYZglbbomKgqVWxOc7v3XWES?=
 =?iso-8859-1?Q?b+TEMkntPKA5dPbAYM1eIS8W5ATE7A51zzbfJoK6d4N1/SaALUx6qFZ8Oq?=
 =?iso-8859-1?Q?VToTW2FwigZ3zBWGi0Pbmf3qG+Aig1m7JVyuUjzzf9bAwbxq3MSMYV5Id0?=
 =?iso-8859-1?Q?asORaVA4D5Janolx4mZpq4+yFVDT90/kFJVUdeaPllFbG6KeQrv0ryZzAR?=
 =?iso-8859-1?Q?JxK+0JBjii2Qx81Vl+zdOIrvukSXpBCtMJNTYlLbK+ljJhGnkvFixgKD4i?=
 =?iso-8859-1?Q?2L18zgRNh2X7MJp9VftsBYMlvW9R1WlicrjWLbxLm9QnmoHce6zjNQ3pqK?=
 =?iso-8859-1?Q?uTsgI6O12cWbylhlEEKM3JwOuAeNFVcMNnS/3fc/PNo7TcWTgyLfXebyNw?=
 =?iso-8859-1?Q?jS8ipwjTtnPC/+gZytnu/vFdFRZp7RPkA4N4ghkDXkrjyQFaox9FhDx1pM?=
 =?iso-8859-1?Q?1rF0Wsm/hjIXkQ2qkcwoKn7wQ7x96lCkwI1LgSs9iVtaN3AkPUpGk4CHca?=
 =?iso-8859-1?Q?R0vQPCFE3WHg5U5bWKrbxcGuHq4VRyw2dbKGFgA2HQOyChtP3TRteuUCif?=
 =?iso-8859-1?Q?gQ2k+FU2dogK1DHTktPNjC+NN0REXME=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 11912b27-d409-46d1-362f-08de8ec82365
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:52:17.1468
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: BnLu16az8+QHAcaHNv40c072Pq5BvSRmtqABWR83taOUnYGCAqH8915erjPTqhHBDbS+ecpMSatSFZ/uAytGWA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB11035
X-purgate-ID: tlsNG-4011c0/1774921941-53E9D900-67EF7A69/0/0
X-purgate-type: clean
X-purgate-size: 5552

From: Rahul Singh <rahul.singh@arm.com>

Stage-1 translation is handled by guest, therefore stage-1 fault has to
be forwarded to guest.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/drivers/passthrough/arm/smmu-v3.c  | 48 ++++++++++++++++++++++++--
 xen/drivers/passthrough/arm/vsmmu-v3.c | 45 ++++++++++++++++++++++++
 xen/drivers/passthrough/arm/vsmmu-v3.h | 12 +++++++
 3 files changed, 103 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthroug=
h/arm/smmu-v3.c
index cf8f638a49..4c1951d753 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -869,7 +869,6 @@ static int arm_smmu_init_l2_strtab(struct arm_smmu_devi=
ce *smmu, u32 sid)
 	return 0;
 }
=20
-__maybe_unused
 static struct arm_smmu_master *
 arm_smmu_find_master(struct arm_smmu_device *smmu, u32 sid)
 {
@@ -890,10 +889,51 @@ arm_smmu_find_master(struct arm_smmu_device *smmu, u3=
2 sid)
 	return NULL;
 }
=20
+static int arm_smmu_handle_evt(struct arm_smmu_device *smmu, u64 *evt)
+{
+	int ret;
+	struct arm_smmu_master *master;
+	u32 sid =3D FIELD_GET(EVTQ_0_SID, evt[0]);
+
+	switch (FIELD_GET(EVTQ_0_ID, evt[0])) {
+	case EVT_ID_TRANSLATION_FAULT:
+		break;
+	case EVT_ID_ADDR_SIZE_FAULT:
+		break;
+	case EVT_ID_ACCESS_FAULT:
+		break;
+	case EVT_ID_PERMISSION_FAULT:
+		break;
+	default:
+		return -EOPNOTSUPP;
+	}
+
+	/* Stage-2 event */
+	if (evt[1] & EVTQ_1_S2)
+		return -EFAULT;
+
+	mutex_lock(&smmu->streams_mutex);
+	master =3D arm_smmu_find_master(smmu, sid);
+	if (!master) {
+		ret =3D -EINVAL;
+		goto out_unlock;
+	}
+
+	ret =3D arm_vsmmu_handle_evt(master->domain->d, smmu->dev, evt);
+	if (ret) {
+		ret =3D -EINVAL;
+		goto out_unlock;
+	}
+
+out_unlock:
+	mutex_unlock(&smmu->streams_mutex);
+	return ret;
+}
+
 /* IRQ and event handlers */
 static void arm_smmu_evtq_tasklet(void *dev)
 {
-	int i;
+	int i, ret;
 	struct arm_smmu_device *smmu =3D dev;
 	struct arm_smmu_queue *q =3D &smmu->evtq.q;
 	struct arm_smmu_ll_queue *llq =3D &q->llq;
@@ -903,6 +943,10 @@ static void arm_smmu_evtq_tasklet(void *dev)
 		while (!queue_remove_raw(q, evt)) {
 			u8 id =3D FIELD_GET(EVTQ_0_ID, evt[0]);
=20
+			ret =3D arm_smmu_handle_evt(smmu, evt);
+			if (!ret)
+				continue;
+
 			dev_info(smmu->dev, "event 0x%02x received:\n", id);
 			for (i =3D 0; i < ARRAY_SIZE(evt); ++i)
 				dev_info(smmu->dev, "\t0x%016llx\n",
diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index a5b9700369..5d0dabd2b2 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -103,6 +103,7 @@ struct arm_vsmmu_queue {
 struct virt_smmu {
     struct      domain *d;
     struct      list_head viommu_list;
+    paddr_t     addr;
     uint8_t     sid_split;
     uint32_t    features;
     uint32_t    cr[3];
@@ -237,6 +238,49 @@ void arm_vsmmu_send_event(struct virt_smmu *smmu,
     return;
 }
=20
+static struct virt_smmu *vsmmuv3_find_by_addr(struct domain *d, paddr_t pa=
ddr)
+{
+    struct virt_smmu *smmu;
+
+    list_for_each_entry( smmu, &d->arch.viommu_list, viommu_list )
+    {
+        if ( smmu->addr =3D=3D paddr )
+            return smmu;
+    }
+
+    return NULL;
+}
+
+int arm_vsmmu_handle_evt(struct domain *d, struct device *dev, uint64_t *e=
vt)
+{
+    int ret;
+    struct virt_smmu *smmu;
+
+    if ( is_hardware_domain(d) )
+    {
+        paddr_t paddr;
+        /* Base address */
+        ret =3D dt_device_get_address(dev_to_dt(dev), 0, &paddr, NULL);
+        if ( ret )
+            return -EINVAL;
+
+        smmu =3D vsmmuv3_find_by_addr(d, paddr);
+        if ( !smmu )
+            return -ENODEV;
+    }
+    else
+    {
+        smmu =3D list_entry(d->arch.viommu_list.next,
+                          struct virt_smmu, viommu_list);
+    }
+
+    ret =3D arm_vsmmu_write_evtq(smmu, evt);
+    if ( ret )
+        arm_vsmmu_inject_irq(smmu, true, GERROR_EVTQ_ABT_ERR);
+
+    return 0;
+}
+
 static int arm_vsmmu_find_ste(struct virt_smmu *smmu, uint32_t sid,
                               uint64_t *ste)
 {
@@ -742,6 +786,7 @@ static int vsmmuv3_init_single(struct domain *d, paddr_=
t addr,
=20
     smmu->d =3D d;
     smmu->virq =3D virq;
+    smmu->addr =3D addr;
     smmu->cmdq.q_base =3D FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_CMDQS);
     smmu->cmdq.ent_size =3D CMDQ_ENT_DWORDS * DWORDS_BYTES;
     smmu->evtq.q_base =3D FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_EVTQS);
diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.h b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.h
index e11f85b431..c7bfd3fb59 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.h
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.h
@@ -8,6 +8,12 @@
=20
 void vsmmuv3_set_type(void);
=20
+static inline int arm_vsmmu_handle_evt(struct domain *d,
+                                       struct device *dev, uint64_t *evt)
+{
+    return -EINVAL;
+}
+
 #else
=20
 static inline void vsmmuv3_set_type(void)
@@ -15,6 +21,12 @@ static inline void vsmmuv3_set_type(void)
     return;
 }
=20
+static inline int arm_vsmmu_handle_evt(struct domain *d,
+                                       struct device *dev, uint64_t *evt)
+{
+    return -EINVAL;
+}
+
 #endif /* CONFIG_VIRTUAL_ARM_SMMU_V3 */
=20
 #endif /* __ARCH_ARM_VSMMU_V3_H__ */
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268277.1557677 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OHM-0004Gq-4H; Tue, 31 Mar 2026 01:52:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268277.1557677; Tue, 31 Mar 2026 01: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 1w7OHK-0004C3-PC; Tue, 31 Mar 2026 01:52:26 +0000
Received: by outflank-mailman (input) for mailman id 1268277;
 Tue, 31 Mar 2026 01:52:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OHG-0003GL-7O
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:52:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OHF-00HCrd-Il
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:52:21 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28c4-e002-0a2a0a5209dd-0a2a450a9b40-26
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:21 +0200
Received: from [52.101.69.85]
 (helo=AM0PR83CU005.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28d4-1772-0a2a450a0019-34654555cfcb-5
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:21 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by GVXPR03MB11035.eurprd03.prod.outlook.com (2603:10a6:150:287::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:52:19 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01:52:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ANVGf2u7+TEta5lzXUQH/LMhZdZFJsqoqmhmgNpnAwXShNYmKUY9uMc1XPvrUsn6mSeKPJgePIkK/DBfgNVue2l7CbKj+wpccQyNQ1U9ew3hd0ytbHbWCWNrzEK7HTtsIX1Yr6bY+rYuFEwHOuNblmtM/mM2Q3gsUE6/VpK+UP3elyNQVAM50qAgtP85EjzS9OkUqGzRDTnNikYKN4dGmjt2iFOsJU8Ok9Sa5DsAZH0PeF2sQ1QKQPzXrxJTfV4vl2rm2FxVt/wqivFx/W6egP5uscGAhXjjJnpp5scirX/7XhRWvpGuyh3oVTSf3wLgOE6hLsE/4y3Vwn9X08fslQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=O46ZCtqqAtKuVVyR61YNPzdDBAuzXaUE5Bb7qosufwc=;
 b=ldGB6fx+lmnA8RF644BllAEqxqiU5HFhbAWxCXUr00N91uaL/FoUG1I2YB8hYrm+gUStynK7UVc0YVAwGs5vMRqjzvgWvfKrQdAUpmznlALc3qyq7BQpUDI2qturzuv8XUEqATL4DAYmzp8ISRmDBgv9Wikbg3h02h4lRsbPSJxBbsM9BcyajGHq/90+AhVXQ2iOl5Wz5gfBbGHipalK/DzKGluI463snZR/AtrLHeBHFnnQ4cjqMX/xTN62dvAnROeZdeTLPfH4+EfH6mYbgLrydO2enbSV2Zx3uivDtLlpOSQd3/TyFJYMC04v1KbWmn+b9SwtT57B1qOtNDKQjQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=O46ZCtqqAtKuVVyR61YNPzdDBAuzXaUE5Bb7qosufwc=;
 b=I9/Baizy/iYSiHQfaoYscrHsXHDnKVK9CBSK5A9e6mHyZevDUc0342eMO3VpuStdQnEyspYvSZZKvszdEmBf3+/NeXQz2svn2xabmXEo6dNszDBb9h296nLDwekTJpUBomRck+yPoWgj6zKnw5dPzbyfIJSLggjZwqhUBhUArCGsPfv/8cpu9a8CKoDX55ibUCBWTR1y6N7yjJuY5pYCRkhqdffEghj5GyFpYWCJA0LiAPJ3i21igtmSOvE9zNO24lcGQRqa5LofSxiTnZQcKCUtSQoexbpACx/tFxRJ966whzdMBDWSlfuBjWaKdUuBnWMI5+SW7/JxnF7fDsKK/w==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH v3 19/23] libxl/arm: vIOMMU: Modify the partial device tree
 for iommus
Thread-Topic: [PATCH v3 19/23] libxl/arm: vIOMMU: Modify the partial device
 tree for iommus
Thread-Index: AQHcwLEB/xiiQuayWE24oh8VONmQUA==
Date: Tue, 31 Mar 2026 01:52:18 +0000
Message-ID:
 <801f1c90347d66ce4427b9c5986809a781d94081.1774918270.git.milan_djokic@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774918270.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|GVXPR03MB11035:EE_
x-ms-office365-filtering-correlation-id: b42f4085-fa59-4352-a184-08de8ec82408
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 QFBnQV2BK4VDv9eUgO38nlXPwyMxfZjGHHbhZs31dA+Xy3RHAPFoZUranIhE7iCHXB5s183EqoMiAAFN4WKqryy+fyIEZryJSZkQcwJ/6j+saNPIIkHpxQ0YBJWl/bmQO8RWJTNEN7/diofrYScqdKudv0iXj1ItuxA6+34hS18AZFnTodzz2xkChfBEVcZ6vVMEbtgUWzgotbU06pW4aLodF17CfBKbKlYx270qaqqwafdu/A5lhDUNE2EnJi5hVbJFhyjsdtUkgNnp5rTiO7fykrU6eTXBEdrCXDRs0gbuVHL0aP2E6ehBjgnZ1sEeNJHXtwMai+KQqWX0U04i8TR3p2/nAATnFPKuqzb5nZ+5tIyUdZiuUkJFXiWvGzwatR2aOY7/tJgRmeQru7jXjKJrvTJYkY6kXoK7gA1IBeNmW+eiTNyGH41P1WMF0f+SNjOWVsucVMLXHYh1UhmesfsUpf4DtHxT634vyo3z5vOXsV4ug8GXTLkmRxkvTmTq+kdlJhGXcJ6iDr2EEEVH3Xy4zDbp+vau2u5MdQ5JLgjDFXxGGz8sEArokYofixQrckr1iDpuPAwV2zarFmcAOBJ3XSfhj/7dRIdfPN1dG6YKFcJ0IqGFQbJfMSpwtOW0dnmbRdEDu5yW6BmT5wWbVXkgBAIpPvzO5XWjTBGYjwHhNKlru+bMCUWhqZqqA0GQo7fmvFoS9GVyy/TTVfiovQjocQfjJJXCnu25emDFTG0OH6RXOPkaotLFs9GnxbYsOsmrvh8QsB0Nr4d2u61zRq9n1nsZxCicPlt6v5rZOeY=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?vE6+OL9eFoGhPzmgIBVJ66cdpQyq5ZpAhS/Xik0H2C48/WX5uf6W78gBzq?=
 =?iso-8859-1?Q?BaKsnKvIf6IawyTSKtABjJ0W0haYhrQZtaMXbJj2FJjvQ9tnD+RWsKeOqr?=
 =?iso-8859-1?Q?JC78ta7aUp11Xz3kWCXZDWNWwvSwLsBaMVuo8DymoDcrJnPG9UzJ2GQbZY?=
 =?iso-8859-1?Q?1mYLZl46WtpTvE1oJOypRoaMkVfZipaKl2gmHAWaHWwBkiGGz+jIIiHOOs?=
 =?iso-8859-1?Q?tjtrUIAkj8m3p/MGAkNa6h56M28LFL60yPcepKAPpURRjUi94S1QOtb7W4?=
 =?iso-8859-1?Q?WirOUFTf/Nj2GzDD4s6B/3rzU5cw96dxbqXWpSxXR+08e2JWJyv8w2Lo7S?=
 =?iso-8859-1?Q?K7VvNaYQNfj88jhs+s8pfa1/4WoNWCbqY/grSJBP6Z0LXDDCnyWFa/yRET?=
 =?iso-8859-1?Q?h56fSU304lDgdbBAaG1sF3QKkomSx/o816hKtjv76/zD6TNu1+P45XmfGx?=
 =?iso-8859-1?Q?i/e5LTgH809KOf5LWByfXBs4HEfFSrjV9tgwo9XWBnRdt7vOX1BhsgNNzd?=
 =?iso-8859-1?Q?msQPPD+HL0gTwe9L9tv67HVrVov+7RmAPZS/a5hwUt6xobEHnHIPnfRr3K?=
 =?iso-8859-1?Q?OfOd+QQzt/lzpUS4GHsGLB4C+5BNFlyqDqUtz5eKTOUuSZ86LPHX1k8hbz?=
 =?iso-8859-1?Q?s+CGb45D3bVCRbqp0y3jOBYd/7JC9wHYc+hic8d3eTOYcQTimYesBHkIga?=
 =?iso-8859-1?Q?qG4Zl8UiuEPv3srrnQAVlNdK89u8WwC5gnJvGrBDtxs4U4iBiiDPo76mRb?=
 =?iso-8859-1?Q?PJuW7J80CS4KG4HoMg0P3YxKO2Tcqy/updy24SxR8bIYZQOKhjxSmruIuH?=
 =?iso-8859-1?Q?l1/KzIq+0iNQQCGrFWloeijF3wo1Y/Jkv4ZMbZhWWF7LVIf3hlmAYAFrDW?=
 =?iso-8859-1?Q?Hn7kTcTfOV23995b6spRL0wfbyzw4nsOpRG1ZwaEbI0XTS6WD3LAhPDngz?=
 =?iso-8859-1?Q?6ON9xbLTg9MLDQmJHHtyEYq52QaQh9MJ/DywKEz0jHWQXwMuNgINfvV1hG?=
 =?iso-8859-1?Q?AnknThRjfMOttCdgxXdaLR0pF5p4XdPXMS1HRRjEvSe4yt+DcOhqwskrw8?=
 =?iso-8859-1?Q?QgqlCsY1WOW0sXwYfS/aGhhujPc1uS1JM9wPSRGa9xKL+9eEpDZhANr3dN?=
 =?iso-8859-1?Q?a8Eo23ntwKg4DOUC0dyancaoRXijVTililmfL2ysWOwLpHmZWgRXXKcjEH?=
 =?iso-8859-1?Q?LAxWNai6pHQIjPZPxHtzvsJFXghwzeJ3BkeDwRhZdG7A1Jj10trwjkoeOc?=
 =?iso-8859-1?Q?0UhLw88g/CdJDnqHYnCYi/+dEQNwbRZ8QGgHeQ0l9fusovbn29xSFtNA6j?=
 =?iso-8859-1?Q?KVBrm3YJVBJ7+uIiJNuYxG+ZBRpJvMvWOGIQcfqgYf8WA3+obn49FvI13g?=
 =?iso-8859-1?Q?7eSzwkfm5gpi/e/bLwpxxR3tGGByhGopFpj0aMgL6g2Y9gboK0qtoqO9G3?=
 =?iso-8859-1?Q?sxgpMBgx+Het362FBtYP8jkNGQs2mCEmjar6ZhH1GK7VCRJIFmkPdLa21Z?=
 =?iso-8859-1?Q?Nd/zIGktQJgeTmW8lCr05C8C+VHRs+63XaQmCwLZWGQq8xGmDcvjZ7x55A?=
 =?iso-8859-1?Q?kIpdl+a0G01JDRMJViO/n1d1d72EApiw3QBzDmmZxIohvoN8ihpN9u4fAD?=
 =?iso-8859-1?Q?nk99zZzIPCw18cr94v5CuTy6We94W9VVpE4qEXLvT2Gv/onQgG6DR6uyi4?=
 =?iso-8859-1?Q?URp6LrRGWWg/qVPWCIEOAmHKENi7X3BUSk14mbpYJ5rqLPCqvrIKOWHKtO?=
 =?iso-8859-1?Q?/stxXlPGIdKxWaj+gU0wp4f122qpQ5krmtUa1fvAywBkxYuRLfrQKMcoV2?=
 =?iso-8859-1?Q?qWRjOJIYHE4dJm7cxj81qfMAwtukceA=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b42f4085-fa59-4352-a184-08de8ec82408
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:52:18.1911
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ayV0zFszs6dZ0mJ3BEZjVS1pjgPi1IxqlpPNJtvt2/HYVPbvLsQHpcXjuW6GaY1IC3MX/BMayZw1KG2PWsxFAA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB11035
X-purgate-ID: tlsNG-4011c0/1774921941-50882900-9AC19C57/0/0
X-purgate-type: clean
X-purgate-size: 2920

From: Rahul Singh <rahul.singh@arm.com>

To configure IOMMU in guest for passthrough devices, user will need to
copy the unmodified "iommus" property from host device tree to partial
device tree. To enable the dom0 linux kernel to confiure the IOMMU
correctly replace the phandle in partial device tree with virtual
IOMMU phandle when "iommus" property is set.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Singed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 tools/libs/light/libxl_arm.c | 47 +++++++++++++++++++++++++++++++++++-
 1 file changed, 46 insertions(+), 1 deletion(-)

diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index 803c3b39b7..7b887898bb 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -1326,6 +1326,41 @@ static int copy_partial_fdt(libxl__gc *gc, void *fdt=
, void *pfdt)
     return 0;
 }
=20
+static int modify_partial_fdt(libxl__gc *gc, void *pfdt)
+{
+    int nodeoff, proplen, i, r;
+    const fdt32_t *prop;
+    fdt32_t *prop_c;
+
+    nodeoff =3D fdt_path_offset(pfdt, "/passthrough");
+    if (nodeoff < 0)
+        return nodeoff;
+
+    for (nodeoff =3D fdt_first_subnode(pfdt, nodeoff);
+         nodeoff >=3D 0;
+         nodeoff =3D fdt_next_subnode(pfdt, nodeoff)) {
+
+        prop =3D fdt_getprop(pfdt, nodeoff, "iommus", &proplen);
+        if (!prop)
+            continue;
+
+        prop_c =3D libxl__zalloc(gc, proplen);
+
+        for (i =3D 0; i < proplen / 8; ++i) {
+            prop_c[i * 2] =3D cpu_to_fdt32(GUEST_PHANDLE_VSMMUV3);
+            prop_c[i * 2 + 1] =3D prop[i * 2 + 1];
+        }
+
+        r =3D fdt_setprop(pfdt, nodeoff, "iommus", prop_c, proplen);
+        if (r) {
+            LOG(ERROR, "Can't set the iommus property in partial FDT");
+            return r;
+        }
+    }
+
+    return 0;
+}
+
 #else
=20
 static int check_partial_fdt(libxl__gc *gc, void *fdt, size_t size)
@@ -1344,6 +1379,13 @@ static int copy_partial_fdt(libxl__gc *gc, void *fdt=
, void *pfdt)
     return -FDT_ERR_INTERNAL;
 }
=20
+static int modify_partial_fdt(libxl__gc *gc, void *pfdt)
+{
+    LOG(ERROR, "partial device tree not supported");
+
+    return ERROR_FAIL;
+}
+
 #endif /* ENABLE_PARTIAL_DEVICE_TREE */
=20
 #define FDT_MAX_SIZE (1<<20)
@@ -1466,8 +1508,11 @@ next_resize:
         if (d_config->num_pcidevs)
             FDT( make_vpci_node(gc, fdt, ainfo, dom) );
=20
-        if (info->arch_arm.viommu_type =3D=3D LIBXL_VIOMMU_TYPE_SMMUV3)
+        if (info->arch_arm.viommu_type =3D=3D LIBXL_VIOMMU_TYPE_SMMUV3) {
             FDT( make_vsmmuv3_node(gc, fdt, ainfo, dom) );
+            if (pfdt)
+                FDT( modify_partial_fdt(gc, pfdt) );
+        }
=20
         for (i =3D 0; i < d_config->num_disks; i++) {
             libxl_device_disk *disk =3D &d_config->disks[i];
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268278.1557684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OHN-0004nr-LG; Tue, 31 Mar 2026 01:52:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268278.1557684; Tue, 31 Mar 2026 01:52:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OHM-0004eE-Q1; Tue, 31 Mar 2026 01:52:28 +0000
Received: by outflank-mailman (input) for mailman id 1268278;
 Tue, 31 Mar 2026 01:52:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OHG-0003Jw-F2
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:52:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OHF-00HCrd-Qu
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:52:21 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28c4-e002-0a2a0a5209dd-0a2a450a9b40-28
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:21 +0200
Received: from [52.101.69.85]
 (helo=AM0PR83CU005.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28d4-1772-0a2a450a0019-34654555cfcb-6
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:21 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by GVXPR03MB11035.eurprd03.prod.outlook.com (2603:10a6:150:287::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:52:19 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01:52:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=E+yp07b8BGn28fCTyp1rf7kdRbPk1rOvgUbafXfowDtZ1DbAz2DfrhqKYyizZH5Gxom/07GSW2PqGA+8EDps6/lNbqLdlrA6Gt20L/2IyjScW7+NTyyyGmmkNctyEwvzlqtt9SNmZEzGFIcznAT4edpVRFaYidRpKEL/vmgN2LfACBk1CQnV+fyMxaOJ6J+J6u2FO2fL46otyPLwDqm5cQIxLPVtDr9l6MbUE4KBszIGAlDkdbyxA4FmXExpMyC9RgDwqSryAkl/atits5TRiKchba2P/IB6SCvJ0nHfCkngygWypmyQHNNJ0fUu0DMwrfxZpFzuBYR1fH09W4DMpw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=M5LU7iG+kNVwY/pJJXqeYx+mIUucgqu7L1cZI7G6HOQ=;
 b=R3KnFfkgBVnTtJ93snoJfXugIoq7SLUrqyBG9uIDpDSLn0AHpk/mgUGiWPTVVKVoISQ6qVTheUi1RbVY54kKDC3k2AcqF8lA6D0twA3OV/ylCT28zzBcKs+0O0eGqA3AX67gYa9HMrqKjJ8UKNStVM2ei0EvAVCZ2GTq8Jlm0J8dgi1SM4RpvPFjiijj/vWXtr5NCzWBXRtAkl8UvoNQn+TBF/tWI1kiTwipMSzrcCNzY3oAkOAQoF03XlSlzoe6mo3lAbkH2Y856TQXzJH0Y/+Fh6skMFpXCdn7g24nT29w3ra3vxFQVob7cwGxXelh2x8XP+ax6k8RiVtN6fR9Aw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=M5LU7iG+kNVwY/pJJXqeYx+mIUucgqu7L1cZI7G6HOQ=;
 b=MRwmrzGnvb3ujpQek8oDU3KGzziplCJOqIZVYYarr9oKrpxLpHHIWkYRF+l648VBjVCf6sbBxcZgMsnMXrsgnuuDfeEsUfP/M+LEkyLsjfs4VD7Q4qsxzCg38DUAPhGGn+vA+YFK3OPddQofNKTM81lhgAo+QyAdHTSwhvILfvF+pwzkN0mPvMZxwKTtzGkZdNd4M8kJ9GdKTvLVpY5Vazafgluc8GZ9OMIYjIQpXwQ1yP/3SiFz9H1zrWFUr5RfJfhpjJjXAUULhaUiLCsMEIeenF/x8vkEKadx7QnOnotZg+v1T2iQASCB0jnQ22RNbObGzyq0c43iXUxe908Bvw==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH v3 20/23] xen/arm: vIOMMU: Modify the partial device tree for
 dom0less
Thread-Topic: [PATCH v3 20/23] xen/arm: vIOMMU: Modify the partial device tree
 for dom0less
Thread-Index: AQHcwLECE0hodS4DIEuRCh1Lzu+9oA==
Date: Tue, 31 Mar 2026 01:52:19 +0000
Message-ID:
 <2de0eddeb862a7d9f0fb55c7dca1152591d71404.1774918270.git.milan_djokic@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774918270.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|GVXPR03MB11035:EE_
x-ms-office365-filtering-correlation-id: b3b72b96-4a5a-48b7-8f37-08de8ec824c8
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 6GunLjadxb6Uxigeb5AGDQJHBthmVL1CFXZtP7WcfWOYEHVyGqrVd6TJuvhr3+wOpxyaBtdhIFM1nyFg1G/P2ePrJiBHIjTD+hyc0b/KNhpIWbiDtDMH/In0FtAPyiv0zmOT82ifKQOQMCWnrjX8LKF+1CIYSPbyrldwN1pPt4HE35e7JSBXMGNxPxxvZyZTY2EA2MzxztRgejfWfwIoIHqmcnt4Vqx8OAqjRocntr5G//YGpqZ5b1+LTQVcfK3WAnxNNK5qM/8RZfMQDk5I36mMc6222Xe5DkeztyjjQeoSO1NyYPgi0lNQMeEGxW/tlx+BqgBNu9rKofUUnrXrr652GdTJk1mcWS5Xd+AFuZrjKETc2v9Xf8W74naMMLL2/z6mms3J+xS+UcvjeMVu0TpFWol2H0J+9S29n02xkbQIjCREXPm1EZTf1Rz/w+/JvZvoMK/lhong7Kza+t35H7lsQ1/hC84c078eDHsIQMwGNThhQM4Q0o7NM3dmySmhNyu9GnbX770dKGDJ5ctsHWaTrBpqAS0XwsujiVdAbJ03VxLz4AwcH3vd/imey5QsJyWZJHQHA4jhfuD6Efm8I1JRRxXy7cC26FQ7yN/XzLeaE5xrQLyXVtLDtSY+lyViI42PaL8Z/ohKXjv/1kpbypqrPjvsUt3ehMaubz/7oewpDDBWgePkeN49UAEYKaRl6CsgMIe1dJ5Xb85jbnn8udD2Z+t6Wtnx4Maq1d51b/e9bsda4/NsXq5B/nYt496jLz3PDjvECsyiBQeamG8Kx6eVrGFAUp79lulitoj+duk=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?xSOlBG9qXZQ45LL4rT6M9WwLeob43mjtBkPlaD09sD3tvClCdzD6umtFh6?=
 =?iso-8859-1?Q?7qbfTxlIeY8ikdYLzkvAFCMGZNLBsAD2tkks5KY2eNNKzG+kAoN+EFskY+?=
 =?iso-8859-1?Q?tsbEu7EwjZM8oTpxrspmmZoiTCFtvP8tO/DwdjFMOOSELBV/WyjQUSNBVO?=
 =?iso-8859-1?Q?1GpsClZppNdNsttKJg2oaNW2Iw8EfZiBlrHpAujEC6e5akv6ziH12L902M?=
 =?iso-8859-1?Q?1dB3t86Esnr2LvHtLbIpGOGwXWwqSh+iSB8U7venpJm8hlMMtoxPW4c/1v?=
 =?iso-8859-1?Q?lYoPHgxTV3rG7bBEB8UHfUW1s0ErTtFqhP7svUSXkjuDw+JqTACjRLmiRT?=
 =?iso-8859-1?Q?TetTIMcoHkuwwHCIw+rLdOO9pky9AOLHC40I2OWPZ3RpuW4kMWkNwKv/gM?=
 =?iso-8859-1?Q?gLtx8//U9GozsgvaCpeqctP+ZhBjUVlHFgvMnTUGtRyDiv6YuScSPKIxL1?=
 =?iso-8859-1?Q?qnkGlxYCSgbQ3qbBWV4PTgZCucoJPXBZDZPR9Qby2AgIdYeRqHObmZ5h+K?=
 =?iso-8859-1?Q?8+WjvYPFEKsS9Y0Z2hEyS/+pbzOFKTcnhu0zHw8yQfjsSKJC3JUy+g/WVM?=
 =?iso-8859-1?Q?hvJ9t9bLkY4elJ80hsIm+3VKXJj8mT0rLaYiNn0in4CY1qjmWvHOh0wSW9?=
 =?iso-8859-1?Q?3noYEGWmCsKyNy0Acc+/zLM8MjlxMbSey4Z6np1SjXkpu2V0qXa6CyVIqM?=
 =?iso-8859-1?Q?c0LpZ2DXdHs77VM2fsC3M3Wt8kThYBxdqwO1sb1hNigSUbZKzqu77p1Zto?=
 =?iso-8859-1?Q?EgtAF4+hZ7xHfJtr+FgqAFv4WbxlJI5CwghFxx6IORgegiRjAhUk9l7J7N?=
 =?iso-8859-1?Q?uECbx9LVIIXnH633L8ZiWRywG3lVx39lej0K6/xCUSr42DXgZ4Orbk/dbz?=
 =?iso-8859-1?Q?3Y+GYbuITjMBMPifbT0yfFOeSqvqJ+WE274P2Hq1mVm6kIJn9NJTIbAEMS?=
 =?iso-8859-1?Q?Sc2ELEy/hsjD55NRZDHGD1FJf2FKenBS21sAD/1N36+IdkxkJgikIkHxNi?=
 =?iso-8859-1?Q?JniCuNnovQrG9l2y/4nFc1JruE58v7dA7tFQGbiZt/+O72GX3qsB4DTyx6?=
 =?iso-8859-1?Q?w9axCDBgLPOA3jQvZXWeR7Ra/XpVhfmDi6BIOLi6F5Bpk8FQaudZKowxl9?=
 =?iso-8859-1?Q?nWVOGpnMPE0l5OTs9WqP+T8i+YMX3xowkzH6D4LPjtPYsGkFHyyw9BvwgW?=
 =?iso-8859-1?Q?mFnz/bm7b3wgwyKPQCjKloW6FNcwIz+xWe8oHZKQbhoMXCKLzJzgpgVgUG?=
 =?iso-8859-1?Q?7Qq7tD2QjByDpvvdo48ZXcT/KHpGFNiw4JOXWEEPwN/AGKFMjMPBnQcWYX?=
 =?iso-8859-1?Q?ov4iUUJy9rlqEd8BSmowFkPKj7MFJ64V2Eh9QYIBXEBXVf87CJZvTMhpYR?=
 =?iso-8859-1?Q?cKhgCRclJ4ebeIekcoit6yZWXfNlaEYdyeAu/KMIKh17Eeg+6X4AC2cZH9?=
 =?iso-8859-1?Q?0vcehm6qEv/IpCB2dedSK0jsR5Bs5fe3NGNC5jKE4Gp4Xg821u91arB4oF?=
 =?iso-8859-1?Q?GSXB8VIg/ctJjQrtqPI5N1X7P/BaYYojF/3xWXVAl4vxKEglR9yqmaJirF?=
 =?iso-8859-1?Q?I7CsA0GckF4EEyOGMbbIazQ++q8+0j4Na+QzqqMCRVu9Qu7iocdYT3Ar5b?=
 =?iso-8859-1?Q?BZ9lwGA71icgVyKzFAWcrcEHqyYnbkA7QMnRwP+r4cOH5jjlwhnssqXZp8?=
 =?iso-8859-1?Q?iqFIwBmSpVOMo1Fi0z/PmVJGq6Fa213AcM4D4IBKfM8pxxkf+2HXBX4oaz?=
 =?iso-8859-1?Q?cI1cc7hxiXocBMpXPVS3oGB5JNbwYyzhj00WnFqeCH5VWF6pTpsx81pkEF?=
 =?iso-8859-1?Q?G+y8V4P3M+pmI5pHK8iUPe+KvqYdaFc=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b3b72b96-4a5a-48b7-8f37-08de8ec824c8
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:52:19.4475
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: TCZW1OTgXGK6ZOrM5XSteXNinxtmWkqmP8BmORczSiNL3WOE9Yt8pGqWC9Sm1FoPpcYHQpAAodnCGCwc2lNU2A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB11035
X-purgate-ID: tlsNG-4011c0/1774921941-BC0BE900-1A5C6744/0/0
X-purgate-type: clean
X-purgate-size: 2444

From: Rahul Singh <rahul.singh@arm.com>

To configure IOMMU in guest for passthrough devices, user will need to
copy the unmodified "iommus" property from host device tree to partial
device tree. To enable the dom0 linux kernel to confiure the IOMMU
correctly replace the phandle in partial device tree with virtual
IOMMU phandle when "iommus" property is set.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/common/device-tree/dom0less-build.c | 31 ++++++++++++++++++++++++-
 1 file changed, 30 insertions(+), 1 deletion(-)

diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tr=
ee/dom0less-build.c
index 840d14419d..4b74d2f705 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -318,7 +318,35 @@ static int __init handle_prop_pfdt(struct kernel_info =
*kinfo,
     return ( propoff !=3D -FDT_ERR_NOTFOUND ) ? propoff : 0;
 }
=20
-static int __init scan_pfdt_node(struct kernel_info *kinfo, const void *pf=
dt,
+static void modify_pfdt_node(void *pfdt, int nodeoff)
+{
+    int proplen, i, rc;
+    const fdt32_t *prop;
+    fdt32_t *prop_c;
+
+    prop =3D fdt_getprop(pfdt, nodeoff, "iommus", &proplen);
+    if ( !prop )
+        return;
+
+    prop_c =3D xzalloc_bytes(proplen);
+
+    for ( i =3D 0; i < proplen / 8; ++i )
+    {
+        prop_c[i * 2] =3D cpu_to_fdt32(GUEST_PHANDLE_VSMMUV3);
+        prop_c[i * 2 + 1] =3D prop[i * 2 + 1];
+    }
+
+    rc =3D fdt_setprop(pfdt, nodeoff, "iommus", prop_c, proplen);
+    if ( rc )
+    {
+        dprintk(XENLOG_ERR, "Can't set the iommus property in partial FDT"=
);
+        return;
+    }
+
+    return;
+}
+
+static int __init scan_pfdt_node(struct kernel_info *kinfo, void *pfdt,
                                  int nodeoff,
                                  uint32_t address_cells, uint32_t size_cel=
ls,
                                  bool scan_passthrough_prop)
@@ -344,6 +372,7 @@ static int __init scan_pfdt_node(struct kernel_info *ki=
nfo, const void *pfdt,
     node_next =3D fdt_first_subnode(pfdt, nodeoff);
     while ( node_next > 0 )
     {
+        modify_pfdt_node(pfdt, node_next);
         rc =3D scan_pfdt_node(kinfo, pfdt, node_next, address_cells, size_=
cells,
                             scan_passthrough_prop);
         if ( rc )
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268286.1557695 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OHP-00055q-TT; Tue, 31 Mar 2026 01:52:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268286.1557695; Tue, 31 Mar 2026 01:52: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 1w7OHO-00052P-EC; Tue, 31 Mar 2026 01:52:30 +0000
Received: by outflank-mailman (input) for mailman id 1268286;
 Tue, 31 Mar 2026 01:52:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OHH-0003YT-NE
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:52:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OHH-00HCrd-1P
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:52:23 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28c4-e002-0a2a0a5209dd-0a2a450a9b40-34
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:23 +0200
Received: from [52.101.69.85]
 (helo=AM0PR83CU005.outbound.protection.outlook.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28d6-1772-0a2a450a0019-34654555e707-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:22 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by GVXPR03MB11035.eurprd03.prod.outlook.com (2603:10a6:150:287::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:52:20 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01:52:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BIFWHB3ZCevP2vCJ7Zx/l13S6DekrmIv/gZ4tatIlXPTFcJ/Le1fvBOr+LUNIhrpEM9MQ70MykbW3OxBT9QYt67rvDB+Nb5XVxhAuGvYv9Q7iTE44Ze+5KiNGy+3l3YYnT5LKd5UThz0CCZ4//3/qHH80GlBsauYYxC6keSBP9kJl7Pf2VN6zhywN/uhd/K8NvdZnZsaffV2RGNKRxvNcVM0kB1twvYHIS0gGe99VlX0UF/1J900LcFD2axLnqTdrp3vAWyuYoCpVIFp9R+di3eeKakdI80ISGoeybpe1H+Efl4SFFer460si+ulhbiqSs4fOJaEetBRqkpnLtdlqw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8qhI/HJzVHJyUR0jXe4Qr4tERuQMzXlXKtvxCd/jHZQ=;
 b=vnVUQhwf1MQgC4m1UPQuQFFIkOkIDsDQwlBI0OF1CXiw3Rh9dk82PTmIaDcz64z2AxUiKi0eC8kZy3SriiWwpoiVSHV43H7TzCLFwOF1My9G3CiMiOmz9yz0ebftPLyVUhb5ncWGNaKcEy69YkF7gL5nFZbNCq/Va7h9UY/mqm5i237qfKUSgcwOQjyp2BpToM8KFkfLQbo58e8jF+65p5EPdYVZB1WHKQgVj0TSA20l2q+l4MCNPYRJDPD3lxbgJpM6DDTdtmCNpbDpXb3HxCdt/jJopi2qgMme/o0U9pAwDV2+5/nf6GMQ3JWAKRG0MjChGhlbzoriofhSyFdfCA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8qhI/HJzVHJyUR0jXe4Qr4tERuQMzXlXKtvxCd/jHZQ=;
 b=ECWPSJBgeDJqNWdLI6jl3EVteFk+UMTd7mWFtOjF07sg7NbPt1yu2LnkUbSHVbksmLbjYhEVn6bVi2RVn5RyMp6qXkhYj/nxjDbOTvvvEjYL5ObnuMMUlLImhNnpnWCZ9nnUU47/WhP/hnHGHzw+aYcFDWqa1Zwvxg2Ym5lHPlCtdt/wpCB8zCfk/mBXngy0ybNSVRoqa+G2H6XgebdDuvYN+zw6Ki5Itci0RTP1QB1sr6ypGdkNJtlFUtIjkYZi11NqOwYkPSy818twLFVv1jfRr5KbfXwkhQLIkmHiDVAceC4u/MQfN3WeEmUAYzwHIWbPYCYshoUfpZyjXX8okA==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Milan Djokic <milan_djokic@epam.com>, Stefano Stabellini
	<sstabellini@kernel.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 21/23] xen/arm: vIOMMU vSID->pSID mapping layer
Thread-Topic: [PATCH v3 21/23] xen/arm: vIOMMU vSID->pSID mapping layer
Thread-Index: AQHcwLEDSSFL4iGYcUG/ncRvg0wnFA==
Date: Tue, 31 Mar 2026 01:52:20 +0000
Message-ID:
 <2105eb0cf298e1e8b1ec826516cb094d5f8ee2eb.1774918270.git.milan_djokic@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774918270.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|GVXPR03MB11035:EE_
x-ms-office365-filtering-correlation-id: d8f481fb-2df4-401c-8da6-08de8ec82588
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 7kWAsnzZvcam/KNUcu8rpix+U2QRPtNQ19poQOkFJkCf/qx/HuAGlFOQvNkKN4z8K7N9fcY1GngIGSrHmU+4VqAVn/MqPsJ0lT7VEua+S0excPTyqmT2Mj5UmpSGQOWYQn7R4nizZpVc9chyLLXAeMbx5T+PxmJJ8BBs6RdMXYdtHKjUq16+hIH8YsUtEuuZAfL+TD/ZeqL9PUnBfFbwCJlgdJ76mHHGOV4VocJxM8aG5Y/sSPZQ/2aG1BQB+9p9qQCBCTRfjSkVmGLEABlnXExXp3oJOJwHAYc9TUvYTdm7Xh58eyT2PnakDGdmOjLQUOFeS6mYsvz4gcJINEECxl28LjgRjh9oqtYebHdEP/vicYYUDS11s2q9BUpREtOWBShUBnlvbLZZm28Mnos9CFk1SV/Ax4yss/S4Op6Hdm9KZDAsk4SghKA6/2QLHecI44YkwplIwfvXWrtLVBH6ZFzyfm1YAcXmCF11r8LamyL8rs4FFlSbzOARGa9anVMin+L57ZP4h6df6wR5CJKa7ZafPgnv9ZSSblPTjeUn4rgBh9rIAC0bGjwXLd4XmbfrcNySOah0FU//C9dXw1j0swlr7cvlxWPYjf1GFyu9r1lHg2o+tD1TBVup9IpmuiguHN7GlLfxW9PKD9hs6wctkD+Zp7mRBxNLIsHLuF5C87O1ici8av6omeS58qpS8wJ7DoOdW24QHeNCnX1pAkEo1hLq0kRptwDn4j8SaMO6LvLPG/+Jx6ZkKdgfhYFxI7He+HZRAfuDRsZuWCdhgItMi4pM5M0Xjyo+g3rn6HO82pE=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?X/JlmMOYEp4M6w1tGrklz4A30J+KnWNWjWgozVZXWa/IqH1Q9m50asAQnj?=
 =?iso-8859-1?Q?zrigosSjMRh1LsmnqC5lWWG6LfXnGhv8FqK/T6Cf/gCKBCMdY48KPlSi8I?=
 =?iso-8859-1?Q?PyE7EkRfThEu5thtShHpYmpyimaXkUCCWghHKKIHWx9QhEm+hEkO3UxVZs?=
 =?iso-8859-1?Q?ibCHIbRC8ZScg6/hhmpHwQzbcuRRW74pCodX+6HZ+tVfOIIYR10g2+YDkG?=
 =?iso-8859-1?Q?5n/R0wZdpCpcb+aI1n3pyyX/vWmN9r2Zlv6tWUu98VVZicxviwUxo+x5Zj?=
 =?iso-8859-1?Q?MToNF8S0Ys6bO6yn+RdNXkzfqWCuT3fE5VzSIRjFsj2lBalXSb6s1ERd+S?=
 =?iso-8859-1?Q?A1x8xH3x/fo1bmVBLD5+GYJ20cpwfuCsKR7MCTRv6UTWzY3NZGVXf+AX0K?=
 =?iso-8859-1?Q?DUJF48d9nwQbEFF2JfW4BPhBgeZodvrmhwoq7bq+HpZItOhFdPcHJ08lFp?=
 =?iso-8859-1?Q?A14H4reLg7mUHOHkZS3RjCuw5cJgIxdl8REPFnBAQ6FeWQXMASDqSulxeV?=
 =?iso-8859-1?Q?VG1lmi0tO0/xvCDMR+3Ux5gfqh/jfVdNp0hWkHYfTK5OzFmCldp9rA4qr6?=
 =?iso-8859-1?Q?eaWD9rQ/JuS8Gv4hHxIRuLgmjtEP6Cg1FrNWoB1FfNaOf2pvGvW0AuoVUH?=
 =?iso-8859-1?Q?QvVruE/fgnlFpBAnqMv6t6NALVZWpfHmpEzOenswD+CMqBeCsYQjPQ7EpA?=
 =?iso-8859-1?Q?lA1Z1n7RK2C4vSJzCjewRMqA8umhTVmklSFA1k/Dctxq6lkSXj7qLwtXZ+?=
 =?iso-8859-1?Q?Q8Ipi4BD6Yr+VAQYlNmzNxYqFaBe8po/ddYLU9ixY7PlADN70ocgbLP/Wg?=
 =?iso-8859-1?Q?zX22Ezf1hbAzScR87thQnekASfYWHJGEwfL+4TBj+MkpTf/AVP4IHStoVJ?=
 =?iso-8859-1?Q?Wj6Gxtqr6yLShcj6Q5aJW61z0Z6PhJAJpsdR5iAcAwyNgSZpvibOa4OcpX?=
 =?iso-8859-1?Q?9/CDGesaNJqAyVge0/ukx9WeeUQdIk0+D1Phzzv4vwGcLpbutmsQwocBtU?=
 =?iso-8859-1?Q?YXy8PrGQIuCJLuWPVTVMeqd7Xd/ccVFkJ7w/IsxApsfxJLrJgZRQr2CYre?=
 =?iso-8859-1?Q?C1GEUL9gI8PBrQufAhKymnEhujJt8nBp9tq7w6YQNt36TjYYw9GcloM6Th?=
 =?iso-8859-1?Q?EpcWOlpHeosOmzdC4xv4Tpp6vBgCb2UE4CYN+FUyTBt5EOdB0i5XVfAHdL?=
 =?iso-8859-1?Q?uqDkTIh1Z6yN7eFFjfxqXXh9TmBMZtCpUGzdP79Zlo9GA1ssAb5sNKleul?=
 =?iso-8859-1?Q?+gDg3k5wajBZXIjCmKP7gFm4iYnyPO1EPCweYqX67AdwpW7eCWARQak65T?=
 =?iso-8859-1?Q?tMwgPjhYXdRxxo+JoD4/L0UcUTBzM8JiX9IkWXhnP6lUH7JrnwjjWbtNhs?=
 =?iso-8859-1?Q?Bk3Wt5nyk4LTRj+GlDQCa7NX0jLA8PsbRH9h1rTkqpYjf+4spCx4ytByyq?=
 =?iso-8859-1?Q?sl2i+iuvWWY+kZAj7QNkWnO8mhyD1Lh9WUb1lY1vj9ADVYHpMtIkaE84ns?=
 =?iso-8859-1?Q?239l8dIhQapfKCu5yxxA6FK+y27q/d3A57s9JjQjdV3woTb2HEVWgatLM1?=
 =?iso-8859-1?Q?LVe9M0a+dW0X0OEI6uP1SbW67hO7rIYdpxqXRZIXxSNRDaeraCS/g2xeG9?=
 =?iso-8859-1?Q?kAR2LnqGB9VOw/+cPqiA4jBxez8rnaTrn4zA/IRfo00NAxbyK4YXcD52gT?=
 =?iso-8859-1?Q?FuovKDIqmjLYLNKnUFY7yJeRB4ZU8apKxKbv500OCPXnaiY6la6eEUAsYd?=
 =?iso-8859-1?Q?yaZvN44aUSll1YgDAaT6b7Sn0UfkVSi48NZl+NJrdVRyerLWrGrrLCfi4k?=
 =?iso-8859-1?Q?X7+AAIxrv7w1n5W9i0MIYaFpb98rGxg=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d8f481fb-2df4-401c-8da6-08de8ec82588
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:52:20.7411
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: p1Bn5NeV/9HVgbC5gdWT05RFPxC4b0FaSROZQ3QHsXCpy0PPdoY/p5l5mTkgVB/WoS+a1Xr0KS5giwehoeOopA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB11035
X-purgate-ID: tlsNG-4011c0/1774921943-BFA9B900-A65C1F7E/0/0
X-purgate-type: clean
X-purgate-size: 11158

Introduce vIOMMU mapping layer in order to support passthrough of IOMMU
devices attached to different physical IOMMUs (e.g. devices with the same s=
treamID).
New generic vIOMMU API is added: viommu_allocate_free_vid().
This function will allocate a new guest vSID and map it to input pSID.
Once mapping is established, guest will use vSID for stage-1 commands
and xen will translate vSID->pSID and propagate it towards stage-2.
Introduced naming is generic (vID/pID), since this API could be used
for other IOMMU types in the future.
Implemented usage of the new API for dom0less guests. vSIDs are allocated
on guest device tree creation and the original pSID is
replaced with vSID which shall be used by the guest driver.

Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/arch/arm/include/asm/viommu.h       | 10 ++++
 xen/common/device-tree/dom0less-build.c | 32 +++++++++---
 xen/drivers/passthrough/arm/viommu.c    |  7 +++
 xen/drivers/passthrough/arm/vsmmu-v3.c  | 67 ++++++++++++++++++++++++-
 4 files changed, 106 insertions(+), 10 deletions(-)

diff --git a/xen/arch/arm/include/asm/viommu.h b/xen/arch/arm/include/asm/v=
iommu.h
index 01d4d0dfef..6a2fc56e38 100644
--- a/xen/arch/arm/include/asm/viommu.h
+++ b/xen/arch/arm/include/asm/viommu.h
@@ -33,6 +33,15 @@ struct viommu_ops {
      * Called during domain destruction to free resources used by vIOMMU.
      */
     int (*relinquish_resources)(struct domain *d);
+
+    /*
+     * Allocate free vSID/vRID for the guest device and establish vID->pID=
 mapping
+     * Called during domain device assignment.
+     * Returns 0 on success and sets vid argument to newly allocated vSID/=
vRID
+     * mapped to physical ID (id argument).
+     * Negative error code returned if allocation fails.
+     */
+    int (*allocate_free_vid)(struct domain *d, uint32_t id, uint32_t *vid)=
;
 };
=20
 struct viommu_desc {
@@ -48,6 +57,7 @@ struct viommu_desc {
=20
 int domain_viommu_init(struct domain *d, uint16_t viommu_type);
 int viommu_relinquish_resources(struct domain *d);
+int viommu_allocate_free_vid(struct domain *d, uint32_t id, uint32_t *vid)=
;
 uint16_t viommu_get_type(void);
 void add_to_host_iommu_list(paddr_t addr, paddr_t size,
                             const struct dt_device_node *node);
diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tr=
ee/dom0less-build.c
index 4b74d2f705..f5afdf381c 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -31,6 +31,8 @@
 #include <xen/static-memory.h>
 #include <xen/static-shmem.h>
=20
+#include <asm/viommu.h>
+
 #define XENSTORE_PFN_LATE_ALLOC UINT64_MAX
=20
 static domid_t __initdata xs_domid =3D DOMID_INVALID;
@@ -318,22 +320,33 @@ static int __init handle_prop_pfdt(struct kernel_info=
 *kinfo,
     return ( propoff !=3D -FDT_ERR_NOTFOUND ) ? propoff : 0;
 }
=20
-static void modify_pfdt_node(void *pfdt, int nodeoff)
+#ifdef CONFIG_ARM_VIRTUAL_IOMMU
+static void modify_pfdt_node(void *pfdt, int nodeoff, struct domain *d)
 {
     int proplen, i, rc;
     const fdt32_t *prop;
     fdt32_t *prop_c;
+    uint32_t vsid;
=20
-    prop =3D fdt_getprop(pfdt, nodeoff, "iommus", &proplen);
+    prop =3D fdt_getprop(pfdt, nodeoff, "iommus", &proplen);=20
     if ( !prop )
         return;
=20
     prop_c =3D xzalloc_bytes(proplen);
=20
+    /*=20
+     * Assign <vIOMMU vSID> pairs to iommus property and establish
+     * vSID->pSID mappings
+    */
     for ( i =3D 0; i < proplen / 8; ++i )
     {
         prop_c[i * 2] =3D cpu_to_fdt32(GUEST_PHANDLE_VSMMUV3);
-        prop_c[i * 2 + 1] =3D prop[i * 2 + 1];
+        rc =3D viommu_allocate_free_vid(d, fdt32_to_cpu(prop[i * 2 + 1]), =
&vsid);
+        if( rc ) {
+            dprintk(XENLOG_ERR, "Failed to allocate new vSID for iommu dev=
ice");
+            return;
+        }
+        prop_c[i * 2 + 1] =3D cpu_to_fdt32(vsid);
     }
=20
     rc =3D fdt_setprop(pfdt, nodeoff, "iommus", prop_c, proplen);
@@ -345,11 +358,14 @@ static void modify_pfdt_node(void *pfdt, int nodeoff)
=20
     return;
 }
+#else
+    static void modify_pfdt_node(void *pfdt, int nodeoff, struct domain *d=
) {}
+#endif
=20
 static int __init scan_pfdt_node(struct kernel_info *kinfo, void *pfdt,
                                  int nodeoff,
                                  uint32_t address_cells, uint32_t size_cel=
ls,
-                                 bool scan_passthrough_prop)
+                                 bool scan_passthrough_prop, struct domain=
 *d)
 {
     int rc =3D 0;
     void *fdt =3D kinfo->fdt;
@@ -372,9 +388,9 @@ static int __init scan_pfdt_node(struct kernel_info *ki=
nfo, void *pfdt,
     node_next =3D fdt_first_subnode(pfdt, nodeoff);
     while ( node_next > 0 )
     {
-        modify_pfdt_node(pfdt, node_next);
+        modify_pfdt_node(pfdt, node_next, d);
         rc =3D scan_pfdt_node(kinfo, pfdt, node_next, address_cells, size_=
cells,
-                            scan_passthrough_prop);
+                            scan_passthrough_prop, d);
         if ( rc )
             return rc;
=20
@@ -443,7 +459,7 @@ static int __init domain_handle_dtb_boot_module(struct =
domain *d,
             res =3D scan_pfdt_node(kinfo, pfdt, node_next,
                                  DT_ROOT_NODE_ADDR_CELLS_DEFAULT,
                                  DT_ROOT_NODE_SIZE_CELLS_DEFAULT,
-                                 false);
+                                 false, d);
             if ( res )
                 goto out;
             continue;
@@ -453,7 +469,7 @@ static int __init domain_handle_dtb_boot_module(struct =
domain *d,
             res =3D scan_pfdt_node(kinfo, pfdt, node_next,
                                  DT_ROOT_NODE_ADDR_CELLS_DEFAULT,
                                  DT_ROOT_NODE_SIZE_CELLS_DEFAULT,
-                                 true);
+                                 true, d);
             if ( res )
                 goto out;
             continue;
diff --git a/xen/drivers/passthrough/arm/viommu.c b/xen/drivers/passthrough=
/arm/viommu.c
index 5f5892fbb2..4b7837a91f 100644
--- a/xen/drivers/passthrough/arm/viommu.c
+++ b/xen/drivers/passthrough/arm/viommu.c
@@ -71,6 +71,13 @@ int viommu_relinquish_resources(struct domain *d)
     return cur_viommu->ops->relinquish_resources(d);
 }
=20
+int viommu_allocate_free_vid(struct domain *d, uint32_t id, uint32_t *vid)=
 {
+    if ( !cur_viommu )
+        return -ENODEV;
+
+    return cur_viommu->ops->allocate_free_vid(d, id, vid);
+}
+
 uint16_t viommu_get_type(void)
 {
     if ( !cur_viommu )
diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index 5d0dabd2b2..604f09e980 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -53,6 +53,8 @@ extern const struct viommu_desc __read_mostly *cur_viommu=
;
 #define smmu_get_ste_s1ctxptr(x)    FIELD_PREP(STRTAB_STE_0_S1CTXPTR_MASK,=
 \
                                     FIELD_GET(STRTAB_STE_0_S1CTXPTR_MASK, =
x))
=20
+#define MAX_VSID   (1 << SMMU_IDR1_SIDSIZE)
+
 /* event queue entry */
 struct arm_smmu_evtq_ent {
     /* Common fields */
@@ -100,6 +102,14 @@ struct arm_vsmmu_queue {
     uint8_t     max_n_shift;
 };
=20
+/* vSID->pSID mapping entry */
+struct vsid_entry {
+    bool        valid;
+    uint32_t    vsid;
+    struct host_iommu *phys_smmu;
+    uint32_t    psid;
+};
+
 struct virt_smmu {
     struct      domain *d;
     struct      list_head viommu_list;
@@ -118,6 +128,7 @@ struct virt_smmu {
     uint64_t    evtq_irq_cfg0;
     struct      arm_vsmmu_queue evtq, cmdq;
     spinlock_t  cmd_queue_lock;
+    struct vsid_entry *vsids;
 };
=20
 /* Queue manipulation functions */
@@ -426,6 +437,29 @@ static int arm_vsmmu_handle_cfgi_ste(struct virt_smmu =
*smmu, uint64_t *cmdptr)
     struct arm_vsmmu_s1_trans_cfg s1_cfg =3D {0};
     uint32_t sid =3D smmu_cmd_get_sid(cmdptr[0]);
     struct iommu_guest_config guest_cfg =3D {0};
+    uint32_t psid;
+    struct arm_smmu_evtq_ent ent =3D {
+        .opcode =3D EVT_ID_BAD_STE,
+        .sid =3D sid,
+        .c_bad_ste_streamid =3D {
+            .ssid =3D 0,
+            .ssv =3D false,
+        },
+    };
+
+    /* SIDs identity mapped for HW domain */
+    if ( is_hardware_domain(d) )
+        psid =3D sid;
+    else {
+        /* vSID out of range or not mapped to pSID */
+        if ( sid >=3D MAX_VSID || !smmu->vsids[sid].valid )
+        {
+            arm_vsmmu_send_event(smmu, &ent);
+            return -EINVAL;
+        }
+
+        psid =3D smmu->vsids[sid].psid;
+    }
=20
     ret =3D arm_vsmmu_find_ste(smmu, sid, ste);
     if ( ret )
@@ -446,7 +480,7 @@ static int arm_vsmmu_handle_cfgi_ste(struct virt_smmu *=
smmu, uint64_t *cmdptr)
     else
         guest_cfg.config =3D ARM_SMMU_DOMAIN_NESTED;
=20
-    ret =3D hd->platform_ops->attach_guest_config(d, sid, &guest_cfg);
+    ret =3D hd->platform_ops->attach_guest_config(d, psid, &guest_cfg);
     if ( ret )
         return ret;
=20
@@ -791,6 +825,7 @@ static int vsmmuv3_init_single(struct domain *d, paddr_=
t addr,
     smmu->cmdq.ent_size =3D CMDQ_ENT_DWORDS * DWORDS_BYTES;
     smmu->evtq.q_base =3D FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_EVTQS);
     smmu->evtq.ent_size =3D EVTQ_ENT_DWORDS * DWORDS_BYTES;
+    smmu->vsids =3D xzalloc_array(struct vsid_entry, MAX_VSID);
=20
     spin_lock_init(&smmu->cmd_queue_lock);
=20
@@ -850,8 +885,9 @@ int vsmmuv3_relinquish_resources(struct domain *d)
     if ( list_head_is_null(&d->arch.viommu_list) )
         return 0;
=20
-    list_for_each_entry_safe(pos, temp, &d->arch.viommu_list, viommu_list =
)
+    list_for_each_entry_safe(pos, temp, &d->arch.viommu_list, viommu_list)
     {
+        xfree(pos->vsids);
         list_del(&pos->viommu_list);
         xfree(pos);
     }
@@ -859,8 +895,35 @@ int vsmmuv3_relinquish_resources(struct domain *d)
     return 0;
 }
=20
+int vsmmuv3_allocate_free_vid(struct domain *d, uint32_t id, uint32_t *vid=
) {
+    uint16_t i =3D 0;
+    struct virt_smmu *smmu;
+
+    if ( list_head_is_null(&d->arch.viommu_list) )
+        return -ENODEV;
+
+    smmu =3D list_first_entry(&d->arch.viommu_list, struct virt_smmu, viom=
mu_list);
+
+    /* Get first free vSID index */
+    while ( smmu->vsids[i].valid && i++ < MAX_VSID );
+
+    /* Max number of vSIDs already allocated? */
+    if ( i =3D=3D MAX_VSID) {
+        return -ENOMEM;
+    }
+
+    /* Establish vSID->pSID mapping */
+    smmu->vsids[i].valid =3D true;
+    smmu->vsids[i].vsid =3D i;
+    smmu->vsids[i].psid =3D id;
+    *vid =3D smmu->vsids[i].vsid;
+
+    return 0;
+}
+
 static const struct viommu_ops vsmmuv3_ops =3D {
     .domain_init =3D domain_vsmmuv3_init,
+    .allocate_free_vid =3D vsmmuv3_allocate_free_vid,
     .relinquish_resources =3D vsmmuv3_relinquish_resources,
 };
=20
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268293.1557698 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OHR-0005NI-5N; Tue, 31 Mar 2026 01:52:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268293.1557698; Tue, 31 Mar 2026 01:52:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OHP-0005I2-Rh; Tue, 31 Mar 2026 01:52:31 +0000
Received: by outflank-mailman (input) for mailman id 1268293;
 Tue, 31 Mar 2026 01:52:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OHJ-0003xy-Mx
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:52:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OHJ-00HCwd-1g
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:52:25 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb2873-e002-0a2a0a5209dd-0a2a450ba5e2-44
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:25 +0200
Received: from [52.101.69.102]
 (helo=AM0PR83CU005.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28d8-ef63-0a2a450b0019-34654566fbfa-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:24 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by GVXPR03MB11035.eurprd03.prod.outlook.com (2603:10a6:150:287::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:52:22 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01:52:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ws6PUbXKGGRlZaBlFrjlff9zr+s1xpZE3U1hxDkbttsanRnjfGJNqKrRcByRQXfu7b8D4yseUYC4Hfv/KSf0hIPpOLwh4Hbu0uz7etIx4CfTbTohYCgJaVPeAZq8+k5oWGZvkWFaRscx+xH+cK4MSPbrW2bL5Eza5e5bEWHDWBq+Vrk7pKbMsJEH1QiN5pbhK/ilEyU55v0O8htI521g/j6FHuDCgNx9Yf4KZLnqnFuxtLudKr+mM5i+6J4iRe4TPsWcmEtnOfSHd9fD1Vaxw5h4dqvgpn4hYkF+J3Rbg2+Bw2NCrcHvB8NRhLRHUPK2EWLhrJczD/WdZCITfo40mQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nj6Z81N01vY3XvfYQy+xhGlOvhCvIFvRcD16AMxsTXg=;
 b=s+gd5PSO457PO0gfIW5IqoLPqF+NCfNs1bIgvYExrrWPtDYywjb18YB4QuqEyHPWW2FaE577DgeEACEgQ+b5I6cjIXmi4igItU078aHvLQ9GCvmmda76QQMNdxSU4oq/wKbQafEoZ1YLJbUHP8zEW5L2X99WGuBVB0hcttxIj212mMSH6TAZJ3jO1tz6kP/UlpJaesWPW4LSSAPgWy8XB1lNS9EJE2zNiAYQ9mCImYdE2j0xwLKe+OtmdT07+0QmMdpNAes04da8TEtnj3spJFVAsOrEH6yQlDMpTIG3xKxElu73u1753q6t+rGpTYMuBMS2SwFKE+9IAo9l15i55Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nj6Z81N01vY3XvfYQy+xhGlOvhCvIFvRcD16AMxsTXg=;
 b=s6/KERyy3wuzd+j0K0XyC8g71kVxwQGCJxtd/ekw3weR8Iet5bovlLq0rGf4W2l+OjTYV85iBIa3SCVKx70lNJPD+RJCtjpbF1qK4uy3j05ahujvDAS9ETTnXdxiMYTqeeVMpgug6YP93q5jESBaqMRS0a0NlDb2tE3jI/JUuo/LudkmumPNa/TQfa2GjH6K8HFULdfCXjBhpHkNinHKOvTZZwQV+nh04A4QgKnz7g5WeAd5iz1vWeOpqmNpRMiigi+Ue3lH6eMvNhydWn73oxrQgQq84zryw++9CojXtGHyOwWtvPujbxjr1wV/QCjjooNk8iWn/hm9fP8jaoiqww==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Milan Djokic <milan_djokic@epam.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
Subject: [PATCH v3 22/23] libxl/arm: Introduce domctl command for IOMMU
 vSID/vRID mapping
Thread-Topic: [PATCH v3 22/23] libxl/arm: Introduce domctl command for IOMMU
 vSID/vRID mapping
Thread-Index: AQHcwLEEe+7BrcQh2EWF8RsNhJr7LQ==
Date: Tue, 31 Mar 2026 01:52:22 +0000
Message-ID:
 <9db4c7b985de8cafacf778c41c35699f2ef07fe2.1774918270.git.milan_djokic@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774918270.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|GVXPR03MB11035:EE_
x-ms-office365-filtering-correlation-id: 804f03c1-f56b-4395-cb4d-08de8ec8268f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|7416014|376014|56012099003|22082099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 Yz/X4i7nCApIpbIywaDfpjPLI+BPnPTmMhB5enAXvhMGoEFE7hx8DaVqg0di986D2holyvsUy5uVp32c90PFTwvUQLeFbkzQeCROe0Dv+GUYbNjDKyZk4uM87HiEjbYJSx950XH1Kd4OggZIHxmNN5IYBX5vDTf8fCgDuy575u5DvIx35Oxzr/uo3yEmpOz2CzWrd8ZwjgEmmafPoKF78SjejlQmjtlz4ef8e6zbD1iXgUzmMHmsW6qL8G9Z4K2C0k+PksV7dDmHYq1IXYp/PiRkx8mTij/JjiH6nd4nmFwmgSFZtOOu7CohTok5BNy7puoQKcMoaDNZuBNM846YEJ+E9uQ3ke3FLfxX5LDnlxHhzzV/kDpMblJmMDe6zVljvE0hxs80dk7xgvThErJSCJhbChWBsmanpSsG9gyaLrtSKJXoPkBXCVGxhgHgC/wEGdSb0rov3lg6QTnwbwM24usHSa6/3ZrfMr6IjSHzmaBCxhtd+YYuHbxQ67wMtp1JcPJx/C2bCqUKJAsiAvuEIaY1nAz1y3VczC4RVXWF+N0uAXmprjzrO0v4T8Nd8Ip2Dvpoze0c3+fT374LfM7/BFRg23uZcOVzPxcZfi295Q/9p8pciVuOt11XvygMgUGs8ZiDuh6sg0I9tKfwu1UmzeVoZPd7qBXOiLM6ICe3P+Wc0B5mmyIO25Fm7KEIu3fnyqSQV1KXFuvxUhLVGh4b2Tu5ZNOgUVdFBFL8xe7f6K7Mj9ZOuDOXgUKzo7mSS/oRQm1nsnyrLLwbwAr3rrutZK/QEWC7q+fNI/Gk1V9mTto=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(56012099003)(22082099003)(18002099003)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?yisMQU7nZE43+sOI4RfpQRzMulELgvCfGseOWpQKnfq3AWTqcgjc+3Kojc?=
 =?iso-8859-1?Q?9Sz0o1S6t9QUQe4IF4DMqsO9qhJbyp8dzPQuWZ6JswK/6zKYODSm1TJVS/?=
 =?iso-8859-1?Q?dMd//sKl8lNapBZt7XxBMhJ/XzzBsfdvGIgb2PAoY1TQZWACUeGVzaNyC1?=
 =?iso-8859-1?Q?FLl3zaI1tKBIosvg8DtJYBmIq92WgHzwMIqRM11uvJb5QF+AXBcIlVFYHW?=
 =?iso-8859-1?Q?2M4HzWeZIAWgTKFff240O83IlMegqWRTJ62lbl59NZ7o9DG+f8R1LIiZeL?=
 =?iso-8859-1?Q?YC9qd/Ywfs0mzOmKkD9L0UN9cb9P8aG19U6CyI1357AsEjfOHPUzEMRB+K?=
 =?iso-8859-1?Q?o1rKoxmroy3ePpuJQ/yZUWbmqEn6qgVTVQTD/ID0QpfYiZCd0rJW+Bu+s0?=
 =?iso-8859-1?Q?k7PpAUxksq7jm4+tlJvD6iGv7yeqyXOT9gWttU2RcEhj3PITDhlVMbQKg7?=
 =?iso-8859-1?Q?fHUIgm2CalL5PPbtQQib7OqMoJiDd4qULEFyVwGB2UhRlicpy3G88TT12V?=
 =?iso-8859-1?Q?+n78Q4lvYR/JQaTIbbqXUG4Qn7CQDYc2GkvcAzlY45L0RYQPEXR6ZH25xP?=
 =?iso-8859-1?Q?33251rh1Ao2MnmuxpQPRU4OqGx+BNFHVFcONke3tiEj+VwO+xYqIWsc0D+?=
 =?iso-8859-1?Q?0yE7AC2b7Urr0zb2eziZlAP1vq2jWa0N6FT8Lic3st2ao8cR0U/q7ztoQc?=
 =?iso-8859-1?Q?B7eT8k5aMp9tKcuaOkeQyDxwkGdduk7E5+6+eNvPJvW35fq6YGzNuTsCga?=
 =?iso-8859-1?Q?pXovEfurt0kiwpfkHn1k6hchVljRcEl6BGJ7ljpd891zR+7Zob4O7aZuHI?=
 =?iso-8859-1?Q?nFYqdJbxcFuaka4jNl2b05htkanLDoWp4NWQw2nL1UYddzvzj7jMzhJ35+?=
 =?iso-8859-1?Q?ejiAJYwCMDQS9fXqPJAgiPWt3rr64X6ILLsXTsWLipDWiXqfmRGipQq4Z2?=
 =?iso-8859-1?Q?KW8gsusU1uArOVXzLuBw2WSmFQ0j0rG1ODSyRdAd9oPSgZX3qaS9ftqxvC?=
 =?iso-8859-1?Q?gdRI4SaJ8Norp/XhI1KbDEB2/YTzoaWDF9HiA+fCgJsu8MtcwQw4OVJ8/0?=
 =?iso-8859-1?Q?SIoC0uvnMTAPt7kNw/wPiG5l7A2oyfe0w3ybYdIqezDJIGNaOAXYSAelZq?=
 =?iso-8859-1?Q?OMMjhldckYJcncl7fTK41YU5MEylvvz50xSfm6Nvhrzx3xilkxO5V3ZS9I?=
 =?iso-8859-1?Q?4ybDhdxZxyuhgU8gfHDa4dF0gF5Gbd9sBn8TpeMZuHWybzEMBZQN4SGiNS?=
 =?iso-8859-1?Q?WaAXp1I/K8UA0zmO7+7k0XOTktXfTi9WHVaOdMQkw6AmSzUIdwg6UD7Ht2?=
 =?iso-8859-1?Q?L51VmsZy52mNVvmyBBeq+eIQA2LOZ0OhYJNYbQ8rp11sdcKdbfNY+OWM3y?=
 =?iso-8859-1?Q?jLoXed/DO9Xfr4jKV2XCAvEfUP6WuNm9omHQP6P32E4JjkqU2IGNZVWYmI?=
 =?iso-8859-1?Q?AZiN1gLkaCDVM6C709o86FMlh0hBHC9jjekC6FEGIQwmL+GP/JDjAoY6n7?=
 =?iso-8859-1?Q?Dk0THu8UVylr0DgYWJ9O6ToXSzGRe7I4kOSALWy+rIyyU/cRHpFWh8rt8S?=
 =?iso-8859-1?Q?qZXwow5ppxQr5FGSVcdsl8wR07Pps+WcWc/NcBdSYS5XggwuZicl8JKrFC?=
 =?iso-8859-1?Q?dFCaixpB0VKn3JsQSjs7PhOWu6s9+xaDfcMnZ31VLVIfP5pUTOmjZxf2jE?=
 =?iso-8859-1?Q?Ft8u82SFqbLEPdNjBpOB9C8d/C//Mn9+dN+RVL5bhevjcWZpfMFzF1OW7H?=
 =?iso-8859-1?Q?xo+I7cxZzrvjsDqDn4xr7OHfceUy9uHD7wlz9kQBsUDPle22njqP56eLdY?=
 =?iso-8859-1?Q?3UPjzHrymwjyXgwdbRpsCuNYiKVguHw=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 804f03c1-f56b-4395-cb4d-08de8ec8268f
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:52:22.4564
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: GHnZjfP09eRHyRfFUO5922MsEUCGb7kImApF59E8PQOi73qe32K6qHPVku1phlUxwps0HXA2J82Zl4NaC8nXmQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB11035
X-purgate-ID: tlsNG-42698a/1774921945-A0C05112-B9E7E765/0/0
X-purgate-type: clean
X-purgate-size: 14731

For guests created via control domain (xl, zephyr xenlib), partial device
tree is parsed and loaded on control domain side.
SIDs in guests device tree have to be replaced with
virtual SIDs which are mapped to physical SIDs. In order
to do that, control domain has to request from Xen to create
a new vSID and map it to original pSID for every guest device IOMMU
stream ID. For this purpose, new domctl command (XEN_DOMCTL_viommu_allocate=
_vid)
is introduced which control domain can use to request a new vSID mapping an=
d
insert a new vSID into guest device tree once mapped.
Requested vSID allocation using this interface for vPCI/DT devices.

Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 tools/include/xenctrl.h             |  12 +++
 tools/libs/ctrl/xc_domain.c         |  23 +++++
 tools/libs/light/libxl_arm.c        | 127 +++++++++++++++++++++++++---
 xen/arch/arm/domctl.c               |  34 ++++++++
 xen/include/public/domctl.h         |  20 +++++
 xen/xsm/flask/hooks.c               |   4 +
 xen/xsm/flask/policy/access_vectors |   2 +
 7 files changed, 212 insertions(+), 10 deletions(-)

diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
index d5dbf69c89..61be892cc8 100644
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -2659,6 +2659,18 @@ int xc_domain_set_llc_colors(xc_interface *xch, uint=
32_t domid,
                              const uint32_t *llc_colors,
                              uint32_t num_llc_colors);
=20
+/*
+ * Allocate guest IOMMU vSID and establish its mapping to pSID.
+ * It can only be used on domain DT creation.
+ * Currently used for ARM only, possibly for RISC-V in the
+ * future. Function has no effect for x86.
+ */
+int xc_domain_viommu_allocate_vsid_range(xc_interface *xch,
+                                         uint32_t domid,
+                                         uint16_t nr_sids,
+                                         uint32_t first_psid,
+                                         uint32_t *first_vsid);
+
 #if defined(__arm__) || defined(__aarch64__)
 int xc_dt_overlay(xc_interface *xch, void *overlay_fdt,
                   uint32_t overlay_fdt_size, uint8_t overlay_op);
diff --git a/tools/libs/ctrl/xc_domain.c b/tools/libs/ctrl/xc_domain.c
index 01c0669c88..39ffe80e6d 100644
--- a/tools/libs/ctrl/xc_domain.c
+++ b/tools/libs/ctrl/xc_domain.c
@@ -2222,6 +2222,29 @@ out:
=20
     return ret;
 }
+
+int xc_domain_viommu_allocate_vsid_range(xc_interface *xch,
+                                         uint32_t domid,
+                                         uint16_t nr_sids,
+                                         uint32_t first_psid,
+                                         uint32_t *first_vsid)
+{
+    int err;
+    struct xen_domctl domctl =3D {};
+
+    domctl.cmd =3D XEN_DOMCTL_viommu_alloc_vsid_range;
+    domctl.domain =3D domid;
+    domctl.u.viommu_alloc_vsid_range.first_psid =3D first_psid;
+    domctl.u.viommu_alloc_vsid_range.nr_sids =3D nr_sids;
+
+    if ( (err =3D do_domctl(xch, &domctl)) !=3D 0 )
+        return err;
+
+    *first_vsid =3D domctl.u.viommu_alloc_vsid_range.first_vsid;
+
+    return 0;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index 7b887898bb..79904b746c 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -955,6 +955,13 @@ static int make_vsmmuv3_node(libxl__gc *gc, void *fdt,
     return 0;
 }
=20
+/*
+ * Stores starting vSID of vPCI IOMMU SID range
+ * Used as a lookup value to avoid repeated
+ * vSID range allocation on every fdt resize.
+ */
+static int vpci_first_vsid =3D -1;
+
 static int make_vpci_node(libxl__gc *gc, void *fdt,
                           const struct arch_info *ainfo,
                           struct xc_dom_image *dom)
@@ -963,6 +970,9 @@ static int make_vpci_node(libxl__gc *gc, void *fdt,
     const uint64_t vpci_ecam_base =3D GUEST_VPCI_ECAM_BASE;
     const uint64_t vpci_ecam_size =3D GUEST_VPCI_ECAM_SIZE;
     const char *name =3D GCSPRINTF("pcie@%"PRIx64, vpci_ecam_base);
+    uint16_t iommu_range_size =3D 0x1000;
+    uint32_t first_vsid;
+    uint32_t first_psid =3D 0;
=20
     res =3D fdt_begin_node(fdt, name);
     if (res) return res;
@@ -996,8 +1006,20 @@ static int make_vpci_node(libxl__gc *gc, void *fdt,
         GUEST_VPCI_PREFETCH_MEM_SIZE);
     if (res) return res;
=20
+    /* request vSID range allocation if not already allocated */
+    if (vpci_first_vsid < 0) {
+        res =3D xc_domain_viommu_allocate_vsid_range(CTX->xch, dom->guest_=
domid,
+            iommu_range_size, first_psid, &first_vsid);
+        if (res)
+            return res;
+        vpci_first_vsid =3D first_vsid;
+    }
+    else {
+        first_vsid =3D vpci_first_vsid;
+    }
+
     res =3D fdt_property_values(gc, fdt, "iommu-map", 4, 0,
-                              GUEST_PHANDLE_VSMMUV3, 0, 0x10000);
+                             GUEST_PHANDLE_VSMMUV3, first_vsid, iommu_rang=
e_size);
     if (res) return res;
=20
     res =3D fdt_end_node(fdt);
@@ -1326,11 +1348,92 @@ static int copy_partial_fdt(libxl__gc *gc, void *fd=
t, void *pfdt)
     return 0;
 }
=20
-static int modify_partial_fdt(libxl__gc *gc, void *pfdt)
+/*
+ * Store virtualized 'iommus' properties for every node attached to IOMMU
+ * and passthroughed to guest.
+ * Used as a lookup table for mapping <phandle pSID> -> <vhandle vSID>
+ */
+struct viommu_stream {
+    XEN_LIST_ENTRY(struct viommu_stream) entry;
+    char path[128];          /* DT path, stable across resizes */
+    fdt32_t *iommus;         /* fully virtualized iommus property */
+};
+
+static XEN_LIST_HEAD(, struct viommu_stream) viommu_stream_list;
+
+/*
+ * Helper function which creates mapping of dt node to
+ * to virtualized 'iommus' property
+ * Mappings stored in a global 'viommu_stream_list' to
+ * make it reusable for every fdt resize
+ */
+static int viommu_get_stream(libxl__gc *gc,
+                             uint32_t domid,
+                             const fdt32_t *prop,
+                             int proplen,
+                             const char* path, fdt32_t **iommus)
+{
+    int i, r;
+    uint32_t vsid, psid;
+    struct viommu_stream *viommu_stream;
+
+    /* Lookup if stream for target device is already allocated */
+    XEN_LIST_FOREACH(viommu_stream, &viommu_stream_list, entry)
+    {
+        if (!strcmp(viommu_stream->path, path)) {
+            *iommus =3D viommu_stream->iommus;
+            return 0;
+        }
+    }
+
+    /* Allocate new viommu stream */
+    viommu_stream =3D malloc(sizeof(struct viommu_stream));
+    if (!viommu_stream)
+        return ERROR_NOMEM;
+    memset(viommu_stream, 0, sizeof(struct viommu_stream));
+    viommu_stream->iommus =3D malloc(proplen);
+    if (!viommu_stream->iommus)
+        return ERROR_NOMEM;
+    memset(viommu_stream->iommus, 0, proplen);
+
+    LOG(DEBUG, "Creating vIOMMU stream for device %s",
+        path);
+
+    /*
+     * Virtualize device "iommus" property
+     * (replace pIOMMU with vIOMMU phandle and pSIDs with mapped vSIDs)
+     */
+    for (i =3D 0; i < proplen / 8; ++i) {
+        viommu_stream->iommus[i * 2] =3D cpu_to_fdt32(GUEST_PHANDLE_VSMMUV=
3);
+        /* Allocate new vSID mapped to pSID */
+        psid =3D fdt32_to_cpu(prop[i * 2 + 1]);
+        r =3D xc_domain_viommu_allocate_vsid_range(CTX->xch, domid, 1, psi=
d, &vsid);
+        if (r) {
+            LOG(ERROR, "Can't allocate new vSID/vRID for guest IOMMU devic=
e");
+            return r;
+        }
+        viommu_stream->iommus[i * 2 + 1] =3D cpu_to_fdt32(vsid);
+        LOG(DEBUG, "Mapped vSID: %u to pSID: %u", vsid, psid);
+    }
+
+    strcpy(viommu_stream->path, path);
+    *iommus =3D  viommu_stream->iommus;
+
+    XEN_LIST_INSERT_HEAD(&viommu_stream_list, viommu_stream, entry);
+
+    return 0;
+}
+
+/*
+ * Used to update partial fdt when vIOMMU is enabled
+ * Maps dt properties of IOMMU devices to virtual IOMMU
+ */
+static int viommu_modify_partial_fdt(libxl__gc *gc, void *pfdt, uint32_t d=
omid)
 {
-    int nodeoff, proplen, i, r;
+    int nodeoff, proplen, r;
     const fdt32_t *prop;
     fdt32_t *prop_c;
+    char path[128];
=20
     nodeoff =3D fdt_path_offset(pfdt, "/passthrough");
     if (nodeoff < 0)
@@ -1344,11 +1447,16 @@ static int modify_partial_fdt(libxl__gc *gc, void *=
pfdt)
         if (!prop)
             continue;
=20
-        prop_c =3D libxl__zalloc(gc, proplen);
+        r =3D fdt_get_path(pfdt, nodeoff, path, sizeof(path));
+        if ( r < 0 ) {
+            LOG(ERROR, "Can't get passthrough node path");
+            return r;
+        }
=20
-        for (i =3D 0; i < proplen / 8; ++i) {
-            prop_c[i * 2] =3D cpu_to_fdt32(GUEST_PHANDLE_VSMMUV3);
-            prop_c[i * 2 + 1] =3D prop[i * 2 + 1];
+        r =3D viommu_get_stream(gc, domid, prop, proplen, path, &prop_c);
+        if (r) {
+            LOG(ERROR, "Can't get viommu stream");
+            return r;
         }
=20
         r =3D fdt_setprop(pfdt, nodeoff, "iommus", prop_c, proplen);
@@ -1360,7 +1468,6 @@ static int modify_partial_fdt(libxl__gc *gc, void *pf=
dt)
=20
     return 0;
 }
-
 #else
=20
 static int check_partial_fdt(libxl__gc *gc, void *fdt, size_t size)
@@ -1379,7 +1486,7 @@ static int copy_partial_fdt(libxl__gc *gc, void *fdt,=
 void *pfdt)
     return -FDT_ERR_INTERNAL;
 }
=20
-static int modify_partial_fdt(libxl__gc *gc, void *pfdt)
+static int viommu_modify_partial_fdt(libxl__gc *gc, void *pfdt, uint32_t d=
omid)
 {
     LOG(ERROR, "partial device tree not supported");
=20
@@ -1511,7 +1618,7 @@ next_resize:
         if (info->arch_arm.viommu_type =3D=3D LIBXL_VIOMMU_TYPE_SMMUV3) {
             FDT( make_vsmmuv3_node(gc, fdt, ainfo, dom) );
             if (pfdt)
-                FDT( modify_partial_fdt(gc, pfdt) );
+                FDT( viommu_modify_partial_fdt(gc, pfdt, dom->guest_domid)=
 );
         }
=20
         for (i =3D 0; i < d_config->num_disks; i++) {
diff --git a/xen/arch/arm/domctl.c b/xen/arch/arm/domctl.c
index ad914c915f..c85853e4cb 100644
--- a/xen/arch/arm/domctl.c
+++ b/xen/arch/arm/domctl.c
@@ -16,6 +16,7 @@
 #include <xen/types.h>
 #include <xsm/xsm.h>
 #include <public/domctl.h>
+#include <asm/viommu.h>
=20
 void arch_get_domain_info(const struct domain *d,
                           struct xen_domctl_getdomaininfo *info)
@@ -179,6 +180,39 @@ long arch_do_domctl(struct xen_domctl *domctl, struct =
domain *d,
     }
     case XEN_DOMCTL_dt_overlay:
         return dt_overlay_domctl(d, &domctl->u.dt_overlay);
+
+#ifdef CONFIG_ARM_VIRTUAL_IOMMU
+    case XEN_DOMCTL_viommu_alloc_vsid_range:
+    {
+        int rc =3D 0;
+        uint16_t i;
+        uint32_t vsid;
+        struct xen_domctl_viommu_alloc_vsid_range *viommu_alloc_vsid_range=
 =3D
+            &domctl->u.viommu_alloc_vsid_range;
+
+        if ( viommu_alloc_vsid_range->pad )
+            return -EINVAL;
+
+        for ( i =3D 0; i < viommu_alloc_vsid_range->nr_sids; i++ )
+        {
+            rc =3D viommu_allocate_free_vid(d, viommu_alloc_vsid_range->fi=
rst_psid
+                                            + i, &vsid);
+            if( rc )
+                return rc;
+        }
+
+        if ( !rc )
+        {
+            /* Calculate first vSID from allocated range */
+            viommu_alloc_vsid_range->first_vsid =3D vsid -
+                viommu_alloc_vsid_range->nr_sids + 1;
+            rc =3D copy_to_guest(u_domctl, domctl, 1);
+        }
+
+        return rc;
+    }
+#endif
+
     default:
         return subarch_do_domctl(domctl, d, u_domctl);
     }
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 23124547f3..190aed1e59 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -1276,6 +1276,24 @@ struct xen_domctl_get_domain_state {
     uint64_t unique_id;      /* Unique domain identifier. */
 };
=20
+/*
+ * XEN_DOMCTL_viommu_alloc_vsid_range
+ *
+ * Allocate guest vSID range and
+ * establish pSID->vSID mapping for target range.
+ * Allocated range is continous
+ */
+struct xen_domctl_viommu_alloc_vsid_range {
+    /* IN: Range first pSID  */
+    uint32_t first_psid;
+    /* IN: Number of vSIDs to allocate */
+    uint16_t nr_sids;
+    /* padding, must be 0 */
+    uint16_t pad;
+    /* OUT: Mapped range first vSID */
+    uint32_t first_vsid;
+};
+
 struct xen_domctl {
 /* Stable domctl ops: interface_version is required to be 0.  */
     uint32_t cmd;
@@ -1368,6 +1386,7 @@ struct xen_domctl {
 #define XEN_DOMCTL_gsi_permission                88
 #define XEN_DOMCTL_set_llc_colors                89
 #define XEN_DOMCTL_get_domain_state              90 /* stable interface */
+#define XEN_DOMCTL_viommu_alloc_vsid_range       91
 #define XEN_DOMCTL_gdbsx_guestmemio            1000
 #define XEN_DOMCTL_gdbsx_pausevcpu             1001
 #define XEN_DOMCTL_gdbsx_unpausevcpu           1002
@@ -1436,6 +1455,7 @@ struct xen_domctl {
 #endif
         struct xen_domctl_set_llc_colors    set_llc_colors;
         struct xen_domctl_get_domain_state  get_domain_state;
+        struct xen_domctl_viommu_alloc_vsid_range viommu_alloc_vsid_range;
         uint8_t                             pad[128];
     } u;
 };
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index b250b27065..91e80ea80d 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -820,6 +820,10 @@ static int cf_check flask_domctl(struct domain *d, uns=
igned int cmd,
     case XEN_DOMCTL_set_llc_colors:
         return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__SET_LLC_COLO=
RS);
=20
+    case XEN_DOMCTL_viommu_alloc_vsid_range:
+        return current_has_perm(d, SECCLASS_DOMAIN2,
+            DOMAIN2__VIOMMU_ALLOC_VSID_RANGE);
+
     default:
         return avc_unknown_permission("domctl", cmd);
     }
diff --git a/xen/xsm/flask/policy/access_vectors b/xen/xsm/flask/policy/acc=
ess_vectors
index ce907d50a4..e4ffe2f5db 100644
--- a/xen/xsm/flask/policy/access_vectors
+++ b/xen/xsm/flask/policy/access_vectors
@@ -255,6 +255,8 @@ class domain2
     set_llc_colors
 # XEN_DOMCTL_get_domain_state
     get_domain_state
+# XEN_DOMCTL_viommu_alloc_vsid_range
+    viommu_alloc_vsid_range
 }
=20
 # Similar to class domain, but primarily contains domctls related to HVM d=
omains
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 01:52:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 01:52:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268302.1557714 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OHU-0006CS-MM; Tue, 31 Mar 2026 01:52:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268302.1557714; Tue, 31 Mar 2026 01:52:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7OHT-00067R-C0; Tue, 31 Mar 2026 01:52:35 +0000
Received: by outflank-mailman (input) for mailman id 1268302;
 Tue, 31 Mar 2026 01:52:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <milan_djokic@epam.com>) id 1w7OHM-0004eW-Tq
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 01:52:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7OHM-00EbSb-8G
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 03:52:28 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28c1-2eae-0a2a0a5409dd-0a2a4501906e-30
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:28 +0200
Received: from [52.101.83.106]
 (helo=GVXPR05CU001.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <milan_djokic@epam.com>)
 id 69cb28db-6400-0a2a45010019-3465536aceae-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 03:52:28 +0200
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com (2603:10a6:803:c2::20)
 by GVXPR03MB11035.eurprd03.prod.outlook.com (2603:10a6:150:287::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 01:52:25 +0000
Received: from VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30]) by VI1PR03MB5088.eurprd03.prod.outlook.com
 ([fe80::8471:b7dd:8a1c:c30%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 01: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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NC/61llCGtq9vLa+tsmLmjl3bi9tGMzYA7X+1hBGENzVu7Gfcu31bYsKpcTxX/QxCwuDMfqI6/FUxf0n67y3mrJLNk69ctdJkQRFpqwoyT8VczeUQwxV4VFD1jUz8WD56h0N9AdqZmQmZgTvK+6ehm0zTYD4a8Co7GSvZGHFet1HPUQyNusWDmxyvv9vz7qgi9iKh/NHJjBmz9502GJLMf+tet3g/xMiyrh1yXyZwPEZxXDepD+fMVQMRbjT1gH7lcTqgsXRbjgRTFgLmc6oE3iK8GbaKZ1g482MLgG8otpcoIkVFAxLcdh7gmi7uGVAJm9utEIzW9euTFVIdjs30Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=POdIWiyq3zK2RST8fX5c8KWOFnxRtRBhHZSCrNKk+HM=;
 b=apR314B8h83ujfWVb8lkwR2rRvGT6VRc3AS6+hWpTDkpJjec4ubVGIKEDLil+1o8t8DTdbYar44bmSqqh5oT3KU/j9VqpJ6uISLUwXiM+uCf4/GpoOZWJLSMKAqprfuAzgxycEBadTd11qcTICemKdc92cMxcLfXwma9aoI35oeK9WbFfUHDquKvTk0lnCnIf6qsjwrGDrWjYA425qqSOdqjyvZOZmZkA1QrP6Wlyr1qf2Y07WpFxtH1VB1s6czoynv02/9Gn1L25SUTiXb9hGKTMt0cucPF8Sy977PWmm41sbLh8rxw1l4OhwG54ct/OM+j7FWQzaVcBpptY6XFmw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=POdIWiyq3zK2RST8fX5c8KWOFnxRtRBhHZSCrNKk+HM=;
 b=sKCPwGxkL9M262F1Xf4VAmWJONo+Nz/MNMyfD7MFWq3xjs5ao03W22byFCG8uMbR1p/4mOJlQ+8J7xotFKHrYRh2F7SJ7+GjHr40AQT9yHLcqHDwChY/E0sKTBUxYzLMJEsnsA9LhxBfWX+sKfZmjL/Md2eWvl6DJ2MWTUzZ9YC966vMiGqyVROmTQuc/KOFICNFmTigyILl2MM95noAYmgP/C3dpaQEyBPgYoiYt59gx8oNwzZ5jp83piDCR6dQ8/NvUrhK8RU4dhF4maYQvTB49kfB8RRuTQJDWqkTZWdKjiU2E9ZfargbOj72pfgEoyldkeK83zMUX7kRnRXmlQ==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Milan Djokic <milan_djokic@epam.com>, Andrew Cooper
	<andrew.cooper3@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 v3 23/23] doc/arm: vIOMMU design document
Thread-Topic: [PATCH v3 23/23] doc/arm: vIOMMU design document
Thread-Index: AQHcwLEF/MF3mCsLfEau6Nk62vBvCw==
Date: Tue, 31 Mar 2026 01:52:25 +0000
Message-ID:
 <06d3f9dd178c40b9b2360c24cc2ed55f9559eba6.1774918270.git.milan_djokic@epam.com>
References: <cover.1774918270.git.milan_djokic@epam.com>
In-Reply-To: <cover.1774918270.git.milan_djokic@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB5088:EE_|GVXPR03MB11035:EE_
x-ms-office365-filtering-correlation-id: 62dfcb1f-9599-4e47-06ff-08de8ec82854
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003|3122999024|38070700021;
x-microsoft-antispam-message-info:
 sJInYFNifUqVb6/1col1mHFHR01oGpaEFG9GWgB/Pyo2TlAFByd+uG8WUtsGUy8i0QV7Te7DF+0asMq7pre166HAXUbYW06N43e3BaTgrrd3SC75+xPW6dlyifhlSZLKS3aMrKV9xSU9M2YLx9B02l34HBsgoM8hst5N5IMY6SSumvVsJZcEh45zbQvKGwnv3vG6bCY04uVxYse8q2+bDvX43L7Jo80ZZXghKOW4+1V1x7ykEENZf+9CG/B7XVkScG+FGkGZbm9XRi0OaAl1Rffsb6KN9/HPAL0rzIq20a/KmfLK/Ygs96dfk0vqbrApg3wH+5C2cHV4vlYn1B1G4dsigXyVdCn6stiMPCswqzgPz7cNRLXu/W3q//6miFX952NhBGY8M6hCw+i5syXsK7W3x/4osCQNro6cofsrY1ML/Fe0SEpVqR7253L3QaNZT81cm/7/omvmwqAwra6KomxzJHFNSdW0+G7UZ8enGD6pG2ltLxtoh5R2jd4RaE2ZtJ09jm7o6gq7IBd9zylRmwENYDQm7VIX0YvFhcQK8fooKQXeDOC+xjXYrBLzMjHzk39xP7gCxJk8UlvKZNS9oocL77L8msnwMrH8MRNpXNe5fUyrpoXZXr3XTWXTxrpKuBafNo3quK/dmErH/Mc9M0F2ot9tn2LXub9pUDypmqFAlHVAy8mo3A8wnwA3kUJ01lqnmD/V9HGD08AwB5YKNXMr5BpPCblzHr1YwrwNDAvuKRpRdqyt9jJ/4aOKAyHvTA8msN/wiabTP1IcG/3MHdCgIczK7Re0f8lpd48H43k=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB5088.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003)(3122999024)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?SCcK2yqU8STACJbqomU5IYSnJCp7Ek2RNMCA/VwSlvZn4PdXaIDkwaIw6z?=
 =?iso-8859-1?Q?ggkZlTCprCpoK3Odn5uG5B2IVFuAnepUerJ38vYVFSfe8q3HqJOwgMdF/2?=
 =?iso-8859-1?Q?3yxT3eMM2Sv+BzM9gg7zhB+oJBkXI41KXJBH+n775hxZHrQ7vczvz/JssX?=
 =?iso-8859-1?Q?XyeW8HWL8c1Skoxo0f5xC8In6bWFh82CeAK+3InplpEIQLMCiJl+3gD8S1?=
 =?iso-8859-1?Q?7P91jDf4l/0k5kS+InzyzwpXVrMqmOGmC7bikjfe2XYnE43nJyJz2Mw2F1?=
 =?iso-8859-1?Q?a6elSfybIu1QimkCJYUmJn11OwedxAU1c9Pli+VMFbxeavukIb9kjZECBU?=
 =?iso-8859-1?Q?GoiSXvdZTnWTZiJAeF24lfASCvLFVO2AHAG5dh7FpX+5kyYN5+h9SAuxUQ?=
 =?iso-8859-1?Q?vqE2JediexOHH9wVi7mVrqZ93O1VcNL8phxTwxXKrx9WMckRLfSPQNMrNG?=
 =?iso-8859-1?Q?9P3h91o4vXquCDT0gma4RixySLt95DYS3z0SqjJcyFB1Q3wcCqDClgibCs?=
 =?iso-8859-1?Q?SSqpxABo/oYSFIacR+XdwgM1v32+hnvTz0NNvPouaSdf1rLIJTvdywOLT9?=
 =?iso-8859-1?Q?mQgZXvzTHpwRAJBFfoMoPmZKvyltMZ4+twNCXJnwdLZ37kaNg/Rt5xlzC8?=
 =?iso-8859-1?Q?tErrgYWo9SwbHnFhIgnTC9XQOR+Lu22qLJpBCuc5AQUOqv9WYKiC3KW3CF?=
 =?iso-8859-1?Q?4ZkaPFh5AgTYupT1KbfY2msyCT/ekUHVnCdFfFmlkBcrxv35MNrAKV/ehY?=
 =?iso-8859-1?Q?1dk+hZk5Mu5MJqLsIGs6Ajv2qKsCIgftIfJUSj6pEpHKq6oY1oh+1okN5Q?=
 =?iso-8859-1?Q?H+SOXLpi5bgP3l5svDY/MeZDsZOA3YJ/eM6uhVzv/wWM5oAKGsHMPm+1C2?=
 =?iso-8859-1?Q?odL+e1ANtGIuoKwMh5RLQUALq4DnkQzPR5OKtWpT6DZJ+BZA4ZFk3NUvHN?=
 =?iso-8859-1?Q?ZPFZ3/tvi5n0HcclRO/MefIRSHD6Pehx+1rdemw26maqJxpsl2to4IdUPr?=
 =?iso-8859-1?Q?xKzWeHYH1lipErTyrU79Z2KDx40O/ILQgkuHOinneK3aQoDY9TMxSaQsWh?=
 =?iso-8859-1?Q?63S8+WbJ1oimJ7Rn0j+0m4K9R9+QTntjeOWIQwD5sIfx4Ixf8p5aMK74Gu?=
 =?iso-8859-1?Q?r96uxTKi9QDq3BEMZ7HWL2HaDIB+BSyu4B0KoYhiNtGrqpylLSjYc3mKOC?=
 =?iso-8859-1?Q?LNV7GHSnF3kN9u1Jmc1NI+TPx0YCWGPkMglQRRL/DHD7+kI+AusekUSIVb?=
 =?iso-8859-1?Q?ca+dPjl3ZvdcOLmDmHWboJw6BdBb3UyaY9bKXQ675NlaWw9UU8hsewVucB?=
 =?iso-8859-1?Q?KgI5AAs41m4AvQ2odEBJvrP31aI0upQrll/MKuhy7+QgzjcazwB45wagBe?=
 =?iso-8859-1?Q?bDu0vu1ALoWoXchc2FlbZHJrdQeLKjqeVAR0b0fNbEOzinhoIufVtTbAe4?=
 =?iso-8859-1?Q?sL6YRBy9ak7t5FxqlwlFp+ItCr0DLRWTAp8viqtm4KjVjUPyKofnIljtFY?=
 =?iso-8859-1?Q?uSJY+FFbiBe3ai0rVma0ZwTZg3i5DXQVGijFr27A2fJgPahIfPT6AANrez?=
 =?iso-8859-1?Q?/3qH6W2QqkwTs0K8S7RG2lRlT6C4HrCsK1Fh8Y1rALw3saD+vmzG+NS8JE?=
 =?iso-8859-1?Q?wSPqRVPmd9S+7XivgHqwShwAz6D5BhcY39Tyrpfo6yJDd8CNfBWDlbHV9w?=
 =?iso-8859-1?Q?N2BtACMwpnIGobUBCYb4VQv8PnqnCrlaCQcZhnnHnOaHVAtspaU3QKHsAH?=
 =?iso-8859-1?Q?+seGkcFrfyGVKpFwq4TzT3f9NxAUg/+13OHXY/fTReX/VCdm6PFwdmB2BB?=
 =?iso-8859-1?Q?A5AwVwmOwl77/j6hrJHTjKyWE9JmIX4=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB5088.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 62dfcb1f-9599-4e47-06ff-08de8ec82854
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 01:52:25.4274
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Ovr8rekdWniPGrfsEo1bQA87nDcch8aOhadWadoMqZC59lkaXPI1cflpyVES43u1ohEpg0aqo9fWIF6R7g8AKA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB11035
X-purgate-ID: tlsNG-d62444/1774921948-49011DF3-D7ED07B8/0/0
X-purgate-type: clean
X-purgate-size: 16730

This document outlines the design of the emulated IOMMU,
including security considerations and future improvements.

Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 docs/designs/arm-viommu.rst | 390 ++++++++++++++++++++++++++++++++++++
 1 file changed, 390 insertions(+)
 create mode 100644 docs/designs/arm-viommu.rst

diff --git a/docs/designs/arm-viommu.rst b/docs/designs/arm-viommu.rst
new file mode 100644
index 0000000000..0cf55d7108
--- /dev/null
+++ b/docs/designs/arm-viommu.rst
@@ -0,0 +1,390 @@
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D
+Design Proposal: Add SMMUv3 Stage-1 Support for XEN Guests
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+:Author:     Milan Djokic <milan_djokic@epam.com>
+:Date:       2026-02-13
+:Status:     Draft
+
+Introduction
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+The SMMUv3 supports two stages of translation. Each stage of translation=20
+can be
+independently enabled. An incoming address is logically translated from=20
+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=20
+isolation between different
+devices within OS. XEN already supports Stage 2 translation but there is n=
o
+support for Stage 1 translation.
+This design proposal outlines the introduction of Stage-1 SMMUv3 support=20
+in Xen for ARM guests.
+
+Motivation
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+ARM systems utilizing SMMUv3 require stage-1 address translation to=20
+ensure secure DMA and
+guest managed I/O memory mappings.
+With stage-1 enabled, guest manages IOVA to IPA mappings through its own=20
+IOMMU driver.
+
+This feature enables:
+
+- Stage-1 translation for the guest domain
+- Device passthrough with per-device I/O address space
+
+Design Overview
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+These changes provide emulated SMMUv3 support:
+
+- **SMMUv3 Stage-1 Translation**: stage-1 and nested translation support
+  in SMMUv3 driver.
+- **vIOMMU Abstraction**: Virtual IOMMU framework for guest stage-1
+  handling.
+- **Register/Command Emulation**: SMMUv3 register emulation and command
+  queue handling.
+- **Device Tree Extensions**: Adds `iommus` and virtual SMMUv3 nodes to
+  device trees for dom0 and dom0less scenarios.
+- **Runtime Configuration**: Introduces a `viommu` boot parameter for
+  dynamic enablement.
+
+A single vIOMMU device is exposed to the guest and mapped to one or more
+physical IOMMUs through a Xen-managed translation layer.
+The vIOMMU feature provides a generic framework together with a backend
+implementation specific to the target IOMMU type. The backend is responsib=
le
+for implementing the hardware-specific data structures and command handlin=
g
+logic (currently only SMMUv3 is supported).
+
+This modular design allows the stage-1 support to be reused
+for other IOMMU architectures in the future.
+
+vIOMMU architecture
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+Responsibilities:
+
+Guest:
+ - Configures stage-1 via vIOMMU commands.
+ - Handles stage-1 faults received from Xen.
+
+Xen:
+ - Emulates the IOMMU interface (registers, commands, events).
+ - Provides vSID->pSID mappings.
+ - Programs stage-1/stage-2 configuration in the physical IOMMU.
+ - Propagate stage-1 faults to guest.
+
+vIOMMU commands and faults are transmitted between guest and Xen via
+command and event queues (one command/event queue created per guest).
+
+vIOMMU command Flow:
+
+::
+
+    Guest:
+        smmu_cmd(vSID, IOVA -> IPA)
+
+    Xen:
+        trap MMIO read/write
+        translate vSID->pSID
+        store stage-1 state
+        program pIOMMU for (pSID, IPA -> PA)
+
+All hardware programming of the physical IOMMU is performed exclusively by=
 Xen.
+
+vIOMMU Stage-1 fault handling flow:
+
+::
+
+    Xen:
+        receives stage-1 fault
+        triggers vIOMMU callback
+        injects virtual fault
+
+    Guest:
+        receives and handles fault
+
+vSID Mapping Layer
+------------------
+
+Each guest-visible Stream ID (vSID) is mapped by Xen to a physical Stream =
ID
+(pSID). The mapping is maintained per-domain. The allocation policy guaran=
tees
+vSID uniqueness within a domain while allowing reuse of pSIDs for differen=
t
+pIOMMUs.
+
+* Platform devices receive individually allocated vSIDs.
+* PCI devices receive a contiguous vSID range derived from RID space.
+
+
+Supported Device Model
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+Currently, the vIOMMU framework supports only devices described via the
+Device Tree (DT) model. This includes platform devices and basic PCI
+devices support instantiated through the vPCI DT node. ACPI-described
+devices are not supported.
+
+Guest assigned platform devices are mapped via `iommus` property:
+
+::
+
+    <&pIOMMU pSID> -> <&vIOMMU vSID>
+
+PCI devices use RID-based mapping via the root complex `iommu-map`:
+
+::
+
+    <RID-base &viommu vSID-base length>
+
+PCI Topology Assumptions and Constraints:
+
+- RID space must be contiguous
+- Pre-defined continuous pSID space (0-0x1000)
+- No runtime PCI reconfiguration
+- Single root complex assumed
+- Mapping is fixed at guest DT construction
+
+Constraints for PCI devices will be addressed as part of the future work o=
n
+this feature.
+
+Security Considerations
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+Stage-1 translation provides isolation between guest devices by
+enforcing a per-device I/O address space, preventing unauthorized DMA.
+With the introduction of emulated IOMMU, additional protection
+mechanisms are required to minimize security risks.
+
+1. Observation:
+---------------
+Support for Stage-1 translation in SMMUv3 introduces new data structures=20
+(`s1_cfg` alongside `s2_cfg`)
+and logic to write both Stage-1 and Stage-2 entries in the Stream Table=20
+Entry (STE), including an `abort`
+field to handle partial configuration states.
+
+**Risk:**
+Without proper handling, a partially applied configuration
+might leave guest DMA mappings in an inconsistent state, potentially
+enabling unauthorized access or causing cross-domain interference.
+
+**Mitigation:** *(Handled by design)*
+This feature introduces logic that writes both `s1_cfg` and `s2_cfg` to
+STE and manages the `abort` field - only considering
+configuration if fully attached. This ensures  incomplete or invalid
+device configurations are safely ignored by the hypervisor.
+
+2. Observation:
+---------------
+Guests can now invalidate Stage-1 caches; invalidation needs forwarding
+to SMMUv3 hardware to maintain coherence.
+
+**Risk:**
+Failing to propagate cache invalidation could allow stale mappings,
+enabling access to old mappings and possibly
+data leakage or misrouting between devices assigned to the same guest.
+
+**Mitigation:**
+The guest must issue appropriate invalidation commands whenever
+its stage-1 I/O mappings are modified to ensure that translation caches
+remain coherent.
+
+3. Observation:
+---------------
+Introducing optional per-guest enabled features (`viommu` argument in xl=20
+guest config) means some guests
+may opt-out.
+
+**Risk:**
+Guests without vIOMMU enabled (stage-2 only) could potentially dominate
+access to the physical command and event queues, since they bypass the
+emulation layer and processing is faster comparing to vIOMMU-enabled guest=
s.
+
+**Mitigation:**
+Audit the impact of emulation overhead effect on IOMMU processing fairness
+in a multi-guest environment.
+Consider enabling/disabling stage-1 on a system level, instead of per-doma=
in.
+
+4. Observation:
+---------------
+Guests have the ability to issue Stage-1 IOMMU commands like cache=20
+invalidation, stream table entries
+configuration, etc. An adversarial guest may issue a high volume of=20
+commands in rapid succession.
+
+**Risk:**
+Excessive commands requests can cause high hypervisor CPU consumption=20
+and disrupt scheduling,
+leading to degraded system responsiveness and potential=20
+denial-of-service scenarios.
+
+**Mitigation:**
+
+- Implement vIOMMU commands execution restart and continuation support:
+
+  - Introduce processing budget with only a limited amount of commands
+    handled per invocation.
+  - If additional commands remain pending after the budget is exhausted,
+    defer further processing and resume it asynchronously, e.g. via a
+    per-domain tasklet.
+
+- Batch multiple commands of same type to reduce emulation overhead:
+
+  - Inspect the command queue and group commands that can be processed
+    together (e.g. multiple successive invalidation requests or STE
+    updates for the same SID).
+  - Execute the entire batch in one go, reducing repeated accesses to
+    guest memory and emulation overhead per command.
+  - This reduces CPU time spent in the vIOMMU command processing loop.
+    The optimization is applicable only when consecutive commands of the
+    same type operate on the same SID/context.
+
+5. Observation:
+---------------
+Some guest commands issued towards vIOMMU are propagated to pIOMMU=20
+command queue (e.g. TLB invalidate).
+
+**Risk:**
+Excessive commands requests from abusive guest can cause flooding of=20
+physical IOMMU command queue,
+leading to degraded pIOMMU responsiveness on commands issued from other=20
+guests.
+
+**Mitigation:**
+
+- Batch commands that are propagated to the pIOMMU command queue and
+  implement batch execution pause/continuation.
+  Rely on the same mechanisms as in the previous observation
+  (command continuation and batching of pIOMMU-related commands of the sam=
e
+  type and context).
+- If possible, implement domain penalization by adding a per-domain budget
+  for vIOMMU/pIOMMU usage:
+
+  - Apply per-domain dynamic budgeting of allowed IOMMU commands to
+    execute per invocation, reducing the budget for guests with
+    excessive command requests over a longer period of time
+  - Combine with command continuation mechanism
+
+6. Observation:
+---------------
+The vIOMMU feature includes an event queue used to forward IOMMU events
+to the guest (e.g. translation faults, invalid Stream IDs, permission erro=
rs).
+A malicious guest may misconfigure its IOMMU state or intentionally trigge=
r
+faults at a high rate.
+
+**Risk:**
+Occurrence of IOMMU events with high frequency can cause Xen to flood the
+event queue and disrupt scheduling with
+high hypervisor CPU load for events handling.
+
+**Mitigation:**
+
+- Implement fail-safe state by disabling events forwarding when faults=20
+  are occurred with high frequency and
+  not processed by guest:
+
+  - Introduce a per-domain pending event counter.
+  - Stop forwarding events to the guest once the number of unprocessed
+    events reaches a predefined threshold.
+
+- Consider disabling the emulated event queue for untrusted guests.
+- Note that this risk is more general and may also apply to stage-2-only
+  guests. This section addresses mitigations in the emulated IOMMU layer
+  only. Mitigation of physical event queue flooding should also be conside=
red
+  in the target pIOMMU driver.
+
+Performance Impact
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+With iommu stage-1 and nested translation inclusion, performance=20
+overhead is introduced comparing to existing,
+stage-2 only usage in Xen. Once mappings are established, translations=20
+should not introduce significant overhead.
+Emulated paths may introduce moderate overhead, primarily affecting=20
+device initialization and event/command handling.
+Testing is performed on Renesas R-Car platform.
+Performance is mostly impacted by emulated vIOMMU operations, results=20
+shown in the following table.
+
++-------------------------------+---------------------------------+
+| vIOMMU Operation              | Execution time in guest         |
++=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+
+| Reg read                      | median: 645ns, worst-case: 2us  |
++-------------------------------+---------------------------------+
+| Reg write                     | median: 630ns, worst-case: 1us  |
++-------------------------------+---------------------------------+
+| Invalidate TLB                | median: 2us, worst-case: 10us   |
++-------------------------------+---------------------------------+
+| Invalidate STE                | median: 5us worst_case: 100us   |
++-------------------------------+---------------------------------+
+
+With vIOMMU exposed to guest, guest OS has to initialize IOMMU device
+and configure stage-1 mappings for the devices
+attached to it.
+Following table shows initialization stages which impact stage-1 enabled=20
+guest boot time and compares it with
+stage-1 disabled guest.
+
+NOTE: Device probe execution time varies depending on device complexity.
+A USB host controller was selected as the test device in this case.
+
++---------------------+-----------------------+------------------------+
+| Stage               | Stage-1 Enabled Guest | Stage-1 Disabled Guest |
++=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+
+| IOMMU Init          | ~10ms                 | /                      |
++---------------------+-----------------------+------------------------+
+| Dev Attach / Mapping| ~100ms                | ~90ms                  |
++---------------------+-----------------------+------------------------+
+
+For devices configured with dynamic DMA mappings, DMA allocate/map/unmap=20
+operations performance is
+also impacted on stage-1 enabled guests.
+Dynamic DMA mapping operation trigger emulated IOMMU functions like mmio=20
+write/read and TLB invalidations.
+
++---------------+---------------------------+--------------------------+
+| DMA Op        | Stage-1 Enabled Guest     | Stage-1 Disabled Guest   |
++=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+
+| dma_alloc     | median: 20us, worst: 5ms  | median: 8us, worst: 60us |
++---------------+---------------------------+--------------------------+
+| dma_free      | median: 500us, worst: 10ms| median: 6us, worst: 30us |
++---------------+---------------------------+--------------------------+
+| dma_map       | median: 12us, worst: 60us | median: 3us, worst: 20us |
++---------------+---------------------------+--------------------------+
+| dma_unmap     | median: 400us, worst: 5ms | median: 5us, worst: 20us |
++---------------+---------------------------+--------------------------+
+
+Testing
+=3D=3D=3D=3D=3D=3D=3D
+
+- QEMU-based ARM system tests for Stage-1 translation.
+- Actual hardware validation to ensure compatibility with real SMMUv3=20
+implementations.
+- Unit/Functional tests validating correct translations (not implemented).
+
+Migration and Compatibility
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
+
+This optional feature defaults to disabled (`viommu=3D""`) for backward=20
+compatibility.
+
+Future improvements
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+- Implement the proposed mitigations to address security risks that are=20
+  not covered by the current design
+  (events batching, commands execution continuation)
+- PCI support
+- Support for other IOMMU HW (Renesas, RISC-V, etc.)
+
+References
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+- Original feature implemented by Rahul Singh:
+ =20
+https://patchwork.kernel.org/project/xen-devel/cover/cover.1669888522.git.=
rahul.singh@arm.com/=20
+
+- SMMUv3 architecture documentation
+- Existing vIOMMU code patterns (KVM, QEMU)
\ No newline at end of file
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 06:04:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 06:04:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268479.1557741 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7SDC-0004kO-0T; Tue, 31 Mar 2026 06:04:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268479.1557741; Tue, 31 Mar 2026 06:04:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7SDB-0004kG-Te; Tue, 31 Mar 2026 06:04:25 +0000
Received: by outflank-mailman (input) for mailman id 1268479;
 Tue, 31 Mar 2026 06:04:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7SDB-0004jB-6M
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 06:04:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7SD9-005yWs-Ot
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 08:04:23 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69cb63db-bab6-0a2a0a5309dd-0a2a4509acf6-28
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 08:04:23 +0200
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69cb63e7-e484-0a2a45090019-d1558031d54c-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 08:04:23 +0200
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-486fb112c09so49262645e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 23:04:23 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4887a630922sm23957315e9.0.2026.03.30.23.04.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 23:04:22 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774937063; x=1775541863; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fjtgZ5sveKE9p5oWiQH4gh9W7PlvjIx93un87WwFBoo=;
        b=E6nQzmJNrrGd/nrLd08AthtNJ7BnMZ460k15lyxzgyCoR1Sf+0OzeHOPtGUyAMm0uE
         QN/Neo/umQ2ShEVraPfo+9Tv68sy0J+3YjvoyEz3NQUsGgS5tlIk+rPdCjXMQR+buVPw
         lCWFTVtwShk7bLB9rPnez6dVIuZhB69e0RLi0YOWqcIVdAqPYLXJebbNnPCzFX8HS3gq
         b3Nd+nzQQFHybyQwlhlDCL1L8+eyRkS3UipN/LLCbTT2eS38uiTPpIyivZ9Y+V4EdOwI
         jiaNqxg1Iot3j05vHxFOqPPXnoS1caC1ZId8eTIpDta/fxgZQH8mo2Uarb4Lz0hV2qGK
         CMTw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774937063; x=1775541863;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fjtgZ5sveKE9p5oWiQH4gh9W7PlvjIx93un87WwFBoo=;
        b=q9M254MBLXJ67E03qPoVPwmuWcF7g7FeHC4gzjSUdnem5JPuWOtNLTxATtzRxTf5a/
         p7uwCPtJeIXRgbPRwx79ztgG/pudpHXBTAJa+Sb76BBel8izdcFTl8ToprHd1ASHsIGf
         wOXqehvvr98EryPPegQGEBGJiERz8vq94LJ5al990ecl678ehXsMNcMSEWSsxL5zVGGr
         1CiZRSxYnWtlo1zQv0K140aygsQG9VQwIqGVPIgt/0YDgA2XGI3Y3RfgLUoUCag8GtuX
         1FUysVzrZgQeUrKCvck3RY2ShldSni3JJchYte6Agx1viHQzGvzD1d87WHYngb0X1g9/
         EIFA==
X-Forwarded-Encrypted: i=1; AJvYcCWi2XTt1hILuKWjqpOSEo6zv2tHMQ+8P+OJZWhgg9JxXMoHEQY7jMgJGgnP0I9vg3Gix3YR0lFxfq0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyE9QeFbzy/uHe45wrHIeITht38mcUpPrqYReh9cF3yNlehU5rJ
	d1XzHvkqbb/B1VOytZ5m7B39L8HA0FHBylEklCcZvFxSeLjMQj2b33xX//LQSp4i9g==
X-Gm-Gg: ATEYQzwRcwjSzYC+aG6dPGZ66Er7N9NYyOEHFt8LfdznfbUuVATZsAMe/kAqJ360viR
	Lq3ve02SLbJGOzOYdNmIMasEuYt9Oq7qHMteTa0mLyZj92MpGXV6q5H50m45bYyzg40XSZe8e0x
	fF3KuPNWDyunVfDIibmt+4RF9ZBmy1gPRbAVf9450xwWaIXRaCz96WSzPUz+rYUGF6X6/OhU4Vv
	ZVbaZXYKzXYeVr4S5aiKPAcezAZUs9PJFSlekyhZ5xaS7XpV2u3/U83s5HyqXQQnxdlIj0O5d2P
	bJWI+n9OPW0fxTRL8gpKvdU7eDeZUMKSdiDC2/ktl3MMQO5dnRCSdTxCMeXT41LeDc/yTRL/nLd
	jmvzFZE5pezDqLAphTxuWd3jMsL1Ox9dFk4OPKUM6EJyr56Ko2SK679YZtCzMVKN6WWI7mJ3e7R
	6u+1P52fDgn+IV47FXU18jPXaXZwieYdexrlYeBYNycnz0ts9ZSJEVzvxBHduKfpex2+m6VCNeo
	BAgU/Q6Pdt4Ps4=
X-Received: by 2002:a05:600c:1d1e:b0:486:fe46:b647 with SMTP id 5b1f17b1804b1-48727f00d8fmr248355015e9.10.1774937062813;
        Mon, 30 Mar 2026 23:04:22 -0700 (PDT)
Message-ID: <0664a324-a0c8-43b5-a92f-81bda9803ede@suse.com>
Date: Tue, 31 Mar 2026 08:04:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/xenstored: remove unneeded check in create_node()
To: Juergen Gross <jgross@suse.com>
Cc: Julien Grall <julien@xen.org>, Anthony PERARD
 <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20260330163153.676464-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: <20260330163153.676464-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-bad1c0/1774937063-5B0A9A73-926D90C7/0/0
X-purgate-type: clean
X-purgate-size: 797

On 30.03.2026 18:31, Juergen Gross wrote:
> create_node() is called only for issued xenstore commands. This means
> that the "conn" parameter is never NULL.
> 
> Remove checking whether "conn" is not NULL.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Should Coverity ID 1690859 perhaps be mentioned, as presumably addressed
by this? (If it is addressed by the change, the question of possibly
backporting would then also arise.)

Jan

> --- a/tools/xenstored/core.c
> +++ b/tools/xenstored/core.c
> @@ -1524,7 +1524,7 @@ static struct node *create_node(struct connection *conn, const void *ctx,
>  	if (!node)
>  		return NULL;
>  
> -	if (conn && conn->transaction)
> +	if (conn->transaction)
>  		ta_node_created(conn->transaction);
>  
>  	node->data = data;



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 06:14:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 06:14:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268487.1557750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7SN1-0006RV-T1; Tue, 31 Mar 2026 06:14:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268487.1557750; Tue, 31 Mar 2026 06: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 1w7SN1-0006RO-Q7; Tue, 31 Mar 2026 06:14:35 +0000
Received: by outflank-mailman (input) for mailman id 1268487;
 Tue, 31 Mar 2026 06:14:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7SN0-0006RI-CV
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 06:14:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7SMz-000B3q-AZ
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 08:14:33 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69cb6642-5cb7-0a2a0a5109dd-0a2a45028e6e-16
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 08:14:33 +0200
Received: from [209.85.221.46] (helo=mail-wr1-f46.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69cb6649-63bb-0a2a45020019-d155dd2ea4b2-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 08:14:33 +0200
Received: by mail-wr1-f46.google.com with SMTP id
 ffacd0b85a97d-43ccda008cdso1902993f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 23:14:33 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf21eb95fsm26104921f8f.12.2026.03.30.23.14.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 23:14:32 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774937673; x=1775542473; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5FDOSsiV/0KrX6PFsSaEXrl0LEpl/URcdawfdj3nnCk=;
        b=WKEdmq00b6B4ycVNYner8oHh14neIaMi0F1NQQMjBfhfQpL+JqZPhFckHACw8QMEYS
         tAs5aC0HqTDcrER85wBQycCfVP/2jKwGxZyrbcVSojrvLbci8SB5xtA7m6XivqCZ1rpJ
         xxPBCnJtM7eFsh7vhMK26lD2cnCTF6U7sxeGdotcdkxRwyLPpZ+8hZU3MJCiN+bNzt9X
         Zh3eCrsUeyFGKPolRgARiqfXqqFk8zuD881/U7KlhaJQFAKoR9Q0TnKt/eD8hkQMlI56
         9LwDnpodPlVSrDkgOcmdNVlmbO/8fX0qfmyGnsbYBBnwHSKmaiby4msLpSuzGaQA5KPK
         mGxw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774937673; x=1775542473;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5FDOSsiV/0KrX6PFsSaEXrl0LEpl/URcdawfdj3nnCk=;
        b=C5kSdCMavTazOvTa8gd7z3hr/WzDlfu4Ilt+tAmnzC7T+j+knYCeKJiAMVU1Uy3VRZ
         HG62uwDnJ8x4AsmJyhMMLDKFLBW+iQXAAGACy4LbfZ/qD42yZUxw+ljVH2BP9w9BC4hX
         ogvOtxne9aLK5iIRH/MSmAiozfRS8qWbVdmiWDORNB4HdypzWepnu4Aw4sR8/yjiphRA
         r+RzrxWGWBcOoeehzYcIGm7B+b4cxKpNe9YW9jWZTZdBPt0RoHgiAxcXhxbHLCBP4mfT
         UAKcN8hdd/gkSP8rUFin6FRINhEuBO91p1jraomrFstMpsX5nqQiMpoVk3CgexKHDkRV
         OyFA==
X-Forwarded-Encrypted: i=1; AJvYcCXpPAqUaYDMcKyrKxRwHT4ZAT3mJ//cD75NoIOcnXopCJzlp9sNL5j2CtwD1PEC0u22h8jhODZuBW0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwX5tQKEMnZuZKznCdPhPODCr2gSO3S3cQcBVWY58gywL6Kp5d0
	N98nC8TRKex6/SndYwxt1b0ag7U5B6pObVw+bOvfNenfa8UU6uIz8itlSjmaLnHpHA==
X-Gm-Gg: ATEYQzyiB+BxZj18U0jhoz8DycZMca+qsXmXmIT48CcElW69Eptw13CgantM7+VoNLH
	4VHC+2R9mdAmIAj+G/4TdKbr/UXg+8/equZwYEkmaV1VtFyVD63kYuZqJ1b+9QRTJgebiWPTwc9
	7DWV7LK3P6ugeVFA5SwxVn8kYF9UlBNaNhoowifHZXAchc7gY2WTMKM20z1JVs9SWaienbpnvYD
	VOGneGK/pvDuK1M6Gt0/DYI6TCX6GK1wvWYhyWT8a2eYM3c2fgZDKevnhMzoal3qoko03485p8U
	6K+L5vV0BVcvXiQyIgUVTU2ZInyEGdDd5xfDiqpk5UMCrb8vffjGuQW0loyUrJuC3C398GqoS0n
	FjKl6lv90R28HJLrpl7MW/jrPQ7wwMoZpd6bAX/UQUTE9IIxQGss7yS4ut32vGrBdtiowjMgjs+
	YYw2RQ+G/nGMLIkW7tPbmRnl0nHS2TQ80gKhGUgzv14m3wU90iXEZ6tjRDqlH0AdwXqt4VGDSoj
	NirLDaTdulUyUM=
X-Received: by 2002:a05:6000:23ca:b0:43b:9d69:43a with SMTP id ffacd0b85a97d-43d081c1b5amr2679720f8f.8.1774937672572;
        Mon, 30 Mar 2026 23:14:32 -0700 (PDT)
Message-ID: <16b415a9-b74f-4afe-a14f-e9d2df704eb9@suse.com>
Date: Tue, 31 Mar 2026 08:14:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/5] README: update minimum make to 4.1
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1774886602.git.edwin.torok@citrix.com>
 <4bbe4e23abcd5b1b32204d391bdd593205b89201.1774886602.git.edwin.torok@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <4bbe4e23abcd5b1b32204d391bdd593205b89201.1774886602.git.edwin.torok@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1774937673-43C8BDB8-7D68096F/0/0
X-purgate-type: clean
X-purgate-size: 1039

On 30.03.2026 18:17, Edwin Török wrote:
> Using .DEFAULT_GOAL requires at least GNU make 3.81.
> It was suggested to update make to match ~2015 era gcc/binutils, hence
> 4.1.
> 
> Signed-off-by: Edwin Török <edwin.torok@citrix.com>
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Link: https://lore.kernel.org/xen-devel/c0ba57bb-0d86-4209-b019-daf8328b5205@suse.com/

Unless we're specifically meaning to use 4.1 features, personally I'd prefer
the lower 4.0 (which is what I have on my main dev workstation).

Also, nit: Tags in chronological order, please.

Jan

> --- a/README
> +++ b/README
> @@ -35,7 +35,7 @@ Second, there are a number of prerequisites for building a Xen source
>  release. Make sure you have all the following installed, either by
>  visiting the project webpage or installing a pre-built package
>  provided by your OS distributor:
> -    * GNU Make v3.80 or later
> +    * GNU Make v4.1 or later
>      * C compiler and linker:
>        - For x86:
>          - GCC 5.1 or later



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 06:55:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 06:55:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268498.1557759 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7T0a-0003Yr-RB; Tue, 31 Mar 2026 06:55:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268498.1557759; Tue, 31 Mar 2026 06:55:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7T0a-0003Yk-Mj; Tue, 31 Mar 2026 06:55:28 +0000
Received: by outflank-mailman (input) for mailman id 1268498;
 Tue, 31 Mar 2026 06:55:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1w7T0Z-0003Ye-85
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 06:55:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7T0Y-0068hh-3p
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 08:55:26 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69cb6fd2-2eae-0a2a0a5409dd-0a2a4505980a-36
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 08:55:25 +0200
Received: from [209.85.208.44] (helo=mail-ed1-f44.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jgross@suse.com>)
 id 69cb6fdd-5aeb-0a2a45050019-d155d02ca874-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 08:55:25 +0200
Received: by mail-ed1-f44.google.com with SMTP id
 4fb4d7f45d1cf-66bd4e0560fso2249891a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 23:55:25 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9c0219ed95sm5982066b.29.2026.03.30.23.55.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 23:55:24 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774940125; x=1775544925; 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=DLf42zTxqeYYkDdxbc1IcFhV935j2RSHmZX1aBALXLI=;
        b=VxItY2X5AsmM1TYTxfJGO1G4cR2bm0/2KuaxuLCOFfDtiL83sEX2Y7mwRuFUOJtA1v
         Kqgt/AcQlzosmpNGjsxGNNlCkBpD1X54w/SKju36ybcjvhzLQpfnneQZ3BQJmCntIQgU
         PcCuZwSSYChdw55qbPMCBXHsu+VKWkVxTDG7dHuTq53Xq/K2lo4zkU3yPo36QX60jevY
         LrudzcfekjSRkeHj1Eoyyy2iqvs1AUxAMIS2OnxbOQniwWdjScmpd6D9rnbShd+gHIfL
         by9Qv6clheOW7IKCS4Be/LH0zZij6rzexk1Lbd5NLGheCA7CyrIPnsQdvd6Hza8P6CeQ
         jq7Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774940125; x=1775544925;
        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=DLf42zTxqeYYkDdxbc1IcFhV935j2RSHmZX1aBALXLI=;
        b=Bu+T7lrE9CSbavZC2wkTkmFIusX4ud9CJ7mPBW6BSvuQ9Vp8fammP/vTgLj8b1ro5o
         mEauoFNSAcqqoKtLTDugjn3Pm8RrsYwRdV7C5ihZooWnBn6nn/mO/YdEV3o1dlE+Stm/
         FSBSSJ2R1Wzefbe8UjTIERWFRLVdtzNrOWr+WOjdOZeCYa7z60je/WKxzjoxy/a4zPLj
         KlC1TAYkCtx58xmj13tTEgEa3ik+xeLFyUhCFcELmR+KT960K4tuCOpGX03GuTkStwdy
         GeUw/uZFXZpn9EqF0vVPwgF3KTxpo0hFBT4JqSme3xvdPI4QimPCQwt5bdfv0l2S9Ttf
         M6fA==
X-Forwarded-Encrypted: i=1; AJvYcCUZ5ex8U31Eg9XbqfMvjz19z8I3Jk3mN7U7bwwU08PfRGAy0AWTjKFXQwsPzQmMaY9U/UZaTODRmag=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwgrHF41oOYJYTJI62dn1qR36tIXm5xTXJzU8ZauARNHqFWitpH
	Q2NcDRXwRgEoNJFlmS+ghRHM6M5UzjZq11hc8Nyx4Sp2Z7FdL8wtMKevmfqn2XF97hw=
X-Gm-Gg: ATEYQzwoTdAgY+lcHW3BZPQr3vUOGsLxRs8hAqgBcHu3fWn4B+8U7T+JaWwDuhw9cPt
	MnTX5mHI2ul5KkVZDkAmHNuBISFKRN7yvy+V93PZf5n/CcI4Jf+DPJMaBievTPVjyuuwI9WTFVh
	lVEHdhXaKB2ijqkJEPrf8cv9rePQnvfhBAPFXQ4xgUhGIqRo6AaZlytrDcg4weL8JpO149Sz4Y4
	ch5m295gzqjFVMCDai6OOrT+vN01+HLnxgbcO/jYpCwMBiDHKDcKJyMrSl8hgWfeTSe8gNo8AFn
	JSGHj1y7kWtzjszKyoto1QscAFoKQOpwtx6M+ePPf27lFIkIFBTc9BM6wSIfIMZgY0qHat8zCYO
	tK9JlIo0WnU9Lss+9O7tk2rr0Z783GmEj8nD7dp8iWzln428pcXaDoSB2dFUqJ/i/tSoCNZM9AK
	qbe36TmGZLRwnItL04q/61qQbGRkE2Is4lpcpIRVYRbhLJTCw46Mwmoph1dMbfbSp6O0pokIVMP
	qqdXIt6VcymPRB8phn2KkH44wbhgtsh6PyFmqTXYNIVjl2cwY1ILw==
X-Received: by 2002:a17:907:e90:b0:b97:6d1b:4be8 with SMTP id a640c23a62f3a-b9be8383765mr141242966b.10.1774940125253;
        Mon, 30 Mar 2026 23:55:25 -0700 (PDT)
Message-ID: <713d4c85-6b39-4c6e-aed3-f5bae0a4d174@suse.com>
Date: Tue, 31 Mar 2026 08:55:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/xenstored: remove unneeded check in create_node()
To: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <julien@xen.org>, Anthony PERARD
 <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20260330163153.676464-1-jgross@suse.com>
 <0664a324-a0c8-43b5-a92f-81bda9803ede@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: <0664a324-a0c8-43b5-a92f-81bda9803ede@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------ME1QPUZtS8T7r8MDSWLFFUYY"
X-purgate-ID: tlsNG-c201ff/1774940125-22484488-ECDA984A/0/0
X-purgate-type: clean
X-purgate-size: 8720

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------ME1QPUZtS8T7r8MDSWLFFUYY
Content-Type: multipart/mixed; boundary="------------AjagN60LomXYc91L7BmKEGuK";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <julien@xen.org>, Anthony PERARD
 <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
Message-ID: <713d4c85-6b39-4c6e-aed3-f5bae0a4d174@suse.com>
Subject: Re: [PATCH] tools/xenstored: remove unneeded check in create_node()
References: <20260330163153.676464-1-jgross@suse.com>
 <0664a324-a0c8-43b5-a92f-81bda9803ede@suse.com>
In-Reply-To: <0664a324-a0c8-43b5-a92f-81bda9803ede@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=

--------------AjagN60LomXYc91L7BmKEGuK
Content-Type: multipart/mixed; boundary="------------a00Qf7VviHsI0JqP2gAlcSV1"

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

T24gMzEuMDMuMjYgMDg6MDQsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAzMC4wMy4yMDI2
IDE4OjMxLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gY3JlYXRlX25vZGUoKSBpcyBjYWxs
ZWQgb25seSBmb3IgaXNzdWVkIHhlbnN0b3JlIGNvbW1hbmRzLiBUaGlzIG1lYW5zDQo+PiB0
aGF0IHRoZSAiY29ubiIgcGFyYW1ldGVyIGlzIG5ldmVyIE5VTEwuDQo+Pg0KPj4gUmVtb3Zl
IGNoZWNraW5nIHdoZXRoZXIgImNvbm4iIGlzIG5vdCBOVUxMLg0KPj4NCj4+IFNpZ25lZC1v
ZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCj4gDQo+IFNob3VsZCBD
b3Zlcml0eSBJRCAxNjkwODU5IHBlcmhhcHMgYmUgbWVudGlvbmVkLCBhcyBwcmVzdW1hYmx5
IGFkZHJlc3NlZA0KPiBieSB0aGlzPyAoSWYgaXQgaXMgYWRkcmVzc2VkIGJ5IHRoZSBjaGFu
Z2UsIHRoZSBxdWVzdGlvbiBvZiBwb3NzaWJseQ0KPiBiYWNrcG9ydGluZyB3b3VsZCB0aGVu
IGFsc28gYXJpc2UuKQ0KDQpJJ20gbm90IHN1cmUgdGhpcyB3aWxsIHJlYWxseSBhZGRyZXNz
IENvdmVyaXR5IElEIDE2OTA4NTkuIEl0IHdvdWxkIGJlIGp1c3QNCmFuICJlZHVjYXRlZCBn
dWVzcyIuDQoNCkFuZCByZWdhcmRpbmcgYmFja3BvcnRpbmcgLSB0aGlzIGlzbid0IGZpeGlu
ZyBhIGJ1ZywgaXQgaXMganVzdCBhIG1pbm9yDQpvcHRpbWl6YXRpb24uDQoNCkl0IG1pZ2h0
IGV2ZW4gYmUgdGhhdCBpbiBvbGRlciB2ZXJzaW9ucyB0aGUgY2hlY2sgaXMgbmVlZGVkLiBP
bmUgd291bGQgaGF2ZQ0KdG8gdmVyaWZ5IHRoYXQgdGhlcmUgaXNuJ3QgYW55IGNhbGwgcGF0
Y2ggd2l0aCBjb25uID09IE5VTEwuDQoNCg0KSnVlcmdlbg0K
--------------a00Qf7VviHsI0JqP2gAlcSV1
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-----

--------------a00Qf7VviHsI0JqP2gAlcSV1--

--------------AjagN60LomXYc91L7BmKEGuK--

--------------ME1QPUZtS8T7r8MDSWLFFUYY
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/Ey8FAmnLb9wFAwAAAAAACgkQsN6d1ii/Ey8p
Mwf/W/JwtKNZEci8knOvB7vQH/rkZdDB5cX/t7q3IaCOgeraKiUVO5HlM+oT6diArNn7k19dtpAd
F7KkMkNKebj/424NxuhwwAA1Dftufef2WoDLM4C3ovAOz75JMYV3adVQeukSftIkF5oFKwEZgcHC
Uig5DPRzb6NxWgt2ad+eIar1V2bjWS9XynHG346BeDppzlHfRVDDj2GVZhodfViIbmN/mtnnY9Yh
UfZ2Iz28Z5boxzEo8FuF4DGTS164z+BMZM7id7XAKbQzkyKRwftEWWYYzXVEOkX3PLIE19sihdVl
WOgL+OQzk+WGUaMkBVwogR5D7kFDRseP7sQxpwb/Mw==
=B2g0
-----END PGP SIGNATURE-----

--------------ME1QPUZtS8T7r8MDSWLFFUYY--


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 06:59:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 06:59:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268510.1557767 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7T43-0004IV-Ag; Tue, 31 Mar 2026 06:59:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268510.1557767; Tue, 31 Mar 2026 06: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 1w7T43-0004IO-7z; Tue, 31 Mar 2026 06:59:03 +0000
Received: by outflank-mailman (input) for mailman id 1268510;
 Tue, 31 Mar 2026 06:59:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7T42-0004II-78
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 06:59:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7T41-000L6o-JH
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 08:59:01 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69cb70b3-5cb7-0a2a0a5109dd-0a2a450cca9a-14
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 08:59:01 +0200
Received: from [209.85.221.44] (helo=mail-wr1-f44.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69cb70b5-f93d-0a2a450c0019-d155dd2cbd52-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 08:59:01 +0200
Received: by mail-wr1-f44.google.com with SMTP id
 ffacd0b85a97d-43cfd96354aso1125958f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 23:59:01 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf330872asm22694478f8f.17.2026.03.30.23.59.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 30 Mar 2026 23:59:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774940341; x=1775545141; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1m6OErIgZMDvs1dLDcZt4fykCHfqlFKrzYYlAlue5hw=;
        b=WuQB/VVoa81zAfwRIaGve+Nlo6UJeavMIykIPaMX9ccyTGKpj6QwrJ5s6jgNBK13Ln
         t1JUc51wqpUJqD4fsZIC33ssXiCwDH8/fNMEZqWVQj8HMi2N3Ziznlsq72FaKLNQM2qY
         I9eDnrmD2tSLo2EAYsx0vaG61ReByLaEWXViMd6ccTLoOVS8HuGbcZQ0/0gGvfoQy9RN
         /T/V/J78oiIgB8dVtzjrO6hkYwUjbymoO5Hz1i+uTTAKJkSEEo5Usyl0CgqThzb5Rza8
         sxkEOthGzP1mzr5TnbkVrgwSi+tCCISjHztRovsHuWN1jQcSyIA8wz2AToTCsqhSgtSK
         m8JQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774940341; x=1775545141;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1m6OErIgZMDvs1dLDcZt4fykCHfqlFKrzYYlAlue5hw=;
        b=lDz+VvSRfhm+vMqUvt46uOvyCv8I2AD0n1juFcB4CbfH/s3SnqI3cm0TG1a7X1fx4y
         xdoC14F4Ls4iZrJUsQoYjg2K6/DxpNENxr3J8lFLH7K5Ycj6/949OjdyURRteCS7I/Zn
         H1og6f5FABs6nP3NBg21MI8XxvOuqEYK7x0fnQjWEVD0nLT0W1quE9BdUFtWiRMATT56
         YktPPKP731pf0+FAIbL81YrzKWFfGvJxXCc4ispbo1dVOFOCUPm9st4usx/+miWPmtfX
         TRyey4Xg6f4PKWm3OR8pu+17kmvWoteZDcuS1AoATGQkuGjaOecMiKTrOyLT+eY42C4l
         gJRw==
X-Forwarded-Encrypted: i=1; AJvYcCUbtM/VoAecuZjGMmf2z7pEAJ1/Oa+n8x1r33+VOw0KTvklf1vxMfpyB9MZ5L3+71LSItfxD+l9sz0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzQwLYYSHLf+xwABSTBhTrGTJmyHuuTWNarVkGU9YBkVGNEXmwA
	BiuFDi7gHX703EnQf8GUpO7jVY6Bt4uADg+oymbKziA+EXyGu2xK+z72sDYvv0HYZOtga5nzYM5
	JFiQOKw==
X-Gm-Gg: ATEYQzy2OyFK2B3s4uhfy543EP0NV06Uud7yioQoXcfRyShYC85+Kdc7DL7jwy6VzI7
	9/DU1IyU77cVx2KvmREE0YpKUPlmDScwefL6YRxAtnguBCxD8Jg+4ehvl/GgwDtHJSztxqLOEy3
	o7evsDnLDSs4mZimCAZFdRoZFfMFwVyKcRDU9dGoIICKtf1rw9MZLz8aGSGxf9TsMbStnGiBspF
	sudXT9q0NaGEAWRsfMelmSfPqQclYxpQAAgXN87hG7U8Xl2xTd9oa9zzMU4nE09wbZGlbLOoYg7
	7rfmXNLeUjt8WsJk75Tb/QJzpclkw6GZZ8uI4RXJVLUuTq6uHaiHxKuh51xAyxtIvEohD6zTUOZ
	2XJ8ZRD+H2/2Z0vc5JHebZrDiYPhvabcmEQ//ZlPXgHegghTzTrXPe7tb5XFgAAt4MmODw6W1Gh
	IdiRXNmtOBigWbv0oLAQD5yvWD8YuyDX4rKppIKOy6wVS3YQ1PhTNi4owmFXqXXpM2fIjqmn7c+
	SHXtH1j8kiA3Fw=
X-Received: by 2002:a5d:5d05:0:b0:43c:f90b:5661 with SMTP id ffacd0b85a97d-43cf90b5722mr15373162f8f.50.1774940340900;
        Mon, 30 Mar 2026 23:59:00 -0700 (PDT)
Message-ID: <a49f9840-7b8b-46a1-b171-ad0e81da7455@suse.com>
Date: Tue, 31 Mar 2026 08:58:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/5] CI: drop Ubuntu 16.04
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1774886602.git.edwin.torok@citrix.com>
 <587eb0701db6e5852e9628d0cb9db90250424c4a.1774886602.git.edwin.torok@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <587eb0701db6e5852e9628d0cb9db90250424c4a.1774886602.git.edwin.torok@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1774940341-6D0B8734-788A442F/0/0
X-purgate-type: clean
X-purgate-size: 2516

On 30.03.2026 18:17, Edwin Török wrote:
> Ubuntu 16.04 is EoL on 2026-04-02.

It going EOL very soon is a good reason; it causing ...

> It fails to build the emulator tests, probably due to a binutils that is too old:
> 
> ```
> gcc -m32 -march=i686 -DBUILD_ID -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wno-unused-but-set-variable -Wno-unused-local-typedefs -Werror -O2 -fomit-frame-pointer -D__XEN_INTERFACE_VERSION__=__XEN_LATEST_INTERFACE_VERSION__ -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -mno-tls-direct-seg-refs -fno-pie -fno-exceptions -fno-asynchronous-unwind-tables -ffreestanding -nostdinc -I/builds/xen-project/people/edwintorok/xen/tools/tests/x86_emulator/../../../tools/firmware/include -fno-stack-protector -g0 -D_16 -mpclmul -mssse3 -mpclmul -ffixed-xmm0 -Os -DVEC_SIZE=16 -c ssse3-pclmul.c
> /tmp/cchhD6n5.s: Assembler messages:
> /tmp/cchhD6n5.s:202: Error: junk at end of line, first unrecognized character is `{'
> /tmp/cchhD6n5.s:203: Error: junk at end of line, first unrecognized character is `{'
> /tmp/cchhD6n5.s:205: Error: junk at end of line, first unrecognized character is `{'
> ```

... build issues in the test blobs isn't. The harness is specifically able to
cope with blob build failures. Another thing would be if test_x86_emulator.c
failed to build (but see below).

Is the above representative output anyway (i.e. is this not perhaps interleaved
output from a parallel build)? ssse3-pclmul.c, built with -mssse3 -mpclmul (i.e.
no AVX512 options), shouldn't really involve `{'. Furthermore we specifically
have a check in the Makefile, skipping building altogether when gcc and/or gas
are too old.

> Same test passes on Ubuntu 18.04.

Hard to believe that there wouldn't be at least some failures. Perhaps said
check prevents the attempt to build the harness there?

> Note: the minimum version of binutils might have to be updated.
> Ubuntu 16.04 had version 2.26.1, which satisfies the >= 2.25 requirement
> in the README, and yet it failed as shown above.

The harness is special, as said. Imo we shouldn't be updating the requirements
just for it. If anything, the mentioned gcc/gas check may need updating. {evex},
for example, requires gas 2.29 (i.e. gcc6 time frame). As does VPCMPESTRIQ. I
specifically have a local patch to make it possible to build the harness with
pre-gcc7 (I don't have any gcc6 anywhere, to that boundary may be off by 1). I
didn't think this hackery would be acceptable upstream.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 07:14:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 07:14:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268520.1557776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7TIK-0007E3-FV; Tue, 31 Mar 2026 07:13:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268520.1557776; Tue, 31 Mar 2026 07: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 1w7TIK-0007Dw-Ca; Tue, 31 Mar 2026 07:13:48 +0000
Received: by outflank-mailman (input) for mailman id 1268520;
 Tue, 31 Mar 2026 07:13:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7TIJ-0007Dq-FS
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 07:13:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7TII-00AfeV-3z
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 09:13:46 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69cb741d-bab6-0a2a0a5309dd-0a2a450c85f0-34
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 09:13:45 +0200
Received: from [209.85.221.41] (helo=mail-wr1-f41.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69cb7429-f93d-0a2a450c0019-d155dd29cc26-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 09:13:45 +0200
Received: by mail-wr1-f41.google.com with SMTP id
 ffacd0b85a97d-43cf8d550bdso1866721f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 00:13:45 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf21e3602sm25364673f8f.4.2026.03.31.00.13.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 00:13:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774941225; x=1775546025; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=phZwkPlAN02gMSmPXafDDWQjYupInVaASDaMnTzYCDc=;
        b=Tl3Ey3EQ6lmv3hIpwqKBCP3K0Ja6+j1s49qW2H6PktXE73HhyIJl99oN0WqlZwKo69
         BWBuBSVAK1HhtS2nHTP0zlFmw1gFzPkqkJ1Ro1+N0n5bgdG9YMzAF/DIpZU65RbAsaVA
         llkQZaEIhcgjCsTI64vTbJgfQrGn4LUyoPAKJu7vOqopJ/+RYdSShMz8fBLd1Bz+j1kf
         BGiRq8DNtj2JojYJ2yLPihwicKu5+1AzhEfMu/9Mso3bwww6C4WI9STMA9YZSDnTZJGi
         ukdW57xPYP/T+3hkWUP0h8OiI9CToQCxycMQEo8u81ZQuLyJIDQ8DTLDQOwGyCGnEiX5
         IRsA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774941225; x=1775546025;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=phZwkPlAN02gMSmPXafDDWQjYupInVaASDaMnTzYCDc=;
        b=QvEfOaa4AUsteSa4Go9qnXs3LxGVCb//VOXGcYqMT+ymUTDvtSM26zT9T3aYhffh1p
         zUmlZqSaMhKvIiRzAAMwPgGUz3AJM/O7ld/Pw1Q75zMWmj0+lpvQrgpwsbDj/12JAGpg
         qXnKLzgvd10ldGWd3+9Rflj9w4jfDHxBD2MD72hCZg7R8clciJNThuqPmYoLV4uk3BeS
         YPu2haFH7qVii4/emoh0f1AnDVTanzp+alAncuFptBpTRNmTxzoxmNpp1d0AP1z2Br0L
         lkW4WJpOFkyUDC1Cd0x4cA8fPfeVL4H2MSMaLrWtMuurN0IPnBge4VNUO+zCiv4zhNP5
         JgBg==
X-Forwarded-Encrypted: i=1; AJvYcCVGacWQGAOki7Z63xalaesjITsiHVlLaIWOW+WbjaCI/MjeXGxSOqpiF9/DYQgogajSfTT63gx4Zy0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw98S/Xkl2BQzh2k2vqdwkwzSfK2MVVCvsXSvdGlZN/gzrIG6OC
	uGJ+GX0k/XmQQn1uIRQCFtXsbxU4endiRrVRnebc8zSv1h2k4jzeMtwqHjoBU34EnA==
X-Gm-Gg: ATEYQzwqUE6zj/C5ZSXneKhGOTQ2RUJkNf1oom4cXZDw4bQ0SGjXYM1uYaFAIkESBvn
	dTIHl3xBF4kU+B+W/C+aTyFYuzOt7osRugm2xrhe3lhR/Cx2Sz+1qcuthMmQd2CWcfpnR69w7LJ
	XGbBTjhpLXg+EbP91441bSK/3D1/HnSaNQlI8GBdRBeECTv2s4MAAgDeKemIloI3nHEHAoOHzB3
	nMDjQkuYVyOVl9tN6u4NY+LAXN2tmGDn9D/P0uQ/ivmwMxf+/vCBhKVnfnexY0HK+apVLNuwbrG
	Q1oXw72xnO9YH+C3JAZrfY+GmcdqZrE7sZxe6EqBImPc0kg3Ch8agXEkO8vKzmpwkxgDekCjQB1
	5FNhRXyIBkSvtmQmoUZ6vlBCNZvMI7/XrGWrROywZgtLijnDkwOHXJJrPOnW/p4cqjyaZXZLqe4
	oCAs3s1Dv7pDhsY5Qy557xCft45sCUIo0v975xomHXfIkcV9hWfZzvl85aUa23mVuCf8AlLxYDn
	++o323jIE8GjJs=
X-Received: by 2002:a05:6000:2506:b0:43c:fd4d:2404 with SMTP id ffacd0b85a97d-43cfd4d25f8mr13177933f8f.7.1774941225377;
        Tue, 31 Mar 2026 00:13:45 -0700 (PDT)
Message-ID: <d393d3b0-a7fe-4798-85cd-ae661ef1becb@suse.com>
Date: Tue, 31 Mar 2026 09:13:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/5] tools/test: introduce a 'make check' rule
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1774886602.git.edwin.torok@citrix.com>
 <aa855bc8e8721bd799c7699525b68d67430eb9cb.1774886602.git.edwin.torok@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aa855bc8e8721bd799c7699525b68d67430eb9cb.1774886602.git.edwin.torok@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1774941225-6D6B7734-1472F7D1/0/0
X-purgate-type: clean
X-purgate-size: 1693

On 30.03.2026 18:17, Edwin Török wrote:
> --- a/tools/tests/Makefile
> +++ b/tools/tests/Makefile
> @@ -17,5 +17,23 @@ ifneq ($(clang),y)
>  SUBDIRS-$(CONFIG_X86) += x86_emulator
>  endif
>  
> -.PHONY: all clean install distclean uninstall
> +.PHONY: all clean install distclean uninstall check
>  all clean distclean install uninstall: %: subdirs-%
> +
> +# Subset of SUBDIRS that do not depend on xenctrl
> +# Thus these tests can be run in the CI directly,
> +# or on the developer's machine.
> +
> +SUBDIRS_CHECK-y :=
> +SUBDIRS_CHECK-y += domid
> +SUBDIRS_CHECK-y += pdx
> +SUBDIRS_CHECK-y += rangeset
> +SUBDIRS_CHECK-y += vpci
> +
> +SUBDIRS_CHECK-$(CONFIG_X86) += cpu-policy
> +ifneq ($(clang),y)
> +SUBDIRS_CHECK-$(CONFIG_X86) += x86_emulator
> +endif
> +
> +# Ensure tests can run in parallel, the for loop in ../Rules.mk would serialize them
> +check: $(foreach subdir,$(SUBDIRS_CHECK-y),subdir-run-$(subdir))

As said in reply to the earlier patch, the emulator harness is special.
While its building is suppressed (not causing a failure) when the toolchain
is too old, its running isn't suppressed like this. Instead, if you invoke
one of its two run* targets, it is assumed that you would override e.g. CC
to be capable of building the harness. (This is particularly important for
the run to actually have full coverage, since - as also said in the other
reply - blob building may fail with, at times, not bleeding edge tools.)

Perhaps its running here could be keyed to it having been built
successfully before. And then, if (on a 64-bit host) the 32-bit harness
was also successfully built, it probably should be run as well.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 07:31:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 07:31:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268530.1557787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7TZW-0001v6-UM; Tue, 31 Mar 2026 07:31:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268530.1557787; Tue, 31 Mar 2026 07:31:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7TZW-0001uz-Q4; Tue, 31 Mar 2026 07:31:34 +0000
Received: by outflank-mailman (input) for mailman id 1268530;
 Tue, 31 Mar 2026 07:31:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w7TZV-0001ut-FH
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 07:31:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7TZS-00Dw5J-NM
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 09:31:32 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69cb7853-bab6-0a2a0a5309dd-0a2a450192be-8
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 09:31:32 +0200
Received: from [52.101.57.11]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69cb7852-6400-0a2a45010019-3465390b906c-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 09:31:31 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CO6PR03MB6211.namprd03.prod.outlook.com (2603:10b6:303:13b::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 07:31:28 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 07:31:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YD3f62DJklE4myL5oJ60AQaAX11XMFXICXME7/Jw6MyrKkoLyXmT5HZ9e2OixlvtOpNm9jtr6FUMDWdMZASgQWAKy7Nem8/G+Apy4cqDVyjm5aqcszSzdxgygeFYm5+ySJKsEJ1evXXvrWmoIwSutJ+jZyW2vrLvnhifjHz0vOcGBiX7WW/R0rdJbkr58jkVEL+8pbev+D8mJjRcmqUECW/uxAunnjungE4FOmRLBMeTZgTkdIYGJFoopotF2ZVVx5n4xU5tiPMd9TqLIVCjQVcMu/i72UPCSnKyBaEQ++LdE3Hwiat5Eesjis/3kbVnrHK8FYRPZEzVfGMXEoMnNg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vheqAJQ4ojLcTi+UsnqYL89G2/5RVLOWRianD+yHNKM=;
 b=qnuwUSDnQGCRgK2uc2McYcME93jgeghjf75Juy0lIL8Kx4PSfW8rPQ2TXu5zeNxzEgVTNh0nbAxVjP9x4c0wK3ZL8bLG1E8WoFeFx9z3LdGTyB0agXArY8hE2ci5Zj8iZ6RvQW7rW6ruq1nHhN53wyrow92dCO5KLjpNHBrpBtJp94nXOqOC7JSq5f1r+MqQ7YsAOT+5kefvFAZpVA4OAJzm6bTkwG0q9iw84PD9inpEDDR0iZJXQZjIRDDJrcqluEjmWGl5UQm1hD/HScQZ1Dofbi/Uk5Lz3cZmOKpRLxANonh1q5wPTQxrL2kYifYZd5SQ8K1QB9WeV39HC5cnvQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vheqAJQ4ojLcTi+UsnqYL89G2/5RVLOWRianD+yHNKM=;
 b=yg4EHz8Sg37ar9jmWR33dxZBg99WM7OzxM3OeV/YLkE1aFyuoBjJ3bRSFlvCH5zBbt6w+Yk0LEIEABMHZOIVXpu03LGaQdwYlHGQcwEjbZgbYYW/jiufNzfxt/kGic48685SbXMzuwkaiegS2g5y/PV+22DO7rW9uZPes2Zpa2U=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <22b8ff1a-e9cb-4298-9f30-b07125d0cddc@citrix.com>
Date: Tue, 31 Mar 2026 08:31:18 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 2/2] x86/pv: Provide better SYSCALL backwards
 compatibility in FRED mode
To: Jan Beulich <jbeulich@suse.com>
References: <20260325170208.1115832-1-andrew.cooper3@citrix.com>
 <20260325170208.1115832-3-andrew.cooper3@citrix.com>
 <059588cd-d73e-40a1-98b4-65be01957d41@suse.com>
 <08a02b65-92f5-4e78-8c34-38a22ae4d906@citrix.com>
 <b67bbdd7-e1dd-4a18-b552-1c90d6323ac9@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <b67bbdd7-e1dd-4a18-b552-1c90d6323ac9@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: DM6PR06CA0041.namprd06.prod.outlook.com
 (2603:10b6:5:54::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_|CO6PR03MB6211:EE_
X-MS-Office365-Filtering-Correlation-Id: 0297d61c-3698-4b1e-9696-08de8ef7848a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	7KjO0OGz/+rUPRK4IAl/x7DuntQzqKspCfLUUjV4pCS+vn3e3CSwz5OFhTdw7GGX/qR2YSovkaeeDaG51nXRknhVsmrthlo2EWZgdGTPtwBHIGm1q/2NUBaFzzbGVw7Vgg94c0J+rOSeotuaAN70XY8QdMleu/ez2qhI9wZx5knKQhcfVXyjy23Gu6QevKLU0FmfFvMknDaHHv5Jj73C8bKAhc2DptTDXLo8MWK53ZpISUtLwTSYnB9ZMZ/Ix7+kdYCkYTJEwVTEs5feTdwyooYpToShHPVKcpmmivhPAo+2z6zc7PWebnOsHLK12vh3COri0tZBXLEuLgG+/XD9ofBdUXGBNNu2UZZvGjf+mqIoomhyPZKGyjwe+RiJ3ShUfLsC4wtIx47VjOjwjHXRW568gobrQAUqPKnvgpmb4J0rKC7ftXD19tRl+Uj+IUZvZKwk7wGTNydoUIoqBjZZjnjIGy42fc7ZjffpaXE6WQa0t1Bw8Dg89CIO/6oESLmBBg9QgG/ADyWxGShyTUQsiNMZcKGI7aDbl9+pz6L0bFhnANATYhcq040CCegugSeAJwosHdbSd8dLC29ptH4hFymYNW03UOlY//0Sd8+SU6FCF1949mtSXgd/1/wwjBlcgHDzjURJF15UdMdE0CSzpA7RgohDbB0kOJEyXPOgg28keLd8+I9vpPhTg6CJJQXBRPG2b7oYltQZ2lthZsiFhTJJsaq4e2fTK9d1+Qrr0Es=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WEt5Vnh0RHd4L0wrUDhGMkVZTEs2eSt0VHdYWWlKODdrTzNLTVAzRUh2blZh?=
 =?utf-8?B?bzNGNVNpbXFtYlNxczVESDM4TDlxb3RlMjNrL0tndTJTNTNVOXBJdWN5RG5Z?=
 =?utf-8?B?VFkyZGFhTnFHWXd6SnJjRXZIYkZvanlKUS8zOXA4dDFUWnhPZjRxaHVlLzdT?=
 =?utf-8?B?c2lod2Jqc2UycDFMWUljMW90M1R0QkdQVnhqUHFKNmMycHJMdG5OYjJ6UVhk?=
 =?utf-8?B?UlZGcmhiYk1rUlRKNjJKazhhWFY4U1VNTEs4VjhpQkdYOGlZakM2T09mZ1Rs?=
 =?utf-8?B?ZjUzdnpsUVZLYkxDcFZ0QVJUVDRKOUNSNHRvZE5zaFJpeFU4WTdvZFpobGpy?=
 =?utf-8?B?K3QvTGh1UnpMQnhHNXZPRzdiS2xIMWpwRyt0MWQ4Uk41T3QxZUF6b3d4UUt1?=
 =?utf-8?B?K00rUktpWUkzTVZ2M2owa2xpMHQrOVIyclhXWTNtWGczSSs3cThONHhMRWZO?=
 =?utf-8?B?RFIxY2xpK1pYdmVuZnRPM3ZxU3pyc09DUEJTbkpwTFI1OXFHUy9uTUhNYmhq?=
 =?utf-8?B?bU1JUmJiemVPUFhXNnZUK1M0Q2N4ekRmZ2lsR3MxWDF4S0VLMnpmMWdRT0JU?=
 =?utf-8?B?WjMvOGlVL2VYdXVwMzVSNVNkb0o5MWJCa2xNTmFBY05qVDJQU0tCQTRwS2FF?=
 =?utf-8?B?Ym1ZZnhxWUVOQ2pXYnp5dGFMNVJ6ZTRBQ0dDZHg3VmJ3TXhEc3E2RFNqWDRY?=
 =?utf-8?B?Ymc5T3RqamRuWDNQcExJakZuei8zKzUzR1JQS2Z0RGROWkk2cUUzc2JVdWF6?=
 =?utf-8?B?cDdicEtPMENIZ2xaZ3BZQkR0RitNV2R6Zk1zdGUwelJQMUtIMThaMjN6c2VM?=
 =?utf-8?B?Sk5pVWwwM1BMbm04NkJBa3FCQm1HbWRKN3E3OTFwVXFLREJqTldkZForS1hj?=
 =?utf-8?B?OTV3SUwzUlJQd1RHN2U5a1lqYzEreWlFNjNPUmx6TTB0SDNnN0xIK3pvNk40?=
 =?utf-8?B?VDEvbjl0U2UzZXFNRWZ5Z1FPeFZqMFlUMERGQU8ycEJBMStQdmJPdktkN29E?=
 =?utf-8?B?QVJza1VBYXBFSHBROU1DaXFsOXViNUc5elNaYTRkM0tSUExLOFRpTy9iTHV6?=
 =?utf-8?B?b0ZRQzZrQ2lGWUVPaFVXclNaT1NMbTFwMGY0Z1ZvUVMzKzQwUmlNbGZNcG9y?=
 =?utf-8?B?SXhCK3VOVUpVUlRkT1dWeFdtYkFmR3dQRXdoQ1JOZWlZMGlRNzFxMkZQZE45?=
 =?utf-8?B?SjZqWmxhaEw0RVlnNDJtVDRZYzRqR083SWpRVWxtb0c5Y2tjMDYzQ0JmZ0Yx?=
 =?utf-8?B?anJjOCtMUFNtNERNWDJwM3Y2aWZwdnNMT0F2aGkySnFBZitwcm1taGFZTEdN?=
 =?utf-8?B?MCtJbkZzcjV6dVA5UWY4ZVYyUTFhL2x5RW9MTFowc2JLVVBrTytpYlhHL29Y?=
 =?utf-8?B?aE8xYWtzVzRiaDU1eGVhMlNYYWUrMThaSzRFY25ialZtc2VibEwyNlNoQVZK?=
 =?utf-8?B?N3VjYm1PS3BETnA3bWpsTnhuL01UQkFXSE9kQzF4cEZ0OFVzZVJ3RE9aSU5H?=
 =?utf-8?B?dUFhb3Flak9CMktlL3c1VHdOS2ZzbURTTXlibUJOLzY0QnExSmhEZnJxRjIr?=
 =?utf-8?B?TEFsYmtseWdxOGxNamxlV0xaYzFLUEw4NFYxTkNtY2tCRUdpNG1hTndhQnQy?=
 =?utf-8?B?azBaS1ZSMWdmVDFUeHdadUd3TGRTOVVVUEVCMW9wdWFaQVdDNEh4ZzJtTk4y?=
 =?utf-8?B?Zjd6VmpPaUp0Vk0rRS9RWkc0TVBwZTUwU0g1b0w2MVBsV21zV1BWNmJqbnRk?=
 =?utf-8?B?ZWdIVFhsQUEwZ3BacUNtYXFKUzNxUXdVZDlNai9WQWJBbDBrZ1MxNGJIcFpU?=
 =?utf-8?B?MWV2RjQzZnFENElMWURNVFJJNjZ2YURNY1FXWm9XMUdmQmV0N2JkcDRDOWNq?=
 =?utf-8?B?SzFpN2dGdUtKMGk4UGFabnJFdmg3dUZhb2J1dVJsSG5KSE9ITDg4bnlxK3Iy?=
 =?utf-8?B?MmRReXRpTFM1dmpUS093YUh1WEdnYVk2NEMvOHovT1gwcWpqZkJNMWhtQ0l3?=
 =?utf-8?B?YUpSa2hoNTN6eFBYazczRUwzdDVldHY3VzA3WjA1SDVkWmt2WWREQVF4M2hj?=
 =?utf-8?B?V2wzTVBXVXR4anhvVnlnd2lhejNhYnd3RWNsRlA1WnFGYWNEdGZadHV1eEQ5?=
 =?utf-8?B?SHRRMnNrc3I2MzlCRSs3SUFVc3VBM0lBQ05IcDVHZlBsZzhzZlp2VlNPYzRJ?=
 =?utf-8?B?d1FSZUhYVWlCVlM2N1Z6N2Ntb2dINDZTM3VGdVplSkd2OHpiMGxZTCtEbC9F?=
 =?utf-8?B?aDduYyszb2huTUNFbkVtNmlIaDhEeGgybVR0MEJmbGlHS1ZhVHNPTHA2Mnkx?=
 =?utf-8?B?SnFoMmt3WHhBZGFkV0I2cDRGU2lQaVROZzhRT0RUaHJ2K25ieTZzdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0297d61c-3698-4b1e-9696-08de8ef7848a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2026 07:31:26.5830
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: g6/2LCPoYzp6OdOx4ogn/vVe+FeBdM26lH2YrHUEpM9twP5atSwSyN6oOi2gZVMP5s/PqHUiAw5hGj8yzPKkp9sUZ7MofpLHvWP2QY1oy3I=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR03MB6211
X-purgate-ID: tlsNG-d62444/1774942291-8FCEBDF3-363CA6A2/0/0
X-purgate-type: clean
X-purgate-size: 937

On 27/03/2026 8:50 am, Jan Beulich wrote:
> On 26.03.2026 22:05, Andrew Cooper wrote:
>> On 26/03/2026 9:14 am, Jan Beulich wrote:
>>> Don't you also need to set TRAP_syscall here, for the new code in
>>> eretu_exit_to_guest to actually make a difference?
>> It is create_bounce_frame() which sets up TRAP_syscall.
> Hmm, right. I was misled by {l,c}star_enter and sysenter_entry setting
> the flag explicitly. That looks to be necessary only for the pv_hypercall()
> path out of lstar_enter; everything else goes through create_bounce_frame().

Oh, that's a can of worms in and of itself.

The hypercall page preserves %rcx/%r11 around the SYSCALL instruction,
but that's not captured in
https://xenbits.xen.org/docs/latest/guest-guide/x86/hypercall-abi.html

Given that we're now explicitly supporting the use of hypercalls without
the hypercall page for CFI hardening reasons, I guess I need to fix that.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 07:38:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 07:38:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268538.1557796 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Tg7-0002XA-Jx; Tue, 31 Mar 2026 07:38:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268538.1557796; Tue, 31 Mar 2026 07: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 1w7Tg7-0002X3-FW; Tue, 31 Mar 2026 07:38:23 +0000
Received: by outflank-mailman (input) for mailman id 1268538;
 Tue, 31 Mar 2026 07:38:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1w7Tg5-0002Wx-Hh
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 07:38:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7Tg4-006Ktf-NO
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 09:38:20 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69cb79e3-5cb7-0a2a0a5109dd-0a2a450691ea-46
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 09:38:20 +0200
Received: from [40.93.195.23]
 (helo=SN4PR2101CU001.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69cb79ea-3034-0a2a45060019-285dc3179aeb-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 09:38:20 +0200
Received: from BLAPR03CA0043.namprd03.prod.outlook.com (2603:10b6:208:32d::18)
 by MN2PR12MB4256.namprd12.prod.outlook.com (2603:10b6:208:1d2::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.15; Tue, 31 Mar
 2026 07:38:16 +0000
Received: from BL6PEPF0002256F.namprd02.prod.outlook.com
 (2603:10b6:208:32d:cafe::e5) by BLAPR03CA0043.outlook.office365.com
 (2603:10b6:208:32d::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.28 via Frontend Transport; Tue,
 31 Mar 2026 07:38:16 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL6PEPF0002256F.mail.protection.outlook.com (10.167.249.37) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9745.21 via Frontend Transport; Tue, 31 Mar 2026 07:38:16 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 31 Mar
 2026 02:38:16 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 31 Mar
 2026 00:38:16 -0700
Received: from [10.71.194.215] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 31 Mar 2026 02:38:14 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TA/U8bNPAI2nhTCDvseSaqa8Td0D/1/89rhNgZJEHx8kzrWGHqxuxW19E/CNzLajvSZp4yAP0ODs/FalWBfXl+JpewjBDZ0zLg8SyFMs92enNIHfcXRh6Tqxb65bU/TNQGcEaD7ftvEQvRhJ+Ma4PCQlInNTpCqPNnAvIFfuq5h9qt+RTSidieUP6o1UQD7U6pMIxQTSzR3qGcnIq2LDcKNXuSmi9KuoZqJ72vNuhGFC7Quas94BWCZWdmGakepvaBFYFTvdqhMUq6fM7DhInoSyOqM7yyZxtGkVLOCA+TvcOu7fCecgBK02Bhg8Lb3EiKutyGm5N05Ol0cdZZMHjA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=R8OTOJopiED8U5AoPpQCZNkIuYW8frx00RgQRk+tzc0=;
 b=if8MWhZ+DYrbxYxrOeHhrfuUJWdjbZ81qdVBHJOn1VQVc0yUdSEFaqL7n1qh3Yl9zpRwAwSIfq0TtclyWQ/qlb6paCBImkTeV5S75nNp54aGD5L6PW9q4gWwLoCAL6dm9B1vK/TEGQ/FIM/V55rs7I0Nwd6Xp5ck616Ca0Vc8Hdoprd6kUfTnSS5ZtOpIu2fioBieFMneAzBcbjX1pjUO6pJ3jIIQWk/pUILYtepGpZni47mT7KBCyMWrrUcDbNi1gJbBCzSlMhNAw9AIpZQR6NLXKwyGOWBEPV2d4UMjwI5WsUuHrg3D1v7wY8KOE44rWxRnEANtHnXfRry2ThG4w==
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=R8OTOJopiED8U5AoPpQCZNkIuYW8frx00RgQRk+tzc0=;
 b=SJ7FGJkzSgwYUXHaNDEWCOU0E442oGNdv0lOj1r1bJ6Fx7b20ky81fmoXDXylgYtapCMjjrDk+2VIlk0EbWuarstY4x/M/sTNZjGgOJu1UVQ2f4H/DOUJ82VKoiMROBS4P4oMK/se6cPHsSvwuHegpmN4H8HLaHhTpkcCVQvmG8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <be90998c-a8ac-4bd2-98b6-335bae982a22@amd.com>
Date: Tue, 31 Mar 2026 09:38:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] common: move safe_copy_string_from_guest() to lib/
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>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>
References: <0ba80bf0-e786-4e17-936c-0b769194d369@suse.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <0ba80bf0-e786-4e17-936c-0b769194d369@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0002256F:EE_|MN2PR12MB4256:EE_
X-MS-Office365-Filtering-Correlation-Id: b3a69468-8a3e-4796-0ce9-08de8ef878ed
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|1800799024|82310400026|22082099003|18002099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	h9QZkWgYwgvfd8SXdswahGPW39Pr2C6S1Kd9pMNrZIxRv+Q/KB1w3N4qu79PF9O+yj9gDDecCZtuLn0i6zHxW/MubFewpL01NHVJPSUrj6cfiGet77HDrY/NuM/J3nBsNiTI/RBWHRazKY+HlWmgzUQIUioUnE73+tM6dR3aI7Ws7yoIu8g5mcz4KdJJJQ4vYRdy9n86AjWbsULtg2W88LMkK4MUQfaFd+rJ5XoUfn84gMdxQwfdNvOHJrn5A4nk/yKqi0Wck9QVup5CbsD5f/zTVv4RpYiBBAj0pnFT6rCcYR4o6epkawTwsNmdGozR4EJg3WWeGVyGxEpxLpSTd+Ukv2veIa7zf7/f5fou7w3av31vpK9sUFY9Uj7His/sq1ZlUl3pq5lYDiLLUtNTqsuKk8jaJeG6yAK25SOjVSgmX35HJAeKd4zV9BDGTMB86HZ7P0t9gpF8XKyxdoXt4d6//3fwRmI+jI4W2kxL1yzblql5OEbQN3EXHezf8VObCa62Yg1e8H7bQ437XCyuSrn2uNhwtH9i7jUMmEG79yDyj497ftq3YmD0lFjxRWnIuOz4+JGDGKjM8euKusd1ZW3R9vBTgI6AHAQRDJg368hLEPbs3cfYvbKb9MvOEJNlCcKG11KkxsjYblfvXDYsS+6bFTgJAayzGo30drhtI0e4DI0sLT4h+zHwsrpjv99hH114jKGSkyVRZnqyZflGbBbMPjvszjuiNcM5i/iRUwWylUPfWCCCj0PW5HYCA3VlRjbwcBZ+M+gGGQ9jCM09hQ==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(1800799024)(82310400026)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	W+Q3Vm+xIewMKypXuzRc5i3sRXOpbA7ZKZIbGLTZkfgHEMV/zORNYEywUjvhhePeEt2V+d2BFMqUpoTEIYkmhuDO96rESMjoPcd+NN1jM/mgJ4LmwX3BF40cjOY2EbleFyYLRCHq06ZDLR3hro0+PMkT8JCxsG74mS06HwnPX779XD59znTanMAlstYDFoMtOFBb5Xx080o+jFn5/3mpj3frD+8fnPz26GUWYkRyepbP8pUiTqEogZ2vRCa8XsWWkrxh9u/Yn+DUupCPUc1JMQBk8SejlIlfsjsKhsncsr9hJ9uxwH4U3HLvlTRszouaxP7Y1ZBllbMteAf3Tb6FS7tEgytPSr0uiRk7eGhCVOKC8PskCKSb2/b6nDhkYrDOrZgJRnuTetIMn56prMcJwmJ83q00zw0wvPdbmvCWQGNKhr9UBn0qOtpRN9YzvMVP
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2026 07:38:16.4566
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b3a69468-8a3e-4796-0ce9-08de8ef878ed
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0002256F.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4256
X-purgate-ID: tlsNG-16d1c6/1774942700-80D851C2-3BEF0DD1/0/0
X-purgate-type: clean
X-purgate-size: 277



On 30/03/2026 13:34, Jan Beulich wrote:
> This function is unreachable on x86 when XSM_FLASK=n, and it is another
> good candidate to put in an archive.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 07:55:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 07:55:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268553.1557803 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7TwC-0005ff-0L; Tue, 31 Mar 2026 07:55:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268553.1557803; Tue, 31 Mar 2026 07: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 1w7TwB-0005fY-U0; Tue, 31 Mar 2026 07:54:59 +0000
Received: by outflank-mailman (input) for mailman id 1268553;
 Tue, 31 Mar 2026 07:54:58 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Oleksii_Moisieiev@epam.com>) id 1w7TwA-0005fR-0W
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 07:54:58 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7Tw9-000Z8D-Bt
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 09:54:57 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 69cb7dce-5cb7-0a2a0a5109dd-0a2a45079ada-18
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 09:54:57 +0200
Received: from [52.101.66.99]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 69cb7dd0-fd74-0a2a45070019-34654263a5bd-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 09:54:57 +0200
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com (2603:10a6:10:519::5)
 by DUYPR03MB11873.eurprd03.prod.outlook.com (2603:10a6:10:661::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.15; Tue, 31 Mar
 2026 07:54:53 +0000
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908]) by DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908%5]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 07:54:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sBy2VgbDohqW7sMd6VULZl699KQ+PMUTxa67A2gSrE5qAIe7MxhY/jdU/grGP1RwPyIzY6g74PAMQjDW9Mc1xT8u6D1WTrPgHQuyExUvW88dYVF/7e3fbO6723pJShDHHDRbgDaVn0g4bIkBYkG9CDv7+noNceyUnjVidp+SXE4Jsl4XKbMuMCKTvuOBoebP07Uok9UokOuGNSSEp8ZnDzR+nqJsCeAfLfY09Tu9vFPHn3YPBIapG5AtIKyAsJr0CNDpXGJVhNhP6E2jWtP6dgjHClglolQP7Ku8ePKqPGFH78opoORww1t5i+JpM/dZS23QpLCY9zu2k909rM3ALQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eFBEgNcV+FiMSQgiDwvidpNLnWRFRZEGTva0ecCFiMk=;
 b=yh1CyaRTupqFoiiDS9z/Pbj502Ee6Strv1OE/PghzJPPVq2eXqBTdH10+UJGuD0tK+jryM8OvuKRa5SNIq8b0HECIiboU06nvSN3WYtBau18p6WiOg8Ol5AKwMZECpE9fGcJS4pyDm0la4nINBVecm6gujxC+Ha9a7Iebuewg8QLzoL9jHEtUFZbCWhYx08l9R87+sU1KeMMvCDQ6jf2DyjIHr4WgwJc0lrhpeNVQGsuh92h3nkySTVfRl9vlNccIE/I3En4SMNToKisWWZ/YwjJMw/f1X33hmA2nv7HNjQ5rlLHVYXd/m2SVSidy2m2DlabxDV4fCrz9tMbAsLsnw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=eFBEgNcV+FiMSQgiDwvidpNLnWRFRZEGTva0ecCFiMk=;
 b=QWmnjjlseznzSWS0IMY8h2nmjz/s0GDH5ApGbSDIXEIevc/MASk4F+2sHGEDPRJSLN8Z35YKbcfr6WEBNdFt7S3/guRTYOAEzBCYQe3Nv8g9JkkCXmnpD2N8oZcdgblyPPfQVevFEpyDs2HhL3FGk28qFUoWqDdYYDkvtJQFeRTZBZNcNQ1quivKL90IyMFHSEGG/1yKBzEL0JtREp9YUQVvHRmHWsPiKcBHNV4qFeW/t9hZey+mSMNZKGlom8fxY9nbdhXUe+8WmRd0b6Icr82DKANcQAk4SX4V6OPoKyd1LCxglV2tOvMXG7ALADrNQ1uDQDRoU1HcU9T0CSeC5Q==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
	Juergen Gross <jgross@suse.com>, Meng Xu <mengxu@cis.upenn.edu>, Oleksii
 Moisieiev <Oleksii_Moisieiev@epam.com>
Subject: [PATCH] xen/sched: rtds: prevent extratime priority_level wraparound
Thread-Topic: [PATCH] xen/sched: rtds: prevent extratime priority_level
 wraparound
Thread-Index: AQHcwOOouqGhBaDuRkSxR1FXPcpmPA==
Date: Tue, 31 Mar 2026 07:54:53 +0000
Message-ID:
 <b6e65a9fb94d581a31e1d06b241522c17a7863cc.1774943670.git.oleksii_moisieiev@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DU5PR03MB10263:EE_|DUYPR03MB11873:EE_
x-ms-office365-filtering-correlation-id: 8373d279-2a1c-4c0d-3189-08de8efacb29
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021|18002099003|56012099003;
x-microsoft-antispam-message-info:
 w4SQoNA7nbfAUoA/KH1SXU9b9VAq1US8Ng2yb9B48jfxxfQ63k439hd+6Bt/i68LM6ewiqj3WEYWXi7qRRNF88AzvDc6rDktez6WjMVWXFR6IFYesIw9tSZeSBTYAzRx0oTdWHui++YWtQvIJEeOFYSI3gUYr1E8nt+9QgEN0tIEiAFqBm39gs2NoK2I/hMcmrFRMuX/SIEvUqTHOovYkwp4gHqTw+3UA2HyXkSP3q1TqPF54PmLq2iVfKcYXmK8M0RoaPx1Roee5rhM1SuFRdl2srINrO2CryN/f6h04/Kta0EU1CA9Rl+NcMoTw2FTetNr+QE5i2S2/C91c9qeqTPiZiu+hDyvyFP7dlxeKQO271LUuwbkWbB4P5E6w5a11R1Tl0+DzAKxMdwLzitufIuv10WKlm1tNHpM20sr2vVJY744Vky6nln7tQC3mpD7tp5caCXLaVyqPmYNNoEnpf8LKc+58IIWrt5MtSsjSGPf0DXwwFSJPJ0j4PjBgK+t+3kZHsJgMHhdg9ORGVpCwYRnyiXSxzUybRywoT8eXjfwwUzq6DSuA2Pie6xDRYf3jf1EFlXL4D47jVNUzs6LyqRJV1AF53f69G3d/GuuQMJc9fAIUmP6Z3cVUrFerEzPjhxCF0lnGvFH/JiAOCSQrn/UX7fo/cc2t78zoz2E2pTiO4wC7mtim71dNHLpe2p33bQqXTGdRHGOzHvrikW0eDKnuoVCkkRsqmu1eQb0V6Of2Qrqmjao9WFfZhS0QkdPMLi6H7H5gFcxiX+EYJkZxFzJGkKUUnWX6EWjAGkEvKo=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU5PR03MB10263.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?GmGEw6+ipF/biz615RY0iWdKrJdxs9lLSLH4TzZhnFCtTokDQ2ZXJhgbzk?=
 =?iso-8859-1?Q?/JDng+rBaz/+Gq4xOca4YtlsgxFw0yRTqj73hbctHvYOy4rdsEn5iylm+e?=
 =?iso-8859-1?Q?iqmSBXaRwQDeU9hTtwR5gmFXnFNeoDs3ZSe6H7p2jJMhplOftzC/xgSA6A?=
 =?iso-8859-1?Q?AmHoK3bVShHl1BEFRChSBnC7/f4CmIzA/jdOfNmdBVwlo05wOVXBb66O22?=
 =?iso-8859-1?Q?i53vOYWO7cusdQpi/wqLMSQyB12NKaf6Z6zLQmXdrsjMl2suV0XFFq17Nj?=
 =?iso-8859-1?Q?uuRlVUPB/jzDmV3kjVkmHJSLVnslW+pNmSZ6AieoARSlWmlN8HxPc5H3F4?=
 =?iso-8859-1?Q?Ag37jhycr/tVfRjvB0rzTXyIls2HeBVM9JbjasRnRtNOnIDiZbOAH7Yzvz?=
 =?iso-8859-1?Q?i4A51EH9z+Zq3Sb79GYPzx+IB8aLPon/LeaaCDPfcKTerVbhqOjiXe/R+N?=
 =?iso-8859-1?Q?ppSRu2DpRE4PkjeZuoMzXuB5Hk1jJDW0/OvAhEgSLZBf2bTOKp0X1YfKOh?=
 =?iso-8859-1?Q?8Br92XSoaxhPXLAov6z7NWEtxJfAp9SZeSEAvUYVgrid9tEo46zR8BkTYb?=
 =?iso-8859-1?Q?ccGHIdCGhGBlbXk346wLzO5ZoIp729mzFFc476srNApVAcoDGcha9wo9ME?=
 =?iso-8859-1?Q?ZrD3MFZwx0EArL+aGSU7jlRuQ2wHP7cmY6s11/m/D3P577Y+AE3Z1OJ2zB?=
 =?iso-8859-1?Q?99bqjO5rVzH/DkbL9du19ybcV1eY9E3GXuSBueC7i3h+S5l7dVGT1D4EZW?=
 =?iso-8859-1?Q?7uDNHaob8CceXnNMWPle/oC/FfLrHXOO3namI5o3oLakI/EVsG42Mw9fjm?=
 =?iso-8859-1?Q?eqsadbMZlfzAri//5rif5feBia+qjulErWqkfkcB+Rgv0uSJHU+ehiZhJV?=
 =?iso-8859-1?Q?sh3qyoQKC175Qi+ZWNvl09BMgPmY9txQL1VJOKLcFMpmcRIvNh5ELIKZJd?=
 =?iso-8859-1?Q?pFjOW2Q8mmOGWhU+uOahDmVzIvv+8QwMXrOdyRBbnsml0b6OUC17clZNCR?=
 =?iso-8859-1?Q?BSDA57MAwW/zJaNYxFrrfN2RX7lLk3az88FObo/xcrBzdKWaBIsrdNGqmO?=
 =?iso-8859-1?Q?/WdrXWyTm9LNEOwIrubhYzc6c+j0sTYa5x2p+gMVACx4Ogm2gxuz4TPI2B?=
 =?iso-8859-1?Q?MMEN9RxdJSVdr9xJM96vT+tLWF3th67BNgm29loYmXXpLBLbq0IXOl8S7y?=
 =?iso-8859-1?Q?tjibojNWVgPKAUbM6GMpD7dd0IrIu04Q8uGFvcusWSocJuU8hDmiAmHJAA?=
 =?iso-8859-1?Q?Y/v2X0qxMAx6FgPflbO7iB02JE6k/CIDy4l9Iwx/cAtIDF9VsP/dOFNXfG?=
 =?iso-8859-1?Q?LqSiywgHBVLFGvF30YXvVWszMSdRFbz+0EX2005qIG/rsxHRbrwgP07bCq?=
 =?iso-8859-1?Q?lxE3YVN+GM9qyiyaQtfCMT22y5U4SwVjWqZiTE/i/rGtzt5wKmnfbbMSLv?=
 =?iso-8859-1?Q?tKwEYR/GJg4JvMSRdq/vheqntPPhdaQc3GnPG/8rM6q5fosQaPv0t9JBji?=
 =?iso-8859-1?Q?q0WkmwppZvMPEVjPmcvzxWgqK43w4T8BBLGTfenf37WjCoas5IprmJMB9H?=
 =?iso-8859-1?Q?yl5oMWMD8bWhgXFMlPMVTPxrpTizuNCUqtcd9ixxQFluDJNTgVaUWB+Gz3?=
 =?iso-8859-1?Q?xvt4xwqnTTLyhnpe+SPZcJmkcQYfzBwkGkv6IjYpS5Wc1lRPE7J1HpXWKa?=
 =?iso-8859-1?Q?X6wmoZ63r4vg02Ds3QOh6DUt/7sz+HHtzIiKv1874Ej44+04Sb2JdzF3ki?=
 =?iso-8859-1?Q?CuXuU1Nar0M7V4r9LeTbDP+eiuUunGf5tUyCe9Mtc7jbVPm5J+l9K7WGF+?=
 =?iso-8859-1?Q?21trzfl2zn6rnQBWTzAIb+Wx7B0VNgE=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DU5PR03MB10263.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8373d279-2a1c-4c0d-3189-08de8efacb29
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 07:54:53.4602
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ch7UFithdOItLV3HaedvVLWYPEJRFtBxHEKprDwlLxp66b0L5H0Jwk41gykK9RxDZrg4LKph1ic+evb06qaNKLEoTDMv5+tlmRyydprHTKA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DUYPR03MB11873
X-purgate-ID: tlsNG-ef75cf/1774943697-4F6A7303-066B712F/0/0
X-purgate-type: clean
X-purgate-size: 1903

In RTDS, burn_budget() increments priority_level for extratime units
whenever cur_budget is exhausted. As priority_level is unsigned and was
unbounded, it could eventually overflow to 0.

A wrapped value of 0 is the highest RTDS priority, so an extratime unit
could unexpectedly regain top priority and preempt units with active
real-time reservations, violating EDF intent.

Fix this by saturating priority_level at RTDS_MAX_PRIORITY_LEVEL instead
of incrementing unconditionally. Budget refill semantics are unchanged.

Normal behavior is unchanged. Once saturated, priority_level remains at
the lowest priority until the next period update resets it.

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

 xen/common/sched/rt.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/xen/common/sched/rt.c b/xen/common/sched/rt.c
index 7b1f64a779..9c1027c388 100644
--- a/xen/common/sched/rt.c
+++ b/xen/common/sched/rt.c
@@ -110,6 +110,12 @@
  */
 #define RTDS_MIN_BUDGET     (MICROSECS(10))
=20
+/*
+ * Maximum extratime demotion level. Saturating at this value avoids
+ * unsigned wraparound back to 0 (highest scheduling priority).
+ */
+#define RTDS_MAX_PRIORITY_LEVEL (~0U)
+
 /*
  * UPDATE_LIMIT_SHIFT: a constant used in rt_update_deadline(). When findi=
ng
  * the next deadline, performing addition could be faster if the differenc=
e
@@ -976,7 +982,9 @@ burn_budget(const struct scheduler *ops, struct rt_unit=
 *svc, s_time_t now)
     {
         if ( has_extratime(svc) )
         {
-            svc->priority_level++;
+            if ( svc->priority_level < RTDS_MAX_PRIORITY_LEVEL )
+                svc->priority_level++;
+
             svc->cur_budget =3D svc->budget;
         }
         else
--=20
2.43.0

base-commit: a7bf8ff218ca05eb3674fdfd2817f6cff471e96a
branch: amoi_rtds_extratime=


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 08:06:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 08:06:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268573.1557813 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7U7c-0008AE-FZ; Tue, 31 Mar 2026 08:06:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268573.1557813; Tue, 31 Mar 2026 08:06:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7U7c-0008A7-Ct; Tue, 31 Mar 2026 08:06:48 +0000
Received: by outflank-mailman (input) for mailman id 1268573;
 Tue, 31 Mar 2026 08:06:47 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dakr@kernel.org>) id 1w7U7b-00089i-0q
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 08:06:47 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7U7Z-00FadY-V3
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 10:06:45 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dakr@kernel.org>)
 id 69cb8094-5cb7-0a2a0a5109dd-0a2a4502938a-6
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:06:45 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <dakr@kernel.org>)
 id 69cb8094-63bb-0a2a45020019-ac6904fee6ce-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:06:45 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id E36C860133;
 Tue, 31 Mar 2026 08:06:43 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9364DC2BCB1;
 Tue, 31 Mar 2026 08:06: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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:Subject:Cc:To:From:References:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774944403;
	bh=7ZnFUcGBpSYxCeawHwcWvE73wN8LYb8XSX/aZ34llBU=;
	h=Date:Subject:Cc:To:From:References:In-Reply-To:From;
	b=AWIlCHwQfZsUuHzOmGZpVGY5YC2rf+d68CeBHq+msonYwp7U2eqLrZxes/cDwOhzj
	 cxpHUVzGLXyiRtTuiesiUTZk1jZ4TcDex7KFW8cftoKdzZUi7rr5OJwggbIXG1Qkjk
	 y+1kJYFjlXJgwRMxjX5gpnBgZX2SWzf28LHVl+Lqu+vuVqVDfsqOYyI0fBSLNK4oiz
	 5o/ZjxvWe1HfMi03Q77GYttGBzv0VRF/kGrPedoVKNJAcdTkHpW3bIz1sDtXTCy1mo
	 2Z3qOFa/hlvy8JEPivh5B8wp9J/5+CgONWe9R6Y+M3smVnPJrUWUnRppA4rHbFzvHS
	 mmm1NDCdVo7ag==
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Tue, 31 Mar 2026 10:06:32 +0200
Message-Id: <DHGT9XCG8Y96.3IB1EI6FF1ZDZ@kernel.org>
Subject: Re: [PATCH 05/12] PCI: use generic driver_override infrastructure
Cc: "Jason Gunthorpe" <jgg@ziepe.ca>, "Russell King"
 <linux@armlinux.org.uk>, "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
 "Rafael J. Wysocki" <rafael@kernel.org>, "Ioana Ciornei"
 <ioana.ciornei@nxp.com>, "Nipun Gupta" <nipun.gupta@amd.com>, "Nikhil
 Agarwal" <nikhil.agarwal@amd.com>, "K. Y. Srinivasan" <kys@microsoft.com>,
 "Haiyang Zhang" <haiyangz@microsoft.com>, "Wei Liu" <wei.liu@kernel.org>,
 "Dexuan Cui" <decui@microsoft.com>, "Long Li" <longli@microsoft.com>,
 "Bjorn Helgaas" <bhelgaas@google.com>, "Armin Wolf" <W_Armin@gmx.de>,
 "Bjorn Andersson" <andersson@kernel.org>, "Mathieu Poirier"
 <mathieu.poirier@linaro.org>, "Vineeth Vijayan" <vneethv@linux.ibm.com>,
 "Peter Oberparleiter" <oberpar@linux.ibm.com>, "Heiko Carstens"
 <hca@linux.ibm.com>, "Vasily Gorbik" <gor@linux.ibm.com>, "Alexander
 Gordeev" <agordeev@linux.ibm.com>, "Christian Borntraeger"
 <borntraeger@linux.ibm.com>, "Sven Schnelle" <svens@linux.ibm.com>, "Harald
 Freudenberger" <freude@linux.ibm.com>, "Holger Dengler"
 <dengler@linux.ibm.com>, "Mark Brown" <broonie@kernel.org>, "Michael S.
 Tsirkin" <mst@redhat.com>, "Jason Wang" <jasowang@redhat.com>, "Xuan Zhuo"
 <xuanzhuo@linux.alibaba.com>, =?utf-8?q?Eugenio_P=C3=A9rez?=
 <eperezma@redhat.com>, "Juergen Gross" <jgross@suse.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, "Oleksandr Tyshchenko"
 <oleksandr_tyshchenko@epam.com>, "Christophe Leroy (CS GROUP)"
 <chleroy@kernel.org>, <linux-kernel@vger.kernel.org>,
 <driver-core@lists.linux.dev>, <linuxppc-dev@lists.ozlabs.org>,
 <linux-hyperv@vger.kernel.org>, <linux-pci@vger.kernel.org>,
 <platform-driver-x86@vger.kernel.org>, <linux-arm-msm@vger.kernel.org>,
 <linux-remoteproc@vger.kernel.org>, <linux-s390@vger.kernel.org>,
 <linux-spi@vger.kernel.org>, <virtualization@lists.linux.dev>,
 <kvm@vger.kernel.org>, <xen-devel@lists.xenproject.org>,
 <linux-arm-kernel@lists.infradead.org>, "Gui-Dong Han"
 <hanguidong02@gmail.com>
To: "Alex Williamson" <alex@shazbot.org>
From: "Danilo Krummrich" <dakr@kernel.org>
References: <20260324005919.2408620-1-dakr@kernel.org>
 <20260324005919.2408620-6-dakr@kernel.org>
 <DHGATG6LJOM1.2AI7BYQ2O4DFU@kernel.org>
 <20260330141050.2cb47bd9@shazbot.org>
In-Reply-To: <20260330141050.2cb47bd9@shazbot.org>
X-purgate-ID: tlsNG-720697/1774944405-4149FDB8-40848EF4/0/0
X-purgate-type: clean
X-purgate-size: 3463

On Mon Mar 30, 2026 at 10:10 PM CEST, Alex Williamson wrote:
> On Mon, 30 Mar 2026 19:38:41 +0200
> "Danilo Krummrich" <dakr@kernel.org> wrote:
>
>> (Cc: Jason)
>>=20
>> On Tue Mar 24, 2026 at 1:59 AM CET, Danilo Krummrich wrote:
>> > diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_=
pci_core.c
>> > index d43745fe4c84..460852f79f29 100644
>> > --- a/drivers/vfio/pci/vfio_pci_core.c
>> > +++ b/drivers/vfio/pci/vfio_pci_core.c
>> > @@ -1987,9 +1987,8 @@ static int vfio_pci_bus_notifier(struct notifier=
_block *nb,
>> >  	    pdev->is_virtfn && physfn =3D=3D vdev->pdev) {
>> >  		pci_info(vdev->pdev, "Captured SR-IOV VF %s driver_override\n",
>> >  			 pci_name(pdev));
>> > -		pdev->driver_override =3D kasprintf(GFP_KERNEL, "%s",
>> > -						  vdev->vdev.ops->name);
>> > -		WARN_ON(!pdev->driver_override);
>> > +		WARN_ON(device_set_driver_override(&pdev->dev,
>> > +						   vdev->vdev.ops->name)); =20
>>=20
>> Technically, this is a change in behavior. If vdev->vdev.ops->name is NU=
LL, it
>> will trigger the WARN_ON(), whereas before it would have just written "(=
null)"
>> into driver_override.
>
> It's worse than that.  Looking at the implementation in [1], we have:
>
> +static inline int device_set_driver_override(struct device *dev, const c=
har *s)
> +{
> +	return __device_set_driver_override(dev, s, strlen(s));
> +}
>
> So if name is NULL, we oops in strlen() before we even hit the -EINVAL
> and WARN_ON().

This was changed in v2 [2] and the actual code in-tree is

	static inline int device_set_driver_override(struct device *dev, const cha=
r *s)
	{
		return __device_set_driver_override(dev, s, s ? strlen(s) : 0);
	}

so it does indeed return -EINVAL for a NULL pointer.

> I don't believe we have any vfio-pci variant drivers where the name is
> NULL, but kasprintf() handling NULL as "(null)" was a consideration in
> this design, that even if there is no name the device is sequestered
> with a driver_override that won't match an actual driver.
>
>> I assume that vfio_pci_core drivers are expected to set the name in stru=
ct
>> vfio_device_ops in the first place and this code (silently) relies on th=
is
>> invariant?
>
> We do expect that, but it was previously safe either way to make sure
> VFs are only bound to the same ops driver or barring that, at least
> don't perform a standard driver match.  The last thing we want to
> happen automatically is for a user owned PF to create SR-IOV VFs that
> automatically bind to native kernel drivers.
> =20
>> Alex, Jason: Should we keep this hunk above as is and check for a proper=
 name in
>> struct vfio_device_ops in vfio_pci_core_register_device() with a subsequ=
ent
>> patch?
>
> Given the oops, my preference would be to roll it in here.  This change
> is what makes it a requirement that name cannot be NULL, where this was
> safely handled with kasprintf().

Again, no oops here. :)

I still think it makes more sense to fail early in
vfio_pci_core_register_device(), rather than silently accept "(null)" in
driver_override. It also doesn't seem unreasonable with only the WARN_ON(),=
 but
I can also just add vdev->vdev.ops->name ?: "(null)".

Please let me know what you prefer.

- Danilo

> [1] https://lore.kernel.org/all/20260302002729.19438-2-dakr@kernel.org/

[2] https://lore.kernel.org/driver-core/20260303115720.48783-1-dakr@kernel.=
org/


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 08:07:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 08:07:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268097.1557822 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7U8f-0000Nk-Pa; Tue, 31 Mar 2026 08:07:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268097.1557822; Tue, 31 Mar 2026 08: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 1w7U8f-0000Nb-Mu; Tue, 31 Mar 2026 08:07:53 +0000
Received: by outflank-mailman (input) for mailman id 1268097;
 Mon, 30 Mar 2026 20:10:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <alex@shazbot.org>) id 1w7Iws-0008VT-QY
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 20:10:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7Iwq-00CWRB-Kk
 for xen-devel@lists.xenproject.org; Mon, 30 Mar 2026 22:10:58 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <alex@shazbot.org>)
 id 69cad884-2eae-0a2a0a5409dd-0a2a4508e9e4-14
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 22:10:57 +0200
Received: from [103.168.172.141] (helo=flow-a6-smtp.messagingengine.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <alex@shazbot.org>)
 id 69cad8d0-1950-0a2a45080019-67a8ac8d8c99-3
 for <xen-devel@lists.xenproject.org>; Mon, 30 Mar 2026 22:10:57 +0200
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailflow.phl.internal (Postfix) with ESMTP id 32B1F1380404;
 Mon, 30 Mar 2026 16:10:56 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Mon, 30 Mar 2026 16:10:56 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 30 Mar 2026 16:10:52 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=shazbot.org header.i="@shazbot.org" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm1 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=shazbot.org; h=
	cc:cc:content-transfer-encoding:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1774901456;
	 x=1774908656; bh=l6vFZymkQIpCjGyZZ0waTIjtR5dYu9l/RauB0EHs2cg=; b=
	p3Q7z9HDaMO9l49KzGyd6QCozBDRkYMrNAMT016WX/fHIPodDvJbWxfN7o7Rq7vD
	ssq4dL3KEVXFE49rB8recUd5fVpSerRill0EPB9eG2k4c2akGO+Qp/G8D31RmPbX
	7TlkrNox2UjWyTlfcttMC7E71kdY+trnef5Hm61drgcfUPakTcCNL6kKwNKjRSBV
	U1uiNaG+fKZAZmTv0+H0872Gvi06OSqLLzx0vsDX2qjVrQBFMlsZacR2mbGsDkc/
	gT6xVnpGv8MRHmzJBZo58FBd6w5IU+6ogcmojJLtPY3KydD8fWurT3VIXthGtQVM
	kQSao6bXLTSzYllu1/tldQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1774901456; x=
	1774908656; bh=l6vFZymkQIpCjGyZZ0waTIjtR5dYu9l/RauB0EHs2cg=; b=C
	AP30HzcjqUcGAYtq0Vy0npz+WQZ0xoM+V3KrqPMrmRQ5BSmU53GGUiyx5E4wI6yA
	FyTr5/p4paazsu/Iipz8yYZU+1phMDKI7hagtD986FHeu0o1F4zYmBZsEakuW92m
	weI9ASAX8aFEL8Rs0Uec3ctb/HnJ1MgKC92d8MBdvS6OH7G3ewGRc0+tfGddZ4Gk
	WxhrjWBcLoGs93zMy/odTXwHEJHh5W5FS+Et9LrpEfOcBRgJ0bBAStrIpl6DkWE0
	Q7ETKFm9iu5onjWSvKFXn0ELTMMUBd/OPVAOOtwXaNWNshQ6cuB1Amc/2nwRZfpT
	eHg87urYI5Ec6Lkq0sXvA==
X-ME-Sender: <xms:z9jKafG3C1ppH9T_m6ALHXE4Xg8LRK7hBmf8rBxsDTwjV0YmtGN7zQ>
    <xme:z9jKafRfVIq8DMXZsvpeUjwD446zuGALRlY6oTA_zptsdyXkE-2d-NbNcA082cKf0
    ss8FY21mgRpxHw-PTPA5PC2K5vCU9145ou0r7AQwqll0ampOmU>
X-ME-Received: <xmr:z9jKaX5EMTRV_NaboCc_h79atFYxCsQIiTsRvvS3id2SmTFWS4FBTgmuiO8>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeffeelledtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkjghfofggtgfgsehtjeertdertddvnecuhfhrohhmpeetlhgvgicu
    hghilhhlihgrmhhsohhnuceorghlvgigsehshhgriigsohhtrdhorhhgqeenucggtffrrg
    htthgvrhhnpeekheejieetffefueeiteejtdejffdvleelvdeuvdffvdefteeghfevkeeu
    vdefvdenucffohhmrghinhepkhgvrhhnvghlrdhorhhgnecuvehluhhsthgvrhfuihiivg
    eptdenucfrrghrrghmpehmrghilhhfrhhomheprghlvgigsehshhgriigsohhtrdhorhhg
    pdhnsggprhgtphhtthhopeehuddpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepug
    grkhhrsehkvghrnhgvlhdrohhrghdprhgtphhtthhopehjghhgseiiihgvphgvrdgtrgdp
    rhgtphhtthhopehlihhnuhigsegrrhhmlhhinhhugidrohhrghdruhhkpdhrtghpthhtoh
    epghhrvghgkhhhsehlihhnuhigfhhouhhnuggrthhiohhnrdhorhhgpdhrtghpthhtohep
    rhgrfhgrvghlsehkvghrnhgvlhdrohhrghdprhgtphhtthhopehiohgrnhgrrdgtihhorh
    hnvghisehngihprdgtohhmpdhrtghpthhtohepnhhiphhunhdrghhuphhtrgesrghmugdr
    tghomhdprhgtphhtthhopehnihhkhhhilhdrrghgrghrfigrlhesrghmugdrtghomhdprh
    gtphhtthhopehkhihssehmihgtrhhoshhofhhtrdgtohhm
X-ME-Proxy: <xmx:z9jKaXPahdSu6NAxzDLCWHFq0SjTPnbaOV6q1JEVDN1n0TGZgvSOLg>
    <xmx:z9jKaYs_pZi1AKnrgY4kd6IlWW19DwfnZAklgCAjMJf5o-edI-wG2g>
    <xmx:z9jKaebkSHmk2-FfV3M99S1E_Kbm3scLKfLmyO_zzcLIBxoGL3vJxQ>
    <xmx:z9jKacg_NAD9M03CgHB8mak7EEebVzjqapJHxaBa4zGAHu1ISFIb7w>
    <xmx:0NjKafrBqSu7i3ficH69WDNrAzczvh4pW1jhPhZmK7WHcIBXnovlo-fr>
Feedback-ID: i03f14258:Fastmail
Date: Mon, 30 Mar 2026 14:10:50 -0600
From: Alex Williamson <alex@shazbot.org>
To: "Danilo Krummrich" <dakr@kernel.org>
Cc: "Jason Gunthorpe" <jgg@ziepe.ca>, "Russell King" <linux@armlinux.org.uk>,
 "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
 "Rafael J. Wysocki" <rafael@kernel.org>,
 "Ioana Ciornei" <ioana.ciornei@nxp.com>,
 "Nipun Gupta" <nipun.gupta@amd.com>,
 "Nikhil Agarwal" <nikhil.agarwal@amd.com>,
 "K. Y. Srinivasan" <kys@microsoft.com>,
 "Haiyang Zhang" <haiyangz@microsoft.com>, "Wei Liu" <wei.liu@kernel.org>,
 "Dexuan Cui" <decui@microsoft.com>, "Long Li" <longli@microsoft.com>,
 "Bjorn Helgaas" <bhelgaas@google.com>, "Armin Wolf" <W_Armin@gmx.de>,
 "Bjorn Andersson" <andersson@kernel.org>,
 "Mathieu Poirier" <mathieu.poirier@linaro.org>,
 "Vineeth Vijayan" <vneethv@linux.ibm.com>,
 "Peter Oberparleiter" <oberpar@linux.ibm.com>,
 "Heiko Carstens" <hca@linux.ibm.com>,
 "Vasily Gorbik" <gor@linux.ibm.com>,
 "Alexander Gordeev" <agordeev@linux.ibm.com>,
 "Christian Borntraeger" <borntraeger@linux.ibm.com>,
 "Sven Schnelle" <svens@linux.ibm.com>,
 "Harald Freudenberger" <freude@linux.ibm.com>,
 "Holger Dengler" <dengler@linux.ibm.com>,
 "Mark Brown" <broonie@kernel.org>, "Michael S. Tsirkin" <mst@redhat.com>,
 "Jason Wang" <jasowang@redhat.com>,
 "Xuan Zhuo" <xuanzhuo@linux.alibaba.com>,
 Eugenio =?UTF-8?B?UMOpcmV6?= <eperezma@redhat.com>,
 "Juergen Gross" <jgross@suse.com>,
 "Stefano Stabellini" <sstabellini@kernel.org>,
 "Oleksandr Tyshchenko" <oleksandr_tyshchenko@epam.com>,
 "Christophe Leroy (CS GROUP)" <chleroy@kernel.org>,
 <linux-kernel@vger.kernel.org>, <driver-core@lists.linux.dev>,
 <linuxppc-dev@lists.ozlabs.org>, <linux-hyperv@vger.kernel.org>,
 <linux-pci@vger.kernel.org>, <platform-driver-x86@vger.kernel.org>,
 <linux-arm-msm@vger.kernel.org>, <linux-remoteproc@vger.kernel.org>,
 <linux-s390@vger.kernel.org>, <linux-spi@vger.kernel.org>,
 <virtualization@lists.linux.dev>, <kvm@vger.kernel.org>,
 <xen-devel@lists.xenproject.org>, <linux-arm-kernel@lists.infradead.org>,
 "Gui-Dong Han" <hanguidong02@gmail.com>, alex@shazbot.org
Subject: Re: [PATCH 05/12] PCI: use generic driver_override infrastructure
Message-ID: <20260330141050.2cb47bd9@shazbot.org>
In-Reply-To: <DHGATG6LJOM1.2AI7BYQ2O4DFU@kernel.org>
References: <20260324005919.2408620-1-dakr@kernel.org>
	<20260324005919.2408620-6-dakr@kernel.org>
	<DHGATG6LJOM1.2AI7BYQ2O4DFU@kernel.org>
X-Mailer: Claws Mail 4.3.1 (GTK 3.24.51; x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c1860d/1774901457-F2CEA726-643CC462/0/0
X-purgate-type: clean
X-purgate-size: 2764

On Mon, 30 Mar 2026 19:38:41 +0200
"Danilo Krummrich" <dakr@kernel.org> wrote:

> (Cc: Jason)
> 
> On Tue Mar 24, 2026 at 1:59 AM CET, Danilo Krummrich wrote:
> > diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c
> > index d43745fe4c84..460852f79f29 100644
> > --- a/drivers/vfio/pci/vfio_pci_core.c
> > +++ b/drivers/vfio/pci/vfio_pci_core.c
> > @@ -1987,9 +1987,8 @@ static int vfio_pci_bus_notifier(struct notifier_block *nb,
> >  	    pdev->is_virtfn && physfn == vdev->pdev) {
> >  		pci_info(vdev->pdev, "Captured SR-IOV VF %s driver_override\n",
> >  			 pci_name(pdev));
> > -		pdev->driver_override = kasprintf(GFP_KERNEL, "%s",
> > -						  vdev->vdev.ops->name);
> > -		WARN_ON(!pdev->driver_override);
> > +		WARN_ON(device_set_driver_override(&pdev->dev,
> > +						   vdev->vdev.ops->name));  
> 
> Technically, this is a change in behavior. If vdev->vdev.ops->name is NULL, it
> will trigger the WARN_ON(), whereas before it would have just written "(null)"
> into driver_override.

It's worse than that.  Looking at the implementation in [1], we have:

+static inline int device_set_driver_override(struct device *dev, const char *s)
+{
+	return __device_set_driver_override(dev, s, strlen(s));
+}

So if name is NULL, we oops in strlen() before we even hit the -EINVAL
and WARN_ON().

I don't believe we have any vfio-pci variant drivers where the name is
NULL, but kasprintf() handling NULL as "(null)" was a consideration in
this design, that even if there is no name the device is sequestered
with a driver_override that won't match an actual driver.

> I assume that vfio_pci_core drivers are expected to set the name in struct
> vfio_device_ops in the first place and this code (silently) relies on this
> invariant?

We do expect that, but it was previously safe either way to make sure
VFs are only bound to the same ops driver or barring that, at least
don't perform a standard driver match.  The last thing we want to
happen automatically is for a user owned PF to create SR-IOV VFs that
automatically bind to native kernel drivers.
 
> Alex, Jason: Should we keep this hunk above as is and check for a proper name in
> struct vfio_device_ops in vfio_pci_core_register_device() with a subsequent
> patch?

Given the oops, my preference would be to roll it in here.  This change
is what makes it a requirement that name cannot be NULL, where this was
safely handled with kasprintf().  Thanks,

Alex


[1] https://lore.kernel.org/all/20260302002729.19438-2-dakr@kernel.org/

> 
> >  	} else if (action == BUS_NOTIFY_BOUND_DRIVER &&
> >  		   pdev->is_virtfn && physfn == vdev->pdev) {
> >  		struct pci_driver *drv = pci_dev_driver(pdev);  



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 08:10:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 08:10:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268596.1557831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7UBB-0001yW-AC; Tue, 31 Mar 2026 08:10:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268596.1557831; Tue, 31 Mar 2026 08:10:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7UBB-0001yP-7f; Tue, 31 Mar 2026 08:10:29 +0000
Received: by outflank-mailman (input) for mailman id 1268596;
 Tue, 31 Mar 2026 08:10:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7UBA-0001yJ-8l
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 08:10:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7UB8-00E7Gv-2y
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 10:10:27 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69cb816d-2eae-0a2a0a5409dd-0a2a4505eb4e-48
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:10:27 +0200
Received: from [209.85.221.44] (helo=mail-wr1-f44.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69cb8173-5aeb-0a2a45050019-d155dd2cd8cd-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:10:27 +0200
Received: by mail-wr1-f44.google.com with SMTP id
 ffacd0b85a97d-43cfce3a195so1145071f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 01:10:27 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf21f173dsm28782924f8f.15.2026.03.31.01.10.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 01:10:26 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774944627; x=1775549427; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zavHZ64gGJLvkBKJjtgezSK0/rl3jKjwmCPlWT6kZ14=;
        b=BRz8NSV8wVL6pTBt3QvcGZoEyCv4Hh7QaUg8NlJ7EwjIY53QcgIWZ0DUUZcdi6Wo43
         WVuLcmLhus0B/skA5ZZXRah0MucodWz9k42aBIAn5CAEVn5yK+L3uvjU68kY16RA1N6L
         rcT9mj4Cp9NsL8ZunmtpAxO35OMcbUIwQYoqKK6O1ID2VR05oATPu8Z1VZPUfV4hrgEF
         K2UxXoXhMt9F2+/wElOgqIlUUKcb+wMfYfIw4isVohD7yfealSTinx2tZ2josQ9Vb3VV
         C9fnHDc+1khwqbx7rCGdgqqk38oMaVlmoYdWhLYbYqVeNJ+2cP7Da543mh0hZ92eZJUi
         wkig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774944627; x=1775549427;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zavHZ64gGJLvkBKJjtgezSK0/rl3jKjwmCPlWT6kZ14=;
        b=H+fK+HCvozMIr9+41MIawqqJpulh40oB96EKMVuNDY1pmOTaGt5k5FQxtQ9alXWNxM
         a0QrvUKBlTvBOvTClpbLpZF5Wc3Xew6bX0uw0qFTwuI4FnUQWc/rQjWbrBS36YptE99S
         N8w0/3UGqqty68cGwXI11i3kNHXqqkw9OBs+3dNhcG5bGa4MFH+o/eBPMQiLlJG67Iu/
         V7NOIcwPUb0hKqIE04ydLA8UsOGgUWTaFQRXAm70NEWIcYLxB+x8D9WY6+hdVwIAgcPf
         jEo7HA2hhx7UGULii4i+zD4XWDKR2WbZGlxEampTcaVgLnXPR/VmD7ASLGHhMgiUSRV+
         m9Nw==
X-Forwarded-Encrypted: i=1; AJvYcCUJwO78gqPaSTNJ7l87aNcrkSPsGGKpZdV+wHg8ZWae2fHWFtvnGSxh/SF555mL6eE0mi7gowi4xOI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwJPmXW9q/ajpnFu9gQzow8kWmLonEnLrmA6ef1Y7XogKB+Lrkp
	XqgD+GBA1JNz8rNyqs30Qr7WrMxr7izkAZ5vjrwSqv/z2I0f92kxuxWgFqcsHrH62Q==
X-Gm-Gg: ATEYQzw+XU3C8T1jdWI8IFfULBz4cKa1hFFXedy4wa4JeoccXo8qykZ0ySaUs/uQ98M
	V8r04ROPZswb8yVLTaF+b+DzaX0s7cOhU/u5jP4DiNXNaf4sTXHMNajqFZ1w2pvxY8JwAUuFGry
	Dhf4b644Eutt+UmNMyN9E63SX7Vg8LNXUIgqcIK9CvCtYNeUFYCggKccaBIT59T7/a7pSywupo/
	jEh2zohxxmWU7T0NCQUj6MBiU9nGtGMMPZeyuuZ4ty8yEQLhSs1JnPSEpJHBBaKRPZkQ4Ul/nec
	d+BD/v77sFq6ARaRdKF0exMNulo8baU6s5/n4qNkV1mt0bp+mxy5Me9Ba7CtntXi6DyBZqTNLRW
	v6WnCYvxxgOTgJ6YhjikkOZE3Ij0xCp6OtXg/DLVihI6T9PMAwJL36pWYG4KTal3m1+Pv0NjhSi
	GUik7ararJdLtsYaxQaAppp9Bw+GWHQgqQiWZ5Uxr5lewwZ3kU8D/eL6rwL+nJMToJiZV7HHvM+
	tJunM9ZOaDwUy4=
X-Received: by 2002:a05:6000:310d:b0:43d:262:c97b with SMTP id ffacd0b85a97d-43d0262ca87mr9450947f8f.41.1774944627011;
        Tue, 31 Mar 2026 01:10:27 -0700 (PDT)
Message-ID: <5b1e5de7-b2b0-4dae-bbe6-03809637d239@suse.com>
Date: Tue, 31 Mar 2026 10:10:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/sched: rtds: prevent extratime priority_level
 wraparound
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
Cc: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 Juergen Gross <jgross@suse.com>, Meng Xu <mengxu@cis.upenn.edu>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <b6e65a9fb94d581a31e1d06b241522c17a7863cc.1774943670.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: <b6e65a9fb94d581a31e1d06b241522c17a7863cc.1774943670.git.oleksii_moisieiev@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1774944627-20A97488-C72123EA/0/0
X-purgate-type: clean
X-purgate-size: 888

On 31.03.2026 09:54, Oleksii Moisieiev wrote:
> In RTDS, burn_budget() increments priority_level for extratime units
> whenever cur_budget is exhausted. As priority_level is unsigned and was
> unbounded, it could eventually overflow to 0.
> 
> A wrapped value of 0 is the highest RTDS priority, so an extratime unit
> could unexpectedly regain top priority and preempt units with active
> real-time reservations, violating EDF intent.
> 
> Fix this by saturating priority_level at RTDS_MAX_PRIORITY_LEVEL instead
> of incrementing unconditionally. Budget refill semantics are unchanged.
> 
> Normal behavior is unchanged. Once saturated, priority_level remains at
> the lowest priority until the next period update resets it.
> 
> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>

>From the description, this looks to want to have a Fixes: tag added.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 08:12:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 08:12:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268605.1557841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7UCp-0002UK-Mr; Tue, 31 Mar 2026 08:12:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268605.1557841; Tue, 31 Mar 2026 08:12:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7UCp-0002UD-Ij; Tue, 31 Mar 2026 08:12:11 +0000
Received: by outflank-mailman (input) for mailman id 1268605;
 Tue, 31 Mar 2026 08:12:10 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1w7UCo-0002U7-Id
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 08:12:10 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7UCn-00E36D-QI
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 10:12:09 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69cb81d8-e002-0a2a0a5209dd-0a2a450c887a-4
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:12:09 +0200
Received: from [40.107.201.46]
 (helo=CH4PR04CU002.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69cb81d7-f93d-0a2a450c0019-286bc92ea92b-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:12:08 +0200
Received: from BY3PR05CA0029.namprd05.prod.outlook.com (2603:10b6:a03:254::34)
 by BY5PR12MB4161.namprd12.prod.outlook.com (2603:10b6:a03:209::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.15; Tue, 31 Mar
 2026 08:12:03 +0000
Received: from BY1PEPF0001AE1D.namprd04.prod.outlook.com
 (2603:10b6:a03:254:cafe::2c) by BY3PR05CA0029.outlook.office365.com
 (2603:10b6:a03:254::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.15 via Frontend Transport; Tue,
 31 Mar 2026 08:12:03 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BY1PEPF0001AE1D.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.9745.21 via Frontend Transport; Tue, 31 Mar 2026 08:12: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; Tue, 31 Mar
 2026 03:12:02 -0500
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 31 Mar
 2026 03:12:02 -0500
Received: from [10.71.194.215] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 31 Mar 2026 03:12:01 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fTMfd2lGWK4vV2uXljPeUkVAzqctnzbs2JRVmtcRXWHKTNTHXT1bzDa4zlDvZD1F6COmIxvymGRRWhVwHzKVKLHVj3677SOZa0OKu3oZ0O0e/xA637v4Ly2A8cSatedmwMGMJDNaT6pcDhoqOvW6GZrcfJi7P2HZ9Yz1MBEtBLA/kWHrxsDgOha8HIU4YS4R4uM/ILSnX9OVkY2q39G20TOoKWLAb119VvtvGtU5wq3JjJ00C8CeZFmnwb+WMqBueVQuNjDSBsvN0Up3e0h1/mOBCVFME1l8cEmXsglShGofxhWGIN8GoTlI7mSDT1wHWtNhSuNOkIM7OomxN7j7hw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=oGPAd8neUU9kKoIMeNf8cyqwhc/9bQmf4M/nXP+V9Yo=;
 b=h0LTBfw35mzHpql6DvamVBpUnMz71wxr7uC0W+UfWzwk4GEXzbSYwgaxVuxt023Gsbn9/6K3tFNt4nwlZRrUy97Vhj2Vj4OdEDq+vZR1+pTmWX5PUDsTs8wga9qTBNany8zVaWYMGo8WtRGI581QraY+CumOhWl8nr8Mr8PT2K5JaQdZah2lEFm7LdXTU9MVCfDy/EYw8rzVsWKSmvGnN8yrxmwLjciQOzfmrMVAHpyQbKROW17jCI32QnVSW6l4IswzfdjdnRjWYLICvmpKMqTqTR9dKbiOxkX0Qs2rMlsJIkShBwmmzY+dcCsGi+Oz+wOEpbDEqf2XdOW5BGd7YQ==
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=oGPAd8neUU9kKoIMeNf8cyqwhc/9bQmf4M/nXP+V9Yo=;
 b=rs2R6Dva7a27b9NYQPYP7Kep32IU+2wEqcPla3SZZBjDMrFarmLewkE+BLGAvRv/DMoHrtO2SP3pQG55qfwjOCl9bd2ZGItpv8aZhNNHQI9h4ooED43zWmnub66HgZWRMR5BrS+BI+IXOCZHOZZHN1yylSV8MJMnuAQdlLHlqDI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <c8e8fbd1-33f8-469f-96c4-22d384196cdb@amd.com>
Date: Tue, 31 Mar 2026 10:12:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: Increase DOM0_FDT_EXTRA_SIZE to support max
 reserved memory banks
To: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@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: <20260326131535.662466-1-oleksandr_tyshchenko@epam.com>
 <29769bd9-8410-417b-9ad8-84131956db57@amd.com>
 <7d52cf29-c0bb-4e39-ae10-2b43f3e8e921@epam.com>
 <618e3227-10c7-46e4-9328-3d7d981fddfa@amd.com>
 <89782bb0-d910-49b8-9a7d-83c3cf38d442@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <89782bb0-d910-49b8-9a7d-83c3cf38d442@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PEPF0001AE1D:EE_|BY5PR12MB4161:EE_
X-MS-Office365-Filtering-Correlation-Id: f86753dd-5f11-416c-a1e7-08de8efd311e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|376014|82310400026|1800799024|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	Yk0SsIcdbj+aKB+UEQbz/Ma+oAiV81M2kt0iA5kLtufnLyjXezioyQRxZjAXi0+FBDOJJBzZ10cTWI0+bFS/6Qqru8wlytCsBCfaO8XIoxdS1+X+X+LpoJK7tmXNVZPdJii/Z0uNVAEMM0S03Kf5N5kVnCEPSe6tT60vjaWwjebVeERVgzLk3qB+dbzaY378OBkpmfPobpp8l2DxWRyuWyHFfEXDv55JjmTT7tzJL1jqIYtSglGxDzTQXTPiIvEBHGRwenXJHn0uAq1o/EdUYPn3pAIU5qEO9itSHd7m+RU1ymuz4JdX/dGTQ4T9XsQDBkLWA35zgGqpV4F2hjrCwyMTehxWqyUh7gEBHbEH3R1PSoNWVJIFM1kTxStdeVKkFfHTuY5u+wTXHbkVWkRUp9dK5VARXSfw1hwRag3a6u5s1VZtq0la89IWz7WbpWF//yYpKUtvKx1BXiWX/E+Y9p+OPRo4jc0P3Qmd2S7+js9orhWRWW2pZH2vfE9FW24BIlI4Uo6bk0ORSszzmzd2uP+SvQUo8HWdE0RrXEa9fWpAsSevOBUIa00tzTJd5C4nDvhI6sbTC807rEO9zKOI0wCfNTZ/8f5LvbHAqRn9AVdRjviIbeHQD0iSl4WUCrXMXg7KeBPpfXUcUuid2H787tJyTYp6BrG/ebeVzSbW3l1BFpfaei6Oi1aOcgZzz0dbOQ1AyAR8qk9YHkpntllK4/fLlYmWRTFdDN+F54h2QoxUv6gWcvXCMBoXZ5wfF9Op9wM0emCigmZrqX01v3Xq6Q==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(82310400026)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	S+fV85UrTqPrq4xqWJjxFqhlG+9m3uE5iieBLhYp6EhhDlXYYWoWk/hc7Jq9TB5iWHcFaDz/8W1nseZKg3Kp4sD8bG5TDVuFnciFy6JbdsRLJZxIt42DDrtALbg0+gDrwuSVv91uhVBHmZerNhMbbPqrAzHFQrFjWHI82BPI9N8HrjG2T/rYkZ4Dm9gcIXVb1hKF0qMgv5TcFFar9Yzwp6RTOi/jj2uzaoZYRB4wogwkQ/Mc2fdZem9h1zRFMPCFgk3oKvILCJ2ERiecBk94QfeSYcsNDaTRNinqJbZ2fteiWOi0NV20COWxB+PZGrnm/wIG5C+23tcthIeyy4HvJaKFQmGkkpt1bFbVUglhNoN8ALM3c2/sNAuTfF2z/6WJQogljMgqhHOAOKEPZSa2ONrR4YHKUiP7BAVecIa/+rgqKDip7bB1xhObP5qGL6b3
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2026 08:12:03.3746
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f86753dd-5f11-416c-a1e7-08de8efd311e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BY1PEPF0001AE1D.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4161
X-purgate-ID: tlsNG-d25034/1774944729-F5CB2734-44C5FA0D/0/0
X-purgate-type: clean
X-purgate-size: 4638



On 27/03/2026 13:23, Oleksandr Tyshchenko wrote:
> 
> 
> On 3/27/26 09:30, Orzel, Michal wrote:
> 
> Hello Michal
> 
>>
>>
>> On 26/03/2026 20:03, Oleksandr Tyshchenko wrote:
>>>
>>>
>>> On 3/26/26 18:50, Orzel, Michal wrote:
>>>
>>> Hello Michal
>>>
>>>>
>>>>
>>>> On 26/03/2026 14:15, Oleksandr Tyshchenko wrote:
>>>>> Xen fails to construct the hardware domain's device tree with
>>>>> FDT_ERR_NOSPACE (-3) when the host memory map is highly fragmented
>>>>> (e.g., numerous reserved memory regions).
>>>>>
>>>>> This occurs because DOM0_FDT_EXTRA_SIZE underestimates the space
>>>>> required for the generated extra /memory node. make_memory_node()
>>>> Where does this extra /memory node come from? If this is for normal reserved
>>>> memory regions, they should be present in the host dtb and therefore accounted
>>>> by fdt_totalsize (the host dtb should have reserved regions described in /memory
>>>> and /reserved-memory. Are you trying to account for static shm regions?
>>>
>>>
>>> I might have misunderstood something, but here is my analysis:
>>>
>>> The extra /memory node is generated by Xen itself in handle_node() ->
>>> make_memory_node() (please refer to the if ( reserved_mem->nr_banks > 0
>>> ) check).
>>>
>>> Even though the normal reserved memory regions are present in the host
>>> DTB (and thus accounted for in fdt_totalsize), Xen generates a new
>>> /memory node specifically for the hardware domain to describe these
>>> regions as reserved but present in the memory map. And since this node
>>> is generated at runtime (it is not a direct copy from the host DTB),
>>> its size must be covered by DOM0_FDT_EXTRA_SIZE.
>> Yes, but the original DTB should also have these reserved regions described in
>> /memory nodes, thus taking up some space that is already accounted in
>> fdt_totalsize. Are you trying to say that in host DTB, these reserved ranges fit
>> nicely into e.g. a single /memory node range (i.e. a single reg pair covering
>> most of the RAM)?
> 
> yes
> 
> 
>   I can see that it might be possible but the commit msg needs
>> to be clear about it. As of now, it reads as if the problem occured always when
>> there are multiple reserved memory regions. That's not true if a host DTB
>> generates one /memory per one /reserved.
> 
> Yes, you are correct that the total size depends on how the host DTB is 
> structured compared to how Xen regenerates it at runtime. So, the issue 
> can arise if host DTB represents RAM using a single, large reg entry or 
> a few entries.
> 
> ***
> 
> I will update the commit message to clarify that, something like below:
> 
> Xen fails to construct the hardware domain's device tree with
> FDT_ERR_NOSPACE (-3) when the host memory map is highly fragmented
> (e.g., numerous reserved memory regions) and the host DTB represents
> RAM compactly (e.g., a single reg pair or just a few).
> 
> This occurs because DOM0_FDT_EXTRA_SIZE underestimates the space
> required for the generated extra /memory node. While the host DTB
> might represent RAM compactly, make_memory_node() aggregates
> all reserved regions into a single reg property.
> With NR_MEM_BANKS (256) and 64-bit address/size cells, this property
> can grow up to 4KB (256 * 16), easily exceeding the space originally
> occupied by the host DTB's nodes plus the current padding, thereby
> overflowing the allocated buffer.
This reads better.

> 
> 
>>
>> Another issue is with the static shm nodes. User specifies the regions in the
>> domain configuration and Xen creates *additional* nodes under /reserved and
>> /memory that afaict we don't account for.
> 
> Yes, you are right.
> 
> Since these SHM sub-nodes and properties are generated purely from the 
> Xen domain configuration and are not present in the host DTB, they have 
> zero space allocated for them in fdt_totalsize.
> 
> So we need to redefine the macro. I propose the following formula that 
> separates the range data (16 bytes per bank in /memory) from the node 
> overhead (160 bytes per SHM region):
What is included in these 160 bytes? Did you manually check all fdt functions
inside make_shm_resv_memory_node?

> 
> #define DOM0_FDT_EXTRA_SIZE (128 + sizeof(struct fdt_reserve_entry) + \
>                              (NR_MEM_BANKS * 16) +                    \
>                              (NR_SHMEM_BANKS * 160))
I think you only accounted for shm nodes under /reserved-memory. As any other
reserved memory node, they are also added to /memory reg property (see
DT_MEM_NODE_REG_RANGE_SIZE).

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 08:15:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 08:15:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268616.1557848 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7UFr-00034s-2x; Tue, 31 Mar 2026 08:15:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268616.1557848; Tue, 31 Mar 2026 08:15: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 1w7UFr-00034l-00; Tue, 31 Mar 2026 08:15:19 +0000
Received: by outflank-mailman (input) for mailman id 1268616;
 Tue, 31 Mar 2026 08:15:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <edwin.torok@citrix.com>) id 1w7UFp-00034f-Jg
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 08:15:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7UFo-00E4mf-Us
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 10:15:16 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <edwin.torok@citrix.com>)
 id 69cb828d-2eae-0a2a0a5409dd-0a2a450cb3e0-38
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:15:16 +0200
Received: from [52.101.57.47]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <edwin.torok@citrix.com>)
 id 69cb8292-f93d-0a2a450c0019-3465392fa525-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:15:16 +0200
Received: from SA3PR03MB7419.namprd03.prod.outlook.com (2603:10b6:806:39c::6)
 by BY1PR03MB7238.namprd03.prod.outlook.com (2603:10b6:a03:52d::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.15; Tue, 31 Mar
 2026 08:15:11 +0000
Received: from SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc]) by SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc%6]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 08:15:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hkJL/owkMX2P7AQEAezuwTHrUhife0B0vLuN2yv5uStj3yMN1fSBWxAmG0UYkuR4rDGU0o98f25EGY557Sv4u7olSc7ItBaHjc4AKzj+TKIxVTzJ0FUg9fXUuSSGv7CMTBGWEta7XFA3AIULt3ohHC0/1UrE2UsBhfHX1mQ+VFxuPP+t6mikz1th+o6kV5hWPUKMhJIFiIQXFYfKF8hxbFg29t7yZaxzi34OJTMNfc7LFOaa+5CV+lM1jf8Y/X/bAA22AA8A7T1vaMOoLjmDkRhaQEeWD5rII8IUeKXvVA246S2/8R4iKfZDInHXxLSBnhCdBm+VQeigNGJal5/S4w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zShijB4+cGR43ywKEGBDdaXIcwhh/XzOdA/FzmKxuzg=;
 b=s21YhghIVPl0qQYCLghw1vttyWUkaf/+yOl2C+homelz44hDIDC2+MJedwI+c07vcNbIERNyCHZ3JbHBtBB/BUzguE8f7RcXk+eHDM46fpqMZSkucdj/p192mw2AuMa2McnvcpuxjTQFUNjScWCv2VLW+6rmZwIxZjtAp3WKM4pZDhUi2lUdsgMZ+qKKVyEwUiuvm/irAWvzpZwq+NBIKyogp97/XkgVxjuc2UrYaXtb8cnaseqFJyIwPBhExfMnYEbLoVnhYn/MYp3by1yQgv6jLyW6U0kPaoHgQX7nQW5r8hzS4K1fB/p0zAUCwaDmJIfjAD4tO1qcTJFrdOLdzg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zShijB4+cGR43ywKEGBDdaXIcwhh/XzOdA/FzmKxuzg=;
 b=CFINfTJhWIXweSEdcQ7itouwR/BBeL503hQDqS/lvep6pk/fwOdHEScFNP1PBEiwrq7LR06h4r0LGJR8rOZPni7WSEsvG3ka71ybIEQoG3B9V9LxJhItKv7Z7zaOlMzVgZMZPkBT8d6ozyfKCfTlTGDrl2XOIROSm29tFqAk2ts=
From: Edwin Torok <edwin.torok@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>, Roger Pau Monne <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v1 1/5] README: update minimum make to 4.1
Thread-Topic: [PATCH v1 1/5] README: update minimum make to 4.1
Thread-Index: AQHcwGC/br3u5UUhvkGzDiCK7sswX7XIKoSAgAAhq4A=
Date: Tue, 31 Mar 2026 08:15:10 +0000
Message-ID: <9F272BD1-F382-4337-ADFE-CCA4E390A8AC@citrix.com>
References: <cover.1774886602.git.edwin.torok@citrix.com>
 <4bbe4e23abcd5b1b32204d391bdd593205b89201.1774886602.git.edwin.torok@citrix.com>
 <16b415a9-b74f-4afe-a14f-e9d2df704eb9@suse.com>
In-Reply-To: <16b415a9-b74f-4afe-a14f-e9d2df704eb9@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA3PR03MB7419:EE_|BY1PR03MB7238:EE_
x-ms-office365-filtering-correlation-id: 57cc1895-e96b-48b5-1093-08de8efda0a1
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021|18002099003|22082099003|56012099003;
x-microsoft-antispam-message-info:
 tbncdYO4qpSyVgFxsWroLIFVcodGMpfMwcJac82eaWz4fn6913qs27IexVDLOq4PxQ5o2XVu2HUQ4CJdne1EJo11AwJ5oQ/qwTo/cDuitnCFG6HRYCioMCgp0xm+k58jomQYJxLU//RzbDXDWprjNiIEBwKj2AsE7gJ53Yq4ufGhgtcqGvg46pShwN+DsS4kwS1EGvZRMgbaoFazcdqBPbao/sjyHU42pR91KRKfnsBpHKLInVrgj6joy+YpeajYe3a8TPgCIql4pnjZF37Oa3JRHeeWOEV3ZVJSpfpRbi0Qp4JfMBe6wGaUdjj+kejKWCpUI0CzWgOzZ50gFNGyBeGNSXF59U6FrM2M7fasiaajKtj9ejN5jq7a7dg+YFZN2rsMK9WfnDdjQfUfS2KdzAOo0RJGb1ni8AGy1CRc5LC39TjCQPSVYIBrbsM2aqLcMgTndYZVjXNBCbJS5+8IdhkrX8pSTwxR0RgPJnitqL3yEsc2c6EIAKpQtd/GVeRb/VoRaS2KDds0bzLsbGhXns6beFzbZQMHwDfyXLLzHph8uJk10Ub5Ei1oikR/qc5eBcfOBHFaergRNFehr9E40uyrpxRYbxBT4B3m89o7yK1OoPvVUtbaLrm4KwvQumb3U6bC3DZIRrig4rqMdl8n+S6hasXQO789Y9QODzXunhGVjY6mvA7J502RJZo7hG6k3qjTgsxAte2qSs98GAB0yvyliSajkotlCxskegdZsWcng6RJi5uDVy62cX6zhAiN7Hk87ZCBzvc9mc4fRhgLusNAxd8pFeHs+Sjve/HdnlM=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA3PR03MB7419.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?Skd6VGs5Zk0wbTNDV0RzU05jcktudzZQbTZJVzBkb3IvaVpnKzZYLzhjczJy?=
 =?utf-8?B?aUcwSDFhK0NKc3ErbmtERlBKcUlXNDZNNWphLzBrQ1BWWGNNQXdLNVE4ZnFo?=
 =?utf-8?B?eG9JcXJKVzhla1g1ZnRBakFiVGduR1gwcFpXZC9mcGFLUXdwdkxkWmZ1Umpo?=
 =?utf-8?B?ZDhjcnpUZCtyU28rVzZrRGhpcmlKKzZqZERjUDF0dDlkbzAveFd2NFlDNnVs?=
 =?utf-8?B?OVR4dy80UlVLQjVHdFpnb3A3b3VqQjlYeWViU3g1V3d5dEJVdEdyZ0tLYzZk?=
 =?utf-8?B?eDBaeDBWaHowRUVYaTlRYVJtVzByMUR0WERaMXBnOHVqSFVsR1JoTi90U2I4?=
 =?utf-8?B?MFFDbmNwSFNrK0hKYTZpUmtyeTFQdHJBQ3crbmh4L0p3T1NOTGVlQWpTOVpm?=
 =?utf-8?B?RDU4R2RCcmZZbVpqY0hHR2d6NlZlOEh3alc1bTkzdkl5MnZzZEVzY0MzSGs4?=
 =?utf-8?B?OHZOaUxZdnI1bURpN3ptWkcraDVNTzZrSkZHWHo0dzhsMEowL0FoNkhoZ3lR?=
 =?utf-8?B?N2kyTG9vNnRpQllxU1ZBZHpwUVhQaXFGK3YvRmRXWkY5aUcydVF2N3hUN1c0?=
 =?utf-8?B?ZFJodE5YeFZyS1RQUkk4K3JuWGlEeitURDRVeTJnM0s1VGsrd2xjSUZDRzR4?=
 =?utf-8?B?ZjZTOHR0VXZzMmVOcURaaTcrc2NWdG1wTnlwYk5ISWl4TEFxR2gyV3RacVpt?=
 =?utf-8?B?MWtFL0t2VmRQMDV0ZGt0Ujg2T0t2d2EyQk9QZW5XS2xJVWRuVEpmRndGNWln?=
 =?utf-8?B?M3diWFRRK0tXZ29MRXFFczZhR0ZIQ3F3eExyMUd3VDIraUY4SmkxOENyZHg0?=
 =?utf-8?B?UDZVUEVuQUpraDA2TnVpcTBaaUNPcnlJTE42Mm1EZjIyQkhQWk13QmJMMWox?=
 =?utf-8?B?Yzg1TEJKN29oTXZ4THFBRXdkdm5YWWRoemJCVFJNbm91MWVvTDFNeUtBNzE4?=
 =?utf-8?B?QjhzV2xFaEU2cjJWYy9NNis2QmdiVEhEMHhMZHhiZjN1RDVadmwwQ1ZWZDJE?=
 =?utf-8?B?RzdRclYrWFB3MDJoNWxGVEUySFgrS2ROTS9Ja0FxU1dZSzVXU20rc0lEaWFq?=
 =?utf-8?B?clpVWGVyK290Y3pjeDFiN3hLMlpQczlvVU9oTlloWlhoOStObVJOeDlLelJw?=
 =?utf-8?B?TzdiTGczUWNxWVI0WmZ1OHFrVVlqMk9QVzl0TkpqU3Rnem51b3BZWEN5eFY2?=
 =?utf-8?B?eFlBeUZKYnZGSlZjQTZjY2R3YW8vbC9adGIxVXpLTDNMYkkwcEM4d0J1aEdr?=
 =?utf-8?B?dVdyZHBUaGY0Y05EckQwRWFzRkpNaFRSQjViQkRBZkxKc3NGTkNTdy95TXNX?=
 =?utf-8?B?cTh0M0xkeFV4bUtUbldFODFFUWR3RzVpY1dsUUEzd215YlFRVEFZVTN3VUxW?=
 =?utf-8?B?Vmw4VUY2UVFPL0YwVGphVTBkMTczQ1ljMjZMVmtVQzFqT04rdkQ5ZWF4d1JY?=
 =?utf-8?B?YnBHK2htVzM3eGg5bkpkUERpc25kMVNWUCthV0phTGw0UG14UXA1NmZlZ0Vm?=
 =?utf-8?B?dVFYcU4wUnpTZGVVS3V2eXdZbmpqQU1HU0ZEZzJEWUtnZ3IwV1ZEWW01RW40?=
 =?utf-8?B?dnN4aE8zZER5NXlSUGMzZ2RHNTdvY2JZbExzdWpocGh4bzcrYW43QmtiK1lv?=
 =?utf-8?B?SFhkaHVuMElRYkptbWNZWmw3b0l4SU82Q3RyQWJYMXVxbXFOZXp4QmEyaHlL?=
 =?utf-8?B?dko2M2JWcnQrcjlBano5VEdmRHBlN21xRDJWVEEyc0tZQUpJZlNtTFA4YjJN?=
 =?utf-8?B?SE12MnA4bXlBQmhIT21Vb3pIa2diNnY3VUM0YStSWjZkTGpTaUtvcU5saTk1?=
 =?utf-8?B?dUd6SjRpYk14ejhoWkF2N2dZYklUWDVaY1lkcDYwTUZIa01sYXVJaEhMWmQ0?=
 =?utf-8?B?RU8xKyt5SExWTWp2eEhQUE82RjlYQ2NGazBsQ0FlOHIrMXJuaTBLWDF3VlVj?=
 =?utf-8?B?aGlmRTRGRk1wNzQ5a1hQc3B2Tkp1VTF6OGRpaHZ0WFQ5Y1haUmxWa2g0ZXRI?=
 =?utf-8?B?cXovWTlndFdQQUNTVjFtUkJHOUdUZ21rcHIreCt1ZDVXTzlBQnlTU2FEYkhp?=
 =?utf-8?B?VzY2MWRTalBOTnhDYnpQQXFrejc3MW5Ca1RFWVFwaGg1TFkwdWduSnFpR2xM?=
 =?utf-8?B?WjUyMVA0T2NGUHB3eG5HS2ROZ0R6WGNXaldkWjUwMVFCbm4wdFlScndQUTZv?=
 =?utf-8?B?eHJ4QkVKclhsUEhZbXZiTDhXVk1XRTh4VWRqTDFseTdFUWkxNXJCY1hrbGtQ?=
 =?utf-8?B?SkZrS0ZKT3lPK2FWejBLZExYbmlReVQvb2ZWdUp6M21ZQTdxK1RXN21EUkpS?=
 =?utf-8?B?N3Frd1Jnb0YweVMraFZSalRtS2kyQnpCa25xMjU3RUhqRzlTbEdQbE5MZjFl?=
 =?utf-8?Q?Z5mMvdQVwGKYztZ8=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <84BF8180CBC7E54F984B6D0F9232D29E@namprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA3PR03MB7419.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 57cc1895-e96b-48b5-1093-08de8efda0a1
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 08:15:10.5384
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: TsPHviragPp0Av2miAKZnY2PQ+PN1LPuPqGI5SHcYVZyF6stWnK+FwfKkhC0KeaPXSXcjITvBUl7mOc93c06Vw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB7238
X-purgate-ID: tlsNG-d25034/1774944916-F6CAA734-DBAE3E27/0/0
X-purgate-type: clean
X-purgate-size: 2024

DQoNCj4gT24gMzEgTWFyIDIwMjYsIGF0IDA3OjE0LCBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz
ZS5jb20+IHdyb3RlOg0KPiANCj4gT24gMzAuMDMuMjAyNiAxODoxNywgRWR3aW4gVMO2csO2ayB3
cm90ZToNCj4+IFVzaW5nIC5ERUZBVUxUX0dPQUwgcmVxdWlyZXMgYXQgbGVhc3QgR05VIG1ha2Ug
My44MS4NCj4+IEl0IHdhcyBzdWdnZXN0ZWQgdG8gdXBkYXRlIG1ha2UgdG8gbWF0Y2ggfjIwMTUg
ZXJhIGdjYy9iaW51dGlscywgaGVuY2UNCj4+IDQuMS4NCj4+IA0KPj4gU2lnbmVkLW9mZi1ieTog
RWR3aW4gVMO2csO2ayA8ZWR3aW4udG9yb2tAY2l0cml4LmNvbT4NCj4+IFN1Z2dlc3RlZC1ieTog
SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KPj4gTGluazogaHR0cHM6Ly9sb3JlLmtl
cm5lbC5vcmcveGVuLWRldmVsL2MwYmE1N2JiLTBkODYtNDIwOS1iMDE5LWRhZjgzMjhiNTIwNUBz
dXNlLmNvbS8NCj4gDQo+IFVubGVzcyB3ZSdyZSBzcGVjaWZpY2FsbHkgbWVhbmluZyB0byB1c2Ug
NC4xIGZlYXR1cmVzLCBwZXJzb25hbGx5IEknZCBwcmVmZXINCj4gdGhlIGxvd2VyIDQuMA0KDQoN
Ck9LLg0KDQo+ICh3aGljaCBpcyB3aGF0IEkgaGF2ZSBvbiBteSBtYWluIGRldiB3b3Jrc3RhdGlv
bikuDQoNCldoaWNoIE9TL2Rpc3RyaWJ1dGlvbiBhcmUgeW91IHVzaW5nPw0KSXTigJlkIGJlIGJl
c3QgdG8gYWRkIHRoYXQgdG8gdGhlIENJLCBzdWNoIHRoYXQgdGhlcmUgaXMgYXQgbGVhc3Qgb25l
IGNvbmZpZ3VyYXRpb24gdGVzdGluZyB0aGUgbWluaW11bSB2ZXJzaW9ucyBsaXN0ZWQgaW4gdGhl
IFJFQURNRS4NCihPciBhdCBsZWFzdCB0aGUgaW50ZXJzZWN0aW9uIG9mIHRoZSB2ZXJzaW9ucyBv
ZiBidWlsZCB0b29scyBpbiB0aGUgQ0kgc2hvdWxkIG1hdGNoIHRoZSBvbmVzIGluIHRoZSBSRUFE
TUUpDQoNCkJlc3QgcmVnYXJkcywNCuKAlEVkd2luDQoNCj4gDQo+IEFsc28sIG5pdDogVGFncyBp
biBjaHJvbm9sb2dpY2FsIG9yZGVyLCBwbGVhc2UuDQo+IA0KPiBKYW4NCj4gDQo+PiAtLS0gYS9S
RUFETUUNCj4+ICsrKyBiL1JFQURNRQ0KPj4gQEAgLTM1LDcgKzM1LDcgQEAgU2Vjb25kLCB0aGVy
ZSBhcmUgYSBudW1iZXIgb2YgcHJlcmVxdWlzaXRlcyBmb3IgYnVpbGRpbmcgYSBYZW4gc291cmNl
DQo+PiByZWxlYXNlLiBNYWtlIHN1cmUgeW91IGhhdmUgYWxsIHRoZSBmb2xsb3dpbmcgaW5zdGFs
bGVkLCBlaXRoZXIgYnkNCj4+IHZpc2l0aW5nIHRoZSBwcm9qZWN0IHdlYnBhZ2Ugb3IgaW5zdGFs
bGluZyBhIHByZS1idWlsdCBwYWNrYWdlDQo+PiBwcm92aWRlZCBieSB5b3VyIE9TIGRpc3RyaWJ1
dG9yOg0KPj4gLSAgICAqIEdOVSBNYWtlIHYzLjgwIG9yIGxhdGVyDQo+PiArICAgICogR05VIE1h
a2UgdjQuMSBvciBsYXRlcg0KPj4gICAgICogQyBjb21waWxlciBhbmQgbGlua2VyOg0KPj4gICAg
ICAgLSBGb3IgeDg2Og0KPj4gICAgICAgICAtIEdDQyA1LjEgb3IgbGF0ZXINCj4gDQoNCg==


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 08:16:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 08:16:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268626.1557857 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7UGe-0003au-FZ; Tue, 31 Mar 2026 08:16:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268626.1557857; Tue, 31 Mar 2026 08:16:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7UGe-0003an-Co; Tue, 31 Mar 2026 08:16:08 +0000
Received: by outflank-mailman (input) for mailman id 1268626;
 Tue, 31 Mar 2026 08:16:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w7UGc-0003aZ-NJ
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 08:16:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7UGc-00FdbH-2X
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 10:16:06 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69cb82be-2eae-0a2a0a5409dd-0a2a4506c1f6-40
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:16:06 +0200
Received: from [209.85.167.54] (helo=mail-lf1-f54.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69cb82c5-3034-0a2a45060019-d155a736a95f-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:16:05 +0200
Received: by mail-lf1-f54.google.com with SMTP id
 2adb3069b0e04-5a279ce9475so5803349e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 01:16:05 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1774944965; cv=none;
        d=google.com; s=arc-20240605;
        b=SzwWiOc3zDFSuwE7RGcsD7JHqU3yAASJj/aUq3c1GX3jKUGONDDdbStrBd/ysG4vwT
         avQywB1E0ChE+LYl7TDfA0uZwi8BWgjoTK9FbsghADLIWumXz7+Mby4RcJLazbZXaKY+
         et3HmMepiE6OIZwAo2uio9L7WIrtYwV5GmN8MyCk/a0jrHqj0OzkshneqsQ8bLWpk2Vc
         ZeMU8NjQSsSdltgQ8JDRZ0LTHb1ryAnURUuAiD4L80bEtucPDd1DSo0Zf+2hXJfF+/ZG
         AJrZ396Vdkvjj2ccYUm4s1SKaF/85eFgcO9UyXTwITtJIzriltEPtvv2LgH0BQ9c12AI
         a+DQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=d+tM95Sy53sc1fIOGPBQ/xfKbDdyGaFRp+XTES8aHMQ=;
        fh=HHRjWkdysX2ZkNpVMY4DcdwfNbPq2J2BPJfxbJK3Acs=;
        b=Rciwzeqvjs7R7Vw1bA0SxrHpf6IOdV7vo/SiYbgfrzP5/6zDaaXtuTbOjzPIDTKy3e
         UOIVVX0OMYxb8l3NbgmmDsVbqQGduaGv8EeHXV/zEPMRAq7MMcGro5j9TGY1anZiGi+U
         6oFHeoI1l0swDZblYJfquy2eXWphWs6SG+BgZnwODipgAtoUsNxT66JG+Ygr64laY3wh
         2afrkMI7ydua9rEYscbUDhuWs5ADIGUiq/wSb7Yv+hAKzSWYhSMDwaNFBgFU1nZ6EfNJ
         WwZAgmO7PCTLfQheuBqlWZv5CrU/UQJKiB6bolJeB+6i8mF56jWVp1Y7Sz2ZoyRImZO4
         zv+w==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774944965; x=1775549765; 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=d+tM95Sy53sc1fIOGPBQ/xfKbDdyGaFRp+XTES8aHMQ=;
        b=aErbcOCexL/u9DEOb4rjlmcq7p+Hz9gw4PnIMNUb0Atwq2VzQoe27b9bUeerzYTwfD
         Di3KyF96QlluDuPErzQ0yEAR1yk9BCQpjlOpIncovaN0ET942/S3u8wPfi8Xa0L/RnQk
         QJMQbgL2yswy1AQNxC7fUCGAbKqBCEaLkbeNbSnadLGJYEFczaeoYDdvFRC6ng7wRRr9
         jDEt73xoQBPz5cg+tcaga5egCozgQn+K3yYz03PCu5wODveWb8rh+ALclsZ2k7rWfG7D
         scca4MaCAdayxOOPdoZDZExyIdkUirTHvJqmZHdGOUkrrVSYzLdHWwtrVQA7iMYurl84
         S+jA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774944965; x=1775549765;
        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=d+tM95Sy53sc1fIOGPBQ/xfKbDdyGaFRp+XTES8aHMQ=;
        b=KYREoREf9u1m3iujBIzDxoaiteYw9CqsEtMp0EeRxFZ1BKWB7dQXEUGy3seuJK5Vq/
         Eg9L74Sn3A6d1rFnX0F9GsvSNSEGu2cg1N90yxsdXoit28i1PcJm6IP/mQDIBbwy+XSC
         yRZK1HKHyLAsfsqrrqUgam83OeszoTlMFpuJ3/toXIyuhuO9t5MRtUBOHQcx0pmitOsI
         wSNfu6ZMyvYVun+ZHvCJTbR4tRUOZC6D5mOT9vKmP4Hu5XIKN5wxDy58G6XJsjHLn8zi
         xo3sQKuenkEdHniVgCWQHxAYW1iUIsFIc+A4BeqE+qBJ4W4rdHgb1QKS0TQyZiik5QK/
         Wi3Q==
X-Gm-Message-State: AOJu0Yzkt6h7lrl7TA8xdlFdNqN0f6xQAWUJnAXji2vKr4G1l4G/COqD
	OYxdJIBeWnLL88wkfmV0aRQfT2UlN2W9it9YGWj5ltAN5BW5NuYq6J+JB7Fmibn94n5R0fKOKiU
	JLstsQ6wQfMkHK9K6UVWxHx0F+AZGDQ4=
X-Gm-Gg: ATEYQzwT7JgUAz5XhC7fCOLiFhF+UC0lOayT0DsKky8BBbpzcRJkQn/Cvjs4+bWi9d4
	TlOTt4yLxud/Wf/lef+r9WUPYobRNFL9bclyVZKm2xFmfGrO74O5Y/I/Ecw93MZhwNDGKuspxzD
	fkXvWUv0hdSdUI3nheWaB8b7gGKmeBgjpDEH04rG3f3xihlNnP7BD8Aur4JCpt+tr/vFcZsYAPS
	CFu8FG2+Ms3GZ3eXobJbk3YpDVl2uyapGc9aVh6hY1KTllYuY1irq2dgnNjqGWtUgG4dZJ68xhw
	BLDlHbF/R1KV64g=
X-Received: by 2002:a05:6512:3f05:b0:5a1:2e7b:d885 with SMTP id
 2adb3069b0e04-5a2bab21cb1mr877963e87.25.1774944964723; Tue, 31 Mar 2026
 01:16:04 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1774431310.git.mykola_kvach@epam.com> <10da5cf38dded9c3373c4b0ba54d7f7a7b2fd98f.1774431311.git.mykola_kvach@epam.com>
 <87341ovugw.fsf@epam.com> <CAGeoDV_1Zzh8pxBe=Mf7Yu1OXfNhzH7aFpsT+ktM62DwK-ropg@mail.gmail.com>
 <87a4vovo7u.fsf@epam.com>
In-Reply-To: <87a4vovo7u.fsf@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 31 Mar 2026 11:15:53 +0300
X-Gm-Features: AQROBzDWnCI5Y1jylDs0-CZ9TunIGDrww3rL4FGgqoqFBH-QqEbg-y3lhAoIKbc
Message-ID: <CAGeoDV_X8Opf4Hb9Kg43d-sR5WLK1ULHLZ_DZjcoE+U1VfPJvQ@mail.gmail.com>
Subject: Re: [PATCH 2/4] xen/arm: its: add platform match callback for ITS quirks
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <Mykola_Kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-16d1c6/1774944966-825911C2-7E84CF8A/0/0
X-purgate-type: clean
X-purgate-size: 8255

On Tue, Mar 31, 2026 at 3:26=E2=80=AFAM Volodymyr Babchuk
<Volodymyr_Babchuk@epam.com> wrote:
>
> Hi Mykola,
>
> Mykola Kvach <xakep.amatop@gmail.com> writes:
>
> > Hi Volodymyr,
> >
> > Thank you for the review.
> >
> > On Wed, Mar 25, 2026 at 4:45=E2=80=AFPM Volodymyr Babchuk
> > <Volodymyr_Babchuk@epam.com> wrote:
> >>
> >> Hi Mykola,
> >>
> >> Mykola Kvach <xakep.amatop@gmail.com> writes:
> >>
> >> > From: Mykola Kvach <mykola_kvach@epam.com>
> >> >
> >> > Extend ITS quirk lookup with an optional match callback so that
> >> > platforms sharing the same IIDR can still be distinguished.
> >> >
> >> > Use the board compatible string to positively identify Renesas R-Car
> >> > Gen4 before applying ITS workaround flags, preventing false matches
> >> > on other SoCs that happen to use the same GIC IP block.
> >> >
> >> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> >> > ---
> >> >  xen/arch/arm/gic-v3-its.c | 22 +++++++++++++++++++---
> >> >  1 file changed, 19 insertions(+), 3 deletions(-)
> >> >
> >> > diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
> >> > index 00524b43a3..c40629731f 100644
> >> > --- a/xen/arch/arm/gic-v3-its.c
> >> > +++ b/xen/arch/arm/gic-v3-its.c
> >> > @@ -57,6 +57,7 @@ struct its_device {
> >> >   */
> >> >  struct its_quirk {
> >> >      const char *desc;
> >> > +    bool (*match)(const struct host_its *hw_its);
> >>
> >> If you are introducing match predicate, then why do you need...
> >>
> >> >      uint32_t iidr;
> >> >      uint32_t mask;
> >> >      uint32_t flags;
> >>
> >> these? You can use a predicate function to match against iidr
> >
> > The rationale for keeping iidr/mask while adding match() is to keep
> > the quirk table declarative and easy to read. The match() callback is
> > meant only as an optional refinement for ambiguous cases where IIDR
> > alone is not sufficient to identify the platform.
> >
> > In this design, iidr/mask remains the primary match key. If matching
> > were made entirely callback-based, the standard IIDR comparison would
> > have to move into callback code as well. That would make quirk entries
> > more open-coded and less data-driven, while the current split keeps the
> > common case simple and structured.
> >
> > This is also close to what Linux does: IIDR-based matching remains the
> > generic declarative mechanism, and platform-specific checks such as
> > compatible strings are added only where needed.
> >
> > That said, I agree that the callbacks introduced in this series are all
> > doing roughly the same kind of platform identification. A reasonable
> > follow-up cleanup would be to model this more generically, for example
> > by adding an optional compatible string list to struct its_quirk, and
> > reserving match() for cases that cannot be expressed through static
> > data.
> >
> > So the intent here was to keep the table clean, with matching logic
> > effectively being:
> >
> >   quirk_match =3D IIDR match && (no extra match rule || extra match pas=
ses)
> >
> > If you prefer, I can rework this either into a fully callback-based
> > scheme, or introduce generic compatible-string matching in this series
> > and drop the match() callback for now.
>
> Well, I don't think that introducing "compatible" string matching will
> do any good. Actually, I think that it will introduce more problems.
>
> What you can do, is to introduce an additional data:
>
> struct its_quirk {
>         const char *desc;
>         bool (*match)(const struct host_its *hw_its, void *priv);
>         void *priv;
>         uint32_t flags;
> };
>
> struct its_iidr_match {
>         uint32_t iidr;
>         uint32_t mask;
> };
>
> static bool iidr_match(const struct host_its *hw_its, void *priv);
> static bool platform_compatbile_match(const struct host_its *hw_its, void=
 *priv);
>
> static struct its_quirk quirks[] =3D {
>         {.match =3D iidr_match,
>          .priv =3D &(struct its_iidr_match) {.iidr =3D 0xaaaa, .mask =3D =
0xbbbb}},
>         {.match =3D platform_compatbile_match,
>          .priv =3D "renesas,r8a779g0"},
> };
>
> Something like that. In this way you can use either a generic predicate
> function or implement your own for more complex cases.
>
> >
> >>
> >> > @@ -64,11 +65,24 @@ struct its_quirk {
> >> >
> >> >  static uint32_t __ro_after_init its_quirk_flags;
> >> >
> >> > +static bool gicv3_its_match_quirk_gen4(const struct host_its *hw_it=
s)
> >> > +{
> >> > +    if ( !hw_its->dt_node )
> >> > +        return false;
> >> > +
> >> > +    if ( !dt_machine_is_compatible("renesas,r8a779f0") &&
> >> > +         !dt_machine_is_compatible("renesas,r8a779g0") )
> >> > +        return false;
> >> > +
> >> > +    return true;
> >> > +}
> >> > +
> >> >  static const struct its_quirk its_quirks[] =3D {
> >> >      {
> >> >          .desc  =3D "R-Car Gen4",
> >> >          .iidr  =3D 0x0201743b,
> >> >          .mask  =3D 0xffffffffU,
> >> > +        .match =3D gicv3_its_match_quirk_gen4,
> >> >          .flags =3D HOST_ITS_WORKAROUND_NC_NS |
> >> >                   HOST_ITS_WORKAROUND_32BIT_ADDR,
> >> >      },
> >> > @@ -77,7 +91,8 @@ static const struct its_quirk its_quirks[] =3D {
> >> >      }
> >> >  };
> >> >
> >> > -static const struct its_quirk *gicv3_its_find_quirk(uint32_t iidr)
> >> > +static const struct its_quirk *gicv3_its_find_quirk(
> >> > +    const struct host_its *hw_its, uint32_t iidr)
> >> >  {
> >> >      const struct its_quirk *quirk =3D its_quirks;
> >> >
> >> > @@ -86,7 +101,8 @@ static const struct its_quirk *gicv3_its_find_qui=
rk(uint32_t iidr)
> >> >          if ( quirk->iidr !=3D (quirk->mask & iidr) )
> >> >              continue;
> >> >
> >> > -        return quirk;
> >> > +        if ( !quirk->match || quirk->match(hw_its) )
> >> > +            return quirk;
> >
> > Also, while reviewing gicv3_its_find_quirk() I realized that the
> > current first-match semantics may not scale well. Since the table
> > supports partial IIDR masks, we could have a broad entry covering
> > an entire GIC family alongside a narrower entry for a specific
> > platform. With first-match, only one of them would ever apply, so
> > their flags could never be combined. The same issue applies to the
> > match() callback: if an entry with match() is checked first and
> > fails, the loop does continue, but if it succeeds, all subsequent
> > entries for the same IIDR -- whether with different masks or different
> > match() predicates -- are skipped entirely.
> >
> > If others agree, I will switch to accumulating flags from all
> > matching entries in v2.
>
> I don't think that there is a good use case for this right now, so
> personally I'd skip flags accumulation. Just write a comment that code
> stops and first match, so more specific quirks should go first.

I see the point about not mixing an open-coded DT property check with
the generic quirk matching path in the first patch of this series.

However, taken together with your comment here, that seems to pull the
design in two different directions.

My concern is that dma-noncoherent is not really an alternative
platform quirk, but an orthogonal ITS property that may need to
coexist with other quirks matched via IIDR, machine compatible, or a
custom match() callback.

With the current first-match semantics, if dma-noncoherent is promoted
to a regular struct its_quirk entry, then only one entry would apply,
and we could not combine it with another platform-specific quirk for
the same ITS. In that model, moving dma-noncoherent into the table
would actually make the behavior less generic, not more.

So I think there are two consistent options:

1. keep first-match semantics and leave dma-noncoherent as a separate
additive property, or
2. move dma-noncoherent into the quirk table and switch the lookup to
accumulate flags from all matching entries.

That is why I brought up accumulation in the first place:
dma-noncoherent looks like a concrete case where quirks are
composable rather than mutually exclusive.


Best regards,
Mykola

>
> --
> WBR, Volodymyr


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 08:17:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 08:17:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268636.1557867 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7UHX-00047s-Ok; Tue, 31 Mar 2026 08:17:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268636.1557867; Tue, 31 Mar 2026 08:17:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7UHX-00047l-Kz; Tue, 31 Mar 2026 08:17:03 +0000
Received: by outflank-mailman (input) for mailman id 1268636;
 Tue, 31 Mar 2026 08:17:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7UHW-00047Z-Ef
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 08:17:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7UHV-006T45-87
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 10:17:01 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69cb82f4-5cb7-0a2a0a5109dd-0a2a450aaf6e-38
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:17:01 +0200
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69cb82f9-1772-0a2a450a0019-d155802be4f9-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:16:58 +0200
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-487012ce896so33126885e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 01:16:58 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4887e80a5e2sm20711285e9.1.2026.03.31.01.16.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 01:16:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774945017; x=1775549817; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PBJwQ5MiKBkB9o5MYJymYZf0Y7+6mxEfCq+WAoPQ3hc=;
        b=PKQ8MgKV2Pt9TVQJi6CqJwyeK0CVifHLoN7OY37bHH/wHq8+HEdOSiL3xS/r/0YR/S
         Z3/VLwp7K59Vq8ipFctET1nBV6c6LdHErC7B2Xwe8WrxGExRAh+Co3Xq64f0DW29m47c
         FNJ1C5xMiRuK49h945oiDaZuBEddvWeRGV371jWppFOXUPeyFgfkJC2YlpOxpStcUh1p
         I7I7ziedeJe79R+7RyxfZMwgcv8QiJPS8QoX8POB6fdL6+fNsCZMwiOa2iMFNLg+H+Lj
         Va1OREJmvdjZ03fyHXzZ69uYZdFdem/A5cuc4Ni0LWcgf3MxdXEkE8PlZjbR+Wt5iB5x
         +DdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774945017; x=1775549817;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PBJwQ5MiKBkB9o5MYJymYZf0Y7+6mxEfCq+WAoPQ3hc=;
        b=Ic5NWeBch5uu/SrK9ijY5y9I/L3CRxhhbFERlhoZgF2s4vvGexS/LEVfGFjGJDHgza
         hFACW7eF2A0Djbt6PuathKCky3DGO/uCaG2Z3uyLv5N/OlxHaCxfH8q4hzF14rd4z5XI
         EKPxQwmpSQIAn8MbcJDfPzlkwo7kfcUGNUjfZ4Fv1w67C6KnKlYt+Y5E+vnGnjiyPkhP
         B6Yu/f1gGyOYYNodmyhzj7XioQCmTYo2DTdPwTBZw9+mRuW/dKQaDuZL6v234oiWSze4
         zCSQxeRu9/lnwIJDCGJ5pDLJ13Otn/6Clpb+F5rYD0zbWKUCThVBQA2/V+lJL4H1f3pa
         nogQ==
X-Forwarded-Encrypted: i=1; AJvYcCVP2bGwgzBWHltctSS+G9um2aPvhCl7moMIoYLyxYYk2V80LYDYPcz0k6iYeSnCd6rW+w4/A+Izet0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwsoUXOdYAG3HpPF+YIQyPmnmY9niJJxEy8Sb+q9jKmqwLSIkOZ
	H94qIpVynvyOcFd6X72GffeZrKWHkJUzo0cO75L9c0zjmgayuGd+raFqq+lRPqRnbA==
X-Gm-Gg: ATEYQzx3PQRenu070jGubm8TRy1LeJ8VUlG2V6aty6cotoxw+8x0S4J4vGV86h94kh1
	+jwuETtqDeZwMh3V/BQ3NvqvbfI7r0svgjEj8lzRvasPnr6dSwapwn+6400Uf6V1hD0qfTxf1D6
	+bTYm/GKNqAUUaLElhWXYWFj3gwrmSGd+v6Xj9oJaQF7sQSqSY1Rq4a2k7Lp6ci9Q1UKYyDOS80
	C5BduI35vQky8vph1I1L+PnECj3++0raAP/yQDZsIDW56se9v6Yt7U1/YILT2msR6j5dizp5o5W
	ixV1VhY31S9pznmhcCp8IYVhgPHzrITtZiB4PvEZ+aR8xY36zKTaTxSljUqMZq6Q0hSa/OI829i
	HpVLqL3lGDHsql0WndzvRac3EmR9ofD56xGl3YWC3k4a3K41TvgiqR1mGQeX7kAkvj/EHmF2nb6
	uMrIjD7YKIAni7AD/FodP6Nz4M72gUpz0fBSWnUjrBd0srgcb6CLbpMalzeB2khEeyKkQ2ZIrT6
	kcP14tqg+YX82c0FHfIllZTJg==
X-Received: by 2002:a05:600c:1f11:b0:47d:8479:78d5 with SMTP id 5b1f17b1804b1-48727d5a31emr281094895e9.7.1774945017440;
        Tue, 31 Mar 2026 01:16:57 -0700 (PDT)
Message-ID: <10bc1904-06e6-4656-bfbd-e8e0f429dc4c@suse.com>
Date: Tue, 31 Mar 2026 10:16:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 04/23] xen/arm: vIOMMU: add generic vIOMMU framework
To: Milan Djokic <milan_djokic@epam.com>
Cc: Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 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.1774918270.git.milan_djokic@epam.com>
 <c12f84b9306a2b74a555c710f21f5362120205ed.1774918270.git.milan_djokic@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <c12f84b9306a2b74a555c710f21f5362120205ed.1774918270.git.milan_djokic@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1774945018-BCA83900-C8CCB659/0/0
X-purgate-type: clean
X-purgate-size: 1097

On 31.03.2026 03:52, Milan Djokic wrote:
> @@ -550,6 +551,14 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
>          return -EINVAL;
>      }
>  
> +    /* Check config structure padding */
> +    if ( config->arch.pad )
> +    {
> +        dprintk(XENLOG_INFO,
> +            "Invalid input config, padding must be zero\n");

Nit (since I had to look here): Bad indentation. In fact there's no reason
to wrap the statement in the first place.

> --- a/xen/drivers/passthrough/Kconfig
> +++ b/xen/drivers/passthrough/Kconfig
> @@ -35,6 +35,11 @@ config IPMMU_VMSA
>  	  (H3 ES3.0, M3-W+, etc) or Gen4 SoCs which IPMMU hardware supports stage 2
>  	  translation table format and is able to use CPU's P2M table as is.
>  
> +config ARM_VIRTUAL_IOMMU
> +	bool "Virtual IOMMU Support (UNSUPPORTED)" if UNSUPPORTED
> +	help
> +	 Support virtual IOMMU infrastructure to implement vIOMMU.

Nit: Bad indentation. Kconfig help text is to be indented by a hard tab and
two blanks. (Sorry, should have noticed already on the earlier version.)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 08:18:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 08:18:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268645.1557877 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7UIj-0004xV-2F; Tue, 31 Mar 2026 08:18:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268645.1557877; Tue, 31 Mar 2026 08: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 1w7UIi-0004xO-Uh; Tue, 31 Mar 2026 08:18:16 +0000
Received: by outflank-mailman (input) for mailman id 1268645;
 Tue, 31 Mar 2026 08:18:16 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7UIi-0004xG-8K
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 08:18:16 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7UIh-001tCK-KN
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 10:18:15 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69cb8344-e002-0a2a0a5209dd-0a2a4505cbe8-8
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:18:15 +0200
Received: from [209.85.128.41] (helo=mail-wm1-f41.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69cb8347-5aeb-0a2a45050019-d1558029a50c-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:18:15 +0200
Received: by mail-wm1-f41.google.com with SMTP id
 5b1f17b1804b1-486fc4725f0so54324145e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 01:18:15 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf21f279bsm22866149f8f.16.2026.03.31.01.18.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 01:18:14 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774945095; x=1775549895; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rE+ZOIDd12Hx2UVXrqnhODh8th136e+Cdv47CkInP7k=;
        b=Hsx8YYxgqkAIcdx277mih1WMYGvVdUKBDSdC9/jbdwCWx1BmKQraP/1K09IzEvAsCf
         iS3yKxzoCHx3YgCAj8PbPAO50nBeh2XTJ4sd4Yo3O5E6sQoo476EDqEjVzju5EPJ3l6i
         wNd50CVuPOvqQR7Jd+OvqzGb4tc/pe+1kn3hQaPLFm8a6wAFXvOulvfV9AbXwOqKOU/q
         F0szAhr2ZtYP84OClqEJxbuJCstUi9gSI14wuVoSy+nWVe36T+cfW0+42/AFwO4AJH5E
         KeVu8EC0JktxMTrYiAZUvRev6TI4pcOEolLnaZk6W6WZb+licr2NVV+pRpAn22+jUKNl
         bgRg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774945095; x=1775549895;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rE+ZOIDd12Hx2UVXrqnhODh8th136e+Cdv47CkInP7k=;
        b=e41iHpFhRJAZ5bZQ1NKDMYhLpI/1K4nslo0m3rzObanY+yKt0WPw25ABnc4zpurKvQ
         2q4iDbDLzSRr9QJ1M5YKmH43c4R3DNDHnQZvaTWbbR0Zb3PDvK6F/JN4hZ9+Qlu9SajH
         utAcyrF3szxgMmdh/tyn/FE5KHDy011uKYOUMYWcFiN97b+o6zfPOdqSHs77YH2bCKVa
         q/CZr9h/jfMTG4/DXfdfPHKm7dMIzktjoaGS3q2GtYN/1klGOaKpUj4zWNthPmvT33Ml
         h+wyfV+vaOXUDrJq6LhdbOX0ITy0iIpY7m2pgfHyVkeek1HGOcBFq2xzA0SPYfVLDCqi
         lIdA==
X-Forwarded-Encrypted: i=1; AJvYcCXPt/InW2SjSGSuN3a0pPNr+qKhqX/WSFQigLH00D3MWb78QJmbmh7Kas7dFzudw4ZTOkQe8TMMFDg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy5m3zP9UJQR7eIsQwQJkYeXFSaxz0MjXBQt1RXz2Lmu7eAK2b7
	Z4DaKaKNzm9wI1DMscD01+pHmmnxq8F/193TnjGMf+U55/eeogI1+Hbcm7JqUsagVw==
X-Gm-Gg: ATEYQzwMhV2Y9mzgHvgjLiu7TglhUV+BF9sx3aalFfSQ7XmhFbxtwgXwvIzXf+RHe+e
	IXofK6jJschqgaCi3y56mEm3qsqF9rj+0gkaaSTjS+4SNkON/cfheaotk8lYmBD2o9yxQD5IciL
	R6WLbhbmJeHlsQkX7LXLoh2KGr38ggW50PZNz5ZguZztQ8ndL+RWi4Op0vi/b/Ze8dtTLNVslQP
	HroU161AOWwkWcrqD48oDkno7exGz0xEcOm08PYTrzflxbtQjrn5nbCpfwKqZD2PwdzI0jaL2UZ
	frMshodOjVB1LPRUjIPikU5Nl22eCVhhktu24byWm7BH0Cyc6NFEVRtjUck5G0L8HDZdZnDrD2f
	x28aT8+9SG5EQGeehxrd4pxds53kHiNlu3xaSX/mo/bHfihWEb7+yQMu2/KqOO4TiYnJiR5MniY
	ndgGr5/w3pjy10RjogKHvbszoyu9OXt9ItOYS3c29ALoQJB4KrUUQ0S0RSU0xMlY5WYt3c8iox+
	vlZczp6jvBqRn8pMjRPwChj/Q==
X-Received: by 2002:a05:600c:6488:b0:488:7d01:f67b with SMTP id 5b1f17b1804b1-4887d01f7a6mr29193685e9.6.1774945094930;
        Tue, 31 Mar 2026 01:18:14 -0700 (PDT)
Message-ID: <70fb1554-9560-40e4-9cc7-dd8d7a8755b0@suse.com>
Date: Tue, 31 Mar 2026 10:18:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 06/23] xen/domctl: Add XEN_DOMCTL_CONFIG_VIOMMU_* and
 viommu config param
To: Milan Djokic <milan_djokic@epam.com>
Cc: Rahul Singh <rahul.singh@arm.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Nick Rosbrook
 <enr0n@ubuntu.com>, George Dunlap <gwd@xenproject.org>,
 Juergen Gross <jgross@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1774918270.git.milan_djokic@epam.com>
 <5bcbeb1d614be413c13196a38d13eb3de5c549e4.1774918270.git.milan_djokic@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5bcbeb1d614be413c13196a38d13eb3de5c549e4.1774918270.git.milan_djokic@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-c201ff/1774945095-20896488-CBC78129/0/0
X-purgate-type: clean
X-purgate-size: 1076

On 31.03.2026 03:52, Milan Djokic wrote:
> From: Rahul Singh <rahul.singh@arm.com>
> 
> Add new viommu_type field and field values XEN_DOMCTL_CONFIG_VIOMMU_NONE
> XEN_DOMCTL_CONFIG_VIOMMU_SMMUV3 in xen_arch_domainconfig to
> enable/disable vIOMMU support for domains.
> 
> Also add viommu="N" parameter to xl domain configuration to enable the
> vIOMMU for the domains. Currently, only the "smmuv3" type is supported
> for ARM.
> 
> Signed-off-by: Rahul Singh <rahul.singh@arm.com>
> Signed-off-by: Milan Djokic <milan_djokic@epam.com>
> ---
>  docs/man/xl.cfg.5.pod.in             | 13 +++++++++++++
>  tools/golang/xenlight/helpers.gen.go |  2 ++
>  tools/golang/xenlight/types.gen.go   |  7 +++++++
>  tools/include/libxl.h                |  5 +++++
>  tools/libs/light/libxl_arm.c         | 13 +++++++++++++
>  tools/libs/light/libxl_types.idl     |  6 ++++++
>  tools/xl/xl_parse.c                  |  9 +++++++++
>  7 files changed, 55 insertions(+)

Nit: The subject prefix suggests a hypervisor change, when this is all docs
and tools.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 08:20:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 08:20:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268659.1557884 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7UKc-0006Wx-Fb; Tue, 31 Mar 2026 08:20:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268659.1557884; Tue, 31 Mar 2026 08:20:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7UKc-0006Wq-Cx; Tue, 31 Mar 2026 08:20:14 +0000
Received: by outflank-mailman (input) for mailman id 1268659;
 Tue, 31 Mar 2026 08:20:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7UKb-0006Wk-Pf
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 08:20:13 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7UKZ-00E9HZ-Jk
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 10:20:13 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69cb83bc-2eae-0a2a0a5409dd-0a2a4507edb6-4
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:20:13 +0200
Received: from [209.85.221.49] (helo=mail-wr1-f49.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69cb83bc-fd74-0a2a45070019-d155dd31cd30-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:20:13 +0200
Received: by mail-wr1-f49.google.com with SMTP id
 ffacd0b85a97d-43d01d6b50cso1304701f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 01:20:13 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf21e26basm23508817f8f.3.2026.03.31.01.20.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 01:20:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774945212; x=1775550012; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=pTVostcTwWu2HMQOK1PA6hUPF5SvIUmBAPEMOzpII0I=;
        b=c8vKOROPzRmb906C4WVY1HQ4zmf5D3fsk7B91VBVz8PYy1FwzkMxxnzYYHYELpgzrD
         Ocz5tG3Xx0LqVYGUKg3OymJ07ByfhLd4019jq3SebKsZpi6jpuZL8mBsjmRX29QNpvgC
         VYeLNBuZ0seQjY+wHlxmxTA15nW8pw5ijngE0asshCc0F2iZoBa6KlcM8x9UWx9ng05W
         yFYyp/amou4v+cXi0YV7vEGsWQcDY6CwXjWS5bqr4beJXdAVeIgIiMp/Ao/BGb6QFMi+
         O8VVFoss01scIB8Q2imoRdUKpSEVvWiJI6OsJWMbrhb/mztsj8RZW2KrXMiXuFYWQIMa
         /K/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774945212; x=1775550012;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pTVostcTwWu2HMQOK1PA6hUPF5SvIUmBAPEMOzpII0I=;
        b=Cv8be+08OzBvp0pojFKoEUAmCIrVK0jG6SCzPRuDKGTDqIkF703tOrw/OQHgMvopur
         rREcihZonFVT3BvMAUSA9dbj7djVXV+niFR/0WXtTi8doGqBy1QbkbFzBL9SYzcMNfhJ
         WvnQBJvAEXexvrIh/lNcwWPIlkUpECoe6E09FjdnIHNO8o+iNdn/c9bWSLla41eXh0CG
         e3FwfrMAHmqwcIN71Tt35xdaDpfwEAMHAXVq5K12FtkgHbT255Ck7kZEXQCCvZVcfryY
         dxMa3XyJww+D4R6PqPVlawF6FhKfI+Xrq7wjuslINz7TX8ZYsQ/CnVyP814FOVn0Qh7x
         z1PA==
X-Forwarded-Encrypted: i=1; AJvYcCW0TjkEWB+GRYEFCGBLz13aPz2SqjCujRMC+39vXH4BLIzwiG0m9V9h2XqsPZJsBAEuleN8C9Lui9I=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw0vLEgQ8FG6Hoqua4lh42w6fRen3TPLOvsv97BUGACPMtVbjGB
	tBUfwSvyy94smx9LsOEzLbKy+aBXkXmbYerbhJFSLwLfnespYS+NUMxMJCHcXbvKYw==
X-Gm-Gg: ATEYQzzH/5citJf9Wcr10bz7Wzxih3ajY2DI+dGlaTK9lvm154hAFYJCsYcSbN7CG3T
	SnA2Rai1PIIfxcEdcgsALTuzRx96eXdUFi8LCWxGv0ZxI0Jz70GjX7sERk533rzgBr9AVqNwCdD
	ImYlJg4eJwfH0qUAiACre9aafB+58JB03oScZ3rwiuOXq4wnp/TK/AuAC759RoC7sWHGbYTD1Bi
	0t7SUcQVu6g2s9bxRc7jt8bFUDzEIgyBIx1/pShMQRMhKmi90j8TiR11AZEssfbTrFTCLc+9kZ9
	+cX87IXMr4G6Ul5fFnM9karYZeIjjnm4vrwej9H1sFRoImzMH42FWeV3GK4qNS8/MK0nhu8rcI0
	zt6oEK5ijWFRqs4dhZpLJZ+jzAww0uTs/ODi7dJH8np5Uso0i9enxM1CnWewp69KvhXzcOLqUsM
	Ublsx+s7yWD751jjYrZFkD5saL57d8dmi0KxHC1yojcxA8Q+dgn5ZsyzBc+9/sm6C1fXHCBWOkI
	D2RtqbJ9uTKZjs=
X-Received: by 2002:a05:6000:2003:b0:43d:127b:7e7e with SMTP id ffacd0b85a97d-43d127b81c6mr58001f8f.34.1774945212543;
        Tue, 31 Mar 2026 01:20:12 -0700 (PDT)
Message-ID: <dec4ddf0-833c-45d2-9aec-7a7b5ec94570@suse.com>
Date: Tue, 31 Mar 2026 10:20:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 11/23] xen/arm: vsmmuv3: Attach Stage-1 configuration
 to SMMUv3 hardware
To: Milan Djokic <milan_djokic@epam.com>
Cc: Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1774918270.git.milan_djokic@epam.com>
 <059c718f5407b845b84ec53cdc3ff021296d8bf9.1774918270.git.milan_djokic@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <059c718f5407b845b84ec53cdc3ff021296d8bf9.1774918270.git.milan_djokic@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1774945213-572A9303-1D14C28B/0/0
X-purgate-type: clean
X-purgate-size: 839

On 31.03.2026 03:52, Milan Djokic wrote:
> --- a/xen/include/xen/iommu.h
> +++ b/xen/include/xen/iommu.h
> @@ -312,6 +312,7 @@ static inline int iommu_add_dt_pci_sideband_ids(struct pci_dev *pdev)
>  #endif /* HAS_DEVICE_TREE_DISCOVERY */
>  
>  struct page_info;
> +struct iommu_guest_config;
>  
>  /*
>   * Any non-zero value returned from callbacks of this type will cause the
> @@ -387,6 +388,11 @@ struct iommu_ops {
>  #endif
>      /* Inhibit all interrupt generation, to be used at shutdown. */
>      void (*quiesce)(void);
> +
> +#ifdef CONFIG_ARM
> +    int (*attach_guest_config)(struct domain *d, u32 sid,

Nit: uint32_t please, provided a fixed-width type is actually warranted here
(see ./CODING_STYLE).

> +                               struct iommu_guest_config *cfg);

Pointer-to-const?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 08:21:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 08:21:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268668.1557895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7ULr-00071r-Qm; Tue, 31 Mar 2026 08:21:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268668.1557895; Tue, 31 Mar 2026 08:21:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7ULr-00071k-Mb; Tue, 31 Mar 2026 08:21:31 +0000
Received: by outflank-mailman (input) for mailman id 1268668;
 Tue, 31 Mar 2026 08:21:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1w7ULq-00071c-CC
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 08:21:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7ULp-006UIb-Nz
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 10:21:29 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69cb8409-2eae-0a2a0a5409dd-0a2a45078164-2
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:21:29 +0200
Received: from [40.107.209.7]
 (helo=PH8PR06CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69cb8406-fd74-0a2a45070019-286bd107a0b0-4
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:21:28 +0200
Received: from CH0P221CA0034.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:11d::17)
 by MW6PR12MB8900.namprd12.prod.outlook.com (2603:10b6:303:244::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.15; Tue, 31 Mar
 2026 08:21:22 +0000
Received: from CH1PEPF0000A34C.namprd04.prod.outlook.com
 (2603:10b6:610:11d:cafe::2f) by CH0P221CA0034.outlook.office365.com
 (2603:10b6:610:11d::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.29 via Frontend Transport; Tue,
 31 Mar 2026 08:21:20 +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.9745.21 via Frontend Transport; Tue, 31 Mar 2026 08:21:22 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 31 Mar
 2026 03:21:22 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 31 Mar
 2026 01:21:21 -0700
Received: from [10.71.194.215] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 31 Mar 2026 03:21:19 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bHWnIMyI3QNfe7GTjl2Zn7Kn20nWe/8/MeQ/U6Bq0ywboDAhsXEvHO+u4Vde/Ut+8Ity2n8aqCUIXMh3xReS9d4QVlidTEsdQ+vEKgAWmEucmAhZj8oLVgTybHOBUpa1Y3vvCwrrEeamIWIM4xvQgWngAM18rGrnRzWcaUmQRRx1zaLzIyjlwXamM8EuHvupNCPl7kNlgSzJ/qjg17t6LJSIb69KBsclrFAgPCUlULdm2iQh2jUzr2HZTlNaxKiThp2iUWyPu+socojbcd9PtLEcmSOtuAL09jNhJwIezNpBeTiKEsychYA4RE1o81w3YEBAJBJyQKGjyRd80ODNLw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/L6G/yvrhwe8kYL+KglZ+wUrVvLl0a/tWctidtfUUEY=;
 b=pGmEOvWfkFt/F4VC2AkhArdFTZhnnkNNMwGiO4YZNfQjOrXb+8SVnPPXY9NcWHeQExqYdLdjzMncWim++pQdhgSd8JBnS8wzc9KaXGmBrwaUU5ch9PGZfLd4l8eXFOX3J/fKN+pFOQu72c78qsXf+LI7diyEUCemR+HgSxtF13HlDCpEjay9emDIlyKeX1TsLJ0Paz8AXtFxpmznfvO3Hh0iGjvMb0+MOM3Ahh3Ol/n/4/L645qQW0pnzEIKfWc2Z4AbL9aQWWK5nBCn0d4+nq70bqnVl/1a2M/A/Viv9gCW/3MNVUsr7oqYXX0fsy2ufXBgNv8D8cDgZGqBmwBTvA==
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=/L6G/yvrhwe8kYL+KglZ+wUrVvLl0a/tWctidtfUUEY=;
 b=kg8OTgjBmTkrZou+5ztC8aI94y+dj+gloIWNX+IvjiBCeQU+scV7G4RSkUaA7boN2ajHWQtejOe9ymPUteUzNyYFTQT6cXGvARU9z/13H7pr1wp16VFSvSjAJKi8JCeAoJUKXvfj1GdMvsmXLnz3K31heOW3HskfuaYK8vV5vg0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <4d3f29ff-9259-4b0f-bd1c-0a4dee516b2a@amd.com>
Date: Tue, 31 Mar 2026 10:21:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen: introduce shared_info_to_gfn()
To: Penny Zheng <Penny.Zheng@amd.com>, <xen-devel@lists.xenproject.org>,
	<alejandro.garciavallejo@amd.com>
CC: <ray.huang@amd.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: <20260327075025.3008606-1-Penny.Zheng@amd.com>
 <20260327075025.3008606-3-Penny.Zheng@amd.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260327075025.3008606-3-Penny.Zheng@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000A34C:EE_|MW6PR12MB8900:EE_
X-MS-Office365-Filtering-Correlation-Id: 50021b5f-4a82-4367-7ac1-08de8efe7e40
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700016|1800799024|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	YPuBDNOo5ey+xKNWhjedUyzcQQjvry8bTeUNBLeAelqb7BeDSvg+ajuGbVtNSMia4it0uxEipbKPw8B454TFSqLuiGohtaIGHAu+mxELQgaCTwYj4X8ykOWH0q0MbmPcSPBBrEU0uwkYatz4Pje7zOv9NTJDbUoGBiCm6qQYBkwqq1e1mIuWAqaOFuZ2xf+ML5VdEpDt+wE+gRq0eIfGhzTne+982KiFYWpV2YrEh6ZDntHb4yA7mC/NFgpbTUidMpAw8QR/hM568rkn4kA5fUwtGntLchUkj/S3i6xo8/t70qaxgR/nHRP772XzL2ltPJuE5P46W4WxuPx6PjHEBTHnZa0iDpM3gWo6XcZ5raaXLK23ry7eh8j6YHfTpQJ/dpSA63o0VCcHv/fQdHXoVelo3+WLaL/EBRgsUgRXkF7DKkQQht6lc0uXnrL8noJymfg3wPl5kkxjOJSKT5aYATMYK37iZfy2JX3uuL7RfwJrzVFj873uFUzbv7hqvsY2RMopMAVMnxGCBrEzOGDiYQnmfTZBZpUSGHMNxthqRaox1XCfyYxwp7LP4DN83xcxIw4c5EaEtVr5K6rGFU7xAVTlaT1io6wg0MG+ZrqsIUBkHaZTAEUZRN/OEsOUFJFB31HoWeS3Gkldz0o/Gr0bsDEJWgNDYHOFmhCYQNOr5yLD1ldqhvBl1bQct4wzwaVYjRa61MH6xbtSNCmHM+egGT+IauFQED0ulHfVjI/+3W5hMUxLKwxYJrMoXWRC7zKq90XWjM3VHH6mrC4I3JRUZA==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700016)(1800799024)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	MWbKb2HJmdVMNmdUixWq7MXfGiZHr+wasL3WmT9MKqS5Y/0Y2Em0g5TEUpyN3FYlVqzlofWu9TKtUje6SD6ywRSIEZV/LQgKZ33vmLiz73UI2y1IVlHOdk014GELeGcJfUJtu79SP08jtS4xJKpgWUdfSrCHp8lVZkjfcBCWcr5GR2SPLtfxFhAlCB7gSCwchMkjBUjFSkUb7zflf9pGlsI3asfF7+6hycvkBMGRTDQOUZszq7SuiMv5iwHRNNyS/+6hupTur/+gfDBJJeGI7vpPdOgckcWqaIH/9jHgF/qfzk4MkZ0XhCLcAW1pLsZArjIxq1oojMWLvVqMu7AvXNHIUvzkxvzeqK6c14JQN2jLJ/3A9CCL3xBtDzUYOWlOokKG8qgxU4TImlwBMKubX+KubZkHcGevr9ctOjDCcghVy3CEfjrcZTdKD+PCfPyn
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2026 08:21:22.3648
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 50021b5f-4a82-4367-7ac1-08de8efe7e40
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-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: MW6PR12MB8900
X-purgate-ID: tlsNG-ef75cf/1774945288-4DEB3303-1D1C93BC/0/0
X-purgate-type: clean
X-purgate-size: 1007



On 27/03/2026 08:50, Penny Zheng wrote:
> On ARM, mfn_to_gfn() is a simple identity macro that actually does not return
> the correct GFN for domains other than direct-map ones, so getdomaininfo() is
> returning the wrong shared_info_frame on ARM.
> 
> Introduce a common shared_info_to_gfn(d) macro to output correct GFN for both
> ARM and x86 in getdomaininfo():
> - ARM: uses page_get_xenheap_gfn() to read the stored GFN
> - x86: simply wraps the existing mfn_to_gfn() solution which consults the M2P
>        table
> 
> Suggested-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> Signed-off-by: Penny Zheng <penny.zheng@amd.com>
> ---
>  xen/arch/arm/include/asm/mm.h  | 2 ++
>  xen/arch/x86/include/asm/p2m.h | 3 +++
>  xen/common/domctl.c            | 3 +--
Seeing you only added this macro for Arm and x86, the RISCV and PPC builds will
likely fail to build.

Other than that, I agree with Jan that this requires a Fixes tag and the changes
look good.

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 08:21:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 08:21:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268672.1557903 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7UMB-0007Oq-2C; Tue, 31 Mar 2026 08:21:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268672.1557903; Tue, 31 Mar 2026 08:21:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7UMA-0007Oh-Ut; Tue, 31 Mar 2026 08:21:50 +0000
Received: by outflank-mailman (input) for mailman id 1268672;
 Tue, 31 Mar 2026 08:21:49 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper3@citrix.com>) id 1w7UM9-0007OG-IH
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 08:21:49 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7UM8-00AxBH-UO
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 10:21:48 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69cb8417-bab6-0a2a0a5309dd-0a2a4507b9b6-30
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:21:48 +0200
Received: from [209.85.128.46] (helo=mail-wm1-f46.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69cb841c-fd74-0a2a45070019-d155802eb5c8-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:21:48 +0200
Received: by mail-wm1-f46.google.com with SMTP id
 5b1f17b1804b1-48704db565eso68667515e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 01:21:48 -0700 (PDT)
Received: from andrew-laptop.home ([2a01:cb15:80df:da00:ec5b:e128:36bf:56b1])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4887adadf4fsm12957915e9.11.2026.03.31.01.21.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 31 Mar 2026 01:21:46 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1774945308; x=1775550108; 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=DU+l8B0GE1vEY8ASsI9rW+ZnbwyOq7iyyV/9tiDTUYQ=;
        b=aTneldfpoSt5a/nzQaMTE8gRZ1Gsl/Ynxx8OM48wooQrYw4deN27C6MIGVYuGyRs/F
         HkW+aLIaXfJBnasghe0fD2QkcoqeniI2QB76dvzwYt2+ZRTjrQa2goEWvYGJIKrly5Ds
         majKGj/6W756PFYQSrLbXLR3Bu8lmqNu3n0uo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774945308; x=1775550108;
        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=DU+l8B0GE1vEY8ASsI9rW+ZnbwyOq7iyyV/9tiDTUYQ=;
        b=AIp6NkI3U269tYyCdm0eMvyX0ZmFjOhQJaB+lCxYbMJfvLNMKQ1z24ihhF96XYPloe
         BS7ELWbtoyQrHrCfYdKTSOB9tFE9iZjywfU3BbUMO6RAcF0oIBse+kHPKOmrIzu3Ix4d
         BoQj6oxgoUUc122TbU0JR0BMY+EqJOBiwB+5SUSV0kLG95axCdgNbWD6CoLAqTpro2+S
         ukHXoPGwKBhaxJ9B2IRsrfpKcJfRKmSIeMGBKli6QpGdivE3qCrCJbugn2zgybQnLdcZ
         qgvXdhemy4Aiq2QCyuQrcRwAFk1eHuOzTxQMTIlBpHHtFQCBlke4eHHXmPFGvUsyAk6P
         E+sw==
X-Gm-Message-State: AOJu0YzusM8IfUarNjtdgbdN827pXiBSsxnRp0wIEi0f8tpwaygbijIF
	Pi2BO3ZKsO2i9YuSA08v2rg8DALnxj0UJq2T/eO4ymO/mnPcHifpcUpWDgZ7cqtPnxRAnxY88H9
	9ZBTS
X-Gm-Gg: ATEYQzxRk3yRusEklAE4ISxMwOYfn2mkLxNW17gfitLEnFCXtbLdwY8FJhG+3ZMDG9u
	KyTOaKdr74e2js4rOS+8vVFKxVRAelFSjlnFvokNp2Ye5ey1eiaB4QbhB0iy4+CkQN7jWrZ0y6O
	NfI5ruyKGvCmqoxKVvVtVDiUKQNZGibTR2Pv0MzaflnBjjailsoUIXP/tLKl/V0q7ng/umyBaqs
	2NQydeKUHR2jN//cWEgmBVovusp+PbGWRk0Rq75L7v+hpGPPvtBvJMgIp/zrSGVdhS2dQak6IzC
	O6GpsTUfU3tmbeIB45GD4q002Zb7AqeO3FKun0+4rBaq4Q8cdGLQJNwrz3qKd0oLRE19DgXmKAN
	PIWqPI4SmxTPy1PZRqbpTf6eY+/YM24tBd4dAqrvhQt9LJu6S86gzwzQS/h4/3VN6koj8zRALrF
	pBXXuBTMvC0225EPwPnZXOWE4s3/Plkz0XWVAVrlKSujxv
X-Received: by 2002:a05:600c:c168:b0:485:35a4:939f with SMTP id 5b1f17b1804b1-48727eddeacmr250819025e9.28.1774945307186;
        Tue, 31 Mar 2026 01:21:47 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2] x86/pv: Provide better SYSCALL backwards compatibility in FRED mode
Date: Tue, 31 Mar 2026 09:21:42 +0100
Message-Id: <20260331082142.13254-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1774945308-55EB3303-DA90FA0A/0/0
X-purgate-type: clean
X-purgate-size: 3856

In FRED mode, the SYSCALL instruction does not modify %rcx/%r11.  Software
using SYSCALL spills %rcx/%r11 around the invocation, which is why FRED not
doing this goes largely unnoticed.

Nevertheless, there is a difference in the guest immediately following cases
where Xen would use SYSRET in non-FRED mode.  These are:

 * HYPERCALL_iret with VGCF_in_syscall set.
 * Delivery to a registered entrypoint.  In the PV ABI this is always SYSRET'd
   to, with %rcx/%r11 provided on the stack.

Debugging or snapshotting activities will observe the stale contents of
%rcx/%r11 in FRED mode, rather than the %rip/eflags value they'd have in
IDT mode.  Manually adjust them when SYSRET would have been used.

Regarding the choice of instructions in eretu_exit_to_guest(), a branch would
be a context dependent 50/50 split (i.e. increased chance of mispredict), and
only saves one instruction.  The CMOVs read the same cacheline that ERETU is
about to process, so are as close to free as we can reasonably get.

Fixes: 76193ef47d91 ("x86/pv: System call handling in FRED mode")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

v2:
 * Rewrite the commit message.
 * Set TRAP_syscall in the SYSCALL path.
---
 xen/arch/x86/traps.c             |  9 +++++----
 xen/arch/x86/x86_64/entry-fred.S | 12 +++++++++++-
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 8aa1e4181bd1..656ad337ab90 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -2392,10 +2392,6 @@ void asmlinkage entry_from_pv(struct cpu_user_regs *regs)
              * The guest isn't aware of FRED, so recreate the legacy
              * behaviour.
              *
-             * The non-FRED SYSCALL path sets TRAP_syscall in entry_vector to
-             * signal that SYSRET can be used, but this isn't relevant in FRED
-             * mode.
-             *
              * When setting the selectors, clear all upper metadata again for
              * backwards compatibility.  In particular fred_ss.swint becomes
              * pend_DB on ERETx, and nothing else in the pv_hypercall() would
@@ -2411,9 +2407,14 @@ void asmlinkage entry_from_pv(struct cpu_user_regs *regs)
 
             regs->ssx = l ? FLAT_KERNEL_SS   : FLAT_USER_SS32;
             regs->csx = l ? FLAT_KERNEL_CS64 : FLAT_USER_CS32;
+            regs->rcx = regs->rip;
+            regs->r11 = regs->rflags;
 
             if ( guest_kernel_mode(curr, regs) )
+            {
+                regs->entry_vector |= TRAP_syscall;
                 pv_hypercall(regs);
+            }
             else if ( (l ? curr->arch.pv.syscall_callback_eip
                          : curr->arch.pv.syscall32_callback_eip) == 0 )
             {
diff --git a/xen/arch/x86/x86_64/entry-fred.S b/xen/arch/x86/x86_64/entry-fred.S
index 2fa57beb930c..e9c84423dacd 100644
--- a/xen/arch/x86/x86_64/entry-fred.S
+++ b/xen/arch/x86/x86_64/entry-fred.S
@@ -4,6 +4,7 @@
 
 #include <asm/asm_defns.h>
 #include <asm/page.h>
+#include <asm/processor.h>
 
         .section .text.entry, "ax", @progbits
 
@@ -26,7 +27,16 @@ FUNC(entry_FRED_R3, 4096)
 END(entry_FRED_R3)
 
 FUNC(eretu_exit_to_guest)
-        POP_GPRS
+        /*
+         * PV guests aren't aware of FRED.  If Xen in IDT mode would have used
+         * a SYSRET instruction, preserve the legacy behaviour for %rcx/%r11
+         */
+        testb   $TRAP_syscall >> 8, UREGS_entry_vector + 1(%rsp)
+
+        POP_GPRS /* Preserves flags */
+
+        cmovnz  EFRAME_rip(%rsp), %rcx
+        cmovnz  EFRAME_eflags(%rsp), %r11
 
         /*
          * Exceptions here are handled by redirecting either to
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 08:22:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 08:22:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268686.1557911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7UMo-000800-9I; Tue, 31 Mar 2026 08:22:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268686.1557911; Tue, 31 Mar 2026 08: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 1w7UMo-0007zt-6g; Tue, 31 Mar 2026 08:22:30 +0000
Received: by outflank-mailman (input) for mailman id 1268686;
 Tue, 31 Mar 2026 08:22:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dakr@kernel.org>) id 1w7UMm-0007zh-P5
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 08:22:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7UMm-00AxkI-4w
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 10:22:28 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dakr@kernel.org>)
 id 69cb8441-5cb7-0a2a0a5109dd-0a2a4501c6be-16
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:22:28 +0200
Received: from [172.105.4.254] (helo=tor.source.kernel.org)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <dakr@kernel.org>)
 id 69cb8442-6400-0a2a45010019-ac6904feb67a-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:22:27 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id C4EA460126;
 Tue, 31 Mar 2026 08:22:25 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 491C9C19423;
 Tue, 31 Mar 2026 08:22:16 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:Subject:Cc:To:From:References:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774945345;
	bh=l6+1fNT+srCycsiVVoib27WaB3v/ZfJTiLnjMUHoUKo=;
	h=Date:Subject:Cc:To:From:References:In-Reply-To:From;
	b=hSy9+x0oWet2Vv+Oa/3w4GpGm2W4uKeHJBTg9yWIIsbEo6AeK4CHA2HWQrg43wVml
	 UVDFcKRzAiCTcPrPYa8DFRgndlsXnw4fTPckVVFiVQb06rsmUThpiBFwbHCwFpNgx9
	 aItzsCrpgMmhdBzOksIXuo4KjSj0zwKhq5Cid6OYUD9yR5jXXRbnJ0gLf3fnZTo/+d
	 1ltaJGKRSE2hkkenVvfpB0JLleI13qUWazlmX5cCzMNZECQq3dZ5sC7thgT6+6cjC8
	 i3Qv/NInrpLzf5qRyZ3z333YkadqamLF6R3ft0Ny0IUSwt34LY7sCNzSn76UOiN7FG
	 7FAeA2EXbVc6w==
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Tue, 31 Mar 2026 10:22:14 +0200
Message-Id: <DHGTLY0FJWD2.2VLT6NQWF97YY@kernel.org>
Subject: Re: [PATCH 05/12] PCI: use generic driver_override infrastructure
Cc: "Jason Gunthorpe" <jgg@ziepe.ca>, "Russell King"
 <linux@armlinux.org.uk>, "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
 "Rafael J. Wysocki" <rafael@kernel.org>, "Ioana Ciornei"
 <ioana.ciornei@nxp.com>, "Nipun Gupta" <nipun.gupta@amd.com>, "Nikhil
 Agarwal" <nikhil.agarwal@amd.com>, "K. Y. Srinivasan" <kys@microsoft.com>,
 "Haiyang Zhang" <haiyangz@microsoft.com>, "Wei Liu" <wei.liu@kernel.org>,
 "Dexuan Cui" <decui@microsoft.com>, "Long Li" <longli@microsoft.com>,
 "Bjorn Helgaas" <bhelgaas@google.com>, "Armin Wolf" <W_Armin@gmx.de>,
 "Bjorn Andersson" <andersson@kernel.org>, "Mathieu Poirier"
 <mathieu.poirier@linaro.org>, "Vineeth Vijayan" <vneethv@linux.ibm.com>,
 "Peter Oberparleiter" <oberpar@linux.ibm.com>, "Heiko Carstens"
 <hca@linux.ibm.com>, "Vasily Gorbik" <gor@linux.ibm.com>, "Alexander
 Gordeev" <agordeev@linux.ibm.com>, "Christian Borntraeger"
 <borntraeger@linux.ibm.com>, "Sven Schnelle" <svens@linux.ibm.com>, "Harald
 Freudenberger" <freude@linux.ibm.com>, "Holger Dengler"
 <dengler@linux.ibm.com>, "Mark Brown" <broonie@kernel.org>, "Michael S.
 Tsirkin" <mst@redhat.com>, "Jason Wang" <jasowang@redhat.com>, "Xuan Zhuo"
 <xuanzhuo@linux.alibaba.com>, =?utf-8?q?Eugenio_P=C3=A9rez?=
 <eperezma@redhat.com>, "Juergen Gross" <jgross@suse.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, "Oleksandr Tyshchenko"
 <oleksandr_tyshchenko@epam.com>, "Christophe Leroy (CS GROUP)"
 <chleroy@kernel.org>, <linux-kernel@vger.kernel.org>,
 <driver-core@lists.linux.dev>, <linuxppc-dev@lists.ozlabs.org>,
 <linux-hyperv@vger.kernel.org>, <linux-pci@vger.kernel.org>,
 <platform-driver-x86@vger.kernel.org>, <linux-arm-msm@vger.kernel.org>,
 <linux-remoteproc@vger.kernel.org>, <linux-s390@vger.kernel.org>,
 <linux-spi@vger.kernel.org>, <virtualization@lists.linux.dev>,
 <kvm@vger.kernel.org>, <xen-devel@lists.xenproject.org>,
 <linux-arm-kernel@lists.infradead.org>, "Gui-Dong Han"
 <hanguidong02@gmail.com>
To: "Alex Williamson" <alex@shazbot.org>
From: "Danilo Krummrich" <dakr@kernel.org>
References: <20260324005919.2408620-1-dakr@kernel.org>
 <20260324005919.2408620-6-dakr@kernel.org>
 <DHGATG6LJOM1.2AI7BYQ2O4DFU@kernel.org>
 <20260330141050.2cb47bd9@shazbot.org>
 <DHGT9XCG8Y96.3IB1EI6FF1ZDZ@kernel.org>
In-Reply-To: <DHGT9XCG8Y96.3IB1EI6FF1ZDZ@kernel.org>
X-purgate-ID: tlsNG-d62444/1774945347-8ECE3DF3-7CFEC196/0/0
X-purgate-type: clean
X-purgate-size: 3732

On Tue Mar 31, 2026 at 10:06 AM CEST, Danilo Krummrich wrote:
> On Mon Mar 30, 2026 at 10:10 PM CEST, Alex Williamson wrote:
>> On Mon, 30 Mar 2026 19:38:41 +0200
>> "Danilo Krummrich" <dakr@kernel.org> wrote:
>>
>>> (Cc: Jason)
>>>=20
>>> On Tue Mar 24, 2026 at 1:59 AM CET, Danilo Krummrich wrote:
>>> > diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio=
_pci_core.c
>>> > index d43745fe4c84..460852f79f29 100644
>>> > --- a/drivers/vfio/pci/vfio_pci_core.c
>>> > +++ b/drivers/vfio/pci/vfio_pci_core.c
>>> > @@ -1987,9 +1987,8 @@ static int vfio_pci_bus_notifier(struct notifie=
r_block *nb,
>>> >  	    pdev->is_virtfn && physfn =3D=3D vdev->pdev) {
>>> >  		pci_info(vdev->pdev, "Captured SR-IOV VF %s driver_override\n",
>>> >  			 pci_name(pdev));
>>> > -		pdev->driver_override =3D kasprintf(GFP_KERNEL, "%s",
>>> > -						  vdev->vdev.ops->name);
>>> > -		WARN_ON(!pdev->driver_override);
>>> > +		WARN_ON(device_set_driver_override(&pdev->dev,
>>> > +						   vdev->vdev.ops->name)); =20
>>>=20
>>> Technically, this is a change in behavior. If vdev->vdev.ops->name is N=
ULL, it
>>> will trigger the WARN_ON(), whereas before it would have just written "=
(null)"
>>> into driver_override.
>>
>> It's worse than that.  Looking at the implementation in [1], we have:
>>
>> +static inline int device_set_driver_override(struct device *dev, const =
char *s)
>> +{
>> +	return __device_set_driver_override(dev, s, strlen(s));
>> +}
>>
>> So if name is NULL, we oops in strlen() before we even hit the -EINVAL
>> and WARN_ON().
>
> This was changed in v2 [2] and the actual code in-tree is
>
> 	static inline int device_set_driver_override(struct device *dev, const c=
har *s)
> 	{
> 		return __device_set_driver_override(dev, s, s ? strlen(s) : 0);
> 	}
>
> so it does indeed return -EINVAL for a NULL pointer.
>
>> I don't believe we have any vfio-pci variant drivers where the name is
>> NULL, but kasprintf() handling NULL as "(null)" was a consideration in
>> this design, that even if there is no name the device is sequestered
>> with a driver_override that won't match an actual driver.
>>
>>> I assume that vfio_pci_core drivers are expected to set the name in str=
uct
>>> vfio_device_ops in the first place and this code (silently) relies on t=
his
>>> invariant?
>>
>> We do expect that, but it was previously safe either way to make sure
>> VFs are only bound to the same ops driver or barring that, at least
>> don't perform a standard driver match.  The last thing we want to
>> happen automatically is for a user owned PF to create SR-IOV VFs that
>> automatically bind to native kernel drivers.
>> =20
>>> Alex, Jason: Should we keep this hunk above as is and check for a prope=
r name in
>>> struct vfio_device_ops in vfio_pci_core_register_device() with a subseq=
uent
>>> patch?
>>
>> Given the oops, my preference would be to roll it in here.  This change
>> is what makes it a requirement that name cannot be NULL, where this was
>> safely handled with kasprintf().
>
> Again, no oops here. :)
>
> I still think it makes more sense to fail early in
> vfio_pci_core_register_device(), rather than silently accept "(null)" in
> driver_override. It also doesn't seem unreasonable with only the WARN_ON(=
), but
> I can also just add vdev->vdev.ops->name ?: "(null)".

(Or just skip the call if !vdev->vdev.ops->name, as a user will read "(null=
)"
from sysfs either way.)

> Please let me know what you prefer.
>
> - Danilo
>
>> [1] https://lore.kernel.org/all/20260302002729.19438-2-dakr@kernel.org/
>
> [2] https://lore.kernel.org/driver-core/20260303115720.48783-1-dakr@kerne=
l.org/



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 08:23:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 08:23:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268699.1557920 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7UNe-00008n-MC; Tue, 31 Mar 2026 08:23:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268699.1557920; Tue, 31 Mar 2026 08:23:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7UNe-00008g-JV; Tue, 31 Mar 2026 08:23:22 +0000
Received: by outflank-mailman (input) for mailman id 1268699;
 Tue, 31 Mar 2026 08:23:21 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jgross@suse.com>) id 1w7UNd-00007z-Em
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 08:23:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7UNc-00FeyA-Qv
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 10:23:20 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jgross@suse.com>)
 id 69cb8473-e002-0a2a0a5209dd-0a2a4502b2da-32
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:23:20 +0200
Received: from [209.85.208.54] (helo=mail-ed1-f54.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jgross@suse.com>)
 id 69cb8478-63bb-0a2a45020019-d155d036c59f-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:23:20 +0200
Received: by mail-ed1-f54.google.com with SMTP id
 4fb4d7f45d1cf-66b66edf6cbso6207976a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 01:23:20 -0700 (PDT)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-66b72963f48sm3395469a12.7.2026.03.31.01.23.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 01:23:19 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774945400; x=1775550200; 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=ebSg3fmPBD48uCzVPCNbe7KEgbyAK9Q2zOxXw6qptyM=;
        b=CG+LQC70xLeIif/tjMeUY+Pc5lQ/sxZ9iQPmgJ12xg+ljKwsj0zA7+8GAsXbEsqQSY
         XSPpaM3Ey2+rkBAgTQ2nhwdBp1iu6RRhwAwtmsCqVhzMKN7vXCJXn4md9/njx0UGdrRj
         Y+proKy2EyY89ztFrNwMiEm69hFthrKnPjlAJn1oKD7qc3IxQGIcr+7BYRRrske2XgvY
         Rypu+2vRKU5MXmJZAuppXVoNAfo5E97ndlpLTNnWIVFHbabrfdOTyDOXaikJUptDeMGH
         mlbo53Bxqzvd6SXUAQS11a34JjPH5+fjPQ/BR10k/14kjsj0H7VyGGUmcs1fyroupSvX
         +V4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774945400; x=1775550200;
        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=ebSg3fmPBD48uCzVPCNbe7KEgbyAK9Q2zOxXw6qptyM=;
        b=aQP23BObMBiWow/8bZRB8REkFhp2LllsFZrfvCA3F7suMku5smWLUHNi6Iu5KGvQxk
         cxaV2KU6/NBIuniNJZGdjOjIjo3n2iyrI1sc9RUmwWY8Bd4n4ZhmUKp4BhMoJXW118qP
         VtYI9QEVWE7ZKDIovye2jJT0+/NHdB3P9bZa8PBt5kJOxCEF+C2BV0fZ3MQ66j5tOZ4j
         QtqpKJo+TM5K3OwBTQBkmJMTgQM3hZ+LfYTcSpV0Nqrv8sdvWFMV2aGLYW4PvSEnizuL
         ZeSH3brtjcygrAH7O0TNq5F5/abjI0zlQb3F4jMWlZ7hQiEWviXULoFfcg5B8Qh01AWo
         8hoQ==
X-Forwarded-Encrypted: i=1; AJvYcCVa+S1/37wJ8prpT5avTE0BY9mRRSTcCKIxas+8cQ/4G0MHgVW4gl1JnqaVV+qKnmTM0/eD4KD8Hag=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxZQhZT/buAfv2wCGvAPKfa/7hxqM51HEft9++OB2YB8ybpYaDi
	QxHmLsx5xuiqVe9UKHZYHrsPrwe9AhuLTakoFMiu9pUmxMhNoEfDDQ53H+4fhoqVIa0=
X-Gm-Gg: ATEYQzxCfcFxrJ1sc3083WbKH/r5ZLmyk4yOAI6obyligHKetThhlp/CYQ1RnMzbEgH
	4py2I2cdEjXdkVUMVvKN7pDgLnqxaL2A780AjJZBEy/H3/xUk4pSELO6Sg2nPk1DNEwiSTiPBL0
	JALeH2+hbRpUMd5mQzxt5Wq/95EoRnyLKir/iLUKDsex4CZHIuP68W3eGBZq1V/10j8/i2plxbV
	U6Laj4Lc3E2PJNAMgScVmVpukIQFgB2tgAdYtT/zwIcZlpE3yiyc4E3JSQJ30aqO6Y1RwHlRdlj
	ryy6w0/TI5i8e3G3VL02CJru+KWkU2ziroCSW5a7iWi0N/KQIEPaUs2XNwJIC/GWpYrzy4FD4+N
	0CeWfpPLIdkdrYoJT3YvihBr4t9FmElhR9WdYMjnw2wH1RUUJPbkffecwbMAt70i5y5Fdgg0ZK5
	K+cu0NzOCiLWAbew/X17xtHnsluZ+Ebm014nskloKJEoAaPodA2EoeQ9gUphyZ0aQV32qGBB1bF
	CZLPxkiyljyqE1k5h1O9JFNVzdcBpF3WSD5v/tIbMeIRneF9/Xl9Q==
X-Received: by 2002:a05:6402:3210:b0:668:50eb:bc87 with SMTP id 4fb4d7f45d1cf-66b282621cdmr9044588a12.3.1774945399952;
        Tue, 31 Mar 2026 01:23:19 -0700 (PDT)
Message-ID: <eeeabd5c-083f-4275-bf3c-846e01b4a5ea@suse.com>
Date: Tue, 31 Mar 2026 10:23:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/sched: rtds: prevent extratime priority_level
 wraparound
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 Meng Xu <mengxu@cis.upenn.edu>
References: <b6e65a9fb94d581a31e1d06b241522c17a7863cc.1774943670.git.oleksii_moisieiev@epam.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <b6e65a9fb94d581a31e1d06b241522c17a7863cc.1774943670.git.oleksii_moisieiev@epam.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------PFxJJxpN9OMnVU73vtulkPtZ"
X-purgate-ID: tlsNG-720697/1774945400-40895DB8-DEC02416/0/0
X-purgate-type: clean
X-purgate-size: 9139

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------PFxJJxpN9OMnVU73vtulkPtZ
Content-Type: multipart/mixed; boundary="------------p51EcEL0bMFSgGsmyUVXCGXT";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 Meng Xu <mengxu@cis.upenn.edu>
Message-ID: <eeeabd5c-083f-4275-bf3c-846e01b4a5ea@suse.com>
Subject: Re: [PATCH] xen/sched: rtds: prevent extratime priority_level
 wraparound
References: <b6e65a9fb94d581a31e1d06b241522c17a7863cc.1774943670.git.oleksii_moisieiev@epam.com>
In-Reply-To: <b6e65a9fb94d581a31e1d06b241522c17a7863cc.1774943670.git.oleksii_moisieiev@epam.com>

--------------p51EcEL0bMFSgGsmyUVXCGXT
Content-Type: multipart/mixed; boundary="------------pINyL8MiytX7l0sgSerbfKGN"

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

T24gMzEuMDMuMjYgMDk6NTQsIE9sZWtzaWkgTW9pc2llaWV2IHdyb3RlOg0KPiBJbiBSVERT
LCBidXJuX2J1ZGdldCgpIGluY3JlbWVudHMgcHJpb3JpdHlfbGV2ZWwgZm9yIGV4dHJhdGlt
ZSB1bml0cw0KPiB3aGVuZXZlciBjdXJfYnVkZ2V0IGlzIGV4aGF1c3RlZC4gQXMgcHJpb3Jp
dHlfbGV2ZWwgaXMgdW5zaWduZWQgYW5kIHdhcw0KPiB1bmJvdW5kZWQsIGl0IGNvdWxkIGV2
ZW50dWFsbHkgb3ZlcmZsb3cgdG8gMC4NCj4gDQo+IEEgd3JhcHBlZCB2YWx1ZSBvZiAwIGlz
IHRoZSBoaWdoZXN0IFJURFMgcHJpb3JpdHksIHNvIGFuIGV4dHJhdGltZSB1bml0DQo+IGNv
dWxkIHVuZXhwZWN0ZWRseSByZWdhaW4gdG9wIHByaW9yaXR5IGFuZCBwcmVlbXB0IHVuaXRz
IHdpdGggYWN0aXZlDQo+IHJlYWwtdGltZSByZXNlcnZhdGlvbnMsIHZpb2xhdGluZyBFREYg
aW50ZW50Lg0KPiANCj4gRml4IHRoaXMgYnkgc2F0dXJhdGluZyBwcmlvcml0eV9sZXZlbCBh
dCBSVERTX01BWF9QUklPUklUWV9MRVZFTCBpbnN0ZWFkDQo+IG9mIGluY3JlbWVudGluZyB1
bmNvbmRpdGlvbmFsbHkuIEJ1ZGdldCByZWZpbGwgc2VtYW50aWNzIGFyZSB1bmNoYW5nZWQu
DQo+IA0KPiBOb3JtYWwgYmVoYXZpb3IgaXMgdW5jaGFuZ2VkLiBPbmNlIHNhdHVyYXRlZCwg
cHJpb3JpdHlfbGV2ZWwgcmVtYWlucyBhdA0KPiB0aGUgbG93ZXN0IHByaW9yaXR5IHVudGls
IHRoZSBuZXh0IHBlcmlvZCB1cGRhdGUgcmVzZXRzIGl0Lg0KPiANCj4gU2lnbmVkLW9mZi1i
eTogT2xla3NpaSBNb2lzaWVpZXYgPG9sZWtzaWlfbW9pc2llaWV2QGVwYW0uY29tPg0KDQpS
ZXZpZXdlZC1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPg0KDQp3aXRoIG9u
ZSBub3RlOiBvdmVyZmxvd2luZyBwcmlvcml0eV9sZXZlbCB3b3VsZCByZXF1aXJlIGV4dHJl
bWVseSBsb25nDQpzY2hlZHVsaW5nIHBlcmlvZHMgKHByb2JhYmx5IGF0IGxlYXN0IHNldmVy
YWwgZGF5cyksIHNvIHRoaXMgYnVnIGlzDQptb3JlIGEgdGhlb3JldGljYWwgb25lLiBBbnlv
bmUgY29uZmlndXJpbmcgdGhlIHJ0ZHMgc2NoZWR1bGVyIGluIHN1Y2gNCmEgd2F5IHdvdWxk
IHByb2JhYmx5IGRlc2VydmUgdG8gZXhwZXJpZW5jZSB0aGUgZmFsbG91dCBmcm9tIHRoaXMg
YnVnLiA6LSkNCg0KDQpKdWVyZ2VuDQoNCj4gLS0tDQo+IA0KPiAgIHhlbi9jb21tb24vc2No
ZWQvcnQuYyB8IDEwICsrKysrKysrKy0NCj4gICAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRp
b25zKCspLCAxIGRlbGV0aW9uKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9z
Y2hlZC9ydC5jIGIveGVuL2NvbW1vbi9zY2hlZC9ydC5jDQo+IGluZGV4IDdiMWY2NGE3Nzku
LjljMTAyN2MzODggMTAwNjQ0DQo+IC0tLSBhL3hlbi9jb21tb24vc2NoZWQvcnQuYw0KPiAr
KysgYi94ZW4vY29tbW9uL3NjaGVkL3J0LmMNCj4gQEAgLTExMCw2ICsxMTAsMTIgQEANCj4g
ICAgKi8NCj4gICAjZGVmaW5lIFJURFNfTUlOX0JVREdFVCAgICAgKE1JQ1JPU0VDUygxMCkp
DQo+ICAgDQo+ICsvKg0KPiArICogTWF4aW11bSBleHRyYXRpbWUgZGVtb3Rpb24gbGV2ZWwu
IFNhdHVyYXRpbmcgYXQgdGhpcyB2YWx1ZSBhdm9pZHMNCj4gKyAqIHVuc2lnbmVkIHdyYXBh
cm91bmQgYmFjayB0byAwIChoaWdoZXN0IHNjaGVkdWxpbmcgcHJpb3JpdHkpLg0KPiArICov
DQo+ICsjZGVmaW5lIFJURFNfTUFYX1BSSU9SSVRZX0xFVkVMICh+MFUpDQo+ICsNCj4gICAv
Kg0KPiAgICAqIFVQREFURV9MSU1JVF9TSElGVDogYSBjb25zdGFudCB1c2VkIGluIHJ0X3Vw
ZGF0ZV9kZWFkbGluZSgpLiBXaGVuIGZpbmRpbmcNCj4gICAgKiB0aGUgbmV4dCBkZWFkbGlu
ZSwgcGVyZm9ybWluZyBhZGRpdGlvbiBjb3VsZCBiZSBmYXN0ZXIgaWYgdGhlIGRpZmZlcmVu
Y2UNCj4gQEAgLTk3Niw3ICs5ODIsOSBAQCBidXJuX2J1ZGdldChjb25zdCBzdHJ1Y3Qgc2No
ZWR1bGVyICpvcHMsIHN0cnVjdCBydF91bml0ICpzdmMsIHNfdGltZV90IG5vdykNCj4gICAg
ICAgew0KPiAgICAgICAgICAgaWYgKCBoYXNfZXh0cmF0aW1lKHN2YykgKQ0KPiAgICAgICAg
ICAgew0KPiAtICAgICAgICAgICAgc3ZjLT5wcmlvcml0eV9sZXZlbCsrOw0KPiArICAgICAg
ICAgICAgaWYgKCBzdmMtPnByaW9yaXR5X2xldmVsIDwgUlREU19NQVhfUFJJT1JJVFlfTEVW
RUwgKQ0KPiArICAgICAgICAgICAgICAgIHN2Yy0+cHJpb3JpdHlfbGV2ZWwrKzsNCj4gKw0K
PiAgICAgICAgICAgICAgIHN2Yy0+Y3VyX2J1ZGdldCA9IHN2Yy0+YnVkZ2V0Ow0KPiAgICAg
ICAgICAgfQ0KPiAgICAgICAgICAgZWxzZQ0KDQo=
--------------pINyL8MiytX7l0sgSerbfKGN
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-----

--------------pINyL8MiytX7l0sgSerbfKGN--

--------------p51EcEL0bMFSgGsmyUVXCGXT--

--------------PFxJJxpN9OMnVU73vtulkPtZ
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/Ey8FAmnLhHcFAwAAAAAACgkQsN6d1ii/Ey/r
/wf+LTwA0Q0fBj1Wu0d/c0rUZazjubS448e6vNFlNbRzqVEqwETFwacqDHPv8hVuR4AZ4IJqu8Tl
TWKf9Tet5uZQWATctbYCT0+Xvk1eH4qL8672YUXJQU0cFh2xlVxl5JNRG+EhynI5or9X7f8GszS+
aYILU05IlM7wI7Ji3Do9f7F92nNxdnr8eqlnPL5bgU9RJpyOhdyvDDJqjwLswf/oFitwSVqFuI83
pTj9aFYt51X/8PKMTlcevWkNdTzg4JZ8Q9jnNSiEfDrXPlCCzEBa9xq9bGV5/cQqvKbV0n+nU56V
96jaja6UR5e1PzkGl7NqzKimnjuueBTLjB9B68/bQQ==
=h+iK
-----END PGP SIGNATURE-----

--------------PFxJJxpN9OMnVU73vtulkPtZ--


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 08:24:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 08:24:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268709.1557930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7UOf-0000fA-0J; Tue, 31 Mar 2026 08:24:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268709.1557930; Tue, 31 Mar 2026 08:24:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7UOe-0000f1-T9; Tue, 31 Mar 2026 08:24:24 +0000
Received: by outflank-mailman (input) for mailman id 1268709;
 Tue, 31 Mar 2026 08:24:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7UOe-0000eq-1y
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 08:24:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7UOd-0071qi-Dr
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 10:24:23 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69cb84b6-2eae-0a2a0a5409dd-0a2a45028258-10
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:24:23 +0200
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69cb84b0-63bb-0a2a45020019-d1558032c17a-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:24:16 +0200
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-4838c15e3cbso44522015e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 01:24:16 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4887e844442sm17575545e9.13.2026.03.31.01.24.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 01:24:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774945456; x=1775550256; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MuaYHKqDVKRd6ZxFR6nh9+q+CaaTQRLhUubCPOS5NiA=;
        b=bJnG8vyeucMNEgpcchcXgmuOHwyPDUprIuC5mhZDiaZivqlKXQdDmqbOXLO4knGWNk
         zVkDblnjjKkIsNr9yfuPCKo7bFL8+ZjWMNyJ5iM7IvzwcStgdsjIcVK9jD4QyTvISfL0
         LPFe4TzzZ6al2tnv4xiXLrnFweihdfVSzgSCm93zu3reygZ6OGtddt3pDOMQHi7viLwv
         CTVo9oGilTNotdWJd1+F5hGBHLccL1QYYBgMluKdlMp4BjLp8mJKTA/5245cq59p2xQu
         dFSTq3c34tFyCt65Jl5AEIJ3o7oJ+fXHac6S62wI82WTsgpJF6/O7bZ9CmwuCpxK2AeT
         dS+Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774945456; x=1775550256;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MuaYHKqDVKRd6ZxFR6nh9+q+CaaTQRLhUubCPOS5NiA=;
        b=NKHwX/iT476RO+5uBnRwerVP3kyBPQviJa7BVcONw/Em9xi4WM/fCNINwt+2JLrpVw
         ijIExY0WBgTGZDfa5buC8xUe2ivhPYvjQ4hBOo52T4Vbq/s+zrOIJIz5Ep9bmIZYxaca
         IH8E8lOZx5+unlwdMAVOSMR7jrn6A0a7JRyT5X7b0noNF1imvzF3bVhG4CXdIfk0r1XB
         bYJxgcKT7KBOBu/WQ5eL0soCKMkoq6jYsdNdRY7crTaaNx9E5PDAtITkACOQfvvUfpJt
         dnRP0u1EDyx51gksE48zimvYSGVVqUyyKWYgKtZ31W9BvrsZkUTYjZBrvaKqR7Yo9YBw
         qVng==
X-Forwarded-Encrypted: i=1; AJvYcCWTiPEhQ/uMYcQfcmV4g8ZMJi6AzIXSJ/mEW7JVoKxAkMcbckIWIeyH7hWWMrFu85PyYogBsEU+GkE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YztzULrLm1hHzOyZvi34XXXGJKZ9lJ+mDnpC6K/Zl6KLudo1ede
	cgCMMxqYg3SL6qf0aKJc2xplUd6EFoRDsxC4P3njvEKSOIsT76fg0NwWYZMEkg1nPQ==
X-Gm-Gg: ATEYQzxQl0Q1+ErF1DqeLz5zNVhvgTrRWKwY59aE8o+cW+2PD7VBgHFblnRvy0OlasY
	getemuCzuJLkZEdQIH2klXXTX2qs6v2u29HbaGSKKz6/jS/jcFDSvoIvA0AblpiJH+iYtXdqegv
	gCoK9wqu4bZmJJ3wE9oPu57m+bpZG5BzfuZlHlCUFmRwQ2zb+/Accdh1iga+coHTQ51+CXuvICs
	8XX0TKBFqDx7AT4q6OsCEJqf7U2MlHTTmSqmeGB8dsvgMG4Zfh6GP2lYmHUGg3gvLO6wvAS72Ah
	z6fEjQhhEDlzaCK/ECO9M++vA6+MPpyMNds4L9/2GqThUddOhtiQAF+xAAAek9w43H+cQR6w4Mq
	dhHAJ/Tcm6YJLXzECK0A4NFkvQ1JdR7TP8yCsYOz4KgTdb3gl7i1lGLLeaXXGv8NRRMzLslngnN
	dgCUrX0Ezr+cTNHUPuSgzgCadQQKxIHuR7eOkdSzE6jpRoOpS+IALx7zA4amVoUGbwTHZUzS1Bg
	qEtWEJvMeci0F0=
X-Received: by 2002:a05:600c:34cf:b0:477:a1a2:d829 with SMTP id 5b1f17b1804b1-48727d84062mr284183995e9.13.1774945455743;
        Tue, 31 Mar 2026 01:24:15 -0700 (PDT)
Message-ID: <0b831a75-c205-427e-a35f-fa37a6bd0e35@suse.com>
Date: Tue, 31 Mar 2026 10:24:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/5] README: update minimum make to 4.1
To: Edwin Torok <edwin.torok@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>,
 Roger Pau Monne <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1774886602.git.edwin.torok@citrix.com>
 <4bbe4e23abcd5b1b32204d391bdd593205b89201.1774886602.git.edwin.torok@citrix.com>
 <16b415a9-b74f-4afe-a14f-e9d2df704eb9@suse.com>
 <9F272BD1-F382-4337-ADFE-CCA4E390A8AC@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <9F272BD1-F382-4337-ADFE-CCA4E390A8AC@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1774945456-BFC8BDB8-49D3EDEC/0/0
X-purgate-type: clean
X-purgate-size: 791

On 31.03.2026 10:15, Edwin Torok wrote:
>> On 31 Mar 2026, at 07:14, Jan Beulich <jbeulich@suse.com> wrote:
>> On 30.03.2026 18:17, Edwin Török wrote:
>>> Using .DEFAULT_GOAL requires at least GNU make 3.81.
>>> It was suggested to update make to match ~2015 era gcc/binutils, hence
>>> 4.1.
>>>
>>> Signed-off-by: Edwin Török <edwin.torok@citrix.com>
>>> Suggested-by: Jan Beulich <jbeulich@suse.com>
>>> Link: https://lore.kernel.org/xen-devel/c0ba57bb-0d86-4209-b019-daf8328b5205@suse.com/
>>
>> Unless we're specifically meaning to use 4.1 features, personally I'd prefer
>> the lower 4.0
> 
> 
> OK.
> 
>> (which is what I have on my main dev workstation).
> 
> Which OS/distribution are you using?

On that particular system it's SLES12 SP5 (in LTSS).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 08:28:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 08:28:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268722.1557939 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7USF-0001eF-Eh; Tue, 31 Mar 2026 08:28:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268722.1557939; Tue, 31 Mar 2026 08:28:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7USF-0001e8-B2; Tue, 31 Mar 2026 08:28:07 +0000
Received: by outflank-mailman (input) for mailman id 1268722;
 Tue, 31 Mar 2026 08:28:06 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7USE-0001e2-53
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 08:28:06 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7USD-00FgBQ-2s
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 10:28:05 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69cb8593-bab6-0a2a0a5309dd-0a2a4501daaa-12
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:28:04 +0200
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69cb8594-6400-0a2a45010019-d1558032e452-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:28:04 +0200
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-487012ce896so33211725e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 01:28:04 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4887a630901sm18481995e9.0.2026.03.31.01.28.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 01:28:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774945684; x=1775550484; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HctX+JDtCnX93Jc66Wju0t0pUUK8/Z+cQxl2U4t7RMs=;
        b=OaiVqeZNlTeZMuzRmxags8SPQeWCKE2KgVKQN/DfxRNArMbWoAGaRQKRM8yQLwz/6A
         a8V2ZZ4EfL2KmIZaep+IGOs7p+b6xyoDrZu+7lN01wrj4Odll4FWbsdO5FG96o1ksOhI
         3oVxo8u1t1nd8lNHC1IxPxWTU2K5txCD35G0iqnIDRnqHmKQsJmidfDsm+sAdIqJTyv1
         qbXFrg8M2nCZu00fImxPnLGPeXttFqNqm3ozBYw5ViPg670uL20vaMXLgfJYAxPnnnPe
         sMJlRASMEyPmKlz+BL6eoUh9LlfYtw5gJ2eoVzwXGpFjbjcXZvQ9t6Zw+KttHy1rEuS8
         e2WQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774945684; x=1775550484;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HctX+JDtCnX93Jc66Wju0t0pUUK8/Z+cQxl2U4t7RMs=;
        b=r4Z1Cw7JMMTu0h9ttq0MgkOWoqUKMhuQeG2EVeVrpeRi2onFVYEiTiUYXCoz+S6xPw
         1LLDGFPW4qosBRT9S0ZtaKGU2fa57LCI9KwctSjh/D90knWq+PbEN6oSSDdwrmAfYy77
         J4iGtvdckG0w9ORCopyqLUjzxj1DaEanDtMTwuAE1a5AbrBley6zt4ctui9JEgEaOgqH
         zLlqPu3WjrRVM6oKPxHSpJXRG9FGH/qDP9tymyO8IPV8jskZPC5t7byXGONfbScValTV
         dvTD1cnId26AyQA/LTlHKb5DacT5bNW7UiRdVcNvZy5fbuEu+U+oW5CxOJXbxHiKDbjL
         AjyA==
X-Forwarded-Encrypted: i=1; AJvYcCXq2PuqHRK/obUVwrg5THsVkl2sEFxrCG+e9UHwWJLftZFokIZe83UM4keVNL7NTk+siy0DCxOcVNM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxTXTA29aET5QUttnzIUZD2FqLcAIdEMxnEwu5lkxSkdPzurGJ6
	f6yk9nqBz2XF5RQJH0MQyXrjVakX2ZdFv+f+SNIOMyG3pnaVEMQUfippaLSVQQoqXw==
X-Gm-Gg: ATEYQzxtBNzhRGAgjweV0DLksyoee6jF1mJJue9XMfH1EdawgzSomJ5ggGYR2wsgYmy
	WfLB44YYSpm7DSxlK6ZEwoXKaRopjPcceS74Gde9ZnP/dUx5kA4UI4HX722BYTgS5dbm1qc/7EV
	i5HAeUrLa/vzqYWs+GUI6OdlwPiY+VlUf0+fkkNQTg5Aj3HNJLB8mTXXbvqP1iMjdhdHZiXVkr+
	wuBX0k9rS/po7qK00QE0znlJnA+IsMN9mgpMbxSaPorA9HNN/9n2/6NTRWDhU0bYDqCoyyZEL0Z
	B+dprfZ09xM3hW25TVsMbHqEWU69oudsIPi7X4Y6IRxKwW5+XKmcXo3x32WHBrUVvPmcJPEWgy8
	3hpXDgr7f5LIAfffUCEp/FA6Sppcvdq3sCw9Um6oc/BpO8KEf5Yj95obaIy1TSZOdcJTYZPh8J1
	HC76Gh6Fq2dgt1SzsK7bKwJexq1L5RjjtCssUhcwYQpbUfULfVh0TSa+3FmKanSLyakdSSbHTHS
	hDPKcuiB12PbnE=
X-Received: by 2002:a05:600c:c081:b0:485:4453:401d with SMTP id 5b1f17b1804b1-48727d5a269mr196208995e9.2.1774945684294;
        Tue, 31 Mar 2026 01:28:04 -0700 (PDT)
Message-ID: <fd0eaa65-afaa-40bc-b1dc-476431577a3f@suse.com>
Date: Tue, 31 Mar 2026 10:28:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/pv: Provide better SYSCALL backwards compatibility
 in FRED mode
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
References: <20260331082142.13254-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: <20260331082142.13254-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d62444/1774945684-218FDDF3-5FC47879/0/0
X-purgate-type: clean
X-purgate-size: 1287

On 31.03.2026 10:21, Andrew Cooper wrote:
> In FRED mode, the SYSCALL instruction does not modify %rcx/%r11.  Software
> using SYSCALL spills %rcx/%r11 around the invocation, which is why FRED not
> doing this goes largely unnoticed.
> 
> Nevertheless, there is a difference in the guest immediately following cases
> where Xen would use SYSRET in non-FRED mode.  These are:
> 
>  * HYPERCALL_iret with VGCF_in_syscall set.
>  * Delivery to a registered entrypoint.  In the PV ABI this is always SYSRET'd
>    to, with %rcx/%r11 provided on the stack.
> 
> Debugging or snapshotting activities will observe the stale contents of
> %rcx/%r11 in FRED mode, rather than the %rip/eflags value they'd have in
> IDT mode.  Manually adjust them when SYSRET would have been used.
> 
> Regarding the choice of instructions in eretu_exit_to_guest(), a branch would
> be a context dependent 50/50 split (i.e. increased chance of mispredict), and
> only saves one instruction.  The CMOVs read the same cacheline that ERETU is
> about to process, so are as close to free as we can reasonably get.
> 
> Fixes: 76193ef47d91 ("x86/pv: System call handling in FRED mode")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 08:29:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 08:29:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268734.1557949 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7UTP-0002Li-T4; Tue, 31 Mar 2026 08:29:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268734.1557949; Tue, 31 Mar 2026 08:29:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7UTP-0002Lb-P8; Tue, 31 Mar 2026 08:29:19 +0000
Received: by outflank-mailman (input) for mailman id 1268734;
 Tue, 31 Mar 2026 08:29:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <edwin.torok@citrix.com>) id 1w7UTO-0002LT-HS
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 08:29:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7UTN-006WKY-TV
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 10:29:17 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <edwin.torok@citrix.com>)
 id 69cb85dd-5cb7-0a2a0a5109dd-0a2a4507a18e-0
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:29:17 +0200
Received: from [40.93.196.14]
 (helo=SA9PR02CU001.outbound.protection.outlook.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <edwin.torok@citrix.com>)
 id 69cb85da-fd74-0a2a45070019-285dc40e814a-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:29:17 +0200
Received: from LV8PR03MB7422.namprd03.prod.outlook.com (2603:10b6:408:186::13)
 by SN7PR03MB7130.namprd03.prod.outlook.com (2603:10b6:806:32c::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 08:29:12 +0000
Received: from LV8PR03MB7422.namprd03.prod.outlook.com
 ([fe80::2fda:1b59:40a8:fe4f]) by LV8PR03MB7422.namprd03.prod.outlook.com
 ([fe80::2fda:1b59:40a8:fe4f%4]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 08:29:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pWezLmhSTk3xkx465wpON0+/Chxd+3VdVvIQn0kyl3+FgXcojZEyGAj4adnXvjvhSWCrrFOHy+OhfQ9C+8/q/PkBDU7XWwFmIrQkjMChI3rzdB8BC/uMK/dfAUeq6nRDcpPkbFpab/IBp7rdKdeQ81GyiKNRp6bicBBbyxWaJ/HSIgEKExwuhss6l/2eF1tH3r3l+0B54VJKMiIsUW/FEXZO5JNYf0rbJ6QsYBp8ZrRCMy+V9EnKK+T/0UoqmL5dY/q1yTQ6Kt23XvOFnlBph0jDekwIvqi/uCJTsbvnBqhMKPe/QKRO+EB1TVkw9GoG7rx/kqf3pVp1toO6KSqAFA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=g5CgmOt4hNb5k5yIEzDjcG7+blEa41+bIyy12cG/PaY=;
 b=UZL+3F0L7H6S3s0wfUVivAffZXxyJdIoqwD+kniFnw3ibuPjJ3VbqpfBQD75QmxYxj3mGpd3Fy+7WsUEMcYzX7XuDqM7q/XCXlfnFaGIffDNrSHjyDLvREcQvfWL4Ddk8sZHgLp6pSmV4L/DgtClOCl4pOvJz0xZ1XVebOvrwjIHVOlFbRkAJAAM4kTMmeMFPGiYtyR2mTOQuDJK5cm4rdDx/xkmCs9/0T/8pcHBWtL0p9WJrT+nocFTrS6bFUh7IpPsS4TSUX2aJG5kzVdpdPN01eflmSKEbjRY4XRiDBA8rh+ZkZ07mT8nhy5pPinrAlJXjZ42qH3xVl+xUNnkuQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=g5CgmOt4hNb5k5yIEzDjcG7+blEa41+bIyy12cG/PaY=;
 b=RCfSm1AyweBQhOZa0lm8prDcRhOXjjuRG0qrQFxLtKXhiPSbbyA6mRa6ey8WfyOBT/PJCwYU/Ruvkp3Rnnts7eQn/66TK4tkh0vV01O1+UBX/zeBwdlzJlaePZhggFd5SMtKunxbyCNWOWAxBzMoa908eRBPiz4SQRSMyi41MLE=
From: Edwin Torok <edwin.torok@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Doug Goldstein <cardoe@cardoe.com>, Stefano Stabellini
	<sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v1 2/5] CI: drop Ubuntu 16.04
Thread-Topic: [PATCH v1 2/5] CI: drop Ubuntu 16.04
Thread-Index: AQHcwGC+DQyaEB1zLUaIAlfbsyKd+7XINvGAgAAZKoA=
Date: Tue, 31 Mar 2026 08:29:12 +0000
Message-ID: <F51598F5-FFC7-49A5-9BF1-4AAC004036F1@citrix.com>
References: <cover.1774886602.git.edwin.torok@citrix.com>
 <587eb0701db6e5852e9628d0cb9db90250424c4a.1774886602.git.edwin.torok@citrix.com>
 <a49f9840-7b8b-46a1-b171-ad0e81da7455@suse.com>
In-Reply-To: <a49f9840-7b8b-46a1-b171-ad0e81da7455@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: LV8PR03MB7422:EE_|SN7PR03MB7130:EE_
x-ms-office365-filtering-correlation-id: cd3bf23b-6e60-4561-66b4-08de8eff9654
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|1800799024|22082099003|56012099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 jEb6stoVMGb95g1GxKZoG97Q6vIaP6cH+aOgnliRXMu962RR/Q/wlAQmrtzF9FEe440mdQfWqUl5CcWwhW1TCclt/p93pYIOH+LBSkt2LUGhvra+km3N9nDxcMkT70WnpAX6mnvnEmcCXWMMIEYPqIYBknENt4f8ClP+19dNibYrQt0UgsLchzkVx4rMsHX/peU8KI/GAAO1jTM1YYijPgcVNdMwaoWBQ6ZRt0PPB+1Kk6jQKJuKy/1f5LUdH+sNOAxpyfw31JDj/YhU5Pgu064K2HtDJi2sOwvoCQNZsisPRyy8MgdKyLGGpL4scjVj1UOimm69byK+VK/XL/BsqNqjL73inkYHeHszoV/XceAIM27v3/w159yL7ln0hokmSgKdes0kb4Lz7TzxU5SJ2mT217BKfFvXSJh7Ee7RhPX5IeFLRZWkRpoagcky+sjdzn73bzB1MEJF0gh06CJ6GxaTZaS8xwgGBhwuG+iZFQDYYKj5HPQHBUQ7d+21aJaiXkhHJRp+AYfjOvQRHR/e384/fJ+6mSwOOvqG737qfEZYAxRtT4nzVYXIYKfqqAqBni6oDRpXMpcW1I6gKx7AGdUsqiXHOq+Jc6LgyT3mgenTxY0Cyauldsw0+UKMsHxK6kquByAZVE6zKxy4PMrIeWhItru/Eh4257fcm4XHMhKYONqWNnGbauVFONuq/MHdT1XpWLHjhPiHhexFWZmQD0A3Ea/JX4bLD6iQ8eQ/RsFDJBxpclp9YeExP/4lxEV2R+fQkijVtX69+HjHGwNgwuJwO6o2Qms3EaHa2zynymKi2LnWbJF5T8MJJsC3BCNz
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV8PR03MB7422.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(22082099003)(56012099003)(18002099003)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?RVN1WU5zWXM4R3ZUb3cycW9WRUxoU1BvZGNQcm9IM25ZTHlqV2lrdXdkMmV4?=
 =?utf-8?B?NWRjTTNrNG44WXFKbHRjY1M3RFQ4RG9Lc0JBQXNuUmowNFVOYTlSOFBZbGZu?=
 =?utf-8?B?cm5jZFJKc04xUit3TFRmcjJTRnQrcmhHT3lhWnliSk5zeDVxM1ZTV0NhZEcr?=
 =?utf-8?B?RXZTcEd3cWZPTU1HWC9sTGxNbnRaRDlCTHErYXBYVDdkNEZZSlVKaUZ4TllT?=
 =?utf-8?B?ZGlnRlozQXFrSTlHSTBEa2VoYWxjVGpjTDM2bzRaOFpoNC9jWnR0SDBHcHNE?=
 =?utf-8?B?WVhqYk1FU2xlUFBjZ3FFN2tXcW05R2IyS3ozUmpQUFJqMFFaWnV3MVBJMURL?=
 =?utf-8?B?UnllZFA0bEZSU1FheTNOMGVEc2M0TFZCeEE4aGZ1Y2FZTzZxNGVZVzRpZDEz?=
 =?utf-8?B?WWhMRTZvSHMrSzM1ZVVScjdiY2tJTGszUUEwSWM0SzFLd2hQcEQwc3dGMkIz?=
 =?utf-8?B?cjhXdlRQQUpZYlptYzlDa0kyOUVjek5XeFJRalQrTm5RWU43UDFXVUQvTUR5?=
 =?utf-8?B?VDVvdEFqT0dVcnFQTTY2cEI3WTBXWW0zQ0hPSDZjWE1WUFVIbjY1enM0TGtt?=
 =?utf-8?B?aXhaT2ZPZU9OR2pacUpVNjBHS0Nxd2djUFczZ2h2SFlSQmE5SEVJTHRwdTNY?=
 =?utf-8?B?bmVPNEVaK0k1Zis1NjYvSjlrcUZHK3l6R1doaThMb3Q5bWF6dFJmWXpUV0M0?=
 =?utf-8?B?VmlXSkJxMlRJQW5kTXVWcjRuL0R0ZHh4TUREcjliaDErUUJjQjNMNXlOZXRI?=
 =?utf-8?B?ckpZTitTTC8rRDFKWnpobnZBZ1RVYWhwUmtpbGI0dWNrNElwTTJxekt6RmYz?=
 =?utf-8?B?a3VZd05XOGZpVG5WNUlJV0RiZDltZUJWNHdkaCs4Q3NyWDNVNzA3ZEZZeXVF?=
 =?utf-8?B?d2hycDdUOEdVbERoUDgyUWgxTGFmb1huRlZIZkZySUxNVnhRa2NBVVVranJh?=
 =?utf-8?B?TEpHeVBkalcrU25QSDV3QmMvdTF2am9HaFdjOTZrYjhwU0crZEtabzRSNGVv?=
 =?utf-8?B?ZkxLVGpWUHZzMU90Z0hIM0ZMSmJFUFh1aFlVcG9XZFJqTUpqNDZHVHBDdE0w?=
 =?utf-8?B?VG5JNXVuVFR1ZDBldXlaR2tuVTVaSVdZSEtTT3FFbytFcTJLSGhzcEw1ZEhH?=
 =?utf-8?B?bG1jRS8xc0VFNVY3dW5qTVBCSlUvR0M2OWxRaklTTEIzL0lFUUZJNkVtbXNr?=
 =?utf-8?B?V3BjN0Z4TDhuZGJxS3RFeDFwcE5XbzhBbTBHc2s3ZlFWcnpyem4zZ05SSWQ1?=
 =?utf-8?B?TGVic2JXUFBzbFFRRGlqU3RGQ294c2hCT3ljaHROSDNBanpiVG5aZWVZRy9w?=
 =?utf-8?B?ZGpHbjY1dlRRWkhsOVZ4WTUwMTRwdEZoby9vMFFUU05aTS9nMktOS3pSZ2la?=
 =?utf-8?B?d25xRGgzNk1BcE9sazVpR2hMbjVOZVJOWGFEY2h1TExYczNIMmYrTzl3bjl1?=
 =?utf-8?B?VXB1RHBRS2FNTnE2S09mUktCV3JGcWdoejNJU3JOZWdONXBibHhnMWZIZXc2?=
 =?utf-8?B?Q0gzanlvbGVsby9odUtJOEcwN015NGNtMkNwL2xLMTZqRithSnVLOEovZDBV?=
 =?utf-8?B?MXJCcWJ6bHV1N1lnZExROXFsVW0yTXBpSm1UclYraUZWaWV2YlBxbEJUZkg0?=
 =?utf-8?B?dlozVE4vUE1sd0pHZE5aZVZONGo2UUhody9XSGlucFJ1MStQMlV1cXJtc1Vo?=
 =?utf-8?B?cVI1Q0ZzSjB5QlZzT1VLVm5VTzZ1T0pCZXEwcWcxY0pXcjFFV0psTkZDeXRF?=
 =?utf-8?B?K0tnN1p6U2pJalBhd2Z1R3hTU1VBZHFPNDE4R3FsV1duRUpXS2E0MTl3WENt?=
 =?utf-8?B?MTh0WExTZjEvSU1INGhSTVQrU0hLZUdpVS84QmRuYmVkMGJNdXJUUkx6WFVw?=
 =?utf-8?B?QmJ2SEZUK0pmUVo0djVnTG5VTkJXVUhqT1dBZkc3ZXhJbG0wOCtJNDRRZytC?=
 =?utf-8?B?Y09lRFRrdlN5Z3lNWjNCVi9IMUJRNDBrbXoyZjBaTk5VZFdqQlJtUHlXenp2?=
 =?utf-8?B?OXo4TXJXR2ZDNDl4Z2IxaWl2RkNIc0FTVXhwSDdKYi9TaEs3czNXWkFldllw?=
 =?utf-8?B?SFdwSm9IampORUpjYUJkN3RKQzA2aEJRQzEvS2IwSXdBMEs3TjFPVHNaYUNa?=
 =?utf-8?B?SysxaFZOY1VuU2xremdEYVozWVZKZUJrYVJ0OHlySllGL29SSjVKYkNUNmJa?=
 =?utf-8?B?dFZUUDFSS0Iva1J4QVY1eGhtcGIwWk9GbEpabGV4Y3NIeVhOeXFvWENXbE9P?=
 =?utf-8?B?c0ZVNUF5RjEwVjRsenlYaVJHaDZmMkl5aXdGSXRQM3hhelkvK2ZtU2F5WlVH?=
 =?utf-8?B?dXlnNENhTWNZWi9NTDhVejc4d3NTaUIwd1M5L1FTdkFCU3d6K1ZLdjBzYlRO?=
 =?utf-8?Q?iN8ado54xS0nQRuA=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <7C5DCF010C80164DBF1B196A477DC2B4@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: LV8PR03MB7422.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cd3bf23b-6e60-4561-66b4-08de8eff9654
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 08:29:12.2571
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: LRMdhJq3nA1+fBl/SPy/qJMkTYmLCkp61q5jan5HqgxKB7cJcx+ClFXFajVMaOjvD8RjlC+EHT7PatkODs4fcg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR03MB7130
X-purgate-ID: tlsNG-ef75cf/1774945757-548BC303-CA02BAEF/0/0
X-purgate-type: clean
X-purgate-size: 6020

DQoNCj4gT24gMzEgTWFyIDIwMjYsIGF0IDA3OjU4LCBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz
ZS5jb20+IHdyb3RlOg0KPiANCj4gT24gMzAuMDMuMjAyNiAxODoxNywgRWR3aW4gVMO2csO2ayB3
cm90ZToNCj4+IFVidW50dSAxNi4wNCBpcyBFb0wgb24gMjAyNi0wNC0wMi4NCj4gDQo+IEl0IGdv
aW5nIEVPTCB2ZXJ5IHNvb24gaXMgYSBnb29kIHJlYXNvbjsgaXQgY2F1c2luZyAuLi4NCj4gDQo+
PiBJdCBmYWlscyB0byBidWlsZCB0aGUgZW11bGF0b3IgdGVzdHMsIHByb2JhYmx5IGR1ZSB0byBh
IGJpbnV0aWxzIHRoYXQgaXMgdG9vIG9sZDoNCj4+IA0KPj4gYGBgDQo+PiBnY2MgLW0zMiAtbWFy
Y2g9aTY4NiAtREJVSUxEX0lEIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1zdGQ9Z251OTkgLVdhbGwg
LVdzdHJpY3QtcHJvdG90eXBlcyAtV25vLXVudXNlZC1idXQtc2V0LXZhcmlhYmxlIC1Xbm8tdW51
c2VkLWxvY2FsLXR5cGVkZWZzIC1XZXJyb3IgLU8yIC1mb21pdC1mcmFtZS1wb2ludGVyIC1EX19Y
RU5fSU5URVJGQUNFX1ZFUlNJT05fXz1fX1hFTl9MQVRFU1RfSU5URVJGQUNFX1ZFUlNJT05fXyAt
RF9MQVJHRUZJTEVfU09VUkNFIC1EX0xBUkdFRklMRTY0X1NPVVJDRSAtbW5vLXRscy1kaXJlY3Qt
c2VnLXJlZnMgLWZuby1waWUgLWZuby1leGNlcHRpb25zIC1mbm8tYXN5bmNocm9ub3VzLXVud2lu
ZC10YWJsZXMgLWZmcmVlc3RhbmRpbmcgLW5vc3RkaW5jIC1JL2J1aWxkcy94ZW4tcHJvamVjdC9w
ZW9wbGUvZWR3aW50b3Jvay94ZW4vdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yLy4uLy4uLy4uL3Rv
b2xzL2Zpcm13YXJlL2luY2x1ZGUgLWZuby1zdGFjay1wcm90ZWN0b3IgLWcwIC1EXzE2IC1tcGNs
bXVsIC1tc3NzZTMgLW1wY2xtdWwgLWZmaXhlZC14bW0wIC1PcyAtRFZFQ19TSVpFPTE2IC1jIHNz
c2UzLXBjbG11bC5jDQo+PiAvdG1wL2NjaGhENm41LnM6IEFzc2VtYmxlciBtZXNzYWdlczoNCj4+
IC90bXAvY2NoaEQ2bjUuczoyMDI6IEVycm9yOiBqdW5rIGF0IGVuZCBvZiBsaW5lLCBmaXJzdCB1
bnJlY29nbml6ZWQgY2hhcmFjdGVyIGlzIGB7Jw0KPj4gL3RtcC9jY2hoRDZuNS5zOjIwMzogRXJy
b3I6IGp1bmsgYXQgZW5kIG9mIGxpbmUsIGZpcnN0IHVucmVjb2duaXplZCBjaGFyYWN0ZXIgaXMg
YHsnDQo+PiAvdG1wL2NjaGhENm41LnM6MjA1OiBFcnJvcjoganVuayBhdCBlbmQgb2YgbGluZSwg
Zmlyc3QgdW5yZWNvZ25pemVkIGNoYXJhY3RlciBpcyBgeycNCj4+IGBgYA0KPiANCj4gLi4uIGJ1
aWxkIGlzc3VlcyBpbiB0aGUgdGVzdCBibG9icyBpc24ndC4gVGhlIGhhcm5lc3MgaXMgc3BlY2lm
aWNhbGx5IGFibGUgdG8NCj4gY29wZSB3aXRoIGJsb2IgYnVpbGQgZmFpbHVyZXMuIEFub3RoZXIg
dGhpbmcgd291bGQgYmUgaWYgdGVzdF94ODZfZW11bGF0b3IuYw0KPiBmYWlsZWQgdG8gYnVpbGQg
KGJ1dCBzZWUgYmVsb3cpLg0KDQpUaGUgd2hvbGUgYnVpbGQgcGlwZWxpbmUgZmFpbGVkLCBtYXli
ZSBJIGV4dHJhY3RlZCB0aGUgd3JvbmcgcGFydCBvZiB0aGUgZXJyb3IgbWVzc2FnZS4NCmh0dHBz
Oi8vZ2l0bGFiLmNvbS94ZW4tcHJvamVjdC9wZW9wbGUvZWR3aW50b3Jvay94ZW4vLS9qb2JzLzEz
NjYxMjk2NDkwDQoNClVuZm9ydHVuYXRlbHkgdGhlIG91dHB1dCBpcyB0cnVuY2F0ZWQ6DQpgYGAN
CkpvYidzIGxvZyBleGNlZWRlZCBsaW1pdCBvZiA0MTk0MzA0IGJ5dGVzLg0KSm9iIGV4ZWN1dGlv
biB3aWxsIGNvbnRpbnVlIGJ1dCBubyBtb3JlIG91dHB1dCB3aWxsIGJlIGNvbGxlY3RlZC4NCmBg
YA0KDQpJdCBsb29rcyBsaWtlIEdDQyBhY2NlcHRlZCB0aGUgbWF2eDUxMmRxIGZsYWcsIGJ1dCB0
aGVuIGJpbnV0aWxzIGZhaWxlZCB0byBhc3NlbWJsZSB0aGUgb3V0cHV0Pw0KQWx0aG91Z2ggYXMg
eW91IHNheSBhbm90aGVyIHdheSB0byBhdm9pZCB0aGF0IHdvdWxkIGJlIHRvIGZpeCB0aGUgZ2Fz
IHZlcnNpb24gY2hlY2ssDQptb3JlIG9uIHRoYXQgYmVsb3cuDQoNCj4gDQo+IElzIHRoZSBhYm92
ZSByZXByZXNlbnRhdGl2ZSBvdXRwdXQgYW55d2F5IChpLmUuIGlzIHRoaXMgbm90IHBlcmhhcHMg
aW50ZXJsZWF2ZWQNCj4gb3V0cHV0IGZyb20gYSBwYXJhbGxlbCBidWlsZCk/IHNzc2UzLXBjbG11
bC5jLCBidWlsdCB3aXRoIC1tc3NzZTMgLW1wY2xtdWwgKGkuZS4NCj4gbm8gQVZYNTEyIG9wdGlv
bnMpLCBzaG91bGRuJ3QgcmVhbGx5IGludm9sdmUgYHsnLiBGdXJ0aGVybW9yZSB3ZSBzcGVjaWZp
Y2FsbHkNCj4gaGF2ZSBhIGNoZWNrIGluIHRoZSBNYWtlZmlsZSwgc2tpcHBpbmcgYnVpbGRpbmcg
YWx0b2dldGhlciB3aGVuIGdjYyBhbmQvb3IgZ2FzDQo+IGFyZSB0b28gb2xkLg0KPiANCj4+IFNh
bWUgdGVzdCBwYXNzZXMgb24gVWJ1bnR1IDE4LjA0Lg0KPiANCj4gSGFyZCB0byBiZWxpZXZlIHRo
YXQgdGhlcmUgd291bGRuJ3QgYmUgYXQgbGVhc3Qgc29tZSBmYWlsdXJlcy4gUGVyaGFwcyBzYWlk
DQo+IGNoZWNrIHByZXZlbnRzIHRoZSBhdHRlbXB0IHRvIGJ1aWxkIHRoZSBoYXJuZXNzIHRoZXJl
Pw0KDQpUaGUgcGFzc2luZyBidWlsZCBsb2dzIGFyZSBhdCBodHRwczovL2dpdGxhYi5jb20veGVu
LXByb2plY3QvcGVvcGxlL2Vkd2ludG9yb2sveGVuLy0vam9icy8xMzY2MTI5NjQ5NC92aWV3ZXIN
ClRoZXJlIGFyZSBmYWlsdXJlcyBhYm91dCB1bnJlY29nbmlzZWQgY29tcGlsZXIgZmxhZ3MsIHdo
aWNoIGFyZSBpbmRlZWQgaWdub3JlZDoNCmBgYA0KZ2NjOiBlcnJvcjogdW5yZWNvZ25pemVkIGNv
bW1hbmQgbGluZSBvcHRpb24gJy1tYXZ4NTEyZnAxNic7IGRpZCB5b3UgbWVhbiAnLW1hdng1MTJm
Jz8NCnRlc3RjYXNlLm1rOjE2OiByZWNpcGUgZm9yIHRhcmdldCAnYXZ4NTEyZnAxNi5iaW4nIGZh
aWxlZA0KbWFrZVs3XTogKioqIFthdng1MTJmcDE2LmJpbl0gRXJyb3IgMQ0KYGBgDQoNCj4gDQo+
PiBOb3RlOiB0aGUgbWluaW11bSB2ZXJzaW9uIG9mIGJpbnV0aWxzIG1pZ2h0IGhhdmUgdG8gYmUg
dXBkYXRlZC4NCj4+IFVidW50dSAxNi4wNCBoYWQgdmVyc2lvbiAyLjI2LjEsIHdoaWNoIHNhdGlz
ZmllcyB0aGUgPj0gMi4yNSByZXF1aXJlbWVudA0KPj4gaW4gdGhlIFJFQURNRSwgYW5kIHlldCBp
dCBmYWlsZWQgYXMgc2hvd24gYWJvdmUuDQo+IA0KPiBUaGUgaGFybmVzcyBpcyBzcGVjaWFsLCBh
cyBzYWlkLiBJbW8gd2Ugc2hvdWxkbid0IGJlIHVwZGF0aW5nIHRoZSByZXF1aXJlbWVudHMNCj4g
anVzdCBmb3IgaXQuIElmIGFueXRoaW5nLCB0aGUgbWVudGlvbmVkIGdjYy9nYXMgY2hlY2sgbWF5
IG5lZWQgdXBkYXRpbmcuIHtldmV4fSwNCj4gZm9yIGV4YW1wbGUsIHJlcXVpcmVzIGdhcyAyLjI5
IChpLmUuIGdjYzYgdGltZSBmcmFtZSkuDQoNCkkgdGhpbmsgdGhlIHByb2JsZW0gbWlnaHQgYmUg
dGhhdCB0aGUgY2hlY2tzIGFyZW7igJl0IGRvbmUgZm9yIHRoZSDigJhydW7igJkgdGFyZ2V0ICh3
aGljaCBpcyB3aGF0IEnigJltIGF0dGVtcHRpbmcgdG8gdXNlIGluIHRoZSBDSSk6DQpgYGANCiMg
U3VwcHJlc3MgYnVpbGRpbmcgYnkgZGVmYXVsdCBvZiB0aGUgaGFybmVzcyBpZiB0aGUgY29tcGls
ZXIgY2FuJ3QgZGVhbA0KIyB3aXRoIHNvbWUgb2YgdGhlIGV4dGVuc2lvbnMgdXNlZC4gRG9uJ3Qg
YWx0ZXIgdGhlICJydW4iIHRhcmdldCBkZXBlbmRlbmNpZXMNCiMgdGhvdWdoLCBhcyB0aGlzIHRh
cmdldCBuZWVkcyB0byBiZSBzcGVjaWZpZWQgbWFudWFsbHksIGFuZCB0aGluZ3MgbWF5IHdvcmsN
CiMgcGFydGlhbGx5IGV2ZW4gd2l0aCBvbGRlciBjb21waWxlcnMuDQoNClRBUkdFVC15IDo9ICQo
VEFSR0VUKQ0KDQppZm5lcSAoJChmaWx0ZXItb3V0IHJ1biUgY2xlYW4lIGRpc3RjbGVhbiwkKE1B
S0VDTURHT0FMUykpLCkNCmBgYA0KDQpUaGUgc2ltcGxlc3Qgc29sdXRpb24gaGVyZSB3b3VsZCBi
ZSB0byByZW1vdmUg4oCYcnVuJeKAmSBmcm9tIHRoZSBmaWx0ZXIgcnVsZXMuDQpJZiBpdCBpcyB1
c2VmdWwgSSBjYW4gaW50cm9kdWNlIGFuIGFsaWFzIGZvcmNlLXJ1biwgdGhhdCBjYW4gYmUgdXNl
ZCB0byBtYW51YWxseSB0cnkgdG8gcnVuIGFueXdheSAoYWx0aG91Z2ggdGhhdCBhdHRlbXB0IG1h
eSBpbiB0aGUgZW5kIGZhaWwsIGFzIHdpdGggVWJ1bnR1IDE2LjA0KS4NCldoYXQgZG8geW91IHRo
aW5rPw0KDQpCZXN0IHJlZ2FyZHMsDQrigJRFZHdpbg0KPiBBcyBkb2VzIFZQQ01QRVNUUklRLiBJ
DQo+IHNwZWNpZmljYWxseSBoYXZlIGEgbG9jYWwgcGF0Y2ggdG8gbWFrZSBpdCBwb3NzaWJsZSB0
byBidWlsZCB0aGUgaGFybmVzcyB3aXRoDQo+IHByZS1nY2M3IChJIGRvbid0IGhhdmUgYW55IGdj
YzYgYW55d2hlcmUsIHRvIHRoYXQgYm91bmRhcnkgbWF5IGJlIG9mZiBieSAxKS4gSQ0KPiBkaWRu
J3QgdGhpbmsgdGhpcyBoYWNrZXJ5IHdvdWxkIGJlIGFjY2VwdGFibGUgdXBzdHJlYW0uDQo+IA0K
PiBKYW4NCg0K


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 08:41:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 08:41:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268746.1557956 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Uem-0005U7-Rb; Tue, 31 Mar 2026 08:41:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268746.1557956; Tue, 31 Mar 2026 08:41:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Uem-0005U0-P4; Tue, 31 Mar 2026 08:41:04 +0000
Received: by outflank-mailman (input) for mailman id 1268746;
 Tue, 31 Mar 2026 08:41:04 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper3@citrix.com>) id 1w7Uem-0005Tu-0E
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 08:41:04 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7Uel-00Fjih-1h
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 10:41:03 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69cb8890-e002-0a2a0a5209dd-0a2a450c9a10-24
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:41:02 +0200
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper3@citrix.com>)
 id 69cb889e-f93d-0a2a450c0019-d155802bec64-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:41:02 +0200
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-486507134e4so62287075e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 01:41:02 -0700 (PDT)
Received: from andrew-laptop.home ([2a01:cb15:80df:da00:ec5b:e128:36bf:56b1])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4887e93cf2dsm17613825e9.11.2026.03.31.01.41.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 31 Mar 2026 01:41:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1774946461; x=1775551261; 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=TS8VSazZTzGwbY386Zmn1pdmyaz5X0QAPZsATvifGeY=;
        b=l91yvC5g5T2op+ID4FklrOqhxiWKoYMZESyuJZLttzoeHMpdS2kcE5Uu4xuJ3HM9g8
         6KRgUQ5Lt79x3DouYKSVxLQeJcggATOyRmoW83cNV9kx78C44A4TwznXNZQlblGNEvYT
         0mURhq5tfYOTvXqm1G6HWY3tovbCyzc1MP1bA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774946461; x=1775551261;
        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=TS8VSazZTzGwbY386Zmn1pdmyaz5X0QAPZsATvifGeY=;
        b=YKEaiBgMPldfQVnlsYs3ublizbCwHAINoVa0uhdFKNzaMW9WWRSg2KdIg0dEiHi7Cz
         sO5hjeqH1CfpxBum1O8auS2zSpevAJlk9bRHZdX9ltA20PR4xdsXdcIyvRWCMfZlI6oa
         q/foZBk/9yajJkPrUgDNPrecLUoB8OyzKsncpSKKGbmeXRKKy7pYJLoRULKiyQFuHbeW
         0EAqaoYsoNFROHDWCZ0WfYDJcdAcRSkFAXPYC/BAKPqcg0HoDwCXkaesTM7XBMWVrHmV
         IolIfe4QswV34A2DxvH4qV85whWTtxoWFFAZ9oRfVhe40922QQr9tqzK5fzEvmI2hU88
         2TNw==
X-Gm-Message-State: AOJu0Yyn16SdnN6TA71ZGV6wwAgB5yqjor4UOtjS8Vemb4nir6rXJ7JC
	0di5B+AO9hJ0n0ucUxqWgQsVjJEEiBs0PBkogod5miNmeWbQ9E9P+KbhvKaZ6ZKRbJdGnYUt3yt
	75ACV
X-Gm-Gg: ATEYQzzm6iD784JbFEXBSI7kx8c0KR4eEwEtiIjO90a9aMpTTWGbVD3Sp+rdWv/ofev
	ghIcz4hLCW6C2gUWL+LSpkyK3KOSeeHzJP9lGL8APk7lDVrIhko9jlXNrFKiGdXKQlWTdbtBaH4
	giEHop6NwsQPeBuPdPDZbWUNEOA3i4A3LQLuMvd7EdOXG7B7rg9aHYzdNRrUAMTp0+b6osa+MF6
	8QvTYqhZLaY/x74gY1FjUE7lZhLKJiiXUQsqK8n7klhgT2K09PTtPhzlAQzfAHuRoNgPD/6JsEX
	oKZKenWWCQKVbX9sOEnYWk3Vl4GPuZtQst4zhu5b89j3zimf/nBZvsSvml3r5AP8h3BV0+0kB07
	RQ19lXEIAvFRp2khOszESZqABHkAatgLDgVsgCeGBibCbPW46Bgi1+6aV7VV1O82b2zLEJWjg4w
	5mUSd0bJWPW4kfNb9XHYBlTVLFakMGUREIMbomn9FSd/R0
X-Received: by 2002:a05:600c:3d87:b0:486:5f71:5829 with SMTP id 5b1f17b1804b1-48727d5a307mr258017995e9.5.1774946460702;
        Tue, 31 Mar 2026 01:41:00 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: 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] docs/hypercall-abi: Add a footnote about SYSCALL
Date: Tue, 31 Mar 2026 09:40:59 +0100
Message-Id: <20260331084059.20053-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1774946462-F4EBB734-3AFC7084/0/0
X-purgate-type: clean
X-purgate-size: 1639

Given that we explicitly support guests making hypercalls without the
use of the hypercall page (for CFI and speculative safety reasons), note
explicitly that %rcx/%r11 need preserving/clobbering around SYSCALL.

Reported-by: Jan Beulich <jbeulich@suse.com>
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 avoided mentioning FRED seeing as Xen (now) maintains legacy
behaviour.
---
 docs/guest-guide/x86/hypercall-abi.rst | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/docs/guest-guide/x86/hypercall-abi.rst b/docs/guest-guide/x86/hypercall-abi.rst
index e52ed453bcab..ffcf9b1b6d84 100644
--- a/docs/guest-guide/x86/hypercall-abi.rst
+++ b/docs/guest-guide/x86/hypercall-abi.rst
@@ -62,7 +62,7 @@ between virtualisation mode and hardware vendor.
      - INT 0x82
 
    * - 64bit PV
-     - SYSCALL
+     - SYSCALL [#syscall]_
 
    * - Intel HVM
      - VMCALL
@@ -138,6 +138,10 @@ means.
    kernel, hypercalls issues from such a mode will be interpreted with the
    32bit ABI.  Such a setup is not expected in production scenarios.
 
+.. [#syscall] The ``SYSCALL`` instruction modifies ``%rcx`` and ``%r11``.
+   These registers want spilling or marking as clobbered if invoking the
+   hypercall without the use of the hypercall page.
+
 .. [#iret] ``HYPERCALL_iret`` is special.  It is only implemented for PV
    guests and takes all its parameters on the stack.  This stub should be
    ``jmp``'d to, rather than ``call``'d.  HVM guests have this stub
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 08:52:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 08:52:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268756.1557967 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Upw-0007XB-Se; Tue, 31 Mar 2026 08:52:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268756.1557967; Tue, 31 Mar 2026 08:52:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Upw-0007X4-Om; Tue, 31 Mar 2026 08:52:36 +0000
Received: by outflank-mailman (input) for mailman id 1268756;
 Tue, 31 Mar 2026 08:52:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1w7Upv-0007Wy-Vh
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 08:52:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7Upu-00HHKr-To
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 10:52:34 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69cb8b4b-2eae-0a2a0a5409dd-0a2a450c8a90-30
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:52:34 +0200
Received: from [40.107.208.9]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69cb8b4e-f93d-0a2a450c0019-286bd0094d84-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 10:52:33 +0200
Received: from SA0PR11CA0174.namprd11.prod.outlook.com (2603:10b6:806:1bb::29)
 by BN7PPFB3F5C406F.namprd12.prod.outlook.com
 (2603:10b6:40f:fc02::6e0) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.15; Tue, 31 Mar
 2026 08:52:27 +0000
Received: from SA2PEPF00003F68.namprd04.prod.outlook.com
 (2603:10b6:806:1bb:cafe::d1) by SA0PR11CA0174.outlook.office365.com
 (2603:10b6:806:1bb::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.28 via Frontend Transport; Tue,
 31 Mar 2026 08:52:02 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF00003F68.mail.protection.outlook.com (10.167.248.43) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9745.21 via Frontend Transport; Tue, 31 Mar 2026 08:52:27 +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, 31 Mar
 2026 03:52:27 -0500
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 31 Mar
 2026 03:52:27 -0500
Received: from [10.71.194.215] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 31 Mar 2026 03:52:25 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bZFo1QlH51koLeYxeq1SYGk9slF7fiOw7TtM4ie3WYwK/6MKf1jZyuOu1SzX9It7M5UI8j/mRNoe86ZV3rM8IqIHtjDQFQqitBAx6roBg6WfZr5DQxzF50En/djNHdwIYjnWLYzcDY9gvSOaFPs9Qu55IEbB1TXyGDNvakoRq+tZ8W8DoPexGTQ7qjjP3PzRQn9L4Q62IBK1BtfpOAxEhevZwgTN6+qAXGhlgQ0EwobHWrAjXccfstyzpj61dnjNFfRfrK9KL8wUIkBZ2wJcJSOy4YIPBkSm7y3xSc8bi4ItVct85wPUYxxKimmsQIz9Au24BEf/Tmf+rN/ImxGdxg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=aH6Vs/gC+BRkmRErpIFki4xHhEkEDlyWbKkqon5hdOw=;
 b=jigxZDxGyF8sHFFP2ACpgfBW9b1ChTXMLiMKpqv+5opAuCcdAxjJySr+eiH8PD9uy9nddv/ZHIThM70Bt9tV2eZtLNdFS7yEVEY0KMkKNdk0w6nHO/5Lw9SuHLeVWVGdsiOBZo+hbBeRjpObjfOvDihy+KnSo5rsbem24YSSyTDusHJBGGOnVz6I/89zTp/IUNI+BysP/vJGkYcn5xvpTzmq2cKtScgQ26RBPxhA9x8EjawDHhzuUwvqovypQqtQ/pJbreKKB3Y7tguI8VIhijLb4moR+zP+hmATGu6j0rlZ+nO87wT7PX7e+rX4v1zWdiQgUytVhOtyZG2xADeCzg==
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=aH6Vs/gC+BRkmRErpIFki4xHhEkEDlyWbKkqon5hdOw=;
 b=MMQK6x6vjw72tr7PbA5TOuGnyauhiB1Br+S61skT7oYa57aSb5uGVyWCiuOUO9+Tz4pN0Jie3cIb4/I/+EP+aZqKmESXzfeDOP5cY2dzduJMwzzZXk3SqMJSdBmu1NZ6WYBe9M17kniJB9QH9SRobuWB/nDR5M/L8lkkDfVltko=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <759c3ebb-4282-489d-a18d-0f808853a03b@amd.com>
Date: Tue, 31 Mar 2026 10:52:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v17 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.1774353053.git.mykola_kvach@epam.com>
 <581179709977ce4cebb22597411048dc93b11167.1774353053.git.mykola_kvach@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <581179709977ce4cebb22597411048dc93b11167.1774353053.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003F68:EE_|BN7PPFB3F5C406F:EE_
X-MS-Office365-Filtering-Correlation-Id: b9e4223c-05c0-4b80-6429-08de8f02d5f6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700016|82310400026|7416014|376014|1800799024|22082099003|56012099003|18002099003;
X-Microsoft-Antispam-Message-Info:
	x0cqvHziHsYa0r9qMBdPfQjq4AtZOucIbmTy2TRBMwm1CvGXLv/7/XYFa8SCilQ5+aDLzRkPpXaBgm8qEHdVqIE/pxU7nxfsSO6tg9crMs5Y20viIlsbCkImSz4vxiGZawE3WKbXElatzvrunUhQifNJNaGWUTr9NWRZraziQYMeR712lZNqSVglZA+6/TWYNP/9AnzSTeQUhjW3Z+8dGGdSesSFGm8sdrCD5rB35uzDcTULYaFATAWvAqq3MVdjFwGvA7SCm/d6fPjAK7togl0NfPxLYJ0V0uIwNYYtqQyLzqxxcAoZOiX5STX3aJxCe+9AyWQgXzK+zh8DGOIS2B6Q7pbzMOcyhpfO6aj1JG5r8u8JOhos6RQKtqWxgqnpM77FVz4HzoKygLepRv96BGaDEU+uuJ6vwy6y/9PAV5UV9UMWqDJuDDaswjLGh8M082HFxN8PhZ9ae52Z47YkPm6s6nBYiGdy1H3nwDqkZBLPUEq9TwjKuXUnmxyQZxH2szdMptVfG6DEe5SbWo2JQiir7mNN8r3StPCRRB0v6J3Fz429BcJVN8yJQnWUJO2YWIO8WQzIVEFJd+iq8oEUZMA1ld5fIHwt4CCPuAurdV2Pw767csGMV5GBzeqieS/y6848O1DkW7TC4vUktpzoPlOZKDrg7n5JJWbeBw3NWajSvj+1qbdfhEkv4JY6kwUq72D18esNADnZXrFEJRs+wxreTXWEPb6Wakrcp3t+JzMjGfQd9Wb9mvYfFApTB8RMXLtKP8i8EuVzsjat8LJK0Q==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(82310400026)(7416014)(376014)(1800799024)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	3bqOZz6++FuT5tyJWTUB112M+BQGUPDNomG5ftdEjGeaEyu6jvBiMnbVgajoLdPGwQfxFIgULHox/MQ4M31sWQ50/atVsFBZS4ztYut79yX4XIz67Hg/p5lTZEdUKOnj9LTM/KCrFaBh7xRJnDzFWmHosEUhxskWay6xLkQ6/kW15dgVBgmL9N1erQQmTHUa1HLIbJv8gsv54FsGdHvNgPqA9chLQGqpE9TIGtV+byU04ZV+GnQfE5tZZuD2nlGxeaZLDIbA/yZ3yHS1h84bO91nk4eGCqMejs78wqsms5H6/b3S6XsfXPLOmOZLZiYOyUQvBUErPETsk6IdCj0K/FcmZjiO/uCSS73MB6WGQvddiRcBsMAs92Pt1eL0HLWb3cdWjoUQb6R6eD12OesqB7EqOa+5kCQ9SY3FRMFfcN5TOH6gV4g2yU0ztoeQASOy
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2026 08:52:27.4962
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b9e4223c-05c0-4b80-6429-08de8f02d5f6
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00003F68.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PPFB3F5C406F
X-purgate-ID: tlsNG-d25034/1774947154-F56B7734-589197D8/0/0
X-purgate-type: clean
X-purgate-size: 1391



On 24/03/2026 13:26, 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
> - Reject SYSTEM_SUSPEND for the hardware domain to avoid host shutdown
> - Require all secondary VCPUs to be offline before suspend
> - Split arch_set_info_guest() into arch_vcpu_validate_guest_context() and
>   arch_vcpu_apply_guest_context() for reuse by vPSCI
> - Add vpsci_build_guest_context() helper and store prevalidated context in
>   resume_ctx; resume applies it and frees it
> - Add 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.
> 
> Usage:
> 
> For Linux-based guests, suspend can be initiated with:
>     echo mem > /sys/power/state
> or via:
>     systemctl suspend
> 
> Resume from control domain:
>       xl resume <domain>
> 
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

I'll do the change Jan mentioned on commit.

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 09:01:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 09:01:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268774.1557974 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7UyN-0001FT-OP; Tue, 31 Mar 2026 09:01:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268774.1557974; Tue, 31 Mar 2026 09:01: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 1w7UyN-0001FM-Lf; Tue, 31 Mar 2026 09:01:19 +0000
Received: by outflank-mailman (input) for mailman id 1268774;
 Tue, 31 Mar 2026 09:01:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7UyM-0001FG-0T
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 09:01:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7UyL-00Fp44-CF
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 11:01:17 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69cb8d5c-2eae-0a2a0a5409dd-0a2a450ac4c2-4
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 11:01:17 +0200
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69cb8d5d-1772-0a2a450a0019-d1558036bd46-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 11:01:17 +0200
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-486ff201041so53630165e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 02:01:17 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4887ad3fb99sm13444945e9.6.2026.03.31.02.01.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 02:01:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774947676; x=1775552476; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nxmxFbfU6XwFZJzhsPwSIQ70deXlJplSrRzvMRe9gn8=;
        b=PAbS5E8Ews1jO1eV0mgxVXOsfnXhlKpTC/yxqUH6xaC3u5QoggCoNwdFyJRPx+l9BQ
         jB4kL3va12niIxmh9TuBNw6SwDTr/75lgPAClh1w3F8clvy+dHbLLqcfM1kGGo6mh4ks
         eK6Z8sWpZZonc6e4DA/vcEf3V7KW3oR6RjAHAexZoiDQn349lADRP10XShwnpYbJDmnC
         CoQ1Vvnc7WE/RdoGlQZTgi24mHh+2LOvSdmyl02wM/cQsL/J+la7/P/F42F5r5yMCmRW
         6r9XwyyCJ3h9yerVjzf69uK4TlvmuFEjc7UryTgdHmHAdBabArjMpW0mxuDoRBPf9g9j
         YKHQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774947676; x=1775552476;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nxmxFbfU6XwFZJzhsPwSIQ70deXlJplSrRzvMRe9gn8=;
        b=CGgtKKcVnbDJJWorx0UoRFxE94qLdgiJTfghWY9VNWamimcyx2j4PqpWK6sN3Heqh7
         eRM83pasbHS6yN/bUCq9ckIWZwohkUG2sSnQIn8N3us8W0tv0QSMrYMs68vTGkmJZX09
         4+LYtGIqvnZn1enjDT9GDhh7UeW9dM704/bkFENA0VOcA6+Na0hhiXY3qkmYDXUUzAOm
         BdcuoAC87cSUBZUonQ426RWIy4tMRZg/WQxYPaI6TA1RbRpWVBgiPI+R++SIjHrQTA6a
         0pmZTtC1J8P++f8WU//oLYnprzE6LspZx2dZgPnLuuqDAXfmVw0VUVg+NRmhMlrJzmI6
         TvFg==
X-Forwarded-Encrypted: i=1; AJvYcCUryaEjoilHWI3ChzQOIz2MJ4fgkCZGTd81FfslmhOwTGwjagoTFjM9KuwazvKYYKK566OkgT1LzuE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxyVTOuufUq38wZTEA6bUTqosyRIw5OT+29sHso4dxnogUNkGdh
	0XLPz/VmH2NWSBR1aEwAUDw+jbdC85JXRL0YQ8vArVGkHZiFUfyki88YSQJZgnHibilMpcQ1iut
	6b7g/Bw==
X-Gm-Gg: ATEYQzwyZcvVH5wf3daPzK3U10APehw38H5A1H3ltDZLMOnLMoPNYakkQc5CsqMzfwv
	gyu3SOBZWmbBGoE7PcsTWRWSUQtef4l1ZD2XhPxRoKcLW0uVvs0ds3cbDtzpFD9YXgIao+i4OIG
	zXud++SX0160q5633hkADSIHlQlgsmli37SJXRb+yuTsBy6UeVxkHIUkyFTO7GmEpmwLqo2Rf/X
	Fz2sAoDPxPXVDLiDs59L8sfLK4HzjQlOzf1EJhQgGE8IgLVufYl0iSmUdHxIW6g2TUGhWC+LOFB
	Zksp7+kRogpJXWIX7dpYbmwChgHG5KUQbn8cK7NteR2PlXtiKKSNAXT9JvbaqB+a7h8hbhyPwtp
	Az61jfUxHa+mmBCRqEYjhBbR2Zc8auLKrqQIgmnzvOXcKYxJcg5gWAWb9nyCNyWdOlf6jmtx4B4
	5B0zmc6Rv0xr/AOq/TY91yiLssji9F9u++G47vnq7D5SayPH4Wbw/b2bW8vKkTkBy0RJwIi0O92
	Ikzzz9npXv034g=
X-Received: by 2002:a05:600c:c113:b0:487:1114:d431 with SMTP id 5b1f17b1804b1-48727ec3c36mr199355465e9.18.1774947676433;
        Tue, 31 Mar 2026 02:01:16 -0700 (PDT)
Message-ID: <b9600744-026f-4a18-ada7-8e8a2b956778@suse.com>
Date: Tue, 31 Mar 2026 11:01:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/5] CI: drop Ubuntu 16.04
To: Edwin Torok <edwin.torok@citrix.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1774886602.git.edwin.torok@citrix.com>
 <587eb0701db6e5852e9628d0cb9db90250424c4a.1774886602.git.edwin.torok@citrix.com>
 <a49f9840-7b8b-46a1-b171-ad0e81da7455@suse.com>
 <F51598F5-FFC7-49A5-9BF1-4AAC004036F1@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <F51598F5-FFC7-49A5-9BF1-4AAC004036F1@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1774947677-52892900-6C123C68/0/0
X-purgate-type: clean
X-purgate-size: 4638

On 31.03.2026 10:29, Edwin Torok wrote:
> 
> 
>> On 31 Mar 2026, at 07:58, Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 30.03.2026 18:17, Edwin Török wrote:
>>> Ubuntu 16.04 is EoL on 2026-04-02.
>>
>> It going EOL very soon is a good reason; it causing ...
>>
>>> It fails to build the emulator tests, probably due to a binutils that is too old:
>>>
>>> ```
>>> gcc -m32 -march=i686 -DBUILD_ID -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wno-unused-but-set-variable -Wno-unused-local-typedefs -Werror -O2 -fomit-frame-pointer -D__XEN_INTERFACE_VERSION__=__XEN_LATEST_INTERFACE_VERSION__ -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -mno-tls-direct-seg-refs -fno-pie -fno-exceptions -fno-asynchronous-unwind-tables -ffreestanding -nostdinc -I/builds/xen-project/people/edwintorok/xen/tools/tests/x86_emulator/../../../tools/firmware/include -fno-stack-protector -g0 -D_16 -mpclmul -mssse3 -mpclmul -ffixed-xmm0 -Os -DVEC_SIZE=16 -c ssse3-pclmul.c
>>> /tmp/cchhD6n5.s: Assembler messages:
>>> /tmp/cchhD6n5.s:202: Error: junk at end of line, first unrecognized character is `{'
>>> /tmp/cchhD6n5.s:203: Error: junk at end of line, first unrecognized character is `{'
>>> /tmp/cchhD6n5.s:205: Error: junk at end of line, first unrecognized character is `{'
>>> ```
>>
>> ... build issues in the test blobs isn't. The harness is specifically able to
>> cope with blob build failures. Another thing would be if test_x86_emulator.c
>> failed to build (but see below).
> 
> The whole build pipeline failed, maybe I extracted the wrong part of the error message.
> https://gitlab.com/xen-project/people/edwintorok/xen/-/jobs/13661296490
> 
> Unfortunately the output is truncated:
> ```
> Job's log exceeded limit of 4194304 bytes.
> Job execution will continue but no more output will be collected.
> ```

With that we of course can't find out what's wrong.

> It looks like GCC accepted the mavx512dq flag, but then binutils failed to assemble the output?

But -mavx512dq would be passed only when building blobs, which ...

> Although as you say another way to avoid that would be to fix the gas version check,
> more on that below.
> 
>>
>> Is the above representative output anyway (i.e. is this not perhaps interleaved
>> output from a parallel build)? ssse3-pclmul.c, built with -mssse3 -mpclmul (i.e.
>> no AVX512 options), shouldn't really involve `{'. Furthermore we specifically
>> have a check in the Makefile, skipping building altogether when gcc and/or gas
>> are too old.
>>
>>> Same test passes on Ubuntu 18.04.
>>
>> Hard to believe that there wouldn't be at least some failures. Perhaps said
>> check prevents the attempt to build the harness there?
> 
> The passing build logs are at https://gitlab.com/xen-project/people/edwintorok/xen/-/jobs/13661296494/viewer
> There are failures about unrecognised compiler flags, which are indeed ignored:
> ```
> gcc: error: unrecognized command line option '-mavx512fp16'; did you mean '-mavx512f'?
> testcase.mk:16: recipe for target 'avx512fp16.bin' failed
> make[7]: *** [avx512fp16.bin] Error 1
> ```

... is tolerated to fail.

>>> Note: the minimum version of binutils might have to be updated.
>>> Ubuntu 16.04 had version 2.26.1, which satisfies the >= 2.25 requirement
>>> in the README, and yet it failed as shown above.
>>
>> The harness is special, as said. Imo we shouldn't be updating the requirements
>> just for it. If anything, the mentioned gcc/gas check may need updating. {evex},
>> for example, requires gas 2.29 (i.e. gcc6 time frame).
> 
> I think the problem might be that the checks aren’t done for the ‘run’ target (which is what I’m attempting to use in the CI):
> ```
> # Suppress building by default of the harness if the compiler can't deal
> # with some of the extensions used. Don't alter the "run" target dependencies
> # though, as this target needs to be specified manually, and things may work
> # partially even with older compilers.
> 
> TARGET-y := $(TARGET)
> 
> ifneq ($(filter-out run% clean% distclean,$(MAKECMDGOALS)),)
> ```
> 
> The simplest solution here would be to remove ‘run%’ from the filter rules.

No, as said elsewhere, run% being different is intentional.

> If it is useful I can introduce an alias force-run, that can be used to manually try to run anyway (although that attempt may in the end fail, as with Ubuntu 16.04).
> What do you think?

Maybe. Or maybe we should have "check" targets alongside the "run" ones,
being aliases of one another perhaps for everything but the emulator
harness?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 09:18:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 09:18:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268786.1557984 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7VEv-0003Qu-TM; Tue, 31 Mar 2026 09:18:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268786.1557984; Tue, 31 Mar 2026 09:18: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 1w7VEv-0003Qn-Qh; Tue, 31 Mar 2026 09:18:25 +0000
Received: by outflank-mailman (input) for mailman id 1268786;
 Tue, 31 Mar 2026 09:18:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7VEu-0003Qh-5R
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 09:18:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7VEt-006leb-H8
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 11:18:23 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69cb914d-5cb7-0a2a0a5109dd-0a2a4506cd66-22
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 11:18:23 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69cb915f-3034-0a2a45060019-d1558033b113-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 11:18:23 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-4870206f73bso33607175e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 02:18:23 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf21f173dsm29352616f8f.15.2026.03.31.02.18.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 02:18:22 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774948703; x=1775553503; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Oae1aM5KHM553oDKw2AgHIwEz7/gxAgSy8DAWt12xNk=;
        b=TOBpJTEm3yxwx79uu+GVLxYwRT91BrTsgoooIVXLZnia4RQLuQfnDF75g04yyZGV2h
         jD7P7gb8ZVhl+ffRFL9va8RlR+tGaW8lpVSJxoDPLacZTKmpbdCG5gGA1xWSML37UkpP
         C7g3/TYBGOhjf/79GjxeF/NA9TIypXP8lBCBsh6LpPEpUljg9qP+yBEl5GcobFuLSkTI
         7TdAzt1ophlU5jgSqxBByv5wGcDIIi42aHkFHxa41rEubwEFmAvVP8QbMgj/hD2oNLo3
         zc7d3gkjtt2n24t7eqbvvMQeC9ZKlYX622aqnVw+UpcHSD52B+YY1PsNi67xbEvRdZ8C
         r+RQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774948703; x=1775553503;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Oae1aM5KHM553oDKw2AgHIwEz7/gxAgSy8DAWt12xNk=;
        b=k9JPyjtnvw2ExFNnQxjKhHTFCP33yo7xMfupeuoF2OcB0/OW15gat/tnis/W4IXt3k
         QPgfqNLEeu25eZy/X4zeuJ/pJmTefgqCW3K5Hr9ENUXymnuYQrImuxB3JrjlevlCdQPD
         IGRjU2cOE3ud2Ca/45uDQBCbAzM8p70kobu83yUPxwfNDJeiwKgyzi9L5GDnsdrt+r/7
         c4A2r+n4Q9uMN26Oy1BfihV3F5ITxUWe4HmeG2DBxg4kyFbbL8qkrIKvnQG04ha5NEeu
         PPa5ggOwGylhh40sslY9UQXCAFt2JackR235pmOc9C8JYCFpZHmGZJ/pgWvAG4hWDT/c
         ScJw==
X-Forwarded-Encrypted: i=1; AJvYcCU4jfsoHqJf628C75qwuCRX+0lbz7kGYdFW71ZRc5XEbz5saxSxyFDXQMtWAJn97xetwdb8kioQvYU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwBIpHBds4KmWQlc6LgLUATd4/mnuz/cFZ4oQZXp2l0q0KWEvRy
	aBZNItrePOzkTTMWMHfxzOgYhWeYYkDAKZulsV5QqRLFIdCbcatUNOVTUTc1nDs9D6o+xfqf0rS
	lTaD6LA==
X-Gm-Gg: ATEYQzx8EgYqkD0qdq6PpSOGdRR07YE4vjUjnm+paWvqcKVt6dy9Js0JhEAHrTHCQay
	ruuDZbf9ctKjcHt+v1cbJP76ppDnQXM0dOHsWLH8RHYKxMYvO3a0LBEyGDhiDOmMGCXwl6MDr9W
	Hw2oTQZFNI4khLpYSQDccU8TH6AjBLKshgM+8KP3En0izYmVFdgOi3Pym0go9S85mHbhvv42SD3
	e8kZisgsKDqaiFHsXt19X2Sg29FEzNix1BNCUkIrAk4qcaID47gfogaiu0NbYzawj1rzBX/92mC
	e7/5ZcTlOaWtWIsu+mqJx63SXAX0G4Rqln1wTzQujuJQWbFkRP2ds2SlkEZV8lyw4FGhMQfcVc+
	N2vlk0abbTCggJQrFFTWm4IsqWovdr3mG6mqfflZjK5FgMLy5/YGjcDHrtfDohVslwg6Lyr0EjU
	MmgKrHDYaSuurlA3Cwk5DnhQSLwhBV6kbSGLnKK7OZLauZCrMp037mm6HHAezTEbkOSIY2t4VP3
	1tliDK/gMbOSVo=
X-Received: by 2002:a05:600c:5249:b0:487:386:3714 with SMTP id 5b1f17b1804b1-48727f7bb08mr287638315e9.17.1774948702803;
        Tue, 31 Mar 2026 02:18:22 -0700 (PDT)
Message-ID: <70dea46e-5045-4032-b6a7-b92427000978@suse.com>
Date: Tue, 31 Mar 2026 11:18:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] docs/hypercall-abi: Add a footnote about SYSCALL
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
References: <20260331084059.20053-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: <20260331084059.20053-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-16d1c6/1774948703-823921C2-2540E8FC/0/0
X-purgate-type: clean
X-purgate-size: 937

On 31.03.2026 10:40, Andrew Cooper wrote:
> @@ -138,6 +138,10 @@ means.
>     kernel, hypercalls issues from such a mode will be interpreted with the
>     32bit ABI.  Such a setup is not expected in production scenarios.
>  
> +.. [#syscall] The ``SYSCALL`` instruction modifies ``%rcx`` and ``%r11``.
> +   These registers want spilling or marking as clobbered if invoking the
> +   hypercall without the use of the hypercall page.

For most hypercalls this is sufficient, but ...

>  .. [#iret] ``HYPERCALL_iret`` is special.  It is only implemented for PV
>     guests and takes all its parameters on the stack.  This stub should be
>     ``jmp``'d to, rather than ``call``'d.  HVM guests have this stub

... for this one merely marking as clobbered isn't an option, aiui. It needs
the two registers put on the stack, and in a specific order. At least as long
as VGCF_in_syscall is clear in the stack frame.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 09:22:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 09:22:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268796.1557993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7VJI-0004wq-F2; Tue, 31 Mar 2026 09:22:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268796.1557993; Tue, 31 Mar 2026 09:22:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7VJI-0004wj-BE; Tue, 31 Mar 2026 09:22:56 +0000
Received: by outflank-mailman (input) for mailman id 1268796;
 Tue, 31 Mar 2026 09:22:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w7VJH-0004wd-CL
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 09:22:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7VJG-00FtqS-Kd
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 11:22:54 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69cb9237-5cb7-0a2a0a5109dd-0a2a4502d44c-48
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 11:22:54 +0200
Received: from [209.85.167.43] (helo=mail-lf1-f43.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69cb926e-63bb-0a2a45020019-d155a72badae-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 11:22:54 +0200
Received: by mail-lf1-f43.google.com with SMTP id
 2adb3069b0e04-5a2beddab48so332777e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 02:22:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version"
ARC-Seal: i=1; a=rsa-sha256; t=1774948974; cv=none;
        d=google.com; s=arc-20240605;
        b=S+KzXaWv7MpKqFUHlbDukjm3bgLrbJ2w24/ACWz5eAuuSku/3yjo+CC+aO4QkrTGZ5
         +vRb9Cp8Y6GudAeQlFw7Fu3qfTYzB5dMgEv+6hPIEyQS8vou3Pgyevbfoh6v04dTW4nT
         /5zAvY7WGFq7IcROhqvOfNtzhIVt0Y1wO4SjfQ+hpRyWcbNlOeRIU6+WlubB6ld329dQ
         CFJEy7LoHI7Qt5k9yQbUfzkB36NlDOjQlPEvbCLWgkepQamdzZT3evHbL8dA/TmD0ad5
         JFR9uYqKnZ4o3LmoZ1uOf5J8rrWnDgPYCc2KNMDve0zB1Lx8UYP47Hx+FrWXS15xHCvy
         zylQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=HH8nGTmv9aJD+zEWW9cyBJtLtU+zFivyeHZiC0SYTmk=;
        fh=XPwOTaEPrdk2pN2RgjfihMkJ4NQu8t1nAUIywJrC5RY=;
        b=XHivl5oNS4EguZSIMD7yY1lsKg1ijHtluqH4ynlNvEqnKHr0mEDWXZ6CBRZy6zHMsc
         +kSAe0MOwKWabcxL9QEkdaLhSkP1vUDNZrznrnimeik4BlJnLFg2h2Akm/Xw7PSiHQhv
         xLBWsjqHhGO938LZQ7zJGXQM254JhpbXhVyKp2mNDAspN+CBf2SnqKouKYq8A4E+uUkq
         /4fdIIhs96i7QiBrn/cocUGJKsRIbm0PU9W6QLlPK3sXzNkPZciNVjdIcCJ8zq0Gkya0
         loIrDmP6HIQjVTtSTxIGgtKjJ33ccQ0AELIzpONK4W5EAoQn6/PWM7M0yNSPCZ4RjRUF
         hCYw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774948974; x=1775553774; 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=HH8nGTmv9aJD+zEWW9cyBJtLtU+zFivyeHZiC0SYTmk=;
        b=cFv3fE/vHFDD6L33GIB/TLrN/rY3t8MN/urGpx7f1hHdxWr/nQUb9R2PaTvYpqAair
         vj5wwVCB1YX+G4zrqUMfc+WwsuCBDvtpYlfE9YWJzffH67U61fUE87vzvB0Ar38f04pg
         Gcqem3jZWso2uWaj2pxqqJxuLh2s0a+WhJbFOcdxc/XYdD+tqgN+dncTDbGu+2TwKrk4
         Ey+htYUIvrFQH6eLDFsDuxj/8/HWSrbnX3BoPSsM0AMd596SVS3CrGlLCU+mB2aBrzww
         H0FG1s08CWR4YO9cm1pJx/e9gr3m9hPBppEL1ViGbXIisAzH3U8evwuKWWT82j5Zn7g8
         z/aw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774948974; x=1775553774;
        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=HH8nGTmv9aJD+zEWW9cyBJtLtU+zFivyeHZiC0SYTmk=;
        b=CQOze3ljqZ1zmy77VfHZKBJ4wl8mcQTNomNXfC8VsUs0Oa9GjfWtvsEOjF4VWXFhRo
         kTZuBKXL+m0YfTXzOAgN4goW5HESfReqPZRAjZHbUGI+pkX4lxRc8bwL0YLYpVXERImt
         SC9AmIpxjEku3cTToMpKq6wlCbTmV2JUEwpKDjnzhBvlhEze8rEcnFaraKXJWsZBC70k
         JgBWnfv3QRcUrYgWRkhmY02l+LXBiwhqSI/HjB4US+BIDapnjLN9qRhCTnh03CTObIFH
         y2Da4yWKwNQkmRRdijLE/TNaVPbl4Ik7JlIgHTORswSpiyhMUXbWyzLYtMC4pvy6nMY3
         oUrg==
X-Gm-Message-State: AOJu0YyDTdnC22uas2eSXPb5NzoCpe7Doanytv5NY7FpChxv3+XvoAmR
	yXn3rR+09j2lWNXrjT6DrzZCtk3YyZ6t9VJToMw/Lk/uUfHEo0wvkHc1e/kMvzKIoS+HGFV7kTJ
	ocsFbx1QI1CJvKYXm5jKZL52R2M4TCsA=
X-Gm-Gg: ATEYQzxOAwx78/jFpoy1/oNOJKZvNSQjRCVBbQhBTwoJP2i4Sgt3wiUFzynzyrO2XSj
	amnweIQGhAickpxnIHfYitZnz6FIr3JC6xk0R9dXwbNyCARM6gatIyg0QyloAgUs8uQHHdLw8zk
	bsgH0vbPuvqhJ5DDX2mTXyWlBFITNbmWarDCCBJxHAvM/mKh7VY3ChS80PDhvvwQfzonZe7ahcx
	4MJ1Bye1lt9qurSlhb3okpaxTWGLNhjUcRJGOW/b8yfIPgsFIG6zLM/NhG1UP0YRA7QrIbvRQ2A
	hEZM
X-Received: by 2002:a05:6512:3a8f:b0:5a2:b90d:9bb5 with SMTP id
 2adb3069b0e04-5a2b90da5dbmr1395103e87.29.1774948973466; Tue, 31 Mar 2026
 02:22:53 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1774353053.git.mykola_kvach@epam.com> <581179709977ce4cebb22597411048dc93b11167.1774353053.git.mykola_kvach@epam.com>
 <759c3ebb-4282-489d-a18d-0f808853a03b@amd.com>
In-Reply-To: <759c3ebb-4282-489d-a18d-0f808853a03b@amd.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 31 Mar 2026 12:22:42 +0300
X-Gm-Features: AQROBzD-LVxk39Kkdj1cncgp7ucO94kGs6B5ukhQL4r-J5pysfGB6dRTa0sWOw4
Message-ID: <CAGeoDV9=0D3ZkP3FeP5mh2tJ_=dMyPvwM6x7bJ_uBd-_ZpsoDg@mail.gmail.com>
Subject: Re: [PATCH v17 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
X-purgate-ID: tlsNG-720697/1774948974-43A8CDB8-50235AA0/0/0
X-purgate-type: clean
X-purgate-size: 1680

Hi Michal,

On Tue, Mar 31, 2026 at 11:52=E2=80=AFAM Orzel, Michal <michal.orzel@amd.co=
m> wrote:
>
>
>
> On 24/03/2026 13:26, 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
> > - Reject SYSTEM_SUSPEND for the hardware domain to avoid host shutdown
> > - Require all secondary VCPUs to be offline before suspend
> > - Split arch_set_info_guest() into arch_vcpu_validate_guest_context() a=
nd
> >   arch_vcpu_apply_guest_context() for reuse by vPSCI
> > - Add vpsci_build_guest_context() helper and store prevalidated context=
 in
> >   resume_ctx; resume applies it and frees it
> > - Add arch_domain_resume() function is an architecture-specific hook th=
at
> >   is invoked during domain resume to perform any necessary setup or
> >   restoration steps required by the platform.
> >
> > Usage:
> >
> > For Linux-based guests, suspend can be initiated with:
> >     echo mem > /sys/power/state
> > or via:
> >     systemctl suspend
> >
> > Resume from control domain:
> >       xl resume <domain>
> >
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
>
> I'll do the change Jan mentioned on commit.

Thanks for the review and for taking care of Jan's suggested change.


Best regards,
Mykola

>
> ~Michal
>


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 09:42:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 09:42:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268807.1558002 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7VcA-00080d-UX; Tue, 31 Mar 2026 09:42:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268807.1558002; Tue, 31 Mar 2026 09:42: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 1w7VcA-00080W-RL; Tue, 31 Mar 2026 09:42:26 +0000
Received: by outflank-mailman (input) for mailman id 1268807;
 Tue, 31 Mar 2026 09:42:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <bounce-md_30504962.69cb96fe.v1-52638ce042e943f3823308eb28947edd@bounce.vates.tech>)
 id 1w7Vc8-00080Q-N6
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 09:42:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7Vc6-00EVxg-B7
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 11:42:23 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from
 <bounce-md_30504962.69cb96fe.v1-52638ce042e943f3823308eb28947edd@bounce.vates.tech>)
 id 69cb96f6-bab6-0a2a0a5309dd-0a2a4506ad36-18
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 11:42:23 +0200
Received: from [198.2.132.14] (helo=mail132-14.atl131.mandrillapp.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from
 <bounce-md_30504962.69cb96fe.v1-52638ce042e943f3823308eb28947edd@bounce.vates.tech>)
 id 69cb96fe-3034-0a2a45060019-c602840e8b19-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 11:42:23 +0200
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-14.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4flNSZ2Hqdz8XS1gG
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 09:42:22 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 52638ce042e943f3823308eb28947edd; Tue, 31 Mar 2026 09:42:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=mte1 header.d=mandrillapp.com header.i="@mandrillapp.com" header.h="From:Subject:Message-Id:To:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"; dkim=pass header.s=mte1 header.d=vates.tech header.i="teddy.astie@vates.tech" header.h="From:Subject:Message-Id:To:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1774950142; x=1775220142;
	bh=3QgvblZRN6364QSNdN+5EIl2FiHO33eGJxLYGl+92ks=;
	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=Bq7yUCFM20kCL6CPQJXf611Un+GYwgGR5ewS4M2DIEZwvof3LGMpO3PCjY3YyExxy
	 kmmiTHcMw13gmlGN5uX82wB6H+GqKBFcW+DB48AnlQ4fZE4IIHAT2dFLOuT81i0dML
	 sh5EUEka6mzEOEZZNUGqgZ2GpDNU7PBC/5uZMijvsEIVVlzxI4BP9DFEjMy4Dq+Pf4
	 4KgX4DOSErbuyp2HoD4iZazXKwCkPhm3dyg0ZFYE9IVYqZvcwJpPGd24mWHC9TG8YV
	 Cx1E5mOIGFTzBQ8tSCb228J/MT6ZathvYbqsuy6q9Pn6TaP57HDaqVEsSwHlmn2pn4
	 faow1I7tVh8pw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1774950142; x=1775210642; i=teddy.astie@vates.tech;
	bh=3QgvblZRN6364QSNdN+5EIl2FiHO33eGJxLYGl+92ks=;
	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=Bkj9YPnV0mnLac8LZvCOR926I4LR5uj7ZVUiphokpu1hDmgiCjvRdrL1qxKVn69Oy
	 dS4mQk3B8EWV3+dsvX4D7tKPnYtRZcdBmdZ7xYB+HDAK6J7G4cMiXbu0iJXL2auGPo
	 nmhiWyhHYJvKiUkYFXNX2BZ/tSUC7jd7yOBGsAU8++5QoP16R9ARUhPbpi5U5CHR9x
	 xUTcDRFTlMqOw6+X4eSekQoSlgIUl3+oWSWPug5iGUPL44F1uC7Km0/V/pZ3h0uh0N
	 3c9a1QItU/aRSh4y5bxxepXp5K24FZgZMfWfAPhbTcygTKiHTmE+gtaFdNzWQZgYrV
	 eZSvinDiyAgmQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20Why=20memory=20lending=20is=20needed=20for=20GPU=20acceleration?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1774950140736
Message-Id: <1de15ce0-9f7e-4253-80a7-ecd94caa4325@vates.tech>
To: "Val Packett" <val@invisiblethingslab.com>, "Demi Marie Obenour" <demiobenour@gmail.com>, "Xen developer discussion" <xen-devel@lists.xenproject.org>, dri-devel@lists.freedesktop.org, linux-mm@kvack.org, "Ariadne Conill" <ariadne@ariadne.space>
References: <84462c4b-7813-4ad1-aeb2-862ae4f3a627@gmail.com> <c38387fe-beef-4f50-b928-74f96b881b7a@gmail.com> <0bbf0349-1006-485f-a2db-6c8b795b4242@invisiblethingslab.com>
In-Reply-To: <0bbf0349-1006-485f-a2db-6c8b795b4242@invisiblethingslab.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.52638ce042e943f3823308eb28947edd?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260331:md
Date: Tue, 31 Mar 2026 09:42:22 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-16d1c6/1774950143-7BE9E1C2-521428B3/0/0
X-purgate-type: clean
X-purgate-size: 8803

Le 30/03/2026 =C3=A0 22:13, Val Packett a =C3=A9crit=C2=A0:
> Hi,
> 
> On 3/29/26 2:32 PM, Demi Marie Obenour wrote:
>> On 3/24/26 10:17, Demi Marie Obenour wrote:
>>> Here is a proposed design document for supporting mapping GPU VRAM
>>> and/or file-backed memory into other domains.=C2=A0 It's not in the for=
m of
>>> a patch because the leading + characters would just make it harder to
>>> read for no particular gain, and because this is still RFC right now.
>>> Once it is ready to merge, I'll send a proper patch.=C2=A0 Nevertheless=
,
>>> you can consider this to be
>>>
>>> Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
>>>
>>> This approach is very different from the "frontend-allocates"
>>> approach used elsewhere in Xen.=C2=A0 It is very much Linux-centric,
>>> rather than Xen-centric.=C2=A0 In fact, MMU notifiers were invented for
>>> KVM, and this approach is exactly the same as the one KVM implements.
>>> However, to the best of my understanding, the design described here is
>>> the only viable one.=C2=A0 Linux MM and GPU drivers require it, and cha=
nges
>>> to either to relax this requirement will not be accepted upstream.
>> Teddy Astie (CCd) proposed a couple of alternatives on Matrix:
>>
>> 1. Create dma-bufs for guest pages and import them into the host.
>>
>> =C2=A0=C2=A0=C2=A0 This is a win not only for Xen, but also for KVM.=C2=
=A0 Right now, shared
>> =C2=A0=C2=A0=C2=A0 (CPU) memory buffers must be copied from the guest to=
 the host,
>> =C2=A0=C2=A0=C2=A0 which is pointless.=C2=A0 So fixing that is a good th=
ing!=C2=A0 That said,
>> =C2=A0=C2=A0=C2=A0 I'm still concerned about triggering GPU driver code-=
paths that
>> =C2=A0=C2=A0=C2=A0 are not tested on bare metal.
> 
> To expand on this: the reason cross-domain Wayland proxies have been 
> doing this SHM copy dance was a deficiency in Linux UAPI. Basically, 
> applications allocate shared memory using local mechanisms like memfd 
> (and good old unlink-of-regular-file, ugh) which weren't compatible with 
> cross-VM sharing. However udmabuf should basically solve it, at least 
> for memfds. (I haven't yet investigated what happens with "unlinked 
> regular files" yet but I don't expect anything good there, welp.)
> 
> But I have landed a patch in Linux that removes a silly restriction that 
> tied dmabuf import into virtgpu to KMS-only mode:
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/ 
> commit/?id=3Ddf4dc947c46bb9f80038f52c6e38cb2d40c10e50
> 
> And I have experimented with it and got a KVM-based VMM to successfully 
> access and print guest memfd contents that were passed to the host via 
> this mechanism. (Time to actually properly implement it into the full 
> system..)
> 
>> 2. Use PASID and 2-stage translation so that the GPU can operate in
>> =C2=A0=C2=A0=C2=A0 guest physical memory.
>> =C2=A0=C2=A0=C2=A0 This is also a win.=C2=A0 AMD XDNA absolutely require=
s PASID support,
>> =C2=A0=C2=A0=C2=A0 and apparently AMD GPUs can also use PASID.=C2=A0 So =
being able to use
>> =C2=A0=C2=A0=C2=A0 PASID is certainly helpful.
>>
>> However, I don't think either approach is sufficient for two reasons.
>>
>> First, discrete GPUs have dedicated VRAM, which Xen knows nothing about.
>> Only dom0's GPU drivers can manage VRAM, and they will insist on being
>> able to migrate it between the CPU and the GPU.=C2=A0 Furthermore, VRAM
>> can only be allocated using GPU driver ioctls, which will allocate
>> it from dom0-owned memory.
>>
>> Second, Certain Wayland protocols, such as screencapture, require 
>> programs
>> to be able to import dmabufs.=C2=A0 Both of the above solutions would
>> require that the pages be pinned.=C2=A0 I don't think this is an option,
>> as IIUC pin_user_pages() fails on mappings of these dmabufs.=C2=A0 It's =
why
>> direct I/O to dmabufs doesn't work.
>>
>> To the best of my knowledge, these problems mean that lending memory
>> is the only way to get robust GPU acceleration for both graphics and
>> compute workloads under Xen.=C2=A0 Simpler approaches might work for pur=
e
>> compute workloads, for iGPUs, or for drivers that have Xen-specific
>> changes.=C2=A0 None of them, however, support graphics workloads on dGPU=
s
>> while using the GPU driver the same way bare metal workloads do.
>> [=E2=80=A6]
> To recap, how virtio-gpu Host3d memory currently works with KVM is:
> 
> - the VMM/virtgpu receives a dmabuf over a socket (Wayland/D-Bus/ 
> whatever) and registers it internally with some resource ID that's 
> passed to the guest;
> - When the guest imports that resource, it calls 
> VIRTIO_GPU_CMD_RESOURCE_MAP_BLOB to get a PRIME buffer that can be 
> turned into a dmabuf fd;
> - the VMM's handler for VIRTIO_GPU_CMD_RESOURCE_MAP_BLOB (referencing 
> libkrun here) literally just calls mmap() on the host dmabuf, using the 
> MAP_FIXED flag to place it correctly inside of the VMM process's guest- 
> exposed VA region (configured via KVM_SET_USER_MEMORY_REGION);
> - so any resource imported by the guest, even before guest userspace 
> does mmap(), is mapped (as VM_PFNMAP|VM_IO) until the guest releases it.
> 
> So the generic kernel MM is out of the way, these mappings can't be 
> paged out to swap etc. But accessing them may fault, as the comment for 
> drm_gem_mmap_obj says:
> 
>  =C2=A0* Depending on their requirements, GEM objects can either
>  =C2=A0* provide a fault handler in their vm_ops (in which case any acces=
ses to
>  =C2=A0* the object will be trapped, to perform migration, GTT binding, s=
urface
>  =C2=A0* register allocation, or performance monitoring), or mmap the buf=
fer 
> memory
>  =C2=A0* synchronously after calling drm_gem_mmap_obj
> 
> It all "just works" in KVM because KVM's resolution of the guest's 
> memory accesses tries to be literally equivalent to what's mapped into 
> the userspace VMM process: hva_to_pfn_remapped explicitly calls 
> fixup_user_fault and eventually gets to the GPU driver's fault handler.
> 
> Now for Xen this would be=E2=80=A6 painful,
> 

indeed

> but,
> 
> we have no need to replicate what KVM does. That's far from the only 
> thing that can be done with a dmabuf.
> 
> The import-export machinery on the other hand actually does pin the 
> buffers on the driver level, importers are not obligated to support 
> movable buffers (move_notify in dma_buf_attach_ops=C2=A0is entirely optio=
nal).
> 

dma-buf is by concept non-movable if actively used (otherwise, it would 
break DMA). It's just a foreign buffer, and from device standpoint, just 
plain RAM that needs to be mapped.

> Interestingly, there is already XEN_GNTDEV_DMABUF=E2=80=A6
> 
> Wait, do we even have any reason at all to suspect 
> that=C2=A0XEN_GNTDEV_DMABUF doesn't already satisfy all of our buffer-sha=
ring 
> requirements?
> 

XEN_GNTDEV_DMABUF has been designed for GPU use-cases, and more 
precisely for paravirtualizing a display. The only issue I would have 
with it is that grants are not scalable for GPU 3D use cases (with 
hundreds of MB to share).
But we can still keep the concept of a structured guest-owned memory 
that is shared with Dom0 (but for larger quantities), I have some ideas 
regarding improving that area in Xen.

The only issue with changing the memory sharing model is that you would 
need to adjust the virtio-gpu aspect, but the rest can stay the same.

The biggest concern regarding driver compatibility is more about :
- can dma-buf be used as general buffers : probably yes (even with 
OpenGL/Vulkan); exception may be proprietary Nvidia drivers that lacks 
the feature; maybe very old hardware may struggle more with it
- can guest UMD work without access to vram : yes (apparently), AMDGPU 
has a special case where VRAM is not visible (e.g too small PCI BAR), 
there is vram size vs "vram visible size" (which could be 0); you could 
fallback vram-guest-visible with ram mapped on device
- can it be defined in Vulkan terms (from driver) : You can have 
device_local memory without having it host-visible (i.e memory exists, 
but can't be added in the guest). You would probably just lose some 
zero-copy paths with VRAM. Though you still have RAM shared with GPU 
(GTT in AMDGPU) if that matters.

Worth noting that if you're on integration graphics, you don't have VRAM 
and everything is RAM anyway.

> 
> Thanks,
> ~val
> 
> P.S. while I have everyone's attention, can I get some eyes on:
> https://lore.kernel.org/all/20251126062124.117425-1- 
> val@invisiblethingslab.com/ ?
> 
> 



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Tue Mar 31 09:47:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 09:47:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268820.1558010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Vgn-0000BS-Iz; Tue, 31 Mar 2026 09:47:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268820.1558010; Tue, 31 Mar 2026 09:47:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Vgn-0000BL-G8; Tue, 31 Mar 2026 09:47:13 +0000
Received: by outflank-mailman (input) for mailman id 1268820;
 Tue, 31 Mar 2026 09:47:12 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7Vgm-0000BF-NI
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 09:47:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7Vgl-0012I4-Ok
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 11:47:11 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69cb981c-5cb7-0a2a0a5109dd-0a2a4508d3da-26
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 11:47:11 +0200
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69cb981f-1950-0a2a45080019-d1558032c0a9-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 11:47:11 +0200
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-486ff3a0fc1so49522505e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 02:47:11 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4887c769841sm15080415e9.7.2026.03.31.02.47.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 02:47:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774950431; x=1775555231; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=K0CFshowMOymJ1/0mq1dpX0/bASAZZ89bF72K6ZuD3E=;
        b=dPmvgyhv0YzCD23A+jztwnJItZzm2Tvw6A+PsJQcQWZy/4pkReh5g/b3wEQ8v/yh/r
         RDjmXCQtxIyIcAJJ0o+8MHdBY2GkPk38A+Z1Mo2GXU5FJJ+NsPQstbj25q1L/GS/qc9I
         Nuxo5kytdae6AJ+SnAMe1vOkJHdgaiI21dlGtXayeatjv3t4sQU9h4e0XzzhfjpaOwkn
         2KzAgSW8Lm70gsFGFWGjfuhQFIfsJcf7w86Ho+yG2VDYOhf2c8UqxlmCZCaal8jLZ6sV
         m4jVAdIlus0dKdND1dDq0eRid/x2JIETVybjl9Ix+uNcPlIXVq/gbqjQdlt2Akb8On21
         NFng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774950431; x=1775555231;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=K0CFshowMOymJ1/0mq1dpX0/bASAZZ89bF72K6ZuD3E=;
        b=gI+YLCrssCRUVzxBM+3CeNl8ItuYic5AQB9boui+g1EsduMzLzV6dlzT1vEg2m7ddw
         njqeRU241LuKbWdGzQP1/AGuZ+CgkHHk0avzD+273dl9EH4BV4AFjFoiiL62WPIJ9HOA
         qO5H/t3gNBRAjvXWfE1NxKF6M/3y5L5I/CHKi0bILsW8dWVXUrUdZNR1ymBWd+NHZ8fg
         Vhklc4PYhWnUBPH3gG7b1rc/wN3f/46aBBfRe462PMolqCQ2ZpmQy1/48tL/MaDNWv86
         uKbT9654btc2Fvl1WTNFtoIbkCV4MUyC5xfnwK6+s86Os6fuCTxFtW+5R5wEcpx3KMtV
         +1Zg==
X-Forwarded-Encrypted: i=1; AJvYcCWny8kRe5yCnwqVUjWa+HBjiOi3hwkiNIO+sJj1vOCxtvaJwzo4o/Af5+QXvY8u73j9nJm/MwxUcNI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyP0oJyEnF3N/rMmKETgFQYbvUHKevIZDf2Jx3wfF4n3Hgbsgxt
	95bStJWbkE+GLClBBb1mTC0cuU6xuWtgVQCNNTdJYEwOvTHneK8vzmxaelCrFeLceQ==
X-Gm-Gg: ATEYQzwfPRDGYzq8DF3Vnlg8Y7D6GpARxFDjGW3mQIWWv5D8C5xKKoC0GbvhuTY1lbB
	2ONdlLapx2FaerK3ld6bjmN6DVXjG2oIzU0vbDe/iocD3HNEAt9CElU1/PQmVcGVQpLZXtVSG5k
	kBOXO2+7s1TvqKdCmLJl4sP2xLUhKQPhWLxStpca4mgPLG+SewIa7xx5IevBzWdug0eML7jhhxx
	Y6dCU9kflVGTp/1jxPzpoZca9LWORbBScT8F2B/CkvWU2E3STNrYRVbODhmRR1RdthnE4Lu3Kut
	n0hpyCZc7dYTZ/usEBiER6WE0yGiGPPcwpky5jRiiVSehvtaEvJwiUCZ8uHgLy7a3/XDaln2/AE
	gfTUnTiIbwJkDgpyDdFQRhA/k0PQgH5o6yKZU2sSOaxOXQp394Ycn13iFZM4Pb9pvkVOBFltf1X
	qWHvO9+iq6teUlwOsRFFdaHqdwNEcWG73edBtNQZRS+jaz3UOSEa9NcbZiOIN5s0BuZk3nGwad5
	ZmLuRLbi4UTmlk=
X-Received: by 2002:a05:600c:3b95:b0:486:fa35:aef2 with SMTP id 5b1f17b1804b1-48727d59448mr247106405e9.4.1774950430786;
        Tue, 31 Mar 2026 02:47:10 -0700 (PDT)
Message-ID: <10e688af-3134-45d1-a8f5-f1f1efb3094e@suse.com>
Date: Tue, 31 Mar 2026 11:47:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/mm: improve freeing of partially scrubbed pages
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20260330150119.10546-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: <20260330150119.10546-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c1860d/1774950431-F1EE3726-D940C099/0/0
X-purgate-type: clean
X-purgate-size: 3323

On 30.03.2026 17:01, Roger Pau Monne wrote:
> When freeing possibly partially scrubbed pages in populate_physmap() and
> domain_pending_scrub_free() the whole page is marked as dirty, but that's
> not fully accurate.  Since the PGC_need_scrub bit is preserved for the
> populate_physmap() allocation we can use those when freeing to detect which
> pages need scrubbing instead of marking the whole page as dirty.
> 
> This requires exposing free_heap_pages() globally, and switching
> populate_physmap() and domain_pending_scrub_free() to use it instead of
> free_domheap_pages().
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

This is okay as is, i.e.:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

However, a few remarks below.

> ---
>  xen/common/domain.c     |  4 +++-
>  xen/common/memory.c     |  8 +++++---
>  xen/common/page_alloc.c | 16 +++++++++++++---
>  xen/common/page_alloc.h | 14 ++++++++++++++
>  4 files changed, 35 insertions(+), 7 deletions(-)
>  create mode 100644 xen/common/page_alloc.h

I'm on the edge of requesting page-alloc.h as the name here. I can see though
how the name you picked better fits page_alloc.c.

> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -1529,13 +1529,13 @@ static bool mark_page_free(struct page_info *pg, mfn_t mfn)
>  static void free_color_heap_page(struct page_info *pg, bool need_scrub);
>  
>  /* Free 2^@order set of pages. */
> -static void free_heap_pages(
> -    struct page_info *pg, unsigned int order, bool need_scrub)
> +void free_heap_pages(struct page_info *pg, unsigned int order, bool need_scrub)
>  {
>      unsigned long mask;
>      mfn_t mfn = page_to_mfn(pg);
>      unsigned int i, node = mfn_to_nid(mfn);
>      unsigned int zone = page_to_zone(pg);
> +    unsigned int first_dirty = INVALID_DIRTY_IDX, dirty_cnt = 0;
>      bool pg_offlined = false;
>  
>      ASSERT(order <= MAX_ORDER);
> @@ -1552,6 +1552,13 @@ static void free_heap_pages(
>              pg[i].count_info |= PGC_need_scrub;
>              poison_one_page(&pg[i]);
>          }
> +        else if ( test_bit(_PGC_need_scrub, &pg[i].count_info) )
> +        {
> +            /* The caller might have returned pages pending scrub. */
> +            if ( first_dirty == INVALID_DIRTY_IDX )
> +                first_dirty = i;
> +            dirty_cnt++;
> +        }

Would we perhaps want another "else" here, invoking check_one_page()?

> --- /dev/null
> +++ b/xen/common/page_alloc.h
> @@ -0,0 +1,14 @@
> +#ifndef PAGE_ALLOC_H
> +#define PAGE_ALLOC_H
> +
> +void free_heap_pages(struct page_info *pg, unsigned int order, bool need_scrub);
> +
> +/* Free an allocation, and zero the pointer to it. */
> +#define FREE_HEAP_PAGES(p, o, s) do { \
> +    void *_ptr_ = (p);                \
> +    (p) = NULL;                       \
> +    free_heap_pages(_ptr_, o, s);     \
> +} while ( false )
> +#define FREE_HEAP_PAGE(p, s) FREE_HEAP_PAGES(p, 0, s)

I'm not quite sure whether in this case we need the order-0 shorthand. I'm
inclined to think that either we want to go further:

#define FREE_HEAP_PAGE(p) FREE_HEAP_PAGES(p, 0, true)

Or that we want to omit the shorthand, until a clear need appears.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 09:53:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 09:53:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268831.1558020 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Vmk-0001z2-6I; Tue, 31 Mar 2026 09:53:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268831.1558020; Tue, 31 Mar 2026 09:53:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Vmk-0001yv-3b; Tue, 31 Mar 2026 09:53:22 +0000
Received: by outflank-mailman (input) for mailman id 1268831;
 Tue, 31 Mar 2026 09:53:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7Vmi-0001yp-Ot
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 09:53:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7Vmh-00BLMJ-Sq
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 11:53:19 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69cb998c-e002-0a2a0a5209dd-0a2a450cd358-12
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 11:53:19 +0200
Received: from [209.85.221.43] (helo=mail-wr1-f43.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69cb998f-f93d-0a2a450c0019-d155dd2be16d-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 11:53:19 +0200
Received: by mail-wr1-f43.google.com with SMTP id
 ffacd0b85a97d-43b87970468so4897090f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 02:53:19 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf90424fcsm21066707f8f.32.2026.03.31.02.53.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 02:53:18 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774950799; x=1775555599; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=y7iSkdwsr8Da3sth56YaQEbb24kVM2rBJC3YUVWOatA=;
        b=A4ixTmm4edTonUR5X0yr2pze+0FRqV+bRgG+xgYgdgQVCKyLVufkx/ChPcNWNAKekR
         cpMc7mPpiEC0bOeugnJ43CQjCQDFiRavVDxapDFoJX1CDHKdcrHgrmg2EZ/zAUVNnCq9
         9jbr201IDqlJGLH5kOIuF+zQeL/UVJ0rPjLBqmURnaKw5Dy9Vk4CVK8v06g7qbDoPI2p
         kwjRyr9ENIPdr7QBNgs2vlOuoF3giYIF8A0DmOIi+7oDEVlEJ4ToGQpg8Ygfc6UcmMIg
         ejQIc8yHzILTE/5VeY6CO0ylWnRlcH/norJdVcHJvjXr4ADCZQIT4WwrpgYlgBBALlc9
         Ro/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774950799; x=1775555599;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=y7iSkdwsr8Da3sth56YaQEbb24kVM2rBJC3YUVWOatA=;
        b=SSKwJj2Cje7XXbsvcptU1c3nZM5IBMKmKtXWtNRWUV4fNYJZy8qL/1sHFzfAnf3wqV
         BRbkOWVpr5Ll9poozLGfMsht8hFOosvVKlCTBMHD9C5yWbQfXFVrgax1iXNl6fZ0NZFP
         VTu6drDuRKjnjEDRXMcL0UluuwmrYPLdXrekh+paAosUyPbv7dWJ8OmzxbYOL5E4Psny
         b2vy3eypUWPQWRVp3btkA865LghZtho4FDK1AtPl7AAWroJKfUo4/RGkK4SdnnnW03o2
         5Ags5AGpil5nPfBOc6+lgO7IpVpzduUpeRe2n9LBosyf4h6IfEEMO8Y7hhxzW/8xAORU
         SFHA==
X-Forwarded-Encrypted: i=1; AJvYcCVquortzmgJorm7BNTxnmDXC633n76mmBmSB0dyov57dyS8z0bZMDuIxRaT3prkNaNqVTSa4fY75y4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxLqJ4FNzmxIywLCws/PTJQZUiMvjp+qDXAdToKgJ+zI1Ca+/16
	Fh3PyLiMB2vL9bTpTnMryoLARBsZC/BOworycjcu35EeJYY+wsgp+eQvNNUfBG9rXg==
X-Gm-Gg: ATEYQzzMQCNTmCp5wvtZwdN4qViqQsSXYOYjiD13GCNzBzj48W8nEPt4nRXTvz9S6Ez
	cR3HQMKG+kRwQT92MMhwYIiVqER7DjKl6GP3NB5WqBMkU8qEn3RESLiUiK20rmU73JgUp2Nxbzs
	8CGDwoBTdW+GN6rKHgdZUE6GyTQKUph2fWTF+JzmQgUFsPKuzlPfnNemXEgPT+1CGKfaAZTcnxz
	/fkNwUE6uT4zmWlVV1xzbTpxkvfITi6ReFrsfSYgKGr1IZvEU0jNkfG0hy3ltBezcRqePjB0yzv
	ZMI2BWX04uIBUFR7LHEqDjt4qEplWm35i1mrmqCLCTXFOIaiuk0tNtVLz2mbdWtjjUrRx942EIH
	QScI6VGORkyBpAfkGqM05Ubpg0QzW6GBuvJ1ccUxh6r4UOI7L5ecUDVlWhn2TjYHsePVT58faJ5
	99SKR0EZF+Vf5HxQ/iD/3vukO+ksmT7UBzsHiIWhXIiMxMAiJBWroKLe10rdWQzjOHtoLaeS4Q8
	p9z7eE4GBzD8QA=
X-Received: by 2002:a05:6000:430b:b0:43c:fe7a:491e with SMTP id ffacd0b85a97d-43cfe7a4b9amr12424633f8f.32.1774950799047;
        Tue, 31 Mar 2026 02:53:19 -0700 (PDT)
Message-ID: <b202c2c9-e313-4abb-8613-2aea0e6c0500@suse.com>
Date: Tue, 31 Mar 2026 11:53:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/8] vpci: add a wait operation to the vpci vcpu
 pending actions
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: =?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.1772806036.git.mykyta_poturai@epam.com>
 <ec941fbf4f8bde23fc3867e47f5ada028f8003aa.1772806036.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: <ec941fbf4f8bde23fc3867e47f5ada028f8003aa.1772806036.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1774950799-F68AC734-53B96A62/0/0
X-purgate-type: clean
X-purgate-size: 745

On 09.03.2026 12:08, Mykyta Poturai wrote:
> --- a/xen/include/xen/vpci.h
> +++ b/xen/include/xen/vpci.h
> @@ -212,7 +212,26 @@ struct vpci_vcpu {
>      /* Per-vcpu structure to store state while {un}mapping of PCI BARs. */
>      const struct pci_dev *pdev;
>  #ifdef __XEN__
> +    enum {
> +        NONE,
> +        MODIFY_MEMORY,
> +        WAIT,
> +    } task;

Unlike structure or union fields, the scope of enumerators is global. I
don't think generic names like NONE and WAIT should be introduced into
global scope. At the very least VPCI_ wants prefixing to them, albeit
VPCI_NONE of course isn't to going to read very well either. Hence
either replace "NONE" there as well, or use e.g. VPCI_OP_* as a prefix.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 09:59:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 09:59:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268840.1558028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Vse-0002ra-Q5; Tue, 31 Mar 2026 09:59:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268840.1558028; Tue, 31 Mar 2026 09:59:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Vse-0002rT-ND; Tue, 31 Mar 2026 09:59:28 +0000
Received: by outflank-mailman (input) for mailman id 1268840;
 Tue, 31 Mar 2026 09:59:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7Vsd-0002qr-N2
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 09:59:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7Vsc-007Ozm-HK
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 11:59:26 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69cb9aef-bab6-0a2a0a5309dd-0a2a450cdbb2-42
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 11:59:26 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69cb9afe-f93d-0a2a450c0019-d155802df192-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 11:59:26 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-486fb14227cso72639015e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 02:59:26 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4887e86ecf6sm23714945e9.14.2026.03.31.02.59.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 02:59:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774951166; x=1775555966; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sS2nHryiWM0mGeohuNnvLhWkN0jFyzpKtftQ53VBeSk=;
        b=YAVEaZeR5xkWFa8gxhUZ3hRN6DlnL3MT+2tNzFtPPfihPf1jiDlvfQcwhQSKgmUePK
         L1RgVOErRYdnnvkkoTA1L8/CCYAIq0FCbRawR7TikUNR0Ez2ovw6d0kdWxr3RXMC1mj/
         GZBsXEfX/LSozMZjdT1/4gnd9eZVgEG5L99EIqpSXqcnKzfFWipYNtT0IAGASnM1sxDy
         TrLpl8C3XRuKp3sowHr+xjW1xCZ2h3wI5gsdEpIU5tnlmzL3oV3CNwJ6vdEI/EStosC9
         LJoiDWujPRNDF9gSGVHLrOSuCxQ6Mn5YQFTM9YxDLtGRrpZcfP8gE1P72pkbBABKmt5E
         nFHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774951166; x=1775555966;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sS2nHryiWM0mGeohuNnvLhWkN0jFyzpKtftQ53VBeSk=;
        b=BsnceyzWFEWIs00JXUFRmJFG7GrV9Ypv8B3kqhS0jCaDqs7tsIQsfwpxnVf6oVDsUq
         RjmTHBxquHLCoEHT5bowf3BwC6idbmcqysn3VJuTbvgtD+WWaVOsl58jNW0FbKPRlj0n
         9s3E3ULUE8sjtL8og4HDfFIVN4wHy/L2pTKj0qQYzYf6bYXzblzYuOGIGMguV9qKKNaB
         kz0IXB3+j9E97dWESgqgZOACF8PickWFkUUkKw4rEbiliBcF6rLYHh082orSCZooTvoi
         72rQDjurcbulN1dX6xJJ56MasZto39W+ciLZSZftUU2lzMLiKtW3qySC285KDAzO2CtH
         4ucg==
X-Forwarded-Encrypted: i=1; AJvYcCXVlARYWsbrfFzAnNQskbXNMYGpYrBKZ5SXx09+KO06hekfx9gJJsQ2joNdf9I0U+k0cWojMeLhTKc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwSaH/ua1PrGin8OHnq4J3+Fr7w2y3tqUnXoRZe9EdjLA5yPENa
	E4Hptdurhes3iQf9LnVLq9nHHrHSqOI0kDVdDwMozRNC5KiI/OVs1K02D/rCK348mg==
X-Gm-Gg: ATEYQzxZXJR2/kBWDydmewEuYaUAlQcxdJ1cxEhoSMVuIYjQ34TPmoT5CMWEG4GICyl
	WlOVtk/sqifIzUlrqP5fwSpAMsQ1DLWSqEWxoCTIlwrOKS3Z6pR1hi80uO7rfH8+CgQeynkGbCs
	uvgU7BKLn92nK0DubGEOSxnkUsoJVQRJg/uDpOZLwT9E4QFWLk/5X4gR3AqHpbgpLrcbq+JiRNo
	mZgppUj8/fuKUvPP7wnRoSB0JLfUxkUStyi8BxXLHsh+bW1xxnTm5XlPaFnmsmidHi2bUb4A1nU
	hDMhWVnfQr3jdu/tiIJVGHl/XJItpbq3NMJGv0Ce+mLW49MBp3C3MU7GWLBqVfFK5BmOvGLyHPg
	KSq2cOG6+xgho8VdOZG9NJ4yQC+y4ZPQMyPNwZ7Lq7IYErHRy9ZHrvXFvcDq+O9DgNaRSaCTzjw
	xDKc9DROf/m0BG4RRMCZgZCJYAOVULuopCDDzMIe67Wld/8C4XI/p5zrhIVsKS00RWU0E9WIK+R
	6T7qSy+i65BD/4=
X-Received: by 2002:a05:600c:46c4:b0:485:3a03:ceca with SMTP id 5b1f17b1804b1-48727f0e53bmr283709465e9.23.1774951165783;
        Tue, 31 Mar 2026 02:59:25 -0700 (PDT)
Message-ID: <5edfcb6c-c36e-48cb-a8ec-39e0ff7ceb91@suse.com>
Date: Tue, 31 Mar 2026 11:59:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/8] vpci: Use pervcpu ranges for BAR mapping
To: Mykyta Poturai <Mykyta_Poturai@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>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1772806036.git.mykyta_poturai@epam.com>
 <43ce584a124f0bd07e641934e15e5ab56548e1ba.1772806036.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: <43ce584a124f0bd07e641934e15e5ab56548e1ba.1772806036.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d25034/1774951166-6E0B0734-2D8D8576/0/0
X-purgate-type: clean
X-purgate-size: 449

On 09.03.2026 12:08, Mykyta Poturai wrote:
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -454,6 +454,14 @@ static int vcpu_teardown(struct vcpu *v)
>   */
>  static void vcpu_destroy(struct vcpu *v)
>  {
> +#ifdef CONFIG_HAS_VPCI
> +    int i;

Nit: No plain int please when ...

> +    for ( i = 0; i < ARRAY_SIZE(v->vpci.bar_mem); i++ )

... its values are only ever non-negative. (Applies elsewhere as well.)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 11:23:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 11:23:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268852.1558038 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7XBr-0005yr-CX; Tue, 31 Mar 2026 11:23:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268852.1558038; Tue, 31 Mar 2026 11:23:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7XBr-0005yk-97; Tue, 31 Mar 2026 11:23:23 +0000
Received: by outflank-mailman (input) for mailman id 1268852;
 Tue, 31 Mar 2026 11:23:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <val@invisiblethingslab.com>) id 1w7XBp-0005ye-Ri
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 11:23:22 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7XBo-002aln-Ph
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 13:23:20 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <val@invisiblethingslab.com>)
 id 69cbae9d-2eae-0a2a0a5409dd-0a2a450ce654-32
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 13:23:20 +0200
Received: from [202.12.124.150] (helo=fout-b7-smtp.messagingengine.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <val@invisiblethingslab.com>)
 id 69cbaea7-f93d-0a2a450c0019-ca0c7c96d9c3-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 13:23:20 +0200
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
 by mailfout.stl.internal (Postfix) with ESMTP id C661B1D000D9;
 Tue, 31 Mar 2026 07:23:18 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-03.internal (MEProxy); Tue, 31 Mar 2026 07:23:19 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 31 Mar 2026 07:23:16 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm2 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1774956198; x=1775042598; bh=EcsUa8C2fg
	TQynsJHHMDaklxMetgPOWxao6hBDdfyVA=; b=GxDKYTTl1LNI9F+u4S4DgCLgOv
	Kcrq7mFbpjCVCKrG5K4gNU3h1M0R8W6EkrPExlvHBvibFlwJNcPgNenjazcYTIhz
	WrtBXTgBC2QXxI+F4YXrKafTVzThf70Qfj0OgSG69FLx+GuYtYbrgu6+FGaUL/iq
	Kvx6ybnYKL6PLW/6sWvGYS4EBKcqnSLB9Ri6Dz8oQRD4lyiribAXJFUhT35osPqF
	74n4Ef4q2d+B0cQEB+JmZHQqENMHLXmoDFpe1wd0BKlAP4afuf3oV1cqFbRIGsTH
	UItvChIYv+GYs3asFj5lxMsPsZysXuryiHVj/8EMt8MHQqD2X5cz0UpWm6tA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:content-transfer-encoding:content-type
	:content-type:date:date:feedback-id:feedback-id:from:from
	:in-reply-to:in-reply-to:message-id:mime-version:references
	:reply-to:subject:subject:to:to:x-me-proxy:x-me-sender
	:x-me-sender:x-sasl-enc; s=fm2; t=1774956198; x=1775042598; bh=E
	csUa8C2fgTQynsJHHMDaklxMetgPOWxao6hBDdfyVA=; b=bD26wddQtzO270IPw
	3ipfar8cmhKmQY+21H4AGg8ZLpn+Gpn1LiPuK+B8dzIVrTDTZrfg0ttp4OXuPnrN
	HDZEjKIdDj9LWXwosWx4hF0l9zbxGh81XBL2TaaY77sNHDOFuFxzyjbiNs4fT2EA
	smilVaa7TtIcoO6ONR/bNHeA+9SuXXle4ZZ467I1KbPw75g1W2YJnMpw65UCEouL
	QIxOWzteB49CdAYQUECZD8ROLaTkKrDqWTpMa2ytJDi1Xsv6SCEZEjntGhuiMjZS
	YvtvDxIP0t6CpHh+nF2V7fvPEWXJH4d1NxFVCO8Tlnvkw7ePqegcaaMuSf+HWMax
	wlfMA==
X-ME-Sender: <xms:pq7LaYbWTgmmp6kgmkYgE-X6Ogs44xkJKyCNFbPgFbrVh_f02ug0aA>
    <xme:pq7Lacsqw6bAyDjA8LEksJ1YBDAqA4A6sDWondKd0H4qkU3oyULOrhZPpX13dD0Ao
    yTu6l3925xEtlgp0Gv3_YKrj4ybXsg1Cupw1UEOvmdmQ5BaSw>
X-ME-Received: <xmr:pq7LaaNpJT3EiGNei-ycp77s-x-rpZGXdFewRYALvzuXbiK5SqVlIqyMLjk9adeQiQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgddtjecutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegrihhl
    ohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpe
    fkffggfgfuvfhfhfgjtgfgsehtkeertddtvdejnecuhfhrohhmpeggrghlucfrrggtkhgv
    thhtuceovhgrlhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtf
    frrghtthgvrhhnpeeigfffgfduvefgueeljefgfedugeeivdelkeetieeifefgveettefh
    hfejleegfeenucffohhmrghinhepfhhrvggvuggvshhkthhophdrohhrghenucevlhhush
    htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehvrghlsehinhhvihhs
    ihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepiedpmhhouggvpe
    hsmhhtphhouhhtpdhrtghpthhtohepthgvugguhidrrghsthhivgesvhgrthgvshdrthgv
    tghhpdhrtghpthhtohepuggvmhhiohgsvghnohhurhesghhmrghilhdrtghomhdprhgtph
    htthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdp
    rhgtphhtthhopegurhhiqdguvghvvghlsehlihhsthhsrdhfrhgvvgguvghskhhtohhprd
    horhhgpdhrtghpthhtoheplhhinhhugidqmhhmsehkvhgrtghkrdhorhhgpdhrtghpthht
    oheprghrihgrughnvgesrghrihgrughnvgdrshhprggtvg
X-ME-Proxy: <xmx:pq7LaT6LSvG_5p75fUx-R-PjzGyJuXhAK3aQPJdl5uQ7kK6Xu_gLdA>
    <xmx:pq7LaQR0B-XiB0n4hGmvO5Cuw-AkgNdjgOaTp7g8furXZpdRMPWVuQ>
    <xmx:pq7LaQAC5qBSdtGk0KPTSBkXMFOqi2Vda7mDAZlf7o76rHUHMEeVfw>
    <xmx:pq7LaQG2_uoBLonEXgv0s4UO3v-yweveB3CsFHrClOnBcLKs2bSMHw>
    <xmx:pq7LadqsRxsg0-wb_n4gPdR28Kx_8H5d6lgrj1ykbaG3lR-yuELmZ3wH>
Feedback-ID: i001e48d0:Fastmail
Message-ID: <36d831f6-f21a-4c0d-b442-e526d8c946b9@invisiblethingslab.com>
Date: Tue, 31 Mar 2026 08:23:14 -0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Why memory lending is needed for GPU acceleration
To: Teddy Astie <teddy.astie@vates.tech>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 Xen developer discussion <xen-devel@lists.xenproject.org>,
 dri-devel@lists.freedesktop.org, linux-mm@kvack.org,
 Ariadne Conill <ariadne@ariadne.space>
References: <84462c4b-7813-4ad1-aeb2-862ae4f3a627@gmail.com>
 <c38387fe-beef-4f50-b928-74f96b881b7a@gmail.com>
 <0bbf0349-1006-485f-a2db-6c8b795b4242@invisiblethingslab.com>
 <1de15ce0-9f7e-4253-80a7-ecd94caa4325@vates.tech>
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: <1de15ce0-9f7e-4253-80a7-ecd94caa4325@vates.tech>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1774956200-FC630734-07E7097E/0/0
X-purgate-type: clean
X-purgate-size: 4536


On 3/31/26 6:42 AM, Teddy Astie wrote:
> Le 30/03/2026 à 22:13, Val Packett a écrit :
>> [..]
>>
>> we have no need to replicate what KVM does. That's far from the only
>> thing that can be done with a dmabuf.
>>
>> The import-export machinery on the other hand actually does pin the
>> buffers on the driver level, importers are not obligated to support
>> movable buffers (move_notify in dma_buf_attach_ops is entirely optional).
>>
> dma-buf is by concept non-movable if actively used (otherwise, it would
> break DMA). It's just a foreign buffer, and from device standpoint, just
> plain RAM that needs to be mapped.
>
>> Interestingly, there is already XEN_GNTDEV_DMABUF…
>>
>> Wait, do we even have any reason at all to suspect
>> that XEN_GNTDEV_DMABUF doesn't already satisfy all of our buffer-sharing
>> requirements?
>>
> XEN_GNTDEV_DMABUF has been designed for GPU use-cases, and more
> precisely for paravirtualizing a display. The only issue I would have
> with it is that grants are not scalable for GPU 3D use cases (with
> hundreds of MB to share).

At least for the Qubes side, we aren't aiming at running Crysis on a 
paravirtualized GPU just yet anyway :) First we just want desktop apps 
to run well.

Keep in mind that with virtgpu paravirtualization, actual buffer sharing 
between domains only happens for CPU access, which is mostly used for:

- initial resource uploads;
- the occasional readback (which is inherently slow and all graphics 
devs try not to *ever* do);
- special cases like screen capture.

Most CPU mappings of GPU driver managed buffers live for the duration of 
a single memcpy. Mapping size can get large for games indeed, but for 
desktop applications it's rather small.

On the rendering hot path the guest virtgpu driver just submits jobs 
that refer to abstract handles managed by virglrenderer on the host, and 
buffer sharing is *not* happening.

> But we can still keep the concept of a structured guest-owned memory
> that is shared with Dom0 (but for larger quantities), I have some ideas
> regarding improving that area in Xen.
>
> The only issue with changing the memory sharing model is that you would
> need to adjust the virtio-gpu aspect, but the rest can stay the same.
>
> The biggest concern regarding driver compatibility is more about :
> - can dma-buf be used as general buffers : probably yes (even with
> OpenGL/Vulkan); exception may be proprietary Nvidia drivers that lacks
> the feature; maybe very old hardware may struggle more with it
Current nvidia blob drivers do not lack the feature btw..
> - can guest UMD work without access to vram : yes (apparently), AMDGPU
> has a special case where VRAM is not visible (e.g too small PCI BAR),
> there is vram size vs "vram visible size" (which could be 0); you could
> fallback vram-guest-visible with ram mapped on device

UMDs work on a higher level, they work on buffers which are managed by 
the KMD.

In any paravirtualization situation (whether "native 
contexts"/vDRM which runs the full HW-specific UMD in the guest, or 
API-forwarding solutions like Venus) the only guest KMD is virtio-gpu! 
The guest kernel isn't really aware of what VRAM even is.

https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/src/amd/common/virtio/amdgpu_virtio_bo.c

^ this 300-ish-line file is everything amdgpu ever does with buffer 
objects on the virtio backend.

All it can do is manage host handles, import guest dmabufs into virtgpu 
to get handles for them, export handles to get guest dmabufs, and map 
handles for guest CPU access via the VIRTGPU_MAP ioctl. There are no 
special details to any of this, it's all very straightforward.

It seems to me that implementing VIRTGPU_MAP in terms of dmabuf grants 
would be easy!..

I'll need to get to that point first though, right now I'm still working 
on making basic virtio itself work in our (x86) situation.

> - can it be defined in Vulkan terms (from driver) : You can have
> device_local memory without having it host-visible (i.e memory exists,
> but can't be added in the guest). You would probably just lose some
> zero-copy paths with VRAM. Though you still have RAM shared with GPU
> (GTT in AMDGPU) if that matters.

What did you mean by "added" in the guest?

We shouldn't ever have to touch this level at all, anyhow…
> Worth noting that if you're on integration graphics, you don't have VRAM
> and everything is RAM anyway.


Thanks,
~val



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 11:57:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 11:57:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268875.1558072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7XiH-00020o-8M; Tue, 31 Mar 2026 11:56:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268875.1558072; Tue, 31 Mar 2026 11:56:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7XiH-00020h-2x; Tue, 31 Mar 2026 11:56:53 +0000
Received: by outflank-mailman (input) for mailman id 1268875;
 Tue, 31 Mar 2026 11:56:52 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <andrew.cooper@citrix.com>) id 1w7XiF-00020b-W5
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 11:56:52 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7XiF-007Ouq-5T
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 13:56:51 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69cbb67a-e002-0a2a0a5209dd-0a2a45059400-44
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 13:56:51 +0200
Received: from [40.107.208.20]
 (helo=PH0PR06CU001.outbound.protection.outlook.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <andrew.cooper@citrix.com>)
 id 69cbb681-5aeb-0a2a45050019-286bd014a7a8-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 13:56:50 +0200
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH7PR03MB6994.namprd03.prod.outlook.com (2603:10b6:510:12e::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.27; Tue, 31 Mar
 2026 11:56:47 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 11:56:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Aq2zfdgm8D7Ym4A1ltscvh6lfarNS7v21+XrwLbPGIx9zBuFFF5EtXVrR9u1zDyaWASw22YR2ybTZbfu63BLt9RHan46//2Msg9zqT+MVmmDFC+CRHWuMj9IWu2Pnnlvp0WzNolDP5yWtaIlLV0aO4G0ri7rLz+p9HP/VwnGyaN901ehUuHVcZ0ruwj4hDNqnWurdD/YESoGjUAWJ/YfIrZ6pLtSquzaGqxr+cVe17mpHk/pjEMKEEXWwlGKuGfxyt2QP61Cf23m8g2dUqP8D5NCSaDJlkn1NwipPY0yMEPYhmNlPkrAH1FSNT5l7y8pLnmrjlAVmcdvws8URHapFg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UfGjFthC/K00Gy1hqVzQCHMfTBwwcc9Qc2chCxNKKXs=;
 b=zJ5GdxikHlSrOrZFRM2YS+gF7ALwwKY8uT9XZb9r7BkeDUj9p8NAEwkpPTal7Qa6Pqe4Wr+/f52QaJETR27LC02vFoNDyaj/QwWRQAStTk+0vqEh2qgEEjpcp92038zhh69Y7uLIteBtW3kGhmNVgsHYRMI0ktYH2iQvICShnopnOxJew9m2JgULEYWTOVIvfbc6YvIjpHhIs/svZR8CMcc3rLwrYCze37kzlAhlLZv1MYekX0HKDhM9IPl8xrAoCz1Gt5yN/A13uoHxM43VfjHBXgit6rNTQNfuEkN6Njcy+ASKlXnBrAGtqBnXk3n+pXEi/PNStjAYK9Wdeodq6Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=UfGjFthC/K00Gy1hqVzQCHMfTBwwcc9Qc2chCxNKKXs=;
 b=jHJVdCA7Nca9gTPjtbpm7NzNwtJ8/GF/cd4i5LXxVxP29Le+g//Ykt46IhNUKYmWjhmw1921nCRKNMg+WctNY22oqV5H8gIRKr0s64KD321AsfWUCNmA38FLR6wU8uvOOioZliXHQnOCPrJlGZ1VI8y9MNJetyQ9x97VD11XVW4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <4c5fc93a-bbd8-4936-8c5c-9e963fd59bd4@citrix.com>
Date: Tue, 31 Mar 2026 13:56:33 +0200
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 3/8] vpci: Use pervcpu ranges for BAR mapping
To: Jan Beulich <jbeulich@suse.com>, Mykyta Poturai <Mykyta_Poturai@epam.com>
References: <cover.1772806036.git.mykyta_poturai@epam.com>
 <43ce584a124f0bd07e641934e15e5ab56548e1ba.1772806036.git.mykyta_poturai@epam.com>
 <5edfcb6c-c36e-48cb-a8ec-39e0ff7ceb91@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <5edfcb6c-c36e-48cb-a8ec-39e0ff7ceb91@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: PR3P251CA0009.EURP251.PROD.OUTLOOK.COM
 (2603:10a6:102:b5::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_|PH7PR03MB6994:EE_
X-MS-Office365-Filtering-Correlation-Id: 8c9296cf-da68-4ea2-7d27-08de8f1c95f3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|366016|10070799003|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	739tk0BoI4OWA9ZjzZWvuDD5/r0BnlyFf0Cce77zu5tQXykxCTkvpywCAHgduLtgpZg1R3lKjraL5Rq9A+B3WXnHUaCEknPDrrdgN1BQ5bcJ3s5KdrfCzl42jFwFzqNYfyb58LtNX+EUY3VjSaITlp6QcU0ehH+h2J9IsRX4LykcWMMEDxSUTQTlZx+IDifgy4MuYFyBVvN9V+QAhFTpFHWoe374xL21D8uL8r/nc51dFzfgzqpfDEYg6LSMemXc0YrA3TkiruaaVKxHO3WWfwQNAwjgjUGL2TMTIW6ZIbdPGexthe+DM9kLeJA/hfRmrGRGB9Ga4LwdIHGk/8/lClbuKQQGV/kaxml1ZGsAqegwohKfVHvgeVpzzZyC5a5+yRMGWaRh8eQ9dUTpy7CUyxKCA61hG0FHXk0V56lVCHFXc0UuZgcPsiNfGt8IxIABnPaUrGnEd0cHA264Lp1drj5oJoCvMUZNRKxgMJNBMQj9xWG11WsHCqDNmk72hk76Q2jrvoBxlPehk7lfU1KED/u2RZCfibRaaD6ZnlbZZyJKl8BXkAKrnpXdcrvFI0uNkZ1U/yJTRY8CFqYl722fGSQf2tfTE3azoE22eogpPXUa2rHGgN82GVC/71aLEqOnVPeRdAK2Z0BbdLQ34MjLWdq07ftZUBwY6sdpjHs0sEPVvtDBQKIdCBy3fw0Sx6zpzCla5kRGJ4nqhL9ReAd7AN4qDoSFzlIkf0LDfoS9Y+I=
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)(10070799003)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?T1J6OTlLQi9GYkRxNXloQ1MyVHRMd2ZWd3E0dW5PSnhmZUl4cElWQk4yR1Ro?=
 =?utf-8?B?WFc5anFUNmNTTk9ESGJNMFNIdFVMckVER2tVNkgrWStUdktLWElZazQ5emJj?=
 =?utf-8?B?ZDJtUU5mS2VsRUcxRXhjcFd4MC9zRXZZYlFTR0tuZkdPM1M1ejhybHY5YTM5?=
 =?utf-8?B?ejBxYVJ4a1hUOHZaL2hFSnZvaTBKekhHRlZKSGxub05YUjhYb282ZjU4VUdp?=
 =?utf-8?B?UDVCSkgvblRVS0hmZ0k0cG9yOWVrWXB1anRrcjVZMGRYRW5jeGIxQk9McSsy?=
 =?utf-8?B?Tmg4VUovSzBRWTMrQTQyc09YSXhITWlxSTFlQTIvSUh5R2owNTh1QnR1T1Vr?=
 =?utf-8?B?Q1I4WXRMamRZWEx3dnJ4OTRJa2ZVeHpFY3ZOamVtV3NycU43MHYzTXJDVzN5?=
 =?utf-8?B?ZnZPRXVzMzFTbysxYm1oMG01TStXRGg1MVYyY2Q0eDVERFNiMU5MZWc2SjFQ?=
 =?utf-8?B?UmdlQTBsM3BuTG1GaFdlY21IbERQMDdSZXF5ckxiYmREMDZwalYwbkFOZVd4?=
 =?utf-8?B?Y05OdFBXeTdCTmh0TVB4RXozamdtQVhNOXFOWlF5ME5uK2owRFlodzl6aWFF?=
 =?utf-8?B?ekE0M0NnVTZuUnpiaytsQU9HdXFuTFZqdTNzYlB6NU5FZ2djMHR4NTh0d3J1?=
 =?utf-8?B?aEFjdTFkNVlnV21yeDlkdDFqcVczMUhSVTNZY1p0L3Z0elp4V2I1dTBtSjRX?=
 =?utf-8?B?S09JeUx4TDRjVlhJcWJwVFNTN0ZMOStlQlVqYjZtdlBZWUdCN2oyM3R5VzUv?=
 =?utf-8?B?K1VLSDdIdzV1aGgvemdoTWRNWVhQNHZ1NlNURThPVXdrMTJtbHM2S2NZblpj?=
 =?utf-8?B?aWlodG8ySWFwM3RRY3lyY3NSMy8yWXo4OHI0MTNXL3dUZHEwRGw2NlJMMDhF?=
 =?utf-8?B?dVdPcjU0eGF2clBWMGx2ZjJlL3NMTnd6cjRsVHZGdEdZSWkvclBqNUt4eFFX?=
 =?utf-8?B?aEM1ajRveDkybDJ3SU1VcTVyc01FYVZoaTg3Vzk3ZlhvSzVVZVJlRVB6dFYy?=
 =?utf-8?B?SFlwZVBFK3NveFdZaW1SSHJCeXViVmdvNVlpNlhPR3dLa3dTNmljdWNrcW5q?=
 =?utf-8?B?SHpGUGlZYURZZi9TRjdPb1Bqa2R2RWVPZUpsNURrcUNJckRJRGQ5cUVXVTZR?=
 =?utf-8?B?SmN1QWV5ZEM3NTNpWHFTNERubjFuRm1GcFBDOHVPR2FxUWxWcjU2dytXTjdw?=
 =?utf-8?B?OHhqUmJJNmkxZHpoUG9tamszaXZPSy9nWlpIOHNwTWt5ay9TRjZKY2hWV0Vi?=
 =?utf-8?B?Rnc2TWl3ajd3elc1TGx3WUF1emt2VHcyZjIyK0lQRU40UmpEaUNzbk5SQkFy?=
 =?utf-8?B?aHpVbVlyWldwSmVIelZxSFZoSjdMNlNWZkZJV3JUMHFUTVRTdTE0d29hZUZx?=
 =?utf-8?B?Rm1GYUV3RGZHd2tRdG9UcUhOemRiOWp3aTZ2ZTJEZGZJRXJndGVRQ2hhTlow?=
 =?utf-8?B?b0xpMk5GbjIzSytDTUU0NmZjT0gwb21maFB6NUtERFBwS0NtbURtc1R2bzZn?=
 =?utf-8?B?b1k0U092TVZDWEx0V00zdmY3Mk92ZjdCcTFTbEZJSzNmRjhPNkhrR3g3TXZY?=
 =?utf-8?B?OG5yZi83YUR0YXI1cGUvbEVmNU05VEhUUlcwaXd0dDEzNlZydWZKMnVDUzlE?=
 =?utf-8?B?aTJ6OCtoaTBjaGdPaEFTaTdiMm1xditMRmN6Y09RZXR0VWdTWnE5c1V4WVlZ?=
 =?utf-8?B?MzRXQzRCZVAvcjZEV1M0RlNITUVnT1BxRExQSk9BaFVud2ZxSDIrdGR6Szdk?=
 =?utf-8?B?VTM4RnJHWmVSMUhpWEVmQkFiVzhaUTFVOE83azhUdGpMbzlIRUprWTVHRFkr?=
 =?utf-8?B?LzhBNTVrRlNVcG10bWdwQmY3cG9aUk12cnFrdlZ0UUdsQThwZVZUTjNyNmQy?=
 =?utf-8?B?aldDT0sxNTIwc1lHYU1HK1V1OGVXRlV5TWdWS2RTMEJXdjREWkRpak8yOHUz?=
 =?utf-8?B?cTA2ZExPOEtGSk1KMHlxTjgwOHdwTkNsV0tFVnFFRk5ldll1R08wNlhVQk1O?=
 =?utf-8?B?SHRkS3p5NmVKZEdpbVBhOWN1Y0lCNlNFQVNDajc2ZTNQdWd1aDRYRFlCOTVV?=
 =?utf-8?B?TTUyYnU5c0xsUi9RSnZ4Umttc0Jkcm5hTzh0S1pzczR3TFpGaUp2Ny9sdHZU?=
 =?utf-8?B?SzZxbHlmUFc1ZGplcU55czBkb05WWW0vSHBhK0owdnRydjVjNGNYNVo4V1R2?=
 =?utf-8?B?YWdtUjQzZjIvVE9xbUNEMGRoeUxnS0VsVTdMTlFCUk1iUm81bWEwT0VTbHB3?=
 =?utf-8?B?aHhpdUhIS3NIMXZpMUJtUHZ6cGUzYUlyZ0F6aG93eHBocmtxUG91ZGthL1Fv?=
 =?utf-8?B?bExzWXpiNzhMTFJBYXllWXRJK3ZJYVFlT0svUFdXYVg1OHlWVk8rdHVKTlpj?=
 =?utf-8?Q?wGOYZZAirrnjVnel9upFcMpXdVh8za3LNiLgq2CUQ1YWS?=
X-MS-Exchange-AntiSpam-MessageData-1: Sp8zORDzdCuu0rAclN3MDx/de2ZFJUiX0IQ=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8c9296cf-da68-4ea2-7d27-08de8f1c95f3
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2026 11:56:47.2740
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 1VMimtFjvP+pwswsWh+1n3pWSf5pucd4hhh8WxD1Tuqj4hAmmZ6Ydl4kZsUgYzQKS7Ip6sBi3aOR3bXI0pbE9D0wXUScMF29qlq3nd7zePk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR03MB6994
X-purgate-ID: tlsNG-c201ff/1774958211-200AA488-794D974E/0/0
X-purgate-type: clean
X-purgate-size: 621

On 31/03/2026 10:59 am, Jan Beulich wrote:
> On 09.03.2026 12:08, Mykyta Poturai wrote:
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -454,6 +454,14 @@ static int vcpu_teardown(struct vcpu *v)
>>   */
>>  static void vcpu_destroy(struct vcpu *v)
>>  {
>> +#ifdef CONFIG_HAS_VPCI
>> +    int i;
> Nit: No plain int please when ...
>
>> +    for ( i = 0; i < ARRAY_SIZE(v->vpci.bar_mem); i++ )
> ... its values are only ever non-negative. (Applies elsewhere as well.)

Furthermore, please use `for ( unsigned int i = ...`

That avoids needing to play weird scope games for i.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 12:24:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 12:24:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268894.1558080 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Y9E-0006Gw-CL; Tue, 31 Mar 2026 12:24:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268894.1558080; Tue, 31 Mar 2026 12: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 1w7Y9E-0006Gp-98; Tue, 31 Mar 2026 12:24:44 +0000
Received: by outflank-mailman (input) for mailman id 1268894;
 Tue, 31 Mar 2026 12:24:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <rafael@kernel.org>) id 1w7Y9C-0006Gj-T2
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 12:24:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7Y9C-00GUsy-4u
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 14:24:42 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <rafael@kernel.org>)
 id 69cbbd08-5cb7-0a2a0a5109dd-0a2a4503da2a-8
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 14:24:42 +0200
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <rafael@kernel.org>)
 id 69cbbd08-1947-0a2a45030019-aceafc1fcf0c-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 14:24:41 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 9C23B44054
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 12:24:39 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7809EC2BCB2
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 12:24:39 +0000 (UTC)
Received: by mail-oa1-f43.google.com with SMTP id
 586e51a60fabf-4042fe53946so2173781fac.3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 05:24:39 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="References:In-Reply-To:From:Date:Subject:To:Cc"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774959879;
	bh=+v0lsG31lmz9yOKp4sThWdLD00iDG9mSDxn4BdCze+s=;
	h=References:In-Reply-To:From:Date:Subject:To:Cc:From;
	b=omuA/iF4+/FkdTsRVxIQoSSk6EjrGq0GdFZvkmVdYBhdF9aSJsS3owD2CZrk8EmAQ
	 xyqPWZppC48aFkIIBxuXGNwQPeZfMOH5oF6HXLDLIZHJohFCDhEZjBZoT49L9yEQ+v
	 eBeS+3VkRaNHQ7xAiMvumxAbPbsGEfeKqFIm+Rr+plAZ2rIPNy9cUvuyzSIPdYCCVI
	 eKaHGME1nzobiO5Bovw9QyQWVlHZkO2LmTuo8IFDhEHXPkzEXWfGDcb7CeP/P4Lijg
	 PtYrJPJYxyq+D3waEB2Obf6vekVjZgfeMDUrfbAk6WvpyPtcRN8IUkWtbrtxFD27Ds
	 atJCJpRptuMsQ==
X-Forwarded-Encrypted: i=1; AJvYcCWNuW/P44DabtIk9FKfjRgs7uvTdRg9K3jS84x/0znadlUlMqGd8xFww97yhEI4BITRR4RjM7+0rVQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzCoLu0zTHc0KdFut4ZFjrFZjtw94AYQ630xxJXj9+scoFcKF6Y
	gV+H7Gho5310Mc2Qfruuo9d3MIw9lw/Zp3IlaXdUXjwSKAzW91mGHEWRopxmlLpZvSrVXFdFpmE
	7soxS7KGDJDWhvFl7nPPIpCPMfBghqNQ=
X-Received: by 2002:a05:6870:3212:b0:41c:5212:2c7e with SMTP id
 586e51a60fabf-41cec149624mr8736242fac.20.1774959878527; Tue, 31 Mar 2026
 05:24:38 -0700 (PDT)
MIME-Version: 1.0
References: <20260320031737.35048-1-fengchengwen@huawei.com>
In-Reply-To: <20260320031737.35048-1-fengchengwen@huawei.com>
From: "Rafael J. Wysocki" <rafael@kernel.org>
Date: Tue, 31 Mar 2026 14:24:26 +0200
X-Gmail-Original-Message-ID: <CAJZ5v0gO1VSPs58JeupaiTZBkP3i_-H2bEQpfU-6k2TXjdiaOQ@mail.gmail.com>
X-Gm-Features: AQROBzDL-JtY7QC0BpuyBPGCuLquO5-Gf9GrQy5Yvy_4yGsymDKEHbc8tb9l0x0
Message-ID: <CAJZ5v0gO1VSPs58JeupaiTZBkP3i_-H2bEQpfU-6k2TXjdiaOQ@mail.gmail.com>
Subject: Re: [PATCH v10 0/8] ACPI: Unify CPU UID interface and fix ARM64 TPH
 steer-tag issue
To: Chengwen Feng <fengchengwen@huawei.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>, Catalin Marinas <catalin.marinas@arm.com>, 
	Will Deacon <will@kernel.org>, Jonathan Corbet <corbet@lwn.net>, Palmer Dabbelt <palmer@dabbelt.com>, 
	Borislav Petkov <bp@alien8.de>, "H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Sunil V L <sunilvl@ventanamicro.com>, 
	Mark Rutland <mark.rutland@arm.com>, Jonathan Cameron <jonathan.cameron@huawei.com>, 
	Kees Cook <kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>, 
	Sean Christopherson <seanjc@google.com>, Kai Huang <kai.huang@intel.com>, 
	Tom Lendacky <thomas.lendacky@amd.com>, Thomas Huth <thuth@redhat.com>, 
	Thorsten Blum <thorsten.blum@linux.dev>, Kevin Loughlin <kevinloughlin@google.com>, 
	Zheyun Shen <szy0127@sjtu.edu.cn>, Peter Zijlstra <peterz@infradead.org>, 
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>, Xin Li <xin@zytor.com>, 
	"Ahmed S . Darwish" <darwi@linutronix.de>, Sohil Mehta <sohil.mehta@intel.com>, 
	Ilkka Koskinen <ilkka@os.amperecomputing.com>, Robin Murphy <robin.murphy@arm.com>, 
	James Clark <james.clark@linaro.org>, Besar Wicaksono <bwicaksono@nvidia.com>, 
	Ma Ke <make24@iscas.ac.cn>, Wei Huang <wei.huang2@amd.com>, 
	Andy Gospodarek <andrew.gospodarek@broadcom.com>, Somnath Kotur <somnath.kotur@broadcom.com>, 
	punit.agrawal@oss.qualcomm.com, guohanjun@huawei.com, suzuki.poulose@arm.com, 
	ryan.roberts@arm.com, chenl311@chinatelecom.cn, masahiroy@kernel.org, 
	wangyuquan1236@phytium.com.cn, anshuman.khandual@arm.com, 
	heinrich.schuchardt@canonical.com, Eric.VanTassell@amd.com, 
	wangzhou1@hisilicon.com, wanghuiqiang@huawei.com, liuyonglong@huawei.com, 
	linux-pci@vger.kernel.org, linux-doc@vger.kernel.org, 
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
	loongarch@lists.linux.dev, linux-riscv@lists.infradead.org, 
	xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org, 
	linux-perf-users@vger.kernel.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-purgate-ID: tlsNG-33051d/1774959882-7768972C-F4345EC5/0/0
X-purgate-type: clean
X-purgate-size: 3160

On Fri, Mar 20, 2026 at 4:17=E2=80=AFAM Chengwen Feng <fengchengwen@huawei.=
com> wrote:
>
> This patchset unifies ACPI Processor UID retrieval across
> arm64/loongarch/riscv/x86 via acpi_get_cpu_uid() (with input validation)
> and fixes ARM64 CPU steer-tag retrieval failure in PCI/TPH:
>
> 1-4: Add acpi_get_cpu_uid() for arm64/loongarch/riscv/x86 (update
>      respective users)
> 5: Centralize acpi_get_cpu_uid() declaration in include/linux/acpi.h
> 6: Clean up perf/arm_cspmu
> 7: Clean up ACPI/PPTT and remove unused get_acpi_id_for_cpu()
> 8: Pass ACPI Processor UID to Cache Locality _DSM
>
> The interface refactor ensures consistent CPU UID retrieval across
> architectures (no functional changes for valid inputs) and provides the
> unified interface required for the ARM64 TPH fix.
>
> ---
> Changes in v10:
> - Refine commit header&log according to Punit's and Bjorn's review
> - Split perf/arm_cspmu as a separate commit which address Punit's
>   review
>
> Changes in v9:
> - Address Bjorn's review: split commits to each platform so that make
>   them easy to review
>
> Changes in v8:
> - Moving arm64's get_cpu_for_acpi_id() to kernel/acpi.c which address
>   Jeremy's review
>
> Chengwen Feng (8):
>   arm64: acpi: Add acpi_get_cpu_uid() for unified ACPI CPU UID retrieval
>   LoongArch: Add acpi_get_cpu_uid() for unified ACPI CPU UID retrieval
>   RISC-V: ACPI: Add acpi_get_cpu_uid() for unified ACPI CPU UID
>     retrieval
>   x86/acpi: Add acpi_get_cpu_uid() for unified ACPI CPU UID retrieval
>   ACPI: Centralize acpi_get_cpu_uid() declaration in
>     include/linux/acpi.h
>   perf: arm_cspmu: Switch to acpi_get_cpu_uid() from
>     get_acpi_id_for_cpu()
>   ACPI: PPTT: Use acpi_get_cpu_uid() and remove get_acpi_id_for_cpu()
>   PCI/TPH: Pass ACPI Processor UID to Cache Locality _DSM
>
>  Documentation/PCI/tph.rst          |  4 +--
>  arch/arm64/include/asm/acpi.h      | 17 +---------
>  arch/arm64/kernel/acpi.c           | 30 ++++++++++++++++++
>  arch/loongarch/include/asm/acpi.h  |  5 ---
>  arch/loongarch/kernel/acpi.c       |  9 ++++++
>  arch/riscv/include/asm/acpi.h      |  4 ---
>  arch/riscv/kernel/acpi.c           | 16 ++++++++++
>  arch/riscv/kernel/acpi_numa.c      |  9 ++++--
>  arch/x86/include/asm/cpu.h         |  1 -
>  arch/x86/include/asm/smp.h         |  1 -
>  arch/x86/kernel/acpi/boot.c        | 20 ++++++++++++
>  arch/x86/xen/enlighten_hvm.c       |  5 +--
>  drivers/acpi/pptt.c                | 50 ++++++++++++++++++++++--------
>  drivers/acpi/riscv/rhct.c          |  7 ++++-
>  drivers/pci/tph.c                  | 16 +++++++---
>  drivers/perf/arm_cspmu/arm_cspmu.c |  6 ++--
>  include/linux/acpi.h               | 11 +++++++
>  include/linux/pci-tph.h            |  4 +--
>  18 files changed, 158 insertions(+), 57 deletions(-)
>
> --

It doesn't look like anyone has a particular heartburn related to this
series, so I could apply it in principle, but I'd appreciate some ACKs
from arch maintainers.

Why don't you resend it with all of the tags collected so far (and
please add x86@kernel.org to the CC list)?


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 14:05:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 14:05:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268932.1558112 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7ZiU-00028y-C4; Tue, 31 Mar 2026 14:05:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268932.1558112; Tue, 31 Mar 2026 14:05: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 1w7ZiU-00028r-9J; Tue, 31 Mar 2026 14:05:14 +0000
Received: by outflank-mailman (input) for mailman id 1268932;
 Tue, 31 Mar 2026 14:05:13 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 1w7ZiS-00028l-LY
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 14:05:12 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7ZiR-0022t4-R4
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 16:05:11 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 69cbd493-e002-0a2a0a5209dd-0a2a4503ed6c-42
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 16:05:11 +0200
Received: from [205.220.180.131] (helo=mx0b-0031df01.pphosted.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 69cbd496-1947-0a2a45030019-cddcb483c07c-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 16:05:11 +0200
Received: from pps.filterd (m0279869.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62VBeiET2408305
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 14:05:09 GMT
Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com
 [209.85.214.198])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d80heugu0-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 14:05:09 +0000 (GMT)
Received: by mail-pl1-f198.google.com with SMTP id
 d9443c01a7336-2b242062308so98824475ad.2
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 07:05:09 -0700 (PDT)
Received: from hu-vjitta-hyd.qualcomm.com ([202.46.23.25])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2b24264292asm118311945ad.4.2026.03.31.07.04.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 31 Mar 2026 07:05:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=qcppdkim1 header.d=qualcomm.com header.i="@qualcomm.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:Message-Id:MIME-Version:Subject:To"; dkim=pass header.s=google header.d=oss.qualcomm.com header.i="@oss.qualcomm.com" header.h="Cc:To:Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:message-id
	:mime-version:subject:to; s=qcppdkim1; bh=dF4Obv+MCSq8YX0P9fxlsK
	GDvf3O7jRLPn7ezaYrn94=; b=o+CZ3OYj5iT9TfiBJQQTNFVxOHbunQR1j75oeO
	V3YExJ9yt3v/berszKeoWhGOTfi7pdx2GszMQHo48JYAU4vMf8NDj8Qol95WDQtj
	kt2T2qTsSbyWa8Owfkr7utvtrdrH/tohASWBGdMgXOFCECs/gQ6G9iGT+CX3Q2Xc
	MrxqC4EpUdV34HwujWpWIX33DvqEuY1v2ktIbSrDFlRavZFTK/mi9G45ugA5VxS2
	4p7HP8tJJewyZqCsT3WLyCNuBgjgDqmXvj3RFLnzpkGM8rO0prd3v4Kyh2YFupV0
	cMO3ds65t2hoqTNMhqZklxT7/1qmTsjk7AFjVByktZZBITRg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1774965908; x=1775570708; darn=lists.xenproject.org;
        h=cc:to:content-transfer-encoding:mime-version:message-id:date
         :subject:from:from:to:cc:subject:date:message-id:reply-to;
        bh=dF4Obv+MCSq8YX0P9fxlsKGDvf3O7jRLPn7ezaYrn94=;
        b=cFhXckOHwwFY2VVGg8s97+uPAWr6PkGC27ClQ40F8dxO6FTlkH55oRpHUCMuU1FaxC
         lIFKnl7u7NyAvNUMdKRRBJ7jpGg47KZTtbZMNCzmp2oIzu5aAY95Kf1nkyb4i8Q/1mgQ
         Zb5FQ0iPlDnmQe2WGEgB0qov76P+yOy0lErGWERyPNN73zR1TVeSSAEc4uTQzUe9z6+U
         UlwKGVGGm/sP1s7MpIU9oi8zkeYsNqeqycm7RKovd1n8CamXE/X7XlawViBq0TNkr5Ft
         o7fZHyEto/HWZjaJ0mWPP/hkXXymuzHo8cZ9/CCv5fBzTQiZbZvDdkakvT8oThuTUie2
         cJ7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774965908; x=1775570708;
        h=cc:to:content-transfer-encoding:mime-version:message-id:date
         :subject:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dF4Obv+MCSq8YX0P9fxlsKGDvf3O7jRLPn7ezaYrn94=;
        b=DpcUbqPrZZZ9tPjCKVw8X6fJE7yWoSqpXgElwPCxyOWuWrlnVcRjoAQYUX/QRaoYuk
         /kg1mOBw+4yFiV40EQZuEyn8YK8o7G67KeMj6vVVngB07uriw/NddbNw1b7Ib8JaLiXM
         IQ+Cr4soW7NgWHVScMrCKkY8PvRcWe+SO675wAVPl/HsTfvrKkOj2jd3O1ABp/jFdYme
         Z1Z2yqTmVbQwY/3ZwEM919IBuE3qV6iRI1FLQvHEvYfvX1GCnakDtj0zqhcFA0ATxyZS
         KmIs7jQjON9TwL2yoJr9A0LV4tN0STJUfU+M12PSRVjmPMw0nwGZi1YSSA0X0INbkgT7
         NBKQ==
X-Forwarded-Encrypted: i=1; AJvYcCUZBWTJ2wugLfHP1RgC7zfR1W5eO18XY/Qm06SjzU25CYN8ATBUaeCRozw8oKHnSzAtnNJ/1v5lURc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzX/EmN4GyEGUOGO5zcD+wSZFR+DH3dT1yZoEoZ1vuh0iCXsCqK
	CEDyoQj6u7p5IwmQTONlt3l8IHcjmcwgU41CDiE9gbDzFRIDjR+znp+mjlzCXSZHfSt7Ci79NaT
	45rGEamDvivTBhg/1lYOlEE050zCy0AgHA/Yi6o/0GtJfM0h+q15+qfh6iJmEesyXbeaJWQ==
X-Gm-Gg: ATEYQzzB3xk60gYhUwBRNUn8uT6Glbhy1jJuOa6j9yWlxuNFs5TLQf+YqzYIq+XKOwp
	2uxvVQSAUCpaz2Rqv/0nHllbInRUXln6GpGrSIdv1qtJajbv5iF0neeS6/eRm/Cf4wnTohhDA3s
	l1mx3EIMc+Pw6oWIKg2t6QunVy6KC23/n6/epq1e38mfPbfXOdxN3jUgANTzgCWDoHdvjVKCkW5
	7xQxg3Fh/Eyn0sSO+EBNNdjOsQeWSh0yapU9gE/ZruQ1XcwUr63CAc9gHqmhQmtGAaHAvdx/3FS
	pJXK3XMJk8993t9kjMMgQNj0NnZ6axmwecVco6ym9Izcv3O81OeWYjXZiJTyazrdjrJ9/oBddp6
	EuJm4qttgLz7nz54dp4qh/LSIlkDxsOfJfORW1bVCBshXrb4SJgqccIJ3
X-Received: by 2002:a17:902:ced0:b0:2b0:c2d9:270a with SMTP id d9443c01a7336-2b0cdcf0019mr180935935ad.42.1774965908091;
        Tue, 31 Mar 2026 07:05:08 -0700 (PDT)
X-Received: by 2002:a17:902:ced0:b0:2b0:c2d9:270a with SMTP id d9443c01a7336-2b0cdcf0019mr180935015ad.42.1774965907346;
        Tue, 31 Mar 2026 07:05:07 -0700 (PDT)
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Subject: [PATCH v12 0/3] of: parsing of multi #{iommu,msi}-cells in maps
Date: Tue, 31 Mar 2026 19:34:45 +0530
Message-Id: <20260331-parse_iommu_cells-v12-0-decfd305eea9@oss.qualcomm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
X-B4-Tracking: v=1; b=H4sIAH3Uy2kC/33NwQ6CMAwG4FchOzuyDkHw5HsYQ0opsgQBNyEaw
 rs7OHFAL03+P+3XSTi2hp04B5OwPBpnutYH0IdAUI3tnaUpfSG00omKFMgerePcdI/HkBM3jZN
 AUXRKUuSiQOHvesuVea/o9eZzbdyrs5/1x5gt7T9tzKSSxxIKYiaKGS6dc+FzwIb8VuiHWNAR1
 FbK9iRQnqJEV4QYI5TpLwo2lI53KfAUVFxhTIpTTTvUPM9fQ6NMd1ABAAA=
X-Change-ID: 20260301-parse_iommu_cells-1c33768aebba
To: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
X-Mailer: b4 0.15.1
X-Developer-Signature: v=1; a=ed25519-sha256; t=1774965896; l=6029;
 i=vijayanand.jitta@oss.qualcomm.com; s=20260301; h=from:subject:message-id;
 bh=P2NjOwOfDO9uAKBSdnt+bXSNB/+yNSJiXlluqOTEHNk=;
 b=66lmuzH48rtm0FKXbMJnsG4s1A7Kc60A/4pJcguDLuPcx0lroADqyzlA9wif2kvUXlYq0+jLu
 KAnx76iLFtQDeoanD5WsP5LMaqzqXOX3e6iR/p1Nc5+FJv7Y4Bg5pDi
X-Developer-Key: i=vijayanand.jitta@oss.qualcomm.com; a=ed25519;
 pk=Lpi7Cs3wHe8KZtqvyci7FTOLzsKpEHKGCaPNZw+1zRI=
X-Authority-Analysis: v=2.4 cv=Gb0aXAXL c=1 sm=1 tr=0 ts=69cbd495 cx=c_pps
 a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22
 a=VwQbUJbxAAAA:8 a=COk6AnOGAAAA:8 a=NEAV23lmAAAA:8 a=EUspDBNiAAAA:8
 a=w9jVfKxUgDq0yQD5sDkA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22
 a=TjNXssC_j7lpFel5tvFf:22
X-Proofpoint-GUID: cUgrnFngmjuyN5iU0scUboIC4_awBQbH
X-Proofpoint-ORIG-GUID: cUgrnFngmjuyN5iU0scUboIC4_awBQbH
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMxMDEzNiBTYWx0ZWRfX82Ls5vjtlydB
 dqOFp6FlNjemlzUkn+C+BikOvsDWamHNpebCJIjMSHK1wpX0yN6A/6CKoXfhtH0WIXzs93NsR5A
 CXqYPPvD454BXFlasVsALIJHEM1tmRPEKaz0BC9kf8TRiBw7zBpSZkyud/vfecBIfjghHGKBhw3
 kjSCZoU/SI6QSa6Nm6gVoSfTZC/DvXnIJjSnECzhGNTjWK07rLBE5+1VyRwDGkiHh3SeG6NBtDY
 9rIEH2JK/g47HUPvDGNeGbJl6WP53OMIMsJILecgLd/nwBUGFdEkWiyTpA52UBMgk5MbBnWjqmo
 BKOJlDqsi9ZGWC5yyrCigedSOsXXuvXM5/UblvHpAtLcBOmZBtz0Hxk7eimRxcj+mXNA2AUadde
 Vy34X1DFVkI1SfSbNwhY8cUIQVwrJ9OjTclJ+cD8+G4dKX03NaB5k2CTcTc1Nycd7IutyTliKHc
 rbZ2xlmDDwik63Nq34A==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-31_03,2026-03-31_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 lowpriorityscore=0 impostorscore=0 adultscore=0 spamscore=0 bulkscore=0
 malwarescore=0 clxscore=1015 suspectscore=0 priorityscore=1501 phishscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603310136
X-purgate-ID: tlsNG-33051d/1774965911-4985872C-8FC7F633/0/0
X-purgate-type: clean
X-purgate-size: 6031

So far our parsing of {iommu,msi}-map properties has always blindly
assumed that the output specifiers will always have exactly 1 cell.
This typically does happen to be the case, but is not actually enforced
(and the PCI msi-map binding even explicitly states support for 0 or 1
cells) - as a result we've now ended up with dodgy DTs out in the field
which depend on this behaviour to map a 1-cell specifier for a 2-cell
provider, despite that being bogus per the bindings themselves.

Since there is some potential use[1] in being able to map at least
single input IDs to multi-cell output specifiers (and properly support
0-cell outputs as well), add support for properly parsing and using the
target nodes' #cells values, albeit with the unfortunate complication of
still having to work around expectations of the old behaviour too.
							-- Robin.

Unlike single #{}-cell, it is complex to establish a linear relation
between input 'id' and output specifier for multi-cell properties, thus
it is always expected that len never going to be > 1. 

These changes have been tested on QEMU for the arm64 architecture.

Since, this would also need update in dt-schema, raised PR[2] for the
same.

[1] https://lore.kernel.org/all/20250627-video_cb-v3-0-51e18c0ffbce@quicinc.com/
[2] PR for iommu-map dtschema: https://github.com/devicetree-org/dt-schema/pull/184

Robin,

Could this series be pulled into an immutable branch/tag, if it doesn't make
it into the v7.1 merge window? There are client changes dependent on it,
So it would help to get them moving forward rather than waiting another
cycle.

Thanks,
Vijay

V12:
  - Call of_node_put() unconditionally in imx_pcie_add_lut_by_rid()
    thereby addressing comments from Bjorn Helgaas.

  Link to v11:
  https://lore.kernel.org/r/20260325-parse_iommu_cells-v11-0-1fefa5c0e82c@oss.qualcomm.com

V11:
  - Added explicit filter_np parameter to of_map_id() and of_map_msi_id()
    per Dmitry Baryshkov's review feedback, making the filter explicit
    instead of overloading arg->np as both input filter and output parameter.
  - Removed of_node_put() from inside of_map_id(), making the caller responsible
    for reference management. Updated of_msi_xlate() to properly handle reference counting.
  - Collected ACKed by tags, and fixed minor typos.
  Link to v10:
  https://lore.kernel.org/r/20260309-parse_iommu_cells-v10-0-c62fcaa5a1d8@oss.qualcomm.com

V10:
  - Move of_map_iommu_id()/of_map_msi_id() from include/linux/of.h to
    drivers/of/base.c as out-of-line helpers per feedback from Marc Zyngier
    and Rob Herring.
  - Add kernel-doc to document both helpers for discoverability and
    usage clarity.
  - Fix of_map_msi_id() wrapper and all its callers (cdx_msi.c,
    irq-gic-its-msi-parent.c, drivers/of/irq.c) to correctly use the new
    struct of_phandle_args-based API with proper of_node_put() handling
    as per feeback from Dmitry.
  Link to v9:
  https://lore.kernel.org/r/20260301-parse_iommu_cells-v9-0-4d1bceecc5e1@oss.qualcomm.com

V9:
  - Updated TO/CC list based on feedback to include all relevant
    maintainers.
  - No functional changes to the patches themselves.

  Link to V8:
  https://lore.kernel.org/all/20260226074245.3098486-1-vijayanand.jitta@oss.qualcomm.com/

V8:
  - Removed mentions of of_map_args from commit message to match code.

  Link to V7:
  https://lore.kernel.org/all/20260210101157.2145113-1-vijayanand.jitta@oss.qualcomm.com/

V7:
  - Removed of_map_id_args structure and replaced it with
    of_phandle_args as suggested by Dmitry.

  Link to V6:
  https://lore.kernel.org/all/20260121055400.937856-1-vijayanand.jitta@oss.qualcomm.com/

V6:
  - Fixed build error reported by kernel test bot.

  Link to V5:
  https://lore.kernel.org/all/20260118181125.1436036-1-vijayanand.jitta@oss.qualcomm.com/

V5:
  - Fixed Build Warnings.
  - Raised PR for iommu-map dtschema: https://github.com/devicetree-org/dt-schema/pull/184

  Link to V4:
  https://lore.kernel.org/all/20251231114257.2382820-1-vijayanand.jitta@oss.qualcomm.com/

V4:
  - Added Reviewed-by tag.
  - Resolved warnings reported by kernel test bot, minor code
    reorganization.

  Link to V3:
  https://lore.kernel.org/all/20251221213602.2413124-1-vijayanand.jitta@oss.qualcomm.com/

V3:
  - Added Reviewed-by tag.
  - Updated of_map_id_args struct as a wrapper to of_phandle_args and
    added comment description as suggested by Rob Herring.

  Link to V2:
  https://lore.kernel.org/all/20251204095530.8627-1-vijayanand.jitta@oss.qualcomm.com/

V2:
  - Incorporated the patches from Robin that does the clean implementation.
  - Dropped the patches the were adding multi-map support from this series
    as suggested.

V1:
 https://lore.kernel.org/all/cover.1762235099.git.charan.kalla@oss.qualcomm.com/

RFC:
 https://lore.kernel.org/all/20250928171718.436440-1-charan.kalla@oss.qualcomm.com/#r

Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
---
Charan Teja Kalla (1):
      of: Factor arguments passed to of_map_id() into a struct

Robin Murphy (2):
      of: Add convenience wrappers for of_map_id()
      of: Respect #{iommu,msi}-cells in maps

 drivers/cdx/cdx_msi.c                    |   8 +-
 drivers/iommu/of_iommu.c                 |   6 +-
 drivers/irqchip/irq-gic-its-msi-parent.c |  11 +-
 drivers/of/base.c                        | 213 ++++++++++++++++++++++++-------
 drivers/of/irq.c                         |  11 +-
 drivers/pci/controller/dwc/pci-imx6.c    |  34 +++--
 drivers/pci/controller/pcie-apple.c      |   6 +-
 drivers/xen/grant-dma-ops.c              |   5 +-
 include/linux/of.h                       |  30 ++++-
 9 files changed, 240 insertions(+), 84 deletions(-)
---
base-commit: 3fa5e5702a82d259897bd7e209469bc06368bf31
change-id: 20260301-parse_iommu_cells-1c33768aebba

Best regards,
--  
Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 14:05:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 14:05:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268933.1558122 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Zie-0002NE-Ix; Tue, 31 Mar 2026 14:05:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268933.1558122; Tue, 31 Mar 2026 14: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 1w7Zie-0002N3-G8; Tue, 31 Mar 2026 14:05:24 +0000
Received: by outflank-mailman (input) for mailman id 1268933;
 Tue, 31 Mar 2026 14:05:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 1w7Zid-0002Mk-9Z
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 14:05:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7Zic-0022wN-HX
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 16:05:22 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 69cbd4a0-e002-0a2a0a5209dd-0a2a450ade5a-6
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 16:05:22 +0200
Received: from [205.220.180.131] (helo=mx0b-0031df01.pphosted.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 69cbd4a0-1772-0a2a450a0019-cddcb4834c50-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 16:05:22 +0200
Received: from pps.filterd (m0279872.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62VDCBIg2465781
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 14:05:20 GMT
Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com
 [209.85.214.199])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d89ut9pce-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 14:05:20 +0000 (GMT)
Received: by mail-pl1-f199.google.com with SMTP id
 d9443c01a7336-2adef9d486bso103896905ad.2
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 07:05:20 -0700 (PDT)
Received: from hu-vjitta-hyd.qualcomm.com ([202.46.23.25])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2b24264292asm118311945ad.4.2026.03.31.07.05.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 31 Mar 2026 07:05:17 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=qcppdkim1 header.d=qualcomm.com header.i="@qualcomm.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-Id:MIME-Version:References:Subject:To"; dkim=pass header.s=google header.d=oss.qualcomm.com header.i="@oss.qualcomm.com" header.h="Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding:MIME-Version:Subject:Date:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	QkYW84mNfsxJu25KdM9HhqHWqHHn7yyj15gOr+bOnfo=; b=RgiUSu9g7AoFyfvs
	ptTYIVlwTLWC9JMVG87FjWuMJhT3X+bdqzD2zspSf8TGK2V23VRlvI2vJdP1tOBc
	HGYsn6U138NuT08zss8A6YtH5ke9KV2LT3db8OARBEvAN+gXMg3+rwGDIRiGjv3G
	qGy85z/wQ5RuHNOOBCE7VFgPS/aUfBoqz+e6VGzzcz/MmhsV5z30sAxrVwZmj8Uk
	GOo/L9byvX/voIrGGQKM+31zAnE5mUY8jykPmvbdxjT8DkakS0FYfgqReU4pbA8V
	drCd4Ldw5qP3KsSuZCDenW+gQWo400PINJ6i6nGUOOTmOrCePDsCGLdqMS9rffHz
	kuplrw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1774965919; x=1775570719; darn=lists.xenproject.org;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:from:to:cc:subject:date:message-id
         :reply-to;
        bh=QkYW84mNfsxJu25KdM9HhqHWqHHn7yyj15gOr+bOnfo=;
        b=QmbHfqyDF1G5wThFbDUhl+6GrjfdFQS8zEDFPv6NwzGo+MH+xGnZsArtpB0JLMEM9s
         xdVt9Nbxyk0bTFp+Pw2h+ZdCcTSVr3zG2ad0wt+QuqVyJ2j8MVzvsso5IROY1TMgaqan
         2p99kVRoCXZMj2cPk7flEHw64xwo2BYLNJKm1WiFoFePu7SIzUU4NHlxkSSOFBf+LXpM
         DLN3SN9bBedfb1NioQm9WDMFGFlL36IRl46vaI9pf5b5p3/C5FkMHE+7AdqqrYwqdKXl
         Ild80BnS0gFluEhC9/8dB/2OFlm20HJPRR+6QZnap8cOel4WHNkvgBh562IbggEyeIvA
         7oIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774965919; x=1775570719;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=QkYW84mNfsxJu25KdM9HhqHWqHHn7yyj15gOr+bOnfo=;
        b=DuhSNYrGQFk0gpHp93I3N6lcdKLTM9yRrXyICDZvw+RYFS5kZSYVg5KdOWI+QUYc6Y
         TOJJesjSF3rRatkbYAYZGFposeOODdFI2rAuuozofxI054oUMenobKCIh0H5FDTWIoBF
         ZWgmEsmycy1w4OYe8Vc2Ut/5/2/D1CyWG5SBGqJne62mmy8Ofn37OD4bEUr1WZzHrP90
         MTOFJeIO4E3nPTxQv13bb9TMDUAvagSl/vW/PE34aXR9rFgmag5QAyudgmJVZRuQcSFM
         2mZRaR5DheyKTnBplVyD+lVxS8UW2jwdH9QBoPyMIiHsWzEtZ517a+3mH0id7M+6Uu7A
         Ktpg==
X-Forwarded-Encrypted: i=1; AJvYcCWojWMgu1tBz06wanK4hujuKSjG5FCxjYN+VbllzAZtV0baXjoPnBATKyrQV2d09VdEOEvK9XOgoB8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxkqY7fcYiq44g9oo6nB3rfroWsGGDub+uN1fFUIaYoui3UIO8S
	dioymYGTRWjGhdulAOYwiaDLAqb+KAQ2YcbDZV/uzIEMORyk/DjfpFUV3unN7/Sf7Lm94WTdsgw
	dn+hI3wOLbReLz5k28nXF/H+05JdqfEXwpLDo76YpXd0cLB+YqCkd4bpEXr7phyKDoIfqVA==
X-Gm-Gg: ATEYQzyOm++9yCIou39/W5SZUmmLvIo49wLRe70MUFi0fFmcBBCCsXx2USfB3dG7vUM
	NuH+vcrjSCCI4mEjsWcJ3Ieal16VzNK4KeQ98/A93uMmPEfwGa5/EDcFBbERjp/SEqsc1BCKirS
	DuwkQvvNc7kNDDPZWIYurq63gqZJI5Bbe7RqRhNB+HApvvhtichtpg0t7cL61qWvgRiwePDQAmz
	zEfX5h/2wAcYAcVWFRt3v3GfBdwc4Tbb0CuhLKl0et41OZLxjSesgGOyY0NKWCd80Qv7X50PXuM
	X/QywMcp9F4VnIFbWY+1ZH0QrTKCf+V+WlqAMPQ38bcoSLNfDG6O2Bn/HEf7q719fMeU6utONJq
	sZS4OZ4PwZiE9N4Efg8A9zvadjzXP87kZ2FJ4rjN76X5o08jrtW81K2SS
X-Received: by 2002:a17:902:db08:b0:2ae:cb0e:fd59 with SMTP id d9443c01a7336-2b0cdc0fc5emr165601495ad.8.1774965918959;
        Tue, 31 Mar 2026 07:05:18 -0700 (PDT)
X-Received: by 2002:a17:902:db08:b0:2ae:cb0e:fd59 with SMTP id d9443c01a7336-2b0cdc0fc5emr165600885ad.8.1774965918166;
        Tue, 31 Mar 2026 07:05:18 -0700 (PDT)
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Date: Tue, 31 Mar 2026 19:34:46 +0530
Subject: [PATCH v12 1/3] of: Add convenience wrappers for of_map_id()
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260331-parse_iommu_cells-v12-1-decfd305eea9@oss.qualcomm.com>
References: <20260331-parse_iommu_cells-v12-0-decfd305eea9@oss.qualcomm.com>
In-Reply-To: <20260331-parse_iommu_cells-v12-0-decfd305eea9@oss.qualcomm.com>
To: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
X-Mailer: b4 0.15.1
X-Developer-Signature: v=1; a=ed25519-sha256; t=1774965896; l=8620;
 i=vijayanand.jitta@oss.qualcomm.com; s=20260301; h=from:subject:message-id;
 bh=Bsp9hT6sgzNh1NrIZ0uduUy4Yj5U0gq9szC+ECoPqVA=;
 b=tsEE+RQ7gWHQGS4XxDdkilLUkkMXlbqEzvoPUXNHXZ53+KX3OuKmN7j4DXkq1ONE/QupEszbc
 gIFNjHgeJiVBTFUAyAwqSBUYHZeIsBYMofr3AlrciWtlyxmdcakIFGy
X-Developer-Key: i=vijayanand.jitta@oss.qualcomm.com; a=ed25519;
 pk=Lpi7Cs3wHe8KZtqvyci7FTOLzsKpEHKGCaPNZw+1zRI=
X-Proofpoint-ORIG-GUID: mfJ2_m1Stl0JMLU2w-asoQ_u5yeqUilz
X-Authority-Analysis: v=2.4 cv=C5LkCAP+ c=1 sm=1 tr=0 ts=69cbd4a0 cx=c_pps
 a=JL+w9abYAAE89/QcEU+0QA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22
 a=7CQSdrXTAAAA:8 a=VwQbUJbxAAAA:8 a=8AirrxEcAAAA:8 a=1XWaLZrsAAAA:8
 a=EUspDBNiAAAA:8 a=f4O9XJQV64orvU1ydW8A:9 a=QEXdDO2ut3YA:10
 a=324X-CrmTo6CU4MGRt3R:22 a=a-qgeE7W1pNrGK8U0ZQC:22 a=ST-jHhOKWsTCqRlWije3:22
X-Proofpoint-GUID: mfJ2_m1Stl0JMLU2w-asoQ_u5yeqUilz
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMxMDEzNiBTYWx0ZWRfX0sYz4sCbFEch
 uG0x5xygoDm2m9m6MSx1SsWWdBLbT4Kz12KC35TuG96eDEEVdOmIM7Zuzlp9/giTouNxOIqe0sy
 dc94WOCr4NIu7F+0jV5agaWXHRFAnzqLNOl4o29U2FudHcoh2VtxBJyGr2iGCzaKELXxGme1e6K
 HbqEqwlAtvd3hRWN41Gi5xGh7XCS1FIKGPU3NUnRpmuqKJxGPjmXA57xOVCrjkaKiosAttxyXa1
 u7xw/dxZvF+jhPwU9eRHXBN7C34kZ2ZSli2wGrMA4vlXei74r1E6xVMYRy+8KoEwT1HZEpnrQJe
 77OiNNjNAcgpzQaMQ2P42Bu4DboylvYZclDYcDGu/Kqgerdmclrq5rd7/tvQXjNExai03+BbNC3
 Q0VWl5IeZiVHZuZv0D0zfLPMfEq+FTYMZxqsgX3Y+qlEhnUUA3CCyTnsiAgf9lBrJheD6BLHhT7
 HMaH0lSE2sO9eV4PBqw==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-31_03,2026-03-31_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 priorityscore=1501 impostorscore=0 clxscore=1015 malwarescore=0 bulkscore=0
 suspectscore=0 lowpriorityscore=0 adultscore=0 phishscore=0 spamscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603310136
X-purgate-ID: tlsNG-4011c0/1774965922-53C9C900-1CF151BA/0/0
X-purgate-type: clean
X-purgate-size: 8667

From: Robin Murphy <robin.murphy@arm.com>

Since we now have quite a few users parsing "iommu-map" and "msi-map"
properties, give them some wrappers to conveniently encapsulate the
appropriate sets of property names. This will also make it easier to
then change of_map_id() to correctly account for specifier cells.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Acked-by: Marc Zyngier <maz@kernel.org>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
---
 drivers/cdx/cdx_msi.c                    |  3 +--
 drivers/iommu/of_iommu.c                 |  4 +---
 drivers/irqchip/irq-gic-its-msi-parent.c |  2 +-
 drivers/of/base.c                        | 38 ++++++++++++++++++++++++++++++++
 drivers/of/irq.c                         |  3 +--
 drivers/pci/controller/dwc/pci-imx6.c    |  6 ++---
 drivers/pci/controller/pcie-apple.c      |  3 +--
 drivers/xen/grant-dma-ops.c              |  3 +--
 include/linux/of.h                       | 18 +++++++++++++++
 9 files changed, 64 insertions(+), 16 deletions(-)

diff --git a/drivers/cdx/cdx_msi.c b/drivers/cdx/cdx_msi.c
index 91b95422b263..63b3544ec997 100644
--- a/drivers/cdx/cdx_msi.c
+++ b/drivers/cdx/cdx_msi.c
@@ -128,8 +128,7 @@ static int cdx_msi_prepare(struct irq_domain *msi_domain,
 	int ret;
 
 	/* Retrieve device ID from requestor ID using parent device */
-	ret = of_map_id(parent->of_node, cdx_dev->msi_dev_id, "msi-map", "msi-map-mask",
-			NULL, &dev_id);
+	ret = of_map_msi_id(parent->of_node, cdx_dev->msi_dev_id, NULL, &dev_id);
 	if (ret) {
 		dev_err(dev, "of_map_id failed for MSI: %d\n", ret);
 		return ret;
diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
index 6b989a62def2..a511ecf21fcd 100644
--- a/drivers/iommu/of_iommu.c
+++ b/drivers/iommu/of_iommu.c
@@ -48,9 +48,7 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
 	struct of_phandle_args iommu_spec = { .args_count = 1 };
 	int err;
 
-	err = of_map_id(master_np, *id, "iommu-map",
-			 "iommu-map-mask", &iommu_spec.np,
-			 iommu_spec.args);
+	err = of_map_iommu_id(master_np, *id, &iommu_spec.np, iommu_spec.args);
 	if (err)
 		return err;
 
diff --git a/drivers/irqchip/irq-gic-its-msi-parent.c b/drivers/irqchip/irq-gic-its-msi-parent.c
index d36b278ae66c..b63343a227a9 100644
--- a/drivers/irqchip/irq-gic-its-msi-parent.c
+++ b/drivers/irqchip/irq-gic-its-msi-parent.c
@@ -180,7 +180,7 @@ static int of_pmsi_get_msi_info(struct irq_domain *domain, struct device *dev, u
 
 	struct device_node *msi_ctrl __free(device_node) = NULL;
 
-	return of_map_id(dev->of_node, dev->id, "msi-map", "msi-map-mask", &msi_ctrl, dev_id);
+	return of_map_msi_id(dev->of_node, dev->id, &msi_ctrl, dev_id);
 }
 
 static int its_pmsi_prepare(struct irq_domain *domain, struct device *dev,
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 57420806c1a2..ae04487bd614 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -2201,3 +2201,41 @@ int of_map_id(const struct device_node *np, u32 id,
 	return 0;
 }
 EXPORT_SYMBOL_GPL(of_map_id);
+
+/**
+ * of_map_iommu_id - Translate an ID using "iommu-map" bindings.
+ * @np: root complex device node.
+ * @id: Requester ID of the device (e.g. PCI RID/BDF or a platform
+ *      stream/device ID) used as the lookup key in the iommu-map table.
+ * @target: optional pointer to a target device node.
+ * @id_out: optional pointer to receive the translated ID.
+ *
+ * Convenience wrapper around of_map_id() using "iommu-map" and "iommu-map-mask".
+ *
+ * Return: 0 on success or a standard error code on failure.
+ */
+int of_map_iommu_id(const struct device_node *np, u32 id,
+		    struct device_node **target, u32 *id_out)
+{
+	return of_map_id(np, id, "iommu-map", "iommu-map-mask", target, id_out);
+}
+EXPORT_SYMBOL_GPL(of_map_iommu_id);
+
+/**
+ * of_map_msi_id - Translate an ID using "msi-map" bindings.
+ * @np: root complex device node.
+ * @id: Requester ID of the device (e.g. PCI RID/BDF or a platform
+ *      stream/device ID) used as the lookup key in the msi-map table.
+ * @target: optional pointer to a target device node.
+ * @id_out: optional pointer to receive the translated ID.
+ *
+ * Convenience wrapper around of_map_id() using "msi-map" and "msi-map-mask".
+ *
+ * Return: 0 on success or a standard error code on failure.
+ */
+int of_map_msi_id(const struct device_node *np, u32 id,
+		  struct device_node **target, u32 *id_out)
+{
+	return of_map_id(np, id, "msi-map", "msi-map-mask", target, id_out);
+}
+EXPORT_SYMBOL_GPL(of_map_msi_id);
diff --git a/drivers/of/irq.c b/drivers/of/irq.c
index 6367c67732d2..e37c1b3f8736 100644
--- a/drivers/of/irq.c
+++ b/drivers/of/irq.c
@@ -817,8 +817,7 @@ u32 of_msi_xlate(struct device *dev, struct device_node **msi_np, u32 id_in)
 	 * "msi-map" or an "msi-parent" property.
 	 */
 	for (parent_dev = dev; parent_dev; parent_dev = parent_dev->parent) {
-		if (!of_map_id(parent_dev->of_node, id_in, "msi-map",
-				"msi-map-mask", msi_np, &id_out))
+		if (!of_map_msi_id(parent_dev->of_node, id_in, msi_np, &id_out))
 			break;
 		if (!of_check_msi_parent(parent_dev->of_node, msi_np))
 			break;
diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
index a5b8d0b71677..bff8289f804a 100644
--- a/drivers/pci/controller/dwc/pci-imx6.c
+++ b/drivers/pci/controller/dwc/pci-imx6.c
@@ -1144,8 +1144,7 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
 	u32 sid = 0;
 
 	target = NULL;
-	err_i = of_map_id(dev->of_node, rid, "iommu-map", "iommu-map-mask",
-			  &target, &sid_i);
+	err_i = of_map_iommu_id(dev->of_node, rid, &target, &sid_i);
 	if (target) {
 		of_node_put(target);
 	} else {
@@ -1158,8 +1157,7 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
 	}
 
 	target = NULL;
-	err_m = of_map_id(dev->of_node, rid, "msi-map", "msi-map-mask",
-			  &target, &sid_m);
+	err_m = of_map_msi_id(dev->of_node, rid, &target, &sid_m);
 
 	/*
 	 *   err_m      target
diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
index 2d92fc79f6dd..a0937b7b3c4d 100644
--- a/drivers/pci/controller/pcie-apple.c
+++ b/drivers/pci/controller/pcie-apple.c
@@ -764,8 +764,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
 	dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
 		pci_name(pdev->bus->self), port->idx);
 
-	err = of_map_id(port->pcie->dev->of_node, rid, "iommu-map",
-			"iommu-map-mask", NULL, &sid);
+	err = of_map_iommu_id(port->pcie->dev->of_node, rid, NULL, &sid);
 	if (err)
 		return err;
 
diff --git a/drivers/xen/grant-dma-ops.c b/drivers/xen/grant-dma-ops.c
index c2603e700178..1b7696b2d762 100644
--- a/drivers/xen/grant-dma-ops.c
+++ b/drivers/xen/grant-dma-ops.c
@@ -325,8 +325,7 @@ static int xen_dt_grant_init_backend_domid(struct device *dev,
 		struct pci_dev *pdev = to_pci_dev(dev);
 		u32 rid = PCI_DEVID(pdev->bus->number, pdev->devfn);
 
-		if (of_map_id(np, rid, "iommu-map", "iommu-map-mask", &iommu_spec.np,
-				iommu_spec.args)) {
+		if (of_map_iommu_id(np, rid, &iommu_spec.np, iommu_spec.args)) {
 			dev_dbg(dev, "Cannot translate ID\n");
 			return -ESRCH;
 		}
diff --git a/include/linux/of.h b/include/linux/of.h
index be6ec4916adf..fe841f3cc747 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -465,6 +465,12 @@ int of_map_id(const struct device_node *np, u32 id,
 	       const char *map_name, const char *map_mask_name,
 	       struct device_node **target, u32 *id_out);
 
+int of_map_iommu_id(const struct device_node *np, u32 id,
+		    struct device_node **target, u32 *id_out);
+
+int of_map_msi_id(const struct device_node *np, u32 id,
+		  struct device_node **target, u32 *id_out);
+
 phys_addr_t of_dma_get_max_cpu_address(struct device_node *np);
 
 struct kimage;
@@ -934,6 +940,18 @@ static inline int of_map_id(const struct device_node *np, u32 id,
 	return -EINVAL;
 }
 
+static inline int of_map_iommu_id(const struct device_node *np, u32 id,
+				  struct device_node **target, u32 *id_out)
+{
+	return -EINVAL;
+}
+
+static inline int of_map_msi_id(const struct device_node *np, u32 id,
+				struct device_node **target, u32 *id_out)
+{
+	return -EINVAL;
+}
+
 static inline phys_addr_t of_dma_get_max_cpu_address(struct device_node *np)
 {
 	return PHYS_ADDR_MAX;

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 14:05:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 14:05:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268936.1558131 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Zip-0002ga-TV; Tue, 31 Mar 2026 14:05:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268936.1558131; Tue, 31 Mar 2026 14:05:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Zip-0002gT-Qo; Tue, 31 Mar 2026 14:05:35 +0000
Received: by outflank-mailman (input) for mailman id 1268936;
 Tue, 31 Mar 2026 14:05:34 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 1w7Zio-0002fC-1X
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 14:05:34 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7Zin-007xMi-De
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 16:05:33 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 69cbd4a8-2eae-0a2a0a5409dd-0a2a450998dc-12
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 16:05:33 +0200
Received: from [205.220.180.131] (helo=mx0b-0031df01.pphosted.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 69cbd4ab-e484-0a2a45090019-cddcb483ce72-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 16:05:32 +0200
Received: from pps.filterd (m0279870.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62VBVxm31841101
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 14:05:31 GMT
Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com
 [209.85.214.197])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d80rskg42-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 14:05:31 +0000 (GMT)
Received: by mail-pl1-f197.google.com with SMTP id
 d9443c01a7336-2b0f4e632caso57285315ad.3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 07:05:31 -0700 (PDT)
Received: from hu-vjitta-hyd.qualcomm.com ([202.46.23.25])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2b24264292asm118311945ad.4.2026.03.31.07.05.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 31 Mar 2026 07:05:28 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=qcppdkim1 header.d=qualcomm.com header.i="@qualcomm.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-Id:MIME-Version:References:Subject:To"; dkim=pass header.s=google header.d=oss.qualcomm.com header.i="@oss.qualcomm.com" header.h="Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding:MIME-Version:Subject:Date:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	Vw4qt0eYK9YTsOqpYAiZjJgAyZUidFf8mtBjYqgk2Kw=; b=ZwBE3med9lysXbbD
	212MuW8sUcUsa2btNAuYgPAUc+UMpGnl1xbI2vfG6KD4Z4iAiOSf33UySRHOt4Tu
	N9IpsAM1db3F7sbefWc9UXpFPAuEeLSkZzG/Fje1feNawGRDd3L4wf5LOQNCJFMr
	mb/fEzwnKVxVUaYy2JiVs+kxG0hZ+jTvC8nltX1xjpFFv+8XhPTNkkSdoO3J1lyo
	PL0rDcrEXap9W8nJP9png/t8TLhQcsRJ/lAHcsoWQghHFfKP8+C/RUPDtzQNcWxL
	4fJ11X89skHYSgjYNDbtZxyTskUMwnQ/p5tLFt3iV0Efy5UrT12rR1I0C3D7yKNy
	/EJL8w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1774965930; x=1775570730; darn=lists.xenproject.org;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Vw4qt0eYK9YTsOqpYAiZjJgAyZUidFf8mtBjYqgk2Kw=;
        b=W54jMAlj6VaHABOPAhzgjfyNYjn3LNcXIkcNiz1pfzhsR3fssmgUd1OK/mrCZR2BUN
         Y2KaTZ5jaT2lSMMCFq7X22mZ67LQkrYdUfBrapZLZ3BdvSvzYbgfiyWw26EaYov0RQdZ
         VwqLNLO7XhtBIRD7CNhir3CJoj3lhHkgPQTJ5JPT/2fxcRRNMqD4JnDPRxy1FkxfPTLx
         Flew4U2cqa/Rli8y0I1Jp8st1UB1szldVQ4wBjXlmdI8o9BihIYrmnyGarl4NLWszcTu
         5AakrDF+Lb51zSRC/rpynyt8dA75jYbJa28/ydFXRIQH7D1qAKhXwB8Eig3zfTZYmLLt
         +B6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774965930; x=1775570730;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=Vw4qt0eYK9YTsOqpYAiZjJgAyZUidFf8mtBjYqgk2Kw=;
        b=CyivzR9eBcboFHnQp3zkgcf1QUNbs/1tQEPTsVqixCSQNW8IWcVCBaBrRclhj40i4J
         UiWZk9hX2QhjGqep3xCC/BRiK109sYUlygTqsqQDNM/262lBPnftb1nf+9qOnAfFM0ti
         dkxznhBrDuPNbRdjrxSJKgqcY2udZNx6l8wjVt97bweole0VYteg+SzBFPR5zHqmteaw
         y1MtZR7CRisXzUIdfVzZFaqJgq0vhij64YeXG0AWBXFUvFPxRjg6EiNtCRFNxckVyycf
         0Ju3t/eGj/dW/l/eJQcvfErqTez5PwcD4hFjjyJPCmRjuVbXOhpTlhNcF/TG69Vf33Qa
         Gx+Q==
X-Forwarded-Encrypted: i=1; AJvYcCUBPq/hiTNq9GBh9Yj/gO1tAe39xnxqRdH26ElPqSAG1AoH/Y6suI8tTNJVJvFN0vd8Ug0eDslKTA8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzkByGFxhy6CUtuNbLb0u9lytbqvqOFn0u26520v4G1brK30fyg
	iMAgWQ7O9E1UwztZPc1qDDyrNjYLD3M7MhJ13MXkas8968+IfLrVtlLPJJjibSTatOxFfkFyt/A
	5J4dozLI72eiSIMeC07BVwywLQtG1mt8FBUq0MWgTevwG3LZV62syVHORCPoAPeA10/p1uw==
X-Gm-Gg: ATEYQzyhg+hPbeYt3epIiOx510cYpBGmt+2lTMqU804jppoG6wtAkIVDxwvh1CM7hhk
	dv82RRbJK2BzJzPWkQNkavN1zEV4xTt0X7ro2BKyyNtI9AmWMWxoCpXcPG+3SyoNTLsY5K/MaNf
	aFfff73APGHy8JvV7VSxA5K6Go00G/ZACJkdluuwid/YdUXueysl0xuEnBXpd8DTmuPIYGMb55L
	P8vHIHDQtPaLjougYal5+E/c3gwjS4hfQ+tJayenVMSkvq7qnJeKvy6My1PII/KdL2mWkt1OsIL
	8K3jmY+ADpyzLP/fSQxJl4QHyTy82GwtYTeJKF+ETTKNqBHrMbD7PY4m7iOUkQofsM50JyPKfmu
	LOtFfvoQYhAJPI3SquycUg+4RxfIU9EX/HcIB2GdDtiM4bwHdJv3MdnRn
X-Received: by 2002:a17:902:f706:b0:2b2:5a5a:4f2f with SMTP id d9443c01a7336-2b25a5a526emr63773685ad.33.1774965929954;
        Tue, 31 Mar 2026 07:05:29 -0700 (PDT)
X-Received: by 2002:a17:902:f706:b0:2b2:5a5a:4f2f with SMTP id d9443c01a7336-2b25a5a526emr63772865ad.33.1774965929221;
        Tue, 31 Mar 2026 07:05:29 -0700 (PDT)
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Date: Tue, 31 Mar 2026 19:34:47 +0530
Subject: [PATCH v12 2/3] of: Factor arguments passed to of_map_id() into a
 struct
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260331-parse_iommu_cells-v12-2-decfd305eea9@oss.qualcomm.com>
References: <20260331-parse_iommu_cells-v12-0-decfd305eea9@oss.qualcomm.com>
In-Reply-To: <20260331-parse_iommu_cells-v12-0-decfd305eea9@oss.qualcomm.com>
To: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
X-Mailer: b4 0.15.1
X-Developer-Signature: v=1; a=ed25519-sha256; t=1774965896; l=16797;
 i=vijayanand.jitta@oss.qualcomm.com; s=20260301; h=from:subject:message-id;
 bh=96PMQ0CGK2KUwzmiEbJz9+FKLLeBn/ugSmvWBnHWEG4=;
 b=Sj9HdYruGYOK2x9lzG3NJLUJAImu1Am7r/V4VBBJaBUgTve/cVJ0R0t2vM3asrFtbNrcE4LvP
 tPy5lg1IeDFDU4bBafypwPwg+qNSVlG7PsSaaEMdZgOEyQTEPhZQrN8
X-Developer-Key: i=vijayanand.jitta@oss.qualcomm.com; a=ed25519;
 pk=Lpi7Cs3wHe8KZtqvyci7FTOLzsKpEHKGCaPNZw+1zRI=
X-Proofpoint-GUID: sGj93HRxDo9HMHyLqei9DQue_j5jbXTb
X-Authority-Analysis: v=2.4 cv=VInQXtPX c=1 sm=1 tr=0 ts=69cbd4ab cx=c_pps
 a=cmESyDAEBpBGqyK7t0alAg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22
 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=lfH1aMGX5GUcQU68BDUA:9 a=QEXdDO2ut3YA:10
 a=1OuFwYUASf3TG4hYMiVC:22
X-Proofpoint-ORIG-GUID: sGj93HRxDo9HMHyLqei9DQue_j5jbXTb
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMxMDEzNyBTYWx0ZWRfX02Cik6Ypy/no
 kZKKjiN1atxg5vr7YQel9wfLPWlHBYTJ/1J5w0dydrTOd45ByZm2aFlyJ4hDoZfWpV2u/Np6FxG
 /y76QUG8Tv4xOzGZiwTQYxWrzDZ+BkrpRlZYgm10DyOL/Pj+zhyPQEf5tVsE02PLakce/0jqhrs
 TVeBdGcXi78WdWhykRWHWsiyRQdt5vuNDCe7C7Vmeue8pI1zfOdxS7z9CFv/B65pAJTfGzIzn5p
 gcS1Cr1wjwHei7qK0OWzc+SWDN1awmqyiMm3NOiAbXrAJ2KFrykmXhRB8pSJ+2sHNudVW4atXA3
 VftzDCfk35UTpu/Z0Xng1s9l3redckdTRX3e1hztpIApBrLd6JxKnD7hNQGmCTeFmF03ltJOyor
 Lt6ZGdqnAjwAwcDHmn5hmV0n3ufhC5BuWKgDt2tApNpK0E8W3cH5bx6ukFpGVM+xF4jrRp1Ma4G
 /FjxbDy4VSpUDUQjWyg==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-31_03,2026-03-31_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 adultscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 spamscore=0
 impostorscore=0 lowpriorityscore=0 phishscore=0 bulkscore=0 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603310137
X-purgate-ID: tlsNG-bad1c0/1774965933-604BFA73-575BD10C/0/0
X-purgate-type: clean
X-purgate-size: 16858

From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>

Change of_map_id() to take a pointer to struct of_phandle_args
instead of passing target device node and translated IDs separately.
Update all callers accordingly.

Add an explicit filter_np parameter to of_map_id() and of_map_msi_id()
to separate the filter input from the output. Previously, the target
parameter served dual purpose: as an input filter (if non-NULL, only
match entries targeting that node) and as an output (receiving the
matched node with a reference held). Now filter_np is the explicit
input filter and arg->np is the pure output.

Previously, of_map_id() would call of_node_put() on the matched node
when a filter was provided, making reference ownership inconsistent.
Remove this internal of_node_put() call so that of_map_id() now always
transfers ownership of the matched node reference to the caller via
arg->np. Callers are now consistently responsible for releasing this
reference with of_node_put(arg->np) when done.

Suggested-by: Rob Herring (Arm) <robh@kernel.org>
Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
---
 drivers/cdx/cdx_msi.c                    |  7 ++--
 drivers/iommu/of_iommu.c                 |  4 +-
 drivers/irqchip/irq-gic-its-msi-parent.c | 11 ++++--
 drivers/of/base.c                        | 68 +++++++++++++++++---------------
 drivers/of/irq.c                         | 10 ++++-
 drivers/pci/controller/dwc/pci-imx6.c    | 32 +++++++--------
 drivers/pci/controller/pcie-apple.c      |  5 ++-
 drivers/xen/grant-dma-ops.c              |  4 +-
 include/linux/of.h                       | 14 ++++---
 9 files changed, 89 insertions(+), 66 deletions(-)

diff --git a/drivers/cdx/cdx_msi.c b/drivers/cdx/cdx_msi.c
index 63b3544ec997..6924e07c7528 100644
--- a/drivers/cdx/cdx_msi.c
+++ b/drivers/cdx/cdx_msi.c
@@ -121,22 +121,23 @@ static int cdx_msi_prepare(struct irq_domain *msi_domain,
 			   struct device *dev,
 			   int nvec, msi_alloc_info_t *info)
 {
+	struct of_phandle_args msi_spec = {};
 	struct cdx_device *cdx_dev = to_cdx_device(dev);
 	struct device *parent = cdx_dev->cdx->dev;
 	struct msi_domain_info *msi_info;
-	u32 dev_id;
 	int ret;
 
 	/* Retrieve device ID from requestor ID using parent device */
-	ret = of_map_msi_id(parent->of_node, cdx_dev->msi_dev_id, NULL, &dev_id);
+	ret = of_map_msi_id(parent->of_node, cdx_dev->msi_dev_id, NULL, &msi_spec);
 	if (ret) {
 		dev_err(dev, "of_map_id failed for MSI: %d\n", ret);
 		return ret;
 	}
+	of_node_put(msi_spec.np);
 
 #ifdef GENERIC_MSI_DOMAIN_OPS
 	/* Set the device Id to be passed to the GIC-ITS */
-	info->scratchpad[0].ul = dev_id;
+	info->scratchpad[0].ul = msi_spec.args[0];
 #endif
 
 	msi_info = msi_get_domain_info(msi_domain->parent);
diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
index a511ecf21fcd..a18bb60f6f3d 100644
--- a/drivers/iommu/of_iommu.c
+++ b/drivers/iommu/of_iommu.c
@@ -45,10 +45,10 @@ static int of_iommu_configure_dev_id(struct device_node *master_np,
 				     struct device *dev,
 				     const u32 *id)
 {
-	struct of_phandle_args iommu_spec = { .args_count = 1 };
+	struct of_phandle_args iommu_spec = {};
 	int err;
 
-	err = of_map_iommu_id(master_np, *id, &iommu_spec.np, iommu_spec.args);
+	err = of_map_iommu_id(master_np, *id, &iommu_spec);
 	if (err)
 		return err;
 
diff --git a/drivers/irqchip/irq-gic-its-msi-parent.c b/drivers/irqchip/irq-gic-its-msi-parent.c
index b63343a227a9..dd5f84b6470a 100644
--- a/drivers/irqchip/irq-gic-its-msi-parent.c
+++ b/drivers/irqchip/irq-gic-its-msi-parent.c
@@ -152,6 +152,8 @@ static int its_v5_pci_msi_prepare(struct irq_domain *domain, struct device *dev,
 static int of_pmsi_get_msi_info(struct irq_domain *domain, struct device *dev, u32 *dev_id,
 				phys_addr_t *pa)
 {
+	struct device_node *msi_ctrl __free(device_node) = NULL;
+	struct of_phandle_args msi_spec = {};
 	struct of_phandle_iterator it;
 	int ret;
 
@@ -178,9 +180,12 @@ static int of_pmsi_get_msi_info(struct irq_domain *domain, struct device *dev, u
 		}
 	}
 
-	struct device_node *msi_ctrl __free(device_node) = NULL;
-
-	return of_map_msi_id(dev->of_node, dev->id, &msi_ctrl, dev_id);
+	ret = of_map_msi_id(dev->of_node, dev->id, NULL, &msi_spec);
+	if (!ret) {
+		msi_ctrl = msi_spec.np;
+		*dev_id = msi_spec.args[0];
+	}
+	return ret;
 }
 
 static int its_pmsi_prepare(struct irq_domain *domain, struct device *dev,
diff --git a/drivers/of/base.c b/drivers/of/base.c
index ae04487bd614..b3d002015192 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -2102,36 +2102,37 @@ int of_find_last_cache_level(unsigned int cpu)
  * @id: device ID to map.
  * @map_name: property name of the map to use.
  * @map_mask_name: optional property name of the mask to use.
- * @target: optional pointer to a target device node.
- * @id_out: optional pointer to receive the translated ID.
+ * @filter_np: optional device node to filter matches by, or NULL to match any.
+ *	If non-NULL, only map entries targeting this node will be matched.
+ * @arg: pointer to a &struct of_phandle_args for the result. On success,
+ *	@arg->args[0] will contain the translated ID. If a map entry was
+ *	matched, @arg->np will be set to the target node with a reference
+ *	held that the caller must release with of_node_put().
  *
  * Given a device ID, look up the appropriate implementation-defined
  * platform ID and/or the target device which receives transactions on that
- * ID, as per the "iommu-map" and "msi-map" bindings. Either of @target or
- * @id_out may be NULL if only the other is required. If @target points to
- * a non-NULL device node pointer, only entries targeting that node will be
- * matched; if it points to a NULL value, it will receive the device node of
- * the first matching target phandle, with a reference held.
+ * ID, as per the "iommu-map" and "msi-map" bindings.
  *
  * Return: 0 on success or a standard error code on failure.
  */
 int of_map_id(const struct device_node *np, u32 id,
 	       const char *map_name, const char *map_mask_name,
-	       struct device_node **target, u32 *id_out)
+	       const struct device_node *filter_np, struct of_phandle_args *arg)
 {
 	u32 map_mask, masked_id;
 	int map_len;
 	const __be32 *map = NULL;
 
-	if (!np || !map_name || (!target && !id_out))
+	if (!np || !map_name || !arg)
 		return -EINVAL;
 
 	map = of_get_property(np, map_name, &map_len);
 	if (!map) {
-		if (target)
+		if (filter_np)
 			return -ENODEV;
 		/* Otherwise, no map implies no translation */
-		*id_out = id;
+		arg->args[0] = id;
+		arg->args_count = 1;
 		return 0;
 	}
 
@@ -2173,18 +2174,14 @@ int of_map_id(const struct device_node *np, u32 id,
 		if (!phandle_node)
 			return -ENODEV;
 
-		if (target) {
-			if (*target)
-				of_node_put(phandle_node);
-			else
-				*target = phandle_node;
-
-			if (*target != phandle_node)
-				continue;
+		if (filter_np && filter_np != phandle_node) {
+			of_node_put(phandle_node);
+			continue;
 		}
 
-		if (id_out)
-			*id_out = masked_id - id_base + out_base;
+		arg->np = phandle_node;
+		arg->args[0] = masked_id - id_base + out_base;
+		arg->args_count = 1;
 
 		pr_debug("%pOF: %s, using mask %08x, id-base: %08x, out-base: %08x, length: %08x, id: %08x -> %08x\n",
 			np, map_name, map_mask, id_base, out_base,
@@ -2193,11 +2190,11 @@ int of_map_id(const struct device_node *np, u32 id,
 	}
 
 	pr_info("%pOF: no %s translation for id 0x%x on %pOF\n", np, map_name,
-		id, target && *target ? *target : NULL);
+		id, filter_np);
 
 	/* Bypasses translation */
-	if (id_out)
-		*id_out = id;
+	arg->args[0] = id;
+	arg->args_count = 1;
 	return 0;
 }
 EXPORT_SYMBOL_GPL(of_map_id);
@@ -2207,17 +2204,19 @@ EXPORT_SYMBOL_GPL(of_map_id);
  * @np: root complex device node.
  * @id: Requester ID of the device (e.g. PCI RID/BDF or a platform
  *      stream/device ID) used as the lookup key in the iommu-map table.
- * @target: optional pointer to a target device node.
- * @id_out: optional pointer to receive the translated ID.
+ * @arg: pointer to a &struct of_phandle_args for the result. On success,
+ *	@arg->args[0] contains the translated ID. If a map entry was matched,
+ *	@arg->np holds a reference to the target node that the caller must
+ *	release with of_node_put().
  *
  * Convenience wrapper around of_map_id() using "iommu-map" and "iommu-map-mask".
  *
  * Return: 0 on success or a standard error code on failure.
  */
 int of_map_iommu_id(const struct device_node *np, u32 id,
-		    struct device_node **target, u32 *id_out)
+		    struct of_phandle_args *arg)
 {
-	return of_map_id(np, id, "iommu-map", "iommu-map-mask", target, id_out);
+	return of_map_id(np, id, "iommu-map", "iommu-map-mask", NULL, arg);
 }
 EXPORT_SYMBOL_GPL(of_map_iommu_id);
 
@@ -2226,16 +2225,21 @@ EXPORT_SYMBOL_GPL(of_map_iommu_id);
  * @np: root complex device node.
  * @id: Requester ID of the device (e.g. PCI RID/BDF or a platform
  *      stream/device ID) used as the lookup key in the msi-map table.
- * @target: optional pointer to a target device node.
- * @id_out: optional pointer to receive the translated ID.
+ * @filter_np: optional MSI controller node to filter matches by, or NULL
+ *	to match any. If non-NULL, only map entries targeting this node will
+ *	be matched.
+ * @arg: pointer to a &struct of_phandle_args for the result. On success,
+ *	@arg->args[0] contains the translated ID. If a map entry was matched,
+ *	@arg->np holds a reference to the target node that the caller must
+ *	release with of_node_put().
  *
  * Convenience wrapper around of_map_id() using "msi-map" and "msi-map-mask".
  *
  * Return: 0 on success or a standard error code on failure.
  */
 int of_map_msi_id(const struct device_node *np, u32 id,
-		  struct device_node **target, u32 *id_out)
+		  const struct device_node *filter_np, struct of_phandle_args *arg)
 {
-	return of_map_id(np, id, "msi-map", "msi-map-mask", target, id_out);
+	return of_map_id(np, id, "msi-map", "msi-map-mask", filter_np, arg);
 }
 EXPORT_SYMBOL_GPL(of_map_msi_id);
diff --git a/drivers/of/irq.c b/drivers/of/irq.c
index e37c1b3f8736..f86a56bd81fc 100644
--- a/drivers/of/irq.c
+++ b/drivers/of/irq.c
@@ -817,8 +817,16 @@ u32 of_msi_xlate(struct device *dev, struct device_node **msi_np, u32 id_in)
 	 * "msi-map" or an "msi-parent" property.
 	 */
 	for (parent_dev = dev; parent_dev; parent_dev = parent_dev->parent) {
-		if (!of_map_msi_id(parent_dev->of_node, id_in, msi_np, &id_out))
+		struct of_phandle_args msi_spec = {};
+
+		if (!of_map_msi_id(parent_dev->of_node, id_in, *msi_np, &msi_spec)) {
+			id_out = msi_spec.args[0];
+			if (!*msi_np)
+				*msi_np = msi_spec.np;
+			else
+				of_node_put(msi_spec.np);
 			break;
+		}
 		if (!of_check_msi_parent(parent_dev->of_node, msi_np))
 			break;
 	}
diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
index bff8289f804a..c0544d9c0921 100644
--- a/drivers/pci/controller/dwc/pci-imx6.c
+++ b/drivers/pci/controller/dwc/pci-imx6.c
@@ -1137,30 +1137,32 @@ static void imx_pcie_remove_lut(struct imx_pcie *imx_pcie, u16 rid)
 
 static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
 {
+	struct of_phandle_args iommu_spec = {};
+	struct of_phandle_args msi_spec = {};
 	struct device *dev = imx_pcie->pci->dev;
-	struct device_node *target;
 	u32 sid_i, sid_m;
 	int err_i, err_m;
 	u32 sid = 0;
 
-	target = NULL;
-	err_i = of_map_iommu_id(dev->of_node, rid, &target, &sid_i);
-	if (target) {
-		of_node_put(target);
-	} else {
+	err_i = of_map_iommu_id(dev->of_node, rid, &iommu_spec);
+	if (!err_i)
+		sid_i = iommu_spec.args[0];
+	of_node_put(iommu_spec.np);
+	if (!err_i && !iommu_spec.np) {
 		/*
-		 * "target == NULL && err_i == 0" means RID out of map range.
-		 * Use 1:1 map RID to streamID. Hardware can't support this
-		 * because the streamID is only 6 bits
+		 * "iommu_spec.np == NULL && err_i == 0" means RID out of map
+		 * range. Use 1:1 map RID to streamID. Hardware can't support
+		 * this because the streamID is only 6 bits.
 		 */
 		err_i = -EINVAL;
 	}
 
-	target = NULL;
-	err_m = of_map_msi_id(dev->of_node, rid, &target, &sid_m);
-
+	err_m = of_map_msi_id(dev->of_node, rid, NULL, &msi_spec);
+	if (!err_m)
+		sid_m = msi_spec.args[0];
+	of_node_put(msi_spec.np);
 	/*
-	 *   err_m      target
+	 *   err_m      msi_spec.np
 	 *	0	NULL		RID out of range. Use 1:1 map RID to
 	 *				streamID, Current hardware can't
 	 *				support it, so return -EINVAL.
@@ -1168,10 +1170,8 @@ static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
 	 *	0	!= NULL		Get correct streamID from RID
 	 *	!= 0	!= NULL		Invalid combination
 	 */
-	if (!err_m && !target)
+	if (!err_m && !msi_spec.np)
 		return -EINVAL;
-	else if (target)
-		of_node_put(target); /* Find streamID map entry for RID in msi-map */
 
 	/*
 	 * msi-map        iommu-map
diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
index a0937b7b3c4d..c2cffc0659f4 100644
--- a/drivers/pci/controller/pcie-apple.c
+++ b/drivers/pci/controller/pcie-apple.c
@@ -755,6 +755,7 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
 {
 	u32 sid, rid = pci_dev_id(pdev);
 	struct apple_pcie_port *port;
+	struct of_phandle_args iommu_spec = {};
 	int idx, err;
 
 	port = apple_pcie_get_port(pdev);
@@ -764,10 +765,12 @@ static int apple_pcie_enable_device(struct pci_host_bridge *bridge, struct pci_d
 	dev_dbg(&pdev->dev, "added to bus %s, index %d\n",
 		pci_name(pdev->bus->self), port->idx);
 
-	err = of_map_iommu_id(port->pcie->dev->of_node, rid, NULL, &sid);
+	err = of_map_iommu_id(port->pcie->dev->of_node, rid, &iommu_spec);
 	if (err)
 		return err;
 
+	of_node_put(iommu_spec.np);
+	sid = iommu_spec.args[0];
 	mutex_lock(&port->pcie->lock);
 
 	idx = bitmap_find_free_region(port->sid_map, port->sid_map_sz, 0);
diff --git a/drivers/xen/grant-dma-ops.c b/drivers/xen/grant-dma-ops.c
index 1b7696b2d762..2aa1a772a0ff 100644
--- a/drivers/xen/grant-dma-ops.c
+++ b/drivers/xen/grant-dma-ops.c
@@ -319,13 +319,13 @@ static int xen_dt_grant_init_backend_domid(struct device *dev,
 					   struct device_node *np,
 					   domid_t *backend_domid)
 {
-	struct of_phandle_args iommu_spec = { .args_count = 1 };
+	struct of_phandle_args iommu_spec = {};
 
 	if (dev_is_pci(dev)) {
 		struct pci_dev *pdev = to_pci_dev(dev);
 		u32 rid = PCI_DEVID(pdev->bus->number, pdev->devfn);
 
-		if (of_map_iommu_id(np, rid, &iommu_spec.np, iommu_spec.args)) {
+		if (of_map_iommu_id(np, rid, &iommu_spec)) {
 			dev_dbg(dev, "Cannot translate ID\n");
 			return -ESRCH;
 		}
diff --git a/include/linux/of.h b/include/linux/of.h
index fe841f3cc747..8548cd9eb4f1 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -463,13 +463,13 @@ bool of_console_check(const struct device_node *dn, char *name, int index);
 
 int of_map_id(const struct device_node *np, u32 id,
 	       const char *map_name, const char *map_mask_name,
-	       struct device_node **target, u32 *id_out);
+	       const struct device_node *filter_np, struct of_phandle_args *arg);
 
 int of_map_iommu_id(const struct device_node *np, u32 id,
-		    struct device_node **target, u32 *id_out);
+		    struct of_phandle_args *arg);
 
 int of_map_msi_id(const struct device_node *np, u32 id,
-		  struct device_node **target, u32 *id_out);
+		  const struct device_node *filter_np, struct of_phandle_args *arg);
 
 phys_addr_t of_dma_get_max_cpu_address(struct device_node *np);
 
@@ -935,19 +935,21 @@ static inline void of_property_clear_flag(struct property *p, unsigned long flag
 
 static inline int of_map_id(const struct device_node *np, u32 id,
 			     const char *map_name, const char *map_mask_name,
-			     struct device_node **target, u32 *id_out)
+			     const struct device_node *filter_np,
+			     struct of_phandle_args *arg)
 {
 	return -EINVAL;
 }
 
 static inline int of_map_iommu_id(const struct device_node *np, u32 id,
-				  struct device_node **target, u32 *id_out)
+				  struct of_phandle_args *arg)
 {
 	return -EINVAL;
 }
 
 static inline int of_map_msi_id(const struct device_node *np, u32 id,
-				struct device_node **target, u32 *id_out)
+				const struct device_node *filter_np,
+				struct of_phandle_args *arg)
 {
 	return -EINVAL;
 }

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 14:05:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 14:05:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268943.1558139 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Zj1-00035G-4g; Tue, 31 Mar 2026 14:05:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268943.1558139; Tue, 31 Mar 2026 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 1w7Zj1-000359-23; Tue, 31 Mar 2026 14:05:47 +0000
Received: by outflank-mailman (input) for mailman id 1268943;
 Tue, 31 Mar 2026 14:05:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 1w7Ziz-00034S-Pw
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 14:05:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7Ziz-00H1T8-4l
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 16:05:45 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 69cbd4b8-bab6-0a2a0a5309dd-0a2a4502db66-2
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 16:05:45 +0200
Received: from [205.220.180.131] (helo=mx0b-0031df01.pphosted.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <vijayanand.jitta@oss.qualcomm.com>)
 id 69cbd4b7-63bb-0a2a45020019-cddcb4836032-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 16:05:44 +0200
Received: from pps.filterd (m0279871.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 62V8jsN62049372
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 14:05:43 GMT
Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com
 [209.85.214.198])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d8b1ys9h9-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 14:05:43 +0000 (GMT)
Received: by mail-pl1-f198.google.com with SMTP id
 d9443c01a7336-2b2497cc190so21711465ad.0
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 07:05:42 -0700 (PDT)
Received: from hu-vjitta-hyd.qualcomm.com ([202.46.23.25])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2b24264292asm118311945ad.4.2026.03.31.07.05.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 31 Mar 2026 07:05:39 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=qcppdkim1 header.d=qualcomm.com header.i="@qualcomm.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-Id:MIME-Version:References:Subject:To"; dkim=pass header.s=google header.d=oss.qualcomm.com header.i="@oss.qualcomm.com" header.h="Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding:MIME-Version:Subject:Date:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	VhGHqC2XDynARGpL/uIgYPGZtNXC+dk0e9MA3p7JUHk=; b=CmFljeGRrCbwi0M8
	cwhv5/FP5/VOk7MdZs5SNHg6bg6nJEIENpkh1n33d+bp67pXtA6xs5xbL5Dn+lrP
	B8rz3bQJ+sEIQUk52lFKoyHwQWchlDI/qG7FbFpjK0Yi2vzkzXZpoQb4bFxRFeXc
	nLZ/H5uQhItumLsVUb2ZGZQ/zQTu4IHqQTOT5UK4ROYWC5maANsXvK/gWfLu8Rvg
	0z3NmAwyZ7cs4hpZAx38ui3fiNQu5RkomuUFmNfPnflixWjb/t2WidU7GwNAfpw+
	US3E1DT24bQjd/9Qp56LJS4Bi+/XzKYNO7KN2hfha60anYRz/KnJzY8GnEmYwVha
	Dicf6g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1774965942; x=1775570742; darn=lists.xenproject.org;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:from:to:cc:subject:date:message-id
         :reply-to;
        bh=VhGHqC2XDynARGpL/uIgYPGZtNXC+dk0e9MA3p7JUHk=;
        b=MiCYq5axUhXmyiYvT6chFulfoZ494UNVFPGTghTA1MgdAwqCclysgNjBnJkVMDnIb/
         P5TN2AtRnZPXuSdFO6JfI0ycHDTRaJObBoPM2YH6yoOMtC2mhEjwEOu5kgJomLoTJEh5
         JIZQ2U1g4+rljj1fdkd5NISAjl2CM+X3fi11ZeETEw/EuZ1xFCaP63U+uT4+jbGW/VCR
         D338iIZZbUMeCNlUddTasI89vCWGw/7Fp/swtGX1JUDccCtYBbIL9JPS2vJ0OgH0KEq8
         pZjr6y0pC4ii7EPYpWk3qBRzqRTV641IaPLUtvm0ip1LAdDvKo+ibtqzuCpXs6WKjn1Z
         EnJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774965942; x=1775570742;
        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
         :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=VhGHqC2XDynARGpL/uIgYPGZtNXC+dk0e9MA3p7JUHk=;
        b=YoMFUbw7U2X9jXrbZg2nVJ+miWIDEuWcKTR6Gslc8kiVqaEI/nAyKm0ywlTuxcEAA3
         iK3AVLX1MiO6NNKJ0JFlSjcL3wuChZROIPRk/1Pn8DzjD21abgfixtEKJeTY6MMJ+1CX
         SdDfuPYCku+fXptv629j7CoYe+Zge94c1RTfVw4iQc2zVOUAyGmeDM6V/ewtKGOp+Two
         +1ez6EU9qdZR/mMXTFYN7+n71Rvc6/zsa7P1LPEob6P4tdsWyOJX+Kooy7UbViS0BcYv
         XaEPAmsYdavABksLP4NOlmB+QJ4twiHFRAXCS6LbGX19tPnDj863UvaS8StLZSfq4rfr
         eg0g==
X-Forwarded-Encrypted: i=1; AJvYcCXVKlBwwi/dPS+b9IZNDdbrFIfvZBUH+WQZZLNz2bUv83Ob/Zhq/65xes+VgTZDGHPPPJNUekctd9I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxwbEZPFAaiDL/0nKYQCFWhFw2VaANxKuniXy/hcURJwKIao5TD
	koNDRlonFnQNH7SapTqRgzU+u6sWy+j/IVhhRE4EU6YJDZ0ogjTmj+28mleNW1Hs7+vz+V8kIVn
	HDiEmemktmj0L1qacgi3qyplPgkPiuv9XVp3zF/MxhCH3gr4D9zMjs5M8dth0x7wdaMqeDw==
X-Gm-Gg: ATEYQzwb8qgASRMXtmnAlxGGtmbH0PPNgBCZAJU1j7aBwro7Wt2PX6ideyQh0e3j8Mf
	o3TbQs9mAPbj86WIGFInuAJhF9EqsH7n3EOOelaHmILZJ+KGJvfA00io8MNfyu6GGVNEPGcqlID
	8cFTh6/e78q3cF90Z+5+q0naj2U/O4iPo4QOIPUsLdxk1K+f6tDwP83TMvac8aQJ5K6Vi5GkUJM
	Wh4mAcO6xWeNoByM1L7px8+21DmUnINub/mS9Gs6/crhNt08bQEUh80WL9vcE8sG8kX/11UpbWZ
	OdNh2C+64EWlvaqIILqMSIsV2iPhUCFP4D/w+QRo0e5P4x4E+CL4VDgWxC22Wp72GAr8MNkGdXv
	2qTDhVkaEahlgK0tB9v6dkGp3cnJeZXh08gpl6bIMY1PrU6leLNBM8aSc
X-Received: by 2002:a17:903:44d2:b0:2b2:4cae:6b2f with SMTP id d9443c01a7336-2b25ee9042amr24712965ad.4.1774965941253;
        Tue, 31 Mar 2026 07:05:41 -0700 (PDT)
X-Received: by 2002:a17:903:44d2:b0:2b2:4cae:6b2f with SMTP id d9443c01a7336-2b25ee9042amr24712315ad.4.1774965940172;
        Tue, 31 Mar 2026 07:05:40 -0700 (PDT)
From: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Date: Tue, 31 Mar 2026 19:34:48 +0530
Subject: [PATCH v12 3/3] of: Respect #{iommu,msi}-cells in maps
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260331-parse_iommu_cells-v12-3-decfd305eea9@oss.qualcomm.com>
References: <20260331-parse_iommu_cells-v12-0-decfd305eea9@oss.qualcomm.com>
In-Reply-To: <20260331-parse_iommu_cells-v12-0-decfd305eea9@oss.qualcomm.com>
To: Nipun Gupta <nipun.gupta@amd.com>, Nikhil Agarwal <nikhil.agarwal@amd.com>,
        Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
        Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
        Lorenzo Pieralisi <lpieralisi@kernel.org>,
        Thomas Gleixner <tglx@kernel.org>,
        Saravana Kannan <saravanak@kernel.org>,
        Richard Zhu <hongxing.zhu@nxp.com>,
        Lucas Stach <l.stach@pengutronix.de>,
        =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
        Manivannan Sadhasivam <mani@kernel.org>,
        Bjorn Helgaas <bhelgaas@google.com>, Frank Li <Frank.Li@nxp.com>,
        Sascha Hauer <s.hauer@pengutronix.de>,
        Pengutronix Kernel Team <kernel@pengutronix.de>,
        Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
        Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
        Krzysztof Kozlowski <krzk+dt@kernel.org>,
        Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
        Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
        linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
        linux-pci@vger.kernel.org, imx@lists.linux.dev,
        xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
        Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>,
        Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
X-Mailer: b4 0.15.1
X-Developer-Signature: v=1; a=ed25519-sha256; t=1774965896; l=11993;
 i=vijayanand.jitta@oss.qualcomm.com; s=20260301; h=from:subject:message-id;
 bh=hhxFww84fiqdRnnSRnrS9vJjSjcq+XxylCTlpd3SMkE=;
 b=gRrmchAOmvc8H1+6Ovdtg5xTtZ7ZAOXAB76++3lrhnE23wTQ3dnHyDuB45uAmXrmbCsob3oRc
 a1bj22FGcCOCFRbhZMjrfdmDjDPkJBZ5lVAKxqk0At7lTFuaYmzElPK
X-Developer-Key: i=vijayanand.jitta@oss.qualcomm.com; a=ed25519;
 pk=Lpi7Cs3wHe8KZtqvyci7FTOLzsKpEHKGCaPNZw+1zRI=
X-Proofpoint-GUID: 9xPVgTW1b9xZu3z39bS-P1q-NBKAuczx
X-Proofpoint-ORIG-GUID: 9xPVgTW1b9xZu3z39bS-P1q-NBKAuczx
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMxMDEzNyBTYWx0ZWRfX9z+GoN5HganK
 TIm+e8wsu43yOCe11Ya1XB1UHQKjjElSzx86f0NWymAg8yU/fsdAkwNLNhG+HA1+0wAMWS34UPZ
 wVf6VyLEOIg/mRhrKWxOKSI7HV3OZ3UDXIA179xwwVpnkhkVFJ6F5AGDW05aHYI56X4lo1EFg5w
 fZXvMbYgYVnLl2v83c2RoJiYCpU83qJi/HbVI24KL9/0kpA0KGzPjw68F1K78kBtC7fWPgP6S14
 +Bgt7/x11jij04AIvvxCyjDCM56s42UshWOByT8KT6Mxp5VMh5xKNFSLBdr+7LjiP54P22pu8S1
 G2vhVi/4cVy3d6v/0CN3dGgOoCwdEB83W4kGiHTWzPCNjKg0VqLsTQmBLvJmzPSgtIiwpAPLPaI
 i9tAl7Fb/oc0dhUIkCbHJfVxjwyymFUEfh3crbAhJDGlzOQqbGxqOiAFBDRFgENGYt6vSMqEwfP
 WBO0FL7mICX7qx8gbuA==
X-Authority-Analysis: v=2.4 cv=aJT9aL9m c=1 sm=1 tr=0 ts=69cbd4b7 cx=c_pps
 a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17
 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22
 a=7CQSdrXTAAAA:8 a=EUspDBNiAAAA:8 a=klF1l1D6msg2vEcBgDUA:9 a=QEXdDO2ut3YA:10
 a=GvdueXVYPmCkWapjIL-Q:22 a=a-qgeE7W1pNrGK8U0ZQC:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-03-31_03,2026-03-31_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 suspectscore=0 spamscore=0 phishscore=0 bulkscore=0 malwarescore=0
 priorityscore=1501 adultscore=0 lowpriorityscore=0 clxscore=1015
 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001
 definitions=main-2603310137
X-purgate-ID: tlsNG-720697/1774965945-68D70DB8-2F799617/0/0
X-purgate-type: clean
X-purgate-size: 12040

From: Robin Murphy <robin.murphy@arm.com>

So far our parsing of {iommu,msi}-map properties has always blindly
assumed that the output specifiers will always have exactly 1 cell.
This typically does happen to be the case, but is not actually enforced
(and the PCI msi-map binding even explicitly states support for 0 or 1
cells) - as a result we've now ended up with dodgy DTs out in the field
which depend on this behaviour to map a 1-cell specifier for a 2-cell
provider, despite that being bogus per the bindings themselves.

Since there is some potential use in being able to map at least single
input IDs to multi-cell output specifiers (and properly support 0-cell
outputs as well), add support for properly parsing and using the target
nodes' #cells values, albeit with the unfortunate complication of still
having to work around expectations of the old behaviour too.

Since there are multi-cell output specifiers, the callers of of_map_id()
may need to get the exact cell output value for further processing.
Update of_map_id() to set args_count in the output to reflect the actual
number of output specifier cells.

Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
---
 drivers/of/base.c  | 155 ++++++++++++++++++++++++++++++++++++++++-------------
 include/linux/of.h |   6 ++-
 2 files changed, 123 insertions(+), 38 deletions(-)

diff --git a/drivers/of/base.c b/drivers/of/base.c
index b3d002015192..7b22e2484e1c 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -2096,18 +2096,48 @@ int of_find_last_cache_level(unsigned int cpu)
 	return cache_level;
 }
 
+/*
+ * Some DTs have an iommu-map targeting a 2-cell IOMMU node while
+ * specifying only 1 cell. Fortunately they all consist of value '1'
+ * as the 2nd cell entry with the same target, so check for that pattern.
+ *
+ * Example:
+ *	IOMMU node:
+ *		#iommu-cells = <2>;
+ *
+ *	Device node:
+ *		iommu-map = <0x0000 &smmu 0x0000 0x1>,
+ *			    <0x0100 &smmu 0x0100 0x1>;
+ */
+static bool of_check_bad_map(const __be32 *map, int len)
+{
+	__be32 phandle = map[1];
+
+	if (len % 4)
+		return false;
+	for (int i = 0; i < len; i += 4) {
+		if (map[i + 1] != phandle || map[i + 3] != cpu_to_be32(1))
+			return false;
+	}
+	return true;
+}
+
 /**
  * of_map_id - Translate an ID through a downstream mapping.
  * @np: root complex device node.
  * @id: device ID to map.
  * @map_name: property name of the map to use.
+ * @cells_name: property name of target specifier cells.
  * @map_mask_name: optional property name of the mask to use.
  * @filter_np: optional device node to filter matches by, or NULL to match any.
  *	If non-NULL, only map entries targeting this node will be matched.
  * @arg: pointer to a &struct of_phandle_args for the result. On success,
- *	@arg->args[0] will contain the translated ID. If a map entry was
- *	matched, @arg->np will be set to the target node with a reference
- *	held that the caller must release with of_node_put().
+ *	@arg->args_count will be set to the number of output specifier cells
+ *	as defined by @cells_name in the target node, and
+ *	@arg->args[0..args_count-1] will contain the translated output
+ *	specifier values. If a map entry was matched, @arg->np will be set
+ *	to the target node with a reference held that the caller must release
+ *	with of_node_put().
  *
  * Given a device ID, look up the appropriate implementation-defined
  * platform ID and/or the target device which receives transactions on that
@@ -2116,17 +2146,19 @@ int of_find_last_cache_level(unsigned int cpu)
  * Return: 0 on success or a standard error code on failure.
  */
 int of_map_id(const struct device_node *np, u32 id,
-	       const char *map_name, const char *map_mask_name,
+	       const char *map_name, const char *cells_name,
+	       const char *map_mask_name,
 	       const struct device_node *filter_np, struct of_phandle_args *arg)
 {
 	u32 map_mask, masked_id;
-	int map_len;
+	int map_bytes, map_len, offset = 0;
+	bool bad_map = false;
 	const __be32 *map = NULL;
 
 	if (!np || !map_name || !arg)
 		return -EINVAL;
 
-	map = of_get_property(np, map_name, &map_len);
+	map = of_get_property(np, map_name, &map_bytes);
 	if (!map) {
 		if (filter_np)
 			return -ENODEV;
@@ -2136,11 +2168,9 @@ int of_map_id(const struct device_node *np, u32 id,
 		return 0;
 	}
 
-	if (!map_len || map_len % (4 * sizeof(*map))) {
-		pr_err("%pOF: Error: Bad %s length: %d\n", np,
-			map_name, map_len);
-		return -EINVAL;
-	}
+	if (map_bytes % sizeof(*map))
+		goto err_map_len;
+	map_len = map_bytes / sizeof(*map);
 
 	/* The default is to select all bits. */
 	map_mask = 0xffffffff;
@@ -2153,39 +2183,82 @@ int of_map_id(const struct device_node *np, u32 id,
 		of_property_read_u32(np, map_mask_name, &map_mask);
 
 	masked_id = map_mask & id;
-	for ( ; map_len > 0; map_len -= 4 * sizeof(*map), map += 4) {
+
+	while (offset < map_len) {
 		struct device_node *phandle_node;
-		u32 id_base = be32_to_cpup(map + 0);
-		u32 phandle = be32_to_cpup(map + 1);
-		u32 out_base = be32_to_cpup(map + 2);
-		u32 id_len = be32_to_cpup(map + 3);
+		u32 id_base, phandle, id_len, id_off, cells = 0;
+		const __be32 *out_base;
+
+		if (map_len - offset < 2)
+			goto err_map_len;
+
+		id_base = be32_to_cpup(map + offset);
 
 		if (id_base & ~map_mask) {
-			pr_err("%pOF: Invalid %s translation - %s-mask (0x%x) ignores id-base (0x%x)\n",
-				np, map_name, map_name,
-				map_mask, id_base);
+			pr_err("%pOF: Invalid %s translation - %s (0x%x) ignores id-base (0x%x)\n",
+			       np, map_name, map_mask_name, map_mask, id_base);
 			return -EFAULT;
 		}
 
-		if (masked_id < id_base || masked_id >= id_base + id_len)
-			continue;
-
+		phandle = be32_to_cpup(map + offset + 1);
 		phandle_node = of_find_node_by_phandle(phandle);
 		if (!phandle_node)
 			return -ENODEV;
 
+		if (!bad_map && of_property_read_u32(phandle_node, cells_name, &cells)) {
+			pr_err("%pOF: missing %s property\n", phandle_node, cells_name);
+			of_node_put(phandle_node);
+			return -EINVAL;
+		}
+
+		if (map_len - offset < 3 + cells) {
+			of_node_put(phandle_node);
+			goto err_map_len;
+		}
+
+		if (offset == 0 && cells == 2) {
+			bad_map = of_check_bad_map(map, map_len);
+			if (bad_map) {
+				pr_warn_once("%pOF: %s mismatches target %s, assuming extra cell of 0\n",
+					     np, map_name, cells_name);
+				cells = 1;
+			}
+		}
+
+		out_base = map + offset + 2;
+		offset += 3 + cells;
+
+		id_len = be32_to_cpup(map + offset - 1);
+		if (id_len > 1 && cells > 1) {
+			/*
+			 * With 1 output cell we reasonably assume its value
+			 * has a linear relationship to the input; with more,
+			 * we'd need help from the provider to know what to do.
+			 */
+			pr_err("%pOF: Unsupported %s - cannot handle %d-ID range with %d-cell output specifier\n",
+			       np, map_name, id_len, cells);
+			of_node_put(phandle_node);
+			return -EINVAL;
+		}
+		id_off = masked_id - id_base;
+		if (masked_id < id_base || id_off >= id_len) {
+			of_node_put(phandle_node);
+			continue;
+		}
+
 		if (filter_np && filter_np != phandle_node) {
 			of_node_put(phandle_node);
 			continue;
 		}
 
 		arg->np = phandle_node;
-		arg->args[0] = masked_id - id_base + out_base;
-		arg->args_count = 1;
+		for (int i = 0; i < cells; i++)
+			arg->args[i] = id_off + be32_to_cpu(out_base[i]);
+		arg->args_count = cells;
 
 		pr_debug("%pOF: %s, using mask %08x, id-base: %08x, out-base: %08x, length: %08x, id: %08x -> %08x\n",
-			np, map_name, map_mask, id_base, out_base,
-			id_len, id, masked_id - id_base + out_base);
+			np, map_name, map_mask, id_base, be32_to_cpup(out_base),
+			id_len, id, id_off + be32_to_cpup(out_base));
 		return 0;
 	}
 
@@ -2196,6 +2269,10 @@ int of_map_id(const struct device_node *np, u32 id,
 	arg->args[0] = id;
 	arg->args_count = 1;
 	return 0;
+
+err_map_len:
+	pr_err("%pOF: Error: Bad %s length: %d\n", np, map_name, map_bytes);
+	return -EINVAL;
 }
 EXPORT_SYMBOL_GPL(of_map_id);
 
@@ -2205,18 +2282,21 @@ EXPORT_SYMBOL_GPL(of_map_id);
  * @id: Requester ID of the device (e.g. PCI RID/BDF or a platform
  *      stream/device ID) used as the lookup key in the iommu-map table.
  * @arg: pointer to a &struct of_phandle_args for the result. On success,
- *	@arg->args[0] contains the translated ID. If a map entry was matched,
- *	@arg->np holds a reference to the target node that the caller must
- *	release with of_node_put().
+ *	@arg->args_count will be set to the number of output specifier cells
+ *	and @arg->args[0..args_count-1] will contain the translated output
+ *	specifier values. If a map entry was matched, @arg->np holds a
+ *	reference to the target node that the caller must release with
+ *	of_node_put().
  *
- * Convenience wrapper around of_map_id() using "iommu-map" and "iommu-map-mask".
+ * Convenience wrapper around of_map_id() using "iommu-map", "#iommu-cells",
+ * and "iommu-map-mask".
  *
  * Return: 0 on success or a standard error code on failure.
  */
 int of_map_iommu_id(const struct device_node *np, u32 id,
 		    struct of_phandle_args *arg)
 {
-	return of_map_id(np, id, "iommu-map", "iommu-map-mask", NULL, arg);
+	return of_map_id(np, id, "iommu-map", "#iommu-cells", "iommu-map-mask", NULL, arg);
 }
 EXPORT_SYMBOL_GPL(of_map_iommu_id);
 
@@ -2229,17 +2309,20 @@ EXPORT_SYMBOL_GPL(of_map_iommu_id);
  *	to match any. If non-NULL, only map entries targeting this node will
  *	be matched.
  * @arg: pointer to a &struct of_phandle_args for the result. On success,
- *	@arg->args[0] contains the translated ID. If a map entry was matched,
- *	@arg->np holds a reference to the target node that the caller must
- *	release with of_node_put().
+ *	@arg->args_count will be set to the number of output specifier cells
+ *	and @arg->args[0..args_count-1] will contain the translated output
+ *	specifier values. If a map entry was matched, @arg->np holds a
+ *	reference to the target node that the caller must release with
+ *	of_node_put().
  *
- * Convenience wrapper around of_map_id() using "msi-map" and "msi-map-mask".
+ * Convenience wrapper around of_map_id() using "msi-map", "#msi-cells",
+ * and "msi-map-mask".
  *
  * Return: 0 on success or a standard error code on failure.
  */
 int of_map_msi_id(const struct device_node *np, u32 id,
 		  const struct device_node *filter_np, struct of_phandle_args *arg)
 {
-	return of_map_id(np, id, "msi-map", "msi-map-mask", filter_np, arg);
+	return of_map_id(np, id, "msi-map", "#msi-cells", "msi-map-mask", filter_np, arg);
 }
 EXPORT_SYMBOL_GPL(of_map_msi_id);
diff --git a/include/linux/of.h b/include/linux/of.h
index 8548cd9eb4f1..51ac8539f2c3 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -462,7 +462,8 @@ const char *of_prop_next_string(const struct property *prop, const char *cur);
 bool of_console_check(const struct device_node *dn, char *name, int index);
 
 int of_map_id(const struct device_node *np, u32 id,
-	       const char *map_name, const char *map_mask_name,
+	       const char *map_name, const char *cells_name,
+	       const char *map_mask_name,
 	       const struct device_node *filter_np, struct of_phandle_args *arg);
 
 int of_map_iommu_id(const struct device_node *np, u32 id,
@@ -934,7 +935,8 @@ static inline void of_property_clear_flag(struct property *p, unsigned long flag
 }
 
 static inline int of_map_id(const struct device_node *np, u32 id,
-			     const char *map_name, const char *map_mask_name,
+			     const char *map_name, const char *cells_name,
+			     const char *map_mask_name,
 			     const struct device_node *filter_np,
 			     struct of_phandle_args *arg)
 {

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 14:10:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 14:10:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268979.1558148 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Znz-0005Qq-Po; Tue, 31 Mar 2026 14:10:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268979.1558148; Tue, 31 Mar 2026 14:10:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7Znz-0005Qj-NC; Tue, 31 Mar 2026 14:10:55 +0000
Received: by outflank-mailman (input) for mailman id 1268979;
 Tue, 31 Mar 2026 14:10:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Oleksandr_Tyshchenko@epam.com>) id 1w7Znx-0005Qd-Ih
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 14:10:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7Znw-00CLwN-RB
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 16:10:52 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Oleksandr_Tyshchenko@epam.com>)
 id 69cbd5e9-bab6-0a2a0a5309dd-0a2a450b94b8-6
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 16:10:52 +0200
Received: from [52.101.66.86]
 (helo=DUZPR83CU001.outbound.protection.outlook.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Oleksandr_Tyshchenko@epam.com>)
 id 69cbd5eb-ef63-0a2a450b0019-346542563a7b-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 16:10:51 +0200
Received: from AM4PR03MB11152.eurprd03.prod.outlook.com
 (2603:10a6:20b:6cc::22) by VI0PR03MB11578.eurprd03.prod.outlook.com
 (2603:10a6:800:30e::8) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 14:10:48 +0000
Received: from AM4PR03MB11152.eurprd03.prod.outlook.com
 ([fe80::bbbf:5b9b:1043:4510]) by AM4PR03MB11152.eurprd03.prod.outlook.com
 ([fe80::bbbf:5b9b:1043:4510%5]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 14:10:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=b6Hfu7SnhrF6JWdpewHGxVSnQ0vIHSxOxQJjIAhmDt78aL/vK/Oxy0axWzrpxam8AT1n9wDaXbOZFrSU/dqh7b5Nk+9rwy3zyleMxcuyNFZXLaotHSW8QyiOxoorOECoHMelaw80nI5+kYQnFvwJJF6evRgoE0pC2jbvBxJvNusKSKwpECxC4m3mo8MnkqGpiJr5YPugWJq/ZtkwEVevEOeZL/V8P1H3EoWEg2MftPE5jX2HPDImLLf7aoTICvcs7fi0Z9Qj5XHhaEkQL2Q+qzOcwd4AqSLqqa1jFYI17DS4pHk/1Ey+35VAC/KsDe2C7R//9sn0wJM5iM7Fxuh5zQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UOWCIWGQT2sgpAu08DLbsyMlb4Z/92ic4fk1qUDuUf4=;
 b=oK3KFgThkveN52qZaG9WwaRCVfiNatg+nLB2+utiFqFLvdMh/vYJ3SoU9wtKlLPmlK30Q3Migs+ADHfvWj4/g4txXD1fGyR9qhwFTBqpPloNXxPHloOVIGzI4irdU9SMmnah7VhQ+wjKnCmB6KIxkKjPngQty8X0vimu0RPDF9N0cR7ZML3jD/vG7wFdI03uZJSDDhE5CIWDVm/u1g2/OKGXho71c0bp+ZbBmMwlOn4ixC9UqvYdcCy0iQ25TOlayrRhfLTAbkKRLVHQUArTHB3mX9g2pL5dSuHGreMoVcrgMBi3H8B9RTST+0IfV+J2bs6Tr1MV3Uz3TbNaWeQ4+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=UOWCIWGQT2sgpAu08DLbsyMlb4Z/92ic4fk1qUDuUf4=;
 b=CE/zCOsgRowzEeiQ7PYO4Nlev2MY0vDj3sg1Halxh0UPZISrfdMUh7dmVlaQJjO/nNrOwOh0kCSAIMjHUUKvr09hDWzUyoP8LWhrRnAYTHTWi1cOTq4JFfhu4hojmOg03/t/+GqjCxSNCm0uzinANtGASr5h2LbtKU+/fpwtBedo7d9w8Yw+5QqJuhdY0Y5aXSHtSyinq5LWIMJlPD9/RDprsuGy7C6JcAQD8K5r1Ouuqj3zvcOo4XUAQ85bc8K+yQEXNXqeBbSYVZNxjZdC3gNenb/onPaeJVsnEdkeWcPB5g59OXQm81S5AmR7cQszDuKA1aqy2U7/GeJnRiEbxQ==
From: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
To: "Orzel, Michal" <michal.orzel@amd.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>
Subject: Re: [PATCH] xen/arm: Increase DOM0_FDT_EXTRA_SIZE to support max
 reserved memory banks
Thread-Topic: [PATCH] xen/arm: Increase DOM0_FDT_EXTRA_SIZE to support max
 reserved memory banks
Thread-Index:
 AQHcvSKiuRz6O/EU8kCzrBnRPjf187XBBxoAgAAlNICAANCdgIAAUd4AgAYDCgCAAGQ5AA==
Date: Tue, 31 Mar 2026 14:10:47 +0000
Message-ID: <4d18fa65-fb01-40ac-9354-023f243f7f41@epam.com>
References: <20260326131535.662466-1-oleksandr_tyshchenko@epam.com>
 <29769bd9-8410-417b-9ad8-84131956db57@amd.com>
 <7d52cf29-c0bb-4e39-ae10-2b43f3e8e921@epam.com>
 <618e3227-10c7-46e4-9328-3d7d981fddfa@amd.com>
 <89782bb0-d910-49b8-9a7d-83c3cf38d442@epam.com>
 <c8e8fbd1-33f8-469f-96c4-22d384196cdb@amd.com>
In-Reply-To: <c8e8fbd1-33f8-469f-96c4-22d384196cdb@amd.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: AM4PR03MB11152:EE_|VI0PR03MB11578:EE_
x-ms-office365-filtering-correlation-id: cc0866e8-3db1-4a8e-6189-08de8f2f4eab
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|1800799024|366016|376014|38070700021|18002099003|22082099003|56012099003;
x-microsoft-antispam-message-info:
 n2O/t4kTTh7GKdICcEiuzcZghzegESJmHyrbcMGSxmCRdbfIZiDw3GOR8U13eyI21N2Kt3xVNwbs1oZ3YYv4sj1Zwn0Km53oFpwomt3aKaarE+xgdQzVfSvl7aNBuvnzgFPqzu0vED1bz6TUQrnqvPJ3n98tXgEwUx9RjB+xJmMqWTsSRmbHy4iW4fQ7HvyQbH0yBsDHYWBaNgW/mHJ4438CIJFk5M810CMivGqqZViTt1HQv8PZ6Tbzcf4JDRg4cEY7N1wcs+YmvhlGcI3buHEBV+W7vUEhmlRImIpedHa4Q9HjDtq81fWU2yBjbrQJxlbhqWBVGkoMQxT1TfSeAFDIM2JRq2QiciKT8uYLO1pNFNCxJp8c/ScKmj0ZwPw1Hky7xfpWANG1locijOHas4Q3cTAi4/MR6OafmtD9aFvS/2BVDwFyDZNG3elGN6nEeAb0toNWkYRoyf/OOV8mF2gxdYOu7W2Yev4Cgj18IxJYyi6kRT/I3dX7NuCoq+QnsgyUZOXX1RYkeIrqkyInd4IuUE0xJPh7UuR5uh5TYFStkzvqhT2efasVkotb1GRiYy2oHTz8IUUDD5OUrSSihavHBL3tLiGp6aLlTmTo0BS2zaPSvw08kk0pQyM0K6PVP1sX24Nnmzi4XGs1gqBwtg6P/ht0Xdk6cBy/8q4duuNEQtkSyYZaUi4CUYyGO5YAnq8HICdcGGKmQo0WHHzNIOqRHZMAxyLJlkH3uI6PeGLemuh7nKx+Ep843usgPpDe9iv4ZdoOHK7tE0EKIY8tFhm+goQ8tUoprOucKpwG1q0=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM4PR03MB11152.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(1800799024)(366016)(376014)(38070700021)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?TWpFUE9MUTdoZDJwVmh2Z0pLYm5BSUVnalJ6NlBLQi9Nai9pYnRKanY4ZzdC?=
 =?utf-8?B?T2JFTEp1WDByRk5Ga3dRb2dXNmw1MEZDQnNYQ0pCM3F1Nll2S0N2anROZ2dl?=
 =?utf-8?B?RjRVQmZlK0hRdkllV1NkSWlyVUF0UEN2bE1CQzBLdzdvL3NnSk5iWkFqS2Ja?=
 =?utf-8?B?Y1Q2eUUvZTY2YVJkZTBubVlFMmV5L1lva2o0ZkNEajA4YXFKVGNFM0FLVU54?=
 =?utf-8?B?MERQZ01ONVVFY1pOVkR6aTFWZGJUd3drMWV3Rjg4cFpCREtycENlbVppUHVE?=
 =?utf-8?B?L05mRmhjRWNQSWhXb0NQRzE5RlJ4VytscGNScWdnamFmeFZwUHFzd1lLY1NE?=
 =?utf-8?B?WldIVmR0NThKODNOanR3WVJLaUdzK3hqTDRtZUdsSndIRFhOdmZZek9vUlB4?=
 =?utf-8?B?cVhaY3ZvRnVSUUdxZlZpVmtrN3VtUzRlWVFBbVFCZlYzVTAwSk5TbnBkQlpX?=
 =?utf-8?B?L1QzWkp5Q09Bdk1ZUHh1SDZqNXJiUitBZlhQVHBnREhRU2MvcEpzYWZXNmhh?=
 =?utf-8?B?ZGd5S0JtM01rUnJMaDh0a2sxbWMrRnZ0R3ZHQjliZ1o3WC9RamM1ais0ZVV2?=
 =?utf-8?B?TWFobFkxL2lIT3U3d0NtV2duT0ZZcVJDU0REajVNblhkUnpQallCbTRyTE9R?=
 =?utf-8?B?SjVQVVMzeG1pNnAzMHlCN1pMaHROVTdrU2RmbjN2TzFOUmQzMkZGdVB3VkVm?=
 =?utf-8?B?ZFAwdHNWUEhBLy9taWV0cEg5aDZOUnM4NGZpWTBZSzE1ck9LdEVRWFdaRnpV?=
 =?utf-8?B?Ymx1ZTlieGRlVm9Tc2FtRCs1ZUltMTkwWHcrVlpRVEtPSDNyNkRzdHV4UEFZ?=
 =?utf-8?B?SUgyVkVnN3VXMXA5RitrNXpacTlkeHBVNVE4MzlkWE5EQXN3SjNDTzZvQWV4?=
 =?utf-8?B?T0lkLzA5TmdadG5FTjlXcUg4ZGdhMCtGeEpiTzM4MisxL1JHR2c3VXhRT1JZ?=
 =?utf-8?B?YVJTclpwUldUOEVaWEQ3TnhBaEhYV1ZvTXJubEpSRlp5cXhnQ2lHUE9kWTF1?=
 =?utf-8?B?WTI5b0FaMytvTWEvdUpzMW1TdEh0WnhVNi9tczkxUDJmMmxDcFNtdW1Ya09v?=
 =?utf-8?B?NFZvTnUvcnF1ZmdLcjVGcDZmVnZZVHNKUzE3YnduSGpZYzBNcDk4Um9IdkhZ?=
 =?utf-8?B?bUN4RzRaV0tsUmZ5ZXQ1TDNPZnVHMnZtWWtCSDl6d29QTWdDUFB3eHdTUGFS?=
 =?utf-8?B?Zm9YNkJ4cktOb0NWanV2cklXZHgrVXd4bGo5bjBSWDc0T05oc2tyMm0zaFNz?=
 =?utf-8?B?SEhVc2t5TkowaXNyTnFaaVhaZjBiSnNZVHNJR3h3UGc0OFlKc2paOHNRczhY?=
 =?utf-8?B?RzhacEJlUWIraW5LbE0xTVVaSXExUHdlWE5kOWZ1OGQzc2Jwa1dSVXFlTU5k?=
 =?utf-8?B?WitaM3lkejArUDV3S3hlRXYvOWM0VGlrdG1KVlU1OFZaM0ppQlNieHVrN0gv?=
 =?utf-8?B?SzdOUnpYNGRpRERRUWlxQmdBRFF0WEdvWFdiZWtWZG85SjY2VkxUa0EyT0NK?=
 =?utf-8?B?OEY1Y1ZQRFhUaHV1cWVOenBwcVJUQjhDYnlaODY2TG1yNmNNb0Z3cWRWeWF1?=
 =?utf-8?B?TEFmcVJ3VFcreVE0WG1VNzZWUDRRU1NYWUNMZFJTOW5udFNsOHdRTFZDd2Qy?=
 =?utf-8?B?YU9wNE9YdmVib3JWakw5YUNHVlZxeWJONUJNelNid21RVWJSUzUyY2tYeDRR?=
 =?utf-8?B?dTZ2ZzFYbndtSTVnWVo0K3BXbHlHTHFueEgrL0hjMjZVRUpnS3hOc2l4S3g3?=
 =?utf-8?B?OWdZMnhMWTV1ZlNRT3dERTd5L2VqN0pUWnFGV3dleWsybWZwSDVMYXdVYUIw?=
 =?utf-8?B?VHpncm9DNkhDaHFlQlRTWUsrR0V4RWNQdjJLZHV1WlNDVW1wQ3d1U2dIS2sv?=
 =?utf-8?B?M0plYW9UTjYwY2puMFBRTmJYRjE5OXB0TzMwM241OU1FNzBlNGVhYTZwbmMz?=
 =?utf-8?B?QWorbWtubnR1SUNKeFFxY3lKRXdMdmFLUlFxVlZqVkNLcEJES3VRbG42aVpk?=
 =?utf-8?B?b2RZSlBiaDhiem1WU1h0NzZWMVBqNXBiZjVaREg5SlRrNkRCc01xTUo1eDh6?=
 =?utf-8?B?TTExMHVtMGVrcEIyTy9Md2svMkFhRUkyMzd2cU9rNGVwRk1ha2ZXZTlDOUNZ?=
 =?utf-8?B?UElzdnFIQ0JHalAzNDEvdmE2ODJsb284RDVzU2tISVN5ZWpkSGR0RGFCdWRL?=
 =?utf-8?B?TnMzdmRTYzJJL3NKZ0V6NStVK3FwVThWeUhVQXdzNUQ5U0FoUWZ4cHJsRFRr?=
 =?utf-8?B?RStLbTVFdG05MWszcGFXeTRQbGx0aE1WMDN1N2xlWlBKWlkwVnRzTk10WVIx?=
 =?utf-8?B?V2JTTlBCYnQ3QTFzcXgzc3M2Rko5R0IxbklFcVJic09vaTZyUy9UUEx4SnZM?=
 =?utf-8?Q?FFCjE/TuvszjKWqG3HnxQx4M+molJMAajqOeZ?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <D96CF595670A454A96C789816F18BE73@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: AM4PR03MB11152.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cc0866e8-3db1-4a8e-6189-08de8f2f4eab
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 14:10:47.8802
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: hLWEYBTZi/Q1tGF7+eUu7xD33yXWHXEL2klLcOM/O6mFYP7SgKf50BW91fmJyBehAfsgwTlSPNZSwAbpmw4CGsWomIpEzoWwpWZ3BLJC7co=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB11578
X-purgate-ID: tlsNG-42698a/1774966251-BBAA4112-9D79738B/0/0
X-purgate-type: clean
X-purgate-size: 8832

DQoNCk9uIDMvMzEvMjYgMTE6MTIsIE9yemVsLCBNaWNoYWwgd3JvdGU6DQoNCkhlbGxvIE1pY2hh
bA0KDQoNCj4gDQo+IA0KPiBPbiAyNy8wMy8yMDI2IDEzOjIzLCBPbGVrc2FuZHIgVHlzaGNoZW5r
byB3cm90ZToNCj4+DQo+Pg0KPj4gT24gMy8yNy8yNiAwOTozMCwgT3J6ZWwsIE1pY2hhbCB3cm90
ZToNCj4+DQo+PiBIZWxsbyBNaWNoYWwNCj4+DQo+Pj4NCj4+Pg0KPj4+IE9uIDI2LzAzLzIwMjYg
MjA6MDMsIE9sZWtzYW5kciBUeXNoY2hlbmtvIHdyb3RlOg0KPj4+Pg0KPj4+Pg0KPj4+PiBPbiAz
LzI2LzI2IDE4OjUwLCBPcnplbCwgTWljaGFsIHdyb3RlOg0KPj4+Pg0KPj4+PiBIZWxsbyBNaWNo
YWwNCj4+Pj4NCj4+Pj4+DQo+Pj4+Pg0KPj4+Pj4gT24gMjYvMDMvMjAyNiAxNDoxNSwgT2xla3Nh
bmRyIFR5c2hjaGVua28gd3JvdGU6DQo+Pj4+Pj4gWGVuIGZhaWxzIHRvIGNvbnN0cnVjdCB0aGUg
aGFyZHdhcmUgZG9tYWluJ3MgZGV2aWNlIHRyZWUgd2l0aA0KPj4+Pj4+IEZEVF9FUlJfTk9TUEFD
RSAoLTMpIHdoZW4gdGhlIGhvc3QgbWVtb3J5IG1hcCBpcyBoaWdobHkgZnJhZ21lbnRlZA0KPj4+
Pj4+IChlLmcuLCBudW1lcm91cyByZXNlcnZlZCBtZW1vcnkgcmVnaW9ucykuDQo+Pj4+Pj4NCj4+
Pj4+PiBUaGlzIG9jY3VycyBiZWNhdXNlIERPTTBfRkRUX0VYVFJBX1NJWkUgdW5kZXJlc3RpbWF0
ZXMgdGhlIHNwYWNlDQo+Pj4+Pj4gcmVxdWlyZWQgZm9yIHRoZSBnZW5lcmF0ZWQgZXh0cmEgL21l
bW9yeSBub2RlLiBtYWtlX21lbW9yeV9ub2RlKCkNCj4+Pj4+IFdoZXJlIGRvZXMgdGhpcyBleHRy
YSAvbWVtb3J5IG5vZGUgY29tZSBmcm9tPyBJZiB0aGlzIGlzIGZvciBub3JtYWwgcmVzZXJ2ZWQN
Cj4+Pj4+IG1lbW9yeSByZWdpb25zLCB0aGV5IHNob3VsZCBiZSBwcmVzZW50IGluIHRoZSBob3N0
IGR0YiBhbmQgdGhlcmVmb3JlIGFjY291bnRlZA0KPj4+Pj4gYnkgZmR0X3RvdGFsc2l6ZSAodGhl
IGhvc3QgZHRiIHNob3VsZCBoYXZlIHJlc2VydmVkIHJlZ2lvbnMgZGVzY3JpYmVkIGluIC9tZW1v
cnkNCj4+Pj4+IGFuZCAvcmVzZXJ2ZWQtbWVtb3J5LiBBcmUgeW91IHRyeWluZyB0byBhY2NvdW50
IGZvciBzdGF0aWMgc2htIHJlZ2lvbnM/DQo+Pj4+DQo+Pj4+DQo+Pj4+IEkgbWlnaHQgaGF2ZSBt
aXN1bmRlcnN0b29kIHNvbWV0aGluZywgYnV0IGhlcmUgaXMgbXkgYW5hbHlzaXM6DQo+Pj4+DQo+
Pj4+IFRoZSBleHRyYSAvbWVtb3J5IG5vZGUgaXMgZ2VuZXJhdGVkIGJ5IFhlbiBpdHNlbGYgaW4g
aGFuZGxlX25vZGUoKSAtPg0KPj4+PiBtYWtlX21lbW9yeV9ub2RlKCkgKHBsZWFzZSByZWZlciB0
byB0aGUgaWYgKCByZXNlcnZlZF9tZW0tPm5yX2JhbmtzID4gMA0KPj4+PiApIGNoZWNrKS4NCj4+
Pj4NCj4+Pj4gRXZlbiB0aG91Z2ggdGhlIG5vcm1hbCByZXNlcnZlZCBtZW1vcnkgcmVnaW9ucyBh
cmUgcHJlc2VudCBpbiB0aGUgaG9zdA0KPj4+PiBEVEIgKGFuZCB0aHVzIGFjY291bnRlZCBmb3Ig
aW4gZmR0X3RvdGFsc2l6ZSksIFhlbiBnZW5lcmF0ZXMgYSBuZXcNCj4+Pj4gL21lbW9yeSBub2Rl
IHNwZWNpZmljYWxseSBmb3IgdGhlIGhhcmR3YXJlIGRvbWFpbiB0byBkZXNjcmliZSB0aGVzZQ0K
Pj4+PiByZWdpb25zIGFzIHJlc2VydmVkIGJ1dCBwcmVzZW50IGluIHRoZSBtZW1vcnkgbWFwLiBB
bmQgc2luY2UgdGhpcyBub2RlDQo+Pj4+IGlzIGdlbmVyYXRlZCBhdCBydW50aW1lIChpdCBpcyBu
b3QgYSBkaXJlY3QgY29weSBmcm9tIHRoZSBob3N0IERUQiksDQo+Pj4+IGl0cyBzaXplIG11c3Qg
YmUgY292ZXJlZCBieSBET00wX0ZEVF9FWFRSQV9TSVpFLg0KPj4+IFllcywgYnV0IHRoZSBvcmln
aW5hbCBEVEIgc2hvdWxkIGFsc28gaGF2ZSB0aGVzZSByZXNlcnZlZCByZWdpb25zIGRlc2NyaWJl
ZCBpbg0KPj4+IC9tZW1vcnkgbm9kZXMsIHRodXMgdGFraW5nIHVwIHNvbWUgc3BhY2UgdGhhdCBp
cyBhbHJlYWR5IGFjY291bnRlZCBpbg0KPj4+IGZkdF90b3RhbHNpemUuIEFyZSB5b3UgdHJ5aW5n
IHRvIHNheSB0aGF0IGluIGhvc3QgRFRCLCB0aGVzZSByZXNlcnZlZCByYW5nZXMgZml0DQo+Pj4g
bmljZWx5IGludG8gZS5nLiBhIHNpbmdsZSAvbWVtb3J5IG5vZGUgcmFuZ2UgKGkuZS4gYSBzaW5n
bGUgcmVnIHBhaXIgY292ZXJpbmcNCj4+PiBtb3N0IG9mIHRoZSBSQU0pPw0KPj4NCj4+IHllcw0K
Pj4NCj4+DQo+PiAgICBJIGNhbiBzZWUgdGhhdCBpdCBtaWdodCBiZSBwb3NzaWJsZSBidXQgdGhl
IGNvbW1pdCBtc2cgbmVlZHMNCj4+PiB0byBiZSBjbGVhciBhYm91dCBpdC4gQXMgb2Ygbm93LCBp
dCByZWFkcyBhcyBpZiB0aGUgcHJvYmxlbSBvY2N1cmVkIGFsd2F5cyB3aGVuDQo+Pj4gdGhlcmUg
YXJlIG11bHRpcGxlIHJlc2VydmVkIG1lbW9yeSByZWdpb25zLiBUaGF0J3Mgbm90IHRydWUgaWYg
YSBob3N0IERUQg0KPj4+IGdlbmVyYXRlcyBvbmUgL21lbW9yeSBwZXIgb25lIC9yZXNlcnZlZC4N
Cj4+DQo+PiBZZXMsIHlvdSBhcmUgY29ycmVjdCB0aGF0IHRoZSB0b3RhbCBzaXplIGRlcGVuZHMg
b24gaG93IHRoZSBob3N0IERUQiBpcw0KPj4gc3RydWN0dXJlZCBjb21wYXJlZCB0byBob3cgWGVu
IHJlZ2VuZXJhdGVzIGl0IGF0IHJ1bnRpbWUuIFNvLCB0aGUgaXNzdWUNCj4+IGNhbiBhcmlzZSBp
ZiBob3N0IERUQiByZXByZXNlbnRzIFJBTSB1c2luZyBhIHNpbmdsZSwgbGFyZ2UgcmVnIGVudHJ5
IG9yDQo+PiBhIGZldyBlbnRyaWVzLg0KPj4NCj4+ICoqKg0KPj4NCj4+IEkgd2lsbCB1cGRhdGUg
dGhlIGNvbW1pdCBtZXNzYWdlIHRvIGNsYXJpZnkgdGhhdCwgc29tZXRoaW5nIGxpa2UgYmVsb3c6
DQo+Pg0KPj4gWGVuIGZhaWxzIHRvIGNvbnN0cnVjdCB0aGUgaGFyZHdhcmUgZG9tYWluJ3MgZGV2
aWNlIHRyZWUgd2l0aA0KPj4gRkRUX0VSUl9OT1NQQUNFICgtMykgd2hlbiB0aGUgaG9zdCBtZW1v
cnkgbWFwIGlzIGhpZ2hseSBmcmFnbWVudGVkDQo+PiAoZS5nLiwgbnVtZXJvdXMgcmVzZXJ2ZWQg
bWVtb3J5IHJlZ2lvbnMpIGFuZCB0aGUgaG9zdCBEVEIgcmVwcmVzZW50cw0KPj4gUkFNIGNvbXBh
Y3RseSAoZS5nLiwgYSBzaW5nbGUgcmVnIHBhaXIgb3IganVzdCBhIGZldykuDQo+Pg0KPj4gVGhp
cyBvY2N1cnMgYmVjYXVzZSBET00wX0ZEVF9FWFRSQV9TSVpFIHVuZGVyZXN0aW1hdGVzIHRoZSBz
cGFjZQ0KPj4gcmVxdWlyZWQgZm9yIHRoZSBnZW5lcmF0ZWQgZXh0cmEgL21lbW9yeSBub2RlLiBX
aGlsZSB0aGUgaG9zdCBEVEINCj4+IG1pZ2h0IHJlcHJlc2VudCBSQU0gY29tcGFjdGx5LCBtYWtl
X21lbW9yeV9ub2RlKCkgYWdncmVnYXRlcw0KPj4gYWxsIHJlc2VydmVkIHJlZ2lvbnMgaW50byBh
IHNpbmdsZSByZWcgcHJvcGVydHkuDQo+PiBXaXRoIE5SX01FTV9CQU5LUyAoMjU2KSBhbmQgNjQt
Yml0IGFkZHJlc3Mvc2l6ZSBjZWxscywgdGhpcyBwcm9wZXJ0eQ0KPj4gY2FuIGdyb3cgdXAgdG8g
NEtCICgyNTYgKiAxNiksIGVhc2lseSBleGNlZWRpbmcgdGhlIHNwYWNlIG9yaWdpbmFsbHkNCj4+
IG9jY3VwaWVkIGJ5IHRoZSBob3N0IERUQidzIG5vZGVzIHBsdXMgdGhlIGN1cnJlbnQgcGFkZGlu
ZywgdGhlcmVieQ0KPj4gb3ZlcmZsb3dpbmcgdGhlIGFsbG9jYXRlZCBidWZmZXIuDQo+IFRoaXMg
cmVhZHMgYmV0dGVyLg0KDQpvaw0KDQoNCj4gDQo+Pg0KPj4NCj4+Pg0KPj4+IEFub3RoZXIgaXNz
dWUgaXMgd2l0aCB0aGUgc3RhdGljIHNobSBub2Rlcy4gVXNlciBzcGVjaWZpZXMgdGhlIHJlZ2lv
bnMgaW4gdGhlDQo+Pj4gZG9tYWluIGNvbmZpZ3VyYXRpb24gYW5kIFhlbiBjcmVhdGVzICphZGRp
dGlvbmFsKiBub2RlcyB1bmRlciAvcmVzZXJ2ZWQgYW5kDQo+Pj4gL21lbW9yeSB0aGF0IGFmYWlj
dCB3ZSBkb24ndCBhY2NvdW50IGZvci4NCj4+DQo+PiBZZXMsIHlvdSBhcmUgcmlnaHQuDQo+Pg0K
Pj4gU2luY2UgdGhlc2UgU0hNIHN1Yi1ub2RlcyBhbmQgcHJvcGVydGllcyBhcmUgZ2VuZXJhdGVk
IHB1cmVseSBmcm9tIHRoZQ0KPj4gWGVuIGRvbWFpbiBjb25maWd1cmF0aW9uIGFuZCBhcmUgbm90
IHByZXNlbnQgaW4gdGhlIGhvc3QgRFRCLCB0aGV5IGhhdmUNCj4+IHplcm8gc3BhY2UgYWxsb2Nh
dGVkIGZvciB0aGVtIGluIGZkdF90b3RhbHNpemUuDQo+Pg0KPj4gU28gd2UgbmVlZCB0byByZWRl
ZmluZSB0aGUgbWFjcm8uIEkgcHJvcG9zZSB0aGUgZm9sbG93aW5nIGZvcm11bGEgdGhhdA0KPj4g
c2VwYXJhdGVzIHRoZSByYW5nZSBkYXRhICgxNiBieXRlcyBwZXIgYmFuayBpbiAvbWVtb3J5KSBm
cm9tIHRoZSBub2RlDQo+PiBvdmVyaGVhZCAoMTYwIGJ5dGVzIHBlciBTSE0gcmVnaW9uKToNCj4g
V2hhdCBpcyBpbmNsdWRlZCBpbiB0aGVzZSAxNjAgYnl0ZXM/IERpZCB5b3UgbWFudWFsbHkgY2hl
Y2sgYWxsIGZkdCBmdW5jdGlvbnMNCj4gaW5zaWRlIG1ha2Vfc2htX3Jlc3ZfbWVtb3J5X25vZGU/
DQoNCkFjY29yZGluZyB0byBteSBjYWxjdWxhdGlvbnMgKHdoaWNoLCBvZiBjb3Vyc2UsIG1pZ2h0
IGJlIG5vdCBwcmVjaXNlKToNCg0KLSBGRFRfQkVHSU5fTk9ERSArIHhlbi1zaG1lbUBmZmZmZmZm
ZmZmZmZmZmZmXDAgKDI3YiBwYWRkZWQgdG8gMjgpOiAzMiBieXRlcw0KLSBjb21wYXRpYmxlICgx
MmIgaGVhZGVyICsgMjFiIHN0cmluZyBwYWRkZWQgdG8gMjQpOiAzNiBieXRlcw0KLSByZWcgKDEy
YiBoZWFkZXIgKyAxNmIgcGF5bG9hZCBbNCBjZWxsc10pOiAyOCBieXRlcw0KLSB4ZW4saWQgKDEy
YiBoZWFkZXIgKyAxNmIgbWF4IHN0cmluZyBbMTUgY2hhcnMgKyBcMF0pOiAyOCBieXRlcw0KLSB4
ZW4sb2Zmc2V0ICgxMmIgaGVhZGVyICsgOGIgcGF5bG9hZCk6IDIwIGJ5dGVzDQotIEZEVF9FTkRf
Tk9ERTogNCBieXRlcw0KVG90YWwgZXhhY3Qgbm9kZSBwYXlsb2FkOiAxNDggYnl0ZXMuIEkgYWxz
byBhZGRlZCAxMi1ieXRlIG1hcmdpbiAoc28gaXQgDQpnZXRzIHJvdW5kZWQgdXAgdG8gdGhlIG5l
YXJlc3QgMTYtYnl0ZSBib3VuZGFyeSkuDQoNCj4gDQo+Pg0KPj4gI2RlZmluZSBET00wX0ZEVF9F
WFRSQV9TSVpFICgxMjggKyBzaXplb2Yoc3RydWN0IGZkdF9yZXNlcnZlX2VudHJ5KSArIFwNCj4+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOUl9NRU1fQkFOS1MgKiAxNikgKyAgICAg
ICAgICAgICAgICAgICAgXA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE5SX1NI
TUVNX0JBTktTICogMTYwKSkNCj4gSSB0aGluayB5b3Ugb25seSBhY2NvdW50ZWQgZm9yIHNobSBu
b2RlcyB1bmRlciAvcmVzZXJ2ZWQtbWVtb3J5LiBBcyBhbnkgb3RoZXINCj4gcmVzZXJ2ZWQgbWVt
b3J5IG5vZGUsIHRoZXkgYXJlIGFsc28gYWRkZWQgdG8gL21lbW9yeSByZWcgcHJvcGVydHkgKHNl
ZQ0KPiBEVF9NRU1fTk9ERV9SRUdfUkFOR0VfU0laRSkuDQoNCllvdSBhcmUgcmlnaHQsIGFuZCBJ
IGNvbXBsZXRlbHkgbWlzc2VkIHRoaXMgaW4gbXkgb3JpZ2luYWwgY2FsY3VsYXRpb24uIA0KSSBt
aXN0YWtlbmx5IGJlbGlldmVkIChOUl9NRU1fQkFOS1MgKiAxNikgd291bGQgY292ZXIgdGhlIGVu
dGlyZSANCmNhcGFjaXR5IG9mIHRoZSAvbWVtb3J5IG5vZGUncyByZWcuDQoNClRoZSBzaG1fbWVt
X25vZGVfZmlsbF9yZWdfcmFuZ2UoKSBhcHBlbmRzIHRoZSBzaGFyZWQgbWVtb3J5IGJhbmtzIA0K
ZGlyZWN0bHkgaW50byB0aGUgbWFpbiAvbWVtb3J5IG5vZGUncyByZWcuIEVhY2ggU0hNIGJhbmsg
YWRkcyAxNiBieXRlcyANCig0IGNlbGxzID0gMTYgYnl0ZXMpIHRvIHRoZSBtYWluIG1lbW9yeSBu
b2RlLg0KDQpTbywgSSB3aWxsIHJlZmluZSB0aGUgbWFjcm8gdG8gZXhwbGljaXRseSByZWZsZWN0
IGJvdGggdGhlIDE2MC1ieXRlIA0KZGlzY3JldGUgc3ViLW5vZGUgYW5kIHRoZSAxNi1ieXRlIGV4
dHJhIHRvIHRoZSAvbWVtb3J5IG5vZGU6DQoNCiNkZWZpbmUgRE9NMF9GRFRfRVhUUkFfU0laRSAo
MTI4ICsgc2l6ZW9mKHN0cnVjdCBmZHRfcmVzZXJ2ZV9lbnRyeSkgKyBcDQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoTlJfTUVNX0JBTktTICogMTYpICsgICAgICAgICAgICAgICAgICAg
IFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOUl9TSE1FTV9CQU5LUyAqICgxNjAg
KyAxNikpKQ0KDQpPciB3YWl0LCB3ZSBjYW4gYWN0dWFsbHkgZHJvcCB0aGUgU0hNIG92ZXJoZWFk
IGVudGlyZWx5IHdoZW4gDQpDT05GSUdfU1RBVElDX1NITT1uOg0KDQojZGVmaW5lIERPTTBfRkRU
X0VYVFJBX1NJWkUgKDEyOCArIHNpemVvZihzdHJ1Y3QgZmR0X3Jlc2VydmVfZW50cnkpICsgXA0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE5SX01FTV9CQU5LUyAqIDE2KSArICAgICAg
ICAgICAgICAgICAgICBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSVNfRU5BQkxF
RChDT05GSUdfU1RBVElDX1NITSkgPyAgICAgICAgIFwNCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChOUl9TSE1FTV9CQU5LUyAqICgxNjAgKyAxNikpIDogMCkpDQoNCg0KPiANCj4gfk1p
Y2hhbA0KPiANCg==


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 14:26:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 14:26:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1268995.1558159 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7a2r-0007JK-2p; Tue, 31 Mar 2026 14:26:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1268995.1558159; Tue, 31 Mar 2026 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 1w7a2q-0007JD-Ug; Tue, 31 Mar 2026 14:26:16 +0000
Received: by outflank-mailman (input) for mailman id 1268995;
 Tue, 31 Mar 2026 14:26:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Oleksii_Moisieiev@epam.com>) id 1w7a2o-0007J7-VY
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 14:26:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7a2o-003MXc-7S
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 16:26:14 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 69cbd977-5cb7-0a2a0a5109dd-0a2a4502dd1e-22
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 16:26:14 +0200
Received: from [40.107.130.105]
 (helo=MRWPR03CU001.outbound.protection.outlook.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Oleksii_Moisieiev@epam.com>)
 id 69cbd985-63bb-0a2a45020019-286b8269f35f-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 16:26:14 +0200
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com (2603:10a6:10:519::5)
 by DU4PR03MB10768.eurprd03.prod.outlook.com (2603:10a6:10:586::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 14:26:12 +0000
Received: from DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908]) by DU5PR03MB10263.eurprd03.prod.outlook.com
 ([fe80::8c9e:b301:61c0:3908%5]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 14:26:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=coNpm1XGlqV6/Mx2EkC2n3wpvCtPuFQrhM88y5BfZYDwwLMJaNIVUqXK4sujwpQCWjqm4NkaZHsGQKI72L0UD7N9XJI0R2g7Asb1dkLeT2plTbIYroXaecC+nZkyJci/jcLe5AzbQ4ge+zWhtgenTJ/WjfmBp/vrbm4Kf1dXBBEay/EvRAUSr7kv22HA8grCDVFeXF1j+aYdEoZ6ojcmSSyK1V+S4uS7k0bXngLQR7f7RlrMLQj5W8EgIjEJ6nhl+KWOqv414rt58miWbQkAnRYIAlmcAl2CgtKwyLD1cFDkCj3Wn7TDgsy/YVbXEJzgB+AtPL+C47OSfAA/C8Qfgw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=auX/H+5seOgdVHUx8+R81Sw6la45rzIhpNlEQUvT/1Q=;
 b=Ub/yuJcRUXHPbEZfaY9y5k45H2izHyUoYYZi6lqe9SpHZuOwvVVbbRTWXOSSEneWbUywlh6NVd0z/J/pEe5WAz7BDbXrX4g+hTQoQT6bFCS2LdQVWnOo/Az0wluxdj0VNOUPb3ukTC3q13pUgrdB29MWQivLbPpimcurbxDK1L/pMC2gLcEavRkYu3N6d0WXZnWEiTNiqHk2AnVX9NAxAN7mxYWDTWUMlfXjyYLpFhhSiaV+5Wv6WB+b42fzicqXhw6UZQHkv1sr0eiRrAfBOu2VaL7+RqpiuKtd68fUQoTCK1lo6aZ3IMFUtwWEt5k0S7QfCFmy6ZaxgBIYbo99sg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=auX/H+5seOgdVHUx8+R81Sw6la45rzIhpNlEQUvT/1Q=;
 b=F3Wac0uwrfa0G77aPLg8IvyXXusPi1/u2sbpbCujbFUkE3yzFUrN5Kd7GwCQ90rTBq87ULjfnwLsrrZfxmRSrnSoc2GfWTziBo9G7PshfPlth5qivhC8F3I8Zh8b0H4KI3k0OZzpxXNKpkmtO7Dipl+ckYuk4uY0lTCrgCFnINqyyfXO+73N1JJlPqjrFD2YVfB+QdPn/6m1L1ei/rxcyobMknEEttrKq/yyOym7ispl7EPUjWGD0RFwVUHdPFzZ+JLMObMFgbvNsOKisgZIkHarRCHB9rkoUq2vqc6a5YtI+axqRMFstfPeWRcyjkgL2DPtXypWqBFSEMkGi6lnMQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <2a987dfe-9702-445a-a7cf-7c426f348908@epam.com>
Date: Tue, 31 Mar 2026 17:26:08 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/sched: rtds: prevent extratime priority_level
 wraparound
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 Meng Xu <mengxu@cis.upenn.edu>
References: <b6e65a9fb94d581a31e1d06b241522c17a7863cc.1774943670.git.oleksii_moisieiev@epam.com>
 <eeeabd5c-083f-4275-bf3c-846e01b4a5ea@suse.com>
Content-Language: en-US
From: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
In-Reply-To: <eeeabd5c-083f-4275-bf3c-846e01b4a5ea@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: BE1P281CA0220.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:b10:88::9) To DU5PR03MB10263.eurprd03.prod.outlook.com
 (2603:10a6:10:519::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DU5PR03MB10263:EE_|DU4PR03MB10768:EE_
X-MS-Office365-Filtering-Correlation-Id: a026b31d-51e2-4539-060c-08de8f31756c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	cg0bImIKqbIy4T3MNNUNnT8RhqSrpAGgrEbF2ZMamT3jEEfro+eGLLy1qlU32gB2R4YqeY0wHGYGjMPPmHJTGu2qeJCJWb2BAJevjwN8ZubYx5ApErrCDSirZBQAhGdR4SSKnHZMQa3x63mysNNQVkRUL6qyMQXi/WVTuFEFECE8Wn7pUyslViiJcHO8msLCj46cC7Nq5uqyudat5jS0YVSCvbcJDHpJBAk5PWp/jiat6TVrmmOwpnPwX8Qa/30Y54/pJnsbA6Q4OECL3uZ9/F4j7iTI0XJNYVuGZJPIarFZHFNamybB+Po5c/LAZU4lO0gZMVDjZ8ZJhEfbjV/Nw2yXQEv7rPLSSXM8vhvAEM3vyrpvPqe/1Y7u5Rz8K5GeCPIxMBzYGTyT1PLSrwRWEXfXhFYQzFsn6G4NeBwrj/eAzB2od6twNK1fCMz4nWk1BXVkiwqzV5z/EJ+ZNzeMe4QgCDk5aVr4nfNQkIykGLyqUmWz+cmLAHbRSPyAs0YRoSaNC/s4KrHK5gO5VRDOpF9vzGGWRrW+Ta1LCz3T2Gi8KDK3Q6NiMw9U7CP7IdKp2YsLjykNBsa4U/aU8DLMBxCqAbph2z2UFXddmy844NszjqoWcpJZK/PJdTmtE+LdkCZPHs5CC9O7uLB4I03W4iHarO1eoac5f9LKhDHqoE6VTTwEvUfWiCjiGuk+DquLUMjICqQjm1U8g6MbmABPTi1g//ElzcRXCRNdSm4bgOg=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU5PR03MB10263.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TGEwdmFSZHY3ZXk1SVB0eHBndE90b2FUWE5zcEdLTmVWSS8zVDJ0bWU2Q0U1?=
 =?utf-8?B?aHIzUDFVT3REVGhIMEROS3JVZmlYMTluaHZYQXZPa21zMWNmQXhwOHA1V3VB?=
 =?utf-8?B?RXNhY3BUTVV3eVFUR2QwNmltU1ZnNWZ1ejMzelYxdWhXY3FuNmE2QzdJU3lx?=
 =?utf-8?B?YXBjWUVzWGRWaldWazJ6ZmdGcm5vdXdVQkUxVzNZa0s1QmJ1dkViMEJKV3hK?=
 =?utf-8?B?SE50UEF4eUUwSFhJRURiVm41azZ1MGxLcis2Q0VUQ0h5cXVFUjdtVXVVeE95?=
 =?utf-8?B?dnNCaEN3TGxVeExYQmJhRk4yVmtSMnhETkVKMWhYd3JsNUdQZHNlcDAzRzdF?=
 =?utf-8?B?cjRGaVVpdVZYdmJacHZ2M1gvWGpoazBpY040dDUvTEpJVXYvYkJQMkRtYlRk?=
 =?utf-8?B?Y1NLdWhOSThiWG5mdDU5cGFGOUluQlVDa2QyYW9XcTRPc0RFSlZNeEtLUU5J?=
 =?utf-8?B?cWs5NFJLMXVpckFGM3QvS3pBNjNhRlZEWDdCZHNzNzlFN0JFT1JqbE53M3cx?=
 =?utf-8?B?TjhGYllsSTU4WmozdFQ1YkFLZ1JmK25Za1p3a2pDcjUvTVpQUzFBVHRNNm4z?=
 =?utf-8?B?NFFLcWN2aUQzTllKYmgvZjMyN3hmUGlobElNSHQvWGhOcjNSTEZGTitSVVdi?=
 =?utf-8?B?cWRiQ3ZoVEZwaGRTMjJvQjJYWTFodnFrbzllK3B5a3l5L3RYT1BIRVRLUHgw?=
 =?utf-8?B?MEh4SzVlUzJrRGVEdi9PUkJRejFHWERneFZvMWs0YWR4QzQzZFovWllNNXdG?=
 =?utf-8?B?SzE5R010UEdKSFUzdHV0RDFEUXhtNTF5TCtCdys5bFdud1FjRHNCT0lNQ2Uy?=
 =?utf-8?B?T2xYUHJwUk1QbjM4bUIrd1FzclYrS2pUSDlzSFpmMnFFK2FBTGtNaGNyS3ZG?=
 =?utf-8?B?YUVsS1NZNUtUNWVxWEpQdEpMQnp2dGxrMlp3dzloWW1hVlo0cVYzcFJnQlZn?=
 =?utf-8?B?TmtiQmNEdnFQaWNBbXhQTXNjTUVJZGhjdG4rdWxkcTlHWVJ0ZUVrS2RUM3E0?=
 =?utf-8?B?T2wxNnIzamhYenNrWWVMbHVocHppY21BYnZtS256WVB6N3VuUFlDOURPZmtu?=
 =?utf-8?B?WGx1NVlRNGc0YmZIdUNEbnZlOXJ2Y3VFaHR6ekZTaktwbFptT3pSbTN2eG8x?=
 =?utf-8?B?REE3a2toRzAyYnJKRzFscE5OVjFRUk5aSTFIbDltNXhuMEhFT21DWSttb2V0?=
 =?utf-8?B?dG00elZyeldPQVhkMThCV0ZMbDhWNnQ0ZmNYUytUZ0cvL2dkakkrWitoeDk4?=
 =?utf-8?B?Zi8vYzk1NFhuMEpvdktRVUYwaitINVkxNGpKMTI1YU5LUjNRRlRCejAvbjBE?=
 =?utf-8?B?dk1JRzJNMlhNYnVBYVFuZjQ1OHBrcDE0MWppTEUvTmpvM3NqazFaOTF1KzdT?=
 =?utf-8?B?SWxtMWszL25UdU9pTTQ2Z0dyMDZRclVmdXdnbmRXQ3VyWW04c0RscS9NYTBB?=
 =?utf-8?B?L3JwdUtaeHprN1ViWG5KQjd2TkU5R3RCU1ovbUU0aUs5V3V1T0RobGdNS3dK?=
 =?utf-8?B?dy9UaVZqSXFDSVNCamxYYmU1a0ZBZDJGeXJzcW9zY0oyYWhNNmlUYUFETlZp?=
 =?utf-8?B?ZS9DdmM0RFdnYzE1cGhUWmhaMjNPcTg2QUNBVGFOam9pcFJGWUlzaWNRU0FO?=
 =?utf-8?B?OEJRdit6VGVrTTExSERIdDBVek5iRDgzd0tKWWNxUHlOcG0xSml4NlJZKzIy?=
 =?utf-8?B?bG5sNnl1WisvdXk0NWJZRlR6ZXRuaUxvckNJd2RYdjBsMFF4Z3FwRmxGNW5x?=
 =?utf-8?B?WWIwRGozZHRJYTlCUDA2eVVYZEYwZkR6NW5pc3lWa2N2N3RlT0dsTjV6djN5?=
 =?utf-8?B?NjhhSkx0YU9lUVJ6UHVKRndQcVo4ZmhWN3JUODBmTDhidWFocTBIQ1ZZZ3d3?=
 =?utf-8?B?eE9hbmh0aDQ1S2Y4QzdXWCtWVGZwbGZWbGlWZ25ZS08vd203MFhXV1d4dGNK?=
 =?utf-8?B?RmxURHRhZkIzWTA2aGNwTi9mY08zeS9HNFZxVEdnVC9oSjdsQWx3V2d5ODg5?=
 =?utf-8?B?b0kzbUZKVFNOaFhXbkE3NkQwUTlpTDdRcWN3dXV0MVppU0w1UVRVYnd5TGFZ?=
 =?utf-8?B?aEFzT2JrUEx4SkpoV0hpWEhDSnIzQ0hIUHMzQ3VmRDBFenArY1U2Y0VKaUxB?=
 =?utf-8?B?bVVFaDhLcWxmM3J5YzZnc0tteDlXa2lRRzVTUkFiTWdCVkJFMEZWaDJLWkMw?=
 =?utf-8?B?c1A1M3FmeWNqQ3N4TmdwQStOZ3FJWHMzdUY4Z2lvR0NZdk5UeDlTUUlTODdO?=
 =?utf-8?B?U044bmM5UW1lbEVqcDAyK0x5bHYwTyszRmQzN1hzRGIzYVhsL1V6Mkhwc3Y1?=
 =?utf-8?B?bGJUMDRoUGRTTGowd05acWVsa2RQR3YrU3FZUXJkQjZZVmdUMlJkZHhxZ3ZB?=
 =?utf-8?Q?JQrOp3ju7uagmkNg=3D?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a026b31d-51e2-4539-060c-08de8f31756c
X-MS-Exchange-CrossTenant-AuthSource: DU5PR03MB10263.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2026 14:26:12.0798
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: s+pTIjVHKEpTFAZ58IVDYkcSf2ZLmGMxAA/t3I+NR3EqixqFpipaoLB6HpQXRR8HidpcaUayBJ5dxpP0HHT3jAWQcqLX3EJ8K+vvK8lMYzk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR03MB10768
X-purgate-ID: tlsNG-720697/1774967174-4149FDB8-BEA8973B/0/0
X-purgate-type: clean
X-purgate-size: 2695


On 31/03/2026 11:23, Jürgen Groß wrote:
> On 31.03.26 09:54, Oleksii Moisieiev wrote:
>> In RTDS, burn_budget() increments priority_level for extratime units
>> whenever cur_budget is exhausted. As priority_level is unsigned and was
>> unbounded, it could eventually overflow to 0.
>>
>> A wrapped value of 0 is the highest RTDS priority, so an extratime unit
>> could unexpectedly regain top priority and preempt units with active
>> real-time reservations, violating EDF intent.
>>
>> Fix this by saturating priority_level at RTDS_MAX_PRIORITY_LEVEL instead
>> of incrementing unconditionally. Budget refill semantics are unchanged.
>>
>> Normal behavior is unchanged. Once saturated, priority_level remains at
>> the lowest priority until the next period update resets it.
>>
>> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
>
> Reviewed-by: Juergen Gross <jgross@suse.com>
>
> with one note: overflowing priority_level would require extremely long
> scheduling periods (probably at least several days), so this bug is
> more a theoretical one. Anyone configuring the rtds scheduler in such
> a way would probably deserve to experience the fallout from this bug. :-)
>
>
> Juergen
>
Hi Juergen,

Thank you for the review and R-b.

I understand that this bug is more theoretical but it still needs to be 
fixed for the certification.

--

Oleksii

>> ---
>>
>>   xen/common/sched/rt.c | 10 +++++++++-
>>   1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/xen/common/sched/rt.c b/xen/common/sched/rt.c
>> index 7b1f64a779..9c1027c388 100644
>> --- a/xen/common/sched/rt.c
>> +++ b/xen/common/sched/rt.c
>> @@ -110,6 +110,12 @@
>>    */
>>   #define RTDS_MIN_BUDGET     (MICROSECS(10))
>>   +/*
>> + * Maximum extratime demotion level. Saturating at this value avoids
>> + * unsigned wraparound back to 0 (highest scheduling priority).
>> + */
>> +#define RTDS_MAX_PRIORITY_LEVEL (~0U)
>> +
>>   /*
>>    * UPDATE_LIMIT_SHIFT: a constant used in rt_update_deadline(). 
>> When finding
>>    * the next deadline, performing addition could be faster if the 
>> difference
>> @@ -976,7 +982,9 @@ burn_budget(const struct scheduler *ops, struct 
>> rt_unit *svc, s_time_t now)
>>       {
>>           if ( has_extratime(svc) )
>>           {
>> -            svc->priority_level++;
>> +            if ( svc->priority_level < RTDS_MAX_PRIORITY_LEVEL )
>> +                svc->priority_level++;
>> +
>>               svc->cur_budget = svc->budget;
>>           }
>>           else
>


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 14:28:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 14:28:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269009.1558167 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7a5A-00082q-Gz; Tue, 31 Mar 2026 14:28:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269009.1558167; Tue, 31 Mar 2026 14: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 1w7a5A-00082j-E2; Tue, 31 Mar 2026 14:28:40 +0000
Received: by outflank-mailman (input) for mailman id 1269009;
 Tue, 31 Mar 2026 14:28:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7a59-00082d-7V
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 14:28:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7a58-00Fcay-JT
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 16:28:38 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69cbd9fd-5cb7-0a2a0a5109dd-0a2a450ac636-42
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 16:28:38 +0200
Received: from [209.85.221.54] (helo=mail-wr1-f54.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69cbda16-1772-0a2a450a0019-d155dd36e9f3-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 16:28:38 +0200
Received: by mail-wr1-f54.google.com with SMTP id
 ffacd0b85a97d-43b95e5b3afso3375189f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 07:28:38 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43d14c53928sm183131f8f.5.2026.03.31.07.28.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 07:28:37 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774967318; x=1775572118; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fH4wRtKzVIgGDJpY+fPXM+Nbj9QYXXdWqVlW01wy9mE=;
        b=TXaGQPa/nDjylBwYtHaj3k21m04DpMh+qHWwhhFpd7aB8vm5EXrxTakhIVdT9+kN3D
         B1R36tF+09d/xr7ae7wZZdx9bcN86NRQ/EyO1OCHkDBu0mUFnSkwKQ7jtVTmwUo1RoHX
         5uTh5eWlwMxpd28AheLVkUw6xTCC5AbzwiQ/0Urx9YWV0b7mumo76gpmIV869D9xYcmU
         bl+zHiMmcED+jhQLc0OYHBb81L5ApX0EMjGe045W2iU13mrKQvc4gf0yHdsYU0QPrD93
         MuVCGbliU6TwcArkOVu7PGRSe5uqCevHBMPariFmMNOaX9DEStUatz+bMb9U5Hie45SV
         PrnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774967318; x=1775572118;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fH4wRtKzVIgGDJpY+fPXM+Nbj9QYXXdWqVlW01wy9mE=;
        b=eyR4DjpN0Urocfjxa6uMG9gPEHYNWzBTnFB7F2SKnJf675MymvqLDCmv3wj5LthmNE
         LnyfDxyofuoVpLGja7taTxHwczVD5Zz2OvqI1wi6omv492d/18s1VhHDfYv/xPNXuun5
         5aL4K7P4Pt3/n6FJCSnYgwz1KMA+8NL6drGdTFcBuujcO4R/rMSRXtdY3vJsx+7vlVq9
         I6tQK1t57bsayvHevxuR+BIoV+P+JDo05ekgsGCCTcMcU7EhT3s6S469sq7KK3bWpMiE
         kx+QT0civREzBIpK79AsBMvv8LBDIbxoI3T1fyv6kLDSL6BbBlhG8dkvHXMxnH5q0mm2
         NkQw==
X-Forwarded-Encrypted: i=1; AJvYcCXPKb0jVsWBdKrgyDiRgjO7/ap9GfGNQgnHJ20SmAUMiiBD0MslNOkLi4ObQnpse8ubMDbbHIRzvFs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxxdqlPepfrr1t9DtOG1PmjjX7LcG/oaIhNnJtljHBABQwOE278
	62czT5qnHGI4u7noD1eu/3pdu/dlo8J8vuUOzNQ92XFeI1XvTZkyg8Fd+05sMGtpkw==
X-Gm-Gg: ATEYQzzptkI1+y5/36EmG0IjtgKAZHnu1Nu6TD6l0hKdm05VkQpBgzxcUHKbpj/hFiT
	hrqY/RNv48jdQlJBFsD4pKGwBBMoUAfWk52o/isAlhl8tn//4L/iK8Kg/I/hDxiwQ6pmjTe4Fsq
	rVRZTkBZe5VrM+FJwIT7U9iYP+hQOX7z5nMOTAmmBlIr0nk0PpI/cgWfPnWGFERZU7oDTf/2xnp
	1DNQr+x98N9rY81wJTg95j+iWmIT3N9t1LDke4u5d0kit2y+oUOAhvbIWHO033YvATUFPi5dDEx
	sSYwb4jaLXXFwGpF76svqyuvNJxI1CH4C7zIM+gza7m0ZqSdSTLaJFaBofK/kFW8xWiQdLUhvxG
	brt+iRGEX8gWB4t3roC/la5Lh+OcEsPhf6sUaivKQNVH/8pl7GucGMyTEad0nIRUuvzNhvGU5xc
	9naSh9agwH0qKSVem7+ZmNRoIjR43QwJsggLN4J6y4DHwix4SsF6OOaW3kh7oMD/zGwMvPFsHnm
	J8IUjF9VSkfBgA=
X-Received: by 2002:a5d:5f50:0:b0:43b:9a9f:8956 with SMTP id ffacd0b85a97d-43b9e99d921mr29169837f8f.22.1774967317766;
        Tue, 31 Mar 2026 07:28:37 -0700 (PDT)
Message-ID: <e4454dd5-0d17-4748-b2fa-67634e664667@suse.com>
Date: Tue, 31 Mar 2026 16:28:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/8] pci/iommu: Check that IOMMU supports removing
 devices
To: Mykyta Poturai <Mykyta_Poturai@epam.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: <cover.1772806036.git.mykyta_poturai@epam.com>
 <0ba0f0a8a7db5c762fa59e2eec627199c023f8b9.1772806036.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: <0ba0f0a8a7db5c762fa59e2eec627199c023f8b9.1772806036.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-4011c0/1774967318-53A9B900-15C74EB5/0/0
X-purgate-type: clean
X-purgate-size: 1353

On 09.03.2026 12:08, Mykyta Poturai wrote:
> before trying to remove them.
> Some IOMMU platforms, such as SMMU-V3 and IPMMU-VMSA don't support
> removing devices. Trying to call remove_device will result in a crash.
> So check that platform_ops have remove_device set before calling it.

Hmm, but both have .add_device populated. They ought to support
.remove_device, especially if ...

> --- a/xen/drivers/passthrough/pci.c
> +++ b/xen/drivers/passthrough/pci.c
> @@ -1545,6 +1545,12 @@ static int iommu_remove_device(struct pci_dev *pdev)
>      if ( !is_iommu_enabled(pdev->domain) )
>          return 0;
>  
> +    if ( !hd->platform_ops->remove_device )
> +    {
> +        printk(XENLOG_ERR "IOMMU: remove_device not supported by platform\n");
> +        return -EOPNOTSUPP;
> +    }
> +
>      for ( devfn = pdev->devfn ; pdev->phantom_stride; )
>      {
>          int rc;

... this is for PCI. (I'm simply not qualified to discuss DT.) This
being in the SR-IOV series, I have to assume for the change to be about
a PF de-configuring its VFs. This imo shouldn't end in -EOPNOTSUPP. In
fact PHYSDEVOP_pci_device_remove serves largely as a notification -
please check the xen_remove_device() use in Linux. That is, the device
is going to be gone anyway, and hence we'd better take care of that fact
in Xen.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 14:44:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 14:44:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269026.1558177 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7aKp-0002Vv-Rd; Tue, 31 Mar 2026 14:44:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269026.1558177; Tue, 31 Mar 2026 14:44:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7aKp-0002Vo-No; Tue, 31 Mar 2026 14:44:51 +0000
Received: by outflank-mailman (input) for mailman id 1269026;
 Tue, 31 Mar 2026 14:44:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7aKo-0002VP-Qn
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 14:44:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7aKm-00FjsE-9v
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 16:44:49 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69cbddd8-5cb7-0a2a0a5109dd-0a2a4503cf10-14
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 16:44:49 +0200
Received: from [209.85.128.51] (helo=mail-wm1-f51.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69cbdde1-1947-0a2a45030019-d1558033c04d-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 16:44:49 +0200
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-486ff3a0fc1so53100735e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 07:44:49 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4887c8bc9dcsm28618355e9.6.2026.03.31.07.44.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 07:44:48 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774968289; x=1775573089; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JNHDtr7WCG8iOLY51gB6FQhLwm54QF/rV8nNNDxSmTg=;
        b=SZnBq2wah/UIS+PZ8bKYQw0SKJQMt4DXrfoslloWA19TFkUv/0ZuISej9eR6fTOO+X
         FNvWZ8nhKp8FokBm/PWTRwl8ZsmCsgjrm4dEIEKLXxV0mjPLg/r901LIY0+vDifvSzsc
         UBImAbH8qdbBRd4urfs3VDZfqohtAVi9aYUd/HnkUpaheSCjXQp/69YwW+C7MBG7Cri3
         XXUgZCfhZS/AIUD9awHQaCFy1ZJZDR3PFcWjh8t+HFKVJ4fSjsdW5GACmtmCUZEiAJJd
         iY1jGpXW79VlavM42rNLgbfm2G4W2tI1WuHIqNi9Xr4vty8XqLYdivWdTdmmEoP8VJcq
         IuCA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774968289; x=1775573089;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JNHDtr7WCG8iOLY51gB6FQhLwm54QF/rV8nNNDxSmTg=;
        b=CAg5uV+QTutXZh9nbm9N9x6aGCXE4qM1CZKNuWEwnOvdrA0mWxmcW0cXnazTJ3N3Ei
         iwtbARaw54GCyKoZc5crJR7lB9RZDcg4ckmZkOg2c0ZiS8tkaz+9n2uzQA6/ErpWXub6
         AhoZj3aADnaHWVMOjRnd5e0BPtcl2OhaFbD13n5hQqJsHyh5HF9eBYobPVGCl6FI9SwR
         jNDAiAOAENe4ZT2/iEb87Et6Pe11R36ZugxfIp21l/cAKL30bLvjg+nynMFOjCV+5KTl
         q7vIBSeeItF5k/HZkF67bhMI4lnp2XvZRayB85DxppiwFXxLC3CykqWC6Yh/dpK2ono7
         z1Ag==
X-Forwarded-Encrypted: i=1; AJvYcCWhIQwiFxpAvzVzX35YfKo5TVio10A6EBLEh1KRJ3nplxlEcD4XaMh9Wmdy/mN/MLRlT21ziCesfig=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzKogfmd+AQXlWO/yWEHzbrqLP7uKUm8ujl0TNpZkOIqNv0AqW4
	Pobg62d/9ZpAVk0euW1WDhvpfbKsvWrMrDdpEk83jwuwccJMPm2M3wK2WIHeOAXTSw==
X-Gm-Gg: ATEYQzzlbHLXei/FBAsIALfnjvB9LO6bwgCCuALaoAeqx5ckE/b0aLOeuyft++YWPFB
	C6u79vb2NpuOHynwEtv9aho/x0bDBOvDrTQd9AHPSKjl2rDT+Ncc2AiV01d1gD0AFvgXygsSz8L
	TsqfMcNNJUR/flk7WGSbuhNNG1Ki6+MIBilP3ZP/3hSDE16mAtmZy3CM6AmirYuC1ez7uNXvbKw
	4Co8jKfu/VotzkBMGoKVyBPR9pe1LI5DB6Fk98fnGnU+aPN5Jq1zRxS0Bydu45vAOm7kO83peQk
	JvQO1nUoXJWOicaCdiJ9VYLXfDBKr8uhrQk+VRGeaOXPBVcuWe9gJ9INi1FzGDDB1EacoPeaj4Y
	CpTNy+sUqOeWySFkrM2fOmLY10rRTxwCFnXZ1X+4RAia5XOQ/X0xuBLdMTfSZ2kZNDlI8gufR/o
	vhjewy8TH8in7nHiUhlrPPbiDpMBHXhrfBLTRZU/7m4BYxpaCz/B9/ydp2eOwOKWlxI8GSTyASW
	czIM78yZh2cNtw=
X-Received: by 2002:a05:600c:8819:b0:485:3ff1:d5c5 with SMTP id 5b1f17b1804b1-48727d55fc3mr283673715e9.7.1774968288955;
        Tue, 31 Mar 2026 07:44:48 -0700 (PDT)
Message-ID: <977bc84d-cd7e-4362-9eb8-05d56b364d2b@suse.com>
Date: Tue, 31 Mar 2026 16:44:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 6/8] vpci: add SR-IOV support for PVH Dom0
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1772806036.git.mykyta_poturai@epam.com>
 <b4c86444970a65f56d20203fd77ee368e1eebfb9.1772806036.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: <b4c86444970a65f56d20203fd77ee368e1eebfb9.1772806036.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1774968289-49A5972C-50D41E06/0/0
X-purgate-type: clean
X-purgate-size: 3252

On 09.03.2026 12:08, Mykyta Poturai wrote:
> +static void cf_check control_write(const struct pci_dev *pdev, unsigned int reg,
> +                                   uint32_t val, void *data)
> +{
> +    unsigned int sriov_pos = reg - PCI_SRIOV_CTRL;
> +    struct vpci_sriov *sriov = pdev->vpci->sriov;
> +    struct callback_data *cb = NULL;
> +    uint16_t control = pci_conf_read16(pdev->sbdf, reg);
> +    bool mem_enabled = control & PCI_SRIOV_CTRL_MSE;
> +    bool new_mem_enabled = val & PCI_SRIOV_CTRL_MSE;
> +    bool enabled = control & PCI_SRIOV_CTRL_VFE;
> +    bool new_enabled = val & PCI_SRIOV_CTRL_VFE;
> +
> +    ASSERT(!pdev->info.is_virtfn);
> +
> +    if ( new_enabled == enabled && new_mem_enabled == mem_enabled )
> +    {
> +        pci_conf_write16(pdev->sbdf, reg, val);
> +        return;
> +    }
> +
> +    cb = xzalloc(struct callback_data);
> +
> +    if ( !cb )
> +    {
> +        gprintk(XENLOG_ERR,
> +                "%pp: Unable to allocate memory for SR-IOV enable\n",
> +                pdev);
> +        return;
> +    }
> +
> +    cb->pdev = pdev;
> +    cb->pos = sriov_pos;
> +    cb->value = val;
> +    cb->map = new_mem_enabled && !mem_enabled;
> +    cb->unmap = !new_mem_enabled && mem_enabled;
> +    cb->enable = new_enabled && !enabled;
> +    cb->disable = !new_enabled && enabled;
> +
> +    current->vpci.task = WAIT;
> +    current->vpci.wait.callback = control_write_cb;
> +    current->vpci.wait.data = cb;
> +    current->vpci.wait.end = NOW();
> +
> +    if ( cb->enable )
> +    {
> +        size_vf_bars((struct pci_dev *)pdev, sriov_pos);

No casting away of const, please. See Misra rule 11.8.

> +        /*
> +         * Only update the number of active VFs when enabling, when
> +         * disabling use the cached value in order to always remove the same
> +         * number of VFs that were active.
> +         */
> +        sriov->num_vfs = pci_conf_read16(pdev->sbdf,
> +                                         sriov_pos + PCI_SRIOV_NUM_VF);
> +        /*
> +         * NB: VFE needs to be enabled before calling pci_add_device so Xen
> +         * can access the config space of VFs. FIXME casting away const-ness
> +         * to modify vf_rlen
> +         */
> +        pci_conf_write16(pdev->sbdf, reg, control | PCI_SRIOV_CTRL_VFE);
> +        /*
> +         * The spec states that the software must wait at least 100ms before
> +         * attempting to access VF registers when enabling virtual functions
> +         * on the PF.
> +         */
> +
> +        current->vpci.wait.end = NOW() + MILLISECS(100);

Aren't you effectively busy-waiting for these 100ms, by simply returning "true"
from vpci_process_pending() until the time has passed? This imo is a no-go. You
want to set a timer and put the vCPU to sleep, to wake it up again when the
timer has expired. That'll then eliminate the need for the not-so-nice patch 4.

Question is whether we need to actually go this far (right away). I expect you
don't mean to hand PFs to DomU-s. As long as we keep them in the hardware
domain, can't we trust it to set things up correctly, just like we trust it in
a number of other aspects?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 14:45:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 14:45:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269024.1558184 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7aLR-0002xB-34; Tue, 31 Mar 2026 14:45:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269024.1558184; Tue, 31 Mar 2026 14:45:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7aLR-0002x4-0D; Tue, 31 Mar 2026 14:45:29 +0000
Received: by outflank-mailman (input) for mailman id 1269024;
 Tue, 31 Mar 2026 14:44:07 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <frank.li@nxp.com>) id 1w7aK7-0002TF-DY
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 14:44:07 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7aK5-00FjaW-0n
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 16:44:06 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <frank.li@nxp.com>)
 id 69cbdda7-bab6-0a2a0a5309dd-0a2a4504b2cc-34
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 16:44:06 +0200
Received: from [40.107.162.50]
 (helo=PA4PR04CU001.outbound.protection.outlook.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <frank.li@nxp.com>)
 id 69cbddb6-c823-0a2a45040019-286ba23251b5-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 16:44:06 +0200
Received: from PA4PR04MB9366.eurprd04.prod.outlook.com (2603:10a6:102:2a9::8)
 by PA1PR04MB10964.eurprd04.prod.outlook.com (2603:10a6:102:490::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 14:44:03 +0000
Received: from PA4PR04MB9366.eurprd04.prod.outlook.com
 ([fe80::75e4:8143:ddbc:6588]) by PA4PR04MB9366.eurprd04.prod.outlook.com
 ([fe80::75e4:8143:ddbc:6588%6]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 14:44:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=nxp.com header.i="@nxp.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AdYsGRhqRDD4FOd4IEbXR8BfmHiufSGLIQP420ghXe32R4WwVUQTVClzJ/1+7BvKQlkKk1M5TmhQWdd7XTb0XdLWeCTKGkOtKoP9dZ9wIMtC0so8EOW554J0mjzqjYGTkgqluanYZJH5fg4L64I5iN2RihtTiN/Hxll0oFs2JsbsRo+UVOWMz9WT4Jf5rbXOR/dms1uzqugkILAO1eddPho6oho3IHrIm2+VJEz7mvKW9Y0eNq2gPmvraH6pGTHYwvEcGXF5WyBOZOtEPEhrrvEweLesv3BSCkQ0ewgxGq5ddFzXrTzQhOj+aDf5ye+LgXClFDDr1PtNJ6iQ0ja3bw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5rjP5iBsy8kPlzbvdsL0bTiLtesZG/Q20ju5pr8bjOM=;
 b=JKB1te1GuyhYGbAB2/mjOavy3vmsXHwiuME8EBLDFxIUnR8S3v9hjNEC07E2YiOeuEgYgVX+kU0ZAH4Uj+MFdzLJfpInYkeqJFzpQMM/RBk0sJ4X9bM2GAgAd6rQil7tuep5aY6cOe2CJx0Ehh8gEW8VGiymsZq2j+J9eJHqdxSAtm4t2ApAzeda74PQle4LEfArJn6cl1Dt5DnuKv1NEqoGzYYtuQTXQjisPGsDSR7wg0c0DbVsBYrcUNyHA/jgkCxahwHIpYsdbdrYqwXldl0Wx8fB+dwv7c9KNGrE4HOfq5S0/3HWQIqru2QZrmn8fOutjN6Nqh3eRyVKH33Arw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass
 header.d=nxp.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5rjP5iBsy8kPlzbvdsL0bTiLtesZG/Q20ju5pr8bjOM=;
 b=XLm123qMbXdIcdERP9LJSClEFYgOIdUeYok6fwMk2NASndipY4t8+DWkE8m5wiUSnmExz8SKaRvcbInQr0KveVlZn+9M+psW0vtl/HJBXS8+5sCQVn72jr7UnjAOtOwqFv4okEC3clOsPGfxYwL+N3RSLDnk6xe/YBwJn6ABPVRwAVrG+IYK8IzQDVoGOBJyqWOZkLHOu/IOc3SV2YVEiGfbV4zmMeziG5/n+RWdnN298WrCq1QqVkvFjpQC4h2Fl5TItT0mkZX8VYWv5IlWgax3dRzusJe6xg+G4Ofx37lzAmo7Goac5oEMDf53m/R6QTAl9KhkWiG24s3MKxW5Ow==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nxp.com;
Date: Tue, 31 Mar 2026 10:43:53 -0400
From: Frank Li <Frank.li@nxp.com>
To: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
Cc: Nipun Gupta <nipun.gupta@amd.com>,
	Nikhil Agarwal <nikhil.agarwal@amd.com>,
	Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, Marc Zyngier <maz@kernel.org>,
	Lorenzo Pieralisi <lpieralisi@kernel.org>,
	Thomas Gleixner <tglx@kernel.org>,
	Saravana Kannan <saravanak@kernel.org>,
	Richard Zhu <hongxing.zhu@nxp.com>,
	Lucas Stach <l.stach@pengutronix.de>,
	Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
	Manivannan Sadhasivam <mani@kernel.org>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>, Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
	Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
	Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>,
	Rob Herring <robh@kernel.org>, Conor Dooley <conor+dt@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Prakash Gupta <prakash.gupta@oss.qualcomm.com>,
	Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
	linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
	linux-pci@vger.kernel.org, imx@lists.linux.dev,
	xen-devel@lists.xenproject.org, linux-arm-msm@vger.kernel.org,
	Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Subject: Re: [PATCH v12 2/3] of: Factor arguments passed to of_map_id() into
 a struct
Message-ID: <acvdqQvcitLTCZbm@lizhi-Precision-Tower-5810>
References: <20260331-parse_iommu_cells-v12-0-decfd305eea9@oss.qualcomm.com>
 <20260331-parse_iommu_cells-v12-2-decfd305eea9@oss.qualcomm.com>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260331-parse_iommu_cells-v12-2-decfd305eea9@oss.qualcomm.com>
X-ClientProxiedBy: SA9PR13CA0007.namprd13.prod.outlook.com
 (2603:10b6:806:21::12) To PA4PR04MB9366.eurprd04.prod.outlook.com
 (2603:10a6:102:2a9::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PA4PR04MB9366:EE_|PA1PR04MB10964:EE_
X-MS-Office365-Filtering-Correlation-Id: 238e6cc5-6b23-42b7-8b74-08de8f33f3ae
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|52116014|19092799006|7416014|366016|38350700014|18002099003|22082099003|56012099003;
X-Microsoft-Antispam-Message-Info:
	s+KiA0MI42oQZjz97rmpPSQpWToS2IRv5hA0wHFEfQ66xgsjPtoOj9ZMmslrUM076pQAWJvYsHrvyebukhsQ4XAJM0x8O6BXX2ThzbrWO7mZoEH19gL6CoGyh0GlJFkpg6aua4BGZ6iexITGS74I7lVFSD8iryLffh+f3zIymaPL0VpY10HItZbSpNwUhBJMZrNw6jOUjQbf6rdChQYUsOtbHt7zZ6gq1tr4GqKrcP7brmUv9qY/aqXkJyZEZmRFrwBE+9qci02UHmSc2Dxb5vjbIUTDfmRYLD5DQv6J+4pQ+B7ybsJmamaaOyQySdUABFrxi39veWV7dRYlA1g3EKGxQUEy2VuGhori2AXujb41clpsUDX0ZC/LEvZv1KSeeVdE2WtYg3/775tjh6psWWIDeuWNAKXhJAlTaLgLmT772D7qNn5E9l3r8gBnwYfpd7j/Pg4Gw8+gNIw6dl+zhC7GsXYX2o0JYRYe1lHikufyEb0wf2kzwqGfaMIGu85m3JmIujt5iqX/41X5axuxKJ+Lr9HcXRXL7uS62awNx5kOmAfp+cA9mwgWxGeBgnkiRyI1dCGQQ6Y1iyDdJGWvWs1Fd2TnaCCd3jEcGgo31etGPcBr0rrZWjvLlK1S4s088ncYmX7jveSGvWeC22lnFigMWvlBl7Pv9LNo59jxDXG6JVKFYS0sMMrnGMwySLXlLo7oqTJe4CHXYAg4pNh0Vg2OxRx/xwZxX8msLiFnQPzh5UdBxoxRWGn2sRjE0QpirfG6FVA3eLQScmd8ttAH/wvXFKDHg9J203L5SbCpd10=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9366.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(52116014)(19092799006)(7416014)(366016)(38350700014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?2iT9OHtHa+9bxUiNicBG0P/R6shQ/HaKVFFsEx/BcChqdn2hP08875nETbBY?=
 =?us-ascii?Q?8YQXh8M+Lq/Dc9PmWbMKeS6gk3m76p9SutE/+pCFHdLq8eAXlwYkIhm25Yvb?=
 =?us-ascii?Q?3k01D2Y0O+idAWzrbaTOGf4djc9rR7Hco89NznpwSSrxN7zxnQ3o0qfEy2/O?=
 =?us-ascii?Q?ZfdmNyoV433YFVUn2gaobRCr/K2e7+etGyjEWyfbxude9W+zhDFy9vjADNW7?=
 =?us-ascii?Q?n+6bncInM9l+tq4QUE0qQ+MYwsluE6r1pV2WAnn7EFHC1nbEo4yL+CjlgdJF?=
 =?us-ascii?Q?LkMhcYkH6Gqnw+87spICB1Agvr8DMwBMTNcqAFcvYHErR/QFlC9dBKacUlOj?=
 =?us-ascii?Q?fexhAH5qjYnXRRGsu2qtsIlwPKxBXmdur6LGhqi2m3qA+F/h2up6ux+9GNGK?=
 =?us-ascii?Q?5MIcbSh2W+6BO/TGpIcyrrhA/RrCQ6RKLLod50qo+FJfnDT8S0lupzDCszhC?=
 =?us-ascii?Q?ca0g3wxK9v+5TzwRzyobZMtze/QsZLZeeSrSN/s1u+Xr1IZWQcLSkswEGxqD?=
 =?us-ascii?Q?dXUzom5siSa/hCgVDYPMbi1D7CySRMFO1bDfb7g5f4MyPMURfDkPJVTfrIbc?=
 =?us-ascii?Q?DySVh8F8KTTkTzzFco0S121SLcD7hEDYIinqZVA6YatZQvu21HKik85kgKCK?=
 =?us-ascii?Q?Qih0BGi1es8UjMnf6qVmkBjqPcGGbUt+Ab9QJ2PbuW98Bmsk1IR1qrCnU4pO?=
 =?us-ascii?Q?A+WVAVTHUrjm+YMbp6Vj+0sugzC2+FV+IEWfGoUdlLNR8gmGh3rPAVN0vgKU?=
 =?us-ascii?Q?x8J4l5K8tEHSDXVaAq5EFMIbuwvmdZhCkr3857r6id0jyqMYnJ+WlGOiz052?=
 =?us-ascii?Q?6G/P4THBPjglA5biZc40FOkgZskw3TA1TG0FhRBRcWI5lcI3LKGzR0/w9yQ6?=
 =?us-ascii?Q?PI4a/D3TL3uGVZAfSwSC7cl8hWmRdUsVg6qy6onXnCT2Gs660pFDeCIUta4R?=
 =?us-ascii?Q?UUtIrkSGnDajFE92f8sgjKndjCIs+YSeWzXsdGrEP/Mini730vGxoLmNhuxU?=
 =?us-ascii?Q?l7IpdFMhTWH9AJw4Aqu6esRNdRKjJda5K9QsTezbVze0MzD469dPxZmwou9W?=
 =?us-ascii?Q?DJDjt0WfDEZJZyeaOpgR2VY6S0uk3kEsgk60LLcNm+sjPDuFwuC7CYMhOWaS?=
 =?us-ascii?Q?RwZSO0N0YhqxRtEKbriw6UbxrJ59IIwg+d9BdhSGB3U5Omy3xTW9jANTeXvu?=
 =?us-ascii?Q?Lpqf0UCJFae2MKBtBPHMk92yum9q/LFrIviKQzxoWszSznZ/+ZU2eYhgaNRp?=
 =?us-ascii?Q?Nb+yFP5GsfRLNBiWCEeVeJoD+i+8qzI0z7fvN5xRV2Q7HiJGZsicyieNDR0W?=
 =?us-ascii?Q?PJAR4hs2scosJne9NJZOlsh6KhBlcPjOyU7FUUJiaiWMeEDGG9XZb0navxRL?=
 =?us-ascii?Q?qSkZ51JRPmtejfhBr9fknmjREAR0JyL7fqGK0idQkmeDkZ/P4ZDwR0RK6/P5?=
 =?us-ascii?Q?qnyQUUjmF3G9gtHRp+3CmSnF0wfOLaGOUcu61W/yAVm0FMG1xURayDls+1/i?=
 =?us-ascii?Q?XZ+8ApOEGspIXbvX2mIoP+EWiBw3XiGdx2aUm277x72oSIgOkl5PdzagQwww?=
 =?us-ascii?Q?NJF84rfOgLEIHW91NEasYiqsE8aP43OGoD1i5gyBL5IRCi7RqdEWhhMmnQKh?=
 =?us-ascii?Q?ezClV6M0/ZDd1lMN68+OUJjAdCQ0riWdwr9wIaCBg8jhw6axWXAMfTL9QNbQ?=
 =?us-ascii?Q?AnKeRtx67LOv7ATbuRAP9nH19A5GPWGmH4Ypw0eShktvT4y5?=
X-OriginatorOrg: nxp.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 238e6cc5-6b23-42b7-8b74-08de8f33f3ae
X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9366.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2026 14:44:02.9815
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: bivlZCOpDITUUh4tp669044ekslH3QourhUFHd2mfBsju1B1zO8ghXCYuVQ+4SwORLuIHvnCqGNFkexd92bU6Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR04MB10964
X-purgate-ID: tlsNG-ebf023/1774968246-BA0839D1-90E44445/0/0
X-purgate-type: clean
X-purgate-size: 1834

On Tue, Mar 31, 2026 at 07:34:47PM +0530, Vijayanand Jitta wrote:
> From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
>
> Change of_map_id() to take a pointer to struct of_phandle_args
> instead of passing target device node and translated IDs separately.
> Update all callers accordingly.
>
> Add an explicit filter_np parameter to of_map_id() and of_map_msi_id()
> to separate the filter input from the output. Previously, the target
> parameter served dual purpose: as an input filter (if non-NULL, only
> match entries targeting that node) and as an output (receiving the
> matched node with a reference held). Now filter_np is the explicit
> input filter and arg->np is the pure output.
>
> Previously, of_map_id() would call of_node_put() on the matched node
> when a filter was provided, making reference ownership inconsistent.
> Remove this internal of_node_put() call so that of_map_id() now always
> transfers ownership of the matched node reference to the caller via
> arg->np. Callers are now consistently responsible for releasing this
> reference with of_node_put(arg->np) when done.
>
> Suggested-by: Rob Herring (Arm) <robh@kernel.org>
> Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> Signed-off-by: Vijayanand Jitta <vijayanand.jitta@oss.qualcomm.com>
> ---
>  drivers/cdx/cdx_msi.c                    |  7 ++--
>  drivers/iommu/of_iommu.c                 |  4 +-
>  drivers/irqchip/irq-gic-its-msi-parent.c | 11 ++++--
>  drivers/of/base.c                        | 68 +++++++++++++++++---------------
>  drivers/of/irq.c                         | 10 ++++-
>  drivers/pci/controller/dwc/pci-imx6.c    | 32 +++++++--------
>
> for imx part.
>
> Reviewed-by: Frank Li <Frank.Li@nxp.com>


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 14:55:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 14:55:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269050.1558195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7aVA-0004xB-6U; Tue, 31 Mar 2026 14:55:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269050.1558195; Tue, 31 Mar 2026 14:55:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7aVA-0004x3-1H; Tue, 31 Mar 2026 14:55:32 +0000
Received: by outflank-mailman (input) for mailman id 1269050;
 Tue, 31 Mar 2026 14:55:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7aV7-0004wx-RS
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 14:55:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7aV6-00HFEB-TJ
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 16:55:28 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69cbe053-2eae-0a2a0a5409dd-0a2a4501875a-26
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 16:55:28 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.0)
 (envelope-from <jbeulich@suse.com>)
 id 69cbe060-6fc9-0a2a45010019-d1558030d92e-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 16:55:28 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-4852b81c73aso49807015e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 07:55:28 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4887ad706d4sm19498575e9.8.2026.03.31.07.55.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 07:55:27 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774968928; x=1775573728; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wa74cH9IxdWKMW02DtpK07bgmhYZjiyqGaepjoiq7yA=;
        b=eeto2/176HpdyrqMHDyU8/TbQ33Yv+RXI/UXxehBAxpGo691R/r1hylGX9OhVkoI7M
         JDsOYN0y/78pRxAgeqp7XtL/fs84KFV7lTbEe+E5oGvcx6Alqqe+yMEnLho5G2f+imAL
         n9J4K6YrB+NBOYNDrymCSfxs5oWLG+l2gPUgU6oBPynXl1Yg6VIdv8FZ+R7U3vbPaKN+
         GO2gphfUYEMceAJwuiKmDDLWDjQPmFE9aXUgyqRw2+0VoufM5KIJE1UQJHCthPMnJBMS
         nUZneuUqEN93K+NWzkvLvu6O7ozA+bv22SSelIIzS/jkkbOz0x2uo2PbIyBhTOTIR7kV
         p7vw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774968928; x=1775573728;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wa74cH9IxdWKMW02DtpK07bgmhYZjiyqGaepjoiq7yA=;
        b=o+9O31WhMPopMqRUxS/1xWJpJn8p1WUDlQ5K0cfvSR5JSDi9OIn8iyxKzBfYFYo1vC
         APo/38pj13RNJAdQZJvDPUhOdrTgUS0E6f03wo1v8IzJJ3ttbf7Mv98dP10saDpclw6+
         ZJpkXS4V1y3AXZkvgzW7r6h1bHbHz/1YFnv/VS5Nmy8093xo6x6o+MqNjri07of5eyWo
         DUYbIWUXG4Mxi9f36ak0D3bZ67oub86OTIyzJ1D8baH0DsDUwt06WSa/wMCt4kW6Kanm
         sGpPr9YzM4OJ855n4eEGgs7s2PGTCv5rfCDqDKpSooUQeHT+wudwDmnkLFByKIgYRNyX
         fLbA==
X-Forwarded-Encrypted: i=1; AJvYcCWzswzFkIf92cuJFMHmIVzek47SCKgh5lZMGVWNfAVA7ofLpsPOLgZmnyqJc+Kw25M82OBgKv58jQ8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx4EIWB/Wb/daxefOBzeBPN4AouPvPrprH2W9oCbvhAn45YR4qR
	a7gldV7L3fAJTkJJSeFSgWZ4+ocfU9HpgwxOSZ3C0xXDO0hFy3iEc04TxWqzQoKABQ==
X-Gm-Gg: ATEYQzz/39quYslBWnVUm6Q0T4MoNklHyXkeuz1Iv2xZD/MyrSPVbGpic3WXbuqfih1
	u0U6JC13KHo+GB8i65/wAbpAKE9P6gVzSKuPqdh3Ip9FTzbT58Vu6pOnWl9VsD99UGaxcQxYFtp
	wRVp3O1qxnrVfda1gHe6mnMgKRi226zw3f6V3D2KF8X5MMGt/GPHQJi8rCFT4vZ/Ghv+KqpzcQU
	dZ/Gqi30M91IZDFn4P8VYfqt6LrI6NJkMbXxMYEqHd02NT7AFA+/nmR/EzB9G6h9DCl/L/Gma/z
	SMJcN7k/AtZEUKgaLEVnqszHfySbBFLs5olUWhvMY6ESl4dZVhQ0fMWmue5VKKX9NOPsjbwcUWy
	PBsyCclM/yAHQxe1pJ5eyVuQ5gqnrOXRpknD7OdsG2qeR7VNRQ6FM1uzQHbPFmK65eJMtfA/gKO
	MqOO8lARcHUNql84p8HmFnfBEUH9lqPHArdzCNkAPOoXvsS4+1jAiqNTDf+/7bAmxBiXYXJAGvo
	z0S5681zgmiGtQ=
X-Received: by 2002:a05:600c:608b:b0:485:557d:9fe with SMTP id 5b1f17b1804b1-48727efc9cdmr287528225e9.12.1774968927988;
        Tue, 31 Mar 2026 07:55:27 -0700 (PDT)
Message-ID: <f546ae19-2107-469e-847b-7a4cde2c95fd@suse.com>
Date: Tue, 31 Mar 2026 16:55:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/8] vpci: add a wait operation to the vpci vcpu
 pending actions
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: =?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.1772806036.git.mykyta_poturai@epam.com>
 <ec941fbf4f8bde23fc3867e47f5ada028f8003aa.1772806036.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: <ec941fbf4f8bde23fc3867e47f5ada028f8003aa.1772806036.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d62444/1774968928-B72F1185-174D8B41/0/0
X-purgate-type: clean
X-purgate-size: 5826

On 09.03.2026 12:08, Mykyta Poturai wrote:
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -175,76 +175,92 @@ static void modify_decoding(const struct pci_dev *pdev, uint16_t cmd,
>  
>  bool vpci_process_pending(struct vcpu *v)
>  {
> -    const struct pci_dev *pdev = v->vpci.pdev;
> -    struct vpci_header *header = NULL;
> -    unsigned int i;
> -
> -    if ( !pdev )
> -        return false;
> -
> -    read_lock(&v->domain->pci_lock);
> -
> -    if ( !pdev->vpci || (v->domain != pdev->domain) )
> +    switch ( v->vpci.task )
>      {
> -        v->vpci.pdev = NULL;
> -        read_unlock(&v->domain->pci_lock);
> -        return false;
> -    }
> -
> -    header = &pdev->vpci->header;
> -    for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
> +    case MODIFY_MEMORY:
>      {
> -        struct vpci_bar *bar = &header->bars[i];
> -        struct rangeset *mem = v->vpci.bar_mem[i];
> -        struct map_data data = {
> -            .d = v->domain,
> -            .map = v->vpci.cmd & PCI_COMMAND_MEMORY,
> -            .bar = bar,
> -        };
> -        int rc;
> +        const struct pci_dev *pdev = v->vpci.memory.pdev;
> +        struct vpci_header *header = NULL;
> +        unsigned int i;
>  
> -        if ( rangeset_is_empty(mem) )
> -            continue;
> +        if ( !pdev )
> +            break;
>  
> -        rc = rangeset_consume_ranges(mem, map_range, &data);
> +        read_lock(&v->domain->pci_lock);
>  
> -        if ( rc == -ERESTART )
> +        if ( !pdev->vpci || (v->domain != pdev->domain) )
>          {
> +            v->vpci.memory.pdev = NULL;
>              read_unlock(&v->domain->pci_lock);
> -            return true;
> +            break;
>          }
>  
> -        if ( rc )
> +        header = &pdev->vpci->header;
> +        for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
>          {
> -            spin_lock(&pdev->vpci->lock);
> -            /* Disable memory decoding unconditionally on failure. */
> -            modify_decoding(pdev, v->vpci.cmd & ~PCI_COMMAND_MEMORY,
> -                            false);
> -            spin_unlock(&pdev->vpci->lock);
> +            struct vpci_bar *bar = &header->bars[i];
> +            struct rangeset *mem = v->vpci.bar_mem[i];
> +            struct map_data data = {
> +                .d = v->domain,
> +                .map = v->vpci.memory.cmd & PCI_COMMAND_MEMORY,
> +                .bar = bar,
> +            };
> +            int rc;
> +
> +            if ( rangeset_is_empty(mem) )
> +                continue;
>  
> -            /* Clean all the rangesets */
> -            for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
> -                if ( !rangeset_is_empty(v->vpci.bar_mem[i]) )
> -                     rangeset_purge(v->vpci.bar_mem[i]);
> +            rc = rangeset_consume_ranges(mem, map_range, &data);
>  
> -            v->vpci.pdev = NULL;
> +            if ( rc == -ERESTART )
> +            {
> +                read_unlock(&v->domain->pci_lock);
> +                return true;
> +            }
>  
> -            read_unlock(&v->domain->pci_lock);
> +            if ( rc )
> +            {
> +                spin_lock(&pdev->vpci->lock);
> +                /* Disable memory decoding unconditionally on failure. */
> +                modify_decoding(pdev, v->vpci.memory.cmd & ~PCI_COMMAND_MEMORY,
> +                                false);
> +                spin_unlock(&pdev->vpci->lock);
> +
> +                /* Clean all the rangesets */
> +                for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
> +                    if ( !rangeset_is_empty(v->vpci.bar_mem[i]) )
> +                        rangeset_purge(v->vpci.bar_mem[i]);
> +
> +                v->vpci.memory.pdev = NULL;
> +
> +                read_unlock(&v->domain->pci_lock);
>  
> -            if ( !is_hardware_domain(v->domain) )
> -                domain_crash(v->domain);
> +                if ( !is_hardware_domain(v->domain) )
> +                    domain_crash(v->domain);
>  
> -            return false;
> +                break;
> +            }
>          }
> -    }
> -    v->vpci.pdev = NULL;
> +        v->vpci.memory.pdev = NULL;
>  
> -    spin_lock(&pdev->vpci->lock);
> -    modify_decoding(pdev, v->vpci.cmd, v->vpci.rom_only);
> -    spin_unlock(&pdev->vpci->lock);
> +        spin_lock(&pdev->vpci->lock);
> +        modify_decoding(pdev, v->vpci.memory.cmd, v->vpci.memory.rom_only);
> +        spin_unlock(&pdev->vpci->lock);
>  
> -    read_unlock(&v->domain->pci_lock);
> +        read_unlock(&v->domain->pci_lock);
> +
> +        break;
> +    }
> +    case WAIT:
> +        if ( NOW() < v->vpci.wait.end )
> +            return true;
> +        v->vpci.wait.callback(v->vpci.wait.data);
> +        break;

As just indicated in reply to patch 6, busy waiting isn't really acceptable.
This is even more so when the waiting exceeds the typical length of a
scheduling timeslice.

In that other reply I said to put the vCPU to sleep, but you need to be careful
there too: The domain may not expect its vCPU to not make any progress for such
an extended period of time. This may need doing entirely differently: Once the
command register was written, you may want to record the time after which
accesses to the VF registers are permitted. Earlier accesses would simply be
terminated. You may still additionally need a timer, in order to kick off BAR
mapping after that time. (Yet better would  be if the BAR mapping could be
done during those 100ms. After all that may be a reason why this long a delay
is specified: Firmware on the device may also require some time to set up the
BARs accordingly.)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 15:03:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 15:03:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269061.1558203 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7acJ-0006p1-R0; Tue, 31 Mar 2026 15:02:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269061.1558203; Tue, 31 Mar 2026 15:02:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7acJ-0006ou-Ns; Tue, 31 Mar 2026 15:02:55 +0000
Received: by outflank-mailman (input) for mailman id 1269061;
 Tue, 31 Mar 2026 15:02:55 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7acJ-0006oo-87
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 15:02:55 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7acI-00HGu1-Jy
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 17:02:54 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69cbe214-5cb7-0a2a0a5109dd-0a2a45039f52-24
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 17:02:54 +0200
Received: from [209.85.128.48] (helo=mail-wm1-f48.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69cbe21e-1947-0a2a45030019-d1558030d486-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 17:02:54 +0200
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-4852a9c6309so49282415e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 08:02:54 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4887adc5690sm32151685e9.2.2026.03.31.08.02.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 08:02:53 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774969374; x=1775574174; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Uev4nSdenuKcsR/y5Q48D1UtxhwbVJygbdeoloBJ2K4=;
        b=JGjJCfjbeB41qUgz4M6Bw4PWSqePmCL1jeWgDcsrAoxUF0YHwx0I8+kXnmHfvKxvtG
         jIfaDcFX0q3oIHfCVJ/+GmaLp8oNu0+uknyg9/7TrZsdQo8DARmGJSa6npHO5ady6Gxc
         HbeVtm6hE0olQeI5AhSQmUJ5S37A/WQxiseurFtQFZoNf7RqV6wDWt+U3KVrGd5tWq8e
         ebi+7RW8ZBENRckLGelYTEznxuND8i2hbjE8eSeS3LPRMB94UFrD5xT5ezbebATUwjVm
         w9cuz6qqJfN6/OmFy/yl5J570PWXmsuBfx0x+hbFK8L4o/0nVezmuzehPJk0Hvdm8XCV
         OReA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774969374; x=1775574174;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Uev4nSdenuKcsR/y5Q48D1UtxhwbVJygbdeoloBJ2K4=;
        b=LPPf3MJQn1vnFTD0wLw3eLqK6FjM83H65bm3BiIdL20vEl17+rhoO/89VqcV8JaS42
         dNGTxWMUd9VVxV0OR7iAoEQbweKYS6hHhc24DU813LQHDQpMgLFCVStQtGiGj1uinPKg
         8W3vIw4c/QBscuHD9angJ0WWFm9oGopRcWFsp3tevYDpmCymQ567gqlHt6+Sf4Z3yHWU
         VAswdgRArG4MnaY//uBR9WTmI8CBjWCpNrDyIc+QWaRBsqazCQi6ZQlDpclZGH+y0uTz
         BVPAIpp/IQ8sRB+ysvdYabpX//LpJBbsgosCmegZ5pt59MNacQQRLKra1m0Yl/Sl0g52
         IEIA==
X-Forwarded-Encrypted: i=1; AJvYcCVjkfaY3m5NUk68XYaCsGKXUd8JmQ7+ZZOJTYo3Bso/IsE+mdhhrZma+cTCJPngSnF3Oj5O82kcMlA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwyLeCQLF0SQsmfdMcGQBQszTT+OqcZM3+OBkDbJYcfetswyxvN
	TguxoodNuptQj7X1NPnzJ3uae8a7nYbwZ8L88PqEGSiukR3KberujR8fgNw5/u8pYg==
X-Gm-Gg: ATEYQzytD6GK6YwzBb31dYxX69ozLIz9ryzLCPcQucI25sggm0CigHPUdie6dDb75xU
	eQgvqoDLH4mGo6Fivm91bEtbQRKRs9NDARKiK6uW5rjxksZFb1sv8MOKvSMaGLN78IpsuCT1QPJ
	VKP4DxzyZmHHmaYQdPGS6UX1O6trbMTv2j19KDGXbixNw3NJPhJDQxRQNWRlSrLCqYmH0nEmZ7Q
	rKlH0GYT6+DGJ6p0yhhFSYIY1zGa3Tkg8JNcu0azw86gdzzeX1tpPde1kKfmhD/3zTb7bbJA51x
	51UI6mXMVaTCxPmy3/PDK2V7ucRtdY5/2MRoIje219q1aGT7g8oAFM0HrnPTpqAl8pi/pCIIUWc
	o4eXJfoj3JTkPubpta8v0s2G+A9vTe74gprtx81/ysUQHJ/qKTYByUBhlKxVxzOHdmGjXQXrkkU
	FUhRTXecIvDdPN2v3saOnV2dUjAJdpn5ByBoeLaCgMN9b341BV+heymRmhKU7mDMtVZmO2lGQWp
	az4Mp/JOk7cO4c=
X-Received: by 2002:a05:600c:8b2a:b0:485:3dfc:57c with SMTP id 5b1f17b1804b1-48727f5fe97mr292619545e9.21.1774969373785;
        Tue, 31 Mar 2026 08:02:53 -0700 (PDT)
Message-ID: <f6c3560a-1b2f-47a4-9386-77d688abba75@suse.com>
Date: Tue, 31 Mar 2026 17:02:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 7/8] vpci: add SR-IOV support for DomUs
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Stewart Hildebrand <stewart.hildebrand@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: <cover.1772806036.git.mykyta_poturai@epam.com>
 <4df03dab1dc6ce3ac7524b9f06641bc90889f743.1772806036.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: <4df03dab1dc6ce3ac7524b9f06641bc90889f743.1772806036.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1774969374-EAC8472C-6B3AE64D/0/0
X-purgate-type: clean
X-purgate-size: 2941

On 09.03.2026 12:08, Mykyta Poturai wrote:
> From: Stewart Hildebrand <stewart.hildebrand@amd.com>
> 
> SR-IOV virtual functions have simplified configuration space such as
> Vendor ID is derived from the physical function and Device ID comes
> from SR-IOV extended capability.
> Emulate those, so we can provide VID/DID pair for guests which use PCI
> passthrough for SR-IOV virtual functions.

Why do we need to emulate what hardware would do anyway? These are r/o
fields, so likely okay to expose directly to a domain?

> --- a/xen/drivers/vpci/sriov.c
> +++ b/xen/drivers/vpci/sriov.c
> @@ -303,6 +303,63 @@ int vf_init_header(struct pci_dev *vf_pdev)
>      sriov_pos = pci_find_ext_capability(pf_pdev, PCI_EXT_CAP_ID_SRIOV);
>      ctrl = pci_conf_read16(pf_pdev->sbdf, sriov_pos + PCI_SRIOV_CTRL);
>  
> +#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
> +    if ( pf_pdev->domain != vf_pdev->domain )

Is there anything speaking against the (preferred) use of
IS_ENABLED(CONFIG_HAS_VPCI_GUEST_SUPPORT) here?

> +    {
> +        uint16_t vid = pci_conf_read16(pf_pdev->sbdf, PCI_VENDOR_ID);
> +        uint16_t did = pci_conf_read16(pf_pdev->sbdf,
> +                                       sriov_pos + PCI_SRIOV_VF_DID);
> +        struct vpci_bar *bars = vf_pdev->vpci->header.bars;
> +        unsigned int i;
> +
> +        rc = vpci_add_register(vf_pdev->vpci, vpci_read_val, NULL,
> +                               PCI_VENDOR_ID, 2, (void *)(uintptr_t)vid);
> +        if ( rc )
> +            return rc;
> +
> +        rc = vpci_add_register(vf_pdev->vpci, vpci_read_val, NULL,
> +                               PCI_DEVICE_ID, 2, (void *)(uintptr_t)did);
> +        if ( rc )
> +            return rc;
> +
> +        /* Hardcode multi-function device bit to 0 */
> +        rc = vpci_add_register(vf_pdev->vpci, vpci_read_val, NULL,
> +                               PCI_HEADER_TYPE, 1,
> +                               (void *)PCI_HEADER_TYPE_NORMAL);
> +        if ( rc )
> +            return rc;
> +
> +        rc = vpci_add_register(vf_pdev->vpci, vpci_hw_read32, NULL,
> +                               PCI_CLASS_REVISION, 4, NULL);
> +        if ( rc )
> +            return rc;
> +
> +        for ( i = 0; i < PCI_SRIOV_NUM_BARS; i++ )
> +        {
> +            switch ( pf_pdev->vpci->sriov->vf_bars[i].type )
> +            {
> +            case VPCI_BAR_MEM32:
> +            case VPCI_BAR_MEM64_LO:
> +            case VPCI_BAR_MEM64_HI:
> +                rc = vpci_add_register(vf_pdev->vpci, vpci_guest_mem_bar_read,
> +                                       vpci_guest_mem_bar_write,
> +                                       PCI_BASE_ADDRESS_0 + i * 4, 4, &bars[i]);
> +                if ( rc )
> +                    return rc;
> +                break;
> +            default:

Nit: Blank lines please between non-fall-through case blocks.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 15:03:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 15:03:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269062.1558211 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7acO-00072Z-0e; Tue, 31 Mar 2026 15:03:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269062.1558211; Tue, 31 Mar 2026 15:02:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7acN-00072S-U2; Tue, 31 Mar 2026 15:02:59 +0000
Received: by outflank-mailman (input) for mailman id 1269062;
 Tue, 31 Mar 2026 15:02:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ilpo.jarvinen@linux.intel.com>) id 1w7acM-000723-MM
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 15:02:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7acM-008jFp-2C
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 17:02:58 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ilpo.jarvinen@linux.intel.com>)
 id 69cbe218-2eae-0a2a0a5409dd-0a2a4505be9e-30
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 17:02:56 +0200
Received: from [192.198.163.9] (helo=mgamail.intel.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <ilpo.jarvinen@linux.intel.com>)
 id 69cbe21e-5aeb-0a2a45050019-c0c6a30982d7-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 17:02:56 +0200
Received: from fmviesa006.fm.intel.com ([10.60.135.146])
 by fmvoesa103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 31 Mar 2026 08:02:53 -0700
Received: from ijarvine-mobl1.ger.corp.intel.com (HELO localhost)
 ([10.245.244.6])
 by fmviesa006-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 31 Mar 2026 08:02:37 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=Intel header.d=intel.com header.i="@intel.com" header.h="From:Date:To:cc:Subject:In-Reply-To:Message-ID:References:MIME-Version"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1774969376; x=1806505376;
  h=from:date:to:cc:subject:in-reply-to:message-id:
   references:mime-version;
  bh=lKc0nR0+3UMuWZyWz6l9MjXgdkdLagd8O+NJe9KaxV4=;
  b=F+VgHQWfalgDZR7+DXUrOTZbIFCO9gX3e0aVFmlQkhph+bZPKjQOLol8
   ryixn/jEJ3gHgKULmO5Jeffxxs6C8teDBbz9U3rkydZoeiLkeNVDKQq8C
   E3JaqdlsglB2zmIhcPtROCVTmWWP2XYvs+XJWy9En8ElVd0GQAdm9cyyN
   sbcY0i5+z1dAfaPQVzI4Gj2GuUV15lq+xMYLbKqQesmRVvNq3595hVp7n
   cJ7MjLt5OQWnOmMZQw/Qi7jO19cuuqH4f5FFrCheZv6WCF66F7F12e31n
   fXew6N8oYYJNjqHPLY7UETBKSPU6ZbrHgefuvnTCmrPIOaeWp5q6+rIr4
   A==;
X-CSE-ConnectionGUID: LIGBrtE1QUmVGo4tiRwZzA==
X-CSE-MsgGUID: dJNhuoN1S+S4Fh2xlD85+Q==
X-IronPort-AV: E=McAfee;i="6800,10657,11745"; a="86682249"
X-IronPort-AV: E=Sophos;i="6.23,152,1770624000"; 
   d="scan'208";a="86682249"
X-CSE-ConnectionGUID: JHiKH3CWRemnPBHhcWS24A==
X-CSE-MsgGUID: Gcx1iYgWQJaJHg3SKbkrBg==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.23,152,1770624000"; 
   d="scan'208";a="221527611"
From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>
Date: Tue, 31 Mar 2026 18:02:33 +0300 (EEST)
To: Danilo Krummrich <dakr@kernel.org>
cc: Russell King <linux@armlinux.org.uk>, 
    Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
    "Rafael J. Wysocki" <rafael@kernel.org>, 
    Ioana Ciornei <ioana.ciornei@nxp.com>, Nipun Gupta <nipun.gupta@amd.com>, 
    Nikhil Agarwal <nikhil.agarwal@amd.com>, 
    "K. Y. Srinivasan" <kys@microsoft.com>, 
    Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
    Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
    Bjorn Helgaas <bhelgaas@google.com>, Armin Wolf <W_Armin@gmx.de>, 
    Bjorn Andersson <andersson@kernel.org>, 
    Mathieu Poirier <mathieu.poirier@linaro.org>, 
    Vineeth Vijayan <vneethv@linux.ibm.com>, 
    Peter Oberparleiter <oberpar@linux.ibm.com>, 
    Heiko Carstens <hca@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>, 
    Alexander Gordeev <agordeev@linux.ibm.com>, 
    Christian Borntraeger <borntraeger@linux.ibm.com>, 
    Sven Schnelle <svens@linux.ibm.com>, 
    Harald Freudenberger <freude@linux.ibm.com>, 
    Holger Dengler <dengler@linux.ibm.com>, Mark Brown <broonie@kernel.org>, 
    "Michael S. Tsirkin" <mst@redhat.com>, Jason Wang <jasowang@redhat.com>, 
    Xuan Zhuo <xuanzhuo@linux.alibaba.com>, 
    =?ISO-8859-15?Q?Eugenio_P=E9rez?= <eperezma@redhat.com>, 
    Alex Williamson <alex@shazbot.org>, Juergen Gross <jgross@suse.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    "Christophe Leroy (CS GROUP)" <chleroy@kernel.org>, 
    LKML <linux-kernel@vger.kernel.org>, driver-core@lists.linux.dev, 
    linuxppc-dev@lists.ozlabs.org, linux-hyperv@vger.kernel.org, 
    linux-pci@vger.kernel.org, platform-driver-x86@vger.kernel.org, 
    linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, 
    linux-s390@vger.kernel.org, linux-spi@vger.kernel.org, 
    virtualization@lists.linux.dev, kvm@vger.kernel.org, 
    xen-devel@lists.xenproject.org, linux-arm-kernel@lists.infradead.org, 
    Gui-Dong Han <hanguidong02@gmail.com>
Subject: Re: [PATCH 06/12] platform/wmi: use generic driver_override
 infrastructure
In-Reply-To: <20260324005919.2408620-7-dakr@kernel.org>
Message-ID: <f15629e4-ef8f-b1b6-0158-064f40f111da@linux.intel.com>
References: <20260324005919.2408620-1-dakr@kernel.org> <20260324005919.2408620-7-dakr@kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
X-purgate-ID: tlsNG-c201ff/1774969376-9F283488-BFCDF2BC/0/0
X-purgate-type: clean
X-purgate-size: 4261

On Tue, 24 Mar 2026, Danilo Krummrich wrote:

> When a driver is probed through __driver_attach(), the bus' match()
> callback is called without the device lock held, thus accessing the
> driver_override field without a lock, which can cause a UAF.
> 
> Fix this by using the driver-core driver_override infrastructure taking
> care of proper locking internally.
> 
> Note that calling match() from __driver_attach() without the device lock
> held is intentional. [1]
> 
> Link: https://lore.kernel.org/driver-core/DGRGTIRHA62X.3RY09D9SOK77P@kernel.org/ [1]
> Reported-by: Gui-Dong Han <hanguidong02@gmail.com>
> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220789
> Fixes: 12046f8c77e0 ("platform/x86: wmi: Add driver_override support")
> Signed-off-by: Danilo Krummrich <dakr@kernel.org>
> ---
>  drivers/platform/wmi/core.c | 36 +++++-------------------------------
>  include/linux/wmi.h         |  4 ----
>  2 files changed, 5 insertions(+), 35 deletions(-)
> 
> diff --git a/drivers/platform/wmi/core.c b/drivers/platform/wmi/core.c
> index b8e6b9a421c6..750e3619724e 100644
> --- a/drivers/platform/wmi/core.c
> +++ b/drivers/platform/wmi/core.c
> @@ -842,39 +842,11 @@ static ssize_t expensive_show(struct device *dev,
>  }
>  static DEVICE_ATTR_RO(expensive);
>  
> -static ssize_t driver_override_show(struct device *dev, struct device_attribute *attr,
> -				    char *buf)
> -{
> -	struct wmi_device *wdev = to_wmi_device(dev);
> -	ssize_t ret;
> -
> -	device_lock(dev);
> -	ret = sysfs_emit(buf, "%s\n", wdev->driver_override);
> -	device_unlock(dev);
> -
> -	return ret;
> -}
> -
> -static ssize_t driver_override_store(struct device *dev, struct device_attribute *attr,
> -				     const char *buf, size_t count)
> -{
> -	struct wmi_device *wdev = to_wmi_device(dev);
> -	int ret;
> -
> -	ret = driver_set_override(dev, &wdev->driver_override, buf, count);
> -	if (ret < 0)
> -		return ret;
> -
> -	return count;
> -}
> -static DEVICE_ATTR_RW(driver_override);
> -
>  static struct attribute *wmi_attrs[] = {
>  	&dev_attr_modalias.attr,
>  	&dev_attr_guid.attr,
>  	&dev_attr_instance_count.attr,
>  	&dev_attr_expensive.attr,
> -	&dev_attr_driver_override.attr,
>  	NULL
>  };
>  ATTRIBUTE_GROUPS(wmi);
> @@ -943,7 +915,6 @@ static void wmi_dev_release(struct device *dev)
>  {
>  	struct wmi_block *wblock = dev_to_wblock(dev);
>  
> -	kfree(wblock->dev.driver_override);
>  	kfree(wblock);
>  }
>  
> @@ -952,10 +923,12 @@ static int wmi_dev_match(struct device *dev, const struct device_driver *driver)
>  	const struct wmi_driver *wmi_driver = to_wmi_driver(driver);
>  	struct wmi_block *wblock = dev_to_wblock(dev);
>  	const struct wmi_device_id *id = wmi_driver->id_table;
> +	int ret;
>  
>  	/* When driver_override is set, only bind to the matching driver */
> -	if (wblock->dev.driver_override)
> -		return !strcmp(wblock->dev.driver_override, driver->name);
> +	ret = device_match_driver_override(dev, driver);
> +	if (ret >= 0)
> +		return ret;
>  
>  	if (id == NULL)
>  		return 0;
> @@ -1076,6 +1049,7 @@ static struct class wmi_bus_class = {
>  static const struct bus_type wmi_bus_type = {
>  	.name = "wmi",
>  	.dev_groups = wmi_groups,
> +	.driver_override = true,
>  	.match = wmi_dev_match,
>  	.uevent = wmi_dev_uevent,
>  	.probe = wmi_dev_probe,
> diff --git a/include/linux/wmi.h b/include/linux/wmi.h
> index 75cb0c7cfe57..14fb644e1701 100644
> --- a/include/linux/wmi.h
> +++ b/include/linux/wmi.h
> @@ -18,16 +18,12 @@
>   * struct wmi_device - WMI device structure
>   * @dev: Device associated with this WMI device
>   * @setable: True for devices implementing the Set Control Method
> - * @driver_override: Driver name to force a match; do not set directly,
> - *		     because core frees it; use driver_set_override() to
> - *		     set or clear it.
>   *
>   * This represents WMI devices discovered by the WMI driver core.
>   */
>  struct wmi_device {
>  	struct device dev;
>  	bool setable;
> -	const char *driver_override;
>  };
>  
>  /**
> 

Hi,

I tried applying this to platform-drivers tree but it failed to compile so 
I ended up dropping the changed.

-- 
 i.



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 15:14:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 15:14:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269084.1558221 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7anT-0000vv-3A; Tue, 31 Mar 2026 15:14:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269084.1558221; Tue, 31 Mar 2026 15:14:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7anT-0000vj-0S; Tue, 31 Mar 2026 15:14:27 +0000
Received: by outflank-mailman (input) for mailman id 1269084;
 Tue, 31 Mar 2026 15:14:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Michal.Orzel@amd.com>) id 1w7anR-0000un-NX
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 15:14:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7anQ-008DAD-UZ
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 17:14:24 +0200
Received: from [10.42.69.8] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69cbe4bb-2eae-0a2a0a5409dd-0a2a45088716-46
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 17:14:24 +0200
Received: from [40.93.201.17]
 (helo=CY3PR05CU001.outbound.protection.outlook.com)
 by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Michal.Orzel@amd.com>)
 id 69cbe4ce-1950-0a2a45080019-285dc911191b-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 17:14:24 +0200
Received: from MN2PR07CA0017.namprd07.prod.outlook.com (2603:10b6:208:1a0::27)
 by CH1PPF4CBE7339A.namprd12.prod.outlook.com
 (2603:10b6:61f:fc00::60e) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.10; Tue, 31 Mar
 2026 15:14:16 +0000
Received: from BN1PEPF00005FFF.namprd05.prod.outlook.com
 (2603:10b6:208:1a0:cafe::52) by MN2PR07CA0017.outlook.office365.com
 (2603:10b6:208:1a0::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.29 via Frontend Transport; Tue,
 31 Mar 2026 15:14:16 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN1PEPF00005FFF.mail.protection.outlook.com (10.167.243.231) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9745.21 via Frontend Transport; Tue, 31 Mar 2026 15:14:16 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 31 Mar
 2026 10:14:15 -0500
Received: from [10.71.194.215] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 31 Mar 2026 10:14:14 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hDhlhE/0s/EPFaedOOd+Pas4PJq2IcryWr0BByishYp/5m/CTlYVeiaYkOV0nuj2Z6dnwePDyM/If7nyTXjuht2eKoiyzuBkqbzTcsR2LpseRfUHcVyExtHX1yeyVBoybK/T4KMF7DOY5809B1RpaTNLQLAMpxjQyFnzPGqd3cAhhdPMxWInK4xTh4cyY+5+4eSKVNBAOusnwuCkfkhDb6rqljQfMnt+GqkG98/qZbJ3+RpfoFyxnaKkjda+rukQxTg1uDHruQznU3MAIL15aR9BBygcwbPYl3B48sIyVtBoYJB+QVJzwmdNpB/6jNcsRpuJS3HMDDGJvM9+2Yt0OA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mMmZ8twaCp7Axb1ZfHLhjkGZVxF27h8/re92RhbYGiw=;
 b=ioLjAQ4oESVB8MUOLxdnDX4P7cKBVJU5Mx0X/DRXmxlJo2SxXlWaZCxI7l2KaRsFBCpi4gYKKyTAk8bJ4nbOO5zUcTgrIu0+GPKw4Nu7lu7g1FyP4XR++4HNFyktvCxmCsr5gKogAchTN8pxS+ql3XLezjn46AoYC4dj3DpMyW6a0PR9rs34OsztVh660Oil7FB0HiaN0NLZIY6FUC41SwArb+Xk2xKinfNKHZaauMh4NB0DTXD11+XFEyujRZnkkaULwfVHoXtctUqgoVKt4+wbQzRazwrifl1GapCmUcaR2/K7CyzLUeFmEeQx62LHOxGvhVBW7ykykvFt5UsEcQ==
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=mMmZ8twaCp7Axb1ZfHLhjkGZVxF27h8/re92RhbYGiw=;
 b=D4m+JQYcJKYluAOMACtkCVq6MIH0MioNZ7RYNpDAxvS14olREh5pc+CC8GnMXbEA6h+P+sZ7sVKP0yzp6KpqvjDDP8/zaOGsw44XiGPsbRrgflnw5RpiMg8zWQP3bNYzRe8oPxOoIzWrHFvijE7QhByMGkfy0X318ijIozwG6pk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com 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: <29922538-f20f-40e1-8ed2-5913b421008b@amd.com>
Date: Tue, 31 Mar 2026 17:14:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: Increase DOM0_FDT_EXTRA_SIZE to support max
 reserved memory banks
To: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@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: <20260326131535.662466-1-oleksandr_tyshchenko@epam.com>
 <29769bd9-8410-417b-9ad8-84131956db57@amd.com>
 <7d52cf29-c0bb-4e39-ae10-2b43f3e8e921@epam.com>
 <618e3227-10c7-46e4-9328-3d7d981fddfa@amd.com>
 <89782bb0-d910-49b8-9a7d-83c3cf38d442@epam.com>
 <c8e8fbd1-33f8-469f-96c4-22d384196cdb@amd.com>
 <4d18fa65-fb01-40ac-9354-023f243f7f41@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <4d18fa65-fb01-40ac-9354-023f243f7f41@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00005FFF:EE_|CH1PPF4CBE7339A:EE_
X-MS-Office365-Filtering-Correlation-Id: f41c5d8f-5a16-4aac-f0be-08de8f382cda
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700016|376014|1800799024|18002099003|56012099003|22082099003;
X-Microsoft-Antispam-Message-Info:
	E46HRrGSzmrOhnlVu7Igjq/iul/buydZYyrPoBQWJ93vcQXYBqrwQZaYyJQlahJGWWEMaVFqXl/wp68pmSHEZEN6nV9oR6DyyfzfrfJjVGSWR74of4bHtxyuOPKOLM4WpOQAQF4AYgmluwzd6w5vKCyORrCQi15BNZuVctOmqekKvtymMAIbJ15te7OV2iTPPIeomns2cmoUqEbBNXz6D78yZGRUDb+Wih4pbETVDzKyn6/jYB9UomATuqPkT5ncaDEg2f37SOEwpSCYciNYNYi2kRt3//Kf9AV9FdhR3y3FQ9MKIuF97edxuIbAcbMCzr71UZONe/eVArr52v2gJudIxrwjha7I2YNOYBar7Jgl9479Ss5rwPZaLy2So1OPM2wnl6+enOENY447RQ+JSOJfZXXTaGGX6FXJmlM0lET0ZdJcyKudWPjWXG2g4n6MZUfTNhjFQGp8BG9553T19MMeB89YfOLW96q0jkl34hpSMw1lUSKs7/Zl5pidHQe/Qy67Tab9IwjMqM6mqvHkdl7qcxy36NOiuywj810k8rWy+VfcMP8nQZ5YJbELs7q67HUDR41UkmMVPEo5x7LJWEnGLWZuklF6n1QoGu7+yA4k9zCi4uwjJUYoeWbZWHsRG5YTRcmyH7VhPbI+znjYiA7m27zpExLfC7TUgq5/5qoWkl78EYrdSQM3h47mrpbR/fztZwkItyzIJSeN5ZpSQLLlfykakEWtiHCPCfDhyFt8NxK1ELfQqCS6ajxVyH6TAw/wGeuCyZbB7+Co8vewjQ==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(376014)(1800799024)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	G52t9YdrkO2slIJE44G3ba4/BJq+u4u5pIUQ/F6lFYwL3d2DC7ONgUHThmK+vBzAZWDbR3+fpfTOBUn8EPbnooKstAuwSP+PNgrO29FES3q5grI2h7UZGIg9YMcyW/zvwQeHLOFbUVrzO6kihZ5qYNieDRmywXHiUCfT3IuePzdiXOaNBRZvjfFk2WNqbPaGfUcFTy5Sjy+Rd70lvf/v92gKPAREGfTpaDpTN7WZ8n+oy56whXQ69StWyk5/jtetL+tX4xnRzKfCy6TXc46k4WyIEgA/Da5soqaxsFm/ixee3SDGrR5z2gHkqhzfq43vuLQ0F1sbkTvR1T7bB6H6+wkmlWtLRmpUqBbneOqycH8TRfQiwWvcbgFzJbokT9EwTr8K7ZTGWTXmYkiffl6uoQ+t+qYm5tWOiBMtyHJJEeDAEa7XjYa5ladNOLg7qMSN
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2026 15:14:16.6225
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f41c5d8f-5a16-4aac-f0be-08de8f382cda
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00005FFF.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PPF4CBE7339A
X-purgate-ID: tlsNG-c1860d/1774970064-E3297726-5E6FE088/0/0
X-purgate-type: clean
X-purgate-size: 6758



On 31/03/2026 16:10, Oleksandr Tyshchenko wrote:
> 
> 
> On 3/31/26 11:12, Orzel, Michal wrote:
> 
> Hello Michal
> 
> 
>>
>>
>> On 27/03/2026 13:23, Oleksandr Tyshchenko wrote:
>>>
>>>
>>> On 3/27/26 09:30, Orzel, Michal wrote:
>>>
>>> Hello Michal
>>>
>>>>
>>>>
>>>> On 26/03/2026 20:03, Oleksandr Tyshchenko wrote:
>>>>>
>>>>>
>>>>> On 3/26/26 18:50, Orzel, Michal wrote:
>>>>>
>>>>> Hello Michal
>>>>>
>>>>>>
>>>>>>
>>>>>> On 26/03/2026 14:15, Oleksandr Tyshchenko wrote:
>>>>>>> Xen fails to construct the hardware domain's device tree with
>>>>>>> FDT_ERR_NOSPACE (-3) when the host memory map is highly fragmented
>>>>>>> (e.g., numerous reserved memory regions).
>>>>>>>
>>>>>>> This occurs because DOM0_FDT_EXTRA_SIZE underestimates the space
>>>>>>> required for the generated extra /memory node. make_memory_node()
>>>>>> Where does this extra /memory node come from? If this is for normal reserved
>>>>>> memory regions, they should be present in the host dtb and therefore accounted
>>>>>> by fdt_totalsize (the host dtb should have reserved regions described in /memory
>>>>>> and /reserved-memory. Are you trying to account for static shm regions?
>>>>>
>>>>>
>>>>> I might have misunderstood something, but here is my analysis:
>>>>>
>>>>> The extra /memory node is generated by Xen itself in handle_node() ->
>>>>> make_memory_node() (please refer to the if ( reserved_mem->nr_banks > 0
>>>>> ) check).
>>>>>
>>>>> Even though the normal reserved memory regions are present in the host
>>>>> DTB (and thus accounted for in fdt_totalsize), Xen generates a new
>>>>> /memory node specifically for the hardware domain to describe these
>>>>> regions as reserved but present in the memory map. And since this node
>>>>> is generated at runtime (it is not a direct copy from the host DTB),
>>>>> its size must be covered by DOM0_FDT_EXTRA_SIZE.
>>>> Yes, but the original DTB should also have these reserved regions described in
>>>> /memory nodes, thus taking up some space that is already accounted in
>>>> fdt_totalsize. Are you trying to say that in host DTB, these reserved ranges fit
>>>> nicely into e.g. a single /memory node range (i.e. a single reg pair covering
>>>> most of the RAM)?
>>>
>>> yes
>>>
>>>
>>>    I can see that it might be possible but the commit msg needs
>>>> to be clear about it. As of now, it reads as if the problem occured always when
>>>> there are multiple reserved memory regions. That's not true if a host DTB
>>>> generates one /memory per one /reserved.
>>>
>>> Yes, you are correct that the total size depends on how the host DTB is
>>> structured compared to how Xen regenerates it at runtime. So, the issue
>>> can arise if host DTB represents RAM using a single, large reg entry or
>>> a few entries.
>>>
>>> ***
>>>
>>> I will update the commit message to clarify that, something like below:
>>>
>>> Xen fails to construct the hardware domain's device tree with
>>> FDT_ERR_NOSPACE (-3) when the host memory map is highly fragmented
>>> (e.g., numerous reserved memory regions) and the host DTB represents
>>> RAM compactly (e.g., a single reg pair or just a few).
>>>
>>> This occurs because DOM0_FDT_EXTRA_SIZE underestimates the space
>>> required for the generated extra /memory node. While the host DTB
>>> might represent RAM compactly, make_memory_node() aggregates
>>> all reserved regions into a single reg property.
>>> With NR_MEM_BANKS (256) and 64-bit address/size cells, this property
>>> can grow up to 4KB (256 * 16), easily exceeding the space originally
>>> occupied by the host DTB's nodes plus the current padding, thereby
>>> overflowing the allocated buffer.
>> This reads better.
> 
> ok
> 
> 
>>
>>>
>>>
>>>>
>>>> Another issue is with the static shm nodes. User specifies the regions in the
>>>> domain configuration and Xen creates *additional* nodes under /reserved and
>>>> /memory that afaict we don't account for.
>>>
>>> Yes, you are right.
>>>
>>> Since these SHM sub-nodes and properties are generated purely from the
>>> Xen domain configuration and are not present in the host DTB, they have
>>> zero space allocated for them in fdt_totalsize.
>>>
>>> So we need to redefine the macro. I propose the following formula that
>>> separates the range data (16 bytes per bank in /memory) from the node
>>> overhead (160 bytes per SHM region):
>> What is included in these 160 bytes? Did you manually check all fdt functions
>> inside make_shm_resv_memory_node?
> 
> According to my calculations (which, of course, might be not precise):
> 
> - FDT_BEGIN_NODE + xen-shmem@ffffffffffffffff\0 (27b padded to 28): 32 bytes
> - compatible (12b header + 21b string padded to 24): 36 bytes
> - reg (12b header + 16b payload [4 cells]): 28 bytes
> - xen,id (12b header + 16b max string [15 chars + \0]): 28 bytes
> - xen,offset (12b header + 8b payload): 20 bytes
> - FDT_END_NODE: 4 bytes
> Total exact node payload: 148 bytes. I also added 12-byte margin (so it 
> gets rounded up to the nearest 16-byte boundary).
> 
>>
>>>
>>> #define DOM0_FDT_EXTRA_SIZE (128 + sizeof(struct fdt_reserve_entry) + \
>>>                               (NR_MEM_BANKS * 16) +                    \
>>>                               (NR_SHMEM_BANKS * 160))
>> I think you only accounted for shm nodes under /reserved-memory. As any other
>> reserved memory node, they are also added to /memory reg property (see
>> DT_MEM_NODE_REG_RANGE_SIZE).
> 
> You are right, and I completely missed this in my original calculation. 
> I mistakenly believed (NR_MEM_BANKS * 16) would cover the entire 
> capacity of the /memory node's reg.
> 
> The shm_mem_node_fill_reg_range() appends the shared memory banks 
> directly into the main /memory node's reg. Each SHM bank adds 16 bytes 
> (4 cells = 16 bytes) to the main memory node.
> 
> So, I will refine the macro to explicitly reflect both the 160-byte 
> discrete sub-node and the 16-byte extra to the /memory node:
> 
> #define DOM0_FDT_EXTRA_SIZE (128 + sizeof(struct fdt_reserve_entry) + \
>                               (NR_MEM_BANKS * 16) +                    \
>                               (NR_SHMEM_BANKS * (160 + 16)))
> 
> Or wait, we can actually drop the SHM overhead entirely when 
> CONFIG_STATIC_SHM=n:
> 
> #define DOM0_FDT_EXTRA_SIZE (128 + sizeof(struct fdt_reserve_entry) + \
>                               (NR_MEM_BANKS * 16) +                    \
>                               (IS_ENABLED(CONFIG_STATIC_SHM) ?         \
>                               (NR_SHMEM_BANKS * (160 + 16)) : 0))
Yes, the CONFIG was my next question. I'm ok with this solution.

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 15:15:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 15:15:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269091.1558230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7ao4-0001MH-Al; Tue, 31 Mar 2026 15:15:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269091.1558230; Tue, 31 Mar 2026 15: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 1w7ao4-0001MA-83; Tue, 31 Mar 2026 15:15:04 +0000
Received: by outflank-mailman (input) for mailman id 1269091;
 Tue, 31 Mar 2026 15:15:03 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7ao2-0001Lw-S9
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 15:15:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7ao2-002KOX-7w
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 17:15:02 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69cbe4f5-bab6-0a2a0a5309dd-0a2a4501bf2a-6
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 17:15:01 +0200
Received: from [209.85.128.52] (helo=mail-wm1-f52.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.0)
 (envelope-from <jbeulich@suse.com>)
 id 69cbe4f5-6fc9-0a2a45010019-d1558034bd3e-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 17:15:01 +0200
Received: by mail-wm1-f52.google.com with SMTP id
 5b1f17b1804b1-486ff201041so57717845e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 08:15:01 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4887e80a5e2sm45040965e9.1.2026.03.31.08.15.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 08:15:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774970101; x=1775574901; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Hp8XVEWkPpTzt0Gvt4iokSAkU0s73GWeOyHroLjtjEI=;
        b=Hx/j0uSmdcN85TJKzKyordFGMEOxnupUhf5qATrqpuz6yJipaAOIqne9EcxuZYW4ZL
         08BIe+izWhS/UlbALgjM1i8k+5V1tWovVBLHGejjV4efmFYUX2vrmIuhUi5NDBxUdtGH
         sb4n10jV6AhUoY08KJ8BBMpeQ2wGKrskWGqxsiCzIdOuVQ4hHr8L/aaq2VwbI7YXC8C3
         H9aFLvrzovVJBuIEAmSuwnG5k0PomhkLC2Xxvodcclzwh/65TFyvcx2NefDnOSp0fRtG
         CBmJjik3oFkpotUuQ7DZ0OHGU4opzo9VLJe9+J8HlX0lYIOMZX+19VgB+nVbBhshmu1W
         Bd9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774970101; x=1775574901;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Hp8XVEWkPpTzt0Gvt4iokSAkU0s73GWeOyHroLjtjEI=;
        b=nJoPCslHHKGu59X0RwsY95+yFo2aql93PAao6aMU0vtS7BtfNzRcaEhebDvD/RMZ+O
         TN/tde2ry9cDBrqD82/xXKjNn3s9w1Ou7141yFD8yEezHo9Ffoi1727J2qWgH/Mb6HHp
         iXHB5RUMMj2Ugk978LJp4AmAyT63SpySplE+jy4gfO1fnenFGOPtuP/3f/+Ohjs4AxoX
         ZnXArRT/rLEsBkzvb0hzulCTTDcyIXOAC4FYc90icGuEkr4rowSG7w3ypobGajMLrNLW
         AcHuGdhIF9alUhjL+L7Gq2DObvnjNFWT7ooIC74Mgb7eNULH3dxBb1bgN0WV9kt3/N3A
         hMBQ==
X-Forwarded-Encrypted: i=1; AJvYcCVtn3yHuJLAsiBlS28kVGxLuxUTybW3FfVyNKC9XDjMRFBaU8HY2dxo/7rNK55QoqolK9CkHr/4xvs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwxXRQVWz9QWs95e3RIDXsvAB4iy/gjxOwU18ine/b0PMrG6hAH
	ZxbjRTmQv+wGPjZ/bm71NV/01A8ANbxS46ugBlbtmI5cUQen7dIlBNkFCOtKyqDOGA==
X-Gm-Gg: ATEYQzwXBs+73+lVD5QIhQXz53Ff0QwLWWi+UXlgu1mdSPeqlFqGfg+mq16GrM+xlo9
	SMt9rgVpEJCr4VOG2jTEJjbjdnzJw7K7BbvlJXuYeLW1Ow4vI6QDSW+HSfM3hWYOtwwpIDlCcEL
	16tdX88R8Nyj6awVuohY0XWIk7UmIk/fPgIc9V/hVg76vL/O51PkRMpFkGvinbamk2pBaY1nz1v
	XO911gs8vvP6YcThVRN7ZPvhi0P4I8sj63op0ENeVHnQ7c7aDh5AsYN8kHs+fT8JDn44w9Dp0Ki
	UFTKjWMbzl/alyERy25ERB5wSmUkRsx72pcK3M54LXbP7xqip+7b2Yx1sztQUkGrH1nYTfE6kJA
	RTVSEHV1/tIzmP33m0hIUSuLFvdYCj5EzwQ2EZSkmMi5xYy9HAf6N+pYgKFDE54M2+/fT/qPHq8
	HU5oDG9GuTBMMrP/b3ZgFD93sogM9q1+13Ubns84IsbdKItxa9g0MLMAQ61T0s6TLJ+uqCTM3JF
	LWzcykOpA2CLng=
X-Received: by 2002:a05:600c:3f0a:b0:485:4eaf:eb54 with SMTP id 5b1f17b1804b1-48727ec733dmr276022065e9.20.1774970101165;
        Tue, 31 Mar 2026 08:15:01 -0700 (PDT)
Message-ID: <57f01614-e742-4f2b-be9f-6687ea0b79e5@suse.com>
Date: Tue, 31 Mar 2026 17:14:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/11] xen/riscv: add kernel loading support
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
 <1688c6e0e616b2d1bc1a9050d66f007e0e65d3b2.1774281309.git.oleksii.kurochko@gmail.com>
 <0a28eda9-a1c5-4e12-907e-b85f8972881c@suse.com>
 <05b1bc67-bbed-412e-881e-a3fb2c2d873b@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: <05b1bc67-bbed-412e-881e-a3fb2c2d873b@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d62444/1774970101-178FC185-6303B5F4/0/0
X-purgate-type: clean
X-purgate-size: 3284

On 31.03.2026 16:30, Oleksii Kurochko wrote:
> On 3/30/26 4:47 PM, Jan Beulich wrote:
>> On 23.03.2026 17:29, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/include/asm/config.h
>>> +++ b/xen/arch/riscv/include/asm/config.h
>>> @@ -151,6 +151,19 @@
>>>   extern unsigned long phys_offset; /* = load_start - XEN_VIRT_START */
>>>   #endif
>>>   
>>> +/*
>>> + * KERNEL_LOAD_ADDR_ALIGNMENT is defined based on paragraph of
>>> + * "Kernel location" of boot.rst:
>>> + * https://docs.kernel.org/arch/riscv/boot.html#kernel-location
>>> + */
>>> +#if defined(CONFIG_RISCV_32)
>>> +#define KERNEL_LOAD_ADDR_ALIGNMENT MB(4)
>>> +#elif defined(CONFIG_RISCV_64)
>>> +#define KERNEL_LOAD_ADDR_ALIGNMENT MB(2)
>>> +#else
>>> +#error "Define KERNEL_LOAD_ADDR_ALIGNMENT"
>>> +#endif
>>
>> But that's Linux-specific. You want to be able to loader other OS kernels,
>> I suppose? The needed alignment should be a property of the kernel image,
>> suitably conveyed to the loader.
> 
> Then likely some updates will be needed...
> 
>>
>> Is Arm similarly capable of loading only Linux images? What about in
>> particular XTF?
> 
> ... they are pretend as they are Linux kernel zImage:
> 
> https://gitlab.com/xen-project/fusa/xtf/-/commit/dec72d83291d6782b3f41df66987c8a25eac422f#line_9f6eadcd7_A42
> 
> and in the case of XTF:
>      /* Magic number used to identify this is an ARM Linux zImage */
>      .word   ZIMAGE_MAGIC_NUMBER
>      /* The address the zImage starts at (0 = relocatable) */
>      .word   0
>      /* The address the zImage ends at */
>      .word   (_end - _start)
> 
> zImage.start is set to 0 so KERNEL_LOAD_ADDR_ALIGNMENT won't be applied 
> and load address from DTS's kernel node will be taken.
> 
> Other example in mind I have it is Zephyr OS, and the also use Image 
> protocol by enabling CONFIG_AARCH64_IMAGE_HEADER. So Xen can boot it too.

ISTR Andrew saying that he'd really like to be able to use plain ELF.
Anyway, if Linux Image is clearly stated as a only thing presently
supported, that's perhaps okay for the time being.

>>> +static void __init kernel_image_load(struct kernel_info *info)
>>> +{
>>> +    int rc;
>>> +    paddr_t load_addr = kernel_image_place(info);
>>> +    paddr_t paddr = info->image.kernel_addr;
>>> +    paddr_t len = info->image.len;
>>> +    void *kernel;
>>> +
>>> +    info->entry = load_addr;
>>
>> What if this is outside of memory bank 0 (as is possible when
>> info->image.start is non-zero).
> 
> It will be an issue and panic() will occur in place_modules().

Will it? I just looked again, and I can't help thinking that it won't.

>>> +    /* Currently there is no length in the header, so just use the size */
>>> +    start = 0;
>>> +    end = size;
>>
>> What's image_size then?
> 
> The comment is incorrect, the length is present in the header, but it is 
> effective length which isn't equal to the size of binary and is actually 
> bigger then binary size.
> 
> So here we want to use 'size' as it is a size of binary itself.

What is "effective length"? That sounds a little like e.g. .bss extending
past the (file) image, yet such would nee taking into account for allocation
(but not for reading in / copying over).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 15:43:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 15:43:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269116.1558239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7bFM-00066a-E5; Tue, 31 Mar 2026 15:43:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269116.1558239; Tue, 31 Mar 2026 15: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 1w7bFM-00066T-BL; Tue, 31 Mar 2026 15:43:16 +0000
Received: by outflank-mailman (input) for mailman id 1269116;
 Tue, 31 Mar 2026 15:43:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <Oleksandr_Tyshchenko@epam.com>) id 1w7bFL-00066N-Bb
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 15:43:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7bFK-00FtVe-Lx
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 17:43:14 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <Oleksandr_Tyshchenko@epam.com>)
 id 69cbeb92-5cb7-0a2a0a5109dd-0a2a450cae04-0
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 17:43:14 +0200
Received: from [40.107.162.75]
 (helo=PA4PR04CU001.outbound.protection.outlook.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <Oleksandr_Tyshchenko@epam.com>)
 id 69cbeb91-f93d-0a2a450c0019-286ba24b0865-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 17:43:14 +0200
Received: from AM4PR03MB11152.eurprd03.prod.outlook.com
 (2603:10a6:20b:6cc::22) by PAVPR03MB9139.eurprd03.prod.outlook.com
 (2603:10a6:102:326::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 15:43:12 +0000
Received: from AM4PR03MB11152.eurprd03.prod.outlook.com
 ([fe80::bbbf:5b9b:1043:4510]) by AM4PR03MB11152.eurprd03.prod.outlook.com
 ([fe80::bbbf:5b9b:1043:4510%5]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026
 15:43:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eyVvV+O6BxRgJ0wAmIONJH2Y/t3okqrDee3NFyMHRGaQPICdNCzLdmaPrf7fmsPkIlsTWGDkvgz7EIOAFf/gwk63XNVO+8+W8wJKklc7ZAmCunRmWO0jLZw+PWdUBMeUBshhvctVB8Lfhk7Y55iovI3NVdO3X8D0gtaA/PB8XphpcdQrEKDlmZqlWWRCQfgED0w4F3iIlvgOhR8aAKbGJWOJGVGkblavDpP9Fj+bO5RvgifFeLf4fgMlxgCfITzlFi3aBZW46VGpck7Qg78BhE2qgALQs0ZvlBfPjDe33W654XCXOIKPyyjDoUsY28s4NfV6fsCaXmrOOfx6Qy4gkw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KhGP5Po/5+j289yQqaXcApoqaMGwV/q/N5BbRPfqwrY=;
 b=tX2XTPo1c3cWHJr+thd0q3girU6U2hlh7MeGi3cPMGXjHhAIam528I5+t2S5raXPGmwij7ZOaj0cSn8hvzRDpVnOZibNslGvu/FxelA9iiikSUtNzIXZtbu3ADggzJUt0i76p89GevJ9VGSb8tByi3TSDT5R8nB4sfyVS44IuAGhlC4UytCZO/nRgvq59BT2t1c/VjUSej3l4q6nMKyM3yH/RwiBleKYDuhd4xcIOTISDlShApM3/h1xfHqrGkddeOjCByCNH8uJ6Ni6tOPCXqNwM/0V9oAU5WjHDTaEbjNtLRQqElTD3rvruWe93+dvyoT7fwQ9+zKTLulxeI1sGA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KhGP5Po/5+j289yQqaXcApoqaMGwV/q/N5BbRPfqwrY=;
 b=qU8JB7+r7fHiTJqArNdIY+mF/DHSX3gEWnbeEDvP3Nt45FFACThPeBw260tifz0gll1pMpkPUPY9izywJwyKLd+nYmWAlTENtd+aCiz/2nbgX9SiOo/2UssgkY1W4ATqGbR6nLGL9nVcu9xg8BOlfZJ1mhfTsT4dIqC5qdXMX0Vzclfsv9MSp2nTTNVT+TAZxWphn9wncnTMVUKB/22fzq5UXNgb71dNDvVPMCeX5Yuzohnu5P3vB+2yK2MWHvCkoC+Z5lg08p5QwHF1Ibw/r3ESLFUqHUqzkceYGWXjsUwX0m64yXQUbPU2Rs/yN6kwTH7+raGI9LKhTpBmRJMLNw==
From: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH V2] xen/arm: Increase DOM0_FDT_EXTRA_SIZE to support max
 reserved memory banks
Thread-Topic: [PATCH V2] xen/arm: Increase DOM0_FDT_EXTRA_SIZE to support max
 reserved memory banks
Thread-Index: AQHcwSUT7254zXLHwUG/lf9z0n/ajQ==
Date: Tue, 31 Mar 2026 15:43:10 +0000
Message-ID: <20260331154309.2921483-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: AM4PR03MB11152:EE_|PAVPR03MB9139:EE_
x-ms-office365-filtering-correlation-id: f09ee9e6-6e26-40d9-b65e-08de8f3c3670
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|1800799024|376014|366016|38070700021|18002099003|56012099003;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?NN2+7v4vLpImDkcBTU5yqx806mcGK/LXIySJ3HYEAqamSc7/zmQ780yuy2?=
 =?iso-8859-1?Q?x+sOXg4LNxANajDUslvh4DczMGXk78FdbF/kqgobAB/4CWkDwNcI/tNS1y?=
 =?iso-8859-1?Q?uo1Li0rEs0X4FBw5H5F4YmIt7e+SeK9AWV3axwzYYUxWRCVqAoRwliwDzo?=
 =?iso-8859-1?Q?dgy9FihfRidxzJnjx7csyAwfeBnZSKA9t4liteXCRGvnyAIGi+NLQocY1R?=
 =?iso-8859-1?Q?ZjAUCOoPxTQoCBeYYbkqgvho+5fgzUxDN1ZNyLZ+TadT6ZUeFZyGOfzfR+?=
 =?iso-8859-1?Q?DiZydhQIMK8cHQ2eKo5rRD8u9gNVmvSTJ2xlyV0F3wEGUhZHytCEwjdnlx?=
 =?iso-8859-1?Q?ZgrOBUrplSPEaai49obzzTljw4fQSHuoEJ/e06WtB03v+OJdjQcK8o7cA2?=
 =?iso-8859-1?Q?f14TUw2QVMvhhgokLselN1omGEW0h6g/fE/jUYVGyDsthPdFOW+a2brA8l?=
 =?iso-8859-1?Q?T49RRqKs0i4BLA/L2lOO/k/iwYHg6E8sHiRSddvfS75C12htWVq8d5D7Iv?=
 =?iso-8859-1?Q?3F5UySbhzIYAk3dU435uAJHNaNpjvqRD6dL06mcnbvpdj8QMQB+MADbSna?=
 =?iso-8859-1?Q?Gk2asNjMVJ+Gznq+irHzA8G9FWEBWwqOHCHst2i9luk2ihIqpo/Ig4B8kk?=
 =?iso-8859-1?Q?JApg4RqTDNF6Tb/qKFUqjTlZVzA5uPBZs1yFZSVI7QXffY69/XKhS8KRUd?=
 =?iso-8859-1?Q?uDdkGGFKYk+0xsovMmrcddKOPIUZFpHCPQ/8KziHzUiU6XR5gF/K3O6/Jk?=
 =?iso-8859-1?Q?ksGuCP7JLUUE48kduc5bO20Yd3IXerp5Jj7eHK1xtlFkfZYl8jKq5HdheF?=
 =?iso-8859-1?Q?88QAagfmljRcMXG510jFcSTBebha2DRdEolBAksxa0L0dFaWWJfKrFyjtW?=
 =?iso-8859-1?Q?Ku5Fc86jC8m0DtAgEkW3aVP8u8oVUoQTFplgVxHqsE+gUeaq7aPPP77ep8?=
 =?iso-8859-1?Q?GWpRJCIRdxtgo5Vu5oD0pv75FRe9sgNyeIKotKpO8RxYSIL085lL36JWAN?=
 =?iso-8859-1?Q?ygG3+s+aMVHN3iPN8DY0mhijlvvM3432fowwpKOS/XrZPwmDJVQs0NmSTp?=
 =?iso-8859-1?Q?Ytql1d8PKQAd6MTVOyNmlnyRF1E5qCURqb2SviUSaI2OHkcTTgaRqQzNg0?=
 =?iso-8859-1?Q?WgXAnvwA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM4PR03MB11152.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(1800799024)(376014)(366016)(38070700021)(18002099003)(56012099003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?8sTPrIrJBMji9jIhdHQI9cIqxuPKfJhpi/5ep9qetgB2MB/95rLBSa+Drr?=
 =?iso-8859-1?Q?5GFTmLiaE1ypJ7QQvzFG99lK1EcBwH9xFBVg3eBGhBJKNDHfq4si55DxY+?=
 =?iso-8859-1?Q?NFvanYkWfrjSWXeTwMZTedjNRGvK9grvyj8oTdyoH8HUGxRNZAZLqgmZGj?=
 =?iso-8859-1?Q?7eGDhgsp1DYfOhfe+EgG4oyrVUwYXhOg7wGTl2BDJzwO5jP7w+8yETzGAh?=
 =?iso-8859-1?Q?GX/BnOsdHDhKokgxYWbaZfoKwSXWX1wAf5eaTuHaVNq86DzVZcgHl21xy/?=
 =?iso-8859-1?Q?dU7NBnGNnyrPG/xkSChNii8EujWLPGhv3YThhhzVlBO6ZTej+CH5Z9fuJd?=
 =?iso-8859-1?Q?d5QIdUVTUfmPBE2VmEFAA7iFG+fS6hIzqN2HOFfLqJaYSSJy43F8s3xi3O?=
 =?iso-8859-1?Q?DLCd21F0Hx6rt/vLiz8Gaby3Xw1fm0aC2EFnqqJHIR7ZjWbSF1PDHQW+IE?=
 =?iso-8859-1?Q?gGu9XuNzCf8PBOa2fHvzFqK8O39dhLCY6Nc1ee22teA2wtkpQp9+q9RNeq?=
 =?iso-8859-1?Q?o28Jr4MEi6lb3Cd/7g1Y1xUljjRA9q1VKP/B1HLak0LlZg4yRmhwoMNEpJ?=
 =?iso-8859-1?Q?QRJuZG0rqqBSbh40tTaPl6pmPxTbZ9J5rzSw31Sguh18kI1I7Gw1TJLUv4?=
 =?iso-8859-1?Q?zxH5yyVapNhf8dA/2NqNZPtI5Rt94Dm5kuhcHkkxiByklRtd/5U5GC/Yuv?=
 =?iso-8859-1?Q?2b8TBTAyRw4/uVZQ1EU6TkSpKmlNuO/tLcKGNiHtx5i32q3JaYZ92T62uP?=
 =?iso-8859-1?Q?DVirbnDixGjkWmZUWQMOHtOOpgm/TsER4z+piq1N349LNm5ewXnEaTtROv?=
 =?iso-8859-1?Q?niaFSOXkXaW/GD5RMc/cwl7euYJNMDj7WSCAgV/SPv0FE0SL6ZEHhtLBjH?=
 =?iso-8859-1?Q?4RVN28w/7Q3Cf9R58UwXBTThJZ9jIusLec5sJmx66YHnS7YjzQ+KcaH4u2?=
 =?iso-8859-1?Q?bYYv4ZeK14+hjPi/X/ztF8lGWvUsYnMD58+2xUs8h+OTpuhsxHzIdJI8cY?=
 =?iso-8859-1?Q?7KIeN58dPoHf9Ikun2WZKcg1hHlFUx4185bIZRuIhqBScZVFCZZ7JDgo7h?=
 =?iso-8859-1?Q?55tbKAm3iG0DLTb2ecDShj7/efjZedV6qo0BeoVwyuUg5lADqfJIx5kNyx?=
 =?iso-8859-1?Q?o9putNNoUvDxvR0d0dNUQ9hD/iVUAJK9vrj1ZNtyWH09E6u3P4jv9enDaG?=
 =?iso-8859-1?Q?H7c7UEeDx23NqEprKRs+PUM3ESklr9pfonp5Vt6avtVfg5EAvhH5k5V3aa?=
 =?iso-8859-1?Q?iapy6F6qkmag5PEfqv3viyMosAo0pUSSsy0sGu/dqo4yEGrTObrm6pDpL2?=
 =?iso-8859-1?Q?nbBrpyh4RZ/QL5jILIV+0fezadGm2+MAhgy1w6uB3whOHouLKJgHabRDck?=
 =?iso-8859-1?Q?G7fy1egOjGZRWcUoNVv1KxU6pB8z2AS8Q0hpg/7mweMulfGsUQ/LD68CZ9?=
 =?iso-8859-1?Q?6F0LzyQYdJfA/07XIQxKf2fmyjH6Md21pn+J84yamrDwvMzbRRYd6RW7Sd?=
 =?iso-8859-1?Q?eo0aInIf8mgYR0bq3ZQ6kdvo3QPS2mlr4jP4chI4i8zxBvhr9m+Xz8j4Ku?=
 =?iso-8859-1?Q?uZMN6CeJpiJmYPb+SFbfenlCKX452ym25Ji/lnSnBQgTO5/5FbIo2lGt5p?=
 =?iso-8859-1?Q?iiUxaivXb8tb0ngcnMwAMGH8EVuR0gRAPVa3vOevrF1AolZbS29eVvCpxM?=
 =?iso-8859-1?Q?OmKydNst5PsHl68Hw50P7RZk8ifbs4JxlVkm5FfOQttEo2zQ1bJ5l5v6in?=
 =?iso-8859-1?Q?LbxBtWJ8xIxyALoMT6Xum9kE6C1CLolmk3dv2bUCK3zdUyIs7SyIRplO64?=
 =?iso-8859-1?Q?Ypgy8EhJvUGTsZlIL7X7efZjarwsAf/e625fxsZ24nydi7X9E3Di?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM4PR03MB11152.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f09ee9e6-6e26-40d9-b65e-08de8f3c3670
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 15:43:10.6719
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 50YYkv4DD8u5GGXzbtWI7L/x1ZSEeq/sZ4roJOT/Fq+UdfCyQetFXbj4guXw948vn9ihPCuD66gx4jM+zioRKXP5MRtAf6hpP/88Z49JTNs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9139
X-purgate-ID: tlsNG-d25034/1774971794-F5AB5734-E207E649/0/0
X-purgate-type: clean
X-purgate-size: 3340

From: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>

Xen fails to construct the hardware domain's device tree with
FDT_ERR_NOSPACE (-3) when the host memory map is highly fragmented
(e.g., numerous reserved memory regions) and the host DTB represents
RAM compactly (e.g., a single reg pair or just a few).

This occurs because DOM0_FDT_EXTRA_SIZE underestimates the space
required for an extra /memory node. While the host DTB might
represent RAM compactly, make_memory_node() aggregates all
reserved regions into a single reg property. With NR_MEM_BANKS (256)
and 64-bit address/size cells, this property can grow up to
4KB (256 * 16), easily exceeding the space originally occupied by
the host DTB's nodes plus the current padding, thereby overflowing
the allocated buffer.

Additionally, the SHM regions require space for discrete sub-nodes
under /reserved-memory node, as well as an appendage to the
main /memory node. Each of the up to NR_SHMEM_BANKS (32) regions
triggers the creation of a sub-node with properties (compatible,
reg, xen,id, and xen,offset). These runtime-generated sub-nodes
require approximately 142 bytes each, while the appendage consumes
an additional 16 bytes per region.

Fix this by increasing DOM0_FDT_EXTRA_SIZE to account for fragmented
reg properties (NR_MEM_BANKS * 16), the discrete SHM sub-nodes, and
the SHM appendage to the /memory node (NR_SHMEM_BANKS * (160 + 16)).
The SHM overhead is conditionally evaluated to avoid over-allocating
memory when CONFIG_STATIC_SHM=3Dn.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
  V2:
   - update commit description
   - update in-code comment
   - update macro
---
---
 xen/arch/arm/domain_build.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 3cd251beed..07f331eac8 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -98,11 +98,21 @@ int __init parse_arch_dom0_param(const char *s, const c=
har *e)
 #endif
=20
 /*
- * Amount of extra space required to dom0's device tree.  No new nodes
- * are added (yet) but one terminating reserve map entry (16 bytes) is
- * added.
+ * Amount of extra space required to dom0's device tree. This covers
+ * nodes generated by Xen, which are not directly copied from the host DTB=
.
+ * It is calculated as:
+ *  - Space for /hypervisor node (128 bytes).
+ *  - The reserve map terminator (16 bytes).
+ *  - Space for a generated /memory node covering all possible reserved
+ *    memory regions (NR_MEM_BANKS * 16).
+ *  - Space for a generated /reserved-memory node with discrete SHM sub-no=
des,
+ *    plus the appendage to the main /memory node (NR_SHMEM_BANKS * (160 +=
 16)
+ *    bytes). This overhead is dropped when CONFIG_STATIC_SHM is disabled.
  */
-#define DOM0_FDT_EXTRA_SIZE (128 + sizeof(struct fdt_reserve_entry))
+#define DOM0_FDT_EXTRA_SIZE (128 + sizeof(struct fdt_reserve_entry) + \
+                             (NR_MEM_BANKS * 16) +                    \
+                             (IS_ENABLED(CONFIG_STATIC_SHM) ?         \
+                              (NR_SHMEM_BANKS * (160 + 16)) : 0))
=20
 unsigned int __init dom0_max_vcpus(void)
 {
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 15:43:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 15:43:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269118.1558248 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7bFY-0006NA-Pe; Tue, 31 Mar 2026 15:43:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269118.1558248; Tue, 31 Mar 2026 15:43:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7bFY-0006N3-Lz; Tue, 31 Mar 2026 15:43:28 +0000
Received: by outflank-mailman (input) for mailman id 1269118;
 Tue, 31 Mar 2026 15:43:27 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dakr@kernel.org>) id 1w7bFX-0006Ma-LO
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 15:43:27 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7bFW-003Zcf-Rz
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 17:43:27 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <dakr@kernel.org>)
 id 69cbeb9c-2eae-0a2a0a5409dd-0a2a4502ab30-6
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 17:43:26 +0200
Received: from [172.234.252.31] (helo=sea.source.kernel.org)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <dakr@kernel.org>)
 id 69cbeb9d-63bb-0a2a45020019-aceafc1f9690-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 17:43:26 +0200
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 33F5141AA1;
 Tue, 31 Mar 2026 15:43:24 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D763AC2BCB1;
 Tue, 31 Mar 2026 15:43:14 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=k20201202 header.d=kernel.org header.i="@kernel.org" header.h="Date:Subject:To:Cc:References:From:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1774971804;
	bh=6Sh+nuXBMcAFDxKLCKsR5cDxicblUVjm/StrUH5xvws=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=AvEJIy/r0i0fIT0q1b7k0uixxXSVC1oh7xfO2lmos43V1mEkh9/oCyjjM/NIlIzDR
	 G4ToLsOxBoNZj9eIXjRIfgaF1JLikB4FAvsXjSce8BwELH8sXRPMxKzVfwC18KZVLM
	 xvaZCSjKCWIMAF0TL0BKofu4C2zQpBgPhfjifUkEE/91cdaFO2EcfVtNgpPrO7Xulf
	 fYkRcb4pifGLoTxuUkNA9ffXMCz8PqPYdeYYDg7woAcRkIdsrLp3N/31BR3QOWYwl8
	 kL1fnhPJvjBetXgl25fDvOAS7XsfRd59LIFlTx8YTswK4vMykSPYpL+e72NUmtvpp/
	 OhFF1YDMIAkew==
Message-ID: <f819b7d8-5c80-4463-9afa-933a2ddc8ab3@kernel.org>
Date: Tue, 31 Mar 2026 17:43:12 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 06/12] platform/wmi: use generic driver_override
 infrastructure
To: =?UTF-8?Q?Ilpo_J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>
Cc: Russell King <linux@armlinux.org.uk>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 "Rafael J. Wysocki" <rafael@kernel.org>,
 Ioana Ciornei <ioana.ciornei@nxp.com>, Nipun Gupta <nipun.gupta@amd.com>,
 Nikhil Agarwal <nikhil.agarwal@amd.com>, "K. Y. Srinivasan"
 <kys@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>,
 Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
 Long Li <longli@microsoft.com>, Bjorn Helgaas <bhelgaas@google.com>,
 Armin Wolf <W_Armin@gmx.de>, Bjorn Andersson <andersson@kernel.org>,
 Mathieu Poirier <mathieu.poirier@linaro.org>,
 Vineeth Vijayan <vneethv@linux.ibm.com>,
 Peter Oberparleiter <oberpar@linux.ibm.com>,
 Heiko Carstens <hca@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>,
 Alexander Gordeev <agordeev@linux.ibm.com>,
 Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>,
 Harald Freudenberger <freude@linux.ibm.com>,
 Holger Dengler <dengler@linux.ibm.com>, Mark Brown <broonie@kernel.org>,
 "Michael S. Tsirkin" <mst@redhat.com>, Jason Wang <jasowang@redhat.com>,
 Xuan Zhuo <xuanzhuo@linux.alibaba.com>, =?UTF-8?Q?Eugenio_P=C3=A9rez?=
 <eperezma@redhat.com>, Alex Williamson <alex@shazbot.org>,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 "Christophe Leroy (CS GROUP)" <chleroy@kernel.org>,
 LKML <linux-kernel@vger.kernel.org>, driver-core@lists.linux.dev,
 linuxppc-dev@lists.ozlabs.org, linux-hyperv@vger.kernel.org,
 linux-pci@vger.kernel.org, platform-driver-x86@vger.kernel.org,
 linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org,
 linux-s390@vger.kernel.org, linux-spi@vger.kernel.org,
 virtualization@lists.linux.dev, kvm@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-arm-kernel@lists.infradead.org,
 Gui-Dong Han <hanguidong02@gmail.com>
References: <20260324005919.2408620-1-dakr@kernel.org>
 <20260324005919.2408620-7-dakr@kernel.org>
 <f15629e4-ef8f-b1b6-0158-064f40f111da@linux.intel.com>
From: Danilo Krummrich <dakr@kernel.org>
Content-Language: en-US
In-Reply-To: <f15629e4-ef8f-b1b6-0158-064f40f111da@linux.intel.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-720697/1774971806-BDA9CDB8-E6A325E6/0/0
X-purgate-type: clean
X-purgate-size: 312

On 3/31/26 5:02 PM, Ilpo Järvinen wrote:
> I tried applying this to platform-drivers tree but it failed to compile so 
> I ended up dropping the changed.

As the cover letter mentions, it sits on top of v7.0-rc5, did you consider this?

I can also pick it up via the driver-core tree.

Thanks,
Danilo


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 15:51:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 15:51:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269139.1558256 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7bNA-0008Vu-GR; Tue, 31 Mar 2026 15:51:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269139.1558256; Tue, 31 Mar 2026 15:51:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7bNA-0008Vn-DS; Tue, 31 Mar 2026 15:51:20 +0000
Received: by outflank-mailman (input) for mailman id 1269139;
 Tue, 31 Mar 2026 15:51:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <ilpo.jarvinen@linux.intel.com>) id 1w7bN9-0008Vh-2c
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 15:51:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7bN8-003adj-BC
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 17:51:18 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <ilpo.jarvinen@linux.intel.com>)
 id 69cbed75-5cb7-0a2a0a5109dd-0a2a4509cfa4-0
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 17:51:17 +0200
Received: from [192.198.163.18] (helo=mgamail.intel.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <ilpo.jarvinen@linux.intel.com>)
 id 69cbed72-e484-0a2a45090019-c0c6a31211c2-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 17:51:16 +0200
Received: from orviesa003.jf.intel.com ([10.64.159.143])
 by fmvoesa112.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 31 Mar 2026 08:51:14 -0700
Received: from ijarvine-mobl1.ger.corp.intel.com (HELO localhost)
 ([10.245.244.6])
 by ORVIESA003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 31 Mar 2026 08:50:56 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=Intel header.d=intel.com header.i="@intel.com" header.h="From:Date:To:cc:Subject:In-Reply-To:Message-ID:References:MIME-Version"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1774972276; x=1806508276;
  h=from:date:to:cc:subject:in-reply-to:message-id:
   references:mime-version;
  bh=Nge5zor6zpLsko98SNlgKwkLdBZ67zYKvW4fhw7iRFI=;
  b=jPPVnCRl3+uoiRh+4DgQvV86Ct1cBMK5Eq9riRtLf5ynwETwAs/xPLNS
   vHUtLgsnSno/c58W4rANBoF6O+V4wT3AyTUpwRL9qBeD5ZnURhUWTWCz9
   51IZVfzVR32MjE/vjcZRvU8kYerekzLHWZWMmTkZ0v6GUGzWU2JuTN55w
   GJHySzkENll/g0YKzOQvaV4pHBuhjqEz1WMQVyYgFXPoRXq4QQSt/aBQy
   y0hjhZj01hRlapoRekY6Dg2vbc473HahP8SOy9Qzp5Xk9Jwh51zWuVjB+
   L+WmFoDez6QEQ0B5EcwwiOLpEB1fNC6ZdAuRJTm/mae43oeeSmJtzol4C
   A==;
X-CSE-ConnectionGUID: /MMVSNQJSjSaHGX53JaJGA==
X-CSE-MsgGUID: 37YirV9NRo2yOnErl1Evnw==
X-IronPort-AV: E=McAfee;i="6800,10657,11745"; a="75162631"
X-IronPort-AV: E=Sophos;i="6.23,152,1770624000"; 
   d="scan'208";a="75162631"
X-CSE-ConnectionGUID: Erx6h0j4SBaLVonmWZa8AQ==
X-CSE-MsgGUID: i5Ax2DCyQZGon6IlICWnbQ==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.23,152,1770624000"; 
   d="scan'208";a="230465746"
From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>
Date: Tue, 31 Mar 2026 18:50:52 +0300 (EEST)
To: Danilo Krummrich <dakr@kernel.org>
cc: Russell King <linux@armlinux.org.uk>, 
    Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
    "Rafael J. Wysocki" <rafael@kernel.org>, 
    Ioana Ciornei <ioana.ciornei@nxp.com>, Nipun Gupta <nipun.gupta@amd.com>, 
    Nikhil Agarwal <nikhil.agarwal@amd.com>, 
    "K. Y. Srinivasan" <kys@microsoft.com>, 
    Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
    Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
    Bjorn Helgaas <bhelgaas@google.com>, Armin Wolf <W_Armin@gmx.de>, 
    Bjorn Andersson <andersson@kernel.org>, 
    Mathieu Poirier <mathieu.poirier@linaro.org>, 
    Vineeth Vijayan <vneethv@linux.ibm.com>, 
    Peter Oberparleiter <oberpar@linux.ibm.com>, 
    Heiko Carstens <hca@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>, 
    Alexander Gordeev <agordeev@linux.ibm.com>, 
    Christian Borntraeger <borntraeger@linux.ibm.com>, 
    Sven Schnelle <svens@linux.ibm.com>, 
    Harald Freudenberger <freude@linux.ibm.com>, 
    Holger Dengler <dengler@linux.ibm.com>, Mark Brown <broonie@kernel.org>, 
    "Michael S. Tsirkin" <mst@redhat.com>, Jason Wang <jasowang@redhat.com>, 
    Xuan Zhuo <xuanzhuo@linux.alibaba.com>, 
    =?ISO-8859-15?Q?Eugenio_P=E9rez?= <eperezma@redhat.com>, 
    Alex Williamson <alex@shazbot.org>, Juergen Gross <jgross@suse.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    "Christophe Leroy (CS GROUP)" <chleroy@kernel.org>, 
    LKML <linux-kernel@vger.kernel.org>, driver-core@lists.linux.dev, 
    linuxppc-dev@lists.ozlabs.org, linux-hyperv@vger.kernel.org, 
    linux-pci@vger.kernel.org, platform-driver-x86@vger.kernel.org, 
    linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, 
    linux-s390@vger.kernel.org, linux-spi@vger.kernel.org, 
    virtualization@lists.linux.dev, kvm@vger.kernel.org, 
    xen-devel@lists.xenproject.org, linux-arm-kernel@lists.infradead.org, 
    Gui-Dong Han <hanguidong02@gmail.com>
Subject: Re: [PATCH 06/12] platform/wmi: use generic driver_override
 infrastructure
In-Reply-To: <f819b7d8-5c80-4463-9afa-933a2ddc8ab3@kernel.org>
Message-ID: <dc11f3fd-a5c7-16e9-8417-6dddb63129fa@linux.intel.com>
References: <20260324005919.2408620-1-dakr@kernel.org> <20260324005919.2408620-7-dakr@kernel.org> <f15629e4-ef8f-b1b6-0158-064f40f111da@linux.intel.com> <f819b7d8-5c80-4463-9afa-933a2ddc8ab3@kernel.org>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323328-2141551316-1774972252=:989"
X-purgate-ID: tlsNG-bad1c0/1774972277-628ADA73-D19E4F0F/0/0
X-purgate-type: clean
X-purgate-size: 988

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

--8323328-2141551316-1774972252=:989
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: QUOTED-PRINTABLE

On Tue, 31 Mar 2026, Danilo Krummrich wrote:

> On 3/31/26 5:02 PM, Ilpo J=C3=A4rvinen wrote:
> > I tried applying this to platform-drivers tree but it failed to compile=
 so=20
> > I ended up dropping the changed.
>=20
> As the cover letter mentions, it sits on top of v7.0-rc5, did you conside=
r this?

I noticed it but I just assumed you were working on top of that, not that=
=20
there's something past -rc1 that is required.

> I can also pick it up via the driver-core tree.

If there's some post -rc1 material this depends, it's probably better that=
=20
way.

Acked-by: Ilpo J=C3=A4rvinen <ilpo.jarvinen@linux.intel.com>

--=20
 i.

--8323328-2141551316-1774972252=:989--


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 15:53:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 15:53:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269149.1558267 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7bPe-0000b1-UF; Tue, 31 Mar 2026 15:53:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269149.1558267; Tue, 31 Mar 2026 15:53: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 1w7bPe-0000au-PX; Tue, 31 Mar 2026 15:53:54 +0000
Received: by outflank-mailman (input) for mailman id 1269149;
 Tue, 31 Mar 2026 15:53:53 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7bPd-0000ao-5x
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 15:53:53 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7bPc-008tDB-I4
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 17:53:52 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69cbedfb-e002-0a2a0a5209dd-0a2a4502cd5c-22
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 17:53:52 +0200
Received: from [209.85.128.43] (helo=mail-wm1-f43.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69cbee10-63bb-0a2a45020019-d155802bd51c-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 17:53:52 +0200
Received: by mail-wm1-f43.google.com with SMTP id
 5b1f17b1804b1-486fb112c09so54677035e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 08:53:52 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4887e967badsm55461665e9.14.2026.03.31.08.53.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 08:53:51 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774972432; x=1775577232; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fNRanloXQ19oIIHAgQidmrgH/LvEZVRiIP7N7oI/i3Y=;
        b=WzH81CUDtuf2eLXV1PsT9HjtYiL25t/aBCid7kI6a7mCJzvyB8bvGMprbrvNOpvpXe
         0Je4h5EZ00/tbdeYT2NQR0Tmz0MpupbxY33sK1rc//1UNoTVMKgfziAYwxjktQb3Mt+v
         rg2CY4+anJFOVI81fhZbA9p2J/cvSsLnWomXL+FykSfPbJz9u0ECevkZ1BoFqK4gVqfB
         5n03bDSdn6aVO/fj56s28ThTUXhRy+Yk0GUyXX2xlwuCRxPj0Bug1Koh6MfhITPmGnhk
         dLrCcW4pJTeTLUazh4FQyPfZ8vTWjtpL6uZU0NXa17ZDsjs7W6AoMZ60wyHMAN5zUHuh
         7C4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774972432; x=1775577232;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fNRanloXQ19oIIHAgQidmrgH/LvEZVRiIP7N7oI/i3Y=;
        b=mW36lvVUn8+QFHoxjfvJN0EDidVlwQSc5PSZlCHYzE8hp91FYH1Pcpc3WV+R8vyXKk
         1FiyNTjl9U4vUvogCwbsbMWiullAApMrGg6KSuvCs6K8uX0YbJgeJVxv3kHeK5iy/9ws
         RtN/YzU+oN6+dywGtC1VvlXu0afqf8QCGP8wNmA2e9QOcviQBzupDI9YUcuZBfx5qrvB
         9MpEm5nxma8bMEl9ABPg8gn8opPCrA3RRawdXMJff3UrPkJYwy9+yvhUDphZprEsf+74
         kTaX4Em9vNl99nSXWLqR2WFttpGjlkGw/+5axh8+cf19QlCpQhgC1s/hXsYvzamnrsVE
         WksA==
X-Forwarded-Encrypted: i=1; AJvYcCUwLcLKZ0TLw+qm2NLsjdmVB6k9O9x8Whm7BkyL3YRBGT5U9TtpytOTfjSkqjK7vFd3ZykMvITxlG8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwTvRT3xQgGuYq1Yb5Ul+vh26966opS06SawyF5EkQCaGD0tL1X
	Hh+PWjt2u81uSYvPdXJpL9ym3Q3IIFQEnCld4SPOXmuEEywNqRMcp1SD5PDQ0z81vg==
X-Gm-Gg: ATEYQzxiSOTxgPdmxYC3CB8mZK+08LVllcdSOARsvomrgK8+C32jXXtQP9pt0+3Glja
	AWOhqp4EumqT2weOGuakwq9zdM24WLHJbbF85ZNoYt8T6Jb85GmyGc3RjyiQcRAclHMLOgOpcvp
	JMGUcNi6haH66Yqo8PMyaOAnrnRwiOa9YaGqRQCs66Ds8ImhVsY78MU8h4SGJ/nc1j1wYwjj01X
	19iZjMIo9IiMZIX0q922mN7J+QkZFSAb0QaszQJ0/A+mqqWQoGI2YeHeOVuLmMvg2/gLl7/Utx+
	dEJB8TnqD1N6/Wj9Z5yvNH/r90eTdenXxnWRDoz991f4UkOPEHlGFY+j32CE6NAXpTXSNZnysxU
	s5VmQmbLBrFAHUryILX6bVEil18gSkNMpp9SA0Yhf6iny47OeByAthyW5gPidBeMn6STE2hU9QS
	AWQDjoJcVWp1PcDAFMINJvlO9yC3TPCWJhEPTj+yUlHFBUnphscInQqNzVXL/fpCJAPsXPhsjP6
	GKNcLYP1MlrdHQ=
X-Received: by 2002:a05:600c:4205:b0:488:7784:d06 with SMTP id 5b1f17b1804b1-48877840d50mr46870985e9.31.1774972431809;
        Tue, 31 Mar 2026 08:53:51 -0700 (PDT)
Message-ID: <d1288db4-2001-4914-919f-b613fd607bcc@suse.com>
Date: Tue, 31 Mar 2026 17:53:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 07/11] xen: move domain_use_host_layout() to common
 code
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
 <533d01db2b36b8357cd87e99a64a6e66dbdd1db4.1774281309.git.oleksii.kurochko@gmail.com>
 <6df9470e-4969-48d1-bf0c-c6569a5e5577@suse.com>
 <57581b7d-cb9f-444c-9321-63b2fc3d09f0@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: <57581b7d-cb9f-444c-9321-63b2fc3d09f0@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1774972432-4149FDB8-82194609/0/0
X-purgate-type: clean
X-purgate-size: 2582

On 31.03.2026 17:20, Oleksii Kurochko wrote:
> On 3/30/26 5:13 PM, Jan Beulich wrote:
>> On 23.03.2026 17:29, Oleksii Kurochko wrote:
>>> domain_use_host_layout() is not really architecture-specific, so move it
>>> from the Arm header to the common header xen/domain.h and provide a common
>>> implementation in xen/common/domain.c. domain_use_host_layout() potentially
>>> is needed for x86 [1].
>>
>> No matter that this may indeed be true, ...
>>
>>> Turn the macro into a function to avoid header dependency issues.
>>
>> ... this introduces unreachable code on x86, i.e. a Misra rule 2.1 violation.
> 
> Do we have some deviation tag for such cases when the code temporary 
> isn't used?

I'm sorry, but it'll take me about as long as you to find out. I wonder
about "temporary" though: Do you have a clear understanding as to when
that will change?

>>> @@ -2544,6 +2544,12 @@ void thaw_domains(void)
>>>   
>>>   #endif /* CONFIG_SYSTEM_SUSPEND */
>>>   
>>> +bool domain_use_host_layout(struct domain *d)
>>> +{
>>> +    return is_domain_direct_mapped(d) ||
>>> +           (paging_mode_translate(d) && is_hardware_domain(d));
>>> +}
>>
>> The placement of paging_mode_translate() doesn't match ...
>>
>>> --- a/xen/include/xen/domain.h
>>> +++ b/xen/include/xen/domain.h
>>> @@ -62,6 +62,22 @@ void domid_free(domid_t domid);
>>>   #define is_domain_direct_mapped(d) ((d)->cdf & CDF_directmap)
>>>   #define is_domain_using_staticmem(d) ((d)->cdf & CDF_staticmem)
>>>   
>>> +/*
>>> + * Is the auto-translated domain using the host memory layout?
>>> + *
>>> + * domain_use_host_layout() is always False for PV guests.
>>
>> ... the description of the function.
> 
> But why the placement should be different?

If you focus on auto-translated, then imo paging_mode_translate()
better would guard everything.

> is_domain_direct_mapped() is false for PV guests (and for other guest 
> types on x86).
> 
> So if domain_use_host_layout() is fully depends on 
> paging_mode_translate(d) && is_hardware_domain(d) and for which 
> paging_mode_translate() is false if it is PV guest.
> Thereby domain_use_host_layout() is false too.
> 
>>
>> Further, the first sentence above suggests the caller has to check
>> paging_mode_translate() before calling, which as per the implementation
>> clearly isn't the intention.
> 
> Sorry, I don't follow you here.

By starting the comment with "Is the auto-translated domain using", you
imply the caller checked for that aspect already. At least the way I
read it.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 15:56:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 15:56:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269161.1558276 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7bS8-00018x-8M; Tue, 31 Mar 2026 15:56:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269161.1558276; Tue, 31 Mar 2026 15: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 1w7bS8-00018q-3W; Tue, 31 Mar 2026 15:56:28 +0000
Received: by outflank-mailman (input) for mailman id 1269161;
 Tue, 31 Mar 2026 15:56:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <jbeulich@suse.com>) id 1w7bS6-00018k-Aj
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 15:56:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7bS3-00Fy82-VJ
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 17:56:25 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <jbeulich@suse.com>)
 id 69cbee8e-2eae-0a2a0a5409dd-0a2a45038a6e-18
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 17:56:25 +0200
Received: from [209.85.128.47] (helo=mail-wm1-f47.google.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <jbeulich@suse.com>)
 id 69cbeea9-1947-0a2a45030019-d155802fb5ef-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 17:56:25 +0200
Received: by mail-wm1-f47.google.com with SMTP id
 5b1f17b1804b1-48704db565eso73804785e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 08:56:25 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4887e83682fsm49749425e9.7.2026.03.31.08.56.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 08:56:24 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:Autocrypt:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1774972585; x=1775577385; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=InSI0fJBvNdmLz7Lbfu1htsosIRCbjjDLgKx+8Uljrs=;
        b=PfnGZEpJYd6egXpUDmP2LqBrBeu2RCnfpuDCldVhfg7jDHrZSDFINVlcbkYtZR9BUN
         048dfE0VnbEzyww0ZKB39lbg/NIqY6IpchAZfP5iDFyF7HEEW397KW+IfCmJnoO+pdaV
         PaaGUaznnzjpJjTqb/HK2/3t3kGj0A5czBCGx3mFqzIfGOcBhybA8RwkMlVMXr78D0Mm
         yKQwANQsqAhfpUV2rWYmHKMYGWgkeeLChJ6fJx8VNot3Bk1EPris80cHg+OKpuAzF9Ys
         QLush8sYJuHZ0gZxk23rFUroaPkKINX2Emyg/m3c+WVNaPXCyLAceno9pYKinZNBkc61
         2DlA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774972585; x=1775577385;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=InSI0fJBvNdmLz7Lbfu1htsosIRCbjjDLgKx+8Uljrs=;
        b=Az3taz6PP0Upm4Dkj72uMA0aAWjdEec/E7iyLqhPpqGJz2eKK9lPlw3YekC4lKRCPy
         Gr4qIYcHtTKR5/v4/0qgAPiU3jTjXUcfttLW18zuNsy1gIS6Mu/ZqOUnMA7LYC0Ws+V9
         jv8Y5TeGq/QQq+412UijmCnxePtTlTMiX/EyHyWwKD9Z76mSAQ5VGCtwVX6xTGcMtvZh
         KUW4LNs5/VCiqcWvTtSUsAvFOrt8wjjFuBTinGO2ADHJItXLYQ8ptEfKBfskzd+Ml6At
         enqyjB07e4uVSFZ7IQOIEIuEkszQDHIFRJBYSkGF+IA+cNzyJa/biywIfo5bzWCBlE8L
         Sc+w==
X-Forwarded-Encrypted: i=1; AJvYcCWw3ump2ZvTVq0VVPIqaM4SD9rgRXAdsLm4Lg4UjiShczVuly/rS2fLV7UOhSHLaX1MW8D5i5iis4Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwlPOIvBiMfae6AdPIMyYSo3zNeVcS3jRaDlbE9wxns2+JZdsg+
	0mrMjIYGfj0vKt+jfDmTD2nNJ6j0stYFdkGY+HLjX+UWK6gd88OgF98GWhfkoXmoBQ==
X-Gm-Gg: ATEYQzwdC/rw0HSBSjjrCxJXsLaa1m3SPwRijXx+Wu5WNnxU2naPWHm2so+T6Ucxrc0
	pzAabG/L8FcrVoQTjG5bJrEGsUKvOo1jaw/tE+f16dYIC+FaKAEzZFOARviF3ghhDNrMx5u1KPg
	c7nkQx4nPstCxnC+GVX2Kdl9Yfa264m1tg+1WPlQhC24M668tE4aFHr5mgKjAoLRRugPClEUgKE
	pk9M4waFyTIRUSBdGL4pfTtx5SvJuooAhH9qkW7W40r4iGu/a0asee1ip9C/+LEQgoGVUlaf3mN
	mntYJ5BmRL9iZGCIwO3KtawlY888OzbC/2y6mrYCWIeRIiohqcYL6IWt/MqafgqlPn8IOrd143S
	eSgujO2B56HnPpt//Gt0vRjKZ6/xPDPu7xJ/UbU5o+AB74JQQYZr2Dn+VFsjwpXxqWL2X8HS1ZL
	XkrOhuBeZcrTWTdyQVWM3IEX5IQN8DLZBqnG9oulxlGNUqu1gWLVCApNexj7WJIIVpWhTSvdagA
	ZUu1nBD6lN5BQ2XSTNPaDMMbA==
X-Received: by 2002:a05:600c:35c3:b0:488:81b1:ae36 with SMTP id 5b1f17b1804b1-48881b1af51mr17100385e9.23.1774972584795;
        Tue, 31 Mar 2026 08:56:24 -0700 (PDT)
Message-ID: <ff2c91e3-6da3-4561-bcd6-054ac7ba47d4@suse.com>
Date: Tue, 31 Mar 2026 17:56:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/11] xen/riscv: add kernel loading support
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
 <1688c6e0e616b2d1bc1a9050d66f007e0e65d3b2.1774281309.git.oleksii.kurochko@gmail.com>
 <0a28eda9-a1c5-4e12-907e-b85f8972881c@suse.com>
 <05b1bc67-bbed-412e-881e-a3fb2c2d873b@gmail.com>
 <57f01614-e742-4f2b-be9f-6687ea0b79e5@suse.com>
 <a0efb7a6-4854-4fe5-bbf4-2561f25d7133@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: <a0efb7a6-4854-4fe5-bbf4-2561f25d7133@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-33051d/1774972585-48E5372C-D16AE819/0/0
X-purgate-type: clean
X-purgate-size: 1638

On 31.03.2026 17:36, Oleksii Kurochko wrote:
> On 3/31/26 5:14 PM, Jan Beulich wrote:
>> On 31.03.2026 16:30, Oleksii Kurochko wrote:
>>> On 3/30/26 4:47 PM, Jan Beulich wrote:
>>>> On 23.03.2026 17:29, Oleksii Kurochko wrote:
>>>>> +    /* Currently there is no length in the header, so just use the size */
>>>>> +    start = 0;
>>>>> +    end = size;
>>>>
>>>> What's image_size then?
>>>
>>> The comment is incorrect, the length is present in the header, but it is
>>> effective length which isn't equal to the size of binary and is actually
>>> bigger then binary size.
>>>
>>> So here we want to use 'size' as it is a size of binary itself.
>>
>> What is "effective length"? That sounds a little like e.g. .bss extending
>> past the (file) image, yet such would nee taking into account for allocation
>> (but not for reading in / copying over).
> 
> Yes, correct.
> Effective length is how much memory the image needs when loaded and 
> running. So it includes .bss (and similar sections) that are not stored 
> in the file but need zeroed memory at runtime. So:
>   size = actual bytes in the binary file
>   image_size (from header) = total memory the kernel occupies at runtime 
>   (larger, includes BSS)
> 
> So I think that:
>      start = 0;
>      end = size;
> that could be dropped at all. then:
>    info->image.len = size;
> 
> Then in kernel_image_load, pass load_addr + info->image.effective_size 
> to place_modules instead of load_addr + len.

Not really - for loading you need to know how much to load/copy. For
allocation/placement you need to know the overall size.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 16:02:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 16:02:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269172.1558283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7bY4-0003df-W5; Tue, 31 Mar 2026 16:02:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269172.1558283; Tue, 31 Mar 2026 16:02:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7bY4-0003dY-TW; Tue, 31 Mar 2026 16:02:36 +0000
Received: by outflank-mailman (input) for mailman id 1269172;
 Tue, 31 Mar 2026 16:02:36 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1w7bY3-0003dS-QV
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 16:02:36 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7bY1-00FzNB-Dg
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 18:02:34 +0200
Received: from [10.42.69.2] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69cbf019-5cb7-0a2a0a5109dd-0a2a4502b806-2
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 18:02:34 +0200
Received: from [209.85.221.45] (helo=mail-wr1-f45.google.com)
 by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69cbf01a-63bb-0a2a45020019-d155dd2de858-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 18:02:34 +0200
Received: by mail-wr1-f45.google.com with SMTP id
 ffacd0b85a97d-43cf7683a28so1624051f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 09:02:34 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf245e4b9sm25824049f8f.20.2026.03.31.09.02.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 09:02:33 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774972954; x=1775577754; 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=L12RIOKI8R/ThdZxIl5YMFmzWEDMenCoifj+Nuz7cjY=;
        b=F1A+usEHG3DEb4voulIxzsNjXdassTqQoWn5Ye9om22gzRkNZ+OPHEE2auj+rF+GVH
         M21dwbEg5CRfSjPJjp+rUOmnzUpe5bkwnVhDXcoi0RVxMuVEWFB1ShjelDU3q68XUVWN
         eDGbKqjnOx+4VFLxb1BEWTFoOx5zmh3C3lI5L7qdD0e0Iz3o3ivwtZmsZ01Dy3vhkz4F
         bxRsLQsZkzEMBYLmb+7s0GHFv16ShYQdfmC/HpwZX7X+uV4cjhejPe3Mi8+B39YZ8lmY
         iEWH40q4FYCmru+GX+GcC2HfXi872ExKR8r0foXcUPNi0WU8e49iaU8f3ZI1fc1UtIiV
         ZMrw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774972954; x=1775577754;
        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=L12RIOKI8R/ThdZxIl5YMFmzWEDMenCoifj+Nuz7cjY=;
        b=AUWqX/FjFiKGg69amSNQcmsOLy+QdC6EwdRrdxXqLnOduhArh8fwZTCkTIGJwV3Hau
         0A33NzwQ9fE5J21cLUwK8wa/tfN094tTd+/PiDg1IGGFAgYKdoGK6QYU+eWQcLo2u/1l
         5QIs7mEvJGwZ9vtkw1r+lyJU6MxKiyBdFK9macUaV6Dk5W00dT4/h64d+Ojho6MO5697
         f5i+RHaOhLfbcrX237Y49XOc9qD+RofP0oXcDKG6gdCSBwx0JX8dnwDQFpVRne82/oSk
         OupsWjUxEBBCPeNPW/m42hd5lqUjbl120wkgIL5G+VOJmAe1yxverOd6+ZZ1LPqSThhX
         JYyQ==
X-Forwarded-Encrypted: i=1; AJvYcCVBiu5RkNaCSACaMip3smNo/oHU78faYjvtUorXIsNqT86ecQWC/VtrBwWXLPFMvZDeCG9ohwCEcSw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyg4w5mOKaC0UjXxVL9EFb73VBLFs7gz2zuW2RW43m9eghZFHqY
	NiEEulT7r1JGEtgJI+lWUKOydfEnHODETX/gGCNtEjaXQTG8EAtviTOG
X-Gm-Gg: ATEYQzy410Ie91nMBMWSjY5gHdYYysOy+ElwEFoW8nYy49oIkhEfXJZ+NbH6D/fT7So
	QItz72Ara5xsEeHiOeCeiFN5zrw64q1Z6aNg8po7EdrCIU9P5HrTdBNk2eqNUshSlr8Sn/LR8kH
	qyrVVbSMTd9GBNFOI4R9q+BLflep2wdIHBfrb0Lw96qAn+GCtzN9ejnWZZ99eZcnAPKzkHyb62D
	Iqc3gMXsw1YyADf9YFMedOouGaZYa684j7OqSsAiLBVdHuKhehnaOIRTDkPWS1CJ1oKdskhO2xS
	I61WxfV/dI51ssRAm/TgL/q4x2sPYKPcOuhjR+nShL++eY2rcdPuziD7+MFOdXbrKFDB7UWnb+y
	c9fh0shXDfxnpcWWLaiEHl/5HayQdyTknzqo+LfQuaogx/L6U9BMwSm5l2OnPlS6+AO1AQKAIu1
	9d2KtDZy5wwHLUj/k8KcyHxoKAQRGFY12mBaGsG+fjg4nvpXYPHVobC12tczuuoyVODsjoSTEoF
	VI=
X-Received: by 2002:a05:6000:40dd:b0:43c:fd92:f432 with SMTP id ffacd0b85a97d-43d1504cef0mr418510f8f.2.1774972953612;
        Tue, 31 Mar 2026 09:02:33 -0700 (PDT)
Message-ID: <c87ef4d3-abad-4e46-ae86-f078eb4a5f0e@gmail.com>
Date: Tue, 31 Mar 2026 18:02:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 09/11] xen/riscv: introduce p2m_gpa_bits
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
 <775374eab7b9868b7cabe6c76fa1b7ac2f8466d8.1774281309.git.oleksii.kurochko@gmail.com>
 <4a0f4313-2694-4986-810c-0f4eac191cef@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <4a0f4313-2694-4986-810c-0f4eac191cef@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-720697/1774972954-42298DB8-2D82D557/10/73395122804
X-purgate-type: spam
X-purgate-size: 3420



On 3/30/26 5:34 PM, Jan Beulich wrote:
> On 23.03.2026 17:29, Oleksii Kurochko wrote:
>> p2m_gpa_bits is used by common/device-tree/domain-build.c thereby when
>> CONFIG_DOMAIN_BUILD_HELPERS=y it is necessary to have p2m_gpa_bits properly
>> defined as it is going to be used to find unused regions.
>>
>> Introduce default_gstage_mode to have ability to limit p2m_gpa_bits before
>> p2m_init() is being called as it will be too late.
> 
> This is a somewhat strange way of describing things. Of course you want to
> establish globals before doing any per-domain setup.

Then I will drop that sentence now and avoid similar in the future.

> 
>> Limit p2m_gpa_bits in guest_mm_init() as it could be that default G-stage
>> MMU mode uses less VA wide bits than IOMMU,
> 
> How does a VA come into play here?

It is what spec uses, for example:
  Figure 108. Sv39x4 virtual address (guest physical address).

I can just use GPA.

> And what is "less VA wide bits"?

They could be configured to different modes: IOMMU lets say Sv39 and MMU 
- Sv48, so IOMMU could work with 39-bit GPA, but MMU - with 48-bit GPAs.


> 
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -51,6 +51,24 @@ static struct gstage_mode_desc __ro_after_init max_gstage_mode = {
>>       .name = "Bare",
>>   };
>>   
>> +static struct gstage_mode_desc __ro_after_init default_gstage_mode = {
>> +    .mode = HGATP_MODE_SV39X4,
>> +    .paging_levels = 2,
>> +    .name = "Sv39x4",
>> +};
>> +
>> +/*
>> + * Set to the maximum configured support for GPA bits, so the number of GPA
>> + * bits can be restricted by an external entity (e.g. IOMMU) and the
>> + * restriction must happen before the call of guest_mm_init().
> 
> DYM before p2m_init()? Because you do the calculation in the named
> function.

Yes, before p2m_init(). Probably, as you made a note in the commit 
message, this part could be dropped too.

> 
>> + * The widest G-stage mode defined by the RISC-V specification is Sv57x4,
>> + * which yields 59-bit GPAs: Sv57 maps 57-bit VAs onto 56-bit PAs (PADDR_BITS),
>> + * and the G-stage "x4" extension widens the address space by a further 2 bits,
>> + * hence PADDR_BITS + 1 + P2M_ROOT_EXTRA_BITS.
>> + */
> 
> I fear I don't follow. I can't explain the +1 at all.

Agree, +1 should be dropped. I think I mistakenly interpret PADDR_BITS 
as highest possible bit set, so 55 intead of 56.

  And adding in
> P2M_ROOT_EXTRA_BITS seems wrong too: Whatever the width of output of
> guest paging _is_ the width of input to stage-2 paging. There's no way
> for a guest to encode 2 extra bits.

Agree, PADDR_BITS should be enough here to be used as initializer.


> 
>> @@ -191,8 +209,13 @@ static void __init gstage_mode_detect(void)
>>   
>>   void __init guest_mm_init(void)
>>   {
>> +    unsigned int gpa_bits;
>> +    unsigned int paging_levels = default_gstage_mode.paging_levels;
> 
> Deriving a global from a default, when ...
> 
>>       gstage_mode_detect();
>>   
>> +    ASSERT(default_gstage_mode.paging_levels <= max_gstage_mode.paging_levels);
> 
> ... the default isn't the maximum possible, isn't going to fly.

I didn't get you here.

If we want Xen uses Sv39 for G-stage, we want to limit guest's 56-bit 
GPA to 39-bit GPA, but not the maximum supported by h/w mode for G-stage 
mode.

~ Oleksii





From xen-devel-bounces@lists.xenproject.org Tue Mar 31 16:15:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 16:15:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269183.1558292 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7bk5-0005i2-12; Tue, 31 Mar 2026 16:15:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269183.1558292; Tue, 31 Mar 2026 16: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 1w7bk4-0005hv-UX; Tue, 31 Mar 2026 16:15:00 +0000
Received: by outflank-mailman (input) for mailman id 1269183;
 Tue, 31 Mar 2026 16:14:59 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1w7bk3-0005hn-Fi
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 16:14:59 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7bk2-00CknA-HV
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 18:14:58 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69cbf2eb-e002-0a2a0a5209dd-0a2a4501ba4c-42
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 18:14:58 +0200
Received: from [209.85.128.49] (helo=mail-wm1-f49.google.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.0)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69cbf302-6fc9-0a2a45010019-d1558031d8e9-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 18:14:58 +0200
Received: by mail-wm1-f49.google.com with SMTP id
 5b1f17b1804b1-4887fd35e60so4404095e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 09:14:58 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4887ad9bac6sm31672755e9.4.2026.03.31.09.14.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 09: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>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774973698; x=1775578498; 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=My6NLtfma1tj6rNZdEmIYD5zPrvABhTYSb91XX6+nNA=;
        b=R5QEunFtD3jf5QV+iGRqJmjt0DJQ9pV8W3MnR9RmOXZZcoVfBNEoLeTq4ICcvKiuh1
         TVxzpLtIdj1C6+55SvctapP5WFN3kK7fox89J/ZVF1M4p3gHpbPuXPGNmfxUF4M0AhGc
         3LqKSixhMbI5kyYZfLPQIhU2WKS03OU1v9RFOve3PDUWRQKPcy81QOdGKFU1XWhTEcXJ
         8tszUcUlVeTlWxR2Npt2OV+XhF+2T2/h0mkZAjAfMgRxM2crpWIXPewpDg6rOpH7LTQQ
         Br26KJIh7xhxtNsXKBEU13rsSUO6id61CDM9j8Y4bn0L8We1ciuWA4fwBt/kBlhNIsfH
         by5g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774973698; x=1775578498;
        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=My6NLtfma1tj6rNZdEmIYD5zPrvABhTYSb91XX6+nNA=;
        b=Vuviph79Jqk3sdueZH0FA1Y9v/zs6aqW88g5WUXAd/65T/k8ZQWP5+6HJExAev+CLV
         uhEUj/I7NIVmrPVKY1nKqLSd9clobaOq6o6aQ7MYM92gR0ZGcKhBGU0c63njYk5gHld5
         u6t1yqXHeGiP409WKeypJEQWj7T6nMHQGn9Z60S1dqjgVjTh8s2pMNSsTfN7OQVzjiEw
         h3S1X6t1ESyvhxCB8u5LcEDQzU7AJpMo6UsqJvdyBRbhTksMGRU0eWJUjCp2imTixQb2
         8l7cks7EvPGgd8DJDtejrJhvrQ2be+z56kwALEZcvU5HYUXvQpkzij49x60DztexfOs+
         bb4Q==
X-Forwarded-Encrypted: i=1; AJvYcCW988CVEo8s7AajYtvqBIcKriqzQbVVsJ8f9IEfTyIQs/XP7fm6r/4dJnAttdlUPAuk8HAyyNxlwjw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyKuAZ7qXUNjXP0R4EHL80aHw9bmamd+aSnRXK5tHsv67ZZTDgs
	Cr7WUzFOO0T9EINdAyv8DTj2MVHfwUQYHoNwj1Wib9NXQ8+51e/k4EqV
X-Gm-Gg: ATEYQzwhXt+Wknn54DqOBh0BaAlmBWC3xBRvkQP5VQLMOB5EM4KQgpzBQNUUBIS+29G
	4ytvHVbtoRjkiswJWc0rhMSbfd2rkP5KMh5Y25GEQPOhPaF/w0+tDl/CIuE+5IRApbSlzUPfczb
	KV1NdVk38VkCQcqd5yLGaty9JkapDodXyKZCx2HCO0OBAGNo2Bbqae/hjW0nNCZ39UP7g5RDUuv
	hZ5q5XYrII+ZIHTOwqIM5acYmTs5CkAV9Yh5hr3Pg4E/30XDI6h7eEfP5hQ8YcooA4CIiNqaeGF
	VmxYLjYZ0Dn5b0Htv3dUbsOsW1Yqqs9wF5uiqnLu6hCHtr8xZbqhDglv6Ar8StxFqeLRJjyGarI
	quRPtpI6ASHZboU+w9yNWMMuJ9sMO9wmW25pA31lG0FDmIqJ69iuJDD9PNXSD619I8tIU6EJRIr
	aLTwFWulD3gg9NdRqkdnhiNHTfWRfu6oKUQufOJ4SwwRVhyN3fIdzlyYE4XWWB3+s9jWdhNhz/B
	HM=
X-Received: by 2002:a05:600c:8b2a:b0:485:3dfc:57c with SMTP id 5b1f17b1804b1-48727f5fe97mr298044095e9.21.1774973697567;
        Tue, 31 Mar 2026 09:14:57 -0700 (PDT)
Message-ID: <691be850-9145-4bbf-a897-d10a0193b730@gmail.com>
Date: Tue, 31 Mar 2026 18:14:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 10/11] xen/riscv: add definition of guest RAM banks
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.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.1774281309.git.oleksii.kurochko@gmail.com>
 <8278256f3d270b456d19cb9891b89b88a46548a5.1774281309.git.oleksii.kurochko@gmail.com>
 <1a3a316e-f0ea-4514-95d6-9813d6d5ca76@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <1a3a316e-f0ea-4514-95d6-9813d6d5ca76@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1774973698-B64F6185-976CA64D/10/73395122804
X-purgate-type: spam
X-purgate-size: 3758



On 3/30/26 5:51 PM, Jan Beulich wrote:
> On 23.03.2026 17:29, Oleksii Kurochko wrote:
>> The dom0less solution uses defined RAM banks as compile-time constants,
>> so introduce macros to describe guest RAM banks.
>>
>> The reason for 2 banks is that there is typically always a use case for
>> low memory under 4 GB, but the bank under 4 GB ends up being small because
>> there are other things under 4 GB it can conflict with (interrupt
>> controller, PCI BARs, etc.).
> 
> Fixed layouts like the one you suggest come with (potentially severe)
> downsides. For example, what if more than 2Gb of MMIO space are needed
> for non-64-bit BARs? 

It looks where usually RAM on RISC-V boards start, so I expect that 2gb 
before RAM start is enough for MMIO space.

Answering your question it will be an issue or it will also use some 
space before banks, no?

I don't know how to do that better now.

Further, assuming that the space 4G...8G is what
> you expect 64-bit BARs to be put into, what if there's a device with a
> 4G BAR? It'll eat up that entire space, requiring everything else to
> fit in the 2G you reserve below 4G.

I assume that such big devices could use high memory without any issue.

> 
>> So a second bank is added above that MMIO
>> region (starting at 8 GiB) to provide the remaining RAM; the gap between
>> the two banks also exercises code paths handling discontiguous memory.
>> For Sv32 guests (34-bit GPA, 16 GiB addressable), bank0 provides 2 GB
>> (2–4 GB) and the first 8 GB of bank1 (8–16 GB) is accessible.
>>
>> Extended regions are useful for RISC-V: they could be used to provide a
>> "space" for Linux to map grant mappings.
>>
>> Despite the fact that for every guest MMU mode the GPA could be up
>> to 56 bits wide (except Sv32 whose GPA is 34 bits), the combined size
>> of both banks is limited to 1018 GB as it is more than enough for most
>> use cases.
> 
> Okay, more memory can be made available by (later) adding an optional
> 3rd bank.
> 
>> --- a/xen/include/public/arch-riscv.h
>> +++ b/xen/include/public/arch-riscv.h
>> @@ -50,6 +50,22 @@ typedef uint64_t xen_ulong_t;
>>   
>>   #if defined(__XEN__) || defined(__XEN_TOOLS__)
>>   
>> +#define GUEST_RAM_BANKS   2
>> +
>> +/*
>> + * The way to find the extended regions (to be exposed to the guest as unused
>> + * address space) relies on the fact that the regions reserved for the RAM
>> + * below are big enough to also accommodate such regions.
>> + */
>> +#define GUEST_RAM0_BASE   xen_mk_ullong(0x80000000) /* 2GB of low RAM @ 2GB */
>> +#define GUEST_RAM0_SIZE   xen_mk_ullong(0x80000000)
> 
> Connecting this with my comment on the earlier patch regarding kernel, initrd,
> and DTB fitting in bank 0: How's that going to work with a huge kernel and/or
> initrd (I expect DTBs can't grow very large)?

The short answer it won't, but does initrd usually so big?

DTB is limited to 2MB, IIRC. So it isn't expect to grow to much...

As I mentioned in the reply to earlier patch, I agree that we could 
leave bank0 for kernel and all other put to bank1.

Even more I can try to put kernel in ban1 as I don't see any place at 
the moment where it will be a problem for RISC-V Linux kernel to be in 
high memory.


> 
>> +#define GUEST_RAM1_BASE   xen_mk_ullong(0x0200000000) /* 1016 GB of RAM @ 8GB */
>> +#define GUEST_RAM1_SIZE   xen_mk_ullong(0xFE00000000)
>> +
>> +#define GUEST_RAM_BANK_BASES   { GUEST_RAM0_BASE, GUEST_RAM1_BASE }
>> +#define GUEST_RAM_BANK_SIZES   { GUEST_RAM0_SIZE, GUEST_RAM1_SIZE }
> 
> Why's this needed in the public header?

xl toolstack could use them so I expected what toolstack will use to 
live in this header.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 16:33:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 16:33:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269194.1558302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7c1W-0000VS-Bu; Tue, 31 Mar 2026 16:33:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269194.1558302; Tue, 31 Mar 2026 16:33:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7c1W-0000VL-8s; Tue, 31 Mar 2026 16:33:02 +0000
Received: by outflank-mailman (input) for mailman id 1269194;
 Tue, 31 Mar 2026 16:33:00 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1w7c1U-0000VF-IJ
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 16:33:00 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7c1T-003hgI-C6
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 18:32:59 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69cbf739-5cb7-0a2a0a5109dd-0a2a4507dee2-2
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 18:32:59 +0200
Received: from [209.85.218.51] (helo=mail-ej1-f51.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69cbf73b-fd74-0a2a45070019-d155da33e5ff-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 18:32:59 +0200
Received: by mail-ej1-f51.google.com with SMTP id
 a640c23a62f3a-b9bfcbaa81eso125551966b.1
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 09:32:59 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9b7ae7416dsm428646066b.28.2026.03.31.09.32.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 09:32:58 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774974779; x=1775579579; 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=C6Uwb+TKNThX8Ixf4SwdZeHn+/G93HvQAXOSf0CjIHM=;
        b=CX7sEsbWQe6EbObZV2UxDO8IvvuHUNQOu0jh84rYfhkILnMOB6nAJx8C1iQxT4Ten2
         wNI3eJTp1s4XaagQ/rBt6lDb0oTltKSaIMO+UbU0K2kLiBih4E9WuC2wxeMexetOTAwS
         BNfsbB7tp4AWPzhEfKdkimrwRcH3o7o9ElOvI2ZiTv9Y6HqyFVR3TLCyzZ2Lskap8ZYH
         pHs6JKEp/2y8CphbDCvGqfkb65ptSjfrGfIIno7SOq6lYHO79txG15tHrIaOymBzNu+w
         lDKp2pdl+Plwmi8dAxeKu7ZcTXK/gxxVlgK2fdBWcPycKXvZ27hh9MhVtL68GI5nvzmk
         ek8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774974779; x=1775579579;
        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=C6Uwb+TKNThX8Ixf4SwdZeHn+/G93HvQAXOSf0CjIHM=;
        b=hMGcJ9tQRd7OT7KDGs58EymjlUfCiXrF1DI9eKSPyp4+MZvSdXqVmK0OOz3iLMCUye
         MPdcbP41ujkC7xz0l5lEyqPj3cHaRInjxeKr0Ulvkua2W7naOYa3gWbw3Qma/zhJa8q3
         e0GbPqFQdySb/5jvSesstIEJLQUeTSffhp7ConCbDRcFzB3I5JVMtU364f6vC12qWOcV
         xZpqfmleA2aJJC20owUQ6pJ3TBdWE8nByFt7k8jGPPXNzQMG0Qt32IZw/+2r23oK9+Og
         /iEHJx+MHKOGKB5rjKGDOLFUc0nkMb8MYEsiwDLKEU2fht0QEuUZlWp8a8sAqw3Tud/h
         wGDQ==
X-Forwarded-Encrypted: i=1; AJvYcCUyZN0pHAbPYjHV7vG3wXUFWc+ZrVit1kEkjoc5AiHlkQs5I4eEnnRbgieJAHrvEQGgsaMKY1uAkJo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwYoMpcgfHAOy/R6lHFX+FdAThEBGteYC5k2YDsvnyadv+UiJvS
	3CkG+phyjQWhIZ9LN/IWXBz8aThgqZBMdpU9YYnCYZVDn7HEfpsqeJ+x
X-Gm-Gg: ATEYQzy09mhTQGHO2/coU9ryFWaxyLwhc6j0kiHWgPyFcYP67pNaG31yCSZG8Gu7o83
	y5mb3OXm0mg3eUgxuvdWFH8wT9YPvSqSIxrr01whB8koO5GUa4j/kRTb41ceMPFGizjh3rYe7X2
	8+8jZm/qCq1c8c3hssN84G+rqGLcbk+6rHmAbJeerv3VTWczZcyPdSCTob5c1zosh50oNtq0UTf
	Koyyb4rxljgj+FfEE/uOhVzX/5nFi7zLhj/hU8r2mOy/5BgnbEr4X8XBA68nl1kfinlySQY4g+/
	rg3Yi2/RMnSq3W84BfalyA5WBCpR59A6/9OZbJIsu1OVQpHdXzXpB1JvdFka8cl3aVIABrZwrNP
	48XtJB6mWYi9EUMHGhI8zF+WUVpSuunHQLFBpdthNTdPDvqgXtohhDKJESDyzg2zwRRlHLZLcoP
	Hv37J5aLWobmqZP8jRktu+3jy9a9xdOkOuEh++5Nsv6wQeJcQILV0apoWajWO16z9fWPOyJ2H1z
	Zk=
X-Received: by 2002:a17:907:6c0e:b0:b98:3b5d:e143 with SMTP id a640c23a62f3a-b9c1379b322mr21088066b.6.1774974778508;
        Tue, 31 Mar 2026 09:32:58 -0700 (PDT)
Message-ID: <d67b2856-bf93-4254-afa1-745dc37e0623@gmail.com>
Date: Tue, 31 Mar 2026 18:32:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 07/11] xen: move domain_use_host_layout() to common
 code
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
 <533d01db2b36b8357cd87e99a64a6e66dbdd1db4.1774281309.git.oleksii.kurochko@gmail.com>
 <6df9470e-4969-48d1-bf0c-c6569a5e5577@suse.com>
 <57581b7d-cb9f-444c-9321-63b2fc3d09f0@gmail.com>
 <d1288db4-2001-4914-919f-b613fd607bcc@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <d1288db4-2001-4914-919f-b613fd607bcc@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-ef75cf/1774974779-56CAA303-02942C41/10/73395122804
X-purgate-type: spam
X-purgate-size: 3592



On 3/31/26 5:53 PM, Jan Beulich wrote:
> On 31.03.2026 17:20, Oleksii Kurochko wrote:
>> On 3/30/26 5:13 PM, Jan Beulich wrote:
>>> On 23.03.2026 17:29, Oleksii Kurochko wrote:
>>>> domain_use_host_layout() is not really architecture-specific, so move it
>>>> from the Arm header to the common header xen/domain.h and provide a common
>>>> implementation in xen/common/domain.c. domain_use_host_layout() potentially
>>>> is needed for x86 [1].
>>>
>>> No matter that this may indeed be true, ...
>>>
>>>> Turn the macro into a function to avoid header dependency issues.
>>>
>>> ... this introduces unreachable code on x86, i.e. a Misra rule 2.1 violation.
>>
>> Do we have some deviation tag for such cases when the code temporary
>> isn't used?
> 
> I'm sorry, but it'll take me about as long as you to find out.

Sure, I will take a look. I just thought that maybe you have a solution 
already just in your head.

  I wonder
> about "temporary" though: Do you have a clear understanding as to when
> that will change?

No, I don't. As Stefano mentioned they will need this function one day. 
Another option we could use ifndef x86 or ifdef DOM0_LESS and then when 
someone will really need it on x86, this ifdef will be dropped. I don't 
know if it is better solution.

It seems like the best one solution will still make a try to make 
declare this function as macro.

> 
>>>> @@ -2544,6 +2544,12 @@ void thaw_domains(void)
>>>>    
>>>>    #endif /* CONFIG_SYSTEM_SUSPEND */
>>>>    
>>>> +bool domain_use_host_layout(struct domain *d)
>>>> +{
>>>> +    return is_domain_direct_mapped(d) ||
>>>> +           (paging_mode_translate(d) && is_hardware_domain(d));
>>>> +}
>>>
>>> The placement of paging_mode_translate() doesn't match ...
>>>
>>>> --- a/xen/include/xen/domain.h
>>>> +++ b/xen/include/xen/domain.h
>>>> @@ -62,6 +62,22 @@ void domid_free(domid_t domid);
>>>>    #define is_domain_direct_mapped(d) ((d)->cdf & CDF_directmap)
>>>>    #define is_domain_using_staticmem(d) ((d)->cdf & CDF_staticmem)
>>>>    
>>>> +/*
>>>> + * Is the auto-translated domain using the host memory layout?
>>>> + *
>>>> + * domain_use_host_layout() is always False for PV guests.
>>>
>>> ... the description of the function.
>>
>> But why the placement should be different?
> 
> If you focus on auto-translated, then imo paging_mode_translate()
> better would guard everything.

Then it make sense to do in the following way:
  bool domain_use_host_layout(struct domain *d)
  {
-    return is_domain_direct_mapped(d) ||
-           (paging_mode_translate(d) && is_hardware_domain(d));
+    return paging_mode_translate(d) &&
+           (is_domain_direct_mapped(d) || is_hardware_domain(d));
  }

> 
>> is_domain_direct_mapped() is false for PV guests (and for other guest
>> types on x86).
>>
>> So if domain_use_host_layout() is fully depends on
>> paging_mode_translate(d) && is_hardware_domain(d) and for which
>> paging_mode_translate() is false if it is PV guest.
>> Thereby domain_use_host_layout() is false too.
>>
>>>
>>> Further, the first sentence above suggests the caller has to check
>>> paging_mode_translate() before calling, which as per the implementation
>>> clearly isn't the intention.
>>
>> Sorry, I don't follow you here.
> 
> By starting the comment with "Is the auto-translated domain using", you
> imply the caller checked for that aspect already. At least the way I
> read it.

My understanding was that it is an explanation what function is checking.

~ Oleksii




From xen-devel-bounces@lists.xenproject.org Tue Mar 31 17:32:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 17:32:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269219.1558310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7cwN-0000G4-H9; Tue, 31 Mar 2026 17:31:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269219.1558310; Tue, 31 Mar 2026 17:31:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7cwN-0000Fx-EU; Tue, 31 Mar 2026 17:31:47 +0000
Received: by outflank-mailman (input) for mailman id 1269219;
 Tue, 31 Mar 2026 17:31:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <catalin.marinas@arm.com>) id 1w7cwL-0000Fr-Ir
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 17:31:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7cwJ-00GC7q-85
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 19:31:44 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <catalin.marinas@arm.com>)
 id 69cc04f8-5cb7-0a2a0a5109dd-0a2a4507bf18-28
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 19:31:43 +0200
Received: from [217.140.110.172] (helo=foss.arm.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTP (eXpurgate 4.55.2)
 (envelope-from <catalin.marinas@arm.com>)
 id 69cc04ff-fd74-0a2a45070019-d98c6eacb23c-1
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 19:31:43 +0200
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 8FA1C1E5E;
 Tue, 31 Mar 2026 10:31:36 -0700 (PDT)
Received: from arm.com (usa-sjc-mx-foss1.foss.arm.com [172.31.20.19])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id BDE373F915;
 Tue, 31 Mar 2026 10:31:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=foss header.d=arm.com header.i="@arm.com" header.h="Date:From:To:Cc:Subject:References:In-Reply-To"
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss;
	t=1774978302; bh=3i1Gq4JAIizBknxjSLlecxNj8YdouZQOldf/Gi8SPcc=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=WDzivK/ay0BT4/Mfila47ssOCUKcoC8mcE1OJ3YzJDm9s79Zs686E4kzJf4HRuKB6
	 lpHJ/DyPCzQqdZR0SBq1PcmDDq9UF0avGeThJW47JsQ4fAL+D9oqkCMCvB+7zuGSCf
	 u5jO9aDk1QLnYCQi+3kmjhvfmGJUmFBpQyUk3kzE=
Date: Tue, 31 Mar 2026 18:31:33 +0100
From: Catalin Marinas <catalin.marinas@arm.com>
To: Chengwen Feng <fengchengwen@huawei.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>, Will Deacon <will@kernel.org>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Palmer Dabbelt <palmer@dabbelt.com>, Borislav Petkov <bp@alien8.de>,
	"H . Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Len Brown <lenb@kernel.org>, Sunil V L <sunilvl@ventanamicro.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Jonathan Cameron <jonathan.cameron@huawei.com>,
	Kees Cook <kees@kernel.org>, Yanteng Si <si.yanteng@linux.dev>,
	Sean Christopherson <seanjc@google.com>,
	Kai Huang <kai.huang@intel.com>,
	Tom Lendacky <thomas.lendacky@amd.com>,
	Thomas Huth <thuth@redhat.com>,
	Thorsten Blum <thorsten.blum@linux.dev>,
	Kevin Loughlin <kevinloughlin@google.com>,
	Zheyun Shen <szy0127@sjtu.edu.cn>,
	Peter Zijlstra <peterz@infradead.org>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>,
	Xin Li <xin@zytor.com>, "Ahmed S . Darwish" <darwi@linutronix.de>,
	Sohil Mehta <sohil.mehta@intel.com>,
	Ilkka Koskinen <ilkka@os.amperecomputing.com>,
	Robin Murphy <robin.murphy@arm.com>,
	James Clark <james.clark@linaro.org>,
	Besar Wicaksono <bwicaksono@nvidia.com>, Ma Ke <make24@iscas.ac.cn>,
	Wei Huang <wei.huang2@amd.com>,
	Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Somnath Kotur <somnath.kotur@broadcom.com>,
	punit.agrawal@oss.qualcomm.com, guohanjun@huawei.com,
	suzuki.poulose@arm.com, ryan.roberts@arm.com,
	chenl311@chinatelecom.cn, masahiroy@kernel.org,
	wangyuquan1236@phytium.com.cn, anshuman.khandual@arm.com,
	heinrich.schuchardt@canonical.com, Eric.VanTassell@amd.com,
	wangzhou1@hisilicon.com, wanghuiqiang@huawei.com,
	liuyonglong@huawei.com, linux-pci@vger.kernel.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev,
	linux-riscv@lists.infradead.org, xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org, linux-perf-users@vger.kernel.org,
	stable@vger.kernel.org
Subject: Re: [PATCH v10 0/8] ACPI: Unify CPU UID interface and fix ARM64 TPH
 steer-tag issue
Message-ID: <acwE9V-r63-W2wby@arm.com>
References: <20260320031737.35048-1-fengchengwen@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260320031737.35048-1-fengchengwen@huawei.com>
X-purgate-ID: tlsNG-ef75cf/1774978303-578A4303-814D3AD7/0/0
X-purgate-type: clean
X-purgate-size: 2086

On Fri, Mar 20, 2026 at 11:17:29AM +0800, Chengwen Feng wrote:
> This patchset unifies ACPI Processor UID retrieval across
> arm64/loongarch/riscv/x86 via acpi_get_cpu_uid() (with input validation)
> and fixes ARM64 CPU steer-tag retrieval failure in PCI/TPH:
> 
> 1-4: Add acpi_get_cpu_uid() for arm64/loongarch/riscv/x86 (update
>      respective users)
> 5: Centralize acpi_get_cpu_uid() declaration in include/linux/acpi.h
> 6: Clean up perf/arm_cspmu
> 7: Clean up ACPI/PPTT and remove unused get_acpi_id_for_cpu()
> 8: Pass ACPI Processor UID to Cache Locality _DSM
> 
> The interface refactor ensures consistent CPU UID retrieval across
> architectures (no functional changes for valid inputs) and provides the
> unified interface required for the ARM64 TPH fix.
> 
> ---
> Changes in v10:
> - Refine commit header&log according to Punit's and Bjorn's review
> - Split perf/arm_cspmu as a separate commit which address Punit's
>   review
> 
> Changes in v9:
> - Address Bjorn's review: split commits to each platform so that make
>   them easy to review
> 
> Changes in v8:
> - Moving arm64's get_cpu_for_acpi_id() to kernel/acpi.c which address
>   Jeremy's review
> 
> Chengwen Feng (8):
>   arm64: acpi: Add acpi_get_cpu_uid() for unified ACPI CPU UID retrieval
>   LoongArch: Add acpi_get_cpu_uid() for unified ACPI CPU UID retrieval
>   RISC-V: ACPI: Add acpi_get_cpu_uid() for unified ACPI CPU UID
>     retrieval
>   x86/acpi: Add acpi_get_cpu_uid() for unified ACPI CPU UID retrieval
>   ACPI: Centralize acpi_get_cpu_uid() declaration in
>     include/linux/acpi.h
>   perf: arm_cspmu: Switch to acpi_get_cpu_uid() from
>     get_acpi_id_for_cpu()
>   ACPI: PPTT: Use acpi_get_cpu_uid() and remove get_acpi_id_for_cpu()
>   PCI/TPH: Pass ACPI Processor UID to Cache Locality _DSM
> 
>  Documentation/PCI/tph.rst          |  4 +--
>  arch/arm64/include/asm/acpi.h      | 17 +---------
>  arch/arm64/kernel/acpi.c           | 30 ++++++++++++++++++

For the arm64 bits:

Acked-by: Catalin Marinas <catalin.marinas@arm.com>


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 18:34:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 18:34:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269237.1558319 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7duU-0008Fi-0V; Tue, 31 Mar 2026 18:33:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269237.1558319; Tue, 31 Mar 2026 18:33: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 1w7duT-0008Fb-UA; Tue, 31 Mar 2026 18:33:53 +0000
Received: by outflank-mailman (input) for mailman id 1269237;
 Tue, 31 Mar 2026 18:33:51 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <xakep.amatop@gmail.com>) id 1w7duR-0008FF-Mh
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 18:33:51 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7duQ-003y83-T5
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 20:33:50 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69cc138c-2eae-0a2a0a5409dd-0a2a450abc7c-6
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 20:33:50 +0200
Received: from [209.85.128.50] (helo=mail-wm1-f50.google.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <xakep.amatop@gmail.com>)
 id 69cc138e-1772-0a2a450a0019-d1558032e823-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 20:33:50 +0200
Received: by mail-wm1-f50.google.com with SMTP id
 5b1f17b1804b1-4853c1ca73aso62397525e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 11:33:50 -0700 (PDT)
Received: from EPUAKYIW02F7.. ([45.12.26.38]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43cf257b72dsm29583474f8f.34.2026.03.31.11.33.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 31 Mar 2026 11:33:49 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774982030; x=1775586830; 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=Nr9yScUaDD+TJWaJvRWr6iRI0sI5FP2KmlYSEbZolD0=;
        b=SV/E/rd+2VRSxYzNmH9ZSBIENgtkPjh4pCYqkkC/C0QlnBj8dxJNl3L/agUVd5SbDv
         YkF8Vj6VaLyydPQRARPq++3BqxmOp1mn/I54BDjY/Q/4rngFGfWM0fy/xqHqsjy96Xov
         aYGTrwoBBY9oXBrD/cC6V50OM1wmpaPz/J/NjoCPbUjdkVnBZF0BPe90HCkGuXmV5wWS
         aQXev6x6Lin/3lCLINtsJzLPbkxk2D5oTl0F+IGYU/IRkTmZtY7IXhhdbyqfGVIRJx7l
         g6oFHhHd+b8kFFKLGdBFV8VI2Dp9f7SvqgHtdXr6zC+LwKAVc3qvKUA74Da+Y4/JSEvG
         JvRQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774982030; x=1775586830;
        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=Nr9yScUaDD+TJWaJvRWr6iRI0sI5FP2KmlYSEbZolD0=;
        b=HGXKSB42gu3OTMjO1BSCBkOTNkCkQ31oHpMZiiGZGsg/BC+0uzjgYKzeBxWKEFuaig
         PhUJ0S5ppm5rVEFF0+Vtarm4NnbSNrMB5zXu2cjllcuDkYrKuZ2QLGwQhPnJw/1Rqrm9
         7FgBstiOOEZf6b2aFQnt2dh5uFSNFyGUMAWy956aKEBigLajQ5qsz4KSJCKiROLOySSV
         3Y6DzSZsfaox6KVJFdXzFCHb9KuSctxLDFw6aaZb9IuRVCnK+tQ/r+pJigRYFX46eMg6
         R0F8fuA1aYPS9tI4eBRaliYks+wpB5mJSikP25LPLHBUSvVm97mRR7YjqF3k7FnfYbCj
         OKUA==
X-Gm-Message-State: AOJu0Yw19Wkz4OTTFKMupV2ut3aqA7z5lUJG+AoZsc25oi8YlKPTCyXY
	VfH5WQRMfJXqJHhz9FEToH8e7FHqFag/17QZ/YUl1at45fqWAoRTIYvfpKhLUQga
X-Gm-Gg: ATEYQzzIUTp7RUIVtfNhxUV9BrZxyknFUza14tjJWumXx9Uylv0YKaUVuWAp3AeBhHU
	4+5e+8SNq8lZP6y+qdIS550dpn73SjygBms3LcTt5YXvEr3tc91NQOuYV++BSmgKJS1vrI5dS4T
	fnlFcMJDcr5Tcni0ZRDksF9Ys6RouyZk0gXpA3JhSl5VXecus/a+HFH8ckPi/QFFniX7i6mItM0
	idfwtb9NR8AkNABzZtReoyMm0d8S/7sz1/tsVI30571fpcwgxtKGeK7vwdy2wAq1t06p1vlfW4C
	eFn7cIwIuRD7vA308jgEpeU10Vg+9H6SbBr3iobj8Qf1occ3WVwzwpR+IO9smlFP3cYaU4ufcyH
	GMrXz83BA6wrosLudhNQKQzUGFMHTwxhbMHm/7RKEDHEYbi2thRcz3BtV/zVAKVzvBF7DDA41cj
	5GfvfJwatFc3qDX9CJ0UJVsPdbFgJJsrs8Mhb8
X-Received: by 2002:a05:600c:848d:b0:485:3c66:e230 with SMTP id 5b1f17b1804b1-488835b78f1mr7815175e9.29.1774982029338;
        Tue, 31 Mar 2026 11:33:49 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v3] xen/arm: vpsci: ignore upper 32 bits for SMC32 PSCI arguments
Date: Tue, 31 Mar 2026 21:31:29 +0300
Message-ID: <e1d18d55557ebe232fd62174f186b1cf228e48e5.1774981189.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1774982030-BEE95900-FD43B49B/0/0
X-purgate-type: clean
X-purgate-size: 4884

From: Mykola Kvach <mykola_kvach@epam.com>

SMCCC DEN0028G, section 3.1, states that for AArch64 SMC/HVC calls
using Wn, only the least significant 32 bits are significant and the
upper 32 bits must be ignored by the implementation.

So for SMC32 PSCI calls, Xen must not treat non-zero upper bits in the
argument registers as an error. Instead, they should be discarded when
decoding the arguments.

Arm ARM DDI 0487J.a (D1-5406) also notes that the upper 32 bits may be
implementation defined when entering from AArch32. Xen zeros them on
entry, but that guarantee is only relevant for 32-bit domains.

Update PSCI v0.2+ CPU_ON, CPU_SUSPEND, AFFINITY_INFO and SYSTEM_SUSPEND
to read SMC32 arguments via PSCI_ARG32(), while keeping the SMC64
handling unchanged.

No functional change is intended for PSCI 0.1.

Suggested-by: Julien Grall <julien@xen.org>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
v3:
 - use PSCI_ARG_CONV for SYSTEM_SUSPEND

v2:
 - introduce PSCI_ARG_CONV() to centralize convention-dependent argument
   decoding for PSCI v0.2+ calls;
 - use smccc_is_conv_64(fid) instead of open-coding per-call SMC32 checks;
 - keep PSCI 0.1 handling unchanged, except switch on the already-decoded
   fid instead of re-reading x0/r0.

Link to discussion: https://patchew.org/Xen/cover.1751020456.git.mykola._5Fkvach@epam.com/072270e0940b6bcc2743d56a336363f4719ba60a.1751020456.git.mykola._5Fkvach@epam.com/#7070f416-119c-49f8-acd0-82c6e31f0fc6@xen.org
---
 xen/arch/arm/vpsci.c | 29 ++++++++++++++---------------
 1 file changed, 14 insertions(+), 15 deletions(-)

diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
index bd87ec430d..ac6af6118f 100644
--- a/xen/arch/arm/vpsci.c
+++ b/xen/arch/arm/vpsci.c
@@ -305,13 +305,16 @@ static int32_t do_psci_1_0_features(uint32_t psci_func_id)
 #define PSCI_ARG32(reg, n) PSCI_ARG(reg, n)
 #endif
 
+#define PSCI_ARG_CONV(reg, n, conv_64) \
+    ((conv_64) ? PSCI_ARG(reg, n) : PSCI_ARG32(reg, n))
+
 /*
  * PSCI 0.1 calls. It will return false if the function ID is not
  * handled.
  */
 bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid)
 {
-    switch ( (uint32_t)get_user_reg(regs, 0) )
+    switch ( fid )
     {
     case PSCI_cpu_off:
     {
@@ -346,6 +349,8 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
      * adding/removing a function. SSSC_SMCCC_*_REVISION should be
      * updated once per release.
      */
+    bool is_conv_64 = smccc_is_conv_64(fid);
+
     switch ( fid )
     {
     case PSCI_0_2_FN32_PSCI_VERSION:
@@ -378,9 +383,9 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
     case PSCI_0_2_FN32_CPU_ON:
     case PSCI_0_2_FN64_CPU_ON:
     {
-        register_t vcpuid = PSCI_ARG(regs, 1);
-        register_t epoint = PSCI_ARG(regs, 2);
-        register_t cid = PSCI_ARG(regs, 3);
+        register_t vcpuid = PSCI_ARG_CONV(regs, 1, is_conv_64);
+        register_t epoint = PSCI_ARG_CONV(regs, 2, is_conv_64);
+        register_t cid = PSCI_ARG_CONV(regs, 3, is_conv_64);
 
         perfc_incr(vpsci_cpu_on);
         PSCI_SET_RESULT(regs, do_psci_0_2_cpu_on(vcpuid, epoint, cid));
@@ -391,8 +396,8 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
     case PSCI_0_2_FN64_CPU_SUSPEND:
     {
         uint32_t pstate = PSCI_ARG32(regs, 1);
-        register_t epoint = PSCI_ARG(regs, 2);
-        register_t cid = PSCI_ARG(regs, 3);
+        register_t epoint = PSCI_ARG_CONV(regs, 2, is_conv_64);
+        register_t cid = PSCI_ARG_CONV(regs, 3, is_conv_64);
 
         perfc_incr(vpsci_cpu_suspend);
         PSCI_SET_RESULT(regs, do_psci_0_2_cpu_suspend(pstate, epoint, cid));
@@ -402,7 +407,7 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
     case PSCI_0_2_FN32_AFFINITY_INFO:
     case PSCI_0_2_FN64_AFFINITY_INFO:
     {
-        register_t taff = PSCI_ARG(regs, 1);
+        register_t taff = PSCI_ARG_CONV(regs, 1, is_conv_64);
         uint32_t laff = PSCI_ARG32(regs, 2);
 
         perfc_incr(vpsci_cpu_affinity_info);
@@ -422,14 +427,8 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
     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);
-        }
+        register_t epoint = PSCI_ARG_CONV(regs, 1, is_conv_64);
+        register_t cid = PSCI_ARG_CONV(regs, 2, is_conv_64);
 
         perfc_incr(vpsci_system_suspend);
         PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid));
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 18:53:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 18:53:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269247.1558329 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7eDA-0002j4-Hy; Tue, 31 Mar 2026 18:53:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269247.1558329; Tue, 31 Mar 2026 18:53:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7eDA-0002ix-Ea; Tue, 31 Mar 2026 18:53:12 +0000
Received: by outflank-mailman (input) for mailman id 1269247;
 Tue, 31 Mar 2026 18:53:11 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <edwin.torok@citrix.com>) id 1w7eD9-0002ir-BI
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 18:53:11 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7eD7-0040jO-R7
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 20:53:09 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <edwin.torok@citrix.com>)
 id 69cc1803-5cb7-0a2a0a5109dd-0a2a4503e284-20
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 20:53:09 +0200
Received: from [52.101.85.52]
 (helo=BYAPR05CU005.outbound.protection.outlook.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <edwin.torok@citrix.com>)
 id 69cc1813-1947-0a2a45030019-34655534d2bb-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 20:53:09 +0200
Received: from SA3PR03MB7419.namprd03.prod.outlook.com (2603:10b6:806:39c::6)
 by IA3PR03MB8021.namprd03.prod.outlook.com (2603:10b6:208:502::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar
 2026 18:53:04 +0000
Received: from SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc]) by SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc%6]) with mapi id 15.20.9769.015; Tue, 31 Mar 2026
 18:53:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=m6Vqjyw6gOJR27TKqO6rctn7eW0gBawwkj7BJG72q9gVBNJgD8NhPhBjsj6A71oTX9hNZl5NVdiwAhkalF9BZrXvwUwVUsQAoORzRsZqstaeNdgmOPxk3+eFMiXX4Pgyzal7ppYsDbgkXzxSgYN5PV7VcsY+EXb4InYA6N/PTKB+I2gFT5zHiu8wfNeYugmPjna6eI0RDVIx+jHcJZf5o9kB0rnHvTcXne4dvrQihQ1OGSEVMn+GpNODZ/ZKvZW3kUczDA0IcbOR6cTuwiuEBmwQpp5u3KDKMNrk30TlspX6HTalkQQxL+1VD5s/CV6uFTRokwC7HsJ+dhxJAMiBAw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WJrwMEkRQFsBCNOtHa4+e+DOo8IJiDMWUuPBfNAAYXU=;
 b=So1zlMR6g05dF4qmoU74sRYbeK8ltvCJR7BbmkANMk5U4K+46WN9tBgZAi+7Lfkg8BKyCKmn2M9lmyCPu2CtVk4C5EZkGPO7g0y6JKogXH7EQtarN0kZNMA08G/R74BG+oHPKvV6q7K7PNuyrxXWEGkEgGb0om0Bhf+olJHTVgieinjmNv95QtxjJ8qdzs64mNJo/IvKk4Im6UjZvg/zNnZwLehyyK9j9Bidq2FVxnfpDRHnTswhv1uihNgdqPs7sQSk9aXjAQvvJFsuyMRk5Xkn5kEShusVRsJhg5teaF9XQOJBwTr3qgFJbOZchwhWvnY8WD2cCTCZO2efRtlhjA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WJrwMEkRQFsBCNOtHa4+e+DOo8IJiDMWUuPBfNAAYXU=;
 b=Zfrg+eICJgl4P6dFIf8lGhLzT3lbDBJsV+3mCfq4wKvwZNsUcjbkJxa4mxLwRW3oIYphBUXam33MUpxtHirzm8ISuPlSYnUglSgm1cdNymFvt1KbzgrnvmQ0+hNGBb5V/HaARnBnvC77ESulTnNddJxgTwC9G5IL932WNVYr0SE=
From: Edwin Torok <edwin.torok@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>, Roger Pau Monne <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v1 1/5] README: update minimum make to 4.1
Thread-Topic: [PATCH v1 1/5] README: update minimum make to 4.1
Thread-Index: AQHcwGC/br3u5UUhvkGzDiCK7sswX7XIKoSAgAAhq4CAAAKTAIAAr6YA
Date: Tue, 31 Mar 2026 18:53:04 +0000
Message-ID: <4F96EDC1-F3B7-45ED-82EA-C28ABD3F1A01@citrix.com>
References: <cover.1774886602.git.edwin.torok@citrix.com>
 <4bbe4e23abcd5b1b32204d391bdd593205b89201.1774886602.git.edwin.torok@citrix.com>
 <16b415a9-b74f-4afe-a14f-e9d2df704eb9@suse.com>
 <9F272BD1-F382-4337-ADFE-CCA4E390A8AC@citrix.com>
 <0b831a75-c205-427e-a35f-fa37a6bd0e35@suse.com>
In-Reply-To: <0b831a75-c205-427e-a35f-fa37a6bd0e35@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA3PR03MB7419:EE_|IA3PR03MB8021:EE_
x-ms-office365-filtering-correlation-id: 15b4a778-3f1c-47d6-d7c0-08de8f56bdc2
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|22082099003|56012099003|18002099003|38070700021;
x-microsoft-antispam-message-info:
 7kdl0t2bJ6S9z5m9n/RUgjcpM9+tY+uwQ/bozWAwZ3vgnYxKzIQ9P6HB2kp8KLORRqYsCmaQ4tRUTiuBYv73nsNVuXKpeyS2uLiUKFgJeEeVLmXKkHLwXX5S8QIJYNUuKGAqREI/xQOMBu/clP+8eUpBXFKZHceHP5rrSROG19O76xVbAqg58qLkRSYHM5oEwcYkqcav+ssIgX5fNrzwjwZa+YplifGIoIehDK/1OYEeE7IAY15Nmk0F6Fk3chowGjSOe/lZRtB06PjaJnkKti6fWijUr3OEcRMvMjdxEsvuRPoIXQuznsSvxgDwdyOOHvLOzlSXqONCPyrjrSXcS2h1rF4kLkwLBHgRfg2G1/O2+JsNvl6DF4uw4DCvwBBGwnGxdcfYngIB2XDhngdJUk10ALUX3whKfwX/aYWI80UrhLozButzOf8jnL2syAI3ERW00xaop6Pe68+XnysXdPISQsLxwPrgn8eEApcspSGtlQQEhQPHl+1QwxhW0XoghOL+IYT3qWu3PQ16aK9llxvmMHm5s33UD6GQvfiCC45meR3u2xe/CW2FZrgpQdfNpIp/HzCNGDXe8gmXVccsS1gbjUkan21Dc8t9mwi8K6EG3hUYjJ1w0Xi47V3zMbIbnaI5kxM1RVoQ/JRFpURTIMdX7nvdnwyjz66RHtNU4pU3cxHFVR9iVwZVKO4lmmdF3F25wAj8l2QZJ3w6A57Idn8O5s4ijix9dZB1CAy5wQCF+/Q5ZIQxRxSWdVD1Qf/G
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA3PR03MB7419.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(22082099003)(56012099003)(18002099003)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?S2p6N0p5Y0x4TzJRajhiVDRKNDl6czdtZ0J5ZmxQMXVsajVHZHFBMlhrRE5Y?=
 =?utf-8?B?RUgvKzAvRVJjTUdubG9RaFlmNXhza3ZvbFJnTUJYK0NIUVM0cmFPYXFRWmRy?=
 =?utf-8?B?Y29GL0RKemQ4ZGZqSXl6MDJCSit3MlhQRXhBTGdDNkFhOTBVNEhWQ0xzNGZv?=
 =?utf-8?B?WGNvWjFJaXVOQXVEOUlidThYRVJ6T3BLcmVrMktGaGRjMGtlc09BelQ2WThv?=
 =?utf-8?B?eU8zbnZPZmxib0d6ckdCQ2RTNU1CaUVma3UxSUg5ZXU4Y3BSckdBNDJGNHJw?=
 =?utf-8?B?UnAvbVpGY2ZTaW1qclJlRnZWb0xyeW1nZWZmUGdxaXI4WHJSMVJ5blRwYkFT?=
 =?utf-8?B?eFBwVFBFbHBTbkFjNjJ6cVhrdmhhWEpJQWFsc2dpZEtpTGpsMmVmcjE4QW9u?=
 =?utf-8?B?TWdkcGc2cS8yOGhzUDlZd2FJWFRNRWFaNjBsQkdWNzNFZ3FibnZ4NGFHRkNM?=
 =?utf-8?B?bU9nNkp2aG5uRkFMWGd5QTdON2NzVkM0ZjFyNmprNXdaWHJFTnlpWGU0dHcw?=
 =?utf-8?B?SlliY3o3bjRtdERQSHJyT1hxVEdqMm9Ec0VuaHRzdEZaNmVISnV5WSs2YnR2?=
 =?utf-8?B?MytZUnRUUnJqTkpvWFl0cGRNSGlEZk9qcGZ3STNCMlJHbHlncCtiV0REeDJq?=
 =?utf-8?B?OEVvWktxUG1GUDZEeFdIaXRwK3dzUnBpOXR0OEF1VE1ybldqcmFUTmhJQ3p3?=
 =?utf-8?B?WWY3Tys1dmVibWxsWWtpN3NYUThiVi9MSDkwNG9CNHJ3WGI5SHRnOVlGNGZq?=
 =?utf-8?B?REZlRS8rZUFIUnVDajRtVFpKTlFxVW5mK2JzU0ZDelUzSE5nc3IrQVpDVFpP?=
 =?utf-8?B?cHRTbm93d1lsSUw4Q3hJaUE0bVUvc2VJQ2l4M1B3cjlDMnFaYkFxV2s0RlNt?=
 =?utf-8?B?dW5NdHo2VHJab3hUZ3VLenQyUTRidFRPOW1JL1JjcE9IbStUcGZ4KzgwVFU0?=
 =?utf-8?B?NFp5Qm1HLzFYVWN1MytGOHpVS3NuS3pRa0xmY0tscE1icjMrWmNRM2pmekVY?=
 =?utf-8?B?eGpIc0cxQ2xaeENLeXIxVGh2alFXNm42VGV6MEwraW5vTUZsSXZlNnVsNDNJ?=
 =?utf-8?B?NWhlMVp1ODE4OGh4RTRIcHZEOERQQWM2cXQ0Nkx4aWhaSDdWQVdxY2tTK2Va?=
 =?utf-8?B?RHVMYzcwM3VDMjJ5czZ3K2llSE04ZitnZ2cyUUwvcVgzbTlDS2JRMEJtNlpK?=
 =?utf-8?B?YUd2bG5YS3VPWlp3RUdHRUFHVjRpaVVwMXdXZzMvWjc2V1N5OGlwb24rVlRV?=
 =?utf-8?B?SDhxWDhvenZYRStKVlZJdWFBMEJmVjUzVjBUWkMwcHN1anhWMzU4Ty9aaWxh?=
 =?utf-8?B?dkJ5clIvanJaWVlvR01tNDJPVXpjblZ2aEFtaTZvZThVNW9aWnd3Zm5WSmtL?=
 =?utf-8?B?SllkVWZMT09CekdmZC9tcjRTVFZQMGp4eXRaZzZ2Uko0aUtqUGF2TVFLZmhv?=
 =?utf-8?B?ZzdkZ3JiQmw0ODBIeGVGVkhkUytuYk5PU1dxdXpDK0ZuckFNaGVyVm5oK1ZO?=
 =?utf-8?B?VGNlUnpWWEhuRmw5Zk1Ea3JQRFZ5L3BESit6T0UzMm9LUTVCc2M3amV2cmtD?=
 =?utf-8?B?bDRUL3FJc2VaV1I0WmFWQmZKZGtRdnZtd0lwaklyekRudzFla0ZQRTl0UHlU?=
 =?utf-8?B?L0VvbXVpeHloRkNmOFIzSEZEVXAxTHZmMnFRaWdJeXZkc0xack05Y1FaN0k1?=
 =?utf-8?B?bTQrNzFuRmNsRTRtK0ZMaW9FcllGVnRPNFFkanRTS3p1NE5WY1hPL01vK1dx?=
 =?utf-8?B?UDdjaDZTME5zdHFYTHpzUm5QenViTll1UGUxcU04VUNmUVpIV1R1dm5YbnZ1?=
 =?utf-8?B?TEJaZjJveVM0OUN0VXJZUC94T3VnTzR4Vk5wT3JLcXBsOEdvaWFFeStncDNj?=
 =?utf-8?B?MVFZWkZaZC9RTnZoWkFhYW5zRFE5YkJiczNBQWY2bkdGcGVWcU5pSTJuZ3FE?=
 =?utf-8?B?TGMxWG5xdkVjdEIwWk9Xdy8vQUxjL1ZKYVF4YzdEcFBHUDVuUzUzeHYzVEFT?=
 =?utf-8?B?bkNLRkJVYkdiSktnNU9jeFI3T2ZOV0FFbkJ2MnA2NE5qQnJZdVRuTDNjLzIx?=
 =?utf-8?B?dUNFNWJmdEo3T0tobEV0NlNDdGRSZFhDZDZkSHEyYVpwTkpWYjlSU0FyQSs2?=
 =?utf-8?B?MmJkQlovSzU3aGRZL3BuRzFwbFc5QzM3VnJob05qY2Jtb2o4cG05SUlvWjRr?=
 =?utf-8?B?TkhmUGpoVUMrVlY2SHB5WnNnalU4L0RrRDBCb1lCWmIzRnRicjlxUXhtQXNl?=
 =?utf-8?B?S3BWQ0hoeUh3Wk1jQlJNd3BsdXlTTHBJWUw0eDgzeUxnRjQ4VG45ZWViczNK?=
 =?utf-8?B?ZEF4YVFpWVFrZVZEV0oxR1g1MElVUmtOK000a2xUWEJTUFk5S0R1TDRWSjBC?=
 =?utf-8?Q?tmz67CYTb4pT8ZXU=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <F6192BAE4624704692E33A4DDDEE8B25@namprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA3PR03MB7419.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 15b4a778-3f1c-47d6-d7c0-08de8f56bdc2
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 18:53:04.6415
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 4B/RtDyfpbR4fT7mkttPO16Jfy+09M4pav2S5SOgEjw3Tiy61KgMUUaqizPthoz1Llv1QaeY6ADqo8s1VmRduQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR03MB8021
X-purgate-ID: tlsNG-33051d/1774983189-7768972C-E1BCBB7C/0/0
X-purgate-type: clean
X-purgate-size: 2288

DQoNCj4gT24gMzEgTWFyIDIwMjYsIGF0IDA5OjI0LCBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz
ZS5jb20+IHdyb3RlOg0KPiANCj4gT24gMzEuMDMuMjAyNiAxMDoxNSwgRWR3aW4gVG9yb2sgd3Jv
dGU6DQo+Pj4gT24gMzEgTWFyIDIwMjYsIGF0IDA3OjE0LCBKYW4gQmV1bGljaCA8amJldWxpY2hA
c3VzZS5jb20+IHdyb3RlOg0KPj4+IE9uIDMwLjAzLjIwMjYgMTg6MTcsIEVkd2luIFTDtnLDtmsg
d3JvdGU6DQo+Pj4+IFVzaW5nIC5ERUZBVUxUX0dPQUwgcmVxdWlyZXMgYXQgbGVhc3QgR05VIG1h
a2UgMy44MS4NCj4+Pj4gSXQgd2FzIHN1Z2dlc3RlZCB0byB1cGRhdGUgbWFrZSB0byBtYXRjaCB+
MjAxNSBlcmEgZ2NjL2JpbnV0aWxzLCBoZW5jZQ0KPj4+PiA0LjEuDQo+Pj4+IA0KPj4+PiBTaWdu
ZWQtb2ZmLWJ5OiBFZHdpbiBUw7Zyw7ZrIDxlZHdpbi50b3Jva0BjaXRyaXguY29tPg0KPj4+PiBT
dWdnZXN0ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCj4+Pj4gTGluazog
aHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcveGVuLWRldmVsL2MwYmE1N2JiLTBkODYtNDIwOS1iMDE5
LWRhZjgzMjhiNTIwNUBzdXNlLmNvbS8NCj4+PiANCj4+PiBVbmxlc3Mgd2UncmUgc3BlY2lmaWNh
bGx5IG1lYW5pbmcgdG8gdXNlIDQuMSBmZWF0dXJlcywgcGVyc29uYWxseSBJJ2QgcHJlZmVyDQo+
Pj4gdGhlIGxvd2VyIDQuMA0KPj4gDQo+PiANCj4+IE9LLg0KPj4gDQo+Pj4gKHdoaWNoIGlzIHdo
YXQgSSBoYXZlIG9uIG15IG1haW4gZGV2IHdvcmtzdGF0aW9uKS4NCj4+IA0KPj4gV2hpY2ggT1Mv
ZGlzdHJpYnV0aW9uIGFyZSB5b3UgdXNpbmc/DQo+IA0KPiBPbiB0aGF0IHBhcnRpY3VsYXIgc3lz
dGVtIGl0J3MgU0xFUzEyIFNQNSAoaW4gTFRTUykuDQo+IA0KPiBKYW4NCg0KTWlnaHQgYmUgZGlm
ZmljdWx0IHRvIGdldCB0aGF0IGV4YWN0IHZlcnNpb24gaW50byB0aGUgQ0kgKGh0dHBzOi8vcmVn
aXN0cnkuc3VzZS5jb20vcmVwb3NpdG9yaWVzL3N1c2UtbHRzcy1zbGUxMi01LXNsZXMxMnNwNSBz
YXlzIGl0IHJlcXVpcmVzIGEgbG9naW4pLCB1bmxlc3Mgc29tZW9uZSB3aXRoIGFjY2VzcyB0byB0
aGF0IHZlcnNpb24gc2V0cyB1cCBhIEdpdGxhYiBydW5uZXIuDQpPbmUgd2F5IHRvIGFwcHJveGlt
YXRlIGl0IG1pZ2h0IGJlIHRvIHVzZSBodHRwczovL2h1Yi5kb2NrZXIuY29tL2xheWVycy9vcGVu
c3VzZS9sZWFwLzQyLjMvaW1hZ2VzL3NoYTI1Ni04NGQ0YmVmMmM0NjU3YjdiZmI0ODIzM2FhODRm
NDBlMjMwM2FmMDYwN2RlMDY1NjJjZjRhZmM0OTZlYzE4YjU5LCB3aGljaCBzaG91bGQgYXBwcm94
aW1hdGUgYW4gb2xkZXIgU0xFUzEyIFNQMy4NCklmIGl0IGJ1aWxkcyBhbmQgcGFzc2VzIHRlc3Rz
IHRoZXJlLCB0aGVuIEkgYXNzdW1lIGl0IHNob3VsZCBhbHNvIGJ1aWxkIG9uIFNMRVMxMiBTUDUg
KGV4Y2VwdCBmb3IgdG9vbGNoYWluIGJ1Z3MpLg0KQXQgbGVhc3QgdGhlIHZlcnNpb24gb2YgbWFr
ZSBzZWVtcyBjbG9zZSBlbm91Z2ggKDQuMC03LjE1KSwgYW5kIHRoYXQgd2F5IGNvbnRyaWJ1dG9y
cyBjYW4gdGVzdCB0aGVtc2VsdmVzIHdoZXRoZXIgdGhlaXIgcGF0Y2hlcyBidWlsZCB3aXRoIHRo
ZSBtaW5pbXVtIHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgaW4gdGhlIFJFQURNRS4NCg0KQmVzdCBy
ZWdhcmRzLA0KLS1FZHdpbg==


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 19:04:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 19:04:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269260.1558365 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7eOA-0005Cb-99; Tue, 31 Mar 2026 19:04:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269260.1558365; Tue, 31 Mar 2026 19:04: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 1w7eOA-0005CN-5v; Tue, 31 Mar 2026 19:04:34 +0000
Received: by outflank-mailman (input) for mailman id 1269260;
 Tue, 31 Mar 2026 19:04:32 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1w7eO8-0004oP-6q
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 19:04:32 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7eO7-002qYo-J1
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 21:04:31 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69cc1aa3-2eae-0a2a0a5409dd-0a2a450ba5fc-44
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 21:04:31 +0200
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69cc1abf-ef63-0a2a450b0019-d1558036a919-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 21:04:31 +0200
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-486fe36cfabso1092635e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 12:04:31 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4887e80a6ebsm66704905e9.6.2026.03.31.12.04.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 31 Mar 2026 12:04:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774983871; x=1775588671; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vDr/6yFSh7ffXnt3TkKTvjWGoxscpXmm0MBYPU21APE=;
        b=jwglvYkOa8yor6zYJiFKat5QPlNjTC16G8W+EpXhi+HVhRkNtNZlO3+NAk7XrChKTy
         sCZTw4GdsF1yPLqwrlUpnSBAMhASyHmZM5am0FD/68Jd4QqgUkId01cpMrNEPN2qq9m7
         xX/IepbPoUlvK1iDz5xdBy4jO5cXyu51uc/EbX4tthFJwUqWj/1TYnrNiZhLtwTBLv5B
         yLoodGo7LZguwsR3TDIX+s9zrUewooeYSliUclKprMGxYv0JaQH+n1uWGNp77HITb1Zu
         u/tEH+f94alscN+Gojs8OqtitXmlL4ITsYzs+MT+9667inbSvtr6xgVMDZXGndrJa+WB
         o8xg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774983871; x=1775588671;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=vDr/6yFSh7ffXnt3TkKTvjWGoxscpXmm0MBYPU21APE=;
        b=fCA2jIIKjA5731ORlS+9JTN4piD4rfxH6awggSvTOG8fAoLtqhLHq1Hryq04qWtZtc
         waWkWHfeQwRUJjGg6Yjguy+N1Qk7KRI5U1pjVXg177OHhKAa6knWfJcrr9Ognxi3KUnp
         wQsg2PS5zlO8LfwT7s2wTm5Vwc4EotiLbL6z4jzyiwFKY2yvciVpAv3QcVoZQxCDXUnE
         A9012H8NTUQeGUtHw1KprorMFxNQfXLGaq2mWWjt0P0ZBhoDAnUuWzsl+is4jW0Q+tMq
         LKQLUpmZRyfjk1QXeZ2rlM07R1dlyjekPcfNeXNqDXBIlcisqgHSkE2mafkwk097d+36
         fYIQ==
X-Gm-Message-State: AOJu0YzakHEuLhquetsR2TZjHxOX+B8r/c4gs1yUs04dg/PMOY1mhJg9
	pIo4KwsQamk5XGVUNOVxuf3LtAWh5pyvIfLxRe4ViGHZSSapKgJTjWniF6DztQ==
X-Gm-Gg: ATEYQzyF78otg2WscSwA0Art8QgTyWuDeU1CakiUVXtSNyd5fmbxkLfP1lTXHIEhYxD
	NNQZzhwZUXvfD4nVvEnYFv0Oh27hs2szE8CYb956rQ5gUD9rZsySI2le5zF3BjhKNCG4IrSH4vs
	q0PnsvzvcuH/6Pzdd+MlRMhy8MXY2NiMUzivusDbcgHL5etT494CqjYS6BcVKQOPGxpj4tRulvk
	eHdr/C4W2pZZ8IPjYGHpRw7bAR42Vl4mov3L4iTv4oTcm6sW/BZQHZqZWOd33Ud0V2Gbpb2pMtH
	A1BntGjbgc+VhLCFGquKNFJh0VIPDC7c/1mNXvVZmraK4+SVlra3ilg6qXtQnUr8Cutz6nzrEwK
	SXF5ppcdGKv2UN9wUdd1rt1z6r0uX01FjrJh1ZbIs79CO1uHVME5KRghjVCDhBYs0Gxn/GWmxzD
	dSmDLgO8ETGyCnbM4BZ8rpm+AyftZ6gYu2fksu3WX2SjP+a6rr65LKGuvcUApWXNWm0A==
X-Received: by 2002:a05:600c:c04a:b0:485:fbd2:f72 with SMTP id 5b1f17b1804b1-4888356610dmr7617095e9.1.1774983870625;
        Tue, 31 Mar 2026 12:04:30 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 3/4] xen/riscv: allow Xen to use SSTC while hiding it from guests
Date: Tue, 31 Mar 2026 21:04:18 +0200
Message-ID: <ff0e2e7332d5b887d00ad10caf01952f90f5da5c.1774863161.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1774863161.git.oleksii.kurochko@gmail.com>
References: <cover.1774863161.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1774983871-9A2B0112-CA7E9819/10/73395122804
X-purgate-type: spam
X-purgate-size: 8423

OpenSBI currently does not advertise the SSTC extension via the device
tree. Additionally, SSTC can no longer be reliably disabled by removing
the "sstc" string from riscv,isa, as OpenSBI probes support by attempting
to access CSR_STIMECMP.

Introduce a runtime probe in Xen to determine whether SSTC is available.
The probe attempts to read CSR_STIMECMP using csr_read_safe(). If the
access succeeds, SSTC is considered available; if a trap occurs, it is
treated as unsupported.

When SSTC is detected, Xen may use it internally to program timers.
However, the extension is not exposed to guests because the required
context switch handling for the SSTC CSRs is not yet implemented.

To prevent guests from using SSTC, RISCV_ISA_EXT_sstc is cleared from the
riscv_isa bitmap and in future patches from riscv_isa DTS property.
As a result, the corresponding HENVCFG bit is not set and guests fall
back to the SBI timer interface. Timer requests are then handled by Xen
via the usual SBI interception path.

Introduce set_xen_timer() to abstract how the timer is programmed,
either via the SSTC extension or an SBI call. This also reduces the
number of if statements in reprogram_timer().

The set_xen_timer function pointer is selected based on
csr_read_safe() rather than riscv_isa_extension(). The latter
reflects features supported by both Xen and the guest, while SSTC is
currently only supported for Xen. Therefore, relying solely on
riscv_isa_extension() would not reliably determine whether SSTC can be
used.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/cpufeature.c                 | 33 ++++++++++++++++++++
 xen/arch/riscv/include/asm/cpufeature.h     |  1 +
 xen/arch/riscv/include/asm/riscv_encoding.h |  2 ++
 xen/arch/riscv/time.c                       | 34 ++++++++++++---------
 xen/arch/riscv/vtimer.c                     |  7 ++++-
 5 files changed, 62 insertions(+), 15 deletions(-)

diff --git a/xen/arch/riscv/cpufeature.c b/xen/arch/riscv/cpufeature.c
index 03e27b037be0..823af53ca18e 100644
--- a/xen/arch/riscv/cpufeature.c
+++ b/xen/arch/riscv/cpufeature.c
@@ -17,6 +17,7 @@
 #include <xen/sections.h>
 
 #include <asm/cpufeature.h>
+#include <asm/csr.h>
 
 #ifdef CONFIG_ACPI
 # error "cpufeature.c functions should be updated to support ACPI"
@@ -139,6 +140,7 @@ const struct riscv_isa_ext_data __initconst riscv_isa_ext[] = {
     RISCV_ISA_EXT_DATA(smaia),
     RISCV_ISA_EXT_DATA(smstateen),
     RISCV_ISA_EXT_DATA(ssaia),
+    RISCV_ISA_EXT_DATA(sstc),
     RISCV_ISA_EXT_DATA(svade),
     RISCV_ISA_EXT_DATA(svpbmt),
 };
@@ -483,6 +485,7 @@ void __init riscv_fill_hwcap(void)
     unsigned int i;
     const size_t req_extns_amount = ARRAY_SIZE(required_extensions);
     bool all_extns_available = true;
+    unsigned long tmp;
 
     riscv_fill_hwcap_from_isa_string();
 
@@ -495,6 +498,36 @@ void __init riscv_fill_hwcap(void)
         panic("HW capabilities parsing failed: %s\n", failure_msg);
     }
 
+    if ( csr_read_safe(CSR_STIMECMP, &tmp) )
+    {
+        printk("SSTC is detected but is supported only for Xen usage not for "
+               "a guest\n");
+
+        /*
+         * As SSTC for guest isn't supported it is needed temprorary to:
+         *
+         * 1. Clear bit RISCV_ISA_EXT_sstc in riscv_isa as theoretuically it
+         *    could be that OpenSBI (it doesn't pass it now) or whatever ran
+         *    before Xen will add SSTC to riscv,isa string. This bit clear
+         *    won't allow guest to use SSTC extension as vtimer context
+         *    switch and restore isn't ready for that.
+         */
+        __clear_bit(RISCV_ISA_EXT_sstc, riscv_isa);
+
+        /*
+         * 2. A VS-timer interrupt becomes pending whenever the value of
+         *    (time + htimedelta) is greater than or equal to vstimecmp CSR.
+         *    Thereby to avoid spurious VS-timer irqs set vstimecmp CSR to
+         *    ULONG_MAX.
+         *
+         * It should be dropped when SSTC for guests will be supported.
+         */
+        csr_write(CSR_VSTIMECMP, ULONG_MAX);
+#ifdef CONFIG_RISCV_32
+        csr_write(CSR_VSTIMECMPH, ULONG_MAX);
+#endif
+    }
+
     for ( i = 0; i < req_extns_amount; i++ )
     {
         const struct riscv_isa_ext_data ext = required_extensions[i];
diff --git a/xen/arch/riscv/include/asm/cpufeature.h b/xen/arch/riscv/include/asm/cpufeature.h
index ef02a3e26d2c..0c48d57a03bb 100644
--- a/xen/arch/riscv/include/asm/cpufeature.h
+++ b/xen/arch/riscv/include/asm/cpufeature.h
@@ -38,6 +38,7 @@ enum riscv_isa_ext_id {
     RISCV_ISA_EXT_smaia,
     RISCV_ISA_EXT_smstateen,
     RISCV_ISA_EXT_ssaia,
+    RISCV_ISA_EXT_sstc,
     RISCV_ISA_EXT_svade,
     RISCV_ISA_EXT_svpbmt,
     RISCV_ISA_EXT_MAX
diff --git a/xen/arch/riscv/include/asm/riscv_encoding.h b/xen/arch/riscv/include/asm/riscv_encoding.h
index dd15731a86fa..d0d60ba15e62 100644
--- a/xen/arch/riscv/include/asm/riscv_encoding.h
+++ b/xen/arch/riscv/include/asm/riscv_encoding.h
@@ -396,6 +396,8 @@
 #define CSR_VSTVAL			0x243
 #define CSR_VSIP			0x244
 #define CSR_VSATP			0x280
+#define CSR_VSTIMECMP		0x24d
+#define CSR_VSTIMECMPH		0x25d
 
 /* Virtual Interrupts and Interrupt Priorities (H-extension with AIA) */
 #define CSR_HVIEN			0x608
diff --git a/xen/arch/riscv/time.c b/xen/arch/riscv/time.c
index 7efa76fdbcb1..42d547a03e0f 100644
--- a/xen/arch/riscv/time.c
+++ b/xen/arch/riscv/time.c
@@ -13,6 +13,18 @@
 unsigned long __ro_after_init cpu_khz; /* CPU clock frequency in kHz. */
 uint64_t __ro_after_init boot_clock_cycles;
 
+static int cf_check sstc_set_xen_timer(uint64_t deadline)
+{
+    csr_write(CSR_STIMECMP, deadline);
+#ifdef CONFIG_RISCV_32
+    csr_write(CSR_STIMECMPH, deadline >> 32);
+#endif
+
+    return 0;
+}
+
+static int (* __ro_after_init set_xen_timer)(uint64_t deadline);
+
 s_time_t get_s_time(void)
 {
     uint64_t ticks = get_cycles() - boot_clock_cycles;
@@ -61,20 +73,7 @@ int reprogram_timer(s_time_t timeout)
     if ( deadline <= now )
         return 0;
 
-    /*
-     * TODO: When the SSTC extension is supported, it would be preferable to
-     *       use the supervisor timer registers directly here for better
-     *       performance, since an SBI call and mode switch would no longer
-     *       be required.
-     *
-     *       This would also reduce reliance on a specific SBI implementation.
-     *       For example, it is not ideal to panic() if sbi_set_timer() returns
-     *       a non-zero value. Currently it can return 0 or -ENOSUPP, and
-     *       without SSTC we still need an implementation because only the
-     *       M-mode timer is available, and it can only be programmed in
-     *       M-mode.
-     */
-    if ( (rc = sbi_set_timer(deadline)) )
+    if ( (rc = set_xen_timer(deadline)) )
         panic("%s: timer wasn't set because: %d\n", __func__, rc);
 
     /* Enable timer interrupt */
@@ -85,10 +84,17 @@ int reprogram_timer(s_time_t timeout)
 
 void __init preinit_xen_time(void)
 {
+    unsigned long tmp;
+
     if ( acpi_disabled )
         preinit_dt_xen_time();
     else
         panic("%s: ACPI isn't supported\n", __func__);
 
     boot_clock_cycles = get_cycles();
+
+    if ( csr_read_safe(CSR_STIMECMP, &tmp) )
+        set_xen_timer = sstc_set_xen_timer;
+    else
+        set_xen_timer = sbi_set_timer;
 }
diff --git a/xen/arch/riscv/vtimer.c b/xen/arch/riscv/vtimer.c
index afd8a53a7387..c065052afeb7 100644
--- a/xen/arch/riscv/vtimer.c
+++ b/xen/arch/riscv/vtimer.c
@@ -4,6 +4,7 @@
 #include <xen/sched.h>
 #include <xen/timer.h>
 
+#include <asm/cpufeature.h>
 #include <asm/vtimer.h>
 
 static void vtimer_expired(void *data)
@@ -75,12 +76,16 @@ void vtimer_ctxt_switch_from(struct vcpu *p)
 {
     ASSERT(!is_idle_vcpu(p));
 
-    /* Nothing to do at the moment as SSTC isn't supported now. */
+    BUG_ON(riscv_isa_extension_available(NULL, RISCV_ISA_EXT_sstc));
+
+    /* Nothing to do at the moment as SSTC for guests isn't supported now */
 }
 
 void vtimer_ctxt_switch_to(struct vcpu *n)
 {
     ASSERT(!is_idle_vcpu(n));
 
+    BUG_ON(riscv_isa_extension_available(NULL, RISCV_ISA_EXT_sstc));
+
     migrate_timer(&n->arch.vtimer.timer, n->processor);
 }
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 19:04:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 19:04:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269259.1558356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7eO9-0004yP-22; Tue, 31 Mar 2026 19:04:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269259.1558356; Tue, 31 Mar 2026 19: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 1w7eO8-0004yG-Uk; Tue, 31 Mar 2026 19:04:32 +0000
Received: by outflank-mailman (input) for mailman id 1269259;
 Tue, 31 Mar 2026 19:04:31 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1w7eO7-0004fy-8X
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 19:04:31 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7eO6-002qYo-Jw
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 21:04:30 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69cc1aa3-2eae-0a2a0a5409dd-0a2a450ba5fc-40
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 21:04:30 +0200
Received: from [209.85.128.42] (helo=mail-wm1-f42.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69cc1abe-ef63-0a2a450b0019-d155802ac901-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 21:04:30 +0200
Received: by mail-wm1-f42.google.com with SMTP id
 5b1f17b1804b1-48558d6ef83so61121765e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 12:04:30 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4887e80a6ebsm66704905e9.6.2026.03.31.12.04.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 31 Mar 2026 12:04:29 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774983870; x=1775588670; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ES6McZgHHUK3/JfDJnTNyyxwZ5gq9pJEFKhOZMJXQbQ=;
        b=P9gcmbtxtyitWUWixZ3vvGuxg6sJ1cr9HaRZOdUkn+dNE+g1mdHIe4Vw4jU9FQ7oLd
         YrrK/KNiwMDPMi7ccSbi3ti8lybmF1O+OFAn5EDPVNYE3F5pG6ZyvN2u7SQnsAWwPCjf
         Ym2rYIrVpfBO+VsfVFmW1AICCrH7AE+5NK1bkNlV6vsdd+YC+XndrFTT7Uck0FNDDBvb
         MiAoVXo44rCFeMkn+EVHX3PAu0cPRe49UGrWdyhHE1DkYgFUQKAUQP7DUcHWgBkB/IyF
         4kVomkdmWbrLyG/9zwBxMZzJmVtOQWPmYs/086asFVJQl9PrNg5KrGt6NaSgB3YcVr1g
         MzMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774983870; x=1775588670;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ES6McZgHHUK3/JfDJnTNyyxwZ5gq9pJEFKhOZMJXQbQ=;
        b=MKQO/Plvw44NBVFoa7V4RdNVscVN/p1/R3Z1Yw1m2qPfUpiaA0H1tnyuSzgSJPIZv0
         21HpOscy7FZDpVbA/dCr1VVaawATD7GkalMMfflpxwZWrZ78gUewYajgunIqSqlA+/vd
         +w2lIh3X4fG7grEneRu8TIWjQZnfu1I9B2SRpzAVpp6t2MBrU4F2GJpNUwSoMstmh6LH
         genLq32336JxJnGrk5+opRLBVZDxT+Vkb1PFVKRoYGwL6SxXdDz1eRQQvP7/+xQeOJKV
         twIkNtOolyk9pTxgNEaC5aTuLXH43RY3g3Vk/TMCGoHplbtqVncoyv3EBzsfwwNljncE
         fviA==
X-Gm-Message-State: AOJu0YyXY4dSyKTjxfKYxOl2pT+oJ4wtHqybke+b/CXE1rhkpC0EmAYQ
	4ZQ6shy5BiaWo4s0+or6rFmJo5g+7S9U7dVdBpWS/sbOMfDWEQ4wUU/U1cU1Nw==
X-Gm-Gg: ATEYQzxxlGbjyMdzhB4q8azOLTurb5aG03/fNu8LDqNkfMWEtvhUvnilVdFuzpR1vtE
	pF6eZcL6x36yPogJ17pto4yiJq9c25utRFC6lYoFzjyyAePhoeIehTDMWhNOVanO4yrf17yf05W
	FyXyLIizOvT8xjNaSHtIP582aPYGdUVJE7h7Ew1liGMbW6Z8ybAGocuxpXG9bfjYHWkq2QC95Nn
	wge+jHOBftij8QykAEZfzLYLHrVI2K8dEG6kvj8yehgwiSROwMVSJSyosDOmtFsl/oLCXIefbWo
	v/ipt8Zh2qkorXsE7mofN0QNMEiN46wImMNvh2eZJ3LNc4HZiWHGi6Bi16+6V660H57beVmpGUo
	gFypdFNrChBRdAwGyfmhWxrFjYjbSfiRGLTKnv/sUram3bdQiC1GHaqkR1H2TTAkDxNI9AIuG0c
	xtP1YDBVAaBnnC6kIsPMfp7GHHcQLl8FCWesZFCbEKZkVW8oCPVpT2db6RTwqSCprOJUh7pA3xI
	Vju
X-Received: by 2002:a05:600c:4fcb:b0:485:3e20:4013 with SMTP id 5b1f17b1804b1-488835d539cmr9040015e9.28.1774983869606;
        Tue, 31 Mar 2026 12:04:29 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 2/4] xen/riscv: add csr_read_safe() helper
Date: Tue, 31 Mar 2026 21:04:17 +0200
Message-ID: <f870d5def964ee06471d6dde0f66d6585eb5ca36.1774863161.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1774863161.git.oleksii.kurochko@gmail.com>
References: <cover.1774863161.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1774983870-9AEAA112-8A09532A/10/73395122804
X-purgate-type: spam
X-purgate-size: 2490

Accessing some CSRs may trap when the corresponding extension is not
implemented or enabled. Introduce csr_read_safe() which attempts to
read a CSR and relies on the exception table mechanism to safely recover
if the access faults.

This helper allows Xen to probe CSR availability without taking a fatal
trap and will be used for feature detection during early boot as we
can't always rely on what is in riscv,isa string in DTS.

While touching the header, reorder the include directives to follow the
usual Xen style.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - s/extables.h/extable.h.
 - s/csr_allowed_read/csr_read_safe() to follow the common nomenclature.
 - asm/asm_inline in csr_allowed_safe().
 - Drop the comment inside csr_allowed_safe().
 - Add ifdef CONFIG_CC_HAS_ASM_GOTO_OUTPUT
 - Drop memory clobber as a memory which is going to be changed is explicitly
   mentioned in output list.
 - Rename local variable error to allowed.
---
 xen/arch/riscv/include/asm/csr.h | 36 +++++++++++++++++++++++++++++++-
 1 file changed, 35 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/include/asm/csr.h b/xen/arch/riscv/include/asm/csr.h
index 01876f828981..1d47f70f7251 100644
--- a/xen/arch/riscv/include/asm/csr.h
+++ b/xen/arch/riscv/include/asm/csr.h
@@ -6,8 +6,10 @@
 #ifndef ASM__RISCV__CSR_H
 #define ASM__RISCV__CSR_H
 
-#include <asm/asm.h>
 #include <xen/const.h>
+
+#include <asm/asm.h>
+#include <asm/extable.h>
 #include <asm/riscv_encoding.h>
 
 #ifndef __ASSEMBLER__
@@ -78,6 +80,38 @@
                            : "memory" );                        \
 })
 
+static always_inline bool csr_read_safe(unsigned long csr,
+                                        unsigned long *val)
+{
+#ifdef CONFIG_CC_HAS_ASM_GOTO_OUTPUT
+    asm_inline goto (
+        "1: csrr %[val], %[csr]\n"
+        ASM_EXTABLE(1b, %l[fault])
+        : [val] "=&r" (*val)
+        : [csr] "i" (csr)
+        :
+        : fault );
+
+    return true;
+
+ fault:
+    return false;
+#else
+    bool allowed = false;
+
+    asm_inline volatile (
+        "1: csrr %[val], %[csr]\n"
+        "   li %[allowed], 1\n"
+        "2:\n"
+        ASM_EXTABLE(1b, 2b)
+        : [val] "=&r" (*val), [allowed] "+r" (allowed)
+        : [csr] "i" (csr)
+        : );
+
+    return allowed;
+#endif
+}
+
 #endif /* __ASSEMBLER__ */
 
 #endif /* ASM__RISCV__CSR_H */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 19:04:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 19:04:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269257.1558337 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7eO6-0004XW-FZ; Tue, 31 Mar 2026 19:04:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269257.1558337; Tue, 31 Mar 2026 19: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 1w7eO6-0004XP-Cj; Tue, 31 Mar 2026 19:04:30 +0000
Received: by outflank-mailman (input) for mailman id 1269257;
 Tue, 31 Mar 2026 19:04:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1w7eO5-0004XI-KY
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 19:04:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7eO4-001kxS-Im
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 21:04:28 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69cc1ab2-bab6-0a2a0a5309dd-0a2a4507bd8c-10
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 21:04:28 +0200
Received: from [209.85.128.54] (helo=mail-wm1-f54.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69cc1abc-fd74-0a2a45070019-d1558036dd31-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 21:04:28 +0200
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-4887f49ec5aso13454325e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 12:04:28 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4887e80a6ebsm66704905e9.6.2026.03.31.12.04.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 31 Mar 2026 12:04:27 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774983868; x=1775588668; 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=845HDfVTBoc7mrrFu9xgBwD2zq28tgaJ6wnc45Ubl+s=;
        b=o8ieWmoC+nHyQHq9M1oHNs6uq4eMzJhGQLHF0fO8m9bgv39N5SIoSahaU30QqpLe6w
         FCtaXN5dAdeuzZdmYl6oxI9EvCYMcEHtrRp6vYUxZBT1JZQ90yllLZW2MA5m0DjIurgv
         4DrKYpx1U+rVcKLuLYdpoGnDLgV5slxZGZhSZiCY1gH2Zaplxkw02PAv2LLG/Q0kh8fP
         4Lwh/fzdmLd+BRmbFV3kvs5XXv5P93iIxvuYgfQlZZh02B+yVXC6gpqTmzbVRvC+vNOz
         SMXlYE6n5ORVSizXJbCrVzvIq0eTm7h14Dv5JPPwpsuHiGGUVoErhhI1SuDCAMyj6dbJ
         iBtA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774983868; x=1775588668;
        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=845HDfVTBoc7mrrFu9xgBwD2zq28tgaJ6wnc45Ubl+s=;
        b=cc4IoFJnIjBjg+th1IR1ZRxv2d+9DinK+qdXDAlNBPbSYCh20VSXzBt8sD6X1v8bRv
         3nzge1LCjWcWfCMg2ATr7MtExnWh7cYA1Ep7KIbEDm4ht1l94IwBExOKXwbLcPkP7gl/
         rmZqQWldSuDEV72eDRT+oHlGCOr5Z2d87TtLUQmKcBVdxn1pQYPMkVAqWx+rffsc6NKK
         gvJpQRPGBMU6rLM5lIkJs8htJdj6sKkPUeN/JVuaAj5sDULFWeYWPpYXpLPuFVTEB/SU
         KbgdagI+itc4C2wrRzrwHoYxi1fw8epwwMx7t8QDgAVdZ7lD+VGMuonGmP7WzthAlDva
         zckA==
X-Gm-Message-State: AOJu0Yy8BYVXbcc/7iMWk2QNi3rP3waOC/17te5ipeLdt6Wtmu/2pcx4
	cbZL14dzZmUMny8U6USlO6HlO9D80d6znpGfoF9/FpTFQeS+3uJ4lB1WOd/tZg==
X-Gm-Gg: ATEYQzxy9gguzOy9aF1WOLXy0ehJowlesXmEjt77uM9NEk+KXMdVo+0AmxDqkChpnyV
	7OV7D7JaX/H54x8Cu5qMAnM5oi6L1tjrBftOn4TE6LWJZzC6WWARiYSZ1ewi2f7emxN0fm4pZ3H
	IAAEOgIRuPHrcbe4aUl4U6l/fiIuJmZap7ocUZkb+nrp7dxLE0ZddsGxn1U5RoC5Fx+EWeG49e1
	mOzAxAKWR6jLWbmZ2MJNE2sMTQ5/gnQ3orheI9G88y2/BY1ujFo8bI+V0nxl6RytTLj1jpal2fa
	0TP2lHCypSiJBNReIn/xa57n7ez3kBTFZkffev80wS0AJ42RNbJ4IHsq39IrZPDcwqTJ7tEQdFz
	JNsBbsqUoU1PGtIu6KECbqTfqBf/ziKyfPUagN0tInbnbKJpdgcFJryKYrBMglUfWNHkREUszK1
	nUumZPgNFy9tVxCEn99Mhygfq1ECehXQABb5QZ03MN9T12m0UOIZPdmXGuo/+UyWqd+w==
X-Received: by 2002:a05:600c:1d0f:b0:485:30f7:6e88 with SMTP id 5b1f17b1804b1-488835a59a3mr8518325e9.31.1774983867440;
        Tue, 31 Mar 2026 12:04:27 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 0/4]  RISCV: Intrdouce SSTC support in Xen
Date: Tue, 31 Mar 2026 21:04:15 +0200
Message-ID: <cover.1774863161.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1774983868-5CD87303-5992864A/10/73395122804
X-purgate-type: spam
X-purgate-size: 2399

This patch series is created based on [1] and the aim is to make Xen properly
works when SSTC extension is available.

It is needed to do in this way as OpenSBI doesn't pass that it supports SSTC
by DTS to Xen and there is no easy way to turn off support of SSTC support.

Also, as a part of this patch series intrdouce suggested [2] by Jan B.
improvements of init_csr_masks().

[1] https://lore.kernel.org/xen-devel/cover.1772814110.git.oleksii.kurochko@gmail.com/T/#mc14576ef43a83b344c5f31626005b995e2ccbeaa
[2] https://lore.kernel.org/xen-devel/cover.1772814110.git.oleksii.kurochko@gmail.com/T/#m9c18d2d7a98958befec16419f5deccc40f6c8c3e

CI tests: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2417456208

Also, I've manually ran QEMU with SSTC=on/off and built Xen with a newer RISC-V
compileer (in comparison with the version used by CI's docker container) to
verify CONFIG_CC_HAS_ASM_GOTO_OUTPUT branch inside csr_read_safe().

---
Changes in v2:
 - Address the comments from ML.
---

Oleksii Kurochko (4):
  xen/riscv: add exception table support
  xen/riscv: add csr_allowed_read() helper
  xen/riscv: allow Xen to use SSTC while hiding it from guests
  xen/riscv: init_csr_masks()-related improvements

 xen/arch/riscv/Kconfig                      |  1 +
 xen/arch/riscv/Makefile                     |  1 +
 xen/arch/riscv/cpufeature.c                 | 33 ++++++++
 xen/arch/riscv/domain.c                     | 29 +++----
 xen/arch/riscv/extable.c                    | 85 +++++++++++++++++++++
 xen/arch/riscv/include/asm/bug.h            |  2 +
 xen/arch/riscv/include/asm/cpufeature.h     |  1 +
 xen/arch/riscv/include/asm/csr.h            | 36 ++++++++-
 xen/arch/riscv/include/asm/extable.h        | 58 ++++++++++++++
 xen/arch/riscv/include/asm/riscv_encoding.h |  2 +
 xen/arch/riscv/setup.c                      |  3 +
 xen/arch/riscv/time.c                       | 34 +++++----
 xen/arch/riscv/traps.c                      |  5 ++
 xen/arch/riscv/vtimer.c                     |  7 +-
 xen/arch/riscv/xen.lds.S                    |  3 +
 xen/arch/x86/xen.lds.S                      |  6 +-
 xen/include/xen/xen.lds.h                   |  6 ++
 17 files changed, 277 insertions(+), 35 deletions(-)
 create mode 100644 xen/arch/riscv/extable.c
 create mode 100644 xen/arch/riscv/include/asm/extable.h

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 19:04:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 19:04:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269258.1558347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7eO7-0004kn-Qi; Tue, 31 Mar 2026 19:04:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269258.1558347; Tue, 31 Mar 2026 19:04:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7eO7-0004kf-Nv; Tue, 31 Mar 2026 19:04:31 +0000
Received: by outflank-mailman (input) for mailman id 1269258;
 Tue, 31 Mar 2026 19:04:30 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1w7eO6-0004XO-9p
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 19:04:30 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7eO5-0042Cg-IU
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 21:04:29 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69cc1a93-5cb7-0a2a0a5109dd-0a2a4505ed50-44
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 21:04:29 +0200
Received: from [209.85.128.45] (helo=mail-wm1-f45.google.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69cc1abd-5aeb-0a2a45050019-d155802dd169-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 21:04:29 +0200
Received: by mail-wm1-f45.google.com with SMTP id
 5b1f17b1804b1-4853e1ce427so74749095e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 12:04:29 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4887e80a6ebsm66704905e9.6.2026.03.31.12.04.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 31 Mar 2026 12:04:28 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774983869; x=1775588669; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Nt869+EoqKBeJ1+vQp/e7NBob2COQX9inHC/KN2XaZ0=;
        b=UMkObwboCxrUBhe1t0ckBDjMcYVnKr9kZOB1iJA9J/h9QJVbP1yTi+2HPacA7M+9zv
         7Q+Fj2TSakAwckXIzjAv2Y17uCdTtCVHXJPtOQQnD9NhW8nVmzi3Aeoo2T4iEVBpzaTm
         WHkx9ee29l/NJ4jyRJhRCfZpPY8FH8BVpW1P4MWhqRMBFSiA0vy3Fr9RHTg0XWKWNXUx
         gcUknjGbN0urpQ6wyzVvQVPDnsR60x7O591+JFhlNAnGetx0rfPeEOBpSBDICyzmjwO7
         lkPqcLx6Q6mUPOsbCk8RPyxAonp3JN34eFJWgYiFvpyFVbVi4XiuVWcsjONiuwx4Jf8r
         xJEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774983869; x=1775588669;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Nt869+EoqKBeJ1+vQp/e7NBob2COQX9inHC/KN2XaZ0=;
        b=aBKxJB/BHyy5U/JrVbnsCJFZqp9x4EkwB0iisVXWt2t7E0nFZMrpON2Fi7KUWfqzMO
         k/CnWwxa88rRtS4GV3bf7e0TYOYKERFcnuJJc/cG8ODmXJX4HK9SjwhwcUQsclKwJ4zb
         +XqQ3suAqdp+4HOJamBLK8HhBhZUk7lW3Zy0lAj1eMvbqDDwTB22XNCyxyrundm3vNCH
         mpUc8Bm9nhUHAPbcwdkShExkP8rGO0uHMGw5iQSvVmpmtP+kd2NI0JQ45/n/EochtLr2
         V/EYEhYuE9KxfWRHYOifiZfL8ip5zkH9F+qhcqWhEPSxVVTKbpax/exBGgFOKEJCh37N
         BRHA==
X-Gm-Message-State: AOJu0YyuvaHCryNGeF1TkvjZBEgIcS+QVBUwP/AQwvQE7KFE64IsM+po
	jnPFW3EnEM6eOzpkc6SZVzLslf46Kh9IiK9SQ0bSxjQyy+rZgb7gMAdpiqiNsg==
X-Gm-Gg: ATEYQzx/EDp/4F1L90xKzfCRbhboYsDJHSIxP8b1I9KsL+TBmWcBWDughPMCQm091dJ
	kX99EgyZ0LYAJ0rd3S0JK9jw4u8OhhAdrRR6ErDlmyCGWEHxrimef/Oef3oGvybb5Vxo3hXQRAi
	tB/69GTtdjNEvbHJQVC9X2/ikSPSOUaMOMyHLxvX7Aqt1CmeqKR2xM80Qv7J6iSZoTcgcaGlk6e
	oGh3fj2JL+9afoVPYiiWD3KfZeCAnym11/0/tfUywiOwrA0DwuvBhc0hfN4qKhjcJq2qwrNo68J
	GfVrYwh1LjAUfSQnf5cd8paI3BfS6GNuSmPVu8p7j92kG2Nlbu+SNyOgKDYq8xzQXDIvpqrXPNG
	pzE3NVS6M6NzGpYyAKPODMVwV9xN1olata061MF1k2OUx59jfyBWO2XcVH05seEw87Q4PL2fPgz
	HygbM19xsbt059Sh+Jk/Tjrxg7IQ5IzB02v7ko1Zu/tLhwxGrLzALuaAm6ZyDYl40+Yw==
X-Received: by 2002:a05:600c:5303:b0:485:34b3:8587 with SMTP id 5b1f17b1804b1-48883562deamr9647415e9.10.1774983868536;
        Tue, 31 Mar 2026 12:04:28 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 1/4] xen/riscv: add exception table support
Date: Tue, 31 Mar 2026 21:04:16 +0200
Message-ID: <dcf5786b4ec99edcec6554a338904c52f0c3b03f.1774863161.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1774863161.git.oleksii.kurochko@gmail.com>
References: <cover.1774863161.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1774983869-22484488-AF78F8D6/10/73395122804
X-purgate-type: spam
X-purgate-size: 11353

Introduce exception table handling for RISC-V so faults from selected
instructions can be recovered via fixup handlers instead of being
treated as fatal.

Add the RISC-V exception table format, sorting at boot to allow binary
search used furthuer, and lookup from the trap handler. Update the
linker script to emit the .ex_table section using introduced common
EX_TABLE macro shared with other architectures.

Also, reduce __start___ex_table alignment from 8 to 4 bytes to
match the natural alignment of struct exception_table_entry,
which contains two int32_t fields.

Add inclusion of asm/extable.h to asm/bug.h to deal with compilation
issue of common/virtual_region.c, which require declaration of
__start___ex_table and __stop___ex_table.

This implementation is based on Linux 6.16.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - Corrected the name for __start_ex_table identifier in the commit message.
 - Droped plural where extables is used.
 - Added inclusuion of <asm/extable.h> to deal with compilation (nothing
   declares __start___ex_table and __stop___ex_table) of common/virtual_region.c.
 - Use long for delta variable inside swap_ex in extable.c.
 - To take into acoount live-patching code:
   - s/sort_extable/sort_exception_tables.
   - Introduce sort_exception_table() as liveaptch code requires it and
     re-use it inside sort_exception_tables().
- Drop cmp_ex_search() and rename cmp_ex_sort() to cmp_ex().
  Rename local variable l and r inside cmp_ex().
- Identation fixes.
- prefer sizeof(<expression>) over sizeof(<type>) in calls of bsearch() and
  sort().
- Return back defintion of asm_extable() for __ASSEMBLER__ case.
- Correct the comment above declaration of struct exception_table_entry.
- Drop else in do_trap() before "if ( fixup_exception() )" to visually separate
  the set of checks.
- Align start of exception table section by 4-bytes as exception table struct
  contains two 4 bytes integers.
- Make extable.o compile unconditionally.
- Drop ifdef HAS_EX_TABLE in extable.h as extable.o is always compiled.
- Drop ifdef around defintion of EX_TABLE.
- Drop __init for cmp_ex as it is now used in fixup_exception() which isn't
  marked as __init.
- Return void instead of bool for ex_handler_fixup() as this function always
  returns true.
- Update the comment above defintion of struct exception_table_entry() to be
  more accurate.
- Add inclusion of asm/extable.h to asm/bug.h to deal with compilation issue
  of common/virtual_region.c, which require declaration of __start___ex_table
  and __stop___ex_table.
---
 xen/arch/riscv/Kconfig               |  1 +
 xen/arch/riscv/Makefile              |  1 +
 xen/arch/riscv/extable.c             | 85 ++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/bug.h     |  2 +
 xen/arch/riscv/include/asm/extable.h | 58 +++++++++++++++++++
 xen/arch/riscv/setup.c               |  3 +
 xen/arch/riscv/traps.c               |  5 ++
 xen/arch/riscv/xen.lds.S             |  3 +
 xen/arch/x86/xen.lds.S               |  6 +-
 xen/include/xen/xen.lds.h            |  6 ++
 10 files changed, 165 insertions(+), 5 deletions(-)
 create mode 100644 xen/arch/riscv/extable.c
 create mode 100644 xen/arch/riscv/include/asm/extable.h

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index 89876b32175d..a5e87c1757f7 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -4,6 +4,7 @@ config RISCV
 	select GENERIC_BUG_FRAME
 	select GENERIC_UART_INIT
 	select HAS_DEVICE_TREE_DISCOVERY
+	select HAS_EX_TABLE
 	select HAS_PMAP
 	select HAS_UBSAN
 	select HAS_VMAP
diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index ffbd7062e214..04f02ad89cba 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -3,6 +3,7 @@ obj-y += cpufeature.o
 obj-y += domain.o
 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
 obj-y += entry.o
+obj-y += extable.o
 obj-y += imsic.o
 obj-y += intc.o
 obj-y += irq.o
diff --git a/xen/arch/riscv/extable.c b/xen/arch/riscv/extable.c
new file mode 100644
index 000000000000..882ae9508d19
--- /dev/null
+++ b/xen/arch/riscv/extable.c
@@ -0,0 +1,85 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/init.h>
+#include <xen/bsearch.h>
+#include <xen/lib.h>
+#include <xen/livepatch.h>
+#include <xen/sort.h>
+#include <xen/virtual_region.h>
+
+#include <asm/extable.h>
+#include <asm/processor.h>
+
+#define EX_FIELD(ptr, field) ((unsigned long)&(ptr)->field + (ptr)->field)
+
+static inline unsigned long ex_insn(const struct exception_table_entry *ex)
+{
+    return EX_FIELD(ex, insn);
+}
+
+static inline unsigned long ex_fixup(const struct exception_table_entry *ex)
+{
+    return EX_FIELD(ex, fixup);
+}
+
+static void __init cf_check swap_ex(void *a, void *b)
+{
+    struct exception_table_entry *x = a, *y = b, tmp;
+    long delta = b - a;
+
+    tmp = *x;
+    x->insn = y->insn + delta;
+    y->insn = tmp.insn - delta;
+
+    x->fixup = y->fixup + delta;
+    y->fixup = tmp.fixup - delta;
+}
+
+static int cf_check cmp_ex(const void *a, const void *b)
+{
+    const unsigned long insn_a = ex_insn(a);
+    const unsigned long insn_b = ex_insn(b);
+
+    /* avoid overflow */
+    return (insn_a > insn_b) - (insn_a < insn_b);
+}
+
+void init_or_livepatch sort_exception_table(struct exception_table_entry *start,
+                                 const struct exception_table_entry *stop)
+{
+    sort(start, stop - start, sizeof(*start), cmp_ex, swap_ex);
+}
+
+void __init sort_exception_tables(void)
+{
+    sort_exception_table(__start___ex_table, __stop___ex_table);
+}
+
+static void ex_handler_fixup(const struct exception_table_entry *ex,
+                             struct cpu_user_regs *regs)
+{
+    regs->sepc = ex_fixup(ex);
+}
+
+bool fixup_exception(struct cpu_user_regs *regs)
+{
+    unsigned long pc = regs->sepc;
+    const struct virtual_region *region = find_text_region(pc);
+    const struct exception_table_entry *ex;
+    struct exception_table_entry key;
+
+    if ( !region || !region->ex )
+        return false;
+
+    key.insn = pc - (unsigned long)&key.insn;
+
+    ex = bsearch(&key, region->ex, region->ex_end - region->ex, sizeof(key),
+                 cmp_ex);
+
+    if ( !ex )
+        return false;
+
+    ex_handler_fixup(ex, regs);
+
+    return true;
+}
diff --git a/xen/arch/riscv/include/asm/bug.h b/xen/arch/riscv/include/asm/bug.h
index 6ec8adc528a9..e6f286881662 100644
--- a/xen/arch/riscv/include/asm/bug.h
+++ b/xen/arch/riscv/include/asm/bug.h
@@ -9,6 +9,8 @@
 
 #ifndef __ASSEMBLER__
 
+#include <asm/extable.h>
+
 #define BUG_INSTR "unimp"
 
 /*
diff --git a/xen/arch/riscv/include/asm/extable.h b/xen/arch/riscv/include/asm/extable.h
new file mode 100644
index 000000000000..4f50f84e69f2
--- /dev/null
+++ b/xen/arch/riscv/include/asm/extable.h
@@ -0,0 +1,58 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef ASM__RISCV__ASM_EXTABLE_H
+#define ASM__RISCV__ASM_EXTABLE_H
+
+#ifdef __ASSEMBLER__
+
+#define ASM_EXTABLE(insn, fixup)    \
+    .pushsection .ex_table, "a";    \
+    .balign     4;                  \
+    .long       ((insn) - .);       \
+    .long       ((fixup) - .);      \
+    .popsection;
+
+.macro asm_extable, insn, fixup
+    ASM_EXTABLE(\insn, \fixup)
+.endm
+
+#else /* __ASSEMBLER__ */
+
+#include <xen/stringify.h>
+#include <xen/types.h>
+
+struct cpu_user_regs;
+
+#define ASM_EXTABLE(insn, fixup)        \
+    ".pushsection .ex_table, \"a\"\n"   \
+    ".balign    4\n"                    \
+    ".long      ((" #insn ") - .)\n"    \
+    ".long      ((" #fixup ") - .)\n"   \
+    ".popsection\n"
+
+/*
+ * The exception table consists of pairs of relative offsets: the first
+ * is the relative offset to an instruction that is allowed to fault,
+ * and the second is the relative offset at which the program should
+ * continue. No general-purpose registers are modified by the exception
+ * handling mechanism itself, so it is up to the fixup code to handle
+ * any necessary state cleanup.
+ *
+ * The exception table and fixup code live out of line with the main
+ * instruction path. This means when everything is well, we don't even
+ * have to jump over them. Further, they do not intrude on our cache or
+ * tlb entries.
+ */
+struct exception_table_entry {
+    int32_t insn, fixup;
+};
+
+extern struct exception_table_entry __start___ex_table[];
+extern struct exception_table_entry __stop___ex_table[];
+
+void sort_exception_tables(void);
+bool fixup_exception(struct cpu_user_regs *regs);
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* ASM__RISCV__ASM_EXTABLE_H */
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index cae49bb29626..56a0907a855f 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -19,6 +19,7 @@
 
 #include <public/version.h>
 
+#include <asm/extable.h>
 #include <asm/cpufeature.h>
 #include <asm/early_printk.h>
 #include <asm/fixmap.h>
@@ -81,6 +82,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     smp_prepare_boot_cpu();
 
+    sort_exception_tables();
+
     set_cpuid_to_hartid(0, bootcpu_id);
 
     trap_init();
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index 326f2be62823..d35c013e1399 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -12,6 +12,7 @@
 #include <xen/sched.h>
 #include <xen/softirq.h>
 
+#include <asm/extable.h>
 #include <asm/cpufeature.h>
 #include <asm/intc.h>
 #include <asm/processor.h>
@@ -217,6 +218,10 @@ void do_trap(struct cpu_user_regs *cpu_regs)
 
             break;
         }
+
+        if ( fixup_exception(cpu_regs) )
+            break;
+
         fallthrough;
     default:
         if ( cause & CAUSE_IRQ_FLAG )
diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
index 331a7d63d3c9..65f136dce9f7 100644
--- a/xen/arch/riscv/xen.lds.S
+++ b/xen/arch/riscv/xen.lds.S
@@ -74,6 +74,9 @@ SECTIONS
     .data.ro_after_init : {
         __ro_after_init_start = .;
         *(.data.ro_after_init)
+
+        EX_TABLE
+
         . = ALIGN(PAGE_SIZE);
         __ro_after_init_end = .;
     } : text
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index c326538ebbb2..b9e888e5962f 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -113,11 +113,7 @@ SECTIONS
        __ro_after_init_start = .;
        *(.data.ro_after_init)
 
-       . = ALIGN(8);
-       /* Exception table */
-       __start___ex_table = .;
-       *(.ex_table)
-       __stop___ex_table = .;
+       EX_TABLE
 
        . = ALIGN(PAGE_SIZE);
        __ro_after_init_end = .;
diff --git a/xen/include/xen/xen.lds.h b/xen/include/xen/xen.lds.h
index 136849ecd515..ea11e3fb6213 100644
--- a/xen/include/xen/xen.lds.h
+++ b/xen/include/xen/xen.lds.h
@@ -219,4 +219,10 @@
 #define VPCI_ARRAY
 #endif
 
+#define EX_TABLE                  \
+        . = ALIGN(4);             \
+        __start___ex_table = .;   \
+        *(.ex_table)              \
+        __stop___ex_table = .;
+
 #endif /* __XEN_LDS_H__ */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 19:04:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 19:04:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269262.1558371 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7eOA-0005JW-OM; Tue, 31 Mar 2026 19:04:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269262.1558371; Tue, 31 Mar 2026 19:04: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 1w7eOA-0005Ip-Ji; Tue, 31 Mar 2026 19:04:34 +0000
Received: by outflank-mailman (input) for mailman id 1269262;
 Tue, 31 Mar 2026 19:04:33 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1w7eO9-0004zj-BA
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 19:04:33 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7eO8-001kxS-NR
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 21:04:32 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69cc1ac0-bab6-0a2a0a5309dd-0a2a450ba29c-0
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 21:04:32 +0200
Received: from [209.85.128.53] (helo=mail-wm1-f53.google.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69cc1ac0-ef63-0a2a450b0019-d1558035cc59-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 21:04:32 +0200
Received: by mail-wm1-f53.google.com with SMTP id
 5b1f17b1804b1-48540d21f7dso73088655e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 12:04:32 -0700 (PDT)
Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4887e80a6ebsm66704905e9.6.2026.03.31.12.04.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 31 Mar 2026 12:04:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774983872; x=1775588672; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5wIJCzxQUgbccKwE9h7kA0JQ/lmT/FyjEkSXHOWHMIM=;
        b=J/q2I9aDKG3dYITZ/eEDII7l5hHiHyuGKfXVC1n6hf26W0FdJo8+4hQOkPd6954eLG
         x7vsAHhLfJVXu60HWGSZlISFwzinpwZEUqgWtA7bSpv0B/8nlcIXfTrvkUqUL3ApIUmw
         RcIGrVKIO3+tP1r3bVkulDMZ7gKkThdHgVEpYs3DSsrBz+kEl4FNXpcn8yFrCpdAdyrk
         31XTJL5LZyfAZBJEGM+idMeyfbc3ittCfuzdpigGQe8WaCR2v8RuxFuNQfomoZVBOwFj
         Mxhcp1zP+RWC6wLbcBQ5Nzv4hft4l0rCowU6eRkz637NagTpni8c9IVUa2Zr+fAXggW6
         XbWw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774983872; x=1775588672;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=5wIJCzxQUgbccKwE9h7kA0JQ/lmT/FyjEkSXHOWHMIM=;
        b=Ly2fQT9KXUzxkaeEh4jBCStGNEFdBqfboNUifc6tb/PJew99glUQdl/OSDIcscnMsd
         WqBLryxfY3Nd+a/l5oW7qWF6j1Id7GdrkdvOdcUcS/PBRnSupxrdOJGdkAtHjH3ggcUc
         yb30XpvipKuM0iPz7O7X8rBb8fzI0I8EaXrVvDYUTZcrqJNLTUudGb2NOQmhE8JeGHYj
         AhCuFQzktyARC+LyfaFDDTxSnXxpFpFR1ZfQMiqxusw/+qTt9VVpO8vV0kqXwfMA4Luv
         mliEg7PvqmNZLH2F76JhfxpYYNKhAy41/NivYnPXokcqGtcSzWHjQRocq0cmVWiPNTTS
         GBwQ==
X-Gm-Message-State: AOJu0YzFmq7bEr1TUUr45yt5jHKljqlmCneuxc+FBssPL+nSzJ176/gm
	oWsBNPN1HCBJ7Hijkr8TmuYcgFL16892EarLjq3fuO3BQ8MPfv1Lm58WJ7tKbg==
X-Gm-Gg: ATEYQzy0SckG6iGrwlzAxfvfU+tBaujQhO5L7rK6vVnnHeFgP73VldTVkMSqJIfVy5Q
	9uVZlJlCEcAJPFcXQqKaPmMnGrNjzlaCfE4mFvycrksm6HrwQBqBOY42IqW0JARR+ipdaKENP8c
	AvCksajPrbw7FjDDl7yuKhYw8uz4TRVod3PyNrCUF2EmquAi+ZUGNPnyXpRdGJIXngqr821LIsc
	zHeblJl1bZRA0fAt0YQ1ZL26yLS+xAxt9Y3EdXcHog6Cr3uIxukIvZqmF+s0ucqHLNMHmJNNDNR
	aY7gSngZTdFEeCx7l5t9nXksSjCxSvYdmtYtcef5LGPFrElJb6kA7wOk9uVHub+doXQpvb3TI/R
	CBo5cky3BU7EFtkKn9zx51Hnb36+ep5s8g4+JEyO9MOb/KAFXxYOUbQmXOsZS+aSBtdQE5/oPCl
	LBsJkq3CR+/oaw6QCcS7HaLfYGs9DkOZMCSmthDA6pGMPRJ0VEaabzWOit7HAXtJi5Jg==
X-Received: by 2002:a05:600c:821a:b0:486:fdba:f5db with SMTP id 5b1f17b1804b1-48883307a37mr12050905e9.0.1774983871796;
        Tue, 31 Mar 2026 12:04:31 -0700 (PDT)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 4/4] xen/riscv: init_csr_masks()-related improvements
Date: Tue, 31 Mar 2026 21:04:19 +0200
Message-ID: <8eb8327bfb2f273cd0fa32ba65e84bb79e8607d4.1774863161.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1774863161.git.oleksii.kurochko@gmail.com>
References: <cover.1774863161.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1774983872-BBEA2112-8AF259C0/10/73395122804
X-purgate-type: spam
X-purgate-size: 2953

There is no reason to use _UL() in define-s sitting in C file hence use UL
suffix instead.

Drop 3d argument of INIT_CSR_MASK() and INIT_RO_ONE_MASK() to reduce risk
of incomplete editing after copy-and-paste, or other typo-ing.

Use _VALID_ infix instead of _AVAIL_ as the mask identifies architecturally
defined bits, not bits available for software use.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/riscv/domain.c | 29 +++++++++++++++--------------
 1 file changed, 15 insertions(+), 14 deletions(-)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index c327f44d07ca..c77be3b827eb 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -42,10 +42,10 @@ struct csr_masks {
 
 static struct csr_masks __ro_after_init csr_masks;
 
-#define HEDELEG_AVAIL_MASK ULONG_MAX
-#define HIDELEG_AVAIL_MASK ULONG_MAX
-#define HENVCFG_AVAIL_MASK _UL(0xE0000003000000FF)
-#define HSTATEEN0_AVAIL_MASK _UL(0xDE00000000000007)
+#define HEDELEG_VALID_MASK ULONG_MAX
+#define HIDELEG_VALID_MASK ULONG_MAX
+#define HENVCFG_VALID_MASK 0xe0000003000000ffUL
+#define HSTATEEN0_VALID_MASK 0xde00000000000007UL
 
 void __init init_csr_masks(void)
 {
@@ -57,25 +57,26 @@ void __init init_csr_masks(void)
      * fields that must be preserved. Any write to the full register must
      * therefore retain the original values of those fields.
      */
-#define INIT_CSR_MASK(csr, field, mask) do { \
-        register_t old = csr_read_set(CSR_ ## csr, mask); \
+#define INIT_CSR_MASK(csr, field) do { \
+        register_t old = csr_read_set(CSR_ ## csr, csr ## _VALID_MASK); \
         csr_masks.field = csr_swap(CSR_ ## csr, old); \
     } while (0)
 
-#define INIT_RO_ONE_MASK(csr, field, mask) do { \
-        register_t old = csr_read_clear(CSR_ ## csr, mask); \
-        csr_masks.ro_one.field = csr_swap(CSR_ ## csr, old) & mask; \
+#define INIT_RO_ONE_MASK(csr, field) do { \
+        register_t old = csr_read_clear(CSR_ ## csr, csr ## _VALID_MASK); \
+        csr_masks.ro_one.field = csr_swap(CSR_ ## csr, old) & \
+                                 csr ## _VALID_MASK; \
     } while (0)
 
-    INIT_CSR_MASK(HEDELEG, hedeleg, HEDELEG_AVAIL_MASK);
-    INIT_CSR_MASK(HIDELEG, hideleg, HIDELEG_AVAIL_MASK);
+    INIT_CSR_MASK(HEDELEG, hedeleg);
+    INIT_CSR_MASK(HIDELEG, hideleg);
 
-    INIT_CSR_MASK(HENVCFG, henvcfg, HENVCFG_AVAIL_MASK);
+    INIT_CSR_MASK(HENVCFG, henvcfg);
 
     if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
     {
-        INIT_CSR_MASK(HSTATEEN0, hstateen0, HSTATEEN0_AVAIL_MASK);
-        INIT_RO_ONE_MASK(HSTATEEN0, hstateen0, HSTATEEN0_AVAIL_MASK);
+        INIT_CSR_MASK(HSTATEEN0, hstateen0);
+        INIT_RO_ONE_MASK(HSTATEEN0, hstateen0);
     }
 
 #undef INIT_CSR_MASK
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Mar 31 19:19:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 19:19:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269308.1558383 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7ebz-0000Yu-U9; Tue, 31 Mar 2026 19:18:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269308.1558383; Tue, 31 Mar 2026 19:18:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7ebz-0000Yn-RI; Tue, 31 Mar 2026 19:18:51 +0000
Received: by outflank-mailman (input) for mailman id 1269308;
 Tue, 31 Mar 2026 19:18:50 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <alex@shazbot.org>) id 1w7eby-0000Yh-1e
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 19:18:50 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7ebw-0044D0-S6
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 21:18:48 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <alex@shazbot.org>)
 id 69cc1dc6-2eae-0a2a0a5409dd-0a2a4501e460-48
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 21:18:48 +0200
Received: from [202.12.124.139] (helo=flow-b4-smtp.messagingengine.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.0)
 (envelope-from <alex@shazbot.org>)
 id 69cc1e16-6fc9-0a2a45010019-ca0c7c8bdac5-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 21:18:47 +0200
Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])
 by mailflow.stl.internal (Postfix) with ESMTP id D592A130008E;
 Tue, 31 Mar 2026 15:18:43 -0400 (EDT)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-05.internal (MEProxy); Tue, 31 Mar 2026 15:18:45 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 31 Mar 2026 15:18:38 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=shazbot.org header.i="@shazbot.org" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm2 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=shazbot.org; h=
	cc:cc:content-transfer-encoding:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1774984723;
	 x=1774991923; bh=e2GLgeMPntSzKQd7unYxJVNrGT++Ey/+j0e558YaVKo=; b=
	Jix2YZqPgfjz22R+GBZTSkmM/A+yTGqbP2D7RrPJTBlHCtwUy2TreQYJzy0FYt4E
	mn6iGMSZZUAvgOUzmgtxkvDhEQqNq9so/LsT2uXs0WUjbk/iVyGgezKLdcntmYCJ
	j1mTHgBbF1XmhYE9OLcmwaqRwm079G64C6NXLlTJGqXGDGeTuyvQuKL+LrxHsVyt
	h07JL26/s5vAaqvA+uFn5EtvqWaXeuVPLWaay4hdvRDT/GeDy5zchULu+Xf5bCKw
	aMCGUFvWJ4r5sa9ylZo53CH1LtcUihVM+4twawyn4uPT0avFIdaMYMGGz87cRj5W
	75pcl2tsTe5q72qXomhEng==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1774984723; x=
	1774991923; bh=e2GLgeMPntSzKQd7unYxJVNrGT++Ey/+j0e558YaVKo=; b=q
	Pkl0NIe505sDev2vE+9dEjJ2QQvY24shKDHRjyi5iJrJ3lhJmCH83R7Ej6uIsdKx
	Ah2qPK0lawqj3n8MX9UbaZlR8zOv0eboHPEu2zTV9Ar46wm3SvS5yBG219IjmBDw
	/8aE106Yb9iAY8X18cayks75OdeneZOPyq2pnCyvpFrGdunxzgrlbZPAQhHCnM3H
	MhJM8//IeSYiIyV967PwBaCx9UybPaAajGdNOPqf34786RvJS1R2NeBhzECYdV9r
	Hhp4kbOPpgzUg+fw9gf2jEWED5P2y3OiIotVEJPhPvUaSmHyFEthzrD5syHkfCDz
	oj1hrBx1gCRLurULKhEqQ==
X-ME-Sender: <xms:Eh7MaYVXhSLS49doWxNbldxcSkPJQ2lBgD6S-cXj9ML6P8DuIhi54A>
    <xme:Eh7MaY3CTvPt8pC-6__rnVlJHk3AMpws04d9x1eLmygsx9xxcOKA3tvfX2RGrzeid
    3eITD6bgIngUTpBItaVYS7mKstrqZdkyduHlmJydVKX9r92pk1CAA>
X-ME-Received: <xmr:Eh7MaWAMOBeQDrW_EEEiAtExZoJg9HXrtPbMbrU13INIpg2pRTwgJd0Tapg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgddutddvucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    epfffhvfevuffkjghfofggtgfgsehtjeertdertddvnecuhfhrohhmpeetlhgvgicuhghi
    lhhlihgrmhhsohhnuceorghlvgigsehshhgriigsohhtrdhorhhgqeenucggtffrrghtth
    gvrhhnpedvkeefjeekvdduhfduhfetkedugfduieettedvueekvdehtedvkefgudegveeu
    ueenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegrlh
    gvgiesshhhrgiisghothdrohhrghdpnhgspghrtghpthhtohephedupdhmohguvgepshhm
    thhpohhuthdprhgtphhtthhopegurghkrheskhgvrhhnvghlrdhorhhgpdhrtghpthhtoh
    epjhhgghesiihivghpvgdrtggrpdhrtghpthhtoheplhhinhhugiesrghrmhhlihhnuhig
    rdhorhhgrdhukhdprhgtphhtthhopehgrhgvghhkhheslhhinhhugihfohhunhgurghtih
    honhdrohhrghdprhgtphhtthhopehrrghfrggvlheskhgvrhhnvghlrdhorhhgpdhrtghp
    thhtohepihhorghnrgdrtghiohhrnhgvihesnhigphdrtghomhdprhgtphhtthhopehnih
    hpuhhnrdhguhhpthgrsegrmhgurdgtohhmpdhrtghpthhtohepnhhikhhhihhlrdgrghgr
    rhifrghlsegrmhgurdgtohhmpdhrtghpthhtohepkhihshesmhhitghrohhsohhfthdrtg
    homh
X-ME-Proxy: <xmx:Eh7MaXq2mlnlOelEQan96Ie-hgy-LAK8CHBHQdkG7r27nkHcaWiIbg>
    <xmx:Eh7Mab_KIxvqr4OxQc5evz-T_S8zOMbzrx08jzw5C5b7mvco3Iesuw>
    <xmx:Eh7MaefX2P0crsZiJ44xT0eYo0t5zG2qKmdKMy8HHuopFTELtHeNKg>
    <xmx:Eh7MaRJs8ye8aup8P2JAiOncajQ7Ro6xy3heBDnJcGy9BvoI7oIX_g>
    <xmx:Ex7MaSUwhQGLpsFOIWtvVzTCvrLLbvifdUNGQI9PxQ_RqFwZ-CC-1T0v>
Feedback-ID: i03f14258:Fastmail
Date: Tue, 31 Mar 2026 13:18:37 -0600
From: Alex Williamson <alex@shazbot.org>
To: "Danilo Krummrich" <dakr@kernel.org>, "Jason Gunthorpe" <jgg@ziepe.ca>
Cc: "Russell King" <linux@armlinux.org.uk>,
 "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
 "Rafael J. Wysocki" <rafael@kernel.org>,
 "Ioana Ciornei" <ioana.ciornei@nxp.com>,
 "Nipun Gupta" <nipun.gupta@amd.com>,
 "Nikhil Agarwal" <nikhil.agarwal@amd.com>,
 "K. Y. Srinivasan" <kys@microsoft.com>,
 "Haiyang Zhang" <haiyangz@microsoft.com>, "Wei Liu" <wei.liu@kernel.org>,
 "Dexuan Cui" <decui@microsoft.com>, "Long Li" <longli@microsoft.com>,
 "Bjorn Helgaas" <bhelgaas@google.com>, "Armin Wolf" <W_Armin@gmx.de>,
 "Bjorn Andersson" <andersson@kernel.org>,
 "Mathieu Poirier" <mathieu.poirier@linaro.org>,
 "Vineeth Vijayan" <vneethv@linux.ibm.com>,
 "Peter Oberparleiter" <oberpar@linux.ibm.com>,
 "Heiko Carstens" <hca@linux.ibm.com>,
 "Vasily Gorbik" <gor@linux.ibm.com>,
 "Alexander Gordeev" <agordeev@linux.ibm.com>,
 "Christian Borntraeger" <borntraeger@linux.ibm.com>,
 "Sven Schnelle" <svens@linux.ibm.com>,
 "Harald Freudenberger" <freude@linux.ibm.com>,
 "Holger Dengler" <dengler@linux.ibm.com>,
 "Mark Brown" <broonie@kernel.org>, "Michael S. Tsirkin" <mst@redhat.com>,
 "Jason Wang" <jasowang@redhat.com>,
 "Xuan Zhuo" <xuanzhuo@linux.alibaba.com>,
 Eugenio =?UTF-8?B?UMOpcmV6?= <eperezma@redhat.com>,
 "Juergen Gross" <jgross@suse.com>,
 "Stefano Stabellini" <sstabellini@kernel.org>,
 "Oleksandr Tyshchenko" <oleksandr_tyshchenko@epam.com>,
 "Christophe Leroy (CS GROUP)" <chleroy@kernel.org>,
 <linux-kernel@vger.kernel.org>, <driver-core@lists.linux.dev>,
 <linuxppc-dev@lists.ozlabs.org>, <linux-hyperv@vger.kernel.org>,
 <linux-pci@vger.kernel.org>, <platform-driver-x86@vger.kernel.org>,
 <linux-arm-msm@vger.kernel.org>, <linux-remoteproc@vger.kernel.org>,
 <linux-s390@vger.kernel.org>, <linux-spi@vger.kernel.org>,
 <virtualization@lists.linux.dev>, <kvm@vger.kernel.org>,
 <xen-devel@lists.xenproject.org>, <linux-arm-kernel@lists.infradead.org>,
 "Gui-Dong Han" <hanguidong02@gmail.com>, alex@shazbot.org
Subject: Re: [PATCH 05/12] PCI: use generic driver_override infrastructure
Message-ID: <20260331131837.6a9fe9ec@shazbot.org>
In-Reply-To: <DHGTLY0FJWD2.2VLT6NQWF97YY@kernel.org>
References: <20260324005919.2408620-1-dakr@kernel.org>
	<20260324005919.2408620-6-dakr@kernel.org>
	<DHGATG6LJOM1.2AI7BYQ2O4DFU@kernel.org>
	<20260330141050.2cb47bd9@shazbot.org>
	<DHGT9XCG8Y96.3IB1EI6FF1ZDZ@kernel.org>
	<DHGTLY0FJWD2.2VLT6NQWF97YY@kernel.org>
X-Mailer: Claws Mail 4.3.1 (GTK 3.24.51; x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
X-purgate-ID: tlsNG-d62444/1774984728-B66F7185-66D071AA/0/0
X-purgate-type: clean
X-purgate-size: 4400

On Tue, 31 Mar 2026 10:22:14 +0200
"Danilo Krummrich" <dakr@kernel.org> wrote:

> On Tue Mar 31, 2026 at 10:06 AM CEST, Danilo Krummrich wrote:
> > On Mon Mar 30, 2026 at 10:10 PM CEST, Alex Williamson wrote:  
> >> On Mon, 30 Mar 2026 19:38:41 +0200
> >> "Danilo Krummrich" <dakr@kernel.org> wrote:
> >>  
> >>> (Cc: Jason)
> >>> 
> >>> On Tue Mar 24, 2026 at 1:59 AM CET, Danilo Krummrich wrote:  
> >>> > diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c
> >>> > index d43745fe4c84..460852f79f29 100644
> >>> > --- a/drivers/vfio/pci/vfio_pci_core.c
> >>> > +++ b/drivers/vfio/pci/vfio_pci_core.c
> >>> > @@ -1987,9 +1987,8 @@ static int vfio_pci_bus_notifier(struct notifier_block *nb,
> >>> >  	    pdev->is_virtfn && physfn == vdev->pdev) {
> >>> >  		pci_info(vdev->pdev, "Captured SR-IOV VF %s driver_override\n",
> >>> >  			 pci_name(pdev));
> >>> > -		pdev->driver_override = kasprintf(GFP_KERNEL, "%s",
> >>> > -						  vdev->vdev.ops->name);
> >>> > -		WARN_ON(!pdev->driver_override);
> >>> > +		WARN_ON(device_set_driver_override(&pdev->dev,
> >>> > +						   vdev->vdev.ops->name));    
> >>> 
> >>> Technically, this is a change in behavior. If vdev->vdev.ops->name is NULL, it
> >>> will trigger the WARN_ON(), whereas before it would have just written "(null)"
> >>> into driver_override.  
> >>
> >> It's worse than that.  Looking at the implementation in [1], we have:
> >>
> >> +static inline int device_set_driver_override(struct device *dev, const char *s)
> >> +{
> >> +	return __device_set_driver_override(dev, s, strlen(s));
> >> +}
> >>
> >> So if name is NULL, we oops in strlen() before we even hit the -EINVAL
> >> and WARN_ON().  
> >
> > This was changed in v2 [2] and the actual code in-tree is
> >
> > 	static inline int device_set_driver_override(struct device *dev, const char *s)
> > 	{
> > 		return __device_set_driver_override(dev, s, s ? strlen(s) : 0);
> > 	}
> >
> > so it does indeed return -EINVAL for a NULL pointer.

Ok, good.

> >> I don't believe we have any vfio-pci variant drivers where the name is
> >> NULL, but kasprintf() handling NULL as "(null)" was a consideration in
> >> this design, that even if there is no name the device is sequestered
> >> with a driver_override that won't match an actual driver.
> >>  
> >>> I assume that vfio_pci_core drivers are expected to set the name in struct
> >>> vfio_device_ops in the first place and this code (silently) relies on this
> >>> invariant?  
> >>
> >> We do expect that, but it was previously safe either way to make sure
> >> VFs are only bound to the same ops driver or barring that, at least
> >> don't perform a standard driver match.  The last thing we want to
> >> happen automatically is for a user owned PF to create SR-IOV VFs that
> >> automatically bind to native kernel drivers.
> >>    
> >>> Alex, Jason: Should we keep this hunk above as is and check for a proper name in
> >>> struct vfio_device_ops in vfio_pci_core_register_device() with a subsequent
> >>> patch?  
> >>
> >> Given the oops, my preference would be to roll it in here.  This change
> >> is what makes it a requirement that name cannot be NULL, where this was
> >> safely handled with kasprintf().  
> >
> > Again, no oops here. :)
> >
> > I still think it makes more sense to fail early in
> > vfio_pci_core_register_device(), rather than silently accept "(null)" in
> > driver_override. It also doesn't seem unreasonable with only the WARN_ON(), but
> > I can also just add vdev->vdev.ops->name ?: "(null)".  
> 
> (Or just skip the call if !vdev->vdev.ops->name, as a user will read "(null)"
> from sysfs either way.)

Hmm, I suppose they would, but there's a fundamental difference between
driver_override being set to "(null)" vs being NULL and only
interpreted as "(null)" via show.  The former would prevent ID table
matching, the latter would not.  The former is what was intended here,
without realizing both look the same through sysfs and present a
difficult debugging challenge.

Given no oops for strlen() now and no known in-kernel drivers with a
NULL name, I can post a patch that rejects a NULL name in the ops
structure in vfio_pci_core_register_device(), avoiding the entire
situation.

For this,

Acked-by: Alex Williamson <alex@shazbot.org>

Thanks,
Alex


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 19:50:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 19:50:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269321.1558393 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7f6C-0005sm-9r; Tue, 31 Mar 2026 19:50:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269321.1558393; Tue, 31 Mar 2026 19:50:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7f6C-0005sB-4c; Tue, 31 Mar 2026 19:50:04 +0000
Received: by outflank-mailman (input) for mailman id 1269321;
 Tue, 31 Mar 2026 19:50:02 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92) id 1w7f6A-0005Lg-6b
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 19:50:02 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7f67-00GS73-J0
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 21:50:01 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69cc2519-5cb7-0a2a0a5109dd-0a2a4507a6ee-44
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 21:50:01 +0200
Received: from [209.85.128.44] (helo=mail-wm1-f44.google.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <oleksii.kurochko@gmail.com>)
 id 69cc2568-fd74-0a2a45070019-d155802ce01b-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 21:50:00 +0200
Received: by mail-wm1-f44.google.com with SMTP id
 5b1f17b1804b1-486b96760easo67578815e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 12:50:00 -0700 (PDT)
Received: from [192.168.1.6] (user-109-243-69-121.play-internet.pl.
 [109.243.69.121]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4887e7e9728sm62149765e9.1.2026.03.31.12.49.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 31 Mar 2026 12:49:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1774986600; x=1775591400; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to
         :cc:subject:date:message-id:reply-to;
        bh=lMY7gR9qRsA15Agn4j8J6bzeCXKGSqDN04ZuMFkc0x8=;
        b=pLeuViaU5VNB3y81TUFXGTpT7f4WykhCqDnuZzQUr/yunYqWaBvqXyawJDOWtJxUjM
         smxx8DDHV4DelkvJrMvGPyxCbLEkCQzqZYXNX6aKrOn37Ii+O8PQCPZt2ujnh/AKFvyF
         T6SiPRKOXvwbMHVXatD/a2XuZUufnPlvlRNFKErVh75qzJR+NV+IWzRFXZ/Xck+pLBxY
         ikJiUPgCHCJhVi4eai69hNgFUWG5vxyyuD7tGyqX4UrMm9NiKHXs/QAsD2TlKy0It+/K
         aEhy4k/Gm3yEMgU89l/kvhuox1YhsReW3MruUa0QGkigt0+B/nWOQTsw6/k3wNj4eZvZ
         EW3Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1774986600; x=1775591400;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=lMY7gR9qRsA15Agn4j8J6bzeCXKGSqDN04ZuMFkc0x8=;
        b=QBjQihtZCQP+DlIetm2MWMkinxYFu4nYNeNSpA/w0Y4DkRX42TQrFvY6MIjuI0WzRi
         dfjrv0XvQRWAdexQ2D07+Sw5pwRVSbCLVFVmgntiUnUpDkZELaeHJpX4TE6Yybg4hlHK
         xw5eHXvssdZSXk6dF5ry/oV6KtzTo+vxewn+A1y9JP6aF0w77+5HXi4y08Jj3kskzZVZ
         riAGi1LPPTSOgh6Hmf8jY2iIxGystlsTRBWrF5GFgqfeTQiVXSkyI0FmviaLV0ZYgy6M
         WbLIqN584ER3OgEOgAotlGV609LPhv30evFeUlVNi9JU9Azv5x15u0WVGIE1MWy5cuCe
         e83Q==
X-Forwarded-Encrypted: i=1; AJvYcCW46U+bKsLdrnBqHKp+Db0Fom6VesWHO5IKBs15ntkrcjxPmF/yOV2fe7gEe8GISHU8r5m3sCobEI8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxtDCZ3vwkHT/AYjSzGdmx12kvQGKXhH3xBQ8QxCzpoUY60ZU9P
	ofrixYcaBwjqiUNJYf3j+K953koSI8a6qhCNNAyR0/nLg+xwea1pEjHF
X-Gm-Gg: ATEYQzxYYWD6TW8qfMuWLKm6kY+9YOBx0i3+ej5QyPhtutza4weFka0Tf1e4974bvCE
	oIW+AgdMV7RswXs8wMxNGmAVWFEznWprYv/YOf6mq5AjRb71Ng12QhAHBcSr1Lb/5lG/7iOqJ7A
	NOR/VZ9icqhyyIHJsrcB6HxTMxEBabXDn9bdIxfELjNkCavcTjVSC49kv0e7RPfoPZeRcH80CoQ
	5gftMDze2X7Ju0zi4xTNJdJWbSnL5VYMIA0Cgy9tguC6ZIXuGFkvkV3gEwRWX1wHf7rmt/c1H0b
	K8bnKBTvLl1xEiYPsgDCk3lJXvcRx1dN6U94N61EYo1ryGywmlgWdwc/nJng9u/QUyWVVBztl/4
	KCLwKlQxiF+K3jXf3hUZdtq+RE5qhIQdqO8eGmHLiQ/vG5DgllK42uaZdbXN0Nrk1n21eoK7gv7
	j3g1ZrmvwWF0nyzLHGMlZRSUXwVZWXPLqpEX/O0V/1FaR/31hWlxZQowyVYUnpyr+ba7g/etsSE
	QA=
X-Received: by 2002:a05:600c:1d16:b0:485:3e19:9e01 with SMTP id 5b1f17b1804b1-4888359d2afmr11842465e9.28.1774986599954;
        Tue, 31 Mar 2026 12:49:59 -0700 (PDT)
Message-ID: <38d93a26-dfce-4d4e-a1d2-c4e8d13c4ead@gmail.com>
Date: Tue, 31 Mar 2026 21:49:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 07/11] xen: move domain_use_host_layout() to common
 code
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1774281309.git.oleksii.kurochko@gmail.com>
 <533d01db2b36b8357cd87e99a64a6e66dbdd1db4.1774281309.git.oleksii.kurochko@gmail.com>
 <6df9470e-4969-48d1-bf0c-c6569a5e5577@suse.com>
 <57581b7d-cb9f-444c-9321-63b2fc3d09f0@gmail.com>
 <d1288db4-2001-4914-919f-b613fd607bcc@suse.com>
 <d67b2856-bf93-4254-afa1-745dc37e0623@gmail.com>
Content-Language: en-US
In-Reply-To: <d67b2856-bf93-4254-afa1-745dc37e0623@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1774986600-4E4AE303-39457531/10/73395122804
X-purgate-type: spam
X-purgate-size: 1508



On 3/31/26 6:32 PM, Oleksii Kurochko wrote:
>>>>> @@ -2544,6 +2544,12 @@ void thaw_domains(void)
>>>>>    #endif /* CONFIG_SYSTEM_SUSPEND */
>>>>> +bool domain_use_host_layout(struct domain *d)
>>>>> +{
>>>>> +    return is_domain_direct_mapped(d) ||
>>>>> +           (paging_mode_translate(d) && is_hardware_domain(d));
>>>>> +}
>>>>
>>>> The placement of paging_mode_translate() doesn't match ...
>>>>
>>>>> --- a/xen/include/xen/domain.h
>>>>> +++ b/xen/include/xen/domain.h
>>>>> @@ -62,6 +62,22 @@ void domid_free(domid_t domid);
>>>>>    #define is_domain_direct_mapped(d) ((d)->cdf & CDF_directmap)
>>>>>    #define is_domain_using_staticmem(d) ((d)->cdf & CDF_staticmem)
>>>>> +/*
>>>>> + * Is the auto-translated domain using the host memory layout?
>>>>> + *
>>>>> + * domain_use_host_layout() is always False for PV guests.
>>>>
>>>> ... the description of the function.
>>>
>>> But why the placement should be different?
>>
>> If you focus on auto-translated, then imo paging_mode_translate()
>> better would guard everything.
> 
> Then it make sense to do in the following way:
>   bool domain_use_host_layout(struct domain *d)
>   {
> -    return is_domain_direct_mapped(d) ||
> -           (paging_mode_translate(d) && is_hardware_domain(d));
> +    return paging_mode_translate(d) &&
> +           (is_domain_direct_mapped(d) || is_hardware_domain(d));
>   }

This is not really correct.

~ Oleksii


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 20:12:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 20:12:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269333.1558401 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7fRi-00017o-Up; Tue, 31 Mar 2026 20:12:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269333.1558401; Tue, 31 Mar 2026 20:12:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7fRi-00017h-S0; Tue, 31 Mar 2026 20:12:18 +0000
Received: by outflank-mailman (input) for mailman id 1269333;
 Tue, 31 Mar 2026 20:12:17 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <edwin.torok@citrix.com>) id 1w7fRh-00017b-OR
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 20:12:17 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7fRg-001u4c-8N
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 22:12:16 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <edwin.torok@citrix.com>)
 id 69cc2a9d-5cb7-0a2a0a5109dd-0a2a4506bfd4-8
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 22:12:16 +0200
Received: from [52.101.57.67]
 (helo=BN8PR05CU002.outbound.protection.outlook.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <edwin.torok@citrix.com>)
 id 69cc2a9e-3034-0a2a45060019-346539430df3-3
 for <xen-devel@lists.xenproject.org>; Tue, 31 Mar 2026 22:12:15 +0200
Received: from SA3PR03MB7419.namprd03.prod.outlook.com (2603:10b6:806:39c::6)
 by PH0PR03MB5685.namprd03.prod.outlook.com (2603:10b6:510:42::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.15; Tue, 31 Mar
 2026 20:12:12 +0000
Received: from SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc]) by SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc%6]) with mapi id 15.20.9769.015; Tue, 31 Mar 2026
 20:12:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WlBdf6CNzmvwRdTGQCeWHZzru8eembiEpZ62nk47+08NBTJZTdrxo+UlT40gQoA+laFMrMQiVCuzhYHdgOidwQaeIJHHYkwbYoy7TycjeJwXFt9n8H1HRX1g9kGOn44GKaUtzQdRgYzP7l1rzi0YnsJVYxGEZeZ5TJaR6EM88rW4tox5Ywn/wAXV/qcpLcE6MnKJXYfcLaIcrpi+TcvLDVdzNNSz6s1o6mz5BhWCsHJPIuWDuiPEImyJ6e8riN2TFAuDzGRrZXM0A6EvGIeCvDKuXqrFwFEKx2Fzh63eflcg0Nz6MkmLE+56SNcuDzbZT/MPCsIeYMMvsKFD8QE4GA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RoBFa4jcjgIIIH5H4QOsTEIyRuS4rpi1OQxkU4cFtjw=;
 b=RkYND0Kpe4tDhoO//IQwbMsD+M1HdUfuXM3JiZXzBu8qWlgXUET+hH1iY2bPl5NLtqZGSrxMjETDejNiFAAZ74othFtS0METSAnsE5D4VtUOOgBrLEyqhB1Y5tppEREHygGi/50LNfzmlvt3rSwNxSvm2t+FQeEgxKFBswMevwQcVZe9Dzw2rBPkEAbpb4srw6mkNnp7o9PQHYpsAh+a3hwI2EDje8ptMcH5XQEVT/gL713llKfjBVrLR/U1TqRDfFbJfGnEd5wYwDT3XJeCYI8HX39F0RP5+Kfri9LunMqyC5uGG5e8pJEAUozmSoo6v+uHiHkuLHtOX+vXDxydgA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RoBFa4jcjgIIIH5H4QOsTEIyRuS4rpi1OQxkU4cFtjw=;
 b=l/F7UAuy5QUIHJav2n1XKGtp0VvsZOtPztJjkxzW+2J65Cfq5ANxhzKZDrvkgyGeNA3Uc/TmcxZiI1AgRr514WE0ZB5RhUDH2akuiVxBSk3nxXlnOcKiELRRg6vhA+g7WnRvJgpJ84I6/WlEul/XXiKqQOQyp8yzCBGKd1Jo4+o=
From: Edwin Torok <edwin.torok@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Anthony PERARD <anthony.perard@vates.tech>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Roger Pau Monne <roger.pau@citrix.com>, Stewart
 Hildebrand <stewart.hildebrand@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Denis Mukhin <dmukhin@ford.com>, Marcus
 Granado <marcus.granado@citrix.com>
Subject: Re: [PATCH 0/7] Factor out common build rules and helpers in
 tools/tests
Thread-Topic: [PATCH 0/7] Factor out common build rules and helpers in
 tools/tests
Thread-Index: AQHcpK0ssUh7hdj8f0mNZT6LyhFCMLWQGOWAgAbDtQCAMm9PAA==
Date: Tue, 31 Mar 2026 20:12:11 +0000
Message-ID: <9FD57CC6-EE9F-467C-9572-5547985C13F4@citrix.com>
References: <cover.1771840831.git.edwin.torok@citrix.com>
 <dba3fb3f-b5c9-460c-85fc-761f58e140fc@suse.com>
 <EFC38170-BA34-49E2-8628-219EF6EC3301@citrix.com>
In-Reply-To: <EFC38170-BA34-49E2-8628-219EF6EC3301@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA3PR03MB7419:EE_|PH0PR03MB5685:EE_
x-ms-office365-filtering-correlation-id: 9ae84792-376f-47f4-112b-08de8f61cb2a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|376014|366016|38070700021|13003099007|18002099003|22082099003|56012099003;
x-microsoft-antispam-message-info:
 LtRLbTHPI4vtMZOT/x2xRq/c2QJsw8zds5zaHCQablVcl6kBfqry6pKOin0Xvim3lD1Ct1uY8zSiWoj23aDAkixrT6Lmt8f/QpoVWqCRu6qPyNJJYe2ctp2C8RDjVmpf11XI+qyPVWoVRfD2VM8qf/bJG52kLaMZd4HWlVp3Fmqzqa7HvVA5mrJS1els0uTzIE4hA3AZ6k4lsV3e2BkCdAch5y6cxLPeqO9XGpzz6j4K+GWLchln5BAMIXRgf9jjUspzD0Uv+CJ/jx7W0tCbf5ujtILZhYGXUbS8e1SY1oPgoo8ylKkRJyfrYjbd44PYB6NcM7d6sSlNaJnXDme14Noqycs4no7DIiZya0ajYfE80v2f5php8Tp74y5cD3EzNSFTaUjR4tNkh0goqiVuuxAi6bdzVpkK3hq7h0Kt7QmoYDFBsqYcY1DRdYN7NNnWpu52uQKBn0L8wXKIvIJJUUolvZTQ4ibWiVcekMgQp1wyO/1/1l54u9Zg+gfjOtgx05NfAkPwJ47aQXIN1jz80C3/dnqcv/H2qYL3HqzPd3ivxM+rPdFRNWrb2w/xf1C2mT8cPWrd6QNRL5hE5omWno0vzF//qO9N/d/vRDYegDSghkJIY5vdIBrFuYp0bxwyUM4jiPezatD2Rhzwb6h2mTltW6w2XH8i/B3iLLsw41qJjhDSRKQXmYGY9IhXXgYUDz1OnUxyUjLEUUvSWCsOk0Jjtq3Ez2KyRKeEiINcW6ttXCJIVAt98c4y8rbPPFdfoAMyDYkkkctPGDb7+L7XQXPJu91iJKYaRajeGtr4HWTwMlEdC3jwAMxribKkCrik
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA3PR03MB7419.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021)(13003099007)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?OG9SWnYrT2dBYVFLcHUyZFdOR253T0x6Q1ZxbXJQMUpCdi8yWC8rLzRYNGtm?=
 =?utf-8?B?dGhPZ3Z0cS95anhxWVF4L2NiWVZ3UWdsMkpKb0ZETndnUzZjV0NVWjZIREVQ?=
 =?utf-8?B?VjFSTllpNTNsdTZGUGVhcitDWFloODhLRWtqdnJBanFRbU5TQlp0eVBWYVY4?=
 =?utf-8?B?U205cldNVnFFMmRYMDFsSzVKbjZiREpwWVVjV1BNMzRGZW5DK3ppZThPSGcx?=
 =?utf-8?B?VEgyMDBER21Ya0JyanBuTUQ4ZFAyYTdGRVVET3VmSGpjb2QwMm8reklLc3V4?=
 =?utf-8?B?MU9WellNb0VwRDh6cGZhYnBZM1g0SmZtelFkWUxsR3JaS1FyUFJqc3lBN3Ba?=
 =?utf-8?B?RHcrVC9WVEtScHBpR0toUzR5YWZkUWhYRGFpSjd4YzJmOWNhcTRzRjVrbE1Z?=
 =?utf-8?B?MUg1enkvSEpacUc4ODZCemdyZUkwU1ZhNlQycHFSSENZUjlVSGFOMWpDSldS?=
 =?utf-8?B?WDNrUXQvcm1QU3prRlZJQXNYYWRqQ3NqUnhqTHgzNmoyTW95cFZHWHpRWUh1?=
 =?utf-8?B?SVhjcms2Ynk2VitiQVVJTzhpRUI0YWlKTzN4cWpiQlZMS08zMFltZ0VQdmRl?=
 =?utf-8?B?V3lieHRwaW5HbldTTFZiNkZ3T0k2WmJHd3NiN0VlZ0VhUjdyT0NKR3NLbGU4?=
 =?utf-8?B?ckErVlN2a1dVUVk3U1NOL0IvVnZHTUJTSXEvVVlIdGlTdTRJZll1SzRxN0hi?=
 =?utf-8?B?NWpvcVY3OWRiNUxxRFF6MVc3Y1BPNFRpbG9BeDNVOG5lMGJTdWtJWjFpbUNx?=
 =?utf-8?B?OGhCVHZzK0hTd0YwTnRXaEpzdVJVWDFiRDhHaEdUbzBhQkE2emp6dTB6aGcz?=
 =?utf-8?B?MVRpazdkdHdLaVdncWkzS25TRXlnN0lkdmhIclpQbEtTK01zSW4zSENYSnRX?=
 =?utf-8?B?UTU4Ui9rR3B4VDBZUGFoK1R6OEp4eXpmMnllS3pIM0oxUHdHV0RwVC9tTUNE?=
 =?utf-8?B?TkhwS2hHYXJGaXdyaWVpNzdWTERlRUM5ZUNSS0xhWmFMc3NHSXdOWTBJQ2hM?=
 =?utf-8?B?b0NldUxuVUV3RU1pby9CNGZabWJhZmRBR3JIWHFDUU41M0ZuSmpBdG1Nb2Fl?=
 =?utf-8?B?M0tsTkJsR2lwRFM0a0tjSlNRZUJES0JxV0x0OGVsN01mWG5mQXZYeW55cGhx?=
 =?utf-8?B?M3VTRzR4UitvNSt1dGltYlZsd1NaR3dPMUdZWWwxMU8rQXFIY0NVT3RDbTZk?=
 =?utf-8?B?dUw4UGI1c21rb0xSY2xJeFBJcEVQMEtGTkVPMWlKRnRLTmtaUWV6eWRFaEc1?=
 =?utf-8?B?MURBMWdjbVBQNk9wd3Y0N1BDbnp6dXNhRUo2YjlnSURzMEdlNjIzQXViejh6?=
 =?utf-8?B?bEI1Sm9VQkJxZ0xWY2NDZGcvc2UwNTBibE80QmFMVzdjZ2VmS1pZVmV6UWs2?=
 =?utf-8?B?cThBY09haHFuaks1ZU5hbC8ydXhpRER0aU5Ga2lQYzBueHlNV1BCam1KMzEz?=
 =?utf-8?B?TFk4Rm0yQ0NtdndaV3Y4SVAzY1R2V0RjQkVrY25vdXFvK09VL0c1R2dUMGlt?=
 =?utf-8?B?aEpoZGxoc05vYklEZFNPUGk3eDUzV2w2YXdUaVdLYXVnWElOOHFFWTFvVWMw?=
 =?utf-8?B?eVg0Q0xOZzdnWkw4c0JKNVhVSDVvU2RiQ3hIc08zODJQc0krLzloOTdmSFBN?=
 =?utf-8?B?N094ODNRWHFVTnNsdkx0cWV4WVMwaCt2M3VNSithclJTamYrSFI5Y0x3OWNa?=
 =?utf-8?B?VTh3bkVLZWdoQ2xOdlRrbVFMS2p6d3FpWkIvcVowajhWSVkwWkJ4Z2dqN0M0?=
 =?utf-8?B?ZXdsUkwwOStraXhaSlp4WGJ5MTdCeEJNWmNsUnBkTHh3dC9hWG05NkdkaU9R?=
 =?utf-8?B?eCtQN0hJM2hQT3owOCtVNm9QOXZDU0YwRU0xR2VqVmNzWEg0Y1BMZ3VYaHVP?=
 =?utf-8?B?UGY3cG1Nb2VWNEJheEJJZFlESVJsRlE5cHRlYjBpMkQvSHA4SndZUEQwMGo4?=
 =?utf-8?B?UUdwRHQ3b2VCSll0OVFROE42d3NpOUlocTVLb2JjWE1weG1MZEVXNTErQmk0?=
 =?utf-8?B?WU1CcjNHMVpuQnd6VE5lSVQ5V3pyeTlpUm5xbTBwL0xDU29ZOGRnVGlTYlRj?=
 =?utf-8?B?U0VqMGc2WjNieXMvc1ZCdExia1ZzbGkwVVRxamNvWXk4MWNGaTJqWlJOaTdi?=
 =?utf-8?B?NnJWaDhqM05LWTFkVWt1L290OFR6TkdVMFhKVWZ4NHlqZlgzQnpWSGIvMko5?=
 =?utf-8?B?UlBPbzQzMUVFblRNbGZTMmlVOU1zQlB0eHlXdFpjWkswOUdvVmxZeUtITFhn?=
 =?utf-8?B?N2ZtOXZkQmFaK1JyRHA5RnB5WmNyemlqZk44azJ0Sm1adGxPbmFuL1hnUmxW?=
 =?utf-8?B?amRJT25oR2pBSnM1T1dKTUwrT1FIYk12WHNjNmx0dHVCRVZOZ2VmVDFTZklp?=
 =?utf-8?Q?6Qfp3PgqbFQeUp7Y=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <7741137DF47ECB4C8CDFEC6CE69F15CB@namprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA3PR03MB7419.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9ae84792-376f-47f4-112b-08de8f61cb2a
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 20:12:11.5095
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: atxNEbhT82PfKavN+NQvOhwjDRJks6vZEGzHzf2r4QCdrd30WCULeGfaVOSAk9jsFleYzQW7dVUySjO3+Dq7QQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB5685
X-purgate-ID: tlsNG-16d1c6/1774987936-B3E9E1C2-0FD70B3B/0/0
X-purgate-type: clean
X-purgate-size: 4492

DQoNCj4gT24gMjcgRmViIDIwMjYsIGF0IDE4OjAwLCBFZHdpbiBUb3JvayA8ZWR3aW4udG9yb2tA
Y2l0cml4LmNvbT4gd3JvdGU6DQo+IA0KPiANCj4+IE9uIDIzIEZlYiAyMDI2LCBhdCAxMDo0Miwg
SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPiB3cm90ZToNCj4+IA0KPj4gT24gMjMuMDIu
MjAyNiAxMToxNCwgRWR3aW4gVMO2csO2ayB3cm90ZToNCj4+PiBUaGVyZSBhcmUgYSBsb3Qgb2Yg
ZHVwbGljYXRlIHJ1bGVzIGFuZCBjb2RlIGluIHRvb2xzL3Rlc3RzLg0KPj4+IFRvIHNpbXBsaWZ5
IHdyaXRpbmcgbmV3IHRlc3RzIG1vdmUgY29tbW9uIGJ1aWxkIHJ1bGVzIGludG8gYQ0KPj4+IGB0
b29scy90ZXN0cy9SdWxlcy5ta2AsIGFuZCBoZWxwZXIgbWFjcm9zL2Z1bmN0aW9ucyBpbnRvIGBj
b21tb24ve3Rlc3RzLGd1ZXN0c30ue2MsaH1gLg0KPj4+IA0KPj4+IOKApi4NCj4+IA0KPj4gSnVz
dCBmeWkgdGhhdCB0aGVyZSBpcyBhbHNvDQo+PiBodHRwczovL2xpc3RzLnhlbi5vcmcvYXJjaGl2
ZXMvaHRtbC94ZW4tZGV2ZWwvMjAyNi0wMi9tc2cwMDc1MS5odG1sLg0KPj4gQ2FuIHRoZSB0d28g
b2YgeW91IG1heWJlIHdvcmsgdG9nZXRoZXIgdG8gaGF2ZSBhIHNpbmdsZSByZXN1bHRpbmcgYXBw
cm9hY2g/DQo+PiANCj4+IEphbg0KPiANCj4gVGhlcmUgaXMgZGVmaW5pdGVseSBhIGxvdCBpbiBj
b21tb24gYmV0d2VlbiB0aGUgdHdvIHNlcmllcywgYW5kIEnigJltIHRhbGtpbmcgd2l0aCBEZW5p
cy4NCj4gVGhlIE1ha2VmaWxlIGNsZWFudXBzIHRoYXQgYm90aCBvZiB1cyBoYXZlIGRvbmUgY2Fu
IHByb2JhYmx5IGdvIGluIGZpcnN0IGFzIHBhcnQgb2YgYSBzaGFyZWQgc2VyaWVzLA0KPiBJ4oCZ
bGwgdHJ5IHRvIHNldHVwIGEgY29tYmluZWQgYnJhbmNoIHRvIHNlZSBob3cgdGhhdOKAmWQgbG9v
ayBsaWtlLg0KPiANCg0KDQpJIGhhdmUgYSBjb21iaW5lZCBicmFuY2ggaGVyZToNCmh0dHBzOi8v
Z2l0bGFiLmNvbS94ZW4tcHJvamVjdC9wZW9wbGUvZWR3aW50b3Jvay94ZW4vLS9jb21wYXJlL3N0
YWdpbmcuLi5wcml2YXRlJTJGZWR2aW50JTJGbWlncmF0aW9uLXRlc3RzNT9mcm9tX3Byb2plY3Rf
aWQ9MjMzNjU3Mg0KDQpUT0RPOg0KKiByZWJhc2UgdGhlIHZQQ0kgTWFrZWZpbGUgcGF0Y2ggb24g
dG9wIG9mIHRoaXMgDQoqIHRoZXJlIGlzIHJldmlldyBmZWVkYmFjayBmb3IgdGhlIHByZXZpb3Vz
IHNlcmllcyBvbiB0aGUgbGlzdA0KDQpUb2RheSBpcyBteSBsYXN0IGFjdHVhbCB3b3JraW5nIGRh
eSBhdCBDaXRyaXgsIGFuZCBsaWtlbHkgbmV4dCB3ZWVrIG9ud2FyZCB0aGlzIGVtYWlsIGFkZHJl
c3Mgd2lsbCBzdG9wIHdvcmtpbmcgdG9vLg0KSSBpbnRlbmRlZCB0byBmaW5pc2ggbXkgcGVuZGlu
ZyBwYXRjaCBzZXJpZXMsIHVuZm9ydHVuYXRlbHkgSSByYW4gb3V0IG9mIHRpbWUgKEkgbWFuYWdl
ZCB0byBnZXQgdGhlIH43MCsgWEFQSStYZW4gYnJhbmNoZXMgZG93biB0byB+MTgsIGJ1dCBjeWNs
aW5nIHRocm91Z2ggZWFjaCBzZXJpZXMgdG9vayBtb3JlIHRpbWUgdGhhbiBhdmFpbGFibGUpLg0K
SSBob3BlIHRoYXQgc29tZW9uZSBlbHNlIChlLmcuIGZyb20gWGVuU2VydmVyKSB3aWxsIGJlIGFi
bGUgdG8gcGljayB1cCB3aGVyZSBJIGxlZnQgb2ZmIGFuZCBjb21wbGV0ZSB0aGVzZS4NCg0KSSBp
bnRlbmRlZCB0byBzZW5kIG91dCB0aGUgcmVzdCBvZiB0aGUgYnJhbmNoZXMgSSBoYXZlIGFzIHBh
dGNoZXMsIGJ1dCBnaXQgc2VuZC1lbWFpbCBvciB0aGUgaW50ZXJuYWwgU01UUCBzZXJ2ZXIgc3Rv
cHBlZCB3b3JraW5nLg0KDQpIZXJlIGFyZSBzb21lIGdpdCByZXBvc2l0b3JpZXMgaW5zdGVhZDoN
CiogdGhpcyBzZXJpZXM6IGh0dHBzOi8vZ2l0bGFiLmNvbS94ZW4tcHJvamVjdC9wZW9wbGUvZWR3
aW50b3Jvay94ZW4vLS9jb21wYXJlL3N0YWdpbmcuLi5wcml2YXRlJTJGZWR2aW50JTJGbWlncmF0
aW9uLXRlc3RzNT9mcm9tX3Byb2plY3RfaWQ9MjMzNjU3Mg0KDQoqIHRoZSBtaWdyYXRpb24gZm9y
ZWlnbiBjb3B5IG9wdGltaXphdGlvbnMgYXMgYSBQcm9vZiBvZiBDb25jZXB0ICh+Mi41eCBmYXN0
ZXIgbG9jYWxob3N0IG1pZ3JhdGlvbnMpLiBEb27igJl0IHVzZSB0aGVzZSBhcyBpcywgc2hvdWxk
IGJlIGRvbmUgcHJvcGVybHkgYnkgaW50cm9kdWNpbmcgYSBzZXBhcmF0ZSBmb3JlaWduIGNvcHkg
b3BlcmF0aW9uLCBpbnN0ZWFkIG9mIHBpZ2d5LWJhY2tpbmcgb24gdG9wIG9mIGdyYW50LWNvcHkg
YXMgSeKAmXZlIGRvbmUgaGVyZSAocGlnZ3ktYmFja2luZyB3YXMgdXNlZnVsIGZvciBtZWFzdXJp
bmcgdGhlIHBlcmZvcm1hbmNlIG9wdGltaXNhdGlvbiBwb3RlbnRpYWwsIHNpbmNlIGEgbG90IG9m
IHRoZSBnbHVlIGNvZGUgYmV0d2VlbiBoeXBlcnZpc29yIGFuZCB1c2VyIHNwYWNlIHdhcyBhbHJl
YWR5IHRoZXJlKTogaHR0cHM6Ly9naXRsYWIuY29tL3hlbi1wcm9qZWN0L3Blb3BsZS9lZHdpbnRv
cm9rL3hlbi8tL2NvbXBhcmUvc3RhZ2luZy4uLnByaXZhdGUlMkZlZHZpbnQlMkZ0ZXN0czI/ZnJv
bV9wcm9qZWN0X2lkPTIzMzY1NzINCg0KKiBjb21iaW5lZCBYZW5TZXJ2ZXIgcGF0Y2ggcXVldWUg
KyBQTVUgc3RhY2t0cmFjZSAoZmxhbWUgZ3JhcGgpICsgbWlncmF0aW9uIGZvcmVpZ24gY29weSBv
cHRpbWl6YXRpb25zIGh0dHBzOi8vZ2l0bGFiLmNvbS94ZW4tcHJvamVjdC9wZW9wbGUvZWR3aW50
b3Jvay94ZW4vLS9jb21wYXJlL3N0YWdpbmcuLi5ndWlsdCUyRnBhdGNoZXM/ZnJvbV9wcm9qZWN0
X2lkPTIzMzY1NzINCiogZm9yZWlnbiBjb3B5IFByb29mIG9mIENvbmNlcHQgZm9yIHRoZSBrZXJu
ZWwgKHRoaXMgaXMgYSBrZXJuZWwgdHJlZSBpbiBhIFhlbiBnaXQgcmVwbyk6ICBodHRwczovL2dp
dGxhYi5jb20veGVuLXByb2plY3QvcGVvcGxlL2Vkd2ludG9yb2sveGVuLy0vY29tbWl0L2VhMTMx
NTVkY2U4ZjJmMWNmZDFhMmM1NGEzZjgxNThiZThiZWVkNjINCg0KSeKAmW0gbm90IGxlYXZpbmcg
dGhlIFhlbiBlY29zeXN0ZW0gZW50aXJlbHksIGluIG15IG5ldyByb2xlIEnigJlsbCBiZSB3b3Jr
aW5nIG9uIHRoZSBVbmlrcmFmdCBhbmQgTWlyYWdlT1Mgc3VicHJvamVjdHMsIGluc3RlYWQgb2Yg
dGhlIFhBUEkgc3VicHJvamVjdCBvZiBYZW4NCihpdOKAmWxsIGxpa2VseSBtZWFuIGEgbG90IGxl
c3MgaW50ZXJhY3Rpb24gd2l0aCB0aGUgaHlwZXJ2aXNvciBpdHNlbGYpDQoNClRoYW5rIHlvdSBh
bGwgZm9yIGFsbCB5b3VyIHBhdGllbmNlIGFuZCBhZHZpY2Ugd2hlbiByZXZpZXdpbmcgcGF0Y2hl
cyENCg0KDQpCZXN0IHJlZ2FyZHMsDQrigJRFZHdpbg==


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 23:22:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 23:22:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269363.1558454 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iPf-0001m3-C3; Tue, 31 Mar 2026 23:22:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269363.1558454; Tue, 31 Mar 2026 23:22:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iPf-0001ln-8t; Tue, 31 Mar 2026 23:22:23 +0000
Received: by outflank-mailman (input) for mailman id 1269363;
 Tue, 31 Mar 2026 23:22:22 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w7iPd-0001Vd-So
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 23:22:21 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7iPd-000kEs-9K
 for xen-devel@lists.xenproject.org; Wed, 01 Apr 2026 01:22:21 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc56f4-e002-0a2a0a5209dd-0a2a4501db78-42
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:21 +0200
Received: from [103.168.172.149] (helo=fout-a6-smtp.messagingengine.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.0)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc572c-6fc9-0a2a45010019-67a8ac95cff9-3
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:21 +0200
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfout.phl.internal (Postfix) with ESMTP id 1C25BEC011C;
 Tue, 31 Mar 2026 19:22:20 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-04.internal (MEProxy); Tue, 31 Mar 2026 19:22:20 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 31 Mar 2026 19:22:18 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm2 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1774999340; x=1775085740; bh=moVi/O9dAO
	2xUmeqXlZa9N1EutJTW6W3wzH4QWIGYvo=; b=bNcgtnlr5wtupQ7KIr12yYWp4i
	EPQCu7VS4YSql3jQ/WCMOiFgrmCpSHwksXnmKA61VxrZ3qNVTwHdQl2nB5I/eRah
	u4TMx1TFvxysjTkE5JROSk1Sm/t54LGESgNpbB0P7jQC4qn3vOBm0p3E0sDL9PxU
	2vk47CKTaAU5unO88FS+26s9Mcbmr8kG0mYdEMzexIWcpR/9XBB7WHHVApsJxLSk
	521cO4wIsyIV/U+tHOTtngrQxs/5Ibe+QaIiqnFJOoIT7nFehzl8GEQL3B50p88V
	d6EQqln4k1MMb6t29L+Thzgas1rPixK6nXx8i4HEhdEn2M8PgGfXnjNbWDkA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1774999340; x=
	1775085740; bh=moVi/O9dAO2xUmeqXlZa9N1EutJTW6W3wzH4QWIGYvo=; b=o
	wO82t+rW8YJ+VvdcoqerSeWmL8jdq6RpJ1y0QYnxoTAR8N1+7ROFC7ifrKhY1/BG
	vjWc4Xkjqkfk0U5UsZH5lEqtiPCzlFi6CxRyiI/XXBoT/vt2MmILj3ufxHc6+xqN
	0y/hyUUl1ytlwMOuG05Pb5BlhXt592A6tJOOGmvIOoANSrKmyYP2mv5BSNy/60WJ
	zF44BhDyCYqzTZ8OTb5wXk3OWmtXcO40bl8dmXnhZn+qS0x6d24BFj7DypNQ9n/g
	srWQU/jnjhRMbIRxQrE0WE0+ge03G4sW+8Ehd9lrCkptl0kp5oUEATJjvI8Av0Jx
	lohsSfYGfM8Skp5p226KQ==
X-ME-Sender: <xms:K1fMae-pbA6W03AP7VJ8cy4vzh9f7mQmaHZw_wGoH1CoSN6eKr82kQ>
    <xme:K1fMaVn7ccpz8SH7TXW0F14sMsyCx_aiTZTLVswyxhz8hQtKNjA2KaTwp-yIhhlZr
    b87hz5kOZpDmANmw9A57Twe111HCGwgKLGR--QBT4Gsmus8QA>
X-ME-Received: <xmr:K1fMacWNeCGhY-aZhTYyINx3UMNWlbpfiaYoD15rl_e0oN3EnlOxBcey2A>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduheduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefglefggfeu
    ffegjeduheeigeetueegfeekjeetgffhvdeiffeiieejgfduieekgeenucffohhmrghinh
    epghhithhlrggsrdgtohhmpdhkvghrnhgvlhdrohhrghenucevlhhushhtvghrufhiiigv
    pedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisg
    hlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhm
    thhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhroh
    hjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhr
    ihigrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorh
    hgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpdhrtghpthht
    ohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
X-ME-Proxy: <xmx:LFfMaSGF8JyHfFDr8MtQV6EZTbAwlLtTY7T3mc-mpXi9HWDeH_sgNw>
    <xmx:LFfMaQcShndB2HlloGMTsaxwSEVU8tTldU1dAdOD-4hGzI8LBCtZwg>
    <xmx:LFfMabJQuAzr1uFk7kYOap_yz6nK1U3V47gAKMVCQeKIDFoikrQMwA>
    <xmx:LFfMadGPSxm1eQII923AmaQVrq9Ztu7FG6JOi-LGWE69qH1giK-G8g>
    <xmx:LFfMaQa08kDSasqQOtM1DMXE5WD3L7MiwbnexGy9UhpqbGxzBLSeyziR>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH test-artifacts v3 07/13] Support building arbitrary Linux branch/tag/commit
Date: Wed,  1 Apr 2026 01:21:57 +0200
Message-ID: <b616361a3464b221a342dab11cd21ca76454a957.1774999132.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
References: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1774999341-B7AFD185-4B539DD3/0/0
X-purgate-type: clean
X-purgate-size: 3875

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

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

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

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

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Changes in v3:
- pass kernel version via script arguments, not variables
---
 .gitlab-ci.yml         | 23 ++++++++++++++++++-----
 scripts/build-linux.sh | 21 ++++++++++++++++-----
 2 files changed, 34 insertions(+), 10 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 58f7571f5366..62b2a24e7faf 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,5 +1,9 @@
 variables:
   REGISTRY: registry.gitlab.com/xen-project/hardware/test-artifacts
+  LINUX_GIT_VERSION:
+    description: "branch/tag/commit for the linux-git jobs"
+  LINUX_GIT_URL:
+    description: "git url for the linux-git jobs"
 
 stages:
   - build
@@ -49,9 +53,13 @@ alpine-3.22-arm64-rootfs:
 
 linux-6.6.86-arm64:
   extends: .arm64-artifacts
-  script: ./scripts/build-linux.sh
-  variables:
-    LINUX_VERSION: 6.6.86
+  script: ./scripts/build-linux.sh "6.6.86"
+
+linux-git-arm64:
+  extends: .arm64-artifacts
+  script: ./scripts/build-linux.sh "$LINUX_GIT_VERSION" "$LINUX_GIT_URL"
+  rules:
+  - if: $LINUX_GIT_VERSION && $LINUX_GIT_URL
 
 #
 # x86_64 artifacts
@@ -79,9 +87,8 @@ debian-13-x86_64-rootfs:
 
 linux-6.6.56-x86_64:
   extends: .x86_64-artifacts
-  script: ./scripts/build-linux.sh
+  script: ./scripts/build-linux.sh "6.6.56"
   variables:
-    LINUX_VERSION: 6.6.56
     ARGO_SHA: "cf73819cacc945baca1a7421e5836d1bd481739b"
     ARGOEXEC_SHA: "d900429f6640acc6f68a3d3a4c945d7da60625d8"
 
@@ -89,6 +96,12 @@ linux-6.12.60-x86_64:
   extends: .x86_64-artifacts
   script: ./scripts/build-linux.sh "6.12.60"
 
+linux-git-x86_64:
+  extends: .x86_64-artifacts
+  script: ./scripts/build-linux.sh "$LINUX_GIT_VERSION" "$LINUX_GIT_URL"
+  rules:
+  - if: $LINUX_GIT_VERSION && $LINUX_GIT_URL
+
 microcode-x86:
   extends: .x86_64-artifacts
   script: ./scripts/x86-microcode.sh
diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
index cf0e744bd232..882bac2189a6 100755
--- a/scripts/build-linux.sh
+++ b/scripts/build-linux.sh
@@ -1,5 +1,8 @@
 #!/usr/bin/env bash
 
+LINUX_VERSION="$1"
+LINUX_GIT_URL="$2"
+
 if test -z "${LINUX_VERSION}"
 then
     >&2 echo "LINUX_VERSION must be set"; exit 1
@@ -12,11 +15,19 @@ COPYDIR="${WORKDIR}/binaries"
 UNAME=$(uname -m)
 
 # Build Linux
-MAJOR=${LINUX_VERSION%%.*}
-curl -fsSLO \
-    https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX_VERSION}".tar.xz
-tar xf linux-"${LINUX_VERSION}".tar.xz
-cd linux-"${LINUX_VERSION}"
+if [[ -n "${LINUX_GIT_URL}" ]]; then
+    mkdir linux
+    cd linux
+    git init
+    git fetch --depth=1 "${LINUX_GIT_URL}" "${LINUX_VERSION}"
+    git checkout FETCH_HEAD
+else
+    MAJOR=${LINUX_VERSION%%.*}
+    curl -fsSLO \
+        https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX_VERSION}".tar.xz
+    tar xf linux-"${LINUX_VERSION}".tar.xz
+    cd linux-"${LINUX_VERSION}"
+fi
 
 make defconfig
 ./scripts/config --enable BRIDGE
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 23:22:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 23:22:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269360.1558429 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iPb-000152-Hx; Tue, 31 Mar 2026 23:22:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269360.1558429; Tue, 31 Mar 2026 23:22:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iPb-00014p-CQ; Tue, 31 Mar 2026 23:22:19 +0000
Received: by outflank-mailman (input) for mailman id 1269360;
 Tue, 31 Mar 2026 23:22:18 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w7iPa-00010e-0l
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 23:22:18 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7iPZ-00DeiG-DR
 for xen-devel@lists.xenproject.org; Wed, 01 Apr 2026 01:22:17 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc570d-5cb7-0a2a0a5109dd-0a2a450ad570-30
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:17 +0200
Received: from [103.168.172.149] (helo=fout-a6-smtp.messagingengine.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc5728-1772-0a2a450a0019-67a8ac95941d-3
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:17 +0200
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
 by mailfout.phl.internal (Postfix) with ESMTP id 4B347EC01BF;
 Tue, 31 Mar 2026 19:22:16 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-03.internal (MEProxy); Tue, 31 Mar 2026 19:22:16 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 31 Mar 2026 19:22:15 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm2 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1774999336; x=1775085736; bh=mm4xQsaq/Y
	B9yzN/v7EQNg+j0D8ljj8xJdWuu9yUqjw=; b=CGxUKcWWk2ggvKYso6GGA2jZ3r
	teMrQvS3cp2A5W5lkI5DDUBV4Nsm1d7mUkD5k0UQ2/0sNooaYR72/ikJ0OoXvzoB
	DB2SrcU1fF80GUawo6DkBRCz0oubKqBmIOlleRyhK2+8s0PkBXTdg5TAmxOG4G5C
	MXyBR8dPHWfi6ktpd/az5zDJv2stOJqZrAkqXDwXSB4RE/R8TwDlxo2OV3IFbo90
	Fb8mOB46IrBGXUw2ymaR3BL+IXp04nZj0RvgtvD4tTCtAV7+XgLDlKsCZE6tvgZ7
	OLSrR9B9cOFg3SeFgqgDtE5UGwnoBEADPfBvX4+fZLTZH+4uAJ7JEjjBFSmQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1774999336; x=
	1775085736; bh=mm4xQsaq/YB9yzN/v7EQNg+j0D8ljj8xJdWuu9yUqjw=; b=e
	BIHDuyj1Pv6sDieCvVKdejSmKuIfTWjrY06vn246TkfSUUiJcRuXMxyCras338JO
	rmsjsmSlQiWjIsXwvAnkTWrY/bOacEuKPpG9RxRR9YxGVjcXICdXS3PAqrUja5Me
	KM6f68bqR/aKvMMwcWoJvUGy8zib7cFFoWd2ECnXqDHxqxWXFiL1PFFUKP4ZO3Va
	2fdKXFCZYYrYai2f+lH32ZFdBRlDvjRE3QlQ2nPcKMrkBhu3o29Qhxqo1j2PZiq1
	n5EhwkizWlKf7KPQQVTLJ9Hh4RmhK9A58TGSZm5lr66IQjwcCFGw10ShvUw+tMns
	xEwTaZzlf1SV3c8Q5AjvA==
X-ME-Sender: <xms:KFfMaeQQ9tbIUFQopcGEilkBcbGwh8ee7qNAT7uSi5fFZr5jhUMhpQ>
    <xme:KFfMaarvTv_9RPvQzS2K_3bJgemjQqc0zDtKRbrOvIll42XQcDVJxNqugB2Q240A-
    Unj8gPptYiKyDp0hrnlr9V6Emn3HH8v0FVs8b7X28NAYjX3jA>
X-ME-Received: <xmr:KFfMaUJauZ9hsW-PCsk4D4ISKg-cV8Oyst2sJBcDYWM2bHisXw16RRhbRw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduhedtucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfe
    estghithhrihigrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhn
    vghlrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpd
    hrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdr
    tghomh
X-ME-Proxy: <xmx:KFfMaVrke3-f5rK9v46B0xo-24NEg2AJTEMT_xnORYNAVwFAUJ33Gg>
    <xmx:KFfMaUzT9loB7Rtl49LicU0kv1uGpGozrckYONhaRCOC-IywNxa5GQ>
    <xmx:KFfMaROZ-jJLEjzaYbEUWLcmMftt4skHCF14KFHxNPqWcI9OyZT9Dw>
    <xmx:KFfMaR6H98c4TMgVGlBhcze1DmRKApeQH6LEkXyjqB-9_-pFhq_j2w>
    <xmx:KFfMaUceUjmAhbmKVvSmqOS2ht_tn5c1Li2Q2qTz3nzgtp65X_eMrJRY>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH test-artifacts v3 04/13] Add linux-6.12.79-x86_64
Date: Wed,  1 Apr 2026 01:21:54 +0200
Message-ID: <b53df707293f8907f5bb28a6d7380c28236b2637.1774999132.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
References: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1774999337-52A93900-3B9C9A5C/0/0
X-purgate-type: clean
X-purgate-size: 1016

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

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

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b23040505bf5..58f7571f5366 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -85,6 +85,10 @@ linux-6.6.56-x86_64:
     ARGO_SHA: "cf73819cacc945baca1a7421e5836d1bd481739b"
     ARGOEXEC_SHA: "d900429f6640acc6f68a3d3a4c945d7da60625d8"
 
+linux-6.12.60-x86_64:
+  extends: .x86_64-artifacts
+  script: ./scripts/build-linux.sh "6.12.60"
+
 microcode-x86:
   extends: .x86_64-artifacts
   script: ./scripts/x86-microcode.sh
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 23:22:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 23:22:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269361.1558437 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iPc-0001Ig-OX; Tue, 31 Mar 2026 23:22:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269361.1558437; Tue, 31 Mar 2026 23:22: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 1w7iPc-0001IT-KC; Tue, 31 Mar 2026 23:22:20 +0000
Received: by outflank-mailman (input) for mailman id 1269361;
 Tue, 31 Mar 2026 23:22:19 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w7iPb-00014k-DA
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 23:22:19 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7iPa-00DeiG-Q1
 for xen-devel@lists.xenproject.org; Wed, 01 Apr 2026 01:22:18 +0200
Received: from [10.42.69.10] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc570d-5cb7-0a2a0a5109dd-0a2a450ad570-32
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:18 +0200
Received: from [103.168.172.153] (helo=fhigh-a2-smtp.messagingengine.com)
 by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc5729-1772-0a2a450a0019-67a8ac99bca9-3
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:18 +0200
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 81309140008F;
 Tue, 31 Mar 2026 19:22:17 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-03.internal (MEProxy); Tue, 31 Mar 2026 19:22:17 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 31 Mar 2026 19:22:16 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm2 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1774999337; x=1775085737; bh=GItMxhqnAd
	/SJN1c6tnGv9+Vx9NKPGtRzfXhVmXexUw=; b=OEAsjwmoTOKSUnFzCKqVrWUa5K
	L4paYEttfj1VN/vX16b1LbIGAimJP+Z+hsTDZnioieExEQb/lqaeEH7Areje9DvM
	H3c/dR2CsX4aa6xBZCuJf6Gg2S4SVOJjML2K9PzYYZx6FH1In358mbk5pb00KP8R
	+jDD1YD4Q0wI+DjxYyFNbve6k65mSpsKQYehR3UZSSUs/uIyLpJSCvqIhk/Knfve
	ohrC2JjyvtSHNZXzZ4EVCyNlHRnMhsglYiKI2BF8CfMRPBYcDyE1NQ4RKKADo9Ol
	5fmpS2D5uchELI/GCLptXkZVkHSb6PUcjSz9q10XtOH5YKp4Q3NUOQQa6wmA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1774999337; x=
	1775085737; bh=GItMxhqnAd/SJN1c6tnGv9+Vx9NKPGtRzfXhVmXexUw=; b=Y
	58+/r+ThrbQQdZLT3HYR43BM4RACEkfFktA+EvZVs3JIrUBP6tk+wz4jgdbWAgpA
	ZajeDLsKLfUvfN37qVfZjNc818j04GEYGzrRdwTCdetFtibosAgsC4Jb3C/LMikD
	RsqMj9PYu1GjlANbNBNu+Mo+nyUBrnPws3xDF3Q8N3mxTFv5Tk053I/7vL6+zZ2D
	BNZpvNS5JB3FEZ4fV249rkR1/1GwwTaXe2FLMNDol8EN9zUKRV/KvPWcBFDx1zj0
	6v2mYRIT6l4Y4HnYBKS8fJhKDuucS8uODtF8PS8EAGjMP3DBx3kS2zNKwPhoaT1o
	qMizrZPeFfpfyMy7ufKGw==
X-ME-Sender: <xms:KVfMaevnOZ3P8abrDusjWX5kSA2msII0XTT_-RM0AIT3DPZdAw7GUQ>
    <xme:KVfMaaXH1amPkg6x_mhc1SVldeUvsMdhzYCcBbtIha3OHikuQuxYR8zir_ihM-KKA
    _vi-AHoxs_NtB_GwZ8bXp3pnAWvu13x6kbjKRCwiommuAFq4w>
X-ME-Received: <xmr:KVfMaSHSkiYLe2Fe-CpBirjcTy2Xc734CK-SgPPhqDTEy3mQFVRa9cA9Nw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduheduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeffiedtgeev
    ffetledvgefhhfevgffhfeekleehueejjeegvddvgfffjeeutddvleenucffohhmrghinh
    epkhgvrhhnvghlrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehm
    rghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsg
    drtghomhdpnhgspghrtghpthhtohephedpmhhouggvpehsmhhtphhouhhtpdhrtghpthht
    ohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtg
    hpthhtoheprghnughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphht
    thhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrghdprhgtphhtthhopehroh
    hgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphhtthhopehmrghrmhgrrhgvkhes
    ihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:KVfMaU1IWi9PExSLXosSA77Uvu7O2jKUEayUX4fW9imyfmS3E1R5yA>
    <xmx:KVfMacOzd-iqHSmCYMQgqNCPCLNcUOqLuOOWP0hlahA_jkKgG8rqmA>
    <xmx:KVfMab4VOVzPui5GYimfrsinKp0GyzhaMDdES-KwKA2TpH5dQu3zHg>
    <xmx:KVfMae09OLPkvXoWz3UyK2AdTj_831GyslDrTSU6F-1z9d5aTY96Uw>
    <xmx:KVfMaZL_2-qQjDcYO88s0QmM93sTKsrU2SGP1y7CnMCUM2HpzUXSogAt>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH test-artifacts v3 05/13] Enable CONFIG_USB_RTL8152 in kernel for hw12 runner
Date: Wed,  1 Apr 2026 01:21:55 +0200
Message-ID: <dbb413df1fabb760de2f67ed9f5c55ab38061cf9.1774999132.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
References: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-4011c0/1774999338-53096900-5CD973C8/0/0
X-purgate-type: clean
X-purgate-size: 818

It uses this USB network interface.

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

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


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 23:22:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 23:22:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269358.1558409 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iPY-0000ed-2b; Tue, 31 Mar 2026 23:22:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269358.1558409; Tue, 31 Mar 2026 23:22:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iPX-0000eW-Vo; Tue, 31 Mar 2026 23:22:15 +0000
Received: by outflank-mailman (input) for mailman id 1269358;
 Tue, 31 Mar 2026 23:22:14 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w7iPW-0000eK-60
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 23:22:14 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7iPV-00DeiG-2X
 for xen-devel@lists.xenproject.org; Wed, 01 Apr 2026 01:22:13 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc56a9-5cb7-0a2a0a5109dd-0a2a4506ceea-44
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:12 +0200
Received: from [103.168.172.149] (helo=fout-a6-smtp.messagingengine.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc5723-3034-0a2a45060019-67a8ac959fa9-3
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:12 +0200
Received: from phl-compute-11.internal (phl-compute-11.internal [10.202.2.51])
 by mailfout.phl.internal (Postfix) with ESMTP id 14DD5EC00F3;
 Tue, 31 Mar 2026 19:22:11 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-11.internal (MEProxy); Tue, 31 Mar 2026 19:22:11 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 31 Mar 2026 19:22:09 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:Message-ID:MIME-Version:Subject:To"; dkim=pass header.s=fm2 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:Message-ID:MIME-Version:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:message-id:mime-version:reply-to:subject:subject:to:to; s=fm1;
	 t=1774999331; x=1775085731; bh=G6lsEjwyugcZUkpmoiVDyMH0uoqmoUZ+
	BpamXOVSW2I=; b=UCF9A3LEmLlFNaDLPOYnnR1UiNKUHGvoukNWhtO6HtlJFkU6
	Im1jLhrqVs5IQ6fBE1pda3meFzRkrTK+zSL/P/XOssS7q7bPMgTabzQXwP7HkxME
	Mv+pDICTNLuPDtNYJ11b9KvQ/VxgNSCZClxK1FIE2ExIi2uHJlxcionf6ipcXYu7
	Jv2IxQOhSLcZuUS1d5Gs76sA8063L4CQP5eD/+E/llIRveKovXXndu2dq8RI45wo
	wv7zpI08i6DwuEei1P2F1HQpaoQOVfBR9IbQ4/6xni4+lrFKohQ2S9VcOG4POXSX
	3gONkbNRMuD8QYjc+6fSoQFnYqp6PYo0ggpQ/A==
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=
	fm2; t=1774999331; x=1775085731; bh=G6lsEjwyugcZUkpmoiVDyMH0uoqm
	oUZ+BpamXOVSW2I=; b=KrIaWwaxczZce96uLtEjbwErPEnw4f3Cw3NFgLZc3tZy
	eSNebpuT7k8I0ERISs5N8KeSF2QHvyQdO7NXkumh1x7p97LYbsc8ilLS+jNUJtJ2
	TQ7yqUJ+Ssqm8e5zf1jBXJxGEmgUIfejRQMJuCfec3Ovrz1BaVamHu7DJklDLAbj
	wjAEaVFpRTLB2fvcUhpTwg0aHyW9yGHlErwSSmaXB2OfMnpwRhwTu+zTUwE63SeO
	fNBe2HrhA0M5XGEkJF0qP2pYwtzASoA+J3Jm5EXtz507cjm6sjFz6iEHaDlJ0N7e
	CdJB7p3dqHc5MAszlszfQR/fDS2aJx7aAPVgoPIqqA==
X-ME-Sender: <xms:IlfMaRv-QGO8ToV9xwC6xjeL6MsKGL8pCuXX1Hl0UL11NOgJMsDXSQ>
    <xme:IlfMaRVaCW0jXUCez2LHykUnOEXXcN-oro-WTkFQJUljCfesD6usBmWr4_FQC_QVU
    uME-59gFAIMjlksWXQBsjN5ILGPkmLJ-nwfIp0NMskNXyTowg>
X-ME-Received: <xmr:IlfMadHLWLgo6peqQaL0jipo_6QSWD4LW_00VvCiUIMTJ-5OgweQj8WiBA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduheduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucforghr
    tgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhishhisg
    hlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeejueefhfelieek
    geeftdfgieeugefhudetjeethfefveehffejhfeigefgjeekleenucffohhmrghinhepgh
    hithhlrggsrdgtohhmnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghi
    lhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtg
    homhdpnhgspghrtghpthhtohephedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohep
    gigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpth
    htoheprghnughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthho
    pehsshhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrghdprhgtphhtthhopehrohhgvg
    hrrdhprghusegtihhtrhhigidrtghomhdprhgtphhtthhopehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:IlfMaT24Oe3tQBG6pXJZrb1PBqbuD6x-3VY_UDM7hQqnrh5Sqj7MOA>
    <xmx:IlfMafP8a9BQyQmSn6_H-TgCac03Ro7AFDUy_xCMfokB_L-U5iaZLA>
    <xmx:IlfMaS5fPbH4PJ6BhrlCzh06P8qouZG1dCGUmLgVB3Y-JbYr_4PuKw>
    <xmx:IlfMaZ0iRpNHhmGN_mNrnF0vmI_3Yrs9unQd0JqU-sr30wpzN4uzxQ>
    <xmx:I1fMaQI73VtlB0_uYCS8d3tsi3E_m_ZyeM5lkI5iViIeZcq4TqVbClk6>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH test-artifacts v3 00/13] Changes for several CI improvements
Date: Wed,  1 Apr 2026 01:21:50 +0200
Message-ID: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1774999332-829971C2-1C4E94A0/0/0
X-purgate-type: clean
X-purgate-size: 2100

- Alpine update
- Debian trixie
- test arbitrary linux branch
- Linux stubdom

Technically, the last patch isn't strictly required, but it eases debugging.

In v3 I reordered patches a bit, to move Linux tests earlier.

Example pipeline: https://gitlab.com/xen-project/people/marmarek/test-artifacts/-/pipelines/2422090153

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

 .gitlab-ci.yml                             | 72 +++++++++++++++--
 containerize                               |  4 +-
 images/alpine/3.18-arm64-build.dockerfile  |  1 +-
 images/alpine/3.22-arm64-base.dockerfile   |  6 +-
 images/alpine/3.22-arm64-build.dockerfile  | 31 +++++++-
 images/alpine/3.22-x86_64-base.dockerfile  |  6 +-
 images/alpine/3.22-x86_64-build.dockerfile | 43 ++++++++++-
 images/debian/13-x86_64-base.dockerfile    |  4 +-
 scripts/alpine-rootfs.sh                   | 25 ++++++-
 scripts/build-linux.sh                     | 24 ++++--
 scripts/debian-rootfs.sh                   | 96 +++++++++++++++++++++++-
 11 files changed, 300 insertions(+), 12 deletions(-)
 create mode 100644 images/alpine/3.22-arm64-base.dockerfile
 create mode 100644 images/alpine/3.22-arm64-build.dockerfile
 create mode 100644 images/alpine/3.22-x86_64-base.dockerfile
 create mode 100644 images/alpine/3.22-x86_64-build.dockerfile
 create mode 100644 images/debian/13-x86_64-base.dockerfile
 create mode 100755 scripts/debian-rootfs.sh

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


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 23:22:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 23:22:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269362.1558446 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iPe-0001XF-5M; Tue, 31 Mar 2026 23:22:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269362.1558446; Tue, 31 Mar 2026 23:22: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 1w7iPe-0001X4-0G; Tue, 31 Mar 2026 23:22:22 +0000
Received: by outflank-mailman (input) for mailman id 1269362;
 Tue, 31 Mar 2026 23:22:20 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w7iPc-0001HH-Jz
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 23:22:20 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7iPc-000kEs-0S
 for xen-devel@lists.xenproject.org; Wed, 01 Apr 2026 01:22:20 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc56f4-e002-0a2a0a5209dd-0a2a4501db78-40
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:19 +0200
Received: from [103.168.172.149] (helo=fout-a6-smtp.messagingengine.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.0)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc572a-6fc9-0a2a45010019-67a8ac95bb2b-3
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:19 +0200
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfout.phl.internal (Postfix) with ESMTP id CFD43EC00F3;
 Tue, 31 Mar 2026 19:22:18 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-02.internal (MEProxy); Tue, 31 Mar 2026 19:22:18 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 31 Mar 2026 19:22:17 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm2 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1774999338; x=1775085738; bh=Iur8dqEwLB
	3gQVTSs5uuTrVNFXqKE6PkAoIahlipWVk=; b=MCaXuT3JE+a0+xnvEPjt02GJks
	k58KMdbnybHhCCE08uNCDREzE9cA2zzUB0cZ7kOjMRnHbgZhODis9fuQ29kWeU8w
	euuMrMOrSaxVmVRDEIdy0ffQWqlXT+CpeB7cridq5QT17UiLflJlomdNVfhPMB7q
	Owwo/BO1wjbx724TjThqeDFnxl7GCclcrJp6gzL+R1K7HI5oyX0vdYJDAXmu19jM
	Pq2UKS4CsUIw6rWTNWMhFe4ZFkJLTa5S85M/Qi/rAzJyl0lJocqBK3Co5j0in+KK
	OCRxFd8AGvm0xh/uRFlRl72OctET52CiZSV6SXylbXPFeSNmEJCC7bJ1yfrw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1774999338; x=
	1775085738; bh=Iur8dqEwLB3gQVTSs5uuTrVNFXqKE6PkAoIahlipWVk=; b=a
	sxJ1mo5zGRsd1zx0AjSjPou7HUJLjhlA83Z5oLPzLQJ/HJhxbrjHYgaZGcBi/C3E
	fIs5GU7riLquP0oGSKgSBqThQDX5O97/CNUW+/v6Vtz3/wuXC3FZPaD88E53M2K6
	ygJr7T8oXc5elChYeVH2kpPzCm3X9mCMZwuqJlZB3+R7QI5BUNKrg54ZFkWMlIGh
	uh0A3bCOcRAUQMvmLCkFwqaRWztforhg7spxSxUdUtCUXCUpBI+5A5tsmsKU29i5
	2txLBf4X9mJuNqk0auDFMQDg+/PEXE1X54/xPkOHw7CaL3RwTMOocCJF8njrKGRi
	XKFV7gq9wQn+xL5wPFHSA==
X-ME-Sender: <xms:KlfMaYl9eV-bfg1vrhAQfs8mIGVyDODzmeoD3B7gFuoJ8bMgj_XphQ>
    <xme:KlfMaetv_HAinPj4S675_wDkuLCwca3BCe6vaDzruxDp-6ud32qfLtm5lHe34S7uI
    n3USzxC0gS_iqmCM1z2dolOCDjH0G6QMVFeh1HJdy9r4DeD2A>
X-ME-Received: <xmr:KlfMae9bv4FOkaPgvb8eNwiMbWNvNvdrbHDmLS60WET1_ZYAfi8xbEWxxQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduheduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfe
    estghithhrihigrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhn
    vghlrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpd
    hrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdr
    tghomh
X-ME-Proxy: <xmx:KlfMaQMJCLNt9aK8Mpf_k6AAkesjqxkCRHdJ8X2FoTBx6arJHwY9Xg>
    <xmx:KlfMaUFFXpBQA2f1SaKqgSOuGa2mXZEHFQnNOavD_00F_RGQSVz-0Q>
    <xmx:KlfMaWQ8RGS5yYfVzSQzlohZFAxZthHhLlkt5Am7qEa_jV-Nnh0ShQ>
    <xmx:KlfMaZvWuLlmmirC94hS4_mMXii-qMei_WaYQb0E9PEk-9v27nNegg>
    <xmx:KlfMaXilmBxO4FwL5zZ8H73e-E2MqpEx6LRdE0tCp6_kRHvSiF96lO_z>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH test-artifacts v3 06/13] Include git in the ARM64 build container too
Date: Wed,  1 Apr 2026 01:21:56 +0200
Message-ID: <09eed5bb65e603e9b0a614ef315635d406b519b2.1774999132.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
References: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1774999339-B76FF185-CB5B4063/0/0
X-purgate-type: clean
X-purgate-size: 771

It will be used for fetching some Linux versions.

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

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


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 23:22:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 23:22:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269364.1558464 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iPg-00021A-LD; Tue, 31 Mar 2026 23:22:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269364.1558464; Tue, 31 Mar 2026 23: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 1w7iPg-00020v-GN; Tue, 31 Mar 2026 23:22:24 +0000
Received: by outflank-mailman (input) for mailman id 1269364;
 Tue, 31 Mar 2026 23:22:23 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w7iPf-0001iC-3h
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 23:22:23 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7iPe-002Gy3-Gf
 for xen-devel@lists.xenproject.org; Wed, 01 Apr 2026 01:22:22 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc5720-bab6-0a2a0a5309dd-0a2a4503c6ca-14
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:22 +0200
Received: from [103.168.172.149] (helo=fout-a6-smtp.messagingengine.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc572d-1947-0a2a45030019-67a8ac9592a3-3
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:22 +0200
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfout.phl.internal (Postfix) with ESMTP id 4C1D0EC00F3;
 Tue, 31 Mar 2026 19:22:21 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Tue, 31 Mar 2026 19:22:21 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 31 Mar 2026 19:22:20 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm2 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1774999341; x=1775085741; bh=p7rWrahvk6
	JZ/tY0ShzzDvBBI7TO4pkrt9njRVboptQ=; b=VorOkEC4IanmZGgmFI/1AFMiTD
	ayKDMGhQbUcO6526SewO7x2JtuYw4IzRj3ybI/G3e0qxF2JzJrIOaeE83r3LDc1S
	RKBYTsMk4jrxxCX4mGjsF4NycDQ7LUgr+nMJk6qXG470pgF5PSPqGc0Kzo++NTph
	WYPv2+Z2oZOsnrdZszY6nv3gygOilI7bp3t9VXLPG0pWYPt0Zc6CNqaijNY+D2tg
	FhrpJiLLlt1lkgL0iWVcl81Pi0Z7sXCGcczRmPHApKBm/sM9kMgMx3/8q7vfKwxJ
	RGDXTP9Fhu+U1VlUGWjt7REKiuJuQ/NDAHHxa+J0YNqjupeO6LIvzXcFKYGg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1774999341; x=
	1775085741; bh=p7rWrahvk6JZ/tY0ShzzDvBBI7TO4pkrt9njRVboptQ=; b=s
	viz7HgxIQ6l9BUAYuEdT32CvUVDNj/9P8HNScTATOHqGgpNhI8jNcJbNAmiMq7r6
	/sd+L3fdkfZleMDMRn8pxMkPNcIkfLfaRrP3KOidQ/0zBgW7GcRGzwVetFhuYLes
	bqYdAn5il/PZXJ7ekYabe4DSsvbTUxV4WZL/8WWun9xWxLngKX3XTqN9/Oe36bxn
	6uHJyorRu3JOmMgJ0Gtw/d4Tv89EzaZBSKVzvasg20L+tywoS16A+mr8yw0+rP0b
	dhNeUsQNuN0qtCgUd0O2j7575cY2JL9b2VuXLgH6yPF2Xs+mfBGdH9O2SQtJuLP4
	Zs0fXoll7UWtzv5JVOscw==
X-ME-Sender: <xms:LVfMacUknPhx8khBvS9Fp5jkZJTq3VgbP0WhA-a4orea66Y2CEtJPQ>
    <xme:LVfMaXeMTfqskD836TkpdSb3O02QZUHXyQg2MYvo4STEGAnwT6Q5Kv7uB4dN8PBNt
    9LI8Za1ZUzBxvSaKhcP5o0cZJtToHoXYxQm9GtsGCMzSKL5vEA>
X-ME-Received: <xmr:LVfMaYtL_pHwXq1EZedCk8zpEYy5wBeAf8LwfwwRou3WkITYpeFm-GD5xQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduhedtucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedvnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfe
    estghithhrihigrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhn
    vghlrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpd
    hrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdr
    tghomh
X-ME-Proxy: <xmx:LVfMaW826lRuH2S5ywAeYQrxewyPhnCAgLHBHRDd-Nda_1wVWQ5nCg>
    <xmx:LVfMaT2kCjrxula4Yws11j09N_CnwVfftKmr6KH0wiFyls3Mh9APDA>
    <xmx:LVfMabAVT5jXA2dejw_HJZdZNLkcuW31OeJmUgjmowDAJCb7j9a6Lg>
    <xmx:LVfMafejodtxPrwtmgTGzftF91WPL76mdXxjHya1NIIXJYAC2rCHXA>
    <xmx:LVfMaUT9nM-iyi0KQkW8b0xDjNi5ourZoUmM_ReRlzQsa4GEBgxwT1lx>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH test-artifacts v3 08/13] Save Linux config to artifacts too
Date: Wed,  1 Apr 2026 01:21:58 +0200
Message-ID: <8a07a44041c152c46ee1d957b4f20027bbc5fa1f.1774999132.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
References: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1774999342-4A05C72C-90C85676/0/0
X-purgate-type: clean
X-purgate-size: 552

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

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


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 23:22:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 23:22:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269359.1558419 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iPZ-0000rY-9X; Tue, 31 Mar 2026 23:22:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269359.1558419; Tue, 31 Mar 2026 23: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 1w7iPZ-0000rR-5v; Tue, 31 Mar 2026 23:22:17 +0000
Received: by outflank-mailman (input) for mailman id 1269359;
 Tue, 31 Mar 2026 23:22:15 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w7iPX-0000eQ-MB
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 23:22:15 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7iPX-004XrY-2d
 for xen-devel@lists.xenproject.org; Wed, 01 Apr 2026 01:22:15 +0200
Received: from [10.42.69.4] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc56ff-e002-0a2a0a5209dd-0a2a4504bf0e-16
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:15 +0200
Received: from [103.168.172.149] (helo=fout-a6-smtp.messagingengine.com)
 by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc5726-c823-0a2a45040019-67a8ac95dd09-3
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:14 +0200
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfout.phl.internal (Postfix) with ESMTP id CDC14EC00F3;
 Tue, 31 Mar 2026 19:22:13 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Tue, 31 Mar 2026 19:22:13 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 31 Mar 2026 19:22:12 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm2 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1774999333; x=1775085733; bh=nsv/7E0U9b
	OyDuG5hXwgvJ0RpjOK4cIyUqYK0KrSRi4=; b=r2OMGfGmIS/GLtoMCuaDaOdRyk
	OXMyh+X/suwA2vLTRKiblC+SOIDXfCUCedl2VwoSCOE0QnGqESV6Uzq5xObI3KFf
	gFiG0q99xMJ9zz9IXAfD85XR8/wsAKfKZ4Rr+1zUTDyTcuO3+zIxxLuK1JfZoTlu
	EKxpz7FQmiPJ+TXqgMHZOP6tIbEg/8IEOjuY17GwMAHDEBgCYL4Oq478eClY9P83
	dge8ON9u6jmyRxlVC/DN2pL9DzO8U0ALQOqP9MFsShogylIn9z5ZbRd8sayCZQmE
	D959WJh5gIr/CBInKQn54D3CgZIwUqeQ7JuXFYtaw3UQKhbwcCsOqIJxKaRg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1774999333; x=
	1775085733; bh=nsv/7E0U9bOyDuG5hXwgvJ0RpjOK4cIyUqYK0KrSRi4=; b=j
	FhuUlLa7Kmdm7d6K3q0e1ulVLB1gNyIhUF9xF6HwIK5kpHaS8rwifk/RKmQCgela
	TUTHNSkyj56CeNmHZ5xEGrI3ONFD1WY/uJ4OeB4LyCqX2Fbo1q0FI0vfnqGoIJvq
	ifyq9G0yjoP64kUBHVcMbghS0DLWcR20zkDsF8fkBS6+3E1moHMNlh8pX2wJMk7v
	7VLnmZSLZGATaRJs9IMTK+VAndHPzmLOZIiaskcpP1704+mzrDH3BRm0H/vDs72x
	DhikjgiLaPiyNghmQ/LIVnEMdyfgmU0wPoWnCEyOvJyFNEXpDETe95pf8ePnoC2g
	BCf6qbV3URtzGUzNCjZFQ==
X-ME-Sender: <xms:JVfMaZUsfAM65UcJVkUygwXoYjq8_AzvMqx_3c56PY_9Zxwmaw0Idw>
    <xme:JVfMaQfAdXY5CdShA-ksTMBv14osH-AWQ1gFEVXgEoU85xRiFVE_QEzPQtUJGfcl4
    tEMPttRALhswjhoybj2laHNVzhnEuQM9-k37dXHd2uyPsiDvQ>
X-ME-Received: <xmr:JVfMadufL_bcXh76izfRq8_fgOvLDFFl8FWHs9VCgSJylDNFek0mTUU72A>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduhedtucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfe
    estghithhrihigrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhn
    vghlrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpd
    hrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdr
    tghomh
X-ME-Proxy: <xmx:JVfMaX_8ammrFkCxbaApY6RP9Z7jmO-RSSmAGGXXszvrEUzbdm7aVg>
    <xmx:JVfMaQ1ZkR1haxkhTiKPwPhGk3879bnfq0P1m7w4RDf3jRUGzC8sbw>
    <xmx:JVfMaUDy3I58NYIA4uMHIw384u-YKK981-tD0bjkyOxKg6C7DRQ0Qw>
    <xmx:JVfMaUft8X61wN-zgkpAulJPyCXkixVZyyBw-tKLNHBusfl2NRE8dA>
    <xmx:JVfMadQnPT95o1F5p2efDIMY-iAfsqePUhQVy9uFPDrmhG-pX0IByDdE>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH test-artifacts v3 02/13] Switch Linux builds to use Alpine 3.22 container
Date: Wed,  1 Apr 2026 01:21:52 +0200
Message-ID: <652a2f219b370af5364d8ef29264acc33a89f676.1774999132.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
References: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ebf023/1774999335-B249D9D1-65F73456/0/0
X-purgate-type: clean
X-purgate-size: 694

Slowly phase out 3.18 one.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 .gitlab-ci.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 17d25ce0f921..36622c723ce9 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -21,14 +21,14 @@ stages:
   tags:
     - arm64
   variables:
-    CONTAINER: alpine:3.18-arm64-build
+    CONTAINER: alpine:3.22-arm64-build
 
 .x86_64-artifacts:
   extends: .artifacts
   tags:
     - x86_64
   variables:
-    CONTAINER: alpine:3.18-x86_64-build
+    CONTAINER: alpine:3.22-x86_64-build
 
 #
 # ARM64 artifacts
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 23:22:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 23:22:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269365.1558469 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iPg-00024n-VX; Tue, 31 Mar 2026 23:22:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269365.1558469; Tue, 31 Mar 2026 23: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 1w7iPg-00023p-Pn; Tue, 31 Mar 2026 23:22:24 +0000
Received: by outflank-mailman (input) for mailman id 1269365;
 Tue, 31 Mar 2026 23:22:24 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w7iPg-0001xZ-CD
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 23:22:24 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7iPf-002Gy3-P6
 for xen-devel@lists.xenproject.org; Wed, 01 Apr 2026 01:22:23 +0200
Received: from [10.42.69.3] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc5720-bab6-0a2a0a5309dd-0a2a4503c6ca-16
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:23 +0200
Received: from [103.168.172.149] (helo=fout-a6-smtp.messagingengine.com)
 by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc572e-1947-0a2a45030019-67a8ac959953-3
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:23 +0200
Received: from phl-compute-12.internal (phl-compute-12.internal [10.202.2.52])
 by mailfout.phl.internal (Postfix) with ESMTP id 91EAAEC010C;
 Tue, 31 Mar 2026 19:22:22 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Tue, 31 Mar 2026 19:22:22 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 31 Mar 2026 19:22:21 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm2 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1774999342; x=1775085742; bh=9L6rTUy+Nw
	4XaYZL170+8zqCCwzBH/+BufLefbV4lFU=; b=Nql70OX+fDNsiGUKvq/VHb1QqW
	Rpr2KZ5hnIzG5Qc7XwvLyr9qmxDg7virnj9UXBqj/at0MG9oTf3ZsgmDDYbm70Bl
	5FtBaFlhFssLkNjoniBY0ywYTmaJuVny5N4TD5LRgIxBEKkL7RpLjirjvjLfWSAj
	23gWSNLwb5M5KF7On7pBMl5DOK96Huqu2J5RmJimgGgKWhhlJirmshLr3ADdO7yK
	Qte5lKup3kEEsDjuA5j1e5hey4S72vI8IC3mJJFgx8S/N7EmYHQeb7JDfiUMsyEC
	Wjo7cZD4+P4JIqB2jwXqYiAXTlVSggNsrnfvsLsRGV/202ahI+avlKo0Ugzg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1774999342; x=
	1775085742; bh=9L6rTUy+Nw4XaYZL170+8zqCCwzBH/+BufLefbV4lFU=; b=K
	IuQuquD2dUOjtXhPAFEy2X8u/83SSRUtKDnwiWdqpJTSuitJILaBkUKYgXHj0AHE
	qFX1e1MrhOWFdAVYt/9Lb1++/GCQY1DGRhjTPcjzcAAnxzuBfVjFsMugmKPtt1CT
	J6kGByCRpNDe5dBSNKy1tLVALYnaKrV/VQig6tN6Y1HGUJjEDsTcJPm6Pz631C2I
	xeD7DXuqLRn+H0U7cGA/+weNsVhTBvntLixKdhP9pVp/l1hpJci7yoCKrZ2nHsRn
	N221wqy/bO0FYNkMDhHiw57PDUlDkn2LWI0FNP/0PKz4rATBSDZ/BJcTrXcMNi5H
	sf0C+UtOpdgv01hKHJe1g==
X-ME-Sender: <xms:LlfMaWm2wwvQbMpqksT_KJ95KnwMk68M0SKsH5hPUdSflFXGWWt47Q>
    <xme:LlfMaUvnLyqQut_8QUf71E3K037OL1NVp0CjtTYyZ2g7Zc0WvYWYiaT3bgTERYZdZ
    H_fLcoCPZP27mcCCWRKuvBqxgyyAQX7nX7c-wyEHV0gIoB1Vg>
X-ME-Received: <xmr:LlfMac9vaeap-ulApArEr8IROwSIPre1OdbMLWCpgpt3aOFBw2GIqrY6eA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduheduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeffiedtgeev
    ffetledvgefhhfevgffhfeekleehueejjeegvddvgfffjeeutddvleenucffohhmrghinh
    epkhgvrhhnvghlrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehm
    rghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsg
    drtghomhdpnhgspghrtghpthhtohephedpmhhouggvpehsmhhtphhouhhtpdhrtghpthht
    ohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtg
    hpthhtoheprghnughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphht
    thhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrghdprhgtphhtthhopehroh
    hgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphhtthhopehmrghrmhgrrhgvkhes
    ihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:LlfMaWO_ze-zN0c0dSCDOnPSRCrXNg66SUqZ1nfdqqNphs5uJipLHg>
    <xmx:LlfMaSEs53Lt6QbpSCnUad2G5BQ6vRLKWSqQPC9WnKnPRCmNq8PP9g>
    <xmx:LlfMacTJe-5qgDlQfTgMoiypjpbUirCukkRIT-bWg9J0B6TgMRKaZg>
    <xmx:LlfMaXtI5BCOiLQN2P5TpePgS_L_on-uRHY-nK5Co8wbJI2p3RychQ>
    <xmx:LlfMadjGzSvxRX8alnp5cG2kWtC1vmObqOg7cGWz0C4W95V4pCqyJRkC>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH test-artifacts v3 09/13] Add trigger-test job, to run test on a Linux built from a branch/tag
Date: Wed,  1 Apr 2026 01:21:59 +0200
Message-ID: <9893108225500bb841a39918942bc9267e62b6af.1774999132.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
References: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-33051d/1774999343-EB68972C-8697D2F9/0/0
X-purgate-type: clean
X-purgate-size: 1984

When scheduling pipeline in test-artifacts repo, it can get also
TEST_TRIGGER_REPO and TEST_TRIGGER_BRANCH variables, to trigger relevant
pipeline to test just built artifacts.
Pass ARTIFACTS_REPO+ARTIFACTS_BRANCH to the child pipeline to ensure it
fetches artifacts from the right job.
For example, to build linux-next and test Xen staging on it, the
pipeline could be triggered with:

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

The triggered xen test pipeline will skip most build jobs.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 .gitlab-ci.yml | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

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


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 23:22:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 23:22:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269367.1558482 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iPj-0002a3-FF; Tue, 31 Mar 2026 23:22:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269367.1558482; Tue, 31 Mar 2026 23:22:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iPj-0002Zn-Bi; Tue, 31 Mar 2026 23:22:27 +0000
Received: by outflank-mailman (input) for mailman id 1269367;
 Tue, 31 Mar 2026 23:22:25 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w7iPh-0002Gl-K7
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 23:22:25 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7iPh-002Gy3-0o
 for xen-devel@lists.xenproject.org; Wed, 01 Apr 2026 01:22:25 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc56bd-bab6-0a2a0a5309dd-0a2a450ce832-44
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:25 +0200
Received: from [103.168.172.153] (helo=fhigh-a2-smtp.messagingengine.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc5730-f93d-0a2a450c0019-67a8ac998959-3
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:24 +0200
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfhigh.phl.internal (Postfix) with ESMTP id D0BDB140008F;
 Tue, 31 Mar 2026 19:22:23 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-04.internal (MEProxy); Tue, 31 Mar 2026 19:22:23 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 31 Mar 2026 19:22:22 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm2 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1774999343; x=1775085743; bh=AxGQ6gIZ8m
	qUXJBMK/ftMfEV7ibVs3ZFcaE/NllX22A=; b=f4ove0Ms4CuPRkggp4DakwRgPH
	CqSpLpd7jrJLxPyKX2TYMSHsVW1aDpdZ1LNPl4nzulnpKPj2epTJI8qQHXcqC3R+
	ZjLmVS+9O+Z9m6G7JolyxL1vkM7q2SUFj2V+ITWmcUhsOrP6y3opYVKVa5gszKyc
	Bbna8vWK+wmq0vJleX+QL8yg0j+xtbRGM9szOBnxguINuRloOE88GeoTQzBdsIpO
	kulmfcMRzXVTJZ/7WdzDQeIaD+woePqnOktakR/PIzH1eygLTEuR++tijT5W0BeE
	64FILf0lTwE72BzrbLzGKttG8doEdKz1Lqsq5jc7uYSDeenDAl1iy3ZsVmTA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1774999343; x=
	1775085743; bh=AxGQ6gIZ8mqUXJBMK/ftMfEV7ibVs3ZFcaE/NllX22A=; b=V
	UogsOTZR6vQ+YTXTold5pDgAQECQx4jqN4bM1YyjdDJ3Kd83VPs1GCNqMNqw2272
	Ps48j6wrAv/n+ZEQfi/O2En0N2aY6jo0MqUJd3ZE7DEOFnl/jjVDq3PcfR0IuhNd
	MunIz5kvPgK8pzy4tmaakiy7b1Y/yQoLKuFi1l8cZFhmC5/vhoqKs+4mSc/mjQnJ
	Ktl/RonDYGskDuHtovRn/ZcoHUkA8HHBahvf+8ybp3+cW100hu0bVvvkLWrl+xrt
	FdMRVfal2NdlRNmcI9Hd1cihVhnJyG+gc/vX8eVetk/T6AmbADuuscgutPUdqJD+
	8e8PTrn8yYIx93UoyxcDA==
X-ME-Sender: <xms:L1fMadeMknCxot9e8WmQ6mf8QfpBAhd5-p2V0njM4CY7Blp9ZfWyoA>
    <xme:L1fMaSEIUPwoNgjVX4WUzkKFL8ymFBaQ3U1CSaPH92UGvwDy6psSNTQ4DxthSSAgZ
    VG8ysrcylz6crIVNefglXNM0g99uZYN_5kk265Q8HJ8Mni_>
X-ME-Received: <xmr:L1fMae2u3xS-qEXuEmeZ_Xp63spDEj5JMu0cmQVaWTod8g5N9MHHmgWZbg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduheduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfe
    estghithhrihigrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhn
    vghlrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpd
    hrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdr
    tghomh
X-ME-Proxy: <xmx:L1fMaSmTgyiAXCKtfuhC9Ad0c7UCYVmtAZaH3qoDmUZ__4b6M3HyMQ>
    <xmx:L1fMaW87HuPUex68bm6qEhY7lRvt475LRnkUWoDTTrxar5uGkqqjRw>
    <xmx:L1fMafphle3yDEU19jo7W0Vsw64-pYGy02fY5tTMpAbrFrCJF6gS6A>
    <xmx:L1fMaXmbUtMdfopxz9DU_Iw2GX6obdLIOQUkVf8ZiBMQVmS90Lft3w>
    <xmx:L1fMaU6MHhTCHBVUIO1rSX-iRBfEJSByYgMZ9wkPEYSgcAYpgJWvA3Lx>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH test-artifacts v3 10/13] Add linux-stubdom dependencies
Date: Wed,  1 Apr 2026 01:22:00 +0200
Message-ID: <7b3cf5053a5e80aaab527db31447bfc95cef829b.1774999132.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
References: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1774999344-6CABD734-EC14B8AD/0/0
X-purgate-type: clean
X-purgate-size: 633

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

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


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 23:22:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 23:22:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269369.1558491 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iPk-0002pe-Pi; Tue, 31 Mar 2026 23:22:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269369.1558491; Tue, 31 Mar 2026 23: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 1w7iPk-0002pL-KX; Tue, 31 Mar 2026 23:22:28 +0000
Received: by outflank-mailman (input) for mailman id 1269369;
 Tue, 31 Mar 2026 23:22:26 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w7iPi-0002Xg-SQ
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 23:22:26 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7iPi-002Gy3-9E
 for xen-devel@lists.xenproject.org; Wed, 01 Apr 2026 01:22:26 +0200
Received: from [10.42.69.12] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc56bd-bab6-0a2a0a5309dd-0a2a450ce832-46
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:26 +0200
Received: from [103.168.172.149] (helo=fout-a6-smtp.messagingengine.com)
 by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc5731-f93d-0a2a450c0019-67a8ac95ccd9-3
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:26 +0200
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
 by mailfout.phl.internal (Postfix) with ESMTP id 14E55EC0103;
 Tue, 31 Mar 2026 19:22:25 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-03.internal (MEProxy); Tue, 31 Mar 2026 19:22:25 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 31 Mar 2026 19:22:23 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm2 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1774999345; x=1775085745; bh=XrCpwgjR2U
	u0xVLHgXM+ZJpYWbTG+sNx3Cc4mQAhwOQ=; b=f3qAKfujU9FCiDGJe/nE7sq3C8
	fzceOx/oz+V5P9fyGwn/KYEF/0NzY1eV9IWemwowcMcX3xudlhawJ6IhfAR2nRUJ
	DMpoToFbCIkb+gOYjMk2H+jQUL45iThwaRgcHYjlNKSZ/RXVQNWWpNpE9d/L1qv1
	w0ppHcBwn7iumdYHVD78LEEtuDKOmpknox4m9/A8wZ1Dzbu1qKTPr6SMiEM+GV6t
	77x5q8bVndU5LM2Zk6HVhkhVN4rVWqnOQT6DkDW25Lgu4AvthMWTpY7A3TgbV5Jy
	uZZIXxM93Cs701h8khzB+3xkmEkceQyeBIBJzms9myCCIfwBJ+nUxZboms8Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1774999345; x=
	1775085745; bh=XrCpwgjR2Uu0xVLHgXM+ZJpYWbTG+sNx3Cc4mQAhwOQ=; b=Z
	ar3rwERIKOvwplFIM2OfTCMZkQeApBZPkseiSPZvQeZh2fNW5E2xBDx4nppDrUDa
	qovVn5pu1A15OqmsTEXxiAzbiiosjq4bGCzgqyezWyfB+OAPuklNIwWaw9HDVXdr
	ZNpsVGNgef3/ZvnHWHWNU+SRkUfAlgjrpL5QwwJvkx6WOW6oLu5BM9J47IquRcqb
	UubO/uuh4UvfCYoEsIvjZQawasJRVPwH6xRFbmmsalemOf52dX/TwxVE0oz2Apks
	r1GB4s+BQdQtdzrUC1Lp7IflpdnF6OraZQ0Ag0LF8M0Jz7oF/81pEOqsBXuCQHbt
	o/p3zvuHayLLtewxgKn3A==
X-ME-Sender: <xms:MFfMacE8zRQBUOFJ0FJrzWN76G43g9R-dyQ7QFpqpkwT3bwGohb2EA>
    <xme:MFfMacMqEbuxLq4LppBjuB9AC6cA8z3G49s1atu-5QNtWJ_ESInP5AraslJO78a7y
    4tLQVe-U0mCR6dNI60aLrbVjpx2WUU60ookcf0JpNOqdVSzwUE>
X-ME-Received: <xmr:MFfMaef5kDtoTY7oBvDnxTHF1r4xNFDgwM4rRr9b_uZDs9hIr1z6vOnDJA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduheduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfe
    estghithhrihigrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhn
    vghlrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpd
    hrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdr
    tghomh
X-ME-Proxy: <xmx:MVfMaZsb1dVx3_c21eecyNFLIWc20MpMMYH1DPP9ymOPt6OvKMltBQ>
    <xmx:MVfMafm_g5RbUmWRmwJVSvYoPQNlTOAUaRLZPDeI9G3NwoXYy91xcg>
    <xmx:MVfMabzMGoasa0s3BL5e5DUcuS4CXKT_ix6N6SMv84RTp6M2_qg0mg>
    <xmx:MVfMaRNc40iMe1lsivdJw16iID4eOfnZcq_1KAdq1ZWVvTIDirU8sg>
    <xmx:MVfMabo7E7YE0Fv1z6CA5crvSZ0uJDbXHWTgFT12FkyDfVi0EDnW2Gx_>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH test-artifacts v3 11/13] Prepare grub for booting x86_64 HVM domU from a disk
Date: Wed,  1 Apr 2026 01:22:01 +0200
Message-ID: <5ca6115fd59f7a2de8dc732b28c1dd335735bb0c.1774999132.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
References: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d25034/1774999346-F76A7734-D33B688C/0/0
X-purgate-type: clean
X-purgate-size: 859

The stubdomain test will use it

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

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


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 23:22:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 23:22:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269371.1558495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iPl-0002uh-8E; Tue, 31 Mar 2026 23:22:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269371.1558495; Tue, 31 Mar 2026 23: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 1w7iPl-0002t8-1P; Tue, 31 Mar 2026 23:22:29 +0000
Received: by outflank-mailman (input) for mailman id 1269371;
 Tue, 31 Mar 2026 23:22:28 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w7iPk-0002gn-1j
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 23:22:28 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7iPj-00DeiG-Ep
 for xen-devel@lists.xenproject.org; Wed, 01 Apr 2026 01:22:27 +0200
Received: from [10.42.69.5] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc56f9-5cb7-0a2a0a5109dd-0a2a4505ce2e-22
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:27 +0200
Received: from [103.168.172.153] (helo=fhigh-a2-smtp.messagingengine.com)
 by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc5732-5aeb-0a2a45050019-67a8ac9983b9-3
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:27 +0200
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 45C5D14001EC;
 Tue, 31 Mar 2026 19:22:26 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Tue, 31 Mar 2026 19:22:26 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 31 Mar 2026 19:22:25 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm2 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1774999346; x=1775085746; bh=MvciWlizRc
	IDu7rh8S3OHYbb/rSLDBoIcJRZTzFEZcM=; b=N7EO6XEqaxZSKob/n4nQklN6EE
	1+fqEg+wExJTSA2ZEPOMxzrKbc8A0tMMIngUdfU6xZj61SWE5a6n0Xl8in/6h8KJ
	6krvmAbzEpw9kwAH+9XGC9NTnIhP8w/VqWVD4HczarVGKoIS1HKcM8BdE675l04E
	5SbLqvV224Nmpvl9eDRDg44uXS5ibh4TABcc/SC4LE2GiPOtRKOi662rWTaR8Y5K
	8M0IamN9UNRD+pbavWv/roCVI8wfl42HCHwnKu2/ZQ0Xj+9HpxN4vOiY06aknnY7
	AaHLEFNATHzeY0yl8TJAWVzdp+q7lV1cB2qMvxjI0dpnm/Xd1QpJV7Le/fmQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1774999346; x=
	1775085746; bh=MvciWlizRcIDu7rh8S3OHYbb/rSLDBoIcJRZTzFEZcM=; b=P
	hLtPcb4LwKxCqvJHCaHyHrSD8JOynPFQbjrbmDqmaftFwvmffNwbdv9b5aamE2ZJ
	Tp29IMHVovLW5+cFyq83eaGiFXgKPOoP30gDrWmgKGB6uR4LxDXBgqsn8dhLRGgr
	P0RAJ1Qx466DV+jIFD1lsN10G1/vK9S55KYddq1ajEtGKO25BhXETZ2WXgMK9V7g
	0xgTvOdXPNtnmgqy9av7WM6bCsNM60TjAh9yrQ5UC09yU0XM7z5urwhlb3BiAMBX
	xag7EDIM2pjWhEs3NxTuhI/sJmMSFM5v2Zz7rwhsuslvMJ38eytkBFapqQS/RjcG
	eelsgUdeoxd3s8RdUcUsw==
X-ME-Sender: <xms:MlfMaax-H0BN0GTvY1SoF63CgcQQ2hUmiuVwis3xddD_M7KoIpN7uw>
    <xme:MlfMadJd9KIj7pW5jM1WTb-1eDBwXwT5ecokn4MaCVFlXtO7pb648wiPLPIYN5HjN
    RQoFXcdRCNPI8BbktRoDvv1DkxCysrZ0lg0RV5IiG577g388g>
X-ME-Received: <xmr:MlfMaUoxAStAZKvs5lMamdBZcSJ2Pn9HVKfreNalEq_Eaj2E2cHd_niloA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduhedtucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpeefnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfe
    estghithhrihigrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhn
    vghlrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpd
    hrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdr
    tghomh
X-ME-Proxy: <xmx:MlfMacKio4OBsrbTpkw52d1LYRhqnzDxLJu0P26PHMWNtHqXr7i-hg>
    <xmx:MlfMaZRV1Ixkg2MBPJsSOm49KFku1cJaZ_30He601jw_MhQig_nceg>
    <xmx:MlfMabvBt_ujDNwopIu06IlS4BXPePLf8_gsFSSHOQFqJyk7nRbopA>
    <xmx:MlfMaabG6F0WhuRiGkau8bbbElmkDNfjU75g-GyiyrRQAdd82cIufw>
    <xmx:MlfMae9hlozZpTITH2rvOjB6nAW4CO92G4sW1fnJ6djXiH9JGJVJTtPe>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH test-artifacts v3 12/13] Prepare grub for booting x86_64 HVM domU from a cdrom
Date: Wed,  1 Apr 2026 01:22:02 +0200
Message-ID: <05ad5e9c97b3b34d7df60ea650533eef9d364e05.1774999132.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
References: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-c201ff/1774999347-81F5D488-7D07225B/0/0
X-purgate-type: clean
X-purgate-size: 835

The stubdomain test will use it.

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

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


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 23:22:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 23:22:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269375.1558506 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iPm-0003Hp-QZ; Tue, 31 Mar 2026 23:22:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269375.1558506; Tue, 31 Mar 2026 23: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 1w7iPm-0003H7-JT; Tue, 31 Mar 2026 23:22:30 +0000
Received: by outflank-mailman (input) for mailman id 1269375;
 Tue, 31 Mar 2026 23:22:29 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w7iPl-0002uy-C6
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 23:22:29 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7iPk-000kEs-Oy
 for xen-devel@lists.xenproject.org; Wed, 01 Apr 2026 01:22:28 +0200
Received: from [10.42.69.1] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc56f4-e002-0a2a0a5209dd-0a2a4501db78-44
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:28 +0200
Received: from [103.168.172.149] (helo=fout-a6-smtp.messagingengine.com)
 by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.0)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc5733-6fc9-0a2a45010019-67a8ac95ecdd-3
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:22:28 +0200
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfout.phl.internal (Postfix) with ESMTP id 89FFAEC010C;
 Tue, 31 Mar 2026 19:22:27 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Tue, 31 Mar 2026 19:22:27 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 31 Mar 2026 19:22:26 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm2 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1774999347; x=1775085747; bh=ymOoJ9LyMP
	HIVOBi/8iFDxN4dPUDO5h+alaJ+I+SkNY=; b=v+32U8umjDS/91kDQO2GcvKBVr
	1fDxHxc1PY4o+jMeVlTFMNOYaW2QwJebuWXV1eWzuRHw1OBJ3PRGDTSeAq/Tv8Sy
	GmlrjZ3Pa4REA0Gi0KLIRO60O0HJlJAJkD8PIDM58i4K+LfpB1y78IsW4PY8nu+E
	9sHUDI5p01ME4Ux1gzBxM2Rh3kXyhuB/xQsR8bVOGJW/xIbdVlqhpQRWUwAhbkW6
	jmssNPDXwni+wspco0FENeddllOdpExfFQetSG8MbOCThJP4AN9aApZvyjDi4GaK
	b7dZhiUdaNYZplLn+gujtycby9pV/hZtY9CFv5BSqF0F0T4KT6G/75DQie9g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1774999347; x=
	1775085747; bh=ymOoJ9LyMPHIVOBi/8iFDxN4dPUDO5h+alaJ+I+SkNY=; b=k
	bNCFiW5dsqF6saJpsrqtlB59N0XqWJjSrO21B1RDalAI91dAbuOfVMdfdxg1461v
	bfOYVGOq7TkWk/3riune2lPTJ2FRd/2xhSknq7OigG2qwJAvVkTBKdWrqA2Srv5o
	eWB71N7lqu9L3E9kT7V5j9SVhPn/aCfDsZNYhTuIy8Uv7FQ/5SHsA8bZ9t1qQfHA
	xNt2ukDtmsxzHgIP22ccd4A6LDDfZcHuIFqbOSA/qVUTWsTlAj2v3uKe4qrCaOlK
	XBoyTHxJTKfc3p/WBRaCLdrbInVzue9p1hk/YZu/dg9jzVlWDZAVurKKq4bQoBNu
	w8mC74vA5jDmE80RgdMMw==
X-ME-Sender: <xms:M1fMaY-OTDOK0qLJql-BX3nq2-Wocg6gdj2ZGZF3Dd3IEMV5tjgMUg>
    <xme:M1fMaXkTrigUsknMgqRa0xuIo9mBtDW7cxeu4i6gK9PmISyp3pZNtN2SF4tUjf-CY
    0tQK1Wkg_p3wvwDkdQmDRQS69nlnmmOnCM6hP8_VddYPgUnFg>
X-ME-Received: <xmr:M1fMaWWTOzzvAyeO1Qe7GIr57LSlXY_UZUufItxg_vmLhfphpYtVEquoZA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduhedtucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpeefnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfe
    estghithhrihigrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhn
    vghlrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpd
    hrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdr
    tghomh
X-ME-Proxy: <xmx:M1fMaUGqhyg6XgdH8NnFESqB_QAqcj15xCCUN5EN_8cF1JwKe_aUYQ>
    <xmx:M1fMaaegu6shWU8wiDobQm_x2g6uK3xEUSZ4lf5Y0od9WW1Ytzhr0g>
    <xmx:M1fMadLKKaF2GVMy0d2SSpYo30GSGE8XShGizIsQfsHdg8HGtFI40w>
    <xmx:M1fMaXFP1ZZXKJTAnutvFyjRW7Vl1UZ4qWczXic7DkgIz2HpBWEqvQ>
    <xmx:M1fMaSaqPjKaaIPDNYizrIinbYJjLJFM4FjnelT-Nkfm4WOUPERtfq1R>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH test-artifacts v3 13/13] Setup ssh access to test systems
Date: Wed,  1 Apr 2026 01:22:03 +0200
Message-ID: <c58b23b75f4a65ef7bb70b472466ad3586aab9ee.1774999132.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
References: <cover.bd2e5bd58e4b316c9c1042b1ca8db51b81fb7ea7.1774999132.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-d62444/1774999348-16CF2185-C18B3EC5/0/0
X-purgate-type: clean
X-purgate-size: 1418

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

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
Changes in v2:
- do not allow passwordless login
---
 scripts/alpine-rootfs.sh | 5 +++++
 1 file changed, 5 insertions(+)

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


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 23:25:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 23:25:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269475.1558518 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iSo-0006hU-Qp; Tue, 31 Mar 2026 23:25:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269475.1558518; Tue, 31 Mar 2026 23:25:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iSo-0006hN-O8; Tue, 31 Mar 2026 23:25:38 +0000
Received: by outflank-mailman (input) for mailman id 1269475;
 Tue, 31 Mar 2026 23:25:37 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w7iSn-0006h6-Ke
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 23:25:37 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7iSn-004YK0-1g
 for xen-devel@lists.xenproject.org; Wed, 01 Apr 2026 01:25:37 +0200
Received: from [10.42.69.6] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc57bf-bab6-0a2a0a5309dd-0a2a4506ab32-20
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:25:37 +0200
Received: from [103.168.172.153] (helo=fhigh-a2-smtp.messagingengine.com)
 by tlsNG-16d1c6.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc57f0-3034-0a2a45060019-67a8ac99bb41-3
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:25:36 +0200
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfhigh.phl.internal (Postfix) with ESMTP id D503B14001FA;
 Tue, 31 Mar 2026 19:25:35 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-04.internal (MEProxy); Tue, 31 Mar 2026 19:25:35 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 31 Mar 2026 19:25:34 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:Message-ID:MIME-Version:Subject:To"; dkim=pass header.s=fm2 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:Message-ID:MIME-Version:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:message-id:mime-version:reply-to:subject:subject:to:to; s=fm1;
	 t=1774999535; x=1775085935; bh=UKMOTo2RX1Ll8vvrhEXAxY+PtF1EezHS
	ReErpU39Q38=; b=SF1/7rYr7tLAz7Qd6fFWdB8fNdTNIp446XSQN5Q4Kud9x/3F
	8zyUUXDmInaw+huAeT1XQVu4CLXo7sNqZot9+2ZDdb+j7J1YRHPJuGastfG3pTo1
	MQlll2SvTR2Nr7fbbT5DDPZUfbrEsre/Bb25w1A9lEXBEX7iBiWKYXRx0NIqcijo
	gUkpRAyXo4QFEt2QrR1MJB/xxyxhxEmwg17UAPD00FBmJGYJtrPAO5HEjryorQct
	aiE32zjo1k8q3at7VTKZODfpqQ1Hf3e9YCQMAEhiWccThQnLUu6mJY9UijqtZTQl
	HnuWbWRwUCdK7l1ExXRKqh+E3nFSPvmQu+hcVA==
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=
	fm2; t=1774999535; x=1775085935; bh=UKMOTo2RX1Ll8vvrhEXAxY+PtF1E
	ezHSReErpU39Q38=; b=aMnqOBf7F+6i2bG5qxZ0zngAt6mgloXdoHVFuhRQe0HJ
	BA3ZGLP8o81GVeFMO+TRKPHv48j6XewAyAATeljgnrMOQ3qmpI2g9IpRlpj0DcHH
	1j3sInHM/jj2VjOA+RtHzyx3Ml+BsoRgIryyndPF902lqKBv5QOm7Hk7jOlzTn5P
	rUGxF8XZxlF3LZGFdDo+YaJ2Fe4GUiUWvyiRrdUsk/iRG2L6zJwqRkvL3pM3WA1j
	Q3A9irjAvsWSNCdq6Y/moRJDTYk55sdRP0dbIF8fwVkeCnfn0Q4Y32VjuHfIGbM3
	u3/5lgXHdtTnepB7Vxd4x9ureSwwErWIcji1YAuAkA==
X-ME-Sender: <xms:71fMaaGRGKZ93x-39wjry3GSL0aaf0AgZatEaRB7FYQ8051Aw-opkg>
    <xme:71fMaSVo5wzn3dqyB4equ9DUsamZuCKbheQqwNo08KDmL43WOfb_TVQziXJEV4BQe
    Ar9t4GJ4JDfMeuxe6bitB_OXi0NxxzvDfNI8rmIAWAI7F4l>
X-ME-Received: <xmr:71fMaZKjHuwycMVD8B5ateZqnB2c2lNkYpSQPVg62CFR1IUAtdgp4bTAhA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduheduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucforghr
    tgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhishhisg
    hlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeejueefhfelieek
    geeftdfgieeugefhudetjeethfefveehffejhfeigefgjeekleenucffohhmrghinhepgh
    hithhlrggsrdgtohhmnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghi
    lhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtg
    homhdpnhgspghrtghpthhtohepgedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohep
    gigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpth
    htohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopehmrghrmh
    grrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:71fMaS_fuE8BxdFpyHQWbIAyC1Zed953UAgyEAoFVHaDz-I-fP53NQ>
    <xmx:71fMacJ20DjVYuL1IzR5PMUQJsfDBhVEOtLAuunkpfakvRqgFtgm4Q>
    <xmx:71fMaXkq44B2hfghS45iUDzxTbZI6v7DNO39JpEJpqDshInNVCMGrQ>
    <xmx:71fMaQPfWJZeOkvvW8MrKhmFd9T3pKGJTDxpVbGZcYCWPculBuXLrQ>
    <xmx:71fMafTLXf1VvetuGGeoy1cu8CVgCpFGAXC4aOz43bhrPdw325IFXTlC>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v2 0/6] Add infrastructure for testing arbitrary Linux branch
Date: Wed,  1 Apr 2026 01:24:49 +0200
Message-ID: <cover.ca38f9571ab23e254a985ecfd4715235675aa06e.1774999414.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-16d1c6/1774999537-7AD951C2-7A5CCF65/0/0
X-purgate-type: clean
X-purgate-size: 1946

This series implements testing arbitrary Linux branch, based on pipeline
variables. The idea is to setup schedule running a pipeline for few selected
branches (some of the Linux stable branches? linux-next? Linus's master
branch?) The SELECTED_JOBS_ONLY variable can be used to exclude most of the
build jobs in those pipelines.

This series used to add add hw12 runner, but since it's still problematic
(might be genuine Xen bugs), I excluded it this time to not delay this series
anymore.  There are also few minor CI improvements collected along the way.

A few example pipelines, showing how badly this needs to be deployed:

v7.0-rc6
    https://gitlab.com/xen-project/people/marmarek/test-artifacts/-/pipelines/2419664631
    (pvh dom0 crashes on zen3p)

Linux-next (20260330):
    https://gitlab.com/xen-project/people/marmarek/test-artifacts/-/pipelines/2419594464
    (the above, plus PV dom0 sometimes panics on ADL)

v6.6.130
    https://gitlab.com/xen-project/people/marmarek/test-artifacts/-/pipelines/2419841336
    (fails "only" because on one qemu test domU has too little memory to load the updated kernel)

v6.6.86
    https://gitlab.com/xen-project/people/marmarek/test-artifacts/-/pipelines/2422090153

Marek Marczykowski-Górecki (6):
  CI: upload tests-junit.xml as a normal artifact too
  CI: make test-artifacts repo/branch/job customizable
  ci: introduce BUILD_FOR_TESTS_ONLY
  CI: use Alpine's network setup
  CI: setup SSH key
  [DO NOT MERGE] CI: example how to use ssh to extract logs

 .gitlab-ci.yml                     | 14 ++++++++++++++
 automation/gitlab-ci/build.yaml    | 25 +++++++++++++++++++++++++
 automation/gitlab-ci/test.yaml     | 25 +++++++++++++------------
 automation/scripts/qubes-x86-64.sh | 26 +++++++++++++++-----------
 4 files changed, 67 insertions(+), 23 deletions(-)

base-commit: 1792bb9a99d27d6b42e72fa28158e32d3ad05cc0
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 23:29:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 23:29:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269503.1558526 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iWi-0007yu-9T; Tue, 31 Mar 2026 23:29:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269503.1558526; Tue, 31 Mar 2026 23:29:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iWi-0007yn-6t; Tue, 31 Mar 2026 23:29:40 +0000
Received: by outflank-mailman (input) for mailman id 1269503;
 Tue, 31 Mar 2026 23:29:39 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w7iWh-0007yh-Bi
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 23:29:39 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7iWg-004YpL-Nk
 for xen-devel@lists.xenproject.org; Wed, 01 Apr 2026 01:29:38 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc5879-bab6-0a2a0a5309dd-0a2a45078f28-22
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:29:38 +0200
Received: from [103.168.172.153] (helo=fhigh-a2-smtp.messagingengine.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc57f1-fd74-0a2a45070019-67a8ac9993bf-3
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:25:38 +0200
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 59E291400205;
 Tue, 31 Mar 2026 19:25:37 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-02.internal (MEProxy); Tue, 31 Mar 2026 19:25:37 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 31 Mar 2026 19:25:36 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm2 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1774999537; x=1775085937; bh=I5mcvvSHTF
	hBZyVOt5aUywdyDCm1qx7B5kYIprHbf1U=; b=mTrbgDtY9ijZYxABIf6tOFFmPw
	fGA1nntetrsZ2PVAJEG6ycM+7s/j8B5zKjY2N9yNFOha60oMOyP9LgAtcde9JteW
	tUAEEb8M0AjynnOQfE4ZkMLpdCnTTBduxPyoMB/HjHLkAEVlSRRfX43wruWSIGeo
	u6j/U+ANIwotmfcl9euUl7gswJXGZgtvryKOhCHT/4SVSYxSxii/6xqnv/NBIar7
	a/JJrW0wVY3mYwULsV4xiBKp90RvY5orU4Roriifrsn4ebDCgbl8q2k40yJBEjVw
	q+CMM3SUpzveG3aXGAKlho0W2O2QXyP0b0IA4osLGqrWVapllqnfyI90yffw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1774999537; x=
	1775085937; bh=I5mcvvSHTFhBZyVOt5aUywdyDCm1qx7B5kYIprHbf1U=; b=Y
	wNpnAS4dinWlxXobhuTAJDI4DQf4nXpIxkwbSNX80RKmi0LEss0oPhqc2ZEh+iXE
	LrCnEcRw/qxobyFSzKQSvGu9SlLaPKF4/mydR94UWGUX6P1gKNQIgarr2Lpqd/20
	y/vGHh9MQMsZLLxv8mjPhgqr51RdheNSxLmbnq7BzitgIAnqHFN0s3RICTlUmPaB
	m2xh77Pyfg/iiMwTPfcd+FSAF0bKpP/HMxryWhRWtqXZNRzlkZjDwX8n4mN3YlHT
	bk+BOyhFjrhwNQpOVpjOz9/wyWrKKEy4/budxMBQ3+FolfIMqCjBFTnV2OW5TqQE
	tyGnx9doXkeobB+D4dCjQ==
X-ME-Sender: <xms:8VfMaTjFq87Jl9vome3qZkaC-wPVY_1wuylQoo6La7vpsfAjEY1NCw>
    <xme:8VfMaW4vIM3P2JeSEjIbgclKlWw32SdNnOkZ7-H1Hl_gJKPRMa5mSweCLLi_OShaK
    qLEyd0oXafN0ScIgjVo09zMgttOfmFzU8p2P7KdkVzzfWzUKg>
X-ME-Received: <xmr:8VfMabaYywHMGUODEIeDo5HDc7T2lF-2LzwquMfJOT1_dGwIZMuUDbz0BQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduheduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedunecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvg
    hrnhgvlhdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhr
    ihigrdgtohhmpdhrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhih
    hnghhslhgrsgdrtghomhdprhgtphhtthhopegtrghrughovgestggrrhguohgvrdgtohhm
X-ME-Proxy: <xmx:8VfMab6zTNB0jATECAyFCRu78nD-PwcIjzBf_8iUhU2hxCAPLqDiZg>
    <xmx:8VfMaeD4Yka7mrHl1OSB5zDgXQkIl2ourxXhcfz1TFl7tp2yCSa8wA>
    <xmx:8VfMaReROZZwxA2hFmMt3YhWAU7nFUKJZTE-8n3Ax_yPb12aIK7G1g>
    <xmx:8VfMadK4SrjJARPyMrE1tnxoWevnCjgZLWXWQKhBEITL6sojowHwIg>
    <xmx:8VfMacvNtWFBelZrUB6FEtHzA78nUUOynZbdOzeTF9T7-S5aTWGO0DSB>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH v2 1/6] CI: upload tests-junit.xml as a normal artifact too
Date: Wed,  1 Apr 2026 01:24:50 +0200
Message-ID: <99d3244f3b937c52e58d5c96b2b8dc9b94439c14.1774999414.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.ca38f9571ab23e254a985ecfd4715235675aa06e.1774999414.git-series.marmarek@invisiblethingslab.com>
References: <cover.ca38f9571ab23e254a985ecfd4715235675aa06e.1774999414.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1774999538-4E0B0303-7CD736CC/13/0
X-purgate-type: clean
X-purgate-size: 709

This allows checking the file if gitlab can't parse it for some reason.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
---
 automation/gitlab-ci/test.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 275c01c19f77..e189a774e946 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -151,6 +151,7 @@
     paths:
       - smoke.serial
       - '*.log'
+      - tests-junit.xml
     when: always
   rules:
     - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY && $QUBES_JOBS == "true"
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 23:29:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 23:29:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269505.1558545 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iWl-0008Q9-Nw; Tue, 31 Mar 2026 23:29:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269505.1558545; Tue, 31 Mar 2026 23:29:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iWl-0008Q1-Jj; Tue, 31 Mar 2026 23:29:43 +0000
Received: by outflank-mailman (input) for mailman id 1269505;
 Tue, 31 Mar 2026 23:29:42 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w7iWk-0008C2-6m
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 23:29:42 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7iWj-003L8K-Jr
 for xen-devel@lists.xenproject.org; Wed, 01 Apr 2026 01:29:41 +0200
Received: from [10.42.69.11] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc58e1-5cb7-0a2a0a5109dd-0a2a450bd72a-4
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:29:41 +0200
Received: from [103.168.172.153] (helo=fhigh-a2-smtp.messagingengine.com)
 by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc57f4-ef63-0a2a450b0019-67a8ac99909b-3
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:25:41 +0200
Received: from phl-compute-12.internal (phl-compute-12.internal [10.202.2.52])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 1953114001FE;
 Tue, 31 Mar 2026 19:25:40 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Tue, 31 Mar 2026 19:25:40 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 31 Mar 2026 19:25:38 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm2 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1774999540; x=1775085940; bh=42O2MeqbMS
	WypilSXFr/gkKBXnpJRqk7rPx+38DHJBA=; b=XkEOnW1MYKcAPSKK5CnsWG/P7L
	5CCOOHWsWqc432ak5985JYx3oqRFrrfvbM7okvBC2j0BEih/mDkELbp6QM71t6RL
	MRotW2sN8GbzFJZUVsBxicMLRlZ96SxHh8TIkf1vkKl72WQwlQcAijYY6PgdhMyG
	4bFCPyaE5QZiinc0kl2gTCeOGHtd4Rstjq997K7rk7FL3vDdQ/OxZquAgSvn/fYx
	SZ0/IWmT0fqa+bSd4UmE7bJwAHs5zV30g/qpQNMdoeGpqGQa91aoVfG/j3mUMUCz
	RlMjSj6c5QGMe9BUMZS14XzsLXBhVdHoMom9tUKBotoqqiTT+Aua4PJmeKpw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1774999540; x=
	1775085940; bh=42O2MeqbMSWypilSXFr/gkKBXnpJRqk7rPx+38DHJBA=; b=S
	HAv+c7VANZuKNUJ6ArRyLaLkq3kEWznipWQYI1T1H7t6JIOmJ5tHX7WfwizMKjD3
	5OZwUQyHON4FJrOxvEGYnvXqbOMiH2RlC/QRfV6GKbIaGFOtdSnVg5KuiOfXUVrJ
	PIRRhrXaeXthp2hw1dtbpoFEvxRb6M7IQGdZ0gogOrMav0sIm2c1aIUdJZLFWrho
	lf6PL+T5+qYXcSrjw11pS5YzYXI9SFlVnHEhM3/4FpY6AWJ4XFfs+Gfc0gzSgEJi
	PgAApD9Wd/GXb+cYDiHrc+1vlqsNSlG5JOly1AXMK6r6XAKx2QiDSDbvCInzPsfc
	uOAiqGZi9kV6OneKyX/Jw==
X-ME-Sender: <xms:81fMaY52nMpS2LTHfV83Ni2rnLdrYPc8ChSnhMiL0wlNqRvF-ivN9g>
    <xme:81fMaVahHOnh7TT511_m-jjbKT73QfZHfs-MD24zP17IIEk8dX4TvExO3BGtJWL4n
    h7aBSB3bSRWXXdSO_TLUvt1f7PyTRzeN_ps8gCwdMW7I4zH>
X-ME-Received: <xmr:81fMad4fDc9d6vQNrQaz6BcAUvV0ReoM4_tpgqyMbp3hEGu9R_dkUQLJwQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduhedvucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvg
    hrnhgvlhdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhr
    ihigrdgtohhmpdhrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhih
    hnghhslhgrsgdrtghomhdprhgtphhtthhopegtrghrughovgestggrrhguohgvrdgtohhm
X-ME-Proxy: <xmx:81fMaYDC9QxDCCUP4hYJaPwoW5O-7xKCUanQwgrdw_ofNXokN-gjcA>
    <xmx:9FfMaTcqX6MYN9nujTg7__cvh7E1sFOCNMLggTypM2uGRUBthZ3wfA>
    <xmx:9FfMaXKrXwJLLhM3k1WmRqwePbx8azjdlBS_IVgInEX2m76nEoZVsA>
    <xmx:9FfMae2sTdcTyFewnn7kzEipWOnMXm332hQiqyUBu_2x2D_4V7bbQg>
    <xmx:9FfMaTnxs0_oJrV01q2dxfMtSImCdCbT4Dm_rgNwv3QyXbP7r9n4SXtU>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH v2 3/6] ci: introduce BUILD_FOR_TESTS_ONLY
Date: Wed,  1 Apr 2026 01:24:52 +0200
Message-ID: <c5247e0a41dc49bd18cca23864f9adaf86bb2147.1774999414.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.ca38f9571ab23e254a985ecfd4715235675aa06e.1774999414.git-series.marmarek@invisiblethingslab.com>
References: <cover.ca38f9571ab23e254a985ecfd4715235675aa06e.1774999414.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-42698a/1774999541-A203B112-1D00B3D0/13/0
X-purgate-type: clean
X-purgate-size: 5138

When the variable is set, only build jobs that are used in tests are
scheduled. This saves a lot of time, for example when scheduling a test
pipeline with alternative linux branch.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 .gitlab-ci.yml                  |  2 ++
 automation/gitlab-ci/build.yaml | 25 +++++++++++++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2124e3a79eef..f42a9abeaaaf 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,6 +3,8 @@ variables:
   SELECTED_JOBS_ONLY:
     description: "Regex to select only some jobs, must be enclosed with /. For example /job1|job2/"
     value: "/.*/"
+  BUILD_FOR_TESTS_ONLY:
+    description: "Include only build jobs necessary for running tests"
   ARTIFACTS_REPO:
     description: "Path to the test-artifacts repo"
     value: xen-project/hardware/test-artifacts
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index b69bad9202c2..f4e277780311 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -13,6 +13,14 @@
     when: always
   needs: []
   rules:
+    - if: $BUILD_FOR_TESTS_ONLY
+      when: never
+    - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
+      when: on_success
+
+# override BUILD_FOR_TESTS_ONLY exclusion
+.build-test-tpl: &build-test
+  rules:
     - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
       when: on_success
 
@@ -296,11 +304,13 @@ qemu-system-aarch64-6.0.0-arm32-export:
 
 alpine-3.18-gcc:
   extends: .gcc-x86-64-build
+  <<: *build-test
   variables:
     CONTAINER: alpine:3.18
 
 alpine-3.18-gcc-debug:
   extends: .gcc-x86-64-build-debug
+  <<: *build-test
   variables:
     CONTAINER: alpine:3.18
     BUILD_QEMU_XEN: y
@@ -315,16 +325,19 @@ alpine-3.18-gcc-debug:
 
 debian-13-x86_64-gcc-debug:
   extends: .gcc-x86-64-build-debug
+  <<: *build-test
   variables:
     CONTAINER: debian:13-x86_64
 
 debian-13-x86_64-clang-debug:
   extends: .clang-x86-64-build-debug
+  <<: *build-test
   variables:
     CONTAINER: debian:13-x86_64
 
 debian-13-ppc64le-gcc-debug:
   extends: .gcc-ppc64le-cross-build-debug
+  <<: *build-test
   variables:
     CONTAINER: debian:13-ppc64le
     KBUILD_DEFCONFIG: ppc64_defconfig
@@ -335,6 +348,7 @@ debian-13-ppc64le-gcc-debug:
 
 debian-13-riscv64-gcc-debug:
   extends: .gcc-riscv64-cross-build-debug
+  <<: *build-test
   variables:
     CONTAINER: debian:13-riscv64
     KBUILD_DEFCONFIG: tiny64_defconfig
@@ -347,12 +361,14 @@ debian-13-riscv64-gcc-debug:
 
 debian-bookworm-gcc-arm32:
   extends: .gcc-arm32-cross-build
+  <<: *build-test
   variables:
     CONTAINER: debian:bookworm-arm64v8-arm32-gcc
     HYPERVISOR_ONLY: y
 
 debian-bookworm-gcc-arm32-debug:
   extends: .gcc-arm32-cross-build-debug
+  <<: *build-test
   variables:
     CONTAINER: debian:bookworm-arm64v8-arm32-gcc
     HYPERVISOR_ONLY: y
@@ -366,6 +382,7 @@ debian-bookworm-gcc-arm32-randconfig:
 
 debian-bookworm-gcc-arm32-debug-staticmem:
   extends: .gcc-arm32-cross-build-debug
+  <<: *build-test
   variables:
     CONTAINER: debian:bookworm-arm64v8-arm32-gcc
     HYPERVISOR_ONLY: y
@@ -376,6 +393,7 @@ debian-bookworm-gcc-arm32-debug-staticmem:
 
 debian-bookworm-gcc-arm32-debug-earlyprintk:
   extends: .gcc-arm32-cross-build-debug
+  <<: *build-test
   variables:
     CONTAINER: debian:bookworm-arm64v8-arm32-gcc
     HYPERVISOR_ONLY: y
@@ -407,11 +425,13 @@ debian-bookworm-gcc-debug-arm64:
 
 alpine-3.18-gcc-arm64:
   extends: .gcc-arm64-build
+  <<: *build-test
   variables:
     CONTAINER: alpine:3.18-arm64v8
 
 alpine-3.18-gcc-debug-arm64:
   extends: .gcc-arm64-build-debug
+  <<: *build-test
   variables:
     CONTAINER: alpine:3.18-arm64v8
     EXTRA_XEN_CONFIG: |
@@ -426,6 +446,7 @@ alpine-3.18-gcc-arm64-randconfig:
 
 alpine-3.18-gcc-debug-arm64-staticmem:
   extends: .gcc-arm64-build-debug
+  <<: *build-test
   variables:
     CONTAINER: alpine:3.18-arm64v8
     EXTRA_XEN_CONFIG: |
@@ -435,6 +456,7 @@ alpine-3.18-gcc-debug-arm64-staticmem:
 
 alpine-3.18-gcc-debug-arm64-static-shared-mem:
   extends: .gcc-arm64-build-debug
+  <<: *build-test
   variables:
     CONTAINER: alpine:3.18-arm64v8
     EXTRA_XEN_CONFIG: |
@@ -444,6 +466,7 @@ alpine-3.18-gcc-debug-arm64-static-shared-mem:
 
 alpine-3.18-gcc-debug-arm64-boot-cpupools:
   extends: .gcc-arm64-build-debug
+  <<: *build-test
   variables:
     CONTAINER: alpine:3.18-arm64v8
     EXTRA_XEN_CONFIG: |
@@ -451,6 +474,7 @@ alpine-3.18-gcc-debug-arm64-boot-cpupools:
 
 alpine-3.18-gcc-debug-arm64-earlyprintk:
   extends: .gcc-arm64-build-debug
+  <<: *build-test
   variables:
     CONTAINER: alpine:3.18-arm64v8
     EXTRA_XEN_CONFIG: |
@@ -496,6 +520,7 @@ debian-bookworm-gcc-cppcheck:
 
 debian-bookworm-gcc-arm32-cppcheck:
   extends: .gcc-arm32-cross-build
+  <<: *build-test
   variables:
     CONTAINER: debian:bookworm-cppcheck
     CROSS_COMPILE: /usr/bin/arm-linux-gnueabihf-
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 23:29:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 23:29:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269504.1558536 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iWk-0008CM-HO; Tue, 31 Mar 2026 23:29:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269504.1558536; Tue, 31 Mar 2026 23: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 1w7iWk-0008CE-D6; Tue, 31 Mar 2026 23:29:42 +0000
Received: by outflank-mailman (input) for mailman id 1269504;
 Tue, 31 Mar 2026 23:29:40 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w7iWi-000848-NA
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 23:29:40 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7iWi-004YpL-3o
 for xen-devel@lists.xenproject.org; Wed, 01 Apr 2026 01:29:40 +0200
Received: from [10.42.69.7] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc5879-bab6-0a2a0a5309dd-0a2a45078f28-28
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:29:40 +0200
Received: from [103.168.172.149] (helo=fout-a6-smtp.messagingengine.com)
 by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc57f2-fd74-0a2a45070019-67a8ac95a6db-3
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:25:39 +0200
Received: from phl-compute-12.internal (phl-compute-12.internal [10.202.2.52])
 by mailfout.phl.internal (Postfix) with ESMTP id AC422EC01BF;
 Tue, 31 Mar 2026 19:25:38 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Tue, 31 Mar 2026 19:25:38 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 31 Mar 2026 19:25:37 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm2 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1774999538; x=1775085938; bh=Ztn/aNTMuH
	aTPNCMiusNIKu+GfII8BJBtQBo3hfUqMU=; b=ZqBf+Q5H5/aK3Z6HibMWErXrek
	Q+fIRcxl/lTveaqEJDY3umq2ol26zOnw13AxTGEHJrDo6yZ//lmrCuQ02aXnww6r
	nOkpCpI1pDo3hEO7EdsQRhIkD4+KUJK0OeqaFxoCcwTrP2fUPlDUSInXJ9+LBSaN
	jK3weoD1aLG9wtsTSDE6S05yPyhrm6upagYX479iOOC82gjXz4lWa2ddqszN4ES2
	CPGxL/T/SVN3tCxkrsK/oSGr3zyBf65mvMdY9p/dxKneCqPO9B/pt8GD+UkioReu
	EHZQz6sOHJX16wE2suBcHDNKsSkKDjBAHzEXGvxN61VIQNsU9RoEmWuemWRw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1774999538; x=
	1775085938; bh=Ztn/aNTMuHaTPNCMiusNIKu+GfII8BJBtQBo3hfUqMU=; b=g
	nGK2KdQW6sen0LjPUQKKsfdfnRhrmYN2LZfTua/822uQd9JqbzyguKwl3YuqhK5A
	vqBrIAGPKtzAcmHhJ/ql/gka0UDnAZ+G/1aE19Zyr6VKzM72RQo9wdKN35xW63h+
	NztCf9hFXlYROTqL2KsCmGjALsO1Jn15GLOiNEyICH3OtMpesa775P37WjaJnlXH
	STz4MrL3ZPyMBdd0WqqLBQfum2rQ5c2ztJpcLtNV+CSk9oioGYQ7bTq3ROi/yTog
	vvxUWuSta+Qlk6TGekqqXzrifO123bVITmEIdUn+eGhL1YjNeTpDWWBG/Zvk5qi2
	knCDBwb9IoXdiFWXzrRXA==
X-ME-Sender: <xms:8lfMaeE5NV_gVGEO11yI_levxbMjYMi74UeX8Kxes1J_Z1RTVXVRuA>
    <xme:8lfMaWOxQvDsVI_Pgsq2-rCLO3KPEkvRPSqPOWFDLY8qRcBOc31w2TOebYJ8w-Ivz
    PF0_5PnDIKmzP3WtC7qXJmuryQbK9vNm_nTu3qmPactaiaU>
X-ME-Received: <xmr:8lfMaQcMGzwvOifQbPEowSHogztdTBo2wdRXigJ0s1CsbVb2l9NadOdFfQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduhedvucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvg
    hrnhgvlhdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhr
    ihigrdgtohhmpdhrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhih
    hnghhslhgrsgdrtghomhdprhgtphhtthhopegtrghrughovgestggrrhguohgvrdgtohhm
X-ME-Proxy: <xmx:8lfMaTuTZ5JnN4zbikppHSRz0abV1L7TH2nRBYN1s2x9OzgyuGSlIA>
    <xmx:8lfMaRlv2n3uA2YT3PcU44d7YMyAkdTwIKaJH7dw6wIc_Q5_Z73i5A>
    <xmx:8lfMaVwd2vJvuWztYbTb1rCJk5XavXMwuf3tFQlyUoV_wNK9xT_W1w>
    <xmx:8lfMaTNwSIwdvt7rZFxfqPSp0-vEDgeNIdcCmU8MDWfXDfex5sWixA>
    <xmx:8lfMaXD3uEYFu5EBu4xycTqEO-dsYd4N0mBU2t04XF1eFOh5kKJ1ZAH6>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH v2 2/6] CI: make test-artifacts repo/branch/job customizable
Date: Wed,  1 Apr 2026 01:24:51 +0200
Message-ID: <2d5d25d864058dcd9d139fd2115b88f82ba12424.1774999414.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.ca38f9571ab23e254a985ecfd4715235675aa06e.1774999414.git-series.marmarek@invisiblethingslab.com>
References: <cover.ca38f9571ab23e254a985ecfd4715235675aa06e.1774999414.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-ef75cf/1774999539-566AF303-86701BA9/13/0
X-purgate-type: clean
X-purgate-size: 3279

Allow choosing which artifacts branch and job to use for Linux. This
allows running the same tests for different Linux versions, without
duplicating a lot of yaml sections.

Similarly, make the repo path itself configurable too. The main purpose
is to ensure the test pipeline triggered from any repo will fetch linux
artifact from the right repo. But with a minor change of using that
variable for rootfs and microcode artifacts too, it allows testing
test-artifacts repo changes without needing to modify gitlab-ci.yml in
xen.git at all.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
I have considered common LINUX_JOB and then add architecture suffix, but
even now X86 and ARM use different jobs, so I made them separate.

Changes in v2:
- make repo path configurable too
- rename LINUX_ARTIFACTS_BRANCH to ARTIFACTS_BRANCH
---
 .gitlab-ci.yml                 | 12 ++++++++++++
 automation/gitlab-ci/test.yaml | 24 ++++++++++++------------
 2 files changed, 24 insertions(+), 12 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 64bed300a6c4..2124e3a79eef 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,6 +3,18 @@ variables:
   SELECTED_JOBS_ONLY:
     description: "Regex to select only some jobs, must be enclosed with /. For example /job1|job2/"
     value: "/.*/"
+  ARTIFACTS_REPO:
+    description: "Path to the test-artifacts repo"
+    value: xen-project/hardware/test-artifacts
+  ARTIFACTS_BRANCH:
+    description: "Branch in test-artifacts to use"
+    value: master
+  LINUX_JOB_X86_64:
+    description: "Job name in test-artifacts to use for Linux x86_64"
+    value: linux-6.6.56-x86_64
+  LINUX_JOB_ARM64:
+    description: "Job name in test-artifacts to use for Linux arm64"
+    value: linux-6.6.86-arm64
 
 workflow:
   name: "$CI_PIPELINE_SCHEDULE_DESCRIPTION"
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index e189a774e946..8770c523e228 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -6,27 +6,27 @@
     when: on_success
 
 .arm64-test-needs: &arm64-test-needs
-  - project: xen-project/hardware/test-artifacts
-    job: linux-6.6.86-arm64
-    ref: master
-  - project: xen-project/hardware/test-artifacts
+  - project: $ARTIFACTS_REPO
+    job: $LINUX_JOB_ARM64
+    ref: $ARTIFACTS_BRANCH
+  - project: $ARTIFACTS_REPO
     job: alpine-3.18-arm64-rootfs
-    ref: master
+    ref: $ARTIFACTS_BRANCH
   - qemu-system-aarch64-6.0.0-arm64-export
 
 .arm32-test-needs: &arm32-test-needs
   - qemu-system-aarch64-6.0.0-arm32-export
 
 .x86-64-test-needs: &x86-64-test-needs
-  - project: xen-project/hardware/test-artifacts
-    job: linux-6.6.56-x86_64
-    ref: master
-  - project: xen-project/hardware/test-artifacts
+  - project: $ARTIFACTS_REPO
+    job: $LINUX_JOB_X86_64
+    ref: $ARTIFACTS_BRANCH
+  - project: $ARTIFACTS_REPO
     job: alpine-3.18-x86_64-rootfs
-    ref: master
-  - project: xen-project/hardware/test-artifacts
+    ref: $ARTIFACTS_BRANCH
+  - project: $ARTIFACTS_REPO
     job: microcode-x86
-    ref: master
+    ref: $ARTIFACTS_BRANCH
 
 .qemu-arm64:
   extends: .test-jobs-common
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 23:29:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 23:29:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269507.1558554 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iWn-0000EC-1O; Tue, 31 Mar 2026 23:29:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269507.1558554; Tue, 31 Mar 2026 23:29: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 1w7iWm-0000E2-UA; Tue, 31 Mar 2026 23:29:44 +0000
Received: by outflank-mailman (input) for mailman id 1269507;
 Tue, 31 Mar 2026 23:29:43 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w7iWl-0008O2-HB
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 23:29:43 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7iWk-004YpL-UD
 for xen-devel@lists.xenproject.org; Wed, 01 Apr 2026 01:29:42 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc58e6-bab6-0a2a0a5309dd-0a2a4509c0a6-2
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:29:42 +0200
Received: from [103.168.172.149] (helo=fout-a6-smtp.messagingengine.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc57f5-e484-0a2a45090019-67a8ac95c24b-3
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:25:42 +0200
Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])
 by mailfout.phl.internal (Postfix) with ESMTP id 642CDEC0252;
 Tue, 31 Mar 2026 19:25:41 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-05.internal (MEProxy); Tue, 31 Mar 2026 19:25:41 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 31 Mar 2026 19:25:40 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm2 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1774999541; x=1775085941; bh=Pbl6hENohF
	btGGC0Gw3P9MXarDAJt6eXsMQHLBHvuXw=; b=doWTw13O/LQ5rTHi5X9ZaZtDNa
	+gvszLCPXfCT9c5uSEP/IJADLCalLMlhQR1XKUCSHW3zO+DHz1lpR4HzZ94V3Dix
	Fd2l72e1NXjqFcYrKgeAx9g+rn/8lFtgxQeGIFLQgTJ7nUfEgkDHLPRKQ94f35hy
	TUKyqH2gwCeqjxEWk+cTclKnMZYjUYUZXv/unRSxJ8Vv1CTyKDQ15Ie1DT/DhEy/
	SaPb6oME9WPNcf7Y/uvjIaSu/Ke5nbYvFmg83Zjt5aCVjfdmD9AwRlsnNZXwZzDb
	u0VAx/5nOo9kERGI+NPJMnLm2O2he4E0IGSRv7b0gvFchxeJ3zyRj8v5Debw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1774999541; x=
	1775085941; bh=Pbl6hENohFbtGGC0Gw3P9MXarDAJt6eXsMQHLBHvuXw=; b=i
	nox1QWGhNPHLEaapd/+S5I+BmEvfyUdGUq2w88C/WPv7LlIVObnNLLPORaFFXS3f
	n0Rh3IqL+shiRWlmXmp/rahspHsurzguwvaTfhVN/CYYjoWhNjaXlChYoqdYhJnq
	+BpCwquS33Bo+gooIWRarVQKqWGLbT2A37gPxkbF4ui4hFS7NzLFPVuAxoAg60dC
	0NLwDQkNwppAKGfrsibDNSRaxsrz86Fh79pcOQ67RhCpGvnJc2qDl/GAG1VtC5/v
	3ZSYijswoJ7Cp1tVhpe8jn2KMgoH3phjafDyorUAs6DF+1aI85ySOTklVaLFRPK4
	ID6aAr2S6KKQkLaKjVAlg==
X-ME-Sender: <xms:9VfMaXwrQFcz_4q9w2qCYNxurbvQeJEu6nrMfqjduFoua7UagOwMsA>
    <xme:9VfMaWLS4Ib-hdX7eb6j6oC1vvoyg1GL8aPpMeQ-f3Chk57Kjhs-NZ1KroxX8pYdF
    wg6FaJevU53R1gLZnk_VNxB1myBdJOW0Mly7w20HgrWqesWpw>
X-ME-Received: <xmr:9VfMaZoyKPymPJs6rgUHKmOPE5mYEy5GBzeZGbZhzTBWwB7SahBnArNGzw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduheduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvg
    hrnhgvlhdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhr
    ihigrdgtohhmpdhrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhih
    hnghhslhgrsgdrtghomhdprhgtphhtthhopegtrghrughovgestggrrhguohgvrdgtohhm
X-ME-Proxy: <xmx:9VfMadIRLTJHrBG3JbIUsl183s9oZgG_dFIUBP-FQctcnLWt8bVshA>
    <xmx:9VfMaWT_4JllQewSy6QeVOczyjO5idKbUsvj67FJbt2CkLSXM46Z_g>
    <xmx:9VfMaUvvbNZeNtC5Z9alFW2lrTkdGF_miX7QIRJaiFGEyx_85rXpCQ>
    <xmx:9VfMafaMvCRo9FAAcYRJZmb7alTRzrCkSG0xrK4ZHK0e73fJvomm6A>
    <xmx:9VfMaX-9wUQNhhgyM31v-WMmSbK0hwqZhfcxRCYUOG6dRjrOQ6I7WEu9>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH v2 4/6] CI: use Alpine's network setup
Date: Wed,  1 Apr 2026 01:24:53 +0200
Message-ID: <2a02d9e9a4fc47674d771f22e65b202b3dbf6336.1774999414.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.ca38f9571ab23e254a985ecfd4715235675aa06e.1774999414.git-series.marmarek@invisiblethingslab.com>
References: <cover.ca38f9571ab23e254a985ecfd4715235675aa06e.1774999414.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1774999542-5B8A5A73-D4C2F213/13/0
X-purgate-type: clean
X-purgate-size: 1555

This allows Alpine startup script to properly handle service
dependencies - necessary for starting dropbear ssh server.
For the latter, always take the IP address from DHCP, in addition to the
test-local one.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
---
 automation/scripts/qubes-x86-64.sh | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index 7a59fa5f1116..91c0d5bec829 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -214,25 +214,23 @@ cat "${dom0_rootfs_parts[@]}" > binaries/dom0-rootfs.cpio.gz
 # test-local configuration
 mkdir -p rootfs
 cd rootfs
-mkdir -p boot etc/local.d root
+mkdir -p boot etc/local.d root etc/network
 cp -a ../automation/scripts/run-tools-tests root/
 
+echo "
+auto xenbr0
+iface xenbr0 inet dhcp
+    bridge-ports eth0
+    bridge-stp 0
+    up ip a a 192.168.0.1/24 dev \$IFACE
+" > etc/network/interfaces
+
 echo "#!/bin/bash
 
 bash /etc/init.d/xencommons start
 
-brctl addbr xenbr0
-brctl addif xenbr0 eth0
-ifconfig eth0 up
-ifconfig xenbr0 up
-ifconfig xenbr0 192.168.0.1
-
 " > etc/local.d/xen.start
 
-if [ -n "$retrieve_xml" ]; then
-    echo "timeout 30s udhcpc -i xenbr0" >> etc/local.d/xen.start
-fi
-
 if [ -n "$domU_check" ]; then
     echo "
 # get domU console content into test log
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 23:29:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 23:29:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269509.1558563 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iWo-0000Ty-9R; Tue, 31 Mar 2026 23:29:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269509.1558563; Tue, 31 Mar 2026 23:29:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iWo-0000Tn-55; Tue, 31 Mar 2026 23:29:46 +0000
Received: by outflank-mailman (input) for mailman id 1269509;
 Tue, 31 Mar 2026 23:29:45 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w7iWn-0000E7-4U
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 23:29:45 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7iWm-004YwC-HK
 for xen-devel@lists.xenproject.org; Wed, 01 Apr 2026 01:29:44 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc58e6-bab6-0a2a0a5309dd-0a2a4509c0a6-4
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:29:44 +0200
Received: from [103.168.172.149] (helo=fout-a6-smtp.messagingengine.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc57f7-e484-0a2a45090019-67a8ac95bff9-3
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:25:43 +0200
Received: from phl-compute-07.internal (phl-compute-07.internal [10.202.2.47])
 by mailfout.phl.internal (Postfix) with ESMTP id D5E65EC0258;
 Tue, 31 Mar 2026 19:25:42 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-07.internal (MEProxy); Tue, 31 Mar 2026 19:25:42 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 31 Mar 2026 19:25:41 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm2 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm1; t=1774999542; x=1775085942; bh=ipNBzb/xPe
	pZOkJie58FqxMbev+ybK+wfGHJYYApMdY=; b=jw0x53EBBypN7RvSLbdGjHu4/r
	tLu5F1nXEmX3pkfsAwT4prTFVFIXM8XcXP/PjmDXn57UVSsEkHQTh0j+Or0Cion+
	wjLBIVjSWpKdjhDUPhjixajIJC2pv31gUq5NG0RxES3iCOW7YmYamOrgYLOYH646
	1dy6xYPcVNikiONkVKixc2w3/oY7HVuY6j1lBY91GFwo+KKSbQY+NNgLNnh9bhWI
	Zh7Y/jGn1BsE734WJlM3Qx9nZZlysuYWDjqGqU2Iqqi9bUA/RGaoooLuxE1kanaq
	O+LaRpTJu3U5lQo6ZZjwftFXyl9S+McBJF6ynpIifyPlNc/Xguoz5iiA2A1Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1774999542; x=
	1775085942; bh=ipNBzb/xPepZOkJie58FqxMbev+ybK+wfGHJYYApMdY=; b=T
	ijCnAJPBv0ZA594hOZsW8WXPxJHQj5sLOkxLq7vP7tECYinH8WSysj8D9b+ybSJ3
	oWu1tuwEogyWlRKsZUBJBC8DvvIkmVkGCyStbU/mSXbbp48QDF+1SHYJFAjEvLXl
	jXg1Gd0bB/7rUA4BfljnJJrUtcXA9qS/SJZLDDIsmG6N3Ys5SBJ/0HDT+dXhHMVZ
	iuScjV+OnJ4mqEdB/9bWW2ovv8SgbLHsdoNBznf2kK5Vq9BO74/aEPTb+/xM5R+4
	Snz5UYtj8UGtPSz3cgM8XHoU1OJ3M75tUzUrAtvc8vujXUQ0X5bfbiRACL1iy6wu
	5YeDYYglwrC3o+jLwaRJA==
X-ME-Sender: <xms:9lfMaWzZ_nTHfFPaWNuiD0A0iVeFGOrGnzvArl_PDKCJ-y6vem0RfQ>
    <xme:9lfMaZKBlvr0j3Va-j61_w6K7r7KUu9NWNeL1n0hYjfDIqFczoob_egtFwmbrd_OK
    Dk8FjlueFFU3LsVPoIdGwr7kU6SLjnLRZj_cGena9TM_dseIg>
X-ME-Received: <xmr:9lfMaQrqKJwsAZwxb61QZzzRcRnZC84uqEQjp2ZFhbaX6luiyWvYdQsJFA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduheduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgueduhefg
    vdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvg
    hrnhgvlhdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhr
    ihigrdgtohhmpdhrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhih
    hnghhslhgrsgdrtghomhdprhgtphhtthhopegtrghrughovgestggrrhguohgvrdgtohhm
X-ME-Proxy: <xmx:9lfMaYLMiTLcexU6m--OwOrA2pBu6EIfgRXyX-9YRzhZq1SX1f938A>
    <xmx:9lfMaVScVsuV30TKxKaoJ94krKKORO_SFrfplwFxKSXclj-p0UcHPw>
    <xmx:9lfMaXthwF0cslKPfca5VPgO5UVMaZwgFdmI3QRsH4XIETL_BW5l-g>
    <xmx:9lfMaWZLG6Dv_hcWzypXNhRI9fKcCeR3xPInrzKt7uqqQkFqPv7hQw>
    <xmx:9lfMaa-JDwtU7wZ5yn2fmVg4LjJfO-B8k8EEKFSDTnLYVXns2M7DvhmJ>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH v2 5/6] CI: setup SSH key
Date: Wed,  1 Apr 2026 01:24:54 +0200
Message-ID: <5d11a521db04134f8917c990a494ba8ce44548b9.1774999414.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.ca38f9571ab23e254a985ecfd4715235675aa06e.1774999414.git-series.marmarek@invisiblethingslab.com>
References: <cover.ca38f9571ab23e254a985ecfd4715235675aa06e.1774999414.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1774999544-5BAA4A73-EAD71CC2/13/0
X-purgate-type: clean
X-purgate-size: 957

Generate fresh key for a job, and add its public part to dom0's
authorized_keys file.
This allows the test controller to use SSH without any password prompt.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
New in v2
---
 automation/scripts/qubes-x86-64.sh | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index 91c0d5bec829..745fce6f9134 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -246,6 +246,10 @@ chmod +x etc/local.d/xen.start
 mkdir -p etc/xen
 echo "$domU_config" > etc/xen/domU.cfg
 
+mkdir -p root/.ssh
+ssh-keygen -t ed25519 -N '' -f ~/.ssh/id_ed25519
+cp ~/.ssh/id_ed25519.pub root/.ssh/authorized_keys
+
 mkdir -p etc/default
 echo "XENCONSOLED_TRACE=all" >> etc/default/xencommons
 echo "QEMU_XEN=/bin/false" >> etc/default/xencommons
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Tue Mar 31 23:29:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 31 Mar 2026 23:29:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1269511.1558572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iWp-0000jQ-Iu; Tue, 31 Mar 2026 23:29:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1269511.1558572; Tue, 31 Mar 2026 23:29:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1w7iWp-0000id-Eh; Tue, 31 Mar 2026 23:29:47 +0000
Received: by outflank-mailman (input) for mailman id 1269511;
 Tue, 31 Mar 2026 23:29:46 +0000
Received: from mx.expurgate.net ([195.190.135.10])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <marmarek@invisiblethingslab.com>) id 1w7iWo-0000Ss-8j
 for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 23:29:46 +0000
Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp
 id 1w7iWn-004YwC-Lb
 for xen-devel@lists.xenproject.org; Wed, 01 Apr 2026 01:29:45 +0200
Received: from [10.42.69.9] (helo=localhost)
 by localhost with ESMTP (eXpurgate MTA 0.9.1)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc58e6-bab6-0a2a0a5309dd-0a2a4509c0a6-6
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:29:45 +0200
Received: from [103.168.172.153] (helo=fhigh-a2-smtp.messagingengine.com)
 by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2)
 (envelope-from <marmarek@invisiblethingslab.com>)
 id 69cc57f8-e484-0a2a45090019-67a8ac99dbef-3
 for <xen-devel@lists.xenproject.org>; Wed, 01 Apr 2026 01:25:45 +0200
Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 2F7CB14001F5;
 Tue, 31 Mar 2026 19:25:44 -0400 (EDT)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-05.internal (MEProxy); Tue, 31 Mar 2026 19:25:44 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 31 Mar 2026 19:25:43 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=fm1 header.d=invisiblethingslab.com header.i="@invisiblethingslab.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=fm2 header.d=messagingengine.com header.i="@messagingengine.com" header.h="Cc:Content-Transfer-Encoding:Date:Feedback-ID:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To:X-ME-Proxy:X-ME-Sender"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:date:date:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to; s=fm1; t=1774999544; x=1775085944; bh=EGvzpeUslV4ZxMlxG03hV
	fjuVidhGwwNq/GPCltvYJ4=; b=Ls52G0QdJcaWb2xaTKwVJSZWV/9gAtVPvZvCR
	2S6v5sYzLCNiL5qawm9t4FWA0kyDQyJSNSddYB3L1FrNbjneArsBAHa1YjmwiOuY
	bepxcdi1mEChLAVJ+lUFB6R+mjtvM4NxBkhSn6LIvwKmBTvelxBWN0dVKY+z+7+d
	5myw5NFSBOMl3DHPXxnbIame3D8oXvAGfffVX+fmaJqUBf2VnKUUj1snstWRUSSb
	PmQ43JJtSewe2RbdcQhQcZdufGJ9HthMFPHN4vnIUNZcI2ytT4rDD0OvciqWxA/r
	ac/yumO1cmzJ9tx5bvXjtSKEpBzK8BEyveXuvaamTUOzQMW9A==
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: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=fm2; t=1774999544; x=1775085944; bh=E
	GvzpeUslV4ZxMlxG03hVfjuVidhGwwNq/GPCltvYJ4=; b=rf1sG/rCeeL5suX1a
	MdzAm6zyUJINxOYTvlfF8FTHBY8KsRUvphf6Sm5r8yJCw23MHBTo2iM7JUreqeoF
	1lGuaiZ4AVxpULVCChSqBoBarTC0ImQ6telNjfkIy5xYEBdx7P8kI2Y3MIN/52x9
	IHSjJ4TxIUSmg2+52LGQVTOp/Q2qQBcbte/MTpERc0CwQbbQJWF55s32k4Da5dw6
	4PVZF6u4NBfiblEtOE4G2cmqo4SoUEFOUVbBk1JLV91wLZ/gymj8/MmIdPCWkBmo
	KdBzjcmH4niWHC4CrhJ5puywS3+IA+BPedx57lYvkuKLdhSAtkLaXO0x/m4TT46g
	dJXXQ==
X-ME-Sender: <xms:-FfMaVB-bQDhv332LzUEhg96-0iyECrZFc5pr0_TIWMeBC4Dg5hq6g>
    <xme:-FfMaaaOB3vzEi8vDBV2T_k-6by6KJv4Dk2ibJ2S9pjkHx-zQ5YO1m1BrUFtiK4wz
    ZtEdPVcF3RtFeTCYxDsnpAQb-0BfLRFpgNj4BxHHZMzjvbfmA>
X-ME-Received: <xmr:-FfMaY5ze0T7wozkOynogwgfGdDclUIEVcH6ffiDlOtOT61Wa4WM1ulgow>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduheduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi
    lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh
    ephffvvefufffkofgjfhgggfestdekredtredtjeenucfhrhhomhepofgrrhgvkhcuofgr
    rhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvihhsih
    gslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepveeljeefhedv
    vddvieevfeejgfethfeutdejteevueffjeegkeevtddthefhgfdtnecuvehluhhsthgvrh
    fuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhv
    ihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohephedpmhhoug
    gvpehsmhhtphhouhhtpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigv
    nhhprhhojhgvtghtrdhorhhgpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrh
    hnvghlrdhorhhgpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrhefsegtihhtrhhi
    gidrtghomhdprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinh
    hgshhlrggsrdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtghomh
X-ME-Proxy: <xmx:-FfMabbx6kJu-6cTG4AAU1GE7zKWY0SR4s80GWUyqzZp_WFeVMrdmA>
    <xmx:-FfMaXgrEHDVJkbdOj7HVCRtQkQAK-6DpThOtjnez4lt9NezAkw8aA>
    <xmx:-FfMac-rjGTqzgI7yq4-1wz_8RmxyRmRdJg_td7D0PdWPqRyHH8yjw>
    <xmx:-FfMaSppTm0mChi_QShOSQIZq9LK6L2mibfMq9y1K5VPx5NoPf09jw>
    <xmx:-FfMaYOhnPDsjYWoZlWig6WfWcnCmX1gXvl8QBs9dlPlFzQSwWG48GpR>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH v2 6/6] [DO NOT MERGE] CI: example how to use ssh to extract logs
Date: Wed,  1 Apr 2026 01:24:55 +0200
Message-ID: <0e03180b8e69830df0d54b0a332b0f1fc88192d1.1774999414.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.ca38f9571ab23e254a985ecfd4715235675aa06e.1774999414.git-series.marmarek@invisiblethingslab.com>
References: <cover.ca38f9571ab23e254a985ecfd4715235675aa06e.1774999414.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-purgate-ID: tlsNG-bad1c0/1774999545-6AB41A73-B6E458B4/13/0
X-purgate-type: clean
X-purgate-size: 696

---
 automation/scripts/qubes-x86-64.sh | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index 745fce6f9134..1cfe03d68747 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -296,6 +296,8 @@ export TEST_LOG="smoke.serial"
 export TEST_TIMEOUT="$timeout"
 ./automation/scripts/console.exp |& sed 's/\r\+$//'
 TEST_RESULT=$?
+ssh -o StrictHostKeyChecking=no root@$SUT_ADDR xl dmesg || :
+ssh -o StrictHostKeyChecking=no root@$SUT_ADDR dmesg || :
 
 if [ -n "$retrieve_xml" ]; then
     nc -w 10 "$SUT_ADDR" 8080 > tests-junit.xml </dev/null
-- 
git-series 0.9.1


